Appearance
考点清单
- [x] 计算机硬件组成(5大部件/冯·诺依曼结构)
- [x] CPU 组成(运算器 ALU+AC+DR+PSW / 控制器 IR+PC+AR+ID)
- [x] CPU 功能与频率(主频=外频×倍频)
- [x] 指令系统(组成/执行过程/寻址方式 / CISC vs RISC)
- [x] Flynn 分类法(SISD/SIMD/MISD/MIMD)
- [x] 指令流水线(周期/执行时间/吞吐率/加速比 / 超流水线/超标量/VLIW)
- [x] 存储体系与分级存储(Cache/主存/辅存 / 局部性原理)
- [x] Cache 地址映射(直接/全相联/组相联)+ 替换算法
- [x] 磁盘结构与调度算法(FCFS/SSTF/SCAN/CSCAN)
- [x] 总线结构(内部/系统/外部总线 / 数据+地址+控制总线)
- [x] 校验码(奇偶校验/海明码/CRC)
- [x] I/O 编址(独立编址 vs 统一编址)
- [x] 数据交互方式(程序查询/中断/DMA)
笔记
一、计算机硬件组成 ★
计算机基本硬件系统由运算器、控制器、存储器、输入设备、输出设备5大部件组成。
运算器 + 控制器 = CPU(中央处理单元),是硬件系统核心。存储器分为内部(速度快容量小)和外部(容量大速度慢)。输入输出设备合称外设。
冯·诺依曼结构:将计算机硬件划分为上述 5 部分。DSP 常采用哈佛体系结构(程序和数据分开存储)。
专用处理器: GPU(数百/数千核并行计算)、DSP(实时数字信号处理)、FPGA(现场可编程门阵列)。
二、CPU 组成与功能 ★
运算器
| 组件 | 功能 |
|---|---|
| ALU(算术逻辑单元) | 执行所有算术运算和逻辑运算 |
| AC(累加寄存器) | 存放运算结果或源操作数 |
| DR(数据缓冲寄存器) | 暂存来自内存的指令或数据 |
| PSW(状态条件寄存器) | 保存指令执行后的条件码(进位/溢出/零标志等) |
控制器
| 组件 | 功能 |
|---|---|
| IR(指令寄存器) | 暂存 CPU 正在执行的指令 |
| PC(程序计数器) | 存放下一条要执行指令的地址 |
| AR(地址寄存器) | 保存 CPU 当前访问的内存地址 |
| ID(指令译码器) | 分析指令操作码,识别操作类型 |
CPU 五大功能:程序控制、操作控制、时间控制、数据处理(最根本)、中断响应。
CPU 频率:主频 = 外频 × 倍频。外频是系统总线频率,倍频是主频与外频的比值。
速度排名:寄存器组 > Cache > 内存 > Flash。
三、指令系统 ★
指令组成与执行
一条指令 = 操作码(决定操作类型)+ 地址码(操作数地址)。整条指令以二进制编码存放。
执行三阶段:取指令(PC→地址总线,从内存取)→ 分析指令(ID 解析操作码)→ 执行指令。
寻址方式
| 方式 | 说明 | 特点 |
|---|---|---|
| 顺序寻址 | 一条接一条顺序执行 | 下一条地址由 PC 给出 |
| 跳跃寻址 | 下条地址由本条指令直接给出 | PC 内容相应改变 |
操作数寻址方式:
| 方式 | 说明 | 速度 |
|---|---|---|
| 立即寻址 | 地址码直接包含操作数本身 | — |
| 直接寻址 | 地址码是操作数的内存地址 | — |
| 间接寻址 | 地址码指向存有操作数地址的单元 | 慢 |
| 寄存器寻址 | 操作数在寄存器中 | 最快 |
| 基址寻址 | 基址寄存器 + 形式地址 → 有效地址 | 用于静态数据 |
| 变址寻址 | 变址寄存器 + 形式地址 → 有效地址 | 用于数组/动态数据 |
CISC vs RISC ★
| 对比 | CISC(复杂指令集) | RISC(精简指令集) |
|---|---|---|
| 指令数量 | 多 | 少 |
| 指令长度 | 可变 | 固定 |
| 实现方式 | 微程序控制 | 组合逻辑(硬件实现) |
| 寻址方式 | 多样 | 少 |
| 寄存器 | 少 | 大量寄存器 |
| 执行时间 | 差别大 | 多数单周期 |
四、Flynn 分类法 ★
按指令流和数据流的多倍性将计算机分为 4 类。
| 分类 | 说明 | 典型代表 |
|---|---|---|
| SISD | 单指令流单数据流 | 传统单处理器、冯·诺依曼机器 |
| SIMD | 单指令流多数据流 | 阵列处理机、并行处理机 |
| MISD | 多指令流单数据流 | 极少见(有文献将流水线归为此类) |
| MIMD | 多指令流多数据流 | 多核计算机、多处理机、超级计算机 |
当前主流多核计算机属于 MIMD。
五、指令流水线 ★
将指令分成不同段,每段由不同部件并行处理。
RISC 流水线三种技术:
| 技术 | 核心理念 | 本质 |
|---|---|---|
| 超流水线 | 细化流水、增加级数、提高主频 | 时间换空间 |
| 超标量 | 多条流水线同时执行多个处理 | 空间换时间 |
| 超长指令字(VLIW) | 软件调度并行,简化硬件 | 软件发挥主要作用 |
流水线核心公式:
| 指标 | 公式 |
|---|---|
| 流水线周期 | 各段中执行时间最长的段的时间 |
| 执行时间 | 1条指令总执行时间 +(总指令条数 - 1)× 流水线周期 |
| 吞吐率 | 指令条数 / 流水线执行时间 |
| 加速比 | 不使用流水线执行时间 / 使用流水线执行时间 |
六、存储系统 ★
分级存储
目的:解决存储容量、成本和速度之间的矛盾。按 CPU 物理距离分 4 层(由近→远):片上缓存 → 片外缓存 → 主存(内存)→ 外存。速度依次降低,容量依次提高。
两级存储:Cache-主存、主存-辅存(虚拟存储体系)。
局部性原理:
- 时间局部性:刚被访问的数据近期可能再次被访问
- 空间局部性:相邻地址的数据可能被连续访问
Cache 地址映射 ★
在 CPU 工作时,送出的是主存地址,需转换为 Cache 地址,称为地址映像,由硬件自动完成。
| 映射方式 | 特点 | 块冲突概率 |
|---|---|---|
| 直接映像 | 主存块与 Cache 块号相同才能命中,变换简单但不灵活 | 最高 |
| 全相联映像 | 主存任意块可调入 Cache 任意块,变换复杂速度慢 | 最低 |
| 组相联映像 | 组间直接映像 + 组内全相联映像,前两者折中 | 中 |
块冲突概率:直接映像 > 组相联映像 > 全相联映像。
替换算法
| 算法 | 说明 |
|---|---|
| 随机替换 | 随机选择被替换块 |
| 先进先出(FIFO) | 替换最先进入 Cache 的块 |
| 近期最少使用(LRU) | 替换近期最少使用的块 |
| 优化替换 | 先执行一次程序统计替换情况,第二次用最优方式 |
命中率计算
平均访问时间 = 命中率 × Cache 访问时间 +(1 - 命中率)× 主存访问时间。
磁盘结构与调度算法 ★
磁盘三大要素:磁头(Head)、柱面(Cylinder,所有盘面同位置磁道集合)、扇区(Sector,最小存储单元)。
| 算法 | 说明 | 特点 |
|---|---|---|
| FCFS(先来先服务) | 按请求顺序调度 | 公平但效率低 |
| SSTF(最短寻道时间优先) | 离当前磁道最近的请求优先 | 可能产生"饥饿" |
| SCAN(扫描/电梯算法) | 磁头双向移动到底才掉头 | 与电梯类似 |
| CSCAN(单向扫描) | 只做单向移动 | 更均匀的等待时间 |
七、总线结构 ★
| 层级 | 作用域 | 关键特征 |
|---|---|---|
| 内部总线(片内) | 芯片内部 | 高带宽、低延迟、不对外开放 |
| 系统总线(板级) | 主板+扩展槽 | 决定内存最大容量,三总线并行 |
| 外部总线(设备级) | 机箱外设 | 热插拔、即插即用 |
系统总线"三驾马车":
| 总线 | 方向 | 作用 |
|---|---|---|
| 数据总线 | 双向 | 传输数据,宽度 = 字长倍数 |
| 地址总线 | 单向 | 传输地址,宽度决定寻址空间 |
| 控制总线 | — | 传输控制信号(读/写/中断/时钟等) |
八、校验码 ★
码距:两个编码之间至少需要改变的位数。码距越大,检错纠错能力越强。
| 校验码 | 能力 | 关键特性 |
|---|---|---|
| 奇偶校验 | 检错(仅奇数位) | 增加 1 位校验位使 1 的个数为奇/偶,码距=2,不能纠错 |
| 海明码 | 检错 + 纠错(1位) | 校验位在 2 的幂次方位置(1,2,4,8...),公式 2^k ≥ n+k+1 |
| CRC | 检错 | 模 2 除法(异或),只能检错不能纠错,约定生成多项式 G(x) |
海明码解题流程:确定校验位数量 k(2^k ≥ n+k+1)→ 校验位放 2 的幂次方位置 → 按位负责关系计算各校验位(偶校验)→ 写出编码。
CRC 解题流程:原始信息后补 r 个 0(r = G(x) 最高次)→ G(x) 转二进制除数 → 模 2 除法得余数 → 拼接发送。
九、输入/输出技术 ★
I/O 编址方式
| 对比 | 独立编址(I/O 映射) | 统一编址(内存映射) |
|---|---|---|
| 地址空间 | 内存+I/O 两个独立空间 | 统一地址空间 |
| 指令 | 专用 I/O 指令(IN/OUT) | 通用内存访问指令 |
| 优点 | 易辨认、互不干扰 | 指令丰富灵活 |
| 缺点 | 指令功能有限 | 内存地址不连续 |
| 典型 | Intel x86 | ARM、嵌入式 |
数据交互三种方式 ★
| 方式 | CPU 参与度 | 效率 | 机制 |
|---|---|---|---|
| 程序查询 | 全程参与 | 最低 | CPU 主动轮询设备状态 |
| 程序中断 | 传输后处理 | 中 | 设备就绪后主动通知CPU |
| DMA | 仅初始化 | 最高 | DMA 控制器接管总线,直接设备↔内存 |
中断 vs DMA 响应时机:
- CPU 响应中断请求:在一条指令执行结束时
- CPU 响应DMA请求:在一个总线周期结束后
DMA 方式数据传输整个过程由 DMA 控制器完成,不需要 CPU 执行程序指令来传送数据。