图书介绍

手把手教你设计CPU RISC-V处理器篇2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

手把手教你设计CPU RISC-V处理器篇
  • 胡振波著 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115480521
  • 出版时间:2018
  • 标注页数:405页
  • 文件大小:56MB
  • 文件页数:426页
  • 主题词:微处理器-系统设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

手把手教你设计CPU RISC-V处理器篇PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第一部分 CPU与RISC-V综2述2

第1章 一文读懂CPU之三生三世2

1.1眼看他起高楼,眼看他宴宾客,眼看他楼塌了——CPU众生相3

1.1.1 ISA——CPU的灵魂4

1.1.2 CISC与RISC5

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背锅侠ISA15

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平民英雄——OpenRISC44

2.4.2豪门显贵——SPARC44

2.4.3名校优生——RISC-V45

第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与SoC54

4.1与众不同的蜂鸟E200处理器55

4.2蜂鸟E200简介——蜂鸟虽小,五脏俱全56

4.3蜂鸟E200型号系列57

4.4蜂鸟E200性能指标58

4.5蜂鸟E200配套SoC59

4.6蜂鸟E200配置选项60

第二部分 手把手教你使用Verilog设计CPU65

第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-Decode103

7.3.3 Simple-BPU分支预测105

7.3.4 PC生成109

7.3.5访问ITCM和BIU111

7.3.6 ITCM115

7.3.7 BIU116

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流水线冲突、长指令和OITF139

8.3.8 ALU145

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和DTCM182

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 AGU186

11.4.3 LSU190

11.4.4 ITCM和DTCM192

11.4.5 “A”扩展指令处理195

11.4.6 Fence与Fence.Ⅰ指令处理200

11.4.7 BIU202

11.4.8 ECC202

11.4.9小结202

第12章 黑盒子的窗口——总线接口单元BIU203

12.1片上总线协议概述204

12.1.1 AXI204

12.1.2 AHB204

12.1.3 APB205

12.1.4 TileLink205

12.1.5总结比较205

12.2自定义总线协议ICB206

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处理器核BIU212

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调试机制CSR251

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专用领域架构DSA277

16.2 RISC-V架构的可扩展性278

16.2.1 RISC-V的预留指令编码空间278

16.2.2 RISC-V的预定义的Custom指令279

16.3蜂鸟E200的协处理器接口EAI279

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原型上运行软件292

第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文件烧写FPGA314

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 Benchmark335

20.4 CoreMark简介337

20.5运行CoreMark Benchmark338

20.6总结与比较340

附录部分 RISC-V架构详述342

附录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

热门推荐