《计算机系统 核心概念及软硬件实现 原书第5版》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:(美)J.斯坦利·沃法德(J.Stanley Warford)
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2019
  • ISBN:9787111616849
  • 页数:568 页
图书介绍:本书以计算机系统的七层结构为主线,涵盖逻辑门、微代码、指令集架构、操作系统、汇编、高级语言和应用,全面介绍计算机组成、汇编语言和计算机体系结构的核心思想及软硬件实现方法。新版采用Pep/9虚拟机,清晰地阐释了经典冯·诺依曼机器的基本概念,同时包含完整的程序示例和丰富的习题,在理论与实践相结合的基础上,注重内容的广度和深度。本书适合作为高等院校计算机专业的课程教材,也可供相关技术人员阅读参考。

第一部分 应用层(第7层) 2

第1章 计算机系统 2

1.1抽象层次 2

1.1.1艺术中的抽象 3

1.1.2文档中的抽象 4

1.1.3机构中的抽象 5

1.1.4机器中的抽象 6

1.1.5计算机系统中的抽象 6

1.2硬件 7

1.2.1中央处理单元 8

1.2.2主存储器 9

1.2.3磁盘 10

1.3软件 11

1.3.1操作系统 12

1.3.2软件分析与设计 13

1.4数字信息 14

1.4.1空间量化 14

1.4.2时间量化 16

1.4.3快速响应码 18

1.4.4图像 21

1.5数据库系统 27

1.5.1关系 27

1.5.2查询 28

1.5.3语言结构 30

本章小结 31

练习 32

第二部分 高级语言层(第6层) 36

第2章 C 36

2.1变量 36

2.1.1 C编译器 36

2.1.2机器无关性 37

2.1.3 C的内存模型 37

2.1.4全局变量和赋值语句 38

2.1.5局部变量 40

2.2控制流 42

2.2.1 if/else语句 42

2.2.2 switch语句 43

2.2.3 while循环 44

2.2.4 do循环 44

2.2.5数组和for循环 45

2.3函数 46

2.3.1空函数和传值调用的参数 46

2.3.2函数的例子 48

2.3.3传引用调用的参数 48

2.4递归 51

2.4.1阶乘函数 52

2.4.2递归的思考方式 55

2.4.3递归加法 55

2.4.4二项式系数函数 57

2.4.5逆转数组元素顺序 61

2.4.6汉诺塔 61

2.4.7相互递归 63

2.4.8递归的成本 64

2.5动态内存分配 65

2.5.1指针 65

2.5.2结构 67

2.5.3链式数据结构 68

本章小结 69

练习 70

编程题 71

第三部分 指令集架构层(第3层) 76

第3章 信息的表示 76

3.1无符号二进制表示 76

3.1.1二进制存储 76

3.1.2整数 77

3.1.3基数转换 78

3.1.4无符号整数的范围 80

3.1.5无符号加法 80

3.1.6进位位 81

3.2二进制补码表示 81

3.2.1补码的表数范围 83

3.2.2基数转换 84

3.2.3数轴 85

3.2.4溢出位 86

3.2.5负数和零位 87

3.3二进制运算 88

3.3.1逻辑运算符 88

3.3.2寄存器传送语言 89

3.3.3算术运算符 90

3.3.4循环移位运算符 91

3.4十六进制与字符表示 92

3.4.1十六进制 92

3.4.2基数转换 92

3.4.3 ASCII字符 94

3.4.4 Unicode字符 97

3.5浮点数表示 100

3.5.1二进制小数 100

3.5.2余码表示 102

3.5.3隐藏位 103

3.5.4特殊值 104

3.5.5 IEEE 754浮点数标准 108

3.6模型 109

本章小结 111

练习 111

编程题 117

第4章 计算机体系结构 120

4.1硬件 120

4.1.1中央处理单元 120

4.1.2主存储器 121

4.1.3输入/输出设备 122

4.1.4数据和控制 123

4.1.5指令格式 123

4.2直接寻址 126

4.2.1停止指令 126

4.2.2字装入指令 126

4.2.3字存储指令 127

4.2.4加法指令 128

4.2.5减法指令 128

4.2.6与和或指令 129

4.2.7按位取反和取负指令 130

4.2.8字节装入和字节存储指令 131

4.2.9输入和输出设备 132

4.2.10大端顺序和小端顺序 133

4.3冯·诺依曼机器 134

4.3.1冯·诺依曼执行周期 134

4.3.2一个字符输出程序 135

4.3.3冯·诺依曼漏洞 138

4.3.4一个字符输入程序 139

4.3.5十进制转换为ASCII 139

4.3.6一个自我修改程序 140

4.4 ISA3层的编程 142

4.4.1只读存储器 143

4.4.2 Pep/9操作系统 144

4.4.3使用Pep/9系统 145

本章小结 146

练习 146

编程题 148

第四部分 汇编层(第5层) 150

第5章 汇编语言 150

5.1汇编程序 150

5.1.1指令助记符 150

5.1.2伪操作 152

5.1.3 .ASCII和.END伪操作 153

5.1.4汇编器 154

5.1.5 .BLOCK伪操作 155

5.1.6 .WORD和.BYTE伪操作 155

5.1.7使用Pep/9汇编器 156

5.1.8交叉汇编器 157

5.2立即数寻址和陷阱指令 158

5.2.1立即数寻址 158

5.2.2 DECI、 DECO和BR指令 159

5.2.3 STRO指令 161

5.2.4解释位模式:HEXO指令 162

5.2.5反汇编器 163

5.3符号 165

5.3.1带符号的程序 165

5.3.2一个冯☆诺依曼示例 166

5.4从HOL6层翻译 168

5.4.1 Printf()函数 169

5.4.2变量和类型 170

5.4.3全局变量和赋值语句 171

5.4.4类型兼容 174

5.4.5 Pep/9符号跟踪器 175

5.4.6算术移位和循环移位指令 175

5.4.7常量和.EQUATE 176

5.4.8指令与数据的放置 178

本章小结 179

练习 180

编程题 182

第6章 编译到汇编层 185

6.1栈寻址和局部变量 185

6.1.1栈相对寻址 185

6.1.2访问运行时栈 186

6.1.3局部变量 188

6.2分支指令和控制流 190

6.2.1翻译if语句 191

6.2.2优化编译器 192

6.2.3翻译if/else语句 192

6.2.4翻译while循环 194

6.2.5翻译do循环 195

6.2.6翻译for循环 197

6.2.7面条代码 198

6.2.8早期语言的控制流 199

6.2.9结构化编程定律 200

6.2.10 goto争论 200

6.3函数调用和参数 201

6.3.1翻译函数调用 201

6.3.2用全局变量翻译传值调用参数 204

6.3.3用局部变量翻译传值调用参数 207

6.3.4翻译非空函数调用 209

6.3.5用全局变量翻译传引用调用参数 211

6.3.6用局部变量翻译传引用调用参数 215

6.3.7翻译布尔类型 218

6.4变址寻址和数组 220

6.4.1翻译全局数组 221

6.4.2翻译局部数组 224

6.4.3翻译作为参数传递的数组 226

6.4.4翻译switch语句 230

6.5动态内存分配 235

6.5.1翻译全局指针 235

6.5.2翻译局部指针 240

6.5.3翻译结构 243

6.5.4翻译链式数据结构 246

本章小结 250

练习 251

编程题 251

第7章 语言翻译原理 259

7.1语言、语法和语法分析 259

7.1.1连接 260

7.1.2语言 260

7.1.3语法 261

7.1.4 C标识符的语法 262

7.1.5有符号整数的语法 263

7.1.6上下文相关的语法 264

7.1.7语法分析问题 264

7.1.8表达式的语法 265

7.1.9 C语法的一部分 266

7.1.10 C的上下文相关性 269

7.2有限状态机 270

7.2.1用有限状态机分析标识符 270

7.2.2简化的有限状态机 271

7.2.3非确定性有限状态机 271

7.2.4具有空转换的状态机 272

7.2.5多语言符号识别器 274

7.2.6语法与有限状态机 276

7.3实现有限状态机 277

7.3.1编译过程 278

7.3.2查找表分析器 278

7.3.3直接编码分析器 280

7.3.4输入缓冲区类 282

7.3.5多语言符号分析器 283

7.4代码生成 288

7.4.1语言翻译器 288

7.4.2语法分析器特性 302

本章小结 303

练习 303

编程题 306

第五部分 操作系统(第4层) 312

第8章 进程管理 312

8.1装载器 312

8.1.1 Pep/9操作系统 312

8.1.2 Pep/9装载器 314

8.1.3程序的终止 315

8.2陷阱 315

8.2.1陷阱机制 316

8.2.2 RETTR指令 317

8.2.3陷阱处理程序 317

8.2.4陷阱寻址方式断言 319

8.2.5陷阱操作数地址计算 320

8.2.6空操作陷阱处理程序 323

8.2.7 DECI陷阱处理程序 324

8.2.8 DECO陷阱处理程序 329

8.2.9 HEXO和STRO陷阱处理程序和操作系统向量 332

8.3并发进程 334

8.3.1异步中断 334

8.3.2操作系统中的进程 335

8.3.3多处理 336

8.3.4并发处理程序 337

8.3.5临界区 338

8.3.6第一次尝试实现互斥 339

8.3.7第二次尝试实现互斥 339

8.3.8 Peterson互斥算法 340

8.3.9信号量 342

8.3.10带信号量的临界区 343

8.4死锁 343

8.4.1资源分配图 344

8.4.2死锁策略 345

本章小结 346

练习 346

编程题 351

第9章 存储管理 353

9.1内存分配 353

9.1.1单道程序设计 353

9.1.2固定分区多道程序设计 354

9.1.3逻辑地址 355

9.1.4可变分区多道程序设计 356

9.1.5分页 359

9.2虚拟内存 361

9.2.1大程序的行为 361

9.2.2虚拟内存 361

9.2.3按需分页 362

9.2.4替换页 363

9.2.5页替换算法 363

9.3文件管理 365

9.3.1磁盘驱动器 365

9.3.2文件抽象 366

9.3.3分配技术 367

9.4错误检测与纠错码 369

9.4.1错误检测码 369

9.4.2编码要求 370

9.4.3纠正一位错误编码 372

9.5 RAID存储系统 373

9.5.1 RAID 0级:无冗余条带化 374

9.5.2 RAID 1级:镜像 374

9.5.3 RAID 01和10级:条带化和镜像 375

9.5.4 RAID 2级:内存风格的ECC 376

9.5.5 RAID 3级:位交叉奇偶校验 377

9.5.6 RAID 4级:块交叉奇偶校验 377

9.5.7 RAID 5级:块交叉分布奇偶校验 378

本章小结 379

练习 379

第六部分 逻辑门(第1层) 384

第10章 组合电路 384

10.1布尔代数和逻辑门 384

10.1.1组合电路 385

10.1.2真值表 385

10.1.3布尔代数 386

10.1.4布尔代数定理 387

10.1.5互补证明 388

10.1.6逻辑图 389

10.1.7其他表示方式 391

10.2组合分析 392

10.2.1布尔表达式和逻辑图 392

10.2.2真值表和布尔表达式 393

10.2.3两级电路 395

10.2.4无处不在的NAND 397

10.3组合设计 398

10.3.1范式 398

10.3.2三变量卡诺图 399

10.3.3四变量卡诺图 403

10.3.4对偶卡诺图 406

10.3.5无关条件 406

10.4组合设备 407

10.4.1视角 407

10.4.2复用器 408

10.4.3二进制译码器 409

10.4.4多路分配器 410

10.4.5加法器 410

10.4.6加法器/减法器 412

10.4.7算术逻辑单元 413

10.4.8 LG1层的抽象 419

本章小结 420

练习 420

第11章 时序电路 426

11.1锁存器与时钟触发器 426

11.1.1 SR锁存器 426

11.1.2钟控SR触发器 428

11.1.3主从SR触发器 429

11.1.4基本触发器 433

11.1.5 JK触发器 434

11.1.6 D触发器 435

11.1.7 T触发器 436

11.1.8激励表 437

11.2时序分析与设计 437

11.2.1时序分析问题 438

11.2.2预设置与清除 441

11.2.3时序设计 441

11.2.4一个时序设计问题 441

11.3计算机子系统 444

11.3.1寄存器 444

11.3.2总线 445

11.3.3内存子系统 446

11.3.4地址译码 449

11.3.5双端口寄存器组 453

本章小结 455

练习 455

第七部分 微代码(第2层) 460

第12章 计算机组成 460

12.1构建一个ISA3层机器 460

12.1.1 CPU数据区 460

12.1.2冯·诺依曼周期 463

12.1.3存储字节直接寻址指令 467

12.1.4总线协议 468

12.1.5存储字直接寻址指令 468

12.1.6加法立即数寻址指令 469

12.1.7装入字间接寻址指令 470

12.1.8算术右移指令 473

12.1.9 CPU控制区 474

12.2性能 476

12.2.1数据总线宽度和内存对齐 476

12.2.2内存对齐 480

12.2.3 n位计算机的定义 483

12.2.4高速缓存 484

12.2.5系统性能公式 490

12.2.6 RISC与CISC 491

12.3 MIPS机器 494

12.3.1寄存器组 494

12.3.2寻址方式 495

12.3.3指令集 498

12.3.4 MIPS的计算机组成 501

12.3.5流水线 505

12.4结论 512

12.4.1模型简化 512

12.4.2全局架构 513

本章小结 514

练习 514

编程题 517

附录Pep/9体系结构 519

部分练习参考答案 529

索引 543