Perché il chip ROM del BIOS non è realizzato con la tecnologia CMOS?


9

Dopo aver letto un corso sull'hardware del computer su BIOS / CMOS, non riesco ancora a determinare il motivo per cui il chip ROM del BIOS non è costruito utilizzando la tecnologia CMOS e perché è collegato a un chip separato chiamato "CMOS" per l'archiviazione del informazioni di configurazione.

Questo è dalla nota della lezione :

I programmi sono memorizzati sul chip BIOS del sistema, mentre i dati modificabili sono memorizzati su un chip CMOS

Gruppo di hardware CMOS : hardware comune, necessario ma che può cambiare: RAM, dischi rigidi, unità floppy, porte seriali e parallele

So che il BIOS è archiviato in una memoria flash e che la tecnologia MOSFET CMOS dissipa meno energia rispetto ad altre implementazioni.

Perché è solo la ROM del BIOS che non utilizza CMOS, come altri dispositivi di archiviazione - qual è esattamente il vantaggio? E perché le informazioni di configurazione del BIOS non possono essere memorizzate nel proprio chip ROM anziché nel "chip CMOS"?


1
Il CMOS non richiede una batteria per conservare i dati? Una cosa è perdere le impostazioni di configurazione e orologio quando la batteria si esaurisce, ma sarebbe un disastro se il BIOS andasse perso. Puoi modificare la tua ultima frase. Non riesco a capire cosa stai chiedendo.
Transistor

1
Il BIOS è ROM mentre le impostazioni sono RAM
Tony Stewart Sunnyskyguy EE75

1
@Kais nessuna parte di una ROM è scrivibile. È contrario al significato stesso del termine. Tra una tecnologia e l'altra, le ROM programmabili cancellabili hanno iniziato a rendere possibile ciò che proponete, e ora che la programmazione dei circuiti è semplice, ciò viene spesso fatto. Ma allo stesso tempo, mantenere un angolo bassa potenza di un chip vivo sulla batteria di essere un orologio e mantenere alcune impostazioni è diventato possibile, così che è anche un'opzione utilizzato in alcuni sistemi.
Chris Stratton,

2
"ROM" significa " Memoria di sola lettura". Per definizione non è scrivibile. Tipicamente, una ROM reale comporta la personalizzazione degli strati di metallizzazione o persino dei transistor costituenti effettivi. Al contrario, ci sono molti tipi di memorie "Leggi per lo più" (PROM, EPROM, EEPROM, Flash, ecc.) Che possono modificare i loro contenuti, ma con più limiti di velocità e numero di volte rispetto a una RAM. In genere oggi trovi solo una vera ROM all'interno di un processore (e anche allora potrebbe essere qualcosa che sei bloccato fuori dalla scrittura), mentre un dispositivo esterno sarà scrivibile con le giuste connessioni.
Chris Stratton,

1
Ad esempio, in un sistema moderno potresti avere una piccola ROM all'interno del processore che sa leggere i contenuti di un flash NOR seriale in memoria e iniziare a eseguirli. Il BIOS nel flash NOR viene quindi esposto all'aggiornamento, mentre il piccolo stub di avvio che lo copia da flash a RAM e salta in esso viene fissato in modo permanente al momento della produzione del chip.
Chris Stratton,

Risposte:


33

Stai mescolando la tecnologia di implementazione con termini colloquiali per funzionalità.

CMOS - Complementary Metal Oxide Semiconductor - è un metodo per realizzare la logica e i relativi circuiti utilizzando transistor ad effetto di campo N-Channel e P-Channel. Una delle sue caratteristiche distintive è il consumo di energia statica estremamente basso: l'energia viene utilizzata quasi solo quando si cambia stato. Di conseguenza, un chip di memoria statica CMOS può conservare il suo contenuto per anni su una batteria ed è un luogo utile per archiviare informazioni semi-permanenti.

Il BIOS e il relativo codice di avvio sono stati tradizionalmente archiviati in dispositivi PROM o EPROM. Le EPROM nell'era del PC IBM erano in genere realizzate con tecnologie pre-CMOS come NMOS, ma la distinzione fondamentale è che queste non erano tipicamente scrivibili quando installate nel computer, ma solo in un programmatore speciale. Inoltre, mentre molti sistemi e cloni contemporanei utilizzavano EPROM, le attuali versioni di produzione dell'IBM-PC utilizzavano PROM non riprogrammabili più economiche (i pinout erano in genere compatibili nell'uso).

Il design PC-AT ha quindi aggiunto una memoria CMOS alimentata a batteria per la memorizzazione di impostazioni personalizzabili e anche (forse nello stesso dispositivo) un orologio in tempo reale persistente. Questo è stato definito colloquialmente dagli utenti finali come CMOS, anche se ovviamente era solo un uso particolare abilitato da una tecnologia a chip che si stava rapidamente diffondendo.

Oggi ovviamente non utilizziamo più E / PROM parallele per BIOS, ma piuttosto utilizziamo il flash NOR seriale e trasferiamo i contenuti in RAM più veloce per l'esecuzione. I moderni chip FLASH sono infatti realizzati con tecnologie derivate dal CMOS. E in genere possono essere riprogrammati in circuito. Spetta davvero al progettista del sistema se desidera inserire informazioni di configurazione semi-permanenti in una RAM supportata da una batteria o in un flash riprogrammabile: l'utente finale o il sistema operativo post-avvio potrebbero avere poca visibilità effettiva in una distinzione.

Ma anche se il flash viene utilizzato per le impostazioni, in genere c'è comunque un orologio in tempo reale a basso consumo che continua a funzionare a batteria.


1
Al primo avvio della CPU, la RAM non è nemmeno inizializzata (l'inizializzazione DRAM è complessa). Tutto ciò che fa è eseguire il codice in una posizione specifica (di solito è il chip BIOS su SPI, ma presumibilmente è possibile programmare gli avvii successivi per cercare il BIOS su PCI o LPC legacy per motivi di debug). L'unica cosa che viene messa nella RAM è roba come l'IVT (Interrupt Vector Table) e il relativo codice che è utile solo prima di uscire dalla modalità reale. L'esecuzione effettiva del BIOS all'avvio della CPU non avviene in memoria. Vedi wiki.osdev.org/System_Initialization_(x86) per maggiori dettagli.
foresta,

1
@forest - è improbabile che sia vero, e in realtà non è supportato dalla descrizione piuttosto ampia sul tuo link. Potrebbe finire con l'esecuzione di qualche ram della cache riproposta o qualcosa del genere, ma l'esecuzione direttamente da SPI non funziona molto bene ed è estremamente probabile che sia evitata. È quindi abbastanza ovvio che una volta che la RAM del sistema principale è attiva, il BIOS si eseguirà da solo, tale ombreggiamento era comune anche ai tempi del BIOS EPROM parallelo.
Chris Stratton,

1
Sì, una volta inizializzata la memoria principale, IVT, BDA, EBDA, ecc. Vengono copiati lì. Prima di ciò, tuttavia, viene eseguito direttamente. Non viene eseguito nella cache (che sarebbe la modalità CAR, Cache-As-RAM, che richiede l'inizializzazione esplicita da parte del BIOS).
foresta,

1
Consultare stackoverflow.com/questions/5300527/… che spiega questo in modo più dettagliato. In particolare, come il blocco di avvio del BIOS viene eseguito direttamente tramite SPI. Questo è possibile mappando quell'area del BIOS sulla memoria (ovviamente, prima che la memoria sia effettivamente inizializzata, quindi è proprio come MMIO). Quindi non è solo probabile che sia vero, è vero.
foresta,

Chris Stratton, "ma piuttosto usa il flash NOR seriale e trasferisci i contenuti in una RAM più veloce per l'esecuzione" E come pensi esattamente questo "trasferimento di contenuti" diverso dall'esecuzione di un codice iniziale di "spostamento dei dati" direttamente da SPI?
Ale..chenski,

12

Quando il PC fu inventato per la prima volta, la maggior parte della logica era rappresentata dai chip NMOS e TTL assetati di energia. Il CMOS era molto nuovo e gli unici circuiti nel PC che lo utilizzavano erano associati a cose che dovevano funzionare a batteria quando era spenta, come la RAM di configurazione e l'orologio in tempo reale.

Al giorno d'oggi, quasi tutta la logica è CMOS, compresa la CPU assetata di energia e la EEPROM flash che contiene il BIOS. Quindi, in un certo senso, la tua domanda si basa su una premessa non valida: la flash EEPROM è CMOS. Tuttavia, per qualsiasi motivo, il termine "CMOS" in un PC si riferisce ancora solo alle funzioni RAM e RTC.

Se ti stai chiedendo perché il BIOS non è archiviato nella RAM volatile piuttosto che nel flash non volatile, è perché le batterie si guastano e la cancellazione del BIOS "murerebbe" efficacemente il computer, richiedendo hardware specializzato per farlo funzionare di nuovo.


1
"Quindi, in un certo senso, la tua domanda si basa su una premessa non valida - la flash EEPROM è CMOS" - La frase "I programmi sono memorizzati sul chip del BIOS di sistema, mentre i dati modificabili sono memorizzati su un CMOS" mi ha confuso un po ', ora Ho capito.
Kais,

"Se ti stai chiedendo perché il BIOS non è archiviato nella RAM volatile piuttosto che nel flash non volatile, è perché le batterie si guastano" No, intendo il contrario: perché le informazioni sul chip CMOS non sono memorizzate nel flash del BIOS.
Kais,

3
@Kais perché non è possibile sovrascrivere arbitrariamente una memoria flash e la gestione della riscrittura di intere pagine della memoria flash complica le cose in modo soggetto a errori. Inoltre, ci sono cose come i log degli eventi memorizzati da alcuni BIOS, questo comporta il rischio di consumare il flash e / o di finire con dati danneggiati se l'alimentazione si interrompe nel momento sbagliato. Memoria EEPROM vero sarebbe possibile - ma a) è lento a scrivere, e b) si dispone di una batteria a bassa potenza per l'orologio in ogni caso .
Rackandboneman,

1
... anche perché l'intero sistema è stato progettato prima che il flash fosse comunemente disponibile, quindi il BIOS è stato memorizzato in una PROM (che utilizza i fusibili per determinare se ogni bit è 1 o 0 e può essere modificato solo da 1 a 0 ma non di nuovo) o ROM mascherata (che utilizza uno strato di fili metallici sovrapposti sul chip per programmarlo e non può essere modificato affatto dopo la produzione), quindi era necessario un dispositivo separato e da allora tutto è necessario per mantenere la compatibilità all'indietro .
Jules il

8

Penso che tu stia confondendo due usi dell'acronimo "CMOS". Esistono chip interamente realizzati con la tecnologia a transistor MOS complementare. Oggi quasi tutti i chip sono costruiti in questo modo, inclusa la maggior parte dei circuiti di controllo digitale su un chip Flash.

L'altro utilizzo di CMOS è persistito nel settore dei PC sin dai primi giorni per fare riferimento al chip che memorizzava alcune impostazioni e l'orologio in tempo reale con una batteria collegata. A quei tempi (primi anni '80) la maggior parte dei chip di grandi dimensioni in un PC erano la tecnologia NMOS e i vari chip logici erano la logica a transistor bipolare (TTL, LSTTL ecc.). L'unico chip CMOS utilizzato era il chip RTC e divenne così noto come "CMOS".

In questi giorni RTC non è più un chip separato su un dispositivo con architettura PC. Invece è integrato nel chipset della scheda madre (che per inciso è prodotto con circuiti MOS complementari). È raro che qualsiasi BIOS in questi giorni utilizzi la RAM legacy supportata da batteria nella parte RTC del chipset per memorizzare le impostazioni. Al contrario, il BIOS utilizza alcune pagine del dispositivo di archiviazione Flash SPI per salvare le sue impostazioni in modo non volatile. Pertanto, ci sono impostazioni minime che si perdono in un PC quando la batteria si scarica o è scollegata. Le impostazioni minime che si perdono durante la rimozione della carica della batteria sono alcune che controllano l'accensione e il ripristino del comportamento del chipset e non sono infatti nemmeno memorizzate in celle RAM alimentate a batteria ma invece in speciali fermi a scatto a bassa potenza che sono alimentati dalla moneta batteria cellulare.


2

Vedi anche /superuser/989499/what-does-a-cmos-chip-look-like : questo ci fornisce un pratico link al datasheet originale MC146818 .

Questo chip è stato mappato in memoria e ha fornito posizioni a 64 byte. 14 di questi erano per l'orologio, lasciando il resto come RAM per tutti gli usi. L'intero chip è stato alimentato dalla batteria mentre il PC era spento, al fine di mantenere il ticchettio dell'orologio in tempo reale.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.