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

用于事务存储器的最后分支记录指示符制造技术

技术编号:8805705 阅读:158 留言:0更新日期:2013-06-13 22:28
在一个实施例中,处理器包括执行单元和用于存储在程序执行期间被采用的分支的地址信息的至少一个最后分支记录(LBR)寄存器。该寄存器可进一步存储用于指示该分支在事务存储器(TM)事务中是否被采用的事务指示符。该寄存器还进一步存储用于指示该分支是否由事务中止产生的中止指示符。描述并要求保护其他实施例。

【技术实现步骤摘要】
【国外来华专利技术】用于事务存储器的最后分支记录指示符
技术介绍
随着技术的进步,计算机系统以多处理器系统的形式包括更大数量的处理器,例如,通过可同时执行多个线程的一个或多个多核处理器。一般而言,在线程访问共享资源之前,线程可能获得共享资源上的锁。在共享资源为存储在存储器中的数据结构的情况下,试图访问相同资源的所有线程可根据闭锁机制提供的互斥性来串行化其操作的执行。例如,由于死锁或其他不想要的行为,这可能不利于系统性能并且可能导致程序失败。系统中日益增加的核和逻辑处理器的数量使得更多软件线程能够被执行。然而,可能同时执行的软件线程的数量的增加已造成与同步软件线程之间共享的数据有关的问题。用于访问多核或多逻辑处理器系统中的共享数据的一个常见的解决方案是使用锁来保证对共享数据的多个访问之间的互斥。然而,日益增加的执行多个软件线程的能力可能造成假竞争和执行串行化。为了降低闭锁机制的使用造成的性能损失,一些计算机系统可使用事务存储器(TM)。事务存储器通常指的是在不使用闭锁机制的情况下允许多个线程同时访问共享资源的同步模型。通常事务执行可包括推测地执行微操作、操作或指令的组。目前的TM系统包括其中处理器硬件被用于执行事务的硬件TM系统、其中事务是用软件实现的软件TM系统、以及其中硬件和软件都可用于执行事务的混合TM系统。通常地,硬件TM系统可能最有效,但是如果事务变得太大,例如溢出硬件存储器,那么该事务通常被重启。这里,用于执行该事务直到溢出所花费的时间可能被浪费。处理器包括各种硬件并且还可提供用于测试、调试或其他操作的硬件。例如,在处理器中可提供各种寄存器,以用于执行处理器检查点设定、异常报告、分支记录等等。然而,此类性能监测硬件一般不用于事务存储器的环境。附图简沭附图说明图1是根据本专利技术的实施例的最后分支寄存器对的框图。图2是根据本专利技术的一个实施例的处理器核的框图。图3是根据本专利技术的另一实施例的处理器核的框图。图4是根据本专利技术的一个实施例的用于产生分支记录的方法的流程图。图5是根据本专利技术的实施例的用于使用分支记录的方法的流程图。图6是根据本专利技术的实施例的系统的框图。详细描沭在各个实施例中,在执行程序期间获得的分支信息可被记录并然后用于概况分析、调试和/或优化事务存储器事务。以这种方式,可实现改良的事务存储器操作和代码。在各个实施例中,包括在此类寄存器中的信息可包括最后分支信息,在最后分支信息中可记录在程序执行期间被采用的分支有关的信息。除此类分支的识别之外,还可记录有关事务存储器的待决事务的执行的信息。使用该信息,可实现事务存储器事务的调试和其他操作。事务执行通常包括将多个指令或操作分为事务、原子段(atomic section)或代码的关键段。在某些情况下,术语指令指的是宏指令,该宏指令由多个操作组成,而在其他情况下,指令可指较小的操作,例如,微操作(UOP)。通常有两种方法来识别事务。第一示例包括用软件来界定事务。这里,某些软件界定被包括在代码中以标识事务。在另一实施例中,这可结合上述软件界定来实现,事务通过硬件被分组或通过指示事务开始和事务结束的指令被识别。在处理器中,可推测地或非推测地执行事务。在第二种情况中,指令的分组通过对将被访问的存储器位置的某种形式的锁或有保证的有效访问来执行。替代地,事务的推测执行更普遍,其中,事务被推测地执行并且事务一结束就被提交。此处提及的事务的待决指的是已经开始执行但还未提交或中止(即,待决)的事务。通常,在事务的推测执行期间,对存储器的更新不全局可见直到事务被提交。当事务仍然待决时,跟踪从存储器加载和写入的位置。一旦成功验证那些存储器位置,就提交事务并且使在事务期间进行的更新全局可见。然而,如果事务在其待决期间被无效,则重新启动事务且不使更新全局可见。在各个实施例中,在处理器中可提供最后分支记录设施。此种设施可将分支记录存储在一组寄存器中,在一个实施例中,该寄存器可以是机器或模块专用的寄存器(MSR)0例如,处理器可包括用于存储与最近被采用的分支有关的信息的MSR的最后分支记录(LBR)堆栈。分支记录包括一对寄存器,其中的一个寄存器用于存储来自分支(branch-from)的指令地址和去往分支(branch_to)的指令地址,在一个实施例中,这些指令地址可以是线性地址。在一些实现中,寄存器可被自动读取,而在其他实施例中,控制信号可使得堆栈将分支记录作为分支跟踪消息(BTM)发送给经选择的目的位置。注意,可控制以启用或禁用LBR寄存器的操作。例如,LBR标记可存在于调试控制MSR中,以使处理器能自动地记录被采用的分支的分支记录。注意,在一些实施例中,除LBR之外,有关中断和异常的信息也可被记录在LBR寄存器中,不过在其他实施例中,对于这样的情况可提供单独的记录设施。在一个实施例中,调试器可使用LBR堆栈中的地址以实现从特定漏洞的显示向其源的反向跟踪。注意,在LBR堆栈中的MSR的数量在不同实施例中可以不同。例如,在不同实现中,LBR堆栈的尺寸可以为4、8或16,虽然本专利技术的范围不限于此。如上所述,最后分支记录机制不仅可跟踪分支指令(如跳转、循环和调用指令),而且可跟踪造成指令指针变化的其他操作(如外部中断、陷阱和故障)。现在参照图1,图1示出了根据本专利技术的实施例的LBR寄存器对的框图。如图1中所示,寄存器对10可包括两个MSR,即第一 MSR12和第二 MSR14。如所示的,MSR12可存储源地址。也就是说,该寄存器可存储最近分支的源地址,即,分支发生处的“来自(from)”地址。反过来,寄存器14可存储目的地址,S卩,控制通过分支传递到的“去往(to)”地址。除存储指令指针地址的地址字段15之外,这些寄存器中可存在附加字段。具体而言,在图1的实施例中,事务指示符16和中止指示符17可与每个寄存器相关联。更具体地,当对应的分支在事务的执行期间发生时,可设置事务指示符16。反过来,针对在事务被中止后发生的第一分支,可设置中止指示符17。更精确地,中止产生向中止处理程序的跳转。然后,该跳转被记录在LBR中,伴随着中止指示符被设置。该中止指示符被用于将该分支与其他分支区分开。以下将讨论有关中止事件的信息的存储的进一步细节。以这种方式,可记录与其中发生分支的事务的执行有关的信息。如以下将进一步讨论的,利用该信息可获得对事务的执行的更好的理解,从而(例如,通过优化等等)潜在地改善执行。如上所述,除用于分支信息的寄存器对之外,可记录与中止事件有关的信息。具体而言,如图1中所示,附加的寄存器对20可包括与使得待决事务发生中止的指令的信息。具体地,寄存器22可存储使得事务中止的指令的指令指针。寄存器对的第二寄存器(即寄存器24)可存储目的地址,该目的地址可以是对应于能实现从中止恢复的代码、逻辑等的中止处理程序的地址。虽然在图1的实施例中仅示出具有这两个寄存器对,但可以理解,LBR堆栈可包括更多的寄存器对。此外,包括在LBR中的结构、排列和信息在不同的实施例中可不同。例如,在一些实施例中,LBR存储可被实现为圆形阵列。注意,LBR寄存器中可存在附加的信息。例如,在一些实施例中,当设置指示被采用的分支被正确预测时,可提供预测指示符。否则,该指示符被清除以指示该分支被错误预测。当然,在这些寄存器本文档来自技高网...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:R·拉吉瓦尔L·A·诺特P·拉奇纳K·K·赖
申请(专利权)人:英特尔公司
类型:
国别省市:

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

1