1 minute read

1.2.1. Organización de la memoria

Entorno de ejecución en el modo de 64 bits

1.2.1. Organización de la memoria

Advertisement

El procesador accede a la memoria utilizando direcciones físicas de memoria. El tamaño del espacio de direcciones físico accesible para los procesadores depende de la implementación: supera los 4 Gbytes, pero es inferior a los 264 bytes posibles.

En el modo de 64 bits, la arquitectura proporciona soporte a un espacio de direcciones virtual o lineal de 64 bits (direcciones de 0 a 264 – 1), pero como el espacio de direcciones físico es inferior al espacio de direcciones lineal, es necesario un mecanismo de correspondencia entre las direcciones lineales y las direcciones físicas (mecanismo de paginación).

Al trabajar en un espacio lineal de direcciones, no se utilizan mecanismos de segmentación de la memoria, de manera que no son necesarios los registros de segmentos, excepto los registros de segmento FS y GS, que se pueden utilizar como registro base en el cálculo de direcciones de los modos de direccionamiento relativo.

Paginación

Este mecanismo es transparente para los programas de aplicación, y por lo tanto para el programador, y viene gestionado por el hardware del procesador y el sistema operativo.

Las direcciones virtuales son traducidas a direcciones físicas de memoria utilizando un sistema jerárquico de tablas de traducción gestionadas por el software del sistema (sistema operativo).

Básicamente, una dirección virtual se divide en campos, y cada campo actúa como índice dentro de una de las tablas de traducción. Cada valor en la posición indexada actúa como dirección base de la tabla de traducción siguiente.

Orden de los bytes

Los procesadores x86-64 utilizan un sistema de ordenación de los bytes cuando se accede a los datos que se encuentran almacenados en la memoria. En concreto, se utiliza un sistema little-endian, en el cual el byte de menos peso de un dato ocupa la dirección más baja de memoria.

En los registros también se utiliza el orden little-endian y por este motivo el byte menos significativo de un registro se denomina byte 0.

Tamaño de las direcciones

Los programas que se ejecutan en el modo de 64 bits generan directamente direcciones de 64 bits.

Modo compatibilidad Los programas que se ejecutan en el modo compatibilidad generan direcciones de 32 bits. Estas direcciones son extendidas añadiendo ceros a los 32 bits más significativos de la

This article is from: