现代多核处理器验证技术与未来展望
1. 多核处理器的运行时验证解决方案
在现代多核处理器的验证领域,有两种专门设计的运行时验证解决方案,分别是动态内存一致性验证(DVMC)和Caspar。
1.1 动态内存一致性验证(DVMC)
DVMC基于不可编程的检查器,强制执行所有内存一致性模型共有的三个不变量:单处理器排序、允许的重排序和缓存一致性。当检测到违反不变量的情况时,DVMC使用检查点技术回滚处理器的状态并重新开始执行。它依赖于更重量级的检查点方案(SafetyNet),该方案对性能的影响较小,但会占用较大比例的硅片面积。
1.2 Caspar
Caspar是为多核处理器内存子系统的高效现场修补和修复而设计的。与DVMC一样,Caspar依赖于定期的系统检查点,但使用可编程事件检测器来识别缓存控制器状态机中的错误转换。当在处理器运行期间检测到错误时,Caspar会暂停执行,恢复最后一个正确的检查点系统状态,并尝试通过强制执行无竞争的内存活动来绕过错误。实验结果表明,Caspar的检查点方案带来的性能和面积损失较小,分别为2.4%和5.8%。在设计中没有错误的情况下,Caspar(由于检查点)的性能影响仍然很小。当出现错误时,恢复可能会变得昂贵,但在低错误频率的情况下,总体性能损失也较小,这使得Caspar成为一种有效的修补解决方案。
以下是Caspar和DVMC的特点对比表格:
| 解决方案 | 检查器类型 | 检查点方案 | 性能影响 | 面积占用 |
| — | — | — | — | — |
| DVMC | 不可编程检查器 | SafetyNet(重) | 较小 | 较大