(计算机体系结构)7.3 基于硬件的前瞻执行

7.3 基于硬件的前瞻执行

前瞻执行(Speculation) 的基本思想

  1. 对分支指令的结果进行猜测,并假设这个猜测总是对的,然后按这个猜测结果继续取、流出和执行后续的指令。
  2. 执行指令的结果不是写回到寄存器或存储器,而是写入一个称为再定序缓冲器ROB(ReOrder Buffer)中 。等到相应的指令得到“确认” (commit) (即确实是应该执行的)之后,才将结果写入寄存器或存储器
  3. ROB中的每一项由以下3个字段组成:
    • 指令类型
    指出该指令是分支指令、 store指令或寄存器操作指令。
    • 目标地址
    给出指令执行结果应写入的目标寄存器号(如果是load和ALU指令)或存储器单元的地址(如果store指令)。
    • 数据值
    用来保存指令前瞻执行的结果,直到指令得到确认。

支持前瞻执行的 Tomasulo 算法的四阶段

  1. Issue—get instruction from FP Op Queue
    • 如果RS和ROB有空闲单元就发射指令。如果寄存器或ROB中源操作数可用,就将其发送到RS,目的地址的ROB编号也发送给RS
  2. Execution—operate on operands (EX)
    • 当操作数就绪后,开始执行。如果没有就绪,监测CDB, 检查RAW相关
  3. Write result—finish execution (WR)
    • 将运算结果通过CDB传送给所有等待结果的FU以及ROB单元,标识RS可用
  4. Commit—update register with reorder result
    • 按ROB表中顺序,如果结果已有,就更新寄存器(或存储器),并将该指令从ROB表中删除
    • 预测失败或有中断时, 清空ROB,从新的指令地址开始执行

7.4 多指令流出技术

发布了96 篇原创文章 · 获赞 56 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/JAck_chen0309/article/details/102968591