-
Gebiet der
Erfindung
-
Die vorliegende Erfindung betrifft
ein System zum Initialisieren eines verteilten Computersystems und ein
Verfahren zum Initialisieren eines verteilten Computersystems.
-
Hintergrund
der Erfindung
-
Es besteht eine wachsende Nachfrage
nach Hochleistungs-Computersystemen. Viele fortschrittliche Computersysteme
weisen eine verteilte Architektur auf, so dass eine Mehrzahl von
Computern über
ein gemeinsames Kommunikationsmedium (siehe: U.S. Patent 5,887,143
von Saito et al. und die darin erwähnten Verweisungen) aneinander
gekoppelt sind.
-
Großer Wert wird auf die Zuverlässigkeit
eines Computersystems gelegt, insbesondere wenn das Computersystem
si cherheitskritische Anwendungen abwickelt, wie Anwendungen zum
elektronischen Bremsen ("brake
by wire") in Fahrzeugen.
-
Die Zuverlässigkeit eines solchen Computersystems
kann erhöht
werden durch Verwendung von fehlerstummen Computerknoten und durch
Synchronisieren der Computerknoten, die sich das gemeinsame Kommunikationsmedium
teilen. (siehe: U.S. Paten 4,866,606 von Kopetz, und U.S. Patent
5,694,542 von Kopetz). Ein fehlerstummer Computerknoten erzeugt
entweder das korrekte Ergebnis oder erzeugt überhaupt kein Ergebnis. Das
Bauen von fehlerstummen Computerknoten ist in der Technik wohlbekannt
(siehe: U.S. Patent 5,694,542 und die darin erwähnten Verweisungen).
-
Großer Wert wird ebenfalls auf
die Verfügbarkeit
von jedem der fehlerstummen Computerknoten gelegt. Folglich müssen auf
eine schnelle Weise sogar in rauschenden Umgebungen so viele fehlerstumme
Computerknoten wie möglich
initialisiert werden. Des weiteren müssen auf eine schnelle Weise
fehlerstumme Computerknoten initialisiert werden, wenn entweder
das Computersystem gestartet wird oder wenn das System bereits arbeitet
und ein Bereich des Computersystems gestartet werden muss, das abgeschaltet
worden ist.
-
In bekannten Schaltungen ist es schwierig,
diese gegensätzlichen
Anforderungen auf eine optimale Weise miteinander in Einklang zu
bringen. Zum Beispiel beschreibt das U.S. Patent 5,694,542 von Kopetz
ein eine Mehrzahl von fehlerstummen Einheiten umfassendes Computersystem,
wobei jede fehlerstumme Einheit eine Mehrzahl fehlerstummer Computerknoten
aufweist. Die fehlerstummen Einheiten sind mit zwei Parallelbussen
gekoppelt. Die fehlerstummen Computerknoten werden bei Empfang eines
Initialisierungswortes (I-Nachricht) initialisiert. Nachdem ein
fehlerstummer Computer knoten synchronisiert ist, sendet er Datenrahmen,
die sich von den I-Nachrichten unterscheiden (d. h. N-Nachricht).
-
Ein Startzeitabschaltungsparameter
("startup timeout
parameter") ist
in jedem der fehlerstummen Computerknoten gespeichert. Dieser Parameter
bestimmt eine beim Einschalten des Computersystems beginnende und
während
der Übertragung
der I-Nachricht endende Periode. Folglich wartet nach dem Einschalten
ein Computerknoten, bis die Startzeit abgelaufen ist und sendet
dann die I- Nachricht. Ein Nachteil dieser Lösung ist, dass der fehlerstumme
Computerknoten, der die I- Nachricht sendet (d. h. der Sendercomputer) nicht
nachprüft,
ob gleichzeitig entweder andere I-Nachrichten oder N- Nachrichten über das
Kommunikationsmedium gesendet werden. Somit kann einen Kollision
von Datenrahmen vorkommen. Ein weiterer Nachteil der vorherigen
Lösung
ist, dass der Startzeitabschaltungsparameter nicht geeignet ist
für verschiedene
Initialisierungsszenarien, wie rauschende Kommunikationsmedien,
Initialisierung in der Gegenwart anderer I-Nachrichten oder sogar
N-Nachrichten.
-
Die Zuverlässigkeit eines solchen Systems
kann nur erhöht
werden, wenn das Kommunikationsmedium stumm ist. Somit werden Kollisionen
vermieden. Ein Nachteil dieser Lösung
ist, dass das Computersystem in einer rauschenden Umgebung nicht
initialisiert werden wird.
-
Dementsprechend besteht ein Bedarf
nach einem verbesserten System und Verfahren zur Initialisierung
eines verteilten Computersystems und nach Bereitstellung eines Computersystems,
das sowohl zuverlässig
als auch nutzbar ist.
-
Kurze Beschreibung
der Zeichnungen
-
Während
auf die Erfindung in den beigefügten
Ansprüchen
ausführlich
hingewiesen wird, werden andere Merkmale der Erfindung durch die
folgende, in Verbindung mit den beigefügten Zeichnungen vorgenommene
detaillierte Beschreibung offenbart, worin:
-
1 ein
schematisches Diagramm eines Computersystems gemäß einer bevorzugten Ausführungsform
der Erfindung ist;
-
2 eine
schematische Beschreibung eines fehlerstummen Computerknotens gemäß einer
bevorzugten Ausführungsform
der Erfindung ist;
-
3 eine
schematische Beschreibung einer Echtzeit-Timingeinheit gemäß einer bevorzugten Ausführungsform
der Erfindung ist;
-
4 ein
Timingdiagramm ist, das die Übertragung
und den Empfang eines Initialisierungswortes veranschaulicht;
-
5 ein
Flussdiagramm eines Verfahrens zum Initialisieren eines verteilten
Computersystems gemäß einer
bevorzugten Ausführungsform
der Erfindung ist; und
-
6 ein
Flussdiagramm eines Verfahrens zur Initialisierung eines verteilten
Computersystems gemäß einer
anderen bevorzugten Ausführungsform
der Erfindung ist.
-
Beschreibung
einer bevorzugten Ausführungsform
-
Zu beachten ist, dass die verwendeten
bestimmten Begriffe und Ausdrücke
und die in der detaillierten Beschreibung und den beigefügten Zeichnungen
offenbarten bestimmten strukturellen und operativen Einzelheiten
lediglich Illust rationszwecken dienen und nicht dazu vorgesehen
sind, den in den beigefügten
Ansprüchen
beschriebenen Rahmen der Erfindung auf irgendeine Weise zu limitieren.
-
1 ist
ein schematisches Diagramm eines Computersystems 9, das
ein Kommunikationsmedium 30 umfasst, das über entsprechende
Busse 311, 312, 321, 331, 341 und 342 mit
einer Mehrzahl fehlerstummer Computerknoten (d. h. Computerknoten)
NC11 11, NC12 12, NC21 21, NC31 31,
NC41 41 und NC42 42 gekoppelt ist. Die Computerknoten
NC11 und NC12 bilden eine erste Gruppe 10, der Computerknoten
NC21 bildet eine zweite Gruppe 20, der Computerknoten NC31
bildet eine dritte Gruppe 30, die Computerknoten NC41 und
NC42 bilden eine vierte Gruppe 40. 2 ist eine schematische Beschreibung
eines fehlerstummen Computerknotens 21 gemäß einer
bevorzugten Ausführungsform
der Erfindung.
-
Der Zugriff auf das Kommunikationsmedium 30 wird
durch Verwendung eines Zeitschlitzes für jede Gruppe auf eine zyklische
Weise gesteuert. Während
eines Gruppenzyklus kann jede Gruppe einmal auf das Kommunikationsmedium 30 zugreifen,
folglich wird während
einem einzelnen Gruppenzyklus jeder Gruppe ein einzelner Zeitschlitz
zugeordnet. Lediglich ein einzelner fehlerstummer Computerknoten
aus einer Gruppe kann während
einem einzelnen Gruppenzyklus auf das Kommunikationsmedium 30 zugreifen,
die anderen Computerknoten der Gruppe können während anderer Gruppenzyklen
auf das Kommunikationsmedium 30 zugreifen. Die verschiedenen
Gruppenzyklen werden in einer periodischen Weise wiederholt. Eine
Reihenfolge periodischer Gruppenzyklen wird als Systemzyklus bezeichnet.
Zweckmäßigerweise
kann während
einem Systemzyklus jeder Computerknoten auf das Kommunikationsmedium 30 zugreifen.
Zweckmäßigerweise kann
ein fehlerstummer Computerknoten von einem Datenrahmen zwei Typen
erzeugen. Der erste Typ wird zum Initialisieren anderer fehlerstummer
Computerknoten verwendet und wird als Initialisierungswort IW(i)
bezeichnet, und der zweite Typ wird nicht zum Initialisieren von
fehlerstummen Computerknoten verwendet. Der zweite Typ wird als
Nicht-Initialisierungswort NIW(i) bezeichnet. Vorzugsweise übertragen
während
einem Systemzyklus die sämtlichen
Computerknoten entweder ein Initialisierungswort und/oder ein Nicht-Initialisierungswort.
Gewöhnlich
ist ein Bereich der Computerknoten geeignet, Initialisierungswörter zu übertragen.
Zum Beispiel können
die Computerknoten NC11, NC21 und NC31 Initialisierungswörter senden,
während
NC12, NC41 und NC42 kein Initialisierungswort senden können. Die
Initialisierungswörter
werden entsprechend mit IW11, IW21, IW31 bezeichnet, und die Nicht-Initialisierungswörter werden
mit NIW11, NIW21, NIW31, NIW41 und NIW42 bezeichnet. Jeder Gruppenzyklus
umfasst vier Zeitschlitze, wobei die ersten, zweiten, dritten und
vierten Gruppen während
der ersten, zweiten, dritten und vierten Zeitschlitze auf das Kommunikationsmedium 30 zugreifen
können.
-
Die Tabelle 1 zeigt einen beispielhaften
Systemzyklus, in dem die folgenden Initialisierungs- und Nicht-Initialisierungswörter durch
die verschiedenen Gruppen übertragen
werden:
-
Wie in Tabelle 1 gezeigt, wird das
Initialisierungswort IW11, das während
dem ersten Zeitschlitz des ersten Gruppenzyklus übertragen wird, zum Initialisieren
des Computersystems 9 verwendet, während die anderen Initialisierungswörter verwendet
werden zum Initialisieren von fehlerstummen Computerknoten, die
abgeschaltet wurden, nachdem das Computersystem 9 bereits
initialisiert war. Ein fehlerstummer Computerknoten kann als Folge
einer Funktionsstörung
abgeschaltet werden.
-
Vorzugsweise kann ein fehlerstummer
Computerknoten des Weiteren einen dritten Datenrahmentypen erzeugen.
Der dritte Typ ist ein anderes Initialisierungswort AIW(i), das
bereitgestellt wird, nachdem das Computersystem initialisiert wurde.
AIW(i) wird verwendet zur Erhöhung
der Zuverlässigkeit
des Computersystems 9 durch Zulassen der Initialisierung
von fehlerstummen Computerknoten, die nicht initialisierten, als
das Computersystem 9 initialisierte, und von fehlerstummen
Computerknoten, die abgeschaltet wurden, nachdem das Computersystem 9 bereits
initialisiert war. Die Tabelle 2 zeigt einen beispielhaften Systemzyklus,
in dem die folgenden Initialisierungswörter, andere Initialisierungswörter und
Nicht-Initialisierungsdatenwörter
durch die verschiedenen Gruppen übertragen
werden.
-
-
Mit Bezug auf 2 umfasst der fehlerstumme Computerknoten 11:
eine Steuerungseinheit 40, ein Speichermodul 42,
eine Echtzeit-Timingeinheit 44 und eine Eingabe/Ausgabe
("I/O")-Schnittstelle 46.
Die Steuerungseinheit 40 ist über Busse 41, 43 und 45 mit
dem Speichermodul 42, der Echtzeit-Timingeinheit 44 und der I/O-Schnittstelle 46 entsprechend
gekoppelt. Die Echtzeit-Timingeinheit 44 ist weiterhin über einen Bus 47 mit
dem Speichermodul 42 gekoppelt. Die Echtzeit-Timingeinheit 44 stellt
innerhalb des fehlerstummen Computerknotens Timingsignale bereit.
Die Timingsignale leiten verschiedene Zugriffe auf das Kommunikationsmedium 30 ein.
Das Speichermodul 42 speichert eine Mehrzahl von Anweisungen
I(j,1).
-
Die Mehrzahl der Anweisungen I(j,1)
werden durch die Steuerungseinheit 40 ausgeführt und
bestimmen, wann die Steuerungseinheit 40 auf das Kommunikationsmedium 30 zugreifen
kann. Vorzugsweise umfassen die Anweisungen I(j,1) Operandenanweisungen
O(j,1) zum Steuern des Zugriffs auf das Kommunikationsmedium 30 und
Ausführungszeit-Anweisungen T(j,1)
die spezifizieren, wann jede O(j,1) auszuführen ist, wo j ein Index mit
Werten 1 bis M ist. Die T(j,1) entsprechen dem Zeitschlitz, der
NC11 11 zugeordnet ist. Die Ausführungszeit-Anweisungen von
Anweisungen, die NC11 11 zum Übertragen von Datenrahmen veranlassen,
sind zwischen dem Anfang und dem Ende des Zeitschlitzes begrenzt,
der NC11 zugeordnet ist. Zum Beispiel und in Bezug auf TABELLE 1
wird die zweite Anweisung von NC11 11 (d. h. I(1,1)) das Übertragen
von IW11 sein und die entsprechende Anweisungszeit T(1,1) wird während dem
ersten Zeitschlitz des ersten Gruppenzyklus sein. Die zweite Anweisung
von NC11 11 (d. h. I(2,1) wird das Empfangen von Daten
von dem Kommunikationsmedium 30 sein.
-
Zweckmäßigerweise speichert das Speichermodul 42 auch
eine Mehrzahl von Anwendungsanweisungen AI(v), die durch die Steuerungseinheit 40 ausgeführt werden,
wobei deren Ausführung
nicht das Übertragen
von Datenrahmen an das Kommunikationsmedium 30 einschließt.
-
Mit Bezug auf 3 umfasst die Echtzeit-Timingeinheit 44 einen
programmierbaren Zähler 50,
einen Komparator 52 und ein Timingeinheitsregister 54.
Der Komparator 52 ist über
einen Bus 51 mit dem programmierbaren Zähler 50, über den
Bus 43 mit der Steuerungseinheit 40 und über einen
Bus 53 mit dem Timingeinheits-Register 54 gekoppelt.
Die Steuerungseinheit ist über
den Bus 43 mit dem programmierbaren Zähler 50, dem Komparator 52 und
dem Timingeinheitsregister 54 gekoppelt. Das Timingeinheitsregister 54 ist über den
Bus 47 mit dem Speichermodul 42 gekoppelt. Die
Steuerungseinheit 40 schreibt über den Bus 43 Daten an
den programmierbaren Zähler 50 und
kann ferner über den
Bus 43 Steuerungssignale zum Steuern des Empfangs von T(j,i)
innerhalb des Timingeinheitsregisters 54 versenden. Der
Komparator 52 empfängt
die von dem programmierbaren Zähler 50 gelieferten
Ausgangssignale und eine der nächsten
auszuführenden
Anweisung zugeordnete Ausführungszeit-Anweisung T(j,i).
T(j,i) ist innerhalb des Timingeinheitsregisters 54 gespeichert
und wird anfänglich über die
Busse 47 oder 43 entweder von dem Speichermodul 42 oder
der Steuerungseinheit 40 entsprechend geliefert. Der Komparator 52 vergleicht
zwischen T(j,i) und den durch den programmierbaren Zähler 50 gelieferten
Ausgangssignalen und benachrichtigt die Steuerungseinheit 40 mittels Senden
von Übereinstimmungs
("MATCH")-Signalen über den
Bus 43, wenn sie übereinstimmen – wann die nächste Anweisung
auszuführen
ist.
-
Die M Anweisungen werden in einer
zyklischen Weise ausgeführt,
somit folgt auf die Ausführung
der Anweisung I(M,i) die Ausführung
der Anweisung I(l,i). M Anweisungen I(l,i) bis I(M,1) werden als
der i-te Anweisungssatz bezeichnet. Gewöhnlich wird während einem
einzelnen Systemzyklus ein einzelner Anweisungssatz ausgeführt.
-
Vorzugsweise weisen einige der Anweisungssätze Anweisungen
auf, die das Übertragen
von anderen Initialisierungswörtern
AIW(i) über
das Kommunikationsmedium 30 an andere fehlerstumme Computerknoten einschließen. Deshalb
werden andere Initialisierungswörter
in einer periodischen Weise durch das ganze Computersystem 10 gesendet.
Selbst wenn ein fehlerstummer Computerknoten abgeschaltet war, kann
er somit nach Empfang eines Initialisierungswortes innerhalb eines
Systemzyklus gestartet werden.
-
Nachdem ein fehlerstummer Computerknoten
eingeschaltet ist, springt gewöhnlich
dessen Steuerungseinheit zu einer Initialisierungsroutine IR(i).
Wenn der fehlerstumme Computerknoten ein Initialisierungswort IW(i)
senden kann, wickelt die Routine die Übertragung von IW(i) ab, ansonsten
wickelt die Routine den Empfang von IW(i) ab. Zweckmäßigerweise
ist die Initialisierungsroutine nicht in dem i-ten Anweisungssatz I(l,i)
bis I(M,i) enthalten.
-
Fachleuten wird klar sein, dass die
Initialisierungsroutine (IR(i)) ein Teil des Anweisungssatzes I(l,i)
bis I(M,i) sein kann, aber nicht in einer periodischen Weise wiederholt
wird.
-
Die Tabelle 3 zeigt einen beispielhaften
Systemzyklus, in dem die folgenden Initialisierungswörter, andere
Initialisierungswörter
und Nicht-Initialisierungsdatenwörter
durch die verschiedenen Gruppen übertragen werden:
-
Wenn die Initialisierungsroutine
RI(i) ausgeführt
wird, überträgt der erste
Computerknoten IW11, wie gezeigt, und in aufeinander folgenden Gruppenzyklen überträgt er NIW11.
-
Ein fehlerstummer Computerknoten,
der zum Übertragen
eines Initialisierungswortes IW(i) eingeplant ist, wird ein Initialisierungswort
IW(i) senden, wenn er nicht irgendein Initialisierungswort IW(i)
oder AIW(i) empfangen hat, seit er eingeschaltet wurde; und wenn
eine der folgenden Bedingungen erfüllt ist:
- (Eins)
eine Zeitabschaltungsperiode TO(i) ist verstrichen, seit er eingeschaltet
wurde oder seit er nicht gültige
Datenrahmen empfing und der fehlerstumme Computerknoten während dieser
Periode von dem Kommunikationsmedium weder Datenrahmen noch Rauschen
empfing (d. h. das Kommunikationsmedium 30 war stumm);
- (Zwei) eine vorbestimmte Periode PP(i) ist verstrichen, seit
er eingeschaltet wurde oder seit er nicht gültige Datenrahmen empfing,
während
jener Periode er von dem Kommunikationsmedium Rauschen empfing.
-
Wenn der fehlerstumme Computerknoten
einen nicht gültigen
Datenrahmen empfängt,
wird angenommen, dass der Computer aktiv ist. In einem solchen Fall
wird der fehlerstumme Computerknoten zur Vermeidung von Kollisionen
kein Initialisierungswort senden. Er wird auf den Empfang eines
Initialisierungswortes von einem anderen fehlerstummen Computerknoten
warten oder bis eine der obigen Bedingungen erfüllt ist. Bevor ein fehlerstummer
Computerknoten ein gültiges
Initialisierungswort empfängt,
wird er zweckmäßigerweise
ein Nicht-Initialisierungswort als einen nicht gültigen Datenrahmen kennzeichnen.
-
Wenn das Kommunikationsmedium während TO(i)
stumm ist, wird angenommen, dass das Computersystem noch nicht initialisiert
wurde – keine
Datenrahmen und insbesondere keine Initialisierungswörter wurden übertragen,
deshalb ist der fehlerstumme Computerknoten der erste, der eine
Initialisierungsnachricht sendet.
-
Wenn das Kommunikationsmedium gerauscht
hat, aber keine Datenrahmen, ob gültige oder nicht gültige, während der
Periode PP(i) empfangen wurden, wird angenommen, dass das Computersystem
noch nicht initialisiert war. PP(i) ist länger als TO(i), um die Zuverlässigkeit
des Computersystems zu erhöhen.
Für jedes i
PP(i) <> PP(i + 1) und TO(i) <> TO(i + 1).
-
Zweckmäßigerweise ist TO(i) länger als
die Periode, in der R fehlerstumme Computerknoten für das Übertragen
eines Datenrahmens eingeplant waren. Indem R eine Ganzzahl ist,
L > R > 1. TO(i) ist gewöhnlich länger als
ein Gruppenzyklus.
-
Zweckmäßigerweise ist PP(i) länger als
die Periode, in der T fehlerstumme Computerknoten für das Übertragen
eines Datenrahmens eingeplant waren. Indem T eine Ganzzahl ist,
L > T > R > 1. PP(i) ist gewöhnlich länger als ein Systemzyklus.
-
Die Bestimmung, ob die Kommunikation
stumm ist, rauscht oder ob nicht gültige Datenrahmen über das
Kommunikationsmedium gesendet wurden, beruht auf einer Vielfalt
von Kriterien und ist gewöhnlich
auf das auf die Datenrahmen angewendete Codierschema zugeschnitten.
Zweckmäßigerweise
wird dieser Bestimmungsprozess durch die Steuerungseinheit 40 ausgeführt. Nachdem
ein fehlerstummer Computerknoten eingeschaltet ist, holt in einer
Ausführungsform
der Erfindung dessen Steuerungseinheit von seinem Speichermodul
eine Routine, die diesen Bestimmungsprozess abwickelt.
-
Beispielsweise kann ein nicht gültiger Datenrahmen
als ein K1 Bits aufweisender Datenrahmen-Header identifiziert werden,
auf den K2 von Datenbits folgen, wobei K1 + K2 als K bezeichnet
werden. Wobei K, K1 und K2 vorbestimmte Werte sind. Gewöhnlich entsprechen
die K Bits dem Kommunikationsprotokoll, aber eine an dem Datenrahmen
durchgeführte
Nachprüfung
schlägt
fehl. Zum Beispiel zeigt eine CRC-Nachprüfung, dass der Header und die
K Bits nicht gültig
sind.
-
Bevor ein fehlerstummer Computerknoten
synchronisiert wird, betrachtet er vorzugsweise, und um Kollisionen
zu vermeiden, Nicht-Initialisierungswörter als nicht gültige Datenrahmen.
-
In einer bevorzugten Ausführungsform
der Erfindung umfassen sowohl IW(i) als auch AIW(i) einen Header
HD(i), einen Zeitabschnitt TIW(i) und einen Deltaabschnitt PIW(i),
der Header umfasst weiterhin einen Typenflag TP(i). IW(i) und AIW(i)
sind B Bits lang, wobei B >=
K. Ein Nicht-Initialisierungswort
umfasst einen Header HD(i) und eine Mehrzahl von Datenwörtern, wobei
das kürzeste
Datenwort Q Datenbits umfasst, Q >= K.
TP(i) spiegelt wider, ob der Datenrahmen ein Initialisierungswort,
ein anderes Initialisierungswort oder ein Nicht-Initialisierungswort
ist. Der Zeitabschnitt TIW(i) spiegelt ein Timingsignal wider, das
durch die Echtzeit-Timingeinheit des fehlerstummen Computerknotens
gesendet wurde, der das Initialisierungswort IW(i) sendete. Der
Deltaabschnitt PIW(i) liefert Daten zum Bestimmen des Offsets zwischen
der Übertragung
des Initia-lisierungswortes
und der in einem empfangenden fehlerstummen Computerknoten durchgeführten Aktualisierung/Synchronisation.
Ferner kann der Deltaabschnitt PIW(i) zum Aktualisieren des programmierten
Zählers der
Echtzeit-Timingeinheit
eine Adresse einer Teilroutine innerhalb des Speichermoduls 42 speichern.
Zum Beispiel kann das Speichermodul 42 drei Teilroutinen
DR(1,1)-DR(1,3) speichern, wobei die erste Teilroutine DR(1,1) das
Aktualisierungsverfahren abwickelt, das sich aus dem Empfang von
IW21 ergibt, DR(1,2) die Aktualisierungsverfahrensergebnisse vom
Empfang von IW21 abwickelt und DR(1,3) das Aktualisierungsverfahren
abwickelt, das sich aus dem Empfang von IW31 ergibt. Das vorbestimmte
Offset kann entweder gemessen oder errechnet werden. Das vorbestimmte
Offset spiegelt die Verzögerung
wider zwischen dem Zeitpunkt, zu dem das Initialisierungswort durch
einen fehlerstummen Computerknoten gesendet wird und dem Zeitpunkt,
zu dem der programmierte Zähler
des empfangenden fehlerstummen Computerknotens aktualisiert wird.
-
Nachdem ein fehlerstummer Computerknoten
ein Initialisierungswort IW(i) sendet, wartet er zweckmäßigerweise
auf den Empfang eines Bestätigungswortes
von mindestens einem anderen fehlerstummen Computerknoten. Das von
dem g-ten fehlerstummen Computerknoten gelieferte Bestätigungswort
wird als ACK(g), g <> i, bezeichnet. Eine
der ersten Anweisungen aus dem g-ten Anweisungssatz und sogar die
erste Anweisung des g-ten fehlerstummen Anweisungswortes I(1,g)
ist, ACK(g) zu senden. Zum Beispiel und in Bezug auf Tabelle 1 senden
NC21 21, NC31 31 und NC41 41, nachdem
IW11 durch NC11 11 gesendet ist, ein Bestätigungswort
während
dem zweiten Zeitschlitz, dem dritten Zeitschlitz und einer dritten
Zeit entsprechend dem ersten Gruppenzyklus. NC12 12 und
NC42 42 senden während
dem ersten Zeitschlitz und dem vierten Zeitschlitz entsprechend
dem zweiten Gruppenzyklus ein Bestätigungswort. Vorzugsweise ist
ein Bestätigungswort
ein anderes Initialisierungswort AIW.
-
Wenn das Kommunikationsmedium stumm
ist und auf die Übertragung
von IW(i) folgte während
einer vorbestimmten Periode von TACK(i) nicht der Empfang eines
Bestätigungswortes,
wird ein anderes Initialisierungswort IW(i) gesendet. wenn das Kommunikationsmedium
rauscht und auf die Übertragung
von IW(i) folgte während
einer vorbestimmten Periode von TACKN(i) nicht der Empfang eines
Bestätigungswortes,
wird ein anderes Initialisierungswort IW(i) gesendet. Verzugsweise
wiederholt sich dieses Verfahren, bis TR(i) Initialisierungswörter gesendet
werden, ohne dass ein Bestätigungswort
empfangen wird. In einem solchen Fall stoppt der I-te fehlerstumme
Computerknoten das Senden von Initialisierungswörtern und wartet auf den Empfang eines
Initialisierungswortes von einem anderen fehlerstummen Computerknoten
oder kann sogar abschalten. TACK(i) <= TO(i), TACKN(i) <= PP(i).
-
Zweckmäßigerweise umfasst ACK(g) einen
Header HD(g), einen Typenflag TP(g), einen Zeitabschnitt TIW(g)
und einen Deltaabschnitt PIW(g). Der Typenflag zeigte an, dass das
ACK(g) ein Nicht-Initialisierungswort oder ein Initialisierungswort
(gemäß der Implementierung
von ACK(g)) ist, TIW(g) spiegelt ein Timingsignal wider, das durch
die Echtzeit-Timingeinheit des fehlerstummen Computerknotens geliefert
wurde, der das Bestätigungswort
ACK(g) sendete, nachdem der Echtzeit-Timingeinheit aktualisiert/synchronisiert
ist. Der Deltaabschnitt PIW(g) liefert Daten, die verwendet werden
zum Bestimmen des Offsets zwischen der Übertragung von ACK(g) und einer
Nachprüfung,
die durch NC(i) über
ACK(g) durchgeführt
wird. NC(i) prüft
nach, ob der g-te fehlerstumme Computerknoten erfolgreich synchronisiert
wurde, durch Vergleichen der durch seine Echtzeit-Timingeinheit an
TIW(g) gelieferten Timingsignale, plus das Offset.
-
4 ist
ein Timingdiagramm, das die Übertragung
und den Empfang eines durch NC11 (11) gesendeten Initialisierungswortes
IW(11) 60 veranschaulicht. Wenn IW(11) in dem ersten Zeitschlitz
des ersten Gruppenzyklus (wie in den Tabellen 1 und 2 zu sehen)
gesendet wird, ereignen sich die Übertragung und vorzugsweise
der Empfang während
dieses Zeitschlitzes, der bei T1 61 beginnt und bei T7 67 endet.
Während
diesem Zeitschlitz sendet NC11 11 das Initialisierungswort IW(11) 60,
und die anderen fehlerstummen Computerknoten empfangen das Wort
und initialisieren sich selbst entsprechend. Die anderen fehlerstummen
Computerknoten senden Bestätigungswörter während den
Zeitschlitzen, in denen ihnen der Zugriff auf das Kommunikationsmedium 30 gestattet
wird. IW(11) 60 umfasst einen Header HD(11) mit einem Flagbereich
IIW(11), der eingestellt ist, einen Zeitabschnitt TIW(11), wobei
der Inhalt von TIW(11) gleich T2, der Zeit in der IW(11) übertragen
wird, ist und einen Deltaabschnitt PIW(11), der anzeigt, dass das
Initialisierungswort von NC11 11 gesendet wurde.
-
Diese Offsets (T8-T2), (T3-T2), (T4-T2),
(T5-T2), (T6-T2)
wurden vorher errechnet oder gemessen. NC12 12, NC21 21,
NC31 31, NC41 41 und NC42 42 aktualisieren
bei T8 68, T3 63, T4 64, T5 65,
T6 66 und T8 68 ihre Echtzeit-Timingeinheit entsprechend. Das Aktualisieren
wird durch Addieren von T2 zu den vorbestimmten Offsets (T8-T2),
(T7-T2), (T4-T2),
(T5-T2) und (T6-T2) und Schreiben der Ergebnisse an ihre Echtzeit-Timingeinheiten
durchgeführt.
-
5 ist
ein Flussdiagramm eines Verfahrens 70 zum Initialisieren eines verteilten
Computersystems gemäß einer
bevorzugten Ausführungsform
der Erfindung.
-
Die Kästchen 72, 74, 78, 80 und 82 stellen
verschiedenen Schritte des Verfahrens 70 dar. Bevor die Schritte 72– 82 ausgeführt werden,
werden die Zeitoffsets zwischen der Übertragung eines Initialisierungswortes
von den fehlerstummen Computerknoten bis zu der Aktualisierung der
Echtzeit-Timingeinheiten innerhalb anderer fehlerstummer Computerknoten
errechnet oder gemessen und an die Speichermodule innerhalb der Mehrzahl
fehlerstummer Computerknoten geschrieben. Vorzugsweise sind diese
Offsets ein Teil einer Mehrzahl von Teilroutinen DR(i,g), welche
die Synchronisation der fehlerstummen Computerknoten abwickeln.
Ein Satz des Zeitoffsets zwischen der Übertragung von Bestätigungswörtern bis
zu ihrer Nachprüfung
wird ebenfalls errechnet oder gemessen und an die Speichermodule
innerhalb der Mehrzahl fehlerstummer Computerknoten geschrieben.
Des Weiteren wird eine Mehrzahl von Anweisungen I(j,i) an die Mehrzahl
von Speichermodulen der fehlerstummen Computerknoten geschrieben.
Jede Anweisung I(j,i) weist eine Operandenanweisung O(j,1) auf zum
Steuern des Zugriffs auf ein Kommunikationsmedium und Ausführungszeit-Anweisungen T(j,l),
die spezifizieren, wann jede O(j,1) auszuführen ist.
-
Das Verfahren 70 umfasst die folgenden
Schritte:
einen Leerlauf ("IDLE")-Schritt 72,
in dem der fehlerstumme Computerknoten nicht aktiv ist. Wenn ein
fehlerstummer Computerknoten gestartet ist, folgt auf den Schritt 72,
wie durch den Pfad 84 angezeigt, der Schritt 74 dem
Kommunikationsmedium Zuhören.
-
Dem Kommunikationsmedium während Schritt 74 Zuhören und
Bestimmen, ob der fehlerstumme Computerknoten Rauschen empfing,
ein Initialisierungswort von einem anderen fehlerstummen Computerknoten
empfing, einen nicht gültigen
Datenrahmen empfing oder ob das Kommunikationsmedium 30 stumm
ist. Am Beginn des Schrittes 74 beginnt der fehlerstumme
Computerknoten Zeit zu zählen.
Die Zeitzählung
wird zurückgesetzt,
jedes Mal wenn Schritt 74 beginnt.
-
Springen zu Schritt 74 dem
Kommunikationsmedium Zuhören,
wenn ein nicht gültiger
Datenrahmen empfangen wurde, wie durch Pfad 86 angezeigt.
-
Synchronisieren, während Schritt 78,
zwischen dem fehlerstummen Computerknoten NC(i) bis zu einem fehlerstummen
Computerknoten NC(q), der ein Initialisierungswort IW(q) übertragen
hat, wenn IW(q) empfangen wurde, wie durch Pfad 90 angezeigt.
Springen zu Schritt 80 des Ausführens von Anweisungen I(j,i).
-
Übertragen
eines Initialisierungswortes IW(i) während Schritt 82,
wenn eine der folgenden Bedingungen erfüllt ist:
eine Zeitabschaltungsperiode
von TO(i) ist von Beginn des Schrittes 74 an verstrichen,
das Kommunikationsmedium war stumm und NC(i) hat seit Schritt 72 kein
Initialisierungswort IW(i) gesendet;
eine vorbestimmte Periode
von PP(i) ist von Beginn des Schrittes 74 an verstrichen,
das Kommunikationsmedium war stumm und NC(i) hat seit Schritt 72 kein
Initialisierungswort IW(i) gesendet;
eine Periode von TACK(i)
ist von Beginn des Schrittes 74 an verstrichen, das Kommunikationsmedium
war stumm, NC(i) hat bereits ein Initialisierungswort IW(i) gesendet, hat
aber während
einer Periode von TACK(i) kein Bestätigungswort ACK(g) empfangen;
eine
vorbestimmte Periode von TACKN(i) ist von Beginn des Schrittes 74 an
verstrichen, der fehlerstumme Computerknoten erhielt Rauschen und
NC(i) hat bereits ein Initialisierungswort IW(i) gesendet, hat aber
während
einer Periode von TACKN(i) kein Bestätigungswort ACK(g) empfangen.
-
Ausführen von Anweisungen I(j,i)
in einer periodischen Weise während
Schritt 80 und wie durch den Pfad 108 angezeigt,
wenn ein Initialisierungswort IW(i) gesendet wurde und eine der
folgenden Bedingungen erfüllt
ist:
Das Kommunikationsmedium war stumm und während einer
Periode von TACK(i) wurde mindestens ein Bestätigungswort ACK(g) empfangen,
und eine an ACK(g) durchgeführte
Nachprüfung
zeigt, dass NC(i) und NC(g) synchronisiert sind;
Das Kommunikationsmedium
hat gerauscht und während
einer Periode von TACKN(i) wurde mindestens ein Bestätigungswort
ACK(g) empfangen, und eine an ACK(g) durchgeführte Nachprüfung zeigt, dass NC(i) und NC(g)
synchronisiert sind.
-
Zweckmäßigerweise schließen einige
der Anweisungen I(j,i) das Senden eines Bestätigungswortes, das Nachprüfen von
Bestätigungswörtern, das
Senden von AIW(n) ein.
-
Wie durch Pfad 94 angezeigt,
folgt in Falle einer Abschaltung auf den Schritt 80 der
IDLE-Schritt 72.
-
6 ist
ein Flussdiagramm eines Verfahrens 70' zum Initialisieren eines verteilten
Computersystems gemäß einer
anderen bevorzugten Ausführungsform
der Erfindung. Das Verfahren 70' ist analog zu dem Verfahren 70,
verfügt
aber ferner über
einen Mechanismus, der die Übertragung
von Initialisierungswörtern
steuert. Gemäß dem zusätzlichen
Mecha nismus wird NC(i) bis zu TR(i) Initialisierungswörter senden,
und wenn es keine Erwiderung gab, wird er das Senden von Initialisierungswörtern einstellen
und vorzugsweise warten, bis er von einem anderen fehlerstummen
Computerknoten ein Initialisierungswort empfängt. Während dem modifizierten Schritt 82 wird
jedes Mal, wenn IW(i) gesendet wird, ein Indexwert I NUM(i) erhöht. I NUM(i)
wird während
dem zusätzlichen
Schritt 98 mit TR(i) verglichen. I NUM(i) wird zurückgestellt,
wenn der fehlerstumme Computerknopf gestartet wird.
-
Bei dem Verfahren 70' folgt auf den
Schritt 74 ein zusätzlicher
Schritt 98, wenn eine der folgenden Bedingungen erfüllt ist:
eine
Zeitabschaltungsperiode von TO(i) ist von Beginn des Schrittes 74 an
verstrichen, das Kommunikationsmedium war stumm und NC(i) hat seit
Schritt 72 kein Initialisierungswort IW(i) gesendet;
eine
vorbestimmte Periode von PP(i) ist von Beginn des Schrittes 74 an
verstrichen, der fehlerstumme Computerknoten empfing Rauschen und
NC(i) hat seit Schritt 72 kein Initialisierungswort IW(i)
gesendet;
eine Periode von TACK(i) ist von Beginn des Schrittes 74 an
verstrichen, das Kommunikationsmedium war stumm, NC(i) hat bereits
ein Initialisierungswort IW(i) gesendet, hat aber während einer
Periode von TACK(i) kein Bestätigungswort
ACK(g) empfangen;
eine vorbestimmte Periode von TACKN(i) ist
von Beginn des Schrittes 74 an verstrichen, der fehlerstumme Computerknoten
empfing Rauschen und NC(i) hat bereits ein Initialisierungswort
IW(i) gesendet, hat aber während
einer Periode von TACKN(i) kein Bestätigungswort ACK(g) empfangen.
-
Während
dem Schritt 98 prüft
NC(i) nach, ob I_NUM(i) > TR(i),
und wenn die Antwort JA ist, folgt auf den zusätzlichen Schritt 98 der
Schritt 74, wie durch den zusätzlichen Pfad 106 angezeigt.
Wenn die Antwort NEIN ist, folgt auf den zusätzlichen Schritt 98 der
modifizierte Schritt 82, wie durch den Pfad 100 angezeigt. Auf
den modifizierten Schritt 82 folgt der Schritt 74,
wie durch den zusätzlichen
Pfad 104 angezeigt.
-
Somit ist hierin eine Ausführungsform
beschrieben worden, die mindestens eine bevorzugte Ausführungsform
eines bzw. einer verbesserten Verfahrens und Vorrichtung zum Initialisieren
eines verteilten Computersystems enthält.
-
Fachleuten wird klar sein, dass der
offenbarte Gegenstand auf zahlreiche Weisen modifiziert werden kann
und abgesehen von der oben speziell dargelegten und beschriebenen
bevorzugten Form viele Ausführungsformen
annehmen kann. Dementsprechend ist der vorstehend offenbarte Gegenstand
als veranschaulichend und nicht als einschränkend zu betrachten und in
dem gesetzlich maximal zugelassenen Ausmaß wird durch die beigefügten Ansprüche beabsichtigt,
all derartigen Modifikationen und andere Ausführungsformen abzudecken, die
in den wirklichen Rahmen der vorliegenden Erfindung fallen. Der
Rahmen der Erfindung ist, anstatt der vorhergehenden detaillierten
Beschreibung, durch die weitest zulässig Auslegung der folgenden Ansprüche und
deren Äquivalente
zu bestimmen.