在发布时间的微处理器寄存器标签的分配制造技术

技术编号:38338949 阅读:6 留言:0更新日期:2023-08-02 09:19
提供了一种用于在发布时间将寄存器标签分配给指令的方法。该方法包括接收由微处理器执行的指令。该方法还包括将指令分派到发布队列,而不将寄存器标签分配给指令。该方法还包括确定该指令准备好发布。响应于确定该指令准备好发布,该方法包括将可用的寄存器标签分配给该指令。该方法还包括发布指令。该方法还包括发布指令。该方法还包括发布指令。

【技术实现步骤摘要】
【国外来华专利技术】在发布时间的微处理器寄存器标签的分配

技术介绍

[0001]本公开一般涉及计算领域,尤其涉及在发布时间将寄存器标签分配给由微处理器执行的指令。
[0002]微处理器是在一个或多个集成电路(IC)上结合了中央处理单元的功能的计算机处理器。处理器基于时钟周期执行指令(例如,存储指令)。时钟周期,或简称为“周期”,是处理器的单个电子脉冲。

技术实现思路

[0003]本公开的实施例包括用于在发布时间向指令分配寄存器标签的方法、计算机程序产品和系统。
[0004]根据一个方面,该方法包括接收由微处理器执行的指令。该方法还包括将指令分派到发布队列,而不将寄存器标签分配给指令。该方法还包括确定该指令准备好发布。响应于确定该指令准备好发布,该方法包括将可用的寄存器标签分配给该指令。该方法还包括发布指令。
[0005]根据另一方面,提供了一种包括处理器的系统,所述处理器被配置为执行一种方法,所述方法包括:接收由微处理器执行的指令;将所述指令分派到发布队列,而不向所述指令分配寄存器标签;确定所述指令准备好发布;响应于确定所述指令准备好发布,将可用寄存器标签分配给所述指令;发布指令。
[0006]根据另一方面,提供了一种计算机程序产品,包括一个或多个计算机可读存储介质,所述计算机可读存储介质具有随其体现的程序指令,所述程序指令可由处理器执行以执行一种方法,所述方法包括:接收由所述处理器执行的指令;将所述指令分派到发布队列,而不向所述指令分配寄存器标签;确定所述指令准备好发布;响应于确定所述指令准备好发布,将可用寄存器标签分配给所述指令;以及发布指令。
[0007]以上
技术实现思路
并非旨在描述本公开的每个所示实施例或每种实施方式。
附图说明
[0008]本公开中包括的附图并入说明书中并形成说明书的一部分。它们示出了本公开的实施例,并且与说明书一起用于解释本公开的原理。附图仅是典型实施例的说明,而不限制本公开。
[0009]图1示出了可以实现本公开的说明性实施例的处理器核心的框图。
[0010]图2示出了根据本公开的实施例的示例处理器微架构的各种组件的高级框图。
[0011]图3示出了根据本公开的实施例的被配置为在发布时间分配寄存器标签的处理器的示例微架构的框图。
[0012]图4示出了根据本公开的实施例的用于在发布时间将寄存器标签分配给指令的示例方法的流程图。
[0013]图5示出了根据本公开的实施例的可以用于实现本文描述的方法、工具和模块中
的一个或多个以及任何相关功能的示例计算机系统的高级框图。
[0014]虽然本文所述的实施例可具有各种修改和替代形式,但其细节已在附图中以实例的方式示出并将详细描述。然而,应当理解,所描述的特定实施例不应被理解为限制性的。相反,本专利技术覆盖落入本专利技术的精神和范围内的所有修改、等效和替换。
具体实施方式
[0015]本公开一般涉及计算领域,尤其涉及在发布时间将寄存器标签分配给由微处理器执行的指令。虽然本公开不一定限于此类应用,但是通过使用此上下文的各种示例的讨论可以理解本公开的各个方面。
[0016]微处理器架构利用多种寄存器来存储数据以供指令执行/操纵。为了追踪哪些寄存器(或寄存器内的位置)存储特定指令的数据,微处理器利用寄存器文件(或一个以上寄存器文件)。寄存器文件保存由超切片中的硬件线程执行的各种指令所需的寄存器位置。在一些处理器中,寄存器文件可被分解成块。例如,在一些处理器中,寄存器文件被称为切片目标寄存器文件(STF),并且它由四个较小的STF块组成,所述四个较小的STF块一起工作以向核心提供大的寄存器文件。(POWER是国际商业机器公司所拥有的注册商标)。
[0017]为了确保多个指令不试图在相同位置存储不同的数据,微处理器将寄存器标签(例如STF标签)分配给指令。未使用的寄存器标签可以被保存在空闲列表(例如STF空闲列表)中。当在分派时接收到指令时,处理器检查可用寄存器。如果寄存器可用,则处理器将来自空闲列表的寄存器标签分配给指令,并且指令能够继续处理相关联的标签。一旦分配了寄存器标签,就将其从空闲列表中移除,并且不能将其在寄存器文件中的对应条目(以及因此寄存器位置)分配给新指令。寄存器标签和寄存器文件的使用允许处理器确保指令不冲突(例如,重写另一指令仍然需要的数据)。
[0018]在传统的处理器架构中,寄存器标签(以及相应地,寄存器文件中的条目)在流水线中相对早地被分配给指令,通常在指令分派期间,并且在任何情况下是在指令被发送到发布队列(ISQ)之前。结果,寄存器标签被分配给指令,因此在相对长的时间内不可用于其它指令。这可能导致高寄存器文件使用,并且一些指令可能必须等待不必要的长时间量以使寄存器标签变为空闲。
[0019]本公开的实施例通过在发布时间分配寄存器文件来解决传统微处理器架构的这些和其它问题。因此,这些实施例缩小了必须指派寄存器的窗口。这允许指令被分派到发布队列中并等待寄存器标签。
[0020]在一些实施例中,处理器中的分派逻辑可以将用于接收的指令的指令标签(ITAG)写入映射器。另外,旧的ITAG可以推送到保存和恢复缓冲器(SRB)。SRB跟踪给定寄存器的先前映射。例如,如果处理器五次写入特定通用寄存器(GPR),例如GPR3,则映射器仅具有最年轻的一个,而SRB将存储五个历史ITAG。SRB的目的是在处理器必须执行刷新(flush)的情况下备份处理器状态。分派逻辑还将指令分派到ISQ。在一些实施例中,在不将寄存器标签分配给指令的情况下执行这些操作。
[0021]指令没有寄存器标签地在ISQ中等待,直到它接近发布时间为止。在发布时间,处理器中的寄存器标签分配逻辑将空闲寄存器标签分配给指令。处理器还向ISQ和映射器广播指令的ITAG和寄存器标签。映射器使用接收的ITAG识别匹配的位置,并写入分配的寄存
器标签。映射器还为指令设置就绪位(W,例如,通过设置W=1)。就绪位指示数据是否在寄存器中以及指令是否准备好执行。类似地,在ISQ处,识别匹配位置,在源位置处写入所分配的寄存器标签,且设置就绪位。寄存器标签也被写入SRB中的匹配位置,并且就绪位被设置在SRB中。然后执行该指令。
[0022]如果指令到达发布时间并且没有寄存器标签可用,则阻止该指令发布,直到寄存器标签可用。在一些实施例中,寄存器文件中的某个条目保持空闲,以防止下一条要完成(NTC)指令不具有可用的寄存器条目的情况。若该NTC指令不具有寄存器标签,则可将该保留条目分配给该NTC指令,以允许其发布。如果确实发生挂起(例如,没有寄存器标签通过发布指令而被释放),则执行刷新以清除和回收进行中的寄存器标签。在一些实施例中,可以通过仅清除一些寄存器标签而不是执行完全刷新,来执行小型挂起清除(mini

hang buster)。
[0023]与现有架构相比,在发布时执行寄存器标签分配具有许多优点。例如,由于在分派期间不需要考虑寄存器文件可用性,所以可以降低分派的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种方法,包括:接收由微处理器执行的指令;将所述指令分派到发布队列,而不向所述指令分配寄存器标签;确定所述指令准备好发布;响应于确定所述指令准备好发布,将可用寄存器标签分配给所述指令;以及发布所述指令。2.根据权利要求1所述的方法,其中所述指令依赖于产生者指令,并且其中确定所述指令准备好发布包括:确定用于所述指令的就绪位被设置。3.如权利要求2所述的方法,其中,所述指令的源寄存器标签标识包含所述指令需要执行的寄存器位置的寄存器文件中的条目。4.根据权利要求2所述的方法,其中所述就绪位标识所述产生者指令是否已经执行。5.根据权利要求1所述的方法,所述方法进一步包括:在发布该指令之后,将该指令的ITAG与发布队列中其它指令的源ITAG进行比较;基于所述比较来标识依赖于所述指令的第二指令;以及将分配给所述指令的所述寄存器标签写入所述发布队列中的所述第二指令的条目的源寄存器标签字段、映射器中的所述第二指令的条目以及保存和恢复缓冲器中的所述第二指令的条目。6.根据权利要求1所述的方法,所述方法进一步包括:响应于确定寄存器标签不可用于下一要完成(NTC)指令,确定是否已满足刷新标准;响应于已满足所述刷新标准,刷新来自所述发布队列的一个或多个指令,其中所述一个或多个指令是比所述NTC指令更新的指令,并且其中刷新所述一个或多个指令使得回收所述一个或多个指令的寄存器标签;将回收的寄存器标签之一分配给NTC指令;以及发布NTC指令。7.根据权利要求1所述的方法,其中确定所述指令准备好发布包括:确定所述指令所依赖的所有指令都已经发布。8.一种包括处理器的系统,所述处理器被配置为执行包括以下步骤的方法:接收由微处理器执行的指令;将所述指令分派到发布队列,而不向所述指令分配寄存器标签;确定所述指令准备好发布;响应于确定所述指令准备好发布,将可用寄存器标签分配给所述指令;以及发布所述指令。9.根据权利要求8所述的系统,其中所述指令依赖于产生者指令,并且其中确定所述指令准备好发布包括:确定用于所述指令的就绪位被设置。10.如权利要求9所述的系统,其中所述指令的源寄存器标签标识包含所述指令需要执行的寄存器位置的寄存器文件中的条目。11.根据权利要求9所述的系统,其中所述就绪位标识所述产生者指令是否已经执行。
12.根据权利要求8所述的系统,其中所述方法还包括:在发布该指令之后,将该指令的ITAG与发布队列中其它指令的源ITAG进行比较;基于所述比较来标识依赖于所述指令的第二指令;以及将分配给所述指令的所述寄存器标签写入所述发布队列中的所述第二指令的条目的源寄存器标签字段、映射...

【专利技术属性】
技术研发人员:S
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:

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

1