WO2000043857A1 - Optimierung der nutzdatenrate in einem verteilten zeitgesteuerten multicluster-echtzeitsystem - Google Patents

Optimierung der nutzdatenrate in einem verteilten zeitgesteuerten multicluster-echtzeitsystem Download PDF

Info

Publication number
WO2000043857A1
WO2000043857A1 PCT/AT2000/000011 AT0000011W WO0043857A1 WO 2000043857 A1 WO2000043857 A1 WO 2000043857A1 AT 0000011 W AT0000011 W AT 0000011W WO 0043857 A1 WO0043857 A1 WO 0043857A1
Authority
WO
Grant status
Application
Patent type
Prior art keywords
time
node
global
slave
communication
Prior art date
Application number
PCT/AT2000/000011
Other languages
English (en)
French (fr)
Inventor
Hermann Kopetz
Georg Kopetz
Original Assignee
Fts Computertechnik Ges.Mbh
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

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 – G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock

Abstract

Ein Verfahren zum Aufbau einer globalen Zeit zwischen Clustern eines verteilten Echtzeit-Computersystems, wobei eine Vielzahl von Knoten in ein oder mehrere Cluster strukturiert sind, jedes Cluster über ein eigenes Kommunikationssystem verfügt und in jedem System mindestens ein Knoten, der Time-Start-up-Knoten (116, 114, 115), direkt oder transitiv Zugriff auf eine globale externe Zeit hat. Dazu sind in den Zeit-Slave-Clustern je ein oder mehrere Time-Start-up-Knoten (114) vorhanden, welche direkt oder transitiv Zugriff auf die globale Zeit haben und vor dem Einschalten eines Slavekommunikationskontrollers zum noch nicht synchronisierten Zeit-Slave-Cluster der zukünftige globale Zeitpunkt des Einschaltens in ein Time-Start-up-Register des Slavekommunikationskontrollers eingetragen wird und dieser unmittelbar nach dem zum festgelegten Zeitpunkt erfolgten Einschalten diese globale Zeit in dem Zeitregister weiterzählt und die Start-up-Prozedur des Zeit-Slave-Clusters mit dieser globalen Zeit realisiert.

Description

OPTIMIERUNG DER NUTZDATENRATE IN EINEM VERTEILTEN ZEITGESTEUERTEN

MULTICLUSTER-ECHTZEITSYSTEM

Die Erfindung bezieht sich auf ein Verfahren zum Aufbau einer globalen Zeit zwischen Clustern eines verteilten Echtzeit-Computersystems, wobei eine Vielzahl von Knoten in ein oder mehrere Cluster strukturiert sind, jedes Cluster über ein eigenes Kommunikationssystem verfügt und in jedem System mindestens ein Knoten, der Time-Start-up Knoten, direkt oder transitiv Zugriff auf eine globale externe Zeit hat,

Die technologischen Fortschritte auf dem Gebiet der Halbleitertechnik ermöglichen es, ein Transducerelement zur Messung einer physikalischen Größe (z. B. Temperatur), einen Microcontroller und einen Kommunikationscontroller auf einem einzigen Chip zu integrieren und damit einen kompakten Transducerknoten zu realisieren. In einem verteilten Echtzeitsystem müssen diese Transducerknoten über ein Echtzeitkommunikationssystem, z. B. einem Feldbus, mit anderen Transducerknoten und Verarbeitungsknoten verbunden werden, um Beobachtungen auszutauschen. Eine Beobachtung ist ein atomares Tripel, bestehend aus dem Zeitpunkt der Beobachtung, dem Namen der beobachteten Zustandsgröße (RT-entity), und den Wert der Beobachtung (Kopetz, H. 1997, Real-Time Systems, Design Principles for Distributed Embedded Applications; ISBN: 0-7923-9894-7 Boston, Kluwer Academic Publishers, im folgenden zitiert mit "Kopetz", S. 99). Um einen Informationsaustausch über eine Schnittstelle zwischen Subsystemen realisieren zu können müssen in allen Subsystemen eine global synchronisierte Zeit und ein gemeinsamer Namensraum für RT-entities aufgebaut werden und die gleichen Codierungsvorschriften bzw. Decodierungsvorschriften für die zu übertragenden Werte angewendet werden.

Bestehende Systeme übertragen die Zeit entweder explizit mit den Daten, was zusätzliche Bandbreite beansprucht, oder übernehmen die Zeit implizit aus dem Empfangszeitpunkt der Daten, wobei jedoch der Jitter des Kommunikationssystems den Zeitpunkt der Datenerfassung ungenau werden lässt. Bei einigen technischen Anwendungen ist es erforderlich, räumlich verteilte Daten zu exakt gleichen Zeitpunkten zu messen und die Messergebnisse möglichst rasch an einen Rechnerknoten zur Auswertung zu übertragen. Mit dem bisher bekannten Verfahren lässt sich dies jedoch nur mit sehr hohem technischem Aufwand erreichen. Eine Aufgabe der Erfindung besteht darin, in einem verteilten Multicluster-Echtzeitsystem eine globale Zeit, die mehrere Cluster umfassen soll, aufzubauen und unter Nutzung dieser globalen Zeit die oben beschriebenen Unzulänglichkeiten nach dem Stand der Technik zu reduzieren.

Die Aufgabe lässt sich mit einem Verfahren der eingangs genannten Art erreichen, bei welchem erfindungsgemäß in den Zeit-Slave-Clustern je ein oder mehrere Time-Start-up-Knoten vorhanden sind, wobei jeder Time-Start-up-Knoten ein Gateway-Knoten mit einem Kommunikationsinterface zu einem Zeitmaster und einem Slavekommunikationskontroller zu Zeit-Slave- Clustern ist, jeder Time-Start-up-Knoten direkt oder transitiv Zugriff auf die globale Zeit hat, und der Kaltstart eines Zeit-Slave-Clusters durch einen bereits global synchronisierten Time- Start-up-Knoten dadurch vollzogen wird, dass vor dem Einschalten des SlavekommunikationskontroUers zum noch nicht synchronisierten Zeit-Slave-Cluster der zukünftige globale Zeitpunkt des Einschaltens in das Time-Startup-Register des SlavekommunikationskontroUers eingetragen wird und dieser Slavekommunikationskontroller unmittelbar nach dem zum festgelegten Zeitpunkt erfolgten Einschalten diese globale Zeit in dem Zeitregister weiterzählt und die Start-Up-Prozedur des Zeit-Slave-Clusters mit dieser globalen Zeit realisiert.

Weitere zweckmäßige Ausführungen und Varianten der Erfindung sind in den abhängigen Unteransprüchen gekennzeichnet.

Das vorab beschriebene Ziel und andere neue Eigenschaften der vorliegenden Erfindung werden anhand eines konkreten Beispiels in der Zeichnung erläutert. In dieser zeigen:

Fig. 1 die Struktur eines verteilten Computersystems, bestehend aus einem Verarbeitungs- cluster und zwei Transducercluster,

Fig. 2 zwei Transducerknoten mit jeweils drei Interfacefiles,

Fig. 3 die Struktur eines Interfaceflies,

Fig. 4 den Aufbau einer Multipartnerrunde und

Fig. 5 die Struktur eines Time-startup-knotenrechners.

Im folgenden Abschnitt wird eine mögliche Realisierung des neuen Verfahrens gezeigt. Die Objekte in den Abbildungen sind so nummeriert, dass die erste der dreistelligen Objektziffern immer die Bildnummer angibt. Eine in Klammer gesetzte Nummer weist auf das gleiche Objekt in einer anderen Abbildung hin. Fig. 1 zeigt die Struktur eines verteilten Echtzeitsystems, bestehend aus zwei Knotenarten, den Verarbeitungsknoten 111 bis 115, dargestellt durch Rechtecke, und den Transducerknoten 121, dargestellt durch Kreise. Die Verarbeitungsknoten sind leistungsfähige Knotenrechner, deren Aufbau am Beispiel des Knotenrechners 114 in Fig. 5 dargestellt ist. Die Transducerknoten 121 sind low-cost Einchip-Microcomputer von vergleichsweise geringer Leistungsfähigkeit die über einen Feldbus 101 bzw. 102 verbunden sind. Um Kosten für einen externen Oszillator zu sparen, kann der Oszillator eines Transducerknoten direkt im Silizium realisiert sein und muss über keinen stabilen Gang verfügen. Ein solcher on-chip Oszillator kann sehr ungenau sein und muss daher von einem Zeitmaster periodisch resynchronisiert werden. Ohne Synchronisation durch einen Master könnte ein solcher Transducerknoten nicht einmal ein einfaches UART Protokoll ausführen.

Die Verarbeitungsknoten 111, 112, 113, 114, und 115 sind über einen leistungsfähigen logischen Echtzeitbus 110, der zum Beispiel mittels des TTP/C Protokolls (siehe Kopetz, S. 175) gesteuert werden kann, verbunden und bilden somit ein Cluster des Multiclustersystems, das eine globale Zeitbasis verteilt und fehlertolerant aufbauen kann. Der logische Echtzeitbus kann physikalisch als Bus, Ring oder als Stern ausgebildet sein. Die Verarbeitungsknoten 111, 114, und 115 sind Time-startup-knoten. Der Time-startup-knoten 111 kann gegebenenfalls mit einem externen Zeitmaster 116 verbunden sein. Der Time-startup-knoten 114 ist der Master des einfachen Transducerbus 101, der z. B. mittels des zeitgesteuerten TTP/A Protokolls (Kopetz, S. 185) gesteuert wird. Der Time-startup-knoten 115 ist der Master des Transducerbus 102.

Fig. 2 stellt einen Ausschnitt aus Fig. 1 genauer dar. Die beiden Transducerknoten 210 und 220 sind über den Feldbus 201 miteinander verbunden. Der globale Namensraum, der für die Kommunikation zwischen Subsystemen erforderlich ist, wird von einem clusterweiten verteilten In- terfacefilesystem (Interfacefilesystem) aufgebaut. Das Interfacefilesystem besteht aus einer Anzahl von Files, die in den Transducerknoten eines Clusters gespeichert sind. Der Transducerknoten 210 beinhaltet die Interfacefiles 211, 212 und 213. Der Transducerknoten 220 beinhaltet die Interfacefiles 221, 222 und 223. Der Prozessor eines Transducerknotens schreibt seine für die Kommunikation vorgesehenen Daten in den vereinbarten Satz eines knotenlokalen Files des Interfacefilesystem. Das zeitgesteuerte Kommunikationssystem liest diese Daten aus den knotenlokalen Files, bzw. schreibt sie in die knotenlokalen Files des Interfacefilesystem.

Fig. 3 zeigt eine mögliche Struktur eines Files des Interfacefilesystem. Im Beispiel der Fig. 3 wird ein indexsequentieller Fileaufbau mit konstanter Datensatzlänge dargestellt. Jeder Datensatz 310 hat als letztes Feld ein horizontales Checkfeld 311, das als Inhalt z. B. das Ergebnis einer XOR Verknüpfung oder einer CRC Berechnung über alle vorangegangenen Datenfelder des Satzes enthält. Dabei soll das Checkfeld 311 auch als Teil einer Nachricht übertragen werden, um beim Empfänger Fehler in der Datenübertragung erkennen zu können. Die Verwendung desgleichen Checkfeldes 311 für die Datenspeicherung im Interfacefilesystem und für die Datenübertragung im Kommunikationssystem hilft Rechenzeit einzusparen. Der letzte Satz eines Files des Interfacefilesystem ist ein vertikaler Checksatz 390, der als Inhalt z. B. das Ergebnis einer XOR Verknüpfung oder einer CRC Berechnung über alle vorangegangenen Sätze enthält. Somit ist es möglich, einen Bitfehler in einem File des Interfacefilesystem durch Überprüfung der Checkfelder bzw. des Checksatzes nach bekannten Methoden zu erkennen und zu korrigieren.

Ein Interfacefile kann beschrieben, gelesen und/oder ausgeführt werden. Die Art der Fileoperation wird durch einen Operationscode (Op-Code) festgelegt. Es gibt drei verschiedene Fileoperationen: read, write, und execute.

Jedes File des Interfacefilesystems hat einen eindeutigen knotenlokalen Filenamen. Wenn in verschiedenen Knoten der gleiche Filename verwendet wird, so bedeuted dies, dass diese Files zusammengehören und ein verteiltes Filesystem bilden. Ein Satz im Interfacefilesystem kann durch folgende Adresse innerhalb eines Clusters angesprochen werden:

<Filename><Knotenname><Satznummer>

Durch Lese- und Schreiboperationen mit der Adresse eines Interfacefilesystem Satzes lässt sich ein Satz im Interfacefilesystem lesen und schreiben. Wenn der Op-Code "ausführen" angibt, so wird der File als ausführbarer Programmmodul (z. B. ein JAVA Applet) interpretiert. Die Implementierung muss sicherstellen, dass die Summe der Teiloperationen der Schreiboperation (z. B. Ändern des Checkfeldes und des Checksatzes) atomar ausgeführt wird. Ein ausgewähltes File des Interfacefilesystems bildet den Endpunkt der Kommunikation mit einem Transducerknoten. Die innerhalb eines Clusters ausgetauschten Daten werden aus dem Interfacefilesystem gelesen bzw. in das Interfacefilesystem geschrieben.

In einem zeitgesteuerten Protokoll werden Echtzeitdaten in Runden übertragen (Fig. 4). z. B. beginnt im zeitgesteuerten Protokoll TTP/A (Kopetz, S. 185) jede Runde mit einem Frame 410, der Synchronisationsinformation und den Rundennamen enthält, aber auch Daten enthalten kann. Dieser erste Frame wird "Fireworksframe" genannt. Es ist eine wesentliche Eigenschaft dieser Erfindung, dass den periodisch wiederkehrenden bekannten Sende- und Empfangszeitpunkten der Echtzeitdaten in einer Runde a priori die Fileoperation und die Adressen des Interfacefilesystem derart zugewiesen werden, dass aus den Zeitpunkten der Datenübertragung die Art und Adresse der zu tätigenden Fileoperation abgeleitet werden kann. Wenn die Fileope- ration ausführen angibt, so muss in dem adressierten File ein ausführbarer Programmmodul vorhanden sein. In diesem Fall können die in der Runde übertragenen Daten die Parameter der Ausführung darstellen. Durch die a priori Spezifikation der zu einem Zeitpunkt durchzuführenden Fileoperationen und Fileadressen erspart man sich die Angabe der Adresse der Echtzeitdaten während der Übertragung. Da viele Echtzeitdaten oft sehr kompakt sind, z. B. kann eine binäre Schalterstellung in ein einziges Bit codiert werden, ist diese Verkürzung der Echtzeitnachrichten (Wegfall der Adresse) von großer wirtschaftlicher Bedeutung.

Die a priori Zuordnung der Adressen zu den Echtzeitdaten einer Runde erfolgt in einem speziellen verteilten System des Interfacefilesystems, den RODL (Round Descriptor List) Files. Jeder Transducerknoten, der an einer Runde teilnimmt, muss über ein lokales RODL File mit dem Rundennamen verfügen.

Ein Satz eines RODL Files kann folgende Struktur haben:

<SteUungsidentifikation><Op-code><Filename><Länge><Satznummer im lokalen Interfacefilesystem>

Die Stellungsidentifikation spezifiziert direkt oder indirekt, an welcher zeitlichen Stelle dieser Runde ein Frame zu finden ist. Der Op-code gibt an, welche Operation (read, write, execute) auszuführen ist. Die Länge gibt an, wie lange der Frame ist. Die Satznummer gibt an, welcher Satz des ausgewählten lokalen Files angesprochen wird.

Fig. 4 zeigt den Aufbau einer Multipartner Runde. Der Pfeil 400 zeigt das Fortschreiten der Zeit. Der Zeitpunkt 411, zu dem der aktive Master 114 die Runde mit einem Fireworksframe 410 beginnt, ist gleichzeitig das Synchronisationssignal für alle Transducerknoten 121. Das Fireworksframe 410 enthält neben anderer Information den Namen des verteilten RODL Files, der in dieser Runde zur Anwendung gelangt. Dieser ausgewählte RODL File wird im folgenden als aktiver RODL File dieser Runde bezeichnet. Nach dem Fireworksframe 410 und einem definierten Interframegap 419 beginnt zum Zeitpunkt 421 der a priori im aktiven RODL File spezifizierte Knoten mit dem Senden seines Frames 420. Alle Knoten, die in ihrem aktiven RODL File angegeben haben dass der zum Zeitpunkt 421 übertragene Frame 420 lokal zu empfangen ist, schreiben diese Nachricht 420 in die aus dem aktiven RODL File entnommene Satzadresse ihres Interfacefilesystem. Entsprechend dem Inhalt des aktiven RODL Files beginnt dann der zum Sendezeitpunkt 431 bestimmte Knoten nach einem weiteren Interframegap 429 mit dem Senden des Frame 430 und anschließend, wiederum nach einem Interfacegap 439, der zum Sendezeitpunkt 441 bestimmte Knoten mit dem Senden des Frame 440. Wenn das aktive RODL File abgearbeitet ist, warten alle Knoten bis der Master das nächste Fireworksframe sendet und damit ein neues RODL File aktiviert. Soll das Lesen und Schreiben von Frames in einem Multiclustersystem synchron zu einem externen Zeitsignal erfolgen zu können, muss der vorhin erwähnte externe Zeitmaster 116 das Cluster 110 extern synchronisieren und der Masterknoten 114 den Feldbus 101, sowie der Masterknoten 115 den Feldbus 102 extern synchronisieren. Die externe Synchronisation wird von einem Time-startup-knoten, wie er in Fig. 5 dargestellt ist, realisiert. Falls kein externer Zeitmaster vorhanden ist (oder wenn er ausfällt), können die Knoten 111, 112, 113, 114 und 115 eine fehlertolerante globale Uhrensynchronisation intern aufbauen.

Der Aufbau einer globalen Zeit innerhalb eines Clusters ist im Europäischen Patent 0 658 257 (H. Kopetz) sowie in den US Patenten 4,866,606 (H. Kopetz) und 5,694,542 (H. Kopetz) beschrieben. Ein Protokoll das die clusterinterne Uhrensynchronisation enthält ist unter dem Namen "Time-Triggered Protokoll (TTP)" bekannt geworden. TTP baut auf einem Verfahren zur fehlertoleranten Uhrensynchronisation auf, wie es in den drei soeben genannten Patenten geoffenbart wurde.

Fig. 5 zeigt den Aufbau eines Time-startup-knotens, z. B. des Knotens 114. Jeder Time- startup-knoten verfügt über ein Interface 502 zum Zeitmaster, der auf Bus 500 sendet und auch Communication Interface genannt wird, über einen autonomen Hostcomputer 510 mit eigener CPU und Speicher, und über einen Kommunikationskontroller 522 zum Zeitslave (der auf Bus 520 empfängt). Das CNI 502 zum Zeitmaster muss über ein globales Zeitregister 504 das die globale Zeit enthält, verfügen. Das CNI zu einem Zeit-Slave-Cluster muss neben einem globalen Zeitregister 524 und einem Controller-ON Register 529 ein Time-Startup-Register 525 enthalten.

Das Time-Startup-Register 525 muss vor dem Einschalten des Kommunikationskontroller 522 vom Hostcomputer 510 mit dem zukünftigen Zeitpunkt geladen werden, zu dem der Kommunikationskontroller 522 zum Zeit-Slave-Cluster mittels des ON-Registers 529 vom Hostcomputer 510 eingeschaltet werden wird. Zu diesem Zweck liest der Hostcomputer 510 die globale Zeit aus dem Zeitregister 504 des Zeitmasters, addiert ein ihm bekanntes Verzögerungsintervall bis zum Einschalten des Kontrollers 522 und legt diesen zukünftigen Einschaltzeitpunkt in das Time-Startup-Register 525. Zum Einschaltzeitpunkt schaltet der Hostcomputer 510 den Kontroller 522 mittels des Controller-ON Register 529 ein. Der Kontroller 522 übernimmt nach dem Einschalten die Zeit des Startup-Registers 525 in das Zeitregister 524 und zählt die nun synchronierte Zeit weiter. Der Kontroller 522 führt mit dieser synchronisierten Zeit in dem Zeitregister 524 die Startup Prozedur des ihm zugeordneten Zeit-Slave-Clusters durch. Wenn der Controller 522 kein Time-Start-up-Register 525 besitzt sondern beim Einschalten die Zeit des Registers 524 mit Null initialisiert, so muss der Hostcomputer 510 den Controller genau zu dem Zeitpunkt einschalten, zu dem die Bitstellen des Zeitmasters im globalen Register 504, die den Bitstellen des Zeitregisters 524 entsprechen, Null sind.

Die Einführung des Time-Start-up-Register 525 führt zu einer signifikanten Reduktion der Start-up Dauer eines Multicluster Echtzeitsystems. Wenn, z. B. für die Zeitdarstellung in dem Register 524 ein 32 Bit-Format mit Mikrosekundengranularität vorgesehen ist, so muss im längsten Fall der Hostcomputer 510 mit dem Einschalten 212 Sekunden warten bis die Nullstellung des Zeitregisters 524 gegeben ist. Durch die Einführung des Time-Start-up-Register 525 wird diese Zeit auf wenige μsec herabgesetzt. Selbst bei einer 16-Bit Zeitdarstellung reduziert sich die Wartezeit beim Einschalten noch um einen Faktor größer als 1000. In vielen technischen Anwendungen ist eine kurze Wiedereinschaltdauer nach einem transienten Fehler von großer sicherheitstechnischer Bedeutung. Das Time-Start-up-Register 525 darf nach dem Einschalten des Controllers 522 nicht initialisiert werden, da sonst der vom Hostcomputer eingetragene Zeitwert verloren ginge.

Der Time-startup-knoten 114, der der Master des Transducerbusses 101 ist, kann Transducerknoten 121, die nur über einen on-chip Oszillator verfügen, durch das Senden eines regulären Bitmusters synchronisieren. Ein Transducerknoten 121 nimmt die Flanken eines solchen regulären Bitmusters auf einem Digitaleingang wahr und zählt die Anzahl der Schwingungen seines lokalen Oszillators zwischen den Flanken, die vom Time-startup-knoten 114 gesendet werden. Auf diese Weise erfährt der Transducerknoten, wie viele lokale Oszillatorschwingungen dem a priori bekannten Zeitintervall zwischen den vom Time-startup-knoten 114 gesendeten Flanken entsprechen.

Im folgenden Abschnitt wird an einem Beispiel gezeigt, wie die Namen und Adressen des beschriebenen Interfacefilesystems in einer 8-bit Architektur eines Microcontrollers effizient codiert werden können:

Fileoperationen: Die ersten beiden Bits eines Bytes

(erlaubt die Codierung der drei Operation read, write, execute)

Filename: Die letzten 6 Bits eines Bytes

(ermöglicht die Unterscheidung von 64 Files)

Opcode + Filename: 1 Byte ( 2 bit Fileoperation, 6 bit Filename)

Knotenname: 1 Byte (ermöglicht die Unterscheidung von 256 Knoten in einem Cluster)

Satznummer: 1 Byte (erlaubt bis zu 256 Sätze pro File) Satzadresse im clu st erweiten Interfacefilesystem 3 Byte (l Byte Filename, 1 Byte Knotenname. 1 Byte Satznummer)

Satzadresse im lokalen Interfacefilesystem 2 Byte (1 Byte Filename, Knotenname entfällt, da implizit gegeben, 1 Byte Satznummer)

RODL Eintrag. 4 Byte (1 Byte Stellungsidentifikation, 1 Byte OpCode und Filename, 1 Byte Länge des Frames. 1 Byte Satzadresse im lokalen Interfacefilesystem)

RODL Ausführung 1 Byte (OpCode und Filenamc)

Satzlänge' 5 Byte (4 Byte Daten, 1 Byte horizontales (.heck Feld)

File Schreiboperation 8 Byte Nachricht

(1 Byte Fileoperation + Filename, 1 Byte Node Name. 1 Byte

Satznummer, 4 Datenbytes. 1 horizontales Check Byte)

Die experimentelle Implementierung des Interfacefilesystem in einem 8-bit Microcontroller hat gezeigt, dass das Interfacefilesystem mit einem Aufwand von ca. 2 kByte Code implementiert werden kann. Diese Codegröße lässt sich selbst in kleinen Ein-Chip Microcontroller unterbringen.

Natürlich lässt sich das Interfacefilesystem auch in einem größeren Computer realisieren, wobei andere, auf die Architektur Rücksicht nehmende Codierungsvorschriften zur Anwendung gelangen werden.

Die Anwendung des hier beschriebenen Verfahrens ist nicht auf das zeitgesteuerte TTP/A Protokoll beschränkt, sondern kann in jedem anderen Kommunikationssystem (z. B. CAN oder ETHERNET), das zeitgesteuert betrieben wird, vorgenommen werden

Claims

PATENTANSPRÜCHE
1. Verfahren zum Aufbau einer globalen Zeit zwischen Clustern eines verteilten Echtzeit- Computersystems, wobei eine Vielzahl von Knoten in ein oder mehrere Cluster strukturiert sind, jedes Cluster über ein eigenes Kommunikationssystem verfügt und in jedem System mindestens ein Knoten, der Time-Start-up Knoten (116, 114, 115), direkt oder transitiv Zugriff auf eine globale externe Zeit hat, dadurch gekennzeichnet, dass in den Zeit-Slave-Clustern je ein oder mehrere Time- Start-up-Knoten (114) vorhanden sind, wobei jeder Time-Start-up-Knoten (114) ein Gateway-Knoten mit einem Kommunikationsinterface (502) zu einem Zeitmaster und einem Slavekommunikationskontroller (522) zu Zeit-Slave-Clustern ist, jeder Time-Start-up- Knoten direkt oder transitiv Zugriff auf die globale Zeit hat, und der Kaltstart eines Zeit- Slave-Clusters durch einen bereits global synchronisierten Time-Start-up-Knoten dadurch vollzogen wird, dass vor dem Einschalten des SlavekommunikationskontroUers zum noch nicht synchronisierten Zeit-Slave-Cluster der zukünftige globale Zeitpunkt des Einschal- tens in das Time-Startup-Register (525) des SlavekommunikationskontroUers (522) eingetragen wird und dieser Slavekommunikationskontroller unmittelbar nach dem zum festgelegten Zeitpunkt erfolgten Einschalten diese globale Zeit in dem Zeitregister (524) weiterzählt und die Start-Up-Prozedur des Zeit-Slave-Clusters mit dieser globalen Zeit realisiert.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der Slavekommunikationskontroller (522) über ein Time-Startup-Register (525) verfügt, in das vor dem Einschalten des Kommunikationskontrollers der zukünftige globale Zeitpunkt des Einschaltens eingetragen werden kann und in dem vom Zeitpunkt des Einschaltens des Kommunikationskontrollers diese globale Zeit weitergezählt und die Start-Up-Prozedur des Zeit-Slave- Clusters mit dieser globalen Zeit realisiert wird.
3. Verfahren zur Übertragung von Daten von/zu einem Interface File System mit einem zeitgesteuerten Kommunikationsprotokoll, das die Kommunikation in einem Cluster eines verteilten Computersystems realisiert, wobei in jedem Cluster eine Vielzahl von Slavekno- ten (121) und ein oder mehrere Masterknoten (114) über einen oder mehrere logische Busse (101) verbunden sind und jeder Knotenrechner über mindestens eine Kommunikati- onskontrolleinheit mit den entsprechenden Anschlüssen an die Busse verfügt und der Zugriff auf die Kommunikationskanäle entsprechend dem Kommunikationsprotokoll, das zeitgesteuert betrieben wird, erfolgt und alle Knoten über eine global, nach Anspruch 1 o- der 2 synchronisierte Zeit verfügen, dadurch gekennzeichnet, dass der für die Kommunikation erforderliche gemeinsame Namensraum durch ein auf die Slaveknoten (121) verteiltes Interfacefilesystem erzeugt wird und die in einer von einem aktiven Masterknoten ausgewählten Kommunikationsrunde auftretenden Fileoperationen und Fileadressen dieses Filesystems a priori der global synchronisierten Zeit derart zugewiesen werden, dass die Sende- und Empfangszeitpunkte eines Knotens die Fileoperationen und die Fileadressen der zu übertragenen Daten bestimmen und die zum festgelegten Zeitpunkt ohne Adressen übertragenen Daten beim Senden direkt von diesen a priori spezifizierten Files gelesen werden, beim Empfangen direkt in diese a priori spezifizierten Files abgelegt werden, und beim Ausführen diese a priori spezifierten Files ausgeführt werden, wobei die übertragenen Daten die Parameter der Ausführung sind.
4. Verfahren nach Anspruch 3 dadurch gekennzeichnet, dass die in den Knoten (121) notwendigen Datenstrukturen, welche die a priori Zuweisung der Fileoperationen und Fileadressen einer Kommunikation zu den Zeitpunkten der Übertragung vornehmen, in dem gleichen verteilten Interface Filesystem (211) abgelegt werden, das die adresslosen Daten speichert.
5. Verfahren nach Anspruch 3 oder 4 dadurch gekennzeichnet, dass der gemeinsame Bezugszeitpunkt für die globale Zeit am Anfang einer Runde durch den Sendezeitpunkt des aktiven Masters (411) bestimmt wird.
6. Verfahren nach einem der Ansprüche 3 bis 5 dadurch gekennzeichnet, dass die Slaveknoten (121) autonom die Driftrate ihrer Oszillatoren durch den a priori bekannten zeitlichen Abstand zwischen chrakterischen Flanken, die vom Master (114) gesendet werden, bestimmen.
7. Verfahren nach einem der Ansprüche 3 bis 6 dadurch gekennzeichnet, dass das Interfacefilesystem als indexsequentielles Filesystem mit konstanter Länge der Sätze (310) organisiert ist und jeder Satz über ein horizontales Checkfeld (311) und jeder File als Ganzes über einen vertikalen Checksatz (390) verfügen, sodass ein Fehler im Interfacefilesystem erkannt und korrigiert werden kann.
8. Verfahren nach einem der Ansprüche 3 bis 7, dadurch gekennzeichnet, dass zum Erkennen von Fehlern in der Datenkommunikation ohne Berechnung eines neuen Checkfeldes das horizontale Checkfeld (3 1 1 ) eines Satzes des Interfacef lesystems gemeinsam mit den Daten des Satzes übertragen wird.
9. Verfahren nach Anspruch 3 bis 8, dadurch gekennzeichnet, dass ein bereits vorhandenes, an sich nicht zeitgesteuertes Übertragungsprotokoll (z. B. CAN oder ETHERNET) zeitgesteuert verwendet wird und mit dem Interfacefilesystem integriert wird.
PCT/AT2000/000011 1999-01-20 2000-01-18 Optimierung der nutzdatenrate in einem verteilten zeitgesteuerten multicluster-echtzeitsystem WO2000043857A1 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
ATA74/99 1999-01-20
AT7499 1999-01-20
AT167499 1999-09-30
ATA1674/99 1999-09-30

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
AU3025900A AU3025900A (en) 1999-01-20 2000-01-18 Optimization of user data rate in a distributed time-controlled multicluster real-time system
DE2000180127 DE10080127D2 (de) 1999-01-20 2000-01-18 Optimierung der Nutzdatenrate in einem verteilten zeitgesteuerten Multicluster-Echtzeitsystem

Publications (1)

Publication Number Publication Date
WO2000043857A1 true true WO2000043857A1 (de) 2000-07-27

Family

ID=25591353

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/AT2000/000011 WO2000043857A1 (de) 1999-01-20 2000-01-18 Optimierung der nutzdatenrate in einem verteilten zeitgesteuerten multicluster-echtzeitsystem

Country Status (2)

Country Link
DE (1) DE10080127D2 (de)
WO (1) WO2000043857A1 (de)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004063913A1 (en) * 2003-01-10 2004-07-29 Coppe/Ufrj - Coordenação Dos Programas De Pós Graduação De Engenharia Da Universidade Federal Do Rio De Janeiro Distributed global clock for clusters of computers
EP1553732A2 (de) * 2003-12-09 2005-07-13 Volkswagen AG Verfahren und Vorrichtung zum Hochfahren eines Knotens eines Kommunikationssystems
WO2008029318A2 (en) * 2006-09-06 2008-03-13 Nxp B.V. Cluster coupler in a time triggered network
WO2008029317A2 (en) * 2006-09-06 2008-03-13 Nxp B.V. Cluster coupler in a time triggered network

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4866606A (en) * 1984-06-22 1989-09-12 Austria Miktosystem International Gmbh Loosely coupled distributed computer system with node synchronization for precision in real time applications
WO1998056135A2 (en) * 1997-06-03 1998-12-10 Abb Research Ltd. Method for providing time synchronization in a network

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4866606A (en) * 1984-06-22 1989-09-12 Austria Miktosystem International Gmbh Loosely coupled distributed computer system with node synchronization for precision in real time applications
WO1998056135A2 (en) * 1997-06-03 1998-12-10 Abb Research Ltd. Method for providing time synchronization in a network

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004063913A1 (en) * 2003-01-10 2004-07-29 Coppe/Ufrj - Coordenação Dos Programas De Pós Graduação De Engenharia Da Universidade Federal Do Rio De Janeiro Distributed global clock for clusters of computers
EP1553732A2 (de) * 2003-12-09 2005-07-13 Volkswagen AG Verfahren und Vorrichtung zum Hochfahren eines Knotens eines Kommunikationssystems
EP1553732B1 (de) * 2003-12-09 2016-10-05 Volkswagen Aktiengesellschaft Verfahren und Vorrichtung zum Hochfahren eines Knotens eines Kommunikationssystems
WO2008029318A2 (en) * 2006-09-06 2008-03-13 Nxp B.V. Cluster coupler in a time triggered network
WO2008029317A2 (en) * 2006-09-06 2008-03-13 Nxp B.V. Cluster coupler in a time triggered network
WO2008029317A3 (en) * 2006-09-06 2008-05-15 Nxp Bv Cluster coupler in a time triggered network
WO2008029318A3 (en) * 2006-09-06 2008-08-21 Nxp Bv Cluster coupler in a time triggered network
US9137042B2 (en) 2006-09-06 2015-09-15 Nxp, B.V. Cluster coupler in a time triggered network

Also Published As

Publication number Publication date Type
DE10080127D2 (de) 2001-04-12 grant

Similar Documents

Publication Publication Date Title
US6049885A (en) Method and apparatus for allowing a remote node to awaken a sleeping node of a network
US5133062A (en) RAM buffer controller for providing simulated first-in-first-out (FIFO) buffers in a random access memory
US6697366B1 (en) Ethernet memory management system and methods for operation thereof
US5463762A (en) I/O subsystem with header and error detection code generation and checking
US4363093A (en) Processor intercommunication system
US4949301A (en) Improved pointer FIFO controller for converting a standard RAM into a simulated dual FIFO by controlling the RAM&#39;s address inputs
US5832310A (en) Serial I/O channel having dependent and synchronous sources of control data and user defined data
US4363094A (en) Communications processor
US5799207A (en) Non-blocking peripheral access architecture having a register configure to indicate a path selection for data transfer between a master, memory, and an I/O device
US5590124A (en) Link and discovery protocol for a ring interconnect architecture
US4785396A (en) Push-pull serial bus coupled to a plurality of devices each having collision detection circuit and arbitration circuit
US7010612B1 (en) Universal serializer/deserializer
US5835719A (en) Apparatus and method for remote wake-up in system having interlinked networks
US4335426A (en) Remote processor initialization in a multi-station peer-to-peer intercommunication system
US5694542A (en) Time-triggered communication control unit and communication method
US5553302A (en) Serial I/O channel having independent and asynchronous facilities with sequence recognition, frame recognition, and frame receiving mechanism for receiving control and user defined data
US5596331A (en) Real-time control sequencer with state matrix logic
US20030120835A1 (en) Single descriptor scatter gather data transfer to or from a host processor
US4396995A (en) Adapter for interfacing between two buses
US20020042844A1 (en) Synchronized sampling on a multiprocessor backplane via a broadcast timestamp
US4591977A (en) Plurality of processors where access to the common memory requires only a single clock interval
US5128945A (en) Packet framing using cyclic redundancy checking
US4332027A (en) Local area contention network data communication system
US20030188054A1 (en) Data transfer apparatus and method
US5511166A (en) Method and apparatus for receive frame sorting in a media access control/host system interface unit

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
REF Corresponds to

Ref document number: 10080127

Country of ref document: DE

Date of ref document: 20010412

Format of ref document f/p: P

122 Ep: pct application non-entry in european phase