DE102018219877A1 - Vorrichtung und Verfahren zum Erzeugen einer Fehlerkorrekturinformation - Google Patents

Vorrichtung und Verfahren zum Erzeugen einer Fehlerkorrekturinformation Download PDF

Info

Publication number
DE102018219877A1
DE102018219877A1 DE102018219877.2A DE102018219877A DE102018219877A1 DE 102018219877 A1 DE102018219877 A1 DE 102018219877A1 DE 102018219877 A DE102018219877 A DE 102018219877A DE 102018219877 A1 DE102018219877 A1 DE 102018219877A1
Authority
DE
Germany
Prior art keywords
bit sequence
error correction
stored
bit
correction information
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.)
Pending
Application number
DE102018219877.2A
Other languages
English (en)
Inventor
Jan Otterstedt
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 DE102018219877.2A priority Critical patent/DE102018219877A1/de
Priority to US16/688,240 priority patent/US11231990B2/en
Publication of DE102018219877A1 publication Critical patent/DE102018219877A1/de
Pending legal-status Critical Current

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
    • 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/1012Adding 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 codes or arrangements adapted for a specific type of error
    • G06F11/102Error in check bits
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • 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/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution

Landscapes

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

Abstract

Eine Vorrichtung umfasst einen elektronischen Datenspeicher und eine Steuereinheit, die ausgebildet ist, um eine Bitsequenz in dem elektronischen Datenspeicher als gespeicherte Bitsequenz zu speichern. Die Steuereinheit ist ausgebildet, um die gespeicherte Bitsequenz auf Bitfehler zu überprüfen, um eine Fehlerkorrekturinformation zu erzeugen, die eine Information über einen korrekten Bitwert in der gespeicherten Bitfolge aufweist, und um die Fehlerkorrekturinformation zur späteren Verwendung zu speichern.

Description

  • Die vorliegende Offenbarung bezieht sich auf eine Vorrichtung zum Erzeugen einer Fehlerkorrekturinformation für eine Bitsequenz. Die vorliegende Offenbarung bezieht sich insbesondere auf eine Verbesserung einer Leistungsfähigkeit eines Fehlerkorrekturcodes mittels F ehlerkorrekturcode-H ilfsdaten.
  • Informationen können als Bitsequenzen oder Datenwörter in flüchtigen und/oder nichtflüchtigen Speichern abgespeichert werden. Für eine spätere Verwendung können die Bitsequenzen aus dem Datenspeicher wieder gelesen und verarbeitet werden. Fehlerkorrigierende Codes können verwendet werden, um Fehler in den gespeicherten Datenwörtern zu korrigieren.
  • Wünschenswert wären Vorrichtungen und Verfahren, die eine Fehlerkorrektur mit geringem Speicheraufwand ermöglichen.
  • Ausführungsbeispiele schaffen eine Vorrichtung mit einem elektronischen Datenspeicher und einer Steuereinheit, die ausgebildet ist, um eine Bitsequenz in dem elektronischen Datenspeicher als gespeicherte Bitsequenz zu speichern. Die Steuereinheit ist ausgebildet, um die gespeicherte Bitsequenz auf Bitfehler zu überprüfen, um eine Fehlerkorrekturinformation zu erzeugen, die eine Information über einen korrekten Bitwert in der gespeicherten Bitfolge aufweist. Die Steuereinheit ist ausgebildet, um die Fehlerkorrekturinformation zur späteren Verwendung zu speichern. Da lediglich eine geringe Anzahl von Bitsequenzen fehlerhaft gespeichert wird, ermöglicht die Speicherung einer entsprechenden geringen Anzahl von Fehlerkorrekturinformationen für diese fehlerhaften Bitsequenzen eine effiziente Fehlerkorrektur bei gleichzeitigem geringem Speicherbedarf. Die Information über den korrekten Bitwert ermöglicht eine direkte und unmittelbare Korrektur der fehlerhaften Bitfolge, da durch die Fehlerkorrekturinformation der korrekte Wert des Bits anstelle eines fehlerhaften Werts verwendet werden kann.
  • Gemäß einem Ausführungsbeispiel umfasst eine Vorrichtung einen elektronischen Datenspeicher zum Speichern einer gespeicherten Bitsequenz. Eine Steuereinheit der Vorrichtung ist konfiguriert, um eine der gespeicherten Bitsequenz zugeordnete gespeicherte Fehlerkorrekturinformation zu erhalten, die eine Information über einen korrekten Bitwert in der gespeicherten Bitsequenz aufweist. Die Steuereinheit ist konfiguriert, um die gespeicherte Bitsequenz unter Verwendung der Fehlerkorrekturinformation zumindest teilweise zu korrigieren, um eine korrigierte Bitsequenz zu erhalten.
  • Gemäß einem Ausführungsbeispiel umfasst ein Verfahren ein Speichern einer Bitsequenz in einem elektronischen Datenspeicher als gespeicherte Bitsequenz, ein Überprüfen der gespeicherten Bitsequenz auf Bitfehler, ein Erzeugen einer Fehlerkorrekturinformation, die eine Information über einen korrekten Bitwert in der gespeicherten Bitfolge aufweist, und ein Speichern der Fehlerkorrekturinformation zur späteren Verwendung.
  • Gemäß einem Ausführungsbeispiel umfasst ein Verfahren ein Erhalten einer, einer gespeicherten Bitsequenz zugeordneten gespeicherten Fehlerkorrekturinformation, die eine Information über einen korrekten Bitwert in der gespeicherten Bitsequenz aufweist. Das Verfahren umfasst ein zumindest teilweises Korrigieren der gespeicherten Bitsequenz unter Verwendung der Fehlerkorrekturinformation, um eine korrigierte Bitsequenz zu erhalten.
  • Weitere Ausführungsbeispiele sind in den abhängigen Patentansprüchen definiert.
  • Ausführungsbeispiele werden nachfolgend bezugnehmend auf die beiliegenden Zeichnungen erläutert. Es zeigen:
    • 1 ein schematisches Blockschaltbild einer Vorrichtung gemäß einem Ausführungsbeispiel;
    • 2a-d schematische Darstellungen unterschiedlicher Inhalte einer Fehlerkorrekturinformation gemäß Ausführungsbeispielen;
    • 3 ein schematisches Blockschaltbild einer Vorrichtung gemäß einem Ausführungsbeispiel, die einen Kodierer umfasst;
    • 4 ein schematisches Blockschaltbild einer Vorrichtung gemäß einem Ausführungsbeispiel, bei der eine Steuereinheit ausgebildet ist, um die Fehlerkorrekturinformation in einem elektronischen Datenspeicher zu speichern;
    • 5 ein schematisches Blockschaltbild einer Vorrichtung gemäß einem Ausführungsbeispiel, bei dem die Steuereinheit ausgebildet ist, um dem Kodierer die Fehlerkorrekturinformation oder eine hiervon abgeleitete Bitsequenz bereitzustellen;
    • 6 ein schematisches Flussdiagramm eines Verfahrens gemäß einem Ausführungsbeispiel;
    • 7 ein schematisches Ablaufdiagramm eines Verfahrens gemäß einem Ausführungsbeispiel, bei dem die Anzahl der festgestellten oder verbliebenen Bitfehler mit einem Bitfehlerschwellwert verglichen wird;
    • 8a ein schematisches Blockschaltbild eines elektronischen Datenspeichers, der beispielsweise als elektronischer Datenspeicher in einer hierin beschriebenen Vorrichtung eingesetzt werden kann;
    • 8b ein schematisches Blockschaltbild eines elektronischen Datenspeichers, bei dem sowohl die regulären Daten oder Informationen als auch die Fehlerkorrekturinformationen in einem regulären Datenbereich abgelegt werden;
    • 9 ein schematisches Blockschaltbild einer Vorrichtung gemäß einem Ausführungsbeispiel, die ausgelegt ist, um die Fehlerkorrekturinformation zu verwenden;
    • 10 ein schematisches Ablaufdiagramm eines Verfahrens gemäß einem Ausführungsbeispiel, das beispielsweise von der Vorrichtung aus 9 ausgeführt werden kann; und
    • 11 ein schematisches Ablaufdiagramm eines Verfahrens gemäß einem Ausführungsbeispiel, das ein Lesen einer gespeicherten Bitfolge umfasst.
  • Bevor nachfolgend Ausführungsbeispiele im Detail anhand der Zeichnungen näher erläutert werden, wird darauf hingewiesen, dass identische, funktionsgleiche oder gleichwirkende Elemente, Objekte und/oder Strukturen in den unterschiedlichen Figuren mit den gleichen Bezugszeichen versehen sind, so dass die in den unterschiedlichen Ausführungsbeispielen dargestellte Beschreibung dieser Elemente untereinander austauschbar ist bzw. aufeinander angewendet werden kann.
  • Nachfolgende Ausführungsbeispiele beziehen sich auf Vorrichtungen mit einem elektronischen Datenspeicher und einer Steuereinheit, die ausgebildet ist, um eine Bitsequenz in dem elektronischen Datenspeicher zu speichern oder aus dem elektronischen Datenspeicher zu lesen. Obwohl sich die nachfolgenden Ausführungsbeispiele insbesondere auf nichtflüchtige Datenspeicher, etwa Flash-Speicher, resistive RAM-Speicher - RRAM (RAM = Random Access Memory; Schreib-Lese-Speicher) oder dergleichen beziehen, sind die Ausführungsbeispiele nicht hierauf beschränkt, sondern können ohne Einschränkungen auch in zumindest teilweiser Zusammenwirkung mit flüchtigen Speichern, etwa klassische RAM-Speicher, dynamische RAM-Speicher (DRAM), statische RAM-Speicher (SRAM) und/oder so genannter emerging Memories, d. h., neuartiger Speicher oder dergleichen verwendet werden.
  • 1 zeigt ein schematisches Blockschaltbild einer Vorrichtung 10 gemäß einem Ausführungsbeispiel. Die Vorrichtung 10 umfasst einen elektronischen Datenspeicher 12, beispielsweise einen flüchtigen oder nichtflüchtigen Speicher, etwa einen resistiven RAM (RRAM). Der elektronische Datenspeicher 12 ist ausgebildet, um eine oder mehrere Bitsequenzen oder Datenwörter zu speichern, wobei beispielsweise jede Bitsequenz unter einer ihr zugeordneten Adresse in dem elektronischen Datenspeicher 12 abgelegt werden kann. Die Adresse bezeichnet beispielsweise eine Gruppe von Speicherzellen, wobei jede Speicherzelle ausgebildet ist, um zumindest ein Bit Information zu speichern. Die Adresse kann sich somit auf eine Gruppe von Speicherzellen beziehen, die zum Speichern der Bitsequenz entsprechend programmiert werden. Im Rahmen der hierin beschriebenen Ausführungsbeispiele wird diese Eigenschaft der Speicherzellen mit einer Adresse der Bitsequenz synonym verwendet. Gemäß einem Ausführungsbeispiel ist die Vorrichtung 10 beispielsweise als Chipkarte ausgebildet.
  • Die Vorrichtung 10 umfasst eine Steuereinheit 14, die einen Schreibzugriff und einen Lesezugriff auf den elektronischen Datenspeicher 12 ausführen kann. Die Steuereinheit ist ausgebildet, um eine Bitsequenz 16 in dem elektronischen Datenspeicher 12 zu speichern, um eine gespeicherte Bitsequenz 18 in dem elektronischen Datenspeicher 12 zu erzeugen. In einem fehlerfreien Fall entspricht die gespeicherte Bitsequenz 18 der Bitsequenz 16. Es können jedoch Fehler auftreten, die dazu führen, dass sich die gespeicherte Bitsequenz 18 in zumindest einem Bit von der Bitsequenz 16 unterscheidet. Ein derartiger Unterschied kann auch als Bitfehler bezeichnet werden und kann dazu führen, dass eine Speicherzelle einen Bitwert aufweist, der von dem Wert, der während der Speicherung erfolgreich oder erfolglos programmiert wird, abweicht. Beispielsweise können Datenhaltungsfehler (engl.: retention related failures) dazu führen, dass die gespeicherte Bitsequenz 18 über die Zeit Bitfehler aufweist. Alternativ oder zusätzlich können Haltbarkeitsfehler (engl.: endurance related failures) dazu führen, dass eine Bitsequenz bereits fehlerhaft abgespeichert wird, etwa durch Fehler in einzelnen Speicherzellen, die eine fehlerfreie Programmierung verhindern. Derartige Fehler können durch Schäden in Speicherzellen verursacht werden, die bereits während der Produktion auftreten und/oder durch eine Ermüdung der Speicherzellen auftreten.
  • Die Steuereinheit 14 ist ausgebildet, um die gespeicherte Bitsequenz 18 auf Bitfehler zu überprüfen. Die Steuereinheit 14 kennt die zu speichernde Bitsequenz 16 und kann basierend hierauf bestimmen, ob die gespeicherte Bitsequenz 18 der zu speichernden Bitsequenz 16 entspricht, etwa basierend auf einem bitweisen Vergleich. Die Steuereinheit 14 kann ausgebildet sein, um eine Fehlerkorrekturinformation 22 zu erzeugen, die eine Information über einen korrekten Bitwert in der gespeicherten Bitfolge 18 aufweist. Insbesondere kann sich die Fehlerkorrekturinformation 22 auf Bits beziehen, bezüglich derer Abweichungen zwischen den Bitsequenzen 16 und 18 festgestellt wurden. Die Steuereinheit 14 kann ausgebildet sein, um die Fehlerkorrekturinformation 22 für eine spätere Verwendung zu speichern. Die Speicherung der Fehlerkorrekturinformation kann in dem elektronischen Datenspeicher 12 oder einem anderen Datenspeicher erfolgen.
  • Zum Lesen der gespeicherten Bitsequenz 18, um zu Bestimmen, ob die gespeicherte Bitsequenz 18 Bitfehler aufweist, kann die Steuereinheit eine reguläre Leseoperation ausführen, wie sie für das reguläre Auslesen von Daten aus dem elektronischen Datenspeicher 12 ausgeführt wird. Alternativ sehen Ausführungsbeispiele vor, dass die Steuereinheit 14 Parameter des Lesevorgangs verändert, etwa eine Lesedauer, eine Lesespannung, die an die Speicherzellen angelegt wird, oder dergleichen. Dies kann bspw. dazu führen, dass das Lesen künstlich erschwert wird, um sich abzeichnende Fehler in den Speicherzellen zu simulieren und somit eine Sicherheitsreserve im Hinblick auf die Bewertung der Lesefehler zu erhalten. Gemäß Ausführungsbeispielen, kann hierfür ein Schwellwert oder eine Entscheidungsschwelle, die angelegt wird, um eine Lesegröße wie elektrische Spannung, elektrischer Strom, elektrischer Widerstandswert oder dergleichen auszuwerten und so zwischen zwei oder mehreren logischen Größen, etwa 0 und 1 zu unterscheiden, verändert. So kann bspw. zum Anlegen einer Reserve der Schwellwert in Richtung ,0' oder in Richtung ,1' verschoben werden, oder es kann wechselweise eine Verschiebung in beide Richtungen erfolgen. Im ersten Fall werden nur mit der Reserve fehlerfreie Bits, etwa so genannte gute 0en als 0 erkannt und im anderen Fall nur mit der Reserve fehlerfreie 1en als so genannte gute 1en erkannt. Dies ermöglicht den Erhalt einer Sicherheitsreserve oder eines Lesevorhalts.
  • Anhand der 2a bis 2d werden nachfolgend exemplarisch unterschiedliche Inhalte oder Bedeutungen der Fehlerkorrekturinformation 22 erläutert. Die in diesem Zusammenhang erläuterten Bedeutungen können als Bitsequenz für die spätere Verwendung abgespeichert werden, kodiert werden und/oder übertragen werden. Die Fehlerkorrekturinformation kann die dargestellte Information aufweisen oder zumindest dahin gehend interpretiert werden. Die Erläuterungen anhand der 2a bis 2d sind dabei lediglich qualitativ zu verstehen, um zu verdeutlichen, wie eine beispielhafte Information über einen korrekten Bitwert in der gespeicherten Bitfolge in der Fehlerkorrekturinformation enthalten sein kann.
  • Die Bitsequenz 16 und die gespeicherte Bitsequenz 18 werden jeweils als Bitsequenzen oder Datenwörter mit einer Länge von 8 Bit dargestellt. Gemäß weiteren Ausführungsbeispielen können die Bitsequenzen 16 und 18 eine andere Länge von zumindest einem Bit aufweisen, etwa zumindest 2 Bit, zumindest 4 Bit, zumindest 8 Bit, zumindest 11 Bit, zumindest 16 Bit, zumindest 32 Bit oder eine beliebige andere Länge.
  • Wie es anhand der 2a dargestellt ist, kann die Bitfolge 16 beispielsweise als Bitfolge gemäß „10001001“ repräsentiert werden, wobei auch eine beliebige andere Bitsequenz mit einer beliebigen anderen Länge und/oder einem beliebigen anderen Inhalt verwendet werden kann.
  • Die gespeicherte Bitsequenz 18 weist beispielsweise ein fehlerhaftes Bit 24 auf, wobei die gespeicherte Bitsequenz 18 alternativ auch fehlerfrei, d. h. ohne Bitfehler, mit einer tolerierten Anzahl von Bitfehlern oder mit einer höheren Anzahl von Bitfehlern, gespeichert sein kann.
  • Gemäß dem illustrierten Ausführungsbeispiel ist die gespeicherte Bitfolge 18 in Form von „10011001“ im vierten Bit von links fehlerhaft, da die gespeicherte Bitsequenz 18 gegenüber der zu speichernden Bitsequenz 16 dort eine 1 anstelle der 0 aufweist. Die Fehlerkorrekturinformation 221 kann eine Information aufweisen, die angibt, dass das fehlerhafte vierte Bit den Wert 0 aufzuweisen hat. Dies ermöglicht die interpretationsfreie Korrektur dieses Bitfehlers unabhängig von eventuellen fehlerkorrigierenden Codes (engl.: error correction code - ECC) oder dergleichen.
  • Wie es in 2b dargestellt ist, kann die Fehlerkorrekturinformation 222 auch eine Information angeben, die beschreibt, dass ein unter einer Adresse a in dem elektronischen Datenspeicher gespeichertes Datenwort in seinem vierten Bit ausgehend von links bzw. dem höchstwertigen (engl.: most significant) Bit den Wert 0 aufweist. Die Adresse a kann dabei diejenige Adresse in dem elektronischen Datenspeicher beschreiben, unter der die Bitsequenz 18 gespeichert ist. Das bedeutet, dass die Steuereinheit ausgebildet sein kann, um die Fehlerkorrekturinformation 222 so zu erzeugen, dass diese eine Adresse eines Datenblocks, in dem die Bitsequenz 18 gespeichert ist, und einer Angabe zumindest eines fehlerhaften Bits 24 in dem Datenblock aufweist. Die Fehlerkorrekturinformation 222 weist gemäß diesem Ausführungsbeispiel ferner eine Angabe des korrekten Werts des zumindest einen fehlerhaften Bits auf.
  • Dies ermöglicht, dass bezüglich einer Mehrzahl oder Vielzahl von fehlerhaften Datenwörtern mehrere Fehlerkorrekturinformationen gespeichert werden können und jede Fehlerkorrekturinformation einem bestimmten Datenwort in dem elektronischen Datenspeicher zugeordnet werden kann.
  • Wie es anhand der 2c dargestellt ist, kann die Steuereinheit ausgebildet sein, um die Fehlerkorrekturinformation 223 so zu erzeugen, dass diese alternativ oder zusätzlich zu anderen Informationen eine Angabe über die Gültigkeit der Fehlerkorrekturinformation 223 aufweist. Eine derartige Angabe oder Information kann beispielsweise über ein hierfür vorgesehenes Bit oder Datenfeld angezeigt werden. Dies ermöglicht, dass durch Rücksetzen, Umprogrammieren oder Löschen dieses Bits oder Datenfeldes angezeigt werden kann, dass die Fehlerkorrekturinformation für das in der Fehlerkorrekturinformation 223 referenzierte Datenwort nicht mehr gültig ist. Beispielsweise kann ein anderes Datenwort unter der Adresse a gespeichert worden sein und beispielsweise fehlerfrei gespeichert sein. Durch ein ungültig Machen der Fehlerkorrekturinformation 223 wird ein rasches Zurücksetzen der bezüglich des alten Datenwortes vorhandenen Fehlerkorrekturinformation ermöglicht.
  • Anders ausgedrückt, wird beispielsweise die gespeicherte Bitsequenz 18 mit einer aktualisierten Bitsequenz unter derselben Adresse durch die Steuereinheit überschrieben, so kann die Steuereinheit feststellen, dass für die gespeicherte aktualisierte Bitsequenz keine Fehlerkorrekturinformation erforderlich ist, etwa da keine Bitfehler vorliegen oder eine tolerierbare Anzahl von Bitfehlern vorliegt. Die Steuereinheit kann die für die gespeicherte Bitsequenz vorliegende Fehlerkorrekturinformation entwerten. Alternativ oder zusätzlich kann die Steuereinheit feststellen, dass die gespeicherte aktualisierte Bitsequenz ein anderes Bitfehlermuster aufweist als die gespeicherte Bitsequenz und kann die Fehlerkorrekturinformation 223 , die für die zuvor gespeicherte Bitsequenz vorhanden ist, für die gespeicherte aktualisierte Bitsequenz anpassen, so dass die aktualisierte Fehlerkorrekturinformation der aktualisierten gespeicherten Bitfolge zugeordnet ist.
  • In anderen Worten: Sollte die Verifikation der Speicheroperation eine Abweichung zeigen, das bedeutet ein oder mehrere fehlerhafte Bits vorhanden sein, und keine anderen Mechanismen angewendet oder gewünscht sein, um diese Bits zu korrigieren, so kann eine Fehlerkorrekturinformation in dem zentralen Bereich oder reservierten Bereich dergestalt abgelegt werden, dass
    1. 1. Finde einen geeigneten freien Eintrag in dem zentralen Bereich zum Ablegen der Fehlerkorrekturinformation
    2. 2. Speichere die Fehlerkorrekturinformation
    sofern eine Verifikation einer nachfolgenden oder späteren Programmieroperation auf demselben Speicherblock keine Abweichung mehr zeigt, beispielsweise da andere Daten geschrieben wurden, so kann die Fehlerkorrekturinformation ungültig gemacht werden. Sollte die Verifikation eine andere Abweichung zeigen als in den alten Fehlerkorrekturinformationen gespeichert, beispielsweise da andere Daten geschrieben wurden, so kann der Eintrag aktualisiert/upgedatet werden. Alternativ oder zusätzlich kann der geschriebene Eintrag ungültig gemacht werden und ein neuer Eintrag geschrieben werden.
  • Wie es anhand der 2d dargestellt ist, kann die Fehlerkorrekturinformation 224 auch eine Angabe bezüglich einer Zeit, zu der die Fehlerkorrekturinformation 224 bezüglich der gespeicherten Bitsequenz 18 erzeugt oder gespeichert wurde, enthalten. Eine derartige Information kann von der Steuereinheit als Gültigkeitsinformation oder Validitätsinformation herangezogen werden, ob die Fehlerkorrekturinformation zum Korrigieren der gespeicherten Bitsequenz 18 noch herangezogen werden kann.
  • Die Vorrichtung 10 kann ausgebildet sein, um die gespeicherte Bitsequenz 18 direkt oder unmittelbar nach dem Speichervorgang zu überprüfen und/oder kurz nach dem Speichern. Das bedeutet, dass die Steuereinheit 14 ausgebildet sein kann, um die gespeicherte Bitsequenz 18 auf Schreibfehler zu überprüfen, die während oder im Anschluss an das Speichern der gespeicherten Bitsequenz aufgetreten sind. Insbesondere kann die Steuereinheit ausgebildet sein, um die gespeicherte Bitsequenz 18 direkt nach dem Speichern zu überprüfen, das bedeutet, unmittelbar nach Vollenden des Speichervorgangs, etwa als darauffolgender Befehl oder als darauffolgendes Kommando, oder sobald es innerhalb des vorgesehenen Arbeitsablaufs zulässig oder ausführbar ist, d.h. sobald eine solche Überprüfung im Ablauf der Operationen möglich ist. Beispielsweise kann ein Schreibvorgang für mehrere Adressen ausgeführt werden und im Anschluss an die mehreren Schreibvorgänge sequenziell eine Überprüfung mehrerer Adressen in dem elektronischen Datenspeicher erfolgen. Obwohl die Steuereinheit 14 auch ausgebildet sein kann, um die Überprüfung nach einem längeren Zeitintervall auszuführen, ermöglicht die Überprüfung direkt nach dem Speichern oder kurz nach dem Speichern die Kompensation von Haltbarkeitsfehlern in dem elektronischen Datenspeicher 12, die insbesondere bei neuartigen Speichertypen einen überwiegenden Anteil der Bitfehler hervorrufen können.
  • In anderen Worten kann die Fehlerkorrekturinformation oder ECC Hilfsdaten, die möglicherweise in einem zentralen Bereich des Datenspeichers gespeichert werden, so ausgestaltet werden, dass Informationen über die fehlerhaften Bits zum Zeitpunkt der Speicherung vorliegen. Beispielsweise kann dies die Adresse des Datenblocks, der den Bitfehler aufweist, umfassen. Alternativ oder zusätzlich kann dies für eine Anzahl f erfolgen für eine Anzahl von ≤ f fehlerhaften Bits. Das bedeutet, für mehrere fehlerhafte Bits können mehrere Fehlerkorrekturinformationen generiert und gespeichert werden, so dass jede Fehlerkorrekturinformation einem fehlerhaften Bit zugeordnet ist und jedem fehlerhaften Bit eine Fehlerkorrekturinformation zugeordnet ist. Alternativ kann sich eine Fehlerkorrekturinformation auch auf mehrere fehlerhafte Bits beziehen, beispielsweise innerhalb desselben Datenblocks. Die Fehlerkorrekturinformation umfasst beispielsweise die Bitadresse innerhalb des Blocks, das bedeutet eine Angabe, die eine Identifikation des Bits ermöglicht. Die Fehlerkorrekturinformation umfasst den korrekten Wert des fehlerhaften Bits. Optional kann eine Information, etwa ein Bit, enthalten sein, die den Eintrag der Fehlerkorrekturinformation als gültig beschreibt. Die Fehlerkorrekturinformation kann selbst wiederum mit einem fehlerkorrigierenden Code geschützt werden, beispielsweise auf derselben Basis, wie die anderen Daten kodiert werden, die in dem normalen Datenbereich gespeichert werden. Das bedeutet, der fehlerkorrigierende Code kann rekursiv wiederum Fehlerkorrekturinformation für eine Fehlerkorrekturinformation aufweisen.
  • 3 zeigt ein schematisches Blockschaltbild einer Vorrichtung 30 gemäß einem Ausführungsbeispiel. Die Vorrichtung 30 umfasst einen Kodierer 26, der ausgebildet ist, um eine zu verarbeitende oder kodierende Bitsequenz 28 zu erhalten. Der Kodierer ist ausgebildet, um die zu verarbeitende Bitsequenz 28 unter Verwendung eines Codes zu kodieren, um eine kodierte Bitsequenz zu erhalten. Die kodierte Bitsequenz kann beispielsweise die Bitsequenz 16 sein. Die Steuereinheit 14 kann ausgebildet sein, um die kodierte Bitsequenz von dem Kodierer 26 zu erhalten und in dem elektronischen Datenspeicher 12 zu speichern, um so die gespeicherte Bitsequenz 18 zu erhalten. Die gespeicherte Bitsequenz 18 kann eine Bitlänge von n Bit aufweisen, wobei von den n Bit eine Anzahl von k Datenbits sein können und eine Anzahl von m zusätzliche Bits sein können, die durch die Verwendung des Codes in dem Kodierer 26 erzeugt oder hinzugefügt wurden. Beispielsweise kann der Kodierer 26 ausgebildet sein, um einen fehlerkorrigierenden Code zu implementieren, so dass durch seine Verwendung eine Korrekturanzahl von Bitfehlern korrigierbar ist und eine Erkennungsanzahl von Bitfehlern erkennbar ist. Die Erkennungsanzahl kann größer sein als die Korrekturanzahl. Beispielsweise kann durch die Verwendung des Codes zumindest ein Bitfehler korrigierbar und zumindest zwei Bitfehler erkennbar, zumindest zwei Bitfehler korrigierbar und zumindest drei oder zumindest vier Bitfehler erkennbar sein oder dergleichen.
  • Die Steuereinheit 14 kann ausgebildet sein, um die Fehlerkorrekturinformation 22 für die gespeicherte Bitfolge 18 umfassend k Datenbits und m Fehlerkorrekturbits zu bestimmen.
  • 4 zeigt ein schematisches Blockschaltbild einer Vorrichtung 40 gemäß einem Ausführungsbeispiel, bei dem die Steuereinheit 14 ausgebildet ist, um die Fehlerkorrekturinformation 22 in dem elektronischen Datenspeicher 12 zu speichern. Die Vorrichtung 40 kann die Fehlerkorrekturinformation 22 unter einer beliebigen Adresse in dem elektronischen Datenspeicher 12 speichern. Gemäß einem Ausführungsbeispiel ist die Steuereinheit 14 ausgebildet, um die Fehlerkorrekturinformation 22 in einem hierfür reservierten Bereich 32 des elektronischen Datenspeichers 12 zu speichern. Da vergleichsweise selten Fehlerkorrekturinformationen in dem elektronischen Datenspeicher 12 zu speichern sind, wenn beispielsweise eine Häufigkeit von Schreibvorgängen normaler Nutzerdaten mit einer geringen Fehlerrate herangezogen wird, ermöglicht dies eine vergleichsweise geringe Häufigkeit von Schreibvorgängen in dem reservierten Bereich 32 und somit eine geringe Wahrscheinlichkeit von Ermüdungserscheinungen in dortigen Speicherzellen, so dass der reservierte Bereich 32 über die Nutzungsdauer des elektronischen Datenspeichers 12 eine hohe Zuverlässigkeit aufweisen kann, was für das Speichern der Fehlerkorrekturinformation 22 vorteilhaft ist.
  • Die Steuereinheit 14 kann ausgebildet sein, um die Fehlerkorrekturinformation 22 in eine Fehlerkorrektur-Bitsequenz 34 zu überführen und um die Fehlerkorrektur-Bitsequenz 34 oder eine hiervon abgeleitete Bitsequenz als eine weitere zu speichernde Bitsequenz in dem elektronischen Datenspeicher zu speichern. Beispielsweise kann die aus der Fehlerkorrekturinformation 22 erzeugte Bitsequenz mit einem fehlerkorrigierenden Code kodiert werden, eine Kompression erfolgen oder eine andere Datenverarbeitung ausgeführt werden.
  • 5 zeigt ein schematisches Blockschaltbild einer Vorrichtung 50 gemäß einem Ausführungsbeispiel. Die Vorrichtung 50 umfasst den Kodierer 26, wobei die Steuereinheit 14 ausgebildet ist, um dem Kodierer 26 die Fehlerkorrekturinformation 22 oder eine hiervon abgeleitete Bitsequenz bereitzustellen. Der Kodierer 26 ist ausgebildet, um aus der Fehlerkorrekturinformation 22 die Fehlerkorrektur-Bitsequenz 34 zu erzeugen, das bedeutet, die Fehlerkorrektur-Bitsequenz 34 kann eine kodierte Bitsequenz mit zusätzlichen Bits zur Fehlerkorrektur sein. Die Steuereinheit 14 kann ausgebildet sein, um die Fehlerkorrektur-Bitsequenz 34 in dem Datenspeicher 12, beispielsweise dem reservierten Bereich 32, zu speichern. Gemäß einem Ausführungsbeispiel ist die Steuereinheit 14 ausgebildet, um die in dem Datenspeicher 12 gespeicherte Fehlerkorrektur-Bitsequenz auf Schreibfehler zu überprüfen, wie es für die gespeicherte Bitsequenz 18, auf der die Fehlerkorrektur-Bitsequenz 34 basiert, beschrieben ist.
  • Obwohl die vorangehend beschriebenen Ausführungsbeispiele so beschrieben sind, dass die Fehlerkorrekturinformation im Nachgang zu einem Schreibvorgang erzeugt werden, ist es gemäß Ausführungsbeispielen alternativ oder zusätzlich vorgesehen, dass die Steuereinheit ausgebildet ist, um eine oder mehrere gespeicherte Bitsequenzen aus dem elektronischen Datenspeicher 12 zu lesen, etwa im Zuge eines Lesezugriffs zum Erhalten von Daten für die weitere Verarbeitung oder im Zuge eines routinemäßigen Überprüfens. Die Steuereinheit kann ausgebildet sein, um im Zuge dessen die gespeicherte Bitsequenz auf Bitfehler zu überprüfen, etwa unter Verwendung eines fehlerkorrigierenden Codes, mit dem die Bitsequenz kodiert ist, und um eine Fehlerkorrekturinformation basierend hierauf zu erzeugen. Die Steuereinheit kann ausgebildet sein, um die derart erhaltene Fehlerkorrekturinformation zur späteren Verwendung zu speichern und/oder um die Fehlerkorrekturinformation zu verwenden, um eine für die gespeicherte Bitfolge bereits bestehende, d. h. gespeicherte, Fehlerkorrekturinformation zu aktualisieren.
  • 6 zeigt ein schematisches Flussdiagramm eines Verfahrens 600 gemäß einem Ausführungsbeispiel. Ein Schritt 610 umfasst ein Speichern einer Bitsequenz in einem elektronischen Datenspeicher als gespeicherte Bitsequenz. Ein Schritt 620 umfasst ein Überprüfen der gespeicherten Bitsequenz auf Bitfehler. Ein Schritt 630 umfasst ein Erzeugen einer Fehlerkorrekturinformation, die eine Information über einen korrekten Bitwert in der gespeicherten Bitfolge aufweist. Ein Schritt 640 umfasst ein Speichern der Fehlerkorrekturinformation zur späteren Verwendung.
  • Das Verfahren 600 kann ganz oder teilweise in Software und/oder ganz oder teilweise in Hardware implementiert werden, beispielsweise kann zur Implementierung die Steuereinheit 14 entsprechend eingerichtet werden.
  • Wird im Schritt 620 zumindest ein Bitfehler festgestellt, insbesondere direkt im Anschluss an den Speichervorgang in dem Schritt 610, so kann das Verfahren 600 optional so ausgeführt werden, dass in zumindest einer Wiederholung die Bitsequenz erneut in den elektronischen Datenspeicher gespeichert wird, das bedeutet, der Schritt 610 und nachfolgend der Schritt 620 können erneut ausgeführt werden. Das Verfahren 600 kann so ausgestaltet sein, dass die Fehlerkorrekturinformation erst dann in dem Schritt 640 für die spätere Verwendung gespeichert wird, wenn eine Anzahl von Wiederholungen einen Wiederholungsschwellwert erreicht oder überschritten hat. So kann das Verfahren 600 und/oder eine entsprechende Konfiguration der Steuereinheit 14 so ausgestaltet sein, dass eine Anzahl von einer Wiederholung, zwei Wiederholungen oder drei Wiederholungen oder auch mehr Wiederholungen vorgesehen ist und bei einem Feststellen eines oder mehrerer Bitfehlern in dem Schritt 620 der Schritt 610 erneut ausgeführt wird, solange die maximale Anzahl von Schreibvorgängen, das bedeutet der Wiederholungsschwellwert, noch nicht erreicht ist. Es besteht alternativ oder zusätzlich die Möglichkeit, den Wiederholungsschwellwert dynamisch auszugestalten und beispielsweise eine Wiederholung der Schritte 610 und/oder 620 so lange auszuführen, wie der erneute Schreibvorgang in dem Schritt 610 zu einer Verbesserung des Ergebnisses führt, das bedeutet zu einer reduzierten Anzahl von Bitfehlern, die in dem Schritt 620 festgestellt werden.
  • 7 zeigt ein schematisches Ablaufdiagramm eines Verfahrens 700 gemäß einem Ausführungsbeispiel, das die Schritte 610 und 620 des Verfahrens 600 aufweisen kann. Optional kann der Schritt 610 und/oder der Schritt 620 wiederholt ausgeführt werden, wie es im Zusammenhang mit dem Verfahren 600 beschrieben ist.
  • Nach dem Schritt 620 oder der letzten Durchführung hiervon umfasst das Verfahren 700 einen Vergleich 710, bei dem die Anzahl der in dem Schritt 620 festgestellten oder verbliebenen Bitfehler mit einem Bitfehlerschwellwert verglichen wird. Für den Fall, dass die Anzahl der festgestellten Bitfehler größer oder gleich dem Bitfehlerschwellwert ist, alternativ größer als der Bitfehlerschwellwert, so wird gemäß dem Verfahren 700 ein Schritt 720 ausgeführt, der das Erzeugen unter Speichern der Fehlerkorrekturinformation umfasst. Dies kann durch Ausführen der Schritte 630 und 640 des Verfahrens 600 erhalten werden. Wenn die Anzahl der Bitfehler den Bitfehlerschwellwert unterschreitet, ist das Verfahren 700 so ausgestaltet, dass die Fehlerkorrekturinformation nicht für die spätere Verwendung gespeichert wird. Steuereinheiten gemäß hierin beschriebenen Ausführungsbeispielen können zum Ausführen des Verfahrens 700 konfiguriert sein. Das bedeutet, dass nicht für jede Anzahl von Bitfehlern, insbesondere nicht für eine geringe Anzahl von Bitfehlern die Fehlerkorrekturinformation zwangsläufig erzeugt wird. Insbesondere kann der Bitfehlerschwellwert in Abhängigkeit eines verwendeten fehlerkorrigierenden Codes gewählt werden. Der Bitfehlerschwellwert kann beispielsweise größer sein als 0, und kleiner sein als die Korrekturanzahl der Bitfehler oder maximal gleich der Korrekturanzahl der Bitfehler, die mittels des fehlerkorrigierenden Codes korrigiert werden kann. Ist der fehlerkorrigierende Code beispielsweise ausgelegt, um eine Anzahl von zwei Bitfehlern zu korrigieren, so kann der Bitfehlerschwellwert beispielsweise zu 1 oder 2 gewählt sein.
  • Ist der fehlerkorrigierende Code beispielsweise ausgelegt, um eine Anzahl von drei Bitfehlern zu korrigieren, so kann der Fehlerkorrekturschwellwert beispielsweise bei 1, 2 oder 3 liegen. Insbesondere bei elektronischen Datenspeichern, die für Datenhaltungsfehler (engl.: retention related failures) unanfällig sind, kann dies vorteilhaft sein.
  • 8a zeigt ein schematisches Blockschaltbild eines elektronischen Datenspeichers 801 , der beispielsweise als elektronischer Datenspeicher 12 in einer hierin beschriebenen Vorrichtung eingesetzt werden kann. Der elektronische Datenspeicher 801 kann einen regulären Datenbereich 36 und den reservierten Bereich 32 aufweisen. Eine Anzahl von adressierbaren Speicherblöcken 38 in dem reservierten Bereich 32 kann auf einer erwarteten Anzahl von Haltbarkeitsfehlern von Speicherzellen des Datenbereichs 36 des elektronischen Datenspeichers 801 basieren, beispielsweise 1 aus 10.000, 1 aus 100.000 oder 1 aus 1.000.000.
  • Die Bereiche 32 und 36 können jeweils gleich große oder voneinander verschieden große Blöcke 38 aufweisen, wobei jeder Block eine Gruppe von Speicherzellen umfassen kann. Eine jeweilige Gruppe von Speicherzellen in einem Datenblock 38 kann jeweils zumindest einen Teil der gespeicherten Bitsequenz 18 speichern, wobei die gespeicherte Bitsequenz k Datenbits und optional m Fehlerkorrekturbits aufweisen kann, wie es im Zusammenhang mit der 3 beschrieben ist. Auf jeden der Datenblöcke 38 kann unter Verwendung einer Datenspeicheradresse für einen Lese- und/oder Schreibzugriff zugegriffen werden. In dem regulären Datenbereich 36 kann beispielsweise Firmware, Code oder Nutzerdaten abgelegt werden. Hierunter können Daten sein, die mit einer gewissen Regelmäßigkeit oder Häufigkeit überschrieben werden, so dass eine entsprechende Beanspruchung der Speicherzellen erfolgen kann. Die Verwendung des reservierten Bereichs 32 ermöglicht es, dass die Fehlerkorrekturinformation 22 so abgelegt wird, dass ein vergleichsweise seltener Schreibzugriff auf diese Speicherzellen erfolgt, so dass vergleichsweise vernachlässigbare Ermüdungserscheinungen erwartet werden können, was die Zuverlässigkeit der Fehlerkorrekturinformation 22 erhöht.
  • 8b zeigt ein schematisches Blockschaltbild eines elektronischen Datenspeichers 802 , bei dem sowohl die regulären Daten oder Informationen als auch die Fehlerkorrekturinformationen in dem regulären Datenbereich 36 abgelegt werden. Beispielsweise kann die Steuereinrichtung ausgelegt sein, um neue oder zusätzliche Daten jeweils in einem ersten freien Datenblock 38 zu speichern. Die Blöcke 38 sind mit Indizes 1, ..., 4, ..., x-4, ..., x versehen, wobei beispielhaft aufsteigende Indizes für aufsteigende Adressen in dem elektronischen Datenspeicher 382 stehen können. Die Steuereinrichtung kann ausgebildet sein, um jeweils die niedrigste Adresse (niedrigster Index) eines Blocks 38 anzusprechen, die für den Schreibvorgang frei oder verwendbar ist. Im laufenden Betrieb kann somit ein Beschreiben vom Block 381 hin zum Block 382 hin zum Block 383 und hin zum Block 384 führen, wobei zwischen den Blöcken 381 und 382 bzw. 383 und 384 jeweils eine Vielzahl von weiteren Blöcken 38 angeordnet sein kann, wie es beispielsweise für den Datenblock 801 dargestellt ist.
  • Die Fehlerkorrekturinformation kann gleichzeitig beginnend von einer höchsten Speicheradresse in dem elektronischen Datenspeicher gespeichert werden, wobei jede neue Fehlerkorrekturinformation in dem nächstfreien Block 38 gespeichert werden kann, der die nächstgeringere freie Adresse (Index) aufweist.
  • Dies ermöglicht eine Trennung der regulären Daten und der Fehlerkorrekturinformation 22, solange der elektronische Datenspeicher 802 zumindest einen leeren Block 38 aufweist.
  • Eine Steuereinheit, die den elektronischen Datenspeicher 802 adressiert, kann ausgebildet sein, um eine Mehrzahl von Bitsequenzen zum Speichern in dem elektronischen Datenspeicher zu erhalten, wobei dies einen Empfang von extern oder eine selbsterzeugte Bitsequenz umfassen kann. Die Steuereinheit kann ausgebildet sein, um jede der Mehrzahl von Bitsequenzen unter einer Adresse in dem elektronischen Datenspeicher 802 abzulegen, so dass die Mehrzahl von Bitsequenzen gemäß einer Bitsequenz-Adressreihenfolge in dem elektronischen Datenspeicher abgespeichert wird. Die Steuereinheit kann für die Mehrzahl von Bitsequenzen jeweils eine zugeordnete Fehlerkorrekturinformation bestimmen, sofern eine gespeicherte Bitsequenz Fehler aufweist. Die möglicherweise Mehrzahl von Fehlerkorrekturinformationen kann ebenfalls unter einer Adresse in dem elektronischen Datenspeicher abgelegt werden, so dass die Mehrzahl von Fehlerkorrekturinformationen gemäß einer der Bitsequenz-Adressreihenfolge umgekehrten Fehlerkorrektur-Adressreihenfolge in dem elektronischen Datenspeicher gespeichert wird, wie es anhand der entgegengesetzten Pfeilrichtungen angedeutet wird. Obwohl die 8b so beschrieben ist, dass die regulären Daten mit aufsteigender Adressreihenfolge und die Fehlerkorrekturinformation mit absteigender Adressreihenfolge gespeichert werden, ist auch ein beliebiges anderes voneinander unterscheidbares Schema möglich, beispielsweise die Fehlerkorrekturinformationen mit aufsteigender Adressreihenfolge und die regulären Daten mit absteigender Adressreihenfolge zu speichern.
  • In anderen Worten: Wenn ein Haltbarkeitsfehler nach der Programmierung der Speicherzellen festgestellt wird, kann zusätzliche Information, die Fehlerkorrekturinformation, in einem zentralen Bereich gespeichert werden, der Informationen über den festgestellten Fehler aufweist. Wenn später ein entsprechender Datenblock gelesen wird und ein unkorrigierbarer Datenfehler festgestellt wird (oder alternativ abhängig davon, ob überhaupt ein Datenfehler festgestellt wird, oder alternativ gänzlich unabhängig davon ob ein Datenfehler erkannt wird), dann wird die Fehlerkorrekturinformation verwendet, um zuerst die fehlerhaften Bits zu korrigieren, die beim Erstellen der Fehlerkorrekturinformation bekannt waren und bereits zum Speicherzeitpunkt entstanden. Dies ermöglicht, dass der ECC die verbleibenden Bitfehler, die beispielsweise Datenhaltungsfehler sind, korrigiert. Dadurch wird die Zuverlässigkeit gegebenenfalls drastisch erhöht, ohne das Verhältnis m/k zu erhöhen. Es wird lediglich Speicherplatz für die Fehlerkorrekturinformation verwendet.
  • Nachdem im Vorangehenden die Erzeugung und Speicherung der Fehlerkorrekturinformation beschrieben wurde, wird nachfolgend Bezug genommen auf die Verwendung der Fehlerkorrekturinformation.
  • 9 zeigt ein schematisches Blockschaltbild einer Vorrichtung 90 gemäß einem Ausführungsbeispiel, die ausgelegt ist, um die Fehlerkorrekturinformation zu verwenden. Die Vorrichtung 90 kann eine eigenständige unabhängige Vorrichtung sein, kann jedoch auch eine der Vorrichtungen 10, 30, 40 und/oder 50 sein, die um eine entsprechende Funktionalität erweitert ist.
  • Die Vorrichtung 90 umfasst den elektronischen Datenspeicher 12, der die gespeicherte Bitsequenz 18 aufweist. Die Vorrichtung 90 umfasst eine Steuereinheit 42, die konfiguriert ist, um eine der gespeicherten Bitsequenz 18 zugeordnete gespeicherte Fehlerkorrekturinformation 22 zu erhalten. Hierfür kann die Vorrichtung 90 eine entsprechende Schnittstelle aufweisen. Alternativ oder zusätzlich kann die Vorrichtung 90 einen Datenspeicher aufweisen, in dem die Fehlerkorrekturinformation 22 gespeichert ist. Gemäß einem Ausführungsbeispiel ist die Fehlerkorrekturinformation 22 in dem elektronischen Datenspeicher 12 gespeichert, wie es im Zusammenhang mit vorangehenden Ausführungsbeispielen beschrieben ist. Die Steuereinheit 42 ist ausgebildet, um die gespeicherte Bitsequenz 18 unter Verwendung der Fehlerkorrekturinformation zumindest teilweise zu korrigieren, um eine korrigierte Bitsequenz 44 zu erhalten. Wie es im Zusammenhang mit den 2a bis 2d beschrieben ist, weist die Fehlerkorrekturinformation eine Angabe über ein fehlerhaftes Bit bzw. über einen korrekten Bitwert in der gespeicherten Bitsequenz 18 auf. Das bedeutet, durch einen Informationskombinierer 46, der diese Information oder Angabe über einen korrekten Bitwert mit der gespeicherten Bitsequenz 18 kombiniert, kann unmittelbar der in der Fehlerkorrekturinformation 22 angegebene Bitfehler korrigiert werden.
  • Die Vorrichtung 90 kann einen optionalen Fehlerkorrektor 48 aufweisen, dessen Funktionalität auch in der Steuereinheit 42 oder 12 implementiert sein kann. Der Fehlerkorrektor 48 kann ausgebildet sein, um die korrigierte Bitsequenz 44 unter Verwendung eines Codes, mit der die Bitsequenz 18 kodiert ist, zu dekodieren, und so verbliebene Bitfehler in der korrigierten Bitsequenz zu korrigieren. Je nach Betrachtungsweise kann somit die Fehlerkorrektur-Kapazität eines fehlerkorrigierenden Codes erhöht werden, da dieser lediglich die nicht bereits beim Speichern festgestellten Bitfehler zu korrigieren hat. Anders betrachtet kann alternativ oder zusätzlich der fehlerkorrigierende Code mit einer geringeren fehlerkorrigierenden Eigenschaft implementiert sein und gleichzeitig die absolute Fehlerkorrektur-Kapazität beibehalten, da der fehlerkorrigierende Code nur noch diejenigen Fehler erkennen muss, die nicht direkt dem Speichern zugeordnet sind und beispielsweise den Datenhaltungsfehlern zugeordnet sind. Eine Ausgestaltung des fehlerkorrigierenden Codes mit einer geringen Anzahl von Fehlerkorrekturmöglichkeiten ermöglicht es, Datenblöcke 38 vergleichsweise klein auszugestalten, da lediglich eine geringe Anzahl zusätzlicher Speicherzellen für den fehlerkorrigierenden Code vorgesehen werden muss. Dies ermöglicht somit - bei theoretisch gleicher Anzahl von Speicherzellen - eine höhere Anzahl von abgelegten Wörtern in dem elektronischen Datenspeicher.
  • Der Fehlerkorrektor 48 kann ausgebildet sein, um eine weiterkorrigierte Bitfolge 52 bereitzustellen, in der sowohl die Bitfehler, die in der Fehlerkorrekturinformation 22 angegeben sind, als auch die Bitfehler, die durch den fehlerkorrigierenden Code korrigiert sind, korrigiert sind.
  • Die Vorrichtung 90 kann ausgebildet sein, um bei einem Hochfahren, Einschalten oder in Betrieb setzen der Vorrichtung verfügbare Fehlerkorrekturinformationen für den elektronischen Datenspeicher 12 zu laden, beispielsweise in einen flüchtigen Speicher, etwa einen RAM-Speicher und/oder ein Register.
  • 10 zeigt ein schematisches Ablaufdiagramm eines Verfahrens 1000, das beispielsweise von der Vorrichtung 90 ausgeführt werden kann. Ein Schritt 1010 umfasst ein Erhalten einer einer gespeicherten Bitsequenz zugeordneten gespeicherten Fehlerkorrekturinformation, die eine Information über einen korrekten Bitwert in der gespeicherten Bitsequenz aufweist. Das bedeutet, die Fehlerkorrekturinformation ist der gespeicherten Bitsequenz zugeordnet. Ein Schritt 1020 umfasst ein zumindest teilweises Korrigieren der gespeicherten Bitsequenz unter Verwendung der Fehlerkorrekturinformation, um eine korrigierte Bitsequenz zu erhalten.
  • 11 zeigt ein schematisches Ablaufdiagramm eines Verfahrens 1100 gemäß einem Ausführungsbeispiel. In einem Schritt 1110 erfolgt ein Lesen der gespeicherten Bitfolge, etwa aus dem elektronischen Datenspeicher 12.
  • In einem Schritt 1120 erfolgt ein Bestimmen einer Anzahl von Bitfehlern. Dies kann beispielsweise unter Verwendung eines fehlerkorrigierenden Codes erfolgen, der ausgelegt ist, um eine bestimmte Anzahl von Bitfehlern der gespeicherten Bitsequenz 18 zu erkennen.
  • In einer Entscheidung 1130 wird bestimmt, ob die in dem Schritt 1120 festgestellte Anzahl von Bitfehlern mittels des Codes korrigierbar ist. Ist dies beispielsweise nicht der Fall (Option auf „nein“), so kann in einem Schritt 1140 eine Vorabkorrektur unter Verwendung der Fehlerkorrekturinformation erfolgen, beispielsweise durch Ausführen des Verfahrens 1000. Dadurch können vorab bekannte Bitfehler bereits reduziert werden und so möglicherweise eine zumindest teilweise korrigierte Bitsequenz erhalten werden, etwa die Bitsequenz 44, die in der Anzahl von Bitfehlern reduziert ist. Dies kann es ermöglichen, dass der fehlerkorrigierende Code unter Verwendung der vorkorrigierten Bitsequenz in der Lage ist, die verbleibenden Bitfehler zu korrigieren.
  • Wird in der Entscheidung 1130 festgestellt, dass der Code geeignet ist, um die festgestellte Anzahl von Bitfehlern zu korrigieren (Option „ja“), so kann ausgehend von der Entscheidung 1130 direkt in den Schritt 1150 gewechselt werden, was beispielsweise durch den Fehlerkorrektor 48 implementiert sein kann.
  • Das bedeutet, dass eine Steuereinheit ausgebildet sein kann, um eine basierend auf einem Code zum Erkennen und Korrigieren von Bitfehlern kodierte gespeicherte Bitsequenz aus dem elektronischen Datenspeicher zu lesen. Die Steuereinheit kann ausgebildet sein, um, zu bestimmen, ob eine Anzahl von Bitfehlern in der gespeicherten Bitsequenz eine Korrekturmöglichkeit des Codes überschreitet und, für den Fall, dass die Anzahl der Bitfehler die Fehlerkorrekturmöglichkeit des Codes überschreitet, eine erste korrigierte Bitsequenz aus der gespeicherten Bitsequenz unter Verwendung der Fehlerkorrekturinformation zu erhalten, und um die erste korrigierte Bitsequenz unter Verwendung des Codes weiter zu korrigieren. Für den Fall, dass die Anzahl der Bitfehler die Fehlerkorrekturmöglichkeit des Codes nicht überschreitet, kann die Steuereinheit die gespeicherte Bitsequenz unter Verwendung des Codes und ohne Verwendung der Fehlerkorrekturinformation korrigieren. Dies kann zu einer Ersparnis an Lesevorgängen zum Erhalt der Fehlerkorrekturinformation führen.
  • Ausführungsbeispiele, die die Verwendung eines fehlerkorrigierenden Codes umfassen, ermöglichen eine verbesserte Ausnutzung des fehlerkorrigierenden Codes, insbesondere im Hinblick auf nichtflüchtige Speicher, etwa resistive RAM. Die Verbesserungen können in einem geringen Overhead für fehlerkorrigierende Codes gesehen werden, da lediglich die der Datenhaltung zugeordneten Fehler korrigiert werden müssen, während Ermüdungsfehler oder Haltbarkeitsfehler (engl.: endurance related failures) basierend auf der Fehlerkorrekturinformation vorab korrigiert werden können. Dies ermöglicht eine geringe Chipoberfläche bei gleichbleibender Zuverlässigkeit des Speichers und/oder eine höhere Fähigkeit zur Fehlerkorrektur bei nahezu gleichbleibendem zusätzlichem Aufwand. Auch dies ermöglicht eine Reduzierung der Ausfallrate nichtflüchtiger Speicher. Alternativ oder zusätzlich kann auch eine erhöhte Haltbarkeit der nichtflüchtigen Speicher erhalten werden.
  • Manche der hierin beschriebenen Ausführungsbeispiele nutzen fehlerkorrigierende Codes. Fehlerkorrigierende Codes können, wie es im Zusammenhang mit der 3 beschrieben ist, einen Block von Information, der k Datenbits aufweist, auf eine Anzahl von n Bit erweitern, indem m = n-k Prüfbits bzw. Fehlerkorrekturbits hinzugefügt werden. Das Verhältnis von m/k gibt den zusätzlichen Aufwand zur Implementierung des fehlerkorrigierenden Codes an, da es den zusätzlichen Aufwand zum Speichern der zusätzlichen Korrekturbits im Speicher angibt. Hinzu kommt die Logik, um die Fehlerkorrekturbits zu generieren und zu überprüfen, was jedoch im Rahmen der hierin beschriebenen Ausführungsbeispiele vernachlässigt werden kann.
  • Die Wahl von m und k kann die Randbedingungen des fehlerkorrigierenden Codes angeben. Beispielhafte Eigenschaften eines fehlerkorrigierenden Codes sind eine Korrektur eines einzelnen Fehlers und eine Detektion eines einzelnen Fehlers, das bedeutet, genau ein defektes Bit des n-Bits kann detektiert und korrigiert werden. Zwei oder mehr defekte Bits überschreiten die Fähigkeiten des Codes. Alternativ sind fehlerkorrigierende Codes zum Korrigieren eines einzelnen Fehlers und zum Feststellen von zwei Bitfehlern implementierbar (engl.: single error correcting and double bit detecting - SECDED), bei denen zwei fehlerhafte Bits erkannt werden können und ein fehlerhaftes Bit detektiert und korrigiert werden kann. Drei oder mehr fehlerhafte Bits überschreiten die Fähigkeiten des Codes. Es können auch eine doppelte Fehlererkennung und eine doppelte Fehlerkorrektur implementiert werden oder eine zweifache Fehlerkorrektur und eine dreifache Bitfehlererkennung (engl.: double error correcting and triple bit detecting - DECTED).
  • Zusätzliche oder andere Code-Eigenschaften können ebenfalls implementiert werden. Je anspruchsvoller die erforderlichen Korrektureigenschaften sind, desto höher kann, bei gegebener Datenblockgröße k, das Verhältnis m/k werden, das bedeutet, die Effizienz des Datenspeichers nimmt ab. Die benötigten Korrektureigenschaften können festgelegt werden basierend auf der gesamten Speicherkapazität des Datenspeichers (x Informationsblöcke mit je k Bit), der gesamten Ausfallrate des nichtflüchtigen Datenspeichers, der Ausfallrate jedes einzelnen Bits, die wiederum beeinflusst sein kann durch die physikalischen Eigenschaften der jeweils verwendeten Technologie, des Nutzungsprofils des Datenspeichers (etwa ob die Daten für y Jahre gespeichert werden (Datenhaltung) und/oder ob eine Anzahl von z Änderungszyklen (Haltbarkeit) ausgeführt werden soll und/oder das Umgebungsprofil der Benutzung, insbesondere Temperaturprofile während der Nutzung und/oder Lagerung.
  • Je anspruchsvoller die gesamten Anforderungen sind, desto höher können die fehlerkorrigierenden Eigenschaften, und somit der Zusatzaufwand, des fehlerkorrigierenden Codes gewählt werden. Ausführungsbeispiele tragen der Erkenntnis Rechnung, dass Ausfälle in einem elektronischen Datenspeicher nicht alle Bits eines Datenblocks in gleicher Art und Weise betreffen, sondern dass die „schwächsten“ Bits zuerst ausfallen, so dass insgesamt eine Ausfallrate, das bedeutet eine Fehlerwahrscheinlichkeit, und nicht unbedingt eine funktionelle Grenze erhalten wird.
  • Eine Erkenntnis der hierin beschriebenen Ausführungsbeispiele liegt darin, zwischen unterschiedlichen Fehlertypen, die zu Bitfehlerraten führen, zu unterscheiden, was eine effiziente Implementierung fehlerkorrigierender Codes bis hin zu deren Weglassen ermöglicht. Grob genommen können Bitfehler unterteilt werden in Datenhaltungsfehler (engl.: retention related failures) und Haltbarkeitsfehler (engl.: endurance related failues). Datenhaltungsfehler werden oft erst nach einer zum Teil langen Wartezeit sichtbar. Demgegenüber können Haltbarkeitsfehler bereits direkt nach dem Speichern der Daten, das bedeutet der Programmierung des Speichers, feststellbar sein. Ein Haltbarkeitsfehler kann dadurch erkannt werden, dass eine Verifikationsoperation direkt nach dem Programmiervorgang ausgeführt wird. Die Verifikationsoperation kann die erwarteten Daten (Bitsequenz, die geschrieben werden sollte) mit den Daten vergleichen, die aus dem Speicher gelesen wurden, und kann optional Lesetoleranzen berücksichtigen, beispielsweise Leseoperationen mit angepassten Lese-Bedingungen, die einen gewissen Spielraum zu normalen oder erwarteten Lese-Bedingungen aufweisen, wie es im Zusammenhang mit 1 beschrieben ist. Ein derartiges Vorgehen kann als margin-read (Sicherheits-Lesen) bezeichnet werden und kann ein Verschieben der ggf. analogen Entscheidungsschwelle zwischen zwei Entscheidungsintervallen, etwa 0 und 1 erhalten werden. Es kann somit die Entscheidungsschwelle zum Unterscheiden eines logischen Zustands eines gelesenen Bits zu verschoben werden. Hierzu können bspw. entweder die Referenzlesespannung und/oder der Referenzstrom oder eine andere Größe verändert werden, um einen Abstand zur später beim normalen Lesen verwendeten Entscheidungsschwelle zu erzeugen.
  • Im Rahmen der vorliegenden Ausführungsbeispiele werden die Haltbarkeitsfehler betrachtet. In vielen Anwendungen ist es unbekannt, welcher Teil eines Datenspeichers eine hohe Haltbarkeit aufzuweisen hat. Zugleich wird typischerweise lediglich ein relativ geringer Teil der Speicherfläche oft geschrieben/programmiert. Beispielsweise wird Code selten geändert, während Daten oder Nutzerdaten zumindest potenziell oft geändert werden können. Während der Herstellung einer entsprechenden Vorrichtung, beispielsweise als Chipkarte, ist jedoch unbekannt, wie der spätere Nutzer die Speicherkapazität nutzen wird. Alle Speicherblöcke mit einem fehlerkorrigierenden Code zu konfigurieren, der auf den ungünstigsten Fall (Worst Case) gerichtet ist, bedeutet, dass ein möglicherweise unnötig hoher Zusatzaufwand für die Implementierung des Verhältnisses m/k verwendet wird. Ausführungsbeispiele vermeiden derartige Ausgestaltungen, da die Haltbarkeitsfehler durch die Fehlerkorrekturinformation getrennt betrachtet werden können. Anstelle einer Auslegung des fehlerkorrigierenden Codes dergestalt, dass der Worst Case aller Datenausfälle abgedeckt wird, kann die Anzahl der ECC-Bits m pro Block für alle der x Blöcke dergestalt berechnet werden, dass der Anteil der Haltbarkeitsfehler reduziert oder gar ignoriert wird.
  • Gemäß einer Ausführungsform kann ein Ablauf so ausgeführt sein, dass
    1. 1. Lese Daten aus dem Speicherblock
    2. 2. Überprüfe fehlerkorrigierenden Code des Speicherblocks
    3. 3. Wenn die Daten gut oder zumindest korrigierbar sind, dann gib diese (soweit notwendig korrigierten) Daten aus, sonst
    4. 4. Wenn zugeordnete Fehlerkorrekturinformation verfügbar (in dem elektronischen Datenspeicher oder einem Cache, RAM oder Register), dann führe eine Vorkorrektur der Bits in den gelesenen Daten aus, unter Verwendung der Fehlerkorrekturinformation und starte erneut den Versuch der Fehlerkorrektur mittels fehlerkorrigierendem Code
    5. 5. Wenn Daten jetzt gut oder zumindest korrigierbar, dann gib diese (soweit notwendig korrigierten) Daten aus, sonst gib Fehleranzeige aus, dass Daten unkorrigierbar sind.
  • Damit das Konzept im Schritt 3 zuverlässig arbeitet, kann der fehlerkorrigierende Code dergestalt gewählt sein, dass die Erkennungsanzahl (detection capability) zumindest ein zusätzliches Bit verglichen mit der Korrekturanzahl (correction capability) aufweist, beispielsweise SECDED oder DECTED.
  • Gemäß einer alternativen Ausführungsform kann das Verfahren auch dergestalt ausgestaltet sein, dass
    1. 1. Lese Daten aus dem Speicherblock
    2. 2. Überprüfe fehlerkorrigierenden Code des Speicherblocks
    3. 3. Wenn die Daten gut sind oder zumindest nur eine definierte maximale (und korrigierbare) Anzahl an Bitfehlern enthält, dann gib diese (soweit notwendig korrigierten) Daten aus, sonst
    4. 4. Wenn zugeordnete Fehlerkorrekturinformation verfügbar (in dem elektronischen Datenspeicher oder einem Cache, RAM oder Register), dann führe eine Vorkorrektur der Bits in den gelesenen Daten aus, unter Verwendung der Fehlerkorrekturinformation und starte erneut den Versuch der Fehlerkorrektur mittels fehlerkorrigierendem Code
    5. 5. Wenn Daten jetzt gut oder zumindest korrigierbar, dann gib diese (soweit notwendig korrigierten) Daten aus, sonst gib Fehleranzeige aus, dass Daten unkorrigierbar sind.
  • In dieser Ausführung können Erkennungsanzahl und Korrekturanzahl des fehlerkorrigierenden Codes gleich sein. Gemäß einem Ausführungsbeispiel wird bei einer bestimmten Korrekturanzahl, etwa 3, ein Vorhalt generiert und bspw. nur bis hin zu einer demgegenüber geringeren Anzahl erkannter Fehler, etwa 1 oder 2 auf das Auswerten der Fehlerkorrekturinformation verzichtet. Bei eigentlich noch korrigierbaren maximalen, also bspw. 3 Fehlern kann sicherheitshalber schon auf die Fehlerkorrekturinformation zugegriffen werden. Das bedeutet, für den Fall, dass die Anzahl der Bitfehler der (maximalen) Fehlerkorrekturmöglichkeit des Codes entspricht, kann die Steuereinheit eine erste korrigierte Bitsequenz aus der gespeicherten Bitsequenz unter Verwendung der Fehlerkorrekturinformation erhalten, und die korrigierte Bitsequenz unter Verwendung des Codes weiter zu korrigieren; und für den Fall, dass die Anzahl der Bitfehler die Fehlerkorrekturmöglichkeit des Codes unterschreitet, kann die Steuereinheit die gespeicherte Bitsequenz unter Verwendung des Codes und ohne Verwendung der Fehlerkorrekturinformation korrigieren.
  • Gemäß einer weiteren alternativen Ausführung kann das Verfahren auch dergestalt ausgestaltet sein, dass
    1. 1. Lese Daten aus dem Speicherblock
    2. 2. Wenn zugeordnete Fehlerkorrekturinformation verfügbar, dann führe eine Vorkorrektur der Bits in den gelesenen Daten aus, unter Verwendung der Fehlerkorrekturinformation
    3. 3. Führe eine Fehlerkorrektur unter Verwendung des fehlerkorrigierenden Codes der (gegebenenfalls vorkorrigierten) Daten aus dem Speicherblock aus
    4. 4. Wenn Daten gut oder zumindest korrigierbar sind, dann gib diese (soweit notwendig korrigierten) Daten aus, sonst gib Fehlerindikator zum Anzeigen unkorrigierbarer Daten aus.
  • Auch in dieser Ausführung können Erkennungsanzahl und Korrekturanzahl des fehlerkorrigierenden Codes gleich sein, da immer korrigiert wird, wenn Fehlerkorrekturinformation verfügbar ist. Das bedeutet, die Steuereinheit kann ausgebildet sein, um die gespeicherte Bitsequenz aus dem elektronischen Datenspeicher zu lesen; und um die gespeicherte Bitfolge unabhängig von einer Fehlerkorrekturmöglichkeit des Codes unter Verwendung der Fehlerkorrekturinformation, sofern diese vorhanden ist, zu korrigieren, um eine erste korrigierte Bitsequenz aus der gespeicherten Bitsequenz zu erhalten.
  • Der zentrale Speicherbereich, der reservierte Bereich, für die Fehlerkorrekturinformation kann so ausgelegt sein, dass eine maximale Anzahl erwarteter Fehlerkorrektureinträge gespeichert werden kann. Alternativ kann es ebenfalls vorgesehen sein, dass der Speicherbereich dynamisch erweitert wird. Indirekt kann das Hinzufügen der Fehlerkorrekturinformation helfen, die Zuverlässigkeit eines Speichers im Hinblick auf die Datenhaltungsfehler zu verbessern. In einem Optimalfall kann die volle Fehlerkorrekturfähigkeit des Basis-fehlerkorrigierenden Codes exklusiv für die Datenhaltungsfehler verwendet werden. Gemäß Ausführungsbeispielen kann es vorgesehen sein, im Hinblick auf die Lese-Leistung eine Art von Vorspeicherung oder Vor-Lesen der Fehlerkorrekturinformation auszuführen, beispielsweise während eines Hochfahrens oder Bootens der Vorrichtung. Dies ermöglicht das Vermeiden von zusätzlichen Lesezugriffen in einem Fall, dass ein mittels des fehlerkorrigierenden Codes unkorrigierbarer Eintrag vorliegt.
  • Manche Ausführungsbeispiele basieren darauf, dass Haltbarkeitsfehler in einem Speicher bereits während des Speicherns festgestellt werden. Diese Haltbarkeitsfehler können in gewisser Weise einfachen Mechanismen der Fehlerkorrektur widerstehen, beispielsweise einem einfachen Neubeschreiben der fehlerhaften Bits. Die Anzahl von Datenblöcken mit derartigen Haltbarkeitsfehlern kann gering sein, so dass das separate Abspeichern der Fehlerkorrekturinformation gegenüber einer Erhöhung der Fehlerkorrekturfähigkeit des fehlerkorrigierenden Codes ein wesentlich geringeres Ausmaß an zusätzlichem Speicher mit sich bringt, was vorteilhaft ist. Diese Anforderungen können beispielsweise bei resistiven RAM-Speichern und anderen typischen nichtflüchtigen Speichern erfüllt sein. Hierzu gehören beispielsweise Flash-Speicher, wo gelöschte Bits Haltbarkeitsfehler aufweisen können. Bitweise Löschoperationen sind in Flash-Speichern unmöglich.
  • Die Fehlerkorrekturinformation kann direkt nach dem Speicherungs-Schreiben/Programmierung eines Datenblocks geschrieben werden, kann aber auch zu einem späteren Zeitpunkt geschrieben werden, beispielsweise wenn zusätzliche fehlerhafte Bits festgestellt werden. Das Verwenden von Fehlerkorrekturinformation schließt eine Kombination eines derartigen Mechanismus mit anderen Mechanismen, etwa einer Speicherung von Daten in alternativen oder zusätzlichen Speicheradressen, nicht aus.
  • Obwohl manche Aspekte im Zusammenhang mit einer Vorrichtung beschrieben wurden, versteht es sich, dass diese Aspekte auch eine Beschreibung des entsprechenden Verfahrens darstellen, sodass ein Block oder ein Bauelement einer Vorrichtung auch als ein entsprechender Verfahrensschritt oder als ein Merkmal eines Verfahrensschrittes zu verstehen ist. Analog dazu stellen Aspekte, die im Zusammenhang mit einem oder als ein Verfahrensschritt beschrieben wurden, auch eine Beschreibung eines entsprechenden Blocks oder Details oder Merkmals einer entsprechenden Vorrichtung dar.
  • Je nach bestimmten Implementierungsanforderungen können Ausführungsbeispiele der Erfindung in Hardware oder in Software implementiert sein. Die Implementierung kann unter Verwendung eines digitalen Speichermediums, beispielsweise einer Floppy-Disk, einer DVD, einer Blu-ray Disc, einer CD, eines ROM, eines PROM, eines EPROM, eines EEPROM oder eines FLASH-Speichers, einer Festplatte oder eines anderen magnetischen oder optischen Speichers durchgeführt werden, auf dem elektronisch lesbare Steuersignale gespeichert sind, die mit einem programmierbaren Computersystem derart zusammenwirken können oder zusammenwirken, dass das jeweilige Verfahren durchgeführt wird. Deshalb kann das digitale Speichermedium computerlesbar sein. Manche Ausführungsbeispiele gemäß der Erfindung umfassen also einen Datenträger, der elektronisch lesbare Steuersignale aufweist, die in der Lage sind, mit einem programmierbaren Computersystem derart zusammenzuwirken, dass eines der hierin beschriebenen Verfahren durchgeführt wird.
  • Allgemein können Ausführungsbeispiele der vorliegenden Erfindung als Computerprogrammprodukt mit einem Programmcode implementiert sein, wobei der Programmcode dahin gehend wirksam ist, eines der Verfahren durchzuführen, wenn das Computerprogrammprodukt auf einem Computer abläuft. Der Programmcode kann beispielsweise auch auf einem maschinenlesbaren Träger gespeichert sein.
  • Andere Ausführungsbeispiele umfassen das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren, wobei das Computerprogramm auf einem maschinenlesbaren Träger gespeichert ist.
  • Mit anderen Worten ist ein Ausführungsbeispiel des erfindungsgemäßen Verfahrens somit ein Computerprogramm, das einen Programmcode zum Durchführen eines der hierin beschriebenen Verfahren aufweist, wenn das Computerprogramm auf einem Computer abläuft. Ein weiteres Ausführungsbeispiel der erfindungsgemäßen Verfahren ist somit ein Datenträger (oder ein digitales Speichermedium oder ein computerlesbares Medium), auf dem das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren aufgezeichnet ist.
  • Ein weiteres Ausführungsbeispiel des erfindungsgemäßen Verfahrens ist somit ein Datenstrom oder eine Sequenz von Signalen, der bzw. die das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren darstellt bzw. darstellen. Der Datenstrom oder die Sequenz von Signalen kann bzw. können beispielsweise dahin gehend konfiguriert sein, über eine Datenkommunikationsverbindung, beispielsweise über das Internet, transferiert zu werden.
  • Ein weiteres Ausführungsbeispiel umfasst eine Verarbeitungseinrichtung, beispielsweise einen Computer oder ein programmierbares Logikbauelement, die dahin gehend konfiguriert oder angepasst ist, eines der hierin beschriebenen Verfahren durchzuführen.
  • Ein weiteres Ausführungsbeispiel umfasst einen Computer, auf dem das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren installiert ist.
  • Bei manchen Ausführungsbeispielen kann ein programmierbares Logikbauelement (beispielsweise ein feldprogrammierbares Gatterarray, ein FPGA) dazu verwendet werden, manche oder alle Funktionalitäten der hierin beschriebenen Verfahren durchzuführen. Bei manchen Ausführungsbeispielen kann ein feldprogrammierbares Gatterarray mit einem Mikroprozessor zusammenwirken, um eines der hierin beschriebenen Verfahren durchzuführen. Allgemein werden die Verfahren bei einigen Ausführungsbeispielen seitens einer beliebigen Hardwarevorrichtung durchgeführt. Diese kann eine universell einsetzbare Hardware wie ein Computerprozessor (CPU) sein oder für das Verfahren spezifische Hardware, wie beispielsweise ein ASIC.
  • Die oben beschriebenen Ausführungsbeispiele stellen lediglich eine Veranschaulichung der Prinzipien der vorliegenden Erfindung dar. Es versteht sich, dass Modifikationen und Variationen der hierin beschriebenen Anordnungen und Einzelheiten anderen Fachleuten einleuchten werden. Deshalb ist beabsichtigt, dass die Erfindung lediglich durch den Schutzumfang der nachstehenden Patentansprüche und nicht durch die spezifischen Einzelheiten, die anhand der Beschreibung und der Erläuterung der Ausführungsbeispiele hierin präsentiert wurden, beschränkt sei.

Claims (31)

  1. Vorrichtung (10; 30; 40; 50) mit: einem elektronischen Datenspeicher (12; 801; 802); einer Steuereinheit (14), die ausgebildet ist, um eine Bitsequenz (16) in dem elektronischen Datenspeicher (12; 801; 802) als gespeicherte Bitsequenz (18) zu speichern; um die gespeicherte Bitsequenz (18) auf Bitfehler (24) zu überprüfen, um eine Fehlerkorrekturinformation (22) zu erzeugen, die eine Information über einen korrekten Bitwert in der gespeicherten Bitfolge (18) aufweist; und um die Fehlerkorrekturinformation (22) zur späteren Verwendung zu speichern.
  2. Vorrichtung gemäß Anspruch 1, die einen Kodierer (26) aufweist, der ausgebildet ist, um eine zu verarbeitende Bitsequenz (28) zu erhalten, um die zu verarbeitende (28) Bitsequenz unter Verwendung eines Codes zu kodieren, wobei die Steuereinheit ausgebildet ist, um die kodierte Bitsequenz als die gespeicherte Bitsequenz (18) in dem elektronischen Datenspeicher (12; 801; 802) zu speichern, und um die Fehlerkorrekturinformation (22) für die kodierte Bitsequenz zu bestimmen.
  3. Vorrichtung gemäß Anspruch 2, bei der der Code so gewählt ist, dass durch seine Verwendung eine Korrekturanzahl von Bitfehlern (24) korrigierbar ist und eine Erkennungsanzahl von Bitfehlern (24) erkennbar ist, wobei die Erkennungsanzahl größer ist als die Korrekturanzahl.
  4. Vorrichtung gemäß Anspruch 3, bei der die Steuereinheit (14) ausgebildet ist, um eine Anzahl von Bitfehlern (24) in der gespeicherten Bitsequenz (18) zu bestimmen; und um die Fehlerkorrekturinformation (22) nicht für die spätere Verwendung zu speichern, wenn die Anzahl der Bitfehler (24) einen Bitfehlerschwellwert unterschreitet.
  5. Vorrichtung gemäß Anspruch 4, bei der der Bitfehlerschwellwert höchstens der Korrekturanzahl entspricht..
  6. Vorrichtung gemäß einem der vorangehenden Ansprüche, bei der die Steuereinheit (14) ausgebildet ist, um die gespeicherte Bitsequenz (18) auf Schreibfehler, die während oder im Anschluss an das Speichern der gespeicherten Bitsequenz (18) aufgetreten sind, zu überprüfen.
  7. Vorrichtung gemäß Anspruch 6, bei der die Steuereinheit ausgebildet (14) ist, um die gespeicherte Bitsequenz (18) direkt nach dem Speichern zu überprüfen.
  8. Vorrichtung gemäß einem der vorangehenden Ansprüche, bei der die Steuereinheit (14) konfiguriert ist, um die Fehlerkorrekturinformation (22) in eine Fehlerkorrektur-Bitsequenz (34) zu überführen und die Fehlerkorrektur-Bitsequenz (34) oder eine hiervon abgeleitete Bitsequenz als eine weitere zu speichernde Bitsequenz in dem elektronischen Datenspeicher (12; 801; 802) zu speichern.
  9. Vorrichtung gemäß einem der vorangehenden Ansprüche, bei der die Steuereinheit (14) konfiguriert ist, um zumindest einen Bitfehler (24) in der gespeicherten Bitsequenz (18) festzustellen, um basierend auf dem festgestellten zumindest einen Bitfehler (24) die Bitsequenz (16) in zumindest einer Wiederholung erneut in den elektronischen Datenspeicher (12; 801; 802) zu speichern, um die erneut in den elektronischen Datenspeicher (12; 801; 802) gespeicherte Bitsequenz auf Bitfehler (24) zu überprüfen, und um die Fehlerkorrekturinformation erst dann für die spätere Verwendung zu speichern, wenn eine Anzahl von Wiederholungen einen Wiederholungsschwellwert erreicht oder überschritten hat.
  10. Vorrichtung gemäß einem der vorangehenden Ansprüche, bei der die Steuereinheit (14) ausgebildet ist, um die Fehlerkorrekturinformation (22) in einem hierfür reservierten Bereich (32) des Datenspeichers (12; 801; 802) zu speichern.
  11. Vorrichtung gemäß Anspruch 10, bei der der für die Fehlerkorrekturinformation (22) reservierte Bereich (32) eine Anzahl von adressierbaren Speicherblöcken (38) aufweist, wobei die Anzahl auf einer erwarteten Anzahl von Haltbarkeitsfehlern von Speicherzellen des elektronischen Datenspeichers (12; 801) basiert.
  12. Vorrichtung gemäß einem der vorangehenden Ansprüche, bei der die Steuereinheit (14) ausgebildet ist, um eine Mehrzahl von Bitsequenzen zum Speichern in dem elektronischen Datenspeicher (802) zu erhalten; jede der Mehrzahl von Bitsequenzen unter einer Adresse (a) in dem elektronischen Datenspeicher (802) abzulegen, so dass die Mehrzahl von Bitsequenzen gemäß einer Bitsequenz-Adressreihenfolge in dem elektronischen Datenspeicher (802) gespeichert wird; und für die Mehrzahl von Bitsequenzen jeweils eine zugeordnete Fehlerkorrekturinformation (22) zu bestimmen; jede der Mehrzahl von Fehlerkorrekturinformationen (22) unter einer Adresse (a) in dem elektronischen Datenspeicher (802) abzulegen, so dass die Mehrzahl von Fehlerkorrekturinformationen (22) gemäß einer der Bitsequenz-Adressreihenfolge umgekehrten Fehlerkorrektur-Adressreihenfolge in dem elektronischen Datenspeicher (802) gespeichert wird.
  13. Vorrichtung gemäß einem der vorangehenden Ansprüche, bei der die Steuereinheit (14) ausgebildet ist, um die Fehlerkorrekturinformation (22) so zu erzeugen, dass diese eine Adresse (a) eines Datenbocks, in dem die Bitsequenz (18) gespeichert ist, und eine Angabe zumindest eines fehlerhaften Bits in dem Datenblock, und eine Angabe des korrekten Werts des zumindest einen fehlerhaften Bits (24) aufweist.
  14. Vorrichtung gemäß einem der vorangehenden Ansprüche, bei der die Steuereinheit (14) ausgebildet ist, um die Fehlerkorrekturinformation (22) so zu erzeugen, dass diese eine Angabe über die Gültigkeit der Fehlerkorrekturinformation (22) aufweist.
  15. Vorrichtung gemäß einem der vorangehenden Ansprüche, bei der die gespeicherte Bitsequenz (18) unter einer Adresse (a) des elektronischen Datenspeichers gespeichert ist, und die Steuereinheit (14) ausgebildet ist, um die gespeicherte Bitsequenz (18) mit einer aktualisierten Bitsequenz unter derselben Adresse (a) zu überschreiben; und um festzustellen, dass für die gespeicherte aktualisierte Bitsequenz keine Fehlerkorrekturinformation (22) erforderlich ist, und um eine für die gespeicherte Bitsequenz vorliegende Fehlerkorrekturinformation (22) zu entwerten; oder um festzustellen, dass die gespeicherte aktualisierte Bitsequenz eines anderes Bitfehlermuster aufweist als die gespeicherte Bitsequenz (18), und um die Fehlerkorrekturinformation (22) für die gespeicherte Bitsequenz anzupassen, dass diese einer Fehlerkorrekturinformation der aktualisierten gespeicherten Bitfolge entspricht.
  16. Vorrichtung gemäß einem der vorangehenden Ansprüche, bei der die Steuereinheit (14) ausgebildet ist, um die gespeicherte Bitsequenz (18) zu lesen, um die gespeicherte Bitsequenz (18) auf Bitfehler (24) zu überprüfen, um eine Fehlerkorrekturinformation (22) zu erzeugen; und um die Fehlerkorrekturinformation (22) zur späteren Verwendung zu speichern; oder um die Fehlerkorrekturinformation (22) zu verwenden, um eine für die gespeicherte Bitfolge (18) bereits bestehende Fehlerkorrekturinformation zu aktualisieren.
  17. Vorrichtung gemäß einem der vorangehenden Ansprüche, bei der die Steuereinheit (14) ausgebildet ist, um die der gespeicherten Bitsequenz (18) zugeordnete gespeicherte Fehlerkorrekturinformation (22) zu lesen; um die gespeicherte Bitsequenz (18) unter Verwendung der Fehlerkorrekturinformation (22) zumindest teilweise zu korrigieren, um eine korrigierte Bitsequenz (44) zu erhalten.
  18. Vorrichtung gemäß einem der vorangehenden Ansprüche, bei der die Steuereinheit ausgebildet ist, um zum Überprüfen der gespeicherten Bitsequenz (18) auf Bitfehler (24) eine Entscheidungsschwelle zum Unterscheiden eines logischen Zustands eines gelesenen Bits zu verschieben.
  19. Vorrichtung (90) mit: einem elektronischen Datenspeicher (12) zum Speichern einer gespeicherten Bitsequenz (18); einer Steuereinheit (42), die konfiguriert ist, um eine der gespeicherten Bitsequenz (18) zugeordnete gespeicherte Fehlerkorrekturinformation (22) zu erhalten, die eine Information über einen korrekten Bitwert in der gespeicherten Bitsequenz (18) aufweist; um die gespeicherte Bitsequenz (18) unter Verwendung der Fehlerkorrekturinformation (22) zumindest teilweise zu korrigieren, um eine korrigierte Bitsequenz (44) zu erhalten.
  20. Vorrichtung gemäß Anspruch 19, bei der die Fehlerkorrekturinformation (22) zumindest eine Bitposition angibt, an der ein Bitfehler (24) in der gespeicherten Bitsequenz (18) vorliegt und/oder einen Wert angibt, den ein Bit an der Bitposition des Bitfehlers (24) in einem fehlerfreien Zustand aufweist.
  21. Vorrichtung gemäß Anspruch 19 oder 20, bei der die gespeicherte Bitsequenz (18) basierend auf einem Code zum Erkennen und Korrigieren von Bitfehlern (24) kodiert ist, wobei die Vorrichtung eingerichtet ist, um die korrigierte Bitsequenz (44) unter Verwendung des Codes zu dekodieren, und so verbliebene Bitfehler in der korrigierten Bitsequenz (46) zu korrigieren.
  22. Vorrichtung gemäß einem der Ansprüche 19 bis 21, bei der die gespeicherte Bitsequenz (18) basierend auf einem Code zum Erkennen und Korrigieren von Bitfehlern (24) kodiert ist, wobei die Steuereinheit (42) ausgebildet ist, um die gespeicherte Bitsequenz (18) aus dem elektronischen Datenspeicher (12) zu lesen; zu bestimmen, ob eine Anzahl von Bitfehlern (24) in der gespeicherten Bitsequenz (18) eine Fehlerkorrekturmöglichkeit des Codes überschreitet; und für den Fall, dass die Anzahl der Bitfehler (24) die Fehlerkorrekturmöglichkeit des Codes überschreitet, eine erste korrigierte Bitsequenz aus der gespeicherten Bitsequenz (18) unter Verwendung der Fehlerkorrekturinformation zu erhalten, und um die korrigierte Bitsequenz (44) unter Verwendung des Codes weiter zu korrigieren; und für den Fall, dass die Anzahl der Bitfehler (24) die Fehlerkorrekturmöglichkeit des Codes nicht überschreitet die gespeicherte Bitsequenz (18) unter Verwendung des Codes und ohne Verwendung der Fehlerkorrekturinformation (22) zu korrigieren.
  23. Vorrichtung gemäß einem der Ansprüche 19 bis 21, bei der die gespeicherte Bitsequenz (18) basierend auf einem Code zum Erkennen und Korrigieren von Bitfehlern (24) kodiert ist, wobei die Steuereinheit (42) ausgebildet ist, um die gespeicherte Bitsequenz (18) aus dem elektronischen Datenspeicher (12) zu lesen; zu bestimmen, dass eine Anzahl von Bitfehlern (24) in der gespeicherten Bitsequenz (18) einer Anzahl von Bitfehlern entspricht, die durch eine Fehlerkorrekturmöglichkeit des Codes korrigierbar sind; und für den Fall, dass die Anzahl der Bitfehler (24) der Fehlerkorrekturmöglichkeit des Codes entspricht, eine erste korrigierte Bitsequenz aus der gespeicherten Bitsequenz (18) unter Verwendung der Fehlerkorrekturinformation zu erhalten, und um die korrigierte Bitsequenz (44) unter Verwendung des Codes weiter zu korrigieren; und für den Fall, dass die Anzahl der Bitfehler (24) die Fehlerkorrekturmöglichkeit des Codes unterschreitet, die gespeicherte Bitsequenz (18) unter Verwendung des Codes und ohne Verwendung der Fehlerkorrekturinformation (22) zu korrigieren.
  24. Vorrichtung gemäß einem der Ansprüche 19 bis 21, bei der die gespeicherte Bitsequenz (18) basierend auf einem Code zum Erkennen und Korrigieren von Bitfehlern (24) kodiert ist, wobei die Steuereinheit (42) ausgebildet ist, um die gespeicherte Bitsequenz (18) aus dem elektronischen Datenspeicher (12) zu lesen; und um die gespeicherte Bitfolge (18) unabhängig von einer Fehlerkorrekturmöglichkeit des Codes unter Verwendung der Fehlerkorrekturinformation (22) zu korrigieren, um eine erste korrigierte Bitsequenz aus der gespeicherten Bitsequenz (18) zu erhalten.
  25. Vorrichtung gemäß einem Ansprüche 19 bis 24, bei der der elektronische Datenspeicher (12) ein nichtflüchtiger Speicher, insbesondere ein resistiver RAM ist.
  26. Vorrichtung gemäß einem der Ansprüche 19 bis 25, die ausgebildet ist, um bei einem Hochfahren der Vorrichtung verfügbare Fehlerkorrekturinformationen für den elektronischen Datenspeicher in einen flüchtigen Speicher, insbesondere ein RAM oder Register, der Vorrichtung zu laden.
  27. Vorrichtung gemäß einem der Ansprüche 19 bis 26, bei der die Fehlerkorrekturinformationen (22) in dem elektronischen Datenspeicher (12) gespeichert sind.
  28. Vorrichtung gemäß einem der Ansprüche 19 bis 27, bei der die Steuereinheit (42) ausgebildet ist, um die gespeicherte Bitsequenz (18) auf Bitfehler zu überprüfen, um eine Fehlerkorrekturinformation (22) zu erzeugen; und um die Fehlerkorrekturinformation (22) zur späteren Verwendung zu speichern.
  29. Vorrichtung gemäß einem der vorangehenden Ansprüche, die als Chipkarte ausgebildet ist.
  30. Verfahren (600) mit folgenden Schritten: Speichern (610) einer Bitsequenz in einem elektronischen Datenspeicher als gespeicherte Bitsequenz; Überprüfen (620) der gespeicherten Bitsequenz auf Bitfehler; Erzeugen (630) einer Fehlerkorrekturinformation, die eine Information über einen korrekten Bitwert in der gespeicherten Bitfolge aufweist; und Speichern (640) der Fehlerkorrekturinformation zur späteren Verwendung.
  31. Verfahren (1000) mit folgenden Schritten: Erhalten (1010) einer einer gespeicherten Bitsequenz zugeordneten gespeicherten Fehlerkorrekturinformation, die eine Information über einen korrekten Bitwert in der gespeicherten Bitsequenz aufweist; zumindest teilweises Korrigieren (1020) der gespeicherten Bitsequenz unter Verwendung der Fehlerkorrekturinformation, um eine korrigierte Bitsequenz zu erhalten.
DE102018219877.2A 2018-11-20 2018-11-20 Vorrichtung und Verfahren zum Erzeugen einer Fehlerkorrekturinformation Pending DE102018219877A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102018219877.2A DE102018219877A1 (de) 2018-11-20 2018-11-20 Vorrichtung und Verfahren zum Erzeugen einer Fehlerkorrekturinformation
US16/688,240 US11231990B2 (en) 2018-11-20 2019-11-19 Device and method for generating error correction information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102018219877.2A DE102018219877A1 (de) 2018-11-20 2018-11-20 Vorrichtung und Verfahren zum Erzeugen einer Fehlerkorrekturinformation

Publications (1)

Publication Number Publication Date
DE102018219877A1 true DE102018219877A1 (de) 2020-05-20

Family

ID=70470262

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018219877.2A Pending DE102018219877A1 (de) 2018-11-20 2018-11-20 Vorrichtung und Verfahren zum Erzeugen einer Fehlerkorrekturinformation

Country Status (2)

Country Link
US (1) US11231990B2 (de)
DE (1) DE102018219877A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11656937B2 (en) * 2020-08-25 2023-05-23 Micron Technology, Inc. Techniques for error detection and correction in a memory system
KR20220090885A (ko) 2020-12-23 2022-06-30 삼성전자주식회사 비휘발성 메모리 장치의 잔여 수명 예측 방법 및 이를 수행하는 스토리지 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112012002843T5 (de) * 2011-07-05 2014-03-20 International Business Machines Corp. Anpassungsfähige Mehrbit-Fehlerkorrektur in Speichern mit begrenzter Lebensdauer
US20140164873A1 (en) * 2012-12-12 2014-06-12 HGST Netherlands B.V. Techniques For Storing Bits in Memory Cells Having Stuck-at Faults
US20160380651A1 (en) * 2015-06-25 2016-12-29 Samsung Electronics Co., Ltd. Multiple ecc checking mechanism with multi-bit hard and soft error correction capability

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6570782B1 (en) * 2002-01-16 2003-05-27 Hewlett-Packard Development Company, L.P. Storage and retrieval for resistance-based memory devices
US9323609B2 (en) * 2013-11-15 2016-04-26 Intel Corporation Data storage and variable length error correction information
TWI649748B (zh) * 2015-01-14 2019-02-01 財團法人工業技術研究院 電阻式隨機存取記憶體與其控制方法
US9471417B1 (en) * 2015-02-24 2016-10-18 Crossbar, Inc. Methods and apparatus for back-annotating errors in a RRAM array
US9836349B2 (en) * 2015-05-29 2017-12-05 Winbond Electronics Corp. Methods and systems for detecting and correcting errors in nonvolatile memory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112012002843T5 (de) * 2011-07-05 2014-03-20 International Business Machines Corp. Anpassungsfähige Mehrbit-Fehlerkorrektur in Speichern mit begrenzter Lebensdauer
US20140164873A1 (en) * 2012-12-12 2014-06-12 HGST Netherlands B.V. Techniques For Storing Bits in Memory Cells Having Stuck-at Faults
US20160380651A1 (en) * 2015-06-25 2016-12-29 Samsung Electronics Co., Ltd. Multiple ecc checking mechanism with multi-bit hard and soft error correction capability

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SCHLECHTER, S. u.a.: Use ECP, not ECC, for hard failures in resistive memories. In Proceedings of the 37th annual international symposium an Computer architecture, 2010 *

Also Published As

Publication number Publication date
US11231990B2 (en) 2022-01-25
US20200159613A1 (en) 2020-05-21

Similar Documents

Publication Publication Date Title
DE112011100371B4 (de) Verfahren, Vorrichtung und Computerprogrammprodukt zum Decodieren eines Codeworts
DE3853206T2 (de) Verfahren und gerät zur byteschreibfehlerkodierung.
DE102006033649B4 (de) Speicherbauelement und Verfahren zum Konfigurieren eines Speicherbauelements
DE102005052698A1 (de) Verfahren zur Verarbeitung von nichtflüchtig gespeicherten Daten
DE19782077B4 (de) Verfahren und Vorrichtung zum Korrigieren eines Mehrpegelzellenspeichers durch Verwendung fehlerlokalisierender Codes
DE102015215401B4 (de) Speichervorrichtung und Verfahren zum Korrigieren einer gespeicherten Bitfolge
DE112014001305B4 (de) Auswahl einer redundanten Datenspeicherkonfiguration auf der Grundlage verfügbaren Speicherplatzes
DE102007016460A1 (de) Nichtflüchtiges Speicherbauelement, nichtflüchtiges Speichersystem und Leseverfahren für ein nichtflüchtiges Speicherbauelement
DE102008003113A1 (de) ECC-Steuereinheit, Speichersystem und Verfahren zur Korrektur eines Fehlers
DE2328869A1 (de) Verfahren zur pruefung eines digitalen speichersystems sowie zur durchfuehrung dieses verfahrens dienendes selbstpruefendes digitales speichersystem
EP2100308B1 (de) Verfahren und halbleiterspeicher mit einer einrichtung zur erkennung von adressierungsfehlern
DE102015113414B4 (de) Fehlerkorrektur unter Verwendung von WOM-Codes
DE10344625A1 (de) Halbleiterspeichervorrichtung mit einer Verhinderungsfunktion betreffend eine Datenänderung aufgrund sich aufsummierender Störungen
DE112020003489T5 (de) Speichersteuerung und verfahren zum decodieren von speichervorrichtungen mit vorzeitigem hartdecodierabbruch
DE102018124836A1 (de) Neuartiger speicherbaustein
DE102018219877A1 (de) Vorrichtung und Verfahren zum Erzeugen einer Fehlerkorrekturinformation
DE60215687T2 (de) Fehlerkorrektion von multibit-baueinheiten mit unbeschränkter erkennung von doppelfehlern
DE102016104012A1 (de) Verarbeitung eines Datenworts
DE102020111321A1 (de) System und verfahren zur erkennung und berichtigung von datenfehlern eines transparenten registers
DE2549392A1 (de) Methode zur erhoehung der zuverlaessigkeit von integrierten speicherbausteinen und zur verbesserung der ausbeute bei ihrer herstellung
DE102005060901A1 (de) Verfahren zur Erkennung einer Versorgungsunterbrechung in einem Datenspeicher und zur Wiederherstellung des Datenspeichers
DE10148047B4 (de) Verfahren und Vorrichtung zur Sicherung von Daten in einem Speicherbaustein und Speicherbaustein
EP1832981B1 (de) Fehlerkorrektur- und Fehlererfassungsverfahren zum Auslesen von gespeicherten Informationsdaten und Speichersteuereinrichtung dafür
DE2823457A1 (de) Verfahren und schaltungsanordnung zur fehlerueberwachung in speichersystemen digitaler rechenanlagen
DE3811736C2 (de) Verfahren zum Speichern und Auslesen von Daten

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication