DE102005016801A1 - Verfahren und Rechnereinheit zur Fehlererkennung und Fehlerprotokollierung in einem Speicher - Google Patents
Verfahren und Rechnereinheit zur Fehlererkennung und Fehlerprotokollierung in einem Speicher Download PDFInfo
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 65
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000001514 detection method Methods 0.000 title abstract description 14
- 230000006870 function Effects 0.000 claims abstract description 54
- 238000004590 computer program Methods 0.000 claims description 10
- GNFTZDOKVXKIBK-UHFFFAOYSA-N 3-(2-methoxyethoxy)benzohydrazide Chemical compound COCCOC1=CC=CC(C(=O)NN)=C1 GNFTZDOKVXKIBK-UHFFFAOYSA-N 0.000 claims 1
- 238000004364 calculation method Methods 0.000 description 7
- 230000002950 deficient Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 238000007600 charging Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000003381 stabilizer Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding 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 mit100 bezeichnet. Das ROM100 weist einen Bereich100' auf, in dem typischerweise ein Programmcode101 abgespeichert ist. Der Programmcode101 ist zum Betrieb der jeweiligen Rechnereinheit, beispielsweise eines Embedded Systems oder Steuergeräts im Kfz, notwendig und definiert die Funktionalität. Der Programmcode101 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 Programmcode101 dar, der dann in das ROM100 der Rechnereinheit übertragen wird und den betreffenden Bereich100' definiert. - Im Stand der Technik wird von diesem kompilierten Programmcode
101 mittels bekannter Verfahren eine Prüfsumme101' 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 Programmcode101 und die zugehörige Prüfsumme101' in das ROM100 abgespeichert. Der Bereich innerhalb des ROMs100 , der von der Prüfsumme101' eingenommen wird, ist mit100'' bezeichnet. - Während die Rechnereinheit in Betrieb ist, wird zyklisch eine Prüfsumme des Programmcodes
101 berechnet und mit der abgespeicherten Prüfsumme101' 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 Programmcodes101 zu berechnen. - In
1b ist eine schematische Darstellung eines ROMs100 gezeigt, das zwei Bereich110' und110'' aufweist. Als Bereich110' wird der Bereich bezeichnet, der Programmcode bzw. Firmware enthält, als Bereich110'' 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öcke111 bis115 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öcke111 bis115 eine Prüfsumme111' bis115' 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 bis115 unterteilt ist, in den Bereich110' und die berechneten Prüfsummen111' bis115' in den Bereich110'' abgespeichert. Es sei erwähnt, dass sowohl die logischen Blöcke111 bis115 als auch die beiden Bereiche110' und110'' 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 bis115 des Programmcodes berechnet und mit der zugehörigen abgespeicherten Prüfsumme111' bis115' 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 Blocks111 , ...,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 Blocks111 und eine zweite Protokollierungsfunktion im Bereich des logischen Blocks115 abgespeichert. - In
2 sind die Schritte einer bevorzugten Ausführungsform des ersten erfindungsgemäßen Verfahrens dargestellt. Im Schritt201 werden Computerdaten, die typischerweise auf einem PC kompiliert wurden, in logische Blöcke unterteilt. Im Schritt202 wird dann von jedem dieser logischen Blöcke eine Prüfsumme berechnet. Anschließend werden die Computerdaten und die berechneten Prüfsummen im Schritt203 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 Schritt205 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 Schritt204 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 Verfahrensschritt206 . 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 mit301 bis304 bezeichnet. Es ist bevorzugt, wenn der Verfahrensschritt301 nach dem Verfahrensschritt206 aus2 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 Verfahrensschritt302 . Handelt es sich bei dem betroffenen Speicher um ROM, wird mit Schritt303 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 Schritt302 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)
- 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' bis115' ) verglichen wird, dadurch gekennzeichnet, dass die Computerdaten (101 ) in wenigstens zwei logische Blöcke (111 bis115 ) unterteilt sind und eine Prüfsumme für jeden logischen Block berechnet wird. - Verfahren nach Anspruch 1, mit folgenden Schritten: a) Unterteilen der Computerdaten (
101 ) in wenigstens zwei logische Blöcke (111 bis115 ) (201 ), b) Berechnen einer Prüfsumme (111' bis115' ) jedes logischen Blocks (111 bis115 ) (202 ), c) Abspeichern der Computerdaten (101 ) und der berechneten Prüfsummen (111' bis115' ) in einem ROM (110 ) (203 ), d) Berechnen einer ersten Prüfsumme eines ersten logischen Blocks (111 bis115 ) zur Laufzeit (204 ), e) Vergleichen der ersten zur Laufzeit berechneten Prüfsumme mit einer ersten zugeordneten abgespeicherten Prüfsumme (111' bis115' ) (205 ). - 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' bis115' ) unterscheidet (206 ), g) Wiederholen der Schritte d) bis f) für eine zweite Prüfsumme eines zweiten logischen Blocks (111 bis115 ) und eine zweite zugeordnete abgespeicherte Prüfsumme (111' bis115' ), wenn sich die ersten Prüfsummen nicht unterscheiden, h) Wiederholen des Schrittes g) für etwaige weitere logische Blöcke (111 bis115 ), wenn sich die entsprechenden Prüfsummen nicht unterscheiden. - 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. - 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 ). - Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass ein Speicherfehler durch ein Verfahren gemäß einem der Ansprüche 1 bis 3 festgestellt wird.
- 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. - 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. - Rechnereinheit nach Anspruch 8, dadurch gekennzeichnet, dass wenigstens eine Protokollierungsfunktion (
111 ,115 ) SPI zur Kommunikation mit einem EEPROM verwendet. - Rechnereinheit nach Anspruch 8 oder 9, dadurch gekennzeichnet, dass die wenigstens zwei Protokollierungsfunktion (
111 ,115 ) gleichwirkend sind. - 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. - Rechnereinheit nach einem der Ansprüche 8 bis 11, die die Schritte eines Verfahrens nach einem der Ansprüche 5 bis 7 ausführt.
- Rechnereinheit nach einem der Ansprüche 4 oder 8 bis 12 zur Verwendung in einem Kraftfahrzeug, insbesondere als Steuergerät.
- 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.
- 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.
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)
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)
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 |
-
2005
- 2005-04-12 DE DE102005016801.9A patent/DE102005016801B4/de not_active Expired - Fee Related
-
2006
- 2006-04-12 US US11/887,664 patent/US8196026B2/en active Active
- 2006-04-12 WO PCT/EP2006/061539 patent/WO2006108849A1/de active Application Filing
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 |