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