http://www.01yun.com/unittest/20130719/591681.html
CPU中对内存的管理一般有MPU或者MMU。在了解MMU之前可以先熟悉一下MPU,MPU即内存保护单元,其主要功能是为每个任务提供不同的区域保护任务的内存不被其他任务访问。本文主要总结MMU。
MPU和MMU的主要区别是,MMU中增加了额外的硬件,以支持虚存;也就是可以支持地址重映射,每个任务可以有自己的虚拟地址空间,其虚拟地址可以重叠。
页:一个重定位寄存器只能转换一块存储空间,这块存储空间的大小由地址的偏移量部分所占的位数所表示的大小决定,而这样一块虚拟存储空间即为一个页。
页帧:由页转换对应的那块物理地址即为页帧。
重定位寄存器是由64个寄存器组成的全相联cache。也称作TLB,而MMU中的重定位寄存器内的值是来自于主存中特定区域的,这些区域中保存着描述数据转换的信息,称之为页表。页表中每个项表示了一个页转换到物理存储器的一个页帧的全部信息。一个页表项一般是4字节长度
页表一般有一级页表(L1)和二级页表(L2)。其中一级页表中的页表项可以有两种类型,一种是保存指向二级页表地址的页表项,又分为指向粗页表和细页表的页表项。一种就直接表示1MB空间页的转换而不用再到二级页表。这些页表项种类的不同通过页表项中的低两位的不同来区分。一级页表有4096个页表项,每个页表项都可以直接或间接的转换1MB页,这样就转换完了4GB空间。
-所有TLB数据无效:MCR p15,0,Rd,c8,c7,0 (Rd应为0)
-按行使TLB无效: MCR p15,0,Rd,c8,c7,1 (Rd为要使之无效的虚拟地址)