计算机组成原理
→ 返回计算机基础
计算机组成原理研究计算机各硬件部件的功能、结构及相互关系,是理解程序如何在硬件上运行的基础。
冯·诺依曼体系结构
现代计算机的基础模型,由五大部件组成:
┌──────────────────────────────────────────────┐
│ 运算器(ALU) │
│ 控制器(CU) │ ← CPU
│ 寄存器组 │
├──────────────────────────────────────────────┤
│ 存储器(内存) │
├──────────────────────────────────────────────┤
│ 输入设备 输出设备 │
└──────────────────────────────────────────────┘
核心思想:程序和数据均以二进制存储在内存中,CPU 按顺序取指、译码、执行(存储程序原理)。
数据表示
整数编码
| 编码 | 说明 | 示例(8 位,-5) |
|---|---|---|
| 原码 | 最高位为符号位 | 10000101 |
| 反码 | 负数原码各位取反 | 11111010 |
| 补码 | 反码 + 1,计算机实际使用 | 11111011 |
补码统一了加减法运算,消除了 +0/-0 的二义性。
浮点数(IEEE 754)
32 位单精度:1 位符号 + 8 位指数 + 23 位尾数
64 位双精度:1 位符号 + 11 位指数 + 52 位尾数
值 = (-1)^符号 × 1.尾数 × 2^(指数-偏置)
特殊值:±0、±∞、NaN。
存储系统层次
寄存器(<1 KB,~1 cycle)
↓
L1 Cache(32–64 KB,~4 cycle)
↓
L2 Cache(256 KB–1 MB,~12 cycle)
↓
L3 Cache(4–64 MB,~40 cycle)
↓
内存 DRAM(GB 级,~200 cycle)
↓
磁盘/SSD(TB 级,ms 级延迟)
局部性原理是多级缓存有效的理论基础:
- 时间局部性:最近访问的数据很可能再次访问
- 空间局部性:访问某地址后,相邻地址也很可能被访问
总线
总线是连接各部件的公共传输通道:
| 总线 | 传输内容 | 说明 |
|---|---|---|
| 地址总线 | 内存地址 | 宽度决定最大寻址空间(32 位→4 GB) |
| 数据总线 | 数据 | 宽度决定每次传输位数(32/64 位) |
| 控制总线 | 控制信号 | 读/写使能、中断请求等 |
常见总线标准:PCIe(GPU/NVMe SSD)、USB、SATA、DDR(内存)。
指令系统
寻址方式
| 方式 | 说明 | 示例 |
|---|---|---|
| 立即寻址 | 操作数就在指令中 | MOV AX, 5 |
| 直接寻址 | 指令给出内存地址 | MOV AX, [1000H] |
| 寄存器寻址 | 操作数在寄存器中 | MOV AX, BX |
| 间接寻址 | 地址存在寄存器或内存中 | MOV AX, [BX] |
| 基址+变址 | 基地址 + 偏移量 | MOV AX, [BX+SI] |
CISC vs RISC
| CISC(x86) | RISC(ARM、RISC-V) | |
|---|---|---|
| 指令 | 复杂、变长 | 简单、定长 |
| 寄存器数量 | 少 | 多(通常 32 个) |
| 功耗 | 较高 | 低 |
| 典型场景 | PC、服务器 | 移动设备、嵌入式 |
输入输出系统
| 方式 | 特点 |
|---|---|
| 程序轮询 | CPU 主动查询,占用 CPU |
| 中断驱动 | 外设主动通知,CPU 效率高 |
| DMA | 外设直接访问内存,CPU 仅启动和收尾 |