📜  门| GATE-CS-2009 |问题 28

📅  最后修改于: 2021-09-26 03:05:02             🧑  作者: Mango

考虑一个 4 级流水线处理器。 S1、S2、S3、S4阶段4条指令I1、I2、I3、I4所需的周期数如下图所示:

S1
S2
S3
S4
I1
2
1
1
1
I2
1
3
2
2
I3
2
1
1
3
I4
1
2
2
2

执行以下循环所需的周期数是多少?
对于 (i=1 到 2) {I1; I2; I3; I4;}
(一) 16
(乙) 23
(三) 28
(四) 30答案:(乙)
说明:这道题不同于流水线上的其他题,每条指令在每一阶段所占用的周期数不同,即这里的一条指令在不同阶段所占用的周期数可能不同,而且两条指令所占用的周期数也可能不同。也在同一阶段循环。

因此,在这里我们必须考虑两件事:1) 资格 2) 可用性
即指令 i 应该有资格被给予阶段 j,并且阶段 j 应该可用(免费)来处理/处理指令 i。

现在,让我们看看如何实现上述两件事。

当且仅当指令 i 已完成阶段 j-1 时,指令 i 才有资格进入阶段 j。

类似地,当且仅当阶段 j 已完成指令 i-1 时,阶段 j 将可用于指令 i。

因此,通过遵循并满足以上两个标准,我们必须确定这些指令在 2 次迭代的循环中占用的总周期数。

注意:指令 i 将有资格在迭代 2 中处理,当且仅当它在迭代 1 中完成了处理。
第一次迭代

第二次迭代
这个问题的测验