How BIOS actually gets updated? Is it by by microprogramming/microcoding ? Of no, then what happens?
Antigamente, antes de o BIOS ser armazenado no flash EEPROM / NOR / NAND, você precisava substituir fisicamente a ROM do BIOS por um chip mais novo. Ou, se o chip fosse uma EEPROM, você poderia remover o chip, programá-lo em um programador de EEPROM e colocá-lo de volta. Quase sempre, a ROM foi encaixada para este propósito.
BIOS atualizáveis vivem em memória flash de montagem em superfície ou possivelmente EEPROM em sistemas mais antigos. A conexão (que é SPI como @Krunal Desai diz) para o resto do sistema é através do chipset. Todos os dispositivos de firmware do BIOS têm uma conexão com a CPU para permitir que o BIOS leia e execute código a partir da memória e também outra interface para permitir a programação.
Para atualizar o BIOS, um programa precisa falar com a interface de programação do chip flash e sobrescrever páginas dele com novos dados. Algo pode precisar ser feito para "desbloqueá-lo" primeiro. Estas são operações de E / S na mesma categoria geral que falar com um disco ou controlador de exibição, não é realmente uma operação de "microprogramação" ou "microcódigo".
Se você já se deparou com o termo "microcódigo" em relação aos BIOS antes, isso é uma coisa completamente diferente.
Muitas CPUs têm microcódigo, que são essencialmente pequenos programas que operam internamente dentro da CPU. A razão para isso é que algumas instruções complexas da CPU são mais fáceis / baratas de projetar e manipular pelo microcódigo do que diretamente no hardware. Um desenvolvedor de software normalmente não pode alterar o microcódigo de uma CPU.
Intel e AMD permitem que o microcódigo das CPUs seja atualizado caso ocorram erros ou erros na produção da CPU. Isso aconteceu recentemente com um chip Intel que introduziu "Transactional Memory" ou instruções TSX que não funcionavam corretamente. Geralmente, a maneira como funciona é que, enquanto o BIOS está inicializando o sistema, ele aplicará a atualização mais recente do microcódigo à CPU. Se uma atualização de microcódigo diferente for exibida, o fornecedor do hardware poderá emitir outra atualização do BIOS que tenha o microcódigo mais recente. Os sistemas operacionais também podem instalar o microcódigo mais recente.
Isso ainda não é "microprogramação", já que você está basicamente aplicando uma "atualização de CPU" aqui e não usando "microinstruções" individuais em seus próprios programas.
As atualizações de microcódigo são perdidas quando a energia é perdida e precisam ser aplicadas a cada inicialização.