高等計算機體系結構基本概念總結
Tomasulo演算法
結構:
每個功能單元都有一個控制緩衝器,即保留站;所有保留站連線到通過公共資料,以檢測廣播;浮點暫存器具有控制位和tag域,能夠儲存register result status。
基本原理:
把指令的執行分成Issue、execution、write result三步,整體以按序發射、亂序執行的方式進行。當不存在結構冒險時,將指令按序發射到各個功能部件保留站,保留站中的指令的暫存器被數值或指向保留站的指標所代替,這一過程為暫存器重新命名,消除了WAW、WAR冒險。當指令的源運算元就緒時即可執行,從而實現亂序執行,消除RAW冒險。當指令執行完畢時,通過公共資料匯流排將結果廣播到所有的功能部件及保留站。
步驟:
(1) Issue:從FP op Queue中取指令,如果保留站空閒(無結構冒險),發射指令併發送運算元到保留站(對暫存器進行換名)
(2) Execution:當指令的兩個源運算元就緒時即可執行,如果沒有,檢測CDB等待所需要的資料。
(3) Write result:通過公共資料匯流排將結果廣播到所有等待的功能部件,標記保留站可用。
Tomasulo怎樣消除各種冒險
通過在issue階段,暫停發射指令消除結構冒險;
通過暫存器換名消除WAR、WAW冒險;
通過在保留站中等待源運算元消除RAW冒險;
怎樣支援精確中斷和推測執行
分離指令的完成和提交,引入重排序緩衝器ROB,讓指令能夠亂序完成,按序提交。
ROB:按FIFO的次序存放指令,當指令執行完成將結果存放在ROB中,並向其他介於執行、完成和提交的指令提供運算元。當ROB頂部的指令執行完成時就將進行提交。
降低cache失效率的方法
(1)增大塊大小
(2)增大相聯度
(3)使用victim cache
(4)採用偽相聯
(5)通過硬體預取資料和指令
(6)通過軟體預取資料和指令
(7)通過編譯優化
降低cache失效損失的方法
(1)在失效時讀比寫優先
(2)子塊放置
(3)提前重啟和關鍵字先送
(4)使用Nonblockingcache
(5)使用二級cache
減小cahce命中時間的方法
(1)使用小而簡單的cache
(2)避免地址變換
(3)通過流水化操作
(4)使用Tracecache
記分板讀操作階段Rj、Rk置No的原因
Rj(Rk)代表源運算元的可用性,如果Fj,Fk可用,則在issue階段被置為Yes;否則置為No,該指令就會一直等待在issue階段,直到運算元變為可用,將Rj(Rk)置為Yes,然後指令才能進入execution階段。此外,當Rj(Rk)為Yes時,如果出現WAR冒險則停留在write result階段,直到Rj(Rk)為No。
(m,n)預測器工作原理
使用前m個分支行為從2^m個分支預測進行選擇,每一個預測對應於一個n位的分支預測器。最近的m個分支的全域性歷史記錄可以記錄在一個m位的移位暫存器中,每一位記錄著該分支是被執行還是未被執行。對分支預測器緩衝站的訪問可以通過分支地址的低位拼上m位全域性記錄而得到。
DDR中的channel、bank、rank、row buffer等概念
channel:是記憶體控制器管理的一個獨立記憶體介面,一個channel包括64位的資料匯流排,並連通一組模組。同一channel中的模組共享同樣的命令。
bank:bank是記憶體顆粒中的一個儲存單元,每個記憶體顆粒有一組bank,每個bank內部包含多個儲存陣列,bank、row、column組成記憶體中一個cell的座標。
Rank:一個rank由一組或多組記憶體顆粒組成,一個rank包含的記憶體顆粒數量等於資料匯流排位寬除以一個記憶體顆粒的位寬。
Row buffer:在記憶體快速頁模式中,row buffer能夠儲存一整行的資料,允許地址匯流排只發送一個列地址訊號就能進行資料訪問。
cache coherence和memory consistency的區別與聯絡
cache coherence:指在多處理器環境下,每個處理器的cache可能會對應到同一地址的memory塊,不同處理器在讀操作時必須保持一致。即定義了讀操作可以返回什麼樣的值。
memory consistency:指在多處理器環境下,定義了不同處理器的讀操作什麼時候可以返回一個被寫過的值。
聯絡:cache coherence和memoryconsistency共同組成了儲存系統一致性問題。兩者分別代表了不同儲存層次中的一致性問題,兩者相互影響。
6管SRAM工作原理
基本原理:
在寫資料時,根據要寫入的資料,將一根位線預充到高電平,另一根放電到低電平。然後選中行線,使兩端的門管導通,內部的穩態電路鎖存資料。
在讀資料時,先把位線預充到高電平,然後選中行線,使兩端的門管導通,資料節點向位線充/放電,列上的靈敏放大器識別出兩根位線上的電壓差,並輸出相應的資料。
指令冒險與指令相關的區別與聯絡
指令相關是指指令之間存在某種依賴關係。指令相關有三種:資料相關(包括真相關)、名字相關(包括反相關、輸出相關)、控制相關。
指令冒險是指由於指令相關導致指令流中的下一條指令不能在指定的時鐘週期執行。指令冒險有資料冒險(WAW、RAW、WAR)、控制冒險、結構冒險等。
聯絡:指令相關導致了指令冒險;指令冒險能夠避免,指令相關無法避免。
從水平損耗和垂直損耗分析superscalar、fine-grained multithread、coarse-grained multithread、multiprocessing、simultaneousmultithread的設計動機
superscalar:水平損耗為動機。主要特點時多發射。
Fine-grained multithread:垂直損耗為動機。主要特點是可以一個週期切換一次執行緒。
Coarse-grained multithread:垂直損耗為動機。主要特點是能夠在一個執行緒遇到load、store等完成周期較長的操作時切換執行緒。
Multiprocessing:水平損耗為動機。主要特點是多個處理器並行執行指令。
Simultaneous multithread:水平損耗、垂直損耗為動機。主要特點是多發射,並且同一時鐘週期不同發射視窗發射不同的執行緒的指令。
Power wall +ILP wall + memory wall = brick wall
計算機的效能發展主要受到了功耗、指令級並行、記憶體三個方面的限制。
Power wall指隨著積體電路規模的增長,功耗密度越來越大,散熱技術未得到更好的改進,限制計算機效能的發展。
ILP wall指由於單處理器受到控制計算單元的限制,並且amdahl定律指出指令級並行取決於程式的可並行程度,ILP技術也無法有效提高計算機的速度。
Memory wall指出處理器的速度和儲存器的速度差距越來越大,儲存器的延遲限制了計算機的效能的發展。
記分板技術
記分板技術是使用硬體開發指令級並行的技術。核心思想是:
(1)當不具有結構冒險和WAW冒險時,將指令按序分派到功能部件,否則,暫停發射;
(2)指令在執行之前必須等待源運算元,可以亂序執行,消除了RAW冒險;
(3)在寫回階段,指令等待輸出暫存器被之前的指令讀取後才能寫回,此前指令的結果儲存在功能單元中,消除了WAR冒險。
儲存區域性性
區域性性包括:時間區域性性、空間區域性性。
時間區域性性:被引用過一次的儲存器位置在未來會被多次引用。
空間區域性性:如果一個儲存器的位置被引用,其附近的位置也會被引用。
軟體流水技術
軟體流水技術是一種重組迴圈體的技術。軟體流水迴圈的每一次迭代體是由原迴圈體的不同迭代中選出的指令組成的,可達到消除相關性的目的。
顯式暫存器換名
顯式暫存器換名是通過物理暫存器堆,將指令中所使用的暫存器對映到物理暫存器中。當任何指令要寫某個暫存器時,給該暫存器分配一個新的物理暫存器,該方法避免了WAW、WAR冒險。
旋轉暫存器堆
用於解決VLIW迴圈排程需要很多暫存器的問題。使用一個Rotating Register Base指向當前暫存器組,使用其值加上邏輯暫存器值作為物理暫存器,達到了暫存器換名的效果。暫存器可以複用,根據指令執行週期重用暫存器。
非一致性訪問分佈共享儲存技術
由若干通過高速專用網路連線起來的獨立節點構成的系統。邏輯上整個系統分為多個節點,每個節點可以訪問本地的記憶體資源,也可以訪問遠端記憶體資源,但訪問本地記憶體資源遠遠快於遠端記憶體資源。
計算機體系結構
計算機體系結構的目的是設計滿足目標和功能需求的組成和硬體,包括指令集體系結構、組成或微體系結構、硬體。它是應用層和物理層之間抽象層的設計。
推測執行技術
一種使用編譯器或處理器推測指令執行結果,以消除其他指令對該指令依賴的技術
LL/SC實現同步訊號燈的原理
當LL指令從記憶體中取一個字後,處理器會記住LL指令的這次操作,同時LL指令讀取的地址也會被儲存在處理器的link 暫存器中。如果,發生中斷,link暫存器中的地址值就會失效並清除。SC在執行時,檢查指令中的地址是否與link暫存器中的地址匹配,若匹配,SC執行成功。因此,LLSC實現同步訊號燈的原理是利用LL和SC構成一個原子操作,將訊號燈的地址包含在LL和SC指令中,使之能夠儲存在link暫存器中,通過SC指令完成對訊號量的更改。
DMA
DMA是一種高速的資料傳輸操作,允許在外部裝置和儲存器之間通過CPU的兩次干預,週期竊取地自動完成批量資料的傳輸。
儲存層次設計的四個問題
block placement:全相聯、組相聯、直接對映
block identification:標記/資訊塊
block replacement:LRU、FIFO
write strategy:write back、writethrough
降低轉移損失的方法
軟體方法:
(1) 消除轉移——迴圈展開,增大執行長度
(2) 減小轉移確定時間——指令排程儘早計算轉移條件
硬體方法:
(1) 延遲槽——用有效工作代替氣泡
(2) 推測——轉移預測,跨越轉移的指令推測式執行
Tracescheduling
蹤跡排程分為兩步:
(1) 蹤跡選擇,負責從程式的控制流圖中選擇執行頻率較高的路徑,每一條路徑就是一條trace;
(2)蹤跡壓縮,對已生成的trace進行指令排程和優化,儘可能的壓縮其執行時間
2:1cache規律
miss rate 1-way associative cache size X= miss rate 2-way associative cache size X/2
AMAT
Average Memory Access Time = Hit time +Miss rate × Miss penalty
錯誤預測恢復機制
將結果計算與commit分離;消除流水線中跟隨錯誤預測轉移指令之後的指令 ;將狀態恢復到轉移指令之後的正確狀態
流水線CPI
流水線CPI = 理想CPI + 結構停頓 + 資料冒險停頓 + 控制停頓