超标量和流水线架构之间有什么区别?

超标量和流水线架构之间有什么区别?

在我看来,它们完全一样,但超标量 CPU 架构的维基百科页面上写道

虽然超标量 CPU 通常也是流水线的,但流水线和超标量架构被视为不同的性能增强技术。

答案1

维基百科文章管道超标量很好地解释这些。

开始之前的定义:功能单元:执行特定指令的硬件设备

  • 例如,add/的加法器、sub的乘法器、 /mul的移位器、 的除法器等。sllslrdiv

简而言之,流水线在第一条指令完成之前就开始执行下一条指令 - 但是所有指令仍按顺序依次执行

  • 串联 = 非并联 = 非“所有指令同时启动”
  • 每个操作类型只需要一个 FU。只需要 1 个加法器、1 个乘法器和 1 个移位器等。

超标量架构可以在单个核心中并行启动两个或更多指令(使用多个重复的功能单元,每个功能单元处理特定类型的指令),并且独立的指令可能会乱序执行

  • 拥有三个加法器 FU 意味着您可以add同时执行三条不同的指令,但您无法执行任何额外的乘法、移位等,因为您缺少必要的硬件。

额外说明:如果您了解 Tomasulo 的算法,请注意 Issue 阶段与 Execution(和 WriteBack)阶段不同;上面特别提到了 Execution 阶段,而不是整个 Issue+Execution+WriteBack 阶段。

总结

  • 管道 = 单核串行(但通过的指令比每次一条指令多)
  • 超标量 = 单核并行

相关内容