É uma atualização do BIOS em um laptop feita alterando alguns microcódigo?

0

Como um BIOS é atualizado? É por microprogramação ou microcodificação? Se não, então o que acontece?

    
por Jsmith 31.12.2015 / 20:38

3 respostas

0

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.

    
por 31.12.2015 / 21:30
1

Em uma plataforma Intel moderna, o BIOS é armazenado em um chip de memória Flash NOR da SPI (Serial Peripheral Interface) conectado ao PCH. O método exato de atualização varia de fornecedor de BIOS para fornecedor, mas eu costumava manter um BIOS baseado em UEFI da AMI para minha empresa. A ferramenta de atualização de firmware (AmiFlash) pode ser executada a partir do Windows, do shell UEFI ou de um ambiente DOS com inicialização automática e simplesmente sobrescreve o conteúdo desse flash SPI.

No passado, as plataformas Intel costumavam ter um dispositivo de armazenamento baseado em FWH (Hub de Firmware), que ficava no barramento LPC (Low Pin Count).

As atualizações de microcódigo geralmente são fornecidas como parte de uma atualização do BIOS e são aplicadas como blobs binários em cada ciclo de energia - a CPU real não é modificada de nenhuma maneira ou forma.

Eu imagino que a AMD é bastante similar - eles provavelmente também se mudaram para a memória SPI convencional.

Se você interromper um ciclo de energia ou outra interrupção no meio de uma atualização, sua plataforma será bloqueada. Algumas placas-mãe têm flashes SPI duplos, permitindo o uso de uma abordagem de estilo de comutação de banco A / B.

    
por 31.12.2015 / 21:03
-1

As atualizações de firmware são essencialmente o piscar de um pedaço de memória em um chip de memória flash ou dispositivo EEPROM na placa-mãe. O código da bios é muito crítico, pois é o código de inicialização para colocar o computador em funcionamento para o sistema operacional específico (Windows, Linux, etc.). Além disso, o BIOS lida com muitas outras funções, atribuições críticas de E / S, seleção de unidades de inicialização, etc.

O sistema operacional tem um aplicativo que lida com a atualização real do código do BIOS, você pode baixar o novo código (em formato hexadecimal) de uma página da web, ou possivelmente através de um pendrive USB, e o fabricante da placa mãe irá fornecer um programa que fala com o seu hardware, e 'empurra' o novo BIOS para a placa-mãe.

Muitas rotinas de atualização de BIOS de placa-mãe high-end têm um método de atualização à prova de falhas, caso o dispositivo perca energia durante a atualização. O novo código é gravado em uma área vazia e, em seguida, uma soma de verificação é baixada. O novo código passa pelo cálculo da soma de verificação para verificar se está correto. Se estiver correto, um sinalizador no BIOS aponta para a nova área de memória. Em seguida, o computador é reinicializado e o novo código é usado. Se algo der errado, o sinalizador ainda apontará para o código antigo e o usuário será informado para reaplicar a atualização.

Escrevi e mantive o código de atualização para 'caixas-pretas' incorporadas usadas em transporte comercial, dispositivos médicos e dispositivos multimídia; leitores de mp3, decodificadores, etc.

    
por 31.12.2015 / 21:12