面向多核程序确定性重演的内存竞争记录装置及其控制方法

文档序号:6386352阅读:139来源:国知局
专利名称:面向多核程序确定性重演的内存竞争记录装置及其控制方法
技术领域
本发明涉及ー种内存竞争记录装置,特别涉及一种面向多核程序确定性重演的内存竞争记录装置及其控制方法。
背景技术
随着多核处理器的流行,多核程序的应用越来越广泛.然而,多核程序运行的结果存在不确定性,给程序调试、容错处理、入侵检测等应用带来了众多挑战,也制约了并行计算的发展。多核程序确定性重演通过记录多核程序运行时的不确定性信息,能够解决多核程序运行的不确定性。其中,内存竞争记录是实现多核程序确定性重演的关键技木。目前实现的内存竞争记录方法存在的性能成本大的问题。

发明内容
本发明的目的是为了解决实现内存竞争记录的方法成本高的问题,本发明提供一种面向多核程序确定性重演的内存竞争记录装置及其控制方法。本发明的面向多核程序确定性重演的内存竞争记录装置,它包括多个处理器核和共享L2数据Cache,所述多个处理器核与共享L2数据Cache通过互联网络进行数据交換,处理器核还包括内存竞争记录模块MRR、私有LI数据Cache、私有LI指令Cache、Cache 一致性协议控制器和指令流水线;内存竞争记录模块MRR,用于检测内存竞争并记录;私有LI数据Cache,用于存放处理器核最近访问过的数据;私有LI指令Cache,用于存放处理器核最近访问过的指令;Cache 一致性协议控制器,用于保证所有处理器核数据Cache中保留的共享数据的副本一致;指令流水线,用于在处理器核的各个寄存器同时工作时,控制寄存器处理数据的顺序;所述内存竞争记录模块包括64bits指令计数器、56bits段计数器、(处理器核数目-l)*56bits段时戳向量SCV和控制逻辑模块;56bits段计数器,用于记录段时戳;64bits指令计数器,用于记录指令的数目;段时戳向量SCV,用于存放着其他处理器核对应的段时戳,所述段时戳的数量为(处理器核数目-1);所述私有LI数据Cache中的每个Cache块还包括一个字段段时戳SC ;所述段时戳SC,用于记录最新的内存竞争;控制逻辑模块,用于控制内存竞争记录模块检测内存竞争并记录的流程。上述装置的控制方法,所述控制逻辑模块的工作过程包括如下步骤当提交的指令为内存操作指令吋,更新64bits指令计数器IC的值,并设置对应内存操作的内存块的段时戳的步骤;当接收到请求方一致性请求时,通过Cache —致性协议控制器检测是否有内存竞争发生的步骤;当Cache —致性协议控制器检测到内存竞争时,利用分段方法判断所述内存竞争是否需要记录的步骤;当内存竞争需要记录时,在发送给请求方的一致性应答消息中添加记录标志位和当前指令计数值CIC,并结束旧段,创建新段,更新对应请求方的段时戳的步骤;当Cache —致性协议控制器的请求方收到一致性应答消息时,判断冲突记录标志位是否为真的步骤;当冲突记录标志位为真时,将内存竞争的间接依赖关系记录在请求方的内存竞争·日志中的步骤。本发明的优点在于,本发明在多核处理器系统原有的Cache —致性协议基础上实现内存竞争的检测及记录,内存竞争的检测在应答方进行,内存竞争的记录在请求方进行,只有在检测到内存竞争时,才会在应答消息中添加一个冲突记录标志位和当前指令计数值CIC,这样,大大減少了对原有带宽的影响。相比先前的内存竞争记录方法,该方法有如下突出优点1、用硬件实现内存竞争的记录,对原有系统的性能影响小。2、用间接依赖关系表示内存竞争,可以约减掉更多的内存竞争,減少内存竞争日
o3、用段时戳标记内存操作指令的时戳,硬件资源消耗少。4、无需修改原有的Cache —致性协议。本发明可以应用在多核程序调试、入侵检测、容错等领域。


图1为本发明的面向多核程序确定性重演的内存竞争记录装置的结构示意图。图2为本发明的面向多核程序确定性重演的内存竞争记录装置中处理器核的结构示意图。图3为本发明具体实施方式
三中用间接依赖关系表示内存竞争的示意图。图4为本发明具体实施方式
五中用间接依赖关系表示内存竞争的示意图。图5为记录图4的内存竞争的流程示意图。
具体实施例方式具体实施方式
一结合图1和图2说明本实施方式,本实施方式所述的面向多核程序确定性重演的内存竞争记录装置,它包括多个处理器核和共享L2数据Cache,所述多个处理器核与共享L2数据Cache通过互联网络进行数据交換,处理器核还包括内存竞争记录模块MRR、私有LI数据Cache、私有LI指令Cache、Cache 一致性协议控制器和指令流水线;内存竞争记录模块MRR,用于检测内存竞争并记录;私有LI数据Cache,用于存放处理器核最近访问过的数据;
私有LI指令Cache,用于存放处理器核最近访问过的指令;Cache 一致性协议控制器,用于保证所有处理器核的私有LI数据Cache中保留的共享数据的副本一致;指令流水线,用于在处理器核的各个寄存器同时工作时,控制寄存器处理数据的顺序;所述内存竞争记录模块包括64bits指令计数器、56bits段计数器、(处理器核数目-l)*56bits段时戳向量SCV和控制逻辑模块;56bits段计数器,用于记录段时戳;64bits指令计数器,用于记录指令的数目;段时戳向量SCV,用于存放着其他处理器核对应的段时戳,所述段时戳的数量为 (处理器核数目-1);所述私有LI数据Cache中的每个Cache块还包括一个字段段时戳SC ;所述段时戳SC,用于记录最新的内存竞争;控制逻辑模块,用于控制内存竞争记录模块检测内存竞争并记录的流程。Cache为高速缓冲存储器。MRR的英文全拼为Memory Race Recorder。
具体实施方式
ニ 本实施方式为具体实施方式
一所述的面向多核程序确定性重演的内存竞争记录装置的控制方法,所述控制逻辑模块的工作过程包括如下步骤当提交的指令为内存操作指令吋,更新64bits指令计数器IC的值,并设置对应内存操作的内存块的段时戳的步骤;当接收到请求方一致性请求时,通过Cache —致性协议控制器检测是否有内存竞争发生的步骤;当Cache —致性协议控制器检测到内存竞争时,利用分段方法判断所述内存竞争是否需要记录的步骤;当内存竞争需要记录时,在发送给请求方的一致性应答消息中添加记录标志位和当前指令计数值CIC,并结束旧段,创建新段,更新对应请求方的段时戳的步骤;当Cache —致性协议控制器的请求方收到一致性应答消息时,判断冲突记录标志位是否为真的步骤;当冲突记录标志位为真时,将内存竞争的间接依赖关系记录在请求方的内存竞争日志中的步骤。
具体实施方式
三本实施方式是对具体实施方式
ニ所述的面向多核程序确定性重演的内存竞争记录装置的控制方法的进ー步限定,所述间接依赖关系为1: w — j : V ;w和V分别表示当内存竞争1:x — j:y发生时,线程i和线程j的当前指令计数值CIC ;X和y分别表示当内存竞争发生时,线程i和线程j对内存块操作时64bits指令计数器IC的值。间接依赖关系用1:w — j : V来表示。W、V表示发生冲突1:x — j:y发生时,线程1、j 的当前指令计数值 CIC (CIC, Current dynamic Instruction Count)。如图 3 所不,有两个线程i和j都对z执行写操作,线程j先对z进行写操作,此操作对应的指令计数值IC(IC, dynamic Instruction Count)值为I,之后线程i再对z执行写操作(IC = 3),这时检测到内存冲突j:l —1: 3,而此时线程j已执行完IC = 2的指令,即CIC = 2,在记录内存竞争时,不再记录准确的内存竞争依赖关系j :1 — i 3,而是记录j : 2 —1: 3这个间接依赖关系。同样,线程1、j间的其他内存竞争同样可以采用这种间接依赖关系来表示,中带箭头的实线所示,64bits指令计数器中存储指令计数值1C。
具体实施方式
四本实施方式是对具体实施方式
ニ所述的面向多核程序确定性重演的内存竞争记录装置的控制方法的进ー步限定,所述当Cache —致性协议控制器检测到内存竞争时,利用分段方法判断所述内存竞争是否需要记录的步骤为当所述内存竞争对应的请求方线程对应的段时戳不小于请求方的最新段时戳,判定内存竞争需要记录的步骤。用间接依赖关系表示内存竞争,存在某些内存竞争可以通过已记录的间接依赖关 系推导出来,这些内存竞争可以被约减掉,无需记录到内存竞争日志中。如图3所示,内存竞争1:l — j:4可以由间接依赖关系1:3 — j:3推导出来,内存竞争1:3 — j:5也可以由间接依赖关系1:3 — j:3推导出来,依此类推,许多内存竞争可以约减棹。本发明使用分段方法来约减内存竞争,并引入段时戳来标记每条指令的时戳。具体操作如下通过判断冲突的先发生方所在段的时戳是否不小于最新段时戳,来决定此冲突的间接依赖关系是否需要记录。从而,可以约减掉许多不需要记录的内存竞争。
具体实施方式
五本实施方式是对具体实施方式
ニ所述的面向多核程序确定性重演的内存竞争记录装置的控制方法的进ー步限定,所述当提交的指令为内存操作指令吋,更新64bits指令计数器IC的值,并设置对应内存操作的内存块的段时戳的步骤中的内存操作指令为store指令或load指令,store指令,用于向存储器中写数据的指令;Ioad指令,用于从存储器中读数据的指令。图4为用间接依赖关系表不内存竞争的不意图,图5为记录所述内存竞争过程的示意图。两个线程Pl和P2分别运行在处理器核i和j上,线程i首先对X进行写操作,之后线程j又对X进行写操作。当Pl写X后吋,X所在Cache块的状态为M状态,当P2写X吋,向一致性协议机构发出一致性请求GETX,目录收到此消息后,再将此请求消息转发给PLPl收到请求消息后,结合消息的类型和自身存储的变量X的状态,检测到内存竞争(写之后又被写),此时Pl更新线程i的段时戳及它所记录的j线程的最新段时戳,并将冲突记录标志和P当前的指令计数值CIC(此时CIC = 3)连同X的内容一同发送给请求方P2 ;P2收到应答消息后,首先检测记录标志是否为真,如果为真,则记录此内存的间接依赖关系3 — 2到j线程的内存竞争日志中。
权利要求
1.面向多核程序确定性重演的内存竞争记录装置,它包括多个处理器核和共享L2数据Cache,所述多个处理器核与共享L2数据Cache通过互联网络进行数据交换, 处理器核还包括内存竞争记录模块MRR、私有LI数据Cache、私有LI指令Cache、Cache一致性协议控制器和指令流水线; 内存竞争记录模块MRR,用于检测内存竞争并记录; 私有LI数据Cache,用于存放处理器核最近访问过的数据; 私有LI指令Cache,用于存放处理器核最近访问过的指令; Cache 一致性协议控制器,用于保证所有处理器核数据Cache中保留的共享数据的副本一致; 指令流水线,用于在处理器核的各个寄存器同时工作时,控制寄存器处理数据的顺序; 所述内存竞争记录模块包括64bits指令计数器、56bits段计数器、(处理器核数目-l)*56bits段时戳向量SCV和控制逻辑模块;56bits段计数器,用于记录段时戳;64bits指令计数器,用于记录指令的数目; 段时戳向量SCV,用于存放着其他处理器核对应的段时戳,所述段时戳的数量为(处理器核数目-1); 所述私有LI数据Cache中的每个Cache块还包括一个字段段时戳SC ;所述段时戳SC,用于记录最新的内存竞争; 控制逻辑模块,用于控制内存竞争记录模块检测内存竞争并记录的流程。
2.根据权利要求1所述的面向多核程序确定性重演的内存竞争记录装置的控制方法,其特征在于,所述控制逻辑模块的工作过程包括如下步骤 当提交的指令为内存操作指令时,更新64bits指令计数器IC的值,并设置对应内存操作的内存块的段时戳的步骤; 当接收到请求方一致性请求时,通过Cache —致性协议控制器检测是否有内存竞争发生的步骤; 当Cache —致性协议控制器检测到内存竞争时,利用分段方法判断所述内存竞争是否需要记录的步骤; 当内存竞争需要记录时,在发送给请求方的一致性应答消息中添加记录标志位和当前指令计数值CIC,并结束旧段,创建新段,更新对应请求方的段时戳的步骤; 当Cache —致性协议控制器的请求方收到一致性应答消息时,判断冲突记录标志位是否为真的步骤; 当冲突记录标志位为真时,将内存竞争的间接依赖关系记录在请求方的内存竞争日志中的步骤。
3.根据权利要求2所述的面向多核程序确定性重演的内存竞争记录装置的控制方法,其特征在于,所述间接依赖关系为1: w — j : V ; W和V分别表示当内存竞争1:x — j:y发生时,处理核i和处理核j的当前指令计数值CIC ; X和y分别表示当内存竞争发生时,处理核i和处理核j对内存块操作时64bits指令计数器IC的值。
4.根据权利要求2所述的面向多核程序确定性重演的内存竞争记录装置的控制方法,其特征在于,所述当Cache —致性协议控制器检测到内存竞争时,利用分段方法判断所述内存竞争是否需要记录的步骤为 当所述内存竞争对应的请求方处理核对应的段时戳不小于请求方的最新段时戳,判定内存竞争需要记录的步骤。
5.根据权利要求2所述的面向多核程序确定性重演的内存竞争记录装置的控制方法,其特征在于, 所述当提交的指令为内存操作指令时,更新64bits指令计数器IC的值,并设置对应内存操作的内存块的段时戳的步骤中的内存操作指令为store指令或load指令,store指令,用于向存储器中写数据的指令; Ioad指令,用于从存储器中读数据的指令。
全文摘要
面向多核程序确定性重演的内存竞争记录装置及其控制方法,涉及一种内存竞争记录装置,为了解决实现内存竞争记录的方法成本高的问题。它为基于Cache一致性协议的多核处理器系统,实现了多核程序运行时内存竞争的记录,所述记录的方法不直接记录内存竞争对应的依赖关系,而是记录用竞争发生时由竞争双方所在处理器核的当前指令表示的间接依赖关系,为每个线程记录一个由间接依赖关系构成的内存竞争日志;记录内存竞争的间接依赖关系,无需为每个内存块保存对应内存操作指令的指令计数值,而是为每条指令存储一个具有更小尺寸的段时戳。同时使用分段方法实现内存竞争日志的约减,大大降低了硬件资源消耗。它用于多核程序调试、入侵检测和容错。
文档编号G06F15/167GK103020003SQ20121059002
公开日2013年4月3日 申请日期2012年12月31日 优先权日2012年12月31日
发明者朱素霞, 季振洲, 陈志刚, 吴昊, 王庆, 王晖, 李聪 申请人:哈尔滨工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1