DE10340010B4 - Verfahren und Vorrichtung zum sicheren Speichern von Daten - Google Patents

Verfahren und Vorrichtung zum sicheren Speichern von Daten Download PDF

Info

Publication number
DE10340010B4
DE10340010B4 DE2003140010 DE10340010A DE10340010B4 DE 10340010 B4 DE10340010 B4 DE 10340010B4 DE 2003140010 DE2003140010 DE 2003140010 DE 10340010 A DE10340010 A DE 10340010A DE 10340010 B4 DE10340010 B4 DE 10340010B4
Authority
DE
Germany
Prior art keywords
status information
deleted
incompletely
programmed
memory
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.)
Expired - Fee Related
Application number
DE2003140010
Other languages
English (en)
Other versions
DE10340010A1 (de
Inventor
Olaf Klopp-Schulze
Thomas Kattwinkel
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE2003140010 priority Critical patent/DE10340010B4/de
Publication of DE10340010A1 publication Critical patent/DE10340010A1/de
Application granted granted Critical
Publication of DE10340010B4 publication Critical patent/DE10340010B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

Verfahren zum Speichern von Daten (8) in einen ersten Speicherbereich (2) eines wiederbeschreibbaren Speichers, der mindestens den ersten Speicherbereich (2) zum Speichern von Daten und mindestens einen zweiten Speicherbereich (3-1, 3-2, ... 3-N) zum Speichern von dem ersten Speicherbereich (2) zugeordneten Statusinformationen vorbestimmter Bitbreite aufweist, wobei die Statusinformationen einen Zustand des ersten Speicherbereichs mit zumindest den Zuständen: „vollständig programmiert" (A), „unvollständig programmiert" (B), „vollständig gelöscht" (C) und „unvollständig gelöscht" (D) charakterisieren, wobei nacheinander die Verfahrensschritte durchgeführt werden:
(a) Auslesen der Statusinformationen aus den zweiten Speicherbereichen (3-1, 3-2, ... 3-N),
(b) Ändern der Statusinformationen auf „unvollständig gelöscht" (D), falls die Statusinformationen den Zustand „vollständig programmiert" (A) charakterisieren,
(c) Löschen des ersten Speicherbereichs (2), falls die Statusinformationen den Zustand „unvollständig programmiert" (B) oder „unvollständig gelöscht" (D) charakterisieren,
(d) Ändern der Statusinformationen auf „vollständig gelöscht"
(C), falls die Statusinformationen einen anderen Zustand als „vollständig gelöscht" (C) charakterisieren,...

Description

  • Die Erfindung betrifft ein Verfahren und eine Vorrichtung zum sicheren Speichern von Daten, insbesondere in wiederbeschreibbare Speicher.
  • Bei Speichern kann es sich um volatile oder nichtvolatile Speicher handeln, wie zum Beispiel RAM, SRAM, EPROM, EEPROM, etc.
  • Bei solchen Speichern kann ein Anwender in der Regel nicht feststellen, ob die in einem Speicher eingeschriebenen Daten gültig sind oder nicht. Das heißt, wenn bei einem Schreibvorgang der Daten in den Speicher Fehler auftreten – zum Beispiel durch Spannungseinbrüche, wenn der Speicher in einer rauen Umgebung betrieben wird, oder durch andere äußere Einflüsse – können die im Speicher vorliegenden Daten ungültig bzw. fehlerhaft sein. Insbesondere bei wiederbeschreibbaren nichtvolatilen Speichern, zum Beispiel EEPROMs oder Flash-Speicher, bereitet dies ein Problem, weil Daten nur in Blöcken – von zum Beispiel typischerweise 128 Bytes – in Speicherbereiche geschrieben bzw. gelöscht werden können.
  • EEPROMs werden beispielsweise im Automobilbereich eingesetzt, um Kilometerstände zu speichern. Dabei ist es selbstverständlich wichtig, den korrekten Kilometerstand abzuspeichern, wobei jedoch Störungen (Spannungsspitzen oder Spannungseinbrüche im Bordnetz zum Beispiel beim Anlassen des Fahrzeugs oder Hochlastverbrauch bei schwacher Batterie) auftreten können. Um dennoch weitestgehend zuverlässige Daten (zum Beispiel den Kilometerstand) zu speichern, wird das Speichern zeitlich nacheinander mehrfach in verschiedene Speicherbereiche eines Speichers durchgeführt. Zum Anzeigen der Daten – in diesem Fall des Kilometerstandes – werden die mehrfach abgespeicherten Daten ausgelesen und anhand einer Mehrheitsent scheidung festgestellt, welche Daten die richtig abgespeicherten Daten sind. Diese (richtigen) Daten werden dann angezeigt.
  • In der 1 ist eine bekannte Speicherarchitektur nach dem Stand der Technik dargestellt. Die zum Abspeichern vorliegenden Daten I sind über Datenleitungen oder einen Datenbus D0 an eine Steuereinheit S gekoppelt, die nacheinander über die jeweiligen Datenleitungen D1, D2, D3 die Daten in die Speicherbereiche M1, M2, M3 schreibt. Falls bei einer dieser Schreibzugriffe ein Spannungseinbruch vorliegt, sind die in dem betroffenen Speicherbereich – zum Beispiel M3 – vorliegenden Daten fehlerhaft. Wenn nun die abgespeicherten Daten ausgegeben werden sollen, liest die Steuereinheit S nacheinander die abgespeicherten Daten in den drei Speicherbereichen aus, vergleicht die vorliegenden Daten und gibt die der Mehrheit entsprechenden (in diesem Fall die gleichen in M1 und M2 vorliegenden Daten) über eine I/O-Schnittstelle aus. Durch das mehrfache Abspeichern, um eine Mehrheitsentscheidung treffen zu können, muss allerdings mindestens die dreifache Speichergröße zur Speicherung einer Informationsmenge bzw. Datenmenge bestimmten Umfangs vorgehalten werden. Die entsprechenden Speicherchips sind daher teuer.
  • Im Dokument WO 03/003219 A1 wird vorgeschlagen, einen Speicherblock von nichtvolatilen Halbleiterspeichern in Seiten zu organisieren, wobei jede Seite jeweils einen Datenbereich und einen Redundanzbereich aufweist. Es sind ferner Merker in dem Redundanzbereich der ersten Seite vorgesehen und in dem Redundanzbereich der letzten Seite eines entsprechenden Speicherblocks. Die beiden Merker sollen einen Zustand des Speicherblocks, insbesondere die Gültigkeit der eingeschriebenen Daten beschreiben. Es ist dabei vorgesehen, zunächst drei Speicherzustände mittels dieser Merker zu charakterisieren und weitere Speicherzustände mit zusätzlichen Merkern, wie beispielsweise einem Writing Done Flag zu beschreiben. Gegenüber dem Stand der Technik nach 1 ist damit zwar ein gewisser Anteil von redundantem Speicherplatzbedarf eingespart, der Speicherzustand kann jedoch nur sehr grob durch die Merker festgelegt werden.
  • Der vorliegenden Erfindung liegt nun die Aufgabe zugrunde, ein einfaches Verfahren zu schaffen, mit dem Daten bei geringem Speicherplatzbedarf sicher abgespeichert werden. Insbesondere soll das Verfahren eine Möglichkeit liefern, die Gültigkeit von in einem nichtvolatilen wiederbeschreibbaren Speicher abgelegten Daten zu bestimmen und Auskunft über etwaige Schreib-/Lese- oder Löschfehler geben.
  • Erfindungsgemäß wird zumindest eine dieser Aufgaben durch ein im Patentanspruch 1 angegebenes Verfahren gelöst. Ferner wird die Aufgabe durch eine Speichervorrichtung mit den Merkmalen des Patentanspruchs 16 gelöst.
  • Ein wesentlicher Gedanke der Erfindung besteht darin, dass neben ersten Speicherbereichen zum Speichern der Daten bzw. der Nutzdaten zweite Speicherbereiche vorgesehen sind, in die Statusinformationen eingeschrieben werden, die den Stand des Einschreibens oder Löschens der Nutzdaten in die ersten Speicherbereiche charakterisieren. Diese Statusinformationen sollen mindestens die Zustände „vollständig programmiert", „unvoll-ständig programmiert", „vollständig gelöscht" und „unvollständig gelöscht" charakterisieren. Anhand der Statusinformationen kann somit immer die Gültigkeit der gespeicherten Nutzdaten festgestellt werden.
  • Da die Statusinformationen gegenüber den Nutzdaten einen geringeren Speicherbedarf aufweisen, wird durch das erfindungsgemäße Verfahren gegenüber dem Stand der Technik Speicherplatz gespart. Ein weiterer Vorteil des erfindungsgemäßen Verfahrens besteht darin, dass gegenüber redundantem Speichern nach dem Stand der Technik weniger Speicherschreib- und Löschzugriffe benötigt werden und so das Verfahren schneller ist.
  • Das erfindungsgemäße Verfahren zum sicheren Speichern von Daten in einen ersten Speicherbereich eines wiederbeschreibbaren Speichers, der mindestens einen zweiten Speicherbereich aufweist zum Speichern von Statusinformationen vorbestimmter Bitbreite, die dem ersten Speicherbereich zugeordnet sind, wobei die Statusinformationen einen Zustand des ersten Speicherbereichs mit zumindest den Zuständen „vollständig programmiert", „unvollständig programmiert", „vollständig gelöscht" und „unvollständig gelöscht" charakterisieren, weist im Wesentlichen die folgenden Verfahrensschritte auf:
    • (a) Auslesen der Statusinformationen aus den zweiten Speicherbereichen,
    • (b) Ändern der Statusinformationen auf „unvollständig gelöscht", falls die Statusinformationen den Zustand „vollständig programmiert" charakterisieren,
    • (c) Löschen des ersten Speicherbereichs, falls die Statusinformationen den Zustand „unvollständig programmiert" oder „unvollständig gelöscht" charakterisieren,
    • (d) Ändern der Statusinformationen auf „vollständig gelöscht", falls die Statusinformationen einen anderen Zustand als „vollständig gelöscht" charakterisieren,
    • (e) Ändern der Statusinformationen auf „unvollständig programmiert",
    • (f) Einschreiben der Daten in den gelöschten ersten Speicherbereich, und
    • (g) Ändern der Statusinformationen auf „vollständig programmiert",
    wobei die Statusinformationen derart kodiert sind, dass zum Ändern der Statusinformationen nur einer der Statusinformationen enthaltende Speicherbereiche beschrieben oder gelöscht wird.
  • Ferner weist die erfindungsgemäße Vorrichtung zum Speichern von Daten, insbesondere zur Durchführung des erfindungsgemäßen Verfahrens, im Wesentlichen auf:
    • (a) einen ersten Speicherbereich zum Speichern der Daten,
    • (b) mindestens einen zweiten Speicherbereich zum Speichern von Statusinformationen,
    • (c) eine Steuereinheit, die über erste Datenleitungen zum Schreiben und Löschen von Daten mit dem ersten Speicherbereich gekoppelt ist, die über zweite Datenleitungen zum Schreiben und Löschen von Statusinformationen mit den zweiten Speicherbereichen gekoppelt ist und die Anschlüsse zur Annahme und Ausgabe von Daten aufweist, wobei die Steuereinheit bei jedem Schreibzugriff und/oder bei jedem Löschzugriff auf die ersten Speicherbereiche Statusinformationen in die zweiten Speicherbereiche schreibt.
  • Weitere vorteilhafte Ausgestaltungen und Weiterbildungen der Erfindung sind Gegenstand der Unteransprüche sowie der Beschreibung unter Bezugnahme auf die Zeichnungen.
  • Gemäß einer vorteilhaften Weiterbildung der Erfindung umfasst das Verfahren nach dem Schritt des Auslesens der Statusinformationen ferner den Schritt „Erzeugen einer Fehlermeldung", falls die Statusinformationen einen anderen Zustand als „vollständig programmiert", „unvollständig programmiert", „vollständig gelöscht" oder „unvollständig gelöscht" charakterisieren. Dadurch kann eine externe Fehleranalyse durchgeführt werden.
  • Gemäß einer weiteren vorteilhaften Weiterbildung ist mindestens ein Bit der Statusinformationen einzeln lösch- oder schreibbar. Dies hat den Vorteil, dass für die Zustände Kodierungen realisierbar sind, bei denen zum Ändern von Zuständen nur ein Schreib- oder Löschvorgang eines einzelnen Bits notwendig ist.
  • Gemäß einer weiteren bevorzugten Weiterbildung der Erfindung sind die Statusinformationen derart kodiert, dass in den Verfahrensschritten zum Ändern der Statusinformation nur jeweils eines der Bits der Statusinformation entweder geschrieben oder gelöscht wird. Dies hat insbesondere den Vorteil, dass im Falle einer geeigneten Zwei-Bit-Kodierung bei einem Übergang zwischen den Zuständen „vollständig programmiert", „unvollständig programmiert", „vollständig gelöscht" und „unvollständig gelöscht" nur eines der beiden Status-Bits gelöscht oder geschrieben werden muss. Durch eine derartige Weiterbildung wird für die Statusinformationen minimaler Speicherplatz benötigt. Außerdem ist der Rechen- bzw. Steueraufwand sehr gering.
  • Gemäß einer weiteren vorteilhaften Weiterbildung charakterisieren die Statusinformationen neben den vier bereits Vorgenannten ferner mindestens einen der folgenden Zwischenzustän de: „vollständig programmiert – unvollständig gelöscht", „unvollständig gelöscht – vollständig gelöscht", „vollständig gelöscht – unvollständig programmiert", „unvollständig programmiert – vollständig gelöscht" und „unvollständig programmiert – vollständig programmiert". Es ist darüber hinaus vorteilhaft, die Kodierung der Statusinformation derart zu gestalten, dass alle Änderungen zwischen Zuständen und/oder Zwischenzuständen nur durch das Löschen oder Schreiben eines einzelnen Bits der Statusinformationen geschieht.
  • Gemäß einer weiteren vorteilhaften Weiterbildung der Erfindung ist mindestens einer der Speicherbereiche unabhängig beschreibbar und/oder löschbar. Ferner ist es dann vorteilhaft, die Statusinformationen so zu kodieren, dass alle Änderungen zwischen Zuständen und/oder Zwischenzuständen nur durch das Löschen oder Schreiben eines der zweiten Speicherbereiche, in denen die Statusinformationen gespeichert sind, geschieht. Dies hat den Vorteil, dass Speicherbereiche unter Umständen – zum Beispiel von einem Byte Größe – einfacher anzusteuern sind.
  • Gemäß noch einer weiteren bevorzugten Weiterbildung der vorliegenden Erfindung weisen die Statusinformationen mindestens ein vorbestimmtes Bit auf, das anzeigt, ob eine Störung bei irgendeinem der Schreib-, Lösch- oder Lesevorgänge aufgetreten ist. Wenn dieses vorbestimmte Bit gesetzt ist, wird eine Fehlermeldung erzeugt. Anhand der Statusinformationen lässt sich dann eine Fehlerbehandlung durchführen.
  • Gemäß einer anderen vorteilhaften Weiterbildung der erfindungsgemäßen Speichervorrichtung ist die Steuereinheit abschaltbar und schreibt oder ändert dann keine Statusinformationen in die zweiten Speicherbereiche 3-1, ... 3-N bei Schreib- oder Löschzugriffen auf die ersten Speicherbereiche. Dies hat den Vorteil, dass der Anwender bei Daten, die wenig Sicherheit beim Speichern erfordern, Speicherzugriffe einsparen kann und so das Abspeichern schneller ist.
  • Ausführungsbeispiele der Erfindung sind in den Zeichnungen dargestellt und in der nachfolgenden Beschreibung näher erläutert. In den Zeichnungen zeigen:
  • 1 ein Blockschaltbild einer bekannten Speichervorrichtung;
  • 2 ein Blockschaltbild eines Ausführungsbeispiels einer erfindungsgemäßen Speichervorrichtung;
  • 3 ein Zustandsdiagramm zur Erläuterung einer Kodierung von Statusinformationen nach einem Ausführungsbeispiel der Erfindung;
  • 4 ein Ablaufdiagramm zur Erläuterung des erfindungsgemäßen Verfahrens.
  • Die 2 zeigt den prinzipiellen Aufbau einer Vorrichtung zur sicheren Speicherung von Daten 1 mit einem ersten Speicherbereich 2, zweiten Speicherbereichen 3-1, 3-2, ... 3-N und einer Steuereinheit 4. Die Steuereinheit 4 ist über erste Datenleitungen 5 zum Schreiben und Löschen von Daten mit dem ersten Speicherbereich 2 gekoppelt. Über zweite Datenleitungen 6-1, 6-2, ... 6-N ist die Steuereinheit 4 mit den zweiten Speicherbereichen 3-1, 3-2, ... 3-N gekoppelt. Die Speichervorrichtung 1 weist Anschlüsse 7 zur Annahme und Ausgabe von Daten auf und hat einen I/O-Port 9 zur Annahme und Ausgabe von Steuer- bzw. Kontrollinformationen und zur Ausgabe von Fehlermeldungen. Liegen Daten 8 zum Abspeichern vor, liest die Steuereinheit 4 zunächst die in den Speicherbereichen 3-1, 3-2, ... 3-N gespeicherten Statusinformationen über die Datenleitungen 6-1, 6-2, ... 6-N und ändert diese bevor sie den Speicherbereich 2 löscht und dann mit den Daten 8 beschreibt. Anschließend ändert die Steuereinheit 4 die Statusinformationen in den Speicherbereichen 3-1, 3-2, ... 3-N entsprechend einer vorgegebenen Kodierung.
  • Im folgenden wird der erfindungsgemäße Verfahrensablauf anhand einer bevorzugten Zwei-Bit-Kodierung der Statusinformationen erläutert. Die 3 zeigt ein Zustandsdiagramm für eine 2-Bit-Kodierung der Statusinformationen, wobei die Zustände A, B, C, D durch ein Schreib-Bit P (program) und ein Lösch-Bit E (erase) wie folgt definiert sind:
    Figure 00090001
  • In dem Zustandsdiagramm in 3 sind typischerweise nur solche Übergänge zugelassen, bei denen nur eines der beiden Bits P oder E geschrieben oder gelöscht bzw. verändert wird. Zum Beispiel erfordert der Übergang vom Zustand A = „vollständig programmiert" zum Zustand D = „unvollständig gelöscht" das Löschen des Programmierbits P. Bei einer derartigen Kodierung gemäß 3 benötigt eine erfindungsgemäße Speichereinrichtung lediglich zwei Ein-Bit-große zweite Speicherbereiche 3-1, 3-2, die einzeln ansteuerbar sind.
  • Die 4 zeigt ein Ablaufdiagramm des erfindungsgemäßen Verfahrens, mit der vorgenannten Zwei-Bit-Kodierung.
  • Im Schritt 100 liegen Daten 8 zum Abspeichern vor.
  • Im Schritt 101 liest die Steuereinheit 4 die Status-Bits über die Datenleitung 6-1 und 6-2 aus den zweiten Speicherbereichen 3-1 und 3-2 aus.
  • Falls der Status „vollständig gelöscht" C ist, schreibt die Steuereinheit 4 das Schreib-Bit P im Schritt 114 ein und ändert damit die Statusinformationen von „vollständig gelöscht" C auf „unvollständig programmiert" B.
  • Dann schreibt die Steuereinheit 4 die Daten 8 über die Datenleitungen 5 in den ersten Speicherbereich 2 im Schritt 115. Dann schreibt die Steuereinheit 4 das Lösch-Bit E im zweiten Speicherbereich 3-2 (Schritt 116). Dadurch zeigen die Statusinformationen den Zustand „vollständig programmiert" A an.
  • Falls nach dem Lesen der Statusinformationen im Schritt 101 jedoch der Zustand „vollständig programmiert" A angezeigt wird (Schritt 103), wird zunächst das Schreib-Bit P gelöscht (Schritt 104), wodurch die Status-Bits den Zustand „unvollständig gelöscht" D charakterisieren. Dann wird der erste Speicherbereich 2 gelöscht (Schritt 105) und anschließend das Lösch-Bit E gelöscht, wodurch die Statusinformationen den Zustand „vollständig gelöscht" C charakterisieren. Anschließend werden, wie zuvor die Schritte 114, 115, 116, 117, durchgeführt.
  • Falls nach dem Lesen der Status-Bits der Zustand „unvollständig programmiert" B angezeigt wird (Schritt 107) wird der erste Speicherbereich gelöscht (Schritt 108) und dann das Schreib-Bit P gelöscht, wodurch die Status-Bits wiederum den Zustand „vollständig gelöscht" anzeigen (Schritt 109). Daran schließen sich dann die Schritte 114, 115, 116, 117 an.
  • Falls nach dem Lesen der Status-Bits im Schritt 101 der Zustand „unvollständig gelöscht" D charakterisiert wird, wird der erste Speicherbereich 2 gelöscht (Schritt 110) und dann das Lösch-Bit E gelöscht, wodurch der Zustand „vollständig gelöscht" charakterisiert wird. Daran schließen sich die Schritte 114 bis 117 an.
  • Falls es zum Beispiel durch einen Spannungseinbruch zu einem „Reset" kommt, kann anhand der (nichtflüchtigen) Statusinformationen in den zweiten Speicherbereichen – in diesem Ausführungsbeispiel den zwei Status-Bits P und E – festgestellt werden, ob die im ersten Speicherbereich 2 abgespeicherten Daten noch gültig sind oder nicht. Bei nicht als Zustand „vollständig programmiert" A klassifizierten Zuständen, kann beispielsweise eine Fehlerbehandlung durchgeführt werden. Diese kann das Lesen aus einem anderen Speicher sein, in dem die Daten redundant abgespeichert sind oder das Lesen älterer Daten sein. Am Beispiel der Kilometerstandanzeige, könnten die älteren Daten ein vorheriger Kilometerstand sein.
  • Obgleich die vorliegende Erfindung vorstehend anhand eines bevorzugten Ausführungsbeispiels beschrieben wurde, ist sie nicht darauf beschränkt, sondern auf vielfältige Art und Weise modifizierbar. So sei die Speichervorrichtung nicht auf den in der vorstehenden 2 dargestellten speziellen Aufbau beschränkt. Die Kopplung zwischen der Steuereinheit 4 und den Speicherbereichen 2, 3-1, 3-2, ... 3-N kann zum Beispiel über ein Datenbus geschehen, seriell oder parallel durchgeführt werden.
  • Insbesondere kann die Kodierung der Statusinformationen mit mehr als zwei Bits erfolgen. Beispielsweise ist eine Vier-Bit-Kodierung möglich, bei der die Zustände zum Beispiel wie folgt definiert sind:
    A = 1111
    B = 1010
    C = 0000
    D = 0101,
    wobei gemäß dem Zustandsdiagramm, wie es in 3 dargestellt ist, nur die Übergänge bzw. Zwischenzustände von „vollständig programmiert" nach „unvollständig gelöscht" AD, „unvollständig gelöscht" auf „vollständig gelöscht" DC, „vollständig gelöscht" auf „unvollständig programmiert" CB, „unvollständig programmiert" auf „vollständig gelöscht" BC und „unvollständig programmiert" auf „vollständig programmiert" BA vorgesehen sind. Die Übergänge zwischen den Zuständen A, B, C, D erfolgt dann nach dem folgenden Schema:
    Zunächst werden die oberen beiden Bits (most significant Bits) gemäß des Folgezustandes gesetzt, dann zeitlich später die unteren beiden Bits (least significant bits). Dies sei am Beispiel des Übergangs von „unvollständig programmiert" B auf „vollständig programmiert" A erläutert. Zunächst liegt der Zustand B = 1010 vor. Dann werden die oberen beiden Bits auf 11 gesetzt, was zu dem Zwischenzustand „unvollständig programmiert – vollständig programmiert" BA = 1110 führt. Dann werden auch die unteren beiden Bits auf 11 gesetzt, sodass der Zustand A = 1111 charakterisiert wird. Auf diese Weise steigt die Wahrscheinlichkeit, dass bei einer Störung der Programmierung der Status-Bits ein Zwischenzustand auftritt, anhand dessen erkannt werden kann, an welcher Stelle im Zustandsdiagramm die Unterbrechung erfolgte.
  • Es ist nicht zwingend erforderlich, zum Ändern der Statusinformationen einzelne Bits zu schreiben oder zu löschen. Es ist auch eine Kodierung möglich bei der bei jedem Übergang zwischen Zuständen alle Bits in einem der zweiten Speicherbereiche 3-1, ..., 3-N geschrieben oder gelöscht werden. Eine Kodierung A = 111111, B = 111000, C = 000000 und D = 000111 erfordert beispielsweise das Löschen oder Schreiben von drei Bits gleichzeitig. Dieses Schema kann auch auf mehrere Bits (zum Beispiel ein Byte) erweitert werden. Insbesondere sind alle vorgenannten Kodierungen möglich, wobei allerdings dann den einzelnen vorgenannten Programmier- oder Schreib-Bits P,E Speicherbereiche bzw. eine Anzahl von Bits entsprechen. Diese Kodierungen sind von Vorteil, wenn das einzelne Ansprechen von einzelnen Bits bei vorhandenen Speicherarchitekturen aufwändig ist bzw. das Ansprechen von Bytes einfacher ist.
  • Es kann auch ein Status-Bit (VPER-Bit = voltage program error bit) vorgesehen sein, das anzeigt, ob eine Störung bei einem der Schreib-, Lösch- oder Lesevorgänge aufgetreten ist. Diese Störung kann zum Beispiel ein Spannungseinbruch sein, der in seiner Ausprägung jedoch nicht dazu ausreicht einen „Reset" des Speichers auszulösen. Insbesondere kann dieses VPER-Bit auch über eine I/O-Schnittstelle 9 von einem externen Spannungsüberwachungsbaustein an die Steuereinheit 4 geliefert werden.
  • Außerdem können die ersten und zweiten Speicherbereiche 2, 3-1, 3-2, ... 3-N Bestandteile eines einzigen Speicherbausteins sein. Insbesondere kann der Speicherbaustein ein wiederbeschreibbarer nichtvolatiler Speicher sein, wie zum Beispiel ein EEPROM oder Flash-Speicher. Außerdem kann die Steuereinheit 4 zur Durchführung des erfindungsgemäßen Verfahrens abschaltbar sein.
  • I
    Daten
    D0, D1, D2, D3
    Datenleitungen
    S
    Steuereinheit
    M1, M2, M3
    Speicherbereiche
    EP
    Speichervorrichtung
    I/O
    I/O-Port
    1
    Speichervorrichtung
    2
    erste Speicherbereiche
    3-1, 3-2, ... 3-N
    zweite Speicherbereiche
    4
    Steuereinheit
    5
    Datenleitungen
    6-1, 6-2, ... 6-N
    Datenleitungen
    7
    Datenleitungen
    8
    daten
    9
    I/O-Port

Claims (20)

  1. Verfahren zum Speichern von Daten (8) in einen ersten Speicherbereich (2) eines wiederbeschreibbaren Speichers, der mindestens den ersten Speicherbereich (2) zum Speichern von Daten und mindestens einen zweiten Speicherbereich (3-1, 3-2, ... 3-N) zum Speichern von dem ersten Speicherbereich (2) zugeordneten Statusinformationen vorbestimmter Bitbreite aufweist, wobei die Statusinformationen einen Zustand des ersten Speicherbereichs mit zumindest den Zuständen: „vollständig programmiert" (A), „unvollständig programmiert" (B), „vollständig gelöscht" (C) und „unvollständig gelöscht" (D) charakterisieren, wobei nacheinander die Verfahrensschritte durchgeführt werden: (a) Auslesen der Statusinformationen aus den zweiten Speicherbereichen (3-1, 3-2, ... 3-N), (b) Ändern der Statusinformationen auf „unvollständig gelöscht" (D), falls die Statusinformationen den Zustand „vollständig programmiert" (A) charakterisieren, (c) Löschen des ersten Speicherbereichs (2), falls die Statusinformationen den Zustand „unvollständig programmiert" (B) oder „unvollständig gelöscht" (D) charakterisieren, (d) Ändern der Statusinformationen auf „vollständig gelöscht" (C), falls die Statusinformationen einen anderen Zustand als „vollständig gelöscht" (C) charakterisieren, (e) Ändern der Statusinformationen auf „unvollständig programmiert" (B), (f) Schreiben der Daten (8) in den gelöschten ersten Speicherbereich (2), (g) Ändern der Statusinformationen auf „vollständig programmiert" (A); und wobei die Statusinformationen derart kodiert sind, dass zum Ändern der Statusinformationen nur einer der Statusinformationen enthaltende Speicherbereiche (3-1, ... 3-N) beschrieben oder gelöscht wird.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Verfahren nach dem Verfahrensschritt (a) des Auslesens der Statusinformationen, insbesondere vor dem Schritt (b), ferner den Schritt (h) Erzeugen einer Fehlermeldung, falls die Statusinformationen einen anderen Zustand als „vollständig programmiert" (A), „unvollständig programmiert" (B), „vollständig gelöscht" (C) oder „unvollständig gelöscht" (D) charakterisieren, umfasst.
  3. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass die Statusinformationen ferner mindestens einen der folgenden Zwischenzustände charakterisieren: „vollständig programmiert – unvollständig gelöscht" (AD), „unvollständig gelöscht – vollständig gelöscht" (DC), „vollständig gelöscht – unvollständig programmiert" (CB), „unvollständig programmiert – vollständig gelöscht" (BC), und „unvollständig programmiert – vollständig programmiert" (BA).
  4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass das Verfahren vor dem Schritt (c) des Löschens des ersten Speicherbereichs (2) ferner zumindest einen der Schritte (i) Ändern der Statusinformationen auf „unvollständig gelöscht – vollständig gelöscht" (DC), falls die Statusdateninformationen „unvollständig gelöscht" (D) charakterisieren; (k) Ändern der Statusinformationen auf „unvollständig programmiert – vollständig gelöscht" (BC), falls die Statusinformationen „unvollständig programmiert" (B) charakterisieren, umfasst.
  5. Verfahren nach Anspruch 3 oder 4, dadurch gekennzeichnet, dass das Verfahren vor dem Schritt (f) des Schreibens der Daten ferner den Schritt (1) Ändern der Statusinformationen auf „unvollständig programmiert – vollständig programmiert" (BA), umfasst.
  6. Verfahren nach einem der Ansprüche 3–5,dadurch gekennzeichnet, dass das Verfahren vor dem Schritt (e) des Änderns der Statusinformationen auf „unvollständig programmiert" (B) ferner den Schritt (m) Ändern der Statusinformationen auf „vollständig gelöscht – unvollständig programmiert" (CB) umfasst.
  7. Verfahren nach einem der Ansprüche 3–6, dadurch gekennzeichnet, dass das Verfahren in dem Schritt (b) vor dem Ändern der Statusinformationen auf „unvollständig gelöscht" (D) ferner den Zwischenschritt (n) Ändern der Statusinformationen auf „vollständig programmiert – unvollständig gelöscht" (AD), umfasst.
  8. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass mindestens einer der Speicherbereiche (2, 3-1, ... 3-N) unabhängig gelöscht oder unabhängig beschrieben wird.
  9. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass mindestens ein Bit der Statusinformationen einzeln gelöscht oder einzeln geschrieben wird.
  10. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass die Statusinformationen derart kodiert sind, dass in den Verfahrensschritten zum Ändern der Statusinformationen nur eines der Bits der Statusinformationen geschrieben oder gelöscht wird.
  11. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass die Statusinformationen mindestens ein vorbestimmtes Bit (VPER) aufweisen, das anzeigt, ob eine Störung bei einem der Schreib-, Lösch- oder Lesevorgänge aufgetreten ist.
  12. Verfahren nach Anspruch 11, dadurch gekennzeichnet, dass das mindestens eine vorbestimmte Bit (VPER) gesetzt wird, wenn ein Spannungseinbruch bestimmter Stärke an dem Speicher vorliegt.
  13. Verfahren nach Anspruch 12, dadurch gekennzeichnet, dass die bestimmte Stärke des Spannungseinbruchs so groß ist, dass ein Schreib-, Lösch- oder Lesevorgang gestört wird, aber kein Reset ausgelöst wird.
  14. Verfahren nach einem der Ansprüche 11–13, dadurch gekennzeichnet, dass eine Fehlermeldung erzeugt wird, wenn das mindestens eine vorbestimmte Bit (VPER) gesetzt ist.
  15. Vorrichtung zum Speichern von Daten (8) zur Durchführung eines Verfahrens nach einem der Ansprüche 1–14, (a) mit mindestens einem ersten Speicherbereich (2) zum Speichern der Daten, (b) mit mindestens einem zweiten Speicherbereich (3-1, 3-2, ... 3-N) zum Speichern von Statusinformationen, (c) mit einer Steuereinheit (4), die über erste Datenleitungen (5) zum Schreiben und Löschen von Daten (8) mit den ersten Speicherbereichen (2) gekoppelt ist, die über zweite Datenleitungen (6-1, 6-2, ... 6-N) zum Schreiben und Löschen von Statusinformationen mit den zweiten Speicherbereichen (3-1, 3-2, ... 3-N) gekoppelt ist und die Anschlüsse (9) zur Annahme und Ausgabe von Daten aufweist, wobei die Steuereinheit (4) bei jedem Schreibzugriff und/oder bei jedem Löschzugriff auf den ersten Speicherbereiche (2) Statusinformationen in die zweiten Speicherbereiche (3-1, 3-2, ... 3-N) schreibt, und wobei zumindest einer der zweiten Speicherbereiche (3-1, 3-2, ... 3-N) unabhängig schreib- bzw. löschbar ist.
  16. Vorrichtung nach Anspruch 15, dadurch gekennzeichnet, dass zumindest eines der Bits der zweiten Speicherbereiche (3-1, 3-2, ... 3-N) unabhängig und einzeln schreib- bzw. löschbar sind.
  17. Vorrichtung nach einem der Ansprüche 15–16, dadurch gekennzeichnet, dass die Speicherbereiche (2, 3-1, 3-2, ... 3-N) Bestandteile eines wiederbeschreibbaren und/oder nichtvolatilen Speichers sind.
  18. Vorrichtung nach einem der Ansprüche 15–17, dadurch gekennzeichnet, dass die Steuereinheit (4) weitere Anschlüsse (9) zur Annahme und Ausgabe von Steuerinformationen und/oder Kontrollinformationen und zur Ausgabe von Fehlermeldungen aufweist;
  19. Vorrichtung nach einem der Ansprüche 15–18, dadurch gekennzeichnet, dass die ersten und zweiten Speicherbereiche (2, 3-1, 3-2, ... 3-N) Bestandteile eines einzigen Speicherbausteins sind.
  20. Vorrichtung nach einem der Ansprüche 15–19, dadurch gekennzeichnet, dass die Steuereinheit (4) abschaltbar ist und keine Statusinformationen bei einem Schreib- oder Löschzugriff auf die ersten Speicherbereiche (2) schreibt oder ändert.
DE2003140010 2003-08-29 2003-08-29 Verfahren und Vorrichtung zum sicheren Speichern von Daten Expired - Fee Related DE10340010B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE2003140010 DE10340010B4 (de) 2003-08-29 2003-08-29 Verfahren und Vorrichtung zum sicheren Speichern von Daten

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE2003140010 DE10340010B4 (de) 2003-08-29 2003-08-29 Verfahren und Vorrichtung zum sicheren Speichern von Daten

Publications (2)

Publication Number Publication Date
DE10340010A1 DE10340010A1 (de) 2005-04-07
DE10340010B4 true DE10340010B4 (de) 2005-07-28

Family

ID=34258291

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2003140010 Expired - Fee Related DE10340010B4 (de) 2003-08-29 2003-08-29 Verfahren und Vorrichtung zum sicheren Speichern von Daten

Country Status (1)

Country Link
DE (1) DE10340010B4 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102006009214B4 (de) * 2006-02-28 2008-05-08 Infineon Technologies Ag Verfahren und Vorrichtung zum Schreiben in eine Zielspeicherseite eines Speichers

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003003219A1 (en) * 2001-06-28 2003-01-09 Matsushita Electric Industrial Co., Ltd. Non-volatile memory control method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003003219A1 (en) * 2001-06-28 2003-01-09 Matsushita Electric Industrial Co., Ltd. Non-volatile memory control method

Also Published As

Publication number Publication date
DE10340010A1 (de) 2005-04-07

Similar Documents

Publication Publication Date Title
DE69034191T2 (de) EEPROM-System mit aus mehreren Chips bestehender Blocklöschung
DE102005045031B4 (de) Programmierverfahren und Programmierwiederaufnahmeverfahren für ein nichtflüchtiges Speicherbauelement
DE60211653T2 (de) Teildatenprogrammier- und leseoperationen in einem nichtflüchtigen speicher
DE102004036888B4 (de) Flashspeichersystem und zugehöriges Datenschreibverfahren
DE112008002553T5 (de) Einsatz eines MLC-Flash als SLC durch Schreiben von Dummy-Daten
DE4114410A1 (de) Halbleiterbauelement mit nichtfluechtigem speicher
EP0067364B1 (de) Verfahren und Anordnung zum nichtflüchtigen Speichern des Zählerstandes einer elektronischen Zählschaltung
DE10192507B4 (de) Verfahren und Vorrichtung für die Vorhersage von Lösch- und Schreibzeiten von Flash-Speichern
DE19724471C2 (de) Vorrichtung und Verfahren zum Einschreiben von Daten in einen nichtflüchtigen Speicher
EP2608037B1 (de) Verfahren zum Verwalten von Daten in einem Flash-Speicher, Fahrerassistenzeinrichtung und Kraftfahrzeug
EP0070461B1 (de) Zähler mit nichtflüchtiger Speicherung
DE10340010B4 (de) Verfahren und Vorrichtung zum sicheren Speichern von Daten
DE112008001409T5 (de) Nichtflüchtiger Speicher mit hoher Zuverlässigkeit
DE10252059B3 (de) Verfahren zum Betreiben einer Speicheranordnung
DE602004008170T2 (de) Speicherschaltung mit nichtflüchtigem Identifikationsspeicher und zugehöriges Verfahren
DE10331543B4 (de) Verfahren zum Testen einer zu testenden Schaltungseinheit und Schaltungsanordnung zur Durchführung des Verfahrens
EP0214390A1 (de) Freigabeverfahren für einen zugriffskontrollierten Anwenderspeicher und Anordnung zur Durchführung des Verfahrens
DE102007051061B4 (de) Nichtflüchtiges Halbleiterspeichersystem und entsprechendes Verfahren zum Durchführen einer Programmieroperation
DE19731954C2 (de) Verfahren zur Erkennung von fehlprogrammierten Speicherzellen eines Speichers
DE102020116189B3 (de) Kombiniertes qlc-programmierverfahren
WO2001009902A1 (de) Verfahren und schaltungsanordnung zum korrigieren von speicherfehlern
DE19738712C2 (de) Nichtflüchtiger Speicher mit zu Subblöcken zusammengefaßten Speicherzellen
DE102006000797A1 (de) Schreiben unbeschädigter Daten in einen elektronischen Speicher
DE10128752A1 (de) Verfahren zur Ablage von Daten in einen Speicherbaustein
EP1517333B1 (de) Zustandskennzeichen (Flag) für einen bezüglich Löschen und Schreiben asymmetrischen Speicher

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R082 Change of representative
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee