Nik Sultana, Salvator Galea, D. Greaves, M. Wójcik, J. Shipton, R. Clegg, Luo Mai, Pietro Bressana, R. Soulé, R. Mortier, Paolo Costa, P. Pietzuch, J. Crowcroft, A. Moore, Noa Zilberman
{"title":"Emu: Rapid Prototyping of Networking Services","authors":"Nik Sultana, Salvator Galea, D. Greaves, M. Wójcik, J. Shipton, R. Clegg, Luo Mai, Pietro Bressana, R. Soulé, R. Mortier, Paolo Costa, P. Pietzuch, J. Crowcroft, A. Moore, Noa Zilberman","doi":"10.17863/CAM.13009","DOIUrl":null,"url":null,"abstract":"Due to their performance and flexibility, FPGAs are an attractive platform for the execution of network functions. It has been a challenge for a long time though to make FPGA programming accessible to a large audience of developers. An appealing solution is to compile code from a general-purpose language to hardware using high-level synthesis. Unfortunately, current approaches to implement rich network functionality are insufficient because they lack: (i) libraries with abstractions for common network operations and data structures, (ii) bindings to the underlying \"substrate\" on the FPGA, and (iii) debugging and profiling support. \n \nThis paper describes Emu, a new standard library for an FPGA hardware compiler that enables developers to rapidly create and deploy network functionality. Emu allows for high-performance designs without being bound to particular packet processing paradigms. Furthermore, it supports running the same programs on CPUs, in Mininet, and on FPGAs, providing a better development environment that includes advanced debugging capabilities. We demonstrate that network functions implemented using Emu have only negligible resource and performance overheads compared with natively-written hardware versions.","PeriodicalId":88968,"journal":{"name":"Proceedings of the USENIX ... annual Technical Conference. USENIX Technical Conference","volume":"48 1","pages":"459-471"},"PeriodicalIF":0.0000,"publicationDate":"2017-07-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"37","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the USENIX ... annual Technical Conference. USENIX Technical Conference","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.17863/CAM.13009","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 37
Abstract
Due to their performance and flexibility, FPGAs are an attractive platform for the execution of network functions. It has been a challenge for a long time though to make FPGA programming accessible to a large audience of developers. An appealing solution is to compile code from a general-purpose language to hardware using high-level synthesis. Unfortunately, current approaches to implement rich network functionality are insufficient because they lack: (i) libraries with abstractions for common network operations and data structures, (ii) bindings to the underlying "substrate" on the FPGA, and (iii) debugging and profiling support.
This paper describes Emu, a new standard library for an FPGA hardware compiler that enables developers to rapidly create and deploy network functionality. Emu allows for high-performance designs without being bound to particular packet processing paradigms. Furthermore, it supports running the same programs on CPUs, in Mininet, and on FPGAs, providing a better development environment that includes advanced debugging capabilities. We demonstrate that network functions implemented using Emu have only negligible resource and performance overheads compared with natively-written hardware versions.