計算機系統(tǒng)結構(第六講)_第1頁
計算機系統(tǒng)結構(第六講)_第2頁
計算機系統(tǒng)結構(第六講)_第3頁
計算機系統(tǒng)結構(第六講)_第4頁
計算機系統(tǒng)結構(第六講)_第5頁
已閱讀5頁,還剩96頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

計算機系統(tǒng)結構

(第六講)

廈門大學計算機科學系陸達

2004年n月20日

第五章標量處理機

什么是標量處理機?

只有標量數據表示和標量指令系統(tǒng)的處理機稱為標

量處理機

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

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

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

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

a、流水線處理機、超流水線處理機

(superpipelining)

b、多操作部件處理機、超標量處理機

(superscalar)

超標量超流水線處理機(a+b)

c、超長指令字(VLIW)

?本章主要內容:

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

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

的調度方法、局部數據相關和全局數據相

關的處理方法)

(2)、超標量處理機

(3)、超流水線處理機

5」先行控制技術

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

?超流水線處理機、超標量處理機

?緩沖技術、預處理技術

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

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

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

三個階段都可能訪問存儲器

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

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

T=3nt

取指令A分析卜執(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先行控制方式的原理和結構

?要解決兩個問題:

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

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

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

控)、運算控制器(運控)

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

a、把主存儲器分成兩個獨立編制的存儲器

指令存儲器(指存)、數據存儲器(數

存)

指令Cache、數據Cache(哈佛結構)

b、指令和數據仍然混合存放在同一個主

存儲器內

低位交叉存取方式

3、先行控制技術

緩沖技術:在工作速度不固定的兩個功

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

工作(設置四個緩沖棧)

預處理技術:把進入運算器的指令都處

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

與緩沖技術相結合,為進入運算器的指令

準備好所需要的全部操作數

5.1.2.1處理機結構

圖5.3:采用先行控制方式的處理機結構

圖5.3采用先行控制方式的處理機機構

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

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

現行程序計數器PC

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

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

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

T重疊=(l+n)t

?有三個問題需要解決:

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

相互等待,從而造成功能部件的浪費

(2)、數據相關,控制相關,變址相關

(3)、當出現轉移或轉子程序指令時,程序

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

5.1.2.2指令執(zhí)行時序

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

重疊執(zhí)行方式

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

先行緩沖棧:先行指令緩沖棧、先行讀數棧、先

行操作棧、后行寫數棧

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

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

nn

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

七乙\'t執(zhí)行

i=1i=1

5.123先行緩沖棧

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

和指令分析器的工作

先行操作棧:指令分析器對已經存放在先行指令緩沖

棧里的指令進行預處理,把處理之后的指令送入先行

操作棧;先行操作棧是指令分析器和運算控制器之間

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

的方式工作,它由一個先行指令寄存器堆和有關控制

邏輯等組成

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

先行讀數棧:是主存儲器與運算器之間的一種緩

沖存儲器,用來平滑運算器與主存儲器的工作;

由一組緩沖寄存器和有關控制邏輯等組成;每一

個緩沖寄存器由先行地址緩沖寄存器、先行操作

數緩沖寄存器和標志字段等三部分組成

后行寫數棧:是主存儲器和運算器之間的一個緩

沖存儲器;由一組緩沖寄存器和有關控制邏輯等

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

后行數據緩沖寄存器和標志字段等三部分組成

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

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

捺先行讀數棧、先行操作棧、后行寫

數T棧)+指令分析器

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

5.1.2.4緩沖深度的設計

樊渭深度問題:各個緩沖棧中的緩沖寄存器個數設置多少

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

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

Li*ti=(L/Di)*t2

Di=[L15t2七)八21

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

(1_2一立)七12咬2,

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

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

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

?例:

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

圖5.10:先行指令緩沖棧的工作時間關系圖

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

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

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

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

5.1.3數據相關

什么是/目關(correlation)?

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

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

相關分為兩大類:

(1)、數據相關

(2)、控制相關

數據相關:包括指令相關、主存操作數相關、通用寄

薦器相關、變址始關

解決數據相關的方法:

(1)、推后分析法

(2)、設置專用路徑

5.1,3.1指令相關

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

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

行結果,從而產生指令相關

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

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

棧中的所有指令地址進行比較

解決填令相關的根本方法:在程序設計中不允許修

改指岑

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

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

5.1.3.2主存操作數相關

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

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

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

作數相關

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

A1(k)=A3(k+1)

解決主存操作數相關的方法:推后處理法

圖5.11:主存操作數相關及其處理方法

?對設置有先行操作棧的處理機,解決操作

數相關的辦法:

對于剛進入先行操作棧中的指令在向主

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

址與后行寫數棧中的所有主存地址進行比

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

讀操作數要暫緩進行,等到發(fā)生操作數相

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

之后再開始讀操作數

.133通用寄存器數據相關

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

能發(fā)生通用寄存器數據相關

?Ri(k)=R(k+1),稱為《數據相關

Ri(k)=R2(k+1),稱為R2數據相關

?解決通用寄存器數據相關的方法(共有四種):

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

器到運算器之間建立有直接數據通路,即不設置緩沖寄存

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

圖5.12:一種典型的運算器結構

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

圖5.13:IBM370機的指令分析與執(zhí)行的時間關系

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

圖5.14:分析指令僅推后一個節(jié)拍的時間關系

(4)、設置專用數據通路

圖5.15:設置專用數據通路解決通用寄存器數據

相關

設置專用數據通路是通過增加硬件為代價來解決

寄存器數據相關

5.1.3.4變址相關

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

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

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

生變址相關

稱為一次變址相關

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

稱為二次變址相關

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

圖5.16:一次變址相關和二次變址相關的時間關

系(當△ti>Zkt2時,將發(fā)生二次變址相關)

解決變址相關的方法:

(1)、推后分析

(2)、設置專用通路、

圖5.17:用變址相關專用通路解決變址相關

?解決各種數據相關的方法:

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

相關發(fā)生

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

指令分析(推后分析法)

(3)、設置相關專用通路來解決數據相關

(設置專用路徑)

5.1.4控制相關

什么是控制相關?

因為程序的執(zhí)行方向可能改變而引起的相關稱為

控制相關

無條件轉移指令、一般條件轉移指令、復合條件

轉移指令、子程序調用指令、中斷指令

數據相關:稱為局部相關

控制相關:稱為全局相關

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

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

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

5.1.4.1無條件轉移

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

完成

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

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

5.1.4.2一般條件轉移

?條件轉移指令:

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

(2)、復合條件轉移指令

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

一般條件轉移指令稱為“吸收型”指令

轉移不成功對先行控制器的影響不大,而當轉移

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

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

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

5.1.4.3復合條件轉移

?復合型條件轉移指令不是“吸收型”指令

?圖5.20:復合型條件轉移指令的執(zhí)行時序

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

件轉移指令還要大得多)

5.1.4.4轉移預測技術

?RISC關鍵技術:

(1)、延遲轉移技術(pll8)

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

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

技大:

(1)、軟件“猜測法”

(2)、硬件“猜測法”

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

1、軟件“猜測法”

?要盡量降低轉移成功出現的概率

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

2、硬件“猜測法”

在先行指令緩沖棧的入口處再增設一個簡單的指

令分析器,當這個指令分析器檢測到轉移指令時,

就把轉移目標地址L送入先行程序計數器PC1中,

同時保留當前PQ中的內容到另一個寄存器中,以

備猜錯時恢復原來的程序執(zhí)行方向

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

件和硬件都往同一個方向去猜測

3、兩個先行指令緩沖棧

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

的概率一般各為50%

?在先行指令緩沖棧中增加一個先行目標緩沖棧,當指令分

析器分析到條件轉移指令時,按照轉移成功的方向預取指

令到這個先行目標緩沖棧中,原來的先行指令緩沖棧仍然

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

?AIB:新增加的先行目標緩沖棧

?IB:原來的指令緩沖棧

?TRi、TR2:暫存寄存器

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

流程

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

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

效率很低

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

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

棧的深度

(2)、循環(huán)次數的控制采用計數轉移指令實

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

轉移的指令

?必須解決好三個問題:

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

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

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

出口

?兩種方法:

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

關門指令

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

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

程序的處理對程序員透明

?一級Cache:一級指令Cache、一級數據Cache

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

5.2流水線處理機

空間并行性:

在一個處理機內設置多個獨立的操作部件,并讓

這些操作部件并行工作

多操作部件處理機和超標量處理機

時間并行性:

采用流水線技術

流水線的基本原理、特點、分類、性能分析;非

線性流水線的調度問題;流水線中的局部相關和

全局相關的處理方法

5.2.1流水線工作原理

什么是流水線工作方式?

把一個重復的過程分解為若干個子過程,

每個子過程可以與其他子過程同時進行

指令流水線

操作部件流水線

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

在處理機之間,機器之間也可以采用流水

5.2.1.1從重疊到流水線

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

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

圖5.24:一種指令流水線

一條指令分為6個子過程

圖5.25:浮點加法器流水線

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

5.2-1.2時空圖

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

橫坐標:表示時間

縱坐標:表示空間,即流水線的各個子過程

“功能段”:流水線的一個子過程

圖5.27:浮點加法器流水線的時空圖

5.2.1.3流水線的特點

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

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

幾個有聯系的子任務,每個子任務由一個專門的

功能部件來實現

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

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

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

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

起“堵塞”、“斷流”等

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

5.2.2流水線的分類

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

線性流水線(linearpipelining)

將流水線的各段逐個串接起來,輸入數據從流水

線的一端進入,從另一端輸出

非線性流水線(nonlinearpipelining)

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

外,還有反饋回路

非線性流水線常用于遞歸調用,或構成多功能流

水線等

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

圖529:非線性流水線的預約表

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

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

5.2.2.2流水線的級別

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

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

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

pipelining)

流水線處理機或超流水線處理機:

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

多操作部件處理機或超標量處理機:

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

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

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

指令執(zhí)行部件

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

pipelining)

圖5.31:一種宏流水線

5.2.2.3單功能與多功能流水線

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

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

Cray-1、YH-1、Pentium>Alpha21064

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

線的各段可以進行不同的連接,在不同時間內,

或在同一時間內,通過不同的連接方式實現不同

的功能

Texas儀器公司的ASC

?圖5.32:TI-ASC計算機的多功能流水線

圖5.32(a):8段流水線

圖5.32(b):定點乘法

圖5.32(c):浮點加法

圖5.32(d):浮點點積,實際上是一條帶有

反饋回路的非線性流水線

?多功能流水線、設置多條專門的單功能流

水線

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

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

在同一段時間內,多功能流水線中的各個

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

現一種固定的功能

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

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

在同一段時間內,多功能流水線中的各段可

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

圖5.34:動態(tài)流水線時空圖

?按照不同的數據表示方式:

(1)、標量流水線:用于標量處理機中

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

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

(1)、同步流水線:

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

圖5.35:一種異步流水線

?按照流水線輸出端流出的任務與流水線輸

入端流入的任務的順序是否相同:

(1)、順序流水線:

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

流水線、異步流水線

5.2.3線性流水線的性能分析

?衡量流水線性能的主要指標有:

(1)、吞吐率

(2)、加速比

(3)、效率

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

5.2.3.1吞吐率

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

位時間內流水線所完成的任務數量或輸出

的結果數量

TP=n/Tk

n:任務數

處理完成個任務所用的時間

Tk:n

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

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

TPmax=l/At

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

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

空圖

n

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

k

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

i=1

TP1

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

TPmax=l/(3*At)

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

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

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

能段就成了整個流水線的“瓶頸”

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

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

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

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

圖5.38:“瓶頸”功能段再次細分

TPmax=VAt

圖5.39:“瓶頸”功能段重復設置的流水線

TPmax=1/At

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

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

數據相關,多功能流水線在完成某一種功

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

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

5.2.3.2加速比

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

不使用流水線所用的時間與使用流水線所

用的時間之比稱為流水線的加速比

?S=T0/Tk

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

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

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

最大加速比:Smax=k

圖5.40:任務個數與加速比的關系

當流水線的各個功能段的執(zhí)行時間不相等時,

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

加速比為:

k

n?):△t,

i=1

S=

k

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

i=1

5.23.3效率

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

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

個任務占用的時空區(qū)與k個功能段總的時空

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

兩方面的因素

E=n個任務占用的時空區(qū)/k個流水段的總的

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

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

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

Emax=1

E=TP*At,TP=E/At

當時鐘周期不變時,流水線的效率與吞吐率成

正比

E=S/k,S=k*E

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

速比k之比

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

n?):△t,

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

「41

n1

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

溫馨提示

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

評論

0/150

提交評論