计算机原理流水线两道题
题目:某计算机指令由取指和执行两部分构成,采用两路流水线分别完成取指和执行操作,其中取指需要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