vlambda博客
学习文章列表

计算机原理流水线两道题


题目:某计算机指令由取指和执行两部分构成,采用两路流水线分别完成取指和执行操作,其中取指需要3ms,执行需要2ms,则完成10条指令需要的时间是           ms。(江苏对口单招2018试题)


解析1:取指的流水线共需3ms*10=30ms,最后一条指令的执行需要2ms,共30+2=32ms。


解析2

计算k段流水线执行n条指令的执行时间,区分两种情况:

①如果流水线中的各段执行时间均为t,那么执行n条指令的时间就是执行第一条指令的时间kt,加上其余n-1条指令各执行一段的时间(n-1)t。


②如果流水线中的各段执行时间不等,且最长段的执行时间为tmax,那么执行n条指令的时间就是执行第一条指令的时间T,加上其余n-1条指令各执行最长段的时间(n-1)tmax 。

或者说:

完成n条指令的时间=单条指令所需时间+(n-1)×(流水线周期),

其中,流水线周期是指:指令分段执行中时间最长的一段。

例如上题,可使用公式②:n=10,最长段的执行时间为tmax=3ms,其余n-1条指令各执行最长段的时间(n-1)tmax=(10-1)*3=27ms,

第1条指令的执行时间kt=3+2=5ms,

所以完成10条指令需要的时间为5+27=32ms


下图供参考:

 计算机原理流水线两道题


扩展题 通常可以将计算机系统中执行一条指令的过程分为取指令,分析和执行指令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

下图供参考: