[发明专利]基于CMP的推测多线程机制下的多推测路径线程划分方法有效
申请号: | 201510400552.6 | 申请日: | 2015-07-09 |
公开(公告)号: | CN105138309B | 公开(公告)日: | 2018-07-17 |
发明(设计)人: | 赵银亮;王启明;李美蓉 | 申请(专利权)人: | 西安交通大学 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 西安通大专利代理有限责任公司 61200 | 代理人: | 徐文权 |
地址: | 710049 *** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于CMP的推测多线程机制下的多推测路径线程划分方法,该方法线程划分是以过程为单位的,对每一个过程,划分时会限制线程结束点在过程的控制无关节点,限制线程激发点在过程的互斥路径段,以使得线程的激发受到更严格的限制;同时,对相互互斥的路径段上的激发点,让其对应到同一个线程结束点下,并在线程结束点后插入连续的多个预计算片段;预计算片段的内容随推测路径和激发点的变化而互异;模拟器在运行时执行不同的推测路径,会根据推测路径上对应的激发点选取对应的预计算片段进行执行。该方法能在多条路径上进行线程划分,从而增加了可推测并行执行的分支覆盖率。 | ||
搜索关键词: | 激发点 线程 预计算 推测多线程 路径段 路径线 限制线 互斥 模拟器 分支覆盖率 并行执行 多条路径 运行时 激发 | ||
【主权项】:
1.一种基于CMP的推测多线程机制下的多推测路径线程划分方法,其特征在于,用于对于串行输入程序进行线程划分,其步骤如下:1)编译器会在对串行输入程序进行线程划分之前依据程序剖析器剖析运行的结果寻找执行概率符合阈值条件的路径作为推测路径,阈值条件是执行概率大于阈值branch_probability∈[0.10,0.25],只在选取的多条推测路径上进行线程划分;2)将串行输入程序的过程体的控制流图切分成线程体粒度大于阈值thread_size_lower∈[15,25]的控制流图子图,控制流图子图的切分点作为由控制流图子图生成的线程单元的结束点;在线程单元的结束点插入CQIP指令,其表示当前线程单元的执行结束;3)在推测路径的互斥子路径段,寻找能使线程之间的数据依赖数目小于阈值dependence_threshold∈[2,5]并且线程激发距离大于阈值spawning_distance_lower∈[3,8]的位置作为新线程激发点,在此激发新的线程单元执行,激发距离表示候选的线程激发点与线程结束点之间的距离;在线程激发点插入线程激发控制指令SPAWN指令,其作用是激发新的线程单元;SPAWN指令格式为SPAWN addr,addr表示新的线程单元的指令起始地址;4)在每一个尚未被激发的新的线程单元的开始部分插入预计算片段,每一段预计算片段与由SPAWN指令和CQIP指令组成的指令对对应;所述的互斥子路径段的语义如下:1)互斥子路径段是相邻两个CQIP指令之间的控制流图子图的边的集合的子集,互斥子路径段包含的指令集合,不跨越多个线程体,只在一个线程体内部;2)一条路径上的属于互斥子路径段的部分与该控制流图子图其他路径无任何交集;所述的预计算片段其特征如下:1)一段预计算片段由PSLICE_ENTRY指令标记起始,由PSLICE_EXIT指令标记结束;PSLICE_ENTRY指令的地址与激发运行当前线程单元的SPAWN指令的addr值相等;2)每一段互斥子路径段上的SPAWN指令,在激发新线程之前,对应有一段预计算片段,预计算片段是对应互斥子路径段上的SPAWN指令到CQIP指令之间的指令集合的精简集;预计算片段为当前线程在SPAWN指令到CQIP指令之间的livein变量的定义指令组成的指令集合;3)相互互斥的多个互斥子路径段上的SPAWN指令对应的预计算片段都被放置在同一个CQIP指令的后面,每一个SPAWN指令的addr值与其中一段预计算片段的PSLICE_ENTRY指令地址相等。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交通大学,未经西安交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201510400552.6/,转载请声明来源钻瓜专利网。