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

下載本文檔

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

文檔簡(jiǎn)介

1、第三章第三章 流水線(xiàn)技術(shù)流水線(xiàn)技術(shù) 主要內(nèi)容 n3.1 重疊執(zhí)行和先行控制 n3.2 流水線(xiàn)的基本概念 n3.3 流水線(xiàn)的性能指標(biāo) n3.4 流水線(xiàn)的相關(guān)與沖突 n3.5 流水線(xiàn)的實(shí)現(xiàn) u引入引入 提高計(jì)算機(jī)性能(速度)的兩個(gè)重要方法: 1. 縮短執(zhí)行每條指令所需的平均周期數(shù)CPI。 如:RISC技術(shù) 2. 提高處理機(jī)在執(zhí)行指令中的并行度,即同一時(shí)刻中 處理機(jī)內(nèi)同時(shí)運(yùn)行多條指令。 如:采用流水線(xiàn)技術(shù) 第三章第三章 流水線(xiàn)技術(shù)流水線(xiàn)技術(shù) n3.1 重疊執(zhí)行和先行控制 3.1 3.1 重疊執(zhí)行和先行控制重疊執(zhí)行和先行控制 一一. .指令的重疊執(zhí)行指令的重疊執(zhí)行 一條指令的執(zhí)行過(guò)程可以粗略地分為:取

2、指令、分析 和執(zhí)行三個(gè)階段,且這個(gè)次序是不能改變的。 取指令取指令執(zhí)行執(zhí)行分析分析 t Ti 用Ti表示執(zhí)行一條指令所需的時(shí)間,可以寫(xiě)成: Ti = t取指令 取指令 + t分析分析 + t執(zhí)行執(zhí)行 3.1 3.1 重疊執(zhí)行和先行控制重疊執(zhí)行和先行控制 如果連續(xù)執(zhí)行多條指令(一段程序),計(jì)算機(jī)對(duì)前后相鄰 指令的執(zhí)行過(guò)程可以有兩種不同的方式: 1. 順序執(zhí)行方式,即等前一條指令執(zhí)行完畢,緊接著執(zhí) 行下一條指令。 取指取指分析分析執(zhí)行執(zhí)行取指取指分析分析執(zhí)行執(zhí)行 k+ 1k 如果取指令、指令分析和指令執(zhí)行 的時(shí)間相等,都是t,則n條指令順 序執(zhí)行的時(shí)間為 : T=3nt 優(yōu):控制簡(jiǎn)單。優(yōu):控制簡(jiǎn)單

3、。 缺:速度慢;缺:速度慢; 功能部件利用率低。功能部件利用率低。 3.1 3.1 重疊執(zhí)行和先行控制重疊執(zhí)行和先行控制 l一次重疊執(zhí)行方式: 取指取指分析分析執(zhí)行執(zhí)行 取指取指分析分析執(zhí)行執(zhí)行 取指取指分析分析執(zhí)行執(zhí)行 第第k條指令條指令 第第k + 1條指令條指令 第第k + 2條指令條指令 如果三個(gè)階段所需時(shí)間t相等,n條指令 順序執(zhí)行的時(shí)間為 : T=(1+2n)t 2. 讓前后連續(xù)的指令在處理機(jī)內(nèi)以重疊的方式執(zhí)行. 優(yōu):總執(zhí)行時(shí)間減少近優(yōu):總執(zhí)行時(shí)間減少近 1/3; 功能部件利用率提高。功能部件利用率提高。 缺:需增加硬件;缺:需增加硬件; 控制過(guò)程更復(fù)雜??刂七^(guò)程更復(fù)雜。 二次重疊

4、執(zhí)行方式: 取指取指k分析分析k執(zhí)行執(zhí)行k 取指取指k+1分析分析k+1執(zhí)行執(zhí)行k+1 取指取指k+2分析分析k+2執(zhí)行執(zhí)行k+2 第第k條指令條指令 第第k + 1條指令條指令 第第k + 2條指令條指令 如果三個(gè)階段所需時(shí)間t相等,n條指令順 序執(zhí)行的時(shí)間為 : T=(2+n)t 優(yōu):總執(zhí)行時(shí)間減少近優(yōu):總執(zhí)行時(shí)間減少近 2/3; 功能部件利用率進(jìn)功能部件利用率進(jìn) 一步提高。一步提高。 缺:增加硬件;缺:增加硬件; 主存沖突。主存沖突。 3.1 3.1 重疊執(zhí)行和先行控制重疊執(zhí)行和先行控制 3.1 3.1 重疊執(zhí)行和先行控制重疊執(zhí)行和先行控制 二二. .先行控制技術(shù)先行控制技術(shù) 1實(shí)現(xiàn)重疊

5、執(zhí)行存在的問(wèn)題 (1)問(wèn)題一:)問(wèn)題一: 需要獨(dú)立的取指部件,分析部件,執(zhí)行部件。 解決方案: 分別設(shè)置對(duì)應(yīng)存儲(chǔ)控制器,指令控制器和運(yùn)算控制器。 3.1 3.1 重疊執(zhí)行和先行控制重疊執(zhí)行和先行控制 (2 2)問(wèn)題二:)問(wèn)題二: 主存訪(fǎng)問(wèn)沖突 n取指令,處理機(jī)按指令計(jì)數(shù)器PC的指示訪(fǎng)問(wèn)存儲(chǔ)器; n分析指令,可能需要從存儲(chǔ)器中獲取操作數(shù); n執(zhí)行指令,可能要求將結(jié)果寫(xiě)回到存儲(chǔ)器中。 處理機(jī)中三個(gè)獨(dú)立的部件可能同時(shí)提出對(duì)存儲(chǔ)器讀 寫(xiě)的請(qǐng)求,從而發(fā)生存儲(chǔ)器訪(fǎng)問(wèn)沖突。 3.1 3.1 重疊執(zhí)行和先行控制重疊執(zhí)行和先行控制 解決方案:解決方案: 1)分別設(shè)置兩個(gè)獨(dú)立的存儲(chǔ)器:指令存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器, 或

6、一級(jí)Cache分為程序Cache和數(shù)據(jù)Cache ,同時(shí)工作解 決同時(shí)讀指令和讀數(shù)據(jù)引起的沖突。 n程序空間和數(shù)據(jù)空間相互獨(dú)立并具有獨(dú)立的指令總線(xiàn)和數(shù) 據(jù)總線(xiàn)的系統(tǒng)結(jié)構(gòu)就稱(chēng)為哈佛結(jié)構(gòu)哈佛結(jié)構(gòu) n缺點(diǎn):缺點(diǎn):結(jié)構(gòu)復(fù)雜,需要大量的數(shù)據(jù)線(xiàn);對(duì)匯編程序員和機(jī) 器程序員不透明 2)多體交叉存儲(chǔ)器結(jié)構(gòu)也可減少?zèng)_突的發(fā)生。 3)先行控制先行控制技術(shù)是最根本的辦法 n在主存和指令分析部件之間增設(shè)指令緩沖站指令緩沖站(先行指令指先行指令指 令緩沖站令緩沖站) n先行指令傳沖站組成和工作原理先行指令傳沖站組成和工作原理 先行程序計(jì)數(shù)器先行程序計(jì)數(shù)器 PC1 現(xiàn)行程序計(jì)數(shù)器現(xiàn)行程序計(jì)數(shù)器 PC 指令分析部件指令分析

7、部件 指令寄存器指令寄存器 IR 控制邏輯控制邏輯 主存控制器主存控制器 指令緩沖指令緩沖 存存 儲(chǔ)儲(chǔ) 區(qū)區(qū) PC1PC1:用于從主存預(yù)?。河糜趶闹鞔骖A(yù)取 指令指令 p 每分析完一條指令,就自動(dòng)向指每分析完一條指令,就自動(dòng)向指 令緩沖站發(fā)出取下令緩沖站發(fā)出取下 一條指令的請(qǐng)求。一條指令的請(qǐng)求。 指令取出之后就把指令緩沖站中的指令取出之后就把指令緩沖站中的 該指令作廢。該指令作廢。 p 指令緩沖站中存放的指令的條數(shù)指令緩沖站中存放的指令的條數(shù) 是動(dòng)態(tài)變化的。是動(dòng)態(tài)變化的。 p 按隊(duì)列方式工作。按隊(duì)列方式工作。 p 只要指令緩沖站不滿(mǎn),它只要指令緩沖站不滿(mǎn),它 就自動(dòng)地向主存控制器發(fā)取就自動(dòng)地向主

8、存控制器發(fā)取 指令請(qǐng)求,不斷地預(yù)取指令。指令請(qǐng)求,不斷地預(yù)取指令。 PC: 用來(lái)記錄當(dāng)前正用來(lái)記錄當(dāng)前正 在分析的指令的地址在分析的指令的地址 3.1 3.1 重疊執(zhí)行和先行控制重疊執(zhí)行和先行控制 3.1 3.1 重疊執(zhí)行和先行控制重疊執(zhí)行和先行控制 n問(wèn)題:?jiǎn)栴}:在復(fù)雜的計(jì)算機(jī)指令系統(tǒng)中,各種指令在分析和執(zhí)行 階段所需的時(shí)間可能有很大的差別。于是,前面對(duì)三個(gè)階段 所需時(shí)間t相等的假設(shè)就可能不成立,所得到的節(jié)約三分之二 時(shí)間的結(jié)論也被動(dòng)搖了。下圖形象地表示了這種情況所造成 的影響。 第第k條指令條指令 分析分析k執(zhí)行執(zhí)行k 第第k+2條指令條指令執(zhí)行執(zhí)行k+2分析分析k+2 第第k+1條指令條

9、指令分析分析k+1 執(zhí)行執(zhí)行k+1 這種情況可用先行控制先行控制技術(shù)來(lái)緩解。 3.1 3.1 重疊執(zhí)行和先行控制重疊執(zhí)行和先行控制 2采用先行控制技術(shù)的處理機(jī) 運(yùn)算控制器運(yùn)算控制器 先先 行行 指指 令令 棧棧 后后 行行 寫(xiě)寫(xiě) 數(shù)數(shù) 棧棧 先先 行行 讀讀 數(shù)數(shù) 棧棧 存存 儲(chǔ)儲(chǔ) 控控 制制 器器 去主存儲(chǔ)器去主存儲(chǔ)器 地址線(xiàn)地址線(xiàn) 指指 令令 分分 析析 器器 先行操作棧先行操作棧 運(yùn)運(yùn) 算算 器器 通通 用用 寄寄 存存 器器 3.1 3.1 重疊執(zhí)行和先行控制重疊執(zhí)行和先行控制 n 緩沖站實(shí)際上是一個(gè)以先進(jìn)先出(FIFO)方式工作的 移位寄存器組,上圖表示了緩沖棧所處的地位。前置 部件

10、的輸出不直接送入后置部件,而是通過(guò)緩沖棧暫 存后才輸出。 前置部件前置部件 后置部件后置部件 緩沖站緩沖站 運(yùn)算控制器運(yùn)算控制器 先先 行行 指指 令令 棧棧 后后 行行 寫(xiě)寫(xiě) 數(shù)數(shù) 棧棧 先先 行行 讀讀 數(shù)數(shù) 棧棧 存存 儲(chǔ)儲(chǔ) 控控 制制 器器 去主存儲(chǔ)器去主存儲(chǔ)器 地址線(xiàn)地址線(xiàn) 指指 令令 分分 析析 器器 先行操作棧先行操作棧 運(yùn)運(yùn) 算算 器器 通通 用用 寄寄 存存 器器 3.1 3.1 重疊執(zhí)行和先行控制重疊執(zhí)行和先行控制 3先行控制原理 通過(guò)先行指令計(jì)數(shù)器通過(guò)先行指令計(jì)數(shù)器 PC1預(yù)取指令序列預(yù)取指令序列 通過(guò)現(xiàn)行指令計(jì)數(shù)器通過(guò)現(xiàn)行指令計(jì)數(shù)器PC取取 出現(xiàn)行指令出現(xiàn)行指令 指令分

11、析器指令分析器 指令分析器指令分析器:對(duì)取自先行指令棧的指令進(jìn)行預(yù)處理對(duì)取自先行指令棧的指令進(jìn)行預(yù)處理. 1.對(duì)于程序控制類(lèi)的指令,如轉(zhuǎn)移指令,指今分析對(duì)于程序控制類(lèi)的指令,如轉(zhuǎn)移指令,指今分析 器可以直接完成指令的執(zhí)行器可以直接完成指令的執(zhí)行. 2.對(duì)于數(shù)據(jù)運(yùn)算型指令,指令分析器要將它們變換對(duì)于數(shù)據(jù)運(yùn)算型指令,指令分析器要將它們變換 成寄存器成寄存器-寄存器(寄存器(RR型)指令,即將操作數(shù)預(yù)先型)指令,即將操作數(shù)預(yù)先 存到寄存器中,使指令能快速執(zhí)行存到寄存器中,使指令能快速執(zhí)行. 立即尋址立即尋址 傳數(shù)據(jù)傳數(shù)據(jù) 變址尋址變址尋址 或存儲(chǔ)器或存儲(chǔ)器 型指令型指令,傳傳 地址地址 RR*指令指

12、令 3.1 3.1 重疊執(zhí)行和先行控制重疊執(zhí)行和先行控制 n先行控制技術(shù)中采取了兩個(gè)根本的措施:指令預(yù)處理指令預(yù)處理 技術(shù)技術(shù)和緩沖技術(shù)緩沖技術(shù)。由于指令和數(shù)據(jù)的緩沖,保證了指 令分析和指令的執(zhí)行都能全速地運(yùn)行。 第第k條指令條指令分析分析k執(zhí)行執(zhí)行k 第第k+2條指令條指令執(zhí)行執(zhí)行k+2分析分析k+2 第第k+1條指令條指令分析分析k+1 執(zhí)行執(zhí)行k+1 第第k條指令條指令 分析分析k執(zhí)行執(zhí)行k 第第k+2條指令條指令執(zhí)行執(zhí)行k+2分析分析k+2 第第k+1條指令條指令分析分析k+1 執(zhí)行執(zhí)行k+1 改進(jìn)前改進(jìn)前 改進(jìn)后改進(jìn)后 n3.2 流水線(xiàn)的基本概念 3.2 3.2 流水線(xiàn)的基本概念流水

13、線(xiàn)的基本概念 一一. .什么是流水線(xiàn)什么是流水線(xiàn) 1. 流水線(xiàn)技術(shù)(pipelining) 把一個(gè)重復(fù)的過(guò)程分解為若干個(gè)子過(guò)程,每個(gè)子過(guò) 程由專(zhuān)門(mén)的功能部件來(lái)實(shí)現(xiàn)。 把多個(gè)處理過(guò)程在時(shí)間上錯(cuò)開(kāi),依次通過(guò)各功能段, 這樣,每個(gè)子過(guò)程就可以與其他的子過(guò)程并行進(jìn)行。 流水線(xiàn)流水線(xiàn)中的每個(gè)子過(guò)程及其功能部件稱(chēng)為中的每個(gè)子過(guò)程及其功能部件稱(chēng)為流水線(xiàn)的流水線(xiàn)的 級(jí)或段級(jí)或段,段與段相互連接形成流水線(xiàn)。流水線(xiàn)的段數(shù)稱(chēng),段與段相互連接形成流水線(xiàn)。流水線(xiàn)的段數(shù)稱(chēng) 為為流水線(xiàn)的深度流水線(xiàn)的深度(Pipeline Depth)。 3.2 3.2 流水線(xiàn)的基本概念流水線(xiàn)的基本概念 2流水線(xiàn)結(jié)構(gòu) 重疊執(zhí)行是流水線(xiàn)結(jié)構(gòu)的

14、思想基礎(chǔ),只要在指令分析器 與指令執(zhí)行部件之后都加上一個(gè)鎖存器,就成了一個(gè)簡(jiǎn)單的 流水線(xiàn)結(jié)構(gòu)。 指令執(zhí)行部件指令執(zhí)行部件 指令分析器指令分析器 鎖存器鎖存器 鎖存器鎖存器 分析分析k+1執(zhí)行執(zhí)行k t2 t1 結(jié)果出結(jié)果出指令入指令入 在流水線(xiàn)的每一個(gè)功能部件的后面都要有一個(gè)緩沖寄存器, 或稱(chēng)為鎖存器、閘門(mén)寄存器等,它的作用是保存本流水段的執(zhí)行 結(jié)果。 3時(shí)空?qǐng)D:可以直觀(guān)地表現(xiàn)流水線(xiàn)的工作過(guò)程 橫軸表示時(shí)間,即各條指令在處理機(jī)中經(jīng)歷各個(gè)操作時(shí)占用的時(shí)間段。橫軸表示時(shí)間,即各條指令在處理機(jī)中經(jīng)歷各個(gè)操作時(shí)占用的時(shí)間段。 縱軸表示空間,即流水線(xiàn)的各個(gè)子操作過(guò)程,通常也稱(chēng)為縱軸表示空間,即流水線(xiàn)的各

15、個(gè)子操作過(guò)程,通常也稱(chēng)為“功能段功能段”。 k t (n-1)t n-1n-1 123 n n n-1n-1 1 23 n n n-1n-1 1 23 n n n-1n-1 123 n n 時(shí)間時(shí)間 空間空間 S1 S2 S3 S4 n-1n-1 123 n n S5 填入填入 填滿(mǎn)填滿(mǎn)排空排空 通過(guò)時(shí)間排空時(shí)間 3.2 3.2 流水線(xiàn)的基本概念流水線(xiàn)的基本概念 4流水線(xiàn)的工作特點(diǎn) 1)一條流水線(xiàn)通常由多個(gè)流水段多個(gè)流水段組成,在每一個(gè)流水段有 專(zhuān)門(mén)的功能部件專(zhuān)門(mén)的功能部件來(lái)實(shí)現(xiàn)。 2)各流水段所需的時(shí)間應(yīng)盡可能相等,否則將引起流水線(xiàn) 堵塞、斷流。時(shí)間較長(zhǎng)的段將成為流水線(xiàn)瓶頸流水線(xiàn)瓶頸。 3)

16、流水線(xiàn)每個(gè)功能部件后面都有一個(gè)緩沖寄存器,稱(chēng)為流 水寄存器。 4)流水線(xiàn)的工作一般分為3個(gè)階段,即填入填入( (建立建立) )、填滿(mǎn)和填滿(mǎn)和 排空排空。 5)流水線(xiàn)技術(shù)適合于大量重復(fù)大量重復(fù)的時(shí)序過(guò)程時(shí)序過(guò)程,只有在輸入端 不斷地提供任務(wù),才能充分發(fā)揮流水線(xiàn)的效率。 3.2 3.2 流水線(xiàn)的基本概念流水線(xiàn)的基本概念 二二. . 流水線(xiàn)的種類(lèi)流水線(xiàn)的種類(lèi) 1.按處理機(jī)分類(lèi) (1)操作部件級(jí) 為最低級(jí)別的流水線(xiàn)。是把處理機(jī)的算術(shù)邏輯運(yùn)算部 件分段。如果某一部件的處理過(guò)程比較復(fù)雜,如浮點(diǎn)運(yùn)算, 需要較長(zhǎng)的時(shí)間。這時(shí)可以將該部件分為若干子部件,分 別完成浮點(diǎn)運(yùn)算中有關(guān)的子操作,這種在部件范圍內(nèi)形成 的

17、流水線(xiàn)稱(chēng)為操作部件級(jí)流水線(xiàn)。 3.2 3.2 流水線(xiàn)的基本概念流水線(xiàn)的基本概念 例如:一個(gè)浮點(diǎn)加法部件的流水線(xiàn): 求階差求階差對(duì)階對(duì)階尾數(shù)加尾數(shù)加規(guī)格化規(guī)格化 入入出出 部件級(jí)流水線(xiàn)通常是流水線(xiàn)處理機(jī)中的一部分,這時(shí) 的處理機(jī)由于流水級(jí)數(shù)較多,又稱(chēng)為超流水線(xiàn)處理機(jī)。 3.2 3.2 流水線(xiàn)的基本概念流水線(xiàn)的基本概念 (2)處理機(jī)級(jí) 又稱(chēng)為指令流水線(xiàn),就是將一條指令的解釋執(zhí)行過(guò)程分 解成若干個(gè)子過(guò)程,使每個(gè)子過(guò)程分別在一個(gè)部件中完成。 取指令取指令譯碼譯碼執(zhí)行執(zhí)行存結(jié)果存結(jié)果 入入出出 3.2 3.2 流水線(xiàn)的基本概念流水線(xiàn)的基本概念 (3)處理機(jī)間級(jí) 處理機(jī)間流水線(xiàn)通常是多處理機(jī)系統(tǒng)中對(duì)任務(wù)采

18、取的一種處 理策略。 上圖是處理機(jī)間流水線(xiàn)示意圖,圖中每個(gè)處理機(jī)是以任務(wù) 為單位進(jìn)行處理的,而處理機(jī)間的任務(wù)傳遞則是由公用存儲(chǔ) 器完成的。應(yīng)當(dāng)指出,圖中給出的是一個(gè)處理的“流水”, 并沒(méi)有涉及更多的硬件結(jié)構(gòu)。實(shí)際上這個(gè)過(guò)程更應(yīng)該看作是 一種任務(wù)的調(diào)度策略。 處理機(jī)處理機(jī)2 M 處理機(jī)處理機(jī)n M 輸出輸出 處理機(jī)處理機(jī)1 M 輸入輸入 任務(wù)任務(wù)1 任務(wù)任務(wù)2 任務(wù)任務(wù)n 3.2 3.2 流水線(xiàn)的基本概念流水線(xiàn)的基本概念 2.按流水線(xiàn)功能多少分類(lèi) (1)單功能流水線(xiàn) 指一條流水線(xiàn)只能完成一種單一的任務(wù)。 (2)多功能流水線(xiàn) 指能夠在一個(gè)時(shí)間段內(nèi)或不同時(shí)間段間改變部件之間 的連接,從而達(dá)到改變其功

19、能的流水線(xiàn)。 n在標(biāo)量運(yùn)算中,各種運(yùn)算是混在一起的。 n例如:ASC處理機(jī),運(yùn)算流水線(xiàn)(浮點(diǎn)加減法運(yùn)算+定點(diǎn) 乘法運(yùn)算) ASC處理機(jī)的多功能流水線(xiàn) 求求 階階 差差 對(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 3、 按照工作方式分類(lèi) (1)靜態(tài)流水線(xiàn) 當(dāng)執(zhí)行某一

20、規(guī)定功能的指令全部流出后,才允許改變部件間 連接的流水線(xiàn)。 3.2 流水線(xiàn)的基本概念流水線(xiàn)的基本概念 (可以是單功能流水線(xiàn)也可以是多功能流水線(xiàn))(可以是單功能流水線(xiàn)也可以是多功能流水線(xiàn)) 3.2 3.2 流水線(xiàn)的基本概念流水線(xiàn)的基本概念 (2)動(dòng)態(tài)流水線(xiàn) 沒(méi)有這種時(shí)間上的限制,可以在任何時(shí)候根據(jù)需要改變其連 接。 (只能是多功能流水線(xiàn))(只能是多功能流水線(xiàn)) 3.2 3.2 流水線(xiàn)的基本概念流水線(xiàn)的基本概念 4.按連接方式分類(lèi) (1)線(xiàn)性流水線(xiàn) 是指在部件上沒(méi)有反饋連接的流水線(xiàn)。在這種流水 線(xiàn)中,指令依次通過(guò)各個(gè)部件僅一次,完成指令執(zhí)行的 全過(guò)程。目前所使用的流水線(xiàn)絕大部分都是這類(lèi)線(xiàn)性流 水線(xiàn)

21、。 (2)非線(xiàn)性流水線(xiàn) 是指在各部件除了串行的連接外,還通過(guò)反饋線(xiàn)使 某些部件得以重復(fù)使用。指令在通過(guò)這種流水線(xiàn)時(shí),可 能在反饋部件上重復(fù)運(yùn)行若干次。 3.2 3.2 流水線(xiàn)的基本概念流水線(xiàn)的基本概念 反饋回路反饋回路 S1S2 S3 入入 出出 S3S3 S1S1 S2S2 時(shí)間時(shí)間 非線(xiàn)性流水線(xiàn)工作特性示意圖非線(xiàn)性流水線(xiàn)工作特性示意圖 3.2 3.2 流水線(xiàn)的基本概念流水線(xiàn)的基本概念 5.按流入流出順序分類(lèi) (1)順序流水線(xiàn) 其輸出的結(jié)果與輸入的次序相同,早期的流水線(xiàn)又稱(chēng) 為順序流水線(xiàn)。 (2)亂序流水線(xiàn) 將原始的輸入次序打亂,以最有利于處理機(jī)執(zhí)行的方 式運(yùn)行,在輸出結(jié)果時(shí)才恢復(fù)原次序。

22、在一些現(xiàn)代處理機(jī)中,如Pentium 4在流水線(xiàn)運(yùn)行過(guò)程中采用了 亂序方式。 3.2 3.2 流水線(xiàn)的基本概念流水線(xiàn)的基本概念 除了上述幾種分類(lèi)方法以外,還可以根據(jù)各種不同的觀(guān)點(diǎn)對(duì)流水 線(xiàn)進(jìn)行區(qū)分。比如: n按照數(shù)據(jù)表示方式的不同,可以將流水線(xiàn)分為標(biāo)量流水 線(xiàn)和向量流水線(xiàn)兩種。在標(biāo)量處理機(jī)中使用的當(dāng)然是標(biāo) 量流水線(xiàn)。 n根據(jù)流水線(xiàn)在各級(jí)之間流動(dòng)時(shí)的控制方法不同,又可以 分成同步和異步兩種流水線(xiàn)。 n處理機(jī)內(nèi)的指令流水線(xiàn)都是同步流水線(xiàn),即使用統(tǒng)一的時(shí) 鐘控制各級(jí)同時(shí)開(kāi)始同時(shí)完成動(dòng)作。 n而處理機(jī)間的流水線(xiàn)通常都是異步流水線(xiàn),需要在任務(wù)傳 送時(shí)進(jìn)行應(yīng)答,以確保傳輸?shù)目煽啃浴?課后練習(xí)課后練習(xí) (下

23、面的練習(xí)可以鞏固你的知識(shí)!下面的練習(xí)可以鞏固你的知識(shí)!) 1. 如果一條指令的執(zhí)行需要取指、譯碼和執(zhí)行三個(gè)過(guò)程,每一 級(jí)分別需要Dt, 2Dt和3Dt。畫(huà)出按順序執(zhí)行、一次重疊、二 次重疊及先行控制四種方式工作時(shí)的時(shí)空?qǐng)D。 n3.3 流水線(xiàn)的性能指標(biāo) 3.3 3.3 流水線(xiàn)的性能指標(biāo)流水線(xiàn)的性能指標(biāo) 吞吐率、加速比和效率是表明流水線(xiàn)性能的主要指標(biāo)。 一一. .吞吐率吞吐率 定義:在單位時(shí)間內(nèi)流水線(xiàn)所完成的任務(wù)數(shù)量。 k T n TP = n:任務(wù)總數(shù) Tk:處理完成n個(gè)任務(wù)所用的時(shí)間 3.3 流水線(xiàn)的性能指標(biāo)流水線(xiàn)的性能指標(biāo) n1. 各段執(zhí)行時(shí)間相等的流水線(xiàn) 一條k段的流水線(xiàn)完成n個(gè)任務(wù)的時(shí)空

24、圖: S1 S2 S3 S4 空間空間 時(shí)間時(shí)間 1 (單位:?jiǎn)挝唬簍) 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 所需總時(shí)間為:tnkTkD=) 1( 最大吞吐率為: ttnk n TP n D = D = 1 ) 1( lim max 實(shí)際吞吐率為: tnk n TP D = ) 1( 3.3 流水線(xiàn)的性能指標(biāo)流水線(xiàn)的性能指標(biāo) 分母Tk :當(dāng)n時(shí),(k 1) 可以忽略不計(jì),Tknt q 只有當(dāng)nk時(shí),才有TPTPmax。 n2. 各級(jí)執(zhí)行時(shí)間不等的流水線(xiàn) 執(zhí)行時(shí)間不等的流水線(xiàn)時(shí)空?qǐng)D 3.3 流水線(xiàn)的性能指標(biāo)流水線(xiàn)的

25、性能指標(biāo) n12 3 123 n n 321 312 n (n-1)t2 Tk 時(shí)間 空間 S4 S3 S2 S1 D = k i i t 1 各段時(shí)間不等的吞吐率吞吐率: 同樣,當(dāng)n時(shí)的最大吞吐率為: = DDDD = k i ki tttnt n TP 1 21 ),(max)1( ),(max 1 21 max kttt TP DDD = 3.3 流水線(xiàn)的性能指標(biāo)流水線(xiàn)的性能指標(biāo) n3. 流水線(xiàn)瓶頸問(wèn)題 如果流水線(xiàn)中各級(jí)的執(zhí)行時(shí)間不相等,其中 時(shí)間最長(zhǎng)的段就成了流水線(xiàn)中的“瓶頸”。瓶頸 問(wèn)題對(duì)流水線(xiàn)的吞吐率影響是明顯的,所以消除 “瓶頸”是設(shè)計(jì)流水線(xiàn)的一個(gè)重要原則。 n“瓶頸”問(wèn)題的消除

26、 采用的方法主要有兩種: 1)分割瓶頸部件的工作)分割瓶頸部件的工作 2)重復(fù)設(shè)置瓶頸部件)重復(fù)設(shè)置瓶頸部件 3.3 流水線(xiàn)的性能指標(biāo)流水線(xiàn)的性能指標(biāo) 3.3 流水線(xiàn)的性能指標(biāo)流水線(xiàn)的性能指標(biāo) 消除消除“瓶頸瓶頸”影響的兩種方法示意圖:影響的兩種方法示意圖: t S1S2S3 S4 t3t t S1 S2 入入 出出 S4 t t t t t t S3a S3c S3b S1 S3a S2 S3b 入入 出出 S3c S4 t t t 3t 細(xì)分瓶頸段 : 重復(fù)瓶頸段 : 3.3 流水線(xiàn)的性能指標(biāo)流水線(xiàn)的性能指標(biāo) 段段 S3b S3a S2 S3c S4 時(shí)間時(shí)間 S1 1 6 2 3 4 5

27、 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 缺點(diǎn):控制邏輯比較復(fù)雜,所需的硬件增加了。 不消除“瓶頸”時(shí)的吞吐率: 兩種方式在效果上是可以等效的,在輸入n條指令的情況 下,實(shí)際吞吐率都為: tn n tn n TP D = D = )5() 16( = DDDD = k i ki tttnt n TP 1 21 ),(max)1( = 63D Dtnt n )1( = 3D t3n n )( 3.3 流水線(xiàn)的性能指標(biāo)流水線(xiàn)的性能指標(biāo) 3.3 流水線(xiàn)的性能指標(biāo)流水線(xiàn)的性能指標(biāo) 二二. .加速比

28、加速比 n處理同一批任務(wù),不用流水線(xiàn)(順序執(zhí)行)與采用流水 線(xiàn)所花費(fèi)的時(shí)間之比,稱(chēng)為流水線(xiàn)的加速比流水線(xiàn)的加速比。 n設(shè)不使用流水線(xiàn)所用的時(shí)間為T(mén) Ts s,使用流水線(xiàn)所用時(shí) 間為T(mén) Tk k,那么加速比就是: k s T T S = n1. 流水線(xiàn)各段時(shí)間均相等流水線(xiàn)各段時(shí)間均相等(都是t) n一條k段流水線(xiàn)完成n個(gè)連續(xù)任務(wù) n順序執(zhí)行n個(gè)任務(wù)的時(shí)間:Ts = nkt n采用流水線(xiàn)所需時(shí)間為: Tk = ( k + n 1 )t n加速比為: 1)1( s = D D = nk nk tnk tkn T T S k n 當(dāng)nk, 最大加速比: k nk nk S n = = 1 lim ma

29、x 3.3 流水線(xiàn)的性能指標(biāo)流水線(xiàn)的性能指標(biāo) n2. 流水線(xiàn)的各段時(shí)間不完全相等流水線(xiàn)的各段時(shí)間不完全相等(ti表示第i段的執(zhí)行時(shí)間) n一條k k段流水線(xiàn)完成n n個(gè)連續(xù)任務(wù),一條指令的執(zhí)行時(shí)間是 各級(jí)運(yùn)行時(shí)間之和ti。 n順序執(zhí)行n個(gè)任務(wù)的時(shí)間:Ts = nti n采用流水線(xiàn)所需時(shí)間為: Tk =ti+(n-1)max (t1, t2, tk, ) n加速比為: = = DDDD D = k i ki k i i tttnt tn S 1 21 1 ),(max)1( 3.3 流水線(xiàn)的性能指標(biāo)流水線(xiàn)的性能指標(biāo) 3.3 流水線(xiàn)的性能指標(biāo)流水線(xiàn)的性能指標(biāo) 三三. . 效率效率 n定義:流水線(xiàn)中

30、的設(shè)備實(shí)際使用時(shí)間與整個(gè)運(yùn)行時(shí)間的比值, 即流水線(xiàn)設(shè)備的利用率。 n1. 假設(shè)各級(jí)執(zhí)行時(shí)間相等假設(shè)各級(jí)執(zhí)行時(shí)間相等 S1 S2 S3 S4 空間空間 時(shí)間時(shí)間 1 (單位:?jiǎn)挝唬簍) 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 n顯然,n越大,空閑部件占據(jù)的比例就小,流水線(xiàn)表現(xiàn)的效率越 高。最高效率為: 1 1 lim max = = nk n E n 3.3 流水線(xiàn)的性能指標(biāo)流水線(xiàn)的性能指標(biāo) 流水線(xiàn)效率等于: k kT tkn E D = 1 = nk n 注:上式僅適用于各段時(shí)間相等流水線(xiàn)。 3.3 流水線(xiàn)的性能指標(biāo)

31、流水線(xiàn)的性能指標(biāo) 2.從時(shí)空?qǐng)D上看,效率就是n個(gè)任 務(wù)占用的時(shí)空面積和k個(gè)段總的 時(shí)空面積之比。 n流水線(xiàn)效率的一般公式一般公式: (直觀(guān),通用) 空區(qū)個(gè)流水線(xiàn)級(jí)占用的總時(shí) 條指令占用的時(shí)空區(qū) k n E = n 例如:各級(jí)執(zhí)行時(shí)間不等的流水線(xiàn)中的效率 = = DDDD D = k i ki k i i tttntk tn E 1 21 1 ),(max) 1( S1 S2 S3 S4 空間空間 時(shí)間時(shí)間 1 (單位:?jiǎn)挝唬簍) 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 n同樣, 效率公式: 加速比公式: 兩者相結(jié)合得

32、出:E = S/k 或 S = k E 1 = nk nk S 1 = nk n E 效率公式: tnk n TP D = )1( 吞吐率公式: 1 = nk n E 兩者相結(jié)合得出:E = TP t 或TP = E /t 3.3 流水線(xiàn)的性能指標(biāo)流水線(xiàn)的性能指標(biāo) 3.效率與吞吐率、加速比的關(guān)系(各級(jí)時(shí)間相等的流水線(xiàn)) 例:一個(gè)5級(jí)的線(xiàn)性流水線(xiàn),可完成兩個(gè)數(shù)相加運(yùn)算。若 要進(jìn)行8個(gè)操作數(shù)連續(xù)相加運(yùn)算,如何實(shí)現(xiàn)?性能如何? 分析:分析: 假設(shè) M=A+B+C+D+E+F+G+H 首先,選擇一種效率較高的運(yùn)算方法。若按從左至右順序 相加進(jìn)行運(yùn)算,效率很低??刹捎脙蓛上嗉樱?M=(A+B)+(C+D

33、)+(E+F)+(G+H) 1 23 4 56 7 3.3 流水線(xiàn)的性能指標(biāo)流水線(xiàn)的性能指標(biāo) 工作時(shí)空?qǐng)D: 從時(shí)空?qǐng)D中看出,由于輸入任務(wù)的不連續(xù),全部7個(gè)任務(wù)(加法指 令),總共需要18個(gè)時(shí)鐘周期后完成。 如每段執(zhí)行時(shí)間均等于t,吞吐率TP為: 時(shí)間 空間 1234567 1234567 1234567 1234567 1234567 1 2 3 18 4 5 6 7 8 9 10 11 12 13 14 15 16 17 S5 S1 S2 S3 S4 ttT n TP k D = D = 1 389. 0 18 7 M=(A+B)+(C+D)+(E+F)+(G+H) 123 4 5 6 7

34、94. 1 18 57 = D D = t t T T S k s 這時(shí)流水線(xiàn)的加速比為: 而效率達(dá)到: 389. 0 185 57 = D D = t t k n E 段總的時(shí)空區(qū) 區(qū)個(gè)任務(wù)實(shí)際占用的時(shí)空 時(shí)間 空間 1234567 1234567 1234567 1234567 1234567 1 2 3 18 4 5 6 7 8 9 10 11 12 13 14 15 16 17 S5 S1 S2 S3 S4 效率為何仍然 不高? 整個(gè)流水線(xiàn)的效率很低的原因:整個(gè)流水線(xiàn)的效率很低的原因: (1) 存在有數(shù)據(jù)相關(guān),當(dāng)發(fā)生數(shù)據(jù)相關(guān)時(shí),必須等待前一個(gè)運(yùn)算結(jié) 果產(chǎn)生之后,下一個(gè)運(yùn)算才能開(kāi)始; (2) 流水線(xiàn)有填入與排空部分,當(dāng)輸入到流水線(xiàn)中的任務(wù)不多時(shí), 填入與排空部分所占的比例比較大。 3.3 流水線(xiàn)的性能指標(biāo)流水線(xiàn)的性能指標(biāo) n練習(xí):(線(xiàn)性多功能練習(xí):(線(xiàn)性多功能靜態(tài)流水線(xiàn)靜態(tài)流水線(xiàn),輸入任務(wù)是不連續(xù)的情況,輸入任務(wù)是不連續(xù)的情況, 計(jì)算流水線(xiàn)的吞吐率、加速比和效率。)計(jì)算流水線(xiàn)的吞吐率、加速比和效率。) n

溫馨提示

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

評(píng)論

0/150

提交評(píng)論