TY - JOUR
T1 - A survey of system architectures and techniques for FPGA virtualization
AU - Quraishi, Masudul Hassan
AU - Tavakoli, Erfan Bank
AU - Ren, Fengbo
N1 - Funding Information:
This work was supported by an unrestricted research gift (CG#1490376) from the Cisco Research Center.
Publisher Copyright:
© 1990-2012 IEEE.
PY - 2021/9/1
Y1 - 2021/9/1
N2 - FPGA accelerators are gaining increasing attention in both cloud and edge computing because of their hardware flexibility, high computational throughput, and low power consumption. However, the design flow of FPGAs often requires specific knowledge of the underlying hardware, which hinders the wide adoption of FPGAs by application developers. Therefore, the virtualization of FPGAs becomes extremely important to create a useful abstraction of the hardware suitable for application developers. Such abstraction also enables the sharing of FPGA resources among multiple users and accelerator applications, which is important because, traditionally, FPGAs have been mostly used in single-user, single-embedded-application scenarios. There are many works in the field of FPGA virtualization covering different aspects and targeting different application areas. In this article, we review the system architectures used in the literature for FPGA virtualization. In addition, we identify the primary objectives of FPGA virtualization, based on which we summarize the techniques for realizing FPGA virtualization. This article helps researchers to efficiently learn about FPGA virtualization research by providing a comprehensive review of the existing literature.
AB - FPGA accelerators are gaining increasing attention in both cloud and edge computing because of their hardware flexibility, high computational throughput, and low power consumption. However, the design flow of FPGAs often requires specific knowledge of the underlying hardware, which hinders the wide adoption of FPGAs by application developers. Therefore, the virtualization of FPGAs becomes extremely important to create a useful abstraction of the hardware suitable for application developers. Such abstraction also enables the sharing of FPGA resources among multiple users and accelerator applications, which is important because, traditionally, FPGAs have been mostly used in single-user, single-embedded-application scenarios. There are many works in the field of FPGA virtualization covering different aspects and targeting different application areas. In this article, we review the system architectures used in the literature for FPGA virtualization. In addition, we identify the primary objectives of FPGA virtualization, based on which we summarize the techniques for realizing FPGA virtualization. This article helps researchers to efficiently learn about FPGA virtualization research by providing a comprehensive review of the existing literature.
KW - Accelerator
KW - Architecture
KW - FPGA
KW - Reconfiguration
KW - Virtualization
UR - http://www.scopus.com/inward/record.url?scp=85102262977&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85102262977&partnerID=8YFLogxK
U2 - 10.1109/TPDS.2021.3063670
DO - 10.1109/TPDS.2021.3063670
M3 - Article
AN - SCOPUS:85102262977
SN - 1045-9219
VL - 32
SP - 2216
EP - 2230
JO - IEEE Transactions on Parallel and Distributed Systems
JF - IEEE Transactions on Parallel and Distributed Systems
IS - 9
M1 - 9369140
ER -