存储器管理

存储器管理

大部分的小规模嵌入式应用中,处理器与外部存储芯片都是直接连接的,然而有时保持事物的原有次序很重要,这就涉及到存储器的管理技术。

  • 存储器管理解决的问题就是逻辑地址与物理地址之间的映射关系:
    • 物理存储器 > 逻辑存储器:
      当处理器的逻辑地址空间小于系统的物理地址空间时,处理器的逻辑空间必须被映射到系统的物理存储空间之上。它有时被称为后备存储器,我们常常为了目的选择合适的处理器,不过这种处理器地址空间有限,对于你的应用来说太小了。通过后备存储器的使用,处理器的地址空间会扩大到超过逻辑地址范围。
    • 逻辑内存 > 物理内存:
      当处理器的逻辑地址空间非常巨大时,用物理存储空间去填充是不切实际的。磁盘上一些空间也许可以被用作虚拟存储器,这样处理器看起来就拥有比芯片内部更多的存储空间。
      存储管理的任务是:判断存储访问的存储器是物理存储器还是虚拟存储器;将磁盘中的虚拟存储空间上的内容存储到真正的内存中,并完成相应的地址变换。
    • 内存保护
      也许你想阻止一些程序访问某些存储区域。使所有I/O访问操作都通过操作系统进行,保护机制可以阻止软件对I/O空间的访问。
    • 任务隔离
      多任务系统中,任务间应该彼此不受到干扰,而且两个不同的任务应该能够使用相同的逻辑地址,可以通过内存管理机制将逻辑地址变换为各自的物理地址。

页面映射

在所有的存储管理系统中,内存中的字按页分组,因而地址可以看做由两部分组成:页号和页内的字号。 MMU将逻辑地址页转换为物理页,而字号则无需改变。实际上整个地址就是页号与字号的拼接。

存储器管理

  • 后备存储器
MMU
物理页号
逻辑地址
字号

逻辑地址空间小于物理地址空间,存储管理形式最为简单。系统将每一页的大小设计成逻辑地址空间,只要MMU提供页号就行。

存储器管理

很多小型系统,后备存储器可以通过锁存数据总线,将数据总线作为物理内存的附加地址来实现。

存储器管理

  • 地址变换
    逻辑地址空间大于物理地址空间时,MMU可以提供地址总线上半部分的变换如图:

存储器管理

MMU包含一个地址变换表,可以把输入地址重新映射到不同的输出地址上。为了改变地址变换表,处理器必须能够访问MMU。