Como eu escrevi na minha resposta a essa pergunta a sabedoria popular recebida sobre o assunto - como infelizmente exemplificado por outras respostas lá (e em outro lugar no SuperUser) - está preso no mundo como era por volta de 1991, apesar da riqueza de referências técnicas disponíveis explicando como é agora o contrário.
Você não teria ficado tão confuso se tivesse lido a minha resposta, porque você não estaria perguntando sobre "BIOS carregado pela ROM" em primeiro lugar.
Seu "chip do BIOS" não é ROM; não há código de máquina entre a inicialização do processador e a primeira instrução no firmware; e o "M" em "RAM" e "ROM" significa "memória".
Como escrevi antes, nos PCs modernos, o firmware da máquina é mantido em RAM não volátil . Não é ROM como costumava ser. Veja a resposta anterior para detalhes do chip NVRAM conectado ao barramento LPC. (Por exemplo: Em uma máquina que está desmontada ao meu lado enquanto digito isso, a NVRAM que mantém o firmware é um Pm49FL004T, um chip de RAM LPC Flash.)
As CPUs de 32 bits não são inicializadas no modo real e não começam com um endereço abaixo da linha de 1 MiB. Isso é décadas de lixo desatualizado dos tempos dos processadores x86 de 16 bits. Eles começam no que é coloquialmente conhecido como modo irreal , e novamente na minha resposta anterior eu dei os detalhes do que realmente tem sido o caso desde o advento do 80386 . Eles carregam sua primeira instrução a partir de um endereço que, na verdade, está localizado na parte superior do espaço de endereço de 32 bits, FFFFFFF0
.
Em minha resposta anterior, informei detalhadamente onde o firmware da máquina é mapeado principalmente para o espaço de endereço físico em máquinas x86 de 32 e 64 bits. Lembre-se: Tanto a RAM quanto a ROM são memória . Endereços físicos são endereços memória , no barramento do sistema. Eles podem endereçar RAM ou ROM. (Eles podem até mesmo abordar outras coisas também, mas isso está apenas complicando essa discussão.) O endereço físico FFFFFFF0
é 16 bytes abaixo do topo da faixa de 512KiB, onde os 512KiB superiores do firmware, em RAM não volátil, é < em> sempre mapeado no barramento do sistema pelo "chipset".
Não há "carregamento" de algum chip ROM mítico que ocorre na inicialização ou reinicialização do processador. O chip que contém o firmware é RAM não volátil . Ele retém seu conteúdo, escrito quando é "flashed", através de ciclos de energia. E a CPU apenas lê as instruções de firmware e os dados dela, através do barramento do sistema e através de um barramento LPC (e possivelmente uma ponte LPC / FWH) conectada ao barramento do sistema através do chipset, usando um endereço físico de memória.
Leitura adicional
- Chingistek. Folha de dados Pm49FL002 / Pm49FL004 .
- Intel Corporation. "9.1.4 Primeira instrução executada". Manual do Desenvolvedor de Software das Arquiteturas Intel® 64 e IA-32, Volume 3A: Guia de Programação do Sistema, Parte 1 .