-
Die Erfindung betrifft eine mehrkernige integrierte Mikroprozessorschaltung gemäß Anspruch 1, ein Prüfverfahren gemäß Anspruch 17 sowie die Verwendung der Mikroprozessorschaltung gemäß Anspruch 20.
-
Aus der
DE 195 29 434 A1 ist ein Mikrocontroller für sicherheitskritische Anwendungen im Kraftfahrzeugbereich mit zwei Kernen bekannt, bei dem eine Absicherung im Sinne einer Fehlerüberwachung durch ständigen Vergleich der Eingänge, der der Befehle und der Rechenergebnisses bzw. der Ausgänge der beiden Kerne erfolgt, wobei die Kerne hierzu zur Laufzeit parallel immer das gleiche Programm abarbeiten und taktsynchron (Locksteg-Verfahren) betrieben werden. Die genutzte Peripherie (RAM, ROM, Flash-ROM, I/O etc.) ist nicht notwendigerweise vollredundant ausgeführt. Man spricht bei diesem an sich bekannten Sicherheitsprinzip häufig von „Kernredundanz”.
-
Bekannt sind außerdem Mikroprozessorstrukturen mit Anordnungen aus Master- und Slave-Prozessor, bei denen eine Überwachung durch Überprüfung von Rechenergebnissen stattfindet. Allerdings ist für eine Überwachung des Hauptprozessors eine aufwändige wiederholte Kommunikation zwischen den Prozessoren mit Datenaustausch erforderlich.
-
Aus Gründen der Vorteile einer hohen Rechengeschwindigkeit, der Einfachheit in der Softwareentwicklung und der niedrigen Kosten bei hohen Stückzahlen, werden kernredundante Mikroprozessorsysteme im Bereich der Kraftfahrzeugbremsen heute vielfach eingesetzt. Kernredundante Mikroprozessorsysteme sind überwiegend so konzipiert, dass sie keine Notlauffähigkeit haben. Das heißt, im Falle eines Fehlers wird ein Zugriff auf die Peripherie unterbunden.
-
Ein Nachteil des Prinzips der Kernredundanz ist, dass wenn es auf drei oder mehrkernige Mikroprozessorstrukturen übertragen wird, dieses bedingt, dass der überwachende Kern die gleiche Rechenleistung aufweist, wie der überwachte Kern. Dies führt prinzipiell zu noch nicht optimal kostenoptimierten Mikroprozessorsystemen.
-
Die Aufgabe der vorliegenden Erfindung besteht nun darin, eine neuartige, mindestens zweikernige abgesicherte Mikroprozessorstruktur mit Überwachungsmitteln anzugeben, welche gegenüber bekannten Mikroprozessorstrukturen kostenoptimiert ist.
-
Diese Aufgabe wird erfindungsgemäß gelöst durch die mehrkernige integrierte Mikroprozessorschaltung gemäß Anspruch 1.
-
Die mehrkernige integrierte Mikroprozessorschaltung gemäß der Erfindung umfasst mindestens zwei Prozessorkerne, die einer Hauptprozessorstruktur zugeordnet sind, und zusätzlich eine Nebenprozessorstruktur, der ein oder mehrere Prozessorkerne zugeordnet sind. Die Mikroprozessorschaltung umfasst, vorzugsweise zusätzlich zu einer in der Hauptprozessorstruktur vorhandenen Prüfueinrichtung, eine erste Prüfeinrichtung, mit der die Hauptprozessorstruktur die richtige Funktion der Nebenprozessorstruktur überprüfen kann. Diese erste Prüfeinrichtung ist als zusätliches Element zur in der Hauptprozessorstruktur bereits vorhandenen Prüflogik zu sehen. Die zusätzliche Prüfeinrichtung führt eine Überprüfung der Nebenprozessorstruktur zeitintegral durch, in dem zunächst eine Prüfung von nur Teilen oder Bereichen der Nebenprozessorstruktur erfolgt und die Prüfung danach schrittweise auf weitere Teile oder Bereiche der Nebenprozessorstruktur ausgedehnt wird.
-
Die Hauptprozessorstruktur, welche bevorzugt kernredundant aufgebaut ist, und die Nebenprozessorstruktur können über Bussysteme miteinander Daten austauschen sowie auf gemeinsam genutzte Peripherie (I/O, Speicher etc.) und/oder eigens den Strukturen zugeordnete exklusive Peripherie zugreifen. Die Kerne der Hauptprozessorstruktur arbeiten vorzugsweise taktsynchron ein identisches Programm ab.
-
Vorzugsweise weist für die Fehlerprüfung die erste Prüfeinrichtung einen Interrupteingang zur interruptgesteuerten Prüfung auf oder die Prüfeinrichtung wird durch einen Interrupt oder eine vergleichbare Softwareroutine aufgerufen. Dabei kann der Interrupt selbst die Fehlerprüfung direkt aufrufen oder auch nur indirekt, in dem zunächst eine Softwareroutine aufgerufen wird, welche dann die Fehlerprüfung triggert. Erfolgt ein Interrupt oder ein entsprechender Aufruf, wird insbesondere eine weitere Teileinheit der zu überprüfenden Einheit überprüft. Unter dem Begriff Teileinheit wird dabei nicht nur ein Teil des Speichers oder der Mikroprozessorstruktur verstanden, sondern auch ein Teil des Befehlssatz des oder der Kerns/Kerne der geprüften Schaltung, welcher zweckmäßigerweise bei der Überprüfung ebenfalls geprüft wird. Durch diese schrittweise Überprüfung wird der Umfang der Prüfung der Nebenprozessorstruktur immer weiter ausgedehnt. Ist die Nebenprozessorstruktur vollständig überprüft, beginnt das Prüfverfahren wieder neu. Diese Art der Überprüfung kann als kontinuierliche, zeitintegrale Überprüfung bezeichnet werden. Im Vergleich zu überwiegend in Hardware implementierten Überprüfungsverfahren nimmt die kontinuierliche, zeitintegrale Überprüfung mehr Zeit in Anspruch. Dieser Nachteil kann jedoch für viele Anwendungsfälle, bei denen eine schnelle Fehlerentdeckung keine besonders große Rolle spielt (nicht sicherheitskritische Software, wie zum Beispiel Komfortfunktionen für Kraftfahrzeuge), noch in Kauf genommen. werden. In diesem Fall überwiegt der einfache Hardwareaufbau bzw. der Vorteil, die kontinuierliche, zeitintegrale Überprüfung besonders bevorzugt sogar ganz als Prüfprogramm durchzuführen.
-
Neben der ersten Prüfeinrichtung, deren Überprüfungsprinzip auch als symmetrische Überprüfung aufgefasst werden kann, erfolgt die an sich bekannte Überprüfung der Hauptprozessorstruktur durch Vergleich der darin verarbeiteten Daten, Ein-Ausgabe-Operationen einschließlich der Prüfdaten und Befehle. Über diese beiden Prüfeinrichtungen hinaus umfasst die Mikroprozessorschaltung vorzugsweise noch eine weitere Prüfeinrichtung, die beispielsweise durch Buskomparatoren realsisiert ist. Diese weitere Prüfeinrichtung ermöglicht eine Prüfung der Zugriffe von den Prozessorkernen auf den Speicher und die Ein-/Ausgabe, welche besonders bevorzugt sämtliche redundant erfolgen, also auch die Zugriffe des in einem Ausführungsbeispiel nicht redundanten Kerns der Nebenprozessorschaltung, was zum Beispiel durch Nutzung von Bus-Multiplexern möglich wird.
-
Die erfindungsgemäße Schaltung ist vorzugweise so ausgelegt, dass die Nebenprozessorstruktur nicht auf den Speicher, der der Hauptprozessorstruktur zugeordnet ist, zugreifen kann. Es ist allerdings zweckmäßig, dass die Nebenprozessorstruktur auf diesen Speicher zumindest lesend zugreifen kann. Hierdurch ist sichergestellt, dass fehlerhafte Programme, die von der Nebenprozessorstruktur abgearbeitet werden (z. B. nicht sicherheitskritische Software, wie Komfortfunktionen oder dergleichen), eine sicherheitskritische Software, wie z. B. einen Bremsregelungsalgorithmus, der von der Hauptprozessorstruktur abgearbeitet wird, nicht beeinträchtigen. Allerdings ist zweckmäßigerweise vorgesehen, dass Haupt- und Nebenprozessorstruktur zum Zwecke des Austauschs von Daten auf einen gemeinsamen Speicher oder Speicherbereich zugreifen können.
-
Der Speicher, auf den die Hauptprozessorstruktur und zweckmäßigerweise auch die Nebenprozessorstruktur zugreifen kann, ist vorteilhafterweise als ein Speichermodul mit redundanter Struktur ausgeführt. Das Speichermodul ist besonders bevorzugt ein RAM, ein Flash-ROM Speicher oder eine andere Art von flüchtigem oder nichtflüchtigem überschreibbarem Speicher, wie z. B. nvRAM, Fram oder mRAMn.
-
Nach einer weiteren bevorzugten Ausführungsform der Erfindung ist ein solches oder sind andere weitere zusätzliche vorzugsweise redundante Speichermodul/e direkt an die Hauptprozessorstruktur und/oder die Nebenprozessorstruktur angekoppelt (z. B. Tightly-Coupled Memory, TCM), welche zweckmäßigerweise durch die Struktur, an die sie angebunden sind, exklusiv genutzt werden. Durch die direkte Ankopplung von zusätzlichen Speichern oder Speichermodulen ist eine CPU-spezifische, exklusive Nutzung des zusätzlichen Speichers möglich, welche die Performance und/oder die Verfügbarkeit der erfindungsgemäßen Schaltung verbessert. Wenn man beispielsweise ein solches zusätzliches Speichermodul an die Hauptprozessorstruktur anschließt, so wird ermöglicht, dass die Nebenprozessorstruktur simultan und synchron unter Nutzung von Bus-Multiplexern auf die Speichermodule der Hauptprozessorstruktut zugreifen kann, wodurch diese nicht für andere Zugriffe auf die zusätzlichen, exdklusiven Speichermodule blockiert werden. Auch kann im Falle eines detektierten Defekts der zusätzlichen RAM-Module die Hauptprozessorstruktur weiterarbeiten bzw. teilweise weiterarbeiten, da die zusätzlichen RAM-Module physikalisch getrennt vom defekten RAM sind und nicht notwendigerweise ebenfalls Defekt sein müssen, wenn die nicht zusätzlichen und nicht exklusiven RAM-Module der Hauptprozessorstruktur einen Fehler aufweisen.
-
Nach einer weiteren bevorzugten Ausführungsform der Erfindung kann die Hauptprozessorstruktur ähnlich der Nebenprozessorstruktur einen dritten oder sogar weiteren, nicht redundanten Prozessorkern umfassen. Es ist auch möglich, dass die Nebenprozessorstruktur einen oder mehrere weitere nicht redundante Kerne umfasst. Auch dieser bzw. diese nicht redundanten Kerne kann/können dann von der Hauptprozessorstruktur oder der Nebenprozessorstruktur nach der Methode der zeitintegralen Überprüfung überwacht werden. Wenn die Nebenprozessorstruktur mehrkernig ausgeführt ist, wird bevorzugt dabei zwischen den Kernen der Nebenprozessorstruktur eine bidirektionale oder gegenseitige zeitintegrale Überprüfung durchgeführt, welche bereits bei einseitig festgestellten Fehlern zur Abschaltung oder stufenweise Degradation des Systems führt.
-
Die Erfindung bezieht sich auch auf ein Prüfverfahren, bei dem eine Prüfung der richtigen Funktion einer Schaltung, inbesondere eines Mikroprozessors oder eines Mikroprozessorsystems durchgeführt wird, wobei eine zeitintegrale Prüfung erfolgt, in dem bei einem ersten Interrupt oder Prüfschritt (z. B. ein Software-Ereignis) ein bestimmter Teil oder Bereich der Schaltung geprüft wird und bei einem darauffolgenden Interrupt ein weiterer, noch nicht geprüfter Teil oder Bereich der zu überprüfenden Schaltung geprüft wird.
-
Bei dem Prüfverfahren wird vorzugsweise von der Hauptprozessorstruktur eine Prüfanweisung oder ein Prüfbefehl zur Kennzeichnung des zu prüfenden Teils oder Bereichs an die Nebenprozessorstruktur gesendet (vorzugsweise unter Nutzung des gemeinsamen Speichers 6 in 2). Diese prüft dann nach Maßgabe der Prüfanweisung oder des Prüfbefehls sich selbst und übermittelt das Prüfergebnis an die Hauptprozessorstruktur zurück (beispielsweise durch Hinterlegen im gemeinsamen Speicher 6). Die Hauptprozessorstruktur kann dann den Prüfbefehl oder die Prüfanweisung nachbilden und das selbst errechnete Ergebnis mit dem Ergebnis der Nebenprozessorstruktur vergleichen und bei Nichtübereinstimmung ein Fehlersignal generieren bzw. auf andere Weise geeignet zur Behandlung des Fehlers reagieren.
-
Eine geeignete Fehlerbehandlung besteht neben einer Meldung des Fehlers zweckmäßigerweise darin, dass das Mikroprozessorsystem entweder in einen Notlaufbetrieb geschaltet wird (es werden einzelne Funktionen oder die gesamte Funktion mit eingeschränkter Sicherheit aufrechterhalten) oder das Mikroprozessorsystem wird von der Peripherie getrennt oder abgeschaltet.
-
Vorzugsweise wird in der Nebenprozessorstruktur zur Durchführung der zeitintegralen Überprüfung ein parametrisierter Algorithmus ausgeführt. Die Parameter für die Parametrierung des parametrisierten Algorithmus sind zweckmäßigerweise im gemeinsam genutzten Speicher hinterlegt. Der parametrisierte Algorithmus ist bevorzugt in einem Festwertspeicher (ROM oder Flash-ROM) als Programm abgelegt, auf den die Nebenprozessorstruktur lesend zugreifen kann. Für die Durchführung der zeitintegralen Überprüfung wird bevorzugt von der Hauptprozessorstruktur von Prüfschritt zu Prüfschritt bevorzugt eine Änderung der Parameter im einem flüchtigen, gemeinsam genutzen Speicher vorgenommen, so dass der Prüfbereich nach und nach vergrößert wird (zeitintegrale Überprüfung).
-
Weitere bevorzugte Ausführungsformen ergeben sich aus den Unteransprüchen und der nachfolgenden Beschreibung eines Ausführungsbeispiels an Hand von Figuren.
-
Es zeigen
-
1 eine Mikroprozessorschaltung gemäß der Erfindung und
-
2 eine Darstellung der Funktionsweise der erfindungsgemäßen Prüfeinrichtung.
-
Die Mikroprozessorschaltung in 1 besteht aus einer Hauptprozessorstruktur 3 und einer Nebenprozessorstruktur 5.
-
Die Hauptprozessorstruktur 3 umfasst im Beispiel zwei redundante, eigensichere Kerne 1 und 2. Desweiteren umfasst die Hauptstruktur neben RAM-Speichern 11, 12, in denen die von den Kernen 1 und 2 außerhalb des Prozessors verarbeiteten Speicherdaten redundant gespeichert sind, einen durch beide Kerne gemeinsam genutzten, vorzugsweise redundanten Flash-ROM Speicher 7. Die in Speicher 7 gespeicherten Daten können zweckmäßigerweise mittels Prüfdaten abgesichert sein (z. B. Checksum und/oder CRC-Daten). Die Prüfdaten sind dann entweder in Speicher 7 selbst und/oder in einem separaten weiteren Speichers 13 abgelegt. Die Hauptprozessorstruktur 3 ist demzufolge nach dem Prinzip der Kernredundanz abgesichert.
-
Die Nebenprozessorstruktur 5 umfasst im einfachsten Fall nur einen Kern 4, kann aber prinzipiell wie die Hauptprozessorstruktur mehrkernig aufgebaut sein. Die Nebenprozessorstruktur 5 kann prinzipiell auch eigene Speicher und Hardware-Module umfassen, zum Beispiel in Form der weiter oben beschriebenen exklusiven RAM-Module, welche in 1 nicht dargestellt sind.
-
Soll nun in der beispielhaft dargestellten Anordnung aus drei Kernen 1, 2 und 4, von denen zwei Kerne 1 und 2 redundant und ein Kern B ergänzend als Co-Prozessor läuft, in die Lage versetzt werden, auf allen Kernen Software auszuführen, für die eine sichere Funktion in einem vorgegebenen Umfang garantiert werden kann, so muss ein Mechanismus gefunden werden, auch den oder die Kerne der Nebenprozessorstruktur 5 abzusichern.
-
Da die Überprüfung durch das Kernredundanzprinzip, wie sie bei der Hauptprozessorstruktur durchgeführt wird, in Bezug auf die Nebenprozessorstruktur nicht übertragbar ist, wird ein alternatives (erstes) Prüfverfahren angewendet, welches eine ausgedehnte und andauernde Überprüfung der Nebenprozessorstruktur zur Laufzeit ermöglicht.
-
Die Erfindung sieht vor, einen Mehrkernprozessor unter verschiedenen Kombinationen von Kernredundanz (Absicherung) und/oder Parallelprozessierung (Mehrleistung) so zu gestalten, dass durch einen gezielten Überwachungsalgorithmus, welcher verteilt ausgeführt wird, unter Einbeziehung verschiedener Chip-Resourcen wie Flash, RAM, etc. auch sicherheitsgerichtete Software auf nicht-redundanten Kernen ausgeführt werden kann.
-
Bevorzugt umfasst die Nebenprozessorstruktur 5 im wesentlichen nicht sicherheitskritische Programme oder arbeitet diese ab. Dabei handelt es sich beispielsweise um Softwareprogramme für Kraftfahrzeugkomfortfunktionen. Die Hauptprozessorstruktur 3 umfasst vorzugsweise im wesentlichen sicherheitskritische Programme bzw. arbeitet diese ab, wie beispielsweise Bremsenregelungsalgorithmen und/oder sicherheitskritische Fahrerassistenzsysteme, wie beispielsweise ACC.
-
Die Betriebssysteme der Hauptprozessorstruktur 3 und der Nebenprozessorstruktur 5 sind nach einer bevorzugten Ausführungsform grundsätzlich voneinander unabhängig und insbesondere sogar grundsätzlich verschieden voneinander, also auf unterschiedliche. Weise programmiert. Beispielsweise werden hierzu die Kerne 1 und 2 der Hauptstruktur 3 mit einem ersten Betriebssystem und Kern 4 der Nebenstruktur 5 mit dem unabhängigen Betriebssystem betrieben. Hierdurch wird das Auftreten von gleichartigen Fehlern, die von einer identischen Bearbeitung der gleichartigen Betriebssysteme herrühren könnten, nahezu vollständig ausgeschlossen. Es ist aber auch möglich, dass jeweils die gleichen Betriebssysteme für die Hauptprozessorstruktur und die Nebenprozessorstruktur vorgesehen sind. Dies ist insbesondere dann sinnvoll, wenn auch die Prozessorstrukturen gleich oder sehr ähnlich sind. Bevorzugt ist aber das Betriebssystem der Nebenprozessorstruktur deutlich weniger komplex, als das Betriebssystem der Hauptprozessorstruktur.
-
Besonders bevorzugt handelt es sich bei den Betriebssystemen in der Hauptprozessorstruktur 3 und/oder der Nebenprozessorstruktur 5 um zeitscheibenbasierende Betriebssysteme. Auf diese Weise kann die Rechenleistung der Schaltung durch Synchronisation der Zeitscheiben der Betriebssysteme erhöht werden. Dadurch entsteht ein deterministisches Timing der Betriebssysteme relativ zueinander, welches sich minimieren lässt, und dadurch wiederum eine verminderte Zeitspanne zwischen der Instruktion des überwachten Kerns und der Erkennung eines latenten Fehlers ermöglicht.
-
Die Hauptprozessorstruktur 3 überwacht mit einer Prüfeinrichtung zeitintegral einen oder mehrere zusätzlich vorhandene, nicht redundante Kerne, der Nebenprozessorstruktur 5, wobei diese Überwachung nach einer anderen Methode erfolgt, als die gegenseitige Überwachung in der Hauptstruktur. Diese hier zur Abgrenzung als ”zeitintegrale” Überwachung bezeichnete Überwachung der Nebenprozessorstruktur erfolgt in Form von einzelnen Prüfschritten, bei denen zunächst nur ein Teil der zu überprüfenden Struktur überprüft wird. Bevorzugt wird eine Überprüfung der Nebenprozessorstruktur vorgenommen, in dem zur Laufzeit wiederholt Rechen- und/oder Bit- und/oder Schreib- und/oder Leseoperationen durch den oder die Kerne der Nebenprozessorstruktur durchgeführt werden. Zweckmäßigerweise wird die zeitintegrale Überwachung so lange fortgesetzt, bis im wesentlichen eine vollständige Übeprüfung der Nebenprozessorstruktur oder aber eine vollständige Überwachung der prüfrelevanten Teile der Nebenprozessorstruktur erreicht wird.
-
Die von der Prüfeinrichtung durchgeführten Prüfschritte werden bevorzugt durch ein entsprechend ausgeführtes Programmmodul (siehe 2) ausgeführt, welches der oder die Kerne der Hauptprozessorstruktur gemeinsam mit dem oder den Kernen der Nebenprozessorstruktur ausführt. Es ist aber auch möglich, dass ein Teil der Prüfschritte oder auch alle Prüfschritte durch eine fest vorgebene Hardware-Struktur durchgeführt werden.
-
Als Bestandteil der weiteren Prüfeinrichtung umfasst die Mikroprozessorschaltung Bus-Komparatoren K1, K2, K3, welche insbesondere so weit wie möglich räumlich verteilt auf dem Chip angeordnet sind. Mittels der Bus-Komparatoren K1 bis K3 kann je nach deren Verknüpfung überprüft werden, ob an den Bussträngen 8, 10; 15, 15' und 9, 14 unterschiedliche Signale anliegen, was als Fehler interpretiert wird (differentielle Fehlerprüfung). Beispielsweise dient Komparator K3 dazu, eine Nichtübereinstimmung der Bussignale (Daten, Prüfdaten und Befehle) der Busstränge 14 und 9 zu erkennen.
-
Eine Verbindung der Busstränge untereinander wird durch zwei in der Mikroprozessorschaltung vorgesehene Bus-Multiplexer 16 und 17 erreicht. Hierdurch können Kerne der Hauptprozessorstruktur und Kerne der Nebenprozessorstruktur prinzipiell auf jede in der Mikroprozessorschaltung vorhandene Peripherie (Speicher, nicht dargestellte I/O-Bausteine etc.) zugreifen, sofern dieser Zugriff nicht hardwaretechnisch auf geeignete Weise eingeschränkt ist. Dieser Zugriff erfolgt – bis auf den Signalpfad zwischen Nebenprozessorstruktur und Bus-Multiplexer – bevorzugt immer redundant.
-
Der Shared-Speicher 6 zum Austausch von Daten zwischen Nebenprozessorstrukur 5 und Hauptprozessorstruktur 3 kann auch als Externspeicher 21 außerhalb von der erfindungsgemäßen Mikroprozessorschaltung angeordnet sein (z. B. in Form einer Festplatte oder eines RAM-Speichers oder eines nvRAMs oder anderen externen Speichers). Zu dessen Anbindung an die erfindungsgemäße Mikroprozessorschaltung ist vorzugsweise eine externe, insbesondere redundant ausgeführte Bus-Schnittstelle 20 vorgesehen. Schnittstelle 20 kann beispielsweise als CAN-, LIN-, Flex-Ray(c)-, Most- oder Ethernet-Schnittstelle ausgeführt sein.
-
Die dargestellte Mikroprozessorstruktur kann auch so aufgebaut sein, dass die vorhandenen Busstränge für einzelne Teilaufgaben genutzt werden können, sofern diese verschiedenen Busstränge verschiedenen Zwecken, im Sinne von Funktionen, dienen und nicht lediglich aus Sicherheitsgründen redundant, im Sinne von mehrfach, vorhanden sind und daher an das Parallelverarbeitungsprinzip gebunden sind. Selbstverständlich kann dennoch in geeigneter Weise unabhängig voneinander z. B. ein IO-Zugriff und ein Zugriff auf einen Flash-Speicher parallel erfolgen, sowohl für funktionale, im Sinne von ansteuerndem Charakter, als auch diagnostischer, im Sinne von pfadüberprüfenden Zwecken.
-
In 2 wird nachfolgend die Funktion der Prüfeinrichtung, welche im Beispiel im wesentlichen als Software-Verfahren ausgeführt ist, beschrieben. Durch die Unterbringung der Kerne 1, 2 und 4 auf einem Siliziumträger ergeben sich neue Möglichkeiten der Anbindung und des Zugriffs auf einen gemeinsam genutzten Speicher 11, 12 oder einen entsprechenden Speicherbereich 6'.
-
Die beschriebene Hardware-Struktur bietet die Möglichkeit, von der Hauptprozessorstruktur 3 nur durch Veränderung von Parametern eine Steuerung eines mit diesen Parametern parametrisierten Algorithmus durchzuführen, welcher zur Überprüfung in der Nebenprozessorstruktur 5 abläuft. Auch werden die durch die Nebenprozessorstruktur vorzunehmenden Prüfaufgaben, bei denen sich die Nebenprozessorstruktur selbst überprüft, von der Hauptprozessorstruktur vorgegeben. Der Austausch von Informationen läuft dabei über einen gemeinsam genutzten, insbesondere gesonderten Speicherbereich 6 („Shared-Bereich”).
-
Nach einer weiteren bevorzugten Ausführungsform der Erfindung hat nicht jede Prozessorstruktur 3 oder 5 bzw. jeder Kern der jeweiligen Struktur die gleichen Speicherzugriffsmöglichkeiten, sonder es erlaubt, dass Kerne 1 und 2 der Hauptprozessorstruktur 3 auf die in 2 mit „A” gekennzeichneten RAM-Speicherbereiche sowie auf den Shared-Bereich 6 lesend und schreibend zugreifen können. Der Zugriffsschutz ist vorzugsweise durch eine geeignete Hardware-Maßnahme (z. B. eine Adressbegrenzung) realisiert. Kern 4 der Nebenprozessorstruktur 5 nutzt den mit „B” gekennzeichneten Bereich des RAM-Speichers zum Lesen und Schreiben von Daten, wobei auch dieser den Shared-Bereich 6 zum Lesen und Schreiben nutzen darf. Die Möglichkeit des Lesens besteht normalerweise für alle Kerne bzw. beide Strukturen 3 und 5 ohne Einschränkungen, was jedoch nicht zwingend für die Erfindung ist. So kann es durchaus sinnvoll sein, einer Applikation für Komfort das Leserecht auf den Speicher einer sicherheitskritischen Applikation zu untersagen.
-
Bei der durch die Prüfeinrichtung durchgeführten Prüfung, welche im einfachsten Fall durch eine rein programmtechnische Maßnahme (Software-Algorithmus) oder ein entsprechendes Softwaremodul gebildet sein kann, schreibt zumindest einer der überwachenden Kerne 1, 2 der Hauptprozessorstruktur 3 in den gesondert definierten Speicherbereich 6, welcher vorzugsweise im herkömmlichen RAM-Speicher 11, 12 liegt, eine Anzahl von Prüfdaten und/oder Prüfergebnisse und/oder Prüfaufgaben, welche von zumindest einem des oder der überwachten Kerne der Nebenstruktur 5 empfangen bzw. verarbeitet werden. Die Prüfdaten und/oder Prüfergebnisse und/oder Prüfaufgaben werden zweckmäßigerweise in einem der Kerne oder dem Kern der überwachten Nebenstruktur 5 durchgeführt und vorteilhafterweise auch ausgewertet. Zweckmäßigerweise wird das Prüfergebnis, welches die Nebenstruktur 5 bei dieser vorgegebenen Selbstüberprüfung ermittelt, über den Shared-Bereich 6 wieder an die Hauptprozessorstruktur 3 zurückgemeldet bzw. von dieser verarbeitet.
-
An Stelle eines gesondert definierten Speicherbereichs 6 im herkömmlichen Speicher kann der gesonderte Speicherbereich 6 auch in Form eines insbesondere nur für diesen Zweck genutzten separaten Speichers (z. B. Shared-Memory) oder eines geeigneten Speichermoduls, das zusätzliche Hardware-Elemente umfassen kann, vorgesehen sein.
-
Das zur Prüfung verwendete Programm ist vorzugsweise im der Nebenprozessorstruktur 5 zugeordneten Speicherbereich B, z. B. im Flash-ROM 7 gespeichert. Der durch das Programm ausgeführte Prüfalgorithmus ist dabei vorzugsweise eineindeutig parametriert. Unter einer eineindeutigen Parametrisierung wird dabei verstanden, dass die Angabe von Quelle(n), Typ der Operation und Ziel(en) genau definiert ist.
-
Bei dem beispielgemäßen Prüfalgorithmus (zeitintegrale Prüfung) wird zunächst der überwachte Kern 4 instruiert, aus dem Flash-ROM 7 ein Datenwort zu lesen und dieses in ALU-Register 25 zu speichern. Dann wird gemäß dem Algorithmus von Kern 4 aus dem Shared-Bereich 6 ein weiteres Datenwort gelesen und in ALU-Register 28 gespeichert. Nachfolgend werden die Inhalte der Register 25 und 28 durch ALU 24 miteinander multipliziert. Das Ergebnis dieser Operation wird dann in ALU-Register 26 gespeichert. Danach wird der Wert des Registers 26 durch ALU 24 invertiert und das Ergebnis in ALU-Register 22 gespeichert. Danach wird der Inhalt von Register 22 um 3 Stellen nach links geschoben. Das so ermittelte Ergebnis wird im Shared-Bereich an einer bestimmten Adresse gespeichert. Selbstverständlich sind zum Zwecke der Prüfung auch andere Algorithmen möglich, wenn damit der Zweck erfüllt wird, die ordnungsgemäße Funktion der Recheneinheit und der Register zu überprüfen.
-
Ein in Kern 4 enthaltener oder auftretender ”interner” Defekt würde dann durch ungültige zurückgelieferte Ergebniswerte offenkundig werden.
-
Vorzugsweise handelt es sich bei dem Algorithmus zur zeitintegralen Überprüfung um einen parametrisierbaren Algorithmus. Vorteilhafterweise ist damit eine Überprüfung besonders einfach durchführbar.
-
Vorstehend genannter parametrierbarer Algorithmus kann beispielsweise aus einem maschinennahen Programmcode bestehen, welcher Anweisungen umfasst, die nach Maßgabe der Parameter an Hand verschiedener Entscheidungen intern verzweigen und dadurch die ausgewählten Passagen anspringen und ausführen.
-
Für den Fall, dass der überwachende Kern vom selben oder im wesentlichen ähnlichen Typ wie der überwachte Kern ist, so kann nach einer bevorzugten Ausführungsform im überwachenden Kern ein Duplikat des parametrierbaren Algorithmusses des überwachten Kerns ausgeführt werden.
-
Da der überwachende Kern oder besser gesagt, die überwachende Hauptprozessorstruktur 3 sämtliche Möglichkeiten zum Ermitteln der bei einer Operation des überwachten Kerns genutzten Bestandteile der Operation, wie z. B. Quelle(n), Operation und Ziel(en) hat, sowie darüber hinaus auch auf alle diese Bestandteile selbst zugreifen kann und darauf basierend das erwartete Ergebnis des überwachten Kerns (bzw. der Nebenprozessorstruktur) selbst errechnen kann, kann das am Ziel nach Erledigung der Operation durch den überwachten Kern abgelieferte Ergebnis im Nachgang von der überwachenden Hauptprozessorstruktur 3 gegengeprüft werden, indem das von dieser errechnete Ergebnis mit dem Ergebnis der von der Nebenprozessorstruktur 5 durchgeführten Operation verglichen wird. Bei Nichtübereinstimmung des Ergebnisses liegt ein Fehler vor, welcher beispielsweise zu einer Abchaltung des Systems oder des in der Nebenprozessorstruktur augeführten Software-Prozesses führt.
-
Bestandteil der Überprüfung sind vorzugsweise Prüfschritte, bei denen sämtliche Ankopplungen des überwachten Kerns B an die Bus-Multiplexer, die interne (einfach ausgeführte) Struktur des überwachten Kerns B einschließlich Register-Set und Arithmetische Logik-Einheit 24 (ALU) sowie etwaiger weiterer Verbindungen zu sonstiger, in der Figur nicht explizit dargestellter Peripherie der Mikroprozessorstruktur durchgeführt werden.
-
Bei der zeitintegralen Überprüfung werden vorzugsweise alle Operationen (Befehlssatz, wie z. B. Lesen, Schreiben, Rechenoperationen) der Nebenprozessorstruktur 5 gesprüft. Außerdem wird der Adressbereich und der zu prüfende Speicher variiert. Dazu wird der Adressbereichs zum Schreiben 18 oder zum Lesen 19 mittels Parametern variiert (Parametrierung), wobei die Parameter durch die Hauptprozessorstrukur 3 in Shared-Bereich 6 abgelegt werden. Um auch ausgedehnte Adressbereiche zu prüfen ist vorgesehen, dass die Fehlerüberprüfung zyklisch durchgeführt und schrittweise auf weitere Speicherbereich ausgedehnt wird. Nach Abschluss der zeitintegrale Überprüfung beginnt diese erneut.
-
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
-