第2章 計(jì)算機(jī)指令集結(jié)構(gòu)_第1頁
第2章 計(jì)算機(jī)指令集結(jié)構(gòu)_第2頁
第2章 計(jì)算機(jī)指令集結(jié)構(gòu)_第3頁
第2章 計(jì)算機(jī)指令集結(jié)構(gòu)_第4頁
第2章 計(jì)算機(jī)指令集結(jié)構(gòu)_第5頁
已閱讀5頁,還剩205頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1 1/206/206第3章 流水線技術(shù)2 2/206/2063 3/206/2063.1重疊執(zhí)行和先行控制3.2流水線的基本概念3.3流水線的性能指標(biāo)3.4流水線的相關(guān)與沖突 3.5流水線的實(shí)現(xiàn)3.6向量處理機(jī)4 4/206/2061. 將一條指令的執(zhí)行過程分為三個(gè)階段3.1 重疊執(zhí)行和先行控制3.1.1 重疊執(zhí)行 取取指指令令 分分 析析 執(zhí)執(zhí) 行行 時(shí)時(shí)間間t 一條指令的執(zhí)行過程一條指令的執(zhí)行過程 5 5/206/2063.1 重疊執(zhí)行和先行控制取指令q按照指令計(jì)數(shù)器按照指令計(jì)數(shù)器PCPC的內(nèi)容訪問主存,取出一條指令的內(nèi)容訪問主存,取出一條指令 送到指令寄存器。送到指令寄存器。指令分析q

2、對指令的操作碼進(jìn)行譯碼,按照給定的尋址方式和對指令的操作碼進(jìn)行譯碼,按照給定的尋址方式和 地址字段形成操作數(shù)的地址,并用這個(gè)地址讀取操地址字段形成操作數(shù)的地址,并用這個(gè)地址讀取操 作數(shù)。作數(shù)。指令執(zhí)行q按照操作碼的要求,完成指令規(guī)定的功能。按照操作碼的要求,完成指令規(guī)定的功能。 在指令的執(zhí)行過程中還要更新PC值,為讀取下一 條指令做好準(zhǔn)備。 6 6/206/2063.1 重疊執(zhí)行和先行控制2. 三種執(zhí)行方式順序執(zhí)行方式一次重疊執(zhí)行方式二次重疊執(zhí)行方式 7 7/206/2063.1 重疊執(zhí)行和先行控制執(zhí)行n條指令所花的時(shí)間 取取指指令令k 分分析析k 執(zhí)執(zhí)行行k 取取指指令令k+1 分分析析k+

3、1 執(zhí)執(zhí)行行k+1 3. 順序執(zhí)行方式指令的執(zhí)行過程niiiitttT1)(執(zhí)行分析取指令8 8/206/2063.1 重疊執(zhí)行和先行控制如果取指令、指令分析和指令執(zhí)行的時(shí)間相等, 都是t,則 T=3nt 優(yōu)點(diǎn)q控制簡單,節(jié)省設(shè)備??刂坪唵危?jié)省設(shè)備。主要缺點(diǎn)q 處理機(jī)執(zhí)行指令的速度慢處理機(jī)執(zhí)行指令的速度慢q 功能部件的利用率很低功能部件的利用率很低9 9/206/2063.1 重疊執(zhí)行和先行控制 取取指指令令 k 分分析析 k 執(zhí)執(zhí)行行 k 取取指指令令 k+1 分分析析k+1 執(zhí)執(zhí)行行 k+1 取取指指令令 k+2 分分析析k+2 執(zhí)執(zhí)行行k+2 4. 一次重疊執(zhí)行方式 指令的執(zhí)行過程執(zhí)行

4、第k條指令與取第k+l條指令同時(shí)進(jìn)行。(一種最簡單的重疊方式)(一種最簡單的重疊方式) 1010/206/2063.1 重疊執(zhí)行和先行控制如果執(zhí)行一條指令的3個(gè)階段的時(shí)間相等,都是 t,則執(zhí)行n條指令所花的時(shí)間為 T=(1+2n)t 優(yōu)點(diǎn)q程序的執(zhí)行時(shí)間減少了近程序的執(zhí)行時(shí)間減少了近1/31/3。q功能部件的利用率明顯提高。功能部件的利用率明顯提高。缺點(diǎn)q需要增加一些硬件,控制過程變復(fù)雜了。需要增加一些硬件,控制過程變復(fù)雜了。1111/206/2063.1 重疊執(zhí)行和先行控制 取取指指令令k 分分析析k 執(zhí)執(zhí)行行k 取取指指令令k+1 分分析析k+1 執(zhí)執(zhí)行行k+1 取取指指令令k+2 分分析

5、析k+2 執(zhí)執(zhí)行行k+2 5. 二次重疊執(zhí)行方式 指令的執(zhí)行過程 取第k+l條指令提前到與分析第k條指令同時(shí)進(jìn)行,分析第k+l條指令與執(zhí)行第k條指令同時(shí)進(jìn)行。 1212/206/2063.1 重疊執(zhí)行和先行控制如果執(zhí)行一條指令的3個(gè)階段的時(shí)間相等,都是 t,則執(zhí)行n條指令所花的時(shí)間為 T= (2+n)t 優(yōu)點(diǎn)q與順序執(zhí)行方式相比,執(zhí)行時(shí)間縮短了近與順序執(zhí)行方式相比,執(zhí)行時(shí)間縮短了近2/32/3。q部件的利用率有了進(jìn)一步的提高。部件的利用率有了進(jìn)一步的提高。缺點(diǎn)q需要增加更多的硬件。需要增加更多的硬件。q需要設(shè)置獨(dú)立的取指令部件、指令分析部件和指令執(zhí)需要設(shè)置獨(dú)立的取指令部件、指令分析部件和指令執(zhí)

6、行部件。行部件。1313/206/206二次重疊執(zhí)行可使三條指令同時(shí)執(zhí)行,但重疊執(zhí)行的三條指令可能都要訪問主存:取指令時(shí)要訪問主存,分析指令時(shí)可能要從主存中取操作數(shù),執(zhí)行時(shí)可能要向主存中寫運(yùn)算結(jié)果。這會引起訪問主存的沖突問題。1414/206/2063.1 重疊執(zhí)行和先行控制訪問主存的沖突問題 4種解決方法q1 1、設(shè)置兩個(gè)獨(dú)立編址的存儲器:設(shè)置兩個(gè)獨(dú)立編址的存儲器: 指令存儲器指令存儲器(存放指令)、(存放指令)、數(shù)據(jù)存儲器數(shù)據(jù)存儲器(存放數(shù)據(jù))(存放數(shù)據(jù))q2 2、指令和數(shù)據(jù)仍然混合存放在同一個(gè)主存中,但設(shè)置指令和數(shù)據(jù)仍然混合存放在同一個(gè)主存中,但設(shè)置 兩個(gè)兩個(gè)CacheCache: 指令

7、指令CacheCache、數(shù)據(jù)、數(shù)據(jù)CacheCache 程序空間和數(shù)據(jù)空間相互獨(dú)立的系統(tǒng)結(jié)構(gòu)被稱為程序空間和數(shù)據(jù)空間相互獨(dú)立的系統(tǒng)結(jié)構(gòu)被稱為哈佛哈佛結(jié)構(gòu)結(jié)構(gòu)。 q 3、指令和數(shù)據(jù)仍然混合存放在同一個(gè)主存中,但主存采指令和數(shù)據(jù)仍然混合存放在同一個(gè)主存中,但主存采用用 多體交叉結(jié)構(gòu)。多體交叉結(jié)構(gòu)。 (有一定的局限性)(有一定的局限性)1515/206/2063.1 重疊執(zhí)行和先行控制q4、在主存和指令分析部件之間增設(shè)在主存和指令分析部件之間增設(shè)指令緩沖站指令緩沖站 (又被稱為(又被稱為先行指令緩沖站先行指令緩沖站 )n主存不是滿負(fù)荷工作的,插空從主存中預(yù)先把后面將主存不是滿負(fù)荷工作的,插空從主存

8、中預(yù)先把后面將要執(zhí)行的指令取出來,存放到指令緩沖站中。要執(zhí)行的指令取出來,存放到指令緩沖站中。n在在“取指令取指令”階段從指令緩沖站讀取指令(如果指令階段從指令緩沖站讀取指令(如果指令緩沖站不為空),而不用去訪問主存。緩沖站不為空),而不用去訪問主存。 1616/206/2063.1 重疊執(zhí)行和先行控制6. 先行指令緩沖站先行指令緩沖站的組成 先先行行程程序序計(jì)計(jì)數(shù)數(shù)器器PC1 現(xiàn)現(xiàn)行行程程序序計(jì)計(jì)數(shù)數(shù)器器PC 指指令令分分析析部部件件 指指令令寄寄存存器器IR 控控制制邏邏輯輯 主主存存控控制制器器 指指令令緩緩沖沖 存存 儲儲 區(qū)區(qū) “先行”把后繼指令從主存中取出來1717/206/206

9、3.1 重疊執(zhí)行和先行控制指令緩沖存儲區(qū)和相應(yīng)的控制邏輯q按隊(duì)列方式工作。按隊(duì)列方式工作。q只要指令緩沖站不滿,它就自動地向主存控制器發(fā)只要指令緩沖站不滿,它就自動地向主存控制器發(fā) 取指令請求,不斷地預(yù)取指令。取指令請求,不斷地預(yù)取指令。指令分析部件q每分析完一條指令,就自動向指令緩沖站發(fā)出取下每分析完一條指令,就自動向指令緩沖站發(fā)出取下 一條指令的請求。指令取出之后就把指令緩沖站中一條指令的請求。指令取出之后就把指令緩沖站中 的該指令作廢。的該指令作廢。q指令緩沖站中存放的指令的條數(shù)是動態(tài)變化的。指令緩沖站中存放的指令的條數(shù)是動態(tài)變化的。兩個(gè)程序計(jì)數(shù)器1818/206/2063.1 重疊執(zhí)行

10、和先行控制q先行程序計(jì)數(shù)器先行程序計(jì)數(shù)器PC1PC1:用于從主存預(yù)取指令;用于從主存預(yù)取指令;q現(xiàn)行程序計(jì)數(shù)器現(xiàn)行程序計(jì)數(shù)器PCPC:用來記錄指令分析部件當(dāng)前正在用來記錄指令分析部件當(dāng)前正在 分析的指令的地址。分析的指令的地址。7. 先行控制方式中的一次重疊執(zhí)行 若取指令階段的時(shí)間很短,可以把這個(gè)操作合并 到分析指令中。上述的二次重疊就演變成了一次重疊q把一條指令的執(zhí)行過程分為把一條指令的執(zhí)行過程分為分析分析和和執(zhí)行執(zhí)行兩個(gè)階段;兩個(gè)階段;q讓前一條指令的讓前一條指令的執(zhí)行執(zhí)行與后一條指令的與后一條指令的分析分析重疊進(jìn)行。重疊進(jìn)行。 1919/206/2063.1 重疊執(zhí)行和先行控制 分析分析

11、 k 執(zhí)行執(zhí)行 k 分析分析k+1 執(zhí)行執(zhí)行k+1 分析分析k+2 執(zhí)行執(zhí)行k+2 如果指令分析和指令執(zhí)行所需要的時(shí)間都是t,則采用這種方式連續(xù)執(zhí)行n條指令所需要的時(shí)間為: T= (1+n)t控制方式比較簡單,得到了廣泛應(yīng)用。2020/206/2063.1 重疊執(zhí)行和先行控制 分分析析 k 執(zhí)執(zhí)行行 k 分分析析 k+1 執(zhí)執(zhí)行行 k+1 分分析析 k+2 執(zhí)執(zhí)行行 k+2 執(zhí)執(zhí)行行 k+3 分分析析 k+3 當(dāng)指令分析和指令執(zhí)行所需要的時(shí)間不相等時(shí), 其執(zhí)行過程為: 指令分析部件和指令執(zhí)行部件存在相互等待的時(shí)候,會出指令分析部件和指令執(zhí)行部件存在相互等待的時(shí)候,會出現(xiàn)部件空閑的情況。現(xiàn)部件空

12、閑的情況。2121/206/2063.1 重疊執(zhí)行和先行控制1. 先行控制技術(shù):緩沖技術(shù)和預(yù)處理技術(shù)的結(jié)合緩沖技術(shù):在工作速度不固定的兩個(gè)功能部件之間設(shè)置緩沖器,用以平滑它們的工作。預(yù)處理技術(shù):預(yù)取指令、對指令進(jìn)行加工以及預(yù)取操作數(shù)等。2. 采用先行控制方式的處理機(jī)結(jié)構(gòu) 3.1.2 先行控制2222/206/2063.1 重疊執(zhí)行和先行控制 主主 存存 儲儲 器器 存存 儲儲 控控 制制 器器 先先行行指指令令緩緩沖沖站站 先先行行讀讀數(shù)數(shù)站站 后后行行寫寫數(shù)數(shù)站站 指指令令分分析析部部件件 先先行行操操作作站站 運(yùn)運(yùn)算算控控制制器器 運(yùn)運(yùn)算算器器 通通 用用 寄寄 存存 器器 2323/20

13、6/2063.1 重疊執(zhí)行和先行控制設(shè)置了4個(gè)緩沖站(平滑主存、指令分析部件、運(yùn)算器三者之間的工作)(平滑主存、指令分析部件、運(yùn)算器三者之間的工作)q先行指令緩沖站(前面已講述)先行指令緩沖站(前面已講述)q先行操作站先行操作站q先行讀數(shù)站先行讀數(shù)站q后行寫數(shù)站后行寫數(shù)站 四站共同特點(diǎn):四站共同特點(diǎn):按先進(jìn)先出的方式工作,而且都是由一按先進(jìn)先出的方式工作,而且都是由一 組若干個(gè)能快速訪問的存儲單元和相關(guān)的控制邏組若干個(gè)能快速訪問的存儲單元和相關(guān)的控制邏 輯組成。輯組成。2424/206/2063.1 重疊執(zhí)行和先行控制先行操作站q在指令分析部件和運(yùn)算器之間提供緩沖在指令分析部件和運(yùn)算器之間提供

14、緩沖q 先行:先行:因?yàn)槠渲械闹噶顚τ谶\(yùn)算器正在執(zhí)行的因?yàn)槠渲械闹噶顚τ谶\(yùn)算器正在執(zhí)行的 指令來說是后續(xù)的,但卻被指令來說是后續(xù)的,但卻被先行先行取出并預(yù)處理。取出并預(yù)處理。指令分析部件 q從先行指令緩沖站取指令,并進(jìn)行預(yù)處理,加工成從先行指令緩沖站取指令,并進(jìn)行預(yù)處理,加工成 統(tǒng)一格式的統(tǒng)一格式的RRRR型操作命令型操作命令,然后送入先行操作站。,然后送入先行操作站。 指令分析部件對于不同指令做不同的處理如下:指令分析部件對于不同指令做不同的處理如下:2525/206/2063.1 重疊執(zhí)行和先行控制q寄存器寄存器- -寄存器型(寄存器型(RRRR型)指令:型)指令:可以不作任何處理,直可以

15、不作任何處理,直 接送入。接送入。q操作數(shù)來自主存的運(yùn)算指令:操作數(shù)來自主存的運(yùn)算指令:計(jì)算出操作數(shù)的有效地計(jì)算出操作數(shù)的有效地 址,并將該地址送入先行讀數(shù)站的某個(gè)存儲單元(設(shè)其址,并將該地址送入先行讀數(shù)站的某個(gè)存儲單元(設(shè)其地址為地址為i i),同時(shí)用),同時(shí)用i i替換原來指令中的操作數(shù)地址碼字段。替換原來指令中的操作數(shù)地址碼字段。q向主存向主存“寫數(shù)寫數(shù)”的指令:的指令:把形成的有效地址送入后行寫把形成的有效地址送入后行寫 數(shù)站的某個(gè)存儲單元(設(shè)其地址為數(shù)站的某個(gè)存儲單元(設(shè)其地址為j j),同時(shí)用),同時(shí)用j j替換原替換原來指令中的目標(biāo)地址碼字段。來指令中的目標(biāo)地址碼字段。q立即數(shù)型

16、指令:立即數(shù)型指令:把指令中的立即數(shù)送入先行讀數(shù)站(設(shè)為把指令中的立即數(shù)送入先行讀數(shù)站(設(shè)為第第l l個(gè)存儲單元),同樣也用個(gè)存儲單元),同樣也用l l替換原來指令中的立即數(shù)字替換原來指令中的立即數(shù)字 段。段。2626/206/2063.1 重疊執(zhí)行和先行控制運(yùn)算器q從先行操作站取出從先行操作站取出RRRR型型操作命令并執(zhí)行。操作命令并執(zhí)行。q每執(zhí)行完一條,將運(yùn)算結(jié)果寫入通用寄存器組或者每執(zhí)行完一條,將運(yùn)算結(jié)果寫入通用寄存器組或者 后行寫數(shù)站。后行寫數(shù)站。q繼續(xù)執(zhí)行先行操作站中的后續(xù)命令。繼續(xù)執(zhí)行先行操作站中的后續(xù)命令。 先行讀數(shù)站q作用:作用:接收指令分析部件送來的訪問主存的有效地接收指令分

17、析部件送來的訪問主存的有效地 址,按順序依次從主存讀取操作數(shù),提供給運(yùn)算器址,按順序依次從主存讀取操作數(shù),提供給運(yùn)算器 使用。使用。q先行:先行:因?yàn)閷τ谡趫?zhí)行的指令來說,先行讀數(shù)站因?yàn)閷τ谡趫?zhí)行的指令來說,先行讀數(shù)站 中的操作數(shù)是中的操作數(shù)是先行先行取出的。取出的。2727/206/2063.1 重疊執(zhí)行和先行控制先行讀數(shù)站是一般是按先進(jìn)先出的方式工作,先行讀數(shù)站是一般是按先進(jìn)先出的方式工作, 每個(gè)存儲每個(gè)存儲單元由單元由3 3部分部分組成:組成: 先行地址字段、先行操作數(shù)字段、標(biāo)志字段先行地址字段、先行操作數(shù)字段、標(biāo)志字段n每當(dāng)從指令分析部件接收有效地址時(shí),將之放每當(dāng)從指令分析部件接收

18、有效地址時(shí),將之放入先行地址字段,并將地址有效標(biāo)志置位。入先行地址字段,并將地址有效標(biāo)志置位。n等到該單元成為隊(duì)列的第一項(xiàng)時(shí),先行讀數(shù)站等到該單元成為隊(duì)列的第一項(xiàng)時(shí),先行讀數(shù)站會用該地址向主存發(fā)出讀請求,把取來的操作數(shù)會用該地址向主存發(fā)出讀請求,把取來的操作數(shù)放入該單元的先行操作數(shù)字段,同時(shí)將數(shù)據(jù)有效標(biāo)放入該單元的先行操作數(shù)字段,同時(shí)將數(shù)據(jù)有效標(biāo)志置位。志置位。n當(dāng)以后運(yùn)算器需要該操作數(shù)時(shí),就可以直接從當(dāng)以后運(yùn)算器需要該操作數(shù)時(shí),就可以直接從先行讀數(shù)站取得,而不必去訪問主存。先行讀數(shù)站取得,而不必去訪問主存。2828/206/2063.1 重疊執(zhí)行和先行控制后行寫數(shù)站q作用:作用:接收從運(yùn)算器

19、送來的結(jié)果數(shù)據(jù),并負(fù)責(zé)將之接收從運(yùn)算器送來的結(jié)果數(shù)據(jù),并負(fù)責(zé)將之 寫入主存。寫入主存。q后行:后行:因?yàn)檎驹谶\(yùn)算器的角度來看,結(jié)果數(shù)據(jù)不是在因?yàn)檎驹谶\(yùn)算器的角度來看,結(jié)果數(shù)據(jù)不是在相應(yīng)的指令運(yùn)算完后立即寫入主存,而是由后行寫數(shù)相應(yīng)的指令運(yùn)算完后立即寫入主存,而是由后行寫數(shù)站站滯后滯后寫入的。寫入的。q每一個(gè)存儲單元由每一個(gè)存儲單元由3 3部分部分組成:組成: 后行地址字段、后行數(shù)據(jù)字段、標(biāo)志字段后行地址字段、后行數(shù)據(jù)字段、標(biāo)志字段 每當(dāng)從運(yùn)算器接收數(shù)據(jù)時(shí),將之放入后行數(shù)據(jù)字每當(dāng)從運(yùn)算器接收數(shù)據(jù)時(shí),將之放入后行數(shù)據(jù)字段,并把相應(yīng)的數(shù)據(jù)有效標(biāo)志置位。后行寫數(shù)站的控段,并把相應(yīng)的數(shù)據(jù)有效標(biāo)志置位。后

20、行寫數(shù)站的控制邏輯自動向主存發(fā)出寫數(shù)請求。當(dāng)寫數(shù)據(jù)操作完成制邏輯自動向主存發(fā)出寫數(shù)請求。當(dāng)寫數(shù)據(jù)操作完成后,也要置位有關(guān)標(biāo)志。后,也要置位有關(guān)標(biāo)志。2929/206/2063.1 重疊執(zhí)行和先行控制3. 采用先行控制后的一次重疊執(zhí)行 分析分析 k 執(zhí)行執(zhí)行 k 分析分析k+1 執(zhí)行執(zhí)行k+1 分析分析k+2 執(zhí)行執(zhí)行k+2 執(zhí)行執(zhí)行k+3 分析分析k+3 指令分析部件在不間斷地分析指令,而指令執(zhí)行部件則在指令分析部件在不間斷地分析指令,而指令執(zhí)行部件則在不間斷地執(zhí)行指令,它們都始終處于忙碌狀態(tài)。不間斷地執(zhí)行指令,它們都始終處于忙碌狀態(tài)。3030/206/2063.1 重疊執(zhí)行和先行控制理想情況

21、下,指令執(zhí)行部件應(yīng)該是一直忙碌的。處理機(jī)連續(xù)執(zhí)行n條指令所需要的時(shí)間為niiniitttT111執(zhí)行執(zhí)行分析先行3131/206/2061. 工業(yè)生產(chǎn)流水線 下面通過一個(gè)例子來說明流水線的好處:3.2 流水線的基本概念3.3.2.1 什么是流水線3232/206/2061.1.產(chǎn)品生產(chǎn)流水線產(chǎn)品生產(chǎn)流水線(1) (1) 一個(gè)問題一個(gè)問題假設(shè)某產(chǎn)品的生產(chǎn)需要假設(shè)某產(chǎn)品的生產(chǎn)需要4 4道工序,該產(chǎn)品生產(chǎn)車間以道工序,該產(chǎn)品生產(chǎn)車間以前只有前只有1 1個(gè)工人,個(gè)工人,1 1套生產(chǎn)該產(chǎn)品的機(jī)器。該工人工套生產(chǎn)該產(chǎn)品的機(jī)器。該工人工作作8 8小時(shí),可以生產(chǎn)小時(shí),可以生產(chǎn)120120件(即每件(即每4 4

22、分鐘生產(chǎn)分鐘生產(chǎn)1 1件)。件)?,F(xiàn)車間主任希望將該產(chǎn)品的日產(chǎn)量提高到現(xiàn)車間主任希望將該產(chǎn)品的日產(chǎn)量提高到480480件,那件,那么他如何能夠?qū)崿F(xiàn)其目標(biāo)呢?么他如何能夠?qū)崿F(xiàn)其目標(biāo)呢? 3333/206/206(2) (2) 兩種解決方案兩種解決方案方案一:增加方案一:增加3 3名工人、名工人、3 3套設(shè)備。套設(shè)備。方案二:產(chǎn)品生產(chǎn)采用流水線方式,分為方案二:產(chǎn)品生產(chǎn)采用流水線方式,分為4 4道工序;道工序;增加增加3 3名工人,每人負(fù)責(zé)一道工序。名工人,每人負(fù)責(zé)一道工序。3434/206/206(3) (3) 兩種方案的工作過程對比兩種方案的工作過程對比兩種方案中,單件產(chǎn)品的生產(chǎn)時(shí)間均不變。兩

23、種方案中,單件產(chǎn)品的生產(chǎn)時(shí)間均不變。但在穩(wěn)定情況下,但在穩(wěn)定情況下,方案一:每方案一:每4 4分鐘,分鐘,4 4件產(chǎn)品同時(shí)進(jìn)入流水線,件產(chǎn)品同時(shí)進(jìn)入流水線,4 4件成件成品同時(shí)離開流水線,需要增加品同時(shí)離開流水線,需要增加3 3套設(shè)備。套設(shè)備。方案二:每分鐘,方案二:每分鐘,1 1件產(chǎn)品進(jìn)入流水線,件產(chǎn)品進(jìn)入流水線,1 1件成品離件成品離開流水線,不需要增加任何設(shè)備。開流水線,不需要增加任何設(shè)備。3535/206/206(4) (4) 方案二的主要特點(diǎn)方案二的主要特點(diǎn)每件產(chǎn)品還是要經(jīng)過每件產(chǎn)品還是要經(jīng)過4 4道工序處理,單件產(chǎn)品的加工道工序處理,單件產(chǎn)品的加工時(shí)間并沒有改變,但它將各個(gè)工人的操

24、作時(shí)間重疊時(shí)間并沒有改變,但它將各個(gè)工人的操作時(shí)間重疊在一起,使得每件產(chǎn)品的產(chǎn)出時(shí)間從表面上看是從在一起,使得每件產(chǎn)品的產(chǎn)出時(shí)間從表面上看是從原來的原來的4 4分鐘縮減到分鐘縮減到1 1分鐘,提高了產(chǎn)品的產(chǎn)出率。分鐘,提高了產(chǎn)品的產(chǎn)出率。3636/206/2063.2 流水線的基本概念2. 計(jì)算機(jī)流水線技術(shù)把一個(gè)重復(fù)的過程分解為若干個(gè)子過程,每個(gè)子過程由專門的功能部件來實(shí)現(xiàn)。把多個(gè)處理過程在時(shí)間上錯(cuò)開,依次通過各功能段,這樣,每個(gè)子過程就可以與其他的子過程并行進(jìn)行。3. 流水線中的每個(gè)子過程及其功能部件稱為流水線的級或段,段與段相互連接形成流水線。流水線的段數(shù)稱為流水線的深度。3737/206

25、/2063.2 流水線的基本概念4. 指令流水線 把指令的解釋過程分解為分析和執(zhí)行兩個(gè)子過程,并讓這兩個(gè)子過程分別用獨(dú)立的分析部件和執(zhí)行部件來實(shí)現(xiàn)。理想情況:速度提高一倍 4段指令流水線 取指令取指令 譯譯 碼碼 執(zhí)執(zhí) 行行 存結(jié)果存結(jié)果 入入 出出 3838/206/2063.2 流水線的基本概念5. 浮點(diǎn)加法流水線把流水線技術(shù)應(yīng)用于運(yùn)算的執(zhí)行過程,就形成了 運(yùn)算操作流水線,也稱為部件級流水線。把浮點(diǎn)加法的全過程分解為求階差、對階、尾數(shù) 相加、規(guī)格化4個(gè)子過程。 理想情況:速度提高3倍 求階差求階差 對對 階階 尾數(shù)相加尾數(shù)相加 規(guī)格化規(guī)格化 t t t t 入入 出出 6. 時(shí)空圖時(shí)空圖從

26、時(shí)間和空間兩個(gè)方面描述了流水線的工作過程。時(shí)空圖中,橫坐標(biāo)代表時(shí)間,縱坐標(biāo)代表流水線的各個(gè)段。 4段指令流水線的時(shí)空圖 取取指指令令 譯譯 碼碼 執(zhí)執(zhí) 行行 存存結(jié)結(jié)果果 空空間間 時(shí)時(shí)間間 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 5 5 5 5 6 6 5 6 6 (單單位位: t) 0 1 2 3 4 5 6 7 8 9 4040/206/2063.2 流水線的基本概念7. 流水技術(shù)的特點(diǎn)流水線把一個(gè)處理過程分解為若干個(gè)子過程(段),每個(gè)子過程由一個(gè)專門的功能部件來實(shí)現(xiàn)。流水線中各段的時(shí)間應(yīng)盡可能相等,否則將引起流水線堵塞、斷流。 時(shí)間長的段將成為時(shí)間長的段將成為流

27、水線的瓶頸。流水線的瓶頸。流水線每一個(gè)功能部件的后面都要有一個(gè)緩沖寄存器(鎖存器),稱為流水寄存器。q作用:作用:在相鄰的兩段之間傳送數(shù)據(jù),以保證提供后在相鄰的兩段之間傳送數(shù)據(jù),以保證提供后 面要用到的數(shù)據(jù),并把各段的處理工作相互隔離。面要用到的數(shù)據(jù),并把各段的處理工作相互隔離。4141/206/2063.2 流水線的基本概念流水技術(shù)適合于大量重復(fù)的時(shí)序過程,只有在輸入端不斷地提供任務(wù),才能充分發(fā)揮流水線的效率。 流水線需要有通過時(shí)間和排空時(shí)間。q通過時(shí)間:通過時(shí)間:第一個(gè)任務(wù)從進(jìn)入流水線到流出結(jié)果第一個(gè)任務(wù)從進(jìn)入流水線到流出結(jié)果 所需的時(shí)間。所需的時(shí)間。q排空時(shí)間:排空時(shí)間:最后一個(gè)任務(wù)從進(jìn)

28、入流水線到流出結(jié)最后一個(gè)任務(wù)從進(jìn)入流水線到流出結(jié) 果所需的時(shí)間。果所需的時(shí)間。4242/206/2063.2 流水線的基本概念 從不同的角度和觀點(diǎn),把流水線分成多種不同的種類。1. 單功能流水線與多功能流水線 (按照流水線所完成的功能來分類)(按照流水線所完成的功能來分類)單功能流水線:只能完成一種固定功能的流水線。多功能流水線:流水線的各段可以進(jìn)行不同的 連接,以實(shí)現(xiàn)不同的功能。例:例: ASCASC的多功能流水線的多功能流水線3.2.2 流水線的分類 求求 階階 差差 對對 階階 相相 加加 規(guī)規(guī)格格化化 相相 乘乘 累累 加加 輸輸 出出 1 2 3 4 6 5 7 8 輸輸 入入 輸輸

29、 入入 相相 加加 規(guī)規(guī)格格化化 輸輸 出出 輸輸 出出 累累 加加 相相 乘乘 輸輸 入入 求求 階階 差差 對對 階階 2 3 4 5 6 7 8 6 7 8 (b)浮浮點(diǎn)點(diǎn)連連接接 (a)分分段段 (c)定定乘乘連連接接 1 1 2 3 4 5 4444/206/2063.2 流水線的基本概念2. 靜態(tài)流水線與動態(tài)流水線(按照同一時(shí)間內(nèi)各段之間的連接方式對多功能流水線做(按照同一時(shí)間內(nèi)各段之間的連接方式對多功能流水線做進(jìn)一步的分類)進(jìn)一步的分類)靜態(tài)流水線:在同一時(shí)間內(nèi),多功能流水線中的 各段只能按同一種功能的連接方式工作。q對于靜態(tài)流水線來說,只有當(dāng)輸入的是一串相同的對于靜態(tài)流水線來說

30、,只有當(dāng)輸入的是一串相同的 運(yùn)算任務(wù)時(shí),流水的效率才能得到充分的發(fā)揮。運(yùn)算任務(wù)時(shí),流水的效率才能得到充分的發(fā)揮。例如:例如:ASCASC的的8 8段流水線段流水線4545/206/2063.2 流水線的基本概念動態(tài)流水線:在同一時(shí)間內(nèi),多功能流水線中的各段可以按照不同的方式連接,同時(shí)執(zhí)行多種功能。 動畫q優(yōu)點(diǎn)優(yōu)點(diǎn) 靈活,能夠提高流水線各段的使用率,從而靈活,能夠提高流水線各段的使用率,從而 提高處理速度。提高處理速度。q缺點(diǎn)缺點(diǎn) 控制復(fù)雜??刂茝?fù)雜。靜、動態(tài)流水線時(shí)空圖的對比4747/206/2063.2 流水線的基本概念3. 部件級、處理機(jī)級及處理機(jī)間流水線(按照流水的級別來進(jìn)行分類)(按照

31、流水的級別來進(jìn)行分類)部件級流水線(運(yùn)算操作流水線):把處理機(jī)的算術(shù)邏輯運(yùn)算部件分段,使得各種類型的運(yùn)算操作能夠按流水方式進(jìn)行。處理機(jī)級流水線(指令流水線):把指令的解釋執(zhí)行過程按照流水方式處理。把一條指令的執(zhí)行過程分解為若干個(gè)子過程,每個(gè)子過程在獨(dú)立的功能部件中執(zhí)行。 例如:前面的例如:前面的4 4段段指令流水線指令流水線4848/206/2063.2 流水線的基本概念處理機(jī)間流水線(宏流水線):它是由兩個(gè)或者 兩個(gè)以上的處理機(jī)串行連接起來,對同一數(shù)據(jù)流 進(jìn)行處理,每個(gè)處理機(jī)完成整個(gè)任務(wù)中的一部 分。 動畫解析 數(shù)據(jù)流數(shù)據(jù)流 處理機(jī)處理機(jī) 1 處理機(jī)處理機(jī) 2 處理機(jī)處理機(jī) n 存儲器存儲器

32、 存儲器存儲器 存儲器存儲器 任務(wù)任務(wù) 1 任務(wù)任務(wù) 2 任務(wù)任務(wù) n 4949/206/2063.2 流水線的基本概念4. 線性流水線與非線性流水線(按照流水線中是否有反饋回路來進(jìn)行分類)(按照流水線中是否有反饋回路來進(jìn)行分類)線性流水線:流水線的各段串行連接,沒有反饋回路。數(shù)據(jù)通過流水線中的各段時(shí),每一個(gè)段最多只流過一次。非線性流水線:流水線中除了有串行的連接外,還有反饋回路。 (舉例)非線性流水線的調(diào)度問題q確定什么時(shí)候向流水線引進(jìn)新的任務(wù),才能使該任務(wù)不確定什么時(shí)候向流水線引進(jìn)新的任務(wù),才能使該任務(wù)不會與先前進(jìn)入流水線的任務(wù)發(fā)生沖突會與先前進(jìn)入流水線的任務(wù)發(fā)生沖突爭用流水段。爭用流水段

33、。 5050/206/2063.2 流水線的基本概念5151/206/2063.2 流水線的基本概念5. 順序流水線與亂序流水線(根據(jù)任務(wù)流入和流出的順序是否相同來進(jìn)行分類(根據(jù)任務(wù)流入和流出的順序是否相同來進(jìn)行分類)順序流水線:流水線輸出端任務(wù)流出的順序與輸 入端任務(wù)流入的順序完全相同。每一個(gè)任務(wù)在流 水線的各段中是一個(gè)跟著一個(gè)順序流動的。亂序流水線:流水線輸出端任務(wù)流出的順序與輸 入端任務(wù)流入的順序可以不同,允許后進(jìn)入流水 線的任務(wù)先完成(從輸出端流出)。 也稱為無序流水線、錯(cuò)序流水線、異步流水線也稱為無序流水線、錯(cuò)序流水線、異步流水線5252/206/2063.2 流水線的基本概念6.

34、標(biāo)量處理機(jī)與向量流水處理機(jī) 把指令執(zhí)行部件中采用了流水線的處理機(jī)稱為流 水線處理機(jī)。標(biāo)量處理機(jī):處理機(jī)不具有向量數(shù)據(jù)表示和向量 指令,僅對標(biāo)量數(shù)據(jù)進(jìn)行流水處理。向量流水處理機(jī):具有向量數(shù)據(jù)表示和向量指令 的處理機(jī)。 向量數(shù)據(jù)表示和流水技術(shù)的結(jié)合。向量數(shù)據(jù)表示和流水技術(shù)的結(jié)合。5353/206/206 吞吐率:在單位時(shí)間內(nèi)流水線所完成的任務(wù)數(shù)量或輸 出結(jié)果的數(shù)量。3.3 流水線的性能指標(biāo)3.3.1 吞吐率KTnTP n:任務(wù)數(shù)Tk:處理完成n個(gè)任務(wù)所用的時(shí)間5454/206/2063.3 流水線的性能指標(biāo)1. 各段時(shí)間均相等的流水線各段時(shí)間均相等的流水線時(shí)空圖 S1 S2 S3 S4 空間空間

35、時(shí)間時(shí)間 1 (單位:單位:t) 1 1 1 2 2 2 2 3 3 3 3 n-1 n-1 n-1 n-1 n n n n kt (n-1)t Tk 5555/206/2063.3 流水線的性能指標(biāo)流水線完成n個(gè)連續(xù)任務(wù)所需要的總時(shí)間為(假設(shè)一條(假設(shè)一條k k段段線性流水線)線性流水線)Tkkt(n-1)t(kn-1)t 流水線的實(shí)際吞吐率tnknTP) 1(ttnknTPn11limmax最大吞吐率5656/206/2063.3 流水線的性能指標(biāo)最大吞吐率與實(shí)際吞吐率的關(guān)系 max1TPnknTPq流水線的實(shí)際吞吐率小于最大吞吐率,它除了與每流水線的實(shí)際吞吐率小于最大吞吐率,它除了與每個(gè)

36、段的時(shí)間有關(guān)外,還與流水線的段數(shù)個(gè)段的時(shí)間有關(guān)外,還與流水線的段數(shù)k k以及輸入到以及輸入到流水線中的任務(wù)數(shù)流水線中的任務(wù)數(shù)n n等有關(guān)。等有關(guān)。q只有當(dāng)只有當(dāng)n nk k時(shí),才有時(shí),才有TPTPTPTPmaxmax。 5757/206/2063.3 流水線的性能指標(biāo)2. 各段時(shí)間不完全相等的流水線 各段時(shí)間不等的流水線及其時(shí)空圖 舉例(時(shí)空圖)q一條一條4 4段段的流水線的流水線qS1S1,S3S3,S4S4各段的時(shí)間:各段的時(shí)間:t tqS2S2的時(shí)間:的時(shí)間:33t t (瓶頸段)瓶頸段)流水線中這種時(shí)間最長的段稱為流水線的瓶頸段。 5858/206/2063.3 流水線的性能指標(biāo)595

37、9/206/2063.3 流水線的性能指標(biāo)各段時(shí)間不等的流水線的實(shí)際吞吐率:( t ti i為第為第i i段的時(shí)間,共有段的時(shí)間,共有k k個(gè)段個(gè)段 )kikitttntnTP121),max() 1(流水線的最大吞吐率為),max(121maxktttTP6060/206/2063.3 流水線的性能指標(biāo) 例如:一條4段的流水線中,S1,S2,S4各段的時(shí)間都是t,唯有S3的時(shí)間是3t。 S1 S3 S2 S4 入入 出出 t t 3t t 最大吞吐率為tTP31max6161/206/2063.3 流水線的性能指標(biāo)3. 解決流水線瓶頸問題的常用方法 舉例細(xì)分瓶頸段 例如:例如:對前面的對前面

38、的4 4段段流水線流水線把瓶頸段把瓶頸段S S3 3細(xì)分為細(xì)分為3 3個(gè)子流水線段:個(gè)子流水線段:S S3a3a,S S3b3b,S S3c3c S1 S2 入入 出出 S4 t t t t t t S3a S3c S3b 改進(jìn)后的流水線的吞吐率改進(jìn)后的流水線的吞吐率 :tTP1max6262/206/2063.3 流水線的性能指標(biāo)重復(fù)設(shè)置瓶頸段q舉例:舉例:時(shí)空圖時(shí)空圖q缺點(diǎn):缺點(diǎn):控制邏輯比較復(fù)雜,所需的硬件增加了??刂七壿嫳容^復(fù)雜,所需的硬件增加了。例如:例如:對前面的對前面的4 4段流水線段流水線 重復(fù)設(shè)置瓶頸段重復(fù)設(shè)置瓶頸段S S3 3:S S3a3a,S S3b3b,S S3c3c

39、 S1 S3a S2 S3b 入入 出出 S3c S4 t t t 3t 6363/206/2063.3 流水線的性能指標(biāo) 段段 S3b S3a S2 S3c S4 時(shí)時(shí)間間 S1 1 6 2 3 4 5 7 1 2 3 4 5 6 7 8 9 8 9 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 重復(fù)設(shè)置瓶頸段后的時(shí)空圖重復(fù)設(shè)置瓶頸段后的時(shí)空圖6464/206/2063.3 流水線的性能指標(biāo)加速比:完成同樣一批任務(wù),不使用流水線所用的時(shí)間 與使用流水線所用的時(shí)間之比。假設(shè):不使用流水線(即順序執(zhí)行)所用的間假設(shè):不使用流水線(即順序執(zhí)行)所用的間為為T Ts s,使

40、用流水線后所用的時(shí)間為,使用流水線后所用的時(shí)間為T Tk k,則該流,則該流水線的加速比為水線的加速比為3.3.2 加速比ksTTS 6565/206/2063.3 流水線的性能指標(biāo)1. 流水線各段時(shí)間相等(都是t)一條k段流水線完成n個(gè)連續(xù)任務(wù) 所需要的時(shí)間為所需要的時(shí)間為 Tk = (kn-1)t順序執(zhí)行n個(gè)任務(wù) 所需要的時(shí)間:所需要的時(shí)間: Ts= nkt (解釋解釋)流水線的實(shí)際加速比為1nknkS6666/206/2063.3 流水線的性能指標(biāo)最大加速比knknkSn1limmax當(dāng)當(dāng)n nk k時(shí),時(shí),S S k k思考:思考:流水線的段數(shù)愈多愈好?流水線的段數(shù)愈多愈好? 6767

41、/206/2063.3 流水線的性能指標(biāo)2. 流水線的各段時(shí)間不完全相等時(shí)一條k段流水線完成n個(gè)連續(xù)任務(wù)的實(shí)際加速比為kikikiitttnttnS1211),max() 1(6868/206/2063.3 流水線的性能指標(biāo)效率:流水線中的設(shè)備實(shí)際使用時(shí)間與整個(gè)運(yùn)行時(shí)間 的比值,即流水線設(shè)備的利用率。 由于流水線有通過時(shí)間和排空時(shí)間,所以在連續(xù)由于流水線有通過時(shí)間和排空時(shí)間,所以在連續(xù)完成完成n n個(gè)個(gè)任務(wù)的時(shí)間內(nèi),各段并不是滿負(fù)荷地工作。任務(wù)的時(shí)間內(nèi),各段并不是滿負(fù)荷地工作。1. 各段時(shí)間相等各段的效率ei相同 (解釋)3.3.3 效率121nknTtneeekk6969/206/2063.

42、3 流水線的性能指標(biāo)整條流水線的效率為kkkTtknkkekeeeE1211nknE11limmaxnknEn 可以寫成 最高效率為 當(dāng)當(dāng)n nk k時(shí),時(shí),E E11。 7070/206/2063.3 流水線的性能指標(biāo)當(dāng)流水線各段時(shí)間相等時(shí),流水線的效率與吞吐率 成正比。 E=TPt 2. 流水線的效率是流水線的實(shí)際加速比S與它的最大加速 比k的比值。 kSE 當(dāng)當(dāng)E E=1=1時(shí),時(shí),S S= =k k,實(shí)際加速比達(dá)到最大。,實(shí)際加速比達(dá)到最大。7171/206/2063.3 流水線的性能指標(biāo)3. 從時(shí)空圖上看,效率就是n個(gè)任務(wù)占用的時(shí)空面積和 k個(gè)段總的時(shí)空面積之比。個(gè)段總的時(shí)空區(qū)區(qū)個(gè)任

43、務(wù)實(shí)際占用的時(shí)空knE kikikiitttntktnE1211),max() 1(當(dāng)各段時(shí)間不相等時(shí)7272/206/2063.3 流水線的性能指標(biāo) 例例3.13.1 設(shè)在下圖所示的靜態(tài)流水線上計(jì)算:設(shè)在下圖所示的靜態(tài)流水線上計(jì)算: 流水線的輸出可以直接返回輸入端或暫存于相應(yīng)的流水寄存器中,流水線的輸出可以直接返回輸入端或暫存于相應(yīng)的流水寄存器中,試計(jì)算其吞吐率、加速比和效率。試計(jì)算其吞吐率、加速比和效率。3.3.4 流水線的性能分析舉例)(41iiiBA 1 2 3 4 5 乘法乘法 加減法加減法 6 7 8 ( (每段的時(shí)間都為每段的時(shí)間都為t t) )7373/206/2063.3 流

44、水線的性能指標(biāo)解解:(1 1)選擇適合于流水線工作的算法選擇適合于流水線工作的算法q先計(jì)算先計(jì)算A A1 1+ +B B1 1、A A2 2+ +B B2 2、A A3 3+ +B B3 3和和A A4 4+ +B B4 4;q再計(jì)算再計(jì)算( (A A1 1+ +B B1 1) )( (A A2 2+ +B B2 2) )和和( (A A3 3+ +B B3 3) )( (A A4 4+ +B B4 4) );q然后求總的乘積結(jié)果。然后求總的乘積結(jié)果。(2 2)畫出時(shí)空圖)畫出時(shí)空圖 3.3 流水線的性能指標(biāo) 時(shí)間 段 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 9 1

45、0 11 12 13 14 15 16 17 18 輸 入 A1 B1 A2 B2 A3 B3 A4 B4 A B C D A B C D AB CD AB CD ABCD A=A1+B1 B=A2+B2 C=A3+B3 D=A4+B4 tTP18721836ttS25. 01884364E吞吐率加速比吞吐率7575/206/2063.3 流水線的性能指標(biāo)p在在1818個(gè)個(gè)t t時(shí)間中,給出了時(shí)間中,給出了7 7個(gè)個(gè)結(jié)果。吞吐率為:結(jié)果。吞吐率為: tTP187p 不用流水線,由于一次求和需不用流水線,由于一次求和需6 6t t,一次求積需一次求積需4 4t t, 則產(chǎn)生上述則產(chǎn)生上述7 7個(gè)

46、結(jié)果共需個(gè)結(jié)果共需(4 46+36+34 4)t t = 36 = 36t t 加速比為加速比為(3 3)計(jì)算性能)計(jì)算性能21836ttS7676/206/2063.3 流水線的性能指標(biāo)p 流水線的效率流水線的效率 25. 01884364E可以看出,在求解此問題時(shí),該流水線的效率不高。 (原因)7777/206/2063.3 流水線的性能指標(biāo)主要原因q多功能流水線在做某一種運(yùn)算時(shí),總有一些段是空多功能流水線在做某一種運(yùn)算時(shí),總有一些段是空閑的。閑的。q靜態(tài)流水線在進(jìn)行功能切換時(shí),要等前一種運(yùn)算全靜態(tài)流水線在進(jìn)行功能切換時(shí),要等前一種運(yùn)算全部流出流水線后才能進(jìn)行后面的運(yùn)算。部流出流水線后才能

47、進(jìn)行后面的運(yùn)算。q運(yùn)算之間存在關(guān)聯(lián),后面有些運(yùn)算要用到前面運(yùn)算運(yùn)算之間存在關(guān)聯(lián),后面有些運(yùn)算要用到前面運(yùn)算的結(jié)果。的結(jié)果。q流水線的工作過程有建立與排空部分。流水線的工作過程有建立與排空部分。 7878/206/2063.3 流水線的性能指標(biāo) 例例3.2 3.2 有一條動態(tài)多功能流水線由有一條動態(tài)多功能流水線由5 5段組成,加法用段組成,加法用1 1、3 3、4 4、5 5段,乘法用段,乘法用1 1、2 2、5 5段,第段,第2 2段的時(shí)間為段的時(shí)間為2 2t t,其余各段時(shí)間,其余各段時(shí)間均為均為t t,而且流水線的輸出可以直接返回輸入端或暫存于相應(yīng),而且流水線的輸出可以直接返回輸入端或暫存

48、于相應(yīng)的流水寄存器中。若在該流水線上計(jì)算的流水寄存器中。若在該流水線上計(jì)算: : 試計(jì)算其吞吐率、加速比和效率。試計(jì)算其吞吐率、加速比和效率。)(41iiiBA 1 2 3 4 5 乘法乘法 加法加法 t 2t t t t 7979/206/2063.3 流水線的性能指標(biāo)解解: : (1) (1) 選擇適合于流水線工作的算法選擇適合于流水線工作的算法p應(yīng)先計(jì)算應(yīng)先計(jì)算A A1 1B B1 1、A A2 2B B2 2、A A3 3B B3 3和和A A4 4B B4 4;p再計(jì)算再計(jì)算( (A A1 1B B1)1)( (A A2 2B B2)2) ( (A A3 3B B3)3)( (A A

49、4 4B B4)4);p然后求總的累加結(jié)果。然后求總的累加結(jié)果。(2) (2) 畫出時(shí)空圖畫出時(shí)空圖(3) (3) 計(jì)算性能計(jì)算性能8080/206/2063.3 流水線的性能指標(biāo) 時(shí)間 段 1 2 3 4 5 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 輸 入 A1 B1 A2 B2 A3 B3 A4 B4 A B C D A B C D AB CD AB CD ABCD A=A1B1 B=A2B2 C=A3B3 D=A4B4 18 56. 11828ttStTP18731. 01854344E8181/206/2063.3 流水線的性能指標(biāo)1.

50、瓶頸問題理想情況下,流水線在工作時(shí),其中的任務(wù)是同步地每一個(gè)時(shí)鐘周期往前流動一段。當(dāng)流水線各段不均勻時(shí),機(jī)器的時(shí)鐘周期取決于瓶頸段的延遲時(shí)間。在設(shè)計(jì)流水線時(shí),要盡可能使各段時(shí)間相等。2. 流水線的額外開銷p流水寄存器延遲流水寄存器延遲p時(shí)鐘偏移開銷時(shí)鐘偏移開銷3.3.5 流水線設(shè)計(jì)中的若干問題8282/206/2063.3 流水線的性能指標(biāo)流水寄存器需要建立時(shí)間和傳輸延遲q建立時(shí)間:建立時(shí)間:在觸發(fā)寫操作的時(shí)鐘信號到達(dá)之前,寄在觸發(fā)寫操作的時(shí)鐘信號到達(dá)之前,寄 存器輸入必須保持穩(wěn)定的時(shí)間。存器輸入必須保持穩(wěn)定的時(shí)間。q傳輸延遲:傳輸延遲:時(shí)鐘信號到達(dá)后到寄存器輸出可用的時(shí)時(shí)鐘信號到達(dá)后到寄存器

51、輸出可用的時(shí) 間。間。時(shí)鐘偏移開銷q流水線中,時(shí)鐘到達(dá)各流水寄存器的最大差值時(shí)間。流水線中,時(shí)鐘到達(dá)各流水寄存器的最大差值時(shí)間。(時(shí)鐘到達(dá)各流水寄存器的時(shí)間不是完全相同)(時(shí)鐘到達(dá)各流水寄存器的時(shí)間不是完全相同)8383/206/2063.3 流水線的性能指標(biāo)幾個(gè)問題q流水線并不能減少(而且一般是增加)單條指令的流水線并不能減少(而且一般是增加)單條指令的執(zhí)行時(shí)間,但卻能提高吞吐率。執(zhí)行時(shí)間,但卻能提高吞吐率。q增加流水線的深度(段數(shù))可以提高流水線的性能。增加流水線的深度(段數(shù))可以提高流水線的性能。q流水線的深度受限于流水線的額外開銷。流水線的深度受限于流水線的額外開銷。q當(dāng)時(shí)鐘周期小到與

52、額外開銷相同時(shí),流水已沒意義。當(dāng)時(shí)鐘周期小到與額外開銷相同時(shí),流水已沒意義。因?yàn)檫@時(shí)在每一個(gè)時(shí)鐘周期中已沒有時(shí)間來做有用因?yàn)檫@時(shí)在每一個(gè)時(shí)鐘周期中已沒有時(shí)間來做有用的工作。的工作。3. 沖突問題 流水線設(shè)計(jì)中要解決的重要問題之一。 如果后面的計(jì)算要用到前面計(jì)算的結(jié)果,則流水線的性能和效率會受到比較大的影響。8484/206/206介紹一個(gè)經(jīng)典的5段RISC流水線 首先討論在非流水情況下是如何實(shí)現(xiàn)的1. 一條指令的執(zhí)行過程分為以下5個(gè)周期:取指令周期(IF)qIR MemPC IR MemPC 。qPCPC值加值加4 4。(假設(shè)每條指令占。(假設(shè)每條指令占4 4個(gè)字節(jié))個(gè)字節(jié)) 3.4 流水線的

53、相關(guān)與沖突3.4.1 一個(gè)經(jīng)典的5段流水線8585/206/2063.4 流水線的相關(guān)與沖突指令譯碼/讀寄存器周期(ID)q譯碼。譯碼。q用用IRIR中的寄存器編號去訪問通用寄存器組,讀出所需中的寄存器編號去訪問通用寄存器組,讀出所需的操作數(shù)。的操作數(shù)。執(zhí)行/有效地址計(jì)算周期(EX) 不同指令所進(jìn)行的操作不同:q存儲器訪問指令:存儲器訪問指令:ALUALU把所指定的寄存器的內(nèi)容與偏把所指定的寄存器的內(nèi)容與偏 移量相加,形成用于訪存的有效地址。移量相加,形成用于訪存的有效地址。q寄存器寄存器寄存器寄存器ALUALU指令:指令:ALUALU按照操作碼指定的操按照操作碼指定的操 作對從通用寄存器組中

54、讀取的數(shù)據(jù)進(jìn)行運(yùn)算。作對從通用寄存器組中讀取的數(shù)據(jù)進(jìn)行運(yùn)算。8686/206/2063.4 流水線的相關(guān)與沖突q寄存器立即數(shù)寄存器立即數(shù)ALUALU指令:指令:ALUALU按照操作碼指定的操按照操作碼指定的操 作對從通用寄存器組中讀取的第一操作數(shù)和立即數(shù)作對從通用寄存器組中讀取的第一操作數(shù)和立即數(shù) 進(jìn)行運(yùn)算。進(jìn)行運(yùn)算。q分支指令:分支指令:ALUALU把偏移量與把偏移量與PCPC值相加,形成轉(zhuǎn)移目標(biāo)值相加,形成轉(zhuǎn)移目標(biāo) 的地址。同時(shí),對在前一個(gè)周期讀出的操作數(shù)進(jìn)行的地址。同時(shí),對在前一個(gè)周期讀出的操作數(shù)進(jìn)行 判斷,確定分支是否成功。判斷,確定分支是否成功。存儲器訪問分支完成周期(MEM) 該周

55、期處理的指令只有l(wèi)oad、store和分支指令。 其他類型的指令在此周期不做任何操作。8787/206/2063.4 流水線的相關(guān)與沖突qloadload和和storestore指令指令loadload指令:指令:用上一個(gè)周期計(jì)算出的有效地址從存儲器中用上一個(gè)周期計(jì)算出的有效地址從存儲器中 讀出相應(yīng)的數(shù)據(jù)。讀出相應(yīng)的數(shù)據(jù)。storestore指令:指令:把指定的數(shù)據(jù)寫入這個(gè)有效地址所指出的存把指定的數(shù)據(jù)寫入這個(gè)有效地址所指出的存 儲器單元。儲器單元。q分支指令分支指令 分支分支“成功成功”,就把轉(zhuǎn)移目標(biāo)地址送入,就把轉(zhuǎn)移目標(biāo)地址送入PCPC。 分支指令執(zhí)行完成。分支指令執(zhí)行完成。8888/20

56、6/2063.4 流水線的相關(guān)與沖突寫回周期(WB) ALU運(yùn)算指令和load指令在這個(gè)周期把結(jié)果數(shù)據(jù)寫入通用寄存器組。 ALUALU運(yùn)算指令:運(yùn)算指令:結(jié)果數(shù)據(jù)來自結(jié)果數(shù)據(jù)來自ALUALU。 loadload指令:指令:結(jié)果數(shù)據(jù)來自存儲器系統(tǒng)。結(jié)果數(shù)據(jù)來自存儲器系統(tǒng)。 在這個(gè)實(shí)現(xiàn)方案中:p分支指令需要分支指令需要4 4個(gè)時(shí)鐘個(gè)時(shí)鐘周期(如果把分支指令的執(zhí)行周期(如果把分支指令的執(zhí)行 提前到提前到IDID周期,則只需要周期,則只需要2 2個(gè)個(gè)周期)。周期)。pstorestore指令需要指令需要4 4個(gè)個(gè)周期。周期。p其他指令需要其他指令需要5 5個(gè)個(gè)周期才能完成。周期才能完成。2. 將上述實(shí)

57、現(xiàn)方案修改為流水線實(shí)現(xiàn)一個(gè)經(jīng)典的5段流水線 q每一個(gè)周期作為一個(gè)流水段。每一個(gè)周期作為一個(gè)流水段。q在各段之間加上鎖存器(流水寄存器)。在各段之間加上鎖存器(流水寄存器)。 9090/206/2063.4 流水線的相關(guān)與沖突5段流水線的兩種描述方式q第一種描述第一種描述(類似于時(shí)空圖)(類似于時(shí)空圖)第二種描述(按時(shí)間錯(cuò)開的數(shù)據(jù)通路序列)9292/206/206 3. 采用流水線方式實(shí)現(xiàn)時(shí),應(yīng)解決以下幾個(gè)問題:要保證不會在同一時(shí)鐘周期要求同一個(gè)功能段做 兩件不同的工作。例如,不能要求例如,不能要求ALUALU同時(shí)做有效地址計(jì)算和算術(shù)運(yùn)算。同時(shí)做有效地址計(jì)算和算術(shù)運(yùn)算。避免IF段的訪存(取指令)

58、與MEM段的訪存(讀/寫數(shù)據(jù))發(fā)生沖突。q可以采用分離的指令存儲器和數(shù)據(jù)存儲器;可以采用分離的指令存儲器和數(shù)據(jù)存儲器;q一般采用分離的指令一般采用分離的指令CacheCache和數(shù)據(jù)和數(shù)據(jù)CacheCache。ID段和WB段都要訪問同一寄存器文件。 IDID段:讀段:讀WBWB段:寫段:寫3.4 流水線的相關(guān)與沖突9393/206/2063.4 流水線的相關(guān)與沖突如何解決對同一寄存器的訪問沖突?如何解決對同一寄存器的訪問沖突? 把寫操作安排在時(shí)鐘周期的前半拍完成,把讀操作把寫操作安排在時(shí)鐘周期的前半拍完成,把讀操作安排在后半拍完成。安排在后半拍完成。考慮PC的問題q流水線為了能夠每個(gè)時(shí)鐘周期啟

59、動一條新的指令,流水線為了能夠每個(gè)時(shí)鐘周期啟動一條新的指令,就必須在每個(gè)時(shí)鐘周期進(jìn)行就必須在每個(gè)時(shí)鐘周期進(jìn)行PCPC值的加值的加4 4操作,并保留操作,并保留新的新的PCPC值。這種操作值。這種操作必須在必須在IFIF段完成,段完成,以便為取下以便為取下一條指令做好準(zhǔn)備。一條指令做好準(zhǔn)備。 (需設(shè)置一個(gè)專門的加法器)(需設(shè)置一個(gè)專門的加法器)q但分支指令也可能改變但分支指令也可能改變P PC C的值,而且是在的值,而且是在MEMMEM段段進(jìn)行,進(jìn)行,這會導(dǎo)致沖突。這會導(dǎo)致沖突。請考慮一下,如何處理分支指令?請考慮一下,如何處理分支指令?9494/206/2063.4 流水線的相關(guān)與沖突相關(guān):兩

60、條指令之間存在某種依賴關(guān)系。 如果兩條指令相關(guān),則它們就有可能不能在流如果兩條指令相關(guān),則它們就有可能不能在流水線中重疊執(zhí)行或者只能部分重疊執(zhí)行。水線中重疊執(zhí)行或者只能部分重疊執(zhí)行。相關(guān)有3種類型q數(shù)據(jù)相關(guān)(也稱真數(shù)據(jù)相關(guān))數(shù)據(jù)相關(guān)(也稱真數(shù)據(jù)相關(guān))q名相關(guān)名相關(guān)q控制相關(guān)控制相關(guān)3.4.2 相關(guān)與流水線沖突3.4.2.1 相關(guān)9595/206/2063.4 流水線的相關(guān)與沖突1. 數(shù)據(jù)相關(guān) 對于兩條指令i(在前,下同)和j(在后,下同),如果下述條件之一成立,則稱指令j與指令i數(shù)據(jù)相關(guān)。 q指令指令j j使用指令使用指令i i產(chǎn)生的結(jié)果;產(chǎn)生的結(jié)果;q指令指令j j與指令與指令k k數(shù)據(jù)相關(guān)

溫馨提示

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

評論

0/150

提交評論