计算k段流水线执行n条指令的执行时间,有必要区分两种情况:
-
如果流水线中的各段执行时间均为t,那么执行n条指令的时间就是执行第一条指令的时间kt,加上其余n-1条指令各执行一段的时间(n-1)t。
-
如果流水线中的各段执行时间不等,且最长段的执行时间为t m a x t_{max}tmax,那么执行n条指令的时间就是执行第一条指令的时间T,加上其余n-1条指令各执行最长段的时间(n-1) t m a x t_{max}tmax。
题目:
通常可以将计算机系统中执行一条指令的过程分为取指令,分析和执行指令3步。若取指令时间为4△t,分析时间为2△t。执行时间为3△t,按顺序方式从头到尾执行完600条指令所需时间为( )△t;
若按照执行第i条,分析第i+1条,读取第i+2条重叠的流水线方式执行指令,则从头到尾执行完600条指令所需时间为( )△t。
解答:
-
按顺序方式执行时间为(4+2+3)△t × 600=5400△t
-
流水线方式:单条指令所需时间+(n-1)×(流水线周期),其中,流水线周期是指:指令分段执行中时间最长的一段。该题中时间最长的一段为4△t,所以流水线的周期为:4△t;
所以该题按照流水线方式执行的时间为:(4+2+3)△t+(600-1)4△t=2405△t