mysql語句運用_第1頁
mysql語句運用_第2頁
mysql語句運用_第3頁
mysql語句運用_第4頁
mysql語句運用_第5頁
已閱讀5頁,還剩202頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

2、寄存器。指令分析q對指令的操作碼進行譯碼,按照給定的尋址方式和對指令的操作碼進行譯碼,按照給定的尋址方式和 地址字段形成操作數(shù)的地址,并用這個地址讀取操地址字段形成操作數(shù)的地址,并用這個地址讀取操 作數(shù)。作數(shù)。指令執(zhí)行q按照操作碼的要求,完成指令規(guī)定的功能。按照操作碼的要求,完成指令規(guī)定的功能。 在指令的執(zhí)行過程中還要更新PC值,為讀取下一 條指令做好準備。 5 5/206/2063.1 重疊執(zhí)行和先行控制w三種執(zhí)行方式順序執(zhí)行方式一次重疊執(zhí)行方式二次重疊執(zhí)行方式 6 6/206/2063.1 重疊執(zhí)行和先行控制執(zhí)行n條指令所花的時間 取取指指令令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í)行的時間相等, 都是t,則 T=3nt 優(yōu)點q控制簡單,節(jié)省設(shè)備??刂坪唵?,節(jié)省設(shè)備。主要缺點q 處理機執(zhí)行指令的速度慢處理機執(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條指令同時進行。(一種最簡單的重疊方式)(一種最簡單的重疊方式) 9 9/206/2063.1 重疊執(zhí)行和先行控制如果執(zhí)行一條指令的3個階段的時間相等,都是 t,則執(zhí)行n條指令所花的時間為 T=(1+2n)t 優(yōu)點q程序的執(zhí)行時間減少了近程序的執(zhí)行時間減少了近1/31/3。q功能部件的利用率明顯提高。功能部件的利用率明顯提高。缺點q需要增加一些硬件,控制過程變復雜了。需要增加一些硬件,控制過程變復雜了。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條指令同時進行,分析第k+l條指令與執(zhí)行第k條指令同時進行。 1111/206/2063.1 重疊執(zhí)行和先行控制如果執(zhí)行一條指令的3個階段的時間相等,都是 t,則執(zhí)行n條指令所花的時間為 T= (2+n)t 優(yōu)點q與順序執(zhí)行方式相比,執(zhí)行時間縮短了近與順序執(zhí)行方式相比,執(zhí)行時間縮短了近2/32/3。q部件的利用率有了進一步的提高。部件的利用率有了進一步的提高。缺點q需要增加更多的硬件。需要增加更多的硬件。q需要設(shè)置獨立的取指令部件、指令分析部件和指令執(zhí)需要設(shè)置獨立的取指令部件、指令分析部

6、件和指令執(zhí)行部件。行部件。1212/206/2063.1 重疊執(zhí)行和先行控制訪問主存的沖突問題 4種解決方法q設(shè)置兩個獨立編址的存儲器:設(shè)置兩個獨立編址的存儲器: 指令存儲器指令存儲器(存放指令)、(存放指令)、數(shù)據(jù)存儲器數(shù)據(jù)存儲器(存放數(shù)據(jù))(存放數(shù)據(jù))q指令和數(shù)據(jù)仍然混合存放在同一個主存中,但設(shè)置指令和數(shù)據(jù)仍然混合存放在同一個主存中,但設(shè)置 兩個兩個CacheCache: 指令指令CacheCache、數(shù)據(jù)、數(shù)據(jù)CacheCache 程序空間和數(shù)據(jù)空間相互獨立的系統(tǒng)結(jié)構(gòu)被稱為程序空間和數(shù)據(jù)空間相互獨立的系統(tǒng)結(jié)構(gòu)被稱為哈佛哈佛結(jié)構(gòu)結(jié)構(gòu)。 q 指令和數(shù)據(jù)仍然混合存放在同一個主存中,但主存采用指

7、令和數(shù)據(jù)仍然混合存放在同一個主存中,但主存采用 多體交叉結(jié)構(gòu)。多體交叉結(jié)構(gòu)。 (有一定的局限性)(有一定的局限性)1313/206/2063.1 重疊執(zhí)行和先行控制q在主存和指令分析部件之間增設(shè)在主存和指令分析部件之間增設(shè)指令緩沖站指令緩沖站 (又被稱為(又被稱為先行指令緩沖站先行指令緩沖站 )n主存不是滿負荷工作的,插空從主存中預先把后面將主存不是滿負荷工作的,插空從主存中預先把后面將要執(zhí)行的指令取出來,存放到指令緩沖站中。要執(zhí)行的指令取出來,存放到指令緩沖站中。n在在“取指令取指令”階段從指令緩沖站讀取指令(如果指令階段從指令緩沖站讀取指令(如果指令緩沖站不為空),而不用去訪問主存。緩沖站

8、不為空),而不用去訪問主存。 1414/206/2063.1 重疊執(zhí)行和先行控制w先行指令緩沖站先行指令緩沖站的組成 先先行行程程序序計計數(shù)數(shù)器器PC1 現(xiàn)現(xiàn)行行程程序序計計數(shù)數(shù)器器PC 指指令令分分析析部部件件 指指令令寄寄存存器器IR 控控制制邏邏輯輯 主主存存控控制制器器 指指令令緩緩沖沖 存存 儲儲 區(qū)區(qū) 1515/206/2063.1 重疊執(zhí)行和先行控制指令緩沖存儲區(qū)和相應(yīng)的控制邏輯q按隊列方式工作。按隊列方式工作。q只要指令緩沖站不滿,它就自動地向主存控制器發(fā)只要指令緩沖站不滿,它就自動地向主存控制器發(fā) 取指令請求,不斷地預取指令。取指令請求,不斷地預取指令。指令分析部件q每分析完

9、一條指令,就自動向指令緩沖站發(fā)出取下每分析完一條指令,就自動向指令緩沖站發(fā)出取下 一條指令的請求。指令取出之后就把指令緩沖站中一條指令的請求。指令取出之后就把指令緩沖站中 的該指令作廢。的該指令作廢。q指令緩沖站中存放的指令的條數(shù)是動態(tài)變化的。指令緩沖站中存放的指令的條數(shù)是動態(tài)變化的。兩個程序計數(shù)器1616/206/2063.1 重疊執(zhí)行和先行控制q先行程序計數(shù)器先行程序計數(shù)器PC1PC1:用于從主存預取指令;用于從主存預取指令;q現(xiàn)行程序計數(shù)器現(xiàn)行程序計數(shù)器PCPC:用來記錄指令分析部件當前正在用來記錄指令分析部件當前正在 分析的指令的地址。分析的指令的地址。w先行控制方式中的一次重疊執(zhí)行

10、若取指令階段的時間很短,可以把這個操作合并 到分析指令中。上述的二次重疊就演變成了一次重疊q把一條指令的執(zhí)行過程分為把一條指令的執(zhí)行過程分為分析分析和和執(zhí)行執(zhí)行兩個階段;兩個階段;q讓前一條指令的讓前一條指令的執(zhí)行執(zhí)行與后一條指令的與后一條指令的分析分析重疊進行。重疊進行。 1717/206/2063.1 重疊執(zhí)行和先行控制 分析分析 k 執(zhí)行執(zhí)行 k 分析分析k+1 執(zhí)行執(zhí)行k+1 分析分析k+2 執(zhí)行執(zhí)行k+2 如果指令分析和指令執(zhí)行所需要的時間都是t,則采用這種方式連續(xù)執(zhí)行n條指令所需要的時間為: 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 當指令分析和指令執(zhí)行所需要的時間不相等時, 其執(zhí)行過程為: 指令分析部件和指令執(zhí)行部件存在相互等待的時候,會出指令分析部件和指令執(zhí)行部件存在相互等待的時候,會出現(xiàn)部件空閑的情況。現(xiàn)部件空閑的情況。1919/206/2063.1 重疊執(zhí)行和先行控制1. 先行控制技術(shù):緩沖技術(shù)和預處理技術(shù)的結(jié)合緩沖技術(shù):在工作速度不固定的兩個功能部件之間設(shè)置緩沖器,用以平滑它們的工作。預處理技術(shù):預取指令、對指令進行加工以及預取操作數(shù)等。2. 采用先行控制方式的處理

12、機結(jié)構(gòu) 3.1.2 先行控制2020/206/2063.1 重疊執(zhí)行和先行控制 主主 存存 儲儲 器器 存存 儲儲 控控 制制 器器 先先行行指指令令緩緩沖沖站站 先先行行讀讀數(shù)數(shù)站站 后后行行寫寫數(shù)數(shù)站站 指指令令分分析析部部件件 先先行行操操作作站站 運運算算控控制制器器 運運算算器器 通通 用用 寄寄 存存 器器 2121/206/2063.1 重疊執(zhí)行和先行控制設(shè)置了4個緩沖站(平滑主存、指令分析部件、運算器三者之間的工作)(平滑主存、指令分析部件、運算器三者之間的工作)q先行指令緩沖站(前面已講述)先行指令緩沖站(前面已講述)q先行操作站先行操作站q先行讀數(shù)站先行讀數(shù)站q后行寫數(shù)站后

13、行寫數(shù)站 共同特點:共同特點:按先進先出的方式工作,而且都是由一組若按先進先出的方式工作,而且都是由一組若 干個能快速訪問的存儲單元和相關(guān)的控制邏干個能快速訪問的存儲單元和相關(guān)的控制邏 輯組成。輯組成。2222/206/2063.1 重疊執(zhí)行和先行控制先行操作站q在指令分析部件和運算器之間提供緩沖在指令分析部件和運算器之間提供緩沖q 先行:先行:因為其中的指令對于運算器正在執(zhí)行的因為其中的指令對于運算器正在執(zhí)行的 指令來說是后續(xù)的,但卻被指令來說是后續(xù)的,但卻被先行先行取出并預處理。取出并預處理。指令分析部件 q從先行指令緩沖站取指令,并進行預處理,加工成從先行指令緩沖站取指令,并進行預處理,

14、加工成 統(tǒng)一格式的統(tǒng)一格式的RRRR型操作命令型操作命令,然后送入先行操作站。,然后送入先行操作站。 q對于不同指令做不同的處理。對于不同指令做不同的處理。2323/206/2063.1 重疊執(zhí)行和先行控制q寄存器寄存器- -寄存器型(寄存器型(RRRR型)指令:型)指令:可以不作任何處理,直可以不作任何處理,直 接送入。接送入。q操作數(shù)來自主存的運算指令:操作數(shù)來自主存的運算指令:計算出操作數(shù)的有效地計算出操作數(shù)的有效地 址,并將該地址送入先行讀數(shù)站的某個存儲單元(設(shè)其址,并將該地址送入先行讀數(shù)站的某個存儲單元(設(shè)其地址為地址為i i),同時用),同時用i i替換原來指令中的操作數(shù)地址碼字段

15、。替換原來指令中的操作數(shù)地址碼字段。q向主存向主存“寫數(shù)寫數(shù)”的指令:的指令:把形成的有效地址送入后行寫把形成的有效地址送入后行寫 數(shù)站的某個存儲單元(設(shè)其地址為數(shù)站的某個存儲單元(設(shè)其地址為j j),同時用),同時用j j替換原替換原來指令中的目標地址碼字段。來指令中的目標地址碼字段。q立即數(shù)型指令:立即數(shù)型指令:把指令中的立即數(shù)送入讀數(shù)站(設(shè)為第把指令中的立即數(shù)送入讀數(shù)站(設(shè)為第l l 個存儲單元),同樣也用個存儲單元),同樣也用l l替換原來指令中的立即數(shù)字替換原來指令中的立即數(shù)字 段。段。2424/206/2063.1 重疊執(zhí)行和先行控制運算器q從先行操作站取出從先行操作站取出RRRR

16、型型操作命令并執(zhí)行。操作命令并執(zhí)行。q每執(zhí)行完一條,將運算結(jié)果寫入通用寄存器組或者每執(zhí)行完一條,將運算結(jié)果寫入通用寄存器組或者 后行寫數(shù)站。后行寫數(shù)站。q繼續(xù)執(zhí)行先行操作站中的后續(xù)命令。繼續(xù)執(zhí)行先行操作站中的后續(xù)命令。 先行讀數(shù)站q作用:作用:接收指令分析部件送來的訪問主存的有效地接收指令分析部件送來的訪問主存的有效地 址,按順序依次從主存讀取操作數(shù),提供給運算器址,按順序依次從主存讀取操作數(shù),提供給運算器 使用。使用。q先行:先行:因為對于正在執(zhí)行的指令來說,先行讀數(shù)站因為對于正在執(zhí)行的指令來說,先行讀數(shù)站 中的操作數(shù)是中的操作數(shù)是先行先行取出的。取出的。2525/206/2063.1 重疊

17、執(zhí)行和先行控制q每個存儲單元由每個存儲單元由3 3部分部分組成:組成: 先行地址字段、先行操作數(shù)字段、標志字段先行地址字段、先行操作數(shù)字段、標志字段n每當從指令分析部件接收有效地址時,將之放每當從指令分析部件接收有效地址時,將之放入先行地址字段,并將地址有效標志置位。入先行地址字段,并將地址有效標志置位。n等到該單元成為隊列的第一項時,先行讀數(shù)站等到該單元成為隊列的第一項時,先行讀數(shù)站會用該地址向主存發(fā)出讀請求,把取來的操作數(shù)會用該地址向主存發(fā)出讀請求,把取來的操作數(shù)放入該單元的先行操作數(shù)字段,同時將數(shù)據(jù)有效標放入該單元的先行操作數(shù)字段,同時將數(shù)據(jù)有效標志置位。志置位。n當以后運算器需要該操作

18、數(shù)時,就可以直接從當以后運算器需要該操作數(shù)時,就可以直接從先行讀數(shù)站取得,而不必去訪問主存。先行讀數(shù)站取得,而不必去訪問主存。2626/206/2063.1 重疊執(zhí)行和先行控制后行寫數(shù)站q作用:作用:接收從運算器送來的結(jié)果數(shù)據(jù),并負責將之接收從運算器送來的結(jié)果數(shù)據(jù),并負責將之 寫入主存。寫入主存。q后行:后行:因為站在運算器的角度來看,結(jié)果數(shù)據(jù)不是在因為站在運算器的角度來看,結(jié)果數(shù)據(jù)不是在相應(yīng)的指令運算完后立即寫入主存,而是由后行寫數(shù)相應(yīng)的指令運算完后立即寫入主存,而是由后行寫數(shù)站站滯后滯后寫入的。寫入的。q每一個存儲單元由每一個存儲單元由3 3部分部分組成:組成: 后行地址字段、后行數(shù)據(jù)字段

19、、標志字段后行地址字段、后行數(shù)據(jù)字段、標志字段 每當從運算器接收數(shù)據(jù)時,將之放入后行數(shù)據(jù)字每當從運算器接收數(shù)據(jù)時,將之放入后行數(shù)據(jù)字段,并把相應(yīng)的數(shù)據(jù)有效標志置位。后行寫數(shù)站的控段,并把相應(yīng)的數(shù)據(jù)有效標志置位。后行寫數(shù)站的控制邏輯自動向主存發(fā)出寫數(shù)請求。當寫數(shù)據(jù)操作完成制邏輯自動向主存發(fā)出寫數(shù)請求。當寫數(shù)據(jù)操作完成后,也要置位有關(guān)標志。后,也要置位有關(guān)標志。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)該是一直忙碌的。處理機連續(xù)執(zhí)行n條指令所需要的時間為niiniitttT111執(zhí)行執(zhí)行分析先行2929/206/2061. 工業(yè)生產(chǎn)流水線 下面通過一個例子來說明流水線的好處:兩種方案兩種方案的工作過程對比流水線生產(chǎn)過程的抽象描述這種流水工作方式的主要特點3.2 流水線的基本概念3.2.1 什么是流水線3030/206/2063.2 流水線的基本概念w流水線技術(shù)把一個重復

21、的過程分解為若干個子過程,每個子過程由專門的功能部件來實現(xiàn)。把多個處理過程在時間上錯開,依次通過各功能段,這樣,每個子過程就可以與其他的子過程并行進行。w流水線中的每個子過程及其功能部件稱為流水線的級或段,段與段相互連接形成流水線。流水線的段數(shù)稱為流水線的深度。3131/206/2063.2 流水線的基本概念w指令流水線把指令的解釋過程分解為分析和執(zhí)行兩個子過程,并讓這兩個子過程分別用獨立的分析部件和執(zhí)行部件來實現(xiàn)。理想情況:速度提高一倍4段指令流水線 取取指指令令 譯譯 碼碼 執(zhí)執(zhí) 行行 存存結(jié)結(jié)果果 入入 出出 3232/206/2063.2 流水線的基本概念w浮點加法流水線把流水線技術(shù)應(yīng)

22、用于運算的執(zhí)行過程,就形成了 運算操作流水線,也稱為部件級流水線。把浮點加法的全過程分解為求階差、對階、尾數(shù) 相加、規(guī)格化4個子過程。 理想情況:速度提高3倍 求求階階差差 對對 階階 尾尾數(shù)數(shù)相相加加 規(guī)規(guī)格格化化 t t t t 入入 出出 w時空圖時空圖從時間和空間兩個方面描述了流水線的工作過程。時空圖中,橫坐標代表時間,縱坐標代表流水線的各個段。 4段指令流水線的時空圖 取取指指令令 譯譯 碼碼 執(zhí)執(zhí) 行行 存存結(jié)結(jié)果果 空空間間 時時間間 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ù)的特點流水線把一個處理過程分解為若干個子過程(段),每個子過程由一個專門的功能部件來實現(xiàn)。流水線中各段的時間應(yīng)盡可能相等,否則將引起流水線堵塞、斷流。 時間長的段將成為時間長的段將成為流水線的瓶頸。流水線的瓶頸。流水線每一個功能部件的后面都要有一個緩沖寄存器(鎖存器),稱為流水寄存器。q作用:作用:在相鄰的兩段之間傳送數(shù)據(jù),以保證提供后在相鄰的兩段之間傳送數(shù)據(jù),以保證提供后 面要用到的數(shù)據(jù),并把各段的處理工作相互隔離。面要用到的數(shù)據(jù),并把各段的處理工作相互隔離。3535/206/2063.2 流水線的基本概念流水技術(shù)適合于

24、大量重復的時序過程,只有在輸入端不斷地提供任務(wù),才能充分發(fā)揮流水線的效率。 流水線需要有通過時間和排空時間。q通過時間:通過時間:第一個任務(wù)從進入流水線到流出結(jié)果第一個任務(wù)從進入流水線到流出結(jié)果 所需的時間。所需的時間。q排空時間:排空時間:最后一個任務(wù)從進入流水線到流出結(jié)最后一個任務(wù)從進入流水線到流出結(jié) 果所需的時間。果所需的時間。3636/206/2063.2 流水線的基本概念 從不同的角度和觀點,把流水線分成多種不同的種類。1. 單功能流水線與多功能流水線 (按照流水線所完成的功能來分類)(按照流水線所完成的功能來分類)單功能流水線:只能完成一種固定功能的流水線。多功能流水線:流水線的各

25、段可以進行不同的 連接,以實現(xiàn)不同的功能。例:例: ASCASC的多功能流水線的多功能流水線3.2.2 流水線的分類 求求 階階 差差 對對 階階 相相 加加 規(guī)規(guī)格格化化 相相 乘乘 累累 加加 輸輸 出出 1 2 3 4 6 5 7 8 輸輸 入入 輸輸 入入 相相 加加 規(guī)規(guī)格格化化 輸輸 出出 輸輸 出出 累累 加加 相相 乘乘 輸輸 入入 求求 階階 差差 對對 階階 2 3 4 5 6 7 8 6 7 8 (b)浮浮點點連連接接 (a)分分段段 (c)定定乘乘連連接接 1 1 2 3 4 5 3838/206/2063.2 流水線的基本概念w靜態(tài)流水線與動態(tài)流水線(按照同一時間內(nèi)各

26、段之間的連接方式對多功能流水線做(按照同一時間內(nèi)各段之間的連接方式對多功能流水線做進一步的分類)進一步的分類)靜態(tài)流水線:在同一時間內(nèi),多功能流水線中的 各段只能按同一種功能的連接方式工作。q對于靜態(tài)流水線來說,只有當輸入的是一串相同的對于靜態(tài)流水線來說,只有當輸入的是一串相同的 運算任務(wù)時,流水的效率才能得到充分的發(fā)揮。運算任務(wù)時,流水的效率才能得到充分的發(fā)揮。例如:例如:ASCASC的的8 8段流水線段流水線3939/206/2063.2 流水線的基本概念動態(tài)流水線:在同一時間內(nèi),多功能流水線中的各段可以按照不同的方式連接,同時執(zhí)行多種功能。 動畫q優(yōu)點優(yōu)點 靈活,能夠提高流水線各段的使用

27、率,從而靈活,能夠提高流水線各段的使用率,從而 提高處理速度。提高處理速度。q缺點缺點 控制復雜。控制復雜。靜、動態(tài)流水線時空圖的對比4141/206/2063.2 流水線的基本概念w部件級、處理機級及處理機間流水線(按照流水的級別來進行分類)(按照流水的級別來進行分類)部件級流水線(運算操作流水線):把處理機的算術(shù)邏輯運算部件分段,使得各種類型的運算操作能夠按流水方式進行。處理機級流水線(指令流水線):把指令的解釋執(zhí)行過程按照流水方式處理。把一條指令的執(zhí)行過程分解為若干個子過程,每個子過程在獨立的功能部件中執(zhí)行。 例如:前面的例如:前面的4 4段段指令流水線指令流水線4242/206/206

28、3.2 流水線的基本概念處理機間流水線(宏流水線):它是由兩個或者 兩個以上的處理機串行連接起來,對同一數(shù)據(jù)流 進行處理,每個處理機完成整個任務(wù)中的一部 分。 動畫解析 數(shù)據(jù)流數(shù)據(jù)流 處理機處理機 1 處理機處理機 2 處理機處理機 n 存儲器存儲器 存儲器存儲器 存儲器存儲器 任務(wù)任務(wù) 1 任務(wù)任務(wù) 2 任務(wù)任務(wù) n 4343/206/2063.2 流水線的基本概念w線性流水線與非線性流水線(按照流水線中是否有反饋回路來進行分類)(按照流水線中是否有反饋回路來進行分類)線性流水線:流水線的各段串行連接,沒有反饋回路。數(shù)據(jù)通過流水線中的各段時,每一個段最多只流過一次。非線性流水線:流水線中除了

29、有串行的連接外,還有反饋回路。 (舉例)非線性流水線的調(diào)度問題q確定什么時候向流水線引進新的任務(wù),才能使該任務(wù)不確定什么時候向流水線引進新的任務(wù),才能使該任務(wù)不會與先前進入流水線的任務(wù)發(fā)生沖突會與先前進入流水線的任務(wù)發(fā)生沖突爭用流水段。爭用流水段。 4444/206/2063.2 流水線的基本概念4545/206/2063.2 流水線的基本概念w順序流水線與亂序流水線(根據(jù)任務(wù)流入和流出的順序是否相同來進行分類(根據(jù)任務(wù)流入和流出的順序是否相同來進行分類)順序流水線:流水線輸出端任務(wù)流出的順序與輸 入端任務(wù)流入的順序完全相同。每一個任務(wù)在流 水線的各段中是一個跟著一個順序流動的。亂序流水線:流

30、水線輸出端任務(wù)流出的順序與輸 入端任務(wù)流入的順序可以不同,允許后進入流水 線的任務(wù)先完成(從輸出端流出)。 也稱為無序流水線、錯序流水線、異步流水線也稱為無序流水線、錯序流水線、異步流水線4646/206/2063.2 流水線的基本概念w標量處理機與向量流水處理機 把指令執(zhí)行部件中采用了流水線的處理機稱為流 水線處理機。標量處理機:處理機不具有向量數(shù)據(jù)表示和向量 指令,僅對標量數(shù)據(jù)進行流水處理。向量流水處理機:具有向量數(shù)據(jù)表示和向量指令 的處理機。 向量數(shù)據(jù)表示和流水技術(shù)的結(jié)合。向量數(shù)據(jù)表示和流水技術(shù)的結(jié)合。4747/206/206 吞吐率:在單位時間內(nèi)流水線所完成的任務(wù)數(shù)量或輸 出結(jié)果的數(shù)量

31、。3.3 流水線的性能指標3.3.1 吞吐率KTnTP n:任務(wù)數(shù)Tk:處理完成n個任務(wù)所用的時間4848/206/2063.3 流水線的性能指標1. 各段時間均相等的流水線各段時間均相等的流水線時空圖 S1 S2 S3 S4 空間空間 時間時間 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 流水線的性能指標流水線完成n個連續(xù)任務(wù)所需要的總時間為(假設(shè)一條(假設(shè)一條k k段段線性流水線)線性流水線)Tkkt(n-1)t(kn-1)t 流水線的實際吞吐率tnknTP)

32、1(ttnknTPn11limmax最大吞吐率5050/206/2063.3 流水線的性能指標最大吞吐率與實際吞吐率的關(guān)系 max1TPnknTPq流水線的實際吞吐率小于最大吞吐率,它除了與每流水線的實際吞吐率小于最大吞吐率,它除了與每個段的時間有關(guān)外,還與流水線的段數(shù)個段的時間有關(guān)外,還與流水線的段數(shù)k k以及輸入到以及輸入到流水線中的任務(wù)數(shù)流水線中的任務(wù)數(shù)n n等有關(guān)。等有關(guān)。q只有當只有當n nk k時,才有時,才有TPTPTPTPmaxmax。 5151/206/2063.3 流水線的性能指標w各段時間不完全相等的流水線 各段時間不等的流水線及其時空圖 舉例(時空圖)q一條一條4 4段

33、段的流水線的流水線qS1S1,S3S3,S4S4各段的時間:各段的時間:t tqS2S2的時間:的時間:33t t (瓶頸段)瓶頸段)流水線中這種時間最長的段稱為流水線的瓶頸段。 5252/206/2063.3 流水線的性能指標5353/206/2063.3 流水線的性能指標各段時間不等的流水線的實際吞吐率:( t ti i為第為第i i段的時間,共有段的時間,共有k k個段個段 )kikitttntnTP121),max() 1(流水線的最大吞吐率為),max(121maxktttTP5454/206/2063.3 流水線的性能指標 例如:一條4段的流水線中,S1,S2,S4各段的時間都是t

34、,唯有S3的時間是3t。 S1 S3 S2 S4 入入 出出 t t 3t t 最大吞吐率為tTP31max5555/206/2063.3 流水線的性能指標w解決流水線瓶頸問題的常用方法 舉例細分瓶頸段 例如:例如:對前面的對前面的4 4段段流水線流水線把瓶頸段把瓶頸段S S3 3細分為細分為3 3個子流水線段:個子流水線段:S S3a3a,S S3b3b,S S3c3c S1 S2 入入 出出 S4 t t t t t t S3a S3c S3b 改進后的流水線的吞吐率改進后的流水線的吞吐率 :tTP1max5656/206/2063.3 流水線的性能指標重復設(shè)置瓶頸段q舉例:舉例:時空圖時

35、空圖q缺點:缺點:控制邏輯比較復雜,所需的硬件增加了??刂七壿嫳容^復雜,所需的硬件增加了。例如:例如:對前面的對前面的4 4段流水線段流水線 重復設(shè)置瓶頸段重復設(shè)置瓶頸段S S3 3:S S3a3a,S S3b3b,S S3c3c S1 S3a S2 S3b 入入 出出 S3c S4 t t t 3t 5757/206/2063.3 流水線的性能指標 段段 S3b S3a S2 S3c S4 時時間間 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 重復設(shè)置瓶頸段后的時空圖重復設(shè)置瓶頸段后的時

36、空圖5858/206/2063.3 流水線的性能指標加速比:完成同樣一批任務(wù),不使用流水線所用的時間 與使用流水線所用的時間之比。假設(shè):不使用流水線(即順序執(zhí)行)所用的間假設(shè):不使用流水線(即順序執(zhí)行)所用的間為為T Ts s,使用流水線后所用的時間為,使用流水線后所用的時間為T Tk k,則該流,則該流水線的加速比為水線的加速比為3.3.2 加速比ksTTS 5959/206/2063.3 流水線的性能指標1. 流水線各段時間相等(都是t)一條k段流水線完成n個連續(xù)任務(wù) 所需要的時間為所需要的時間為 Tk = (kn-1)t順序執(zhí)行n個任務(wù) 所需要的時間:所需要的時間: Ts= nkt (解

37、釋)解釋)流水線的實際加速比為1nknkS6060/206/2063.3 流水線的性能指標最大加速比knknkSn1limmax當當n nk k時,時,S S k k思考:思考:流水線的段數(shù)愈多愈好?流水線的段數(shù)愈多愈好? 6161/206/2063.3 流水線的性能指標w流水線的各段時間不完全相等時一條k段流水線完成n個連續(xù)任務(wù)的實際加速比為kikikiitttnttnS1211),max() 1(6262/206/2063.3 流水線的性能指標效率:流水線中的設(shè)備實際使用時間與整個運行時間 的比值,即流水線設(shè)備的利用率。 由于流水線有通過時間和排空時間,所以在連續(xù)由于流水線有通過時間和排空

38、時間,所以在連續(xù)完成完成n n個個任務(wù)的時間內(nèi),各段并不是滿負荷地工作。任務(wù)的時間內(nèi),各段并不是滿負荷地工作。1. 各段時間相等各段的效率ei相同 (解釋)3.3.3 效率121nknTtneeekk6363/206/2063.3 流水線的性能指標整條流水線的效率為kkkTtknkkekeeeE1211nknE11limmaxnknEn 可以寫成 最高效率為 當當n nk k時,時,E E11。 6464/206/2063.3 流水線的性能指標當流水線各段時間相等時,流水線的效率與吞吐率 成正比。 E=TPt w流水線的效率是流水線的實際加速比S與它的最大加速2. 比k的比值。 kSE 當當E

39、 E=1=1時,時,S S= =k k,實際加速比達到最大。,實際加速比達到最大。6565/206/2063.3 流水線的性能指標w從時空圖上看,效率就是n個任務(wù)占用的時空面積和w k個段總的時空面積之比。個段總的時空區(qū)區(qū)個任務(wù)實際占用的時空knE kikikiitttntktnE1211),max() 1(當各段時間不相等時6666/206/2063.3 流水線的性能指標 例例3.13.1 設(shè)在下圖所示的靜態(tài)流水線上計算:設(shè)在下圖所示的靜態(tài)流水線上計算: 流水線的輸出可以直接返回輸入端或暫存于相應(yīng)的流水寄存器中,流水線的輸出可以直接返回輸入端或暫存于相應(yīng)的流水寄存器中,試計算其吞吐率、加速比

40、和效率。試計算其吞吐率、加速比和效率。3.3.4 流水線的性能分析舉例)(41iiiBA 1 2 3 4 5 乘法乘法 加減法加減法 6 7 8 ( (每段的時間都為每段的時間都為t t) )6767/206/2063.3 流水線的性能指標解解:(1 1)選擇適合于流水線工作的算法選擇適合于流水線工作的算法q先計算先計算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再計算再計算( (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)畫出時空圖)畫出時空圖 3.3 流水線的性能指標 時間 段 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 流水線的性能指標p在在1818個個t t時間中,給

42、出了時間中,給出了7 7個個結(jié)果。吞吐率為:結(jié)果。吞吐率為: tTP187p 不用流水線,由于一次求和需不用流水線,由于一次求和需6 6t t,一次求積需一次求積需4 4t t, 則產(chǎn)生上述則產(chǎn)生上述7 7個結(jié)果共需個結(jié)果共需(4 46+36+34 4)t t = 36 = 36t t 加速比為加速比為(3 3)計算性能)計算性能21836ttS7070/206/2063.3 流水線的性能指標p 流水線的效率流水線的效率 25. 01884364E可以看出,在求解此問題時,該流水線的效率不高。 (原因)7171/206/2063.3 流水線的性能指標主要原因q多功能流水線在做某一種運算時,總有

43、一些段是空多功能流水線在做某一種運算時,總有一些段是空閑的。閑的。q靜態(tài)流水線在進行功能切換時,要等前一種運算全靜態(tài)流水線在進行功能切換時,要等前一種運算全部流出流水線后才能進行后面的運算。部流出流水線后才能進行后面的運算。q運算之間存在關(guān)聯(lián),后面有些運算要用到前面運算運算之間存在關(guān)聯(lián),后面有些運算要用到前面運算的結(jié)果。的結(jié)果。q流水線的工作過程有建立與排空部分。流水線的工作過程有建立與排空部分。 7272/206/2063.3 流水線的性能指標 例例3.2 3.2 有一條動態(tài)多功能流水線由有一條動態(tài)多功能流水線由5 5段組成,加法用段組成,加法用1 1、3 3、4 4、5 5段,乘法用段,乘

44、法用1 1、2 2、5 5段,第段,第2 2段的時間為段的時間為2 2t t,其余各段時間,其余各段時間均為均為t t,而且流水線的輸出可以直接返回輸入端或暫存于相應(yīng),而且流水線的輸出可以直接返回輸入端或暫存于相應(yīng)的流水寄存器中。若在該流水線上計算的流水寄存器中。若在該流水線上計算: : 試計算其吞吐率、加速比和效率。試計算其吞吐率、加速比和效率。)(41iiiBA 1 2 3 4 5 乘乘法法 加加法法 t 2t t t t 7373/206/2063.3 流水線的性能指標解解: : (1) (1) 選擇適合于流水線工作的算法選擇適合于流水線工作的算法p應(yīng)先計算應(yīng)先計算A A1 1B B1

45、1、A A2 2B B2 2、A A3 3B B3 3和和A A4 4B B4 4;p再計算再計算( (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) 畫出時空圖畫出時空圖(3) (3) 計算性能計算性能7474/206/2063.3 流水線的性能指標 時間 段 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 流水線的性能指標 下面我們再看一個例子:下面我們再看一個例子: 例例 在靜態(tài)流水線上計算在靜態(tài)流水線上計算: : 求:吞吐率,加速比,效率。求:吞吐率,加速比,效率。解:解: (1) (1) 確定適合于流水處理的計算過程確定適合于流水處理的計算過程 (2) (2) 畫時空圖畫時空圖 (3) (3) 性能計算性能計算 吞吐率吞吐率 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 流水線的性能指標7777/206/2063.3 流水線的性能指標可以看出,在求解此問題時,該流水線的效率不高。 動態(tài)流水線的時空圖 舉例舉例 : 這樣行不行? 正確答案7878/206/2063.3 流水線的性能指標1. 瓶頸問題理想情況下,流水線在工作時,其中的任務(wù)是同步地每一個時鐘周期往前流動一段。當流水線各段不均勻時,機器的時鐘周期取決于瓶頸段的延遲時間。在設(shè)計流水線時,要盡可能使各段時間相等。2. 流水線的額外開銷p

48、流水寄存器延遲流水寄存器延遲p時鐘偏移開銷時鐘偏移開銷3.3.5 流水線設(shè)計中的若干問題7979/206/2063.3 流水線的性能指標流水寄存器需要建立時間和傳輸延遲q建立時間:建立時間:在觸發(fā)寫操作的時鐘信號到達之前,寄在觸發(fā)寫操作的時鐘信號到達之前,寄 存器輸入必須保持穩(wěn)定的時間。存器輸入必須保持穩(wěn)定的時間。q傳輸延遲:傳輸延遲:時鐘信號到達后到寄存器輸出可用的時時鐘信號到達后到寄存器輸出可用的時 間。間。時鐘偏移開銷q流水線中,時鐘到達各流水寄存器的最大差值時間。流水線中,時鐘到達各流水寄存器的最大差值時間。(時鐘到達各流水寄存器的時間不是完全相同)(時鐘到達各流水寄存器的時間不是完全

49、相同)8080/206/2063.3 流水線的性能指標幾個問題q流水線并不能減少(而且一般是增加)單條指令的流水線并不能減少(而且一般是增加)單條指令的執(zhí)行時間,但卻能提高吞吐率。執(zhí)行時間,但卻能提高吞吐率。q增加流水線的深度(段數(shù))可以提高流水線的性能。增加流水線的深度(段數(shù))可以提高流水線的性能。q流水線的深度受限于流水線的額外開銷。流水線的深度受限于流水線的額外開銷。q當時鐘周期小到與額外開銷相同時,流水已沒意義。當時鐘周期小到與額外開銷相同時,流水已沒意義。因為這時在每一個時鐘周期中已沒有時間來做有用因為這時在每一個時鐘周期中已沒有時間來做有用的工作。的工作。w沖突問題 流水線設(shè)計中要

50、解決的重要問題之一。 8181/206/206介紹一個經(jīng)典的5段RISC流水線 首先討論在非流水情況下是如何實現(xiàn)的1. 一條指令的執(zhí)行過程分為以下5個周期:取指令周期(IF)qIR MemPC IR MemPC 。qPCPC值加值加4 4。(假設(shè)每條指令占。(假設(shè)每條指令占4 4個字節(jié))個字節(jié)) 3.4 流水線的相關(guān)與沖突3.4.1 一個經(jīng)典的5段流水線8282/206/2063.4 流水線的相關(guān)與沖突指令譯碼/讀寄存器周期(ID)q譯碼。譯碼。q用用IRIR中的寄存器編號去訪問通用寄存器組,讀出所需中的寄存器編號去訪問通用寄存器組,讀出所需的操作數(shù)。的操作數(shù)。執(zhí)行/有效地址計算周期(EX)

51、不同指令所進行的操作不同:q存儲器訪問指令:存儲器訪問指令:ALUALU把所指定的寄存器的內(nèi)容與偏把所指定的寄存器的內(nèi)容與偏 移量相加,形成用于訪存的有效地址。移量相加,形成用于訪存的有效地址。q寄存器寄存器寄存器寄存器ALUALU指令:指令:ALUALU按照操作碼指定的操按照操作碼指定的操 作對從通用寄存器組中讀取的數(shù)據(jù)進行運算。作對從通用寄存器組中讀取的數(shù)據(jù)進行運算。8383/206/2063.4 流水線的相關(guān)與沖突q寄存器立即數(shù)寄存器立即數(shù)ALUALU指令:指令:ALUALU按照操作碼指定的操按照操作碼指定的操 作對從通用寄存器組中讀取的第一操作數(shù)和立即數(shù)作對從通用寄存器組中讀取的第一操

52、作數(shù)和立即數(shù) 進行運算。進行運算。q分支指令:分支指令:ALUALU把偏移量與把偏移量與PCPC值相加,形成轉(zhuǎn)移目標值相加,形成轉(zhuǎn)移目標 的地址。同時,對在前一個周期讀出的操作數(shù)進行的地址。同時,對在前一個周期讀出的操作數(shù)進行 判斷,確定分支是否成功。判斷,確定分支是否成功。存儲器訪問分支完成周期(MEM) 該周期處理的指令只有l(wèi)oad、store和分支指令。 其他類型的指令在此周期不做任何操作。8484/206/2063.4 流水線的相關(guān)與沖突qloadload和和storestore指令指令loadload指令:指令:用上一個周期計算出的有效地址從存儲器中用上一個周期計算出的有效地址從存儲

53、器中 讀出相應(yīng)的數(shù)據(jù)。讀出相應(yīng)的數(shù)據(jù)。storestore指令:指令:把指定的數(shù)據(jù)寫入這個有效地址所指出的存把指定的數(shù)據(jù)寫入這個有效地址所指出的存 儲器單元。儲器單元。q分支指令分支指令 分支分支“成功成功”,就把轉(zhuǎn)移目標地址送入,就把轉(zhuǎn)移目標地址送入PCPC。 分支指令執(zhí)行完成。分支指令執(zhí)行完成。8585/206/2063.4 流水線的相關(guān)與沖突寫回周期(WB) ALU運算指令和load指令在這個周期把結(jié)果數(shù)據(jù)寫入通用寄存器組。 ALUALU運算指令:運算指令:結(jié)果數(shù)據(jù)來自結(jié)果數(shù)據(jù)來自ALUALU。 loadload指令:指令:結(jié)果數(shù)據(jù)來自存儲器系統(tǒng)。結(jié)果數(shù)據(jù)來自存儲器系統(tǒng)。 在這個實現(xiàn)方案

54、中:p分支指令需要分支指令需要4 4個時鐘個時鐘周期(如果把分支指令的執(zhí)行周期(如果把分支指令的執(zhí)行 提前到提前到IDID周期,則只需要周期,則只需要2 2個個周期)。周期)。pstorestore指令需要指令需要4 4個個周期。周期。p其他指令需要其他指令需要5 5個個周期才能完成。周期才能完成。w將上述實現(xiàn)方案修改為流水線實現(xiàn)一個經(jīng)典的5段流水線 q每一個周期作為一個流水段。每一個周期作為一個流水段。q在各段之間加上鎖存器(流水寄存器)。在各段之間加上鎖存器(流水寄存器)。 8787/206/2063.4 流水線的相關(guān)與沖突5段流水線的兩種描述方式q第一種描述第一種描述(類似于時空圖)(類

55、似于時空圖)第二種描述(按時間錯開的數(shù)據(jù)通路序列)8989/206/206 w采用流水線方式實現(xiàn)時,應(yīng)解決以下幾個問題:要保證不會在同一時鐘周期要求同一個功能段做 兩件不同的工作。例如,不能要求例如,不能要求ALUALU同時做有效地址計算和算術(shù)運算。同時做有效地址計算和算術(shù)運算。避免IF段的訪存(取指令)與MEM段的訪存(讀/寫數(shù)據(jù))發(fā)生沖突。q可以采用分離的指令存儲器和數(shù)據(jù)存儲器;可以采用分離的指令存儲器和數(shù)據(jù)存儲器;q一般采用分離的指令一般采用分離的指令CacheCache和數(shù)據(jù)和數(shù)據(jù)CacheCache。ID段和WB段都要訪問同一寄存器文件。 IDID段:讀段:讀WBWB段:寫段:寫3.

56、4 流水線的相關(guān)與沖突9090/206/2063.4 流水線的相關(guān)與沖突如何解決對同一寄存器的訪問沖突?如何解決對同一寄存器的訪問沖突? 把寫操作安排在時鐘周期的前半拍完成,把讀操作把寫操作安排在時鐘周期的前半拍完成,把讀操作安排在后半拍完成。安排在后半拍完成。考慮PC的問題q流水線為了能夠每個時鐘周期啟動一條新的指令,流水線為了能夠每個時鐘周期啟動一條新的指令,就必須在每個時鐘周期進行就必須在每個時鐘周期進行PCPC值的加值的加4 4操作,并保留操作,并保留新的新的PCPC值。這種操作值。這種操作必須在必須在IFIF段完成,段完成,以便為取下以便為取下一條指令做好準備。一條指令做好準備。 (

57、需設(shè)置一個專門的加法器)(需設(shè)置一個專門的加法器)q但分支指令也可能改變但分支指令也可能改變P PC C的值,而且是在的值,而且是在MEMMEM段段進行,進行,這會導致沖突。這會導致沖突。請考慮一下,如何處理分支指令?請考慮一下,如何處理分支指令?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) 對于兩條指令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ù)的流動關(guān)系,即如何從其產(chǎn) 生者流動到其消費者。 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個字節(jié)個字節(jié) BNE BNE R1R1,R2R2,LoopLoop/ / 如果如果R1R2R1R2,則分支,則分支 9494/206/2063.4 流水線的相關(guān)與沖突當數(shù)據(jù)的流動是經(jīng)過寄存器時,相關(guān)的檢測比較 直觀和容易。當數(shù)據(jù)的流動是經(jīng)過存儲器時,檢測比較復

60、雜。q相同形式的地址其有效地址未必相同。相同形式的地址其有效地址未必相同。q形式不同的地址其有效地址卻可能相同。形式不同的地址其有效地址卻可能相同。w名相關(guān)名:指令所訪問的寄存器或存儲器單元的名稱。2.如果兩條指令使用相同的名,但是它們之間并沒有數(shù)據(jù)流動,則稱這兩條指令存在名相關(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等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論