vault backup: 2026-07-04 12:43:14
This commit is contained in:
@@ -190,15 +190,21 @@ graph TB
|
||||
**吞吐率**(单位时间完成的指令数):
|
||||
$$TP = \frac{n}{k + (n-1)}$$
|
||||
|
||||
其中 $n$ 为指令条数,$k$ 为流水线段数,每段假设时间相同为 $\Delta t$。当各段时间不同时,吞吐率受限于最慢的段:
|
||||
其中 $n$ 为指令条数,$k$ 为流水线段数,每段假设时间相同为 $\Delta t$。分母 $k+(n-1)$ 是完成n条指令所需的时钟周期数(第一条需要k个周期建立流水线,之后每条只需1个周期)。当各段时间不同时,吞吐率受限于最慢的段:
|
||||
$$TP_{max} = \frac{1}{\max(\Delta t_i)}$$
|
||||
|
||||
**加速比**(非流水线时间 / 流水线时间):
|
||||
其中 $\max(\Delta t_i)$ 是所有流水线段中最长的执行时间,它决定了流水线的时钟周期下限。
|
||||
|
||||
**加速比**(不使用流水线的时间 / 使用流水线的时间):
|
||||
$$S = \frac{nk}{k + (n-1)}$$
|
||||
|
||||
其中分子 $nk$ 是不用流水线时n条指令各需k段串行执行的总时间,分母是流水线方式的总时间。$S$ 越大说明流水线加速效果越好,理想极限为 $k$(段数)。
|
||||
|
||||
**效率**(流水线各段的利用率):
|
||||
$$E = \frac{S}{k} = \frac{n}{k + (n-1)}$$
|
||||
|
||||
其中 $S$ 为加速比,$k$ 为段数。效率=加速比/段数,表示流水线中每个段的平均利用率。$E$ 越接近1越好。
|
||||
|
||||
流水线性能像工厂的生产效率:吞吐率是单位时间完成的任务数,加速比是流水线比非流水线快多少倍,效率是流水线的利用率。
|
||||
|
||||
假设流水线有4个阶段,执行100条指令:吞吐率100/(4+99)=0.97条/周期,加速比100×4/(4+99)=3.88,效率3.88/4=97%。
|
||||
|
||||
Reference in New Issue
Block a user