-
HINTERGRUND DER ERFINDUNG
-
1. Gebiet der Erfindung
-
Diese Erfindung bezieht sich im Allgemeinen auf
Computersysteme, und insbesondere auf das Aktualisieren eines Computercodes,
der zum Starten eines Computersystems implementiert ist.
-
2. Beschreibung der verwandten
Technik
-
Heutige Personalcomputersysteme ermöglichen
den Benutzern einen hohen Grad an Flexibilität im Hinblick auf die Anzahl
von peripheren Einrichtungen, die mit einem gegebenen System verbunden werden
können.
Beispielsweise sind die Benutzer in der Lage, zusätzliche
interne und externe periphere Einrichtungen zu verbinden, um den
Anforderungen für
die Speicherung oder den Datenzugriff zu entsprechen, die erforderlich
sind, um die Arbeit des Benutzers abzuschließen. Derartige periphere Einrichtungen
können
interne oder externe Festplattenlaufwerke, Compact-Disk(CD)-Wiedergabegeräte, digitale
Videodisc(DVD)-Wiedergabegeräte,
beschreibbare Compact-Disks (CD-Rs)
etc. einschließen.
-
Um den Anschlusserfordernissen für diese peripheren
Einrichtungen zu entsprechen, haben die meisten Computer IDE-Anschlüsse und
PCI-Anschlüsse,
die in die Hauptplatine des Computers eingebaut sind. Üblicherweise
werden die IDE-Anschlüsse verwendet,
um interne Einrichtungen, wie beispielsweise Festplattenlaufwerke
und CD-ROM-Laufwerke, anzuschließen. Die PCI-Anschlüsse sind
im Allgemeinen für
die Aufnahme von Host-Adapter-Karten konfiguriert, welche den Anschluss
sowohl interner als auch externer Einrichtungen gestatten. Wie bekannt
ist, gibt es zahlreiche Typen von Host-Adaptern; eini ge der am häufigsten verwendeten
sind SCSI-Host-Adapter, Host-Adapter redundanter
Festplattenarrays [redundant array of inexpensive disk](RAID) und
dergleichen. Die SCSI-Host-Adapter sind die am weitesten verbreiteten Adapter
aufgrund der Flexibilität
und Leistung der Anordnung der peripheren Einrichtungen. Ein SCSI-Host-Adapter
kann beispielsweise als Kommunikationsverbindung für bis zu
15 interne und externe periphere Einrichtungen dienen.
-
Die meisten Host-Adapter haben Options-ROM-Chips,
die auf der Leiterplatte der Host-Adapter-Karte integriert sind.
Der Options-ROM-Chip ist üblicherweise
ein elektrisch löschbarer
programmierbarer Nur-Lese-Speicher (EEPROM), welcher Programmanweisungen
speichert, die während
des Startprozesses des Computersystems verwendet werden, dessen
Host-Adapter-Karte damit verbunden ist. Ohne diese Programmanweisungen
sind die Host-Adapter-Karte
und alle peripheren Einrichtungen, die mit der Host-Adapter-Karte
verbunden sind, nicht in der Lage, mit dem Host-Computersystem zu kommunizieren
und werden somit nutzlos gemacht. Von Zeit zu Zeit erscheint es
den Herstellern dieser Host-Adapter hilfreich, die Programmanweisungen zu
aktualisieren, die sich auf den Options-ROM-Chips befinden. Bedauerlicherweise
kann dieses Aktualisieren im Hinblick auf den begrenzten Platz,
der im System-RAM für
diese Funktion verfügbar
ist, problematisch werden, da mehr als eine Host-Adapter-Karte mit
einem bestimmten Computersystem verbunden werden kann.
-
Um dieses Problem weiter auszuführen, ist ein
allgemeines Verständnis
des Startprozesses eines Computersystems, mit welchem PCI-Host-Adpater
verbunden sind, hilfreich. Während
des Starts weist das System-BIOS jedem PCI-Host-Adapter einen bestimmten
Speicherplatz im System-RAM zu. Dieser Speicherplatz wird verwendet,
um das Betriebssystem des Computers in die Lage zu versetzen, mit
bestimmten Registern zu kommunizieren, die sich auf der PCI-Host-Adapter-Karte
befinden. Im Allgemei nen fordert der System-RAM jeden Host-Adapter
auf, anzugeben, wie viel RAM-Speicherplatz er benötigt, und
dann wird dieser Platz zugewiesen. Man beachte, dass es nur einen
festgelegten Bereich des Speicherplatzes gibt, der für PCI-Einrichtungen verwendet
werden kann. Eine weitere Komplikation besteht darin, dass unterschiedliche
Computerhersteller unterschiedliche System-BIOS verwenden, welche
den verfügbaren
RAM-Speicherplatz auf unterschiedliche Weise zuweisen. Dementsprechend kann
die Speicheradressspeicherstelle, die von einem System-BIOS für eine gegebene
PCI-Einrichtung zugewiesen wird, ganz unterschiedlich sein, wenn
sie von einem System-BIOS eines anderen Herstellers zugewiesen wird.
-
Um eine Aktualisierung der Programmanweisungen
eines gegebenen Options-ROM-Chips auszuführen, wird der Host-Adapter
identifiziert, der den gewünschten
Options-ROM-Chip enthält.
Um diese Programmanweisungen zu aktualisieren, muss der gesamte
Inhalt der Programmanweisungen ebenfalls in den System-RAM geschrieben
werden, an dieselbe Speicherstelle, die vorher für den Host-Adapter zugewiesen
wurde. Da Aktualisierungen von Programmanweisungen weiterhin erhöhte Funktionalität bereitstellen
oder die Behebung von Fehlern im existierenden Code bewirken, kann
der Umfang der Aktualisierung recht groß sein. Hier besteht das Problem
darin, dass der neue Code eine Größe haben kann, so dass er Speicherplatz
benötigt,
der bereits von anderen PCI-Einrichtungen belegt ist. Wenn dies eintritt,
wird die Aktualisierung nicht ausgeführt, weil kein Platz im System-RAM
verfügbar
ist. Wie erkennbar ist, gibt es viele Gründe, warum eine Notwendigkeit
für die
Aktualisierung des Codes in Options-ROMs besteht, und wenn diese
Aktualisierung nicht möglich
ist, kann der Benutzer des Computers einen Teil der Funktionalität verlieren
oder es gelingt ihm nicht, die gesamte Funktionalität zu nutzen,
die von den peripheren Ein richtungen bereitgestellt wird, die mit
dem Host-Adapter verbunden sind.
-
In Anbetracht des Vorhergehenden
besteht eine Notwendigkeit für
die Bereitstellung eines Verfahrens und eines Computer-Code-Dienstprogrammes
zum Programmieren von Code-Aktualisierungen in
Options-ROM-Chips von Host-Adaptern.
-
ZUSAMMENFASSENDE DARSTELLUNG
DER ERFINDUNG
-
Die Erfindung wird in den beigefügten Ansprüchen dargelegt.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Die vorliegende Erfindung wird durch
die folgende detaillierte Beschreibung in Verbindung mit den begleitenden
Zeichnungen problemlos verständlich.
Gleiche Bezugszeichen bezeichnen gleiche Strukturelemente.
-
1A zeigt
eine Blockdarstellung eines Host-Computersystems mit einer Mehrzahl
von Host-Adaptern, die mit diesem verbunden sind.
-
1B stellt
eine detailliertere Ansicht einer Host-Adapter-Karte dar, die mit einem PCI-Bus
verbunden ist und mit einem Systembus und -RAM kommuniziert.
-
2 zeigt
eine detailliertere Darstellung eines System-RAM mit zugewiesenem
Speicherplatz in Übereinstimmung
mit einem Ausführungsbeispiel der
vorliegenden Erfindung.
-
3 zeigt
eine vereinfachte Blockdarstellung einer Aktualisierungsoperation
des Options-ROM-BIOS-Codes, der sich auf einem der ROM-Chips eines
Host-Adapters befindet, in Übereinstimmung
mit einem Ausführungsbeispiel
der vorliegenden Erfindung.
-
4 stellt
ein weiteres Beispiel des System-RAM mit zugewiesenem Speicherplatz
in Übereinstimmung
mit einem Ausführungsbeispiel
der vorliegenden Erfindung dar.
-
5 stellt
ein Flussdiagramm dar, das die Verfahrensoperationen des Aktualisierens
des Options-ROM-BIOS eines ausgewählten Options-ROM-Chips in Übereinstimmung
mit einem Ausführungsbeispiel
der vorliegenden Erfindung beschreibt.
-
6 stellt
die intelligente Zuweisung von freiem Platz detaillierter dar, die
während
einer Operation gemäß 5 in Übereinstimmung mit einem Ausführungsbeispiel
der vorliegenden Erfindung ausgeführt wird.
-
7A und 7B stellen Tabellen mit zugewiesenen
Speicherstartadressen und -Größen für Host-Adapter
in Übereinstimmung
mit einem Ausführungsbeispiel
der vorliegenden Erfindung dar.
-
DETAILLIERTE BESCHREIBUNG
DER BEVOZUGTEN AUSFÜHRUNGSBEISPIELE
-
Es wird eine Erfindung für ein computerimplementiertes
Verfahren zum Programmieren von Options-ROM-Chips mit einem aktualisierten
Code beschrieben, das ein Dienstprogramm für die Zuweisung von freiem
Speicherplatz verwendet. Das Dienstprogramm für die Zuweisung von freiem
Speicherplatz ist für
die intelligente Umadressierung von vorher von anderen Host-Adaptern zugewiesenen Speicherplatzstartadressen
konfiguriert, welche in dem Speicherplatz liegen, der von dem aktualisierten Code
benötigt
wird. Wenn der aktualisierte Code auf den gewünschten Options-ROM-Chip geschrieben wird,
werden die umadressierten Startadressen wieder hergestellt. Es wird
jedoch für
einen Fachmann ersichtlich sein, dass die vorliegende Erfindung
ohne einige oder alle dieser speziellen Details ausgeführt werden
kann. In anderen Fällen
sind bekannte Prozessoperationen nicht im Detail beschrieben worden, um
die vorliegende Erfindung nicht unnötig zu verschleiern.
-
Im Überblick dargestellt, ist das
Options-ROM-BIOS-Programmierdienstprogram
der vorliegenden Erfindung für
das Abtasten aller PCI-Einrichtungen in dem System und den Erhalt ihrer
zugewiesenen PCI-Speicherbereiche konfiguriert. Aus diesen Informationen
ist es möglich
zu bestimmen, ob genügend
Speicherplatz für
den aktualisierten Options-ROM-Code verfügbar sein wird, ohne mit anderen
PCI-Einrichtungen in Konflikt zu geraten. Wenn festgestellt wird,
dass ein Konflikt eintreten wird, dann wird der Speicherzugriff
bei den in Konflikt befindlichen PCI-Einrichtungen zeitweise gesperrt, indem
die Basisadressregister neu verbunden werden. wenn die Aktualisierung
auf den Options-ROM-Chip und in den intelligent zugewiesenen Speicherplatz
im RAM geschrieben [flash] worden ist, werden die Basisadressregister
der in Konflikt befindlichen PCI-Einrichtungen wieder in den Zustand vor
dem Neuabbilden versetzt und das System kehrt in den normalen Betrieb
zurück.
Es werden nun 1A bis 7B beschrieben, um die Details
der vorliegenden Erfindung umfassender zu beschreiben.
-
1A zeigt
eine Blockdarstellung 100 eines Host-Computersystems 102 mit einer
Mehrzahl von mit diesem verbundenen Host-Adaptern 106.
Im Allgemeinen weist das Host-Computersystem 102 üblicherweise
eine Mehrzahl von PCI-Anschlüssen auf,
die in die Hauptplatine eingebaut sind, damit es möglich ist,
dass unterschiedliche Typen von Host-Adaptern mit einem PCI-Bus
des Host-Computersystems verbunden werden. Bei diesem Beispiel sind
ein Host-Adapter (HA1) 106a, ein
Host-Adapter (HA2) 106b, ein Host-Adapter
(HA3) 106c und ein Host-Adapter
(HA4) 106d mit dem Host-Computersystem 102 verbunden.
-
Jeder der Host-Adapter 106 weist üblicherweise
einen Steuereinrichtungschip 108 und einen ROM-Chip 110 auf,
die in die Leiterplatte des Host-Adapters integriert sind. Selbstverständlich enthält die Host-Adapter-Karte 106 auch
andere unterstützende
Schaltungen, welche eine entsprechende Ausführung und Kommunikation mit
dem Host-Computersystem 102 ermöglichen. Wie in 1B gezeigt, kann der Host-Adapter 106 ein
SCSI-Host-Adapter sein, der die entsprechende Kommunikation für eine oder
mehrere periphere Einrichtungen 107 ermöglichen kann, welche periphere
SCSI-Einrichtungen sein können.
Die periphere Einrichtung 107 kommuniziert über eine
entsprechende Verbindung 109, welche eine interne Flachbandverbindung
oder ein externes Kabel sein kann. Der Host-Adapter 106 wird als über einen
PCI-Anschluss 112 mit einem PCI-Bus 114 verbunden
dargestellt. Der PCI-Bus 114 kommuniziert üblicherweise über eine
Busbrücke 116 mit dem
Systembus 118 des Host-Computersystems 102. Der
Systembus 118 stellt auch einen Kommunikationspfad zu dem
System-RAM 120 bereit.
-
Während
des Startprozesses des Host-Computersystems 102 ist das
System-BIOS für
die Initialisierung jedes der Host-Adapter 106 konfiguriert, um eine
entsprechende Kommunikation zwischen dem Host-Computersystem 102 und
den zugeordneten peripheren Einrichtungen 107 zu ermöglichen.
Um die Initialisierung auszuführen,
weist das System-BIOS für
jede der Host-Adapter-Karten 106a eine
bestimmte Menge Kommunikationsspeicherplatz im System-RAM 102 zu.
-
2 zeigt
eine detailliertere Darstellung des System-RAM 120 in Übereinstimmung mit einem Ausführungsbeispiel
der vorliegenden Erfindung. Wie gezeigt, verwendet der System-RAM 120 unterschiedliche
Adressbereiche zur Verarbeitung unterschiedlicher Aufgaben. Beispielsweise
wird ein Speicherplatz 120a üblicherweise für Betriebssystem(OS)-Programme
und Betriebssystemdateien verwendet. Ein Adressbereich 120b wird üblicherweise
für die
verschiedenen Host-Adapter 106 verwendet, die mit dem Host-Computersystem 102 verbunden
werden können.
-
Im Allgemeinen weist das System-BIOS während der
Initialisierung durch das System-BIOS eine bestimmte Menge des Speicherplatzes
im System-RAM 120 zu, um die Kommunikation mit dem Registerchipsatz
auf jedem der Host-Adapter aufzubauen. Dieser Speicherplatz gestattet
daher dem Betriebssystem (OS), mit den Host-Adaptern zu kommunizieren,
die mit dem Host-Computersystem 102 verbunden sind.
-
Detaillierter beschrieben, zeigt
der Adressbereich 120b vier verschiedene Adressbereiche 206a, 206b, 206c und 206d für die Host-Adapter HA1, HA2, HA3 beziehungsweise HA4.
Jeder der Adressbereiche weist eine zugeordnete Startadresse auf,
welche als SA1, SA2,
SA3 und SA4 gezeigt
werden. Die Adressbereiche 206 weisen auch einen zugeordneten
Größenparameter
auf, welche als GRÖSSE1, GRÖSSE2, GRÖSSE3 und GRÖSSE4 gezeigt werden.
-
Wie oben erwähnt, variiert der konkrete
zugewiesene Speicherstellenplatz innerhalb des Adressbereichs 120b für jeden
der Host-Adapter in Abhängigkeit
von dem bestimmten System-BIOS, das
die Host-Adapter 106 initialisiert. Das heißt, unterschiedliche
System-BIOS-Hersteller haben unterschiedliche Arten und Weisen der
Zuweisung dieses Speicherplatzes. Dementsprechend variieren in unterschiedlichen
Systemen die konkreten Adressbereiche 206 für jeden
der Host-Adapter 106.
-
3 zeigt
eine vereinfachte Blockdarstellung einer Aktualisierungsoperation
des Options-ROM-BIOS-Codes, der sich auf einem der ROM-Chips 110 eines
Host-Adapters 106 befindet. Beispielsweise kann es erforderlich
sein, das BIOS-Programm zu aktualisieren, das sich auf einem der
ROM-Chips 110 eines Host-Adapters 106 befindet.
Um dies auszuführen,
wird sich der Benutzer üblicherweise
eine aktualisierte Options-ROM-BIOS-Datei 130 beschaffen, die auf
einen vorhandenen Options-ROM-Chip 110 eines
der Host-Adapter 106 programmiert werden muss. Die ROM-Chips 110 als
solche sind programmierbare Chips, wie beispielsweise elektrisch
löschbare
programmierbare Nur-Lese-Speicher
(EEPROMs), die mit einem neuen aktualisierten Programm beschrieben
werden können.
-
Bei diesem bevorzugten Ausführungsbeispiel
wird die Options-ROM-BIOS-Datei 130 auf den Options-ROM-Chip 110 geschrieben,
indem ein Options-ROM-BIOS-Programmierdienstpro gramm 140 verwendet
wird. Das Options-ROM-BIOS-Programmierdienstprogramm 140 ist
so konfiguriert, dass das Schreiben der aktualisierten Options-ROM-BIOS-Datei 130 in
den Options-ROM 110 selbst in Situationen ermöglicht wird,
wenn nicht genügend
Platz im System-RAM 120 vorhanden ist. Im Allgemeinen wird das
Options-ROM-BIOS-Programmierdienstprogramm 140 so konfiguriert,
dass im System-RAM 120 genügend Speicherplatz dynamisch
und intelligent zugewiesen wird – ungeachtet der Anzahl der Host-Adapter 106,
welchen vorher in dem Speicherplatz 120b des System-RAM 120 Speicherplatz
zugewiesen worden ist.
-
Wenn beispielsweise die aktualisierte
Options-ROM-BIOS-Datei
eine Größe von ungefähr 64K hat
und die Aktualisierung auf den Options-ROM-Chip 110 des
Host-Adapters HA3 abgebildet wird, muss
das System-BIOS die 64K der Aktualisierung an eine Speicherstelle
schreiben, die bei der Startadresse SA3 beginnt
(d. h. SA3 ist der Startadresse des Host-Adapters
HA3 zugeordnet). Die Größe der Aktualisierung ist jedoch
größer als
die Größe des aktuellen
zugewiesenen Speicherplatzes im Adressbereich 206c. Bei
diesem Beispiel belegt der neue Adressbereich einen Adressbereich 206c'. Wenn dies
eintritt, überschneidet
die Menge des Speicherplatzes, der für die Aktualisierung im System-RAM 120 benötigt wird,
den Bereich, welcher von dem Adressbereich 206d belegt
und dem Host-Adapter HA4 zugeordnet ist.
Dies wird selbstverständlich
einen Konflikt verursachen, der die Möglichkeit des Absturzes oder
Aufhängens
des Computersystems mit sich bringt.
-
Um Speicherplatz für die aktualisierte ROM-BIOS-Datei 130 intelligent
zuzuweisen, ist das Options-ROM-BIOS-Programmierdienstprogramm 140 so
konfiguriert, dass die Startadresse des Host-Adapters HA4 für
einen Zeitraum umaddressiert wird, der das Schreiben der gesamten
Aktualisierung in den Adressbereich 206c' gestattet. Ungefähr zur gleichen
Zeit, wenn die Aktualisierung in den System-RAM 120 geschrieben
wird, wird die Aktu alisierung über
eine Abbildungsoperation auch in den Options-ROM 110 geschrieben. Das Options-ROM-BIOS-Programmierdienstprogramm 104 unterstützt daher
die Ausführung
des Umadressierens der Startadresse jeglicher Adressbereiche 206, die
Host-Adaptern zugewiesen
sind, die sich im Bereich der Aktualisierung befinden können. Dementsprechend
werden – obwohl
dieses Beispiel nur einen Fall darstellt, in welchem ein Adressbereich
in Konflikt steht – in
Fällen,
wenn der System-RAM überfüllter ist,
alle Startadressen der in Konflikt stehenden Adressbereiche zeitweilig
umadressiert. Vorzugsweise werden die Startadressen zeitweilig auf Null
umadressiert.
-
5 stellt
ein Flussdiagramm 400 dar, das die Verfahrensoperationen
der Aktualisierung des Options-ROM-BIOS eines ausgewählten Options-ROM-Chips 110 in Übereinstimmung
mit einem Ausführungsbeispiel
der vorliegenden Erfindung beschreibt. Das Verfahren beginnt bei
einer Operation 402, wo ein Satz von Host-Adaptern bereitgestellt wird.
Im Allgemeinen kann ein Host-Computersystem 102 eine Anzahl
von Host-Adaptern aufweisen, von welchen jeder mit der Hauptplatine
des Host-Computersystems 102 beispielsweise über einen
PCI-Bus verbunden ist. wenn ein Satz von Host-Adaptern in Operation 402 bereitgestellt
ist, geht das Verfahren zu einer Operation 404 weiter,
wo das Host-Computersystem gestartet wird.
-
Nun geht das Verfahren zu Operation 406, wo
das System-BIOS
den PCI-Bus des Host-Computersystems abtastet, um jeden der Host-Adapter
zu identifizieren, der Teil des bereitgestellten Satzes von Host-Adaptern
ist. Das Verfahren geht dann zu Operation 408 weiter, wo
das System-BIOS Kommunikationsspeicherplatz (d. h. Adressbereiche 206)
im System-RAM des Host-Computersystems zuweist. Wie oben erwähnt, ist
die konkrete Speicherstelle der Adressbereiche, die dem Kommunikationsspeicherplatz
zugeordnet sind, in Abhängigkeit
vom Hersteller des System-BIOS unterschiedlich. Die Standard-Start prozedur
ist dann bei Operation 410 abgeschlossen, und das Verfahren
geht zu einer Operation 412 weiter, wo der Benutzer den
Wunsch haben kann, den Options-ROM-Code in einem der Host-Adapter zu aktualisieren.
-
Bei dem Beispiel von 4 sei angenommen, dass der Host-Adapter
HA3 für
die Aktualisierung seines Options-ROM-Codes ausgewählt wird. Wenn der Benutzer
den gewünschten
Options-ROM-Chip 110 des Host-Adapters HA3 auswählt, geht
das Verfahren zu Operation 414 weiter, wo man einen aktualisierten
Options-ROM-Code und ein Dienstprogramm zum Schreiben des aktualisierten
Options-ROM-Codes erhält.
Beispielsweise kann man den aktualisierten Options-ROM-Code und
das Dienstprogramm zum Schreiben des aktualisierten Options-ROM-Codes über eine
Diskette, eine CD-ROM, über
ein Computernetzwerk oder über
das Internet erhalten. Wenn man den gewünschten aktualisierten Options-ROM-Code
und das Dienstprogramm zum Schreiben des aktualisierten Options-ROM-Codes
erhalten hat, geht das Verfahren zu einer Operation 416 weiter,
wo das Dienstprogramm ausgeführt
wird, um eine Menge des freien Platzes im System-RAM dynamisch zu identifizieren.
-
Bei diesem Ausführungsbeispiel ist die Menge
des freien Platzes für
die Aufnahme des aktualisierten Options-ROM-Codes konfiguriert.
Das Verfahren geht nun zu Operation 418 weiter, wo die
Menge des freien Platzes im System-RAM auf den Options-ROM-Chip (z. B. ein
Flash-Options-ROM-Chip) auf dem ausgewählten Host-Adapter abgebildet
wird, der für
die Aufnahme des aktualisierten Options-ROM-Codes konfiguriert ist.
Nun geht das Verfahren zu einer Operation 420 weiter, wo
der aktualisierte Options-ROM-Code in die abgebildete Menge des
freien Platzes geladen wird, so dass der Options-ROM-Code sowohl
im System-RAM als auch auf dem Options-ROM-Chip des gewünschten
Host-Adapters gespeichert wird. Wenn die Aktualisierung geladen
worden ist, geht das Verfahren zu einer Operation 422 weiter,
wo das Computersystem vorzugsweise neu gestartet wird, so dass der
ausgewählte Host-Adapter
die Implementierung seines aktualisierten Options-ROM-Codes ausführen kann.
-
6 stellt
die intelligente Zuweisung von freiem Platz, die während der
Operation 418 gemäß 5 ausgeführt wird, in Übereinstimmung
mit einem Ausführungsbeispiel
der vorliegenden Erfindung detaillierter dar. Wie oben erwähnt, besteht – da Aktualisierungen
des Options-ROM-Codes häufig
größer als
der zugewiesene Kommunikationsspeicherplatz 206 sein werden – eine hohe
Wahrscheinlichkeit, dass der Adressbereich, der für die Aktualisierung
im System-RAM 120 notwendig ist, bereits von einem anderen
Host-Adapter beansprucht worden ist. Dementsprechend beginnt die
intelligente Zuweisung des freien Platzes der vorliegenden Erfindung bei
einer Operation 450, wo alle PCI-Einrichtungen (d. h. Host-Adapter)
abgetastet werden, die mit dem Computersystem verbunden sind.
-
Wenn das Abtasten abgeschlossen ist,
wird in Operation 452 eine Tabelle mit Startadressen und Größenanforderungen
im System-RAM für
jede der PCI-Einrichtungen erzeugt. Beispielsweise stellt 7A ein Beispiel dar, wo
vier Host-Adapter HA1 bis HA4 abgetastet
worden sind und jeder eine zugeordnete Startadresse SA1 bis
SA4 sowie Größenanforderungen GRÖSSE1 bis GRÖSSE4 hat. Nachdem in Operation 452 diese
Tabelle erstellt worden ist, geht das Verfahren zu einer Operation 454 weiter,
wo eine Startadresse und eine Größe des ausgewählten Host-Adapters lokalisiert
werden, der für
das Beschreiben mit dem aktualisierten Options-ROM-Code konfiguriert
ist. Bei diesem Beispiel ist Host-Adapter HA3 der
ausgewählte
Host-Adapter und er hat eine zugeordnete Startadresse SA3 und eine GRÖSSE3 (d.
h. einen Adressbereich). An diesem Punkt geht das Verfahren zu einer
Entscheidungsoperation 456 weiter, wo bestimmt wird, ob
für die
Aktualisierung RAM-Platz beginnend mit der Startadresse SA3 zur Verfügung steht.
-
In dem Beispiel von 4 wird deutlich, dass der Adressbereich 206c' nicht genügend freien
Platz hat, der für
den aktualisierten Options-ROM-Code verfügbar ist. Das Verfahren als
solches geht zu einer Operation 458 weiter, wo auf die
Tabelle Bezug genommen wird, die in Operation 452 erstellt
wurde, um die PCI-Einrichtungen zu identifizieren, die in den Platz
fallen, der von dem aktualisierten Options-ROM-Code benötigt wird.
Erneut beansprucht in 4 Host-Adapter
HA4 Kommunikationsspeicherplatz beginnend
bei der Startadresse SA4. Dementsprechend
geht das Verfahren zu einer Operation 460 weiter, wo die
Startadressen jeglicher PCI-Einrichtungen identifiziert werden,
die in den Platz fallen, der von dem aktualisierten Options-ROM-Code
benötigt
wird.
-
An diesem Punkt werden die Startcodeadressen
der Einrichtungen umadressiert, von welchen festgestellt wurde,
dass sie in den Platz fallen, der von dem aktualisierten Options-ROM-Code benötigt wird.
Beispielsweise stellt 7B die
Tabelle 302 dar, in welcher die Startadresse von Host-Adapter HA4 auf Null gesetzt wird, so dass der aktualisierte Options-ROM-Code
beginnend bei Startadresse SA3 geschrieben
werden kann. Bei einem bestimmten Beispiel kann der aktualisierte
Options-ROM-Code 64K
sein, und alle 64K können
nun in den System-RAM 120 sowie auf den Options-ROM-Chip 110 in Übereinstimmung
mit der abgebildeten Menge des freien Platzes geschrieben werden,
wie unter Bezugnahme auf Operation 420 beschrieben wird.
-
Andererseits würde das Verfahren von Entscheidungsoperation 456 direkt
zu Operation 420 weitergehen, wenn in Operation 456 bestimmt
werden würde,
dass es im System-RAM genügend
Platz für
den aktualisierten Options-ROM-BIOS-Code gibt. Auf dieselbe Weise
wird, wenn der aktualisierte Options-ROM-Code geladen wird, dieser
gleiche Options-ROM-Code sowohl in den System-RAM 120 als auch
auf den Options-ROM-Chip 110 geschrieben (d. h. abgebildet).
Nachdem der aktualisierte Options-ROM- Code entsprechend auf die abgebildete Menge
des freien Platzes auf sowohl System-RAM 120 als auch Options-ROM-Chip 110 geladen
worden ist, stellt das Options-ROM-BIOS-Programmierdienstprogramm 140 die
Startadressen der Host-Adapter wieder her, die mit dem Speicherplatzbereich des
aktualisierten Options-ROM-Code
in Konflikt standen.
-
Die Erfindung kann auch verschiedene
computerimplementierte Operationen einsetzen, die in Computersystemen
gespeicherte Daten einbeziehen. Diese Operationen sind solche, die
eine physikalische Manipulation von physikalischen Größen erforderlich
machen. Normalerweise, obwohl nicht notwendigerweise, nehmen diese
Größen die
Form elektrischer oder magnetischer Signale an, die gespeichert, übertragen,
kombiniert, verglichen und anderweitig manipuliert werden können. Ferner
werden die ausgeführten
Manipulationen häufig
mit Begriffen, wie beispielsweise „Erzeugen, Identifizieren,
Bestimmen" oder „Vergleichen" bezeichnet.
-
Alle der hierin beschriebenen Operationen, die
Teil der Erfindung sind, sind hilfreiche Maschinenoperationen. Die
Erfindung bezieht sich außerdem auf
ein Gerät
oder eine Einrichtung zum Ausführen dieser
Operationen. Die Einrichtung kann für die benötigten Zwecke speziell gebaut
werden, oder sie kann ein Mehrzweckcomputer sein, der von einem
im Computer gespeicherten Computerprogramm selektiv aktiviert oder
konfiguriert wird. Insbesondere können verschiedene Mehrzweckmaschinen
mit Computerprogrammen, die in Übereinstimmung
mit den hierin enthaltenen Lehren geschrieben sind, verwendet werden,
oder es könnte
zweckmäßiger sein,
eine spezialisiertere Einrichtung zu bauen, um die erforderlichen
Operationen auszuführen.
-
Die Erfindung kann auch als computerlesbarer
Code auf einem computerlesbaren Medium enthalten sein. Das computerlesbare
Medium ist jede beliebige Datenspeichereinrichtung, die Daten speichern
kann, welche danach von einem Computersystem gelesen werden können. Beispiele
für das
computerlesbare Medium sind Nur-Lese-Speicher, Speicher mit wahlfreiem
Zugriff, CD-ROMs, Magnetband, optische Datenspeichereinrichtungen.
Das computerlesbare Medium kann auch über in einem Netzwerk gekoppelte
Computersysteme verteilt werden, so dass der computerlesbare Code
verteilt gespeichert und ausgeführt
wird.
-
Obwohl die vorhergehende Erfindung
zum klaren Verständnis
in bestimmten Details beschrieben worden ist, wird ersichtlich werden,
dass bestimmte Veränderungen
und Modifikationen innerhalb des Schutzbereichs der beigefügten Ansprüche ausgeführt werden
können.
Dementsprechend sind die vorliegenden Ausführungsbeispiele als Erläuterungen
und nicht als Beschränkungen
zu betrachten, und die Erfindung ist nicht auf die hierin dargelegten Details
zu beschränken,
sondern kann innerhalb des Schutzbereichs der beigefügten Ansprüche modifiziert
werden. Es wird beansprucht: