嵌入式CPU的存储器管理单元

2012-07-25 03:21吴全兴
微处理机 2012年1期
关键词:描述符存储器内存

王 爽,吴全兴

(1.中国电子科技集团公司第四十七研究所,沈阳110032;2.沈阳新元信息与测控技术有限公司,沈阳110179)

1 引言

存储器管理单元MMU在嵌入式CPU中的位置非常重要,MMU完成的基本功能是将虚拟地址转换为物理地址;控制存储器访问权限,中止非法访问;设置虚拟存储空间的缓存特性。它简化了任务编程,允许程序员使用虚拟地址进行编程。MMU作为转换器,将程序和数据的虚拟地址转换为实际的物理地址。这个转换过程允许多个不同的程序使用相同的虚拟地址,而各自存储在物理存储器的不同位置。

2 工作原理

MMU把CPU产生的虚拟地址转换成物理地址去访问外部存储器,同时检查访问权限。地址转换路径的选取是由这个地址被标记为节映射访问还是页映射访问确定。转换过程由第一级页表开始,节映射的访问只需要读取一级页表,页映射的访问还需要读取第二级页表。页表存放在外部存储器中。下图以4MB存储空间为例说明MMU查找描述符的过程,也是虚拟地址转换成物理地址的主要过程。查找表的偏移地址依据定义的页大小不同而不同,也可能有多种页大小的定义。

图1 页表查找过程

3 存储器管理单元的结构

MMU完成的基本功能有三点:①将虚拟地址转换为物理地址;②控制存储器访问权限,中止非法访问;③设置虚拟存储空间的缓存特性。

根据MMU实现的功能,MMU的基本结构框图如图2所示。

图2 MMU结构框图

MMU存储系统的结构允许对存储器系统的精细控制。大部分的存储细节由存在存储器中的转换表提供。这些表的入口(描述符)提供了各种存储器区域的属性。

内存访问权限的判断主要是通过每一个段或页的访问权限信息和处理器的域控制信息以及微处理器的用户/超级用户状态一起,用来确定对寻址位置的访问是否被允许。

(1)地址对齐错,只发生在取指令时,当允许产生这个错误时如果虚拟地址不是字对齐的,便产生地址对齐错。

(2)第一级描述符确定寻址位置的页域,若不存在第一级描述符,则取描述符时产生故障。

(3)检查访问控制寄存器,确定当前访问过程是用户还是管理程序,如果都不是则产生故障。

(4)如果这个访问是管理程序,不管访问权限继续进行。如果是用户程序则使用处理器和描述符的其他控制信息来检查访问权限。具体的控制内容不同的处理器有不同的规定。

物理地址产生之前要先对访问地址的权限进行检查,MMU检测访问错对节(Section)和页(page)有些不同,图3描述了基本的错误产生过程,这个过程对程序员来说也是透明的,应用中只关心是否产生错误就可以了。

为了减少平均内存访问时间,MMU中采用一个容量更小,访问速度和CPU通用寄存器相当的存储器件来存放当前访问需要的地址变换条目,它是一个小容量的Cache,就是TLB(Translation Lookaside Buffer)。如果系统是数据和指令统一的存储系统,那么TLB也将是统一的。每个地址变换条目记录了一个虚拟存储空间的存储块的基地址与物理存储空间相应的一个存储块的基地址的对应关系,根据存储块大小,可以有多种地址变换(段,大页,小页,极小页)。实际上TLB就是由多个重定位寄存器组成的全相连Cache,当TLB失效时,TLB采用预定的算法来选择替换的重定位寄存器。TLB只支持两种类型的命令:清除TLB和锁定TLB。

图3 错误检查过程

当处理器产生一个内存访问请求时,将传输一个虚拟地址给MMU,MMU首先遍历TLB,如果TLB中不保护虚拟地址的入口(Entry),将转入保存在内存中的传输主表,来获得所有访问地址的物理地址和访问权限,成功后将新的虚拟地址的入口信息保存在TLB中,以备下次查询。得到入口信息后,根据描述符中的缓存和写缓冲特性决定是否缓存该内存访问结果,根据访问权限控制信息确定该内存访问是否被允许,对于不允许缓存的存储访问,直接得到物理地址访问内存。对于允许缓存的存储访问,如果在Cache中命中,则忽略物理地址,如果Cache没命中,则使用物理地址访问内存,并把该数据块读到Cache中。至此MMU就完成了一次访问的所有工作。

4 结束语

以上简要介绍了MMU一般的结构和工作原理,有了上面的知识,相信可以为应用带MMU的嵌入式处理器的工程师带来一定的帮助。

[1] Steve Furber,著.ARM SoC 体系结构[M].田泽,于敦山,盛世敏,译.北京:北京航空航天大学出版社,2002.

[2] 杜春雷.ARM体系结构与编程[M].北京:清华大学出版社,2003.

猜你喜欢
描述符存储器内存
基于结构信息的异源遥感图像局部特征描述符研究
静态随机存储器在轨自检算法
基于AKAZE的BOLD掩码描述符的匹配算法的研究
笔记本内存已经在涨价了,但幅度不大,升级扩容无须等待
“春夏秋冬”的内存
基于深度学习的局部描述符
特征联合和旋转不变空间分割联合的局部图像描述符
任意2~k点存储器结构傅里叶处理器
内存搭配DDR4、DDR3L还是DDR3?
存储器——安格尔(墨西哥)▲