软件设计师中级-流水线

61 阅读1分钟

相关概念

软件设计师考试中重点考察:流水线执行时间计算,流水线吞吐率

概念:流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术,可以为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度。

image.png

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

流水线计算公式为:1条执行时间+(指令条数-1)*流水线周期

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

流水线吞吐量(Though Put rate, TP) 是指在单位时间内流水线所完成的任务数量或输出结果的数量。

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

流水线最大吞吐率

TPmax=limxn(k+n1)t=1tTP_{max}=\lim_{x\to\infty}\frac{n}{(k+n-1)t}=\frac{1}{t}

例题:

一条指令的执行过程可以分为取指、分析和执行三步,t取指=3Δtt_{取指}=3\Delta t、分析时间t分析=2Δtt_{分析}=2\Delta t、执行时间t执行=4Δtt_{执行}=4\Delta t。10条指令的流水线全部执行完的时间?吞吐率?最大吞吐率?

流水线周期:max(3Δt,2Δt,4Δt)=4Δtmax(3\Delta t, 2\Delta t, 4\Delta t) = 4\Delta t

执行时间:3Δt+2Δt+4Δt+(101)4Δt=45Δt3\Delta t + 2\Delta t + 4\Delta t + (10 - 1)*4\Delta t = 45\Delta t

吞吐率:1045Δt\frac{10}{45\Delta t}

最大吞吐率:14Δt\frac{1}{4\Delta t}