手把手教你设计CPU——RISC-V处理器篇
内容简介
本书是一本介绍通用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综述
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
内容简介
《自己设计制作CPU与单片机》是一本为有志于计算机CPU设计的人员所写的书,不论你是狂热的友,还是精明的计算机工作者。
《自己设计制作CPU与单片机》以作者几十年学习设计制作CPU与通用单片机的经历,来告诉你如何从无到有地设计属于你自己的CPU和可以运行用户程序的单片机。书中以作者的十几个CPU设计工程为主线,展示了精简指令RISC和复杂指令CISC计算机CPU的设计方法。既有硬件编程,又有原理图设计,适合软硬件人员学习计算机核心技术之用。
《自己设计制作CPU与单片机通过实例告诉读者,如何创造性地进行计算机产品CPU的立意和设计,介绍了人机交互和操作内核的设计方法。这是一本对要全面掌握计算机技术的人员而言必读的CPU设计制作之书。
图书目录
前 言
上篇 CPU设计制作入门
第1章 自己就能设计制造CPU
1.1 自己设计制作CPU有啥意义
1.2 我设计制作CPU的经历
1.3 电子电路设计制作的新变化
1.4 自己设计CPU的条件
1.5 创新CPU设计的意义
第2章 进入硬件设计的天地
2.1 搭建自己的制造工厂
2.2 设计制造CPU需要热身
2.3 硬件设计语言Verilog HDL
2.4 Verilog HDL语句和模块
2.5 Verilog HDL其他常用语句
第3章 自己创造CPU的方法
3.1 深刻理解CPU的结构
3.2 自创CPU的一般步骤
3.3 如何设计自己的指令
3.4 指令分析的一般性总结
3.5 让CPU运行程序
第4章 一个简单CPU的设计
4.1 创建一个CPU设计工程
4.2 剖析这个CPU设计程序
4.3 CPU行为的描述方法
4.4 如何让CPU运行软件程序
4.5 CPU设计工程小结
第5章 自制通用CPU与单片机
5.1 实体结构与器件应用
5.2 通用CPU指令设计
5.3 用汇编程序检验CPU设计
5.4 外设与CPU接口设计
5.5 设备驱动程序设计
5.6 时钟设计
5.7 开发板连接程序设计
5.8 FPGA引脚连接
5.9 操作内核设计
5.10 烧制CPU制作单片机
.........................
这本书的深度和广度令人印象深刻,它没有满足于仅仅停留在高层次的理论介绍上,而是深入到了每一个关键模块的底层实现细节。例如,在谈到缓存一致性协议时,作者并未回避那些复杂的并发控制问题,反而通过精妙的案例分析,将MESI等协议的运作机制梳理得井井有条。这种对细节的把控,使得这本书的价值远远超出了入门指南的范畴,完全可以作为一本进阶参考手册来使用。我特别欣赏作者在描述复杂逻辑时所展现出的那种严谨性,每一个设计决策背后都有充分的考量和权衡,这种“为什么这么做”的深度思考,恰恰是区分优秀工程师和普通操作员的关键所在。对于那些已经掌握了基础数字电路知识,渴望真正理解现代处理器内部运作机制的读者来说,这本书无疑是一座宝藏,它提供了从抽象规范到具体硬件实现的完整路径图。
评分从作者对技术选型的态度中,我感受到了极大的真诚。他没有盲目追逐最新的技术热点,而是选择了最经典、最能体现核心原理的结构进行深入剖析。这种“回归本质”的教学思路,确保了读者学到的知识具有极强的生命力和普适性。书中对一些经典的设计陷阱和常见的性能瓶颈的分析尤其到位,这些经验之谈,往往是教科书里找不到的“软知识”。比如,关于分支预测单元的设计权衡,作者展示了不同复杂度的预测器在性能提升和硬件开销之间的微妙平衡点。这种基于真实工程考量的讨论,让这本书的参考价值大大提升,它不仅仅是教会你如何设计一个能工作的CPU,更是在教你如何设计一个高效、合理的处理器,这对于任何想要进入芯片设计领域的专业人士来说,都是一份极其宝贵的财富。
评分阅读体验上,我必须给这本书点个大大的赞。它不像一本教科书,更像是一场精心策划的动手实践之旅。作者在关键节点设置了大量的“思考题”和“动手实践建议”,鼓励读者不要被动接受信息,而是主动去验证和构建。我按照书中的步骤,结合自己的工具链,真的动手搭建了一个简化的指令集模拟器,那种看着自己设计的逻辑流准确无误地完成复杂运算的成就感,是单纯看理论文章无法比拟的。这种强烈的实践导向性,使得学习过程充满了乐趣和即时反馈。而且,书中的示例代码和仿真脚本都非常规范且易于调试,极大地减少了初学者在配置环境和排查错误上浪费的时间。这本书真正做到了理论与实践的完美结合,把学习CPU设计从“看懂”提升到了“做到”的层面。
评分这本书的排版和装帧简直是为初学者量身定做的,插图清晰直观,每一个电路图和时序图都标注得非常详细,让人一眼就能看懂复杂的逻辑关系。作者的写作风格非常平易近人,不像有些技术书籍那样干巴巴的理论堆砌,而是像一个经验丰富的老教授在给你娓娓道来,每一步骤都带着“为什么”和“这样做的好处”。特别是关于流水线设计的章节,通过大量的图示和伪代码,把原本抽象的概念变得触手可及。我一个非科班出身的朋友,之前对CPU的理解仅限于“中央处理单元”这个名词,但在读了这本书的前半部分后,竟然能自信地向我描述取指、译码、执行这几个核心阶段的工作原理。这种从零开始,步步为营的教学方式,极大地降低了学习门槛,让“设计CPU”这个曾经遥不可及的梦想,变得似乎就在眼前触手可及。它不仅仅是在教你知识点,更是在培养你系统性的工程思维。
评分这本书在处理不同抽象层次之间的转换方面,展现出了高超的驾驭能力。它能够流畅地在硬件描述语言(HDL)的细节、微架构的组织方式,乃至指令集架构(ISA)的语义层面之间进行无缝切换。比如,它不会孤立地讨论寄存器堆的读写端口,而是会将其置于整个取指-执行周期的上下文中,解释为什么需要特定的端口数量和仲裁机制。这种宏观与微观相结合的视角,帮助读者建立起一个完整、立体的处理器认知模型,避免了只见树木不见森林的弊端。对于渴望理解整个系统协同工作的工程师来说,这本书提供了一个极其清晰的框架,让你明白每一个小组件是如何为了最终的计算目标而服务的,这种全局观的培养,是任何单一模块教程所无法比拟的优势。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.idnshop.cc All Rights Reserved. 静思书屋 版权所有