《MIPS体系结构与编程》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:刘佩林,谭志明,刘嘉龑编著
  • 出 版 社:北京:科学出版社
  • 出版年份:2008
  • ISBN:9787030213532
  • 页数:282 页
图书介绍:本书第一部分介绍了MIPS CPU的基本原理,包括MIPS的体系结构,MIPS 4K系列内核处理器和流水线,MIPS指令集,MIPS系统控制协处理器以及存储管理,高速缓存及异常处理等原理性知识。第二部分介绍基于MIPS处理器的应用程序、包括MIPS汇编语言,应用程序的编写与调试以及MIPS SDE软件开发平台的使用。第三部分介绍基于MIPS处理器开发嵌入式系统的方法,包括基于MIPS CPU开发的系统仿真板、验证板及其系统程序,MIPS处理器的硬件接口以及如何进行系统仿真和验证等。各个章节提供的实例由浅入深,并且均在相关平台进行仿真测试通过。本书旨在通过对MIPS处理器的原理到应用层次的介绍和分析,通过本书的阅读使读者对MIPS系列处理器有深入的了解,进而具备利用MIPS系列处理器进行实际应用开发的能力。

第1章 引言 1

1.1 CPU时代 1

1.2什么是MIPS CPU 1

1.3为什么选择MIPS CPU 2

1.4本书适用的读者 3

1.5本书的主要内容 3

1.6本书的结构 5

第2章 MIPS体系结构概述 7

2.1走进MIPS的世界 7

2.2 MIPS体系结构的发展 8

2.2. 1 CISC和RISC 8

2.2.2 MIPS I到MIPS V 9

2.2.3 MIPS32和MIPS64 9

2.2.4 MIPS体系结构的特点 12

2.3 MIPS处理器核 13

2.4 MIPS数据类型与寄存器 17

2.4.1数据类型 17

2.4.2 MIPS CPU寄存器概述 17

2.4.3 MIPS CPU通用寄存器 17

2.4.4 MIPS CPU特殊功能寄存器 19

2.4.5 MIPS FPU寄存器 19

2.5 MIPS体系存储空间的编址 20

第3章MIPS32 4K处理器及流水线 22

3.1 MIPS32 4K处理器核的组成 22

3.1.1执行单元 23

3.1.2乘/除单元 23

3.1.3系统控制协处理器 24

3.1.4存储管理单元 24

3.1.5缓存控制器 24

3.1.6总线接口单元 24

3.1.7功率控制 24

3.1.8指令缓存和数据缓存 25

3.1.9 EJTAG控制器 25

3.2 MIPS32 4K处理器核的流水线结构 25

3.2.1流水线的各阶段 25

3.2.2流水线的指令流 27

3.2.3分支延时槽 28

3.2.4互锁 29

3.2. 5旁路 29

第4章 MIPS32指令集 31

4.1加载和存储指令 31

4.1.1对齐加载和存储指令 32

4.1.2非对齐加载和存储指令 33

4.1.3链接加载和条件存储指令 36

4.2算术指令 40

4.2.1 ALU立即数和三操作数指令 41

4.2.2 ALU两操作数指令 41

4.2.3移位指令 42

4.2.4乘除指令 42

4.3跳转和分支指令 44

4.3.1在256MB区域中无条件跳转的指令 45

4.3.2与PC相关的寄存器比较条件分支指令 46

4.3.3与PC相关的零比较条件分支指令 46

4.4杂类指令 47

4.4.1同步指令 47

4.4.2异常指令 50

4.4.3条件转移指令 52

4.4.4预取指令 53

4.4.5空操作指令 55

4.5协处理器指令 55

第5章 系统控制协处理器 57

5.1协处理器概述 57

5.2 CPU控制指令 58

5.3 CP0寄存器 59

5.3.1 CP0寄存器概述 59

5.3.2 Index寄存器(0) 61

5.3.3 Random寄存器(1,只读) 61

" 5.3.4 EntryLo0和EntryLol寄存器(2, 3,读/写) 62

5.3.5 Context寄存器(4,读/写) 63

5.3.6 PageMask寄存器(5,读/写) 64

5.3.7 Wired寄存器(6,读/写) 65

5.3.8 BadVAddr寄存器(8,只读) 66

5.3.9 Count寄存器(9,读/写) 66

5.3.10 EntryHi寄存器(10,读/写) 66

5.3.11 Compare寄存器(11,读/写) 67

5.3.12 Status寄存器(12,读/写) 67

5.3.13 Cause寄存器(13) 70

5.3.14 EPC寄存器(14,读/写) 72

5.3.15 Prid寄存器(15,只读) 72

" 5.3.16 Config寄存器(16,选0) 73

5.3.17 Configl寄存器(16,选1,只读) 75

5.3.18 LLAddr寄存器(17,只读) 78

5.3.19 WatchLo寄存器(18,读/写) 78

5.3.20 WatchHi寄存器(19,读/写) 79

5.3.21 Debug寄存器(23) 79

5.3.22 DEPC寄存器(24,读/写) 83

5.3.23 ErrCtl寄存器(26,读/写) 84

" 5.3.24 TagLo寄存器(28,选0,读/写) 84

5.3.25 DataLo寄存器(28,选1,读/写) 85

5.3.26 ErrorEPC寄存器(30,读/写) 85

5.3.27 DeSave寄存器(31,读/写) 86

第6章存储管理 87

6.1存储管理单元MMU概述 87

6.2虚拟存储空间的分段 89

6.2.1用户模式 90

6.2.2内核模式 90

6.2.3调试模式 93

6.3地址转换单元TLB 94

6.3.1联合地址转换单元JTLB 94

6.3.2指令地址转换单元ITLB 96

6.3.3数据地址转换单元DTLB 96

6.3.4地址转换过程 96

6.3.5 TLB指令 97

6.3.6 TLB寄存器 98

6.3.7页大小和替换算法 98

6.4固定映射 99

第7章 高速缓存 101

7.1高速缓存概述 101

7.2缓存的组织结构 101

7.3缓存的工作原理 104

7.3.1指令缓存 105

7.3.2数据缓存 106

7.4替换策略 109

7.5缓存指令 109

第8章MIPS异常 112

8.1精确异常 112

8.2异常分类 114

8.3异常解释 116

8.4异常处理 118

8.4.1异常入口向量地址 118

8.4.2各种异常对应的ExcCode 120

8.4.3异常处理流程 120

8.4.4异常处理的C代码介绍 126

第9章MPS汇编语言程序设计 130

9.1 MIPS汇编程序简单示例及其处理过程介绍 130

9.2 MIPS汇编程序结构 133

9.3 MIPS汇编程序语句格式 134

9.3.1规则概要 134

9.3. 2数据定义 135

9.3.3寻址方式 136

9.4汇编程序伪操作 138

9.4.1段选择伪操作 139

9.4.2数据定义和对齐伪操作 141

9.4.3标记的属性 143

9.4.4函数伪操作 144

9.4.5汇编控制伪操作 146

9.4.6其他伪指令 149

9.5程序举例 149

第10章MIPS应用程序 159

10.1启动程序 160

10.1.1启动过程介绍 160

10.1.2启动代码实例 163

10.2 MIPS ABI简介 171

10.3 MIPS函数调用规范 174

10.3.1堆栈与函数参数 174

10.3.2寄存器与参数传递 175

10.3.3函数返回值 176

10.3.4堆栈布局、栈帧以及调试信息 177

10.3.5实例 179

10.4目标文件格式 190

10.5 Linux应用程序 191

10.6实践中的要点 193

10.6.1关于C版本 193

10.6.2关于编译器 193

10.6.3其他 194

第11章MI PS程序调试 195

11.1 EJTAG与调试 195

11.1.1 EJTAG介绍 195

11.1.2 EJTAG的功能 195

11.1.3调试需要用到的寄存器 197

11.2调试模式 198

11.2.1调试模式指令集 198

11.2.2调试模式下的地址空间 198

11.2.3调试模式下对处理器资源的处理 199

11.3调试异常 200

11.3.1调试异常的种类 200

11.3.2调试异常的优先级 202

11.3.3调试异常处理 203

11.3.4调试模式中的异常处理 204

第12章SDE编程环境 207

12.1 SDE概述 207

12.2使用快速入门 207

12.3 SDE的目标平台 212

12.4调试器的使用 214

12.4.1使用MIPSsim仿真器进行调试 215

12.4.2使用GNU仿真器进行调试 220

12.4.3 RAM版本与ROM版本程序 220

12.5 profile——剖析程序的执行 220

12.5.1 profile简介 220

12.5.2 profile的编译选项 221

12.5.3使用MIPSsim进行profile 222

12.5.4使用GNU仿真器进行profile 227

12.6 SDE与调试器 228

12.6.1调试器举例 228

12.6.2在SDE下进行调试 230

第13章MIPS开发平台 231

13.1 Malta开发平台 231

13.1.1 Malta概述 231

13.1.2基于Malta的软硬件开发工具 231

13.1.3 Malta主板的基本特征 232

13.1.4 Malta主板的系统结构 233

13.1.5 Malta平台的使用 235

13.2 SEAD-II开发平台 239

13.2.1 SEAD-I概述 239

13.2.2 SEAD-II模块与总线 241

13.2.3 SEAD-II平台的使用 243

第14章 硬件接口 246

14.1 4K处理器核的接口 246

14.1.1时钟接口 248

14.1.2初始化接口 248

14.2总线接口 248

第15章 仿真及验证模型 262

15.1 SmartModel仿真模型 262

15.1.1 SmartModel仿真库 262

15.1.2 MIPS核的SmartModel仿真模型 263

15.2 MIPS32 4K系列BFM模型 264

15.2.1 BFM模型简介 264

15.2.2 BFM模型的组成 265

15.2.3 BFM模型的事务处理流程 265

15.3 BFM模型的仿真和验证 266

15.3.1验证模型的实现 266

15.3.2仿真结果与分析 269

15.4 MIPS32 4K系列VMC模型 270

15.4.1 VMC模型简介 270

15.4.2寄存器观测窗口 271

15.4.3 VMC模型仿真配置 272

15.4.4跟踪文件 273

15.4.5实例化多个VMC模型的情况 274

15.5 VMC模型的仿真和验证 274

15.5.1仿真模型的实现 275

15.5.2仿真结果与分析 278

缩略语 280

参考文献 282