DE102017005972A1 - Vorrichtung und Verfahren zur gerätetechnischen Erkennung von Datenflussfehlern in Daneverarbeitungseinheiten und-systemen - Google Patents

Vorrichtung und Verfahren zur gerätetechnischen Erkennung von Datenflussfehlern in Daneverarbeitungseinheiten und-systemen Download PDF

Info

Publication number
DE102017005972A1
DE102017005972A1 DE102017005972.1A DE102017005972A DE102017005972A1 DE 102017005972 A1 DE102017005972 A1 DE 102017005972A1 DE 102017005972 A DE102017005972 A DE 102017005972A DE 102017005972 A1 DE102017005972 A1 DE 102017005972A1
Authority
DE
Germany
Prior art keywords
data
identifier
processing path
contents
source
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.)
Pending
Application number
DE102017005972.1A
Other languages
English (en)
Inventor
Stefan Andreas Widmann
Wolfgang A. Halang
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to DE102017005972.1A priority Critical patent/DE102017005972A1/de
Publication of DE102017005972A1 publication Critical patent/DE102017005972A1/de
Pending legal-status Critical Current

Links

Images

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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)

Abstract

Die Erfindung betrifft eine Datenverarbeitungseinheit, die Daten erzeugt, verarbeitet oder nutzt, bestehend aus mindestens einem Prozessor mit mindestens einem Speicher, in dem Daten in Form von Datenelementen (1) abgelegt sind. Die Erfindung zeichnet sich dadurch aus, dass zur Überprüfung des Datenflusses den in den Datenelementen (1) enthaltenen Datenwerten (2) innerhalb der Datenelemente eine Verarbeitungswegkennung (3) zugeordnet ist, die in mindestens vier Teilkennungen (4, 5, 6, 7) die Quellen (4), den vorgesehenen systemweiten (5) und lokalen (6) Verarbeitungsweg und die zulässigen Endverbraucher, also die Ziele (7) des Datenwerts spezifiziert.

Description

  • Die Erfindung betrifft eine Vorrichtung und ein Verfahren zur gerätetechnischen Erkennung von Datenflussfehlern in Datenverarbeitungseinheiten und Systemen aus Datenverarbeitungseinheiten.
  • 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 Kommunikationsprotokollen, speziell in sicherheitsgerichteten Feldbusprotokollen wie PROFIsafe (IEC 61784-3-3) [5] und CIP Safety (IEC 61784-3-2) [4], Quell- und Zieladressen bei der Datenübermittlung angegeben werden, die Absender und Empfänger der Daten spezifizieren. Dadurch kann überprüft werden, ob die Daten an den richtigen Adressaten geleitet wurden.
  • 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 nicht dem vorgesehenen Pfad innerhalb von Datenverarbeitungseinheiten oder Systemen von Datenverarbeitungseinheiten folgen. 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 Erfindung besonders relevant - die Herkunft, die zulässigen Bearbeitungsinstanzen und das Ziel eines Datenwerts oder seiner Verarbeitungsergebnisse werden nur implizite Annahmen durch die Art der Verwendung der Daten getroffen. Die Hardware kann also keine Überprüfungen dieser Dateneigenschaften vornehmen, da sie ihr nicht bekannt sind.
  • Durch eine Vielzahl von Fehlern kann es passieren, dass Daten nicht dem für sie vorgesehenen Weg durch das System folgen. Ein Beispiel für einen solchen Fehler wäre z.B. ein Adressierungsfehler innerhalb einer Datenverarbeitungseinheit, der dafür sorgt, dass Daten, die eigentlich für einen Aktor B gedacht waren, als Stellgröße an einen Aktor A gesendet werden. Dieser könnte die Vertauschung der Werte innerhalb der Datenverarbeitungseinheit nicht erkennen und würde die falsche Stellgröße nutzen, was gefährliche Auswirkungen haben kann.
  • Die vorgestellten Befähigungsarchitekturen spezifizieren Zugriffsberechtigungen in Form von Befähigungen in einer hardwareles- und -prüfbaren Art und Weise, jedoch sind diese Befähigungen nur lokal in einer bestimmten Datenverarbeitungseinheit gültig. Eine systemweite Betrachtung vom Sensor über die Datenverarbeitung bis hin zum Sensor erfolgt nicht.
  • In Kommunikationsprotokollen werden Absender- und Empfängerinformationen nach dem Empfang wieder von den Daten getrennt und diese liegen dann ohne Herkunfts- und Zielinformation vor. Der Verarbeitungsweg innerhalb einer Datenverarbeitungseinheit kann also nicht weiter überprüft werden. Weiterhin wird immer nur eine Komunikationsstrecke betrachtet, also von der Quelle zur Datenverarbeitungseinheit und von dieser zu den Senken, allerdings nie der gesamte Weg durch ein System.
  • Ein gutes Beispiel für die Folgen fehlgeleiteter Daten bietet der Fall der Rakete Ariane 5. Am 4. Juni 1996 zerstörte sich die Rakete Ariane 5 nach nur kurzer Flugdauer selbst [6]. Bei der Umwandlung einer 64-Bit-Gleitkommazahl in eine vorzeichenbehaftete 16-Bit-Ganzzahl war es zu einer Überschreitung des Wertebereichs gekommen, weil die horizontale Geschwindigkeit der Ariane 5 deutlich höher war als bei der Ariane 4. Der Fehler wurde durch das Inertiale Navigationssystem, engl. „Inertial Reference System SRI“, als Operandenfehler erkannt und ein Diagnose-Bitmuster zusammen mit korrekten Flugdaten an den Bordrechner gesendet. Dieser interpretierte die Diagnosedaten fehlerhafterweise als Flugdaten. In der Folge steuerte der Bordcomputer die Ablenkdüsen voll aus, wodurch sich die Feststoffzusatztriebwerke von der Hauptstufe lösten und die Selbstzerstörung der Rakete angestoßen wurde.
  • Die Aufgabe der Erfindung ist es, Datenflussfehler 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 7 und 9 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 Veraxbeitungswegkennung hinzuzufügen, die den Weg eines Datenwerts von der Erzeugung über die Verarbeitung bis hin zu einem oder mehreren Abnehmern beschreibt.
  • Dies ermöglicht einer Datenverarbeitungseinheit, bei der Verarbeitung von Daten sicherzustellen, dass diese
    • • vom richtigen Absender stammen,
    • • in der betreffenden Datenverarbeitungseinheit verarbeitet werden dürfen und / oder
    • • an die betreffende Datensenke gerichtet waren.
  • 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.
  • Die beschriebene Verarbeitungswegkennung besteht aus mindestens 4 Teilkennungen, einer Quellteilkennung, einer Systemteilkennung des Verarbeitungswegs, einer Lokalteilkennung des Verarbeitungswegs und einer Zielteilkennung. Diese Teilkennungen werden vorteilshafterweise in der Verarbeitungswegkennung zusammengefasst, können jedoch auch als eigenständige Kennungen realisiert werden.
  • Die Quellteilkennung beschreibt den oder die Erzeuger des Datenwerts bzw. der Datenwerte, die zu dem vorliegenden Datenwert verarbeitet wurden. Die Systemteilkennung des Verarbeitungswegs identifiziert diejenigen Datenverarbeitungseinheiten eines Systems aus Datenverarbeitungseinheiten, die den betreffenden Datenwert verarbeiten dürfen. Die Lokalteilkennung des Verarbeitungswegs gibt die für die jeweilige Datenverarbeitungseinheit spezifischen Verarbeitungsblöcke, also z. B. Programminstanzen oder Hardwaremodule, innnerhalb der Datenverarbeitungseinheit an, die den betreffenden Datenwert verarbeiten dürfen. Die Zielteilkennung beschreibt den oder die vorgesehenen Endverbraucher des Datenwerts.
  • Für jede Teilkennung ist eine bestimmte Anzahl an Bits vorgesehen. Allen Datenverarbeitungseinheiten in einem System, die Daten erzeugen, wird eine bestimmte Bitposition innerhalb der Quellteilkennung zugeordnet, die die jeweilige Datenquelle eindeutig beschreibt. Ebenso wird allen Datenverarbeitungseinheiten in einem System, die Daten verarbeiten, eine bestimmte Bitposition innerhalb der Systemteilkennung des Verarbeitungswegs zugeordnet, die diese eindeutig beschreibt. Innerhalb einer Datenverarbeitungseinheit wird jedem Verarbeitungsblock, also z. B. Programminstanzen oder Hardwaremodulen, eine bestimmte Bitposition innerhalb der Lokalteilkennung des Verarbeitungswegs zugeordnet, die den Verarbeitungsblock innerhalb der betreffenden Datenverarbeitungseinheit eindeutig identifiziert. Weiterhin wird allen Datenverarbeitungseinheiten in einem System, die Daten als Endverbraucher entgegennehmen, eine bestimmte Bitposition innerhalb der Zielteilkennung zugeordnet, die diese eindeutig beschreibt.
  • Bei einfachen Systemen, die z. B. nur eine Datenverarbeitungseinheit oder nur nicht kaskadierte Datenverarbeitungseinheiten aufweisen, können Quellen neben der Systemteilkennung auch die Inhalte der Lokalteilkennung des Verarbeitungswegs in den Verarbeitungswegkennungen der durch sie erzeugten Daten setzen. Bei komplexeren Systemen, bei denen mehrere Datenverarbeitungseinheiten kaskadiert sind, müssen die Inhalte der Lokalteilkennung des Verarbeitungswegs innerhalb der Verarbeitungswegkennung eines Datenelements in der jeweiligen Datenverarbeitungseinheit selbst gesetzt werden. Vorteilshafterweise geschieht dies innerhalb der die Datenelemente empfangenden Datenverarbeitungseinheit direkt nach dem Empfang eines Datenwerts.
  • Bezogen auf die Datenverarbeitungseinheiten sieht die Lösung weiterhin vor, zusätzliche Befehle im Prozessor der Datenverarbeitungseinheit vorzusehen, mit deren Hilfe die Inhalte der verschiedenen Teilkennungen der Verarbeitungswegkennung setzen lassen:
    • • ein Befehl erlaubt das Setzen aller vier Teilkennungen der Verarbeitungswegkennung,
    • • ein weiterer Befehl erlaubt das Setzen der Teilkennungen Quellteilkennung, Systemteilkennung des Verarbeitungswegs und Zielteilkennung, setzt also keine Werte für die Lokalteilkennung des Verarbeitungswegs und
    • • ein weiterer Befehl erlaubt das Setzen der Inhalte der Lokalteilkennung des Verarbeitungswegs.
  • Bezogen auf die Datenverarbeitungseinheiten sieht die Lösung weiterhin vor, den in einem Speicher abgelegten Befehlselementen ebenfalls eine Verarbeitungswegkennung hinzuzufügen. Befehlselemente im Sinne dieser Erfindung sind Befehlsworte in einem Speicher oder Register, die neben dem Befehlscode und der Spezifikation der Operanden des Befehls weitere für die Ausführung des Befehls relevanten Informationen enthalten. Die Verarbeitungswegkennung im Befehlselement besteht aus mindestens vier Teilkennungen: mindestens eine Quellteilkennung, die die erwarteten Quellteilkennungsinhalte mindestens eines Operanden angibt, einer Systemteilkennung und einer Lokalteilkennung des Verarbeitungswegs und die Zielteilkennung. Diese mindestens vier Teilkennungen können dazu genutzt werden, die Inhalte der Verarbeitungswegkennungen der Operanden des auszuführenden Befehls zu prüfen. Mit Vorteil wird vorgeschlagen, je eine Quellteilkennung für jeden Quelloperanden eines Befehls vorzusehen.
  • Bezogen auf die Datenverarbeitungseinheiten sieht die Lösung weiterhin vor, dass im Registersatz des Prozessors ein Verarbeitungswegregister vorhanden ist, das in verschiedene Teilregister aufgeteilt ist. Dieses Register dient der Vorgabe erwarteter Inhalte der Verarbeitungswegkennungen der zu verarbeitenden Daten, ohne diese Inhalte in den Verarbeitungswegkennungen der Befehle fest vorgeben zu müssen. Mindestens ein Teilregister spezifiziert die erwarteten Inhalte der Quellteilkennung der Verarbeitungswegkennung der zu verarbeitenden Operanden eines Befehls. Mit Vorteil wird vorgeschlagen, mindestens zwei Teilregister für die Spezifikation zweier verschiedener Inhalte von Quellteilkennungen der Verarbeitungswegkennungen von mindestens zwei Operanden vorzusehen. Das Systemteilregister spezifiziert die Bitposition der Datenverarbeitungseinheit, an der in der Systemteilkennung der Verarbeitungswegkennung aller zu verarbeitenden Daten ein Bit mit dem Wert Eins erwartet wird. Das Lokalteilregister wiederum spezifiziert die Bitposition des Datenverarbeitungsblocks innerhalb der Datenverarbeitungseinheit, an der in der Lokalteilkennung der Verarbeitungswegkennungen aller zu verarbeitenden Daten ein Bit mit dem Wert Eins erwartet wird. Datenverarbeitungsblöcke im Sinne dieser Erfindung sind Hardwaremodule, Programmteile oder Programminstanzen, die Daten innerhalb einer Datenverarbeitungseinheit erzeugen und / oder verarbeiten.
  • Bezogen auf das Verfahren sieht die Lösung vor, dass der Prozessor der Datenverarbeitungseinheit bei der Ausführung eines Befehls die Inhalte der Verarbeitungswegkennungen der Operanden anhand der Inhalte der Verarbeitungswegkennung des Befehls prüft. Dazu verknüpft der Prozessor die Quellteilkennungen der Verarbeitungswegkennungen der Operanden des Befehls mit der Quellteilkennung der Verarbeitungswegkennung des Befehls durch eine Konjunktion, also ver-UND-et sie und prüft, ob das Ergebnis dieser Verknüpfung identisch mit den Inhalten der Quellteilkennung der Verarbeitungswegkennung des Befehls ist. Bei mehr als einem Quelloperanden wird mit Vorteil vorgeschlagen, für die beschriebene Prüfung der Inhalte der Quellteilkennungen der Operanden mehr als eine Quellteilkennung in der Verarbeitungswegkennung des Befehls für die Konjunktion zu verwenden. Bei der Ausführung eines Befehls verknüpft der Prozessor weiterhin die Inhalte der Systemteilkennungen der Verarbeitungswegkennungen der Operanden des Befehls mit der Systemteilkennung der Verarbeitungswegkennung des Befehls durch eine Konjunktion, also ver-UND-et sie und prüft, ob das Ergebnis dieser Verknüpfung identisch mit den Inhalten der Systemteilkennung der Verarbeitungswegkennung des Befehls ist. Bei der Ausführung eines Befehls verknüpft der Prozessor weiterhin die Inhalte der Lokalteilkennungen der Verarbeitungswegkennungen der Operanden des Befehls mit der Lokalteilkennung der Verarbeitungswegkennung des Befehls durch eine Konjunktion, also ver-UND-et sie und prüft, ob das Ergebnis dieser Verknüpfung identisch mit den Inhalten der Lokalteilkennung der Verarbeitungswegkennung des Befehls ist. Bei der Ausführung eines Befehls verknüpft der Prozessor weiterhin die Inhalte der Zielteilkennungen der Verarbeitungswegkennungen der Operanden des Befehls mit der Zielteilkennung der Verarbeitungswegkennung des Befehls durch eine Konjunktion, also ver-UND-et sie und prüft, ob das Ergebnis dieser Verknüpfung identisch mit den Inhalten der Zielteilkennung der Verarbeitungswegkennung des Befehls ist. Stellt der Prozessor bei einer der beschriebenen Prüfungen eine Abweichung fest, so kann eine entsprechende Fehlerbehandlung eingeleitet werden. Denkbare Reaktionen sind z. B. die Auslösung eines Ausnahmefehlers und bzw. oder die Überführung des Systems in einen sicheren Zustand und bzw. oder ein Neustart des Systems. Mit Vorteil wird vorgeschlagen, dass die beschriebenen Prüfungen zeitgleich zur Ausführung der Verarbeitung der Datenwerte erfolgt.
  • Bezogen auf das Verfahren sieht die Lösung vor, dass der Prozessor der Datenverarbeitungseinheit bei der Ausführung eines Befehls die Inhalte der Verarbeitungswegkennungen der Operanden anhand der Inhalte des Verarbeitungswegregisters prüft. Dazu verknüpft der Prozessor die Quellteilkennungen der Verarbeitungswegkennungen der Operanden des Befehls mit dem Quellteilregister des Verarbeitungswegregisters durch eine Konjunktion, also ver-UND-et sie und prüft, ob das Ergebnis dieser Verknüpfung identisch mit den Inhalten des Quellteilregisters des Verarbeitungswegregisters ist. Bei mehr als einem Quelloperanden wird mit Vorteil vorgeschlagen, für die beschriebene Prüfung der Inhalte der Quellteilkennungen der Operanden mehr als ein Quellteilregister im Verarbeitungswegregister für die Konjunktion zu verwenden. Bei der Ausführung eines Befehls verknüpft der Prozessor weiterhin die Inhalte der Systemteilkennungen der Verarbeitungswegkennungen der Operanden des Befehls mit dem Systemteilregister des Verarbeitungswegregisters des Befehls durch eine Konjunktion, also ver-UND-et sie und prüft, ob das Ergebnis dieser Verknüpfung identisch mit den Inhalten des Systemteilregisters des Verarbeitungswegregisters ist. Bei der Ausführung eines Befehls verknüpft der Prozessor weiterhin die Inhalte der Lokalteilkennungen der Verarbeitungswegkennungen der Operanden des Befehls mit dem Lokalteilregister des Verarbeitungswegregisters durch eine Konjunktion, also ver-UND-et sie und prüft, ob das Ergebnis dieser Verknüpfung identisch mit den Inhalten des Lokalteilregisters des Verarbeitungswegregisters ist. Bei der Ausführung eines Befehls verknüpft der Prozessor weiterhin die Inhalte der Zielteilkennungen der Verarbeitungswegkennungen der Operanden des Befehls mit dem Zielteilregister des Verarbeitungswegregisters durch eine Konjunktion, also ver-UND-et sie und prüft, ob das Ergebnis dieser Verknüpfung identisch mit den Inhalten dem Zielteilregister des Verarbeitungswegregisters ist. Stellt der Prozessor bei einer der beschriebenen Prüfungen eine Abweichung fest, so kann eine entsprechende Fehlerbehandlung eingeleitet werden. Denkbare Reaktionen sind z. B. die Auslösung eines Ausnahmefehlers und bzw. oder die Überführung des Systems in einen sicheren Zustand und bzw. oder ein Neustart des Systems. Mit Vorteil wird vorgeschlagen, dass die beschriebenen Prüfungen zeitgleich zur Ausführung der Verarbeitung der Datenwerte erfolgt.
  • Bezogen auf das Verfahren sieht die Lösung weiterhin vor, dass der Prozessor der Datenverarbeitungseinheit die Inhalte der Verarbeitungswegkennung des Ergebnisses der Operation eines Befehls aus den Inhalten der Verarbeitungswegkennungen der Operanden bestimmt und in der Verarbeitungswegkennung des Ergebnisses speichert. Dabei werden die Inhalte der Quellteilkennungen der Verarbeitungswegkennungen aller Quelloperanden durch eine Disjunktion verknüpft, also ver-ODER-t und in der Quellteilkennung der Verarbeitungswegkennung des Ergebnisses abgelegt. Die Inhalte der Systemteilkennungen der Verarbeitungswegkennungen der Operanden werden durch eine Konjunktion verknüpft, also ver-UND-et und in der Systemteilkennung der Verarbeitungswegkennung des Ergebnisses gespeichert. Die Inhalte der Lokalteilkennungen der Verarbeitungswegkennungen der Operanden werden ebenfalls durch eine Konjunktion verknüpft, also ver-UND-et und in der Lokalteilkennung der Verarbeitungswegkennung des Ergebnisses gespeichert. Auch die Inhalte der Zielteilkennungen der Verarbeitungswegkennungen der Operanden werden durch eine Konjunktion verknüpft, also ver-UND-et und in der Zielteilkennung der Verarbeitungswegkennung des Ergebnisses gespeichert. Mit Vorteil wird vorgeschlagen, dass die beschriebene Bestimmung der Inhalte der Verarbeitungswegkennung des Ergebnisses einer Operation zeitgleich zur Ausführung der Verarbeitung der Datenwerte erfolgt.
  • Die Erfindung wird nachfolgend anhand einer Zeichnung näher beschrieben. 1 der Zeichnung zeigt, wie dem Datenwert (2) innerhalb eines Datenelements (1) eine Verarbeitungswegkennung (3) hinzugefügt ist. 2 der Zeichnung zeigt die Aufteilung der Verarbeitungswegkennung innerhalb des Datenelements (1) in mindestens 4 Teilkennungen (4, 5, 6, 7). Diese sind Quellteilkennung (4), Systemteilkennung des Verarbeitungswegs (5), Lokalteilkennung des Verarbeitungswegs (6) und Zielteilkennung (7). Die Reihenfolge der Teilkennungen ist in der Figur nur exemplarisch dargestellt, jede andere Anordnung ist ebenfalls möglich.
  • 3 der Zeichnung zeigt, wie dem Befehl und seinen Operanden (9) in einem Befehlselement (8) ebenfalls eine Verarbeitungswegkennung (10) hinzugefügt ist. 4 der Zeichnung zeigt die Aufteilung der Verarbeitungswegkennung (10) in den Befehlselementen (8) in mindestens vier Teilkennungen, wobei in der Figur vorteilshafterweise fünf Teilkennungen (10, 11, 12, 13, 14) dargestellt sind. Die Quellteilkennungen (10, 11) beschreiben die erwarteten Inhalte der Quellteilkennungen innerhalb der Verarbeitungswegkennungen von mindestens einem Quelloperanden. Die Systemteilkennung (12) spezifiziert den Inhalt der Systemteilkennung des Verarbeitungswegs in den Verarbeitungswegkennungen der Quelloperanden. Die Lokalteilkennung (13) beschreibt analog dazu den erwarteten Inhalt der Lokalteilkennung des Verarbeitungswegs in den Verarbeitungswegkennungen der Quelloperanden. Die Zielteilkennung (14) gibt den erwarteten Inhalt der Zielteilkennung in den Verarbeitungswegkennungen der Quelloperanden an. Die Reihenfolge der Teilkennungen ist in der Figur nur exemplarisch dargestellt, jede andere Anordnung ist ebenfalls möglich.
  • 5 der Zeichnung zeigt das im Registersatz (15) des Prozessors der Datenverarbeitungseinheit untergebrachte Verarbeitungswegregister (16). 6 der Zeichnung zeigt den Detailaufbau des Verarbeitungswegregisters (16) in mindestens 4 Teilregister, wobei in der Figur vorteilshafterweise fünf Teilregister (17, 18, 19, 20, 21) dargestellt sind. Die Quellteilregister (17, 18) beschreiben die erwarteten Inhalte der Quellteilkennungen innerhalb der Verarbeitungswegkennungen von mindestens einem Quelloperanden. Das Systemteilregister (19) spezifiziert den Inhalt der Systemteilkennung des Verarbeitungswegs in den Verarbeitungswegkennungen der Quelloperanden. Das Lokalteilregister (20) beschreibt analog dazu den erwarteten Inhalt der Lokalteilkennung des Verarbeitungswegs in den Verarbeitungswegkennungen der Quelloperanden. Das Zielteilregister (21) gibt den erwarteten Inhalt der Zielteilkennung in den Verarbeitungswegkennungen der Quelloperanden an. Die Reihenfolge der Teilregister ist in der Figur nur exemplarisch dargestellt, jede andere Anordnung ist ebenfalls möglich.
  • Die Erfindung hat gegenüber dem Stand von Wissenschaft und Technik die folgenden Vorteile:
    • • Die Darstellung in Form einer Verarbeitungswegkennung ist für die Hardware verständlich, wodurch diese die Prüfungen vorteilshafterweise zeitgleich zur Ausführung der eigentlichen Operation durchführen kann, es entsteht also kein erhöhter Laufzeitbedarf.
    • • Da die Verarbeitungswegkennung vorteilshafterweise untrennbar mit den eigentlichen Daten verbunden ist, geht die Information über den vorgesehenen Pfad eines Datenwerts beim Datenaustausch nicht verloren und muss auf Empfängerseite nicht durch implizite Annahmen wieder den Daten hinzugefügt werden.
    • • Da der Weg von Daten zum Zeitpunkt der Systemspezifikation bereits feststeht, ist es naheliegend, eine entsprechende Information den Daten hinzuzufügen, wodurch das Recht, Daten zu verarbeiten nicht mehr darauf basiert, Zugriff auf sie zu haben, sondern darin, dass die Daten dieses Zugriffsrecht in der Verarbeitungswegkennung explizit gestatten.
    • • Im Gegensatz zu Befähigungen in Befähigungsarchitekturen wird in der Verarbeitungswegkennung eines Datenelements der gesamte Weg eines Datenwerts durch ein System von der Datenerzeugung über die Verarbeitung bis hin zum endgültigen Verbraucher spezifiziert und somit für die Hardware einer Datenverarbeitungseinheit prüfbar.
    • • Im Gegensatz zu typischen Kommunikationslösungen - auch den sicherheitsgerichteten Feldbusprotokollen - wird nicht nur jeweils eine Übertragungsstrecke innerhalb eines Systems betrachtet, sondern der gesamte Weg der Daten durch das System. Weiterhin wird auch der Weg der Daten innerhalb einer Systemkomponente durch den Lokalteil der Verarbeitungswegkennung einer Prüfung unterzogen.
    • • 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.
  • Im Fall der Rakete Ariane 5 hätte die fehlerhafte Interpretation der mit den Flugdaten vermischten Diagnosedaten durch den Einsatz der Merkmale dieser Erfindung sehr einfach aufgedeckt werden können, wenn den Diagnosedaten durch Hinzufügen einer Verarbeitungswegkennung in den betreffenden Datenelementen ein von den Flugdaten abweichender Verarbeitungsweg zugewiesen worden wäre. Hätte die Programminstanz oder Datenverarbeitungseinheit, die für die Verarbeitung der Flugdaten verantwortlich war, bei der Datenverarbeitung Diagnosedaten zu verarbeiten versucht, so hätte der Prozessor die unpassenden Inhalte der Verarbeitungswegkennungen erkannt und eine entsprechende Fehlerbehandlung hätte eingeleitet werden können.

Claims (10)

  1. Datenverarbeitungseinheit, die Daten erzeugt, verarbeitet oder nutzt, bestehend aus mindestens einem Prozessor mit mindestens einem Speicher, in dem Daten in Form von Datenelementen (1) abgelegt sind, dadurch gekennzeichnet, dass zur Überprüfung des Datenflusses den in den Datenelementen (1) enthaltenen Datenwerten (2) innerhalb der Datenelemente eine Verarbeitungswegkennung (3) zugeordnet ist, die in mindestens vier Teilkennungen (4, 5, 6, 7) die Quellen (4), den vorgesehenen systemweiten (5) und lokalen (6) Verarbeitungsweg und die zulässigen Endverbraucher, also die Ziele (7) des Datenwerts spezifiziert.
  2. Datenverarbeitungseinheit nach Anspruch 1, dadurch gekennzeichnet, dass die Verarbeitungswegkennung (3) untrennbar mit dem Datenwert (2) im Datenelement (1) verknüpft ist und mit diesem gespeichert, verarbeitet und übertragen wird.
  3. Datenverarbeitungseinheit nach Anspruch 1, dadurch gekennzeichnet, dass der Prozessor Befehle zur Verwaltung der Inhalte der Verarbeitungswegkennungen (3) von Datenelementen (1) vorsieht.
  4. Datenverarbeitungseinheit nach Anspruch 3, dadurch gekennzeichnet, dass der Prozessor einen Befehl zum Setzen des gesamten Verarbeitungswegs eines Datenwerts in Form des Inhalts der vier Teilkennungen (4, 5, 6, 7) innerhalb der Verarbeitungswegkennung (3) mindestens eines Datenelements (1), einen weiteren Befehl zum Setzen der Quellteilkennung (4), der Systemteilkennung (5) des Verarbeitungswegs und der Zielteilkennung (7) innerhalb der Verarbeitunsgwegkennung (3) mindestens eines Datenelements (1), sowie einen Befehl zum Setzen der Lokalteilkennung (6) des Verarbeitungswegs innerhalb der Verarbeitunsgwegkennung (3) mindestens eines Datenelements (1) zur Verfügung stellt.
  5. Datenverarbeitungseinheit nach Anspruch 1, bei der Befehle in Form von Befehlselementen (8) im selben Speicher wie die Daten oder in mindestens einem weiteren Speicher abgelegt sind, dadurch gekennzeichnet, dass zur Spezifikation der erwarteten Inhalte der Verarbeitungswegkennung (3) mindestens eines Operanden in den Befehlselementen (8) eine Verarbeitungswegkennung (10) vorhanden ist, die in mindestens vier Teilkennungen (10, 12, 13, 14) aufgeteilt ist, wobei mindestens eine Quellteilkennung (10) die erwarteten Inhalte der Quellteilkennung (4) der Quelloperanden, die Systemteilkennung (12) die erwarteten Inhalte der Systemteilkennung (5) der Quelloperanden, die Lokalteilkennung (13) die erwarteten Inhalte der Lokalteilkennung (6) der Quelloperanden und die Zielteilkennung (14) die erwarteten Inhalte der Zielteilkennung (7) der Quelloperanden des Befehls spezifizieren.
  6. Datenverarbeitungseinheit nach Anspruch 1, bei der der Prozessor einen Satz an Registern (15) aufweist, dadurch gekennzeichnet, dass zur Spezifikation der erwarteten Inhalte der Verarbeitungswegkennung (3) der durch den Prozessor verarbeiteten Datenelemente (1) im Registersatz (15) ein Verarbeitungswegregister (16) vorhanden ist, das in mindestens vier Teilregister (17, 19, 20, 21) aufgeteilt ist, wobei das mindestens eine Quellteilregister (17) die erwarteten Inhalte der Quellteilkennung (4) der Quelldatenelemente, das Systemteilregister (19) die erwarteten Inhalte der Systemteilkennung (5) der Quelldatenelemente, das Lokalteilregister (20) die erwarteten Inhalte der Lokalteilkennung (6) der Quelldatenelemente und das Zielteilregister (21) die erwarteten Inhalte der Zielteilkennung (7) der Quelldatenelemente spezifizieren.
  7. Verfahren zur Erkennung fehlerhafter Datenflüsse in Datenverarbeitungseinheiten und Systemen aus Datenverarbeitungseinheiten, bestehend aus mindestens einem Prozessor mit mindestens einem Speicher, in dem Daten in Form von Datenelementen (1) abgelegt sind, sowie Befehlen, die im selben oder mindestens einem weiteren Speicher in Form von Befehlselementen (8) abgelegt sind, dadurch gekennzeichnet, dass der Prozessor zusätzlich zur Ausführung einer datenverarbeitenden Operation die Inhalte der Verarbeitungswegkennungen (3) der zu verarbeitenden Daten mit den Inhalten der Verarbeitungswegkennungen (10) der Befehle verknüpft, um zu prüfen, ob die Daten dem vorgesehenen Pfad durch eine Datenverarbeitungseinheit oder ein System aus Datenverarbeitungseinheiten folgen.
  8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass der Prozessor bei Erkennen eines fehlerhaften Datenflusses in der Folge einen Ausnahmefehler meldet und / oder die Datenverarbeitungseinheit in einen sicheren Zustand überführt und / oder neu startet.
  9. Verfahren zur Erkennung fehlerhafter Datenflüsse in Datenverarbeitungseinheiten und Systemen aus Datenverarbeitungseinheiten, bestehend aus mindestens einem Prozessor mit mindestens einem Speicher, in dem Daten in Form von Datenelementen (1) abgelegt sind, sowie einem Satz an Registern (15) innerhalb des Prozessors, dadurch gekennzeichnet, dass der Prozessor zusätzlich zur Ausführung einer datenverarbeitenden Operation die Inhalte der Verarbeitungswegkennungen (3) der zu verarbeitenden Daten mit den Inhalten des Verarbeitungswegregisters (16) verknüpft, um zu prüfen, ob die Daten dem vorgesehenen Pfad durch eine Datenverarbeitungseinheit oder ein System aus Datenverarbeitungseinheiten folgen.
  10. Verfahren nach Anspruch 9, dadurch gekennzeichnet, dass der Prozessor bei Erkennen eines fehlerhaften Datenflusses in der Folge einen Ausnahmefehler meldet und / oder die Datenverarbeitungseinheit in einen sicheren Zustand überführt und / oder neu startet.
DE102017005972.1A 2017-06-23 2017-06-23 Vorrichtung und Verfahren zur gerätetechnischen Erkennung von Datenflussfehlern in Daneverarbeitungseinheiten und-systemen Pending DE102017005972A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102017005972.1A DE102017005972A1 (de) 2017-06-23 2017-06-23 Vorrichtung und Verfahren zur gerätetechnischen Erkennung von Datenflussfehlern in Daneverarbeitungseinheiten und-systemen

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102017005972.1A DE102017005972A1 (de) 2017-06-23 2017-06-23 Vorrichtung und Verfahren zur gerätetechnischen Erkennung von Datenflussfehlern in Daneverarbeitungseinheiten und-systemen

Publications (1)

Publication Number Publication Date
DE102017005972A1 true DE102017005972A1 (de) 2018-12-27

Family

ID=64567941

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017005972.1A Pending DE102017005972A1 (de) 2017-06-23 2017-06-23 Vorrichtung und Verfahren zur gerätetechnischen Erkennung von Datenflussfehlern in Daneverarbeitungseinheiten und-systemen

Country Status (1)

Country Link
DE (1) DE102017005972A1 (de)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5956517A (en) * 1995-04-12 1999-09-21 Sharp Kabushiki Kaisha Data driven information processor
US20010028629A1 (en) * 2000-03-31 2001-10-11 Takuji Uneyama Self-synchronous transfer control circuit and data driven information processing device using the same

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5956517A (en) * 1995-04-12 1999-09-21 Sharp Kabushiki Kaisha Data driven information processor
US20010028629A1 (en) * 2000-03-31 2001-10-11 Takuji Uneyama Self-synchronous transfer control circuit and data driven information processing device using the same

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DHAWAN, Udit ; HRITCU, Catalin ; RUBIN, Raphael ; VASILAKIS, Nikos ; CHIRICESCU, Silviu ; SMITH, Jonathan ; KNIGHT, Thomas ; PIERCE, Benjamin ; DEHON, Andre: Architectural Support for Software-Defined Metadata Processing. ACM SIGARCH Computer Architecture News – ASPLOS'15. Band 43 Ausgabe 1, March 2015. Seiten 487 – 502. URL: https://dl.acm.org/citation.cfm?id=2694383 [abgerufen am 28.03.2018] *

Similar Documents

Publication Publication Date Title
DE102010037457B4 (de) Verfahren zur Datenverarbeitung zum Bereitstellen eines Wertes zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist, Verfahren zur Datenverarbeitung zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist, Verfahren zum Erzeugen von Programm-Code, Datenverarbeitungsanordnungen zum Bereitstellen eines Wertes zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist, Datenverarbeitungsanordnungen zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist, und Datenverarbeitungsanordnungen zum Erzeugen von Programm-Code
WO2019042607A1 (de) System und verfahren zur kryptographisch geschützten überwachung wenigstens einer komponente eines geräts oder einer anlage
DE102015210651B4 (de) Schaltung und Verfahren zum Testen einer Fehlerkorrektur-Fähigkeit
WO2016087652A1 (de) Verfahren zur datenverarbeitung zum ermitteln, ob bei einer ausführung eines programms ein fehler aufgetreten ist, und datenverarbeitungsanordnungen zum erzeugen von programm-code
WO2005001690A2 (de) Verfahren zur überwachung des programmlaufs in einem mikro-computer
DE102012016539A1 (de) Konfigurationstechnik für ein Steuergerät mit miteinander kommunizierenden Anwendungen
WO2007025816A2 (de) Speicheranordnung und betriebsverfahren dafür
DE102020121003A1 (de) Zwei-die-system-auf-chip (soc) zur bereitstellung von hardware-fehlertoleranz (hft) für ein gepaartes soc
DE102011011333B4 (de) Lesen in Peripheriegeräte und schreiben aus Peripheriegeräten mit zeitlich getrennter, redundanter Prozessorausführung
DE102017005972A1 (de) Vorrichtung und Verfahren zur gerätetechnischen Erkennung von Datenflussfehlern in Daneverarbeitungseinheiten und-systemen
DE102011007467A1 (de) Mehrkernige integrierte Mikroprozessorschaltung mit Prüfeinrichtung, Prüfverfahren und Verwendung
EP1892639B1 (de) Sichere Programmcodeausführung
DE102014114157B4 (de) Verfahren zur Datenverarbeitung zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist und Datenverarbeitungsanordnungen zum Erzeugen von Programm-Code
DE102016203283A1 (de) Verfahren zum Betreiben eines Mikroprozessors
EP3311273A1 (de) Verfahren und vorrichtung zum absichern einer programmzählerstruktur eines prozessorsystems und zum überwachen der behandlung einer unterbrechungsanfrage
DE102015218882A1 (de) Verfahren und Vorrichtung zum Prüfen von Berechnungsergebnissen in einem System mit mehreren Recheneinheiten
WO2016096298A1 (de) Verfahren zur überprüfung wenigstens eines telegramms
DE102017005945A1 (de) Vorrichtung und Verfahren zur gerätetechnischen Einschränkung der zulässigen Operationen auf Daten in Datenverarbeitungseinheiten
DE102017005975A1 (de) Vorrichtung und Verfahren zur gerätetechnischen Erkennung inkompatibler Operandeneinheiten in Datenverarbeitungseinheiten
DE102017005971A1 (de) Vorrichtung und Verfahren zur gerätetechnischen Erkennung von Wertebereichsverletzungen von Datenwerten in Datenverarbeitungseinheiten
DE102018210733A1 (de) Verfahren zum Überwachen wenigstens einer Recheneinheit
DE102017006354A1 (de) Vorrichtung und Verfahren zur gerätetechnischen Erkennung von absichtlichen oder durch Störungen und / oder Fehler verursachten Datenverfälschungen in Datenverarbeitungseinheiten
EP3876123B1 (de) Anordnung und betriebsverfahren für einen sicheren hochfahrablauf einer elektronischen einrichtung
DE102021209691B3 (de) Verfahren zum Überwachen einer Komponente einer Wirkkette
DE102017005970A1 (de) Vorrichtung und Verfahren zur gerätetechnischen Erkennung von Synchronisations- und Datenaktualisierungsfehlern in Datenverarbeitungseinheiten

Legal Events

Date Code Title Description
R086 Non-binding declaration of licensing interest
R012 Request for examination validly filed
R084 Declaration of willingness to licence
R016 Response to examination communication