软考备考-流水线吞吐率的计算

首先,来看题目中的流水线图
软考备考-流水线吞吐率的计算
然后,先画出执行一条指令时的时序图:
软考备考-流水线吞吐率的计算
纵轴对应题目中的四个段,为四个处理子过程的专用模块,横轴为时间轴。

然后加上第二条指令,看一下时序图。红色边框的为第二条指令的部分
软考备考-流水线吞吐率的计算
每个模块必须执行完当前指令的对应子过程后再执行下一指令的对应子过程,如图中的第三横行。
并且单条指令的四个过程也必须遵循先后顺序,比如第四横行。

因此,如图所示,第一,二条指令执行完毕的时间差为3t,即时间最长的子过程的时长。

以此类推,可以得出,总执行时间=单条指令执行时间+(指令条数-1)*最长的子过程时长
吞吐量可以理解为单位时间内执行的指令条数。

本题中,总时长为 7+(8-1)x 3 = 28t 吞吐率为 8/28t。