Warum wird der ROM-Chip des BIOS nicht mit CMOS-Technologie hergestellt?

9

Nachdem ich einen Computerhardwarekurs über BIOS / CMOS gelesen habe, kann ich immer noch nicht feststellen, warum der ROM-Chip des BIOS nicht mit CMOS-Technologie erstellt wurde und warum er mit einem separaten Chip namens "CMOS" zum Speichern des verbunden ist Konfigurationsinformationen.

Dies ist aus der Vorlesungsnotiz :

Programme werden auf dem System-BIOS-Chip gespeichert, während die veränderbaren Daten auf einem CMOS-Chip gespeichert werden

CMOS-Hardwaregruppe : Hardware, die üblich ist, erforderlich ist, sich jedoch ändern kann - RAM, Festplatten, Diskettenlaufwerke, serielle und parallele Ports

Ich weiß, dass das BIOS in einem Flash-Speicher gespeichert ist und dass die CMOS-MOSFET-Technologie im Vergleich zu anderen Implementierungen weniger Strom verbraucht.

Warum verwendet nur das BIOS-ROM kein CMOS wie andere Speichergeräte - was genau ist der Vorteil? Und warum können die BIOS-Konfigurationsinformationen nicht in einem eigenen ROM-Chip anstelle des "CMOS-Chips" gespeichert werden?

Kais
quelle
1
Benötigt das CMOS nicht eine Batterie, um die Daten zu speichern? Es ist eine Sache, die Konfigurations- und Uhreinstellungen zu verlieren, wenn der Akku leer ist, aber es wäre eine Katastrophe, wenn das BIOS verloren gehen würde. Sie können Ihren letzten Satz bearbeiten. Ich kann nicht herausfinden, was Sie fragen.
Transistor
1
Bios ist ROM, während die Einstellungen RAM sind
Tony Stewart Sunnyskyguy EE75
1
@Kais kein Teil eines ROM ist beschreibbar. Es widerspricht der eigentlichen Bedeutung des Begriffs. Dazwischen Technologien - Eraseble programmierbares ROM ist gestartet möglich zu machen , was Sie vorschlagen, und das jetzt in Circuit - Programmierung einfach ist, dies in der Tat ist oft getan. Gleichzeitig ist es aber auch möglich geworden, eine Ecke mit geringem Stromverbrauch eines Chips auf der Batterie als Uhr zu halten und einige Einstellungen beizubehalten, so dass dies auch in einigen Systemen eine Option ist.
Chris Stratton
2
"ROM" bedeutet " Nur-Lese- Speicher". Es ist per Definition nicht beschreibbar. Typischerweise beinhaltet ein tatsächlicher ROM das Anpassen der Metallisierungsschichten oder sogar der tatsächlichen konstituierenden Transistoren. Im Gegensatz dazu gibt es viele Arten von "Read Mostly" -Speichern (PROM, EPROM, EEPROM, Flash usw.), deren Inhalt geändert werden kann, jedoch mit mehr Einschränkungen hinsichtlich Geschwindigkeit und Häufigkeit als bei einem RAM. Normalerweise finden Sie heutzutage nur ein echtes ROM in einem Prozessor (und selbst dann ist es möglicherweise etwas, das Sie nicht schreiben können), während ein externes Gerät mit den richtigen Verbindungen beschreibbar ist.
Chris Stratton
1
In einem modernen System befindet sich beispielsweise möglicherweise ein kleines ROM im Prozessor, das den Inhalt eines seriellen NOR-Flashs in den Speicher lesen und ausführen kann. Das BIOS im NOR-Flash wird dann einem Upgrade unterzogen, während der kleine Boot-Stub, der es vom Flash in den RAM kopiert und in dieses springt, zum Zeitpunkt der Chipherstellung dauerhaft repariert ist.
Chris Stratton

Antworten:

33

Sie verwechseln Implementierungstechnologie mit umgangssprachlichen Begriffen für Funktionalität.

CMOS - Complementary Metal Oxide Semiconductor - ist ein Verfahren zur Herstellung von Logik und zugehörigen Schaltungen unter Verwendung von N-Kanal- und P-Kanal-Feldeffekttransistoren. Eine seiner charakteristischen Eigenschaften ist der extrem niedrige statische Stromverbrauch - Strom wird fast nur beim Zustandswechsel verwendet. Infolgedessen kann ein statischer CMOS-Speicherchip seinen Inhalt jahrelang auf einer Batterie aufbewahren und ist ein praktischer Ort zum Speichern semipermanenter Informationen.

Das BIOS und der zugehörige Startcode wurden traditionell in PROM- oder EPROM-Geräten gespeichert. EPROMs im Zeitalter des IBM-PCs wurden normalerweise in Vor-CMOS-Technologien wie NMOS hergestellt. Der entscheidende Unterschied besteht jedoch darin, dass diese bei der Installation auf dem Computer normalerweise nicht beschreibbar waren, sondern nur in einem speziellen Programmierer. Während viele moderne Systeme und Klone EPROMs verwendeten, verwendeten die tatsächlichen Produktionsversionen des IBM-PCs billigere nicht umprogrammierbare PROMs (Pinbelegungen waren normalerweise in der Verwendung kompatibel).

Das PC-AT-Design fügte dann einen batteriegepufferten CMOS-Speicher zum Speichern anpassbarer Einstellungen und (möglicherweise im selben Gerät) eine dauerhafte Echtzeituhr hinzu. Dies wurde von Endbenutzern umgangssprachlich als CMOS bezeichnet, obwohl es sich natürlich nur um eine bestimmte Verwendung handelte, die durch eine sich damals schnell ausbreitende Chiptechnologie ermöglicht wurde.

Heute verwenden wir natürlich keine parallelen E / PROMs mehr für das BIOS, sondern seriellen NOR-Flash und übertragen den Inhalt zur Ausführung in einen schnelleren RAM. Moderne FLASH-Chips bestehen in der Tat aus CMOS-abgeleiteten Technologien. Und sie können typischerweise in der Schaltung neu programmiert werden. Es liegt wirklich am Systemdesigner, ob er semipermanente Konfigurationsinformationen in einem batteriegepufferten RAM oder in einem umprogrammierbaren Flash ablegen möchte - der Endbenutzer oder das Betriebssystem nach dem Start haben möglicherweise nur eine geringe tatsächliche Sichtbarkeit einer Unterscheidung.

Aber selbst wenn der Blitz für die Einstellungen verwendet wird, wird es normalerweise immer noch eine Echtzeituhr mit geringem Stromverbrauch geben, die weiterhin mit Batterie betrieben wird.

Chris Stratton
quelle
1
Beim ersten Start der CPU wird der RAM nicht einmal initialisiert (DRAM-Init ist komplex). Alles, was es tut, ist Code an einem bestimmten Ort auszuführen (normalerweise ist es der BIOS-Chip über SPI, aber angeblich können Sie nachfolgende Starts programmieren, um aus Debugging-Gründen nach dem BIOS über Legacy-PCI oder LPC zu suchen). Das einzige, was in den Arbeitsspeicher gestellt wird, sind Dinge wie IVT (Interrupt Vector Table) und zugehöriger Code, die nur nützlich sind, bevor der Real-Modus verlassen wird. Die eigentliche BIOS-Ausführung beim Booten der CPU findet nicht im Speicher statt. Weitere Informationen finden Sie unter wiki.osdev.org/System_Initialization_(x86) .
Wald
1
@forest - das ist unwahrscheinlich und wird durch die ziemlich breite Beschreibung unter Ihrem Link nicht unterstützt. Es kann sein, dass es aus einem zweckentfremdeten Cache-RAM oder etwas anderem ausgeführt wird, aber die Ausführung direkt über SPI funktioniert einfach nicht sehr gut und wird höchstwahrscheinlich vermieden. Es ist dann ziemlich offensichtlich, dass, sobald der Hauptsystem-RAM hoch ist, das BIOS daraus ausgeführt wird - eine solche Abschattung war sogar in den Tagen des parallelen EPROM-BIOS üblich.
Chris Stratton
1
Ja, sobald der Hauptspeicher initialisiert ist, werden IVT, BDA, EBDA usw. dort kopiert. Vorher wird es jedoch direkt ausgeführt. Es wird nicht im Cache ausgeführt (dies wäre der CAR-Modus Cache-As-RAM, der eine explizite Initialisierung durch das BIOS erfordert).
Wald
1
Weitere Informationen hierzu finden Sie unter stackoverflow.com/questions/5300527/… . Insbesondere, wie der BIOS-Bootblock direkt über SPI ausgeführt wird. Dies ist möglich, indem dieser Bereich des BIOS dem Speicher zugeordnet wird (natürlich bevor der Speicher tatsächlich initialisiert wird, also genau wie bei MMIO). Es ist also nicht nur wahrscheinlich, dass es wahr ist, es ist wahr.
Wald
Chris Stratton, "sondern verwenden Sie serielles NOR-Flash und übertragen Sie den Inhalt zur Ausführung in einen schnelleren RAM". Und wie genau stellen Sie sich diese "Übertragung von Inhalten" vor, außer einen anfänglichen "Datenverschiebungs" -Code direkt von SPI auszuführen?
Ale..chenski
12

Als der PC zum ersten Mal erfunden wurde, bestand der größte Teil der Logik aus leistungshungrigen NMOS- und TTL-Chips. CMOS war sehr neu und die einzigen Schaltkreise im PC, die es verwendeten, waren mit Dingen verbunden, die bei ausgeschaltetem Gerät mit Batterie betrieben werden mussten, wie z. B. Konfigurations-RAM und Echtzeituhr.

Heutzutage ist fast die gesamte Logik CMOS, einschließlich der stromhungrigen CPU und des Flash-EEPROMs, in dem sich das BIOS befindet. In gewissem Sinne basiert Ihre Frage auf einer ungültigen Prämisse - das Flash-EEPROM ist CMOS. Aus irgendeinem Grund bezieht sich der Begriff "CMOS" in einem PC jedoch immer noch nur auf die RAM- und RTC-Funktionen.

Wenn Sie sich fragen, warum das BIOS nicht im flüchtigen RAM, sondern im nichtflüchtigen Flash gespeichert ist, liegt dies daran, dass die Batterien ausfallen und das Löschen des BIOS den Computer effektiv "blockiert" und spezielle Hardware erforderlich macht, um ihn wieder in Betrieb zu nehmen.

Dave Tweed
quelle
1
"In gewisser Weise basiert Ihre Frage auf einer ungültigen Prämisse - das Flash-EEPROM ist CMOS" - Der Satz "Programme werden auf dem System-BIOS-Chip gespeichert, während die veränderbaren Daten auf einem CMOS gespeichert werden" hat mich jetzt ein wenig verwirrt Ich habe verstanden.
Kais
"Wenn Sie sich fragen, warum das BIOS nicht im flüchtigen RAM, sondern im nichtflüchtigen Flash gespeichert ist, liegt dies daran, dass die Batterien ausfallen." Nein, ich meine das Gegenteil - warum die Informationen auf dem CMOS-Chip nicht im BIOS-Flash gespeichert sind.
Kais
3
@Kais, weil ein Flash-Speicher nicht willkürlich überschrieben werden kann und das Umschreiben ganzer Seiten des Flash-Speichers die Dinge auf fehleranfällige Weise kompliziert. Es gibt auch Dinge wie Ereignisprotokolle, die von einigen BIOSen gespeichert werden. Dies birgt die Gefahr, dass Ihr Flash abgenutzt wird und / oder Daten beschädigt werden, wenn die Stromversorgung im falschen Moment ausfällt. Echter EEPROM-Speicher wäre möglich - aber a) das Schreiben ist langsam und b) Sie haben ohnehin einen Akku mit geringem Stromverbrauch für die Uhr .
Rackandboneman
1
... auch, weil das gesamte System entworfen wurde, bevor Flash allgemein verfügbar war, so dass das BIOS in einem der PROM gespeichert wurde (das Sicherungen verwendet, um zu bestimmen, ob jedes Bit eine 1 oder 0 ist, und nur von 1 auf 0 geändert werden kann, aber nicht wieder zurück) oder maskiertes ROM (das eine Schicht aus Metalldrähten verwendet, die über dem Chip liegen, um ihn zu programmieren, und nach der Herstellung überhaupt nicht mehr modifiziert werden kann), daher war ein separates Gerät erforderlich, und seitdem musste alles die Abwärtskompatibilität beibehalten .
Jules
8

Ich denke, Sie verwechseln zwei Verwendungen des Akronyms "CMOS". Es gibt Chips, die vollständig aus der komplementären MOS-Transistortechnologie bestehen. Tatsächlich werden heutzutage fast alle Chips auf diese Weise hergestellt, einschließlich eines Großteils der digitalen Steuerschaltungen auf einem Flash-Chip.

Die andere Verwendung von CMOS hat in der PC-Industrie seit den frühesten Tagen bestanden, um sich auf den Chip zu beziehen, auf dem einige Einstellungen und die Echtzeituhr mit angeschlossenem Akku gespeichert waren. Damals (Anfang der 80er Jahre) war der Großteil der großen Chips in einem PC NMOS-Technologie und die verschiedenen Logikchips waren Bipolartransistorlogik (TTL, LSTTL usw.). Der einzige verwendete CMOS-Chip war der RTC-Chip und wurde daher als "CMOS" bekannt.

Heutzutage ist die RTC kein separater Chip mehr auf einem PC-Architekturgerät. Stattdessen ist es direkt in den Motherboard-Chipsatz eingebaut (der übrigens mit einer komplementären MOS-Schaltung hergestellt wird). Es ist heutzutage selten, dass ein BIOS den alten batteriegepufferten RAM im RTC-Teil des Chipsatzes zum Speichern von Einstellungen verwendet. Stattdessen verwendet das BIOS einige Seiten des SPI-Flash-Speichergeräts, um seine Einstellungen nichtflüchtig zu speichern. Daher gehen in einem PC nur minimale Einstellungen verloren, wenn der Akku leer oder nicht angeschlossen ist. Die minimalen Einstellungen, die beim Entfernen der Batterieleistung verloren gehen, sind bestimmte, die das Einschalt- und Rücksetzverhalten des Chipsatzes steuern und tatsächlich nicht einmal in batteriebetriebenen RAM-Zellen gespeichert werden, sondern in speziellen Flipflop-Latches mit geringem Stromverbrauch, die von der Münze gespeist werden Zellenbatterie.

Michael Karas
quelle
2

Siehe auch /superuser/989499/what-does-a-cmos-chip-look-like : Dies bietet uns einen praktischen Link zum ursprünglichen MC146818- Datenblatt.

Dieser Chip wurde speicherabgebildet und stellte 64-Byte-Speicherorte bereit. 14 davon waren für die Uhr bestimmt, der Rest als Allzweck-RAM. Der gesamte Chip wurde bei ausgeschaltetem PC von der Batterie gespeist, um die Echtzeituhr am Laufen zu halten.

pjc50
quelle