批量上传,套装书可能不全,下单前咨询在线客服! 正版书 !!!
¥ 47.42 4.8折 ¥ 99 全新
库存10件
作者汪文祥,邢金璋
出版社机械工业出版社
ISBN9787111674139
出版时间2021-04
装帧平装
开本16开
定价99元
货号29222007
上书时间2024-10-20
CPU,中文全称为中央处理单元,简称处理器,是现代电子计算机的核心器件。如果你想了解一台计算机是如何构建并工作的,那么深入了解CPU的设计非常有用。不过,这个美好的愿望是否会遭遇“骨感”的现实呢?毕竟一谈及CPU,大家马上想到的是英特尔(Intel)、超微半导体(AMD)、苹果(Apple)、安谋(ARM)、高通(Qualcomm)这些国际知名公司生产的产品,进而认为CPU设计是一件遥不可及的事情,普通学习者要想掌握它简直就是天方夜谭。
那么CPU设计到底难不难呢?实话说,要做出具有世界一流水平的产品确实不容易。别看CPU个头不大,它却是一个复杂度极高的系统。设计CPU挑战的是一个团队进行复杂系统工程研发的能力。不过,从20世纪60年代款CPU问世至今,CPU设计所涉及的基本技术已经很成熟了。同时,自动化设计工具的水平也有了大幅度提升。普通学习者想在CPU设计领域初窥堂奥,不再是无法实现的梦想。
本书作者在给新入行的工程师进行培训以及给高校学生授课的过程中,得到的反馈却并不乐观。对于大多数新手来说,设计一个入门级的CPU还是很有难度的。结合我们在研发工作中的成长经历,以及在培训和教学过程中获得的反馈,我们认为的难点在于设计一个CPU需要综合掌握多方面的知识,而初学者往往在“综合”这个环节遇到了困难。毫不夸张地说,对于设计一个入门级CPU所需要的各方面知识,我们都能找出很多优秀的教材、讲义、论文、代码。如果仅仅把这些资料交给一个初学者,让他通过自学这些资料来设计CPU,那么能把CPU设计出来的只有少数“悟性高”的人。我们都知道,一个国家要想提高某项体育运动的水平,关键的因素是从事该项运动的人数足够多。同理,要想在信息技术的核心领域做到世界一流,没有一大批“懂行”的技术开发人员是很难实现的。面对当前急需芯片开发人才的形势,要想在短时间内培养出大量行业急需的高素质人才,仅仅指望学习者自身“悟性高”是行不通的,需要找到行之有效的学习和训练方法。
本书作者所在的龙芯团队自主研发CPU产品近20年,在CPU设计方面积累了丰富的实战经验。在本书中,我们将结合自身的研发实践,尽可能深入浅出地介绍如何从零开始一步步设计出一个入门级的CPU,以及在这个过程中应该掌握哪些知识、遵守哪些设计原则、规避哪些设计风险、使用哪些开发技巧。我们希望这些从工程实践中总结的经验能作为高校课程教学中知识讲授环节的有益补充,帮助更多初学者更快、更扎实地掌握CPU设计的知识,具备CPU设计能力。
可以看到,本书主体内容是围绕着一系列进阶任务展开的。在第二部分的每一章中,都会给出有针对性的任务,同时给出与之对应的知识点与设计建议。完成本书各章“任务与实践”部分所需资源可登录华章网站(www.hzbook.com)下载。我们希望读者在时间和精力允许的情况下,先尝试根据自己的想法完成设计任务,有了自己的深入思考和亲身实践后,再来看书中给出的讲解,相信会有不一样的体会,正所谓“不愤不启,不悱不发”。之所以这种比较“虐”自己的学习方式,源于作者在长期的研发工作中得到的一个感悟:好的工程师是bug“喂”出来的。对于CPU设计与开发这种工程性、实践性极强的工作来说,眼观千遍不如手过一遍。前辈们千叮咛、万嘱咐不要犯的错,非要自己错过一次才能刻骨铭心;教科书上、论文中已经写得清清楚楚的设计思路,只有自己在设计的路上碰壁无数次之后才会有如获至宝的欣喜。要想真正进入CPU设计的大门,仅仅靠坐在图书馆里看书几十个小时是远远不够的,它需要走路、吃饭甚至是睡觉的时候都在思考如何设计的那种“为伊消得人憔悴”,更需要通宵达旦调试的那份执着与坚持。
致谢
本书的写作得到了作者所任职的龙芯中科技术有限公司的大力支持。正是在多个部门的众多同事的帮助之下,我们才能从零开始写完本书并完成了所有的实验任务的开发。在此感谢他们对本书无私的支持!特别感谢龙芯公司芯片研发部IP组的全体同事、通用事业部和教育事业部的同事们,没有他们的辛勤付出,本书将无法面世。
我们非常感谢高等学校计算机类专业教学指导委员会、系统能力培养教学研究专家组、机械工业出版社华章分社的各位专家和老师,感谢所有致力于我国大学生计算机系统能力培养的老师们,正是他们的满腔热情和不懈努力激励着我们写出这本书。我们衷心希望这本书能为我国大学生计算机系统能力培养事业尽一份绵薄之力。
我们还要特别感谢中国科学院大学参与计算机体系结构研讨课的同学们,以及历届“龙芯杯”全国大学生计算机系统能力培养大赛的参赛选手们,他们的反馈让这本书的内容更加充实和完整。
由于CPU设计和开发工作体系庞大、内容繁多,尽管我们已经尽力展现其中的核心内容,但难免有挂一漏万之处,恳请各位老师和读者批评、指正。
作者
本书面向初学者,以实战的方式带领读者了解CPU设计的流程,并从零开始逐步开发出自己的CPU。本书将计算机组成与体系结构的理论知识和工业实践充分结合,使读者在实际的CPU设计与开发过程中更加深入地理解计算机系统的工作原理,掌握CPU设计理念、方法和技术。
本书共分为三个部分,*部分介绍CPU的研发过程以及FPGA、数字逻辑电路等相关知识;第二部分先介绍简单流水线CPU设计,在此基础上添加指令、例外、中断、总线、高速缓存等功能,完成一个具有基本功能的CPU;第三部分介绍如何增加各种高级功能,*终形成一个具有丰富功能的CPU。
本书深入浅出、层次清晰,并融入了典型的CPU开发相关的技术问题,既可以作为高等院校计算机及相关专业本科生和研究生的CPU开发类课程的教材,也可以作为从事CPU相关研发工作的专业人员的参考书。
汪文祥 工学博士,龙芯中科技术股份有限公司首席工程师,中国科学院大学岗位教授。主要研究方向为处理器体系结构设计、处理器验证及计算机系统性能分析优化等,参与了多项国家“核高基”、863 和 973 项目,在国内外各种期刊会议发表文章十余篇,申请专利数十项,授权专利十余项。2012年起任龙芯中科芯片研发部IP组组长,负责龙芯系列CPU IP核的开发研制及维护,参与制订龙芯指令系统架构规范。
邢金璋 硕士毕业于中国科学院计算技术研究所,2015年加入龙芯中科技术股份有限公司,从事处理器核结构设计工作,是龙芯小、中系列处理器核演进版本的主要结构设计者之一。近年来,积极参与“龙芯杯”全国大学生计算机系统能力培养大赛的技术支持、培训等工作
丛书序言
序
前言
第1章 CPU芯片研发过程概述 1
1.1 处理器和处理器核 1
1.2 芯片产品的研制过程 2
1.3 芯片设计的工作阶段 3
第2章 硬件实验平台及FPGA设计流程 5
2.1 硬件实验平台 5
2.1.1 龙芯CPU设计与体系结构教学实验系统 5
2.1.2 龙芯计算机系统能力培养远程实验平台 7
2.2 FPGA的设计流程 8
2.2.1 FPGA的一般设计流程 9
2.2.2 基于Vivado的FPGA设计流程 10
2.2.3 Vivado使用小贴士 33
2.3 任务与实践 35
第3章 数字逻辑电路设计基础 36
3.1 数字逻辑电路设计与Verilog代码开发 36
3.1.1 面向硬件电路的设计思维方式 37
3.1.2 行为描述的Verilog编程风格 38
3.1.3 自顶向下的设计划分过程 38
3.1.4 常用数字逻辑电路的Verilog描述 39
3.2 数字逻辑电路功能仿真的常见错误及其调试方法 55
3.2.1 功能仿真波形分析 56
3.2.2 波形异常类错误的调试 60
3.3 进一步使用Vivado 66
3.3.1 定制同步RAM IP核 66
3.3.2 定制异步RAM IP核 68
3.3.3 查看时序结果和资源利用率 69
3.4 任务与实践 69
3.4.1 实践任务一:寄存器堆仿真 70
3.4.2 实践任务二:同步RAM和异步RAM仿真、综合与实现 71
3.4.3 实践任务三:数字逻辑电路的设计与调试 72
第4章 简单流水线CPU设计 74
4.1 设计一个简单的单周期CPU 75
4.1.1 设计单周期CPU的总体思路 75
4.1.2 单周期CPU的数据通路设计 76
4.1.3 单周期CPU的控制信号生成 88
4.1.4 复位的处理 91
4.2 不考虑相关冲突的流水线CPU设计 92
4.2.1 添加流水级间缓存 92
4.2.2 同步RAM的引入 93
4.2.3 调整更新PC的数据通路 96
4.2.4 不考虑相关冲突情况下流水线控制信号的设计 96
4.3 CPU设计开发环境(CPU_CDE) 97
4.3.1 快速上手CPU设计的开发环境 97
4.3.2 CPU设计开发环境的组织与结构 99
4.3.3 CPU设计开发环境使用进阶 113
4.4 CPU设计的功能仿真调试技术 117
4.4.1 为什么要用基于Trace比对的调试辅助手段 117
4.4.2 基于Trace比对调试手段的盲区及其对策 119
4.4.3 学会阅读汇编程序和反汇编代码 119
4.4.4 CPU调试中要抓取的信号以及如何看这些信号 124
4.5 指令相关与流水线冲突 125
4.5.1 处理寄存器写后读数据相关引发的流水线冲突 126
4.5.2 转移计算未完成 127
4.6 流水线数据的前递设计 127
4.6.1 前递的数据通路设计 128
4.6.2 前递的流水线控制信号调整 130
4.6.3 前递引发的主频下降 131
4.7 任务与实践 131
4.7.1 实践任务一:简单CPU参考设计调试 132
4.7.2 实践任务二:用阻塞技术解决相关引发的冲突 132
4.7.3 实践任务三:用前递技术解决相关引发的冲突 133
第5章 在流水线中添加运算类指令 134
5.1 算术逻辑运算类指令的添加 134
5.1.1 ADD、ADDI和SUB指令的添加 134
5.1.2 SLTI和SLTIU指令的添加 135
5.1.3 ANDI、ORI和XORI指令的添加 135
5.1.4 SLLV、SRLV和SRAV指令的添加 135
5.2 乘除法运算类指令的添加 136
5.2.1 调用Xilinx IP实现乘除法运算部件 136
5.2.2 电路级实现乘法器 140
5.2.3 电路级实现除法器 147
5.3 乘除法配套数据搬运指令的添加 154
5.3.1 乘法运算实现为单周期的情况 155
5.3.2 乘法运算实现为多周期流水的情况 155
5.4 任务与实践 156
第6章 在流水线中添加转移指令和访存指令 157
6.1 转移指令的添加 157
6.1.1 BGEZ、BGTZ、BLEZ和BLTZ指令 158
6.1.2 J指令 158
6.1.3 BLTZAL和BGEZAL指令 158
6.1.4 JALR指令 158
6.2 访存指令的添加 158
6.2.1 LB、LBU、LH和LHU指令的添加 158
6.2.2 SB和SH指令的添加 159
6.2.3 非对齐访存指令的说明 160
6.2.4 LWL和LWR指令的添加 162
6.2.5 SWL和SWR指令的添加 164
6.3 任务与实践 164
第7章 例外和中断的支持 166
7.1 例外和中断的基本概念 166
7.1.1 例外是一套软硬件协同处理的机制 166
7.1.2 精确例外 167
7.2 MIPS指令系统中与例外相关的功能定义 168
7.2.1 CP0寄存器 168
7.2.2 例外产生条件的判定 168
7.2.3 例外入口 170
7.2.4 MFC0和MTC0指令 170
7.2.5 ERET指令 170
7.3 流水线CPU实现例外和中断的设计要点 170
7.3.1 例外检测逻辑 170
7.3.2 精确例外的实现 172
7.3.3 CP0寄存器 173
7.3.4 CP0冲突 179
7.4 任务与实践 180
7.4.1 实践任务一:添加syscall例外支持 181
7.4.2 实践任务二:添加其他例外支持 181
第8章
8.1 类SRAM总线 184
8.1.1 主方和从方 185
8.1.2 类SRAM总线接口信号的定义 185
8.1.3 类SRAM总线的读写时序 186
8.1.4 类SRAM
本书面向初学者,以实战的方式带领读者了解CPU设计的流程,并从零开始逐步开发出自己的CPU。本书将计算机组成与体系结构的理论知识和工业实践充分结合,使读者在实际的CPU设计与开发过程中更加深入地理解计算机系统的工作原理,掌握CPU设计理念、方法和技术。
本书共分为三个部分,*部分介绍CPU的研发过程以及FPGA、数字逻辑电路等相关知识;第二部分先介绍简单流水线CPU设计,在此基础上添加指令、例外、中断、总线、高速缓存等功能,完成一个具有基本功能的CPU;第三部分介绍如何增加各种高级功能,*终形成一个具有丰富功能的CPU。
本书深入浅出、层次清晰,并融入了典型的CPU开发相关的技术问题,既可以作为高等院校计算机及相关专业本科生和研究生的CPU开发类课程的教材,也可以作为从事CPU相关研发工作的专业人员的参考书。
汪文祥 工学博士,龙芯中科技术股份有限公司首席工程师,中国科学院大学岗位教授。主要研究方向为处理器体系结构设计、处理器验证及计算机系统性能分析优化等,参与了多项国家“核高基”、863 和 973 项目,在国内外各种期刊会议发表文章十余篇,申请专利数十项,授权专利十余项。2012年起任龙芯中科芯片研发部IP组组长,负责龙芯系列CPU IP核的开发研制及维护,参与制订龙芯指令系统架构规范。
邢金璋 硕士毕业于中国科学院计算技术研究所,2015年加入龙芯中科技术股份有限公司,从事处理器核结构设计工作,是龙芯小、中系列处理器核演进版本的主要结构设计者之一。近年来,积极参与“龙芯杯”全国大学生计算机系统能力培养大赛的技术支持、培训等工作
作者深谙系统类课程实践教学中的痛点和难点,本书很多素材来源于作者在教学中的实践和思考。这套实践方案很好地将理论课程中离散的知识点熔接为一套系统化的知识体系,从而有助于提升教学质量。
—— 高小鹏(北京航空航天大学教授,*高等学校计算机类专业教学指导委员会副秘书长)
本书两位作者一位是龙芯公司的首席工程师,另一位是芯片研发部技术骨干,他们长期奋战在CPU开发一线,拥有丰富的开发经验。很高兴看到他们将自己多年的工程经验分享出来,编写了这本CPU实战图书。相信这本书能帮助所有对CPU开发感兴趣的读者设计出自己的CPU!
—— 杨昆(龙芯中科技术股份有限公司教育事业部总经理兼南方总部副总经理)
— 没有更多了 —
以下为对购买帮助不大的评价