Como um BIOS determina a quantidade de RAM disponível?

Como um BIOS determina a quantidade de RAM disponível?

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.

FonteDetectando memória (x86)

informação relacionada