多核心处理器后硅验证:缓存一致性与内存一致性检查技术
在多核心处理器的设计与验证过程中,缓存一致性和内存一致性的验证是至关重要却又极具挑战的任务。由于硬件组件对执行软件的透明性,使得检测和诊断这些组件中的错误变得十分困难。例如,典型程序在不进行精确执行时间测量的情况下,无法区分缓存命中的加载操作和传播到主内存的加载操作。同时,用户级程序无法探测缓存控制器和TLB的状态,这就导致在不暂停执行并通过调试端口访问CPU微架构状态的情况下,无法验证一致性协议的行为。然而,这种中断可能会改变一致性和一致性事件的时序,掩盖一些由于特定通信消息时序而产生的难以发现的边缘情况错误。
1. 后硅验证技术概述
为了有效验证多核心设计中的共享内存通信,有两种后硅验证技术值得关注:
- 第一种技术专门针对缓存一致性协议的验证,旨在最小化产品最终用户的面积损失和性能成本。
- 第二种技术用于后硅内存一致性验证,在性能开销最小的情况下进行验证,但需要添加多个特定于验证的片上模块,因此会带来明显的面积成本。
2. 使用字符串匹配进行缓存一致性验证(CoSMa)
CoSMa是一种用于共享内存多核心设计的后硅缓存一致性验证解决方案。它采用了一种新颖的分布式跟踪机制,监控每个核心的本地缓存以及共享二级缓存中的一致性活动。这些活动被记录并紧凑地存储在现有的片上结构中,以最小化面积开销。然后,通过软件实现的字符串匹配算法定期检查是否存在不一致情况,从而揭示一致性违规。
2.1 CoSMa对多核架构的改造
当CoSMa启用后硅验证时,每个核心的私有L1缓存的一部分会被转换为日志活动存储,动态跟踪各个缓存行的一致性状态。同样,二级缓存的