姓名:安培赟 学号:22021211917
将指令发射给运算单元,由运算单元进行执行,然后写回的彼此相对顺序,也是执行阶段需要解决的重要问题。
派遣(Dispatch):
可以是按顺序派遣,也可以是乱序派遣 。
发射(Issue):
可以是按顺序发射,也可以是乱序发射。
1、在简单的处理器中,二者往往是说的同一个概念,都是表示指令经过译码之后,被派发到不同的运算单元执行的过程,因此派遣或者发射一般发生在流水线的执行阶段 。
2、在一些比较高端的超标量处理器核中,流水线级数甚多,派遣和发射便可能有了不同的含义,
派遣 往往表示指令经过译码之后被派发到不同的运算单元的等待队列中的过程。
发射 往往表示指令从运算单元的等待队列中(解决了数据依赖性之后)发射到运算单元开始执行的过程。
处理器中发射、派遣、执行和写回的顺序是处理器微架构设计中非常重要的一环,根据顺序不同进行分类:
1、顺序发射,顺序执行,顺序写回。
出现在使用最简单流水线的处理器核中, 譬如经典的五级流水线,指令按顺序发射、在运算单元中执行和写回Regfile 。
硬件实现最简单,面积最小。
2、顺序发射,乱序执行,顺序写回。
不同的指令类型往往需要不同的运算单元执行周期。
如果一味地进行顺序执行,则性能太差。
乱序执行便是指在指令的执行阶段可以由不同的运算单元同时执行不同的指令。
在最终的写回阶段仍然要严格地按顺序写回,因此很多时候运算单元要等待其他的指令先写回而将其运算单元本身的流水线停滞。
3、顺序发射,乱序执行,乱序写回。
在上述乱序执行的基础上,如果能够让运算单元也乱序地写回, 则可以进一步提高性能。
乱序写回实现方式:
a、重排序缓存(Re-Order Buffer, ROB)
运算单元一旦执行完毕后,结果就将写回ROB,而非直接写回 Regfile,最后由 ROB 按顺序写回 Regfile 。
缺点:ROB往往因面积过大、数据被腾挪写回两次增加动态功耗的问题。
b、统一的物理寄存器组(Physical Register File)
由一个统一 物理寄存器组 动态地管理 逻辑寄存器组 的映射关系,运算单元一旦执行完毕后,就将结果乱序地写回物理寄存器组中。
缺点:控制复杂。
4、顺序派遣,乱序发射,乱序执行,乱序写回。
属于高性能的超标量处理器。指令经过译码后被顺序地派遣到不同运算单元的等待队列中,在等待队列中可以有多条指令等待,待哪一条指令先解决了数据依赖性后便可被先发射到运算单元中开始执行,因此其发射是乱序的。