[发明专利]基于CMP的推测多线程机制下的多推测路径线程划分方法有效
申请号: | 201510400552.6 | 申请日: | 2015-07-09 |
公开(公告)号: | CN105138309B | 公开(公告)日: | 2018-07-17 |
发明(设计)人: | 赵银亮;王启明;李美蓉 | 申请(专利权)人: | 西安交通大学 |
主分类号: | G06F9/38 | 分类号: | G06F9/38 |
代理公司: | 西安通大专利代理有限责任公司 61200 | 代理人: | 徐文权 |
地址: | 710049 *** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 激发点 线程 预计算 推测多线程 路径段 路径线 限制线 互斥 模拟器 分支覆盖率 并行执行 多条路径 运行时 激发 | ||
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指令地址相等。
2.如权利要求1所述的基于CMP的推测多线程机制下的多推测路径线程划分方法,其特征在于,所述的控制流图子图的切分点属于过程的控制无关基本块,即从过程的入口节点到过程的出口节点的任何路径都经过该基本块;通过切分点的切分,使控制流图子图的粒度大于thread_size_lower∈[15,25],而对其粒度上限不作直接约束。
3.如权利要求1所述的基于CMP的推测多线程机制下的多推测路径线程划分方法,其特征在于,模拟器端在执行时,互斥子路径段上的SPAWN指令能根据addr值跳转到对应的PSLICE_ENTRY指令开始执行一段预计算片段,并且执行完这段预计算片段后,由模拟器的硬件检测后续指令是否是PSLICE_ENTRY指令,若是,则继续跳过其后的预计算片段,若不是,则表示开始执行常规的线程体内容。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交通大学,未经西安交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510400552.6/1.html,转载请声明来源钻瓜专利网。