计算机组成与设计 ---指令发射 --- 乱序发射

1,603 阅读2分钟

多发射和乱序执行通过循环展开 ----更多可供调度的指令

动态调度流水线:为避免流水线停顿,对指令执行顺序进行重排的硬件技术。

乱序执行: 可以把动态调度流水线看作程序的数据流结构分析。处理器在不违背原有数据流顺序的前提下以某种顺序执行指令,称为乱序执行。这样执行的指令顺序和取指顺序是不同的。

超标量: 高级流水线技术,处理器能够在动态执行时选择指令,并在一个周期内执行一条以上的指令。

可变的指令长度和不确定的执行时间会造成流水线各级不均衡

流水线技术可以提高单周期数据通路的时钟频率。

多发射技术聚焦于降低CPI:每条指令执行周期数。

通过预测来调度和推测执行指令,是降低冒险造成的性能影响的主要技术。

指令发射

根据每个时钟周期能够发射的指令数,处理器可以分为单发射处理器和多发射处理器。 单发射处理器是指每个时钟周期只能发射一条指令。

顺序派遣 乱序发射 乱序执行 乱序写回

超标量处理器,指令经过译码后被顺序派遣到不同的运算单元的等待队列中,在等待队列中可以有多条指令,先把解除了数据依赖性的指令发射到运算单元中开始执行,因此发射是乱序的。

乱序写回会将运算单元执行结果,写到ROB重排序缓冲区。最后由ROB按顺序写回通用寄存器组。

重排序缓冲区

动态调度处理器用来保存指令执行结果的缓冲区。 一旦指令确认被提交,将会把缓冲区的结果写入内存或者寄存器中。

顺序发射 --- 乱序执行 ---顺序写回

多发射处理器 -- 动态调度 ---保留站(发射队列)---寄存器重命名 (解决反相关)---重排序缓冲(暂存指令执行结果)

乱序发射----超标量处理器中指令顺序派遣到等待队列,根据指令是否解决数据依赖性---乱序发射指令到运算单元---乱序执行---乱序写回到ROB重排序缓冲区 ----顺序写回通用寄存器组