Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
EveCheck: An Event-Driven, Scalable Algorithm for Coherent Shared Memory Verification
IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems ( IF 2.7 ) Pub Date : 5-25-2022 , DOI: 10.1109/tcad.2022.3178051
Marleson Graf 1 , Gabriel A. G. Andrade 1 , Luiz C. V. dos Santos 1
Affiliation  

Cache coherence and relaxed memory consistency challenge the design verification of multicore chips. The well-known self-checking approach based on litmus tests has been successful in uncovering design errors, but it leads to limited coverage. That is why random or directed test generation approaches are used for proper coverage control, but they require a specialized checker to verify shared memory behavior. Unfortunately, the inference-based checkers that provide guarantees against false positives and false negatives are not scalable with core count (unless some memory orderings are known beforehand). On the other hand, scoreboard-based checkers are scalable, but do not offer guarantees against false diagnosis. This article proposes an event-driven algorithm that is scalable without renouncing verification quality, because it relies on direct partial order verification, on-the-fly detection of improper memory orderings, exploitation of extended observability not hampered by design optimizations, and agnostic handling of store atomicity at the implementation level. We compared the new algorithm with two scoreboard-based and one inference-based checker reported in the literature. EveCheck often reaches full error detection with half the test size required by the other checkers, has superior verification quality, and less sensitivity to test generation parameters. Its effort to detect errors was one order of magnitude inferior as compared to the inference-based checker. It did not raise false positives in correct designs, and it was able to discover all the errors studied in faulty designs.

中文翻译:


EveCheck:用于一致共享内存验证的事件驱动、可扩展算法



缓存一致性和宽松的内存一致性对多核芯片的设计验证提出了挑战。众所周知的基于石蕊测试的自检方法已经成功地发现了设计错误,但它导致覆盖范围有限。这就是为什么使用随机或定向测试生成方法来进行适当的覆盖控制,但它们需要专门的检查器来验证共享内存行为。不幸的是,基于推理的检查器提供了针对误报和漏报的保证,但无法根据核心数量进行扩展(除非事先知道某些内存顺序)。另一方面,基于记分板的检查器是可扩展的,但不能保证防止错误诊断。本文提出了一种事件驱动算法,该算法可扩展且不放弃验证质量,因为它依赖于直接偏序验证、不正确内存排序的即时检测、不受设计优化阻碍的扩展可观察性的利用,以及不可知的处理在实现级别存储原子性。我们将新算法与文献中报道的两种基于记分板和一种基于推理的检查器进行了比较。 EveCheck 通常以其他检查器所需的测试大小的一半来实现完整的错误检测,具有卓越的验证质量,并且对测试生成参数的敏感性较低。与基于推理的检查器相比,它检测错误的努力要低一个数量级。它不会在正确的设计中引发误报,并且能够发现错误设计中研究的所有错误。
更新日期:2024-08-26
down
wechat
bug