- 豆瓣读书:https://book.douban.com/subject/26604008/
- 《计算机组成与设计 - 硬件/软件接口》,Computer Organization and Design - The Hardware/Software Interface,原书第五版。
1.1 引言
- 计算应用的分类
- 个人计算机
- 服务器
- 嵌入式计算机
- 后 PC 时代的计算应用分类
- 个人移动设备
- 云计算
- 软件即服务
- 本书各章将贯穿性能问题,作为计算机系统的设计目标和衡量方法,影响着几十年来计算机技术的发展。影响程序性能的因素包括以下几点:算法的有效性,构建程序并翻译为机器指令的软件系统,执行机器指令的有效性。其中最后一条是本书关注的重点,它将被分解为几个方面逐步讲解。
1.2 计算机系统结构中的 8 个伟大思想
- 面向摩尔定律的设计
- 使用抽象简化设计
- 着重优化大概率事件
- 通过并行提高性能
- 通过流水线提高性能
- 通过预测提高性能
- 存储器层次
- 通过冗余提高可靠性
1.3 程序概念入门
- 使用高级编程语言的优点
- 可以使程序员以更自然的语言来思考问题
- 提高程序员的生产率
- 提高程序对于不同体系结构硬件的可移植性
1.4 硬件概念入门
- 计算机硬件系统 4 大功能:输入数据、输出数据、处理数据、存储数据。
- 数据通路:处理器中执行算术操作的部分。
- 控制器:处理器中根据程序的指令指挥数据通路、存储器和 I/O 设备的部分。
1.5 处理器和存储器制造技术
- 晶体管:一种由电信号控制的简单开关。
- 晶圆:厚度不超过 0.1 英寸的硅锭片,用来制造芯片。
1.6 性能
- 执行时间是唯一有效且不可推翻的性能度量方法。
- CPI(clock cycle per instruction):执行每条指令所需的时钟周期数的平均值。
- 一个程序的 CPU 时钟周期数 = 程序的指令数 x CPI
- 一个程序的 CPU 执行时间 = 一个程序的 CPU 时钟周期数 x 时钟周期时间
- 一个程序的 CPU 执行时间 = 一个程序的 CPU 时钟周期数 / 时钟频率
- 一个程序的 CPU 执行时间 = 一个程序的指令数 x CPI x 时钟周期时间
- 一个程序的 CPU 执行时间 = 一个程序的指令数 x CPI / 时钟频率
1.7 功耗墙
- 动态能耗:晶体管开关(状态翻转)过程中损耗的能耗。
- 静态能耗:维持晶体管状态时的泄露电流造成的损耗。
1.8 沧海巨变:从单处理器向多处理器转变
- 多核处理器的设计提高了处理器的整体性能,但也给程序开发带来了新的挑战。
1.9 实例:Intel Core i7 基准
- 用于测量计算机性能的基准测试程序:http://www.spec.org/
1.10 谬误与陷阱
- 陷阱:在改进计算机的某个方面时期望总性能的提高与改进大小成正比。
- 要注意改进的大小,在计算机运算中所占的比例。
- 谬误:利用率低的计算机功耗低。
- 谬误:面向性能的设计和面向能量效率的设计具有不相关的目标。
- 陷阱:用性能公式的一个子集去度量性能。
1.11 本章小结
1.12 历史观点和拓展阅读
1.13 练习题
廖杰良 - 2019-6-18