版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1 1/206/206第3章 流水線技術(shù)張晨曦張晨曦 劉依劉依www.GotoS2 2/206/2063.1重疊執(zhí)行和先行控制3.2流水線的基本概念3.3流水線的性能指標(biāo)3.4流水線的相關(guān)與沖突 3.5流水線的實(shí)現(xiàn)3.6向量處理機(jī)3 3/206/2061. 將一條指令的執(zhí)行過程分為三個(gè)階段3.1 重疊執(zhí)行和先行控制3.1.1 重疊執(zhí)行 取取指指令令 分分 析析 執(zhí)執(zhí) 行行 時(shí)時(shí)間間t 一條指令的執(zhí)行過程一條指令的執(zhí)行過程 4 4/206/2063.1 重疊執(zhí)行和先行控制取指令q按照指令計(jì)數(shù)器按照指令計(jì)數(shù)器PCPC的內(nèi)容訪問主存,取出一條指令的內(nèi)容訪問主存,取出一條指令 送到指令寄存器。送到指令
2、寄存器。指令分析q對(duì)指令的操作碼進(jìn)行譯碼,按照給定的尋址方式和對(duì)指令的操作碼進(jìn)行譯碼,按照給定的尋址方式和 地址字段形成操作數(shù)的地址,并用這個(gè)地址讀取操地址字段形成操作數(shù)的地址,并用這個(gè)地址讀取操 作數(shù)。作數(shù)。指令執(zhí)行q按照操作碼的要求,完成指令規(guī)定的功能。按照操作碼的要求,完成指令規(guī)定的功能。 在指令的執(zhí)行過程中還要更新PC值,為讀取下一 條指令做好準(zhǔn)備。 5 5/206/2063.1 重疊執(zhí)行和先行控制w三種執(zhí)行方式順序執(zhí)行方式一次重疊執(zhí)行方式二次重疊執(zhí)行方式 6 6/206/2063.1 重疊執(zhí)行和先行控制執(zhí)行n條指令所花的時(shí)間 取取指指令令k 分分析析 k 執(zhí)執(zhí)行行 k 取取指指令令
3、k+1 分分析析 k+1 執(zhí)執(zhí)行行 k+1 w順序執(zhí)行方式指令的執(zhí)行過程niiiitttT1)(執(zhí)行分析取指令7 7/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 功能部件的利用率很低功能部件的利用率很低8 8/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 w一次重疊執(zhí)行方式 指
4、令的執(zhí)行過程執(zhí)行第k條指令與取第k+l條指令同時(shí)進(jìn)行。(一種最簡單的重疊方式)(一種最簡單的重疊方式) 9 9/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ù)雜了。1010/206/2063.1 重疊執(zhí)行和先行控制 取取指指令令k 分分析析k 執(zhí)執(zhí)行行k 取取指指令令k+1 分分析析k+1 執(zhí)執(zhí)行行k+1 取取指指令令
5、k+2 分分析析k+2 執(zhí)執(zhí)行行k+2 w二次重疊執(zhí)行方式 指令的執(zhí)行過程 取第k+l條指令提前到與分析第k條指令同時(shí)進(jìn)行,分析第k+l條指令與執(zhí)行第k條指令同時(shí)進(jìn)行。 1111/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ú)立的取指令部件、指令分析部
6、件和指令執(zhí)行部件。行部件。1212/206/2063.1 重疊執(zhí)行和先行控制訪問主存的沖突問題 4種解決方法q設(shè)置兩個(gè)獨(dú)立編址的存儲(chǔ)器:設(shè)置兩個(gè)獨(dú)立編址的存儲(chǔ)器: 指令存儲(chǔ)器指令存儲(chǔ)器(存放指令)、(存放指令)、數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器(存放數(shù)據(jù))(存放數(shù)據(jù))q指令和數(shù)據(jù)仍然混合存放在同一個(gè)主存中,但設(shè)置指令和數(shù)據(jù)仍然混合存放在同一個(gè)主存中,但設(shè)置 兩個(gè)兩個(gè)CacheCache: 指令指令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 指令和數(shù)據(jù)仍然混合存放在同一個(gè)主存中,但主存采用指
7、令和數(shù)據(jù)仍然混合存放在同一個(gè)主存中,但主存采用 多體交叉結(jié)構(gòu)。多體交叉結(jié)構(gòu)。 (有一定的局限性)(有一定的局限性)1313/206/2063.1 重疊執(zhí)行和先行控制q在主存和指令分析部件之間增設(shè)在主存和指令分析部件之間增設(shè)指令緩沖站指令緩沖站 (又被稱為(又被稱為先行指令緩沖站先行指令緩沖站 )n主存不是滿負(fù)荷工作的,插空從主存中預(yù)先把后面將主存不是滿負(fù)荷工作的,插空從主存中預(yù)先把后面將要執(zhí)行的指令取出來,存放到指令緩沖站中。要執(zhí)行的指令取出來,存放到指令緩沖站中。n在在“取指令取指令”階段從指令緩沖站讀取指令(如果指令階段從指令緩沖站讀取指令(如果指令緩沖站不為空),而不用去訪問主存。緩沖站
8、不為空),而不用去訪問主存。 1414/206/2063.1 重疊執(zhí)行和先行控制w先行指令緩沖站先行指令緩沖站的組成 先先行行程程序序計(jì)計(jì)數(shù)數(shù)器器PC1 現(xiàn)現(xiàn)行行程程序序計(jì)計(jì)數(shù)數(shù)器器PC 指指令令分分析析部部件件 指指令令寄寄存存器器IR 控控制制邏邏輯輯 主主存存控控制制器器 指指令令緩緩沖沖 存存 儲(chǔ)儲(chǔ) 區(qū)區(qū) 1515/206/2063.1 重疊執(zhí)行和先行控制指令緩沖存儲(chǔ)區(qū)和相應(yīng)的控制邏輯q按隊(duì)列方式工作。按隊(duì)列方式工作。q只要指令緩沖站不滿,它就自動(dòng)地向主存控制器發(fā)只要指令緩沖站不滿,它就自動(dòng)地向主存控制器發(fā) 取指令請(qǐng)求,不斷地預(yù)取指令。取指令請(qǐng)求,不斷地預(yù)取指令。指令分析部件q每分析完
9、一條指令,就自動(dòng)向指令緩沖站發(fā)出取下每分析完一條指令,就自動(dòng)向指令緩沖站發(fā)出取下 一條指令的請(qǐng)求。指令取出之后就把指令緩沖站中一條指令的請(qǐng)求。指令取出之后就把指令緩沖站中 的該指令作廢。的該指令作廢。q指令緩沖站中存放的指令的條數(shù)是動(dòng)態(tài)變化的。指令緩沖站中存放的指令的條數(shù)是動(dòng)態(tài)變化的。兩個(gè)程序計(jì)數(shù)器1616/206/2063.1 重疊執(zhí)行和先行控制q先行程序計(jì)數(shù)器先行程序計(jì)數(shù)器PC1PC1:用于從主存預(yù)取指令;用于從主存預(yù)取指令;q現(xiàn)行程序計(jì)數(shù)器現(xiàn)行程序計(jì)數(shù)器PCPC:用來記錄指令分析部件當(dāng)前正在用來記錄指令分析部件當(dāng)前正在 分析的指令的地址。分析的指令的地址。w先行控制方式中的一次重疊執(zhí)行
10、若取指令階段的時(shí)間很短,可以把這個(gè)操作合并 到分析指令中。上述的二次重疊就演變成了一次重疊q把一條指令的執(zhí)行過程分為把一條指令的執(zhí)行過程分為分析分析和和執(zhí)行執(zhí)行兩個(gè)階段;兩個(gè)階段;q讓前一條指令的讓前一條指令的執(zhí)行執(zhí)行與后一條指令的與后一條指令的分析分析重疊進(jìn)行。重疊進(jìn)行。 1717/206/2063.1 重疊執(zhí)行和先行控制 分析分析 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)用。1818/206/2063.1 重疊執(zhí)
11、行和先行控制 分分析析 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í)候,會(huì)出指令分析部件和指令執(zhí)行部件存在相互等待的時(shí)候,會(huì)出現(xiàn)部件空閑的情況?,F(xiàn)部件空閑的情況。1919/206/2063.1 重疊執(zhí)行和先行控制1. 先行控制技術(shù):緩沖技術(shù)和預(yù)處理技術(shù)的結(jié)合緩沖技術(shù):在工作速度不固定的兩個(gè)功能部件之間設(shè)置緩沖器,用以平滑它們的工作。預(yù)處理技術(shù):預(yù)取指令、對(duì)指令進(jìn)行加工以及預(yù)取操作數(shù)等。2. 采用先行控制方式的處理
12、機(jī)結(jié)構(gòu) 3.1.2 先行控制2020/206/2063.1 重疊執(zhí)行和先行控制 主主 存存 儲(chǔ)儲(chǔ) 器器 存存 儲(chǔ)儲(chǔ) 控控 制制 器器 先先行行指指令令緩緩沖沖站站 先先行行讀讀數(shù)數(shù)站站 后后行行寫寫數(shù)數(shù)站站 指指令令分分析析部部件件 先先行行操操作作站站 運(yùn)運(yùn)算算控控制制器器 運(yùn)運(yùn)算算器器 通通 用用 寄寄 存存 器器 2121/206/2063.1 重疊執(zhí)行和先行控制設(shè)置了4個(gè)緩沖站(平滑主存、指令分析部件、運(yùn)算器三者之間的工作)(平滑主存、指令分析部件、運(yùn)算器三者之間的工作)q先行指令緩沖站(前面已講述)先行指令緩沖站(前面已講述)q先行操作站先行操作站q先行讀數(shù)站先行讀數(shù)站q后行寫數(shù)站后
13、行寫數(shù)站 共同特點(diǎn):共同特點(diǎn):按先進(jìn)先出的方式工作,而且都是由一組若按先進(jìn)先出的方式工作,而且都是由一組若 干個(gè)能快速訪問的存儲(chǔ)單元和相關(guān)的控制邏干個(gè)能快速訪問的存儲(chǔ)單元和相關(guān)的控制邏 輯組成。輯組成。2222/206/2063.1 重疊執(zhí)行和先行控制先行操作站q在指令分析部件和運(yùn)算器之間提供緩沖在指令分析部件和運(yùn)算器之間提供緩沖q 先行:先行:因?yàn)槠渲械闹噶顚?duì)于運(yùn)算器正在執(zhí)行的因?yàn)槠渲械闹噶顚?duì)于運(yùn)算器正在執(zhí)行的 指令來說是后續(xù)的,但卻被指令來說是后續(xù)的,但卻被先行先行取出并預(yù)處理。取出并預(yù)處理。指令分析部件 q從先行指令緩沖站取指令,并進(jìn)行預(yù)處理,加工成從先行指令緩沖站取指令,并進(jìn)行預(yù)處理,
14、加工成 統(tǒng)一格式的統(tǒng)一格式的RRRR型操作命令型操作命令,然后送入先行操作站。,然后送入先行操作站。 q對(duì)于不同指令做不同的處理。對(duì)于不同指令做不同的處理。2323/206/2063.1 重疊執(zhí)行和先行控制q寄存器寄存器- -寄存器型(寄存器型(RRRR型)指令:型)指令:可以不作任何處理,直可以不作任何處理,直 接送入。接送入。q操作數(shù)來自主存的運(yùn)算指令:操作數(shù)來自主存的運(yùn)算指令:計(jì)算出操作數(shù)的有效地計(jì)算出操作數(shù)的有效地 址,并將該地址送入先行讀數(shù)站的某個(gè)存儲(chǔ)單元(設(shè)其址,并將該地址送入先行讀數(shù)站的某個(gè)存儲(chǔ)單元(設(shè)其地址為地址為i i),同時(shí)用),同時(shí)用i i替換原來指令中的操作數(shù)地址碼字段
15、。替換原來指令中的操作數(shù)地址碼字段。q向主存向主存“寫數(shù)寫數(shù)”的指令:的指令:把形成的有效地址送入后行寫把形成的有效地址送入后行寫 數(shù)站的某個(gè)存儲(chǔ)單元(設(shè)其地址為數(shù)站的某個(gè)存儲(chǔ)單元(設(shè)其地址為j j),同時(shí)用),同時(shí)用j j替換原替換原來指令中的目標(biāo)地址碼字段。來指令中的目標(biāo)地址碼字段。q立即數(shù)型指令:立即數(shù)型指令:把指令中的立即數(shù)送入讀數(shù)站(設(shè)為第把指令中的立即數(shù)送入讀數(shù)站(設(shè)為第l l 個(gè)存儲(chǔ)單元),同樣也用個(gè)存儲(chǔ)單元),同樣也用l l替換原來指令中的立即數(shù)字替換原來指令中的立即數(shù)字 段。段。2424/206/2063.1 重疊執(zhí)行和先行控制運(yùn)算器q從先行操作站取出從先行操作站取出RRRR
16、型型操作命令并執(zhí)行。操作命令并執(zhí)行。q每執(zhí)行完一條,將運(yùn)算結(jié)果寫入通用寄存器組或者每執(zhí)行完一條,將運(yùn)算結(jié)果寫入通用寄存器組或者 后行寫數(shù)站。后行寫數(shù)站。q繼續(xù)執(zhí)行先行操作站中的后續(xù)命令。繼續(xù)執(zhí)行先行操作站中的后續(xù)命令。 先行讀數(shù)站q作用:作用:接收指令分析部件送來的訪問主存的有效地接收指令分析部件送來的訪問主存的有效地 址,按順序依次從主存讀取操作數(shù),提供給運(yùn)算器址,按順序依次從主存讀取操作數(shù),提供給運(yùn)算器 使用。使用。q先行:先行:因?yàn)閷?duì)于正在執(zhí)行的指令來說,先行讀數(shù)站因?yàn)閷?duì)于正在執(zhí)行的指令來說,先行讀數(shù)站 中的操作數(shù)是中的操作數(shù)是先行先行取出的。取出的。2525/206/2063.1 重疊
17、執(zhí)行和先行控制q每個(gè)存儲(chǔ)單元由每個(gè)存儲(chǔ)單元由3 3部分部分組成:組成: 先行地址字段、先行操作數(shù)字段、標(biāo)志字段先行地址字段、先行操作數(shù)字段、標(biāo)志字段n每當(dāng)從指令分析部件接收有效地址時(shí),將之放每當(dāng)從指令分析部件接收有效地址時(shí),將之放入先行地址字段,并將地址有效標(biāo)志置位。入先行地址字段,并將地址有效標(biāo)志置位。n等到該單元成為隊(duì)列的第一項(xiàng)時(shí),先行讀數(shù)站等到該單元成為隊(duì)列的第一項(xiàng)時(shí),先行讀數(shù)站會(huì)用該地址向主存發(fā)出讀請(qǐng)求,把取來的操作數(shù)會(huì)用該地址向主存發(fā)出讀請(qǐng)求,把取來的操作數(shù)放入該單元的先行操作數(shù)字段,同時(shí)將數(shù)據(jù)有效標(biāo)放入該單元的先行操作數(shù)字段,同時(shí)將數(shù)據(jù)有效標(biāo)志置位。志置位。n當(dāng)以后運(yùn)算器需要該操作
18、數(shù)時(shí),就可以直接從當(dāng)以后運(yùn)算器需要該操作數(shù)時(shí),就可以直接從先行讀數(shù)站取得,而不必去訪問主存。先行讀數(shù)站取得,而不必去訪問主存。2626/206/2063.1 重疊執(zhí)行和先行控制后行寫數(shù)站q作用:作用:接收從運(yùn)算器送來的結(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è)存儲(chǔ)單元由每一個(gè)存儲(chǔ)單元由3 3部分部分組成:組成: 后行地址字段、后行數(shù)據(jù)字段
19、、標(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)志置位。后行寫數(shù)站的控制邏輯自動(dòng)向主存發(fā)出寫數(shù)請(qǐng)求。當(dāng)寫數(shù)據(jù)操作完成制邏輯自動(dòng)向主存發(fā)出寫數(shù)請(qǐng)求。當(dāng)寫數(shù)據(jù)操作完成后,也要置位有關(guān)標(biāo)志。后,也要置位有關(guān)標(biāo)志。2727/206/2063.1 重疊執(zhí)行和先行控制w采用先行控制后的一次重疊執(zhí)行 分析分析 k 執(zhí)行執(zhí)行 k 分析分析k+1 執(zhí)行執(zhí)行k+1 分析分析k+2 執(zhí)行執(zhí)行k+2 執(zhí)行執(zhí)行k+3 分析分析k+3 指令分析部件在不間斷地分析指令,而
20、指令執(zhí)行部件則在指令分析部件在不間斷地分析指令,而指令執(zhí)行部件則在不間斷地執(zhí)行指令,它們都始終處于忙碌狀態(tài)。不間斷地執(zhí)行指令,它們都始終處于忙碌狀態(tài)。2828/206/2063.1 重疊執(zhí)行和先行控制理想情況下,指令執(zhí)行部件應(yīng)該是一直忙碌的。處理機(jī)連續(xù)執(zhí)行n條指令所需要的時(shí)間為niiniitttT111執(zhí)行執(zhí)行分析先行2929/206/2061. 工業(yè)生產(chǎn)流水線 下面通過一個(gè)例子來說明流水線的好處:兩種方案兩種方案的工作過程對(duì)比流水線生產(chǎn)過程的抽象描述這種流水工作方式的主要特點(diǎn)3.2 流水線的基本概念3.2.1 什么是流水線3030/206/2063.2 流水線的基本概念w流水線技術(shù)把一個(gè)重復(fù)
21、的過程分解為若干個(gè)子過程,每個(gè)子過程由專門的功能部件來實(shí)現(xiàn)。把多個(gè)處理過程在時(shí)間上錯(cuò)開,依次通過各功能段,這樣,每個(gè)子過程就可以與其他的子過程并行進(jìn)行。w流水線中的每個(gè)子過程及其功能部件稱為流水線的級(jí)或段,段與段相互連接形成流水線。流水線的段數(shù)稱為流水線的深度。3131/206/2063.2 流水線的基本概念w指令流水線把指令的解釋過程分解為分析和執(zhí)行兩個(gè)子過程,并讓這兩個(gè)子過程分別用獨(dú)立的分析部件和執(zhí)行部件來實(shí)現(xiàn)。理想情況:速度提高一倍4段指令流水線 取取指指令令 譯譯 碼碼 執(zhí)執(zhí) 行行 存存結(jié)結(jié)果果 入入 出出 3232/206/2063.2 流水線的基本概念w浮點(diǎn)加法流水線把流水線技術(shù)應(yīng)
22、用于運(yùn)算的執(zhí)行過程,就形成了 運(yùn)算操作流水線,也稱為部件級(jí)流水線。把浮點(diǎn)加法的全過程分解為求階差、對(duì)階、尾數(shù) 相加、規(guī)格化4個(gè)子過程。 理想情況:速度提高3倍 求求階階差差 對(duì)對(duì) 階階 尾尾數(shù)數(shù)相相加加 規(guī)規(guī)格格化化 t t t t 入入 出出 w時(shí)空?qǐng)D時(shí)空?qǐng)D從時(shí)間和空間兩個(gè)方面描述了流水線的工作過程。時(shí)空?qǐng)D中,橫坐標(biāo)代表時(shí)間,縱坐標(biāo)代表流水線的各個(gè)段。 4段指令流水線的時(shí)空?qǐng)D 取取指指令令 譯譯 碼碼 執(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
23、 7 8 9 3434/206/2063.2 流水線的基本概念w流水技術(shù)的特點(diǎn)流水線把一個(gè)處理過程分解為若干個(gè)子過程(段),每個(gè)子過程由一個(gè)專門的功能部件來實(shí)現(xiàn)。流水線中各段的時(shí)間應(yīng)盡可能相等,否則將引起流水線堵塞、斷流。 時(shí)間長的段將成為時(shí)間長的段將成為流水線的瓶頸。流水線的瓶頸。流水線每一個(gè)功能部件的后面都要有一個(gè)緩沖寄存器(鎖存器),稱為流水寄存器。q作用:作用:在相鄰的兩段之間傳送數(shù)據(jù),以保證提供后在相鄰的兩段之間傳送數(shù)據(jù),以保證提供后 面要用到的數(shù)據(jù),并把各段的處理工作相互隔離。面要用到的數(shù)據(jù),并把各段的處理工作相互隔離。3535/206/2063.2 流水線的基本概念流水技術(shù)適合于
24、大量重復(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)入流水線到流出結(jié)最后一個(gè)任務(wù)從進(jìn)入流水線到流出結(jié) 果所需的時(shí)間。果所需的時(shí)間。3636/206/2063.2 流水線的基本概念 從不同的角度和觀點(diǎn),把流水線分成多種不同的種類。1. 單功能流水線與多功能流水線 (按照流水線所完成的功能來分類)(按照流水線所完成的功能來分類)單功能流水線:只能完成一種固定功能的流水線。多功能流水線:流水線的各
25、段可以進(jìn)行不同的 連接,以實(shí)現(xiàn)不同的功能。例:例: ASCASC的多功能流水線的多功能流水線3.2.2 流水線的分類 求求 階階 差差 對(duì)對(duì) 階階 相相 加加 規(guī)規(guī)格格化化 相相 乘乘 累累 加加 輸輸 出出 1 2 3 4 6 5 7 8 輸輸 入入 輸輸 入入 相相 加加 規(guī)規(guī)格格化化 輸輸 出出 輸輸 出出 累累 加加 相相 乘乘 輸輸 入入 求求 階階 差差 對(duì)對(duì) 階階 2 3 4 5 6 7 8 6 7 8 (b)浮浮點(diǎn)點(diǎn)連連接接 (a)分分段段 (c)定定乘乘連連接接 1 1 2 3 4 5 3838/206/2063.2 流水線的基本概念w靜態(tài)流水線與動(dòng)態(tài)流水線(按照同一時(shí)間內(nèi)各
26、段之間的連接方式對(duì)多功能流水線做(按照同一時(shí)間內(nèi)各段之間的連接方式對(duì)多功能流水線做進(jìn)一步的分類)進(jìn)一步的分類)靜態(tài)流水線:在同一時(shí)間內(nèi),多功能流水線中的 各段只能按同一種功能的連接方式工作。q對(duì)于靜態(tài)流水線來說,只有當(dāng)輸入的是一串相同的對(duì)于靜態(tài)流水線來說,只有當(dāng)輸入的是一串相同的 運(yùn)算任務(wù)時(shí),流水的效率才能得到充分的發(fā)揮。運(yùn)算任務(wù)時(shí),流水的效率才能得到充分的發(fā)揮。例如:例如:ASCASC的的8 8段流水線段流水線3939/206/2063.2 流水線的基本概念動(dòng)態(tài)流水線:在同一時(shí)間內(nèi),多功能流水線中的各段可以按照不同的方式連接,同時(shí)執(zhí)行多種功能。 動(dòng)畫q優(yōu)點(diǎn)優(yōu)點(diǎn) 靈活,能夠提高流水線各段的使用
27、率,從而靈活,能夠提高流水線各段的使用率,從而 提高處理速度。提高處理速度。q缺點(diǎn)缺點(diǎn) 控制復(fù)雜。控制復(fù)雜。靜、動(dòng)態(tài)流水線時(shí)空?qǐng)D的對(duì)比4141/206/2063.2 流水線的基本概念w部件級(jí)、處理機(jī)級(jí)及處理機(jī)間流水線(按照流水的級(jí)別來進(jìn)行分類)(按照流水的級(jí)別來進(jìn)行分類)部件級(jí)流水線(運(yùn)算操作流水線):把處理機(jī)的算術(shù)邏輯運(yùn)算部件分段,使得各種類型的運(yùn)算操作能夠按流水方式進(jìn)行。處理機(jī)級(jí)流水線(指令流水線):把指令的解釋執(zhí)行過程按照流水方式處理。把一條指令的執(zhí)行過程分解為若干個(gè)子過程,每個(gè)子過程在獨(dú)立的功能部件中執(zhí)行。 例如:前面的例如:前面的4 4段段指令流水線指令流水線4242/206/206
28、3.2 流水線的基本概念處理機(jī)間流水線(宏流水線):它是由兩個(gè)或者 兩個(gè)以上的處理機(jī)串行連接起來,對(duì)同一數(shù)據(jù)流 進(jìn)行處理,每個(gè)處理機(jī)完成整個(gè)任務(wù)中的一部 分。 動(dòng)畫解析 數(shù)據(jù)流數(shù)據(jù)流 處理機(jī)處理機(jī) 1 處理機(jī)處理機(jī) 2 處理機(jī)處理機(jī) n 存儲(chǔ)器存儲(chǔ)器 存儲(chǔ)器存儲(chǔ)器 存儲(chǔ)器存儲(chǔ)器 任務(wù)任務(wù) 1 任務(wù)任務(wù) 2 任務(wù)任務(wù) n 4343/206/2063.2 流水線的基本概念w線性流水線與非線性流水線(按照流水線中是否有反饋回路來進(jìn)行分類)(按照流水線中是否有反饋回路來進(jìn)行分類)線性流水線:流水線的各段串行連接,沒有反饋回路。數(shù)據(jù)通過流水線中的各段時(shí),每一個(gè)段最多只流過一次。非線性流水線:流水線中除了
29、有串行的連接外,還有反饋回路。 (舉例)非線性流水線的調(diào)度問題q確定什么時(shí)候向流水線引進(jìn)新的任務(wù),才能使該任務(wù)不確定什么時(shí)候向流水線引進(jìn)新的任務(wù),才能使該任務(wù)不會(huì)與先前進(jìn)入流水線的任務(wù)發(fā)生沖突會(huì)與先前進(jìn)入流水線的任務(wù)發(fā)生沖突爭用流水段。爭用流水段。 4444/206/2063.2 流水線的基本概念4545/206/2063.2 流水線的基本概念w順序流水線與亂序流水線(根據(jù)任務(wù)流入和流出的順序是否相同來進(jìn)行分類(根據(jù)任務(wù)流入和流出的順序是否相同來進(jìn)行分類)順序流水線:流水線輸出端任務(wù)流出的順序與輸 入端任務(wù)流入的順序完全相同。每一個(gè)任務(wù)在流 水線的各段中是一個(gè)跟著一個(gè)順序流動(dòng)的。亂序流水線:流
30、水線輸出端任務(wù)流出的順序與輸 入端任務(wù)流入的順序可以不同,允許后進(jìn)入流水 線的任務(wù)先完成(從輸出端流出)。 也稱為無序流水線、錯(cuò)序流水線、異步流水線也稱為無序流水線、錯(cuò)序流水線、異步流水線4646/206/2063.2 流水線的基本概念w標(biāo)量處理機(jī)與向量流水處理機(jī) 把指令執(zhí)行部件中采用了流水線的處理機(jī)稱為流 水線處理機(jī)。標(biāo)量處理機(jī):處理機(jī)不具有向量數(shù)據(jù)表示和向量 指令,僅對(duì)標(biāo)量數(shù)據(jù)進(jìn)行流水處理。向量流水處理機(jī):具有向量數(shù)據(jù)表示和向量指令 的處理機(jī)。 向量數(shù)據(jù)表示和流水技術(shù)的結(jié)合。向量數(shù)據(jù)表示和流水技術(shù)的結(jié)合。4747/206/206 吞吐率:在單位時(shí)間內(nèi)流水線所完成的任務(wù)數(shù)量或輸 出結(jié)果的數(shù)量
31、。3.3 流水線的性能指標(biāo)3.3.1 吞吐率KTnTP n:任務(wù)數(shù)Tk:處理完成n個(gè)任務(wù)所用的時(shí)間4848/206/2063.3 流水線的性能指標(biāo)1. 各段時(shí)間均相等的流水線各段時(shí)間均相等的流水線時(shí)空?qǐng)D S1 S2 S3 S4 空間空間 時(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 4949/206/2063.3 流水線的性能指標(biāo)流水線完成n個(gè)連續(xù)任務(wù)所需要的總時(shí)間為(假設(shè)一條(假設(shè)一條k k段段線性流水線)線性流水線)Tkkt(n-1)t(kn-1)t 流水線的實(shí)際吞吐率tnknTP)
32、1(ttnknTPn11limmax最大吞吐率5050/206/2063.3 流水線的性能指標(biāo)最大吞吐率與實(shí)際吞吐率的關(guān)系 max1TPnknTPq流水線的實(shí)際吞吐率小于最大吞吐率,它除了與每流水線的實(shí)際吞吐率小于最大吞吐率,它除了與每個(gè)段的時(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。 5151/206/2063.3 流水線的性能指標(biāo)w各段時(shí)間不完全相等的流水線 各段時(shí)間不等的流水線及其時(shí)空?qǐng)D 舉例(時(shí)空?qǐng)D)q一條一條4 4段
33、段的流水線的流水線qS1S1,S3S3,S4S4各段的時(shí)間:各段的時(shí)間:t tqS2S2的時(shí)間:的時(shí)間:33t t (瓶頸段)瓶頸段)流水線中這種時(shí)間最長的段稱為流水線的瓶頸段。 5252/206/2063.3 流水線的性能指標(biāo)5353/206/2063.3 流水線的性能指標(biāo)各段時(shí)間不等的流水線的實(shí)際吞吐率:( t ti i為第為第i i段的時(shí)間,共有段的時(shí)間,共有k k個(gè)段個(gè)段 )kikitttntnTP121),max() 1(流水線的最大吞吐率為),max(121maxktttTP5454/206/2063.3 流水線的性能指標(biāo) 例如:一條4段的流水線中,S1,S2,S4各段的時(shí)間都是t
34、,唯有S3的時(shí)間是3t。 S1 S3 S2 S4 入入 出出 t t 3t t 最大吞吐率為tTP31max5555/206/2063.3 流水線的性能指標(biāo)w解決流水線瓶頸問題的常用方法 舉例細(xì)分瓶頸段 例如:例如:對(duì)前面的對(duì)前面的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)后的流水線的吞吐率 :tTP1max5656/206/2063.3 流水線的性能指標(biāo)重復(fù)設(shè)置瓶頸段q舉例:舉例:時(shí)空?qǐng)D時(shí)
35、空?qǐng)Dq缺點(diǎn):缺點(diǎn):控制邏輯比較復(fù)雜,所需的硬件增加了??刂七壿嫳容^復(fù)雜,所需的硬件增加了。例如:例如:對(duì)前面的對(duì)前面的4 4段流水線段流水線 重復(fù)設(shè)置瓶頸段重復(fù)設(shè)置瓶頸段S S3 3:S S3a3a,S S3b3b,S S3c3c S1 S3a S2 S3b 入入 出出 S3c S4 t t t 3t 5757/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í)空?qǐng)D重復(fù)設(shè)置瓶頸段后的時(shí)
36、空?qǐng)D5858/206/2063.3 流水線的性能指標(biāo)加速比:完成同樣一批任務(wù),不使用流水線所用的時(shí)間 與使用流水線所用的時(shí)間之比。假設(shè):不使用流水線(即順序執(zhí)行)所用的間假設(shè):不使用流水線(即順序執(zhí)行)所用的間為為T Ts s,使用流水線后所用的時(shí)間為,使用流水線后所用的時(shí)間為T Tk k,則該流,則該流水線的加速比為水線的加速比為3.3.2 加速比ksTTS 5959/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 (解
37、釋)解釋)流水線的實(shí)際加速比為1nknkS6060/206/2063.3 流水線的性能指標(biāo)最大加速比knknkSn1limmax當(dāng)當(dāng)n nk k時(shí),時(shí),S S k k思考:思考:流水線的段數(shù)愈多愈好?流水線的段數(shù)愈多愈好? 6161/206/2063.3 流水線的性能指標(biāo)w流水線的各段時(shí)間不完全相等時(shí)一條k段流水線完成n個(gè)連續(xù)任務(wù)的實(shí)際加速比為kikikiitttnttnS1211),max() 1(6262/206/2063.3 流水線的性能指標(biāo)效率:流水線中的設(shè)備實(shí)際使用時(shí)間與整個(gè)運(yùn)行時(shí)間 的比值,即流水線設(shè)備的利用率。 由于流水線有通過時(shí)間和排空時(shí)間,所以在連續(xù)由于流水線有通過時(shí)間和排空
38、時(shí)間,所以在連續(xù)完成完成n n個(gè)個(gè)任務(wù)的時(shí)間內(nèi),各段并不是滿負(fù)荷地工作。任務(wù)的時(shí)間內(nèi),各段并不是滿負(fù)荷地工作。1. 各段時(shí)間相等各段的效率ei相同 (解釋)3.3.3 效率121nknTtneeekk6363/206/2063.3 流水線的性能指標(biāo)整條流水線的效率為kkkTtknkkekeeeE1211nknE11limmaxnknEn 可以寫成 最高效率為 當(dāng)當(dāng)n nk k時(shí),時(shí),E E11。 6464/206/2063.3 流水線的性能指標(biāo)當(dāng)流水線各段時(shí)間相等時(shí),流水線的效率與吞吐率 成正比。 E=TPt w流水線的效率是流水線的實(shí)際加速比S與它的最大加速2. 比k的比值。 kSE 當(dāng)當(dāng)E
39、 E=1=1時(shí),時(shí),S S= =k k,實(shí)際加速比達(dá)到最大。,實(shí)際加速比達(dá)到最大。6565/206/2063.3 流水線的性能指標(biāo)w從時(shí)空?qǐng)D上看,效率就是n個(gè)任務(wù)占用的時(shí)空面積和w k個(gè)段總的時(shí)空面積之比。個(gè)段總的時(shí)空區(qū)區(qū)個(gè)任務(wù)實(shí)際占用的時(shí)空knE kikikiitttntktnE1211),max() 1(當(dāng)各段時(shí)間不相等時(shí)6666/206/2063.3 流水線的性能指標(biāo) 例例3.13.1 設(shè)在下圖所示的靜態(tài)流水線上計(jì)算:設(shè)在下圖所示的靜態(tài)流水線上計(jì)算: 流水線的輸出可以直接返回輸入端或暫存于相應(yīng)的流水寄存器中,流水線的輸出可以直接返回輸入端或暫存于相應(yīng)的流水寄存器中,試計(jì)算其吞吐率、加速比
40、和效率。試計(jì)算其吞吐率、加速比和效率。3.3.4 流水線的性能分析舉例)(41iiiBA 1 2 3 4 5 乘法乘法 加減法加減法 6 7 8 ( (每段的時(shí)間都為每段的時(shí)間都為t t) )6767/206/2063.3 流水線的性能指標(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) )(
41、(A A4 4+ +B B4 4) );q然后求總的乘積結(jié)果。然后求總的乘積結(jié)果。(2 2)畫出時(shí)空?qǐng)D)畫出時(shí)空?qǐng)D 3.3 流水線的性能指標(biāo) 時(shí)間 段 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 9 10 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. 01884364E6969/206/2063.3 流水線的性能指標(biāo)p在在1818個(gè)個(gè)t t時(shí)間中,給
42、出了時(shí)間中,給出了7 7個(gè)個(gè)結(jié)果。吞吐率為:結(jié)果。吞吐率為: tTP187p 不用流水線,由于一次求和需不用流水線,由于一次求和需6 6t t,一次求積需一次求積需4 4t t, 則產(chǎn)生上述則產(chǎn)生上述7 7個(gè)結(jié)果共需個(gè)結(jié)果共需(4 46+36+34 4)t t = 36 = 36t t 加速比為加速比為(3 3)計(jì)算性能)計(jì)算性能21836ttS7070/206/2063.3 流水線的性能指標(biāo)p 流水線的效率流水線的效率 25. 01884364E可以看出,在求解此問題時(shí),該流水線的效率不高。 (原因)7171/206/2063.3 流水線的性能指標(biāo)主要原因q多功能流水線在做某一種運(yùn)算時(shí),總有
43、一些段是空多功能流水線在做某一種運(yùn)算時(shí),總有一些段是空閑的。閑的。q靜態(tài)流水線在進(jìn)行功能切換時(shí),要等前一種運(yùn)算全靜態(tài)流水線在進(jìn)行功能切換時(shí),要等前一種運(yùn)算全部流出流水線后才能進(jìn)行后面的運(yùn)算。部流出流水線后才能進(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流水線的工作過程有建立與排空部分。流水線的工作過程有建立與排空部分。 7272/206/2063.3 流水線的性能指標(biāo) 例例3.2 3.2 有一條動(dòng)態(tài)多功能流水線由有一條動(dòng)態(tài)多功能流水線由5 5段組成,加法用段組成,加法用1 1、3 3、4 4、5 5段,乘法用段,乘
44、法用1 1、2 2、5 5段,第段,第2 2段的時(shí)間為段的時(shí)間為2 2t t,其余各段時(shí)間,其余各段時(shí)間均為均為t t,而且流水線的輸出可以直接返回輸入端或暫存于相應(yīng),而且流水線的輸出可以直接返回輸入端或暫存于相應(yīng)的流水寄存器中。若在該流水線上計(jì)算的流水寄存器中。若在該流水線上計(jì)算: : 試計(jì)算其吞吐率、加速比和效率。試計(jì)算其吞吐率、加速比和效率。)(41iiiBA 1 2 3 4 5 乘乘法法 加加法法 t 2t t t t 7373/206/2063.3 流水線的性能指標(biāo)解解: : (1) (1) 選擇適合于流水線工作的算法選擇適合于流水線工作的算法p應(yīng)先計(jì)算應(yīng)先計(jì)算A A1 1B B1
45、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 A4 4B B4)4);p然后求總的累加結(jié)果。然后求總的累加結(jié)果。(2) (2) 畫出時(shí)空?qǐng)D畫出時(shí)空?qǐng)D(3) (3) 計(jì)算性能計(jì)算性能7474/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
46、 CD AB CD ABCD A=A1B1 B=A2B2 C=A3B3 D=A4B4 18 56. 11828ttStTP18731. 01854344E7575/206/2063.3 流水線的性能指標(biāo) 下面我們?cè)倏匆粋€(gè)例子:下面我們?cè)倏匆粋€(gè)例子: 例例 在靜態(tài)流水線上計(jì)算在靜態(tài)流水線上計(jì)算: : 求:吞吐率,加速比,效率。求:吞吐率,加速比,效率。解:解: (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)
47、)(20(20t t) )1.71.7 效率效率 E E(4(44 43 36)6)(8(820)20)0.210.21)(41iiiBA 7676/206/2063.3 流水線的性能指標(biāo)7777/206/2063.3 流水線的性能指標(biāo)可以看出,在求解此問題時(shí),該流水線的效率不高。 動(dòng)態(tài)流水線的時(shí)空?qǐng)D 舉例舉例 : 這樣行不行? 正確答案7878/206/2063.3 流水線的性能指標(biāo)1. 瓶頸問題理想情況下,流水線在工作時(shí),其中的任務(wù)是同步地每一個(gè)時(shí)鐘周期往前流動(dòng)一段。當(dāng)流水線各段不均勻時(shí),機(jī)器的時(shí)鐘周期取決于瓶頸段的延遲時(shí)間。在設(shè)計(jì)流水線時(shí),要盡可能使各段時(shí)間相等。2. 流水線的額外開銷p
48、流水寄存器延遲流水寄存器延遲p時(shí)鐘偏移開銷時(shí)鐘偏移開銷3.3.5 流水線設(shè)計(jì)中的若干問題7979/206/2063.3 流水線的性能指標(biāo)流水寄存器需要建立時(shí)間和傳輸延遲q建立時(shí)間:建立時(shí)間:在觸發(fā)寫操作的時(shí)鐘信號(hào)到達(dá)之前,寄在觸發(fā)寫操作的時(shí)鐘信號(hào)到達(dá)之前,寄 存器輸入必須保持穩(wěn)定的時(shí)間。存器輸入必須保持穩(wěn)定的時(shí)間。q傳輸延遲:傳輸延遲:時(shí)鐘信號(hào)到達(dá)后到寄存器輸出可用的時(shí)時(shí)鐘信號(hào)到達(dá)后到寄存器輸出可用的時(shí) 間。間。時(shí)鐘偏移開銷q流水線中,時(shí)鐘到達(dá)各流水寄存器的最大差值時(shí)間。流水線中,時(shí)鐘到達(dá)各流水寄存器的最大差值時(shí)間。(時(shí)鐘到達(dá)各流水寄存器的時(shí)間不是完全相同)(時(shí)鐘到達(dá)各流水寄存器的時(shí)間不是完全
49、相同)8080/206/2063.3 流水線的性能指標(biāo)幾個(gè)問題q流水線并不能減少(而且一般是增加)單條指令的流水線并不能減少(而且一般是增加)單條指令的執(zhí)行時(shí)間,但卻能提高吞吐率。執(zhí)行時(shí)間,但卻能提高吞吐率。q增加流水線的深度(段數(shù))可以提高流水線的性能。增加流水線的深度(段數(shù))可以提高流水線的性能。q流水線的深度受限于流水線的額外開銷。流水線的深度受限于流水線的額外開銷。q當(dāng)時(shí)鐘周期小到與額外開銷相同時(shí),流水已沒意義。當(dāng)時(shí)鐘周期小到與額外開銷相同時(shí),流水已沒意義。因?yàn)檫@時(shí)在每一個(gè)時(shí)鐘周期中已沒有時(shí)間來做有用因?yàn)檫@時(shí)在每一個(gè)時(shí)鐘周期中已沒有時(shí)間來做有用的工作。的工作。w沖突問題 流水線設(shè)計(jì)中要
50、解決的重要問題之一。 8181/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 流水線的相關(guān)與沖突3.4.1 一個(gè)經(jīng)典的5段流水線8282/206/2063.4 流水線的相關(guān)與沖突指令譯碼/讀寄存器周期(ID)q譯碼。譯碼。q用用IRIR中的寄存器編號(hào)去訪問通用寄存器組,讀出所需中的寄存器編號(hào)去訪問通用寄存器組,讀出所需的操作數(shù)。的操作數(shù)。執(zhí)行/有效地址計(jì)算周期(EX)
51、不同指令所進(jìn)行的操作不同:q存儲(chǔ)器訪問指令:存儲(chǔ)器訪問指令:ALUALU把所指定的寄存器的內(nèi)容與偏把所指定的寄存器的內(nèi)容與偏 移量相加,形成用于訪存的有效地址。移量相加,形成用于訪存的有效地址。q寄存器寄存器寄存器寄存器ALUALU指令:指令:ALUALU按照操作碼指定的操按照操作碼指定的操 作對(duì)從通用寄存器組中讀取的數(shù)據(jù)進(jìn)行運(yùn)算。作對(duì)從通用寄存器組中讀取的數(shù)據(jù)進(jìn)行運(yùn)算。8383/206/2063.4 流水線的相關(guān)與沖突q寄存器立即數(shù)寄存器立即數(shù)ALUALU指令:指令:ALUALU按照操作碼指定的操按照操作碼指定的操 作對(duì)從通用寄存器組中讀取的第一操作數(shù)和立即數(shù)作對(duì)從通用寄存器組中讀取的第一操
52、作數(shù)和立即數(shù) 進(jìn)行運(yùn)算。進(jìn)行運(yùn)算。q分支指令:分支指令:ALUALU把偏移量與把偏移量與PCPC值相加,形成轉(zhuǎn)移目標(biāo)值相加,形成轉(zhuǎn)移目標(biāo) 的地址。同時(shí),對(duì)在前一個(gè)周期讀出的操作數(shù)進(jìn)行的地址。同時(shí),對(duì)在前一個(gè)周期讀出的操作數(shù)進(jìn)行 判斷,確定分支是否成功。判斷,確定分支是否成功。存儲(chǔ)器訪問分支完成周期(MEM) 該周期處理的指令只有l(wèi)oad、store和分支指令。 其他類型的指令在此周期不做任何操作。8484/206/2063.4 流水線的相關(guān)與沖突qloadload和和storestore指令指令loadload指令:指令:用上一個(gè)周期計(jì)算出的有效地址從存儲(chǔ)器中用上一個(gè)周期計(jì)算出的有效地址從存儲(chǔ)
53、器中 讀出相應(yīng)的數(shù)據(jù)。讀出相應(yīng)的數(shù)據(jù)。storestore指令:指令:把指定的數(shù)據(jù)寫入這個(gè)有效地址所指出的存把指定的數(shù)據(jù)寫入這個(gè)有效地址所指出的存 儲(chǔ)器單元。儲(chǔ)器單元。q分支指令分支指令 分支分支“成功成功”,就把轉(zhuǎn)移目標(biāo)地址送入,就把轉(zhuǎn)移目標(biāo)地址送入PCPC。 分支指令執(zhí)行完成。分支指令執(zhí)行完成。8585/206/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ù)來自存儲(chǔ)器系統(tǒng)。結(jié)果數(shù)據(jù)來自存儲(chǔ)器系統(tǒng)。 在這個(gè)實(shí)現(xiàn)方案
54、中:p分支指令需要分支指令需要4 4個(gè)時(shí)鐘個(gè)時(shí)鐘周期(如果把分支指令的執(zhí)行周期(如果把分支指令的執(zhí)行 提前到提前到IDID周期,則只需要周期,則只需要2 2個(gè)個(gè)周期)。周期)。pstorestore指令需要指令需要4 4個(gè)個(gè)周期。周期。p其他指令需要其他指令需要5 5個(gè)個(gè)周期才能完成。周期才能完成。w將上述實(shí)現(xiàn)方案修改為流水線實(shí)現(xiàn)一個(gè)經(jīng)典的5段流水線 q每一個(gè)周期作為一個(gè)流水段。每一個(gè)周期作為一個(gè)流水段。q在各段之間加上鎖存器(流水寄存器)。在各段之間加上鎖存器(流水寄存器)。 8787/206/2063.4 流水線的相關(guān)與沖突5段流水線的兩種描述方式q第一種描述第一種描述(類似于時(shí)空?qǐng)D)(類
55、似于時(shí)空?qǐng)D)第二種描述(按時(shí)間錯(cuò)開的數(shù)據(jù)通路序列)8989/206/206 w采用流水線方式實(shí)現(xiàn)時(shí),應(yīng)解決以下幾個(gè)問題:要保證不會(huì)在同一時(shí)鐘周期要求同一個(gè)功能段做 兩件不同的工作。例如,不能要求例如,不能要求ALUALU同時(shí)做有效地址計(jì)算和算術(shù)運(yùn)算。同時(shí)做有效地址計(jì)算和算術(shù)運(yùn)算。避免IF段的訪存(取指令)與MEM段的訪存(讀/寫數(shù)據(jù))發(fā)生沖突。q可以采用分離的指令存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器;可以采用分離的指令存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器;q一般采用分離的指令一般采用分離的指令CacheCache和數(shù)據(jù)和數(shù)據(jù)CacheCache。ID段和WB段都要訪問同一寄存器文件。 IDID段:讀段:讀WBWB段:寫段:寫3.
56、4 流水線的相關(guān)與沖突9090/206/2063.4 流水線的相關(guān)與沖突如何解決對(duì)同一寄存器的訪問沖突?如何解決對(duì)同一寄存器的訪問沖突? 把寫操作安排在時(shí)鐘周期的前半拍完成,把讀操作把寫操作安排在時(shí)鐘周期的前半拍完成,把讀操作安排在后半拍完成。安排在后半拍完成??紤]PC的問題q流水線為了能夠每個(gè)時(shí)鐘周期啟動(dòng)一條新的指令,流水線為了能夠每個(gè)時(shí)鐘周期啟動(dòng)一條新的指令,就必須在每個(gè)時(shí)鐘周期進(jìn)行就必須在每個(gè)時(shí)鐘周期進(jìn)行PCPC值的加值的加4 4操作,并保留操作,并保留新的新的PCPC值。這種操作值。這種操作必須在必須在IFIF段完成,段完成,以便為取下以便為取下一條指令做好準(zhǔn)備。一條指令做好準(zhǔn)備。 (
57、需設(shè)置一個(gè)專門的加法器)(需設(shè)置一個(gè)專門的加法器)q但分支指令也可能改變但分支指令也可能改變P PC C的值,而且是在的值,而且是在MEMMEM段段進(jìn)行,進(jìn)行,這會(huì)導(dǎo)致沖突。這會(huì)導(dǎo)致沖突。請(qǐng)考慮一下,如何處理分支指令?請(qǐng)考慮一下,如何處理分支指令?9191/206/2063.4 流水線的相關(guān)與沖突相關(guān):兩條指令之間存在某種依賴關(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
58、相關(guān)與流水線沖突 相關(guān)9292/206/2063.4 流水線的相關(guān)與沖突1. 數(shù)據(jù)相關(guān) 對(duì)于兩條指令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),而指令數(shù)據(jù)相關(guān),而指令k k又與指令又與指令i i數(shù)據(jù)相關(guān)。數(shù)據(jù)相關(guān)。數(shù)據(jù)相關(guān)具有傳遞性。 數(shù)據(jù)相關(guān)反映了數(shù)據(jù)的流動(dòng)關(guān)系,即如何從其產(chǎn) 生者流動(dòng)到其消費(fèi)者。 9393/206/2063.4 流水線的相關(guān)與沖突 例如:例如:下面這一段代碼存在數(shù)據(jù)相關(guān)。下面這一段代碼存在數(shù)據(jù)相關(guān)。LoopLoo
59、p: L.D L.D F0F0,0 0(R1R1)/ F0/ F0為數(shù)組元素為數(shù)組元素 ADD.D ADD.D F4F4,F(xiàn)0F0,F(xiàn)2F2/ / 加上加上F2F2中的值中的值 S.D S.D F4F4,0 0(R1R1)/ / 保存結(jié)果保存結(jié)果 DADDIU DADDIU R1R1,R1R1,8 8/ / 數(shù)組指針遞減數(shù)組指針遞減8 8個(gè)字節(jié)個(gè)字節(jié) BNE BNE R1R1,R2R2,LoopLoop/ / 如果如果R1R2R1R2,則分支,則分支 9494/206/2063.4 流水線的相關(guān)與沖突當(dāng)數(shù)據(jù)的流動(dòng)是經(jīng)過寄存器時(shí),相關(guān)的檢測比較 直觀和容易。當(dāng)數(shù)據(jù)的流動(dòng)是經(jīng)過存儲(chǔ)器時(shí),檢測比較復(fù)
60、雜。q相同形式的地址其有效地址未必相同。相同形式的地址其有效地址未必相同。q形式不同的地址其有效地址卻可能相同。形式不同的地址其有效地址卻可能相同。w名相關(guān)名:指令所訪問的寄存器或存儲(chǔ)器單元的名稱。2.如果兩條指令使用相同的名,但是它們之間并沒有數(shù)據(jù)流動(dòng),則稱這兩條指令存在名相關(guān)。9595/206/2063.4 流水線的相關(guān)與沖突指令j與指令i之間的名相關(guān)有兩種:q反相關(guān):反相關(guān):如果指令如果指令j j寫的名與指令寫的名與指令i i讀的名相同,則讀的名相同,則 稱指令稱指令i i和和j j發(fā)生了反相關(guān)。發(fā)生了反相關(guān)。 指令指令j j寫的名指令寫的名指令i i讀的名讀的名q輸出相關(guān):輸出相關(guān):如
溫馨提示
- 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 河道管理協(xié)議
- 水果購銷合同范本版示例
- 三亞市購房協(xié)議示例
- 聘請(qǐng)財(cái)務(wù)顧問協(xié)議書樣本
- 借款糾紛起訴狀范本法律維權(quán)攻略
- 書柜購買合約
- 保安服務(wù)合同鞏固
- 型材安裝工程項(xiàng)目招標(biāo)
- 簡化勞務(wù)分包協(xié)議范本
- 酒店協(xié)議價(jià)格合同的四大誤解
- 骨科護(hù)理年會(huì)心得
- 小數(shù)加法和減法(教學(xué)設(shè)計(jì))-2024-2025學(xué)年五年級(jí)上冊(cè)數(shù)學(xué)蘇教版
- 臨沂市蘭山區(qū)財(cái)金投資集團(tuán)有限公司招聘筆試題庫2024
- 新課標(biāo)小學(xué)數(shù)學(xué)十大核心素養(yǎng)
- 大地的滋味(2023年山東聊城中考語文試卷散文閱讀題及答案)
- 中國自動(dòng)光學(xué)檢測儀(AOI)市場競爭風(fēng)險(xiǎn)及供需現(xiàn)狀分析研究報(bào)告(2024-2030版)
- 智慧公路交通講座-日本的智能交通與智慧公路
- 2023-2024學(xué)年教科版六年級(jí)上冊(cè)科學(xué)知識(shí)點(diǎn)總結(jié)
- 2024年甘肅定西渭源縣糧食和物資儲(chǔ)備中心選調(diào)2人歷年(高頻重點(diǎn)復(fù)習(xí)提升訓(xùn)練)共500題附帶答案詳解
- 2024年6月浙江省高考地理試卷真題(含答案)
- 2024年越南分布式光伏發(fā)電行業(yè)現(xiàn)狀及前景分析2024-2030
評(píng)論
0/150
提交評(píng)論