計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)(第七講).ppt
《計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)(第七講).ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)(第七講).ppt(77頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)(第七講),廈門大學(xué)計(jì)算機(jī)科學(xué)系陸達(dá)2004年11月28日,第五章標(biāo)量處理機(jī),5.2流水線處理機(jī),5.2.3線性流水線的性能分析,5.2.3.5流水線性能分析舉例,單功能、線性流水線,輸入任務(wù)連續(xù)單功能、線性流水線,輸入任務(wù)不連續(xù)多功能、線性流水線,輸入任務(wù)不連續(xù)非線性流水線,例5.1:?jiǎn)喂δ?、線性流水線,輸入任務(wù)不連續(xù)Z=A+B+C+D+E+F+G+HZ=(A+B)+(C+D)+(E+F)+(G+H)圖5.42:用一條4段浮點(diǎn)加法器流水線求8個(gè)數(shù)之和的流水線時(shí)空?qǐng)D吞吐率:TP=n/Tk=7/(15*t)=0.47*(1/t)加速比:S=T0/Tk=(4*7*t)/(15*t)=1.87效率:E=T0/(k*Tk)=(4*7*t)/(4*15*t)=0.47,例5.2:多功能、線性流水線,輸入任務(wù)不連續(xù)Z=AB+CD+EF+GHZ=AB+CD+EF+GH圖5.43:用TI-ASC多功能靜態(tài)流水線求兩個(gè)向量點(diǎn)積的流水線時(shí)空?qǐng)D吞吐率:TP=n/Tk=7/(20*t)=0.35*(1/t)加速比:S=T0/Tk=(4*4*t+3*6*t)/(20*t)=1.70效率:E=T0/(k*Tk)=(4*4*t+3*6*t)/(8*20*t)=0.21該流水線的效率很低,原因主要有四個(gè):p294,5.2.4非線性流水線的調(diào)度技術(shù),功能部件沖突,或流水線沖突采用延遲輸入新任務(wù)的方法非線性流水線的調(diào)度問題非線性流水線調(diào)度的任務(wù):要找出一個(gè)最小的循環(huán)周期,按照這個(gè)周期向流水線輸入新任務(wù),流水線的各個(gè)功能段都不會(huì)發(fā)生沖突,而且流水線的吞吐率和效率最高,5.2.4.1非線性流水線的表示,圖5.44(a):非線性流水線的連接圖圖5.44(b):非線性流水線的預(yù)約表預(yù)約表的橫坐標(biāo)(列數(shù)):流水線工作的時(shí)鐘周期數(shù),或流水線的功能求值時(shí)間,或流水線的裝入時(shí)間預(yù)約表的縱坐標(biāo)(行數(shù)):流水線的功能段,一張非線性流水線的預(yù)約表可能與多個(gè)非線性流水線連接圖相對(duì)應(yīng),如圖5.45一個(gè)非線性流水線的連接圖也可能對(duì)應(yīng)有多張預(yù)約表,如圖5.46,5.2.4.2非線性流水線的沖突,啟動(dòng)距離(initiationinterval),或等待時(shí)間(latency)非線性流水線中的沖突(collision)圖5.47:?jiǎn)?dòng)距離為3的流水線沖突情況圖5.48:?jiǎn)?dòng)距離為2的流水線沖突情況禁止啟動(dòng)距離:如啟動(dòng)距離3、啟動(dòng)距離2,圖5.49:?jiǎn)?dòng)距離為5的流水線預(yù)約表(任何一個(gè)功能段在任何一個(gè)時(shí)鐘周期都不發(fā)生沖突),非線性流水線的啟動(dòng)循環(huán):如啟動(dòng)循環(huán)(1,7)圖5.50:?jiǎn)?dòng)距離為(1,7)循環(huán)時(shí)的流水線預(yù)約表恒定循環(huán):如啟動(dòng)循環(huán)(5),非線性流水線的禁止向量如何由預(yù)約表得到禁止向量?P297-298平均啟動(dòng)距離:如啟動(dòng)循環(huán)(1,7)的平均啟動(dòng)距離為4;啟動(dòng)循環(huán)(5)的平均啟動(dòng)距離為5,5.2.4.3無(wú)沖突調(diào)度方法,目的是要找出具有最小平均啟動(dòng)距離的啟動(dòng)循環(huán)E.S.Davidson及其學(xué)生1971年提出沖突向量:可由一張預(yù)約表的禁止向量得到,如禁止向量為(3,4,6),則沖突向量為C=(CmCm-1C2C1)=(101100)狀態(tài)圖:由沖突向量構(gòu)造而成m位邏輯右移移位器:當(dāng)移出的位為0時(shí),用移位器中的值與初始沖突向量作“按位或”運(yùn)算,得到一個(gè)新的沖突向量;若移出的位為1,不作任何處理,圖5.51:非線性流水線的狀態(tài)圖與一張預(yù)約表相對(duì)應(yīng),只有唯一的一個(gè)狀態(tài)圖從預(yù)約表可以畫出狀態(tài)圖,但從狀態(tài)圖不能得到預(yù)約表,在狀態(tài)圖中可以找到很多不發(fā)生功能沖突的啟動(dòng)循環(huán)簡(jiǎn)單循環(huán):表5.1(各沖突相量只經(jīng)過一次的啟動(dòng)循環(huán)),最小啟動(dòng)循環(huán):如啟動(dòng)循環(huán)(1,1,7)圖5.52:最小啟動(dòng)循環(huán)(1,1,7)的流水性預(yù)約表恒定循環(huán):如啟動(dòng)循環(huán)(5),5.2.4.4優(yōu)化調(diào)度方法,L.E.Shar在1971年提出了流水線最小平均啟動(dòng)距離的限制范圍,對(duì)于一條靜態(tài)可重構(gòu)的流水線,通過預(yù)約表可以得到其最小平均啟動(dòng)距離的范圍。共有三個(gè)方面,見P301采用預(yù)留算法來(lái)調(diào)度非線性流水線,可以達(dá)到最優(yōu)調(diào)度。具體方法有三條,見P301圖5.53:采用預(yù)留算法調(diào)度的預(yù)約表、連接圖(有非計(jì)算延遲的非線性流水線),圖5.54:與圖5.53相對(duì)應(yīng)的流水線狀態(tài)圖(有非計(jì)算延遲的流水線狀態(tài)圖),圖5.55:按照最小啟動(dòng)循環(huán)(3)工作的流水線預(yù)約表,單功能非線性流水線靜態(tài)多功能非線性流水線動(dòng)態(tài)多功能非線性流水線,5.2.5局部相關(guān),相關(guān):數(shù)據(jù)相關(guān)、控制相關(guān)相關(guān):局部相關(guān)(localcorrelation)、全局相關(guān)(globalcorrelation),圖5.56基本塊(basicblock)軟件方面:編譯器生成的目標(biāo)程序要能夠適合流水線結(jié)構(gòu)硬件方面:要解決好存儲(chǔ)系統(tǒng)的頻帶平衡問題局部相關(guān)有三種:(1)、“先寫后讀”數(shù)據(jù)相關(guān),“寫讀”相關(guān),“WR”或“RAW”(2)、“先讀后寫”數(shù)據(jù)相關(guān),“讀寫”相關(guān),“RW”或“WAR”(3)、“寫-寫”相關(guān),“WW”或“WAW”,5.2.5.1順序流動(dòng)和亂序流動(dòng),什么是順序流動(dòng)方式?P304圖5.57:一條6段指令流水線,把如下一段程序輸入到流水線中:p304,圖5.58:順序流動(dòng)方式正常流動(dòng):S1-S2-S3-S4-S5-S6=k+5-k+4-k+3-k+2-k+1-k發(fā)生“先寫后讀”數(shù)據(jù)相關(guān)時(shí):流水線就會(huì)“斷流”,有些功能段要出現(xiàn)“空閑”,如圖5.58的“ti-ti+1-ti+2-ti+3-ti+4”,什么是亂序(outoforder)流動(dòng)方式?P305亦稱錯(cuò)序流動(dòng)方式、無(wú)序流動(dòng)方式、異步流動(dòng)方式,從流水線的輸出端看,指令流出流水線的順序與輸入端指令進(jìn)入流水線的順序是不一樣的有些指令執(zhí)行的時(shí)間短或經(jīng)過的功能段比較少,它們要越過執(zhí)行時(shí)間長(zhǎng)或經(jīng)過功能段多的指令向前流動(dòng),程序中出現(xiàn)的三種數(shù)據(jù)相關(guān):p306(1)、“先寫后讀”:k-k+2(2)、“先讀后寫”:k+2-k+3(3)、“寫-寫”:k+2-k+4,如何測(cè)試程序中的“先寫后讀”數(shù)據(jù)相關(guān)?采用相聯(lián)比較器(p306)如何測(cè)試程序中的“先讀后寫”數(shù)據(jù)相關(guān)?采用相聯(lián)比較器(p306)如何測(cè)試程序中的“寫-寫”數(shù)據(jù)相關(guān)?采用相聯(lián)比較器(p306-307),5.2.5.2數(shù)據(jù)相關(guān)及其避免方法,流水線中的數(shù)據(jù)相關(guān),在邏輯設(shè)計(jì)中稱為“冒險(xiǎn)(hazard)”或“競(jìng)爭(zhēng)(competition)”圖5.60:在指令流水線中可能出現(xiàn)的數(shù)據(jù)相關(guān)“先寫后讀”相關(guān):D(i)S(j)“先讀后寫”相關(guān):S(i)D(j)“寫-寫”相關(guān):D(i)D(j),避免發(fā)生數(shù)據(jù)相關(guān)的方法:(1)、延遲執(zhí)行如圖5.58(2)、建立專用路徑如圖5.57,設(shè)置一條從功能段S5到功能段S3的專用路徑圖5.61:建立有專用路徑的順序流動(dòng)方式,有多種設(shè)置專用路徑的專門方法:如采用分散控制的公共數(shù)據(jù)總線法(也稱Tomasulo算法);采用集中控制的CDC記分牌法,5.2.5.3數(shù)據(jù)重定向,通過建立專用路徑來(lái)避免數(shù)據(jù)相關(guān)的基本原理是數(shù)據(jù)重定向在單條流水線中,建立專用路徑的方法有:(1)、對(duì)于“先寫后讀”數(shù)據(jù)相關(guān):圖5.62(a)(2)、對(duì)于“寫-寫”數(shù)據(jù)相關(guān):圖5.62(b)對(duì)于“先讀后寫”數(shù)據(jù)相關(guān):設(shè)置一個(gè)緩沖寄存器,p309,例子:如何通過數(shù)據(jù)重定向來(lái)避免數(shù)據(jù)相關(guān)一個(gè)簡(jiǎn)單的程序:存在“先寫后讀”數(shù)據(jù)相關(guān),“寫-寫”數(shù)據(jù)相關(guān)k:LOADF1,Ak+1:FADDF1,F(xiàn)2k+2:FMULF1,F(xiàn)3k+3:STOREF1,B圖5.63:數(shù)據(jù)重定向原理,5.2.5.4Tomasulo動(dòng)態(tài)指令調(diào)度算法,1967年由R.M.Tomasulo提出,又稱公共數(shù)據(jù)總線(CDB:CommonDataBus)法,或令牌法Tomasulo算法采用亂序流動(dòng)方式來(lái)提高流水線的吞吐率和效率,并通過分散控制的辦法處理數(shù)據(jù)相關(guān)最早在IBM360/91處理機(jī)的浮點(diǎn)處理部件中被采用,IBM360/91處理機(jī):圖5.64(1)一個(gè)浮點(diǎn)加法器:兩段流水線,三個(gè)保存站A1、A2、A3(2)一個(gè)浮點(diǎn)乘/除法器:六段流水線,兩個(gè)保存站M1、M2數(shù)據(jù)流計(jì)算機(jī)中的數(shù)據(jù)驅(qū)動(dòng)方式先行控制方式:浮點(diǎn)先行操作站、浮點(diǎn)先行讀數(shù)站、浮點(diǎn)后行寫數(shù)站FLB:FloatLook-aheadBufferFLOS:FloatLook-aheadOperationStationFLR:FloatLook-aheadRegisterCDB:CommonDataBus,這就相當(dāng)于建立了一條從主存儲(chǔ)器到浮點(diǎn)加法器的專用數(shù)據(jù)路徑,A-FADD,p310,參見圖5.63這就相當(dāng)于建立了一條從浮點(diǎn)加法器到浮點(diǎn)乘法器的專用數(shù)據(jù)路徑,F(xiàn)ADD-FMUL,p311,參見圖5.63在把運(yùn)算結(jié)果通過CDB送入浮點(diǎn)通用寄存器F1的同時(shí),也送入浮點(diǎn)后行寫數(shù)站SDB,由SDB負(fù)責(zé)把這個(gè)結(jié)果寫到主存儲(chǔ)器的B單元中,F(xiàn)MUL-B,p312,參見圖5.63,CDC計(jì)分牌法:是另一種可以用來(lái)動(dòng)態(tài)調(diào)度多條流水線的經(jīng)典方法CDC計(jì)分牌法由J.E.Thornton于1970年提出最先用于CDC6000大型計(jì)算機(jī)系統(tǒng)中計(jì)分牌(scoreboard):是一個(gè)集中控制部件,它記錄了數(shù)據(jù)寄存器和多個(gè)操作部件狀態(tài)的變化情況,可以通過它來(lái)消除或減少某些數(shù)據(jù)相關(guān),加快程序的執(zhí)行速度,5.2.6全局相關(guān),什么是全局相關(guān)?由條件轉(zhuǎn)移或程序中斷引起的相關(guān)稱為全局相關(guān),也稱控制相關(guān)關(guān)鍵問題:一是要確保流水線能夠正常工作;二是要減少因“斷流”引起的吞吐率和效率的下降,5.2.6.1轉(zhuǎn)移的影響,“猜測(cè)法”:圖5.65,猜測(cè)的分支方向是固定,它選擇的是轉(zhuǎn)移不成功的方向當(dāng)流水線沿猜測(cè)方向執(zhí)行指令時(shí),一定不能破壞通用寄存器和主存儲(chǔ)器中的內(nèi)容兩種做法:(1)、只進(jìn)行指令譯碼和準(zhǔn)備好運(yùn)算所需要的操作數(shù),在轉(zhuǎn)移條件沒有形成之前不執(zhí)行運(yùn)算;(2)、一直執(zhí)行到運(yùn)算完成,但不送回運(yùn)算結(jié)果,包括條件轉(zhuǎn)移指令在內(nèi)的n條指令的總的執(zhí)行時(shí)間是:TK-IF=(n+k-1)*t+n*p*q*(k-1)*t吞吐率:TPIF=n/(n+k-1)*t+n*p*q*(k-1)*tTPMAX-IF=1/(1+p*q*(k-1)*tTPMAX=1/tD=(TPMAX-TPMAX-IF)/TPMAX=pq(k-1)/1-pq(k-1),減少條件轉(zhuǎn)移指令對(duì)流水線的影響的措施:(1)、延遲轉(zhuǎn)移技術(shù)和指令取消技術(shù)(p118-p119)(2)、靜態(tài)轉(zhuǎn)移預(yù)測(cè)技術(shù)(p272-p274)軟件猜測(cè)法、硬件猜測(cè)法、兩個(gè)先行指令緩沖棧(3)、動(dòng)態(tài)轉(zhuǎn)移預(yù)測(cè)技術(shù),5.2.6.2動(dòng)態(tài)轉(zhuǎn)移預(yù)測(cè)技術(shù),關(guān)鍵要解決好兩個(gè)問題:(1)、如何記錄轉(zhuǎn)移歷史信息(2)、如何根據(jù)所記錄的轉(zhuǎn)移歷史信息預(yù)測(cè)轉(zhuǎn)移的方向記錄轉(zhuǎn)移歷史信息的方法:(1)、把最近一次或幾次轉(zhuǎn)移是否成功的信息記錄在轉(zhuǎn)移指令中(2)、用一個(gè)小容量的高速緩沖棧保存條件轉(zhuǎn)移指令的轉(zhuǎn)移目標(biāo)地址(3)、用Cache保存轉(zhuǎn)移目標(biāo)地址之后的n條指令,方法一:在指令Cache中記錄轉(zhuǎn)移歷史信息,轉(zhuǎn)移歷史表:在指令Cache中專門設(shè)置的一個(gè)字段轉(zhuǎn)移預(yù)測(cè)邏輯根據(jù)“轉(zhuǎn)移歷史表”中記錄的信息預(yù)測(cè)轉(zhuǎn)移成功或不成功圖5.66(a):只記錄最近一次轉(zhuǎn)移是否成功的歷史信息無(wú)論預(yù)測(cè)是否成功,都要用本條轉(zhuǎn)移指令實(shí)際轉(zhuǎn)移是否成功的信息來(lái)修改“轉(zhuǎn)移歷史表”圖5.66(b):記錄最近兩次轉(zhuǎn)移是否成功的歷史信息采用向左移位的方法修改“轉(zhuǎn)移歷史表”優(yōu)點(diǎn):不必專門設(shè)置轉(zhuǎn)移緩沖棧,所記錄的轉(zhuǎn)移歷史信息比較少缺點(diǎn):需要有專門的指令Cache和專門的指令Cache控制邏輯,方法二:轉(zhuǎn)移目標(biāo)地址緩沖棧,轉(zhuǎn)移目標(biāo)地址緩沖棧:用一個(gè)小容量的高速緩沖棧保存最近執(zhí)行的k條轉(zhuǎn)移指令的“轉(zhuǎn)移歷史表”和轉(zhuǎn)移目標(biāo)地址圖5.67:轉(zhuǎn)移目標(biāo)地址緩沖棧=轉(zhuǎn)移指令地址(采用全相聯(lián)方式訪問)+轉(zhuǎn)移歷史表+轉(zhuǎn)移目標(biāo)地址,方法三:轉(zhuǎn)移目標(biāo)指令緩沖棧,將方法二轉(zhuǎn)移目標(biāo)地址緩沖棧中的轉(zhuǎn)移目標(biāo)地址部分改為存放轉(zhuǎn)移目標(biāo)地址之后的n條指令圖5.68:轉(zhuǎn)移目標(biāo)指令緩沖棧轉(zhuǎn)移目標(biāo)指令緩沖棧=轉(zhuǎn)移指令地址+轉(zhuǎn)移歷史表+轉(zhuǎn)移目標(biāo)地址之后的n條指令,5.2.6.3提前形成條件碼,對(duì)于一般條件轉(zhuǎn)移指令:只要在運(yùn)算部件的入口處設(shè)置一個(gè)比較器,就能提前產(chǎn)生條件碼對(duì)于用來(lái)控制循環(huán)次數(shù)的計(jì)數(shù)轉(zhuǎn)移指令:采用專門的循環(huán)控制指令(LDEC、LBNE)和專門的條件碼寄存器(CCL),能夠把產(chǎn)生條件碼的運(yùn)算型指令與使用這個(gè)條件碼的條件轉(zhuǎn)移指令分離開來(lái),5.2.6.4精確斷點(diǎn)與不精確斷點(diǎn),不精確斷點(diǎn)法(impreciseinterrupt):讓已經(jīng)進(jìn)入流水線的所有指令都執(zhí)行完成,斷點(diǎn)就是最后進(jìn)入流水線的那條指令的地址不精確斷點(diǎn)法可能會(huì)發(fā)生二個(gè)問題:一是程序執(zhí)行的結(jié)果可能出錯(cuò);二是在程序調(diào)試過程中,通常要設(shè)置斷點(diǎn),程序員通過查看斷點(diǎn)處的中間執(zhí)行結(jié)果來(lái)判斷程序編寫是否正確精確斷點(diǎn)法(preciseinterrupt):由哪一條指令的程序性錯(cuò)誤或故障發(fā)出的中斷申請(qǐng),斷點(diǎn)就是這條指令的地址;需要把斷點(diǎn)以前的指令的執(zhí)行結(jié)果都保存下來(lái);要設(shè)置一定數(shù)量的后援寄存器圖5.69:流水線處理機(jī)的中斷處理,5.3超標(biāo)量處理機(jī)與超流水線處理機(jī),表5.2:四種不同類型處理機(jī)的性能比較基準(zhǔn)標(biāo)量處理機(jī)(scalarprocessor):一臺(tái)普通的單流水線處理機(jī)超標(biāo)量處理機(jī)(superscalarprocessor):同時(shí)發(fā)射m條指令超流水線處理機(jī)(superpipeliningprocessor):機(jī)器流水線周期=1/n超標(biāo)量超流水線處理機(jī)(superpipeliningsuperscalarprocessor):同時(shí)發(fā)射m條指令,機(jī)器流水線周期=1/nILP(instructionlevelparallelism):指令級(jí)并行度,5.3.1超標(biāo)量處理機(jī),一般的流水線處理機(jī):只有一條指令流水線,一個(gè)多功能的操作部件;k=4;“取指令”、“分析”、“執(zhí)行”、“寫回運(yùn)算結(jié)果”指令所要執(zhí)行的功能主要在多功能操作部件中,在“執(zhí)行”這一功能段完成ILP1,5.3.1.1基本結(jié)構(gòu),超標(biāo)量處理機(jī):有多個(gè)操作部件,一個(gè)或幾個(gè)比較大的通用寄存器堆,一個(gè)或二個(gè)高速Cache。三個(gè)處理單元(操作部件):(1)、定點(diǎn)處理單元,也稱中央處理單元(CPU),由一個(gè)或多個(gè)整數(shù)處理部件組成;(2)、浮點(diǎn)處理單元(FPU),由浮點(diǎn)加減法部件和浮點(diǎn)乘除法部件組成;(3)、圖形加速部件(GPU)兩個(gè)通用寄存器堆:采用重疊寄存器窗口技術(shù)(p121)兩個(gè)一級(jí)高速Cache(Harvard結(jié)構(gòu)):指令Cache、數(shù)據(jù)Cache,圖5.70:Motorola公司的MC88110超標(biāo)量處理機(jī)10個(gè)操作部件:(1)、二個(gè)整數(shù)部件(2)、一個(gè)位操作部件(3)、三個(gè)浮點(diǎn)運(yùn)算部件:浮點(diǎn)加、浮點(diǎn)乘、浮點(diǎn)除(4)、二個(gè)圖形處理部件(5)、讀數(shù)/存數(shù)部件:先行讀數(shù)棧、后行寫數(shù)棧(6)、指令分配/轉(zhuǎn)移部件兩個(gè)寄存器堆:(1)、通用寄存器堆(2)、擴(kuò)展寄存器堆指令Cache:采用兩路組相聯(lián)方式工作數(shù)據(jù)Cache:采用兩路組相聯(lián)方式工作目標(biāo)指令Cache:,5.3.1.2單發(fā)射與多發(fā)射,單發(fā)射處理機(jī):圖5.71(a)取指令(IF)、指令譯碼(ID)、執(zhí)行指令(EX)、寫回運(yùn)算結(jié)果(WR)單發(fā)射處理機(jī)中,取指令部件和指令譯碼部件只各設(shè)置一套,操作部件可以只設(shè)置一個(gè)多功能操作部件,也可以設(shè)置多個(gè)獨(dú)立的操作部件(如ALU、LSU、FAD、MDU)圖5.72(a):?jiǎn)伟l(fā)射指令流水線單發(fā)射處理機(jī):就是一臺(tái)有k段流水線的普通標(biāo)量處理機(jī),ILP1,多發(fā)射處理機(jī):在一個(gè)基本時(shí)鐘周期內(nèi)同時(shí)從指令Cache中讀出多條指令,同時(shí)對(duì)多條指令進(jìn)行譯碼圖5.71(b):同時(shí)發(fā)射三條指令的多發(fā)射處理機(jī)的指令執(zhí)行時(shí)空?qǐng)D圖5.72(b):同時(shí)發(fā)射二條指令的多發(fā)射處理機(jī)的指令流水線多發(fā)射處理機(jī),亦稱超標(biāo)量處理機(jī),1ILPm,先行指令窗口:用于保存由于功能部件沖突、數(shù)據(jù)相關(guān)或控制相關(guān)等原因暫時(shí)還不能送到操作部件中去執(zhí)行的指令;先行指令窗口的作用與先行控制技術(shù)中的先行指令緩沖棧相似先行指令窗口大小=28條指令圖5.73:有先行指令窗口的多發(fā)射流水線處理機(jī)結(jié)構(gòu),5.3.1.3多流水線調(diào)度,多流水線調(diào)度問題:NP完全問題順序發(fā)射(in-orderissue)亂序發(fā)射(out-orderissue)順序完成(in-ordercompletion)亂序完成(out-ordercompletion)順序發(fā)射順序完成順序發(fā)射亂序完成亂序發(fā)射亂序完成,例子:p327“先寫后讀”數(shù)據(jù)相關(guān):I1I2“先讀后寫”數(shù)據(jù)相關(guān):I3I4“先寫后讀”和“寫-寫”數(shù)據(jù)相關(guān):I5I6功能部件沖突:I2I4(都是FADD指令)功能部件沖突:I3I6(都是FMUL指令),方法一、順序發(fā)射順序完成,圖5.74:順序發(fā)射順序完成的指令流水線時(shí)空?qǐng)DI1I2和I5I6的“先寫后讀”數(shù)據(jù)相關(guān):各一個(gè)等待時(shí)鐘周期(I2和I6)I2I4的功能部件沖突(都是FADD指令):一個(gè)等待時(shí)鐘周期(I4)順序完成要求:I3延遲一個(gè)時(shí)鐘周期;I5延遲三個(gè)時(shí)鐘周期I5I6的“寫-寫”數(shù)據(jù)相關(guān):延遲一個(gè)時(shí)鐘周期(I6)I3I4的“先讀后寫”數(shù)據(jù)相關(guān):自然得到滿足I3I6的功能部件沖突(都是FMUL指令):自然得到滿足,方法二、順序發(fā)射亂序完成,圖5.75:順序發(fā)射亂序完成共需3個(gè)等待時(shí)鐘周期(比順序發(fā)射順序完成少5個(gè)等待時(shí)鐘周期)其中:2個(gè)等待時(shí)鐘周期用于I1I2和I5I6的“先寫后讀”數(shù)據(jù)相關(guān)(各一個(gè)等待時(shí)鐘周期(I2和I6);1個(gè)等待時(shí)鐘周期用于I2I4的功能部件沖突(都是FADD指令)總的執(zhí)行時(shí)間為9個(gè)時(shí)鐘周期,方法三、亂序發(fā)射亂序完成,需采用先行指令窗口(參見圖5.73)圖5.76:亂序發(fā)射亂序完成先行指令窗口除了能夠做數(shù)據(jù)相關(guān)性分析和功能部件沖突的檢測(cè)之外,還應(yīng)該至少有一套取指令部件和一套指令譯碼部件沒有等待時(shí)鐘周期,總的執(zhí)行時(shí)間為8個(gè)時(shí)鐘周期,亂序發(fā)射亂序完成:已在許多高性能超標(biāo)量處理機(jī)中采用需要:(1)、先行指令窗口(2)、一個(gè)比較簡(jiǎn)單的數(shù)據(jù)相關(guān)性分析部件和一個(gè)功能部件沖突的檢測(cè)機(jī)構(gòu)(3)、采用計(jì)分牌機(jī)制來(lái)表示數(shù)據(jù)相關(guān)性和功能部件的沖突(4)、通過優(yōu)化編譯器對(duì)指令序列進(jìn)行重組,5.3.1.4資源沖突,多個(gè)獨(dú)立的操作部件:ALU、FADD、MDU、GPU、LSU如果采用流水線結(jié)構(gòu),發(fā)生資源沖突的可能性很?。蝗绻徊捎昧魉€結(jié)構(gòu),發(fā)生資源沖突的可能性就大圖5.77:雙流水線超標(biāo)量處理機(jī),操作部件不采用流水線的時(shí)空?qǐng)D總共用了11個(gè)時(shí)種周期圖5.78:雙流水線超標(biāo)量處理機(jī),操作部件采用流水線的時(shí)空?qǐng)D總共用少了3個(gè)時(shí)種周期,要為每一個(gè)操作部件設(shè)置一個(gè)“忙”標(biāo)志觸發(fā)器每個(gè)周期發(fā)射m條指令,延遲時(shí)間為k個(gè)時(shí)鐘周期:不采用流水線結(jié)構(gòu),相差m*k每個(gè)周期發(fā)射m條指令,延遲時(shí)間為k個(gè)時(shí)鐘周期:采用k個(gè)功能段的流水線結(jié)構(gòu),相差m或m以上在單流水線的標(biāo)量處理機(jī)中,只有連續(xù)出現(xiàn)相同操作的指令序列時(shí),流水線才能不“斷流”,功能部件的效率才能得到充分發(fā)揮在超標(biāo)量處理機(jī)中,希望相同操作的指令不要連續(xù)出現(xiàn),否則會(huì)發(fā)生資源沖突,要求相同操作的指令能夠相對(duì)均勻地分布在程序中一般標(biāo)量程序具有這個(gè)特點(diǎn),5.3.1.5超標(biāo)量處理機(jī)性能,單流水線普通標(biāo)量處理機(jī):ILP=(1,1)超標(biāo)量處理機(jī):ILP=(m,1)超流水線處理機(jī):ILP=(1,n)超標(biāo)量超流水線處理機(jī):ILP=(m,n)單流水線普通標(biāo)量處理機(jī):執(zhí)行時(shí)間T(1,1)=(k+N-1)*t超標(biāo)量處理機(jī):執(zhí)行時(shí)間T(m,1)=k+(N-m)/m*t加速比:S(m,1)=T(1,1)/T(m,1)=m*(k+N-1)/N+m*(k-1)S(m,1)max=m,本講習(xí)題,P343:5.65.75.11,- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 計(jì)算機(jī)系統(tǒng) 結(jié)構(gòu) 第七
鏈接地址:http://www.szxfmmzy.com/p-3592741.html