[发明专利]一种基于推测多线程的汇编级过程间指针分析方法有效
申请号: | 201810785251.3 | 申请日: | 2018-07-17 |
公开(公告)号: | CN108932137B | 公开(公告)日: | 2022-09-27 |
发明(设计)人: | 李美蓉;赵银亮;程传旭;张少应;陈庆荣;许雯 | 申请(专利权)人: | 西安航空学院 |
主分类号: | G06F9/38 | 分类号: | G06F9/38;G06F9/30 |
代理公司: | 西安通大专利代理有限责任公司 61200 | 代理人: | 徐文权 |
地址: | 710077 *** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 推测 多线程 汇编 过程 指针 分析 方法 | ||
本发明公开了一种基于推测多线程的汇编级过程间指针分析方法,通过汇编级的过程间指向分析,在进行过程间的指向分析之前,构建源程序中所有过程的过程调用图,构建后共分两个阶段进行指向分析。第一阶段,首先构建基于概率的路径剖析代价模型,提取过程调用图中所有过程结点所选的推测路径,然后进行过程内的指向分析;第二阶段,进行过程间的指向分析和过程间的副作用计算,在每个过程调用点处,利用过程内的指向分析结果,进行指向关系的映射和反映射,得到过程间的副作用计算结果,实现调用过程上下文指向关系更新。在此基础上,指导整个程序进行过程间的数据流分析,评估指针变量内存指向关系间的数据依赖程度,得到更加精确的线程划分结果。
技术领域
本发明属于计算机领域,涉及线程级并行与线程级推测技术,特别涉及一种基于推测多线程的汇编级过程间指针分析方法。
背景技术
推测多线程(Speculative Multithreading,SpMT),又称线程级推测(Thread-Level Speculation,TLS),作为一种主流的线程级并行技术,能够从非规则串行C程序中识别和提取出多个具有潜在控制与数据依赖的线程。这些线程在执行模型的作用下,按照正确的串行语义进行激发、执行、验证和提交,用于实现整个程序的自动化推测并行。在推测过程中,一旦出现数据依赖违规,需要及时撤销当前违规线程及其所激发的所有后继线程,重新进行再次推测,频繁的数据依赖违规会产生大量的推测并行开销,影响程序并行性能的提升。
现有的推测多线程框架多采用软硬件协同技术实现程序的自动化推测并行。这种推测框架通常利用编译时的数据依赖剖析对多个候选并行域进行数据依赖分析和评估,确定线程划分和生成的具体位置。然而,由于C程序中常常存在大量复杂的指针引用以及过程间调用的副作用影响,而传统的过程间分析技术很难精确地分析并行域间的依赖关系,从而得到大量存在模糊的数据依赖关系的推测线程集。主要原因存在以下三个方面,第一,传统的过程间分析技术大多数均在源程序代码或编译时的高级中间表示上进行指针指向分析,计算并收集变量间所有可能的引用关系。而汇编级的过程间指针分析很容易得到程序运行时的存储空间组织结构,不仅有利于识别寄存器和内存访问指令进行精确分析,而且有利于指令级调度推测优化的开展,提高推测执行效率。第二,传统的过程间分析技术多采用保守的指向分析,未结合推测框架的特征,总是对所有可能路径上的指向关系进行分析,得到大量的指向关系集,限制了线程的激进推测并行。第三,目前所采用的编译框架中数据流分析库函数仅能对过程内的标量变量进行数据依赖分析和提取,忽略了指针变量和过程间的数据依赖影响。因此,要得到合理的线程划分结果,需要精确地分析线程间的数据依赖关系,进而提高程序自动化推测并行的性能和效率。
发明内容
本发明的目的在于提供一种基于推测多线程的汇编级过程间指针分析方法,该方法能够在汇编代码上对过程内的内存读写指令进行指向分析以及对过程间的副作用进行收集和计算,以实现推测多线程的激进推测并行。
为达到上述目的,本发明采取以下的技术方案来实现:
一种基于推测多线程的汇编级过程间指针分析方法,包括以下步骤:
步骤1,通过对编译后端生成的MIPS汇编指令的遍历,抽取过程调用指令,根据调用过程和被调过程间的关系,构建过程调用图,过程调用图中结点表示过程,过程包括调用过程和被调过程,边表示过程间的调用和被调用关系;
步骤2,对过程调用图中每个结点进行路径剖析,收集所有的执行路径;构建基于概率的路径剖析代价模型,对所有的执行路径进行代价评估,选择代价最大的一个路径作为候选推测路径加入到工作集中,直至过程调用图中所有结点的候选推测路径都加入到工作集中;
步骤3,自底向上遍历过程调用图中每个结点,从工作集中选择结点对应的推测路径,采用抽象位置集和谓词表示推测路径上内存指向变量的抽象位置和指令类型,构建指向关系树来指导过程内的指向分析,利用过程内的指向分析结果来构建基于过程的规则转换库,形式化后存储在过程调用图的相关结点中;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安航空学院,未经西安航空学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810785251.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:交叉点自旋累积转矩磁阻式随机存取存储器
- 下一篇:行人重识别方法及装置