4.1 存储器的层次结构

L22

学习目标

存储器从寄存器到辅存形成多层结构,速度递减、容量递增,局部性原理是虚拟存储和缓存工作的基础。

  • 存储器层次结构:从寄存器、高速缓存、主存到辅存,速度递减、容量递增、价格递减。
  • 寄存器:CPU内最快的存储,直接参与运算;高速缓存:介于CPU和主存之间,缓解速度差距。
  • 主存:存放执行中的程序和数据;辅存:存放大量暂时不用的程序和数据。
  • 局部性原理:程序在执行时呈现空间局部性和时间局部性,是虚拟存储和缓存工作的基础。

原理 · 深入理解

存储器层次结构 寄存器 Cache 主存 SRAM / DRAM 外存 Flash / 磁盘 快 · 贵 · 小 慢 · 便宜 · 大

4.1 存储器的层次结构

本节概览:先建立「存储器的层次结构」的框架,再依次展开下列小节。

  1. 多层结构的存储器系统
  2. 主存储器与寄存器
  3. 高速缓存和磁盘缓存

4.1.1 多层结构的存储器系统

通用计算机存储层次至少三级:CPU寄存器、主存、辅存。

高档机可细分为六层:寄存器、高速缓存、主存、磁盘缓存、固定磁盘、可移动介质。

图4-1 计算机系统存储层次示意 寄存器 / Cache 快、小、贵 主存 CPU 直接寻址 磁盘 / 辅存 慢、大、便宜
图4-1 计算机系统存储层次示意

可执行存储器

在计算机系统的存储层次中,寄存器和主存储器又被称为可执行存储器。对于存放于其中的信息,与存放于辅存中的信息相比较而言,计算机所采用的访问机制是不同的,所需耗费的时间也是不同的。进程可以在很少的时钟周期内使用一条load或store指令对可执行存储器进行访问。 对于不同层次的存储介质,由操作系统进行统一管理。

操作系统的存储管理负责对可执行存储器的分配、回收以及提供在存储层次间数据移动的管理机制。而设备和文件管理则根据用户的需求,提供对辅存的管理机制。

4.1.2 主存储器与寄存器

主存即内存,保存进程运行时的程序和数据,属可执行存储器。

主存访问速度远低于CPU,故引入寄存器与高速缓存以缓和速度矛盾。

寄存器与处理机同速,访问最快但价格昂贵,容量有限。

微机和大中型机有数十至数百个寄存器,字长32或64位;小型嵌入式仅几个到十几个,字长常为8位。

4.1.3 高速缓存和磁盘缓存

高速缓存介于寄存器与主存之间,备份主存常用数据,减少CPU访存次数。

容量从几十KB到几MB,比内存小两三个数量级,速度快于主存。访问时若命中缓存则直接取用,避免访问主存。

磁盘缓存

由于目前磁盘的I/O速度远低于对主存的访问速度,为了缓和两者之间在速度上的不匹配,而设置了磁盘缓存,主要用于暂时存放频繁使用的一部分磁盘数据和信息,以减少访问磁盘的次数。但磁盘缓存与高速缓存不同,它本身并不是一种实际存在的存储器,而是利用主存中的部分存储空间暂时存放从磁盘中读出(或写入)的信息。

主存也可以看作是辅存的高速缓存,因为,辅存中的数据必须复制到主存方能使用,反之,数据也必须先存在主存中,才能输出到辅存。

做 · 实验

  • 根据「学习目标」列出 3 个关键词,对照原理段落解释给自己听。
  • 完成 06-heap 或等价练习:分配-释放-再分配观察。

打开工作台

存储器的层次结构

contiguous-alloc

用控件单步操作;日志区记下每一步发生了什么。

代码导读

本课在工作台编译烧录。先读 user 实验入口,再对照 kernel / HDF 中被调用的函数,不要一上来改链接脚本。

总结与提升

  • 能说明 MCU 课为何跳过对换实验。
  • 能用自己的话复述学习目标,并指出概念与板上实验的对应。
  • 能对比页式与段式的优缺点各一条。
  • 能区分内碎片与外碎片。
  • 能结合动画解释一次分配失败原因。
  • 能说出 Flash 与 DRAM 在链接中的角色。
  • 能画出嵌入式常见两级(SRAM/Flash)。

延伸思考

  • 把进程映像存到 Flash 文件系统算对换吗?
  • 如果把本节机制拿到 Linux 或完整 OpenHarmony 上,会多出哪些硬件假设?
  • ESP32 的 MMU/Cache 与教材页表哪一层接近?
  • 固定分区适合固件里的什么对象?

← 本阶段封面 · 课程列表