第八章 流水線技術(shù)_第1頁
第八章 流水線技術(shù)_第2頁
第八章 流水線技術(shù)_第3頁
第八章 流水線技術(shù)_第4頁
第八章 流水線技術(shù)_第5頁
已閱讀5頁,還剩125頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 華北電力大學(xué)計(jì)算機(jī)系1130計(jì)算機(jī)組成與結(jié)構(gòu)8.2流水線性能分析8.3流水線中的相關(guān) 結(jié)構(gòu)相關(guān)結(jié)構(gòu)相關(guān) 數(shù)據(jù)相關(guān)數(shù)據(jù)相關(guān) 控制相關(guān)控制相關(guān)8.4流水線的調(diào)度8.1流水線的基本概念第八章 流水線技術(shù) 華北電力大學(xué)計(jì)算機(jī)系2130計(jì)算機(jī)組成與結(jié)構(gòu)8.1流水線原理8.1.1 流水線的基本概念 1. 產(chǎn)品生產(chǎn)流水線下面通過一個例子來說明流水線的好處下面通過一個例子來說明流水線的好處: : 兩種方案兩種方案 兩種方案的工作過程對比兩種方案的工作過程對比第八章 流水線技術(shù) 華北電力大學(xué)計(jì)算機(jī)系3211 華北電力大學(xué)計(jì)算機(jī)系4211 流水線生產(chǎn)過程的抽象描述流水線生產(chǎn)過程的抽象描述 這種流水工作方式的主要

2、特點(diǎn)這種流水工作方式的主要特點(diǎn) 華北電力大學(xué)計(jì)算機(jī)系5130計(jì)算機(jī)組成與結(jié)構(gòu)8.1 流水線原理2. 2. 簡單的理想指令流水線簡單的理想指令流水線將處理機(jī)執(zhí)行指令的過程分為三個功能段:將處理機(jī)執(zhí)行指令的過程分為三個功能段:取指取指分析分析執(zhí)行執(zhí)行 指令經(jīng)過各功能段時間分別為指令經(jīng)過各功能段時間分別為t t取取、t t分分、t t執(zhí)執(zhí) 華北電力大學(xué)計(jì)算機(jī)系6130計(jì)算機(jī)組成與結(jié)構(gòu)8.1 流水線原理(1)順序方式順序方式程序總執(zhí)行時間為:程序總執(zhí)行時間為:T順順ni=1(t取取+t分分+t執(zhí)執(zhí))3nt取指取指i分析分析i執(zhí)行執(zhí)行i取指取指i+1分析分析i+1執(zhí)行執(zhí)行i+1 華北電力大學(xué)計(jì)算機(jī)系71

3、30計(jì)算機(jī)組成與結(jié)構(gòu)8.1 流水線原理(2) 一次重疊方式一次重疊方式取指取指i-1分析分析i-1執(zhí)行執(zhí)行i-1取指取指i分析分析i執(zhí)行執(zhí)行i取指取指i+1分析分析i+1執(zhí)行執(zhí)行i+1程序總執(zhí)行時間為:程序總執(zhí)行時間為:T一次一次t取取t分分t執(zhí)執(zhí)ni=2(t分分+t執(zhí)執(zhí))3 t (n-1)2 t(2n+1) t 華北電力大學(xué)計(jì)算機(jī)系8130計(jì)算機(jī)組成與結(jié)構(gòu)8.1 流水線原理( (3) ) 二次重疊方式二次重疊方式 取指取指i-1i-1分析分析i-1i-1執(zhí)行執(zhí)行i-1i-1取指取指i i分析分析i i執(zhí)行執(zhí)行i i取指取指i+1i+1分析分析i+1i+1執(zhí)行執(zhí)行i+1i+1程序總執(zhí)行時間為:

4、程序總執(zhí)行時間為:T T二次二次i=2i=2t t取取t t分分t t執(zhí)執(zhí)n nt t執(zhí)執(zhí)3 3 t t (n-1) (n-1) t t(n+2) (n+2) t t 華北電力大學(xué)計(jì)算機(jī)系9130計(jì)算機(jī)組成與結(jié)構(gòu)3. 先行控制技術(shù)先行控制技術(shù)( (1) ) 處理機(jī)結(jié)構(gòu)的改變處理機(jī)結(jié)構(gòu)的改變 傳統(tǒng)的處理機(jī)是傳統(tǒng)的處理機(jī)是控制器控制器分析指令,在控制器控制下,分析指令,在控制器控制下,由由運(yùn)算器運(yùn)算器完成指令的執(zhí)行,它們是一個整體。完成指令的執(zhí)行,它們是一個整體。 流水方式中,各功能段相互獨(dú)立沒有沖突,它們在流水方式中,各功能段相互獨(dú)立沒有沖突,它們在同一時刻可以并行工作,這就要求同一時刻可以并行

5、工作,這就要求取指取指、分析分析、執(zhí)行執(zhí)行三三個功能段相互獨(dú)立。個功能段相互獨(dú)立。8.1 流水線原理 華北電力大學(xué)計(jì)算機(jī)系10130計(jì)算機(jī)組成與結(jié)構(gòu) 在處理機(jī)內(nèi)部需要有獨(dú)立的在處理機(jī)內(nèi)部需要有獨(dú)立的取指令取指令、分析指令分析指令和和執(zhí)行指令執(zhí)行指令的功能部件,將傳統(tǒng)處理機(jī)中的指令控制器分解成為三個獨(dú)立的功能部件,將傳統(tǒng)處理機(jī)中的指令控制器分解成為三個獨(dú)立的控制器:的控制器: 存儲控制器存儲控制器:負(fù)責(zé)流水線中各功能段對存儲器的訪問控制:負(fù)責(zé)流水線中各功能段對存儲器的訪問控制 包括取指令、取操作數(shù)、寫回運(yùn)算結(jié)果包括取指令、取操作數(shù)、寫回運(yùn)算結(jié)果 指令控制器指令控制器:完成取指令部件和分析指令部件

6、的控制:完成取指令部件和分析指令部件的控制 運(yùn)算控制器運(yùn)算控制器:對運(yùn)算器的執(zhí)行加以控制:對運(yùn)算器的執(zhí)行加以控制8.1 流水線原理 華北電力大學(xué)計(jì)算機(jī)系11130計(jì)算機(jī)組成與結(jié)構(gòu)(2 2)解決多功能段訪存沖突問題)解決多功能段訪存沖突問題 當(dāng)指令在流水線中執(zhí)行時,在二次重疊方式下流水當(dāng)指令在流水線中執(zhí)行時,在二次重疊方式下流水線完全充滿時,三個功能段同時工作。線完全充滿時,三個功能段同時工作。u “ “取指取指i+1”i+1”要訪問存儲器取第要訪問存儲器取第i+1i+1條指令條指令u “ “分析分析i”i”要訪問存儲器取第要訪問存儲器取第i i條指令需要的操作數(shù)條指令需要的操作數(shù)u “ “執(zhí)行

7、執(zhí)行i-1”i-1”也要訪存將運(yùn)算結(jié)果寫回存儲器也要訪存將運(yùn)算結(jié)果寫回存儲器8.1 流水線原理 華北電力大學(xué)計(jì)算機(jī)系12130計(jì)算機(jī)組成與結(jié)構(gòu)解決方法:解決方法: 1 1將程序地址空間和數(shù)據(jù)地址空間分開,兩個地址空將程序地址空間和數(shù)據(jù)地址空間分開,兩個地址空間提供獨(dú)立訪問的能力。間提供獨(dú)立訪問的能力。 2 2采用低位交叉并行訪問存儲器。采用低位交叉并行訪問存儲器。 3 3采用先行控制技術(shù)。采用先行控制技術(shù)。 8.1 流水線原理 華北電力大學(xué)計(jì)算機(jī)系13130計(jì)算機(jī)組成與結(jié)構(gòu)采用先行控制技術(shù)的處理機(jī)結(jié)構(gòu)采用先行控制技術(shù)的處理機(jī)結(jié)構(gòu)主存主存儲器儲器存存儲儲器器控控制制器器先行取指令棧先行取指令棧先

8、行取數(shù)棧先行取數(shù)棧指令分析器指令分析器先行操作棧先行操作棧運(yùn)算控制器運(yùn)算控制器運(yùn)算器運(yùn)算器通通用用寄寄存存器器堆堆后行寫數(shù)棧后行寫數(shù)棧8.1 流水線原理 華北電力大學(xué)計(jì)算機(jī)系14130計(jì)算機(jī)組成與結(jié)構(gòu)指令分析器現(xiàn)行程序計(jì)數(shù)器現(xiàn)行程序計(jì)數(shù)器PC采用先行取指令棧結(jié)構(gòu)采用先行取指令棧結(jié)構(gòu)存存儲儲器器控控制制器器先行程序計(jì)數(shù)器先行程序計(jì)數(shù)器PCI控制邏輯控制邏輯先行取指令棧先行取指令棧指令寄存器指令寄存器IR8.1 流水線原理 華北電力大學(xué)計(jì)算機(jī)系15130計(jì)算機(jī)組成與結(jié)構(gòu)使用先行控制技術(shù)前使用先行控制技術(shù)前分析分析i-1執(zhí)行執(zhí)行i-1分析分析i執(zhí)行執(zhí)行i分析分析i+1執(zhí)行執(zhí)行i+1分析分析i+2執(zhí)行

9、執(zhí)行i+2分析分析i-1執(zhí)行執(zhí)行i-1分析分析i執(zhí)行執(zhí)行i分析分析i+1執(zhí)行執(zhí)行i+1分析分析i+2執(zhí)行執(zhí)行i+2流水線使用先行控制技術(shù)前后的不同:流水線使用先行控制技術(shù)前后的不同:使用先行控制技術(shù)后使用先行控制技術(shù)后8.1 流水線原理 華北電力大學(xué)計(jì)算機(jī)系16130計(jì)算機(jī)組成與結(jié)構(gòu)4. 指令流水線指令流水線把指令的解釋過程分解為把指令的解釋過程分解為“分析分析”和和“執(zhí)行執(zhí)行”兩個子過程,并讓這兩個子過程分別用獨(dú)立的分兩個子過程,并讓這兩個子過程分別用獨(dú)立的分析部件和執(zhí)行部件來實(shí)現(xiàn)。析部件和執(zhí)行部件來實(shí)現(xiàn)。理想情況:理想情況:速度提高一倍速度提高一倍8.1 流水線原理 華北電力大學(xué)計(jì)算機(jī)系1

10、7211 華北電力大學(xué)計(jì)算機(jī)系18130計(jì)算機(jī)組成與結(jié)構(gòu)5. 浮點(diǎn)加法流水線浮點(diǎn)加法流水線把浮點(diǎn)加法的全過程分解為把浮點(diǎn)加法的全過程分解為“求階差求階差”、“對對階階”、“尾數(shù)相加尾數(shù)相加”、“規(guī)格化規(guī)格化”四個子過程,四個子過程,并讓并讓它們分別用各自獨(dú)立的部件來實(shí)現(xiàn)。它們分別用各自獨(dú)立的部件來實(shí)現(xiàn)。理想情況:理想情況:速度提高速度提高3 3倍倍8.1 流水線原理 華北電力大學(xué)計(jì)算機(jī)系19130計(jì)算機(jī)組成與結(jié)構(gòu)8.1 流水線原理 華北電力大學(xué)計(jì)算機(jī)系20130計(jì)算機(jī)組成與結(jié)構(gòu)6. 時空圖時空圖時空圖時空圖從時間和空間兩個方面描述了流水從時間和空間兩個方面描述了流水線的工作過程。時空圖中,橫坐

11、標(biāo)代表時間,線的工作過程。時空圖中,橫坐標(biāo)代表時間,縱坐標(biāo)代表流水線的各個段??v坐標(biāo)代表流水線的各個段。8.1 流水線原理 華北電力大學(xué)計(jì)算機(jī)系21211 華北電力大學(xué)計(jì)算機(jī)系22130計(jì)算機(jī)組成與結(jié)構(gòu)7. 流水技術(shù)流水技術(shù)流水技術(shù)是指:將一個重復(fù)的時序過程分解是指:將一個重復(fù)的時序過程分解成為若干個子過程,而每個子過程都可有效地在成為若干個子過程,而每個子過程都可有效地在其專用功能段上與其他子過程同時執(zhí)行。其專用功能段上與其他子過程同時執(zhí)行。8流水技術(shù)的特點(diǎn)(1) (1) 流水過程由多個相聯(lián)系的子過程組成,每個流水過程由多個相聯(lián)系的子過程組成,每個子過程稱為流水線的子過程稱為流水線的“級級”

12、或或“段段”?!岸味巍钡臄?shù)的數(shù)目稱為流水線的目稱為流水線的“深度深度”。(2) (2) 每個子過程由專用的功能段實(shí)現(xiàn);每個子過程由專用的功能段實(shí)現(xiàn);8.1 流水線原理 華北電力大學(xué)計(jì)算機(jī)系23130計(jì)算機(jī)組成與結(jié)構(gòu)(4) (4) 流水線需要有流水線需要有“通過時間通過時間”(第一個任務(wù)流出結(jié)果(第一個任務(wù)流出結(jié)果所所需的時間),在此之后流水過程才進(jìn)入穩(wěn)定工作狀需的時間),在此之后流水過程才進(jìn)入穩(wěn)定工作狀態(tài),每一個時鐘周期(拍)流出一個結(jié)果;態(tài),每一個時鐘周期(拍)流出一個結(jié)果;(3) (3) 各個功能段所需時間應(yīng)盡量相等,否則,時間長各個功能段所需時間應(yīng)盡量相等,否則,時間長的功能段將成為流水

13、線的瓶頸,會造成流水線的的功能段將成為流水線的瓶頸,會造成流水線的 “堵塞堵塞”和和“斷流斷流”。這個時間一般為一個時鐘。這個時間一般為一個時鐘周期周期(拍);(拍);(5) (5) 流水技術(shù)適合于大量重復(fù)的時序過程,只有輸入流水技術(shù)適合于大量重復(fù)的時序過程,只有輸入端能連續(xù)地提供任務(wù),流水線的效率才能充分發(fā)端能連續(xù)地提供任務(wù),流水線的效率才能充分發(fā)揮。揮。8.1 流水線原理 華北電力大學(xué)計(jì)算機(jī)系25130計(jì)算機(jī)組成與結(jié)構(gòu)8.1.2 流水線的分類流水線可以按不同的觀點(diǎn)進(jìn)行分類。流水線可以按不同的觀點(diǎn)進(jìn)行分類。 單功能流水線:單功能流水線:只能完成一種固定功能的只能完成一種固定功能的 流水線。流

14、水線。 多功能流水線:多功能流水線:流水線的各段可以進(jìn)行不同的流水線的各段可以進(jìn)行不同的 連接,從而實(shí)現(xiàn)不同的功能。連接,從而實(shí)現(xiàn)不同的功能。 例如:例如: TI ASCTI ASC的多功能流水線的多功能流水線1按功能的多少來分8.1 流水線原理 華北電力大學(xué)計(jì)算機(jī)系27130計(jì)算機(jī)組成與結(jié)構(gòu)在靜態(tài)流水線中,只有當(dāng)輸入是一串相同在靜態(tài)流水線中,只有當(dāng)輸入是一串相同的運(yùn)算操作時,流水的效率才能得到發(fā)揮。的運(yùn)算操作時,流水的效率才能得到發(fā)揮。動畫演示動畫演示2按同一時間內(nèi)各段之間的連接方式來分 靜態(tài)流水線:靜態(tài)流水線:在同一時刻,流水線的各段只能在同一時刻,流水線的各段只能 按同一種功能的連接方式

15、工作。按同一種功能的連接方式工作。 8.1 流水線原理 華北電力大學(xué)計(jì)算機(jī)系28130計(jì)算機(jī)組成與結(jié)構(gòu) 動態(tài)流水線:動態(tài)流水線:在同一時刻,流水線的各段可以在同一時刻,流水線的各段可以 按不同功能的連接方式工作。按不同功能的連接方式工作。 動畫演示動畫演示 這樣就不是非得相同運(yùn)算的一串操作才能這樣就不是非得相同運(yùn)算的一串操作才能 流水處理。流水處理。 優(yōu)點(diǎn):優(yōu)點(diǎn):能提高流水線的效率能提高流水線的效率 缺點(diǎn):缺點(diǎn):會使流水線的控制變得復(fù)雜會使流水線的控制變得復(fù)雜8.1 流水線原理 靜、動態(tài)流水線時空圖的對比靜、動態(tài)流水線時空圖的對比 華北電力大學(xué)計(jì)算機(jī)系30130計(jì)算機(jī)組成與結(jié)構(gòu)3按照流水線的級

16、別來分 部件級流水線部件級流水線(運(yùn)算操作流水線):把處理機(jī)的(運(yùn)算操作流水線):把處理機(jī)的 算術(shù)邏輯部件分段,使得各種數(shù)據(jù)類型的操作能算術(shù)邏輯部件分段,使得各種數(shù)據(jù)類型的操作能 夠進(jìn)行流水。夠進(jìn)行流水。 處理機(jī)級流水線處理機(jī)級流水線(指令流水線):把指令的解釋(指令流水線):把指令的解釋 執(zhí)行過程按照流水方式進(jìn)行處理。執(zhí)行過程按照流水方式進(jìn)行處理。 例如:例如:前面把指令解釋過程分解為:前面把指令解釋過程分解為: 分析分析和和執(zhí)行執(zhí)行 DLXDLX的基本流水線把指令解釋過程分解為:的基本流水線把指令解釋過程分解為: 取指令、指令譯碼、執(zhí)行、訪存、寫回。取指令、指令譯碼、執(zhí)行、訪存、寫回。 (

17、 (圖示圖示) )8.1 流水線原理 華北電力大學(xué)計(jì)算機(jī)系31130計(jì)算機(jī)組成與結(jié)構(gòu)8.1 流水線原理 華北電力大學(xué)計(jì)算機(jī)系32130計(jì)算機(jī)組成與結(jié)構(gòu) 處理機(jī)間流水線處理機(jī)間流水線(宏流水線):它是指由兩個(宏流水線):它是指由兩個 以上的處理機(jī)串行地對同一數(shù)據(jù)流進(jìn)行處理,以上的處理機(jī)串行地對同一數(shù)據(jù)流進(jìn)行處理, 每個處理機(jī)完成一項(xiàng)任務(wù)。每個處理機(jī)完成一項(xiàng)任務(wù)。 動畫解析動畫解析8.1 流水線原理 華北電力大學(xué)計(jì)算機(jī)系33130計(jì)算機(jī)組成與結(jié)構(gòu)4按照數(shù)據(jù)表示來分 向量處理機(jī):向量處理機(jī):具有向量指令和向量數(shù)據(jù)表示的具有向量指令和向量數(shù)據(jù)表示的 處理機(jī)。處理機(jī)。 例如:例如:TI ASC, CR

18、AY-I TI ASC, CRAY-I 等等 標(biāo)量處理機(jī):標(biāo)量處理機(jī):不具有向量指令和向量數(shù)據(jù)表示,不具有向量指令和向量數(shù)據(jù)表示, 僅對標(biāo)量進(jìn)行流水處理的處理機(jī)。僅對標(biāo)量進(jìn)行流水處理的處理機(jī)。 例如:例如:IBM860/91, Amdahl 470V/6IBM860/91, Amdahl 470V/6 等等5. 5. 按照是否有反饋回路來分按照是否有反饋回路來分 線性流水線:線性流水線:流水線中的各段串行連接,沒流水線中的各段串行連接,沒 有反饋回路。有反饋回路。 非線性流水線:非線性流水線:流水線中的各段除有串行連接流水線中的各段除有串行連接 外,還有反饋回路。外,還有反饋回路。 ( (舉例

19、舉例) )8.1 流水線原理 華北電力大學(xué)計(jì)算機(jī)系34130計(jì)算機(jī)組成與結(jié)構(gòu)8.1 流水線原理 流水線的調(diào)度問題流水線的調(diào)度問題 華北電力大學(xué)計(jì)算機(jī)系36130計(jì)算機(jī)組成與結(jié)構(gòu)順序流動流水線:順序流動流水線:流水線輸出端任務(wù)流出的順流水線輸出端任務(wù)流出的順 序與輸入端任務(wù)流入的順序序與輸入端任務(wù)流入的順序相同相同。 異步流動流水線異步流動流水線(亂序流水線):流水線輸出(亂序流水線):流水線輸出 端任務(wù)流出的順序與輸入端任務(wù)流入的順序端任務(wù)流出的順序與輸入端任務(wù)流入的順序 不同不同。6. 按照流動是否可以亂序來分8.1 流水線原理 華北電力大學(xué)計(jì)算機(jī)系37130計(jì)算機(jī)組成與結(jié)構(gòu)8.2 流水線性

20、能分析吞吐率吞吐率是指單位時間內(nèi)流水線所完成的任是指單位時間內(nèi)流水線所完成的任務(wù)數(shù)或輸出結(jié)果的數(shù)量。務(wù)數(shù)或輸出結(jié)果的數(shù)量。1. 吞吐率(1) (1) 最大吞吐率最大吞吐率TPTPmaxmax 最大吞吐率最大吞吐率是指流水線在連續(xù)流動達(dá)到是指流水線在連續(xù)流動達(dá)到穩(wěn)定狀態(tài)后所得到的吞吐率。穩(wěn)定狀態(tài)后所得到的吞吐率。 若流水線各段的時間相等,均為若流水線各段的時間相等,均為t t0 0 , 則:則: TPmax 1 /t0第八章 流水線技術(shù) 華北電力大學(xué)計(jì)算機(jī)系38130計(jì)算機(jī)組成與結(jié)構(gòu) 若流水線各段的時間不等,則:若流水線各段的時間不等,則: 最大吞吐率取決于流水線中最慢的一段所最大吞吐率取決于流

21、水線中最慢的一段所 需的時間,這段就成了流水線的瓶頸。需的時間,這段就成了流水線的瓶頸。 消除瓶頸的方法消除瓶頸的方法 ( (舉例舉例) )l 細(xì)分瓶頸段細(xì)分瓶頸段 l 重復(fù)設(shè)置瓶頸段重復(fù)設(shè)置瓶頸段 ( (時時- -空圖空圖) )1 1maxmaxt ti i TPmax 8.2 流水線的性能分析重復(fù)設(shè)置瓶頸段重復(fù)設(shè)置瓶頸段( (時時- -空圖舉例空圖舉例) ) 華北電力大學(xué)計(jì)算機(jī)系41130計(jì)算機(jī)組成與結(jié)構(gòu) 第一種情況:各段時間第一種情況:各段時間相等相等(設(shè)為(設(shè)為t t0 0) 假設(shè)流水線由假設(shè)流水線由 m m 段組成,完成段組成,完成 n n 個任務(wù)。個任務(wù)。l 時空圖時空圖l 完成完

22、成 n n 個任務(wù)所需的時間個任務(wù)所需的時間 T T流水流水m mt t0 0( (n n1)1)t t0 0 ( (說明說明) )(2) (2) 實(shí)際吞吐率實(shí)際吞吐率TPTP 流水線的實(shí)際吞吐率小于最大吞吐率。流水線的實(shí)際吞吐率小于最大吞吐率。8.2 流水線的性能分析 華北電力大學(xué)計(jì)算機(jī)系42211 華北電力大學(xué)計(jì)算機(jī)系43211完成完成 n n 個任務(wù)所需的時間個任務(wù)所需的時間 華北電力大學(xué)計(jì)算機(jī)系44130計(jì)算機(jī)組成與結(jié)構(gòu)l 實(shí)際吞吐率實(shí)際吞吐率TP TP T T流水流水n nm mt t0 0( (n n) )t t0 0n n(1(1 ) )t t0 0 m m1 11 1TPTPm

23、axmaxn n 1 1n nm m1 1TP TP TPTPmaxmax當(dāng)當(dāng)n n m m 時,時,TP TP TPTPmaxmax 第二種情況:各段時間第二種情況:各段時間不等不等l 時空圖時空圖8.2 流水線的性能分析 華北電力大學(xué)計(jì)算機(jī)系45130計(jì)算機(jī)組成與結(jié)構(gòu)8.2 流水線的性能分析 華北電力大學(xué)計(jì)算機(jī)系46130計(jì)算機(jī)組成與結(jié)構(gòu) l 完成完成 n n 個任務(wù)所需的時間個任務(wù)所需的時間 T T流水流水t ti i( (n n1)1)t tj j t tj jmaxmaxt ti i l 實(shí)際吞吐率實(shí)際吞吐率TP TP t ti i( (n n1)1)t tj jm mi=1i=1n

24、 ni=1i=1m m8.2 流水線的性能分析 華北電力大學(xué)計(jì)算機(jī)系47130計(jì)算機(jī)組成與結(jié)構(gòu)加速比加速比是指流水線的速度與等功能非流水是指流水線的速度與等功能非流水線的速度之比。線的速度之比。2. 加速比S S ST T非流水非流水T T流水流水(其中(其中T T流水流水和和T T非流水非流水分別為按流水和按非流水分別為按流水和按非流水方式處理方式處理 n n 個任務(wù)所需的時間)個任務(wù)所需的時間) 若流水線為若流水線為 m m 段,且各段時間相等,均段,且各段時間相等,均為為t t0 0 ,則:,則: T T非流水非流水n mn mt t0 0 ( (解釋解釋) ) T T流水流水m mt

25、t0 0( (n n1)1)t t0 0 8.2 流水線的性能分析 華北電力大學(xué)計(jì)算機(jī)系48130計(jì)算機(jī)組成與結(jié)構(gòu)8.2 流水線的性能分析 華北電力大學(xué)計(jì)算機(jī)系49130計(jì)算機(jī)組成與結(jié)構(gòu)可以看出:可以看出:當(dāng)當(dāng)n n m m 時,時,S S m m想一想:想一想:n n 越大越好?越大越好?效率效率是指流水線的設(shè)備利用率。是指流水線的設(shè)備利用率。(1) (1) 由于流水線有由于流水線有通過時間和排空時間通過時間和排空時間,所以,所以 流水線的各段并不是一直滿負(fù)荷地工作。流水線的各段并不是一直滿負(fù)荷地工作。 故:故:E E 1 1S S T T非流水非流水T T流水流水nmnmt t0 0m m

26、t t0 0( (n n1 1) )t t0 0mnmnm mn n1 1m mn n1 1 m m1 1 8效率 E8.2 流水線的性能分析 華北電力大學(xué)計(jì)算機(jī)系50130計(jì)算機(jī)組成與結(jié)構(gòu)8.2 流水線的性能分析 華北電力大學(xué)計(jì)算機(jī)系51130計(jì)算機(jī)組成與結(jié)構(gòu)(2) (2) 若各段時間相等,則各段的效率若各段時間相等,則各段的效率e ei i相等,即相等,即 e e1 1e e2 2 e e8 8 e em mn nt t0 0T T流水流水 ( (解釋解釋) ) 整個流水線的效率為整個流水線的效率為: :當(dāng)當(dāng) n n m m 時,時,E E 1 1E E n nt t0 0T T流水流水n

27、 nm mn n1 11n n1 m1(3) (3) 從時空圖上看,效率實(shí)際上就是從時空圖上看,效率實(shí)際上就是 n n 個任務(wù)所個任務(wù)所占的時空區(qū)與占的時空區(qū)與 m m 個段總的時空區(qū)個段總的時空區(qū)之比,即:之比,即: n n 個任務(wù)占用的時空區(qū)個任務(wù)占用的時空區(qū)E E ( (解釋解釋) ) m m 個段總的時空區(qū)個段總的時空區(qū)8.2 流水線的性能分析 華北電力大學(xué)計(jì)算機(jī)系52211 華北電力大學(xué)計(jì)算機(jī)系53130計(jì)算機(jī)組成與結(jié)構(gòu)(4) (4) 提高流水線效率所采取的措施對于提高提高流水線效率所采取的措施對于提高 吞吐率也有好處。吞吐率也有好處。4流水線性能分析舉例例例8.18.1 在在靜態(tài)流

28、水線靜態(tài)流水線上計(jì)算上計(jì)算 A Ai iB Bi i , 求:吞吐率,加速比,效率。求:吞吐率,加速比,效率。4 4i i=1=18.2 流水線的性能分析 華北電力大學(xué)計(jì)算機(jī)系54130計(jì)算機(jī)組成與結(jié)構(gòu)8.2 流水線的性能分析 華北電力大學(xué)計(jì)算機(jī)系55130計(jì)算機(jī)組成與結(jié)構(gòu)解解:( (1) 1) 確定適合于流水處理的確定適合于流水處理的計(jì)算過程計(jì)算過程(2) (2) 畫時空圖畫時空圖 (8) (8) 計(jì)算性能計(jì)算性能 吞吐率吞吐率 TPTP7 7(20(20t t) ) 加速比加速比 S S(34(34t t) )(20(20t t) )1.71.7 效率效率 E E(4(44 43 36)6

29、)(8(820)20)0.210.218.2 流水線的性能分析 華北電力大學(xué)計(jì)算機(jī)系56211 華北電力大學(xué)計(jì)算機(jī)系57211 華北電力大學(xué)計(jì)算機(jī)系58130計(jì)算機(jī)組成與結(jié)構(gòu)8.2 流水線的性能分析 華北電力大學(xué)計(jì)算機(jī)系59130計(jì)算機(jī)組成與結(jié)構(gòu)可以看出,在求解此問題時,該流水線的效率可以看出,在求解此問題時,該流水線的效率不高。不高。 ( (原因原因) )動態(tài)流水線的時空圖動態(tài)流水線的時空圖 舉例舉例 8.2 流水線的性能分析 華北電力大學(xué)計(jì)算機(jī)系60130計(jì)算機(jī)組成與結(jié)構(gòu)舉例舉例 : : 這樣行不行?這樣行不行? 正確答案正確答案8.2 流水線的性能分析 華北電力大學(xué)計(jì)算機(jī)系61130計(jì)算

30、機(jī)組成與結(jié)構(gòu)5有關(guān)流水線性能的若干問題(1) (1) 流水線并不能減少流水線并不能減少( (而且一般是增加而且一般是增加) )單條指單條指 令的執(zhí)行時間,但卻能提高吞吐率。令的執(zhí)行時間,但卻能提高吞吐率。(2) (2) 增加流水線的深度增加流水線的深度( (段數(shù)段數(shù)) )可以提高流水線的可以提高流水線的 性能。性能。(3) (3) 流水線的深度受限于流水線的延遲和流水線流水線的深度受限于流水線的延遲和流水線 的額外開銷。的額外開銷。8.2 流水線的性能分析 華北電力大學(xué)計(jì)算機(jī)系62130計(jì)算機(jī)組成與結(jié)構(gòu)8.3流水線中的相關(guān)1相關(guān)的概念 流水線中的相關(guān)流水線中的相關(guān)是指相鄰或相近的兩條指是指相鄰

31、或相近的兩條指令因存在某種關(guān)聯(lián),后一條指令不能在原指定令因存在某種關(guān)聯(lián),后一條指令不能在原指定的時鐘周期開始執(zhí)行的時鐘周期開始執(zhí)行。 結(jié)構(gòu)相關(guān)結(jié)構(gòu)相關(guān) 當(dāng)硬件資源滿足不了同時重疊執(zhí)行的指當(dāng)硬件資源滿足不了同時重疊執(zhí)行的指 令的要求,而發(fā)生資源沖突時,就發(fā)生令的要求,而發(fā)生資源沖突時,就發(fā)生了結(jié)了結(jié) 構(gòu)相關(guān)。構(gòu)相關(guān)。2相關(guān)的分類第八章 流水線技術(shù) 華北電力大學(xué)計(jì)算機(jī)系63130計(jì)算機(jī)組成與結(jié)構(gòu) 數(shù)據(jù)相關(guān)數(shù)據(jù)相關(guān) 當(dāng)一條指令需要用到前面某條指令的結(jié)當(dāng)一條指令需要用到前面某條指令的結(jié) 果,從而不能重疊執(zhí)行時,就發(fā)生了果,從而不能重疊執(zhí)行時,就發(fā)生了數(shù)據(jù)相數(shù)據(jù)相 關(guān)關(guān)。 控制相關(guān)控制相關(guān) 當(dāng)流水線遇到

32、分支指令和其他能夠改變當(dāng)流水線遇到分支指令和其他能夠改變 PCPC值的指令時,就會發(fā)生值的指令時,就會發(fā)生控制相關(guān)控制相關(guān)。3幾個問題 相關(guān)有可能會使流水線停頓。相關(guān)有可能會使流水線停頓。8.3 流水線中的相關(guān) 華北電力大學(xué)計(jì)算機(jī)系64130計(jì)算機(jī)組成與結(jié)構(gòu)在本章中,我們在本章中,我們約定:約定: 當(dāng)一條指令被暫停時,暫停在其后發(fā)射(流出)的指令,但繼續(xù)執(zhí)行在其前發(fā)射的 指令。 消除相關(guān)的消除相關(guān)的基本方法:基本方法: 讓流水線中的某些指令暫停,而讓其它讓流水線中的某些指令暫停,而讓其它 指令繼續(xù)執(zhí)行。指令繼續(xù)執(zhí)行。8.3 流水線中的相關(guān) 華北電力大學(xué)計(jì)算機(jī)系65130計(jì)算機(jī)組成與結(jié)構(gòu)8.3.

33、1 流水線中的結(jié)構(gòu)相關(guān)2. 如果某種指令組合因資源沖突而不能順利重 疊執(zhí)行,則稱該機(jī)器具有結(jié)構(gòu)相關(guān)。1. 在流水線機(jī)器中,為了使各種指令組合能順 利地重疊執(zhí)行,需要把功能部件流水化,并 把資源重復(fù)設(shè)置。3. 常見的導(dǎo)致結(jié)構(gòu)相關(guān)的原因: 功能部件不是全流水功能部件不是全流水 重復(fù)設(shè)置的資源的份數(shù)不夠重復(fù)設(shè)置的資源的份數(shù)不夠8.3 流水線中的相關(guān) 華北電力大學(xué)計(jì)算機(jī)系66130計(jì)算機(jī)組成與結(jié)構(gòu)4. 結(jié)構(gòu)相關(guān)舉例:訪存沖突 當(dāng)數(shù)據(jù)和指令存在同一存儲器中時,訪當(dāng)數(shù)據(jù)和指令存在同一存儲器中時,訪存指令會存指令會導(dǎo)致訪存沖突導(dǎo)致訪存沖突。解決辦法解決辦法: 插入暫停周期插入暫停周期 (“流水線氣泡流水線氣

34、泡”或或“氣泡氣泡”)8.3 流水線中的相關(guān) 華北電力大學(xué)計(jì)算機(jī)系69130計(jì)算機(jī)組成與結(jié)構(gòu)引入暫停后的時空圖引入暫停后的時空圖8.3 流水線中的相關(guān) 華北電力大學(xué)計(jì)算機(jī)系70130計(jì)算機(jī)組成與結(jié)構(gòu)5. 避免結(jié)構(gòu)相關(guān):6. 有些設(shè)計(jì)方案允許有結(jié)構(gòu)相關(guān) 所有功能單元完全流水化所有功能單元完全流水化 設(shè)置足夠的硬件資源設(shè)置足夠的硬件資源硬件代價很大。硬件代價很大。 降低成本降低成本 減少部件的延遲減少部件的延遲解決方法解決方法: 設(shè)置相互獨(dú)立的指令存儲器和設(shè)置相互獨(dú)立的指令存儲器和 數(shù)據(jù)存儲器或設(shè)置相互獨(dú)立的數(shù)據(jù)存儲器或設(shè)置相互獨(dú)立的 指令指令CacheCache和數(shù)據(jù)和數(shù)據(jù)CacheCache。

35、8.3 流水線中的相關(guān) 華北電力大學(xué)計(jì)算機(jī)系71130計(jì)算機(jī)組成與結(jié)構(gòu)8.3.2 流水線的數(shù)據(jù)相關(guān)1. 數(shù)據(jù)相關(guān)簡介 當(dāng)指令在流水線中重疊執(zhí)行時,流水線有當(dāng)指令在流水線中重疊執(zhí)行時,流水線有 可能改變指令讀可能改變指令讀/ /寫操作數(shù)的順序,使之不同寫操作數(shù)的順序,使之不同 于它們在非流水實(shí)現(xiàn)時的順序,這將導(dǎo)致數(shù)據(jù)于它們在非流水實(shí)現(xiàn)時的順序,這將導(dǎo)致數(shù)據(jù) 相關(guān)。相關(guān)。 數(shù)據(jù)相關(guān)舉例數(shù)據(jù)相關(guān)舉例8.3 流水線中的相關(guān) 華北電力大學(xué)計(jì)算機(jī)系73130計(jì)算機(jī)組成與結(jié)構(gòu)2. 利用定向技術(shù)減少數(shù)據(jù)相關(guān)引起的暫停 (1)(1) 定向技術(shù)的定向技術(shù)的主要思路:主要思路:在發(fā)生上述在發(fā)生上述 數(shù)據(jù)相關(guān)時,后面

36、的指令并不是馬數(shù)據(jù)相關(guān)時,后面的指令并不是馬 上就要用到前一條指令的計(jì)算結(jié)果。上就要用到前一條指令的計(jì)算結(jié)果。 如果能夠?qū)⒂?jì)算結(jié)果從其產(chǎn)生的地如果能夠?qū)⒂?jì)算結(jié)果從其產(chǎn)生的地 方直接送到需要它的地方,就可以方直接送到需要它的地方,就可以 避免暫停。避免暫停。 (2) (2) 采用定向技術(shù)消除上例中的相關(guān)采用定向技術(shù)消除上例中的相關(guān) 工作過程演示工作過程演示8.3 流水線中的相關(guān) 華北電力大學(xué)計(jì)算機(jī)系76130計(jì)算機(jī)組成與結(jié)構(gòu)(3) (3) 當(dāng)定向硬件檢測到前面某條指令的結(jié)果寄存當(dāng)定向硬件檢測到前面某條指令的結(jié)果寄存 器就是當(dāng)前指令的源寄存器時,控制邏輯會器就是當(dāng)前指令的源寄存器時,控制邏輯會 將

37、前面那條指令的結(jié)果直接從其產(chǎn)生的地方將前面那條指令的結(jié)果直接從其產(chǎn)生的地方 定向到當(dāng)前指令所需的位置。定向到當(dāng)前指令所需的位置。(4) (4) 一個功能單元的輸出不僅可以定向到其自身一個功能單元的輸出不僅可以定向到其自身 的輸入,而且還可以定向到其它單元的輸入。的輸入,而且還可以定向到其它單元的輸入。 舉例舉例8.3 流水線中的相關(guān) 華北電力大學(xué)計(jì)算機(jī)系77130計(jì)算機(jī)組成與結(jié)構(gòu)8.3 流水線中的相關(guān) 華北電力大學(xué)計(jì)算機(jī)系78130計(jì)算機(jī)組成與結(jié)構(gòu)(5) (5) 在在DLXDLX中,任何流水寄存器到任何功能單元的中,任何流水寄存器到任何功能單元的 輸入都可能需要定向路徑。輸入都可能需要定向路徑

38、。(6) (6) 當(dāng)兩條指令對存儲器同一單元進(jìn)行讀寫時,當(dāng)兩條指令對存儲器同一單元進(jìn)行讀寫時, 也可能發(fā)生數(shù)據(jù)相關(guān)。但本章僅討論有關(guān)寄也可能發(fā)生數(shù)據(jù)相關(guān)。但本章僅討論有關(guān)寄 存器的數(shù)據(jù)相關(guān)。存器的數(shù)據(jù)相關(guān)。3. 數(shù)據(jù)相關(guān)的分類 按照指令對寄存器的讀寫順序,可以將數(shù)據(jù)按照指令對寄存器的讀寫順序,可以將數(shù)據(jù)相關(guān)分為以下三種類型:相關(guān)分為以下三種類型:(考慮(考慮兩條指令兩條指令i i和和j j , 假設(shè)假設(shè)i i 先進(jìn)入流水線)先進(jìn)入流水線)8.3 流水線中的相關(guān) 華北電力大學(xué)計(jì)算機(jī)系80130計(jì)算機(jī)組成與結(jié)構(gòu)(2) (2) 寫后寫相關(guān)寫后寫相關(guān) (WAW)(WAW) 在在 i i 寫入之前,寫入

39、之前,j j 先寫。先寫。 最后寫入的結(jié)果是最后寫入的結(jié)果是 i i 的,錯誤!的,錯誤!(1) (1) 寫后讀相關(guān)寫后讀相關(guān) (RAW) (RAW) ( (命名規(guī)則命名規(guī)則) ) 在在 i i 寫入之前,寫入之前,j j 先去讀。先去讀。 j j 讀出的內(nèi)容是錯誤的。讀出的內(nèi)容是錯誤的。 這是最常見的相關(guān)。這是最常見的相關(guān)。 這種相關(guān)僅出現(xiàn)在這樣的流水線中這種相關(guān)僅出現(xiàn)在這樣的流水線中: 流水線中有多個段可以進(jìn)行寫操作流水線中有多個段可以進(jìn)行寫操作 當(dāng)某條指令在流水線中暫停時,允許其后當(dāng)某條指令在流水線中暫停時,允許其后 的指令繼續(xù)向前流動。的指令繼續(xù)向前流動。8.3 流水線中的相關(guān) DLX

40、 DLX整數(shù)流水線中不會發(fā)生這種相關(guān)整數(shù)流水線中不會發(fā)生這種相關(guān) (僅在(僅在WBWB段進(jìn)行寫操作)段進(jìn)行寫操作) 若對若對DLXDLX作以下修改,則會發(fā)生作以下修改,則會發(fā)生WAWWAW相關(guān)相關(guān): 把把ALUALU操作指令的操作指令的“寫回寫回”移到移到MEMMEM段段 假設(shè)訪問數(shù)據(jù)存儲器需占用兩拍假設(shè)訪問數(shù)據(jù)存儲器需占用兩拍 舉例舉例 華北電力大學(xué)計(jì)算機(jī)系82130計(jì)算機(jī)組成與結(jié)構(gòu)(3) (3) 讀后寫相關(guān)讀后寫相關(guān) (WAR)(WAR)在在 i i 讀之前,讀之前,j j 先寫。先寫。i i 讀出的內(nèi)容是錯誤的!讀出的內(nèi)容是錯誤的! 這種相關(guān)僅出現(xiàn)在這樣的流水線中:這種相關(guān)僅出現(xiàn)在這樣的

41、流水線中: 有些指令是在流水線的后部讀源操作數(shù),有些指令是在流水線的后部讀源操作數(shù), 而有些指令則是在流水線的前部寫結(jié)果。而有些指令則是在流水線的前部寫結(jié)果。 DLX DLX流水線中不會發(fā)生這種相關(guān);流水線中不會發(fā)生這種相關(guān); (讀在先(讀在先(ID),(ID),寫在后寫在后(WB)(WB)) 這種相關(guān)很少發(fā)生;這種相關(guān)很少發(fā)生; (因?yàn)榱魉€一般是先讀操作數(shù),后寫結(jié)果)(因?yàn)榱魉€一般是先讀操作數(shù),后寫結(jié)果) 復(fù)雜指令可能導(dǎo)致這種相關(guān)。復(fù)雜指令可能導(dǎo)致這種相關(guān)。8.3 流水線中的相關(guān) 華北電力大學(xué)計(jì)算機(jī)系83130計(jì)算機(jī)組成與結(jié)構(gòu)(1) (1) 并非所有的數(shù)據(jù)相關(guān)都可以用定向技術(shù)解決并非所有

42、的數(shù)據(jù)相關(guān)都可以用定向技術(shù)解決 舉例舉例4. 需要暫停的數(shù)據(jù)相關(guān)8.3 流水線中的相關(guān) 華北電力大學(xué)計(jì)算機(jī)系85130計(jì)算機(jī)組成與結(jié)構(gòu)(2) (2) 增加流水線互鎖硬件,插入增加流水線互鎖硬件,插入“暫停暫?!?。 當(dāng)互鎖硬件發(fā)現(xiàn)這種相關(guān)時,就當(dāng)互鎖硬件發(fā)現(xiàn)這種相關(guān)時,就 暫停流水線暫停流水線,直到相關(guān)消失。直到相關(guān)消失。 舉例:舉例:演示演示A A 演示演示B B 8.3 流水線中的相關(guān) 華北電力大學(xué)計(jì)算機(jī)系87130計(jì)算機(jī)組成與結(jié)構(gòu)8.3 流水線中的相關(guān) 華北電力大學(xué)計(jì)算機(jī)系88130計(jì)算機(jī)組成與結(jié)構(gòu)例例8.58.5 假設(shè)某指令序列中假設(shè)某指令序列中2020的指令是的指令是LoadLoad指

43、令,指令,并且緊跟在并且緊跟在LoadLoad指令之后的半數(shù)指令需要使用到載指令之后的半數(shù)指令需要使用到載入的結(jié)果,如果這種數(shù)據(jù)相關(guān)將產(chǎn)生一個時鐘周期入的結(jié)果,如果這種數(shù)據(jù)相關(guān)將產(chǎn)生一個時鐘周期的延遲。理想流水線(沒有任何延遲,的延遲。理想流水線(沒有任何延遲,CPICPI為為1 1)的)的指令執(zhí)行速度要比這種真實(shí)流水線的快多少?指令執(zhí)行速度要比這種真實(shí)流水線的快多少?解解:我們可以利用我們可以利用CPICPI作為衡量標(biāo)準(zhǔn)。對于真實(shí)的流作為衡量標(biāo)準(zhǔn)。對于真實(shí)的流水線而言,由于水線而言,由于LoadLoad指令之后的半數(shù)指令需要暫停,指令之后的半數(shù)指令需要暫停,所以這些被暫停指令的所以這些被暫停

44、指令的CPICPI是是2 2。又知。又知LoadLoad指令占全指令占全部指令的部指令的2020,所以真實(shí)流水線的實(shí)際,所以真實(shí)流水線的實(shí)際CPICPI為:為:(0.9(0.91+0.11+0.12)=1.12)=1.1,這表示理想流水線的指令執(zhí),這表示理想流水線的指令執(zhí)行速度是其執(zhí)行速度的行速度是其執(zhí)行速度的1.11.1倍倍。 8.3 流水線中的相關(guān) 華北電力大學(xué)計(jì)算機(jī)系89130計(jì)算機(jī)組成與結(jié)構(gòu)5對數(shù)據(jù)相關(guān)的編譯調(diào)度方法 (1) (1) 流水線中常常會遇到許多種類型的暫停流水線中常常會遇到許多種類型的暫停 例如,按通常的代碼生成模式,表達(dá)式例如,按通常的代碼生成模式,表達(dá)式 A AB BC

45、 C的代碼會導(dǎo)致暫停的代碼會導(dǎo)致暫停8.3 流水線中的相關(guān)A AB BC C的代碼會導(dǎo)致暫停的代碼會導(dǎo)致暫停 華北電力大學(xué)計(jì)算機(jī)系91130計(jì)算機(jī)組成與結(jié)構(gòu)(3) (3) 舉例:舉例: 例例8.68.6 請為下列表達(dá)式生成沒有暫停的請為下列表達(dá)式生成沒有暫停的DLXDLX 指令序列:指令序列: a ab bc c ; d de ef f ; 假設(shè)載入延遲為假設(shè)載入延遲為1 1個時鐘周期。個時鐘周期。 題解題解(2) (2) 編譯器可以通過重新排列代碼的順序來消編譯器可以通過重新排列代碼的順序來消除這種暫停,這種技術(shù)稱為除這種暫停,這種技術(shù)稱為流水線調(diào)度或流水線調(diào)度或 指令調(diào)度。指令調(diào)度。8.3

46、 流水線中的相關(guān) 華北電力大學(xué)計(jì)算機(jī)系93130計(jì)算機(jī)組成與結(jié)構(gòu)(1) (1) 指令發(fā)射指令發(fā)射(issue)(issue):指令從譯碼段:指令從譯碼段(ID)(ID)進(jìn)入進(jìn)入 執(zhí)行段執(zhí)行段(EX)(EX)。 相應(yīng)的指令稱為相應(yīng)的指令稱為已發(fā)射的指令已發(fā)射的指令。 (2) DLX(2) DLX整數(shù)流水線中,可以在整數(shù)流水線中,可以在IDID段檢測所有的段檢測所有的 數(shù)據(jù)相關(guān);數(shù)據(jù)相關(guān); 若數(shù)據(jù)相關(guān),則在指令流出前,讓其暫停。若數(shù)據(jù)相關(guān),則在指令流出前,讓其暫停。 (3) (3) 可以在可以在IDID段確定需要什么樣的定向,并設(shè)置段確定需要什么樣的定向,并設(shè)置 相應(yīng)的控制;相應(yīng)的控制; 這樣能減

47、少硬件復(fù)雜度這樣能減少硬件復(fù)雜度( (因?yàn)椴槐貟炱鹨岩驗(yàn)椴槐貟炱鹨?改變了機(jī)器狀態(tài)的指令)。改變了機(jī)器狀態(tài)的指令)。6. 對DLX流水線控制的實(shí)現(xiàn)8.3 流水線中的相關(guān) 華北電力大學(xué)計(jì)算機(jī)系94130計(jì)算機(jī)組成與結(jié)構(gòu)(4) (4) 也可以在需要用到操作數(shù)的那個時鐘周期檢測也可以在需要用到操作數(shù)的那個時鐘周期檢測 相關(guān)或定向;相關(guān)或定向;(5) (5) 舉例說明:舉例說明: 由由LoadLoad指令引起的指令引起的RAWRAW相關(guān)的互鎖相關(guān)的互鎖( (簡稱簡稱Load Load 互鎖互鎖) )可以通過可以通過IDID段的檢測來實(shí)現(xiàn);段的檢測來實(shí)現(xiàn); 到到ALUALU輸入的定向可以在輸入的定向可以

48、在EXEX段實(shí)現(xiàn)。段實(shí)現(xiàn)。LoadLoad互鎖互鎖 流水線相關(guān)硬件可以檢測到的各種相關(guān)情況流水線相關(guān)硬件可以檢測到的各種相關(guān)情況 可以看出,僅需把可以看出,僅需把LoadLoad指令的目的寄存指令的目的寄存 器地址與器地址與LoadLoad指令后的兩條指令的源寄存器指令后的兩條指令的源寄存器 地址進(jìn)行比較。地址進(jìn)行比較。8.3 流水線中的相關(guān) 在在IDID段檢測是否需要啟動段檢測是否需要啟動LoadLoad互鎖需要進(jìn)行互鎖需要進(jìn)行 三種比較三種比較 華北電力大學(xué)計(jì)算機(jī)系97130計(jì)算機(jī)組成與結(jié)構(gòu) 當(dāng)檢測到相關(guān)后,控制部件必須在流水線中當(dāng)檢測到相關(guān)后,控制部件必須在流水線中 插入暫停周期,并使插

49、入暫停周期,并使IFIF和和IDID段中的指令停止段中的指令停止 前進(jìn)。前進(jìn)。l 將將ID/EXID/EX中的控制部分清中的控制部分清“O”O(jiān)”。l IF/IDIF/ID內(nèi)容回送到其自身入口。內(nèi)容回送到其自身入口。定向邏輯定向邏輯 有更多的情況要考慮有更多的情況要考慮 關(guān)鍵思路:關(guān)鍵思路:流水線寄存器不僅包含數(shù)據(jù),而且流水線寄存器不僅包含數(shù)據(jù),而且 包含源寄存器和目的寄存器地址(字段)包含源寄存器和目的寄存器地址(字段)8.3 流水線中的相關(guān) 華北電力大學(xué)計(jì)算機(jī)系98130計(jì)算機(jī)組成與結(jié)構(gòu) 所有的定向發(fā)生在:所有的定向發(fā)生在: ALUALU或或DMDM輸出輸出 ALU ALU輸入,輸入,DMD

50、M輸入,輸入, “ “O”O(jiān)”檢測部件檢測部件 ( (圖示圖示) ) 華北電力大學(xué)計(jì)算機(jī)系99211 華北電力大學(xué)計(jì)算機(jī)系100130計(jì)算機(jī)組成與結(jié)構(gòu)8.3.8 流水線的控制相關(guān)1. 分支指令的執(zhí)行結(jié)果一、分支引起的暫停及減少分支開銷的方法 轉(zhuǎn)移失?。恨D(zhuǎn)移失敗:PCPC值加值加4 4 轉(zhuǎn)移成功:轉(zhuǎn)移成功:將將PCPC值改變?yōu)檗D(zhuǎn)移目標(biāo)地址值改變?yōu)檗D(zhuǎn)移目標(biāo)地址 到到MEMMEM段的末尾才改變段的末尾才改變 一旦檢測到分支指令一旦檢測到分支指令( (在在IDID段段) ),就暫停,就暫停執(zhí)行其后的指令,直到分支指令到達(dá)執(zhí)行其后的指令,直到分支指令到達(dá)MEMMEM段,段,確定出新的確定出新的PCPC值

51、為止。值為止。2. 處理分支指令最簡單的方法8.3 流水線中的相關(guān) 在在DLXDLX流水線中,分支轉(zhuǎn)移成功導(dǎo)致流水線中,分支轉(zhuǎn)移成功導(dǎo)致暫停暫停3 3個個時鐘周期時鐘周期。 若分支指令的頻度為若分支指令的頻度為8080,理想理想CPICPI1 1, 則則 實(shí)際實(shí)際CPICPI1 180803232 華北電力大學(xué)計(jì)算機(jī)系102130計(jì)算機(jī)組成與結(jié)構(gòu)3. 減少分支開銷的兩種途徑 在流水線中盡早判斷分支轉(zhuǎn)移是否成功;在流水線中盡早判斷分支轉(zhuǎn)移是否成功; 轉(zhuǎn)移成功時,盡早計(jì)算出轉(zhuǎn)移目標(biāo)地址。轉(zhuǎn)移成功時,盡早計(jì)算出轉(zhuǎn)移目標(biāo)地址。兩者應(yīng)同時采用,缺一不可。兩者應(yīng)同時采用,缺一不可。對于對于DLXDLX作如

52、下改進(jìn)作如下改進(jìn): :(1) (1) 把把“0 0?”測試移至測試移至IDID段;段;8.3 流水線中的相關(guān) 華北電力大學(xué)計(jì)算機(jī)系104130計(jì)算機(jī)組成與結(jié)構(gòu)(2) (2) 在在IDID段增設(shè)一個加法器,這樣可以把分支段增設(shè)一個加法器,這樣可以把分支 開銷減少一拍。開銷減少一拍。 改進(jìn)后流水線的分支操作改進(jìn)后流水線的分支操作 (表(表8.58.5)8.3 流水線中的相關(guān)流流 水水 段段分分 支支 指指 令令 操操 作作IFIFIDIDEXEXIF/ID.IR IF/ID.IR MemPC MemPC; IF/ID.NPC,PC ; IF/ID.NPC,PC (if ID/EX.cond (if

53、 ID/EX.cond ID/EX.NPC else PC+4); ID/EX.NPC else PC+4);ID/EX.A ID/EX.A RegsIF/ID.IR RegsIF/ID.IR6.106.10; ID/EX.B ; ID/EX.B RegsIF/ID.IR RegsIF/ID.IR11.1511.15;ID/EX.NPC ID/EX.NPC IF/ID.NPC + (IR IF/ID.NPC + (IR1616) )1616#IR#IR16.8116.81; ;ID/EX.IR ID/EX.IR IF/ID.IR; ID/EX.cond IF/ID.IR; ID/EX.cond

54、 (RegsIF/ID.IR (RegsIF/ID.IR6.106.10 op 0; op 0;ID/EX.ImmID/EX.Imm (IR (IR1616) )1616#IR#IR16.8116.81; ;MEMMEMWBWB表 8.5 改進(jìn)后流水線的分支操作( (動畫演示動畫演示) )( (動畫演示動畫演示) ) 華北電力大學(xué)計(jì)算機(jī)系106130計(jì)算機(jī)組成與結(jié)構(gòu)二、程序中分支的行為特點(diǎn)1. 各種能改變各種能改變PCPC值的指令的執(zhí)行頻度值的指令的執(zhí)行頻度 (SPECSPEC基準(zhǔn)程序,基準(zhǔn)程序,DLXDLX上執(zhí)行)上執(zhí)行) 條件分支條件分支 整數(shù)程序:整數(shù)程序:14141515 浮點(diǎn)程序:浮

55、點(diǎn)程序:8 81212 向前分支與向后分支的比:向前分支與向后分支的比: 8181 無條件分支無條件分支 絕大多數(shù):絕大多數(shù):448.3 流水線中的相關(guān) 華北電力大學(xué)計(jì)算機(jī)系108130計(jì)算機(jī)組成與結(jié)構(gòu)2條件分支轉(zhuǎn)移成功的概率條件分支轉(zhuǎn)移成功的概率 平均值平均值 整數(shù)程序整數(shù)程序 向前:向前:1818無條件:無條件:4 4 向后:向后:8 8 浮點(diǎn)程序浮點(diǎn)程序 向前:向前:7 7 無條件:無條件:1 1 向右:向右:8 8所有條件分支:所有條件分支:6767向前:向前:6060向后:向后:8585(向后分支一般形成循環(huán))(向后分支一般形成循環(huán))8.3 流水線中的相關(guān) 華北電力大學(xué)計(jì)算機(jī)系109

56、130計(jì)算機(jī)組成與結(jié)構(gòu)8.3 流水線中的相關(guān) 華北電力大學(xué)計(jì)算機(jī)系110130計(jì)算機(jī)組成與結(jié)構(gòu)三、減少流水線分支損失的方法(種簡單的靜態(tài)方法,編譯時預(yù)測)(種簡單的靜態(tài)方法,編譯時預(yù)測)1. “凍結(jié)”或“排空”流水線 在流水線中停住或刪除分支后的指令,在流水線中停住或刪除分支后的指令,直到知道轉(zhuǎn)移目標(biāo)地址。直到知道轉(zhuǎn)移目標(biāo)地址。 優(yōu)點(diǎn):優(yōu)點(diǎn):簡單。簡單。2預(yù)測分支失敗 流水線繼續(xù)照常流動,就像沒發(fā)生什么似的。流水線繼續(xù)照常流動,就像沒發(fā)生什么似的。8.3 流水線中的相關(guān) 華北電力大學(xué)計(jì)算機(jī)系111130計(jì)算機(jī)組成與結(jié)構(gòu) 在知道分支結(jié)果之前,分支指令后的指令不在知道分支結(jié)果之前,分支指令后的指令

57、不 能改變機(jī)器狀態(tài),或者改變了之后能夠回退。能改變機(jī)器狀態(tài),或者改變了之后能夠回退。 若分支失敗,則照常執(zhí)行;否則,從轉(zhuǎn)移目若分支失敗,則照常執(zhí)行;否則,從轉(zhuǎn)移目 標(biāo)處開始取指令執(zhí)行。標(biāo)處開始取指令執(zhí)行。 DLXDLX流水線的處理過程流水線的處理過程8.3 流水線中的相關(guān) 華北電力大學(xué)計(jì)算機(jī)系113130計(jì)算機(jī)組成與結(jié)構(gòu)3. 3. 預(yù)測分支成功預(yù)測分支成功 假設(shè)分支轉(zhuǎn)移成功,并開始從分支目標(biāo)地址假設(shè)分支轉(zhuǎn)移成功,并開始從分支目標(biāo)地址 處取指令執(zhí)行。處取指令執(zhí)行。 起作用的前題:先知道分支目標(biāo)地址,后知起作用的前題:先知道分支目標(biāo)地址,后知 道分支是否成功。道分支是否成功。 對對DLXDLX流水

58、線沒有任何好處。流水線沒有任何好處。8.3 流水線中的相關(guān) 華北電力大學(xué)計(jì)算機(jī)系114130計(jì)算機(jī)組成與結(jié)構(gòu)4. 延遲分支 (delayed branch)(delayed branch) (1)(1) 基本概念基本概念 把分支開銷為把分支開銷為n n 的分支指令看成是延遲長的分支指令看成是延遲長 度為度為n n 的分支指令,其后緊跟有的分支指令,其后緊跟有n n 個延遲槽。個延遲槽。 流水線遇到分支指令時,按正常方式處理,順流水線遇到分支指令時,按正常方式處理,順 帶執(zhí)行延遲槽中的指令,從而減少分支開銷。帶執(zhí)行延遲槽中的指令,從而減少分支開銷。 延遲分支以及指令的執(zhí)行順序延遲分支以及指令的執(zhí)

59、行順序 8.3 流水線中的相關(guān) 華北電力大學(xué)計(jì)算機(jī)系116130計(jì)算機(jī)組成與結(jié)構(gòu)(2)(2) 具有一個分支延遲槽的具有一個分支延遲槽的DLXDLX流水線的流水線的執(zhí)行過程執(zhí)行過程分支延遲槽中的指令分支延遲槽中的指令“掩蓋掩蓋”了流水線原來了流水線原來 必需插入的暫停周期。必需插入的暫停周期。8.3 流水線中的相關(guān) 華北電力大學(xué)計(jì)算機(jī)系117211延遲分支指令延遲分支指令(i+1) 指令指令(i+2) 指令指令(i+3) 指令指令(i+4)延遲分支指令延遲分支指令(i+1) 華北電力大學(xué)計(jì)算機(jī)系118130計(jì)算機(jī)組成與結(jié)構(gòu)8.4 流水線的調(diào)度8.4.1 線性流水線的調(diào)度1. 靜態(tài)調(diào)度 在指令執(zhí)行

60、之前,利用軟件的手段生成適在指令執(zhí)行之前,利用軟件的手段生成適合流水線工作特點(diǎn)、盡可能減少指令執(zhí)行過程合流水線工作特點(diǎn)、盡可能減少指令執(zhí)行過程相關(guān)性的機(jī)器代碼,并對代碼優(yōu)化的調(diào)度方法。相關(guān)性的機(jī)器代碼,并對代碼優(yōu)化的調(diào)度方法。 優(yōu)化延遲轉(zhuǎn)移技術(shù)優(yōu)化延遲轉(zhuǎn)移技術(shù) 展開循環(huán)體后調(diào)度方法展開循環(huán)體后調(diào)度方法第三章 流水線技術(shù) 華北電力大學(xué)計(jì)算機(jī)系119130計(jì)算機(jī)組成與結(jié)構(gòu)2. 動態(tài)調(diào)度 在程序執(zhí)行過程中,由硬件重新安排指令的執(zhí)行順在程序執(zhí)行過程中,由硬件重新安排指令的執(zhí)行順序,以減少流水線停頓的方法。序,以減少流水線停頓的方法。 CDC記分牌法記分牌法 Tomasulo動態(tài)指令調(diào)度算法動態(tài)指令調(diào)度

溫馨提示

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

評論

0/150

提交評論