Introduction to Computer Organization
书籍定位
Introduction to Computer Organization 是一本深入讲解计算机底层工作原理的经典教材,作者 Robert G. Plantz 拥有多年计算机体系结构教学经验。本书以 x86-64 架构为主线,通过 C 语言和汇编语言的对比讲解,帮助读者理解高级语言代码如何转化为机器指令,以及在硬件层面如何执行。从位运算、内存管理到 CPU 流水线,本书系统性地构建了计算机体系结构的完整知识框架。
核心内容
全书按照从底层到高层、从硬件到软件的顺序,系统讲解计算机组织的各个方面:
第一部分:数字逻辑与数据表示
- 数制系统:二进制、八进制、十六进制及其转换
- 位运算:与、或、非、异或、移位操作及应用场景
- 整数表示:无符号整数、有符号整数、补码表示法
- 整数运算:加法器设计、溢出检测
- 浮点数表示:IEEE 754 标准、单精度与双精度
- 浮点数运算:规格化、舍入模式、特殊值处理
- 字符编码:ASCII、Unicode、UTF-8 详解
第二部分:汇编语言与指令集
- x86-64 架构概述:寄存器组、寻址模式
- 汇编语言基础:指令格式、操作数类型
- 数据传送指令:mov、lea 及其变体
- 算术运算指令:add、sub、imul、idiv 等
- 逻辑与位操作指令:and、or、xor、not、移位指令
- 控制流指令:条件跳转、循环、过程调用
- 栈操作与调用约定:参数传递、局部变量、返回地址
- 从 C 到汇编:编译器优化、内联汇编
第三部分:处理器架构
- CPU 基本结构:运算器、控制器、寄存器堆
- 数据通路设计:单周期、多周期数据通路
- 控制单元设计:硬连线控制、微程序控制
- 指令流水线:流水线阶段、冒险(数据、控制、结构)
- 分支预测:静态预测、动态预测、分支目标缓冲
- 乱序执行:保留站、重排序缓冲区、寄存器重命名
- 缓存架构:直接映射、组相联、全相联缓存
- 缓存一致性:MESI 协议、伪共享问题
第四部分:内存系统
- 内存层次结构:寄存器、缓存、主存、外存
- 虚拟内存:页表、页错误、TLB
- 地址翻译:分页、分段、段页式
- 内存分配:堆、栈、内存碎片管理
- 垃圾回收:标记-清除、复制、分代回收
- 内存保护:权限位、访问控制
- DMA 与 I/O 内存映射
第五部分:I/O 系统与总线
- I/O 设备类型:块设备、字符设备、网络设备
- I/O 控制方式:程序查询、中断、DMA、通道
- 中断系统:中断向量、中断优先级、中断嵌套
- 总线架构:系统总线、PCI、PCIe、USB
- 总线仲裁:集中式、分布式仲裁
- 设备驱动程序结构
第六部分:性能优化与并行
- 性能指标:IPC、CPI、加速比
- Amdahl 定律与 Gustafson 定律
- 多核架构:SMP、NUMA、众核处理器
- 线程级并行:OpenMP、Pthreads
- 向量处理:SIMD、GPU 架构
- 功耗管理:DVFS、电源门控
适用读者
本书适合以下人群:
- 计算机科学专业本科生、研究生的计算机组成原理课程学习
- 希望深入理解计算机底层工作原理的自学者
- 系统程序员、编译器开发者、嵌入式工程师
- 准备面试需要复习计算机体系结构的求职者
- 高性能计算、底层优化相关领域的研究人员
价值亮点
本书的独特优势:
- 实践导向:大量 C 语言与汇编语言对照示例,抽象概念具体化
- x86-64 主流架构:贴近现代实际使用的处理器架构,学以致用
- 由浅入深:从数字逻辑到高级并行架构,知识梯度合理
- 软硬件结合:既讲硬件实现也讲软件优化,培养系统思维
- 习题丰富:每章配有大量习题,适合教学或自学检验
- 最新内容:涵盖多核、GPU、功耗管理等现代计算机体系结构前沿
阅读建议
建议具备 C 语言基础再阅读本书,了解基本的编程概念有助于理解汇编语言和系统调用。书中涉及大量数字逻辑和电路基础知识,如果之前没有接触过数字电路,建议先补充相关基础知识。每章后的习题一定要动手做,只有通过练习才能真正掌握。建议配合模拟器(如 GEM5、QEMU)或真实的 x86-64 机器进行实验,将理论知识与实际操作结合。完成本书后,可以继续深入学习操作系统原理、编译原理、计算机体系结构的高级课程。