- 指令流水线:将指令的执行过程分为多个阶段,并允许不同的指令在不同的阶段并行执行,从而提高 CPU 的吞吐量
- 超流水线:在传统的流水线的基础上,进一步增加流水线的深度,使得每个阶段的执行周期变得更短,允许更多的指令在同一个时间内被处理,进一步提高处理器性能
- 动态多发射:根据实际指令的可用情况动态决定发射指令
- 静态多发射:在编译时就确定每个时钟周期内发射的指令数量,依赖于编译器等软件根据依赖关系和控制流等安排,并固定下来在执行的时候不再调整
- 流水线深度:指流水线中所包含的阶段的数量,流水线的深度越大,单个指令的运行时间越短,但可能增加流水线的复杂性和控制的开销
- 流水线冒险:
- 结构冒险:由于资源不足,导致两条指令同时访问同一个硬件资源导致的冲突。增加硬件可以解决
- 数据冒险:指令之间由于数据依赖关系而导致的冲突
- 控制冒险:由于分支指令导致提前取出的指令不是实际运行的指令
- 乱序执行:处理器在执行指令的时候,不按照程序的原始顺序进行,而是根据指令的可用性和资源情况动态的选择指令来执行
- 按序发射:指令按照程序的逻辑进行发射
- 无序发射:指令可以不按照顺序发射