1

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

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

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

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

4

2 回答 2

1

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

于 2014-02-02T18:46:58.010 回答
0

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

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

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

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

于 2014-02-02T19:25:00.890 回答