-
Die Erfindung betrifft eine Vorrichtung und Verfahren zur gerätetechnischen Erkennung von Verletzungen von zyklischen Echtzeitbedingungen in Datenverarbeitungseinheiten und -systemen.
-
Es ist bekannt, dass bereits in den 1960er Jahren in Datenverarbeitungsanlagen wie z. B. dem Großrechner TR4 [1] den Datenwerten weitere Kennungen hinzugefügt wurden, die
- • den Datentyp und damit das Darstellungsformat des Datenwerts spezifizierten und teilweise
- • weitere Bits, die eine Integritätsprüfung des gesamten Datenelements erlaubten.
-
Basierend auf der expliziten, hardwareverständlichen und -prüfbaren Spezifikation des Datentyps innerhalb des Datenworts selbst werden entsprechende Architekturen als Datentyparchitekturen bezeichnet.
-
Weiterhin ist bekannt, dass in Befähigungsarchitekturen dem Datenelement eine weitere Kennung hinzugefügt wird, die die Zugriffsrechte auf das betreffende Datenelement spezifiziert. Gute Beispiele moderner Befähigungsarchitekturen sind z.B. lowRISC [2] und SAFE [3].
-
Weiterhin ist bekannt, dass in sicherheitsgerichteten Feldbussystemen wie z.B. PROFIsafe (IEC 61784-3-3) und CIP Safety (IEC 61784-3-2) Zeitüberwachungen zum Einsatz kommen, die die zeitgerechte Übermittlung von Daten zwischen den Systemkomponenten überwachen. Dazu können z. B. Überwachungszeitgeber zum Einsatz kommen, die nach einer vordefinierten Zeitdauer eine Unterbrechung generieren oder einen Neustart einleiten können.
-
Überwachungszeitgeber mit Zeitfenster, englisch „windowed watchdogs“, kommen in der Technik zum Einsatz, um die Verletzung von Echtzeitbedingungen zu überwachen. Um sicherzustellen, dass eine maximale Zeitgrenze nicht überschritten wird, muss vor deren Ablauf ein Signal an den Überwachungszeitgeber abgesetzt werden, um diesen zurückzusetzen. Um auch zu häufige Rücksetzvorgänge als Fehler erkennen zu können - durch eine Fehlfunktion könnte der Rücksetzvorgang wiederholt erfolgen, ohne dass die eigentliche zu überwachende Funktionalität noch aufrecht erhalten werden kann -, wird eine untere Zeitgrenze eingesetzt, vor deren Ablauf keine Rücksetzung erfolgen darf.
-
Datenverarbeitungssysteme tragen in immer mehr Anwendungen die Verantwortung für Mensch, Umwelt und Investitionsgüter und ersetzen in manchen Applikationen betriebsbewährte mechanische Systeme, so z. B. bei den „x-by-wire“ Systemen in der Avionik und der Kraftfahrzeugtechnik oder autonomen Steuerungsfunktionen in Fahrzeugen. Entsprechend gravierende Auswirkungen können nicht oder nicht rechtzeitig erkannte Fehler haben.
-
Die hohe Komplexität der Systeme und der darin eingesetzten Soft- und Hardware führt zu erhöhten Fehlerwahrscheinlichkeiten. Zudem werden die eingesetzten integrierten Schaltkreise auf Grund der immer weiter reduzierten Strukturbreiten zunehmend empfindlicher gegenüber Umwelteinflüssen, speziell den Einwirkungen von Strahlung.
-
Verschiedenste Fehlerarten können dafür sorgen, dass zu verarbeitende Daten in Datenverarbeitungssystemen nicht innerhalb der vorgesehenen Zeitfenster zur Verfügung stehen. Die Verarbeitung dieser Daten führt damit zu fehlerhaften Ergebnissen, die zu gefährlichen Ausfällen eines gesamten Datenverarbeitungssystems führen können. Dies ist besonders für die oben erwähnten sicherheitsgerichteten Anwendungen relevant, bei denen derartige Ausfälle zu Personen-, Umwelt- oder Sachschäden führen können.
-
Daten werden in konventionellen Datenverarbeitungssystemen nur durch ihren Datenwert repräsentiert. Über die weiteren Dateneigenschaften wie z.B. Datentyp und - für diese Erfindungsmeldung besonders relevant - den frühesten und spätesten zulässigen Zeitpunkt zum Empfang einer Aktualisierung eines Datenwerts werden nur implizite Annahmen getroffen. Die Hardware kann also keine Überprüfungen entsprechender Dateneigenschaften vornehmen, da sie diese nicht kennt. Unterliegt ein System harten Echtzeitbedingungen, so kann das Ausbleiben von Datenwerten zu gefährlichen Ausgaben führen, die Mensch, Umwelt oder Investitionsgüter gefährden. Ebenso können Fehler dazu führen, das Werte zu häufig aktualisiert werden, was z. B. große Anteile der Übertragungskapazität von eingesetzten Bussystemen binden kann und wichtige Nachrichten deshalb die Empfänger nicht mehr innerhalb eines maximal zulässigen Zeitraums erreichen.
-
Keine der bisher genannten Architekturarten wie Datentyp- oder Befähigungsarchitekturen unterstützt die Spezifikation zyklischer Echtzeitbedingungen in einer Kennung, die dann automatisch von der die Daten verarbeitenden Hardware in den Datenverarbeitungseinheiten geprüft werden könnte.
-
Prozessgrößen in technischen Prozessen können in sehr unterschiedlichen Zeitabständen zur Verarbeitung anfallen. So können Positionsinformationen von CNC-Maschinen z. B. alle 10 µs aktualisiert, eine Taste zur Abfrage von Benutzereingaben beispielsweise alle 100 ms abgefragt und die Temperatur der Maschine könnte aufgrund der thermischen Trägheit z.B. einmal pro Sekunde erfasst werden. Daher ist eine feingranulare Überwachung abgestimmt auf die jeweilige Aktualisierungsrate der Daten notwendig.
-
In [4] werden die entsprechenden Echtzeiteigenschaften von Daten beschrieben.
-
Bei beiden sicherheitsgerichteten Feldbusprotokollen, PROFIsafe und CIP Safety, wird nur geprüft, ob aktualisierte Daten vor einem spätesten zulässigen Zeitpunkt eingetroffen sind. Dabei wird jedoch nicht überprüft, ob die Daten wirklich aktualisiert wurden. Die Kommunikationssoftware der Datenquelle wird die vorliegenden Daten bei dem in Feldbussen üblichen zyklischen Abrufen der Daten durch eine Zentraleinheit übermitteln, ohne zu prüfen, ob die Werte tatsächlich aktualisiert wurden. Eine Überwachung der Unterschreitung eines frühesten zulässigen Zeitpunkts einer Aktualisierung findet in beiden Protokollen nicht statt.
-
Der Nachteil von Überwachungszeitgebern mit Zeitfenster ist, dass diese i.A. nur einmal im System vorhanden sind und damit auch nur ein bestimmtes Zeitfenster überwachen können. Prozessgrößen mit unterschiedlichen Aktualisierungszeiträumen können dadurch nur begrenzt überwacht werden.
-
Die Aufgabe der Erfindung ist es, Verletzungen von zyklischen Echtzeitbedingungen bei der Datenverarbeitung auf einfache Weise durch die Hardware einer Datenverarbeitungseinheit zu erkennen.
-
Die Aufgabe wird bezogen auf die Datenverarbeitungseinheit durch die Merkmale des Anspruchs 1 und bezogen auf das Verfahren durch die Merkmale der Ansprüche 6 und 7 gelöst. Die Unteransprüche stellen jeweils vorteilhafte Ausgestaltungen dar.
-
Bezogen auf die Datenverarbeitungseinheiten sieht die Lösung vor, den einzelnen Datenelementen zusätzlich zum Datenwert eine Zykluszeitkennung hinzuzufügen, die den frühesten und den spätesten erlaubten Zeitpunkt des Empfangs einer Aktualisierung desselben Datenwerts spezifiziert. Das ermöglicht einer Datenverarbeitungseinheit, zu früh und nicht rechtzeitig eintreffende Aktualisierungen von Datenwerten frühestmöglich zu erkennen. Als Datenverarbeitungseinheit sind im Sinne dieser Erfindung alle technischen Einrichtungen zu verstehen, die Daten erzeugen, verarbeiten oder nutzen, so z. B. Sensoren, Prozessrechner und Aktoren. In derartigen Geräten ist mindestens ein Prozessor vorhanden, der erzeugte Daten in mindestens einem Speicher ablegt, aus einem solchen ausliest, verarbeitet und die Ergebnisse ggf. wieder in einem derartigen Speicher ablegt. Ein entsprechender Prozessor kann z. B. auch in programmierbarer Hardware wie FPGAs realisiert werden. Datenelemente im Sinne dieser Erfindung sind Datenworte in einem Speicher oder Register, die neben dem Datenwert weitere Informationen über den Datenwert selbst enthalten. Zeitpunkte im Sinne dieser Erfindung können absolute Zeitpunkte in Form einer Kombination aus Datum und Uhrzeit sein, oder auch relative Zeitangaben, wie sie im Umfeld von Computern gebräuchlich sind, wie z. B. die Anzahl der verstrichenen Sekunden seit dem 01.01.1970, 0:00 Uhr bei der Unixzeit.
-
Die beschriebene Zykluszeitkennung in den Datenelementen besteht aus mindestens drei Teilkennungen, die den Identifikator des Datenwerts, sowie den frühesten und spätesten zulässigen Zeitpunkt der Aktualisierung des durch den Identifikator identifizierten Datenwerts spezifizieren.
-
Vorteilshafterweise ist die Zykluszeitkennung untrennbar mit dem Datenwert verbunden und wird mit ihm gespeichert, verarbeitet und übertragen.
-
Bezogen auf die Datenverarbeitungseinheiten sieht die Lösung weiterhin vor, einen zusätzlichen Befehl im Prozessor der Datenverarbeitungseinheit vorzusehen, mit dessen Hilfe sich die Inhalte der Zykluszeitkennung eines Operanden setzen lassen.
-
Bezogen auf die Datenverarbeitungseinheiten sieht die Lösung weiterhin vor, den in mindestens einem Speicher abgelegten Befehlselementen ebenfalls eine Zykluszeitkennung hinzuzufügen. Befehlselemente im Sinne dieser Erfindung sind Befehlsworte in einem Speicher oder Register, die neben dem Befehlscode und der Spezifikation der Operanden bzw. Operandenadressen des Befehls weitere für die Ausführung des Befehls relevanten Informationen enthalten. Die Zykluszeitkennung im Befehlselement besteht aus mindestens drei Teilkennungen, wobei diese einen für das Ergebnis des Befehls zu setzenden Identifikator, sowie einen minimalen und einen maximalen relativen Zeitraum für eine zu empfangende Aktualisierung des durch den Identifikator beschriebenen Datenwerts spezifizieren.
-
Bezogen auf die Datenverarbeitungseinheiten sieht die Lösung weiterhin vor, dass im Prozessor oder als dediziertes Hardwaremodul eine Zyklusüberwachungseinheit vorhanden ist, die eine Zyklussteuereinheit besitzt und eine Datenverbindung zum Prozessor bzw. Prozessorkern aufweist. Die Zyklussteuereinheit verwaltet zwei Listen, die Zyklusüberwachungsliste Minimum und die Zyklusüberwachungsliste Maximum, die in mindestens einem Speicher abgelegt sind. Zur Erfüllung ihrer Aufgabe benötigt die Zyklussteuereinheit eine Zeitbasis, die ihr z. B.
- • durch stetige Aktualisierung durch den Prozessor der Datenverarbeitungseinheit,
- • eine in der Zyklusüberwachungseinheit vorhandene Echtzeituhr und / oder
- • einen internen oder externen Zeitsignalempfänger wie DCF77, GPS, Galileo oder GLONASS
zur Verfügung gestellt werden kann.
-
Bezogen auf das Verfahren sieht die Lösung vor, dass der Prozessor der Datenverarbeitungseinheit die Inhalte der Zykluszeitkennung des auszuführenden Befehlselements liest und deren Inhalte zur Bildung der Inhalte der Zykluszeitkennung des Ergebnisses der auszuführenden Operation nutzt. Ist der Identifikator innerhalb der Zykluszeitkennung des Befehlselements gleich Null, so wird der Identifikator innerhalb der Zykluszeitkennung des Ergebnisses auf Null gesetzt, womit angezeigt wird, dass das Ergebnis keine zu prüfenden zyklischen Echtzeitbedingungen aufweisen soll. Ist der Identifikator innerhalb der Zykluszeitkennung des Befehlselements ungleich Null, so wird dieser als Identifikator in der Zykluszeitkennung des Ergebnisses gespeichert und die beiden relativen Zeitspannen innerhalb der Zykluszeitkennung des Befehlselements werden jeweils auf den aktuellen Zeitpunkt addiert und die Ergebnisse dieser Berechnungen als frühester bzw. spätester zulässiger Zeitpunkt einer Aktualisierung des im Ergebnis vorhandenen Datenwerts in der Zykluszeitkennung des Ergebnisses abgelegt. Mit Vorteil wird vorgeschlagen, dass die Bestimmung und das Setzen der Inhalte der Zykluszeitkennung des Ergebnisses zeitgleich zur Ausführung der datenverarbeitenden Operation erfolgt.
-
Bezogen auf das Verfahren sieht die Lösung weiterhin vor, dass die Zyklussteuereinheit innerhalb der Zyklusüberwachungseinheit die zwei beschriebenen Listen Zyklusüberwachungsliste Minimum und Zyklusüberwachungsliste Maximum verwaltet. In der Zyklusüberwachungsliste Minimum werden Tupel bestehend aus Identifikator eines Datenwerts und frühestem zulässigen Aktualisierungszeitpunkt gespeichert. In der Zyklusüberwachungsliste Maximum werden Tupel bestehend aus Identifikatoren der Datenwerte mit den zugehörigen spätesten zulässigen Aktualisierungszeitpunkten gehalten. Mit Vorteil wird vorgeschlagen, dass die Tupel in der Zyklusüberwachungsliste Maximum in chronologisch aufsteigender Reihenfolge sortiert sind, also jenes Tupel an erster Stelle in der Liste liegt, dessen spätester zulässiger Aktualisierungszeitpunkt als nächstes erreicht wird. Die Zyklussteuereinheit prüft, ob der angegebene späteste zulässige Aktualisierungszeitpunkt in einem der Einträge der Zyklusüberwachungsliste Maximum verstreicht, ohne dass eine Aktualisierung des zugehörigen Datenwerts erfolgt ist. Wird einer der betreffenden Zeitpunkte überschritten, so erkennt dies die Zyklussteuereinheit als Fehler. Der Prozessor der Datenverarbeitungseinheit sendet alle Inhalte der Zykluszeitkennungen der zu verarbeitenden Datenelemente, bestehend aus Identifikator, frühestem und spätestem zulässigen Aktualisierungszeitpunkt an die Zyklusüberwachungseinheit bzw. der Zyklussteuereinheit innerhalb der Zyklusüberwachungseinheit. Diese sucht einen zum empfangenen Identifikator passenden Eintrag in der Zyklusüberwachungsliste Minimum. Wird ein solcher Eintrag gefunden, so vergleicht die Zyklussteuereinheit den im Eintrag angegebenen frühesten zulässigen Aktualisierungszeitpunkt mit dem aktuellen Zeitpunkt. Stellt sie dabei eine Unterschreitung fest, so erfolgte die Aktualisierung des Datenwerts zu früh, was die Zyklussteuereinheit als Fehler erkennt. Wurde der früheste zulässige Aktualisierungszeitpunkt nicht unterschritten oder es war kein zum Identifikator gehörender Eintrag in der Zyklusüberwachungsliste Minimum abgelegt, so aktualisiert die Zyklussteuereinheit diesen oder legt einen entsprechenden Eintrag an und verwendet dazu den empfangenen Identifikator zusammen mit dem empfangenen frühesten zulässigen Aktualisierungszeitpunkt. Weiterhin sucht die Zyklussteuereinheit einen zum empfangenen Identifikator passenden Eintrag in der Zyklusüberwachungsliste Maximum. Wird ein solcher gefunden, aktualisiert die Zyklussteuereinheit diesen, ansonsten legt sie einen entsprechenden Eintrag an und nutzt dazu neben dem empfangenen Identifikator den empfangenen spätesten zulässigen Aktualisierungszeitpunkt. Stellt die Zyklussteuereinheit einen Fehler fest, so meldet sie dies dem Prozessor der Datenverarbeitungseinheit über ein Signal, die Einstellung eines Lebenszeichens und / oder das Senden einer Nachricht. Mit Vorteil wird vorgeschlagen, dass die beschriebenen Vorgänge des Verfahrens zeitgleich zur Ausführung der Verarbeitung der Datenwerte im Prozessor der Datenverarbeitungseinheit erfolgen.
-
Die Erfindung wird nachfolgend anhand einer Zeichnung näher beschrieben. 1 der Zeichnung zeigt, wie den Datenwerten (2) innerhalb der Datenelemente (1) eine Zykluszeitkennung (3) hinzugefügt ist. 2 der Zeichnung zeigt die Aufteilung der Zykluszeitkennung (3) in mindestens drei Teilkennungen (4, 5, 6). Die Identifikatorteilkennung (4) spezifiziert den Identifikator des Datenwerts (2). Zwei weitere Teilkennungen (5, 6) spezifizieren den frühesten (5) bzw. spätesten (6) zulässigen Aktualisierungszeitpunkt des durch den Identifikator identifizierten Datenwerts. Die Reihenfolge der Teilkennungen ist in der Figur nur exemplarisch dargestellt, jede andere Anordnung ist ebenfalls möglich.
-
3 der Zeichnung zeigt, wie in den Befehlselementen (7) neben Befehl und ggf. Operanden bzw. Operandenadressen (8) ebenfalls eine Zykluszeitkennung (9) vorhanden ist. 4 der Zeichnung zeigt die Aufteilung der Zykluszeitkennung (9) in mindestens drei Teilkennungen (10, 11, 12). Die Identifikatorteilkennung (10) spezifiziert den in der Identifikatorteilkennung der Zykluszeitkennung des Ergebnisses des Befehls zu setzenden Identifikator. Zwei weitere Teilkennungen spezifizieren die relativen Zeitspannen, nach deren Ablauf die Aktualisierung des zum Identifikator gehörenden Datenwerts frühestens (11) bzw. spätestens (12) erfolgen darf bzw. muss. Die Reihenfolge der Teilkennungen ist in der Figur nur exemplarisch dargestellt, jede andere Anordnung ist ebenfalls möglich.
-
5 der Zeichnung zeigt den exemplarischen Aufbau der Zyklusüberwachungseinheit (13), bestehend aus den Kernkomponenten Zyklussteuereinheit (14) und den in mindestens einem Speicher abgelegten Zyklusüberwachungslisten Minimum (16) bzw. Maximum (17). Auf beide Listen kann die Zyklussteuereinheit (14) über eine Datenverbindung (17, 19) zugreifen. Weiterhin weist die Zyklussteuereinheit (14) eine Datenverbindung (15) zum Prozessor der Datenverarbeitungseinheit auf. Ein Taktsignal kann die Zyklussteuereinheit von extern zugeführt bekommen (21) oder durch einen Taktgenerator (20) innerhalb der Zyklusüberwachungseinheit (13) erzeugt. Eine Zeitbasis für die notwendigen Überprüfungen kann die Zyklussteuereinheit über die Datenverbindung (15) zum Prozessor der Datenverarbeitungseinheit, eine Echtzeituhr (22) und / oder einen externen Zeitsignalempfänger (23) wie z. B. DCF77, GPS, Galileo oder GLONASS empfangen. Zur Signalisierung des fehlerfreien Betriebs kann ein Lebenszeichensignal (25) von der Zyklussteuereinheit zum Prozessor der Datenverarbeitungseinheit gesendet werden. Ein Rücksetzsignal (24) ermöglicht es dem Prozessor der Datenverarbeitungseinheit, die Zyklusüberwachungseinheit (13) und damit vor allem die Zyklussteuereinheit (14) in einen definierten Zustand zu bringen.
-
Die Erfindung hat gegenüber dem Stand von Wissenschaft und Technik die folgenden Vorteile:
- • Die Prüfungen in der Zyklusüberwachungseinheit werden zeitgleich zur Ausführung der eigentlichen Operation im Hauptprozessor durchgeführt, es entsteht also kein erhöhter Laufzeitbedarf.
- • Die Erkennung der Verletzung zyklischer Echtzeitbedingungen erfolgt zu einem frühestmöglichen Zeitpunkt, lange bevor Überwachungszeitgeber das Ausbleiben von Verarbeitungsergebnissen erkennen können.
- • Die Prüfung der Zykluszeitkennung findet feingranular pro einzelnem Datenwert statt und nicht über Überwachungszeitgeber für ganze Programme, Datenverbindungen oder sogar Systemkomponenten. Das erlaubt individuelle Überwachungszeiten.
- • Durch Fehler wiederholt empfangene oder verarbeitete Datenwerte besitzen die identischen frühesten und spätesten möglichen Aktualisierungszeitpunkte in der Zykluszeitkennung, wodurch diese keine Veränderung der beiden Zeitpunkte hervorrufen. Bei konventionellen Überwachungszeitgebern reicht das erfolgreiche empfangen von Datenwerten zum Rücksetzen des Zeitgebers aus, weshalb weitere Fehlererkennungsmerkmale bei solchen Lösungen notwendig sind.
- • Die betreffenden Fristen sind vorteilshafterweise untrennbar mit dem Datenwert selbst verbunden, wodurch es keine Gefahr von Inkonsistenzen gibt.
- • Da es sich um eine gerätetechnische Lösung handelt, wird die Lösung nur einmal spezifiziert, entworfen, implementiert und getestet. Bei softwarebasierten Lösungen muss dieses Prozedere in der Regel bei jedem Projekt erneut durchlaufen werden.
-
Literatur
-
- [1] AEG Datenverarbeitung: TR 4 Bedienungshandbuch
- [2] A. Bradbury, G. Ferris, R. Mullins: Tagged memory and minion cores in the lowRISC SoC; 2014; http://www.lowrisc.org/docs/
- [3] S. Chiricescu, A. DeHon, D. Demange, S. Iyer, A. Kliger, G. Morrisett, B. C. Pierce, H. Reubenstein, J. M. Smith, G. T. Sullivan, A. Thomas, J. Tov, C. M. White, D. Wittenberg: SAFE: A Clean-Slate Architecture for Secure Systems; http://www.crash-safe.org/docs/ HST2013-SAFE.html; 2013
- [4] B. Dasarathy: Timing Constraints of Real-Time Systems: Constructs for Expressing Them, Methods of Validating Them; IEEE Transactions on Software Engineering, Vol.11, Issue 1; 80-86; 1985
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-
- B. Dasarathy: Timing Constraints of Real-Time Systems: Constructs for Expressing Them, Methods of Validating Them; IEEE Transactions on Software Engineering, Vol.11, Issue 1; 80-86; 1985 [0029]