跨线程寄存器共享技术的制作方法

上传人:ting****789 文档编号:310068887 上传时间:2022-06-14 格式:DOCX 页数:4 大小:19.86KB
返回 下载 相关 举报
跨线程寄存器共享技术的制作方法_第1页
第1页 / 共4页
亲,该文档总共4页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《跨线程寄存器共享技术的制作方法》由会员分享,可在线阅读,更多相关《跨线程寄存器共享技术的制作方法(4页珍藏版)》请在金锄头文库上搜索。

1、跨线程寄存器共享技术的制作方法专利名称:跨线程寄存器共享技术的制作方法技术领域:本发明涉及微处理器体系结构。更具体而言,本发明涉及用于在微处理器内共享寄存器资源的技术。背景技术: 在典型的高性能超标量(superscalar)微处理器中,一种提高性能的技术是寄存器重命名(register renaming),其中指令所引用的逻辑寄存器被映射到一个更大的物理寄存器集合上。这种物理寄存器映射有助于消除逻辑寄存器映射中会存在的假相关性(false dependency)。传统上,诸如寄存器别名表(RAT)之类的结构存储“逻辑到物理”的映射,而另一种结构,例如空闲清单表(“空闲清单”(freelist

2、),则保持未使用或“空闲”的物理寄存器,直到它们被重命名单元所分配和使用为止。在有能力同时执行若干线程的多线程处理器中,用于从空闲清单中分配物理寄存器的技术可以使用硬分区空闲清单或共享空闲清单。共享空闲清单技术通常需要较大的空闲清单表和相关联的逻辑,但它在性能上具有以下的优势,即如果处理器运行在单线程模式下,则使空闲清单内的所有寄存器都对一个活动线程可用。硬分区空闲清单技术需要较少的硬件,但可能由于每个线程的寄存器数量是固定的而约束了性能。现有技术中两线程处理器的共享寄存器分配技术的一个示例在图1中示出。当一个寄存器被分配到任一线程或两个线程时,它被从空闲清单105中读取,并写入到合适的RAT

3、 110中,作为重命名的寄存器。而且,诸如重排序缓冲区(ROB)115之类的单独结构跟踪所分配的寄存器,从而这些寄存器可以在不再需要时被返回到空闲清单。共享空闲清单自身难以处理寄存器释放(deallocation),因为在两个线程之间没有受保证的退休(retirement)顺序。空闲清单中的条目数等于物理寄存器的条目数,在复位时,用每个物理寄存器号将空闲清单初始化。然后,可以将这些初始化了的寄存器分配到任一线程或两个线程的RAT中。利用硬分区寄存器分配技术,可以减少特定数量的物理寄存器所需的硬件量。硬分区寄存器分配技术的一个现有技术示例在图2中示出。图2的硬分区寄存器分配技术为每个线程指定了可

4、以使用哪些寄存器。而且,如果一个线程休眠,则其所指定的寄存器不被使用,这也浪费了物理寄存器空间。在图2的现有技术示例中,可以用物理寄存器号将RAT 210和空闲清单205初始化,这允许每个空闲清单仅跟踪当前未被RAT使用的寄存器,从而限制空闲清单的大小。假定每个线程都按程序顺序使指令退休,每个空闲清单就可以处理寄存器释放而无需ROB,从而减少了对执行释放的单独结构的需求。图1的现有技术示例使特定线程可用的空闲清单大小最大化,但需要使用额外的硬件,即ROB,来重分配空闲清单中的寄存器。另一方面,图2的现有技术示例允许在空闲清单中重分配寄存器而无须使用ROB,但减少了单个线程可用的空闲清单条目的数

5、量。发明内容本发明的目的在于提供用于在微处理器内进行寄存器共享的装置、系统和方法,用于将最优数量的物理寄存器映射到希望数量的逻辑寄存器,同时不增加硬件成本。根据本发明一个方面,提供了一种装置,该装置包括物理寄存器文件,在该物理寄存器文件中,与计算机程序的指令相关联的数据被按照与执行所述指令的处理器是处于多线程模式还是单线程模式无关的顺序而存储。根据本发明另一方面,提供了一种装置,该装置包括第一装置,用于指示物理寄存器文件中要由微处理器使用的、未被分配到逻辑寄存器的寄存器,所述第一装置在所述微处理器的第二操作模式期间被分区,而在所述微处理器的第一操作模式期间不被分区;和第二装置,用于将所述逻辑寄

6、存器分配到所述物理寄存器。根据本发明又一方面,提供了一种系统,该系统包括存储器单元,用于存储第一和第二指令线程;和处理器,用于执行所述第一和第二指令线程,所述处理器包括物理寄存器文件,其中与所述第一和第二指令线程相对应的数据被按照与所述处理器是处于多线程模式还是单线程模式无关的顺序而存储。根据本发明再一方面,提供了一种方法,该方法包括以下步骤将寄存器分配表初始化,以将第一组逻辑寄存器映射到第二组物理寄存器;如果与寄存器空闲清单相关联的处理器处于多线程模式,则将所述寄存器空闲清单对半分开;以及如果所述处理器处于单线程模式,则不分开所述寄存器空闲清单。利用本发明所提供的装置、系统和方法,可以有效地

7、将最优数量的物理寄存器映射到希望数量的逻辑寄存器,同时不增加硬件成本。在附图中,示例性而非限制性地图示了本发明的实施例,在附图中,相同的标号指示相似的元件,其中图1示出了现有技术的一种用于多线程处理器的寄存器共享技术,其将单个线程可用的空闲清单空间最大化;图2示出了现有技术的一种寄存器共享技术,其减少了对用来在空闲清单中对退休的寄存器进行重分配的额外的硬件结构的使用;图3示出了一种计算机系统,在其中可以使用本发明的至少一个实施例;图4示出了一种微处理器体系结构,其中可以使用本发明的至少一个具体实施例方式本发明的实施例涉及微处理器体系结构。更具体而言,本发明的实施例涉及用于多线程指令的微处理器内

8、的寄存器共享技术,其有助于将最优数量的物理寄存器映射到希望数量的逻辑寄存器,而不会带来大量的硬件开销。在本发明的至少一个实施例中,使用了这样一种技术,该技术带来了与硬分区寄存器共享技术相关联的硬件成本,但当一个线程休眠时使更多的寄存器对另一线程可用。图3示出了一种计算机系统,在该计算机系统中可以使用本发明的至少一个实施例。处理器305从缓存存储器310和主存储器315访问数据。在图3的处理器中示出的是本发明的一个实施例306。然而,本发明的其它实施例可以实现在该系统内诸如单独的总线代理之类的其它设备中,或者分布在整个系统的硬件、软件或其某种组合当中。所述主存储器可以实现在各种存储器源中,所述存

9、储器源例如是动态随机访问存储器(DRAM)、硬盘驱动器(HDD)320,或者包含各种存储设备和技术的经由网络接口330而位于所述计算机系统远程的存储器源。所述缓存存储器可以位于处理器内或靠近处理器,例如位于处理器的本地总线307上。而且,所述缓存存储器还可以包含较快的存储器单元,例如六晶体管(6T)单元,或者访问速度近似相等或更快的其它存储器单元。图4示出了一种微处理器,在该处理器中可以使用本发明的至少一个实施例。处理器400具有执行单元420、调度单元415、重命名单元410、退休单元425和译码器单元405。在本发明的一个实施例中,微处理器是设有流水线的超标量处理器,其可以包含串行和/或并

10、行配置的多阶段处理功能。因此,在处理器内可以同时处理多条指令,每条指令处于不同的流水线阶段。而且,为了处理具有相似类型或相似属性(例如延迟容忍(latency-tolerance)的指令,执行单元可以是执行集群(cluster)的一部分。在其它实施例中,执行单元可以是单一执行单元。调度单元可以包含各种功能单元,包括本发明的实施例413。本发明的其它实施例可以驻留在图4的处理器体系结构的其它地方,包括重命名单元407。图5示出了根据本发明一个实施例的寄存器共享体系结构,其有助于增加单线程执行模式下可用的寄存器数量,而不会带来全共享的空闲清单体系结构的硬件成本。这种体系结构用寄存器重命名来初始化分

11、别与线程0和线程1相对应的两个RAT 501、502,而不管处理器是处于单线程(ST)还是多线程(MT)模式。用剩余的重命名寄存器将空闲清单505初始化,并检查处理器的模式(ST还是MT)。如果处理器处于MT模式,则空闲清单将其自身分区,使得空闲清单的每一半对不同的线程可用。在ST模式下,空闲清单中的所有寄存器对于活动线程都是可用的。图5的实施例包括两个线程,每个线程8个逻辑寄存器,总共28个物理寄存器510,在该实施例中还指明了处于ST模式下时机器的初始状态。具体而言,物理寄存器空间的后8个条目被用于线程1(当前休眠),而前20个条目对线程0可用。如果处理器从ST切换到MT模式,则空闲清单将

12、其自身对半分区,每一半用于不同的线程。这与现有技术硬分区寄存器共享技术相似,主要区别在于分配到每个线程的物理寄存器集合将会依赖于ST到MT转变时空闲清单的状态,而不是每个线程的预定的物理寄存器集合。这意味着物理寄存器文件中每个线程所使用的寄存器将会被随机分散到整个物理寄存器文件中。图6示出了根据本发明一个实施例,在MT到ST转变之后所述体系结构的状态。具体而言,在MT到ST的转变中,空闲清单601将其自身解分区,并允许活动线程对空闲清单中此时的剩余寄存器进行分配。休眠线程605仍将具有8个分配在物理寄存器文件中随机位置(并且未被活动线程使用)的寄存器。活动线程610将会再次具有20个物理寄存器

13、,用这些寄存器来映射8个逻辑寄存器。本发明的多个方面可以使用互补金属氧化物半导体(CMOS)电路和逻辑设备(硬件)来实现,而其它方面可以使用存储在机器可读介质上的指令(软件)来实现,所述指令当由处理器执行时,会使该处理器执行实现本发明实施例的方法。而且,本发明的一些实施例可以仅用硬件来执行,而另一些实施例可以仅用软件来执行。图7是一个流程图,示出了用于执行本发明至少一个实施例的多种操作。在操作701,本发明的实施例处于ST模式,并被初始化以对物理寄存器文件内的8个寄存器进行分配和重命名。而且,物理寄存器文件中另外12个未使用的寄存器被列出在空闲清单中,以供活动线程使用。如果正在执行图7的本发明

14、实施例的处理器在操作705处切换到MT模式,则空闲清单在操作710被分成两半,并且第二线程可以随意使用空闲清单属于它的那一半中所指示的寄存器。如果任何寄存器退休,则空闲清单在操作715相应地反映这些寄存器,无论是在MT还是ST模式下。如果图7所示的本发明实施例不在MT和ST模式间切换,则在操作720,根据随后的指令所使用的寄存器来更新RAT和空闲清单。虽然已参照说明性实施例对本发明进行了描述,但本说明书不应被理解为具有限制性意义。本发明所属领域的技术人员所清楚的对所述说明性实施例的各种修改以及其它实施例都被视为处于本发明的精神和范围之内。权利要求1.一种装置,包括物理寄存器文件,在该物理寄存器

15、文件中,与计算机程序的指令相关联的数据被按照与执行所述指令的处理器是处于多线程模式还是单线程模式无关的顺序而存储。2.如权利要求1所述的装置,还包括至少一个寄存器分配表,用于指示所述数据在所述物理寄存器文件内从逻辑寄存器到物理寄存器的分配。3.如权利要求1所述的装置,还包括所述物理寄存器文件内未被分配到逻辑寄存器的物理寄存器的清单,当所述处理器处于单线程模式时,所述清单中的条目被完全分配到第一线程,而当所述处理器处于多线程模式时,所述清单中的条目被分区,以使得所述条目中的第一部分被分配到第一线程,而所述条目中的第二部分被分配到第二线程。4.如权利要求3所述的装置,其中,如果所述处理器处于单线程

16、模式,则所述物理寄存器文件的所有物理寄存器中的第一部分被分配到所述第一线程,而所述物理寄存器文件的所有物理寄存器中的第二部分被分配到所述第二线程,所述所有物理寄存器中的第一部分大于所述所有物理寄存器中的第二部分。5.如权利要求4所述的装置,其中,如果所述处理器处于单线程模式,则所述第二线程休眠。6.如权利要求4所述的装置,其中,在所述处理器转变到多线程模式之后,所述物理寄存器文件内的所有物理寄存器中的第一部分仍被分配到所述第一线程,直到与所述物理寄存器文件的所有物理寄存器中的第一部分内的数据相关联的指令退休为止。7.如权利要求6所述的装置,其中,在所述物理寄存器清单中指示与所述退休的指令相关联的物理寄存器。8.一种装置,包括第一装置,用于指示物理寄存器文件中要由微处理器使用的、未被分配到逻辑寄存器的寄存器,所述第一装置在所述微处理器的第二操作模式期间被分区,而在所述微处理器的第一操作模式期间不被分区;第二装置,用

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号