1.1 计算机发展历程
计算机的发展通常以核心器件的更新换代为标志,共经历了四代:
| 代次 | 时间 | 逻辑元件 | 代表机型 | 特点 |
|---|---|---|---|---|
| 第一代 | 1946—1957 | 电子管 | ENIAC | 体积大、耗电高、机器语言 |
| 第二代 | 1958—1964 | 晶体管 | IBM 7000 | 出现汇编与高级语言、操作系统雏形 |
| 第三代 | 1965—1971 | 中小规模集成电路 | IBM 360 | 系列兼容、微程序控制 |
| 第四代 | 1972—至今 | 大规模/超大规模集成电路 | 微处理器 PC | 并行处理、流水线、RISC |
摩尔定律:集成电路芯片上集成的晶体管数目大约每 18~24 个月翻一番,性能也随之提升一倍。该定律由 Intel 创始人 Gordon Moore 提出,近年已逐渐放缓。
1.2 计算机系统层次结构
从使用者的角度看,计算机系统是一个由多级抽象构成的层次结构,自上而下可分为:
- 高级语言层:C、Java 等高级语言,由编译程序翻译到下层。
- 汇编语言层:助记符表示的指令,由汇编程序翻译为机器语言。
- 操作系统层:提供系统调用与资源管理,是软硬之间的接口。
- 指令集体系结构层(ISA):机器语言指令集合,是软件与硬件的交界面。
- 微体系结构层:CPU 内部数据通路与控制器的具体实现。
- 数字逻辑层:由门电路、触发器等逻辑单元构成。
虚拟机器 vs 实际机器
层次结构中,由软件实现的层级(如高级语言层、汇编层)称为虚拟机器;由硬件/固件实现的层级(微体系结构层及以下)称为实际机器。ISA 是软硬分界线。翻译与解释:翻译是先把上一级程序整个翻译成下一级程序再执行(如编译);解释是每遇到一条上一级指令就翻译并执行一条(如解释器)。两者可结合使用。
1.3 计算机硬件组成
冯·诺依曼计算机由五大部件组成:运算器、控制器、存储器、输入设备、输出设备。其核心思想是"存储程序"——程序和数据以同等地位存放在存储器中,按地址访问,自动执行。
- 运算器(ALU):完成算术与逻辑运算,含累加器 ACC、数据缓冲寄存器等。
- 控制器(CU):取出指令、产生控制信号,协调各部件工作。
- 存储器:存放程序和数据,按地址存取。
- 输入/输出设备:完成人机交互与数据交换。
现代计算机通常以总线连接各部件,运算器和控制器集成在 CPU 中。存储程序、程序控制(取指—译码—执行)是冯·诺依曼思想的两条主线。
1.4 性能指标
主频 f
CPU 的时钟频率,单位 Hz、MHz、GHz。时钟周期 T = 1/f,是 CPU 最小时间单位。CPI (Cycles Per Instruction)
执行一条指令所需的平均时钟周期数。MIPS (Million Instructions Per Second)
每秒执行百万条指令。MIPS = 主频(MHz) / CPI。FLOPS
每秒执行的浮点运算次数,常用于科学计算性能衡量。执行时间
程序执行时间 = 指令数 × CPI × 时钟周期 T = (指令数 × CPI) / 主频 f。关键公式
| 指标 | 公式 | 说明 |
|---|---|---|
| 时钟周期 T | T = 1 / f | 主频的倒数 |
| 总时钟周期数 | N = Σ (CPIᵢ × Iᵢ) | Iᵢ 为第 i 类指令条数 |
| 平均 CPI | CPI = N / Σ Iᵢ | 总周期 / 总指令数 |
| 执行时间 | t = N / f | 总周期数 / 主频 |
| MIPS | MIPS = f(MHz) / CPI | 主频除以 CPI |
注意:MIPS 对不同指令集难比较(同样任务指令数不同);同机不同程序 MIPS 也不能简单比较性能。基准测试程序(如 SPEC)更客观。