ABB PM902F 频繁地填充指令流水线
超标量CPU体系结构设计的最大困难在于创建一个有效的调度程序。调度程序需要能够快速确定指令是否可以并行执行,并以尽可能多的执行单元保持忙碌的方式来调度它们。这要求尽可能频繁地填充指令流水线,并且需要大量的CPU缓存。这也使得危险-避免以下技术分支预测,投机执行,寄存器重命名,无序执行和事务内存对于保持高水平的性能至关重要。
通过尝试预测条件指令将采用哪个分支(或路径),CPU可以最小化整个流水线必须等待直到条件指令完成的次数。推测性执行通常通过执行条件操作完成后可能不需要的代码部分来提供适度的性能提升。无序执行在某种程度上重新安排了指令执行的顺序,以减少由于数据相关性而导致的延迟。也是在单指令流,多数据流—当必须处理大量相同类型的数据时,现代处理器可以禁用部分流水线,以便当一条指令执行多次时,CPU可以跳过提取和解码阶段,从而在某些情况下大幅提高性能,特别是在视频创建软件和照片处理等高度单调的程序引擎中。