版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第三章第三章 流水線技術(shù)流水線技術(shù) 提高計算機性能(速度)的兩個重要方法:提高計算機性能(速度)的兩個重要方法: 1. 縮短執(zhí)行每條指令所需的平均周期數(shù)縮短執(zhí)行每條指令所需的平均周期數(shù)CPI, 如:如:RISC技術(shù)。技術(shù)。 2. 提高處理機在執(zhí)行指令中的并行度,即同提高處理機在執(zhí)行指令中的并行度,即同 一時刻中處理機內(nèi)同時運行多條指令。如:一時刻中處理機內(nèi)同時運行多條指令。如: 采用流水線技術(shù)。采用流水線技術(shù)。 3.1 重疊執(zhí)行和先行控制重疊執(zhí)行和先行控制 一一. .指令的重疊執(zhí)行指令的重疊執(zhí)行 一條指令的執(zhí)行過程可以粗略地分為:一條指令的執(zhí)行過程可以粗略地分為: 取指令、分析和執(zhí)行三個階段,
2、且這個取指令、分析和執(zhí)行三個階段,且這個 次序是不能改變的。次序是不能改變的。 取指令取指令執(zhí)行執(zhí)行分析分析 t Ti 用用Ti表示執(zhí)行一條指令所需的時間,可以寫成:表示執(zhí)行一條指令所需的時間,可以寫成: Ti = t取指令取指令 + t分析分析 + t執(zhí)行執(zhí)行 3.1 重疊執(zhí)行和先行控制重疊執(zhí)行和先行控制 如果連續(xù)執(zhí)行一段程序,計算機對前后如果連續(xù)執(zhí)行一段程序,計算機對前后 相鄰指令的執(zhí)行過程可以有兩種不同的相鄰指令的執(zhí)行過程可以有兩種不同的 選擇選擇: 1.順序執(zhí)行方式,即等前一條指令執(zhí)行完順序執(zhí)行方式,即等前一條指令執(zhí)行完 畢,緊接著執(zhí)行下一條指令畢,緊接著執(zhí)行下一條指令. 2. 讓前后
3、連續(xù)的指令在處理機內(nèi)以重疊的讓前后連續(xù)的指令在處理機內(nèi)以重疊的 方式執(zhí)行方式執(zhí)行. 取指取指分析分析執(zhí)行執(zhí)行取指取指分析分析執(zhí)行執(zhí)行 k+ 1k 3.1 重疊執(zhí)行和先行控制重疊執(zhí)行和先行控制 一次重疊執(zhí)行方式一次重疊執(zhí)行方式: 二次重疊執(zhí)行方式二次重疊執(zhí)行方式: 取指取指分析分析執(zhí)行執(zhí)行 取指取指分析分析執(zhí)行執(zhí)行 取指取指分析分析執(zhí)行執(zhí)行 第第k條指令條指令 第第k + 1條指令條指令 第第k + 2條指令條指令 取指取指分析分析執(zhí)行執(zhí)行 取指取指分析分析執(zhí)行執(zhí)行 取指取指分析分析執(zhí)行執(zhí)行 第第k條指令條指令 第第k + 1條指令條指令 第第k + 2條指令條指令 如果三個階段所需時間如果三個
4、階段所需時間t相等,相等,N條指令順序執(zhí)行條指令順序執(zhí)行 的時間為的時間為 :T=3Nt。 一次重疊執(zhí)行的時間:一次重疊執(zhí)行的時間:T=(1+2N)t。 二次重疊執(zhí)行的時間為:二次重疊執(zhí)行的時間為:T=(2+N)t。 3.1 重疊執(zhí)行和先行控制重疊執(zhí)行和先行控制 二二. .先行控制技術(shù)先行控制技術(shù) 1實現(xiàn)重疊執(zhí)行實現(xiàn)重疊執(zhí)行存在的問題存在的問題 (1)問題一:)問題一: 需要獨立的取指部件,分析部件,執(zhí)行部件。需要獨立的取指部件,分析部件,執(zhí)行部件。 解決方案解決方案: 設(shè)置對應(yīng)存儲控制器,指令控制器和運算控設(shè)置對應(yīng)存儲控制器,指令控制器和運算控 制器。制器。 3.1 重疊執(zhí)行和先行控制重疊執(zhí)
5、行和先行控制 (2 2)問題二:)問題二: 主存訪問沖突主存訪問沖突 n取指令時取指令時,處理機必須按指令計數(shù)器的指示訪問,處理機必須按指令計數(shù)器的指示訪問 存儲器;存儲器; n分析指令時分析指令時,可能需要從存儲器中獲取操作數(shù);,可能需要從存儲器中獲取操作數(shù); n執(zhí)行指令時執(zhí)行指令時,也可能要求將結(jié)果寫回到存儲器中。,也可能要求將結(jié)果寫回到存儲器中。 處理機中三個獨立的部件可能同時提出對存儲器處理機中三個獨立的部件可能同時提出對存儲器 讀寫的請求,從而發(fā)生存儲器訪問沖突。讀寫的請求,從而發(fā)生存儲器訪問沖突。 3.1 重疊執(zhí)行和先行控制重疊執(zhí)行和先行控制 解決方案:解決方案: 1)分別設(shè)置兩個
6、獨立的存儲器:指令存儲器和數(shù))分別設(shè)置兩個獨立的存儲器:指令存儲器和數(shù) 據(jù)存儲器,或一級據(jù)存儲器,或一級Cache分為程序分為程序Cache和數(shù)和數(shù) 據(jù)據(jù)Cache ,同時工作解決同時讀指令和讀數(shù)據(jù),同時工作解決同時讀指令和讀數(shù)據(jù) 引起的沖突。引起的沖突。 n程序空間和數(shù)據(jù)空間相互獨立并具有獨立的指程序空間和數(shù)據(jù)空間相互獨立并具有獨立的指 令總線和數(shù)據(jù)總線的系統(tǒng)結(jié)構(gòu)就稱為哈佛結(jié)構(gòu)令總線和數(shù)據(jù)總線的系統(tǒng)結(jié)構(gòu)就稱為哈佛結(jié)構(gòu) n缺點:結(jié)構(gòu)復雜,需要大量的數(shù)據(jù)線,對匯編缺點:結(jié)構(gòu)復雜,需要大量的數(shù)據(jù)線,對匯編 程序員和機器程序員不透明程序員和機器程序員不透明 2)多體交叉存儲器結(jié)構(gòu)也可減少沖突的發(fā)生。
7、)多體交叉存儲器結(jié)構(gòu)也可減少沖突的發(fā)生。 3)先行控制技術(shù)是最根本的辦法。)先行控制技術(shù)是最根本的辦法。 3.1 重疊執(zhí)行和先行控制重疊執(zhí)行和先行控制 n在復雜的計算機指令系統(tǒng)中,各種指令在分析在復雜的計算機指令系統(tǒng)中,各種指令在分析 和執(zhí)行階段所需的時間可能有很大的差別。于和執(zhí)行階段所需的時間可能有很大的差別。于 是,前面對三個階段所需時間是,前面對三個階段所需時間t相等的假設(shè)就可相等的假設(shè)就可 能不成立,所得到的節(jié)約三分之二時間的結(jié)論能不成立,所得到的節(jié)約三分之二時間的結(jié)論 也被動搖了。下圖形象地表示了這種情況所造也被動搖了。下圖形象地表示了這種情況所造 成的影響。成的影響。 第第k條指令
8、條指令 分析分析執(zhí)行執(zhí)行 第第k+2條指令條指令執(zhí)行執(zhí)行分析分析 第第k+1條指令條指令分析分析 執(zhí)行執(zhí)行 這種情況可用先行控制技術(shù)來緩解。這種情況可用先行控制技術(shù)來緩解。 3.1 重疊執(zhí)行和先行控制重疊執(zhí)行和先行控制 2采用先行控制技術(shù)的處理機采用先行控制技術(shù)的處理機 運算控制器運算控制器 先先 行行 指指 令令 棧棧 后后 行行 寫寫 數(shù)數(shù) 棧棧 先先 行行 讀讀 數(shù)數(shù) 棧棧 存存 儲儲 控控 制制 器器 去主存儲器去主存儲器 地址線地址線 指指 令令 分分 析析 器器 先行操作棧先行操作棧 運運 算算 器器 通通 用用 寄寄 存存 器器 3.1 重疊執(zhí)行和先行控制重疊執(zhí)行和先行控制 緩沖
9、棧實際上是一個以先進先出(緩沖棧實際上是一個以先進先出(FIFO)方)方 式工作的移位寄存器組,上圖表示了緩沖棧式工作的移位寄存器組,上圖表示了緩沖棧 所處的地位。前置部件的輸出不直接送入后所處的地位。前置部件的輸出不直接送入后 置部件,而是通過緩沖棧暫存后才輸出。置部件,而是通過緩沖棧暫存后才輸出。 前置部件前置部件 后置部件后置部件 緩沖棧緩沖棧 運算控制器運算控制器 先先 行行 指指 令令 棧棧 后后 行行 寫寫 數(shù)數(shù) 棧棧 先先 行行 讀讀 數(shù)數(shù) 棧棧 存存 儲儲 控控 制制 器器 去主存儲器去主存儲器 地址線地址線 指指 令令 分分 析析 器器 先行操作棧先行操作棧 運運 算算 器器
10、 通通 用用 寄寄 存存 器器 3.1 重疊執(zhí)行和先行控制重疊執(zhí)行和先行控制 3先行控制原理先行控制原理 通過先行指令計數(shù)器通過先行指令計數(shù)器 PC1預取指令序列預取指令序列 通過現(xiàn)行指令計數(shù)器通過現(xiàn)行指令計數(shù)器PC取取 出現(xiàn)行指令出現(xiàn)行指令 指令分析器指令分析器 指令分析器指令分析器:對取自先行指令棧的指令進行預處對取自先行指令棧的指令進行預處 理理. 1.對于程序控制類的指令,如轉(zhuǎn)移指令,指今對于程序控制類的指令,如轉(zhuǎn)移指令,指今 分析器可以直接完成指令的執(zhí)行分析器可以直接完成指令的執(zhí)行. 2.對于數(shù)據(jù)運算型指令,指令分析器要將它們對于數(shù)據(jù)運算型指令,指令分析器要將它們 變換成寄存器寄存器
11、型變換成寄存器寄存器型(RR型型)指令,即將操作指令,即將操作 數(shù)預先存到寄存器中,使指令能快速執(zhí)行數(shù)預先存到寄存器中,使指令能快速執(zhí)行. 立即尋址立即尋址 傳數(shù)據(jù)傳數(shù)據(jù) 變址尋址變址尋址 或存儲器或存儲器 型指令型指令,傳傳 地址地址 RR*指令指令 3.1 重疊執(zhí)行和先行控制重疊執(zhí)行和先行控制 n先行控制技術(shù)中采取了兩個根本的措施:先行控制技術(shù)中采取了兩個根本的措施:指令指令 預處理技術(shù)預處理技術(shù)和和緩沖技術(shù)緩沖技術(shù)。由于指令和數(shù)據(jù)的緩。由于指令和數(shù)據(jù)的緩 沖,保證了指令分析和指令的執(zhí)行都能全速地沖,保證了指令分析和指令的執(zhí)行都能全速地 運行。運行。 第第k條指令條指令分析分析執(zhí)行執(zhí)行 第
12、第k+2條指令條指令執(zhí)行執(zhí)行分析分析 第第k+1條指令條指令分析分析 執(zhí)行執(zhí)行 緩沖棧深度應(yīng)滿足以下關(guān)系:緩沖棧深度應(yīng)滿足以下關(guān)系: D取指棧取指棧D操作棧操作棧D讀棧讀棧D寫棧寫棧 第第k條指令條指令 分析分析執(zhí)行執(zhí)行 第第k+2條指令條指令執(zhí)行執(zhí)行分析分析 第第k+1條指令條指令分析分析 執(zhí)行執(zhí)行 3.2 流水線的基本概念流水線的基本概念 一一. .什么是流水線什么是流水線 1. 流水線技術(shù)流水線技術(shù)(pipelining) 把一個重復的過程分解為若干個子過程,每個把一個重復的過程分解為若干個子過程,每個 子過程由專門的功能部件來實現(xiàn)。子過程由專門的功能部件來實現(xiàn)。 把多個處理過程在時間上
13、錯開,依次通過各功把多個處理過程在時間上錯開,依次通過各功 能段,這樣,每個子過程就可以與其他的子過能段,這樣,每個子過程就可以與其他的子過 程并行進行。程并行進行。 流水線中的每個子過程及其功能部件稱為流水線中的每個子過程及其功能部件稱為流水流水 線的級或段線的級或段,段與段相互連接形成流水線。流,段與段相互連接形成流水線。流 水線的段數(shù)稱為水線的段數(shù)稱為流水線的深度。流水線的深度。 3.2 流水線的基本概念流水線的基本概念 2流水線結(jié)構(gòu)流水線結(jié)構(gòu) 重疊執(zhí)行是流水線結(jié)構(gòu)的思想基礎(chǔ),只要在指令重疊執(zhí)行是流水線結(jié)構(gòu)的思想基礎(chǔ),只要在指令 分析器與指令執(zhí)行部件之后都加上一個鎖存器,分析器與指令執(zhí)行
14、部件之后都加上一個鎖存器, 就成了一個簡單的流水線結(jié)構(gòu)。就成了一個簡單的流水線結(jié)構(gòu)。 指令執(zhí)行部件指令執(zhí)行部件 指令分析器指令分析器 鎖存器鎖存器 鎖存器鎖存器 分析分析k+1執(zhí)行執(zhí)行k t2 t1 結(jié)果出結(jié)果出指令入指令入 在流水線的每一個功能部件的后面都要有一個在流水線的每一個功能部件的后面都要有一個 緩沖寄存器,或稱為鎖存器、閘門寄存器等,它緩沖寄存器,或稱為鎖存器、閘門寄存器等,它 的作用是保存本流水段的執(zhí)行結(jié)果。的作用是保存本流水段的執(zhí)行結(jié)果。 3時空圖時空圖 時空圖可以直觀地表現(xiàn)流水線的工作過程時空圖可以直觀地表現(xiàn)流水線的工作過程 橫軸表示時間,即各條指令在處理機中經(jīng)歷各個操作時橫
15、軸表示時間,即各條指令在處理機中經(jīng)歷各個操作時 占用的時間段。如果各級執(zhí)行所需的時間相等,在橫軸上占用的時間段。如果各級執(zhí)行所需的時間相等,在橫軸上 應(yīng)表現(xiàn)為等距離的時間段。應(yīng)表現(xiàn)為等距離的時間段。 縱軸表示空間,即流水線的各個子操作過程,通常也稱縱軸表示空間,即流水線的各個子操作過程,通常也稱 為為“功能段功能段”。 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 時間時間 空間空間 S1 S2 S3 S4 n-1n-1 123 n n S5 填入填入 填滿填滿排空排空 3.2 流水線的基本概念
16、流水線的基本概念 4流水線的工作特點流水線的工作特點 1)一條流水線通常由多個流水段組成,在每一)一條流水線通常由多個流水段組成,在每一 個流水段有專門的功能部件來實現(xiàn)。個流水段有專門的功能部件來實現(xiàn)。 2)各流水段所需的時間應(yīng)盡可能相等,否則將)各流水段所需的時間應(yīng)盡可能相等,否則將 引起流水線堵塞、斷流。引起流水線堵塞、斷流。 3)流水線每個功能部件后面都有一個緩沖寄存)流水線每個功能部件后面都有一個緩沖寄存 器,稱為流水寄存器。器,稱為流水寄存器。 4)流水線的工作一般分為)流水線的工作一般分為3個階段,即建立(填個階段,即建立(填 入)、填滿和排空。入)、填滿和排空。 5)流水線技術(shù)適
17、合于大量重復的時序過程,只)流水線技術(shù)適合于大量重復的時序過程,只 有在輸入端不斷地提供任務(wù),才能充分發(fā)揮流有在輸入端不斷地提供任務(wù),才能充分發(fā)揮流 水線的效率。水線的效率。 3.2 流水線的基本概念流水線的基本概念 二二. 流水線的種類流水線的種類 1、 按處理機分類按處理機分類 n操作部件級操作部件級 為最低級別的流水線。是把處理機的算術(shù)邏輯為最低級別的流水線。是把處理機的算術(shù)邏輯 運算部件分段。如果某一部件的處理過程比較運算部件分段。如果某一部件的處理過程比較 復雜,如浮點運算復雜,如浮點運算,需要較長的時間。這時可以需要較長的時間。這時可以 將該部件分為若干子部件,分別完成浮點運算將該
18、部件分為若干子部件,分別完成浮點運算 中有關(guān)的子操作,這種在部件范圍內(nèi)形成的流中有關(guān)的子操作,這種在部件范圍內(nèi)形成的流 水線稱為操作部件級流水線。水線稱為操作部件級流水線。 3.2 流水線的基本概念流水線的基本概念 一個浮點加法部件的流水線:一個浮點加法部件的流水線: 求階差求階差對階對階尾數(shù)加尾數(shù)加規(guī)格化規(guī)格化 入入出出 部件級流水線通常是流水線處理機中的一部分,部件級流水線通常是流水線處理機中的一部分, 這時的處理機由于流水級數(shù)較多,又稱為超流水這時的處理機由于流水級數(shù)較多,又稱為超流水 線處理機。線處理機。 3.2 流水線的基本概念流水線的基本概念 n處理機級處理機級 又稱為指令流水線,
19、就是將一條指令的又稱為指令流水線,就是將一條指令的 解釋執(zhí)行過程分解解釋執(zhí)行過程分解成若干個子過程,使成若干個子過程,使 每個子過程分別在一個部件中完成。每個子過程分別在一個部件中完成。 n處理機間級處理機間級 處理機間流水線通常是多處理機系統(tǒng)中處理機間流水線通常是多處理機系統(tǒng)中 對任務(wù)采取的一種處理策略。對任務(wù)采取的一種處理策略。 3.2 流水線的基本概念流水線的基本概念 上圖是處理機間流水線示意圖,圖中每個處理上圖是處理機間流水線示意圖,圖中每個處理 機是以任務(wù)為單位進行處理的,而處理機間的機是以任務(wù)為單位進行處理的,而處理機間的 任務(wù)傳遞則是由公用存儲器完成的。應(yīng)當指出,任務(wù)傳遞則是由公
20、用存儲器完成的。應(yīng)當指出, 圖中給出的是一個處理的圖中給出的是一個處理的“流水流水”,并沒有涉,并沒有涉 及更多的硬件結(jié)構(gòu)。實際上這個過程更應(yīng)該看及更多的硬件結(jié)構(gòu)。實際上這個過程更應(yīng)該看 作是一種任務(wù)的調(diào)度策略。作是一種任務(wù)的調(diào)度策略。 處理機處理機2 M 處理機處理機n M 輸出輸出 處理機處理機1 M 輸入輸入 任務(wù)任務(wù)1 任務(wù)任務(wù)2 任務(wù)任務(wù)n 3.2 流水線的基本概念流水線的基本概念 2、 按流水線功能多少分類按流水線功能多少分類 n單功能流水線單功能流水線 指一條流水線只能完成一種單一的任務(wù)。指一條流水線只能完成一種單一的任務(wù)。 n多功能流水線多功能流水線 指能夠在一個時間段內(nèi)或不同
21、時間段間改指能夠在一個時間段內(nèi)或不同時間段間改 變部件之間的連接,從而達到改變其功能變部件之間的連接,從而達到改變其功能 的流水線。的流水線。 3.2 流水線的基本概念流水線的基本概念 在標量運算中,各種運算是混在一起的。在標量運算中,各種運算是混在一起的。 3、 按照工作方式分類按照工作方式分類 n靜態(tài)流水線靜態(tài)流水線 當執(zhí)行某一規(guī)定功能的指令全部流出后,才允當執(zhí)行某一規(guī)定功能的指令全部流出后,才允 許改變部件間連接的流水線。許改變部件間連接的流水線。 (可以是單功能流水線也可以是多功能流水線)(可以是單功能流水線也可以是多功能流水線) 3.2 流水線的基本概念流水線的基本概念 n動態(tài)流水線
22、動態(tài)流水線 沒有這種時間上的限制,可以在任何時候根據(jù)沒有這種時間上的限制,可以在任何時候根據(jù) 需要改變其連接。需要改變其連接。 (只能是多功能流水線)(只能是多功能流水線) 3.2 流水線的基本概念流水線的基本概念 4、 按連接方式分類按連接方式分類 n線性流水線線性流水線 是指在部件上沒有反饋連接的流水線。在這種流是指在部件上沒有反饋連接的流水線。在這種流 水線中,指令依次通過各個部件僅一次,完成指水線中,指令依次通過各個部件僅一次,完成指 令執(zhí)行的全過程。目前所使用的流水線絕大部分令執(zhí)行的全過程。目前所使用的流水線絕大部分 都是這類線性流水線。都是這類線性流水線。 n非線性流水線非線性流水
23、線 是指在各部件除了串行的連接外,還通過反饋線是指在各部件除了串行的連接外,還通過反饋線 使某些部件得以重復使用。指令在通過這種流水使某些部件得以重復使用。指令在通過這種流水 線時,可能在反饋部件上重復運行若干次。線時,可能在反饋部件上重復運行若干次。 3.2 流水線的基本概念流水線的基本概念 反饋回路反饋回路 S1S2 S3 入入 出出 S3S3 S1S1 S2S2 時間時間 非線性流水線工作特性示意圖非線性流水線工作特性示意圖 3.2 流水線的基本概念流水線的基本概念 5、 按流入流出順序分類按流入流出順序分類 n順序流水線順序流水線 其輸出的結(jié)果與輸入的次序相同,早期的流水線其輸出的結(jié)果
24、與輸入的次序相同,早期的流水線 又稱為又稱為順序流水線順序流水線。 n亂序流水線亂序流水線 將原始的輸入次序打亂,以最有利于處理機執(zhí)行將原始的輸入次序打亂,以最有利于處理機執(zhí)行 的方式運行,在輸出結(jié)果時才恢復原次序。的方式運行,在輸出結(jié)果時才恢復原次序。 在一些現(xiàn)代處理機中,如在一些現(xiàn)代處理機中,如Pentium 4在流水線運在流水線運 行過程中采用了行過程中采用了亂序方式亂序方式。 3.2 流水線的基本概念流水線的基本概念 除了上述幾種分類方法以外,還可以根據(jù)各種除了上述幾種分類方法以外,還可以根據(jù)各種 不同的觀點對流水線進行區(qū)分。比如:不同的觀點對流水線進行區(qū)分。比如: n按照數(shù)據(jù)表示方式
25、的不同,可以將流水線按照數(shù)據(jù)表示方式的不同,可以將流水線 分為分為標量流水線標量流水線和和向量流水線向量流水線兩種。在標兩種。在標 量處理機中使用的當然是標量流水線。量處理機中使用的當然是標量流水線。 n根據(jù)流水線在各級之間流動時的控制方法根據(jù)流水線在各級之間流動時的控制方法 不同,又可以分成不同,又可以分成同步同步和和異步異步兩種流水線。兩種流水線。 3.2 流水線的基本概念流水線的基本概念 n處理機內(nèi)的處理機內(nèi)的指令流水線指令流水線都是都是同步流水線同步流水線, 即使用統(tǒng)一的時鐘控制各級同時開始同時即使用統(tǒng)一的時鐘控制各級同時開始同時 完成動作。完成動作。 n而而處理機間的流水線處理機間的
26、流水線通常都是通常都是異步流水線異步流水線, 需要在任務(wù)傳送時進行應(yīng)答,以確保傳輸需要在任務(wù)傳送時進行應(yīng)答,以確保傳輸 的可靠性。的可靠性。 3.3 流水線的性能指標流水線的性能指標 吞吐率、加速比和效率是表明流水線性吞吐率、加速比和效率是表明流水線性 能的主要指標。能的主要指標。 一一.吞吐率吞吐率 把流水線在單位時間內(nèi)完成的任務(wù)量定把流水線在單位時間內(nèi)完成的任務(wù)量定 義為吞吐率。義為吞吐率。 k T n TP= = 其中其中, n為完成任務(wù)的總數(shù),在指令流水線中為完成任務(wù)的總數(shù),在指令流水線中 就是完成的指令總條數(shù);就是完成的指令總條數(shù);Tk是完成是完成n個任務(wù)所個任務(wù)所 用的時間。用的時
27、間。 3.3 流水線的性能指標流水線的性能指標 n各級執(zhí)行時間相等的流水線各級執(zhí)行時間相等的流水線 一條一條k級的流水線執(zhí)行級的流水線執(zhí)行n條指令的時空圖條指令的時空圖: tnkT k D D- -+ += =) 1( 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 k t (n-1)t n t (k-1)t Tk 時間時間 空間空間 S1 S2 S3 S4 所需的總時間為:所需的總時間為: 3.3 流水線的性能指標流水線的性能指標 當當n時,(時,(k 1)可以忽略不計,得到的)可以忽略不計,得到的 最大吞吐率為最大
28、吞吐率為: ttnk n TP n D D = = D D- -+ + = = 1 ) 1( lim max 所以,吞吐率為所以,吞吐率為: tnk n TP D D- -+ + = = ) 1( 3.3 流水線的性能指標流水線的性能指標 n各級執(zhí)行時間不等的流水線各級執(zhí)行時間不等的流水線 執(zhí)行時間不等的流水線時空圖執(zhí)行時間不等的流水線時空圖 n12 3 123 n n 321 312 n (n-1)t2 Tk 時間時間 空間空間 S4 S3 S2 S1 D = k i i t 1 3.3 流水線的性能指標流水線的性能指標 吞吐率的一般表示式為吞吐率的一般表示式為: 同樣方法可以得到當同樣方法
29、可以得到當n時的最大吞吐率為:時的最大吞吐率為: = = D DD DD D- -+ +D D = = k i ki tttnt n TP 1 21 ),(max)1( ),(max 1 21 max k ttt TP D DD DD D = = 3.3 流水線的性能指標流水線的性能指標 n如果流水線中各級的執(zhí)行時間不相等,如果流水線中各級的執(zhí)行時間不相等, 其中時間最長者就成了流水線中的其中時間最長者就成了流水線中的 “瓶頸瓶頸”。瓶頸問題對流水線的吞吐。瓶頸問題對流水線的吞吐 率影響是明顯的,所以消除率影響是明顯的,所以消除“瓶頸瓶頸” 是設(shè)計流水線的一個重要原則。是設(shè)計流水線的一個重要原
30、則。 n“瓶頸瓶頸”問題的消除問題的消除 采用的方法主要有兩種:采用的方法主要有兩種: 1)分割瓶頸部件的工作)分割瓶頸部件的工作 2)重復設(shè)置瓶頸部件)重復設(shè)置瓶頸部件 3.3 流水線的性能指標流水線的性能指標 消除消除“瓶頸瓶頸”影響的兩種方法示意圖:影響的兩種方法示意圖: S2-1S2-2S2-3 S S2 2(3(3t ) tt (a) (b) S2-3 S2-1 S2-2 t2=3t 33t S1S2S3 S4 ttt 兩種方式在效果上是可以等效的,在輸入兩種方式在效果上是可以等效的,在輸入n條指令的情況條指令的情況 下,實際吞吐率都為:下,實際吞吐率都為: tn n tn n TP
31、 D D+ + = = D D- -+ + = = )5()16( 3.3 流水線的性能指標流水線的性能指標 不消除不消除“瓶頸瓶頸”時的吞吐率:時的吞吐率: 兩種方式在效果上是可以等效的,在輸入兩種方式在效果上是可以等效的,在輸入n條指令的情況條指令的情況 下,實際吞吐率都為:下,實際吞吐率都為: tn n tn n TP D D+ + = = D D- -+ + = = )5()16( = = D DD DD D- -+ +D D = = k i ki tttnt n TP 1 21 ),(max)1( = = 6 6 3D3D - -+ +D Dtnt n )1( = = 3 3D D+
32、 + t3n n )( 3.3 流水線的性能指標流水線的性能指標 二二.加速比加速比 n處理同一批任務(wù),不用流水線與采用流處理同一批任務(wù),不用流水線與采用流 水線時所花費的時間之比,稱為流水線水線時所花費的時間之比,稱為流水線 的的加速比加速比。 n如果不用流水線所用的時間為如果不用流水線所用的時間為T0,用了,用了 流水線所用時間為流水線所用時間為Tk,那么加速比就是:,那么加速比就是: S = T0/Tk 3.3 流水線的性能指標流水線的性能指標 n不用流水線時,每條指令執(zhí)行時必須在時間上不用流水線時,每條指令執(zhí)行時必須在時間上 順序地完成各處理步驟,那么順序地完成各處理步驟,那么n條指令
33、所需時條指令所需時 間就為間就為T0 = nkt。而一個采用流水線的處理。而一個采用流水線的處理 機所需時間為機所需時間為Tk = ( k + n 1 )t。 n所以加速比就為所以加速比就為 1)1( 0 - -+ + = = D D- -+ + D D = = = nk nk tnk tkn T T S k 同樣辦法可以得到最大加速比同樣辦法可以得到最大加速比 k nk nk S n = = - -+ + = = 1 lim max 3.3 流水線的性能指標流水線的性能指標 n如果考慮各級執(zhí)行時間不等的情況時,一條指如果考慮各級執(zhí)行時間不等的情況時,一條指 令的執(zhí)行時間是各級運行時間之和。在
34、沒有流令的執(zhí)行時間是各級運行時間之和。在沒有流 水線時,水線時,n條指令應(yīng)是一條指令的條指令應(yīng)是一條指令的n倍。于是,倍。于是, 可得到加速比為可得到加速比為 = = = = D DD DD D- -+ +D D D D = = k i ki k i i tttnt tn S 1 21 1 ),(max)1( 3.3 流水線的性能指標流水線的性能指標 三三. 效率效率 n效率被定義為:效率被定義為: 空區(qū)空區(qū)個流水線級占用的總時個流水線級占用的總時 條指令占用的時空區(qū)條指令占用的時空區(qū) k n E = = n-1n-1 12 3 n n n-1n-1 1 23 n n n-1n-1 1 23
35、n n n-1n-1 123 n n k t (n-1)t n t (k-1)t Tk 時間時間 空間空間 S1 S2 S3 S4 各級執(zhí)行時間相等的流水線效率等于:各級執(zhí)行時間相等的流水線效率等于: 1) 1(- -+ + = = D D- -+ + D D = = nk n tnkk tkn E 3.3 流水線的性能指標流水線的性能指標 n顯然,顯然,n越大,空閑部件占據(jù)的比例就小,越大,空閑部件占據(jù)的比例就小, 流水線表現(xiàn)的效率越高。最高效率為:流水線表現(xiàn)的效率越高。最高效率為: 1 1 lim max = = - -+ + = = nk n E n n 通過類似的分析方法,我們也可以得
36、到在各通過類似的分析方法,我們也可以得到在各 級執(zhí)行時間不等的流水線中的效率計算方法。級執(zhí)行時間不等的流水線中的效率計算方法。 = = = = D DD DD D- -+ +D D D D = = k i ki k i i tttntk tn E 1 21 1 ),(max)1( 3.3 流水線的性能指標流水線的性能指標 n同樣,同樣, 效率公式:效率公式: 加速比公式:加速比公式: 兩者相結(jié)合得出:兩者相結(jié)合得出:E = S/k 或或 S = k E 1- -+ + = = nk nk S 1- -+ + = = nk n E 效率公式:效率公式: tnk n TP D D- -+ + =
37、= ) 1( 吞吐率公式:吞吐率公式: 1- -+ + = = nk n E 兩者相結(jié)合得出:兩者相結(jié)合得出:E = TP t 或或TP = E /t。 僅限于各級執(zhí)行時僅限于各級執(zhí)行時 間相等的流水線間相等的流水線 3.3 流水線的性能指標流水線的性能指標 例:一個例:一個5級的線性流水線,可完成兩個數(shù)相加運級的線性流水線,可完成兩個數(shù)相加運 算?,F(xiàn)要進行算?,F(xiàn)要進行8個操作數(shù)連續(xù)相加運算,如何實個操作數(shù)連續(xù)相加運算,如何實 現(xiàn)?性能如何?現(xiàn)?性能如何? 分析:分析: 若按若按M=A+B+C+D+E+F+G+H進行運算,效率很進行運算,效率很 低。低。 可改為:可改為: M=(A+B)+(C
38、+D)+(E+F)+(G+H) 1 2 34 56 7 工作時空圖:工作時空圖: 從時空圖中看出,由于輸入任務(wù)的不連續(xù),全從時空圖中看出,由于輸入任務(wù)的不連續(xù),全 部部7個任務(wù)(指令),經(jīng)過個任務(wù)(指令),經(jīng)過18個時鐘周期后完成。個時鐘周期后完成。 如每段執(zhí)行時間均等于如每段執(zhí)行時間均等于t,吞吐率,吞吐率TP為:為: 時間時間 空間空間 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
39、18 7 M=(A+B)+(C+D)+(E+F)+(G+H) 123 4 5 6 7 94. 1 18 57 0 = D D = t t T T S k 這時流水線的加速比為這時流水線的加速比為: 而效率達到:而效率達到: 389. 0 185 57 0 = D D = = t t Tk T E k 時間時間 空間空間 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 效率為何仍效率為何仍 然不高?然不高? 3.3 流水線的性能指標流水線的性能指
40、標 整個流水線的效率很低的原因:整個流水線的效率很低的原因: (1) 存在有數(shù)據(jù)相關(guān),當發(fā)生數(shù)據(jù)相關(guān)時,必存在有數(shù)據(jù)相關(guān),當發(fā)生數(shù)據(jù)相關(guān)時,必 須等待前一個運算結(jié)果產(chǎn)生之后,下一個運算須等待前一個運算結(jié)果產(chǎn)生之后,下一個運算 才能開始;才能開始; (2) 流水線有填入與排空部分,當輸入到流水流水線有填入與排空部分,當輸入到流水 線中的任務(wù)不多時,填入與排空部分所占的比線中的任務(wù)不多時,填入與排空部分所占的比 例比較大。例比較大。 n練習:線性多功能練習:線性多功能靜態(tài)流水線靜態(tài)流水線,輸入任務(wù)是,輸入任務(wù)是 不連續(xù)的情況,計算流水線的吞吐率、加速不連續(xù)的情況,計算流水線的吞吐率、加速 比和效率
41、。比和效率。 用用TIASC計算機的多功能靜態(tài)流水線計算計算機的多功能靜態(tài)流水線計算 兩個向量的點積:兩個向量的點積: ZABCDEFGH 3.3 流水線的性能指標流水線的性能指標 解:為了盡量減少數(shù)據(jù)相關(guān)性,充分發(fā)揮流水解:為了盡量減少數(shù)據(jù)相關(guān)性,充分發(fā)揮流水 線的作用。計算的順序應(yīng)該是先做線的作用。計算的順序應(yīng)該是先做4 4個乘法:個乘法: ABAB、CDCD、EFEF和和GHGH,然后做兩個加法,然后做兩個加法ABABCDCD和和EFEF GHGH,最后求總的結(jié)果,最后求總的結(jié)果Z Z。 Z Z(AB)(AB)(CD)(CD)(EF)(EF)(GH)(GH) 1 12 2 3 3 4 4
42、5 57 76 6 3.3 流水線的性能指標流水線的性能指標 從流水線時空圖中看到,用從流水線時空圖中看到,用20個時鐘周期完成了個時鐘周期完成了 7個運算。當每一個功能段的延遲時間都為個運算。當每一個功能段的延遲時間都為t時,時, 有:有:Tk20 t ,n7。流水線的吞吐率。流水線的吞吐率TP為為 如果采用順序執(zhí)行方式,完成一次乘法要用如果采用順序執(zhí)行方式,完成一次乘法要用4 4 個個t ,完成一次加法要用,完成一次加法要用6 6個個t ,則完成全部,則完成全部 運算要用運算要用 則流水線的加速比則流水線的加速比S S為:為: 整個流水線共有整個流水線共有8 8段,流水線效率段,流水線效率
43、E E為:為: 效率更低的原因?效率更低的原因? 原因:原因:靜態(tài)流水線造成加法運算必須在乘法運算靜態(tài)流水線造成加法運算必須在乘法運算 所有指令流出流水線后才能進行。所有指令流出流水線后才能進行。 解決:解決:改為改為動態(tài)流水線動態(tài)流水線 課后任務(wù):課后任務(wù): 采用動態(tài)流水線對其性能進行分析采用動態(tài)流水線對其性能進行分析 3.3 流水線的性能指標流水線的性能指標 四、流水線設(shè)計中的若干問題:四、流水線設(shè)計中的若干問題: n瓶頸問題瓶頸問題 當流水線各段不均勻時,當流水線各段不均勻時,機器的時鐘周期取決于瓶頸機器的時鐘周期取決于瓶頸 段的延遲時間。段的延遲時間。 在設(shè)計流水線時,要盡可能使各段時
44、間相等。在設(shè)計流水線時,要盡可能使各段時間相等。 n流水線的額外開銷流水線的額外開銷 p流水寄存器延遲流水寄存器延遲 p時鐘偏移開銷時鐘偏移開銷 n沖突問題沖突問題 流水線設(shè)計中要解決的流水線設(shè)計中要解決的重要問題之一。重要問題之一。 3.4 流水線的相關(guān)與沖突流水線的相關(guān)與沖突 一、一個經(jīng)典的一、一個經(jīng)典的5段流水線段流水線 一條指令的執(zhí)行過程分為一條指令的執(zhí)行過程分為5個周期:取指令周個周期:取指令周 期(期(IF)、指令譯碼)、指令譯碼/讀寄存器周期(讀寄存器周期(ID)、執(zhí))、執(zhí) 行行/有效地址計算周期(有效地址計算周期(EX)、存儲器訪問)、存儲器訪問 分支完成周期(分支完成周期(M
45、EM)、)、寫回周期(寫回周期(WBWB)。)。 3.4 流水線的相關(guān)與沖突流水線的相關(guān)與沖突 n三類指令對三類指令對5 5級流水線的占用情況級流水線的占用情況: : ALU指令指令LOAD/STOREBRANCH IF(S1) 取指取指取指取指取指取指 ID(S2) 譯碼譯碼,讀寄存讀寄存 器堆器堆 譯碼譯碼,讀寄存器堆讀寄存器堆譯碼譯碼,讀寄存器讀寄存器 堆堆 EX(S3) 執(zhí)行執(zhí)行計算有效地址計算有效地址計算轉(zhuǎn)移目標地計算轉(zhuǎn)移目標地 址址,設(shè)置條件碼設(shè)置條件碼 MEM(S4) -訪存訪存(讀或?qū)懽x或?qū)?若條件成立若條件成立,將將 轉(zhuǎn)移目標地址送轉(zhuǎn)移目標地址送 PC WB(S5) 結(jié)果寫回
46、寄存結(jié)果寫回寄存 器堆器堆 讀出數(shù)據(jù)寫入寄存器堆讀出數(shù)據(jù)寫入寄存器堆- 3.4 流水線的相關(guān)與沖突流水線的相關(guān)與沖突 n 5 5段流水線的兩種描述方式段流水線的兩種描述方式 第一種描述第一種描述(類似于時空圖)(類似于時空圖) 3.4 流水線的相關(guān)與沖突流水線的相關(guān)與沖突 第二種描述第二種描述(按時間錯開的數(shù)據(jù)通路序列)(按時間錯開的數(shù)據(jù)通路序列) 3.4 流水線的相關(guān)與沖突流水線的相關(guān)與沖突 二、相關(guān)二、相關(guān) n相關(guān)是指兩條指令之間存在某種依賴關(guān)系。相關(guān)是指兩條指令之間存在某種依賴關(guān)系。 n從對流水線的分析中可以發(fā)現(xiàn),如果流水線從對流水線的分析中可以發(fā)現(xiàn),如果流水線 始終處于始終處于“充滿充
47、滿”的狀態(tài),實際性能可以達的狀態(tài),實際性能可以達 到或接近理論值。如果流入流水線的指令出到或接近理論值。如果流入流水線的指令出 現(xiàn)斷流,將極大地影響流水線的性能?,F(xiàn)斷流,將極大地影響流水線的性能。 n 造成斷流的原因主要是三大類造成斷流的原因主要是三大類: 1)名相關(guān))名相關(guān) 2)數(shù)據(jù)相關(guān))數(shù)據(jù)相關(guān) 3)控制相關(guān))控制相關(guān) 3.4 流水線的相關(guān)與沖突流水線的相關(guān)與沖突 1、名相關(guān)、名相關(guān) 名:名:指令所訪問的寄存器或存儲器單元的指令所訪問的寄存器或存儲器單元的 名稱。名稱。 如果兩條指令使用相同的名,但是它們之如果兩條指令使用相同的名,但是它們之 間并沒有數(shù)據(jù)流動,則稱這兩條指令存在間并沒有數(shù)
48、據(jù)流動,則稱這兩條指令存在 名相關(guān)。名相關(guān)。 3.4 流水線的相關(guān)與沖突流水線的相關(guān)與沖突 指令指令j(在后)與指令(在后)與指令i(在前)之間的名(在前)之間的名 相關(guān)有兩種:相關(guān)有兩種: 反相關(guān):反相關(guān):如果指令如果指令j寫的名與指令寫的名與指令i讀讀 的名相同,則稱指令的名相同,則稱指令i和和j發(fā)生了反相發(fā)生了反相 關(guān)。關(guān)。 指令指令j寫的名指令寫的名指令i讀的名讀的名 如:如: DIV.DDIV.D F2 F2,F(xiàn)6F6,F(xiàn)4F4 ADD.D ADD.D F6F6,F(xiàn)0F0,F(xiàn)12F12 3.4 流水線的相關(guān)與沖突流水線的相關(guān)與沖突 輸出相關(guān):輸出相關(guān):如果指令如果指令j和指令和指令i
49、寫相同的名,寫相同的名, 則稱指令則稱指令i和和j發(fā)生了輸出相關(guān)。發(fā)生了輸出相關(guān)。 指令指令j寫的名指令寫的名指令i寫的名寫的名 名相關(guān)的兩條指令之間并沒有數(shù)據(jù)的名相關(guān)的兩條指令之間并沒有數(shù)據(jù)的 傳送。傳送。 如果一條指令中的名改變了,并不影如果一條指令中的名改變了,并不影 響另外一條指令的執(zhí)行。響另外一條指令的執(zhí)行。 但名相關(guān)的兩條指令之間的執(zhí)行順序但名相關(guān)的兩條指令之間的執(zhí)行順序 必須嚴格遵守。必須嚴格遵守。 解決方法解決方法: : 換名技術(shù):換名技術(shù):通過改變指令中操作數(shù)的名來消除通過改變指令中操作數(shù)的名來消除 名相關(guān)。名相關(guān)。 例如:考慮下述代碼:例如:考慮下述代碼: DIV.DDIV
50、.DF2F2,F(xiàn)6F6,F(xiàn)4F4 ADD.D ADD.DF6F6,F(xiàn)0F0,F(xiàn)12F12 SUB.D SUB.DF8F8,F(xiàn)6F6,F(xiàn)14F14 DIV.DDIV.D和和ADD.DADD.D存在反相關(guān)。存在反相關(guān)。 進行寄存器換名(進行寄存器換名(F6F6換成換成S S)后,變成:)后,變成: DIV.DDIV.DF2F2,F(xiàn)6F6,F(xiàn)4F4 ADD.D ADD.DS S,F(xiàn)0F0,F(xiàn)12F12 SUB.D SUB.DF8F8,S S,F(xiàn)14 F14 3.4 流水線的相關(guān)與沖突流水線的相關(guān)與沖突 2、數(shù)據(jù)相關(guān)、數(shù)據(jù)相關(guān) 對于兩條指令對于兩條指令i(在前)和(在前)和j(在后),如(在后),如
51、果下述條件之一成立,則稱果下述條件之一成立,則稱指令指令j與與指令指令i 數(shù)據(jù)相關(guān)。數(shù)據(jù)相關(guān)。 指令指令j使用指令使用指令i產(chǎn)生的結(jié)果;產(chǎn)生的結(jié)果; 指令指令j與指令與指令k數(shù)據(jù)相關(guān),而指令數(shù)據(jù)相關(guān),而指令k又與指又與指 令令i數(shù)據(jù)相關(guān)。數(shù)據(jù)相關(guān)。 數(shù)據(jù)相關(guān)具有數(shù)據(jù)相關(guān)具有傳遞性。傳遞性。 數(shù)據(jù)相關(guān)反映了數(shù)據(jù)的流動關(guān)系,即如何數(shù)據(jù)相關(guān)反映了數(shù)據(jù)的流動關(guān)系,即如何 從其產(chǎn)生者流動到其消費者。從其產(chǎn)生者流動到其消費者。 例如:下面這一段代碼存在數(shù)據(jù)相關(guān)例如:下面這一段代碼存在數(shù)據(jù)相關(guān) Loop: L.D F0,0(R1)/ F0為數(shù)組元素為數(shù)組元素 ADD.D F4,F(xiàn)0,F(xiàn)2/ 加上加上F2中的
52、值中的值 S.D 0(R1),),F(xiàn)4/ 保存結(jié)果保存結(jié)果 DADDIU R1,R1,8 / 數(shù)組指針遞減數(shù)組指針遞減8個字節(jié)個字節(jié) BNE R1,R2,Loop / 如果如果R1R2,則分支,則分支 3.4 流水線的相關(guān)與沖突流水線的相關(guān)與沖突 當數(shù)據(jù)的流動是經(jīng)過寄存器時,相關(guān)的檢測比當數(shù)據(jù)的流動是經(jīng)過寄存器時,相關(guān)的檢測比 較直觀和容易。較直觀和容易。 當數(shù)據(jù)的流動是經(jīng)過存儲器時,檢測比較復雜。當數(shù)據(jù)的流動是經(jīng)過存儲器時,檢測比較復雜。 相同形式的地址其有效地址未必相同。相同形式的地址其有效地址未必相同。 形式不同的地址其有效地址卻可能相同。形式不同的地址其有效地址卻可能相同。 3.4 流
53、水線的相關(guān)與沖突流水線的相關(guān)與沖突 3.4 流水線的相關(guān)與沖突流水線的相關(guān)與沖突 3、控制相關(guān)、控制相關(guān) 控制相關(guān)控制相關(guān)是指由分支指令引起的相關(guān)。是指由分支指令引起的相關(guān)。 典型的程序結(jié)構(gòu)是典型的程序結(jié)構(gòu)是“if-then”if-then”結(jié)構(gòu)結(jié)構(gòu)。 控制相關(guān)帶來了以下控制相關(guān)帶來了以下兩個限制:兩個限制: 與一條分支指令控制相關(guān)的指令不能被與一條分支指令控制相關(guān)的指令不能被 移到該分支之前,否則這些指令就不受移到該分支之前,否則這些指令就不受 該分支控制了。該分支控制了。 如果一條指令與某分支指令不存在控制如果一條指令與某分支指令不存在控制 相關(guān),就不能把該指令移到該分支之后。相關(guān),就不能
54、把該指令移到該分支之后。 3.4 流水線的相關(guān)與沖突流水線的相關(guān)與沖突 三、流水線沖突三、流水線沖突 n流水線沖突流水線沖突是指對于具體的流水線來說,是指對于具體的流水線來說, 由于相關(guān)的存在,使得指令流中的下一由于相關(guān)的存在,使得指令流中的下一 條指令不能在指定的時鐘周期執(zhí)行。條指令不能在指定的時鐘周期執(zhí)行。 n 流水線沖突有流水線沖突有3 3種類型:種類型: 結(jié)構(gòu)沖突結(jié)構(gòu)沖突 數(shù)據(jù)沖突數(shù)據(jù)沖突 控制沖突控制沖突 3.4 流水線的相關(guān)與沖突流水線的相關(guān)與沖突 (一)(一)結(jié)構(gòu)沖突結(jié)構(gòu)沖突 指多條指令進入流水線后,在同一時間爭用指多條指令進入流水線后,在同一時間爭用 同一功能部件,從而發(fā)生沖突
55、。同一功能部件,從而發(fā)生沖突。 1 2 3 4 5 6 7 8 指令指令LOADIF ID EX MEM WB 指令指令i+1 IF ID EX MEM WB 指令指令i+2 IF ID EX MEM WB 指令指令i+3 IF ID EX MEM WB 指令指令i+4 IF ID EX MEM訪存沖突訪存沖突 3.4 流水線的相關(guān)與沖突流水線的相關(guān)與沖突 3.4 流水線的相關(guān)與沖突流水線的相關(guān)與沖突 解決方法:解決方法:暫停一拍(也稱為流水線氣泡,暫停一拍(也稱為流水線氣泡, 簡稱氣泡)。簡稱氣泡)。 1 2 3 4 5 6 7 8 9 指令指令LOADIF ID EX MEM WB 指令指
56、令i+1 IF ID EX MEM WB 指令指令i+2 IF ID EX MEM WB 指令指令i+3 停頓停頓 IF ID EX MEM WB 指令指令i+4 IF ID EX MEM 3.4 流水線的相關(guān)與沖突流水線的相關(guān)與沖突 時時間間(時時鐘鐘周周期期) 1 2 3 4 5 6 M Reg ALU M Reg M Reg ALU M Reg M Reg ALU M Reg 7 8 load 指指令令i+1 指指令令i+2 暫暫 停停 M Reg ALU M 指指令令i+3 氣氣泡泡 氣氣泡泡 氣氣泡泡 氣氣泡泡 氣氣泡泡 3.4 流水線的相關(guān)與沖突流水線的相關(guān)與沖突 (二)(二)數(shù)據(jù)
57、沖突數(shù)據(jù)沖突 1、數(shù)據(jù)沖突、數(shù)據(jù)沖突 指由于流水線中各指令重疊執(zhí)行,使得原來指由于流水線中各指令重疊執(zhí)行,使得原來 對操作數(shù)的訪問順序發(fā)生變化,從而引起的對操作數(shù)的訪問順序發(fā)生變化,從而引起的 一種數(shù)據(jù)沖突。一種數(shù)據(jù)沖突。 如:如:DADD R1,R2,R3 DSUB R4,R1,R5 1 2 3 4 5 6 DADDIF ID EX MEM WB DSUB IF ID EX MEM WB 寫寫R1 讀讀R1 3.4 流水線的相關(guān)與沖突流水線的相關(guān)與沖突 2、解決辦法、解決辦法 采用定向傳送技術(shù)(旁路技術(shù)或相關(guān)專用通采用定向傳送技術(shù)(旁路技術(shù)或相關(guān)專用通 路技術(shù))。路技術(shù))。 IF ID EX
58、 MEM WBDSUB IF ID EX MEM WBDADD 1 2 3 4 5 6 寫寫R1 讀讀R1 ALU運算結(jié)果運算結(jié)果目標目標RALU操作數(shù)寄存器操作數(shù)寄存器 旁路傳送旁路傳送 3.4 流水線的相關(guān)與沖突流水線的相關(guān)與沖突 時間(時鐘周期) 1 2 3 4 5 6 IM Reg ALU DM Reg IM Reg ALU DM Reg IM Reg ALU DM IM Reg ALU DADD R1,R2,R3 DSUB R4,R1,R5 XOR R6,R1,R7 AND R8,R1,R9 IM Reg OR R10,R1,R11 3.4 流水線的相關(guān)與沖突流水線的相關(guān)與沖突 3、
59、數(shù)據(jù)沖突類型、數(shù)據(jù)沖突類型 根據(jù)指令對同一寄存器讀和寫的先后順序,根據(jù)指令對同一寄存器讀和寫的先后順序, 數(shù)據(jù)沖突可分為三種類型:數(shù)據(jù)沖突可分為三種類型: 1)RAW(讀超前于寫)(讀超前于寫) 指令入指令入 出出 12345 讀數(shù)讀數(shù)寫數(shù)寫數(shù) kji R i指令指令:寫數(shù)寫數(shù) j指令指令:讀數(shù)讀數(shù) 解決方法一解決方法一:按序流動(順序流動)的流水線中,:按序流動(順序流動)的流水線中, 用定向傳送技術(shù)。用定向傳送技術(shù)。 指流水線中流出的結(jié)果與流指流水線中流出的結(jié)果與流 入指令的次序是一致的。入指令的次序是一致的。 但是,定向技術(shù)并不能解決所有但是,定向技術(shù)并不能解決所有RAW沖突。沖突。 如
60、裝入延遲如裝入延遲: LD R1,0(R2) DADD R4,R1,R5 AND R6,R1,R7 XOR R8,R1,R9 時間(時鐘周期) 1 2 3 4 5 6 IM Reg ALU DM Reg IM Reg ALU DM Reg IM Reg ALU DM IM Reg ALU LD R1,0(R2) DADD R4,R1,R5 AND R6,R1,R7 XOR R8,R1,R9 解決方法二解決方法二:增加流水線互鎖硬件,插入增加流水線互鎖硬件,插入“暫暫 停?!薄?作用:作用:檢測發(fā)現(xiàn)數(shù)據(jù)沖突,并使檢測發(fā)現(xiàn)數(shù)據(jù)沖突,并使流水線停頓流水線停頓,直,直 至沖突消失。至沖突消失。 時間(
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 遼寧石油化工大學《建筑給水排水工程》2023-2024學年第一學期期末試卷
- 蘭州博文科技學院《大眾健身操》2023-2024學年第一學期期末試卷
- 吉林司法警官職業(yè)學院《焊接先進技術(shù)》2023-2024學年第一學期期末試卷
- 湖南大學《數(shù)字媒體設(shè)計與制作-U交互設(shè)計》2023-2024學年第一學期期末試卷
- 【物理】《物體的浮沉條件及應(yīng)用》(教學設(shè)計)-2024-2025學年人教版(2024)初中物理八年級下冊
- 重慶海聯(lián)職業(yè)技術(shù)學院《中學生物教學研究與實踐》2023-2024學年第一學期期末試卷
- 鄭州電子信息職業(yè)技術(shù)學院《材料分析測試技術(shù)(B)》2023-2024學年第一學期期末試卷
- 浙江科技學院《裝飾圖案設(shè)計》2023-2024學年第一學期期末試卷
- 中國青年政治學院《金融社會工作》2023-2024學年第一學期期末試卷
- 鄭州輕工業(yè)大學《染整工藝實驗(2)》2023-2024學年第一學期期末試卷
- 2025年正定縣國資產(chǎn)控股運營集團限公司面向社會公開招聘工作人員高頻重點提升(共500題)附帶答案詳解
- 劉寶紅采購與供應(yīng)鏈管理
- 園林景觀施工方案
- 2025年計算機二級WPS考試題目
- 2024年上海市中考英語試題和答案
- 人工智能:AIGC基礎(chǔ)與應(yīng)用 課件 03模塊三AIGC賦能辦公應(yīng)用
- 采購部門發(fā)展規(guī)劃及思路
- 工商銀行隱私計算技術(shù)及應(yīng)用白皮書 2024
- 三基護理練習題庫(附答案)
- 臨時施工單位安全協(xié)議書
- 初一到初三英語單詞表2182個帶音標打印版
評論
0/150
提交評論