操作数可用性检查方案是什么?


操作数的可用性需要在两种情况下进行检查,例如当操作数从寄存器文件中获取时,需要一种方案来检查寄存器文件中是否包含请求的内容。在指令调度期间,也需要类似的方案来检查搁置缓冲区中保存的指令的所有操作数是否可用。

术语 **记分板** 是在与 CDC 6600(1964 年)相关的上下文中引入的,用于表示该处理器中用于控制并行操作的复杂电路。图中显示了记分板的原理。

记分板是一个状态寄存器,由一位条目组成。每个条目都可以被认为是相应寄存器的一位扩展。记分板位指示关联寄存器中的数据是否有效,即是否可用。通常,'1' 表示可用数据。当发出指令时,相应目标寄存器的记分板位将重置为 0。这指示所有随后请求该寄存器内容的指令,其值尚不可用。

检查操作数可用性的两种基本方案如下:

  • 在第一种方案中,保留站不保存任何明确的状态信息来指示源操作数是否可用。因此,通过 **直接检查记分板位** 来检查源操作数的可用性。当在指令调度期间获取操作数时,通常会使用此方案。

在此方案中,解码后的指令被写入关联的保留站,该保留站保存已发出指令的操作码 (OC)、源寄存器编号和目标寄存器编号。

  • 在第二种方案中,称为 **显式状态位的检查**,源操作数的可用性由保留站中的状态位(有效位)明确表示。然后测试状态位以查看操作数是否可用。

如果在指令发出期间获取操作数,则通常会采用此方案。在这种情况下,保留站影响操作码 (OC)、获取的源操作数、关联的有效位和重命名目标寄存器编号。但是,如果在发出期间请求的操作数尚不可用,则寄存器文件会提供一个标识符,而不是缺少操作数的值。

寄存器内容的可用性由记分板管理。在指令发出期间,已发出指令的目标寄存器的记分板位将重置为 '0'。当 EU 生成结果时,目标寄存器将更新,并且相应的记分板位将设置为 '1'。这样,随后发出的指令就可以访问生成的结果值。

更新于: 2021 年 7 月 22 日

68 次查看

启动您的 职业生涯

通过完成课程获得认证

开始
广告