Skip to main content
QUICK REVIEW

[论文解读] A Multipurpose Formal RISC-V Specification.

Thomas Bourgeat, Ian Clester|arXiv (Cornell University)|Apr 1, 2021
Logic, programming, and type systems参考文献 20被引用 6
一句话总结

本文提出了一种多用途、形式化的RISC-V规范,使用可扩展的'洞'机制,在Haskell中实现,以支持多样化的形式化方法项目——如处理器正确性证明和编译器正确性证明——通过允许自定义实例化。这是首个在不需引入新的领域专用工具的前提下,统一多个形式化验证工作的RISC-V规范。

ABSTRACT

RISC-V is a relatively new, open instruction set architecture with a mature ecosystem and an official formal machine-readable specification. It is therefore a promising playground for formal-methods research. However, we observe that different formal-methods research projects are interested in different aspects of RISC-V and want to simplify, abstract, approximate, or ignore the other aspects. Often, they also require different encoding styles, resulting in each project starting a new formalization from-scratch. We set out to identify the commonalities between projects and to represent the RISC-V specification as a program with holes that can be instantiated differently by different projects. Our formalization of the RISC-V specification is written in Haskell and leverages existing tools rather than requiring new domain-specific tools, contrary to other approaches. To our knowledge, it is the first RISC-V specification able to serve as the interface between a processor-correctness proof and a compiler-correctness proof, while supporting several other projects with diverging requirements as well.

研究动机与目标

  • 为解决RISC-V形式化研究中的碎片化问题,即每个项目因需求不同而从头重新实现规范。
  • 识别针对RISC-V的形式化验证项目中的共同抽象。
  • 设计一个单一、可扩展的形式化规范,以支持具有不同需求的多个项目。
  • 通过重用现有的基于Haskell的形式化工具,避免构建新的领域专用工具。
  • 在RISC-V验证中,创建处理器正确性与编译器正确性证明之间的统一接口。

提出的方法

  • 规范使用带有'洞'的程序抽象在Haskell中进行编码,其中'洞'代表可配置或抽象化的组件。
  • 该方法利用现有形式化工具,而非引入新的领域专用语言或验证框架。
  • 不同项目可根据需要将'洞'实例化为不同细节层次,从而实现简化、抽象或近似。
  • 规范设计得足够精确以支持正确性证明,同时足够灵活以支持多种形式化方法用例。
  • 形式化结构旨在作为处理器与编译器验证工作之间的互操作接口。

实验结果

研究问题

  • RQ1如何使单一形式化RISC-V规范支持多个需求各异的形式化方法项目?
  • RQ2在RISC-V的处理器正确性与编译器正确性证明中,哪些抽象是共通的?
  • RQ3是否可以在不引入新领域专用工具的前提下构建统一规范?
  • RQ4如何使形式化规范具备足够的可扩展性,以同时支持底层处理器验证和高层编译器验证?
  • RQ5可扩展的'洞'在支持形式化验证项目间复用与自定义方面发挥什么作用?

主要发现

  • 所提出的规范成功地作为RISC-V中处理器正确性与编译器正确性证明之间的统一接口。
  • 使用'洞'使得不同项目能够自定义抽象与细节层次,而无需重写核心规范。
  • 该方法通过重用现有的基于Haskell的形式化基础设施,避免了对新领域专用工具的需求。
  • 该规范是首个通过单一、可扩展的形式化实现,支持多个需求各异的形式化方法项目的规范。
  • 该方法通过支持共享的、模块化规范开发,减少了形式化验证工作中的重复。

更好的研究,从现在开始

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

无需绑定信用卡

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