论文标题
真人秀检查:将模块化,层次结构和抽象带入自动化微体系记忆一致性验证
RealityCheck: Bringing Modularity, Hierarchy, and Abstraction to Automated Microarchitectural Memory Consistency Verification
论文作者
论文摘要
现代SOC是由不同团队甚至不同供应商开发的组件组成的异质平行系统。此类SOC中处理器的内存一致性模型(MCM)指定了订购规则,这些规则限制了可以通过在此类系统上运行的并行程序中的加载指令读取的值。所需的MCM订购的实施可以跨越可能由许多不同团队设计和实施的组件。理想情况下,每个团队都可以独立指定其组件强制执行的订单,然后在进行MCM验证时将它们连接在一起。但是,没有以前的自动化方法用于正式硬件MCM验证。 为了将自动硬件MCM验证符合设计过程的现实性,我们提供了RealityCheck,这是一种自动化的正式MCM验证模块化微构造订购规范的方法和工具。 RealityCheck允许用户将其设计指定为相互连接的不同模块的层次结构,而不是单个平面规范。然后,它可以根据这些模块化规格自动验证石榴石测试程序。 RealityCheck还提供了对抽象的支持,通过将整个设计的验证分解为较小的验证问题,可以实现可扩展的验证。我们提出了使用Reality检查对7种不同设计进行石榴石测试的结果。这些包括秩和端管道,非阻滞缓存和异质处理器。我们的案例研究涵盖了TSO和RISC-V(RVWMO)弱记忆模型。 RealityCheck能够在不到4分钟内验证98次RVWMO LITMUS测试,并且其抽象能力可在LITMUS测试验证时间减少32.1%的RVWMO。
Modern SoCs are heterogeneous parallel systems comprised of components developed by distinct teams and possibly even different vendors. The memory consistency model (MCM) of processors in such SoCs specifies the ordering rules which constrain the values that can be read by load instructions in parallel programs running on such systems. The implementation of required MCM orderings can span components which may be designed and implemented by many different teams. Ideally, each team would be able to specify the orderings enforced by their components independently and then connect them together when conducting MCM verification. However, no prior automated approach for formal hardware MCM verification provided this. To bring automated hardware MCM verification in line with the realities of the design process, we present RealityCheck, a methodology and tool for automated formal MCM verification of modular microarchitectural ordering specifications. RealityCheck allows users to specify their designs as a hierarchy of distinct modules connected to each other rather than a single flat specification. It can then automatically verify litmus test programs against these modular specifications. RealityCheck also provides support for abstraction, which enables scalable verification by breaking up the verification of the entire design into smaller verification problems. We present results for verifying litmus tests on 7 different designs using RealityCheck. These include in-order and out-of-order pipelines, a non-blocking cache, and a heterogeneous processor. Our case studies cover the TSO and RISC-V (RVWMO) weak memory models. RealityCheck is capable of verifying 98 RVWMO litmus tests in under 4 minutes each, and its capability for abstraction enables up to a 32.1% reduction in litmus test verification time for RVWMO.