![Como um BIOS determina a quantidade de RAM disponível?](https://rvso.com/image/1466423/Como%20um%20BIOS%20determina%20a%20quantidade%20de%20RAM%20dispon%C3%ADvel%3F.png)
Se o BIOS é um programa de 16 bits rodando em modo real, e neste modo é possível endereçar apenas 1 MB, como o BIOS determina a quantidade de RAM disponível, como 1 GB por exemplo?
Responder1
O BIOS é um programa de 16 bits rodando em modo real, e neste modo é possível endereçar apenas 1MB.
Isso está incorreto.
O modo real de 16 bits não limita o processador a 1 MB de memória.
Embora seja verdade que um processador x86 começa em modo real e o padrão é o conjunto de instruções 8086 de 16 bits, existem extensões no conjunto de instruções 80286. Se você prefixar uma instrução 8086 com o byte 0x67, isso permitirá que a instrução acesse um registrador de 32 bits, que tem acesso a 2 32 bytes, ou 4GiB de memória.
Se você estiver usando um processador de 64 bits, o processador poderá usar PAE (Extensão de endereço físico), que dá ao processador acesso a 2.52 bytes de memória, mais do que pode ser instalado fisicamente em qualquer placa-mãe moderna.
FonteComo o BIOS pode detectar o tamanho total da memória estendida
Como o BIOS determina a quantidade de RAM disponível, como 1 GB, por exemplo?
Ele usa métodos documentados nas folhas de dados do controlador de memória (Ponte norte).
A maioria dos BIOS não pode usar RAM até detectar o tipo de RAM instalada, detectar o tamanho de cada módulo de memória e configurar o chipset para usar a RAM detectada.
Tudo isso depende de métodos específicos do chipset e geralmente está documentado nas folhas de dados do controlador de memória (northbridge).
A RAM fica inutilizável para a execução de programas durante esse processo. O BIOS inicialmente é executado a partir da ROM, para que possa rodar os jogos necessários com os chips de RAM. Mas é completamente impossível fazer isso dentro de qualquer outro programa.