-
HINTERGRUND
DER ERFINDUNG
-
Die vorliegende Erfindung bezieht
sich allgemein auf ein Verfahren zum Betreiben eines Computersystems,
das einen Hostrechner umfaßt,
der einen Direktzugriffsspeicher (RAM) besitzt und ein Basic Input
Output System (BIOS) verwendet, um den Hostrechner zu betreiben.
Insbesondere speichert das Verfahren der Erfindung wenigstens einen
Teil des BIOS, das zum Betreiben des Systems verwendet wird, in
dem Massenspeicher eines Computerperipheriegeräts mit Massenspeicher statt
in einem Festwertspeicher (ROM). Das in dem Massenspeichermedium
gespeicherte BIOS könnte
Erweiterungs-BIOS sein, das einem besonderen Computerperipheriegerät zugeordnet
ist und/oder System-BIOS sein, das dem Hostrechner zugeordnet ist. ROM
bezeichnet entweder einen System-ROM,
der vom Hostrechner bereitgestellt wird, oder einen peripheren ROM,
der von einem Peripheriegerät
(entweder auf einer Karte oder in dem Gerät selbst) bereitgestellt wird.
-
Die Computerindustrie ist in ständiger Entwicklung
begriffen und stellt immer schnellere Prozessoren, größere Speicherkapazitäten und
eine breite Vielfalt von Peripheriegeräten zur Verfügung, die
mit einem Hostrechner verbunden werden könnten. Infolge dieser zunehmenden
Geschwindigkeiten und Kapazitäten
ist eine der Entwicklungen der Industrie eine periphere Busimplementierung,
die als Peripherie-Komponenten-Zwischenverbindung (PCI: Peripheral
Components Interface (engl.)) bekannt ist. Dieser periphere Bus
ist entwickelt worden, um einen Erweiterungsmechanismus zwischen
dem Hostrechner und Computerperipheriegeräten oder Erweiterungskarten
zu schaffen.
-
Der PCI-Bus ist so beschaffen, daß er sowohl
vom Prozessor als auch von der Computersystemarchitektur unabhängig ist,
wobei die elektrischen, Protokoll- und Hardware-Schnittstellen-Anforderungen
ungeachtet der verwendeten CPU oder der Computerarchitektur des
Hostsystems gleich bleiben. Dies ermöglicht, daß das gleiche Computerperipheriegerät an viele
verschiedene Hostsysteme angeschlossen werden kann, ohne daß verschiedene Versionen
des Geräts
für jeden
Hostsystemtyp, mit dem das Gerät
verwendet werden soll, erforderlich sind. Da der PCI-Bus prozessor-
und computerarchitekturunabhängig
ist, ist es erforderlich, daß jedes Hostsystem
einen Mechanismus bereitstellt, um Host- Ein/Ausgaben (E/A) und
Speicherkapazität
auf den Adressierungsmechanismus, der auf dem PCI-Bus verwendet
wird, abzubilden. Dies gilt auch für die Erweiterungs-ROM-Speicherkapazität eines Computerperipheriegeräts, die
typisch Initialisierungsinformationen und Betriebsinformationen
wie etwa den Code und Daten für
jenes Computerperipheriegerät
enthält.
Deshalb sind auf einer PCI-Vorrichtung verlagerbare Erweiterungs-ROM-Plazierungsadressen
zugelassen. Bei früheren
Busarchitekturen wie etwa dem Industrie-Standard-Architektur-Bus
(ISA: Industry Standard Architecture (engl.)) ist dies nicht der
Fall.
-
Wie aus 1 ersichtlich ist, wo ein Beispiel eines
typischen PCI-basierenden Computersystems veranschaulicht ist, das
mit dem Bezugszeichen 10 gekennzeichnet ist, enthält das System 10 einen Hostrechner 12 mit
einem System-BIOS 13 zum Betreiben des Hostrechners 12 und
mit einem System-RAM 14, der dem Hostrechner 12 zugeordnet ist.
Das System-BIOS 13 ist im System-ROM 15 im Hostrechner 12 gespeichert.
Ein PCI-Bus 16 ist unter Verwendung einer sogenannten Host
Bridge 17 mit dem Hostrechner 12 und dem System-RAM 14 verbunden.
Das System enthält
außerdem
ein Computerperipheriegerät 18,
beispielsweise ein Festplattenlaufwerk, das an den PCI-Bus angeschlossen
ist, so daß der
Hostrechner unter Verwendung des PCI-Busses mit dem Computerperipheriegerät kommunizieren
könnte.
Das Gerät 18 umfaßt einen
ROM 20, der ein Erweiterungs-BIOS 22 enthält, das
in dem Hostsystem benötigt
wird, um das Computerperipheriegerät 18 zu initialisieren
und/oder zu betreiben. In einem System, das den PCI-Bus verwendet,
muß das
Host-System-BIOS und/oder Betriebssystem einen Konfigurationsmanager
bereitstellen, der einzelne PCI-Vorrichtungen erkennt, Ressourcen
zuweist und diese Vorrichtungen freigibt. Es liegt in der Verantwortung
des Konfigurationsmanagers, ein Erweiterungs-BIOS des Peripheriegeräts in den
RAM der Hostrechner zu kopieren und dann eine Initialisierungs routine
auszuführen,
die innerhalb des Erweiterungs-BIOS vorgesehen ist, um eine korrekte
Initialisierung des Peripheriegeräts zu liefern.
-
In der 2A,
die das im ROM 20 enthaltene Erweiterungs-BIOS schematisch
darstellt, berücksichtigt
die PCI-Spezifikation mehrfache Code-Abbildungen, beispielsweise 24a–24d,
die in dem Erweiterungs-BIOS 22 zu speichern sind, wobei
jede Code-Abbildung die einer besonderen Computerarchitektur entsprechenden
Informationen liefert. In diesem Beispiel könnte die Code-Abbildung 24a einem Intel®-basierenden
System entsprechen, die Code-Abbildung 24b könnte einem
Power PC®-basierenden
System entsprechen usw. Diese mehrfachen Code-Abbildungen 24a–24d erweitern
den Informationsumfang, der in dem Erweiterungs-BIOS gespeichert
ist, wodurch sich die Kapazität
des ROM, die erforderlich ist, um das Erweiterungs-BIOS 22 zu
speichern, erhöht.
Wie in 2B gezeigt ist,
enthält
die Code-Abbildung 24a wie jede der übrigen Abbildungen einen Kopftbreich
(Header) 26. In Abhängigkeit von
den Anforderungen des Geräts 18,
dem das Erweiterungs-BIOS 22 entspricht, könnte jede
Abbildung auch einen Datenstrukturbereich 28, einen Laufzeitcode 30,
einen Initialisierungscode 32 und eine Prüfsumme 34 enthalten.
In 2C erfordert die PCI-Spezifikation
außerdem,
daß jede
PCI-Vorrichtung einen Konfigurationsraumspeicher 35 mit
einer Größe von 256
Byte enthält,
der in Übereinstimmung mit
dem dargestellten PCI-Format ist. Die von dem Konfigurationsraum 35 bereitgestellten
Informationen enthalten ein Geräte-Identifikationsregister 36, das
die Geräte-Identifikation
enthält,
und ein Konfigurationsregister 38, das eine erforderliche
Speicherkapazität
enthält.
Das Konfigurationsregister 38 spezifiziert die Größe der Speicherkapazität, die in
dem Hostrechnerspeicher erforderlich ist, um das dem Computerperipheriegerät 18 zugeordnete
Erweiterungs-BIOS 22 abzubilden. Wie unmittelbar im Anschluß ausführlicher
beschrieben wird, läuft,
nachdem das Erweiterungs-BIOS 22 in den RAM 14 des Host-Systems
kopiert worden ist, der Initialisierungscode 32 von der
eigentlichen Code-Abbildung, beispielsweise der Code-Abbildung 24a.
Diese initialisiert das Gerät 18 und
sorgt für
das richtige Einhaken in das System, um das Gerät 18 unter Verwendung des
Laufzeitcodes 30 von der eigentlichen Code-Abbildung, in
diesem Fall der Code-Abbildung 24a, im Gegensatz zu den 24b, c oder d, zu betreiben. Nachdem der Initialisierungscode
abgearbeitet worden ist, wird die Steuerung an das Hostsystem zurückgegeben,
und nur der Code, der für
den Betrieb des Geräts 18 erforderlich
ist, wird im Hostsystem-RAM 14 gelassen, wo er während des
Betriebs des Systems verbleibt. Die Überschußinformationen der eigentlichen
Code-Abbildung 24a, die nur für die Initialisierung des Geräts 18 erforderlich
sind, werden nicht länger
benötigt.
Deshalb wird der Speicher, der zur Speicherung dieser Überschußinformationen
verwendet wird, verfügbar
gemacht, um wieder von dem Hostrechner 12 verwendet zu
werden, wodurch sich die Verwendung des RAM 14 auf die
Speicherung der notwendigen Teile des Erweiterungs-BIOS 22 reduziert.
-
Nun wird mit Bezug auf 3 eine typische Sequenz,
um ein Erweiterungs-BIOS
von einem PCI-Peripheriegerät
zu erhalten und in das RAM-System zu speichern, unter Verwendung
des oben dargestellten Beispiels des Systems 10 ausführlich beschrieben.
Nachdem das Computersystem 10 wie im Block 40 der 3 angegeben eingeschaltet
worden ist, startet der Prozessor des Hostrechners 12 die
Abarbeitung eines Systemcodes, der typisch als Einschalt-Selbsttest
(POST: Power-On-Self-Test (engl.)) bezeichnet wird. Der Einschalt-Selbsttest-Code führt unverbundene
Systemkonfigurationen (Block 44) aus und startet dann die Konfiguration
der über
den PCI-Bus hinzugefügten Peripheriegeräte durch
Prüfen
des Vorhandenseins von Peripheriegeräten, wie etwa des Peripheriegeräts 18,
wie durch das Entscheidungskästchen 46 angegeben
ist. Wenn der Einschalt-Selbsttest-Code das
Peripheriegerät 18 findet,
startet er die Konfiguration des Geräts 18, weist die vom
Gerät 18 angeforderte
Ein/Ausgabe- und RAM-Speicherkapazität zu, konfiguriert Unterbrechungen
und weist, wie von dem Gerät 18 angefordert,
auf dem Hostrechner 12 Unterbrechungsanforderungen zu,
wie in den Blöcken 48, 50 und 52 der 3 angegeben ist. An diesem
Punkt bestimmt der Einschalt-Selbsttest-Code, ob das Gerät 18 ein
Erweiterungs-BIOS hat, das geladen und konfiguriert werden muß, wie durch
den Entscheidungsblock 54 angegeben ist. Wenn kein Erweiterungs-BIOS
vorhanden ist, wie durch den Block 56 angegeben ist, fährt der
Einschalt-Selbsttest-Code mit dem nächsten Peripheriege rät fort. Wenn
alle Geräte
konfiguriert sind, fährt
der Einschalt-Selbsttest-Code, wie im Block 58 gezeigt
ist, mit dem Urladen (Booten) des Betriebssystems fort. Wenn es
jedoch ein von dem Gerät
zu ladendes Erweiterungs-BIOS gibt, wie dies für das Gerät 18 der Fall ist,
wird das Erweiterungs-BIOS geladen und konfiguriert, wie durch den
Block 60 angegeben ist. Sobald das Laden des Erweiterungs-BIOS für das Gerät 18 abgeschlossen
ist, geht die Sequenz zum Block 56 über und der Prozeß wird für irgendein
anderes Gerät
fortgesetzt.
-
Nunmehr mit Bezug auf 4 wird der typische Prozeß des Ladens
und Konfigurierens des Erweiterungs-BIOS eines Peripheriegeräts, wie
im Block 54 und 60 der 3 angegeben, genauer beschrieben. Ausgehend
vom Entscheidungsblock 54, in dem der Einschalt-Selbsttest-Code
ermittelt, ob das Peripheriegerät 18 ein
Erweiterungs-BIOS besitzt, schreibt der Einschalt-Selbsttest-Code
in das Konfigurationsregister 38 des Konfigurationsraumspeichers 35 des
Peripheriegeräts 18 oder
liest aus diesem, um zu bestimmen, ob ein Erweiterungs-BIOS in dem
Gerät vorhanden
ist, und wenn das der Fall ist, wieviel Speicherplatz erforderlich
ist. Wenn festgestellt worden ist, daß ein Erweiterungs-BIOS vorhanden
ist, geht der Prozeß zum
Laden und Konfigurieren des dem Gerät 18 zugeordneten
Erweiterungs-BIOS, in seiner Gesamtheit durch den Block 60 der 3 angegeben, wie nun im
einzelnen beschrieben, über.
-
Wie durch den Block 62 der 4 angegeben ist, bestimmt
der Einschalt-Selbsttest-Code
eine akzeptable Adresse, um das im ROM 20 des Geräts 18 gespeicherte
BIOS auf diese abzubilden, und schreibt diese Adresse in das Konfigurationsregister 38 des
Konfigurationsraumspeichers 35 im PCI-Gerät 18.
Im Block 64 gibt der Einschalt-Selbsttest-Code dann die
Decodierung des Erweiterungs-BIOS
auf dem Gerät
frei. Als nächstes
bildet das Peripheriegerät 18 seinen
ROM, beginnend an der Adresse, die der Einschalt-Selbsttest-Code
in das Konfigurationsregister 38 im Konfigurationsraumspeicher 35 im
Gerät 18 schrieb,
ab, wie im Block 66 angegeben ist. Das Gerät bereitet
seine interne Adreßdecodierungseinrichtung
vor, um den Speicheradreßbereich,
auf den der ROM abgebildet wird, zu decodieren. Wie im Block 68 angegeben
ist, prüft
der Einschalt-Selbsttest- Code
das Erweiterungs-BIOS ab, indem er die Speicherzellen liest, in
welche das Erweiterungs-BIOS abgebildet wurde, um eine entsprechende
Erweiterungs-BIOS-Code-Abbildung,
in diesem Fall die Code-Abbildung 24 des Erweiterungs-BIOS 22,
zu suchen. Wenn keine entsprechende Code-Abbildung gefunden wird,
wie im Entscheidungsblock 70 gezeigt ist, springt die Sequenz
zum Block 56 zurück,
um zu prüfen,
ob weitere Geräte
zu konfigurieren sind. Wenn jedoch eine geeignete Code-Abbildung 24a gefunden
wird, geht die Sequenz zum Block 72, in dem der Einschalt-Selbsttest-Code
eine Speicherzelle innerhalb des Hostsystem-RAM 14 bestimmt, in welche
der Erweiterungs-BIOS-Code aus dem Geräte-ROM 20 kopiert wird. Der Einschalt-Selbsttest-Code
kopiert dann im Block 74 die entsprechende Code-Abbildung 24a aus
dem Geräte-ROM 20 in
den System-RAM 14.
Wie in den Blöcken 76 und 78 angegeben
ist, ruft der Einschalt-Selbsttest-Code den Initialisierungscode 32 des
Erweiterungs-BIOS 22 auf, der nun im System-RAM 14 ist,
und arbeitet den Initialisierungscode 32 ab, um des weiteren
das Peripheriegerät 18 zu konfigurieren
und eine Software-Unterstützung
auf Systemebene zu installieren, die Unterbrechungs-Steuerungsprogramme,
gerätespezifische Daten
usw. enthält.
Wenn der Initialisierungscode 32 abgearbeitet ist, gibt
der Initialisierungscode 32 die Steuerung des Systems an
den Einschalt-Selbsttest-Code
zurück,
wie im Block 80 gezeigt ist. Im Block 82 führt der
Einschalt-Selbsttest-Code
eine abschließende
Initialisierung aus, etwa eine Markierung des Teils des System-RAM 14,
der verwendet wird, um das Erweiterungs-BIOS zu speichern, das,
nachdem der Initialisierungscode 32 abgearbeitet worden ist,
schreibgeschützt
im System-RAM verbleibt. An diesem Punkt kehrt die Sequenz schließlich zum
Entscheidungsblock 56 zurück, um zu prüfen, ob
noch mehr Geräte
vorhanden sind, die konfiguriert werden müssen.
-
Wie weiter oben beschrieben ist,
wird das Erweiterungs-BIOS 22 typisch im ROM 20 gespeichert, der
sich in dem Computerperipheriegerät oder auf einer Erweiterungskarte
befindet. Dieser Lösungsweg hat
jedoch den Nachteil, daß zu
den Kosten des Geräts
die Kosten des ROM 20 hinzukommen, der in einem System,
das einen PCI-Bus verwendet, nur dazu benutzt wird, das Erweiterungs-BIOS zu speichern,
um es nach dem Systemstart in das System zu laden. Insbe sondere
muß in
einem System, das einen PCI-Bus verwendet, wie oben erwähnt worden ist,
der Hostrechner das Erweiterungs-BIOS in den RAM des Hostsystems
kopieren. Aus Effizienzgründen
verwendet das System das kopierte Erweiterungs-BIOS, das in seinem eigenem Speicher
abgelegt ist, statt auf den ROM in dem Gerät zurückzuverweisen; wenn das Erweiterungs-BIOS
für den
Betrieb des Systems erforderlich ist. Deshalb wird, wenn die notwendigen
Teile der entsprechenden 24a in dem
Hostsystem-RAM gespeichert sind, auf den ROM 20 nicht mehr
zugegriffen, bis das System ausgeschaltet und wieder eingeschaltet
worden ist, wobei zu diesem Zeitpunkt die spezielle Abbildung des Erweiterungs-BIOS erneut in den
Hostsystem-RAM geladen wird. Da außerdem, wie weiter oben erwähnt worden
ist, mehrere Abbildungen erforderlich sein könnten, um demselben Gerät zu ermöglichen,
an viele verschiedene Hostsysteme angeschlossen zu werden, die unterschiedliche
Computerarchitekturen haben, kann die Größe des gesamten Erweiterungs-BIOS 22 und
deshalb des ROM 22, der erforderlich ist, um das Erweiterungs-BIOS
zu speichern, ziemlich groß sein.
Dies kann bewirken, daß der
Erweiterungs-BIOS-ROM 20 einen wesentlichen Teil der Kosten
des Geräts 18 ausmacht.
-
Die Kosten dieses Erweiterungs-BIOS-ROM variieren
in Abhängigkeit
vom speziellen Typ des verwendeten ROM. In dem Fall, in dem große Stückzahlen
der Geräte
produziert werden, könnte
der ROM mit dem Erweiterungs-BIOS hergestellt werden, das bei der
Fertigung des ROM in diesen einprogrammiert wird. Diese Methode
hat den Vorteil, daß sie preiswerter
ist, jedoch könnte
dieser Typ von ROM, wenn er erst einmal programmiert ist, nicht
verändert werden.
Wenn die Vorrichtung in irgendeiner Weise modifiziert wird, die
eine Veränderung
im Erweiterungs-BIOS notwendig macht, oder wenn in dem Erweiterungs-BIOS
ein Programmfehler gefunden wird, müssen alle ROM, die mit dem
alten Erweiterungs-BIOS hergestellt worden sind, ausgemustert werden.
Diese Methode liefert keine große
Flexibilität hinsichtlich
einer Aktualisierung und Verbesserung der Funktion des Geräts durch
Aktualisieren des Erweiterungs-BIOS.
-
Bei einem anderen Lösungsweg
wird das Erweiterungs-BIOS in den ROM einprogrammiert, nachdem der
ROM hergestellt worden ist. Dies ermöglicht, das Erweiterungs-BIOS
zu aktualisieren, ohne den bereits hergestellten ROM ausmustern
zu müssen,
wie das bei der weiter obenbeschriebenen Methode der Fall wäre. Obgleich
der programmierbare ROM eine größere Flexibilität verschafft,
ist er teurer als ein ROM, der während
seiner Herstellung programmiert wird, und erhöht die Kosten für die Bereitstellung
des Erweiterungs-BIOS-ROM weiter. Bei der äußerst harten Wettbewerbssituation
auf dem Computerperipheriegerätemarkt,
beispielsweise im Bereich der Festplattenlaufwerke, würde die
Fähigkeit zur
Verminderung oder gar der Beseitigung der Kosten des ROM für das Erweiterungs-BIOS
einen bedeutenden Wettbewerbsvorteil verschaffen.
-
Die vorliegende Erfindung offenbart
eine neuartige Anordnung und ein neuartiges Verfahren zum Betreiben
eines Hostrechners, der ein System-BIOS hat, das verwendet wird,
um den Hostrechner zu betreiben, und der einen System-RAM hat, der dem
Hostrechner zugeordnet ist. Die Anordnung und das Verfahren ermöglichen,
daß wenigstens
ein Teil des BIOS in dem Massenspeicher eines Peripheriegeräts mit Massenspeicher,
das an den Hostrechner angeschlossen ist, gespeichert wird. Das
in dem Massenspeicher gespeicherte BIOS könnte Erweiterungs-BIOS sein,
das einem bestimmten Computerperipheriegerät zugeordnet ist und/oder Erweiterungs-BIOS
sein, das dem Computerperipheriegerät mit Massenspeicher selbst
zugeordnet ist. Das in dem Massenspeicher gespeicherte BIOS könnte auch
System-BIOS sein, das dem Hostrechner zugeordnet ist. Diese Methode
verringert in signifikanter Weise die Notwendigkeit und die Kosten
des Erweiterungs-BIOS-ROM für
das besondere Computerperipheriegerät und/oder des Erweiterungs-BIOS-ROM für das Computerperipheriegerät mit Massenspeicher
oder beseitigt sie sogar. Diese Methode könnte auch verwendet werden,
um die Notwendigkeit und die Kosten des dem Host-Rechner zugeordneten System-BIOS deutlich zu
verringern. Da ein Teil oder die Gesamtheit des Erweiterungs-BIOS und/oder ein Teil
des System-BIOS in dem Massenspeicher eines Computerperipheriegeräts mit Massenspeicher
gespeichert ist, verschafft diese Methode außerdem eine wesentlich bessere
Flexibilität
hinsichtlich der Aktualisierung und Verbesserung des Systems oder der
Feststellung von Pogrammfehlern in dem BIOS, ohne einen programmierbaren
ROM verwenden zu müssen.
Unter Verwendung dieser neuartigen Methode könnte der überwiegende Teil des System-BIOS oder die Gesamtheit
davon oder das gesamte Erweiterungs-BIOS, das den Peripheriegeräten zugeordnet
ist, die an das System angeschlossen sind, aktualisiert werden,
indem einfach ein verbessertes BIOS in den Massenspeicher des Geräts mit Massenspeicher
geladen wird, ohne daß irgendein BIOS-ROM
ausgemustert werden muß.
-
EP
0 417 888 offenbart ein Computersystem, bei dem ein erster
Teil des BIOS im ROM gespeichert ist und ein zweiter Teil des BIOS
auf einem Massenspeichermedium gespeichert ist. Der erste Teil des BIOS
enthält
Routinen für
die Initialisierung des Systems und das Laden des zweiten Teils
des BIOS in den System-RAM.
-
EP
0 429 252 offenbart ein Computersystem mit mehreren Teilsystemmoduln,
um das System auf unterschiedliche Anforderungen abzustimmen. Jedes
Teilsystemmodul weist eine Schnittstelle mit einem ROM auf, der
Firmware enthält,
die für
das Modul spezifisch ist. Es ist ein Basismodul vorgesehen, das
einen ROM umfaßt,
der eine Softwareroutine enthält,
die eine ausgelagerte Version der Firmware, die in den ROM jedes
Teilsystemmoduls gespeichert ist, im Hauptspeicher des Computersystems
erzeugt.
-
ÜBERBLICK ÜBER DIE
ERFINDUNG
-
Die vorliegende Erfindung schafft
ein Verfahren zum Betreiben eines Computersystems, wobei das Computersystem
einen Hostrechner umfaßt,
der einen System-RAM und ein Computerperipheriegerät mit Massenspeicher
aufweist, das an den Hostrechner angeschlossen ist, der zur Steuerung
seines Betriebs ein BIOS verwendet, wobei das Verfahren folgende
Schritte umfaßt:
-
- a) es wird ein Speichermittel bereitgestellt,
auf das der Hostrechner während
des Startens des Computersystems zugreifen kann und das einen ersten
Teil des BIOS enthält;
- b) es wird ein zweiter Teil des BIOS im Massenspeicher des Computerperipheriegeräts mit Massenspeicher
gespeichert; und
- c) es wird der Hostrechner veranlaßt, auf das Speichermittel
zuzugreifen, den ersten Teil des BIOS aufzunehmen, und danach wird
durch den Gebrauch des ersten Teils des BIOS der Hostrechner veranlaßt, auf
den Massenspeicher des Computerperipheriegeräts mit Massenspeicher zuzugreifen,
den zweiten Teil des BIOS, der im Massenspeicher des Computerperipheriegeräts mit Massenspeicher
gespeichert ist, aufzunehmen und den zweiten Teil des BIOS im System-RAM
zu speichern,
dadurch gekennzeichnet, daß
der Schritt, bei dem
der Hostrechner veranlaßt
wird, auf den ersten Teil des BIOS zuzugreifen und ihn aufzunehmen,
den Schritt umfaßt,
das es für
den Hostrechner den Anschein hat, daß der erste Teil des BIOS die
angeforderte Größe des BIOS
aufweist, obwohl der erste Teil des BIOS kleiner als die angeforderte
Größe ist.
-
Wie im folgenden ausführlicher
beschrieben wird, werden hier eine Anordnung und ein Verfahren zum
Betreiben eines Computersystems offenbart. Das Computersystem enthält einen
Hostrechner mit einem System-RAM und einem Computerperipheriegerät mit Massenspeicher,
etwa einem Festplattenlaufwerk, das an den Hostrechner angeschlossen
ist. Der Hostrechner verwendet ein BIOS, um den Betrieb des Computersystems
zu steuern. Die Anordnung und das Verfahren ermöglichen, daß wenigstens ein Teil des BIOS
in dem Massenspeicher des Computerperipheriegeräts mit Massenspeicher gespeichert
wird, statt die Speicherung des gesamten BIOS in einem BIOS-ROM
zu erfordern.
-
In einer Ausführungsform sind das Verfahren und
die Anordnung zum Betreiben des Computersystems ein Verfahren und
eine Anordnung zum Betreiben eines besonderen Computerperipheriegeräts, das
mit dem Hostrechner unter Verwendung eines peripheren Busses verbunden
ist, mit dem verlagerbare Erweiterungs-BIOS-Plazierungsadressen
möglich
sind, wie etwa mit einem PCI-Bus. In dieser Ausführungsform ist das BIOS Erweiterungs-BIOS,
das dem besonderen Computerperipheriegerät zugeordnet ist. Der Betrieb
des Computerperipheriegeräts verlangt,
daß der
Hostrechner das dem besonderen Computerperipheriegerät zugeordnete
Erweiterungs-BIOS entgegennimmt und das Erweiterungs-BIOS in den
System-RAM lädt.
Diese Ausführungsform
enthält
einen ROM (peripherer Festspeicher), der einen ersten Teil – jedoch
nicht die Gesamtheit – des
dem besonderen Computerperipheriegerät zugeordneten Erweiterungs-BIOS
enthält. Ein
zweiter Teil des dem besonderen Computerperipheriegerät zugeordneten
Erweiterungs-BIOS ist in dem Massenspeicher des an den Hostrechner
angeschlossenen besonderen Computerperipheriegeräts mit Massenspeicher gespeichert.
Das besondere Computerperipheriegerät könnte das Massenspeicher-Computerperipheriegerät sein,
wobei dies jedoch nicht notwendig ist. Die Anordnung umfaßt des weiteren
einen Betriebsmechanismus, der den Hostrechner veranlaßt, auf
den peripheren ROM zuzugreifen und den ersten Teil des dem besonderen Computerperipheriegerät zugeordneten
Erweiterungs-BIOS zu erlangen. Daraufhin wird durch den Gebrauch
des ersten Teils des Erweiterungs-BIOS der Hostrechner veranlaßt, (i)
auf den Massenspeicher des besonderen Computerperipheriegeräts mit Massenspeicher
zuzugreifen, (ii) den zweiten Teil des Erweiterungs-BIOS, der dem
besonderen Computerperipheriegerät
zugeordnet ist und sich in dem Massenspeicher des Computerperipheriegeräts mit Massenspeicher
befindet, zu erlangen, und (iii) den zweiten Teil des Erweiterungs-BIOS
im System-RAM zu speichern.
-
In dieser Ausführungsform könnte der
Hostrechner einen System-Festspeicher umfassen, der System-BIOS
enthält
(System-ROM). Der periphere Festspeicher (ROM), der den ersten Teil
des Erweiterungs-BIOS enthält,
könnte
von dem System-ROM getrennt und entfernt sein, oder als eine andere
Möglichkeit
könnte
der periphere Festspeicher (ROM), der den ersten Teil des Erweiterungs-BIOS
enthält, ein
Teil des System-ROM sein. In dem Fall, in dem der ROM, der den ersten
Teil des Erweiterungs-BIOS enthält,
vom System-ROM getrennt und entfernt ist, könnte sich dieser periphere
ROM, der den ersten Teil des Erweiterungs-BIOS enthält, das dem besonderen Computerperipheriegerät zugeordnet
ist, in dem besonderen Computerperipheriegerät befinden.
-
In einer weiteren Ausführungsform,
in der das Verfahren und die Anordnung ein Verfahren und eine Anordnung
zum Betreiben eines besonderen Computerperipheriegeräts sind,
ist das gesamte Erweiterungs-BIOS, das dem besonderen Computerperipheriegerät zugeordnet
ist, in dem Masassenspeicher des Computerperipheriegeräts mit Massenspeicher
gespeichert. In dieser Ausführungsform
umfassen das Verfahren und die Anordnung des weiteren einen Betriebsmechanismus,
um den Betrieb des Systems zu starten. Wenn der Betrieb des Systems gestartet
ist, veranlaßt
der Betriebsmechanismus, daß der
Hostrechner (i) auf den Massenspeicher des Computerperipheriegeräts mit Massenspeicher
zugreift, (ü)
das Erweiterungs-BIOS, das dem besonderen Computerperipheriegerät zugeordnet
ist, entgegennimmt und (iii) das dem besonderen Computerperipheriegerät zugeordnete
Erweiterungs-BIOS im System-RAM speichert.
-
In einer speziellen Version der Ausführungsform,
die das gesamte Erweiterungs-BIOS im Massenspeicher des Computerperipheriegeräts mit Massenspeicher
speichert, enthält
das Computerperipheriegerät
mit Massenspeicher einen Pufferspeicher in dem Computerperipheriegerät mit Massenspeicher. Bei
dieser Version enthält
das Erweiterungs-BIOS, das dem besonderen Computerperipheriegerät zugeordnet
ist, einen ersten Teil des Erweiterungs-BIOS und einen zweiten Teil
des Erweiterungs-BIOS. Außerdem
veranlaßt
der Betriebsmechanismus den Hostrechner, beim Betriebsstart des Systems
einen Einschalt-Selbsttest auszuführen. Das Computerperipheriegerät mit Massenspeicher enthält einen
Mechanismus zum Laden des ersten Teils des dem besonderen Computerperipheriegerät zugeordneten
Erweiterungs-BIOS in den Pufferspeicher des Computerperipheriegeräts mit Massenspeicher
innerhalb des Zeitrahmens des Einschalt-Selbsttests. Dies ermöglicht dem
Betriebsmechanismus, auf den Pufferspeicher zuzugreifen und den
ersten Teil des Erweiterungs-BIOS zu erlangen. Daraufhin wird durch
den Gebrauch des ersten Teils des Erweiterungs-BIOS der Hostrechner
veranlaßt, (i)
auf den Massenspeicher des Computerperipheriegeräts mit Massenspeicher zuzugreifen,
(ii) den zweiten Teil des Erweiterungs-BIOS, der dem besonderen
Computerperipheriegerät
zugeordnet ist und sich in dem Massenspeicher des Computerperipheriegeräts mit Massenspeicher
befindet, zu erlangen, und (iii) den zweiten Teil des Erweiterungs-BIOS
im System-RAM zu speichern.
-
In jeder der obenbeschriebenen Ausführungsformen
könnte
das besondere Computerperipheriegerät, dem das Erweiterungs-BIOS
zugeordnet ist, tatsächlich
das Computerperipheriegerät
mit Massenspeicher sein, das den Massenspeicher bereitstellt, in
dem wenigstens ein Teil des Erweiterungs-BIOS gespeichert ist. Als
eine andere Möglichkeit
könnte
das besondere Computerperipheriegerät irgendein anderes Computerperipheriegerät sein, etwa
eine Videokarte, eine Netzwerkkarte oder irgendein anderes Peripheriegerät oder eine
Erweiterungskarte.
-
In einer weiteren Ausführungsform
ist das BIOS dem Hostrechner zugeordnetes System-BIOS. In dieser
Ausführungsform
ist ein erster Teil des System-BIOS
in einem BIOS-ROM enthalten, der sich im Hostrechner befindet. Ein
zweiter Teil des System-BIOS ist in dem Massenspeicher des Computerperipheriegeräts mit Massenspeicher
gespeichert. Dieser zweite Teil des System-BIOS wird auf gleiche Weise
wie das in dem Massenspeicher gespeicherte Erweiterungs-BIOS, wie
zuvor beschrieben worden ist, abgerufen und im System-RAM gespeichert.
-
In einer weiteren Erscheinung der
Erfindung ist ein von einem ROM verschiedenes Computerspeichermedium
für die
Verwendung in einem Computersystem offenbart. Das Computersystem
enthält einen
Hostrechner, der System-RAM, der dem Hostrechner zugeordnet ist,
und ein Computerperipheriegerät
mit Massenspeicher, das an den Hostrechner angeschlossen ist, umfaßt. Der
Hostrechner verwendet ein BIOS, um den Betrieb des Systems zu steuern.
Wenigstens ein Teil des BIOS ist in dem Massenspeicher des Computerperipheriegeräts mit Massenspeicher
für den
Gebrauch durch den Hostrechner gespeichert, nachdem der Hostrechner
das in dem Massenspeicher gespeicherte BIOS in den System-RAM des
Hostrechners gespeichert hat. Das Computerspeichermedium der Erfindung
umfaßt
einen Teil des Speichermediums, der BIOS für die Steuerung des Betriebs
des Hostrechners enthält.
In einer Ausführungsform
des Computerspeichermediums ist das Medium der Massenspeicher des
Computerperipheriegeräts
mit Mas senspeicher, etwa ein Festplattenlaufwerk, das an den Hostrechner
angeschlossen ist.
-
In einer weiteren Ausführungsform
des Computerspeichermediums ist das Medium eine Diskette oder ein
anderes derartiges Medium, und das auf dem Medium enthaltene BIOS
ist auf das Computerperipheriegerät mit Massenspeicher übertragbar.
In dieser Ausführungsform
könnte
das auf dem Medium enthaltene BIOS aktualisiertes und überarbeitetes BIOS
sein, das wenigstens einem Teil des Computersystems zugeordnet ist,
wie etwa Erweiterungs-BIOS, das einem besonderen Computerperipheriegerät zugeordnet
ist, das an das System angeschlossen ist, oder das System-BIOS,
das dem Hostrechner zugeordnet ist. Als eine andere Möglichkeit könnte das
auf dem Medium enthaltene BIOS Erweiterungs-BIOS sein, das einem
besonderen, an das Computersystem angeschlossenen Computerperipheriegerät zugeordnet
ist.
-
KURZBESCHREIBUNG
DER ZEICHNUNG
-
Die Merkmale der vorliegenden Erfindung können am
besten mit Bezug auf die folgende Beschreibung gegenwärtig bevorzugter
Ausführungsformen
im Zusammenhang mit der beigefügten Zeichnung
verstanden werden, worin:
-
1 eine
Blockdarstellung eines Computersystems des Standes der Technik ist,
das einen PCI-Bus verwendet, um ein Computerperipheriegerät an einen
Hostrechner anzuschließen;
-
2A eine
schematische Darstellung eines Erweiterungs-BIOS des Standes der
Technik ist, das mehrfache Code-Abbildungen enthält;
-
2B eine
genauere schematische Darstellung einer der in 2A gezeigten
Code-Abbildungen ist, die einen Teil des Erweiterungs-BIOS des Standes
der Technik bildet;
-
2C eine
genauere schematische Darstellung eines Konfigurationsraumspeichers
einer PCI-Vorrichtung ist;
-
3 ein
Ablaufdiagramm ist, das eine Sequenz des Standes der Technik veranschaulicht,
die von einem typischen PCI-basierten System verwendet wird, um
zu bestimmen, ob das System irgendwelche Peripheriegeräte umfaßt, die
das Laden eines Erweiterungs-BIOS in den System-RAM eines Hostrechners
erfordern;
-
4 ein
Ablaufdiagramm ist, das im einzelnen zeigt, wie ein Erweiterungs-BIOS
des Standes der Technik, das einem besonderen Computerperipheriegerät zugeordnet
ist, in den System-RAM eines Host-Rechners geladen wird;
-
5 eine
Blockdarstellung einer Ausführungsform
eines gemäß der vorliegenden
Erfindung beschaffenen Computersystems ist, das einen peripheren
Bus verwendet, auf dem verlagerbare Erweiterungs-BIOS-Plazierungsadressen
erlaubt sind, um ein Computerperipheriegerät an einen Hostrechner anzuschließen;
-
6A eine
genauere schematische Darstellung eines ersten Teils eines Erweiterungs-BIOS gemäß der vorliegenden
Erfindung für
ein Computerperipheriegerät
ist;
-
6 B
eine genauere schematische Darstellung eines zweiten Teils eines
Erweiterungs-BIOS gemäß der vorliegenden
Erfindung ist, der dem in 6A veranschaulichten
ersten Teil des Erweiterungs-BIOS zugeordnet ist;
-
6C eine
genauere schematische Darstellung des Konfigurationsraumspeichers
einer PCI-Vorrichtung ist;
-
7 ein
Ablaufdiagramm ist, das im einzelnen zeigt, wie ein Erweiterungs-BIOS
wie in den 5, 6A und 6B gezeigt gemäß der vorliegenden Erfindung
in den System-RAM eines Hostrechners geladen wird;
-
8 ein
Ablaufdiagramm ist, das zeigt, wie ein Teil eines System-BIOS, das
in einem Computerperipheriegerät
mit Massenspeicher gespeichert ist, wie in 5 gezeigt ist, gemäß der Erfindung in den System-RAM
eines Hostrechners geladen wird;
-
9 eine
Blockdarstellung einer weiteren Ausführungsform eines gemäß der Erfindung
beschaffenen Computersystems ist, das einen peripheren Bus verwendet,
auf dem verlagerbare Erweiterungs-BIOS-Plazierungsadressen erlaubt
sind, um ein Computerperipheriegerät an einen Hostrechner anzuschließen;
-
10 ein
Ablaufdiagramm ist, das anhand einer ersten Ausführungsform im einzelnen zeigt,
wie ein Erweiterungs-BIOS wie in 9 gezeigt
gemäß der vorliegenden
Erfindung in den System-RAM eines Hostrechners geladen wird;
-
11 ein
Ablaufdiagramm ist, das anhand einer zweiten Ausführungsform
im einzelnen zeigt, wie ein Erweiterungs-BIOS wie in 8 gezeigt gemäß der vorliegenden
Erfindung in den System-RAM eines Hostrechners geladen wird;
-
12A ein
Ablaufdiagramm ist, das zeigt, wie gemäß der Erfindung während des
Starts eines Computersystems Graphiken von einer Massenspeichervorrichtung
in den Videospeicher geladen werden; und
-
12B ein
Ablaufdiagramm ist, das zeigt, wie gemäß der Erfindung während des
Starts eines Computersystems Betriebsdaten von einer Massenspeichervorrichtung
in das System geladen werden.
-
AUSFÜHRLICHE
BESCHREIBUNG
-
Die vorliegende Erfindung wird anfangs
mit Bezug auf 5 als
Anordnung beschrieben, die einem Hostrechner ermöglicht, ein besonderes Computerperipheriegerät zu betreiben,
dessen Betrieb erfordert, daß der
Hostrechner ein Erweiterungs-BIOS erlangt, das dem besonderen Computerperipheriegerät zugeordnet
ist, und das Erweiterungs-BIOS in einen System-RAM lädt. Wie
in 5 gezeigt ist, umfaßt ein Computersystem 100,
das gemäß der vorliegenden
Erfindung beschaffen ist, einen Hostrechner 102 mit einem
System-BIOS 104, das benutzt wird, um den Hostrechner 102 zu
betreiben, und hat einen RAM 106, der dem Hostrechner 102 zugeordnet
ist. Das System-BIOS 104 ist im System-ROM 108 im Hostrechner 102 gespeichert.
Ein peripherer Bus 110 ist unter Verwendung einer Host Bridge 112 mit
dem Hostrechner 102 und dem RAM 106 verbunden.
Außerdem
ist mit dem Hostrechner 102 unter Verwendung des peripheren
Busses 110 ein Computerperipheriegerät 114 verbunden. Der
Hostrechner 102, das System-BIOS 104, der RAM 106,
der ROM 108 und die Host Bridge 112 sind aus beliebigen
geeigneten und leicht erhältlichen
Komponenten hergestellt, die ermöglichen,
den Hostrechner 102 und den RAM 106 unter Verwendung
der Bridge 112 an den peripheren Bus 110 anzuschließen. Diese
Komponenten enthalten irgendwelche herkömmlichen 486, Pentium®-,
Power PC®-
oder RISC-basierende Komponenten, sind jedoch nicht hierauf beschränkt. Obwohl der
Hostrechner 102, der RAM 106 und die Host Bridge 112 mit
einer besonderen Konfiguration in bezug aufeinander dargestellt
sind, sollte klar sein, daß dies
kein Erfordernis der vorliegenden Erfindung ist. Statt dessen könnten diese
Komponenten in vielen verschiedenen spezifischen Konfigurationen
miteinander verbunden sein und trotzdem innerhalb des Geltungsbereichs
der Erfindung bleiben, solange das Computerperipheriegerät 114 unter
Verwendung eines peripheren Busses 110 mit diesen Komponenten verbunden
ist, wie nachfolgend beschrieben ist.
-
Der periphere Bus 110 könnte jeder
geeignete und leicht erhältliche
periphere Bus sein, auf dem verlagerbare Erweiterungs-BIOS-Plazierungsadressen
erlaubt sind. Eine bevorzugte Ausführungsform eines solchen peripheren
Busses ist ein PCI-Bus. Es sollte jedoch selbstverständlich sein,
daß viele
verschiedene periphere Busse, etwa andere Parallelbusse, serielle
Busse oder multiplexierte Busse ebenfalls in den Geltungsbereich
der vorliegenden Erfindung fallen würden. Wie weiter oben zum Hintergrund
ausführlich
beschrieben worden ist, diktiert dann, wenn ein PCI-Bus verwendet
wird, die PCI-Spezifikation, wie irgendein Erweiterungs-BIOS, das
einem besonderen Computerperipheriegerät zugeordnet ist, in den RAM 106 des
Hostsystems geladen wird. Weitere periphere Buskonfigurationen haben
entsprechende Spezifikationen, weshalb die Beschreibung der vorliegenden
Erfindung unter der Annahme erfolgt, daß ein PCI-Bus verwendet wird,
um das Computerperipheriegerät 114 an
den Hostrechner 102 anzuschließen. Die Anwendung der Erfindung
auf andere periphere Buskonfigurationen wird Fachleuten in Anbetracht
dieser Darstellung klar werden. Obwohl der periphere Bus von dieser
genauen Beschreibung als PCI-Bus dargestellt wird, ist dies kein
Erfordernis. Ebenso könnte
irgendein peripherer Bus, der die Abbildung der Erweiterungs-BIOS-Plazierungsadressen
in den System-Speicher erfordert, statt festgelegte, festverdrahtete
Erweiterungs-BIOS-Plazierungsadressen zu erlauben, verwendet werden.
-
In einer ersten Ausführungsform
der vorliegenden Erfindung ist das Computerperipheriegerät 114 ein
Massenspeicher-Computerperipheriegerät mit einem Massenspeicher 116 wie
etwa einem Festplattenlaufwerk oder einem Compact Disc-Abspielgerät. Das Gerät 114 erfordert
ein ihm zugeordnetes Erweiterungs-BIOS, das in den Hostrechner zu laden ist,
um das Gerät 114 in
korrekter Weise zu initialisieren und zu betreiben. Obwohl speziell
ein Festplattenlaufwerk und ein Compact Disc-Abspielgerät erwähnt sind,
könnte
das Computerperipheriegerät 114 die
Form jeder anderen Massenspeichervorrichtung annehmen und trotzdem
innerhalb des Geltungsbereichs der Erfindung bleiben. Das Computerperipheriegerät 114 mit
Massenspeicher enthält
einen ROM 118 geringer Kapazität. Gemäß der vorliegenden Erfindung
enthält
der ROM 118 nur einen ersten Teil 120 des Erweiterungs-BIOS,
das dem Gerät 114 zugeordnet
ist.
-
Wie aus 6A ersichtlich ist, enthält bei Verwendung
eines PCI-Busses der erste Teil 120 des Erweiterungs-BIOS
einen Konfigurations-Kopfbereich (Header) 122, in geringem
Umfang Initialisierungscode 124 und eine Prüfsumme 126.
Die spezifischen Informationen in dem Konfigurations-Kopfbereich
könnten
in Abhängigkeit
vom verwendeten Bus verschieden sein, wobei die Informationen jedoch
in Übereinstimmung
mit dem Protokoll des verwendeten Busses gespeichert werden würden. In
einer bevorzugten Version dieser Ausführungsform ist der erste Teil 120 ein
sehr kleiner Teil des gesamten Erweiterungs-BIOS, mit einem Umfang
von beispielsweise weniger als 1 KByte. Ein zweiter Teil 128 des dem
Gerät 114 zugeordneten
Erweiterungs-BIOS 114 ist im Massenspeicher 116 gespeichert.
Wie in 6B gezeigt ist,
enthält
der zweite Teil 128 des Erweiterungs-BIOS eine Datenstruktur 130,
die ein Teil des Erweiterungs-BIOS sein könnte, einen Laufzeitcode 132,
der notwendig sein könnte,
um das Gerät 114 während des
Betriebs des Systems zu betreiben, Initialisierungscode 134,
der erforderlich ist, um das Gerät 114 zu
initialisieren, und eine Prüfsumme 136. Wie
in 6C gezeigt ist, enthält das Gerät 114 außerdem einen
Konfigurationsraumspeicher 138 mit einem Konfigurationsregister 140,
das ähnlich
jenem, das weiter oben für
das Gerät 18 des
Standes der Technik des Systems 10 beschrieben wurde, Informationen
enthält,
die eine angeforderte Größe oder einen
angeforderten Umfang des Systemspeichers für die Abbildung des Erweiterungs-BIOS
umfassen. Jedoch spezifiziert gemäß der vorliegenden Erfindung
die angeforderte Größe die Zahl
der Speicherzellen, die in dem Hostrechner erforderlich sind, um sowohl
den ersten Teil 120 des Erweiterungs-BIOS als auch den
zweiten Teil 128 des Erweiterungs-BIOS, wobei beide Teile
dem Computerperipheriegerät
zugeordnet sind, abzubilden.
-
Obwohl die 6A und 6B nur
eine Code-Abbildung vom ersten Teil 120 und zweiten Teil 128 des
Erweiterungs-BIOS veranschaulichen, sollte klar sein, daß der erste
Teil 120 und der zweite Teil 128 des Erweiterungs-BIOS
mehrfache Abbildungen enthalten könnte, wobei jede der Abbildungen
einem anderen Computerarchitekturtyp entspricht, an welchen das
Gerät angeschlossen
werden könnte.
Diese Methode der mehrfachen Abbildung würde ermöglichen, das gleiche Gerät an viele
verschiedene Systeme anzuschließen,
die verschiedene Computerarchitekturen verwenden, die den verschiedenen Code-Abbildungen
entsprechen. Wenn mehrfache Code-Abbildungen vorgesehen sind, enthält der angeforderte
Informationsumfang, der in einem Konfigurationsregister 140 des
Konfigurationsraums 138 gespeichert ist, genügend Platz
für alle
ersten und zweiten Teile der Code-Abbildungen.
-
Nun, da die Elemente dieser ersten
Ausführungsform
beschrieben sind, wird die Funktionsweise dieser Ausführungsform
im einzelnen dargestellt. Wenn als erstes das Gesamtsystem 100 eingeschaltet
wird, arbeitet das System anfangs auf gleiche Weise wie ein typisches
System 10, was mit Bezug auf das Ablaufdiagramm von 3 ausführlich beschrieben worden ist.
Wenn der Einschalt-Selbsttest-Code
jedoch das System 100 auf Peripheriegeräte prüft und feststellt, daß ein Peripheriegerät vorhanden
ist, das einen Erweiterungs-ROM enthält, in diesem Fall das Gerät 114,
beginnt der Betrieb des Systems 100 von demjenigen des
typischen Systems, der mit Bezug auf das Ablaufdiagramm von 4 beschrieben ist, abzuweichen.
Deshalb wird die Funktionsweise des Systems 100 nach diesem Punkt
weiter mit Bezug auf das Ablaufdiagramm von 7 beschrieben, welches das weiter oben
für ein typisches
PCI-basiertes System 10 beschriebene Ablaufdiagramm von 4 ersetzen würde.
-
Ausgehend vom Entscheidungsblock 54 von 7, in dem der Einschalt-Selbsttest-Code ermittelt,
ob das Peripheriegerät 114 ein
Erweiterungs-BIOS besitzt, schreibt der Einschalt-Selbsttest-Code
in das Konfigurationsregister 140 des Konfigurationsraumspeichers 138 des
Peripheriegeräts 114 oder
liest dieses aus, um zu bestimmen, ob ein Erweiterungs-BIOS in dem
Gerät vorhanden
ist, und wenn das so ist, wieviel Speicherplatz erforderlich ist. Wenn
festgestellt worden ist, daß es
ein Erweiterungs-BIOS gibt, wie durch den Block 146 von 7 angegeben ist, bestimmt
der Einschalt-Selbsttest-Code eine akzeptable Adresse, um das Erweiterungs-BIOS
auf diese abzubilden und schreibt diese Adresse in das Konfigurationsregister 140 des
Konfigurationsraumspeichers 138 in dem Peripheriegerät 114.
Im Block 148 gibt dann der Einschalt-Selbsttest-Code die
Erweiterungs-BIOS-ROM-Decodierung in dem Gerät in ähnlicher Weise, wie weiter oben
für das
System 10 beschrieben worden ist, frei.
-
Als nächstes bildet gemäß der vorliegenden Erfindung
das Peripheriegerät 114 den
ersten Teil 120 des im ROM 118 gespeicherten Erweiterungs-BIOS
auf die Systemspeicheradresse ab, wobei bei der Adresse begonnen
wird, die der Einschalt-Selbsttest-Code in das Konfigurationsregister 140 im
Konfigurationsraumspeicher 138 im Gerät 114 schrieb, wie
im Block 150 angegeben ist. Das Gerät 114 bereitet seine
interne Adreßdecodiereinrichtung
vor, um den gesamten vom Register 140 angeforderten Speicheradressenbereich,
in welchen der ROM 118 abgebildet wird, zu decodieren,
auch wenn sich nur ein kleiner Teil tatsächlich im ROM 118 der
Vorrichtung 114 befindet. Da der erste Teil 120 des
im ROM 118 des Geräts 114 gespeicherten
Erweiterungs-BIOS wesentlich kleiner als der ange forderte Speicherumfang
ist, der vom Register 140 für das gesamte Erweiterungs-BIOS angefordert
worden ist, wie oben beschrieben ist, werden fingierte, erzeugte
Daten in diesen Überschuß-Speicherbereich abgebildet.
Dies könnte
auf vielfältige
Weise erfolgen. Beispielsweise könnte
eine einzige Datenspeicherzelle im ROM 118 auf alle Überschuß-Systemspeicherzellen
abgebildet werden; dadurch ist nur eine einzige Datenspeicherzelle
erforderlich, um den gesamten Überschuß-Systemspeicherbereich
zu fällen.
Als eine andere Möglichkeit
könnte
ein kurzer Daten erzeugender Code vorgesehen werden, der in der
Lage ist, fliegende Datenmuster zu erzeugen. In diesem Beispiel
wird der datenerzeugende Code so auf den Überschuß-Speicherbereich abgebildet,
daß dann,
wenn auf ihn zugegriffen wird, der datenerzeugende Code den Datenumfang,
auf den zugegriffen wird, erzeugt.
-
Obwohl nur zwei besondere Beispiele
beschrieben worden sind, die zeigen, wie dieser Überschuß-RAM-Bereich gefüllt wird,
könnten
viele andere besondere Verfahren verwendet werden, die alle in den
Geltungsbereich der vorliegenden Erfindung fallen würden. In
einer bevorzugten Version wird der gesamte Überschuß-RAM-Bereich auf eine einzelne Datenspeicherzelle
im ROM 118 abgebildet, die einen ersten Teil 120 des
Erweiterungs-BIOS enthält. Diese
Datenspeicherzelle weist eine Null als Datum für diese Speicheradresse auf.
Somit wird der gesamte Überschuß-RAM-Bereich
mit Nullen gefüllt. Da
der gesamte Uberschuß-RAM-Bereich mit Nullen gefüllt wird,
beeinflußt
dieser Überschuß-Speicherbereich
nicht den Prüfsummenzähler, und
die Prüfsumme 126 könnte am
Ende des ersten Teils 120 des Erweiterungs-BIOS plaziert
sein.
-
Wie im Block 152 angegeben
prüft der
Einschalt-Selbsttest-Code das Erweiterungs-BIOS ab, indem er die
Speicherzellen liest, auf welche das Erweiterungs-BIOS abgebildet wurde,
und nach einer entsprechenden Erweiterungs-BIOS-Code-Abbildung, in diesem Fall der einzigen
Code-Abbildung, die in dem ersten Teil 120 des Erweiterungs-BIOS 22 enthalten
ist, sucht. Wenn keine entsprechende Code-Abbildung gefunden wird,
wie im Entscheidungsblock 154 gezeigt ist, kehrt die Sequenz
zum Block 56 zurück,
um zu prüfen,
ob weitere Geräte
zu konfigurieren sind. Wenn jedoch eine richtige Code-Abbildung
gefunden wird, geht die Sequenz zum Block 156, in dem der
Einschalt-Selbsttest-Code eine Speicherzelle innerhalb des Hostsystem-RAM 106 bestimmt,
in die der Erweiterungs-BIOS-Code
aus dem Geräte-ROM 118 kopiert
wird. Der Einschalt-Selbsttest-Code
kopiert dann im Block 158 die Code-Abbildung aus dem Geräte-ROM 118 in
den System-RAM 106. Dieses Kopieren umfaßt den ersten
Teil 120 des Erweiterungs-BIOS und die weiter oben ausführlicher beschriebenen
fingierten Daten. Wie im Block 160 angegeben ist, ruft
der Einschalt-Selbsttest-Code den Initialisierungscode 124 des
ersten Teils 120 des Erweiterungs-BIOS, der sich nun im
System-RAM 106 befindet, auf und arbeitet den Initialisierungscode 124 ab.
-
Gemäß der Erfindung und wie im
Block 162 angegeben ist, enthält der Initialisierungscode 124 gerade
genügend
Code, um das Computerperipheriegerät 114 mit Massenspeicher
zu aktivieren und den zweiten Teil 128 des Erweiterungs-BIOS in den System-RAM 106 zu
laden. Der Initialisierungscode 124 arbeitet den Initialisierungscode 134 des
zweiten Teils 128, der sich nun im Host-RAM befindet, ab,
wie im Block 164 gezeigt ist. Obwohl, in dem gegebenen Beispiel
der Initialisierungscode 124 nur gerade soviel Code enthält, um die
Massenspeichervorrichtung 114 zu aktivieren, den zweiten
Teil 128 zu laden und den Initialisierungscode 134 abzuarbeiten,
ist dies kein Erfordernis der Erfindung. Der Initialisierungscode 124 könnte mehr
Code enthalten, solange wenigstens ein Teil des Erweiterungs-BIOS
in dem Massenspeicher 114 gespeichert ist. Die bevorzugte
Ausführungsform
würde jedoch
den Umfang des im ROM 118 gespeicherten Codes minimieren
und dadurch die Kosten des ROM so weit wie möglich reduzieren. Im Block 166 konfiguriert
der Initialisierungscode 134 ferner das Peripheriegerät 114 und
installiert eine Software-Unterstützung auf Systemebene, die
Unterbrechungs-Steuerprogramme, gerätespezifische Daten usw. enthält. Bei
Abschluß des
Initialisierungscodes 134 gibt dieser die Steuerung des
Systems an den Einschalt-Selbsttest-Code zurück, wie im Block 168 gezeigt
ist. Im Block 170 führt
der Einschalt-Selbsttest-Code eine abschließende Initialisierung aus,
etwa eine Markierung des Teils des System-RAM 106, der
verwendet wird, um das Erweiterungs-BIOS zu speichern, das, nachdem
der Initialisierungscode 134 ab gearbeitet worden ist, schreibgeschützt im System-RAM
verbleibt. An diesem Punkt kehrt schließlich die Sequenz zum Entscheidungsblock 56 zurück, um zu
prüfen,
ob noch mehr Geräte
vorhanden sind, die zu konfigurieren sind.
-
In einer zweiten Ausführungsform,
die ebenfalls in 5 veranschaulicht
ist, könnte
das besondere Computerperipheriegerät die Form einer Vorrichtung
oder einer Erweiterungskarte annehmen und damit von einem Massenspeicher-Computerperipheriegerät verschieden
sein. Beispiele für
eine solche Vorrichtung sind Videokarten, Multimediakarten, Netzwerkkarten
oder andere Erweiterungskarten oder Peripheriegeräte, die
ein Erweiterungs-BIOS enthalten. In dieser Ausführungsform enthält das Computersystem 100 eine
Computerperipherieerweiterungskarte oder -vorrichtung 174,
die ein zugeordnetes Erweiterungs-BIOS erfordert, das in den Hostrechner
zu laden ist, um die Erweiterungskarte 174 zu initialisieren
und/oder zu betreiben. Auf gleiche Weise wie weiter oben für die Vorrichtung 114 beschrieben,
enthält
die Erweiterungskarte 174 einen ROM 176, der einen
ersten Teil 178 des Erweiterungs-BIOS enthält, das
der Erweiterungskarte 174 zugeordnet ist. Jedoch wird in
dieser Ausführungsform
ein zweiter Teil 180 des Erweiterungs-BIOS, das der Erweiterungskarte 174 zugeordnet
ist, im Massenspeicher der Vorrichtung 114 gespeichert.
Dies ermöglicht,
den überwiegenden
Teil des Erweiterungs-BIOS für
die Erweiterungskarte 174 im Massenspeicher 116 eines
Massenspeicher-Peripheriegeräts 114 zu
speichern. Die Funktionsweise dieser Ausführungsform wäre der weiter
obenbeschriebenen ersten Ausführung
bis auf die Tatsache, daß der kurze
Initialisierungscode, der in dem ersten Teil 178 vorgesehen
ist, der im ROM 176 enthalten ist, das Gerät 114 betreiben
und auf den zweiten Teil 180 des Erweiterungs-BIOS, der
der Erweiterungskarte 174 zugeordnet und im Massenspeicher 116 enthalten ist,
zugreifen würde,
gleich.
-
Obwohl sowohl die erste als auch
die zweite soweit beschriebene Ausführungsform derart beschrieben
worden sind, daß sie
einen ROM 118 und einen ROM 176 enthalten, die
sich in dem Computerperipheriegerät befinden, das das Laden von
Erweiterungs-BIOS benötigt,
um von dem Hostsystem initialisiert und/oder betrieben zu werden,
ist dies kein Erfordernis. Alternativ könnte der ROM, der den ersten
Teil des Erweiterungs-BIOS enthält,
an anderen Orten innerhalb des Gesamtsystems vorgesehen sein. Ein
Beispiel dafür
könnte
eine Situation sein, in welcher ein hochintegriertes System geschaffen
wird, wie etwa eine abgeschlossene Kompaktbaugruppe, die eine besondere
Gruppierung von Peripheriegeräten
umfaßt.
Wie 5 zeigt, könnten in
dieser Situation der ROM 118 bzw. 176, die den
ersten Teil des Erweiterungs-BIOS für das Gerät 114 bzw. das Gerät 174 enthalten,
als Teil des System-ROM 108 vorgesehen sein. Der überwiegende
Teil des Erweiterungs-BIOS, das den Peripheriegeräten zugeordnet ist,
die in der Kompaktbaugruppe enthalten sind, in diesem Beispiel den
Geräten 114 und 174,
ist auf gleiche Art und Weise wie oben beschrieben in einer Massenspeichervorrichtung
wie etwa einem Festplattenlaufwerk gespeichert. Der Erweiterungs-BIOS-ROM,
der notwendig im System-ROM 108 enthalten sein muß, braucht
nur groß genug
zu sein, um Code zu enthalten, der das Festplattenlaufwerk betreibt
und die Steuerung an den Initialisierungscode, der in dem Festplattenlaufwerk
gespeichert ist, übergibt.
Alle Erweiterungs-BIOS, die den verschiedenen, in der Kompaktbaugruppe
enthaltenden Peripheriegeräten
zugeordnet sind, könnten dann
auf gleiche Weise wie oben beschrieben in den RAM des Hostsystems
geladen werden. Jedoch wird in dieser Situation der erste Teil des
Erweiterungs-BIOS für
jedes Peripheriegerät
als Teil des System-BIOS geliefert, weshalb das System-BIOS (d.
h. der Einschalt-Selbsttest-Code in den vorhergehenden Beispielen)
nicht wie weiter oben beschrieben nach diesen Peripheriegeräten suchen
muß.
-
Gemäß einer weiteren Ausführungsform
der vorliegenden Erfindung könnte
dieses allgemeine Verfahren benutzt werden, um die Größe des System-ROM,
der innerhalb des Hostrechners erforderlich ist, zu verringern.
Noch immer mit Bezug auf 5 ist
in dieser Ausführungsform
das System-BIOS 104, das im System-ROM 108 gespeichert ist, nur
ein erster kleiner Teil des gesamten System-BIOS, das vom Hostrechner 102 gebraucht
wird. Ein zweiter Teil 182 des System-BIOS ist auf gleiche Weise,
wie weiter oben für
das Erweiterungs-BIOS des Peripheriegeräts beschrieben ist, im Massenspeicher 116 der
Massenspeichervorrichtung
114 gespeichert. Bei dieser Anordnung
braucht der System-ROM 108 nur groß genug zu sein, um genügend Code
zu speichern, der die Massenspeichervorrichtung 114 aktiviert
und den zweiten Teil 182 in den System-RAM 106 lädt.
-
Mit Bezug auf das Ablaufdiagramm
in 8 wird nun der Betrieb
eines Systems, bei dem das System-BIOS in einen ersten Teil, der
im System-ROM 108 gespeichert ist, und in einen zweiten Teil 182,
der im Massenspeicher 116 der Massenspeichervorrichtung 114 gespeichert
ist, unterteilt ist, ausführlich
beschrieben. Nachdem der Computer wie im Block 184 angegeben
eingeschaltet worden ist, findet bei dieser Anordnung der erste
Teil des System-BIOS, der im System-ROM 108 gespeicher
ist, die Massenspeichervorrichtung 114 (Block 186)
und konfiguriert diese. Wie im Block 188 angegeben ist, enthält der erste
Teil des System-BIOS Code, der eine akzeptable Adresse innerhalb
des RAM 106 bestimmt, um den zweiten Teil 182 des
System-BIOS auf diese zu laden. Als nächstes lädt in den Blöcken 190 und 192 der
erste Teil des System-BIOS-Codes den zweiten Teil 182 des
System-BIOS von der Massenspeichervorrichtung 114 in den
System-RAM 106 und verarbeitet den zweiten Teil des System-BIOS, der
sich nun im System-RAM befindet. An diesem Punkt übernimmt
der zweite Teil des System-BIOS die Steuerung, wie im Block 194 angegeben
ist, und das System setzt seinen Betrieb auf gleiche Weise fort,
wie wenn das gesamte System-BIOS im ROM 104 bereitgestellt
worden wäre.
-
Es sollte klar sein, daß dann,
wenn der zweite Teil des System-BIOS in den RAM geladen und ausgeführt worden
ist, das System in Übereinstimmung
mit den obenbeschriebenen Vereinbarungen zum Laden irgendeines Erweiterungs-BIOS, das Peripheriegeräten zugeordnet
ist, die an das System angeschlossen sind, fortfahren könnte. Als
eine andere Möglichkeit
könnte
das Erweiterungs-BIOS
wie nachfolgend ausführlich
beschrieben geladen werden. Bei Anwendung dieser allgemeinen Methode könnte der überwiegende
Teil des System-BIOS mit dem überwiegenden
Teil oder sogar der Gesamtheit des Erweiterungs-BIOS der an das
System angeschlossenen Peripheriegeräte statt in einem ROM im Massenspeicher
einer Massenspeichervorrichtung, die an das System angeschlossen
ist, gespeichert werden. Dadurch wird der überwiegende Teil der Kosten,
die mit dem BIOS-ROM verbunden sind, der für das System-BIOS und das Erweiterungs-BIOS in einem typischen
Computer-System erforderlich ist, eingespart. Außerdem könnten, wenn dasselbe Grundkonzept
einen Schritt weiter geführt
wird, weitere Komponenten eines typischen Computersystems ebenfalls
wegfallen, indem die in diesen Komponenten gespeicherten Informationen
in der Massenspeichervorrichtung gespeichert werden. Beispielsweise
könnte
ein batteriegestützter
Speicher, der Systemkonfigurationsinformationen, Paßwörter oder
beliebige andere Informationen, die typisch in einem ROM oder batteriegestützten Speicher
gespeichert werden, enthalten könnte,
ebenfalls wegfallen, dadurch daß diese
Informationen in der Massenspeichervorrichtung gespeichert werden
und während
des Starts des Systems auf sie zugegriffen wird, wie weiter oben
beschrieben ist.
-
In einer weiteren Ausführungsform
der vorliegenden Erfindung entfällt
die Notwendigkeit eines Erweiterungs-BIOS-ROM, der einem besonderen Computerperipheriegerät zugeordnet
ist, vollständig. In 9 enthält ein Gesamtsystem 200 einen
Hostrechner 102, ein System-BIOS 104, einen System-RAM 106,
einen System-ROM 108, eine Host Bridge 112 und
einen peripheren Bus 110 wie für die vorhergehenden Ausführungsformen
beschrieben. Das System 200 enthält außerdem ein Massenspeicher-Computerperipheriegerät 202 mit
einem Massenspeicher 204. In dieser Ausführungsform
ist das gesamte dem Gerät 202 zugeordnete
Erweiterungs-BIOS im Massenspeicher 204 gespeichert. Wie
weiter oben für
andere Ausführungsformen
erwähnt
wurde, könnte
die Vorrichtung 202 die Form eines Festplattenlaufwerks,
eines Compact Disc-Abspielgeräts
oder irgendeine andere Form von Massenspeicher annehmen.
-
Die Massenspeichervorrichtung 202 enthält des weiteren
einen Pufferspeicher 206 für die Speicherung von Dateneingaben
und -ausgaben, die zum oder vom Massenspeicher 204 übertragen
werden. Der Pufferspeicher 206 ist derart konfiguriert,
daß er dem
Hostsystem so erscheint, als ob er ein während des Starts des Systems
im Gerät 202 installierter
Erweiterungs-ROM wäre.
Gemäß der vorliegenden
Erfindung enthält
die Vorrichtung 202 außerdem
eine intelligente Start vorrichtung 208. Die Startvorrichtung 208 erfaßt, daß das System
eingeschaltet wird und bewirkt in Reaktion auf den Start des Systems
ein schnelles Einschalten der Massenspeichervorrichtung 202 und
Laden wenigstens eines ersten Teils des Erweiterungs-BIOS in den
Pufferspeicher 206. Die Vorrichtung 208 ist so
konfiguriert, daß dieser erste
Teil des Erweiterungs-BIOS schnell genug in den Pufferspeicher 206 geladen
wird, so daß er
für das
Hostsystem zur Verfügung
steht, wenn der Einschalt-Selbsttest die Vorrichtung 202 prüft, um festzustellen,
ob sie Erweiterungs-BIOS erfordert. Dieser erste Teil des Erweiterungs-BIOS
ist dem ersten Teil 120 des Erweiterungs-BIOS für die obenbeschriebene
erste Ausführungsform ähnlich.
-
In 10 wird
diese Ausführungsform
nahezu genauso betrieben, wie für
den Betrieb der im Ablaufdiagramm von 7 veranschaulichten
Ausführungsform
beschrieben wurde. Wie in 10 gezeigt ist,
sind die ersten Blöcke 146 und 148 den
weiter obenbeschriebenen gleich. Jedoch ist in dieser Ausführungsform,
nachdem der Einschalt-Selbsttest-Code die Erweiterungs-ROM-Decodierung
freigegeben hat, der Block 150 von 7 durch den Block 210 ersetzt,
in dem das Gerät 202 seinen
internen Pufferspeicher 206 als Erweiterungs-BIOS in den
Systemspeicher abbildet, wobei an der Adresse begonnen wird, die
der Einschalt-Selbsttest-Code
an den Konfigurationsraum des Geräts lieferte. Auf gleiche Art und
Weise, wie weiter oben für 7 ausführlich beschrieben worden ist,
werden fingierte, erzeugte Daten auf den Überschuß-Systemspeicherbereich abgebildet,
der von dem Konfigurationsraum des Geräts 202 angefordert
wird. Das Gerät 202 bereitet
seine interne Adreßdecodiereinrichtung
darauf vor, den gesamten Speicheradressenbereich, der von seinem Konfigurationsraum
auch dann angefordert wird, wenn in dem Gerät 202 kein ROM ist,
zu decodieren.
-
Wie für vorhergehende Ausführungsformen beschrieben
worden ist, prüft
der Einschalt-Selbsttest-Code das Erweiterungs-BIOS ab, indem er
die Speicherzellen ausliest, in welche das Erweiterungs-BIOS abgebildet
worden war, und sucht nach einer entsprechenden Erweiterungs-BIOS-Code-Abbildung
(Block 152). Wenn keine entsprechende Code-Abbildung gefunden
wird, kehrt die Sequenz zum Block 56 zurück, um zu
prüfen,
ob weitere Geräte
zu konfigurieren sind. Wenn jedoch eine richtige Code-Abbildung
gefunden ist, geht die Sequenz zum Block 212, in dem der
Einschalt-Selbsttest-Code eine Speicherzelle innerhalb des Hostsystem-RAM 106 bestimmt,
in die der Erweiterungs-BIOS-Code aus dem Pufferspeicher 206 des
Geräts 202 kopiert
wird. Der Einschalt-Selbsttest-Code kopiert dann die Code-Abbildung
aus dem Pufferspeicher 206 des Geräts 202 in den System-RAM 106,
wie im Block 214 angegeben ist. Dieses Kopieren umfaßt den ersten Teil
des Erweiterungs-BIOS und die oben ausführlicher beschriebenen fingierten,
erzeugten Daten. Wie im Block 160 angegeben ist, ruft der
Einschalt-Selbsttest-Code
den Initialisierungscode auf, der im ersten Teil des Erweiterungs-BIOS enthalten ist,
der sich nun im System-RAM 106 befindet, und arbeitet den
Initialisierungscode ab. Der übrige
Betrieb dieser Ausführungsform
ist jenem, der weiter oben für
das Ablaufdiagramm von 7 beschrieben worden
ist, völlig
gleich.
-
Als andere Möglichkeit könnte in einer weiteren Version
dieser Ausführungsform
der Pufferspeicher 206 als Erweiterungs-BIOS für die gesamte
Erweiterungs-BIOS-Abbildung in den Hostsystemspeicher abgebildet
werden, wodurch die Notwendigkeit der Teilung des Erweiterungs-BIOS
in einen ersten und einen zweiten Teil entfallt. Diese Methode wird mit
Bezug auf das Ablaufdiagramm von 11 beschrieben.
Die Blöcke 54, 56, 146, 148 bleiben
die gleichen wie in der weiter oben für 10 beschriebenen Ausführungsform. Jedoch bildet das
Gerät 202 im
Block 216 seinen Pufferspeicher 206 als Erweiterungs-BIOS
für die
gesamte Erweiterungs-BIOS-Abbildung in den Systemspeicher ab, wobei
bei der Adresse begonnen wird, die der Einschalt-Selbsttest-Code
an den Konfigurationsraum des Geräts 202 lieferte. Das
Gerät 202 liest
das Erweiterungs-BIOS aus seinem Massenspeicher in seinen Pufferspeicher
aus und überträgt die Abbildung in
den Systemspeicher. Wenn mehrere Abbildungen zur Verfügung stehen,
werden sie ebenfalls in den Systemspeicher abgebildet. Die Vorrichtung
bereitet ihre interne Decodiereinrichtung darauf vor, den gesamten
Speicherbereich zu decodieren, selbst wenn in dem Gerät kein ROM
vorhanden ist. Die Blöcke 152, 154 und 212 sind
ebenfalls jenen, die weiter oben für 10 beschrieben wurden, völlig gleich. Im
Block 218 kopiert der Einschalt-Selbsttest-Code jedoch
die entsprechende Erweiterungs-BIOS-Abbildung, die das gesamte Erweiterungs-BIOS
enthält, indem
vom Pufferspeicher 206 des Geräts 202 der Massenspeicher 204 ausgelesen
und an den System-RAM 106 übertragen wird. Von diesem
Punkt an schreitet die Operation durch die Blöcke 76, 78, 80 und 82 so
fort, als ob das Erweiterungs-BIOS vom ROM des Geräts geladen
worden wäre,
wie für
das im Ablaufdiagramm von 4 gezeigte
System des Standes der Technik beschrieben wurde.
-
Zurück zu 9, wo eine weitere Ausführungsform
eine Anordnung liefert, bei welcher der einem besonderen Computerperipheriegerät, das von einer
Massenspeichervorrichtung verschieden ist, zugeordnete Erweiterungs-BIOS-ROM
insgesamt entfällt.
In dieser Ausführungsform
enthält
das System 200 eine Computerperipherieerweiterungskarte oder
-vorrichtung 220, die erfordert, daß ein zugeordnetes Erweiterungs-BIOS
in den Hostrechner geladen wird, um die Erweiterungskarte 220 zu
initialisieren und/oder zu betreiben. Auf gleiche Art und Weise, wie
weiter oben für
das Gerät 202 beschrieben
ist, wird das der Erweiterungskarte 220 zugeordnete Erweiterungs-BIOS
im Massenspeicher 204 der Vorrichtung 202 gespeichert.
Die Funktion dieser Ausführungsform
wäre der
unmittelbar zuvor beschriebenen bis auf die Tatsache, daß der in
dem Massenspeicher 204 gespeicherte Initialisierungscode
sowohl den Initialisierungs- und Laufzeitcode für die Erweiterungskarte 220 als
auch den Initialisierungs- und Laufzeitcode für das Gerät 202 umfassen würde, gleich.
-
Einer der Vorteile der vorliegenden
Erfindung besteht darin, daß der
Teil des Erweiterungs-BIOS, der im Massenspeicher gespeichert ist,
leicht erweitert werden kann. In dem Fall, in dem der Massenspeicher
ein Festplattenlaufwerk ist, könnte
der Teil des Erweiterungs-BIOS in einem Teil des Massenspeichers
gespeichert werden, auf den der Benutzer nicht zugreifen kann. Es
könnten
viele verschiedene Verfahren benutzt werden, um diesen Teil des
Festplattenlaufwerks während
des normalen Betriebs des Festplattenlaufwerks vor Zugriffen zu
schützen.
In dieser Situation könnte
ein Dienstprogramm vorgesehen sein, das den Zugriff auf diesen geschützten Teil
des Festplattenlaufwerks ermöglicht,
wenn eine Aktualisierung oder Korrektur des Teils des Erweiterungs-BIOS,
der auf dem Festplattenlaufwerk gespeichert ist, vorgenommen werden
soll. Alle der obenbeschriebenen Ausführungsformen können diese
Möglichkeit
der Aktualisierung und Überarbeitung des
Teils des Erweiterungs-BIOS, der in dem Massenspeicher des Massenspeicher-Peripheriegeräts des Systems
gespeichert ist, vorteilhaft nutzen.
-
Das allgemeine Verfahren zum Speichern wenigstens
eines Teils des Erweiterungs-BIOS im Massenspeicher ermöglicht außerdem,
das Hostsystem für
verschiedene Situationen unterschiedlich zu konfigurieren. Ein Beispiel
dafür wäre, wenn
das System verwendet wird, um ein bestimmtes Spiel laufen zu lassen
oder eine Anwendung abzuarbeiten, was besser funktionieren könnte, wenn
das System in einer Art konfiguriert ist, die vom normalen Betrieb
des Systems abweicht. In dieser Situation könnte die Massenspeichervorrichtung
ein Compact Disc-Abspielgerät
sein, wobei das Spiel oder die Anwendung auf einer Compact Disc
geliefert werden könnte.
In Abhängigkeit
davon, welche der obenbeschriebenen Methoden verwendet wird, würde die
Compact Disc selbst wenigstens einen Teil des Erweiterungs-BIOS – wenn nicht
gar das gesamte Erweiterungs-BIOS – enthalten. Dieses Erweiterungs-BIOS
auf der Compact Disc würde
den Initialisierungs- und Laufzeitcode für die Optimierung des Betriebs
des Systems für
das spezielle Spiel oder die spezielle auszuführende Anwendung enthalten.
-
Indem ein Teil des Erweiterungs-BIOS und/oder
System-BIOS auf dem Massenspeicher des Massenspeicher-Peripheriegeräts gespeichert wird,
könnte
ein viel größeres Erweiterungs- und/oder
System-BIOS vorgesehen werden, ohne die Kosten des Peripheriegeräts und/oder
des Systems zu erhöhen.
Wie weiter oben beschrieben worden ist, könnte dieses allgemeine Konzept
zur Speicherung von Informationen, die während des Starts des Systems
benötigt
werden, die verschiedensten Betriebsdaten, Text oder andere Information
enthalten, die die Funktionalität
des Systems während
des Systemstarts erhöhen.
Ein besonderes Beispiel dafür ist
die Fähigkeit,
kompliziertere graphische Anzeigen während des Starts des System
zu präsentieren, ohne
daß irgendwo
in dem System ein ROM großer Kapazität sein muß, der die
gewünschten
Graphikinformationen enthält.
-
Mit Bezug auf 12A wird die Funktionsweise eines Computersystems
gemäß der Erfindung beschrieben,
das fähig
ist, während
des Systemstarts bestimmte Graphikinformationen an das System zu
liefern. Wie in den Blöcken 222 und 224 angegeben
ist, wird der Computer eingeschaltet, und der Initialisierungscode
des dem System zugeordneten BIOS übernimmt die Steuerung des
Systems. Dieses BIOS könnte
eines der verschiedenen, obenbeschriebenen BIOS-Anordnungen sein.
An diesem Punkt führt
der Initialisierungscode des BIOS eine Überprüfung aus, wie durch den Entscheidungsblock 226 angegeben
ist, um festzustellen, ob das Computersystem Videographikspeicher
enthält.
Wenn kein Videographikspeicher vorhanden ist, setzt der Initialisierungscode
des BIOS die Systemkonfigurierung fort, wie im Block 234 angegeben
ist. Wenn jedoch ein Videographikspeicher vorhanden ist, wird die
aktuelle Videospeicherebene auf aktiv gesetzt, und die Abbildung
der aktuellen Videospeicherebene wird aus der Massenspeichervorrichtung
direkt in den Videospeicher eingelesen, wie im Block 228 bzw. 230 gezeigt
ist. Der Initialisierungscode des BIOS führt dann eine Überprüfung aus,
um festzustellen, ob es weitere Videospeicherebenen gibt, die auszulesen sind,
wie im Entscheidungsblock 232 angegeben ist. Wenn das so
ist, werden die Blöcke 228 und 239 wiederholt,
bis keine weiteren Videospeicherebenen auszulesen sind.
-
Es könnte, wobei nun auf 12B Bezug genommen wird,
die gleiche grundlegende Methode, die oben für das Graphikbeispiel dargestellt
worden ist, benutzt werden, um andere Betriebsdaten an das System
zu liefern. Diese Betriebsdaten könnten Systemkonfigurationsinformationen,
Daten, Text, Paßwörter oder
beliebige andere Informationen, die während des Systemstarts von
Nutzen sein könnten,
enthalten, wobei sie jedoch nicht hierauf beschränkt sind. Wie weiter oben für 12A beschrieben ist, wird
der Computer eingeschaltet, und der Initialisierungscode des dem
System zugeordneten BIOS übernimmt
die Steuerung des Systems, wie in den Blöcken 222 und 224 angegeben
ist. An diesem Punkt führt
der Initialisierungscode des BIOS eine Überprüfung aus, wie durch den Entscheidungsblock 236 angegeben
ist, um festzustellen, ob die Massenspeichervorrichtung Betriebsdaten
enthält,
die in das System zu laden sind. Wenn keine Betriebsdaten vorhanden
sind, fährt
der Initialisierungscode des BIOS mit der Systemkonfigurierung fort,
wie im Block 234 angegeben ist. Wenn jedoch Betriebsdaten
vorhanden sind, bestimmt der Initialisierungscode die Speicherzelle,
in welche die Betriebsdaten zu laden sind, und die Betriebsdaten
werden aus der Massenspeichervorrichtung in den System-RAM eingelesen, wie
im Block 238 bzw. 240 gezeigt ist. Der Initialisierungscode
des BIOS führt
dann eine Überprüfung aus,
um festzustellen, ob es irgendwelche weiteren Betriebsdaten gibt,
die einzulesen sind, wie im Entscheidungsblock 242 angegeben
ist. Wenn das der Fall ist, werden die Blöcke 238 und 240 wiederholt, bis
keine weiteren Betriebsdaten einzulesen sind.
-
Wie weiter oben erwähnt worden
ist, könnten unter
Verwendung der für
die 12A und 128 beschriebenen
Methode die Betriebsdaten oder Graphiken dem System während des
Systemstarts geliefert werden, ohne für diese Informationen zusätzliche ROM-Speicherkapazitäten zu benötigen. Dies
ermöglicht,
während
des Systemstarts viel mehr Informationen zu liefern, ohne die Kosten
des Systems oder des Peripheriegeräts zu erhöhen. Diese Methode ermöglicht außerdem,
die Kosten eines ROM oder anderer Speichertypen, wie etwa eines
batteriegestützten
Speichers, wie er gegenwärtig
für diesen Zweck
verwendet wird, einzusparen und somit die Kosten des Systems zu
senken.
-
Obwohl der periphere Bus hier als
ein PCI-Bus beschrieben worden ist, ist dies kein Erfordernis. Wie
weiter oben erwähnt
worden ist, könnte auch
ein beliebiger peripherer Bus verwendet werden, der die Abbildung
der Positionsadressen des Erweiterungs-BIOS in den System-Speicher
anfordert, statt festgelegte, festverdrahtete Erweiterungs-BIOS-Positionsadressen
zu erlauben. Außerdem
ist selbstverständlich,
daß in
den Ausführungsformen,
die den Erweiterungs-BIOS-ROM
in einem besonderen Peripheriegerät vollständig entfallen lassen, das
be sondere Peripheriegerät
für andere
Zwecke immer noch ROM enthalten könnte und trotzdem im Geltungsbereich
der Erfindung bleibt.
-
Obwohl nur wenige spezifische Beispiele
zur Schaffung einer Anordnung, in welcher wenigstens ein Teil des
BIOS oder der Betriebsdaten in dem Massenspeicher eines Computerperipheriegeräts mit Massenspeicher
gespeichert ist, beschrieben worden sind, sollte klar sein, daß die Erfindung
eine breite Vielfalt von weiteren spezifischen Formen annehmen kann.
Beispielsweise könnte
in einem System, in dem verschiedene Peripheriegeräte an den
Hostrechner angeschlossen sind, das Erweiterungs-BIOS für alle der
Geräte
auf der Massenspeichervorrichtung gespeichert sein. In diesem Beispiel
könnte
der erste Teil des Erweiterungs-BIOS
für die
Massenspeichervorrichtung wie weiter oben beschrieben in einen Pufferspeicher
geladen werden oder könnte wie
weiter oben beschrieben in einen Erweiterungs-BIOS-ROM geringer
Größe gespeichert
werden. Der zweite Teil des Erweiterungs-BIOS für die Massenspeichervorrichtung
könnte
zusammen mit dem Erweiterungs-BIOS für alle übrigen Peripheriegeräte in dem
Massenspeicher der Massenspeichervorrichtung gespeichert sein, wobei
der Zugriff durch den Gebrauch des ersten Teils des Erweiterungs-BIOS
für die
Massenspeichervorrichtung erfolgen könnte. Daher sind die dargestellten
Beispiele als veranschaulichend und nicht als einschränkend zu
betrachten; und die Erfindung ist nicht auf die hier gegebenen Einzelheiten
zu beschränken,
sondern könnte
innerhalb des Geltungsbereichs der beigefügten Ansprüche modifiziert werden.