计算机内存与磁盘
1. 内存(Memory)
1.1 什么是内存
内存(Memory),也称为主存储器(Main Memory)或随机存取存储器(RAM),是计算机中用于临时存储数据和程序指令的硬件设备。
内存的基本特性
- 易失性(Volatile):断电后数据会丢失
- 高速访问:访问速度比磁盘快数千倍
- 随机存取:可以随机访问任意位置的数据,访问时间相同
- 容量有限:相比磁盘,容量较小且价格较高
- 直接与CPU交互:CPU只能直接访问内存中的数据
1.2 内存的分类
按用途分类
| 类型 | 说明 | 特点 |
|---|---|---|
| RAM(随机存取存储器) | 可读可写的内存 | 易失性,断电数据丢失 |
| ROM(只读存储器) | 只能读取的内存 | 非易失性,用于存储固件 |
| Cache(高速缓存) | CPU与内存之间的缓冲 | 速度最快,容量最小 |
按技术分类
| 类型 | 全称 | 特点 | 应用 |
|---|---|---|---|
| DRAM | Dynamic RAM | 需要定期刷新,容量大,价格低 | 主内存 |
| SRAM | Static RAM | 不需要刷新,速度快,价格高 | CPU缓存 |
| SDRAM | Synchronous DRAM | 与系统时钟同步 | 现代计算机主内存 |
| DDR | Double Data Rate | 双倍数据传输率 | 现代计算机主内存 |
1.3 内存的层次结构
速度: 快 ←──────────────────────────────→ 慢
容量: 小 ←──────────────────────────────→ 大
价格: 高 ←──────────────────────────────→ 低
CPU寄存器 → L1缓存 → L2缓存 → L3缓存 → 主内存(RAM) → 虚拟内存(磁盘)
各级存储的特点:
| 级别 | 访问时间 | 容量 | 位置 |
|---|---|---|---|
| CPU寄存器 | 1个时钟周期 | 几十到几百字节 | CPU内部 |
| L1缓存 | 2-4个时钟周期 | 32-64 KB | CPU内部 |
| L2缓存 | 10-20个时钟周期 | 256 KB - 2 MB | CPU内部 |
| L3缓存 | 20-40个时钟周期 | 4-32 MB | CPU内部或外部 |
| 主内存(RAM) | 100-300个时钟周期 | 4-64 GB | 主板 |
| 虚拟内存(磁盘) | 数万到数十万个时钟周期 | 数百GB到数TB | 硬盘 |
1.4 内存的工作原理
内存地址
- 物理地址:内存中每个字节都有唯一的物理地址
- 逻辑地址:程序使用的虚拟地址,由操作系统映射到物理地址
- 地址空间:32位系统可寻址 2³² = 4 GB,64位系统可寻址 2⁶⁴
内存访问过程
1. CPU发出内存访问请求(包含地址)
2. 请求首先到达L1缓存
3. 如果L1未命中,检查L2缓存
4. 如果L2未命中,检查L3缓存
5. 如果L3未命中,访问主内存
6. 如果主内存未命中,访问虚拟内存(磁盘)
7. 数据逐级返回,并更新各级缓存
1.5 内存的作用
- 存储运行中的程序:程序代码和数据必须加载到内存才能执行
- 存储操作系统:操作系统内核和系统服务常驻内存
- 存储临时数据:程序运行过程中产生的临时变量和数据
- 缓存数据:提高数据访问速度,减少磁盘I/O
2. 磁盘(Disk)
2.1 什么是磁盘
磁盘(Disk),也称为硬盘(Hard Disk Drive, HDD)或存储设备,是计算机中用于永久存储数据和程序的硬件设备。
磁盘的基本特性
- 非易失性(Non-Volatile):断电后数据不会丢失
- 大容量:容量可达数TB,远大于内存
- 价格低廉:单位容量的价格远低于内存
- 访问速度慢:机械硬盘的访问速度比内存慢数千倍
- 顺序存取为主:机械硬盘顺序访问比随机访问快得多
2.2 磁盘的分类
按技术分类
| 类型 | 全称 | 特点 | 应用 |
|---|---|---|---|
| HDD | Hard Disk Drive | 机械结构,容量大,价格低,速度慢 | 大容量存储 |
| SSD | Solid State Drive | 电子结构,速度快,价格高,容量相对小 | 系统盘、高性能需求 |
| NVMe SSD | Non-Volatile Memory Express | PCIe接口,速度最快 | 高性能工作站、服务器 |
性能对比
| 指标 | HDD | SSD | NVMe SSD |
|---|---|---|---|
| 读取速度 | 100-200 MB/s | 500-3000 MB/s | 3000-7000 MB/s |
| 写入速度 | 100-200 MB/s | 400-2500 MB/s | 2000-5000 MB/s |
| 随机访问 | 慢(毫秒级) | 快(微秒级) | 极快(微秒级) |
| 容量 | 大(1-20 TB) | 中(250 GB-4 TB) | 中(250 GB-4 TB) |
| 价格 | 低 | 中 | 高 |
| 寿命 | 长 | 中 | 中 |
2.3 磁盘的结构
机械硬盘(HDD)结构
磁盘结构:
┌─────────────────────────────────────┐
│ 磁头(Head) │
│ ↓ │
│ ┌─────────────────────────────┐ │
│ │ 磁道(Track) │ │
│ │ ┌─────────────────────┐ │ │
│ │ │ 扇区(Sector) │ │ │
│ │ │ 512字节或4KB │ │ │
│ │ └─────────────────────┘ │ │
│ └─────────────────────────────┘ │
│ 磁盘盘片(Platter) │
└─────────────────────────────────────┘
关键概念:
- 磁道(Track):磁盘上的同心圆
- 扇区(Sector):磁道上的最小存储单位,通常为512字节或4KB
- 柱面(Cylinder):所有盘片上相同半径的磁道组成的圆柱
- 磁头(Head):读写数据的装置
固态硬盘(SSD)结构
SSD结构:
┌─────────────────────────────────────┐
│ 控制器(Controller) │
│ ┌─────────────────────────────┐ │
│ │ 闪存芯片(NAND Flash) │ │
│ │ ┌─────┐ ┌─────┐ ┌─────┐ │ │
│ │ │页 │ │页 │ │页 │ │ │
│ │ │4KB │ │4KB │ │4KB │ │ │
│ │ └─────┘ └─────┘ └─────┘ │ │
│ │ 块(Block) │ │
│ └─────────────────────────────┘ │
└─────────────────────────────────────┘
关键概念:
- 页(Page):SSD的最小读写单位,通常为4KB
- 块(Block):由多个页组成,是擦除的最小单位
- 控制器:管理数据读写、磨损均衡、错误纠正等
2.4 磁盘的工作原理
机械硬盘访问过程
1. 磁头移动到目标磁道(寻道时间,Seek Time)
2. 等待目标扇区旋转到磁头下方(旋转延迟,Rotational Latency)
3. 读取或写入数据(传输时间,Transfer Time)
访问时间组成:
- 寻道时间:5-15毫秒(磁头移动到目标磁道)
- 旋转延迟:2-8毫秒(等待扇区旋转到位)
- 传输时间:取决于数据大小和传输速度
固态硬盘访问过程
1. 控制器接收访问请求
2. 直接访问目标页(无机械运动)
3. 读取或写入数据
访问时间:
- 读取延迟:50-150微秒
- 写入延迟:100-500微秒
- 无寻道时间和旋转延迟
2.5 磁盘的作用
- 永久存储数据:操作系统、应用程序、用户文件等
- 虚拟内存:当物理内存不足时,使用磁盘作为虚拟内存
- 数据备份:长期保存重要数据
- 系统启动:存储操作系统,计算机启动时从磁盘加载
3. 内存与磁盘的区别
3.1 核心区别对比
| 特性 | 内存(RAM) | 磁盘(Disk) |
|---|---|---|
| 易失性 | 易失性,断电数据丢失 | 非易失性,断电数据保留 |
| 访问速度 | 极快(纳秒级) | 较慢(毫秒级,SSD为微秒级) |
| 容量 | 较小(通常4-64 GB) | 很大(通常数百GB到数TB) |
| 价格 | 高(按GB计算) | 低(按TB计算) |
| 访问方式 | 随机存取,访问时间相同 | 顺序存取为主(HDD) |
| 物理位置 | 主板上的内存插槽 | 独立的存储设备 |
| 与CPU关系 | CPU直接访问 | 需要通过内存中转 |
| 用途 | 临时存储运行中的数据 | 永久存储数据 |
3.2 数据流转过程
程序执行流程:
1. 程序存储在磁盘上
2. 启动时,程序被加载到内存
3. CPU从内存读取指令和数据
4. CPU执行指令,处理数据
5. 结果写回内存
6. 需要持久化时,数据从内存写入磁盘
4. 总结
4.1 核心要点
- 内存是临时存储:速度快但容量小,断电数据丢失
- 磁盘是永久存储:速度慢但容量大,断电数据保留
- 数据必须加载到内存才能执行:CPU只能直接访问内存
- 内存与磁盘需要配合工作:内存提供速度,磁盘提供容量
- 优化重点是减少磁盘I/O:使用缓存、缓冲区等技术
4.2 关键概念
- 易失性 vs 非易失性:内存易失,磁盘非易失
- 访问速度:内存纳秒级,磁盘毫秒级(SSD微秒级)
- 存储层次:寄存器 → 缓存 → 内存 → 磁盘
- 数据流转:磁盘 → 内存 → CPU → 内存 → 磁盘
至关重要!
