【技术实现步骤摘要】
【国外来华专利技术】在支持事务的计算机体系结构中使用异常进行代码专业化的方法和系统
本专利技术主要涉及代码专业化,更加具体地,本专利技术涉及在支持事务的计算机体系结构中使用异常进行代码专业化的方法和系统。
技术介绍
一些计算机体系结构可以支持硬件和/或软件事务性存储器系统,例如限制事务性存储器(RTM)系统和软件事务性存储器(STM)系统。在事务性存储器系统中,允许并行地执行计算机指令,例如作为多线程应用的单线程操作。要做到这一点,在计算机程序中的指令序列被定义为事务,其可以独立于在其他线程上运行的指令对共享存储器执行读取和写入指令。例如,事务可以根据事务性系统的类型,由解释器、翻译器、程序编译器、优化器、或应用编程接口(API)来定义。事务性存储器系统包括控制机制,以防止并行执行的指令在同一时间或以错误的顺序访问共享存储器。例如,验证机制验证事务已经顺利完成,例如,在事务完成之前,没有其他程序线程对该事务访问的存储器做出更改。如果验证成功,则使得该事务的结果是永久性的(例如,通过“提交”操作)。如果该事务不能被提交,可能会引发异常或事务可能被中止。如果引发异常或事务被中止,该事务的执行可以回滚到程序代码中较早的点(例如“检查点”)。如果事务被中止,它可以从开始重新执行,直到它成功地完成或简单地终止。计算机程序代码可以包含许多专业化的指令,其中每一条可以被设计为处理在程序执行期间可能满足的特定条件。代码专业化是在运行时试图对于普遍发生的条件优化计算机程序或其中一部分的程序优化技术。然而,代码专业化通常会添加可能影响性能的分支指令。
技术实现思路
根据本专利技术的一个实施例,提供了 ...
【技术保护点】
一种方法,包括:在执行过程中分析计算机指令序列,所述计算机指令序列包括响应于满足普遍发生的条件而由事务性存储器系统可执行的至少一条第一指令;以及在所述计算机指令序列中插入至少一条无分支指令,所述无分支指令被配置以便判定所述普遍发生的条件是否被满足,以及响应于没有满足所述普遍发生的条件而连接所述事务性存储器系统的异常处理特征。
【技术特征摘要】
【国外来华专利技术】1.一种用于代码专业化计算设备,包括:用于在执行过程中分析计算机指令序列的模块,所述计算机指令序列包括响应于满足普遍发生的条件而由事务性存储器系统可执行的至少一条第一指令,其中,针对所述普遍发生的条件,所述计算机指令序列将被优化;以及用于在所述计算机指令序列中插入至少一条无分支指令的模块,所述无分支指令被配置以便判定所述普遍发生的条件是否被满足,以及响应于没有满足所述普遍发生的条件而连接所述事务性存储器系统的异常处理特征。2.如权利要求1所述的计算设备,包括用于在所述计算机指令序列中识别出至少一条第二指令的模块,响应于没有满足所述普遍发生的条件,所述至少一条第二指令是可执行的,以及用于将所述至少一条第二指令与至少一条异常生成指令相关联的模块,用于响应于没有满足所述普遍发生的条件而调用所述事务性存储器系统的所述异常处理特征。3.如权利要求1所述的计算设备,包括用于从所述计算机指令序列中移除所述至少一条第二指令的模块。4.如权利要求1所述的计算设备,包括用于针对所述普遍发生的条件优化所述至少一条第一指令的模块。5.如权利要求1所述的计算设备,包括用于在所述计算机指令序列中插入所述至少一条无分支指令而不是比较和分支指令的模块。6.如权利要求1所述的计算设备,包括用于在所述至少一条无分支指令中判定寄存器是否保存具体值的模块。7.如权利要求6所述的计算设备,包括用于判定所述具体值是否被标记的模块,以及如果所述具体值被标记,则屏蔽与所述具体值相关联的标记位。8.如权利要求1所述的计算设备,包括用于在所述至少一条无分支指令中判定指针是否与具体存储器地址相关联的模块。9.如权利要求1所述的计算设备,包括用于在所述至少一条无分支指令中判定一段数据是否具有具体值的模块。10.如权利要求1所述的计算设备,包括用于在所述至少一条无分支指令中判定行程计数是否具有具体值的模块。11.如权利要求1所述的计算设备,包括用于在所述至少一条无分支指令中调用至少一条异常处理指令,以将所述计算机指令序列的执行回滚到检查点或中止指令序列的执行的模块。12.如权利要求1所述的计算设备,包括用于响应于没有满足所述普遍发生的条件而调用至少一条异常处理指令的模块,以及用于响应于调用所述至少一条异常处理指令而执行未优化过的指令的模块。13.如权利要求1所述的计算设备,包括用于在所述计算机指令序列中的所述至少一条第一指令之前插入所述至少...
【专利技术属性】
技术研发人员:A·克里希纳斯瓦米,D·M·莱弗里,
申请(专利权)人:英特尔公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。