1 / 40

計算機組織與結構 - 效能設計

計算機組織與結構 - 效能設計. 第十三章 RISC( 精簡指令集電腦 ). 電腦主要發展史 (1). 家族觀念 IBM S/360 1964 DEC PDP-8 不同的實現技術,類似的結構 微程式控制單元 1951 年 Wilkes 提出微程式觀念 1964 由 IBM S/360 實現這種觀念 快取記憶體 1968 年 IBM S/360 系列 model 85 機型引進快取記憶體. 電腦主要發展史 (2). 固態 RAM 建構出記憶體技術 微處理器 1971 年 Intel 4004 開啟微處理器的時代 管線技術

Download Presentation

計算機組織與結構 - 效能設計

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 計算機組織與結構-效能設計 第十三章 RISC(精簡指令集電腦)

  2. 電腦主要發展史(1) • 家族觀念 • IBM S/360 1964 • DEC PDP-8 • 不同的實現技術,類似的結構 • 微程式控制單元 • 1951年 Wilkes提出微程式觀念 • 1964由IBM S/360實現這種觀念 • 快取記憶體 • 1968年 IBM S/360系列 model 85機型引進快取記憶體

  3. 電腦主要發展史(2) • 固態RAM • 建構出記憶體技術 • 微處理器 • 1971年 Intel 4004開啟微處理器的時代 • 管線技術 • 在擷取和執行引進平行機制 • 多重處理器

  4. RISC結構 • RISC結構是新一代的電腦結構觀念 • RISC主要特性 • 不大且簡單的固定格式指令集 • 大量的暫存器 • (或,可利用編譯器來最佳化暫存器的配置) • 充分運用指令管線技術

  5. 處理器比較

  6. CISC強調的觀念 • 軟體資產遠勝於硬體資產 • 強調軟體相容性 • 愈來愈複雜的高階語言 • 企圖改善程式的不可靠度! • 減少高階語言與低階語言的語意隔閡

  7. CISC前進的方向 • 增大指令集 • 更多的定址模式 • 以硬體實現HLL(高階程式語言)敘述 • 比如: VAX的CASE (switch)指令

  8. CISC提供的解答 • 使編譯器的任務簡單化 • 改善執行的效率,引入微碼,來實現更複雜的動作序列 • 支援更複雜的高階語言

  9. 其實CISC前進方向當然有重要的價值,… …,然而CISC提供的是真的標準解答嗎?… …有些學者在研究HLL的執行特徵後,反而提出不同的看法

  10. 指令執行特徵 • HLL(高階程式語言)有三個主要特徵 • 執行運算 • 運算元使用 • 執行序列 • 不應作靜態量測 • 比如:不該只計算HLL的指令數 • 應該作動態量測 • 比如:計算HLL執行時所出現的指令數

  11. HLL執行運算中最常出現的指令 • 指定敘述 • 佔有相當比例 • 資料搬移指令 • (IF, LOOP)條件敘述 • 序列控制指令 • 程序呼叫/返回 • 最耗時的指令

  12. HLL加權動態頻率

  13. 大部分只是簡單的純量變數 運算元存取傾向純量,並且高度區域化 HLL運算元

  14. 程序呼叫 • 最耗時的動作 • 程序需注意:傳輸的參數 • 大部分是區域純量變數 • 也應該注意:巢狀深度 • 大部分程式不會在程序呼叫後,緊跟著返回程序 • 程序仍然存在區域存取性

  15. HLL意涵 • 以上這些特色,意涵: • 盡量最佳化最常使用的指令、最耗時的指令 • 大量的暫存器 • 運算元存取 • 指令管線的設計 • 應該設法預測分支走向。 • 編譯器很少 (也很難)使用太複雜的指令,來解譯HLL。 • 因此改善HLL的最好方式,應該是使用精簡指令集(RISC)。

  16. 大型暫存器檔案 • 暫存器檔案意指所有暫存器的集合 • 軟體方法 • 使用有效的分析演算法 • 讓編譯器最佳化暫存器的使用率 • 優先配置給某些使用最頻繁的變數 • 硬體方法 • 增加更多的暫存器 • 讓更多的變數有更長的時間留在暫存器

  17. 區域變數暫存器 • 儲存區域存量變數於暫存器 • 減少記憶體存取 • 每個程序呼叫會影響區域存取的特性 • 必須傳送參數 • 結果必須返回 • 返回原程序後,原變數必須回存回來

  18. 暫存器視窗 • 通常參數不多 • 通常呼叫深度不大 • 集合多個小型的暫存器,指向不同的程序 • 隨著不同的程序,自動切換至不同的暫存器視窗 • 相鄰視窗可以重疊,以利參數傳遞,不再把暫存器回存記憶體

  19. 暫存器視窗數 • 暫存器集合有三個區域: • 參數暫存器 • 區域暫存器 • 暫時暫存器 • 暫時暫存器用來和下一個程序互相交換參數和結果 • 參數不必經過真正的資料搬移,就可以進行傳輸

  20. 重疊的暫存器視窗

  21. 重疊的環狀緩衝圖

  22. 環狀緩衝運作方式 • 當呼叫發生時,CWP(視窗指標)會指到目前正在動作的暫存器視窗 • 如果所有視窗都在使用,則將發生中斷,並且把最早使用的視窗儲存到記憶體 • SWP(視窗儲存指標)正好指向下一個視窗可以儲存的空間

  23. 全域變數 • 剛才視窗暫存器都是區域性。 • 全域記憶體: • 由編譯器配置全域變數到記憶體 • 全域記憶體對於經常存取的全域變數而言,顯然缺乏效率 • 全域暫存器: • 使用暫存器存放全域變數,相對較有效率

  24. 大型暫存器檔案vs 快取記憶體

  25. 純量存取– 以視窗基底的暫存器檔案

  26. 純量存取– 快取記憶體

  27. 編譯器最佳化暫存器的配置 • 假設只有少數(16-32)的暫存器 • 暫存器(最佳化)的使用必須由編譯器決定 • HLL不會直接存取暫存器 • 每個想要常駐於暫存器的變數,會被指定一個符號(或虛擬)暫存器 • 編譯器會將這些符號暫存器,映射到固定的真實暫存器 • 符號暫存器不能重複地分配真實暫存器 • 如果真實暫存器不夠,不得已只好使用記憶體

  28. 圖形著色技術 • 由節點和邊所構成的圖形 • 欲指定顏色給這些節點 • 但,相鄰節點不可以相同 • 而且盡量使用最少種的顏色 • (節點就是符號暫存器) • 在相同程式區段的兩個暫存器會以邊連結 • 使用n種顏色來試著色,而n正好是真實暫存器的數目 • 節點無法著色時只好分配記憶體

  29. 圖形著色技術圖解

  30. 精簡指令集結構 • RISC特性: • 一個週期一個指令 • 暫存器 - 暫存器之間的運算 • 簡易的定址模式 • 簡易的指令格式 • 硬體連線設計(非微碼設計) • 需要更多的編譯器時間

  31. RISC vs CISC • 目前的情況: • 加入CISC特徵的RISC設計 • 加入RISC特徵的CISC設計 • CISC和RISC界線已非絕對清晰 • 大部分的設計都同時使用這兩種技術 • 比如:PowerPC 和Pentium II

  32. RISC管線技術 • 大部分的指令是暫存器對暫存器之間的運算 • 指令執行有兩種階段 • I:擷取指令 • E: 執行指令,控制暫存器的 I/O,執行某個ALU動作 • 載入/儲存 • I:擷取指令 • E:執行指令,計算記憶體位址 • D: 記憶體,暫存器/暫存器、記憶體/暫存器的動作

  33. 管線效果

  34. 管線技術的最佳化設計 • 管線技術遇到分支指令,會有一些問題! • 由於分支指令需等結果出現,才知道執行的目標,因此管線必須等待執行的結果。 • 使用延遲分支(Delay branch),解決這種問題 • 在分支的下個指令位置,先填入一個與分支執行無關的指令,等待該指令執行後,才開始進行分支動作 • 下個指令位置稱為延遲格(Delay slot)

  35. 正常和延遲分支

  36. 延遲分支圖解

  37. 迴圈展開(LOOP unrolling) • 迴圈展開會以展開參數(unrolling factor, u),對迴圈本體複製u次,而不是1次。 • 迴圈展開會以下列方式改善效能: • 降低迴圈的額外負荷 • 藉由改善管線效能,來增強指令的平行能力 • 改善暫存器、資料快取、或TLB的局部存取能力

  38. 迴圈展開範例

  39. 論戰 • 定量分析:比較程式大小和執行速度 • 定性分析:檢驗諸如高階語言支援,以及VLSI資源最佳化應用的爭論 • 論戰難有結論,原因在於: • 沒有真正成對且可以進行比對的商業RISC和CISC機器 • 沒有任何明確的測試程式 • 很難從編譯器效果整理出硬體的影響 • 大部分的比較都作用於“模型”,而非實體機器上 • 目前商業電腦大部分是混合型

  40. 本章結束 • 李鴻鵬老師整理

More Related