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

  • 购买积分:15 如何计算积分?
  • 作  者:(美)J.斯坦利·沃法德(J.Standey Warford)著;龚奕利译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2015
  • ISBN:9787111507833
  • 页数:476 页
图书介绍:本书从逻辑门、微编码、指令集体系结构、操作系统、汇编、高阶语言和应用等层级,系统而全面地介绍了计算机系统、C++、信息表示、计算机体系结构、汇编语言、汇编级编译、语言翻译原理、进程管理、存储管理、组合电路、顺序电路、计算机组成。书后配有练习答案。本书全面而系统地介绍了计算机组成、汇编语言和计算机体系结构的核心概念。通过自顶向下的方法,引导读者探索不同规模的计算机系统以及抽象级。通过检查不同的抽象级如何彼此相关,来帮助读者了解计算机系统及其组件。

第一部分 应用层(第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硬件 8

1.2.1输入设备 9

1.2.2输出设备 11

1.2.3主存储器 12

1.2.4中央处理单元 13

1.3软件 13

1.3.1操作系统 14

1.3.2软件分析和设计 15

1.4数据库系统 16

1.4.1关系 17

1.4.2查询 18

1.4.3语言结构 19

总结 20

练习 21

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

第2章 C++++ 24

2.1变量 24

2.1.1 C++++编译器 24

2.1.2机器无关性 24

2.1.3 C++++的内存模型 25

2.1.4全局变量和赋值语句 26

2.1.5局部变量 28

2.2控制流 29

2.2.1 if/else语句 29

2.2.2 switch语句 30

2.2.3 while循环 30

2.2.4 do循环 31

2.2.5数组和for循环 31

2.3函数 32

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

2.3.2函数的例子 33

2.3.3传引用调用的参数 34

2.4递归 36

2.4.1阶乘函数 37

2.4.2递归的思考方式 39

2.4.3递归加法 40

2.4.4二项式系数函数 41

2.4.5逆转数组元素顺序 45

2.4.6汉诺塔 45

2.4.7相互递归 48

2.4.8递归的成本 48

2.5动态内存分配 49

2.5.1指针 49

2.5.2结构 50

2.5.3链式数据结构 51

总结 52

练习 53

问题 54

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

第3章 信息的表示 58

3.1无符号二进制表示 58

3.1.1二进制存储器 58

3.1.2整数 59

3.1.3基本转换 60

3.1.4无符号整数的范围 61

3.1.5无符号加法 62

3.1.6进位位 62

3.2补码二进制表示 63

3.2.1补码的表数范围 65

3.2.2基数转换 66

3.2.3数轴 66

3.2.4溢出位 68

3.2.5负数和零位 69

3.3二进制运算 69

3.3.1逻辑运算符 69

3.3.2寄存器传送语言 70

3.3.3算术运算符 70

3.3.4循环移位运算符 72

3.4十六进制和符号表示 72

3.4.1十六进制 72

3.4.2基数转换 73

3.4.3字符 75

3.5浮点数表示 77

3.5.1二进制小数 77

3.5.2余码表示 78

3.5.3隐藏位 79

3.5.4特殊值 80

3.5.5 IEEE 754浮点数标准 83

3.6跨层的表示方法 85

3.6.1另一种表示 87

3.6.2模型 88

总结 90

练习 90

问题 95

第4章 计算机体系结构 97

4.1硬件 97

4.1.1中央处理单元 98

4.1.2主存储器 98

4.1.3输入设备 99

4.1.4输出设备 99

4.1.5数据和控制 100

4.1.6指令格式 100

4.2直接寻址 102

4.2.1停止指令 102

4.2.2装入指令 103

4.2.3存储指令 103

4.2.4加法指令 104

4.2.5减法指令 105

4.2.6与和或指令 105

4.2.7按位取反和取负指令 106

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

4.2.9字符输入和输出指令 108

4.3冯·诺依曼机器 109

4.3.1冯·诺依曼执行周期 109

4.3.2一个字符输出程序 110

4.3.3冯·诺依曼漏洞 113

4.3.4一个字符输入程序 113

4.3.5十进制转换为ASCII 113

4.3.6一个修改自身的程序 114

4.4 ISA3层编程 115

4.4.1只读内存 117

4.4.2 Pep/8操作系统 117

4.4.3使用Pep/8系统 119

总结 119

练习 120

问题 121

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

第5章 汇编语言 124

5.1汇编程序 124

5.1.1指令助记符 124

5.1.2伪操作 126

5.1.3 .ASCII和.END伪操作 126

5.1.4汇编器 127

5.1.5 .BLOCK伪操作 128

5.1.6 .WORD和.BYTE伪操作 129

5.1.7使用Pep/8汇编器 129

5.1.8交叉汇编器 130

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

5.2.1立即数寻址 131

5.2.2 DECI、 DECO和BR指令 131

5.2.3 STRO指令 133

5.2.4解释位模式 134

5.2.5反汇编器 135

5.3符号 137

5.3.1带符号的程序 137

5.3.2一个冯·诺依曼示例 138

5.4从HOL6层翻译 139

5.4.1 cout语句 139

5.4.2变量和类型 140

5.4.3全局变量和赋值语句 141

5.4.4类型兼容 143

5.4.5 Pep/8符号跟踪器 144

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

5.4.7常量和.EQUATE 147

5.4.8指令和数据的放置 149

总结 149

练习 150

问题 152

第6章 编译到汇编层 155

6.1栈寻址和局部变量 155

6.1.1栈相对寻址 155

6.1.2访问运行时栈 156

6.1.3局部变量 158

6.2转移指令和控制流 159

6.2.1翻译if语句 160

6.2.2优化编译器 161

6.2.3翻译if/else语句 162

6.2.4翻译while循环 163

6.2.5翻译do循环 164

6.2.6翻译for循环 165

6.2.7面条代码 166

6.2.8早期语言中的控制流 168

6.2.9结构化编程定律 169

6.2.10 goto争论 169

6.3函数调用和参数 171

6.3.1翻译函数调用 171

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

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

6.3.4翻译非空函数调用 178

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

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

6.3.7翻译布尔类型 186

6.4变址寻址和数组 188

6.4.1翻译全局数组 189

6.4.2翻译局部数组 191

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

6.4.4翻译switch语句 198

6.5动态内存分配 200

6.5.1翻译全局指针 200

6.5.2翻译局部指针 204

6.5.3翻译结构 207

6.5.4翻译链式数据结构 210

总结 214

练习 214

问题 215

第7章 语言翻译原理 222

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

7.1.1连接 223

7.1.2语言 223

7.1.3语法 224

7.1.4 C++++标识符的语法 225

7.1.5有符号整数的语法 226

7.1.6上下文相关的语法 227

7.1.7语法分析问题 227

7.1.8表达式的语法 228

7.1.9 C++++语法的一部分 229

7.1.10 C++++的上下文相关性 232

7.2有限状态机 233

7.2.1用FSM来分析标识符 234

7.2.2简化的有限状态机 234

7.2.3非确定性有限状态机 234

7.2.4具有空转移的状态机 235

7.2.5语言符号识别器 237

7.3实现有限状态机 239

7.3.1查找表分析器 240

7.3.2直接编码分析器 241

7.3.3输入缓冲区类 244

7.3.4多token分析器 244

7.4代码生成 249

7.4.1语言翻译器 249

7.4.2语法分析器特性 259

总结 260

练习 260

问题 262

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

第8章 进程管理 266

8.1装载器 266

8.1.1 Pep/8操作系统 266

8.1.2 Pep/8装载器 267

8.1.3程序的终止 269

8.2陷阱 269

8.2.1陷阱机制 269

8.2.2 RETTR指令 270

8.2.3陷阱处理程序 271

8.2.4陷阱寻址方式断言 273

8.2.5陷阱操作数地址计算 274

8.2.6空操作陷阱处理程序 277

8.2.7 DECI陷阱处理程序 277

8.2.8 DECO陷阱处理程序 282

8.2.9 STRO陷阱处理程序和OS向量 284

8.3并发进程 286

8.3.1异步中断 286

8.3.2操作系统中的进程 287

8.3.3多处理 288

8.3.4并发处理程序 289

8.3.5临界区 290

8.3.6第一次尝试实现互斥 291

8.3.7第二次尝试实现互斥 291

8.3.8 Peterson互斥算法 292

8.3.9信号量 293

8.3.10带信号量的临界区 295

8.4死锁 296

8.4.1资源分配图 296

8.4.2死锁策略 298

总结 298

练习 299

问题 302

第9章 存储管理 305

9.1内存分配 305

9.1.1单道程序设计 305

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

9.1.3逻辑地址 306

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

9.1.5分页 310

9.2虚拟内存 312

9.2.1大程序的行为 312

9.2.2虚拟内存 313

9.2.3按需取页 315

9.2.4替换页 315

9.2.5页替换算法 316

9.3文件管理 318

9.3.1磁盘驱动器 318

9.3.2文件抽象 319

9.3.3分配技术 319

9.4错误检测和纠错码 321

9.4.1错误检测码 321

9.4.2编码要求 322

9.4.3纠正一位错编码 324

9.5 RAID存储系统 325

9.5.1 RAID 0级:非冗余条带化 326

9.5.2 RAID 1级:镜像 326

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

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

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

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

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

总结 331

练习 331

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

第10章 组合电路 334

10.1布尔代数和逻辑门 334

10.1.1组合电路 335

10.1.2真值表 335

10.1.3布尔代数 336

10.1.4布尔代数定理 337

10.1.5互补证明 338

10.1.6逻辑图 339

10.1.7其他表达方式 341

10.2组合分析 341

10.2.1布尔表达式和逻辑图 342

10.2.2真值表和布尔表达式 343

10.2.3两级电路 345

10.2.4无所不在的NAND 346

10.3组合设计 347

10.3.1范式 348

10.3.2三变量卡诺图 349

10.3.3四变量卡诺图 353

10.3.4对偶卡诺图 355

10.3.5无关条件 356

10.4组合设备 356

10.4.1视角 356

10.4.2复用器 358

10.4.3二进制译码器 358

10.4.4多路分配器 359

10.4.5加法器 359

10.4.6加法器/减法器 361

10.4.7算术逻辑单元 362

10.4.8 LG1层的抽象 367

总结 368

练习 368

第11章 时序电路 374

11.1锁存器和时钟触发器 374

11.1.1 SR锁存器 374

11.1.2钟控SR触发器 376

11.1.3主-从SR触发器 377

11.1.4基本触发器 380

11.1.5 JK触发器 381

11.1.6 D触发器 382

11.1.7 T触发器 383

11.1.8激励表 384

11.2时序分析和设计 384

11.2.1时序分析问题 385

11.2.2预设置和清除 387

11.2.3时序设计 387

11.2.4一个时序设计问题 388

11.3计算机子系统 390

11.3.1寄存器 390

11.3.2总线 391

11.3.3内存子系统 392

11.3.4地址译码 396

11.3.5双端口寄存器体 400

总结 401

练习 402

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

第12章 计算机组成 406

12.1构造ISA3层机器 406

12.1.1中央处理单元 406

12.1.2冯·诺依曼周期 408

12.1.3实现存储字节指令 412

12.1.4实现加法指令 412

12.1.5实现装入指令 413

12.1.6实现算术右移指令 415

12.2性能问题 416

12.2.1总线宽度 417

12.2.2特殊的硬件单元 419

12.2.3 3个优化领域 421

12.2.4微代码 423

12.3 MIPS机器 425

12.3.1装入/存储体系结构 425

12.3.2指令集 427

12.3.3高速缓存 431

12.3.4 MIPS的计算机组成 437

12.3.5流水线 439

12.4结论 445

12.4.1模型简化 446

12.4.2更大的景象 446

总结 447

练习 448

附录 Pep/8体系结构 451

部分练习参考答案 457

索引 468