-
Stand der Technik
-
Die Erfindung betrifft ein Verfahren zur Koexistenz von Software mit verschiedenen Sicherheitsstufen in einem Multicore-Prozessor, welcher mindestens zwei Rechenkerne aufweist, wobei jedem Rechenkern ein Speicherbereich zugeordnet wird und die Software mit einer vorgegebenen Sicherheitsstufe auf einen der Rechenkerne verarbeitet wird.
-
In der Automobilindustrie werden in Steuergeräten zur Steuerung verschiedener Abläufe eingebettete Systeme verwendet, bei welchem Multicore-Mikrocontroller eingesetzt werden. Diese Multicore-Mikrocontroller enthalten zwei oder mehr Rechenkerne. Für sicherheitsrelevante Anwendungen ist es üblich, diese Rechenkerne durch geeignete Hardwaremaßnahmen abzusichern, beispielsweise indem ein Rechenkern mit einem Lockstep im gekoppelten Rechenkern abgesichert wird oder eine fehlerredundante CPU verwendet wird. Bei einem Lockstep-Paar von Rechenkernen arbeiten zwei Rechenkerne synchron, wobei auf beiden Rechenkernen die gleiche Software abläuft und ein Vergleicher die Ergebnisse jeder Operation vergleicht. Bei Feststellung einer Ungleichheit wird eine Fehlermeldung ausgesendet. Als aktiver Busteilnehmer tritt das Lockstep-Paar aber nur als ein Teilnehmer auf. Ein solches Paar wird somit auch als ein abgesicherter Rechenkern bezeichnet.
-
Darüber hinaus ist im Automobilbereich für sicherheitsrelevante Elektroniksysteme die ISO 26262 relevant. Diese führt den Begriff des ASIL (Automotive Safety Integrity Level) ein und erlaubt es, verschiedene Systeme, Funktionen und Teilfunktionen nach ihrer Sicherheitsrelevanz in die verschiedenen Sicherheitsstufen ( ASILs) zu klassifizieren. Diese ASILs umfassen QM, A, B, C, D (aufsteigend sortiert). Falls verschiedene ASILs gleichzeitig in einem Rechensystem, beispielsweise einem Mikrorechner, verwendet werden, wird zwischen den verschiedenen Sicherheitsstufen eine gewisse Unabhängigkeit, eine sogenannte Freedom-from-Interference, gefordert.
-
Es ist wichtig, bei sicherheitsrelevanten Anwendungen Teile mit verschiedenen Sicherheitsstufen in einfacher Form voneinander zu trennen.
-
Offenbarung der Erfindung
-
Der Erfindung liegt somit die Aufgabe zugrunde, ein Verfahren zur Koexistenz von verschiedenen Sicherheitsstufen in einem Multicore-Prozessor anzugeben, bei welchem bei sicherheitsrelevanten Anwendungen mit verschiedenen Sicherheitsstufen versehenen Systemteile in einfacher Form voneinander getrennt werden.
-
Erfindungsgemäß wird die Aufgabe dadurch gelöst, dass der, den Softwareteil verarbeitende Rechenkern, dem der geschützte Speicherbereich zugeordnet ist, auf diesen Speicherbereich zugreift, wobei ein Zugriff mindestens einer der weiteren Rechenkerne des Multicore-Prozessors auf diesen zugeordneten geschützten Speicherbereich unterbunden wird. Dies hat den Vorteil, dass nur Systemteile miteinander kommunizieren, die derselben Sicherheitsstufe zugeordnet sind. Dadurch lassen sich die Systemteile des Multicore-Mikroprozessors mit unterschiedlichen Sicherheitsstufen einfach trennen. Eine solche Lösung erlaubt nicht nur eine möglichst gute Trennung dieser Rechenkerne und Speichereinheiten voneinander, sondern ermöglicht auch eine getrennte Entwicklung der einzelnen Systemteile. Aufgrund dessen ist eine Unabhängigkeit in Form einer Freedom-from-Interference in einem solchen Multicore-Mikroprozessorsystem gegeben. Durch diese Trennung kann eine fehlerhafte Einwirkung eines Systemteils des Multicore-Mikroprozessors auf einen anderen Systemteil des Multicore-Mikroprozessors mit hinreichender Sicherheit ausgeschlossen werden.
-
Vorteilhafterweise erlaubt eine zwischen den Rechenkernen und den Speicherbereichen ausgebildete Speicherschutzeinrichtung nur dem Rechenkern den Zugriff auf den geschützten Speicherbereich, der die gleiche Sicherheitsstufe aufweist und diesem Speicherbereich zugeordnet ist. Die grundsätzliche Idee besteht darin, dass auf jedem Rechenkern nur Software einer gegebenen Sicherheitsstufe läuft und dass sichergestellt wird, dass kein Rechenkern auf den geschützten Speicherbereich eines anderen Rechenkerns Zugriff hat. Auf jedem Rechenkern befindet sich somit Software mit einem ASIL. Mit fünf Rechenkernen lassen sich somit Systeme mit einer Sicherheitsstufe von ASIL QM, A, B, C, D realisieren. Dies ermöglicht eine Freedom-from-Interference-Argumentation in einer generischen Form und damit die Koexistenz verschiedener ASILs in einem Multicore-Mikroprozessor.
-
In einer Ausgestaltung erlaubt die zweistufig ausgebildete Speicherschutzeinrichtung einen Zugriff eines Rechenkerns auf den jeweiligen geschützten Speicherbereich über eine, in der Speicherschutzeinrichtung ausgebildete Hierarchieschicht. Die Speicherschutzeinrichtung erlaubt es, über eine geeignete Programmierung sicherzustellen, dass auf die ausgewählten geschützten Speicherbereiche nur bestimmte Busmaster Zugriff haben, was heißt, dass auf bestimmte Speicherbereiche des Multicore-Prozessors ein gegebener Master niemals Zugriff hat, unabhängig davon, welche Software auf ihm läuft.
-
In einer Variante überprüft die Software beim Startvorgang des Multicore-Prozessors, ob nur der, dem geschützten Speicherbereich zugeordnete Rechenkern Zugriff auf den geschützten Speicherbereich hat. Dadurch wird sichergestellt, dass die ausgewählten Bereiche, die eine vorgegebene Sicherheitsstufe umfassen, voneinander getrennt und von weiteren Bestandteilen des Multicore-Mikroprozessors nicht beeinflusst werden.
-
In einer Ausführungsform wird zur Überprüfung des Zugriffs auf den geschützten Speicherbereich eine Konfiguration aus der Speicherschutzeinrichtung ausgelesen oder die Speicherschutzeinrichtung durch die Software neu programmiert. Da die Neuprogrammierung nur während des Startvorganges des Multicore-Prozessors erfolgt, wird sichergestellt, dass bei Zugriff einer Software mit einer anderen Sicherheitsstufe während des Betriebes des Multicore-Prozessorsystems auf die Speicherschutzeinrichtung keine Veränderung der Konfiguration vorgenommen wird.
-
In einer weiteren Variante erfolgt die Neuprogrammierung der Speicherschutzeinrichtung statisch. Das heißt, dass nach dem Programmiervorgang die Programmierung nicht mehr verändert werden kann, was insbesondere durch die verwendete Form der Speicherschutzeinrichtung gewährleistet wird. Aufgrund dieser Vorgehensweise kann aber zum Zeitpunkt des Startens des Multicore-Mikroprozessors durch eine Software mit einer vorgegebenen Sicherheitsstufe abgesichert werden, dass unabhängig davon, ob Software mit einer anderen Sicherheitsstufe auf weiteren, in dem Multicore-Prozessorsystem enthaltenen Rechenkernen läuft, diese Software mit der anderen Sicherheitsstufe nicht auf den Bereich des Rechenkerns zugreifen kann, auf welchen die Software mit der vorgegebenen Sicherheitsstufe zugreift. Dies gilt auch dann, wenn eine weitere Software im laufenden Betrieb der Multicore-Prozessoreinheit nachgeladen wurde.
-
In einer Ausführungsform erlaubt die Konfiguration der Speicherschutzeinrichtung dem ersten, eine erste Sicherheitsstufe aufweisenden Rechenkern und einem zweiten, eine zweite Sicherheitsstufe aufweisenden Rechenkern einen Zugriff auf einen dritten geschützten Speicherbereich. Ein solcher Zugriff ist immer dann von besonderer Bedeutung, wenn die einzelnen Systemteile des Multicore-Mikroprozessors, wie der erste und der zweite Rechenkern, bei der Abarbeitung der auf ihnen laufenden Software mit verschiedenen Sicherheitsstufen miteinander kommunizieren müssen. Somit wird ein zusätzlicher geschützter Speicherbereich eingerichtet, auf welchem beide Systemteile zugreifen können. Dadurch wird gewährleistet, dass lediglich nur diese Software und keine weiteren anderen Softwarekomponenten auch auf den dritten geschützten Speicherbereich zugreifen können.
-
Vorteilhafterweise greift der erste Rechenkern auf den ersten geschützten Speicherbereich zu, während gleichzeitig der zweite Rechenkern auf den zweiten geschützten Speicherbereich zugreift. Somit kann die Software mit unterschiedlichen Sicherheitsstufen parallel nebeneinander auf den verschiedenen Rechenkernen abgearbeitet werden, wodurch der Abarbeitungsprozess infolge des parallelisierbaren Speicherzugriffs beschleunigt wird. Bei einem solchen parallelisierbaren Speicherzugriff gibt es keine Auswirkungen des Zugriffs zwischen der ersten Recheneinheit und dem ersten geschützten Speicherbereich sowie der zweiten Recheneinheit und dem zweiten geschützten Speicherbereich. Um einen solchen parallelisierbaren Speicherzugriff zu gewährleisten, können beispielsweise lokale Speicher mit einer direkten Verbindung zum Rechenkern verwendet werden, welche einen schnellen Zugriff erlauben. Weiterhin kann man über Crossbars einen echten parallelen Zugriff ermöglichen. Eine weitere Möglichkeit besteht in der Verwendung von Dual Ported Memories. Durch die Verwendung von Caches oder auch Prefetch Buffern lässt sich eine Parallelität ebenfalls häufig annähern. Insbesondere, wenn man Prefetch Buffer zeitlich so steuert, dass die Interconnect-Nutzung konfliktfrei verläuft, kann man die faktische Parallelisierung verbessern.
-
In einer weiteren Ausführungsform unterbindet ein Zeitmanagementsystem den gleichzeitigen Zugriff von dem ersten und dem zweiten Rechenkern auf den geschützten dritten Speicherbereich. Dadurch wird zuverlässig verhindert, dass ein gleichzeitiger Zugriff des ersten und des zweiten Rechenkerns auf den geschützten dritten Bereich erfolgt. Dadurch, dass eine Überlappung zweier Zugriffe verhindert wird, wird eine gegenseitige Beeinflussung der auf dem ersten bzw. dem zweiten Rechenkern ablaufenden Software unterbunden. Somit wird auch in diesem Fall die Freedom-from-Interference-Bedingung gewährleistet. Dies gilt auch bei einem nicht vollständig parallelisierbaren Verbindungssystem, wie beispielsweise einem Bus oder einem anderen Interconnect-System.
-
In der einfachsten Form einer solchen Zeitsteuerung umfasst das Zeitmanagementsystem einen Zeitplan, der festlegt, zu welchem Zeitpunkt der erste bzw. zweite Rechenkern auf den geschützten dritten Speicherbereich zugreifen. Zu einem gegebenen Zeitpunkt sollte damit höchstens eine Recheneinheit die Erlaubnis haben, auf den geschützten dritten Speicherbereich zuzugreifen. Ein solches zeitliches Ressourcenaufteilungskonzept ist beispielsweise gut für Bussysteme verwendbar, die in Steuergeräten von Kraftfahrzeugen eingesetzt werden, wie FlexRay, TTCAN, TTP/C. Somit werden Softwarekonflikte beim Zugriff verhindert und die Freedom-from-Interference erhöht.
-
In einer weiteren Variante wird zur Überwachung des Zugriffs des ersten bzw. zweiten Rechenkerns auf den geschützten dritten Speicherbereich ein Protokoll angefertigt, in welchem die Zugriffe der Rechenkerne auf den dritten geschützten Speicherbereich mit einem Zeitstempel versehen sind. Mit Hilfe eines solchen Zeitstempels lässt sich sehr einfach die zeitliche Reihenfolge der Zugriffe identifizieren und feststellen, ob ein Konfliktfall mit einer gegenseitigen Beeinflussung der Software, die unerwünscht ist, stattgefunden hat.
-
Vorteilhafterweise greift der Rechenkern mit einer vorgegebenen Sicherheitsstufe während der Verarbeitung der Software mit der entsprechenden Sicherheitsstufe nur auf ein geschütztes, für diese Verarbeitung ausgewähltes peripheres Element des Multicore-Mikroprozessors zu. Bei solchen peripheren Elementen des Multicore-Mikroprozessors kann es sich beispielsweise um A/D-Wandler, Kommunikationscontroller oder Timer handeln. Durch diese Festlegung wird gewährleistet, dass dasselbe periphere Element des Multicore-Mikroprozessors nicht gleichzeitig durch die, mit einer Sicherheitsstufe beaufschlagten Systemteile des Multicore-Mikroprozessors genutzt werden und daher keine gegenseitige Beeinflussung und somit Veränderung der Software möglich ist. Somit wird auch in diesem Fall eine Freedom-from-Interference ermöglicht, wodurch Konfigurationen und zerstörende Lesezugriffe unterbunden werden.
-
In einer Ausgestaltung wird das periphere Element nur während des Startvorganges des Multicore-Mikroprozessors konfiguriert. Damit wird sichergestellt, dass kein Softwarefehler die Konfiguration des peripheren Elementes verändern kann. Weiterhin wird zuverlässig verhindert, dass ein solcher Softwarefehler einen Einfluss auf eine andere Anwendung innerhalb des Multicore-Mikroprozessors hat, welcher das gleiche periphere Element benutzt. Sollte während des Startvorganges ein Fehler detektiert werden, so kann schon vor Inbetriebnahme des Multicore-Mikroprozessors ein Fehlersignal ausgegeben werden.
-
Abhängig davon, in welcher Form ein solcher Schutz gegen Konfigurationsänderungen möglich ist, kann es darüber hinaus noch sinnvoll sein, dass die Konfiguration des peripheren Elementes in vorgegebenen Zeitabständen lesend überprüft wird. Dies kann von jedem Systemteil des Multicore-Mikroprozessors durchgeführt werden und stellt einen aktiven Schutz gegen Konfigurationsfehler dar.
-
In einer Weiterbildung wird bei einem Download einer neuen Software auf den Multicore-Prozessor diese nur auf solchen Rechenkernen zum Ablauf gebracht, die keine Zuordnung zu einer Sicherheitsstufe und/oder keinen Zugriff auf die geschützten Speicherbereiche aufweisen. Somit kann auch während des Betriebes des Multicore-Mikroprozessors neue und zusätzliche Software geladen werden, ohne dass eine Beeinflussung auf die, einer bestimmten Sicherheitsstufe unterliegenden Systemteile des Multicore-Mikroprozessors erfolgt.
-
Die Erfindung lässt zahlreiche Ausführungsformen zu. Drei davon sollen anhand der in der Zeichnung dargestellten Figuren näher erläutert werden. Es zeigen:
-
1: ein erstes Ausführungsbeispiel eines erfindungsgemäßen Multicore-Mikroprozessors,
-
2: ein zweites Ausführungsbeispiel eines erfindungsgemäßen Multicore-Mikroprozessors,
-
3: ein drittes Ausführungsbeispiel eines erfindungsgemäßen Multicore-Mikroprozessors,
-
4: ein viertes Ausführungsbeispiel eines erfindungsgemäßen Multicore-Mikroprozessors.
-
Gleiche Merkmale sind mit gleichen Bezugszeichen gekennzeichnet.
-
1 zeigt ein erstes Ausführungsbeispiel eines Multicore-Mikroprozessors
1, welches beispielsweise in eingebetteten Systemen in Steuergeräten von Kraftfahrzeugen verwendet wird und zwei Rechenkerne
2,
3 aufweist. Dem Rechenkern
2 ist der Speicherbereich
4 und dem Rechenkern
3 ist der Speicherbereich
5 zugeordnet. Beide Rechenkerne
2,
3 greifen auf die Speicherbereiche
4,
5 nur über eine entsprechende Speicherschutzeinrichtung
6 zu, welche als Memory Protection Unit (MPU) ausgebildet ist. Insbesondere erfolgt der Zugriff über eine entsprechende zweite Schicht der Memory Protection Unit, wie sie z. B. in der
EP 2 461 251 A1 beschrieben ist, beispielsweise auch über eine zusätzliche Safety-MPU. Der Speicherbereich
4 ist dabei nur für den Rechenkern
2 zugreifbar, was heißt, dass der Rechenkern
3 nicht auf den Speicherbereich
4 zugreifen darf. Entsprechend darf der Rechenkern
3 nur auf den Speicherbereich
5 zugreifen, wobei der Rechenkern
2 nicht auf den Speicherbereich
5 zugreifen darf. Es ist denkbar, dass es noch weitere, nicht weiter dargestellte Speicherbereiche gibt, auf die aber beide Rechenkerne
2,
3 zugreifen können.
-
In Steuergeräten von Kraftfahrzeugen laufen Softwareanwendungen mit unterschiedlichen Sicherheitsstufen ab. Solche Sicherheitsstufen werden in ASILs (Automotive Safety Integrity Level) gekennzeichnet. Diese Anwendungen werden nach ihrer Sicherheitsrelevanz in die verschiedenen, Sicherheitsstufen darstellenden ASILs, wie QM, A, B, C, D aufsteigend klassifiziert. Beispielsweise können die folgenden Softwareanwendungen entsprechende ASILs aufweisen:
ASIL D Steuerung des Antiblockiersystems,
ASIL B Steuerung des Einspritzsystem,
QM Klimaregelung des Fahrzeuginnenraumes.
-
Eine Software SW1, beispielsweise für die Steuerung des Antiblockiersystems des Kraftfahrzeuges, die die Sicherheitsstufe D aufweist, wird dabei nur auf dem Rechenkern 2 abgearbeitet, der für die Sicherheitsstufe D zugelassen ist. Eine zweite Anwendung in Form der Software SW2, beispielsweise der Benzineinspritzung, weist eine Sicherheitsstufe B auf. Diese Software SW2 wird ausschließlich auf dem Rechenkern 3 abgearbeitet, welcher für diese Sicherheitsstufe B zugelassen ist. Eine Freedom-from-Interference, d.h. eine Rückwirkungsfreiheit zwischen den beiden Softwareanwendungen, wird dadurch realisiert, dass die Software SW1 nur auf dem Rechenkern 2 zum Ablauf gebracht wird und die Software SW2 nur auf dem Rechenkern 3.
-
2 zeigt ein zweites Ausführungsbeispiel des Multicore-Mikroprozessors 9, bei welchem der Multicore-Mikroprozessor um die Rechenkerne 7 und 8 erweitert ist. Auch auf diesen Rechenkernen 7 und 8 läuft jeweils der Softwareanwendung SW3 bzw. der Softwareanwendung SW4 ab. Auch bei diesem Ausführungsbeispiel ist die gewünschte Freedom-from-Interference von allen weiteren Softwareanwendungen SW3, SW4 auf die Software SW1 und auch SW2 dann gewährleistet, wenn gilt, dass die Recheneinheit 2 nur die Software SW1 und die Recheneinheit 3 nur die Software SW2 verarbeitet. Darüber hinaus muss gewährleistet sein, dass nur die Recheneinheit 2 Zugriff auf den Speicherbereich 4 und nur die Recheneinheit 3 Zugriff auf den Speicherbereich 5 hat. Wenn dies durch die Verwendung der bereits beschriebenen Speicherschutzeinrichtung 6 auf die Rechenkerne 2, 3 gewährleistet ist, dann kann variable, im stärksten Fall dynamisch herunter geladene Software diese Eigenschaft der Multicore-Mikroprozessors 9 nicht verändern, so dass die Freedom-from-Interference-Bedingungen sogar für alle Fälle garantiert wird. Für die Softwareanwendungen SW3 und SW4 bestehen keinerlei Forderungen, dass sie einer bestimmten Recheneinheit zugeordnet sind. Sie können weitgehend beliebig auf die Recheneinheiten 2, 3, 7 oder 8 verteilt sein.
-
Um sich zu vergewissern, dass die Rechenkerne 3, 7, 8 keinen Zugang zum besonders geschützten Speicherbereich 4 haben, liest die Software SW1 während eines Boot- oder Startvorganges die Konfiguration der Speicherschutzeinrichtung 6 aus und bewertet sie. Es besteht aber auch die Möglichkeit, dass die Konfiguration der Speicherschutzeinrichtung 6 durch die Software SW1 während des Boot- oder Startvorganges selbst programmiert wird. Dabei muss lediglich gewährleistet sein, dass diese Programmierung statisch ist, d.h. dass nach dem Bootvorgang an der Konfiguration nichts mehr verändert werden kann. Somit wird zum Startzeitpunkt von der Software SW1 abgesichert, dass, unabhängig davon welche Software SW2, SW3, SW4 auf anderen Rechenkernen 3, 7, 8 läuft, diese Software SW2, SW3, SW4 nicht auf den Speicherbereich 4 zugreifen kann. Dies gilt selbst dann, wenn diese Software SW2, SW3, SW4 im laufenden Betrieb nachgeladen wird. Voraussetzung dafür ist, dass die nachgeladene Software nicht auf dem Rechenkern 2 zum Ablauf kommt, sondern auf einem der anderen Rechenkerne 3, 7 bzw. 8.
-
In Anwendungsfällen kommt es regelmäßig vor, dass verschiedene Softwareanwendungen während der Verarbeitung miteinander kommunizieren müssen. Um dies auch bei der beschriebenen Konfiguration des Multicore-Mikroprozessors 11 zu gewährleisten, wird, wie in 3 dargestellt, ein Speicherbereich 10 eingeführt, auf welchen sowohl der Rechenkern 2 als auch der Rechenkern 3 über die Speicherschutzeinrichtung 6 Zugriff haben. Dabei ist die Speicherschutzeinrichtung 6 so konfiguriert, dass auf den Speicherbereich 4 nur der Rechenkern 2, auf den Speicherbereich 5 nur der Rechenkern 3 und auf den Speicherbereich 10 nur die Rechenkerne 2 und 3 Zugriff haben. In diesem Fall ist, unabhängig davon, wie viele weitere Rechenkerne 7 in dem Mikroprozessorsystem 11 vorliegen und welche Softwareanwendungen auf diesen läuft, gewährleistet, dass es keine Einflussmöglichkeit von weiteren Softwareanwendungen, anderen Recheneinheiten und anderen Speicherbereichen gibt.
-
Um auch bei einem Zugriff des Rechenkerns 2 bzw. des Rechenkerns 3 auf den Speicherbereich 10 eine Freedom-from-Interference zu realisieren, werden bestimmte Timing-Randbedingungen gesetzt und gegebenenfalls überwacht. Wenn sichergestellt ist, dass sich die Zugriffe auf einen Speicherbereich, eine Speicherstelle, einen Interconnect oder eine andere Source/Adresse nicht überlappen, kann ein Zugriffskonflikt verhindert werden. Um dies zu realisieren, wird ein Zeitplan eingeführt, in welchem hinterlegt ist, zu welchem Zeitpunkt der Rechenkern 2 und zu welchem Zeitpunkt der Rechenkern 3 auf den Speicherbereich 10 zugreifen können. Dabei wird gewährleistet, dass immer nur ein Rechenkern 2, 3 auf den Speicherbereich 10 zugreifen darf.
-
Es ist möglich, diese Art der Aufteilung zu überwachen, beispielsweise indem man das Prüfprogramm in ein Busprotokoll integriert oder indem man es auf Konflikte überwacht. Dies kann z.B. dadurch geschehen, dass der Konfliktfall protokolliert wird, indem z.B. ein geeignetes Datum eingefügt wird. Ein solches Protokoll kann beispielsweise die folgenden Bestandteile aufweisen:
- – Der aktuelle Betreiber des Busses wird festgehalten, indem der Busmaster als auch die Softwarekomponente in Form der Aufgabe M oder des Betriebssystems Y gespeichert wird.
- – Ein Zeitstempel wird gespeichert.
- – Diese Informationen werden gespeichert und vorteilhafterweise in einem FIFO-Speicher mit einer endlichen Länge abgelegt. Bei bestimmten Ereignissen, wie Konflikten, wird dieser FIFO-Speicher kopiert, eventuell zusammen mit Informationen über das andere Systemteil, das zugreifen möchte.
-
Die Konflikte werden durch ein geeignetes Prüfprogramm ausgewertet. Im Falle kritischer Konflikte wird ein sicherer Systemzustand hergestellt.
-
Es gibt aber auch komplexere Interference-Möglichkeiten bei einem Austausch von Informationen. Wenn beispielsweise durch einen Fehler oder eine spezielle Eigenschaft einer Softwareanwendung, beispielsweise der Software SW1 in 3, ein auszutauschendes Datum, das in dem Speicherbereich 10 liegt, zeitlich oder inhaltlich nicht korrekt geliefert wird, dann kann dieser Fehler sich über diesen Austausch auf die Software SW2 auswirken. Für den Umgang mit solchen zeitlichen Problemen ist es ebenfalls möglich, Zeitinformationen z.B. Rundencounter oder Zeitstempel zu dem Datum hinzuzufügen. Die Korrektheit dieser Zeitinformation kann dann beim Auslesen mit überwacht werden. Beispielsweise kann überprüft werden, ob das Datum mit dem richtigen Rundencounter versehen ist. Bei einem Zeitstempel wird überprüft, ob das richtige „Alter“ vorliegt, z.B. „höchstens 10 ms alt“. Bei einer geeigneten Aufteilung der Softwareanwendungen kann diese Überwachung dann möglicherweise durch einen Betriebssystemservice oder eine Basissoftwarekomponente, die anwendungsunabhängig ist und nur geeignet konfiguriert wird, durchgeführt werden.
-
Die gleichen Mechanismen, die für den Zugriff auf einen gemeinsam genutzten Speicherbereich anwendbar sind, können auch für gemeinsam genutzte periphere Elemente, beispielsweise A/D-Wandler, Kommunikationscontroller oder Timer, etc. verwendet werden (4). Dies kann dadurch realisiert werden, dass das periphere Element 12, 13 nur in einem Bootvorgang konfiguriert werden kann. Anschließend kann eine Anwendung für das periphere Element 12, 13 konfiguriert werden, wobei andere Systemteile des Multicore-Mikroprozessors 15 die Konfiguration lesen und falls alles in Ordnung ist, von einer korrekten Konfiguration im Betrieb ausgegangen werden. Falls keine korrekte Konfiguration erfolgt ist, wird bereits beim Start des Multicore-Mikroprozessors 15 eine Fehlermeldung abgegeben. Abhängig davon, in welcher Form ein solcher Schutz gegen Konfigurationsänderung eingestellt ist, kann es darüber hinaus noch sinnvoll sein, dass die Konfiguration des peripheren Elementes 12, 13 regelmäßig lesend überprüft wird. Dies kann von jeder Softwareanwendung SW durchgeführt werden und stellt einen aktiven Schutz gegen Konfigurationsfehler dar.
-
Wenn neue oder zusätzliche Softwareanwendung SW per Download auf den Multicore-Mikroprozessor eines Steuergerätes geladen werden soll, dann ist es empfehlenswert, folgende Randbedingungen einzuhalten.
- – Die schon vorhandenen Softwareanwendung, die gegen Interference von heruntergeladenen Softwareanwendungen geschützt werden soll, ist auf eine feste Teilmenge der Rechenkerne verteilt und verwendet einen fest definierten Speicherbereich.
- – Die neu heruntergeladene Softwareanwendung wird nur auf anderen Rechenkernen zum Ablauf gebracht.
- – Die Speicherschutzeinrichtung ist so konfiguriert, dass keine der anderen Rechenkerne auf den fest definierten Speicherbereich einen schreibenden Zugriff erhält.
- – Im Optimalfall sind die Speicherzugriffe voll parallelisierbar.
-
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
-
-
Zitierte Nicht-Patentliteratur
-