DE69911000T2 - Vorrichtung und Verfahren zur Initialisierung eines verteilten Rechnersystems - Google Patents

Vorrichtung und Verfahren zur Initialisierung eines verteilten Rechnersystems Download PDF

Info

Publication number
DE69911000T2
DE69911000T2 DE69911000T DE69911000T DE69911000T2 DE 69911000 T2 DE69911000 T2 DE 69911000T2 DE 69911000 T DE69911000 T DE 69911000T DE 69911000 T DE69911000 T DE 69911000T DE 69911000 T2 DE69911000 T2 DE 69911000T2
Authority
DE
Germany
Prior art keywords
silent
computer node
communication medium
word
initialization
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.)
Expired - Fee Related
Application number
DE69911000T
Other languages
English (en)
Other versions
DE69911000D1 (de
Inventor
Einat Ophir
Izak Goldfarb
Itzhaki Barak
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.)
NXP USA Inc
Original Assignee
Motorola Inc
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 Motorola Inc filed Critical Motorola Inc
Publication of DE69911000D1 publication Critical patent/DE69911000D1/de
Application granted granted Critical
Publication of DE69911000T2 publication Critical patent/DE69911000T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0796Safety measures, i.e. ensuring safe condition in the event of error, e.g. for controlling element

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Small-Scale Networks (AREA)
  • Multi Processors (AREA)

Description

  • 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:
    Figure 00060001
    Figure 00070001
  • 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.
  • Figure 00080001
  • 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:
    Figure 00110001
  • 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 7282 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.

Claims (21)

  1. System zum Initialisieren eines verteilten Computersystems (9) umfassend: eine Mehrzahl fehlerstummer Computerknoten (11, 12, 21, 31, 41, 42), die mit einem Kommunikationsmedium (30) gekoppelt sind, wobei die Mehrzahl fehlerstummer Computerknoten geeignet ist, über das Kommunikationsmedium Datenrahmen auszutauschen und jeder fehlerstummer Computerknoten umfasst: eine Echtzeit-Timingeinheit (44) zum Bereitstellen von Timingsignalen innerhalb der fehlerstummen Computerknoten; eine I/O-Schnittstelle (46) (Eingabe/Ausgabe-Schnittstelle), die mit dem Kommunikationsmedium gekoppelt ist; eine Steuereinheit (40), die mit der I/O-Schnittstelle und der Echtzeit-Timingeinheit gekoppelt ist; ein Speichermodul (42), das mit der Steuereinheit und der Echtzeit-Timingeinheit gekoppelt ist, um eine Mehrzahl von Anweisungen I(j,i) zu speichern; wobei die Steuereinheit geeignet ist, eine Mehrzahl von Anweisungen I(j,i) auszuführen und auf das Kommunikationsmedium zuzugreifen; wobei j einen Index bezeichnet, der die Werte 1 bis M hat, wobei M eine endliche Anzahl von Anweisungen ist, und wobei i ein Index ist, der den i-ten Anweisungssatz bezeichnet; wobei ein fehlerstummer Computerknoten geeignet ist, andere fehlerstumme Computerknoten zu initialisieren, indem ein Initialisierungswort IW(i) gesendet wird, um die Timingsignale, die durch die Echtzeit-Timingeinheiten der Mehrzahl von fehlerstummen Computerknoten geliefert werden, zu synchronisieren, wobei das Initialisierungswort IW(i) gesendet wird, wenn der fehlerstumme Computerknoten kein Initialisierungswort von einem anderen fehlerstummen Computerknoten empfängt und wenn eine der folgenden Bedingungen erfüllt ist: (a) der fehlerstumme Computerknoten hat keine nicht gültigen Datenrahmen empfangen und kein Rauschen von dem Kommunikationsmedium während einer Zeitabschaltungsperiode von TO(i) empfangen; und (b) der fehlerstumme Computerknoten hat Rauschen von dem Kommunikationsmedium während einer zweiten vorbestimmten Periode von PP(i) empfangen.
  2. System nach Anspruch 1, wobei TO(i) länger ist als die Periode, in der R fehlerstumme Computerknoten eingeplant waren, um Datenrahmen zu senden, wobei R eine ganze Zahl ist und L > R > 1, wobei L die Anzahl fehlerstummer Computerknoten innerhalb des Computersystems ist.
  3. System nach Anspruch 2, wobei PP(i) länger ist als die Periode, in der T fehlerstumme Computerknoten eingeplant waren, um Datenrahmen zu senden, wobei T eine ganze Zahl ist und L > T > R > 1.
  4. System nach Anspruch 1, wobei ein fehlerstummer Computerknoten geeignet ist, ein Initialisierungswort zu senden und über eine Periode von TACK(i) zu warten, um ein Bestätigungswort von einem anderen fehlerstummen Computerknoten zu empfangen, der das Initialisierungswort empfangen hat und entsprechend initialisiert ist; wobei der fehlerstumme Computerknoten, wenn er kein Bestätigungswort empfangen hat, ein anderes Initialisierungswort senden wird, wenn der fehlerstumme Computerknoten kein Initialisierungswort von einem anderen fehlerstummen Computerknoten empfangen hat und wenn eine der folgenden Bedingungen erfüllt ist: (a) der fehlerstumme Computerknoten hat keinen nicht gültigen Datenrahmen empfangen und hat kein Rauschen von dem Kommunikationsmedium während einer Zeitabschaltungsperiode von TACK(i) empfangen; und (b) der fehlerstumme Computerknoten hat Rauschen von dem Kommunikationsmedium während einer Periode von TACKN(i) empfangen.
  5. System nach Anspruch 4, wobei TACK(i) <= TI(i) und TACKN(i) <= PP(i).
  6. System nach Anspruch 5, wobei ein fehlerstummer Computerknoten geeignet ist, bis zu TR(i) Initialisierungsworte zu senden, ohne ein Bestätigungswort als Antwort zu erhalten.
  7. System nach Anspruch 1, wobei die Mehrzahl fehlerstummer Computerknoten einer Mehrzahl von Gruppen zugeordnet ist; wobei jede Gruppe wenigstens einen fehlerstummen Computerknoten umfasst; wobei der Zugriff auf das Kommunikationsmedium durch die Verwendung eines Zeitschlitzes für jede Gruppe in einer zyklischen Weise gesteuert ist, so dass jede Gruppe während eines Gruppenzyklus einmal auf die Kommunikation zugreifen kann; und wobei TO(i) länger ist als der Gruppenzyklus.
  8. System nach Anspruch 7, wobei einige der fehlerstummen Computerknoten geeignet sind, ein Nicht-Initialisierungswort während eines ersten Gruppenzyklus zu senden und ein Initialisierungswort während eines zweiten Gruppenzyklus zu senden; wobei die Gruppenzyklen in einer periodischen Weise wiederholt werden, so dass jeder Gruppenzyklus wenigstens einmal während eines Systemzyklus auftritt; und wobei PP(i) länger ist als ein Systemzyklus.
  9. System nach Anspruch 1, wobei die Anweisungen I(j,i) Operandenanweisungen O(j,i) zum Steuern des Empfangs von Datenrahmen und des Sendens von Datenrahmen über das Kommunikationsmedium umfassen und die Ausführungszeit der Anweisungen T(j,i) spezifiziert, wann jede O(j,i) auszuführen ist.
  10. System nach Anspruch 1, wobei das Initialisierungswort umfasst: einen Header HD(i); einen Initialisierungsflag IIW(i) zum Identifizieren eines Datenrahmens als ein Initialisierungswort; einen Zeitabschnitt TIW(i), der ein Timingsignal widerspiegelt, das durch die Echtzeit-Timingeinheit des fehlerstummen Computerknotens zur Verfügung gestellt wird, der das Initialisierungswort IW(i) gesendet hat; einen Deltaabschnitt PIW(i) zum Bereitstellen von Daten, die bei der Bestimmung eines Offset zwischen dem fehlerstummen Computerknoten, der das Initialisierungswort gesendet hat, und den anderen fehlerstummen Kommunikationsknoten zu verwenden ist.
  11. System nach Anspruch 10, wobei der Deltaabschnitt PIW(i) auf eine Synchronisationsanweisung innerhalb des Speichermoduls eines fehlerstummen Computerknotens zeigt, wobei die Ausführung der Synchronisationsanweisung das Addieren eines vorbestimmten Offsetwertes zu dem Zeitabschnitt TIW(i) des Initialisierungswortes IW(i) einschließt und die Echtzeit-Timingeinheit entsprechend aktualisiert wird.
  12. Verfahren (70) zum Initialisieren eines verteilten Computersystems (9), wobei das verteilte Computersystem eine Mehrzahl fehlerstummer Computerknoten (11, 12, 21, 31, 41, 42) umfasst und die fehlerstummen Computerknoten mit einem Kommunikationsmedium (30) gekoppelt sind und geeignet sind, Datenrahmen über das Kommunikationsmedium auszutauschen, wobei das Verfahren die Schritte umfasst: Bereitstellen einer Echtzeit-Timingeinheit (44), die Timingsignale innerhalb des fehlerstummen Computerknotens zur Verfügung stellt; Bereitstellen einer I/O-Schnittstelle (46), die mit dem Kommunikationsmedium gekoppelt ist; Bereitstellen einer Steuereinheit (40), die mit der I/O-Schnittstelle und der Echtzeit-Timingeinheit gekoppelt ist; Bereitstellen eines Speichermoduls (42), das mit der Steuereinheit und mit der Echtzeit-Timingeinheit gekoppelt ist und eine Mehrzahl von Anweisungen I(j,i) speichert, wobei die Steuereinheit geeignet ist, eine Mehrzahl von Anweisungen I(j,i) auszuführen und auf das Kommunikationsmedium zuzugreifen; wobei j einen Index bezeichnet, der die Werte 1 bis M hat, wobei M eine endliche Anzahl von Anweisungen ist, und wobei i ein Index ist, der den i-ten Anweisungssatz bezeichnet; Starten eines fehlerstummen Computerknotens; Initialisieren anderer fehlerstummer Computerknoten durch das Senden eines Initialisierungswortes IW(i) zum Synchronisieren der Timingsignale, die von den Echtzeit-Timingeinheiten der Mehrzahl fehlerstummer Computerknoten zur Verfügung gestellt werden, wobei das Initialisierungswort IW(i) gesendet wird, wenn der fehlerstumme Computerknoten kein Initialisierungswort von einem anderen fehlerstummen Computerknoten empfangen hat und wenn eine der folgenden Bedingungen erfüllt ist: der fehlerstumme Computerknoten hat keine nicht gültigen Datenrahmen empfangen und hat kein Rauschen von dem Kommunikationsmedium während einer Zeitabschaltungsperiode von TO(i) empfangen; der fehlerstumme Computerknoten hat Rauschen von dem Kommunikationsmedium während einer zweiten vorbestimmten Periode von PP(i) empfangen; und Ausführen von Anweisungen I(j,i) in einer periodischen Weise.
  13. Verfahren nach Anspruch 12, wobei der Schritt des Initialisierens anderer fehlerstummer Computerknoten die Schritte umfasst: dem Kommunikationsmedium Zuhören und Bestimmen, ob der fehlerstumme Computerknoten Rauschen empfangen hat, ein Initialisierungswort von einem anderen fehlerstummen Computerknoten empfangen hat, einen nicht gültigen Datenrahmen empfangen hat, ein Bestätigungswort empfangen hat oder ob das Kommunikationsmedium stumm ist, und eine Zeitperiode von dem Beginn des Schrittes des Zuhörens zu dem Kommunikationsmedium Zählen; Springen zu dem Schritt des Zuhörens zu dem Kommunikationsmedium, wenn ein nicht gültiger Datenrahmen empfangen wurde und Zurücksetzen der Zeitzählung, die bei dem Schritt des Zuhörens zu dem Kommunikationsmedium gestartet wurde; Synchronisieren zwischen dem fehlerstummen Computerknoten und dem anderen fehlerstummen Computerknoten, der das Initialisierungswort gesendet hat, wenn der fehlerstumme Computerknoten ein Initialisierungswort von dem anderen fehlerstummen Computerknoten empfangen hat; Springen zu einem Schritt des Ausführens von Anweisungen I(j,i), wenn eine der beiden Bedingungen erfüllt ist: der fehlerstumme Computerknoten hat nur ein Bestätigungswort von einem anderen fehlerstummen Computerknoten während der Periode von TACK(i) empfangen; der fehlerstumme Computerknoten hat sowohl Rauschen als auch ein Bestätigungswort von einem anderen fehlerstummen Computerknoten während einer Periode von TACKN(i) empfangen; Senden eines Initialisierungswortes, wenn eine der beiden Bedingungen erfüllt ist: der fehlerstumme Computerknoten hat keine nicht gültigen Datenrahmen empfangen und hat kein Rauschen von dem Kommunikationsmedium während einer Zeitabschaltungsperiode von TO(i) empfangen; der fehlerstumme Computerknoten hat Rauschen von dem Kommunikationsmedium während einer zweiten vorbestimmten Periode von PP(i) empfangen.
  14. Verfahren nach Anspruch 13, wobei TO(i) länger ist, als die Periode, in der R fehlerstumme Computerknoten eingeplant waren, um ein Initialisierungswort zu senden; wobei R eine ganze Zahl ist und L > R > 1, wobei L die Anzahl von fehlerstummen Computerknoten innerhalb des Computersystems ist.
  15. Verfahren nach Anspruch 14, wobei PP(i) länger ist als die Periode, in der T fehlerstumme Computerknoten eingeplant waren, um einen Datenrahmen zu senden; wobei T eine ganze zahl ist und L > T > R > 1.
  16. Verfahren nach Anspruch 15, wobei TACK(i) <= TI(i) und TACKN(i) <= PP(i).
  17. Verfahren nach Anspruch 16, wobei ein fehlerstummer Computerknoten geeignet ist, bis zu TR(i) Initialisierungsworte zu senden ohne als Antwort ein Bestätigungswort zu empfangen.
  18. Verfahren nach Anspruch 13, wobei die Mehrzahl fehlerstummer Computerknoten einer Mehrzahl von Gruppen zugeordnet ist; wobei jede Gruppe wenigstens einen fehlerstummen Computerknoten umfasst; wobei der Zugriff auf das Kommunikationsmedium durch die Verwendung eines Zeitschlitzes für jede Gruppe in einer zyklischen Weise gesteuert ist, so dass jede Gruppe während eines Gruppenzyklus einmal auf die Kommunikation zugreifen kann; und wobei TO(i) länger ist als der Gruppenzyklus.
  19. Verfahren nach Anspruch 16, wobei einige der fehlerstummen Computerknoten geeignet sind, ein Nicht-Initialisierungswort während eines ersten Gruppenzyklus zu senden und ein Initialisierungswort während eines zweiten Gruppenzyklus zu senden; wobei die Gruppenzyklen in einer periodischen Weise wiederholt werden, so dass jeder Gruppenzyklus wenigstens einmal während eines Systemzyklus auftritt; und wobei PP(i) länger ist als ein Systemzyklus.
  20. Verfahren nach Anspruch 13, wobei die Anweisungen I(j,i) Operandenanweisungen O(j,i) zum Steuern des Empfangs von Datenrahmen und des Sendens von Datenrahmen über das Kommunikationsmedium umfassen und die Ausführungszeit der Anweisungen T(j,i) spezifiziert, wann jede O(j,i) auszuführen ist.
  21. Verfahren nach Anspruch 20, wobei das Initialisierungswort umfasst: einen Header HD(i); einen Initialisierungsflag IIW(i) zum Identifizieren eines Datenrahmens als ein Initialisierungswort; einen Zeitabschnitt TIW(i), der ein Timingsignal widerspiegelt, das durch die Echtzeit-Timingeinheit des fehlerstummen Computerknotens zur Verfügung gestellt wird, der das Initialisierungswort IW(i) gesendet hat; einen Deltaabschnitt PIW(i) zum Bereitstellen von Daten, die bei der Bestimmung eines Offset zwischen dem fehlerstummen Computerknoten, der das Initialisierungswort gesendet hat, und den anderen fehlerstummen Kommunikationsknoten zu verwenden ist.
DE69911000T 1999-07-28 1999-07-28 Vorrichtung und Verfahren zur Initialisierung eines verteilten Rechnersystems Expired - Fee Related DE69911000T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP99114802A EP1072977B1 (de) 1999-07-28 1999-07-28 Vorrichtung und Verfahren zur Initialisierung eines verteilten Rechnersystems

Publications (2)

Publication Number Publication Date
DE69911000D1 DE69911000D1 (de) 2003-10-09
DE69911000T2 true DE69911000T2 (de) 2004-05-19

Family

ID=8238678

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69911000T Expired - Fee Related DE69911000T2 (de) 1999-07-28 1999-07-28 Vorrichtung und Verfahren zur Initialisierung eines verteilten Rechnersystems

Country Status (5)

Country Link
US (1) US6629270B1 (de)
EP (1) EP1072977B1 (de)
JP (1) JP4422304B2 (de)
KR (1) KR100544805B1 (de)
DE (1) DE69911000T2 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6934871B2 (en) * 2001-05-17 2005-08-23 Lsi Logic Corporation Programmable counters for setting bus arbitration delays involves counting clock cycles equal to a count number loaded from a memory
EP1629614A1 (de) * 2003-05-20 2006-03-01 Philips Intellectual Property & Standards GmbH Zeitgesteuertes kommunikationsystem und verfahren zur synchronisation eines zweikanaligen netzes
US7392422B2 (en) * 2003-10-20 2008-06-24 Sony Computer Entertainment America Inc., Violations in a peer-to-peer relay network
US20100050181A1 (en) * 2006-11-29 2010-02-25 Yongmin Zhang Method and System of Group-to-Group Computing
CN116974636B (zh) * 2023-08-03 2024-04-26 上海合芯数字科技有限公司 多路互联系统及其总线接口初始化方法、装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5295258A (en) * 1989-12-22 1994-03-15 Tandem Computers Incorporated Fault-tolerant computer system with online recovery and reintegration of redundant components
FR2682201B1 (fr) * 1991-10-04 1994-01-14 Aerospatiale Ste Nationale Indle Procede de discrimination temporelle de pannes dans un systeme hierarchise de traitement de donnees, et systeme hierarchise de traitement de donnees adapte a sa mise en óoeuvre.
JP2687860B2 (ja) * 1993-12-28 1997-12-08 日本電気株式会社 分散処理システムにおけるシステム起動または停止統括システム
GB2290891B (en) * 1994-06-29 1999-02-17 Mitsubishi Electric Corp Multiprocessor system
US5687308A (en) * 1995-06-07 1997-11-11 Tandem Computers Incorporated Method to improve tolerance of non-homogeneous power outages
US5694542A (en) * 1995-11-24 1997-12-02 Fault Tolerant Systems Fts-Computertechnik Ges.M.B. Time-triggered communication control unit and communication method
JPH10200552A (ja) * 1997-01-16 1998-07-31 Yamatake Honeywell Co Ltd イーサネット通信を用いた冗長方法
US5991518A (en) * 1997-01-28 1999-11-23 Tandem Computers Incorporated Method and apparatus for split-brain avoidance in a multi-processor system

Also Published As

Publication number Publication date
JP2001084230A (ja) 2001-03-30
KR100544805B1 (ko) 2006-01-24
JP4422304B2 (ja) 2010-02-24
EP1072977B1 (de) 2003-09-03
KR20010067035A (ko) 2001-07-12
DE69911000D1 (de) 2003-10-09
EP1072977A1 (de) 2001-01-31
US6629270B1 (en) 2003-09-30

Similar Documents

Publication Publication Date Title
DE69132195T2 (de) System für verteilte Mehrfachrechnerkommunikation
DE60314347T2 (de) Betriebsmittelverwaltungsgerät
DE69931473T2 (de) Eingang/ausgang scanner für ein steuersystem mit gleichrangiger ermittlung
DE19728726B4 (de) Robotercontroller und dessen Steuerverfahren
DE69022709T2 (de) Synchronisationsbefehl für Mehrprozessornetz.
DE69129960T2 (de) System zur Gestaltung eines geteilten Speichers
DE4208924A1 (de) Verfahren zur kommunikation zwischen prozessoren und parallelverarbeitungscomputer hierfuer
DE69708933T2 (de) Adressenuebersetzung in rechnerbusbrueckegeraeten
DE3301628A1 (de) Schaltungsanordnung fuer den datenaustausch zwischen zwei rechnern
DE19900245A1 (de) Vorrichtung und Verfahren zum Senden und Empfangen von USB-Isochrondaten
DE3909948A1 (de) Mikrocomputersystem mit mehrfachbus und buszuteilung
DE3508291A1 (de) Realzeit-datenverarbeitungssystem
DE68920929T2 (de) Zeitgeberkanal mit mehreren Zeitgeberreferenzmerkmalen.
DE69130946T2 (de) Verfahren zur ausschliesslichen steuerung für einen gemeinsamen speicher
DE69911000T2 (de) Vorrichtung und Verfahren zur Initialisierung eines verteilten Rechnersystems
DE60314641T2 (de) Verfahren, system und programm zur konfiguration von teilnehmern auf einem bus fürein-/ausgabeoperationen
DE69232645T2 (de) Kommunikationsgerät
DE69031361T2 (de) Taktsignalgeneratorsystem
DE69424648T2 (de) Steuerungsschema von atomaren Operationen
DE2720842B2 (de) Datenübertragungssystem
DE69406571T2 (de) Verfahren zur Überprüfung des eindwandfreien Ablaufs eines Mehrfaden-Computerprogramms
DE19905541A1 (de) Verfahren zum Steuern des Speicherzugriffs in einer Maschine mit einem Speicher mit ungleichmäßigem Zugriff und Maschine zur Ausführung eines solchen Verfahrens
DE69323662T2 (de) Verfahren zur Bestimmung von Geräten, die die Übertragung von Datensignalen auf einem Bus anfordern
DE69131527T2 (de) Datenübertragungssystem und -Verfahren
EP1642423A1 (de) Anordnung und verfahren zur verwaltung eines speichers

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: FREESCALE SEMICONDUCTOR, INC., AUSTIN, TEX., US

8339 Ceased/non-payment of the annual fee