DE102017005970A1 - Device and method for the device-specific detection of synchronization and data update errors in data processing units - Google Patents

Device and method for the device-specific detection of synchronization and data update errors in data processing units Download PDF

Info

Publication number
DE102017005970A1
DE102017005970A1 DE102017005970.5A DE102017005970A DE102017005970A1 DE 102017005970 A1 DE102017005970 A1 DE 102017005970A1 DE 102017005970 A DE102017005970 A DE 102017005970A DE 102017005970 A1 DE102017005970 A1 DE 102017005970A1
Authority
DE
Germany
Prior art keywords
data
time step
data processing
processor
identifier
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
DE102017005970.5A
Other languages
German (de)
Inventor
Stefan Andreas Widmann
Wolfgang 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 DE102017005970.5A priority Critical patent/DE102017005970A1/en
Publication of DE102017005970A1 publication Critical patent/DE102017005970A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Detection And Correction Of Errors (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 Erkennung von Synchronisations- und Datenaktualisierungsfehlern den in den Datenelementen (1) enthaltenen Datenwerten (2) eine Zeitschrittkennung (3) zugeordnet ist, die in mindestens zwei Teilkennungen (4, 5) spezifiziert, ob und welchen Zeitschritt der Datenwert besitzt.The invention relates to a data processing unit that generates, processes or uses data consisting of at least one processor with at least one memory in which data in the form of data elements (1) are stored. The invention is characterized in that, for the detection of synchronization and data updating errors, the data values (2) contained in the data elements (1) are assigned a time step identifier (3) which specifies in at least two partial identifications (4, 5) whether and which Time step has the data value.

Description

Die Erfindung betrifft eine Vorrichtung und ein Verfahren zur gerätetechnischen Erkennung von Synchronisations- und Datenaktualisierungsfehlern in Datenverarbeitungseinheiten.The invention relates to a device and a method for the device-specific detection of synchronization and data update errors in data processing units.

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.
It is known that already in the 1960s in data processing systems such. B. the mainframe TR4 [1] the data values more identifiers were added, the
  • • the data type and thus the presentation format of the data value specified and partially
  • • additional bits that allowed an integrity check of the entire data element.

Basierend auf der expliziten, hardwareverständlichen und -prüfbaren Spezifikation des Datentyps innerhalb des Datenworts selbst werden entsprechende Architekturen als Datentyparchitekturen bezeichnet.Based on the explicit, hardware-understandable and verifiable specification of the data type within the data word itself, corresponding architectures are referred to as data type architectures.

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].Furthermore, it is known that in qualification architectures the data element is given a further identifier which specifies the access rights to the data element concerned. Good examples of modern capability architectures are e.g. lowRISC [2] and SAFE [3].

Bekannt sind die folgenden Erkennungsmöglichkeiten von Synchronisations- und Datenaktualisierungsfehlern, die anschließend im Detail vorgestellt werden:

  • • die ANBD-Kodierung nach Forin [5],
  • • die Versionskennung in ADI / SSM des Oracle Sparc-M7-Prozessors [9, 6] und
  • • die Sequenznummern in Kommunikationsprotokollen wie TCP und PROFIsafe.
Known are the following detection possibilities of synchronization and data update errors, which are then presented in detail:
  • • the ANBD coding according to Forin [5],
  • • The version ID in ADI / SSM of the Oracle Sparc M7 processor [9, 6] and
  • • The sequence numbers in communication protocols such as TCP and PROFIsafe.

Die ANBD-Kodierung [5] ist eine arithmetische Kodierung, bei der arithmetische Operationen auf kodierten Werten durchgeführt werden. Dazu werden die Werte kodiert, indem der Datenwert x mit der Integritätsprüfung A multipliziert wird. Zusätzlich werden ein Identifikator B und - für diese Erfindungsmeldung relevant - ein Zeitstempel D addiert.The ANBD coding [5] is an arithmetic coding in which arithmetic operations are performed on coded values. For this purpose, the values are coded by multiplying the data value x by the integrity check A. In addition, an identifier B and, for this disclosure of the invention, a time stamp D are added.

Demnach ergibt sich der kodierte Datenwert xcANBD nach folgender Gleichung x c A N B D = A x + B x + D x t

Figure DE102017005970A1_0001
durch die Multiplikation des Datenwerts x mit der Integritätsprüfung A und der anschließenden Addition einer Adresse oder eines Identifikators Bx und einem Zeitstempel Dxt.Accordingly, the coded data value x cANBD results according to the following equation x c A N B D = A x + B x + D x t
Figure DE102017005970A1_0001
by the multiplication of the data value x by the integrity check A and the subsequent addition of an address or an identifier B x and a time stamp D xt .

Zu jedem Zeitpunkt kann die Integrität eines kodierten Werts verifiziert werden, indem geprüft wird, ob x c A N B D B x D x t = ( A x + B x + D x t ) B x D x t = A x 0  mod  A

Figure DE102017005970A1_0002
bzw. x c A N B D = A x + B x + D x t B x + D x t  mod  A
Figure DE102017005970A1_0003
erfüllt ist. Dadurch lassen sich die folgenden Fehlerarten aufdecken:

  • • ein durch eine fehlerhafte Operation verfälschtes Ergebnis
  • • das Heranziehen eines falschen Operanden durch unpassendes B
  • • das Heranziehen eines veralteten Operanden durch unpassendes D
At any point in time, the integrity of a coded value can be verified by checking whether x c A N B D - B x - D x t = ( A x + B x + D x t ) - B x - D x t = A x 0 mod A
Figure DE102017005970A1_0002
respectively. x c A N B D = A x + B x + D x t B x + D x t mod A
Figure DE102017005970A1_0003
is satisfied. This will reveal the following types of errors:
  • • a result corrupted by a faulty operation
  • • the use of a wrong operand by inappropriate B
  • • the use of an obsolete operand by inappropriate D

Im Sparc-M7-Prozessor stellte Oracle ein neues Sicherheitsmerkmal vor, das zunächst Application Data Integrity ADI [9] genannt und später in Silicon Secured Memory SSM [6] umbenannt wurde. Da beide Begriffe in der Literatur auftauchen, werden beide an dieser Stelle erwähnt.In the Sparc-M7 processor, Oracle introduced a new security feature, first called Application Data Integrity ADI [9] and later renamed to Silicon Secured Memory SSM [6]. Since both terms appear in the literature, both are mentioned here.

Bei ADI / SSM wird Datenblöcken zu je 64 Byte eine 4 Bit breite Versionskennung zugewiesen. Zeiger, über die auf diese Speicherblöcke zugegriffen wird, enthalten ebenfalls eine 4 Bit breite Versionskennung. Beim Zugriff auf den Speicher über diese Zeiger prüft die Hardware, ob die beiden Versionskennungen übereinstimmen. Ist dies nicht der Fall, wird ein Ausnahmefehler gemeldet und in der Folge z.B. das betreffende Programm beendet.For ADI / SSM, data blocks of 64 bytes each are assigned a 4-bit-wide version identifier. Pointers that access these memory blocks also contain a 4-bit version identifier. When accessing the memory via these pointers, the hardware checks to see if the two version identifiers match. If this is not the case, an exception error is reported and, for example, the program in question is terminated.

In Kommunikationsprotokollen wie TCP [10] oder dem sicherheitsgerichteten Feldbusprotokoll PROFIsafe [7] kommen Sequenznummern zum Einsatz, um den Verlust oder die Duplizierung von Datenpaketen zu erkennen. Dabei wird in der Regel erwartet, dass die Sequenznummer sich mit jedem neu empfangenen Datenpaket um Eins erhöht. Bleibt sie gleich, wurde das Datenpaket dupliziert, erhöht sie sich um mehr als Eins, ging ein Paket verloren.Sequence numbers are used in communication protocols such as TCP [10] or the PROFIsafe safety-related fieldbus protocol [7] to detect the loss or duplication of data packets. As a rule, the sequence number is expected to increase by one with each newly received data packet. If it stays the same, the data package was duplicated, if it increases by more than one, a package was lost.

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.Data processing systems are increasingly responsible for people, the environment, and capital goods, and in some applications replace well-tried mechanical systems, such as: B. in the "x-by-wire" systems in avionics and automotive engineering or autonomous control functions in vehicles. Correspondingly serious consequences can not have errors that are not recognized in time.

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.The high complexity of the systems and the software and hardware used in them leads to increased error probabilities. In addition, due to the ever-decreasing structural widths, the integrated circuits used are becoming increasingly sensitive to environmental influences, especially to the effects of radiation.

Verschiedenste Fehlerarten können dafür sorgen, dass zu verarbeitende Daten in Datenverarbeitungssystemen unzureichend synchronisiert werden oder Aktualisierungen von Daten fehlschlagen. 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.Various types of errors can cause the data to be processed in data processing systems to be insufficiently synchronized or data updates to fail. Processing this data results in erroneous results that can lead to dangerous failures of an entire data processing system. This is particularly relevant to the safety-related applications mentioned above, where such failures can result in personal injury, environmental damage or property damage.

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 - den diskreten Zeitschritt des Datenwerts 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.Data is represented in conventional data processing systems only by their data value. About the other data properties such. As data type and - particularly relevant to this invention - the discrete time step of the data value only implicit assumptions are made by the way the data is used. So the hardware can not check these data properties because they are not known to it.

Keine der bisher genannten Architekturarten wie Datentyp- oder Befähigungsarchitekturen unterstützt die Spezifikation der Einheit des Datenwerts in einer Kennung, die dann automatisch von der die Daten verarbeitenden Hardware in den Datenverarbeitungseinheiten geprüft oder gesetzt werden könnte.None of the architecture types mentioned above, such as data type or capability architectures, support the specification of the unit of data value in an identifier, which could then be automatically checked or set by the data processing hardware in the data processing units.

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 - die Aktualität und den Entstehungszeitpunkt werden nur implizite Annahmen durch die Art der Verwendung der Daten getroffen. Die Hardware kann also keine Überprüfungen von Dateneigenschaften vornehmen, da sie diese nicht kennt.Data is represented in conventional data processing systems only by their data value. About the other data properties such. Data type and - for this invention disclosure particularly relevant - the timeliness and the date of origin only implicit assumptions are made by the way the data is used. So the hardware can not check data properties because it does not know them.

Durch Fehler, z.B. Adressierungsfehler, kann es dazu kommen, dass Datenwerte nicht aktualisiert werden oder - bei nebenläufiger Verarbeitung - verschiedene Prozesse nicht korrekt synchronisiert werden, wodurch es zu Inkonsistenzen der ausgetauschten Daten kommen kann.By mistake, e.g. Addressing errors, data values may not be updated or, with concurrent processing, different processes may not be synchronized correctly, which may cause inconsistencies in the data being exchanged.

Problematisch ist bei der ANBD-Kodierung, dass die Kodierung auf bestimmte Datentypen und Operationen beschränkt ist. Zudem sind die kodierten Werte im Gegensatz zu den unkodierten nicht menschenlesbar, wodurch die Fehlersuche im Programm erschwert wird. Die kodierten Werte haben weiterhin eine höhere Bitbreite, als die unkodierten Werte. Bei bestimmten arithmetischen Operationen sind nach der Durchführung der Operation umfangreiche Korrekturmaßnahmen durchzuführen, um wieder einen erwartungsgemäß kodierten Ergebniswert zu erhalten. Dadurch ergibt sich ein entsprechend erhöhter Laufzeitbedarf. Weitere Schwierigkeiten, wie z.B. die Bedingung, dass B + D < A

Figure DE102017005970A1_0004
zur Wahrung der Aussagekraft der beschriebenen Prüfungen gelten muss und die Notwendigkeit, B und D in irgendeiner Form für die einzelnen Operanden zu speichern oder zu berechnen, um sie für entsprechende Integritätsprüfungen heranziehen zu können, limitieren die Einsatzmöglichkeiten der ANBD-Kodierung zusätzlich. Bei jeder Werteaktualisierung muss das in die Kodierung eingehende D neu gesetzt werden.The problem with the ANBD coding is that the coding is restricted to certain data types and operations. In addition, unlike the uncoded ones, the coded values are not human-readable, which makes troubleshooting in the program more difficult. The coded values continue to have a higher bit width than the uncoded values. For certain arithmetic operations, after the operation has been performed, extensive corrective measures have to be taken in order to obtain an expected coded result value. This results in a correspondingly increased runtime requirement. Other difficulties, such as the condition that B + D < A
Figure DE102017005970A1_0004
to maintain the validity of the tests described and the need to store or compute B and D in any form for each operand, in order to make them appropriate To be able to use integrity checks, the application possibilities of the ANBD coding are additionally limited. For each value update, the D coming into the coding must be reset.

Dadurch, dass die Übereinstimmung der Versionsnummern in Zeiger und Datenblock bei ADI / SSM auf Hardwarebasis zeitgleich zum eigentlichen Zugriff geprüft wird, entsteht durch die Prüfung kein erhöhter Laufzeitbedarf. Durch das Verfahren lassen sich bestimmte Konstellationen von verlorengegangenen Datenaktualisierungen und Synchronisationsfehler aufdecken. Allerdings ist die Granularität recht grob, da nur 64-Byte-Blöcke mit einer Versionskennung versehen werden können. Weiterhin ist die Kennung mit nur 4 Bit sehr klein, es können daher gerade einmal 16 Versionsstände durch die Hardware unterschieden werden. Bei jeder Änderung der Version eines Datenblocks muss die erwartete Version im dazugehörenden Zeiger ebenfalls geändert werden, da die absoluten Werte der Versionskennungen miteinander verglichen werden und keine Prüfung einer Differenz zwischen Versionskennungen vorgesehen ist. Ebenso ist kein Präsenzbit vorgesehen, anhand dessen erkannt werden könnte, dass ein Datenblock keine Versionsnummer besitzen soll.The fact that the match of the version numbers in the pointer and the data block is checked at ADI / SSM on a hardware basis at the same time as the actual access does not result in an increased runtime requirement. The method reveals certain constellations of lost data updates and synchronization errors. However, the granularity is quite crude, since only 64-byte blocks can be provided with a version identifier. Furthermore, the identifier with only 4 bits is very small, so it can be distinguished by the hardware just 16 versions. Each time you change the version of a data block, the expected version in the associated pointer must also be changed because the absolute values of the version identifiers are compared and no verification of a difference between version identifiers is provided. Likewise, no presence bit is provided, by which it could be detected that a data block should not have a version number.

Bei Kommunikationsprotokollen wie TCP und PROFIsafe werden Sequenznummern beim Versand der Nachricht in Form eines Datenpakets den Daten hinzugefügt, also nicht von der erzeugenden Programminstanz in die Daten eingebracht, sondern von einer Kommunikationstreiberschicht. Weiterhin werden die Sequenznummern nach dem Erhalt des Datenpakets auf Empfängerseite wieder von den Daten getrennt, worauf diese wieder ohne diese vorliegen. Fehler innerhalb von Datenquellen oder Datenverarbeitungseinheiten können durch die Sequenznummern innerhalb der Datenpakete also nicht aufgedeckt werden, diese liegen jedoch auch nicht im Fokus der Kommunikationsprotokolle.In communication protocols such as TCP and PROFIsafe, sequence numbers are added to the data when the message is sent in the form of a data packet, that is to say they are not introduced into the data by the generating program instance, but by a communication driver layer. Furthermore, the sequence numbers are again separated from the data after receipt of the data packet on the receiver side, whereupon these again exist without them. Errors within data sources or data processing units can therefore not be revealed by the sequence numbers within the data packets, but these are also not in the focus of the communication protocols.

Ein gutes Beispiel, bei dem es zu Personenschäden kam, war das medizinische Bestrahlungsgerät Therac-25 [8], bei dem es durch unzureichende Synchronisierungsmechanismen zu Vermischungen von alten und neuen Betriebsparametern kam, wodurch Patienten teilweise massiv verstrahlt wurden und teilweise an den Folgen verstarben. Wäre hier die Gültigkeit der Parameter auf eine Behandlungsdauer befristet worden, dann wären die unzulässigen veralteten Parameter erkannt worden.A good example of personal injury was the medical irradiation device Therac-25 [8], which caused mismatching of old and new operating parameters due to inadequate synchro- nization mechanisms, which in some cases massively irradiated patients and sometimes resulted in deaths. If the validity of the parameters had been limited to a treatment period, then the invalid outdated parameters would have been recognized.

Ein weiteres Beispiel ist die Heartbleed-Sicherheitslücke. Im April 2014 wurde ein Fehler in der OpenSSL Kryptographiebibliothek bekannt, der zur Folge hatte, dass Millionen Serversysteme umgehend aktualisiert werden mussten [4]. Ein Fehler in einer speziellen Funktion innerhalb der Bibliothek, die für ein zyklisches Lebenszeichen, den sogenannten Herzschlag, engl. „Heartbeat“, genutzt werden sollte, erlaubte es, Speicherinhalte aus dem Speicher des Zielrechners auszulesen, die hochsensible Daten über verschlüsselte Verbindungen enthielten. Vom Namen der eigentlichen Funktion abgeleitet, wurde der Fehler auf den Namen „Heartbleed“ getauft und mit einem entsprechenden Emblem versehen.Another example is the heartbleed vulnerability. In April 2014, a bug in the OpenSSL cryptography library became known that resulted in millions of server systems having to be updated immediately [4]. An error in a special function within the library that is responsible for a cyclic sign of life, the so-called heartbeat. "Heartbeat" was used, it allowed to read memory contents from the memory of the target computer, which contained highly sensitive data over encrypted connections. Derived from the name of the actual function, the error was baptized with the name "Heartbleed" and provided with an appropriate emblem.

Der eigentliche Fehler bestand darin, dass es einem Angreifer möglich war, eine geringe Anzahl an Zusatzbytes an einen Server zu senden und das Zurücksenden von einer deutlich größeren Anzahl an Bytes zurückzufordern. Eine Plausibilitätsprüfung von Anzahl der gesendeten Bytes und der Anzahl der angeforderten Bytes, die zurückgesendet werden sollten, erfolgte nicht. Auf diese Weise konnten Angreifer die bereits erwähnten hochsensiblen Daten von anderen Kommunikationsverbindungen empfangen. Exzellent veranschaulicht werden die Auswirkungen des Fehlers in [11].The real mistake was that it was possible for an attacker to send a small number of extra bytes to a server and reclaim the return from a significantly larger number of bytes. A plausibility check of the number of bytes sent and the number of requested bytes that should be returned did not occur. In this way, attackers were able to receive the previously mentioned highly sensitive data from other communication links. The effects of the error in [11] are excellently illustrated.

Die Aufgabe der Erfindung ist es, Synchronisations- und Datenaktualisierungsfehler auf einfache Weise durch die Hardware einer Datenverarbeitungseinheit zu erkennen.The object of the invention is to recognize synchronization and data updating errors in a simple manner by the hardware of a data processing unit.

Die Aufgabe wird bezogen auf die Datenverarbeitungseinheit durch die Merkmale der Ansprüche 1 und 6 und bezogen auf das Verfahren durch die Merkmale der Ansprüche 7 und 9 gelöst. Die Unteransprüche stellen jeweils vorteilhafte Ausgestaltungen dar.The object is based on the data processing unit by the features of claims 1 and 6 and based on the method by the features of claims 7 and 9 solved. The dependent claims each represent advantageous embodiments.

Bezogen auf die Datenverarbeitungseinheiten sieht die Lösung vor, den einzelnen Datenelementen zusätzlich zum Datenwert eine Zeitschrittkennung hinzuzufügen, die den diskreten Zeitschritt des Datenwerts angibt. Bei jeder Aktualisierung des Datenwerts erhöht die datenerzeugende Datenverarbeitungseinheit den Zeitschritt des Datenwerts um Eins. Das ermöglicht einer diese Daten verarbeitenden Datenverarbeitungseinheit, bei der Verarbeitung der Daten deren Aktualität und Synchronität sicherzustellen. 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. Vorteilshafterweise ist die Zeitschrittkennung untrennbar mit dem Datenwert verbunden und wird mit ihm gespeichert, verarbeitet und übertragen.With respect to the data processing units, the solution provides to add a time step identifier to the individual data elements in addition to the data value, which indicates the discrete time step of the data value. Each time the data value is updated, the data-generating data processing unit increments the time step of the data value by one. This allows a data processing unit processing this data to ensure their timeliness and synchronicity when processing the data. For the purposes of this invention, the term "data processing unit" is to be understood as meaning all technical devices which generate, process or use data, such as data. As sensors, process computers and actuators. In such devices, at least one processor is present, the stored data stored in at least one memory, read from such, processed and possibly stores the results again in such a memory. A corresponding processor can, for. B. also be implemented in programmable hardware such as FPGAs. Data elements in the The purposes of this invention are data words in a memory or register which contain, in addition to the data value, further information about the data value itself. Advantageously, the time step identifier is inseparably connected to the data value and is stored, processed and transmitted with it.

Bezogen auf die Datenverarbeitungseinheiten sieht die Lösung weiterhin vor, zusätzliche Befehle im Prozessor der Datenverarbeitungseinheit vorzusehen, mit deren Hilfe sich weitere Prüf- und Verwaltungsmöglichkeiten der Zeitschrittkennungen von Operanden ergeben:

  • • ein Befehl erlaubt das Setzen der Zeitschritt- und Präsenzbitteilkennungen der Zeitschrittkennung eines Operanden, um neu erzeugten Daten einen Zeitschritt in deren Zeitschrittkennung zuzuweisen und
  • • ein weiterer Befehl erlaubt die explizite Prüfung des Zeitschritts eines Operanden, um sicherzustellen, dass dieser den erwarteten Zeitschritt aufweist.
With respect to the data processing units, the solution also provides for additional instructions to be provided in the processor of the data processing unit, with the aid of which further checking and administration possibilities of the time step identifiers of operands result:
  • A command allows the setting of the time step and presence bit part identifiers of the time step identifier of an operand in order to assign a time step in its time step identifier to newly generated data and
  • • Another command allows the explicit checking of the time step of an operand to ensure that it has the expected time step.

Bezogen auf die Datenverarbeitungseinheiten sieht die Lösung weiterhin vor, den in mindestens einem Speicher abgelegten Befehlselementen ebenfalls eine Zeitschrittkennung 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 Zeitschrittkennung im Befehlselement besteht aus mindestens zwei Teilkennungen: mindestens einem Präsenzbit und mindestens einer Spezifikation der erwarteten temporalen Beziehung mindestens zweier Operanden des Befehls, d. h. der Differenz der Zeitschritte besagter Operanden. Vorteilshafterweise ist in einer weiteren Teilkennung ein Inkrementalbit vorhanden.With regard to the data processing units, the solution also provides for adding a time step identifier to the command elements stored in at least one memory. In the context of this invention, command elements are command words in a memory or register which, in addition to the command code and the specification of the operands of the command, contain further information relevant to the execution of the command. The time step identifier in the instruction element consists of at least two partial identifiers: at least one presence bit and at least one specification of the expected temporal relationship of at least two operands of the instruction, d. H. the difference of the time steps of said operands. Advantageously, an incremental bit is present in a further partial identifier.

Bezogen auf das Verfahren sieht die Lösung vor, dass der Prozessor der Datenverarbeitungseinheit bei der Ausführung von Befehlen den Inhalt der Zeitschrittkennung des auszuführenden Befehlselements ausliest und interpretiert. Hat das Präsenzbit den Wert Null, so gibt die Zeitschrittkennung keine relative temporale Beziehung der Operanden des Befehls vor und der Prozessor führt keine Prüfung der Inhalte der Zeitschrittkennungen der Operanden des Befehls durch. Hat das Präsenzbit den Wert Eins, so bildet der Prozessor die Differenz der Inhalte der Zeitschrittkennungen mindestens eines Operandenpaares und vergleicht diese mit den Inhalten der Zeitschrittteilkennung des Befehls. Stellt der Prozessor bei dieser Prüfung 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 beschriebene Prüfung zeitgleich zur Ausführung der Verarbeitung der Datenwerte erfolgt. Weist das Präsenzbit in den Zeitschrittkennungen eines der zu prüfenden Operanden den Wert Null aus, so besitzt dieser Operand keinen zu prüfenden Zeitschritt und der Prozessor führt keine Berechnung und Prüfung der Differenz der Zeitschritte des betreffenden Operandenpaares durch.With regard to the method, the solution provides that the processor of the data processing unit reads out and interprets the content of the time step identifier of the command element to be executed when instructions are executed. If the presence bit is zero, the time step identifier does not specify a relative temporal relationship of the operands of the instruction, and the processor does not check the contents of the time step identifiers of the instruction's operands. If the presence bit has the value one, the processor forms the difference between the contents of the time step identifiers of at least one operand pair and compares these with the contents of the time step subcode of the command. If the processor detects a deviation during this check, a corresponding error handling can be initiated. Possible reactions are z. For example, the triggering of an exception error and / or the transfer of the system to a safe state and / or a reboot of the system. Advantageously, it is proposed that the test described occur simultaneously with the execution of the processing of the data values. If the presence bit in the time step identifiers of one of the operands to be tested has the value zero, then this operand has no time step to be checked and the processor does not perform a calculation and check of the difference of the time steps of the relevant operand pair.

Bezogen auf das Verfahren sieht die Lösung weiterhin vor, dass der Prozessor der Datenverarbeitungseinheit den Zeitschritt des Ergebnisses eines auszuführenden Befehls anhand der Zeitschritte der Quelloperanden und dem Inkrementalbit innerhalb der Zeitschrittkennung des Befehlselements bestimmt. Besitzt keiner der Quelloperanden einen Zeitschritt, also alle Präsenzbits innerhalb der Zeitschrittkennung der Operanden weisen den Wert Null auf, so wird auch dem Ergebnis kein Zeitschritt zugewiesen, das Präsenzbit innerhalb der Zeitschrittkennung des Ergebnisses wird also auf Null gesetzt. Hat nur ein Quelloperand einen Zeitschritt, bei dem also das Präsenzbit innerhalb der Zeitschrittkennung den Wert Eins aufweist, so wird dieser Zeitschritt als Zeitschritt des Ergebnisses gewählt. Haben zwei oder mehr Quelloperanden einen Zeitschritt, so bestimmt der Prozessor durch Bildung der Differenzen den jüngsten Zeitschritt und wählt diesen als zu setzenden Zeitschritt des Ergebnisses aus. Abhängig vom Wert des Inkrementalbits innerhalb der Zeitschrittkennung des Befehlselements wird der für das Ergebnis ausgewählte Zeitschritt vor dem Speichern in die Zeitschrittkennung des Ergebnisses um Eins erhöht. Hat das Inkrementalbit den Wert Null, so erfolgt besagte Erhöhung nicht, hat es den Wert Eins, erfolgt die Erhöhung. Mit Vorteil wird vorgeschlagen, dass die beschriebene Bestimmung des Zeitschritts des Ergebnisses zeitgleich zur Ausführung der Verarbeitung der Datenwerte erfolgt.With regard to the method, the solution further provides that the processor of the data processing unit determines the time step of the result of a command to be executed based on the time increments of the source operands and the incremental bit within the time step identifier of the command element. If none of the source operands has a time step, ie all presence bits within the time step identifier of the operands have the value zero, the result is not assigned any time step, ie the presence bit within the time step identifier of the result is set to zero. If only one source operand has a time step in which the presence bit within the time step identifier therefore has the value one, then this time step is selected as the time step of the result. If two or more source operands have a time step, the processor determines the most recent time step by forming the differences and selects this as the time step of the result to be set. Depending on the value of the incremental bit within the time step identifier of the command element, the time step selected for the result is incremented by one before being stored in the time step identifier of the result. If the incremental bit has the value zero, said increase does not take place; if it has the value one, the increase takes place. It is advantageously proposed that the described determination of the time step of the result takes place at the same time as the execution of the processing of the data values.

Die Erfindung wird nachfolgend anhand einer Zeichnung näher beschrieben. 1 der Zeichnung zeigt, wie dem Datenwert (2) innerhalb eines Datenelements (1) eine Zeitschrittkennung (3) hinzugefügt wird. Diese beschreibt - sofern vorhanden - den diskreten Zeitschritt des Datenwerts. 2 der Zeichnung zeigt die Aufteilung der Zeitschrittkennung in mindestens zwei Teilkennungen: ein Präsenzbit (4) und eine Zeitschrittangabe (5). Die Reihenfolge der Teilkennungen ist in der Figur nur exemplarisch dargestellt, jede andere Anordnung ist ebenfalls möglich.The invention will be described below with reference to a drawing. 1 the drawing shows how the data value ( 2 ) within a data element ( 1 ) a time step identifier ( 3 ) will be added. This describes - if available - the discrete time step of the data value. 2 of the drawing shows the division of the time step identifier into at least two partial identifiers: a presence bit ( 4 ) and a time step indication ( 5 ). The order of the partial identifiers is shown in the figure only as an example, any other arrangement is also possible.

3 der Zeichnung zeigt, wie in den Befehlselementen (6) neben dem eigentlichen Befehl und seinen Operanden bzw. Operandenadressen (7) ebenfalls eine Zeitschrittkennung (8) vorhanden ist. 4 der Zeichnung zeigt die Gliederung der Zeitschrittkennung in den Befehlselementen (6) in mindestens 3 Teilkennungen. Diese sind Präsenzbit (9), mindestens eine Angabe der relativen temporalen Beziehung zweier Operanden (10) und ein Inkrementalbit (11). Die Reihenfolge der Teilkennungen ist in der Figur nur exemplarisch dargestellt, jede andere Anordnung ist ebenfalls möglich. 3 the drawing shows how in the command elements ( 6 ) next to the actual instruction and its operands or operand addresses ( 7 ) also a time step identifier ( 8th ) is available. 4 The drawing shows the structure of the time step identifier in the command elements ( 6 ) in at least 3 partial identifiers. These are presence bits ( 9 ), at least one indication of the relative temporal relationship of two operands ( 10 ) and an incremental bit ( 11 ). The order of the partial identifiers is shown in the figure only as an example, any other arrangement is also possible.

Die Erfindung hat gegenüber dem Stand von Wissenschaft und Technik die folgenden Vorteile:

  • • Die Darstellung in Form einer Zeitschrittkennung ist für die Hardware verständlich, wodurch diese die Prüfungen zeitgleich zur Ausführung der eigentlichen Operation durchführen kann, es entsteht also kein erhöhter Laufzeitbedarf.
  • • Gegenüber der Versionskennung (ADI bzw. SSM) des Oracle Sparc-M7-Prozessors hat die Erfindung die folgenden Vorteile:
    • - die Zeitschrittkennung ist feingranular den einzelnen Datenwerten und nicht Blöcken mit 64 Byte Größe zugeordnet
    • - die relative temporale Beziehung in der Zeitschrittkennung der Befehle spezifiziert die Differenz der Zeitschritte der Operanden des jeweiligen Befehls, wodurch keine Prüfung auf absolute Zeitschrittangaben stattfinden muss
  • • Gegenüber der ANBD-Kodierung bestehen die folgenden Vorteile:
    • - es besteht keine Beschränkung der Anwendbarkeit der Zeitschrittkennung auf bestimmte Datentypen oder Operationen
    • - die Bitbreite der Datenwerte erhöht sich durch den Einsatz der Zeitschrittkennung nicht, wodurch keine Probleme bei der Nutzung von Datentypen mit der höchsten nativ durch die Prozessorarchitektur unterstützten Bitbreite auftreten
    • - da keine Kodierung der Datenwerte stattfindet, bleiben die Datenwerte bei der Fehlersuche menschenlesbar
    • - da in den Zeitschrittkennungen der Befehle relative temporale Beziehungen der Operanden spezifiziert werden, ist es nicht notwendig, absolute Zeitschrittwerte für die Prüfung der Aktualität der Operanden getrennt von diesen zu speichern und zur Prüfung heranzuziehen
  • • Gegenüber den Kommunikationslösungen, bei denen Sequenznummern zum Einsatz kommen, wie z.B. TCP oder das sicherheitsgerichtete Feldbusprotokoll PROFIsafe (IEC 61784-3-3), hat die Zeitschrittkennung die folgenden Vorteile:
    • - da die Zeitschrittkennung vorteilshafterweise untrennbar mit den Daten verbunden ist, wird sie mit ihnen übertragen und gespeichert und liegt daher zu jeder Zeit unmittelbar vor und muss nicht implizit mit den Daten in Verbindung gebracht werden
    • - die Zeitschrittkennung ist feingranular jedem einzelnen Datenwert hinzugefügt
  • • 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 i.d.R. bei jedem Projekt erneut durchlaufen werden.
The invention has the following advantages over the state of science and technology:
  • • The representation in the form of a time step identifier is understandable for the hardware, so that it can carry out the tests at the same time as the actual operation, so there is no longer run time requirement.
  • • Compared to the version identifier (ADI or SSM) of the Oracle Sparc M7 processor, the invention has the following advantages:
    • - The time step identifier is finely granularly assigned to the individual data values and not to blocks with a size of 64 bytes
    • the relative temporal relationship in the time step identifier of the instructions specifies the difference in the time steps of the operands of the respective instruction, whereby no checking must be performed on absolute time step indications
  • • Compared to ANBD coding, there are the following advantages:
    • there is no limitation on the applicability of the time step identifier to certain data types or operations
    • the bit width of the data values is not increased by the use of the time step identifier, whereby no problems arise when using data types with the highest natively supported by the processor architecture bit width
    • - Since there is no encoding of the data values, the data values remain human-readable during debugging
    • since relative temporal relations of the operands are specified in the time step identifiers of the instructions, it is not necessary to store absolute time step values for checking the actuality of the operands separately from these and to use them for checking
  • • Compared with communication solutions that use sequence numbers, such as TCP or the PROFIsafe safety-related fieldbus protocol (IEC 61784-3-3), the time step identifier has the following advantages:
    • since the time step identifier is advantageously inseparably linked to the data, it is transmitted and stored with them and is therefore immediately available at all times and does not need to be implicitly associated with the data
    • - The time step identifier is finely granular added to each individual data value
  • • As it is a device-based solution, the solution is specified, designed, implemented and tested only once. For software-based solutions, this procedure usually has to be repeated for each project.

Die Zuweisung eines spezifischen Zeitschritts zu jedem Satz zu einer bestimmten Behandlungssitzung gehörender Behandlungsparameter des Therac-25 nach den Merkmalen dieser Erfindung hätte die Vermischung alter und neuer Parameter anhand voneinander abweichenden Zeitschritten aufgedeckt und mit entsprechender Fehlerbehandlung die Verstrahlung der Patienten verhindern können.The allocation of a specific time step to each set of treatment parameters of the Therac-25 according to the features of this invention would have revealed the mixing of old and new parameters on the basis of differing time steps and, with appropriate error treatment, could prevent the radiation of the patients.

Auch die eingangs beschriebene Heartbleed-Sicherheitslücke hätte bei Anwendung der Merkmale dieser Erfindung wesentlich geringere Auswirkungen gehabt, wenn alle zu einem spezifischen Datenblock gehörenden Daten mit einem identischen Zeitschritt versehen worden wären. Die Änderung des Zeitschritts beim Überschreiten der Datenblockgrenzen beim Kopieren der Daten wäre durch den Prozessor sofort erkannt worden und mit entsprechender Fehlerbehandlung wären keinerlei vertrauliche Speicherinhalte an einen Angreifer gesendet worden.Also, the heartbleed vulnerability described above would have had much less impact using the features of this invention if all the data associated with a specific data block had been provided with an identical time step. The change in the time step when the data block boundaries were exceeded when copying the data would have been recognized immediately by the processor and, with appropriate error handling, no confidential memory contents would have been sent to an attacker.

Literatur literature

  1. [1] AEG Datenverarbeitung: TR 4 Bedienungshandbuch[1] AEG Data Processing: TR 4 Operation Manual
  2. [2] A. Bradbury, G. Ferris, R. Mullins: Tagged memory and minion cores in the lowRISC SoC; 2014; http://www.lowrisc.org/docs/[2] A. Bradbury, G. Ferris, R. Mullins: Tagged memory and minion cores in the lowRISC SoC; 2014; http://www.lowrisc.org/docs/
  3. [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[3] S. Chiricescu, A. DeHon, D. Demange, S. Iyer, A. Kliger, G. Morrisett, BC Pierce, H. Reubenstein, JM Smith, GT Sullivan, A. Thomas, J. Tov, CM White , D. Wittenberg: SAFE: A Clean-Slate Architecture for Secure Systems; http://www.crash-safe.org/docs/ HST2013-SAFE.html; 2013
  4. [4] CODENOMICON: The Heartbleed Bug; http://heartbleed.com/; 2014[4] CODENOMICON: The Heartbleed Bug; http://heartbleed.com/; 2014
  5. [5] P. Forin: Vital Coded Microprocessor Principles and Application for Various Transit Systems; 1989; IFAC Control, Computers, Communications; S. 79-84; Paris [5] P. Forin: Vital Coded Microprocessor Principles and Application for Various Transit Systems; 1989; IFAC Control, Computers, Communications; Pp. 79-84; Paris
  6. [6] D. Gove, R. Prakash: Detecting memory access errors; 2015; https://blogs.oracle.com/raj/resource/Silicon-Secured-Memory-Application.pdf [6] D. Gove, R. Prakash: Detecting memory access errors; 2015; https://blogs.oracle.com/raj/resource/Silicon-Secured-Memory-Application.pdf
  7. [7] IEC 61784-3-3:2010: Industrial communication networks - Profiles - Part 3-3: Functional safety fieldbuses - Additional specifications for CPF 3 (Edition 2.0, 2010-06) [7] IEC 61784-3-3: 2010: Industrial communication networks - Profiles - Part 3-3: Functional safety fieldbuses - Additional specifications for CPF 3 (Edition 2.0, 2010-06)
  8. [8] N. G. Leveson, C. S. Turner: An Investigation of the Therac-25 Accidents; Computer, Vol. 26, Issue 7; S. 18-41; 1993 [8th] NG Leveson, CS Turner: An Investigation of the Therac-25 Accidents; Computer, Vol. 26, Issue 7; Pp. 18-41; 1993
  9. [9] Oracle: Introduction to SPARC M7 and Application Data Integrity (ADI); https://swisdev.oracle.com/_files/What-Is-ADI.html[9] Oracle: Introduction to SPARC M7 and Application Data Integrity (ADI); https://swisdev.oracle.com/_files/What-Is-ADI.html
  10. [10] RFC 793: Transmission Control Protocol, DARPA Internet Program, Protocol Specification; September 1981; http://www.rfc-base.org/ rfc-793.html[10] RFC 793: Transmission Control Protocol, DARPA Internet Program, Protocol Specification; September 1981; http://www.rfc-base.org/rfc-793.html
  11. [11] xkcd: Heartbleed Explanation; http: //xkcd.com/1354/[11] xkcd: Heartbleed Explanation; http://xkcd.com/1354/

ZITATE ENTHALTEN IN DER BESCHREIBUNG QUOTES INCLUDE IN THE DESCRIPTION

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.This list of the documents listed by the applicant has been generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte Nicht-PatentliteraturCited non-patent literature

  • P. Forin: Vital Coded Microprocessor Principles and Application for Various Transit Systems; 1989; IFAC Control, Computers, Communications; S. 79-84; Paris [0036]P. Forin: Vital Coded Microprocessor Principles and Application for Various Transit Systems; 1989; IFAC Control, Computers, Communications; Pp. 79-84; Paris [0036]
  • D. Gove, R. Prakash: Detecting memory access errors; 2015; https://blogs.oracle.com/raj/resource/Silicon-Secured-Memory-Application.pdf [0036]D. Gove, R. Prakash: Detecting memory access errors; 2015; https://blogs.oracle.com/raj/resource/Silicon-Secured-Memory-Application.pdf [0036]
  • IEC 61784-3-3:2010: Industrial communication networks - Profiles - Part 3-3: Functional safety fieldbuses - Additional specifications for CPF 3 (Edition 2.0, 2010-06) [0036]IEC 61784-3-3: 2010: Industrial communication networks - Profiles - Part 3-3: Functional safety fieldbuses - Additional specifications for CPF 3 (Edition 2.0, 2010-06) [0036]
  • N. G. Leveson, C. S. Turner: An Investigation of the Therac-25 Accidents; Computer, Vol. 26, Issue 7; S. 18-41; 1993 [0036]Leveson, C.S. Turner: An Investigation of the Therac-25 Accidents; Computer, Vol. 26, Issue 7; Pp. 18-41; 1993 [0036]

Claims (9)

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 Erkennung von Synchronisations- und Datenaktualisierungsfehlern den in den Datenelementen (1) enthaltenen Datenwerten (2) eine Zeitschrittkennung (3) zugeordnet ist, die in mindestens zwei Teilkennungen (4, 5) spezifiziert, ob und welcher Zeitschritt dem Datenwert zugeordnet ist.Data processing unit that generates, processes or uses data consisting of at least one processor with at least one memory in which data in the form of data elements (1) are stored, characterized in that for detecting synchronization and data updating errors in the data elements (1 2) is assigned a time step identifier (3) which specifies in at least two partial identifications (4, 5) whether and which time step is assigned to the data value. Datenverarbeitungseinheit nach Anspruch 1, dadurch gekennzeichnet, dass die Zeitschrittkennung (3) untrennbar mit dem Datenwert (2) im Datenelement (1) verknüpft ist und mit diesem gespeichert, verarbeitet und übertragen wird.Data processing unit after Claim 1 , characterized in that the time step identifier (3) is inseparably linked to the data value (2) in the data element (1) and is stored, processed and transmitted therewith. Datenverarbeitungseinheit nach Anspruch 1, dadurch gekennzeichnet, dass der Prozessor Befehle zur Prüfung und Verwaltung der Inhalte der Zeitschrittkennungen (3) von Datenelementen (1) vorsieht.Data processing unit after Claim 1 , characterized in that the processor provides commands for checking and managing the contents of the time step identifications (3) of data elements (1). Datenverarbeitungseinheit nach Anspruch 3, dadurch gekennzeichnet, dass der Prozessor einen Befehl zur expliziten Prüfung der Inhalte der Zeitschrittkennung (3) und damit des Zeitschritts mindestens eines Datenelements (1) zur Verfügung stellt.Data processing unit after Claim 3 , characterized in that the processor provides a command for explicitly checking the contents of the time step identifier (3) and thus of the time step of at least one data element (1). Datenverarbeitungseinheit nach Anspruch 3, dadurch gekennzeichnet, dass der Prozessor einen Befehl zum Setzen der Inhalte der Zeitschrittkennung (3) und damit des Zeitschritts mindestens eines Datenelements (1) zur Verfügung stellt.Data processing unit after Claim 3 , characterized in that the processor provides a command for setting the contents of the time step identifier (3) and thus of the time step of at least one data element (1). Datenverarbeitungseinheit, die Daten erzeugt, verarbeitet oder nutzt, bestehend aus mindestens einem Prozessor mit mindestens einem Speicher, in dem Befehle in Form von Befehlselementen (6) abgelegt sind, dadurch gekennzeichnet, dass zur Spezifikation der erwarteten temporalen Beziehung mindestens zweier Operanden des Befehls eine Zeitschrittkennung (8) in den Befehlselementen (6) vorhanden ist.Data processing unit that generates, processes or uses data consisting of at least one processor with at least one memory in which instructions are stored in the form of instruction elements (6), characterized in that a time step identifier for specifying the expected temporal relationship of at least two operands of the instruction (8) is present in the command elements (6). Verfahren zur Erkennung von Synchronisations- und Datenaktualisierungsfehlern in Datenverarbeitungseinheiten, bestehend aus mindestens einem Prozessor mit mindestens einem Speicher, in dem Daten in Form von Datenelementen (1) abgelegt sind, und Befehlen in Form von Befehlselementen (6), die im selben oder weiteren Speichern abgelegt sind, dadurch gekennzeichnet, dass der Prozessor zusätzlich zur Ausführung einer datenverarbeitenden Operation anhand des Präsenzbits (9) innerhalb der Zeitschrittkennung des Befehlselements (6) feststellt, ob eine relative temporale Beziehung der Operanden geprüft werden soll, sowie anhand der Präsenzbits (4) der Zeitschrittkennungen (3) der Operanden feststellt, ob den Operanden ein Zeitschritt zugeordnet ist und, falls mindestens zwei Operanden ein Zeitschritt zugeordnet ist, die Differenz der Zeitschritte (5) der mindestens zwei Operanden bildet und mit mindestens einer Angabe einer relativen temporalen Beziehung (10) in der Zeitschrittkennung (8) im Befehlselement (6) vergleicht.Method for detecting synchronization and data updating errors in data processing units, comprising at least one processor with at least one memory in which data is stored in the form of data elements (1) and commands in the form of command elements (6) in the same or further memory are stored, characterized in that the processor in addition to the execution of a data processing operation based on the presence of bits (9) within the time step identifier of the command element (6) determines whether a relative temporal relationship of the operands to be checked, and based on the presence of bits (4) Time step identifiers (3) of the operands determines whether a time step is assigned to the operands and, if at least two operands a time step is assigned, the difference of the time steps (5) forms the at least two operands and with at least one indication of a relative temporal relationship (10) in the time step identifier (8) in the command element (6) compares. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass der Prozessor bei Feststellen der Nichterfüllung der durch die Zeitschrittkennung (8) des Befehls spezifizierten relativen temporalen Beziehung der Operanden in der Folge einen Ausnahmefehler meldet und / oder die Datenverarbeitungseinheit in einen sicheren Zustand überführt und / oder neu startet.Method according to Claim 7 CHARACTERIZED IN THAT , upon detection of the non-satisfaction of the relative temporal relationship of the operands specified by the time step identifier (8) of the instruction, the processor reports an exception error and / or transfers the data processing unit to a secure state and / or restarts. Verfahren zum automatischen Setzen der Inhalte der Zeitschrittkennung (3) des Ergebnisses einer Operation in Datenverarbeitungseinheiten, bestehend aus mindestens einem Prozessor mit mindestens einem Speicher, in dem Daten in Form von Datenelementen (1) abgelegt sind, und Befehlen in Form von Befehlselementen (6), die im selben oder weiteren Speichern abgelegt sind, dadurch gekennzeichnet, dass der Prozessor zusätzlich zur Ausführung der datenverarbeitenden Operation den Zeitschritt des Ergebnisses anhand der Inhalte der Zeitschrittkennungen (3) der zu verarbeitenden Daten und des Inkrementalbits (11) innerhalb der Zeitschrittkennung (8) des Befehlselements (6) bestimmt und in der Zeitschrittkennung (3) des Ergebnisses speichert.Method for automatically setting the contents of the time step identifier (3) of the result of an operation in data processing units, comprising at least one processor having at least one memory in which data is stored in the form of data elements (1), and commands in the form of command elements (6) stored in the same or further memory, characterized in that in addition to the execution of the data processing operation the processor determines the time step of the result from the contents of the time step identifications (3) of the data to be processed and of the incremental bit (11) within the time step identifier (8). of the command element (6) and stores it in the time step identifier (3) of the result.
DE102017005970.5A 2017-06-23 2017-06-23 Device and method for the device-specific detection of synchronization and data update errors in data processing units Pending DE102017005970A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102017005970.5A DE102017005970A1 (en) 2017-06-23 2017-06-23 Device and method for the device-specific detection of synchronization and data update errors in data processing units

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102017005970.5A DE102017005970A1 (en) 2017-06-23 2017-06-23 Device and method for the device-specific detection of synchronization and data update errors in data processing units

Publications (1)

Publication Number Publication Date
DE102017005970A1 true DE102017005970A1 (en) 2018-12-27

Family

ID=64567843

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017005970.5A Pending DE102017005970A1 (en) 2017-06-23 2017-06-23 Device and method for the device-specific detection of synchronization and data update errors in data processing units

Country Status (1)

Country Link
DE (1) DE102017005970A1 (en)

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
D. Gove, R. Prakash: Detecting memory access errors; 2015; https://blogs.oracle.com/raj/resource/Silicon-Secured-Memory-Application.pdf
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] *
IEC 61784-3-3:2010: Industrial communication networks - Profiles - Part 3-3: Functional safety fieldbuses - Additional specifications for CPF 3 (Edition 2.0, 2010-06)
N. G. Leveson, C. S. Turner: An Investigation of the Therac-25 Accidents; Computer, Vol. 26, Issue 7; S. 18-41; 1993
P. Forin: Vital Coded Microprocessor Principles and Application for Various Transit Systems; 1989; IFAC Control, Computers, Communications; S. 79-84; Paris
SCHIRRMACHER, Dennis: Silicon Secured Memory: Oracle führt neuen Speicherschutz ein; Heise online. 29.10.2015. URL: https://www.heise.de/security/meldung/Silicon-Secured-Memory-Oracle-fuehrt-neuen-Speicherschutz-ein-2865650.html [abgerufen am 23.03.2018] *

Similar Documents

Publication Publication Date Title
DE102010037457B4 (en) A method of data processing for providing a value for determining whether an error has occurred during execution of a program, methods of data processing for determining whether an error has occurred during execution of a program, method for generating program code, data processing arrangements for providing a program Value for determining whether an error has occurred during execution of a program, data processing arrangements for determining whether an error has occurred during execution of a program, and data processing arrangements for generating program code
DE102016206630A1 (en) Method and device for avoiding manipulation of a data transmission
EP3891642B1 (en) Method for ensuring the trustworthiness of source codes
DE102018214999A1 (en) Device for securing diagnostic commands to a control unit and corresponding motor vehicle
DE102013213314A1 (en) Deposit at least one computable integrity measure in a memory area of a memory
EP3136285A1 (en) Method and memory module for security protected write and/or read operations on the memory module
DE102016221108A1 (en) A method for updating software of a control device of a vehicle
DE102016207546A1 (en) Method and integrity test system for feedback-free integrity monitoring
WO2021233696A1 (en) Method for the secure use of cryptographic material
WO2016087652A1 (en) Method for processing data in order to ascertain if an error has occurred while running a program, and data processing arrangements for generating program code
EP3695337B1 (en) Method and confirmation device for confirming the integrity of a system
EP1636700A1 (en) Method for booting up a software in the boot sector of a programmable read-only memory
DE102013021231A1 (en) Method for operating an assistance system of a vehicle and vehicle control unit
EP3127763A2 (en) Method for operating validation of a sensor unit, sensor unit and tachograph system
DE102017005970A1 (en) Device and method for the device-specific detection of synchronization and data update errors in data processing units
DE102019118703A1 (en) System and method for continuously verifying device health
DE102014114157B4 (en) A method of data processing for determining whether an error has occurred during execution of a program and data processing arrangements for generating program code
EP2405317A1 (en) Method for entering parameters for a security device securely
DE102019127856A1 (en) Procedure for safely booting a control unit and control unit
DE102015218882A1 (en) Method and device for checking calculation results in a system with several processing units
DE102021209691B3 (en) Method for monitoring a component of an effect chain
DE102017005975A1 (en) Device and method for device-based detection of incompatible operand units in data processing units
DE102017005974A1 (en) Device and method for device-based detection of data usage outside its validity period in data processing units
DE102017005944B4 (en) Device and method for the technical detection of violations of cyclical real-time conditions in data processing units and systems
EP4181000A1 (en) Method and computing environment for creating and applying a test algorithm for computing operations

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