书籍详情
深入理解OpenRISC体系结构
作者:甄建勇
出版社:机械工业出版社
出版时间:2015-06-01
ISBN:9787111504047
定价:¥79.00
购买这本书可以去
内容简介
这是一本介绍OpenRISC体系结构的图书。通读对本书的阅读,读者不仅可以获得计算机体系结构设计的基础理论知识,还可以掌握动手设计处理器的基本技能,迈入CPU设计的大门。本书的内容大致可分为三部分,即知识储备、实例分析和动手实践。其中第一部分着重介绍了体系结构设计中的概念、并行技术、局部性原理,以及进行计算机体系接结构设计的一般流程。第二部分,以OpenRISC为分析对象,深入分析了开源CPU数据通路、控制通路和存储器层次组织的实际实现,对研究体系结构设计具有很高的现实意义和实际价值。此外本部分还介绍了以OpenRISC为基础的ORPSoC的很多设计细节。第三部分,介绍如何运用前面的积累设计一个简单的RISC核,以及设计的仿真和FPGA验证。本书适合急于了解和掌握体系结构设计基础,对开源CPU内部实现充满好奇,并想动手设计属于自己CPU的读者,以及从事嵌入式开发的技术人员。此外,本书还可作为对计算机体系结构设计感兴趣的电子工程类、自动控制类、计算机类的高年级本科生和研究生的参考用书。
作者简介
暂缺《深入理解OpenRISC体系结构》作者简介
目录
目 录
前言
第1章 绪 论 / 1
1.1 概述 / 1
1.2 计算机漫谈 / 3
1.2.1 十进制计算机 / 3
1.2.2 二进制计算机 / 7
1.3 计算机体系结构 / 12
1.3.1 图灵与图灵机 / 12
1.3.2 冯.诺依曼与冯.诺依曼体系结构 / 14
1.3.3 改进的哈佛体系结构 / 17
1.3.4 发展趋势 / 19
1.4 并行技术 / 20
1.4.1 流水线 / 20
1.4.2 乱序 / 22
1.4.4 单指令多数据流 / 22
1.4.5 同时多线程 / 23
1.4.6 单芯片多处理器 / 23
1.4.7 对称多处理器 / 25
1.5 局部性原理 / 25
1.6 计算机的评价 / 26
1.7 设计流程 / 27
1.7.1 分析 / 27
1.7.2 模拟器 / 28
1.7.3 FPGA设计 / 29
1.7.4 ASIC / 35
1.8 OpenRISC / 36
1.8.1 概述 / 36
1.8.2 OpenRISC寄存器集 / 37
1.8.3 OpenRISC指令集 / 41
1.9 小结 / 41
1.10 习题 / 42
第2章 基于OpenRISC的开发 / 43
2.1 概述 / 44
2.2 项目描述 / 44
2.3 开发环境的构建 / 44
2.3.1 开发环境的组成 / 44
2.3.2 开发环境的选择与安装 / 46
2.4 硬件的开发 / 51
2.4.1 模块划分和编码实现 / 51
2.4.2 功能仿真与时序仿真 / 51
2.5 驱动程序的开发 / 55
2.6 FPGA板级验证 / 66
2.7 硬件与软件的比较 / 66
2.8 ORPSoC与or1200 / 70
2.8.1 ORPSoC架构分析 / 70
2.8.2 ORPSoC的启动过程 / 73
2.8.3 or1200 / 83
2.9 小结 / 86
2.10 习题 / 86
第3章 数据通路设计 / 87
3.1 概述 / 87
3.2 数据通路 / 87
3.3 OpenRISC的数据通路整体架构分析 / 88
3.4 取指 / 89
3.5 译码 / 97
3.6 执行 / 118
3.6.1 运算部件基础 / 118
3.6.2 or1200的运算部件 / 127
3.7 访存 / 135
3.7.1 流水线的访存阶段 / 135
3.7.2 or1200访存阶段的具体实现分析 / 136
3.8 写回 / 142
3.8.1 or1200写回阶段整体功能 / 142
3.8.2 or1200写回阶段具体实现代码分析 / 143
3.9 设计一个简单的除法器 / 150
3.10 小结 / 156
3.11 习题 / 157
第4章 控制通路设计 / 158
4.1 概述 / 158
4.2 控制通路的复杂性 / 158
4.3 OR的控制通路设计分析 / 160
4.3.1 整体介绍 / 160
4.3.2 sprs模块 / 160
4.4 OR的异常处理 / 172
4.4.1 except模块 / 172
4.4.2 freeze模块 / 187
4.5 OR的调试系统 / 190
4.5.1 调试方案的分类 / 190
4.5.2 advanced debug system / 192
4.5.3 我的调试系统 / 195
4.5.4 JTAG模块 / 201
4.6 基于or1200的中断实验 / 223
4.7 小结 / 239
4.8 习题 / 239
第5章 存储器组织 / 240
5.1 概述 / 240
5.2 TLB与Cache / 241
5.2.1 概述 / 241
5.2.2 TLB / 243
5.2.3 Cache / 250
5.3 OR的存储器组织 / 256
5.3.1 OR的MMU / 257
5.3.2 OR的Cache / 265
5.4 自己设计一个简单的Cache / 292
5.5 小结 / 293
5.6 习题 / 294
第6章 自己设计一个简单的CPU / 295
6.1 概述 / 295
6.2 层次建模 / 295
6.3 可综合代码风格 / 299
6.4 一个简单CPU的设计、实现、仿真与综合 / 300
6.4.1 架构设计 / 301
6.4.2 模块划分 / 301
6.4.3 模块划分与接口定义 / 302
6.4.4 RTL实现 / 303
6.4.5 ModelSim仿真 / 326
6.4.6 综合 / 331
6.4.7 改进及优化 / 332
6.4.8 tiny_core的指令集 / 333
6.5 小结 / 334
6.6 习题 / 334
附录A 常用公式和定律 / 335
附录B wishbone / 337
附录C 状态机的4种写法 / 340
附录D 跨时钟域信号的同步 / 352
附录E 推荐阅读 / 362
参考文献 / 364
后记 / 365
前言
第1章 绪 论 / 1
1.1 概述 / 1
1.2 计算机漫谈 / 3
1.2.1 十进制计算机 / 3
1.2.2 二进制计算机 / 7
1.3 计算机体系结构 / 12
1.3.1 图灵与图灵机 / 12
1.3.2 冯.诺依曼与冯.诺依曼体系结构 / 14
1.3.3 改进的哈佛体系结构 / 17
1.3.4 发展趋势 / 19
1.4 并行技术 / 20
1.4.1 流水线 / 20
1.4.2 乱序 / 22
1.4.4 单指令多数据流 / 22
1.4.5 同时多线程 / 23
1.4.6 单芯片多处理器 / 23
1.4.7 对称多处理器 / 25
1.5 局部性原理 / 25
1.6 计算机的评价 / 26
1.7 设计流程 / 27
1.7.1 分析 / 27
1.7.2 模拟器 / 28
1.7.3 FPGA设计 / 29
1.7.4 ASIC / 35
1.8 OpenRISC / 36
1.8.1 概述 / 36
1.8.2 OpenRISC寄存器集 / 37
1.8.3 OpenRISC指令集 / 41
1.9 小结 / 41
1.10 习题 / 42
第2章 基于OpenRISC的开发 / 43
2.1 概述 / 44
2.2 项目描述 / 44
2.3 开发环境的构建 / 44
2.3.1 开发环境的组成 / 44
2.3.2 开发环境的选择与安装 / 46
2.4 硬件的开发 / 51
2.4.1 模块划分和编码实现 / 51
2.4.2 功能仿真与时序仿真 / 51
2.5 驱动程序的开发 / 55
2.6 FPGA板级验证 / 66
2.7 硬件与软件的比较 / 66
2.8 ORPSoC与or1200 / 70
2.8.1 ORPSoC架构分析 / 70
2.8.2 ORPSoC的启动过程 / 73
2.8.3 or1200 / 83
2.9 小结 / 86
2.10 习题 / 86
第3章 数据通路设计 / 87
3.1 概述 / 87
3.2 数据通路 / 87
3.3 OpenRISC的数据通路整体架构分析 / 88
3.4 取指 / 89
3.5 译码 / 97
3.6 执行 / 118
3.6.1 运算部件基础 / 118
3.6.2 or1200的运算部件 / 127
3.7 访存 / 135
3.7.1 流水线的访存阶段 / 135
3.7.2 or1200访存阶段的具体实现分析 / 136
3.8 写回 / 142
3.8.1 or1200写回阶段整体功能 / 142
3.8.2 or1200写回阶段具体实现代码分析 / 143
3.9 设计一个简单的除法器 / 150
3.10 小结 / 156
3.11 习题 / 157
第4章 控制通路设计 / 158
4.1 概述 / 158
4.2 控制通路的复杂性 / 158
4.3 OR的控制通路设计分析 / 160
4.3.1 整体介绍 / 160
4.3.2 sprs模块 / 160
4.4 OR的异常处理 / 172
4.4.1 except模块 / 172
4.4.2 freeze模块 / 187
4.5 OR的调试系统 / 190
4.5.1 调试方案的分类 / 190
4.5.2 advanced debug system / 192
4.5.3 我的调试系统 / 195
4.5.4 JTAG模块 / 201
4.6 基于or1200的中断实验 / 223
4.7 小结 / 239
4.8 习题 / 239
第5章 存储器组织 / 240
5.1 概述 / 240
5.2 TLB与Cache / 241
5.2.1 概述 / 241
5.2.2 TLB / 243
5.2.3 Cache / 250
5.3 OR的存储器组织 / 256
5.3.1 OR的MMU / 257
5.3.2 OR的Cache / 265
5.4 自己设计一个简单的Cache / 292
5.5 小结 / 293
5.6 习题 / 294
第6章 自己设计一个简单的CPU / 295
6.1 概述 / 295
6.2 层次建模 / 295
6.3 可综合代码风格 / 299
6.4 一个简单CPU的设计、实现、仿真与综合 / 300
6.4.1 架构设计 / 301
6.4.2 模块划分 / 301
6.4.3 模块划分与接口定义 / 302
6.4.4 RTL实现 / 303
6.4.5 ModelSim仿真 / 326
6.4.6 综合 / 331
6.4.7 改进及优化 / 332
6.4.8 tiny_core的指令集 / 333
6.5 小结 / 334
6.6 习题 / 334
附录A 常用公式和定律 / 335
附录B wishbone / 337
附录C 状态机的4种写法 / 340
附录D 跨时钟域信号的同步 / 352
附录E 推荐阅读 / 362
参考文献 / 364
后记 / 365
猜您喜欢