当前位置: 首页 > 专利查询>英特尔公司专利>正文

在支持事务的计算机体系结构中使用异常进行代码专业化的方法和系统技术方案

技术编号:10344187 阅读:210 留言:0更新日期:2014-08-21 16:15
在支持事务的系统中使用异常进行代码专业化的方法和系统。该方法和系统包括在计算机指令序列中插入一个或多个无分支指令。所述无分支指令包括如果满足普遍发生的条件则可执行的一个或多个指令,以及包括如果不满足该普遍发生的条件则被配置以引发异常的一个或多个指令。

【技术实现步骤摘要】
【国外来华专利技术】在支持事务的计算机体系结构中使用异常进行代码专业化的方法和系统
本专利技术主要涉及代码专业化,更加具体地,本专利技术涉及在支持事务的计算机体系结构中使用异常进行代码专业化的方法和系统。
技术介绍
一些计算机体系结构可以支持硬件和/或软件事务性存储器系统,例如限制事务性存储器(RTM)系统和软件事务性存储器(STM)系统。在事务性存储器系统中,允许并行地执行计算机指令,例如作为多线程应用的单线程操作。要做到这一点,在计算机程序中的指令序列被定义为事务,其可以独立于在其他线程上运行的指令对共享存储器执行读取和写入指令。例如,事务可以根据事务性系统的类型,由解释器、翻译器、程序编译器、优化器、或应用编程接口(API)来定义。事务性存储器系统包括控制机制,以防止并行执行的指令在同一时间或以错误的顺序访问共享存储器。例如,验证机制验证事务已经顺利完成,例如,在事务完成之前,没有其他程序线程对该事务访问的存储器做出更改。如果验证成功,则使得该事务的结果是永久性的(例如,通过“提交”操作)。如果该事务不能被提交,可能会引发异常或事务可能被中止。如果引发异常或事务被中止,该事务的执行可以回滚到程序代码中较早的点(例如“检查点”)。如果事务被中止,它可以从开始重新执行,直到它成功地完成或简单地终止。计算机程序代码可以包含许多专业化的指令,其中每一条可以被设计为处理在程序执行期间可能满足的特定条件。代码专业化是在运行时试图对于普遍发生的条件优化计算机程序或其中一部分的程序优化技术。然而,代码专业化通常会添加可能影响性能的分支指令。
技术实现思路
根据本专利技术的一个实施例,提供了一种用于代码专业化计算设备,包括:用于在执行过程中分析计算机指令序列的模块,所述计算机指令序列包括响应于满足普遍发生的条件而由事务性存储器系统可执行的至少一条第一指令,其中,针对所述普遍发生的条件,所述计算机指令序列将被优化;以及用于在所述计算机指令序列中插入至少一条无分支指令的模块,所述无分支指令被配置以便判定所述普遍发生的条件是否被满足,以及响应于没有满足所述普遍发生的条件而连接所述事务性存储器系统的异常处理特征。如前述的计算设备,包括用于在所述计算机指令序列中识别出至少一条第二指令的模块,响应于没有满足所述普遍发生的条件,所述至少一条第二指令是可执行的,以及用于将所述至少一条第二指令与至少一条异常生成指令相关联的模块,用于响应于没有满足所述普遍发生的条件而调用所述事务性存储器系统的所述异常处理特征。如前述的计算设备,包括用于从所述计算机指令序列中移除所述至少一条第二指令的模块。如前述的计算设备,包括用于针对所述普遍发生的条件优化所述至少一条第一指令的模块。如前述的计算设备,包括用于在所述计算机指令序列中插入所述至少一条无分支指令来代替比较和分支指令的模块。如前述的计算设备,包括用于在所述至少一条无分支指令中判定寄存器是否保存具体值的模块。如前述的计算设备,包括用于判定所述具体值是否被标记的模块,以及如果所述具体值被标记,则屏蔽与所述具体值相关联的标记位。如前述的计算设备,包括用于在所述至少一条无分支指令中判定指针是否与具体存储器地址相关联的模块。如前述的计算设备,包括用于在所述至少一条无分支指令中判定一段数据是否具有具体值的模块。如前述的计算设备,包括用于在所述至少一条无分支指令中判定行程计数是否具有具体值的模块。如前述的计算设备,包括用于在所述至少一条无分支指令中调用至少一条异常处理指令,以将所述计算机指令序列的执行回滚到检查点或中止指令序列的执行的模块。如前述的计算设备,包括用于响应于没有满足所述普遍发生的条件而调用至少一条异常处理指令的模块,以及用于响应于调用所述至少一条异常处理指令而执行未优化过的指令的模块。如前述的计算设备,包括用于在所述计算机指令序列中的所述至少一条第一指令之前插入所述至少一条无分支指令的模块。如前述的计算设备,包括用于定义所述计算机指令序列的至少一条指令作为事务的模块,所述事务用于由所述事务性存储器系统通过在所述计算机指令序列中插入检查点指令和提交指令来执行。如前述的计算设备,包括用于响应于没有满足所述普遍发生的条件,连接基于硬件的事务性存储器系统或基于软件的事务性存储器系统的模块。本专利技术还提供了一种用于代码专业化计算设备,包括:至少一个处理器核;以及耦合到所述至少一个处理器核的计算机电路,所述计算机电路被布置以使得所述至少一个处理器核:识别计算机指令序列作为事务,所述事务被配置用于由计算设备的事务性存储器系统来执行,所述事务由检查点指令和提交指令定义,所述事务包括:响应于满足普遍发生的条件而能够执行的至少一条第一指令,以及响应于没有满足普遍发生的条件而能够执行的至少一条第二指令,其中,针对所述普遍发生的条件,所述计算机指令序列将被优化;在指令序列中插入至少一条异常生成指令,所述至少一条异常生成指令被布置以允许所述至少一条第一指令不带任何分支地执行,以及被配置以便响应于没有满足所述普遍发生的条件而调用所述事务性存储器系统的异常处理特征;以及从所述事务中移除所述至少一条第二指令。本专利技术还提供了一种用于代码专业化计算设备,包括:用于分析计算机指令序列的模块;用于执行代码专业化例程的模块,所述代码专业化例程被配置以便识别所述计算机指令序列的至少一个代码区域,所述至少一个代码区域作为事务由所述计算设备的事务性存储器系统执行,以及,对一个或多个所述代码区域:用于在所述代码区域中插入至少一条无分支指令的模块,所述无分支指令被配置以判定是否满足普遍发生的条件,其中,针对所述普遍发生的条件,所述计算机指令序列将被优化;以及用于在所述代码区域中插入至少一条异常生成指令的模块,所述异常生成指令被配置以响应于没有满足所述普遍发生的条件而引发异常。附图说明在附图中,通过示例的方式而不是限制的方式示出在这里描述的本专利技术。为了简单和清楚地说明,附图中示出的元件不一定是按照比例绘制的。例如为了清楚起见,一些元件的尺寸相对于其他元件被夸大了。此外,在认为合适的情况下,附图中重复参考标记以指示相应的或类似的元件。图1是计算设备的至少一个实施例的简化框图;图2是图1的计算设备的处理器核的至少一个实施例的简化框图;图3是用于代码专业化的方法的至少一个实施例的简化模块图;图4是用于代码专业化的方法的至少一个实施例的简化流程图;图5是包括比较和分支指令的经过专业化的计算机指令的至少一个实施例的简化的伪代码说明。图6是不包括任何比较和分支指令的经过专业化的计算机指令的至少一个实施例的简化伪代码说明。具体实施方式尽管本公开的概念容易有各种修改和替代形式,但其中的具体示例性的实施例在附图中以示例方式示出,并且将在本文详细描述。然而,应当理解的是,不是想将本公开的概念局限在所公开的特定形式,而是相反,目的是要涵盖落在如随附权利要求所定义的本专利技术的精神和范围内的所有修改、等价物、以及替代物。在下面的描述中,阐述了许多的具体细节,例如逻辑实现、操作码、用于指定操作数的方法、资源分区/共享/复制实现、系统部件的类型和相互关系、以及逻辑分区/集成选择,以便更充分地理解本公开。然而,本领域技术人员应当领会,没有这些具体细节也可实现本公开的实施例。在其他实例中,没有详细示出本文档来自技高网...
在支持事务的计算机体系结构中使用异常进行代码专业化的方法和系统

【技术保护点】
一种方法,包括:在执行过程中分析计算机指令序列,所述计算机指令序列包括响应于满足普遍发生的条件而由事务性存储器系统可执行的至少一条第一指令;以及在所述计算机指令序列中插入至少一条无分支指令,所述无分支指令被配置以便判定所述普遍发生的条件是否被满足,以及响应于没有满足所述普遍发生的条件而连接所述事务性存储器系统的异常处理特征。

【技术特征摘要】
【国外来华专利技术】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

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1