-
Die Erfindung betrifft ein Verfahren zum Betrieb eines Assistenzsystems eines Fahrzeugs nach den Merkmalen des Oberbegriffs des Anspruchs 1 und ein Fahrzeugsteuergerät nach den Merkmalen des Oberbegriffs des Anspruchs 7.
-
Aus dem Stand der Technik ist, wie in der
DE 10 2011 007 437 A1 beschrieben, ein Kraftfahrzeugsteuergerät mit einem ersten Mikroprozessorsystem für sicherheitskritische Anwendungen bekannt. In das Kraftfahrzeugsteuergerät ist ein weiteres mit dem ersten Mikroprozessorsystem kommunizierendes Mikroprozessorsystem integriert, welches einen niedrigeren Sicherheitslevel als das erste Mikroprozessorsystem erfüllt.
-
In der
DE 103 31 873 A1 wird ein Verfahren zur Überwachung verteilter Software beschrieben. Bei dem Verfahren kommt die Software verteilt auf einer Anzahl von Recheneinheiten zur Ausführung. Dabei ist einer der Recheneinheiten ein Master-Modul und den anderen Recheneinheiten jeweils ein Slave-Modul zugewiesen. Die Überwachung wird durch eine Kommunikation im Master-Slave-Betrieb zwischen dem Master-Modul und den Slave-Modulen durchgeführt.
-
Der Erfindung liegt die Aufgabe zu Grunde, ein gegenüber dem Stand der Technik verbessertes Verfahren zum Betrieb eines Assistenzsystems eines Fahrzeugs und ein gegenüber dem Stand der Technik verbessertes Fahrzeugsteuergerät anzugeben.
-
Die Aufgabe wird erfindungsgemäß gelöst durch ein Verfahren zum Betrieb eines Assistenzsystems eines Fahrzeugs mit den Merkmalen des Anspruchs 1 und ein Fahrzeugsteuergerät mit den Merkmalen des Anspruchs 7.
-
Vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand der Unteransprüche.
-
In einem Verfahren zum Betrieb eines Assistenzsystems eines Fahrzeugs mittels eines Fahrzeugsteuergeräts, welches ein erstes Mikroprozessorsystem für sicherheitskritische Anwendungen und ein zweites Mikroprozessorsystem, welches einen niedrigeren Sicherheitslevel als das erste Mikroprozessorsystem erfüllt, umfasst, kommuniziert das zweite Mikroprozessorsystem mit dem ersten Mikroprozessorsystem.
-
Erfindungsgemäß empfängt das zweite Mikroprozessorsystem Daten vom ersten Mikroprozessorsystem und verarbeitet diese weiter.
-
Durch diese erfindungsgemäße Lösung wird mittels des ersten Mikroprozessorsystems, welches ein hohes Sicherheitslevel aufweist und somit für sicherheitskritische Anwendungen zugelassen ist, die Ausfallsicherheit des Fahrzeugsteuergeräts sichergestellt, d. h. das Steuergerät fällt mit einer sehr hohen Wahrscheinlichkeit nicht aus, wobei bei derartigen für sicherheitskritische Anwendungen zugelassenen Mikroprozessorsystemen beispielsweise gesetzlich zu erfüllende Vorgaben bezüglich dieser Ausfallsicherheit bestehen. Derartige Sicherheitsanforderungen werden beispielsweise als ASIL-Level bezeichnet. Zum Beispiel müssen solche für sicherheitskritische Anwendungen zugelassenen Mikroprozessorsysteme eine ASIL-B Einstufung erreichen.
-
Solche für sicherheitskritische Anwendungen zugelassenen Mikroprozessorsysteme weisen jedoch eine relativ geringe Rechenleistung im Vergleich aller jeweils aktuell verfügbaren Mikroprozessorsysteme auf, so dass bei einem Einsatz lediglich dieser für sicherheitskritische Anwendungen zugelassenen Mikroprozessorsysteme insbesondere rechenleistungsintensive Anwendungen nicht in solche Assistenzsysteme des Fahrzeugs implementiert werden können oder eine erhebliche Rechenzeit erfordern, welche insbesondere bei benötigten schnellen Reaktionen des jeweiligen Assistenzsystems bereits zu lang sein kann.
-
Es sind jedoch Mikroprozessorsysteme verfügbar, welche eine höhere Rechenleistung aufweisen als diese für sicherheitskritische Anwendungen zugelassenen Mikroprozessorsysteme und welche kostengünstig genug sind, um in einem solchen Fahrzeugsteuergerät verwendet werden zu können. Bei der erfindungsgemäßen Lösung weist das Fahrzeugsteuergerät zusätzlich zum für sicherheitskritische Anwendungen zugelassenen ersten Mikroprozessorsystem ein solches zweites Mikroprozessorsystem auf, welches einen niedrigeren Sicherheitslevel als das erste Mikroprozessorsystem erfüllt. Dieses zweite Mikroprozessorsystem empfängt im Verfahren Daten vom ersten Mikroprozessorsystem und verarbeitet diese weiter, so dass es das erste Mikroprozessorsystem bei der jeweiligen Datenverarbeitung mit seiner zusätzlichen Rechenleistung unterstützt. Dadurch können auch rechenleistungsintensive Anwendungen im Fahrzeugsteuergerät in einer erforderlich geringen Zeit ausgeführt werden. Die Mikroprozessorsysteme arbeiten dabei zweckmäßigerweise im Master-Slave-Betrieb, wobei das für sicherheitskritische Anwendungen zugelassene erste Mikroprozessorsystem stets der Master und das zweite Mikroprozessorsystem, welches einen niedrigeren Sicherheitslevel als das erste Mikroprozessorsystem erfüllt, stets der Slave ist. Nach außen hin, d. h. mit weiteren Komponenten des Fahrzeugs, kommuniziert zweckmäßigerweise stets ausschließlich das für sicherheitskritische Anwendungen zugelassene erste Mikroprozessorsystem. Auf diese Weise ist die hohe Sicherheit, insbesondere die hohe Ausfall- und Fehlersicherheit, welche für solche sicherheitskritischen Anwendungen erforderlich ist, stets sichergestellt. Auf diese Weise erreicht das Fahrzeugsteuergerät weiterhin die für solche sicherheitskritischen Anwendungen erforderliche Sicherheitseinstufung, beispielsweise ASIL-B.
-
Ausführungsbeispiele der Erfindung werden im Folgenden anhand von Zeichnungen näher erläutert.
-
Dabei zeigen:
-
1 schematisch ein Fahrzeugsteuergerät,
-
2 schematisch eine Datenverarbeitung in einem Fahrzeugsteuergerät,
-
3 schematisch ein erster Schritt einer Datenverarbeitung in einem Fahrzeugsteuergerät,
-
4 schematisch ein zweiter Schritt einer Datenverarbeitung in einem Fahrzeugsteuergerät,
-
5 schematisch ein dritter Schritt einer Datenverarbeitung in einem Fahrzeugsteuergerät, und
-
6 schematisch eine Darstellung einer Schutzvorkehrung.
-
Einander entsprechende Teile sind in allen Figuren mit den gleichen Bezugszeichen versehen.
-
1 zeigt eine schematische Darstellung eines Fahrzeugsteuergerätes 1 zum Betrieb eines Assistenzsystems eines Fahrzeugs, insbesondere eines sicherheitskritischen Assistenzsystems. Unter dem hier verwendeten Begriff Assistenzsystem sind insbesondere Systeme des Fahrzeugs zu verstehen, welche Steuerungs- und oder Regelungseingriffe in einen Antriebsstrang, eine Lenkung und/oder eine Bremsanlage des Fahrzeugs ausführen und/oder Hinweise an einen Fahrzeugführer ausgeben, die zu entsprechenden Steuerungs- und/oder Regelungsbefehlen des Fahrzeugführers an den Antriebsstrang, die Lenkung und/oder die Bremsanlage in Abhängigkeit von den Hinweisen des jeweiligen Assistenzsystems führen, oder auch Systeme, welche bei einer Kollision oder bei einer drohenden Kollision Insassenschutzmittel und/oder Schutzmittel zum Schutz von Personen außerhalb des Fahrzeugs aktivieren. Bei derartigen sicherheitskritischen Assistenzsystemen kann es sich beispielsweise um ein Antiblockiersystem, um ein elektronisches Stabilitätsprogramm, um ein Parkassistenzsystem, um ein Kollisionswarn- und/oder Vermeidungssystem, um ein Totwinkelwarnsystem oder um ein Spurhalteassistenzsystem handeln.
-
Das Fahrzeugsteuergerät 1 umfasst ein erstes Mikroprozessorsystem M1 für sicherheitskritische Anwendungen und ein zweites Mikroprozessorsystem M2, welches einen niedrigeren Sicherheitslevel als das erste Mikroprozessorsystem M1 erfüllt und vorteilhafterweise eine höhere Rechenleistung aufweist als das erste Mikroprozessorsystem M1. Dieses zweite Mikroprozessorsystem M2 kommuniziert mit dem ersten Mikroprozessorsystem M1 über eine entsprechende Datenübertragungsverbindung IPC, auch als Interprozesskommunikation bezeichnet. Diese Interprozesskommunikation ist End-To-End abgesichert, d. h. es wird überprüft, ob jeweils empfangene Daten korrekt und fehlerfrei übertragen wurden.
-
In einem Verfahren zum Betrieb des jeweiligen Assistenzsystems des Fahrzeugs mittels dieses Fahrzeugsteuergeräts 1 empfängt das zweite Mikroprozessorsystem M2 über diese Datenübertragungsverbindung IPC Daten vom ersten Mikroprozessorsystem M1 und verarbeitet diese weiter. Nach außen hin, d. h. mit anderen Komponenten des Fahrzeugs, beispielsweise mit zumindest einem weiteren Steuergerät des Fahrzeugs, kommuniziert ausschließlich das erste Mikroprozessorsystem M1, über ein oder mehrere Datenübertragungsleitungen DL und/oder Datenübertragungsschnittstellen, zum Beispiel über einen CAN-Bus des Fahrzeugs. Die beiden Mikroprozessorsysteme M1, M2 arbeiten zweckmäßigerweise im so genannten Master-Slave-Betrieb, wobei das für sicherheitskritische Anwendungen zugelassene erste Mikroprozessorsystem M1 stets der Master ist und das zweite Mikroprozessorsystem M2, welches einen niedrigeren Sicherheitslevel als das erste Mikroprozessorsystem M1 erfüllt, stets der Slave ist.
-
Das zweite Mikroprozessorsystem M2 ist als ein Zwei-Kern-Prozessor mit zwei gleichen Kernen K21, K22 ausgebildet. Das erste Mikroprozessorsystem M1 kann ebenfalls als ein Zwei-Kern-Prozessor ausgebildet sein, zweckmäßigerweise auch mit zwei gleichen Kernen, oder beispielsweise, wie im hier dargestellten Beispiel, als ein so genannter TriCore-Prozessor, welcher drei Kerne K11, K12, K13 aufweist.
-
Im zweiten Mikroprozessorsystem M2 wird eine jeweilige Datenverarbeitung redundant durchgeführt. Hierzu wird die gleiche Datenverarbeitung jeweils parallel in beiden Kernen K21, K22 durchgeführt. Wie in 2 gezeigt, werden die Daten im zweiten Mikroprozessorsystem M2 innerhalb eines Applikationszyklus AZ von beiden Kernen K21, K22 jeweils blockweise nacheinander verarbeitet, wobei nach jedem Block BB1, BB2, BB3 von den beiden Kernen K21, K22 des zweiten Mikroprozessorsystems M2 ermittelte Ausgangsdaten des jeweiligen Blocks BB1, BB2, BB3 miteinander verglichen werden. Das Verarbeiten der Blöcke BB1, BB2, BB3 nacheinander ist in 1 schematisch durch erste Pfeile P1 dargestellt. Das Vergleichen der ermittelten Ausgangsdaten nach jedem Block BB1, BB2, BB3 ist in 1 schematisch durch zweite Pfeile P2 dargestellt.
-
Bei einem erfolgreichen Vergleich, d. h. wenn die von den beiden Kernen K21, K22 des zweiten Mikroprozessorsystems M2 ermittelten Ausgangsdaten des jeweiligen Blocks BB1, BB2, BB3 identisch sind, so dass festgestellt ist, dass während der Datenverarbeitung des jeweiligen Blocks BB1, BB2, BB3 kein Fehler aufgetreten ist, wird ein jeweils folgender Block BB1, BB2, BB3 durch die beiden Kerne K21, K22 des zweiten Mikroprozessorsystems M2 ausgeführt. Bei einem fehlgeschlagenen Vergleich, d. h. wenn sich die von den beiden Kernen K21, K22 des zweiten Mikroprozessorsystems M2 ermittelten Ausgangsdaten des jeweiligen Blocks BB1, BB2, BB3 unterscheiden, so dass in der Datenverarbeitung durch mindestens einen der beiden Kerne K21, K22 des zweiten Mikroprozessorsystems M2 ein Fehler aufgetreten ist, wird ein Zustand vor dem jeweils letzten ausgeführten Block BB1, BB2, BB3 wiederhergestellt und dieser Block BB1, BB2, BB3, d. h. die Datenverarbeitung dieses Blocks BB1, BB2, BB3, wird erneut durch die beiden Kerne K21, K22 des zweiten Mikroprozessorsystems M2 ausgeführt.
-
Auf diese Weise wird die vom zweiten Mikroprozessorsystem M2 zu bearbeitende Applikation bis zum Ende, d. h. bis zum letzten Block BB3, von den beiden Kernen K21, K22 des zweiten Mikroprozessorsystems M2 abgearbeitet. Da somit mittels des Verfahrens die korrekte fehlerfreie Ausführung der vom zweiten Mikroprozessorsystem M2 zu bearbeitenden Applikation sichergestellt ist, weil diese Applikation auf beiden Kernen K21, K22 des zweiten Mikroprozessorsystems M2 parallel und somit redundant durchgeführt wird und die Ergebnisse der Datenverarbeitung der beiden Kerne K21, K22 des zweiten Mikroprozessorsystems M2 miteinander verglichen werden, um mögliche Fehler zu ermitteln, ist das Endergebnis dieser Datenverarbeitung durch das zweite Mikroprozessorsystem M2, welches an das erste Mikroprozessorsystem M1 übermittelt wird, fehlerfrei. Daher erfüllt auch diese Datenverarbeitung mittels des zweiten Mikroprozessorsystems M2 gemäß dem beschriebenen Verfahren die Anforderungen an die Fehler- und/oder Ausfallsicherheit beispielweise nach einer jeweils vorgegebenen Sicherheitseinstufung, zum Beispiel nach der ASIL-B Einstufung oder einer anderen ASIL-Einstufung.
-
Um diesen Verarbeitungsablauf im zweiten Mikroprozessorsystem M2 zu ermöglichen, werden somit in beiden Kernen K21, K22 des zweiten Mikroprozessorsystems M2 folgende Schritte parallel durchgeführt:
- – Partitionieren der im zweiten Mikroprozessorsystem M2 durchzuführenden Applikation in mehrere Blöcke BB1, BB2, BB3,
- – Sichern eines Ausgangszustands aller Blöcke BB1, BB2, BB3 vor einer Ausführung der Applikation,
- – Ausführen der Applikation blockweise,
- – Durchführen eines Binärvergleichs eines jeweiligen Programmstandes nach jedem Block BB1, BB2, BB3,
- – Ausführen der Applikation im nächsten Block BB1, BB2, BB3 nach erfolgreichem Binärvergleich.
-
Durch die beiden Mikroprozessorsysteme M1, M2, insbesondere durch die Verwendung des zweiten Mikroprozessorsystems M2, welches zwar einen niedrigeren Sicherheitslevel als das erste Mikroprozessorsystem M1 erfüllt, aber eine höhere Rechenleistung, vorteilhafterweise eine wesentlich höhere Rechenleistung als das erste Mikroprozessorsystem M1 aufweist, sind mittels dieses Fahrzeugsteuergeräts 1 und dieses Verfahrens auch Applikationen ausführbar, welche hohe Anforderungen hinsichtlich der Rechenleistung stellen. Dennoch wird eine erforderliche Sicherheitseinstufung des Fahrzeugsteuergeräts 1 bezüglich einer Ausfall- und/oder Fehlersicherheit erfüllt, beispielsweise ein so genanntes ASIL-Level, beispielsweise eine ASIL-B Einstufung. Hierzu wird die jeweilige Anwendungssoftware, d. h. die jeweilige Applikation, wie bereits beschrieben, auf den beiden gleich ausgebildeten Kernen K21, K22 des zweiten Mikroprozessorsystems M2 parallel ausgeführt. Diese Ausführung erfolgt innerhalb eines Applikationszyklus AZ von beispielsweise 20 ms blockweise. Die Bearbeitungszeit jedes Blocks BB1, BB2, BB3 beträgt beispielsweise 2 ms. Nach jedem Block BB1, BB2, BB3 werden die mit den beiden Kernen K21, K22 des zweiten Mikroprozessorsystems M2 ermittelten Ausgangsdaten verglichen. Beim erfolgreichen Vergleich wird der nächste Block BB1, BB2, BB3 ausgeführt. Bei einem fehlgeschlagenen Vergleich wird der Zustand wie vor dem zuletzt ausgeführten Block BB1, BB2, BB3 wieder hergestellt und der jeweilige Block BB1, BB2, BB3 wird erneut ausgeführt. Eine Laufzeitreserve des Applikationszyklus AZ ist dabei derart vorgegeben, dass sie zur Wiederholung der Ausführung zumindest eines Blocks BB1, BB2, BB3 oder mehrerer Blöcke BB1, BB2, BB3 und der hierfür erforderlichen zusätzlichen Rechenzeit ausreicht.
-
Auf diese Weise kann eine als ASIL-B eingestufte Software oder eine andere sicherheitsrelevante Software mittels dieses Fahrzeugsteuergeräts 1 und mittels dessen zweitem Mikroprozessorsystem M2, welches nicht nach für sicherheitskritische Anwendungen erforderlichen Prozessen, beispielsweise ISO26262, entwickelt wurde, ausgeführt werden. Bei auftretenden Fehlern erfolgt eine Fehlerbehebung innerhalb des Applikationszyklus AZ und ist somit nach außen hin nicht sichtbar. Der Mechanismus kann vollständig in der Laufzeitumgebung umgesetzt werden und ist damit für die eigentliche Applikation transparent. Diese Vorgehensweise hat keinen Einfluss auf die Algorithmen, da keine diversitäre Berechnung, keine Plausibilisierung oder ähnliches erforderlich ist. Es wird eine Steigerung der Robustheit erzielt durch eine, nach außen hin nicht sichtbare, Korrektur von Fehlern mittels der blockweisen Ausführung der Applikation. Das Verfahren ermöglicht somit eine größere Auswahl von für das Fahrzeugsteuergerät 1 verfügbaren Mikroprozessoren insbesondere höherer Leistungsklassen. Damit können zukünftige Assistenzsystemanwendungen realisiert werden, die ansonsten nicht oder nur mit einem deutlich höheren Aufwand entwickelt werden könnten.
-
Im Folgenden wird ein Ausführungsbeispiel des Verfahrens anhand der Figuren näher beschrieben. Wie bereits erläutert, weist das in 1 dargestellte Fahrzeugsteuergerät 1 das für sicherheitskritische Anwendungen zugelassene erste Mikroprozessorsystem M1 und das zweite Mikroprozessorsystem M2 auf, welches einen niedrigeren Sicherheitslevel als das erste Mikroprozessorsystem M1 erfüllt. Die Mikroprozessorsysteme M1, M2 arbeiten im Master-Slave-Prinzip, wobei das erste Mikroprozessorsystem M1 der Master und das zweite Mikroprozessorsystem M2 der Slave ist. Die beiden Mikroprozessorsysteme M1, M2 kommunizieren über die Datenübertragungsverbindung IPC miteinander, auch als Interprozesskommunikation bezeichnet. Diese Kommunikation ist End-To-End abgesichert, d. h. es wird überprüft, ob jeweils empfangene Daten korrekt und fehlerfrei übertragen wurden. Das erste Mikroprozessorsystem M1 ist, wie bereits beschrieben, über eine Datenübertragungsleitung DL, beispielsweise über einen CAN-Bus, mit einer oder mehreren Komponenten des Fahrzeugs verbunden, beispielsweise mit einem anderen Steuergerät.
-
Das erste Mikroprozessorsystem M1 ist, wie bereits beschrieben, im hier dargestellten Beispiel als ein so genannter TriCore-Prozessor ausgebildet, d. h. als ein Mikroprozessor mit drei vorteilhafterweise gleich ausgebildeten Kernen K11, K12, K13. Dieses erste Mikroprozessorsystem M1 ist nach ISO26262 entwickelt und ist für sicherheitskritische Applikationen bis ASIL-D geeignet, weist jedoch eine im Vergleich zum zweiten Mikroprozessorsystem M2 geringe Rechenleistung auf.
-
Das zweite Mikroprozessorsystem M2 ist als ein Zwei-Kern-Prozessor mit zwei gleichen Kernen K21, K22 ausgebildet, als ein so genannter Dual-Core Prozessor. Dieses zweite Mikroprozessorsystem M2 ist nicht nach ISO26262 entwickelt und verfügt nicht über Hardware-Core-Tests. Es weist einen L1-Cache, einen L2-Cache und einen L3-Cache auf, wobei auf dem L1-Cache und dem L2-Cache keine Fehlererkennung von Speicherfehlern (ECC = Error Correction Code) durchgeführt wird, sondern nur auf dem L3-Cache und einem externen Speicher.
-
Durch die oben beschriebene redundante Berechnung der Applikation und den Vergleich der Ergebnisse werden jedoch alle permanenten und transienten Fehler der Kerne K21, K22 und der Speicher des zweiten Mikroprozessorsystems M2 erkannt, so dass mittels des Verfahrens auch bei diesem zweiten Mikroprozessorsystem M2 das ASIL-B Sicherheitslevel erreicht wird. Zwar weisen die großen Caches des zweiten Mikroprozessorsystems M2 ohne die Fehlererkennung eine hohe Einzelfehlerrate auf, was zu einer hohen Ausfallrate des Gesamtsystems führen kann. Jedoch erfolgt bei auftretenden Fehlern eine Fehlerbehebung innerhalb des Applikationszyklus AZ und ist somit nach außen hin nicht sichtbar, so dass auch bei aufgetretenen Fehlern die Applikation innerhalb des Applikationszyklus AZ korrekt abgeschlossen wird. Im ersten Kern K11 des ersten Mikroprozessorsystems M1 wird eine Standardsoftware ausgeführt, auch als Rahmensoftware RSW bezeichnet. Diese bildet eine Anwendungsumgebung für die Applikation des jeweiligen Assistenzsystems. Bei dieser Applikation handelt es sich im hier dargestellten Beispiel um eine als ASIL-B eingestufte Applikation, d. h. um eine sicherheitskritische Applikation mit einem entsprechenden Sicherheitslevel. Ein erster Teil A1 und ein zweiter Teil A2 dieser Applikation werden im zweiten Kern K12 bzw. im dritten Kern K13 des ersten Mikroprozessorsystems M1 verarbeitet. Ein dritter Teil A3 der Applikation wird vom ersten Mikroprozessorsystem M1 an das zweite Mikroprozessorsystem M2 übertragen und dort parallel und blockweise in dessen beiden Kernen K21, K22 verarbeitet, wobei nach jedem Block BB1, BB2, BB3 von den beiden Kernen K21, K22 des zweiten Mikroprozessorsystems M2 ermittelte Ausgangsdaten des jeweiligen Blocks BB1, BB2, BB3 miteinander verglichen werden. Diese Datenverarbeitung im zweiten Mikroprozessorsystem M2 ist in 2 detailliert dargestellt.
-
Es werden in beiden Kernen K21, K22 des zweiten Mikroprozessorsystems M2 folgende Schritte parallel durchgeführt:
- – Partitionieren der Applikation in mehrere Blöcke BB1, BB2, BB3, im hier dargestellten Beispiel in drei Blöcke BB1, BB2, BB3, die beispielsweise jeweils maximal zwei Millisekunden Bearbeitungszeit erfordern.
- – Sichern eines Ausgangszustands aller Blöcke BB1, BB2, BB3 in einem Sicherungsschritt S vor einer Ausführung der Applikation, zu Beginn des Applikationszyklus AZ, welcher beispielsweise eine Zykluslänge von 20 ms aufweist, d. h. die Eingangsstrukturen und Ausgangsstrukturen und internen Zustände der Blöcke BB1, BB2, BB3 sind klar in einem RAM-Speicher RS separiert. Der RAM-Speicher RS ist der L3-Cache oder ein externer Speicher, welcher eine Fehlererkennung von Speicherfehlern (ECC = Error Correction Code) aufweist.
- – Ausführen der Applikation blockweise,
- – Durchführen eines Binärvergleichs eines jeweiligen Programmstandes nach jedem Block BB1, BB2, BB3, auch als Output-Vergleich OV bezeichnet. Dieser Binärvergleich, d. h. der Vergleich der von den beiden Kernen K21, K22 ermittelten Ausgangsdaten des jeweiligen Blocks BB1, BB2, BB3, findet parallel auf beiden Kernen K21, K22 des zweiten Mikroprozessorsystems M2 statt.
- – Ausführen der Applikation im nächsten Block BB1, BB2, BB3 nach erfolgreichem Binärvergleich, d. h. der jeweils nächste Block BB1, BB2, BB3 wird erst dann gestartet, wenn beide Kerne K21, K22, des zweiten Mikroprozessorsystems M2 die Ausgangsdaten erfolgreich verglichen haben. Bei einem fehlgeschlagenen Vergleich muss der jeweilige Block BB1, BB2, BB3 wiederholt werden. Hierzu wird der Zustand wie vor der Ausführung des jeweiligen Blocks BB1, BB2, BB3, bei welchem der Vergleich fehlgeschlagen ist, wiederhergestellt und der Block BB1, BB2, BB3 wird nochmals ausgeführt.
-
Im hier dargestellten Beispiel wird zunächst der erste Block BB1 in beiden Kernen K21, K22 des zweiten Mikroprozessorsystems M2 parallel ausgeführt. Die Ausgangsdaten werden im RAM-Speicher RS gesichert und es erfolgt der Output-Vergleich OV dieser Ausgangsdaten. Das jeweilige Sichern der Ausgangsdaten im RAM-Speicher RS ist in 2 durch dritte Pfeile P3 angedeutet. Im hier dargestellten Beispiel sind die Ausgangsdaten vom ersten Block BB1 identisch, so dass mit dem zweiten Block BB2 fortgefahren wird. Auch dieser zweite Block BB2 wird von beiden Kernen K21, K22 des zweiten Mikroprozessorsystems M2 parallel ausgeführt. Die Ausgangsdaten werden im RAM-Speicher RS gesichert und es erfolgt ein Vergleich dieser Ausgangsdaten, d. h. erneut ein Output-Vergleich OV.
-
In diesem Beispiel wird dabei festgestellt, dass die Ausgangsdaten voneinander abweichen, d. h. der Vergleich ist fehlgeschlagen, schematisch dargestellt durch einen Störungspfeil SP. Daher muss dieser zweite Block BB2 wiederholt werden. Hierzu wird der zweite Bock BB2 in einem Wiederherstellungsschritt W selektiv wiederhergestellt, d. h. der Zustand wie vor dem Ablauf des zweiten Blocks BB2 wird wieder hergestellt, und der zweite Block BB2 wird erneut ausgeführt. Die Ausgangsdaten werden im RAM-Speicher RS gesichert und es erfolgt ein Vergleich dieser Ausgangsdaten, d. h. wieder ein Output-Vergleich OV. Die zusätzlichen Schritte bei einer festgestellten Abweichung der Ausgangsdaten der beiden Kerne K21, K22 des zweiten Mikroprozessorsystems M2 sind durch eine Klammer K markiert.
-
Im hier dargestellten Beispiel sind nun die Ausgangsdaten vom zweiten Block BB2 identisch, so dass mit dem dritten Block BB3 fortgefahren wird. Die Ausgangsdaten werden im RAM-Speicher RS gesichert und es erfolgt ein Vergleich dieser Ausgangsdaten des dritten Blocks BB3, d. h. erneut ein Output-Vergleich OV. Im hier dargestellten Beispiel sind die Ausgangsdaten vom dritten Block BB3 identisch, so dass die Berechnung des auf dem zweiten Mikroprozessorsystem M2 durchzuführenden dritten Teils A3 der Applikation innerhalb des Applikationszyklus AZ von in diesem Beispiel 20 ms abgeschlossen ist. Ergebnisdaten, welche das Ergebnis der Berechnung des letzten Blocks BB3 darstellen, werden aus dem RAM-Speicher RS ausgelesen, angedeutet durch einen vierten Pfeil P4, und über die Datenübertragungsverbindung IPC an das erste Mikroprozessorsystem M1 als End-To-End abgesichertes Datenpaket übertragen. Der Applikationszyklus AZ ist derart vorgegeben, dass eine Restlaufzeit ausreichend groß ist, um zumindest den längsten Block BB1, BB2, BB3 einmal erneut berechnen zu können und dadurch den Applikationszyklus AZ nicht zu überschreiten. Dadurch ist die Fehlerbehandlung ohne sichtbaren Einfluss nach außen hin ermöglicht.
-
In den 3 bis 5 sind ein interner RAM-Speicher IRS des zweiten Mikroprozessorsystems M2 und der Verlauf der Datenverarbeitung dargestellt. Der interne RAM-Speicher IRS weist einen ersten Speicherbereich SB1 auf, in welchem der Programmcode des dritten Teils A3 der Applikation abgelegt ist und dort unverändert verbleibt. Des Weiteren weist der interne RAM-Speicher IRS für beide Kerne K21, K22 des zweiten Mikroprozessorsystems M2 jeweils einen Kernspeicherbereich SK1, SK2 auf.
-
Diese Kernspeicherbereiche SK1, SK2 sind jeweils unterteilt in einen Arbeitsbereich SK1A, SK2A und einen so genannten Backup-Bereich SK1B, SK2B. Zunächst wird, wie in 3 gezeigt, der Programmcode dieses dritten Teils A3 der Applikation im Arbeitsbereich SK1A, SK2A beider Kernspeicherbereiche SK1, SK2 abgelegt. Zudem wird in einem Kopierschritt KS eine Kopie dieses Programmcodes des dritten Teils A3 der Applikation erstellt und im jeweiligen Backup-Bereich SK1B, SK2B abgelegt. Danach wird die Applikation blockweise durchgeführt und die Ergebnisse werden miteinander verglichen. Bei erfolgreichem Vergleich wird der nächste Block BB1, BB2, BB3 ausgeführt.
-
Der Vergleich der von den beiden Kernen K21, K22 des zweiten Mikroprozessorsystems M2 ermittelten Ausgangsdaten, d. h. der Output-Vergleich OV, ist in 4 anhand des zweiten Blocks BB2 dargestellt, d. h. im hier dargestellten Beispiel ist die Verarbeitung des ersten Blocks BB1 bereits abgeschlossen und der Vergleich der Ergebnisse dieses ersten Blocks BB1 war erfolgreich, wie zu 2 bereits beschrieben. Daher wurde die Verarbeitung des zweiten Blocks BB2 durchgeführt und in 4 ist der Output-Vergleich OV des zweiten Blocks BB2 dargestellt. Wie bereits zu 2 beschrieben, weichen die von den beiden Kernen K21, K22 des zweiten Mikroprozessorsystems M2 ermittelten Ausgangsdaten des zweiten Blocks BB2 voneinander ab. Daher wird nun, wie in 5 gezeigt, mittels der im jeweiligen Backup-Bereich SK1B, SK2B gespeicherten Kopie des zweiten Blocks BB2 im Wiederherstellungsschritt W der zweite Block BB2 im jeweiligen Arbeitsbereich SK1A, SK2A wiederhergestellt und erneut verarbeitet. Sollte ein Speicherfehler, beispielsweise ein so genannter Cache-Invalidate, auftreten, so kann der Programmcode im ersten Speicherbereich SB1 aus dem externen RAM-Speicher RS wiederhergestellt werden.
-
Fehler, welche zu unterschiedlichen Ergebnissen der beiden Kerne K21, K22 des zweiten Mikroprozessorsystems M2 führen können, sind beispielsweise Bitfehler auf dem Daten-RAM, d. h. auf dem internen RAM-Speicher IRS, aber auch beispielsweise ein Programmabbruch (beispielsweise Undefined Instruction oder Data Abort oder ähnliches), oder transiente Fehler im jeweiligen Kern K21, K22 des zweiten Mikroprozessorsystems M2 oder Bitfehler im Instruktionscache. Auch dabei erfolgt ein Wiederherstellen des jeweiligen Blocks BB1, BB2, BB3 nach dem jeweiligen Output-Vergleich OV und dem Feststellen der Abweichung. Sind die von den beiden Kernen K21, K22 des zweiten Mikroprozessorsystems M2 ermittelten Ausgangsdaten des jeweiligen Blocks BB1, BB2, BB3 unterschiedlich, wird der Unterschied durch den Binärvergleich erkannt. Es erfolgt daher das selektive Wiederherstellen des jeweiligen Blocks BB1, BB2, BB3 analog zu Fehlern der Daten. Wird dadurch ein Speicherfehler auf dem L1-Cache oder L2-Cache erkannt, d. h. ein so genanntes L1/L2 Cache-Invalidate, wird gleichzeitig der korrekte Programmcode wieder aus dem ECC-abgesicherten L3-Cache oder externen RAM-Speicher RS geladen.
-
In 5 sind anhand des Beispiels der Bearbeitung des zweiten Blocks BB2 im ersten Kern K21 des zweiten Mikroprozessorsystems M2 Speicherschutzvorschriften dargestellt, welche ein Verändern anderer, gerade nicht bearbeiteter Blöcke BB1, BB3 verhindern. Während der Bearbeitung des jeweiligen Blocks BB2 hat der erste Kern K21 des zweiten Mikroprozessorsystems M2 lediglich Zugriff auf seinen Arbeitsbereich, d. h. auf den ersten Arbeitsbereich SK1A. Auf einen Rahmensoftwarebereich RSB, auf den Bereich des zweiten Kerns K22 und auf den eigenen Backup-Bereich, d. h. auf den ersten Backup-Bereich SK1B, hat der erste Kern K21 keinen Zugriff, d. h. weder einen Lesezugriff noch einen Schreibzugriff. Diese Bereiche, auf welche der erste Kern K21 keinen Zugriff hat, sind mit dem Bezugszeichen KZ gekennzeichnet. Des Weiteren hat der erste Kern K21 auch in seinem Arbeitsbereich, d. h. im ersten Arbeitsbereich SK1A, lediglich auf den zweiten Block BB2, welcher gerade bearbeitet wird, einen Lese- und Schreibzugriff, hier mit dem Bezugszeichen RW gekennzeichnet. Dieser zweite Block BB2 wird aktuell bearbeitet und darf daher auch überschrieben werden. Auf die Speicherbereiche der anderen Blöcke BB1, BB3 im ersten Arbeitsbereich SK1A hat der erste Kern K21 lediglich einen Lesezugriff, mit dem Bezugszeichen R gekennzeichnet.
-
Dies gilt analog auch für den zweiten Kern K22. D. h. die beiden Kerne K21, K22 haben jeweils lediglich einen Lese- und Schreibzugriff auf die Speicherbereiche ihres jeweiligen Arbeitsbereichs SK1A, SK2A, in welchem der jeweilige Block BB1, BB2, BB3 abgelegt ist, der gerade bearbeitet wird. Auf die anderen Speicherbereiche ihres eigenen Arbeitsbereichs SK1A, SK2A haben sie lediglich einen Lesezugriff und auf alle anderen Speicherbereiche haben sie keinen Zugriff.
-
D. h. die Rahmensoftware RSW konfiguriert eine so genannte Memory Management Unit (MMU) entsprechend des Programmflusses der Applikation. Im hier dargestellten Beispiel wird während der Ausführung des zweiten Blocks BB2 der Lese- und Schreibzugriff für den jeweiligen Kern K21, K22 nur für die Daten des zweiten Blocks BB2 im jeweiligen Arbeitsbereich SK1A, SK2A des Kerns K21, K22 freigeschaltet. Für die anderen Blöcke BB1, BB3 wird für den jeweiligen Kern K21, K22 nur der Lesezugriff in dessen Arbeitsbereich SK1A, SK2A freigeschaltet. Somit erfolgen Schreibzugriffe nur auf Daten im jeweils bearbeiteten Block BB2. Auch indirekte Schreibzugriffe über Methodenaufrufe in anderen Blöcken BB1, BB3 sind nicht zulässig. Der Zugriff auf die restlichen Speicherbereiche, d. h. auf den Backup-Bereich SK1B, SK2B des jeweiligen Kerns K21, K22 sowie auf den Speicherbereich des jeweiligen anderen Kerns K22, K21 und auf den Rahmensoftwarebereich RSB wird verhindert. Dieser Speicherschutz ist notwendig, damit der Zustand der gesamten Applikation durch das selektive Zurücksetzen des Zustands eines jeweiligen Blocks BB1, BB2, BB3 wiederhergestellt werden kann.
-
Bezugszeichenliste
-
- 1
- Fahrzeugsteuergerät
- A1
- erster Teil der Applikation
- A2
- zweiter Teil der Applikation
- A3
- dritter Teil der Applikation
- AZ
- Applikationszyklus
- BB1
- erster Block
- BB2
- zweiter Block
- BB3
- dritter Block
- DL
- Datenübertragungsleitung
- IPC
- Datenübertragungsverbindung
- IRS
- interner RAM-Speicher
- K
- Klammer
- K11
- erster Kern des ersten Mikroprozessorsystems
- K12
- zweiter Kern des ersten Mikroprozessorsystems
- K13
- dritter Kern des ersten Mikroprozessorsystems
- K21
- erster Kern des zweiten Mikroprozessorsystems
- K22
- zweiter Kern des zweiten Mikroprozessorsystems
- KS
- Kopierschritt
- KZ
- kein Zugriff
- M1
- erstes Mikroprozessorsystem
- M2
- zweites Mikroprozessorsystem
- OV
- Output-Vergleich
- P1
- erster Pfeil
- P2
- zweiter Pfeil
- P3
- dritter Pfeil
- P4
- vierter Pfeil
- R
- Lesezugriff
- RSW
- Rahmensoftware
- RS
- RAM-Speicher
- RSB
- Rahmensoftwarebereich
- RW
- Lese- und Schreibzugriff
- S
- Sicherungsschritt
- SB1
- erster Speicherbereich
- SK1
- erster Kernspeicherbereich
- SK2
- zweiter Kernspeicherbereich
- SK1A
- erster Arbeitsbereich
- SK2A
- zweiter Arbeitsbereich
- SK1B
- erster Backup-Bereich
- SK2B
- zweiter Backup-Bereich
- SP
- Störungspfeil
- W
- Wiederherstellungsschritt
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- DE 102011007437 A1 [0002]
- DE 10331873 A1 [0003]
-
Zitierte Nicht-Patentliteratur
-
- ISO26262 [0030]
- ISO26262 [0032]
- ISO26262 [0033]