某指令流水線由5段組成,各段所需要的時間以下圖所示。
――> Δt ――>3Δt――>Δt――> 2Δt――>Δ t――>
連續輸入10條指令時的吞吐率為( )。
A.10/70Δt
B.10/49Δt
C.10/35Δt
D.10/30Δt
分析:
要解此題,必須首先了解吞吐率的概念。教程上的解釋是:吞吐率是指單位時間里流水線處理機流出的結果數。對指令而言,就是單位時間里履行的指令數。如果流水線的子進程所用的時間不1樣,則吞吐率p應為最長子進程的倒數,即:
p=1/max{Δt1,Δt2,……,Δtm}
本題說問的是連續輸入10條指令時的吞吐率為多少?用以下圖示解答此問題。
第1條指令:-( ---)-(--)-
第2條指令: -( ---)-(--)-
第3條指令: -( ---)-(--)-
由于是流水線,所以時間為3Δt的指令不能堆疊,所以每隔3Δt時間開始1條指令,當第1條指令花費8Δt時間后,每隔3Δt完成1條指令,則第10條指令完成的時間是:8Δt+3Δt×9=35Δt。
流水線時間計算公式:1條指令所需時間+(指令條數⑴)×時間最長的指令的1段。即8Δt+3Δt×9=35Δt。
吞吐率:指令條數除以流水線時間。即35Δt。