VERFAHREN ZUR ENERGIESPARENDEN UND RECHTZEITIGEN ÜBERTRAGUNG VON
EREIGNISNACHRICHTEN
Die Erfindung betrifft ein Verfahren entsprechend dem Obergriff des Anspruchs 1 zur rechtzeitigen, deterministischen und energiesparenden Übertragung von Ereignisnachrich- ten in einem verteilten Echtzeitcomputersystem. Dieses Verfahren kann auch zur rechtzeitigen Übertragung von Ereignisnachrichten innerhalb eines System-on-a-Chip (SoC), der mehrere nahezu autonome Mikro-Komponenten beinhaltet, angewandt werden.
Weiters betrifft die Erfindung ein System-on-a-Chip.
Ein verteiltes fehlertolerantes Echtzeitcomputersystem besteht aus einer Anzahl von Rechnerknoten, die jeweils einen Host-Rechner, einen Kornrnunikationskontroller, ein I/O System zur Prozessperipherie und die notwendige Software (Echtzeitbetriebssystem, Middleware und Applikationssoftware) beinhalten. Wir bezeichnen einen solchen Rechnerknoten als Mikro-Komponente, wenn er als nahezu autonome Einheit auf einem SoC (System-on- Chip) implementiert ist. Die Kornrnunikationskontroller bilden gemeinsam mit ihren Datenverbindungen ein Echtzeitkommunikafionssystem, über welches Zuständsdaten und Ereignisdaten ausgetauscht werden.
Zuständsdaten sind Daten, die über den beobachteten Wert von Zustandsvariablen informieren. Eine Beobachtung einer Zustandsvariablen ist ein unteilbares Tripel
<Name der Zustandsvariable, Wert der Zustandsvariable, Zeitpunkt der Beobachtung>
wie in Kopetz, H. (1997). Real-Time Systems, Design Principles for Distributed Embedded Applications; ISBN: 0-7923-9894-7. Boston. Kluwer Academic Publishers. S. 31 ausführlich beschrieben. Ein Beispiel für ein Zustandsdatenelement ist die gegenwärtige Stellung eines Ventils. Eine Nachricht, die Zustandsinformationen enthält wird als Zustandsnachricht bezeichnet.
Ereignisdaten sind Daten, die über eine Zustandsänderung informieren. Ein Beispiel für ein Ereignisdatenelement ist die Aussage, dass sich die Stellung eines Ventils um 5 Grad geändert hat. Die Ereignisdaten informieren über den Unterschied zwischen dem alten Zustand und dem neuen Zustand. Da der Verlust (oder eine Duplizierung) eines Ereignisdatenelements einen Verlust der Zustandssynchronisation zwischen Sender und Empfänger nach sich zieht, müssen Ereignisdaten vom Empfänger exakt einmal konsumiert werden. Eine
Nachricht, die Ereignisdaten enthält wird als Ereignisnachricht bezeichnet. Wenn sich ein Verfahrensprozess sehr schnell ändert (z.B., wenn in einer Fabrik eine Rohrleitung defekt wird), so können innerhalb eines kurzen Zeitintervalls sehr viele Ereignisnachrichten (A- larmmeldungen) auftreten, was zu einer Überlastung des Kommunikationssystems führen kann. In der Echtzeitdatenverarbeitung ist es daher sinnvoll, zwischen garantierten Ereignisnachrichten und best-effort Ereignisnachrichten zu unterscheiden. Garantierte Ereignisnachrichten müssen innerhalb der gegebenen Fehlerhypothese immer rechtzeitig übertragen werden. Best-effort Ereignisnachrichten können im kritischen Hochlastfall verzögert werden.
Da jede Änderung eines Zustande ein Ereignis darstellt, besteht zwischen Zustandsdaten und Ereignisdaten ein enger Zusammenhang. Auf einer hohen Abstraktionsebene ist es möglich, die eine Übertragungsform, auf die andere abzubilden. Jedoch können sich im. konkreten Anwendungsfall große Unterschiede in der Effizienz der Implementierung zwischen diesen beiden Arten der Datenübertragung geben. . Wenn sich z.B. der Zustand eines Objekts nur sehr selten ändert (z.B. eine Alarmmeldung), so kann die periodische Übertragung von Zustandsdaten zu einer hohen Ineffizienz der Datenübertragung führen. Anderseits bietet die periodische Zustandsdatenübertragung ein hohes Maß an Vorhersehbarkeit und Sicherheit an.
In der vorliegenden Erfindung wird eine Methode geoffenbart, die es ermöglicht, im Hochlastfall die rechtzeitige Übertragung aller garantierten Ereignisnachrichten bei minimalem. Energieverbrauch sicherzustellen.
Dieses Verfahren stellt eine Weiterentwicklung des im Europäischen Patent EP 1370952 veröffentlichten Verfahrens zur Übertragung von Ereignisnachrichten in einem zeitgesteuerten Kommunikationssystem dar. Die Weiterentwicklung besteht darin, dass zwischen garantierten und best-effort Ereignisnachrichten unterschieden wird und die im Normalfall nicht benötigte Bandbreite für die Übertragung von garantierten Ereignisnachrichten zum Zwecke der Energieeinsparung frei gelassen wird oder zur Übertragung von best-effort Nachrichten zur Verfügung gestellt wird.
Es ist das Ziel der vorliegenden Erfindung, die Rechtzeitigkeit und den Determinismus und minimalen Energieverbrauch bei der Übertragung von Ereignisnachrichten in einem verteilten zeitgesteuerten Echtzeitcomputersystem zu garantieren. Dieses Ziel wird mit einem Verfahren zur garantierten und energiesparenden Übertragung von Ereignisnachrichten in einem verteilten Computersystem, bestehend aus einer Vielzahl von Knotenrechnern, die über ein zeitgesteuertes Kommunikationssystem miteinander verbunden sind und wo die Knotenrechner eine gemeinsame Zeitbasis von bekannter Präzision aufbauen und wo die
Knotenrechner periodisch zu a priori festgelegten Zeitpunkten Nachrichten austauschen können, wobei erfindungsgemäß eine garantierte Ereignisnachricht in einer sporadischen zeitgesteuerten Nachricht (SZN) gesendet wird, wobei eine solche eine Ereignisnachricht transportierende sporadischen zeitgesteuerten Nachricht nur dann gesendet wird, wenn der Inhalt dieser sporadischen zeitgesteuerten Nachricht seit dem letzten vergangenen Sendezeitpunkt geändert wurde und wo der Empfänger den Inhalt einer ankommenden sporadischen zeitgesteuerten Nachricht in einer Warteschlange speichert, bis der empfangende Prozess diesen Inhalt exakt einmal konsumierend gelesen hat.
Es wird also ein Kommunikationssystem aufgebaut, das für jede garantierte Ereignisnachricht einen periodisch wiederkehrender exklusiven Sendeslot reserviert, der jedoch nur verwendet wird, wenn in der vergangenen Periode eine neue Ereignisnachricht aufgetreten ist. Die im Normalfall nicht benötigte Bandbreite kann zum Zwecke der Energieeinsparung frei gelassen werden oder zur Übertragung von best-effort Ereignisnachrichten verwendet werden. Ein solches deterministische Kommunikationssystem kann auch zur Verbindung von Mikrocomponenten auf einem System-on-a-Chip (SoC) verwendet werden. In einem solchen SoC System ist die Minirnierung des Energieverbrauchs von besonderem Interesse.
Das vorab beschriebene Ziel und andere neue Eigenschaften der vorliegenden Erfindung werden in den angeführten Abbildungen erläutert.
Fig. 1 zeigt die Struktur eines verteilten Echtzeitcomputersystems.
Fig.2 zeigt den Aufbau eines Rechnerknotens eines solchen verteilten Computersystems.
Fig. 3 zeigt ein mögliches Format zur Darstellung der Zeit.
Fig.4 zeigt einen SoC (System on a Chip) mit vier Mikrokomponenten.
Im folgenden Abschnitt wird eine der vielen möglichen konkreten Realisierungen des neuen Verfahrens am Beispiel eines verteilten Echtzeitsystems mit vier Rechnerknoten, die über ein Echtzeitkommunikationssystem verbunden sind, gezeigt. Über ein solches Echtzeitkommu- nikationssystem müssen im. allgemeinen Fall Zustandsdaten und Ereignisdaten ausgetauscht werden.
Die Erfindung wird nun an Hand der Abbildungen erklärt.
Fig. 1 zeigt ein verteiltes Computersystem, das aus vier Knotenrechnern 111, 112, 113, und 114 besteht, die über einen zeitgesteuerten Kommunikationskanal 110 mit dem Kommunikationssystem 100 verbunden sind. Dieses zeitgesteuerte Kommunikationssystem kann Nachrichten entsprechend einem Zeitplan austauschen, wobei die Nachrichten sowohl Zustands- daten wie auch Ereignisdaten (oder beide) beinhalten können. Das Kommunikationssystem 100 kann als Datenbus oder mittels eines zentralen Switches, der Punkt-zu-Punkt Verbindungen zu den Knotenrechnern 111, 112, 113, und 114 unterhält, ausgeführt sein. Wenn die Zuverlässigkeit eines einkanaligen Kommunikationssystems 100 nicht ausreicht, so kann ein zwei- oder mehrkanaliges Kommunikationssystem zum Einsatz kommen. Beispiele für solche Kommunikationssysteme finden sich in EP 1 370952 und AT 411 498.
Im Rahmen der Erfindung wird zwischen den folgenden drei Kategorien von Nachrichten unterschieden: (i) Zustandsnachrichten, die periodisch gesendet werden, die Zustandsin- formationen enthalten und deren Transport innerhalb der gegebenen Fehlerhypothese zeitlich garantiert .wird, (ii) garantierte Ereignisnachrichten, d.s. Nachrichten die Ereignisinformationen enthalten und deren Transport innerhalb der gegebenen Fehlerhypothese zeitlich garantiert wird, und (iii) best-effort Ereignisnachrichten, d.s. Nachrichten die Ereignisinformationen enthalten und deren rechtzeitiger Transport im Hochlastfall nicht garantiert werden kann. Die Nachrichtenkategorie einer konkreten Nachricht wird durch ein spezielle Kennung (z.B. ein Kennungsfeld) im Header jeder Nachricht spezifiziert. Dabei dürfen nur die periodischen Zustandsnachrichten zur Uhrensynchronisation herangezogen werden US 5,694,542. Eine genaue Beschreibung der Eigenschaften von Ereignis- und Zustandnachrichten findet sich in Kopetz, H. (1997). Real-Time Systems, Design Principles for Distributed Embedded Applications; ISBN: 0-7923-9894-7. Boston. Kluwer Academic Publi- shers., S.32.
Fig. 2 zeigt den Aufbau eines Knotenrechners 111, der aus den folgenden Subsystemen besteht: dem zeitgesteuerten Kommunikationskontroller 211 mit der Verbindung 110 zum zeitgesteuerten Kommunikationssystem 100, der Knotenhardware mit dem Echtzeitbetriebssystem 212, der Middleware Software 213, der Anwendungssoftware 214 und einem Kontroller 215 mit der Leitung 220 zu den entfernten Transducern im Verfahrensprozess. Der zeitgesteuerte Kommunikationskontroller 211 sendet periodisch Nachrichten aus seinem Nachrichtenspeicher gemäß einem globalen Zeitplan, der den konfliktfreien Transport aller Nachrichten sicherstellt. Ein solches zeitgesteuerte Kommunikationssystem ist in EP 0 658257 und US 5,887,143 beschrieben.
Um die Erstellung des Zeitplans durch einen globalen Scheduler zu vereinfachen kann festgelegt werden, dass alle Perioden des Kommunikationssystems 100 in einem harmoni-
schen Verhältnis zu* Sekunde stehen müssen, d.h. entweder 1 Sekunde, 1/2 Sekunde, 1/4 Sekunde usw. oder 2 Sekunden, 4 Sekunden, 8 Sekunden usw.. Eine Periode kann dann durch die Periodendauer und die Periodenphase, d.i. das Offset des Sendebeginns vom Periodenbeginn, charakterisiert werden. Wenn in einem System nur sechzehn unterschiedliche Perioden angeboten werden, so lässt sich die Periodendauer in einem 4 Bit Feld darstellen. Wenn für die Darstellung der Periodenphase 12 Bit ausreichen, so kann jede Periode eines solchen Systems in einem 2 Byte Wort, der Perioden ID, kodiert werden. Diese Perioden ID kann im Header jeder zeitgesteuerten Nachricht gesendet werden. Wenn in einer konkreten Anwendung dynamisch die Periodendauer geändert werden soll, so lässt sich eine solche Änderung durch die dynamische Wahl einer neuen konfliktfreien Perioden ID im Header einer Nachricht realisieren. Die Konfliktfreiheit dieser neuen Perioden ID muss vor dem Senden durch einen on-line Nachrichtenscheduler geprüft werden.
Wenn das Ergebnis einer Mikrokomponente erst zu einem späten Zeitpunkt benötigt wird, so kann die Verarbeitungsgeschwindigkeit der Mikrokomponente durch Einflussnahme auf die Hardware während des Betriebs verlangsamt werden, um deren Energieverbrauch zu senken. Der on-line Nachrichtenscheduler kann daher eine optimale Nachrichtenschedule unter Berücksichtigung des erwarteten Ergebniszeitpunkts, des Energieverbrauchs und der globalen Kommunikationslast errechnen und in der Folge eine Nachricht an die Hardware der Mikrokomponente senden, um die Verarbeitungsgeschwindigkeit und damit den Energieverbrauch optimal einzustellen.
Da Nachrichten, die verschiedenen Perioden angehören unabhängig und unbeeinflusst voneinander übertragen werden, können diese Nachrichten an unabhängige Eingangsports eines Knotenrechners 111 gesendet werden. Mit diesem Verfahren ist es somit möglich, über eine einzige physikalische Leitung 110 mehrere unabhängige Empfangsports einer Komponente anzusteuern.
Die Middleware Software 213 kopiert eine ausgehende Ereignisinformation deren zeitgerechte Übertragung garantiert werden muss von der Anwendungssoftware 214 in den entsprechenden Nachrichtenspeicher des zeitgesteuerten Kommunikationskontrollers 211. Erfindungsgemäß wird eine solche zeitgesteuerte Nachricht, die garantierte Ereignisinformationen enthält, vom Kommunikationskontroller 214 nur gesendet, wenn seit dem letzten. Sendezeitpunkt dieser zeitgesteuerten Nachricht der Inhalt des Nachrichtenspeichers verändert wurde. Eine solche zeitgesteuerte Nachricht, die nicht regelmäßig, sondern nur sporadisch gesendet wird, bezeichnen wir als sporadische zeitgesteuerte Nachricht (SZN). Wenn ein Kommunikationssystem, wie z.B. AT 411 498 , auch best-effort Ereignisnachrich-
ten überträgt, so kann die von sporadischen zeitgesteuerten Nachrichten nicht genutzte Bandbreite zur Übertragung von best-eff ort Ereignisnachrichten genutzt werden.
Die Middleware Software 213 kann aus einer eintreffenden zeitgesteuerten Nachricht die Ereignisinformationen und Zustandsinformationen getrennt auslesen und getrennt behandeln und an die Anwendungssoftware 214 getrennt weiterreichen. Ereignisinformationen werden in einer Warteschlange der Middlewaresoftware 213 gespeichert und beim Lesen durch die Anwendersoftware 214 konsumiert. Zustandsinformation werden in einem Dual- Ported (DP) Speicher der Middlewaresoftware 213 abgelegt. Eine neue Version der Zustandsinformation überschreibt die ältere Version. Das Lesen von Zustandsinformation durch die Anwendersoftware 214 erfolgt nicht konsumierend.
Fig. 3 zeigt den Aufbau eines möglichen Zeitformats in einem zeitgesteuerten System. Die Einheit der Zeitdarstellung orientiert sich an dem Sekundenstandard, wobei eine Darstellung im binären Zahlensystem gewählt wird um einen Zeitpunkt zu identifizieren. Jedes Bit dieser Darstellung bezieht sich auf eine positive oder negative Zweierpotenz der Sekunde. Als Start der Epoche ist der Start der GPS Zeit definiert worden. Die Darstellung von Perioden (Periodendauer und Periodenphase) wird wesentlich vereinfacht, wenn nur harmonische Perioden (siehe oben) der Sekunde zugelassen werden. Es genügt dann die Markierung eines Bits des Zeitformats der Fig. 3, um die Dauer einer Periode festzulegen (Periodenbit). Die Phase der Periode wird durch das Bitmuster rechts vom Periodenbit spezifiziert.
Fig. 4 zeigt den Aufbau eines SoC (System-on-a-Chip) 400, der vier Mikro-Komponenten entsprechend Fig. 1 beinhaltet. Ein Kommunikationskanal 410 stellt die Verbindung zu einem externen Kommunikationssystem dar. Die Kanäle 420 und 421 verbinden den SoC mit den entfernten Transducern im Verfahrensprozess. In einem SoC hat der interne Kommunikationskanal 100 zwischen den Mikro-Komponenten eine sehr hohe Bandbreite. Es besteht daher die Möglichkeit, für jede Ereignisnachricht eine dedizierte sporadische zeitgesteuerte Nachricht (SZN) a priori zu reservieren und damit den konfliktfreien Transport aller Ereignisnachrichten zu garantieren. Da eine SZN nicht gesendet wird, wenn innerhalb der letzen Periode keine neue Ereignisinformationen produziert wurden, wird beim NichtAuftreten von Ereignissen im Chip keine Energie für die Übertragung von Nachrichten verbraucht. Diese Einsparung von Energie ist vor allem bei portablen Geräten von großem wirtschaftlichem Vorteil.
Ih einem SoC kann es verschiedene Arten von Mikro-Komponenten geben. Eine Mikrokom- ponente kann aus einem konventionellen Computer mit CPU, Speicher, Echtzeitbetriebssys-
tem und Anwendersoftware bestehen, eine andere wird von einem dediziertem Hardwareblock, z.B. einem Signalprozessor oder einer fest verdrahteten State. machine gebildet. Alle Komponenten müssen das gewählte Protokoll zum Senden und Empfangen von zeitgesteuerten Nachrichten unterstützen.
Der wesentliche Vorteil der geoffenbarten Erfindung gegenüber der in der EP 1 370952 gezeigten Erfindung ergibt sich aus der Energieeinsparung bei der Übertragung von garantierten Ereignisnachrichten auf einem SoC. Da der Energieverbrauch eines SoCs-- vor allem bei portablen Geräten— eine sehr kritische Größe ist, ist diese Erfindung von großem wirtschaftlichem Nutzen.