2011-12-04 15 views
10

Un extracto del artículo de Wikipedia sobre Physical Address Extension:¿Cómo habilita PAE (extensión de dirección física) un espacio de direcciones de más de 4 GB?

procesador x86 hardware-arquitectura se aumenta con líneas de direcciones adicionales que se utilizan para seleccionar la memoria adicional, por lo tamaño de la dirección física aumenta desde 32 bits a 36 bits. Esto, en teoría, aumenta el tamaño máximo de la memoria física de 4 GB a 64 GB.

Junto con una imagen que explica el mecanismo:

enter image description here

Pero no puedo ver cómo el espacio de direcciones se amplía de 4 GB a 64 GB. Y 4 * 512 * 512 * 4K es igual a 4GB, ¿no?

+2

Memoria virtual! = Memoria física. Solía ​​llamarse "cambio de banco", un término mucho más descriptivo. http://en.wikipedia.org/wiki/Bank_switching –

Respuesta

10

x86 procesadores que se ejecutan en el modo de 32 bits utiliza las traducciones de página para direcciones de memoria. Esto significa que hay una capa de mapeo entre la dirección utilizada por el código (tanto el kernel como el modo de usuario) y la memoria física real. P.ej. en Windows, todos los procesos asignan la imagen del archivo .exe a la misma dirección.

La capa de asignación entre las direcciones virtuales y físicas normalmente solo puede asignar 4GB de memoria. Con PAE habilitado, las direcciones virtuales de 32 bits se asignan a direcciones físicas de 36 bits. Aún así, un solo proceso no puede acceder a más de 4 GB a la vez. Eso es lo que ve en la imagen que ha pegado, el espacio de direcciones de 32 bits de un proceso. También puede ver que el PTE (Entrada de la tabla de páginas) que contiene la dirección física tiene 64 bits de ancho.

Una aplicación compatible con PAE puede intercambiar diferentes partes de la memoria en el espacio de direcciones visibles para utilizar más de 4 GB de RAM, pero solo puede ver 4 GB en un solo punto en el tiempo.

2

No es así. La página de direcciones nunca cambia. Lo que ocurre es que a través de las llamadas a la API puede CAMBIAR las áreas de memoria contra otras áreas de la memoria. Por lo tanto, aún tiene un espacio de direcciones completo de 4 gb (de 2 a 3 gb utilizable), pero puede tener otros 2000 bloques de 512 mb que puede intercambiar en una parte del espacio de direcciones.

5

Ese es el espacio de direcciones virtual que sigue siendo de 4 GB. El espacio de direcciones físicas es más grande porque las entradas de la tabla de páginas contienen direcciones físicas más largas de páginas.

Ver, la imagen dice "entrada de PD de 64 bits" y "entrada de PT de 64 bits". Esos 32 bits adicionales de las entradas constituyen las direcciones físicas más largas de las páginas.

Con este esquema particular, su aplicación puede gestionar hasta 4GB de memoria (menos la parte del núcleo generalmente inaccesible debido a la protección) a la vez, pero si considera varias aplicaciones, pueden administrar más de 4GB de memoria juntas .

Cuestiones relacionadas