《PentiumⅡ/Ⅲ体系结构及扩展技术》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:刘清森等编著
  • 出 版 社:北京:国防工业出版社
  • 出版年份:2000
  • ISBN:7118022705
  • 页数:334 页
图书介绍:本书涉及的处理器超越了微型系统的界线,进入大型机甚至巨型机的行列。本书内容包括P6系列处理器概况、系统结构、储存管理、储存保护、中断与异常处理、任务管理和浮点指令等。

第1章 P6系列处理器概况 1

1.1 Intel体系结构的发展 1

1.1.1 Intel体系结构发展的历史回顾 1

1.1.2 IA性能的提高 3

1.1.3 IA浮点部件发展的历史回顾 4

1.2 P6系列处理器的微结构 5

1.2.1 流水线的动态执行机构 5

1.2.2 微结构框图 7

1.2.3 存储器子系统 8

1.2.4 取指/译码单元 8

1.2.5 指令池 9

1.2.6 分配/执行单元 9

1.2.7 退出单元 10

1.3 P6系列处理器的高速缓存 10

1.3.1 高速缓存和转换后援缓冲器 10

1.3.2 高速缓存的映射方法 11

1.3.3 高速缓存的工作原理 13

1.4 P6系列处理器的总线概述 15

1.4.1 P6处理器总线协议概要 16

1.4.2 P6系列处理器的信号概要 19

第2章 系统结构 30

2.1 操作方式和基本执行环境 30

2.1.1 操作方式 30

2.1.2 基本执行环境 31

2.2 IA处理器的数据结构与寄存器组 34

2.2.1 用户级数据结构与寄存器组 34

2.2.2 系统级数据结构与寄存器组 42

2.3 寻址方式与指令系统简介 54

2.3.1 寻址方式简介 54

2.3.2 指令系统简介 57

2.4 浮点支持 62

2.4.1 实数与浮点数 62

2.4.2 FPU结构 65

2.4.3 浮点数据类型与格式 72

第3章 存储管理 76

3.1 存储器管理概述 76

3.2 分段机制 77

3.2.1 基本平面模型 78

3.2.2 保护平面模型 78

3.2.3 多段模型 79

3.2.4 分段与分页 79

3.3 物理地址、线性地址与逻辑地址 80

3.4 分段技术 81

3.4.1 段选择符与段寄存器 81

3.4.2 段描述符 82

3.4.3 段描述符表 86

3.5 分页技术 87

3.5.1 分页选项 87

3.5.2 页目录和页表 88

3.5.3 页目录项与页表项 90

3.5.4 转换后援缓冲器 93

3.6 物理地址扩展 93

3.6.1 地址扩展允许下的线性地址变换 94

3.6.2 地址扩展允许下的页目录项和页表项 96

3.7 36位页面规模扩展 97

3.7.1 36位PSE功能描述 98

3.7.2 错误检测 99

3.8 将段映射成页面 100

第4章 存储保护 101

4.1 段页保护机制 101

4.1.1 段页保护使能 101

4.1.2 段页保护标志及字段 102

4.2 段限与类型的保护校验 103

4.2.1 段限校验 103

4.2.2 类型校验 104

4.3 特权级 105

4.3.1 访问数据段时的特权级校验 107

4.3.2 加载SS寄存器时的特权级校验 108

4.3.3 代码段间转移程序控制时的特权级校验 109

4.4 指针验证 116

4.4.1 校验访问权限(LAR指令) 117

4.4.2 校验读/写权限(VERR和VERW指令) 117

4.4.3校验指针偏移量是否在段限范围内(LSL指令) 118

4.4.4 校验调用程序访问特权(ARPL指令) 118

4.4.5 校验对界 120

4.5 页面级保护 120

4.5.1 页面级访问权限的保护 120

4.5.2 页面级访问方式的保护 121

4.5.3 两级页表的组合保护 121

4.5.4 页面保护的超越 122

4.5.5 段页保护的组合 122

第5章 中断与异常处理 123

5.1 中断与异常概述 123

5.1.1 中断源 123

5.1.2 异常源 124

5.2 中断与异常向量 125

5.2.1 中断向量表 125

5.2.2 异常的分类 126

5.2.3 中断与异常的屏蔽 127

5.2.4 中断与异常的优先级 128

5.3 中断描述符表与中断描述符 129

5.3.1 中断描述符表 129

5.3.2 中断描述符 130

5.4 中断与异常的处理 131

5.4.1 中断与异常的处理过程 131

5.4.2 用独立任务来处理中断和异常 133

5.4.3 错误代码 134

5.5 中断和异常参考 134

第6章 任务管理 148

6.1 任务管理概述 148

6.1.1 任务结构 148

6.1.2 任务状态 148

6.1.3 任务执行 149

6.2 任务管理的数据结构 150

6.2.1 任务状态段 150

6.2.2 TSS描述符 152

6.2.3 任务寄存器 153

6.2.4 任务门描述符 154

6.3 任务切换 155

6.4 任务链接 157

6.4.1 多任务的嵌套 157

6.4.2 使用忙标志来阻止递归任务切换 159

6.4.3 修改任务链接 159

6.5 任务地址空间 160

6.5.1 线性地址空间映射到物理地址空间 160

6.5.2 任务间共享的地址映射 161

第7章 8086仿真 162

7.1 实地址方式 162

7.1.1 实地址方式中的地址转换 163

7.1.2 实地址方式中支持的寄存器和指令 164

7.1.3 中断和异常处理 164

7.2 虚拟8086方式 166

7.2.1 启动虚拟8086方式 166

7.2.2 虚拟8086任务的结构 166

7.2.3 虚拟8086任务的分页 167

7.2.4 虚拟8086任务中的保护 168

7.2.5 进入与退出虚拟8086方式 168

7.2.6 虚拟8086方式的I/O 170

7.3 虚拟8086方式中的中断和异常处理 171

7.3.1 类型1——虚拟8086方式中硬件中断和异常的处理 171

7.3.2 类型2——使用虚拟8086方式中的虚拟中断机制来处理可屏蔽硬件中断 174

7.3.3 类型3——虚拟8086方式中的软件中断处理 175

7.4 保护方式虚拟中断 178

第8章 多处理器管理 180

8.1 原子操作的锁定 180

8.1.1 固有的原子操作 181

8.1.2 总线锁定 181

8.1.3 代码自修改与代码交叉修改的处理 183

8.1.4 发生在处理器内部高速缓存上的锁定操作 183

8.2 存储器排序 184

8.3 串行化指令 187

8.4 先进的可编程中断控制器 188

8.4.1 局部APIC概况 188

8.4.2 局部APIC框图及寄存器地址分配 190

8.4.3 中断目标和APIC ID 192

8.4.4 中断分配机制和中断向量表 194

8.4.5 处理器之间的中断和自身中断 196

8.4.6 中断接收 197

8.5 多处理器初始化 202

8.5.1 双处理器初始化规程 202

8.5.2 多处理器的初始化规程 202

8.6 多处理器初始化引导举例 205

8.6.1 双处理器的初始化引导 205

8.6.2 多处理器的初始化引导 207

第9章 处理器的初始化 210

9.1 初始化概要 210

9.2 浮点部件初始化 213

9.3 高速缓存及模式专用寄存器的初始化 215

9.4 实地址方式工作的软件初始化 216

9.5 保护方式工作的软件初始化 216

9.6 方式切换 218

9.6.1 切换至保护方式 218

9.6.2 切换回实地址方式 219

9.7 初始化及方式切换举例 220

第10章 MMX技术 231

10.1 MMX技术编程环境概述 231

10.1.1 MMX寄存器 231

10.1.2 MMX数据类型 232

10.1.3 单指令多数据执行方式 233

10.1.4 数据存放格式 233

10.2 MMX指令的操作及操作数 233

10.2.1 环绕算法与饱和算法 234

10.2.2 指令操作数 234

10.3 MMX指令概述 234

10.4 与FPU结构的兼容性 237

10.5 MMX编程技巧 237

10.5.1 使用CPUID指令检测MMX技术 238

10.5.2 使用EMMS指令 238

10.5.3 MMX代码接口 239

10.5.4 使用MMX指令和浮点指令书写代码 239

10.5.5 在多任务环境中使用MMX代码 240

10.5.6 MMX代码中的异常处理 240

10.6 应用举例 240

第11章 流式SIMD扩展的程序设计 244

11.1 流式SIMD扩展概要 244

11.1.1 SIMD浮点寄存器 244

11.1.2 SIMD浮点数据类型 245

11.1.3 SIMD的执行方式 246

11.1.4 数据格式 246

11.1.5 SIMD浮点控制/状态寄存器 247

11.2 流式SIMD扩展指令系统摘要 248

11.3 与FPU结构的兼容性 254

11.4 流式SIMD扩展的编程技巧 256

11.4.1 使用CPUID指令以检测处理器对流式SIMD扩展的支持 256

11.4.2 流式SIMD扩展过程和函数的接口 256

11.4.3 书写有MMX指令、浮点指令以及流式SIMD扩展指令的代码 257

11.4.4 在多任务操作系统环境中使用流式SIMD扩展 259

11.4.5 流式SIMD扩展中的异常处理 259

11.5 应用举例 260

11.5.1 判断处理器和操作系统是否支持流式SIMD扩展 260

11.5.2 求浮点数的最大值 262

11.5.3 求绝对误差 262

11.5.4 整数最小值的搜索函数 263

附录A 整型指令 267

A.1 数据传送指令 267

A.2 二进制算术指令 268

A.3 十进制算术指令 268

A.4 逻辑指令 268

A.5 移位与循环指令 268

A.6 位操作和字节操作指令 269

A.7 控制传送指令 269

A.8 串指令 270

A.9 标志控制指令 271

A.10 段寄存器指令 271

A.11 其他指令 271

附录B 浮点指令 272

B.1 数据传送指令 272

B.2 基本算术指令 272

B.3 比较指令 273

B.4 超越函数计算指令 273

B.5 加载常数指令 274

B.6 FPU控制指令 274

附录C 系统指令 275

附录D MMX指令集 277

D.1 数据传送指令 277

D.2 算术指令 278

D.3 比较指令 285

D.4 转换指令 288

D.5 逻辑指令 292

D.6 移位指令 293

D.7 EMMS指令 297

附录E 流式SIMD扩展指令集 298

E.1 数据传送指令 298

E.2 算术指令 303

E.3 比较指令 309

E.4 转换指令 316

E.5 逻辑指令 318

E.6 新增的MMX整型指令 319

E.7 混洗指令 327

E.8 状态管理指令 330

E.9 可高速缓存控制指令 332