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.
Year
2017
URL
Abstract
Summary
Emu is a standard library for an FPGA hardware compiler that lets developers rapidly build and deploy network functions using high-level synthesis, adding abstractions for common network operations, bindings to the FPGA substrate, and proper debugging/profiling support; the same programs can run on CPUs, in Mininet, or on FPGAs, with only negligible overhead versus hand-written hardware implementations.
bibtex
@inproceedings{sultana2017emu,
author = {Nik Sultana and Salvator Galea and David Greaves and Marcin W\'ojcik and Jonny Shipton and Richard G. Clegg and Luo Mai and Pietro Bressana and Robert Soul\'e and Richard Mortier and Paolo Costa and Peter Pietzuch and Jon Crowcroft and Andrew W. Moore and Noa Zilberman},
title = {Emu: Rapid Prototyping of Networking Services},
booktitle = {Proceedings of the 2017 USENIX Annual Technical Conference (USENIX ATC)},
year = {2017},
pages = {459--471}
}
author = {Nik Sultana and Salvator Galea and David Greaves and Marcin W\'ojcik and Jonny Shipton and Richard G. Clegg and Luo Mai and Pietro Bressana and Robert Soul\'e and Richard Mortier and Paolo Costa and Peter Pietzuch and Jon Crowcroft and Andrew W. Moore and Noa Zilberman},
title = {Emu: Rapid Prototyping of Networking Services},
booktitle = {Proceedings of the 2017 USENIX Annual Technical Conference (USENIX ATC)},
year = {2017},
pages = {459--471}
}
Venue
Proceedings of the 2017 USENIX Annual Technical Conference (USENIX ATC), pp. 459-471