DE102016203283A1 - Verfahren zum Betreiben eines Mikroprozessors - Google Patents

Verfahren zum Betreiben eines Mikroprozessors Download PDF

Info

Publication number
DE102016203283A1
DE102016203283A1 DE102016203283.6A DE102016203283A DE102016203283A1 DE 102016203283 A1 DE102016203283 A1 DE 102016203283A1 DE 102016203283 A DE102016203283 A DE 102016203283A DE 102016203283 A1 DE102016203283 A1 DE 102016203283A1
Authority
DE
Germany
Prior art keywords
instruction
microprocessor
target
executed
copied
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102016203283.6A
Other languages
English (en)
Inventor
Jaroslaw Topp
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102016203283.6A priority Critical patent/DE102016203283A1/de
Priority to CN201710108499.1A priority patent/CN107133017B/zh
Priority to US15/444,460 priority patent/US10157062B2/en
Publication of DE102016203283A1 publication Critical patent/DE102016203283A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/52Binary to binary
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30021Compare instructions, e.g. Greater-Than, Equal-To, MINMAX

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Hardware Redundancy (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum Betreiben eines Mikroprozessors (100), wobei durch eine in dem Mikroprozessor (100) ausgeführte Umwandlungssoftware (110) eine binäre Übersetzung durchgeführt wird, im Zuge derer ein Quell-Befehl, der gemäß einer ersten Befehlssatzarchitektur kodiert ist, in einen Ziel-Befehl binär übersetzt wird, der gemäß einer zweiten Befehlssatzarchitektur kodiert ist, wobei von der Umwandlungssoftware (110) der in die zweite Befehlssatzarchitektur übersetzter Ziel-Befehl kopiert wird (114) und wobei in diesem kopierten Ziel-Befehl ein Speicherbereich, auf welchen im Zuge der Ausführung des Ziel-Befehls zugegriffen werden soll, durch einen zweiten Speicherbereich ersetzt wird (115) und wobei der Ziel-Befehl und der kopierte Ziel-Befehl von dem Mikroprozessor (100) ausgeführt werden. Mit dem Verfahren wird eine zeitliche Redundanz erreicht, durch (zeitlich) paralleles Ausführen des Ziel-Befehls auf einem Prozessorkern und eine lokale bzw. örtliche Redundanz, durch paralleles Ausführen des Ziel-Befehls auf unterschiedlichen Prozessorkernen.

Description

  • 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:
    • (4') ST r3, r16
  • 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*):
    • (4*) ST r3, r16
  • 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]

Claims (11)

  1. Verfahren zum Betreiben eines Mikroprozessors (100, 200), wobei durch eine in dem Mikroprozessor (100, 200) ausgeführte Umwandlungssoftware (110, 210, 220) eine binäre Übersetzung durchgeführt wird, im Zuge derer ein Quell-Befehl, der gemäß einer ersten Befehlssatzarchitektur kodiert ist, in einen Ziel-Befehl binär übersetzt wird, der gemäß einer zweiten Befehlssatzarchitektur kodiert ist, wobei von der Umwandlungssoftware (110, 210, 220) der in die zweite Befehlssatzarchitektur übersetzter Ziel-Befehl kopiert wird (114, 214) und wobei in diesem kopierten Ziel-Befehl ein Speicherbereich, auf welchen im Zuge der Ausführung des Ziel-Befehls zugegriffen werden soll, durch einen zweiten Speicherbereich ersetzt wird (115, 215, 225) und wobei der Ziel-Befehl und der kopierte Ziel-Befehl von dem Mikroprozessor (100, 200) ausgeführt werden.
  2. Verfahren nach Anspruch 1, wobei ein Ergebnis des ausgeführten Ziel-Befehls und ein Ergebnis des ausgeführten kopierten Ziel-Befehls miteinander verglichen werden.
  3. Verfahren nach Anspruch 2, wobei von der Umwandlungssoftware (110, 210, 220) mit dem Kopieren des Ziel-Befehls ein Vergleichsbefehl erstellt wird (116), wobei im Zuge der Ausführung des Vergleichsbefehls das Ergebnis des ausgeführten Ziel-Befehls und das Ergebnis des ausgeführten kopierten Ziel-Befehls miteinander verglichen werden.
  4. Verfahren nach einem der vorstehenden Ansprüche, wobei der Mikroprozessor (100, 200) wenigstens zwei Prozessorkerne (201, 202) aufweist und wobei die Umwandlungssoftware auf wenigstens zwei dieser wenigstens zwei Prozessorkerne (201, 202) ausgeführt wird.
  5. Verfahren nach einem der vorstehenden Ansprüche, wobei die Umwandlungssoftware (110, 210, 220) auf einem ersten Prozessorkern (201) des Mikroprozessors ausgeführt wird und wobei der übersetze Ziel-Befehl in einem Übersetzungsspeicher (203) hinterlegt wird, wobei der übersetze Ziel-Befehl aus dem Übersetzungsspeicher (203) von einer zweiten Umwandlungssoftware (220), welche in einem zweiten Prozessorkern (202) des Mikroprozessors ausgeführt wird, ausgelesen und derart verändert wird (225), dass ein Speicherbereich, auf welchen im Zuge der Ausführung des ausgelesenen Ziel-Befehls zugegriffen werden soll, durch einen dritten Speicherbereich ersetzt wird, und wobei dieser veränderte Ziel-Befehl in dem zweiten Prozessorkern ausgeführt wird.
  6. Verfahren nach Anspruch 5, wobei der Ziel-Befehl und der kopierte Ziel-Befehl in dem ersten Prozessorkern (201) ausgeführt werden und wobei ein Ergebnis des in dem ersten Prozessorkern (201) ausgeführten Ziel-Befehls und kopierten Ziel-Befehls und ein Ergebnis des in dem zweiten Prozessorkern (202) ausgeführten veränderten Ziel-Befehls miteinander verglichen werden.
  7. Verfahren nach einem der vorstehenden Ansprüche, wobei der Mikroprozessor (100, 200) in einem Steuergerät eines Kraftfahrzeugs verwendet wird.
  8. Verfahren nach Anspruch 7, wobei durch Ausführen des Ziel-Befehls eine sicherheitsrelevante Funktion und/oder eine Fahrerassistenzfunktion des Kraftfahrzeugs ausgeführt werden.
  9. Mikroprozessor (100, 200), der dazu eingerichtet ist, ein Verfahren nach einem der vorstehenden Ansprüche durchzuführen.
  10. Computerprogramm, das eine Recheneinheit (100, 200) dazu veranlasst, ein Verfahren nach einem der Ansprüche 1 bis 8 durchzuführen, wenn es auf der Recheneinheit (100, 200) ausgeführt wird.
  11. Maschinenlesbares Speichermedium mit einem darauf gespeicherten Computerprogramm nach Anspruch 10.
DE102016203283.6A 2016-02-29 2016-02-29 Verfahren zum Betreiben eines Mikroprozessors Pending DE102016203283A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102016203283.6A DE102016203283A1 (de) 2016-02-29 2016-02-29 Verfahren zum Betreiben eines Mikroprozessors
CN201710108499.1A CN107133017B (zh) 2016-02-29 2017-02-27 用于运行微处理器的方法
US15/444,460 US10157062B2 (en) 2016-02-29 2017-02-28 Method for operating a microprocessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102016203283.6A DE102016203283A1 (de) 2016-02-29 2016-02-29 Verfahren zum Betreiben eines Mikroprozessors

Publications (1)

Publication Number Publication Date
DE102016203283A1 true DE102016203283A1 (de) 2017-08-31

Family

ID=59580419

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016203283.6A Pending DE102016203283A1 (de) 2016-02-29 2016-02-29 Verfahren zum Betreiben eines Mikroprozessors

Country Status (3)

Country Link
US (1) US10157062B2 (de)
CN (1) CN107133017B (de)
DE (1) DE102016203283A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111913745B (zh) * 2020-08-28 2022-06-28 中国人民解放军国防科技大学 一种嵌入式多指令集处理器设计方法
CN113326524B (zh) * 2021-06-18 2024-05-28 鹏城实验室 指令处理方法及处理器

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5930509A (en) * 1996-01-29 1999-07-27 Digital Equipment Corporation Method and apparatus for performing binary translation
US6711667B1 (en) * 1996-06-28 2004-03-23 Legerity, Inc. Microprocessor configured to translate instructions from one instruction set to another, and to store the translated instructions
US7496494B2 (en) * 2002-09-17 2009-02-24 International Business Machines Corporation Method and system for multiprocessor emulation on a multiprocessor host system
US20050149915A1 (en) * 2003-12-29 2005-07-07 Intel Corporation Methods and apparatus for optimizing a program undergoing dynamic binary translation using profile information
US8505002B2 (en) * 2006-09-29 2013-08-06 Arm Limited Translation of SIMD instructions in a data processing system
WO2013048460A1 (en) * 2011-09-30 2013-04-04 Intel Corporation Instruction and logic to control transfer in a partial binary translation system
US20160381050A1 (en) * 2015-06-26 2016-12-29 Intel Corporation Processors, methods, systems, and instructions to protect shadow stacks

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ISO 26262
Norm ISO 26262

Also Published As

Publication number Publication date
US10157062B2 (en) 2018-12-18
CN107133017A (zh) 2017-09-05
CN107133017B (zh) 2023-08-11
US20170249145A1 (en) 2017-08-31

Similar Documents

Publication Publication Date Title
DE102018003142A1 (de) Automatische Einstellung von Multitasking-Konfigurationen für ein Codeprüfsystem
EP3001313A1 (de) Verfahren zur Simulation eines Anwendungsprogramms eines elektronischen Steuergeräts auf einem Computer
EP3864547B1 (de) Verfahren zur detektion sicherheitsrelevanter datenflüsse
EP3336730B1 (de) Verfahren zum erstellen eines mit einem simulationsgerät kompatiblen modells
EP2698678B1 (de) Konfigurationstechnik für ein Steuergerät mit miteinander kommunizierenden Anwendungen
DE102017212835A1 (de) Steuerungssystem für ein autonomes Fahrzeug
EP3568757B1 (de) Verfahren zur erzeugung von quellcode
EP3285165A1 (de) Modifizieren und simulieren der betriebssoftware eines technischen systems
DE112021000648T5 (de) Speichervorrichtung, die gegen cyber-angriffe und fehlfunktionen widerstandsfähig ist
DE102017211433A1 (de) Verfahren zum Durchführen eines Funktionstests eines Steuergeräts in einem Hardware-in-the-Loop-Test, HIL-Test, sowie HIL-Prüfstand und Steuergerät
DE102019134053A1 (de) Verfahren zur kontinuierlichen Absicherung im Fahrversuch applizierter automatisierter Fahrfunktionen
EP1924916A2 (de) Speicheranordnung und betriebsverfahren dafür
DE102016203283A1 (de) Verfahren zum Betreiben eines Mikroprozessors
DE102019201607A1 (de) Steuerungssystem für ein Kraftfahrzeug
DE102013202961A1 (de) Verfahren zum Überwachen eines Stackspeichers in einem Betriebssystem eines Steuergeräts eines Kraftfahrzeuges
EP4099163A1 (de) Verfahren und system zum erkennen und beseitigen von schwachstellen in einzelnen dateisystemschichten eines container-images
DE102017108288B4 (de) Aktualisieren eines Speichers
DE102016115314A1 (de) Modifizieren und Simulieren der Betriebssoftware eines technischen Systems
DE102018221251A1 (de) Vorrichtung zum Simulieren eines Steuergerätes
DE102010014720A1 (de) Verfahren zum Verifizieren eines aus einem Quellmodell generierten Zielprogramms
DE102017214610A1 (de) Verfahren zum Überprüfen von zumindest einer Fahrzeugfunktion sowie Prüfvorrichtung
DE102022201857A1 (de) Verfahren zum Steuern einer Robotervorrichtung
DE102017005945A1 (de) Vorrichtung und Verfahren zur gerätetechnischen Einschränkung der zulässigen Operationen auf Daten in Datenverarbeitungseinheiten
DE112022005984T5 (de) Aktualisierungsmanagementsystem
DE102018204487A1 (de) Verfahren zur Simulation eines Steuergeräts

Legal Events

Date Code Title Description
R012 Request for examination validly filed