文章82
标签28
分类8

流水线

流水线

流水线是指在程序执行时,多条指令重叠进行操作的一种准并行处理实现技术。

各种部件处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均速度。

流水线计算

  • 流水线周期为执行时间最长的一段

  • 流水线计算公式为:

一条指令执行时间 + (指令条数 - 1) * 流水线周期

1.理论公式: (t1 + t2 + ... + tk) + (n-1) * △t
2.实践公式: k * △t + (n-1) * △t

比如下题:

问题:

一条指令的执行过程可以分解为取值,分析和执行三步,在取值时间为 3△t,分析时间为2△t,执行时间为4△t。

1.若按串行方式执行,则 10 条指令全部执行完需要多少△t?

2.若按流水线的方式执行,流水线周期为多少△t?10条指令全部执行完需要多少△t?

解题:

1.串行方式,10 条指令执行完成需要多少△t?

(3△t + 2△t + 4△t) * 10 = 90△t

所以串行方式需要90△t。


2.若按流水线的方式执行,流水线周期为多少△t?

流水线周期为执行时间最长的一段,所以是 4△t。


10条指令全部执行完需要多少△t?

(3△t + 2△t + 4△t) + (10 - 1) * 4△t = 9△t + 36△t = 45△t

所以完全执行完需要45△t。

超标量流水线

流水线吞吐率计算

流水线的吞吐率是指单位时间内流水线所完成的任务数量或输出的结果数量。

计算流水线吞吐率的最基本的公式如下:

TP = \frac{指令条数}{流水线执行时间}

流水线最大吞吐率

TP_{max} = \lim_{m=0}\frac{n}{k+n-1△t} = \frac{1}{△t}