介绍
早期的ARM系统仅需要MB级别的RAM,但是,随着设备的升级,现在更多复杂的智能手机设备 需要 百M甚至GB级别的RAM,而32bit的物理地址空间就显得捉襟见肘了。
更让人紧张的是,这些地址空间不仅仅是RAM占用了,还有 外设、FLASH存储器以及系统ROM也占用了部分地址空间。
新兴起的 移动虚拟化 需要更多是RAM,当然在 Guest OS级别一般来说是不需要这么多的。 ARM LPAE 对linux系统的开发提供了这方面的支持。第一个linux上对LPAE的支持是是在 2010年十月份,发布在LKML(https://lkml.org/)上的。LKML全称是 Linux Kernel Mailing List ,中文 linux 内核邮件列表。它是专门维护linux 内核的一个组织。
经典ARM MMU 与支持LPAE的比较
经典的ARM MMU特性如下:
32bit的物理地址空间。
2级页表转换。
1. 通过TTBR0标示的 用户空间的映射; 以及TTBR1 标示的内核空间的映射。但是对于 内核空间和user空间的内存是严格限制的。
2. 32bit 的页表项( table entres: 页表项,或者说 页表条目)。
1级页表八婆韩4096个页表项(4 pages for PGD)。
1. 每个页表项可以映射为 1MB的段(section)。
2. 每个页表项可以指向 二级页表。
3. 实现已定义的 16MB supersections。
二级页表包含256个条目,每个条目指向4KB的页。 每个二级页表1KB 。
传统的ARM MMU 的限制