首页> 中国专利> 跨线程寄存器共享技术

跨线程寄存器共享技术

摘要

本发明公开了一种用于在微处理器中共享寄存器资源的技术。本发明的实施例涉及用于多线程指令的微处理器内的寄存器共享技术,其有助于将最优数量的物理寄存器映射到希望数量的逻辑寄存器,而不会带来大量的硬件开销。

著录项

  • 公开/公告号CN1577260A

    专利类型发明专利

  • 公开/公告日2005-02-09

    原文格式PDF

  • 申请/专利权人 英特尔公司;

    申请/专利号CN200410046147.0

  • 申请日2004-06-02

  • 分类号G06F9/38;G06F9/46;

  • 代理机构北京东方亿思专利代理有限责任公司;

  • 代理人王怡

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-17 15:47:27

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-07-30

    未缴年费专利权终止 IPC(主分类):G06F9/38 授权公告日:20121010 终止日期:20130602 申请日:20040602

    专利权的终止

  • 2012-10-10

    授权

    授权

  • 2005-04-13

    实质审查的生效

    实质审查的生效

  • 2005-02-09

    公开

    公开

说明书

技术领域

本发明涉及微处理器体系结构。更具体而言,本发明涉及用于在微处理器内共享寄存器资源的技术。

背景技术

在典型的高性能超标量(superscalar)微处理器中,一种提高性能的技术是寄存器重命名(register renaming),其中指令所引用的逻辑寄存器被映射到一个更大的物理寄存器集合上。这种物理寄存器映射有助于消除逻辑寄存器映射中会存在的假相关性(false dependency)。传统上,诸如寄存器别名表(RAT)之类的结构存储“逻辑到物理”的映射,而另一种结构,例如空闲清单表(“空闲清单”(freelist)),则保持未使用或“空闲”的物理寄存器,直到它们被重命名单元所分配和使用为止。

在有能力同时执行若干线程的多线程处理器中,用于从空闲清单中分配物理寄存器的技术可以使用硬分区空闲清单或共享空闲清单。共享空闲清单技术通常需要较大的空闲清单表和相关联的逻辑,但它在性能上具有以下的优势,即如果处理器运行在单线程模式下,则使空闲清单内的所有寄存器都对一个活动线程可用。硬分区空闲清单技术需要较少的硬件,但可能由于每个线程的寄存器数量是固定的而约束了性能。

现有技术中两线程处理器的共享寄存器分配技术的一个示例在图1中示出。当一个寄存器被分配到任一线程或两个线程时,它被从空闲清单105中读取,并写入到合适的RAT 110中,作为重命名的寄存器。而且,诸如重排序缓冲区(ROB)115之类的单独结构跟踪所分配的寄存器,从而这些寄存器可以在不再需要时被返回到空闲清单。

共享空闲清单自身难以处理寄存器释放(deallocation),因为在两个线程之间没有受保证的退休(retirement)顺序。空闲清单中的条目数等于物理寄存器的条目数,在复位时,用每个物理寄存器号将空闲清单初始化。然后,可以将这些初始化了的寄存器分配到任一线程或两个线程的RAT中。

利用硬分区寄存器分配技术,可以减少特定数量的物理寄存器所需的硬件量。硬分区寄存器分配技术的一个现有技术示例在图2中示出。图2的硬分区寄存器分配技术为每个线程指定了可以使用哪些寄存器。而且,如果一个线程休眠,则其所指定的寄存器不被使用,这也浪费了物理寄存器空间。

在图2的现有技术示例中,可以用物理寄存器号将RAT 210和空闲清单205初始化,这允许每个空闲清单仅跟踪当前未被RAT使用的寄存器,从而限制空闲清单的大小。假定每个线程都按程序顺序使指令退休,每个空闲清单就可以处理寄存器释放而无需ROB,从而减少了对执行释放的单独结构的需求。

图1的现有技术示例使特定线程可用的空闲清单大小最大化,但需要使用额外的硬件,即ROB,来重分配空闲清单中的寄存器。另一方面,图2的现有技术示例允许在空闲清单中重分配寄存器而无须使用ROB,但减少了单个线程可用的空闲清单条目的数量。

发明内容

本发明的目的在于提供用于在微处理器内进行寄存器共享的装置、系统和方法,用于将最优数量的物理寄存器映射到希望数量的逻辑寄存器,同时不增加硬件成本。

根据本发明一个方面,提供了一种装置,该装置包括物理寄存器文件,在该物理寄存器文件中,与计算机程序的指令相关联的数据被按照与执行所述指令的处理器是处于多线程模式还是单线程模式无关的顺序而存储。

根据本发明另一方面,提供了一种装置,该装置包括:第一装置,用于指示物理寄存器文件中要由微处理器使用的、未被分配到逻辑寄存器的寄存器,所述第一装置在所述微处理器的第二操作模式期间被分区,而在所述微处理器的第一操作模式期间不被分区;和第二装置,用于将所述逻辑寄存器分配到所述物理寄存器。

根据本发明又一方面,提供了一种系统,该系统包括:存储器单元,用于存储第一和第二指令线程;和处理器,用于执行所述第一和第二指令线程,所述处理器包括物理寄存器文件,其中与所述第一和第二指令线程相对应的数据被按照与所述处理器是处于多线程模式还是单线程模式无关的顺序而存储。

根据本发明再一方面,提供了一种方法,该方法包括以下步骤:将寄存器分配表初始化,以将第一组逻辑寄存器映射到第二组物理寄存器;如果与寄存器空闲清单相关联的处理器处于多线程模式,则将所述寄存器空闲清单对半分开;以及如果所述处理器处于单线程模式,则不分开所述寄存器空闲清单。

利用本发明所提供的装置、系统和方法,可以有效地将最优数量的物理寄存器映射到希望数量的逻辑寄存器,同时不增加硬件成本。

附图说明

在附图中,示例性而非限制性地图示了本发明的实施例,在附图中,相同的标号指示相似的元件,其中:

图1示出了现有技术的一种用于多线程处理器的寄存器共享技术,其将单个线程可用的空闲清单空间最大化;

图2示出了现有技术的一种寄存器共享技术,其减少了对用来在空闲清单中对退休的寄存器进行重分配的额外的硬件结构的使用;

图3示出了一种计算机系统,在其中可以使用本发明的至少一个实施例;

图4示出了一种微处理器体系结构,其中可以使用本发明的至少一个

实施例;

图5示出了根据本发明一个实施例,单线程模式下的寄存器共享技术;

图6示出了根据本发明一个实施例,多线程模式下的寄存器共享技术;并且

图7是示出所执行的多种操作的流程图。

具体实施方式

本发明的实施例涉及微处理器体系结构。更具体而言,本发明的实施例涉及用于多线程指令的微处理器内的寄存器共享技术,其有助于将最优数量的物理寄存器映射到希望数量的逻辑寄存器,而不会带来大量的硬件开销。

在本发明的至少一个实施例中,使用了这样一种技术,该技术带来了与硬分区寄存器共享技术相关联的硬件成本,但当一个线程休眠时使更多的寄存器对另一线程可用。

图3示出了一种计算机系统,在该计算机系统中可以使用本发明的至少一个实施例。处理器305从缓存存储器310和主存储器315访问数据。在图3的处理器中示出的是本发明的一个实施例306。然而,本发明的其它实施例可以实现在该系统内诸如单独的总线代理之类的其它设备中,或者分布在整个系统的硬件、软件或其某种组合当中。

所述主存储器可以实现在各种存储器源中,所述存储器源例如是动态随机访问存储器(DRAM)、硬盘驱动器(HDD)320,或者包含各种存储设备和技术的经由网络接口330而位于所述计算机系统远程的存储器源。所述缓存存储器可以位于处理器内或靠近处理器,例如位于处理器的本地总线307上。而且,所述缓存存储器还可以包含较快的存储器单元,例如六晶体管(6T)单元,或者访问速度近似相等或更快的其它存储器单元。

图4示出了一种微处理器,在该处理器中可以使用本发明的至少一个实施例。处理器400具有执行单元420、调度单元415、重命名单元410、退休单元425和译码器单元405。

在本发明的一个实施例中,微处理器是设有流水线的超标量处理器,其可以包含串行和/或并行配置的多阶段处理功能。因此,在处理器内可以同时处理多条指令,每条指令处于不同的流水线阶段。而且,为了处理具有相似类型或相似属性(例如延迟容忍(latency-tolerance))的指令,执行单元可以是执行集群(cluster)的一部分。在其它实施例中,执行单元可以是单一执行单元。

调度单元可以包含各种功能单元,包括本发明的实施例413。本发明的其它实施例可以驻留在图4的处理器体系结构的其它地方,包括重命名单元407。

图5示出了根据本发明一个实施例的寄存器共享体系结构,其有助于增加单线程执行模式下可用的寄存器数量,而不会带来全共享的空闲清单体系结构的硬件成本。这种体系结构用寄存器重命名来初始化分别与线程0和线程1相对应的两个RAT 501、502,而不管处理器是处于单线程(ST)还是多线程(MT)模式。用剩余的重命名寄存器将空闲清单505初始化,并检查处理器的模式(ST还是MT)。如果处理器处于MT模式,则空闲清单将其自身分区,使得空闲清单的每一半对不同的线程可用。在ST模式下,空闲清单中的所有寄存器对于活动线程都是可用的。

图5的实施例包括两个线程,每个线程8个逻辑寄存器,总共28个物理寄存器510,在该实施例中还指明了处于ST模式下时机器的初始状态。具体而言,物理寄存器空间的后8个条目被用于线程1(当前休眠),而前20个条目对线程0可用。

如果处理器从ST切换到MT模式,则空闲清单将其自身对半分区,每一半用于不同的线程。这与现有技术硬分区寄存器共享技术相似,主要区别在于分配到每个线程的物理寄存器集合将会依赖于ST到MT转变时空闲清单的状态,而不是每个线程的预定的物理寄存器集合。这意味着物理寄存器文件中每个线程所使用的寄存器将会被随机分散到整个物理寄存器文件中。

图6示出了根据本发明一个实施例,在MT到ST转变之后所述体系结构的状态。具体而言,在MT到ST的转变中,空闲清单601将其自身解分区,并允许活动线程对空闲清单中此时的剩余寄存器进行分配。休眠线程605仍将具有8个分配在物理寄存器文件中随机位置(并且未被活动线程使用)的寄存器。活动线程610将会再次具有20个物理寄存器,用这些寄存器来映射8个逻辑寄存器。

本发明的多个方面可以使用互补金属氧化物半导体(CMOS)电路和逻辑设备(硬件)来实现,而其它方面可以使用存储在机器可读介质上的指令(软件)来实现,所述指令当由处理器执行时,会使该处理器执行实现本发明实施例的方法。而且,本发明的一些实施例可以仅用硬件来执行,而另一些实施例可以仅用软件来执行。

图7是一个流程图,示出了用于执行本发明至少一个实施例的多种操作。在操作701,本发明的实施例处于ST模式,并被初始化以对物理寄存器文件内的8个寄存器进行分配和重命名。而且,物理寄存器文件中另外12个未使用的寄存器被列出在空闲清单中,以供活动线程使用。如果正在执行图7的本发明实施例的处理器在操作705处切换到MT模式,则空闲清单在操作710被分成两半,并且第二线程可以随意使用空闲清单属于它的那一半中所指示的寄存器。如果任何寄存器退休,则空闲清单在操作715相应地反映这些寄存器,无论是在MT还是ST模式下。如果图7所示的本发明实施例不在MT和ST模式间切换,则在操作720,根据随后的指令所使用的寄存器来更新RAT和空闲清单。

虽然已参照说明性实施例对本发明进行了描述,但本说明书不应被理解为具有限制性意义。本发明所属领域的技术人员所清楚的对所述说明性实施例的各种修改以及其它实施例都被视为处于本发明的精神和范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号