




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
流水處理和
指令級并行流水線基本概念相關性分析技術多指令放射技術流水線基本概念引入流水線工作原理流水線的分類流水線的性能分析非線性流水線的調度技術本章內容引入本章內容>>流水線基本概念標量處理機具有標量數(shù)據(jù)表示和標量指令系統(tǒng)的處理機稱為標量處理機。提高指令執(zhí)行速度的主要途徑提高處理機的工作主頻;接受更好的算法和設計更好的功能部件;接受指令級并行(ILP)技術(本章介紹)。流水線工作原理本章內容>>流水線基本概念基本思想表示方法主要特點流水線基本思想本章內容>>流水線基本概念>>流水線工作原理基本思想:以指令流水線為例進行介紹:取指分析執(zhí)行通過將一個重復的過程分解為若干子過程,每個子過程可以與其它子過程同時進行?!鱰△t△t5之1流水線基本思想本章內容>>流水線基本概念>>流水線工作原理依次執(zhí)行取指k分析k執(zhí)行k取指k+1分析k+1執(zhí)行k+1……優(yōu)點:限制簡潔,節(jié)約設備。缺點:處理器執(zhí)行指令的速度慢功能部件的利用率很低n條指令的執(zhí)行時間為:5之2n條指令的執(zhí)行時間為:流水線基本思想本章內容>>流水線基本概念>>流水線工作原理一次重疊
取指k分析k執(zhí)行k取指k+1分析k+1執(zhí)行k+1取指k+2分析k+2執(zhí)行k+2優(yōu)點:執(zhí)行指令的速度較快功能部件的利用率較高缺點:限制較困難,需增加設備5之3n條指令的執(zhí)行時間為:流水線基本思想本章內容>>流水線基本概念>>流水線工作原理二次重疊
優(yōu)點:執(zhí)行指令的速度更快功能部件的利用率更高缺點:限制更困難,需增加設備取指k+2分析k+2執(zhí)行k+2取指k+1分析k+1執(zhí)行k+1取指k分析k執(zhí)行k5之4流水線基本思想本章內容>>流水線基本概念>>流水線工作原理流水線利用并行性實現(xiàn):空間并行性設置多個獨立的操作部件。時間并行性分時運用同一個部件的不同部分。5之5流水線表示方法本章內容>>流水線基本概念>>流水線工作原理流水線的表示方法通常有三種:連接圖時空圖預約表連接圖本章內容>>流水線基本概念>>流水線工作原理>>流水線表示方法分析器分析k+1流水
鎖存器執(zhí)行部件執(zhí)行k流水
鎖存器輸入輸出t1t2Stage1latch輸入輸出t1t2Stage2latchStage3latcht32之1連接圖功能段流水線的每一個階段稱為流水步、流水步驟、流水段、流水線階段、流水功能段、流水級、流水節(jié)拍等。流水寄存器在每一個流水段的末尾或開頭必需設置一個寄存器,稱為流水寄存器、流水鎖存器、流水閘門寄存器等。加入流水寄存器,會增加指令的執(zhí)行時間。在一般流水線中不畫出流水寄存器。本章內容>>流水線基本概念>>流水線工作原理>>流水線表示方法2之2時空圖1時間空間0t1t2t3t4t52345123451234512345t6t7t8求階差對階尾數(shù)加規(guī)格化求階差對階尾數(shù)加規(guī)格化△t△t△t△t本章內容>>流水線基本概念>>流水線工作原理>>流水線表示方法流水線主要特點本章內容>>流水線基本概念>>流水線工作原理只有連續(xù)供應同類任務才能發(fā)揮流水線效率盡量削減因條件分支造成的“斷流”,可通過編譯技術供應連續(xù)的相同類型操作。每個流水線段都要設置一個流水寄存器用于保存本流水線段的執(zhí)行結果,會使流水線的執(zhí)行時間加長,是流水線中須要增加的主要硬件。各流水段的時間應盡量相等流水線處理機的基本時鐘周期等于時間最長的流水段的時間長度。流水線須要有“裝入時間”和“排空時間”流水線的分類本章內容>>流水線基本概念從不同的角度,依據(jù)不同的觀點,可以將流水線分成多種不同的種類。分類一分類二分類三分類四其它分類一單功能流水線只能完成一種固定功能的流水線。例如:Cray-1計算機中有12條;YH-1計算機有18條;Pentium有一條5段定點和一條8段浮點流水線;PentiumⅢ有兩條定點和一條浮點指令流水線。多功能流水線流水線的各段通過不同連接實現(xiàn)不同功能。例如:Texas公司的ASC機,8段流水線,能夠實現(xiàn):定點加減法、定點乘法、浮點加法、浮點乘法、邏輯運算、移位操作、數(shù)據(jù)轉換、向量運算等。本章內容>>流水線基本概念>>流水線的分類按流水線具有功能的多少來分,可分為:2之1Texas公司ASC機上的8段多功能流水線2之2分類二本章內容>>流水線基本概念>>流水線的分類在多功能流水線中,依據(jù)在同一時間內是否能夠連接成多種方式,同時執(zhí)行多種功能,可以將多功能流水線分為:靜態(tài)流水線動態(tài)流水線靜態(tài)流水線本章內容>>流水線基本概念>>流水線的分類>>分類二同一段時間內,各個功能段只能依據(jù)一種方式連接,實現(xiàn)一種固定的功能。1時間空間023…n123…n123…n123…n123…n123…n1234…123…12……1輸入求階差對階尾數(shù)加規(guī)格化尾數(shù)乘累加輸出浮點加法定點乘法動態(tài)流水線在同一段時間內,各段可以依據(jù)不同的方式連接,同時執(zhí)行多種功能。1時間空間023…n123…n123…n123…n123…n123…n輸入求階差對階尾數(shù)加規(guī)格化尾數(shù)乘累加輸出………………123546123541234123…………浮點加法定點乘法本章內容>>流水線基本概念>>流水線的分類>>分類二分類三本章內容>>流水線基本概念>>流水線的分類依據(jù)流水線的各個功能段之間是否有反饋信號,可以將流水線分為:線性流水線是指流水線內各功能段串行連接,沒有反饋回路,各個功能段只經(jīng)過一次。一條線性流水線通常只完成一種固定的功能。例子:指令流水線、浮點加法器流水線等。非線性流水線是指流水線內除有串行連接的通路外,還有某種反饋回路,使得一次流水過程中,某些段會多次通過。非線性流水線常常用于遞歸調用,或構成多功能流水線等。3之1非線性流水線S1輸入S2S3輸出前饋回路反饋回路一種簡潔的非線性流水線對應的兩種預約表××S3×S2×S14321S3×××S2×S143215×3之2本章內容>>流水線基本概念>>流水線的分類提示線性流水線能夠用連接圖唯一表示,非線性流水線必需用連接圖和預約表共同表示。一條非線性流水線可以對應有很多張預約表,同樣,一張預約表事實上僅表示了一條非線性流水線的一種工作方式線性流水線事實上也有預約表,只不過它的預約表是固定的(一張對角線為×的正方形的表格)3之3本章內容>>流水線基本概念>>流水線的分類分類四依據(jù)流水線運用的不同級別,可以將流水線分為:部件級流水線處理機級流水線系統(tǒng)級流水線本章內容>>流水線基本概念>>流水線的分類部件級流水線本章內容>>流水線基本概念>>流水線的分類>>分類四是指構成部件內的各子部件之間的流水。例如:浮點加法器流水線。求階差輸入輸出t1對階尾數(shù)加規(guī)格化t2t3t4處理機級流水線又稱為指令流水線,例如:在接受先行限制器的處理機中,各功能部件之間的流水線。先行指令
緩沖棧輸入先行控制方式
中的指令流水線先行指令
分析器先行讀數(shù)棧
先行操作棧取指譯碼取操作數(shù)指令執(zhí)行部件后行寫數(shù)棧輸出執(zhí)行寫結果本章內容>>流水線基本概念>>流水線的分類>>分類四系統(tǒng)級流水線也稱為宏流水線,是處理機之間的流水線。例如:每個處理機對同一個數(shù)據(jù)流的不同部分分別進行處理。P1輸入任務1MM…P2任務2MP3任務3輸出本章內容>>流水線基本概念>>流水線的分類>>分類四其它依據(jù)不同的數(shù)據(jù)表示方式分:標量流水線對標量數(shù)據(jù)進行處理。向量流水線對向量數(shù)據(jù)進行處理。依據(jù)流水線中信息流淌依次的限制方式分:依次流水線流水線輸出端的任務流出依次與輸入端的任務流入依次完全相同。異步流水線流水線輸出端的任務流出依次與輸入端的任務流入依次可以不一樣。本章內容>>流水線基本概念>>流水線的分類流水線的性能分析本章內容>>流水線基本概念吞吐率加速比效率流水線最佳段數(shù)的選擇性能分析舉例吞吐率定義單位時間內能流出的任務數(shù)或能流出的結果數(shù)。公式n:任務數(shù);Tm:處理完成n個任務所用的時間。本章內容>>流水線基本概念>>流水線的性能分析8之1案例1:志向狀況(1)假設在流水線各段的執(zhí)行時間均相等,輸入到流水線中的任務是連續(xù)的志向狀況下,一條單功能m段線性流水線能夠在m+n-1個時鐘周期內完成n個任務。本章內容>>流水線基本概念>>流水線的性能分析8之21時間空間S123……n-1nS2…Sm123……n-1n…………………123……n-1nmt(n-1)tnt(m-1)tTm案例1:志向狀況(2)本章內容>>流水線基本概念>>流水線的性能分析8之3實際吞吐率最大吞吐率兩者之間的關系案例2:實際狀況假設在流水線各段的執(zhí)行時間不相等,輸入到流水線中的任務是連續(xù)的志向狀況下。實際吞吐率最大吞吐率本章內容>>流水線基本概念>>流水線的性能分析8之4問題及解決本章內容>>流水線基本概念>>流水線的性能分析8之5問題流水線的TP和TPmax主要由流水線中執(zhí)行時間最長的那個功能段來確定,這個功能段就成了整個流水線的“瓶頸”。解決將流水線中的“瓶頸”再細分;通過重復設置多套瓶頸功能段,讓多個瓶頸功能段并行工作。舉例-瓶頸本章內容>>流水線基本概念>>流水線的性能分析8之6S1t1=tS2t2=3tS3t3=tS4t4=t輸出1時間空間S1S2S3S4ti(n-1)t2Tm23…n123…n123…n123…n輸入舉例-瓶頸解決本章內容>>流水線基本概念>>流水線的性能分析8之7S1輸入輸出tS2-1tS2-2tS2-3tS3tS4tS2(3t)S1輸入輸出t1=tS2-3S2-2S2-1S3S4t3=tt4=tt2=3t瓶頸細分多套瓶頸舉例-多套瓶頸時空圖本章內容>>流水線基本概念>>流水線的性能分析8之81時間空間23nS1S2-1456…14…n-2n-1n-225…n-136…n123n456…n-2n-1123n456…n-2n-1S2-2S2-3S3S4加速比本章內容>>流水線基本概念>>流水線的性能分析定義完成同樣一批任務,不運用流水線所用的時間與運用流水線所用的時間之比。公式T0:依次執(zhí)行所用的時間;Tm:運用流水線所用的時間。3之1案例1:志向狀況假設在流水線各段的執(zhí)行時間都相等,輸入到流水線中的任務是連續(xù)的志向狀況下。實際加速比最大加速比本章內容>>流水線基本概念>>流水線的性能分析3之2案例2:實際狀況假設在流水線各段的執(zhí)行時間不相等,輸入到流水線中的任務是連續(xù)的志向狀況下。實際加速比本章內容>>流水線基本概念>>流水線的性能分析3之3效率本章內容>>流水線基本概念>>流水線的性能分析定義是指流水線的設備利用率。在時空圖上,流水線的效率定義為n個任務占用的時空區(qū)與m個功能段總的時空區(qū)之比。公式1時間空間S1…nS2…Sm1…n………1…n4之1案例1:志向狀況假設在流水線各段的執(zhí)行時間都相等,輸入到流水線中的任務是連續(xù)的志向狀況下。實際效率最大效率本章內容>>流水線基本概念>>流水線的性能分析4之2案例2:實際狀況(1)假設在流水線各段的執(zhí)行時間不相等,輸入到流水線中的任務是連續(xù)的志向狀況下。實際效率(功能段等權值)本章內容>>流水線基本概念>>流水線的性能分析4之3案例2:實際狀況(2)實際效率(功能段權值不同)其中,i為i段的權值,i<m,且本章內容>>流水線基本概念>>流水線的性能分析4之4流水線最佳段數(shù)的
選擇本章內容>>流水線基本概念>>流水線的性能分析問題提出功能段數(shù)量的增加能提高流水線的吞吐率和加速比,但使流水線價格增加(鎖存器數(shù)量的增加),一條指令執(zhí)行的總時間增加(鎖存器的總延遲時間增加)。所以從性價比角度動身流水線存在著最佳段數(shù)。2之1流水線最佳段數(shù)的選擇問題解決對自變量m求導,求PCR的最大值,得到最佳段數(shù)為:本章內容>>流水線基本概念>>流水線的性能分析t:任務總時間d:鎖存器時間m:功能段數(shù)a:全部功能段價格b:鎖存器價格2之2性能分析舉例本章內容>>流水線基本概念>>流水線的性能分析問:用一條4段浮點加法器流水線求8個浮點數(shù)的和,要求所用時間最短,求流水線的吞吐率、加速比和效率。Z=A+B+C+D+E+F+G+H答:由于存在著數(shù)據(jù)相關,假如干脆交與流水線處理,效果與依次執(zhí)行完全一樣,因此先作一個簡潔變換,然后交與流水線處理。Z=[(A+B)+(C+D)]+[(E+F)+(G+H)]3之1性能分析舉例本章內容>>流水線基本概念>>流水線的性能分析3之21時間空間23求階差4567123456712345671234567對階尾數(shù)加規(guī)格化加數(shù)ACEGA+BE+FBDFHC+DG+HA+B+C+DE+F+G+H結果A+BC+DE+FG+HA+B+C+DE+F+G+HZ被加數(shù)性能分析舉例流水線的吞吐率為:流水線的加速比為:流水線的效率為:本章內容>>流水線基本概念>>流水線的性能分析3之3非線性流水線的
調度技術本章內容>>流水線基本概念調度目的非線性流水線的沖突無沖突調度方法優(yōu)化調度方法調度目的本章內容>>流水線基本概念>>非線性流水線的調度技術非線性流水線的調度目的是要找出一個最小的循環(huán)周期,依據(jù)這周期向流水線輸入新任務,流水線的各個功能段都不會發(fā)生沖突,而且流水線的吞吐率和效率最高。非線性流水線的沖突本章內容>>流水線基本概念>>非線性流水線的調度技術啟動距離向一條非線性流水線的輸入端依次輸入兩個任務之間的時間間隔稱為啟動距離/等待時間。沖突幾個任務同時爭用同一個流水線功能段的狀況稱為非線性流水線的沖突。禁止啟動距離引起非線性流水線沖突的啟動距離稱為禁止啟動距離。5之1舉例-非線性流水線本章內容>>流水線基本概念>>非線性流水線的調度技術5之2輸出S1S2S3S4輸入×S4××S3××S2×××S17654321時間流水段舉例-流水線沖突本章內容>>流水線基本概念>>非線性流水線的調度技術5之3舉例-流水線不沖突本章內容>>流水線基本概念>>非線性流水線的調度技術5之4不發(fā)生沖突的啟動距離一般是一個循環(huán)數(shù)列,稱為非線性流水線的啟動循環(huán),記作(1,7)。舉例-流水線不沖突啟動距離5也可以認為是一個循環(huán)數(shù)列,稱為非線性流水線的恒定循環(huán),記作(5)。本章內容>>流水線基本概念>>非線性流水線的調度技術5之5無沖突調度方法-例子本章內容>>流水線基本概念>>非線性流水線的調度技術×S4××S3××S2××S17654321時間流水段12之1S1S2S3S4輸入輸出無沖突調度方法-步驟本章內容>>流水線基本概念>>非線性流水線的調度技術由預約表得到禁止向量由禁止向量得到?jīng)_突向量由沖突向量構造調度流水線的狀態(tài)圖在狀態(tài)圖中找出可用啟動距離,并計算平均啟動距離找出平均啟動距離最小的啟動循環(huán)或恒定循環(huán)12之2步驟一本章內容>>流水線基本概念>>非線性流水線的調度技術>>無沖突調度方法由預約表得到禁止向量定義:將一條非線性流水線的全部各功能段禁止啟動距離組合在一起形成的數(shù)列。計算:將預約表中的每一行中隨意兩個“×”之間的距離都計算出來,去掉重復的,由這些數(shù)形成禁止向量。例子:上例所示非線性流水線的禁止向量為(2,4,6)。12之3步驟二本章內容>>流水線基本概念>>非線性流水線的調度技術>>無沖突調度方法由禁止向量得到?jīng)_突向量概念:沖突向量用一個m位的二進制數(shù)表示(其中m是禁止向量中的最大值),一般格式為C=(CmCm-1…Ci…C2C1),若i在禁止向量中,則Ci=1,否則Ci=0,其中Cm確定為1。例子:上例所示非線性流水線的沖突向量為C=(101010)。12之4步驟三(1)本章內容>>流水線基本概念>>非線性流水線的調度技術>>無沖突調度方法由沖突向量構造調度流水線的狀態(tài)圖將沖突向量C作為初始沖突向量送入一個m位邏輯右移移位器,移位m次;若移出的是“0”,用移位器中的值與初始沖突向量作“按位或”運算,得到一個新的沖突向量;若移出的是“1”,不作任何處理。將中間形成的每一個新的沖突向量同樣處理;畫出狀態(tài)圖。 在初始沖突向量和全部的新形成的沖突向量之間用帶箭頭的線連接,表示各種狀態(tài)之間的轉換關系。12之5步驟三(2)本章內容>>流水線基本概念>>非線性流水線的調度技術>>無沖突調度方法12之6步驟四(1)本章內容>>流水線基本概念>>非線性流水線的調度技術>>無沖突調度方法在狀態(tài)圖中找出可用啟動距離,并計算平均啟動距離在狀態(tài)圖中從初始狀態(tài)動身,能構成一種間隔拍數(shù)呈周期性重復的方案就是可用啟動距離。即:找出全部的簡潔循環(huán)(是指在狀態(tài)圖中各種沖突向量只經(jīng)過一次的啟動循環(huán))。12之7步驟四(2)本章內容>>流水線基本概念>>非線性流水線的調度技術>>無沖突調度方法簡單循環(huán)平均啟動距離1,743,755,763,5,755,3,753,54557712之8步驟五(1)本章內容>>流水線基本概念>>非線性流水線的調度技術>>無沖突調度方法找出平均啟動距離最小的啟動循環(huán)或恒定循環(huán)啟動循環(huán)(1,7)和(3,5)恒定循環(huán)(5)12之9步驟五(2)本章內容>>流水線基本概念>>非線性流水線的調度技術>>無沖突調度方法12之10××S3×S2×S143215×S467××1234567891011121314151617181920…S1X1X2X1X2X3X4X3X4X5X6S2X1X2X1X2X3X4X3X4X5X6S3X1X2X1X2X3X4X3X4X5X6S4X1X2X3X4X5最小啟動循環(huán)(1,7)的流水線工作狀態(tài)啟動周期重復啟動周期步驟五(3)本章內容>>流水線基本概念>>非線性流水線的調度技術>>無沖突調度方法12之11××S3×S2×S143215×S467××1234567891011121314151617181920…S1X1X2X1X3X2X4X3X5X4X6S2X1X2X1X2X3X4X3X4X5S3X1X1X2X2X3X3X4X4X5S4X1X2X3X4X5最小啟動循環(huán)(3,5)的流水線工作狀態(tài)啟動周期重復啟動周期步驟五(4)本章內容>>流水線基本概念>>非線性流水線的調度技術>>無沖突調度方法12之12××S3×S2×S143215×S467××1234567891011121314151617181920…S1X1X2X1X3X2X4X3S2X1X1X2X2X3X3X4S3X1X1X2X2X3X3X4X4S4X1X2X3X4最小恒定循環(huán)(5)的流水線工作狀態(tài)啟動周期重復啟動周期優(yōu)化調度方法本章內容>>流水線基本概念>>非線性流水線的調度技術問題當接受最小啟動循環(huán)啟動非線性流水線時,沒有充分發(fā)揮非線性流水線的效率,因為流水線中的很多流水段還有空閑,即使最繁忙的流水段也有空閑。解決接受非線性流水線的優(yōu)化調度方法(預留算法),可以使流水線的工作效率最高。7之1理論基礎本章內容>>流水線基本概念>>非線性流水線的調度技術L.E.Shar于1972年提出流水線最小平均啟動距離的限制范圍并于1992年進行了證明:最小平均啟動距離的下限是預約表中隨意一行里“×”的最多個數(shù)。最小平均啟動距離小于等于狀態(tài)圖中隨意一個簡潔循環(huán)的平均啟動距離。最小平均啟動距離的上限是沖突向量中1的個數(shù)再加上1。7之2預留算法本章內容>>流水線基本概念>>非線性流水線的調度技術確定流水線的最小啟動距離最小啟動距離等于預約表中隨意一行中“×”的最大個數(shù)。確定最小啟動循環(huán)為簡化流水線的限制邏輯,一般接受恒定循環(huán)作為最小啟動循環(huán)。插入延遲進行預留對預約表中隨意一行中隨意兩個“×”之間的距離是最小啟動距離整數(shù)倍的通過插入延遲進行預留。7之3舉例-優(yōu)化前(前例)本章內容>>流水線基本概念>>非線性流水線的調度技術×S4××S3××S2××S17654321時間流水段S1S2S3S4輸入輸出7之4舉例-優(yōu)化后本章內容>>流水線基本概念>>非線性流水線的調度技術S1S2S3S4輸入輸出D1時間12345678功能段S1××S2××S3××S4×延遲D1×7之5舉例-優(yōu)化后從狀態(tài)圖中很簡潔可以看出:流水線的最小啟動循環(huán)是(2)。本章內容>>流水線基本概念>>非線性流水線的調度技術7之6舉例-優(yōu)化后在非線性流水線中,“×”最多的流水段確定是“瓶頸”流水段。實現(xiàn)最優(yōu)調度的目標是使“瓶頸”流水段處于勞碌狀態(tài),沒有空閑周期。本章內容>>流水線基本概念>>非線性流水線的調度技術7之7相關性分析技術基本概念資源相關數(shù)據(jù)相關限制相關綜合應用循環(huán)處理本章內容基本概念本章內容>>相關性分析技術概念相關(CorrelationorDependency)也稱為沖突(Hazard)是指鄰近指令之間存在著某種關系,影響指令的重疊執(zhí)行或流水線的正常運行。內容有三種類型的相關:資源相關:爭用部件。數(shù)據(jù)相關:變更操作數(shù)的讀寫依次,使得依次執(zhí)行與流水執(zhí)行時結果不同。限制相關:分支、轉子程序、中斷。2之1示例環(huán)境說明本章內容>>相關性分析技術在介紹相關性分析技術時,我們以一個典型的RISC指令流水線(MIPS64指令集)為例進行介紹:MIPS基本流水線MIPS擴展流水線2之2MIPS基本流水線本章內容>>相關性分析技術>>示例環(huán)境說明RISC指令集接受MIPS64(MIPS的64位版本)的整數(shù)子集:ALU指令(5個時鐘周期)、load(5個時鐘周期)/store(4個時鐘周期)指令和分支指令(2個時鐘周期)。RISC指令的實現(xiàn)每一條RISC指令的執(zhí)行至多須要5個時鐘周期:取指令周期(IF)、指令譯碼/讀寄存器周期(ID)、執(zhí)行/有效地址周期(EX)、訪問存儲器周期(MEM)和寫回周期(WB)。13之1取指令周期(IF)本章內容>>相關性分析技術>>示例環(huán)境說明 IR←Mem[PC] NPC←PC+4說明:依據(jù)PC指示的地址從存儲器中取指令并裝入指令寄存器(IR),同時PC加4以獲得下一條指令的地址。IR中保存下一個時鐘周期須要的指令,NPC中保存下一條指令的PC。13之2圖示IF本章內容>>相關性分析技術>>示例環(huán)境說明13之3指令譯碼/讀寄存器周期(ID)本章內容>>相關性分析技術>>示例環(huán)境說明 A←Regs[rs] B←Regs[rt] Imm←IR的馬上數(shù)字段進行符號擴展 ALUOutput←NPC+(Imm<<2) Cond←(A==0) if(cond)PC←ALUOutput說明:分析指令并訪問寄存器堆以讀寄存器,并結束分支指令(為簡潔只設置一條:BEQZ)的操作。13之4圖示ID本章內容>>相關性分析技術>>示例環(huán)境說明13之5執(zhí)行/有效地址周期(EX)訪問存儲器ALUOutput←A+Imm寄存器-寄存器ALUALUOutput←AfuncB寄存器-馬上數(shù)ALUALUOutput←AopImm說明:Load/Store指令在本周期形成有效地址。ALU指令完成相應的ALU操作。本章內容>>相關性分析技術>>示例環(huán)境說明13之6圖示EX本章內容>>相關性分析技術>>示例環(huán)境說明13之7訪問存儲器周期(MEM)本章內容>>相關性分析技術>>示例環(huán)境說明 LMD←Mem[ALUOutput]or Mem[ALUOutput]←B說明:Load指令從存儲器中讀出數(shù)據(jù)并裝入LMD(裝入存儲器數(shù)據(jù))寄存器,Store指令將寄存器B中的數(shù)據(jù)寫入存儲器。13之8圖示MEM本章內容>>相關性分析技術>>示例環(huán)境說明13之9寫回周期(WB)Load指令Regs[rt]←LMD寄存器-寄存器ALURegs[rd]←ALUOutput寄存器-馬上數(shù)ALURegs[rt]←ALUOutput說明:將結果寫入寄存器堆。寄存器的寫入端口在兩個目標中選擇一個(rtorrd),具體選擇哪一個要由操作碼確定。本章內容>>相關性分析技術>>示例環(huán)境說明13之10圖示W(wǎng)B本章內容>>相關性分析技術>>示例環(huán)境說明13之11時空圖本章內容>>相關性分析技術>>示例環(huán)境說明指令時鐘123456789iIFIDEXMEMWBi+1IFIDEXMEMWBi+2IFIDEXMEMWBi+3IFIDEXMEMWBi+4IFIDEXMEMWB13之12MIPS基本流水線的數(shù)據(jù)通路13之13IM:指令存儲器DM:數(shù)據(jù)存儲器CC
:時鐘周期寫操作(前半周期進行)讀操作(后半周期進行)MIPS基本流水線的實現(xiàn)9之9MIPS擴展流水線本章內容>>相關性分析技術>>示例環(huán)境說明3之1在MIPS基本流水線中引入浮點操作功能。主定點操作部件負責load/store、定點ALU操作和分支操作(功能同MIPS基本流水線)。浮點/定點乘法部件負責浮點/定點乘法,接受流水設計。浮點加法部件負責處理浮點加、減法及定點數(shù)/浮點數(shù)之間的轉換,接受流水設計。浮點/定點除法部件負責浮點/定點除法,不接受流水設計。連接圖本章內容>>相關性分析技術>>示例環(huán)境說明3之2一組獨立的浮點操作流水線時序藍色斜體的流水段須要數(shù)據(jù),紅色的流水段已經(jīng)得到結果。本章內容>>相關性分析技術>>示例環(huán)境說明3之3MUL.DIFIDM1M2M3M4M5M6M7MEMWBADD.DIFIDA1A2A3A4MEMWBL.DIFIDEXMEMWBS.DIFIDEXMEMWB資源相關本章內容>>相關性分析技術因為資源沖突而導致流水線斷流。例1:指重疊指令或流水線中的指令同時要用同一個功能部件,事實上是一種沖突。非線性流水線的調度就是為了盡量避開資源運用上的沖突。例2:后面介紹的RISC指令流水線當指令和數(shù)據(jù)共享同一個存儲器時,也會出現(xiàn)資源沖突(見后圖)。4之1MIPS基本流水線當指令和數(shù)據(jù)共享同一個存儲器時會出現(xiàn)資源沖突4之2IF段ID段EX段MEM段WB段資源相關本章內容>>相關性分析技術緣由分析主要有:部分功能部件沒有充分流水資源沒有充分重復設置解決方法可以接受推后處理法來解決:暫停相關指令的執(zhí)行,直到所需的功能單元能夠運用為止。4之3例子本章內容>>相關性分析技術指令時鐘123456789loadIFIDEXMEMWBi+1IFIDEXMEMWBi+2IFIDEXMEMWBi+3stallIFIDEXMEMWBi+4IFIDEXMEM4之4時空圖的另一種畫法數(shù)據(jù)相關本章內容>>相關性分析技術數(shù)據(jù)相關類型數(shù)據(jù)相關解決動態(tài)調度技術數(shù)據(jù)相關類型本章內容>>相關性分析技術>>數(shù)據(jù)相關“先寫后讀”相關“先讀后寫”相關“寫寫”相關“先寫后讀”相關(RAW)本章內容>>相關性分析技術>>數(shù)據(jù)相關>>數(shù)據(jù)相關類型概念有兩條相鄰指令i和j,i在j之前執(zhí)行,指令i將結果寫入某個存儲單元,而指令j從相同存儲單元中讀取該數(shù)據(jù)。假如指令j想在指令i寫之前去讀數(shù)據(jù),則會發(fā)生“先寫后讀”相關,也稱為寫讀相關、數(shù)據(jù)相關、RAW相關、WR相關等。2之1“先寫后讀”相關(RAW)本章內容>>相關性分析技術>>數(shù)據(jù)相關>>數(shù)據(jù)相關類型例子 i:DADDR1,R2,R3;(R2)+(R3)→(R1) j:DSUBR4,R1,R5;(R1)-(R5)→(R4)2之2IF段ID段EX段MEM段WB段流水寄存器“先讀后寫”相關(WAR)本章內容>>相關性分析技術>>數(shù)據(jù)相關>>數(shù)據(jù)相關類型概念有兩條相鄰指令i和j,i在j之前執(zhí)行,指令i從某個存儲單元中讀取數(shù)據(jù),而指令j將結果寫入相同存儲單元。假如指令j想在指令i讀之前去寫數(shù)據(jù),則會發(fā)生“先讀后寫”相關,也稱為讀寫相關、反相關、WAR相關、RW相關等。2之1“先讀后寫”相關(WAR)本章內容>>相關性分析技術>>數(shù)據(jù)相關>>數(shù)據(jù)相關類型例子 i:DSUB
R4,R1,R5;(R1)-(R5)→(R4) j:DADDR1,R2,R3;(R2)+(R3)→(R1)2之2“寫寫”相關
(WAW)本章內容>>相關性分析技術>>數(shù)據(jù)相關>>數(shù)據(jù)相關類型概念有兩條相鄰指令i和j,i在j之前執(zhí)行,指令i將結果寫入某個存儲單元,而指令j也將結果寫入相同存儲單元。假如指令j想在指令i寫之前去寫該數(shù)據(jù),則會發(fā)生“寫寫”相關,也稱為寫寫相關、輸出相關、WAW相關、WW相關等。3之1“寫寫”相關
(WAW)本章內容>>相關性分析技術>>數(shù)據(jù)相關>>數(shù)據(jù)相關類型3之2例子 i:DSUB
R1,R4,R5;(R4)-(R5)→(R1) j:DADDR1,R2,R3;(R2)+(R3)→(R1)“先寫后讀”相關在流水線依次執(zhí)行和亂序執(zhí)行時都可能發(fā)生,“先讀后寫”相關和“寫寫”相關只有在流水線亂序執(zhí)行時才可能發(fā)生,而“讀讀”相關無需處理。提示本章內容>>相關性分析技術>>數(shù)據(jù)相關>>數(shù)據(jù)相關類型3之3數(shù)據(jù)相關解決本章內容>>相關性分析技術>>數(shù)據(jù)相關“先讀后寫”相關“寫寫”相關設置專用路徑推后處理“先寫后讀”相關寄存器換名設置專用路徑思想將結果干脆送到須要它的功能部件,即:一個結果能夠從一個部件的輸出干脆送到另一個部件的輸入。程序段DADD R1,R2,R3DSUB R4,R1,R5AND R6,R1,R7OR R8,R1,R9XOR R10,R1,R11本章內容>>相關性分析技術>>數(shù)據(jù)相關>>數(shù)據(jù)相關解決3之1“先寫后讀”數(shù)據(jù)相關3之2通過設置專用路徑解決“先寫后讀”數(shù)據(jù)相關3之3推后處理思想對于接受設置專用路徑無法解決的數(shù)據(jù)相關只有推后處理相關指令,直至數(shù)據(jù)就緒。程序段LD R1,0(R2)DSUB R4,R1,R5AND R6,R1,R7OR R8,R1,R9本章內容>>相關性分析技術>>數(shù)據(jù)相關>>數(shù)據(jù)相關解決3之1通過設置專用路徑解決數(shù)據(jù)相關(失?。?之2失敗通過推后處理解決數(shù)據(jù)相關3之3指令時鐘123456789LDR1,0(R2)IFIDEXMEMWBDSUBR4,R1,R5IFIDEXMEMWBANDR6,R1,R7IFIDEXMEMWBORR8,R1,R9IFIDEXMEMWB指令時鐘123456789LDR1,0(R2)IFIDEXMEMWBDSUBR4,R1,R5IFIDstallEXMEMWBANDR6,R1,R7IFstallIDEXMEMWBORR8,R1,R9stallIFIDEXMEMWB推后處理前的數(shù)據(jù)相關寄存器換名
WAR相關WAW相關本章內容>>相關性分析技術>>數(shù)據(jù)相關>>數(shù)據(jù)相關解決2之1ACACBBB’ijijACACBB’Bijij寄存器換名舉例換名前DIV.D F0,F2,F4ADD.D F6,F0,F8S.D F6,0(R1)SUB.D F8,F10,F14MUL.D F6,F10,F8換名后DIV.D F0,F2,F4ADD.D S,F0,F8S.D S,0(R1)SUB.D T,F10,F14MUL.D F6,F10,T本章內容>>相關性分析技術>>數(shù)據(jù)相關>>數(shù)據(jù)相關解決2之2動態(tài)調度技術本章內容>>相關性分析技術>>數(shù)據(jù)相關引入思想方法CDC計分牌法Tomasulo算法引入本章內容>>相關性分析技術>>數(shù)據(jù)相關>>動態(tài)調度技術 DIV.D F0,F2,F4 ADD.D F10,F0,F8 SUB.D F12,F8,F14時間1234…2627282930DIV.DIFIDDIVMEMWBADD.DIFID暫停…暫停EXMEMWBSUB.DIFID暫?!瓡和XMEMWB2之1問題在MIPS擴展流水線中,指令按序放射、按序執(zhí)行和按序完成,RAW相關使ADD.D及后續(xù)指令在流水線中被暫停,即使后續(xù)指令與DIV.D、ADD.D指令沒有沖突,這限制流水線的性能。解決假如指令按序放射、亂序執(zhí)行和亂序完成,則可以削減暫停所帶來的影響。引入本章內容>>相關性分析技術>>數(shù)據(jù)相關>>動態(tài)調度技術2之2思想本章內容>>相關性分析技術>>數(shù)據(jù)相關>>動態(tài)調度技術記錄和檢測指令相關,當指令的操作數(shù)就緒時就執(zhí)行該指令(即:指令按序放射、亂序執(zhí)行和亂序完成)以降低RAW相關的影響,接受寄存器換名技術來避開WAR、WAW相關的影響。Tomasulo算法本章內容>>相關性分析技術>>數(shù)據(jù)相關>>動態(tài)調度技術概述實現(xiàn)舉例概述本章內容>>相關性分析技術>>數(shù)據(jù)相關>>動態(tài)調度技術>>Tomasulo算法Tomasulo算法是由R.M.Tomasulo于1967年首先提出,并最早在大型機IBM360/91處理機的浮點處理部件中運用。Tomasulo算法也稱為公共數(shù)據(jù)總線(CDB)法、令牌法等,它接受亂序方式來提高流水線的性能,并通過分散限制的方法處理數(shù)據(jù)相關?;赥omasulo算法的MIPS浮點部件的基本結構6之1FPaddersAdd1Add2Add3FPmultipliersMult1Mult2FromMemFPRegistersReservationStationsCommonDataBus(CDB)ToMemFPOpQueueLoadBuffersStoreBuffersLoad1Load2Load3Load4Load5Load6保留站Op操作類型。Vj和Vk存放兩個源操作數(shù)的值。Qj和Qk存放產生相應源操作數(shù)的保留站。對每個源操作數(shù),V字段或Q字段中只有一個是有效的。A用于保存load/store操作的存儲器地址信息。最初指令中的馬上數(shù)存放于此,在地址計算后有效地址也存放于此。Busy指示該保留站及相關的功能部件是否正在運用。本章內容>>相關性分析技術>>數(shù)據(jù)相關>>動態(tài)調度技術>>Tomasulo算法寄存器換名是通過保留站實現(xiàn)的,保留站的數(shù)據(jù)結構為:6之2存儲設備讀數(shù)/寫數(shù)緩沖器每個緩沖器也都是保留站,字段同前。浮點寄存器堆每個寄存器都需設置Qi字段,用于保存保留站號。在該保留站中進行的操作,其結果將存入該寄存器。假如Qi為空,則表示當前不會有運算結果要存到該寄存器。本章內容>>相關性分析技術>>數(shù)據(jù)相關>>動態(tài)調度技術>>Tomasulo算法6之3指令執(zhí)行過程本章內容>>相關性分析技術>>數(shù)據(jù)相關>>動態(tài)調度技術>>Tomasulo算法放射從浮點操作隊列中取得一條指令。假如相應保留站空閑(即:沒有結構沖突),則可以放射指令和發(fā)送數(shù)據(jù)。寄存器換名工作在本階段進行。執(zhí)行對操作數(shù)進行相應的操作。當指令所須要的源操作數(shù)都準備好,就可以執(zhí)行該運算;否則監(jiān)視CDB等待源操作數(shù)。寫回結果當計算結果出來之后,送至CDB,進而寫回到寄存器中,或被其它保留站讀取。6之4指令格式浮點運算指令load和store指令MUL.DF4,F(xiàn)0,F(xiàn)2rsrdrtL.DF2,45(R3)rsrtimmS.DF3,40(R4)rsrtimm本章內容>>相關性分析技術>>數(shù)據(jù)相關>>動態(tài)調度技術>>Tomasulo算法6之5jkjjkAA指令執(zhí)行的具體過程6之6舉例程序 L.D F6,34(R2) L.D F2,45(R3) MUL.D F0,F2,F4 SUB.D F8,F2,F6 DIV.D F10,F0,F6 ADD.D F6,F8,F2假設各指令在“放射”和“寫回結果”所花時鐘周期數(shù)都為1,在“執(zhí)行”階段所花時鐘周期數(shù)分別為:L.D為2,ADD.D和SUB.D為2,MUL.D為10,DIV.D為40。本章內容>>相關性分析技術>>數(shù)據(jù)相關>>動態(tài)調度技術>>Tomasulo算法21之1指令指令狀態(tài)發(fā)射執(zhí)行寫回結果L.DF6,34(R2)L.DF2,45(R3)MUL.DF0,F2,F4SUB.DF8,F6,F2DIV.DF10,F0,F6ADD.DF6,F8,F2站名保留站BusyOpVjVkQjQkALoad1YLoadRegs[R2]34Load2Add1Add2Add3Mult1Mult2寄存器狀態(tài)字段F0F2F4F6F8F10F12…F30QiLoad1CLOCK:121之2指令指令狀態(tài)發(fā)射執(zhí)行寫回結果L.DF6,34(R2)1L.DF2,45(R3)MUL.DF0,F2,F4SUB.DF8,F6,F2DIV.DF10,F0,F6ADD.DF6,F8,F2站名保留站BusyOpVjVkQjQkALoad1YLoadRegs[R2]34Load2YLoadRegs[R3]45Add1Add2Add3Mult1Mult2寄存器狀態(tài)字段F0F2F4F6F8F10F12…F30QiLoad2Load1CLOCK:221之3指令指令狀態(tài)發(fā)射執(zhí)行寫回結果L.DF6,34(R2)2L.DF2,45(R3)1MUL.DF0,F2,F4SUB.DF8,F6,F2DIV.DF10,F0,F6ADD.DF6,F8,F2站名保留站BusyOpVjVkQjQkALoad1YLoad34+Regs[R2]Load2YLoadRegs[R3]45Add1Add2Add3Mult1YMULRegs[F4]Load2Mult2寄存器狀態(tài)字段F0F2F4F6F8F10F12…F30QiMult1Load2Load1CLOCK:321之4指令指令狀態(tài)發(fā)射執(zhí)行寫回結果L.DF6,34(R2)L.DF2,45(R3)2MUL.DF0,F2,F4SUB.DF8,F6,F2DIV.DF10,F0,F6ADD.DF6,F8,F2站名保留站BusyOpVjVkQjQkALoad1NLoad2YLoad45+Regs[R3]Add1YSUBMem[34+Regs[R2]]Load2Add2Add3Mult1YMULRegs[F4]Load2Mult2寄存器狀態(tài)字段F0F2F4F6F8F10F12…F30QiMult1Load2Mem[34+Regs[R2]]Add1CLOCK:421之5指令指令狀態(tài)發(fā)射執(zhí)行寫回結果L.DF6,34(R2)L.DF2,45(R3)MUL.DF0,F2,F4SUB.DF8,F6,F2DIV.DF10,F0,F6ADD.DF6,F8,F2站名保留站BusyOpVjVkQjQkALoad1NLoad2NAdd1YSUBMem[34+Regs[R2]]Mem[45+Regs[R3]]Add2Add3Mult1YMULMem[45+Regs[R3]]Regs[F4]Mult2YDIVMem[34+Regs[R2]]Mult1寄存器狀態(tài)字段F0F2F4F6F8F10F12…F30QiMult1Mem[45+Regs[R3]]Mem[34+Regs[R2]]Add1Mult2CLOCK:521之6指令指令狀態(tài)發(fā)射執(zhí)行寫回結果L.DF6,34(R2)L.DF2,45(R3)MUL.DF0,F2,F41SUB.DF8,F6,F21DIV.DF10,F0,F6ADD.DF6,F8,F2站名保留站BusyOpVjVkQjQkALoad1NLoad2NAdd1YSUBMem[34+Regs[R2]]Mem[45+Regs[R3]]Add2YADDMem[45+Regs[R3]]Add1Add3Mult1YMULMem[45+Regs[R3]]Regs[F4]Mult2YDIVMem[34+Regs[R2]]Mult1寄存器狀態(tài)字段F0F2F4F6F8F10F12…F30QiMult1Mem[45+Regs[R3]]Add2Add1Mult2CLOCK:621之7指令指令狀態(tài)發(fā)射執(zhí)行寫回結果L.DF6,34(R2)L.DF2,45(R3)MUL.DF0,F2,F42SUB.DF8,F6,F22DIV.DF10,F0,F6ADD.DF6,F8,F2站名保留站BusyOpVjVkQjQkALoad1NLoad2NAdd1YSUBMem[34+Regs[R2]]Mem[45+Regs[R3]]Add2YADDMem[45+Regs[R3]]Add1Add3Mult1YMULMem[45+Regs[R3]]Regs[F4]Mult2YDIVMem[34+Regs[R2]]Mult1寄存器狀態(tài)字段F0F2F4F6F8F10F12…F30QiMult1Mem[45+Regs[R3]]Add2Add1Mult2CLOCK:721之8指令指令狀態(tài)發(fā)射執(zhí)行寫回結果L.DF6,34(R2)L.DF2,45(R3)MUL.DF0,F2,F43SUB.DF8,F6,F2DIV.DF10,F0,F6ADD.DF6,F8,F2站名保留站BusyOpVjVkQjQkALoad1NLoad2NAdd1NAdd2YADDMem[34+Regs[R2]]-Mem[45+Regs[R3]Mem[45+Regs[R3]]Add3Mult1YMULMem[45+Regs[R3]]Regs[F4]Mult2YDIVMem[34+Regs[R2]]Mult1寄存器狀態(tài)字段F0F2F4F6F8F10F12…F30QiMult1Mem[45+Regs[R3]]Add2Mem[34+Regs[R2]]-Mem[45+Regs[R3]]Mult2CLOCK:821之9指令指令狀態(tài)發(fā)射執(zhí)行寫回結果L.DF6,34(R2)L.DF2,45(R3)MUL.DF0,F2,F44SUB.DF8,F6,F2DIV.DF10,F0,F6ADD.DF6,F8,F21站名保留站BusyOpVjVkQjQkALoad1NLoad2NAdd1NAdd2YADDMem[34+Regs[R2]]-Mem[45+Regs[R3]Mem[45+Regs[R3]]Add3Mult1YMULMem[45+Regs[R3]]Regs[F4]Mult2YDIVMem[34+Regs[R2]]Mult1寄存器狀態(tài)字段F0F2F4F6F8F10F12…F30QiMult1Mem[45+Regs[R3]]Add2Mem[34+Regs[R2]]-Mem[45+Regs[R3]]Mult2CLOCK:921之10指令指令狀態(tài)發(fā)射執(zhí)行寫回結果L.DF6,34(R2)L.DF2,45(R3)MUL.DF0,F2,F45SUB.DF8,F6,F2DIV.DF10,F0,F6ADD.DF6,F8,F22站名保留站BusyOpVjVkQjQkALoad1NLoad2NAdd1NAdd2YADDMem[34+Regs[R2]]-Mem[45+Regs[R3]Mem[45+Regs[R3]]Add3Mult1YMULMem[45+Regs[R3]]Regs[F4]Mult2YDIVMem[34+Regs[R2]]Mult1寄存器狀態(tài)字段F0F2F4F6F8F10F12…F30QiMult1Mem[45+Regs[R3]]Add2Mem[34+Regs[R2]]-Mem[45+Regs[R3]]Mult2CLOCK:1021之11指令指令狀態(tài)發(fā)射執(zhí)行寫回結果L.DF6,34(R2)L.DF2,45(R3)MUL.DF0,F2,F46SUB.DF8,F6,F2DIV.DF10,F0,F6ADD.DF6,F8,F2站名保留站BusyOpVjVkQjQkALoad1NLoad2NAdd1NAdd2NAdd3Mult1YMULMem[45+Regs[R3]]Regs[F4]Mult2YDIVMem[34+Regs[R2]]Mult1寄存器狀態(tài)字段F0F2F4F6F8F10F12…F30QiMult1Mem[45+Regs[R3]]…Mem[34+Regs[R2]]-Mem[45+Regs[R3]]Mult2CLOCK:1121之12指令指令狀態(tài)發(fā)射執(zhí)行寫回結果L.DF6,34(R2)L.DF2,45(R3)MUL.DF0,F2,F47SUB.DF8,F6,F2DIV.DF10,F0,F6ADD.DF6,F8,F2站名保留站BusyOpVjVkQjQkALoad1NLoad2NAdd1NAdd2NAdd3Mult1YMULMem[45+Regs[R3]]Regs[F4]Mult2YDIVMem[34+Regs[R2]]Mult1寄存器狀態(tài)字段F0F2F4F6F8F10F12…F30QiMult1………Mult2CLOCK:1221之13指令指令狀態(tài)發(fā)射執(zhí)行寫回結果L.DF6,34(R2)L.DF2,45(R3)MUL.DF0,F2,F48SUB.DF8,F6,F2DIV.DF10,F0,F6ADD.DF6,F8,F2站名保留站BusyOpVjVkQjQkALoad1NLoad2NAdd1NAdd2NAdd3Mult1YMULMem[45+Regs[R3]]Regs[F4]Mult2YDIVMem[34+Regs[R2]]Mult1寄存器狀態(tài)字段F0F2F4F6F8F10F12…F30QiMult1………Mult2CLOCK:1321之14指令指令狀態(tài)發(fā)射執(zhí)行寫回結果L.DF6,34(R2)L.DF2,45(R3)MUL.DF0,F2,F49SUB.DF8,F6,F2DIV.DF10,F0,F6ADD.DF6,F8,F2站名保留站BusyOpVjVkQjQkALoad1NLoad2NAdd1NAdd2NAdd3Mult1YMULMem[45+Regs[R3]]Regs[F4]Mult2YDIVMem[34+Regs[R2]]Mult1寄存器狀態(tài)字段F0F2F4F6F8F10F12…F30QiMult1………Mult2CLOCK:1421之15指令指令狀態(tài)發(fā)射執(zhí)行寫回結果L.DF6,34(R2)L.DF2,45(R3)MUL.DF0,F2,F410SUB.DF8,F6,F2DIV.DF10,F0,F6ADD.DF6,F8,F2站名保留站BusyOpVjVkQjQkALoad1NLoad2NAdd1NAdd2NAdd3Mult1YMULMem[45+Regs[R3]]Regs[F4]Mult2YDIVMem[34+Regs[R2]]Mult1寄存器狀態(tài)字段F0F2F4F6F8F10F12…F30QiMult1………Mult2CLOCK:1521之16指令指令狀態(tài)發(fā)射執(zhí)行寫回結果L.DF6,34(R2)L.DF2,45(R3)MUL.DF0,F2,F4SUB.DF8,F6,F2DIV.DF10,F0,F6ADD.DF6,F8,F2站名保留站BusyOpVjVkQjQkALoad1NLoad2NAdd1NAdd2NAdd3Mult1NMult2YDIVMem[45+Regs[R3]*Regs[F4]Mem[34+Regs[R2]]寄存器狀態(tài)字段F0F2F4F6F8F10F12…F30QiMem[45+Regs[R3]*Regs[F4]………Mult2CLOCK:1621之17指令指令狀態(tài)發(fā)射執(zhí)行寫回結果L.DF6,34(R2)L.DF2,45(R3)MUL.DF0,F2,F4SUB.DF8,F6,F2DIV.DF10,F0,F61ADD.DF6,F8,F2站名保留站BusyOpVjVkQjQkALoad1NLoad2NAdd1NAdd2NAdd3Mult1NMult2YDIVMem[45+Regs[R3]*Regs[F4]Mem[34+Regs[R2]]寄存器狀態(tài)字段F0F2F4F6F8F10F12…F30QiMem[45+Regs[R3]*Regs[F4]………Mult2CLOCK:1721之18……21之19指令指令狀態(tài)發(fā)射執(zhí)行寫回結果L.DF6,34(R2)L.DF2,45(R3)MUL.DF0,F2,F4SUB.DF8,F6,F2DIV.DF10,F0,F640ADD.DF6,F8,F2站名保留站BusyOpVjVkQjQkALoad1NLoad2NAdd1NAdd2NAdd3Mult1NMult2YDIVMem[45+Regs[R3]*Regs[F4]Mem[34+Regs[R2]]寄存器狀態(tài)字段F0F2F4F6F8F10F12…F30QiMem[45+Regs[R3]*Regs[F4]………Mult2CLOCK:5621之20指令指令狀態(tài)發(fā)射執(zhí)行寫回結果L.DF6,34(R2)L.DF2,45(R3)MUL.DF0,F2,F4SUB.DF8,F6,F2DIV.DF10,F0,F6ADD.DF6,F8,F2站名保留站BusyOpVjVkQjQkALoad1NLoad2NAdd1NAdd2NAdd3Mult1NMult2N寄存器狀態(tài)字段F0F2F4F6F8F10F12…F30Qi………Mem[45+Regs[R3]*Regs[F4]/Mem[34+Regs[R2]]CLOCK:5721之21限制相關本章內容>>相關性分析技術基本概念條件轉移的影響條件轉移的處理中斷的處理基本概念本章內容>>相關性分析技術>>限制相關因程序的執(zhí)行方向可能被變更而引起的相關,也稱為全局相關(而將前面介紹的其他相關稱為局部相關)??赡茏兏绦驁?zhí)行方向的指令主要包括:無條件轉移、條件轉移、子程序調用、中斷等。2之1舉例本章內容>>相關性分析技術>>限制相關指令時鐘123456789分支指令IFIDEXMEMWB分支后繼IFIFIDEXMEMWB分支后繼+1IFIDEXMEMWB分支后繼+2IFIDEXMEMWB2之2條件轉移的影響本章內容>>相關性分析技術>>限制相關對于一條有k個流水段的流水線,在最壞狀況下每一次條件轉移(條件分支)指令將造成k-1個時鐘的“停頓”;假設條件轉移指令在一般程序中所占的比例為p,轉移成功的概率為q。則n條指令的總執(zhí)行時間是:3之1有條件轉移影響的流水線吞吐率有條件轉移影響的最大流水線吞吐率條件轉移的影響本章內容>>相關性分析技術>>限制相關3之2流水線吞吐率下降的比例例子據(jù)統(tǒng)計:在一些典型程序中p=20%、q=60%,對于有8個流水段的流水線,最大吞吐率會下降46%;對于有10個流水段的流水線,最大吞吐率會下降52%。條件轉移指令對流水線的影響很大,必需實行措施降低影響。條件轉移的影響本章內容>>相關性分析技術>>限制相關3之3條件轉移的處理本章內容>>相關性分析技術>>限制相關條件出來前提前形成條件碼預料條件出來后停頓提前形成條件碼本章內容>>相關性分析技術>>限制相關>>條件轉移的處理可在運算起先或中間產生條件碼在絕大多數(shù)狀況下,只要在運算部件的入口處設置一個比較器,通過比較兩個操作數(shù)的符號或者階碼就能夠提前形成結果的正負號、是否為0、是否溢出等條件碼。假如在一個時鐘周期之內產生條件碼,則正好可以供應應下一條條件轉移指令運用,這樣流水線就不會“斷流”。3之1提前形成條件碼本章內容>>相關性分析技術>>限制相關>>條件轉移的處理加快循環(huán)內條件碼形成編譯前: LOADR1,NUM ;循環(huán)次數(shù)初值裝入R1LOOP: …… ;循環(huán)體起先 …… DECR1 ;循環(huán)次數(shù)減“1” BNELOOP ;測試循環(huán)是否則結束 HALT ;程序結束NUM: n3之2提前形成條件碼本章內容>>相關性分析技術>>限制相關>>條件轉移的處理加快循環(huán)內條件碼形成編譯后: LOADR1,NUM ;循環(huán)次數(shù)裝入R1中LOOP:LDECR1;一條專用的循環(huán)次數(shù)減1指令 …… ;循環(huán)體起先 …… LBNELOOP;一條專用的測試循環(huán)是否結束的指令 HALT ;程序結束NUM:n ;循環(huán)次數(shù)【提示】指令LDEC和LBNE運用專用的條件碼寄存器。3之3預測本章內容>>相關性分析技術>>限制相關>>條件轉移的處理思想預料的后續(xù)處理分支現(xiàn)場的愛護及復原預防預料不中時的加速處理提高預料命中率靜態(tài)預料動態(tài)預料思想本章內容>>相關性分析技術>>限制相關>>條件轉移的處理>>預料選取發(fā)生概率較高的分支為預料方向,運行但不寫回結果。若猜對,接著執(zhí)行;否則,作廢預料方向的執(zhí)行,返回實際轉移處。時間ti+1i+2…i+k-3i+k-2輸出輸入i
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 3.3 汽化和液化 說課稿 2025年初中人教版物理八年級上冊
- 開學心理講座心得體會
- 在戰(zhàn)友聚會上的致詞簡短
- 通信行業(yè)市場研究報告
- 市級體育總會章程范本
- 2025年高鎳锍項目建議書
- 《會計信息系統(tǒng)應用》課件 學習情境4 報表系統(tǒng)應用
- 《電子商務基礎》課件-話題1 電子商務概述
- 軟件開發(fā)項目居間協(xié)議模板
- 商業(yè)零售實體店數(shù)字化轉型與升級策略設計
- 小學教師專業(yè)發(fā)展與教學質量提升
- 大跨度空間網(wǎng)架結構分階段整體提升安裝技術研究與應用
- 注射用頭孢比羅酯鈉-臨床藥品應用解讀
- 農業(yè)領域的服務禮儀
- 大學生心理健康教育教程 課件 第二章 大學生自我意識
- 公證知識宣傳材料
- 聚酯生產技術 聚酯主要設備介紹
- 鈑金結構件點檢表
- 醫(yī)療安全(不良)事件匯總登記表(科室)
- 電子商務專升本考試(習題卷6)
- 鑄造企業(yè)采購流程及管理制度
評論
0/150
提交評論