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

技术编号:8532834 阅读:266 留言:0更新日期:2013-04-04 15:50
面向多核程序确定性重演的内存竞争记录装置及其控制方法,涉及一种内存竞争记录装置,为了解决实现内存竞争记录的方法成本高的问题。它为基于Cache一致性协议的多核处理器系统,实现了多核程序运行时内存竞争的记录,所述记录的方法不直接记录内存竞争对应的依赖关系,而是记录用竞争发生时由竞争双方所在处理器核的当前指令表示的间接依赖关系,为每个线程记录一个由间接依赖关系构成的内存竞争日志;记录内存竞争的间接依赖关系,无需为每个内存块保存对应内存操作指令的指令计数值,而是为每条指令存储一个具有更小尺寸的段时戳。同时使用分段方法实现内存竞争日志的约减,大大降低了硬件资源消耗。它用于多核程序调试、入侵检测和容错。

【技术实现步骤摘要】

本专利技术涉及ー种内存竞争记录装置,特别涉及一种。
技术介绍
随着多核处理器的流行,多核程序的应用越来越广泛.然而,多核程序运行的结果存在不确定性,给程序调试、容错处理、入侵检测等应用带来了众多挑战,也制约了并行计算的发展。多核程序确定性重演通过记录多核程序运行时的不确定性信息,能够解决多核程序运行的不确定性。其中,内存竞争记录是实现多核程序确定性重演的关键技木。目前实现的内存竞争记录方法存在的性能成本大的问题。
技术实现思路
本专利技术的目的是为了解决实现内存竞争记录的方法成本高的问题,本专利技术提供一种。本专利技术的面向多核程序确定性重演的内存竞争记录装置,它包括多个处理器核和共享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),这时本文档来自技高网...

【技术保护点】
面向多核程序确定性重演的内存竞争记录装置,它包括多个处理器核和共享L2数据Cache,所述多个处理器核与共享L2数据Cache通过互联网络进行数据交换,处理器核还包括内存竞争记录模块MRR、私有L1数据Cache、私有L1指令Cache、Cache一致性协议控制器和指令流水线;内存竞争记录模块MRR,用于检测内存竞争并记录;私有L1数据Cache,用于存放处理器核最近访问过的数据;私有L1指令Cache,用于存放处理器核最近访问过的指令;Cache一致性协议控制器,用于保证所有处理器核数据Cache中保留的共享数据的副本一致;指令流水线,用于在处理器核的各个寄存器同时工作时,控制寄存器处理数据的顺序;所述内存竞争记录模块包括64bits指令计数器、56bits段计数器、(处理器核数目?1)*56bits段时戳向量SCV和控制逻辑模块;56bits段计数器,用于记录段时戳;64bits指令计数器,用于记录指令的数目;段时戳向量SCV,用于存放着其他处理器核对应的段时戳,所述段时戳的数量为(处理器核数目?1);所述私有L1数据Cache中的每个Cache块还包括一个字段:段时戳SC;所述段时戳SC,用于记录最新的内存竞争;控制逻辑模块,用于控制内存竞争记录模块检测内存竞争并记录的流程。...

【技术特征摘要】
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 —致性...

【专利技术属性】
技术研发人员:朱素霞季振洲陈志刚吴昊王庆王晖李聪
申请(专利权)人:哈尔滨工业大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1