# RAM-CMOS

BIOS de memória não volátil, mais conhecido como ROM-CMOS, refere-se à memória na placa-mãe de um computador pessoal que contém o sistema BIOS Basic Input Output System, responsável pelas configurações básicas de entrada e saída, e às vezes, o código usado para inicializar o computador e carregar o sistema operacional. A memória não volátil, historicamente, era denominada CMOS-ROM ou apenas CMOS porque tradicionalmente usava um chip de memória CMOS de baixo consumo (o Motorola MC146818 ou um de seus clones de alta capacidade), o qual era alimentado por uma pequena bateria quando a energia do sistema era desligada. O termo permanece em uso corrente neste contexto, embora seja considerado equivocado. O BIOS não volátil em computadores modernos pode ser armazenado em chips EEPROM ou de memória flash e não mais em CMOS. Nestes casos, a bateria de backup é usada para manter o chip do RTC sincronizado. A NVRAM normalmente possui uma capacidade de armazenamento de 512 bytes, a qual é suficiente para todas as configurações do BIOS.

## Erros de verificação do CMOS

Quando inicializamos o computador ele executa o POST (Power On Self Test), que é um teste rápido que confere se o que está configurado no BIOS está fisicamente conectado ao computador.
Erros de verificação do CMOS ocorrem tipicamente se o programa POST do computador:
* Encontrar um dispositivo que não está gravado no CMOS.
* Não encontrar um dispositivo que está gravado no CMOS.
* Encontrar um dispositivo que possua configurações diferentes daquelas que foram gravadas no CMOS.
* Detectar um erro de soma do CMOS (checksum error).

## Bateria do CMOS

A memória e o relógio de tempo real são alimentados geralmente por uma bateria-moeda CR2032 de lítio. Estas baterias duram de dois a dez anos, dependendo do tipo de placa-mãe, temperatura ambiente e do tempo que o sistema ficou desligado, enquanto outros tipos comuns de baterias podem durar períodos significativamente maiores ou menores, tais como a CR2016, capaz de durar cerca de 40% a mais. Temperaturas mais altas e períodos maiores com o computador desligado diminuem a vida útil da bateria. Ao substituir a bateria, a hora e data do sistema e as configurações do BIOS CMOS podem voltar aos seus valores-padrão. Isto pode ser evitado substituindo-se a bateria após o computador ter sido desligado por software (ou seja, sem desligar no botão de força), mas ainda conectado na tomada. Em placas-mãe ATX, isso irá fornecer 5V de energia stand-by mesmo com o computador aparentemente "desligado" e manterá a memória CMOS energizada.

## Resetando as configurações do CMOS

Para acessar o BIOS Setup quando a máquina deixa de funcionar, ocasionalmente é necessário tomar uma atitude drástica. Em computadores antigos, com RAM alimentada por bateria, remover a bateria e dar um curto-circuito nos terminais da mesma durante alguns segundos resolvia o problema; em máquinas mais modernas, isso apenas reinicializa o RTC. Algumas placas-mães oferecem um jumper de reset de CMOS. Em outros casos, o chip EEPROM tem de ser dessoldado e os dados nele contidos têm de ser editados manualmente usando um programador. Às vezes, basta aterrar a linha CLK ou DTA do barramento I²C da EEPROM no momento certo durante o boot; todavia, isso exige conhecimento preciso de soldagem de componentes em montagem superficial. Se a máquina permite fazer o boot mas não que se entre no BIOS Setup, pode ser tentado "danificar" deliberadamente a verificação de soma do CMOS, fazendo-se escritas diretas na área protegida da ROM CMOS através de um utilitário como o debug.exe, o que corromperá os dados. No próximo boot, o computador geralmente assume os valores-padrão de fábrica.