指令流水線的畫法

2021-09-29 22:20:13 字數 1208 閱讀 1507

指令流水線的畫法:

解題想法:

流水線有五段,分別為s1,s2,s3,s4,s5. 其中s4的執行時間為2△t,其他都是△t,乘法使用的是s1,s2,s5,加法使用的是s1,s3,s4,s5。

利用吞吐率加速比和效率公式可不可以計算?

對於此類題目,最好畫出指令流水線,因為公式法有一定的侷限性。

畫好了!!這樣畫是對的!!!可是為什麼這樣畫呢?

因為:

第一步:

把a1*b1當做是第乙個指令(無資料相關),在圖中用1表示。

把a2*b2當做是第二個指令(無資料相關),在圖中用2表示。

把a3*b3當做是第三個指令(無資料相關),在圖中用3表示。

把a4*b4當做是第四個指令(無資料相關),在圖中用4表示。

第二步:

先算(a1*b1)+(a2*b2),結果設為s1,當做第五個指令。在圖中用5表示。

先算(a3*b3)+(a4*b4),結果設為s2,當做第六個指令。在圖中用6表示。

但是大家有沒有發現s5是要等第一和第二條指令算完才可以進行計算。

(因為他們的計算資料是前面指令的結果)

所以在圖中我們可以看到在輸入1234四條指令之後,馬上輸入了第五條指令,是因為在s5的流水段的時候,1,2條指令已經執行完了。

然後輸入第六條指令,因為第六條指令於第三條和第四條指令有資料相關,所以必須等第三條和第四條指令執行完畢再輸入。

(注意第五和第六條指令為加法,在s4段的時候時間為2△t,需要佔兩個空格,因為乙個空格為△t)

第三步:

輸入第七條指令,因為第七條指令與第五條和第六條指令有資料相關,所以必須等到第五條和第六條指令只想完畢之後才可輸入第七條指令。

因為輸入了七條指令,所以n是7同時因為使用了流水線,指令的執行時間為16△t。不使用流水線的話一共需要花費的 時間是27△t。

指令流水線 你理解多少?

流水線 流水線是指在程式執行時多條指令重疊進行操作的一種準並行處理實現技術。各種部件同時處理是針對不同指令而言的,它們可同時為多條指令的不同部分進行工作,以提高各部件的利用率和指令的平均執行速度。概念我們說那麼多,我們現在深入去理解,光有概念都是一些比較抽象的東西,我們看圖 我們有三個步驟。然後我們...

評測師之 指令流水線吞吐率

往年真題 某指令流水線由4段組成,各段所需要的時間如下圖所示。連續輸出8條指令時的吞吐率 單位時間內流水線所完成的任務數或輸出的結果數 為 c a.8 56 t b.8 32 t c.8 28 t d.8 24 t 解析 當流水線各段所經歷的時間不一樣時,吞吐率的計算公式為 吞吐率tp 指令數 執行...

Linux學習筆記 002 ARM指令流水線

在cpu中,對於指令的處理一般分為 取指令 instruction fetch,if 階段是將一條指令從主存中取到指令暫存器的過程。程式計數器pc中的數值,用來指示當前指令在主存中的位置。當一條指令被取出後,pc中的數值將根據指令字長度而自動遞增 若為單字長指令,則 pc 1 pc 若為雙字長指令,...