TOP
0
0
魅麗。花火原創小說66折起
手把手教你設計CPU:RISC-V處理器篇(簡體書)
滿額折
手把手教你設計CPU:RISC-V處理器篇(簡體書)
手把手教你設計CPU:RISC-V處理器篇(簡體書)
手把手教你設計CPU:RISC-V處理器篇(簡體書)
手把手教你設計CPU:RISC-V處理器篇(簡體書)
手把手教你設計CPU:RISC-V處理器篇(簡體書)
手把手教你設計CPU:RISC-V處理器篇(簡體書)
手把手教你設計CPU:RISC-V處理器篇(簡體書)
手把手教你設計CPU:RISC-V處理器篇(簡體書)
手把手教你設計CPU:RISC-V處理器篇(簡體書)
手把手教你設計CPU:RISC-V處理器篇(簡體書)
手把手教你設計CPU:RISC-V處理器篇(簡體書)
手把手教你設計CPU:RISC-V處理器篇(簡體書)
手把手教你設計CPU:RISC-V處理器篇(簡體書)

手把手教你設計CPU:RISC-V處理器篇(簡體書)

人民幣定價:99 元
定  價:NT$ 594 元
優惠價:87517
缺貨無法訂購
相關商品
商品簡介
作者簡介
目次

商品簡介

本書是一本介紹通用CPU設計的入門書,以通俗的語言系統介紹了CPU和RISC-V架構,力求為讀者揭開CPU設計的神秘面紗,打開計算機體系結構的大門。
本書共分為四部分。第一部分是CPU與RISC-V的綜述,幫助初學者對CPU和RISC-V快速地建立起認識。第二部分講解如何使用Verilog設計CPU,使讀者掌握處理器核的設計精髓。第三部分主要介紹蜂鳥E203配套的SoC和軟件平臺,使讀者實現蜂鳥E203 RISC-V處理器在FPGA原型平臺上的運行。第四部分是附錄,介紹了RISC-V指令集架構,輔以作者加入的背景知識解讀和注解,以便於讀者理解。
本書不僅適合CPU或芯片設計相關從業者閱讀使用,也適合作為大中專院校相關師生學習RISC-V處理器設計(使用Verilog語言)和CPU設計的指導用書。

作者簡介

胡振波,上海交通大學電子工程系本科、微電子學院碩士。擁有業界多年ASIC和CPU設計與驗證經驗,先後在Marvell任職ARM架構CPU設計高級工程師、在Synopsys任職研發經理、在比特大陸任職IC設計總監、在武漢聚芯微電子任職架構師,現致力於推動RISC-V架構在國內的傳播和發展。

目次

第 一部分 CPU與RISC-V綜述

第 1章 一文讀懂CPU之三生三世 2
1.1 眼看他起高樓,眼看他宴賓客,眼看他樓塌了――CPU眾生相 3
1.1.1 ISA――CPU的靈魂 4
1.1.2 CISC與RISC 5
1.1.3 32位與64位架構 6
1.1.4 ISA眾生相 6
1.1.5 CPU的領域之分 10
1.2 ISA請扛起這口鍋――為什麼國產CPU尚未足夠成功 12
1.2.1 MIPS系――龍芯和君正 12
1.2.2 x86系――北大眾志、兆芯和海光 13
1.2.3 Power系――中晟宏芯 13
1.2.4 Alpha系――申威 14
1.2.5 ARM系――飛騰、華為海思、展訊和華芯通 14
1.2.6 背鍋俠ISA 15
1.3 人生已是如此艱難,你又何必拆穿――CPU從業者的無奈 17
1.4 無敵是多麼寂寞――ARM統治著的世界 18
1.4.1 獨樂樂與眾樂樂――ARM公司的盈利模式 18
1.4.2 小個子有大力量――無處不在的Cortex-M系列 21
1.4.3 移動王者――Cortex-A系列在手持設備領域的巨大成功 23
1.4.4 進擊的巨人――ARM進軍PC與服務器領域的雄心 25
1.5 東邊日出西邊雨,道是無晴卻有晴――RISC-V登場 25
1.6 原來你是這樣的“薯片”――ARM的免費計劃 28
1.7 舊時王謝堂前燕,飛入尋常百姓家――你也可以設計自己的處理器 28
第 2章 大道至簡――RISC-V架構之魂 29
2.1 簡單就是美――RISC-V架構的設計哲學 30
2.1.1 無病一身輕――架構的篇幅 30
2.1.2 能屈能伸――模塊化的指令集 32
2.1.3 濃縮的都是精華――指令的數量 32
2.2 RISC-V指令集架構簡介 33
2.2.1 模塊化的指令子集 33
2.2.2 可配置的通用寄存器組 34
2.2.3 規整的指令編碼 34
2.2.4 簡潔的存儲器訪問指令 34
2.2.5 高效的分支跳轉指令 35
2.2.6 簡潔的子程序調用 36
2.2.7 無條件碼執行 37
2.2.8 無分支延遲槽 37
2.2.9 零開銷硬件循環 38
2.2.10 簡潔的運算指令 38
2.2.11 優雅的壓縮指令子集 39
2.2.12 特權模式 40
2.2.13 CSR寄存器 40
2.2.14 中斷和異常 40
2.2.15 矢量指令子集 40
2.2.16 自定制指令擴展 41
2.2.17 總結與比較 41
2.3 RISC-V軟件工具鏈 42
2.4 RISC-V和其他開放架構有何不同 44
2.4.1 平民英雄――OpenRISC 44
2.4.2 豪門顯貴――SPARC 44
2.4.3 名校優生――RISC-V 45
第3章 亂花漸欲迷人眼――盤點RISC-V商業版本與開源版本 46
3.1 各商業版本與開源版本綜述 47
3.1.1 Rocket Core(開源) 47
3.1.2 BOOM Core(開源) 49
3.1.3 Freedom SoC(開源) 50
3.1.4 LowRISC SoC(開源) 50
3.1.5 PULPino Core and SoC(開源) 50
3.1.6 PicoRV32 Core(開源) 51
3.1.7 SCR1 Core(開源) 51
3.1.8 ORCA Core(開源) 51
3.1.9 Andes Core(商業IP) 52
3.1.10 Microsemi Core(商業IP) 52
3.1.11 Codasip Core(商業IP) 53
3.1.12 蜂鳥E200 Core與SoC(開源) 53
3.2 總結 53
第4章 開源RISC-V――蜂鳥E200系列超低功耗Core與SoC 54
4.1 與眾不同的蜂鳥E200處理器 55
4.2 蜂鳥E200簡介――蜂鳥雖小,五臟俱全 56
4.3 蜂鳥E200型號系列 57
4.4 蜂鳥E200性能指標 58
4.5 蜂鳥E200配套SoC 59
4.6 蜂鳥E200配置選項 60

第二部分 手把手教你使用Verilog設計CPU

第5章 先見森林,後觀樹木――蜂鳥E200設計總覽和頂層介紹 65
5.1 處理器硬件設計概述 66
5.1.1 架構和微架構 66
5.1.2 CPU、處理器、Core和處理器核 66
5.1.3 處理器設計和驗證的特點 66
5.2 蜂鳥E200處理器核設計哲學 67
5.3 蜂鳥E200處理器核RTL代碼風格介紹 68
5.3.1 使用標準DFF模塊例化生成寄存器 68
5.3.2 推薦使用assign語法替代if-else和case語法 70
5.3.3 其他若干注意事項 71
5.3.4 小結 72
5.4 蜂鳥E200模塊層次劃分 72
5.5 蜂鳥E200處理器核源代碼 73
5.6 蜂鳥E200處理器核配置選項 73
5.7 蜂鳥E200處理器核支持的RISC-V指令子集 74
5.8 蜂鳥E200處理器流水線結構 74
5.9 蜂鳥E200處理器核頂層接口介紹 74
5.10 總結 77
第6章 流水線不是流水帳――蜂鳥E200流水線介紹 78
6.1 處理器流水線概述 79
6.1.1 從經典的五級流水線說起 79
6.1.2 可否不要流水線――流水線和狀態機的關係 81
6.1.3 深處種菱淺種稻,不深不淺種荷花――流水線的深度 81
6.1.4 向上生長――越來越深的流水線 82
6.1.5 向下生長――越來越淺的流水線 83
6.1.6 總結 83
6.2 處理器流水線中的亂序 83
6.3 處理器流水線中的反壓 84
6.4 處理器流水線中的衝突 84
6.4.1 流水線中的資源衝突 84
6.4.2 流水線中的數據衝突 85
6.5 蜂鳥E200處理器的流水線 86
6.5.1 流水線總體結構 86
6.5.2 流水線中的衝突 87
6.6 總結 87
第7章 萬事開頭難嗎―― 一切從取指令開始 88
7.1 取指概述 89
7.1.1 取指特點 89
7.1.2 如何快速取指 90
7.1.3 如何處理非對齊指令 91
7.1.4 如何處理分支指令 92
7.2 RISC-V架構特點對於取指的簡化 97
7.2.1 規整的指令編碼格式 97
7.2.2 指令長度指示碼放於低位 97
7.2.3 簡單的分支跳轉指令 98
7.2.4 沒有分支延遲槽指令 100
7.2.5 提供明確的靜態分支預測依據 100
7.2.6 提供明確的RAS依據 101
7.3 蜂鳥E200處理器的取指實現 101
7.3.1 IFU總體設計思路 102
7.3.2 Mini-Decode 103
7.3.3 Simple-BPU分支預測 105
7.3.4 PC生成 109
7.3.5 訪問ITCM和BIU 111
7.3.6 ITCM 115
7.3.7 BIU 116
7.4 總結 116
第8章 一鼓作氣,執行力是關鍵――執行 117
8.1 執行概述 118
8.1.1 指令譯碼 118
8.1.2 指令執行 118
8.1.3 流水線的衝突 119
8.1.4 指令的交付 119
8.1.5 指令發射、派遣、執行、寫回的順序 119
8.1.6 分支解析 121
8.1.7 小結 121
8.2 RISC-V架構特點對於執行的簡化 121
8.2.1 規整的指令編碼格式 122
8.2.2 優雅的16位指令 122
8.2.3 精簡的指令個數 122
8.2.4 整數指令都是兩操作數 122
8.3 蜂鳥E200處理器的執行實現 123
8.3.1 執行指令列表 123
8.3.2 EXU總體設計思路 123
8.3.3 譯碼 124
8.3.4 整數通用寄存器組 130
8.3.5 CSR寄存器 133
8.3.6 指令發射派遣 134
8.3.7 流水線衝突、長指令和OITF 139
8.3.8 ALU 145
8.3.9 高性能乘除法 157
8.3.10 浮點單元 158
8.3.11 交付 159
8.3.12 寫回 159
8.3.13 協處理器擴展 160
8.3.14 小結 160
第9章 善始者實繁,克終者蓋寡――交付 161
9.1 處理器交付、取消、沖刷 162
9.1.1 處理器交付、取消、沖刷簡介 162
9.1.2 處理器交付常見實現策略 163
9.2 RISC-V架構特點對於交付的簡化 164
9.3 蜂鳥E200處理器交付硬件實現 164
9.3.1 分支預測指令的處理 165
9.3.2 中斷和異常的處理 168
9.3.3 多週期執行指令的交付 169
9.3.4 小結 169
第 10章 讓子彈飛一會兒――寫回 170
10.1 處理器的寫回 171
10.1.1 處理器寫回功能簡介 171
10.1.2 處理器寫回常見策略 171
10.2 蜂鳥E200處理器的寫回硬件實現 171
10.2.1 最終寫回仲裁 172
10.2.2 OITF和長指令寫回仲裁 174
10.2.3 小結 177
第 11章 哈弗還是比亞迪――存儲器架構 178
11.1 存儲器架構概述 179
11.1.1 誰說處理器一定要有緩存 179
11.1.2 處理器一定要有存儲器 180
11.1.3 ITCM和DTCM 182
11.2 RISC-V架構特點對於存儲器訪問指令的簡化 183
11.2.1 僅支持小端格式 183
11.2.2 無地址自增自減模式 183
11.2.3 無“一次讀多個數據”和“一次寫多個數據”指令 183
11.3 RISC-V架構的存儲器相關指令 184
11.3.1 Load和Store指令 184
11.3.2 Fence指令 184
11.3.3 “A”擴展指令 184
11.4 蜂鳥E200處理器存儲器子系統硬件實現 185
11.4.1 存儲器子系統總體設計思路 185
11.4.2 AGU 186
11.4.3 LSU 190
11.4.4 ITCM和DTCM 192
11.4.5 “A”擴展指令處理 195
11.4.6 Fence與Fence.I指令處理 200
11.4.7 BIU 202
11.4.8 ECC 202
11.4.9 小結 202
第 12章 黑盒子的窗口――總線接口單元BIU 203
12.1 片上總線協議概述 204
12.1.1 AXI 204
12.1.2 AHB 204
12.1.3 APB 205
12.1.4 TileLink 205
12.1.5 總結比較 205
12.2 自定義總線協議ICB 206
12.2.1 ICB總線協議簡介 206
12.2.2 ICB總線協議信號 207
12.2.3 ICB總線協議時序 207
12.3 ICB總線的硬件實現 210
12.3.1 一主多從 210
12.3.2 多主一從 211
12.3.3 多主多從 212
12.4 蜂鳥E200處理器核BIU 212
12.4.1 BIU簡介 212
12.4.2 BIU微架構 213
12.4.3 BIU源碼分析 214
12.5 蜂鳥E200處理器SoC總線 214
12.5.1 SoC總線簡介 215
12.5.2 SoC總線微架構 215
12.5.3 SoC總線源碼分析 216
12.6 總結 216
第 13章 不得不說的故事――中斷和異常 217
13.1 中斷和異常概述 218
13.1.1 中斷概述 218
13.1.2 異常概述 219
13.1.3 廣義上的異常 219
13.2 RISC-V架構異常處理機制 221
13.2.1 進入異常 221
13.2.2 退出異常 224
13.2.3 異常服務程序 225
13.3 RISC-V架構中斷定義 226
13.3.1 中斷類型 226
13.3.2 中斷屏蔽 228
13.3.3 中斷等待 229
13.3.4 中斷優先級與仲裁 230
13.3.5 中斷嵌套 230
13.3.6 總結比較 231
13.4 RISC-V架構異常相關CSR寄存器 232
13.5 蜂鳥E200異常處理的硬件實現 232
13.5.1 蜂鳥E200處理器的異常和中斷實現要點 232
13.5.2 蜂鳥E200處理器的異常類型 233
13.5.3 蜂鳥E200處理器對於mepc的處理 234
13.5.4 蜂鳥E200處理器的中斷接口 234
13.5.5 蜂鳥E200處理器CLINT微架構及源碼分析 235
13.5.6 蜂鳥E200處理器PLIC微架構及源碼分析 238
13.5.7 蜂鳥E200處理器交付模塊對中斷和異常的處理 242
13.5.8 小結 245
第 14章 最不起眼的,其實是最難的――調試機制 246
14.1 調試機制概述 247
14.1.1 交互調試概述 247
14.1.2 跟蹤調試概述 249
14.2 RISC-V架構的調試機制 249
14.2.1 調試器軟件的實現 250
14.2.2 調試模式 250
14.2.3 調試指令 251
14.2.4 調試機制CSR 251
14.2.5 調試中斷 251
14.3 蜂鳥E200調試機制的硬件實現 251
14.3.1 蜂鳥E200交互式調試概述 251
14.3.2 DTM模塊 253
14.3.3 硬件調試模塊 253
14.3.4 調試中斷處理 257
14.3.5 調試機制CSR寄存器的實現 258
14.3.6 調試機制指令的實現 258
14.3.7 小結 259
第 15章 動如脫兔,靜若處子――低功耗的訣竅 260
15.1 處理器低功耗技術概述 261
15.1.1 軟件層面低功耗 261
15.1.2 系統層面低功耗 261
15.1.3 處理器層面低功耗 262
15.1.4 單元層面低功耗 262
15.1.5 寄存器層面低功耗 263
15.1.6 鎖存器層面低功耗 264
15.1.7 SRAM層面低功耗 264
15.1.8 組合邏輯層面低功耗 264
15.1.9 工藝層面低功耗 265
15.2 RISC-V架構的低功耗機制 265
15.3 蜂鳥E200低功耗機制的硬件實現 265
15.3.1 蜂鳥E200系統層面低功耗 265
15.3.2 蜂鳥E200處理器層面低功耗 267
15.3.3 蜂鳥E200單元層面低功耗 269
15.3.4 蜂鳥E200寄存器層面低功耗 269
15.3.5 蜂鳥E200鎖存器層面低功耗 272
15.3.6 蜂鳥E200 SRAM層面低功耗 273
15.3.7 蜂鳥E200組合邏輯層面低功耗 274
15.3.8 蜂鳥E200工藝層面低功耗 275
15.4 總結 275
第 16章 工欲善其事,必先利其器――RISC-V可擴展協處理器 276
16.1 專用領域架構DSA 277
16.2 RISC-V架構的可擴展性 278
16.2.1 RISC-V的預留指令編碼空間 278
16.2.2 RISC-V的預定義的Custom指令 279
16.3 蜂鳥E200的協處理器接口EAI 279
16.3.1 EAI指令的編碼 279
16.3.2 EAI接口信號 280
16.3.3 EAI流水線接口 281
16.3.4 EAI存儲器接口 282
16.3.5 EAI接口時序 283
16.4 蜂鳥E200的協處理器參考示例 286
16.4.1 示例協處理器需求 286
16.4.2 示例協處理器指令 287
16.4.3 示例協處理器實現 288
16.4.4 示例協處理器性能 289
16.4.5 示例協處理器代碼 290

第三部分 使用Verilog進行仿真和在FPGA SoC原型上運行軟件

第 17章 冒個煙先――運行Verilog仿真測試 292
17.1 E200開源項目的代碼層次結構 293
17.2 E200開源項目的測試用例 294
17.2.1 riscv-tests 自測試用例 294
17.2.2 編譯ISA自測試用例 295
17.3 E200開源項目的測試平臺(TestBench) 298
17.4 在Verilog TestBench中運行測試用例 299
第 18章 套上殼子上路――實現SoC和FPGA原型 302
18.1 Freedom E310 SoC簡介 303
18.2 HBird-E200-SoC簡介 304
18.2.1 HBird-E200-SoC組成結構 304
18.2.2 HBird-E200-SoC代碼結構 309
18.3 HBird-E200-SoC FPGA原型平臺 311
18.3.1 FPGA開發板 311
18.3.2 生成mcs文件燒寫FPGA 314
18.3.3 JTAG調試器 317
18.3.4 FPGA原型平臺DIY總結 320
18.4 蜂鳥E200專用FPGA開發板 320
第 19章 畫龍點睛――運行和調試軟件示例 321
19.1 Freedom-E-SDK平臺簡介 322
19.2 SIRV-E-SDK平臺簡介 323
19.2.1 SIRV-E-SDK簡介 323
19.2.2 SIRV-E-SDK代碼結構 324
19.3 使用SIRV-E-SDK運行示例程序 325
19.4 使用GDB和OpenOCD調試示例程序 328
19.5 Windows圖形化IDE開發工具 331
第 20章 是騾子是馬?拉出來遛遛――運行跑分程序 332
20.1 跑分程序簡介 333
20.2 Dhrystone簡介 333
20.3 運行Dhrystone Benchmark 335
20.4 CoreMark簡介 337
20.5 運行CoreMark Benchmark 338
20.6 總結與比較 340

附錄部分 RISC-V架構詳述

附錄A RISC-V架構指令集介紹 342
附錄B RISC-V架構CSR寄存器介紹 374
附錄C RISC-V架構的PLIC介紹 384
附錄D 存儲器模型背景介紹 392
附錄E 存儲器原子操作指令背景介紹 397
附錄F RISC-V指令編碼列表 400
附錄G RISC-V偽指令列表 404

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 517
缺貨無法訂購

暢銷榜

客服中心

收藏

會員專區