日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

超标量技术

發布時間:2024/8/1 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 超标量技术 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

超標量技術:核心,為了最大化指令的吞吐率,必須減少分支指令,ALU指令,load/store指令的開銷。

超標量處理器可以是只并行化EX段的流水段。

可以具體細分為:1)指令流;??? 2)寄存器數據流;???? 3)存儲器數據流;

?

?

指令流:一般用在超標量流水線的前端,即取指段和譯碼段。流水線機器只有在流水模式下才能達到最大的吞吐率,

??????? 對于無條件分支指令,分支地址確定后,下一條指令就能取出;

??????? 對于條件分支,只有在分支部件執行結束,條件和分支地址都確定后,取指段才能讀取下一條指令。

????????????????????? 可以具體細分為:生成目標地址的開銷和條件判斷引起的開銷。超標量處理器的總開銷等于停頓周期數和流水線寬度的乘積。

????????????????????? 生成目標地址的開銷還取決于分支指令的尋址模式,

分支預測技術:對分支指令的目標地址和判定條件進行推測,任意一種推測機制都必須能夠驗證分支預測的結果,并且在預測失敗時恢復正確的執行方式。

分支目標地址的推測通過設置分支目標緩沖BTB(Branch target Buffer)來實現,BTB用來保存前幾次分支執行時的目標地址。包括兩個域:

???????????????????????????????? 分支指令地址和分支目標地址

使用分支指令的地址訪問BTB以及檢索分支目標地址的工作都是在取指段執行的,若預測分支結果為跳轉,則目標地址在下一個周期就被取指段使用。

雖然有了分支預測部件,分支指令還是要取出并送往流水線進行執行,以便確定預測是否正確,如果預測失敗,恢復執行,需要更新BTB表中BTA的內容。

?

分支方向的預測中,最簡單的方法是,總是預測為不跳轉。對for循環不友好。

????????????????????????????????? 編譯器優化,對不同的指令,設置靜態的軟件預測技術。不盡合理。

????????????????????????????????? 基于分支目標地址偏移的預測,相對偏移為正值,預測不跳轉,相對偏移為負值,預測跳轉。

????????????????????????????????? 普遍采用的是基于歷史信息的分支預測技術

采用基于歷史信息的分支預測策略對分支方向進行預測時,跳轉還是不跳轉取決于先前已經發生的分支方向。BTB在每條記錄中增加一個歷史信息位。

????????????????????????????????????? 歷史信息位作為FSM的狀態變量,FSM的輸出邏輯即分支預測方向。

預測算法有很多,如只要最近分支有一次以上的跳轉,就執行跳轉,除非最近兩次都沒有跳轉,才不跳轉。這些的設計策略都需要進行評估。

分支預測失敗的恢復:

分支驗證在分支指令執行完畢,正確方向已經確定后進行,前端預測結果的正確與否在此時判定。

???????????????如果結果證明預測正確,釋放推測標識,所有的相關指令都變為非推測的,繼續執行。

???????????????如果預測失敗,結束當前指令流并從新的地址取指。指令流的改變通過修改PC來實現。

先進的分支預測技術

更精確的分支預測算法應該考慮其他關聯分支指令的歷史行為,從而動態的調整分支策略。之前的預測僅僅是靜態方法。

Yeh和Patt提出的兩級自適應分支預測技術,分支地址索引一個分支歷史信息集合,稱為模式歷史信息表(PHT)。

??????????????????????然后通過預測算法FSM,來輸出預測結果。以及之后的關聯分支預測器。

對于那些沒有很強的傾向性的分支和分支序列,預測是十分困難的。

寄存器數據流技術:

寄存器數據流主要是指ALU指令的執行,涉及到的問題主要是數據相關性,正相關,反相關,輸出相關。

數據的相關性主要是由于寄存器重用引起的,靜態的寄存器重用是一種編譯器的優化,

??? 編譯主要是代碼生成和寄存器分配。代碼生成,值機器代碼的生成,寄存器分配,盡可能的保證中間數據駐留在寄存器中,

??????????? 同時避免存儲器和寄存器之間頻繁的數據移動。

????在超標量機器中,由于指令是可以亂序執行的,所以寄存器的讀寫操作,并不按照程序的原始順序,為了保證語義的正確性,

??????????? 所有的反相關和輸出相關必須被檢測并消除。

?

寄存器重命名,同一體系結構寄存器中的多個定義動態分配不同的名字,寄存器重命名需要硬件的支持,在執行時可以撤銷寄存器重用,來恢復

????????????????????所有當前命令的值與寄存器之間的一一對應的關系。

????????????????????主要作用是可以用來消除假相關,使得本來可以假相關的指令可以并行的執行了。

寄存器數據流技術的特點在Tomasulo算法中,得到了很大的應用。

?

存儲器數據流技術:

存儲器數據流指令執行的三個步驟:生成存儲器地址,存儲器地址轉換,數據訪問,

????????????????? 存儲器地址一般由一個寄存器和一個偏移量通過計算生成,因此地址生成包括寄存器訪問和偏移量的計算。

??????????????????????????????? load指令,地址寄存器就緒,就可發射,store指令,地址寄存器和數據寄存器都就緒后,發射。

????????????????? 虛擬地址到物理地址的轉換,查表操作,一般通過訪問快表TLB來完成,TLB是硬件控制的表結構,保存著虛擬地址到物理地址的

??????????????????????????????? 映射,本質上是存儲器中頁表的cache,

??????????????????load指令,數據從數據存儲器中檢索出來并寫入重命名寄存器或者再定序緩沖,

??????????????????store命令,在地址轉換結束后,要存儲的寄存器數據保存在再定序緩沖中,store命令再提交時,再將數據寫入存儲器,

????????????????????????????????? 就CPU狀態而言,在數據保存到存儲緩沖之后,就已經完成,就存儲器狀態而言,在store提交之后,得到更新。

?

訪問多端口存儲器的兩種基本方法:地址索引和標簽相聯查找。地址索引---不靈活但是實現簡單,全相連---靈活但是實現復雜。

?????????????????????????????????????????????折中方案:組相連方案。

存儲器的層次組織,為了使得整個存儲系統達到高容量,地延時的目的。cache屬于那種小而快的存儲器。

組相連的cache結構:標簽,索引,塊內地址

虛擬存儲器要求,必須有一個虛擬地址到物理地址的轉換,

1)顆粒度一般以頁表(page table)為單位,以字為單位,表項太多。

2)由于頁表也是保存在存儲器中,所以每次訪問存儲器的操作,需要兩次訪存操作。

TLB就是對頁表的緩存,也可以使用組相連的方式來實現。

???????????????????????

轉載于:https://www.cnblogs.com/-9-8/p/6130506.html

總結

以上是生活随笔為你收集整理的超标量技术的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。