計算機系統結構 流水線技術 3.2 DLX的基本流水線_第1頁
計算機系統結構 流水線技術 3.2 DLX的基本流水線_第2頁
計算機系統結構 流水線技術 3.2 DLX的基本流水線_第3頁
計算機系統結構 流水線技術 3.2 DLX的基本流水線_第4頁
計算機系統結構 流水線技術 3.2 DLX的基本流水線_第5頁
已閱讀5頁,還剩61頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、1663.2DLX的基本流水線3.2.1 DLX的一種簡單實現首先討論在不流水的情況下,如何實現首先討論在不流水的情況下,如何實現DLXDLX。1. 實現實現DLXDLX指令的一種簡單數據通路指令的一種簡單數據通路第三章 流水線技術項目調研與實踐項目調研與實踐3662. 一條DLX指令最多需要以下5個時鐘周期:(1 1) 取指令周期取指令周期(IFIF) IR MemPCIR MemPC NPC PCNPC PC4 4 操作操作3.2 DLX的基本流水線項目調研與實踐項目調研與實踐566(2 2)指令譯碼)指令譯碼/ /讀寄存器周期讀寄存器周期(IDID) A RegsIRA RegsIR6

2、6 .10.10 B RegsIRB RegsIR1111 .15.15 ImmImm (IR (IR1616) )16 16 # IR# IR1616 .31.31 操作操作 指令譯碼和讀寄存器是并行進行的。之所指令譯碼和讀寄存器是并行進行的。之所 以能做到這一點,是因為在以能做到這一點,是因為在DLXDLX指令格式中,指令格式中, 操作碼在固定位置。這種技術也稱為操作碼在固定位置。這種技術也稱為固定字段固定字段 譯碼。譯碼。3.2 DLX的基本流水線項目調研與實踐項目調研與實踐766(3 3)執行執行/ /有效地址計算周期有效地址計算周期(EXEX) 在這個周期,不同的指令有不同的操作。在

3、這個周期,不同的指令有不同的操作。3.2 DLX的基本流水線項目調研與實踐 存儲器訪問存儲器訪問 ALUOutput AALUOutput AImmImm 操作操作項目調研與實踐 寄存器寄存器寄存器寄存器 ALU ALU 操作操作 ALUOutputALUOutput A op B A op B 操作操作項目調研與實踐1066 寄存器寄存器立即值立即值 ALU ALU 操作操作 ALUOutput A op ImmALUOutput A op Imm 操作操作3.2 DLX的基本流水線項目調研與實踐 分支操作分支操作ALUOutput NPCALUOutput NPCImmImm CondCo

4、nd (A op 0) (A op 0) 操作操作項目調研與實踐1266(4 4)存儲器訪問存儲器訪問/ /分支完成周期分支完成周期(MEMMEM) 在該周期處理的在該周期處理的DLXDLX指令只有指令只有LoadLoad、StoreStore和和 分支指令。分支指令。這里,將有效地址計算周期和執行周期這里,將有效地址計算周期和執行周期合并為一個時鐘周期,這是由合并為一個時鐘周期,這是由 DLXDLX指令集結指令集結構本身的特點所允許的,因為在構本身的特點所允許的,因為在DLXDLX指令集結指令集結構中,沒有任何指令需要同時計算數據的存構中,沒有任何指令需要同時計算數據的存儲器地址、計算分支指

5、令的目標地址和進行儲器地址、計算分支指令的目標地址和進行數據處理。數據處理。3.2 DLX的基本流水線項目調研與實踐1366 存儲器訪問存儲器訪問 LMD MemALUOutputLMD MemALUOutput 或或 Mem ALUOutputMem ALUOutput B B操作操作3.2 DLX的基本流水線項目調研與實踐項目調研與實踐1566 分支操作分支操作 ifif(condcond)PC ALUOutputPC ALUOutput elseelse PC NPCPC NPC操作操作項目調研與實踐項目調研與實踐1766(5 5)寫回周期)寫回周期(WBWB) 不同指令在該周期完成的工

6、作也不一樣。不同指令在該周期完成的工作也不一樣。 寄存器寄存器寄存器型寄存器型 ALU ALU 指令指令 RegsIRRegsIR1616 .20.20 ALUOutput ALUOutput操作操作 寄存器寄存器立即值型立即值型 ALU ALU 指令指令 RegsIRRegsIR1111 .15.15 ALUOutput ALUOutput操作操作 LoadLoad 指令指令 RegsIRRegsIR1111 .15.15 LMD LMD 操作操作3.2 DLX的基本流水線項目調研與實踐寄存器寄存器寄存器型寄存器型 ALU ALU 指令指令 RegsIRRegsIR1616 .20.20 A

7、LUOutput ALUOutput項目調研與實踐寄存器寄存器立即值型立即值型 ALU ALU 指令指令 RegsIRRegsIR1111 .15.15 ALUOutput ALUOutput項目調研與實踐LoadLoad 指令指令 RegsRegsIRIR1111 .15.15 LMD LMD21663. 分支指令需要4個時鐘周期, 其它指令需要5個時鐘周期 假設分支指令占總指令數的假設分支指令占總指令數的1212, , 則則: : CPICPI4.884.88 上述實現無論在性能上,還是在硬件開銷上,上述實現無論在性能上,還是在硬件開銷上,都不是優化的。都不是優化的。3.2 DLX的基本流

8、水線22663.2.2 基本的DLX流水線我們可以把我們可以把3.2.13.2.1中的數據通路流水化:中的數據通路流水化:每個時鐘周期啟動一條新的指令。每個時鐘周期啟動一條新的指令。這樣,該數據通路中的每一個周期就成這樣,該數據通路中的每一個周期就成了一個流水段。了一個流水段。1. 一種簡單的 DLX 流水線2. 簡單DLX流水線的流水過程第一種描述第一種描述(類似于時空圖)(類似于時空圖)第二種描述第二種描述(按時間錯開的數據通路序列)(按時間錯開的數據通路序列)3.2 DLX的基本流水線23663.2 DLX的基本流水線按時間錯開的數據通路序列按時間錯開的數據通路序列25663. 采用流水

9、技術還應解決好以下幾個問題:上述簡單上述簡單DLXDLX流水線中:流水線中: 指令存儲器指令存儲器(IMIM)和)和數據存儲器數據存儲器(DMDM)分)分 開,避免了訪存沖突。開,避免了訪存沖突。 IDID段和段和WBWB段都要訪問同一寄存器文件。段都要訪問同一寄存器文件。 IDID段:讀段:讀WBWB段:寫段:寫 如何解決對同一寄存器的訪問沖突?如何解決對同一寄存器的訪問沖突?(1 1)應保證不會在同一個時鐘周期內在同一數據)應保證不會在同一個時鐘周期內在同一數據 通路資源上做不同的操作。通路資源上做不同的操作。 例如,不能要求一個例如,不能要求一個ALUALU同時既做有效同時既做有效 地址

10、計算,又做減法操作。地址計算,又做減法操作。3.2 DLX的基本流水線2666 沒有考慮沒有考慮 PC PC 問題問題流水線為了能夠每個時鐘周期啟動一條流水線為了能夠每個時鐘周期啟動一條新的指令,就必須在每個時鐘周期進行新的指令,就必須在每個時鐘周期進行PCPC值值的加的加4 4操作,并保留新的操作,并保留新的PCPC值。這種操作必值。這種操作必須須在在IFIF段完成段完成,以便為取下一條指令做好準,以便為取下一條指令做好準備。備。3.2 DLX的基本流水線但分支指令也可能改變但分支指令也可能改變PCPC的值,而且是的值,而且是在在MEMMEM段進行,這會導致沖突段進行,這會導致沖突。為解決問

11、題,我們為解決問題,我們重新組織數據通路重新組織數據通路,把所有改變把所有改變PCPC值的操作都放在值的操作都放在IFIF段進行。段進行。但分支指令如何處理?但分支指令如何處理? 3066(2 2)每一流水段內的操作都必須在一個時鐘周期)每一流水段內的操作都必須在一個時鐘周期 內完成內完成 流水線各段之間需設置流水線寄存器流水線各段之間需設置流水線寄存器 (也稱為(也稱為鎖存器鎖存器) 流水線寄存器組及其所含寄存器的流水線寄存器組及其所含寄存器的命名命名 例如,例如,IDID段和段和EXEX段之間的流水線寄存段之間的流水線寄存 器組中的器組中的IRIR寄存器的名稱為寄存器的名稱為: :ID/E

12、X.IRID/EX.IR 流水線寄存器的作用流水線寄存器的作用 把數據和控制信息從一個流水段傳把數據和控制信息從一個流水段傳 送到下一個流水段。送到下一個流水段。(3 3)流水線寄存器(組)流水線寄存器(組)3.2 DLX的基本流水線 流水線寄存器的構成流水線寄存器的構成33664. DLX流水線的操作對于流水線中的指令來說,在任一時刻,它對于流水線中的指令來說,在任一時刻,它僅在流水線中的某一段內執行操作。僅在流水線中的某一段內執行操作。因此,只要知道每一流水段在各種指令下進因此,只要知道每一流水段在各種指令下進行何種操作,就知道了整個流水線的操作。行何種操作,就知道了整個流水線的操作。 (

13、 (表表3.1)3.1)給出了給出了DLXDLX流水線各段的操作。流水線各段的操作。 3.2 DLX的基本流水線流水段流水段表3.1 DLX流水線的每個流水段的操作任何指令類型任何指令類型ALU ALU 指令指令Load/Store Load/Store 指令指令分支指令分支指令IFIFIDIDEXEXIF/ID.IR MemPCIF/ID.NPC,PC (if EX/MEM.cond EX/MEM.NPC else PC+4);ID/EX.A RegsIF/ID.IR6.10; ID/EX.B RegsIF/ID.IR11.15;ID/EX.NPC IF/ID.NPC; ID/EX.IR I

14、F/ID.IR;ID/EX.Imm (IR16)16#IR16.31;EX/MEM.IR ID/EX.IR; EX/MEM.ALUOutput ID/EX.A op ID/EX.B 或EX/MEM.ALUOutput ID/EX.A op ID/EX.Imm;EX/MEM.cond 0;EX/MEM.IR ID/EX.IR; EX/MEM.ALUOutput ID/EX.A + ID/EX.Imm;EX/MEM.ALUOutput ID/EX.NPC + ID/EX.Imm;EX/MEM.cond (ID/EX.A op 0);(動畫演示)(動畫演示)(動畫演示)(動畫演示)(動畫演示)流水段

15、流水段任何指令類型任何指令類型ALU ALU 指令指令Load/Store Load/Store 指令指令分支指令分支指令MEMMEMWBWBMEM/WB.IR EX/MEM.IR; MEM/WB.ALUOutput EX/MEM.ALUOutput;MEM/WB.IR EX/MEM.IR; MEM/WB.LMD MemEX/MEM.ALUOutput;或MemEX/MEM.ALUOutput EX/MEM.B;RegsMEM/WB.IR16.20 MEM/WB.ALUOutput;或RegsMEM/WB.IR11.15 MEM/WB.ALUOutput;RegsMEM/WB.IR11.15

16、MEM/WB.LMD;表3.1 DLX流水線的每個流水段的操作(動畫演示)(動畫演示)(動畫演示)(動畫演示)5DLX流水線的控制主要是確定如何主要是確定如何控制那四個多路選擇器控制那四個多路選擇器。37663.2.3 流水線性能分析吞吐率吞吐率是指單位時間內流水線所完成的任是指單位時間內流水線所完成的任務數或輸出結果的數量。務數或輸出結果的數量。1. 吞吐率(1) (1) 最大吞吐率最大吞吐率TPTPmaxmax 最大吞吐率最大吞吐率是指流水線在連續流動達到是指流水線在連續流動達到穩定狀態后所得到的吞吐率。穩定狀態后所得到的吞吐率。 若流水線各段的時間相等,均為若流水線各段的時間相等,均為t

17、 t0 0 , 則:則: TPmax 1 /t03.2 DLX的基本流水線3866 若流水線各段的時間不等,則:若流水線各段的時間不等,則: 最大吞吐率取決于流水線中最慢的一段所最大吞吐率取決于流水線中最慢的一段所 需的時間,這段就成了流水線的瓶頸。需的時間,這段就成了流水線的瓶頸。 消除瓶頸的方法消除瓶頸的方法 ( (舉例舉例) )l 細分瓶頸段細分瓶頸段 l 重復設置瓶頸段重復設置瓶頸段 ( (時時- -空圖空圖) )1 1maxmaxt ti i TPmax 3.2 DLX的基本流水線重復設置瓶頸段重復設置瓶頸段( (時時- -空圖舉例空圖舉例) )4166 第一種情況:各段時間第一種情

18、況:各段時間相等相等(設為(設為t t0 0) 假設流水線由假設流水線由 m m 段組成,完成段組成,完成 n n 個任務。個任務。l 時空圖時空圖l 完成完成 n n 個任務所需的時間個任務所需的時間 T T流水流水m mt t0 0( (n n1)1)t t0 0 ( (說明說明) )(2) (2) 實際吞吐率實際吞吐率TPTP 流水線的實際吞吐率小于最大吞吐率。流水線的實際吞吐率小于最大吞吐率。3.2 DLX的基本流水線42664366完成完成 n n 個任務所需的時間個任務所需的時間4466l 實際吞吐率實際吞吐率TP TP T T流水流水n nm mt t0 0( (n n) )t

19、t0 0n n(1(1 ) )t t0 0 m m1 11 1TPTPmaxmaxn n 1 1n nm m1 1TP TP TPTPmaxmax當當n n m m 時,時,TP TP TPTPmaxmax 第二種情況:各段時間第二種情況:各段時間不等不等l 時空圖時空圖3.2 DLX的基本流水線45663.2 DLX的基本流水線4666 l 完成完成 n n 個任務所需的時間個任務所需的時間 T T流水流水t ti i( (n n1)1)t tj j t tj jmaxmaxt ti i l 實際吞吐率實際吞吐率TP TP t ti i( (n n1)1)t tj jm mi=1i=1n n

20、i=1i=1m m3.2 DLX的基本流水線4766加速比加速比是指流水線的速度與等功能非流水是指流水線的速度與等功能非流水線的速度之比。線的速度之比。2. 加速比S S ST T非流水非流水T T流水流水(其中(其中T T流水流水和和T T非流水非流水分別為按流水和按非流水分別為按流水和按非流水方式處理方式處理 n n 個任務所需的時間)個任務所需的時間) 若流水線為若流水線為 m m 段,且各段時間相等,均段,且各段時間相等,均為為t t0 0 ,則:,則: T T非流水非流水n mn mt t0 0 ( (解釋解釋) ) T T流水流水m mt t0 0( (n n1)1)t t0 0

21、3.2 DLX的基本流水線48663.2 DLX的基本流水線4966可以看出:可以看出:當當n n m m 時,時,S S m m想一想:想一想:n n 越大越好?越大越好?效率效率是指流水線的設備利用率。是指流水線的設備利用率。(1) (1) 由于流水線有由于流水線有通過時間和排空時間通過時間和排空時間,所以,所以 流水線的各段并不是一直滿負荷地工作。流水線的各段并不是一直滿負荷地工作。 故:故:E E 1 1S S T T非流水非流水T T流水流水nmnmt t0 0m mt t0 0( (n n1 1) )t t0 0mnmnm mn n1 1m mn n1 1 m m1 1 3效率 E

22、3.2 DLX的基本流水線50663.2 DLX的基本流水線5166(2) (2) 若各段時間相等,則各段的效率若各段時間相等,則各段的效率e ei i相等,即相等,即 e e1 1e e2 2 e e3 3 e em mn nt t0 0T T流水流水 ( (解釋解釋) ) 整個流水線的效率為整個流水線的效率為: :當當 n n m m 時,時,E E 1 1E E n nt t0 0T T流水流水n nm mn n1 11n n1 m1(3) (3) 從時空圖上看,效率實際上就是從時空圖上看,效率實際上就是 n n 個任務所個任務所占的時空區與占的時空區與 m m 個段總的時空區個段總的時

23、空區之比,即:之比,即: n n 個任務占用的時空區個任務占用的時空區E E ( (解釋解釋) ) m m 個段總的時空區個段總的時空區3.2 DLX的基本流水線52665366(4) (4) 提高流水線效率所采取的措施對于提高提高流水線效率所采取的措施對于提高 吞吐率也有好處。吞吐率也有好處。4流水線性能分析舉例例例3.13.1 在在靜態流水線靜態流水線上計算上計算 A Ai iB Bi i , 求:吞吐率,加速比,效率。求:吞吐率,加速比,效率。4 4i i=1=13.2 DLX的基本流水線54663.2 DLX的基本流水線5566解解:( (1) 1) 確定適合于流水處理的確定適合于流水

24、處理的計算過程計算過程(2) (2) 畫時空圖畫時空圖 (3) (3) 計算性能計算性能 吞吐率吞吐率 TPTP7 7(20(20t t) ) 加速比加速比 S S(34(34t t) )(20(20t t) )1.71.7 效率效率 E E(4(44 43 36)6)(8(820)20)0.210.213.2 DLX的基本流水線5666576658663.2 DLX的基本流水線5966可以看出,在求解此問題時,該流水線的效率可以看出,在求解此問題時,該流水線的效率不高。不高。 ( (原因原因) )動態流水線的時空圖動態流水線的時空圖 舉例舉例 3.2 DLX的基本流水線6066舉例舉例 :

25、: 這樣行不行?這樣行不行? 正確答案正確答案3.2 DLX的基本流水線6166例例3.23.2 假設前面假設前面DLXDLX非流水線實現的時鐘周期時間非流水線實現的時鐘周期時間 為為10ns10ns,ALUALU和分支指令需要和分支指令需要4 4個時鐘周期,訪個時鐘周期,訪 問存儲器指令需問存儲器指令需5 5個時鐘周期,上述指令在程序個時鐘周期,上述指令在程序 中出現的相對頻率分別是:中出現的相對頻率分別是:40%40%、20%20%和和40%40%。在。在 基本的基本的DLXDLX流水線中,假設由于時鐘扭曲和寄存流水線中,假設由于時鐘扭曲和寄存 器建立延遲等原因,流水線要在其時鐘周期時器建

26、立延遲等原因,流水線要在其時鐘周期時 間上附加間上附加1ns1ns的額外開銷。現忽略任何其他延遲的額外開銷。現忽略任何其他延遲 因素的影響,請問:相對于非流水實現而言,因素的影響,請問:相對于非流水實現而言, 基本的基本的DLXDLX流水線執行指令的加速比是多少?流水線執行指令的加速比是多少?3.2 DLX的基本流水線6266解:解:當非流水執行指令時,指令的平均執行時當非流水執行指令時,指令的平均執行時 間為間為 TPITPI非流水非流水 = 10= 10nsns(40%+20%)(40%+20%)4 440%40%5)5) = 10ns = 10ns4.4 = 44ns4.4 = 44ns

27、 在流水實現中,指令執行的平均時間在流水實現中,指令執行的平均時間 是最慢一段的執行時間加上額外開銷,即是最慢一段的執行時間加上額外開銷,即 TPITPI流水流水 = 10= 10ns+1ns = 11nsns+1ns = 11ns 所以基本的所以基本的DLXDLX流水線執行指令的加速比為流水線執行指令的加速比為S = =TPITPI非流水非流水TPITPI流水流水44ns44ns11ns11ns= = 4= 43.2 DLX的基本流水線6366例例3.33.3 假設在假設在DLXDLX的非流水實現和基本流水線中,的非流水實現和基本流水線中,5 5個個功能單元的時間為:功能單元的時間為:1010,8 8,1010,1010,7 7(nsns),), 流水額外開銷為:流水額外開銷為:1 1nsns,求求加速比加速比S S。解解:T T非流水非流水10108 8101010107 745 (45 (ns)ns) T T流水流水 10101 111 (11 (ns)ns) S S 454511114.14.13.2 DLX

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論