Diferentemente da memória flash, as configurações da BIOS memória não volátil (que tem sido, pelo menos historicamente, muitas vezes implementado usando a tecnologia semicondutor de óxido metálico complementar , portanto, o apelido" CMOS memory ") será limpo se a energia for removida dele. Uma pequena bateria conectada à placa-mãe fornece energia quando a energia externa é removida da placa-mãe. Essa bateria também aciona o relógio em tempo real quando outras fontes de energia estão indisponíveis. Como todas as baterias, eventualmente elas se esgotam e precisam ser substituídas; isso pode acontecer depois de 5 a 10 anos, dependendo do uso do sistema. "CMOS checksum error" (erro de soma de verificação CMOS) (e mensagens semelhantes) ou o relógio do sistema que está sendo reinicializado são sinais clássicos de esgotamento da bateria.
As configurações do BIOS contêm vários valores críticos do sistema. Quando a memória não é mais mantida porque a bateria se esgotou, tudo se reverte para um padrão que é determinado pelo design físico e elétrico da memória, em oposição a um padrão que corresponde às configurações inseridas pelo usuário. Um mecanismo precisa estar pronto para detectar e lidar com essa situação.
Pode-se imaginar a memória de configurações sendo digitalizada e algum conjunto de verificações de integridade sendo executadas nos dados, o que provavelmente pegaria o que precede na grande maioria dos casos. Mas pode não pegar todos eles e uma soma de verificação fornece benefícios adicionais. Primeiramente, permite detectar qualquer corrupção inadvertida dos dados. Lembre-se de que, no design original do IBM PC XT / AT, qualquer processo poderia gravar em qualquer local da memória, incluindo a emissão de instruções de gravação na memória de configurações do BIOS, para que uma parte errante do software pudesse (inadvertida ou maliciosamente) corromper essas configurações. Por menor que seja, existe também a possibilidade de que uma reescrita legítima das configurações do sistema possa ser interrompida, por exemplo, devido a uma falha de energia.
A mecânica exata de como calcular a soma de verificação, onde armazenar a soma de verificação, o que exatamente é coberto pela soma de verificação e assim por diante, é específica da implementação para cada BIOS particular e possivelmente a versão do BIOS. A parte importante é que ele precisa detectar o caso em que a memória foi redefinida. Para cobrir diferentes designs de chip de memória, isso significa que ele precisa ser mais sofisticado do que uma simples soma (módulo 2 ^ n) de todos os bytes, mas pelo menos originalmente , o BIOS da IBM era 8 KiB (que precisava fazer um lote mais do que isso), então também não pode ter sido um algoritmo particularmente complexo.
Como os dados protegidos pela soma de verificação são parcialmente críticos do sistema, simplesmente ignorar o erro (o que na verdade não chamaria erro; é mais um aviso) seria desaconselhável. Em vez disso, você deve entrar no utilitário de configuração ("Configuração do BIOS") e executar qualquer dança ritual necessária para executar uma detecção automática ou redefinir a configuração de fábrica e ajustar as configurações que precisam ser ajustadas dos valores padrão do sistema específico. Alguns sistemas que sabiam que os dados não eram críticos podem ter ignorado uma incompatibilidade de checksum e continuado, mas no IBM PC / AT em diante, isso significaria que você corria o risco de usar dados incorretos de configuração do sistema (incluindo a geometria do disco rígido; a autodetecção da geometria HDD veio muito mais tarde, e me lembro de usar um sistema baseado em 386 que exigia configuração manual da geometria HDD Configuração do BIOS).