Direct Virtual Memory Access from FPGA for High-Productivity Heterogeneous Computing

Abstract

Heterogeneous computing utilizing both CPU and FPGA requires access to data in the main memory from both devices. While a typical system relies on software executing on the CPU to orchestrate all data movements between the FPGA and the main memory, our demo presents a complementary FPGA-centric approach that allows gateware to directly access the virtual memory space as part of the executing process without involving the CPU. A caching address translation buffer was implemented alongside the user FPGA gateware to provide runtime mapping between virtual and physical memory addresses. The system was implemented on a commercial off-the-shelf FPGA add-on card to demonstrate the viability of such approach in low-cost systems. Experiment demonstrated reasonable performance improvement when compared to a typical software-centric implementation; while the number of context switches between FPGA and CPU in both kernel and user mode was significantly reduced, freeing the CPU for other concurrent user tasks.

Publication
2013 International Conference on Field-Programmable Technology (FPT)
Ho-Cheung Ng
Ho-Cheung Ng
M.Phil, PhD Candidate (ICL)
Hayden Kwok-Hay So
Hayden Kwok-Hay So
Associate Professor