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

用于拷贝寄存器内容的处理器、方法和装置以及计算系统制造方法及图纸

技术编号:10092368 阅读:199 留言:0更新日期:2014-05-28 16:03
本公开的实施例描述一种处理器,其可以包括耦合到影子寄存器堆和控制寄存器的拷贝电路。所述拷贝电路可以被配置成按正向或反向的方向将内容从多个寄存器的范围拷贝到影子寄存器堆的影子范围。所述正向或反向的方向可以至少部分地基于被存储在所述控制寄存器中的值。

【技术实现步骤摘要】
【国外来华专利技术】用于拷贝寄存器内容的处理器、方法和装置以及计算系统
本公开的实施例一般地涉及处理器,并且更具体地涉及具有被配置成执行寄存器的内容到影子寄存器内的双向拷贝的电路的处理器。
技术介绍
硬件/软件(HW/SW)协同设计的处理器经常依赖硬件原子区域(atomicarea)支持以通过软件动态二进制优化而实现高性能。原子区域一般指的是意图在没有中断的情况下按顺序完成的二进制代码或计算机指令的区域。在动态二进制优化中,二进制代码可以在不考虑极端状况(诸如存储器次序违反、例外、存储器别名等)的情况下,进取性地在原子区域中被执行和优化。如果极端状况实际上在事务期间发生,硬件可以检测到该状况并且该事务可以被异常中止。在这种情况下,由该事务更新或修改的寄存器的初始状态被恢复。通常,这称作回退(rollback)。为了为可能的回退作准备,硬件经常在原子区域执行的入口处制作寄存器的拷贝或“检查点”。例如,各种HW/SW协同设计的处理器已经实施了一种方法,该方法利用影子寄存器堆(registerfile)使得在原子区域执行的入口处将整个寄存器堆(例如架构寄存器堆)拷贝至整个影子寄存器堆。如果原子区域成功地执行并提交,则可以丢弃影子寄存器堆中的数据。在回退的情况下,全部影子寄存器堆将被拷贝回至全部架构寄存器堆。然而,根据上文中的方法,在重叠的原子区域执行期间,将会需要两组影子寄存器堆,这实际上使管芯区(diearea)加倍并且从而使材料和与其相关联的花费加倍。
技术实现思路
根据本申请的一个方面,其提供了一种处理器,所述处理器包括:多个寄存器;影子寄存器堆;控制寄存器;以及拷贝电路,其被耦合到所述多个寄存器、所述影子寄存器堆和所述控制寄存器并且被配置成按第一或第二所选择的方向将内容从所述多个寄存器的范围中的部分或全部中拷贝到影子寄存器堆的影子范围,其中所述第一或第二所选择的方向将至少部分地基于被存储在所述控制寄存器中的值,其中所述第一或第二所选择的方向参考所述影子寄存器号的次序。附图说明通过与附图相结合的以下详细描述,将容易地理解实施例。为了使该描述更容易,同样的附图标记指定同样的结构元件。在附图的各图中,通过示例而非限制的方式来图示实施例。图1示意性地图示根据一些实施例的示例性处理器。图2示意性地图示根据一些实施例的重叠区域执行的示例。图3是根据一些实施例的用于将架构寄存器分配给虚拟寄存器的方法的流程图。图4是根据一些实施例的适合于实行所公开的方法和装置的示例性计算机系统的框图。具体实施方式本文中描述了提供用于重叠的区域执行的寄存器检查点的方法和装置的实施例。如本文中所使用的,“区域”指的是计算机指令或代码的块。在一些实施例中,代码的区域可以是代码的原子区域。在以下描述中,给出多个特定细节以提供对实施例的彻底理解。可以在没有一个或多个特定细节的情况下,或者在其它方法、组件、材料等的情况下实行实施例。在其它实例中,没有详细地示出或描述众所周知的结构、材料、或操作,用以避免混淆实施例的各方面。本说明书由始至终对“一个实施例”或“一实施例”的引用意味着关于实施例所描述的特定特征、结构或特性被包括在至少一个实施例中。因而,短语“在一个实施例中”或“在一实施例中”在贯穿本说明书的各地方的出现不一定都指的是相同实施例。此外,特定特征、结构或特性可以按任何适合的方式被组合在一个或多个实施例中。一个实施例提供处理器,所述处理器可以包括多个或数个寄存器、影子寄存器堆、控制寄存器以及耦合到影子寄存器堆和控制寄存器的拷贝电路。拷贝电路可以被配置成按第一或第二所选择的方向将内容从所述多个寄存器的范围中的部分或全部拷贝到所述影子寄存器堆的影子范围。根据实施例,所述方法可以包括规定要被拷贝到影子寄存器的影子范围的架构寄存器的范围。在实施例中,所述第一或第二所选择的方向可以至少部分地基于被存储在控制寄存器中的值。在实施例中,所述第一所选择的方向可以是正向(forward)方向并且所述第二所选择的方向可以是相反或反向(backward)方向。在实施例中,寄存器的范围可以包括用于在第一代码区域的执行中使用的第一寄存器范围M1,以及用于在第二代码区域的执行中使用的第二寄存器范围M2。在实施例中,可以由需要影子寄存器并具有相对较高的寄存器号的寄存器来确定M1。在实施例中,第一范围M1中的寄存器数量和第二范围M2中的寄存器数量合起来可以超过影子寄存器堆中的寄存器数量。在实施例中,第一寄存器范围可以包括的范围,并且第二范围包括的范围,其中N是影子寄存器堆中的寄存器数量。根据一些实施例,拷贝电路可以被配置成在两个阶段中将内容从寄存器的范围拷贝到影子寄存器。根据一个实施例,一种方法可以包括至少部分地基于架构寄存器的相应状态来将相应优先级分配给多个架构寄存器。所述方法还可以包括至少部分地基于架构寄存器的所分配的优先级来分配用于执行原子区域的架构寄存器以减少要被拷贝到影子寄存器的范围的架构寄存器的范围。实施例可以另外包括至少部分地基于一个或多个架构寄存器对于影子寄存器的需要的概率来确定架构寄存器的相应状态。因而,在实施例中,将相应的优先级分配给所述多个架构寄存器可以包括将第一优先级分配给在到原子区域的入口处是死的(dead)寄存器,所述第一优先级高于被分配给在到原子区域的入口处是活的(live)寄存器的第二优先级。根据一个实施例,确定架构寄存器的相应状态可以包括至少部分地基于一个或多个架构寄存器的寄存器号来确定所述相应状态。根据一个实施例,确定架构寄存器的相应状态可以包括至少部分地基于对一个或多个架构寄存器的修改的相应次序来确定所述相应状态。注意的是,在另一实施例中,优先级可以被分配给在原子区域中所使用的虚拟寄存器。在一个示例中,在入口处是死的虚拟寄存器可以被分配给不被影子化的架构寄存器。根据另一实施例,公开了一种系统,其可以包括处理器,所述处理器包括多个寄存器、影子寄存器堆和控制寄存器。在所述系统中,拷贝电路可以耦合到影子寄存器堆和控制寄存器,并且被配置成按第一或第二所选择的方向将内容从所述多个寄存器的范围中的部分或全部拷贝到所述影子寄存器堆的影子范围。所述第一或第二所选择的方向可以至少部分地基于存储在控制寄存器中的值。所述系统可以另外包括具有带有指令的非临时计算机可读介质的存储器,所述指令可执行以使处理器至少部分地基于寄存器的相应状态来将相应优先级分配给所述多个寄存器中的每一个。作为响应,处理器还可以至少部分地基于寄存器的所分配的优先级来分配用于执行原子区域的寄存器以减少要被拷贝到影子寄存器堆的影子范围的寄存器的范围。如上文中注意到的,在区域的执行期间被更新和/或利用的寄存器或存储元件可能需要被备份(即设定检查点)来确保在区域或事务的执行的异常中止的情况下能够恢复原始的寄存器状态。因而,寄存器或存储元件可以被拷贝到对应的影子寄存器或存储元件。其后,所述存储元件可以被认为是“被设定检查点”。在一个实施例中,如果存储元件在区域的执行期间被修改,则其可以被设定检查点。图1图示根据实施例可以利用重叠的区域执行的示例性处理器100。由于存储器一致性问题,区域经常不能提交直到该区域中的存储高速缓存缺失被解决为止。因而,为了容忍可能在区域执行的结束处发生的等待时间,两阶段提交技本文档来自技高网...
用于拷贝寄存器内容的处理器、方法和装置以及计算系统

【技术保护点】
一种处理器,包括:多个寄存器;影子寄存器堆;控制寄存器;以及拷贝电路,其被耦合到影子寄存器堆和控制寄存器并且被配置成按第一或第二所选择的方向将内容从所述多个寄存器的范围中的部分或全部中拷贝到影子寄存器堆的影子范围,其中所述第一或第二所选择的方向将至少部分地基于被存储在所述控制寄存器中的值。

【技术特征摘要】
【国外来华专利技术】1.一种处理器,包括:多个寄存器;影子寄存器堆;控制寄存器;以及拷贝电路,其被耦合到所述多个寄存器、所述影子寄存器堆和所述控制寄存器并且被配置成按第一或第二所选择的方向将内容从所述多个寄存器的范围中的部分或全部拷贝到影子寄存器堆的影子范围,其中所述第一或第二所选择的方向将至少部分地基于被存储在所述控制寄存器中的值,其中所述第一或第二所选择的方向参考所述影子寄存器号的次序。2.根据权利要求1所述的处理器,其中所述第一所选择的方向是正向方向,从所述影子寄存器的较小号到较大号。3.根据权利要求2所述的处理器,其中所述第二所选择的方向是相反方向,从所述影子寄存器的较大号到较小号。4.根据权利要求1所述的处理器,其中所述多个寄存器的范围包括用于在第一代码区域的执行中使用的第一寄存器范围[1,M1],其中M1>1。5.根据权利要求4所述的处理器,其中所述多个寄存器的范围进一步包括用于在第二代码区域的执行中使用的第二寄存器范围[1,M2],其中M2>1。6.根据权利要求5所述的处理器,其中所述第一寄存器范围被拷贝到影子范围[1,M1],并且所述第二寄存器范围被拷贝到[N-M2+1,N]的影子范围,其中N是影子寄存器堆中的寄存器数,其中N>M1并且N>M2。7.根据权利要求5所述的处理器,其中所述第一寄存器范围中的寄存器数和所述第二寄存器范围中的寄存器数合起来超过影子寄存器堆中的寄存器数。8.根据权利要求1-7中任何一项所述的处理器,其中所述拷贝电路被配置成在两个阶段中从所述多个寄存器的范围中拷贝内容。9.根据权利要求8所述的处理器,其中所述拷贝电路被配置成在两个阶段中拷贝内容以允许下一个区域在先前的区域提交之前开始执行。10.根据权利要求9所述的处理器,其中所述处理器被配置成如果指令尝试修改具有在第一阶段期间未被设定检查点的内容的寄存器则停止该下一个区域的执行。11.一种用于拷贝寄存器内容的方法,包括:由处理器至少部分地基于在多个架构寄存器中的架构寄存器的相应状态而将相应的优先级分配给所述处理器的多个架构寄存器中的每一个;以及由处理器至少部分地基于架构寄存器的所分配的较高优先级而分配用于执行原子区域的架构寄存器以减少要被拷贝到所述处理器的影子寄存器的范围的架构寄存器的范围。12.根据权利要求11所述的方法,进一步包括由所述处理器至少部分地基于一个或多个架构寄存器对于影子寄存器的需要的概率来确定所述架构寄存器的相应状态。13.根据权利要求11所述的方法,进一步包括由所述处理器至少部分地基于一个或多个架构寄存器的寄存器号来确定所述架构寄存器的相应状态。14.根据权...

【专利技术属性】
技术研发人员:C王Y吴J钟
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1