Por que o chip ROM do BIOS não é feito com a tecnologia CMOS?

9

Depois de ler um curso de hardware de computador no BIOS / CMOS, ainda não consigo determinar o motivo pelo qual o chip ROM do BIOS não foi construído usando a tecnologia CMOS e por que ele está conectado a um chip separado chamado "CMOS" para armazenar o informações de configuração.

Isto é da nota da palestra :

Os programas são armazenados no chip do BIOS do sistema, enquanto os dados alteráveis ​​são armazenados no chip CMOS

Grupo de hardware do CMOS : Hardware comum, necessário, mas que pode ser alterado - RAM, discos rígidos, unidades de disquete, portas seriais e paralelas

Sei que o BIOS está armazenado em uma memória flash e que a tecnologia CMOS MOSFET dissipa menos energia em comparação com outras implementações.

Por que é apenas a ROM do BIOS que não usa o CMOS, como outros dispositivos de armazenamento - qual é exatamente a vantagem? E por que as informações de configuração do BIOS não podem ser armazenadas em seu próprio chip ROM em vez do "chip CMOS"?

Kais
fonte
11
O CMOS não requer uma bateria para reter os dados? Uma coisa é perder as configurações e o relógio quando a bateria acabar, mas seria um desastre se o BIOS fosse perdido. Você pode editar sua última frase. Não consigo entender o que você está perguntando.
Transistor
11
Bios é ROM enquanto os ajustes são RAM
Tony Stewart Sunnyskyguy EE75
11
@Kais nenhuma parte de uma ROM é gravável. É contrário ao próprio significado do termo. Entre as tecnologias - Eraseble Programmable ROM está começou a fazer o que você está propondo possível, e agora que no circuito de programação é simples, isso na verdade é muitas vezes feito. Mas, ao mesmo tempo, manter um canto de baixo consumo de energia de um chip ativo na bateria para ser um relógio e reter algumas configurações também se tornou possível, de modo que também é uma opção utilizada em alguns sistemas.
22418 Chris Stratton
2
"ROM" significa " Memória Somente Leitura". Por definição, não é gravável. Normalmente, uma ROM real envolve a personalização das camadas de metalização ou mesmo dos transistores constituintes reais. Por outro lado, existem muitos tipos de memórias "Read Mostly" (PROM, EPROM, EEPROM, Flash etc.) que podem ter seu conteúdo alterado, mas com mais limitações de velocidade e número de vezes que uma RAM. Hoje em dia, normalmente você encontra apenas uma ROM verdadeira dentro de um processador (e mesmo assim pode ser algo que você não consegue escrever), enquanto um dispositivo externo pode ser gravado com as conexões corretas.
22418 Chris Stratton
11
Por exemplo, em um sistema moderno, você pode ter uma pequena ROM dentro do processador que sabe ler o conteúdo de um flash NOR serial na memória e começar a executá-lo. O BIOS no flash NOR é exposto à atualização, enquanto o pequeno stub de inicialização que o copia do flash para a RAM e salta para ele é permanentemente corrigido no momento da fabricação do chip.
18718 Chris Stratton

Respostas:

33

Você está misturando tecnologia de implementação com termos coloquiais de funcionalidade.

O CMOS - Complementary Metal Oxide Semiconductor - é um método de fabricação de circuitos lógicos e relacionados, usando transistores de efeito de campo de canal N e canal P. Uma de suas características definidoras é o consumo de energia estática extremamente baixo - a energia é usada apenas quando se muda de estado. Como resultado, um chip de memória estática CMOS pode reter seu conteúdo por anos com uma bateria e é um local útil para armazenar informações semi-permanentes.

O BIOS e o código de inicialização relacionado são tradicionalmente armazenados em dispositivos PROM ou EPROM. As EPROMs na era do PC IBM eram tipicamente feitas em tecnologias pré-CMOS como NMOS, mas a distinção crítica é que elas não eram graváveis ​​quando instaladas no computador, mas apenas em um programador especial. Além disso, enquanto muitos sistemas e clones contemporâneos usavam EPROMs, as versões atuais de produção do IBM-PC usavam PROMs não reprogramáveis ​​e baratas (as pinagens eram normalmente compatíveis em uso).

O design do PC-AT adicionou uma memória CMOS com bateria para armazenar configurações personalizáveis ​​e também (talvez no mesmo dispositivo) um relógio em tempo real persistente. Isso passou a ser coloquialmente referido pelos usuários finais como CMOS, embora fosse apenas um uso específico permitido por uma tecnologia de chip que se espalhava rapidamente.

Hoje, é claro que não usamos mais E / PROMs paralelos para BIOS, mas usamos flash NOR serial e transferimos o conteúdo para uma RAM mais rápida para execução. Os chips FLASH modernos são feitos de tecnologias derivadas de CMOS. E eles geralmente podem ser reprogramados em circuito. Depende realmente do projetista do sistema se eles quiserem colocar informações de configuração semi-permanentes em uma RAM com bateria ou em flash reprogramável - o usuário final ou o sistema operacional pós-inicialização pode ter pouca visibilidade real de uma distinção.

Mas mesmo que o flash seja usado para as configurações, normalmente ainda haverá um relógio em tempo real de baixa energia que continua funcionando com a bateria.

Chris Stratton
fonte
11
Quando a CPU é inicializada, a RAM nem é inicializada (o DRAM init é complexo). Tudo o que faz é executar o código em um local específico (geralmente é o chip do BIOS pela SPI, mas supostamente você pode programar as inicialização subseqüentes para procurar o BIOS pelo PCI ou LPC herdado por razões de depuração). A única coisa que é colocada na RAM são coisas como a IVT (Interrupt Vector Table) e o código relacionado que é útil apenas antes de sair do modo real. A execução real do BIOS quando a CPU está inicializando não ocorre na memória. Veja wiki.osdev.org/System_Initialization_(x86) para mais detalhes.
forest
11
@forest - é improvável que isso seja verdade e não é realmente suportado pela descrição bastante ampla do seu link. Pode acabar executando a partir de alguma ram de cache redirecionada ou algo assim, mas a execução diretamente do SPI simplesmente não funciona muito bem e é extremamente provável que seja evitada. É então óbvio que, uma vez que a RAM do sistema principal esteja pronta, a BIOS será executada com base nisso - essa sombra era comum mesmo nos dias de BIOS da EPROM paralela.
22618 Chris Stratton
11
Sim, uma vez que a memória principal é inicializada, o IVT, BDA, EBDA, etc, são copiados para lá. Antes disso, porém, é executado diretamente. Não é executado no cache (que seria o modo CAR, cache como RAM, que requer inicialização explícita pelo BIOS).
forest
11
Consulte stackoverflow.com/questions/5300527/…, que explica isso com mais detalhes. Em particular, como o bloco de inicialização do BIOS é executado diretamente sobre o SPI. Isso é possível mapeando essa área do BIOS para a memória (é claro, antes que a memória seja realmente inicializada, é como o MMIO). Portanto, não é apenas provável que seja verdade, é verdade.
forest
Chris Stratton " , mas use o flash NOR serial e transfira o conteúdo para uma RAM mais rápida para execução". E como exatamente você imagina essa "transferência de conteúdo" que não seja a execução de um código inicial de "movimentação de dados" diretamente do SPI?
Ale..chenski
12

Na época em que o PC foi inventado, a maior parte da lógica era de chips NMOS e TTL com muita energia. O CMOS era muito novo e os únicos circuitos no PC que o usavam estavam associados a coisas que precisavam funcionar com a bateria quando a energia estava desligada, como a RAM de configuração e o relógio em tempo real.

Atualmente, quase toda a lógica é CMOS, incluindo a CPU que consome muita energia e a EEPROM flash que contém o BIOS. Portanto, de certa forma, sua pergunta é baseada em uma premissa inválida - a EEPROM flash é CMOS. No entanto, por qualquer motivo, o termo "CMOS" em um PC ainda se refere apenas às funções RAM e RTC.

Se você está perguntando por que o BIOS não está armazenado em RAM volátil e não em flash não volátil, é porque as baterias falham e a exclusão do BIOS efetivamente "bloqueará" o computador, exigindo hardware especializado para que ele volte a funcionar.

Dave Tweed
fonte
11
"Portanto, de certa forma, sua pergunta é baseada em uma premissa inválida - a EEPROM flash é CMOS" - A frase "Os programas são armazenados no chip do BIOS do sistema, enquanto os dados alteráveis ​​são armazenados em um CMOS" me confundiram um pouco, agora Eu entendi.
Kais
"Se você está perguntando por que o BIOS não é armazenado em RAM volátil, e não em flash não volátil, é porque as baterias falham" Não, quero dizer o contrário - por que as informações no chip CMOS não são armazenadas no flash do BIOS.
Kais
3
@ Kais porque uma memória flash não pode ser sobrescrita arbitrariamente, e o gerenciamento de reescritas de páginas inteiras de memória flash complica as coisas de uma maneira propensa a erros. Além disso, existem coisas como logs de eventos armazenados por alguns BIOSen, isso pode causar o desgaste do seu flash e / ou acabar com dados corrompidos se a energia falhar no momento errado. A memória EEPROM verdadeira seria possível - mas a) é lento escrever eb) você tem uma bateria de baixa energia para o relógio de qualquer maneira .
rackandboneman
11
... também porque todo o sistema foi projetado antes que o flash estivesse disponível, o BIOS foi armazenado em PROM (que usa fusíveis para determinar se cada bit é 1 ou 0 e só pode ser alterado de 1 para 0, mas não de volta) ou ROM mascarada (que usa uma camada de fios de metal sobrepostos sobre o chip para programá-lo e não pode ser modificado após a fabricação), portanto, era necessário um dispositivo separado e tudo o que era necessário para manter a compatibilidade com versões anteriores desde então .
Jules
8

Eu acho que você está confundindo dois usos da sigla "CMOS". Existem chips construídos inteiramente com a tecnologia complementar de transistor MOS. De fato, quase todos os chips hoje em dia são construídos dessa maneira, incluindo grande parte dos circuitos de controle digital em um chip Flash.

O outro uso do CMOS persiste na indústria de PCs desde os primeiros dias para se referir ao chip que armazenava algumas configurações e ao relógio em tempo real com uma bateria conectada. Naqueles dias (início dos anos 80), a maior parte dos chips grandes em um PC era de tecnologia NMOS e os chips lógicos diversos eram lógicos bipolares de transistor (TTL, LSTTL, etc.). O único chip CMOS usado foi o chip RTC e ficou conhecido como "o CMOS".

Atualmente, o RTC não é mais um chip separado em um dispositivo de arquitetura de PC. Em vez disso, ele está embutido no chipset da placa-mãe (que aliás é produzido com circuitos MOS complementares). É raro que qualquer BIOS hoje em dia use a RAM antiga suportada por bateria na parte RTC do chipset para armazenar as configurações. Em vez disso, o BIOS usa algumas páginas do dispositivo de armazenamento SPI Flash para salvar suas configurações de maneira não volátil. Como tal, existem configurações mínimas que são perdidas em um PC quando a bateria acaba ou é desconectada. As configurações mínimas perdidas na remoção da energia da bateria são certas que controlam o comportamento de inicialização e redefinem o chipset e, de fato, nem são armazenadas em células RAM alimentadas por bateria, mas sim em travas especiais de flip-flop de baixa energia que são alimentadas pela moeda bateria de celular.

Michael Karas
fonte
2

Consulte também /superuser/989499/what-does-a-cmos-chip-look-like : isso nos fornece um link útil para a folha de dados MC146818 original .

Esse chip foi mapeado na memória e forneceu locais de 64 bytes. 14 deles eram para o relógio, deixando o restante como RAM de uso geral. Todo o chip foi mantido alimentado pela bateria enquanto o PC estava desligado, a fim de manter o relógio em tempo real.

pjc50
fonte