用于在微处理器中进行选择性重命名的方法和设备的制造方法_2

文档序号:9602475阅读:来源:国知局
0039] 要注意的是也可向通过在两个PPF指令之间出现的指令所生成的架构化寄存器 的其他代分配相同的物理寄存器。因此,如果有源于多个指令的架构化寄存器的多代,每个 架构化寄存器则可分配有相同的物理寄存器,而不是分配多个物理寄存器以用于多个架构 化寄存器。这是本文所述的实施方案可通过其而允许减小PRF大小的机制。本文所述的实 施方案还节约了处理器的功率、提高了处理器的时钟步骤等。
[0040] 为了说明这个概念,假设在一种情况下第一生产者指令通过在RMT中进行查找知 道第一物理寄存器已被分配至架构化寄存器的第一代。第一生产者指令因此知道要将其结 果写入第一分配的物理寄存器中。同样地,第一消费者指令通过在RMT中进行查找知道要 从第一分配的物理寄存器读取第一生产者指令的结果。如果第一消费者要读取的结果已被 写入第一分配的物理寄存器中,第一消费者则仅读取已被第一生产者写入第一分配的物理 寄存器中的结果。被写入第一分配的物理寄存器中的第一生产者结果的第一消费者已完成 其任务且因此不再需要被第一生产者写入第一分配的物理寄存器中的结果。
[0041] 当第一架构化寄存器的第二代出现时,则保证了第一架构化寄存器的第二代不具 有针对第一生产者结果的其他消费者。此外,第一架构化寄存器的所有未来各代将查找到 第二分配的物理寄存器以读取其结果,这是因为在第一分配的物理寄存器中的结果已被消 费掉。再次,不再需要被第一生产者写入第一分配的物理寄存器中的结果。
[0042] 在替代的情况下,一个结果的第一生产者通过在RMT中进行查找知道第一物理寄 存器已被分配至第一架构化寄存器。所述结果的第一生产者因此知道要将所述结果写入第 一分配的物理寄存器中。同样地,所述结果的第一消费者通过在RMT中进行查找知道要从 第一分配的物理寄存器读取所述结果。然而,如果由于所述结果的第一生产者尚未完成,从 而使第一消费者要读取的所述结果尚未被写入第一分配的物理寄存器中,那么所述结果的 第一消费者则可等待源于第一生产者的所述结果在第一分配的物理寄存器中变为可用的。 然而,除其他事项外,等待会使处理器减速。
[0043] 在本文所述的一或多个实施方案中,作为使所述结果的第一消费者等待所述结果 的第一生产者将其结果写入第一分配的物理寄存器中的替代,所述结果的第一消费者直接 从处理器中的转发网络获得所述结果。即,所述结果的第一消费者无需从第一分配的物理 寄存器读取所述结果。相反地,在将所述结果写入第一分配的物理寄存器中前,所述结果的 第一消费者从处理器的转发网络的转发路径中的一个获得所述结果。
[0044] 因此,当第一架构化寄存器的第二代出现时,第一消费者不需要第一分配的物理 寄存器所存储的用于第一架构化寄存器的第一代的所述结果,这是因为第一消费者已在第 一架构化寄存器的第二代出现时读取了存储于第一分配的物理寄存器中的所述结果(第 一种情况)或者第一消费者已从转发网络获得了所述结果(第二种情况)。因此,现在第一 分配的物理寄存器是空闲的以可通过第一架构化寄存器的第二代进行重用。以这种方式, 第一架构化寄存器的第二代分配有与分配给第一架构化寄存器的第一代的相同的物理寄 存器名。即,第一分配的物理寄存器的名字重用于第一架构化寄存器的第二代。
[0045] 实例件重命名映射表(RMT)和物理寄存器堆(PRF)
[0046] 图1示出根据本文所述的一或多个实施方案的实例性处理器100的框图。所示的 处理器100为乱序处理器,其在指令管线中执行指令期间利用了选择性寄存器重命名。已 知常规的处理器,如所示的处理器100包含从数据高速缓冲存储器接收数据和从指令高速 缓冲存储器接收指令的管线。控制器通常控制在管线内的各个阶段和执行单元(如取指令 阶段、解码阶段等)以进行解码和执行指令。当其完成时,源于所执行指令的结果可被存储 在寄存器堆、数据高速缓冲存储器和其他缓冲器或存储器单元中。
[0047] 所示的处理器100包含选择性寄存器重命名机制,其将寄存器名从架构化寄存器 名变为物理寄存器名。可这样做以消除处理器性能削弱数据危害,如写后读(RAW)数据危 害和写后写(WAW)数据危害。
[0048] 所示的寄存器重命名机制包含重命名映射表(RMT) 102。在一或多个实施方案中,RMT102为在处理器中将架构化寄存器映射至物理寄存器的任何合适的机制。RMT102能 够进行动态更新以反映架构化寄存器至物理寄存器的新的映射,其包括标识符,如令牌、令 牌计数、序列标识符等的动态更新。
[0049] 例如,当指令为要将结果写入物理寄存器中时,在RMT102中记录用于指令结果 的所分派或分配的物理寄存器的位置。当指令为要从物理寄存器读取结果时,查阅RMT102 以确定要记录指令结果的所分派或分配的物理寄存器的位置。要注意的是,架构化寄存器 不是处理器100内实际的物理位置。相反地,架构化寄存器为根据用于特定处理器的ISA 而由处理器的指令生成的寄存器的名字。
[0050] 所示的寄存器重命名机制包含物理寄存器堆(PRF) 104。在一或多个实施方案中,PRF为包含在处理器100硬件中实施的物理寄存器的堆。物理寄存器保持已提交的指令的 结果,以及尚未提交的后续指令的结果。通常,物理寄存器比架构化寄存器更多。
[0051] 所示的RMT102包含架构化寄存器列106和物理寄存器名(PRN)。架构化寄存器 列106不是物理实体。相反地,架构化寄存器列仅指示用于存取在PRN列108中的相应条 目的索引。PRN列108是按架构化寄存器的名字进行索引的。
[0052]PRN列108包含物理寄存器P1-P5,然而通常物理寄存器比架构化寄存器更多。在 这个实例中,架构化寄存器R1-R5被重命名为物理寄存器P1-P5。在使用标识符,如令牌和 /或指令序列ID(例如,重新排序缓冲器ID、矩阵ID等)的一或多个实施方案中,架构化寄 存器可重用已在用的物理寄存器。
[0053] 例如,所示的RMT102包含令牌列110。在所示的实施例中,在令牌列110中的令 牌为3位长,然而根据实施方案,令牌可以是任何数量的位,如1位、2位、10位等。
[0054] 所示的PRF104包含物理寄存器列112。物理寄存器列112包含物理寄存器 P1-P5,然而通常有更多的物理寄存器。
[0055] 所示的PRF104包含按物理寄存器的名字进行索引的物理寄存器状态列114。物 理寄存器状态列114指出特定的物理寄存器是否是空闲的或在用的。例如,在所示的实例 中,物理寄存器状态列114指出物理寄存器P2是〈在用的〉且所有其他物理寄存器是〈空 闲的〉。〈在用的〉命名指出物理寄存器已被分配至架构化寄存器且所生成的指令要将其 结果写入所分配的物理寄存器中。根据实施方案,〈在用的〉的物理寄存器可由架构化寄 存器的另一代进行重用。〈空闲的〉命名指出物理寄存器尚未被分配至架构化寄存器且可 向所生成的指令分配所述物理寄存器。根据实施方案,〈在用的〉的物理寄存器可由架构 化寄存器的另一代进行重用。
[0056] 所示的PRF104包含令牌列116。在令牌列116中的令牌为3位长,然而根据实施 例,令牌可以是任何数量的位,如1位、2位、10位等。用于令牌列116中的物理寄存器P2 的令牌还要将其最低有效位设定为" 1"。
[0057] 在图1所示的实例中,箭头120指出架构化寄存器R5已被重命名为(或被映射至) 物理寄存器P2,且箭头122指出用于物理寄存器P2的令牌将其最低有效位设定为" 1"。
[0058] 所示的处理器100包含数据转发机构124。所示的数据转发机构124允许在连续 的循环中执行依靠数据的指令。例如,数据转发机构124使数据能绕过PRF直接在处理器 100中的功能单元之间进行发送。
[0059] 实例诜择件寄存器重命名设备
[0060] 从上面讨论的回想,根据实施方案,第一架构化寄存器的第二代分配有与分配给 第一架构化寄存器的第一代的相同的物理寄存器。然而,通常架构化寄存器的第一代的第 一生产者不知道第一分配的物理寄存器也已被分配至架构化寄存器的第二代。根据本文所 述的一或多个实施方案,所示的处理器100确定在什么情况下允许生产者指令将其结果写 入特定的物理寄存器中以及在什么情况下允许消费者指令从特定的物理寄存器读取结果。
[0061] 图2示出根据本文所述的一或多个实施方案处理器100的框图,其中处理器确定 在什么情况下允许生产者指令将其结果写入特定的物理寄存器中以及在什么情况下允许 消费者指令从特定的物理寄存器读取结果。
[0062] 所示的处理器100包含RMT102的几个版本:102A、102B、102C和102D。所示的处 理器100还包含PRF104的几个版本:104A、104B、104C和104D。PRF为一旦生产者指令完 成其执行时写入结果处的物理寄存器堆。
[0063] RMT的每个版本102A、102B、102C和102D包含各架构化寄存器列106A、106B、106C 和 106D。
[0064] RMT的每个版本 102A、102B、102C和 102D包含各PRN列 108A、108B、108C和 108D。 PRN列108A、108B、108C和108D是按架构化寄存器(R4、R5和R6)的名字进行索引的。架 构化寄存器列不是物理实体,而是指示用于存取在PRN列108A、108B、108C和108D中的相 应条目的索引。在所示的实施方案中,示出三个架构化寄存器且示出三个物理寄存器。然 而,通常物理寄存器比架构化寄存器更多。
[0065] 冊1'的每个版本102六、1028、102(:和1020附有各令牌列11(^、11(?、110(:和1100。 令牌列110A、110B、110C和110D包含用于确定是否允许生产者将结果写入物理寄存器中的 位。
[0066] 在所示的实施方案中,在令牌列110A、110B、110C和110D中的令牌为1位长,然而 根据本文所述的其他实施方案,令牌可以是任何数量的位,如3位、2位、10位等。例如,每 个令牌的位的数量可取决于预计在两个PPF指令、两个可能的恢复点或类似物如转移指令 之间出现的架构化寄存器的生产数量。在一些情况下,如果预计在两个PPF之间对给定的 架构化寄存器只有4次重命名,那么每个令牌两位则可能是足够的。在本文所述的一或多 个实施方案中,所有令牌计数从" "开始。
[0067] RMT的每个版本102A、102B、102C和102D包含各物理寄存器列112A、112B、112(^P 112D。所示的物理寄存器列112A、112B、112C和112D包含三个物理寄存器P1-P3。然而,通
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1