-
Die vorliegende Erfindung betrifft ein Verfahren zum Betreiben eines Mikroprozessors sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung.
-
Stand der Technik
-
Mikroprozessoren werden alleine oder als Bestandteil von Mikrocontrollern, welche neben dem Mikroprozessor auch zusätzliche Peripherie, wie z.B. Netzwerkschnittstellen, ADC, DAC, E/A usw. auf dem Chip aufweisen, vielfach eingesetzt.
-
Moderne Mikroprozessoren, wie sie beispielsweise in Steuergeräten von Kraftfahrzeugen eingesetzt werden (z.B. in Motorsteuergeräten zur Motorsteuerung), sind zumeist Multicore-Prozessoren mit mehreren (wenigstens zwei) Prozessorkernen (Cores). Ein Prozessorkern bzw. Core umfasst eine arithmetisch-logische Einheit (ALU), welche das eigentliche elektronische Rechenwerk zur Ausführung von Tasks, Programmen, Rechenbefehlen, etc. darstellt, sowie weiterhin einen lokalen Speicher. Ein derartiger lokaler Speicher kann beispielsweise als ein Registersatz aus einem oder mehreren Registern oder als ein RAM-Speicher ausgebildet sein. Weiterhin umfasst der Mikroprozessor einen globalen Speicher, der beispielsweise als Flash-, NOR-Flash oder RAM-Speicher ausgebildet sein kann.
-
Programmcode, der von einem Mikroprozessor ausgeführt werden soll, ist zumeist in einer speziellen Befehlssatzarchitektur des Mikroprozessors kodiert.
-
Eine Befehlssatzarchitektur beschreibt den Befehlssatz eines Mikroprozessors, also die Menge an Befehlen, die durch den Mikroprozessor ausgeführt werden können, sowie die binäre Kodierung des Befehlssatzes. Die Befehlssatzarchitektur kann ebenfalls Datentypen und den Aufbau von Datenstrukturen, eine Speicherarchitektur sowie das Adressieren von Speicherbereichen beschreiben. Weiterhin können durch die Befehlssatzarchitektur auch spezielle Verhaltensweise des Mikroprozessors beschrieben werden, z.B. wie dieser auf eine Unterbrechungsanforderung reagiert.
-
Offenbarung der Erfindung
-
Erfindungsgemäß werden ein Verfahren zum Betreiben eines Mikroprozessors sowie ein Mikroprozessor und ein Computerprogramm zu dessen Durchführung mit den Merkmalen der unabhängigen Patentansprüche vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.
-
Im Rahmen des Verfahrens wird in dem Mikroprozessor eine Umwandlungssoftware (sog. Dynamic Binary Translation Software) ausgeführt, durch welche eine binäre Übersetzung von Programmcode durchgeführt wird. Im Zuge derer wird ein Quell-Befehl, der gemäß einer ersten Befehlssatzarchitektur (Instruction Set Architecture, ISA) kodiert ist, in einen entsprechenden Ziel-Befehl binär übersetzt, der gemäß einer zweiten Befehlssatzarchitektur kodiert ist. Quell-Befehl und Ziel-Befehl sind inhaltlich somit insbesondere identisch und sind gemäß unterschiedlichen Befehlssatzarchitekturen verfasst. Die erste bzw. zweite Befehlssatzarchitektur kann jeweils beispielsweise eine x86-Architektur oder ARM-Architektur sein.
-
Der in die zweite Befehlssatzarchitektur übersetzte Ziel-Befehl wird von der Umwandlungssoftware kopiert. In diesem kopierten Ziel-Befehl wird ein Speicherbereich, auf welchen im Zuge der Ausführung des Ziel-Befehls zugegriffen werden soll, durch einen zweiten Speicherbereich ersetzt. Dieser Speicherbereich kann insbesondere ein Zielspeicher sein, in welchen Ergebnisse des ausgeführten Ziel-Befehls geschrieben werden sollen. Insbesondere kann es sich um einen lokalen Speicher des Prozessors handeln, beispielsweise um einen Registersatz aus einem oder mehreren Registern oder um einen RAM-Speicher. Der Speicherbereich kann insbesondere ersetzt werden, indem die Adresse des Speicherbereichs bzw. das entsprechende Speicherregister in dem Quellcode des Ziel-Befehls umbenannt wird. Der Ziel-Befehl und der kopierte Ziel-Befehl werden von dem Mikroprozessor ausgeführt.
-
Damit Befehle von dem Mikroprozessorausgeführt werden können, müssen diese Befehle in der speziellen zweiten Befehlssatzarchitektur des Mikroprozessors kodiert sein. Prozessoren von unterschiedlichen Herstellern sind dabei meist gemäß unterschiedlichen, herstellerspezifischen Befehlssatzarchitekturen kodiert. Um Programmcode, welcher für einen speziellen Mikroprozessor gemäß dessen spezifischer Befehlssatzarchitektur (sog. emulated ISA) entwickelt wurde, in einem anderen Mikroprozessor eines anderen Herstellers ausführen zu können, wird der Programmcode von seiner spezifischen ursprünglichen ersten Befehlssatzarchitektur (emulated ISA) in die zweite Befehlssatzarchitektur des anderen Mikroprozessors übersetzt (sog. native ISA). Die entsprechende binäre Übersetzung kann durch die Umwandlungssoftware durchgeführt werden kann.
-
Besonders vorteilhaft wird im Rahmen des Verfahrens eine dynamische binäre Übersetzung durchgeführt, im Zuge derer einzelne Befehle bzw. einzelne Teile des Programmcodes übersetzt werden, sobald diese Befehle aufgerufen werden und ausgeführt werden sollen. Es kann aber auch eine statische binäre Übersetzung durchgeführt werden, im Zuge derer der gesamte Programmcode und somit alle Befehle des Programmcodes übersetzt werden, bevor einzelne Befehle des Programmcodes ausgeführt werden.
-
Es versteht sich, dass von der Umwandlungssoftware im Rahmen des Verfahrens eine Vielzahl von unterschiedlichen Quell-Befehlen binär übersetzt werden kann. Zweckmäßigerweise können alle der entsprechenden übersetzen Ziel-Befehle kopiert und deren Speicherbereiche ersetzt werden oder auch nur spezielle Ziel-Befehle. Um den übersetzten und den kopierten Ziel-Befehl von dem Mikroprozessor auszuführen, werden diese beiden Befehle von der Umwandlungssoftware insbesondere an entsprechende Module des Mikroprozessors weitergeleitet, beispielsweise an einen Scheduler, welcher die Ausführung von Befehlen koordiniert. Die beiden Befehle werden insbesondere von einer arithmetisch-logischen Einheit (ALU), dem elektronische Rechenwerk zur Ausführung von Tasks, Programmen, Rechenbefehlen, etc., ausgeführt.
-
Die Umwandlungssoftware ist im Rahmen des Verfahrens nicht nur zur binären Übersetzung vorgesehen, sondern um zwei zusätzliche Funktionen erweitert, nämlich um eine Kopierfunktion (replicate) und um eine Umbenennungsfunktion (rename). Somit kann auf einfache Weise eine redundante Ausführung von Befehlen in den Mikroprozessor implementiert werden. Durch Kopieren des Ziel-Befehls wird dieser zweimal von dem Mikroprozessor ausgeführt und die Ergebnisse des doppelt ausgeführten Ziel-Befehls werden in jeweils unterschiedliche Speicherbereiche geschrieben. Die beiden Ziel-Befehle können beispielsweise parallel oder auch nacheinander ausgeführt werden.
-
Je nach Anwendung des Mikroprozessors kann eine derartige Redundanz aus Sicherheitsgründen gefordert werden. Insbesondere im Kraftfahrzeugbereich wird die redundante Ausführung spezieller sicherheitsrelevanter Funktionen durch Normen gefordert, etwa durch die Norm ISO 26262. Durch das Verfahren kann die Ausführung von Funktionen des Mikroprozessors gemäß den Sicherheitsstandards der ISO 26262 bzw. dem darin definierten ASIL (Automotive Safety Integrity Level) gewährleistet werden. Insbesondere können die Sicherheitsrichtlinien gemäß ASIL C und ASIL D eingehalten werden, welche die höchsten und strengsten Sicherheitsanforderungen der ISO 26262 darstellen. Das Verfahren eignet sich daher besonders vorteilhaft für die Verwendung des Mikroprozessors in einem Kraftfahrzeug. Besonders bevorzugt werden durch den Ziel-Befehl sicherheitsrelevante Kraftfahrzeugfunktionen ausgeführt, welche gemäß vorgegebenen Sicherheitsrichtlinien redundant abgesichert werden müssen.
-
Weiterhin wird durch die Erfindung eine Möglichkeit bereitgestellt, um auf einfache Weise neue Funktionen in den Mikroprozessor zu implementieren, ohne dessen Hardware zu verändern. Beispielsweise ist es nicht notwendig, zusätzliche Prozessoren bzw. Prozessorkerne oder zusätzlichen Speicher in den Mikroprozessor einzubauen, beispielsweise um seine Rechenkapazität zu erhöhen. Diese zusätzlichen Funktionen können lediglich durch Veränderungen in der Umwandlungssoftware hinzugefügt werden.
-
Die entsprechende Umwandlungssoftware mit den zusätzlichen Funktionen kann auch nach seiner Fertigstellung in den Mikroprozessor eingebracht werden, insbesondere wenn sich dieser bereits im Feld bzw. in seinem regulären Betrieb befindet. Beispielsweise können die zusätzlichen Funktionen bzw. die entsprechend aktualisierte Umwandlungssoftware im Zuge eines Updates in den Mikroprozessor eingebracht werden, etwa im Zuge von Wartungsarbeiten mittels eines angeschlossenen Computers oder auch mittels einer sog. Over-the-Air-Programmierung (OTA), bei welcher ein neuer, überarbeiteter Programmcode drahtlos über eine Funkverbindung, wie z.B. WLAN oder Mobilfunknetze (z.B. LTE, GSM, 3G, 4G, usw.), an den Mikroprozessor übertragen wird, beispielsweise von einem Server des Mikroprozessorherstellers.
-
Mikroprozessoren werden zumeist für einen breiten Markt entwickelt und hergestellt und werden zumeist beispielsweise nicht explizit für die Verwendung in einem Kraftfahrzeug hergestellt. Handelsübliche Mikroprozessoren genügen somit nicht zwangsläufig den im Kraftfahrzeugbereich geltenden Anforderungen. Eine explizite Herstellung von Mikroprozessoren für den Kraftfahrzeugbereich, beispielsweise derart, dass spezielle Kraftfahrzeugfunktionen hardwarebasiert durchgeführt werden können bzw. dass die spezielle Hardwarearchitektur des Mikroprozessors auf die Ausführung von Kraftfahrzeugfunktionen zugeschnitten ist, ist zumeist mit sehr hohem Kostenaufwand verbunden. Durch das Verfahren wird es jedoch ermöglicht, einen Mikroprozessor auf einfache Weise für die Verwendung im Kraftfahrzeugbereich und für die Ausführung von Kraftfahrzeugfunktionen nachzurüsten.
-
Für gewöhnlich wird die Hardwarearchitektur eines Mikroprozessors zu Beginn seiner Planungs- und Entwicklungsphase festgelegt, beispielsweise gemäß den Funktionalitäten, welcher er in seinem späteren regulären Betrieb voraussichtlich ausführen soll. Im weiteren Verlauf der Entwicklung- und Herstellungsphase des Mikroprozessors ist es zumeist nicht ohne weiteres möglich bzw. mit großem entwicklungstechnischem und kostenintensivem Aufwand verbunden, die Hardwarearchitektur noch zu verändern. Sollte im Entwicklungsverlauf beispielsweise beschlossen werden, dass der Mikroprozessor bis dato nicht geplante zusätzliche Funktionen ausführen soll, ist es zumeist nicht mehr möglich, die Hardwarearchitektur an diese Funktionen anzupassen. Durch das Verfahren können derartige Funktionen dennoch aufwandsarm und kostengünstig in den Mikroprozessor implementiert werden, lediglich durch Verwendung der entsprechenden Umwandlungssoftware.
-
Gemäß einer vorteilhaften Ausführungsform werden ein Ergebnis des ausgeführten Ziel-Befehls und ein Ergebnis des ausgeführten kopierten Ziel-Befehls miteinander verglichen. Somit kann insbesondere ein sog. Lockstep realisiert werden, im Zuge dessen zur Fehlererkennung und Fehlerkorrektur Ergebnisse von doppelt ausgeführten identischen Befehlen miteinander verglichen werden. Ein derartiger Lockstep bzw. eine entsprechende Fehlererkennung wird im Kraftfahrzeug, insbesondere bei der Ausführung sicherheitsrelevanter Funktionen gefordert, etwa durch die Norm ISO 26262.
-
Vorzugsweise wird dieser Vergleich der Ergebnisse durch Ausführen eines Vergleichsbefehls durchgeführt. Dieser Vergleichsbefehl wird vorteilhafterweise von der Umwandlungssoftware mit dem Kopieren des Ziel-Befehl erstellt und zweckmäßigerweise an den Scheduler des Mikroprozessors übergeben. Somit ist die Umwandlungssoftware bevorzugt neben der Kopier- und Umbenennungsfunktion weiterhin um eine Vergleichsfunktion erweitert.
-
Der Mikroprozessor weist bevorzugt zwei oder mehr Prozessorkerne auf. Die Umwandlungssoftware wird vorteilhafterweise auf wenigstens zwei dieser Prozessorkerne parallel ausgeführt. Der Mikroprozessor und der übersetzte Ziel-Befehl sind somit weniger anfällig gegen Fehler und Ausfälle einzelner Prozessorkerne. Somit kann nicht nur eine zeitliche Redundanz erreicht werden, durch (zeitlich) paralleles Ausführen des Ziel-Befehls auf einem Prozessorkern, sondern auch eine lokale bzw. örtliche Redundanz, durch paralleles Ausführen des Ziel-Befehls auf unterschiedlichen Prozessorkernen. Weiterhin kann somit eine noch präzisere Fehlererkennung und Fehlerkorrektur durchgeführt werden, insbesondere indem die einzelnen Ergebnisse der auf den Prozessorkernen ausgeführten Ziel-Befehle und kopierten Ziel-Befehle miteinander verglichen werden.
-
Gemäß einer besonders bevorzugten Ausführungsform ist ein zweiter Prozessorkern des Mikroprozessors vorgesehen, der einen ersten Prozessorkern überprüft. Der erste Prozessorkern ist dabei insbesondere als ein Master-Kern vorgesehen. Der zweite Prozessorkern bzw. Prüf-Kern ist zweckmäßigerweise für ein Betriebssystem, welches insbesondere von dem ersten Master-Kern ausgeführt wird, nicht sichtbar.
-
Auf dem ersten Prozessorkern wird die Umwandlungssoftware gemäß obiger Beschreibung ausgeführt. Der durch die binäre Übersetzung erhaltene übersetze Ziel-Befehl wird in einem Übersetzungsspeicher (Translation Cache) hinterlegt. Sowohl Master-Kern als auch Prüf-Kern können auf diesen Übersetzungsspeicher zugreifen, der beispielsweise als ein globaler Speicher des Mikroprozessors ausgebildet sein kann. Weiterhin wird in dem ersten Prozessorkern der übersetzte Ziel-Befehl durch die Umwandlungssoftware kopiert und der Speicherbereich in dem kopierten Ziel-Befehl wird durch den zweiten Speicherbereich ersetzt. Der Ziel-Befehl und der kopierte Ziel-Befehl werden in dem ersten Prozessorkern ausgeführt.
-
In dem zweiten Prozessorkern wird vorzugsweise eine zweite Umwandlungssoftware ausgeführt. Diese zweite Umwandlungssoftware ist zweckmäßigerweise eine leicht abgewandelte Version der im ersten Prozessorkern ausgeführten Software. Die zweite Umwandlungssoftware führt zweckmäßigerweise nicht selbst eine binäre Übersetzung des Ziel-Befehls aus, sondern liest bevorzugt den in dem Übersetzungsspeicher hinterlegten übersetzen Ziel-Befehl aus. Da der Prüf-Kern für das Betriebssystem nicht sichtbar ist, kann dieser insbesondere keine Speicheroperationen durchführen, damit eine Daten-Konsistenz in dem System gewährleistet werden kann. Insbesondere führt der zweite Prozessorkern daher auch keine Kopierfunktion aus. Stattdessen verändert die zweite Umwandlungssoftware den ausgelesenen übersetzen Ziel-Befehl bevorzugt derart, dass ein Speicherbereich, auf welchen im Zuge der Ausführung des ausgelesenen Ziel-Befehls zugegriffen werden soll, durch einen dritten Speicherbereich ersetzt wird. Dieser veränderte Ziel-Befehl wird in dem zweiten Prozessorkern ausgeführt.
-
Vorzugsweise werden die Ergebnis des in dem ersten Prozessorkern ausgeführten Ziel-Befehls und kopierten Ziel-Befehls sowie des in dem zweiten Prozessorkern ausgeführten veränderten Ziel-Befehls miteinander verglichen, insbesondere zur Fehlererkennung und Fehlerkorrektur. Insbesondere können auf diese Weise permanente Fehler erkannt werden, welche beispielsweise durch fehlerhafte Eingangsparameter oder durch Hardwaredefekte des Mikroprozessors ihren Ursprung haben können.
-
Gemäß einer besonders vorteilhaften Ausführungsform des Verfahrens wird der Mikroprozessor in einem Steuergerät eines Kraftfahrzeugs verwendet. Vorzugsweise werden durch Ausführen des Ziel-Befehls eine sicherheitsrelevante Funktion und/oder eine Fahrerassistenzfunktion des Kraftfahrzeugs ausgeführt. Beispielsweise kann der Ziel-Befehl im Zuge einer Motorregelung als sicherheitsrelevante Funktion durchgeführt werden oder durch den Ziel-Befehl kann Einfluss auf Lenkung, Bremse, Beschleunigung, etc. genommen werden.
-
Beispiele für Fahrerassistenzfunktionen sind Abstandsregeltempomat (Adaptive Cruise Control, ACC), Kurvenassistent, Einparkassistent, Spurhalteassistent, autonome Längsführung, Aufmerksamkeits-Assistent bzw. Müdigkeitserkennung, Elektronische Stabilitätsprogramm (ESP), Motor-Schleppmoment-Regelung (MSR), Antriebsschlupfregelung (ASR), Antiblockiersystem (ABS) sowie Funktionen im Zuge automatisierten Fahrens.
-
Ein erfindungsgemäßer Mikroprozessor, z.B. eines Steuergeräts eines Kraftfahrzeugs, ist, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen.
-
Auch die Implementierung des Verfahrens in Form eines Computerprogramms ist vorteilhaft, da dies besonders geringe Kosten verursacht, insbesondere wenn ein ausführendes Steuergerät noch für weitere Aufgaben genutzt wird und daher ohnehin vorhanden ist. Geeignete Datenträger zur Bereitstellung des Computerprogramms sind insbesondere magnetische, optische und elektrische Speicher, wie z.B. Festplatten, Flash-Speicher, EEPROMs, DVDs u.a.m. Auch ein Download eines Programms über Computernetze (Internet, Intranet usw.) ist möglich.
-
Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.
-
Die Erfindung ist anhand von Ausführungsbeispielen in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung beschrieben.
-
Kurze Beschreibung der Zeichnungen
-
1 zeigt schematisch eine bevorzugte Ausgestaltung eines erfindungsgemäßen Mikroprozessors, der dazu eingerichtet, eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens durchzuführen.
-
2 zeigt schematisch eine andere bevorzugte Ausgestaltung eines erfindungsgemäßen Mikroprozessors, der dazu eingerichtet, eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens durchzuführen.
-
Ausführungsform(en) der Erfindung
-
In 1 ist eine bevorzugte Ausgestaltung eines erfindungsgemäßen Mikroprozessors schematisch dargestellt und mit 100 bezeichnet. Der Mikroprozessor 100 ist vorzugsweise Teil eines Steuergeräts eines Kraftfahrzeugs, beispielsweise eines Motorsteuergeräts, und wird beispielsweise verwendet, um sicherheitsrelevante Funktionen im Zuge der Motorsteuerung durchzuführen.
-
Um Sicherheitsbedingungen im Kraftfahrzeugbereich erfüllen zu können, die beispielsweise in der Norm ISO 26262 beschrieben werden, ist der Mikroprozessor 100, insbesondere programmtechnisch, dazu eingerichtet, eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens durchzuführen.
-
Im Zuge des Verfahrens wird ein Programmcode, welcher beispielsweise in der x86-Befehlssatzarchitektur kodiert ist, durch eine dynamische binäre Übersetzung in eine Befehlssatzarchitektur des Mikroprozessors übersetzt. Weiterhin werden eine redundante Ausführung und eine Fehlerüberwachung des Programmcodes durchgeführt. Zu diesem Zweck wird in dem Mikroprozessor eine Umwandlungssoftware 110 ausgeführt, beispielsweise eine sog. Dynamic Binary Translation Software.
-
Der Programmcode und entsprechende Quell-Befehle sind beispielsweise in einer Speichereinheit 101 des Mikroprozessors 100 hinterlegt, z.B. in einem Flash-Speicher. Die Quell-Befehle werden von der Umwandlungssoftware 110 aus der Speichereinheit 101 eingelesen.
-
Die dynamische binäre Übersetzung der Quell-Befehle wird von einer Interpretierfunktion (Interpreter) 111 der Umwandlungssoftware 110 durchgeführt. Nachdem die Quell-Befehle durch die Interpretierfunktion 111 in Ziel-Befehle übersetzt wurden, welche in der Befehlssatzarchitektur des Mikroprozessors kodiert sind, werden die Ziel-Befehle in einem Cachespeicher 112 zwischengespeichert.
-
Durch eine Optimierungsfunktion 113 (Optimizer) können die im Cachespeicher 112 zwischengespeicherten Ziel-Befehle kompiliert werden. Dabei können bestimmte Attribute der Ziel-Befehle minimiert oder maximiert bzw. optimiert werden, beispielsweise kann die zur Ausführung der Ziel-Befehle benötigte Zeit minimiert werden.
-
Nach der Optimierung werden die Ziel-Befehle durch eine Kopierfunktion 114, eine Umbenennungsfunktion 115 und eine Vergleichsfunktion 116 bearbeitet.
-
Durch die Kopierfunktion 114 werden die Ziel-Befehle kopiert und durch die Umbenennungsfunktion 115 wird jeweils ein in den kopierten Ziel-Befehlen genannter Speicherbereich durch einen zweiten Speicherbereich ersetzt, indem die Adresse des jeweiligen Speicherbereichs umbenannt wird.
-
Durch die Vergleichsfunktion 116 wird ein Vergleichsbefehl erstellt, um die Ergebnisse der Ziel-Befehle und der entsprechenden kopierten Ziel-Befehle jeweils miteinander zu vergleichen.
-
Beispielsweise kann eine zusammengehörige Sequenz von Ziel-Befehlen (1), (2), (3) wie folgt aussehen:
- (1) LD r0, r4
- (2) LD r1, r5
- (3) ADD r0, r1, r3
-
Durch den ersten der obigen Befehle (1) können beispielsweise Daten aus einem Register r4 in ein Register r0 geladen werden. Analog können durch den zweiten obigen Befehl (2) Daten aus einem Register r5 in ein Register r1 geladen werden. Durch den dritten Befehl (3) werden die Werte in den Registern r0 und r1 addiert und das entsprechende Ergebnis wird in das Register r3 geschrieben.
-
Durch Anwenden der Kopier-, Umbenennungs- und Vergleichsfunktion 114, 115, 116 wird der erste der obigen Ziel-Befehle (1) beispielsweise in einen Satz aus drei Befehlen (1), (1'), (1'') geändert:
- (1) LD r0, r4
- (1') LD r10, r4
- (1'') CMP r0, r10
-
Der Befehl (1') ist dabei der kopierte Ziel-Befehl (1), bei welchem das Register r0 durch das Register r10 ersetzt bzw. entsprechend umbenannt wurde. Durch den Befehl (1'') werden die Inhalte der Register r0 und r10 verglichen. Unterscheiden sich die Inhalte dieser beiden Register, kann auf einen Fehler in der Ausführung des Befehls (1) rückgeschlossen werden.
-
Analog wird durch die Kopier-, Umbenennungs- und Vergleichsfunktion 114, 115, 116 der zweite Ziel-Befehle (2) beispielsweise in folgenden Satz aus Befehlen (2), (2'), (2'') geändert:
- (2) LD r1, r5
- (2') LD r11, r5
- (2'') CMP r1, r11
-
In dem kopierten Ziel-Befehl (2') wurde das Register r1 durch das Register r11 ersetzt bzw. umbenannt. Durch den Befehl (2'') werden die Inhalte der Register r1 und r11 verglichen. Ein Unterschied der beiden Register deutet auf einen Fehler in der Ausführung des Befehls (2) hin.
-
Es ist auch denkbar die Ziel-Befehle (1) und (2) derart zu verändern, dass eingelesenen Daten ein konstanter Offset-Wert hinzugefügt wird. Der Ziel-Befehl (1) kann dabei beispielsweise in folgenden Befehlssatz geändert werden:
- (1) LD r0, r4
- (1*) LD r10, r4 + 63
- (1'') CMP r0, r10
-
Gemäß diesem kopierten Befehl (1*) werden die Inhalte von Register r4 und r63 addiert und in Register r10 geladen. In Register r63 kann beispielsweise ein entsprechender konstanter Offset-Wert hinterlegt sein.
-
Analog kann der Ziel-Befehl (2) wie folgt geändert werden:
- (2) LD r1, r5
- (2*) LD r11, r5 + 63
- (2'') CMP r1, r11
-
Auch gemäß dem kopierten Befehl (2*) wird dem Inhalt von Register r5 der konstanter Offset-Wert aus Register r63 hinzugefügt.
-
Der dritte Ziel-Befehl wird durch die Kopier-, Umbenennungs- und Vergleichsfunktion 114, 115, 116 beispielsweise in folgenden Befehlssatz geändert:
- (3) ADD r0, r1, r3
- (3') ADD r10, r11, r13
- (3'') CMP r3, r13
-
In diesem Fall werden in dem kopierten Ziel-Befehl (3') insbesondere zwei Speicherbereiche umbenannt, nämlich zum einen Register r0 in Register r10 und zum anderen Register r1 in Register r11. Durch den Befehl (3'') werden die Inhalte der Register r3 und r13 verglichen. Es kann auf eine fehlerhafte Ausführung des Befehls (3) rückgeschlossen werden, wenn sich die beiden Registerinhalte unterscheiden.
-
Nach Anwenden der Kopier-, Umbenennungs- und Vergleichsfunktion 114, 115, 116 werden die entsprechenden Ziel-Befehle (1), (2), (3), die kopierten Ziel-Befehle (1'), (2'), (3') bzw. (1*), (2*), (3') und die Vergleichsbefehle (1''), (2''), (3'') von der Umwandlungssoftware 110 an spezielle Hardwaremodule 120 des Mikroprozessors 100 weitergeleitet und von diesen Hardwaremodulen 120 ausgeführt.
-
Beispielsweise werden die Befehle zunächst an einen Scheduler 121 übermittelt, welcher den zeitlichen Ablauf koordiniert, gemäß welchem Befehle ausgeführt werden. Gemäß diesem zeitlichen Ablauf werden die Befehle in einem Ausführungsmodul 122, z.B. in einer arithmetisch-logischen Einheit (ALU), ausgeführt. Ein Schreibmodul 113 kann die Ergebnisse der durchgeführten Befehle in die entsprechenden Speicherbereiche bzw. Register schreiben.
-
In 2 ist eine weitere bevorzugte Ausgestaltung eines erfindungsgemäßen Mikroprozessors dargestellt und mit 200 bezeichnet, welcher zwei Prozessorkerne 201 und 202 aufweist. Identische Bezugszeichen in den 1 und 2 bezeichnen (bau-)gleiche Funktionen bzw. Elemente.
-
Analog zu dem Mikroprozessor 100 aus 1 wird auch der Mikroprozessor 200 aus 2 in einem Steuergerät eines Kraftfahrzeugs für die Motorsteuerung verwendet.
-
Ein erster Prozessorkern 201 wird als Master-Kern verwendet. In diesem wird, analog zu 1, eine Umwandlungssoftware 210 ausgeführt. Im Gegensatz zu 1 werden in diesem Beispiel jedoch nur eine Kopierfunktion 214 und eine Umbenennungsfunktion 215 von der Umwandlungssoftware 210 ausgeführt, aber keine Vergleichsfunktion. Weiterhin werden die von der Interpretierfunktion 111 erstellten und durch die Optimierungsfunktion 113 kompilierten Ziel-Befehle, welche in dem Cachespeicher 112 zwischengespeichert sind, von der Umwandlungssoftware 210 in einem Übersetzungsspeicher 203 hinterlegt, welcher z.B. als ein globaler Flash-Speicher des Mikroprozessors 200 ausgebildet ist.
-
Ein zweiter Prozessorkern 202 dient als Prüf-Kern zum Überprüfen des Master-Kerns 201. Der Prüf-Kern 202 ist insbesondere für ein in dem Master-Kern 201 ablaufendes Betriebssystem nicht sichtbar.
-
In dem Prüf-Kern 202 wird eine zweite Umwandlungssoftware 220 ausgeführt. Die Umwandlungssoftware 220 führt jedoch weder Interpretier- noch Optimierungsfunktion durch, sondern liest die in dem Übersetzungsspeicher 203 hinterlegten Ziel-Befehle aus und kopiert sie in einen Cachespeicher 222 des zweiten Prozessorkerns 202.
-
Da der Prüf-Kern 202 für das Betriebssystem nicht sichtbar ist, kann dieser insbesondere keine Speicheroperationen durchführen, damit eine Daten-Konsistenz in dem System gewährleistet werden kann. Die zweite Umwandlungssoftware 220 führt daher auch keine Kopierfunktion aus, sondern nur eine Umbenennungsfunktion 225.
-
Eine zusammengehörige Sequenz von Ziel-Befehlen kann beispielswiese die in Zusammenhang mit 1 erläuterten Ziel-Befehle (1), (2), (3) sowie einen weiteren Ziel-Befehl (4) umfassen:
- (1) LD r0, r4
- (2) LD r1, r5
- (3) ADD r0, r1, r3
- (4) ST r3, r6
-
Durch den vierten Befehl (4) wird das Ergebnis aus Register r3 in einem Register r6 hingelegt.
-
Durch die Kopier- und Umbenennungsfunktion 214, 215 der Umwandlungssoftware 210 wird der Befehl (4) kopiert und wie folgt verändert:
-
Das Register r6 wird in dem kopierten Ziel-Befehl (4') durch das Register r16 ersetzt.
-
Von der Umbenennungsfunktion 225 der zweiten Umwandlungssoftware 220 wird direkt das Register des Befehls (4) umbenannt. Die Umbenennungsfunktion 225 verändert den Befehl (4) daher in folgenden veränderten Ziel-Befehl (4*):
-
Die Umwandlungssoftware 210 gibt die Ziel-Befehle (1) bis (4) sowie den kopierten Befehl (4') an den entsprechenden Scheduler 121 des ersten Prozessorkerns 201 weiter, in welchem diese Ziel-Befehle ausgeführt werden. Analog werden in dem zweiten Prozessorkern 202 die Ziel-Befehle (1) bis (4) sowie (4*) ausgeführt.
-
Nachdem die einzelnen Befehle ausgeführt und deren Ergebnisse in dem jeweiligen Register r16 des jeweiligen Prozessorkerns hinterlegt wurden, werden diese einzelnen Ergebnisse miteinander zur Fehlererkennung verglichen. Dieser Vergleich kann durch den Mikroprozessor 200 selbst durchgeführt werden oder auch durch eine externe Recheneinheit. In letzterem Fall können die Daten der entsprechenden Register beispielsweise durch eine Speicherdirektzugriffseinheit (Direct Memory Access Einheit, DMA-Einheit) ausgelesen werden und die Daten können von der Speicherdirektzugriffseinheit an die externe Recheneinheit weitergeleitet werden, beispielsweise über eine Ethernet-Verbindung oder über einen Feldbus, wie SPI.
-
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 Nicht-Patentliteratur
-
- Norm ISO 26262 [0013]
- ISO 26262 [0013]
- ISO 26262 [0013]
- Norm ISO 26262 [0018]
- Norm ISO 26262 [0034]