用签名实现的多核程序内存竞争记录及重演方法技术

技术编号:8532660 阅读:250 留言:0更新日期:2013-04-04 15:34
用签名实现的多核程序内存竞争记录及重演方法,涉及用签名实现的多核程序内存竞争记录及重演方法。它为了解决现有基于硬件的多核程序确定性重演方法中只注重内存竞争记录的性能而忽略内存竞争重演的性能,导致重演时效率低下的问题。签名实现的多核程序内存竞争记录及重演方法为:步骤一、在多核程序原始执行阶段,开启内存竞争记录功能,每个处理器核开始内存竞争记录;步骤二、当所有的处理器核的内存竞争记录完成后,进入多核程序重演阶段,开启内存竞争重演功能。本发明专利技术应用在多核程序调试、入侵检测、容错等领域。

【技术实现步骤摘要】

本专利技术涉及多核程序内存竞争记录的方法,具体涉及。
技术介绍
内存竞争的记录和重演是实现多核程序确定性重演的关键。当前多核程序确定性重演方法中只注重内存竞争记录的性能而忽略内存竞争重演的性能,导致重演时效率低下的问题。
技术实现思路
本专利技术解决了现有基于硬件的多核程序确定性重演方法中只注重内存竞争记录的性能而忽略内存竞争重演的性能,导致重演时效率低下的问题。本专利技术所述的包括如下步骤步骤一、在多核程序原始执行阶段,开启内存竞争记录功能,每个处理器核开始内存竞争记录;步骤二、当所有的处理器核的内存竞争记录完成后,进入多核程序重演阶段,开启内存竞争重演功能。在多核程序原始执行阶段,开启内存竞争记录功能,每个处理器核开始内存竞争记录操作步骤如下A、请求方发出指令,若该指令是读内存操作指令,则IC的值加1,所述的IC的值为指令计数值,将所读的内存块的地址添加到所有的读签名寄存器中,同时请求方发出共享内存请求消息到每个处理器的一致性协议机构,执行步骤B ;若该指令是写内存操作指令,则将要写的内存块的地址添加到所有的写签名寄存器中,同时请求方发出共享内存请求消息到每个处理器的一致性协议机构,执行步骤B ;B、一致性机构收到共享内存请求消息后,将共享内存请求消息转发给其他处理器核,即应答方,执行步骤C ;C、应答方根据接收到的共享内存请求消息的地址到读签名寄存器或写签名寄存器中查找,判断是否有内存竞争发生,若发生内存竞争,则将一个记录标志位和当前指令计数值连同内存块的内容一起发送给请求方,清空对应请求方的写签名寄存器和读签名寄存器;并将伪依赖关系记录到运行在该处理器核上的线程的内存竞争日志中,执行步骤D ;若没有发生内存竞争,则只将内存块的内容发送给请求方,执行步骤A ;D、请求方接收到应答消息后,检测内存竞争记录模块记录的标志位是否为真,若为真,则记录内存竞争依赖关系到内存竞争日志;否则不记录。当所有的处理器核的内存竞争记录完成后,进入多核程序重演阶段,开启内存竞争重演功能,每个处理器核操作步骤如下E、处理器核开始运行时,从运行在该处理器上的线程的内存竞争日志中读取一个记录,并存储到该内存竞争记录过程中使用的寄存器中,执行步骤F ;F、处理器核检测该记录依赖关系,若该记录为伪依赖关系,则当执行完它所对应的指令后,创建唤醒消息、并通过一致性协议发送给对应的处理器,执行步骤G ;若该记录为内存竞争依赖关系,则暂不执行该指令,当接收到唤醒消息时,执行步骤H ;所述的唤醒消息为内存竞争的先发生方所在的处理器核创建并发送的,G、处理器发送完唤醒消息后,该处理器核从内存竞争日志中读取下一条记录,再执行步骤F ;H、处理器接收到合适的唤醒消息后,处理器核从内存竞争日志中读取下一条记录,执行步骤F。本专利技术为基于目录的高速缓存(Cache) —致性协议的多核处理器系统,用较少的硬件资源实现了多核程序运行时内存竞争的记录以及重演时内存竞争的重放。该内存竞争记录及重演方法为每个线程记录一个内存竞争日志,在记录阶段,采用签名实现内存竞争的检测,硬件开销小;在重演阶段,能够主动创建唤醒消息,提高了重演的效率。本专利技术既实现了内存竞争的记录,又能实现高效的内存竞争重演的目的。本专利技术应用在多核程序调试、入侵检测、容错等领域。附图说明图1为本专利技术所述的流程图;图2为每个处理器核开始内存竞争记录操作的流程图;图3为进入多核程序重演阶段,开启内存竞争重演功能每个处理器核操作的流程图;图4为内存竞争日志样式图;图5为内存竞争记录硬件实现结构图。具体实施例方式具体实施方式一、结合图1具体说明本实施方式,本实施方式所述的包括如下步骤步骤一、在多核程序原始执行阶段,开启内存竞争记录功能,每个处理器核开始内存竞争记录;步骤二、当所有的处理器核的内存竞争记录完成后,进入多核程序重演阶段,开启内存竞争重演功能。具体实施方式二、结合图2具体说明本实施方式,本实施方式与具体实施方式一所述的的区别在于步骤一所述的在多核程序原始执行阶段,开启内存竞争记录功能,每个处理器核开始内存竞争记录操作步骤如下A、请求方发出指令,若该指令是读内存操作指令,则IC的值加1,所述的IC的值为指令计数值,将所读的内存块的地址添加到所有的读签名寄存器中,同时请求方发出共享内存请求消息到每个处理器的一致性协议机构,执行步骤B;多核处理器都有一致性协议控制机构,用于保证所有处理器核私有LI数据Cache中保留的共享数据的副本一致,若该指令是写内存操作指令,则将要写的内存块的地址添加到所有的写签名寄存器中,同时请求方发出共享内存请求消息到每个处理器的一致性协议机构,执行步骤B ;B、一致性机构收到共享内存请求消息后,将共享内存请求消息转发给其他处理器核,即应答方,执行步骤C ;C、应答方根据接收到的共享内存请求消息的地址到读签名寄存器或写签名寄存器中查找,判断是否有内存竞争发生,若发生内存竞争,则将一个记录标志位和当前指令计数值连同内存块的内容一起发送给请求方,清空对应请求方的写签名寄存器和读签名寄存器;并将伪依赖关系记录到运行在该处理器核上的线程的内存竞争日志中,执行步骤D ;若没有发生内存竞争,则只将内存块的内容发送给请求方,执行步骤A ;D、请求方接收到应答消息后,检测内存竞争记录模块记录的标志位是否为真,若为真,则记录内存竞争依赖关系到内存竞争日志;否则不记录。具体实施方式三、结合图3具体说明本实施方式本实施方式与具体实施方式一所述的的区别在于步骤二所述的当所有的处理器核的内存竞争记录完成后,进入多核程序重演阶段,开启内存竞争重演功能,每个处理器核操作步骤如下E、处理器核开始运行时,从运行在该处理器上的线程的内存竞争日志中读取一个记录,并存储到该内存竞争记录过程中使用的寄存器中,执行步骤F ;F、处理器核检测该记录依赖关系,若该记录为伪依赖关系,则当执行完它所对应的指令后,创建唤醒消息、并通过一致性协议发送给对应的处理器,执行步骤G ;若该记录为内存竞争依赖关系,则暂不执行该指令,当接收到唤醒消息时,执行步骤H ;所述的唤醒消息为内存竞争的先发生方所在的处理器核创建并发送的,G、处理器发送完唤醒消息后,该处理器核从内存竞争日志中读取下一条记录,再执行步骤F ;H、处理器接收到合适的唤醒消息后,处理器核从内存竞争日志中读取下一条记录,执行步骤F。相比先前的多核程序确定性重演方法,本专利技术有如下突出优点1、既支持内存竞争的记录,又支持内存竞争的重演。2、记录伪依赖关系,能在重演时主动创建唤醒消息并发送给请求方,重演效率高。3、使用签名实现内存竞争的检测,硬件资源消耗少。4、无需修改原有的Cache —致性协议。具体实施方式四、本实施方式与具体实施方式二所述的的区别在于,步骤C中所述的内存竞争日志由内存竞争依赖关系和伪依赖关系组成,内存竞争依赖关系是用来在重演时指出哪条指令需要等待来自哪里的唤醒消息;伪依赖关系是用来在重演时指出哪条指令需要发送唤醒,内存竞争依赖关系用依赖关系1: w — j : V来表不,伪依赖关系用依赖关系1:w — O来表示,此依赖关系的后发生为0,区别于内存竞争依赖关系,从而表示此依赖关系是一个伪依赖关系。其中,W、ν表示发生冲突1:x — j:y发生时,线程1、j本文档来自技高网...

【技术保护点】
用签名实现的多核程序内存竞争记录及重演方法,其特征在于:它包括如下步骤:步骤一、在多核程序原始执行阶段,开启内存竞争记录功能,每个处理器核开始内存竞争记录;步骤二、当所有的处理器核的内存竞争记录完成后,进入多核程序重演阶段,开启内存竞争重演功能。

【技术特征摘要】
1.用签名实现的多核程序内存竞争记录及重演方法,其特征在于它包括如下步骤步骤一、在多核程序原始执行阶段,开启内存竞争记录功能,每个处理器核开始内存竞争记录;步骤二、当所有的处理器核的内存竞争记录完成后,进入多核程序重演阶段,开启内存竞争重演功能。2.根据权利要求1所述的用签名实现的多核程序内存竞争记录及重演方法,其特征在于步骤一所述的在多核程序原始执行阶段,开启内存竞争记录功能,每个处理器核开始内存竞争记录操作步骤如下A、请求方发出指令,若该指令是读内存操作指令,则IC的值加1,所述的IC的值为指令计数值,将所读的内存块的地址添加到所有的读签名寄存器中,同时请求方发出共享内存请求消息到每个处理器的一致性协议机构,执行步骤B ;若该指令是写内存操作指令,则将要写的内存块的地址添加到所有的写签名寄存器中,同时请求方发出共享内存请求消息到每个处理器的一致性协议机构,执行步骤B ;B、一致性机构收到共享内存请求消息后,将共享内存请求消息转发给其他处理器核, 即应答方,执行步骤C ;C、应答方根据接收到的共享内存请求消息的地址到读签名寄存器或写签名寄存器中查找,判断是否有内存竞争发生,若发生内存竞争,则将一个记录标志位和当前指令计数值连同内存块的内容一起发送给请求方,清空对应请求方的写签名寄存器和读签名寄存器;并将伪依赖关系记录到运行在该处理器核上的线程的内存竞争日志中,执行步骤D ;若没有发生内存竞争,则只将内存块的内容发送给请求方,执行步骤A ;D、请求方接收到应答消息后,检测内存竞争记录模块记录...

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

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

1