-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應用
-
>
決戰行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優實踐之路
-
>
第一行代碼Android
-
>
JAVA持續交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
RISC-V體系結構編程與實踐 版權信息
- ISBN:9787115603609
- 條形碼:9787115603609 ; 978-7-115-60360-9
- 裝幀:簡裝本
- 冊數:暫無
- 重量:暫無
- 所屬分類:>
RISC-V體系結構編程與實踐 本書特色
一本書帶你了解谷歌、蘋果等科技巨頭看好的RISC-V體系結構
1.一線芯片公司工程師撰寫,系統介紹RISC-V體系結構,總結常見陷阱以及項目經驗
2.圖文并茂,用通俗易懂的語言講述RISC-V體系結構中的疑難點
3.充實理論+有趣實驗,助力讀者快速掌握RISC-V體系結構
4.實用豐富的配套資源,隨書贈送參考代碼、實驗環境和免費視頻講解
RISC-V體系結構編程與實踐 內容簡介
RISC-V體系結構基礎知識以及香山處理器微架構實現;
RISC-V實驗環境的搭建;
RISC-V指令集中常用指令、RISC-V函數的調用規范與棧;
GNU匯編器、鏈接器、鏈接腳本和GCC內嵌匯編代碼。
RISC-V體系結構中的中斷和異常處理;
RISC-V體系結構中的內存管理、高速緩存、緩存一致性;
RISC-V體系結構中的TLB管理、原子操作和內存屏障指令;
RSIC-V體系結構中的壓縮指令擴展;
RISC-V體系結構中的虛擬化擴展;
RISC-V體系結構中的可伸縮矢量指令擴展。
RISC-V體系結構編程與實踐 目錄
1.1 RISC-V介紹 1
1.1.1 RISC-V指令集優點 1
1.1.2 RISC-V指令集擴展 2
1.1.3 RISC-V商業化發展 2
1.2 RISC-V體系結構介紹 3
1.2.1 RISC-V體系結構 3
1.2.2 采用RISC-V體系結構的常見處理器 3
1.2.3 RISC-V體系結構中的基本概念 4
1.2.4 SBI服務 5
1.3 RISC-V寄存器 6
1.3.1 通用寄存器 6
1.3.2 系統寄存器 7
1.3.3 U模式下的系統寄存器 8
1.3.4 S模式下的系統寄存器 9
1.3.5 M模式下的系統寄存器 11
1.4 香山處理器介紹 15
1.4.1 香山處理器體系結構 15
1.4.2 香山處理器的前端子系統 16
1.4.3 香山處理器的后端子系統 18
1.4.4 香山處理器的訪存子系統 20
1.4.5 香山處理器的L2/L3高速緩存 25
第 2章 搭建RISC-V實驗環境 29
2.1 實驗平臺 29
2.1.1 QEMU 29
2.1.2 NEMU 30
2.2 搭建實驗環境 31
2.2.1 實驗2-1:輸出“Welcome RISC-V!” 31
2.2.2 實驗2-2:單步調試BenOS和MySBI 32
2.3 BenOS和MySBI基礎實驗代碼解析 34
2.3.1 MySBI基礎代碼分析 34
2.3.2 BenOS基礎代碼分析 37
2.3.3 合并BenOS和MySBI 41
2.4 QEMU + RISC-V + Linux實驗平臺 41
第3章 基礎指令集 44
3.1 RISC-V指令集介紹 44
3.2 RISC-V指令編碼格式 45
3.3 加載與存儲指令 46
3.4 PC相對尋址 49
3.5 移位操作 53
3.6 位操作指令 55
3.7 算術指令 56
3.8 比較指令 57
3.9 無條件跳轉指令 58
3.10 條件跳轉指令 59
3.11 CSR指令 61
3.12 尋址范圍 62
3.13 陷阱:為什么ret之后就進入死循環 62
3.14 實驗 64
3.14.1 實驗3-1:熟悉加載指令 64
3.14.2 實驗3-2:PC相對地址尋址 64
3.14.3 實驗3-3:memcpy()函數的實現 65
3.14.4 實驗3-4:memset()函數的實現 65
3.14.5 實驗3-5:條件跳轉指令1 65
3.14.6 實驗3-6:條件跳轉指令2 66
3.14.7 實驗3-7:子函數跳轉 66
3.14.8 實驗3-8:在匯編中實現串口輸出功能 66
第4章 函數調用規范與棧 67
4.1 函數調用規范 67
4.2 入棧與出棧 70
4.3 RISC-V棧的布□ 72
4.3.1 不使用FP的棧布□ 72
4.3.2 使用FP的棧布□ 74
4.3.3 棧回溯 76
4.4 實驗 78
4.4.1 實驗4-1:觀察棧布□ 78
4.4.2 實驗4-2:觀察棧回溯 78
第5章 GNU匯編器 79
5.1 編譯流程與ELF文件 79
5.2 一個簡單的匯編程序 82
5.3 匯編語法 84
5.3.1 注釋 84
5.3.2 符號 84
5.4 常用的偽指令 85
5.4.1 對齊偽指令 85
5.4.2 數據定義偽指令 86
5.4.3 與函數相關的偽指令 87
5.4.4 與段相關的偽指令 87
5.4.5 與宏相關的偽指令 89
5.4.6 與文件相關的偽指令 91
5.5 RISC-V依賴特性 91
5.5.1 RISC-V特有的命令行選項 91
5.5.2 RISC-V特有的偽指令 92
5.6 實驗 92
5.6.1 實驗5-1:匯編語言練習—查找□□數 92
5.6.2 實驗5-2:匯編語言練習—通過C語言調用匯編函數 92
5.6.3 實驗5-3:匯編語言練習—通過匯編語言調用C函數 92
5.6.4 實驗5-4:使用匯編偽操作實現一張表 92
5.6.5 實驗5-5:匯編宏的使用 93
第6章 鏈接器與鏈接腳本 94
6.1 鏈接器 94
6.2 鏈接腳本 95
6.2.1 一個簡單的鏈接程序 95
6.2.2 設置入口點 96
6.2.3 基本概念 97
6.2.4 符號賦值與引用 97
6.2.5 當前位置計數器 98
6.2.6 SECTIONS命令 99
6.2.7 常用的內置函數 101
6.3 加載重定位 103
6.3.1 BenOS重定位 103
6.3.2 OpenSBI和Linux內核重定位 105
6.4 鏈接重定位與鏈接器松弛優化 108
6.4.1 鏈接重定位 108
6.4.2 函數跳轉優化 112
6.4.3 符號地址訪問優化 114
6.5 實驗 116
6.5.1 實驗6-1:分析鏈接腳本 116
6.5.2 實驗6-2:輸出每個段的內存布□ 116
6.5.3 實驗6-3:加載地址不等于運行地址 117
6.5.4 實驗6-4:設置鏈接地址 117
6.5.5 實驗6-5:鏈接器松弛優化1 117
6.5.6 實驗6-6:鏈接器松弛優化2 117
6.5.7 實驗6-7:分析Linux 5.15內核的鏈接腳本 117
第7章 內嵌匯編代碼 118
7.1 內嵌匯編代碼基本用法 118
7.2 案例分析 124
7.3 注意事項 128
7.4 實驗 128
第8章 異常處理 130
8.1 異常處理基本概念 130
8.2 與M模式相關的異常寄存器 133
8.3 與S模式相關的異常寄存器 137
8.4 異常上下文 139
8.5 案例分析8-1:實現SBI系統調用 142
8.6 案例分析8-2:BenOS的異常處理 148
8.7 實驗 154
第9章 中斷處理與中斷控制器 156
9.1 中斷處理基本概念 156
9.2 CLINT 159
9.3 案例分析9-1:定時器中斷 160
9.4 PLIC 164
9.5 案例分析9-2:串口中斷 167
9.6 實驗 171
第 10章 內存管理 172
10.1 內存管理基礎知識 172
10.2 RISC-V內存管理 178
10.3 物理內存屬性與物理內存保護 187
10.4 案例分析10-1:在BenOS里實現恒等映射 190
10.5 內存管理實驗 204
第 11章 高速緩存 207
11.1 為什么需要高速緩存 207
11.2 高速緩存的訪問延時 208
11.3 高速緩存的工作原理 210
11.4 高速緩存的映射方式 212
11.5 虛擬高速緩存與物理高速緩存 215
11.6 重名和同名問題 216
11.7 高速緩存策略 220
11.8 高速緩存的維護指令 221
第 12章 緩存一致性 224
12.1 為什么需要緩存一致性 224
12.2 緩存一致性的分類 225
12.3 緩存一致性的解決方案 227
12.4 MESI協議 228
12.5 高速緩存偽共享 237
12.6 兩種緩存一致性控制器 239
12.7 案例分析12-1:偽共享的避免 241
12.8 案例分析12-2:DMA和高速緩存的一致性 242
12.9 案例分析12-3:自修改代碼的一致性 244
12.10 實驗 245
第 13章 TLB管理 246
13.1 TLB基礎知識 247
13.2 TLB重名與同名問題 249
13.3 ASID 251
13.4 TLB管理指令 253
13.5 TLB案例分析 256
第 14章 原子操作 261
14.1 原子操作介紹 261
14.2 保留加載與條件存儲指令 262
14.3 獨占內存訪問工作原理 263
14.4 原子內存訪問操作指令 266
14.5 比較并交換操作 270
第 15章 內存屏障指令 275
15.1 內存屏障指令產生的原因 275
15.2 RISC-V約束條件 280
15.3 RISC-V中的內存屏障指令 284
15.4 RISC-V內存屏障指令移植指南 286
15.5 案例分析 288
15.6 模擬和測試內存屏障故障 291
15.7 實驗 297
第 16章 合理使用內存屏障指令 299
16.1 存儲緩沖區與寫內存屏障指令 300
16.2 無效隊列與讀內存屏障指令 305
16.3 內存屏障指令總結 307
16.4 案例分析:Linux內核中的內存屏障指令 308
16.5 實驗 315
第 17章 與操作系統相關的內容 316
17.1 C語言常見陷阱 317
17.2 創建進程 320
17.3 簡易進程調度器 327
17.4 讓進程運行在用戶模式 335
17.5 系統調用 338
17.6 實現clone系統調用 341
17.7 實驗 343
第 18章 可伸縮矢量計算與優化 345
18.1 矢量計算基本概念 345
18.2 RVV寄存器 348
18.3 配置編譯和運行環境 351
18.4 RVV指令格式 357
18.5 配置指令 358
18.6 加載和存儲指令 360
18.7 矢量掩碼指令 369
18.8 矢量整型算術指令 372
18.9 案例分析18-1:使用RVV指令優化strcmp()函數 377
18.10 案例分析18-2:RGB24轉BGR24 380
18.11 案例分析18-3:4 × 4矩陣乘法運算 382
18.12 案例分析18-4:使用RVV內置函數 388
18.13 案例分析18-5:自動矢量優化 388
18.14 術語 390
18.15 實驗 391
第 19章 壓縮指令擴展 393
19.1 RISC-V指令集的特點 393
19.2 RVC支持的指令格式與指令編碼 394
第 20章 虛擬化擴展 396
20.1 虛擬化技術介紹 396
20.2 RISC-V虛擬化擴展 399
20.3 RISC-V內存虛擬化 404
20.4 RISC-V虛擬化擴展中的新增指令 406
20.5 進入和退出虛擬機 407
20.6 中斷虛擬化 410
20.7 案例分析20-1:進入和退出虛擬機 412
20.8 案例分析20-2:建立虛擬化兩階段地址映射 415
20.9 案例分析20-3:在虛擬機中實現虛擬定時器 420
20.10 案例分析20-4:在VMM中加載和存儲虛擬機內存地址 422
20.11 案例分析20-5:在VMM中模擬串口設備 424
20.12 實驗 429
附錄A 關于RISC-V體系結構自測題的參考答案與提示 431
附錄B RV64I指令速查表 433
附錄C RV64M指令速查表 437
附錄D RV64常用偽指令速查表 439
RISC-V體系結構編程與實踐 作者簡介
奔跑吧Linux社區 由一群熱愛開源的工程師組成,致力于開源硬件和開源軟件的推廣。
審校者簡介
香山處理器團隊
面向世界的體系結構創新開源平臺,目前已形成由多家企業組成的香山聯合開發團隊。其中,香山處理器是由中國科學院計算技術□□□發起的開源高性能RISC-V處理器核項目。
龍蜥社區RISC-V SIG
堅持開放、開源,致力于龍蜥社區以及 RISCV 軟硬件生態的共建和推廣。
進迭時空
專注研發新一代高性能RISC-V處理器和計算系統,讓開發者基于RISC-V芯片更自由地開發更有創意的新應用。
- >
【精裝繪本】畫給孩子的中國神話
- >
巴金-再思錄
- >
姑媽的寶刀
- >
二體千字文
- >
羅曼·羅蘭讀書隨筆-精裝
- >
中國歷史的瞬間
- >
名家帶你讀魯迅:故事新編
- >
小考拉的故事-套裝共3冊