机械工业出版社旗舰店店铺主页二维码
机械工业出版社旗舰店 微信认证
微信扫描二维码,访问我们的微信店铺
你可以使用微信联系我们,随时随地的购物、客服咨询、查询订单和物流...

CPU设计实战

67.30
运费: 免运费
CPU设计实战 商品图0
CPU设计实战 商品缩略图0

商品详情

书名:CPU设计实战
定价:99.0
ISBN:9787111674139
作者:汪文祥
版次:1

内容提要:

  内容简介

本书系统介绍了CPU设计的开发过程、各个开发环节的知识要点、开发过程中需要关注的工程问题等内容。通过学习本书,读者可以自行设计出一个具有基本功能的CPU。本书内容循序渐进,从设计CPU所需的基础知识,到设计简单流水线CPU设计、多周期流水线CPU、高速缓存,以及提升主频、运行Linux内核等进阶功能,使读者逐步掌握CPU设计的方法和设计要点。本书适合作为高校计算机及相关专业计算机组成、计算机体系结构等课程的实践教材,也可供对CPU开发感兴趣的读者阅读。






目录:

  目录

  丛书序言

前言
*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章 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.3 AXI总线协议 195
8.3.1 AXI总线信号一览 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章 TLB MMU设计 211
9.1 TLB模块的基础知识 212
9.1.1 TLB的虚实地址转换 212
9.1.2 TLB的软件访问 214
9.1.3 TLB的软硬件交互机制 215
9.2 TLB模块设计的分析 217
9.3 TLB相关的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
*10章 高速缓存设计 226
10.1 Cache模块的设计 227
10.1.1 Cache的设计规格 227
10.1.2 Cache模块的数据通路设计 228
10.1.3 Cache模块内部的控制逻辑设计 237
10.1.4 Cache的硬件初始化问题 241
10.2 将Cache模块集成到CPU中 242
10.2.1 Cache命中情况下的CPU流水线适配 242
10.2.2 Cache缺失情况下的CPU流水线适配 243
10.2.3 Uncache访问的处理 243
10.3 CACHE指令 245
10.3.1 CACHE指令的定义 245
10.3.2 CACHE指令的实现 247
10.4 性能测试程序 247
10.4.1 Dhrystone 247
10.4.2 Coremark 250
10.5 Cache的性能 251
10.6 任务与实践 252
10.6.1 实践任务一:Cache模块设计 252
10.6.2 实践任务二:在CPU中集成ICache 254
10.6.3 实践任务三:在CPU中集成DCache 255
10.6.4 实践任务四:在CPU中添加CACHE指令 256
*11章 进阶设计 258
11.1 运行Linux内核 258
11.1.1 复杂SoC搭建 259
11.1.2 CPU的进一步完善 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.1 store buffer 269
11.6.2 Non-blocking Cache 270
11.6.3 访存乱序执行 271
11.6.4 多级Cache 271
11.6.5 Cache预取 272
11.7 多核处理器的实现 272
11.7.

机械工业出版社旗舰店店铺主页二维码
机械工业出版社旗舰店 微信公众号认证
扫描二维码,访问我们的微信店铺
随时随地的购物、客服咨询、查询订单和物流...

CPU设计实战

手机启动微信
扫一扫购买

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏

微信支付

支付宝

扫一扫购买

打开微信,扫一扫

或搜索微信号:cmp1952
机工书院官方微信公众号

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏