章节概述
本章从计算机硬件组成、指令系统、存储体系和流水线技术四个维度,系统阐述计算机底层原理。系统架构设计师必须理解硬件与操作系统的交互机制,才能规避安全与性能隐患。核心聚焦于冯·诺依曼体系结构、CISC/RISC 对比、Cache 映射机制与流水线性能计算。
知识结构框架
- 1.1 计算机系统组成
- 1.1.1 计算机硬件的组成(控制器、运算器、主存、辅存、输入/输出设备)
- 1.1.2 计算机系统结构的分类(存储程序概念、Flynn 分类法)
- 1.1.3 复杂指令集(CISC)与精简指令集(RISC)
- 1.1.4 总线(内部/外部总线,地址/数据/控制总线)
- 1.2 存储器系统
- 1.2.1 主存储器(RAM/ROM、编址方法)
- 1.2.2 辅助存储器(磁带、硬盘结构)
- 1.2.3 Cache 存储器(映射机制、替换算法、写操作)
- 1.3 流水线
- 1.3.1 流水线周期
- 1.3.2 流水线执行时间(理论公式与实际公式)
- 1.3.3 流水线吞吐率
- 1.3.4 流水线加速比
核心概念定义
冯·诺依曼体系结构
1946 年由冯·诺依曼提出,核心为"存储程序"概念:计算机由运算器、存储器、控制器、输入设备、输出设备五大部件组成;内部采用二进制表示指令和数据;程序和数据预先存入存储器后启动执行。早期以运算器为中心,现代转向以存储器为中心。
Flynn 分类法
1966 年 Michael J. Flynn 按指令流和数据流的多倍性对计算机系统分类:
- SISD(单指令流单数据流):传统单处理器,顺序执行
- SIMD(单指令流多数据流):并行处理机/矩阵处理机
- MISD(多指令流单数据流):实际很少见,流水线计算机有文献归为此类
- MIMD(多指令流多数据流):多核处理器、多处理机系统
CISC 与 RISC
| 特性 | CISC | RISC |
|---|---|---|
| 指令数量 | 100~250 条,数量众多 | 少,仅保留高频指令 |
| 寻址方式 | 5~20 种 | 寄存器/立即数/相对寻址 |
| 指令长度 | 变长 | 固定长度 |
| 控制方式 | 微程序控制为主 | 硬布线逻辑为主 |
| 内存访问 | 指令可直接处理主存数据 | 仅 LOAD/STORE 访存 |
| 寄存器数量 | 较少 | 32 个以上 |
| 流水线 | 难以高效利用 | 单周期执行,流水线友好 |
局部性原理
程序执行呈现局部性规律,是 Cache 和多级存储体系的理论基础:
- 时间局部性:某指令一旦执行,不久后可能再次执行(如循环)
- 空间局部性:访问某存储单元后,其附近单元也将被访问(如顺序执行)
Cache 三种映射方式
| 映射方式 | 映射规则 | 地址构成 | 冲突率 | 灵活性 |
|---|---|---|---|---|
| 直接映射 | 主存每页只能复制到固定 Cache 页 | 区号+页号+页内地址 | 高 | 低 |
| 全相联映射 | 主存每页可映像到 Cache 任一页 | 主存页标记+页内地址 | 低 | 高(速度慢) |
| 组相联映射 | 组间直接映射,组内全相联 | 区号+组号+页号+页内地址 | 中 | 中 |
关键公式与模型
Cache 平均周期(命中率公式)
t₃ = t₁ × h + t₂ × (1 - h)
其中 t₁ = Cache 周期时间,t₂ = 主存周期时间,h = 访问命中率,(1-h) = 失效率
t₃ = t₁ × h + t₂ × (1 - h)
其中 t₁ = Cache 周期时间,t₂ = 主存周期时间,h = 访问命中率,(1-h) = 失效率
磁盘访问时间
磁盘访问时间 = 寻道时间 + 旋转延迟时间
定位磁道 + 平均旋转半圈到目标扇区
磁盘访问时间 = 寻道时间 + 旋转延迟时间
定位磁道 + 平均旋转半圈到目标扇区
流水线执行时间(理论公式)
理论流水线执行时间 = 第1条指令的完整时间 + (n - 1) × 流水线周期
= (t₁ + t₂ + ... + tₖ) + (n - 1) × max(t₁, t₂, ..., tₖ)
流水线周期 = 最长阶段耗时;考试 80%+ 概率用理论公式
理论流水线执行时间 = 第1条指令的完整时间 + (n - 1) × 流水线周期
= (t₁ + t₂ + ... + tₖ) + (n - 1) × max(t₁, t₂, ..., tₖ)
流水线周期 = 最长阶段耗时;考试 80%+ 概率用理论公式
流水线执行时间(实际公式)
实际流水线执行时间 = k × 流水线周期 + (n - 1) × 流水线周期
= (k + n - 1) × 流水线周期
将每阶段统一为流水线周期;仅当理论公式结果无对应选项时使用
实际流水线执行时间 = k × 流水线周期 + (n - 1) × 流水线周期
= (k + n - 1) × 流水线周期
将每阶段统一为流水线周期;仅当理论公式结果无对应选项时使用
流水线吞吐率(TP)
TP = 指令条数 / 流水线总执行时间
单位时间内完成的任务数量
TP = 指令条数 / 流水线总执行时间
单位时间内完成的任务数量
流水线加速比(Speedup)
S = T₀ / Tₖ
T₀ = 不使用流水线的顺序执行时间,Tₖ = 使用流水线的执行时间
S = T₀ / Tₖ
T₀ = 不使用流水线的顺序执行时间,Tₖ = 使用流水线的执行时间
SVG 图表参考
- 图1-1 计算机基本组成框图
- 图1-2 硬盘信息分布层次
- 图1-3 直接映射地址组成
- 图1-4 直接映射规则
- 图1-5 全相联映射地址
- 图1-6 全相联映射组织
- 图1-7 组相联映射
- 图1-8 组相联映射地址组织
- 图1-9 流水线示意
考试要点
- Flynn 分类法四类的典型代表系统必考
- CISC vs RISC 对比表是高频考点
- Cache 三种映射方式的地址构成与标记位数计算
- 流水线执行时间计算:优先使用理论公式,无匹配项再用实际公式
- Cache 命中率与平均周期的综合计算题
- Cache 替换算法(随机/FIFO/LRU)与写操作(写直达/写回/标记法)