假设一个四段流水线,取指段的时间为t,译码段的时间为t,取数段的时间为3t,执行段的时间为t。流水线示意图如下:
为了便于计算假设取指和译码段总是连续执行的。流水线执行n条指令时其执行过程的时空图如下图所示:
从图中不难看出,第一条指令的执行时间是6t;第二条指令在执行时停顿了两个周期,第二条指令的完成时间比第一条指令的完成时间晚3t;第三条、第四条......第n条与此相同。
因此,该流水线执行n条指令的时间就是:6t+(n-1)3t
流水线的实际吞吐率就是:n/(6t+(n-1)3t)
流水线时间计算公式:一条指令所需时间+(指令条数-1)*时间最长的指令的一段
吞吐率公式:指令条数 / 流水线时间
网友评论