-
GEBIET DER ERFINDUNG
-
Die
vorliegende Erfindung betrifft verteilte Knotensysteme von Prozessoren
und insbesondere die Knotenadressierung in einem Netz eines Knotensystems
von Prozessoren. Ein Beispiel eines verteilten Knotensystems von
Prozessoren sind Prozessoren zum Betrieb einer automatisierten Datenspeicherbibliothek.
-
HINTERGRUND DER ERFINDUNG
-
Verteilte
Knotensysteme von Prozessoren, die auch als „eingebettete" Prozessorsysteme
bezeichnet werden, werden in einer breiten Vielfalt von Anwendungen
und in immer größerem Umfang
genutzt. Bei verteilten Knotensystemen von Prozessoren, z. B. in
einem Steuersystem, ist die Steuerung des Gesamtsystems auf zwei
oder mehrere Prozessorknoten in dem System oder Produkt aufgeteilt.
-
Ein
Vorteil derartiger Systeme besteht in der Vereinfachung der Problemdiagnose
und Instandsetzung, da Funktionen auf unterschiedliche Bereiche des
Systems begrenzt sind. Des Weiteren können derartige Systeme durch
Hinzufügen
von Komponenten und Prozessorknoten erweitert werden, ohne das gesamte
System zu ersetzen. Die Knoten eines verteilten Steuersystems sind üblicherweise über ein oder
mehrere Kommunikationsnetze untereinander verbunden, die hier als „Netz" bezeichnet werden.
-
Ein
Beispiel eines Steuersystems mit einem verteilten Knotensystem von
Prozessoren umfasst eine automatisierte Datenspeicherbibliothek
wie z. B. die IBM 3584 Ultra Scalable Tape Library. Die Prozessoren
der Bibliothek 3584 sind in verschiedene Komponenten der Bibliothek
eingebettet, kommunizieren über
ein Busnetz und steuern die Komponenten und dadurch die Bibliothek.
Eine Erläuterung
einer automatisierten Datenspeicherbibliothek mit einem verteilten
Knotensystem von Prozessoren ist in der
US-Patentschrift 6,356,803 enthalten,
die am 12.03.2002 erteilt wurde. Instandsetzungsaktionen bei derartigen
Systemen können
das Austauschen einer einzelnen Komponente, eines Prozessorknotens
oder eines Prozessors am Knoten umfassen. Die Bibliothek ist aus
einem oder mehreren „Chassis" gebildet, die jeweils
eine Gruppe oder Untergruppe von Bibliothekskomponenten wie z. B.
Ablagefacher zum Aufbewahren von Datenspeichermedien, ein oder mehrere
Datenspeicherlaufwerke zum Lesen und/oder Schreiben von Daten von
bzw. auf die Datenspeichermedien, einen Roboter-Zugriffsmechanismus
(ACC) zum Transportieren der Datenspeichermedien zwischen den Ablagefächern und
den Datenspeicherlaufwerken, ein Netz und eine Vielzahl von Prozessorknoten
zum Steuern der Bibliothek umfassen. Die Bibliothek kann durch Hinzufügen eines
oder mehrerer Chassis und/oder eines oder mehrerer Zugriffsmechanismen
oder weiterer Knoten erweitert werden.
-
Ein
weiteres Beispiel eines Steuersystems mit einem verteilten Knotensystem
von Prozessoren umfasst ein Mehrprozessornetz in einem Kraftfahrzeug.
-
Um über das
Netz zu kommunizieren, müssen
die Komponenten und/oder die Prozessorknoten Knotenadressen haben,
wie sie z. B. bei CAN-Bussen oder Ethernet-Netzen genutzt werden
und dem Fachmann bekannt sind. Wird ein Chassis hinzugefügt, so hat/haben
der/die dem Netz hinzugefügte(n) Prozessorknoten
möglicherweise
keine Knotenadresse oder nur eine teilweise vorhandene Knotenadresse
und den neuen Prozessorknoten müssen Knotenadressen
vergeben werden. Wird eine einzelne Komponente, ein einzelner Prozessorknoten
oder ein Prozessor am Knoten durch eine neue Komponente usw. ersetzt
oder wird eine andere Komponente usw. gegen eine weitere ausgetauscht,
so hat der Prozessorknoten möglicherweise
keine Knotenadresse oder nutzt bei einem Austausch möglicherweise
seine bisherige Knotenadresse. Des Weiteren können Prozessorknotenkarten
bei allen Komponenten untereinander austauschbar sein, wodurch die Handhabung
von Teilen erleichtert und die Diagnose und Instandsetzung vereinfacht
werden, jedoch die Verwendung statischer Adressierung verhindert
wird, bei der es für
jede Knotenadresse eine separate Teilenummer gibt, oder verhindert
wird, dass die Knotenadresse auf jeder Prozessorknotenkarte permanent
festgelegt wird.
-
Eine
Möglichkeit
zur Bereitstellung einer neuen Knotenadresse besteht darin, dass
ein Mitarbeiter des Bedien- oder Instandsetzungspersonals eine neue
Knotenadresse zuweist. Bei einem Beispiel einer komplexen Knotenadresse
kann eine Komponente einen Funktionsteil einer Adresse haben, der
auf eine Karte codiert ist, und dem Prozessorknoten wird eine Chassisnummer
bereitgestellt und die Funktionsadresse sowie die Chassisnummer werden
kombiniert, um eine Knotenadresse zu berechnen. Alternativ dazu
können
automatische Modi zum Bereitstellen neuer Knotenadressen genutzt werden.
Um ein Beispiel zu nennen, ist ein Kabel aus bestimmten Leitungen
aufgebaut, die auf High- oder Low-Pegel liegen, um eine Binärzahl bereitzustellen, die
zur Berechnung der Knotenadresse genutzt werden kann. Als weiteres
Beispiel, das in der US-Patentanmeldung
mit der Seriennummer 09/854,865, eingereicht am 14. Mai 2001, erläutert wird,
können
ein Impulsgenerator und ein Verzögerungssignalgenerator
eine automatische Chassiszählung
bereitstellen, die zusammen mit der Funktionsadresse verwendet werden
kann, um die Knotenadresse zu berechnen. Als weiteres Beispiel kann
ein Server ein DHCP-Protokoll (DHCP = Dynamic Host Configuration
Protocol) nutzen, um einem Prozessorknoten eine IP-Adresse zu vergeben.
-
Sowohl
bei einem manuellen als auch bei einem automatisierten Modus ist
ein Ausfall möglich. Beispielsweise
kann der Bediener die Positionierung oder Funktion des Prozessorknotens
falsch beurteilen. Bei einem automatischen Modus könnte das
Binärkabel
ausfallen oder falsch angeschlossen sein oder es könnte das
falsche Kabel verwendet werden. Als weiteres Beispiel könnte die
Schaltung des Chassiszählers
ausfallen oder die Verkabelung könnte falsch
angeschlossen werden.
-
In
einem derartigen Fall hat die Komponente möglicherweise keine Knotenadresse,
wenn sie sich im Netz befindet, oder hat eine falsche Adresse oder zeigt
möglicherweise
eine Adresse, bei der es sich um ein Duplikat einer anderen Komponente
im Netz handelt. Ein Adressduplikat ist möglich, wenn sich ein Prozessorknoten
an einer Komponente befindet, die ein Funktionsduplikat einer anderen
Komponente ausführt,
die Chassisnummer falsch liest und die falsche Chassisnummer in
der Adresse nutzt. Alternativ dazu kann der Prozessorknoten aus
einem System in ein anderes getauscht werden und sich in dem neuen System
an einer anderen Stelle befinden. Adressierungsfehler wie z. B.
das Vorhandensein einer unbekannten Komponente oder von Duplikaten
im Netz können
dazu führen,
dass das gesamte System oder Teile davon nicht mehr betriebsfähig sind
und Wartungsaktionen erforderlich werden.
-
Ausfälle von
Produkten werden immer weniger tolerierbar, da Systeme und Kundenerwartungen in
Richtung eines Konzepts der kontinuierlichen Verfügbarkeit
wie z. B. der wohlbekannten „24 × 7 × 365"-Verfügbarkeit
gehen.
-
Beispielsweise
bieten automatisierte Datenspeicherbibliotheken Mittel zum Speichern
großer Datenmengen
auf Datenspeichermedien, die sich nicht permanent in Datenspeicherlaufwerken
befinden und sofort verfügbar
in Ablagefächern
aufbewahrt sind. Ein oder mehrere Roboter-Zugriffsmechanismen entnehmen
ausgewählte
Datenspeichermedien aus Ablagefächern
und bringen diese zu Datenspeicherlaufwerken. Üblicherweise werden angeforderte
Daten, die auf Datenspeichermedien einer automatisierten Datenspeicherbibliothek
gespeichert sind, schnell benötigt.
Es ist daher wünschenswert, dass
eine automatisierte Datenspeicherbibliothek so weit wie möglich in
einem kontinuierlichen Betriebszustand gehalten wird.
-
Automatisierte
Datenspeicherbibliotheken können
Systeme umfassen, die von einer Vielzahl zusammenwirkender Prozessoren
gesteuert werden, wie z. B. von einem zentralen Controller, der über eine
externe Schnittstelle mit dem Host-System verbunden ist und einen
kontinuierlich aktualisierten Datenbestand über die Standorte und den Inhalt
der Datenspeichermedien in der Datenspeicherbibliothek bereitstellt,
sowie von einem Robotersteuersystem, das die genauen Standorte der
Datenspeicherlaufwerke und der Ablagefächer erkennt und den bestmöglichen
Betrieb des/der Roboter-Zugriffsmechanismus/-Zugriffsmechanismen berechnet, um Datenspeichermedien
effizient zwischen den verschiedenen Ablagefächern und Datenspeicherlaufwerken
zu transportieren. Viele der Komponenten sind redundant, sodass
ein Prozessorknoten ausfallen kann und das Gesamtsystem nach wie
vor funktioniert, jedoch hängt
das Zusammenwirken aller Komponenten von einer ordnungsgemäßen Adressierungsstruktur
des Netzes ab.
-
Globale
Adressierung ist, wie z. B. durch die
US-Patentschrift
5,987,506 gezeigt, zum Zuordnen von Adressen über mehrere „Wolken" hinweg durch sorgfältige Segmentierung
der Adressen, die nicht zulässt,
dass dieselbe Adresse in mehr als einer Wolke zugeordnet wird, bekannt,
bietet jedoch kein Verfahren zur Handhabung von Ausfällen bei
der Adressierung.
-
Es
gibt viele Beispiele von Konflikten bei der Adressierung. Beispielsweise
löst die
US-Patentschrift 5,386,515 einen
Konflikt durch Verschieben eines Adressraums eines Hardwareadapters
auf einen nächstfolgenden
Adressraum, wodurch der kollidierende Adressbereich übergangen
wird. Das System ist jedoch bis zur Lösung des Konflikts heruntergefahren
und nicht betriebsfähig.
Im IBM Technical Disclosure Bulletin, Band 41, Nr. 01, Januar 1998,
Seiten 703 bis 705, wird als Reaktion auf eine Duplizierung der
IP-Adressen von Sender und Empfänger
eine Antwort von einem Host erzwungen, sodass der Duplikats-Host
seine Schnittstelle abschaltet und eine Warnnachricht sendet. Der
antwortende Host kann die IP-Adressen weiterhin verwenden, bis manuell korrigiert
wird, wodurch sich die Unterbrechung auf den antwortenden Host reduziert.
Wenn sich ein Knoten anmeldet, empfangen alle Knoten im Netz die doppelten
IP-Adressen und alle können
somit den Antwortprozess durchlaufen. Erst nachdem der Duplikats-Host
die Antwort empfängt
und seine Schnittstelle abschaltet, können die antwortenden Hosts
mit dem ursprünglichen
Eigentümer
der IP-Adresse kommunizieren.
-
Das
Dokument
US610499 offenbart
ein Verfahren und ein Computerprodukt zum automatischen Erzeugen
einer IP-Netzadresse, die eine vereinfachte Netzverbindung und Netzadministration
für kleine IP-Netze
ohne IP-Adressserver, wie sie z. B. in Netzumgebungen kleiner Unternehmen
oder im Heimbereich zu finden sind, ermöglichen. Zunächst wird
eine vorgeschlagene IP-Adresse erzeugt, indem auf der Grundlage
von Informationen, die dem IP-Host
zur Verfügung
stehen, ein das Netz kennzeichnender Teil ausgewählt wird. Beispielsweise kann
die in der Netzschnittstellenkarte vorhandene Ethernetadresse nach
IEEE 802 mit einer deterministischen Hash-Funktion verwendet werden,
um den Teil der IP-Adresse zu erzeugen, der den Host kennzeichnet. Als
Nächstes
wird die erzeugte IP-Adresse im Netz getestet, um zu gewährleisten,
dass kein vorhandener IP-Host diese spezielle IP-Adresse verwendet. Falls
die erzeugte IP-Adresse bereits existiert, wird eine neue IP-Adresse
erzeugt, anderenfalls verwendet der IP-Host die erzeugte IP-Adresse,
um über das
Netz zu kommunizieren. Wenn während
der Verwendung der erzeugten IP-Adresse
nachträglich
ein IP-Adressserver zur Verfügung
steht, passt sich der Host den Protokollen des IP-Adressservers
an, um eine zugewiesene IP-Adresse zu empfangen, und beendet schrittweise
die Verwendung der automatisch erzeugten IP-Adresse.
-
ÜBERBLICK ÜBER DIE ERFINDUNG
-
Gemäß der vorliegenden
Erfindung sind ein Prozessorknoten gemäß Definition im beigefügten Hauptanspruch 1,
ein verteiltes Knotensystem von Prozessoren gemäß Definition im beigefügten Hauptanspruch 6,
eine automatisierte Datenspeicherbibliothek gemäß Definition im beigefügten Hauptanspruch 7,
ein Verfahren zur Handhabung von Adressierungsausfällen gemäß Definition
im beigefügten
Hauptanspruch 8 und ein Computerprogramm gemäß Definition
im beigefügten
Hauptanspruch 13 vorgesehen.
-
Bevorzugte
Ausführungsarten
sind in den Unteransprüchen
definiert.
-
Zum
umfassenderen Verständnis
der vorliegenden Erfindung sollte Bezug auf die folgende detaillierte
Beschreibung genommen werden, die in Verbindung mit den beigefügten Zeichnungen
zu lesen ist.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
1 ist
eine isometrische Ansicht einer automatisierten Datenspeicherbibliothek,
mit deren Hilfe eine Vielzahl von Prozessorknoten gemäß der vorliegenden
Erfindung implementiert werden kann;
-
2 ist
eine Blockdiagrammdarstellung einer Ausführungsart der automatisierten
Datenspeicherbibliothek aus 1, die die
vielzahl von Prozessorknoten gemäß der vorliegenden
Erfindung nutzt;
-
3 ist
eine Blockdiagrammdarstellung einer Vielzahl von Prozessorknoten
aus 2 und
-
4 ist
ein Ablaufdiagramm, das Ausführungsarten
des Verfahrens der vorliegenden Erfindung zur Handhabung von Adressierungsausfällen bei
den Prozessorknoten aus den 2 und 3 beschreibt.
-
DETAILLIERTE BESCHREIBUNG
DER ERFINDUNG
-
Bei
einer Anordnung ist ein verteiltes Knotensystem von Prozessoren
in einem Netz vorgesehen, wobei die Prozessorknoten mindestens einen
Prozessor und mindestens eine Schnittstelle zum Netz umfassen. Mindestens
einer der Prozessorknoten deaktiviert nach Erkennung eines Adressenausfalls des
Prozessorknotens für
das Netz – wie
z. B. Fehlen einer Knotenadresse oder eine Solladresse, bei der es
sich um eine falsche Adresse handelt oder die ein Adressduplikat
umfasst, z. B. an der Schnittstelle des Prozessorknotens erkannt – den Prozessorknoten
im Netz. Durch das Deaktivieren des Prozessorknotens oder seiner
Solladresse im Netz sind nur der Prozessorknoten und seine Komponente
zeitweilig ausgefallen und das System bleibt somit betriebsfähig. Die Knotenadresse
dient zum Adressieren des Prozessorknotens im Netz, nachdem der
Prozessorknoten im Netz aktiviert wurde.
-
Bei
einer weiteren Anordnung umfasst der Prozessorknoten zusätzlich einen
nichtflüchtigen Speicher
und bewahrt eine alternative Knotenadresse des Prozessorknotens
im nichtflüchtigen
Speicher auf. Beispielsweise kann die alternative Knotenadresse
die Knotenadresse der letzten erfolgreichen Erkennung der Knotenadressierung
umfassen. Der Prozessorknoten wählt – nach der
Erkennung eines Knotenadressenausfalls, z. B. durch Erkennen eines Konflikts
oder als weiteres Beispiel, indem er versucht, seine eigene Knotenadresse
extern festzulegen und keine nutzbare Knotenadresse als seine eigene
festlegen kann – eine
Knotenadresse aus, die den Knotenadressenausfall vermeidet, indem
er die alternative Knotenadresse im nichtflüchtigen Speicher auswählt.
-
Bei
einer weiteren Anordnung legt ein Prozessorknoten zu Anfang eine
Knoten-Solladresse als seine eigene fest, tastet Knotenadressen
anderer Prozessorknoten des Netzes ab und vergleicht die abgetasteten
Knotenadressen anderer Prozessorknoten mit der Knoten-Solladresse.
Wenn der Prozessorknoten die Existenz irgendeines Konflikts zwischen
mindestens einer der abgetasteten Knotenadressen anderer Prozessorknoten
mit der Knoten-Solladresse ermittelt, umfasst der existierende Konflikt
einen Knotenadressenausfall des Prozessorknotens für das Netzwerk
und der Prozessorknoten wird im Netz deaktiviert.
-
Bei
noch einer weiteren Anordnung unterliegen mindestens zwei der Prozessorknoten
einem Reset und umfassen mindestens einen Prozessor, mindestens
eine Schnittstelle zum Netzwerk sowie einen Zeitgeber, wobei der
Zeitgeber ständig
die seit dem Zurücksetzen
des Prozessorknotens verstrichene Zeit angibt. Wie oben wird bei
Existenz irgendeines Konflikts zwischen mindestens einer der abgetasteten
Knotenadressen anderer Prozessorknoten und der Knoten-Solladresse
eines Prozessorknotens ein Knotenadressenausfall festgestellt.
-
Ein
Prozessorknoten mit der kollidierenden Knotenadresse vergleicht
die Zeitgeber, um zu ermitteln, ob er die kürzere Zeit seit einem Reset
hat. Wenn der Prozessorknoten die kürzere Zeit hat, wird seine
Solladresse im Netz deaktiviert.
-
Bei
einer weiteren Anordnung kann eine falsche Knotenadresse ermittelt
werden, indem der Prozessorknoten Bezeichnungsinformationen von Elementen
verwaltet, die dem Knoten zugeordnet sind. Bei einem Beispiel haben
an einen Prozessorknoten gekoppelte Datenspeicherlaufwerke eindeutige
Seriennummern und der Prozessorknoten speichert die Seriennummern
als Bezeichnungsinformation. Wenn der Knoten eine Knoten-Solladresse
ermittelt, tastet er die vorhandenen Bezeichnungsinformationen zugeordneter
Elemente ab und vergleicht die vorhandene Bezeichnungsinformation
mit der verwalteten Bezeichnungsinformation. Eine Ermittlung einer
fehlenden Übereinstimmung
stellt einen Knotenadressenausfall des Prozessorknotens dar und
führt zur
Deaktivierung der Knoten-Solladresse im
Netz.
-
Durch
Deaktivieren eines Prozessorknotens mit einem Adressenausfall im
Netz fällt
nur die Komponente zeitweilig aus und das System bleibt betriebsfähig. Die
Nutzung einer alternativen Knotenadresse, die den Adressenausfall
vermeidet, verhindert des Weiteren jegliche Unterbrechung des Systems
und vermeidet sofortige Instandsetzungsaktionen an dem Prozessorknoten
oder an der Komponente.
-
Die
vorliegende Erfindung ist in der folgenden Beschreibung anhand bevorzugter
Ausführungsarten
unter Bezugnahme auf die Figuren beschrieben, in denen dieselben
Bezugsnummern dieselben oder ähnliche
Elemente darstellen.
-
Obwohl
diese Erfindung hinsichtlich der besten Ausführungsart zur Erreichung der
Ziele dieser Erfindung beschrieben wird, ist für den Fachmann nachvollziehbar,
dass Variationen im Hinblick auf diese Darlegungen vorgenommen werden
können, ohne
vom Geist oder Geltungsbereich der Erfindung abzuweichen.
-
1 veranschaulicht
eine Ausführungsart einer
automatisierten Datenspeicherbibliothek 10, mit der eine
Vielzahl von Prozessorknoten gemäß der vorliegenden
Erfindung implementiert werden kann. Die Bibliothek dient dem Zugriff
auf Datenspeichermedien 14, der als Reaktion auf Befehle
von mindestens einem externen Host-System stattfindet, und umfasst
eine Vielzahl von Ablagefächern 16 zum Aufbewahren
von Datenspeichermedien, mindestens ein Datenspeicherlaufwerk zum
Lesen und/oder Schreiben von Daten in Bezug auf die Datenspeichermedien
und mindestens einen Roboter-Zugriffsmechanismus 18 zum
Transportieren der Datenspeichermedien zwischen der Vielzahl von
Ablagefächern 16 und
dem/den Datenspeicherlaufwerk(en). Die Bibliothek kann außerdem eine
Bedienerkonsole 23 (OP) oder eine andere Benutzerschnittstelle
wie z. B. eine webbasierte Schnittstelle umfassen, die die Interaktion
eines Benutzers mit der Bibliothek ermöglicht. Die Bibliothek 10 kann
ein oder mehrere Chassis 11 bis 13 umfassen, die
jeweils Ablagefächer 16 haben,
auf die der Roboter-Zugriffsmechanismus 18 zugreifen kann.
Der Roboter-Zugriffsmechanismus 18 umfasst
eine Greifarmbaugruppe 20 zum Greifen eines oder mehrerer
Datenspeichermedien 14 und kann einen Barcode-Scanner 22 oder
ein Lesesystem wie z. B. einen Smart-Card-Leser oder ein ähnliches
System umfassen, das am Greifarm 20 montiert ist, um Kennzeichnungsinformationen über die
Datenspeichermedien 14 zu „lesen".
-
2 veranschaulicht
eine Ausführungsart einer
Datenspeicherbibliothek 10 aus 1, die eine Vielzahl
von Prozessorknoten gemäß der vorliegenden
Erfindung nutzt. Ein Beispiel einer Datenspeicherbibliothek, mit
der die vorliegende Erfindung implementiert werden kann, ist die
IBM 3584 Ultra Scalable Tape Library. Die Bibliothek umfasst
ein Grundchassis 11, kann zusätzlich ein oder mehrere Erweiterungschassis 12 und
ein Hochverfügbarkeitschassis 13 umfassen.
-
Das
Grundchassis 11 der Bibliothek 10 umfasst ein
oder mehrere Datenspeicherlaufwerke 15 und einen Roboter- Zugriffsmechanismus 18.
Wie oben erläutert
umfasst der Roboter-Zugriffsmechanismus 18 eine
Greifarmbaugruppe 20 und kann ein Lesesystem 22 umfassen,
um Kennzeichnungsinformation über
die Datenspeichermedien 14 zu „lesen". Die Datenspeicherlaufwerke 15 können z.
B. optische Plattenlaufwerke oder Magnetbandlaufwerke sein und die
Datenspeichermedien 14 können optische Medien bzw. magnetische
Bandmedien oder beliebige andere Wechselmedien und zugeordnete Laufwerke
sein. Beispielsweise kann ein Datenspeicherlaufwerk ein IBM LTO
Ultrium Drive, ein DLT 8000 Drive usw. umfassen. Außerdem kann
ein Steueranschluss vorgesehen sein, der zur Kommunikation zwischen
einem Host und der Bibliothek dient, z. B. zum Empfangen von Befehlen
von einem Host und Weiterleiten der Befehle zur Bibliothek, bei
der es sich jedoch nicht um ein Datenspeicherlaufwerk handelt.
-
Das
Erweiterungschassis 12 umfasst zusätzliche Ablagefächer und
kann zusätzliche
Datenspeicherlaufwerke 15 umfassen. Das Hochverfügbarkeitschassis 13 kann
ebenfalls zusätzliche
Ablagefächer und
Datenspeicherlaufwerke 15 umfassen und umfasst einen zweiten
Roboter-Zugriffsmechanismus 28 – mit einer Greifarmbaugruppe 30 und
eventuell einem Barcode-Scanner 32 oder einer anderen Lesevorrichtung – sowie
eine Bedienerkonsole 280 oder eine anderen Benutzerschnittstelle.
Bei einem Ausfall oder einer anderen Nichtverfügbarkeit des Roboter-Zugriffsmechanismus 18 oder
seines Greifarms 20 usw. kann der zweite Roboter-Zugriffsmechanismus 28 übernehmen.
-
Bei
der exemplarischen Bibliothek bewegt jeder der Roboter-Zugriffsmechanismen 18, 28 seinen Greifarm
in mindestens zwei Richtungen, die als Horizontalrichtung (X-Richtung)
und Vertikalrichtung (Y-Richtung) bezeichnet werden, um die Datenspeichermedien 14 in
den Ablagefächern 16 zu
greifen und zu holen oder dort hinzubringen und loszulassen und
die Datenspeichermedien in die Datenspeicherlaufwerke 15 einzulegen
und von dort zu entnehmen.
-
In
den 2 und 3 empfängt die Bibliothek 10 Befehle
von einem oder mehreren Host-Systemen 40, 41 oder 42.
Die Host-Systeme
wie z. B. Host-Server kommunizieren direkt mit der Bibliothek, z.
B. auf dem Pfad 80, über
einen oder mehrere Steueranschlüsse
(nicht gezeigt) oder über
ein oder mehrere Datenspeicherlaufwerke 15 und stellen
Befehle bereit, um auf bestimmte Datenspeichermedien zuzugreifen
und die Medien beispielsweise zwischen den Ablagefächern und
den Datenspeicherlaufwerken zu bewegen. Die Befehle sind üblicherweise
logische Befehle, die die Medien und/oder logischen Standorte für den Zugriff
auf die Medien kennzeichnen.
-
Die
exemplarische Bibliothek wird von einem verteilten Steuersystem
gesteuert, das die logischen Befehle von Hosts empfangt, die erforderlichen
Aktionen festlegt und die Aktionen in physische Bewegungen des Roboter-Zugriffsmechanismus 18, 28 umwandelt.
-
Bei
der exemplarischen Bibliothek umfasst das verteilte Steuersystem
eine Vielzahl von Prozessorknoten mit jeweils einem oder mehreren
Prozessoren. Bei einem Beispiel eines verteilten Steuersystems kann
sich ein Kommunikationsprozessorknoten 50 (CP) im Grundchassis 11 befinden. Über mindestens
eine externe Schnittstelle, die z. B. mit der Leitung 80 verbunden
ist, stellt der Kommunikationsprozessorknoten entweder direkt oder über die
Laufwerke 15 eine Kommunikationsverbindung zum Empfangen
der Host-Befehle bereit. Der Kommunikationsprozessorknoten 50 kann
außerdem
eine Kommunikationsverbindung 70 zum Kommunizieren mit
den Datenspeicherlaufwerken 15 bereitstellen.
-
Der
Kommunikationsprozessorknoten 50 kann sich im Chassis 11 in
der Nähe
der Datenspeicherlaufwerke 15 befinden. Außerdem sind
bei einem Beispiel eines verteilten Prozessorsystems ein oder mehrere
zusätzliche
Auftragsprozessorknoten (WP) vorgesehen, die z. B. einen Auftragsprozessorknoten 52 umfassen
können,
der sich am Roboter-Zugriffsmechanismus 18 befinden kann
und über ein
Netz 60 mit dem Kommunikationsprozessorknoten 50 verbunden
ist. Jeder einzelne Auftragsprozessorknoten kann auf empfangene
Befehle reagieren, die von beliebigen Kommunikationsprozessorknoten mittels
Rundsenden (Broadcast) an die Auftragsprozessorknoten gesendet werden,
und der Auftragsprozessorknoten kann auch den Betrieb des Roboter-Zugriffsmechanismus
steuern, indem er Bewegungsbefehle bereitstellt. Ein XY-Prozessorknoten 55 kann
vorgesehen sein und sich am XY-System des Roboter-Zugriffsmechanismus 18 befinden.
Der XY-Prozessorknoten 55 ist mit dem Netz 60 verbunden
und reagiert auf Bewegungsbefehle, die das XY-System steuern, um
den Greifarm 20 zu positionieren.
-
Ferner
kann an der Bedienerkonsole 23 ein Bedienerkonsolen-Prozessorknoten 59 vorgesehen sein,
der eine Schnittstelle zum Kommunizieren zwischen der Bedienerkonsole
und dem Kommunikationsprozessorknoten 50, dem Auftragsprozessorknoten 52 und
dem XY-Prozessorknoten 55 bereitstellt.
-
Ein
Netz, das einen gemeinsamen Bus 60 umfasst, ist vorgesehen,
um die verschiedenen Prozessorknoten zu verbinden. Der gemeinsame
Bus kann ein Netz mit robuster Verdrahtung umfassen, wie z. B. das
handelsübliche
CAN-Bussystem, bei dem es sich um ein Mehrpunktnetz mit einem Standard-Zugriffsprotokoll
und Verdrahtungsstandards handelt, die z. B. durch den Verein CiA,
CAN in Automation, Am Weichselgarten 26, D-91058 Erlangen, Deutschland,
definiert wurden. Weitere ähnliche
Busnetze wie z. B. Ethernet oder ein drahtloses Netzsystem, z. B.
ein HF- oder Infrarot-Netz,
können,
wie dem Fachmann bekannt ist, bei der Bibliothek genutzt werden.
Die Prozessorknoten, z. B. die Knoten 50, 52, 55 und 59 aus 3 können an
einer Knotenschnittstelle 126a, b, c, d mit dem Netz 60 verbunden sein.
In diesem Dokument umfasst der Begriff „Netz" beliebige, eine Knotenadressierung
nutzende Kommunikationsmittel zwischen Prozessorknoten.
-
In 2 ist
der Kommunikationsprozessorknoten 50 über Leitungen 70 mit
jedem der Datenspeicherlaufwerke 15 des Grundchassis 11 verbunden
und kommuniziert mit den Laufwerken und mit den Host-Systemen 40, 41 und 42.
Alternativ dazu können
die Host-Systeme am Eingang 80 direkt mit dem Kommunikationsprozessorknoten 50 oder
mit Steueranschlussvorrichtungen (nicht gezeigt) verbunden sein,
welche die Bibliothek mit dem/den Host-System(en) über eine
Bibliotheksschnittstelle verbinden, die der Laufwerk/Bibliothek-Schnittstelle ähnelt. Wie
dem Fachmann bekannt ist, können
verschiedene Kommunikationsanordnungen zur Kommunikation mit den
Hosts und mit den Datenspeicherlaufwerken genutzt werden. Bei dem
Beispiel aus 2 sind die Host-Verbindungen 80 und 81 SCSI-Busse.
Der Bus 82 umfasst ein Beispiel einer Fibre Channel Arbitrated
Loop (FCAL), bei der es sich um eine schnelle serielle Datenschnittstelle
handelt, die eine Übertragung über größere Entfernungen
als SCSI-Bussysteme ermöglicht.
-
Die
Datenspeicherlaufwerke 15 können sich nahe dem Kommunikationsprozessorknoten 50 befinden
und ein Kommunikationsschema für
kurze Entfernungen wie z. B. SCSI oder eine serielle Verbindung
wie z. B. RS-422 nutzen. Die Datenspeicherlaufwerke 15 sind
somit einzeln mit Hilfe der Leitungen 70 mit dem Kommunikationsprozessorknoten 50 verbunden.
-
Ein
Erweiterungschassis 12 kann vorgesehen und über einen
gemeinsamen Erweiterungsbus 152 mit dem Netz 152, 60 verbunden
sein. Ein weiterer Kommunikationsprozessorknoten 155, der
dem Kommunikationsprozessorknoten 50 aus 3 ähnelt, kann
sich im Erweiterungschassis befinden und mit Hosts, z. B. am Eingang 156,
und Datenlaufwerken 15 im Erweiterungschassis 12,
z. B. über
die Leitungen 170, kommunizieren. Der Kommunikationsprozessorknoten 155 ist
an einer Knotenschnittstelle, die der Knotenschnittstelle 126a aus 3 ähnelt, mit
dem Netz 152, 60 verbunden, wobei der Kommunikationsprozessorknoten 155 eine
Kommunikationsverbindung für
die Befehle zum Netz 152, 60 bereitstellt, sodass
die Befehle zum Auftragsprozessorknoten 52 des Grundchassis
geleitet werden.
-
Der
Kommunikationsprozessorknoten 155 kann im Erweiterungschassis 12,
dicht neben den verbundenen Datenspeicherlaufwerken 15 des
Erweiterungschassis 12, montiert sein und kommuniziert
mit den Laufwerken und den angeschlossenen Host-Systemen. Die Datenspeicherlaufwerke 15 sind ebenfalls
mit Hilfe der Leitungen 170 einzeln mit dem Kommunikationsprozessorknoten 155 verbunden.
-
Zusätzliche
Erweiterungschassis mit identischen Kommunikationsprozessorknoten 155,
Ablagefächern 16,
Datenspeicherlaufwerken 15 und Erweiterungsbussen 152 können vorgesehen
sein und jedes einzelne Erweiterungschassis ist mit dem angrenzenden
Erweiterungschassis verbunden.
-
Des
Weiteren kann die Datenspeicherbibliothek 10 zusätzlich einen
weiteren Roboter-Zugriffsmechanismus 28 umfassen, beispielsweise
in einem Hochverfügbarkeitschassis 13.
Der Roboter-Zugriffsmechanismus 28 kann einen Greifarm 30 zum
Zugreifen auf die Datenspeichermedien und ein XY-System 255 zum
Bewegen des Roboter-Zugriffsmechanismus umfassen. Das Hochverfügbarkeitschassis
kann an das Erweiterungschassis 12 oder an das Grundchassis 11 angrenzen
und der Roboter-Zugriffsmechanismus 28 kann
auf demselben horizontalen mechanischen Weg wie der Roboter-Zugriffsmechanismus 18 oder
auf einem angrenzenden Weg eine Bewegung ausführen. Das exemplarische Steuersystem
umfasst zusätzlich
einen gemeinsamen Erweiterungsbus 200, der ein Netz bildet,
das mit dem Netz 152 eines Erweiterungschassis oder mit
dem Netz 60 des Grundchassis verbunden ist. Ein weiterer
Kommunikationsprozessorknoten 250 kann vorgesehen sein,
der ebenfalls dem Kommunikationsprozessorknoten 50 ähnelt und
sich im Hochverfügbarkeitschassis 13 befinden
kann, um Befehle von Hosts zu empfangen, entweder direkt am Eingang 256 oder über Steueranschlüsse (nicht
gezeigt) oder über
die Datenspeicherlaufwerke 15 und die Leitungen 270,
z. B. am Eingang 256. Der Kommunikationsprozessorknoten 250 ist
mit dem Netz 200 des Hochverfügbarkeitschassis verbunden
und stellt z. B. an einer Knotenschnittstelle, die der Schnittstelle 126a aus 3 ähnelt, eine
Kommunikationsverbindung zum Netz bereit.
-
Der
Kommunikationsprozessorknoten 250 kann dicht angrenzend
an die verbundenen Datenspeicherlaufwerke 15 des Hochverfügbarkeitschassis 13 montiert
sein und kommuniziert mit den Laufwerken und mit den angeschlossenen
Host-Systemen. Die Datenspeicherlaufwerke 15 sind mit Hilfe der
Leitungen 270 ebenfalls einzeln mit dem Kommunikationsprozessorknoten 250 verbunden
und verwenden eine Schnittstelle wie z. B. RS-422.
-
In 2 kann
ein Computerprogramm, das die vorliegende Erfindung implementiert,
an einem der Prozessorknoten, z. B. am Auftragsprozessorknoten 52 oder
wahlweise am Prozessor 50, Prozessor 155 oder
Prozessor 250, vorgesehen sein oder das Computerprogramm
kann in einer Vielzahl der Prozessorknoten oder in allen Prozessorknoten
implementiert sein.
-
Ein
weiteres Beispiel eines Steuersystems mit einem verteilten Knotensystem
von Prozessoren umfasst ein Mehrprozessornetz in einem Kraftfahrzeug.
-
In 3 umfassen
die Prozessorknoten 50, 52, 55 und 59 einen
Prozessor 122a, b, c, d, der nach dem Stand der Technik
bekannte beliebige Mikroprozessorvorrichtungen umfassen kann. Der
Prozessor 122a, b, c, d wird unter der Steuerung von Programmcode
betrieben, der oft als „Firmware" bezeichnet wird,
da der Code die Hardware betrifft, die wie oben erläutert die
Bibliothek bildet. Die Firmware ist so gestaltet, dass die Prozessoren
die Komponenten des Systems steuern, die z. B. als Knotenhardware 132, 134, 136, 138 gezeigt
sind. Die Firmware wird normalerweise in einem nichtflüchtigen
programmierbaren Speicher 124a, b, c, d verwaltet. Der nichtflüchtige Speicher 124a,
b, c, d kann jede beliebige, nach dem Stand der Technik bekannte
nichtflüchtige
Speichervorrichtung umfassen, wie z. B. Flash-Speicher, Nur-Lese-Speicher
(ROM), elektrisch löschbaren,
programmierbaren Nur-Lese-Speicher (EEPROM), batteriegestützten RAM,
Festplattenlaufwerke usw. Alternativ dazu kann sich der nichtflüchtige Speicher 124a,
b, c, d im Prozessor 122a, b, c bzw. d befinden.
-
Das
Abbild des Firmware-Programmcode kann bei allen Prozessorknoten
identisch sein und sowohl gemeinsamen Code als auch speziellen Code
für jede
der verschiedenen Funktionen enthalten, wobei der spezielle Code
jedoch nur von dem Prozessor der speziellen Funktion verwendet wird. Alternativ
dazu können
für jeden
einzelnen der Prozessorknoten unterschiedliche Codeabbilder vorgesehen
sein, die speziell nur Code enthalten, der von dem Prozessor der
speziellen Funktion benötigt
wird.
-
Um über das
Netz zu kommunizieren, haben die Prozessorknoten Knotenadressen.
Wie oben erläutert
sind Knotenadressen, wie sie bei CAN-Bussen oder Ethernet-Netzen
genutzt werden, dem Fachmann bekannt. Wenn zu der exemplarischen
Bibliothek ein Chassis hinzugefügt
wird, haben die zum Netz hinzugefügten Prozessorknoten möglicherweise
keine Knotenadresse und den neuen Prozessorknoten müssen Knotenadressen
vergeben werden. Außerdem
hat der Prozessorknoten, wenn eine einzelne Komponente, ein Prozessorknoten
oder ein Prozessor am Knoten durch eine neue Komponente usw. ersetzt
wird, oder wenn eine andere Komponente usw. gegen eine weitere Komponente
usw. ausgetauscht wird, möglicherweise
keine Knotenadresse oder nutzt möglicherweise
seine bisherige Knotenadresse von einer anderen Knotenposition oder
aus einer anderen Bibliothek. Eine inkorrekte Knotenadressierung
kann durch Vergleichen gespeicherter eindeutiger Bibliotheks- oder
Chassisinformationen erkannt werden, wie im Folgenden erläutert wird.
-
Eine
Möglichkeit
der Bereitstellung einer neuen Knotenadresse besteht darin, dass
ein Bediener eine Knotenadresse zuweist. Bei einem Beispiel einer
komplexen Knotenadresse kann eine Komponente einen in eine Karte
codierten Funktionsteil einer Adresse haben und an den Prozessorknoten
wird eine Chassisnummer geleitet und die Funktionsadresse und die
Chassisnummer werden kombiniert, um eine Knotenadresse zu berechnen.
Beispielsweise können
Chassis fortlaufend mit „01", „02" usw. nummeriert
werden und jeder Funktion könnte
eine unterschiedliche Nummer vergeben werden. Zum Beispiel könnten eine
hexadezimale Bezeichnung „C" eines Kommunikationsprozessorknotens
und eine Chassisnummer „2" eine Adresse „xC2" haben. Alternativ
dazu können
automatische Modi zum Bereitstellen neuer Knotenadressen genutzt
werden. Um ein Beispiel zu nennen, ist ein Kabel aus bestimmten
Leitungen aufgebaut, die auf High- oder Low-Pegel liegen, um eine
Binärzahl
bereitzustellen, die zur Berechnung der Knotenadresse genutzt werden
kann. Als weiteres Beispiel, das in der US-Patentanmeldung mit der Seriennummer
09/854,865, eingereicht am 14. Mai 2001, erläutert wird, können ein Impulsgenerator
und ein Verzögerungssignalgenerator
eine automatische Chassiszählung
bereitstellen, um die Nummer des Chassis, wie z. B. „01", „02", wie oben festzulegen.
Die automatische Chassiszählung kann
zusammen mit der Funktionsadresse zur Berechnung der Knotenadresse
verwendet werden. Als weiteres Beispiel kann ein Server ein DHCP-Protokoll
nutzen, um einem Prozessorknoten eine Adresse zu vergeben.
-
Wie
oben erläutert
ist ein Ausfall möglich. Beispielsweise
kann der Bediener die Positionierung oder Funktion des Prozessorknotens
falsch beurteilen. Beim automatischen Modus könnte das Binärkabel ausfallen
oder falsch angeschlossen sein oder es könnte das falsche Kabel verwendet
werden. Als weiteres Beispiel könnte
die Schaltung des Chassiszählers
ausfallen oder die Verkabelung könnte
falsch angeschlossen werden.
-
In
einem derartigen Fall hat die Komponente möglicherweise keine verwendbare
Knotenadresse, wenn sie sich im Netz befindet, eine falsche Adresse oder
zeigt möglicherweise
eine Adresse, bei der es sich um ein Duplikat einer anderen Komponente
im Netz handelt. Ein Adressduplikat ist möglich, wenn sich ein Prozessorknoten
an einer Komponente befindet, die ein Funktionsduplikat einer anderen
Komponente ausführt,
die Chassisnummer falsch liest und die falsche Chassisnummer in
der Adresse nutzt. Alternativ dazu kann der Prozessorknoten aus
einem System in ein anderes getauscht werden und sich in dem neuen
System an einer anderen Stelle befinden. Adressierungsfehler wie
z. B. das Vorhandensein einer unbekannten Komponente oder einer
Komponente mit der falschen Adresse oder von Duplikaten im Netz
können
dazu führen,
dass das gesamte System oder Teile davon nicht mehr betriebsfähig sind und
Wartungsaktionen erforderlich werden.
-
Wie
in 4 gezeigt, deaktiviert (1) der Prozessorknoten
oder das System bei einer Ausführungsart
nach Erkennung eines Knotenadressenausfalls eines Prozessorknotens
für das
Netz – wie
z. B. Fehlen einer Knotenadresse oder Vorhandensein eines Adressduplikats,
an der Prozessorknotenschnittstelle erkannt – den Prozessorknoten im Netz und/oder
(2) wählt
eine Knotenadresse aus, die den Knotenadressenausfall vermeidet.
Die ausgewählte Knotenadresse
dient zum Adressieren des Prozessorknotens im Netz, nachdem der
Prozessorknoten im Netz aktiviert wurde.
-
Der
Prozess beginnt bei Schritt 190. In Schritt 201 tastet
ein Prozessorknoten wie z. B. der Prozessorknoten 50 aus
den 2 und 3 das Netz, z. B. das Netz 60,
an der Knotenschnittstelle 126a ab. Beispielsweise kann
der Prozessorknoten eingeschaltet worden sein, in die Position getauscht worden
sein, sich in einem Chassis befinden, das dem Netz hinzugefügt wurde,
oder zurückgesetzt worden
sein, weil beispielsweise der Prozessor 122a und/oder eine
andere Komponente des Knotens aktualisiert worden sind. Beispielsweise enthält der Prozessorknoten
einen Firmware- oder Hardware-Einschaltzähler, der
den Prozess des Aktivierens des Prozessorknotens startet. Wenn bestimmte interne
Aspekte ausgeführt
sind, führt
der Prozessorknoten den Schritt 201 aus. Als Alternative
wird, sobald der Prozessorknoten hochfährt, einem Masterknoten ein
unterbrechungsfreies Signal bereitgestellt, beispielsweise mittels
eines Signals auf einer Leitung, und der Masterknoten führt für den Prozessorknoten,
z. B. den Prozessorknoten 50, den Schritt 201 aus.
-
In
Schritt 201 ist eine Prüfung
auf eine Knotenadresse für
den Prozessorknoten, z. B. den Prozessorknoten 50, enthalten.
Wie oben erläutert
kann eine Adresse durch Codieren eines Kabels, durch Empfang einer
manuell erzeugten oder automatischen Anzeige usw. angezeigt und
direkt verwendet oder mit internen Informationen kombiniert werden, um
eine Knotenadresse festzulegen.
-
Schritt 203 umfasst
die Bestimmung, ob im Ergebnis der Abtastung des Netzes eine verwendbare
Knotenadresse erzeugt werden kann. Beispielsweise könnte eine
unbrauchbare Adresse das Ergebnis eines ausgefallenen Binärkabels
sein, bei dem ein Bit fehlt und das eine unvollständige Adresse zeigt,
oder bei dem ein Bit vertauscht ist und das eine fehlerhafte oder
ungültige
Adresse zeigt. Des Weiteren könnte
das Kabel falsch angeschlossen sein oder es könnte das falsche Kabel verwendet
worden sein. Als weiteres Beispiel könnte die Schaltung des Chassiszählers ausfallen
oder die Verkabelung könnte falsch
angeschlossen werden. Eine unbrauchbare Adresse kann daher auch
kein Adresssignal umfassen.
-
Daher
umfasst eine unbrauchbare Adresse, wie der Begriff im vorliegenden
Dokument verwendet wird, eine unvollständige Adresse, eine fehlerhafte oder
ungültige
Adresse oder keine Adressinformation. Eine potentiell kollidierende
Adresse ist möglicherweise
in einem Netz nicht verwendbar, wird jedoch im Folgenden speziell
erläutert.
Wenn keine verwendbare Adresse erzeugt werden kann, versucht der
Prozessorknoten 50 in Schritt 205, seine Knotenadresse
intern festzulegen. Beispielsweise ist ein Funktionsteil der Adresse
auf der Karte codiert und der restliche Teil einer Adresse ist in
einem nichtflüchtigen
Speicher codiert, der beispielsweise eine letzte erfolgreich bekannte
Adresse umfasst. Gemäß der vorliegenden
Erfindung wird in Schritt 206 eine alternative Knotenadresse
aus ihrem nichtflüchtigen Speicher 124a gelesen,
wie im Folgenden detaillierter in Bezug auf den Schritt 220 erläutert wird.
Alternativ dazu kann eine vorgegebene Knotenadresse bereitgestellt
werden.
-
In
Schritt 205 wird eine Bestimmung durchgeführt, ob
eine Knotenadresse intern festgelegt werden kann. Wenn nicht, gibt
es keine Knoten-Solladresse, und es tritt wie durch Schritt 207 angezeigt ein
Knotenadressenausfall ein und der Prozessorknoten wird in Schritt 208 im
Netz deaktiviert.
-
Durch
das Deaktivieren eines Prozessorknotens im Netz, der einen Knotenadressenausfall
hat, ist nur die Komponente zeitweilig ausgefallen und das System
bleibt somit betriebsfähig.
-
Alternativ
dazu kann Schritt 207 weggelassen werden, wenn die Schritte 205 und 206 eine
Knotenadresse erzeugen, und jegliche Probleme mit einer intern erzeugten
Adresse können
später,
z. B. in Schritt 222, abgefangen werden, wie noch erläutert wird.
Des Weiteren können
die Schritte 205, 206 und 207 weggelassen
werden. In diesem Fall würde
eine Antwort „NEIN" in Schritt 203 direkt
zu Schritt 208 führen.
-
Wenn
eine Knotenadresse für
den Prozessorknoten festgelegt werden kann, wie entweder durch Schritt 203 oder
Schritt 205 angezeigt, wird diese Adresse zunächst in
Schritt 210 festgelegt und im vorliegenden Dokument als
Knoten-„Soll"-Adresse bezeichnet.
Dies dient zur Unterscheidung zwischen der zunächst festgelegten Knotenadresse
und einer Knotenadresse, die tatsächlich verwendet wird, nachdem
eine Prüfung
auf Gültigkeit
oder auf einen Konflikt oder auf andere Arten von im Folgenden erläuterten
Adressierungsausfällen
durchgeführt
wurde. Jeder der Prozessschritte kann durch den Prozessorknoten
selbst durchgeführt
werden oder das System kann den Prozess durchführen, beispielsweise durch
einen Masterknoten.
-
In
Schritt 207 wird wahlweise eine Bestimmung durchgeführt, ob
die Knoten-Solladresse voraussichtlich gültig oder voraussichtlich falsch
ist. Beispielsweise kann die Knoten-Solladresse vollständig sein und sich in einem
Chassis oder an einem Standort im Netz mit einer augenscheinlich
korrekten Nummer befinden, befindet sich jedoch an einem anderen Standort
innerhalb des Chassis und/oder führt
eine andere Funktion aus, oder befindet sich in einer anderen Bibliothek
oder in einem anderen Netz.
-
Gemäß einer
exemplarischen Anordnung der vorliegenden Erfindung kann ein Test
auf eine gültige
Knotenadresse das Abfragen eines zugeordneten Elements oder von
Elementen wie z. B der Knoten-Hardware
umfassen, die eindeutige Kennzeichnungsinformationen wie z. B. eine
Seriennummer hat, auf die der Knoten zugreifen kann, sowie das Vergleichen
dieser Informationen mit einer Kopie der eindeutigen Kennzeichnungsinformation,
die im lokalen nichtflüchtigen
Speicher des Knotens abgelegt ist.
-
Im
vorliegenden Dokument werden Informationen zum Kennzeichnen, Definieren
oder Bezeichnen von Hardware oder anderen Elementen, die einem Prozessorknoten
zugeordnet sind, als „Bezeichnungsinformationen" zugeordneter Elemente
usw. bezeichnet.
-
Somit
ist in dem Beispiel einer Bibliothek mit Datenspeicherlaufwerken,
die dem Chassis des Knotens zugewiesen sind, bekannt, dass das Chassis
ein Laufwerk oder Laufwerke enthält,
die jeweils eine gegebene eindeutige Seriennummer für den Vergleich der „Bezeichnungsinformationen" haben.
-
Beispielsweise
könnte
in 2 der Kommunikationsprozessorknoten 50 über die
Leitungen 70 ein oder mehrere Datenspeicherlaufwerke 15 abfragen
und eine oder mehrere Seriennummern erhalten und diese mit der/den
im nichtflüchtigen
Speicher gespeicherten Seriennummer(n) vergleichen. Bei einer vollständigen Übereinstimmung
kann angenommen werden, dass die Knoten-Solladresse gültig ist.
Genauer gesagt enthält
der Knoten eine Korrelation zwischen einer gespeicherten Knotenadresse
und gespeicherten Bezeichnungsinformationen. Da ein Laufwerk 15 auch
gegen ein anderes ausgetauscht worden sein kann, zeigt die Unmöglichkeit,
eine vollständige Übereinstimmung
herzustellen, möglicherweise
nicht an, dass es sich um eine ungültige Knotenadresse handelt.
Daher können
alle Komponentenkennzeichen für
Komponenten, die einem Knoten zugeordnet sind, im nichtflüchtigen
Speicher des Knotens gespeichert sein, und es wird ein Abstimmungsschema
genutzt, um zu ermitteln, ob ein ausreichender Vergleich zur Herstellung
einer Übereinstimmung
durchgeführt
wurde.
-
Alternativ
dazu kann der Knoten selbst Bezeichnungsinformationen enthalten,
wie z. B. eine MAC-Adresse oder einen weltweiten Namen (World Wide
Name, WWN) oder eine der Knotenkarte zugeordnete Karten-Seriennummer,
die für
die Firmware lesbar sind.
-
Wurde
keine Übereinstimmung
hergestellt, so ermittelt der Schritt 207, dass ein Knotenadressenausfall
vorliegt, und der Prozess wird mit Schritt 222 fortgesetzt
und die Knoten-Solladresse
des Prozessorknotens im Netz wird an der Schnittstelle des Prozessorknotens
deaktiviert.
-
Wenn
die Knoten-Solladresse gültig
zu sein scheint, werden die Knotenadressen anderer Prozessorknoten
des Netzes, z. B. Netz 60, 152, 200 aus 2,
in Schritt 212 abgetastet, beispielsweise durch alternative
Kommunikationsmittel wie z. B. eine RS-232-Verbindung oder durch
Netz-Broadcasts. Im Speziellen kann ein Knoten eine Broadcast-Nachricht „Ich bin
,C2', ist noch jemand
mit dieser Adresse da?" senden
und erhält
eine Antwort, falls ein Konflikt besteht. Danach werden in Schritt 215 die
abgetasteten Knotenadressen anderer Prozessorknoten mit der Knoten-Solladresse
verglichen. Wenn in Schritt 216 kein Konflikt gefunden
wird, wird die Knoten-Solladresse als Knotenadresse für den Prozessorknoten
verwendet und der Prozess wird mit Schritt 240 fortgesetzt,
wie im Folgenden erläutert wird.
-
Wenn
stattdessen der Prozessorknoten oder das System in Schritt 216 die
Existenz eines Konflikts zwischen mindestens einer der abgetasteten
Knotenadressen anderer Prozessorknoten mit der Knoten-Solladresse
ermittelt, kann der existierende Konflikt einen Knotenadressenausfall
des Prozessorknotens für
das Netz umfassen. Der Prozessorknoten oder die Prozessorknoten
mit der kollidierenden Knotenadresse können in Schritt 221 wahlweise
benachrichtigt werden, beispielsweise mittels eines Netz-Broadcasts
usw.
-
Als
weitere Ausführungsart
gemäß der vorliegenden
Erfindung kann im Falle eines Konflikts von Knotenadressen ein weiterer
Test durchgeführt
werden, wie in Bezug auf Schritt 235 erläutert wird;
anderenfalls wird, sofern der weitere Test nicht implementiert ist,
ein Knotenadressenausfall im optionalen Schritt 222 angezeigt
und der Prozessorknoten wird im Netz deaktiviert.
-
Bei
der weiteren Ausführungsart
unterliegen mindestens zwei der Prozessorknoten des Netzes einem
Reset und umfassen mindestens einen Prozessor, mindestens eine Schnittstelle
zum Netz und einen Zeitgeber, wobei der Zeitgeber eine Anzeige der seit
dem Zurücksetzen
des Prozessorknotens verstrichenen Zeit verwaltet. Der Zeitgeber
ist nur als Firmware-Zeitgeber des Prozessors veranschaulicht, z. B.
der Prozessoren 122a, b, c bzw. d der Prozessorknoten 50, 52, 55 und 59,
kann jedoch wie oben erläutert
alternativ einen Hardware-Zeitgeber umfassen. Die Zeitgeber können Einschaltzähler umfassen,
die beim Einschalten des Prozessorknotens aktiviert oder zurückgesetzt
werden. Somit stellen die Zeitgeber eine Anzeige der Zeit bereit,
während
der ein Prozessorknoten aktiv gewesen ist. Die Zeitgeber können Zähler für große Werte
umfassen, bei denen es unwahrscheinlich ist, dass sie wieder auf
den Wert null zurückfallen,
oder sie hören
auf zu zählen,
wenn ein Maximalwert erreicht ist, da die Prüfung vermutlich unmittelbar
nach dem Reset-Zeitpunkt eines der Prozessorknoten durchgeführt wird.
Die Auflösung der
Zeitgeber ist nicht sehr von Bedeutung, da diese nur zur Erkennung
eines erheblichen Unterschieds dienen. Alternativ dazu können die
Zeitgeber mit der Zählung
nicht beim Einschalten beginnen, sondern stattdessen zurückgesetzt
werden, nachdem ermittelt wurde, dass der Prozessorknoten keine
kollidierende Adresse hat, wie im Folgenden erläutert wird. In einem derartigen
Fall hat die Zeit an einem neu zurückgesetzten Prozessorknoten
den Wert null, bis ein Konflikt beseitigt ist. Somit wurde ein Prozessor
mit einer neueren Zeit wahrscheinlich vor kurzem zurückgesetzt
und hat wahrscheinlich die neue kollidierende Solladresse, und ein
Prozessor, der nicht die neuere Zeit hat, funktioniert wahrscheinlich
erfolgreich an der jetzt kollidierenden Adresse. Wie oben wird ein
Knotenadressenausfall bei Existenz eines Konflikts zwischen mindestens
einer der abgetasteten Knotenadressen anderer Prozessorknoten und der
Knoten-Solladresse eines Prozessorknotens ermittelt. Der Verarbeitungsknoten,
der den Knotenadressenausfall wahlweise in Schritt 221 ermittelt, kann
den anderen Prozessorknoten, der die kollidierende abgetastete Knotenadresse
hat, über
den Konflikt benachrichtigen, beispielsweise mit Hilfe eines Broadcasts
usw., wie oben erläutert.
-
Der
Schritt 221 wird dahingehend wahlweise ausgeführt, dass
ein neu zurückgesetzter
Knoten wahrscheinlich die neuere Zeit hat und daher voraussichtlich
auch Informationen über
einen Konflikt anfordert. Ein weiterer Knoten mit einer kollidierenden Adresse
funktioniert wahrscheinlich erfolgreich und kann nur die Antwort
liefern, dass er die angeforderte Adresse hat, und muss nicht wissen,
dass ein Konflikt existiert. Der antwortende Knoten kann jedoch
auch seinen Zeitgeberwert als Teil der Antwort liefern. Daher hat
der anfordernde Knoten sowohl die Antwort von dem Knoten, aus der
er die Existenz eines Adresskonflikts ermitteln muss, als auch den
Zeitgeberwert für
einen Vergleich. Alternativ dazu kann zuerst die Antwort geliefert
werden und erst nachdem ein anfordernder Knoten ermittelt, dass
ein Konflikt vorliegt, fordert der Knoten separat den Zeitgeberwert
an.
-
Der
Prozessorknoten und der andere Prozessorknoten mit den kollidierenden
Knotenadressen, wie durch Schritt 225 veranschaulicht,
oder das System, wie in Schritt 227 veranschaulicht, vergleichen
die Zeiten der Zeitgeber, um in Schritt 228 den Prozessorknoten
mit der neueren Zeit seit einem Reset zu ermitteln. Ein großer Zeitbereich
kann möglicherweise
als Gleichstand betrachtet werden und den Konflikt möglicherweise
insofern nicht lösen,
als, wenn zwei Knoten zurückgesetzt
wurden und mit kollidierenden Solladressen hochfahren, ein Zustand des „Wettrennens" den Konflikt möglicherweise
inkorrekt löst.
Daher kann eine Fehlersituation existieren und zur Lösung eine
externe Überprüfung erfordern.
Somit umfasst im vorliegenden Dokument eine „neuere Zeit" einen Gleichstand.
-
Alternativ
dazu können
die Schritte 221 und 225 weggelassen werden. Die
Schritte 227 und 228 können als Antwort auf ein Broadcast
mit der Absicht, eine Adresse zuzuweisen, durchgeführt werden.
Des Weiteren können
die Schritte 227 und 228 nur durch einen Knoten
durchgeführt
werden, der noch keine Knotenadresse zugewiesen hat, da diese Prüfung dazu
dient, das Hochfahren des späteren,
kollidierenden Knotens abzubrechen. Ein Knoten, der bisher erfolgreich
funktionierte, darf die Möglichkeit
der Adressänderung
nicht in Betracht ziehen.
-
Wenn
in Schritt 228 ermittelt wird, dass der Prozessorknoten
nicht die neuere Zeit hat, wird die vom Prozessorknoten verwendete
Knoten-Solladresse oder Knotenadresse als Knotenadresse für den Prozessorknoten
verwendet und der Prozess wird mit Schritt 240 fortgesetzt,
wie im Folgenden erläutert wird.
-
Der
Prozessorknoten mit der in Schritt 228 ermittelten neueren
Zeit kann in Schritt 222 einen Knotenadressenausfall anzeigen,
wodurch der Prozessorknoten im Netz deaktiviert wird.
-
Bei
einer weiteren Ausführungsart
der vorliegenden Erfindung umfasst der Prozessorknoten, z. B. Prozessorknoten 50 aus 3,
zusätzlich
einen nichtflüchtigen
Speicher 124a und verwaltet im nichtflüchtigen Speicher eine alternative
Knotenadresse des Prozessorknotens. Beispielsweise kann die alternative
Knotenadresse die Knotenadresse der letzten erfolgreichen Erkennung
der Knotenadressierung umfassen, was in Bezug auf Schritt 220 erläutert wird.
Alternativ dazu verwaltet das System einen nichtflüchtigen
Speicher an einem bekannten Standort, beispielsweise an einem Masterknoten,
wie z. B. den nichtflüchtigen
Speicher 124c eines Masterknotens 55.
-
Schritt 222 kann
eine zeitweilige Deaktivierung des Prozessorknotens sein, während die
restlichen Schritte ausgeführt
werden, oder alternativ dazu können
der Schritt 222 weggelassen und die restlichen Schritte
zuerst und irgendwelche Knotenausfälle in Schritt 208 ausgeführt werden,
wie im Folgenden erläutert
wird.
-
Somit
wird nach dem Erkennen eines Knotenadressenausfalls, beispielsweise
in Schritt 207, oder direkt im Ergebnis eines Konflikts,
beispielsweise in Schritt 216, in Schritt 235 die
alternative Knotenadresse in einem nichtflüchtigen Speicher gelesen. Die
alternative Knotenadresse umfasst eine Adresse, die voraussichtlich
einen Konflikt vermeidet, wie sie in Schritt 220 ermittelt
wird. Der nichtflüchtige
Speicher des Schritts 235 kann derselbe oder ein anderer als
der nichtflüchtige
Speicher des Schritts 206 sein, und die alternative Knotenadresse
kann sich von der Knotenadresse des Schritts 206 unterscheiden.
Wird eine alternative Knotenadresse bereitgestellt, so kann der
Knoten unter Verwendung anderer Knotenkennzeichnungsinformationen
als oben erläutert
ausgewählt
werden.
-
In
Schritt 220 umfasst die alternative Knotenadresse des Schritts 235 oder
die alternative Knotenadresse, die zur Knoten-Solladresse des Schritts 206 wird,
sofern sie in Schritt 240 validiert wurde, wie im Folgenden
erläutert
wird, die Knotenadresse der letzten erfolgreichen Erkennung der
Knotenadressierung. Wenn beispielsweise ein Prozessorknoten den Reset-Prozess
durchläuft
und festgestellt wird, dass er eine Knotenadresse hat, die einen
Konflikt mit einem beliebigen Prozessorknoten des Netzes vermeidet,
ist diese Knotenadresse zumindest an diesem Punkt als gültige Knotenadresse
bekannt. Daher wird die bekannte gültige Knotenadresse in Schritt 220 im nichtflüchtigen
Speicher des Prozessorknotens gespeichert.
-
Wurde
der Prozessorknoten gegen einen anderen ausgetauscht usw., so kann
die bisher gültige Adresse
in der neuen Umgebung zu einem Konflikt führen. Daher werden in Schritt 237 die
abgetasteten Knotenadressen der anderen Prozessorknoten des Schritts 212 mit
der alternativen Knotenadresse des nichtflüchtigen Speichers verglichen.
Alternativ dazu können
die Schritte 212 und 215 wiederholt werden oder
es können ähnliche
Schritte unternommen werden. Wenn die alternative Knotenadresse
in Schritt 238 einen Konflikt mit den abgetasteten Knotenadressen
der anderen Prozessorknoten des Schritts 215 vermeidet
und/oder einen Test auf Übereinstimmung
der Bezeichnungsinformationen des Schritts 207 besteht,
so vermeidet die alternative Knotenadresse einen Knotenadressenausfall
und die alternative Knotenadresse des nichtflüchtigen Speichers wird als
Knotenadresse des Prozessorknotens ausgewählt, und der Prozess wird mit
Schritt 240 fortgesetzt.
-
Wenn
jedoch nach wie vor oder erneut ein Konflikt existiert, zeigt der
Prozessorknoten einen Adressenausfall für das Netz und wird in Schritt 208 im
Netz deaktiviert.
-
Durch
das Deaktivieren eines Prozessorknotens im Netz, der einen Adressenausfall
hat, ist nur die Komponente zeitweilig ausgefallen und das System
bleibt betriebsfähig.
Die Nutzung einer alternativen Knotenadresse, die den Adressenausfall
vermeidet, verhindert des Weiteren jegliche Unterbrechung des Systems
und vermeidet sofortige Instandsetzungsaktionen an dem Prozessorknoten
oder an der Komponente.
-
In
Schritt 240 wird der Prozessorknoten mit der augenscheinlich
gültigen
und nicht kollidierenden Adresse aktiviert. In Schritt 220 wird
diese Knotenadresse im nichtflüchtigen
Speicher als alternative Knotenadresse gespeichert und der Zeitgeber
kann zurückgesetzt
werden.
-
Es
kann sein, dass die sich ergebende Knoten-Solladresse oder alternative
Knotenadresse, obwohl sie augenscheinlich gültig ist und nicht mit anderen
Adressen kollidiert, nach wie vor nicht korrekt ist. Daher kann
der Speichervorgang des Schritts 220 nach einer weiteren Überprüfung, beispielsweise
einer Konfigurierung usw., zusätzlich
stattfinden. Somit ist eine zusätzliche
Absicherung dafür
vorhanden, dass die im nichtflüchtigen
Speicher als Sicherungskopie gespeicherte Adresse eine gültige Knotenadresse
ist.
-
In
Schritt 220 kann neben der Speicherung der jetzt gültigen Knotenadresse
im nichtflüchtigen Speicher
als alternative Knotenadresse zu diesem Zeitpunkt wie oben erläutert der
Zeitgeber zurückgesetzt
werden, wenn es sich nicht um einen Einschaltzeitgeber handelt.
-
Als
Alternative kann der Schritt 240 nach dem Schritt 220 ausgeführt werden,
sodass der Prozessorknoten mit der nicht kollidierenden Knotenadresse
im Netz aktiviert wird und der Schritt 240 keine zusätzliche Überprüfung umfasst.
-
Dem
Fachmann wird klar sein, dass die oben aufgeführten Schritte modifiziert
und/oder ihre in 4 gezeigte Reihenfolge geändert werden
kann. Dem Fachmann wird außerdem
klar sein, dass die in den 1 bis 3 veranschaulichten
Elemente durch andere, äquivalente
Elemente ersetzt werden können
und dass die Erfindung gemäß der 3 in anderen
Umgebungen als denen der Bibliothek aus den 1 und 2 implementiert
werden kann, von denen ein Beispiel Verarbeitungsknoten eines Mehrprozessornetzes
in einem Kraftfahrzeug umfasst.
-
Obwohl
bevorzugte Ausführungsarten
der vorliegenden Erfindung detailliert veranschaulicht wurden, sollte
klar sein, dass Modifikationen und Anpassungen dieser Ausführungsarten
möglich
sind, ohne vom Geltungsbereich der vorliegenden Erfindung abzuweichen,
der in den folgenden Ansprüchen dargestellt
ist.