DE112007003015T5 - Verfahren und Vorrichtung zur Cache-gestützten Fehlerdetektion und -korrektur in einem Speicher - Google Patents

Verfahren und Vorrichtung zur Cache-gestützten Fehlerdetektion und -korrektur in einem Speicher Download PDF

Info

Publication number
DE112007003015T5
DE112007003015T5 DE112007003015T DE112007003015T DE112007003015T5 DE 112007003015 T5 DE112007003015 T5 DE 112007003015T5 DE 112007003015 T DE112007003015 T DE 112007003015T DE 112007003015 T DE112007003015 T DE 112007003015T DE 112007003015 T5 DE112007003015 T5 DE 112007003015T5
Authority
DE
Germany
Prior art keywords
error
memory
correction information
bit
error correction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE112007003015T
Other languages
English (en)
Other versions
DE112007003015B4 (de
Inventor
Sean Penryn Eilert
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.)
SK Hynix NAND Product Solutions Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of DE112007003015T5 publication Critical patent/DE112007003015T5/de
Application granted granted Critical
Publication of DE112007003015B4 publication Critical patent/DE112007003015B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk

Abstract

Verfahren zum Korrigieren und Detektieren eines Fehlers in einem Codewort, das in einem Speicher gespeichert ist, umfassend:
Detektieren und Korrigieren eines ersten Fehlers in einem Bit des Codeworts;
Speichern einer Fehlerkorrekturinformation über den ersten Fehler;
Detektieren und Korrigieren eines zweiten Fehlers in einem anderen Bit des Codeworts mit dem ersten Fehler und dem zweiten Fehler; und
Korrigieren des ersten Fehlers unter Verwendung der gespeicherten Fehlerkorrekturinformation über den ersten Fehler.

Description

  • HINTERGRUND DER ERFINDUNG
  • Ausführungsformen der vorliegenden Erfindung betreffen allgemein Speichereinrichtungen. Speichereinrichtungen werden in vielen verschiedenen Arten von Systemen zum Speichern von Code und Daten verwendet. Code und Daten werden manchmal aufgrund von deren Zugriffsanforderungen in zwei separaten Speichern gespeichert. Zum Beispiel wird Code typischerweise in eine Speichereinrichtung als ein großer Block von Daten während der Systemherstellung oder Codeinstallation oder einer Aktualisierung geschrieben. Code wird in einer zufälligen Art, durch Programmzähler, -sprünge und -verzweigungen in Softwareroutinen gelenkt, geschrieben. Die meisten Daten werden während der Abarbeitung einer Anwendung in Blöcken geschrieben oder gelesen.
  • Eine direkte Ausführung von in einem Speicher gespeicherten Befehlen erfordert, dass diese Befehle in deren korrekten Form innerhalb einer relativ kurzen anfänglichen Zugriffslatenz, vielleicht 100 nS, zur Verfügung gestellt werden. Innerhalb der Fähigkeiten der Logik in diesen Speichern ist es nicht möglich, mehr als Einzelzellenkorrektur der Befehle durchzuführen, bevor diese Befehle an das System ausgegeben werden.
  • In vielen Fällen treten Mehrfachzellenfehler als erstes als ein Einzelzellenfehler auf. Zu einem späteren Zeitpunkt tritt ein zweiter Fehler in demselben Codewort auf. Mit herkömmlichen Techniken ist dieser Mehrfachzellenfehler nicht korrigierbar und werden fehlerhafte Daten an das System zurückgegeben.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Der als die Erfindung angesehene Gegenstand wird in der Zusammenfassung der Beschreibung speziell herausgestellt und eindeutig beansprucht. Die Erfindung kann jedoch wohl hinsichtlich der Organisation als auch des Arbeitsverfahrens, gemeinsam mit Aufgaben, Merkmalen und Vorteilen am besten unter Bezugnahme auf die folgende ausführliche Beschreibung in Kombination mit den beigefügten Zeichnungen verstanden werden, in denen:
  • 1 eine schematische Darstellung eines Blockdiagramms eines Speichers gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung zeigt;
  • 2 eine schematische Darstellung eines Blockdiagramms eines Speichersystems gemäß einer weiteren beispielhaften Ausführungsform der vorliegenden Erfindung zeigt;
  • 3 eine Darstellung eines Flussdiagramms eines Verfahrens zur Fehlerdetekion und -korrektur eines Fehlers in einem fehlerhaften Codewort gemäß beispielhaften Ausführungsformen der Erfindung zeigt; und
  • 4 eine Darstellung eines Flussdiagramms des Verfahrens zur Fehlerdetektion und -korrektur von nachfolgenden Fehlern in dem Codewort von 3 gemäß Ausführungsformen der vorliegenden Erfindung zeigt.
  • Die Verwendung derselben Bezugszeichen in verschiedenen Zeichnungen gibt ähnliche oder identischen Gegenstände an.
  • Es versteht sich, dass der Einfachheit und Klarheit halber der Darstellung Elemente, die in den Figuren gezeigt werden, nicht notwendigerweise maßstabsgerecht gezeichnet sind. Zum Beispiel können die Abmessungen von einigen der Elemente im Verhältnis zu anderen Elementen der Klarheit halber übertrieben dargestellt sein. Außerdem können sich Bezugszahlen in den Figuren, sofern angemessen, wiederholen, um korrespondierende oder analoge Elemente anzugeben.
  • AUSFÜHRLICHE BESCHREIBUNG VON AUSFÜHRUNGSFORMEN DER ERFINDUNG
  • In der folgenden Beschreibung werden zahlreiche spezielle Details dargelegt. Es versteht sich jedoch, dass Ausführungsformen der Erfindung ohne diese speziellen Details realisiert werden können. In anderen Beispielen sind allgemein bekannte Verfahren, Strukturen und Techniken nicht im Detail gezeigt worden, um ein Verständnis der vorliegenden Beschreibung nicht zu behindern.
  • Bezugnahmen auf „eine (1) Ausführungsform”, „eine Ausführungsform”, „beispielhafte Ausführungsform”, „zahlreiche Ausführungsformen” etc. weisen darauf hin, dass die Ausführungsform(en) der Erfindung, die so beschrieben ist/sind, ein bestimmtes Merkmal, eine bestimmte Struktur oder Eigenschaft enthalten kann, aber nicht jede Ausführungsform das bestimmte Merkmal, die bestimmte Struktur oder Eigenschaft notwendigerweise enthält. Außerdem bezieht sich die wiederholte Verwendung der Phrase „in einer (1) Ausführungsform” nicht notwendigerweise auf dieselbe Ausführungsform, obwohl es möglich wäre.
  • Sofern nicht anderweitig spezifiziert, gibt hierin die Verwendung der Ordnungswörter „erste”, „zweite”, „dritte” etc. zur Beschreibung eines gemeinsamen Objekts lediglich an, dass auf unterschiedliche Beispiele von ähnlichen Objekten Bezug genommen wird, und soll diese nicht implizieren, dass die so beschriebenen Objekte in einer bestimmten Reihenfolge, entweder zeitlich, räumlich, in der Rangfolge oder in irgendeiner anderen Art, vorgesehen sein müssen.
  • Sofern nicht speziell anders angegeben, wie anhand der folgenden Diskussion ersichtlich, versteht es sich, dass sich in der gesamten Beschreibung Diskussionen, die Begriffe wie „verarbeiten”, „rechnen”, „berechnen”, oder dergleichen verwenden, auf die Tätigkeit und/oder Prozesse eines Computers oder Computersystems oder einer ähnlichen elektronischen Recheneinrichtung, die Daten manipuliert, die als physikalische, wie zum Beispiel elektronische, Größen repräsentiert sind, und/oder in andere Daten transformiert, die in ähnlicher Weise als physikalische Größen repräsentiert sind, bezieht.
  • In einer ähnlichen Weise kann sich der Begriff „Prozessor” auf jede Einrichtung oder jeden Teil einer Einrichtung beziehen, die/der elektronische Daten aus Registern und/oder Speicher verarbeitet, um die elektronischen Daten in andere elektronische Daten umzuwandeln, die in Registern und/oder Speicher gespeichert werden können. Eine „Rechenplattform” kann einen oder mehrere Prozessor(en) umfassen.
  • Der Begriff „Haupt-Array” kann sich auf ein Array von Speicherzellen beziehen, die zum Speichern von Code oder Daten verwendet werden. Der Begriff „redundante Elemente” kann sich auf zusätzliche Speicherelemente beziehen, die zur Reparatur von fehlerhaftem Code oder fehlerhaften Daten verwendet werden. Der Begriff „EDAC-Maschine (Engine)” kann sich auf eine Fehlerdetektions und -korrekturschaltung beziehen. Der Begriff „Fehler-Cache-RAM” kann sich auf einen flüchtigen Speicher beziehen, der zum Speichern von detektierten Fehlern in einem Codewort verwendet wird, und der Begriff „NV-Fehler-Cache” kann sich auf nicht flüchtigen Speicher (nonvolatile memory (NV)) beziehen, der zum permanenten Speichern von detektierten Fehlern in einem Codewort verwendet wird.
  • In 1 ist eine schematische Darstellung eines Blockdiagramms eines Speichers 100 gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung gezeigt. Obwohl der Schutzbereich der vorliegenden Erfindung nicht auf diese Erfindung beschränkt ist, enthält die Speichereinrichtung 100 ein Haupt-Array von Speicherzellen 110, einen UCODE- Permanent-Reparaturalgorithmus 120, eine EDAC-Maschine 130, einen Fehler-Cache-RAM 140 und einen NV-Fehler-Cache 150.
  • Gemäß dieser beispielhaften Ausführungsform der Erfindung kann der Speicher 100 ein NOR FLASH sein und NOR-gestütztes Array von Speicherzellen enthalten, obwohl verständlich sein sollte, dass der Schutzbereich der vorliegenden Erfindung in keiner Weise diesbezüglich beschränkt ist.
  • Gemäß dieser beispielhaften Ausführungsform der Erfindung kann ein System 105 (z. B. eine Rechenplattform) auf eine Adresse, die einen Fehler enthält, in dem Haupt-Array 110 zugreifen. Die EDAC-Maschine 130 kann, falls gewünscht, den Fehler in einem Bit eines Codeworts in der Adresse, auf die von dem System zugegriffen wird, detektieren und korrigieren. Die EDAC-Maschine 130 kann Fehlerkorrekturinformation über das Bit des Codeworts in dem Fehler-Cache-RAM 140 speichern. Der Fehler-Cache-RAM 140 kann die Fehlerkorrekturinformation zum Korrigieren des Fehlers in dem Bit bei einem weiteren Auftreten eines Fehlers in diesem Bit in diesem Codewort verwenden.
  • Gemäß dieser Ausführungsform der Erfindung kann der Fehler-Cache-RAM die Fehlerkorrekturinformation über das Bit in dem NV-Fehler-Cache 150 speichern. Der NV-Fehler-Cache kann ein gespiegelter Speicher im Falle von Stromausfall und/oder Ausschalten des Speichers 100 sein. In anderen beispielhaften Ausführungsformen kann ein schneller Lese/Schreib-NV-Speicher, falls gewünscht, den Fehler-Cache-RAM 140 ersetzen. Eine permanente Reparatur des Codeworts kann durch den Ucode-Permanent-Reparaturalgorithmus 120 durchgeführt werden.
  • Gemäß Ausführungsformen der Erfindung kann der Ucode-Permanent-Reparaturalgorithmus 120 ein Verfahren zum permanenten Reparieren von Fehlern in dem Haupt-Array 110 sein. Zum Beispiel kann der Ucode-Permanent-Reparaturalgorithmus 120 während Löschalgorithmen, während des Einschaltens oder als Antwort auf einen Benutzerbefehl laufen, was der Einrichtung Zeit bietet, um bekannte Fehler in dem Haupt-Array 110 auszubessern. Der Ucode-Permanent-Reparaturalgorithmus 120 kann eine Zeile mit einem Fehler löschen und stattdessen eine reparierte Zeile schreiben, die aus dem NV-Fehler-Cache 150 herruntergeladen ist. Der Ucode-Permanent-Reparaturalgorithmus 120 kann die Anforderungen an die Größe des Fehler-Cache-RAM 140 und NV-Fehler-Cache 150 effektiv reduzieren.
  • Obwohl der Schutzbereich der vorliegenden Erfindung diesbezüglich nicht beschränkt ist, versteht es sich, dass die EDAC-Maschine 130, der Ucode-Permanent-Reparaturalgorithmus 120 und einige andere Komponenten des Speichers 100 durch Hardware, durch Software oder durch irgendeine gewünschte Kombination von Hardware und Software implementiert werden können.
  • In 2 ist eine schematische Darstellung eines Blockdiagramms eines Speichersystems 200 gemäß einer weiteren beispielhaften Ausführungsform der vorliegenden Erfindung gezeigt. Obwohl der Schutzbereich der vorliegenden Erfindung nicht auf diese Erfindung beschränkt ist, enthält das Speichersystem 200 einen Speicher 210 und einen Speichercontroller 220. Der Speicher 210 kann ein Haupt-Array 215 enthalten. Der Speichercontroller 220 kann einen UCODE-Permanent-Reparaturalgorithmus 230, eine EDAC-Maschine 240, einen Fehler-Cache-RAM 250 und einen NV-Fehler-Cache 260 enthalten.
  • Gemäß dieser beispielhaften Ausführungsform der Erfindung kann der Speicher 210 ein NAND-Flash-basierter Speicher sein und kann das Haupt-Array 215 ein NAND-basiertes Array von Speicherzellen sein, obwohl sich versteht, dass der Schutzbereich der vorliegenden Erfindung diesbezüglich in keiner Weise beschränkt ist.
  • Gemäß dieser beispielhaften Ausführungsform der Erfindung kann eine Adressenabfragemaschine 205 Adressen des Speichers 210 abfragen. Die Adressenabfragemaschine 205 kann auf eine Adresse zugreifen, die einen Fehler enthält. Die EDAC-Maschine 240 des Speichercontrollers 220 kann einen Fehler in einem Bit in einem Codewort detektieren und korrigieren, falls gewünscht. Die EDAC-Maschine 240 kann Fehlerkorrekturinformation über das Bit des Codeworts in dem Fehler-Cache-RAM 250 speichern. Der Fehler-Cache-RAM 250 kann die Fehlerkorrekturinformation zum Korrigieren des Fehlers in dem Bit bei einem weiteren Auftreten des Fehlers in diesem Bit in diesem Codewort verwenden.
  • Gemäß dieser Ausführungsform der Erfindung kann der Fehler-Cache-RAM 250 die Fehlerkorrekturinformation über das Bit in dem NV-Fehler-Cache 260 als ein gespiegelter Speicher im Fall von Stromausfall und/oder Abschalten des Speichers 210 speichern. In anderen beispielhaften Ausführungsformen kann ein schneller Lese/Schreib-NV-Speicher den Fehler-Cache-RAM 250 ersetzen. Eine permanente Reparatur des Codeworts kann durch den Ucode-Permanent-Reparaturalgorithmus 230 durchgeführt werden.
  • Gemäß Ausführungsformen der Erfindung kann der Ucode-Permanent-Reparaturalgorithmus 230 ein Verfahren zum permanenten Reparieren von Fehlern in dem Speicher 210 sein. Zum Beispiel kann der Ucode-Permanent-Reparaturalgorithmus 230 während Löschalgorithmen, während Einschalten oder als Antwort auf einen Benutzerbefehl laufen, was der Einrichtung Zeit bietet, um bekannte Fehler in dem Haupt-Array 215 des Speichers 210 auszubessern. Der Ucode-Permanent-Reparaturalgorithmus 230 kann eine Zeile mit einem Fehler löschen und stattdessen eine fehlerkorrigierte Zeile schreiben. Die fehlerkorrigierte Zeile kann, falls gewünscht, von dem NV-Fehler-Cache 260 heruntergeladen werden.
  • Obwohl der Schutzbereich der vorliegenden Erfindung diesbezüglich nicht beschränkt ist, versteht es sich, dass die Komponente des Speichercontrollers 220, wie zum Beispiel EDAC-Maschine 240, Ucode-Permanent-Reparaturalgorithmus 230 und andere Komponenten durch Hardware, durch Software oder irgendeine gewünschte Kombination von Hardware und Software implementiert werden können.
  • In 3 ist eine Darstellung eines Flussdiagramms eines Verfahrens zur Fehlerdetektion und -korrektur von einen oder mehreren Bits in einem Codewort gemäß einigen Ausführungsformen der Erfindung gezeigt. Gemäß einigen Ausführungsformen der Erfindung kann das Verfahren damit beginnen, dass von einem System (z. B. einer Rechenplattform), wie in Textblock 310 gezeigt, auf eine Adresse eines Haupt-Arrays eines Speichers zugegriffen wird, die einen Fehler enthält.
  • Gemäß einigen anderen Ausführungsformen der Erfindung kann das Verfahren, wie in Textblock 320 gezeigt, damit beginnen, dass von einer Abfragemaschine (Scan Engine (nicht gezeigt)) auf eine Adresse eines Haupt-Arrays eines Speichers zugegriffen wird, die einen Fehler enthält. In jeder Ausführungsform der Erfindung kann eine EDAC-Maschine (z. B. EDAC 130) den Fehler in einem Bit (z. B. Bit 4) eines Codeworts (z. B. Codewort 100) detektieren und korrigieren, wie dies in Textblock 330 gezeigt ist. Die EDAC-Maschine kann Fehlerkorrekturinformation in einem Fehler-Cache-RAM speichern (Textblock 340). Gemäß beispielhaften Ausführungsformen der Erfindung kann die Fehlerkorrekturinformation eine Adresse der Fehlerzeile, einen Symbolort in der Zeile und Korrekturwert für das Symbol enthalten, das das Bit mit dem Fehler (z. B. Bit 4) enthält. Das Verfahren kann damit enden, dass die korrigierten Daten für die gewünschte Adresse (z. B. Adresse 1000) dem System präsentiert werden, obwohl der Schutzbereich der vorliegenden Erfindung diesbezüglich nicht beschränkt ist.
  • In 4 ist eine Darstellung eines Flussdiagramms eines Verfahrens zur Fehlerdetektion und -korrektur von nachfolgenden Fehlern in dem Codewort von 3 gemäß einigen anderen Ausführungsformen der vorliegenden Erfindung gezeigt. Gemäß einigen Ausführungsformen der Erfindung kann das Verfahren die dem System präsentierte Fehlerkorrekturinformation zum Korrigieren von bekannten Fehlern in Bits des Codeworts (wie durch das Verfahren von 3 präsentiert) verwenden. Das Verfahren kann damit beginnen, dass von einem System (z. B. einer Rechenplattform) auf eine Adresse eines Haupt-Arrays eines Speichers, die einen Fehler enthält, zugegriffen wird, wie dies in Textblock 410 gezeigt ist.
  • Gemäß einigen anderen Ausführungsformen der Erfindung kann das Verfahren damit beginnen, dass von einer Abfragemaschine (nicht gezeigt) auf eine Adresse eines Haupt-Arrays eines Speichers, die einen Fehler enthält, zugegriffen wird, wie dies in Textblock 420 gezeigt ist. In jeder Ausführungsform der Erfindung kann ein Fehler-Cache-RAM (z. B. Fehler-Cache-RAM 140) den bekannten Fehler in einem Bit (z. B. Bit 4) eines Codeworts (z. B. Codewort 100) detektieren und korrigieren, wie dies Textblock 430 gezeigt ist. Die EDAC-Maschine kann einen anderen Fehler in einem anderen Bit (z. B. Bit 6) des Codeworts detektieren und korrigieren (Textblock 440). Außerdem kann sie die neue Fehlerkorrekturinformation in dem Fehler-Cache-RAM speichern (Textblock 450). Die neue Fehlerkorrekturinformation kann eine Adresse der Fehlerzeile, einen Symbolort in der Zeile und Korrekturwert für das Symbol enthalten, das das Bit mit dem Fehler (z. B. Bit 6) enthält. Das Verfahren kann damit enden, dass die korrigierten Daten für die gewünschte Adresse (z. B. Adresse 1000) dem System präsentiert werden, obwohl der Schutzbereich der vorliegenden Erfindung diesbezüglich nicht beschränkt ist.
  • Es wird nun ein Beispiel für die Verwendung der Verfahren gemäß den 3 und 4 präsentiert. Gemäß diesem Beispiel kann ein Fehler an einem ersten Tag in Codewort 3 bei Bit 4 auftreten. EDAC detektiert und korrigiert diesen Fehler, wobei die korrigierten Daten dem Host-System präsentiert. Dieser Fehler wird in dem Fehler-Cache-RAM gespeichert. An einem anderen Tag tritt ein anderer Fehler in Codewort 3 bei Bit 6 auf (z. B. Bit 4 Fehler besteht weiterhin). Eine Haupt-Array-Ausgabe weist Fehler in Bits 4 und 6 auf. Gemäß Ausführungsformen der Erfindung wird der Fehler in Bit 4 unter Verwendung von Information korrigiert, die am ersten Tag gespeichert wurde, und wird der Fehler in Bit 6 unter Verwendung der EDAC-Maschine korrigiert.
  • Die oben beschriebenen Techniken können in einem computerlesbaren Medium zur Konfigurierung eines Computersystems zur Ausführung des Verfahrens verkörpert sein. Das computerlesbare Medium kann, beispielsweise und ohne Einschränkung, irgendeines der folgenden sein: magnetisches Speichermedium, einschließlich Platten- und Bandspeichermedien; optisches Speichermedium, wie zum Beispiel Compact Disc-Medien (z. B. CD-ROM, CD-R, etc.) und DVD(Digital Video Disc)-Speichermedien; holographischer Speicher; nichtflüchtige Speichermedien, einschließlich halbleiterbasierte Speichereinheiten, wie zum Beispiel FLASH-Speicher, EEPROM, EPROM, ROM; ferromagnetische digitale Speicher; flüchtige Speichermedien, einschließlich Register, Puffer oder Caches, Hauptspeicher, RAM, etc.; und Datenübertragungsmedien, einschließlich permanente und vorübergehende Computernetze, Punkt-zu-Punkt-Telekommunikationsanlagen, Trägerwellensendemedien, das Internet, nur einige zu nennen. Andere neue und zahlreiche Typen von computerlesbaren Medien können zum Speichern und/oder Senden der hierin diskutierten Softwaremodule verwendet werden. Computersysteme können auf viele Arten vorkommen, einschließlich, ohne darauf beschränkt zu sein, Großrechner, Minicomputer, Server, Workstations, Personalcomputer, Notepads, PDA (Personal Digital Assistants), zahlreiche drahtlose Geräte und eingebettete Systeme, um nur einige zu nennen. Ein typisches Rechensystem enthält mindestens eine Verarbeitungseinheit, zugehörigen Speicher und eine Anzahl von Eingabe/Ausgabe(E/A)-Einrichtungen. Ein Rechensystem verarbeitet Informationen gemäß einem Programm und erzeugt resultierende Ausgabeinformation über E/A-Einrichtungen.
  • Es sind Realisierungen gemäß der vorliegenden Erfindung im Zusammenhang mit besonderen Ausführungsformen beschrieben worden. Diese Ausführungsformen sollen nur zu Darstellungszwecken und nicht als Beschränkung dienen. Es sind zahlreiche Variationen, Modifikationen, Hinzufügungen und Verbesserungen möglich. Dementsprechend können zahlreiche Exemplare für hierin als ein Einzelexemplar beschriebene Komponenten vorgesehen sein. Die Grenzen zwischen zahlreichen Komponenten, Operationen und Datenspeichern sind etwas willkürlich und besondere Operationen sind im Zusammenhang mit speziellen illustrativen Konfigurationen dargestellt worden. Andere Zuteilungen von Funktionalität sind ins Auge gefasst und können in den Schutzbereich der folgenden Ansprüche fallen. Schließlich können als diskrete Komponenten in zahlreichen Konfigurationen präsentierte Strukturen und Funktionalität als eine kombinierte Struktur oder Komponente implementiert sein. Diese und weitere Variationen, Modifikationen, Hinzufügungen und Verbesserungen fallen in den Schutzbereich der Erfindung, wie sie in den folgenden Ansprüchen definiert ist.
  • Zusammenfassung
  • Es werden ein Speicher und ein Verfahren zur Korrektur und Detektion eines Fehlers in einem Codewort eines Speichers präsentiert. Das Verfahren schließt die Detektion und Korrektur eines Fehlers in einem Bit des Codeworts durch eine Fehlerdetektions- und -korrekturmaschine ein, wobei Fehlerkorrekturinformation über den Fehler in einem Cache gespeichert wird. Bei der zweiten Detektion desselben Fehlers in demselben Bit wird die Korrektur des Fehlers auf der Grundlage der gespeicherten Fehlerkorrekturinformation durchgeführt.

Claims (19)

  1. Verfahren zum Korrigieren und Detektieren eines Fehlers in einem Codewort, das in einem Speicher gespeichert ist, umfassend: Detektieren und Korrigieren eines ersten Fehlers in einem Bit des Codeworts; Speichern einer Fehlerkorrekturinformation über den ersten Fehler; Detektieren und Korrigieren eines zweiten Fehlers in einem anderen Bit des Codeworts mit dem ersten Fehler und dem zweiten Fehler; und Korrigieren des ersten Fehlers unter Verwendung der gespeicherten Fehlerkorrekturinformation über den ersten Fehler.
  2. Verfahren nach Anspruch 1, umfassend: Speichern der Fehlerkorrekturinformation über den ersten Fehler in einem Fehler-Cache-RAM (Random Access Memory).
  3. Verfahren nach Anspruch 1, umfassend: Abfragen des Speichers zum Detektieren von Fehlern; Korrigieren von bekannten Fehlern unter Verwendung der gespeicherten Fehlerkorrekturinformation; und Korrigieren von neuen Fehlern und Speichern einer Fehlerkorrekturinformation für die neuen Fehler.
  4. Verfahren nach Anspruch 1, umfassend: Speichern der Fehlerkorrekturinformation in einem Sicherungsspeicher.
  5. Verfahren nach Anspruch 1, umfassend: Durchführen einer permanenten Fehlerkorrektur an dem Speicher durch Ersetzen einer Speicherzeile, die einen detektierten Fehler enthält, durch eine fehlerkorrigierte Zeile.
  6. Verfahren nach Anspruch 1, umfassend: ein Array von Speicherzellen; eine fehlerdetektierende und -korrigierende Maschine zum Detektieren eines Fehlers in einem Bit eines Codeworts und Generieren einer Fehlerkorrekturinformation für das Bit des Codeworts; und einen Fehler-Cache-RAM (Random Access Memory) zum Speichern einer Fehlerkorrekturinformation über den detektierten Fehler und Korrigieren eines detektierten Fehlers desselben Bits auf der Grundlage von gespeicherter Fehlerkorrekturinformation für das Bit des Codeworts.
  7. Vorrichtung nach Anspruch 6, umfassend: eine Adressenabfragemaschine zum Abfragen von Zeilen des Arrays von Speicherzellen nach Fehlern.
  8. Vorrichtung nach Anspruch 6, umfassend: einen nichtflüchtigen Cache zum Speichern einer Sicherung der Fehlerkorrekturinformation.
  9. Vorrichtung nach Anspruch 6, umfassend: einen Permanent-Reparaturalgorithmus zum Reparieren von Fehlern in dem Array von Speicherzellen durch Ersetzen einer Speicherzeile, die einen detektierten Fehler enthält, durch eine fehlerkorrigierte Zeile.
  10. Vorrichtung nach Anspruch 6, dadurch gekennzeichnet, dass das Array von Speicherzeilen einen NOR-Flash-Speicher umfasst.
  11. Speichersystem, umfassend: ein Array von Speicherzellen; und einen Speichercontroller, umfassend: eine fehlerdetektierende und -korrigierende Maschine zum Detektieren eines Fehlers in einem Bit eines Codeworts und Generieren einer Fehlerkorrekturinformation für das Bit des Codeworts; und einen Fehler-Cache-RAM (Random Access Memory) zum Speichern einer Fehlerkorrekturinformation über den detektierten Fehler und Korrigieren eines detektierten Fehlers desselben Bits auf der Grundlage von gespeicherter Fehlerkorrekturinformation für das Bit des Codeworts.
  12. Speichersystem nach Anspruch 11, umfassend: eine Adressenabfragemaschine zum Abfragen von Zeilen des Arrays von Speicherzellen nach Fehlern.
  13. Speichersystem nach Anspruch 11, dadurch gekennzeichnet, dass der Speichercontroller umfasst: einen nichtflüchtigen Cache zum Speichern einer Sicherung der Fehlerkorrekturinformation.
  14. Speichersystem nach Anspruch 11, dadurch gekennzeichnet, dass der Speichercontroller umfasst: einen Permanent-Reparaturalgorithmus zum Reparieren von Fehlern in dem Array von Speicherzellen durch Ersetzen einer Speicherzeile, die einen detektierten Fehler enthält, durch eine fehlerkorrigierte Zeile.
  15. System nach Anspruch 6, dadurch gekennzeichnet, dass das Array von Speicherzellen einen NAND-Flash-Speicher umfasst.
  16. Speichersystem, umfassend: einen NAND-basiertes Array von Speicherzellen; und einen Speichercontroller, umfassend: eine fehlerdetektierende und -korrigierende Maschine zum Detektieren eines Fehlers in einem Bit des Codeworts und Generieren einer Fehlerkorrekturinformation für das Bit des Codeworts; und einen Fehler-Cache-RAM (Random Access Memory) zum Speichern einer Fehlerkorrekturinformation über den detektierten Fehler und Korrigieren des detektierten Fehlers desselben Bits auf der Grundlage von gespeicherter Fehlerkorrekturinformation für das Bit des Codeworts.
  17. Speichersystem nach Anspruch 16, umfassend: eine Adressenabfragemaschine zum Abfragen von Zeilen des Arrays von Speicherzellen nach Fehlern.
  18. Speichersystem nach Anspruch 16, dadurch gekennzeichnet, dass der Speichercontroller umfasst: einen nichtflüchtigen Cache zum Speichern einer Sicherung der Fehlerkorrekturinformation.
  19. Speichersystem nach Anspruch 16, dadurch gekennzeichnet, dass der Speichercontroller umfasst: einen Permanent-Reparaturalgorithmus zum Reparieren von Fehlern in dem Array von Speicherzellen durch Ersetzen einer Speicherzelle, die einen detektierten Fehler enthält, durch eine fehlerkorrigierte Zeile.
DE112007003015.1T 2006-12-14 2007-11-08 Verfahren und Vorrichtung zur Cache-gestützten Fehlerdetektion und -korrektur in einem Speicher Active DE112007003015B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/638,689 2006-12-14
US11/638,689 US7890836B2 (en) 2006-12-14 2006-12-14 Method and apparatus of cache assisted error detection and correction in memory
PCT/US2007/084175 WO2008073654A1 (en) 2006-12-14 2007-11-08 Method and apparatus of cache assisted error detection and correction in memory

Publications (2)

Publication Number Publication Date
DE112007003015T5 true DE112007003015T5 (de) 2009-11-05
DE112007003015B4 DE112007003015B4 (de) 2020-10-01

Family

ID=39512077

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112007003015.1T Active DE112007003015B4 (de) 2006-12-14 2007-11-08 Verfahren und Vorrichtung zur Cache-gestützten Fehlerdetektion und -korrektur in einem Speicher

Country Status (6)

Country Link
US (1) US7890836B2 (de)
JP (1) JP5132687B2 (de)
CN (1) CN101558385B (de)
DE (1) DE112007003015B4 (de)
TW (1) TWI360127B (de)
WO (1) WO2008073654A1 (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008198310A (ja) * 2007-02-15 2008-08-28 Megachips Lsi Solutions Inc ビットエラーの修復方法および情報処理装置
US8640005B2 (en) * 2010-05-21 2014-01-28 Intel Corporation Method and apparatus for using cache memory in a system that supports a low power state
US8589759B2 (en) * 2010-10-01 2013-11-19 Hamilton Sundstrand Corporation RAM single event upset (SEU) method to correct errors
US8775904B2 (en) * 2011-12-07 2014-07-08 International Business Machines Corporation Efficient storage of meta-bits within a system memory
JP2013196393A (ja) * 2012-03-19 2013-09-30 Fujitsu Ltd 演算処理装置及び演算処理装置の制御方法
CN103077095B (zh) * 2012-12-28 2015-05-27 华为技术有限公司 内存数据的纠错方法及装置及计算机系统
JP2014211800A (ja) * 2013-04-19 2014-11-13 株式会社東芝 データ記憶装置、ストレージコントローラおよびデータ記憶制御方法
TWI502601B (zh) * 2013-04-24 2015-10-01 Ind Tech Res Inst 混合式錯誤修復方法及其記憶體裝置
EP3005117A4 (de) * 2013-05-29 2017-01-18 Hewlett-Packard Enterprise Development LP Aufruf einer fehlerbehandlungsroutine zur behandlung eines unkorrigierbaren fehlers
US10031802B2 (en) * 2013-06-28 2018-07-24 Intel Corporation Embedded ECC address mapping
JP6030085B2 (ja) * 2014-03-20 2016-11-24 株式会社東芝 キャッシュメモリおよびプロセッサシステム
US9489255B2 (en) 2015-02-12 2016-11-08 International Business Machines Corporation Dynamic array masking
US11086791B2 (en) * 2019-08-29 2021-08-10 Micron Technology, Inc. Methods for supporting mismatched transaction granularities
US11385961B2 (en) * 2020-08-14 2022-07-12 Micron Technology, Inc. Adaptive parity techniques for a memory device

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2503249B2 (ja) * 1988-05-13 1996-06-05 富士通株式会社 記憶装置におけるeccエラ―処理方式
JPH03116258A (ja) * 1989-09-29 1991-05-17 Toshiba Corp 主記憶代替装置
JPH03152643A (ja) * 1989-11-09 1991-06-28 Koufu Nippon Denki Kk ダブルビットエラー制御回路
JPH04153754A (ja) * 1990-10-18 1992-05-27 Nec Commun Syst Ltd 記憶制御方式
JPH04162161A (ja) * 1990-10-26 1992-06-05 Hitachi Ltd 記憶制御装置
JPH0581145A (ja) * 1991-07-30 1993-04-02 Ishikawajima Harima Heavy Ind Co Ltd Eepromへのデータ書き込み回路
JPH06149685A (ja) * 1992-11-11 1994-05-31 Kofu Nippon Denki Kk メモリエラー回復装置
JPH07122087A (ja) * 1993-10-25 1995-05-12 Hitachi Ltd Eepromエラーチェック方式
US5611042A (en) 1995-10-10 1997-03-11 Lordi; Angela L. Data error detection and correction for a shared SRAM
JP3068009B2 (ja) * 1996-08-06 2000-07-24 日本電気株式会社 冗長化メモリのエラー訂正機構
WO1999005599A1 (en) 1997-07-28 1999-02-04 Intergraph Corporation Apparatus and method for memory error detection and error reporting
US6304992B1 (en) * 1998-09-24 2001-10-16 Sun Microsystems, Inc. Technique for correcting single-bit errors in caches with sub-block parity bits
US6909645B2 (en) 2002-07-16 2005-06-21 Intel Corporation Cluster based redundancy scheme for semiconductor memories
JP2004055100A (ja) * 2002-07-24 2004-02-19 Elpida Memory Inc メモリモジュールの救済方法、メモリモジュール、及び揮発性メモリ
US7231585B2 (en) 2002-12-11 2007-06-12 Nvidia Corporation Error correction for flash memory
US7296213B2 (en) * 2002-12-11 2007-11-13 Nvidia Corporation Error correction cache for flash memory
US7328301B2 (en) 2003-04-07 2008-02-05 Intel Corporation Dynamically mapping block-alterable memories
GB2409301B (en) * 2003-12-18 2006-12-06 Advanced Risc Mach Ltd Error correction within a cache memory
JP2005196680A (ja) * 2004-01-09 2005-07-21 Ricoh Co Ltd コンピュータシステム
US20060004984A1 (en) 2004-06-30 2006-01-05 Morris Tonia G Virtual memory management system
US7302619B1 (en) * 2004-07-06 2007-11-27 Mindspeed Technologies, Inc. Error correction in a cache memory
US7246300B1 (en) * 2004-08-06 2007-07-17 Integrated Device Technology Inc. Sequential flow-control and FIFO memory devices having error detection and correction capability with diagnostic bit generation

Also Published As

Publication number Publication date
WO2008073654A1 (en) 2008-06-19
TW200839779A (en) 2008-10-01
US20080148130A1 (en) 2008-06-19
TWI360127B (en) 2012-03-11
JP5132687B2 (ja) 2013-01-30
CN101558385B (zh) 2012-02-08
DE112007003015B4 (de) 2020-10-01
JP2010512601A (ja) 2010-04-22
US7890836B2 (en) 2011-02-15
CN101558385A (zh) 2009-10-14

Similar Documents

Publication Publication Date Title
DE112007003015B4 (de) Verfahren und Vorrichtung zur Cache-gestützten Fehlerdetektion und -korrektur in einem Speicher
DE102017120840B4 (de) Verfahren und Vorrichtung zur Detektion und Handhabung von Lesestörungen
DE102008003944B4 (de) Speichersystem und Programmierverfahren für ein Speichersystem
DE102020115736A1 (de) Halbleiterspeichervorrichtung und Verfahren zum Betreiben der Halbleiterspeichervorrichtungen
DE19882853B3 (de) Verfahren und Steuereinrichtung zum automatischen Korrigieren von in einem Speichersubsystem erfassten Fehlern und Computersystem, das eine solche Steuereinrichtung aufweist
DE112016005869T5 (de) Vorausschauende Arbeitsspeicherinstandhaltung
DE102006048856B4 (de) Verfahren zum Betreiben einer IC-Halbleiterspeichervorrichtung und IC-Halbleiterspeichervorrichtung
DE2619159A1 (de) Fehlererkennungs- und korrektureinrichtung
DE19914730A1 (de) Verfahren zum Verhindern eines Datenübertrags an beschädigte Adressen
DE112011100579T5 (de) Verfahren und vorrichtung zum verwenden von cachespeicher in einem system, welches einen niedrigleistungszustand unterstützt
DE102005048255A1 (de) Integriertes Schaltungsbauelement und Betriebsverfahren
DE102011075814A1 (de) Speicherpuffer mit zugänglicher Information nach einem Schreibfehler
DE102006047656A1 (de) Speichersteuerung
DE102016010277A1 (de) Verfahren und systeme zum verbessern von speicher-journaling
DE102020115747A1 (de) Speichermodul, Fehlerkorrekturverfahren für Speicher-Controller, der dieses steuert, und Rechensystem, das dieses umfasst
DE102018124836A1 (de) Neuartiger speicherbaustein
DE102017126911A1 (de) Verknüpfter Speichersystem- und Hostsystem-Fehlerkorrekturcode
DE102015105414B4 (de) Bearbeiten eines Zielspeichers
DE102017119065B4 (de) Aktualisieren eines Speichers
DE102020111321A1 (de) System und verfahren zur erkennung und berichtigung von datenfehlern eines transparenten registers
DE102005060901A1 (de) Verfahren zur Erkennung einer Versorgungsunterbrechung in einem Datenspeicher und zur Wiederherstellung des Datenspeichers
DE102018122482A1 (de) Halbleiter-Speichermodul, Halbleiter-Speichersystem und Verfahren zum Zugreifen auf ein Halbleiter-Speichermodul
EP1639466B1 (de) Verfahren und vorrichtung zur fehlererkennung für einen cachespeicher und entsprechender cachespeicher
DE102007051061B4 (de) Nichtflüchtiges Halbleiterspeichersystem und entsprechendes Verfahren zum Durchführen einer Programmieroperation
DE102017124799A1 (de) Inlinebasierte fehlererkkennungs- und fehlerkorrekturtechniken

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R081 Change of applicant/patentee

Owner name: SK HYNIX NAND PRODUCT SOLUTIONS CORP., SAN JOS, US

Free format text: FORMER OWNER: INTEL CORPORATION, SANTA CLARA, CALIF., US