1. 程式人生 > >易學筆記-系統分析師考試-第6章 系統配置與效能評價/6.5 流水線技術/6.5.3 區域性相關與全域性相關

易學筆記-系統分析師考試-第6章 系統配置與效能評價/6.5 流水線技術/6.5.3 區域性相關與全域性相關

  • 區域性相關
  1. 概念:由於程式中往往會出現資料相關,而這類資料對應的指令一般相隔不超過基本快,對程式執行影響小

表現:共享資源訪問衝突

概念:後一條指令需要使用的資料與前一條指令傳送衝突或者相鄰指令使用了相同的暫存器

表現:

指令相關

訪存運算元相關

通用暫存器相關

解決方法

後推法

概念:如果遇到資料相關則暫停後續指令的執行,直到前面指令產生結果

具體做法:每一次取數時,都要把取數的地址和前面指令中正在執行的資料地址相比較,如果有相同,則推遲執行讀資料操作

缺點:有較長的等待時間

定向技術

概念:又稱為旁路技術或者專用通路技術

具體做法:在流水線的讀數和寫數部件之間設定直接傳送資料通道,當存數的同時向需要讀改資料的其它部件直接送值,如果有多個則多次送值

  • 全域性相關

概念:指的是轉移指令或中斷指令處理,對程式執行影響大

表現:

轉移指令:

無條件轉移指令

在指令譯碼時發現

具體做法:如果發現無條件轉移指令,則清空指令緩衝區中之前放入的指令,則按轉移地址讀取新的指令序列放到指令緩衝區中

條件轉移指令

在指令譯碼時發現

具體做法:

確定轉移的方向需要根據上一個指令執行完成後末端產生的條件碼而定,這個時候要停下來等待條件碼的產生

如果轉移成功則執行新的指令流

如果轉移不成功則按原來預存的指令從頭開始,會出現停頓一段時間的現象

解決停頓的措施

猜測法

條件碼產生前:在發現轉移指令到產生條件碼這段時間內,指令部件繼續按原方向取指令

條件碼產生後

原方向與條件轉移方向一致則新取的指令有效,可以繼續使用,流水線停頓等待時間較短

原方向與條件轉移方向不一致則新取的指令無效,則清空新指令,重新按相反方向讀取指令,重新開始分析,流水線等待時間較長

預取轉移目標

發現條件轉移指令後同時向寫兩個方向取指令,最後根據條件碼指定的方向取其中一個分支執行

加快和提前形成條件碼

條件碼的形成不需要等待運算結果,而是直接根據資料特徵生成

舉例:乘法指令結果的正負直接根據兩個運算元的正負就定了,不需要等待乘法結果

推遲轉移

將條件轉移指令的位置往後移,將與該條件無關的指令先執行,前提是不能影響執行結果,這樣執行效率較快

加快短迴圈程式的處理

短迴圈:指的是迴圈段的指令數少於或者等於指令緩衝器中可存放的指令數數量

優點:短迴圈可以使指令全部放入指令緩衝器,讓指令部件停頓取新指令,只重複執行這段程度,減少對主存的訪問,提高處理機效率

要求:在處理機中設定相應的硬體

中斷處理

不精確斷點法

原理:當有中斷請求時,不允許指令部件取新流水號,原緩衝區中的指令繼續執行完畢,完成後轉入中斷處理程式

優點:實現控制簡單

缺點:中斷時間較長,程式執行結果可能出錯,除錯困難

精確斷點法

原理:當有中斷請求時,立即轉入中斷處理程式

優點:縮短了中斷響應時間

缺點:需要較多的後援暫存器用於儲存指令的現場和恢復,增加了處理機的硬體複雜度