體系結(jié)構(gòu)第五章_第1頁
體系結(jié)構(gòu)第五章_第2頁
體系結(jié)構(gòu)第五章_第3頁
體系結(jié)構(gòu)第五章_第4頁
體系結(jié)構(gòu)第五章_第5頁
已閱讀5頁,還剩167頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

北京理工大學(xué)計算機學(xué)院第五章流水線和向量處理機北京理工大學(xué)計算機學(xué)院第5章流水線和向量處理機5.1重疊方式5.2流水方式5.3向量的流水處理與向量流水處理機5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院5.1.1重疊原理和一次重疊

圖5.1對一條機器指令的解釋取指令分析執(zhí)行t5.1重疊方式北京理工大學(xué)計算機學(xué)院順序執(zhí)行方式執(zhí)行n條指令所用的時間為:如果每段時間都為t,則執(zhí)行n條指令所用的時間為:T=3nt取指k分析k執(zhí)行k取指k+1分析k+1執(zhí)行k+15.1重疊方式北京理工大學(xué)計算機學(xué)院主要優(yōu)點:

控制簡單,節(jié)省設(shè)備。主要缺點:

執(zhí)行指令的速度慢,功能部件的利用率很低。5.1重疊方式北京理工大學(xué)計算機學(xué)院圖

一次重疊工作方式

5.1重疊方式如果每次都可以從指令緩沖器中取得指令,則“取指”的時間很短,可把這個微操作合并到“分析”內(nèi)北京理工大學(xué)計算機學(xué)院取指k分析k執(zhí)行k取指k+1分析k+1執(zhí)行k+1取指k+2分析k+2執(zhí)5.1重疊方式北京理工大學(xué)計算機學(xué)院一次重疊執(zhí)行方式

一種最簡單的流水線方式。如果兩個過程的時間相等,則執(zhí)行n條指令的時間為:T=(1+2n)t主要優(yōu)點:

指令的執(zhí)行時間縮短。

功能部件的利用率明顯提高。主要缺點:

需要增加一些硬件。

控制過程稍復(fù)雜。5.1重疊方式北京理工大學(xué)計算機學(xué)院二次重疊執(zhí)行方式如果三過程的時間相等,執(zhí)行n條指令的時間為:T=(2+n)t

理想情況下同時有三條指令在執(zhí)行。處理機的結(jié)構(gòu)要作比較大的改變,必須采用先行控制方式。取指k+2分析k+2執(zhí)行k+2取指k+1分析k+1執(zhí)行k+1取指k分析k執(zhí)行k5.1重疊方式北京理工大學(xué)計算機學(xué)院先行控制方式的原理1、采用二次重疊執(zhí)行方式,必須解決兩個問題:

(1)有獨立的取指令部件、指令分析部件和指令執(zhí)行部件。獨立的控制器:存儲控制器、指令控制器、運算控制器。

(2)要解決訪問主存儲器的沖突問題取指令、分析指令、執(zhí)行指令都可能要訪問存儲器。5.1重疊方式北京理工大學(xué)計算機學(xué)院2、解決訪存沖突的方法:(1)采用低位交叉存取方式:這種方法不能根本解決沖突問題。 取指令、讀操作數(shù)、寫結(jié)果。(2)兩個獨立的存儲器:獨立的指令存儲器和數(shù)據(jù)存儲器。

如果再規(guī)定,執(zhí)行指令所需要的操作數(shù)和執(zhí)行結(jié)果只寫到通用寄存器,那么,取指令、分析指令和執(zhí)行指令就可以同時進(jìn)行。

在許多高性能處理機中,有獨立的指令Cache和數(shù)據(jù)Cache。這種結(jié)構(gòu)被稱為哈佛結(jié)構(gòu)。5.1重疊方式北京理工大學(xué)計算機學(xué)院(3)采用先行控制技術(shù)

先行控制技術(shù)的關(guān)鍵是緩沖技術(shù)和預(yù)處理技術(shù)。

緩沖技術(shù)是在工作速度不固定的兩個功能部件之間設(shè)置緩沖棧,用以平滑它們的工作。在采用了緩沖技術(shù)和預(yù)處理技術(shù)之后,運算器能夠?qū)P挠跀?shù)據(jù)的運算,從而大幅度提高程序的執(zhí)行速度。5.1重疊方式北京理工大學(xué)計算機學(xué)院5.1.2相關(guān)處理因機器語言程序中鄰近指令之間出現(xiàn)了關(guān)聯(lián),為防止出錯讓它們不能同時解釋的現(xiàn)象稱為發(fā)生了“相關(guān)”。相關(guān)又可細(xì)分為數(shù)據(jù)相關(guān)和指令相關(guān)。數(shù)據(jù)相關(guān)是指第k指令和第k+1指令的數(shù)據(jù)地址之間有關(guān)聯(lián)。例如,第k+1條指令的源操作數(shù)地址正好是第k條指令存放運算結(jié)果的地址。數(shù)據(jù)相關(guān)不僅會發(fā)生在主存空間,也會發(fā)生在通用寄存器空間。指令相關(guān)是因為指令在程序的執(zhí)行過程中允許被修改造成的。例如,經(jīng)第k條指令的執(zhí)行形成第k+1條指令。

5.1重疊方式北京理工大學(xué)計算機學(xué)院圖

當(dāng)?shù)趉條指令是條件轉(zhuǎn)移時

5.1重疊方式北京理工大學(xué)計算機學(xué)院

如果采用VonNeumann型機器上指令可修改的辦法經(jīng)第k條指令的執(zhí)行來形成第k+1條指令,如

k:存通用寄存器,

k+1;(通用寄存器)→k+1k+1:……由于在“執(zhí)行k”的末尾才形成第k+1條指令,按照一次重疊的時間關(guān)系,“分析k+1”所分析的是早已取進(jìn)指緩的第k+1條指令的舊內(nèi)容,這就會出錯。為了避免出錯,第k、k+1條指令就不能同時解釋,我們稱此時這兩條指令之間發(fā)生了“指令相關(guān)”。特別是當(dāng)指令緩沖器可緩沖存放n條指令情況下,執(zhí)行到第k條指令時,與已預(yù)取進(jìn)指緩的第k+1到第k+n條指令都有可能發(fā)生指令相關(guān)。指緩容量越大,或者說指令預(yù)處理能力愈強的機器發(fā)生指令相關(guān)的概率就愈高。5.1重疊方式北京理工大學(xué)計算機學(xué)院5.1.2相關(guān)處理1.指令相關(guān)的處理“執(zhí)行”指令是IBM370機器為此設(shè)置的一條指令,其形式為執(zhí)行R1X2B2D2當(dāng)執(zhí)行到“執(zhí)行”指令時,按第二操作數(shù)(X2)+(B2)+D2地址取出操作數(shù)區(qū)中單元的內(nèi)容作為指令來執(zhí)行。被修改的指令是以“執(zhí)行”指令的操作數(shù)形式出現(xiàn),將指令相關(guān)轉(zhuǎn)化成了數(shù)相關(guān),統(tǒng)一按數(shù)相關(guān)進(jìn)行處理。5.1重疊方式北京理工大學(xué)計算機學(xué)院圖5.6IBM370“執(zhí)行”指令的執(zhí)行

5.1重疊方式北京理工大學(xué)計算機學(xué)院2.主存空間數(shù)相關(guān)的處理圖5.7主存數(shù)相關(guān)的處理

5.1重疊方式北京理工大學(xué)計算機學(xué)院3.通用寄存器組相關(guān)的處理設(shè)機器的基本指令格式為

操作碼L1L3B2d2或操作碼L1L3L25.1重疊方式北京理工大學(xué)計算機學(xué)院圖指令解釋過程中與通用寄存器內(nèi)容有關(guān)的微操作時間關(guān)系5.1重疊方式北京理工大學(xué)計算機學(xué)院“執(zhí)行k”、“分析k+1”重疊時,訪問通用寄存器組的時間關(guān)系

5.1重疊方式北京理工大學(xué)計算機學(xué)院圖

用相關(guān)專用通路解決通用寄存器組的數(shù)相關(guān)

5.1重疊方式北京理工大學(xué)計算機學(xué)院設(shè)操作數(shù)的有效地址由分析器內(nèi)的地址加法器形成。由于通常情況下,“分析”周期等于主存周期,所以,從時間關(guān)系上要求在“分析”周期的前半段,就能由通用寄存器輸出總線取得(B2),送入地址加法器。由于運算結(jié)果是在“執(zhí)行”周期的末尾才送入通用寄存器組的,它當(dāng)然不能立即出現(xiàn)在通用寄存器輸出總線上。也就是說,在“執(zhí)行k”得到的、送入通用寄存器的運算結(jié)果來不及作為“分析k+2”的基址值用,更不用說作為“分析k+1”的基址值用。因此,雖然是一次重疊,但基址值相關(guān)(B相關(guān))就不止會出現(xiàn)一次相關(guān),還會出現(xiàn)二次相關(guān)。即當(dāng)出現(xiàn)B(k+1)=L3(k)時,稱為發(fā)生了B一次相關(guān);而當(dāng)出現(xiàn)B(k+2)=L3(k)時,稱為發(fā)生了B二次相關(guān),如圖所示。5.1重疊方式北京理工大學(xué)計算機學(xué)院圖B一次相關(guān)與二次相關(guān)

5.1重疊方式北京理工大學(xué)計算機學(xué)院5.2.1基本概念1.流水是重疊的引申圖5.14指令分解為“分析”與“執(zhí)行”子過程

5.2流水方式北京理工大學(xué)計算機學(xué)院空間并行性:

設(shè)置多個獨立的操作部件

多操作部件處理機

超標(biāo)量處理機時間并行性:

采用流水線技術(shù)。

不增加或只增加少量硬件就能使運算速度提高幾倍

流水線處理機

超流水線處理機5.2流水方式北京理工大學(xué)計算機學(xué)院簡單流水線分析器分析k+1流水

鎖存器執(zhí)行部件執(zhí)行k流水

鎖存器輸入輸出t1t2

流水線的每一個階段稱為流水步、流水步驟、流水段、流水線階段、流水功能段、功能段、流水級、流水節(jié)拍等。5.2流水方式北京理工大學(xué)計算機學(xué)院

在每一個流水段的末尾或開頭必須設(shè)置一個寄存器,稱為流水寄存器、流水鎖存器、流水閘門寄存器等。會增加指令的執(zhí)行時間。為了簡化,在一般流水線中不畫出流水鎖存器。

流水線的表示方法有三種:

連接圖、時空圖和預(yù)約表。5.2流水方式北京理工大學(xué)計算機學(xué)院圖5.13

流水處理

5.2流水方式北京理工大學(xué)計算機學(xué)院流水線的主要特點

(1)只有連續(xù)提供同類任務(wù)才能充分發(fā)揮流水線的效率

對于指令流水線:要盡量減少因條件分支造成的“斷流”。

對于操作部件:主要通過編譯技術(shù),盡量提供連續(xù)的同類操作。

(2)在流水線的每一個流水線段中都要設(shè)置一個流水鎖存器

時間開銷:流水線的執(zhí)行時間加長是流水線中需要增加的主要硬件之一。5.2流水方式北京理工大學(xué)計算機學(xué)院(3)各流水段的時間應(yīng)盡量相等

流水線處理機的基本時鐘周期等于時間最長的流水段的時間長度。(4)流水線需要有“裝入時間”和“排空時間”5.2流水方式北京理工大學(xué)計算機學(xué)院按照流水線的級別來分處理機級流水線,又稱為指令流水線。例如:在采用先行控制器的處理機中,各功能部件之間的流水線。先行指令

緩沖棧輸入先行控制方式

中的指令流水線先行指令

分析器先行讀數(shù)棧

先行操作棧取指譯碼取操作數(shù)指令執(zhí)行部件后行寫數(shù)棧輸出執(zhí)行寫結(jié)果2.流水線的分類5.2流水方式北京理工大學(xué)計算機學(xué)院

部件級流水線(操作流水線),如浮點加法器流水線。求階差輸入輸出t1對階尾數(shù)加規(guī)格化t2t3t45.2流水方式北京理工大學(xué)計算機學(xué)院

處理機之間的流水線稱為宏流水線。每個處理機對同一個數(shù)據(jù)流的不同部分分別進(jìn)行處理。圖處理機間的流水處理

5.2流水方式北京理工大學(xué)計算機學(xué)院從流水線具有的功能多少分:單功能流水線:

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

Cray-1計算機中有12條;YH-1計算機有18條;Pentium有一條5段的定點和一條8段的浮點流水線;PentiumⅢ有三條指令流水線,其中兩條定點指令流水線,一條浮點指令流水線。5.2流水方式北京理工大學(xué)計算機學(xué)院多功能流水線:

流水線的各段通過不同連接實現(xiàn)不同功能Texas公司的ASC計算機中的8段流水線,能夠?qū)崿F(xiàn):定點加減法、定點乘法、浮點加法、浮點乘法、邏輯運算、移位操作、數(shù)據(jù)轉(zhuǎn)換、向量運算等。5.2流水方式北京理工大學(xué)計算機學(xué)院5.2流水方式北京理工大學(xué)計算機學(xué)院

按多功能流水線的各段是否允許同時用于多種不同功能聯(lián)接流水分:靜態(tài)流水線:

同一段時間內(nèi),多功能流水線中的各個功能段只能按照一種固定的方式連接,實現(xiàn)一種固定的功能。

只有連續(xù)出現(xiàn)同一種運算時,流水線的效率才能得到充分的發(fā)揮。5.2流水方式北京理工大學(xué)計算機學(xué)院空間1時間023…n123…n123…n123…n123…n123…n1234…123…12……1輸入求階差對階尾數(shù)加規(guī)格化尾數(shù)乘累加輸出靜態(tài)流水線時空圖浮點加法定點乘法5.2流水方式北京理工大學(xué)計算機學(xué)院動態(tài)流水線:

在同一段時間內(nèi),多功能流水線中的各段可以按照不同的方式連接,同時執(zhí)行多種功能。5.2流水方式北京理工大學(xué)計算機學(xué)院1時間空間023…n123…n123…n123…n123…n123…n輸入求階差對階尾數(shù)加規(guī)格化尾數(shù)乘累加輸出動態(tài)流水線時空圖………………123546123541234123…………浮點加法定點乘法5.2流水方式北京理工大學(xué)計算機學(xué)院

按照流水線的各個流水段之間是否有反饋信號分:

線性流水線(LinearPipelining):每個流水段都流過一次,且僅流過一次。

非線性流水線(NonlinearPipelining):在流水線的某些流水段之間有反饋回路或前饋回路。線性流水線能夠用流水線連接圖唯一表示,非線性流水線必須用流水線連接圖流水線預(yù)約表等共同表示。5.2流水方式北京理工大學(xué)計算機學(xué)院S1輸入S2S3輸出前饋回路反饋回路一種簡單的非線性流水線5.2流水方式北京理工大學(xué)計算機學(xué)院流水線的其他分類方法按照數(shù)據(jù)表示方式:標(biāo)量流水線和向量流水線。按照控制方式:同步流水線和異步流水線。按照任務(wù)流動順序分:順序流水線與亂序流水線。亂序流水線又稱為無序流水線、錯序流水線或異步流水線等。5.2流水方式北京理工大學(xué)計算機學(xué)院5.2.2流水線處理機的主要性能吞吐率吞吐率是流水線單位時間里能流出的任務(wù)數(shù)或結(jié)果數(shù)。

在圖5.13的流水線例子中,各個子過程經(jīng)過的時間都是Δt2,滿負(fù)荷后,流水線每隔Δt2解釋完一條指令,其最大吞吐率TPmax為1/Δt2。實際上,各個子過程進(jìn)行的工作不相同,所經(jīng)過的時間也就不一定相同,所以前述在子過程間設(shè)置了接口鎖存器,讓各鎖存器都受同一時鐘脈沖同步。時鐘脈沖周期直接影響流水線的最大吞吐率,總希望它越小越好。如果各個子過程所需的時間分別為Δt1、Δt2、Δt3、Δt4,時鐘周期應(yīng)當(dāng)為max{Δt1,Δt2,Δt3,Δt4},即流水線的最大吞吐率5.2流水方式北京理工大學(xué)計算機學(xué)院

它受限于流水線中最慢子過程所需要的時間。稱流水線中經(jīng)過時間最長的子過程為瓶頸子過程。5.2流水方式北京理工大學(xué)計算機學(xué)院圖5.21最大吞吐率取決于瓶頸段的時間

5.2流水方式北京理工大學(xué)計算機學(xué)院例1:某計算機的指令流水線由四個功能段組成,指令流經(jīng)各功能段的時間(忽略各功能段之間的緩存時間)分別為90ns、80ns、70ns和60ns,則該計算機的CPU時鐘周期至少是多少? 解:這個指令流水線的各功能段執(zhí)行時間是不相同的。由于各功能段的時間不同,計算機的CPU時鐘周期應(yīng)當(dāng)以最長的功能段執(zhí)行時間為準(zhǔn),max{90,80,70,60},也就是說,當(dāng)流水線充滿之后,每隔90ns可以從流水線中流出一條指令(假設(shè)不存在斷流)。5.2流水方式北京理工大學(xué)計算機學(xué)院處理瓶頸段的方法:一是將“瓶頸”流水段細(xì)分(如果可分的話)二是將“瓶頸”流水段重復(fù)設(shè)置5.2流水方式北京理工大學(xué)計算機學(xué)院圖5.22瓶頸子過程再細(xì)分

5.2流水方式北京理工大學(xué)計算機學(xué)院圖5.23瓶頸子過程并聯(lián)

5.2流水方式北京理工大學(xué)計算機學(xué)院

設(shè)一m段流水線的各段經(jīng)過時間均為Δt0,則第1條指令從流入到流出需要T0=mΔt0的流水建立時間,之后每隔Δt0就可以流出一條指令,其時—空圖如圖5.24所示(這里設(shè)m=4)。這樣,完成n個任務(wù)的解釋共需時間T=m·Δt0+(n-1)Δt0。在這段時間里,流水線的實際吞吐率5.2流水方式北京理工大學(xué)計算機學(xué)院圖5.24從時—

空圖分析實際的吞吐率

5.2流水方式北京理工大學(xué)計算機學(xué)院

不僅實際的吞吐率總是小于最大的吞吐率,而且只有當(dāng)n>>m時,才能使實際的吞吐率接近于理想的最大吞吐率。2.加速比如果用加速比(SpeedupRatio,Sp)表示流水線方式相對非流水線順序串行方式速度提高的比值,那么,非流水線順序串行方式工作,連續(xù)完成n個任務(wù)需要n·m·Δt0的時間,因此,流水線方式工作的加速比5.2流水方式北京理工大學(xué)計算機學(xué)院

如果線性流水線各段經(jīng)過的時間Δti不等,其中瓶頸段的時間為Δtj,則完成n個任務(wù)所能達(dá)到的實際吞吐率其加速比5.2流水方式北京理工大學(xué)計算機學(xué)院3.效率流水線的效率是指流水線中的設(shè)備實際使用時間占整個運行時間之比,也稱流水線設(shè)備的時間利用率。由于流水線存在有建立時間和排空時間(最后一個任務(wù)流入到流出的時間),在連續(xù)完成n個任務(wù)的時間里,各段并不總是滿負(fù)荷工作的。如果是線性流水線,且各段經(jīng)過時間相同,如圖5.22那樣,則在T時間里,流水線各段的效率都相同,均為η0,即整個流水線的效率5.2流水方式北京理工大學(xué)計算機學(xué)院式中,分母m·T是時—空圖中m個段和流水總時間T所圍成的總面積,分子m·nΔt0則是時—空圖中n個任務(wù)實際占用的總面積。因此,從時—空圖上看,效率實際上就是n個任務(wù)占用的時—空區(qū)面積和m個段總的時—空區(qū)面積之比。顯然,與吞吐率類似,只有當(dāng)n>>m時,才趨近于1。同時還可看出,對于線性流水且每段經(jīng)過時間相等時,流水線的效率是正比于吞吐率的,即5.2流水方式北京理工大學(xué)計算機學(xué)院

如果流水線各段經(jīng)過的時間不等,各段的效率就會不等,但是,參照圖5.24,不難得出整個流水線的效率5.2流水方式北京理工大學(xué)計算機學(xué)院4.流水線工作舉例對于單功能線性流水線,輸入連續(xù)任務(wù)的情況,通過上面給出的公式很容易計算出流水線的吞吐率、加速比和效率。加例:用一條4段浮點加法器流水線求8個浮點數(shù)的和:

Z=A+B+C+D+E+F+G+H5.2流水方式北京理工大學(xué)計算機學(xué)院解:

Z=[(A+B)+(C+D)]+[(E+F)+(G+H)]1時間空間23求階差4567123456712345671234567對階尾數(shù)加規(guī)格化加數(shù)ACEGA+BE+FBDFHC+DG+HA+B+C+DE+F+G+H結(jié)果A+BC+DE+FG+HA+B+C+DE+F+G+H5.2流水方式北京理工大學(xué)計算機學(xué)院7個浮點加法共用了15個時鐘周期。

流水線的吞吐率為:

流水線的加速比為:

流水線的效率為:5.2流水方式北京理工大學(xué)計算機學(xué)院5.2.3流水線調(diào)度圖5.26流水線預(yù)約表5.2流水方式北京理工大學(xué)計算機學(xué)院

使用二維的預(yù)約表來記錄任務(wù)使用流水線各功能段的時間。如果有一個由K段組成的流水線,每個任務(wù)通過流水線需要N拍,則預(yù)約表共有K行,N列。一個任務(wù)在某時刻用到某功能段,可以在表中相應(yīng)的位置上用√表示。計算出預(yù)約表中所有各行中兩個或多個√之間的節(jié)拍間隔數(shù),并將所有的節(jié)拍間隔數(shù)匯集在一起,構(gòu)成一個延遲禁止表F。如果任務(wù)之間間隔這些拍數(shù),一定會發(fā)生流水段的沖突,所以,這些間隔拍數(shù)應(yīng)當(dāng)禁止使用。5.2流水方式北京理工大學(xué)計算機學(xué)院

將禁止表轉(zhuǎn)換成N-1位的二進(jìn)位組成的初始沖突向量。在沖突向量(cN-1…ci…c2c1)中,ci為“0”,表示允許送入;ci為“1”,表示禁止送入。把初始沖突向量送入一個N-1位邏輯右移移位器,當(dāng)從移位器移出的位為0時,用移位器中的值與初始沖突向量作“按位或”運算,得到一個新的沖突向量;若移位器移出的位為1,不作任何處理;移位器繼續(xù)右移,如此重復(fù),這樣的操作共進(jìn)行N-1次。對于中間形成的每一個新的沖突向量,也要按照這一方法進(jìn)行處理。5.2流水方式北京理工大學(xué)計算機學(xué)院

根據(jù)所得沖突向量可以構(gòu)造出表示流水線各種狀態(tài)之間轉(zhuǎn)移關(guān)系的狀態(tài)轉(zhuǎn)移圖。由狀態(tài)轉(zhuǎn)移圖能構(gòu)成延遲拍數(shù)呈周期性重復(fù)出現(xiàn)的調(diào)度方案,即在狀態(tài)圖中找出各沖突向量的簡單循環(huán)。按這些方案中的任何一個來調(diào)度任務(wù)流入流水線,就不會發(fā)生多個任務(wù)對功能段的使用沖突。在這些調(diào)度中,找出平均延遲最短的調(diào)度方案,就是流水線的最佳調(diào)度方案。5.2流水方式北京理工大學(xué)計算機學(xué)院

按最佳調(diào)度方案,實際調(diào)度若干個指令或任務(wù)進(jìn)入流水線,畫出其實際工作的時空圖,就可以求得此時流水線工作的實際吞吐率和效率。通常,不等間隔的調(diào)度比等間隔的調(diào)度在吞吐率和效率上要高些,但控制要復(fù)雜些。5.2流水方式北京理工大學(xué)計算機學(xué)院非線性流水線的禁止表:預(yù)約表中每一行任意兩個“V”之間的距離都計算出來,去掉重復(fù)的。例上圖所示預(yù)約表的禁止表F=(1,5,6,8)

由禁止向量得到?jīng)_突向量:

C=(CmCm-1…C2C1)其中:m是禁止向量中的最大值。如果i在禁止向量中,則Ci=1,否則Ci=0

例:對于上面的預(yù)約表,C=(10110001)5.2流水方式北京理工大學(xué)計算機學(xué)院

構(gòu)造狀態(tài)圖:把沖突向量送入一個邏輯右移移位器;如果移位器移出0,用移位器中的值與初始沖突向量作“按位或”運算,得到一個新的沖突向量;否則不作任何處理。對于中間形成的每一個新的沖突向量,也要按照這一方法進(jìn)行處理。在初始沖突向量和所有的新形成的沖突向量之間用帶箭頭的線連接,當(dāng)新形成的沖突向量出現(xiàn)重復(fù)時可以合并到一起。5.2流水方式北京理工大學(xué)計算機學(xué)院圖5.27流水線狀態(tài)轉(zhuǎn)移圖5.2流水方式北京理工大學(xué)計算機學(xué)院表5.1各種調(diào)度方案的平均間隔拍數(shù)的例子5.2流水方式北京理工大學(xué)計算機學(xué)院例2:一條有4個功能段的非線性流水線,每個功能段的延遲時間都相等,它的預(yù)約表如下:

(1)寫出流水線的禁止向量和初始沖突向量。

(2)畫出調(diào)度流水線的狀態(tài)圖。

(3)求流水線的最小啟動循環(huán)和最小平均啟動距離。

(4)求平均啟動距離最小的恒定循環(huán)。5.2流水方式北京理工大學(xué)計算機學(xué)院解:禁止向量為:(2,4,6)

初始沖突向量:101010

初始沖突向量邏輯右移2、4、6位時,不作任何處理邏輯右移1、3、5和大于等于7時,要進(jìn)行處理。5.2流水方式北京理工大學(xué)計算機學(xué)院5.2流水方式北京理工大學(xué)計算機學(xué)院

初始沖突向量右移1位之后:010101∨101010=111111,初始沖突向量右移3位之后:000101∨101010=101111,初始沖突向量右移5位之后:000001∨101010=101011,初始沖突向量右移7位或大于7位后:還原到它本身。5.2流水方式北京理工大學(xué)計算機學(xué)院

中間沖突向量101111右移5位之后:000001∨101010=101011,中間沖突向量101011右移3位之后:000101∨101010=101111,中間沖突向量101011右移5位之后:000001∨101010=101011。5.2流水方式北京理工大學(xué)計算機學(xué)院5.2流水方式北京理工大學(xué)計算機學(xué)院

簡單循環(huán):狀態(tài)圖中各種沖突向量只經(jīng)過一次的啟動循環(huán)。簡單循環(huán)的個數(shù)一般是有限的。由簡單循環(huán)計算平均啟動距離。

最小的啟動循環(huán)為(1,7)和(3,5)。平均啟動距離為4。啟動距離最小的恒定循環(huán)是(5)。5.2流水方式北京理工大學(xué)計算機學(xué)院5.2流水方式北京理工大學(xué)計算機學(xué)院5.2流水方式北京理工大學(xué)計算機學(xué)院此時流水線的最大吞吐率為1/4(任務(wù)/拍)按此調(diào)度方案,輸入6個任務(wù),求實際的吞吐率。最佳調(diào)度方案宜選其中按(1,7)周期性調(diào)度的方案。按(1,7)調(diào)度方案輸入6個任務(wù),全部完成的時間為1+7+1+7+1+7=24(拍),實際吞吐率TP=6/24(任務(wù)/拍)按(3,5)調(diào)度方案輸入6個任務(wù),全部完成的時間為3+5+3+5+3+7=26(拍),實際吞吐率TP=6/26(任務(wù)/拍)5.2流水方式北京理工大學(xué)計算機學(xué)院5.2.4流水機器的相關(guān)處理和控制機構(gòu)1.局部性相關(guān)的處理圖5.33順序流動和異步流動

5.2流水方式北京理工大學(xué)計算機學(xué)院2.全局性相關(guān)的處理1)猜測法圖5.34用猜測法處理條件轉(zhuǎn)移

5.2流水方式北京理工大學(xué)計算機學(xué)院2)加快和提前形成條件碼3)采取延遲轉(zhuǎn)移4)加快短循環(huán)程序的處理

5.2流水方式北京理工大學(xué)計算機學(xué)院3.流水機器的中斷處理中斷會引起流水線斷流。然而,其出現(xiàn)概率比條件轉(zhuǎn)移的概率要低得多,且又是隨機發(fā)生的。所以,流水機器處理中斷主要是如何處理好斷點現(xiàn)場的保存和恢復(fù),而不是如何縮短流水線的斷流時間。在執(zhí)行指令i時有中斷,斷點本應(yīng)在指令i執(zhí)行結(jié)束,指令i+1尚未開始執(zhí)行的地方,但流水機器是同時解釋多條指令,指令i+1、i+2…可能已進(jìn)入流水線被部分解釋。對于異步流動流水線,這些指令中有些可能流到了指令i的前面去了。5.2流水方式北京理工大學(xué)計算機學(xué)院流水機器多數(shù)采用精確斷點法。不論指令是在流水線中的哪一段響應(yīng)中斷,給中斷處理程序的現(xiàn)場全都是對應(yīng)i的。例如,在圖5-35中,如果第i條指令發(fā)生了程序性錯誤或故障,那么斷點就是i。5.2流水方式圖5-35流水線處理機的中斷處理

北京理工大學(xué)計算機學(xué)院5.3.1向量的流水處理

例如,要計算D=A*(B+C),其中,A、B、C、D都是具有N個元素的向量,應(yīng)該采用什么樣的處理方式才能最充分發(fā)揮流水線的效能呢?

如果采用逐個求D向量元素的方法,即訪存取ai、bi、ci元素,按上述算術(shù)表達(dá)式求出di,再取ai+1、bi+1、ci+1,求di+1,這種處理方式我們稱其為橫向(水平)處理方式。5.3向量的流水處理與向量流水處理機北京理工大學(xué)計算機學(xué)院逐個分量進(jìn)行處理:假設(shè)中間結(jié)果為T(I)

計算第1個分量:

T(1)

=B(1)+C(1)

D(1)=A(1)×T(1)

計算第2個分量:

T(2)

=B(2)+C(2)

D(2)=A(2)×T(2)

……

計算最后一個分量:

T(N)

=B(N)+C(N)

D(N)=A(N)×T(N)5.3向量的流水處理與向量流水處理機北京理工大學(xué)計算機學(xué)院存在兩個問題:

在計算向量的每個分量時,都發(fā)生寫讀數(shù)據(jù)相關(guān)。流水線效率低。

如果采用多功能流水線,必須頻繁進(jìn)行流水線切換。

橫向處理方式對向量處理機不適合。

即使在標(biāo)量處理機中,也經(jīng)常通過編譯器進(jìn)行指令流調(diào)度。5.3向量的流水處理與向量流水處理機北京理工大學(xué)計算機學(xué)院

縱向處理方式,也稱為垂直處理方式。

T(1)=B(1)+C(1)

T(2)=B(2)+C(2)

……

T(n)=B(n)+C(n)

D(1)=A(1)×T(1)

D(2)=A(2)×T(2)

……

D(N)=A(N)×T(N)5.3向量的流水處理與向量流水處理機北京理工大學(xué)計算機學(xué)院采用向量指令只需要2條:

VADD B,C,T

VMUL A,T,D這種處理方式適用于向量處理機

數(shù)據(jù)相關(guān)不影響流水線連續(xù)工作。

不同的運算操作只需要切換1次。5.3向量的流水處理與向量流水處理機北京理工大學(xué)計算機學(xué)院縱橫處理方式

用于寄存器-寄存器結(jié)構(gòu)的向量處理機中。

向量寄存器的長度是有限的,例如,每個向量寄存器有64個寄存器。當(dāng)向量長度N大于向量寄存器長度n時,需要分組處理。分組方法:N=K·n+r,其中:r為余數(shù),共分K+1組。

組內(nèi)采用縱向處理方式,組間采用橫向處理方式。因此,也稱為分組處理方式,縱橫向加工方式等。5.3向量的流水處理與向量流水處理機北京理工大學(xué)計算機學(xué)院運算過程為:

第1組:

T(1,n)=B(1,n)+C(1,n)

D(1,n)=A(1,n)×T(1,n)

第2組:

T(n+1,2n)=B(n+1,2n)+C(n+1,2n)

D(n+1,2n)=A(n+1,2n)×T(n+1,2n)

……

最后第k+1組:

T(kn+1,N)=B(kn+1,N)+C(kn+1,N)

D(kn+1,N)=A(kn+1,N)+T(kn+1,N)5.3向量的流水處理與向量流水處理機北京理工大學(xué)計算機學(xué)院

每組用兩條向量指令,發(fā)生數(shù)據(jù)相關(guān)兩次,其中組內(nèi)發(fā)生數(shù)據(jù)相關(guān)一次,組間切換時發(fā)生數(shù)據(jù)相關(guān)一次。

優(yōu)點:減少訪問主存儲器的次數(shù)。例如:中間變量T不寫入主存儲器。

CRAY—1就是采用這種方式來進(jìn)行向量的流水處理的。5.3向量的流水處理與向量流水處理機北京理工大學(xué)計算機學(xué)院5.3.2向量流水處理機

1.向量處理機的指令系統(tǒng)向量處理機的指令系統(tǒng)一般應(yīng)包含有向量型和標(biāo)量型兩類指令。向量型運算類指令一般又可以有如下幾種:向量V1運算得向量V2,如V2=SIN(V1);向量V運算得標(biāo)量S,如 ;向量V1與向量V2運算得向量V3,如V3=V1∧V2;向量V1與標(biāo)量S運算得向量V2,如V2=S*V1。5.3向量的流水處理與向量流水處理機北京理工大學(xué)計算機學(xué)院2.向量流水處理機的結(jié)構(gòu)CRAY—1是由中央處理機、診斷維護(hù)控制處理機、大容量磁盤存貯子系統(tǒng)、前端處理機組成的功能分布異構(gòu)型多處理機系統(tǒng)。中央處理機的控制部分里有總?cè)萘繛?56個16位的指令緩沖器,分成4組,每組為64個。中央處理機的運算部分有12條可并行工作的單功能流水線,可分別流水地進(jìn)行地址、向量、標(biāo)量的各種運算。另外,還有可由流水線功能部件直接訪問的向量寄存器組V0~V7、標(biāo)量寄存器S0~S7及地址寄存器A0~A7。5.3向量的流水處理與向量流水處理機北京理工大學(xué)計算機學(xué)院圖5.36CRAY—1的向量流水處理部分簡圖

5.3向量的流水處理與向量流水處理機北京理工大學(xué)計算機學(xué)院

為了能充分發(fā)揮向量寄存器和可并行工作的6個流水線功能部件的作用,加快對向量的處理,將CRAY-1設(shè)計成每個Vi組都有連到6個功能部件的單獨總線,而每個功能部件也都有把運算結(jié)果送回向量寄存器組的輸出總線。這樣,只要不出現(xiàn)Vi沖突和功能部件沖突,各個Vi之間和各個功能部件之間都能并行工作,大大加快了向量指令的處理,這是CRAY-1向量處理的一個顯著特點。5.3向量的流水處理與向量流水處理機北京理工大學(xué)計算機學(xué)院

所謂Vi沖突指的是,并行工作的各向量指令的源向量或結(jié)果向量使用了相同的Vi。除了相關(guān)情況之外,就是出現(xiàn)源向量沖突,例如

V4←V1+V2V5←V1∧V3這兩條向量指令不能同時執(zhí)行,必須在第一條向量指令執(zhí)行完,釋放出V1之后,第二條向量指令才能開始執(zhí)行。因為雖然這兩條向量指令的源向量之一都取自V1,由于二者的首元素下標(biāo)可能不同,向量長度也可能不同,難以由V1同時提供兩條指令所需要的源向量。5.3向量的流水處理與向量流水處理機北京理工大學(xué)計算機學(xué)院

所謂功能部件沖突指的是,同一個功能部件被一條以上的要求并行工作的向量指令所使用。例如

V4←V2*V3V5←V1*V6這兩條向量指令都需要使用浮點相乘流水功能部件,那就需在第一條向量指令執(zhí)行到計算完最后一個結(jié)果分量,釋放出功能部件之后,第二條向量指令才能開始執(zhí)行。5.3向量的流水處理與向量流水處理機北京理工大學(xué)計算機學(xué)院5.4.1超標(biāo)量處理機圖8.1常規(guī)(度m=1)的標(biāo)量流水機時-空圖

5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院圖8.2度m=3的超標(biāo)量處理機時-空圖

5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院單發(fā)射與多發(fā)射單發(fā)射處理機:

每個周期只取一條指令、只譯碼一條指令,只執(zhí)行一條指令,只寫回一個運算結(jié)果。

取指部件和譯碼部件各設(shè)置一套。

可以只設(shè)置一個多功能操作部件,也可以設(shè)置多個獨立的操作部件。

操作部件中可以采用流水線結(jié)構(gòu),也可以不采用流水線結(jié)構(gòu)。

設(shè)計目標(biāo)是每個時鐘周期平均執(zhí)行一條指令,ILP的期望值1。5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院IF時鐘

周期指令I(lǐng)1I2I3IDEXWRIFIDEXWRIFIDEXWR123456單發(fā)射處理機的指令流水線時空圖5.4指令級高度并行的超級處理機2013.04北京理工大學(xué)計算機學(xué)院IFIDFA1FA2FA3MD1MD2MD3ALLS浮點加法部件乘除法部件定點ALU部件取數(shù)存數(shù)部件WR來自指

令Cache通用寄存器后行寫數(shù)棧5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院多發(fā)射處理機:

每個周期同時取多條指令、同時譯碼多條指令,同時執(zhí)行多條指令,同時寫回多個運算結(jié)果。

需要多個取指令部件,多個指令譯碼部件和多個寫結(jié)果部件。

設(shè)置多個指令執(zhí)行部件,復(fù)雜的指令執(zhí)行部件一般采用流水線結(jié)構(gòu)。

設(shè)計目標(biāo)是每個時鐘周期平均執(zhí)行多條指令,ILP的期望值大于1。5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院IF時鐘

周期指令I(lǐng)1I2I3IDEXWR123456多發(fā)射處理機的指令流水線時空圖I4I5I6IFIDEXWRI7I8I9IFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWR5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院IFIDFA1FA2FA3MD1MD2MD3ALLS浮點加法部件乘除法部件定點ALU部件取數(shù)存數(shù)部件WRIFIDWR5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院超標(biāo)量處理機:

一個時鐘周期內(nèi)能夠同時發(fā)射多條指令的處理機稱為超標(biāo)量處理機。

必須有兩條或兩條以上能夠同時工作的指令流水線。先行指令窗口:

能夠從指令Cache中預(yù)取多條指令。

能夠?qū)Υ翱趦?nèi)的指令進(jìn)行數(shù)據(jù)相關(guān)性分析和功能部件沖突的檢測。

窗口的大?。阂话銥?至8條指令。

采用目前的指令調(diào)度技術(shù),每個周期發(fā)射2至4條指令比較合理。5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院例如:

Intel公司的i860、i960、Pentium處理機,Motolora公司的MC88110處理機,IBM公司的Power6000處理機等每個周期都發(fā)射兩條指令。

TI公司生產(chǎn)的SuperSPARC處理機以及Intel的PentiumIII處理機等每個周期發(fā)射三條指令。

操作部件的個數(shù)多于每個周期發(fā)射的指令條數(shù)。4個至16個操作部件。

超標(biāo)量處理機的指令級并行度:1<ILP<m;m為每個周期發(fā)射的指令條數(shù)。5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院IFIDFA1FA2FA3MD1MD2MD3ALLS浮點加法部件乘除法部件定點ALU部件取數(shù)存數(shù)部件WRIFIDWRIFID先行指

令窗口5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院超標(biāo)量處理機性能指令級并行度為(m,1)的超標(biāo)量處理機,執(zhí)行N條指令所用的時間為:

超標(biāo)量處理機相對于單流水線普通標(biāo)量處理機的加速比為:5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院即:

超標(biāo)量處理機的加速比的最大值為:S(m,1)MAX=m5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院

典型的超標(biāo)量流水線處理機有IBMRS/6000、DEC21064、Inteli960CA、TandemCyclone等。1986年的Inteli960CA時鐘頻率為25MHz,度m=3,有7個功能部件可以并發(fā)使用。1990年的IBMRS/6000使用1μmCMOS工藝,時鐘頻率為30MHz。處理機中有轉(zhuǎn)移處理、定點、浮點3種功能部件,它們可并行工作。轉(zhuǎn)移處理部件每Δt可執(zhí)行多達(dá)5條指令,度m=4,性能可達(dá)34MIPS和11MFLOPS。非常適合于在數(shù)值計算密集的科學(xué)工程上應(yīng)用及在多用戶商用環(huán)境下工作。許多基于RS/6000的工作站和服務(wù)器都是IBM生產(chǎn)的。如POWERStation530。1992年的DEC21064使用0.75μmCMOS,時鐘頻率為150MHz,度m=2,10段流水線,最高性能可達(dá)300MIPS和150MFLOPS。Tandem公司的Cyclone(旋風(fēng))計算機由4到16臺超級標(biāo)量流水處理機組成。每個處理機的寄存器組有9個端口(其中5個為讀,4個為寫),有兩個算術(shù)邏輯部件,度m=2。由于程序中可開發(fā)的指令并行性有限,所以超標(biāo)量流水線處理機的度m比較低。5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院5.4.2超流水線處理機

超流水線處理機不同于超標(biāo)量處理機和VLIW處理機,每個Δt′仍只流出一條指令,但它的Δt′值小,一臺度為m的超流水線處理機的Δt′只是基本機器周期Δt的1/m。因此,一條指令需花kmΔt′的時間,k為一條指令所含的基本機器周期數(shù)。只要流水線性能得以充分發(fā)揮,其并行度就可達(dá)m。5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院

每隔1/m個時鐘周期發(fā)射一條指令,流水線周期為1/m個時鐘周期。在超標(biāo)量處理機中,流水線的有些功能段還可以進(jìn)一步細(xì)分。兩種定義:

一個周期內(nèi)能夠分時發(fā)射多條指令的處理機稱為超流水線處理機。

指令流水線有8個或更多功能段的流水線處理機稱為超流水線處理機。5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院圖8.4每Δt′流出一條指令,且度m=3的超流水線處理機時-空圖5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院提高處理機性能的不同方法:

超標(biāo)量處理機是通過增加硬件資源為代價來換取處理機性能的。

超流水線處理機則通過各硬件部件充分重疊工作來提高處理機性能。兩種不同并行性:

超標(biāo)量處理機采用的是空間并行性。

超流水線處理機采用的是時間并行性。5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院指令執(zhí)行時序每隔1/n個時鐘周期發(fā)射一條指令,流水線周期為1/n個時鐘周期。在超標(biāo)量處理機中,流水線的有些功能段還可以進(jìn)一步細(xì)分。例如:ID功能段可以再細(xì)分為譯碼、讀第一操作數(shù)和讀第二操作數(shù)三個流水段。也有些功能段不能再細(xì)分,如WR功能段一般不再細(xì)分。因此有超流水線的另外一種定義:有8個或8個以上流水段的處理機稱為超流水線處理機。5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院IF時鐘

周期指令I(lǐng)1I2I3IDEXWR123456每個時鐘周期分時發(fā)送3條指令的超流水線I4I5I6IFIDEXWRI7I8I9IFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWR5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院典型處理機結(jié)構(gòu)

MIPSR4000處理機每個時鐘周期包含兩個流水段,是一種很標(biāo)準(zhǔn)的超流水線處理機結(jié)構(gòu)。指令流水線有8個流水段。有兩個Cache,指令Cache和數(shù)據(jù)Cache的容量各8KB,每個時鐘周期可以訪問Cache兩次,因此在一個時鐘周期內(nèi)可以從指令Cache中讀出兩條指令,從數(shù)據(jù)Cache中讀出或?qū)懭雰蓚€數(shù)據(jù)。主要運算部件有整數(shù)部件和浮點部件。5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院北京理工大學(xué)計算機學(xué)院指令CacheMIPSR4000處理機的流水線操作IF:取第一條指令 IS:取第二條指令

RF:讀寄存器堆,指令譯碼

EX:執(zhí)行指令 DF:取第一個數(shù)據(jù)

DS:取第二個數(shù)據(jù) TC:數(shù)據(jù)標(biāo)志

校驗;WB:寫回結(jié)果指令

譯碼讀寄

存器堆ALU數(shù)據(jù)Cache標(biāo)志檢驗寄存器堆IFISRFEXDFDSWBTC5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院IF流水線周期當(dāng)前CPU周期ISRFEXDFDSTCWBIFISRFEXDFDSTCWBIFISRFEXDFDSTCWBIFISRFEXDFDSTCWBIFISRFEXDFDSTCWBIFISRFEXDFDSTCWBIFISRFEXDFDSTCWBIFISRFEXDFDSTCWB主時

周期MIPSR4000正常指令流水線工作時序5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院

如果在LOAD指令之后的兩條指令中,任何一條指令要在它的EX流水級使用這個數(shù)據(jù),則指令流水線要暫停一個時鐘周期。采用順序發(fā)射方式。5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院暫停IFISRFEXDFDSTCWBMIPSR4000正常指令流水線工作時序ISRFEXDFDSTCWBRFEXDFDSTCWBEXDFDSTCWBEXDFDSTCWBDFDSTCWBIFISRFI1I2I3I4I5I6運行運行Load指令使用Load數(shù)據(jù)5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院超流水線處理機性能指令級并行度為(1,n)的超流水線處理機,執(zhí)行N條指令所的時間為:超流水線處理機相對于單流水線普通標(biāo)量處理機的加速比為:5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院即:

超流水線處理機的加速比的最大值為:S(1,n)MAX=n5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院

超流水線處理機早就出現(xiàn)了,如CRAY—1的定點加法為3Δt′。1991年2月MIPS公司的64位RISC計算機R4000,度m=3。超流水線還可以與超標(biāo)量組合構(gòu)成超流水線超標(biāo)量處理機,如DEC公司早期的Alpha處理機每Δt′可流出兩條指令且度m=6。5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院

超標(biāo)量處理機利用資源重復(fù),設(shè)置多個執(zhí)行部件寄存器堆端口。超流水線處理機則著重開發(fā)時間并行性,在公共的硬部件上采用較短的時鐘周期,深度流水來提高速度,需使用多相時鐘,時鐘頻率高達(dá)100MHz到500MHz。沒有高速時鐘機制,超流水線處理機是無法實現(xiàn)的。如果一臺有k段流水線的m度超流水線處理機,執(zhí)行完N條指令的時間為5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院如圖8.4所示,所需時間為相對常規(guī)流水線處理機加速比為5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院

5.4.3超標(biāo)量超流水線處理機

把超標(biāo)量與超流水線技術(shù)結(jié)合在一起,就成為超標(biāo)量超流水線處理機。指令執(zhí)行時序超標(biāo)量超流水線處理機在一個時鐘周期內(nèi)分時發(fā)射指令n次,每次同時發(fā)射指令m條,每個時鐘周期總共發(fā)射指令mn條。5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院IF時鐘周期指令I(lǐng)1I2I3IDEXWR12345I4I5I6I7I8I9IFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRI10I11I12每時鐘周期發(fā)射3次,每次3條指令5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院典型處理機結(jié)構(gòu)

DEC公司的Alpha處理機采用超標(biāo)量超流水線結(jié)構(gòu)。主要由四個功能部件和兩個Cache組成:整數(shù)部件EBOX、浮點部件FBOX、地址部件ABOX和中央控制部件IBOX。中央控制部件IBOX可以同時從指令Cache中讀入兩條指令,同時對讀入的兩條指令進(jìn)行譯碼,并且對這兩條指令作資源沖突檢測,進(jìn)行數(shù)據(jù)相關(guān)性和控制相關(guān)性分析。如果資源和相關(guān)性允許,IBOX就把兩條指令同時發(fā)射給EBOX、ABOX和FBOX三個指令執(zhí)行部件中的兩個。5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院

指令流水線采用順序發(fā)射亂序完成的控制方式。在指令Cache中有一個轉(zhuǎn)移歷史表,實現(xiàn)條件轉(zhuǎn)移的動態(tài)預(yù)測。在EBOX內(nèi)還有多條專用數(shù)據(jù)通路,可以把運算結(jié)果直接送到執(zhí)行部件。

Alpha21064處理機共有三條指令流水線

整數(shù)操作流水線和訪問存儲器流水線分為7個流水段,其中,取指令和分析指令為4個流水段,運算2個流水段,寫結(jié)果1個流水段。浮點操作流水線分為10個流水段,其中,浮點執(zhí)行部件FBOX的延遲時間為6個流水段。5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院

所有指令執(zhí)行部件EBOX、IBOX、ABOX和FBOX中都設(shè)置由專用數(shù)據(jù)通路。

Alpha21064處理機的三條指令流水線的平均段數(shù)為8段,每個時鐘周期發(fā)射兩條指令。因此,Alpha21064處理機是超標(biāo)量超流水線處理機。5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院北京理工大學(xué)計算機學(xué)院SWAPIF 取值

SWAP

交換雙發(fā)射指令、轉(zhuǎn)移預(yù)測I0

指令譯碼

I1

訪問通用寄存器堆,發(fā)射校驗A1

計算周期1,IBOX計算新的PC值A(chǔ)2

計算周期2,查指令快表WR

寫整數(shù)寄存器堆,指令Cache命中檢測17個流水段的整數(shù)操作流水線IFI0I1A0A1WR2345605.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院SWAPIF 取值

SWAP

交換雙發(fā)射指令、轉(zhuǎn)移預(yù)測I0

指令譯碼

I1

訪問通用寄存器堆,發(fā)射校驗AC ABOX計算有效數(shù)據(jù)地址TB

查數(shù)據(jù)快表HM

寫讀數(shù)緩沖棧,數(shù)據(jù)Cache命中/

不命中檢測17個流水段的訪問存儲器流水線IFI0I1ACTBHM2345605.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院SWAPIF 取值

SWAP

交換雙發(fā)射指令、轉(zhuǎn)移預(yù)測I0

指令譯碼

I1

訪問通用寄存器堆,發(fā)射校驗F1-F5

浮點計算流水線FWR

寫回浮點寄存器堆110個流水段的浮點操作流水線IFI0I1F1F2FWR234560F3F4F57895.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院超標(biāo)量超流水線處理機性能指令級并行度為(m,n)的超標(biāo)量超流水線處理機,連續(xù)執(zhí)行N條指令所需要的時間為:

超標(biāo)量超流水線處理機相對于單流水線標(biāo)量處理機的加速比為:5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院

在理想情況下,超標(biāo)量超流水線處理機加速比的最大值為:S(m,n)MAX=mn5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院5.4.4三種指令級并行處理機性能比較超標(biāo)量處理機、超流水線處理機和超標(biāo)量超流水線處理機相對于單流水線普通標(biāo)量處理機的性能曲線。0.00.51.01.52.02.512345678相對性能超標(biāo)量超流水線超標(biāo)量

超流水線指令級

并行度5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院

從三種指令級并行處理機的性能曲線中,可以得出如下結(jié)論:1、三種處理機的性能關(guān)系

超標(biāo)量處理機的相對性能最高,其次是超標(biāo)量超流水線處理機,超流水線處理機的相對性能最低,主要原因如下:

(1)超標(biāo)量處理機在每個時鐘周期的一開始就同時發(fā)射多條指令,而超流水線處理機則要把一個時鐘周期平均分成多個流水線周期,每個流水線周期發(fā)射一條指令;因此,超流水線處理機的啟動延遲比超標(biāo)量處理機大。5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院 (2)條件轉(zhuǎn)移造成的損失,超流水線處理機要比超標(biāo)量處理機大。

(3)在指令執(zhí)行過程中的每一個功能段,超標(biāo)量處理機都重復(fù)設(shè)置有多個相同的指令執(zhí)行部件,而超流水線處理機只是把同一個指令執(zhí)行部件分解為多個流水級;因此,超標(biāo)量處理機指令執(zhí)行部件的沖突要比超流水線處理機小。5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院

2、實際指令級并行度與理論指令級并行度的關(guān)系

當(dāng)橫坐標(biāo)給出的理論指令級并行度比較低時,處理機的實際指令級并行度的提高比較快。

當(dāng)理論指令級并行度進(jìn)一步增加時,處理機實際指令級并行度提高的速度越來越慢。

在實際設(shè)計超標(biāo)量、超流水線、超標(biāo)量超流水線處理機的指令級并行度時要適當(dāng),否則,有可能造成花費了大量的硬件,但實際上處理機所能達(dá)到的指令級并行度并不高。

目前,一般認(rèn)為,m和n都不要超過4。5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院3、最大指令級并行度

一個特定程序由于受到本身的數(shù)據(jù)相關(guān)和控制相關(guān)的限制,它的指令級并行度的最大值是有限的,是有個確定的值。這個最大值主要由程序自身的語義來決定,與這個程序運行在那一種處理機上無關(guān)。對于某一個特定的程序,圖中的三條曲線最終都要收攏到同一個點上。當(dāng)然,對于各個不同程序,這個收攏點的位置也是不同的。5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院5.4.5超長指令字處理機5.4指令級高度并行的超級處理機超長指令字處理機將水平型微碼和超標(biāo)量處理兩者相結(jié)合。在編譯時,將多個能并行執(zhí)行的不相關(guān)或無關(guān)的操作組合在一起,形成一條有多個操作碼字段的超長指令字。運行時,直接控制機器中多個相互獨立的功能部件并行操作,來實現(xiàn)同時執(zhí)行多條指令。超長指令字(VLIW)處理機組成和指令格式如圖5-53所示北京理工大學(xué)計算機學(xué)院圖5.53超長指令字(VLIW)處理機

5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院5.5ARM流水線處理器舉例ARM架構(gòu)的處理器內(nèi)核有ARM7TDMI、ARM9TDMI、ARM10TDMI、ARM11TDMI及Cortex等。ARM7TDMI處理器核采用了3級流水線結(jié)構(gòu),指令執(zhí)行分為取指、譯碼和執(zhí)行等3個階段。ARM9TDMI處理器內(nèi)核采用了5級流水線5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院ARM處理器內(nèi)核5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院

主要把3級流水線中的執(zhí)行階段的操作進(jìn)行再分配,即把執(zhí)行階段中的“寄存器讀”插在譯碼階段中完成;把“寄存器寫”安排另一級(即第5級完成),同時,在該級之前,再安排了1級(存儲器訪問)。因此,ARM9TDMI與ARM7TDMI相比,取指必須快1倍,以便在譯碼階段,同時可執(zhí)行“寄存器讀”操作。

ARM9TDMI處理器內(nèi)核的另一個顯著特點是采用指令和數(shù)據(jù)分離訪問的方式,即采用了指令快存I-Cache和數(shù)據(jù)快存D-Cache。這樣,ARM9TDMI可以把數(shù)據(jù)訪問單獨安排1級流水線。5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院

ARM10TDMI在同樣的工藝,同樣的芯片面積,ARM9TDMI的性能2倍于ARM7TDMI;而ARM10TDMI也同樣2倍于ARM9TDMI。ARM10TDMI在系統(tǒng)結(jié)構(gòu)上主要采用提高時鐘速率和減少每條指令平均時鐘數(shù)據(jù)CPI兩大措施。

1.提高時鐘速率

ARM9TDMI的5級流水線中的4級負(fù)擔(dān)已很滿了,當(dāng)然可以擴充流水線的級數(shù)來解決。但是,由于“超級流水線”結(jié)構(gòu)較復(fù)雜,因此,只有在比較復(fù)雜的機器才采用。ARM10TDMI仍保留與ARM9TDMI類似的流水線,而通過提高時鐘速率來優(yōu)化每級流水線的操作。5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院

下圖是ARM10TDMI采用6級流水線的示意圖,與ARM9TDMI的5級流水線相比,ARM10TDMI只需比ARM9TDMI稍快一些的存儲器來支持6級流水線。插入了新的一級流水線,允許更多時間去指令譯碼;只有當(dāng)非預(yù)測轉(zhuǎn)移執(zhí)行時,才會損害該流水線性能。由于新一級流水線是在寄存讀之前插入,它沒有新的操作數(shù)依賴,所以也不需要新的前進(jìn)路徑。該流水線通過轉(zhuǎn)移預(yù)測機構(gòu)和提高時鐘速率,仍可得到與ARM9TDMI差不多的CPI。5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院ARM10TDMI采用6級流水線5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院2.減少CPI

上述增強流水線的措施把時鐘速率提高50%,可以不損害CPI;若把時鐘速率進(jìn)一步提高的話,就會影響CPI。因此,要采取新的措施來減少CPI。

ARM7TDMI由于采用單一32位存儲器,因而存儲器幾乎占用每一個時鐘周期,ARM9TDMI采用指令與數(shù)據(jù)分離的存儲器,雖然數(shù)據(jù)存儲器只有50%的負(fù)載,而指令存儲器仍幾乎占用每一時鐘周期。很明顯要改進(jìn)CPI,必須以某種方式來增加指令存儲器的帶寬。ARM10TDMI采用64位存儲器的結(jié)構(gòu)來解決上述的指令存儲器的瓶頸問題。5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院Cortex處理器采用ARMv7體系結(jié)構(gòu)?;贏RMv7體系結(jié)構(gòu)的ARM處理器已經(jīng)不再延用ARM加數(shù)字編號的命名方式,而是以Cortex命名?;趘7A的稱為“Cortex-A系列”,基于v7R的稱為“Cortex-R系列”,基于v7M的稱為“Cortex-M系列”。

Cortex-A系列是針對日益增長的,運行包括Android、Linux、WindowsCE和Symbian操作系統(tǒng)在內(nèi)的消費娛樂和無線產(chǎn)品;Cortex-R系列是針對需要運行實時操作系統(tǒng)來進(jìn)行控制應(yīng)用的系統(tǒng),包括汽車電子、網(wǎng)絡(luò)和影像系統(tǒng);Cortex-M系列則是為那些對開發(fā)費用非常敏感同時對性能要求不斷增加的微控制器應(yīng)用所設(shè)計的。5.4指令級高度并行的超級處理機北京理工大學(xué)計算機學(xué)院Cortex-A9處理器為ARMv7-A體系結(jié)構(gòu),

溫馨提示

  • 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

提交評論