




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第1章 計(jì)算機(jī)系統(tǒng)設(shè)計(jì)基礎(chǔ)第2章 數(shù)據(jù)表示與指令系統(tǒng)性能分析第3章 通道處理機(jī)第4章 流水技術(shù)和向量處理 第5章 陣列計(jì)算機(jī) 第6章 多處理機(jī)系統(tǒng)第7章 其它計(jì)算機(jī)結(jié)構(gòu)7/24/20221第4章 流水技術(shù)與向量處理 4.1 標(biāo)量流水工作原理4.2 標(biāo)量流水中的障礙及控制 4.3 流水線的調(diào)度技術(shù)4.4 先進(jìn)的流水技術(shù)4.5 Pentium微處理器中的流水技術(shù)4.6 向量流水技術(shù)7/24/20222本章學(xué)習(xí)要求掌握標(biāo)量流水的性能分析及障礙的處理方法掌握非線性流水調(diào)度技術(shù)掌握向量流水機(jī)的結(jié)構(gòu)特征、向量指令并行性分析了解標(biāo)量流水、超標(biāo)量流水、超流水及超長(zhǎng)指令字計(jì)算機(jī)的基本工作原理7/24/20223
2、提高指令執(zhí)行速度的主要途徑:(1) 提高處理機(jī)的工作主頻(2) 采用更好的算法和設(shè)計(jì)更好的功能部件(3) 采用指令級(jí)并行技術(shù)三種指令級(jí)并行處理機(jī):(1) 流水線處理機(jī)和超流水線(Super-pipelining)處理機(jī)(2) 超標(biāo)量(Superscalar)處理機(jī)(3) 超長(zhǎng)指令字(VLIW: Very Long Instruction Word)處理機(jī)7/24/202244.1 標(biāo)量流水工作原理什么是流水線?考慮設(shè)計(jì)一個(gè)洗衣機(jī)的工作流程,假定它有三道工序:洗滌、清洗、甩干。每個(gè)環(huán)節(jié)為5分鐘。需要完成的任務(wù)為3批,則考慮下述工作方式的工作效率:第一種:串行工作方式,即按照如下方式工作:第1批洗
3、滌第1批清洗第1批甩干第2批洗滌第2批清洗第2批甩干第3批洗滌第3批清洗第3批甩干3批衣服的整個(gè)工作時(shí)間為3*3*5=45分鐘7/24/20225第二種:重疊工作方式,設(shè)計(jì)三個(gè)部件,可以同時(shí)工作,每個(gè)部件只做一樣工作,操作方式如下圖:第1批洗滌第1批清洗第1批甩干第2批洗滌第2批清洗第2批甩干第3批洗滌第3批清洗第3批甩干Tttttt3批衣服的工作時(shí)間為5*5=25分鐘,節(jié)省20分鐘。7/24/20226引出下述關(guān)于洗衣機(jī)工作的有關(guān)性能特點(diǎn): 吞吐率:?jiǎn)挝粫r(shí)間內(nèi)完成的任務(wù)數(shù)TP=n/T 加速比:串行方式與流水線方式的時(shí)間比:上述為 45/25=1.8 效率:即洗衣機(jī)的利用率,上述洗衣機(jī)的效率是
4、9/15=3/5=60%將一條指令的執(zhí)行分為幾個(gè)階段,讓幾條指令按重疊或流水方式工作,以提高程序的執(zhí)行速度。這就引出了計(jì)算機(jī)中的流水線技術(shù)。7/24/20227指令的重疊解釋與先行控制計(jì)算機(jī)系統(tǒng)中廣泛存在著重疊工作方式指令的解釋方式一般只有三種:順序、重疊和流水重疊和流水給指令的執(zhí)行帶來(lái)了高的吞吐率和加速比,同時(shí)也給系統(tǒng)增加了障礙7/24/20228指令的解釋過(guò)程ALULOAD/STOREIF取指取指ID譯碼、讀寄存器堆譯碼、讀寄存器堆EX執(zhí)行計(jì)算訪存有效地址MEM-訪存(讀或?qū)懀¦B結(jié)果寫(xiě)回寄存器堆將讀出的數(shù)據(jù)寫(xiě)入寄存器堆7/24/20229一、指令的重疊解釋方式1、順序執(zhí)行方式 一條指令的
5、執(zhí)行過(guò)程:取指令-分析-執(zhí)行執(zhí)行n條指令所用的時(shí)間為: 如每段時(shí)間都為t,則執(zhí)行n條指令所用的時(shí)間為:T=3nt主要優(yōu)點(diǎn):控制簡(jiǎn)單,節(jié)省設(shè)備。主要缺點(diǎn):執(zhí)行指令的速度慢,功能部件的利用率很低。取指令k分析k執(zhí)行k取指令k+1分析k+1執(zhí)行k+17/24/202210 2、重疊執(zhí)行方式(最簡(jiǎn)單的流水線方式) 如果每個(gè)過(guò)程的時(shí)間相等,則執(zhí)行n條指令的時(shí)間為:T=(1+2n)t 主要優(yōu)點(diǎn): 指令的執(zhí)行時(shí)間縮短 功能部件的利用率明顯提高 主要缺點(diǎn): 需要增加一個(gè)IBR取指分析執(zhí)行取指分析執(zhí)行取指分析執(zhí)行7/24/2022113、更高重疊度的重疊解釋方式把取第k+1條指令提前到分析第k條指令同時(shí)執(zhí)行如果
6、三個(gè)過(guò)程的時(shí)間相等,執(zhí)行n條指令的時(shí)間為:T=(2+n)t理想情況下同時(shí)有三條指令在執(zhí)行處理機(jī)的結(jié)構(gòu)要作比較大的改變,必須采用先行控制方式取指k+2分析k+2執(zhí)行k+2取指k+1分析k+1執(zhí)行k+1取指k分析k執(zhí)行k7/24/2022121訪存沖突 分析與取指均要訪問(wèn)主存 解決: 1)采用兩個(gè)獨(dú)立編制的存貯器 數(shù)據(jù)/指令 但增加了復(fù)雜性 2)采用多體交叉存貯器 3)指令緩沖寄存器2功能部件的沖突 解決:設(shè)置獨(dú)立的分析部件和執(zhí)行部件 重疊方式對(duì)計(jì)算機(jī)組成的要求7/24/2022133同步 分析與執(zhí)行所需的時(shí)間不同,要求的是一次重疊 一次重疊:任何時(shí)間都是“分析K+1”與“執(zhí)行K”的重疊 =相鄰兩
7、條指令的重疊分析K執(zhí)行K分析K+1執(zhí)行K+1T=(n+1)t7/24/2022144轉(zhuǎn)移 無(wú)條件轉(zhuǎn)移/條件轉(zhuǎn)移當(dāng)轉(zhuǎn)移成功時(shí),重疊預(yù)取無(wú)效,變?yōu)轫樞驁?zhí)行 應(yīng)盡可能不使用或少使用條件轉(zhuǎn)移指令5相關(guān) 鄰近指令之間出現(xiàn)某種關(guān)聯(lián),為避免出錯(cuò)而不能同時(shí)執(zhí)行的現(xiàn)象。 局部性相關(guān)、全局性相關(guān)7/24/2022157/24/202216先行控制技術(shù)基本思想:使分析和執(zhí)行部件分別連續(xù)不斷地運(yùn)行,使部件空閑狀態(tài)減至最低。(a)重疊方式分析k+1分析k執(zhí)行k執(zhí)行k+1分析k+2執(zhí)行k+2分析部件空閑執(zhí)行部件空閑分析k+1分析k執(zhí)行k分析k+2(b)先行控制執(zhí)行k+1執(zhí)行k+27/24/202217關(guān)鍵:緩沖技術(shù)預(yù)處理
8、技術(shù)緩沖技術(shù):在工作速度不固定的兩個(gè)功能部件之間設(shè)置緩沖棧,用以平滑它們的工作預(yù)處理技術(shù):把進(jìn)入運(yùn)算器的指令都預(yù)處理成R-R型指令,與緩沖技術(shù)相結(jié)合,為進(jìn)入運(yùn)算器的指令準(zhǔn)備好所需的全部操作數(shù)先行控制方式使運(yùn)算器可專(zhuān)注于運(yùn)算,從而可大幅度提高程序的執(zhí)行速度 硬件要求:增設(shè)指令緩沖棧,消除取指過(guò)程;增設(shè)數(shù)據(jù)緩沖棧,保證不同指令的讀、寫(xiě)操作并行;增設(shè)先行操作棧,保證執(zhí)行部件能連續(xù)執(zhí)行。7/24/202218工作原理主 存存 控指令分析器 先行指令棧先行讀數(shù)棧后行寫(xiě)數(shù)棧執(zhí)行部件先行操作棧數(shù)據(jù)緩沖棧 棧的深度要求:D指緩D操作 D讀棧 D寫(xiě)棧7/24/202219二、標(biāo)量流水工作原理基本思想:流水是重疊
9、的進(jìn)一步延伸,使指令解釋過(guò)程進(jìn)一步細(xì)化,提高各部件的利用率,以提高指令執(zhí)行速度。流水線的表示方法:連接圖、時(shí)空?qǐng)D、預(yù)約表7/24/2022201、簡(jiǎn)單流水線的連接圖表示 流水線的每一個(gè)階段稱(chēng)為流水段、流水線階段、流水功能段、功能段、流水級(jí)、流水節(jié)拍等。一個(gè)流水階段與另一個(gè)流水階段相連形成流水線。 有些復(fù)雜指令,在執(zhí)行階段也采用流水線方式工作,稱(chēng)為操作流水線。取指訪存執(zhí)行譯碼寫(xiě)回IFIDEXMEMWBS1S2S3S4S5輸入輸出7/24/202221 一種指令流水線一般4至12個(gè)流水段,等于及大于8個(gè)流水段的稱(chēng)為超流水線處理機(jī)2、流水線的時(shí)空?qǐng)D采用“時(shí)空?qǐng)D”表示流水線的工作過(guò)程。一條簡(jiǎn)單流水線的
10、時(shí)空?qǐng)D:取指形成操作數(shù)地址譯碼取操作數(shù)執(zhí)行保存結(jié)果7/24/202222一個(gè)浮點(diǎn)加法器流水線的時(shí)空?qǐng)D(由求階差、對(duì)階、尾數(shù)加和規(guī)格化4個(gè)流水段組成):ED1時(shí)間空間0t1t2t3t4t5ED2ED3ED4ED5EA1EA2EA3EA4EA5MA1MA2MA3MA4MA5NL1NL2NL3NL4NL5t6t7t8NL:規(guī)格化MA:尾數(shù)加EA:對(duì)階ED:求階差EDEAMANLmt7/24/2022233、流水線的預(yù)約表 時(shí)間流水段1234567S1XXXS2XXS3XXS4X7/24/202224三、流水線工作方式取指訪存執(zhí)行譯碼寫(xiě)回IFIDEXMEMWBS1S2S3S4S5輸入輸出指令的流水處理
11、 流水線的基本結(jié)構(gòu)中主要包括三大部分:鎖存器、時(shí)鐘、功能段。 流水線中每個(gè)段都是由一些執(zhí)行算術(shù)和邏輯功能的組合邏輯線路組成的,它們可以互相獨(dú)立地對(duì)流過(guò)的信息進(jìn)行某種操作,相鄰兩站由高速鎖存器(latch)隔開(kāi),信息在各段間的流動(dòng)靠同時(shí)送到各站的時(shí)鐘信號(hào)來(lái)控制。1、流水線的結(jié)構(gòu)7/24/202225S1S2Sm輸入 輸出流水線的基本結(jié)構(gòu).時(shí)鐘7/24/202226121321nn-1.43215432.543.54.5nn-1.n-1.nn-1n1234t0 t0 t0 t0T0=m t0n t0T(m-1) t0(n-1) t0填入 正常 排空 流水時(shí)空?qǐng)D空間時(shí)間建立時(shí)間、正常流動(dòng)時(shí)間、排空時(shí)
12、間。2、流水線工作的三個(gè)時(shí)間7/24/2022273、流水線的分級(jí)、分類(lèi)分級(jí):(處理的級(jí)別分類(lèi)) 部件級(jí)(操作流水線):將復(fù)雜的算邏運(yùn)算組成流水工作方式;指令級(jí):把一條指令解釋過(guò)程分成多個(gè)子過(guò)程 ;處理機(jī)級(jí):每個(gè)處理機(jī)完成某一專(zhuān)門(mén)任務(wù),各個(gè)處理機(jī)所得到的結(jié)果需存放在與下一個(gè)處理機(jī)所共享的存儲(chǔ)器中 7/24/202228其他分類(lèi): 功能:?jiǎn)喂δ芰魉€(如CRAY-1)、多功能流水線(如TI-ASC) 工作方式:靜態(tài)流水線、動(dòng)態(tài)流水線 連接方式:線性、非線性 處理數(shù)據(jù):標(biāo)量流水、向量流水1234出入非線性流水線7/24/2022291)ASC算術(shù)運(yùn)算流水線(多功能)輸入減階對(duì)階移位相加規(guī)格化相乘累
13、加輸出123456784、流水線舉例輸入減階對(duì)階移位相加規(guī)格化輸出123458加輸入相乘累加輸出1678乘7/24/202230.1234.n-1n.1234.n-1n.1234.n-1n.1234.n-1n12345867.1234.n-1n.1234.n-1n時(shí)間空間(段號(hào))加法一二三四二三一二一一乘法.靜態(tài)多功能流水線時(shí)-空?qǐng)D靜態(tài)流水線:只有當(dāng)進(jìn)入的是一串相同運(yùn)算的指令時(shí),流水的效能才得以發(fā)揮,才能使各個(gè)功能段并行地對(duì)多條指令的數(shù)據(jù)進(jìn)行流水處理。 7/24/202231區(qū)別:如果從軟硬功能分配的觀點(diǎn)上來(lái)看,靜態(tài)流水線其實(shí)是把功能負(fù)擔(dān)較多地加到軟件上,以簡(jiǎn)化硬件;動(dòng)態(tài)流水線則是把功能負(fù)擔(dān)較
14、多地加在硬件上,以提高流水的效能。.12345.n-1n.12345.n-1n.12345.n-1n.12345.n-1n12345867.12345.n-1n.12345.n-1n時(shí)間加法乘法一二三四五六一二三四五六七一二三四五一二三四動(dòng)態(tài)多功能流水線時(shí)-空?qǐng)Dm7/24/202232四、標(biāo)量流水線性能分析衡量流水線處理機(jī)的性能主要是吞吐率、加速比和效率。 1吞吐率:?jiǎn)挝粫r(shí)間內(nèi)能處理的指令條數(shù)或能輸出的數(shù)據(jù)量。吞吐率越高,計(jì)算機(jī)系統(tǒng)的處理能力就越強(qiáng)。就流水線而言,吞吐率就是單位時(shí)間內(nèi)能流出的任務(wù)數(shù)或能流出的結(jié)果數(shù)。最大吞吐率:流水線達(dá)到穩(wěn)定狀態(tài)后可獲得的吞吐率。(1)Tpmax=1/t (2)
15、TPmax=1/ maxt1,t2,t3,t4 “瓶頸”子過(guò)程: 1234t t 3t t 7/24/202233子過(guò)程3為瓶頸段的時(shí)空?qǐng)D最大吞吐率TPmax=1/3t mTS1S2S3S4t1t2t3t4t5t6t7t8t9t10t12t13t14t151234t11123412341234輸出7/24/202234131232334 2 1 4 3a 3b 3c 333瓶頸段細(xì)分重復(fù)設(shè)置瓶頸流水段解決瓶頸有兩種方法A:B:7/24/202235T重復(fù)設(shè)置瓶頸流水段后的工作時(shí)空?qǐng)DmS1S2S3aS3cS3bS412354678910111212354678910111214710258113
16、6912123546789101112t1t12t177/24/202236實(shí)際吞吐率(1)完成n條指令的解釋共需時(shí)間 可以看出不僅實(shí)際的吞吐率總是小于最大的吞吐率,而且只有當(dāng)nm時(shí),實(shí)際的吞吐率才能接近于理想的最大吞吐率。(2)各功能段時(shí)間不相等7/24/2022372.效率:設(shè)備的利用率,直接反映了處理機(jī)結(jié)構(gòu)有效程度。流水線有建立時(shí)間、排空時(shí)間,不總是滿(mǎn)負(fù)載工作。各段時(shí)間相等:各段時(shí)間不等:7/24/202238各段時(shí)間相等:各段時(shí)間不等:加速比:M段流水線的速度與等效的非流水線的速度之比。7/24/202239K=6K=10任務(wù)個(gè)數(shù)加速比10246811248163264128因?yàn)橐虼耍?/p>
17、E=TP t ,S=kE流水線的吞吐率、加速比與效率的關(guān)系7/24/202240例1. 有一四段線性流水線,每功能段延時(shí)時(shí)間分別是: t1=t3=t4=t, t2=3t?,F(xiàn)在這個(gè)流水線上分別執(zhí)行4個(gè)任務(wù)和40個(gè)任務(wù)。求實(shí)際吞吐率、效率和加速比。解法一:時(shí)空?qǐng)D分析法時(shí)間12343111223234123123123444443t3t空間157/24/202241Tp=4/(15t)E=24 t /(4*15t)=40%Sp=4*6 t /15t=1.6完成4個(gè)任務(wù)時(shí):完成40個(gè)任務(wù)時(shí),如何畫(huà)時(shí)空?qǐng)D呢?方法二,公式分析法。當(dāng)流水線中各功能段的執(zhí)行時(shí)間不相等時(shí),有7/24/2022427/24/20
18、2243例2、以浮點(diǎn)加法運(yùn)算為例(四段)各段時(shí)間相等,求Z=A+B+C+D+E+F+G+H的TP、E、Sp。 時(shí)間空間Z=A+B+C+D+E+F+G+H1234567TP=7/15tE=7*4/(15*4)=7/15Sp=4*7/15=28/15=1.871111222233334444555566667777157/24/202244例3. ASC計(jì)算機(jī)功能算術(shù)運(yùn)算流水線各段時(shí)間相等,6次浮點(diǎn)加、 5次定點(diǎn)乘的吞吐率、效率和加速比。 1,2,3,4,5,8組成加法流水1,6,7,8組成乘法流水12345678對(duì)階減階輸出相加規(guī)格化相乘累加輸入ASC計(jì)算機(jī)的流水線7/24/202245分析:T
19、加=6+(6-1)*1=11 T乘=4+(5-1)*1=8 TP= 11/(11+8)t =11/19 tE= (6*6+5*4) t /(19*8t)=11.54%Sp= 56 t /19 t =2.9412345612345612345612345612345867123456123456時(shí)間浮加定點(diǎn)乘一二三四五一二三四五一二三四五一二三四五7/24/2022464.2 標(biāo)量流水中的障礙及控制保持流水線性能條件:不能停頓或斷流。影響流水線性能因素:相關(guān)和功能切換。相關(guān)類(lèi)型:全局相關(guān):轉(zhuǎn)移指令引起的相關(guān)結(jié)果:流水線斷流,流水線中后續(xù)指令全部作廢。局部相關(guān):資源或結(jié)構(gòu)相關(guān);指令相關(guān);數(shù)據(jù)相關(guān)。
20、結(jié)果:流水線停頓,流水線中后續(xù)指令有效。7/24/202247一、資源相關(guān)資源相關(guān):功能部件、主存資源當(dāng)有多條指令進(jìn)入流水線后在同一機(jī)器周期內(nèi)爭(zhēng)用同一功能部件所引起的相關(guān)(沖突)當(dāng)有多條指令進(jìn)入流水線后在同一機(jī)器周期內(nèi)同時(shí)訪問(wèn)主存資源7/24/202248例1:兩條指令同時(shí)要用一個(gè)加法器ALULOAD/STOREIF取指取指ID譯碼、讀寄存器堆譯碼、讀寄存器堆EX執(zhí)行計(jì)算訪存有效地址MEM-訪存(讀或?qū)懀¦B結(jié)果寫(xiě)回寄存器堆將讀出的數(shù)據(jù)寫(xiě)入寄存器堆指 令流水段不同類(lèi)型指令中各流水段進(jìn)行的操作7/24/202249兩條指令同時(shí)訪存造成資源相關(guān)MEMEXIDIF指令i+4WBMEMEXIDIF指令
21、i+3WBMEMEXIDIF指令i+2WBMEMEXIDIF指令i+1WBMEMEXIDIFLoad指令87654321 時(shí)鐘指令沖突取指 譯碼 執(zhí)行 訪存 寫(xiě)回例2:7/24/202250EXIDIF指令i+4MEM EXIDIF停頓指令i+3WBMEMEXIDIF指令i+2WBMEMEXIDIF指令i+1WBMEMEXIDIFLoad指令87654321 時(shí)鐘指令9WBMEM使i+3指令停頓一拍進(jìn)入流水線,以解決訪存相關(guān);或重復(fù)設(shè)置一個(gè)存儲(chǔ)器;采用先行控制技術(shù)解決方法:7/24/202251二、指令相關(guān)后續(xù)指令的內(nèi)容取決于當(dāng)前指令執(zhí)行的結(jié)果,即指令允許修改引起的相關(guān)解決相關(guān):不準(zhǔn)修改指令、
22、變指令相關(guān)為數(shù)據(jù)相關(guān)EXR1D2B2X2IBM370中的“執(zhí)行”指令7/24/202252三、數(shù)據(jù)相關(guān)由于流水線中的各條指令間的重疊解釋?zhuān)沟迷瓉?lái)對(duì)操作數(shù)的訪問(wèn)順序發(fā)生了變化,從而導(dǎo)致了數(shù)據(jù)之間的相關(guān)。這種相關(guān)有三類(lèi):先寫(xiě)后讀(改用相關(guān)) 、先讀后寫(xiě)(用改相關(guān)) 、寫(xiě)寫(xiě)相關(guān)(改改相關(guān)) 。設(shè)有i 和j兩條指令,i指令在前,j指令在后,則三種不同類(lèi)型的數(shù)據(jù)相關(guān)的含義為:7/24/202253 RAW讀寫(xiě)(先寫(xiě)后讀) - 指令 j 試圖在指令 i 寫(xiě)入寄存器前就讀出該寄存器內(nèi)容,這樣,指令j就會(huì)錯(cuò)誤地讀出該寄存器舊的內(nèi)容。 i: R1+R2-R3 j: R3*R4-R5 WAR寫(xiě)讀(先讀后寫(xiě)) -
23、 指令 j 試圖在指令 i讀出寄存器之前就寫(xiě)入該寄存器,這樣,指令i就錯(cuò)誤地讀得該寄存器新的內(nèi)容。 i: R3*R4-R5 j: R1+R2-R3 WAW寫(xiě)寫(xiě)(先寫(xiě)后寫(xiě)) - 指令j試圖在指令i寫(xiě)寄存器之前就寫(xiě)入該寄存器,這樣,兩次寫(xiě)的先后次序被顛倒,就會(huì)錯(cuò)誤地使由指令i寫(xiě)入的值成為該寄存器內(nèi)容。 i: R1*R2-R3 j: R4+R5-R37/24/202254解決數(shù)據(jù)相關(guān)的辦法用軟件和硬件技術(shù):時(shí)間推后法旁路技術(shù)或相關(guān)專(zhuān)用通路技術(shù)例: n : load A IF ID EX WR n+1: load B IF ID EX WR n+2: add A,B IF ID 氣泡 EX WR n+
24、3: store C IF ID 氣泡 EX WR n+4 : jump K IF ID EX WR n+5: load E 停頓 停頓 停頓。 n+6 停頓。 K: IF ID EX 例中有資源相關(guān)、有控制轉(zhuǎn)移相關(guān),這將影響流水線的性能。7/24/202255IF ID EX MEM WB IF ID EX WB IF ID EX WB IF ID EX WB IF ID EX WB ADD R1,R2,R3SUB R4,R1,R5AND R6,R1,R7OR R8,R1,R9XOR R10,R1,R11定向傳遞R1值數(shù)據(jù)相關(guān)和定向傳遞指令寫(xiě)R1完成MEM MEM MEM MEM 7/24/
25、202256ALU運(yùn)算結(jié)果寫(xiě)RF RF讀RFALU操作數(shù)寄存器專(zhuān)用通路(旁路)旁路RFALUBufferMultMult7/24/202257四、全局性相關(guān)由轉(zhuǎn)移指令(條件/無(wú)條件)引起的相關(guān)轉(zhuǎn)移指令在程序中所占比例約為20-25%,不可忽視解決這種相關(guān)的方法:猜測(cè)法、加快和提前形成條件碼、加快短循環(huán)程序的處理、采用延遲轉(zhuǎn)移技術(shù)7/24/2022581、猜測(cè)法:選取發(fā)生概率較高的分支為猜測(cè)方向,若猜對(duì),繼續(xù)執(zhí)行;否則,作廢猜測(cè)方向的執(zhí)行,返回實(shí)際轉(zhuǎn)移處。(1)如何提高猜測(cè)命中率 靜態(tài)猜測(cè)法:猜測(cè)不成功方向。由程序員和編譯程序把發(fā)生概率高的分支安排在猜測(cè)方向。 動(dòng)態(tài)猜測(cè)法:根據(jù)轉(zhuǎn)移歷史猜測(cè)。I-
26、1I-2I+4I+1I+2I+3 I K+3K+2K+1 k branch成功不成功7/24/202259轉(zhuǎn)移目標(biāo)緩沖器(BTB) 利用BTB(Branch Target Buffer)硬件,動(dòng)態(tài)地預(yù)測(cè)轉(zhuǎn)移方向轉(zhuǎn)移指令地址轉(zhuǎn)移目標(biāo)地址狀態(tài)欲取指令的PC查找預(yù)測(cè)PC值=按正常順序執(zhí)行NY7/24/202260轉(zhuǎn)移預(yù)測(cè)原理:用2位二進(jìn)制數(shù)記錄實(shí)際轉(zhuǎn)移狀態(tài)(歷史位),高位為1時(shí)預(yù)測(cè)轉(zhuǎn)移發(fā)生,高位為0時(shí)預(yù)測(cè)轉(zhuǎn)移不發(fā)生。注意:初始狀態(tài)、狀態(tài)修改、猜測(cè)方向表示預(yù)測(cè)發(fā)生11預(yù)測(cè)發(fā)生10預(yù)測(cè)不發(fā)生01預(yù)測(cè)不發(fā)生00轉(zhuǎn)移1不轉(zhuǎn)移0不轉(zhuǎn)移0不轉(zhuǎn)移0轉(zhuǎn)移1轉(zhuǎn)移1轉(zhuǎn)移1不轉(zhuǎn)移07/24/202261(2)猜測(cè)的后續(xù)處
27、理 分支現(xiàn)場(chǎng)的保護(hù)及恢復(fù): 猜測(cè)執(zhí)行只完成譯碼、取操作數(shù)或執(zhí)行但不寫(xiě)結(jié)果; 采用后援寄存器保存可能被破壞的狀態(tài)。 預(yù)防猜不中時(shí)的加速處理: 預(yù)取猜測(cè)方向的另一方向的前幾條指令,放到緩沖器中,加速猜不中時(shí)回頭速度。I-1I-2I+4I+1I+2I+3 I K+3K+2K+1 k branch成功不成功7/24/2022622、加快和提前形成條件碼單條指令的條件碼并不一定要等執(zhí)行完成得到運(yùn)算結(jié)果后才能形成循環(huán)程序判斷的提前形成 3、優(yōu)化延遲轉(zhuǎn)移技術(shù) a.將轉(zhuǎn)移指令前的那條指令調(diào)度到延遲槽中; b.將轉(zhuǎn)移目標(biāo)處的那條指令調(diào)度到延遲槽中; c.將轉(zhuǎn)移不發(fā)生時(shí)該執(zhí)行的那條指令調(diào)度到延遲槽中。4、加快短循
28、環(huán)處理7/24/202263五、流水線中的中斷處理流水機(jī)器處理中斷的關(guān)鍵不在于如何縮短斷流時(shí)間,而是如何處理好斷點(diǎn)現(xiàn)場(chǎng)及中斷后的恢復(fù)問(wèn)題不精確斷點(diǎn)法:不論第i條指令在流水線的哪一段發(fā)出中斷申請(qǐng),都不再允許那時(shí)還未進(jìn)入流水線的后續(xù)指令再進(jìn)入。斷點(diǎn)就是最后進(jìn)入流水線的那條指令7/24/202264S1S8S7S6S5S4S3S2輸入輸出i+5ii-1i+1i+2i+3i+4i-2PC:不精確斷點(diǎn)申請(qǐng)中斷精確斷點(diǎn)特點(diǎn):硬件開(kāi)銷(xiāo)小,控制簡(jiǎn)單,適用于常規(guī)的I/O操作。7/24/202265 精確斷點(diǎn)法:不論第i條指令是在流水線中哪一段發(fā)出的中斷申請(qǐng),給中斷處理程序的現(xiàn)場(chǎng)全都是對(duì)應(yīng)第i條的。適用于程序性錯(cuò)
29、誤和機(jī)器故障等產(chǎn)生的中斷精確斷點(diǎn)法中對(duì)原有現(xiàn)場(chǎng)的恢復(fù),要增加后援寄存器,以保留各功能段狀態(tài)i: FADD R1, R2 ;(R1)+(R2) R1i+1: FMUL R3,R1 ;(R3)*(R1) R3S6:加法結(jié)果溢出精確斷點(diǎn)法有利于程序調(diào)試7/24/202266例4 在一條單流水線處理機(jī)上執(zhí)行下面的程序。每條指令都要經(jīng)過(guò)“取指”,“譯碼”,“執(zhí)行”和“寫(xiě)結(jié)果”4個(gè)流水段。每個(gè)流水段的延遲時(shí)間都是5ns。 在“執(zhí)行”流水段,LS部件完成LOAD或STORE操作,其它操作都在ALU部件中完成,兩個(gè)操作部件的輸出端有直接數(shù)據(jù)通路與任一操作部件的輸入端相連,ALU部件產(chǎn)生的條件碼也能夠直接送入控
30、制器。7/24/202267 1: SUB R0, R0 ;R00 2: LOAD R1,#8 ;向量長(zhǎng)度8 3:LOOP:LOAD R2,A ;R2 A向量的一個(gè)元素 4: MUL R2,R1 ;R2 (R2)*(R1) 5: ADD R0,R2 ;R0 (R0)+(R2) 6: DJNE R1,LOOP;R1 (R1)-1若(R1)0則轉(zhuǎn) 7: STORE R0,S ;保存結(jié)果(1)采用靜態(tài)分支預(yù)測(cè)技術(shù),每次都預(yù)測(cè)轉(zhuǎn)移不成功。畫(huà)出指令流水線的時(shí)空?qǐng)D。計(jì)算流水線的吞吐率和加速比。并分別計(jì)算出譯碼部件和ALU部件的使用效率。(2)采用靜態(tài)分支預(yù)測(cè)技術(shù),每次都預(yù)測(cè)轉(zhuǎn)移成功。計(jì)算指令流水線的吞吐率
31、和加速比。并分別計(jì)算出譯碼部件和ALU部件的使用效率。7/24/20226852112112322333454445556666取指寫(xiě)回ALULS譯碼3333444455556666333344445555666633334444555566667777.重復(fù)8次m(1)解:每次預(yù)測(cè)轉(zhuǎn)移不成功,流水線時(shí)空?qǐng)D如下:7/24/202269112112322333454445556666取指寫(xiě)回ALULS譯碼333344445555666633334444555566667777.重復(fù)8次m(2)解:每次預(yù)測(cè)轉(zhuǎn)移成功,流水線時(shí)空?qǐng)D如下:7/24/2022704.3 流水線的調(diào)度技術(shù)靜態(tài)調(diào)度:借助軟件
32、對(duì)指令執(zhí)行順序進(jìn)行調(diào)度,以減少由于流水線中存在相關(guān)沖突而引起流水線的停頓時(shí)間。動(dòng)態(tài)調(diào)度:通過(guò)硬件重新安排指令的執(zhí)行順序以減少流水的停頓。有集中式和分布式兩種。7/24/202271一、靜態(tài)調(diào)度技術(shù)靜態(tài)調(diào)度:借助軟件對(duì)指令執(zhí)行順序進(jìn)行調(diào)度,以減少由于流水線中存在相關(guān)沖突而引起流水線的停頓時(shí)間。非線性流水線中存在著前(反)饋回路,必然會(huì)引起功能段的沖突而發(fā)生流水線停頓。調(diào)度方法會(huì)減少停頓時(shí)間。調(diào)度方案是基于二維預(yù)約表和狀態(tài)圖來(lái)進(jìn)行分析7/24/202272非線性流水線的連接圖 時(shí)間流水段1234567S1XXXS2XXS3XXS4X非線性流水線的預(yù)約表S1S2S3S4輸出輸入反饋線7/24/202
33、273某流水線結(jié)構(gòu)如下:非線性流水線調(diào)度舉例 S1S2S3S4S5入出 流水線調(diào)度方案如下:7/24/202274(1)形成預(yù)約表指令總拍數(shù)為n,流水線有k個(gè)段,則形成nk的預(yù)約表,段的使用情況用“”表示。 預(yù)約表如下:543 2198765438271tS7/24/202275(2)由預(yù)約表形成禁止表FF=各段中沖突間隔拍數(shù) -功能段1的禁止間隔拍數(shù)為8; -功能段2的禁止間隔拍數(shù)為5和6; -功能段3的無(wú)禁止間隔拍數(shù); -功能段4的禁止間隔拍數(shù)為1; -功能段5的禁止間隔拍數(shù)為1。 F=1,5,6,8(3)由禁止表F形成初始沖突向量C0C0 =(10110001), ci=1沖突,0不沖突
34、。 7/24/202276(4)由初始沖突向量C0形成狀態(tài)轉(zhuǎn)換圖a. 取C0分別間隔2、3、4、7拍,且將C0分別邏輯右移2、3、4、7位,高位補(bǔ)0后再與C0按位“或”,形成新的沖突向量C1 、C2 和C3 ;10110001101101111011110110111011初始狀態(tài)3427C0C1C2C37/24/202277b. 再分別取C1間隔2、7拍;取C2間隔4、7拍;取C3間隔3、7拍。方法同上,直至全部完成。 注意:向量Ci右移后,總是與原始向量C0作邏輯加。1011000110110111101111011011101110111111初始狀態(tài)34422777C0C1C2C3C4
35、777/24/202278(5)根據(jù)狀態(tài)圖寫(xiě)出調(diào)度方案 每一個(gè)閉合回路就是一個(gè)調(diào)度方案(策略)1011000110110111101111011011101110111111初始狀態(tài)34422777C0C1C2C3C47737/24/202279本例中調(diào)度方案如下:調(diào)度策略平均間隔拍數(shù)調(diào)度策略平均間隔拍數(shù)(2, 7)4.50(4, 3)3.50(2, 2, 7)3.67(4, 3, 7)4.67(3, 4)3.50(4, 7)5.00(3, 7)5.00(7)7.00(3, 4, 7)4.67 平均延時(shí)最小的調(diào)度方案為最佳調(diào)度方案,本例為(3,4)和(4,3)。 對(duì)非C0開(kāi)始的調(diào)度方案由流水線
36、控制器完成控制的過(guò)渡。7/24/202280調(diào)度方案的驗(yàn)證原理:二維預(yù)約表方法:給定任務(wù)數(shù),使用每一種可能的調(diào)度方案進(jìn)行調(diào)度驗(yàn)證:調(diào)度過(guò)程中有無(wú)功能段的沖突?7/24/202281123456789101112131415S1S2S3S4S5例如,按(3,4)調(diào)度方案,連續(xù)輸入3個(gè)任務(wù)的調(diào)度過(guò)程如下:7/24/202282按(4,3)調(diào)度方案連續(xù)輸入6個(gè)任務(wù)的時(shí)空?qǐng)DS1S2S3S4S5mt7/24/202283性能分析設(shè)共輸入8個(gè)任務(wù),按最佳調(diào)度方案(平均時(shí)延最小3.5拍)(3,4)進(jìn)行調(diào)度,計(jì)算流水調(diào)度的最大和實(shí)際吞吐率7/24/202284例5 設(shè)有一4段流水線處理機(jī)如下圖所示。此流水線的
37、總值時(shí)間為6個(gè)時(shí)鐘周期,所有相繼段必須在每個(gè)時(shí)鐘周期之后才能使用。(1)列出這一流水線的4行6列的預(yù)約表;(2)列出禁止表和畫(huà)出狀態(tài)圖;(3)求出平均延遲最小的調(diào)度方案和最大吞吐率。S1S2S3S4輸出輸入7/24/202285功能段123456S1S2S3S4解法一:4行6列的預(yù)約表(一)禁止表的原始沖突向量為:F=4,C=(1000)7/24/20228610001100111011111010100110111101111212333223解法一的狀態(tài)轉(zhuǎn)移圖平均延遲最小的調(diào)度方案是:(1,2,3,2)。最小平均延遲是:2t。最大吞吐率是:TPmax=1/2t。7/24/202287功能段
38、123456S1S2S3S4解法二:4行6列的預(yù)約表(二)禁止表的原始沖突向量為:F=2,4,C=(1010)7/24/20228810101111101113355解法二的狀態(tài)轉(zhuǎn)移圖平均延遲最小的調(diào)度方案是:(3)。最小平均延遲是:3t。最大吞吐率是:TPmax=1/3t。7/24/202289二、動(dòng)態(tài)調(diào)度技術(shù)動(dòng)態(tài)調(diào)度:通過(guò)硬件重新安排指令的執(zhí)行順序以減少流水的停頓。有集中式和分布式優(yōu)點(diǎn): (1)能處理某些在編譯時(shí)無(wú)法知道的相關(guān)情況 (2)能簡(jiǎn)化編譯程序設(shè)計(jì) (3)使代碼有可移植性缺點(diǎn):相應(yīng)的硬件較為復(fù)雜。7/24/2022901、集中式動(dòng)態(tài)調(diào)度靜態(tài)調(diào)度中的指令是按序( In-order )
39、執(zhí)行,如果一條指令在流水線中發(fā)生停頓,后續(xù)指令就不再前進(jìn)了動(dòng)態(tài)調(diào)度可使指令按無(wú)序( Out-order )方式工作集中式動(dòng)態(tài)調(diào)度:依靠硬件在程序運(yùn)行過(guò)程中對(duì)可能出現(xiàn)的相關(guān)情況加以檢測(cè),從而保證流水線中的各個(gè)功能部件能最大限度地重疊工作7/24/202291EX MEMWB 集中式動(dòng)態(tài)調(diào)度IF ID整數(shù)部分浮點(diǎn)加浮點(diǎn)乘浮點(diǎn)除RF記錄控制器指令控制/狀態(tài)控制/狀態(tài)狀態(tài)記錄控制器(記分牌)記錄與控制在流水線的EX段開(kāi)始。7/24/202292檢測(cè)功能:功能部件(資源)沖突; 源、目的REG引起的RAW、WAR、WAW相關(guān)。控制功能:有沖突或相關(guān)的指令推后進(jìn)入流水線的執(zhí)行部件,否則正常指令進(jìn)入流水線的
40、執(zhí)行部件;記錄功能部件、REG、指令的狀態(tài);根據(jù)記錄的狀態(tài),控制后續(xù)指令的進(jìn)入。7/24/2022932、分布式動(dòng)態(tài)調(diào)度 此方法是由Tomasulo于1967年提出來(lái)的,已在IBM360/91機(jī)中采用。IBM360/91的浮點(diǎn)運(yùn)算器主要部件:(1)運(yùn)算部件:一個(gè)加法部件和一個(gè)乘除部件。(2)保存站:加法部件中有A1A3三個(gè)保存站,乘除部件有M1和M2兩個(gè)保存站,用來(lái)保存當(dāng)前參加運(yùn)算的數(shù)據(jù)。7/24/202294(3) 指令操作緩沖棧:存放經(jīng)分析后由指令部件送來(lái)的指令,譯碼后, 產(chǎn)生相應(yīng)的控制信號(hào)送到各個(gè)部件。(4)浮點(diǎn)操作數(shù)寄存器(FLB):存放由主存預(yù)取來(lái)的操作數(shù)。(5)浮點(diǎn)寄存器(FLR)
41、:存放操作數(shù)的寄存器。(6)存儲(chǔ)數(shù)據(jù)緩沖站(SDB):存放將寫(xiě)入存儲(chǔ)器的結(jié)果數(shù)據(jù),也有站號(hào)。(7)公共數(shù)據(jù)總線(CDB):以上各部件間的連接總線。7/24/202295浮點(diǎn)操作數(shù)緩沖器(FLB)控浮點(diǎn)操作棧(FLOS)忙制位站號(hào)源1控制站號(hào)源2站號(hào)源1站號(hào)源2控制控制號(hào)站存數(shù)緩沖器(SDB)加法器乘/ 除法器譯碼器站號(hào)浮點(diǎn)寄存器(FLR)M1M2A1A2A3101010111100FLB 總線FLR總線10001001CDB公共數(shù)據(jù)總線指令處理部件存儲(chǔ)器總線654321站號(hào): 01100001F76543F21F0保存站 IBM360/91的浮點(diǎn)運(yùn)算部件結(jié)構(gòu)框圖7/24/202296S1:(F
42、LB1)F0S2: (F0)*(FLB2)F0S3: (F0) AS4: (FLB3)F0S5: (F0)+(FLB4)F0;F0站號(hào)置為0001;F0置忙位為1,M1源1為0001,源2為0010,F(xiàn)0站號(hào)為1000;C1站號(hào)置1000;F0站號(hào)置為0011;F0置忙位為1,A1源1為0011, 源2為0100,F(xiàn)0站號(hào)為1010調(diào)度方法特點(diǎn):通過(guò)FLR的“忙”位,檢測(cè)RAW相關(guān);通過(guò)修改站號(hào)(重命名),消除WAR、WAW相關(guān);通過(guò)設(shè)置保存站,減少資源相關(guān)沖突;借助CDB作相關(guān)專(zhuān)用通路。7/24/2022974.4 先進(jìn)的流水技術(shù)流水中指令級(jí)并行性的進(jìn)一步開(kāi)發(fā)粗粒度并行性:在多處理機(jī)上分別運(yùn)
43、行多個(gè)進(jìn)程,由多臺(tái)處理機(jī)合作完成一個(gè)程序;細(xì)粒度并行性:指在一個(gè)進(jìn)程中進(jìn)行操作一級(jí)或指令一級(jí)的并行處理。RISC機(jī)進(jìn)一步開(kāi)發(fā)細(xì)粒度并行性7/24/202298一、超標(biāo)量流水處理技術(shù)每個(gè)時(shí)鐘周期平均執(zhí)行指令的條數(shù)大于或等于2超標(biāo)量處理機(jī)典型結(jié)構(gòu):多條指令流水線、多個(gè)功能部件先進(jìn)的超標(biāo)量處理機(jī)有:定點(diǎn)處理部件CPU,浮點(diǎn)處理部件FPU,圖形加速部件GPU,大量的通用寄存器,兩個(gè)一級(jí)高速Cache超標(biāo)量處理機(jī)的指令級(jí)并行度ILP大于17/24/202299超標(biāo)量流水線處理機(jī)的一般結(jié)構(gòu)IFIDFA1FA2FA3MD1MD2MD3ALLS浮點(diǎn)加法部件乘除法部件定點(diǎn)ALU部件取數(shù)存數(shù)部件WRIFIDWR7
44、/24/2022100整數(shù)部件整數(shù)部件位操作浮點(diǎn)加乘法部件除法部件圖形部件圖形部件內(nèi)部總線讀數(shù)存數(shù)部件通用寄存器堆擴(kuò)展寄存器堆目標(biāo)指令指令分配轉(zhuǎn)移部件數(shù)據(jù)Cache (8KB)指令Cache (8KB)系統(tǒng)總線32位地址總線32位數(shù)據(jù)總線超標(biāo)量處理機(jī)MC88110的結(jié)構(gòu)7/24/2022101IFIDFA1FA2FA3MD1MD2MD3ALLS浮點(diǎn)加法部件乘除法部件定點(diǎn)ALU部件取數(shù)存數(shù)部件WRIFIDWRIFID先行指令窗口注:先行指令窗口除了能夠做數(shù)據(jù)相關(guān)性分析和功能部件沖突的檢測(cè)之外,還至少有一套取指令部件和一套指令譯碼部件7/24/2022102IF時(shí)鐘周期指令I(lǐng)1I2I3IDEXWR
45、123456I4I5I6IFIDEXWRI7I8I9IFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWR超標(biāo)量流水處理機(jī)的時(shí)空?qǐng)D7/24/2022103超標(biāo)量流水線的調(diào)度按序發(fā)射:當(dāng)指令按策劃功能序的次序發(fā)射時(shí),稱(chēng)之為按序發(fā)射(in-order issue)無(wú)序發(fā)射:為改善流水線性能,可以將有相關(guān)的指令推后發(fā)射,而將后面的無(wú)相關(guān)性的指令提前發(fā)射,即不按程序原有次序發(fā)射指令,稱(chēng)之為無(wú)序發(fā)射(out-of-order)按序完成:完成順序與發(fā)射順序一致無(wú)序完成:完成順序與發(fā)射順序不一致7/24/2022104按序發(fā)射按序完成靜態(tài)調(diào)度策略;(
46、Pentium)按序發(fā)射無(wú)序完成動(dòng)態(tài)調(diào)度策略;( PentiumII/III )無(wú)序發(fā)射無(wú)序完成動(dòng)態(tài)調(diào)度策略。無(wú)論那種調(diào)度策略,都要保證程序運(yùn)行的最終結(jié)果是正確的,發(fā)射策略由譯碼控制器完成,完成策略由執(zhí)行控制器完成。常用的調(diào)度方法7/24/2022105IF1ID1L/SWR1IF2ID2部件FA1WR2FA3FA2順序(RAW)順序(WAW)順序順序(RAW)MD1MD2MD3WR1IF2ID2FA1FA2FA3ID1IF1WR2ID1ALIF1WR1ID2MD1MD2MD3I1WR2IF2I2I3I4I5I6指令時(shí)鐘周期1 2 3 4 5 6 7 8 9 10流水線2流水線1 I1: LO
47、AD R1,A ;主存單元A R1 I2: FADD R2,R1 ;(R1)+( R2) R2 I3: FMUL R3,R4 ;(R3)(R4) R3 I4: FADD R4,R5 ;(R4)+( R5) R4 I5: DEC R6 ;(R6)-1 R6 I6: FMUL R6,R7 ;(R6)(R7) R6按序發(fā)射按序完成之調(diào)度過(guò)程7/24/2022106IF1ID1L/SWR1IF2ID2部件FA1WR2FA3FA2(RAW)(RAW)MD1MD2MD3WR1IF2ID2FA1FA2FA3ID1IF1WR2ID1ALIF1WR1ID2MD1MD2MD3I1WR2IF2I2I3I4I5I6指
48、令時(shí)鐘周期1 2 3 4 5 6 7 8 9 流水線2流水線1 I1: LOAD R1,A ;主存單元A R1 I2: FADD R2,R1 ;(R1)+( R2) R2 I3: FMUL R3,R4 ;(R3)(R4) R3 I4: FADD R4,R5 ;(R4)+( R5) R4 I5: DEC R6 ;(R6)-1 R6 I6: FMUL R6,R7 ;(R6)(R7) R6按序發(fā)射無(wú)序完成之調(diào)度過(guò)程7/24/2022107IF1ID1L/SWR1IF2ID2FA1WR2FA3FA2MD1MD2MD3WR1IF1ID1FA2FA3FA1ID3IF3WR2ID2ALIF2WR1ID2MD
49、2MD3MD1I1WR2IF2I3I4I2I5I6指令時(shí)鐘周期1 2 3 4 5 6 7 8 流水線2流水線1 I1: LOAD R1,A ;主存單元A R1 I2: FADD R2,R1 ;(R1)+( R2) R2 I3: FMUL R3,R4 ;(R3)(R4) R3 I4: FADD R4,R5 ;(R4)+( R5) R4 I5: DEC R6 ;(R6)-1 R6 I6: FMUL R6,R7 ;(R6)(R7) R6無(wú)序發(fā)射無(wú)序完成之調(diào)度過(guò)程先行控制7/24/2022108超標(biāo)量流水線的資源沖突在先進(jìn)的超標(biāo)量流水機(jī)中,有多個(gè)操作(執(zhí)行)部件,如:ALU、FADD、FMUL、GPU
50、、LSU等操作部件必須采用流水結(jié)構(gòu),可減少資源沖突7/24/2022109I1:FADD R0,R1 ;(R0)+(R1)R0 I2:FMUL R2,R3 ;(R2)(R3)R2I3:FADD R4,R5 ;(R4)+(R5)R4I4:FMUL R6,R7 ;(R6)(R7)R6IF1IF2ID1ID2FADDIF1ID1IF2ID2WR1FMULWR2FADDFMULWR1WR2I1I2I3I41234567891011雙流水線超標(biāo)量處理機(jī)(操作部件非流水結(jié)構(gòu))7/24/2022110I1:FADD R0,R1 ;(R0)+(R1)R0 I2:FMUL R2,R3 ;(R2)(R3)R2I3
51、:FADD R4,R5 ;(R4)+(R5)R4I4:FMUL R6,R7 ;(R6)(R7)R6IF1IF2ID1ID2FA1IF1ID1IF2ID2WR1FM1WR2WR1I1I2I3I412345678t雙流水線超標(biāo)量處理機(jī)(操作部件流水結(jié)構(gòu))FA2FA3FM2FM3FM4FA1FA2FA3FM1WR2FM2FM3FM47/24/2022111二、超流水線處理機(jī)兩種定義: 一個(gè)周期內(nèi)能夠分時(shí)發(fā)射多條指令的處理機(jī)稱(chēng)為超流水線處理機(jī)。 指令流水線有8個(gè)或更多功能段的流水線處理機(jī)稱(chēng)為超流水線處理機(jī)。提高處理機(jī)性能的不同方法: 超標(biāo)量處理機(jī)是通過(guò)增加硬件資源為代價(jià)來(lái)?yè)Q取處理機(jī)性能的。 超流水線處
52、理機(jī)則通過(guò)各硬件部件充分重疊工作來(lái)提高處理機(jī)性能。兩種不同并行性: 超標(biāo)量處理機(jī)采用的是空間并行性 超流水線處理機(jī)采用的是時(shí)間并行性7/24/2022112指令執(zhí)行時(shí)序每隔1/n個(gè)時(shí)鐘周期發(fā)射一條指令,流水線周期為1/n個(gè)時(shí)鐘周期在超標(biāo)量處理機(jī)中,流水線的有些功能段還可以進(jìn)一步細(xì)分,例如:ID功能段可以再細(xì)分為譯碼、讀第一操作數(shù)和讀第二操作數(shù)三個(gè)流水段。也有些功能段不能再細(xì)分,如WR功能段一般不再細(xì)分。因此有超流水線的另外一種定義:有8個(gè)或8個(gè)以上流水段的處理機(jī)稱(chēng)為超流水線處理機(jī)7/24/2022113IF時(shí)鐘周期指令I(lǐng)1I2I3IDEXWR123456I4I5I6IFIDEXWRI7I8I9
53、IFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWR每個(gè)時(shí)鐘周期分時(shí)發(fā)送3條指令的超流水線7/24/2022114MIPS R4000處理機(jī)的流水線操作指令CacheIF:取第一條指令I(lǐng)S:取第二條指令RF:讀寄存器堆,指令譯碼EX:執(zhí)行指令DF:取第一個(gè)數(shù)據(jù)DS:取第二個(gè)數(shù)據(jù)TC:數(shù)據(jù)標(biāo)志校驗(yàn);WB:寫(xiě)回結(jié)果指令譯碼讀寄存器堆ALU數(shù)據(jù)Cache標(biāo)志檢驗(yàn)寄存器堆IFISRFEXDFDSWBTC7/24/2022115IF流水線周期當(dāng)前CPU周期ISRFEXDFDSTCWBIFISRFEXDFDSTCWBIFISRFEXDFDSTCW
54、BIFISRFEXDFDSTCWBIFISRFEXDFDSTCWBIFISRFEXDFDSTCWBIFISRFEXDFDSTCWBIFISRFEXDFDSTCWB主時(shí)鐘周期MIPS R4000正常指令流水線工作時(shí)序7/24/2022116三、超標(biāo)量超流水線處理機(jī)把超標(biāo)量與超流水線技術(shù)結(jié)合在一起,就成為超標(biāo)量超流水線處理機(jī)指令執(zhí)行時(shí)序 超標(biāo)量超流水線處理機(jī)在一個(gè)時(shí)鐘周期內(nèi)分時(shí)發(fā)射指令n次,每次同時(shí)發(fā)射指令m條,每個(gè)時(shí)鐘周期總共發(fā)射指令m n條。7/24/2022117IF時(shí)鐘周期指令I(lǐng)1I2I3IDEXWR12345I4I5I6I7I8I9IFIDEXWRIFIDEXWRIFIDEXWRIFID
55、EXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRI10I11I12每時(shí)鐘周期發(fā)射3次,每次3條指令7/24/2022118不同結(jié)構(gòu)計(jì)算機(jī)的性能分析標(biāo)量處理機(jī)的并行度(1,1)超標(biāo)量處理機(jī)的并行度(m,1)超流水處理機(jī)的并行度(1,n)超標(biāo)量超流水處理機(jī)的并行度(m,n)7/24/2022119標(biāo)量流水處理機(jī)上執(zhí)行N條指令的時(shí)間:超標(biāo)量流水處理機(jī)上執(zhí)行N條指令的時(shí)間:7/24/2022120超流水處理機(jī)上執(zhí)行N條指令的時(shí)間:超標(biāo)量超流水處理機(jī)上執(zhí)行N條指令的時(shí)間:7/24/2022121四、超長(zhǎng)指令字(VLIW)計(jì)算機(jī)VLI
56、W是以一條長(zhǎng)指令實(shí)現(xiàn)多個(gè)操作的并行執(zhí)行,減少存儲(chǔ)器訪問(wèn)。主要特點(diǎn):(1)單一的控制流。只有一個(gè)控制器,每個(gè)周期啟動(dòng)一條指令。(2)超長(zhǎng)指令字被分成多個(gè)控制字段,每個(gè)字段直接獨(dú)立地控制每個(gè)功能部件。(3)在編譯階段完成超長(zhǎng)指令中多個(gè)可并行執(zhí)行操作的調(diào)度。7/24/2022122 超長(zhǎng)指令字計(jì)算機(jī)舉例如完成以下運(yùn)算:C=A+B、K=I+J、 L=M-K、Q=CK需以下13條指令完成: (需花14個(gè)T )LOAD A、LOAD B、C=A+B、STORE C、LOAD I、LOAD J、K=I+J、STORE K、LOAD M、L=M-K、STORE L、Q=CK、STORE Q7/24/20221
57、23主存RF (寄存器堆)LD/ST2FADDFMULLD/ST1LD/ST1LD/ST2FADDFMUL存/取1存/取2浮點(diǎn)加浮點(diǎn)乘操作并行度4LOAD A LOAD BLOAD I LOAD J C=A+BLOAD M STORE C K=I+J STORE K L=M-K Q=CK STORE LSTORE Q用VLIW則只需6個(gè)T7/24/2022124例6 在下列不同結(jié)構(gòu)的處理機(jī)上運(yùn)行88的矩陣乘法C=AB,計(jì)算所需要的最短時(shí)間。只計(jì)算乘法指令和加法指令的執(zhí)行時(shí)間,不計(jì)算取操作數(shù)、數(shù)據(jù)傳送和程序控制等指令的執(zhí)行時(shí)間。加法部件和乘法部件的延遲時(shí)間都是3個(gè)時(shí)鐘周期,另外,加法指令和乘法指
58、令還要經(jīng)過(guò)一個(gè)“取指令”和“指令譯碼”的時(shí)鐘周期,每個(gè)時(shí)鐘周期為20ns,C的初始值為“0”。各操作部件的輸出端有直接數(shù)據(jù)通路連接到有關(guān)操作部件的輸入端,在操作部件的輸出端設(shè)置有足夠容量的緩沖寄存器。7/24/2022125(1)處理機(jī)內(nèi)只有一個(gè)通用操作部件,采用順序方式執(zhí)行指令。解:需要完成的乘法次數(shù)為888=512次需要完成的加法次數(shù)為887=448次執(zhí)行完成總時(shí)間為:7/24/2022126(2)單流水線標(biāo)量處理機(jī),有一條兩個(gè)功能的靜態(tài)流水線,流水線每個(gè)功能段的延遲時(shí)間均為一個(gè)時(shí)鐘周期,加法操作和乘法操作各經(jīng)過(guò)3個(gè)功能段。解:IFIDAD1AD2AD3MU1MU3MU27/24/2022
59、127(3)單流水線標(biāo)量處理機(jī),處理機(jī)內(nèi)有兩條獨(dú)立的操作流水線,流水線每個(gè)功能段的延遲時(shí)間均為一個(gè)時(shí)鐘周期。解:IFIDAD1AD2AD3MU1MU3MU27/24/2022128(4)超標(biāo)量處理機(jī),每個(gè)時(shí)鐘周期同時(shí)發(fā)送一條乘法指令和一條加法指令,處理要內(nèi)有兩條獨(dú)立的操作流水線,流水線的每個(gè)功能段的延遲時(shí)間均為一個(gè)時(shí)鐘周期。(不考慮數(shù)據(jù)之間的相關(guān)性,下同。)解:7/24/2022129(5)超流水處理機(jī),把一個(gè)時(shí)鐘周期分為兩個(gè)流水級(jí),加法部件和乘法部件的延遲時(shí)間都為6個(gè)流水級(jí),每個(gè)時(shí)鐘周期能夠分時(shí)發(fā)射兩條指令,即每個(gè)流水級(jí)能夠發(fā)射一條指令。IFIDAD1AD2AD3MU1MU3MU2解:1 2
60、 3 4 5 6 7 8 9 107/24/2022130(6)超標(biāo)量超流水線處理機(jī),把一個(gè)時(shí)鐘周期分為兩個(gè)流水級(jí),加法部件和乘法部件延遲時(shí)間都為6個(gè)流水級(jí),每個(gè)流水級(jí)能夠同時(shí)發(fā)射一條乘法指令和一條加法指令。解:7/24/20221314.6 向量流水技術(shù)向量流水的基本原理CRAY-1型向量處理機(jī)增強(qiáng)向量處理性能的方法7/24/20221324.6.1 向量流水的基本原理提高流水性能方法:增加流水線段數(shù),以減少t;每個(gè)時(shí)鐘同時(shí)啟動(dòng)多條指令;減少相關(guān),減少功能變換次數(shù),增加處理指令條數(shù)。向量操作特點(diǎn)1.向量元素間操作相互獨(dú)立,且為相同操作。2.相當(dāng)于標(biāo)量循環(huán),對(duì)指令帶寬的訪問(wèn)要求不高。3.可采用
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 德陽(yáng)升學(xué)考試試卷及答案
- 碭山高中考試卷子及答案
- 單招九類(lèi)考試卷子及答案
- 大一中醫(yī)學(xué)試卷及答案
- 林業(yè)環(huán)境保護(hù)管理措施及案例
- 2025年幼兒園科學(xué)實(shí)驗(yàn)活動(dòng)教研計(jì)劃
- 藥劑科對(duì)患者教育的職責(zé)
- 幼小銜接家庭教育配合心得體會(huì)
- 商用配電柜安裝流程規(guī)范
- 課程思政新模式培訓(xùn)心得體會(huì)
- 肝移植手術(shù)的麻醉課件
- 呼吸困難 教學(xué)課件
- 工程設(shè)計(jì)費(fèi)收費(fèi)標(biāo)準(zhǔn)
- 鍋爐專(zhuān)項(xiàng)應(yīng)急演練記錄
- 廣大燈飾制造公司-燈具生產(chǎn)作業(yè)指導(dǎo)書(shū)
- 新人教版八年級(jí)音樂(lè)下冊(cè)《英雄凱旋歌》課件
- 研究思路圖模板
- 氬氣凈化機(jī)使用說(shuō)明書(shū)
- 新北師大版七年級(jí)下冊(cè)數(shù)學(xué)(全冊(cè)知識(shí)點(diǎn)考點(diǎn)梳理、重點(diǎn)題型分類(lèi)鞏固練習(xí))(提高版)(家教、補(bǔ)習(xí)、復(fù)習(xí)用)
- 施工質(zhì)量保證措施方案(市政管線、排水、道路等)
- 建設(shè)項(xiàng)目對(duì)海洋生物資源影響評(píng)價(jià)技術(shù)規(guī)程
評(píng)論
0/150
提交評(píng)論