一条指令的执行过程可以分解为取指、分析和执行三步,它们的执行时间分布为3△t、2△t、4△t,若按串行方式执行,则10条指令全部执行完需要()△t;若按流水线的方式执行,流水线周期为()△t,则10条指令全部执行完需要()△t,流水线的吞吐率为(),加速比为()流水线的效率为()。
题目分析:
串行执行10条指令(串行执行的过程如上图所示),那么10条指令需要 10 * (3△t + 2△t + 4△t) = 90△t
流水线的周期为指令执行的各个子过程时间最长的一段, 三段的执行时间分布为 3△t、2△t、4△t,流水线的周期为4△t
使用流水线技术执行10条指令的时间
理论公式(根据上图理解公式):
(3△t + 2△t + 4△t) + (10 - 1)* 4△t = 45△t
实践公式(根据上图理解公式):
实践公式中,流水线的建立时间是 指令执行的段数 * 指令的周期,
3 * 4△t + (10 - 1)* 4△t = 48△t
理论公式存在的问题: 实际执行的时候会增加复杂度,CPU设计的时候,如果需要单独处理第一条指令的执行时间,并进行累加,之后再计算剩下指令的执行时间,增加了实现的复杂度。