TY - JOUR
T1 - Instruction-level abstraction (ILA)
T2 - A uniform specification for system-on-chip (SOC) verification
AU - Huang, Bo Yuan
AU - Zhang, Hongce
AU - Subramanyan, Pramod
AU - Vizel, Yakir
AU - Gupta, Aarti
AU - Malik, Sharad
N1 - Funding Information:
This work was supported by the Applications Driving Architectures (ADA) Research Center, a JUMP Center co-sponsored by SRC and DARPA. Authors’ addresses: B.-Y. Huang and H. Zhang, Princeton University, Princeton, 1 Nassau Hall, Princeton, New Jersey, 08544, USA; emails: {byhuang, hongcez}@princeton.edu; P. Subramanyan, Indian Institute of Technology Kanpur, Nankari, Kalyanpur, Kanpur, Uttar Pradesh 208016, India; email: spramod@cse.iitk.ac.in; Y. Vizel, Technion Israel Institute of Technology, Haifa, Viazman 87, Technion City, Haifa, Haifa District 3200003, Israel; email: yvizel@cs.technion.ac.il; A. Gupta and Sharad Malik, Princeton University, Princeton, 1 Nassau Hall, Princeton, New Jersey, 08544, USA; emails: aartig@ cs.princeton.edu, sharad@princeton.edu. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from permissions@acm.org. © 2018 Association for Computing Machinery. 1084-4309/2018/12-ART10 $15.00 https://doi.org/10.1145/3282444
Publisher Copyright:
© 2018 Association for Computing Machinery.
PY - 2019/1
Y1 - 2019/1
N2 - Modern Systems-on-Chip (SoC) designs are increasingly heterogeneous and contain specialized semi-programmable accelerators in addition to programmable processors. In contrast to the pre-accelerator era, when the ISA played an important role in verification by enabling a clean separation of concerns between software and hardware, verification of these “accelerator-rich” SoCs presents new challenges. From the perspective of hardware designers, there is a lack of a common framework for formal functional specification of accelerator behavior. From the perspective of software developers, there exists no unified framework for reasoning about software/hardware interactions of programs that interact with accelerators. This article addresses these challenges by providing a formal specification and high-level abstraction for accelerator functional behavior. It formalizes the concept of an Instruction Level Abstraction (ILA), developed informally in our previous work, and shows its application in modeling and verification of accelerators. This formal ILA extends the familiar notion of instructions to accelerators and provides a uniform, modular, and hierarchical abstraction for modeling software-visible behavior of both accelerators and programmable processors. We demonstrate the applicability of the ILA through several case studies of accelerators (for image processing, machine learning, and cryptography), and a general-purpose processor (RISC-V). We show how the ILA model facilitates equivalence checking between two ILAs, and between an ILA and its hardware finite-state machine (FSM) implementation. Further, this equivalence checking supports accelerator upgrades using the notion of ILA compatibility, similar to processor upgrades using ISA compatibility.
AB - Modern Systems-on-Chip (SoC) designs are increasingly heterogeneous and contain specialized semi-programmable accelerators in addition to programmable processors. In contrast to the pre-accelerator era, when the ISA played an important role in verification by enabling a clean separation of concerns between software and hardware, verification of these “accelerator-rich” SoCs presents new challenges. From the perspective of hardware designers, there is a lack of a common framework for formal functional specification of accelerator behavior. From the perspective of software developers, there exists no unified framework for reasoning about software/hardware interactions of programs that interact with accelerators. This article addresses these challenges by providing a formal specification and high-level abstraction for accelerator functional behavior. It formalizes the concept of an Instruction Level Abstraction (ILA), developed informally in our previous work, and shows its application in modeling and verification of accelerators. This formal ILA extends the familiar notion of instructions to accelerators and provides a uniform, modular, and hierarchical abstraction for modeling software-visible behavior of both accelerators and programmable processors. We demonstrate the applicability of the ILA through several case studies of accelerators (for image processing, machine learning, and cryptography), and a general-purpose processor (RISC-V). We show how the ILA model facilitates equivalence checking between two ILAs, and between an ILA and its hardware finite-state machine (FSM) implementation. Further, this equivalence checking supports accelerator upgrades using the notion of ILA compatibility, similar to processor upgrades using ISA compatibility.
KW - Application-specific accelerator
KW - Architecture
KW - Equivalence checking
KW - Formal verification
KW - Hardware specification
KW - Instruction-level abstraction
KW - System on chip
UR - http://www.scopus.com/inward/record.url?scp=85060144673&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85060144673&partnerID=8YFLogxK
U2 - 10.1145/3282444
DO - 10.1145/3282444
M3 - Article
AN - SCOPUS:85060144673
SN - 1084-4309
VL - 24
JO - ACM Transactions on Design Automation of Electronic Systems
JF - ACM Transactions on Design Automation of Electronic Systems
IS - 1
M1 - 10
ER -