“动态流水线”是通过重新排列指令执行顺序来提高CPU性能的一种优化技术。
传统流水线将指令执行过程划分为固定的阶段,每个阶段处理特定的任务。乱序执行则是打破了指令原本的顺序执行模式。在乱序执行机制下,只要当前指令所依赖的数据准备就绪,CPU就可以立即执行该指令,而不必等待前面未准备好的指令,提高了流水线的效率。
什么是乱序执行乱序执行并不是真的“乱序”,其实是“有序取指、重排列执行顺序、有序结束”,指令的结束顺序其实是符合软件中的原始顺序的。
什么是“发射”发射其实是动态流水线专有的术语。动态流水线的电路结构中,新增了“保留站”(ReservationStation),用来保存一组等待执行的指令,有的也称为“发射队列”(IssueQueue)。
将发射队列中就绪的指令送入功能单元进行执行的操作叫做“发射”。
什么是多发射多发射(MultipleIssue)是指流水线的每个阶段都能处理多于一条的指令。
在乱序执行的CPU中,每一个时钟节拍处理的指令数量超过了一条。在取指阶段,一次可以从内存中读取多条指令;在译码阶段,可以同时对多条指令分析相关性,并送入不同的发射队列;在发射阶段,每一个时钟节拍都可以从发射队列中分别发出一条指令;在执行阶段,多个计算单元独立工作,并行地进行运行。
多发射并不是说CPU有多条流水线,而是在一条流水线上增加了处理指令的宽度,在一个时钟节拍中可以同时处理多份指令。





