gpt4 book ai didi

cpu - 超标量和乱序 (OoO) 执行之间的一般区别是什么?

转载 作者:行者123 更新时间:2023-12-02 01:57:25 27 4
gpt4 key购买 nike

我一直在阅读一些有关 superscalar 和 OoO 的 Material ,但我很困惑。
我认为他们的架构图看起来非常相似。

最佳答案

超标量微处理器可以同时执行两条或更多指令。通常它们至少有 2 个 ALU(尽管超标量处理器可能有 1 个 ALU 和一些其他执行单元,如移位器或跳转单元。)

更准确地说,超标量处理器可以在同一周期中开始执行两个或多个指令。 流水线处理器一次可以执行多条指令,但非超标量流水线处理器在任何给定周期内只能启动一条指令。流水线执行单元需要多个周期才能端到端执行。换句话说:超标量处理器通常能够执行两条非流水线指令,每个周期具有单周期延迟,而非超标量流水线处理器不能同时在 ALU 中执行两条单周期指令。

乱序处理器可以不按原始顺序执行指令。例如,在下面的情况下,MULTIPLY 需要 5 个周期,指令 3 可能会在指令 2 之前执行 - 因为指令 2 是等待指令 1 的 MULTIPLY 的 5 个周期结果:

1: MULTIPLY reg1 := reg2 * reg3
2: ADD reg4 := reg1 + 5
3: ADD reg6 := reg2 + 1

大多数乱序处理器也是超标量的。然而,您可以想象构建一个非超标量的乱序处理器,每个周期只能在流水线 ALU 上启动一个操作。 (我已经提出这样的操作,当英特尔采用时,作为低功耗芯片。哎呀,你可以构建只有半标量的乱序处理器,例如只有 16 位宽 ALU,需要 2 个周期进行 32 位加法等。但这是拉伸(stretch)。)

然而,许多超标量处理器并不是乱序的。在上面的示例中,中序超标量将首先执行指令 1。它不会启动指令 3,而是会等到指令 2 启动,此时它将同时启动指令 2 和指令 3。

有时您必须考虑不太可能的极限情况,例如 1 宽或半宽 OOO 机器,才能理解这些概念。

关于cpu - 超标量和乱序 (OoO) 执行之间的一般区别是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10074831/

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