(计算机体系结构)7.3 基于硬件的前瞻执行
其他
2020-02-20 15:25:02
阅读次数: 0
7.3 基于硬件的前瞻执行
前瞻执行(Speculation) 的基本思想
- 对分支指令的结果进行猜测,并假设这个猜测总是对的,然后按这个猜测结果继续取、流出和执行后续的指令。
- 执行指令的结果不是写回到寄存器或存储器,而是写入一个称为再定序缓冲器ROB(ReOrder Buffer)中 。等到相应的指令得到“确认” (commit) (即确实是应该执行的)之后,才将结果写入寄存器或存储器
- ROB中的每一项由以下3个字段组成:
• 指令类型
指出该指令是分支指令、 store指令或寄存器操作指令。
• 目标地址
给出指令执行结果应写入的目标寄存器号(如果是load和ALU指令)或存储器单元的地址(如果store指令)。
• 数据值
用来保存指令前瞻执行的结果,直到指令得到确认。
支持前瞻执行的 Tomasulo 算法的四阶段
- Issue—get instruction from FP Op Queue
• 如果RS和ROB有空闲单元就发射指令。如果寄存器或ROB中源操作数可用,就将其发送到RS,目的地址的ROB编号也发送给RS
- Execution—operate on operands (EX)
• 当操作数就绪后,开始执行。如果没有就绪,监测CDB, 检查RAW相关
- Write result—finish execution (WR)
• 将运算结果通过CDB传送给所有等待结果的FU以及ROB单元,标识RS可用
- Commit—update register with reorder result
• 按ROB表中顺序,如果结果已有,就更新寄存器(或存储器),并将该指令从ROB表中删除
• 预测失败或有中断时, 清空ROB,从新的指令地址开始执行
7.4 多指令流出技术
发布了96 篇原创文章 ·
获赞 56 ·
访问量 3万+
转载自blog.csdn.net/JAck_chen0309/article/details/102968591