162306a36Sopenharmony_ci.. include:: ../../disclaimer-zh_CN.rst 262306a36Sopenharmony_ci 362306a36Sopenharmony_ci:Original: :ref:`Documentation/arch/arm64/hugetlbpage.rst <hugetlbpage_index>` 462306a36Sopenharmony_ci 562306a36Sopenharmony_ciTranslator: Bailu Lin <bailu.lin@vivo.com> 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci===================== 862306a36Sopenharmony_ciARM64中的 HugeTLBpage 962306a36Sopenharmony_ci===================== 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci大页依靠有效利用 TLBs 来提高地址翻译的性能。这取决于以下 1262306a36Sopenharmony_ci两点 - 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci - 大页的大小 1562306a36Sopenharmony_ci - TLBs 支持的条目大小 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ciARM64 接口支持2种大页方式。 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci1) pud/pmd 级别的块映射 2062306a36Sopenharmony_ci----------------------- 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci这是常规大页,他们的 pmd 或 pud 页面表条目指向一个内存块。 2362306a36Sopenharmony_ci不管 TLB 中支持的条目大小如何,块映射可以减少翻译大页地址 2462306a36Sopenharmony_ci所需遍历的页表深度。 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci2) 使用连续位 2762306a36Sopenharmony_ci------------- 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci架构中转换页表条目(D4.5.3, ARM DDI 0487C.a)中提供一个连续 3062306a36Sopenharmony_ci位告诉 MMU 这个条目是一个连续条目集的一员,它可以被缓存在单 3162306a36Sopenharmony_ci个 TLB 条目中。 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci在 Linux 中连续位用来增加 pmd 和 pte(最后一级)级别映射的大 3462306a36Sopenharmony_ci小。受支持的连续页表条目数量因页面大小和页表级别而异。 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci支持以下大页尺寸配置 - 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ci ====== ======== ==== ======== === 4062306a36Sopenharmony_ci - CONT PTE PMD CONT PMD PUD 4162306a36Sopenharmony_ci ====== ======== ==== ======== === 4262306a36Sopenharmony_ci 4K: 64K 2M 32M 1G 4362306a36Sopenharmony_ci 16K: 2M 32M 1G 4462306a36Sopenharmony_ci 64K: 2M 512M 16G 4562306a36Sopenharmony_ci ====== ======== ==== ======== === 46