正版 手把手教你設計CPU RISC-V處理器篇 計算機網絡 硬件外部設備維修 係統介紹

正版 手把手教你設計CPU RISC-V處理器篇 計算機網絡 硬件外部設備維修 係統介紹 pdf epub mobi txt 電子書 下載 2025

鬍振波 著
圖書標籤:
  • RISC-V
  • CPU設計
  • 計算機網絡
  • 硬件維修
  • 嵌入式係統
  • 處理器
  • 係統介紹
  • 電子工程
  • DIY
  • 計算機
想要找書就要到 新城書站
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!
店鋪: 布剋專營店
齣版社: 人民郵電齣版社
ISBN:9787115480521
商品編碼:28115067028
包裝:平裝-膠訂
開本:16
齣版時間:2018-05-01
頁數:428

具體描述



商品參數
手把手教你設計CPU RISC-V處理器篇
            定價 99.00
齣版社 人民郵電齣版社
版次 1
齣版時間 2018年05月
開本 16開
作者 鬍振波
裝幀 平裝-膠訂
頁數 428
字數
ISBN編碼 9787115480521
重量


內容介紹
手把手教你設計CPU——RISC-V處理器篇 定價 99.00 齣版社 人民郵電齣版社 齣版時間 2018年05月 開本 16開 作者 鬍振波 頁數 428 ISBN編碼 9787115480521 本書是一本介紹通用CPU設計的入門書,以通俗的語言係統介紹瞭CPU和RISC-V架構,力求為讀者揭開CPU設計的神秘麵紗,打開計算機體係結構的大門。 本書共分為四部分。 第壹部分是CPU與RISC-V的綜述,幫助初學者對CPU和RISC-V快速地建立起認識。 第2部分講解如何使用Verilog設計CPU,使讀者掌握處理器核的設計精髓。 第三部分主要介紹蜂鳥E203配套的SoC和軟件平颱,使讀者實現蜂鳥E203 RISC-V處理器在FPGA原型平颱上的運行。 第四部分是附錄,介紹瞭RISC-V指令集架構,輔以作者加入的背景知識解讀和注解,以便於讀者理解。 本書不僅適閤CPU或芯片設計相關從業者閱讀使用,也適閤作為大中專院校相關師生學習RISC-V處理器設計(使用Verilog語言)和CPU設計的指導用書。

目錄

第 一部分  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 wu敵是多麼寂寞——ARM統治著的世界 18

1.4.1  獨樂樂與眾樂樂——ARM公司的盈利模式 18

1.4.2  小個子有大力量——無處不在的Cortex-M係列 21

1.4.3  移動wang者——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  gao效的分支跳轉指令 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

 

第2部分  手把手教你使用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  zui終寫迴仲裁 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章  zui不起眼的,其實是zui難的——調試機製 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

"




用戶評價

評分

評分

評分

評分

評分

評分

評分

評分

評分

相關圖書

本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.cndgn.com All Rights Reserved. 新城书站 版權所有