DE102005016801A1 - Verfahren und Rechnereinheit zur Fehlererkennung und Fehlerprotokollierung in einem Speicher - Google Patents

Verfahren und Rechnereinheit zur Fehlererkennung und Fehlerprotokollierung in einem Speicher Download PDF

Info

Publication number
DE102005016801A1
DE102005016801A1 DE102005016801A DE102005016801A DE102005016801A1 DE 102005016801 A1 DE102005016801 A1 DE 102005016801A1 DE 102005016801 A DE102005016801 A DE 102005016801A DE 102005016801 A DE102005016801 A DE 102005016801A DE 102005016801 A1 DE102005016801 A1 DE 102005016801A1
Authority
DE
Germany
Prior art keywords
memory
logging
rom
computer
checksum
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.)
Granted
Application number
DE102005016801A
Other languages
English (en)
Other versions
DE102005016801B4 (de
Inventor
Narayana Nagaraj
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 DE102005016801.9A priority Critical patent/DE102005016801B4/de
Priority to US11/887,664 priority patent/US8196026B2/en
Priority to PCT/EP2006/061539 priority patent/WO2006108849A1/de
Publication of DE102005016801A1 publication Critical patent/DE102005016801A1/de
Application granted granted Critical
Publication of DE102005016801B4 publication Critical patent/DE102005016801B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Es wird ein Verfahren zur Erkennung von Fehlern in Computerdaten (101) in einem Speicher, insbesondere in einem ROM (100, 110), wobei eine Prüfsumme zur Laufzeit berechnet und mit einer abgespeicherten Prüfsumme (101', 111' bis 115') verglichen wird, vorgestellt, wobei die Computerdaten (101) in wenigstens zwei logische Blöcke (111 bis 115) unterteilt sind und eine Prüfsumme für jeden logischen Block berechnet wird, sowie eine Rechnereinheit mit einem Prozessor und einem Speicher, der ein ROM (100, 110), in dem eine Firmware abgespeichert ist, und/oder ein RAM aufweist, wobei der Speicher eine Protokollierungsfunktion (111, 115) zur Protokollierung von festgestellten Speicherfehlern, insbesondere Fehlern im ROM und/oder RAM, aufweist, wobei wenigstens zwei Protokollierungsfunktionen (111, 115), insbesondere im ROM (110), vorgesehen sind. Die erfindungsgemäßen Lösungen erlauben die schnelle und sichere Erkennung und Protokollierung von Speicherfehlern, insbesondere in sicherheitsrelevanten Steuereinrichtungen.

Description

  • Die vorliegende Erfindung betrifft ein Verfahren zur Fehlererkennung, ein Verfahren zur Fehlerprotokollierung in einem Speicher, entsprechende Rechnereinheiten, ein Computerprogramm sowie ein Computerprogrammprodukt.
  • Nachfolgend wird im wesentlichen auf Embedded Systems in Kraftfahrzeugen (Kfz) Bezug genommen, ohne dass die Erfindung auf diese Anwendung beschränkt wäre.
  • Embedded Systems ähneln in ihrem Aufbau herkömmlichen Computersystemen und bestehen aus Hard- und Software. Die Software auf einem solchen System wird Firmware genannt und befindet sich gewöhnlich in einem ROM (Read Only Memory), das beispielsweise als Flash-ROM ausgebildet ist. Daneben weist ein Embedded System auch RAM (Random Access Memory) auf, das dynamische Daten enthält und typischerweise als static RAM (statisches RAM) ausgeführt ist.
  • RAM ist ein Speicher, dessen Inhalt nur solange zur Verfügung steht, solange er mit Betriebsspannung versorgt wird. RAM wird während des Betriebs eines Embedded Systems sooft wie notwendig beschrieben und ausgelesen. Im RAM werden typischerweise dynamische Informationen und Systemwerte abgelegt, wie z.B. Geschwindigkeit, Beschleunigung, Umdrehungszahlen, Sensorenwerte usw. Ebenso kann beispielsweise zur Verbesserung der Verarbeitungsgeschwindigkeit ein Teil des ausführbaren Programmcodes aus dem ROM in das RAM kopiert und von dort ausgeführt werden. Gewöhnlicherweise jedoch wird die Firmware direkt aus dem ROM ausgeführt.
  • ROM ist ein beschreibbarer, dauerhafter Speicher, der während der normalen Betriebsphase nur ausgelesen wird. Je nach physikalischem Aufbau des ROMs kann es ein- oder mehrmalig beschrieben werden. Der Speicherinhalt bleibt auch ohne Energieversorgung vorhanden. Im ROM eines Embedded Systems liegen der ausführbare Programmcode (Firmware), ebenso konstante Daten und Parameter.
  • RAM und ROM bestehen wie die meisten Computerspeicher aus Transistoren und Kondensatoren. Während des Betriebs können Speicherverluste oder Speicherfehler auftreten. Als Ursachen seien nur beispielhaft Strahlung, elektrische Auf- oder Entladung, Konstruktionsfehler usw. genannt.
  • Bereits eine einzelne defekte Speicherzelle kann ein unerwünschtes und gefährliches Fehlverhalten des Systems verursachen. Treten beispielsweise in einem Embedded System zur Airbag-Steuerung Speicherfehler im RAM auf, die die Werte der Beschleunigung betreffen, kann es zu Fehlauslösungen von Airbags kommen. Eine fehlerhafte ROM-Zelle wiederum kann z.B. zum Stillstand des Systems führen.
  • RAM in Embedded Systems wird daher heutzutage während des Betriebs überwacht. Werden Fehler erkannt, wird das System daraufhin in einen sicheren Zustand versetzt und beispielsweise ein Auslösen von Airbags deaktiviert. Für die spätere Analyse werden die Fehler protokolliert.
  • ROM wird herkömmlicherweise während des Einschaltvorganges des Embedded Systems und auch während des Betriebs regelmäßig überprüft. Wenn ein Fehler im ROM erkannt wird, wird das System ebenfalls in einen sicheren Zustand überführt und der Fehler protokolliert.
  • Die bekannten Verfahren zur Fehlererkennung und -protokollierung werden im folgenden kurz erläutert.
  • RAM-Fehlererkennung
  • Während der Initialisierung wird jede Speicherzelle überprüft. Der Inhalt der Speicherzelle wird temporär in ein Systemregister kopiert und das Komplement (0 ↔ 1) des Speicherinhalts zurückgeschrieben. Die Zelle wird erneut ausgelesen und ihr Inhalt mit dem Komplement des Inhalts des temporären Registers verglichen. Wenn die beiden Inhalte übereinstimmen, ist die Speicherzelle funktionsfähig, ansonsten defekt. Schließlich wird der Inhalt des Systemregisters, also der ursprüngliche Inhalt der Zelle, wieder zurückgeschrieben. Diese Überprüfung wird während des Betriebs regelmäßig durchgeführt.
  • ROM-Fehlererkennung
  • ROM-Fehlererkennung wird mittels Prüfsummen oder CRC (Cyclic Redundancy Check)-Verfahren durchgeführt. Bei beiden Verfahrensarten wird ein Speicherbereich im ROM für die Prüfsumme verwendet. Die Prüfsumme wird in einem externen Computersystem errechnet und bei der erstmaligen Beschreibung zusammen mit der Firmware im ROM abgelegt. Während des Betriebs wird regelmäßig eine Prüfsumme der Firmware berechnet und mit der abgelegten Prüfsumme verglichen. Stimmen die Prüfsummen überein, ist das ROM funktionsfähig, ansonsten schadhaft.
  • Fehlerprotokollierung
  • Die Fehlerprotokollierung wird für beide Speichertypen auf ähnliche Weise durchgeführt. Der Inhalt des Fehlerprotokolls hängt von der Anwendung ab. Typischerweise enthält das Fehlerprotokoll den Fehlerort (RAM, ROM), die Fehlernummer, wobei jedem Fehler eine eindeutige Nummer zugewiesen ist, die Zeit (Startzeit), zu der der Fehler erstmals auftrat, und evtl. die Zeit (Endzeit), zu der der Fehler nicht mehr auftrat. Das Fehlerprotokoll wird in einem weiteren, nichtflüchtigen Speicher wie z.B. einem EEPROM abgelegt. Die Software, die die Speicherung des Fehlerprotokolls im EEPROM durchführt, verwendet RAM- und ROM-Bereiche, die selbst wiederum beschädigt sein könnten. Die Zeitspanne, die zwischen der Erkennung eines Fehlers und dem Versetzen des betroffenen Systems in einen sicheren Zustand vergeht, ist relativ lange, was insbesondere bei sicherheitsrelevanten Systeme, wie z.B. Airbags, unvorteilhaft ist.
  • In Anbetracht dieses Stands der Technik soll die Erfindung die Fehlererkennung und die Fehlerprotokollierung schneller und sicherer zu machen. Vorteilhafte Ausgestaltungen ergeben sich aus den jeweiligen Unteransprüchen und der nachfolgenden Beschreibung.
  • Vorteile der Erfindung
  • Bei dem ersten erfindungsgemäßen Verfahren zur Erkennung von Fehlern in Computerdaten in einem Speicher, insbesondere in einem ROM, wobei eine Prüfsumme zur bzw. während der Laufzeit berechnet und mit einer abgespeicherten Prüfsumme verglichen wird, sind die Computerdaten in wenigstens zwei logische Blöcke unterteilt und es wird eine Prüfsumme für jeden logischen Block berechnet.
  • Das erste erfindungsgemäße Verfahren ermöglicht, Fehler im Speicher schnell zu erkennen. Durch die Unterteilung der Computerdaten in logische Blöcke wird die Zeit, die nötig ist, um einen Fehler zu erkennen, reduziert. Im Stand der Technik muß erst die Prüfsumme der gesamten Computerdaten berechnet werden, bevor ein Fehler festgestellt bzw. erkannt werden kann. Bei der erfindungsgemäßen Lösung kann im schnellsten Fall ein Fehler bereits nach Berechnung der ersten Prüfsumme erkannt werden. Die Wahl der Größe der logischen Blöcke und damit die Anzahl der logischen Blöcke hängt u.a. von der Größe der gesamten Computerdaten, von der beabsichtigten Verwendung und vom Platz, der für die Abspeicherung der Prüfsummen zur Verfügung steht, ab. Vorteilhafte Blockgrößen sind beispielsweise Vielfache von 8 kB, also 8 kB, 16 kB, 64 kB, 128 kB usw. Weiterhin ist von Vorteil, dass durch die erhöhte Anzahl der Prüfsummen Fehler erkannt werden könnten, die bei bekannten Berechnungen im Stand der Technik unentdeckt bleiben würden, beispielsweise 2-bit- oder Vielfache von 2-bit-Fehlern. Die Berechnungsverfahren von Prüfsummen sind wohlbekannt, beispielsweise die genannte CRC-Methode, und werden hier nicht weiter erläutert.
  • In einer bevorzugten Ausgestaltung des ersten erfindungsgemäßen Verfahrens werden die Computerdaten in wenigstens zwei logische Blöcke unterteilt, eine Prüfsumme eines jeden der logischen Blöcke berechnet, die Computerdaten und die berechneten Prüfsummen in einem ROM abgespeichert, eine erste Prüfsumme eines ersten logischen Blocks zur Laufzeit berechnet und die erste zur Laufzeit berechnete Prüfsumme mit einer ersten zugeordneten abgespeicherten Prüfsumme verglichen. Vorteilhafterweise werden die Prüfsummen auf einer ersten Rechnereinheit, insbesondere einem herkömmlichen Computer, berechnet und dann zusammen mit den Computerdaten, insbesondere der Firmware eines Embedded Systems, im ROM einer zweiten Rechnereinheit, insbesondere dieses Embedded Systems, abgespeichert. Die übrigen Schritte des Verfahrens werden dann vorteilhaft auf der zweiten Rechnereinheit selbst ausgeführt.
  • Bevorzugterweise wird bei dem ersten erfindungsgemäßen Verfahren zusätzlich ein Speicherfehler festgestellt, wenn sich eine erste zur Laufzeit berechnete Prüfsumme von einer ersten zugeordneten abgespeicherten Prüfsumme unterscheidet, oder es werden die entsprechenden Berechnungs- und Vergleichsschritte für eine zweite Prüfsumme eines zweiten logischen Blocks und eine zweite zugeordnete abgespeicherte Prüfsumme wiederholt, wenn sich die ersten Prüfsummen nicht unterscheiden. Die entsprechenden Berechnungs- und Vergleichsschritte werden anschließend für Prüfsummen etwaiger weiterer logischer Blöcke wiederholt, wenn kein Fehler festgestellt wurde. Damit kann ein Speicherfehler auf sehr einfache und sehr schnelle Weise erkannt bzw. festgestellt werden.
  • Das erste erfindungsgemäße Verfahren lässt sich auf einfache Weise mit dem zweiten erfindungsgemäßen Verfahren kombinieren, indem nach der Fehlererkennung die Fehlerprotokollierung ausgeführt wird.
  • Erfindungsgemäß wird eine erste Rechnereinheit mit einem Prozessor und einem Speicher, der ein ROM, in dem Computerdaten abgespeichert sind, und/oder ein RAM aufweist, vorgestellt, wobei die Rechnereinheit die Schritte d) bis g) eines Verfahrens gemäß einem der Ansprüche 2 oder 3 ausführt. Diese Rechnereinheit kann vorteilhaft, insbesondere als Embedded System, für übliche bekannte Zwecke verwendet werden, wenn einfache und schnelle Fehlererkennung erwünscht oder benötigt ist.
  • Bei dem zweiten erfindungsgemäßen Verfahren zur Protokollierung von festgestellten Speicherfehlern in einem ROM und/oder einem RAM, wobei eine Protokollierungsfunktion (Speicherfehlerprotokollierungsfunktion) ausgeführt wird, wobei wenigstens zwei Protokollierungsfunktionen im ROM vorgesehen sind, wird die Art des fehlerhaften Speichers festgestellt und eine der wenigstens zwei Protokollierungsfunktionen ausgeführt, wenn der Fehler im RAM auftritt. Es wird festgestellt, ob eine Protokollierungsfunktion betroffen ist, wenn der Fehler im ROM auftritt, eine der wenigstens zwei Protokollierungsfunktion ausgeführt, wenn keine Protokollierungsfunktion betroffen ist, und eine zweite Protokollierungsfunktion ausgeführt, wenn eine erste Protokollierungsfunktion betroffen ist. Mit diesem Verfahren kann sichergestellt werden, dass eine Fehlerprotokollierung schnell und zuverlässig erfolgt, unabhängig davon, wo der Fehler aufgetreten ist, gerade auch dann, wenn der Fehler in einer Protokollierungsfunktion selbst auftritt.
  • Es ist von Vorteil, wenn bei dem zweiten erfindungsgemäßen Verfahren ein Speicherfehler durch eine Ausführungsform des ersten erfindungsgemäßen Verfahrens festgestellt wird. Auf diese Weise können beide Verfahren vorteilhaft kombiniert werden, wodurch sowohl die Fehlererkennung als auch die Fehlerprotokollierung schneller und zuverlässiger erfolgen.
  • Ebenso ist es zweckmäßig, wenn bei dem zweiten erfindungsgemäßen Verfahren der Ort des Speicherfehlers im ROM durch eine Ausführungsform des ersten erfindungsgemäßen Verfahrens festgestellt wird. Durch die Berechnung der Prüfsummen der logischen Blöcke, ist es möglich, fehlerhafte Computerdaten zu lokalisieren, indem sie einem bestimmten Block zugeordnet werden können. Ebenso kann bei der Kompilierung der Firmware die Anordnung der Protokollierungsfunktionen durch spezielle Link-Befehle festgelegt werden. Somit ist es auf einfache Weise möglich festzustellen, ob eine Protokollierungsfunktion selbst fehlerhaft ist. Es ist vorteilhaft, wenn wenigstens ein logischer Block zwischen den beiden Protokollierungsfunktionen angeordnet ist. Es versteht sich, dass der Ort des aufgetretenen Fehler ebenso zweckmäßig mittels anderer bekannter Verfahren bestimmt werden könnte. Dabei ist besonders vorteilhaft, wenn der verwendete Prozessor zusätzlichen Möglichkeiten zur Fehlererkennung wie z.B. ECC (Error Correction Code) bietet.
  • Es wird eine zweite erfindungsgemäße Rechnereinheit mit einem Prozessor und einem Speicher, der ein ROM, in dem eine Firmware abgespeichert ist, und/oder ein RAM aufweist, wobei der Speicher eine Protokollierungsfunktion zur Protokollierung von erkannten bzw. festgestellten Speicherfehlern, insbesondere Fehlern im ROM und/oder RAM, aufweist, vorgeschlagen, wobei wenigstes zwei Protokollierungsfunktionen, insbesondere im ROM, vorgesehen sind. Bei dieser Ausführungsform stehen wenigstens zwei Protokollierungsfunktionen zur Verfügung. Damit ist es möglich, eine Speicherfehlerprotokollierung selbst dann erfolgreich auszuführen, wenn eine der Protokollierungsfunktionen selbst fehlerhaft ist. Es ist von Vorteil, wenn die Protokollierungsfunktionen so ausgebildet sind, dass sie vollständig im ROM liegen und auch während der Ausführung kein RAM benötigen. Es bietet sich beispielsweise an, Prozessorregister für variable Parameter zu verwenden. Werden für RAM- und ROM-Fehler unterschiedliche Protokollierungsfunktionen verwendet, kann die Verarbeitungsgeschwindigkeit weiter erhöht werden, wenn der Art des Fehlers (RAM, ROM) bereits in der Protokollierungsfunktion fest vorgegeben wird. Es kann zweckmäßig sein, eine zweite oder weitere Protokollierungsfunktionen während des Betriebs der Rechnereinheit in das RAM zu kopieren.
  • Zweckmäßigerweise verwendet wenigstens eine Protokollierungsfunktion der zweiten erfindungsgemäßen Rechnereinheit SPI (Serial Peripheral Interface) zur Kommunikation mit einem EEPROM. SPI ist ein Schnittstellenstandard für die Kommunikation mit einem EEPROM. Durch Verwendung dieses Standards kann die Größe der Protokollierungsfunktion klein gehalten und die Verarbeitungsgeschwindigkeit erhöht werden. Es versteht sich, dass auch andere Kommunikationsverfahren verwendet werden können, ohne den Rahmen der Erfindung zu verlassen.
  • In einer bevorzugten Ausgestaltung der erfinderischen Lösung sind die wenigstens zwei Protokollierungsfunktionen der erfindungsgemäßen Rechnereinheit gleichwirkend.
  • Darunter ist insbesondere zu verstehen, dass sie bei gleicher Eingabe eine gleiche oder gleichwertige Ausgabe liefern. Somit kann bei einem auftretenden Speicherfehler eine beliebige der Protokollierungsfunktionen verwendet werden.
  • Es ist besonders bevorzugt, wenn die zweite erfindungsgemäße Rechnereinheit genau zwei Protokollierungsfunktionen, wobei die erste am Anfang des Speicherbereichs, der von der Firmware eingenommen wird, abgelegt ist, und die zweite am Ende des Speicherbereichs, der von der Firmware eingenommen wird, abgelegt ist, aufweist. Die Verwendung von genau zwei Protokollierungsfunktionen stellt einen bevorzugten Ausgleich zwischen Sicherheits- und Speicherbedarfaspekten dar. Durch die große räumliche Trennung der beiden Protokollierungsfunktionen ist beabsichtigt, die Wahrscheinlichkeit einer gleichzeitigen Beschädigung beider Protokollierungsfunktionen zu minimieren. Beispielsweise können durch Mängel bei der Herstellung größere zusammenhängende Speicherbereiche schadhaft werden.
  • In einer bevorzugten Ausgestaltung führt die zweite erfindungsgemäße Rechnereinheit die Schritte des zweiten erfindungsgemäßen Verfahrens aus.
  • Es ist besonders bevorzugt, wenn die eine erfindungsgemäße Rechnereinheit in einem Kraftfahrzeug, insbesondere als Steuergerät oder Embedded System, verwendet wird. Es bietet sich zweckmäßigerweise an, sicherheitsrelevante Fahrzeugfunktionen zu steuern, wie z.B. Airbags, Antiblockiersysteme, elektronische Spurstabilisierungen, elektronische Traktionskontrollen, usw.
  • Der dem Fehlererkennungs- und Fehlerprotokollierungsverfahren und den entsprechenden Rechnereinheiten zugrundeliegende gemeinsame erfinderische Gedanke ist die Vervielfachung der Berechnungsmittel, nämlich der Prüfsummenberechnung und der Protokollierungsfunktion, um schneller und sicherer ein Ergebnis zu erhalten.
  • Ein erfindungsgemäßes Computerprogramm enthält Programmcodemittel, um eines der erfindungsgemäßen Verfahren durchzuführen, wenn das Computerprogramm auf einem Computer oder einer entsprechenden Rechnereinheit, insbesondere einer der erfindungsgemäßen Rechnereinheiten, ausgeführt wird.
  • Ein erfindungsgemäßes Computerprogrammprodukt beinhaltet Programmcodemittel, die auf einen computerlesbaren Datenträger gespeichert sind, um eines der erfindungsgemäßen Verfahren durchzuführen, wenn das Computerprogrammprodukt auf einen Computer oder auf einer entsprechenden Rechnereinheit, insbesondere einer der erfindungsgemäßen Rechnereinheiten, ausgeführt wird. Geeignete Datenträger sind insbesondere Disketten, Festplatten, Flash-Speicher, EEPROMs, CD-ROMs, 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.
  • Es versteht sich, dass die vorstehend genannten und die nachstehend noch zu erläuternden Merkmale nicht nur in der jeweils angegebenen Kombination, sondern auch in anderen Kombinationen oder in Alleinstellung verwendbar sind, ohne den Rahmen der vorliegenden Erfindung zu verlassen.
  • Die Erfindung ist anhand eines Ausführungsbeispiels in der Zeichnung schematisch dargestellt und wird im folgenden unter Bezugnahme auf die Zeichnung ausführlich beschrieben.
  • Figurenbeschreibung
  • 1a zeigt eine schematische Darstellung einer Prüfsummenberechnung im Stand der Technik;
  • 1b zeigt eine schematische Darstellung einer bevorzugten Ausführungsform einer Prüfsummenberechnung gemäß dem ersten erfindungsgemäßen Verfahren;
  • 2 zeigt ein Flussdiagramm einer bevorzugten Ausführungsform des ersten erfindungsgemäßen Verfahrens; und
  • 3 zeigt ein Flussdiagramm einer bevorzugten Ausführungsform des zweiten erfindungsgemäßen Verfahrens.
  • In 1a ist eine schematische Darstellung eines ROMs insgesamt mit 100 bezeichnet. Das ROM 100 weist einen Bereich 100' auf, in dem typischerweise ein Programmcode 101 abgespeichert ist. Der Programmcode 101 ist zum Betrieb der jeweiligen Rechnereinheit, beispielsweise eines Embedded Systems oder Steuergeräts im Kfz, notwendig und definiert die Funktionalität. Der Programmcode 101 wird im allgemeinen als Firmware bezeichnet. Die Entwicklung bzw. das Design der Firmware findet herkömmlicherweise auf Computern statt. Dort wird die Firmware erstellt, getestet und schließlich kompiliert. Die kompilierte Fassung stellt den auf der Rechnereinheit ausführbaren Programmcode 101 dar, der dann in das ROM 100 der Rechnereinheit übertragen wird und den betreffenden Bereich 100' definiert.
  • Im Stand der Technik wird von diesem kompilierten Programmcode 101 mittels bekannter Verfahren eine Prüfsumme 101' berechnet. Der Programmcode selbst enthält ebenfalls Funktionen zur Berechnung einer Prüfsumme. Bei der Beschreibung bzw. Programmierung des ROMs wird schließlich der kompilierte Programmcode 101 und die zugehörige Prüfsumme 101' in das ROM 100 abgespeichert. Der Bereich innerhalb des ROMs 100, der von der Prüfsumme 101' eingenommen wird, ist mit 100'' bezeichnet.
  • Während die Rechnereinheit in Betrieb ist, wird zyklisch eine Prüfsumme des Programmcodes 101 berechnet und mit der abgespeicherten Prüfsumme 101' verglichen. Stimmen diese Prüfsummen nicht überein, kann ein Speicherfehler im ROM festgestellt werden. Die Zeitspanne, die zum Feststellen eines Fehler benötigt wird, umfasst somit mindestens die Zeit, die notwendig ist, eine Prüfsumme des gesamten Programmcodes 101 zu berechnen.
  • In 1b ist eine schematische Darstellung eines ROMs 100 gezeigt, das zwei Bereich 110' und 110'' aufweist. Als Bereich 110' wird der Bereich bezeichnet, der Programmcode bzw. Firmware enthält, als Bereich 110'' wird der Bereich bezeichnet, der Prüfsummen enthält.
  • Ein Programmcode wird wie anhand 1a beschrieben erstellt und kompiliert. Anschließend wird der Programmcode in fünf logische Blöcke 111 bis 115 unterteilt. Die Anzahl der Blöcke sowie deren Größe ist prinzipiell frei für den Anwender nach seinen Anforderungen wählbar. Mittels bekannter Verfahren wird von jedem der logischen Blöcke 111 bis 115 eine Prüfsumme 111' bis 115' berechnet. Der Programmcode enthält wiederum selbst Funktionen, um eine Prüfsumme zur Laufzeit zu berechnen.
  • Bei der Beschreibung des ROMs werden der kompilierte Programmcode, der in die logischen Blöcke 111 bis 115 unterteilt ist, in den Bereich 110' und die berechneten Prüfsummen 111' bis 115' in den Bereich 110'' abgespeichert. Es sei erwähnt, dass sowohl die logischen Blöcke 111 bis 115 als auch die beiden Bereiche 110' und 110'' keine physikalischen Unterteilungen des ROMs darstellen müssen. Es handelt sich typischerweise um rein fiktive Unterteilungen.
  • Während die Rechnereinheit in Betrieb ist, wird zyklisch und der Reihe nach eine Prüfsumme eines logischen Blocks 111 bis 115 des Programmcodes berechnet und mit der zugehörigen abgespeicherten Prüfsumme 111' bis 115' verglichen. Stimmen zusammengehörige Prüfsummen nicht überein, kann ein Speicherfehler im ROM festgestellt werden. Die Zeitspanne, die zum Feststellen eines Fehlers benötigt wird, beträgt vorteilhaft nur mindestens die Zeit, die notwendig ist, eine Prüfsumme eines einzigen logischen Blocks 111, ..., 115 zu berechnen.
  • In Kombination der anhand 1b vorgestellten Ausführungsform des ersten erfindungsgemäßen Verfahrens und einer bevorzugten Ausführungsform des zweiten erfindungsgemäßen Verfahrens oder der zweiten erfindungsgemäßen Rechnereinheit wäre beispielsweise eine erste Protokollierungsfunktion im Bereich des logischen Blocks 111 und eine zweite Protokollierungsfunktion im Bereich des logischen Blocks 115 abgespeichert.
  • In 2 sind die Schritte einer bevorzugten Ausführungsform des ersten erfindungsgemäßen Verfahrens dargestellt. Im Schritt 201 werden Computerdaten, die typischerweise auf einem PC kompiliert wurden, in logische Blöcke unterteilt. Im Schritt 202 wird dann von jedem dieser logischen Blöcke eine Prüfsumme berechnet. Anschließend werden die Computerdaten und die berechneten Prüfsummen im Schritt 203 in ein ROM einer Rechnereinheit übertragen.
  • Im Verfahrensschritt 204 wird zur Laufzeit eine erste Prüfsumme eines ersten logischen Blocks berechnet. Die berechnete Prüfsumme wird im Schritt 205 mit der zugeordneten bzw. zugehörigen bereits im ROM abgespeicherten Prüfsumme verglichen. Stimmen diese Prüfsummen überein, wird davon ausgegangen, dass kein Speicherfehler innerhalb des betrachteten logischen Blocks vorhanden ist. Dann wird wiederum Schritt 204 ausgeführt, wobei ein nächster logischer Block betrachtet wird.
  • Wird im Schritt 205 hingegen ein Unterschied zwischen den zusammengehörenden Prüfsummen festgestellt, folgt Verfahrensschritt 206. Hier wird der betrachtete logische Block als fehlerhaft klassifiziert und ein Speicherfehler festgestellt.
  • In 3 sind die Verfahrensschritte einer bevorzugten Ausführungsform des zweiten erfindungsgemäßen Verfahrens mit 301 bis 304 bezeichnet. Es ist bevorzugt, wenn der Verfahrensschritt 301 nach dem Verfahrensschritt 206 aus 2 ausgeführt wird.
  • Im Schritt 301 wird die Art des fehlerhaften Speichers bestimmt. Dabei wird bei der beschriebenen Ausführungsform zwischen RAM und ROM unterschieden. Wird festgestellt, dass es sich bei dem betroffenen Speicher um RAM handelt, folgt Verfahrensschritt 302. Handelt es sich bei dem betroffenen Speicher um ROM, wird mit Schritt 303 fortgefahren.
  • Im Schritt 302 wird eine beliebige Protokollierungsfunktion ausgeführt. Da der Fehler im RAM aufgetreten ist, ist keine Protokollierungsfunktion fehlerhaft, so dass bevorzugt die erste vorhandene Protokollierungsfunktion ausgeführt wird.
  • Liegt die betroffene fehlerhafte Speicherstelle jedoch im ROM, kann eine Protokollierungsfunktion selbst betroffen sein. Daher wird im Schritt 303 festgestellt, wo der Ort des Speicherfehlers liegt. Liegt er außerhalb einer Protokollierungsfunktion, so wird mit Schritt 302 fortgefahren und eine beliebige Protokollierungsfunktion ausgeführt.
  • Liegt der Speicherfehler jedoch innerhalb einer Protokollierungsfunktion, wird im Verfahrensschritt 304 die andere, nicht betroffene, Protokollierungsfunktion ausgeführt. Es ist ebenso vorteilhaft, beispielsweise nur zu prüfen, ob eine erste standardmäßig auszuführende Protokollierungsfunktion betroffen ist, und nur eine zweite Protokollierungsfunktion auszuführen, falls die erste betroffen ist.
  • 100, 110
    ROM
    100', 110'
    Programmcodebereich
    100'', 110''
    Prüfsummenbereich
    101
    Programmcode
    101'
    Prüfsumme des Programmcodes
    111 bis 115
    logische Blöcke eines
    Programmcodes
    111' bis 115'
    Prüfsummen der logischen Blöcke
    eines Programmcodes
    201 bis 206; 301 bis 303
    Verfahrensschritte

Claims (15)

  1. Verfahren zur Erkennung von Fehlern in Computerdaten (101) in einem Speicher, insbesondere in einem ROM (100, 110), wobei eine Prüfsumme zur Laufzeit berechnet und mit einer abgespeicherten Prüfsumme (101', 111' bis 115') verglichen wird, dadurch gekennzeichnet, dass die Computerdaten (101) in wenigstens zwei logische Blöcke (111 bis 115) unterteilt sind und eine Prüfsumme für jeden logischen Block berechnet wird.
  2. Verfahren nach Anspruch 1, mit folgenden Schritten: a) Unterteilen der Computerdaten (101) in wenigstens zwei logische Blöcke (111 bis 115) (201), b) Berechnen einer Prüfsumme (111' bis 115') jedes logischen Blocks (111 bis 115) (202), c) Abspeichern der Computerdaten (101) und der berechneten Prüfsummen (111' bis 115') in einem ROM (110) (203), d) Berechnen einer ersten Prüfsumme eines ersten logischen Blocks (111 bis 115) zur Laufzeit (204), e) Vergleichen der ersten zur Laufzeit berechneten Prüfsumme mit einer ersten zugeordneten abgespeicherten Prüfsumme (111' bis 115') (205).
  3. Verfahren nach Anspruch 2, zusätzlich mit folgenden Schritten: f) Feststellen eines Speicherfehlers, wenn sich eine erste zur Laufzeit berechnete Prüfsumme von einer ersten zugeordneten abgespeicherten Prüfsumme (111' bis 115') unterscheidet (206), g) Wiederholen der Schritte d) bis f) für eine zweite Prüfsumme eines zweiten logischen Blocks (111 bis 115) und eine zweite zugeordnete abgespeicherte Prüfsumme (111' bis 115'), wenn sich die ersten Prüfsummen nicht unterscheiden, h) Wiederholen des Schrittes g) für etwaige weitere logische Blöcke (111 bis 115), wenn sich die entsprechenden Prüfsummen nicht unterscheiden.
  4. Rechnereinheit mit einem Prozessor und einem Speicher, der ein ROM (100, 110), in dem Computerdaten (101) abgespeichert sind, und/oder ein RAM aufweist, dadurch gekennzeichnet, dass die Rechnereinheit wenigstens einen der Schritte d) bis g) eines Verfahrens gemäß einem der Ansprüche 2 oder 3 ausführt.
  5. Verfahren zur Protokollierung von in einem ROM (100, 110) und/oder einem RAM festgestellten Speicherfehlern, wobei eine Protokollierungsfunktion (111, 115) ausgeführt wird, wobei wenigstens zwei Protokollierungsfunktion im ROM abgespeichert sind, mit folgenden Schritten: a) Feststellen der Art des fehlerhaften Speichers (301) b) Ausführen einer der wenigstens zwei Protokollierungsfunktion (111, 115), wenn der Fehler im RAM auftritt (302), c) Feststellen, ob eine Protokollierungsfunktion (111, 115) betroffen ist, wenn der Fehler im ROM (110) auftritt (303), d) Ausführen einer der wenigstens zwei Protokollierungsfunktionen (111, 115), wenn keine Protokollierungsfunktion betroffen ist (302), e) Ausführen einer zweiten (115) der wenigstens zwei Proto kollierungsfunktionen, wenn eine erste (111) Protokollierungsfunktion betroffen ist (304).
  6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass ein Speicherfehler durch ein Verfahren gemäß einem der Ansprüche 1 bis 3 festgestellt wird.
  7. Verfahren nach Anspruch 5 oder 6, dadurch gekennzeichnet, dass bei Verfahrensschritt c) (303) des Verfahrens gemäß Anspruch 5 der Ort des Speicherfehlers im ROM (110) durch ein Verfahren gemäß einem der Ansprüche 1 bis 3 festgestellt wird.
  8. Rechnereinheit mit einem Prozessor und einem Speicher, der ein ROM (100, 110), in dem eine Firmware abgespeichert ist, und/oder ein RAM aufweist, wobei der Speicher eine Protokollierungsfunktion (111, 115) zur Protokollierung von festgestellten Speicherfehlern, insbesondere Fehlern im ROM und/oder RAM, aufweist dadurch gekennzeichnet, dass wenigstes zwei Protokollierungsfunktionen (111, 115), insbesondere im ROM (110), vorgesehen sind.
  9. Rechnereinheit nach Anspruch 8, dadurch gekennzeichnet, dass wenigstens eine Protokollierungsfunktion (111, 115) SPI zur Kommunikation mit einem EEPROM verwendet.
  10. Rechnereinheit nach Anspruch 8 oder 9, dadurch gekennzeichnet, dass die wenigstens zwei Protokollierungsfunktion (111, 115) gleichwirkend sind.
  11. Rechnereinheit nach einem der Ansprüche 8 bis 10, gekennzeichnet durch genau zwei Protokollierungsfunktion (111, 115), wobei die erste (111) am Anfang des Speicherbereichs (110'), der von der Firmware eingenommen wird, abgelegt ist, und die zweite (115) am Ende des Speicherbereichs, der von der Firmware eingenommen wird, abgelegt ist.
  12. Rechnereinheit nach einem der Ansprüche 8 bis 11, die die Schritte eines Verfahrens nach einem der Ansprüche 5 bis 7 ausführt.
  13. Rechnereinheit nach einem der Ansprüche 4 oder 8 bis 12 zur Verwendung in einem Kraftfahrzeug, insbesondere als Steuergerät.
  14. Computerprogramm mit Programmcodemitteln, um die Schritte eines Verfahrens gemäß einem der Ansprüche 1 bis 3 oder 5 bis 7 durchzuführen, wenn das Computerprogramm auf einem Computer oder einer entsprechenden Rechnereinheit, insbesondere gemäß Anspruch 4 bzw. 8, ausgeführt wird.
  15. Computerprogrammprodukt mit Programmcodemitteln, die auf einem computerlesbaren Datenträger gespeichert sind, um die Schritte eines Verfahrens nach einem der Ansprüche 1 bis 3 oder 5 bis 7 durchzuführen, wenn das Computerprogrammprodukt auf einem Computer oder auf einer entsprechenden Rechnereinheit, insbesondere gemäß Anspruch 4 bzw. 8, ausgeführt wird.
DE102005016801.9A 2005-04-12 2005-04-12 Verfahren und Rechnereinheit zur Fehlererkennung und Fehlerprotokollierung in einem Speicher Expired - Fee Related DE102005016801B4 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102005016801.9A DE102005016801B4 (de) 2005-04-12 2005-04-12 Verfahren und Rechnereinheit zur Fehlererkennung und Fehlerprotokollierung in einem Speicher
US11/887,664 US8196026B2 (en) 2005-04-12 2006-04-12 Method and computer unit for error detection and logging in a memory
PCT/EP2006/061539 WO2006108849A1 (de) 2005-04-12 2006-04-12 Verfahren und rechnereinheit zur fehlererkennung und fehlerprotokollierung in einem speicher

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102005016801.9A DE102005016801B4 (de) 2005-04-12 2005-04-12 Verfahren und Rechnereinheit zur Fehlererkennung und Fehlerprotokollierung in einem Speicher

Publications (2)

Publication Number Publication Date
DE102005016801A1 true DE102005016801A1 (de) 2006-10-19
DE102005016801B4 DE102005016801B4 (de) 2018-04-26

Family

ID=36716660

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102005016801.9A Expired - Fee Related DE102005016801B4 (de) 2005-04-12 2005-04-12 Verfahren und Rechnereinheit zur Fehlererkennung und Fehlerprotokollierung in einem Speicher

Country Status (3)

Country Link
US (1) US8196026B2 (de)
DE (1) DE102005016801B4 (de)
WO (1) WO2006108849A1 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8650470B2 (en) 2003-03-20 2014-02-11 Arm Limited Error recovery within integrated circuit
DE102007010569A1 (de) * 2007-02-23 2008-10-02 Siemens Ag Verfahren zum Prüfen einer Software, insbesondere eines Auslösers eines Niederspannungsleistungsschalters
US8843808B2 (en) 2011-06-30 2014-09-23 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method to flag a source of data corruption in a storage subsystem using persistent source identifier bits
DE102012020442B4 (de) * 2012-10-18 2020-03-05 Robert Bosch Gmbh Verfahren zum Überprüfen von Daten mittels wenigstens zweier Prüfsummen
US10831595B1 (en) 2019-05-31 2020-11-10 International Business Machines Corporation Performing error detection during deterministic program execution

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3567916A (en) * 1969-01-22 1971-03-02 Us Army Apparatus for parity checking a binary register
JPS54117641A (en) 1978-03-06 1979-09-12 Fujitsu Fanuc Ltd Memory inspecting system
JPS61141056A (ja) * 1984-12-14 1986-06-28 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 揮発性メモリの間欠エラ−検出方法
US4727544A (en) * 1986-06-05 1988-02-23 Bally Manufacturing Corporation Memory integrity checking system for a gaming device
JP2514954B2 (ja) * 1987-03-13 1996-07-10 三菱電機株式会社 Icカ−ド
US5797023A (en) 1994-10-17 1998-08-18 Digital Equipment Corporation Method and apparatus for fault tolerant BIOS addressing
DE19918620A1 (de) * 1999-04-23 2000-10-26 Giesecke & Devrient Gmbh Sicherung eines Rechnerkerns gegen äußere Manipulationen
US7103684B2 (en) * 2003-12-02 2006-09-05 Super Talent Electronics, Inc. Single-chip USB controller reading power-on boot code from integrated flash memory for user storage
US6957328B2 (en) 2001-01-05 2005-10-18 International Business Machines Corporation System and method using a first counter and a second counter to select a code image during a reboot routine
DE10113317A1 (de) 2001-03-20 2002-09-26 Conti Temic Microelectronic Verfahren zum Betrieb eines von einem Prozessor gesteuerten Systems
US7409623B2 (en) * 2004-11-04 2008-08-05 Sigmatel, Inc. System and method of reading non-volatile computer memory

Also Published As

Publication number Publication date
US8196026B2 (en) 2012-06-05
DE102005016801B4 (de) 2018-04-26
US20090055718A1 (en) 2009-02-26
WO2006108849A1 (de) 2006-10-19

Similar Documents

Publication Publication Date Title
DE10341786B4 (de) Elektronische Fahrzeugsteuervorrichtung
DE102011108933A1 (de) Sichere Speicherung durch interneBetriebssicherstellung
EP2100308B1 (de) Verfahren und halbleiterspeicher mit einer einrichtung zur erkennung von adressierungsfehlern
DE102005016801B4 (de) Verfahren und Rechnereinheit zur Fehlererkennung und Fehlerprotokollierung in einem Speicher
EP3709166A1 (de) Verfahren und system zur sicheren signalmanipulation für den test integrierter sicherheitsfunktionalitäten
DE102015210651B4 (de) Schaltung und Verfahren zum Testen einer Fehlerkorrektur-Fähigkeit
EP1588380B1 (de) Verfahren zur erkennung und/oder korrektur von speicherzugriffsfehlern und elektronische schaltungsanordnung zur durchführung des verfahrens
DE102018112584A1 (de) Konfigurierbare Sensorvorrichtung und Verfahren zur Überwachung ihrer Konfiguration
EP3378006B1 (de) Verfahren zum laden eines sicheren speicherabbilds eines mikrocontrollers und anordnung mit einem mikrocontroller
EP1359485B1 (de) Steuer- und Überwachungssystem
DE102005060901A1 (de) Verfahren zur Erkennung einer Versorgungsunterbrechung in einem Datenspeicher und zur Wiederherstellung des Datenspeichers
WO2022042950A1 (de) VORRICHTUNG ZUR ERFASSUNG UND VERARBEITUNG EINER MESSGRÖßE EINES SENSORS IN EINEM KRAFTFAHRZEUG
WO2004070487A2 (de) Verfahren und vorrichtung zur überwachung einer elektronischen steuerung
DE102005040917A1 (de) Datenverarbeitungssystem und Betriebsverfahren dafür
DE102018219700B4 (de) Steuervorrichtung
DE102017206559A1 (de) Steuergerät und Betriebsverfahren hierfür
DE10220811B4 (de) Verfahren und Vorrichtung zur Überwachung der Funktionsweise eines Systems
DE102017115057B4 (de) Verfahren zur Überprüfung sicherheitsrelevanter Register- oder Speicherzellen auf Stuck-At-Fehler im Betrieb durch Vergleich zweier Schreibvorgänge mit unterschiedlichem Inversionsstatus
EP1246066A2 (de) Verfahren zum Betrieb eines von einem Prozessor gesteuerten Systems
DE102017115058B4 (de) Verfahren zur Überprüfung sicherheitsrelevanter Register- oder Speicherzellen auf Stuck-At-Fehler im Betrieb und Herbeiführung der Ausfallsicherheit
EP4355633A1 (de) Automatisches erkennen und korrigieren von speicherfehlern in einem sicheren mehrkanaligen rechner
DE102017115056B3 (de) Verfahren zur Überprüfung sicherheitsrelevanter Register- oder Speicherzellen auf Stuck-At-Fehler im Betrieb
EP1246062B1 (de) Verfahren zum Betrieb eines von einem Prozessor gesteuerten Systems
DE10148032A1 (de) Verfahren zum Überprüfen eines Rechnerkerns eines Mikroprozessors oder eines Mikrocontrollers
DE10226876B4 (de) Vorrichtung und Verfahren zur Überprüfung eines Bussystems

Legal Events

Date Code Title Description
R012 Request for examination validly filed

Effective date: 20120228

R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R084 Declaration of willingness to licence
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee