Dacota:多核心架构内存子系统错误检测方案解析
1. 一致性模型与一致性图
1.1 处理器一致性
处理器一致性模型要求给定核心发出的存储操作的感知顺序在整个系统中保持一致。每个核心都要构建自己的一致性图,构建过程与总存储排序(TSO)类似,但仅为本地核心发出的存储操作创建顶点。图中的边包括程序顺序边、地址引用边和从加载操作派生的时间顺序边。
1.2 其他一致性模型
弱一致性模型仅要求特殊指令(如内存屏障)在整个系统中以唯一顺序被感知,而不同核心对同步操作之间的访问交错观察可能不同。在这种情况下,Dacota 除了记录活动日志中的加载和存储操作外,还会记录这些同步指令的发生情况,并将其用作图构建中的顶点。这些同步顶点之间的边从普通内存访问(如加载和存储)的活动日志条目中派生。
1.3 一致性图分析
Dacota 构建一致性图以反映系统中各个核心发出的访问的感知顺序。为了发现功能错误的指标,Dacota 使用深度优先搜索(DFS)算法的修改版本在图中搜索循环,该算法的复杂度为 O(E),其中 E 是图中的边数。此外,为确保最大性能,Dacota 在构建过程中积极应用传递闭包,从而减少最终图中的边数。
以下是 Dacota 一致性图分析的流程:
graph LR
A[开始] --> B[构建一致性图]
B --> C[应用传递闭包]
C --> D[使用修改的DFS算法搜索循环]
D --> E[发现循环则标记错误]
E --> F[结束]
超级会员免费看
订阅专栏 解锁全文
50

被折叠的 条评论
为什么被折叠?



