您的位置:首页 > 其它

OK6410(s3c6410)存储之MMU(内存管理单元)

2014-08-29 11:07 211 查看

MMU(内存管理单元):

一.MMU特性:

将虚拟地址转化为物理地址,并提供硬件机制的内存访问权限检查:(Arm1176jzfs Chapter 6 Memory Management Unit)

重点在:地址映射,页表的结构与建立,映射过程。

1.1地址分类:

虚拟地址空间,虚拟地址,物理地址空间,物理地址

虚拟地址最终需要转换为物理地址才能读写实际的数据,这通过将虚拟地址和物理地址划分为 同等大小 的一块块小空间,然后为这两类小空间建立映射关系。虚拟地址很可能远大于物理地址,有可能多块虚拟地址空间映射到同一块物理地址或则有些虚拟地址空间没有映射到具体的物理地址空间上去,在使用时再映射。

ARM的CPU地址转换过程涉及到三个概念:虚拟地址VA,

变换后的虚拟地址MVA, 物理地址PA

没有启动MMU之前,CPU核,cache,mmu,外设等使用的都是物理地址

启动MMU之后,CPU核对外发出虚拟地址VA, VA被转化为MVA供cache,MMU使用,在这里MVA被转换为PA; 最后PA作用于外设等读写实际设备。

总结:1.1:CPU看到的只是VA虚拟地址,至于VA是如何落实到物理地址PA,CPU核实不理会的

1.2 而cache和MMU也是看不见VA的,它们利用由MVA转换得到 PA,

1.3实际设备看不到VA ,MVA读写它们时使用的是物理地址。

1.4 VA到MVA的转换:实际上MVA就是除CPU外其它部分看眼中的VA。

由VA转换成MVA由硬件完成,如果VA>32M,则MVA=VA。

如果VA<32M时,考虑到不同进程所用VA有可能重叠的情况,一旦发生 重叠,那后面的地址转换工作量将将变得非常复杂,故将VA与进程PID 进行运算后作为MVA,通过读CP15的C13获得PID,VA小于32M时

MVA = VA |(PID<<25),再用MVA作为转换基地址,再转换成PA。

1.2虚拟地址到物理地址的转换过程:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: