跳转至

第6课

约 354 个字 预计阅读时间 1 分钟

Hardware-Based Speculation

1. 主要结构

  • 之前是直接写到结果寄存器(FP Regs),而现在是先到ROB中;image-20230317103634951

2. 指令阶段

  • Issure:从FP Op Queue中获取指令;
  • Execution:对操作数进行操作(EX);
  • Write result:结束执行(WB),把所有的结果写到ROB去;
  • Commit:更新结果寄存器;

3. 一个例子

image-20230317104041309

  • 保留栈区状态表image-20230317104240809
    • 主要是添加了Dest,用于记录写入的ROB的编号;
  • ROB状态表image-20230317104750098
  • 结果寄存器image-20230317104815450
    • 多了一行ROB和寄存器的对应表,按照编号从小到大提交;

4. 课堂作业

  • 前面的所有阶段都和托马斯罗算法一模一样,只需要再托马斯罗算法后面再添加一列;
  • image-20230317105257902

  • Cycle 1:第一条指令流出image-20230317105328456

  • Cycle 2:第一条指令计算地址,第二条指令流出image-20230317105642042

  • Cycle 3:第一条指令开始执行,第二条指令计算地址,第三条指令流出image-20230317105757552

  • Cycle 4:第三条和第四条指令都要等F2,不能执行image-20230317105915810

  • Cycle 5:第三条和第四条指令都要等F2,不能执行image-20230317110153088

  • Cycle 6:第三条和第四条指令开始执行image-20230317110246870

  • Cycle 8:FSUB写结果image-20230317110503328

  • Cycle 11:image-20230317110722109

  • Cycle 16:image-20230317110802293

  • Cycle 17:第三条指令commit,FDIV等到了结果进入了EX段image-20230317110824514

  • Cycle 18:image-20230317110934648

  • Cycle 56:image-20230317111000028

  • Cycle 57:image-20230317111147090

  • Cycle 58:image-20230317111248340

  • Cycle 59:image-20230317111226870

  • image-20230317111308583

5. 总结

  • 执行乱序,提交顺序,可以保证程序能够顺序完成,但是硬件比较复杂;

本文总阅读量