第03章流水線技術(shù)_第1頁
第03章流水線技術(shù)_第2頁
第03章流水線技術(shù)_第3頁
第03章流水線技術(shù)_第4頁
第03章流水線技術(shù)_第5頁
已閱讀5頁,還剩188頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1 1193193張晨曦 編著華中科技大學(xué) 計(jì)算機(jī)學(xué)院2 0 1 3 年 3 月2 2193193作業(yè):作業(yè):P91P913.83.83.103.103.113.113 31931933.2MIPS 的基本流水線3.3流水線中的相關(guān) MIPS MIPS 流水線流水線 流水線性能分析流水線性能分析 結(jié)構(gòu)相關(guān)結(jié)構(gòu)相關(guān) 數(shù)據(jù)相關(guān)數(shù)據(jù)相關(guān) 控制相關(guān)控制相關(guān)3.4MIPS R4000 流水線計(jì)算機(jī)3.1流水線(Pipeline)的基本概念第三章 流水線技術(shù)4 41931933.1流水線的基本概念3.1.1 基本概念 1. 產(chǎn)品生產(chǎn)流水線下面通過一個(gè)例子來說明流水線的好處下面通過一個(gè)例子來說明流水線的好處

2、: : 兩種方案兩種方案 兩種方案的工作過程對(duì)比兩種方案的工作過程對(duì)比第三章 流水線技術(shù)5 5193193一套機(jī)器一個(gè)工人一套機(jī)器一個(gè)工人 一套可分離工具一套可分離工具4 4個(gè)工人個(gè)工人6 6193193 流水線生產(chǎn)過程的抽象描述流水線生產(chǎn)過程的抽象描述 這種流水工作方式的主要特點(diǎn):重疊這種流水工作方式的主要特點(diǎn):重疊7 71931932. 指令流水線指令流水線(處理機(jī)級(jí)流水線)處理機(jī)級(jí)流水線)把指令的解釋過程分解為把指令的解釋過程分解為“分析分析”和和“執(zhí)行執(zhí)行”兩個(gè)子過程,并讓這兩個(gè)子過程分別用獨(dú)立的分兩個(gè)子過程,并讓這兩個(gè)子過程分別用獨(dú)立的分析部件和執(zhí)行部件來實(shí)現(xiàn)。析部件和執(zhí)行部件來實(shí)現(xiàn)

3、。理想情況:理想情況:速度提高一倍速度提高一倍3.1 流水線的基本概念8 81931939 9193193分析分析執(zhí)行執(zhí)行時(shí)間時(shí)間 t t分析分析k k執(zhí)行執(zhí)行k kT=(p+qT=(p+q n n)t=2nt=2n t, p+q=2, p=0. p:t, p+q=2, p=0. p:重疊數(shù)重疊數(shù)T=(p+qT=(p+q n n)t=(1+n)t=(1+n) t, p+q=2, p=1t, p+q=2, p=1分析分析k+1k+1執(zhí)行執(zhí)行k+1k+13.1 流水線的基本概念10101931933. 浮點(diǎn)加法流水線浮點(diǎn)加法流水線(部件級(jí)流水線、部件級(jí)流水線、運(yùn)算操作流水線)運(yùn)算操作流水線)把浮點(diǎn)

4、加法的全過程分解為把浮點(diǎn)加法的全過程分解為“求階差求階差”、“對(duì)對(duì)階階”、“尾數(shù)相加尾數(shù)相加”、“規(guī)格化規(guī)格化”四個(gè)子過程,四個(gè)子過程,并讓并讓它們分別用各自獨(dú)立的部件來實(shí)現(xiàn)。它們分別用各自獨(dú)立的部件來實(shí)現(xiàn)。理想情況:理想情況:速度提高速度提高3 3倍倍 T=(p+qT=(p+q n n)t=(3+n)t=(3+n) t,p+q=4,p=3t,p+q=4,p=33.1 流水線的基本概念11111931933.1 流水線的基本概念12121931934. 時(shí)空?qǐng)D時(shí)空?qǐng)D時(shí)空?qǐng)D時(shí)空?qǐng)D從時(shí)間和空間兩個(gè)方面描述了流水從時(shí)間和空間兩個(gè)方面描述了流水線的工作過程。時(shí)空?qǐng)D中,橫坐標(biāo)代表時(shí)間,線的工作過程。時(shí)空

5、圖中,橫坐標(biāo)代表時(shí)間,縱坐標(biāo)代表流水線的各個(gè)段??v坐標(biāo)代表流水線的各個(gè)段。3.1 流水線的基本概念1313193193幾個(gè)“123”與坐標(biāo)解 流水線技術(shù)流水線技術(shù)流水線技術(shù)是指:將一個(gè)重復(fù)的時(shí)序過程分解是指:將一個(gè)重復(fù)的時(shí)序過程分解成為若干個(gè)子過程,而每個(gè)子過程都可有效地在成為若干個(gè)子過程,而每個(gè)子過程都可有效地在其專用功能段上與其他子過程同時(shí)執(zhí)行其專用功能段上與其他子過程同時(shí)執(zhí)行? ?6流水線技術(shù)的特點(diǎn)(1) (1) 流水過程由多個(gè)相聯(lián)系的子過程組成,每個(gè)流水過程由多個(gè)相聯(lián)系的子過程組成,每個(gè)子過程稱為流水線的子過程稱為流水線的“級(jí)級(jí)”或或“段段”。“段段”的數(shù)的數(shù)

6、目稱為流水線的目稱為流水線的“深度深度”。(2) (2) 每個(gè)子過程由專用的每個(gè)子過程由專用的功能段功能段實(shí)現(xiàn);實(shí)現(xiàn);3.1 流水線的基本概念1515193193(4) (4) 流水線需要有流水線需要有“通過時(shí)間通過時(shí)間”(第一個(gè)任務(wù)流出結(jié)果(第一個(gè)任務(wù)流出結(jié)果所所需的時(shí)間),在此之后流水過程才進(jìn)入穩(wěn)定工作狀需的時(shí)間),在此之后流水過程才進(jìn)入穩(wěn)定工作狀態(tài),每一個(gè)時(shí)鐘周期(拍)流出一個(gè)結(jié)果;態(tài),每一個(gè)時(shí)鐘周期(拍)流出一個(gè)結(jié)果;(3) (3) 各個(gè)功能段所需時(shí)間應(yīng)盡量相等,否則,時(shí)間長(zhǎng)各個(gè)功能段所需時(shí)間應(yīng)盡量相等,否則,時(shí)間長(zhǎng)的功能段將成為流水線的瓶頸,會(huì)造成流水線的的功能段將成為流水線的瓶頸,

7、會(huì)造成流水線的 “堵塞堵塞”和和“斷流斷流”。這個(gè)時(shí)間一般為一個(gè)時(shí)鐘。這個(gè)時(shí)間一般為一個(gè)時(shí)鐘周期周期(拍);(拍);(5) (5) 流水技術(shù)適合于大量重復(fù)的時(shí)序過程,只有輸入流水技術(shù)適合于大量重復(fù)的時(shí)序過程,只有輸入端能連續(xù)地提供任務(wù),流水線的效率才能充分發(fā)端能連續(xù)地提供任務(wù),流水線的效率才能充分發(fā)揮。揮。3.1 流水線的基本概念16161931933.1 流水線的基本概念分析分析k執(zhí)行執(zhí)行k分析分析k+1執(zhí)行執(zhí)行k+1分析分析k+2執(zhí)行執(zhí)行k+2為了盡量減少為了盡量減少瓶頸瓶頸損失,較好的辦法是緩沖技術(shù)。設(shè)置先行指令緩損失,較好的辦法是緩沖技術(shù)。設(shè)置先行指令緩沖棧,兩個(gè)工作時(shí)間不相等的功能部

8、件可以各自獨(dú)立地工作。這種沖棧,兩個(gè)工作時(shí)間不相等的功能部件可以各自獨(dú)立地工作。這種技術(shù)經(jīng)常被采用。技術(shù)經(jīng)常被采用。分析分析k執(zhí)行執(zhí)行k分析分析k+1執(zhí)行執(zhí)行k+1分析分析k+2執(zhí)行執(zhí)行k+2171719319318181931933.1.2 流水線的分類流水線可以按不同的觀點(diǎn)進(jìn)行分類。流水線可以按不同的觀點(diǎn)進(jìn)行分類。 單功能流水線:?jiǎn)喂δ芰魉€:只能完成一種固定功能的只能完成一種固定功能的 流水線。流水線。 多功能流水線:多功能流水線:流水線的各段可以進(jìn)行不同的流水線的各段可以進(jìn)行不同的 連接,從而實(shí)現(xiàn)不同的功能。連接,從而實(shí)現(xiàn)不同的功能。 例如:例如: TI ASCTI ASC的多功能流水

9、線的多功能流水線1按功能的多少來分3.1 流水線的基本概念19191931932020193193在靜態(tài)流水線中,只有當(dāng)輸入是一串相同在靜態(tài)流水線中,只有當(dāng)輸入是一串相同的運(yùn)算操作時(shí),流水的效率才能得到發(fā)揮。的運(yùn)算操作時(shí),流水的效率才能得到發(fā)揮。2按同一時(shí)間內(nèi)各段之間的連接方式來分 靜態(tài)流水線:靜態(tài)流水線:在同一時(shí)刻,流水線的各段只能在同一時(shí)刻,流水線的各段只能 按同一種功能的連接方式工作。按同一種功能的連接方式工作。 3.1 流水線的基本概念2121193193 動(dòng)態(tài)流水線:動(dòng)態(tài)流水線:在同一時(shí)刻,流水線的各段可以在同一時(shí)刻,流水線的各段可以 按不同功能的連接方式工作。按不同功能的連接方式工

10、作。 這樣就不是非得相同運(yùn)算的一串操作才能這樣就不是非得相同運(yùn)算的一串操作才能 流水處理。流水處理。 優(yōu)點(diǎn):優(yōu)點(diǎn):能提高流水線的效率能提高流水線的效率 缺點(diǎn):缺點(diǎn):會(huì)使流水線的控制變得復(fù)雜會(huì)使流水線的控制變得復(fù)雜3.1 流水線的基本概念2222193193 靜、動(dòng)態(tài)流水線時(shí)空?qǐng)D的對(duì)比靜、動(dòng)態(tài)流水線時(shí)空?qǐng)D的對(duì)比23231931933按照流水線的級(jí)別來分 部件級(jí)流水線部件級(jí)流水線(運(yùn)算操作流水線):把處理機(jī)的(運(yùn)算操作流水線):把處理機(jī)的 算術(shù)邏輯部件分段,使得各種數(shù)據(jù)類型的操作能算術(shù)邏輯部件分段,使得各種數(shù)據(jù)類型的操作能 夠進(jìn)行流水夠進(jìn)行流水( (求階差、對(duì)階、尾數(shù)加、規(guī)格化求階差、對(duì)階、尾數(shù)加

11、、規(guī)格化) )。 處理機(jī)級(jí)流水線處理機(jī)級(jí)流水線(指令流水線):把指令的(指令流水線):把指令的解釋解釋 執(zhí)行執(zhí)行過程按照流水方式進(jìn)行處理。過程按照流水方式進(jìn)行處理。 例如:例如:前面把指令解釋過程分解為:前面把指令解釋過程分解為: 分析分析和和執(zhí)行執(zhí)行 MIPSMIPS的基本流水線把指令解釋過程分解為:的基本流水線把指令解釋過程分解為: 取指令、指令譯碼、取指令、指令譯碼、執(zhí)行執(zhí)行、訪存、寫回。、訪存、寫回。3.1 流水線的基本概念24241931933.1 流水線的基本概念2525193193 處理機(jī)間流水線處理機(jī)間流水線(宏流水線):它是指由兩個(gè)(宏流水線):它是指由兩個(gè) 以上的處理機(jī)串行

12、地對(duì)同一數(shù)據(jù)流進(jìn)行處理,以上的處理機(jī)串行地對(duì)同一數(shù)據(jù)流進(jìn)行處理, 每個(gè)處理機(jī)完成一項(xiàng)任務(wù)。每個(gè)處理機(jī)完成一項(xiàng)任務(wù)。3.1 流水線的基本概念2626193193順序流動(dòng)流水線:順序流動(dòng)流水線:流水線輸出端任務(wù)流出的順流水線輸出端任務(wù)流出的順 序與輸入端任務(wù)流入的順序序與輸入端任務(wù)流入的順序相同相同。 異步流動(dòng)流水線異步流動(dòng)流水線(亂序流水線):流水線輸出(亂序流水線):流水線輸出 端任務(wù)流出的順序與輸入端任務(wù)流入的順序端任務(wù)流出的順序與輸入端任務(wù)流入的順序 不同不同。4. 按照流動(dòng)是否可以亂序來分3.1 流水線的基本概念2727193193S1S1S2S2S3S3S4S4S5S5S6S6寄存器寄

13、存器 R0R0讀讀寫寫專用路徑專用路徑k: R0(R1) k+1: k+2:R2(R0)+(R3)k+3:k+4:k+5:ti+4 k+4 k+3 k+2空閑空閑空閑空閑空閑空閑ti+3 k+3 k+2空閑空閑空閑空閑空閑空閑k+1ti+2 k+3 k+2空閑空閑空閑空閑k+1kti+1 k+3 k+2空閑空閑k+1kk-1tik+3 k+2 k+1kk-1k-2 正常流動(dòng)正常流動(dòng)k+5 k+4 k+3 k+2 k+1k功能段功能段S1S2S3S4S5S62828193193ti+5k+8(k+7) k+6k+2k+5k+4k+3ti+4k+7(k+6) k+2k+5k+4k+3k+1ti+3

14、k+6k+5 (k+2) k+4k+3k+1 k ti+2k+5k+4 (k+2)k+3k+1 k k-1ti+1k+4k+3 (k+2)k+1 k k-1k-2tik+3(k+2) k+1 k k-1k-1k-3 正常流動(dòng)正常流動(dòng)k+5k+4k+3k+2k+1K功能段功能段S1S2S3S4S5S629291931935按照數(shù)據(jù)表示來分 向量處理機(jī):向量處理機(jī):具有向量指令和向量數(shù)據(jù)表示的具有向量指令和向量數(shù)據(jù)表示的 處理機(jī)。處理機(jī)。 例如:例如:TI ASC, TI ASC, CRAY-ICRAY-I 等等 標(biāo)量處理機(jī):標(biāo)量處理機(jī):不具有向量指令和向量數(shù)據(jù)表示,不具有向量指令和向量數(shù)據(jù)表示,

15、 僅對(duì)標(biāo)量進(jìn)行流水處理的處理機(jī)。僅對(duì)標(biāo)量進(jìn)行流水處理的處理機(jī)。 例如:例如:IBM360/91, Amdahl 470V/6IBM360/91, Amdahl 470V/6 等等6. 按照是否有反饋回路來分 線性流水線:線性流水線:流水線中的各段串行連接,沒流水線中的各段串行連接,沒 有反饋回路。有反饋回路。 非線性流水線:非線性流水線:流水線中的各段除有串行連接流水線中的各段除有串行連接 外,還有反饋回路。外,還有反饋回路。3.1 流水線的基本概念30301931933.1 流水線的基本概念3131193193 流水線的調(diào)度問題流水線的調(diào)度問題什么是沖突如何避開?什么是沖突如何避開?3232

16、193193非線性流水線的連接圖和預(yù)約表 P64-67 1 1 2 23 34 45 56 67 7S1S1 S2S2S3S3S4S4時(shí)間時(shí)間段段S1S2S3S4前饋線前饋線反饋線反饋線3333193193 1 1 2 23 34 45 56 67 78 89 910101111S1S11 11 1 2 2 1 1 2 2 3 32 2 3 3 4 4S2S21 11 1 2 22 2 3 33 3 4 4S3S31 12 21 13 32 24 4S4S41 12 23 3時(shí)間時(shí)間段段時(shí)間時(shí)間段段 1 1 2 23 34 45 56 67 78 89 910101111S1S11 12 21

17、 13 32 2 1 1 4 43 32 2 5 54 43 3 5 5S2S21 12 21 13 32 24 43 35 54 4S3S31 12 21 1 3 32 2 4 43 3 5 5S4S41 12 23 34 45 53434193193 1 1 2 23 34 45 56 67 78 89 910101111S1S11 11 1 2 2 1 1 2 2 3 32 2 3 3 4 4S2S21 11 1 2 22 2 3 33 3 4 4S3S31 12 21 13 32 24 4S4S41 12 23 3時(shí)間時(shí)間段段時(shí)間時(shí)間段段啟動(dòng)周期啟動(dòng)周期重復(fù)啟動(dòng)周期重復(fù)啟動(dòng)周期 1 1

18、 2 23 34 45 56 67 78 89 910101111S1S11 11 12 2 1 12 23 3S2S21 11 12 22 2S3S31 11 12 22 2S4S41 12 23535193193 1 1 2 23 34 45 56 67 78 89 9S1S1 S2S2 S3S3 S4S4 S5S5 時(shí)間時(shí)間段段1.1. 流水線的調(diào)度問題流水線的調(diào)度問題預(yù)約表與禁止表預(yù)約表與禁止表禁止表禁止表F (Forbidden)=1,5,6,8,F (Forbidden)=1,5,6,8, 同行相減同行相減, , 刪除相同刪除相同, , 無差不取無差不取3.1.3 非線性流水線的調(diào)

19、度3.1 流水線的基本概念36361931933.1 流水線的基本概念2.2. 流水線的調(diào)度問題流水線的調(diào)度問題禁止表與沖突向量禁止表與沖突向量C0C0C0=(Cn,Cn-1,C3,C2,C1)C0=(Cn,Cn-1,C3,C2,C1)Ci=1,Ci=1,若若i i屬于屬于F F,否則,否則Ci=0Ci=0由由F=F=1 1, ,5 5, 6 6, 8 得到?jīng)_突向量得到?jīng)_突向量CollisionCollision:C0=(C0=(1 10 01 11 10000001 1) )37371931933.1 流水線的基本概念3.3. 流水線的調(diào)度問題流水線的調(diào)度問題沖突向量與狀態(tài)轉(zhuǎn)換沖突向量與狀態(tài)

20、轉(zhuǎn)換假設(shè)啟動(dòng)周期為假設(shè)啟動(dòng)周期為j j,得到新的沖突向量,得到新的沖突向量SHRSHR(j)(j)(C0): (C0): 表示右移表示右移j j位位并使之與并使之與C0C0做做“或或”運(yùn)算運(yùn)算SHRSHR(j)(j)(C0)(C0) (C0)(C0)假設(shè)當(dāng)前沖突向量是假設(shè)當(dāng)前沖突向量是CkCk,j j是允許的時(shí)間間隔,是允許的時(shí)間間隔,則得到新的沖突向量:則得到新的沖突向量:SHRSHR(j)(j)(Ck)(Ck) (C0)(C0)38381931933.1 流水線的基本概念3.3. 流水線的調(diào)度問題流水線的調(diào)度問題狀態(tài)轉(zhuǎn)換與新的沖突向量狀態(tài)轉(zhuǎn)換與新的沖突向量由禁止表由禁止表F=1,5,6,8

21、F=1,5,6,8得到后續(xù)任務(wù)的可用時(shí)間得到后續(xù)任務(wù)的可用時(shí)間間隔為間隔為j=2j=2、3 3、4 4、7 7j=2j=2:(00101100)(00101100) (10110001)(10110001)=(10111101)=(10111101),可用可用2 2、7 7j=3j=3:(00010110)(00010110) (10110001)(10110001)=(10110111)=(10110111),可用可用4 4、7 7j=4j=4:(00001011)(00001011) (10110001)(10110001)=(10111011)=(10111011),可用可用3 3、7

22、7j=7j=7:(00000001)(00000001) (10110001)(10110001)=(10110001)=(10110001),可用可用2 2、3 3、4 4、7 739391931933.1 流水線的基本概念3.3. 流水線的調(diào)度問題流水線的調(diào)度問題狀態(tài)轉(zhuǎn)換圖狀態(tài)轉(zhuǎn)換圖40401931933.1 流水線的基本概念4.4. 流水線的調(diào)度問題流水線的調(diào)度問題平均延遲拍數(shù)與最優(yōu)調(diào)度平均延遲拍數(shù)與最優(yōu)調(diào)度調(diào)度策略平均延遲拍數(shù)調(diào)度策略平均延遲拍數(shù)(2,7)4.5(3,4,7)4.67(2,2,7)3.67(4,3,7)4.67(3,7)5(4,7)5.5(3,4)3.5(7)7(3,4

23、,3,7)4.254141193193 1 234567 S1 S1 S2 S2 S3 S3 S4 S4 時(shí)間時(shí)間段段3.1 流水線的基本概念補(bǔ)充練習(xí)題補(bǔ)充練習(xí)題已知如下預(yù)約表,已知如下預(yù)約表,求最優(yōu)調(diào)度方案求最優(yōu)調(diào)度方案42421931933.1 流水線的基本概念43431931933.2MIPS的基本流水線3.2.1 MIPS的一種簡(jiǎn)單實(shí)現(xiàn)首先討論在不流水的情況下,如何實(shí)現(xiàn)首先討論在不流水的情況下,如何實(shí)現(xiàn)MIPSMIPS。1. 實(shí)現(xiàn)MIPS指令的一種簡(jiǎn)單數(shù)據(jù)通路第三章 流水線技術(shù)444419319345451931932. 一條MIPS指令最多需要以下5個(gè)時(shí)鐘周期:(1 1) 取指令周期

24、取指令周期(IFIF) IR MemPC NPC PC4操作:根據(jù)操作:根據(jù)PCPC值從存儲(chǔ)器中取出指令,并送入值從存儲(chǔ)器中取出指令,并送入指令寄存器指令寄存器IRIR;PCPC增值增值4 4,指向下一條指令,并將,指向下一條指令,并將下一條指令的地址放入臨時(shí)寄存器下一條指令的地址放入臨時(shí)寄存器NPCNPC3.2 MIPS的基本流水線46461931934747193193(2 2)指令譯碼)指令譯碼/ /讀寄存器周期讀寄存器周期(IDID) A RegsIR6 .10 B RegsIR11 .15 Imm (IR16)16 # IR16 .31 操作操作 指令譯碼和讀寄存器是并行進(jìn)行的。之所

25、指令譯碼和讀寄存器是并行進(jìn)行的。之所 以能做到這一點(diǎn),是因?yàn)樵谝阅茏龅竭@一點(diǎn),是因?yàn)樵贛IPSMIPS指令格式中,指令格式中, 操作碼在固定位置。這種技術(shù)也稱為操作碼在固定位置。這種技術(shù)也稱為固定字段固定字段 譯碼。譯碼。A A、B B、ImmImm、LMD LMD 臨時(shí)寄存器。臨時(shí)寄存器。3.2 MIPS的基本流水線4848193193 I 類型指令 6 5 5 16 操作碼 rs rt 立即值 字節(jié)、半字、字的載入和儲(chǔ)存; rtrs op 立即值。分支指令: RegsrtRegsrs+immediate R 類型指令 6 5 5 5 5 6 操作碼 rs rt rd shamt Func

26、寄存器寄存器 ALU 操作:rdrs func rt; 函數(shù)對(duì)數(shù)據(jù)的操作進(jìn)行編碼:加、減、; 對(duì)特殊寄存器的讀/寫和移動(dòng)。 J 類型指令 6 26 操作碼 與 PC 相加的偏移量 跳轉(zhuǎn),跳轉(zhuǎn)并鏈接,從異常(exception)處自陷和返回。 圖 2.10 MIPS 的指令格式布局 各種類型指令的格式ABAB49491931935050193193(3 3)執(zhí)行執(zhí)行/ /有效地址計(jì)算周期有效地址計(jì)算周期(EXEX) 在這個(gè)周期,不同的指令有不同的操作。在這個(gè)周期,不同的指令有不同的操作。3.2 MIPS的基本流水線5151193193 存儲(chǔ)器訪問存儲(chǔ)器訪問 ALUOutput AImm 操作操作

27、5252193193 寄存器寄存器寄存器寄存器 ALU ALU 操作操作 ALUOutput A op B 操作操作5353193193 寄存器寄存器立即值立即值 ALU ALU 操作操作 ALUOutput A op Imm 操作操作5454193193 分支操作分支操作(P63) (P63) BEQZ R4,nameBEQZ R4,name ALUOutput NPCImm Cond (A op 0) 操作操作?5555193193(4 4)存儲(chǔ)器訪問存儲(chǔ)器訪問/ /分支完成周期分支完成周期(MEMMEM) 在該周期處理的在該周期處理的MIPSMIPS指令只有指令只有LoadLoad、St

28、oreStore和和 分支指令。分支指令。這里,將有效地址計(jì)算周期和執(zhí)行周期合并這里,將有效地址計(jì)算周期和執(zhí)行周期合并為一個(gè)時(shí)鐘周期,這是由為一個(gè)時(shí)鐘周期,這是由 MIPSMIPS指令集結(jié)構(gòu)本指令集結(jié)構(gòu)本身的特點(diǎn)所允許的,因?yàn)樵谏淼奶攸c(diǎn)所允許的,因?yàn)樵贛IPSMIPS指令集結(jié)構(gòu)指令集結(jié)構(gòu)中,沒有任何指令需要同時(shí)中,沒有任何指令需要同時(shí)計(jì)算計(jì)算數(shù)據(jù)的存儲(chǔ)數(shù)據(jù)的存儲(chǔ)器地址器地址、計(jì)算計(jì)算分支指令的目標(biāo)地址分支指令的目標(biāo)地址和和進(jìn)行進(jìn)行數(shù)數(shù)據(jù)處理據(jù)處理。3.2 MIPS的基本流水線5656193193 存儲(chǔ)器訪問存儲(chǔ)器訪問 LMD MemALUOutput 或或 Mem ALUOutput B操作操

29、作SW 500(R4), SW 500(R4), R3R3LW LW R1R1, 30(R2), 30(R2) R1R1 MemALUOutput 能否,為什么能否,為什么? ?3.2 MIPS的基本流水線57571931935858193193 分支操作分支操作 if (cond) PC ALUOutput else PC NPC操作操作5959193193 BEQZ R4,nameBEQZ R4,name6060193193(5 5)寫回周期)寫回周期(WBWB) 不同指令在該周期完成的工作也不一樣。不同指令在該周期完成的工作也不一樣。 寄存器寄存器寄存器型寄存器型 ALU ALU 指令指

30、令 (R)(R) RegsIR16 .20 ALUOutput操作操作 寄存器寄存器立即值型立即值型 ALU ALU 指令指令 (I)(I) RegsIR11 .15 ALUOutput操作操作 LoadLoad 指令指令(I)(I) RegsIR11 .15 LMD 操作操作3.2 MIPS的基本流水線6161193193寄存器寄存器寄存器型寄存器型 ALU ALU 指令指令 ADD R1, R2, R3 (P60)ADD R1, R2, R3 (P60) RegsIR16 .20 ALUOutput6262193193寄存器寄存器立即值型立即值型 ALU ALU 指令指令 ADD R8,R

31、2,#3 (P62)ADD R8,R2,#3 (P62) RegsIR11 .15 ALUOutput6363193193LoadLoad 指令指令 RegsIR11 .15 LMD64641931933. 分支指令需要4個(gè)時(shí)鐘周期, 其它指令需要5個(gè)時(shí)鐘周期 假設(shè)分支指令占總指令數(shù)的假設(shè)分支指令占總指令數(shù)的1212, , 則則: : CPICPI4 4* *0.12+50.12+5* *0.88 = 4.880.88 = 4.88 上述實(shí)現(xiàn)無論在性能上,還是在硬件開銷上,上述實(shí)現(xiàn)無論在性能上,還是在硬件開銷上,都不是優(yōu)化的。都不是優(yōu)化的。3.2 MIPS的基本流水線65651931933.2

32、.2 基本的MIPS流水線我們可以把我們可以把3.2.13.2.1中的數(shù)據(jù)通路流水化:中的數(shù)據(jù)通路流水化:每個(gè)時(shí)鐘周期啟動(dòng)一條新的指令。每個(gè)時(shí)鐘周期啟動(dòng)一條新的指令。這樣,該數(shù)據(jù)通路中的每一個(gè)周期就成這樣,該數(shù)據(jù)通路中的每一個(gè)周期就成了一個(gè)流水段。了一個(gè)流水段。1. 一種簡(jiǎn)單的 MIPS 流水線2. 簡(jiǎn)單MIPS流水線的流水過程第一種描述第一種描述(類似于時(shí)空?qǐng)D)(類似于時(shí)空?qǐng)D)第二種描述第二種描述(按時(shí)間錯(cuò)開的數(shù)據(jù)通路序列)(按時(shí)間錯(cuò)開的數(shù)據(jù)通路序列)3.2 MIPS的基本流水線66661931933.2 MIPS的基本流水線類似于時(shí)空?qǐng)D類似于時(shí)空?qǐng)D6767193193按時(shí)間錯(cuò)開的數(shù)據(jù)通路序

33、列按時(shí)間錯(cuò)開的數(shù)據(jù)通路序列68681931933. 采用流水技術(shù)還應(yīng)解決好以下幾個(gè)問題:上述簡(jiǎn)單上述簡(jiǎn)單MIPSMIPS流水線中:流水線中: 指令存儲(chǔ)器指令存儲(chǔ)器(IMIM)和)和數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器(DMDM)分)分 開,避免了訪存沖突。開,避免了訪存沖突。 IDID段和段和WBWB段都要訪問同一寄存器文件。段都要訪問同一寄存器文件。 IDID段:讀段:讀WBWB段:寫段:寫 如何解決對(duì)如何解決對(duì)同一寄存器同一寄存器的訪問沖突?的訪問沖突?(1 1)應(yīng)保證不會(huì)在同一個(gè)時(shí)鐘周期內(nèi)在同一數(shù)據(jù))應(yīng)保證不會(huì)在同一個(gè)時(shí)鐘周期內(nèi)在同一數(shù)據(jù) 通路資源上做不同的操作。通路資源上做不同的操作。 例如,不能要求

34、一個(gè)例如,不能要求一個(gè)ALUALU同時(shí)既做有效同時(shí)既做有效 地址計(jì)算,又做減法操作。地址計(jì)算,又做減法操作。Add R1,30(R2)?Add R1,30(R2)?3.2 MIPS的基本流水線69691931933.2 MIPS的基本流水線讀寫讀寫寄存器沖突:寄存器沖突:R PC R PC NPCNPC等等7070193193 沒有考慮沒有考慮 PC PC 問題問題流水線為了能夠每個(gè)時(shí)鐘周期啟動(dòng)一條流水線為了能夠每個(gè)時(shí)鐘周期啟動(dòng)一條新的指令,就必須在每個(gè)時(shí)鐘周期進(jìn)行新的指令,就必須在每個(gè)時(shí)鐘周期進(jìn)行PCPC值值的加的加4 4操作,并保留新的操作,并保留新的PCPC值。這種值。這種操作必操作必須

35、在須在IFIF段段完成完成,以便為取下一條指令做好準(zhǔn),以便為取下一條指令做好準(zhǔn)備。備。3.2 MIPS的基本流水線71711931937272193193但分支指令也可能改變但分支指令也可能改變PCPC的值,而且是的值,而且是在在MEMMEM段進(jìn)行,這會(huì)導(dǎo)致段進(jìn)行,這會(huì)導(dǎo)致( (PCPC) )沖突沖突。73731931937474193193為解決問題,我們?yōu)榻鉀Q問題,我們重新組織數(shù)據(jù)通路重新組織數(shù)據(jù)通路,把所有改變,把所有改變PCPC值的值的操作都放在操作都放在IFIF段進(jìn)行。段進(jìn)行。但分支指令如何處理?但分支指令如何處理? 7575193193(2 2)每一流水段內(nèi)的操作都必須在一個(gè)時(shí)鐘周

36、期)每一流水段內(nèi)的操作都必須在一個(gè)時(shí)鐘周期 內(nèi)完成內(nèi)完成 流水線各段之間需設(shè)置流水線寄存器流水線各段之間需設(shè)置流水線寄存器 (也稱為(也稱為鎖存器鎖存器) 流水線寄存器組及其所含寄存器的流水線寄存器組及其所含寄存器的命名命名 例如,例如,IDID段和段和EXEX段之間的流水線寄存段之間的流水線寄存 器組中的器組中的IRIR寄存器的名稱為寄存器的名稱為: :ID/EX.IRID/EX.IR 流水線寄存器的作用流水線寄存器的作用 把數(shù)據(jù)和控制信息從一個(gè)流水段傳把數(shù)據(jù)和控制信息從一個(gè)流水段傳 送到下一個(gè)流水段。送到下一個(gè)流水段。(3 3)流水線寄存器流水線寄存器(組)(組)3.2 MIPS的基本流水

37、線76761931937777193193 流水線寄存器的構(gòu)成流水線寄存器的構(gòu)成 LMDLMD作用,在第作用,在第5 5拍寫回拍寫回, , 避免相關(guān)?避免相關(guān)?78781931934. MIPS流水線的操作對(duì)于流水線中的指令來說,在任一時(shí)刻,它對(duì)于流水線中的指令來說,在任一時(shí)刻,它僅在流水線中的某一段內(nèi)執(zhí)行操作。僅在流水線中的某一段內(nèi)執(zhí)行操作。因此,只要知道因此,只要知道某條指令在某條指令在每一流水段進(jìn)每一流水段進(jìn)行何種操作,就知道了行何種操作,就知道了它在它在整個(gè)流水線的操作。整個(gè)流水線的操作。( (表表3.1)3.1)給出了給出了MIPSMIPS流水線各段的操作。流水線各段的操作。 3.2

38、 MIPS的基本流水線7979193193流水段流水段表3.1 MIPS流水線的每個(gè)流水段的操作任何指令類型任何指令類型ALU 指令指令Load/Store 指令指令分支指令分支指令I(lǐng)FIDEXIF/ID.IR MemPCIF/ID.NPC,PC (if EX/MEM.cond EX/MEM.ALUout 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 IF/ID.IR;ID/EX.Imm (IR16)16#IR16.31;EX/MEM.IR ID/EX.I

39、R; 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);8080193193流水段流水段任何指令類型任何指令類型ALU 指令指令Load/Store 指令指令分支指令分支指令MEMWBMEM/WB.IR EX/MEM.IR;

40、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;I?RRegsMEM/WB.IR11.15 MEM/WB.LMD;MIPS流水線的每個(gè)流水段的操作81811931935MIPS流水線的控制主要是確定如何主要是確定如何控制那四個(gè)多路選擇器控制那四個(gè)多路選擇器。828219

41、31933.2.3 流水線性能分析吞吐率吞吐率是指單位時(shí)間內(nèi)流水線所完成的任是指單位時(shí)間內(nèi)流水線所完成的任務(wù)數(shù)或輸出結(jié)果的數(shù)量。務(wù)數(shù)或輸出結(jié)果的數(shù)量。1. 吞吐率(1) (1) 最大吞吐率最大吞吐率TPTPmaxmax 最大吞吐率最大吞吐率是指流水線在連續(xù)流動(dòng)達(dá)到是指流水線在連續(xù)流動(dòng)達(dá)到穩(wěn)定穩(wěn)定狀態(tài)后所得到的吞吐率。狀態(tài)后所得到的吞吐率。 若流水線各段的時(shí)間相等,均為若流水線各段的時(shí)間相等,均為t t0 0 , 則:則: TPmax 1 /t0MIPS的基本流水線8383193193 若流水線各段的時(shí)間不等,則:若流水線各段的時(shí)間不等,則: 最大吞吐率取決于流水線中最慢的一段所最大吞吐率取決于

42、流水線中最慢的一段所 需的時(shí)間,這段就成了流水線的瓶頸。需的時(shí)間,這段就成了流水線的瓶頸。 消除瓶頸的方法消除瓶頸的方法l 細(xì)分瓶頸段細(xì)分瓶頸段 l 重復(fù)設(shè)置瓶頸段重復(fù)設(shè)置瓶頸段1 1maxmaxt ti i TPmax 3.2 MIPS的基本流水線8484193193白色表示空閑白色表示空閑8585193193重復(fù)設(shè)置瓶頸段重復(fù)設(shè)置瓶頸段( (時(shí)時(shí)- -空?qǐng)D舉例空?qǐng)D舉例) )8686193193 第一種情況:各段時(shí)間第一種情況:各段時(shí)間相等相等(設(shè)為(設(shè)為t t0 0) 假設(shè)流水線由假設(shè)流水線由 m m 段組成,完成段組成,完成 n n 個(gè)任務(wù)。個(gè)任務(wù)。l 時(shí)空?qǐng)D時(shí)空?qǐng)Dl 完成完成 n n

43、個(gè)任務(wù)所需的時(shí)間個(gè)任務(wù)所需的時(shí)間 T T流水流水m mt t0 0( (n n1)1)t t0 0 ( (說明說明) )(2) (2) 實(shí)際吞吐率實(shí)際吞吐率TPTP 流水線的實(shí)際吞吐率小于最大吞吐率。流水線的實(shí)際吞吐率小于最大吞吐率。3.2 MIPS的基本流水線8787193193通過時(shí)間通過時(shí)間8888193193完成完成 n n 個(gè)任務(wù)所需的時(shí)間個(gè)任務(wù)所需的時(shí)間8989193193l 實(shí)際吞吐率實(shí)際吞吐率TP TP T T流水流水n nm mt t0 0( (n n) )t t0 0n n(1(1 ) )t t0 0 m m1 11 1TPTPmaxmaxn n 1 1n nm m1 1T

44、P TP TPTPmaxmax當(dāng)當(dāng)n n m m 時(shí),時(shí),TP TP TPTPmaxmax 第二種情況:各段時(shí)間第二種情況:各段時(shí)間不等不等l 時(shí)空?qǐng)D時(shí)空?qǐng)D3.2 MIPS的基本流水線90901931933.2 MIPS的基本流水線9191193193 l 完成完成 n n 個(gè)任務(wù)所需的時(shí)間個(gè)任務(wù)所需的時(shí)間 T T流水流水t ti i( (n n1)1)t tj j t tj jmaxmaxt ti i l 實(shí)際吞吐率實(shí)際吞吐率TP TP t ti i( (n n1)1)t tj jm mi=1i=1n ni=1i=1m m3.2 MIPS的基本流水線9292193193加速比加速比是指流水線

45、的速度與等功能非流水是指流水線的速度與等功能非流水線的速度之比。線的速度之比。2. 加速比S S ST T非流水非流水T T流水流水(其中(其中T T流水流水和和T T非流水非流水分別為按流水和按非流水分別為按流水和按非流水方式處理方式處理 n n 個(gè)任務(wù)所需的時(shí)間)個(gè)任務(wù)所需的時(shí)間) 若流水線為若流水線為 m m 段,且各段時(shí)間相等,均段,且各段時(shí)間相等,均為為t t0 0 ,則:,則: T T非流水非流水n mn mt t0 0 T T流水流水m mt t0 0( (n n1)1)t t0 0 3.2 MIPS的基本流水線93931931933.2 MIPS的基本流水線9494193193

46、可以看出:可以看出:當(dāng)當(dāng)n n m m 時(shí),時(shí),S S m m想一想:想一想:m m 越大越好?單周期指令?越大越好?單周期指令?效率效率是指流水線的設(shè)備是指流水線的設(shè)備( (空間空間) )利用率利用率(utility)(utility)。(1) (1) 由于流水線有由于流水線有通過時(shí)間和排空時(shí)間通過時(shí)間和排空時(shí)間,所以,所以 流水線的各段并不是一直滿負(fù)荷地工作。流水線的各段并不是一直滿負(fù)荷地工作。 故:故: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

47、3效率 EMIPS的基本流水線9595193193MIPS的基本流水線9696193193(2) (2) 若各段時(shí)間相等,則各段的效率若各段時(shí)間相等,則各段的效率e ei i相等,即相等,即 e e1 1e e2 2 e e3 3 e em mn nt t0 0T T流水流水 ( (解釋解釋) ) 整個(gè)流水線的效率為整個(gè)流水線的效率為: :當(dāng)當(dāng) n n m m 時(shí),時(shí),E E 1 1E E n nt t0 0T T流水流水n nm mn n1 11n n1 m1(3) (3) 從時(shí)空?qǐng)D上看,效率實(shí)際上就是從時(shí)空?qǐng)D上看,效率實(shí)際上就是 n n 個(gè)任務(wù)所個(gè)任務(wù)所占的時(shí)空區(qū)與占的時(shí)空區(qū)與 m m 個(gè)

48、段總的時(shí)空區(qū)個(gè)段總的時(shí)空區(qū)之比,即:之比,即: n n 個(gè)任務(wù)占用的時(shí)空區(qū)個(gè)任務(wù)占用的時(shí)空區(qū)E E ( (解釋解釋) ) m m 個(gè)段個(gè)段總的總的時(shí)空區(qū)時(shí)空區(qū)3.2 MIPS的基本流水線97971931939898193193(4) (4) 提高流水線效率所采取的措施對(duì)于提高提高流水線效率所采取的措施對(duì)于提高 吞吐率也有好處。吞吐率也有好處。TP=E/TP=E/t t0 04流水線性能分析舉例 P62 先加再乘例例3.13.1 在在靜態(tài)流水線靜態(tài)流水線上計(jì)算上計(jì)算 A Ai iB Bi i , 求:吞吐率,加速比,效率。求:吞吐率,加速比,效率。4 4i i=1=13.2 MIPS的基本流水線

49、99991931933.2 MIPS的基本流水線3 3次加法,次加法,4 4次乘法。非流水:次乘法。非流水:3 36+46+44=344=34100100193193解解:( (1) 1) 確定適合于流水處理的確定適合于流水處理的計(jì)算過程計(jì)算過程(2) (2) 畫時(shí)空?qǐng)D畫時(shí)空?qǐng)D (3) (3) 計(jì)算性能計(jì)算性能 吞吐率吞吐率 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 MIPS的基本流水線101101193193102102193

50、1931031031931933.2 MIPS的基本流水線nTPT流水104104193193可以看出,在求解此問題時(shí),該流水線的效率可以看出,在求解此問題時(shí),該流水線的效率不高。不高。( (原因原因) )動(dòng)態(tài)流水線的時(shí)空?qǐng)D動(dòng)態(tài)流水線的時(shí)空?qǐng)D 舉例舉例 3.2 MIPS的基本流水線105105193193舉例舉例 : : 這樣行不行?正確答案這樣行不行?正確答案3.2 MIPS基本流水線106106193193例例3.23.2 假設(shè)前面假設(shè)前面MIPSMIPS非流水線實(shí)現(xiàn)的時(shí)鐘周期時(shí)為非流水線實(shí)現(xiàn)的時(shí)鐘周期時(shí)為10ns10ns,ALUALU和分支指令需要和分支指令需要4 4個(gè)時(shí)鐘周期,訪問存?zhèn)€

51、時(shí)鐘周期,訪問存儲(chǔ)器指令需儲(chǔ)器指令需5 5個(gè)時(shí)鐘周期,上述指令在程序中出現(xiàn)個(gè)時(shí)鐘周期,上述指令在程序中出現(xiàn)的相對(duì)頻率分別是:的相對(duì)頻率分別是:40%40%、20%20%和和40%40%。在基本的。在基本的MIPSMIPS流水線中,假設(shè)由于時(shí)鐘扭曲和寄存器建立流水線中,假設(shè)由于時(shí)鐘扭曲和寄存器建立延遲等原因,流水線要在其時(shí)鐘周期時(shí)間上附加延遲等原因,流水線要在其時(shí)鐘周期時(shí)間上附加1ns1ns的額外開銷?,F(xiàn)忽略任何其他延遲因素的影響,的額外開銷。現(xiàn)忽略任何其他延遲因素的影響,請(qǐng)問:相對(duì)于非流水實(shí)現(xiàn)而言,基本的請(qǐng)問:相對(duì)于非流水實(shí)現(xiàn)而言,基本的MIPSMIPS流水流水線執(zhí)行指令的加速比是多少?線執(zhí)行

52、指令的加速比是多少?3.2 MIPS的基本流水線107107193193解:解:當(dāng)非流水執(zhí)行指令時(shí),指令的平均執(zhí)行時(shí)當(dāng)非流水執(zhí)行指令時(shí),指令的平均執(zhí)行時(shí) 間為間為 TPITPI非流水非流水 = 10ns= 10ns(40%+20%)(40%+20%)4 440%40%5)5) = 10ns = 10ns4.4 = 44ns4.4 = 44ns 在流水實(shí)現(xiàn)中,指令執(zhí)行的平均時(shí)間在流水實(shí)現(xiàn)中,指令執(zhí)行的平均時(shí)間 是最慢一段的執(zhí)行時(shí)間加上額外開銷,即是最慢一段的執(zhí)行時(shí)間加上額外開銷,即 TPITPI流水流水 = 10ns+1ns = 11ns= 10ns+1ns = 11ns 所以基本的所以基本的M

53、IPSMIPS流水線執(zhí)行指令的加速比為流水線執(zhí)行指令的加速比為S S = =TPITPI非流水非流水TPITPI流水流水44ns44ns11ns11ns= = 4= 43.2 MIPS的基本流水線108108193193例例3.3 (bottleneck)3.3 (bottleneck) 假設(shè)在假設(shè)在MIPSMIPS的非流水實(shí)現(xiàn)和基本流水線中,的非流水實(shí)現(xiàn)和基本流水線中,5 5個(gè)個(gè)功能單元的時(shí)間為:功能單元的時(shí)間為:1010,8 8,1010,1010,7 7(nsns),流水),流水額外開銷為:額外開銷為:1ns1ns,求求加速比加速比S S。解解:T T非流水非流水10108 810101

54、0107 745 (ns)45 (ns) T T流水流水 10101 111 (ns)11 (ns) S S 454511114.14.13.2 MIPS的基本流水線109109193193例例3.4 3.4 用一條用一條4 4段浮點(diǎn)加法器流水線計(jì)算段浮點(diǎn)加法器流水線計(jì)算8 8個(gè)浮點(diǎn)數(shù)的和個(gè)浮點(diǎn)數(shù)的和Z=A+B+C+D+E+F+G+HZ=A+B+C+D+E+F+G+H,求流水線的吞吐率,加速比和效率。,求流水線的吞吐率,加速比和效率。TP=n/Tk=7/15t=0.47/t, S=T0/Tk=4TP=n/Tk=7/15t=0.47/t, S=T0/Tk=47t/15t=1.87, 7t/15t

55、=1.87, E=T0/(kE=T0/(kTk)=4Tk)=47t/(47t/(4 15T)=0.47 15T)=0.47周期周期12345678910 11 12 13 14 15規(guī)格化規(guī)格化1234567尾數(shù)加尾數(shù)加1234567對(duì)階對(duì)階1234567求階差求階差1234567加數(shù)加數(shù)A C E GA+BE+FX加數(shù)加數(shù)B D F HC+DG+HY結(jié)果結(jié)果A+BC+DE+FG+HXYZ1101101931935有關(guān)流水線性能的若干問題(1) (1) 流水線并不能減少流水線并不能減少( (而且一般是增加而且一般是增加) )單條指單條指 令的執(zhí)行時(shí)間,但卻能提高吞吐率。令的執(zhí)行時(shí)間,但卻能提高

56、吞吐率。(2) (2) 增加流水線的深度增加流水線的深度( (段數(shù)段數(shù)) )可以提高流水線的可以提高流水線的 性能。性能。(3) (3) 流水線的深度受限于流水線的延遲和流水線流水線的深度受限于流水線的延遲和流水線 的額外開銷。的額外開銷。(4) (4) 流水線的額外開銷包括:流水線的額外開銷包括: 流水寄存器的延遲流水寄存器的延遲( (建立時(shí)間和傳輸延遲建立時(shí)間和傳輸延遲) ) 時(shí)鐘扭曲時(shí)鐘扭曲3.2 MIPS的基本流水線111111193193(5) (5) 當(dāng)時(shí)鐘周期小到與額外開銷相同時(shí),流水已沒意當(dāng)時(shí)鐘周期小到與額外開銷相同時(shí),流水已沒意 義。因?yàn)檫@時(shí)在每一個(gè)時(shí)鐘周期中已沒有時(shí)間來義。

57、因?yàn)檫@時(shí)在每一個(gè)時(shí)鐘周期中已沒有時(shí)間來 做有用的工作。做有用的工作。(6) (6) 需用高速的鎖存器來作為流水寄存器。需用高速的鎖存器來作為流水寄存器。 EarleEarle鎖存器鎖存器(1965)(1965)的三個(gè)特點(diǎn)的三個(gè)特點(diǎn): : 對(duì)時(shí)鐘扭曲不太敏感(相對(duì)而言)對(duì)時(shí)鐘扭曲不太敏感(相對(duì)而言) 其延遲為常數(shù):其延遲為常數(shù):2 2個(gè)門級(jí)延遲,避免了數(shù)據(jù)通個(gè)門級(jí)延遲,避免了數(shù)據(jù)通 過鎖存器時(shí)的扭曲。過鎖存器時(shí)的扭曲。3.2 MIPS的基本流水線112112193193(7) (7) 相關(guān)問題相關(guān)問題 如果流水線中的指令相互獨(dú)立,則可以充分如果流水線中的指令相互獨(dú)立,則可以充分 發(fā)揮流水線的性能

58、。但在實(shí)際中,指令間可能會(huì)發(fā)揮流水線的性能。但在實(shí)際中,指令間可能會(huì) 是相互依賴,這會(huì)降低流水線的性能。下一節(jié)介是相互依賴,這會(huì)降低流水線的性能。下一節(jié)介 紹如何解決相關(guān)問題。紹如何解決相關(guān)問題。 鎖存器中可以進(jìn)行兩級(jí)邏輯運(yùn)算而不增延遲時(shí)鎖存器中可以進(jìn)行兩級(jí)邏輯運(yùn)算而不增延遲時(shí) 間。這樣每個(gè)流水段中的兩級(jí)邏輯可以與鎖存間。這樣每個(gè)流水段中的兩級(jí)邏輯可以與鎖存 器重疊,從而能隱藏鎖存器開銷的絕大部分。器重疊,從而能隱藏鎖存器開銷的絕大部分。3.2 MIPS的基本流水線1131131931933.3流水線中的相關(guān)1相關(guān)的概念 流水線中的相關(guān)流水線中的相關(guān)是指相鄰或相近的兩條指是指相鄰或相近的兩條指

59、令因存在某種關(guān)聯(lián),后一條指令不能在原指定令因存在某種關(guān)聯(lián),后一條指令不能在原指定的時(shí)鐘周期開始執(zhí)行的時(shí)鐘周期開始執(zhí)行。 結(jié)構(gòu)相關(guān)結(jié)構(gòu)相關(guān) 當(dāng)硬件資源滿足不了同時(shí)重疊執(zhí)行的指當(dāng)硬件資源滿足不了同時(shí)重疊執(zhí)行的指 令的要求,而發(fā)生資源沖突時(shí),就發(fā)生令的要求,而發(fā)生資源沖突時(shí),就發(fā)生了結(jié)了結(jié) 構(gòu)相關(guān)。構(gòu)相關(guān)。2相關(guān)的分類第三章 流水線技術(shù)114114193193 數(shù)據(jù)相關(guān)數(shù)據(jù)相關(guān) 當(dāng)一條指令需要用到前面某條指令的結(jié)當(dāng)一條指令需要用到前面某條指令的結(jié) 果,從而不能重疊執(zhí)行時(shí),就發(fā)生了果,從而不能重疊執(zhí)行時(shí),就發(fā)生了數(shù)據(jù)相數(shù)據(jù)相 關(guān)關(guān)。 控制相關(guān)控制相關(guān) 當(dāng)流水線遇到分支指令和其他能夠改變當(dāng)流水線遇到分支

60、指令和其他能夠改變 PCPC值的指令時(shí),就會(huì)發(fā)生值的指令時(shí),就會(huì)發(fā)生控制相關(guān)控制相關(guān)。3幾個(gè)問題 相關(guān)有可能會(huì)使流水線停頓。相關(guān)有可能會(huì)使流水線停頓。3.3 流水線中的相關(guān)115115193193在本章中,我們?cè)诒菊轮?,我們約定:約定: 當(dāng)一條指令被暫停時(shí),暫停在其后發(fā)射(流出)的指令,但繼續(xù)執(zhí)行在其前發(fā)射的 指令。暫停期間,流水線不會(huì)取新指令。 消除相關(guān)的消除相關(guān)的基本方法:基本方法: 讓流水線中的某些指令暫停,而讓其它讓流水線中的某些指令暫停,而讓其它 指令繼續(xù)執(zhí)行。指令繼續(xù)執(zhí)行。3.3 流水線中的相關(guān)1161161931933.3.1 流水線中的結(jié)構(gòu)相關(guān)2. 如果某種指令組合因資源沖突而

溫馨提示

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

評(píng)論

0/150

提交評(píng)論