DE102010031282B4 - Verfahren zum Überwachen eines Datenspeichers - Google Patents

Verfahren zum Überwachen eines Datenspeichers Download PDF

Info

Publication number
DE102010031282B4
DE102010031282B4 DE102010031282.7A DE102010031282A DE102010031282B4 DE 102010031282 B4 DE102010031282 B4 DE 102010031282B4 DE 102010031282 A DE102010031282 A DE 102010031282A DE 102010031282 B4 DE102010031282 B4 DE 102010031282B4
Authority
DE
Germany
Prior art keywords
memory
data
bit
errors
error
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.)
Active
Application number
DE102010031282.7A
Other languages
English (en)
Other versions
DE102010031282A1 (de
Inventor
Bernd Mueller
Carsten Gebauer
Dieter Thoss
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 DE102010031282.7A priority Critical patent/DE102010031282B4/de
Priority to US13/809,764 priority patent/US9170875B2/en
Priority to KR1020137000864A priority patent/KR101805234B1/ko
Priority to CN201180034430.XA priority patent/CN102971714B/zh
Priority to PCT/EP2011/060700 priority patent/WO2012007266A1/de
Publication of DE102010031282A1 publication Critical patent/DE102010031282A1/de
Application granted granted Critical
Publication of DE102010031282B4 publication Critical patent/DE102010031282B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

Verfahren zum Überwachen eines Datenspeichers (10), bei dem mittels eines Fehlererkennungsverfahrens in Speicherzeilen (33) des Datenspeichers (10) gespeicherte fehlerhafte Datenwörter (24) erkannt und/oder korrigiert werden, wobei eine Adresse (30) des Datenspeichers (10), unter welcher ein durch das Fehlererkennungsverfahren als fehlerhaft bewertetes Datenwort (24) abgespeichert ist, in einen Hilfsspeicher (14) geschrieben und einem Prüfprogramm (18) zur Verfügung gestellt wird,dadurch gekennzeichnet, dass unterschieden wird zwischen erstens richtigkorrigierbaren Fehlern, zweitens falsch korrigierten oder falsch erkannten Mehrbitfehlern und/oder drittens flüchtigen Fehlern oder dauerhaften Defekten.

Description

  • Stand der Technik
  • Die Erfindung betrifft ein Verfahren zum Überwachen eines Datenspeichers bei dem mittels eines Fehlererkennungsverfahrens im Datenspeicher gespeicherte fehlerhafte Datenwörter erkannt und/oder korrigiert werden.
  • Die Erfindung betrifft ferner ein Prüfprogramm zur Durchführung des Verfahrens, ein das Prüfprogramm enthaltendes Speichermedium, und einen Hilfsspeicher.
  • US 2002 / 0 016 942 A1 betrifft ein Verfahren gemäß dem Oberbegriff von Anspruch 1. US 2006 / 0 282 755 A1 betrifft einen Speicher mit Fehlerregistern, die für die Speicherung von Adressen von fehlerhaften Speicherfeldplätzen konfiguriert sind. Die fehlerhaften Speicherfeldplätze werden von einer Paritätserzeugungs- und Fehlerprüfungsschaltung beim Eintritt in eine Selbstauffrischung erkannt, um die in den fehlerhaften Speicherfeldplätzen gespeicherten Daten beim Verlassen der Selbstauffrischung zu korrigieren. Moderne Mikrocontroller benötigen Datenspeicher im Umfang von mehreren hundert Kilobytes, beispielsweise für statische Datenspeicher (RAM, „random access memory“), beziehungsweise mehrere Megabytes, beispielsweise zur dauerhaften Speicherung von Programmen in so genannten FLASH-Speichern. Entsprechend dem großen Speichervolumen oder dessen technischer Realisierung sind Datenfehler vergleichsweise häufig oder zumindest wahrscheinlich. Grundsätzlich gibt es zwei Fehlererscheinungen: Erstens sind es dauerhafte Fehler, bei denen auch wiederholte Schreib- und Lesezyklen keine Verbesserung bringen. Zweitens können in RAM-Speichern beispielsweise aufgrund von Alpha-Strahlung einzelne und nach einem Schreib-Lese-Zyklus wieder verschwindende Datenfehler auftreten.
  • Zur Verbesserung der Datensicherheit werden daher häufig fehlersichernde Verfahren (ECC, „error correction code“) verwendet. Beispielsweise können Ein-Bit-Fehler (Einbitfehler) immer korrigiert werden, Zweibitfehler können immer erkannt werden, und Mehrbitfehler können meistens - jedoch nicht immer - erkannt werden. Das ECC-Verfahren bewertet jedoch manche Datenwörter mit mehrfachen Fehlern gegebenenfalls als ein vom ursprünglichen Inhalt verschiedenes Datenwort mit einem Bitfehler und korrigiert diese entsprechend falsch.
  • Eine Anwendung eines beispielhaften ECC-Verfahrens auf zufällig erzeugte Datenwörter hat gezeigt, dass dieses ECC-Verfahren beispielsweise 28 Prozent einer Folge von Datenwörtern als gültige Datenwörter mit einem Einzelfehler bewertet, und die übrigen 72 Prozent der Datenwörter - in Bezug auf eine jeweilige Bildungsvorschrift des ECC-Verfahrens - als ungültig bewertet. Bei sicherheitskritischen Anwendungen sind die Anforderungen durch internationale Normen jedoch sehr hoch. Beispielsweise fordert die Norm ISO 26262, ASIL-D, dass mehr als 99 Prozent solcher zufallserzeugten Datenwörter als ungültig erkannt werden müssen.
  • Erweiterte Maßnahmen nach dem Stand der Technik sehen daher beispielsweise vor, eine Anzahl von den Datenwörtern zugefügten Prüfbits (so genannte redundante Bits) zu erhöhen, um die Korrektur oder Erkennung von Datenfehlern auch bei Mehrbitfehlern zu verbessern. Dies kostet einen zusätzlichen Aufwand an Speicherelementen des Datenspeichers und verteuert diesen entsprechend.
  • Weiterhin kann das ECC-Verfahren zweistufig ausgeführt werden, indem nacheinander eine so genannte innere Kodierung (ECC) und eine äußere Kodierung (EDC, CRC) auf die Datenwörter angewendet werden. Doch ist auch diese Methode aufwändig und teuer.
  • Offenbarung der Erfindung
  • Die Erfindung schlägt eine Verbesserung der vorgenannten Verfahren dadurch vor, dass eine oder mehrere Adressen eines Datenspeichers, unter welchen jeweils ein durch ein Fehlererkennungsverfahren als fehlerhaft bewertetes Datenwort abgespeichert ist, in einen Hilfsspeicher geschrieben und einem Prüfprogramm zur Verfügung gestellt werden. Nachfolgend wird als Fehlererkennungsverfahren auch ein Verfahren verstanden, welches Fehler korrigiert (sog. Fehlerkorrekturverfahren). Es wird unterschieden zwischen erstens richtigkorrigierbaren Fehlern, zweitens falsch korrigierten oder falsch erkannten Mehrbitfehlern und/oder drittens flüchtigen Fehlern oder dauerhaften Defekten. Insbesondere erfolgt diese Unterscheidung erfindungsgemäß vorzugsweise durch rechnergestützte Prozeduren, also basierend auf Software. Unter „richtig korrigierbaren Fehlern“ werden jedenfalls ausgehend von übliche ECC-Größen Einbitfehler verstanden. Jedoch können in Abhängigkeit von den eingesetzten technischen Mitteln auch Mehrbitfehler darunter verstanden werden. Für diese Unterscheidungen ist daher kein zusätzlicher Aufwand an elektronischen Schaltungen erforderlich, wobei das Verfahren flexibel arbeiten kann und individuell anpassbar ist.
  • Das erfindungsgemäße Verfahren hat den Vorteil, dass die Datenwörter eines Datenspeichers besonders gut gegen Fehler und/oder Defekte geschützt werden können, ohne dass der Datenspeicher vergrößert werden muss oder mehrstufige Fehlererkennungsverfahren angewendet werden müssen.
  • Die Erfindung geht von der Überlegung aus, dass heutige Datenspeicher eine sehr große Anzahl von Datenwörtern speichern können, wobei gleichzeitig die Anfälligkeit für flüchtige Fehler oder dauerhafte Defekte physikalisch bedingt steigt. Insbesondere berücksichtigt die Erfindung, dass flüchtige Fehler bzw. dauerhafte Defekte in Datenspeichern häufig nur einzelne oder wenige Speicherzeilen bzw. die darin abgespeicherten Datenwörter betreffen. Damit erweisen sich übliche Vorkehrungen zur Verbesserung der Datensicherheit insofern als nicht angepasst, wenn diese einen zur Größe des Datenspeichers proportionalen Aufwand erfordern.
  • Erfindungsgemäß werden daher solche Adressen des Datenspeichers, unter denen ein durch ein Fehlererkennungsverfahren, also beispielsweise ein ECC-Verfahren, als fehlerhaft bewertetes Datenwort abgespeichert ist, in einen Hilfsspeicher geschrieben und somit gesondert behandelt. Dadurch kann der Aufwand insgesamt vergleichsweise klein gehalten werden. Die in dem Hilfsspeicher gespeicherten Informationen werden vorteilhafterweise einem Prüfprogramm zur Verfügung gestellt und beispielsweise regelmäßig von dem Prüfprogramm untersucht. Daraus werden Maßnahmen zur Erhöhung der Datensicherheit des Datenspeichers abgeleitet, wie weiter unten anhand eines möglichen Ausführungsbeispiels beschrieben ist.
  • Zur Begriffserklärung sei Folgendes angemerkt: Der Datenspeicher wird über „Adressen“ angesteuert, die jeweils auf eine sogenannte Speicherzeile des Datenspeichers verweisen. Jede Speicherzeile des Datenspeichers umfasst mehrere (physikalische) sogenannte Speicherstellen, in welcher jeweils eine Einbit-Information, also ein einzelnes Datenbit, abgespeichert ist. Die Gesamtheit der in einer Speicherzeile abgespeicherten Datenbits wird als Datenwort bezeichnet. In den Speicherzeilen bzw. Speicherstellen können „Fehler“ auftreten, die entweder „flüchtige Fehler“ oder „dauerhafte Defekte“ sind. Der Hilfsspeicher speichert die Adressen in einer Anzahl N von „Adressregistern“, wobei zu jedem Adressregister eine weitere Information gespeichert wird, welche beispielsweise ein „Beleg-Bit“ umfasst. Unter „Daten“ werden beliebige Informationen verstanden, die in Datenspeichern gespeichert werden können.
  • Gemäß einer vorteilhaften Ausführungsform ist vorgesehen, dass das Fehlererkennungsverfahren im Wesentlichen mittels einer dem Datenspeicher zugeordneten elektronischen Schaltung durchgeführt wird. Ein solches Fehlererkennungsverfahren ist beispielsweise als so genanntes „Error Correction Coding“ (ECC) ausgeführt. Dies kann vorteilhaft mittels der elektronischen Schaltung ausgeführt werden, durch welche die in den Datenspeicher zu schreibenden Daten um so genannte redundante Bits ergänzt werden, die bei einem späteren Lesen mit erfasst und ausgewertet werden, wodurch bestimmte Fehler oder Fehlermuster erkannt und/oder korrigiert werden können. Dadurch können gegebenenfalls Rechenzeit gespart und Kosten gesenkt werden.
  • Eine Ausgestaltung des Verfahrens sieht vor, dass nur solche Adressen in den Hilfsspeicher geschrieben werden, deren Datenwörter durch das Fehlererkennungsverfahren als mit einem Einbitfehler behaftet bewertet wurden. Einbitfehler sind in besonderer Weise charakteristisch sowohl für das Auftreten flüchtiger Fehler - also solcher Fehler, die vorübergehend nur einen einzelnen Schreib- und Lesevorgang betreffen - als auch für dauerhafte Defekte von Speicherstellen des Datenspeichers. Weiter ist es für Einbitfehler möglich, nachgeordnete Systemmaßnahmen zu verwenden, um auf Systemebene Sicherheit und Zuverlässigkeit zu gewährleisten.
  • Die Verwaltung des Hilfsspeichers wird vereinfacht, wenn für jede in dem Hilfsspeicher abgespeicherte Adresse angezeigt wird, ob diese Adresse gültig ist. Beispielsweise kann durch ein für jede Adresse mit abgespeichertes „Beleg-Bit“ auf einfache Weise ein belegtes Adressregister, welches somit eine „gültige“ Adresse enthält, von einem nicht belegten, also leeren Adressregister unterschieden werden. Damit kann der Hilfsspeicher besonders effizient genutzt werden. Bei der Initialisierung ist es deshalb vorteilhaft, wenn diese Beleg-Bits auf ungültig gesetzt sind.
  • Weiterhin ist vorgesehen, dass bei Erkennen eines fehlerhaften Datenworts durch das Fehlererkennungsverfahren zunächst die gültigen Adressen des Hilfsspeichers daraufhin untersucht werden, ob die Adresse des fehlerhaften Datenworts bereits abgespeichert ist. Ist dies der Fall, so wird der Inhalt des Hilfsspeichers nicht verändert. Ist dagegen die Adresse des fehlerhaften Datenworts nicht in dem Hilfsspeicher abgespeichert, so erfolgt die Abspeicherung in ein leeres Adressregister, wobei das zugehörige Beleg-Bit gesetzt wird.
  • Insbesondere ist von dem Verfahren vorgesehen, dass das Datenwort, dessen Adresse in dem Hilfsspeicher gespeichert ist, durch das Prüfprogramm daraufhin untersucht wird, ob das Datenwort einen Einbitfehler oder einen Mehrbitfehler aufweist, und/oder ob die Speicherzeile des Datenwortes einen Defekt aufweist, der einem Einbitfehler oder einem Mehrbitfehler entspricht, und/oder ob ein Fehler der Speicherzeile des Datenwortes vorübergehend oder dauerhaft auftritt, und/oder welche Speicherstellen innerhalb der Speicherzeile jeweils betroffen sind. Damit kann das Datenwort beziehungsweise die Speicherzeile und die darin enthaltenen Speicherstellen besonders gründlich untersucht, bewertet und gegebenenfalls korrigiert werden. Die Einzelheiten hierzu sind in den folgenden Abschnitten anhand eines Ausführungsbeispiels der Erfindung näher beschrieben.
  • Insbesondere kann vorgesehen sein, bei einem erkannten flüchtigen Fehler die zugehörige Adresse in dem Adressregister des Hilfsspeichers zu löschen bzw. das zugehörige Beleg-Bit zurückzusetzen. Möglich ist es außerdem, ganz auf die Verwendung von Beleg-Bits zu verzichten, sofern nicht belegte Adressregister vollständig mit binären Nullen gefüllt werden.
  • Das Verfahren kann abhängig von einer Bauart des Datenspeichers differenziert angewendet werden, wenn das Prüfprogramm bei einem flüchtigen Speicher einen auf zu erwartende Fehlermechanismen abgestimmten Schreib-Lese-Test durchführt, und bei einem nichtflüchtigen Speicher einen Fehlertest mittels einer Prüfsumme einer CRC-Kodierung durchführt. Beispielsweise kann die Unterscheidung zwischen Einbitfehlern und Mehrbitfehlern bei flüchtigen Speichern vorteilhaft mittels eines auf jeweils zu erwartende Fehlermuster angepassten Schreib-Lese-Tests erfolgen. Bei nicht flüchtigen Speichern kann dies mittels eines CRC-Prüfsummenverfahrens „Cyclic Redundancy Check“, also durch eine zyklische Redundanzprüfung über einen größeren Datenblock, erfolgen.
  • Ergänzend ist vorgesehen, dass Grenzwerte vorgegeben werden für eine zulässige Anzahl von Einbitfehlern und/oder Mehrbitfehlern und/oder Einbitdefekten und/oder Mehrbitdefekten, und dass bei einem Überschreiten mindestens eines Grenzwerts eine Reaktion der Speicherverwaltung erfolgt. Dadurch kann das Verfahren auf jeweilige Anforderungen einfach angepasst werden, beispielsweise in Bezug auf die Datensicherheit einerseits und die Verfügbarkeit des Datenspeichers andererseits. Beispielsweise kann schon bei einem Einbitdefekt und/oder einzelnen Mehrbitfehlern oder Mehrbitdefekten - wobei Mehrbitfehler oder Mehrbitdefekte gegebenenfalls nicht korrigiert werden - eine Reaktion der Speicherverwaltung erfolgen, welche nachstehend näher erläutert wird.
  • Das Verfahren ist besonders nützlich, wenn die Reaktion der Speicherverwaltung mindestens eine der folgenden Maßnahmen umfasst:
    • - Deaktivieren einer defekten Speicherzeile und/oder Zuweisen einer Ersatz-Speicherzeile;
    • - Deaktivieren eines defekten Speicherzeilenbereichs und/oder Zuweisen eines Ersatz-Speicherzeilenbereichs;
    • - Erzeugen einer Meldung, eines Alarms und/oder eines Fehlerbits;
    • - Überführen des Datenspeichers und/oder eines dem Datenspeicher übergeordneten Systems in einen als sicher bewerteten Zustand.
  • Damit können einzelne oder mehrere als defekt erkannte Speicherzeilen deaktiviert werden und Ersatz-Speicherzeilen oder sogar Ersatz-Speicherzeilenbereiche zugewiesen werden. Hierzu sind geeignete Methoden vorbekannt. Weiterhin kann auch eine Meldung oder ein Alarm erzeugt werden, was beispielsweise in sicherheitsempfindlichen Systemen, wie etwa in Kraftfahrzeugen, von Bedeutung ist. Bedarfsweise kann auch der Datenspeicher oder das übergeordnete System oder ein Teil-System in einen passenden und als sicher bewerteten Zustand überführt werden.
  • Unabhängig von der Funktion des Prüfprogramms kann alternativ oder ergänzend mittels eines Überlaufsignals des Hilfsspeichers der Datenspeicher und/oder das übergeordnete System in den als sicher bewerteten Zustand überführt werden.
  • Erfindungsgemäß ist weiterhin vorgesehen, dass der Inhalt des Hilfsspeichers vor einem Abschalten des Datenspeichers bzw. eines dem Datenspeicher übergeordneten Systems in einem nicht-flüchtigen Speicher gesichert und nach einem Einschalten daraus wieder rekonstruiert werden kann. Damit bleibt die Fehler-Historie eines vorangegangenen Betriebs erhalten und kann nach dem folgenden Einschalten vorteilhaft wieder genutzt werden, etwa um besonders häufig lokalisierte Fehler oder Defekte schnell zu erkennen und zu beseitigen oder zu umgehen.
  • Eine Ergänzung des Verfahrens besteht darin, dass flüchtige Fehler und/oder dauerhafte Defekte gezählt und/oder statistisch bewertet werden. Damit kann das Prüfprogramm erweiterte und zur Beurteilung der Brauchbarkeit des Datenspeichers ergänzende Operationen durchführen, zu welchen eine herkömmliche Schaltung zur Fehlererkennung nicht in der Lage ist.
  • Ergänzend dazu ist vorgesehen, dass ein Ergebnis der Zählung und/oder der statistischen Bewertung an einen Hersteller des Datenspeichers oder des übergeordneten Systems übermittelt wird. Diese Übermittlung kann mittels fernwirkender Diagnosesysteme - wie sie technisch zumindest in Vorbereitung sind - erfolgen, und beispielsweise dem Hersteller des Kraftfahrzeugs und/oder dem Hersteller des Datenspeichers frühzeitige Informationen zu möglichen beginnenden Problemen übermitteln.
  • Das Verfahren arbeitet wirkungsvoller, wenn nach einem Einschalten und/oder während eines Betriebs des Datenspeichers ein Funktions-Test durchgeführt wird, und wenn dadurch Adressen des Datenspeichers, welche auf Speicherzeilen verweisen, die während des Funktions-Tests verfahrensgemäß als fehlerhaft bewertet wurden, in den Hilfsspeicher geschrieben werden. Der Funktions-Test ist bei flüchtigen Speichern vorzugsweise als Schreib-Lese-Test und bei flüchtigen Speichern als Nur-Lese-Test ausgebildet. Damit können eventuelle vorhandene Prozeduren durch das Verfahren vorteilhaft ergänzt werden, wobei erfindungsgemäß zusätzliche Informationen erzeugt werden, die für eine Beurteilung der Datensicherheit in dem Datenspeicher verwendet werden können.
  • Weiterhin ist in Verbindung mit dem Schreib-Lese-Test vorgesehen, dass über jene Speicherzeilen, deren Adressen in dem Hilfsspeicher gespeichert sind, eine erste Prüfsumme gebildet wird, die erste Prüfsumme abgespeichert wird, im weiteren Betrieb des Datenspeichers regelmäßig mindestens eine weitere Prüfsumme über jene Speicherzeilen, deren Adressen in dem Hilfsspeicher abgespeichert wurden, gebildet wird, und die mindestens eine weitere Prüfsumme mit der ersten Prüfsumme verglichen wird.
  • Gemäß einer bevorzugten Ausführungsform werden die zur Bildung der ersten Prüfsumme verwendeten Adressen zusätzlich gesichert. Diese zusätzlich gesicherten Adressen können anschließend für die Bildung der mindestens einen weiteren Prüfsumme verwendet werden. Damit wird erreicht, dass die weiteren Prüfsummen unabhängig von einem aktuellen Inhalt des Hilfsspeichers gebildet werden können.
  • Dadurch ist es vorteilhaft möglich, einzelne Speicherzeilen oder Speicherzeilenbereiche, welche als nicht veränderbar bzw. veränderlich bekannt sind, einem regelmäßigen Test zu unterziehen: Nach Betriebsbeginn und einer gewissen Betriebszeit des Datenspeichers und mittels Durchführung des erfindungsgemäßen Verfahrens und gegebenenfalls eines Schreib-Lese-Tests liegen in dem Hilfsspeicher die Adressen jener Speicherzeilen vor, welche als mit einem Einbitfehler bzw. Einbitdefekt behaftet bewertet wurden. Solche Einbitfehler bzw. Einbitdefekte werden als durch die Fehlererkennung korrigierbar angenommen. Abhängig von der jeweiligen Ausführungsform der Fehlererkennung kann gegebenenfalls mit eventuell korrigierbaren Mehrbitfehlern bzw. Mehrbitdefekten in gleicher Weise verfahren werden. Dann wird über die Datenwörter der in dem Hilfsspeicher gespeicherten Adressen - welche mittels der Fehlererkennung korrekt korrigiert werden - beispielsweise nach einem CRC-Verfahren eine Prüfsumme gebildet und abgespeichert. Dabei kann auch eine abgesicherte Abspeicherung sinnvoll sein, beispielsweise mittels einer Doppelablage. Ergänzend ist es denkbar, auch die Adressen des Hilfsspeichers zusätzlich abzuspeichern. Anschließend wird eine zyklische oder regelmäßig ablaufende Prüfung derart vorgenommen, dass über die im Hilfsspeicher vorliegenden Adressen (oder über die zuvor zusätzlich abgespeicherten Adressen) eine Prüfsumme gebildet wird und mit der nach dem Betriebsbeginn gebildeten und abgespeicherten Prüfsumme verglichen wird. Ergibt der Vergleich keine Übereinstimmung, so kann eine der Schwere des Fehlers angemessene Reaktion erfolgen. Der Vorteil dieses Vorgehens besteht darin, dass die Prüfung eine vergleichsweise kurze Zeit dauert und daher auch während des normalen Betriebs des Datenspeichers bzw. des übergeordneten Systems erfolgen kann. Sofern während der Prüfungen zwischenzeitlich weitere fehlerhafte Speicherzeilen oder Speicherzeilenbereiche erkannt wurden, kann es sinnvoll sein, die beschriebene zyklische oder regelmäßig ablaufende Prüfung entsprechend anzupassen.
  • Dabei kann es nützlich sein, wenn der Schreib-Lese-Test auf Speicherzeilenbereiche aufgeteilt wird und wenn verschiedene Speicherzeilenbereiche unabhängig nacheinander dem Schreib-Lese-Test unterzogen werden. Damit ist es möglich, den Schreib-Lese-Test und die darauf aufbauende erfindungsgemäße Behandlung der Adressen und Datenwörter auch während des aktiven Betriebs des Datenspeichers auszuführen. Gegebenenfalls ist es dazu für einen gegebenen Speicherbereich notwendig, zunächst eine Sicherungskopie des Inhalts zu erstellen, dann den Schreib-Lese-Test auf diesem Bereich durchzuführen, und danach die Sicherungskopie wieder in den Bereich zurück zu kopieren.
  • Ergänzend ist vorgesehen, dass das Fehlererkennungsverfahren beziehungsweise eine das Fehlererkennungsverfahren ausführende elektronische Schaltung nach einem Einschalten des Datenspeichers und/oder während des Betriebs auf seine ordnungsgemäße Funktion geprüft wird. Auf diese Weise kann sichergestellt werden, dass das Fehlererkennungsverfahren, welches eine Basis für das erfindungsgemäße Verfahren darstellt, in sich fehlerfrei arbeitet.
  • Die Erfindung betrifft auch ein Prüfprogramm, das auf einem Computer ablauffähig ist, und das derart programmiert ist, dass es das erfindungsgemäße Verfahren ausführen kann. Unter „Computer“ werden hierbei alle Arten von Vorrichtungen verstanden, welche mindestens einen Programmspeicher und eine darauf zugreifende logische Schaltung umfassen. Beispielsweise also Computer, PC, Steuer- und/oder Regeleinrichtungen etwa von Kraftfahrzeugen, Zustandsmaschinen mit bool'scher Logik, Mikroprozessorsysteme, Mikrocontroller, intelligente USB-Speichergeräte „Universal Serial Bus“, und dergleichen.
  • Die Erfindung betrifft ferner einen Hilfsspeicher zur Durchführung des Verfahrens. Dieser kann als eigenständige Einheit ausgeführt sein oder auch in beliebige vorhandene Speichersysteme oder elektronische Schaltungen integriert sein.
  • Nachfolgend werden zahlreiche weitere Ausgestaltungen der Erfindung in aufeinander folgenden Kurzdarstellungen beschrieben. Diese können einzeln oder auch in beliebiger Kombination für die Erfindung wichtig sein.
  • Für sehr sicherheitskritische Anwendungen kann es eine Maßnahme sein, flüchtige Fehler zu tolerieren, jedoch bereits aufgrund eines einzelnen dauerhaften Einbitdefekts eine Reaktion auszulösen oder den Datenspeicher bzw. das übergeordnete System in einen als sicher bewerteten Zustand zu überführen.
  • Für Anwendungen, bei denen dagegen die Verfügbarkeit im Vordergrund steht, kann es geboten sein, auf die Benutzung des Prüfprogramms ganz zu verzichten und die Fehlerbehandlung im Wesentlichen auf die Fehlerkorrektur zu beschränken.
  • Flüchtige Fehler im Datenspeicher können nach ihrer Erkennung sofort durch das Prüfprogramm korrigiert werden, oder es kann alternativ eine Zeit abgewartet werden, während derer die betreffende Speicherstelle unter Beobachtung bleibt.
  • Das Prüfprogramm kann eine Rate des Auftretens der flüchtigen Fehler ermitteln und zusätzliche Prüfungen und/oder Maßnahmen durchführen, falls die Rate einen Grenzwert überschreitet.
  • Vor einem Abschalten des Datenspeichers kann das Prüfprogramm versuchen, als fehlerhaft bewertete Speicherstellen eines FLASH-Speichers neu zu beschreiben.
  • Das Prüfprogramm kann den Datenspeicher in mehrere Speicherzeilenbereiche unterteilen und für sicherheitskritische Dateninhalte solche Speicherzeilenbereiche verwenden, welche frei von dauerhaften Defekten sind.
  • Das Prüfprogramm kann erkannte Einbitfehler und/oder Einbitdefekte ihrem jeweiligen Speicherzeilenbereich zuordnen, und mit solchen Fehlern behaftete Speicherzeilenbereiche, die als sicherheitskritisch bewertet werden, besonderen Prüfungen unterziehen.
  • Die nachfolgenden möglichen Ausgestaltungen der Erfindung betreffen im Wesentlichen eine verfahrensgemäße Prüfung des Datenspeichers in Verbindung mit dem Schreib-Lese-Test:
    • Der den Datenspeicher prüfende Schreib-Lese-Test kann mittels eines speziellen Schreib-Lese-Testprogramms erfolgen oder alternativ und mindestens teilweise durch eine elektronische Schaltung. Wird der Schreib-Lese-Test mittels einer programmgestützten Prozedur durchgeführt, kann bereits durch die Durchführung des Tests getriggert der Hilfsspeicher mit Adressen fehlerhafter Speicherzeilen beschrieben werden.
  • Bei einem Nur-Lese-Test eines nichtflüchtigen Speichers, beispielsweise eines FLASH-Speichers oder ROM-Speichers „Read Only Memory“, können Prüfsummen über den gesamten Datenspeicher oder über einzelne Speicherzeilenbereiche gebildet werden. Zusätzlich kann die Fehlererkennung aktiviert werden, wobei geprüft werden kann, welche der Fehler durch die Fehlererkennung korrigierbar sind. Außerdem können durch das erfindungsgemäße Verfahren die Adressen der von Fehlern betroffenen Speicherzeilen in den Hilfsspeicher geschrieben und dem Prüfprogramm zur Verfügung gestellt werden. Alternativ kann auch bei deaktivierter Fehlererkennung der nichtflüchtige Datenspeicher gelesen werden und das Ergebnis zu einem Vergleich verwendet werden.
  • Ergänzend ist es denkbar, den Schreib-Lese-Test bzw. den Nur-Lese-Test so durchzuführen, dass auf jede Speicherstelle einer Speicherzeile einmal mit und einmal ohne die Wirkung der Fehlererkennung zugegriffen wird, und dass danach jeweils beide Ergebnisse verglichen werden. Um eventuelle Fehler in den redundanten Bits zu erkennen, kann ergänzend eine Neuberechnung der Datenwörter und der zugehörigen redundanten Bits erfolgen, und danach die neu berechneten redundanten Bits mit den in der Speicherzeile vormals abgespeicherten redundanten Bits verglichen werden.
  • Es kann ein Ziel des Schreib-Lese-Tests sein, den Hilfsspeicher mit den Adressen aller als fehlerhaft bewerteter Speicherzeilen zu füllen. Nachfolgend kann bei erkannten und/oder korrigierten Fehlern, welche in Speicherzeilen auftreten, deren Adressen bislang nicht im Hilfsspeicher vorliegen, auf einen neuartigen Fehler geschlossen werden und geeignete Maßnahmen vorgenommen werden. Dies kann gegebenenfalls durch einen so genannten Interrupt, „Unterbrechung“, des übergeordneten Systems eingeleitet werden, wobei der Interrupt beispielsweise dann erzeugt wird, wenn im normalen Betrieb des Datenspeichers ein Beleg-Bit des Hilfsspeichers gesetzt wird.
  • Die nachfolgenden möglichen Ausgestaltungen der Erfindung betreffen im Wesentlichen eine verfahrensgemäße Prüfung des Datenspeichers in Verbindung mit einer Prüfung der Fehlererkennung auf ihre Funktionstüchtigkeit:
    • Sofern eine Prüfung der Fehlererkennung auf ihre Funktionstüchtigkeit vorgenommen wird, beispielsweise nach dem Einschalten des Datenspeichers oder des übergeordneten Systems, kann eine die Fehlererkennung prüfende Logik - also eine elektronische Schaltung - während eines allgemeinen Selbsttests des Datenspeichers oder des übergeordneten Systems vorteilhaft mit geprüft werden. Dadurch kann die Prüfung der Fehlererkennung noch sicherer gemacht werden. Sofern es eine jeweilige Ausführungsform technisch ermöglicht, kann die Fehlererkennung und/oder die die Fehlererkennung prüfende Logik nicht nur bei Betriebsbeginn, sondern auch während des normalen Betriebs des Datenspeichers in vergleichbarer Weise geprüft werden. Alternativ zu der prüfenden Logik kann die Prüfung der Fehlererkennung auch mittels eines speziellen Programmteils erfolgen. Optional kann die Prüfung im normalen Betrieb auch nur dann vorgenommen werden, wenn der Hilfsspeicher nicht leer ist.
  • Ergänzend kann die Fehlererkennung geprüft werden, indem ein oder mehrere absichtlich fehlerhaft geschriebene oder als fehlerhaft bekannte Datenwörter aus dem Datenspeicher gelesen werden und die Korrektureigenschaften der Fehlererkennung daran geprüft und/oder bewertet werden.
  • Bei nicht-im-Betrieb-beschreibbaren Speichern können absichtlich fehlerhafte Datenwörter an vorbestimmte Adressen eingeschrieben werden, und zwar sowohl Einbit Fehler als auch Mehrbitfehler. Die Funktionstüchtigkeit der Fehlererkennung kann daher durch einen Zugriff auf diese Adressen überprüft werden. Dabei kann es sinnvoll sein, diese Adressen aus dem Nur-Lese-Test des Datenspeichers herauszunehmen, um einen Überlauf des Hilfsspeichers zu vermeiden. Nach Ablauf der Prüfung können die vorbestimmten Adressen im Hilfsspeicher wieder gelöscht und das zugehörige Beleg-Bit zurückgesetzt werden.
  • Bei einem RAM-Speicher oder sonstigen im Betrieb beschreibbaren Ausführungen von Datenspeichern können die absichtlich fehlerhaften Datenwörter auch mittels eines Programmteils während des Betriebs erzeugt werden, indem bei einer vorübergehend deaktivierten Fehlererkennung die Datenwörter und die zugehörigen redundanten Bits getrennt erzeugt und geschrieben werden. Danach wird die Prüfung der Fehlererkennung durchgeführt. Dabei kann es sinnvoll sein, diese Prüfung auf solche Speicherzeilen zu begrenzen, die bislang nicht als fehlerhaft bewertet wurden. Ebenfalls kann es sinnvoll sein, nach Ablauf der Prüfung die vorbestimmten Adressen sowie das zugehörige Beleg-Bit wieder zu löschen bzw. zurückzusetzen.
  • Weiterhin ist es möglich, die Prüfung der Fehlererkennung nur dann durchzuführen, wenn der Datenspeicher bereits erkannte Fehler bzw. dauerhafte Defekte aufweist, und dabei nur die als fehlerhaft bewerteten Speicherzeilen zu verwenden.
  • Ergänzend ist es möglich, die Prüfung der Fehlererkennung regelmäßig durchzuführen, wobei jedes Mal ein anderer Speicherzeilenbereich verwendet wird, derart, dass bei wiederholten Prüfungen der gesamte Datenspeicher im Wesentlich von der Prüfung erfasst werden kann.
  • Die nachfolgenden möglichen Ausgestaltungen der Erfindung betreffen im Wesentlichen eine verfahrensgemäße Prüfung des Datenspeichers in Verbindung mit einem Schreib-Lese-Test oder einem Nur-Lese-Test:
    • Ergänzend ist es möglich, einen Schreib-Lese-Test so durchzuführen, dass ein ursprünglicher Speicherzeilenbereich ausgewählt wird - beispielsweise in physikalischer oder logischer Nachbarschaft zu einer bestimmten Speicherzeile - welcher in einem ersten Schritt mittels Kopieren in einen anderen freien Speicherzeilenbereich gesichert wird. Danach wird in einem zweiten Schritt der ursprüngliche Speicherzeilenbereich mittels des Schreib-Lese-Tests geprüft. Für nicht beschreibbare Ausführungsformen des Datenspeichers - beispielsweise FLASH-Speicher oder ROM-Speicher - können Prüfsummen über die Speicherzeilenbereiche gebildet werden. Am Schluss können die gesicherten Daten in den ursprünglichen Speicherzeilenbereich gegebenenfalls wieder zurück geschrieben werden.
  • Die Durchführung eines solchen Schreib-Lese-Tests bzw. Nur-Lese-Tests zusammen mit dem erfindungsgemäßen Verfahren zum Überwachen des Datenspeichers ermöglicht es, dass innerhalb einer bestimmten Zeitspanne der gesamte Datenspeicher geprüft werden kann und somit auch die Adressen aller fehlerhaften Speicherzeilen innerhalb dieser Zeitspanne im Hilfsspeicher vorliegen.
  • Die nachfolgenden möglichen Ausgestaltungen der Erfindung betreffen im Wesentlichen eine verfahrensgemäße Prüfung des Datenspeichers in Verbindung mit einer so genannten Speicherausblendung:
    • Dazu ist vorgesehen, die über das Verfahren in dem Hilfsspeicher gespeicherten Adressen des Datenspeichers nicht mehr oder nur in Ausnahmefällen zu verwenden. Dazu werden drei Möglichkeiten vorgeschlagen:
      1. (A) Verwendung einer so genannten „Memory Management Unit“, MMU, welche der weiter oben beschriebenen Speicherverwaltung funktional entspricht oder dieser zugehörig ist. Dabei werden jene Adressen, die in einem zu Betriebsbeginn erfolgten Schreib-Lese-Test bzw. Nur-Lese-Test Start-Up als fehlerhaft bewertet und in dem Hilfsspeicher abgespeichert wurden, der Speicherverwaltung bzw. der MMU mitgeteilt. Dadurch können diese - physikalischen - Adressen für eine weitere Verwendung auf einfache Weise gesperrt werden.
      2. (B) Schaltungsmäßige Trennung der betroffenen Bereiche: Es ist bekannt, einzelne Speicherzeilen und/oder Speicherzeilenbereiche eines Datenspeichers mittels Trennstellen, (integrierten) Sicherungen oder Schaltern gezielt auszublenden. Das erfindungsgemäße Verfahren kann mit einer solchen Ausblendung sinnvoll kombiniert werden, ähnlich wie zuvor im Abschnitt (A) beschrieben. Die im Hilfsspeicher gespeicherten Adressen können also zur Ausblendung verwendet werden. Dies kann beispielsweise während des Betriebs, während einer spezialisierten Betriebszeit oder manuell in einer Werkstatt erfolgen.
      3. (C) Progammtechnische Maßnahmen, so genannte „Lernende Software“:
        • Bei der Zuweisung von Speicherzeilen oder Speicherzeilenbereichen, „Speicherallokation“, werden solche Adressen, die in dem Hilfsspeicher gespeichert sind, nicht mehr verwendet.
  • Die nachfolgende mögliche Ausgestaltung der Erfindung betrifft im Wesentlichen eine verfahrensgemäße Prüfung des Datenspeichers in Verbindung mit einem Fehlerspeicher:
    • Vor dem Abschalten des Datenspeichers oder des übergeordneten Systems - welches beispielsweise in einem Kraftfahrzeug angeordnet sein kann - kann ein Eintrag über den Inhalt des Hilfsspeichers in einem Fehlerspeicher vorgenommen werden. Damit kann protokolliert werden, welche Adressen bzw. Speicherzeilen als fehlerhaft erkannt wurden. Damit können unter anderem für eine Werkstattdiagnose wichtige Informationen gesichert werden.
  • Die Aufgabe der Erfindung wird auch durch ein Prüfprogramm und ein Speichermedium nach den nebengeordneten Ansprüchen gelöst. Vorteilhafte Weiterbildungen sind in Unteransprüchen angegeben. Weitere Merkmale der Erfindung sind in der nachfolgenden Beschreibung von beispielhaften Ausführungsformen und in den Zeichnungen angegeben, wobei die Merkmale sowohl in Alleinstellung als auch in unterschiedlichen Kombinationen für die Erfindung wichtig sein können, ohne dass hierauf nochmals explizit hingewiesen wird. In der Zeichnung zeigen:
    • 1 ein Blockschaltbild eines Datenspeichers mit einer Schaltung zur Fehlererkennung und einem Hilfsspeicher; und
    • 2 ein Flussdiagramm mit Verfahrensschritten des erfindungsgemäßen Verfahrens gemäß einem Ausführungsbeispiel.
  • 1 zeigt einen Datenspeicher 10 mit einer Fehlererkennung 12 und einem an die Fehlererkennung 12 angeschlossenen Hilfsspeicher 14. Eine senkrechte gestrichelte Linie 16 unterscheidet in der Zeichnung der 1 den nach dem Stand der Technik vorbekannten Teil (links) von der erfindungsgemäßen zusätzlichen elektronischen Schaltung (rechts). Ebenfalls ist im rechten Teil der Zeichnung ein Prüfprogramm 18 dargestellt, welches unter anderem auf den Hilfsspeicher 14 lesend und schreibend zugreifen und dessen Informationen verarbeiten kann. Dies ist durch einen Doppelpfeil 20 symbolisch dargestellt. Nach Bedarf kann das Prüfprogramm 18 auch auf übrige in der Umgebung des Datenspeichers 10 und der Fehlererkennung 12 vorliegende Informationen zugreifen. Ein nicht-flüchtiger Speicher 19 ist über eine bidirektionale Datenverbindung 21 an den Hilfsspeicher 14 angeschlossen.
  • Insgesamt zeigt das Schema der 1 sowohl schaltungsbasierte Elemente („Hardware“) als auch rechnergestützte Prozeduren („Software“). Die Fehlererkennung 12 (ECC, „Error Correction Coding“) ist vorliegend als elektronische Schaltung ausgeführt. Weiterhin können die in der 1 dargestellten Elemente auf mehrere elektronische Bauelemente aufgeteilt sein oder insgesamt auf lediglich einem Element gemeinsam untergebracht sein („Ein-Chip-Lösung“).
  • Der Datenspeicher 10 ist bidirektional mit der Fehlererkennung 12 verbunden. Ein innerer Datenpfad 22 führt im Datenspeicher 10 abzuspeichernde bzw. abgespeicherte Datenwörter 24, welche in der Fehlererkennung 12 mit zugehörigen redundanten Bits 26 ergänzt wurden. Die Datenwörter 24 umfassen jeweils mehrere Bits in einer beliebigen aber festen Anzahl. Ein äußerer Datenpfad 28 führt die Datenwörter 24 ohne die redundanten Bits 26 einer Speicherverwaltung 29 bidirektional zu. Ebenso werden Adressen 30 dem Datenspeicher 10 zur Verwaltung der darin gespeicherten Daten von der Speicherverwaltung 29 zugeführt. Dabei weist jede Adresse 30 auf eine zugehörige Speicherzeile 33 des Datenspeichers 10, das heißt, die Speicherzeile 33 umfasst Speicherstellen 35 zu je ein Bit in einer Anzahl, die mindestens der Länge des Datenwortes 24 plus der jeweils zugehörigen redundanten Bits 26 entspricht.
  • Die Speicherverwaltung 29 kann auch Informationen mit dem Prüfprogramm 18 austauschen und kann als elektronische Schaltung und/oder als rechnergestützte Prozedur ausgeführt sein. Dies wird vorliegend jedoch nicht näher erläutert. Ein bidirektionaler Pfeil 31 stellt eine Verbindung zu einem nicht dargestellten übergeordneten System her. Das übergeordnete System ist beispielsweise eine Steuer- und/oder Regeleinrichtung eines Kraftfahrzeugs, ein Computer (PC), ein Mikrocontroller, ein Datenmassenspeicher oder dergleichen. Dies wird in der 1 jedoch nicht gezeigt.
  • Ein erster Ausgang 32 der Fehlererkennung 12 gibt Informationen aus, wenn Mehrbitfehler erkannt und/oder korrigiert werden. Ein zweiter Ausgang 34 gibt Informationen aus, wenn Einbitfehler erkannt und/oder korrigiert werden und führt diese unter anderem dem Hilfsspeicher 14 in Gestalt der Adresse 30 zu. Ein Überlaufsignal 37 wird erzeugt, wenn die gesamte Anzahl N der Adressregister 36 mit gültigen Adressen 30 aufgefüllt ist, und somit auch alle zugehörigen Beleg-Bits 38 gesetzt sind. Eine Flagge 39 zeigt an, dass eine neue Adresse 30 aktuell in den Hilfsspeicher 14 geschrieben wurde. Die Flagge 39 kann beispielsweise zur Auslösung einer als Interrupt bezeichneten vorübergehenden Programmunterbrechung verwendet werden.
  • Der Hilfsspeicher 14 enthält eine Anzahl N von Adressregistern 36, welche zusammen mit einem jeweils zugehörigen Beleg-Bit 38 abgespeichert sind. Das in der Zeichnung oberste Adressregister 36 und das oberste Beleg-Bit 38 sind stellvertretend mit ihren Bezugszeichen gekennzeichnet. Dabei gibt die Anzahl N die höchste in dem Hilfsspeicher 14 speicherbare Zahl von Einträgen an.
  • Falls die Fehlererkennung 12 einen Einbitfehler erkennt und korrigiert, so wird die Adresse 30 des betroffenen Datenwortes 24 mit allen im Hilfsspeicher 14 gespeicherten gültigen Adressen 30 verglichen. „Gültig“ ist eine Adresse 30 in dem Hilfsspeicher 14 dann, wenn das zugehörige Beleg-Bit 38 gesetzt ist, also beispielsweise den binären Wert „1“ aufweist. Sofern diese Adresse 30 bereits in dem Hilfsspeicher 14 gespeichert ist, erfolgt keine weitere Reaktion. Ist dagegen die Adresse 30 noch nicht in dem Hilfsspeicher 14 gespeichert, so wird sie in dem Hilfsspeicher 14 in einem leeren Adressregister 36 gespeichert. Ein leeres (also nicht „gültiges“) Adressregister 36 ist daran zu erkennen, dass das zugehörige Beleg-Bit 38 nicht gesetzt ist, also beispielsweise den binären Wert „0“ aufweist. Nach dem Abspeichern der Adresse 30 in dem Adressregister 36 wird dessen zugehöriges Beleg-Bit 38 gesetzt.
  • Innerhalb vorgebbarer Zeitintervalle oder zu bestimmten Zeitpunkten wird regelmäßig das Prüfprogramm 18 durchlaufen. Dieser Vorgang wird vorliegend durch die Speicherverwaltung 29 ausgelöst. Für jede in dem Hilfsspeicher 14 gespeicherte gültige Adresse 30 untersucht das Prüfprogramm 18, ob das durch die jeweilige Adresse 30 bezeichnete Datenwort 24 tatsächlich nur ein einzelnes fehlerhaftes Bit aufweist. Falls jedoch in einem Datenwort 24 ein Mehrbitfehler bzw. Mehrbitdefekt und/oder in mehreren Datenwörtern 24 eine Anzahl von Einbitfehlern bzw. Einbitdefekten durch das Prüfprogramm 18 entdeckt wird, können jeweils vorgebbare Reaktionen erfolgen. Diese Reaktionen können umfassen:
    • - Deaktivieren eine defekten Speicherzeile 33 und/oder Zuweisen einer Ersatz-Speicherzeile 33;
    • - Deaktivieren eines defekten Speicherzeilenbereichs und/oder Zuweisen eines Ersatz-Speicherzeilenbereichs;
    • - Erzeugen einer Meldung, eines Alarms und/oder eines Fehlerbits;
    • - Überführen des Datenspeichers 10 und/oder des dem Datenspeicher 10 übergeordneten Systems in einen als sicher bewerteten Zustand.
  • Unabhängig von der Funktion des Prüfprogramms 18 kann alternativ oder ergänzend mittels des Überlaufsignals 37 des Hilfsspeichers 14, der Datenspeicher 10 und/oder das übergeordnete System in einen als sicher bewerteten Zustand überführt werden, weil zu vermuten ist, dass der Datenspeicher 10 insgesamt nicht mehr zuverlässig genug arbeitet und damit unbrauchbar ist.
  • Die Unterscheidung zwischen Einbitfehlern und Mehrbitfehlern kann bei flüchtigen Speichern (RAM) mittels eines auf jeweils zu erwartende Fehlermuster angepassten Schreib-Lese-Tests erfolgen, der beispielsweise zu Betriebsbeginn oder während des normalen Betriebs des Datenspeichers 10 durchgeführt wird. Bei nicht flüchtigen Speichern (FLASH) kann dies mittels eines CRC-Prüfsummenverfahrens („Cyclic Redundancy Check“, zyklische Redundanzprüfung) erfolgen.
  • Sofern der Datenspeicher 10 als flüchtiger Speicher ausgeführt ist, untersucht das Prüfprogramm 18 zusätzlich, ob ein Fehler bzw. ein Fehlermuster dauernd in einer jeweiligen Speicherzeile 33 des Datenspeichers 10 vorliegt („Defekt“), oder ob der Fehler bzw. das Fehlermuster nur flüchtig auftraten. Bei Letzterem wird das zugehörige Adressregister 36 geleert, indem dessen Beleg-Bit 38 zurückgesetzt wird. Weiterhin kann das Prüfprogramm 18 darauf prüfen, ob richtig korrigierte Einbitfehler bzw. Einbitdefekte oder falsch erkannte oder falsch korrigierte Mehrbitfehler bzw. Mehrbitdefekte vorliegen. Außerdem kann das Prüfprogramm 18 erkannte Fehler des Datenworts 24 gegebenenfalls korrigieren, und ebenso eine Fehlerzählung durchführen oder eine Fehlerstatistik anlegen.
  • Weiterhin ist es möglich, das Auslösen der Reaktion(en) abhängig zu machen von vorgebbaren Bedingungen und vorgebbaren Grenzwerten. Beispielsweise kann eine Mindestzahl von möglichen Einbitdefekten vorgebbar sein, ab der eine der Bedeutung des Fehlers entsprechende Reaktion ausgelöst wird.
  • Der nicht-flüchtige Speicher 19 ist über eine bidirektionale Datenverbindung 21 an den Hilfsspeicher 14 angeschlossen und hat die Aufgabe, den Inhalt des Hilfsspeichers 14 vor einem Abschalten des Datenspeichers 10 bzw. des übergeordneten Systems zu sichern und nach einem Einschalten wieder in dem Hilfsspeicher 14 zu rekonstruieren.
  • 2 zeigt in einem Flussdiagramm beispielsweise mittels eines Computerprogramms abarbeitbare Verfahrensschritte einer möglichen Ausführungsform des erfindungsgemäßen Verfahrens. Alternativ oder ergänzend zur Abarbeitung durch einen Computer bzw. durch ein Steuergerät können logische Schaltungen beteiligt sein.
  • Die Prozedur beginnt in einem Start-Block 50. In einem Abfrageblock 52 wird geprüft, ob ein Einbitfehler von der Fehlererkennung 12 aktuell erkannt und/oder korrigiert wurde. Falls unzutreffend, wird zu einem Abfrageblock 54 verzweigt.
  • Falls ein Einbitfehler von der Fehlererkennung 12 aktuell erkannt und/oder korrigiert wurde, wird in einem Block 56 die zu dem Einbitfehler gehörige Adresse 30 des Datenspeichers 10 erfasst. In einem Abfrageblock 58 wird geprüft, ob diese Adresse 30 bereits in dem Hilfsspeicher 14 vorliegt. Falls zutreffend, erfolgt bei dem der 2 zugrundeliegenden Ausführungsbeispiel keine weitere Reaktion und es wird zu dem Abfrageblock 52 zurück verzweigt.
  • Falls die Adresse 30 jedoch noch nicht in dem Hilfsspeicher 14 vorliegt, wird zu einem Block 60 verzweigt. Dort wird diese Adresse 30 in ein leeres Adressregister 36 des Hilfsspeichers 14 geschrieben und das zugehörige Beleg-Bit 38 gesetzt. Bei Bedarf können übrige in dem Hilfsspeicher 14 vorliegende Adressen 30 dabei verschoben und/oder sortiert werden. Das Verfahren wird dann in dem Abfrageblock 54 fortgesetzt.
  • In dem Abfrageblock 54 wird geprüft, ob Bedingungen vorliegen, um das Prüfprogramm 18 zu starten. Falls unzutreffend, wird zu dem Block 52 zurück verzweigt. Falls zutreffend, wird in einem Block 62 das Prüfprogramm 18 gestartet. Anschließend wird zu dem Abfrageblock 52 zurück verzweigt und die Prozedur fortgesetzt.
  • Es versteht sich, dass die in der 2 dargestellte Prozedur nur beispielhaft ist. Weitere Ausführungsformen umfassen insbesondere die in den unabhängigen Ansprüchen beschriebenen Ausgestaltungen. Ferner kann vorgesehen sein, dass die Prozedur von dem übergeordneten System gestartet, angehalten oder abgebrochen wird. Dies ist in der 2 jedoch nicht näher dargestellt.

Claims (21)

  1. Verfahren zum Überwachen eines Datenspeichers (10), bei dem mittels eines Fehlererkennungsverfahrens in Speicherzeilen (33) des Datenspeichers (10) gespeicherte fehlerhafte Datenwörter (24) erkannt und/oder korrigiert werden, wobei eine Adresse (30) des Datenspeichers (10), unter welcher ein durch das Fehlererkennungsverfahren als fehlerhaft bewertetes Datenwort (24) abgespeichert ist, in einen Hilfsspeicher (14) geschrieben und einem Prüfprogramm (18) zur Verfügung gestellt wird, dadurch gekennzeichnet, dass unterschieden wird zwischen erstens richtigkorrigierbaren Fehlern, zweitens falsch korrigierten oder falsch erkannten Mehrbitfehlern und/oder drittens flüchtigen Fehlern oder dauerhaften Defekten.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Fehlererkennungsverfahren im Wesentlichen mittels einer dem Datenspeicher (10) zugeordneten elektronischen Schaltung durchgeführt wird.
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass nur solche Adressen (30) in den Hilfsspeicher (14) geschrieben werden, deren Datenwörter (24) durch das Fehlererkennungsverfahren als korrigierbar bewertet wurden.
  4. Verfahren nach wenigstens einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass für jede in dem Hilfsspeicher (14) abgespeicherte Adresse (30) angezeigt wird, ob diese Adresse (30) gültig ist.
  5. Verfahren nach wenigstens einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass bei Erkennen eines fehlerhaften Datenworts (24) durch das Fehlererkennungsverfahren zunächst die gültigen Adressen (30) daraufhin untersucht werden, ob die Adresse (30) des fehlerhaften Datenworts (24) bereits abgespeichert ist.
  6. Verfahren nach wenigstens einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass das Datenwort (24), dessen Adresse (30) in dem Hilfsspeicher (14) gespeichert ist, durch das Prüfprogramm (18) daraufhin untersucht wird, ob das Datenwort (24) einen Einbitfehler oder einen Mehrbitfehler aufweist, und/oder ob die Speicherzeile (33) des Datenwortes (24) einen Defekt aufweist, der einem Einbitfehler oder einem Mehrbitfehler entspricht, und/oder ob ein Fehler der Speicherzeile (33) des Datenwortes (24) vorübergehend oder dauerhaft auftritt, und/oder welche Speicherstellen (35) innerhalb der Speicherzeile (33) jeweils betroffen sind.
  7. Verfahren nach wenigstens einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass das Prüfprogramm (18) bei einem flüchtigen Speicher „RAM“ einen auf zu erwartende Fehlermechanismen abgestimmten Schreib-Lese-Test durchführt.
  8. Verfahren nach wenigstens einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass das Prüfprogramm (18) bei einem nicht-flüchtigen Speicher einen Fehlertest mittels einer Prüfsumme einer CRC-Kodierung durchführt.
  9. Verfahren nach wenigstens einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass Grenzwerte vorgegeben werden für eine zulässige Anzahl von Einbitfehlern und/oder Mehrbitfehlern und/oder Einbitdefekten und/oder Mehrbitdefekten, und dass bei einem Überschreiten mindestens eines Grenzwerts eine Reaktion der Speicherverwaltung erfolgt.
  10. Verfahren nach Anspruch 9, dadurch gekennzeichnet, dass die Reaktion der Speicherverwaltung mindestens eine der folgenden Maßnahmen umfasst: - Deaktivieren einer defekten Speicherzeile (33) und/oder zuweisen einer Ersatz-Speicherzeile; - Deaktivieren eines defekten Speicherzeilenbereichs und/oder zuweisen eines Ersatz-Speicherzeilenbereichs; - Erzeugen einer Meldung, eines Alarms und/oder eines Fehlerbits; - Überführen des Datenspeichers (10) und/oder eines dem Datenspeicher (10) übergeordneten Systems in einen als sicher bewerteten Zustand.
  11. Verfahren nach wenigstens einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass der Inhalt des Hilfsspeichers (14) vor einem Abschalten des Datenspeichers (10) bzw. eines dem Datenspeicher (10) übergeordneten Systems in einem nicht-flüchtigen Speicher (19) gesichert und nach einem Einschalten daraus wieder rekonstruiert wird.
  12. Verfahren nach wenigstens einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass von dem Prüfprogramm (18) erkannte Fehler des Datenworts (24) korrigiert werden.
  13. Verfahren nach wenigstens einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass flüchtige Fehler und/oder dauerhafte Defekte gezählt und/oder statistisch bewertet werden.
  14. Verfahren nach Anspruch 13, dadurch gekennzeichnet, dass ein Ergebnis der Zählung und/oder der statistischen Bewertung an einen Hersteller des Datenspeichers (10) oder des übergeordneten Systems übermittelt wird.
  15. Verfahren nach wenigstens einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass nach einem Einschalten und/oder während eines Betriebs des Datenspeichers (10) ein Funktions-Test des Datenspeichers durchgeführt wird, und dass Adressen (30) des Datenspeichers (10), welche auf Speicherzeilen (33) verweisen, die während des Funktions-Tests als fehlerhaft bewertet wurden, in den Hilfsspeicher (14) geschrieben werden.
  16. Verfahren nach Anspruch 15, dadurch gekennzeichnet, dass über Speicherzeilen (33), deren Adressen (30) in dem Hilfsspeicher (14) gespeichert sind, eine erste Prüfsumme gebildet wird, und die erste Prüfsumme abgespeichert wird, wobei vorzugsweise die zur Bildung der ersten Prüfsumme verwendeten Adressen (30) zusätzlich gesichert werden, und dass im weiteren Betrieb des Datenspeichers (10) regelmäßig mindestens eine weitere Prüfsumme über Speicherzeilen (33), deren Adressen (30) in dem Hilfspeicher (14) abgespeichert wurden oder deren Adressen (30) zusätzlich gesichert wurden, gebildet wird, und die mindestens eine weitere Prüfsumme mit der ersten Prüfsumme verglichen wird.
  17. Verfahren nach wenigstens einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass der Funktions-Test auf Speicherzeilenbereiche aufgeteilt wird, und dass verschiedene Speicherzeilenbereiche unabhängig nacheinander dem Funktions-Test unterzogen werden.
  18. Verfahren nach wenigstens einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass das Fehlererkennungsverfahren beziehungsweise eine das Fehlererkennungsverfahren ausführende elektronische Schaltung nach einem Einschalten des Datenspeichers (10) und/oder während des Betriebs auf seine ordnungsgemäße Funktion geprüft wird.
  19. Prüfprogramm (18), das auf einem Computer ablauffähig ist, dadurch gekennzeichnet, dass es zur Durchführung eines Verfahrens nach einem der Ansprüche 1 bis 18 programmiert ist.
  20. Speichermedium für einen Computer, dadurch gekennzeichnet, dass auf ihm ein Prüfprogramm (18) zur Anwendung in einem Verfahren nach einem der Ansprüche 1 bis 18 abgespeichert ist.
  21. Hilfsspeicher (14) in einem Computer, dadurch gekennzeichnet, dass der Hilfsspeicher (14) Schnittstellen umfasst, um Adressen (30) eines Datenspeichers (10) und/oder Datenwörter (24) und/oder Informationen zu deren Klassifizierung zu speichern und einem Prüfprogramm (18) zur Verfügung zu stellen und dass der Hilfsspeicher bei der Durchführung des Verfahrens nach wenigstens einem der Ansprüche 1 bis 18 eingesetzt wird.
DE102010031282.7A 2010-07-13 2010-07-13 Verfahren zum Überwachen eines Datenspeichers Active DE102010031282B4 (de)

Priority Applications (5)

Application Number Priority Date Filing Date Title
DE102010031282.7A DE102010031282B4 (de) 2010-07-13 2010-07-13 Verfahren zum Überwachen eines Datenspeichers
US13/809,764 US9170875B2 (en) 2010-07-13 2011-06-27 Method for monitoring a data memory
KR1020137000864A KR101805234B1 (ko) 2010-07-13 2011-06-27 데이터 메모리의 모니터링 방법, 비일시적 컴퓨터 판독가능 저장 매체 및 보조 메모리
CN201180034430.XA CN102971714B (zh) 2010-07-13 2011-06-27 用于监控数据存储器的方法
PCT/EP2011/060700 WO2012007266A1 (de) 2010-07-13 2011-06-27 Verfahren zum überwachen eines datenspeichers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102010031282.7A DE102010031282B4 (de) 2010-07-13 2010-07-13 Verfahren zum Überwachen eines Datenspeichers

Publications (2)

Publication Number Publication Date
DE102010031282A1 DE102010031282A1 (de) 2012-01-19
DE102010031282B4 true DE102010031282B4 (de) 2022-05-12

Family

ID=44351630

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102010031282.7A Active DE102010031282B4 (de) 2010-07-13 2010-07-13 Verfahren zum Überwachen eines Datenspeichers

Country Status (5)

Country Link
US (1) US9170875B2 (de)
KR (1) KR101805234B1 (de)
CN (1) CN102971714B (de)
DE (1) DE102010031282B4 (de)
WO (1) WO2012007266A1 (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013202865A1 (de) 2013-02-21 2014-08-21 Robert Bosch Gmbh Verfahren zum Überwachen eines Datenspeichers
US9715424B1 (en) * 2013-08-23 2017-07-25 Rambus Inc. Memory device and repair method with column-based error code tracking
US9825884B2 (en) 2013-12-30 2017-11-21 Cavium, Inc. Protocol independent programmable switch (PIPS) software defined data center networks
US10656992B2 (en) * 2014-10-22 2020-05-19 Cavium International Apparatus and a method of detecting errors on registers
DE102015204337A1 (de) * 2015-03-11 2016-09-15 Siemens Aktiengesellschaft Sicherheitsrelevantes Computersystem
DE102015004580A1 (de) * 2015-04-14 2016-10-20 Airbus Defence and Space GmbH Übertragungsverfahren und Vorrichtungen zur Übertragung
US9990245B2 (en) * 2015-11-25 2018-06-05 Stmicroelectronics S.R.L. Electronic device having fault monitoring for a memory and associated methods
TWI581093B (zh) * 2016-06-24 2017-05-01 慧榮科技股份有限公司 資料儲存媒體之損壞資料行的篩選方法
CN106128493B (zh) * 2016-08-01 2018-04-20 四川新环佳科技发展有限公司 一种可移动大容量的存储器
DE102016225308A1 (de) * 2016-12-16 2018-06-21 Robert Bosch Gmbh Verfahren und Vorrichtung zum Kalibrieren eines Steuergerätes
EP3632137B1 (de) * 2017-05-31 2021-07-07 Widex A/S Verfahren zur bedienung eines systems zur einpassung eines hörgeräts und hörgeräteinpassungssystem
DE202017104362U1 (de) * 2017-07-21 2017-08-07 Robert Bosch Gmbh Zeitstempeleinheit und Kommunikationssteuereinheit für eine Teilnehmerstation eines Kommunikationsnetzwerks
FR3083888B1 (fr) * 2018-07-10 2020-06-19 Continental Automotive France Procede de surveillance de la corruption des donnees dans au moins une memoire non volatile d'un calculateur

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020016942A1 (en) 2000-01-26 2002-02-07 Maclaren John M. Hard/soft error detection
US20060282755A1 (en) 2005-05-31 2006-12-14 Jong-Hoon Oh Random access memory having ECC

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5511164A (en) * 1995-03-01 1996-04-23 Unisys Corporation Method and apparatus for determining the source and nature of an error within a computer system
JP3511576B2 (ja) * 1998-10-02 2004-03-29 松下電器産業株式会社 ディスク記録再生方法および装置
US6842867B2 (en) * 2001-01-26 2005-01-11 Dell Products L.P. System and method for identifying memory modules having a failing or defective address
US8205146B2 (en) * 2005-07-21 2012-06-19 Hewlett-Packard Development Company, L.P. Persistent error detection in digital memory
US7861138B2 (en) * 2006-12-05 2010-12-28 Qimonda Ag Error correction in memory devices
JP4343945B2 (ja) * 2006-12-28 2009-10-14 三菱電機株式会社 電子制御装置
US8032816B2 (en) * 2007-06-01 2011-10-04 International Business Machines Corporation Apparatus and method for distinguishing temporary and permanent errors in memory modules
US7783919B2 (en) 2007-09-12 2010-08-24 Dell Products, Lp System and method of identifying and storing memory error locations
JP2009181439A (ja) * 2008-01-31 2009-08-13 Toshiba Corp メモリシステム
WO2010013437A1 (ja) * 2008-07-30 2010-02-04 パナソニック株式会社 誤り訂正機能付きコントローラ、誤り訂正機能付き記憶装置、及び誤り訂正機能付きシステム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020016942A1 (en) 2000-01-26 2002-02-07 Maclaren John M. Hard/soft error detection
US20060282755A1 (en) 2005-05-31 2006-12-14 Jong-Hoon Oh Random access memory having ECC

Also Published As

Publication number Publication date
WO2012007266A1 (de) 2012-01-19
KR20130031888A (ko) 2013-03-29
DE102010031282A1 (de) 2012-01-19
CN102971714A (zh) 2013-03-13
US20130191701A1 (en) 2013-07-25
KR101805234B1 (ko) 2018-01-10
US9170875B2 (en) 2015-10-27
CN102971714B (zh) 2017-05-17

Similar Documents

Publication Publication Date Title
DE102010031282B4 (de) Verfahren zum Überwachen eines Datenspeichers
DE102012109614B4 (de) Verfahren zum Wiederherstellen von Stapelüberlauf- oder Stapelunterlauffehlern in einer Softwareanwendung
EP1854007A2 (de) Verfahren, betriebssysem und rechengerät zum abarbeiten eines computerprogramms
DE102009047875A1 (de) Speicherreparatur
DE2225841B2 (de) Verfahren und Anordnung zur systematischen Fehlerprüfung eines monolithischen Halbleiterspeichers
DE102004020875B4 (de) Verfahren und Vorrichtung zum Maskieren bekannter Ausfälle während Speichertestauslesungen
DE102015210651B4 (de) Schaltung und Verfahren zum Testen einer Fehlerkorrektur-Fähigkeit
WO2004064075A1 (de) Verfahren zur erkennung und/oder korrektur von speicherzugriffsfehlern und elektronische schaltungsanordnung zur durchführung des verfahrens
DE102006036386A1 (de) Mikroprozessorsystem zur Steuerung bzw. Regelung von zumindest zum Teil sicherheitskritischen Prozessen
EP1359485B1 (de) Steuer- und Überwachungssystem
DE102013202865A1 (de) Verfahren zum Überwachen eines Datenspeichers
DE102006036384A1 (de) Mikroprozessorsystem zur Steuerung bzw. Regelung von zumindest zum Teil sicherheitskritischen Prozessen
DE102005060901A1 (de) Verfahren zur Erkennung einer Versorgungsunterbrechung in einem Datenspeicher und zur Wiederherstellung des Datenspeichers
EP1924914B1 (de) Datenverarbeitungssystem und betriebsverfahren dafür
DE10148047B4 (de) Verfahren und Vorrichtung zur Sicherung von Daten in einem Speicherbaustein und Speicherbaustein
DE10340236B4 (de) Anordnung mit einer Datenverarbeitungseinrichtung und einem Speicher
DE2823457A1 (de) Verfahren und schaltungsanordnung zur fehlerueberwachung in speichersystemen digitaler rechenanlagen
DE10029141A1 (de) Verfahren zur Fehlerüberwachung eines Speicherinhalts mittels Prüfsummen sowie Mikrocontroller mit einem prüfsummengesicherten Speicherbereich
DE102020120335B3 (de) Testen eines speicherbereichs
DE10148157B4 (de) Programmgesteuerte Einheit
EP2002446B1 (de) Verfahren zum betreiben einer speichereinrichtung mit markierung von als fehlerhaft erkannten speicherblöcken
EP0919917B1 (de) Verfahren zum Testen des Pufferspeichers eines Mikroprozessorsystems
DE10113319A1 (de) Verfahren zum Betrieb eines von einem Prozessor gesteuerten Systems
WO2020182599A1 (de) Verfahren und vorrichtung zum betreiben einer nichtflüchtigen speichereinrichtung
DE102020207616A1 (de) Verfahren zum Betreiben einer Recheneinheit

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final