标签:
一 页表
1. 页表是放置在RAM(一般为DRAM)中的一个数据段。
2. ARM的地址空间为2^32字节,即4G字节。
3. 一级页表总共有4096条记录,每条记录对应的地址块为1M,一级页表中的记录将虚拟的连续4G寻址空间等分。
4. 一级页表中的每条记录的内容就是虚拟的4G寻址空间的物理地址,举例如下:
a. 将一级页表基址设置为:0x31000000,则从基址开始,之后的4096 * 4字节对应一级页表。
b. 一级页表的第0条记录对应着虚拟地址的0x0000,0000~0x000F,FFFF,第1条记录对应着虚拟地址的0x0010,0000~0x001F,FFFF,依次类推。
c. 相应的,一级页表的第0条记录(高12位)的内容对应虚拟地址0x0000,0000~0x000F,FFFF的物理地址(基地址),第1条记录(高12位)对应虚拟地址 0x0010,0000~0x001F,FFFF的物理地址(基地址),每条记录中的低位中都包含着权限访问控制位。
二 TLB(Translation Lockaside buffer):快表
快表可理解为页表的cache,页表是存在于RAM中的一段数据,访问延迟较高,将相邻的页表加载到快表中可极大的加速MMU合成地址。
三 Cache
未完待续...
N 关于MMU的启动
若将页表设置为虚拟地址 = 物理地址,则开启MMU后代码的运行、数据的存储于读取、堆栈等不受影响,代码将继续地正确运行。
标签:
原文地址:http://www.cnblogs.com/azenk/p/hardware_arm_mmu.html