A reconfigurable fabric for accelerating large-scale datacenter services
Hardware vendors have announced support for on-die FPGAs in future server-class processors, and providers are touting support for on-demand FPGA acceleration in the cloud. However, OSes have not yet responded with first-class support for FPGAs. This paper proposes a design for an FPGA OS support called XENOS. XENOS provides abstractions that allow multiple, mutually untrusting processes to safely and efficiently share FPGA(s), and to mediate access from FPGAresident user-logic to OS-managed resources such as memory or shared physical network I/O. XENOS exports a zone abstraction to virtualize regions of reconfigurable fabric: zones are demand-shared across processes both in space and in time. XENOS mediates access to OS-managed resources from user FGPA logic using hulls. A hull provides user-logic with an interface for expressing ranges of per-resource requirements to enable the system to scale it dynamically. A hull similarly provides standard interfaces to resources such as virtual memory and I/O while isolating resources from different protection domains. Measurements of our prototype show that XENOS can demand share FPGAs significantly faster under contention than a baseline system which emulates the behavior of emerging, but as-yet unavailable OS support from hardware vendors.