英特尔 x86_64 处理器不仅是流水线架构,还是超标量的?

Are Intel x86_64 processors not only pipelined architecture, but also superscalar?

英特尔 x86_64 处理器不仅是流水线架构,还是超标量的?

  1. Pipelining - 这两个序列并行执行(同一时钟中同一流水线单元的不同阶段,例如具有 4 个阶段的 ADD):

    • 阶段 1 -> 阶段 2 -> 阶段 3 -> 阶段 4 -> 无
    • 无 -> stage1 -> stage2 -> stage3 -> stage4
  2. Superscalar - 这两个序列并行执行(两条指令可以在同一时钟内启动到不同的流水线单元,例如 ADD 和 MUL) :

    • 添加(阶段 1)-> 添加(阶段 2)-> 添加(阶段 3)
    • MUL(stage1) -> MUL(stage2) -> MUL(stage3)

是的,是的。 经过一番谷歌搜索后,我发现 this

是的,当代英特尔处理器都是流水线超标量

执行一条指令需要很多纳秒。这包括从指令存储器中获取指令、解码指令、获取操作数、执行任何计算、从内存中获取数据以及写入结果。即使是基本性能,重要的是将它们分解成小步骤并允许多个指令同时 "in the pipeline"。

同样,处理器流水线会消耗大量资源(面积、功率、设计复杂度等)。将一个宽度为 1 的处理器变成一个宽度为 2 的超标量处理器相对来说非常便宜。性能提升大于成本(尽管一旦你拥有一个 4 宽处理器,你会看到减少 returns 变得更宽,并且成本呈指数增长)。

因此,您可以期望任何现代处理器(绝对最小的小处理器除外)都是超标量的。经验法则 - 如果它连接到内存层次结构,它将是超标量的。那是因为内存层次结构消耗如此多的功率和能量,你需要一个超标量处理器来保持它的繁忙。