假设函数 F 和 G 可以分别由功能单元 U F和 U G在 5 纳秒和 3 纳秒内计算出来。给定两个 U F实例和两个 U G实例,需要对 1 <= i <= 10 执行计算 F(G(Xi))。忽略所有其他延迟,完成此计算所需的最短时间为________________ 纳秒 [注意,这原本是一道填空题] (A) 28
(乙) 20
(三) 18
(四) 30答案:(一)
解释:
背景:说明:
流水线是一种实现技术,其中多条指令在执行中重叠。
这些阶段一个接一个地连接起来形成一个管道——指令从一端输入,进度
通过阶段,并在另一端退出。
流水线不会减少单个指令执行的时间。反而增加了
指令吞吐量。指令流水线的吞吐量由指令退出流水线的频率决定。
在流水线中使用相同的概念。这里的瓶颈是 UF,因为它需要 5 ns 而 UG 需要 3ns
只要。我们必须进行 10 次这样的计算,我们分别有 2 个 UF 和 UG 实例。
由于有两个功能单元,每个单元有 5 个要计算的单元。认为
计算从时间 0 开始。这意味着 G 从 0 开始,F 从第三秒开始,因为 G 在第三秒完成计算第一个元素。
因此,UF 可以在 5*10/2=25 纳秒内完成。对于开始,UF 需要等待 UG 输出 3 ns,其余的都是流水线的,因此不再等待。所以,答案是 3+25=28
此解决方案由Nitika Bansal 提供
另一种解决方案:
由于有两个功能单元,每个单元有 5 个要计算的单元。假设计算从时间 0 开始。
这意味着 G 从 0 开始,F 从第三秒开始,因为 G 在第三秒完成计算第一个元素。
F 结束计算的时间 = 3 + 5*5 = 28这个问题的测验