• CPU设计实战
21年品牌 40万+商家 超1.5亿件商品

CPU设计实战

全新正版 极速发货

53.73 5.4折 99 全新

库存6件

广东广州
认证卖家担保交易快速发货售后保障

作者汪文祥,邢金璋

出版社机械工业出版社

ISBN9787111674139

出版时间2021-04

装帧平装

开本16开

定价99元

货号1202319475

上书时间2024-08-07

谢岳书店

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
作者简介
    汪文祥,工学博士,龙芯中科技术股份有限公司首席工程师,中国科学院大学岗位教授。主要研究方向为处理器体系结构设计、处理器验证及计算机系统性能分析优化等,参与了多项国家“核高基”、863和973项目,在国内外各种期刊会议发表文章十余篇,申请数十项,授权十余项。2012年起任龙芯中科芯片研发部IP组组长,负责龙芯系列CPU IP核的开发研制及维护,参与制订龙芯指令系统架构规范。

目录
丛书序言



前言

章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.2FPGA的设计流程8

2.2.1FPGA的一般设计流程9

2.2.2基于Vivado的FPGA设计流程10

2.2.3Vivado使用小贴士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进一步使用Vivado66

3.3.1定制同步RAMIP核66

3.3.2定制异步RAMIP核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设计一个简单的单周期CPU75

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.3CPU设计开发环境(CPU_CDE)97

4.3.1快速上手CPU设计的开发环境97

4.3.2CPU设计开发环境的组织与结构99

4.3.3CPU设计开发环境使用进阶113

4.4CPU设计的功能仿真调试技术117

4.4.1为什么要用基于Trace比对的调试辅助手段117

4.4.2基于Trace比对调试手段的盲区及其对策119

4.4.3学会阅读汇编程序和反汇编代码119

4.4.4CPU调试中要抓取的信号以及如何看这些信号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.1ADD、ADDI和SUB指令的添加134

5.1.2SLTI和SLTIU指令的添加135

5.1.3ANDI、ORI和XORI指令的添加135

5.1.4SLLV、SRLV和SRAV指令的添加135

5.2乘除法运算类指令的添加136

5.2.1调用XilinxIP实现乘除法运算部件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.1BGEZ、BGTZ、BLEZ和BLTZ指令158

6.1.2J指令158

6.1.3BLTZAL和BGEZAL指令158

6.1.4JALR指令158

6.2访存指令的添加158

6.2.1LB、LBU、LH和LHU指令的添加158

6.2.2SB和SH指令的添加159

6.2.3非对齐访存指令的说明160

6.2.4LWL和LWR指令的添加162

6.2.5SWL和SWR指令的添加164

6.3任务与实践164

第7章例外和中断的支持166

7.1例外和中断的基本概念166

7.1.1例外是一套软硬件协同处理的机制166

7.1.2精确例外167

7.2MIPS指令系统中与例外相关的功能定义168

7.2.1CP0寄存器168

7.2.2例外产生条件的判定168

7.2.3例外入口170

7.2.4MFC0和MTC0指令170

7.2.5ERET指令170

7.3流水线CPU实现例外和中断的设计要点170

7.3.1例外检测逻辑170

7.3.2精确例外的实现172

7.3.3CP0寄存器173

7.3.4CP0冲突179

7.4任务与实践180

7.4.1实践任务一:添加syscall例外支持181

7.4.2实践任务二:添加其他例外支持181

第8章AXI总线接口设计184

8.1类SRAM总线184

8.1.1主方和从方185

8.1.2类SRAM总线接口信号的定义185

8.1.3类SRAM总线的读写时序186

8.1.4类SRAM总线的约束189

8.2类SRAM总线的设计189

8.2.1取指设计的考虑190

8.2.2访存设计的考虑195

8.3AXI总线协议195

8.3.1AXI总线信号一览195

8.3.2理解AXI总线协议197

8.3.3类SRAM总线接口信号与AXI总线接口信号的关系202

8.4类SRAM-AXI的转接桥设计203

8.4.1转接桥的顶层接口203

8.4.2转接桥的设计要求204

8.4.3转接桥的设计建议204

8.5任务与实践205

8.5.1实践任务一:添加类SRAM总线支持205

8.5.2实践任务二:添加AXI总线支持208

8.5.3实践任务三:完成AXI随机延迟验证210

第9章TLBMMU设计211

9.1TLB模块的基础知识212

9.1.1TLB的虚实地址转换212

9.1.2TLB的软件访问214

9.1.3TLB的软硬件交互机制215

9.2TLB模块设计的分析217

9.3TLB相关的CP0寄存器与指令的实现219

9.4利用TLB进行虚实地址转换及TLB例外221

9.5任务与实践222

9.5.1实践任务一:TLB模块设计222

9.5.2实践任务二:添加TLB相关指令和CP0寄存器224

9.5.3实践任务三:添加TLB相关例外支持225

0章高速缓存设计226

10.1Cache模块的设计227

10.1.1Cache的设计规格227

10.1.2Cache模块的数据通路设计228

10.1.3Cache模块内部的控制逻辑设计237

10.1.4Cache的硬件初始化问题241

10.2将Cache模块集成至CPU中242

10.2.1Cache命中情况下的CPU流水线适配242

10.2.2Cache缺失情况下的CPU流水线适配243

10.2.3Uncache访问的处理243

10.3CACHE指令245

10.3.1CACHE指令的定义245

10.3.2CACHE指令的实现247

10.4性能测试程序247

10.4.1Dhrystone247

10.4.2Coremark250

10.5Cache的性能251

10.6任务与实践252

10.6.1实践任务一:Cache模块设计252

10.6.2实践任务二:在CPU中集成ICache254

10.6.3实践任务三:在CPU中集成DCache255

10.6.4实践任务四:在CPU中添加CACHE指令256

1章进阶设计258

11.1运行Linux内核258

11.1.1复杂SoC搭建259

11.1.2CPU的进一步完善259

11.1.3调试建议260

11.2提升主频的常用方法261

11.2.1平衡各级流水线的延迟261

11.2.2优化大概率事件的处理逻辑261

11.2.3用面积和功耗换时序262

11.2.4进一步切分流水线262

11.3静态双发射流水线的实现262

11.4动态调度机制的实现263

11.4.1一个双发射动态调度流水线的设计实例263

11.4.2动态调度中常见电路结构的RTL实现266

11.5硬件转移预测技术266

11.5.1硬件转移预测的流水线设计框架267

11.5.2一个轻量级转移预测器的设计规格268

11.6访存优化技术269

11.6.1storebuffer269

11.6.2Non-blockingCache270

11.6.3访存乱序执行271

11.6.4多级Cache271

11.6.5Cache预取272

11.7多核处理器的实现272

11.7.1多核互联结构273

11.7.2多核编号273

11.7.3核间中断273

11.7.4多核情况下的存储一致性274

11.7.5LL-SC指令对的访存原子性282

附录A龙芯CPU设计与体系结构教学实验系统285

附录BVivado的安装288

附录C简单MIPS指令系统规范301

附录DVivado使用进阶345

内容摘要
本书面向CPU设计的初学者,采用循序渐进、层层推进的方式介绍CPU的完整开发过程。全书包括三部分:部分(~3章)介绍工程化CPU的研发过程以及设计CPU需要掌握的基础知识;第二部分(第4~10章)从一个基本的单周期CPU设计开始,逐步引入流水线、指令、例外、中断等功能,并完成总线、TLBMMU、高速缓存等功能的设计;第三部分(1章)为进阶设计内容,涵盖Linux内核、提升主频、双发射流水线、动态调度、访存优化、多核处理器等功能的实现。本书内容新颖、理论联系实际、图文并茂,适合作为高校计算机及相关专业计算机组成、计算机体系结构、CPU设计等课程的教材或参考书,也可作为从事CPU设计的技术人员的参考读物。

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP