S3C2440MMU地址变换过程
1、运行时装入(程序在运行之前,只需要将那些当前要运行的部分先装入内存,其余部分在用到时再从磁盘调入,而当内存耗光时再将暂时不用的部分调出到磁盘)使得一个大程序可以在较小的内存空间中运行,也使得内存中可以同时装入更多的程序并发执行。
2、虚拟地址最终需要转换成物理地址才能读写实际的数据,下图是VA和MVA的关系
2.1、CPU核看到的VA,caches和MMU看到和使用的而是MVA,实际设备使用的是PA
3、虚拟地址到物理地址的转换过程
页表基址寄存器?
3.1、转换方法用表格存储虚拟地址对应的物理地址
3.2、下面是S3C2440地址转换图
3.3、一级页表使用4096个描述符来表示这4GB空间,每个描述符对应1MB虚拟地址,要么存储1MB物理地址空间的起始地址,要么存储下一级页表物理地址
3.4、下图就是一级页表描述符的格式
3.5、粗页表描述符,细页表描述符保存二级页表物理地址,共256个条目,一个条目表示4k大小的物理地址空间,一张粗页表表示1MB大小的物理地址空间
3.6、下图是段的地址转换过程
3.7、下图是二级页表描述符格式
3.8、下图是保存在粗页表中的大页描述符时,地址转换过程
3.9、下图是保存在粗页表中的小页描述符时,地址转换过程
3.10、下图是保存在粗页表中的极小页描述符时,地址转换过程
3.11、获得了地址转换的结论,如下图
MMU的内存访问权限检查
1、“域”决定是否对某块内存进行权限检查
1.1、下图展示了CP15寄存器C3的每两位对应一个域的情形,S3C2440总共16个域
下图是域访问控制寄存器C3每两位数据代表的含义
1.2、一级页表描述符bit[8:5]告诉了我们这1M内存属于哪个域,例如bit[8:5]=0b1111,则页面的该项指示的这1M内存属于域15,CP15寄存器C3的相应位bit[31:30]=0b11,权限检查的任务就会交给二级页表中的大页/小页描述符中的。位“AP3”,“AP2”,“AP1”,“AP0”。
2、“AP”决定如何对某块内存进行权限检查
下图是AP,S/R位的访问权限对照
3、下图是CPU核与协处理器数据传递指令的语法格式