![¿Cómo determina un BIOS la cantidad de RAM disponible?](https://rvso.com/image/1466423/%C2%BFC%C3%B3mo%20determina%20un%20BIOS%20la%20cantidad%20de%20RAM%20disponible%3F.png)
Si el BIOS es un programa de 16 bits que se ejecuta en modo real, y en este modo es posible abordar sólo 1 MB, ¿cómo determina el BIOS la cantidad de RAM disponible, como 1 GB, por ejemplo?
Respuesta1
La BIOS es un programa de 16 bits que se ejecuta en modo real y en este modo sólo es posible direccionar 1 MB.
Esto es incorrecto.
El modo real de 16 bits no limita el procesador a 1 MB de memoria.
Si bien es cierto que un procesador x86 comienza en modo real y utiliza de forma predeterminada el conjunto de instrucciones 8086 de 16 bits, existen extensiones en el conjunto de instrucciones 80286. Si antepone una instrucción 8086 con el byte 0x67, esto permitirá que esa instrucción acceda a un registro de 32 bits, que tiene acceso a 2 32 bytes o 4 GiB de memoria.
Si está utilizando un procesador de 64 bits, el procesador puede usar PAE (Extensión de dirección física), que le da al procesador acceso a 2,52 bytes de memoria, más de lo que se puede instalar físicamente en cualquier placa base moderna.
FuenteCómo el BIOS puede detectar el tamaño completo de la memoria extendida
¿Cómo determina el BIOS la cantidad de RAM disponible, como 1 GB, por ejemplo?
Utiliza métodos que están documentados en las hojas de datos del controlador de memoria (puente norte).
La mayoría de los BIOS no pueden usar RAM hasta que detecten el tipo de RAM instalada, luego detecten el tamaño de cada módulo de memoria y luego configuren el chipset para usar la RAM detectada.
Todo esto depende de los métodos específicos del chipset y generalmente está documentado en las hojas de datos del controlador de memoria (puente norte).
La RAM no se puede utilizar para ejecutar programas durante este proceso. Inicialmente, el BIOS se ejecuta desde la ROM, por lo que puede jugar los juegos necesarios con los chips de RAM. Pero es completamente imposible hacer esto desde cualquier otro programa.