gpt4 book ai didi

processor - super 缩放和流水线有什么区别?

转载 作者:行者123 更新时间:2023-12-03 01:28:38 25 4
gpt4 key购买 nike

这个问题看起来太简单了,但我是在看了几个 ppt 后才问的。

这两种方法都提高了指令吞吐量。 super 扩展几乎也总是利用管道。 super 缩放有多个执行单元,管道也是如此,还是我错了?

最佳答案

超标量设计涉及处理器能够在单个时钟内发出多个指令,并具有执行指令的冗余设施。请注意,我们谈论的是单核内的情况 - 多核处理是不同的。

流水线将一条指令划分为多个步骤,并且由于每个步骤都在处理器的不同部分中执行,因此多个指令可以在每个时钟处于不同的“阶段”。

它们几乎总是一起使用。来自维基百科的这张图片显示了正在使用的两个概念,因为这些概念最好以图形方式解释:

Superscalar/pipelining in use

这里,在五级流水线中一次执行两条指令。

<小时/>

根据您最近的编辑进一步分割:

在上面的示例中,一条指令要经过 5 个阶段才能“执行”。它们是 IF(指令获取)、ID(指令解码)、EX(执行)、MEM(更新内存)、WB(写回缓存)。

在一个非常简单的处理器设计中,每个时钟都会完成不同的阶段,因此我们可以:

  1. 如果
  2. 身份证
  3. EX
  4. MEM
  5. WB

这将在五个时钟内完成一条指令。如果我们添加一个冗余执行单元并引入超标量设计,对于两条指令 A 和 B,我们就会得到这样的结果:

  1. 如果(A)如果(B)
  2. ID(A) ID(B)
  3. EX(A) EX(B)
  4. MEM(A) MEM(B)
  5. WB(A) WB(B)

五个时钟内的两条指令——理论上最大增益为 100%。

流水线允许同时执行各个部分,因此我们最终会得到类似的结果(对于十条指令 A 到 J):

  1. 如果(A)如果(B)
  2. ID(A) ID(B) IF(C) IF(D)
  3. EX(A) EX(B) ID(C) ID(D) IF(E) IF(F)
  4. MEM(A) MEM(B) EX(C) EX(D) ID(E) ID(F) IF(G) IF(H)
  5. WB(A) WB(B) MEM(C) MEM(D) EX(E) EX(F) ID(G) ID(H) IF(I) IF(J)
  6. WB(C) WB(D) MEM(E) MEM(F) EX(G) EX(H) ID(I) ID(J)
  7. WB(E) WB(F) MEM(G) MEM(H) EX(I) EX(J)
  8. WB(G) WB(H) MEM(I) MEM(J)
  9. WB(I) WB(J)

在 9 个时钟周期内,我们执行了 10 条指令——您可以看到流水线真正插入事物发展的地方。这是对示例图形的解释,而不是它在现场的实际实现方式(这是黑魔法)。

Superscalar 的维基百科文章和 Instruction pipeline都相当不错。

关于processor - super 缩放和流水线有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1656608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com