手把手教你设计CPU——RISC-V处理器篇胡振波著 pdf下载pdf下载

手把手教你设计CPU——RISC-V处理器篇胡振波著百度网盘pdf下载

作者:
简介:本篇提供书籍《手把手教你设计CPU——RISC-V处理器篇胡振波著》百度网盘pdf下载
出版社:新闻出版图书专营店
出版时间:2018-06
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

   图书基本信息
图书名称   手把手教你设计CPU——RISC-V处理器篇(异步图书出品) 作者   胡振波 著
定价   99元 出版社   人民邮电出版社
ISBN   9787115480521 出版日期   2018-06-01
字数   598000 页码   405
版次    装帧   平装
开本   16开 商品重量   

   内容提要
本书是一本介绍通用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设计的指导用书。

   目录
部分CPU与RISC-V综述
章一文读懂CPU之三生三世2
1.1眼看他起高楼,眼看他宴宾客,眼看他楼塌了——CPU众生相3
1.1.1ISA——CPU的灵魂4
1.1.2CISC与RISC5
1.1.332位与64位架构6
1.1.4ISA众生相6
1.1.5CPU的领域之分10
1.2ISA请扛起这口锅——为什么国产CPU尚未足够成功12
1.2.1MIPS系——龙芯和君正12
1.2.2x86系——北大众志、兆芯和海光13
1.2.3Power系——中晟宏芯13
1.2.4Alpha系——申威14
1.2.5ARM系——飞腾、华为海思、展讯和华芯通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.2RISC-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.13CSR寄存器40
2.2.14中断和异常40
2.2.15矢量指令子集40
2.2.16自定制指令扩展41
2.2.17总结与比较41
2.3RISC-V软件工具链42
2.4RISC-V和其他开放架构有何不同44
2.4.1平民英雄——OpenRISC44
2.4.2豪门显贵——SPARC44
2.4.3名校优生——RISC-V45
第3章乱花渐欲迷人眼——盘点RISC-V商业版本与开源版本46
3.1各商业版本与开源版本综述47
3.1.1RocketCore(开源)47
3.1.2BOOMCore(开源)49
3.1.3FreedomSoC(开源)50
3.1.4LowRISCSoC(开源)50
3.1.5PULPinoCoreandSoC(开源)50
3.1.6PicoRV32Core(开源)51
3.1.7SCR1Core(开源)51
3.1.8ORCACore(开源)51
3.1.9AndesCore(商业IP)52
3.1.10MicrosemiCore(商业IP)52
3.1.11CodasipCore(商业IP)53
3.1.12蜂鸟E200Core与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设计CPU
第5章先见森林,后观树木——蜂鸟E200设计总览和顶层介绍65
5.1处理器硬件设计概述66
5.1.1架构和微架构66
5.1.2CPU、处理器、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.2RISC-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.1IFU总体设计思路102
7.3.2Mini-Decode103
7.3.3Simple-BPU分支预测105
7.3.4PC生成109
7.3.5访问ITCM和BIU111
7.3.6ITCM115
7.3.7BIU116
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.2RISC-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.2EXU总体设计思路123
8.3.3译码124
8.3.4整数通用寄存器组130
8.3.5CSR寄存器133
8.3.6指令发射派遣134
8.3.7流水线冲突、长指令和OITF139
8.3.8ALU145
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.2RISC-V架构特点对于交付的简化164
9.3蜂鸟E200处理器交付硬件实现164
9.3.1分支预测指令的处理165
9.3.2中断和异常的处理168
9.3.3多周期执行指令的交付169
9.3.4小结169
0章让子弹飞一会儿——写回170
10.1处理器的写回171
10.1.1处理器写回功能简介171
10.1.2处理器写回常见策略171
10.2蜂鸟E200处理器的写回硬件实现171
10.2.1 终写回仲裁172
10.2.2OITF和长指令写回仲裁174
10.2.3小结177
1章哈弗还是比亚迪——存储器架构178
11.1存储器架构概述179
11.1.1谁说处理器要有缓存179
11.1.2处理器要有存储器180
11.1.3ITCM和DTCM182
11.2RISC-V架构特点对于存储器访问指令的简化183
11.2.1仅支持小端格式183
11.2.2无地址自增自减模式183
11.2.3无“一次读多个数据”和“一次写多个数据”指令183
11.3RISC-V架构的存储器相关指令184
11.3.1Load和Store指令184
11.3.2Fence指令184
11.3.3“A”扩展指令184
11.4蜂鸟E200处理器存储器子系统硬件实现185
11.4.1存储器子系统总体设计思路185
11.4.2AGU186
11.4.3LSU190
11.4.4ITCM和DTCM192
11.4.5“A”扩展指令处理195
11.4.6Fence与Fence.I指令处理200
11.4.7BIU202
11.4.8ECC202
11.4.9小结202
2章黑盒子的窗口——总线接口单元BIU203
12.1片上总线协议概述204
12.1.1AXI204
12.1.2AHB204
12.1.3APB205
12.1.4TileLink205
12.1.5总结比较205
12.2自定义总线协议ICB206
12.2.1ICB总线协议简介206
12.2.2ICB总线协议信号207
12.2.3ICB总线协议时序207
12.3ICB总线的硬件实现210
12.3.1一主多从210
12.3.2多主一从211
12.3.3多主多从212
12.4蜂鸟E200处理器核BIU212
12.4.1BIU简介212
12.4.2BIU微架构213
12.4.3BIU源码分析214
12.5蜂鸟E200处理器SoC总线214
12.5.1SoC总线简介215
12.5.2SoC总线微架构215
12.5.3SoC总线源码分析216
12.6总结216
3章不得不说的故事——中断和异常217
13.1中断和异常概述218
13.1.1中断概述218
13.1.2异常概述219
13.1.3广义上的异常219
13.2RISC-V架构异常处理机制221
13.2.1进入异常221
13.2.2退出异常224
13.2.3异常服务程序225
13.3RISC-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.4RISC-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
4章 不起眼的,其实是 难的——调试机制246
14.1调试机制概述247
14.1.1交互调试概述247
14.1.2跟踪调试概述249
14.2RISC-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.2DTM模块253
14.3.3硬件调试模块253
14.3.4调试中断处理257
14.3.5调试机制CSR寄存器的实现258
14.3.6调试机制指令的实现258
14.3.7小结259
5章动如脱兔,静若处子——低功耗的诀窍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.7SRAM层面低功耗264
15.1.8组合逻辑层面低功耗264
15.1.9工艺层面低功耗265
15.2RISC-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蜂鸟E200SRAM层面低功耗273
15.3.7蜂鸟E200组合逻辑层面低功耗274
15.3.8蜂鸟E200工艺层面低功耗275
15.4总结275
6章工欲善其事,必先利其器——RISC-V可扩展协处理器276
16.1专用领域架构DSA277
16.2RISC-V架构的可扩展性278
16.2.1RISC-V的预留指令编码空间278
16.2.2RISC-V的预定义的Custom指令279
16.3蜂鸟E200的协处理器接口EAI279
16.3.1EAI指令的编码279
16.3.2EAI接口信号280
16.3.3EAI流水线接口281
16.3.4EAI存储器接口282
16.3.5EAI接口时序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进行仿真和在FPGASoC原型上运行软件
7章冒个烟先——运行Verilog仿真测试292
17.1E200开源项目的代码层次结构293
17.2E200开源项目的测试用例294
17.2.1riscv-tests自测试用例294
17.2.2编译ISA自测试用例295
17.3E200开源项目的测试平台(TestBench)298
17.4在VerilogTestBench中运行测试用例299
8章套上壳子上路——实现SoC和FPGA原型302
18.1FreedomE310SoC简介303
18.2HBird-E200-SoC简介304
18.2.1HBird-E200-SoC组成结构304
18.2.2HBird-E200-SoC代码结构309
18.3HBird-E200-SoCFPGA原型平台311
18.3.1FPGA开发板311
18.3.2生成mcs文件烧写FPGA314
18.3.3JTAG调试器317
18.3.4FPGA原型平台DIY总结320
18.4蜂鸟E200专用FPGA开发板320
9章画龙点睛——运行和调试软件示例321
19.1Freedom-E-SDK平台简介322
19.2SIRV-E-SDK平台简介323
19.2.1SIRV-E-SDK简介323
19.2.2SIRV-E-SDK代码结构324
19.3使用SIRV-E-SDK运行示例程序325
19.4使用GDB和OpenOCD调试示例程序328
19.5Windows图形化IDE开发工具331
第20章是骡子是马?拉出来遛遛——运行跑分程序332
20.1跑分程序简介333
20.2Dhrystone简介333
20.3运行DhrystoneBenchmark335
20.4CoreMark简介337
20.5运行CoreMarkBenchmark338
20.6总结与比较340
附录部分RISC-V架构详述
附录ARISC-V架构指令集介绍342
附录BRISC-V架构CSR寄存器介绍374
附录CRISC-V架构的PLIC介绍384
附录D存储器模型背景介绍392
附录E存储器原子操作指令背景介绍397
附录FRISC-V指令编码列表400
附录GRISC-V伪指令列表404

   作者介绍
胡振波,上海交通大学电子工程系本科、微电子学院硕士。拥有业界多年ASIC和CPU设计与验证经验,先后在Marvell任职ARM架构CPU设计不错工程师、在Synopsys任职研发经理、在比特大陆任职IC设计总监、在武汉聚芯微电子任职架构师,现致力于推动RISC-V架构在靠前的传播和发展。

   编辑推荐
系统介绍RISC-V指令集架构。结合实际RISC-V开源实例进行教学。深入剖析RISC-V处理器的微架构以及代码实现。使读者能够快速掌握并轻松使用RISC-V架构处理器。通过学习实例蜂鸟E200的Verilog代码,您将能成为一名合格的数字IC设计工程师。通过学习本书推荐的完整开源SoC平台,您也可以快速搭建FPGA原型平台,运行完整的软件实例。