計算機系統貫通課程實踐教材(RISC-V架構)

常瑞、申文博、吳磊、周亞金

  • 出版商: 清華大學
  • 出版日期: 2025-10-01
  • 售價: $414
  • 語言: 簡體中文
  • ISBN: 7302702780
  • ISBN-13: 9787302702788
  • 相關分類: RISC-V
  • 下單後立即進貨 (約4週~6週)

  • 計算機系統貫通課程實踐教材(RISC-V架構)-preview-1
  • 計算機系統貫通課程實踐教材(RISC-V架構)-preview-2
  • 計算機系統貫通課程實踐教材(RISC-V架構)-preview-3
  • 計算機系統貫通課程實踐教材(RISC-V架構)-preview-4
  • 計算機系統貫通課程實踐教材(RISC-V架構)-preview-5
  • 計算機系統貫通課程實踐教材(RISC-V架構)-preview-6
  • 計算機系統貫通課程實踐教材(RISC-V架構)-preview-7
計算機系統貫通課程實踐教材(RISC-V架構)-preview-1

相關主題

商品描述

"本書是一本面向64位RISC-V架構計算機系統設計的實驗指導教材。本書構建了一套完整的實驗體系,貫通了數字邏輯設計、計算機組成、匯編語言、操作系統、計算機體系結構等計算機系統類課程中的核心知識點及系統軟硬件設計。全書共三部分,包含24個實驗,從系統認知、設計、優化的角度層層深入,幫助讀者由淺入深地認識計算機系統的全貌。本書的內容打破了傳統計算機系統類課程間的壁壘,彌補了計算機系統類課程理論學習與真實系統之間的鴻溝,手把手引導讀者從零開始設計?64?位?RISC-V?架構的CPU和RV64操作系統內核,通過親自動手實驗,理解和掌握計算機系統的工作原理。   本書適用於想了解和探究真實計算機系統運行基本原理和本質規律的讀者,可作為高等院校計算機大類相關專業,以及信息安全、網絡空間安全、人工智能、芯片設計等相關交叉專業的教學實驗指導書,也可以作為計算機系統相關方向工程技術人員的崗前培訓實驗指導用書。 "

目錄大綱

目錄

第1部分  計算機系統I——單周期CPU設計 ......................................................................................  1

第1章  SysI-Lab1實驗準備  ......................................................................................  3

1.1實驗工具 ......................................................................................  3

1.2背景知識 

......................................................................................... 4 

1.2.1 

FPGA的發展歷程................................................................. 4 

1.2.2 

Verilog基礎知識 ................................................................... 6 

1.3實驗環境配置 

.................................................................................12 

1.3.1 

Linux環境配置 ....................................................................12 

1.3.2 

SPICE仿真反相器 ...............................................................13 

1.3.3 

Logisim電路仿真 .................................................................15 

1.4 

Verilator仿真測試 ..........................................................................16 

1.5 

Vivado操作流程.............................................................................18 

1.5.1 FPGA上的 Verilog實踐.......................................................28 

1.

5.2以二選一多路選擇器為例 ......................................................35 思考及練習 ............................................................................................36

第 2章 SysI-Lab2多路選擇器 ..................................................................38 

2.1實驗工具 

........................................................................................38 

2.

2多路選擇器設計 ..............................................................................38 

2.2.1基本概念

..............................................................................38 

2.

2.2電路級別的實現....................................................................39 

2.

2.3四路選擇器的實現 ................................................................39 

2.3實驗步驟 

........................................................................................41 思考及練習 ............................................................................................41

第 3章 SysI-Lab3七段數碼管 ..................................................................42 

3.1實驗工具 

........................................................................................42 

3.2背景知識 

........................................................................................42 

3.

2.1復合多路選擇器....................................................................42 

3.2.2譯碼器 

.................................................................................43 

計算機系統貫通課程實踐教材(RISC-V架構) 

3.2.3時鐘分頻器 ..........................................................................43 

3.2.4 NEXYS A7-100T七段管 ......................................................43 

3.3實驗步驟 ........................................................................................45 思考及練習 ............................................................................................46

第 4章 SysI-Lab4全加減法器 ..................................................................47 

4.1實驗工具 ........................................................................................47 

4.2加法器設計.....................................................................................47 

4.2.1加法器實驗原理....................................................................47 

4.2.2加法器實驗步驟....................................................................50 

4.3加減法器設計 .................................................................................51 

4.3.1加減法器實驗原理 ................................................................51 

4.3.2 64b加減法器實驗步驟 ..........................................................52 思考及練習 ............................................................................................52

第 5章 SysI-Lab5時序電路設計 ...............................................................53 

5.1實驗工具 ........................................................................................53 

5.2時序電路設計基礎...........................................................................53 

5.2.1有限狀態機 ..........................................................................53 

5.2.2計數器 .................................................................................55 

5.2.3分頻器 .................................................................................55 

5.3計時器設計.....................................................................................56 

5.3.1 4位二進制計數器 .................................................................56 

5.3.2 2位 BCD碼計數器 ..............................................................57 

5.3.3計時器實驗步驟....................................................................57 

5.4乘法器設計.....................................................................................58 

5.4.1乘法器實驗原理....................................................................58 

5.4.2 Booth算法 ..........................................................................60 

5.4.3乘法器實驗步驟....................................................................61 思考及練習 ............................................................................................62

第 6章 SysI-Lab6卷積核實現 ..................................................................63 

6.1實驗工具 ........................................................................................63 

6.2背景知識 .......................................................................................63 

6.2.1移位寄存器 ..........................................................................63 

6.2.2 SystemVerilog語法...............................................................64 

6.2.3 Ready-Valid握手 .................................................................66 

6.3實驗原理 ........................................................................................67 

7.5.1理解跳轉表 ..........................................................................86 

7.5.2回顧冒泡排序算法 ................................................................87 

7.5.3理解簡單 RISC-V程序 .........................................................87 

7.5.4理解遞歸匯編程序 ................................................................88 

7.5.5理解 switch語句產生的跳轉表 ..............................................89 

7.6實驗步驟 ........................................................................................90 

7.6.1冒泡排序的匯編實現 .............................................................90 

7.6.2斐波那契數列的匯編實現 ......................................................90 

7.6.3通過調試破解密鑰 ................................................................91 

7.6.4 RISC-V Binary Bomb...........................................................92 思考及練習 ............................................................................................93

第 8章 SysI-Lab8單周期 CPU設計........................................................94 

8.1實驗工具 ........................................................................................94 

8.2背景知識 ........................................................................................94 

8.2.1 RISC-V指令格式 .................................................................94 

8.2.2數據通路..............................................................................95 

8.2.3控制單元..............................................................................97 

8.3 RISC-V基礎指令 ......................................................................... 101 

8.4實驗原理 ...................................................................................... 114 

8.4.1 Memory設計 ..................................................................... 114 

8.4.2數據通路設計 ..................................................................... 116 

數據冒險............................................................................ 

9.3.2實現暫停機制 ..................................................................... 128 

9.4 DRAM和 BRAM的區別.............................................................. 128 

9.5 BRAM的使用.............................................................................. 129 

9.6實驗目標 ...................................................................................... 130 

9.7實驗步驟 ...................................................................................... 131 思考及練習 .......................................................................................... 132

第 10章 SysII-Lab2流水線冒險的解決.................................................... 133 

10.1實驗工具 .................................................................................... 133 

10.2實驗原理 .................................................................................... 133 

10.2.1流水線的旁路機制 ........................................................... 133 

10.2.2 Axi-lite總線協議 ............................................................ 134 

10.3實驗步驟 .................................................................................... 136 思考及練習 .......................................................................................... 136

第 11章 SysII-Lab3卷積加速器.............................................................. 137 

11.1實驗工具 .................................................................................... 137 

11.2實驗原理 .................................................................................... 137 

11.2.1外設編程接口.................................................................. 137 

11.2.2 MMIO機制及定義 .......................................................... 138 

11.2.3卷積加速器的 I/O映射及操作 ......................................... 139 

實驗工具 .................................................................................... 

13.2背景知識 .................................................................................... 150 

13.2.1 RISC-V中的中斷和異常.................................................. 150 

13.2.2上下文處理 ..................................................................... 152 

13.2.3異常處理程序和時鐘中斷 ................................................. 152 

13.3實驗步驟 .................................................................................... 152 

13.3.1準備工程 ........................................................................ 152 

13.3.2開啟異常處理.................................................................. 154 

13.3.3實現上下文切換 .............................................................. 155 

13.3.4實現異常處理函數 ........................................................... 156 

13.3.5實現時鐘中斷相關函數 .................................................... 156 

13.3.6實驗樣例 ........................................................................ 157 思考及練習 .......................................................................................... 157

第 14章 SysII-Lab6異常流水線.............................................................. 158 

14.1實驗工具 .................................................................................... 158 

14.2實驗原理 .................................................................................... 158 

14.2.1 RISC-V特權級 ............................................................... 158 

14.2.2控制和狀態寄存器 ........................................................... 158 

14.2.3異常和中斷 ..................................................................... 159 

14.3異常流水線設計 .......................................................................... 162 

14.3.1實現 CSR指令................................................................ 162 

15.3.4實驗樣例 ........................................................................ 174 思考及練習 .......................................................................................... 176

第 16章 SysII-Lab8軟硬件協同的嘗試.................................................... 177 

16.1實驗工具 .................................................................................... 177 

16.2實驗原理 .................................................................................... 177 

16.2.1整體架構設計.................................................................. 177 

16.2.2硬件外圍設計.................................................................. 178 

16.3編譯內核 .................................................................................... 178 

16.4外圍準備 .................................................................................... 179 

16.4.1 Bootloader代碼 .............................................................. 179 

16.4.2生成下板代碼.................................................................. 180 

16.4.3建立工程文件.................................................................. 180 

16.4.4觀察下板現象.................................................................. 181 

16.4.5 Vivado仿真運行 ............................................................. 182 

16.5實驗步驟 .................................................................................... 182 思考及練習 .......................................................................................... 182

第 3部分計算機系統 III——定制化內核 + CPU綜合設計 .............183

第 17章 SysIII-Lab1動態分支預測 ......................................................... 185 

17.1實驗工具 .................................................................................... 185 

18.2.4 Cache與 Memory的數據傳輸.......................................... 196 

18.3 Cache控制邏輯 .......................................................................... 198 

18.3.1初始化 IDLE狀態........................................................... 199 

18.3.2讀事務執行 READ狀態 .................................................. 199 

18.3.3寫事務執行 WRITE狀態 ................................................ 200 

18.4 Cache的完整結構 ....................................................................... 201 

18.5實驗步驟 .................................................................................... 203 

18.5.1實驗目標 ........................................................................ 203 

18.5.2仿真測試 ........................................................................ 204 

18.5.3上板驗證 ........................................................................ 205 思考及練習 .......................................................................................... 205

第 19章 SysIII-Lab3 RV64虛擬內存管理 ............................................... 206 

19.1實驗工具 .................................................................................... 206 

19.2虛擬內存布局.............................................................................. 206 

19.3 SATP寄存器.............................................................................. 207 

19.4虛實地址轉換.............................................................................. 208 

19.4.1虛擬地址和物理地址........................................................ 208 

19.4.2 RISC-V Sv39模式頁表項 ................................................ 208 

19.4.3 RISC-V地址轉換............................................................ 209 

19.5實驗步驟 .................................................................................... 209 

20.4.3中斷處理 ........................................................................ 221 

20.4.4添加系統調用.................................................................. 223 

20.4.5修改內核啟動.................................................................. 223 

20.4.6編譯及測試 ..................................................................... 223 思考及練習 .......................................................................................... 224

第 21章 SysIII-Lab5 RV64缺頁異常處理 ............................................... 225 

21.1實驗工具 .................................................................................... 225 

21.2背景知識 .................................................................................... 225 

21.2.1虛擬內存管理.................................................................. 225 

21.2.2缺頁異常 ........................................................................ 226 

21.3實驗步驟 .................................................................................... 227 

21.3.1準備工程 ........................................................................ 227 

21.3.2實現虛擬內存管理 ........................................................... 228 

21.3.3任務初始化 ..................................................................... 230 

21.3.4實現缺頁異常處理 ........................................................... 230 

21.3.5編譯及測試 ..................................................................... 231 思考及練習 .......................................................................................... 232

第 22章 SysIII-Lab6 fork機制............................................................... 233 

22.1實驗工具 .................................................................................... 233 

22.2 fork基礎知識 ............................................................................. 233 

23.2.1 RISC-V Sv39分頁模式.................................................... 241 

23.2.2 Axi-lite總線模型 ............................................................ 243 

23.2.3 MMU模塊 ..................................................................... 243 

23.3實驗步驟 .................................................................................... 244 

23.3.1實驗目標 ........................................................................ 244 

23.3.2仿真測試 ........................................................................ 244 

23.3.3上板驗證 ........................................................................ 244 思考及練習 .......................................................................................... 244

第 24章 SysIII-Lab8完成自己的計算機系統 ............................................ 245 

24.1實驗工具 .................................................................................... 245 

24.2實驗目標 .................................................................................... 245 

24.3實驗原理 .................................................................................... 246 

24.3.1用戶態實現及中斷完善 .................................................... 246 

24.3.2地址轉換後備緩沖器........................................................ 246 

24.3.3 MMIO與外設................................................................. 247 

24.4設計範例 .................................................................................... 247 

24.4.1範例一:指令集擴展........................................................ 247 

24.4.2範例二:運行較為完善的 Kernel ...................................... 252 思考及練習 .......................................................................................... 259 

第4部分  附錄及常見問題..................................  261

附錄A  硬件描述語言常見語句及電路圖 ..................................263

附錄B  配置IP核..................................275

附錄C  常見問題..................................287

參考文獻..................................294

最後瀏覽商品 (20)