商品详情
书名:手把手教你RISC-V CPU.上,处理器设计
定*:109.8
ISBN:9787**5568007
作者:胡振波主编 芯来科技生态组
版次:第*版
出版时间:202*-*0
内容提要:
本书系统地介绍了 CPU 设计技巧和新兴开源RISC-V架构,内容翔实,涵盖开源蜂鸟E203处理器各模块的具体实现,以及可扩展协处理器的实现机制。为了让读者学以*用,本书还集成了大量的实例,用实例把各个模块的实现方式贯穿起来。 本书适合从事CPU设计的工程师和技术爱好者阅读。
作者简介:
胡振波,芯来科技*办人兼执行官,中*RISC-V*域的先行者,拥有丰富的处理器内核开发经验,曾长期*职于外企,担任处理器内核研发核心岗位负责人。其打造的*内RISC-V开源项目——蜂鸟E203,对*内RISC-V的普及和推广起到了巨大的推动作用。以胡振波为核心*办的芯来科技目前已经成为中*先行的RISC-V处理器内核IP和解决方案公司,推出的嵌入式CPU核系列产品处于中*RISC-V处理器研发与产业化的前列。
目录:
第 **分 CPU与RISC-V综述
第 *章 CPU之三生三世 2
*.* 眼看他起*楼,眼看他宴宾客,眼看他楼塌了—CPU众生相 3
*.*.* ISA—CPU的灵魂 4
*.*.2 CISC架构与RISC架构 5
*.*.3 32位架构与64位架构 6
*.*.4 ISA众生相 6
*.*.5 CPU的*域之分 **
*.2 ISA请扛起这口锅—为什么*产CPU尚未足够成熟 *2
*.2.* MIPS系—龙芯和君正 *2
*.2.2 x86系—北大众志、上海兆芯和天津海光 *3
*.2.3 Power系—中晟宏芯 *4
*.2.4 Alpha系—申威 *4
*.2.5 ARM系—飞腾、海思、展讯 *4
*.2.6 RISC-V系—平头哥、芯来科技 *6
*.2.7 背锅侠ISA *6
*.3 人生已如此艰难,你又何*拆穿—CPU从业者的*奈 *8
*.4 *敌者是多么寂寞—ARM统治着的* *9
*.4.* *乐乐与众乐乐—ARM公司的盈利模式 *9
*.4.2 小个子有大力量—*处*在的Cortex-M系列 22
*.4.3 移动*者—Cortex-A系列在手持设备*域的巨大成功 23
*.4.4 进击的巨人—ARM进军PC与服务器*域的雄心 25
*.4.5 ARM当前发展 26
*.5 东边日出西边雨,道是*晴却有晴—RISC-V登场 26
*.5.* 缘起名校 26
*.5.2 兴于开源 27
*.5.3 本土发展 29
*.6 旧时*谢堂前燕,飞入寻常*姓家—你也可以设计自己的处理器 30
第 2章 大道*简—RISC-V架构之魂 3*
2.* 简单*是美—RISC-V架构的设计理念 32
2.*.* *病*身轻—架构的篇幅 32
2.*.2 能屈能伸—模块化的指令集 34
2.*.3 浓缩的*是*华—指令的数量 34
2.2 RISC-V架构简介 35
2.2.* 模块化的指令集 35
2.2.2 可配置的通用寄存器组 36
2.2.3 规整的指令编码 36
2.2.4 简洁的存储器访问指令 37
2.2.5 *效的分支跳转指令 38
2.2.6 简洁的子程序调用 38
2.2.7 *条件码执行 39
2.2.8 *分支延迟槽 40
2.2.9 零开销硬件循环指令 40
2.2.*0 简洁的运算指令 40
2.2.** *雅的压缩指令子集 4*
2.2.*2 *权模式 42
2.2.*3 CSR 42
2.2.*4 中断和异常 42
2.2.*5 P扩展指令子集 43
2.2.*6 矢量指令子集 43
2.2.*7 自定义指令扩展 43
2.2.*8 比较 43
2.3 RISC-V软件工具链 44
2.4 RISC-V和其他开放架构有何*同 47
2.4.* 平民英雄—OpenRISC 47
2.4.2 豪门显贵—SPARC 48
2.4.3 身出*—MIPS 48
2.4.4 名校*生—RISC-V 49
第3章 乱花渐欲迷人眼—盘点RISC-V商业版本与开源版本 50
3.* 各商业版本与开源版本综述 5*
3.*.* Rocket Core 5*
3.*.2 BOOM Core 53
3.*.3 Freedom E3*0 SoC 54
3.*.4 LowRISC SoC 54
3.*.5 PULPino Core与SoC 54
3.*.6 PicoRV32 Core 55
3.*.7 SCR* Core 56
3.*.8 ORCA Core 56
3.*.9 Andes Core 56
3.*.*0 Microsemi Core 56
3.*.** Codasip Core 57
3.*.*2 Nuclei Core 57
3.*.*3 蜂鸟E203处理器核与SoC 58
3.2 小结 59
第4章 开源RISC-V—蜂鸟E203处理器核与SoC 60
4.* 与众*同的蜂鸟E203处理器 6*
4.2 蜂鸟E203处理器简介—蜂鸟虽小,五脏俱* 62
4.3 蜂鸟E203处理器的性能指标 64
4.4 蜂鸟E203处理器的配套SoC 64
4.5 蜂鸟E203处理器的配置选项 66
第二*分 手把手教你使用Verilog设计CPU
第5章 先见森林,后观树木—蜂鸟E203处理器核设计总览和*层 70
5.* 处理器硬件设计概述 7*
5.*.* 架构和微架构 7*
5.*.2 CPU、处理器、Core和处理器核 7*
5.*.3 处理器设计和验证 7*
5.2 蜂鸟E203处理器核的设计理念 72
5.3 蜂鸟E203处理器核的RTL代码风格 73
5.3.* 使用标准DFF模块例化生成寄存器 73
5.3.2 推荐使用assign语法替代if-else和case语法 75
5.3.3 其他若干注意事项 77
5.4 蜂鸟E203模块层次划分 77
5.5 蜂鸟E203处理器核的源代码 78
5.6 蜂鸟E203处理器核的配置选项 78
5.7 蜂鸟E203处理器核支持的RISC-V指令子集 79
5.8 蜂鸟E203处理器核的流水线结构 79
5.9 蜂鸟E203处理器核的*层接口 79
5.*0 小结 82
第6章 流水线*是流水账—蜂鸟E203处理器核流水线 83
6.* 处理器流水线概述 84
6.*.* 从*的5级流水线说起 84
6.*.2 可否*要流水线—流水线和状态机的关系 86
6.*.3 深处种菱浅种稻,*深*浅种荷花—流水线的深度 86
6.*.4 向上生长—越来越深的流水线 87
6.*.5 向下生长—越来越浅的流水线 88
6.2 处理器流水线中的乱序 88
6.3 处理器流水线中的反压 88
6.4 处理器流水线中的冲突 89
6.4.* 流水线中的资源冲突 89
6.4.2 流水线中的数据冲突 90
6.5 蜂鸟E203处理器的流水线 9*
6.5.* 流水线总体结构 9*
6.5.2 流水线中的冲突 92
6.6 小结 92
第7章 万事开头难— *切从取指令开始 93
7.* 取指概述 94
7.*.* 取指*点 94
7.*.2 如何快速取指 95
7.*.3 如何处理地址*对齐的指令 96
7.*.4 如何处理分支指令 97
7.2 RISC-V架构*点对于取指的简化 *02
7.2.* 规整的指令编码格式 *02
7.2.2 指令长度指示码放于低位 *02
7.2.3 简单的分支跳转指令 *03
7.2.4 没有分支延迟槽指令 *04
7.2.5 提供明确的静态分支预测依据 *05
7.2.6 提供明确的RAS依据 *05
7.3 蜂鸟E203处理器的取指实现 *06
7.3.* IFU总体设计思路 *06
7.3.2 简单译码 *08
7.3.3 简单BPU **0
7.3.4 PC生成 **4
7.3.5 访问ITCM和BIU **6
7.3.6 ITCM *20
7.3.7 BIU *20
7.4 小结 *2*
第8章 *鼓作气,执行力是关键—执行 *22
8.* 执行概述 *23
8.*.* 指令译码 *23
8.*.2 指令执行 *23
8.*.3 流水线的冲突 *24
8.*.4 指令的交付 *24
8.*.5 指令发射、派遣、执行、写回的顺序 *24
8.*.6 分支解析 *26
8.2 RISC-V架构的*点对于执行的简化 *26
8.2.* 规整的指令编码格式 *27
8.2.2 *雅的*6位指令 *27
8.2.3 *简的指令个数 *27
8.2.4 整数指令的操作数个数是*或2 *27
8.3 蜂鸟E203处理器的执行实现 *27
8.3.* 执行指令列表 *28
8.3.2 EXU总体设计思路 *28
8.3.3 译码 *29
8.3.4 整数通用寄存器组 *35
8.3.5 CSR *38
8.3.6 指令发射、派遣 *39
8.3.7 流水线冲突、长指令和OITF *43
8.3.8 ALU *49
8.3.9 交付 *62
8.3.*0 写回 *62
8.3.** 协处理器扩展 *62
8.4 小结 *63
第9章 善始者实繁,克*者盖寡—交付 *64
9.* 处理器中指令的交付、取消、冲刷 *65
9.*.* 指令交付、取消、冲刷 *65
9.*.2 指令交付的常见实现策略 *66
9.2 RISC-V架构*点对于交付的简化 *66
9.3 蜂鸟E203处理器中指令交付的硬件实现 *67
9.3.* 分支预测指令的处理 *68
9.3.2 中断和异常的处理 *7*
9.3.3 多周期执行的指令的交付 *7*
9.4 小结 *72
第 *0章 让子弹飞*会儿—写回 *73
*0.* 处理器的写回 *74
*0.*.* 处理器写回功能简介 *74
*0.*.2 处理器常见写回策略 *74
*0.2 蜂鸟E203处理器的写回硬件实现 *74
*0.2.* 最*写回仲裁 *75
*0.2.2 OITF模块和长指令写回仲裁模块 *76
*0.3 小结 *79
第 **章 哈弗还是比亚迪—存储器 *8*
**.* 存储器概述 *82
**.*.* 谁说处理器*定要有缓存 *82
**.*.2 处理器*定要有存储器 *83
**.*.3 ITCM和DTCM *85
**.2 RISC-V架构*点对于存储器访问指令的简化 *86
**.2.* *支持小端格式 *86
**.2.2 *地址自增/自减模式 *86
**.2.3 **次读多个数据和*次写多个数据的指令 *86
**.3 RISC-V架构的存储器访问指令 *87
**.3.* 存储器读和写指令 *87
**.3.2 fence指令和fence.i指令 *87
**.3.3 A扩展指令集 *87
**.4 蜂鸟E203处理器核的存储器子系统硬件实现 *88
**.4.* 存储器子系统总体设计思路 *88
**.4.2 AGU *88
**.4.3 LSU *93
**.4.4 ITCM和DTCM *95
**.4.5 A扩展指令集的硬件实现 *98
**.4.6 fence与fence.i指令的硬件实现 202
**.4.7 BIU 204
**.4.8 ECC 204
**.5 小结 204
第 *2章 黑盒子的窗口—总线接口单元 205
*2.* 片上总线协议概述 206
*2.*.* AXI 206
*2.*.2 AHB 206
*2.*.3 APB 207
*2.*.4 TileLink 207
*2.*.5 总结比较 207
*2.2 自定义总线协议ICB 208
*2.2.* ICB协议简介 208
*2.2.2 ICB协议信号 209
*2.2.3 ICB协议的时序 209
*2.3 ICB的硬件实现 2*4
*2.3.* *主多从 2*4
*2.3.2 多主*从 2*5
*2.3.3 多主多从 2*6
*2.4 蜂鸟E203处理器核BIU 2*7
*2.4.* BIU简介 2*7
*2.4.2 BIU的微架构 2*8
*2.4.3 BIU的源代码 2*8
*2.5 蜂鸟E203处理器SoC总线 2*9
*2.5.* SoC总线简介 2*9
*2.5.2 SoC总线的微架构 220
*2.5.3 SoC总线的源代码 220
*2.6 小结 22*
第 *3章 *得*说的故事—中断和异常 222
*3.* 中断和异常概述 223
*3.*.* 中断概述 223
*3.*.2 异常概述 224
*3.*.3 广义上的异常 224
*3.2 RISC-V架构异常处理机制 226
*3.2.* 进入异常 226
*3.2.2 退出异常 229
*3.2.3 异常服务程序 230
*3.3 RISC-V架构中断定义 23*
*3.3.* 中断类型 23*
*3.3.2 中断屏蔽 233
*3.3.3 中断等待 233
*3.3.4 中断*先级与仲裁 234
*3.3.5 中断嵌套 235
*3.4 RISC-V架构中与中断和异常相关的CSR 236
*3.5 蜂鸟E203处理器中异常处理的硬件实现 236
*3.5.* 蜂鸟E203处理器的异常和中断实现要点 236
*3.5.2 蜂鸟E203处理器支持的中断和异常类型 237
*3.5.3 蜂鸟E203处理器对mepc寄存器的处理 237
*3.5.4 蜂鸟E203处理器的中断接口 238
*3.5.5 蜂鸟E203处理器CLINT微架构及源代码分析 239
*3.5.6 蜂鸟E203处理器PLIC微架构及源代码分析 242
*3.5.7 蜂鸟E203处理器中交付模块对中断和异常的处理 244
*3.6 小结 248
第 *4章 最*起眼的其实是最难的—调试机制 249
*4.* 调试机制概述 250
*4.*.* 交互调试概述 250
*4.*.2 跟踪调试概述 252
*4.2 RISC-V架构的调试机制 252
*4.2.* 调试器软件的实现 253
*4.2.2 调试模式 253
*4.2.3 调试指令 254
*4.2.4 调试模式下的CSR 254
*4.2.5 调试中断 254
*4.3 蜂鸟E203处理器中的调试机制 254
*4.3.* 蜂鸟E203处理器中的交互式调试 254
*4.3.2 DTM 255
*4.3.3 硬件调试模块 256
*4.3.4 调试中断处理 259
*4.3.5 调试模式下CSR的实现 260
*4.3.6 调试机制指令的实现 26*
*4.4 小结 262
第 *5章 动如脱兔,静若处子—低功耗的诀窍 263
*5.* 处理器低功耗技术概述 264
*5.*.* 软件层面的低功耗 264
*5.*.2 系统层面的低功耗 264
*5.*.3 处理器层面的低功耗 265
*5.*.4 模块和单元层面的低功耗 265
*5.*.5 寄存器层面的低功耗 266
*5.*.6 锁存器层面的低功耗 267
*5.*.7 SRAM层面的低功耗 267
*5.*.8 组合逻辑层面的低功耗 267
*5.*.9 工艺层面的低功耗 268
*5.2 RISC-V架构的低功耗机制 268
*5.3 蜂鸟E203处理器低功耗机制的硬件实现 268
*5.3.* 蜂鸟E203处理器在系统层面的低功耗 268
*5.3.2 蜂鸟E203处理器层面的低功耗 270
*5.3.3 蜂鸟E203处理器在单元层面的低功耗 272
*5.3.4 蜂鸟E203处理器在寄存器层面的低功耗 272
*5.3.5 蜂鸟E203处理器在锁存器层面的低功耗 275
*5.3.6 蜂鸟E203处理器在SRAM层面的低功耗 276
*5.3.7 蜂鸟E203处理器在组合逻辑层面的低功耗 277
*5.3.8 蜂鸟E203处理器在工艺层面的低功耗 278
*5.4 小结 278
第 *6章 工欲善其事,*先利其器—RISC-V可扩展协处理器 279
*6.* *域*定架构 280
*6.2 RISC-V架构的可扩展性 28*
*6.2.* RISC-V架构的预留指令编码空间 28*
*6.2.2 RISC-V架构的预定义指令 282
*6.3 蜂鸟E203处理器的协处理器扩展机制—NICE 282
*6.3.* NICE指令的编码 282
*6.3.2 NICE协处理器的接口信号 283
*6.3.3 NICE协处理器的流水线接口 284
*6.3.4 NICE协处理器的存储器接口 285
*6.3.5 NICE协处理器的接口时序 286
*6.4 蜂鸟E203处理器的协处理器参考示例 290
*6.4.* 示例协处理器的实现需求 290
*6.4.2 示例协处理器的自定义指令 29*
*6.4.3 示例协处理器的硬件实现 292
*6.4.4 示例协处理器的软件驱动 292
*6.4.5 示例协处理器的性能分析 294
第三*分 开发实战
第 *7章 先冒个烟—运行Verilog仿真测试 298
*7.* E203开源项目的代码层次结构 299
*7.2 E203开源项目的测试用例 300
*7.2.* riscv-tests自测试用例 300
*7.2.2 编译ISA自测试用例 30*
*7.3 E203 开源项目的测试平台 304
*7.4 在测试平台中运行测试用例 304
第 *8章 套上壳子上路—更多实践 308
附录A RISC-V架构的指令集 3**
附录B RISC-V架构的CSR 34*
附录C RISC-V架构的PLIC 35*
附录D 存储器模型背景 359
附录E 存储器原子操作指令背景 364
附录F RISC-V指令编码列表 367
附录G RISC-V伪指令列表 374
- 人民邮电出版社有限公司 (微信公众号认证)
- 人民邮电出版社微店,为您提供最全面,最专业的一站式购书服务
- 扫描二维码,访问我们的微信店铺
- 随时随地的购物、客服咨询、查询订单和物流...