DE10254410A1 - System und Verfahren für ein Laden einer Hochverfügbarkeits-Firmware - Google Patents

System und Verfahren für ein Laden einer Hochverfügbarkeits-Firmware

Info

Publication number
DE10254410A1
DE10254410A1 DE10254410A DE10254410A DE10254410A1 DE 10254410 A1 DE10254410 A1 DE 10254410A1 DE 10254410 A DE10254410 A DE 10254410A DE 10254410 A DE10254410 A DE 10254410A DE 10254410 A1 DE10254410 A1 DE 10254410A1
Authority
DE
Germany
Prior art keywords
firmware
cell
update
high speed
mismatched
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE10254410A
Other languages
English (en)
Inventor
John A Morrison
Michael S Allison
Stephen J Silva
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of DE10254410A1 publication Critical patent/DE10254410A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

Systeme und Verfahren der vorliegenden Erfindung verwenden eine Hochgeschwindigkeitsverbindung, um eine Aktualisierungsfirmware zu einer oder mehreren Zellen in einer Partition eines Hochverfügbarkeitssystems zu laden. Falls eine oder mehrere Zellen in einer Partition eine Firmwareversion aufweisen, die im Vergleich zu anderen Zellen in der Partition nicht die gewünschte Version ist, beispielsweise dadurch, daß sie eine verfälschte Firmware aufweisen, keine Firmware aufweisen oder ansonsten eine fehlerbehaftete Firmware aufweisen, werden sie als fehlangepaßte Zellen identifiziert. Eine Aktualisierungszelle, die die gewünschte Version der Firmware aufweist, sendet über eine Verfügbarkeitssystem-Niedriggeschwindigkeitsverbindung eine Aktualisierungsnachricht an jede der fehlangepaßten Zellen. Ansprechend auf die Aktualisierungsnachricht gibt jede der fehlangepaßten Zellen die Hochgeschwindigkeitsverbindung, über die sie die Aktualisierungsfirmware empfangen kann, frei. Die Aktualisierungszelle sendet die Aktualisierungsfirmware über die Hochgeschwindigkeitsverbindung an jede fehlangepaßte Zelle.

Description

  • Die vorliegende Erfindung bezieht sich auf das Gebiet eines Ladens von Firmware zu einer Zelle für ein Hochverfügbarkeits-Verarbeitungssystem.
  • Systeme eines ungleichmäßigen Speicherzugriffs (NUMA- Systeme) weisen in der Regel eine oder mehrere Zellen auf, die logisch in Partitionen gruppiert sind. Jede Zelle kann einen oder mehrere Prozessoren aufweisen.
  • Jeder Prozessor kann seinen eigenen lokalen Speicher aufweisen. Der lokale Speicher für jeden Prozessor ist in der Lage, statische oder dynamische Verbindungen mit dem lokalen Speicher anderer Prozessoren zu bilden. Somit sind die Prozessoren und Speicher in der Lage, unabhängig eine Verarbeitung durchzuführen, während sie auch in der Lage sind, miteinander zu kommunizieren. Dies befähigt ein NUMA- System, über eine große Anzahl von Prozessoren zu verfügen, die in der Lage sind, miteinander zu kommunizieren, während es an Bussen, die den gemeinsam verwendeten Speicher verbinden, eine geringe Überlastungsschwelle aufweisen.
  • Die Zellen und Prozessoren in jeder Partition sind über eine Hochgeschwindigkeitsverbindung verbunden. Die Hochgeschwindigkeitsverbindung kann verwendet werden, um Daten zwischen Zellen zu transferieren. Jedoch muß die Hochgeschwindigkeitsverbindung für eine Zelle freigegeben werden, bevor die Zelle Daten über die Hochgeschwindigkeitsverbindung transferieren und empfangen kann.
  • Das NUMA-System kann auch ein Verwaltbarkeitssystem umfassen. Das Verwaltbarkeitssystem weist eine Niedriggeschwindigkeitsverbindung auf, über die Nachrichten und andere Daten zwischen den Zellen und dem gemeinsam verwendeten Speicher kommuniziert werden können, auch wenn die Hochgeschwindigkeitsverbindung nicht freigegeben ist.
  • Das Verwaltbarkeitssystem umfaßt in der Regel einen Prozessor, der konfiguriert ist, um einen Systemstatus, beispielsweise die Gesundheit des Systems, zu überwachen, um Daten zwischen den Zellen zu lenken und um Teile des NUMA- Systems zu konfigurieren. Beispielsweise steuert das Verwaltbarkeitssystem in der Regel eine Partionierung der Zellen.
  • Ein Zellenverwaltbarkeitsteilsystem befähigt jede Zelle, Nachrichten an bzw. von anderen Zellen über das Verwaltbarkeitssystem zu übermitteln bzw. zu empfangen. Das Zellenverwaltbarkeitsteilsystem befähigt die Zellen in einer Partition, sich vor Nachrichten zu schützen, die von Zellen, die sich außerhalb der Partition befinden, oder von anderen nicht-autorisierten Zellen eingehen.
  • Jede Zelle weist eine Firmware auf. Firmware ist ein Code, der für ein Rechensystem abläuft. Manche Firmware arbeitet zum Zeitpunkt des Hochfahrens bis zu dem Zeitpunkt, zu dem ein Prozessor bootet (hochfährt). Andere Firmware umfaßt einen Echtzeitcode, der verschiedene Peripheriegeräte betreibt oder andernfalls ein Verarbeiten für das Rechensystem fortsetzt. Firmware kann beispielsweise die Gesundheit eines Rechensystems, in dem sie sich befindet, testen bzw. ein Betriebssystem zu einem Rechensystem, in dem sie sich befindet, laden. Diese Firmware kann sich in einem oder mehreren Teilen eines nicht-flüchtigen Speichers, beispielsweise eines Flash-Speichers, eines durch Batterieversorgung gesicherten Speichers, eines Nur-Lese-Speichers (ROM), eines programmierbaren ROM (PROM), eines löschbaren programmierbaren ROM (EPROM) bzw. eines elektrisch löschbaren programmierbaren ROM (EEPROM), befinden.
  • In manchen Fällen muß eine Firmware zu einer oder mehreren Zellen geladen werden, um eine fehlerbehaftete Firmware zu ersetzen. Eine fehlerbehaftete Firmware umfaßt eine Firmware, die keine gewünschte Version ist, eine nicht-existente Firmware, eine Firmware, die verfälscht ist, eine Firmware, für die eine oder mehrere Zellen fehlangepaßte Versionen aufweisen, bzw. eine Firmware, die andere fehlerbehaftete Bedingungen aufweist. Eine gewünschte Firmwareversion kann eine jüngste Firmwareversion sein.
  • In der Regel gibt eine Firmware die Hochgeschwindigkeitsverbindung für die Zellen in einer Partition frei, so daß die Zellen Daten über die Hochgeschwindigkeitsverbindung übermitteln und empfangen können. Dies tritt jedoch spät bei der Firmware-Verarbeitung, beispielsweise einer Verarbeitung einer normalen Systemfirmware, auf. Wenn also eine Zelle eine fehlerbehaftete Firmware aufweist, arbeitet die normale Systemfirmware nicht, und die Hochgeschwindigkeitsverbindung wird für die Zellen nicht freigegeben. Folglich sind diejenigen Zellen, die eine fehlerbehaftete Firmware aufweisen, nicht in der Lage, sich mit der Hochgeschwindigkeitsverbindung zu verbinden, und sie werden nicht Teil der laufenden Partition.
  • Da die Hochgeschwindigkeitsverbindung für Zellen, die eine fehlerbehaftete Firmware aufweisen, nicht freigegeben ist, wird eine Firmware, die benötigt wird, um diese Zellen zu einer fehlerfreien Version oder einer anderen gewünschten Version hochzuladen, derzeit unter Verwendung des Verwaltbarkeitssystems über die Niedriggeschwindigkeitsverbindung zu den Zellen geladen. In anderen Fällen wird eine Off- Line-Diagnostikanwendung verwendet, um eine Firmware zu aktualisieren oder sie auf andere Weise zu den Zellen des Systems zu laden. Jedoch sind beide Prozesse mühselig und erfordern für ihre Durchführung viel Zeit. In manchen Fällen kann das System während des Firmwareladeprozesses dreißig Minuten oder länger off-line sein. Diese mühseligen Prozesse führen zu einer Zeit- und Ressourcenverschwendung.
  • Deshalb werden neue Systeme und Verfahren benötigt, um ein Laden von Firmware zu dem System auf eine zeitsparendere und ressourcenschonendere Weise zu ermöglichen. Die Systeme und Verfahren der vorliegenden Erfindung ermöglichen es, bei einer Zeit- und Systemressourcenersparnis eine Firmware zu einem Hochverfügbarkeitssystem zu laden.
  • Es ist die Aufgabe der folgenden Erfindung, ein System und Verfahren zu schaffen, die ein verbessertes Laden von Hochverfügbarkeitsfirmware ermöglichen.
  • Diese Aufgabe wird durch ein System gemäß Anspruch 1 sowie Verfahren gemäß den Ansprüchen 9 oder 17 gelöst.
  • Bei einem Aspekt ist die vorliegende Erfindung auf ein System zum Laden von Firmware in einem Hochverfügbarkeitssystem gerichtet. Das System weist eine Hochgeschwindigkeitsverbindung, zumindest eine fehlangepaßte Zelle, zumindest eine Aktualisierungszelle und einen Bootblock auf. Die fehlangepaßte Zelle ist mit der Hochgeschwindigkeitsverbindung gekoppelt, weist eine fehlerbehaftete Firmware auf und ist konfiguriert, um die Hochgeschwindigkeitsverbindung freizugeben. Die Aktualisierungszelle ist mit der Hochgeschwindigkeitsverbindung gekoppelt, weist eine Aktualisierungsfirmware auf und ist konfiguriert, die Aktualisierungsfirmware bei einem ersten Rendezvous über die Hochgeschwindigkeitsverbindung zu der fehlangepaßten Zelle zu laden. Der Bootblock ist konfiguriert, um die fehlangepaßte Zelle und die Aktualisierungszelle lediglich bis zu dem ersten Rendezvous zurückzusetzen. Bei einem Ausführungsbeispiel ist der Bootblock zumindest ein semipermanenter Teil einer Firmware.
  • Bei einem weiteren Aspekt ist die vorliegende Erfindung auf ein Verfahren zum Laden von Firmware in einem Hochverfügbarkeitssystem gerichtet, das eine Hochgeschwindigkeitsverbindung und zumindest eine fehlangepaßte Zelle und eine Aktualisierungszelle aufweist. Die fehlangepaßte Zelle ist mit der Hochgeschwindigkeitsverbindung gekoppelt und weist eine fehlerbehaftete Firmware auf, derart, daß die Hochgeschwindigkeitsverbindung nicht für die fehlangepaßte Zelle freigegeben ist. Die Aktualisierungszelle ist mit der Hochgeschwindigkeitsverbindung gekoppelt und weist eine Aktualisierungsfirmware auf. Das Verfahren umfaßt eine Verwendung eines Bootblocks, um die fehlangepaßte Zelle und die Aktualisierungszelle lediglich bis zu einem ersten Rendezvous zurückzusetzen. Die fehlangepaßte Zelle gibt eine Hochgeschwindigkeitsverbindung frei. Die Aktualisierungsfirmware wird bei dem ersten Rendezvous über die Hochgeschwindigkeitsverbindung von der Aktualisierungszelle zu der fehlangepaßten Zelle geladen.
  • Bei einem weiteren Aspekt ist die vorliegende Erfindung auf ein Verfahren zum Laden von Firmware in einem Hochverfügbarkeitssystem gerichtet, das ein Verwaltbarkeitssystem, eine Hochgeschwindigkeitsverbindung und eine Mehrzahl von Zellen aufweist. Die Mehrzahl von Zellen ist jeweils mit dem Verwaltbarkeitssystem und mit der Hochgeschwindigkeitsverbindung gekoppelt. Die Zellen sind nicht für die Hochgeschwindigkeitsverbindung freigegeben. Das Verfahren umfaßt ein Laden eines Bootblocks über das Verwaltbarkeitssystem zu zumindest einer ersten Speicherstelle zumindest einer ersten Zelle und ein Laden einer Aktualisierungsfirmware über das Verwaltbarkeitssystem zu zumindest einer zweiten Speicherstelle zumindest einer Aktualisierungszelle. Der Bootblock der ersten Zelle wird verwendet, um die Zellen zu einem ersten Rendezvous zurückzusetzen. Die Hochgeschwindigkeitsverbindung wird bei dem ersten Rendezvous für die Zellen freigegeben. Die Aktualisierungsfirmware wird über die Hochgeschwindigkeitsverbindung von der Aktualisierungszelle zu den anderen Zellen geladen.
  • Bevorzugte Ausführungsbeispiele werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
  • Fig. 1 ein Blockdiagramm, das ein Hochverfügbarkeitssystem gemäß einem Ausführungsbeispiel der vorliegenden Erfindung veranschaulicht;
  • Fig. 2 ein Blockdiagramm einer Zelle eines Hochverfügbarkeitssystems gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
  • Fig. 3 ein Flußdiagramm, das einen Fehlerkorrekturprozeß gemäß einem Ausführungsbeispiel der vorliegenden Erfindung veranschaulicht;
  • Fig. 4 ein Flußdiagramm, das einen bezüglich einer Verwaltbarkeit verbesserten Manuelle-Aktualisierung- Prozeß gemäß einem Ausführungsbeispiel der vorliegenden Erfindung veranschaulicht;
  • Fig. 5 ein Flußdiagramm, das einen Automatische- Aktualisierung-Prozeß gemäß einem Ausführungsbeispiel der vorliegenden Erfindung veranschaulicht;
  • Fig. 6 ein Flußdiagramm, das einen Bootblock- Selbstheilungsprozeß gemäß einem Ausführungsbeispiel der vorliegenden Erfindung veranschaulicht; und
  • Fig. 7 ein Flußdiagramm, das einen Prozeß zum Laden eines Bootblocks zu einem Speicher über das Verwaltbarkeitssystem gemäß einem Ausführungsbeispiel der vorliegenden Erfindung veranschaulicht.
  • Die vorliegende Erfindung ermöglicht eine Hochgeschwindigkeitsverbindung, so daß eine Aktualisierungsfirmware zu einem Speicher einer oder mehrerer Zellen eines Computersystems geladen werden kann, wenn die ursprüngliche Firmware einen Fehler aufweist. Dagegen verwendeten bekannte Systeme eine Niedriggeschwindigkeitsverbindung eines Verwaltbarkeitssystems, um eine Aktualisierungsfirmware zu einer Zelle zu laden, wenn die ursprüngliche Firmware der Zelle einen Fehler aufweist. Eine Verwendung der Hochgeschwindigkeitsverbindung verringert die Zeit, die benötigt wird, um eine Firmware zu den Zellen zu laden, was dazu führt, daß das System während der Aktualisierungsfirmwareladung einen kürzeren Zeitraum lang off-line ist, als dies bei den bekannten Systemen erforderlich war. Ferner können die Zellen bei manchen Ausführungsbeispielen parallel programmiert werden, d. h. die Firmware kann parallel geladen werden, um die Geschwindigkeit, mit der mehr als eine Zelle programmiert wird, zu erhöhen. Da überdies eine Zelle eine weitere Zelle unter Verwendung der vorliegenden Erfindung aktualisieren kann, ist weder ein Bootserver noch ein Eingangs- /Ausgangssystem erforderlich, um eine Aktualisierungsfirmware zu einer Zelle zu laden. Diese erhöhten Effizienzen führen zu einem System, das Hochverfügbarkeitsattribute (HA - high availability = Hochverfügbarkeit) aufweist.
  • Bei einem Ausführungsbeispiel der vorliegenden Erfindung wird ein Bootblock verwendet, um eine Zelle eines Rechensystems, zu der eine Firmware geladen werden soll, zu booten. Da der Bootblock lediglich die Funktionalität benötigt, die erforderlich ist, um die Zelle in einen Zustand zu versetzen, in dem sie eine Firmware von einer anderen Zelle empfangen oder an eine andere Zelle übermitteln kann, benötigt der Bootblock lediglich ein geringes Maß an Verarbeitungsfähigkeit und Speicher. Die sich ergebenden Einsparungen bezüglich der Größe der Firmware ermöglichen es dem Bootblock, eine Firmwareladung innerhalb eines kurzen Zeitraums zu betreiben und zu verarbeiten. Ferner kann eine Zelle, die den Bootblock aufweist, in unterschiedliche Partitionen eingesteckt werden, und die Zellen in diesen Partitionen können anschließend mit der korrekten Firmware von der Zelle mit dem Bootblock aktualisiert werden. Somit kann eine Zelle mit einem Bootblock in entfernten und sicheren Einrichtungen verwendet werden, um eine Firmware zu anderen Zellen zu laden, und die Zellen müssen nicht zu einem früheren Zeitpunkt mit der korrekten Firmware oder irgendeiner Firmware vorgeladen worden sein. Auch kann eine Verwendung des Bootblocks es einem Benutzer ersparen, Zellen aus dem Rechensystem herausnehmen zu müssen, um sie neu zu programmieren.
  • Fig. 1 zeigt ein exemplarisches Ausführungsbeispiel eines Hochverfügbarkeitssystems der vorliegenden Erfindung. Das Hochverfügbarkeitssystem 102 der Fig. 1 weist eine erste Partition 104 und eine zweite Partition 106 auf. Die erste Partition 104 umfaßt eine erste Zelle 108 und eine N-te Zelle 110, und die zweite Partition 106 umfaßt eine erste Zelle 112 und eine N-te Zelle 114. Jede der Zellen 108-114 sind durch eine Hochgeschwindigkeitsverbindung 116 verbunden. Das Hochverfügbarkeitssystem 102 umfaßt ferner ein Verwaltbarkeitssystem 118, das die Zellen 108-114 mit einer Niedriggeschwindigkeitsverbindung verbindet.
  • Die Partitionen 104 und 106 sind jeweils eine logische Gruppierung einer oder mehrerer Zellen, die an einem Betriebssystem laufen. Jede Zelle in einer Partition 104 oder 106 ist mit Informationen konfiguriert, die die anderen Zellen in der Partition identifizieren und die anderen Zellen, mit denen sie kommunizieren kann, identifizieren. Falls eine Partition 104 oder 106 mehr als eine Zelle aufweist, ist eine der Zellen als Kernzelle bestimmt, um die Verarbeitung der restlichen Zellen zu regulieren. Bei dem Beispiel der Fig. 1 stellt die N-te Partition 106 eine beliebige Anzahl von Partitionen dar, die in dem Hochverfügbarkeitssystem 102 enthalten sein können. Somit wird man einsehen, daß eine einzelne Partition, beispielsweise die erste Partition 104, oder mehr als eine Partition, wie sie durch die N-te Partition 106 dargestellt ist bzw. sind, in dem Hochverfügbarkeitssystem 102 enthalten sein kann bzw. können.
  • Die Zellen 108-114 sind konfiguriert, um eine Firmware zu verarbeiten, um eine oder mehrere Funktionen zu erfüllen.
  • Bei dem Beispiel der Fig. 1 stellen die N-ten Zellen 110 und 114 eine beliebige Anzahl von Zellen dar, die in den Partitionen 104 und 106 enthalten sein können. Somit wird man einsehen, daß eine einzelne Zelle, beispielsweise die erste Zelle 108 und 112 oder mehr als eine Zelle, wie sie durch die N-te Zelle 110 und 114 dargestellt ist bzw. sind, in den Partitionen 104 und 106 enthalten sein kann bzw. können.
  • Jede Zelle 108-114 ist mit Informationen konfiguriert, die die andere Zelle oder die anderen Zellen, falls vorhanden, in ihrer Partition identifizieren. Jede Zelle 108-114 kann ein Zellenverwaltbarkeitsteilsystem aufweisen, das konfiguriert ist, um die Zelle zu befähigen, mit den anderen Zellen in ihrer Partition 104 und 106 über die Niedriggeschwindigkeitsverbindung des Verwaltbarkeitssystems 118 zu kommunizieren. Beispielsweise ist die erste Zelle 108 konfiguriert, um unter Verwendung der Niedriggeschwindigkeitsverbindung des Verwaltbarkeitssystems 118 mit der N-ten Zelle 110 in der ersten Partition 104 zu kommunizieren. Desgleichen ist die erste Zelle 112 konfiguriert, um unter Verwendung der Niedriggeschwindigkeitsverbindung des Verwaltbarkeitssystems 118 mit der N-ten Zelle 114 in der Nten Partition 106 zu kommunizieren.
  • Eine Zelle 108-114 kann die Hochgeschwindigkeitsverbindung 116 freigeben, so daß die freigebende Zelle über die Hochgeschwindigkeitsverbindung Daten, beispielsweise eine Firmwareladung, entgegennehmen kann. Wenn eine Zelle 108-114 die Hochgeschwindigkeitsverbindung freigibt, öffnet sich diese Zelle für die Hochgeschwindigkeitsverbindung. Falls eine Zelle 108-114 oder eine Firmware, beispielsweise ein Betriebssystem, die Hochgeschwindigkeitsverbindung 116 nicht freigibt, ist sie für die Hochgeschwindigkeitsverbindung geschlossen und kann über die Hochgeschwindigkeitsverbindung keine Daten empfangen. Die Zellen 108-114 können über die Hochgeschwindigkeitsverbindung 116 keine Daten empfangen, wenn die Hochgeschwindigkeitsverbindung für sie nicht freigegeben wurde.
  • Jede Zelle 108-114 kann ferner einen oder mehrere Prozessoren, einen nicht-flüchtigen Speicher und Firmware- Speicherelemente, beispielsweise einen Flash-Speicher, aufweisen. Falls eine Zelle 108-114 mehr als einen Prozessor aufweist, ist einer der Prozessoren als Kernprozessor bestimmt, um die Verarbeitung der anderen Prozessoren in der Zelle zu steuern. Falls eine Zelle 108-114 lediglich einen Prozessor aufweist, ist dieser als Kernprozessor bestimmt. Somit sind für jede Partition 104 und 106 eine Kernzelle und ein Kernprozessor bestimmt.
  • Die Kernzelle weist dieselben Komponenten auf wie die anderen Zellen. Ferner weist die Kernzelle zusätzlich eine Eingabe-/Ausgabe-Schnittstelle (I-/0-Schnittstelle) auf. Die I-/0-Schnittstelle kann verwendet werden, um Firmware- Aktualisierungen und/oder Daten über das Verwaltbarkeitssystem 118 zu empfangen.
  • Die I-/O-Schnittstelle kann auch verwendet werden, um eine Benutzerschnittstelle zu aktivieren. Die Benutzerschnittstelle ist konfiguriert, um Informationen zur Betrachtung durch einen Benutzer zu erzeugen und um Informationen, beispielsweise eine Benutzereingabe, zu empfangen.
  • Bei einem Ausführungsbeispiel zeigt die I-/O-Schnittstelle ein Bootsteuerungshandhabungseinrichtungsmenü (BCH-Menü, BCH = boot control handler) an. Das BCH-Menü ist ein Benutzermenü, das durch die Firmware aktiviert wird, um einem Benutzer Informationen zu liefern und um Befehle von einem Benutzer zu empfangen. Die BCH erzeugt Informationen für einen Speicher, das Betriebssystem, Peripheriegeräte, sowie andere Daten. Die BCH kann Statusdaten und andere Informationen erstellen. Die BCH kann konfiguriert sein, um einen Befehl anzufordern, beispielsweise ob die Zelle oder Partition von einem Netz, einer Platte, einem Compact-Disk-Nur- Lese-Speicher (CD-ROM) oder einer anderen Stelle zurückgesetzt werden sollte. Die BCH kann einem Benutzer einen Konfigurationszugriff bereitstellen, so daß der Benutzer Konfigurationsinformationen eingeben und Konfigurationsbefehle an eine oder mehrere Zellen leiten kann. Andere gerätespezifische Informationen können über die BCH zu einem Benutzer erstellt oder von einem Benutzer empfangen werden. Über die BCH empfangene Befehle und/oder Ergebnisse von Prozessen oder Konfigurationen, die aufgrund dieser Befehle stattfinden, können in einem nicht-flüchtigen Speicher gespeichert werden. Beispielsweise kann eine Befehlssequenz, die zu einer Zellenkonfiguration führt, bewahrt und wiederverwendet werden.
  • Bei einem Beispiel wird die BCH aktiviert, um einen Benutzer zu benachrichtigen, daß eine Partition fehlkonfiguriert ist, da eine oder mehrere Zellen in der Partition eine andere Firmwareversion aufweisen als die Zelle, die eine gewünschte Firmwareversion aufweist. Die Zellen, die nicht die gewünschte Firmwareversion aufweisen, oder die eine Firmware, die eine andere fehlerbehaftete Bedingung aufweist, aufweisen, werden hierin als fehlangepaßte Zellen bezeichnet. Die BCH kann aktiviert werden, um einen Benutzer zu befähigen, mit der Konfiguration ohne die fehlangepaßten Zellen fortzufahren, die Firmware der fehlangepaßten Zellen zu einer gewünschten Version zu aktualisieren, alle Zellen zurückzusetzen oder zu einer anderen Operation überzugehen.
  • Eine Zelle, die eine fehlerbehaftete Firmware aufweist, beispielsweise eine fehlangepaßte Zelle, wurde nicht für die Hochgeschwindigkeitsverbindung freigegeben. Somit kann eine Zelle mit einer fehlerbehafteten Firmware nicht über die Hochgeschwindigkeitsverbindung kommunizieren, es sei denn, daß diese Zelle die Hochgeschwindigkeitsverbindung freigibt, wie beispielsweise bei der vorliegenden Erfindung. Falls eine Zelle eine fehlerbehaftete Firmware aufweist und diese Zelle nicht die Hochgeschwindigkeitsverbindung freigibt, kommuniziert diese Zelle über die Niedriggeschwindigkeitsverbindung des Verwaltbarkeitssystems 118.
  • Eine fehlerbehaftete Firmware umfaßt eine Firmware, die nicht eine gewünschte Version ist, eine nicht-existente Firmware, eine verfälschte Firmware, eine Firmware, für die eine oder mehrere Zellen fehlangepaßte Versionen aufweisen, und/oder eine Firmware, die andere fehlerbehaftete Bedingungen aufweist. Eine gewünschte Firmwareversion kann eine jüngste Firmwareversion sein. Bei manchen Ausführungsbeispielen kann eine Zelle, die keine Firmware aufweist, als eine Firmware mit einer Version von 0.0 aufweisend identifiziert werden. Eine verfälschte Firmwareversion kann beispielsweise durch Verwenden eines Authentifizierungsmechanismus, beispielsweise durch Ermitteln einer Prüfsumme oder einer zyklischen Redundanzprüfung (CRC - cyclic redundancy check), identifiziert werden. Falls die Prüfsumme oder die CRC nicht korrekt ist, wird angenommen, daß die Firmware verfälscht ist. Bei anderen Beispielen kann ein anderer Authentifizierungsmechanismus verwendet werden, beispielsweise ein sicherer Hash- oder ein anderer Authentifizierungsmechanismus.
  • Die gewünschte Firmwareversion kann bei manchen Ausführungsbeispielen konfigurierbar sein. Beispielsweise kann die BCH verwendet werden, um festzulegen, daß die jüngste fehlerfreie Firmwareversion die gewünschte Firmwareversion ist. Bei anderen Beispielen kann festgestellt werden, daß eine jüngste Firmwareversion einen Programmfehler aufweist, und eine andere Version kann als die gewünschte Version bestimmt werden.
  • Bei einem Ausführungsbeispiel bestimmt die Kernzelle jeder Partition 104 oder 106, ob die Partition eine fehlangepaßte Zelle aufweist. Bei anderen Ausführungsbeispielen bestimmt eine Zelle mit der gewünschten Firmwareversion, ob die Partition eine oder mehrere fehlangepaßte Zellen aufweist.
  • Eine beliebige Zelle 108-110 oder 112-114 in einer Partition 104 oder 106 kann eine fehlangepaßte Zelle sein, einschließlich der Kernzelle. In manchen Fällen kann somit die Kernzelle als eine fehlangepaßte Zelle identifiziert werden.
  • Falls eine oder mehrere fehlangepaßte Zellen identifiziert werden, werden sie vorzugsweise mit der gewünschten Firmwareversion geladen. Vorzugsweise werden die fehlangepaßten Zellen parallel zu der gewünschten Firmwareversion geladen. Ein Laden der fehlangepaßten Zellen parallel zu der gewünschten Firmwareversion erhöht die Geschwindigkeit, mit der die Zellen programmiert werden können, im Gegensatz zu einem einzeln erfolgenden Laden derselben beträchtlich. Die gewünschte Version kann die jüngste fehlerfreie Version sein. Falls eine fehlangepaßte Zelle eine fehlerbehaftete Firmware aufweist, einschließlich einer Firmware, die nicht die gewünschte Firmwareversion ist, einer verfälschten Firmware, keiner Firmware oder einer anderen fehlerbehafteten Firmware, empfängt diese fehlangepaßte Zelle somit eine Firmwareladung. Diese Firmwareladung wird als Aktualisierungsfirmware bezeichnet.
  • Während jegliche Zelle in der Partition eine fehlangepaßte Zelle sein kann, kann desgleichen jegliche Zelle in der Partition die Aktualisierungsfirmware bereitstellen. Eine Zelle, die eine Aktualisierungsfirmware bereitstellt, kann als eine Aktualisierungszelle bezeichnet werden.
  • Während mehr als eine Zelle die gewünschte Firmwareversion aufweisen kann, stellt lediglich eine der Zellen, die die gewünschte Firmwareversion aufweisen, der fehlangepaßten Zelle oder den fehlangepaßten Zellen die Aktualisierungsfirmware bereit. Bei einem Ausführungsbeispiel ist jede Zelle 108-114 mit einer Bezeichnung von 1 bis N versehen. Der Einfachheit halber lädt die Zelle, die die niedrigste Bezeichnung und die gewünschte Firmwareversion aufweist, die Aktualisierungsfirmware zu jeder fehlangepaßten Zelle.
  • Falls beispielsweise drei Zellen existieren, bei denen die zweite und die dritte Zelle jeweils die gewünschte Firmwareversion aufweisen und die erste Zelle eine fehlangepaßte Zelle ist, so stellt die zweite Zelle der ersten Zelle die Aktualisierungsfirmware bereit. Es existieren auch andere Auswahlkriterien zum Bezeichnen der Zellen und zum Bezeichnen einer Aktualisierungszelle.
  • Die Zellen 108-110 oder 112-114 in einer Partition 104 oder 106 kommunizieren miteinander, wenn die Zellen zurückgesetzt werden. Zwischen den Zellen 108-110 oder 112-114 einer Partition 104 oder 106 findet ein Quittungsaustausch statt, so daß Informationen zwischen den Zellen ausgetauscht werden können. Dieser Quittungsaustausch wird als Rendezvous bezeichnet.
  • An bestimmten Punkten in dem Rendezvous erwarten die Zellen 108-110 oder 112-114, bestimmte Informationen voneinander zu empfangen. Alternativ dazu kann eine Verarbeitung an diesen Punkten in dem Rendezvous angehalten werden, um einen Eingabebefehl von einem Benutzer, von einer anderen Firmware oder von einem Bootblock zu empfangen (siehe unten). Überdies können die Zellen 108-110 oder 112-114 zu einem Punkt in dem Rendezvous bewegt werden, an dem eine Verarbeitung angehalten wird, so daß eine Firmwareladung abgeschlossen werden kann. Kommunikationen für das Rendezvous finden über die Niedriggeschwindigkeitsverbindung des Verwaltbarkeitssystems 118 statt, in der Regel weil die Hochgeschwindigkeitsverbindung nicht für die Zellen freigegeben wurde.
  • Beispielsweise ist ein Rendezvous als ein Boothemmungsbit- Rendezvous (BIB-Rendezvous, BIB = boot inhibit bit) definiert. Bei dem BIB-Rendezvous kommunizieren die Zellen 108-110 oder 112-114 in einer Partition 104 oder 106, um den anderen Zellen in der Partition Statusinformationen bereitzustellen. Beispielsweise werden bei dem BIB-Rendezvous die Zellen 108-110 oder 112-114 für jede Partition 104 oder 106identifiziert, wird die Kernzelle für jede Partition identifiziert und identifiziert jede Zelle ihre Firmwareversion gegenüber den anderen Zellen. Es können auch andere Aktionen stattfinden.
  • Bei einem anderen Beispiel wird ein anderes Rendezvous als ein Firmware-Rendezvous (FW-Rendezvous) definiert. Bei dem FW-Rendezvous stoppen die Zellen 108-110 oder 112-114 einer Partition 104 oder 106 eine Verarbeitung und warten auf einen Befehl von einer anderen Zelle oder von dem Verwaltbarkeitssystem 118. Dieser Befehl kann eine Nachricht umfassen, die die Zelle 108-114 anweist, eine Aktion abzuschließen. Dieser Befehl kann auch eine Firmwareladung umfassen.
  • Bei einem anderen Beispiel ist ein anderes Rendezvous als ein Partitionsrendezvous (PD-Rendezvous) bezeichnet. Das PD-Rendezvous ist ein Zustand, in den alle Zellen versetzt werden, wenn eine fehlerbehaftete Firmware mit einem Automatische-Aktualisierung-Prozeß entdeckt wird, so daß der Firmwarefehler ermittelt werden kann.
  • Es existieren auch andere Rendezvous-Punkte. Jedoch sind der Einfachheit halber lediglich die oben erwähnten Rendezvous-Punkte identifiziert. Fachleuten sind auch andere Quittungsaustausch- und Rendezvous-Punkte bei dem Betrieb von Firmware bekannt. Ferner wird man erkennen, daß die oben identifizierten Rendezvous-Punkte unter Verwendung anderer Bezeichnungen identifiziert werden können. Beispielsweise kann das BIB-Rendezvous als ein erstes Rendezvous identifiziert werden, das FW-Rendezvous kann als zweites Rendezvous identifiziert werden, und das PD-Rendezvous kann als drittes Rendezvous identifiziert werden.
  • Die Hochgeschwindigkeitsverbindung 116 verbindet die Zellen 108 und 110 in der ersten Partition 104, und sie verbindet die Zellen 112 und 114 in der N-ten Partition 106. In manchen Fällen kann die Hochgeschwindigkeitsverbindung 116 die Zellen 108-114 zwischen den Partitionen 104 und 106verbinden. Die Hochgeschwindigkeitsverbindung 116 kann beispielsweise ein Bus, eine Kreuzschiene, ein gemeinsam verwendeter Speicher oder eine andere Art von Verbindung sein. Bei einem Ausführungsbeispiel ist die Hochgeschwindigkeitsverbindung 116 eine programmierbare Kreuzschiene.
  • Die Hochgeschwindigkeitsverbindung 116 ist konfiguriert, um Nachrichten und andere Daten, beispielsweise eine Firmwareladung, an eine oder mehrere der Zellen 108-114 zu übertragen. Jedoch sollte die Hochgeschwindigkeitsverbindung 116 für eine Zelle 108-114 freigegeben werden, bevor die Zelle Nachrichten oder andere Daten von der Hochgeschwindigkeitsverbindung empfangen kann.
  • Das Verwaltbarkeitssystem 118 verwaltet das Hochverfügbarkeitssystem 102. Das Verwaltbarkeitssystem 118 identifiziert, wie das Hochverfügbarkeitssystem 102 partitioniert ist, einschließlich dessen, welche Zellen 108-114 sich in welchen Partitionen 104 und 106 befinden.
  • Das Verwaltbarkeitssystem 118 kann konfiguriert sein, um die Umgebung des Hochverfügbarkeitssystems 102 zu überwachen. Beispielsweise kann das Verwaltbarkeitssystem 118 Temperatur, Lüftergeschwindigkeit, die elektrischen Systeme, Leistungsausgabe und andere Umgebungsaspekte des Hochverfügbarkeitssystems 102 überwachen.
  • In manchen Fällen kann das Verwaltbarkeitssystem 118 konfiguriert sein, um Anpassungen an dem Hochverfügbarkeitssystem 102 vorzunehmen. Beispielsweise kann das Verwaltbarkeitssystem 118 konfiguriert sein, um an Teilen des Hochverfügbarkeitssystems 102 oder an dem gesamten System einen Takt oder eine Leistung abzuschalten. Bei anderen Beispielen kann das Verwaltbarkeitssystem 118 konfiguriert sein, um die Taktrate für einen Teil des Hochverfügbarkeitssystems 102 oder für das gesamte System anzupassen, um das Hochverfügbarkeitssystem anzupassen, beispielsweise bezüglich einer Wärme-/oder Ladeverwaltung. Beispielsweise kann das Verwaltbarkeitssystem konfiguriert sein, um die Taktrate eines oder mehrerer Prozessoren einzustellen.
  • Das Verwaltbarkeitssystem 118 kann eine Steuerung, beispielsweise einen Dienstprozessor, aufweisen, die bzw. der konfiguriert ist, um Nachrichten und Daten zwischen den Zellen 108-114 zu leiten. Ferner kann das Verwaltbarkeitssystem 118 mit einer I-/0-Schnittstelle konfiguriert sein. Das Verwaltbarkeitssystem 118 kann konfiguriert sein, um eine Firmware von einer Außenquelle über eine I-/O- Schnittstelle zu empfangen und die Firmware bei einer oder mehreren Zellen 108-114 durchzugeben.
  • Das Verwaltbarkeitssystem 118 weist eine Niedriggeschwindigkeitsverbindung auf, die die Zellen 108-114 verbindet. Die Niedriggeschwindigkeitsverbindung ist mit einem separaten Zellenverwaltbarkeitsteilsystem für jede Zelle verbunden. Alle Nachrichten und Daten, einschließlich etwaiger Firmware-Durchgaben (Flashes), die unter Verwendung des Verwaltbarkeitssystems 118 zwischen den Zellen 108-114 übermittelt werden, werden über die Niedriggeschwindigkeitsverbindung übermittelt. Die Niedriggeschwindigkeitsverbindung kann beispielsweise ein Serienbus sein.
  • Fig. 2 zeigt ein exemplarisches Ausführungsbeispiel einer Zelle 108A der vorliegenden Erfindung. Die Zelle 108A der Fig. 2 weist einen ersten Prozessor 204, einen N-ten Prozessor 206, einen nicht-flüchtigen Speicher 208, ein Firmware-Speicherelement 210, eine Firmware 212 und ein Zellenverwaltbarkeitsteilsystem 214 auf.
  • Die Prozessoren 204 und 206 verarbeiten die Firmware 212, um Operationen für die Zelle 108A durchzuführen. Die Prozessoren 204 und 206 können ferner konfiguriert sein, um ein Übermitteln von Nachrichten und Daten zu und von der Zelle 108A zu steuern. Bei dem Beispiel der Fig. 2 stellt der N-te Prozessor 206 eine beliebige Anzahl von Prozessoren dar, die sich in der Zelle 108A befinden. Somit wird man verstehen, daß ein einzelner Prozessor, beispielsweise der erste Prozessor 204, oder mehr als ein Prozessor, wie er bzw. sie durch den N-ten Prozessor 206 dargestellt ist bzw. sind, in der Zelle 108A befindlich sein kann bzw. können.
  • Der nicht-flüchtige Speicher 208 ist konfiguriert, um Daten, die durch die Prozessoren 204 und 206 während einer Operation verwendet werden, zu speichern und um den Prozessoren einen schnellen Zugriff auf diese Daten bereitzustellen. Während in Fig. 2 ein Block eines einzelnen nichtflüchtigen Speichers 208 gezeigt ist, wird man erkennen, daß der nicht-flüchtige Speicher in Übereinstimmung mit einem System eines ungleichmäßigen Speicherzugriffs (NUMA- System) jedem Prozessor 204 und 206 zugeordnet ist. Somit kann der nicht-flüchtige Speicher 208 durch die Prozessoren 204 und 206 gemeinsam verwendet werden, oder der nichtflüchtige Speicher kann separate nicht-flüchtige Speicher sein, die jeweils einem einzelnen Prozessor 204 oder 206 zugeordnet sind und jeweils eine statische oder dynamische Verbindung mit den anderen nicht-flüchtigen Speichern bilden. Bei einem Ausführungsbeispiel ist der nicht-flüchtige Speicher 208 ein nicht-flüchtiger Direktzugriffsspeicher (NVRAM).
  • Das Firmware-Speicherelement 210 speichert die Firmware 212 und andere Daten. Das Firmware-Speicherelement 210 ist in der Lage, Firmwareladungen, beispielsweise eine Aktualisierung der Firmware 212 oder eine neue Ladung für die Firmware, zu empfangen und zu speichern. Somit ist das Firmware- Speicherelement 210 ein aktualisierbarer Speicher. Bei einem Ausführungsbeispiel umfaßt das Firmware-Speicherelement 210 einen Teil eines nicht-flüchtigen Speichers, beispielsweise eines Flash-Speichers, eines durch Batterieversorgung gesicherten Speichers und/oder eines Nur-Lese-Speichers (ROM). Der ROM kann einen programmierbaren ROM (PROM), einen löschbaren programmierbaren ROM (EPROM) und/oder einen elektrisch löschbaren programmierbaren ROM (EEPROM) umfassen.
  • Die Firmware 212 ist ein Code, der für das Hochverfügbarkeitssystem 102 abläuft. Die Firmware 212 kann als Bild in dem Firmware-Speicherelement 210 gespeichert sein.
  • Die Firmware 212 kann einen ausführbaren Code, Daten zur Verwendung durch ein kompiliertes Programm, eine Ausgabe eines kompilierten Programms, einen Daten- oder Codeabschnitt, der an eine programmierbare Vorrichtung übertragen werden kann, einen Daten- oder Codeabschnitt zur Verwendung durch ein System, das eine Konfiguration aufweist, oder einen anderen Code oder andere Daten, die für einen Betrieb des Hochverfügbarkeitssystems 102 nützlich sind, umfassen. Die Firmware kann ferner einen Echtzeitcode umfassen, der verschiedene Peripheriegeräte betreibt oder andernfalls eine Verarbeitung für das Hochverfügbarkeitssystem 102 fortsetzt. In manchen Fällen kann eine Firmware beispielsweise die Gesundheit des Hochverfügbarkeitssystems testen und/oder die Umgebung des Hochverfügbarkeitssystems überwachen.
  • Bei einem Ausführungsbeispiel kann die Firmware 212 einen prozessorabhängigen Code (PDC - processor dependent code) umfassen, der wirksam ist, um das Hochverfügbarkeitssystem 102 zu einem Punkt zurückzusetzen, an dem eine normale Systemfirmware arbeitet. Der PDC prüft den Status jedes der Zelle, in der sich der PDC befindet, zugeordneten Peripheriegeräts und Prozessors. Somit prüft der PDC den Status beispielsweise der Prozessoren 204 und 206, des nichtflüchtigen Speichers 206, des Firmware-Speicherelements 210 und des Zellenverwaltbarkeitsteilsystems 214. Ferner kann der PDC konfiguriert sein, um den Status jeglicher zugeordneter Hardware-Peripheriegeräte, einschließlich Leistungsversorgungen und/oder Lüfter, zu prüfen. Der PDC validiert die Systemkomponenten, um zu bestimmen, ob die Systemkomponenten für das Hochverfügbarkeitssystem 102 arbeiten oder nicht. Ferner kann der PDC konfiguriert sein, um Laufzeitdienste, beispielsweise Laufzeitanfragen für Merkmale, bereitzustellen. Beispielsweise kann der PDC eine Anfrage empfangen, zu bestimmen, welche Systemkomponenten der jeweiligen Zelle zugeordnet sind. Somit kann der PDC eine große Größe aufweisen und einen längeren Zeitraum zur Verarbeitung benötigen. In einem Fall kann der PDC beispielsweise 4 Megabytes (MB) umfassen und kann bis zu 10 Minuten Verarbeitungszeit in Anspruch nehmen.
  • Bei einem anderen Ausführungsbeispiel kann die Firmware 212 einen Bootblock umfassen. Der Bootblock führt lediglich einen Teil der durch einen PDC durchgeführten Operationen durch. Der Bootblock ist wirksam, um eine oder mehrere Zellen in einen Zustand zu versetzen, in dem die Hochgeschwindigkeitsverbindung für diese Zellen freigegeben wird und in dem sie in der Lage sind, eine Firmwareladung zu empfangen. Dieser Zustand ist der FW-Rendezvous-Zustand. Somit ist es nicht erforderlich, daß der Bootblock die Gesundheit des Hochverfügbarkeitssystems 102 oder jeglicher Zellen in demselben testet. Ferner ist es möglich, daß der Bootblock keine Speicher- und I-/O-Status-Prüffähigkeit aufweist. Da der Bootblock begrenzte Betriebsbedingungen aufweist, ist seine Größe stark verringert. In manchen Fällen kann der Bootblock somit innerhalb weniger Sekunden eine Verarbeitung durchführen.
  • Die Firmware 212 kann den PDC und/oder den Bootblock umfassen. Bei manchen Ausführungsbeispielen ist eventuell lediglich der Bootblock oder lediglich der PDC in der Firmware 212 enthalten. Bei anderen Ausführungsbeispielen kann überdies auch eine andere Firmware als der PDC oder der Bootblock in der Firmware 212 enthalten sein.
  • Das Zellenverwaltbarkeitsteilsystem 214 übermittelt Nachrichten von und empfängt Nachrichten an der Zelle 108A. Das Zellenverwaltbarkeitsteilsystem 214 kommuniziert über die Niedriggeschwindigkeitsverbindung des Verwaltbarkeitssystems 118. In manchen Fällen kann das Zellenverwaltbarkeitsteilsystem 214 konfiguriert sein, um eine Firmware bei dem Firmware-Speicherelement 210 durchzugeben.
  • Bei manchen Ausführungsbeispielen kann das Zellenverwaltbarkeitsteilsystem 214 einen Prozessor umfassen, der konfiguriert ist, um Umgebungsfaktoren der Zelle 108A zu überwachen. Beispielsweise kann das Zellenverwaltbarkeitsteilsystem 214 einen Prozessor umfassen, der konfiguriert ist, um Leistung oder Temperatur zu überwachen. Ferner kann das Zellenverwaltbarkeitsteilsystem 214 konfiguriert sein, um Parameter der Zelle 108A einzustellen, beispielsweise eine Leistungsversorgung der Zelle abzuschalten oder die Taktgeschwindigkeit eines Prozessors an der Zelle einzustellen.
  • Fig. 3 bis 6 zeigen exemplarische Ausführungsbeispiele von Firmwareladeprozessen des Hochverfügbarkeitssystems 102 der Fig. 1 bis 2. Der Einfachheit halber zeigen die Ausführungsbeispiele der Fig. 3 bis 6 und ihre zugeordneten Erörterungen Operationen für eine Partition. Jedoch können die Ausführungsbeispiele der Fig. 3 bis 6 gleichermaßen verwendet werden, um eine Firmware zu allen Zellen in allen Partitionen des Hochverfügbarkeitssystems 102 zu laden.
  • Fig. 3 zeigt ein exemplarisches Ausführungsbeispiel eines Firmwareladeprozesses. Die ladende Firmware 302, die den Prozeß der Fig. 3 betreibt, befindet sich in dem Firmware- Speicherelement 210.
  • Die Zellen werden bei Schritt 304 zurückgesetzt. Bei Schritt 306 wird bestimmt, ob an einer der Zellen der Partition eine fehlerbehaftete Firmware vorliegt. Falls bei Schritt 306 keine Zelle eine fehlerbehaftete Firmware aufweist, endet der Prozeß bei Schritt 308. Allerdings sollte beachtet werden, daß nach Schritt 308 eine andere Firmware verarbeitet werden kann, beispielsweise eine Verarbeitung einer normalen Systemfirmware stattfinden kann.
  • Falls bei Schritt 306 eine oder mehrere Zellen eine fehlerbehaftete Firmware aufweisen, die fehlerbehaftete Firmware jedoch nicht bei Schritt 310 aktualisiert wird, endet der Prozeß bei Schritt 308. Falls die fehlerbehaftete Firmware bei Schritt 310 aktualisiert wird, fährt der Prozeß bei Schritt 312 fort. Bei Schritt 310 kann eine manuelle Aktualisierung oder eine automatische Aktualisierung dazu bestimmt sein, die fehlerbehaftete Firmware zu aktualisieren.
  • Bei Schritt 312 wird eine Aktualisierungszelle bezeichnet, und jede fehlangepaßte Zelle gibt die Hochgeschwindigkeitsverbindung frei, so daß jede fehlangepaßte Zelle die Aktualisierungsfirmware empfangen kann. Die Aktualisierungszelle lädt die Aktualisierungsfirmware bei Schritt 314 über die Hochgeschwindigkeitsverbindung zu jeder fehlangepaßten Zelle. Bei diesem Beispiel kann die Aktualisierungszelle die Kernzelle oder eine beliebige andere Zelle, die die gewünschte Firmwareversion aufweist, sein.
  • Nachdem die Aktualisierungszelle die Aktualisierungsfirmware bei Schritt 314 zu jeder fehlangepaßten Zelle lädt, setzt die Aktualisierungszelle bei Schritt 316 alle Zellen in der Partition zurück. Der Prozeß endet dann bei Schritt 318.
  • Fig. 4 zeigt ein exemplarisches Ausführungsbeispiel eines bezüglich einer Verwaltbarkeit verbesserten Manuelle- Aktualisierung-Prozesses. Die Manuelle-Aktualisierung- Firmware 402, die die Prozesse der Fig. 4 betreibt, befindet sich in dem Firmware-Speicherelement 210.
  • Die Zellen für eine Partition werden bei Schritt 404 zurückgesetzt. Falls bei Schritt 406 keine Zellen eine fehlerbehaftete Firmware aufweisen, endet der Prozeß bei Schritt 408. Allerdings sollte angemerkt werden, daß nach Schritt 408 andere Prozesse stattfinden können, beispielsweise eine Verarbeitung einer normalen Systemfirmware.
  • Falls bei Schritt 406 eine oder mehrere Zellen eine fehlerbehaftete Firmware aufweisen, gehen alle Zellen in der Partition zu dem BIB-Rendezvous über, wo der Fehler bei Schritt 410 ermittelt wird. Bei diesem Beispiel untersucht die Kernzelle die anderen Zellen in der Partition, um zu bestimmen, ob eine oder mehrere Zellen eine fehlerbehaftete Firmware aufweisen. Die Kernzelle verwendet die Niedriggeschwindigkeitsverbindung des Verwaltbarkeitssystems (MSI - manageability system slow speed interconnect), um mit den anderen Zellen in der Partition zu kommunizieren. Diejenigen Zellen, die eine fehlerbehaftete Firmware aufweisen, werden als fehlangepaßte Zellen bezeichnet.
  • Nachdem der Fehler bei Schritt 410 ermittelt ist, aktiviert die Kernzelle bei Schritt 412 die BCH. Falls bei Schritt 414 kein Aktualisierungsbefehl ansprechend auf ein Erstellen der BCH empfangen wird, endet der Prozeß bei Schritt 408. Falls bei Schritt 414 ein Aktualisierungsbefehl ansprechend auf ein Erstellen der BCH empfangen wird, erstellt die Kernzelle bei Schritt 416 über die MSI eine Aktualisierungsnachricht zu jeder fehlangepaßten Zelle. Bei Schritt 418 empfängt und verarbeitet jede fehlangepaßte Zelle die Aktualisierungsnachricht und sendet eine Bestätigung an die Kernzelle über die MSI. Bei Schritt 420 gibt jede fehlangepaßte Zelle anschließend die Hochgeschwindigkeitsverbindung (HSI - high speed interconnect) für diese Zell frei, so daß sie die Aktualisierungsfirmware empfangen kann. Die Kernzelle verarbeitet bei Schritt 422 die Bestätigung(en) und sendet bei Schritt 426 die Aktualisierungsfirmware über die HSI an jede fehlangepaßte Zelle. Bei Schritt 426 setzt die Kernzelle alle Zellen in der Partition zurück, und der Prozeß endet bei Schritt 428.
  • Man wird erkennen, daß die fehlangepaßten Zellen bei anderen Ausführungsbeispielen keine Bestätigung senden müssen und daß die Kernzelle vor einem Senden der Aktualisierungsfirmware an jede fehlangepaßte Zelle keine Bestätigung empfangen und verarbeiten muß. Bei einem solchen Ausführungsbeispiel kann die Kernzelle konfiguriert sein, um nach einem Erstellen der Aktualisierungsnachricht die Aktualisierungsfirmware zu jeder fehlangepaßten Zelle zu erstellen. Jedoch kann die Kernzelle konfiguriert sein, um zwischen dem Erstellen der Aktualisierungsnachricht und dem Erstellen der Aktualisierungsfirmware einen gewissen Zeitraum zu warten.
  • Fig. 5 zeigt ein exemplarisches Ausführungsbeispiel eines Automatische-Aktualisierung-Prozesses. Die Automatische- Aktualisierung-Firmware 502, die die Prozesse der Fig. 5 betreibt, befindet sich in dem Firmware-Speicherelement 210.
  • Der Automatische-Aktualisierung-Prozeß der Fig. 5 ermöglicht eine Selbstheilung für das Hochverfügbarkeitssystem 102 ohne eine Benutzerintervention. Diese selbstheilende automatische Aktualisierung kann Effizienzen stärker als Manuelle-Aktualisierung-Prozesse erhöhen.
  • Bei Schritt 504 werden die Zellen in der Partition zurückgesetzt. Falls bei Schritt 506 keine Zellen in der Partition eine fehlerbehaftete Firmware aufweisen, endet der Prozeß bei Schritt 508. Allerdings sollte erwähnt werden, daß nach Schritt 508 andere Prozesse fortgesetzt werden können, beispielsweise Betriebssystemprozesse.
  • Falls bei Schritt 506 Zellen eine fehlerbehaftete Firmware aufweisen, werden die Zellen an das PD-Rendezvous gesandt, wo der Fehler für die Firmware bei Schritt 510 ermittelt wird. Das PD-Rendezvous ist ein Zustand, in den alle Zellen versetzt werden, wenn mit dem Automatische-Aktualisierung- Prozeß eine fehlerhafte Firmware entdeckt wird.
  • Alle Zellen warten an dem PD-Rendezvous, bis bei Schritt 512 die Zelle mit der gewünschten Firmwareversion ermittelt wird. Falls mehrere Zellen die gewünschte Version aufweisen, kann unter Verwendung eines Auswahlkriteriums, beispielsweise des oben beschriebenen Auswahlkriteriums, eine voreingestellte Zelle ausgewählt werden. Die Zelle, die die Aktualisierungsfirmware bereitstellt, wird als die Aktuallsierungszelle bezeichnet. Die Zellen, die eine fehlerbehaftete Firmware aufweisen, werden als fehlangepaßte Zellen bezeichnet.
  • Nachdem bei Schritt 512 die Aktualisierungszelle ermittelt wird, wird der Prozeß, falls die fehlangepaßten Zellen bei Schritt 514 nicht automatisch aktualisiert werden, bei Schritt 516 an eine manuelle Aktualisierung gesandt. Ein Schritt einer manuellen Aktualisierung ist optional. Alternativ dazu kann der Prozeß bei Schritt 516 beendet werden, oder es kann ein anderer Prozeß ausgewählt werden.
  • Falls die fehlangepaßten Zellen bei Schritt 514 automatisch aktualisiert werden sollen, werden die Aktualisierungszelle und jede fehlangepaßte Zelle bei Schritt 518 in den FW- Rendezvous-Zustand versetzt. Bei Schritt 520 erstellt die Aktualisierungszelle eine Aktualisierungsnachricht zu jeder fehlangepaßten Zelle über die MSI. Bei Schritt 522 verarbeitet jede fehlangepaßte Zelle die Aktualisierungsnachricht und sendet über die MSI eine Bestätigung an die Aktualisierungszelle. Bei Schritt 524 gibt jede fehlangepaßte Zelle die HSI für diese Zelle frei, so daß sie die Aktualisierungsfirmware über die HSI von der Aktualisierungszelle empfangen kann. Bei Schritt 526 verarbeitet die Aktualisierungszelle die Bestätigung und sendet bei Schritt 528 die Aktualisierungsfirmware über die HSI an jede fehlangepaßte Zelle. Bei Schritt 530 setzt die Aktualisierungszelle alle Zellen in der Partition zurück, und der Prozeß endet bei Schritt 532.
  • Bei dem Ausführungsbeispiel der Fig. 5 können die fehlangepaßten Zellen automatisch mit einer Aktualisierungsfirmware von einer Aktualisierungszelle aktualisiert werden. Es können mehrere Verfahren verwendet werden, um die automatische Aktualisierung zu bewerkstelligen. Bei einem Ausführungsbeispiel wird ein Auto-Aktualisierung-Flag erstellt und in dem nicht-flüchtigen Speicher 208 gehalten. Das Auto- Aktualisierung-Flag kann gesetzt oder nicht gesetzt sein. Die Automatische-Aktualisierung-Firmware 502 kann das Auto- Aktualisierung-Flag lesen, um zu bestimmen, ob es gesetzt ist oder nicht. Falls das Auto-Aktualisierung-Flag gesetzt ist, kann die Auto-Aktualisierung-Firmware dazu übergehen, die fehlangepaßten Zellen automatisch zu aktualisieren. Falls das Auto-Aktualisierung-Flag nicht gesetzt ist, kann die Auto-Aktualisierung-Firmware zu einem anderen Schritt übergehen, beispielsweise Beenden des Prozesses, Bereitstellen einer Manuelle-Aktualisierung-Option, oder Weitergehen zu einem anderen Prozeß. Das Auto-Aktualisierung-Flag kann beispielsweise unter Verwendung des Verwaltbarkeitssystems 118 oder unter Verwendung eines durch die Firmware aktivierten Menüs, beispielsweise eines BCH-Menüs, gesetzt werden. Bei anderen Ausführungsbeispielen kann die Auto- Aktualisierung-Firmware selbst eingestellt sein oder nicht, um den fehlangepaßten Zellen die automatische Aktualisierung zu liefern. Alternativ kann die Automatische- Aktualisierung-Firmware konfiguriert sein, um Statusdaten oder vorkonfigurierte Daten zu prüfen, um zu bestimmen, ob die fehlangepaßten Zellen automatisch aktualisiert werden sollen oder nicht. Es existieren auch andere Verfahren.
  • Man wird ferner erkennen, daß bei anderen Ausführungsbeispielen die fehlangepaßten Zellen keine Bestätigung senden müssen und daß die Aktualisierungszelle vor einem Senden der Aktualisierungsfirmware an jede fehlangepaßte Zelle keine Bestätigung empfangen und verarbeiten muß. Bei einem solchen Ausführungsbeispiel kann die Aktualisierungszelle konfiguriert sein, um nach einem Erstellen der Aktualisierungsnachricht die Aktualisierungsfirmware zu jeder fehlangepaßten Zelle zu erstellen. Jedoch kann die Aktualisierungszelle konfiguriert sein, um zwischen einem Erstellen der Aktualisierungsnachricht und einem Erstellen der Aktualisierungsfirmware einen gewissen Zeitraum zu warten.
  • Fig. 6 zeigt ein exemplarisches Ausführungsbeispiel eines Bootblock-Selbstheilungsprozesses. Die Bootblock-Selbstheilungsfirmware 602, die die Prozesse der Fig. 6 betreibt, befindet sich in dem Firmware-Speicherelement 210.
  • Der Bootblock-Selbstheilungsprozeß der Fig. 6 verwendet einen Bootblock, um zu bestimmen, ob der PDC in der Lage ist, für eine Zelle zu arbeiten, und falls dies nicht der Fall ist, plaziert der Bootblock die Zelle an dem FW-Rendezvous, wobei der PDC an diesem Punkt programmiert werden kann oder die Firmware-Aktualisierung geladen werden kann. Bei diesem Beispiel kann der Bootblock konfiguriert sein, um das Gerät, an dem sich die Zelle befindet, hochzufahren, die Region des Firmware-Speicherelements, in der sich der PDC befindet, zu testen, um zu bestimmen, ob der PDC existiert und nicht verfälscht ist, und falls er existiert und nicht verfälscht ist, einen anderen Prozeß freizugeben, um das System zu betreiben. Ein als Korrekturfirmware bezeichneter untergeordneter Teil des Bootblocks bestimmt, ob der PDC existiert und ob der PDC nicht verfälscht ist. Bei einem Ausführungsbeispiel bestimmt die Korrekturfirmware, ob der PDC verfälscht ist, indem sie ermittelt, ob die PDC- Prüfsumme korrekt ist. Bei anderen Ausführungsbeispielen bestimmt die Korrekturfirmware, ob der PDC verfälscht ist, indem sie ermittelt, ob eine PDC-CRC korrekt ist.
  • Bei manchen Ausführungsbeispielen ist das Firmware- Speicherelement nicht mit einem PDC programmiert. Wenn das Firmware-Speicherelement in diesen Fällen auf einen PDC hin geprüft wird, werden hexadezimale Fs zum Zweck eines Zugriffs auf den Teil des Firmware-Speicherelements, der nicht programmiert ist, zurückgegeben. Es können auch andere Verfahren verwendet werden, um zu ermitteln, ob der PDC nicht programmiert ist.
  • Der Bootblock-Selbstheilungsprozeß der Fig. 6 setzt alle Zellen bei Schritt 604 zurück. Jede Zelle kann einen Bootblock, einen PDC und/oder andere Firmware aufweisen, die konfiguriert ist, um die Zelle an dem FW-Rendezvous zu plazieren.
  • Bei einem Beispiel kann eine Zelle einen Bootblock aufweisen, und eine andere Zelle kann einen PDC aufweisen. Bei einem anderen Beispiel weisen zwei Zellen jeweils einen Bootblock auf. Bei beiden Beispielen sind die Zellen in der Lage, zumindest bis zu dem FW-Rendezvous zurückzusetzen.
  • Bei diesen Beispielen weist ferner zumindest eine Zelle die gewünschte Firmware auf. Die Zelle, die die gewünschte Firmware aufweist, muß nicht dieselbe sein wie die Zelle, die den Bootblock aufweist. Bei anderen Beispielen kann ein Bootblock eine Zelle von einer externen Vorrichtung booten, oder es kann eine gewünschte Firmwareversion von einer externen Vorrichtung geladen werden.
  • Falls der PDC bei Schritt 606 programmiert wird und falls die PDC-Prüfsumme bei Schritt 608 nicht versagt, endet der Prozeß bei Schritt 610. Allerdings sollte angemerkt werden, daß ein anderer Prozeß bei Schritt 610 fortfahren kann, beispielsweise ein Betriebssystemprozeß.
  • Falls der PDC bei Schritt 606 nicht programmiert wird oder falls die PDC-Prüfsumme bei Schritt 608 versagt, wird die Zelle bei Schritt 612 mit dem Bootblock zu dem FW- Rendezvous gebootet. Die Zelle in der Partition, die die gewünschte Firmwareversion aufweist, wird bei Schritt 614 ermittelt. Diese Zelle wird als Aktualisierungszelle bezeichnet. Jede andere Zelle, die eine fehlerbehaftete Firmware aufweist, wird als fehlangepaßte Zelle bezeichnet.
  • Die Aktualisierungszelle lädt die Aktualisierungsfirmware bei Schritt 616 zu jeder fehlangepaßten Zelle. Innerhalb des Schritts 616 kann die Aktualisierungszelle eine Aktualisierungsnachricht zu jeder fehlangepaßten Zelle erstellen, und jede fehlangepaßte Zelle gibt ansprechend auf die Aktualisierungsnachricht die Hochgeschwindigkeitsverbindung frei. Optional kann der Prozeß der Fig. 4 und/der Prozeß der Fig. 5 verwendet werden, um die fehlangepaßten Zellen zu aktualisieren. Die Aktualisierungszelle setzt bei Schritt 618 alle Zellen in der Partition zurück, und der Prozeß endet bei Schritt 610.
  • Man wird erkennen, daß für das System der Fig. 6 keine Verwaltbarkeitsschnittstelle eines Verwaltbarkeitssystems erforderlich ist. Es ist lediglich eine einzige Master- bzw. Hauptzelle erforderlich, und diese Hauptzelle kann eine Firmware zu allen anderen Zellen in der Partition laden. Da ein Benutzer keine Firmware zu einer Partition laden muß, erfordert dieser Prozeß eine minimale Benutzerinteraktion, was zu beträchtlichen Zeit- und Ressourcenersparnissen führt.
  • Überdies kann eine Hauptzelle, die den Prozeß der Fig. 6 verwendet, in allen Fällen eine Firmware zu allen anderen Zellen laden. Beispielsweise muß keine Firmware zu Zellen an einer Herstellungseinrichtung geladen werden, wenn die Zellen erzeugt werden. Die Hauptzelle kann an einer beliebigen Stelle in das Hochverfügbarkeitssystem eingesteckt werden, und diese Hauptzelle lädt dann die Firmware zu allen anderen Zellen in der Partition und in dem Hochverfügbarkeitssystem 102. Die Hauptzelle muß lediglich den Bootblock und die fehlerfreie Firmware aufweisen. Dies kann ein großer Vorteil für Techniker sein, die versuchen, Firmware zu einem Hochverfügbarkeitssystem zu aktualisieren oder auf andere Weise zu laden, entweder wenn das Hochverfügbarkeitssystem installiert wird oder wenn es aktualisiert wird.
  • In manchen Fällen kann nicht ermittelt werden, ob die Firmware fehlerbehaftet ist oder nicht. Dies kann unabhängig davon auftreten, ob ein Bootblock vorhanden ist oder nicht. Beispielsweise können die Firmware und der Bootblock fehlerbehaftet sein. Alternativ dazu ist vielleicht weder die Firmware noch der Bootblock vorhanden. Es gibt auch andere Beispiele. Somit führt eine versuchte Ausführung der Firmware oder des Codes in dem Firmware-Speicherelement nicht zu einer Ausführung eines fehlerfreien Codes.
  • In diesen Fällen kann ein Bootblock oder eine gewünschte Version der Firmware zu zumindest einer Zelle geladen werden. Diese Zelle kann als die Aktualisierungszelle bezeichnet sein und die anderen Zellen in der Partition aktualisieren. Beispielsweise kann ein Bootblock oder die gewünschte Firmwareversion über das Verwaltbarkeitssystem zu der Aktualisierungszelle geladen werden. Die Aktualisierungszelle kann anschließend die Aktualisierungsfirmware parallel zu den anderen Zellen in der Partition laden. Vorzugsweise wird zumindest der Bootblock parallel von dem Verwaltbarkeitssystem zu allen Zellen in der Partition geladen, und die gewünschte Firmwareversion wird über das Verwaltbarkeitssystem zu der Aktualisierungszelle geladen. Anschließend kann die Aktualisierungszelle alle Zellen in der Partition an dem FW-Rendezvous plazieren, die Aktualisierungsfirmware zu den Zellen laden und anschließend alle Zellen in der Partition zurücksetzen.
  • In manchen Fällen kann es vorzuziehen sein, den Bootblock statt zu dem Firmware-Speicherelement der Zelle zu dem nicht-flüchtigen Speicher einer Zelle zu laden. Wenn die Zelle zurückgesetzt wird, wodurch der Bootblock befähigt wird, die Zelle zu booten, kann der Rücksetzungsvektor zu dem nicht-flüchtigen Speicher geroutet bzw. geleitet werden, so daß die Zelle gebootet werden kann. Anschließend kann die Zelle als die Aktualisierungszelle arbeiten oder an dem FW-Rendezvous plaziert werden, um die Firmwareladung von der Aktualisierungszelle zu empfangen. Dieser Prozeß befähigt das gesamte Firmware-Speicherelement, programmiert zu werden, da der Prozessor, der den Bootblock betreibt, außerhalb des nicht-flüchtigen Speicher ausführt.
  • Für dieses Ausführungsbeispiel wird der Bootblock vorzugsweise über das Verwaltbarkeitssystem zu dem nichtflüchtigen Speicher jeder Zelle geladen. Ferner wird eine gewünschte Version der Firmware zu einer als die Aktualisierungszelle bezeichneten Zelle geladen. Die Aktualisierungszelle kann anschließend alle Zellen in der Partition an dem FW-Rendezvous plazieren, die gewünschte Version der Firmware zu dem Speicherspeicherungselement jeder Zelle laden und alle Zellen zurücksetzen.
  • Fig. 7 zeigt ein exemplarisches Ausführungsbeispiel des Prozesses zum Laden eines Bootblocks zu einem Speicher über das Verwaltbarkeitssystem. Die Bootblock-Ladefirmware 702, die die Prozesse der Fig. 7 betreibt, befindet sich bei einem Ausführungsbeispiel in einem Firmware-Speicherelement und bei einem anderen Ausführungsbeispiel in einem nichtflüchtigen Speicher.
  • Der Bootblock-Ladeprozeß der Fig. 7 versucht bei Schritt 704, alle Zellen zurückzusetzen. Falls ein PDC bei Schritt 706 für jede Zelle programmiert wird und falls die PDC- Prüfsumme bei Schritt 608 nicht für jede versagt, so wird anschließend eine Firmware für alle Zellen geladen, und die Firmware ist nicht fehlerbehaftet. In diesem Fall endet der Prozeß bei Schritt 710. Allerdings sollte angemerkt werden, daß ein anderer Prozeß bei Schritt 710 fortgesetzt werden kann, beispielsweise ein Betriebssystemprozeß.
  • Falls der PDC bei Schritt 706 nicht für alle Zellen programmiert wird oder falls die Prüfsumme bei Schritt 708 für zumindest eine Zelle versagt, wird bestimmt, ob ein Bootblock (BB - boot block) bei Schritt 712 für diejenigen Zellen programmiert wird, die keinen PDC programmieren lassen oder für die die Prüfsumme versagte. Falls der Bootblock bei Schritt 712 nicht für alle Zellen, die keine gewünschte Version des PDC aufweisen, programmiert wird, oder falls die Prüfsumme bei Schritt 714 versagt, wird der Bootblock bei Schritt 716 zu dem Speicher der Zellen in der Partition geladen, die den Bootblock oder die gewünschte Version des PDC nicht aufweisen.
  • Ferner wird bei Schritt 718 eine gewünschte Firmwareversion zu dem Speicher zumindest einer Zelle, die als die Aktualisierungszelle bezeichnet wird, geladen. Falls eine Zelle jedoch einen Bootblock aufweist, kann sie verwendet werden, um die gewünschte Firmwareversion zu einer oder mehreren anderen Zellen in einer Partition zu laden, wie bei dem Ausführungsbeispiel der Fig. 6 beschrieben wurde. Alternativ dazu, falls zumindest eine Zelle einen PDC aufweist, der programmiert ist und für den die Prüfsumme nicht versagt, kann diese Zelle als eine Aktualisierungszelle bezeichnet werden, um die gewünschte Firmwareversion zu einer oder mehreren anderen Zellen in einer Partition zu laden, wie beispielsweise bei den Ausführungsbeispielen der Fig. 3 oder 4.
  • Vorzugsweise werden der Bootblock und die gewünschte Firmwareversion über das Verwaltbarkeitssystem zu dem Speicher geladen. Bei einem Ausführungsbeispiel wird der Bootblock zu dem nicht-flüchtigen Speicher jeder Zelle geladen. Bei anderen Ausführungsbeispielen kann der Bootblock zu dem Firmware-Speicherelement jeder Zelle geladen werden. Bei noch weiteren Ausführungsbeispielen kann der Bootblock zu dem nicht-flüchtigen Speicher einer Zelle und zu dem Firmware-Speicherelement einer anderen Zelle geladen werden. Ferner kann die gewünschte Firmwareversion in manchen Fällen zu einer anderen Speicherstelle, beispielsweise dem nicht-flüchtigen Speicher, geladen werden, während die gewünschte Firmwareversion in der Regel zu dem Firmware- Speicherelement geladen werden kann.
  • Der Bootblock in der Aktualisierungszelle bootet alle Zellen bei Schritt 720 zu dem FW-Rendezvous. Die Aktualisierungszelle lädt anschließend die gewünschte Firmwareversion bei Schritt 722 zu den anderen Zellen in der Partition. Bei Schritt 724 setzt die Aktualisierungszelle alle Zellen in der Partition zurück, und der Prozeß endet bei Schritt 710.
  • Eine Verwendung der Hochgeschwindigkeitsverbindung, um eine Aktualisierungsfirmware zu Zellen in einer Partition zu laden, stellt einen beträchtlichen Fortschritt gegenüber bekannten Systemen dar, bei denen das Verwaltbarkeitssystem und seine zugeordnete Niedriggeschwindigkeitsverbindung zum Aktualisieren von Firmware verwendet wurden. Die Hochgeschwindigkeitsschnittstelle stand bei den bekannten Systemen Aktualisierungszellen mit Aktualisierungsfirmware allgemein nicht zur Verfügung, da eine normale Systemfirmware die fehlerbehaftete Firmware war, nicht lief und die Zellen nicht für die Hochgeschwindigkeitsverbindung freigegeben hatte. Somit wurden bei diesen bekannten Systemen das Verwaltbarkeitssystem und seine zugeordnete Niedriggeschwindigkeitsverbindung verwendet, um Firmware zu aktualisieren. Bei dem vorliegenden System geben Zellen die Hochgeschwindigkeitsverbindung frei. Die sich ergebende erhöhte Geschwindigkeit, mit der die Firmware über die Hochgeschwindigkeitsverbindung geladen werden kann, und die Verfügbarkeit von Ressourcen aufgrund der erhöhten Geschwindigkeit der Firmwareladung stellen dem System im Vergleich zu den bekannten Systemen verstärkte Hochverfügbarkeitsattribute bereit.

Claims (22)

1. System zum Laden einer Firmware in einem Hochverfügbarkeitssystem (102), das folgende Merkmale aufweist:
eine Hochgeschwindigkeitsverbindung (116);
eine mit der Hochgeschwindigkeitsverbindung (116) gekoppelte fehlangepaßte Zelle (110), die eine fehlerbehaftete Firmware aufweist, wobei die fehlangepaßte Zelle (110) konfiguriert ist, um die Hochgeschwindigkeitsverbindung (116) freizugeben;
eine mit der Hochgeschwindigkeitsverbindung (116) gekoppelte Aktualisierungszelle (108), die eine Aktualisierungsfirmware (212) aufweist, wobei die Aktualisierungszelle (108) konfiguriert ist, um die Aktualisierungsfirmware (212) bei einem ersten Rendezvous über die Hochgeschwindigkeitsverbindung (116) zu der fehlangepaßten Zelle (110) zu laden; und
einen Bootblock, der konfiguriert ist, um die fehlangepaßte Zelle (110) und die Aktualisierungszelle (108) bis zu dem ersten Rendezvous zurückzusetzen.
2. System gemäß Anspruch 1, das ferner eine Korrekturfirmware aufweist, die konfiguriert ist, um zu bestimmen, daß sich ein prozessorabhängiger Code nicht in dem Hochverfügbarkeitssystem befindet, und um ansprechend darauf den Bootblock zu booten.
3. System gemäß Anspruch 1 oder 2, das ferner einen prozessorabhängigen Code und eine Korrekturfirmware aufweist, wobei die Korrekturfirmware konfiguriert ist, um zu bestimmen, daß eine Prüfsumme für den prozessorabhängigen Code nicht korrekt ist, und um ansprechend darauf den Bootblock zu booten.
4. System gemäß einem der Ansprüche 1 bis 3, bei dem die Aktualisierungszelle (108) ferner konfiguriert ist, um bei dem ersten Rendezvous zu bestimmen, daß die Aktualisierungsfirmware (212) eine gewünschte Firmwareversion ist, und um anschließend die Aktualisierungsfirmware (212) über die Hochgeschwindigkeitsverbindung (116) zu der fehlangepaßten Zelle (110) zu laden.
5. System gemäß einem der Ansprüche 1 bis 4, das ferner eine zweite fehlangepaßte Zelle aufweist, die eine zweite fehlerbehaftete Firmware aufweist, wobei die zweite fehlangepaßte Zelle konfiguriert ist, um die Hochgeschwindigkeitsverbindung (116) freizugeben;
wobei der Bootblock ferner konfiguriert ist, um die zweite fehlangepaßte Zelle lediglich bis zu dem ersten Rendezvous zurückzusetzen; und
wobei die Aktualisierungszelle (108) ferner konfiguriert ist, um die Aktualisierungsfirmware (212) über die Hochgeschwindigkeitsverbindung (116) zu der zweiten fehlangepaßten Zelle zu laden.
6. System gemäß einem der Ansprüche 1 bis 5, bei dem die fehlerbehaftete Firmware zumindest ein Element einer Gruppe aufweist, die aus einer Firmware, die keine jüngste Firmwareversion ist, und einer verfälschten Firmware besteht.
7. System gemäß einem der Ansprüche 1 bis 6, das ferner folgende Merkmale aufweist:
eine Verwaltbarkeitssystemverbindung;
wobei die fehlangepaßte Zelle (110) konfiguriert ist, um über die Verwaltbarkeitssystemverbindung eine Aktualisierungsnachricht zu empfangen und ansprechend darauf über die Verwaltbarkeitssystemverbindung eine Bestätigung zu senden und die Hochgeschwindigkeitsverbindung (116) freizugeben; und
wobei die Aktualisierungszelle (108) ferner konfiguriert ist, um ein Aktualisierungsmenü zu erstellen, einen über das Aktualisierungsmenü erstellten Aktualisierungsbefehl zu empfangen und ansprechend darauf die Aktualisierungsnachricht an die fehlangepaßte Zelle (110) zu senden und, nach einem Empfangen der Bestätigung, die Aktualisierungsfirmware (212) über die Hochgeschwindigkeitsverbindung (116) zu der fehlangepaßten Zelle (110) zu laden.
8. System gemäß einem der Ansprüche 1 bis 7, das ferner folgende Merkmale aufweist:
eine Verwaltbarkeitssystemverbindung;
wobei die fehlangepaßte Zelle (110) ferner konfiguriert ist, um über die Verwaltbarkeitssystemverbindung eine Aktualisierungsnachricht zu empfangen und ansprechend darauf die Hochgeschwindigkeitsverbindung (116) freizugeben; und
wobei die Aktualisierungszelle (108) ferner konfiguriert ist, um die Aktualisierungsnachricht an die fehlangepaßte Zelle (110) zu senden und anschließend die Aktualisierungsfirmware (212) über die Hochgeschwindigkeitsverbindung (116) automatisch zu der fehlangepaßten Zelle (110) zu laden.
9. Verfahren zum Laden einer Firmware in einem Hochverfügbarkeitssystem (102), das eine Hochgeschwindigkeitsverbindung (116) und zumindest eine fehlangepaßte Zelle (110) und eine Aktualisierungszelle (108) aufweist, wobei die fehlangepaßte Zelle (110) mit der Hochgeschwindigkeitsverbindung (116) gekoppelt ist und eine fehlerbehaftete Firmware aufweist, derart, daß die Hochgeschwindigkeitsverbindung (116) nicht für die fehlangepaßte Zelle (110) freigegeben ist, wobei die Aktualisierungszelle (108) mit der Hochgeschwindigkeitsverbindung (116) gekoppelt ist und eine Aktualisierungsfirmware (212) aufweist, wobei das Verfahren folgende Schritte aufweist:
Verwenden eines Bootblocks, um die fehlangepaßte Zelle (110) und die Aktualisierungszelle (108) zu einem ersten Rendezvous (612) zurückzusetzen;
Freigeben der Hochgeschwindigkeitsverbindung (616) von der fehlangepaßten Zelle (110) bei dem ersten Rendezvous; und
Laden der Aktualisierungsfirmware (212) von der Aktualisierungszelle (108) über die Hochgeschwindigkeitsverbindung (616) zu der fehlangepaßten Zelle (110).
10. Verfahren gemäß Anspruch 9, das ferner eine Verwendung einer Korrekturfirmware zum Bestimmen, daß sich ein prozessorabhängiger Code nicht in dem Hochverfügbarkeitssystem (102) befindet, und zum anschließenden Zurücksetzen der fehlangepaßten Zelle (110) und der Aktualisierungszelle (108) zu dem ersten Rendezvous unter Verwendung des Bootblocks umfaßt.
11. Verfahren gemäß Anspruch 9 oder 10, das ferner ein Bestimmen, daß eine Prüfsumme für einen prozessorabhängigen Code nicht korrekt ist, und ein anschließendes Zurücksetzen der fehlangepaßten Zelle (110) und der Aktualisierungszelle (108) zu dem ersten Rendezvous unter Verwendung des Bootblocks umfaßt.
12. Verfahren gemäß einem der Ansprüche 9 bis 11, das ferner ein Bestimmen, bei dem ersten Rendezvous, daß die Aktualisierungsfirmware (212) eine gewünschte Firmwareversion (614) ist, und ein anschließendes Laden der Aktualisierungsfirmware (212) über die Hochgeschwindigkeitsverbindung (616) zu der fehlangepaßten Zelle (110) umfaßt.
13. Verfahren gemäß einem der Ansprüche 9 bis 12, das ferner folgende Schritte aufweist:
Freigeben der Hochgeschwindigkeitsverbindung (616) durch eine zweite fehlangepaßte Zelle, die eine zweite fehlerbehaftete Firmware aufweist; und
Laden der Aktualisierungsfirmware (212) von der Aktualisierungszelle (108) über die Hochgeschwindigkeitsverbindung (616) zu der zweiten fehlangepaßten Zelle, um die zweite fehlerbehaftete Firmware zu ersetzen.
14. Verfahren gemäß einem der Ansprüche 9 bis 13, das ferner ein Ersetzen zumindest eines Elements einer Gruppe, die aus einer Firmware, die keine jüngste Firmwareversion ist, und einer verfälschten Firmware besteht, durch die Aktualisierungsfirmware (212) umfaßt.
15. Verfahren gemäß einem der Ansprüche 9 bis 14, das ferner folgende Schritte aufweist:
Erstellen eines Aktualisierungsmenüs;
Empfangen eines über das Aktualisierungsmenü erstellten Aktualisierungsbefehls, und ansprechend darauf Senden einer Aktualisierungsnachricht über eine Verwaltbarkeitssystemverbindung an die fehlangepaßte Zelle (110);
Empfangen der Aktualisierungsnachricht an der fehlangepaßten Zelle (110), und ansprechend darauf Senden einer Bestätigung über die Verwaltbarkeitssystemverbindung und Freigeben der Hochgeschwindigkeitsverbindung (616);
Empfangen der Bestätigung an der Aktualisierungszelle (108); und
Laden der Aktualisierungsfirmware (212) über die Hochgeschwindigkeitsverbindung (616) von der Aktualisierungszelle (108) zu der fehlangepaßten Zelle (110).
16. Verfahren gemäß einem der Ansprüche 9 bis 15, das ferner folgende Schritte aufweist:
Senden einer Aktualisierungsnachricht über eine Verwaltbarkeitssystemverbindung an die fehlangepaßte Zelle (110);
Empfangen der Aktualisierungsnachricht an der fehlangepaßten Zelle (110), und ansprechend darauf Freigeben der Hochgeschwindigkeitsverbindung (616); und
automatisches Laden der Aktualisierungsfirmware (212) von der Aktualisierungszelle (108) über die Hochgeschwindigkeitsverbindung (616) zu der fehlangepaßten Zelle (110).
17. Verfahren zum Laden einer Firmware in einem Hochverfügbarkeitssystem (102), das ein Verwaltbarkeitssystem, eine Hochgeschwindigkeitsverbindung (616) und eine Mehrzahl von Zellen aufweist, wobei die Mehrzahl von Zellen jeweils mit dem Verwaltbarkeitssystem gekoppelt ist und mit der Hochgeschwindigkeitsverbindung (616) gekoppelt ist, jedoch nicht für die Hochgeschwindigkeitsverbindung (616) freigegeben ist, wobei das Verfahren folgende Schritte aufweist:
Laden eines Bootblocks über das Verwaltbarkeitssystem zu zumindest einer ersten Speicherstelle zumindest einer ersten Zelle;
Laden einer Aktualisierungsfirmware (212) über das Verwaltbarkeitssystem zu zumindest einer zweiten Speicherstelle zumindest einer Aktualisierungszelle (108);
Verwenden des Bootblocks der ersten Zelle, um die Zellen zu einem ersten Rendezvous zurückzusetzen;
Freigeben der Hochgeschwindigkeitsverbindung (616) für die Zellen bei dem ersten Rendezvous; und
Laden der Aktualisierungsfirmware (212) über die Hochgeschwindigkeitsverbindung (616) von der Aktualisierungszelle (108) zu den anderen Zellen.
18. Verfahren gemäß Anspruch 17, das ferner ein Laden des Bootblocks zu anderen ersten Speicherstellen einer Mehrzahl der Zellen über das Verwaltbarkeitssystem aufweist.
19. Verfahren gemäß Anspruch 17 oder 18, das ferner folgende Schritte aufweist:
Laden des Bootblocks zu anderen ersten Speicherstellen lediglich anderer Zellen, die keine gewünschte Firmwareversion (614) aufweisen; und
Laden der Aktualisierungsfirmware (212) zu anderen zweiten Speicherstellen lediglich anderer Zellen, die nicht die gewünschte Firmwareversion (614) aufweisen.
20. Verfahren gemäß einem der Ansprüche 17 bis 19, bei dem das Laden des Bootblocks zu der ersten Speicherstelle zumindest ein Element einer Gruppe aufweist, die ein Laden des Bootblocks zu einer nicht-flüchtigen Speicherstelle (208) und ein Laden des Bootblocks zu einer Firmware-Speicherelementstelle (210) aufweist.
21. Verfahren gemäß einem der Ansprüche 17 bis 20, bei dem das Laden der Aktualisierungsfirmware (212) zu der zweiten Speicherstelle zumindest ein Element einer Gruppe aufweist, die ein Laden der Aktualisierungsfirmware (212) zu einer nicht-flüchtigen Speicherstelle (208) und ein Laden der Aktualisierungsfirmware (212) zu einer Firmware-Speicherelementstelle (210) aufweist.
22. Verfahren gemäß einem der Ansprüche 17 bis 21, bei dem die erste Zelle die Aktualisierungszelle (108) ist und der Schritt des Ladens der Aktualisierungsfirmware (212) über das Verwaltbarkeitssystem zu der zweiten Speicherstelle der Aktualisierungszelle (108) ein Laden der Aktualisierungsfirmware (212) über das Verwaltbarkeitssystem zu der zweiten Speicherstelle der ersten Zelle umfaßt.
DE10254410A 2001-12-03 2002-11-21 System und Verfahren für ein Laden einer Hochverfügbarkeits-Firmware Withdrawn DE10254410A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/998,630 US20030106052A1 (en) 2001-12-03 2001-12-03 System and method for high availability firmware load

Publications (1)

Publication Number Publication Date
DE10254410A1 true DE10254410A1 (de) 2003-06-18

Family

ID=25545426

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10254410A Withdrawn DE10254410A1 (de) 2001-12-03 2002-11-21 System und Verfahren für ein Laden einer Hochverfügbarkeits-Firmware

Country Status (3)

Country Link
US (1) US20030106052A1 (de)
JP (1) JP2003196104A (de)
DE (1) DE10254410A1 (de)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7246266B2 (en) * 2002-11-21 2007-07-17 Chris Sneed Method and apparatus for firmware restoration in modems
US7185191B2 (en) * 2004-05-05 2007-02-27 International Business Machines Corporation Updatable firmware having boot and/or communication redundancy
TWI303382B (en) * 2004-11-26 2008-11-21 Hon Hai Prec Ind Co Ltd System and method for updating bios
US7424327B2 (en) * 2005-02-04 2008-09-09 Rockwell Automation Technologies, Inc. System and method for automatically matching programmable data of devices within an industrial control system
JP4791061B2 (ja) * 2005-03-18 2011-10-12 富士通株式会社 計算機システムのファームウェアのバージョン管理方法及び情報処理装置
EP1990717A4 (de) * 2006-02-28 2009-06-24 Fujitsu Ltd Computersystem und computersystem-konfigurationsverfahren
JP2007293802A (ja) * 2006-03-31 2007-11-08 Fujitsu Ltd ディスクアレイ装置、ディスクアレイ装置の制御方法及びディスクアレイ装置の制御プログラム。
JP5360311B2 (ja) * 2006-03-31 2013-12-04 富士通株式会社 ディスクアレイ装置
GB2476931A (en) * 2010-01-12 2011-07-20 Fujitsu Serv Ltd Firmware update system using a system monitoring chip with associated memory
US9237093B2 (en) * 2013-03-14 2016-01-12 Silicon Graphics International Corp. Bandwidth on-demand adaptive routing
US9881162B2 (en) * 2013-09-12 2018-01-30 Insyde Software Corp. System and method for auto-enrolling option ROMS in a UEFI secure boot database
US10209999B2 (en) * 2013-12-13 2019-02-19 Razer (Asia-Pacific) Pte. Ltd. Devices, updaters, methods for controlling a device, and methods for controlling an updater
US9594910B2 (en) 2014-03-28 2017-03-14 Intel Corporation In-system provisioning of firmware for a hardware platform
US9753874B2 (en) * 2015-02-20 2017-09-05 Qualcomm Incorporated Multi-step programming of heat-sensitive non-volatile memory (NVM) in processor-based systems
US10721185B2 (en) 2016-12-06 2020-07-21 Hewlett Packard Enterprise Development Lp Age-based arbitration circuit
US10452573B2 (en) 2016-12-06 2019-10-22 Hewlett Packard Enterprise Development Lp Scripted arbitration circuit
US10944694B2 (en) 2016-12-06 2021-03-09 Hewlett Packard Enterprise Development Lp Predictive arbitration circuit
US10237198B2 (en) 2016-12-06 2019-03-19 Hewlett Packard Enterprise Development Lp Shared-credit arbitration circuit
US10496565B2 (en) * 2018-07-30 2019-12-03 Intel Corporation Micro-architectural techniques to minimize companion die firmware loading times in a server platform
US10693811B2 (en) 2018-09-28 2020-06-23 Hewlett Packard Enterprise Development Lp Age class based arbitration
CN110297605B (zh) * 2019-06-27 2023-02-10 深圳忆联信息系统有限公司 一种有效提高固态硬盘固件加载速度的方法及其装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3200661B2 (ja) * 1995-03-30 2001-08-20 富士通株式会社 クライアント/サーバシステム
US6055632A (en) * 1997-09-25 2000-04-25 Allen-Bradley Company, Llc Method and apparatus for transferring firmware to a non-volatile memory of a programmable controller system
US6334177B1 (en) * 1998-12-18 2001-12-25 International Business Machines Corporation Method and system for supporting software partitions and dynamic reconfiguration within a non-uniform memory access system
US6665813B1 (en) * 2000-08-03 2003-12-16 International Business Machines Corporation Method and apparatus for updateable flash memory design and recovery with minimal redundancy
US6904457B2 (en) * 2001-01-05 2005-06-07 International Business Machines Corporation Automatic firmware update of processor nodes
US6834340B2 (en) * 2001-03-01 2004-12-21 International Business Machines Corporation Mechanism to safely perform system firmware update in logically partitioned (LPAR) machines

Also Published As

Publication number Publication date
US20030106052A1 (en) 2003-06-05
JP2003196104A (ja) 2003-07-11

Similar Documents

Publication Publication Date Title
DE10255111A1 (de) System und Verfahren zum Laden von Firmware mit hoher Verfügbarkeit
DE10254410A1 (de) System und Verfahren für ein Laden einer Hochverfügbarkeits-Firmware
DE102019109672A1 (de) Rückgängigmachung nach einem teilausfall in mehreren elektronischen steuergeräten mittels over-the-air-updates
DE102007012448B4 (de) Ein chipsatz-unabhängiges Verfahren für lokale Aktualisierung und Konfigurierung eines System-BIOS
EP0636956B1 (de) Aufdatverfahren
DE69913553T2 (de) Konfigurierung von systemeinheiten
DE3127349C2 (de)
DE102011005209B4 (de) Programmanweisungsgesteuerte Instruktionsflusskontrolle
DE4235193A1 (de) Netzwerksystem und zugehoeriges softwareverwaltungsverfahren
DE102012100738A1 (de) Verfahren zur Konfiguration eines BIOS in einem Computersystem sowie Computerprogrammprodukt
DE102015110736A1 (de) Aktualisierungen für ble-vorrichtungen per funk
DE102011075776A1 (de) Verfahren und System zum Aktualisieren eines gemeinsam genutzten Speichers
DE10059796A1 (de) Steuerung der Lebensdauer von Aktivitäten für die Datenverarbeitung
DE112011103443T5 (de) Intelligente Schnittstelle für ein dezentrales Steuerungssystem
EP2478685A2 (de) Steuervorrichtung, ein-/ausgabevorrichtung, verbindungsschaltevorrichtung und verfahren für ein flugzeug-steuersystem
DE10231938A1 (de) Computersystem mit mehreren Sicherungs-Verwaltungsprozessoren zur Handhabung eines Ausfalls eines eingebetteten Prozessors
EP3092562B1 (de) Verfahren und system zum programmieren von mehreren steuergeräten
EP3929740A1 (de) Verfahren zur orchestrierung einer container-basierten anwendung auf einem endgerät
DE202015101904U1 (de) Computersystem und Speichervorrichtung zum Aktualisieren von Firmwarekomponenten
EP1231537A1 (de) Automatische Inbetriebnahme eines Clustersystems nach einem heilbaren Fehler
DE102017215556A1 (de) Verfahren zum programmieren von elektronischen fahrzeug-steuermodulen
EP1287433A2 (de) Agentensystem, computernetzwerk und verfahren zum laden eines agentensystems von einem host-computer auf einen client-computer eines computernetzwerkes
DE19780639C2 (de) Arbeitsübernahmesystem
DE10344626A1 (de) Systeme und Verfahren zum Zugreifen auf busmastergesteuerte Systembetriebsmittel
EP4002098A1 (de) Verfahren zur bereitstellung der funktionalität von mehreren mikrodiensten und/oder der funktionalität von mehreren software-containern mittels einer cloud-infrastruktur, system, verwendungssystem, computerprogramm und computerlesbares medium

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE

8130 Withdrawal