使用依赖性消除的多阶段寄存器重命名制造技术

技术编号:9667650 阅读:174 留言:0更新日期:2014-02-14 05:48
描述了使用依赖性消除的多阶段寄存器重命名。在实施例中,在两个阶段中对寄存器进行重命名阶段。第一阶段涉及消除正被一起重命名的一组指令中的所有的依赖性。随后,最终阶段使用重命名映射并行地对所有寄存器进行重命名。在各个实施例中,在第一阶段中,使用固定映射对每个指令中的目标寄存器进行重命名,以消除依赖性,并且在一些实施例中,固定映射基于所述一组指令中的目标寄存器的位置。在第一阶段中还对依赖寄存器进行重命名,依赖寄存器是在一条指令中被读取但已经在所述一组指令中的之前指令中被写入的那些寄存器。在最终阶段中,除了执行重命名以外,还更新重命名映射。

【技术实现步骤摘要】
用于使用依赖性消除的多阶段寄存器重命名的方法和装置
技术介绍
乱序处理器可以通过以下方式提供改进的计算性能:以与程序中的顺序不同的次序来执行指令,使得在指令的输入数据可用时执行指令,而不是等待程序中的之前的指令被执行。为了允许指令在处理器上乱序运行,能够对指令所使用的寄存器进行重命名是非常有用的。这使得能够从指令中消除“读后写”(WAR)依赖性,这是因为这些并不是真正的依赖性。通过使用寄存器重命名以及消除这些依赖性,可以不按程序次序执行更多的指令,并且进一步提高了性能。通过保持关于在指令中命名的哪些寄存器(称作结构寄存器)被映射到处理器的物理寄存器上的映射,来执行寄存器重命名。该映射可以被称作“重命名映射”、“寄存器映射”、“寄存器重命名映射”、“寄存器别名表”(RAT)或其它类似的术语。通常在每个周期中在多个指令上执行重命名,但是在一个周期中被重命名的一组指令中的数据依赖性意味着不能完全并行地进行操作。每次对目标寄存器进行重命名(即在用当前可用的物理寄存器替换结构寄存器的情况下),就对重命名映射(即重命名映射中的数据)进行更新。(所述一组中的)将来的读取随后必须使用更新的映射,而不是该周期起始时存在的映射。为了解决这一问题,可以使用从每个目标寄存器重命名操作的结果到每个将来的源寄存器读取的转发路径。然而,这会迅速地变得十分复杂,并且不能很好的扩展(例如在一组中处理的指令的数量增加的情况中)。已经提出了一种使用两条流水线重命名块的两阶段重命名方法。该方法在两个周期上操作,并且采用的是在中间点处而不是在时钟边沿处使用锁存的更异步的方式。在第一个周期执行写入而在第二个周期执行读取,这导致了复杂性的增加,这是因为除了一组当中的依赖性以外,现在在当前的一组指令与时间上的下一组指令之间存在额外的依赖性,原因在于这两个组在单个周期内更新重命名映射/从重命名映射进行读取。如下描述的实施例不局限于解决用于寄存器重命名的已知方法和装置的任何或全部缺点的实现。
技术实现思路
提供本
技术实现思路
以便以简化形式介绍构思的精粹,下文在具体实施方式中进一步对这些构思进行描述。本
技术实现思路
并不旨在标识要求保护的主题的关键特征或必要特征,也不旨在用作协助确定要求保护的主题的范围。描述了使用依赖性消除的多阶段寄存器重命名。在实施例中,在两阶段中对寄存器进行重命名的。第一阶段涉及消除一组指令中的全部依赖性,其中,所述一组指令正被一起重命名。随后最终阶段使用重命名映射并行地对所有寄存器进行重命名。在各个实施例中,通过使用固定的映射对每个指令中的目标寄存器进行重命名,来在第一阶段中消除依赖性,并且在一些实施例中,固定的映射基于所述一组指令中的目标寄存器的位置。依赖寄存器也是在第一阶段中被重名命的,所述依赖寄存器是在一条指令中被读取但已经在所述一组指令中的之前指令中被写入的寄存器阶段。在最终阶段中,除了执行重命名以外,还更新重命名映射。第一方案提供了一种乱序处理器中寄存器重命名的方法,包括:在第一阶段中,使用在硬件逻辑中定义的固定映射来消除一组指令中的依赖性;以及在最终阶段中,使用重命名映射并行地对所述一组指令中的全部寄存器进行重命名。使用在硬件逻辑中定义的固定映射来消除一组指令中的依赖性可以包括:使用所述固定映射,用一组额外的寄存器中的一个来对所述一组指令中的全部目标寄存器和任意依赖寄存器进行重命名;并且将使用了哪一个额外寄存器来对每一个目标寄存器进行重命名的细节传递到所述最终阶段。目标寄存器与额外寄存器之间的固定映射可以基于所述一组指令中的每一个目标寄存器的物理位置。所述最终阶段可以进一步包括:更新所述重命名映射。所述重命名映射可以包括与每一个额外寄存器相关联的条目。更新所述重命名映射可以包括:基于从第一阶段传递的细节更新所述重命名映射中的与每一个目标寄存器相关联的条目;以及更新所述重命名映射中的与每一个额外寄存器相关联的条目,以将每一个额外寄存器映射到未分配的物理寄存器。该方法可以进一步包括:存取未分配的物理寄存器的列表。所述固定映射可以独立于任何之前的状态。该方法可以进一步包括:在第一阶段和最终阶段之间执行优化操作。所述一组指令可以包括N条指令,并且所述一组额外寄存器可以包括N个额外寄存器,其中N为整数。所述一组指令中的每一条指令可以包括不超过Y个的目标寄存器,并且每一条指令可以具有一组Y个相关联的有效位,每一个有效位指示在该指令中是否使用了Y个目标寄存器中的一个。这一组指令可以包括N条指令,并且所述一组额外寄存器可以包括N×Y个额外寄存器,其中N和Y都为整数。所述一组指令中的每一个指令可以包括不超过X个的源寄存器,并且每一个指令可以具有一组X个相关联的有效位,每一个有效位指示在该指令中是否使用了X个源寄存器中的一个。第二方案提供了一种乱序处理器,包括:重命名映射;定义寄存器之间的固定映射的硬件逻辑;依赖性消除逻辑,用于使用所述固定映射消除一组指令中的依赖性;重命名逻辑,用于使用所述重命名映射并行地对所述一组指令中的全部寄存器进行重命名;以及多个物理寄存器。依赖性消除逻辑可以包括多个依赖性消除逻辑实例,并且其中,每一个依赖性消除逻辑实例用于消除所述一组指令中的单独的、非重叠的子集中的依赖性。依赖性消除逻辑可以用于通过以下方式来消除所述一组指令中的依赖性:使用所述固定映射,用一组额外寄存器中的一个对一组指令中的全部目标寄存器和任意依赖寄存器进行重命名;并且将使用了哪一个额外寄存器对每一个目标寄存器进行重命名的细节传递到重命名逻辑。重命名映射可以包括与每一个额外寄存器相关联的条目。多个物理寄存器可以包括多个未分配的物理寄存器。重命名逻辑可以进一步用于更新重命名映射。乱序处理器可以进一步包括依赖性消除逻辑与重命名逻辑之间的循环缓冲器,其中,所述循环缓冲器用于在依赖性消除逻辑消除了依赖性之后存储位于循环之中的指令;以及一旦存储了所述循环中的全部指令,就将所述指令释放到重命名逻辑。乱序处理器可以进一步包括依赖性消除逻辑与重命名逻辑之间的优化逻辑。第三方案提供了基本上参考附图中的图1、图5和图6中的任何一个所描述的一种乱序处理器。第四方案提供了基本上参考附图中的图2-图5中的任何一个所描述的一种乱序处理器中寄存器重命名的方法。本文描述的方法由有形存储介质上的机器可读形式的软件来执行,例如,计算机程序的形式,计算机程序包括计算机程序代码模块,所述计算机程序代码模块在所述程序运行在计算机上时适于执行本文描述的任意方法的所有步骤,并且其中,计算机程序可以体现在计算机可读介质上。有形(或非暂时性)存储介质的实例包括磁盘、拇指驱动器、存储卡等等,并且不包括传播信号。软件可以适于在并行处理器上或者串行处理器上执行,使得方法步骤可以以任意合适顺序或者同时地执行。本申请承认固件和软件可以是有价值的、可单独交易的商品。旨在涵盖在“哑”或标准硬件上运行或对“哑”或标准硬件进行控制以执行期望功能的软件。还旨在涵盖“描述”或定义硬件的配置的软件,例如HDL(硬件描述语言)软件,如用于设计硅芯片,或用于配置通用编程芯片,以执行期望功能。优选特征可以适当地组合,这对于技术人员将是显而易见的,并且可以与本专利技术的任意方面进行组合。附图说明将通过例子的方式参本文档来自技高网
...
使用依赖性消除的多阶段寄存器重命名

【技术保护点】
一种乱序处理器中寄存器重命名的方法,包括:在第一阶段中,使用在硬件逻辑中定义的固定映射来消除一组指令中的依赖性(21);以及在最终阶段中,使用重命名映射并行地对所述一组指令中的所有寄存器进行重命名(22、206)。

【技术特征摘要】
2012.08.07 GB 1213994.51.一种乱序处理器中寄存器重命名的方法,包括:在第一阶段中,使用在硬件逻辑中定义的固定映射来消除一组指令中的依赖性(21),消除所述依赖性包括:使用所述固定映射,用一组额外寄存器中的一个额外寄存器来对所述一组指令中的所有目标寄存器和任意依赖寄存器进行重命名(202),其中,所述固定映射独立于任何之前的状态,并且其中,目标寄存器和额外寄存器之间的所述固定映射是基于所述一组指令中的每一个目标寄存器的物理位置的;以及在最终阶段中,使用重命名映射并行地对所述一组指令中的所有寄存器进行重命名(22、206)。2.根据权利要求1所述的方法,其中,使用在硬件逻辑中定义的固定映射来消除一组指令中的依赖性还包括:将关于使用了哪个额外寄存器来对每一个目标寄存器进行重命名的信息传递到所述最终阶段(204)。3.根据权利要求1所述的方法,其中,所述最终阶段进一步包括:更新所述重命名映射(208)。4.根据权利要求3所述的方法,其中,所述重命名映射包括与每一个额外寄存器相关联的条目。5.根据权利要求4所述的方法,其中,更新所述重命名映射包括:基于从所述第一阶段传递的信息,更新所述重命名映射中与每一个目标寄存器相关联的条目(210);以及更新所述重命名映射中与每一个额外寄存器相关联的条目,以将每一个额外寄存器映射到未分配的物理寄存器(212)。6.根据权利要求5所述的方法,进一步包括:存取未分配的物理寄存器的列表。7.根据权利要求1所述的方法,进一步包括:在所述第一阶段和所述最终阶段之间执行优化操作。8.根据权利要求1所述的方法,其中,所述一组指令包括N条指令,并且所述一组额外寄存器包括N个额外寄存器,其中,N为整数。9.根据权利要求1所述的方法,其中,所述一组指令中的每一条指令包括不超过Y个的目标寄存器,并且其中,每一条指令具有一组Y个相关联的有效位,每一个有效位指示在该指令中是否使用了所述Y个目标寄存器中的一个目标寄存器。10.根据权利要求9所述的方法,其中,所述一组指令包括N条指令,并且所述一组额外寄存器包括N×Y个额外寄存器,其中,N...

【专利技术属性】
技术研发人员:H·杰克逊
申请(专利权)人:想象力科技有限公司
类型:发明
国别省市:

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

1