打印

[求助] 请教一个关于流水线的问题

请教一个关于流水线的问题

现采用四级流水线结构分别完成一条指令的取指、指令译码和取数、运算以及送回运算结果四个基本操作,每步操作时间依次为60ns,100ns,50ns和70ns。该流水线的操作周期应为_A_ns。若有一小段程序需要用20条基本指令完成(这些指令完全适合于流水线上执行),则得到第一条指令结果需_B_ns,完成该段程序需_C_ns。
--------------------------------------------------------------
流水线的操作周期是60ns,100ns,50ns和70ns中最大值,即100ns;
如果按照100ns的周期,则四个基本操作时间都为100ns,则得到第一条指令结果要100*4=400ns;
完成程序过程:
100 100 100 100
100 100 100 100
100 100 100 100
......
即,100*4+19*100=2300ns,即第一条指令完毕后,每100ns就完成一条指令

--------------------------------------------------------------

这个问题有些想不通。因为第一条指令执行的时候,并不会受到后面操作的影响,所以得到第一条指令的时间应该是60+100+50+70=280NS才对吧?我看的一本参考书<网路工程师考试冲刺指南>(电子工业出版社)说的是第一条指令的时间应该按照实际时间计算的。但是另外的资料说是应该按照上面的答案计算。
不得以请教一个各位朋友,这个应该如何处理呢?

TOP

由流水线技术的基本特征可知,其平均时间取决于流水线最慢的操作,所以该流水线的操作周期为100ns。 由题中条件可知,完成1条指令需要4个基本操作,每个操作需要1个周期,执行第1条指令时,还不能充分发挥流水线的技术优势,需要执行4个周期,才能得到第1条指令的运行结果,共需要400ns。

TOP

这种类型的题目必须按照公式解题

流水线的操作周期=时间最长的操作*操作个数
欢迎大家到认证区参与考试题目知识探讨,提问有奖励,解答更有奖励。
友情点击:最近在忙的事情!

TOP

原来是这样的,嗯。

TOP

谢谢,一直都一知半解,现在终于明白了!

TOP