arm地址转换

来源:互联网 发布:mac系统照片储存路径 编辑:程序博客网 时间:2024/06/08 00:56

arm virtualization 地址转换


guest va -> ipa  -> host pa

guest va 通过stage1 mmu的三级页表转换成ipa。va的解析是2+9+9+12。每个entry是64bit

ipa(40bit) 通过stage2 mmu的四级页表装换成host pa。


ipa(40bit)使用的arm的LPAE功能

40bit的结构=10+9+9+12


Stage-1 and Stage-2 page table walk on ARMv7 using the LPAE memory long format descriptors. 

The virtual address (VA) is is first translated into a guest physical address (GPA) and finally into a host physical address (PA).


arm 64bit地址转换

LinuxARM644KB页表时,使用3级页表划分,支持最大39bit(即512GB)虚拟内存管理

最高的63bit用于区分决定页表是TTBR0还是TTBR1

虚拟页表分级结构如下,PGD/PMD/PTE都是9bit512entryLinuxMMU管理是按4级页表设计的,能兼容3级和2级页表实现。


32-bit:用户态程序和kernel程序的虚拟地址空间采用3GB+1GB的方式。MMU2级页表管理,PGD12bitPTE8bit

64-bit:用户态程序和Kernel程序的虚拟地址空间都是512GB


32-bitTEXT_OFFSET一般为0x8000swapper_pg_dir放在0x4000,4G pgd大小为16k

64-bitTEXT_OFFSET一般为0x80000swapper_pg_dir放在0x7d000, pgd大小为4k



0 0
原创粉丝点击