Open access
Author
Date
2023-09Type
- Master Thesis
ETH Bibliography
yes
Altmetrics
Abstract
Field-Programmable Gate Arrayss (FPGAs) are deployed widely by cloud providers, either as accelerators in their infrastructure or as infrastructure as a service. Coyote is an FPGA “OS” that simplifies the programming of the FPGA logic by providing similar abstractions as an traditional OS, such as virtual memory, physical memory management, a portable execution environment, and more. Coyote uses its Direct Memory Access (DMA) engines to directly access host memory and allows addressing using host virtual addresses.
In this thesis, we present a FPGA hypervisor that allows to multiplex a single FPGA between multiple virtual machines (VMs) with near to zero virtualization overhead. The hypervisor is built on top of Coyote and presents the same interface to the user logic and the user process, and allows the user logic to access memory using guest virtual addresses. In addition, we overhauled the memory model of the FPGA by extending the memory abstractions that Coyote already implemented. We moved forward to a Shared Virtual Memory (SVM) model, that avoids the pinning of physical pages in the host memory by keeping the page tables of the FPGA in sync with the CPU page table. Furthermore, it makes it easier for the user to utilize the off-chip DRAM of a FPGA by enabling migration of virtual address ranges from the host into the FPGA memory. Show more
Permanent link
https://doi.org/10.3929/ethz-b-000660940Publication status
publishedPublisher
ETH ZurichSubject
Virtualization; Operating Systems; FPGAOrganisational unit
03506 - Alonso, Gustavo / Alonso, Gustavo
More
Show all metadata
ETH Bibliography
yes
Altmetrics