计算机的基本组成 —— 存储器(Memory)
(计算机组成原理高频八股 + 图解版)
存储器是计算机的记忆部件,也是五大组成部分(运算器、控制器、存储器、输入设备、输出设备)中最重要的一环。几乎所有面试(软考、考研、校招)都会重点考察存储器层次结构、性能指标、分类等。
1. 存储器的层次结构(最重要!金字塔模型)
现代计算机采用多级存储层次结构,核心目标是速度、容量、成本三者平衡。
速度越来越快 ↑
容量越来越小 ↓
价格越来越贵 ↑
┌─────────────────────────────┐
│ CPU 寄存器(Registers) │ ← 几纳秒,几十字节
├─────────────────────────────┤
│ Cache(L1 / L2 / L3) │ ← 纳秒级,KB~几十MB
├─────────────────────────────┤
│ 主存(Main Memory / RAM) │ ← 几十纳秒,GB~TB级
├─────────────────────────────┤
│ 辅存(Secondary Storage)│ ← 毫秒级,TB~PB级(HDD/SSD)
└─────────────────────────────┘
容量越来越大 ↓
价格越来越便宜 ↓
局部性原理(为什么需要层次结构):
- 时间局部性:刚访问过的内容,很快会再次访问。
- 空间局部性:刚访问过的地址附近的内容,很快会被访问。
→ 因此把常用数据放在高速小容量存储器中。
2. 存储器的分类(按不同维度)
(1)按存储介质分类
- 半导体存储器:速度快(RAM、ROM、Cache)
- 磁表面存储器:硬盘(HDD)
- 光存储器:CD、DVD、蓝光
- 磁芯存储器:早期,已淘汰
(2)按存取方式分类(最常考)
| 类型 | 存取特点 | 典型代表 | 速度 | 易失性 | 主要用途 |
|---|---|---|---|---|---|
| 随机存取存储器 (RAM) | 任意地址存取时间相同 | DRAM、SRAM | 快 | 易失 | 主存、Cache |
| 只读存储器 (ROM) | 只能读,不能写(或有限写) | ROM、PROM、EPROM、EEPROM、Flash | 较快 | 非易失 | BIOS、固件、U盘 |
| 顺序存取存储器 | 必须按顺序存取 | 磁带 | 很慢 | 非易失 | 备份、大数据归档 |
| 直接存取存储器 | 先直接找到块,再顺序存取 | 硬盘(HDD) | 中等 | 非易失 | 辅存 |
(3)按易失性分类
- 易失性存储器(Volatile):断电后数据丢失 → RAM(DRAM、SRAM)
- 非易失性存储器(Non-Volatile):断电后数据保留 → ROM、Flash、硬盘、SSD
3. 主要存储器详解
(1)寄存器(Registers)
- 位于CPU内部,速度最快(与CPU同频)。
- 包括:通用寄存器、程序计数器(PC)、指令寄存器(IR)、标志寄存器等。
- 容量极小(几十到几百字节)。
- 程序员/编译器可见。
(2)Cache(高速缓存)
- 位于CPU和主存之间,速度接近CPU。
- 多级:L1(指令+数据)、L2、L3(共享)。
- 完全由硬件管理,程序员透明。
- 命中率是Cache性能关键。
(3)主存(Main Memory)
- 也叫内存,目前主要使用 DRAM(动态随机存取存储器)。
- DRAM vs SRAM 对比(必考):
| 项目 | DRAM(动态RAM) | SRAM(静态RAM) |
|---|---|---|
| 存储单元 | 1个晶体管 + 1个电容 | 6个晶体管(触发器) |
| 密度 | 高(容量大) | 低 |
| 速度 | 较慢 | 很快 |
| 功耗 | 较低 | 较高 |
| 价格 | 便宜 | 贵 |
| 是否需要刷新 | 需要(每隔几ms刷新一次) | 不需要 |
| 用途 | 主存 | Cache、寄存器 |
(4)外存(辅存)
- 硬盘(HDD):机械结构,容量大、价格低、速度慢。
- 固态硬盘(SSD):基于NAND Flash,速度远快于HDD,无机械结构。
- U盘、SD卡:也是Flash存储器。
4. 存储器性能指标(面试必背)
- 存储容量:字数 × 字长(或直接用字节表示)
- 存取速度:
- 存取时间(Access Time):从启动读/写到完成的时间。
- 存取周期(Cycle Time):连续两次存取的最小间隔(比存取时间稍长)。
- 存储带宽:单位时间内存取的信息量(B/s 或 字/s)。
- 价格:每位价格(元/位)。
5. 存储器层次结构总结图(文字版)
CPU ── 寄存器(最快)
│
└─ L1 Cache(纳秒)
│
└─ L2 Cache
│
└─ L3 Cache
│
└─ 主存(DRAM) ── 几十纳秒
│
└─ 辅存(SSD/HDD) ── 毫秒级
6. 经典面试题快速回答
Q1:为什么计算机要采用多级存储结构?
答:为了解决速度、容量、成本之间的矛盾,利用局部性原理实现“快慢结合”。
Q2:DRAM和SRAM的区别及各自用途?
答:DRAM密度高、便宜但需要刷新,用于主存;SRAM速度快、不需刷新,但贵,用于Cache和寄存器。
Q3:Cache的工作原理是什么?
答:命中时直接从Cache取,缺失时从主存调入一块数据到Cache(块替换)。
Q4:什么是主存?什么是内存?它们一样吗?
答:主存就是内存,目前主要指DRAM。
想继续深入哪一部分?我可以立刻给你讲:
- Cache映射方式(全相联、直接映射、组相联)+ 替换算法
- 主存与CPU的连接(地址线、数据线、控制线)
- 半导体随机存储器芯片(RAM芯片内部结构)
- 虚拟存储器(分页、分段、段页式)
直接告诉我“下一节 Cache” 或 “存储器与CPU连接” 或 “虚拟内存”,我马上继续画图讲解!
存储器学透了,后面总线、CPU、指令系统都会轻松很多。加油!