Sharing and Protection for Reconfigurable Fabric with XENOS

Abstract

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.

8 Figures and Tables

Cite this paper

@inproceedings{Khawaja2017SharingAP, title={Sharing and Protection for Reconfigurable Fabric with XENOS}, author={Ahmed Khawaja and Dan Zhang and Divya Shanmughan and Michael Wei and Eric Schkufza and Christopher J. Rossbach}, year={2017} }