带有4级分页的armV8 CPU上的64位虚拟地址中的pgd,pmd pte和页面移位位是什么?
我需要此信息来调试手头的问题。
答案 0 :(得分:2)
这里的文件非常清楚地解释了 https://www.kernel.org/doc/Documentation/arm64/memory.txt
使用4KB页面进行翻译表查找:
+--------+--------+--------+--------+--------+--------+--------+--------+
|63 56|55 48|47 40|39 32|31 24|23 16|15 8|7 0|
+--------+--------+--------+--------+--------+--------+--------+--------+
| | | | | |
| | | | | v
| | | | | [11:0] in-page offset
| | | | +-> [20:12] L3 index
| | | +-----------> [29:21] L2 index
| | +---------------------> [38:30] L1 index
| +-------------------------------> [47:39] L0 index
+-------------------------------------------------> [63] TTBR0/1
L0 - PGD,L1 - PUD,L2 - PMD,L3 - PTE
Aarch64仅使用0-39位(3级分页)。因此,对于无政府系统,PGD(L0) = PUD(L1) = [38:30]
。其余的映射保持不变。