生活随笔
收集整理的這篇文章主要介紹了
计算机体系结构期末复习
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
計算機體系結構期末復習
文章目錄
5 流水線技術
5.1 知識點
計算機體系結構在向著多核并行的趨勢發展,包括數據級并行(DLP),指令級并行(ILP),線程級并行(TLP),請求級并行(RLP)。本章主要講解ILP。ILP實現有三種方式,第一種是superpipelining,流水線或超流水線處理機;第二種是super-scalar,多操作部件或超標量處理機;第三種是VLIW,Very Long Instruction Word,超長指令字處理機,還在進一步研究。因此本章涉及到的知識點有先行控制技術、流水線原理與性能分析、非線性流水線的調度方法、局部相關與全局相關、最后是超標量處理機和超流水線處理機。考試重點如下:
要實現流水線,處理機的結構必須采用先行控制方式。先行控制技術的關鍵是緩沖技術和預處理技術。緩沖技術指的是在工作速度不固定的兩個功能之間設置緩沖棧(比如對于功能部件IF-ID-EX-MEM-WB要設置4個緩沖棧緩沖),預處理技術指的是進入ALU的指令都采用RR型指令(這要求采用哈佛結構,以及增添lw與sw指令將存儲器操作數轉化為寄存器數)。因此我們增添了3+4,3個獨立的控制器:指令控制器,運算控制器,存儲控制器,4個緩沖棧:先行指令緩沖棧,先行讀數棧,先行操作棧,后行寫數棧。因此采用先行控制方式,理想的執行n條指令時間為:T先行≈∑i=1nt執行iT_{先行}\approx\sum_{i=1}^{n}t_{執行i} T 先 行 ? ≈ ∑ i = 1 n ? t 執 行 i ? 。
(記憶位置,了解功能)先行指令緩沖棧用于IF,先行讀數棧用和先行操作棧用于ID-EX,主要功能為預處理(將RI或RX轉化為RR指令),后行寫數棧。
流水線技術。包括superpipelining和super-scalar,分別運用了時間并行性(分時使用同一個部件不同部分)和空間并行性(設置多個獨立操作部件)。流水線分為線性流水線和非線性流水線,非線性流水線有前饋回路和反饋回路,由流水線連接圖和流水線預約表二者唯一確定一條流水線。對于線性流水線,用時空圖表示,時間-空間,橫軸時間為指令條數或深度,縱軸空間為功能段個數。一條指令的流水步隨著歷經的時間和功能段逐步向右上移動,注意數據相關。流水線也分為靜態流水線和動態流水線。靜態流水線指流水線各個功能段在同一時間只能實現一種功能,指令全部排空后,才可實現下一步功能。流水線的性能分析,吞吐率:TP=n/TkTP=n/T_{k} T P = n / T k ? ,加速比:S=T0/TkS=T_{0}/T_{k} S = T 0 ? / T k ? ,效率:E=T0/(k?Tk)E=T_{0}/(k*T_{k}) E = T 0 ? / ( k ? T k ? ) 。其中,TPmax=1/Δt(Δt為流水線橫軸的單位時間)TP_{max}=1/\Delta{t}(\Delta{t}為流水線橫軸的單位時間) T P m a x ? = 1 / Δ t ( Δ t 為 流 水 線 橫 軸 的 單 位 時 間 ) ,Smax=kS_{max}=k S m a x ? = k ,Emax=1E_{max}=1 E m a x ? = 1 。 非線性流水線的預約表。因為一個指令可能在多個功能段重復多次,因此要尋找延遲輸入新任務使之不沖突的最小啟動循環。我們通過一組二進制數(如001100)記錄當前流水線的沖突狀態,稱為沖突向量(1為沖突位),代表著若流水線右移的步數為沖突向量二進制位為1所在的下標(如001100的3和4),則發生沖突。這個沖突向量可以進行右移或運算,對當前狀態的沖突向量A右移m步(m只可為二進制位0的索引下標)并進行或操作,或的另一個對象自然是當前沖突向量A本身,可以產生該流水段的新沖突向量。若有兩次右移(m,n)使沖突向量A可以回到原點。稱(m,n)為不沖突的啟動循環。通常已知預約表,求狀態圖。因此完成狀態圖的目標就是要得到全部的沖突向量以及全部的(m,n)。這里遍歷即可:對初始沖突向量S,進行右移或操作,產生沖突向量;對每個新的沖突向量S進行右移或操作,直至遍歷完成。 非線性流水線的優化調度方法。由定理,最小平均啟動距離的下限是預約表中一行X最多的個數N。此行/功能段被稱為瓶頸流水段。優化調度的目標是將N作為流水線的最小啟動距離,使得瓶頸流水功能段始終處于忙碌狀態,此時性能達到峰值。因此預約表中對于每隔N的流水步,若產生沖突,要相應向后移位。若后面的流水步需要前面流水步的結果,前面流水步移位,也要跟著移位。由此完成優化調度后的預約表。 相關性分析。包括數據相關(在執行本條指令用到的變量是前面指令的執行結果)和控制相關(由條件分支指令、無條件/一般條件/符合條件轉移指令、中斷等引起的相關),二者前后也被稱為局部相關和全局相關。解決數據相關的方法:推后處理和設置專用路徑。解決控制相關的方法:1.延遲轉移技術和指令取消技術(由編譯器調度無關指令),2.靜態/動態分支預測技術(軟件:通過編譯器降低轉移Y的概率,硬件:增加指令分析器提前取PC1,再增加一個先行目標緩沖棧;動態:在指令cache中設置轉移的歷史信息(設置轉移歷史表字段)/設置轉移目標地址緩沖棧),3.提前形成條件碼。條件分支對流水線性能的影響:TK?IF=(n+k?1)Δt+npq(k?1)ΔtT_{K-IF}=(n+k-1)\Delta{t}+npq(k-1)\Delta{t} T K ? I F ? = ( n + k ? 1 ) Δ t + n p q ( k ? 1 ) Δ t ,npqnpq n p q 為n條指令中轉移成功的指令條數。則流水線吞吐率下降的百分比為D=(TPMAX?TPMAX?IF)/(TPMAX)=pq(k?1)/(1+pq(k?1))D=(TP_{MAX}-TP_{MAX-IF})/(TP_{MAX})=pq(k-1)/(1+pq(k-1)) D = ( T P M A X ? ? T P M A X ? I F ? ) / ( T P M A X ? ) = p q ( k ? 1 ) / ( 1 + p q ( k ? 1 ) ) 。 動態調度技術。流水線有順序和亂序三種調度方式:順序發射順序完成,順序發射亂序完成,亂序發射亂序完成。值得警醒的是,在亂序流動中,可能發生3種數據相關。WR相關(寫讀相關),RW相關,WW相關。變量換名可以消除RW相關和WW相關,其規則是一個變量只允許定值一次。然而對于WR相關,無法換名,只能推后處理或設置專用路徑。 超標量處理機(1<ILP<m1<ILP<m 1 < I L P < m )。首先引入單發射與多發射處理機這一概念,單發射處理機每個周期內只進行一次IF/ID/EX/WB。多發射處理機每個周期內可同時進行多個IF/ID/EX/WB。因此,超標量處理機的概念是,有兩條或兩條以上能同時工作的指令流水線。實現,先行指令窗口,從指令cache中預測多條指令,并分析是否存在相關和部件資源沖突。對于資源沖突,假定每周期發射m條指令,部件延遲時間k個周期,如果操作部件不采用流水線結構,使用同一部件的兩條指令應至少相差m*k,若采用k段流水線結構,只需差m以上即可。總結一下,超標量處理機,不同于普通標量處理機,希望相同操作不要連續出現。性能:T(m,1)=(k+N?mm)ΔtT(m,1)=(k +\frac{N-m}{m})\Delta{t} T ( m , 1 ) = ( k + m N ? m ? ) Δ t ,最大加速比為m。 超流水線處理機(1<ILP<n1<ILP<n 1 < I L P < n )。超流水線處理機,在一個周期內分時發射多條指令的處理機。性能:T(1,n)=(k+N?1n)ΔtT(1,n)=(k+\frac{N-1}{n})\Delta{t} T ( 1 , n ) = ( k + n N ? 1 ? ) Δ t ,最大加速比為n。 超標量超流水線處理機(1<ILP<mn1<ILP<mn 1 < I L P < m n )。一個時鐘周期發射m次,每次發射n條指令。性能:T(m,n)=(k+N?mmn)ΔtT(m,n)=(k+\frac{N-m}{mn})\Delta{t} T ( m , n ) = ( k + m n N ? m ? ) Δ t ,最大加速比為m*n。經比較,我們得到結論。超標量處理機的相對性能最高,其次是超標量超流水線處理機,超流水線處理機的相對性能最低。條件轉移等操作造成的損失,超流水線處理機要比超標量處理機大,由于超流水線處理機采用深度流水線結構,對條件轉移等操作比超標量處理機敏感。超流水線處理機的啟動延遲通常要比超標量處理機大。超標量處理機在每個時鐘周期的一開始就同時發射多條指令。
5.2 大題
已知一條線性靜態流水線k個功能段,以及各個操作所使用的功能段。求流水線的時空圖,實際吞吐率,加速比,效率等
考點:時空圖,靜態,數據相關 題目: 解答: 已知一條k個功能段的非線性流水線預約表。求調度流水線狀態圖,最小啟動循環與最小平均啟動距離。插入一個非計算延遲功能段后,求該流水線的最佳啟動循環及最小平均啟動距離,預約表,狀態圖。最大吞吐率與實際吞吐率。
考點:預約表,狀態圖,優化調度方法
題:
解答:
(完)
總結
以上是生活随笔 為你收集整理的计算机体系结构期末复习 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。