DE10148047A1 - Verfahren und Vorrichtung zur Sicherung von Daten in einem Speicherbaustein und Speicherbaustein - Google Patents

Verfahren und Vorrichtung zur Sicherung von Daten in einem Speicherbaustein und Speicherbaustein

Info

Publication number
DE10148047A1
DE10148047A1 DE10148047A DE10148047A DE10148047A1 DE 10148047 A1 DE10148047 A1 DE 10148047A1 DE 10148047 A DE10148047 A DE 10148047A DE 10148047 A DE10148047 A DE 10148047A DE 10148047 A1 DE10148047 A1 DE 10148047A1
Authority
DE
Germany
Prior art keywords
data
bit
stored
validity
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE10148047A
Other languages
English (en)
Other versions
DE10148047B4 (de
Inventor
Claus-Peter Kubiak
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 DE10148047A priority Critical patent/DE10148047B4/de
Priority to GB0221919A priority patent/GB2383858B/en
Priority to US10/261,801 priority patent/US6654288B2/en
Publication of DE10148047A1 publication Critical patent/DE10148047A1/de
Application granted granted Critical
Publication of DE10148047B4 publication Critical patent/DE10148047B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

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)
  • Read Only Memory (AREA)

Abstract

Verfahren und Vorrichtung zur Sicherung von Daten in einem nichtflüchtigen Speicherbaustein sowie Speicherbaustein, wobei die Daten mehrfach in dem Speicherbaustein abgelegt werden, wobei die Daten mit wenigstens einem Prüfkennzeichen derart gesichert werden, dass das Prüfkennzeichen und ein bitweiser Inhalt der Daten korreliert sind und mit wenigstens einem Gültigkeitskennzeichen vorgegeben wird, welche der mehrfach abgelegten Daten auslesbar sind, wobei neben den Daten auch die zu den Daten gehörenden Prüfkennzeichen und die zu den Daten gehörenden Gültigkeitskennzeichen mehrfach im Speicherbaustein abgelegt und den entsprechenden Daten zugeordnet sind und die Sicherung der Daten weiterhin dadurch erfolgt, dass wenigstens die mehrfach im Speicherbaustein abgelegten Daten beim Auslesen bitweise logisch verknüpft werden.

Description

    Stand der Technik
  • Die Erfindung betrifft ein Verfahren und eine Vorrichtung zur Sicherung von Daten in einem nicht flüchtigen Speicherbaustein sowie einen Speicherbaustein, wobei die Daten mehrfach in dem Speicherbaustein abgelegt werden gemäß den unabhängigen Ansprüchen.
  • Ein Verfahren zum Einschreiben von Daten und Programmen in wenigstens einen ersten Speicher eines Computersystems ist aus der DE 198 39 680 A1 bekannt. Dabei sind die Programme in wenigstens erste Programme und zweite Programme aufgeteilt. Neben dem ersten Speicher wird dabei zumindest ein zweiter Speicher eingesetzt, wobei eine definierte Aufteilung in Speicherbereiche vorgegeben wird. Die Daten werden in den Speicherbereichen gesichert, indem vor dem Löschen, Kopieren oder Einlesen der Daten und Programme von diesen eine Sicherungskopie in wenigstens einem der wenigstens zwei Speicher erzeugt wird. Diese Sicherungskopie wird nach erfolgreichem Programmieren entweder gelöscht oder als Original weiter verwendet, muss also nicht bleibend abgelegt oder von außen neu eingeschrieben werden.
  • Um Datenfehler, beispielsweise bei fehlerhaften Speicher- oder Programmiervorgängen zu erkennen, sind vielfältige Verfahren bekannt. Dazu müssen die Daten in einem Fehlercode bzw. Fehlererkennungscode dargestellt werden. Solche Informationen sind beispielsweise Paritätsbits, die eine Fehlererkennung durch Checksummenbildung wie Quersummen- und/oder Längssummenbildung (even parity check) erlauben.
  • Weitere linear und/oder zyklisch ausführbare Prüfverfahren sind mit dem Hemming-Code, dem BCH-Code (Bose, Chandhuri, Hocquenghem) und dem Abramsen-Code bekannt. Zu dieser Prüfmethodik ist auch der Cyclic Redundancy Check (CRC) zu zählen, bei welchem aus den Daten außer den zu löschenden bzw. zu kopierenden oder einzulesenden Informationen blockweise Prüfbytes eben nach dem CRC-Verfahren erzeugt und mit diesen Informationen verarbeitet bzw. aufgezeichnet werden. Daneben ist im Allgemeinen der Speicherbedarf für diese Prüfbytes bzw. Prüfbits sehr hoch.
  • Dabei ist allgemein nicht gewährleistet, dass sowohl sofortige Datenverluste als auch schleichende Datenverluste in einem nicht flüchtigen Speicherbaustein erkannt werden können und korrigiert werden können. D. h. das bisherige bereits bekannte Verfahren beispielsweise schleichende Datenverluste wie Bitkipper zwar erkennen, aber im Allgemeinen nicht korrigieren können.
  • Es liegt somit die Aufgabe zu Grunde oben genannte Situation zu optimieren, insbesondere sowohl sofortige Datenverluste als auch schleichende Datenverluste in einem nicht flüchtigen Speicherbaustein zu erkennen und zu korrigieren.
  • Vorteile der Erfindung
  • Die Erfindung betrifft ein Verfahren und eine Vorrichtung zur Sicherung von Daten in einem nichtflüchtigen Speicherbaustein sowie einen entsprechenden Speicherbaustein, wobei die Daten mehrfach in dem Speicherbaustein abgelegt werden und die Daten mit wenigstens einem Prüfkennzeichen derart gesichert werden, dass das Prüfkennzeichen und ein bitweiser Inhalt der Daten korreliert sind, wobei mit wenigstens einem Gültigkeitskennzeichen vorgegeben wird, welche der mehrfach abgelegten Daten auslesbar sind, also ausgelesen werden dürfen. Dabei werden vorteilhafter Weise neben den Daten auch die zu den Daten gehörenden jeweiligen Prüfkennzeichen und die zu den Daten gehörenden jeweiligen Gültigkeitskennzeichen mehrfach im Speicherbaustein abgelegt und den entsprechenden Daten zugeordnet, wobei die Sicherung der Daten weiterhin zweckmäßiger Weise dadurch erfolgt, dass wenigstens die mehrfach im Speicherbaustein abgelegten Daten beim Auslesen bitweise logisch verknüpft werden.
  • Vorteilhafter Weise werden die Daten beim Auslesen bitweise verodert (ODER, OR), wodurch Bitkipper, also schleichende Datenverluste verhindert bzw. korrigiert werden können.
  • Dabei ist zweckmäßig, dass nicht vollständig oder fehlerhaft abgelegte Daten anhand des wenigstens eines Prüfkennzeichens und/oder anhand des wenigstens einen Gültigkeitskennzeichens erkannten werden, wobei dann andere vollständige und fehlerfreie der redundanten, mehrfach abgelegten Daten ausgelesen werden.
  • Dabei finden vorteilhafter Weise ein erstes und ein zweites Gültigkeitskennzeichen Verwendung, wobei das erste Gültigkeitskennzeichen angibt, ob die zu diesem Gültigkeitskennzeichen zugeordneten Daten auslesbar sind, also gültig sind und das zweite Gültigkeitskennzeichen vorgibt, ob die Daten derart in einen Bereich des Speicherbausteins ablegbar sind, dass die in diesem Bereich befindlichen Daten ersetzt werden können, also die bereits vorliegenden Daten veraltet sind.
  • Dabei wird zweckmäßiger Weise wenigstens ein Gültigkeitskennzeichen vor dem Ablegen der Daten in dem Speicherbaustein auf einen ersten Wert gesetzt und nach dem vollständigen Ablegen der Daten auf einen zweiten Wert, wobei sich der erste Wert und der zweite Wert in mehr als einem Bit unterscheiden und bei einer Prüfung des Gültigkeitskennzeichens lediglich festgestellt wird, ob der Wert ungleich, insbesondere größer als der erste Wert ist. Dies hat den Vorteil, dass damit einzelne Bitkipper oder einzelne Datenverluste bezüglich des Gültigkeitskennzeichens keine negativen Auswirkungen auf das Ergebnis der Überprüfung haben.
  • So werden durch das Verfahren der Vorrichtung und des Speicherbausteins vorteilhafter Weise sowohl sofortige Datenverluste, wie z. B. Schreibunterbrechungen als auch schleichende Datenverluste, wie z. B. Bitkipper erkannt und korrigiert.
  • Weitere Vorteile und vorteilhafte Ausgestaltungen ergeben sich aus der Beschreibung und den Ansprüchen. Insbesondere ist der erfindungsgemäße Speicherbaustein nicht flüchtig, wobei die Daten elektrisch oder optisch oder magnetisch ablegbar sind, wobei der Speicherbaustein elektrisch oder optisch oder magnetisch wiederbeschreibbar ausgebildet ist.
  • Zeichnungen
  • Im Weiteren wird die Erfindung anhand der in der Zeichnung dargestellten Figuren näher erläutert.
  • Dabei zeigt Fig. 1 ein mögliches Speicherlayout eines erfindungsgemäßen Bausteines,
  • Fig. 2 ein Verfahren, auf welche Weise die Daten aus dem Speicherbaustein ausgelesen bzw. ausgewertet werden und Fig. 3, auf welche Weise die Daten in den Speicherbaustein abgelegt werden.
  • Beschreibung der Ausführungsbeispiele
  • Anhand eines dargestellten Ausführungsbeispieles wird die Erfindung näher erläutert. Nachfolgend beschrieben ist ein Ausführungsbeispiel, bei dem der Speicherbaustein als nicht flüchtiger Speicherbaustein, insbesondere als EEPROM ausgebildet ist. Anstelle eines EEPROMs kann jeder andere, speziell nichtflüchtige Speicherbaustein wie Flash-EPROM, oder jeder sonstige Flashbaustein ebenso wie andere insbesondere optisch oder magnetisch oder elektrisch wiederbeschreibbare Speicherbausteine Verwendung finden. Das Verfahren bzw. die Vorrichtung und der Speicherbaustein haben dabei folgende Aufgaben zu erfüllen; einerseits das Abspeichern der Daten in den Speicherbaustein, das Rücklesen der Daten aus dem Speicherbaustein, die Erkennung und Korrektur von schleichenden Datenverlusten sowie die Erkennung von Schreibabbrüchen, also sofortigen Datenverlusten. Dabei wird im Weiteren nur von EEPROM im Beispiel gesprochen; wie oben bereits erwähnt, ist dies aber nicht einschränkend im Sinne des Gegenstandes der Erfindung zu verstehen.
  • Fig. 1 zeigt ein mögliches Speicherlayout des EEPROM- Bausteines 100. Der erste Bereich 103 enthält ein bestimmtes Prüfmuster PM als Kennung für das verwendete Speicherlayout. Dieses Prüfmuster PM kann insbesondere durch ein Gültigkeitskennzeichen GKPM, eben ein Gültigkeitsflag und ein Prüfkennzeichen PKPM, insbesondere eine Checksumme, abgesichert sein. Der zweite Bereich 104 enthält Daten De, die nur einfach abgelegt sind, wobei diese Daten De ebenfalls mit Gültigkeitskennzeichen GKDe und Prüfkennzeichen PKDe gesichert sind.
  • Der dritte Bereich 105 enthält erfindungsgemäß besonders gesicherte Daten Dm, die mehrfach, insbesondere zweifach, abgelegt sind. Als Gültigkeitskennzeichen werden hier in diesem Beispiel insbesondere zwei Gültigkeitskennzeichen verwendet; ein Validflag VF und ein Blockflag BF. So sind die mehrfach abgelegten Daten Dm, hier zweifach (Dm1 und Dm2), jeweils mit einem Validflag VFDm und einem Blockflag BFDm gesichert und können jeweils mit einem Prüfkennzeichen, insbesondere einer Checksumme PKDm geprüft werden. Ein erfindungsgemäßer Datensatz besteht somit aus VFDm1, dem Validflag für die mehrfach abgelegten Daten Dm1, einem Blockflag BFDm1 für die mehrfach abgelegten Daten Dm1, den Daten Dm1 selbst und einem Prüfkennzeichen PKDm1, insbesondere einer Prüfsumme oder Checksumme. Die beiden Gültigkeitskennzeichen VFDm1 und BFDm1 werden im Weiteren näher erläutert.
  • Die Struktur für die Daten Dm1 wiederholt sich dann für die Daten Dm2, ist also auch bezüglich der Gültigkeitskennzeichen VFDm2 und BFDm2 und der Prüfkennzeichen PKDm2 mehrfach abgelegt.
  • Der Speicherbaustein steht mit einer Steuereinheit, insbesondere einem Prozessor, Mikroprozessor, Mikrocomputer, Mikrocontroller oder dergleichen im Rahmen einer Ablaufsteuerung über eine beliebige Schnittstelle 102 in Verbindung.
  • Allen Bereichen des Speicherbausteins, insbesondere des EEPROMs 100, gemeinsam ist, dass die Daten De oder Dm bzw. PM für das Prüfmuster durch Gültigkeitskennzeichen und Prüfkennzeichen abgesichert sind. Speziell die Daten im dritten Bereich sind neben den ersten Gültigkeitskennzeichen VFDm1 und VFDm2 durch zusätzliche Gültigkeitskennzeichen, die Blockflags BFDm1 und BFDm2, abgesichert.
  • Mit Hilfe des Prüfmusters PM im ersten Bereich 103 wird entschieden, ob das Speicherlayout im EEPROM zur Anwendung kompatibel ist oder nicht. Falls das Speicherlayout im EEPROM zur Anwendung nicht kompatibel ist, werden Standardwerte in das EEPROM kopiert.
  • Im Allgemeinen wird ein ungewollter Datenverlust durch unmittelbare Vorgänge also sofortige Datenverluste, wie Schreibabbrüche oder Versorgungsspannungsunterbrechungen und/oder mittelbare Vorgänge also schleichende Datenverluste, wie beispielsweise Bitkipper, entstehen.
  • Eine Absicherung gegen Datenverlust durch unmittelbare Vorgänge erfolgt folgendermaßen:
    Zu Beginn eines Abspeichervorganges wird das betreffende Validflag, beispielsweise VFDm1 im EEPROM auf einen ersten Wert, insbesondere 0X00 gesetzt. Nach abgeschlossener Abspeicherung und Aktualisierung des Prüfkennzeichens wird das Validflag VFDm1 als Gültigkeitskennzeichen mit einem zweiten Wert, insbesondere 0XFF beschrieben. Beim Zurücklesen der Daten, beispielsweise in einen flüchtigen Speicher 106, insbesondere ein Arbeitsspeicher also z. B. ein RAM, was also einem Auslesen der Daten aus dem nichtflüchtigen Speicherbaustein gleichkommt, erfolgt eine Untersuchung auf Gültigkeit bzw. Auslesbarkeit der Daten, indem das Gültigkeitskennzeichen VFDm1 überprüft wird. Ist das Validflag VFDm1 gleich dem ersten Wert, also hier 0X00, so wurden die Daten nicht vollständig geschrieben bzw. abgelegt. Ist das Validflag VFDm1 gleich dem zweiten Wert 0XFF, so wurden die Daten vollständig geschrieben. Erfindungsgemäß wird nun aber nicht auf Gleichheit mit dem zweiten Wert, z. B. 0XFF, geprüft, sondern lediglich darauf, ob der Wert für das Validflag VFDm1 größer als der erste Wert 0X00 ist. Der Vorteil dieser Vorgehensweise ist der, dass einzelne Bitkipper, also einzelne schleichende Datenverluste in dem Validflag VFDm1 keine negativen Auswirkungen auf das Ergebnis der Überprüfung haben.
  • Die Absicherung gegen Datenverlust durch mittelbare Vorgänge, also beispielsweise ein schleichender Datenverlust durch sogenannte Bitkipper wird im Weiteren beschrieben. Bei solchem schleichenden Datenverlust, insbesondere bei Bitkippern, ändert sich der Inhalt einer Speicherzelle des nichtflüchtigen Speichers von beispielsweise logisch 0 nach logisch 1 oder umgekehrt. Bitkipper können somit im Betrieb oder im stromlosen Zustand auftreten. So können Bitkipper beispielsweise von logisch 1 nach logisch 0 dadurch entstehen, wenn die Speicherzellen im EEPROM sehr häufig bei hohen Temperaturen beschrieben werden. Die Bitkipper sind physikalisch bedingt und entstehen durch einen sehr langsam auftretenden Spannungsverlust in einer EEPROM-Zelle. Jeder Schreibvorgang, auch beispielsweise ein Refresh, führt zur zusätzlichen Möglichkeit eines solchen Bitkippers. Daher wird erfindungsgemäß ein Byte oder Bit oder sonstiger Datenblock beliebiger Länge nur dann in das EEPROM geschrieben, wenn der Inhalt des zuvor dafür abgelegten Datenbestandes nicht mehr aktuell ist, also veraltet ist und somit ersetzt werden darf bzw. soll.
  • Die Aufgabe, Bitkipper zu erkennen und weitgehend zu kompensieren, wird dadurch gelöst, dass die Daten im EEPROM doppelt abgelegt sind. Mit Hilfe des Prüfkennzeichens und der Gültigkeitskennzeichen, wie erfindungsgemäß beschrieben, wird der Abspeicher, also Ablege- bzw. Lese- und Auslesevorgang so gesteuert, dass Inkonsistenzen erkannt und behoben werden. Dabei unterteilen sich die erfindungsgemäßen Gültigkeitskennzeichen in zwei Arten, die schon genannten Validflags und Blockflags.
  • Die wesentliche Aufgabe der Validflags wurde bereits beschrieben. Die Blockflags hingegen dienen u. a. dazu, den Abspeichervorgang so zu steuern, dass die Daten zuerst in den ungültigen oder veralteten Teil der Doppeldatenablage in Bereich 105 geschrieben werden. D. h. zunächst wird der nicht vollständig oder fehlerhaft oder veraltete Teil der Doppeldatenablage für Dm1 oder für Dm2 mit den entsprechenden Gültigkeitskennzeichen und Prüfkennzeichen beschrieben. Um beim Rücklesen der Daten aus dem EEPROM insbesondere in das RAM 106, also beim Auslesen der Daten, Bitkipper, also schleichende Datenverluste, korrigieren zu können, werden immer beide Seiten der Doppelablage, wie beschrieben, mit Daten belegt.
  • Unmittelbar nach dem Abspeichervorgang, also dem Ablegen der Daten müssen die Daten aus dem EEPROM rückgelesen und verglichen werden. Falls wiederholtes Rücklesen einen misslungenen Schreibvorgang signalisiert, wird das Abspeichern unterbrochen und ein Fehler an eine übergeordnete Überwachungseinrichtung gemeldet. Diese übergeordnete Überwachungseinrichtung wird insbesondere durch den Mikrocomputer bzw. die Steuereinheit 101repräsentiert oder ist mit dieser verbunden. Durch das Rücklesen kann das Korrekturverfahren für schleichende Datenverluste oder Bitkipper aber auch für plötzliche Datenverluste wie Schreibabbrüche durchgeführt werden.
  • Zu Beginn des Abspeichervorganges, also des Ablegens der Daten und Kennzeichen, werden die Blockflags auf einen bestimmten Wert, beispielsweise 0X00 gesetzt. Wenn beide Blöcke, also sprich Daten und Kennzeichen zu Dm1 und Dm2 geschrieben sind, werden die Blockflags auf einen zweiten Wert, beispielsweise 0XFF gesetzt. Beim Zurücklesen erfolgt nun die Untersuchung auf Aktualität der Daten. Ist das Blockflag BFDm1 = 0×00, so sind die Daten veraltet. Ist das Blockflag BFDm1 = 0XFF, eben dem zweiten Wert entsprechend, sind die Daten im Datenblock Dm1 bzw. zugehörigem Ablageblock (Bereich im Speicher für Daten und Kennzeichen) aktuell. Erfindungsgemäß wird nun nicht auf Gleichheit mit dem zweiten Wert, sondern auf Ungleichheit mit dem ersten Wert geprüft. Es wird insbesondere geprüft, ob das Blockflag BFDm1 > 0 ist oder nicht. Ist das Blockflag > 0, sind die Daten im Block aktuell. Auch hier besteht der Vorteil, dass einzelne Bitkipper in dem Blockflag keine negativen Auswirkungen auf das Ergebnis der Überprüfung haben, wie bei den Validflags. Gleiches gilt für BFDm2.
  • Das bisher Beschriebene, insbesondere für die Validflags VFDm1 und die Blockflags BFDm1 gilt generell ebenfalls für den zweiten Ablageblock, also das Validflag VFDm2 und BFDm2 sowie Daten und Prüfkennzeichen.
  • Das Rücklesen der Daten erfolgt im Allgemeinen dadurch, wie bereits erwähnt, dass die Daten vom EEPROM in das RAM kopiert werden. Dabei muss entschieden werden, in welchen Fällen dies möglich ist bzw. wann ein Kopieren nicht möglich ist und Standardwerte in das RAM kopiert werden müssen.
  • Unter der Voraussetzung, dass der EEPROM-Baustein als Gesamtheit einwandfrei funktioniert, hängt die Entscheidung von der Gültigkeit der Checksummen und dem Zustand der Validflags und Blockflags ab.
  • Dazu zeigt Fig. 2 noch einmal auf, in welcher Weite die Daten aus dem EEPROM ausgelesen und ausgewertet werden. Falls die. Daten doppelt abgelegt sind und alle Valid- und Blockflags ungleich 0 sind, werden Bitkipper dadurch korrigiert, dass alle Bitdaten logisch verknüpft, insbesondere bitweise verodert werden.
  • Im Block 200 wird überprüft, ob eine Doppelablage vorliegt oder nicht. Ist dies nicht der Fall, gelangt man zu Block 201, in dem die Ablage, also die Daten mit entsprechenden Kennzeichen (Gültigkeits- und Prüfkennzeichen) kopiert werden. Daraufhin gelangt man zu Block 208, wo die Gültigkeit des Prüfkennzeichens, insbesondere der Checksumme überprüft wird. Ist die Checksumme gültig, gelangt man zu Block 210 und dem Normalbetrieb; ist die Checksumme ungültig, werden in Block 209 Standardwerte in EEPROM und RAM kopiert. Ist die Doppelablage vorhanden, gelangt man zu Block 202. Dort wird geprüft, ob die Blockflags und Validflags > 0 sind, wie bereits beschrieben. Ist dies der Fall, gelangt man zu Block 203, wo die Datenablage bzw. Ablage 1 und 2 logisch verknüpft, also die Daten insbesondere bitweise verodert werden und das Ergebnis insbesondere ins RAM kopiert wird. Auch hier gelangt man zur Prüfung 208 auf Gültigkeit der Checksumme mit den gleichen Folgen Normalbetrieb und Kopieren der Standardwerte, abhängig von der Gültigkeit der Checksumme. Sind die Block- und Validflags nicht > 0, ist also ein Fehler aufgetreten, wird zunächst im Block 204 Validflag 1, VFDm1 auf Gültigkeit geprüft. Ist dieses gültig, werden in Block 205 Daten und Kennzeichen zu Dm1, also in Ablage 1, abgelegt und es erfolgt wieder die Prüfung auf gültige Checksumme im Block 208 mit den bereits beschriebenen Folgen.
  • Ist Validflag 1, also VFDm1 nicht gültig, so wird Validflag 2, VFDm2 auf Gültigkeit geprüft (im Block 206). Ist VFDm2 gültig, wird Ablage 2, also Daten und Kennzeichen zu Dm2 kopiert und wiederum die Checksurnme auf Gültigkeit geprüft (im Block 208) mit entsprechenden Folgen. Ist auch Validflag 2 ungültig, gelangt man direkt zu Block 209, in welchem die Standardwerte in EEPROM und RAM kopiert werden.
  • Fig. 3 zeigt nun eine erfindungsgemäße Möglichkeit, auf welche Weise die Daten in das EEPROM abgelegt bzw. abgespeichert werden. Der Beginn des Verfahrens liegt im Block 300. In Abfrage 301 wird überprüft, ob Validflag 2, also VFDm2 > 0 ist. Ist dies nicht der Fall, sind also die Daten in Datenblock 2 ungültig, wird im Block 302 Ablage 2 oder Datenblock 2 adressiert mit einem Adressflag AF, das beispielsweise dann auf 1 gesetzt wird. Aus Block 302 gelangt man zu Block 304, in welchem eine Initialisierung des Validflags und Blockflags sowie der Checksumme des zu beschreibenden Datenblocks durchgeführt wird. Im anderen Fall, also wenn ein gültiges Validflag VFDm2 > 0 korrekte Daten in Ablage 2 oder Block 2 anzeigt wird zunächst in Block 303 Ablage 1 addressiert.
  • Gleichermaßen wird ein Element el in 304 initialisiert. Der nachfolgende Kopiervorgang kann entweder in Form von Bytes, Bits oder andersformatigen Datenblöcken erfolgen, möglicherweise insbesondere zellenweise entsprechend dem EEPROM. Diese Einheit, in der das Verfahren, insbesondere der Kopier- oder Ablegevorgang ausgeführt wird, also Bit, Byte oder andersformatiger Datenblock wird mit Element el als Laufvariable bezeichnet.
  • Die Initialisierung im Block 304 erfolgt insbesondere dadurch, dass die Flags und die Checksumme zu 0 (0X00) gesetzt werden. Ist das Validflag 2, also VFDm2 nicht > 0, wird wie gesagt Datenblock 1 adressiert, also die Ablage gehörend zu Dm1, wobei das Adressflag AF insbesondere auf 0 gesetzt wird. Auch hier erfolgt nach der Adressierung der Ablage 1 die Initialisierung im Block 304, allerdings dann der Kennzeichen VFDm1, BFDm1 und PKDm1 zu Dm1.
  • Im Block 305 werden nun die Elemente el, hier beispielsweise die Bytes, ins EPROM kopiert, wie nachfolgend beschrieben. Zunächst wird für jedes Byte also Element el geprüft, ob das Validflag > 0 ist oder nicht, also der Ablege- oder Schreibvorgang abgeschlossen ist oder nicht. Ist das Validflag nicht > 0, also der Kopiervorgang nicht abgeschlossen wird im Block 307 geprüft, ob das letzte Element el vorliegt, das kopiert werden soll. Ist dies nicht der Fall, gelangt man zum Block 308 zum nächsten Element und damit zum inkrementieren von el und anschließend zum erneuten Kopieren in Block 305.
  • Ist das letzte Element gewählt, wird das Validflag im Block 309 gesetzt, beispielsweise auf den Wert 0XFF und das Element el wieder zu 0 initialisiert. Man gelangt ein letztes Mal in den Kopierblock 305. Ist das Validflag jetzt > 0 (wenn kein Fehler da Validflag gesetzt), gelangt man zu Block 310.
  • Darin wird beispielsweise folgende Bedingung abgeprüft:
    Blockflag BF > 0 (D und [(Adressflag = 0 und Validflag 2 > 0) oder (Adressflag > 0 und Validflag 2 = 0)].
  • Wiederholung der Bedingung mit Erläuterungen in geschweiften Klammern:
    Blockflag BF > 0 {Daten aktuell?} und [(Adressflag = 0 {Ablage 1} und Validflag 2 > 0 {Ablage 2 vollständig}) oder (Adressflag > 0 {AF = 1, Ablage 2} und Validflag 2 = 0){Ablage 2 nicht vollständig}]
  • Ist diese Bedingung erfüllt, gelangt man zum Verfahrensende im Block 316.
  • Ist diese nicht erfüllt, gelangt man zu Block 311, wo dann weiterhin geprüft wird, ob Blockflag = 0 und [(Adressflag = 0 und Validflag 2 = 0) oder (Adressflag AF > 0 und Validflag 2 > 0)].
  • Wiederholung der Bedingung mit Erläuterungen in geschweiften Klammern:
    Blockflag = 0 {Daten nicht aktuell} und [(Adressflag = 0 {Ablage 1} und Validflag 2 = 0){Ablage 2 nicht vollständig} oder (Adressflag AF > 0 {AF = 1, Ablage 2} und Validflag 2 > 0) {Ablage 2 vollständig}]
  • Ist dies der Fall, wird das erste Blockflag, also BFDm1 gesetzt, beispielsweise auf den Wert 0XFF im Block 312 und das Element el zu 1.
  • Ist die Abfrage in Block 311 nicht erfüllt, gelangt man zu Block 313. Dort wird geprüft, ob das Blockflag > 0 ist. Ist dies der Fall, wird das zweite Blockflag BFDm2 gesetzt, das Adressflag AF invertiert und Element el zu 1 gesetzt (im Block 314).
  • Ist das Blockflag nicht > 0, gelangt man zu Block 315, wo eine Umschaltung zwischen den Datenblocks, also Ablagen 1 nach 2 oder umgekehrt erfolgt (je nach Vorrausetzungen im Verfahren vorher), das Adressflag AF ebenfalls invertiert wird und das Validflag, das Element el und die Checksumme auf 0 gesetzt, also initialisiert werden. Aus Block 312, 314 und 315 gelangt man wiederum in den Block 305 Kopieren der Bytes ins EEPROM.
  • Damit ergibt sich ein Verfahren zur sicheren Abspeicherung von Daten in nichtflüchtige, wiederbeschreibbare Speicherbausteine, wobei die Daten inklusive der Gültigkeitskennzeichen und Prüfkennzeichen im Speicherbaustein mehrfach abgelegt sind, wobei die Gültigkeit der Daten durch ein oder mehrere Gültigkeitsflags gekennzeichnet ist, wobei die Gültigkeit der Daten durch ein oder mehrere Checksummen abgesichert ist und die Auswertung der Daten durch den Zustand der Gültigkeitsflags und der Korrektheit der Checksummen gesteuert wird.
  • Weiterhin werden Datenverluste dadurch korrigiert, indem mehrfach abgelegte Daten logisch miteinander verknüpft werden und Schreibabbrüche durch den Zustand der Gültigkeitsflags und der Korrektheit der Checksummen erkannt werden. Bei erkannten Schreibabbrüchen wird auf eine andere gültige Ablage zugegriffen. Wie in Fig. 1 beschrieben, ist der Speicherbaustein an eine Ablaufsteuerung wie beispielsweise einen Mikroprozessor, eben eine Steuereinheit, angeschlossen. Dabei ist der Speicherbaustein elektrisch, magnetisch oder optisch wiederbeschreibbar.

Claims (8)

1. Verfahren zur Sicherung von Daten in einem nichtflüchtigen Speicherbaustein, wobei die Daten mehrfach in dem Speicherbaustein abgelegt werden, wobei die Daten mit wenigstens einem Prüfkennzeichen derart gesichert werden, dass das Prüfkennzeichen und ein bitweiser Inhalt der Daten korreliert sind und mit wenigstens einem Gültigkeitskennzeichen vorgegeben wird welche der mehrfach abgelegten Daten auslesbar sind dadurch gekennzeichnet, dass neben den Daten auch die zu den Daten gehörenden Prüfkennzeichen und die zu den Daten gehörenden Gültigkeitskennzeichen mehrfach im Speicherbaustein abgelegt und den entsprechenden Daten zugeordnet sind und die Sicherung der Daten weiterhin dadurch erfolgt, dass wenigstens die mehrfach im Speicherbaustein abgelegten Daten beim Auslesen bitweise logisch verknüpft werden.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Daten beim Auslesen bitweise verodert werden.
3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass nicht vollständig oder fehlerhaft abgelegte Daten anhand des wenigstens einen Prüfkennzeichens und/oder anhand des wenigstens einen Gültigkeitskennzeichens erkannt werden, wobei dann andere, vollständige und fehlerfreie, der mehrfach abgelegten Daten ausgelesen werden.
4. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass ein erstes und ein zweites Gültigkeitskennzeichen Verwendung findet, wobei das erste Gültigkeitskennzeichen angibt, ob die zu diesem Gültigkeitskennzeichen zugeordneten Daten auslesbar sind und das zweite Gültigkeitskennzeichen vorgibt, ob Daten derart in einem Bereich des Speicherbausteins ablegbar sind, das die in diesem Bereich befindlichen Daten ersetzt werden können.
5. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das wenigstens eine Gültigkeitskennzeichen vor dem Ablegen der Daten in dem Speicherbaustein auf einen ersten Wert gesetzt wird und nach dem vollständigen Ablegen der Daten auf einen zweiten Wert, wobei sich der erste Wert und der zweite Wert in mehr als einem Bit unterscheiden und bei einer Prüfung des Gültigkeitskennzeichens lediglich festgestellt wird ob der Wert ungleich, insbesondere größer, dem ersten Wert ist.
6. Vorrichtung mit einem nichtflüchtigen Speicherbaustein und einer Steuereinheit zur Sicherung von Daten in dem nichtflüchtigen Speicherbaustein, wobei erste Mittel enthalten sind, welche die Daten mehrfach in dem Speicherbaustein ablegen, wobei zweite Mittel enthalten sind, welche die Daten mit wenigstens einem Prüfkennzeichen derart sichern, dass das Prüfkennzeichen und ein bitweiser Inhalt der Daten korreliert sind und mit wenigstens einem Gültigkeitskennzeichen vorgeben welche der mehrfach abgelegten Daten auslesbar sind dadurch gekennzeichnet, dass neben den Daten auch die zu den Daten gehörenden Prüfkennzeichen und die zu den Daten gehörenden Gültigkeitskennzeichen mehrfach im Speicherbaustein abgelegt und den entsprechenden Daten zugeordnet sind und die Sicherung der Daten weiterhin durch dritte Mittel dadurch erfolgt, dass wenigstens die mehrfach im Speicherbaustein abgelegten Daten beim Auslesen bitweise logisch verknüpft werden.
7. Speicherbaustein zur Sicherung von Daten, wobei die Daten mehrfach in dem Speicherbaustein abgelegt werden, wobei Mittel enthalten sind, welche die Daten mit wenigstens einem Prüfkennzeichen derart sichern, dass das Prüfkennzeichen und ein bitweiser Inhalt der Daten korreliert sind und mit wenigstens einem Gültigkeitskennzeichen vorgeben welche der mehrfach abgelegten Daten auslesbar sind dadurch gekennzeichnet, dass weitere Mittel enthalten sind, welche neben den Daten auch die zu den Daten gehörenden Prüfkennzeichen und die zu den Daten gehörenden Gültigkeitskennzeichen mehrfach im Speicherbaustein ablegen und den entsprechenden Daten zuordnen und die Sicherung der Daten weiterhin durch die weiteren Mittel dadurch erfolgt, dass wenigstens die mehrfach im Speicherbaustein abgelegten Daten beim Auslesen bitweise logisch verknüpft werden.
8. Speicherbaustein nach Anspruch 6, dadurch gekennzeichnet, dass dieser nichtflüchtig ist und Daten elektrisch oder optisch oder magnetisch ablegbar sind, wobei der Speicherbaustein elektrisch oder optisch oder magnetisch wiederbeschreibbar ausgebildet ist.
DE10148047A 2001-09-28 2001-09-28 Verfahren und Vorrichtung zur Sicherung von Daten in einem Speicherbaustein und Speicherbaustein Expired - Fee Related DE10148047B4 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE10148047A DE10148047B4 (de) 2001-09-28 2001-09-28 Verfahren und Vorrichtung zur Sicherung von Daten in einem Speicherbaustein und Speicherbaustein
GB0221919A GB2383858B (en) 2001-09-28 2002-09-20 Method and device for securing data in a memory component and memory component
US10/261,801 US6654288B2 (en) 2001-09-28 2002-09-30 Method and device for backing up data in a memory module and memory module

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10148047A DE10148047B4 (de) 2001-09-28 2001-09-28 Verfahren und Vorrichtung zur Sicherung von Daten in einem Speicherbaustein und Speicherbaustein

Publications (2)

Publication Number Publication Date
DE10148047A1 true DE10148047A1 (de) 2003-04-10
DE10148047B4 DE10148047B4 (de) 2013-06-27

Family

ID=7700744

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10148047A Expired - Fee Related DE10148047B4 (de) 2001-09-28 2001-09-28 Verfahren und Vorrichtung zur Sicherung von Daten in einem Speicherbaustein und Speicherbaustein

Country Status (3)

Country Link
US (1) US6654288B2 (de)
DE (1) DE10148047B4 (de)
GB (1) GB2383858B (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7844577B2 (en) 2002-07-15 2010-11-30 Symantec Corporation System and method for maintaining a backup storage system for a computer system
US20050160308A1 (en) * 2004-01-09 2005-07-21 General Instrument Corporation Failure recovery for digital video recorders
US7877628B2 (en) * 2006-06-08 2011-01-25 International Business Machines Corporation Mirroring data between primary and secondary sites
CN110347527A (zh) * 2018-04-02 2019-10-18 深信服科技股份有限公司 一种校验和状态的判定方法、系统、装置及可读存储介质
JP7244352B2 (ja) * 2019-05-22 2023-03-22 ファナック株式会社 ファイル管理装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3364356B2 (ja) * 1995-03-30 2003-01-08 富士通株式会社 メモリ書替え装置
JP3671595B2 (ja) * 1997-04-01 2005-07-13 株式会社日立製作所 複合計算機システムおよび複合i/oシステム
JP3522507B2 (ja) * 1997-09-29 2004-04-26 シャープ株式会社 半導体記憶装置およびそれを備える販売処理装置
US6092086A (en) * 1998-03-31 2000-07-18 Bmc Software System and method for handling backout processing during capture of changed data in an enterprise computer system
DE19839680B4 (de) * 1998-09-01 2005-04-14 Robert Bosch Gmbh Verfahren und Vorrichtung zur Veränderung des Speicherinhalts von Steuergeräten
JP2990181B1 (ja) * 1998-09-28 1999-12-13 日本電気アイシーマイコンシステム株式会社 フラッシュメモリ、フラッシュメモリを備えたマイクロコンピュータおよびフラッシュメモリへのプログラム格納方法
DE19937423C2 (de) * 1999-08-07 2001-10-04 Ibm Verfahren zur schnellen Datensicherung und Datenübertragung
JP2001084002A (ja) * 1999-09-10 2001-03-30 Aisin Seiki Co Ltd 制御装置
US6460055B1 (en) * 1999-12-16 2002-10-01 Livevault Corporation Systems and methods for backing up data files

Also Published As

Publication number Publication date
GB2383858B (en) 2004-09-29
US6654288B2 (en) 2003-11-25
US20030081468A1 (en) 2003-05-01
DE10148047B4 (de) 2013-06-27
GB0221919D0 (en) 2002-10-30
GB2383858A (en) 2003-07-09

Similar Documents

Publication Publication Date Title
DE102006033649B4 (de) Speicherbauelement und Verfahren zum Konfigurieren eines Speicherbauelements
DE19782077B4 (de) Verfahren und Vorrichtung zum Korrigieren eines Mehrpegelzellenspeichers durch Verwendung fehlerlokalisierender Codes
DE19839680B4 (de) Verfahren und Vorrichtung zur Veränderung des Speicherinhalts von Steuergeräten
DE2030760A1 (de) Speicherschaltung
DE102010031282B4 (de) Verfahren zum Überwachen eines Datenspeichers
DE102005052698A1 (de) Verfahren zur Verarbeitung von nichtflüchtig gespeicherten Daten
DE2942998A1 (de) Fehler-korrektur- und -erkennungs- anordnung
DE112007003015T5 (de) Verfahren und Vorrichtung zur Cache-gestützten Fehlerdetektion und -korrektur in einem Speicher
EP1190324B1 (de) Verfahren zum gesicherten schreiben eines zeigers für einen ringspeicher
DE112014002403B4 (de) Hochleistungs-Lese-Modifizier-Schreib-System mit Zeilenratenzusammenführung von Datenrahmensegmenten in Hardware
EP0615211B1 (de) Verfahren zum Speichern sicherheitsrelevanter Daten
DE2513262B2 (de) Digitale codeumwandlungsanordnung
DE19931184A1 (de) Verfahren und Vorrichtung zur Veränderung des Speicherinhalts von Steuergeräten
EP0902924B1 (de) Redundanzspeichervorrichtung mit rom-speicherzellen
WO2004064075A1 (de) Verfahren zur erkennung und/oder korrektur von speicherzugriffsfehlern und elektronische schaltungsanordnung zur durchführung des verfahrens
DE10148047B4 (de) Verfahren und Vorrichtung zur Sicherung von Daten in einem Speicherbaustein und Speicherbaustein
DE102018219877A1 (de) Vorrichtung und Verfahren zum Erzeugen einer Fehlerkorrekturinformation
DE102020111321A1 (de) System und verfahren zur erkennung und berichtigung von datenfehlern eines transparenten registers
DE2823457C2 (de) Schaltungsanordnung zur Fehlerüberwachung eines Speichers einer digitalen Rechenanlage
DE102005060901A1 (de) Verfahren zur Erkennung einer Versorgungsunterbrechung in einem Datenspeicher und zur Wiederherstellung des Datenspeichers
DE102005045696A1 (de) Verfahren und Schaltung zur Ausfalladressenprogrammierung und Halbleiterspeicherbauelement
DE10260103A1 (de) Verfahren und Vorrichtung zur Änderung von Software in einem Steuergerät sowie entsprechendes Steuergerät
DE102020120335B3 (de) Testen eines speicherbereichs
DE102010006876B4 (de) Verfahren und Vorrichtung zur Kodierung von Daten
DE102009031310B4 (de) Speichersystem, Leseverstärker, Verwendung und Verfahren zur Fehlerdetektion mittels Parity-Bits eines Blockcodes

Legal Events

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

Effective date: 20130928

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee