重命名缓冲区的布局是什么?
重命名缓冲区的布局建立了重命名的实际框架。有三个基本组成部分是重命名缓冲区的类型和数量以及用于访问重命名缓冲区的基本机制,如图所示。
重命名缓冲区的类型
所选择的重命名缓冲区类型对重命名具有最大的影响。它决定了实现的基本方法,因此它决定了指令的中间结果将写入或读取的位置。它可以被指定为已经生成但尚未具备通过写入体系结构寄存器来修改实际程序状态资格的中间结果。
重命名缓冲区的数量
下表概述了最近的处理器提供了多少个重命名缓冲区。该表的三个部分分别涵盖了不同的实现类型。在第一部分中,我们列出了使用合并寄存器文件作为体系结构寄存器和重命名寄存器的处理器。在这些处理器中,可以找到相当大量的可用于重命名的额外寄存器。重命名缓冲区的数量从 Power1 的 8 个到 R10000 的 32 个,甚至 64 位 Sparc 处理器 PM1 (Sparc64) 的 38 个。
提供的重命名缓冲区数量
重命名的实现 | 重命名缓冲区的数量 | |
---|---|---|
处理器类型 | FX | FP |
合并的重命名和体系结构寄存器文件 | ||
Power1 (1990) | 8 (32 个体系结构 + 8 个重命名) | |
Power2 (1993) | 22 (32 个体系结构 + 22 个重命名) | |
ES/9000 (1992p) | 16 (16 个体系结构 + 16 个重命名) | 12 (4 个体系结构 + 12 个重命名) |
PM1 (1995) | 38 (78 个体系结构 + 38 个重命名) | 24 (32 个体系结构 + 24 个重命名) |
R10000 (1996) | 32 (32 个体系结构 + 32 个重命名) | 32 (32 个体系结构 + 32 个重命名) |
单独的重命名寄存器文件 | ||
PowerPC 603 (1993) | n.a. | 4 |
PowerPC 604 (1995) | 12 | 8 |
PowerPC 620 (1996) | 8 | 8 |
在 ROB 中重命名 | ||
Am29000 sup (1995) | 10 | |
K5 (1995) | 16 | |
PentiumPro (1995) | 40 |
用于访问重命名缓冲区的基本机制
重命名缓冲区需要出于多种目的进行访问,例如获取操作数、更新操作数或释放操作数。有两种完全不同的访问机制可用,即关联机制和索引访问机制。
关联访问机制 - 具有关联访问的重命名缓冲区通常保存三种信息,例如目标寄存器编号、其值和必要的状态信息。在这种方案中,当要获取寄存器内容时,例如 r2 的内容,所有条目都会被关联地查找以找到目标寄存器字段与 r2 匹配的特定条目。
索引访问机制 - 另一种根本不同的访问机制是索引访问机制。在这种情况下,使用映射表获取重命名缓冲区文件的实际索引。映射表包含寄存器 r2 的索引“3”。因此,将从重命名缓冲区中的对应条目编号 3 访问寄存器值“20”。
广告