{"title":"Software Compilation Using FPGA Hardware: Register Allocation","authors":"Yiming Tan, Aditya Diwakar, Ja Jagielo, V. Mooney","doi":"10.1109/MECO58584.2023.10155001","DOIUrl":null,"url":null,"abstract":"Malicious attackers are constantly attacking software compilers and attempting to exploit various security vulnerabili-ties. By executing carefully chosen machine instructions already present in the program, an attacker can perform harmful actions arbitrarily. In this paper, we propose hardware/software codesign techniques to perform software compilation steps in hardware, specifically the register allocation step on a Field Programmable Gate Array (FPGA). Our experiment incorporates two key features: 1) Advanced RISC Machine (ARM) instruction set architecture (ISA)-based register allocation algorithms to calculate variable liveness as well as map virtual registers to physical registers and 2) the feasibility of executing the register allocation algorithms on a Cyclone V FPGA. Our experimental results show the timing efficiency and resource efficiency - while diminishing security risks - when performing register allocation of the gcd program on the FPGA.","PeriodicalId":187825,"journal":{"name":"2023 12th Mediterranean Conference on Embedded Computing (MECO)","volume":"12 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2023-06-06","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2023 12th Mediterranean Conference on Embedded Computing (MECO)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/MECO58584.2023.10155001","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
Malicious attackers are constantly attacking software compilers and attempting to exploit various security vulnerabili-ties. By executing carefully chosen machine instructions already present in the program, an attacker can perform harmful actions arbitrarily. In this paper, we propose hardware/software codesign techniques to perform software compilation steps in hardware, specifically the register allocation step on a Field Programmable Gate Array (FPGA). Our experiment incorporates two key features: 1) Advanced RISC Machine (ARM) instruction set architecture (ISA)-based register allocation algorithms to calculate variable liveness as well as map virtual registers to physical registers and 2) the feasibility of executing the register allocation algorithms on a Cyclone V FPGA. Our experimental results show the timing efficiency and resource efficiency - while diminishing security risks - when performing register allocation of the gcd program on the FPGA.
恶意攻击者不断攻击软件编译器并试图利用各种安全漏洞。通过执行程序中已经存在的精心选择的机器指令,攻击者可以任意地执行有害的操作。在本文中,我们提出了硬件/软件协同设计技术来执行硬件中的软件编译步骤,特别是在现场可编程门阵列(FPGA)上的寄存器分配步骤。我们的实验包含两个关键特征:1)基于高级RISC机器(ARM)指令集架构(ISA)的寄存器分配算法,用于计算可变活度以及将虚拟寄存器映射到物理寄存器;2)在Cyclone V FPGA上执行寄存器分配算法的可行性。我们的实验结果表明,在FPGA上执行gcd程序的寄存器分配时,时序效率和资源效率-同时降低了安全风险。