計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)(第六講)_第1頁
計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)(第六講)_第2頁
計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)(第六講)_第3頁
計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)(第六講)_第4頁
計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)(第六講)_第5頁
已閱讀5頁,還剩96頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)

(第六講)

廈門大學(xué)計(jì)算機(jī)科學(xué)系陸達(dá)

2004年n月20日

第五章標(biāo)量處理機(jī)

什么是標(biāo)量處理機(jī)?

只有標(biāo)量數(shù)據(jù)表示和標(biāo)量指令系統(tǒng)的處理機(jī)稱為標(biāo)

量處理機(jī)

提高處理機(jī)指令執(zhí)行速度的途徑有三種:

(1)、提高處理機(jī)的工作主頻

(2)、采用更好的算法和設(shè)計(jì)更好的功能部件

(3)、多條指令并行執(zhí)行,稱為指令級并行技術(shù)

a、流水線處理機(jī)、超流水線處理機(jī)

(superpipelining)

b、多操作部件處理機(jī)、超標(biāo)量處理機(jī)

(superscalar)

超標(biāo)量超流水線處理機(jī)(a+b)

c、超長指令字(VLIW)

?本章主要內(nèi)容:

(1)、流水線技術(shù)(先行控制技術(shù)、流水

線原理、流水線性能分析、非線性流水線

的調(diào)度方法、局部數(shù)據(jù)相關(guān)和全局?jǐn)?shù)據(jù)相

關(guān)的處理方法)

(2)、超標(biāo)量處理機(jī)

(3)、超流水線處理機(jī)

5」先行控制技術(shù)

?先行控制(look-ahead)技術(shù)

?超流水線處理機(jī)、超標(biāo)量處理機(jī)

?緩沖技術(shù)、預(yù)處理技術(shù)

?指令分析器、指令執(zhí)行部件

5.1.1指令的重疊執(zhí)行方式

圖5,1:一條指令的執(zhí)行過程

三個(gè)階段都可能訪問存儲器

指令的執(zhí)行方式:

(1)、順序執(zhí)行方式圖5.2(a)

T=3nt

取指令A(yù)分析卜執(zhí)行后取指令人+1分析h+1執(zhí)行上+1

(a)順序執(zhí)行方式

2)、一次重疊執(zhí)行方式圖5.2(b)

T=(l+2n)t

取指令6分析力執(zhí)行/

取指令6+1分析k+1執(zhí)行A+l

取指令歸+2分析歸+2執(zhí)行左+2

(b)一次重疊執(zhí)行方式

(3)、二次重疊執(zhí)行方式圖52(c)

T=(2+n)t

取指令G分析人執(zhí)行R

取指令力+i分析e+i執(zhí)行A+I

取指\+2分析2+2執(zhí)自+2

(C)二次重疊執(zhí)行方式

5.1.2先行控制方式的原理和結(jié)構(gòu)

?要解決兩個(gè)問題:

(1)、要有獨(dú)立的取指令部件、指令分析

部件和指令執(zhí)行部件

存儲控制器(存控)、指令控制器(指

控)、運(yùn)算控制器(運(yùn)控)

(2)、要解決訪問主存儲器的沖突問題

a、把主存儲器分成兩個(gè)獨(dú)立編制的存儲器

指令存儲器(指存)、數(shù)據(jù)存儲器(數(shù)

存)

指令Cache、數(shù)據(jù)Cache(哈佛結(jié)構(gòu))

b、指令和數(shù)據(jù)仍然混合存放在同一個(gè)主

存儲器內(nèi)

低位交叉存取方式

3、先行控制技術(shù)

緩沖技術(shù):在工作速度不固定的兩個(gè)功

能部件之間設(shè)置緩沖棧,用以平滑它們的

工作(設(shè)置四個(gè)緩沖棧)

預(yù)處理技術(shù):把進(jìn)入運(yùn)算器的指令都處

理成寄存器■寄存器型(R-R型)指令,它

與緩沖技術(shù)相結(jié)合,為進(jìn)入運(yùn)算器的指令

準(zhǔn)備好所需要的全部操作數(shù)

5.1.2.1處理機(jī)結(jié)構(gòu)

圖5.3:采用先行控制方式的處理機(jī)結(jié)構(gòu)

圖5.3采用先行控制方式的處理機(jī)機(jī)構(gòu)

圖5,4:指令緩沖棧(先行指令緩沖棧)的組成

指令緩沖寄存器(存儲器)堆、先行程序計(jì)數(shù)器PQ、

現(xiàn)行程序計(jì)數(shù)器PC

圖5.4先行指令緩沖棧的組成

圖5,5:先行控制方式的一次重疊執(zhí)行

這里的“分析”=前面的“取指令+分析”

T重疊=(l+n)t

?有三個(gè)問題需要解決:

(1)、指令分析部件和指令執(zhí)行部件經(jīng)常要

相互等待,從而造成功能部件的浪費(fèi)

(2)、數(shù)據(jù)相關(guān),控制相關(guān),變址相關(guān)

(3)、當(dāng)出現(xiàn)轉(zhuǎn)移或轉(zhuǎn)子程序指令時(shí),程序

的執(zhí)行過程就不是順序的

5.1.2.2指令執(zhí)行時(shí)序

圖5.6:分析指令和執(zhí)行指令時(shí)間不相等時(shí)的一次

重疊執(zhí)行方式

圖5.7:采用先行緩沖棧的指令執(zhí)行過程

先行緩沖棧:先行指令緩沖棧、先行讀數(shù)棧、先

行操作棧、后行寫數(shù)棧

圖5,8:采用先行緩沖棧時(shí)指令執(zhí)行過程的一種

表示方法(圖5.7的另一種表示方法)

nn

7先行"分析1+):"執(zhí)行

七乙\'t執(zhí)行

i=1i=1

5.123先行緩沖棧

先行指令緩沖棧(指令緩沖棧):用于平滑主存儲器

和指令分析器的工作

先行操作棧:指令分析器對已經(jīng)存放在先行指令緩沖

棧里的指令進(jìn)行預(yù)處理,把處理之后的指令送入先行

操作棧;先行操作棧是指令分析器和運(yùn)算控制器之間

的一個(gè)緩沖存儲器;先行操作棧采用先進(jìn)先出(FIFO)

的方式工作,它由一個(gè)先行指令寄存器堆和有關(guān)控制

邏輯等組成

預(yù)處理技術(shù)(RR型、RX型、RS型、RI型->RR*型)

先行讀數(shù)棧:是主存儲器與運(yùn)算器之間的一種緩

沖存儲器,用來平滑運(yùn)算器與主存儲器的工作;

由一組緩沖寄存器和有關(guān)控制邏輯等組成;每一

個(gè)緩沖寄存器由先行地址緩沖寄存器、先行操作

數(shù)緩沖寄存器和標(biāo)志字段等三部分組成

后行寫數(shù)棧:是主存儲器和運(yùn)算器之間的一個(gè)緩

沖存儲器;由一組緩沖寄存器和有關(guān)控制邏輯等

組成;每一個(gè)緩沖寄存器由后行地址緩沖寄存器、

后行數(shù)據(jù)緩沖寄存器和標(biāo)志字段等三部分組成

圖5S:采用先行控制方式時(shí)一個(gè)程序的執(zhí)行過程

?”令控制部件:先行控制器(先行指令緩

捺先行讀數(shù)棧、先行操作棧、后行寫

數(shù)T棧)+指令分析器

指令執(zhí)行部件:運(yùn)算器+運(yùn)算控制器

5.1.2.4緩沖深度的設(shè)計(jì)

樊渭深度問題:各個(gè)緩沖棧中的緩沖寄存器個(gè)數(shù)設(shè)置多少

?緩沖深度的靜態(tài)分析方法:

(1)、先行指令緩沖棧已經(jīng)完全充滿

Li*ti=(L/Di)*t2

Di=[L15t2七)八21

(2)、先行指令緩沖棧原來是空的

(1_2一立)七12咬2,

e=匕*(維,電')/5

除?;贾附餔強(qiáng)色要指含篁工京型旨令分析器中就直接執(zhí)

仃兀成,不需要送到運(yùn)算器中執(zhí)行

?例:

Li=9,tx=l,t2=4Dj=7

圖5.10:先行指令緩沖棧的工作時(shí)間關(guān)系圖

提高主存儲器的訪問速度,對減少緩沖深

度很有效42減少->工減少)

Di(先行指令緩沖棧)NDc(先行操縱棧)

2DR(先行讀數(shù)棧)>DW(先行寫數(shù)棧)

5.1.3數(shù)據(jù)相關(guān)

什么是/目關(guān)(correlation)?

是指在一段程序的相近指令之間有某種關(guān)系,這種關(guān)

系可能影響指令的重疊執(zhí)行

相關(guān)分為兩大類:

(1)、數(shù)據(jù)相關(guān)

(2)、控制相關(guān)

數(shù)據(jù)相關(guān):包括指令相關(guān)、主存操作數(shù)相關(guān)、通用寄

薦器相關(guān)、變址始關(guān)

解決數(shù)據(jù)相關(guān)的方法:

(1)、推后分析法

(2)、設(shè)置專用路徑

5.1,3.1指令相關(guān)

例:結(jié)果地址(k)=指令地址(k+1)

由于第k+1條指令本身的內(nèi)容取決于第k條指令的執(zhí)

行結(jié)果,從而產(chǎn)生指令相關(guān)

判斷是否發(fā)生了指令相關(guān):把每一條指令的結(jié)果地

址與先行操作棧中、指令分析器中、先行指令緩沖

棧中的所有指令地址進(jìn)行比較

解決填令相關(guān)的根本方法:在程序設(shè)計(jì)中不允許修

改指岑

IBM370,有一條“執(zhí)行”指令能夠解決指令相關(guān),

又允許在程序執(zhí)行過程中修改指令

5.1.3.2主存操作數(shù)相關(guān)

?例:結(jié)果地址(k)二主存操作數(shù)地址(k+1)

?當(dāng)指令的執(zhí)行結(jié)果寫到主存儲器,所讀取的操

作數(shù)也取自主存儲器時(shí),就有可能發(fā)生主存操

作數(shù)相關(guān)

?Ai(k)=A2(k+1)

A1(k)=A3(k+1)

解決主存操作數(shù)相關(guān)的方法:推后處理法

圖5.11:主存操作數(shù)相關(guān)及其處理方法

?對設(shè)置有先行操作棧的處理機(jī),解決操作

數(shù)相關(guān)的辦法:

對于剛進(jìn)入先行操作棧中的指令在向主

存讀操作數(shù)之前,首先要把訪問主存的地

址與后行寫數(shù)棧中的所有主存地址進(jìn)行比

較,如果發(fā)現(xiàn)有相等的,則先行操作棧的

讀操作數(shù)要暫緩進(jìn)行,等到發(fā)生操作數(shù)相

關(guān)的指令執(zhí)行完成,并把結(jié)果寫回到主存

之后再開始讀操作數(shù)

.133通用寄存器數(shù)據(jù)相關(guān)

?在RR型指令和RS型指令的執(zhí)行過程中,可

能發(fā)生通用寄存器數(shù)據(jù)相關(guān)

?Ri(k)=R(k+1),稱為《數(shù)據(jù)相關(guān)

Ri(k)=R2(k+1),稱為R2數(shù)據(jù)相關(guān)

?解決通用寄存器數(shù)據(jù)相關(guān)的方法(共有四種):

(1)、通用寄存器是用D型觸發(fā)器構(gòu)成的,而且在通用寄存

器到運(yùn)算器之間建立有直接數(shù)據(jù)通路,即不設(shè)置緩沖寄存

器或鎖存器,則不會發(fā)生通用寄存器數(shù)據(jù)相關(guān)

圖5.12:一種典型的運(yùn)算器結(jié)構(gòu)

2)、分析指令推后一個(gè)周期執(zhí)行

圖5.13:IBM370機(jī)的指令分析與執(zhí)行的時(shí)間關(guān)系

(3)、分析指令僅推后一個(gè)節(jié)拍

圖5.14:分析指令僅推后一個(gè)節(jié)拍的時(shí)間關(guān)系

(4)、設(shè)置專用數(shù)據(jù)通路

圖5.15:設(shè)置專用數(shù)據(jù)通路解決通用寄存器數(shù)據(jù)

相關(guān)

設(shè)置專用數(shù)據(jù)通路是通過增加硬件為代價(jià)來解決

寄存器數(shù)據(jù)相關(guān)

5.1.3.4變址相關(guān)

?把通用寄存器兼作變址寄存器使用,由于

在變址寄存器中存放的變址量在指令分析

過程中要用它來計(jì)算有效地址,有可能發(fā)

生變址相關(guān)

稱為一次變址相關(guān)

Ri(k)=X2(k+1),

稱為二次變址相關(guān)

Ri(k)=X2(k+2),

圖5.16:一次變址相關(guān)和二次變址相關(guān)的時(shí)間關(guān)

系(當(dāng)△ti>Zkt2時(shí),將發(fā)生二次變址相關(guān))

解決變址相關(guān)的方法:

(1)、推后分析

(2)、設(shè)置專用通路、

圖5.17:用變址相關(guān)專用通路解決變址相關(guān)

?解決各種數(shù)據(jù)相關(guān)的方法:

(1)、采用硬件或軟件的辦法盡量避免數(shù)據(jù)

相關(guān)發(fā)生

(2)、在確保指令正確執(zhí)行的前提下,推后

指令分析(推后分析法)

(3)、設(shè)置相關(guān)專用通路來解決數(shù)據(jù)相關(guān)

(設(shè)置專用路徑)

5.1.4控制相關(guān)

什么是控制相關(guān)?

因?yàn)槌绦虻膱?zhí)行方向可能改變而引起的相關(guān)稱為

控制相關(guān)

無條件轉(zhuǎn)移指令、一般條件轉(zhuǎn)移指令、復(fù)合條件

轉(zhuǎn)移指令、子程序調(diào)用指令、中斷指令

數(shù)據(jù)相關(guān):稱為局部相關(guān)

控制相關(guān):稱為全局相關(guān)

“吸收型”指令(無條件轉(zhuǎn)移指令、一般條件轉(zhuǎn)

移指令):在指令分析器就執(zhí)行完成,不需要送

入先行操作棧和指令執(zhí)行部件

5.1.4.1無條件轉(zhuǎn)移

無條件轉(zhuǎn)移指令一般能夠在指令分析器中就執(zhí)行

完成

?圖5.18:無條件轉(zhuǎn)移指令的執(zhí)行時(shí)序

(無條件轉(zhuǎn)移指令對程序執(zhí)行速度的影響很?。?/p>

5.1.4.2一般條件轉(zhuǎn)移

?條件轉(zhuǎn)移指令:

(1)、一般條件轉(zhuǎn)移指令

(2)、復(fù)合條件轉(zhuǎn)移指令

?圖5.19:一般條件轉(zhuǎn)移指令的執(zhí)行時(shí)序

一般條件轉(zhuǎn)移指令稱為“吸收型”指令

轉(zhuǎn)移不成功對先行控制器的影響不大,而當(dāng)轉(zhuǎn)移

成功時(shí),不僅指令執(zhí)行過程變成了完全串行,而

且要作廢已經(jīng)取到先行指令緩沖棧中的大量指令,

從而白白地增加了處理機(jī)與主存之間的通信量

5.1.4.3復(fù)合條件轉(zhuǎn)移

?復(fù)合型條件轉(zhuǎn)移指令不是“吸收型”指令

?圖5.20:復(fù)合型條件轉(zhuǎn)移指令的執(zhí)行時(shí)序

(如果轉(zhuǎn)移成功,對先行控制器造成的影響比一般條

件轉(zhuǎn)移指令還要大得多)

5.1.4.4轉(zhuǎn)移預(yù)測技術(shù)

?RISC關(guān)鍵技術(shù):

(1)、延遲轉(zhuǎn)移技術(shù)(pll8)

(2)、指令取消技術(shù)(pll9)

?在采用先行控制方式的處理機(jī)中,采用的

技大:

(1)、軟件“猜測法”

(2)、硬件“猜測法”

(3)、兩個(gè)先行指令緩沖棧

1、軟件“猜測法”

?要盡量降低轉(zhuǎn)移成功出現(xiàn)的概率

圖5.21:用編譯器支持條件轉(zhuǎn)移指令的執(zhí)行

2、硬件“猜測法”

在先行指令緩沖棧的入口處再增設(shè)一個(gè)簡單的指

令分析器,當(dāng)這個(gè)指令分析器檢測到轉(zhuǎn)移指令時(shí),

就把轉(zhuǎn)移目標(biāo)地址L送入先行程序計(jì)數(shù)器PC1中,

同時(shí)保留當(dāng)前PQ中的內(nèi)容到另一個(gè)寄存器中,以

備猜錯(cuò)時(shí)恢復(fù)原來的程序執(zhí)行方向

軟件“猜測法”和硬件“猜測法”共同配合,軟

件和硬件都往同一個(gè)方向去猜測

3、兩個(gè)先行指令緩沖棧

?對于普通條件轉(zhuǎn)移指令(如IF語句),轉(zhuǎn)移成功與不成功

的概率一般各為50%

?在先行指令緩沖棧中增加一個(gè)先行目標(biāo)緩沖棧,當(dāng)指令分

析器分析到條件轉(zhuǎn)移指令時(shí),按照轉(zhuǎn)移成功的方向預(yù)取指

令到這個(gè)先行目標(biāo)緩沖棧中,原來的先行指令緩沖棧仍然

按照轉(zhuǎn)移不成功的方向繼續(xù)預(yù)取指令

?AIB:新增加的先行目標(biāo)緩沖棧

?IB:原來的指令緩沖棧

?TRi、TR2:暫存寄存器

圖5.22:兩個(gè)先行指令緩沖棧的條件轉(zhuǎn)移指令執(zhí)行

流程

5.1.4.5短循環(huán)程序的處理

?對于短循環(huán)程序,一般先行指令緩沖棧的

效率很低

?短循環(huán)程序滿足的三個(gè)條件:

(1)、循環(huán)體的長度小于等于先行指令緩沖

棧的深度

(2)、循環(huán)次數(shù)的控制采用計(jì)數(shù)轉(zhuǎn)移指令實(shí)

現(xiàn)

(3)、控制循環(huán)的條件轉(zhuǎn)移指令一般是向后

轉(zhuǎn)移的指令

?必須解決好三個(gè)問題:

(1)、指令分析器如何發(fā)現(xiàn)短循環(huán)程序

(2)、如何控制短循環(huán)程序在先行指令緩沖棧中不被清除

(3)、如何控制循環(huán)體的執(zhí)行次數(shù),即處理好循環(huán)程序的

出口

?兩種方法:

(1)、在指令系統(tǒng)中設(shè)置專門的短循環(huán)程序的開門指令和

關(guān)門指令

短循環(huán)標(biāo)志觸發(fā)器「

(2)、用專門的硬件來識別短循環(huán)程序,目的是使短循環(huán)

程序的處理對程序員透明

?一級Cache:一級指令Cache、一級數(shù)據(jù)Cache

可以有效地提高循序程序的執(zhí)行速度

5.2流水線處理機(jī)

空間并行性:

在一個(gè)處理機(jī)內(nèi)設(shè)置多個(gè)獨(dú)立的操作部件,并讓

這些操作部件并行工作

多操作部件處理機(jī)和超標(biāo)量處理機(jī)

時(shí)間并行性:

采用流水線技術(shù)

流水線的基本原理、特點(diǎn)、分類、性能分析;非

線性流水線的調(diào)度問題;流水線中的局部相關(guān)和

全局相關(guān)的處理方法

5.2.1流水線工作原理

什么是流水線工作方式?

把一個(gè)重復(fù)的過程分解為若干個(gè)子過程,

每個(gè)子過程可以與其他子過程同時(shí)進(jìn)行

指令流水線

操作部件流水線

訪問主存儲器部件也可以采用流水線

在處理機(jī)之間,機(jī)器之間也可以采用流水

5.2.1.1從重疊到流水線

?圖5,23:一種簡單的流水線

指令分析器、指令執(zhí)行部件

圖5.24:一種指令流水線

一條指令分為6個(gè)子過程

圖5.25:浮點(diǎn)加法器流水線

圖5.24的執(zhí)行過程分解為4個(gè)小子過程

5.2-1.2時(shí)空圖

?圖5.26:描述流水線工作過程的時(shí)空圖

橫坐標(biāo):表示時(shí)間

縱坐標(biāo):表示空間,即流水線的各個(gè)子過程

“功能段”:流水線的一個(gè)子過程

圖5.27:浮點(diǎn)加法器流水線的時(shí)空圖

5.2.1.3流水線的特點(diǎn)

(1)、在流水線中處理的必須是連續(xù)任務(wù)

(2)、把一個(gè)任務(wù)(一條指令或一個(gè)操作)分解為

幾個(gè)有聯(lián)系的子任務(wù),每個(gè)子任務(wù)由一個(gè)專門的

功能部件來實(shí)現(xiàn)

(3)、在流水線的每一個(gè)功能部件的后面都要有一

個(gè)緩沖寄存器(鎖存器、閘門寄存器),用于保

存本段的執(zhí)行結(jié)果

(4)、流水線中各段的時(shí)間應(yīng)盡量相等,否則將引

起“堵塞”、“斷流”等

(5)、流水線需要有“裝入時(shí)間”和“排空時(shí)間”

5.2.2流水線的分類

5.2.2.1線性流水線與非線性流水線

線性流水線(linearpipelining)

將流水線的各段逐個(gè)串接起來,輸入數(shù)據(jù)從流水

線的一端進(jìn)入,從另一端輸出

非線性流水線(nonlinearpipelining)

在流水線的各個(gè)功能段之間除了有串行的連接之

外,還有反饋回路

非線性流水線常用于遞歸調(diào)用,或構(gòu)成多功能流

水線等

圖5.28:一種簡單的非線性流水線

圖529:非線性流水線的預(yù)約表

一條非線性流水線可以有很多張預(yù)約表,一張預(yù)約

表實(shí)際上僅表示了一條非線性流水線的一種工作方

5.2.2.2流水線的級別

(1)、功能部件級流水線(部件級流水線):也稱運(yùn)算操作

流水線(arithmeticpipelining),如前面的圖5.25

(2)、處理機(jī)級流水線:也稱指令流水線(instruction

pipelining)

流水線處理機(jī)或超流水線處理機(jī):

在指令執(zhí)行部件中采用了流水線的處理機(jī)

多操作部件處理機(jī)或超標(biāo)量處理機(jī):

在指令執(zhí)行部件中設(shè)置有多個(gè)操作部件的處理機(jī)

圖5.30:先行控制方式中的指令流水線

包括指令控制部件(先行控制器+指令分析器)、

指令執(zhí)行部件

(3)、處理機(jī)間流水線:也稱宏流水線(macro

pipelining)

圖5.31:一種宏流水線

5.2.2.3單功能與多功能流水線

單功能流水線(unifunctionpipelining):一條流

水線只能完成一種固定的功能

Cray-1、YH-1、Pentium>Alpha21064

多功能流水線(multifunctionpipelining):流水

線的各段可以進(jìn)行不同的連接,在不同時(shí)間內(nèi),

或在同一時(shí)間內(nèi),通過不同的連接方式實(shí)現(xiàn)不同

的功能

Texas儀器公司的ASC

?圖5.32:TI-ASC計(jì)算機(jī)的多功能流水線

圖5.32(a):8段流水線

圖5.32(b):定點(diǎn)乘法

圖5.32(c):浮點(diǎn)加法

圖5.32(d):浮點(diǎn)點(diǎn)積,實(shí)際上是一條帶有

反饋回路的非線性流水線

?多功能流水線、設(shè)置多條專門的單功能流

水線

5.2,2.4靜態(tài)流水線與動(dòng)態(tài)流水線

?靜態(tài)流水線(staticpipelining)

在同一段時(shí)間內(nèi),多功能流水線中的各個(gè)

功能段只能按照一種固定的方式連接,實(shí)

現(xiàn)一種固定的功能

圖5.33:靜態(tài)流水線時(shí)空圖

?動(dòng)態(tài)流水線(dynamicpipelining)

在同一段時(shí)間內(nèi),多功能流水線中的各段可

以按照不同的方式連接,同時(shí)執(zhí)行多種功

圖5.34:動(dòng)態(tài)流水線時(shí)空圖

?按照不同的數(shù)據(jù)表示方式:

(1)、標(biāo)量流水線:用于標(biāo)量處理機(jī)中

(2)、向量流水線:用于向量處理機(jī)中

?按照對流水線的控制方式不同:

(1)、同步流水線:

(2)、異步流水線:一般的宏流水線多采用異步流水線方式

圖5.35:一種異步流水線

?按照流水線輸出端流出的任務(wù)與流水線輸

入端流入的任務(wù)的順序是否相同:

(1)、順序流水線:

(2)、亂序流水線:也稱無序流水線、錯(cuò)序

流水線、異步流水線

5.2.3線性流水線的性能分析

?衡量流水線性能的主要指標(biāo)有:

(1)、吞吐率

(2)、加速比

(3)、效率

(4)、流水線的最佳段數(shù)

5.2.3.1吞吐率

?吞吐率(thoughputrate,TP):是指在單

位時(shí)間內(nèi)流水線所完成的任務(wù)數(shù)量或輸出

的結(jié)果數(shù)量

TP=n/Tk

n:任務(wù)數(shù)

處理完成個(gè)任務(wù)所用的時(shí)間

Tk:n

圖5.36:各段執(zhí)行時(shí)間均相等的流水線時(shí)空圖

TP=n/[(k+n-l)*At]

TPmax=l/At

TP=[n/(k+n-l)]*TPmax

圖5.37:各段執(zhí)行時(shí)間不相等的流水線及其時(shí)

空圖

n

TP=---------------------------------------

k

2△"+(〃—1)max(△[,△乙)

i=1

TP1

max=/max(At1,At2,■一,Atk)

TPmax=l/(3*At)

當(dāng)流水線中各個(gè)功能段的執(zhí)行時(shí)間不完全相等時(shí),

流水線的最大吞吐率與實(shí)際吞吐率主要是由流水

線中執(zhí)行時(shí)間最長的那個(gè)功能段來決定,這個(gè)功

能段就成了整個(gè)流水線的“瓶頸”

解決流水線“瓶頸”問題的方法:

(1)、將流水線的“瓶頸”部分再細(xì)分,如圖5.38

(2)、通過重復(fù)設(shè)置“瓶頸”功能段,讓多個(gè)“瓶

頸”功能段并行工作,如圖5.39

圖5.38:“瓶頸”功能段再次細(xì)分

TPmax=VAt

圖5.39:“瓶頸”功能段重復(fù)設(shè)置的流水線

TPmax=1/At

由于流水線存在有裝入和排空時(shí)間,輸入

的任務(wù)往往不是連續(xù)的,程序本身存在有

數(shù)據(jù)相關(guān),多功能流水線在完成某一種功

能時(shí)有的功能段不使用等,是流水線的實(shí)

際吞吐率要低于最大吞吐率

5.2.3.2加速比

?加速比(speedupratio):完成一批任務(wù),

不使用流水線所用的時(shí)間與使用流水線所

用的時(shí)間之比稱為流水線的加速比

?S=T0/Tk

?各個(gè)功能段執(zhí)行時(shí)間均相等的一條k段流水

線完成n個(gè)連續(xù)任務(wù)時(shí)的實(shí)際加速比為:

S=k*n*At/[(k+n-l)*At]=k*n/(k+n-l)

最大加速比:Smax=k

圖5.40:任務(wù)個(gè)數(shù)與加速比的關(guān)系

當(dāng)流水線的各個(gè)功能段的執(zhí)行時(shí)間不相等時(shí),

一條k段線性流水線完成n個(gè)連續(xù)任務(wù)時(shí)的實(shí)際

加速比為:

k

n?):△t,

i=1

S=

k

):△2.+(n-1)-max(,△晨)

i=1

5.23.3效率

效率(efficiency):是指流水線的設(shè)備利

用率;在時(shí)空圖上,流水線的效率定義為n

個(gè)任務(wù)占用的時(shí)空區(qū)與k個(gè)功能段總的時(shí)空

區(qū)之比;流水線的效率包括有時(shí)間和空間

兩方面的因素

E=n個(gè)任務(wù)占用的時(shí)空區(qū)/k個(gè)流水段的總的

時(shí)空區(qū)=T0/(k*Tk)

流水線的各段執(zhí)行時(shí)間均相等:

E=k*n*At/[k*(k+n-l)*At]=n/(k+n-l)

Emax=1

E=TP*At,TP=E/At

當(dāng)時(shí)鐘周期不變時(shí),流水線的效率與吞吐率成

正比

E=S/k,S=k*E

流水線的效率是流水線實(shí)際加速比S與它的最大加

速比k之比

流水線的各段執(zhí)行時(shí)間不相等:

n?):△t,

E=----------------------------------------------------------------------------------------------------------------------------------------

「41

n1

k-IZ+(—)?max(AZt,AZ2,---,△

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論