第五章系統(tǒng)結(jié)構(gòu)輔導(dǎo)_第1頁(yè)
第五章系統(tǒng)結(jié)構(gòu)輔導(dǎo)_第2頁(yè)
第五章系統(tǒng)結(jié)構(gòu)輔導(dǎo)_第3頁(yè)
第五章系統(tǒng)結(jié)構(gòu)輔導(dǎo)_第4頁(yè)
第五章系統(tǒng)結(jié)構(gòu)輔導(dǎo)_第5頁(yè)
已閱讀5頁(yè),還剩65頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第五章系統(tǒng)結(jié)構(gòu)輔導(dǎo)第一頁(yè),共七十頁(yè),2022年,8月28日一、基本思想和一次重迭⒈基本思想一條指令解釋由三個(gè)過(guò)程完成:取指分析(譯碼)執(zhí)行取指K分析K執(zhí)行K取指K+1分析K+1執(zhí)行K+1

5.1 重迭方式

為了充分發(fā)揮機(jī)器各部分工作效率,提出讓若干條指令在時(shí)間上重迭地解釋。順序解釋第二頁(yè),共七十頁(yè),2022年,8月28日

⒉硬件支持:

增設(shè)先進(jìn)先出指令緩沖器(指令予取隊(duì)列),用于予取下一條或下幾條指令存放于指緩中(“分析K”可與取指K+1就可重迭了)。

由于可予取指令(即指令還未執(zhí)行,就提前取到CPU的指令隊(duì)列中了),當(dāng)取指令時(shí),很快可從指令予?。?duì)列)緩沖器中得到,時(shí)間很短,將這一微操作合并“分析K+1”過(guò)程中。第三頁(yè),共七十頁(yè),2022年,8月28日

為實(shí)現(xiàn)這樣的重迭,需要有硬件上的獨(dú)立的指令分析部件和執(zhí)行部件支持。分析執(zhí)行K分析K+1執(zhí)行K+2分析K+2執(zhí)行K+2分析執(zhí)行所以一條指令的解釋合并為(內(nèi)部)第四頁(yè),共七十頁(yè),2022年,8月28日為使硬件和控制不過(guò)分繁雜,采用在任何時(shí)候指令分析部件和指令執(zhí)行部件只對(duì)兩條相鄰指令進(jìn)行重迭解釋,這就是“一次重迭”。

⒋為實(shí)現(xiàn)“分析K+1”和“執(zhí)行K”的一次重迭“在控制上需解決的問(wèn)題。

⒊一次重迭①重迭方式的機(jī)器在程序中盡量減少使用條轉(zhuǎn)指令。第五頁(yè),共七十頁(yè),2022年,8月28日數(shù)據(jù)地址發(fā)生的關(guān)聯(lián):如果分析K+1所要讀出的操作數(shù)正好是執(zhí)行K的結(jié)果,它們之間如果重迭解釋,因?yàn)閳?zhí)行K到周期結(jié)尾才出結(jié)果,必然出錯(cuò)。這是由于第K、K+1條指令的數(shù)據(jù)地址之間有了關(guān)聯(lián),稱之為產(chǎn)生了“數(shù)相關(guān)”。見書P181“指令相關(guān)”:有“數(shù)相關(guān)”,也就會(huì)有“指令相關(guān)”。有指令K存通用寄存器;(通用寄存器)=>(K+1),產(chǎn)生指令K+1:(指令K執(zhí)行完后,K+1指令才會(huì)產(chǎn)生)。②要解決好相鄰指令之間可能出現(xiàn)的某種關(guān)聯(lián)。第六頁(yè),共七十頁(yè),2022年,8月28日這樣,“分析K+1”分析的不是真正的執(zhí)行K

以后產(chǎn)生的(K+1)指令,而是事先預(yù)取到指令緩沖器中緊隨第K條指令之后的指令(K+1),這種情況稱第K、K+1條指令之間發(fā)生了關(guān)聯(lián)。為避免出錯(cuò),它們不能同時(shí)解釋。分析K+1執(zhí)行K

但是,由于一次重迭兩個(gè)操作是在同一時(shí)間解釋(而指令K+1是在指令K執(zhí)行完后才會(huì)產(chǎn)生

無(wú)論發(fā)生何種相關(guān),都會(huì)引起解釋出錯(cuò)/重迭效率下降,所以必須對(duì)相關(guān)進(jìn)行正確處理。第七頁(yè),共七十頁(yè),2022年,8月28日是由于在程序執(zhí)行過(guò)程中機(jī)器指令允許被修改而引起(如上所講的:K+1指令被K指令執(zhí)行后修改了)。所以為避免出現(xiàn)“指令相關(guān)”,不允許在程序運(yùn)行過(guò)程中修改機(jī)器指令,

二、進(jìn)行相關(guān)處理(Correlation)的若干方法

(自學(xué))⒈指令相關(guān)處理:將必須要修改的指令轉(zhuǎn)變成為“執(zhí)行”指令的操作數(shù)處理。見書P182第八頁(yè),共七十頁(yè),2022年,8月28日

⒉主存空間數(shù)相關(guān)的處理

主存空間數(shù)據(jù)相關(guān):兩相鄰指令之間出現(xiàn)對(duì)主存同一單元要求先寫而后讀的關(guān)聯(lián)。處理:當(dāng)有CPU訪存和通道訪存同時(shí)發(fā)生,出現(xiàn)訪存沖突時(shí),由存儲(chǔ)器控制器在每個(gè)主存周期對(duì)所有訪存請(qǐng)求進(jìn)行優(yōu)先權(quán)排隊(duì),其中寫數(shù)優(yōu)先級(jí)別安排高于讀數(shù)級(jí)別。當(dāng)出現(xiàn)執(zhí)行K(寫數(shù)申請(qǐng))和分析K+1(讀數(shù)申請(qǐng))之間主存數(shù)相關(guān)時(shí),由存儲(chǔ)器控制器將“分析K+1的讀操作數(shù)推后一個(gè)主存周期執(zhí)行。見書P183圖5、6第九頁(yè),共七十頁(yè),2022年,8月28日

⒊通用寄存器組相關(guān)處理通用寄存器組可以存放操作數(shù)、運(yùn)算結(jié)果,也可以存放基地址或變址值。在指令解釋過(guò)程中,依它的不同用途,微操作執(zhí)行時(shí)間是不同的,具體如下示意圖(時(shí)間關(guān)系):

分析周期

執(zhí)行周期指令:存基/變址值取操作數(shù)用操作數(shù)存結(jié)果(前半周期)(后半周期)(周期結(jié)尾)

所以通用寄存器的數(shù)相關(guān)和基址/變址值相關(guān)處理方法不同。

執(zhí)行分析第十頁(yè),共七十頁(yè),2022年,8月28日

由上分析,執(zhí)行周期使用通用寄存器時(shí)間關(guān)系可知:“分析K+1”取得的操作數(shù)(L1)和(L2)并不是“執(zhí)行K”的結(jié)果。

通用寄存器組相關(guān)處理方法:方法一:推后“分析K+1”到“執(zhí)行K”結(jié)束時(shí)。方法二:在運(yùn)算器輸出到B、C寄存器之間增設(shè)相關(guān)專用通路

一次重迭如仍達(dá)不到速度要求,可用同時(shí)解釋多條指令的流水方式。

小結(jié):第十一頁(yè),共七十頁(yè),2022年,8月28日流水線是一種通過(guò)改進(jìn)CPU結(jié)構(gòu)來(lái)提高程序解釋速度的方法。處理機(jī)解釋程序的方式有順序方式、重疊方式、

流水方式等。順序方式是解釋完一條指令再開始解釋下一條。流水方式是指:把一條指令的解釋過(guò)程分解為若干個(gè)子過(guò)程,每個(gè)子過(guò)程可以與其它子過(guò)程同時(shí)進(jìn)行,以此提高單位時(shí)間內(nèi)解釋指令的數(shù)目;重疊方式是一種簡(jiǎn)單的流水方式,它把指令分成2個(gè)子過(guò)程,每條指令的執(zhí)行過(guò)程只與下一條指令的分析過(guò)程相重疊。5.2流水方式第十二頁(yè),共七十頁(yè),2022年,8月28日5.流水技術(shù)一.流水方式的特點(diǎn)流水過(guò)程由多個(gè)相聯(lián)系的子過(guò)程組成,每個(gè)

子過(guò)程稱為流水線的“級(jí)”或“段”?!岸巍钡臄?shù)目稱為流水線的“深度”。(2)每個(gè)子過(guò)程由專用的功能段實(shí)現(xiàn);(3)各個(gè)功能段所需時(shí)間應(yīng)盡量相等,否則,時(shí)間長(zhǎng)的功能段將成為流水線的瓶頸,會(huì)造成流水線的“堵塞”和“斷流”。這個(gè)時(shí)間一般為一個(gè)時(shí)鐘周期(拍);第十三頁(yè),共七十頁(yè),2022年,8月28日(4)流水線需要有“通過(guò)時(shí)間”(建立時(shí)間),即第一個(gè)任務(wù)流出結(jié)果所需的時(shí)間,在此之后流水過(guò)程才進(jìn)入穩(wěn)定工作狀態(tài),每一個(gè)時(shí)鐘周期(拍)流出一個(gè)結(jié)果;(5)流水技術(shù)適合于大量重復(fù)的時(shí)序過(guò)程,只有輸入端能連續(xù)地提供任務(wù),流水線的效率才能充分發(fā)揮。第十四頁(yè),共七十頁(yè),2022年,8月28日第十五頁(yè),共七十頁(yè),2022年,8月28日第十六頁(yè),共七十頁(yè),2022年,8月28日浮點(diǎn)加法流水線書P158第十七頁(yè),共七十頁(yè),2022年,8月28日時(shí)-空?qǐng)D從時(shí)間和空間兩個(gè)方面描述了流水線的工作過(guò)程。時(shí)-空?qǐng)D中,橫坐標(biāo)代表時(shí)間,縱坐標(biāo)代表流水線的各個(gè)段。時(shí)間段號(hào)S5S4S3S2S18888877777666665555544444333332122221111二.流水線時(shí)空?qǐng)D(參見書P156.P159)第十八頁(yè),共七十頁(yè),2022年,8月28日第十九頁(yè),共七十頁(yè),2022年,8月28日段號(hào)段號(hào)段號(hào)4354213432238765432111111118888887777776666665555554444434333332222222(c)流水段重復(fù)的時(shí)空?qǐng)D(b)流水段細(xì)分后的時(shí)空?qǐng)D(a)原流水線時(shí)空?qǐng)D時(shí)間時(shí)間時(shí)間S4S4S4S3cS3cS3S3bS3bS2S1S1S2S2S3aS3aS188877766655544433321221111時(shí)空?qǐng)D3a第二十頁(yè),共七十頁(yè),2022年,8月28日

流水線可以按不同的觀點(diǎn)進(jìn)行分類。分為五類

操作部件級(jí),處理器級(jí),系統(tǒng)級(jí)單功能,多功能靜態(tài),動(dòng)態(tài)線性,非線性標(biāo)量,向量三.流水線的分類見書P156第二十一頁(yè),共七十頁(yè),2022年,8月28日

①依向上擴(kuò)展和向下擴(kuò)展的思路分,在計(jì)算機(jī)系統(tǒng)不同等級(jí)上使用流水線,

部件級(jí)流水:指構(gòu)成部件內(nèi)的各子部件間的流水(ALU內(nèi)的浮點(diǎn)加。Cache和多體并行主存之間)。

處理機(jī)級(jí)流水:指構(gòu)成處理機(jī)的各部件之間的流水(如“取指”、“分析”、“執(zhí)行”。

系統(tǒng)級(jí)流水:也稱宏流水,指構(gòu)成計(jì)算機(jī)系統(tǒng)的多處理機(jī)之間的流水。流水按處理的級(jí)別分可分為部件級(jí)、處理機(jī)級(jí)和系統(tǒng)級(jí)。第二十二頁(yè),共七十頁(yè),2022年,8月28日

②從流水線具有功能的多少來(lái)看,可分為單功能/多功能流水線。

單功能流水線(unificationpipelining):即一條流水線只能完成一種固定的功能(如只能實(shí)現(xiàn)浮點(diǎn)數(shù)加/減的流水線)。當(dāng)要實(shí)現(xiàn)多種不同功能時(shí),可采用多條單功能流水線組合。

多功能流水線(multifunctionpipelining):指流水線的各段可進(jìn)行不同的連接,在不同/相同的時(shí)間內(nèi),通過(guò)不同的連接方式實(shí)現(xiàn)不同的功能。例如:TIASC的多功能流水線第二十三頁(yè),共七十頁(yè),2022年,8月28日第二十四頁(yè),共七十頁(yè),2022年,8月28日③靜態(tài)流水線與動(dòng)態(tài)流水線

——按在同一時(shí)間內(nèi),能否將多功能流水線連接成多種方式,同時(shí)使多種功能并行執(zhí)行來(lái)劃分。

動(dòng)態(tài)流水線(dynamicpipelining):指在同一時(shí)間段,多功能流水線中各段可按不同方式連接,同時(shí)執(zhí)行多種功能(各種功能之間無(wú)沖突)。第二十五頁(yè),共七十頁(yè),2022年,8月28日

靜態(tài)流水線(staticpipelining):指在某一時(shí)間段內(nèi),多功能流水線中的各功能段只能按一種方式連接,實(shí)現(xiàn)一種固定功能。只有當(dāng)按這種連接方法實(shí)現(xiàn)的所有功能操作全部完成(流水線流完),才能切換成(按另一種功能)別的連接,以實(shí)現(xiàn)另外的功能。第二十六頁(yè),共七十頁(yè),2022年,8月28日

——以機(jī)器所具有的數(shù)據(jù)表示劃分

標(biāo)量流水機(jī);沒(méi)有向量數(shù)據(jù)表示,只能用標(biāo)量循環(huán)方式來(lái)處理向量和數(shù)組。

向量流水機(jī):是向量數(shù)據(jù)表示和流水技術(shù)的結(jié)合。機(jī)器有向量數(shù)據(jù)表示,設(shè)置有向量指令和向量運(yùn)算硬件,能流水地處理向量和數(shù)組中的各個(gè)元素。

④標(biāo)量流水機(jī)和向量流水第二十七頁(yè),共七十頁(yè),2022年,8月28日

(亦稱順序和亂序流水線)——依流水線中各功能段之間是否有反饋回路劃分線性流水線:流水線各段串行連接,一次流水各段只經(jīng)過(guò)一次,沒(méi)有反饋回路(各任務(wù)在流水線中按輸入順序一個(gè)任務(wù)段接著一個(gè)任務(wù)段的流動(dòng))。非線性流水線:流水線除了有串行聯(lián)接通路外,還有反饋回路,使任務(wù)段經(jīng)流水線可多次經(jīng)過(guò)某個(gè)段或越過(guò)某些段。

⑤線性/非線性流水1432+++舉例:第二十八頁(yè),共七十頁(yè),2022年,8月28日主要性能:吞吐率(ThroughputRateTP)和效率(Efficiency)

①定義;⒈吞吐率:即單位時(shí)間內(nèi)機(jī)器能處理的最多指令條數(shù)或機(jī)器能輸出的最多結(jié)果數(shù)。、四、流水線處理機(jī)的主要性能(性能分析)對(duì)于線性流水線,如果各個(gè)子過(guò)程所需要的時(shí)間分別是,則線性流水線的最大吞吐率為:tTPD==1max{maxtttmi},...,,...,11

D

D

Dtttmi,...,,...,1

DDD第二十九頁(yè),共七十頁(yè),2022年,8月28日

考慮以下幾種情況的最大吞吐率

順序解釋:一條指令的執(zhí)行時(shí)間由2個(gè)△t完成。

采用一次重迭解釋:機(jī)器每隔一個(gè)△t就能輸出一條指令執(zhí)行結(jié)果,機(jī)器最大吞吐率提高了一倍。

流水線達(dá)到不間斷流水的穩(wěn)定狀態(tài)后可獲得的吞吐率。最大吞吐率::第三十頁(yè),共七十頁(yè),2022年,8月28日T=2△t,則每隔△t=T/2輸出一個(gè)結(jié)果T=4△t,則每隔△t=T/4輸出一個(gè)結(jié)果

如果一條指令由m個(gè)子部件完成,T=m△t,則每隔△t=T/m輸出一個(gè)結(jié)果

機(jī)器最大吞吐率取決于子過(guò)程經(jīng)過(guò)的時(shí)間△t,△t越小,機(jī)器最大吞葉率就越高。

注意:這里的討論忽略了流水線的建立時(shí)間,如前面例,建立時(shí)間為3△t

一條指令執(zhí)行時(shí)間為T采用流水進(jìn)行指令解釋:4個(gè)子過(guò)程,如下分析:第三十一頁(yè),共七十頁(yè),2022年,8月28日機(jī)器最大吞吐率取決于子過(guò)程經(jīng)過(guò)的時(shí)間△t,△t越小,機(jī)器最大吞葉率就越高。同時(shí),它受限于流水線中最慢子過(guò)程(瓶頸子過(guò)程)所經(jīng)過(guò)的時(shí)間。

“瓶頸”問(wèn)題:第三十二頁(yè),共七十頁(yè),2022年,8月28日

方法一:見書P161圖5、21(a)、(b)

——⑴將“瓶頸”子過(guò)程再細(xì)分成更小的子過(guò)程,使各子過(guò)程均使用時(shí)間△t0。則最大吞吐率得以提高。如圖所示:流水線瓶頸的解決方法二:見書P161圖5、22(a)、(b)——當(dāng)不能細(xì)分瓶頸過(guò)程時(shí),可重復(fù)設(shè)置多套瓶頸段并聯(lián),使它們交叉并行。每隔一個(gè)△t0輪流給其中一個(gè)瓶頸段分配任務(wù),使整個(gè)流水線仍可每隔一個(gè)△t0解釋完成一條指令。如圖所示第三十三頁(yè),共七十頁(yè),2022年,8月28日流水線瓶頸的解決(c)瓶頸段重復(fù)設(shè)置部件圖8-2

消除流水線瓶頸段的兩種方法4333213DtDtDtDt瓶頸段細(xì)分(a)原流水線,第3段為瓶頸(b)4343c3b3a22DtDtDtDtDtDt3DtDtDtDt11方法一方法二第三十四頁(yè),共七十頁(yè),2022年,8月28日

流水線實(shí)際吞吐率的分析在實(shí)際工作過(guò)程中,實(shí)際吞吐率TP是小于Tpmax。因?yàn)橛校毫魉€開始需要建立時(shí)間;流水結(jié)束需排空時(shí)間;輸入流水線的任務(wù)不一定連續(xù);數(shù)據(jù)的相關(guān)處理及多功能流水線的某些功能段跳過(guò)等因素影響。經(jīng)書P137~138對(duì)TP實(shí)的公式分析,可得結(jié)論;采用流水方式,且任務(wù)n要>>任務(wù)子過(guò)程段數(shù)m,才可使實(shí)際吞吐率接近于TP最大第三十五頁(yè),共七十頁(yè),2022年,8月28日對(duì)于線性流水線,完成n個(gè)任務(wù)所需時(shí)間為T=mDt+(n-1)Dt,實(shí)際吞吐率為:第三十六頁(yè),共七十頁(yè),2022年,8月28日2.加速比

——流水方式的工作速度與等效的順序工作方式時(shí)間的比值。見書P194對(duì)于線性流水線:第三十七頁(yè),共七十頁(yè),2022年,8月28日整個(gè)運(yùn)行時(shí)間時(shí)間流水線中設(shè)備實(shí)際使用3、效率:——用工作時(shí)間的時(shí)空區(qū)與流水線中各段總的時(shí)空區(qū)之比來(lái)表示。流水線效率也稱流水線設(shè)備時(shí)間利用率。第三十八頁(yè),共七十頁(yè),2022年,8月28日從時(shí)空?qǐng)D中看:效率實(shí)際上就是n個(gè)任務(wù)占用的時(shí)空區(qū)面積與m個(gè)段總的時(shí)空區(qū)面積之比。與實(shí)際吞吐率TP實(shí)一樣,只有當(dāng)n>>m時(shí),η才趨于1。

對(duì)于線性流水且每段經(jīng)過(guò)時(shí)間相等時(shí),流水線的效率η正比于吞吐率。第三十九頁(yè),共七十頁(yè),2022年,8月28日

三、流水機(jī)器的相關(guān)處理和控制機(jī)構(gòu)(自學(xué))⒈流水線只有不間斷地連續(xù)流動(dòng),才會(huì)出現(xiàn)高的效率。結(jié)合前一頁(yè)書P196圖5.23,說(shuō)明該流水線效率、加速比及實(shí)際吞吐率的計(jì)算。效率解題速度卻提高為串行的1.6倍——是用加速比計(jì)算而知加速比:流水線實(shí)際吞吐率為最大吞吐率為第四十頁(yè),共七十頁(yè),2022年,8月28日

⒉流水機(jī)器中的相關(guān)處理流水機(jī)器中的相關(guān)影響機(jī)器的效率和吞吐率①流水機(jī)器中的相關(guān)分為局部相關(guān)和全局相關(guān)。局部相關(guān)只影響相關(guān)的兩條/若干指令,最多只影響到某些段工作的推后,不改變指緩中予取的指令,影響是局部的。

全局相關(guān)是指出現(xiàn)了轉(zhuǎn)移指令,使其后隨指令不能同時(shí)執(zhí)行,大大影響了機(jī)器的效率和吞吐率,故稱為全局相關(guān)。第四十一頁(yè),共七十頁(yè),2022年,8月28日

②流水機(jī)器中的流水控制機(jī)構(gòu)局部相關(guān)及處理⑴“先寫后讀”——后攜一個(gè)Tm再讀/使用相關(guān)專用通路(不可能為每個(gè)功能部件設(shè)專用通路,所以常采用分布式控制和管理以及公共數(shù)據(jù)總線)。

控制機(jī)構(gòu):順序(控制)流動(dòng)(同步流動(dòng)方式)相關(guān)后造成斷流,影響流水線的吞吐率和效率。見書圖5.24順序流動(dòng)時(shí)空?qǐng)D第四十二頁(yè),共七十頁(yè),2022年,8月28日

解決辦法:變順序流水方式為異動(dòng)方式,即讓不相關(guān)的后面指令越過(guò)相關(guān)指令(不能與前面一條指令一起解釋,而必須等待其結(jié)果流水后,獲得其結(jié)果后方可繼續(xù)被解釋),繼續(xù)向前流動(dòng)⑵流水機(jī)器中異步流動(dòng)方式的局部相關(guān)“寫-寫相關(guān)”:對(duì)同一單元要求在先的指令先寫,在后的指令后寫(盡管可能已流到前面去了)。“先讀后寫相關(guān)”:對(duì)同一單元要求在先的指令先讀出,在后的指令再寫入。異步流動(dòng)方式的控制機(jī)構(gòu)要對(duì)以上相關(guān)要求進(jìn)行保證。第四十三頁(yè),共七十頁(yè),2022年,8月28日

④在流水線中通過(guò)設(shè)置相關(guān)直接通路以減少吞吐率和效率損失流水機(jī)器是同時(shí)解釋多條指令,并經(jīng)常采用多個(gè)可并行工作的功能部件,故對(duì)相關(guān)直接通路的設(shè)置,一般采用分布式控制和管理,設(shè)置公共數(shù)據(jù)總線,以簡(jiǎn)化各種相關(guān)的判別和實(shí)現(xiàn)相關(guān)直接通路的連接。以IBM360/91浮點(diǎn)執(zhí)行部件為例,介紹其相關(guān)處理控制機(jī)構(gòu)。見書P142第四十四頁(yè),共七十頁(yè),2022年,8月28日ipi+1

⒊全局性相關(guān)的處理:見書P144

全局性相關(guān)——已進(jìn)入流水線的轉(zhuǎn)移指令與其后續(xù)指令之間的相關(guān)。常采用方法:①猜測(cè)法

轉(zhuǎn)移不成功分支

轉(zhuǎn)移指令轉(zhuǎn)移成功分支第四十五頁(yè),共七十頁(yè),2022年,8月28日

②加快和提前形成條件碼可從兩個(gè)方面采取措施⑴加快單條指令內(nèi)部條件碼的形成,不等指令執(zhí)行完就提前形成反映運(yùn)算結(jié)果的條件碼。(這特別適合于循環(huán)型程序判循環(huán)是否繼續(xù)時(shí)的轉(zhuǎn)移)。例:書203 程序中先減、再判

⑵在一段程序內(nèi)提前形成條件碼第四十六頁(yè),共七十頁(yè),2022年,8月28日

③采取延遲轉(zhuǎn)移——可使轉(zhuǎn)移造成的流水線損失為0是用軟件方法進(jìn)行靜態(tài)指令調(diào)度技術(shù),不必增加硬件,在編譯生成目標(biāo)指令程序時(shí),將轉(zhuǎn)移指令與其前面不相干的一條或多條交換位置,讓成功轉(zhuǎn)移總是延遲到在這些指令執(zhí)行后再進(jìn)行(有充足的時(shí)間等待轉(zhuǎn)移指令執(zhí)行后條件碼的形成,以完成成功轉(zhuǎn)移)。④加快短循環(huán)程序的處理將可一次性整個(gè)予取到指緩中的短程序(指令)一次取進(jìn)指緩,然后暫停予取,使短循環(huán)取指予取得到保障。同時(shí),使短循環(huán)程序出口的分支條轉(zhuǎn)指令恒猜循環(huán)分支。第四十七頁(yè),共七十頁(yè),2022年,8月28日討論的問(wèn)題是:當(dāng)多個(gè)任務(wù)爭(zhēng)用同一功能段時(shí),如何既消除沖突又能使流水線保持有高的吞吐率和效率。為了對(duì)流水線的任務(wù)進(jìn)行優(yōu)化調(diào)度和控制,(a)采取了二維(n—拍號(hào),即任務(wù)經(jīng)過(guò)流水線的時(shí)鐘節(jié)拍號(hào),k—段號(hào))預(yù)約表可獲得任務(wù)使用流水線各段的時(shí)間關(guān)系表(利用畫時(shí)空?qǐng)D的方法建立預(yù)約表),(b)可得知任務(wù)在各段會(huì)引起爭(zhēng)用的相隔拍數(shù),將各段統(tǒng)計(jì)情況匯集在一起構(gòu)成一個(gè)延遲禁止表F。按流水線狀態(tài)由初始狀態(tài)出構(gòu)由⒋流水線調(diào)度P204第四十八頁(yè),共七十頁(yè),2022年,8月28日(c)

有了延遲禁止表后,就可以形成沖突向量。隨任務(wù)在流水線中的推進(jìn),沖突向量會(huì)不斷動(dòng)態(tài)地形成當(dāng)時(shí)的沖突向量。(d)

依沖突向量,可畫出用沖突向量表示的流水線狀態(tài)轉(zhuǎn)移圖。(e)流水線狀態(tài)圖中由初始狀態(tài)出發(fā),構(gòu)成一種間隔拍數(shù)呈周期性重復(fù)的方案來(lái)進(jìn)行流水線調(diào)度,就不會(huì)發(fā)生功能段使用沖突。

只要計(jì)算出每種調(diào)度方案的平均間隔拍數(shù),從中找出最小者即是最調(diào)度方案。第四十九頁(yè),共七十頁(yè),2022年,8月28日

如一任務(wù)的單功能流水線預(yù)約表如下:√√5√√4√3√√√2√√1987654321段號(hào)K有了延遲禁止表后,就可以形成沖突向量。由表可知:1段相隔8拍(一任務(wù)相隔8折要用1段一次)2段相隔有1、5、6三種情況(即該任務(wù)隔1拍、5拍和6拍要使用2段各一次)所以本例的延遲表F={1、5、6、8}。第五十頁(yè),共七十頁(yè),2022年,8月28日

表的形成依據(jù):如有另一任務(wù)要流入流水線,如與前一任務(wù)相隔8拍(使用1段),必將引起沖突,導(dǎo)致爭(zhēng)用。而相隔1、5、6拍流入流水線,將會(huì)爭(zhēng)用2段…如此統(tǒng)計(jì),可得知任務(wù)在各段會(huì)引起爭(zhēng)用的相隔拍數(shù),將各段統(tǒng)計(jì)情況匯集在一起構(gòu)成一個(gè)延遲禁止表F。表中,任務(wù)對(duì)段3無(wú)重復(fù)使用(線性使用一次),對(duì)段4、5也是相隔1拍使用,。所以本例的延遲表F={1、5、6、8}。即是說(shuō):要使流水線各功能段不在被使用時(shí)引起爭(zhēng)用沖突,相鄰兩任務(wù)送入流水線的相隔節(jié)拍數(shù)就不能是1、5、6、8拍第五十一頁(yè),共七十頁(yè),2022年,8月28日

有了延遲禁止表后,就可以形成沖突向量。隨任務(wù)在流水線中的推進(jìn),沖突向量會(huì)不斷動(dòng)態(tài)地形成當(dāng)時(shí)的沖突向量。

禁止表沖突向量C=10110001F=依沖突向量,可畫出用沖突向量表示的流水線狀態(tài)轉(zhuǎn)移圖只要按流水線狀態(tài)圖中由初始狀態(tài)出發(fā),構(gòu)成一種間隔拍數(shù)呈周期性重復(fù)的方案來(lái)進(jìn)行流水線調(diào)度,就不會(huì)發(fā)生功能段使用沖突。只要計(jì)算出每種調(diào)度方案的平均間隔拍數(shù),從中找出最小者即可。第五十二頁(yè),共七十頁(yè),2022年,8月28日——非線性流水線的調(diào)度方法(書P205)預(yù)約表

禁止表F={1,5,6,8}

沖突向量C=10110001

第五十三頁(yè),共七十頁(yè),2022年,8月28日調(diào)度狀態(tài)轉(zhuǎn)換圖000101101011000110110111b:相或000000001011000110110001a:相或001011001011000110111101d:相或第五十四頁(yè),共七十頁(yè),2022年,8月28日調(diào)度方案比較調(diào)度策略平均間隔周期bc:(3,4)3.50ad:(2,7)4.50ade:(2,2,7)3.67abcb:(3,4,3,7)4.25abc:(3,4,7)4.67acb:(4,3,7)4.67ab:(3,7)5.00ac:(4,7)5.50a:(7)7.00第五十五頁(yè),共七十頁(yè),2022年,8月28日第三節(jié) 向量的流水與向量流水處理機(jī)

向量?jī)?nèi)部各元素很少相關(guān),且通常又是執(zhí)行同一操作,易發(fā)揮流水線的效能。故將向量數(shù)據(jù)表示和流水線結(jié)合,就構(gòu)成了向量流水處理機(jī),以提高面向向量數(shù)組計(jì)算類應(yīng)用的計(jì)算機(jī)的速度性能。第五十六頁(yè),共七十頁(yè),2022年,8月28日

一、向量的流水處理⒈目標(biāo):選擇使向量運(yùn)算最能充分發(fā)揮出流水線效能的處理方式,就是向量的流水處理要研究的問(wèn)題。⒉向量的處理方式:分橫向量和縱向量舉例說(shuō)明計(jì)算D=A×(B+C),其中A、B、C、D均為有N個(gè)元素的向量第五十七頁(yè),共七十頁(yè),2022年,8月28日

因?yàn)樵谶M(jìn)行di=ai×(bi+ci)計(jì)算過(guò)程中,頻繁地使用到加、乘兩條指令,進(jìn)行著bi+ci=>k、k×ai=>di的操作,使用k單元存放中間結(jié)果,導(dǎo)致頻繁出現(xiàn)“先寫后讀”的操作數(shù)相關(guān)。故每次只能等ai+ci結(jié)果出來(lái)后,才能開始乘,所以流水線的吞吐率下降。⑴采用橫向處理:即逐個(gè)求D向量元素的方法逐個(gè)求di=ai×(bi+ci)、di+1=ai+1×(bi+1+ci+1)…此種處理方式宜于在標(biāo)量處理機(jī)上用循環(huán)程序?qū)崿F(xiàn),卻難以使流水線連續(xù)流動(dòng)。第五十八頁(yè),共七十頁(yè),2022年,8月28日

⑵采用縱向處理思路:將整個(gè)向量按相同操作都以流水方式執(zhí)行完后再執(zhí)行別的操作,以更好地發(fā)揮流水處理的效能。具體:執(zhí)行di=ai×(bi+ci)、處理方式改為:按bi+ci→ki(i從1~N),然后再按ki×ai→di(i從1~N)這種處理方式。B、C向量、k、a向量分別均執(zhí)行相同操作,且無(wú)相關(guān),流水線能連續(xù)流動(dòng),能有效發(fā)揮流水線效率,功能切換總共只進(jìn)行一次。采用縱向處理?xiàng)l件:流水線輸入端要求能每拍取得成對(duì)元素,才能每拍求得一個(gè)結(jié)果元素,且元素個(gè)數(shù)N也不會(huì)小,故要求主存流量和流水線的處理速率相匹配。第五十九頁(yè),共七十頁(yè),2022年,8月28日二、向量流水處理機(jī)以CRAY-1機(jī)為例,介紹面向寄存器——寄存器型向量流水處理的結(jié)構(gòu)特點(diǎn)。CRAY-1機(jī)向量處理的一個(gè)顯著特點(diǎn)是其指令可以鏈接,使它能靈活地組織各流水線功能部件的并行操作,最多能并行處理6條向量指令,充分發(fā)揮出流水線功能部件的效能。第六十頁(yè),共七十頁(yè),2022年,8月28日

其靈活組織表現(xiàn)在:①只要不出現(xiàn)功能部件沖突和源向量沖突,通過(guò)鏈接機(jī)構(gòu)可使有數(shù)據(jù)相關(guān)的向量指令仍能夠重迭并行處理,具體見書P153圖5.30②CARY-1能由機(jī)器自動(dòng)檢查每一個(gè)向量指令是否可與它前面的一條向量指令鏈接——這種鏈接特性實(shí)質(zhì)是將“相關(guān)直接能路”的思想引入到向量指令的執(zhí)行過(guò)程中。第六十一頁(yè),共七十頁(yè),2022年,8月28日三、向量流水原理

典型的向量機(jī)基本系統(tǒng)結(jié)構(gòu)第六十二頁(yè),共七十頁(yè),2022年,8月28日第四節(jié) 指令級(jí)高度并行的超級(jí)處理機(jī)

自20世紀(jì)80年代RISC興起之后,又出現(xiàn)了指令級(jí)高度并行的一些新機(jī)器。指令級(jí)高度并行:即讓單處理機(jī)在每個(gè)時(shí)鐘周期里可解釋多條指令。新機(jī)器的代表:超標(biāo)量(Superscalars)處理機(jī)超長(zhǎng)指令字(VILW)處理機(jī)越流水線(Superpipelining)處理機(jī)第六十三頁(yè),共七十頁(yè),2022年,8月28日

一、超標(biāo)量處理機(jī)假如一條指令的執(zhí)行過(guò)程為取指、譯碼、執(zhí)行、存放結(jié)果四個(gè)子過(guò)程,每個(gè)子過(guò)程在流水線中經(jīng)過(guò)的時(shí)間為△t。⒈常規(guī)的標(biāo)量流水線單處理機(jī)是在每個(gè)△t期間解釋完一條指令(不考慮流水線建立時(shí)間和排空時(shí)間)稱這種流水機(jī)的度m=1。⒉而超標(biāo)量處理機(jī)采用多指令流流水線(即在一個(gè)△t時(shí)間內(nèi)同時(shí)對(duì)多條指令的子過(guò)程進(jìn)行解釋),在每個(gè)△t同時(shí)流出m條指令(結(jié)果),稱之為度m。例:見書P154圖5.32所示,在一個(gè)△t時(shí)間內(nèi)同時(shí)解釋3條指令,執(zhí)行12條指令只需7△t時(shí)間。第六十四頁(yè),共七十頁(yè),2022年,8月28日

⒊超標(biāo)流水處理機(jī)的軟、硬件支持

溫馨提示

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

評(píng)論

0/150

提交評(píng)論