DE102018214980A1 - Rechnersystem und Betriebsverfahren dafür mit verbesserter Zuverlässigkeit - Google Patents

Rechnersystem und Betriebsverfahren dafür mit verbesserter Zuverlässigkeit Download PDF

Info

Publication number
DE102018214980A1
DE102018214980A1 DE102018214980.1A DE102018214980A DE102018214980A1 DE 102018214980 A1 DE102018214980 A1 DE 102018214980A1 DE 102018214980 A DE102018214980 A DE 102018214980A DE 102018214980 A1 DE102018214980 A1 DE 102018214980A1
Authority
DE
Germany
Prior art keywords
computer system
computing unit
time period
program part
time
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.)
Withdrawn
Application number
DE102018214980.1A
Other languages
English (en)
Inventor
Julia Heroldt
Robert Kornhaas
Jan Micha Borrmann
Jaroslaw Topp
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102018214980.1A priority Critical patent/DE102018214980A1/de
Publication of DE102018214980A1 publication Critical patent/DE102018214980A1/de
Withdrawn 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1633Error detection by comparing the output of redundant processing systems using mutual exchange of the output between the redundant processing components
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1695Error detection or correction of the data by redundancy in hardware which are operating with time diversity
    • 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/0796Safety measures, i.e. ensuring safe condition in the event of error, e.g. for controlling element
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1687Temporal synchronisation or re-synchronisation of redundant processing components at event level, e.g. by interrupt or result of polling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/83Indexing scheme relating to error detection, to error correction, and to monitoring the solution involving signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)

Abstract

Die vorliegende Erfindung betrifft ein Rechnersystem und ein Betriebsverfahren dafür, um eine verbesserte Zuverlässigkeit und/oder Verfügbarkeit des Rechnersystems zu gewährleisten. Insbesondere können auch abhängige und systematische Ausfälle und ggf. zufällige Fehler erkannt werden. Hierfür weist das Rechnersystem (100) eine erste Recheneinheit (110) und eine zweite Recheneinheit (120) auf. Das Rechnersystem (100) ist dazu eingerichtet, einen ersten Programmteil (1-8) durch die erste Recheneinheit (110) über einen ersten Zeitabschnitt (t1) zu verarbeiten, parallel dazu denselben ersten Programmteil (1-8) durch die zweite Recheneinheit (120) über einen gegenüber dem ersten Zeitabschnitt (t1) unterschiedlich langen, zweiten Zeitabschnitt (t2) zu verarbeiten und zu einem Zeitpunkt (t3) am Ende des zweiten Zeitabschnitts (t2) eine jeweilige Verifizierungsgröße der beiden verarbeiteten ersten Programmteile (1-8) miteinander zu vergleichen.

Description

  • Die vorliegende Erfindung betrifft ein Rechnersystem sowie ein Verfahren zum Betrieb eines Rechnersystems. Das Rechnersystem kann eine hohe Zuverlässigkeit und/oder Verfügbarkeit für beispielsweise sicherheitsrelevante Anwendungen zur Verfügung stellen.
  • Stand der Technik
  • Insbesondere in sicherheitsrelevanten Anwendungen, die mit einem Rechnersystem, wie etwa einem eingebetteten System in einem Kraftfahrzeug, durchgeführt werden, wird eine möglichst hohe Zuverlässigkeit und/oder Verfügbarkeit des Rechnersystems angestrebt. Häufig soll dies durch eine Fehlerkennung für die Hardware-Komponenten des Rechnersystems erreicht werden. Hierzu können beispielsweise gemäß dem sogenannten Lockstep-Verfahren die Hardware-Komponenten, insbesondere Prozessoren, redundant vorgehalten werden, um identische Programmanweisungen, also z.B. ein Softwareprogramm, parallel auf sämtlichen redundanten Hardware-Komponenten parallel zu verarbeiten. Zur Fehlererkennung werden dann die Verarbeitungsergebnisse miteinander verglichen. Durch die so erzielte Redundanz lassen sich hardwareseitige Ausfälle in einer der Hardware-Komponenten erkennen, wobei darauf z.B. mit einer Ersatzmaßnahme reagiert werden kann. Allerdings ist es üblicherweise erforderlich, dass die Hardware-Komponenten zueinander identisch ausgeführt sind, so dass die Bereitstellungskosten entsprechend hoch sind. Zudem hat sich gezeigt, dass sich abhängige und/oder systematische Fehler auf diese Weise nicht oder zumindest nur eingeschränkt erkennen lassen.
  • Offenbarung der Erfindung
  • Die Aufgabe der Erfindung ist es daher, ein Rechnersystem mit einer verbesserten Zuverlässigkeit und/oder Verfügbarkeit zu schaffen.
  • Diese Aufgabe wird durch ein Rechnersystem sowie ein Verfahren zum Steuern eines solchen Rechnersystems gemäß den unabhängigen Ansprüchen gelöst. Vorteilhafte Weiterbildungen der Erfindung ergeben sich aus den abhängigen Ansprüchen, der Beschreibung sowie den begleitenden Figuren.
  • Ein derartiges Rechnersystem kann beispielsweise in einer sicherheitsrelevanten Anwendung zum Einsatz kommen, wie beispielsweise in der Luftfahrt, in einem Kraftfahrzeug, insbesondere für einen autonomen Fahrbetrieb, und ähnlichen Anwendungen. Das Rechnersystem kann als eingebettetes System in Form eines elektronischen Steuergeräts implementiert sein. Dementsprechend kann das Rechnersystem beispielsweise dazu eingerichtet sein, mit Sensoren und/oder Aktoren zusammenzuwirken, um z.B. bei einer Anwendung in einem Kraftfahrzeug dessen Fahrbetrieb automatisch zu steuern und Fahrmanöver zu veran lassen.
  • Das Rechnersystem weist wenigstens eine erste Recheneinheit und wenigstens eine zweite Recheneinheit auf. Die erste und die zweite Recheneinheit sind beispielsweise Prozessoren. Das Rechnersystem kann z.B. algorithmisch implementiert sein. Das Rechnersystem ist dazu eingerichtet, einen ersten Programmteil, z.B. einen Teil eines Programmcodes, durch die erste Recheneinheit über einen ersten Zeitabschnitt zu verarbeiten. Ferner ist das Rechnersystem dazu eingerichtet, parallel dazu denselben ersten Programmteil zusätzlich durch die zweite Recheneinheit über einen gegenüber dem ersten Zeitabschnitt unterschiedlich langen, zweiten Zeitabschnitt zu verarbeiten. In anderen Worten, beansprucht die Verarbeitung der zueinander zumindest funktional identischen Programmteile unterschiedliche Zeitspannen. Es ist auch möglich, dass eine Identität vorliegt, wobei (wenn auch minimale) Abweichungen des zur Ausführung vorgesehenen Programmcodes auftreten können, welche beispielsweise durch einen Unterschied im Kompilierprozess auftreten können. Das Rechnersystem ist ferner dazu eingerichtet, zu einem Zeitpunkt am Ende des zweiten Zeitabschnitts und/oder des ersten Zeitabschnitts eine jeweilige Verifizierungsgröße der beiden verarbeiteten ersten Programmteile miteinander zu vergleichen. Der Zeitpunkt am Ende des zweiten Zeitabschnitts kann auch als Synchronisationspunkt zwischen der ersten und der zweiten Recheneinheit verstanden werden. Unter einer Verifizierungsgröße kann in diesem Zusammenhang eine Eigenschaft des jeweiligen Programmteils verstanden werden, der eine Aussage über die korrekte Verarbeitung und/oder eine Verarbeitungsgüte des Programmteils zulässt.
  • Dadurch lässt sich ein besonders zuverlässiges Rechnersystem mit einer hohen Verfügbarkeit bereitstellen. Dabei ist kein redundantes Vorhalten zueinander identischer Recheneinheiten, also Recheneinheiten mit identischer Rechenleistung, notwendig, so dass sich das Rechnersystem mit insgesamt hoher Rechenleistung dennoch kostengünstig zur Verfügung stellen lässt. Insbesondere kann die erste Recheneinheit eine bestimmte Funktion, z.B. eine Fahrfunktion, als Folge des verarbeiteten Programms bereitstellen, während die zweite Recheneinheit primär der Überwachung der eigentlichen Verarbeitung und/oder Bereitstellung der Funktion dient. Das Rechnersystem ist zumindest weitgehend homogen aufgebaut und ist zeitentkoppelt. Insgesamt erlaubt das Rechnersystem eine Erkennung von insbesondere abhängigen und systematischen Fehlern.
  • Eine Weiterbildung der Erfindung sieht vor, dass der der zweiten Recheneinheit zugeordnete zweite Zeitabschnitt länger sein kann als der der ersten Recheneinheit zugeordnete erste Zeitabschnitt. In anderen Worten, kann die zweite Recheneinheit für dieselbe Verarbeitung eine längere Zeitdauer beanspruchen als die erste Recheneinheit. Der Vergleich der jeweiligen Verifikationsgrößen kann aber zu dem Zeitpunkt am Ende des zweiten Zeitabschnitts erfolgen. Dadurch kann die zweite Recheneinheit mit einer geringeren Rechenleistung zur Verfügung gestellt werden als die erste Recheneinheit.
  • Gemäß einer Weiterbildung kann das Rechnersystem ferner dazu eingerichtet sein, während des zweiten Zeitabschnitts parallel zur Verarbeitung des ersten Programmteils durch die zweite Recheneinheit wenigstens einen weiteren zu dem ersten Programmteil verschiedenen, zweiten Programmteil durch die erste Recheneinheit zu verarbeiten. In anderen Worten, kann die erste Recheneinheit zwei oder mehr verschiedene Programmteile verarbeiten, während die zweite Recheneinheit im gleichen Zeitraum den ersten Programmteil verarbeitet.
  • Das Rechnersystem kann gemäß einer Weiterbildung auch wenigstens eine Speichereinrichtung aufweisen, in der die Verifizierungsgröße des durch die erste Recheneinheit verarbeiteten ersten Programmteils wenigstens bis zum Erreichen des Zeitpunkts am Ende des zweiten Zeitabschnitts speicherbar ist. Dadurch kann die erste Recheneinheit bis zum Erreichen des Zeitpunkts am Ende des zweiten Zeitabschnitts auch mehrere verschiedene Programmteile sequentiell verarbeiten. Zusätzlich kann dieselbe oder eine weitere Speichereinrichtung auch zum Speichern des durch die zweite Recheneinheit verarbeiteten ersten Programmteils eingerichtet sein.
  • In einer anderen Weiterbildung kann die Verifizierungsgröße ein bestimmter, insbesondere berechneter, Fingerabdruck des jeweiligen Programmteils sein. Der Fingerabdruck kann in Bezug auf die erste Recheneinheit für jeden darin verarbeiteten Programmteil bestimmt werden. Für die zweite Recheneinheit kann der Fingerabdruck für den ersten Programmteil berechnet werden. Es kann gefordert sein, dass der Fingerabdruck in Bezug auf die zweite Recheneinheit bis zum Erreichen des Zeitpunkts am Ende des zweiten Zeitabschnitts abgeschlossen sein muss.
  • Um auf erfasste Fehler des Rechnersystems reagieren zu können, kann gemäß einer Weiterbildung das Rechnersystem ferner dazu eingerichtet sein, wenigstens eine Ersatzmaßnahme zu veranlassen, wenn die zum Zeitpunkt am Ende des zweiten Zeitabschnitts miteinander verglichenen Verifizierungsgrößen voneinander abweichen. Die Abweichung kann beispielsweise darin bestehen, dass die beiden Verifizierungsgrößen, z.B. Fingerabdrücke der Programmteile, nicht identisch sind, sich also z.B. in einem Bit unterscheiden. Die Ersatzmaßnahme kann bei einer Anwendung in einem Kraftfahrzeug beispielsweise darin bestehen, dass das Kraftfahrzeug in einen sicheren Zustand gesteuert wird, also beispielsweise in sicherer Position zum Halten manövriert wird.
  • Eine andere Weiterbildung sieht vor, dass der Zeitpunkt am Ende des zweiten Zeitabschnitts so festgelegt ist, dass der Vergleich der Verifizierungsgrößen, vorzugsweise stets, innerhalb einer vorbestimmten Fehlertoleranzzeit (fault tolerance time, FTT) durchführbar ist. Dadurch kann eine besonders hohe Zuverlässigkeit erreicht werden.
  • Gemäß einer Weiterbildung, kann das Rechnersystem eine weitere, zweite erste Recheneinheit aufweisen, die zum parallelen Verarbeiten desselben jeweiligen Programmteils mit der ersten ersten Recheneinheit gekoppelt ist. Dabei kann das Rechnersystem ferner dazu eingerichtet sein, regelmäßig, z.B. getaktet, die Verifikationsgrößen, also z.B. Fingerabdrücke, des zu verarbeitenden Programmteils der beiden ersten Recheneinheiten zu vergleichen. Es kann also ein redundanter Pfad zwischen der ersten Recheneinheit und einer zusätzlichen, identisch ausgeführten ersten Recheneinheit vorgesehen sein. Dadurch lässt sich das Rechnersystem für die Erkennung von zufälligen Fehlern, insbesondere innerhalb der ersten Recheneinheit, erweitern.
  • In einer anderen Weiterbildung kann das Rechnersystem eine weitere, zweite zweite Recheneinheit aufweisen, die zum parallelen Verarbeiten desselben jeweiligen Programmteils mit der ersten zweiten Recheneinheit gekoppelt ist. Dadurch können auch zufällige Fehler innerhalb der ersten zweiten Recheneinheit erkannt werden.
  • Um eine hohe Rechenleistung besonders kostengünstig bereitstellen zu können, können gemäß einer Weiterbildung die erste Recheneinheit über eine erste Rechenleistung verfügen und die zweite Recheneinheit über eine gegenüber der ersten Rechenleistung niedrigere, zweite Rechenleistung verfügen. Die erste Recheneinheit kann z.B. ein Grafikprozessor (GPU) sein, der insbesondere für Anwendungen in einem autonomen Fahrbetrieb eines Kraftfahrzeugs eingerichtet sein kann. Die zweite Recheneinheit kann dagegen eine geringere Rechenleistung haben und z.B. als System-on-a-Chip (SoC) ausgeführt sein.
  • Der Vergleich der jeweiligen Verifikationsgrößen kann in einer Weiterbildung durch einen Kreuzvergleich erfolgen. Alternativ oder zusätzlich dazu, kann der Vergleich der jeweiligen Verifikationsgrößen gemäß einer anderen Weiterbildung durch eine zu der ersten und zweiten Recheneinheit unterschiedliche, dritte Recheneinheit durchgeführt werden, die zum Vergleichen der jeweiligen Verifizierungsgrößen eingerichtet ist.
  • Die Erfindung betrifft auch ein Verfahren zum Betrieb eines Rechnersystems, das eine erste Recheneinheit und eine zweite Recheneinheit aufweist. Das Verfahren eignet sich insbesondere für das vorstehend beschriebene Rechnersystem und lässt sich an die vorstehend erläuterten Ausführungsvarianten des Rechnersystems anpassen.
  • Das Verfahren umfasst die folgenden Schritte:
    • - In der ersten Recheneinheit wird ein erster Programmteils über einen ersten Zeitabschnitt verarbeitet.
    • - Parallel zu der Verarbeitung wird derselbe erste Programmteil durch die zweite Recheneinheit über einen gegenüber dem ersten Zeitabschnitt unterschiedlich langen, zweiten Zeitabschnitt verarbeitet.
    • - Zu einem Zeitpunkt am Ende des ersten und/oder zweiten Zeitabschnitts werden jeweilige Verifizierungsgrößen der beiden verarbeiteten ersten Programmteile miteinander verglichen.
  • Damit erlaubt das Verfahren einen homogenen, zeitentkoppelten Betrieb des Betriebs des Rechnersystems und erlaubt die Erkennung von abhängigen und/oder systematischen Fehlern.
  • Gemäß einer Weiterbildung kann eine Programmteilgröße des ersten Programmteils so gewählt werden, dass dieser durch die zweite Recheneinheit bis zum Erreichen des Zeitpunkts am Ende des zweiten Zeitabschnitts komplett verarbeitet werden kann. Der Zeitpunkt kann dann einen Synchronisationspunkt zwischen der ersten und der zweiten Recheneinheit darstellen.
  • Weitere, die Erfindung verbessernde Maßnahmen werden nachstehend gemeinsam mit der Beschreibung der bevorzugten Ausführungsbeispiele der Erfindung anhand von Figuren näher dargestellt.
  • Figurenliste
  • Im Folgenden werden vorteilhafte Ausführungsbeispiele der Erfindung mit Bezug auf die begleitenden Figuren detailliert beschrieben. Es zeigen:
  • Es zeigen:
    • 1 ein Kraftfahrzeug mit einem Rechnersystem,
    • 2 eine schematische Übersicht eines Rechnersystems,
    • 3 ein Verarbeitungsschema für ein mit einem Rechnersystem zu verarbeitenden Programm und
    • 4 ein Flussdiagramm eines Verfahrens zum Betrieb eines Rechnersystems.
  • Die Figuren sind lediglich schematisch und nicht maßstabsgetreu. In den Figuren sind gleiche, gleichwirkende oder ähnliche Elemente durchgängig mit gleichen Bezugszeichen versehen.
  • Ausführungsformen der Erfindung
  • 1 zeigt ein Kraftfahrzeug 200, das für einen autonomen Fahrbetrieb eingerichtet ist und zu diesem Zweck ein Rechnersystem 100 in Form eines Steuergeräts oder eines Steuergeräteverbunds aufweist, womit zumindest Teilfunktionen des autonomen Fahrbetriebs gesteuert werden können.
  • In 2 ist eine Ausführungsform des Rechnersystems 100 in einer detaillierteren schematischen Übersicht gezeigt. Das Rechnersystem 100 weist eine erste Recheneinheit 110 in Form eines Grafikprozessors (GPU) als Hochleistungsrecheneinheit und eine zweite Recheneinheit 120 in Form eines als System-on-a-Chip (SoC) ausgeführten Prozessors mit einer gegenüber der Rechenleistung der ersten Recheneinheit 110, ggf. signifikant, geringeren Rechenleistung auf. Die erste Recheneinheit 110 und die zweite Recheneinheit 120 sind mittels eines Pfads bzw. einer homogenen, zeitentkoppelten programm- bzw. softwaretechnisch umgesetzten Verbindung 130 nach Art eines Lockstep-Systems gekoppelt.
  • In einer optionalen Ausführungsform verfügt das Rechnersystem 100 ferner über eine weitere erste Recheneinheit 110' und eine weitere zweite Recheneinheit 120'. Die weitere erste Recheneinheit 110' ist über einen Pfad bzw. einer homogenen programm- bzw. softwaretechnisch umgesetzten Verbindung 140 nach Art eines Lockstep-Systems an die erste Recheneinheit 110 gekoppelt. Die weitere zweite Recheneinheit 120' ist über einen zusätzlichen Pfad 150 im Wesentlichen auf gleiche Weise an die zweite Recheneinheit 120 gekoppelt. Weiter optional, ist die weitere erste Recheneinheit 110' über einen zusätzlichen Pfad 160 an die weitere zweite Recheneinheit 120' gekoppelt.
  • In einer weiteren optionalen Ausführungsform verfügt das Rechnersystem 100 über eine zu den ersten Recheneinheiten 110, 110' und zweiten Recheneinheiten 120, 120' verschieden ausgeführte, dritte Recheneinheit 170, die hier exemplarisch durch einen sogenannten safe island- oder safe housekeeping Prozessor gebildet ist.
  • In einer weiteren optionalen Ausführungsform verfügt das Rechnersystem 100 über eine Speichereinheit 180, die insbesondere zum Speichern einer Verifikationsgröße, z.B. eines Fingerabdrucks, einer Checksumme oder ähnlichem, eingerichtet ist.
  • Zur Steuerung der Recheneinheiten 110, 110', 120, 120' sowie der Pfade 130, 140, 150, 160 kann das Rechnersystem 100 eine (nicht gezeigte) Steuerlogik aufweisen. Die Steuerung kann algorithmisch implementiert sein.
  • 3 zeigt in einem Verarbeitungsschema zur Programmbearbeitung die vorstehend erläuterten Komponenten des Rechnersystems 100 in einem funktionellen Zusammenhang. Das abzuarbeitende Programm umfasst hier exemplarisch eine Steuerungsfunktion für den autonomen Fahrbetrieb des Kraftfahrzeugs 200. Das Rechnersystem 100 kann mit dem anhand der 3 nachfolgend erläuterten Verfahren betrieben werden.
  • Wie in 3 gezeigt, umfasst das (nicht näher bezeichnete) Programm mehrere Programmteile, die hier zur besseren Veranschaulichung mit 1 bis 8 durchnummeriert sind. Diese Anzahl ist nur exemplarisch zu verstehen, so dass auch weniger oder deutlich mehr Programmteile vorhanden sein können.
  • Die erste Recheneinheit 110, also die Hochleistungsrecheneinheit, verarbeitet den ersten Programmteil 1 über einen ersten Zeitabschnitt t1 hinweg. Während dieser Verarbeitung bestimmt bzw. berechnet das Rechnersystem 100, z.B. über die Steuerlogik, eine Verifikationsgröße z.B. in Form eines Fingerabdrucks des ersten Programmteils 1 und speichert diese in der Speichereinheit 180.
  • Parallel zu der Verarbeitung des ersten Programmteils 1 durch die erste Recheneinheit 110 verarbeitet die zweite Recheneinheit 120, die wie oben erläutert eine geringere Rechenleistung aufweist, ebenfalls den (identischen) ersten Programmteil 1. Dabei erstreckt sich - wie in 3 durch eine geschweifte Klammer angedeutet - die Bearbeitung über einen gegenüber dem ersten Zeitabschnitt t1 länger dauernden, zweiten Zeitabschnitt t2. Während dieser Verarbeitung bestimmt bzw. berechnet das Rechnersystem 100 eine Verifikationsgröße z.B. in Form eines Fingerabdrucks des ersten Programmteils 1 und speichert diese in der Speichereinheit 180 oder stellt diese anderweitig zur Verfügung.
  • Zum Ende des zweiten Zeitabschnitts ist ein Zeitpunkt t3 vorgesehen, der einen Synchronisationspunkt bzw. Vergleichspunkt zwischen der ersten und der zweiten Recheneinheit 110, 120 darstellt, wie dies in 3 durch eine senkrechte Linie dargestellt ist. Der Zeitpunkt t3 ist so gewählt, dass dieser unter Verarbeitung des ersten Programmteils 1 durch die zweite Recheneinheit 120 unter allen Umständen innerhalb einer vorbestimmten Zeitspanne erreicht wird, die einer z.B. in einer Funktionsspezifikation vordefinierten Fehlertoleranzzeit (fault tolerance time, FTT) entspricht.
  • Zum Zeitpunkt t3, also dem Synchronisationspunkt bzw. Vergleichspunkt, zu dem die Verarbeitung des ersten Programmteils 1 durch die zweite Recheneinheit 120 abgeschlossen ist, werden die beiden Verifikationsgrößen, also z.B. die Fingerabdrücke, miteinander verglichen. Hierzu wird auf die Speichereinheit 180 zugegriffen, um die Verifikationsgrößen zu erhalten und diese auf Identität zu überprüfen. Die Überprüfung erfolgt entweder durch einen Kreuzvergleich oder durch die dritte Recheneinheit 170. Für den Fall, dass keine Identität festgestellt wird, veranlasst das Rechnersystem 100 eine Ersatzmaßnahme, die bei dem hier beispielhaften Einsatz im Kraftfahrzeug 200 aus einer Steuerung desselben in einen sicheren Zustand, z.B. Stillstand in einer geeigneten Position, bestehen kann.
  • Wie in 3 anschaulich dargestellt, ist die erste Recheneinheit 110 insbesondere aufgrund seiner Rechenleistung dazu eingerichtet, während des zweiten Zeitabschnitts t2, den die zweite Recheneinheit 120 zur Verarbeitung des ersten Programmteils 1 benötigt, mehrere weitere Programmteile 2, 3 und 4 innerhalb eines jeweiligen Zeitabschnitts, z.B. des ersten Zeitabschnitts t1, stapelweise zu verarbeiten. Hierbei nutzt die erste Recheneinheit 110 die gesamte Rechenleistung. Das heißt, dass zum Zeitpunkt t3 in diesem Ausführungsbeispiel vier Programteile 1 bis 4 durch die erste Recheneinheit 110 und zur Sicherstellung der Zuverlässig bzw. Verfügbarkeit der ersten Recheneinheit 110 nur der eine erste Programmteil 1 verarbeitet wird.
  • Ist der oben erläuterte Vergleich der beiden Verifikationsgrößen zum Zeitpunkt t3 erfolgreich, wird also eine Identität zwischen beiden festgestellt, beginnt ab dem Zeitpunkt t3 eine Verarbeitung des nächsten Programmteils 5 durch die zweite Recheneinheit 120. Parallel dazu, setzt auch die erste Recheneinheit 110 die Verarbeitung genau desselben Programmteils 5 fort. Das heißt, dass nach dem Zeitpunkt t3 das oben beschriebene Verfahren mit anderen Programmteilen fortgesetzt wird, bis beim nächsten Synchronisationspunkt bzw. Vergleichspunkt, nämlich zum Zeitpunkt t4, erneut ein Vergleich der Verifikationsgrößen des Programmteils 5 erfolgt. Wie in 3 durch Fortsetzungspunkte angedeutet, wird dieses Verfahren so lange wiederholt, bis alle Programmteile des Programms verarbeitet sind.
  • In 3 ist auch das Verarbeitungsschema für die optionalen Ausführungsformen mit ggf. weiterer erster Recheneinheit 110' und/oder zweiter Recheneinheit 120' gezeigt. Das Verarbeitungsschema entspricht für sich betrachtet im Wesentlichen dem vorstehend beschriebenen, wobei durch die Redundanz weitere Überprüfungen ermöglicht werden. Dadurch können auch zufällige Fehler der ersten und/oder zweiten Recheneinheit 110, 120 erfasst werden.
  • 4 fasst das vorstehend beschriebene Verfahren in einem Flussdiagramm zusammen. In einem Schritt S1 erfolgt das Verarbeiten des ersten Programmteils 1 durch die erste Recheneinheit 110 über den ersten Zeitabschnitt t1. Parallel dazu, erfolgt in einem Schritt S2 ein Verarbeiten desselben ersten Programmteils 1 durch die zweite Recheneinheit 120 über einen gegenüber dem ersten Zeitabschnitt t1 unterschiedlich langen, zweiten Zeitabschnitt t2. Schließlich erfolgt in einem Schritt S3 ein miteinander Vergleichen der jeweiligen Verifizierungsgröße der beiden verarbeiteten ersten Programmteile 1 zum Zeitpunkt t3 am Ende des zweiten Zeitabschnitts t2.

Claims (13)

  1. Rechnersystem (100), mit einer ersten Recheneinheit (110) und einer zweiten Recheneinheit (120), dadurch gekennzeichnet, dass das Rechnersystem (100) dazu eingerichtet ist, einen ersten Programmteil (1-8) durch die erste Recheneinheit (110) über einen ersten Zeitabschnitt (t1) zu verarbeiten, parallel dazu denselben ersten Programmteil (1-8) durch die zweite Recheneinheit (120) über einen gegenüber dem ersten Zeitabschnitt (t1) unterschiedlich langen, zweiten Zeitabschnitt (t2) zu verarbeiten und zu einem Zeitpunkt (t3) am Ende des zweiten Zeitabschnitts (t2) eine jeweilige Verifizierungsgröße der beiden verarbeiteten ersten Programmteile (1-8) miteinander zu vergleichen.
  2. Rechnersystem (100) nach Anspruch 1, dadurch gekennzeichnet, dass der der zweiten Recheneinheit (120) zugeordnete zweite Zeitabschnitt (t2) länger ist als der der ersten Recheneinheit (110) zugeordnete erste Zeitabschnitt (t1).
  3. Rechnersystem (100) nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass das Rechnersystem (100) ferner dazu eingerichtet ist, während des zweiten Zeitabschnitts (t2) parallel zur Verarbeitung des ersten Programmteils (1) durch die zweite Recheneinheit (120) wenigstens einen zu dem ersten Programmteil verschiedenen, zweiten Programmteil (2-8) durch die erste Recheneinheit (110) zu verarbeiten.
  4. Rechnersystem (100) nach einem der vorherigen Ansprüche, gekennzeichnet durch eine Speichereinrichtung (180), in der die Verifizierungsgröße des durch die erste Recheneinheit (110) verarbeiteten ersten Programmteils (1-8) wenigstens bis zum Erreichen des Zeitpunkts (t3) am Ende des zweiten Zeitabschnitts (t2) speicherbar ist.
  5. Rechnersystem (100) nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass die Verifizierungsgröße ein berechneter Fingerabdruck des jeweiligen Programmteils (1-8) ist.
  6. Rechnersystem (100) nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass das Rechnersystem (100) ferner dazu eingerichtet ist, eine Ersatzmaßnahme zu veranlassen, wenn die zum Zeitpunkt (t3) am Ende des zweiten Zeitabschnitts (t2) miteinander verglichenen Verifizierungsgrößen voneinander abweichen.
  7. Rechnersystem (100) nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass der Zeitpunkt (t3) am Ende des zweiten Zeitabschnitts (t2) so festgelegt ist, dass der Vergleich der Verifizierungsgrößen innerhalb einer vorbestimmten Fehlertoleranzzeit durchführbar ist.
  8. Rechnersystem (100) nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass das Rechnersystem (100) eine zweite erste Recheneinheit (110') aufweist, die zum parallelen Verarbeiten desselben jeweiligen Programmteils (1-8) mit der ersten ersten Recheneinheit (110) gekoppelt ist, und das Rechnersystem (100) ferner dazu eingerichtet ist, regelmäßig die Verifikationsgrößen des zu verarbeitenden Programmteils (1-8) zu vergleichen.
  9. Rechnersystem (100) nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass das Rechnersystem (100) eine zweite zweite Recheneinheit (120') aufweist, die zum parallelen Verarbeiten desselben jeweiligen Programmteils (1-8) mit der ersten zweiten Recheneinheit (120) gekoppelt ist.
  10. Rechnersystem (100) nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass die erste Recheneinheit (110) über eine erste Rechenleistung verfügt und die zweite Recheneinheit (120) über eine gegenüber der ersten Rechenleistung geringere, zweite Rechenleistung verfügt.
  11. Rechnersystem (100) nach einem der vorherigen Ansprüche, gekennzeichnet durch eine zu der ersten und zweiten Recheneinheit (110, 110', 120, 120') unterschiedliche, dritte Recheneinheit (170), die zum Vergleichen der jeweiligen Verifizierungsgrößen eingerichtet ist.
  12. Verfahren zum Betrieb eines Rechnersystems (100), das eine erste Recheneinheit (110) und eine zweite Recheneinheit (120) aufweist, dadurch gekennzeichnet, dass das Verfahren die folgenden Schritte umfasst: - Verarbeiten eines ersten Programmteils (1-8) durch die erste Recheneinheit (110) über einen ersten Zeitabschnitt (t1), - dazu paralleles Verarbeiten desselben ersten Programmteils (1-8) durch die zweite Recheneinheit (120) über einen gegenüber dem ersten Zeitabschnitt (t1) unterschiedlich langen, zweiten Zeitabschnitt (t2), und - miteinander Vergleichen einer jeweiligen Verifizierungsgröße der beiden verarbeiteten ersten Programmteile (1-8) zu einem Zeitpunkt (t3) am Ende des zweiten Zeitabschnitts (t2).
  13. Verfahren nach Anspruch 12, dadurch gekennzeichnet, dass eine Programmteilgröße des ersten Programmteils (1-8) so gewählt wird, dass dieser durch die zweite Recheneinheit (120) bis zum Erreichen des Zeitpunkts (t3) am Ende des zweiten Zeitabschnitts (t2) komplett verarbeitet werden kann.
DE102018214980.1A 2018-09-04 2018-09-04 Rechnersystem und Betriebsverfahren dafür mit verbesserter Zuverlässigkeit Withdrawn DE102018214980A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102018214980.1A DE102018214980A1 (de) 2018-09-04 2018-09-04 Rechnersystem und Betriebsverfahren dafür mit verbesserter Zuverlässigkeit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102018214980.1A DE102018214980A1 (de) 2018-09-04 2018-09-04 Rechnersystem und Betriebsverfahren dafür mit verbesserter Zuverlässigkeit

Publications (1)

Publication Number Publication Date
DE102018214980A1 true DE102018214980A1 (de) 2020-03-05

Family

ID=69526828

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018214980.1A Withdrawn DE102018214980A1 (de) 2018-09-04 2018-09-04 Rechnersystem und Betriebsverfahren dafür mit verbesserter Zuverlässigkeit

Country Status (1)

Country Link
DE (1) DE102018214980A1 (de)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013002088A1 (de) * 2012-02-15 2013-08-22 Infineon Technologies Ag System und Verfahren für einen signaturbasierten Redundanzvergleich

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013002088A1 (de) * 2012-02-15 2013-08-22 Infineon Technologies Ag System und Verfahren für einen signaturbasierten Redundanzvergleich

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BALEANI, M. u.a.: Fault-Tolerant Platforms for Automotive Safety-Critical Applications. IN: Proceedings of the 2003 international conference on Compilers, architecture and synthesis for embedded systems. 2003, S. 170 - 177, ISBN: 1-58113-676-5 *

Similar Documents

Publication Publication Date Title
EP1040028A1 (de) Verfahren zur fehlererkennung von mikroprozessoren in steuergeräten eines kfz
DE102010013349A1 (de) Computersystem und Verfahren zum Vergleichen von Ausgangssignalen
EP1597643A1 (de) Vorrichtung und verfahren zur modellbasierten on-board-diagnose
WO2008040641A2 (de) Verfahren und vorrichtung zur fehlerverwaltung
DE19509150C2 (de) Verfahren zum Steuern und Regeln von Fahrzeug-Bremsanlagen sowie Fahrzeug-Bremsanlage
EP1639465B1 (de) Verfahren zur überwachung des programmlaufs in einem mikro-computer
EP0886823B1 (de) Verfahren zur überprüfung der funktionsfähigkeit einer recheneinheit
WO1998040796A1 (de) Verfahren zur rechnergestützten fehleranalyse von sensoren und/oder aktoren in einem technischen system
WO2008014940A1 (de) Steuergerät und verfahren zur steuerung von funktionen
EP0234273A2 (de) Prüfbares elektronisches Gerät und Verfahren zum Prüfen eines solchen Geräts
DE102018214980A1 (de) Rechnersystem und Betriebsverfahren dafür mit verbesserter Zuverlässigkeit
EP0031025A2 (de) Fehlererkennungs- und -korrektureinrichtung für eine logische Anordnung
DE102020203420B4 (de) Verfahren und Vorrichtung zum Rekonfigurieren eines automatisiert fahrenden Fahrzeugs in einem Fehlerfall
DE10056129A1 (de) Steuerungssystem für ein Stellglied in einem Kraftfahrzeug
EP0936515B1 (de) Mehrprozessor-Steuervorrichtung
DE102017212560A1 (de) Verfahren zum ausfallsicheren Durchführen einer sicherheitsgerichteten Funktion
WO2011113405A1 (de) Steuergeräteanordnung
DE102017203222A1 (de) Umschaltung zwischen Element-Controllern im Bahnbetrieb
EP4355633A1 (de) Automatisches erkennen und korrigieren von speicherfehlern in einem sicheren mehrkanaligen rechner
DE102022207018A1 (de) Verfahren zum Fehlermanagement, Computerprogrammprodukt sowie Fahrzeug
DE19946096A1 (de) Steuergerät, insbesondere für ein Kraftfahrzeug
EP1176508B1 (de) Anordnung zur Überwachung des ordnungsgemässen Betriebes von die selben oder einander entsprechende Aktionen ausführenden Komponenten eines elektrischen Systems
DE19748181B4 (de) Verfahren zum Prüfen einer Funktion oder Einrichtung eines Fahrzeugs
EP3789832A1 (de) Vorrichtung und verfahren zur ausführung einer sicherheitsfunktion
WO2021219276A1 (de) Verfahren, vorrichtung, computerprogramm und computerlesbares speichermedium zum erzeugen einer graphen-datenbank zur ermittlung eines zu überprüfenden bauteils eines mechatronischen systems

Legal Events

Date Code Title Description
R163 Identified publications notified
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee