xref: /OK3568_Linux_fs/kernel/Documentation/translations/zh_CN/arm64/hugetlbpage.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun.. include:: ../disclaimer-zh_CN.rst
2*4882a593Smuzhiyun
3*4882a593Smuzhiyun:Original: :ref:`Documentation/arm64/hugetlbpage.rst <hugetlbpage_index>`
4*4882a593Smuzhiyun
5*4882a593SmuzhiyunTranslator: Bailu Lin <bailu.lin@vivo.com>
6*4882a593Smuzhiyun
7*4882a593Smuzhiyun=====================
8*4882a593SmuzhiyunARM64中的 HugeTLBpage
9*4882a593Smuzhiyun=====================
10*4882a593Smuzhiyun
11*4882a593Smuzhiyun大页依靠有效利用 TLBs 来提高地址翻译的性能。这取决于以下
12*4882a593Smuzhiyun两点 -
13*4882a593Smuzhiyun
14*4882a593Smuzhiyun  - 大页的大小
15*4882a593Smuzhiyun  - TLBs 支持的条目大小
16*4882a593Smuzhiyun
17*4882a593SmuzhiyunARM64 接口支持2种大页方式。
18*4882a593Smuzhiyun
19*4882a593Smuzhiyun1) pud/pmd 级别的块映射
20*4882a593Smuzhiyun-----------------------
21*4882a593Smuzhiyun
22*4882a593Smuzhiyun这是常规大页,他们的 pmd 或 pud 页面表条目指向一个内存块。
23*4882a593Smuzhiyun不管 TLB 中支持的条目大小如何,块映射可以减少翻译大页地址
24*4882a593Smuzhiyun所需遍历的页表深度。
25*4882a593Smuzhiyun
26*4882a593Smuzhiyun2) 使用连续位
27*4882a593Smuzhiyun-------------
28*4882a593Smuzhiyun
29*4882a593Smuzhiyun架构中转换页表条目(D4.5.3, ARM DDI 0487C.a)中提供一个连续
30*4882a593Smuzhiyun位告诉 MMU 这个条目是一个连续条目集的一员,它可以被缓存在单
31*4882a593Smuzhiyun个 TLB 条目中。
32*4882a593Smuzhiyun
33*4882a593Smuzhiyun在 Linux 中连续位用来增加 pmd 和 pte(最后一级)级别映射的大
34*4882a593Smuzhiyun小。受支持的连续页表条目数量因页面大小和页表级别而异。
35*4882a593Smuzhiyun
36*4882a593Smuzhiyun
37*4882a593Smuzhiyun支持以下大页尺寸配置 -
38*4882a593Smuzhiyun
39*4882a593Smuzhiyun  ====== ========   ====    ========    ===
40*4882a593Smuzhiyun  -      CONT PTE    PMD    CONT PMD    PUD
41*4882a593Smuzhiyun  ====== ========   ====    ========    ===
42*4882a593Smuzhiyun  4K:         64K     2M         32M     1G
43*4882a593Smuzhiyun  16K:         2M    32M          1G
44*4882a593Smuzhiyun  64K:         2M   512M         16G
45*4882a593Smuzhiyun  ====== ========   ====    ========    ===
46