《硬件编程接口与系统软件实现》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:朱春森编著
  • 出 版 社:北京:北京大学出版社
  • 出版年份:2005
  • ISBN:7301089325
  • 页数:365 页
图书介绍:本书以大量篇幅介绍设备控制器编程接口,包括键盘控制器、图形控制器、IDE设备控制器、音频/调制解调器控制器、USB控制器和LAN控制器,并附带介绍相关设备总线标准。本书还介绍了外存介质分区结构、存储介质格式规范和流行的文件系统,并给出外存管理、文件管理和文件接口示例。另外,结合处理器指令功能和寻址机制,介绍一些操作系统相关的高级语言程序实现问题,如变量空间与程序结构、函数声明与函数出口、函数调用与函数入口等,同时涉及一些代码生成问题,如数据编码与存储格式、算术表达式和逻辑表达式编译,并介绍微软32位可执行文件格式,说明程序加载步骤。

目录 1

第1章 系统引导和程序代码 1

1.1 系统运行 1

1.1.1 系统引导过程 1

1.1.2 程序加载步骤 3

1.1.3 指令执行流程 4

1.2 机器指令 5

1.2.1 机器指令结构 5

1.2.2 操作数寻址模式 7

1.3 地址映射 10

1.3.1 实地址模式 10

1.3.2 保护模式 11

1.3.3 虚拟8086模式 13

1.3.4 系统管理模式 13

1.4 数据编码 14

1.4.1 整数编码 14

1.4.2 实数编码 15

1.4.3 数据存储格式 15

1.5.1 存储器物理地址 16

1.5 存储器组织 16

1.5.2 存储器寻址 17

1.5.3 存储器分页映射 17

1.5.4 存储器管理模式 18

1.6 汇编程序 18

1.6.1 处理器与指令集简介 18

1.6.2 汇编指令格式 19

1.6.3 变量声明 20

1.6.4 汇编程序结构 20

1.6.5 控制转移 21

1.6.6 堆栈 22

1.7 中断 23

第2章 系统配置接口 25

2.1 系统结构 25

2.1.1 系统总线分层结构 26

2.1.2 系统配置端口 28

2.2 系统总线与地址空间 29

2.2.1 总线组成与总线周期 29

2.2.2 系统存储器地址空间和I/O地址空间 30

2.3.1 I/O中断控制器与IRQ通道 31

2.3 系统资源 31

2.2.3 流水线与并行机制 31

2.3.2 DMA控制器与DMA通道 33

2.4 PCI局部总线 34

2.4.1 PCI总线协议 34

2.4.2 PCI配置空间 36

2.4.3 PCI设备枚举协议 37

2.4.4 AGP局部总线 37

2.5.1 GMCH芯片集内置设备配置接口 39

2.5 设备PCI空间配置接口 39

2.5.2 ICH4芯片集内置设备配置接口 42

2.6 系统管理接口 47

2.6.1 系统控制接口 47

2.6.2 电源管理接口 48

2.6.3 系统管理总线接口 49

第3章 控制器编程接口 51

3.1 实时时钟和计时器 51

3.1.1 实时时钟 51

3.1.2 记时器 53

3.2.1 键盘扫描码 54

3.2 键盘鼠标控制器 54

3.2.2 鼠标数据包格式 55

3.2.3 键盘鼠标控制器接口 56

3.3 图形控制器 59

3.3.1 图形基础知识 59

3.3.2 图形控制器寄存器 61

3.3.3 图形控制器指令集 65

3.3.4 VGA/EVGA控制器 71

3.4 IDE控制器 76

3.4.1 ATA/ATAPI-5标准介绍 76

3.4.2 ATA设备寄存器 78

3.4.3 IDE总线主控接口 79

3.4.4 ATA设备命令集 79

3.5 AC'97控制器 84

3.5.1 AC'97连接标准介绍 84

3.5.2 调制解调器寄存器 86

3.5.3 音频编解码器寄存器 86

3.5.4 AC'97主控接口 88

3.6 USB控制器 89

3.6.1 USB总线协议介绍 89

3.6.2 USB设备配置 91

3.6.3 USB主控寄存器 92

3.6.4 USB总线事务调度 93

3.7 LAN控制器 98

3.7.1 网络简介 98

3.7.2 LAN控制器寄存器 99

3.7.3 LAN主控事务接口 102

第4章 IA-32处理器 105

4.1 基本寄存器与基本指令集 105

4.1.1 通用寄存器 105

4.1.2 段寄存器 106

4.1.3 指令指针寄存器 107

4.1.4 状态标志寄存器 108

4.1.5 控制寄存器 109

4.1.6 存储器管理寄存器 110

4.1.7 基本指令集 112

4.2 FPU寄存器与指令集 112

4.2.1 浮点寄存器栈 112

4.2.2 FPU标志寄存器 113

4.2.3 FPU控制寄存器 113

4.2.4 FPU状态寄存器 114

4.2.5 操作数指针、指令指针和操作码寄存器 115

4.2.6 FPU状态保存与复原 115

4.2.7 FPU指令集 115

4.3 MMX寄存器与MMX指令集 116

4.3.1 MMX寄存器 116

4.3.2 MMX指令集 117

4.3.3 MMX与FPU指令混用问题 117

4.4 XMM寄存器与SSE指令 118

4.4.1 XMM寄存器和MXCSR寄存器 118

4.4.2 SSE例外 119

4.4.3 SSE/SSE2指令集 120

4.5 IA-32e处理器 123

4.5.1 存储器寻址 124

4.5.2 寄存器 124

4.5.3 指令集 125

第5章 中断机制 126

5.1 中断类型 126

5.1.1 中断源 126

5.1.2 例外源及分类 126

5.2 中断向量 127

5.1.3 可屏蔽与不可屏蔽中断 127

5.2.1 中断入口 128

5.2.2 中断优先权 129

5.2.3 例外错误码 130

5.3 中断处理机制 130

5.3.1 中断描述符表 130

5.3.2 中断处理硬件机制 131

5.3.3 中断返回硬件机制 131

5.4 局部APIC控制器 132

5.3.4 IA-32e处理器中断机制 132

5.4.1 局部APIC介绍 133

5.4.2 局部APIC寄存器 134

5.4.3 局部向量表 136

5.4.4 发布中断命令 138

5.4.5 中断消息接收与提交 140

5.4.6 APIC总线优先权仲裁与总线消息格式 142

5.5 I/OAPIC控制器 143

第6章 高级语言程序实现 146

6.1 变量 146

6.1.1 变量空间 147

6.1.2 数据结构 148

6.1.3 类 150

6.2 赋值和算术运算 151

6.2.1 数据传递 151

6.2.2 整数运算 153

6.2.3 浮点数运算 153

6.2.4 算术表达式编译 155

6.3 控制转移 156

6.3.1 转移指令 157

6.3.2 堆栈切换 159

6.4.2 比较指令与条件执行指令 160

6.4 条件转移 160

6.4.1 条件编码与状态标记 160

6.4.3 逻辑表达式编译 161

6.5 函数 164

6.5.1 函数出口 165

6.5.2 调用协议 165

6.5.3 块结构 166

6.5.4 快速系统调用 168

6.6 可移植执行文件与通用目标文件格式 169

7.1.1 段描述符表 172

7.1 分段机制 172

第7章 存储器管理 172

7.1.2 段描述符数据结构 173

7.1.3 段选择符 174

7.1.4 段保护机制 175

7.1.5 IA-32e模式段描述符 175

7.2 分页机制 176

7.2.1 分页模式 176

7.2.2 页入口与线性地址译码 177

7.3.1 段限长检查 181

7.3.2 段类型检查 181

7.3 保护机制 181

7.2.3 地址译码后援缓冲器 181

7.3.3 段特权级检查 182

7.3.4 页保护机制 183

7.3.5 指针确认 183

7.3.6 特权指令 184

7.4 调用16位代码 185

7.5 高速缓冲机制 186

7.5.1 高速缓存结构 186

7.5.2 地址空间存储器类型分区 187

7.5.3 高速缓存控制 189

7.5.4 设置存储器类型 191

7.6 存储器一致性机制 192

7.6.1 存储器顺序规则 192

7.6.2 存储器顺序加强和削弱机制 193

7.6.3 原子操作 193

7.6.4 自修改代码同步问题 194

7.7 存储器管理模式 195

7.7.1 平面模式与分段模式 195

7.6.5 页入口修改同步问题 195

7.7.2 分页模式 196

7.7.3 线性地址空间管理示例 196

7.7.4 存储器空间管理与内存块表 199

7.8 存储器管理示例 200

7.8.1 存储器管理数据结构 200

7.8.2 页帧分配与回收 201

7.8.3 页故障处理程序 206

7.8.4 系统内核空间和全局堆 207

8.1.1 任务管理空间 210

8.1 任务空间 210

第8章 任务管理 210

8.1.2 程序运行空间 211

8.2 任务状态段 212

8.2.1 任务状态段结构 212

8.2.2 任务寄存器 213

8.2.3 任务门描述符 213

8.2.4 IA-32e模式任务状态段 214

8.3 任务切换 214

8.3.1 任务切换步骤 215

8.3.3 运行首个任务 217

8.3.2 任务链接 217

8.3.4 创建新任务 218

8.4 SIM状态保存 219

8.5 任务管理示例 221

8.5.1 任务管理数据结构 222

8.5.2 线程调度 223

8.5.3 定时线程与计时器 225

8.5.4 空闲线程 226

8.5.5 消息接收与焦点窗口 227

8.6 应用程序结构和消息处理函数 229

8.6.1 消息读取、识别与发布 230

第9章 外存管理和设备管理 232

9.1 存储介质空间结构 232

9.1.1 磁盘引导区 234

9.1.2 分区入口 234

9.2 常用文件系统 235

9.2.1 FAT文件系统 235

9.2.2 NTFS文件系统 236

9.2.3 系统引导区 237

9.3.1 块表入口 239

9.3 外存管理示例 239

9.3.2 文件入口 240

9.3.3 系统根目录 242

9.3.4 文件系统接口 242

9.4 文件接口示例 243

9.4.1 外存设备与端口设备 245

9.4.2 文件接口实现 245

9.4.3 设备接口 246

9.4.4 页帧加载 248

9.5.1 枚举与配置 250

9.5 设备管理 250

9.5.2 ACPI规范简介 252

9.5.3 资源管理 254

9.5.4 设备事件 255

第10章 处理器辅助功能 256

10.1 模式专用寄存器 256

10.2 处理器初始化与多处理器协议 258

10.2.1 处理器复位状态 259

10.2.2 多处理器协议 259

10.3 处理器识别 261

10.4 系统管理模式 262

10.4.1 SMRAM空间结构 263

10.4.2 系统管理中断处理入口 264

10.5 系统初始化 265

10.5.1 初始化硬件平台 265

10.5.2 初始化程序运行环境 265

10.6 升级微码块 269

10.6.1 微码块结构 269

10.6.2 微码块加载器 269

10.6.3 微码块嵌入接口 270

10.7.1 紧急关机温度开关 271

10.7 处理器温度监控 271

10.7.3 软件调节 272

10.8 调试机制 272

10.8.1 调试寄存器与调试例外 272

10.7.2 自动温控器 272

10.8.2 最后转移记录 274

10.8.3 调试信息存储 275

10.9 性能监控 276

10.9.1 P6系列处理器性能监控 276

10.9.2 奔腾?4处理器性能监控 279

10.10.1 错误报告栏 283

10.10 机器检查 283

10.10.2 MC错误编码 284

10.10.3 MC例外处理 285

第11章 安腾处理器 286

11.1 安腾处理器简介 286

11.2 安腾寄存器 287

11.2.1 通用寄存器 287

11.2.2 浮点寄存器 288

11.2.5 处理器状态寄存器 289

11.2.3 判断寄存器、转移寄存器和指令指针 289

11.2.4 当前帧标记寄存器 289

11.2.6 应用寄存器 290

11.2.7 控制寄存器 291

11.2.8 处理器标识寄存器 292

11.2.9 调试断点寄存器 292

11.2.10 性能监控寄存器 292

11.3 代码结构和指令集 293

11.3.1 机器代码结构与汇编指令格式 293

11.3.2 访存指令与读存指令提前机制 295

11.3.3 运算指令 297

11.3.4 比较指令与判断寄存器 300

11.4 转移指令与软件协议 301

11.4.1 循环指令与软件流水线 302

11.4.2 调用/返回指令与寄存器帧 303

11.4.3 寄存器保存协议 304

11.4.4 寄存器栈备份空间 305

11.4.5 存储器栈与参数传递协议 306

11.5 存储器管理 307

11.5.1 地址译码和页保护机制 307

11.5.2 页入口插入 308

11.5.3 程序空间结构 310

11.6 中断处理机制 312

11.6.1 中断类型与中断向量表 313

11.6.2 中断块和中断命令端口 314

11.6.3 中断和中断返回 315

11.6.4 中断处理程序 316

11.7 I/O端口 317

11.8 处理器抽象层 318

11.8.1 固件地址空间 318

11.8.2 安腾系统引导 319

11.8.3 硬件事件处理 320

11.8.4 处理器抽象层程序 320

附录A IA-32指令一览表 322

A.1 汇编指令操作数符号 322

A.2 机器指令操作数符号 322

A.3 IA-32指令集一览表 323

附录B 操作码映射表 356

附录C 英文缩写词 362

参考文献 364