Articulo de referencia

Paginación de 5 niveles de Intel

La paginación de 5 niveles de Intel , denominada simplemente paginación de 5 niveles en la documentación de Intel , es una extensión del procesador para la línea de procesadores...

La paginación de 5 niveles de Intel , denominada simplemente paginación de 5 niveles en la documentación de Intel , es una extensión del procesador para la línea de procesadores x86-64 . [ 1 ] : 11 Extiende el tamaño de las direcciones virtuales de 48  bits a 57 bits al agregar un nivel adicional a las tablas de páginas multinivel  de x86-64 , aumentando la memoria virtual direccionable de 256 TiB a 128 PiB . La extensión se implementó por primera vez en los procesadores Ice Lake . [ 2 ]  

Tecnología

Paginación de 4 niveles del modo de 64 bits

En el esquema de paginación de 4 niveles (anteriormente conocido como paginación IA-32e ), la dirección de memoria virtual de 64 bits se divide en cinco partes. Los 12 bits menos significativos contienen el desplazamiento dentro de la página de memoria de 4 KiB, y los 36 bits siguientes se dividen equitativamente entre los cuatro descriptores de 9 bits, cada uno vinculado a una entrada de tabla de páginas de 64 bits en una tabla de páginas de 512 entradas para cada uno de los cuatro niveles de paginación. Esto permite utilizar los bits 0 a 47 en la dirección virtual, para un total de 256  TiB. [ 3 ] : 4 - 2

Diagrama de cinco niveles de paginación

La paginación de 5 niveles añade otro descriptor de tabla de páginas de 9 bits, lo que permite utilizar los bits  del 0 al  56. Esto multiplica el espacio de direcciones por 512 y aumenta el límite a 128  PiB.

Con la paginación de 5 niveles habilitada, los bits  57 a  63 deben ser copias del bit  56. [ 1 ] : 17 Esto es lo mismo que con la paginación de 4 niveles, donde los bits de orden superior de una dirección virtual que no participan en la traducción de direcciones deben ser iguales al bit implementado más significativo.

La paginación de 5 niveles se habilita configurando el bit 12 del registro CR4 (conocido como LA57). [ 1 ] : 16 Esto solo se usa cuando el procesador opera en modo de 64 bits y solo se puede modificar cuando no lo hace. [ 1 ] : 16 Si el bit no está configurado o la función de paginación de 5 niveles no es compatible, el procesador usa la estructura de tabla de páginas de 4 niveles cuando opera en modo de 64 bits. [ 3 ] : 4 - 22 Esto es similar a la Extensión de Dirección Física (PAE), donde el tercer nivel de tablas de paginación para permitir el direccionamiento de 36 bits se habilitaba configurando un bit en el registro CR4 . [ 4 ] [ 3 ] : 4 - 14

Los procesadores futuros podrían permitir un espacio de direcciones virtuales completo de 64 bits al extender el tamaño de los descriptores de la tabla de páginas a 12 bits (4096 entradas de la tabla de páginas) y el desplazamiento de memoria a 16 bits (tamaño de página de 64 KiB) en el esquema de paginación de 4 niveles o a 21 bits (tamaño de página de 2 MiB) en el esquema de 5 niveles. [ 5 ] Extender el tamaño de la entrada de la tabla de páginas de 64 a 128 bits permitiría tamaños de página arbitrarios, ya que indicadores de hardware adicionales cambiarían el tamaño y el funcionamiento de los descriptores en niveles de paginación inferiores. [ 5 ]

Desventajas

Agregar otro nivel de indirección hace que los "recorridos" de la tabla de páginas sean más largos. [ 6 ] Un recorrido de la tabla de páginas ocurre cuando la unidad de administración de memoria del procesador o el código de administración de memoria en el sistema operativo navega por el árbol de tablas de páginas para encontrar la entrada de la tabla de páginas correspondiente a una dirección virtual. [ 7 ] [ 3 ] : 4 - 22 Esto significa que, en el peor de los casos, el procesador o el administrador de memoria tiene que acceder a la memoria física seis veces para un solo acceso a la memoria virtual, en lugar de cinco para la iteración anterior de los procesadores x86-64. Esto resulta en una velocidad de acceso a la memoria ligeramente reducida. [ 8 ] En la práctica, este costo se mitiga en gran medida mediante cachés como el búfer de traducción de direcciones (TLB). [ 8 ] Las extensiones futuras pueden reducir los recorridos de página limitando el espacio de direcciones virtuales por aplicación, con indicadores de hardware dedicados en una entrada de tabla de páginas extendida de 128 bits, y permitiendo tamaños de página  más grandes de 64 KiB o 2  MiB y compatibilidad con versiones anteriores con operaciones de página de 4 KiB. [ 5 ] 

Implementación

La paginación de 5 niveles es implementada por la microarquitectura Ice Lake , [ 2 ] los procesadores de las series EPYC 9004 y 8004 [ 9 ] [ 10 ] y la serie Storm Peak Ryzen Threadripper PRO 7900WX. [ 11 ]

El kernel de Linux 4.14 añade soporte para ello. [ 12 ] El soporte para la extensión se envió como un conjunto de parches al kernel de Linux el 8 de diciembre de 2016. [ 13 ] Como se informó en la lista de correo del kernel de Linux , consistía en extender el modelo de memoria de Linux para usar cinco niveles en lugar de cuatro. [ 14 ] Esto se debe a que, aunque Linux abstrae los detalles de las tablas de páginas, todavía depende de tener un número de niveles en su propia representación. Cuando una arquitectura admite menos niveles, Linux emula niveles adicionales que no hacen nada. [ 15 ] Un cambio similar se realizó anteriormente para extender de tres a cuatro niveles. [ 16 ]

Windows 10 y 11 con versiones de servidor también admiten esta extensión en sus últimas actualizaciones, donde se proporciona mediante una imagen de kernel separada llamada ntkrla57.exe . [ 17 ]

Referencias

  1. 1 2 3 4 "Paginación de 5 niveles y EPT de 5 niveles" . Intel Corporation. Mayo de 2017.
  2. 1 2 Cutress, Ian. "Microarquitectura Sunny Cove: Un vistazo al funcionamiento interno" . Intel's Architecture Day 2018: El futuro de Core, las GPU de Intel, 10 nm y x86 híbrido . Archivado del original el 2 de mayo de 2019. Recuperado el 15 de octubre de 2019 .
  3. 1 2 3 4 Manual del desarrollador de software para arquitecturas Intel® 64 e IA-32 . Vol. 3A. Intel Corporation . 
  4. Hudek, Ted (junio de 2017). "Sistemas operativos y compatibilidad con PAE: desarrollo de hardware para Windows 10" . Microsoft Learn . Consultado el 27 de enero de 2024 .
  5. 1 2 3 Patente estadounidense 9858198 , Larry Seiler, "Sistema de páginas de 64 KiB que admite operación de páginas de 4 KiB", publicada el 29 de diciembre de 2016, emitida el 2 de enero de 2018, asignada a Intel Corp. 
  6. "CSALT: TLB grande con reconocimiento de cambio de contexto". MICRO-50: 50.º Simposio Internacional Anual IEEE/ACM sobre Microarquitectura : actas . Cambridge, MA: Instituto de Ingenieros Eléctricos y Electrónicos, Sociedad de Computación IEEE, Grupo de Interés Especial en Microprogramación de la ACM. 14 de octubre de 2017. pág. 450. doi : 10.1145/3123939.3124549 . ISBN   978-1-4503-4952-9OCLC 1032337814 
  7. "Centro de información de ARM" . infocenter.arm.com . Consultado el 26 de abril de 2018 .
  8. 1 2 Levy, Hank (otoño de 2008). "CSE 451: Sistemas operativos: paginación y TLB" (PDF) . Universidad de Washington . Recuperado el 26 de abril de 2018 .
  9. "Guía de optimización para procesadores AMD EPYC™ 9004" (PDF) . AMD . Septiembre de 2023.
  10. "ARQUITECTURA DEL PROCESADOR AMD EPYC™ DE CUARTA GENERACIÓN" (PDF) . AMD . Mayo de 2024.
  11. "Volcado de CPUID para AMD Ryzen Threadripper PRO 7995WX (Storm Peak) Zen4 de 96 núcleos" . GitHub . 19 de octubre de 2023.
  12. Tung, Liam. "La primera versión de Linux 4.14 añade características "fundamentales" y llega justo a tiempo para el 26.º aniversario del kernel" . ZDNet . Consultado el 25 de abril de 2018 .
  13. Michael Larabel (9 de diciembre de 2016). "Intel trabaja en paginación de 5 niveles para aumentar el espacio de direcciones virtuales/físicas de Linux - Phoronix" . Phoronix . Consultado el 26 de abril de 2018 .
  14. Shutemov, Kirill A. (8 de diciembre de 2016). " [ RFC, PATCHv1 00/28 ] Paginación de 5 niveles" . Lista de correo del kernel de Linux (Lista de correo) . Recuperado el 26 de abril de 2018 .
  15. "Gestión de tablas de páginas" . www.kernel.org . Consultado el 26 de abril de 2018 .
  16. "Tablas de páginas de cuatro niveles [ LWN.net ] " . lwn.net . 12 de octubre de 2004 . Consultado el 26 de abril de 2018 .
  17. @aionescu (23 de junio de 2019). "Los viejos como yo recordarán los días de ntoskrnl.exe, ntkrnlpa.exe, ntkrnlmp.exe y ntkrpamp.exe" ( Tweet ) vía Twitter .