流水线

指令执行过程:

取指→分析→执行

“1”:第一条指令

“2”:第二条指令

“3”:第三条指令

1S 2S 3S 4S 5S 6S 7S 8S 9S
取指 1 2 3
分析 1 2 3
执行 1 2 3
一条指令需要经过三个步骤才能执行完成,如果每执行一个步骤就需要1S,一条指令就需要3S,执行三条指令就需要9S才能完成执行

第一秒的时候第一条指令取指,第二秒的时候第一条指令分析,第三秒的时候第一条指令执行,第四秒的时候第二条指令取指,第五秒的时候第二条指令分析,第六秒的时候第二条指令执行,第七秒的时候第三条指令取指,第八秒的时候第三条指令分析,第九秒的时候第三条指令执行
1S 2S 3S 4S 5S 6S 7S 8S 9S
取指 1 2 3 . . . n
分析 1 2 3 . . . n
执行 1 2 3 . . . n
使用流水线后,如果一个步骤需要一秒,那么三条指令只需要五秒就可以执行完成

第一秒的时候第一条指令取指,第二秒的时候第一条指令分析,同时第二条指令取指,第三秒的时候第一条指令执行,同时第二条指令分析,第三条指令取指,第四秒的时候第二条指令执行,第三条指令分析,第五秒的时候第三条指令执行。

流水线执行时间计算公式

(t₁+t₂+t₃)+(n-1)t₁

t₁是流水线周期,它代表执行时间最长的一段

列题

例如:若指令流水线把一条指令分为取指,分析,执行三部分,且三部分的时间分别是取指2ns,分析2ns,执行1ns,那么,流水线周期是?100条指令全部执行需要多长时间。

公式:(t₁+t₂+t₃)+(n-1)t₁

(2+2+1)+(100-1)×2

=5+198

=203(ns)

答,流水线周期为2ns,一百条指令全部执行完需要203ns。

流水线指标

①吞吐率:TP=n/TK

②加速比:S=TS/TK

③效率

理论最大吞吐率:TP = 周期的倒数

n为指令条数,TK为流水线时间

加速比是使用流水线和不适用流水线的比

效率在不同的时间段内效率不同,例如下表,时间为第一秒的时候效率为三分之一,时间在第二秒的时候效率为三分之二,时间在第三秒的时候效率为百分之百。
1S 2S 3S 4S 5S 6S 7S 8S 9S
取指 1 2 3 . . . n
分析 1 2 3 . . . n
执行 1 2 3 . . . n
效率 三分之一 三分之二 百分之白 百分之百 百分之百 百分之百 百分之百 三分之二 三分之一
二维码

发表评论