【答案解析】解析:有关流水线执行时间的问题,请读者参考第2题的分析。 在流水线结构的计算机中,影响流水线效率的因素主要有以下几个方面。 1.条件转移指令(转移相关性) 在存在转移指令的情况下,下一条需要执行的指令未必是程序计数器所指定的指令。只有在这条转移指令执行完成后,才能判断下一条指令是什么。 如果在遇到转移指令时,关闭流水线的进入端口,防止错误发生,那么这种方法无疑会降低流水线的效率,而且程序中的条件转移是大量存在的,这势必使得流水线在很多时间内闲置,影响计算机的性能。 为了解决这个问题,有的计算机采用猜测法,当发现条件转移指令时则系统猜测可能会跳转到的语句,如果猜测正确,则流水线正常运行,如果猜测错误,则需要清空当前流水线的内容。如图1-6(a)所示。 还有一种需要编译系统的支持的方法,如图1-6(b)所示。方法是这样的:将必须执行的D指令提前执行,在D指令执行之后,条件转移指令的结果出来后,再判断是B或者C进入流水线。同样也可以把A指令前的指令滞后到A指令执行后执行,这样能保持流水线闲置的时间尽可能少。但是必须在D和B、C指令不存在前后依存关系的情况下采用。统计的结果还是不错的,50%的条件转移指令能够进行这样的优化。
.jpg)