開源RISC-V處理器架構分析與驗證( 簡體 字) | |
作者:吳慶波、張凡、張留洋、吳喜廣 | 類別:1. -> 電腦組織與體系結構 -> 單晶片 -> RISC-V |
出版社:清華大學出版社 | 3dWoo書號: 56339 詢問書籍請說出此書號! 有庫存 NT售價: 395 元 |
出版日:1/1/2024 | |
頁數:608 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787302626497 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第一部分處理器指令集架構
第1章RISCV指令集架構淺析0031.1指令集架構003 1.1.1復雜指令集計算機與精簡指令集計算機003 1.1.2經典指令集005 1.1.3RISCV009 1.2RISCV指令集簡介010 1.3RISCV基礎指令集011 1.3.1算術與邏輯操作指令013 1.3.2控制轉移指令017 1.3.3內存訪問指令019 1.3.4控制和狀態指令021 1.4RISCV擴展指令集023 1.4.1RV32M整數乘除法指令023 1.4.2RV32A原子指令024 1.4.3RV32C壓縮指令027 1.4.4RV32F單精度浮點指令034 1.4.5RV32D雙精度浮點指令039 1.5RISCV64位基礎指令044 1.6RISCV特權指令046 1.7本章小結047開源RISCV處理器架構分析與驗證目錄第二部分處理器微架構 第2章微架構頂層分析0512.1流水線051 2.1.1RISCV指令集052 2.1.2流水化實現053 2.1.3流水線性能055 2.1.4流水線冒險058 2.1.5分支預測063 2.1.6標量流水線局限性063 2.2Ariane微架構064 2.2.1Ariane簡介064 2.2.2頂層接口065 2.2.3流水線架構068 2.2.4數據流071 2.2.5模塊層次072 2.3本章小結074 第3章指令提取075 3.1指令提取概述075 3.2分支預測算法076 3.2.12位飽和計數器077 3.2.2兩級分支預測器078 3.2.3Gshare分支預測器079 3.2.4分支目標緩沖器080 3.2.5返回地址堆棧080 3.3指令提取單元設計081 3.3.1整體設計081 3.3.2指令重對齊085 3.3.3分支檢測087 3.3.4分支預測088 3.3.5指令隊列089 3.3.6取指地址091 3.4本章小結091 第4章指令譯碼092 4.1指令譯碼概述092 4.1.1壓縮指令093 4.1.2譯碼異常094 4.2指令譯碼單元設計095 4.2.1整體設計095 4.2.2壓縮指令解碼098 4.2.3標準指令譯碼100 4.3本章小結102 第5章指令發射103 5.1單發射和多發射103 5.2順序發射和亂序發射104 5.3指令動態調度105 5.4指令發射單元設計108 5.4.1整體設計108 5.4.2Scoreboard模塊實現113 5.4.3Issue_Read_Operands模塊實現116 5.5本章小結116 第6章指令執行117 6.1指令執行概述117 6.2指令執行單元設計119 6.2.1整體設計119 6.2.2LSU模塊設計123 6.2.3FLU模塊設計126 6.2.4FPU模塊設計131 6.3本章小結137 第7章指令提交138 7.1指令提交概述138 7.2指令提交單元設計139 7.2.1整體設計140 7.2.2Commit_Stage模塊實現142 7.2.3Controller模塊實現146 7.3本章小結148 第8章存儲管理149 8.1緩存原理149 8.1.1緩存組織結構150 8.1.2緩存寫入策略152 8.1.3緩存替換算法153 8.1.4緩存優化155 8.2緩存設計156 8.2.1整體設計156 8.2.2指令緩存模塊設計158 8.2.3數據緩存模塊設計160 8.3存儲管理部件166 8.3.1虛擬內存167 8.3.2地址轉換170 8.4存儲管理部件設計176 8.5本章小結179 第9章中斷和異常180 9.1中斷和異常概述181 9.2異常處理機制183 9.2.1異常處理過程183 9.2.2寄存器說明184 9.3中斷控制平臺189 9.3.1中斷源190 9.3.2中斷目標192 9.3.3中斷處理流程192 9.4中斷和異常設計實例193 9.4.1異常產生和處理193 9.4.2PLIC模塊195 9.4.3CLINT模塊199 9.5本章小結200 第三部分處理器驗證 第10章UVM簡介20310.1UVM概述203 10.1.1驗證方法學概述204 10.1.2驗證方法學的發展史205 10.2UVM基本概念206 10.2.1UVM類的說明207 10.2.2UVM樹形結構209 10.2.3UVM運行機制210 10.3UVM組件介紹219 10.3.1uvm_test219 10.3.2uvm_env221 10.3.3uvm_agent222 10.3.4uvm_driver224 10.3.5uvm_monitor225 10.3.6uvm_scoreboard225 10.3.7uvm_sequence和uvm_sequencer225 10.3.8referencemodel228 10.3.9tb_interface228 10.4本章小結229 第11章RISCV驗證框架230 11.1通用驗證框架230 11.1.1驗證測試點232 11.1.2驗證層次233 11.1.3驗證透明度236 11.1.4驗證激勵約束240 11.1.5驗證檢測機制244 11.1.6驗證集成環境246 11.2RISCV驗證特點249 11.2.1指令發包器隨機性249 11.2.2指令集模擬器準確性251 11.2.3覆蓋率模型完備性252 11.3本章小結253 第12章RISCV指令發生器254 12.1RISCVDV概述254 12.1.1特性簡介254 12.1.2驗證流程255 12.1.3測試用例集256 12.2RISCVDV使用方法256 12.2.1軟件安裝257 12.2.2運行指令發生器258 12.2.3命令說明259 12.2.4YAML配置261 12.3RISCVDV結構分析264 12.3.1仿真激勵xaction264 12.3.2Generator267 12.3.3測試用例269 12.3.4擴展說明270 12.4本章小結271 第13章RISCV指令集模擬器272 13.1RISCV指令集模擬器概述272 13.2Spike概述273 13.2.1特性簡介273 13.2.2軟件棧分析274 13.3Spike使用方法275 13.3.1軟件安裝275 13.3.2命令解析275 13.3.3運行示例277 13.3.4Log文件分析277 13.3.5運行Linux278 13.4Spike源代碼分析279 13.4.1代碼目錄結構279 13.4.2靜態結構281 13.4.3啟動流程282 13.5Spike擴展284 13.5.1定制Log284 13.5.2擴展指令286 13.5.3擴展外設286 13.6本章小結288 本書從處理器指令集架構入手,介紹了RISCV指令集架構,在此基礎上對處理器微架構進行闡述,同時,以Ariane核為例詳述微架構中指令提取、指令譯碼、指令發射、指令執行和指令提交,以及存儲管理、中斷和異常處理。除RISCV核之外,本書還涉及處理器驗證,其中包括UVM、RISCV驗證框架的搭建、指令發生器和模擬器。
本書適合作為大專院校學生學習RISCV指令集微架構以及芯片驗證的入門教材,也可供RISCV處理器設計與驗證相關工程技術人員或研究人員參考。 RISCV是基于精簡指令原則的開源指令集架構。該項目2010年始于加州大學伯克利分校,采用開源BSD License。RISCV指令集可自由地用于任何目的,允許任何人設計、制造、銷售RISCV芯片和軟件,而不必支付給任何公司專利費。其目標是成為一個通用的指令集架構,能適應包括從最袖珍的嵌入式控制器到最快的高性能計算機等各種規模的處理器。與現有其他指令集架構相比,RISCV架構有著鮮明的特點和優勢。
(1) 開源和免費。開源意味著開發者可以針對特定應用場景進行定制優化,免費意味著RISCV可以幫助開發者有效降低CPU設計成本。 (2) 模塊化和簡潔。模塊化設計和簡潔的基礎指令可以讓使用RISCV技術的芯片設計者開發出很簡單的RISCV CPU,特別是在嵌入式和物聯網(Internet of Things,IoT)等領域對功耗和代碼體積有較高限制的應用場景。 (3) 靈活和可擴展性。RISCV架構預留大量的編碼空間用于自定義擴展,并定義了4條用戶指令供用戶直接使用,該特性在安全或者IoT領域有著廣泛的需求。 2015年,RISCV基金會成立,它是開放、協作的軟硬件創新者社區,指導未來發展方向并推動RISCV的廣泛應用。同時,在我國也成立了中國開放指令生態(RISCV)聯盟和中國RISCV產業聯盟來推動RISCV在我國的發展。 雖然RISCV目前的生態還處于初級階段,但是越來越多的產業界巨頭對RISCV有著強烈的興趣并紛紛加入RISCV基金會,RISCV極有可能像Linux那樣開啟開源芯片設計的黃金時代。從中國的自主可控生態建設來看,從零開始建立互相兼容的RISCV生態當下也許是最好的時機,可以期待在不久的將來,RISCV的生態就可以挑戰x86和ARM的地位。 全書由13章組成,分為三大部分。第1章為第一部分——處理器指令集架構,主要介紹指令集相關基礎概念及RISCV指令集架構。第2~9章為第二部分——處理器微架構,主要內容為RISCV CPU微架構設計及邏輯實現,從微架構和流水線設計原理著手,詳細介紹RISCV指令集架構CPU的設計方法,并以開源處理器核Ariane為例,介紹RISCV處理器的實現細節。第10~13章為第三部分——處理器驗證,主要內容為RISCV CPU驗證,著重介紹如何基于當前主流驗證方法UVM構建RISCV CPU驗證平臺,并完成CPU核的驗證工作。 希望本書能夠成為RISCV處理器愛好者的入門圖書,為RISCV處理器在國內的普及和發展貢獻綿薄之力。 感謝鵬城實驗室自主可控項目組參與本書編寫的所有成員,編寫過程中有著大量的代碼分析、資料整理和文稿校對工作,他們的付出使得本書能夠最終成文。同時,還要感謝清華大學出版社各位編輯的大力支持,他們認真細致的工作保證了本書的質量。 由于編者水平有限,書中難免有疏漏和不足之處,懇請讀者批評指正! 編者2023年11月 |