【问题标题】:Visualizing an ALU pipeline when operations have different throughput当操作具有不同吞吐量时可视化 ALU 管道
【发布时间】:2014-02-26 04:24:29
【问题描述】:

当操作具有不同的吞吐量时,如何可视化 ALU 管道?

可以将所有操作都具有相同吞吐量的 ALU 管道可视化为具有传送带装配线的工厂。管道的深度和延迟变成了传送带上的站数。

但 ALU 管道对于不同类型的操作通常具有不同的吞吐量。例如,MUL 的吞吐量可能是 ADD 的一半。因此,如果在当前时钟周期将 MUL 添加到流水线中,则在下一个周期添加 ADD 可能是可以的,但不能添加新的 MUL。

这有点像说,如果您有一家生产两种类型汽车的工厂,您可能无法让两辆 A 型汽车在传送带上相互跟随。不过,A 型车后跟 B 型车可能没问题。

【问题讨论】:

    标签: gpu cpu pipeline alu


    【解决方案1】:

    这就像让同一个团队在两个不同连续的站点工作。如果你有两个连续的 MUL,当第二个 MUL 到达时,团队仍然从第一个(在第二个站点工作)开始忙碌。

    【讨论】:

      【解决方案2】:

      想想收费公路收费站。您有多个车道,其中一些专用于卡车,一些专用于公共汽车,还有一些(我猜是大多数)专用于私家车。每个人缴费的时间大概相差很大,每种类型的来车数量也不同,那么问题来了——每种类型你放了多少个摊位?

      当然面积是有限的,让我们假设设计师计划减少平均等待时间。您仍然可以有多辆相同类型的车辆进站,这最终会导致一些车站填满并形成队列。

      类似地,在超标量 CPU 中,一些指令可以在不同的 ALU 上并行执行,但在许多情况下,给定的一组 ALU 可能会过载,并且操作必须在某个队列中等待。

      哦,为了完成这个比喻,假设人们在鸣喇叭时经过你,可以模仿乱序执行。并没有真正添加到我们的描述中,但它非常适合:)

      【讨论】:

      • 谢谢你,虽然超标量!=流水线。
      • @RogerDahl,当然,表示超标量的多条车道并不是真正需要的,您可以让一辆车进入并选择正确的车道。收费亭代表管道(可以说有些需要多次操作)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多