Modo largo - Long mode

En la arquitectura de computadora x86-64 , el modo largo es el modo en el que un sistema operativo de 64 bits puede acceder a las instrucciones y registros de 64 bits . Los programas de 64 bits se ejecutan en un submodo denominado modo de 64 bits, mientras que los programas de 32 bits y los programas en modo protegido de 16 bits se ejecutan en un submodo denominado modo de compatibilidad. Los programas en modo real o virtual 8086 no se pueden ejecutar de forma nativa en modo largo.

Visión general

Un procesador x86-64 actúa de manera idéntica como un procesador IA-32 cuando se ejecuta en modo real o en modo protegido, que son submodos admitidos cuando el procesador no está en modo largo.

Un bit en el campo de atributos extendidos de CPUID informa a los programas en modo real o protegido si el procesador puede pasar al modo largo, lo que permite que un programa detecte un procesador x86-64. Esto es similar al bit de atributos de CPUID que utilizan los procesadores Intel IA-64 para permitir que los programas detecten si se están ejecutando bajo la emulación IA-32.

Con una computadora que ejecuta BIOS heredado , el BIOS y el cargador de arranque se ejecutan en modo Real , luego el kernel del sistema operativo de 64 bits verifica y cambia la CPU al modo Long y luego inicia nuevos subprocesos en modo kernel que ejecutan código de 64 bits. Con una computadora que ejecuta UEFI , el firmware UEFI (excepto CSM y la ROM de opción heredada ), el cargador de arranque UEFI y el kernel del sistema operativo UEFI se ejecutan en modo largo.

Limitaciones de memoria

Si bien los tamaños de registro han aumentado a 64 bits desde la arquitectura x86 anterior , el direccionamiento de memoria aún no se ha incrementado a los 64 bits completos. Por el momento, no es práctico equipar las computadoras con suficiente memoria para requerir 64 bits completos. Siempre que ese sea el caso, las unidades de carga / almacenamiento, las etiquetas de caché , las MMU y las TLB se pueden simplificar sin ninguna pérdida de memoria utilizable. A pesar de esta limitación, el software se programa utilizando punteros completos de 64 bits y, por lo tanto, podrá utilizar espacios de direcciones progresivamente más grandes a medida que sean compatibles con los futuros procesadores y sistemas operativos.

Límites actuales

Las primeras CPU que implementaron la arquitectura x86-64, a saber, las CPU AMD Athlon 64 / Opteron (K8), tenían direccionamiento virtual de 48 bits y físico de 40 bits .

El espacio de direcciones virtuales de estos procesadores se divide en dos regiones de 47 bits, una que comienza en la dirección más baja posible y la otra se extiende hacia abajo desde la más grande. Si intenta utilizar direcciones que se encuentren fuera de este rango, se producirá una falla de protección general .

El límite del direccionamiento físico limita la cantidad de RAM instalada a la que puede acceder la computadora. En un sistema multiprocesador ccNUMA (Opteron), esto incluye la memoria que está instalada en los nodos remotos, porque las CPU pueden direccionar directamente (y almacenar en caché) toda la memoria sin importar si está en el nodo doméstico o remoto. El límite de 1  TB (40 bits) de memoria física para el K8 es enorme para los estándares típicos de las computadoras personales, pero podría haber sido una limitación para su uso en supercomputadoras. En consecuencia, la microarquitectura K10 (o "10h") implementa direcciones físicas de 48 bits y, por lo tanto, puede direccionar hasta 256  TB de RAM.

Cuando es necesario, la microarquitectura se puede expandir paso a paso sin los efectos secundarios del software y, al mismo tiempo, ahorrar costos con su implementación. Para una futura expansión, la arquitectura admite la expansión del espacio de direcciones virtuales a 64 bits y el direccionamiento de la memoria física a 52 bits (limitado por el formato de entrada de la tabla de páginas ). Esto permitiría al procesador direccionar 2 64 bytes (16 exabytes ) de espacio de direcciones virtuales y 2 52 bytes (4 petabytes ) de espacio de direcciones físicas.

Ver también

Referencias

enlaces externos