軟件工程---07指令流水_第1頁
軟件工程---07指令流水_第2頁
軟件工程---07指令流水_第3頁
軟件工程---07指令流水_第4頁
軟件工程---07指令流水_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第七章 指令流水一、如何提高機(jī)器速度1. 提高訪存速度2. 提高 I/O 和主機(jī)之間的傳送速度 提高整機(jī)處理能力高速芯片Cache多體并行多總線DMAI/O 處理機(jī)通道高速器件改進(jìn)系統(tǒng)結(jié)構(gòu) ,開發(fā)系統(tǒng)的并行性中斷3. 提高運(yùn)算器速度高速芯片改進(jìn)算法快速進(jìn)位鏈二、系統(tǒng)的并行性時(shí)間上互相重疊2. 并行性的等級指令級(指令之間)過程級(程序、進(jìn)程)兩個(gè)或兩個(gè)以上事件在 同一時(shí)刻 發(fā)生兩個(gè)或兩個(gè)以上事件在 同一時(shí)間段 發(fā)生并行1. 并行的概念粗粒度軟件實(shí)現(xiàn)細(xì)粒度硬件實(shí)現(xiàn)并發(fā)同時(shí)取指令 3執(zhí)行指令 3三、指令流水原理2. 指令的二級流水1. 指令的串行執(zhí)行取指令 取指令部件 完成總有一個(gè)部件 空閑指令預(yù)

2、取若 取指 和 執(zhí)行 階段時(shí)間上 完全重疊指令周期 減半 速度提高 1 倍執(zhí)行指令 執(zhí)行指令部件 完成取指令 1執(zhí)行指令 1取指令 2執(zhí)行指令 2取指令 3執(zhí)行指令 3取指令 2執(zhí)行指令 2取指令 1執(zhí)行指令 1 必須等 上條 指令執(zhí)行結(jié)束,才能確定 下條 指令的地址 造成時(shí)間損失3. 影響指令流水效率加倍的因素(1) 執(zhí)行時(shí)間 取指時(shí)間 (2) 條件轉(zhuǎn)移指令 對指令流水的影響 解決辦法 ?取指令部件指令部件緩沖區(qū)執(zhí)行指令部件猜測法4. 指令的六級流水六級流水14 個(gè)時(shí)間單位串行執(zhí)行6 9 54 時(shí)間單位完成 一條指令6 個(gè)時(shí)間單位COFOEIWODIFICOFOEIWODIFICOFOEIW

3、ODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFI指令 1指令 2指令 3指令 4指令 5指令 6指令 7指令 8指令 9 1 2 3 4 5 6 7 8 9 10 11 12 13 14t指令 1 與指令 4 沖突指令 2 與指令 5 沖突指令1、指令3、指令 6 沖突COFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFI指令 1

4、指令 2指令 3指令 4指令 5指令 6指令 7指令 8指令 9 1 2 3 4 5 6 7 8 9 10 11 12 13 14t三、影響指令流水性能的因素1. 訪存沖突(結(jié)構(gòu)相關(guān))COFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFI指令 1指令 2指令 3指令 4指令 5指令 6指令 7指令 8指令 9 1 2 3 4 5 6 7 8 9 10 11 12 13 14t三、影響指令流水性能的因素1. 訪存沖突(結(jié)構(gòu)相關(guān))解決辦法

5、 指令存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開(硬件開銷增大)指令預(yù)取技術(shù)(適用于訪存周期短的情況,8086)加入氣泡(將取指延遲一個(gè)單位時(shí)間)指令隊(duì)列2. 相關(guān)問題程序的相近指令之間出現(xiàn)某種關(guān)聯(lián)使指令流水出現(xiàn)停頓 影響流水線效率(1) 控制相關(guān)BNE 指令必須等CPX 指令的結(jié)果才能判斷出是轉(zhuǎn)移還是順序執(zhí)行LDA # 0LDX # 0INXCPX # NBNE MDIV # NSTA ANSADD X, DM2. 相關(guān)問題(1) 控制相關(guān)WOEIFOCODIWOEIFODIFIFIDIFICOFIFOCODIFIWOEIFOCODIFIDIFOEIWOEIFOCOFIDICOWODIFICOFI指令 1指令

6、2指令 3指令 4指令 5指令 6指令 7指令15指令16 1 2 3 4 5 6 7 8 9 10 11 12 13 14轉(zhuǎn)移損失t設(shè) 指令3 是轉(zhuǎn)移指令(2) 數(shù)據(jù)相關(guān)幾條相近的指令間,共用 同一存儲(chǔ)單元 或 同一寄存器 時(shí),會(huì)出現(xiàn) 數(shù)據(jù)相關(guān)ADD R1,R2如:SUB R1,R3采用 旁路技術(shù)解決辦法寄存器組鎖存器鎖存器ALU四、流水線性能 1. 吞吐率單位時(shí)間內(nèi)流水線所完成的任務(wù)數(shù)量或輸出結(jié)果的數(shù)量各段時(shí)間均相等的流水線流水線完成n個(gè)連續(xù)任務(wù)所需要的總時(shí)間為Tmmt(n-1)t(mn-1)t(假設(shè)一條m段線性流水線)mt流水線的實(shí)際吞吐率最大吞吐率最大吞吐率與實(shí)際吞吐率的關(guān)系 當(dāng)nm時(shí)

7、,有TPTPmax各段時(shí)間不相等的流水線各段時(shí)間不等的流水線的實(shí)際吞吐率( ti為第i段的時(shí)間, 共有m個(gè)段 )流水線的最大吞吐率例如:一條4段的流水線中,S1,S2,S4各段的時(shí)間都是t,唯有S3的時(shí)間是3t最大吞吐率為瓶頸解決流水線瓶頸段,以提高流水線吞吐率的方法有兩種細(xì)分瓶頸段改進(jìn)后的流水線的吞吐率 :重復(fù)設(shè)置瓶頸段重復(fù)設(shè)置瓶頸段后的時(shí)空圖2.加速比完成同樣一批任務(wù),不使用流水線所用的時(shí)間與使用流水線所用的時(shí)間之比不使用流水線(即順序執(zhí)行)所用的時(shí)間使用m個(gè)段流水線后所用的時(shí)間流水線各段時(shí)間相等(都是t)實(shí)際加速比最大加速比思考:流水線的段數(shù)愈多愈好? 當(dāng)nm時(shí),S m流水線的各段時(shí)間不

8、完全相等一條m段流水線完成n個(gè)連續(xù)任務(wù)的實(shí)際加速比3.效率 流水線中的設(shè)備實(shí)際使用時(shí)間與整個(gè)運(yùn)行時(shí)間的比值,即流水線設(shè)備的利用率 由于流水線有通過時(shí)間和排空時(shí)間,所以在連續(xù)完成n個(gè)任務(wù)的時(shí)間內(nèi),各段并不是滿負(fù)荷地工作各段時(shí)間相等各段的效率Ei相同均為E0整條流水線的效率最高效率實(shí)際加速比與它的最大加速 比的比值流水線的效率與吞吐率 成正比n個(gè)任務(wù)占用的時(shí)空區(qū)面積m個(gè)段總的時(shí)空區(qū)面積各段時(shí)間不相等3. 流水線工作舉例設(shè)在下圖所示的靜態(tài)流水線上計(jì)算: 流水線的輸出可以直接返回輸入端或暫存于相應(yīng)的流水寄存器中,試計(jì)算其吞吐率、加速比和效率。解(1)選擇適合于流水線工作的算法 先計(jì)算A1+B1、A2+

9、B2、A3+B3和A4+B4; 再計(jì)算(A1+B1)(A2+B2)和(A3+B3)(A4+B4); 然后求總的乘積結(jié)果。(2)畫出時(shí)空圖 (3)靜態(tài)流水線與動(dòng)態(tài)流水線靜態(tài)流水線(Static Pipelining) 同一段時(shí)間內(nèi),多功能流水線只能按一種方式連接,實(shí)現(xiàn)一種功能。 只有當(dāng)按照這種連接流入的所有處理的對象都流出流水線之后,多功能流水線才能重新進(jìn)行連接以實(shí)現(xiàn)其他功能 對于靜態(tài)流水線來說,只有當(dāng)輸入的是一串相同的運(yùn)算任務(wù)時(shí),流水的效率才能得到充分的發(fā)揮(3)靜態(tài)流水線與動(dòng)態(tài)流水線動(dòng)態(tài)流水線(Dynamic Pipelinging) 同一段時(shí)間內(nèi),多功能流水線中的各段可以實(shí)現(xiàn)多種連接,同時(shí)

10、執(zhí)行多種功能任何一個(gè)功能段只能參加到一種連接中靈活,能夠提高流水線各段的使用率,從而提高處理速度,控制復(fù)雜五、流水線的多發(fā)技術(shù) 1. 超標(biāo)量技術(shù) 每個(gè)時(shí)鐘周期內(nèi)可 并發(fā)多條獨(dú)立指令 不能調(diào)整 指令的 執(zhí)行順序配置多個(gè)功能部件 通過編譯優(yōu)化技術(shù),把可并行執(zhí)行的指令搭配起來IF ID EX WR0 1 2 3 4 5 6 7 8 9 10 11 12 13t2. 超流水技術(shù) 在 一個(gè)時(shí)鐘周期 內(nèi) 再分段 ( 3 段) 不能調(diào)整 指令的 執(zhí)行順序在一個(gè)時(shí)鐘周期內(nèi) 一個(gè)功能部件使用多次( 3 次)靠編譯程序解決優(yōu)化問題0 1 2 3 4 5 6 7 8 9 10 11 12 13tIF ID EX W

11、R流水線速度是原來速度的 3 倍3. 超長指令字 采用 多個(gè)處理部件具有 多個(gè)操作碼字段 的 超長指令字(可達(dá)幾百位)由編譯程序 挖掘 出指令間 潛在 的 并行性,將 多條 能 并行操作 的指令組合成 一條IF ID EX WR0 1 2 3 4 5 6 7 8 9 10 11 12 13t五、流水線結(jié)構(gòu)1. 指令流水線結(jié)構(gòu)完成一條指令分 7 段, 每段需一個(gè)時(shí)鐘周期若 流水線不出現(xiàn)斷流1 個(gè)時(shí)鐘周期出 1 結(jié)果不采用流水技術(shù)7 個(gè)時(shí)鐘周期出 1 結(jié)果理想情況下,7 級流水 的速度是不采用流水技術(shù)的 7 倍地址形成部件指令譯碼部件取操作數(shù)部件取指令部件操作執(zhí)行部件回寫結(jié)果部件修改指令指針部件鎖存鎖存鎖存鎖存鎖存鎖存2. 運(yùn)算流水線完成 浮點(diǎn)加減 運(yùn)算 可分對階、尾數(shù)求和、規(guī)格化 三段分段原則 每段 操作時(shí)間 盡量 一致鎖存器對階功能部件第一段尾數(shù)加部件鎖存器第二段規(guī)格化部件鎖存器第三段3. 指令流水線舉例(IBM3033)指令緩沖寄存器組1指令緩沖寄存器組2指令緩沖寄存器組3指令Cache指令寄存器通用寄存器組操作數(shù)地址寄存器組操作數(shù)緩沖寄存器組指令隊(duì)列寄存器1指令隊(duì)列寄存器4執(zhí)行部件指令部件存放已分析過的指令也按流水線方式每組平均存放8條指令(32位)無轉(zhuǎn)移指令時(shí),只使用其中一組3. 指令流

溫馨提示

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

評論

0/150

提交評論