高等計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)_第1頁(yè)
高等計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)_第2頁(yè)
高等計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)_第3頁(yè)
高等計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)_第4頁(yè)
高等計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩146頁(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)介

1、高等計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)高等計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)n第一章第一章 并行計(jì)算機(jī)模型并行計(jì)算機(jī)模型n第二章第二章 程序劃分與調(diào)度程序劃分與調(diào)度n第三章第三章 系統(tǒng)互連與通信系統(tǒng)互連與通信n第四章第四章 可擴(kuò)展性能原理可擴(kuò)展性能原理n第五章第五章 并行存儲(chǔ)器系統(tǒng)并行存儲(chǔ)器系統(tǒng)n第六章第六章 高速緩存與共享存儲(chǔ)器高速緩存與共享存儲(chǔ)器n第七章第七章 指令級(jí)并行處理指令級(jí)并行處理n第八章 標(biāo)量處理機(jī)與向量處理機(jī)n第九章第九章 并行模型、語(yǔ)言與編譯器并行模型、語(yǔ)言與編譯器n第十章第十章 并行程序設(shè)計(jì)與開(kāi)發(fā)并行程序設(shè)計(jì)與開(kāi)發(fā)第八章第八章 標(biāo)量處理機(jī)與向量處理機(jī)標(biāo)量處理機(jī)與向量處理機(jī)n標(biāo)量處理機(jī)n只有標(biāo)量數(shù)據(jù)表示和標(biāo)量指令系

2、統(tǒng)的處理機(jī)稱為標(biāo)量處理機(jī)n提高指令執(zhí)行速度的主要途徑:(1) 提高處理機(jī)的工作主頻(2) 采用更好的算法和設(shè)計(jì)更好的功能部件(3) 采用指令級(jí)并行技術(shù)n三種指令級(jí)并行處理機(jī):(1) 流水線處理機(jī)和超流水線(Super-pipelining)處理機(jī)(2) 超標(biāo)量(Superscalar)處理機(jī)(3) 超長(zhǎng)指令字(VLIW: Very Long Instruction Word)處理機(jī)第八章第八章 標(biāo)量處理機(jī)與向量處理機(jī)標(biāo)量處理機(jī)與向量處理機(jī)q8.1 8.1 流水線技術(shù)流水線技術(shù)q8.2 8.2 超標(biāo)量處理機(jī)超標(biāo)量處理機(jī)q8.3 8.3 超流水線處理機(jī)超流水線處理機(jī)q8.4 8.4 超標(biāo)量流水線處

3、理機(jī)超標(biāo)量流水線處理機(jī)8.1 8.1 流水線技術(shù)流水線技術(shù)n什么是流水線? 考慮設(shè)計(jì)一個(gè)洗衣機(jī)的工作流程,假定它有三道工序:洗滌、清洗、甩干。每個(gè)環(huán)節(jié)為5分鐘。 需要完成的任務(wù)為3批,則考慮下述工作方式的工作效率: 第一種:串行工作方式,即按照如下方式工作:第第1 1批批洗滌洗滌第第1 1批批清洗清洗第第1 1批批甩干甩干第第2 2批批洗滌洗滌第第2 2批批清洗清洗第第2 2批批甩干甩干第第3 3批批洗滌洗滌第第3 3批批清洗清洗第第3 3批批甩干甩干3批衣服的整個(gè)工作時(shí)間為批衣服的整個(gè)工作時(shí)間為3*3*5=45分鐘分鐘第二種:重疊工作方式,設(shè)計(jì)三個(gè)部件,可以同時(shí)工作,每個(gè)部件只做一樣工作,操

4、作方式如下圖:第第1批洗滌批洗滌第第1批清洗批清洗第第1批甩干批甩干第第2批洗滌批洗滌 第第2批清洗批清洗第第2批甩干批甩干第第3批洗滌批洗滌第第3批清洗批清洗第第3批甩干批甩干Tdtdtdtdtdt3批衣服的工作時(shí)間為5*5=25分鐘,節(jié)省20分鐘。引出下述關(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ī)的效率是1.8/3=3/5將一條指令的執(zhí)行分為幾個(gè)階段,讓幾條指令按流水線工作-計(jì)算機(jī)中的流水線技術(shù)。 包含以下內(nèi)容:指令的重疊執(zhí)行指令的重疊執(zhí)行流水線的表示方法流水線的

5、表示方法流水線的特點(diǎn)流水線的特點(diǎn)流水線的性能分析流水線的性能分析流水線最佳段數(shù)的選擇流水線最佳段數(shù)的選擇非線性流水線技術(shù)非線性流水線技術(shù)1、順序執(zhí)行方式 一條指令的執(zhí)行過(guò)程:取指令取指令-分析分析-執(zhí)行執(zhí)行n執(zhí)行n條指令所用的時(shí)間為:n如每段時(shí)間都為t,則執(zhí)行n條指令所用的時(shí)間為:T=3ntn主要優(yōu)點(diǎn):控制簡(jiǎn)單,節(jié)省設(shè)備。n主要缺點(diǎn):執(zhí)行指令的速度慢,功能部件的利用率很低。niiiitttT1()執(zhí)行分析取指令取指令k 分析k 執(zhí)行k 取指令k+1 分析k+1執(zhí)行k+1 指令的重疊執(zhí)行方式指令的重疊執(zhí)行方式n 2、一次重疊執(zhí)行方式(一種最簡(jiǎn)單的流水線方式) 如果兩個(gè)過(guò)程的時(shí)間相等,則執(zhí)行n條指

6、令的時(shí)間為:T=(1+2n)t 主要優(yōu)點(diǎn):指令的執(zhí)行時(shí)間縮短功能部件的利用率明顯提高 主要缺點(diǎn):需要增加一些硬件控制過(guò)程稍復(fù)雜取指 分析 執(zhí)行取指 分析 執(zhí)行取指 分析 執(zhí)行3、二次重疊執(zhí)行方式、二次重疊執(zhí)行方式把取第把取第k+1條指令提前到分析第條指令提前到分析第k條指令同時(shí)執(zhí)行條指令同時(shí)執(zhí)行n如果三個(gè)過(guò)程的時(shí)間相等,執(zhí)行n條指令的時(shí)間為:T=(2+n)tn理想情況下同時(shí)有三條指令在執(zhí)行n處理機(jī)的結(jié)構(gòu)要作比較大的改變,必須采用先行控制方式取指k+2 分析k+2 執(zhí)行k+2取指k+1 分析k+1 執(zhí)行k+1取指k分析k執(zhí)行k流水線的表示方法流水線的表示方法n流水線的表示法有三種:連接圖、時(shí)空?qǐng)D

7、、預(yù)約表。主要考慮前二種。1、簡(jiǎn)單流水線的連接圖表示 流水線的每一個(gè)階段稱為流水步、流水步驟、流水段、流水線階段、流水功能段、功能段、流水級(jí)、流水節(jié)拍等。一個(gè)流水階段與另一個(gè)流水階段相連形成流水線。指令從流水線一端進(jìn)入,經(jīng)過(guò)流水線的處理,從另一端流出。 有些復(fù)雜指令 在執(zhí)行階段也采用流水線方式工作,稱為操作流水線。取指令譯碼執(zhí)行保存結(jié)果t1t2t3t42、一種指令流水線n一般4至12個(gè)流水段,等于及大于8個(gè)流水段的稱為超流水線處理機(jī)3、流水線的時(shí)空?qǐng)D采用“時(shí)空?qǐng)D”表示流水線的工作過(guò)程。n一條簡(jiǎn)單流水線的時(shí)空?qǐng)D:取指形成操作數(shù)地址譯碼取操作數(shù)執(zhí)行保存結(jié)果分析k分析k+1 分析k+2 分析k+3執(zhí)

8、行k執(zhí)行k+1 執(zhí)行k+2 執(zhí)行k+3時(shí)間空間0t1t2t3t4t5n一個(gè)浮點(diǎn)加法器流水線的時(shí)空?qǐng)D(由求階差、對(duì)階、尾數(shù)加和規(guī)格化4個(gè)流水段組成):ED1時(shí)間空間0t1t2t3t4t5ED2 ED3 ED4 ED5EA1 EA2 EA3 EA4 EA5MA1 MA2 MA3 MA4 MA5NL1 NL2 NL3 NL4 NL5t6t7t8NL:規(guī)格化MA:尾數(shù)加EA:對(duì)階ED:求階差流水線的主要特點(diǎn)流水線的主要特點(diǎn)n在流水線的每一個(gè)功能部件的后面都要有一個(gè)緩沖器,稱為鎖存器、閘門寄存器等,它的作用是保存本流水段的執(zhí)行結(jié)果。n各流水段的時(shí)間應(yīng)盡量相等,否則會(huì)引起阻塞、斷流等。n只有連續(xù)提供同類任

9、務(wù)才能充分發(fā)揮流水線的效率。n在流水線的每一個(gè)流水線段中都要設(shè)置一個(gè)流水鎖存器。n流水線需要有“裝入時(shí)間”和“排空時(shí)間”。只有流只有流水線完全充滿時(shí),整個(gè)流水線的效率才能得到充分發(fā)揮。水線完全充滿時(shí),整個(gè)流水線的效率才能得到充分發(fā)揮。n衡量流水線性能的主要指標(biāo)有:吞吐率、加速比和效率1 1、吞吐率(、吞吐率(Though PutThough Put)n求流水線吞吐率的最基本公式: TP = n / Tkn為任務(wù)數(shù), Tk為完成n個(gè)任務(wù)所用時(shí)間n各段執(zhí)行時(shí)間相等,輸入連續(xù)任務(wù)情況下完成n個(gè)連續(xù)任務(wù)需要的總時(shí)間為:Tk= (k+n-1) t k為流水線的段數(shù),t為時(shí)鐘周期線性流水線的性能分析線性流

10、水線的性能分析1時(shí)間空間S123 n-1 nS2S3S4123 n-1 n123 n-1 n123 n-1 nkt(n-1) tnt(k-1)tTn吞吐率:最大吞吐率為:n各段執(zhí)行時(shí)間不相等、輸入連續(xù)任務(wù)情況下:吞吐率為:n最大吞吐率為:tnknTP) 1(nTPLimnknttmax() 11),max() 1(211kkiitttntnTP ),max(121maxktttTP n流水線各段執(zhí)行時(shí)間不相等的解決辦法S1輸入t1=tS2t2=3tS3t3=tS4t4=t輸出1時(shí)間空間S1S2S3S4Sti(n-1)t2Tk23n123n123n123nn一是將“瓶頸”流水段細(xì)分(如果可分的話

11、):n二是將 “瓶頸”流水段重復(fù)設(shè)置:S1輸入輸出tS2-1tS2-2tS2-3tS3tS4tS2(3t)S1輸入輸出t1=tS2-1S2-1S2-1S3S4t3=tt4=tt2=3t流水段重復(fù)設(shè)置的流水線1時(shí)間空間2 3nS1S2-14 5 614-2 -1n-225n-136n1 2 3n4 5 6-2 -11 2 3n4 5 6-2 -1S2-2S2-3S3S4n2 2、加速比(、加速比(SpeedupSpeedup)n計(jì)算流水線加速比的基本公式:S = 順序執(zhí)行時(shí)間T0 / 流水線執(zhí)行時(shí)間Tkn各段執(zhí)行時(shí)間相等,輸入連續(xù)任務(wù)情況下加速比為: n最大加速比為:n各段執(zhí)行時(shí)間不等,輸入連續(xù)

12、任務(wù)情況下實(shí)際加速比為:1) 1(nknktnktnkSSLimk nknknmax 1K=6K=10任務(wù)個(gè)數(shù)加速比10246811 248 16 32 64 128Snttntttiikiikk 11121() max(, ,)3 3、效率(、效率(EfficiencyEfficiency)計(jì)算流水線效率的一般公式:各流水段執(zhí)行時(shí)間相等,輸入n個(gè)連續(xù)任務(wù)流水線的效率為: 流水線的最高效率為:各流水段執(zhí)行時(shí)間不等,輸入n個(gè)連續(xù)任務(wù)流水線的效率為:kTkTknE0個(gè)流水段的總的時(shí)空區(qū)個(gè)任務(wù)占用的時(shí)空區(qū)1)1(nkntnkktnkE11maxnknLimEnn流水線各段的設(shè)備量或各段的價(jià)格不相等時(shí)

13、:流水線的效率為:n即:n其中,ai k,且),max() 12111kkiikiitttntktnE (空區(qū)個(gè)流水段的總的加權(quán)時(shí)區(qū)個(gè)任務(wù)占用的加權(quán)時(shí)空knE ), ,max() 121111nkiiikiIikiiitttntaatanE(kakii1n流水線的吞吐率、加速比與效率的關(guān)系:n因?yàn)橐虼耍篍=TP t ,S=kE4 4、流水線性能分析舉例、流水線性能分析舉例 對(duì)于單功能線性流水線,輸入連續(xù)任務(wù)的情況,通過(guò)上面給出的公式很容易計(jì)算出流水線的吞吐率、加速比和效率。例5.2:用一條4段浮點(diǎn)加法器流水線求8個(gè)浮點(diǎn)數(shù)的和: ZABCDEFGHtnknTP) 1(1nknkS1nknEn解:

14、Z = (A+B) + (C+D) + (E+F) + (G+H)1時(shí)間空間2 3求階差45671 2 3 45671 2 3 45671 2 3 4567對(duì)階尾數(shù)加規(guī)格化加數(shù) A C E GA+BE+FB D F HC+DG+HA+B+C+DE+F+G+H結(jié)果A+BC+DE+FG+HA+B+C+DE+F+G+HZ Zn7個(gè)浮點(diǎn)加法共用了15個(gè)時(shí)鐘周期。流水線的吞吐率為:n流水線的加速比為:n流水線的效率為:ttTnTPk147015787115740ttTTSk470154740ttTkTEk流水線最佳段數(shù)的選擇流水線最佳段數(shù)的選擇 流水線的最佳段數(shù)與流水線的延遲時(shí)間流水線的最佳段數(shù)與流水線

15、的延遲時(shí)間t t與流水線本身的價(jià)格與流水線本身的價(jià)格a a的乘積平方根成正比,的乘積平方根成正比,而與鎖存器的延遲時(shí)間而與鎖存器的延遲時(shí)間d d及價(jià)格及價(jià)格b b的乘積的的乘積的平方根成反比。即平方根成反比。即dbtak0在設(shè)計(jì)一條流水線時(shí),可以根據(jù)該公式,在流水線的延遲時(shí)間t一定的情況下,通過(guò)調(diào)整流水線本身的價(jià)格a、鎖存器的延遲時(shí)間d和鎖存器的價(jià)格b來(lái)選擇最佳流水線段數(shù)k0.非線性流水線技術(shù)非線性流水線技術(shù)什么是非線性流水線?如果存在反饋回路,當(dāng)一個(gè)任務(wù)在流水線中流過(guò)時(shí),在同一個(gè)流水段中可能要經(jīng)過(guò)多次。不能每一個(gè)時(shí)鐘周期向流水線輸入一個(gè)新任務(wù)。這樣的流水線就是非線性流水線。非線性流水線的調(diào)度

16、問(wèn)題就是要解決要隔多少個(gè)時(shí)鐘周期向流水線輸入一個(gè)新任務(wù)才能使流水線 的各個(gè)流水段都不發(fā)生沖突。表示一個(gè)非線性流水線需要用到連接圖和預(yù)約表。如圖:S1S2S3S4輸出輸入反饋線 時(shí)間流水段1234567S1XXXS2XXS3XXS4X非線性流水線的連接圖非線性流水線的預(yù)約表n預(yù)約表橫坐標(biāo)表示流水線的時(shí)鐘周期,縱坐標(biāo)表示流水線的各個(gè)流水段,中間有“X”表示該流水段在這一個(gè)時(shí)鐘周期處于工作狀態(tài),空白表示該流水段在這一個(gè)時(shí)鐘周期不工作。n一行中可以有多個(gè)“X”,表示一個(gè)任務(wù)在不同時(shí)鐘周期重復(fù)使用了同一流水段;一列中有多個(gè)“X”表示在同一個(gè)時(shí)鐘周期同時(shí)占用了多個(gè)流水段。預(yù)約表的行數(shù)是流水線的段數(shù),預(yù)約表

17、的列數(shù)是一個(gè)任務(wù)從進(jìn)入流水線到流水線中輸出所經(jīng)過(guò)的時(shí)鐘周期數(shù)。n向一條非線性流水線的輸入端連續(xù)輸入兩個(gè)任務(wù)之間的時(shí)間間隔稱為非線性流水線的啟動(dòng)距離,以時(shí)鐘周期數(shù)表示。n當(dāng)使用3為啟動(dòng)距離,則對(duì)上述的流水線,將在某些流水段發(fā)生沖突,即兩個(gè)以上任務(wù)同時(shí)爭(zhēng)用一個(gè)流水段。引起非線性流水線流水段沖突的啟動(dòng)距離稱為禁止啟動(dòng)距離。n不發(fā)生沖突的啟動(dòng)距離是一個(gè)循環(huán)數(shù)列。使非線性流水線的任何一個(gè)流水段在任何一個(gè)時(shí)鐘周期都不發(fā)生沖突的循環(huán)數(shù)列稱為非線性流水線的啟動(dòng)循環(huán)。啟動(dòng)距離為3的流水線沖突情況X3X2X1S4X4X2X3X1X2X1S3X3X4X2X3X1X2X1S2X2X3X4X1X2X3X1X2X1S11

18、110987654321 時(shí)間流水段兩個(gè)任務(wù)爭(zhēng)用一個(gè)流水段S2兩個(gè)任務(wù)爭(zhēng)用一個(gè)流水段S1啟動(dòng)距離為5的流水線預(yù)約表X2X1X1S4X2X2X1S3X3X2X1X1S2X2 X1X1X1S11110987654321 時(shí)間流水段X2X2啟動(dòng)周期重復(fù)啟動(dòng)周期(5)是一個(gè)循環(huán),稱為恒定循環(huán)(只有一個(gè)等待值的循環(huán))。時(shí)間流水段12345678910111213141516S1X1X2X1X2X1X2X3X4X3X4X3X4S2X1X2X1X2X3X4X3X4S3X1X2X1X2X3X4X3X4S4X1X2X3X4啟動(dòng)距離為(1,7)循環(huán)時(shí)的流水線預(yù)約表要正確地調(diào)度一條非線性流水線,首先要找出流水線的所

19、有禁止啟動(dòng)距離。所有禁止啟動(dòng)距離組合在一起成為一個(gè)數(shù)列,稱為禁止向量。n由預(yù)約表得到禁止向量的方法:n將預(yù)約表的每一行中任意兩個(gè)“X”之間的距離都計(jì)算出來(lái),去掉重復(fù)的,這種數(shù)組成的一個(gè)數(shù)列就是這條非線性流水線的禁止向量。 例如:前述的非線性流水線,其禁止向量為 (3,4,6)。n把一個(gè)啟動(dòng)循環(huán)內(nèi)的所有啟動(dòng)距離相加,然后再除以這個(gè)循環(huán)內(nèi)的啟動(dòng)距離個(gè)數(shù),就得到這個(gè)啟動(dòng)循環(huán)的平均啟動(dòng)距離。n非線性流水線無(wú)沖突調(diào)度的主要目標(biāo)是要找出具有最小平均啟動(dòng)距離的啟動(dòng)循環(huán),按照這樣的啟動(dòng)循環(huán)向非線性流水線的輸入端輸入任務(wù),流水線的工作速度最快,而且所有流水段在任何時(shí)間都沒(méi)有沖突。n例:一條有4個(gè)流水段的非線性流

20、水線,每個(gè)流水段的延遲時(shí)間都相等,它的預(yù)約表如下圖: 時(shí)間流水段1234567S1XXS2XXS3XXS4X(1)寫出流水線的禁止向量和初始沖突向量(2)畫出調(diào)度流水線的狀態(tài)圖(3)求流水線的最小啟動(dòng)循環(huán)和最小啟動(dòng)距離(4)求平均啟動(dòng)距離最小的恒定循環(huán)。n解:(1)禁止向量為(2,4,6) 沖突向量:用二進(jìn)制表示,長(zhǎng)度是禁止向量的最大距離。沖突向量C=(C6C5C4C3C2C1),由禁止向量,C2=C4=C6=1,其余位為0,沖突向量為 C=(101010)。 (2)由沖突向量構(gòu)造一張圖:將C放到一個(gè)6位邏輯右移移位寄存器,當(dāng)從移位寄存器移出0,用移位器中的值與初始沖突向量初始沖突向量做“按位

21、或”,得到一個(gè)新的沖突向量。當(dāng)移位器移出1,不做任何處理。重復(fù)這個(gè)步驟。對(duì)產(chǎn)生的每一個(gè)新的沖突向量做同樣處理。在初始沖突向量和所有形成的沖突向量之間,箭頭連接。1010101111111011111010117*157*3537*當(dāng)右移2、4、6位,時(shí)移出位為1,表示用這些啟動(dòng)距離輸入新任務(wù)要發(fā)生沖突,不做任何處理。當(dāng)右移1、3、5和大于等于7位時(shí),移出位是0,表示用這些啟動(dòng)距離輸入新任務(wù)不會(huì)發(fā)生沖突。7*表示大于等于757(3)從狀態(tài)圖中可以找到許多不發(fā)生流水段沖突的啟動(dòng)循環(huán)。,只要找到簡(jiǎn)單循環(huán),進(jìn)而確定平均啟動(dòng)距離最小的啟動(dòng)循環(huán)。它們是: (1,7)、(3,5,7)、(5,7)等簡(jiǎn)單循環(huán)平

22、均啟動(dòng)距離(1,7)4(3,5)4(5,7)6(3,5,7)5(5,3,7)5(5, 3 )4(5)5(7)7最小啟動(dòng)循環(huán)是具有最小平均最小啟動(dòng)距離的啟動(dòng)循環(huán)。n最小循環(huán)為(1,7)、(3,5)n最小恒定循環(huán)為(5) 時(shí)間流水12345678910111213141516S1X1X2X1X3X2X4X3S2X1X2X1X2X3X4X3S3X1X1X2X2X3X3X4S4X1X2X3X4最小啟動(dòng)循環(huán)為(3,5)的流水線工作狀態(tài) 時(shí)間流水段123456789101112131415S1X1X2X1X2X3X4X3S2X1X2X1X2X3X4X3X4S3X1X2X1X2X3X4X3X4S4X1X2X

23、3X4最小啟動(dòng)循環(huán)為(1,7)的流水線工作狀態(tài) 時(shí)間流水段123456789101112131415S1X1 X2X1 X3X2 S2X1 X1X2X2X3 S3X1 X1 X2X2 X3 X3S4X1 X2 X3恒定啟動(dòng)循環(huán)(5)的流水線工作狀態(tài)啟動(dòng)周期重復(fù)啟動(dòng)周期非線性流水線的優(yōu)化調(diào)度方法非線性流水線的優(yōu)化調(diào)度方法(這兩個(gè)內(nèi)容不作要求)n超標(biāo)量處理機(jī):Intel公司的i860, i960, Pentium處理機(jī)Motolora公司的MC88110IBM公司的Power 6000SUN公司的SuperSPARC等。n超流水線處理機(jī):SGI公司的MIPS R4000, R5000, R1000

24、0等。n超標(biāo)量超流水線處理機(jī):DEC公司的Alpha等。8.2 8.2 超標(biāo)量處理機(jī)超標(biāo)量處理機(jī)k段流水線基準(zhǔn)標(biāo)量處理機(jī)m度超標(biāo)量處理機(jī)n度超流水線處理機(jī)(m,n)度超標(biāo)量超流水機(jī)器類型機(jī)器流水線周期同時(shí)發(fā)射指令條數(shù)指令發(fā)射等待時(shí)間指令級(jí)并行度ILP1個(gè)時(shí)鐘周期1條1個(gè)時(shí)鐘周期11m1m1/n11/nn1/nm1/nm*n超標(biāo)量、超流水、超標(biāo)量超流水處理機(jī)的主要性能8.2 8.2 超標(biāo)量處理機(jī)超標(biāo)量處理機(jī)基本結(jié)構(gòu)單發(fā)射與多發(fā)射多流水線調(diào)度(略)資源沖突(略)基本結(jié)構(gòu)n一般流水線處理機(jī):一條指令流水線,一個(gè)多功能操作部件,每個(gè)時(shí)鐘周期平均執(zhí)行指令的條數(shù)小于1。n多操作部件處理機(jī):一條指令流水線,

25、多個(gè)獨(dú)立的操作部件,操作部件可以采用流水線,也可以不流水。多操作部件處理機(jī)的指令級(jí)并行度小于1。n超標(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í)并行度大于1nMotorola公司的MC88110:10個(gè)操作部件兩個(gè)寄存器堆:整數(shù)部件通用寄存器堆,32個(gè)32位寄存器;浮點(diǎn)部件擴(kuò)展寄存器堆,32個(gè)80位寄存器。每個(gè)寄存器堆有8個(gè)端口,分別與8條內(nèi)部總線相連接,有一個(gè)緩沖深度為4的先行讀數(shù)棧和一個(gè)緩沖深度為3的后行寫數(shù)棧。兩個(gè)獨(dú)立的高速Cache中,各為8

26、KB,采用兩路組相聯(lián)方式。轉(zhuǎn)移目標(biāo)指令Cache,在有兩路分支時(shí),存放其中一路分支上的指令整數(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)單發(fā)射與多發(fā)射單發(fā)射處理機(jī): 每個(gè)周期只取一條指令、只譯碼一條指令,只執(zhí)行一條指令,只寫回一個(gè)運(yùn)算結(jié)果 取指部件和譯碼部件各設(shè)置一套 可以只設(shè)置一個(gè)多功能操作部件,也可以設(shè)置多個(gè)獨(dú)立的操作部件 操作部件中可以采用流水線結(jié)構(gòu),也可以不采用流水線結(jié)構(gòu) 設(shè)計(jì)目標(biāo)是每個(gè)

27、時(shí)鐘周期平均執(zhí)行一條指令,ILP的期望值1。它就是一臺(tái)有k段流水線的普通標(biāo)量處理機(jī)。IF時(shí)鐘周期指令I(lǐng)1I2I3IDEXWRIFIDEXWRIFIDEXWR123456單發(fā)射處理機(jī)的指令流水線時(shí)空?qǐng)DIF:取指令 ID:指令譯碼 EX:執(zhí)行指令 WR:寫回結(jié)果IFIDFA1 FA2 FA3MD1 MD2 MD3ALLS浮點(diǎn)加法部件乘除法部件定點(diǎn)ALU部件取數(shù)存數(shù)部件WR來(lái)自指令Cache通用寄存器后行寫數(shù)棧由4個(gè)操作部件組成的單發(fā)射處理機(jī)n多發(fā)射處理機(jī): 每個(gè)周期同時(shí)取多條指令、同時(shí)譯碼多條指令,同時(shí)執(zhí)行多條指令,同時(shí)寫回多個(gè)運(yùn)算結(jié)果 需要多個(gè)取指令部件,多個(gè)指令譯碼部件和多個(gè)寫結(jié)果部件 設(shè)置多

28、個(gè)指令執(zhí)行部件,復(fù)雜的指令執(zhí)行部件一般采用流水線結(jié)構(gòu) 設(shè)計(jì)目標(biāo)是每個(gè)時(shí)鐘周期平均執(zhí)行多條指令,ILP的期望值大于1多發(fā)射處理機(jī)的指令流水線時(shí)空?qǐng)DIF時(shí)鐘周期指令I(lǐng)1I2I3IDEXWR123456I4I5I6IFIDEXWRI7I8I9IFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDFA1 FA2 FA3MD1 MD2 MD3ALLS浮點(diǎn)加法部件乘除法部件定點(diǎn)ALU部件取數(shù)存數(shù)部件WRIFIDWRn超標(biāo)量處理機(jī):一個(gè)時(shí)鐘周期內(nèi)能夠同時(shí)發(fā)射多條指令的處理機(jī)稱為超標(biāo)量處理機(jī)必須有兩條或兩條以上能夠同時(shí)工作的指令流水線n先行指令

29、窗口:能夠從指令Cache中預(yù)取多條指令能夠?qū)Υ翱趦?nèi)的指令進(jìn)行數(shù)據(jù)相關(guān)性分析和功能部件沖突的檢測(cè)窗口的大?。阂话銥?至8條指令采用目前的指令調(diào)度技術(shù),每個(gè)周期發(fā)射2至4條指令比較合理n例如:Intel公司的i860、i960、Pentium處理機(jī),Motolora公司的MC88110處理機(jī),IBM公司的Power 6000處理機(jī)等每個(gè)周期都發(fā)射兩條指令TI公司生產(chǎn)的SuperSPARC處理機(jī)以及Intel的Pentium III處理機(jī)等每個(gè)周期發(fā)射三條指令操作部件的個(gè)數(shù)多于每個(gè)周期發(fā)射的指令條數(shù)。4個(gè)至16個(gè)操作部件超標(biāo)量處理機(jī)的指令級(jí)并行度:1ILPm;m為每個(gè)周期發(fā)射的指令條數(shù)。IFIDF

30、A1 FA2 FA3MD1 MD2 MD3ALLS浮點(diǎn)加法部件乘除法部件定點(diǎn)ALU部件取數(shù)存數(shù)部件WRIFIDWRIFID先行指令窗口8.3 超流水線處理機(jī)n指令執(zhí)行時(shí)序指令執(zhí)行時(shí)序n典型處理機(jī)結(jié)構(gòu)典型處理機(jī)結(jié)構(gòu)n超流水線處理機(jī)性能超流水線處理機(jī)性能n兩種定義: 一個(gè)周期內(nèi)能夠分時(shí)發(fā)射多條指令的處理機(jī)稱為 超流水線處理機(jī)。 指令流水線有8個(gè)或更多功能段的流水線處理機(jī)稱為超流水線處理機(jī)。n提高處理機(jī)性能的不同方法: 超標(biāo)量處理機(jī)是通過(guò)增加硬件資源為代價(jià)來(lái)?yè)Q取處理機(jī)性能的。 超流水線處理機(jī)則通過(guò)各硬件部件充分重疊工作來(lái)提高處理機(jī)性能。n兩種不同并行性: 超標(biāo)量處理機(jī)采用的是空間并行性 超流水線處理

31、機(jī)采用的是時(shí)間并行性指令執(zhí)行時(shí)序n每隔1/n個(gè)時(shí)鐘周期發(fā)射一條指令,流水線周期為1/n個(gè)時(shí)鐘周期n在超標(biāo)量處理機(jī)中,流水線的有些功能段還可以進(jìn)一步細(xì)分n例:ID功能段可以再細(xì)分為譯碼、讀第一操作數(shù)和讀第二操作數(shù)三個(gè)流水段。也有些功能段不能再細(xì)分,如WR功能段一般不再細(xì)分。因此有超流水線的另外一種定義:有8個(gè)或8個(gè)以上流水段的處理機(jī)稱為超流水線處理機(jī)每個(gè)時(shí)鐘周期分時(shí)發(fā)送3條指令的超流水線IF時(shí)鐘周期指令I(lǐng)1I2I3IDEXWR123456I4I5I6IFIDEXWRI7I8I9IFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWR典型處理

32、機(jī)結(jié)構(gòu)典型處理機(jī)結(jié)構(gòu)nMIPS R4000處理機(jī)每個(gè)時(shí)鐘周期包含兩個(gè)流水段,是一種很標(biāo)準(zhǔn)的超流水線處理機(jī)結(jié)構(gòu)。指令流水線有8個(gè)流水段n有兩個(gè)Cache,指令Cache和數(shù)據(jù)Cache的容量各8KB,每個(gè)時(shí)鐘周期可以訪問(wèn)Cache兩次,因此在一個(gè)時(shí)鐘周期內(nèi)可以從指令Cache中讀出兩條指令,從數(shù)據(jù)Cache中讀出或?qū)懭雰蓚€(gè)數(shù)據(jù)。n主要運(yùn)算部件有整數(shù)部件和浮點(diǎn)部件譯譯 碼碼數(shù)數(shù) 據(jù)據(jù)C C a a c c h h e e標(biāo)標(biāo) 志志標(biāo)標(biāo) 志志指指 令令C C a a c c h h e e譯譯 碼碼存存 入入緩緩 沖沖 對(duì)對(duì) 準(zhǔn)準(zhǔn) 器器IB U S寫寫 入入 緩緩 沖沖 器器數(shù)數(shù) 據(jù)據(jù)標(biāo)標(biāo) 志志地地

33、 址址D B U S 系系 統(tǒng)統(tǒng) 控控 制制浮浮 點(diǎn)點(diǎn)存存 儲(chǔ)儲(chǔ) 管管 理理 部部 件件寄寄 存存 器器 堆堆指指 令令 快快 表表浮浮 點(diǎn)點(diǎn) 流流 水水 線線 專專 用用 通通 路路指指 令令 C ach e控控 制制快快 表表 TL B浮浮 點(diǎn)點(diǎn) 控控 制制 寄寄 存存 器器 D V A浮浮 點(diǎn)點(diǎn) 乘乘 法法 部部 件件地地 址址 部部 件件浮浮 點(diǎn)點(diǎn) 除除 法法 部部 件件數(shù)數(shù) 據(jù)據(jù) C ach e控控 制制程程 序序 計(jì)計(jì) 數(shù)數(shù) 器器浮浮 點(diǎn)點(diǎn) 加加 法法 部部 件件流流 水水 線線通通 用用 寄寄 存存 器器 堆堆轉(zhuǎn)轉(zhuǎn) 換換 部部 件件控控 制制算算 術(shù)術(shù) 邏邏 輯輯 部部 件件 A

34、 L U求求 平平 方方 根根 部部 件件裝裝 入入 對(duì)對(duì) 準(zhǔn)準(zhǔn) 器器 / / 存存 入入 驅(qū)驅(qū) 動(dòng)動(dòng) 器器整整 數(shù)數(shù) 乘乘 法法 除除 法法 部部 件件M M I I P P S S R R 4 4 0 0 0 0 0 0 超超 流流 水水 線線 處處 理理 機(jī)機(jī) 結(jié)結(jié) 構(gòu)構(gòu)MIPS 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:寫回結(jié)果指令譯碼讀寄存器堆ALU數(shù)據(jù)Cache標(biāo)志檢驗(yàn)寄存器堆IFISRFEXDF DSWBTCIF流水線周期當(dāng)前CPU周期IS R

35、F EX DF DS TC WBIFIS RF EX DF DS TC WBIFIS RF EX DF DS TC WBIFIS RF EX DF DS TC WBIFIS RF EX DF DS TC WBIFIS RF EX DF DS TC WBIFIS RF EX DF DS TC WBIFIS RF EX DF DS TC WB主時(shí)鐘周期MIPS R4000正常指令流水線工作時(shí)序n如果在LOAD指令之后的兩條指令中,任何一條指令要在它的EX流水級(jí)使用這個(gè)數(shù)據(jù),則指令流水線要暫停一個(gè)時(shí)鐘周期n采用順序發(fā)射方式MIPS R4000正常指令流水線工作時(shí)序暫停IFIS RF EX DF DS

36、 TC WBIS RF EX DF DS TC WBRF EX DF DS TC WBEX DF DS TC WBEX DF DS TC WBDF DS TC WBIFISRFI1I2I3I4I5I6運(yùn)行運(yùn)行Load指令使用Load數(shù)據(jù)超流水線處理機(jī)性能n指令級(jí)并行度為(1,n)的超流水線處理機(jī),執(zhí)行N條指令所的時(shí)間為:n超流水線處理機(jī)相對(duì)于單流水線普通標(biāo)量處理機(jī)的加速比為:tnknTN)(),(11tnNktNknTTnS)1()1(), 1()1 , 1(),(1n即:n超流水線處理機(jī)的加速比的最大值為:nS(1,n)MAX = n1)1(), 1(NnkNknnS8.4 超標(biāo)量超流水線處

37、理機(jī)n指令執(zhí)行時(shí)序指令執(zhí)行時(shí)序n典型處理機(jī)結(jié)構(gòu)典型處理機(jī)結(jié)構(gòu)n超標(biāo)量流水線處理機(jī)性能超標(biāo)量流水線處理機(jī)性能 把超標(biāo)量與超流水線技術(shù)結(jié)合在一起,就成為超標(biāo)量超流水線處理機(jī)指令執(zhí)行時(shí)序指令執(zhí)行時(shí)序 超標(biāo)量超流水線處理機(jī)在一個(gè)時(shí)鐘周期內(nèi)分時(shí)發(fā)射指令n次,每次同時(shí)發(fā)射指令m條,每個(gè)時(shí)鐘周期總共發(fā)射指令m n條。IF時(shí)鐘周期指令I(lǐng)1I2I3IDEXWR12345I4I5I6I7I8I9IFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRIFIDEXWRI10I11I12每時(shí)鐘周期發(fā)射3次,每次3條

38、指令典型處理機(jī)結(jié)構(gòu)典型處理機(jī)結(jié)構(gòu)nDEC公司的Alpha處理機(jī)采用超標(biāo)量超流水線結(jié)構(gòu)。主要由四個(gè)功能部件和兩個(gè)Cache組成:整數(shù)部件EBOX、浮點(diǎn)部件FBOX、地址部件ABOX和中央控制部件IBOX。n中央控制部件IBOX可以同時(shí)從指令Cache中讀入兩條指令,同時(shí)對(duì)讀入的兩條指令進(jìn)行譯碼,并且對(duì)這兩條指令作資源沖突檢測(cè),進(jìn)行數(shù)據(jù)相關(guān)性和控制相關(guān)性分析。如果資源和相關(guān)性允許,IBOX就把兩條指令同時(shí)發(fā)射給EBOX、ABOX和FBOX三個(gè)指令執(zhí)行部件中的兩個(gè)。n指令流水線采用順序發(fā)射亂序完成的控制方式。在指令Cache中有一個(gè)轉(zhuǎn)移歷史表,實(shí)現(xiàn)條件轉(zhuǎn)移的動(dòng)態(tài)預(yù)測(cè)。在EBOX內(nèi)還有多條專用數(shù)據(jù)通路

39、,可以把運(yùn)算結(jié)果直接送到執(zhí)行部件。nAlpha 21064處理機(jī)共有三條指令流水線整數(shù)操作流水線和訪問(wèn)存儲(chǔ)器流水線分為7個(gè)流水段,其中,取指令和分析指令為4個(gè)流水段,運(yùn)算2個(gè)流水段,寫結(jié)果1個(gè)流水段。浮點(diǎn)操作流水線分為10個(gè)流水段,其中,浮點(diǎn)執(zhí)行部件FBOX的延遲時(shí)間為6個(gè)流水段。n所有指令執(zhí)行部件EBOX、IBOX、ABOX和FBOX中都設(shè)置由專用數(shù)據(jù)通路。 析指令為4個(gè)流水段,運(yùn)算2個(gè)流水段,寫結(jié)果1個(gè)流水段。浮點(diǎn)操作流水線分為10個(gè)流水段,其中,浮點(diǎn)執(zhí)行部件FBOX的延遲時(shí)間為6個(gè)流水段。n所有指令執(zhí)行部件EBOX、IBOX、ABOX和FBOX中都設(shè)置由專用數(shù)據(jù)通路。nAlpha 210

40、64處理機(jī)的三條指令流水線的平均段數(shù)為8段,每個(gè)時(shí)鐘周期發(fā)射兩條指令。因此,Alpha 21064處理機(jī)是超標(biāo)量超流水線處理機(jī)。指指 令令 Cache( 8KB)轉(zhuǎn)轉(zhuǎn) 移移 歷歷 史史區(qū)區(qū) 號(hào)號(hào)指指 令令 地地 址址 總總 線線EBOXIBOXFBOX 3 3 4 4 位位乘乘 法法 器器預(yù)預(yù) 取取 器器乘乘 法法 器器 / /加加 法法 器器資資源源沖沖突突檢檢測(cè)測(cè)加加 法法 器器移移 位位 器器P P C C 計(jì)計(jì) 算算 數(shù)數(shù) 據(jù)據(jù) 總總 線線邏邏 輯輯 單單 元元指指 令令 快快 表表除除 法法 器器 1 1 2 2 8 8 位位流流 水水 線線控控 制制定定 點(diǎn)點(diǎn) 寄寄 存存 器器 堆

41、堆( 3 3 2 2 6 6 4 4 )浮浮 點(diǎn)點(diǎn) 寄寄 存存 器器 堆堆( 3 3 2 2 6 6 4 4 )ABOX總總線線接接口口部部外外 部部 Cache寫寫 數(shù)數(shù) 緩緩 沖沖 器器地地 址址 發(fā)發(fā) 生生 器器數(shù)數(shù) 據(jù)據(jù) 快快 表表讀讀 數(shù)數(shù) 緩緩 沖沖 器器 控控 制制件件數(shù)數(shù) 據(jù)據(jù) Cache( 8KB)區(qū)區(qū) 號(hào)號(hào)數(shù)數(shù) 據(jù)據(jù)A A l l p p h h a a 2 2 1 1 0 0 6 6 4 4 處處 理理 機(jī)機(jī) 結(jié)結(jié) 構(gòu)構(gòu)除 法 器IF取值SWAP交換雙發(fā)射指令、轉(zhuǎn)移預(yù)測(cè)I0指令譯碼I1訪問(wèn)通用寄存器堆,發(fā)射校驗(yàn)A1計(jì)算周期1,IBOX計(jì)算新的PC值A(chǔ)2計(jì)算周期2,查指令快

42、表WR寫整數(shù)寄存器堆,指令Cache命中檢測(cè)7個(gè)流水段的整數(shù)操作流水線SWAP1IFI0I1A0A1WR234560IF取值SWAP交換雙發(fā)射指令、轉(zhuǎn)移預(yù)測(cè)I0指令譯碼I1訪問(wèn)通用寄存器堆,發(fā)射校驗(yàn)ACABOX計(jì)算有效數(shù)據(jù)地址TB查數(shù)據(jù)快表HM寫讀數(shù)緩沖棧,數(shù)據(jù)Cache命中/不命中檢測(cè)7個(gè)流水段的訪問(wèn)存儲(chǔ)器流水線SWAP1IFI0I1ACTBHM234560SWAPIF取值SWAP 交換雙發(fā)射指令、轉(zhuǎn)移預(yù)測(cè)I0指令譯碼I1訪問(wèn)通用寄存器堆,發(fā)射校驗(yàn)F1-F5浮點(diǎn)計(jì)算流水線FWR寫回浮點(diǎn)寄存器堆110個(gè)流水段的浮點(diǎn)操作流水線IFI0I1F1F2FWR234560F3F4F5789 超標(biāo)量超流水

43、線處理機(jī)性能超標(biāo)量超流水線處理機(jī)性能n指令級(jí)并行度為(m,n)的超標(biāo)量超流水線處理機(jī),連續(xù)執(zhí)行N條指令所需要的時(shí)間為:n超標(biāo)量超流水線處理機(jī)相對(duì)于單流水線標(biāo)量處理機(jī)的加速比為:n在理想情況下,超標(biāo)量超流水線處理機(jī)加速比的最大值為: S(m, n)MAXm nT m nkNmm nt( , )()tmnmNktNknmSSnmS)()1(),()1 , 1(),(mNknmNknmnmS) 1(),( 三種指令級(jí)并行處理機(jī)性能比較 超標(biāo)量處理機(jī)、超流水線處理機(jī)和超標(biāo)量超流水線處理機(jī)相對(duì)于單流水線普通標(biāo)量處理機(jī)的性能曲線。0.00.51.01.52.02.512345678相對(duì)性能超標(biāo)量超流水線超

44、標(biāo)量超流水線指令級(jí)并行度n從三種指令級(jí)并行處理機(jī)的性能曲線中,可以得出如下結(jié)論:n1、三種處理機(jī)的性能關(guān)系 超標(biāo)量處理機(jī)的相對(duì)性能最高,其次是超標(biāo)量超流水線處理機(jī),超流水線處理機(jī)的相對(duì)性能最低,主要原因如下: (1) 超標(biāo)量處理機(jī)在每個(gè)時(shí)鐘周期的一開(kāi)始就同時(shí)發(fā)射多條指令,而超流水線處理機(jī)則要把一個(gè)時(shí)鐘周期平均分成多個(gè)流水線周期,每個(gè)流水線周期發(fā)射一條指令;因此,超流水線處理機(jī)的啟動(dòng)延遲比超標(biāo)量處理機(jī)大。n (2) 條件轉(zhuǎn)移造成的損失,超流水線處理機(jī)要比超標(biāo)量處理機(jī)大。 (3) 在指令執(zhí)行過(guò)程中的每一個(gè)功能段,超標(biāo)量處理機(jī)都重復(fù)設(shè)置有多個(gè)相同的指令執(zhí)行部件,而超流水線處理機(jī)只是把同一個(gè)指令執(zhí)行部

45、件分解為多個(gè)流水級(jí);因此,超標(biāo)量處理機(jī)指令執(zhí)行部件的沖突要比超流水線處理機(jī)小。2、實(shí)際指令級(jí)并行度與理論指令級(jí)并行度的關(guān)系 當(dāng)橫坐標(biāo)給出的理論指令級(jí)并行度比較低時(shí),處理機(jī)的實(shí)際指令級(jí)并行度的提高比較快。 當(dāng)理論指令級(jí)并行度進(jìn)一步增加時(shí),處理機(jī)實(shí)際指令級(jí)并行度提高的速度越來(lái)越慢。 在實(shí)際設(shè)計(jì)超標(biāo)量、超流水線、超標(biāo)量超流水線處理機(jī)的指令級(jí)并行度時(shí)要適當(dāng),否則,有可能造成花費(fèi)了大量的硬件,但實(shí)際上處理機(jī)所能達(dá)到的指令級(jí)并行度并不高。 目前,一般認(rèn)為,m 和 n 都不要超過(guò)4。n3、最大指令級(jí)并行度 一個(gè)特定程序由于受到本身的數(shù)據(jù)相關(guān)和控制相關(guān)的限制,它的指令級(jí)并行度的最大值是有限的,是有個(gè)確定的值。

46、這個(gè)最大值主要由程序自身的語(yǔ)義來(lái)決定,與這個(gè)程序運(yùn)行在那一種處理機(jī)上無(wú)關(guān)。對(duì)于某一個(gè)特定的程序,圖中的三條曲線最終都要收攏到同一個(gè)點(diǎn)上。當(dāng)然,對(duì)于各個(gè)不同程序,這個(gè)收攏點(diǎn)的位置也是不同的。假設(shè)一條指令的執(zhí)行過(guò)程分為“取指令”、“分析”和“執(zhí)行”三段,每一段的執(zhí)行時(shí)間分別為t、2t和3t。在下列各種情況下,分別寫出連續(xù)執(zhí)行n條指令所需要的時(shí)間表達(dá)式。(1)順序執(zhí)行方式。(2)僅“取指令”和“執(zhí)行”重疊。(3) “取指令”、“分析”和“執(zhí)行”重疊習(xí)題5.2 (1)順序執(zhí)行需要的時(shí)間如下:(2)取指令和執(zhí)行重疊,即一次重疊執(zhí)行方式,我們假設(shè)第n+1條指令的取指令和第n條指令的執(zhí)行同時(shí)結(jié)束,那么所需要

47、的時(shí)間為:(3)取指令、分析和執(zhí)行重疊t6nnt)3t2t(TttnntttT5)32(解答ttntntttT53) 1(3)32(一條線性流水線有4個(gè)功能段組成,每個(gè)功能段的延遲時(shí)間都相等,都為t。開(kāi)始5個(gè)t,每間隔一個(gè)t向流水線輸入一個(gè)任務(wù),然后停頓2個(gè)t,如此重復(fù)。求流水線的實(shí)際吞吐率、加速比和效率。習(xí)題5.6流水線的時(shí)空?qǐng)D如下: 功能段 1功能段 2功能段 3功能段 4t2t3t4t5t6t7t8t10t9t121112223333444455556666777711t 12t 13t 14t 15t解答我們可以看出,在(11n+1)t的時(shí)間內(nèi),可以輸出5n個(gè)結(jié)果,如果指令的序列足夠長(zhǎng)

48、(n),并且指令間不存在相關(guān),那么,吞吐率可以認(rèn)為滿足:加速比為:從上面的時(shí)空?qǐng)D很容易看出,效率為:)(115)/111(5) 111(5nttntnnTp)(1120/1112011120) 111(45nnnntntnS)(115/1115) 111(4200nntntnTkTEk 用一條5個(gè)功能段的浮點(diǎn)加法器流水線計(jì)算 每個(gè)功能段的延遲時(shí)間均相等,流水線的輸出端和輸入端之間有直接數(shù)據(jù)通路,而且設(shè)置有足夠的緩沖寄存器。要求用盡可能短的時(shí)間完成計(jì)算,畫出流水線時(shí)空?qǐng)D,并計(jì)算流水線的實(shí)際吞吐率、加速比和效率。解答 首先需要考慮的是,10個(gè)數(shù)的的和最少需要做幾次加法。我們可以發(fā)現(xiàn),加法的次數(shù)是不

49、能減少的:9次;于是我們要盡可能快的完成任務(wù),就只有考慮如何讓流水線盡可能101iiAF習(xí)題5.7充滿,這需要消除前后指令之間的相關(guān)。由于加法滿足交換率和結(jié)合率,我們可以調(diào)整運(yùn)算次序如以下的指令序列,我們把中間結(jié)果寄存器稱為R,源操作數(shù)寄存器稱為A,最后結(jié)果寄存器稱為F,并假設(shè)源操作數(shù)已經(jīng)在寄存器中,則指令如下:I1:R1A1+A2I2:R2A3+A4I3:R3A5+A6I4:R4A7+A8I5:R5A9+A10I6:R6R1+R2I7:R7R3+R4I8:R8R5+R6I9:FR7+R8 這并不是唯一可能的計(jì)算方法。假設(shè)功能段的延遲為t。時(shí)空?qǐng)D如下,圖中的數(shù)字是指令號(hào)。 整個(gè)計(jì)算過(guò)程需要21

50、t,所以吞吐率為:加速比為:效率為:ttTp732191429. 221452159ttS73215590ttTkTEk一條線性靜態(tài)多功能流水線由6個(gè)功能段組成,加法操作使用其中的1、2、3、6功能段,乘法操作使用其中的1、4、5、6功能段,每個(gè)功能段的延遲時(shí)間均相等。流水線的輸入端與輸出端之間有直接數(shù)據(jù)通路,而且設(shè)置有足夠的緩沖寄存器?,F(xiàn)在用這條流水線計(jì)算:畫出流水線時(shí)空?qǐng)D,并計(jì)算流水線的實(shí)際吞吐率、加速比和效率。61)(iiiBAF習(xí)題5.9 為了取得較高的速度,我們需要一次將乘法作完,設(shè)源操作數(shù)存放在寄存器A、B中,中間結(jié)果存放在寄存器R中,最后結(jié)果存放在寄存器F中,則執(zhí)行的指令序列如下

51、所示:I1:R1A1*B1I2:R2A2*B2I3:R3A3*B3I4:R4A4*B4I5:R5A5*B5I6:R6A6*B6I7:R7R1+R2I8:R8R3+R4I9:R9R5+R6I10:R10R7+R8I11:FR9+R10解答這并不是唯一可能的計(jì)算方法。假設(shè)功能段的延遲為t。時(shí)空?qǐng)D(不完全)如下,圖中的數(shù)字是指令號(hào)。111911181117111610151098765432110987109876543216543219876543211413121110987654321整個(gè)計(jì)算過(guò)程需要22t,所以吞吐率為:加速比為:效率為:tTp1911194419411ttS57221964

52、110ttTkTEk 在下列不同結(jié)構(gòu)的處理機(jī)上運(yùn)行88的矩陣乘法C=AB,計(jì)算所需要的最短時(shí)間。只計(jì)算乘法指令和加法指令的執(zhí)行時(shí)間,不計(jì)算取操作數(shù)、數(shù)據(jù)傳送和程序控制等指令的執(zhí)行時(shí)間。加法部件和乘法部件的延遲時(shí)間都是3個(gè)時(shí)鐘周期,另外,加法指令和乘法指令還要經(jīng)過(guò)一個(gè)“取指令”和“指令譯碼”的時(shí)鐘周期,每個(gè)時(shí)鐘周期為20ns,C的初始值為“0”。各操作部件的輸出端有直接數(shù)據(jù)通路連接到有關(guān)操作部件的輸入端,在操作部件的輸出端設(shè)置有足夠容量的緩沖寄存器。 (1)處理機(jī)內(nèi)只有一個(gè)通用操作部件,采用順序方式執(zhí)行指令。 (2)單流水線標(biāo)量處理機(jī),有一條兩個(gè)功能的靜態(tài)流水線,流水線每個(gè)功能段的延遲時(shí)間均為一

53、個(gè)時(shí)鐘周期,加法操作和乘法操作各經(jīng)過(guò)3個(gè)功能段。習(xí)題5.15 (3)多操作部件處理機(jī),處理機(jī)內(nèi)有獨(dú)立的乘法部件和加法部件,兩個(gè)操作部件可以并行工作。只有一個(gè)指令流水線,操作部件不采用流水線結(jié)構(gòu)。 (4)單流水線標(biāo)量處理機(jī),處理機(jī)內(nèi)有兩條獨(dú)立的操作流水線,流水線每個(gè)功能段的延遲時(shí)間均為一個(gè)時(shí)鐘周期。 (5)超標(biāo)量處理機(jī),每個(gè)時(shí)鐘周期同時(shí)發(fā)射一條乘法指令和一條加法指令,處理機(jī)內(nèi)有兩條獨(dú)立的操作流水線,流水線的每個(gè)功能段的延遲時(shí)間均為一個(gè)時(shí)鐘周期。 (6)超流水線處理機(jī),把一個(gè)時(shí)鐘周期分為兩個(gè)流水級(jí),加法部件和乘法部件的延遲時(shí)間都為6個(gè)流水級(jí),每個(gè)時(shí)鐘周期能夠分時(shí)發(fā)射兩條指令,即每個(gè)流水級(jí)能夠發(fā)射一

54、條指令。 (7)超標(biāo)量超流水線處理機(jī),把一個(gè)時(shí)鐘周期分為兩個(gè)流水級(jí),加法部件和乘法部件延遲時(shí)間都為6個(gè)流水級(jí),每個(gè)流水級(jí)能夠同時(shí)發(fā)射一條乘法指令和一條加法指令。要完成上面的矩陣乘法,我們可以計(jì)算需要完成的各種操作的數(shù)量(假定A和B都是88的矩陣。C語(yǔ)言代碼如下:int k;for(int i=0;i8;i+)for(int j=0;j8;j+)sum=0;for(k=0;k8;k+)sum+=AikBkjCij=sum;需要完成的乘法數(shù)目為888=512次;需要完成的加法數(shù)目為887=448次;解答 下面我們分析處理機(jī)的結(jié)構(gòu)會(huì)給性能帶來(lái)什么樣的影響。(1)順序執(zhí)行時(shí),每個(gè)乘法和加法指令都需要5

55、個(gè)時(shí)鐘周期(取指令、指令分析、指令執(zhí)行);所以所需要的時(shí)間為:(2)單流水線標(biāo)量處理機(jī),采用兩功能靜態(tài)流水線時(shí);因?yàn)橛凶銐虻木彌_寄存器,所以我們可以首先把所有的乘法計(jì)算完,并通過(guò)調(diào)度使加法流水線不出現(xiàn)停頓,所以所需要的時(shí)間為:msnsnsT9696000205)448512(nsnsTTTT193202014483151232)()(加法乘法第一條指令進(jìn)入流水線(3)多操作部件處理機(jī),只有一條指令流水線。由于只有一條指令流水線,所以只能一個(gè)時(shí)鐘周期發(fā)射一條指令,我們可以考察加法部件的執(zhí)行過(guò)程,對(duì)C矩陣的第一個(gè)元素,當(dāng)乘法部件完成兩次計(jì)算后,加法部件啟動(dòng)運(yùn)行7次,然后對(duì)其余的元素,加法部件停頓3

56、個(gè)時(shí)鐘周期,然后運(yùn)行7次。故執(zhí)行時(shí)間為:(4)單流水線標(biāo)量處理機(jī),有兩條獨(dú)立的操作流水線;由于只有一條指令流水線,所以只能一個(gè)時(shí)鐘周期發(fā)射一條指令,由于存在足夠的緩沖寄存器,我們可以通過(guò)合適的調(diào)度消除數(shù)據(jù)相關(guān)。故執(zhí)行時(shí)間為:nsnsT3082020)733(63)7323(2nsnsT10380203)1512(32(5)超標(biāo)量機(jī),能同時(shí)發(fā)射一條加法和一條乘法指令,有兩條獨(dú)立的操作流水線。他的執(zhí)行過(guò)程和(3)很相象,乘法流水線一直在運(yùn)行,而加法流水線因?yàn)閿?shù)據(jù)相關(guān)而存在停頓。我們可以換個(gè)角度,來(lái)考察乘法流水線的運(yùn)行情況。從第3個(gè)時(shí)鐘周期,乘法流水線一直忙碌,在乘法流水線完成所有計(jì)算后,加法流水線

57、還需要完成最后一次計(jì)算。所以執(zhí)行時(shí)間為:nsnsT1928020 1)448512(32 (6)超流水線處理機(jī),每個(gè)時(shí)鐘周期發(fā)射兩條指令,加法部件和乘法部件都為6個(gè)流水級(jí)。事實(shí)上相當(dāng)于將時(shí)鐘周期變成了10ns,而加法和乘法流水線變成了6級(jí)。這樣和(4)類似有執(zhí)行時(shí)間為:(7)超標(biāo)量超流水線處理機(jī),一個(gè)時(shí)鐘周期分為兩個(gè)流水級(jí),加法部件和乘法部件都為6個(gè)流水級(jí),每個(gè)流水級(jí)能同時(shí)發(fā)射一條加法和一條乘法指令。綜合(5)和(6)的分析,我們可以知道,執(zhí)行時(shí)間為:nsnsT967010 1)448512(62nsnsT5250106)1512(62第八章第八章 標(biāo)量處理機(jī)與向量處理機(jī)標(biāo)量處理機(jī)與向量處理機(jī)

58、n向量處理機(jī)n向量處理機(jī)是解決數(shù)值計(jì)算問(wèn)題的一種高性能計(jì)算機(jī)結(jié)構(gòu)n向量處理機(jī)一般都采用流水線結(jié)構(gòu),有多條流水線并行工作n向量處理機(jī)通常屬大型或巨型機(jī),也可以用微機(jī)加一臺(tái)向量協(xié)處理器組成n一般向量計(jì)算機(jī)中包括有一臺(tái)高性能標(biāo)量處理機(jī)n必須把要解決的問(wèn)題轉(zhuǎn)化為向量運(yùn)算,向量處理機(jī)才能充分發(fā)揮作用第八章第八章 標(biāo)量處理機(jī)與向量處理機(jī)標(biāo)量處理機(jī)與向量處理機(jī)n8.5 向量處理的基本概念向量處理的基本概念n8.6 向量處理機(jī)結(jié)構(gòu)向量處理機(jī)結(jié)構(gòu)n8.7 提高向量處理機(jī)性能的辦法提高向量處理機(jī)性能的辦法n8.8 向量處理機(jī)實(shí)例向量處理機(jī)實(shí)例(自學(xué)自學(xué))n8.9 向量處理機(jī)的性能評(píng)價(jià)向量處理機(jī)的性能評(píng)價(jià) 8.5

59、向量處理的基本概念向量處理的基本概念n什么是向量處理什么是向量處理n 例如:一個(gè)簡(jiǎn)單的C語(yǔ)言程序如下:for (i = 1; i N ) GOTO 20q read bIq read cIq add bI+cIq store aIbI+cIq read aI+1q multiply 2*aI+1q store bI 2*aI+1q increment I I+1q goto 1010Stop常量常量2 2,a,b,ca,b,c中每中每一個(gè)元素都稱為一一個(gè)元素都稱為一個(gè)標(biāo)量。該指令序個(gè)標(biāo)量。該指令序列稱為標(biāo)量指令序列稱為標(biāo)量指令序列,執(zhí)行過(guò)程為標(biāo)列,執(zhí)行過(guò)程為標(biāo)量處理過(guò)程,每一量處理過(guò)程,每一條

60、指令只處理一個(gè)條指令只處理一個(gè)或一對(duì)數(shù)據(jù)?;蛞粚?duì)數(shù)據(jù)。n上述程序用向量化指令序列實(shí)現(xiàn)為: a1:n=b1:n+c1:n temp1:n=a2:n+1 b1:n=2*temp1:n 將n個(gè)獨(dú)立的數(shù)構(gòu)成的整體稱為向量向量,對(duì)這一組數(shù)的運(yùn)算稱為向量處理向量處理。一條向量處理指令可以處理n個(gè)或n對(duì)操作數(shù)。向量處理方式n要根據(jù)向量運(yùn)算的特點(diǎn)和向量處理機(jī)的類型選擇向量的處理方式。n有三種處理方式:1橫向處理方式,又稱為水平處理方式,橫向加工方式等。向量計(jì)算是按行的方式從左至右橫向地進(jìn)行。2縱向處理方式,又稱為垂直處理方式,縱向加工方式等。向量計(jì)算是按列的方式自上而下縱向地進(jìn)行。3縱橫處理方式,又稱為分組處

溫馨提示

  • 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)論