论文标题

符号快速错误检测的理论框架

A Theoretical Framework for Symbolic Quick Error Detection

论文作者

Lonsing, Florian, Mitra, Subhasish, Barrett, Clark

论文摘要

符号快速错误检测(SQED)是针对处理器设计的正式前硅验证技术。它利用有限的模型检查(BMC)检查了对自相连属性的反例设计的设计:给定设计的指令集体系结构(ISA),在同一输入上两次执行指令序列必须始终产生相同的输出。自矛盾是一种通用的,独立于实现的属性。因此,与使用特定于实施的断言(通常是手动生成)的传统验证方法相反,SQED不需要完整的正式设计规范或手动编写的属性。案例研究表明,SQED对于商业设计有效,SQED显着提高了设计生产力。但是,到目前为止,还没有正式表征其错误调查功能。我们的目标是通过为SQED奠定正式基础来缩小这一差距。我们使用过渡系统处理器模型,并使用抽象规范关系定义错误的概念。我们证明了SQED的健全性,即SQED报告的任何错误实际上都是处理器中的真正错误。重要的是,无论实际规范关系是什么,该结果都会成立。接下来,我们描述了SQED完成的条件,也就是说,它可以保证找到哪些错误。我们表明,对于一大群错误,SQED总是可以找到显示该错误的痕迹。最终,我们证明了使用专门状态重置说明的SQED变体的完整性。我们的结果使得对SQED及其检测功能有严格的了解,并就如何优化实践中的SQED实现提供了见解。

Symbolic quick error detection (SQED) is a formal pre-silicon verification technique targeted at processor designs. It leverages bounded model checking (BMC) to check a design for counterexamples to a self-consistency property: given the instruction set architecture (ISA) of the design, executing an instruction sequence twice on the same inputs must always produce the same outputs. Self-consistency is a universal, implementation-independent property. Consequently, in contrast to traditional verification approaches that use implementation-specific assertions (often generated manually), SQED does not require a full formal design specification or manually-written properties. Case studies have shown that SQED is effective for commercial designs and that SQED substantially improves design productivity. However, until now there has been no formal characterization of its bug-finding capabilities. We aim to close this gap by laying a formal foundation for SQED. We use a transition-system processor model and define the notion of a bug using an abstract specification relation. We prove the soundness of SQED, i.e., that any bug reported by SQED is in fact a real bug in the processor. Importantly, this result holds regardless of what the actual specification relation is. We next describe conditions under which SQED is complete, that is, what kinds of bugs it is guaranteed to find. We show that for a large class of bugs, SQED can always find a trace exhibiting the bug. Ultimately, we prove full completeness of a variant of SQED that uses specialized state reset instructions. Our results enable a rigorous understanding of SQED and its bug-finding capabilities and give insights on how to optimize implementations of SQED in practice.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源