对S3C2440 MMU的一点理解

S3C2440 MMU的一点理解

       罗覃东2009-10-8

以下以TQ2440开发为例说明本人对MMU工作原理的一点理解。

TQ2440开发板的SDRAM64M,地址范围在0x3000 0000~0x33FF FFFF(属于Bank 6)

 

S3C244032位的CPU,所以CPU可以看到的虚拟地址为232 = 4GB,64M的物理地址(在0x3000 0000~0x33FF FFFF)只是虚拟地址的一小部分。

 

举例:

MOV  R1, 0x30000012

下面结合下图说明一下当执行上述语句时,MMU是怎样工作的。

 (不好意思,不知道怎样上传图片了,该图片是“ARM920T(Rev 1) Technical Reference Manual” 中的Figure 3-8 Section Translation) 。

Modified virtual address 就是0x30000012Translation table base 就是CP15Register 2,也就是TTB寄存器,该寄存器的低140

当执MOV  R1, 0x30000012 时,MMU先将0x30000012地高12位右移18位,然后与TTB寄存器中的内容相或,得到的是第一级段描述符的地址,也就是上图中的Seltion level one descriptor的地址,该地址中的内容:

31~20位:0x30000012 映射到物理地址的段基址

19~0 位:该段的一些信息,比如访问权限等等

 

Seltion level one descriptor地址中的内容的31~20位只是物理地址31~20位而已,剩下的19~0位是从0x30000012这个虚拟地址的19~0位得来的。取出物理地址以后就把物理地址中的内容送到R1中了。

你可能感兴趣的:(c,工作,table,reference,Descriptor,translation)