文档介绍:储存器、存储器系统的层次架构计算机系统的存储器被组织城一个金字塔的层次结构。自上而下为: CPU 内部寄存器、芯片内部高速缓存(cache) 、芯片外部高速缓存(SRAM 、 SDRAM 、 DRAM) 、主存储器(FLASH 、 EEPROM) 、外部存储器( 磁盘、光盘、 CF卡、 SD卡) 和远程二级存储器( 分布式文件系统、 WEB 服务器),6 个层次的结构。上述设备从上而下, 依次速度更慢、容量更大、访问频率更小, 造价更便宜。 2 、高速缓存(cache) 工作原理(参照教程 126 页,博客画不了图) :主要利用了程序的局部性特点。地址映象是指把主存地址空间映象到 cache 的地址空间。地址变换是指当程序或数据已经装入到 cache 后,在实际运行过程中,把主存地址如何编程 cache 空间的地址。常用的地址映象和地址变换的方式有: (教程 127 页) 直接映象和变换: 速度快, 造价低, 但有局限性, 不能充分利用 cach e 的好处。组相联地址映象和变换:速度稍慢但是命中率高。全相联地址映象和变换:可以任意映射。常用的 cache 替换算法:轮转法和随机替换算法。高速缓存的分类: 统一 cache 和独立的数据/ 指令 cache 写通 cache 和写回 cache 读操作分配 cache 和写操作分配 cache 3 、存储管理单元( MMU ) MMU 在 CPU 和物理内存之间进行地址转换, 将地址从逻辑空间映射到物理空间,这个过程称为内存映射。 MMU 主要完成下面的工作: A. 虚拟存储空间到物理空间的映射。 B. 存储器访问权限的控制。 C. 设置虚拟存储空间的缓冲特性。嵌入式系统中常常采用页式存储管理。为了管理这些页引入了页表的概念。页表是位于内存中的表,它的每一行对应虚拟存储空间的一个页,该行包含了该虚拟内存页对应的物理内存页的地址、该页的访问权限和该页的缓冲特性等。从虚拟地址到物理地址的变换过程就是查询页表的过程。由于页表存储在内存中的, 整个查询过程需要付出很大的代价。根据程序局部性的特点,增加了一个小容量、高速度的存储部件来存放当前访问需要的地址变换条目,这个存储部件称为:地址转换后备缓冲器(TLB) 。当 CPU 访问内存时, 首先在 TLB 中查找需要的地址变换条目, 如果该条目不存在, CPU 再从内存中的页表中查询,并把相应的结果添加到 TLB 中,更新它的内容。嵌入式系统中虚拟存储空间到物理空间的映射以内存块为单位进行。即虚拟存储空间中一块连续的存储空间被映射到物理存储空间中同样大小的一块连续存储空间。在页表和 TLB 中, 每一个地址变换条目实际上记录了一个虚拟存储空间的内存块的基地址与物理存储空间相对应的一个内存块的基地址之间的对应关系。在 MMU 中实现虚拟地址到物理地址的映射是通过两级页表来实现的。禁止 MMU 时,所有物理地址和虚拟地址相等,即使用平板存储模式。 4 、内存保护操作系统通常利用 MMU 来实现操作系统内核与应用程序之间的隔离, 以及应用程序与应用程序之间的隔离。内存保护包含两个方面的内容: A. 防止地址越界,每个应用程序都有自己独立的地址空间。 B. 防止越权操作,每个应用程序都有自己的访问权限。 5 、实模式与保护模式在嵌入式系统中, 常见的存储管理方案可以分为两大类: 实模式和保护模式。实模式:内存的平面使用模式。特点有: A. 不划分“系统空间”与“用户空间”,无须进行地址映射。 B. 操作系统与应用程序之间不再有物理的边界。 C. 系统中的“任务”或“进程”,实际上全是内核线程。在实模式下,内存布局可以分为 5 个段: A. 代码段:包含操作系统和应用程序的所有代码。 B. 数据段:所有带有初始值的全局变量。 C. BSS 段:所有未带初始值的全局变量。 D. 堆空间:动态分配的内存空间。 E. 栈空间:保存上下文以及函数调用时的局部变量和形参。在实模式存储管理方案下, 主要的工作在于堆空间的管理, 即如何来管理空闲的堆空间、如何来分配内存、如何来回收内存等等。保护模式:处理器中必须有 MMU 硬件并启用。特点有: A. 系统内核和用户程序都有各自独立的地址空间。 B. 每个应用程序只能访问自己的地址空间,不能去破坏操作系统和其他应用程序的代码和数据。 6 、分区存储管理为了实现多道程序系统而采用的最简单的内存管理。基本思路: 把整个内存划分为两大区域, 即系统区和用户区, 然后再把用户区划分为若干个分区,每个任务占有其中的一个分区。这样, 在内存当中就同时保留多个任务, 让他们共享整个用户区,从而实现多个任务的并发运行。分区存储管理又可以分为两类:固定分区和可变分区。固定分区: 各个用户分区的个数、位置和大小一旦确定后, 就固定不