[发明专利]用签名实现的多核程序内存竞争记录及重演方法无效
申请号: | 201210593408.5 | 申请日: | 2012-12-31 |
公开(公告)号: | CN103019829A | 公开(公告)日: | 2013-04-03 |
发明(设计)人: | 朱素霞;季振洲;陈志刚;吴昊;王庆;王晖;李聪 | 申请(专利权)人: | 哈尔滨工业大学 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F9/50 |
代理公司: | 哈尔滨市松花江专利商标事务所 23109 | 代理人: | 牟永林 |
地址: | 150001 黑龙*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 签名 实现 多核 程序 内存 竞争 记录 重演 方法 | ||
1.用签名实现的多核程序内存竞争记录及重演方法,其特征在于:它包括如下步骤:
步骤一、在多核程序原始执行阶段,开启内存竞争记录功能,每个处理器核开始内存竞争记录;
步骤二、当所有的处理器核的内存竞争记录完成后,进入多核程序重演阶段,开启内存竞争重演功能。
2.根据权利要求1所述的用签名实现的多核程序内存竞争记录及重演方法,其特征在于:步骤一所述的在多核程序原始执行阶段,开启内存竞争记录功能,每个处理器核开始内存竞争记录操作步骤如下:
A、请求方发出指令,若该指令是读内存操作指令,则IC的值加1,所述的IC的值为指令计数值,将所读的内存块的地址添加到所有的读签名寄存器中,同时请求方发出共享内存请求消息到每个处理器的一致性协议机构,执行步骤B;
若该指令是写内存操作指令,则将要写的内存块的地址添加到所有的写签名寄存器中,同时请求方发出共享内存请求消息到每个处理器的一致性协议机构,执行步骤B;
B、一致性机构收到共享内存请求消息后,将共享内存请求消息转发给其他处理器核,即应答方,执行步骤C;
C、应答方根据接收到的共享内存请求消息的地址到读签名寄存器或写签名寄存器中查找,判断是否有内存竞争发生,
若发生内存竞争,则将一个记录标志位和当前指令计数值连同内存块的内容一起发送给请求方,清空对应请求方的写签名寄存器和读签名寄存器;并将伪依赖关系记录到运行在该处理器核上的线程的内存竞争日志中,执行步骤D;
若没有发生内存竞争,则只将内存块的内容发送给请求方,执行步骤A;
D、请求方接收到应答消息后,检测内存竞争记录模块记录的标志位是否为真,若为真,则记录内存竞争依赖关系到内存竞争日志;否则不记录。
3.根据权利要求1所述的用签名实现的多核程序内存竞争记录及重演方法,其特征在于:步骤二所述的当所有的处理器核的内存竞争记录完成后,进入多核程序重演阶段,开启内存竞争重演功能,每个处理器核操作步骤如下:
E、处理器核开始运行时,从运行在该处理器上的线程的内存竞争日志中读取一个记录,并存储到该内存竞争记录过程中使用的寄存器中,执行步骤F;
F、处理器核检测该记录依赖关系,若该记录为伪依赖关系,则当执行完它所对应的指令后,创建唤醒消息、并通过一致性协议发送给对应的处理器,执行步骤G;
若该记录为内存竞争依赖关系,则暂不执行该指令,当接收到唤醒消息时,执行步骤H;所述的唤醒消息为内存竞争的先发生方所在的处理器核创建并发送的,
G、处理器发送完唤醒消息后,该处理器核从内存竞争日志中读取下一条记录,再执行步骤F;
H、处理器接收到合适的唤醒消息后,处理器核从内存竞争日志中读取下一条记录,执行步骤F。
4.根据权利要求2所述的用签名实现的多核程序内存竞争记录及重演方法,其特征在于:步骤C中所述的内存竞争日志由内存竞争依赖关系和伪依赖关系组成,
内存竞争依赖关系是用来在重演时指出哪条指令需要等待来自哪里的唤醒消息;伪依赖关系是用来在重演时指出哪条指令需要发送唤醒,
内存竞争依赖关系用依赖关系i:w→j:v来表示,
伪依赖关系用依赖关系i:w→0来表示,
其中,w、v表示发生冲突i:x→j:y发生时,线程i、j的当前指令计数值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨工业大学,未经哈尔滨工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210593408.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种物联网供电装置
- 下一篇:基于模糊控制的无刷直流电机位置跟踪控制器