自学教程 学编程从这里开始

存储系统

本课目标

理解存储器在计算机中的作用,掌握存储器的层次结构,了解主存、高速缓存、辅助存储之间的关系;熟悉内存扩展、地址译码、存储器带宽等基本概念,为后续 CPU 与内存交互、流水线、虚拟内存等内容打下基础。


3.1 存储器的作用

存储器是计算机中用来保存程序、数据和中间运算结果的部件。

CPU 运算速度很快,但它不能长期保存大量数据。程序运行时,指令和数据需要先存放在存储器中,CPU 再按需要取出处理。

可以把存储器理解为计算机的“数据仓库”:

  • 寄存器:CPU 内部,速度最快,容量最小;
  • 高速缓存 Cache:介于 CPU 与主存之间,减少 CPU 等待;
  • 主存 Memory:程序运行时的主要存放区域;
  • 辅助存储 Secondary Storage:硬盘、SSD 等,用于长期保存。

存储器层次越靠近 CPU,速度越快、成本越高、容量越小;越靠近外围,速度越慢、成本越低、容量越大。


3.2 存储器层次结构

现代计算机通常采用存储器层次结构 Memory Hierarchy,在速度、容量和成本之间取得平衡。

从上到下大致为:

CPU 寄存器 CPU Registers
        ↓
高速缓存 Cache
        ↓
主存 Main Memory / RAM
        ↓
辅助存储 Secondary Storage

各层之间的关系:

  • 上层是下层的缓存:上层保存下层中经常访问的部分数据;
  • 下层是上层的后备:上层没有所需数据时,需要从下层调入;
  • 越上层速度越快:CPU 寄存器最快,辅助存储最慢;
  • 越上层容量越小:寄存器容量很小,主存较大,硬盘/SSD 更大。

层次结构带来的问题

如果 CPU 访问的数据不在上层存储器中,就需要向下层查找,这会带来额外延迟。

常见概念:

  • 命中 Hit:CPU 在当前层找到所需数据;
  • 缺失 Miss:当前层没有找到,需要从下层调入;
  • 命中率 Hit Rate:命中次数占总访问次数的比例;
  • 平均访问时间 Average Access Time:综合考虑命中时间和缺失损失后的平均速度。

存储器设计的目标并不是让每一层都最快,而是让 CPU 尽可能多地访问上层,减少慢速存储的频率。


3.3 主存:RAM 与 ROM

主存通常指 CPU 能直接访问的内存,主要包括 RAM 和 ROM。

RAM:随机存取存储器

RAM 是 CPU 运行程序时主要使用的内存。

特点:

  • 可以随机读写;
  • 速度较快;
  • 断电后数据会丢失,属于易失性存储器 Volatile Memory。

RAM 又分为两类:

  • SRAM 静态 RAM:速度快,不需要刷新,常用作 Cache;
  • DRAM 动态 RAM:容量较大,需要定期刷新,常用作主存。

ROM:只读存储器

ROM 中的内容一般在出厂时写入,计算机运行时主要读取。

特点:

  • 断电后数据不丢失;
  • 正常工作时以读取为主;
  • 常用于保存启动程序、固件或底层配置信息。

注意:现代计算机中“ROM”并不一定完全不可改写,例如 Flash ROM 可以在特定条件下更新,但它仍然属于非易失性存储。


3.4 内存容量与地址线

内存容量由地址空间决定。

如果地址总线有 n 位,那么可寻址单元数为:

2ⁿ 个存储单元

例如:

  • 10 位地址线:2¹⁰ = 1024 个单元;
  • 20 位地址线:2²⁰ = 1M 个单元;
  • 32 位地址线:理论上可访问 2³² 个单元。

实际内存容量还要受内存芯片数量、字长、地址译码方式等因素影响。

地址译码

CPU 访问内存时,先把地址发送到地址总线,内存中的译码电路根据地址选中对应存储单元。

地址译码方式主要有:

  • 全译码:所有地址线都参与译码,地址空间连续;
  • 部分译码:部分地址线参与译码,可能出现地址重叠;
  • 线选法:用高位地址线直接选择芯片,适合小规模系统。

3.5 存储器带宽

存储器带宽表示单位时间内存储器能够传输的数据量,常用单位如:

字节/秒 B/s

带宽不仅和工作频率有关,还和数据总线宽度、每次传输的数据量有关。

简单理解:

  • 频率越高:单位时间传输次数越多;
  • 数据总线越宽:每次传输的数据越多;
  • 带宽越高:CPU 越容易获得足够指令和数据。

如果内存带宽不足,即使 CPU 主频很高,也可能因为取指和取数太慢而无法发挥全部性能。


3.6 辅助存储:硬盘与 SSD

辅助存储用于长期保存数据,常见设备包括机械硬盘 HDD 和固态硬盘 SSD。

HDD:机械硬盘

特点:

  • 容量大,单位成本低;
  • 依靠磁头和盘片机械运动读写;
  • 速度较慢,抗震能力较差。

SSD:固态硬盘

特点:

  • 基于闪存芯片,没有机械部件;
  • 读写速度明显高于 HDD;
  • 抗震能力更强;
  • 单位容量成本通常高于 HDD。

主存与辅助存储的区别

项目主存 RAM辅助存储 HDD/SSD
速度较快较慢
容量较小较大
成本较高较低
挥发性断电丢失断电不丢失
CPU访问方式可直接访问需要输入输出接口访问

3.7 存储器与 CPU 的连接

CPU 不能直接长期保存大量数据,因此需要与存储器配合。

典型关系:

CPU ↔ Cache ↔ 主存 RAM ↔ 辅助存储

运行程序时:

  1. 操作系统把程序从硬盘/SSD 加载到主存;
  2. CPU 从主存读取指令和数据;
  3. 近期频繁访问的数据会被放入 Cache;
  4. CPU 优先访问 Cache,缺失时再访问主存;
  5. 需要长期保存的数据写回硬盘或 SSD。

这一过程依靠地址总线、数据总线和控制总线协调完成:

  • 地址总线:CPU 给出要访问的存储单元地址;
  • 数据总线:CPU 与存储器之间传输指令和数据;
  • 控制总线:传输读、写、同步等控制信号。

本课小结

存储系统是计算机中保存程序和数据的核心部分。现代计算机采用存储器层次结构,把快速、小容量的上层存储器与慢速、大容量的下层存储器结合起来。主存是 CPU 运行程序的主战场,Cache 用于减少 CPU 等待,辅助存储用于长期保存数据。理解存储系统,是后续学习指令执行、CPU 设计、虚拟内存和性能优化的重要基础。


思考练习

  1. 为什么存储器要采用层次结构,而不是全部使用最快的存储器?
  2. SRAM、DRAM、ROM、Flash、HDD、SSD 各有什么特点?
  3. 地址总线宽度如何影响可寻址内存空间?
  4. 存储器带宽受哪些因素影响?
  5. CPU、Cache、主存、辅助存储之间是什么关系?
标签:

0 条笔记