MemTest86 muestra un espacio de direcciones de memoria mayor que la cantidad física

MemTest86 muestra un espacio de direcciones de memoria mayor que la cantidad física

En una computadora portátil con 4 GB de RAM, pensé que las direcciones de memoria deberían comenzar en el byte 0y terminar antes 0x1_0000_0000(_ es un separador agregado para mayor claridad), pero MemTest86 dice que termina en 0x1_6060_0000, pero ¿no son 1542 MB más?

De manera similar, en una computadora de escritorio con 16 GB de RAM, creo que debería terminar en 0x4_0000_0000, pero MemTest86 dice 0x4_2F60_0000, que es 758 MB más grande.

¿Por qué MemTest86 muestra espacios de direcciones mayores que la cantidad real de memoria física?

Respuesta1

Esta es una situación muy común en los sistemas modernos. Y por una buena razón.

Desde hace décadas, las computadoras han tenido dispositivos de hardware con memoria asignada. Se trata de un hardware especial al que la CPU puede acceder como si fuera memoria. Se utiliza para una comunicación rápida con dispositivos de hardware como el sistema de vídeo. Sin esto, las computadoras sufrirían una severa penalización en el rendimiento.

Para compatibilidad con sistemas operativos de 32 bits, este hardware de memoria asignada debe aparecer en el rango de direcciones inferior de 4 GB. En los sistemas modernos esto significa al menos varios cientos de MB, lo cual es bastante significativo. Dado que el hardware asignado a la memoria y la RAM no pueden existir en las mismas direcciones, una parte considerable de la RAM sería inaccesible. Esta es la razón por la que las versiones de Windows de 32 bits no pueden ver todos los 4 GB de RAM.

Esta no es una buena situacion. Pero existe una solución, al menos para aquellos sistemas operativos que puedan soportarla. La solución es reasignar aquellas partes de RAM que de otro modo serían inaccesibles a direcciones superiores a 4 GB. Esto es lo que estás viendo. En beneficio de los sistemas operativos de 32 bits, se dejará la mayor cantidad de RAM posible en direcciones inferiores a 4 GB.

Esta reasignación de memoria la realiza el hardware de la computadora y el BIOS, por lo que estará disponible para cualquier sistema operativo. Para ello están diseñados los sistemas operativos modernos de 64 bits y los programas de prueba de memoria. Por razones técnicas, las versiones cliente de Windows de 32 bits ignorarán toda la memoria superior a 4 GB. Con los sistemas operativos modernos, las aplicaciones nunca ven direcciones RAM físicas, por lo que el mapeo de memoria no les preocupa.

información relacionada