Knowledge (XXG)

Intel 5-level paging

Source đź“ť

89: 69: 333: 103:
The 5-level paging is enabled by setting bit 12 of the CR4 register (known as LA57). This is only used when the processor is operating in 64 bit mode, and only may be modified when it is not. If the bit is not set, or the 5-level paging feature is not supported, the processor uses the 4-level page
136:
corresponding to a virtual address. This means that, in the worst case, the processor or the memory manager has to access physical memory six times for a single virtual memory access, rather than five for the previous iteration of x86-64 processors. This results in slightly reduced memory access
115:
Future processors may allow full 64-bit virtual address space by extending the size of page table descriptors to 12 bits (4096 page table entries) and memory offset to 16 bits (64 KiB page size) in the 4-level paging scheme or 21 bits (2 MiB page size) in the 5-level scheme. Extending page table
99:
With 5-level paging enabled, bits 57 through 63 must be copies of bit 56. This is the same as with 4-level paging, where the high-order bits of a virtual address that do not participate in address translation must be the same as the most significant implemented bit.
80:
paging), the 64-bit virtual memory address is divided into five parts. The lowest 12 bits contain the offset within the 4 KiB memory page, and the following 36 bits are evenly divided between the four 9 bit descriptors, each linking to a 64-bit
141:(TLB). Future extensions may reduce page walks by limiting virtual address space per application, with dedicated hardware flags in an extended 128 bit page table entry, and allowing a larger 64 KiB or 2 MiB 492: 96:
5-level paging adds another 9 bit page table descriptor, making it possible to use bits 0 through 56. This multiplies the address space by 512 and increases the limit to 128 PB.
351:. Cambridge, MA: Institute of Electrical and Electronics Engineers., IEEE Computer Society., ACM Special Interest Group on Microprogramming. 14 October 2017. p. 450. 116:
entry size from 64 to 128 bits would allow arbitrary page sizes, as additional hardware flags would change the size and operation of descriptors on lower paging levels.
85:
in a 512-entry page table for each of the four paging levels. This makes it possible to use bits 0 through 47 in the virtual address, for a total of 256 TB.
450: 513: 331:, Larry Seiler, "64KB page system that supports 4KB page operation", published 2016-12-29, issued 2018-01-02, assigned to Intel Corp. 471: 197:
Windows 10 and 11 with server versions also support this extension in their latest updates, where it is provided by a separate kernel image called
225: 194:
supports fewer levels, Linux emulates extra levels that do nothing. A similar change was previously made to extend from three levels to four.
364: 187: 296: 690: 416: 243: 68: 191: 186:, it consisted of extending the Linux memory model to use five levels rather than four. This is because, although Linux 165: 138: 275: 388: 420: 685: 105: 675: 572: 190:
the details of the page tables, it still depends on having a number of levels in its own representation. When an
183: 154: 57: 539: 428: 680: 142: 129: 108:(PAE), where the third level of paging tables to allow 36-bit addressing was enabled by setting a bit in 648:"Old farts like me will remember the days of ntoskrnl.exe, ntkrnlpa.exe, ntkrnlmp.exe and ntkrpamp.exe" 595: 328: 651: 132:
or the memory management code in the operating system navigates the tree of page tables to find the
349:
MICRO-50: the 50th Annual IEEE/ACM International Symposium on Microarchitecture : proceedings
514:"First Linux 4.14 release adds "very core" features, arrives in time for kernel's 26th birthday" 567: 370: 360: 281: 157: 540:"Intel Working On 5-Level Paging To Increase Linux Virtual/Physical Address Space - Phoronix" 352: 133: 109: 301: 37: 178:
adds support for it. Support for the extension was submitted as a set of patches to the
88: 45: 669: 647: 248:
Intel's Architecture Day 2018: The Future of Core, Intel GPUs, 10nm, and Hybrid x86
198: 179: 175: 374: 125: 41: 493:"CPUID dump for 96-Core AMD Ryzen Threadripper PRO 7995WX (Storm Peak) Zen4" 356: 40:
from 48 bits to 57 bits by adding an additional level to x86-64's
544: 53: 49: 137:
speed. In practice this cost is greatly mitigated by caches such as the
655: 497: 128:"walks" longer. A page table walk occurs when either the processor's 82: 77: 33: 620: 168: 104:
table structure when operating in 64-bit mode. This is similar to
87: 29: 270: 268: 266: 264: 161: 478: 457: 297:"Operating Systems and PAE Support - Windows 10 hardware dev" 277:
Intel® 64 and IA-32 Architectures Software Developer's Manual
411: 409: 67: 145:
and backward compatibility with 4 KB page operations.
244:"Sunny Cove Microarchitecture: A Peek At the Back End" 16:
Processor extension for the x86-64 line of processors
220: 218: 216: 214: 76:In the 4-level paging scheme (previously known as 237: 235: 421:"CSE 451: Operating Systems: Paging & TLBs" 568:"[RFC, PATCHv1 00/28] 5-level paging" 56:. The extension was first implemented in the 8: 451:"Tuning Guide for AMD EPYC™ 9004 Processors" 32:documents, is a processor extension for the 182:on 8 December 2016. As was reported on the 36:line of processors. It extends the size of 621:"Four-level page tables [LWN.net]" 472:"4TH GEN AMD EPYC™ PROCESSOR ARCHITECTURE" 124:Adding another level of indirection makes 347:"CSALT: Context Switch Aware Large TLB". 566:Shutemov, Kirill A. (8 December 2016). 210: 323: 321: 319: 153:5-level paging is implemented by the 7: 162:EPYC 9004 and 8004 Series Processors 538:Michael Larabel (9 December 2016). 92:A diagram of five levels of paging 14: 72:4-level paging of the 64-bit mode 226:"5-Level Paging and 5-Level EPT" 228:. Intel Corporation. May 2017. 1: 44:, increasing the addressable 139:translation lookaside buffer 707: 646:@aionescu (23 June 2019). 106:Physical Address Extension 573:Linux kernel mailing list 184:Linux kernel mailing list 429:University of Washington 389:"ARM Information Center" 295:Hudek, Ted (June 2017). 24:, referred to simply as 596:"Page Table Management" 357:10.1145/3123939.3124549 130:memory management unit 93: 73: 42:multilevel page tables 691:X86 memory management 329:US patent 9858198 91: 71: 22:Intel 5-level paging 171:PRO 7900WX series. 501:. 19 October 2023. 393:infocenter.arm.com 169:Ryzen Threadripper 94: 74: 686:Memory management 627:. 12 October 2004 460:. September 2023. 366:978-1-4503-4952-9 282:Intel Corporation 158:microarchitecture 38:virtual addresses 698: 676:X86 architecture 660: 659: 643: 637: 636: 634: 632: 617: 611: 610: 608: 606: 592: 586: 585: 583: 581: 563: 557: 556: 554: 552: 535: 529: 528: 526: 524: 509: 503: 502: 489: 483: 482: 476: 468: 462: 461: 455: 447: 441: 440: 438: 436: 425: 413: 404: 403: 401: 399: 385: 379: 378: 344: 338: 337: 336: 332: 325: 314: 313: 311: 309: 292: 286: 285: 280:. Vol. 3A. 272: 259: 258: 256: 254: 239: 230: 229: 222: 134:page table entry 110:the CR4 register 83:page table entry 706: 705: 701: 700: 699: 697: 696: 695: 666: 665: 664: 663: 645: 644: 640: 630: 628: 619: 618: 614: 604: 602: 594: 593: 589: 579: 577: 565: 564: 560: 550: 548: 537: 536: 532: 522: 520: 511: 510: 506: 491: 490: 486: 474: 470: 469: 465: 453: 449: 448: 444: 434: 432: 423: 419:(Autumn 2008). 415: 414: 407: 397: 395: 387: 386: 382: 367: 346: 345: 341: 334: 327: 326: 317: 307: 305: 302:Microsoft Learn 294: 293: 289: 274: 273: 262: 252: 250: 241: 240: 233: 224: 223: 212: 207: 151: 122: 66: 17: 12: 11: 5: 704: 702: 694: 693: 688: 683: 681:Virtual memory 678: 668: 667: 662: 661: 654:) – via 638: 612: 600:www.kernel.org 587: 576:(Mailing list) 558: 530: 504: 484: 463: 442: 405: 380: 365: 339: 315: 287: 260: 242:Cutress, Ian. 231: 209: 208: 206: 203: 150: 149:Implementation 147: 121: 118: 65: 62: 48:from 256  46:virtual memory 26:5-level paging 15: 13: 10: 9: 6: 4: 3: 2: 703: 692: 689: 687: 684: 682: 679: 677: 674: 673: 671: 657: 653: 649: 642: 639: 626: 622: 616: 613: 601: 597: 591: 588: 575: 574: 569: 562: 559: 547: 546: 541: 534: 531: 519: 515: 508: 505: 500: 499: 494: 488: 485: 480: 473: 467: 464: 459: 452: 446: 443: 431: 430: 422: 418: 412: 410: 406: 394: 390: 384: 381: 376: 372: 368: 362: 358: 354: 350: 343: 340: 330: 324: 322: 320: 316: 304: 303: 298: 291: 288: 283: 279: 278: 271: 269: 267: 265: 261: 249: 245: 238: 236: 232: 227: 221: 219: 217: 215: 211: 204: 202: 200: 195: 193: 189: 185: 181: 177: 172: 170: 167: 163: 159: 156: 148: 146: 144: 140: 135: 131: 127: 119: 117: 113: 111: 107: 101: 97: 90: 86: 84: 79: 70: 63: 61: 59: 55: 51: 47: 43: 39: 35: 31: 27: 23: 19: 641: 629:. Retrieved 624: 615: 603:. Retrieved 599: 590: 578:. Retrieved 571: 561: 549:. Retrieved 543: 533: 521:. Retrieved 517: 512:Tung, Liam. 507: 496: 487: 466: 445: 433:. Retrieved 427: 396:. Retrieved 392: 383: 348: 342: 306:. Retrieved 300: 290: 276: 251:. Retrieved 247: 199:ntkrla57.exe 196: 192:architecture 180:Linux kernel 176:Linux kernel 173: 152: 123: 114: 102: 98: 95: 75: 60:processors. 52:to 128  25: 21: 20: 18: 481:. May 2024. 670:Categories 417:Levy, Hank 375:1032337814 308:27 January 253:15 October 205:References 166:Storm peak 143:page sizes 126:page table 64:Technology 188:abstracts 174:The 4.14 120:Drawbacks 631:26 April 605:26 April 580:26 April 551:26 April 545:Phoronix 523:25 April 435:26 April 398:26 April 155:Ice Lake 58:Ice Lake 656:Twitter 625:lwn.net 498:GitHub 373:  363:  335:  78:IA-32e 34:x86-64 652:Tweet 518:ZDNet 475:(PDF) 454:(PDF) 424:(PDF) 30:Intel 633:2018 607:2018 582:2018 553:2018 525:2018 437:2018 400:2018 371:OCLC 361:ISBN 310:2024 255:2019 164:and 479:AMD 458:AMD 353:doi 112:. 28:in 672:: 623:. 598:. 570:. 542:. 516:. 495:. 477:. 456:. 426:. 408:^ 391:. 369:. 359:. 318:^ 299:. 263:^ 246:. 234:^ 213:^ 201:. 160:, 54:PB 50:TB 658:. 650:( 635:. 609:. 584:. 555:. 527:. 439:. 402:. 377:. 355:: 312:. 284:. 257:.

Index

Intel
x86-64
virtual addresses
multilevel page tables
virtual memory
TB
PB
Ice Lake
4-level paging of the 64-bit mode
IA-32e
page table entry

Physical Address Extension
the CR4 register
page table
memory management unit
page table entry
translation lookaside buffer
page sizes
Ice Lake
microarchitecture
EPYC 9004 and 8004 Series Processors
Storm peak
Ryzen Threadripper
Linux kernel
Linux kernel
Linux kernel mailing list
abstracts
architecture
ntkrla57.exe

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑