【问题标题】:Are Intel x86_64 processors not only pipelined architecture, but also superscalar?Intel x86_64 处理器不仅是流水线架构,还是超标量?
【发布时间】:2015-03-19 19:59:33
【问题描述】:

Intel x86_64 处理器不仅是流水线架构,还是超标量?

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

    • stage1 -> stage2 -> stage3 -> stage4 -> 没有
    • 什么都没有 -> stage1 -> stage2 -> stage3 -> stage4
  2. 超标量 - 这两个序列并行执行(两条指令可以在同一时钟内启动到不同的流水线单元,例如 ADD 和 MUL):

    • 添加(stage1) -> 添加(stage2) -> 添加(stage3)
    • MUL(stage1) -> MUL(stage2) -> MUL(stage3)

【问题讨论】:

标签: x86 cpu x86-64 intel cpu-architecture


【解决方案1】:

是的,是的。 经过一番谷歌搜索,我找到了this

【讨论】:

  • 您的回答是是的,但是您链接到一个相当广泛的文档。你能详细说明一下吗?我知道这个问题不是很吸引人。
  • @user2657676 谢谢!好文章!
  • 是的,这是一篇好文章。但那太旧了! 17年前。在这个领域,17 年意味着 2 或 3 代。如果你在写这篇文章的时候生了一个孩子,那么这个孩子现在已经足够大,可以上大学学习现在 CPU 的工作原理(仅在前 20 名大学中如此)。
  • 嗯,文章最后一次更新是 2015 年 6 月。很新鲜的材料。
【解决方案2】:

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

执行一条指令需要几纳秒。这包括从指令内存中获取指令、解码指令、获取操作数、执行任何计算、从内存中获取数据以及写入结果。即使是基本性能,将这些分解成小步骤并允许多个指令同时“在流水线中”也很重要。

同样,处理器流水线会消耗大量资源(面积、功耗、设计复杂性等)。将 1 宽的处理器变成 2 宽的超标量处理器相对来说非常便宜。性能提升大于成本(尽管一旦您拥有 4 宽处理器,您会看到收益递减范围扩大,成本呈指数增长)。

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

【讨论】:

  • 谢谢! “(虽然一旦你有一个 4 宽的处理器,你会看到收益递减的范围越来越广,并且成本呈指数级增长)” - 你的意思是说指令重新排序的成本越来越高吗(需要更多时间来确定它们同时执行的指令的独立性)?或者你的意思是源代码越来越复杂(需要更复杂的源代码来独立执行指令——例如重写算法prefix_sum()/scan()/inclusive_scan()的源代码以同时并行执行)?跨度>
  • 处理器的面积和能量方面的成本。虽然是的,但设计的复杂性也是如此,这意味着实施和验证更容易出现错误的更复杂设计的成本会上升。
  • 不仅所有主要的 x86 处理器都是超标量的,它们也是乱序执行的。 (Atom 是有序的 2 宽超标量,但较新的 Silvermont 是 OOO。我忘记了 AMD 的低功耗 bobcat/jaguar。)
猜你喜欢
  • 2015-03-17
  • 2011-09-17
  • 1970-01-01
  • 2012-01-15
  • 2015-03-15
  • 2014-08-04
  • 1970-01-01
  • 2013-07-10
  • 2017-02-08
相关资源
最近更新 更多