DE102020211540A1 - Verfahren zur Absicherung eines Mikrocontrollers - Google Patents

Verfahren zur Absicherung eines Mikrocontrollers Download PDF

Info

Publication number
DE102020211540A1
DE102020211540A1 DE102020211540.0A DE102020211540A DE102020211540A1 DE 102020211540 A1 DE102020211540 A1 DE 102020211540A1 DE 102020211540 A DE102020211540 A DE 102020211540A DE 102020211540 A1 DE102020211540 A1 DE 102020211540A1
Authority
DE
Germany
Prior art keywords
microcontroller
unit
security
microprogram
arithmetic
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
DE102020211540.0A
Other languages
English (en)
Inventor
Ronald Canisius
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 DE102020211540.0A priority Critical patent/DE102020211540A1/de
Publication of DE102020211540A1 publication Critical patent/DE102020211540A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • 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/22Microcontrol or microprogram arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1497Details of time redundant execution on a single processing unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Microcomputers (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zur Absicherung eines Mikrocontrollers (100), wobei der Mikrocontroller (100) wenigstens ein Mikroprogrammsteuerwerk (102') und wenigstens ein Rechenwerk (110) umfasst, wobei das wenigstens eine Mikroprogrammsteuerwerk (102) das wenigstens eine Rechenwerk (110) durch Ausführen eines Mikroprogramms (120) konfiguriert, wobei das Mikroprogramm (120) Sicherheitsbefehle (123) umfasst, wobei das Mikroprogrammsteuerwerk (102) durch Ausführen der Sicherheitsbefehle (123) das wenigstens eine Rechenwerk (110) anweist, eine Sicherheitsfunktionalität auszuführen, wobei im Zuge dieser Sicherheitsfunktionalität insbesondere das wenigstens eine Rechenwerk (110) eine Überwachung des Mikrocontrollers (100) auf funktionale Sicherheit durchführt.

Description

  • Die vorliegende Erfindung betrifft ein Verfahren zur Absicherung eines Mikrocontrollers sowie eine Recheneinheit und ein Mikroprogramm zu dessen Durchführung.
  • Stand der Technik
  • Zum Überwachen von Mikrocontrollern, beispielsweise zum Überwachen von Prozessen, die von dem Mikrocontroller ausgeführt werden, sowie ferner zum Überwachen einzelner Hardware-Komponenten des Mikrocontrollers, z.B. einzelner Speichereinheiten, können Überwachungsmodule vorgesehen sein, beispielsweise sog. Watchdogs, welche durch einen Datenaustausch beispielsweise in Form einer Frage-/Antwort-Kommunikation Fehler erkennen können. Beispielsweise kann von einem derartigen Watchdog zu diesem Zweck überprüft werden, ob der Datenaustausch bzw. die erhaltenen Antworten richtig sind und ob sie zu einem richtigen Zeitpunkt bzw. innerhalb eines vorgegebenen Zeitfensters eintreffen. Derartige Überwachungsmodule bzw. Watchdogs können beispielsweise in Hardware als ein separates Hardwareelement realisiert sein, welches zusätzlich zu den herkömmlichen Komponenten des Mikrocontrollers zu implementieren ist, oder auch in Software als ein Anwendungsprogramm bzw. eine anwenderprogrammierbare Software, welche beispielsweise als ein Task in dem Mikrocontroller ablaufen kann.
  • Offenbarung der Erfindung
  • Vor diesem Hintergrund werden ein Verfahren zur Absicherung eines Mikrocontrollers sowie ein Mikrocontroller und ein Mikroprogramm zu dessen Durchführung mit den Merkmalen der unabhängigen Patentansprüche vorgeschlagen. Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.
  • Der vorliegenden Erfindung basiert auf der Maßnahme, eine Sicherheits- bzw. Überwachungsfunktionalität, wie sie üblicherweise zumeist durch einen sog. Watchdog in Hardware durch ein separates Hardwareelement oder in Software als ein eigenes Anwendungsprogramm implementiert ist, in Form eines Mikroprogramms hardwarenah direkt in der Hardware- bzw. Maschinenebene durch den Mikrocontroller selbst auszuführen, insbesondere von ohnehin in dem Mikrocontroller vorhandenen Rechenwerken und insbesondere ohne dass ein zusätzliches, externes Hardwareelement bzw. zusätzliche, externe Hardwarekomponenten in dem Mikrocontroller vorzusehen sind und ferner insbesondere unabhängig von in dem Mikrocontroller ausgeführten Anwendungsprogrammen. Zu diesem Zweck wird ein Mikroprogrammsteuerwerk des Mikrocontrollers erweitert, zweckmäßigerweise durch möglichst unabhängig implementierte Elemente bzw. eine parallele, redundante Architektur.
  • Der Mikrocontroller umfasst wenigstens ein Mikroprogrammsteuerwerk und wenigstens ein Rechenwerk, wobei das wenigstens eine Mikroprogrammsteuerwerk das wenigstens eine Rechenwerk durch Ausführen eines Mikroprogramms konfiguriert. Diese Rechenwerke und Mikroprogrammsteuerwerke sind insbesondere Teil einer Prozessoreinheit aus einem oder mehreren Prozessorkernen. Beispielsweise kann jedes Rechenwerk als eine arithmetisch-logische Einheit (ALU) ausgebildet sein oder eine oder mehrere derartige ALUs umfassen. Ferner kann der Mikrocontroller weitere Komponenten aufweisen, beispielsweise Speichereinheiten wie Speicherregister, Flash-Speicher, RAM, EEPROM usw. oder Peripherieeinheiten wie Analog-Digital-Wandler (ADC), Digital-Analog-Wandler (DAC), Ein/-Ausgänge (E/A) usw.
  • Das Mikroprogramm ist insbesondere in einem Speicherregister des Mikrocontrollers hinterlegt. Das wenigstens eine Mikroprogrammsteuerwerk ist insbesondere zum Steuern der Ausführung von Befehlen in der Prozessoreinheit des Mikrocontrollers vorgesehen. Zu diesem Zweck koordiniert das wenigstens eine Mikroprogrammsteuerwerk zweckmäßigerweise die Befehlsausführung des wenigstens einen Rechenwerks.
  • Das Mikroprogramm umfasst Sicherheitsbefehle. Durch Ausführen des Mikroprogramms und somit der Sicherheitsbefehle weist das Mikroprogrammsteuerwerk das wenigstens eine Rechenwerk an, eine Sicherheitsfunktionalität auszuführen. Zweckmäßigerweise konfiguriert das Mikroprogrammsteuerwerk durch Ausführen der Sicherheitsbefehle das wenigstens eine Rechenwerk so, dass es die Sicherheitsfunktionalität ausführt.
  • Im Zuge dieser Sicherheitsfunktionalität führt das wenigstens eine Rechenwerk beispielsweise eine Überwachung des Mikrocontrollers auf funktionale Sicherheit mittels einer Frage/Antwort-Kommunikation durch.
  • Unter den Sicherheitsbefehlen seien in dem vorliegenden Zusammenhang insbesondere Mikrobefehle, Mikrobefehlssequenzen bzw. Mikroprogrammbefehle des Mikroprogramms zu verstehen, welche die auszuführende Sicherheitsfunktionalität betreffen.
  • Herkömmliche Hardware-Watchdogs sind zumeist als externe bzw. zusätzliche integrierte Schaltkreise vorgesehen, welche über passende Kommunikationsschnittstellen mit weiteren Komponenten des Mikrocontrollers in Kommunikationsverbindung stehen. Zweckmäßigerweise kann durch die vorliegende Erfindung ein Aufwand zum Integrieren einer derartigen externen Hardwareeinheit in einen bestehenden Mikrocontroller entfallen. Im Rahmen des vorliegenden Verfahrens wird die Sicherheitsfunktionalität auf einer tiefen Ebene in den Mikrocontroller integriert und implizit von den Rechenwerken ausgeführt. Das Mikroprogramm sowie die Rechenwerke des Mikrocontrollers werden zweckmäßigerweise um eine entsprechende Sicherheitsfunktion erweitert.
  • Zweckmäßigerweise weist das Mikroprogramm noch weitere Mikrobefehle bzw. Mikrobefehlssequenzen auf, insbesondere ausgeprägt als Systembefehle, welche die Rechenwerke zum Ausführen eines regulären Systems bzw. einer System- bzw. Grundfunktionalität des Mikrocontrollers konfigurieren und entsprechend anweisen. Insbesondere sprechen die entsprechenden Mikrocodesequenzen das jeweilige diversitäre, redundante bzw. unabhängige Mikrocode-Rechenwerk mittels Systembefehlen des Rechenwerks an, um die Sicherheitsfunktionalität auszuführen. Besonders zweckmäßig wird die Sicherheitsfunktionalität somit parallel oder sequentiell zu einer derartigen Grund- bzw. Systemfunktionalität auf Hardwareebene ausgeführt. Auch eine hybride, parallele und sequenzielle Ausführung ist denkbar. Insbesondere wird die Sicherheitsfunktionalität nicht indirekt unter einem Betriebssystem ausgeführt, sondern vielmehr parallel zu einem Betriebssystem als eine erweiterte, zusätzliche Grund- bzw. Systemfunktionalität direkt von den Rechenwerken.
  • Besonders zweckmäßig sind sämtliche Rechenwerke zum Ausführen sowohl der System- bzw. Grundfunktionalität als auch der Sicherheitsfunktionalität auf demselben Substrat (Chip) angeordnet. Somit wird für die Sicherheitsfunktionalität insbesondere kein externes Hardwareelement benötigt, welches zusätzlich zu dem Mikrocontroller in die Gesamtanordnung zu integrieren ist und mit internen Komponenten des Mikrocontrollers zu verbinden ist, sondern die Überwachung des Mikrocontrollers kann von den ohnehin vorhandenen, internen Komponenten des Mikrocontrollers selbst durchgeführt werden.
  • Das vorliegende Verfahren ermöglicht es insbesondere, die Sicherheitsfunktionalität effizient mit hoher Leistungsfähigkeit bzw. hoher Performance auszuführen, insbesondere schneller, effizienter und leistungsstärker, als es durch ein Anwendungsprogramm der Fall wäre.
  • Ferner ermöglicht es das Verfahren, die Sicherheitsfunktionalität frei programmierbar im jeweiligen Überwachungsziel zu gestalten. Das vorliegende Verfahren erlaubt eine freie Programmierung des Mikrocode-Rechenwerkes, wodurch eine Vielzahl neuer Prozessorbefehle realisiert werden kann, die herkömmlicherweise in einem Standard-Handbuch der Prozessoreinheit selbst nicht erwähnt sind, da sie zweckmäßigerweise von einem Mikrokontroller-Integrator definiert werden. Einem Angreifer bzw. Hacker ist es somit wenn überhaupt höchstens möglichst, die entsprechenden Befehle zu debuggen, der Sinn hinter den Befehlen erschließt sich dem Angreifer dabei jedoch nicht. Somit stellt das vorliegende Verfahren eine Sicherheitsfunktionalität bereit, auf welche sich ein Angreifer nicht ohne weiteres Zugriff verschaffen können, da Angreifer zumeist nicht an Informationen in der Hardwareeben heran kommen.
  • Ferner sind durch die Implementierung der Sicherheitsfunktionalität in dem Mikroprogramm ein hoher Knowhow-, Kopier- und Eingriffsschutz gegeben, insbesondere ein Schutz vor Angriffen, wie unzulässigen Änderung bzw. Spionage, da ein Mikroprogramm insbesondere schwieriger in den zugrundeliegenden Quellcode zurückgeführt werden kann als ein Anwendungsprogramm und da ferner ein Zugriff auf ein Mikroprogramm bzw. auf dessen Speicherort insbesondere schwieriger zu verschaffen ist als ein Zugriff auf ein Anwendungsprogramm.
  • Zweckmäßigerweise kann eine hohe Unabhängigkeit zwischen Anwendungsprogrammen und der Sicherheitsfunktionalität sowie deren Ausführungseinheiten erreicht werden. Insbesondere nimmt ein Anwender bzw. Benutzer des Mikrocontrollers diese implizit integrierte Sicherheitsfunktionalität in der Anwendungsebene zweckmäßigerweise nicht wahr und kann diese insbesondere nicht ohne weiteres beeinflussen.
  • Ferner lässt sich die Sicherheitsfunktionalität im Rahmen des vorliegenden Verfahrens flexibel anpassen und auch nachträglich noch zur Laufzeit des Mikrocontrollers verändern bzw. anpassen, insbesondere durch Updates des Mikroprogramms, z.B. Bugfixes, Optimierungen, Befehlssatzerweiterungen usw. Insbesondere kann die Sicherheitsfunktionalität während des regulären Betriebs des Mikrocontrollers nachgeladen oder rekonfiguriert bzw. rekalibriert werden.
  • Durch die Sicherheitsfunktionalität können insbesondere eine hohe Betriebssicherheit bzw. funktionale Sicherheit („safety“) sowie ferner insbesondere eine hohe informationstechnische Sicherheit bzw. Informationssicherheit („security“) des Mikrocontrollers ermöglicht werden. Beispielsweise kann das wenigstens eine Rechenwerk im Zuge dieser Sicherheitsfunktionalität den Mikrocontroller auf Fehler bzw. Fehlerzustände („error“) überwachen und bei Erkennen eines Fehlers eine Fehlerreaktion durchführen. Ferner kann das wenigstens eine Rechenwerk im Zuge der Sicherheitsfunktionalität den Mikrocontroller beispielsweise auf zufällige Hardwarestörungen („fault“) sowie auf zufällige Hardwareausfälle („failure“) hin überwachen. Ebenso kann das wenigstens eine Rechenwerk im Zuge der Sicherheitsfunktionalität den Mikrocontroller beispielsweise auf zufällige Softwarestörungen („fault“) und ferner auf systematische Softwareausfälle („failure“) hin überwachen.
  • Zweckmäßigerweise werden im Zuge der Sicherheitsfunktionalität zur Überwachung auf funktionale Sicherheit hin von dem Mikrocontroller ausgeführte Funktionalitäten bzw. Prozesse, Funktionen, Tasks usw. überwacht.
    Insbesondere kommunizieren die Rechenwerke, welche die Sicherheitsfunktionalität ausführen, zu diesem Zweck mit der Prozessoreinheit bzw. den weiteren Rechenwerken, welche die zu überwachenden Funktionalitäten ausführen. Somit kann insbesondere ein sicherer bzw. korrekter Betrieb des Mikrocontrollers überwacht werden.
  • Alternativ oder zusätzlich wird im Zuge der Sicherheitsfunktionalität zur Überwachung auf informationstechnische Sicherheit hin zweckmäßigerweise wenigstens eine Hardware-Komponente des Mikrocontrollers überwacht, beispielsweise eine oder mehrerer Speichereinheiten des Mikrocontrollers. Die Rechenwerke, welche die Sicherheitsfunktionalität ausführen, kommunizieren zu diesem Zweck insbesondere mit diesen zu überwachenden Komponenten. Beispielsweise kann somit eine Datenintegrität überprüft werden und die entsprechenden Komponenten können überwacht werden.
  • Die vorliegende Ausführung von Sicherheitsfunktionalitäten unterscheidet sich dabei deutlich von herkömmlichen Sicherheitsfunktionalitäten wie beispielsweise Fehlerkorrekturcodes oder Temperaturdrosselung.
  • Beispielsweise liegen bei Fehlererkennungsverfahren mittels Fehlerkorrekturcodes (engl. „error correction code“, ECC) entsprechende Rechenwerke zum Ausführen des ECC Verfahrens (ECC Rechenwerke) zumeist hart codiert zwischen Mikroprozessor und Speichereinheit. Für das Rechenwerk und das Mikroprogrammsteuerwerk ist der Durchgriff durch ein ECC Rechenwerk dabei zumeist transparent. Das ECC Rechenwerk ist zumeist nur an eine Interrupt-Logik angekoppelt. Im Gegensatz dazu bietet die Architektur gemäß dem vorliegenden Verfahren frei programmierbare Mikrocodebefehle parallel zu existierenden Mikrocodebefehle an. Damit kann das parallel arbeitende Mikrocoderechenwerk spezifische Aufgaben wahrnehmen.
  • Ferner sind derartige ECC Verfahren herkömmlicherweise zumeist von Speicherregistern entfernt bzw. unabhängig von Speicherregistern realisiert und verwalten üblicherweise Zugriffe auf Speichereinheiten wie RAM, ROM usw. ECC Verfahren können zumeist nicht getriggert werden. Im Gegensatz dazu können mittels der vorliegenden Architektur nicht nur Speicherzugriffe verwaltet werden, sondern beispielsweise auch Hardwarekomponenten wie weitere Rechenwerke oder Peripherieeinheiten überwacht werden. Ferner ist zweckmäßigerweise auch ein triggern der vorliegenden Sicherheitsfunktionalität in der Anwendungsebene möglich.
  • Eine Temperaturdrosselung wird beispielsweise bei Rechenwerken angewandt, wobei eine entsprechende Regelung jedoch zumeist über eine Steuereinheit auf eine Phasenregelschleife (engl. „phase-locked loop“, PLL) und dessen Prescaler einwirkt. Zumeist wird bei höher werdender Temperatur eines Prozessorkerns der Prescaler degradiert, so dass zumindest der Wärmebeitrag des Rechenwerkes selbst abnimmt. Viele Prozessorkerns umfassen zudem Standby- bzw. IDLE-Befehle, die von einem Betriebssystem ausgeführt werden und die Prozessoreinheit für kurze Zeit deaktivieren, so dass der Wärmeeintrag des Rechenwerkes in Summe zurückgeht. Derartige Funktionalitäten sind jedoch zumeist als Befehlssatz fest in der Anwendungsebene bzw. als Anwendungsprogramm implementiert. Im Gegensatz dazu schlägt das vorliegende Verfahren frei konfigurierbare Mikrocode Architekturen vor, die diversitär, redundant und damit unabhängig zum bestehenden Mikrocode implementiert werden.
  • Gemäß einer vorteilhaften Ausführungsform umfasst das Mikroprogramm ein erstes Codemodul und ein zweites Codemodul, wobei - ohne Beschränkung der Allgemeinheit - das zweite Codemodul die Sicherheitsbefehle umfasst und wobei das erste Codemodul weitere Mikrobefehle des Mikroprogramms umfasst. Insbesondere sind in dem ersten Codemodul Systembefehle des Mikroprogramms hinterlegt, durch welche die Rechenwerke zum Ausführen der System- bzw. Grundfunktionalität des Mikrocontrollers konfiguriert werden. In dem zweiten Codemodul, welches im Folgenden ohne Beschränkung der Allgemeinheit auch als Sicherheitscodemodul bezeichnet wird, sind die Sicherheitsfunktionalität bzw. die zugrunde liegenden Sicherheitsbefehle zweckmäßigerweise separat und unabhängig von den weiteren Mikrobefehlen des Mikroprogramms hinterlegt. Diese Mikroprogramme des Sicherheitscodemoduls können dabei insbesondere flexibel modular erweitert oder angepasst werden. Insbesondere kann die Sicherheitsfunktionalität durch Änderungen bzw. Austausch des entsprechenden Sicherheitscodemoduls flexibel angepasst werden. Durch ein derartiges unabhängiges Sicherheitscodemodul kann die Unabhängigkeit der Sicherheitsfunktionalität zweckmäßigerweise weiter erhöht werden.
  • Vorteilhafterweise umfasst der Mikrocontroller wenigstens ein erstes Speicherregister und wenigstens ein zweites Speicherregister, wobei - ohne Beschränkung der Allgemeinheit - das erste Codemodul in dem wenigstens einen ersten Speicherregister hinterlegt ist und das zweite Codemodul in dem wenigstens einen zweiten Speicherregister. Diese zweiten Speicherregister sind insbesondere unabhängig von weiteren Speicherregistern und Speichereinheiten des Mikrocontrollers in welchen beispielsweise weitere Codemodule oder weitere Daten hinterlegt sein können. Insbesondere können die der Sicherheitsfunktionalität zugrundeliegenden Sicherheitsbefehle in dem Mikrocontroller somit separat und unabhängig hinterlegt werden, zweckmäßigerweise um Schutz vor Angriffen und zufälligen oder abhängigen Fehlern zu erhöhen. Ferner ist es zweckmäßigerweise auch möglich, die Sicherheitsbefehle in einem speziellen Speicherbereich der zweiten Speicherregister zu hinterlegen, insbesondere in einem geschützten Speicherbereich, wobei in den zweiten Speicherregistern dann beispielsweise auch andere Daten oder Codemodule hinterlegt sein können. Durch derartige unabhängige Speicherregister kann die Unabhängigkeit der Sicherheitsfunktionalität insbesondere weiter erhöht werden.
  • Gemäß einer besonders bevorzugten Ausführungsform umfasst der Mikrocontroller eine erste Einheit mit wenigstens einem ersten Mikroprogrammsteuerwerk und wenigstens einem ersten Rechenwerk und ferner eine zweite Einheit mit wenigstens einem zweiten Mikroprogrammsteuerwerk und wenigstens einem zweiten Rechenwerk. Ohne Beschränkung der Allgemeinheit führt das wenigstens eine zweite Mikroprogrammsteuerwerk die Sicherheitsbefehle des Mikroprogramms aus und weist das wenigstens eine zweite Rechenwerk an, die Sicherheitsfunktionalität auszuführen. Die zweite Einheit ist somit vorteilhafterweise zum Ausführen der Sicherheitsfunktionalität vorgesehen. Besonders zweckmäßig sind die zweiten Rechenwerke ausschließlich zum Ausführen der Sicherheitsfunktionalität vorgesehen und werden im Folgenden ohne Beschränkung der Allgemeinheit auch als Sicherheitsrechenwerke bezeichnet. Besonders zweckmäßig umfasst die erste Einheit ferner die ersten Speicherregister, in welchen das erste Codemodul hinterlegt ist, und ferner umfasst die zweite Einheit besonders zweckmäßig die zweiten Speicherregister, in welchen das zweite Codemodul hinterlegt ist. Ohne Beschränkung der Allgemeinheit ist somit besonders zweckmäßig die erste Einheit zum Ausführen der Systemfunktionalität vorgesehen. Beispielweise können die in dem Mikrocontroller ohnehin vorhandenen Rechenwerke und Mikroprogrammsteuerwerke zweckmäßig ausgewählt und in die ersten und zweiten Einheiten eingeteilt werden. Ferner können beispielsweise auch zusätzliche zweite Rechenwerke und zweite Mikroprogrammsteuerwerke als zweite Einheit in dem Mikrocontroller Sicherheitsrechenwerke vorgesehen werden. Insbesondere kann die Sicherheitsfunktionalität unabhängig und separat von restlichen Funktionalitäten des Mikroprogramms auf speziell vorgesehenen Rechenwerken ausgeführt werden, wodurch die Unabhängigkeit und Angriffssicherheit der Sicherheitsfunktionalität weiter erhöht werden kann.
  • Da die Sicherheitsbefehle des Mikroprogramms anderen Funktionszielen folgen und in den separaten Sicherheitsrechenwerken abgearbeitet werden als beispielsweise Mikroprogrammsequenzen zur Abarbeitung eines (regulären) Anwendungsprogrammes, lassen sich insbesondere Anforderungen zur Erhöhung der Unabhängigkeit durch ein Diversitätsprinzip zur Unterstützung der Sicherheitsarchitektur gezielt und funktionszielorientiert umsetzen.
  • Besonders zweckmäßig werden die einzelnen Sicherheitsrechenwerke unabhängig voneinander sowie von den weiteren Rechenwerken implementiert, insbesondere in Bezug auf Spannungsversorgung und Taktung. Insbesondere werden ferner Schnittstellen zwischen den einzelnen Sicherheitsrechenwerken und weiteren Rechenwerken möglichst unabhängig ausgestaltet und überwacht, so dass sich beispielsweise keine koppelnden Faktoren oder gemeinsam genutzte aber nicht ausreichend überwachbare Ressourcen ergeben. Insbesondere sind entsprechende Robustheitsanforderungen vorgesehen, um die Rechenwerke und Sicherheitsrechenwerke gegen physikalische Effekte wie Temperatur, Strahlung, EMV usw. abzusichern.
  • Vorzugsweise steht das wenigstens eine zweite Rechenwerk bzw. Sicherheitsrechenwerk über wenigstens einen ersten Zugriffspfad bzw. Signal- oder Reaktionspfad mit dem wenigstens einen ersten Rechenwerk der ersten Einheit in Verbindung. Über diesen entsprechenden Zugriffspfad kann das wenigstens eine Sicherheitsrechenwerk mit den jeweiligen Rechenwerken der ersten Einheit zweckmäßig kommunizieren, um Funktionalitäten bzw. Maschinencodes, welche von diesen ersten Rechenwerken ausgeführt werden, auf Fehlerzustände, Ausfall bzw. Störung zu überwachen und um ferner bei Erkennen von Fehler, Ausfall oder Störung zweckmäßig reagieren zu können, beispielsweise durch Beenden oder Neustart der jeweiligen betroffenen Funktionalität.
  • Alternativ oder zusätzlich steht das wenigstens eine zweite Rechenwerk bzw. Sicherheitsrechenwerk bevorzugt über wenigstens einen zweiten Zugriffs-, Signal- bzw. Reaktionspfad mit wenigstens einer Komponente des Mikrocontrollers in Verbindung, insbesondere mit wenigstens einer Peripherieeinheit und/oder wenigsten einer Speichereinheit des Mikrocontrollers. Über diese Zugriffspfade kann das Sicherheitsrechenwerk zur Überwachung der jeweiligen Komponente zweckmäßigerweise mit dieser kommunizieren und ferner bei Erkennen von Fehlerzustand, Ausfall oder Störung insbesondere eine entsprechende Maßnahme durchführen und die betroffene Komponente beispielsweise abschalten oder neustarten. Durch derartige separate, unabhängige Zugriffs-, Signal- bzw. Reaktionspfade auf andere Rechenwerke bzw. Komponenten des Mikrocontrollers kann die Unabhängigkeit der Sicherheitsfunktionalität weiter erhöht werden kann.
  • Gemäß einer vorteilhaften Ausführungsform sind wenigstens zwei zweite Einheiten vorgesehen, welche jeweils eine Anzahl von zweiten Mikroprogrammsteuerwerken und zweiten Rechenwerken aufweisen. Somit sind insbesondere mehrere Sätze von Sicherheitsrechenwerken redundant und unabhängig voneinander sowie von den weiteren Rechenwerken vorgesehen. Bevorzugt führen die jeweiligen zweiten Mikroprogrammsteuerwerke dieser zweiten Einheiten jeweils unterschiedliche Sicherheitsbefehle aus. Somit können beispielsweise einzelne Sicherheitsrechenwerke zum Ausführen verschiedener Teile bzw. Teilfunktionalitäten der Sicherheitsfunktionalität vorgesehen sein. Alternativ führen die jeweiligen zweiten Mikroprogrammsteuerwerke der zweiten Einheiten redundant dieselben Sicherheitsbefehle aus. Zweckmäßigerweise können somit redundante Sicherheitsrechenwerke zum Schutz vor Störungen, Ausfällen bzw. Fehlern vorgesehen sein. Durch eine derartige Vielzahl von zweiten Einheiten und Sicherheitsrechenwerken können insbesondere ein Eingriffs- bzw. Angriffsschutz und ferner eine Unabhängigkeit der Sicherheitsfunktionalität erhöht werden. Insbesondere kann durch derartige mehrfache Redundanz der Sicherheitsrechenwerke beispielsweise eine parallele Ausführung unterschiedlicher Sicherheitsfunktionen ermöglicht werden, z.B. Timeout-Monitoring von Funktionsaufrufen und Prüfung von redundanten Datenintegritäten von Anwendungsprogrammen, Mikrocontroller-Stack oder Kontext-Monitoring, Core/Cachesynchronisierung usw.
  • Bevorzugt ist für einzelne Prozessorkerne des Mikrocontrollers, insbesondere für alle Prozessorkerne, jeweils eine zweite Einheit und somit insbesondere jeweils wenigstens ein zweites Rechenwerk vorgesehen, zweckmäßigerweise zum Überwachen des jeweiligen Prozessorkerns bzw. der darauf ablaufenden Prozesse. Die Prozessorkerne können somit insbesondere durch individuell zugewiesene Sicherheitsrechenwerke direkt und effektiv überwacht werden. Beispielsweise können zu diesem Zweck einzelne Rechenwerke eines jeweiligen Prozessorkerns als derartige Sicherheitsrechenwerke zum Überwachen des jeweiligen Prozessorkerns ausgewählt werden. Ferner ist es auch denkbar, dass für die jeweiligen Prozessorkerne jeweils entsprechende Sicherheitsrechenwerke in den Mikrocontroller integriert werden. Durch den geringen Platzbedarf einzelner Rechenwerke und da die Sicherheitsrechenwerk insbesondere nur eine geringe funktionale Kapazität benötigen, kann somit die entsprechende Überwachungs- bzw. Sicherheitsfunktionalität für einzelne Prozessorkerne aufwandsarm und platzsparend in dem Mikrocontroller vorgesehen werden.
  • Vorzugsweise sind die erste Einheit und die zweite Einheit auf einem gemeinsamen Substrat des Mikrocontrollers angeordnet. Insbesondere sind sämtliche Rechenwerke und Mikroprogrammsteuerwerke des Mikrocontrollers auf demselben Substrat angeordnet. Sowohl die System- bzw. Grundfunktionalität als auch die Sicherheitsfunktionalität werden somit von Mikroprogrammsteuerwerken und Rechenwerken ausgeführt, welche auf demselben Substrat vorgesehen sind.
  • Gemäß einer vorteilhaften Ausführungsform wird durch die Sicherheitsfunktionalität zugleich auch eine Befehlssatzerweiterung mit neuen Anwendungsprogramm-Sicherheitsbefehlen zur Verwendung in einem Anwendungsprogramm bereitgestellt. Bei Ausführen der Anwendungsprogramm-Sicherheitsbefehle werden dann insbesondere die Sicherheitsbefehle ausgeführt. Insbesondere wird das Anwendungsprogramm bzw. werden dessen Anwendungsprogramm-Sicherheitsbefehle von dem wenigsten einen Rechenwerk ausgeführt, ferner insbesondere von dem durch das Mikrogrammsteuerwerk entsprechend konfigurierten wenigsten einen Rechenwerk. Somit kann die Sicherheitsfunktionalität zweckmäßigerweise explizit in der Softwareebene angestoßen bzw. getriggert werden und daraufhin implizit in Hardware ausgeführt werden. Insbesondere kann einem Anwender bzw. Benutzer des Mikrocontrollers somit die Freiheit gegeben werden, über das Anwendungsprogramm die Sicherheitsfunktionalität unter gewünschten Bedingungen zu starten, beispielsweise zu einem gewünschten Zeitpunkt.
  • Die vorliegende Erfindung eignet sich für eine große Bandbreite von Applikationen, beispielsweise im Maschinenbau oder der Automobilindustrie sowie für Lastkraftwagen, Schienenfahrzeugen, Land- und Forstmaschinen usw. Besonders bevorzugt eignet sich das Verfahren zur Anwendung im Fahrzeugbereich. Der Mikrocontroller kann vorzugsweise in einem Steuergerät in einem (Kraft-) Fahrzeug verwendet werden. Von dem Mikrocontroller können insbesondere sicherheitskritische Funktionen ausgeführt werden, welche zum sicheren Betrieb und zur Steuerung des Fahrzeugs ausgeführt werden, beispielsweise im Zuge einer Motorsteuerung oder im Zuge von Fahrassistenzfunktionen usw. Durch die Überwachung des Mikrocontrollers im Rahmen des vorliegenden Verfahrens können insbesondere Sicherheitsanforderungen im (Kraft-) Fahrzeugbereich erfüllt werden, wie sie beispielsweise in der Norm ISO 26262 vorgegeben werden oder insbesondere von dem sog. Automotive Safety Integrity Level (ASIL), eine von der ISO 26262 spezifizierte Sicherheitsanforderungsstufe für sicherheitsrelevante Systeme in Kraftfahrzeugen.
  • Ein erfindungsgemäßer Mikrocontroller, z.B. eines Steuergeräts eines Kraftfahrzeugs, ist, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen.
  • Auch die Implementierung eines erfindungsgemäßen Verfahrens in Form eines Mikroprogramms oder Computerprogrammprodukts mit Mikrocode zur Durchführung aller Verfahrensschritte ist vorteilhaft, da dies besonders geringe Kosten verursacht, insbesondere wenn ein ausführender Mikrocontroller noch für weitere Aufgaben genutzt wird und daher ohnehin vorhanden ist. Geeignete Datenträger zur Bereitstellung des Mikroprogramms 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.
  • Figurenliste
    • 1 bis 5 zeigen jeweils schematisch einen Mikrocontroller, welcher einer bevorzugten Ausführungsform eines erfindungsgemäßen Verfahrens zugrunde liegen kann.
    • 6a und 6bzeigen jeweils schematisch einen Mikrocontroller gemäß dem Stand der Technik.
    • 7a bis 7c zeigen jeweils schematisch einen Mikrocontroller, welcher einer bevorzugten Ausführungsform eines erfindungsgemäßen Verfahrens zugrunde liegen kann.
  • Ausführungsform(en) der Erfindung
  • In 1 ist ein Mikrocontroller schematisch dargestellt und mit 100 bezeichnet, welcher beispielsweise in einem Steuergerät eines (Kraft-) Fahrzeug verwendet wird.
  • Der Mikrocontroller 100 weist eine Vielzahl von Rechenwerken 110 auf, welche beispielsweise jeweils als eine arithmetisch-logische Einheit (ALU) ausgebildet sind oder jeweils eine oder mehrere derartige ALUs umfassen. Die Rechenwerke 110 sind zweckmäßigerweise als Teile einer Prozessoreinheit mit einer Vielzahl von Prozessorkernen ausgebildet.
  • Der Mikrocontroller 100 weist Speicherregister 101 auf, in welchen ein Mikroprogramm bzw. Mikrobefehle oder Mikrobefehlssequenzen eines Mikroprogramms hinterlegt sind.
  • Ferner umfasst der Mikrocontroller 100 ein Steuerwerk bzw. ein Mikroprogrammsteuerwerk 102 zum Steuern der Ausführung von Befehlen in der Prozessoreinheit, welches zwischen den Speicherregistern 101 und den Rechenwerken 110 koordiniert. Das Mikroprogrammsteuerwerk 102 führt insbesondere das in den Speicherregistern 101 hinterlegte Mikroprogramm aus und konfiguriert die Rechenwerke 110 gemäß Mikrobefehlen des Mikroprogramms.
  • Ferner weist der Mikrocontroller 100 eine Speichereinheit 103 auf, beispielsweise einen Flashspeicher. In diesem Flashspeicher 103 sind insbesondere Anwendungsprogramme hinterlegt, welche von der Prozessoreinheit bzw. den Rechenwerken 110 in einer Software- oder Anwendungsebene ausgeführt werden. Insbesondere werden die Rechenwerke 110 zunächst gemäß dem Mikroprogramm durch das Mikroprogrammsteuerwerk 102 konfiguriert und von den entsprechend konfigurierten Rechenwerken 110 kann schließlich das Anwendungsprogramm ausgeführt werden.
  • Das in den Speicherregistern 101 hinterlegte Mikroprogramm ist in 1 schematisch dargestellt und mit 120 bezeichnet. Dem Mikroprogramm liegt ein Quellcode bzw. Quelltext 121 zugrunde, der in einer Hochsprache bzw. einer höheren Programmiersprache verfasst sein kann, z.B. in C, C++, JAVA usw., und nicht von den Rechenwerken 110 oder dem Mikroprogrammsteuerwerk 102 verstanden werden kann. Dieser Quellcode 121 wird durch Kompilieren in Mikrobefehle bzw. Mikrobefehlssequenzen 122, 123 übersetzt, welche von dem Mikroprogrammsteuerwerk 102 verstanden und direkt ausgeführt werden können. Diese Mikrobefehle 122, 123 sind insbesondere in den Speicherregistern 101 hinterlegt.
  • Entsprechend ist auch das Anwendungsprogramm schematisch dargestellt und mit 130 bezeichnet. Auch dem Anwendungsprogramm liegt ein entsprechender Quellcode bzw. Quelltext 131 in einer Hochsprache wie C, C++, JAVA usw. zugrunde, welcher durch Kompilieren in einen ausführbaren Code 132 übersetzt wird. Dieser Code 132 wird als entsprechendes Anwendungsprogramm in dem Flashspeicher 103 des Mikrocontrollers 100 hinterlegt.
  • Das Mikroprogramm bzw. die Mikrobefehle 122, 123 sowie ferner das Anwendungsprogramm bzw. dessen ausführbarer Code 132 können jeweils beispielsweise vor einer Inbetriebnahme des Mikrocontrollers z.B. im Zuge eines Herstellungsprozesses des Mikrocontrollers 100 erzeugt und in der jeweiligen Speichereinheit 101 bzw. 103 hinterlegt werden.
  • Um einen sicheren Betrieb des Mikrocontrollers 100 zu ermöglichen und um eine hohe Betriebssicherheit bzw. funktionale Sicherheit („safety“) sowie ferner eine hohe informationstechnische Sicherheit bzw. Informationssicherheit („security“) zu ermöglichen, ist der Mikrocontroller 100 programmtechnisch dazu eingerichtet, eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens durchzuführen.
  • Im Rahmen des Verfahrens ist eine Sicherheitsfunktionalität zur Überwachung des Mikrocontrollers 100 in dem Mikroprogramm 120 implementiert und wird somit durch die Rechenwerke 110 in Hardware bzw. in der Hardwareebene ausgeführt.
  • Zu diesem Zweck umfasst das Mikroprogramm 120 Sicherheitsbefehle123 , wobei, wenn das Mikroprogramm 120 bzw. die Sicherheitsbefehle 123 von dem Mikroprogrammsteuerwerk 102 ausgeführt werden, die Rechenwerke 110 konfiguriert und angewiesen werden, eine entsprechende Sicherheitsfunktionalität 112 auszuführen. Im Zuge dieser Sicherheitsfunktionalität 112 stellen die Rechenwerke 110 einen funktionalen oder informationstechnischen Sicherheitsmechanismus bereit, welcher beispielsweise eine Überwachung des Mikrocontrollers 100 auf funktionale Sicherheit und informationstechnische Sicherheit hin umfasst.
  • Beispielsweise handelt es sich bei den in 1 mit 122 bezeichneten Mikrobefehlen um Systembefehle, durch welche die Rechenwerke 110 angewiesen werden, eine System- bzw. Grundfunktionalität 111 auszuführen. Bei den mit 123 bezeichneten Mikrobefehlen handelt es sich insbesondere um die Sicherheitsbefehle.
  • Durch derartige Implementierung der Sicherheitsfunktionalität in Hardware in dem Mikroprogramm 120 wird zweckmäßigerweise kein zusätzliches Hardwareelement benötigt, um eine Überwachung des Mikrocontrollers 100 durchzuführen, beispielsweise kein zusätzlicher Hardware-Watchdog. Ein Aufwand zum Integrieren einer derartigen externen Überwachungskomponente in den Mikrocontroller 100 kann daher entfallen. Die Sicherheitsfunktionalität 112 wird zweckmäßigerweise von den ohnehin in dem Mikrocontroller 100 vorhandenen Rechenwerken 110 ausgeführt. Insbesondere werden die Systemfunktionalität 111 und die Sicherheitsfunktionalität 112 von Rechenwerken 110 ausgeführt, welche auf demselben, gemeinsamen Substrat in dem Mikrocontroller 100 vorgesehen sind. Ferner kann die Sicherheitsfunktionalität 112 als Teil des Mikroprogramms 120 schneller, effizienter und leistungsstärker durchgeführt werden, als es beispielsweise als Teil eines Anwendungsprogramms 130 der Fall wäre.
  • In 2 ist der Mikrocontroller 100 aus 1 gemäß einer bevorzugten Ausführungsform eines erfindungsgemäßen Verfahrens schematisch dargestellt. Identische Bezugszeichen in den 1 und 2 bezeichnen gleiche oder baugleiche Elemente.
  • Gemäß der in 2 gezeigten bevorzugten Ausführungsform wird durch die in dem Mikroprogramm 120 implementierte Sicherheitsfunktionalität zugleich auch eine Befehlssatzerweiterung mit neuen Anwendungsprogramm-Sicherheitsbefehlen zur Verwendung im Anwendungsprogramm 130 bereitgestellt.
  • In der Folge können im Quelltext 131 des Anwendungsprogramms 130 entsprechende Anwendungsprogramm-Sicherheitsbefehle 231 („safety intrinsics“, „safety inlines“) eingesetzt und das ausführbare Anwendungsprogramm 132 um entsprechende ausführbare Anwendungsprogramm-Sicherheitsbefehle 232 („safety binary code“) erweitert werden.
  • Besonders zweckmäßig wird die in dem Mikroprogramm 120 implementierte Sicherheitsfunktionalität 112 durch diese Anwendungsprogramm-Sicherheitsbefehle aufgerufen bzw. gestartet. Wenn die ausführbaren Anwendungsprogramm-Sicherheitsbefehle 232 ausgeführt werden, wird das Mikroprogrammsteuerwerk 102 besonders zweckmäßig angewiesen, die Sicherheitsbefehle 123 und somit die Sicherheitsfunktionalität 112 auszuführen.
  • 3 zeigt schematisch einen Mikrocontroller 300 gemäß einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens, welche beispielsweise ebenfalls in einem Steuergerät eines (Kraft-) Fahrzeugs verwendet wird.
  • Entsprechend dem Mikrocontroller 100 aus den 1 und 2 ist auch der in 3 gezeigte Mikrocontroller 300 dazu eingerichtet, eine in einem Mikroprogramm implementierte Sicherheitsfunktionalität in der Hardwareebene auszuführen. Im Gegensatz zu dem Mikrocontroller aus 1 und 2 sind bei dem Mikrocontroller 300 aus 3 redundante Elemente zum Ausführen dieser Sicherheitsfunktionalität vorgesehen.
  • Der Mikrocontroller 300 weist eine Einheit 300a mit ersten Rechenwerken 310, ersten Speicherregistern 301 und ersten Mikroprogrammsteuerwerken 302 auf. In diesen ersten Speicherregistern 301 ist ein erstes Codemodul 320 als ein erster Teil eines Mikroprogramms hinterlegt, durch welches die Systemfunktionalität des Mikrocontrollers 300 implementiert ist. Mikrobefehlen 322 dieses ersten Codemoduls 320 liegt ein entsprechender Quelltext 321 zugrunde.
  • Der Mikrocontroller 300 weist ferner eine zweite Einheit 300b mit zweiten Rechenwerken 310', zweiten Speicherregistern 301' und zweiten Mikroprogrammsteuerwerken 302' auf. Diese zweiten Rechenwerke 310' sind insbesondere ausschließlich zum Ausführen der Sicherheitsfunktionalität vorgesehen und werden nachfolgend auch als Sicherheitsrechenwerke bezeichnet.
  • Die Sicherheitsrechenwerke 310', Mikroprogrammsteuerwerke 302' und Speicherregister 301' der zweiten Einheit 300b sind insbesondere unabhängig von den ersten Rechenwerken 310, den ersten Mikroprogrammsteuerwerken 302 und den ersten Speicherregistern 301 der ersten Einheit 300a.
  • In den zweiten Speicherregistern 301' ist ein zweites Codemodul 320' mit Sicherheitsbefehlen 322' als ein zweiter Teil des Mikroprogramms hinterlegt, in welchem demgemäß die Sicherheitsfunktionalität implementiert ist. Den Sicherheitsbefehlen 322' liegt ein entsprechender Quelltext 321' zugrunde.
  • Somit sind die Systembefehle 322 und die Sicherheitsbefehle 322' jeweils als eigene, unabhängige Codemodule vorgesehen und in unterschiedlichen, unabhängigen Speicherregistern 321, 321' hinterlegt.
  • Die Speicherregister 301, 301', die Mikroprogrammsteuerwerke 302, 302' und die Rechenwerke 310, 310' der ersten und zweiten Einheit 300a, 300b sind besonders zweckmäßig auf derselben Leiterplatte angeordnet, jedoch insbesondere unabhängig und logisch getrennt voneinander als individuelle Elemente.
  • Ferner weist der Mikrocontroller 303 eine Speichereinheit bzw. Flashspeicher 303 auf. Entsprechend zu 2 ist auch in dem Flashspeicher 303 ein Anwendungsprogramm 130 hinterlegt, welches die obig erläuterte zweite Sicherheitsfunktionalität umfasst. Entsprechend obiger Erläuterung werden durch Ausführen der Sicherheitsbefehle 232 die zweiten Mikroprogrammsteuerwerke 302' angewiesen, die Sicherheitsbefehlen 322' und somit die Sicherheitsfunktionalität auszuführen.
  • 4 zeigt schematisch den Mikrocontroller 300 aus 3 gemäß einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens. Identische Bezugszeichen in den 3 und 4 bezeichnen gleiche oder baugleiche Elemente.
  • Wie in 4 gezeigt, stehen die Sicherheitsrechenwerke 310' der zweiten Einheit 300b über einen speziellen, separaten, unabhängigen Zugriffs-, Signal- bzw. Reaktionspfad 410 mit den ersten Rechenwerken 310 der ersten Einheit 300a in Verbindung.
  • Über diesen Zugriffspfad 410 können die Sicherheitsrechenwerke 310' mit den ersten Rechenwerken 310 kommunizieren, um auf dem Mikroprogramm 320 basierende Funktionalitäten und Anwendungsprogramme 130, welche von den ersten Rechenwerken 310 ausgeführt werden, auf Fehler, Störungen und Ausfälle zu überwachen. Bei Erkennen von Fehler, Störung oder Ausfall kann über den Zugriffspfad 410 zweckmäßig reagiert werden und die betroffene Funktionalität bzw. das betroffene Anwendungsprogramm kann beispielsweise beendet oder neu gestartet werden.
  • Ferner ist in 4 beispielhaft eine Komponente 430 des Mikrocontrollers 300 gezeigt, beispielsweise eine Peripherieeinheit, z.B. ein Ein/-Ausgang, über welchen der Mikrocontroller 300 mit einem sicherheitsrelevanten Aktor des Fahrzeugs verbunden ist. Auch mit dieser Komponente 430 stehen die Sicherheitsrechenwerke 310' über einen unabhängigen Zugriffspfad 420 in Verbindung.
  • Zur Steigerung der Unabhängigkeit in Reaktion auf sicherheitsgerichtete Ereignisse ist somit ein eigener Signalpfad 420 vorgesehen, um die entsprechenden sicherheitsrelevanten Aktoren, die von der Mikrocontroller-Peripherie 430 überwacht und kontrolliert werden, auch unabhängig von dem Anwendungsprogramm 130 oder von dem das Anwendungsprogramm 130 verarbeitenden Mikroprogrammsteuerwerk 302 in einen sicheren Zustand zu versetzen zu können, z.B. durch Abschalten oder auch durch Degradation.
  • Ebenso ist es aber wichtig, bei der Erkennung eines sicherheitsgerichteten Ereignisses das eigentliche Anwendungsprogramm 130 unterbrechen und beeinflussen zu können, um auch hier eine weitere Verarbeitung nach dem sicherheitsgerichteten Ereignis so auszuführen zu können, dass kein Sicherheitsziel verletzt werden kann. Hierzu können in dem zu überwachenden und zu kontrollierenden Mikroprogrammsteuerwerk 302 beispielsweise Ereignisse bzw. Eingriffe auf Diagnosesignale, Semaphoren/Mutex, Speicherinhalte aber auch Interrupts bzw. Exceptions direkt ausgelöst werden oder in die Befehlspipelines des Mikroprogrammsteuerwerks 302 injiziert werden („Pipeinjection“).
  • Der Mikrocontroller 300 aus 3 ist in 5 gemäß einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens schematisch dargestellt. Identische Bezugszeichen in den 3, 4 und 5 bezeichnen gleiche oder baugleiche Elemente.
  • Wie in 5 gezeigt, kann der Mikrocontroller 500 ferner noch weitere zweite Einheiten 300c, 300d jeweils mit einer Anzahl von Sicherheitsrechenwerken 310" und 310'" aufweisen. Für jedes dieser Sicherheitsrechenwerke 310" bzw. 310'" sind jeweils ein entsprechendes Mikroprogrammsteuerwerk 302", 302'" sowie entsprechende Speicherregister 301", 301"' vorgesehen. In jedem dieser Speicherregister 301", 301'" ist ein entsprechendes Codemodul 320", 320'" mit entsprechenden Sicherheitsbefehlen 322", 322'" basierend auf entsprechendem Quelltext 321", 321'" hinterlegt.
  • Diese verschiedenen zweiten Einheiten 300b, 300c, 300d können beispielsweise redundant dieselben Codemodule und somit redundant dieselbe Sicherheitsfunktionalität ausführen. Ebenso können die einzelnen zweiten Einheiten 300b, 300c, 300d jeweils auch verschiedene Sicherheitsbefehle ausführen und somit jeweils beispielsweise unterschiedliche Teilfunktionalitäten der Sicherheitsfunktionalität.
  • Zweckmäßigerweise sind diese redundanten Speicherregister 301', 301", 301"', Mikroprogrammsteuerwerke 302', 302", 302'" und Rechenwerke 310', 310", 310'" auf demselben Substrat angeordnet.
  • Beispielsweise können für jeden Prozessorkern des Mikrocontrollers eine derartige zweite Einheit 300b, 300c, 300d und somit derartige Sicherheitsrechenwerke 310', 310" bzw. 310'" zum Überwachen des jeweiligen Prozessorkerns bzw. der darauf ablaufenden Prozesse vorgesehen sein.
  • Gemäß dem vorliegenden Verfahren wird also eine Sicherheitsfunktionalität in Form eines Mikroprogramms bzw. von Mikroprogrammbefehlen hardwarenah direkt in der Maschinenebene durch den entsprechenden Mikrocontroller 100 bzw. 300 ausgeführt. Insbesondere wird hierzu kein zusätzliches, externes Hardwareelement benötigt, etwa in Form eines Watchdogs, wie es bei herkömmlichen Mikrocontrollern oftmals der Fall ist.
  • 6a und 6b zeigen schematisch jeweils einen solchen herkömmlichen Mikrocontroller 600 gemäß dem Stand der Technik, zu dessen Überwachung ein Watchdog 610 in Form eines externen integrierten Schaltkreises vorgesehen ist.
  • Sowohl der Mikrocontroller 600 als auch der Watchdog 610 umfassen jeweils Rechenwerke 601 bzw. 611 zum Ausführen von auf Mikroprogramm basierenden Funktionalitäten sowie ferner Ein-/Ausgänge 602 bzw. 612 beispielsweise zur Kommunikation mit sicherheitskritischen Aktoren.
  • Diese extern zum Mikrocontroller 600 hinzuzufügenden Schaltungen 610 haben in der Regel eine serielle Kommunikationsschnittstelle, mit der sie mit dem Mikrocontroller 600 kommunizieren, angedeutet dich Bezugszeichen 605, sowie einen eigenen Abschaltpfad, welcher mit der sicherheitskritischen Aktorik des Mikrocontrollers 600 verknüpft ist.
  • Sowohl der Mikrocontroller 600 als auch der Watchdog 610 werden mit eigenen Taktgebern 604 bzw. 614 versorgt. Wie in 6a gezeigt, kann die Spannungsversorgung zumeist aus einer gemeinsamen Quelle 606 erfolgen, wenn Mikrocontroller 600 und Watchdog 610 eine eigene Überwachung der Versorgungsspannung besitzen. Wie in 6b gezeigt können auch unabhängige Spannungsversorgungen 606a und 606b für den Mikrocontroller 600 und den Watchdog 610 vorgesehen sein. Teilweise sind die Taktschaltungen wie PLL („phase locked loop“) und Taktteiler bereits auf den Hardware Schaltungen des Mikrocontrollers 600 und des Watchdogs 610 implementiert, so dass nur eine minimale zusätzliche externe Beschaltung notwendig wird.
  • Im Gegensatz dazu ist in den 7a bis 7c jeweils schematisch ein Mikrocontroller 700 gemäß einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens dargestellt, wobei die Sicherheits- bzw. Überwachungsfunktionalität nicht wie in 6 gezeigt auf physikalisch getrennten Hardware-Bauelementen, sondern auf demselben Substrat wie die weiteren Komponenten des Mikrocontrollers implementiert ist.
  • Die Sicherheitsfunktionalität wird durch Sicherheitsrechenwerke 711 ausgeführt, welche auf demselben Substrat angeordnet sind wie Rechenwerke 701 zum Ausführen der Systemfunktionalität. Die Rechenwerke 701 und Sicherheitsrechenwerke 711 sind über unabhängige Zugriffspfade mit Ein-/ Ausgängen 702 bzw. 712 zur Kommunikation mit sicherheitskritischer Aktorik verknüpft. Ferner sind die Rechenwerke 701 und Sicherheitsrechenwerke 711 über spezielle Zugriffspfade 705 miteinander verknüpft. Ferner sind eigene Taktgeber 704 bzw. 714 für die verschiedenen Rechenwerke 701 bzw. 711 vorgesehen.
  • Wie in 7a gezeigt, kann eine gemeinsame Spannungsversorgung 706 vorgesehen sein, welche den Mikrocontroller 700 und die Sicherheitsrechenwerke 711 versorgt. Gemäß 7b kann die Spannungsversorgung 706 auch direkt die Rechenwerke 701 und die Sicherheitsrechenwerke 711 versorgen. Ferner ist auch eine unabhängige getrennte Spannungsversorgung möglich, wie in 7c gezeigt. Eine erste Quelle 706a ist dabei für die Rechenwerke 701 vorgesehen und eine unabhängige zweite Quelle 706b ist zur Spannungsversorgung der Sicherheitsrechenwerk 711 vorgesehen.
  • Beispielsweise können die Sicherheitsrechenwerke 711 fest verdrahtet bzw. programmiert und persistent konfiguriert sein. Ferner ist es auch denkbar, dass die Sicherheitsrechenwerke 711 zwar fest verdrahtet bzw. programmiert, aber variabel konfigurierbar sind, wobei eine entsprechende Konfiguration insbesondere nach dem Systemstart geladen wird. Besonders zweckmäßig können die Sicherheitsrechenwerke 711 auch fest verdrahtet, aber frei programmierbar und variabel konfigurierbar sein, wobei die entsprechende Konfiguration insbesondere nach Systemstart und im Betrieb verändert werden kann oder beispielsweise auch nur durch einmaliges Programmieren mit einem speziellen Werkzeug.
  • Eine Umsetzung frei programmierbarer, auf Mikroprogrammebene veränderbarer Sicherheitsfunktionalitäten ist dabei besonders vorteilhaft für die Entwicklung von Sicherheitsmechanismen basierend auf Mikrocontrollern, insbesondere für funktionale Sicherheit („safety“) und informationstechnische Sicherheit („security“). Falls die Eigenschaften von bestimmten sicherheitsrelevanten Schutzmechanismen spezifisch angepasst oder Steuersequenzen für diese durch einzelne Anwendungsprogrammbefehle realisiert bzw. verbessert werden sollen, so kann dies beispielsweise mittels spezifischer Befehle in dem Anwendungsprogramm plus spezifischer Befehlsinterpretation und Erweiterung im Sicherheits-Mikroprogrammsteuerwerk ermöglicht werden. Zu diesem Zweck kann das Mikroprogrammsteuerwerk durch geeignete Mikroprogrammsequenzen, die entsprechend auf das Rechenwerk wirken, umgesetzt werden. Die Umsetzung kann auch Funktionen zur partiellen oder kompletten Umsetzung von Sicherheitsfunktionen umfassen.
  • Beispielsweise kann mittels einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens eine diversitäre Verarbeitung von komplexen mathematischen Operationen erfolgen. Einer ‚Floating Point Unit‘ des Mikrocontrollers kann ein vereinfachtes Rechenwerk (z.B. eine 64-Bit-lnteger-Arithmetik-Einheit) zur Seite gestellt werden, um zufällige und systematische Ausfälle nach dem Rechenvorgang auf der Hardware-Ebene prüfbar zu machen. Die Überprüfung erfolgt durch eine insbesondere diversitär redundante arithmetische Berechnung mit einem nachfolgenden Vergleich, die zusätzlich zeitverzögert ausgeführt werden kann, um den Einfluss temporaler Effekte zu verringern. Am Ende kann durch eine weitere Operation eine eventuell aufgetretene Abweichung über ein Toleranzfenster bewertet werden.
  • Ferner kann beispielsweise ein Speicherschutz erfolgen. Die Ansteuerung für einen Speicherschutzmechanismus eines implementierten Speicherbereiches kann realisiert werden, ohne dass das Anwenderprogramm verändert werden muss. Dabei ist es denkbar, durch geeignete Speicherattribute und fein granulare Look-Up-Tabellen nicht nur größere Speicherbereiche zu schützen (Speicherkacheln), sondern gegebenenfalls deutlich kleinere Speicherbereiche (Speicherworte, Speicherparagraphen). Eine Stack- oder Heap-Speicher-Überwachung wäre auch denkbar. Beobachtet dann das redundant implementierte Sicherheitsrechenwerk einen Schreibbefehl, so kann es diesen auswerten und prüfen, insbesondere dahingehend, ob auf einen permanent oder temporär gesperrten Speicherbereich geschrieben werden soll. Unabhängig davon kann die Finalisierung des Schreibvorganges abgebrochen und eine Ausnahmebehandlung („Exception“) angestoßen werden.
  • Beispielsweise kann ferner eine Speicherdoppelung erfolgen. Speziell markierte Datenbereiche aus einem sicherheitskritischen Teil des Anwendungsprogrammes werden durch das Sicherheitsrechenwerk bei schreibendem Zugriff als gegebenenfalls diversitär redundante Kopie abgelegt, insbesondere in einem gesicherten oder ausreichend weit getrennten oder gespreizten Speicherbereich, und bei lesendem Zugriff auf Gleichheit zwischen Original und Kopie geprüft. Bei Abweichung kann durch einen unbeabsichtigten Schreibvorgang das Original verfälscht worden sein und es kann eine Ausnahmebehandlung („Exception“) ausgelöst werden. Das Sicherheitsrechenwerk beobachtet dazu nicht nur den eigentlichen Schreibbefehl, sondern insbesondere auch die Adresse des dazu notwendigerweise ausgeführten Anwendungsprogrammbefehls.
  • Ferner können insbesondere Befehlssatzerweiterungen erfolgen. Der Anwendungsprogrammbereich kann beispielsweise mit neuen Befehlen („special safety intrinsics“, „binary codes“) erweitert werden.
  • Beispielsweise kann ferner eine Kommunikationsabsicherung erfolgen. Spezifische Funktionen für Datenabsicherungen oder Plausibilisierungen können kompakt implementiert werden und unterstützen so eine effektive Ende-zu-Ende-Absicherung von Kommunikationsprotokollen. Beispiele hierfür sind eine CRC-Absicherung („cyclic redundancy check“, zyklische Redundanzprüfung) oder komplexere Verschlüsselungsverfahren, deren Quell- und Assemblercode nicht durch Debuggen des Anwendungsprogrammes ermittelbar sein soll. Die Sicherheitsbefehle des Mikroprogramms können zudem so konfiguriert werden, dass sie Verschlüsselungsfaktoren oder Absicherungspolynome als Parameter mitbekommen und die Absicherung so dynamisieren können.
  • Ferner können beispielsweise programmierbare Ereignisse für Dateninhalte und Programmcodes an zu überwachenden Speicheradressen ermöglicht werden. Mittels Komparatorfunktionen können die Sicherheitsrechenwerke auf spezifische Dateninhalte (z.B. ein Bereich) oder Programmstellen reagieren, die mittels Adressen oder mittels Adressen und Inhalten der gelesenen Speicherstellen identifiziert werden und basierend auf davon getriggerten Ereignissen spezielle Sicherheits-Befehlssequenzen starten oder über das Mikroprogrammsteuerwerk aufrufen, das das Anwendungsprogramm direkt ausführen kann.
  • Durch die aufgezeigten Mikrokontroller-Architekturen gemäß dem vorliegenden Verfahren können Anforderungen nach ausreichender Unabhängigkeit und Einflussfreiheit/Rückwirkungsfreiheit in besonders vorteilhafter Weise erfüllt werden, wie sie beispielsweise in der Norm ISO 26262 vorgegeben werden.

Claims (14)

  1. Verfahren zur Absicherung eines Mikrocontrollers (100, 300), der wenigstens ein Mikroprogrammsteuerwerk (102, 302, 302', 302", 302"') und wenigstens ein Rechenwerk (110, 310, 310', 310", 310"') aufweist, wobei das wenigstens eine Mikroprogrammsteuerwerk (102, 302, 302', 302", 302'") das wenigstens eine Rechenwerk (110, 310, 310', 310", 310'") durch Ausführen eines Mikroprogramms (120, 320', 320", 320'") konfiguriert, wobei das Mikroprogramm (120, 320', 320", 320'") Sicherheitsbefehle (123, 322', 322", 322"') umfasst, wobei das Mikroprogrammsteuerwerk (102, 302', 302", 302"') durch Ausführen der Sicherheitsbefehle (123, 322', 322", 322'") das wenigstens eine Rechenwerk (110, 310', 310", 310'") anweist, eine Sicherheitsfunktionalität auszuführen.
  2. Verfahren nach Anspruch 1, wobei das Mikroprogramm ein erstes Codemodul (320) und ein zweites Codemodul (320', 320", 320'") umfasst, wobei das zweite Codemodul (320', 320", 320'") die Sicherheitsbefehle (322', 322", 322"') umfasst und wobei das erste Codemodul (320) weitere Mikrobefehle des Mikroprogramms umfasst.
  3. Verfahren nach Anspruch 2, wobei der Mikrocontroller (300) wenigstens ein erstes Speicherregister (301) und wenigstens ein zweites Speicherregister (301', 301", 301'") umfasst, wobei das erste Codemodul (320) in dem wenigstens einen ersten Speicherregister (301) hinterlegt ist und das zweite Codemodul (320', 320", 320"') in dem wenigstens einen zweiten Speicherregister (301', 301", 301'").
  4. Verfahren nach einem der vorstehenden Ansprüche, wobei der Mikrocontroller (300) eine erste Einheit (300a) mit wenigstens einem ersten Mikroprogrammsteuerwerk (302) und wenigstens einem ersten Rechenwerk (310) und eine zweite Einheit (300b, 300c, 300d) mit wenigstens einem zweiten Mikroprogrammsteuerwerk (302', 302", 302"') und wenigstens einem zweiten Rechenwerk (310', 310", 310'") aufweist, wobei das wenigstens eine zweite Mikroprogrammsteuerwerk (302', 302", 302'") die Sicherheitsbefehle (123, 322', 322", 322"') des Mikroprogramms (320', 320", 320'") ausführt und das wenigstens eine zweite Rechenwerk (310', 310", 310'") anweist, die Sicherheitsfunktionalität auszuführen.
  5. Verfahren nach Anspruch 4, wobei das wenigstens eine zweite Rechenwerk (310', 310", 310"') der zweiten Einheit (300b, 300c, 300d) über wenigstens einen ersten speziellen Zugriffspfad (410) mit dem wenigstens einen ersten Rechenwerk (310) der ersten Einheit (300a) in Verbindung steht und/oder wobei das wenigstens eine zweite Rechenwerk (310', 310", 310'") der zweiten Einheit (300b, 300c, 300d) über wenigstens einen zweiten speziellen Zugriffspfad (420) mit wenigstens einer Komponente (430) des Mikrocontrollers (300) in Verbindung steht.
  6. Verfahren nach Anspruch 4 oder 5, wobei wenigstens zwei zweite Einheiten (300b, 300c, 300d) vorgesehen sind, wobei die jeweiligen zweiten Mikroprogrammsteuerwerke (302', 302", 302"') dieser zweiten Einheiten (300b, 300c, 300d) jeweils unterschiedliche Sicherheitsbefehle (322', 322", 322'") oder redundant dieselben Sicherheitsbefehle (322', 322", 322'") ausführen.
  7. Verfahren nach einem der Ansprüche 4 bis 6, wobei für einzelne Prozessorkerne des Mikrocontrollers (300), insbesondere für alle Prozessorkerne des Mikrocontrollers (300), jeweils eine zweite Einheit vorgesehen ist.
  8. Verfahren nach einem der Ansprüche 4 bis 7, wobei die erste Einheit und die zweite Einheit auf einem gemeinsamen Substrat des Mikrocontrollers (300) angeordnet sind.
  9. Verfahren nach einem der vorstehenden Ansprüche, wobei durch die Sicherheitsfunktionalität zugleich auch eine Befehlssatzerweiterung mit neuen Anwendungsprogramm-Sicherheitsbefehlen (231, 232) zur Verwendung in einem Anwendungsprogramm (130) bereitgestellt wird.
  10. Verfahren nach Anspruch 9, wobei durch die Anwendungsprogramm-Sicherheitsbefehle (231, 232) die Sicherheitsfunktionalität aufgerufen wird und das wenigstens eine Mikroprogrammsteuerwerk (102, 302', 302", 302"') aufgefordert wird, die Sicherheitsbefehle (123, 322', 322", 322"') auszuführen.
  11. Verfahren nach einem der vorstehenden Ansprüche, wobei im Zuge der Sicherheitsfunktionalität ein von dem Mikrocontroller (100, 300) ausgeführter Prozess und/oder eine Komponente des Mikrocontrollers (100, 300) überwacht wird.
  12. Mikrocontroller (100, 300), die dazu eingerichtet ist, alle Verfahrensschritte eines Verfahrens nach einem der vorstehenden Ansprüche durchzuführen.
  13. Mikroprogramm, das einen Mikrocontroller (100, 300) dazu veranlasst, alle Verfahrensschritte eines Verfahrens nach einem der Ansprüche 1 bis 11 durchzuführen, wenn es auf dem Mikrocontroller (100, 300) ausgeführt wird.
  14. Maschinenlesbares Speichermedium mit einem darauf gespeicherten Mikroprogramm nach Anspruch 13.
DE102020211540.0A 2020-09-15 2020-09-15 Verfahren zur Absicherung eines Mikrocontrollers Pending DE102020211540A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102020211540.0A DE102020211540A1 (de) 2020-09-15 2020-09-15 Verfahren zur Absicherung eines Mikrocontrollers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102020211540.0A DE102020211540A1 (de) 2020-09-15 2020-09-15 Verfahren zur Absicherung eines Mikrocontrollers

Publications (1)

Publication Number Publication Date
DE102020211540A1 true DE102020211540A1 (de) 2022-03-17

Family

ID=80351905

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020211540.0A Pending DE102020211540A1 (de) 2020-09-15 2020-09-15 Verfahren zur Absicherung eines Mikrocontrollers

Country Status (1)

Country Link
DE (1) DE102020211540A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116521201A (zh) * 2023-04-26 2023-08-01 如果新能源科技(江苏)股份有限公司 电池包的软件升级方法和电池包

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050235355A1 (en) 2003-11-07 2005-10-20 Dybsetter Gerald L Watch-dog instruction embedded in microcode
DE102013213402A1 (de) 2013-07-09 2015-01-15 Robert Bosch Gmbh Mikrocontroller mit mindestens zwei Kernen
DE102017201621A1 (de) 2017-02-01 2018-08-02 Robert Bosch Gmbh Integrierte Schaltung für ein Steuergerät eines Kraftfahrzeugs, Verfahren zur Herstellung einer integrierten Schaltung
US20190049916A1 (en) 2018-10-09 2019-02-14 Intel Corporation Soc architecture to integrate with one out of two diagnostics platforms

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050235355A1 (en) 2003-11-07 2005-10-20 Dybsetter Gerald L Watch-dog instruction embedded in microcode
DE102013213402A1 (de) 2013-07-09 2015-01-15 Robert Bosch Gmbh Mikrocontroller mit mindestens zwei Kernen
DE102017201621A1 (de) 2017-02-01 2018-08-02 Robert Bosch Gmbh Integrierte Schaltung für ein Steuergerät eines Kraftfahrzeugs, Verfahren zur Herstellung einer integrierten Schaltung
US20190049916A1 (en) 2018-10-09 2019-02-14 Intel Corporation Soc architecture to integrate with one out of two diagnostics platforms

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Wikipedia Artikel: „Mikroprogramm". URL: https://de.wikipedia.org/w/index.php?title=Mikroprogramm&oldid=165597567 [Version vom 17. Mai 2017, Abgerufen am 20. Mai 2021]

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116521201A (zh) * 2023-04-26 2023-08-01 如果新能源科技(江苏)股份有限公司 电池包的软件升级方法和电池包

Similar Documents

Publication Publication Date Title
DE102011005209B4 (de) Programmanweisungsgesteuerte Instruktionsflusskontrolle
DE102010037457B4 (de) Verfahren zur Datenverarbeitung zum Bereitstellen eines Wertes zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist, Verfahren zur Datenverarbeitung zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist, Verfahren zum Erzeugen von Programm-Code, Datenverarbeitungsanordnungen zum Bereitstellen eines Wertes zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist, Datenverarbeitungsanordnungen zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist, und Datenverarbeitungsanordnungen zum Erzeugen von Programm-Code
DE102011112174B4 (de) Vorrichtung und Verfahren zum Schutz und zur zerstörungsfreien Prüfung sicherheitsrelevanter Register
DE102012109614A1 (de) Fehlerbehebung bei Stapel-Korruption in eingebetteten Softwaresystemen
DE102013218341A1 (de) Ersatzweise Verlagerung von Threads (Thread-Sparing) zwischen Berechnungskernen in einem Multithread-Prozessor
DE102014002473A1 (de) System und verfahren zur erhöhung der lockstep-kern-verfügbarkeit
EP3451576A1 (de) System und verfahren zur kryptographisch geschützten überwachung wenigstens einer komponente eines geräts oder einer anlage
DE102014117971B4 (de) Verfahren zur Datenverarbeitung zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist, und Datenverarbeitungsanordnungen zum Erzeugen von Programm-Code
EP1854007A2 (de) Verfahren, betriebssysem und rechengerät zum abarbeiten eines computerprogramms
EP1915690A2 (de) Verfahren und vorrichtung zur überwachung von funktionen eines rechnersystems
EP1262856B1 (de) Programmgesteuerte Einheit
DE102011108077A1 (de) Verfahren zur Speicherplatzverwaltung in einem multitaskingfähigen Datenverarbeitungssystem
EP4292025A1 (de) Vorrichtungen und verfahren zur überwachung eines quantencomputers im betrieb
EP3841438A1 (de) Automatisierungssystem zur überwachung eines sicherheitskritischen prozesses
DE102020211540A1 (de) Verfahren zur Absicherung eines Mikrocontrollers
EP2085883A1 (de) Verfahren zur Behandlung von transienten Fehlern in Echtzeitsystemen, insbesondere in Steuergeräten von Kraftfahrzeugen
DE102008024193A1 (de) System mit konfigurierbaren Funktionseinheiten und Verfahren
WO2004034261A1 (de) Verfahren zur ereignissynchronisation, insbesondere für prozessoren fehlertoleranter systeme
DE102007040721B4 (de) Datenverarbeitungsanordnung, Verfahren zur Datenverarbeitung, Computerprogrammelement und Überprüfungsanordnung für einen Speicher
DE102011007467A1 (de) Mehrkernige integrierte Mikroprozessorschaltung mit Prüfeinrichtung, Prüfverfahren und Verwendung
EP1359485A1 (de) Steuer- und Überwachungssystem
DE102016205109A1 (de) Mikroprozessor, insbesondere für ein Kraftfahrzeug
WO2008031776A1 (de) Mikrocontroller und verfahren zum starten eines anwendungsprogramms auf einem mikrocontroller
WO2016050857A1 (de) Verfahren zur datenverarbeitung zum ermitteln, ob bei einer ausführung eines programms ein fehler aufgetreten ist und datenverarbeitungsanordnungen zum erzeugen von programm-code
EP2287742A1 (de) Programmgesteuerte Einheit

Legal Events

Date Code Title Description
R163 Identified publications notified