Skip to main content
QUICK REVIEW

[论文解读] Instruction-Level Abstraction (ILA): A Uniform Specification for System-on-Chip (SoC) Verification

Bo-Yuan Huang, Hongce Zhang|Rare & Special e-Zone (The Hong Kong University of Science and Technology)|Jan 3, 2018
Formal Methods in Verification参考文献 41被引用 14
一句话总结

本文提出指令级抽象(ILA)作为一种面向片上系统(SoC)验证的正式、统一规范,支持对处理器和加速器进行模块化、分层化且可形式化验证的建模。通过将加速器命令视为具有明确定义状态转换的‘指令’,ILA 支持 ILA 模型与 RTL 实现之间的等价性检查,实现类似指令集架构(ISA)的兼容性,从而支持异构 SoC 中可扩展的形式化验证。

ABSTRACT

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 the 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 paper 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.

研究动机与目标

  • 解决现代异构 SoC 中加速器行为缺乏统一正式规范框架的问题。
  • 提供一种统一的抽象,使处理器和加速器均可使用相同方法论进行形式化验证。
  • 通过将加速器交互建模为类似指令的操作,弥合加速器丰富系统中软件与硬件之间的抽象鸿沟。
  • 通过高层级、模块化且分层的规范,实现硬件-软件交互的可扩展形式化验证。
  • 通过 ILA 兼容性支持加速器升级,类似于 ISA 级处理器升级。

提出的方法

  • 将 ILA 定义为一种正式模型,其中每个加速器命令被视为一种指令,可引发持久架构状态的转换。
  • 使用相同的 ILA 正式化方法对处理器和加速器进行建模,实现统一规范与验证。
  • 利用 SMT 求解器和形式等价性检查,验证 ILA 模型与其实现的 RTL 有限状态机(FSM)在功能上的一致性。
  • 通过分层组合技术,将复杂指令建模为子指令和微指令的序列,实现模块化与抽象化。
  • 在加速器的 ILA 模型上复用现有的处理器验证技术,如等价性检查和模型检查。
  • 通过在 RISC-V(Rocket 核心)、图像处理(高斯模糊)、密码学(AES)和机器学习(RBM)加速器上的案例研究验证该方法。

实验结果

研究问题

  • RQ1如何为处理器和加速器定义一种统一的正式规范模型,以实现一致的验证?
  • RQ2ILA 在多大程度上能够支持复杂加速器行为的模块化、分层化和可组合建模?
  • RQ3ILA 模型与 RTL 实现之间的等价性检查在真实加速器上是否可有效扩展?
  • RQ4ILA 如何实现类似 ISA 级处理器升级的基于兼容性的加速器升级?
  • RQ5ILA 的形式化验证能否有效检测真实加速器和处理器设计中的实现错误?

主要发现

  • ILA 模型成功实现了对加速器和处理器的 ILA 规范与 RTL 实现之间的形式等价性检查,验证过程具有高度完备性。
  • 本文识别出先前 ISA 正式化方法(如 ISA Formal)在规范层次与实现结构之间存在建模缺口。
  • 通过基于 ILA 的形式化验证,在 RISC-V Rocket 核心实现中发现了一个错误,证明了该方法在真实设计验证中的实际效用。
  • 基于 ILA 的模型检查验证了 OpenCores 的 AES 加速器和 RISC-V Rocket 核心,表明其在工业应用中具备可扩展性和实际可行性。
  • ILA 框架支持在加速器丰富系统中实现可靠的模拟器生成、并发性推理和内存一致性建模。
  • 该方法支持通过 ILA 兼容性实现加速器替换,类似于 ISA 级处理器升级,从而提供长期的软件可移植性与可维护性。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。