DE102020106006A1 - Partieller xor-schutz - Google Patents

Partieller xor-schutz Download PDF

Info

Publication number
DE102020106006A1
DE102020106006A1 DE102020106006.8A DE102020106006A DE102020106006A1 DE 102020106006 A1 DE102020106006 A1 DE 102020106006A1 DE 102020106006 A DE102020106006 A DE 102020106006A DE 102020106006 A1 DE102020106006 A1 DE 102020106006A1
Authority
DE
Germany
Prior art keywords
blocks
protection
word lines
pool
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102020106006.8A
Other languages
English (en)
Inventor
Avi Klein
Eran Sharon
Gadi Vishne
Igor Genshaft
Marina Frid
Michal Silbermintz
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.)
Western Digital Technologies Inc
Original Assignee
Western Digital Technologies Inc
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 Western Digital Technologies Inc filed Critical Western Digital Technologies Inc
Publication of DE102020106006A1 publication Critical patent/DE102020106006A1/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/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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/1202Word line control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

Ein System und Verfahren zum Anwenden einer ersten Schutzstufe auf Daten in einem Speichermodul schließt das Identifizieren einer schwachen Wortleitung aus mindestens einem einer Vielzahl von Blöcken des Speichermoduls ein. Jeder Block der Vielzahl von Blöcken schließt eine Vielzahl von Wortleitungen ein. Das System und Verfahren weist auch das Bestimmen, dass die schwache Wortleitung eine erste Schutzstufe erhalten soll, und das Anwenden der ersten Schutzstufe auf die schwache Wortleitung auf.

Description

  • HINTERGRUND
  • Die folgende Beschreibung wird bereitgestellt, um das Verständnis des Lesers zu unterstützen. Keine der bereitgestellten Informationen oder zitierten Referenzen gelten als Stand der Technik.
  • Speichervorrichtungen werden in einer großen Vielzahl von Anwendungen zum Speichern von Daten in einem oder mehreren Speichermodulen einer Speichervorrichtung verwendet. Die Daten in jedem des einen oder der mehreren Speichermodule können durch einen Schutzmechanismus geschützt werden, um das Risiko eines Datenverlustes zu verringern. Doch die heutigen Techniken zum Schutz von Daten, die in einem oder mehreren Speichermodulen gespeichert sind, haben Einschränkungen in der Art und Weise, in der diese Schutztechniken konfiguriert sind.
  • KURZDARSTELLUNG
  • Gemäß einigen Gesichtspunkten der vorliegenden Offenbarung wird ein Verfahren offenbart. Das Verfahren schließt das Identifizieren einer schwachen Wortleitung aus mindestens einem einer Vielzahl von Blöcken eines Speichermoduls ein. Jeder Block der Vielzahl von Blöcken schließt eine Vielzahl von Wortleitungen ein. Das Verfahren schließt auch das Bestimmen ein, dass die schwache Wortleitung eine erste Schutzstufe erhalten soll, und das Anwenden der ersten Schutzstufe auf die schwache Wortleitung.
  • Gemäß einigen weiteren Gesichtspunkten der vorliegenden Offenbarung wird ein nicht-transitorischer computerlesbarer Datenträger mit darauf gespeicherten computerlesbaren Anweisungen offenbart. Wenn die Befehle von einem Prozessor ausgeführt werden, der mit einem Speichermodul verbunden ist, wird ein Prozess durchgeführt, der das Kategorisieren jedes Blocks des Speichermoduls in einen ersten oder zweiten Pool einschließt. Der zweite Pool schließt vermutet fehlerhaft gewordene Blöcke des Speichermoduls ein, und der erste Pool schließt verbleibende Blöcke des Speichermoduls ein, die nicht die vermutet fehlerhaft gewordenen Blöcke sind. Jeder der Blöcke des Speichermoduls schließt eine Vielzahl von Wortleitungen ein. Der Prozess schließt auch Anwenden einer ersten Schutzstufe auf jede der Vielzahl von Wortleitungen jedes der vermutet fehlerhaft gewordenen Blöcke im zweiten Pool, periodisches Überwachen der verbleibenden Blöcke des Speichermoduls im ersten Pool zum Identifizieren eines zusätzlichen vermutet fehlerhaft gewordenen Blocks, Übertragen des zusätzlichen vermutet fehlerhaft gewordenen Blocks in den zweiten Pool und Anwenden der ersten Schutzstufe auf jede der Vielzahl von Wortleitungen des zusätzlichen vermutet fehlerhaft gewordenen Blocks ein.
  • Gemäß noch weiteren Gesichtspunkten der vorliegenden Offenbarung wird eine Speichervorrichtung offenbart. Die Speichervorrichtung schließt eine Vielzahl von Speichermodulen ein, wobei die Vielzahl von Speichermodulen jeweils eine Vielzahl von Blöcken hat und die Vielzahl von Blöcken jeweils eine Vielzahl von Wortleitungen hat. Die Speichervorrichtung schließt auch eine Speichersteuerung ein, die jedem der Vielzahl von Speichermodulen zugeordnet ist. Die Speichersteuerung schließt programmierte Befehle zum Identifizieren einer Gruppe schwacher Wortleitungen aus jedem der Vielzahl von Blöcken, Identifizieren einer Untermenge von Wortleitungen aus der Gruppe schwacher Wortleitungen aus jedem der Vielzahl von Blöcken für XOR-Schutz und Anwenden des XOR-Schutzes auf jede der Untermenge von Wortleitungen jedes der Vielzahl von Blöcken ein.
  • Die vorhergehende Zusammenfassung ist nur veranschaulichend und soll in keiner Weise einschränkend sein. Zusätzlich zu den oben beschriebenen veranschaulichenden Gesichtspunkten, Ausführungsformen und Merkmalen werden weitere Gesichtspunkte, Ausführungsformen und Merkmale unter Bezugnahme auf die folgenden Zeichnungen und die ausführliche Beschreibung deutlich.
  • Figurenliste
    • 1 ist ein beispielhaftes Blockdiagramm eines Computersystems gemäß einigen Ausführungsformen der vorliegenden Offenbarung.
    • 2A ist ein exemplarisches Blockdiagramm, das ein Speichermodul des Computersystems aus 1 gemäß einigen Ausführungsformen der vorliegenden Offenlegung genauer zeigt.
    • 2B ist ein exemplarisches Diagramm einer Speicherzelle des Speichermoduls aus 2A gemäß einigen Ausführungsformen der vorliegenden Offenlegung.
    • 3 ist ein exemplarisches Blockdiagramm einer ersten Ausführungsform zum Anwenden des partiellen XOR-Schutzes gemäß einigen Ausführungsformen der vorliegenden Offenbarung.
    • 4 ist ein exemplarisches Flussdiagramm, das Operationen zum Anwenden des partiellen XOR-Schutzes in der ersten Ausführungsform aus 3 gemäß einigen Ausführungsformen der vorliegenden Offenlegung skizziert.
    • 5 ist ein exemplarisches Blockdiagramm einer zweiten Ausführungsform zum Anwenden des partiellen XOR-Schutzes gemäß einigen Ausführungsformen der vorliegenden Offenbarung.
    • 6 ist ein exemplarisches Blockdiagramm, das zusätzliche Details der zweiten Ausführungsform aus 5 gemäß einigen Ausführungsformen der vorliegenden Offenbarung zeigt.
    • 7 ist ein exemplarisches Flussdiagramm, das Operationen zum Anwenden des partiellen XOR-Schutzes in der zweiten Ausführungsform aus 5 gemäß einigen Ausführungsformen der vorliegenden Offenlegung skizziert.
    • 8 ist ein exemplarisches Blockdiagramm einer dritten Ausführungsform zum Anwenden des partiellen XOR-Schutzes gemäß einigen Ausführungsformen der vorliegenden Offenbarung.
    • 9 ist ein exemplarisches Flussdiagramm, das Operationen zum Anwenden des partiellen XOR-Schutzes in der dritten Ausführungsform aus 8 gemäß einigen Ausführungsformen der vorliegenden Offenlegung skizziert.
  • Die vorstehenden und andere Merkmale der vorliegenden Offenbarung werden aus der folgenden Beschreibung und den beigefügten Ansprüchen in Verbindung mit den beigefügten Zeichnungen ersichtlich. Unter der Voraussetzung, dass diese Zeichnungen nur mehrere Ausführungsformen gemäß der Offenbarung darstellen und daher nicht als Einschränkung ihres Umfangs anzusehen sind, wird die Offenbarung durch Verwendung der beigefügten Zeichnungen spezifischer und detaillierter beschrieben.
  • DETAILLIERTE BESCHREIBUNG
  • In der folgenden detaillierten Beschreibung wird auf die beigefügten Zeichnungen Bezug genommen, die einen Teil davon bilden. In den Zeichnungen kennzeichnen ähnliche Symbole üblicherweise ähnliche Komponenten, sofern der Kontext nichts anderes vorschreibt. Die in der detaillierten Beschreibung, den Zeichnungen und den Ansprüchen beschriebenen veranschaulichenden Ausführungsformen sind nicht als Einschränkung gedacht. Andere Ausführungsformen können verwendet werden und andere Änderungen können vorgenommen werden, ohne vom Geist oder Umfang des hier präsentierten Gegenstandes abzuweichen. Es versteht sich von selbst, dass die Gesichtspunkte der vorliegenden Offenbarung, wie hierin allgemein beschrieben und in den Figuren veranschaulicht, in einer Vielzahl von verschiedenen Konfigurationen angeordnet, ersetzt, kombiniert und gestaltet werden können, die alle ausdrücklich in Betracht gezogen und zum Bestandteil dieser Offenbarung gemacht werden.
  • Die vorliegende Offenlegung richtet sich an eine Speichervorrichtung mit einer Speichersteuerung, die kommunikativ mit einem oder mehreren Speichermodulen gekoppelt ist. Das eine oder die mehreren Speichermodule schließen jeweils eine Vielzahl von Blöcken ein, und die Vielzahl von Blöcken schließt jeweils eine Vielzahl von NAND-Strings ein, die mit einer Vielzahl von Wortleitungen verbunden sind. Jeder der Vielzahl von NAND-Strings ist auch mit einer Bitleitung verbunden. Jeder der Vielzahl von NAND-Strings kann durch Anlegen entsprechender Spannungen an die Bitleitung und die Vielzahl von Wortleitungen gesteuert werden, um Daten zu lesen, zu schreiben oder zu löschen. In einigen Fällen können Daten, die innerhalb der Vielzahl von NAND-Strings gespeichert sind, geschützt werden, um das Risiko eines Datenverlustes zu verringern. Ein solcher Schutzmechanismus ist ein exklusiver ODER-Schutz („XOR“-Schutz).
  • Bei Verwenden des XOR-Schutzes kann eine XOR-Operation für Datenbits durchgeführt werden, bevor die Daten gespeichert werden. Das Ergebnis der XOR-Operation kann als XOR-Signatur angesehen und zusammen mit den Daten gespeichert werden. Die XOR-Signatur kann zum Wiederherstellen von Daten verwendet werden, wenn die Daten verloren gehen oder durch andere Fehlerkorrekturmittel (z. B. Verwendung von Fehlerkorrekturcodes) nicht wiederherstellbar sind. Um Daten mit Hilfe der XOR-Signatur wiederherzustellen, kann die XOR-Operation auf den Datenteilen umgekehrt werden. XOR-Schutz ist zwar wirksam, hat aber möglicherweise mehrere Nachteile. Zum Beispiel erfordern XOR-Schutz-Implementierungen eine Überdimensionierung des Speichers, da die XOR-Signatur zusammen mit den Daten gespeichert werden muss. Anwenden des XOR-Schutzes auf jedes Datenelement in jedem der Vielzahl von Blöcken eines Speichermoduls und Speichern der XOR-Signatur jedes Datenelements verschärft die Anforderungen an die Überdimensionierung des Speichers.
  • Anwenden des XOR-Schutzes auf jeden der Vielzahl von Blöcken (als vollständiger XOR-Schutz bezeichnet) erfordert daher einen großen Speicher (z. B. einen großen statischen Direktzugriffsspeicher oder einen dynamischen Direktzugriffsspeicher), was die Kosten der Speichersteuerung und damit die Gesamtkosten der Speichervorrichtung erhöhen kann. Anwenden des XOR-Schutzes auf jeden der Vielzahl von Blöcken kann auch eine große Latenzstrafe während der Datenwiederherstellung mit sich bringen, was für das Erfüllen bestimmter Zeitüberschreitungsanforderungen innerhalb des Speichermoduls problematisch sein kann. Anwenden des XOR-Schutzes auf jeden der Vielzahl von Blöcken erhöht auch die Gesamtkomplexität der Speichervorrichtung einschließlich Software-, Hardware- und Firmware-Komplexität.
  • Somit stellt die vorliegende Offenbarung technische Lösungen zum Implementieren des XOR-Schutzes bereit, die die Komplexität und Kosten der Speichervorrichtung verringern, während sie einen effizienten und wirksamen Mechanismus zum Schützen von Daten unter Verwendung des XOR-Schutzes bereitstellen. Insbesondere stellt die vorliegende Offenbarung einen partiellen XOR-Schutzmechanismus bereit, bei dem nur bestimmte Blöcke eines Speichermoduls oder bestimmte Teile eines Blocks des Speichermoduls XOR-geschützt sind. Die vorliegende Offenbarung bietet auch einen Mechanismus zum Identifizieren, welche Blöcke oder Teile eines Blocks für den XOR-Schutz geeignet sind, und zum Anwenden des XOR-Schutzes nur auf diese Blöcke oder Teile des Blocks.
  • Bei einer ersten Ausführungsform des partiellen XOR-Schutzes können „schwache“ Bereiche in jedem Block identifiziert und unter Verwendung des XOR-Schutzmechanismus geschützt werden. Durch Identifizieren der „schwachen“ Bereiche lassen sich Teile jedes Blocks, die von XOR-Schutz am meisten profitieren können, identifizieren. Ferner können durch Anwenden des XOR-Schutzes oder einer anderen Art von bestimmtem Schutz (z. B. einstufiger Zellkopierschutz) auf nur einen Teil jedes Blocks die Komplexität und Kosten, die mit XOR-Schutz verbunden sind, verringert werden. Bei einigen Ausführungsformen können die „schwachen“ Bereiche identifiziert werden, indem Wortleitungen des Blocks, die vom XOR-Schutz am meisten profitieren können, identifiziert werden. Die meisten Wortleitungen in einem Block sind von „hoher“ Qualität, und nur ein Bruchteil der Wortleitungen ist von „schwacher“ oder „geringer“ Qualität. Somit können „schwache“ Wortleitungen eines Blocks für den XOR-Schutz identifiziert werden. Eine Wortleitung kann als „schwach“ gelten, wenn sie bestimmte vorgegebene Kriterien nicht erfüllt. Eine Speicherzustandsprüfung kann an jedem Block durchgeführt werden, um die „schwachen“ Wortleitungen in diesem Block zu identifizieren. Ferner können bei einigen Ausführungsformen alle „schwachen“ Wortleitungen eines bestimmten Blocks XOR-geschützt sein, während bei einigen Ausführungsformen eine Untermenge der „schwachen“ Wortleitungen XOR-geschützt sein kann. Bei einigen Ausführungsformen können zusätzliche Mechanismen wie Abnutzungsausgleich zusammen mit XOR-Schutz „schwacher“ Wortleitungen zum Einsatz kommen, um die Verwendung dieser Wortleitungen zu verringern und die Betriebsdauer dieser Wortleitungen zu verlängern.
  • Speicherzustandsprüfung zum Identifizieren der „schwachen“ Wortleitungen können während der Entwicklung oder Herstellung des zugehörigen Speichermoduls und/oder während des Betriebs des Speichermoduls durchgeführt werden. Ferner können nicht XOR-geschützte Wortleitungen (ob „schwach“ oder nicht) entweder überhaupt nicht oder mit anderen, weniger komplexen oder schwächeren Schutzmechanismen geschützt werden, wie einem einfacheren XOR-Schutz über eine einfachere XOR-Streifengröße, Verwenden von Fehlerkorrekturcodes, Speichern von Daten in einstufigen Zellen usw. Durch Anwenden des XOR-Schutzes (oder einer anderen Art von bestimmtem Schutz) auf nur eine kleine Gruppe von Wortleitungen in jedem Block eines Speichermoduls kann die durchschnittliche Leistung des Speichermoduls erhöht werden. Die Wortleitungen, die keinen XOR-Schutz (oder eine andere Art des bestimmten Schutzes) erhalten, sind möglicherweise entweder überhaupt nicht oder mit einer einfacheren Art von Schutz (z. B. Fehlerkorrekturcode-Schutz, XOR-Schutz über eine größere Streifenhöhe usw.) geschützt.
  • Bei einer zweiten Ausführungsform des partiellen XOR-Schutzes kann anstelle des Identifizierens „schwacher“ Wortleitungen in jedem Block eines Speichermoduls eine Untermenge von Blöcken identifiziert werden, die als vermutet fehlerhaft gewordene Blöcke betrachtet werden. Die meisten Blöcke in einem Speichermodul gelten als „hochwertige“ Blöcke, die keinen XOR-Schutz benötigen oder für die ein einfacherer oder schwächerer Schutz ausreichen kann. Daher benötigt möglicherweise nur ein Bruchteil von Blöcken eines Speichermoduls (bei einigen Ausführungsformen z. B. weniger als 5 %) XOR-Schutz. Dieser kleine Bruchteil von Blöcken kann als vermutet fehlerhaft gewordene Blöcke identifiziert werden. Zu den vermutet fehlerhaft gewordenen Blöcken gehören somit auch Blöcke, die entweder fehlerhaft geworden sind oder von denen erwartet wird, dass sie innerhalb eines vorgegebenen Zeitraums fehlerhaft werden. Die vermutet fehlerhaft gewordenen Blöcke können durch Speicherzustandsprüfung während der Entwicklung/Herstellung und/oder des Betriebs identifiziert werden.
  • Identifizieren vermutet fehlerhaft gewordener Blöcke (z. B. Blöcke, die fehlerhaft werden können) kann einfacher sein als Identifizieren tatsächlich fehlerhaft gewordener Blöcke (z. B. Blöcke, die fehlerhaft werden). Somit kann bei einigen Ausführungsformen anstelle des Identifizierens von beispielsweise 1 % tatsächlich fehlerhaft gewordenen Blöcken ein höherer Prozentsatz von beispielsweise 10 % vermutet fehlerhaft gewordenen Blöcken identifiziert werden. Die vermutet fehlerhaft gewordenen Blöcke sind keine „fehlerhaften Blöcke“ und können während des Betriebs weiter verwendet werden. Fehlerhafte Blöcke werden während des Betriebs nicht verwendet. Bei einigen Ausführungsformen kann, wenn der Prozentsatz der vermutet fehlerhaft gewordenen Blöcke unter einem bestimmten Schwellenwert liegt, ein einfacherer Schutzmechanismus wie ein einfacherer XOR-Schutz oder Schutz durch Speichern in einstufigen Zellen verwendet werden, wodurch das Verwenden von XOR-Schutz vollständig vermieden wird. Zusätzlich können die Blöcke, die nicht die vermutet fehlerhaft gewordenen Blöcke oder fehlerhaften Blöcke sind, entweder überhaupt nicht geschützt werden oder auch einen einfacheren Schutzmechanismus erhalten (z. B. Fehlerkorrekturcode-Schutz, XOR-Schutz über eine größere Streifenhöhe usw.).
  • Eine dritte Ausführungsform von partiellem XOR-Schutz kann eine Kombination aus der ersten und zweiten oben erörterten Ausführungsform sein. Zum Beispiel kann eine kleine Untermenge von Blöcken für XOR-Schutz identifiziert werden. Innerhalb dieser kleinen Untermenge von Blöcken können „schwache“ Wortleitungen für XOR-Schutz (oder eine andere Art von bestimmtem Schutz) identifiziert werden, wodurch Komplexität und Kosten weiter reduziert und die Leistung des Speichermoduls erhöht werden. Auch hier sind die Wortleitungen, die keinen XOR-Schutz (oder eine andere Art von bestimmtem Schutz) erhalten, möglicherweise entweder überhaupt nicht oder mit einer einfacheren Form von Schutz (z. B. Fehlerkorrekturcode-Schutz, XOR-Schutz über eine größere Streifenhöhe usw.) geschützt.
  • Unter Bezugnahme nun auf 1 wird ein exemplarisches Blockdiagramm eines Computersystems 100 gemäß einigen Ausführungsformen der vorliegenden Offenbarung gezeigt. Das Computersystem 100 schließt eine Host-Vorrichtung 105 ein, die mit einer Speichervorrichtung 110 assoziiert ist. Die Host-Vorrichtung 105 kann dazu eingerichtet sein, Eingänge von einer oder mehreren Eingabevorrichtungen 115 zu empfangen und Ausgänge an eine oder mehrere Ausgabevorrichtungen 120 bereitzustellen. Die Host-Vorrichtung 105 kann dazu eingerichtet sein, mit der Speichervorrichtung 110, den Eingabevorrichtungen 115 und den Ausgabevorrichtungen 120 über geeignete Schnittstellen 125A, 125B bzw. 125C zu kommunizieren. Das Computersystem 100 kann in einer Vielzahl von Computervorrichtungen implementiert sein, wie Computern (z. B. Desktop, Laptop usw.), Tablets, persönlichen digitalen Assistenten, mobilen Vorrichtungen, tragbaren Computervorrichtungen wie Smart-Watches, anderen handgeführten oder tragbaren Vorrichtungen oder jeder anderen Computereinheit, die für die Durchführung von Operationen unter Verwendung der Host-Vorrichtung 105 geeignet ist.
  • Die Eingabevorrichtungen 115 können eine Vielzahl von Eingabetechnologien einschließen, wie Tastatur, Stift, Touchscreen, Maus, Trackball, Tastenfeld, Mikrofon, Spracherkennung, Bewegungserkennung, Fernbedienungen, Eingabesports, eine oder mehrere Schaltflächen, Wählscheiben, Joysticks und jede andere Eingabeperipherievorrichtung, die mit der Host-Vorrichtung 105 assoziiert ist und die einer externen Quelle, wie einem Benutzer, das Eingeben von Informationen (z. B. Daten) in die Host-Vorrichtung und das Senden von Anweisungen an die Host-Vorrichtung ermöglicht. Analog können die Ausgabevorrichtungen 120 eine Vielzahl von Ausgabetechnologien einschließen, wie externe Speicher, Drucker, Lautsprecher, Displays, Mikrofone, Leuchtdioden, Kopfhörer, Plotter, Sprachausgabevorrichtungen, Videovorrichtungen, globale Positionierungssysteme und alle anderen Ausgabeperipherievorrichtungen, die eingerichtet sind, Informationen (z. B. Daten) von der Host-Vorrichtung 105 zu empfangen. Die „Daten“, die entweder in die Host-Vorrichtung 105 eingegeben und/oder von der Host-Vorrichtung ausgegeben werden, können eine Vielzahl von Textdaten, grafischen Daten, Videodaten, Tondaten, Positionsdaten, Kombinationen davon oder andere Arten von analogen und/oder digitalen Daten, die sich für die Verarbeitung unter Verwendung des Computersystems 100 eignen, einschließen.
  • Obwohl nicht dargestellt, kann die Host-Vorrichtung 105 eine oder mehrere Verarbeitungseinheiten einschließen, die dafür konfiguriert sein können, Anweisungen zum Ausführen einer oder mehrerer Anwendungen auszuführen. In einigen Ausführungsformen können die Anweisungen und Daten, die zum Ausführen einer oder mehrerer Anwendungen benötigt werden, in der Speichervorrichtung 110 gespeichert sein. In solchen Fällen kann die Host-Vorrichtung 105 die Speichervorrichtung 110 auffordern, die Daten und Anweisungen abzurufen, die dann zumindest vorübergehend in einem Speicher auf der Host-Vorrichtung gespeichert werden können. Die Host-Vorrichtung 105 kann auch dazu eingerichtet sein, die Ergebnisse des Ausführens der einen oder der mehreren Anwendungen in der Speichervorrichtung 110 zu speichern. Somit kann die Host-Vorrichtung 105 dazu eingerichtet sein, die Speichervorrichtung 110 aufzufordern, eine Vielzahl von Operationen durchzuführen. Beispielsweise kann die Host-Vorrichtung 105 die Speichervorrichtung 110 auffordern, Daten zu lesen, Daten zu schreiben, Daten zu aktualisieren oder zu löschen und/oder Verwaltungs- oder andere Operationen durchzuführen.
  • Die Speichervorrichtung 110 schließt eine Speichersteuerung 130 ein, die dazu eingerichtet sein kann, Daten aus einem nichtflüchtigen Speicher-Array 135 zu lesen oder in dieses zu schreiben. Das nichtflüchtige Speicher-Array 135 kann eines oder mehrere Speichermodule wie Speichermodule 140A-140N einschließen. Jedes der Speichermodule 140A-140N kann eine Vielzahl von nichtflüchtigen Speichertypen einschließen. Bei einigen Ausführungsformen können zum Beispiel eins oder mehrere der Speichermodule 140A-140N NAND-Flash-Speicherkerne einschließen. Bei anderen Ausführungsformen können eins oder mehrere der Speichermodule 140A-140N NOR-Flash-Speicherkerne, statische Direktzugriffsspeicher-Kerne (SRAM-Kerne), dynamische Direktzugriffsspeicher-Kerne (DRAM-Kerne), magnetoresistive Direktzugriffsspeicher-Kerne (MRAM-Kerne), Phasensteuerspeicher-Kerne (PCM-Kerne), resistive Direktzugriffsspeicher-Kerne (ReRAM-Kerne), 3D XPoint-Speicherkerne, ferroelektrische Direktzugriffsspeicher-Kerne (FeRAM-Kerne) und andere Arten von Speicherkernen, die sich für die Verwendung innerhalb des nichtflüchtigen Speicher-Arrays 135 eignen, einschließen.
  • Die Speichermodule 140A-140N können einzeln und unabhängig voneinander durch die Speichersteuerung 130 gesteuert werden. Mit anderen Worten kann die Speichersteuerung 130 dazu eingerichtet sein, mit jedem der Speichermodule 140A-140N einzeln und unabhängig voneinander zu kommunizieren. Wie vorstehend erläutert, können die Speichermodule 140A-140N in einem Standby-Zustand bleiben, bis die Speichersteuerung 130 die Kommunikation mit einem der Speichermodule durch Generieren eines Chip-Select- oder Chip-Freigabesignals herstellen möchte. Die Speichersteuerung 130 kann als logischer Block oder Schaltlogik eingerichtet sein, die Anweisungen von der Host-Vorrichtung 105 empfängt und Operationen gemäß diesen Anweisungen ausführt. Beispielsweise kann die Speichersteuerung 130 dazu eingerichtet sein, als Reaktion auf die von der Host-Vorrichtung 105 empfangenen Anweisungen Daten von einem oder mehreren der Speichermodule 140A-140N zu lesen oder in diese zu schreiben. Die Speichersteuerung 130 kann sich auf demselben Chip wie das nichtflüchtige Speicher-Array 135 oder auf einem anderen Chip befinden.
  • Bei einigen Ausführungsformen kann eine Testschaltung 145 mindestens vorübergehend mit der Speichervorrichtung 110 verbunden sein. Die Testschaltung 145 kann zum Durchführen einer Speicherzustandsprüfung an den Speichermodulen 140A-140N während der Herstellung oder Entwicklung dieser Speichermodule oder der Herstellung/Entwicklung der Speichervorrichtung 110 verwendet werden. Bei einigen Ausführungsformen kann die Testschaltung 145 auch dazu verwendet werden, den Speicherzustand während des Betriebs (z. B. nach Entwicklung/Herstellung) des Speicherbausteins 110 zu prüfen. Bei einigen Ausführungsformen kann die Testschaltung 145 Teil der Host-Vorrichtung 105 sein. Die Testschaltung 145 kann dafür konfiguriert sein, Testmuster oder Testbefehle/-daten an die zu testenden Speichermodule 140A-140N zu senden und Testergebnisse von diesen Speichermodulen zurückzuerhalten. Die Testschaltung 145 kann die Testergebnisse auch analysieren, um „schwache“ Bereiche der Speichermodule 140A-140N und/oder vermutet fehlerhaft gewordene Blöcke zu identifizieren, wie nachfolgend erörtert. Die Testschaltung 145 kann in Software, Hardware, Firmware oder einer Kombination davon implementiert sein.
  • Es versteht sich jedoch, dass nur einige Komponenten des Computersystems 100 in 1 dargestellt und beschrieben sind. Das Computersystem 100 kann jedoch auch andere Komponenten wie verschiedene Batterien und Stromquellen, Netzwerkschnittstellen, Router, Schalter, externe Speichersysteme, Steuerungen usw. einschließen. Allgemein kann das Computersystem 100 eine Vielzahl von Hardware-, Software- und/oder Firmware-Komponenten einschließen, die zur Durchführung der hier beschriebenen Funktionen erforderlich oder als wünschenswert erachtet sind. Analog können die Host-Vorrichtung 105, die Eingabevorrichtungen 115, die Ausgabevorrichtungen 120 und die Speichervorrichtung 110, einschließlich der Speichersteuerung 130 und des nichtflüchtigen Speicher-Arrays 135, andere Hardware-, Software- und/oder Firmware-Komponenten einschließen, die für die Ausführung der hier beschriebenen Funktionen als notwendig oder wünschenswert erachtet werden.
  • Unter Bezugnahme auf 2A und 2B ist ein exemplarisches Blockdiagramm eines Speichermoduls 200 in 2A und eine exemplarische Speicherzelle 205 in 2B gemäß Ausführungen der vorliegenden Offenbarung dargestellt. Das Speichermodul 200 ähnelt einem der Speichermodule 140A-140N aus 1. Nur bestimmte Komponenten des Speichermoduls 200 sind in 2A dargestellt. Dennoch können andere Komponenten, die zum Durchführen der hier beschriebenen Funktionen erforderlich oder wünschenswert sind, im Speichermodul 200 bereitgestellt oder mit diesem verbunden sein. Das Speichermodul 200 ist vom NAND-Speichertyp. Bei anderen Ausführungsformen kann das Speichermodul 200 jedoch auch von anderen Speichertypen sein, wie in 1 erörtert. Das Speichermodul 200 schließt eine Vielzahl von NAND-Strings 210 ein. Ein NAND-String 215 der Vielzahl von NAND-Strings 210 schließt eine Vielzahl von Speicherzellen 220 ein. Eine oder mehrere der Vielzahl von Speicherzellen 220 können der Speicherzelle 205 aus FIIG. 2B ähnlich sein.
  • Unter Bezugnahme auf 2B in Verbindung mit 2A kann die Speicherzelle 205 bei einigen Ausführungsformen als Feldeffekttransistor mit einem Source-Anschluss 225A, einem Drain-Anschluss 225B und einem Steueranschluss 225C ausgeführt sein. Die Speicherzelle 205 kann auch ein Floating-Gate 225D einschließen, das zum Speichern von Ladung konfiguriert ist. Bei einigen Ausführungen kann das Floating-Gate 225D isoliert sein, um das Floating-Gate elektrisch zu isolieren und die elektrische Ladung darin einzufangen. Strom kann zwischen dem Source-Anschluss 22A und dem Drain-Anschluss 225B gesteuert durch den Steueranschlusses 225C und das Floating-Gate 225D fließen. Bei anderen Ausführungsformen können die Speicherzelle 205 und damit eine oder mehrere der Vielzahl von Speicherzellen 220 auf andere Weise implementiert sein. Unter erneuter Bezugnahme auf 2A kann die Vielzahl von Speicherzellen 220 im NAND-String 215 in Daisy-Chain-Technik miteinander verbunden sein, so dass der Source-Anschluss einer Speicherzelle mit dem Drain-Anschluss einer anderen Speicherzelle verbunden ist. Die Anzahl von Speicherzellen, die die Vielzahl von Speicherzellen 220 bilden, kann von einer Ausführungsform zur anderen variieren. Zum Beispiel kann bei einigen Ausführungsformen die Anzahl der Vielzahl von Speicherzellen 220 je nach Wunsch vier, acht, sechzehn usw. einschließen.
  • Der NAND-String 215 kann auch einen ersten Auswahltransistor 230 und einen zweiten Auswahltransistor 235 auf jeder Seite der Vielzahl von Speicherzellen 220 einschließen. Der erste Auswahltransistor 230 und der zweite Auswahltransistor 235 können dafür konfiguriert sein, den NAND-String mit anderen Komponenten des Speichermoduls 200 und/oder anderen Komponenten außerhalb des Speichermoduls zu verbinden. Der erste Auswahltransistor 230 und der zweite Auswahltransistor 235 können jeweils als Feldeffekttransistor mit einem Source-Anschluss, einem Drain-Anschluss und einem Steueranschluss implementiert sein. Wenn der Steueranschluss des ersten Auswahltransistors 230 durch dessen Steueranschluss eingeschaltet wird, kann der Source-Anschluss des ersten Auswahltransistors 230 mit einer Source-Leitung 240 verbunden werden. Analog kann, wenn der zweite Auswahltransistor 235 durch dessen Steueranschluss eingeschaltet wird, der Drain des zweiten Auswahltransistors mit einer Bitleitung 245 verbunden werden. Durch Einschalten des ersten Auswahltransistors 230 und des zweiten Auswahltransistors 235 kann der NAND-String 215 ausgewählt werden, um Lese-, Schreib- oder andere Operationen auszuführen.
  • Ferner ist der Steueranschluss der Vielzahl von Speicherzellen 220 jeweils mit einer entsprechenden Wortleitung wie Wortleitungen 250A-2520N verbunden. Die Wortleitungen 250A-250N können zum Steuern von Lese- und Schreibvorgängen im NAND-String 215 verwendet werden, sobald der NAND-String durch den ersten Auswahltransistor 230 und den zweiten Auswahltransistor 235 gewählt wurde. Wenn zum Beispiel der NAND-String 215 gewählt wurde, kann eine geeignete Spannung über die Wortleitung (z. B. eine der Wortleitungen 250A-250N) einer der Vielzahl von Speicherzellen 220 angelegt werden, die programmiert werden soll oder aus den Daten gelesen werden sollen. Die verbleibenden der Vielzahl von Speicherzellen 220 im NAND-String 215 können durch Anlegen einer zweiten geeigneten Spannung an ihre jeweiligen Wortleitungen eingeschaltet werden. Somit kann durch Steuern der an den ersten Auswahltransistor 230, den zweiten Auswahltransistor 235 und die Wortleitungen 250A-250N angelegten Spannung der NAND-String 215 betrieben werden.
  • Obwohl vorstehend nur die Elemente des NAND-Strings 215 beschrieben wurden, versteht es sich, dass jeder verbleibende der Vielzahl von NAND-Strings 210 auch ähnliche Elemente einschließt. So schließt der verbleibende der Vielzahl von NAND-Strings 210 die Vielzahl von Speicherzellen 220, den ersten Auswahltransistor 230, den zweiten Auswahltransistor 235, die Bitleitung 245 und die Wortleitungen 250A-250N ein.
  • Zusätzlich können bei einigen Ausführungsformen Speicherzellen mehrerer NAND-Strings mit derselben Wortleitung verbunden sein und eine Zeile Speicherzellen bilden. Zum Beispiel kann eine Zeile 255 eine der Vielzahl von Speicherzellen 220 aus mehreren der Vielzahl von NAND-Strings 210 enthalten. Alle der Vielzahl von Speicherzellen 220 in der Zeile 255 können mit derselben Wortleitung verbunden sein, wie mit der Wortleitung 250D. Durch Verbinden der Vielzahl von Speicherzellen 220 in der Zeile 255 mit der Wortleitung 250D können alle Speicherzellen, die die Zeile bilden, parallel programmiert oder gelesen werden. Die Zeile 255 kann so betrachtet werden, dass sie eine Seite des Speichermoduls 200 bildet. Die Vielzahl von Speicherzellen 220, die die Zeile 255 bilden, können parallel programmiert/gelesen werden, indem die Vielzahl von NAND-Strings 210, die Teil dieser Zeile sind, unter Verwendung des ersten Auswahltransistors 230 und des zweiten Auswahltransistors 235 von jedem dieser NAND-Strings jeweils ausgewählt werden und eine geeignete Spannung an die Wortleitung 255D angelegt wird und die verbleibenden Speicherzellen dieser NAND-Strings durch Anlegen von Spannungen an ihre jeweiligen Wortleitungen eingeschaltet werden.
  • Ferner können einige der Vielzahl von NAND-Strings 210 zu einem „Block“ von Speicherzellen gruppiert sein. Zum Beispiel kann die Vielzahl von NAND-Strings 210 zu einem Block 260 gruppiert sein. Obwohl alle der Vielzahl von NAND-Strings 210 als Teil des Blocks 260 gezeigt wurden, kann die Vielzahl von NAND-Strings bei einigen Ausführungsformen zu mehreren Blöcken gruppiert sein. So kann das Speichermodul 200 einen einzelnen Block einschließen, wie in 2A gezeigt, oder mehrere Blöcke. Gleichermaßen kann, obwohl die Zeile 255 so dargestellt ist, dass sie alle der Vielzahl von NAND-Strings 210umschließt, bei einigen Ausführungsformen die Zeile 255 in mehrere Zeilen unterteilt sein, wobei jede Zeile mit einer separaten Wortleitung verbunden ist.
  • Das Speichermodul 200 kann auch Lese-/Schreibschaltungen 265 einschließen, die den Lese-/Schreibvorgang in der Vielzahl von NAND-Strings 210 erleichtern. Zum Beispiel können die Lese-/Schreibschaltungen 265 eine Bank von Leseverstärkern 270 und eine Bank von Latches 275 einschließen, die mit der Bitleitung 245 von jedem der Vielzahl von NAND-Strings 210 verbunden sind. Die Leseverstärker 270 können zum Senden von zu programmierenden Daten innerhalb der gewählten Zeile (z. B. der Zeile 255) oder zum Empfangen der aus der gewählten Zeile gelesenen Daten verwendet werden. Die Latches 275 können zum temporären Speichern von E/A-Daten 280 verwendet werden, die in die gewählte Zeile (z. B. die Zeile 255) geschrieben werden sollen, oder zum Lesen von Daten, die an die E/A-Daten gesendet werden sollen.
  • Unter Bezugnahme nun auf 3 wird ein vereinfachtes exemplarisches Blockdiagramm eines Speichermoduls 300 gemäß einigen Ausführungsformen der vorliegenden Offenlegung gezeigt. Das Speichermodul 300 ähnelt dem Speichermodul 200 insofern als das Speichermodul 300 ähnliche Elemente wie das Speichermodul 200 einschließen kann. Zum Beispiel kann das Speichermodul 300, obwohl nicht dargestellt, eine Vielzahl von NAND-Strings einschließen, wobei jede der Vielzahl von NAND-Strings eine Vielzahl von Speicherzellen, einen ersten Auswahltransistor, der mit einer Source-Leitung verbunden ist, einen zweiten Auswahltransistor, der mit einer Bitleitung verbunden ist, und Wortleitungen, die mit dem Steueranschluss jeder der Vielzahl von Speicherzellen verbunden sind, aufweist. Das Speichermodul 300 kann auch Lese-/Schreibschaltungen einschließen, die den Lese-/Schreibschaltungen 265 ähnlich sind. Ferner kann die Vielzahl von NAND-Strings des Speichermoduls 300 in einen oder mehrere Blöcke gruppiert sein (z.B. ähnlich dem Block 260). Zum Beispiel kann das Speichermodul 300 eine Vielzahl von Blöcken 305A-305I einschließen. Es versteht sich, dass die Anzahl der Vielzahl von Blöcken 305A-3051 von einer Ausführungsform zur anderen variieren kann. Ferner kann die Vielzahl von Blöcken 305A-305I jeweils eine Vielzahl von Wortleitungen einschließen, von denen nur einige, wie nachfolgend erörtert, in 3 gezeigt sind.
  • Das Speichermodul 300 implementiert ein partielles XOR-Schutzschema, bei dem bestimmte Wortleitungen von jedem der Vielzahl von Blöcken 305A-305I XOR-geschützt sind. Zum Beispiel kann eine Gruppe von Wortleitungen 310A-310I in jedem der Vielzahl von Blöcken 305A-305I jeweils für XOR-Schutz identifiziert werden. Die Anzahl von Wortleitungen, die in jedem der Vielzahl von Blöcken 305A-305I XOR-geschützt sind, kann von einer Ausführungsform zur anderen variieren. Ferner kann bei einigen Ausführungsformen die Platzierung der geschützten Wortleitungen von einer Ausführungsform zur anderen variieren. Zum Beispiel können bei einigen Ausführungsformen die ersten paar Wortleitungen für XOR-Schutz gewählt sein, während bei anderen Ausführungsformen die letzten paar Wortleitungen für XOR-Schutz gewählt sein können. Bei noch anderen Ausführungsformen können Wortleitungen zwischen den ersten und den letzten paar Wortleitungen XOR-geschützt sein.
  • Außerdem müssen die Wortleitungen 310A-310I, die in jedem der Vielzahl von Blöcken 305A-305I XOR-geschützt sind, nicht aneinander angrenzen oder nebeneinander liegen. Zum Beispiel können bei einigen Ausführungsformen die ersten und die letzten Wortleitungen eines oder mehrerer der Vielzahl von Blöcken 305A-305I XOR-geschützt sein. Somit können die Anzahl und Platzierung der Wortleitungen 310A-310I, die in jedem der Vielzahl von Blöcken 305A-305I XOR-geschützt sind, von einer Ausführungsform zur anderen variieren. Bei einigen Ausführungsformen können die Wortleitungen jedes der Vielzahl von Blöcken 305A-305I, die nicht XOR-geschützt sind, durch andere Mechanismen wie einfacheres XOR, Speichern von Daten in einstufigen Zellen, Verwenden von Fehlerkorrekturcodes usw. geschützt sein. Bei anderen Ausführungsformen sind die Wortleitungen, die nicht XOR-geschützt sind, möglicherweise überhaupt nicht geschützt. Durch Schutz nur eine Untermenge von Wortleitungen (z. B. der Wortleitungen 310A-310I) jedes der Vielzahl von Blöcken 305A-305I lässt die Leistung des Speichermoduls 300 verbessern.
  • Unter Bezugnahme auf 4 wird ein exemplarisches Flussdiagramm gezeigt, das Operationen eines Prozesses 400 gemäß einigen Ausführungsformen der vorliegenden Offenbarung skizziert. Der Prozess 400 kann je nach der spezifischen Ausführungsform zusätzliche oder andere Operationen einschließen. Der Prozess 400 wird in Verbindung mit 3 erörtert. Bei einigen Ausführungsformen kann der Prozess 400 während der Entwicklung oder Produktion (z. B. während der Herstellung, vor dem Verpacken, nach dem Verpacken, doch vor dem Versand zum Verbraucher usw.) des Speichermoduls 300 implementiert sein. Bei anderen Ausführungsformen kann der Prozess 400 nach der Entwicklung und während des Betriebs des Speichermoduls 300 implementiert sein. Der Prozess 400 kann Teil einer Speicherzustandsprüfung des Speichermoduls 300 sein.
  • Speicherzustandsprüfung kann durch Senden von Anweisungen an die Speichersteuerung (z. B. die Speichersteuerung 130), die dem Speichermodul 300 zugeordnet ist, auf Basis empfangener Anweisungen von der Host-Vorrichtung (z. B. der Host-Vorrichtung 105) erfolgen. Bei anderen Ausführungsformen kann Speicherzustandsprüfung von der Testschaltung (z. B. der Testschaltung 145) durchgeführt werden, die mit dem Speichermodul 300 verbunden ist. Bei einigen Ausführungsformen kann der Speicherzustand durch Senden eines Testmusters an das Speichermodul 300 getestet werden. Das Testmuster kann eine Testoperation (z. B. Lesen, Schreiben, Löschen) einschließen, die vom Speichermodul 300 innerhalb eines bestimmten Zeitraums (z. B. einer Zeitüberschreitung) durchzuführen ist. Speicherzustandsprüfung kann dann die Ergebnisse der Testoperation analysieren. Wenn das Speichermodul 300 die Testoperation nicht innerhalb der Zeitüberschreitungszeit abschließt, kann die Speicherzustandsprüfung feststellen, dass der Teil des Speichermoduls, der die Testoperation nicht abgeschlossen hat, fehlerhaft geworden ist. Wenn das Speichermodul 300 den Testvorgang innerhalb der Zeitüberschreitungszeit, doch mit einer Fehlerrate abschließt, die einen Schwellenwert überschreitet, kann die Speicherzustandsprüfung den Teil des Speichermoduls mit der hohen Fehlerrate als „schwachen“ Bereich einstufen. Bei einigen Ausführungsformen kann die Speicherzustandsprüfung das Erkennen von Stromlecks, Anomalien der Zellspannungsverteilung, fehlgeschlagene Bitzahl, Kurzschlüsse von Wortleitung zu Wortleitung usw.einschließen. Bei anderen Ausführungsformen können andere oder zusätzliche Speicherzustandsprüfungen erfolgen.
  • So kann das Verfahren 400 zum Identifizieren der „schwachen“ Bereiche jedes der Vielzahl von Blöcken 305A-305I verwendet werden. Daher wird beim Start von Operation 405 eine Gruppe von Wortleitungen, die als „schwach“ angesehen werden, aus jedem der Vielzahl von Blöcken 305A-305I bei Operation 410 identifiziert. Eine „schwache“ Wortleitung wird als Basis der oben erörterten Speicherzustandsprüfung identifiziert. Bei der Speicherzustandsprüfung können „schwache“ Wortleitungen als solche identifiziert werden, die bestimmte vorgegebene Kriterien nicht erfüllen oder sich anders verhalten als andere Wortleitungen. Zum Beispiel können bei einigen Ausführungsformen der Wert eines Parameters (z. B. fehlgeschlagene Bitzahl, Bitfehlerrate usw.), der mit den Wortleitungen eines oder mehrerer Blöcke aus der Vielzahl von Blöcken 305A-305I verbunden ist, von jeder der Wortleitungen dieser Blöcke aus gemessen werden. Aus den gemessenen Werten lässt sich ein Durchschnitt errechnen. Dann kann der Wert des Parameters für jede Wortleitung eines bestimmten der Vielzahl von Blöcken 305A-305I mit dem berechneten Durchschnittsparameter verglichen werden. Wenn der Wert des Parameters von dem berechneten Durchschnittsparameter um mehr als einen vorgegebenen Schwellenwert abweicht, kann diese Wortleitung als „schwach“ bezeichnet werden. Bei einigen Ausführungsformen kann der berechnete Durchschnittsparameter für jeden Block der Vielzahl von Blöcken 305A-305I separat berechnet werden. Daher kann das Kriterium zum Identifizieren „schwacher“ Wortleitungen von einem Block zum anderen variieren. Bei einigen Ausführungsformen kann der berechnete Durchschnittsparameter für eine Untermenge oder alle der Vielzahl von Blöcken 305A-305I zusammen berechnet werden. In solchen Fällen kann dasselbe Kriterium auf mehrere Blöcke angewendet werden, um die „schwachen“ Wortleitungen zu identifizieren. Bei anderen Ausführungsformen können andere Mechanismen zum Identifizieren „schwacher“ Wortleitungen verwendet werden. Außerdem kann bei einigen Ausführungsformen ein einziger Parameter zum Identifizieren der „schwachen“ Wortleitungen verwendet werden, während bei anderen Ausführungsformen mehrere Parameter verwendet werden können. So kann auf Basis einer Speicherzustandsprüfung eine Gruppe „schwacher“ Wortlinien aus jedem der Vielzahl von Blöcken 305A-305I identifiziert werden.
  • Beim Identifizieren der Gruppe „schwacher“ Wortleitungen wird bei Operation 415 eine Untergruppe von Wortleitungen aus der Gruppe „schwacher“ Wortleitungen für XOR-Schutz identifiziert. Bei einigen Ausführungsformen können alle Wortleitungen in der Gruppe „schwacher“ Wortleitungen, die bei der Operation 410 identifiziert wurden, für XOR-Schutz bestimmt werden. Bei anderen Ausführungsformen kann eine Untermenge von Wortleitungen aus der Gruppe „schwacher“ Wortleitungen für XOR-Schutz gewählt werden. Bei einigen Ausführungsformen kann die Entscheidung, ob alle Wortleitungen in der Gruppe „schwacher“ Wortleitungen, die bei Operation 410 identifiziert wurden, geschützt sein sollen, auf Basis eines Schwellenwerts getroffen werden. Wenn zum Beispiel bei einigen Ausführungsformen die Anzahl von Wortleitungen in der Gruppe „schwacher“ Wortleitungen unter dem Schwellenwert liegt, können alle Wortleitungen in der Gruppe „schwacher“ Wortleitungen XOR-geschützt sein. Wenn andererseits die Anzahl von Wortleitungen in der Gruppe „schwacher“ Wortleitungen auf oder über dem Schwellenwert liegt, kann ein zusätzliches Kriterium verwendet werden, um eine Untermenge von Wortleitungen aus der Gruppe „schwacher“ Wortleitungen zu identifizieren, die durch XOR geschützt sein sollen.
  • Bei einigen Ausführungsformen können Wortleitungen auf Basis des Ortes / der Platzierung dieser Wortleitungen gewählt werden. Bei einigen Ausführungsformen können die ersten paar Wortleitungen für XOR-Schutz gewählt werden, wenn diese Wortleitungen bei der Operation 410 als „schwach“ eingestuft werden. Zum Beispiel haben Erfinder festgestellt, dass bei den ersten vier Wortleitungen (z.B. Wortleitungen 0, 1, 2, 3) eine Fehlfunktion wahrscheinlicher ist und sie daher für XOR-Schutz geeigneter sind. Bei anderen Ausführungsformen kann ein anderes Kriterium verwendet werden, um festzustellen, welche der „schwachen“ Wortleitungen für XOR-Schutz geeignet sind.
  • Bei einigen Ausführungsformen können bestimmte Wortleitungen (z. B. die Wortleitungen 0-3) für XOR-Schutz gewählt werden, ganz gleich, ob diese Wortleitungen bei der Operation 410 als „schwach“ eingestuft werden. Zum Beispiel können bei einigen Ausführungsformen die Wortleitungen, die bei Durchführung der Speicherzustandsprüfung möglicherweise nicht „schwach“ sind, doch später voraussichtlich „schwach“ werden (z. B. die Wortleitungen 0-3), für XOR-Schutz bestimmt werden, ganz gleich, ob sie als „schwach“ klassifiziert sind. So werden bei der Operation 415 die Wortleitungen 310A-310I, die XOR-geschützt werden sollen, identifiziert.
  • Bei Operation 420 sind die Wortleitungen 310A-310I XOR-geschützt. Bei einigen Ausführungsformen kann XOR-Schutz durch Programmieren von über die Wortleitungen 310A-310I gespeicherten Daten mit einer XOR-Signatur erreicht werden. Eine XOR-Signatur erhält man durch Durchführen einer XOR-Operation auf Bits der Daten und Speichern des Ergebnisses der XOR-Operation als die XOR-Signatur zusammen mit den Daten auf den Wortleitungen 310A-310I. Bei anderen Ausführungsformen kann die XOR-Signatur vorübergehend in einem Speicher der Steuerung (z. B. Direktzugriffsspeicher der Steuerung oder anderer Speicher) gespeichert werden, bis die Integrität der Daten nach dem Programmieren verifiziert ist. Nachdem die Datenintegrität verifiziert worden ist, kann die mit den Daten verbundene XOR-Signatur verworfen werden. Bei anderen Ausführungsformen können andere oder zusätzliche Mechanismen für XOR-Schutz der Wortleitungen 310A-310I verwendet werden. Beim XOR-Schutz der Wortleitungen 310A-310I endet der Prozess 400 mit Operation 425.
  • Bei einigen Ausführungsformen kann der Prozess 400 einmal durchgeführt werden. Bei anderen Ausführungsformen kann der Prozess 400 periodisch an einem oder mehreren der Vielzahl von Blöcken 305A-305I wiederholt werden. Wenn er periodisch durchgeführt wird, kann die Speicherzustandsprüfung in vorgegebenen Zeiträumen oder bei Erfüllung bestimmter Bedingungen erfolgen. Zum Beispiel kann bei einigen Ausführungsformen bei jedem Programmieren oder Auslesen einer Wortleitung aus einem Speicher eine Speicherzustandsprüfung auf dem Speichermodul 300 erfolgen. Bei anderen Ausführungsformen kann die Speicherzustandsprüfung nach Programmieren oder Auslesen einer bestimmten Anzahl von Wortleitungen aus dem Speichermodul 300 erfolgen. Bei anderen Ausführungsformen kann die Speicherzustandsprüfung bei Bedarf an einem oder mehreren der Blöcke 305A-305I durchgeführt werden. Indem nur bestimmte Wortleitungen jedes Blocks des Speichermoduls 300 geschützt werden, lässt sich die Gesamtleistung des Speichermoduls erhöhen. Auch kann sich die Latenz der Datenwiederherstellung verringern, und die Gesamtkomplexität und Kosten des Speichermoduls können sinken.
  • Unter Bezugnahme nun auf 5 wird ein vereinfachtes exemplarisches Blockdiagramm eines Speichermoduls 500 gemäß einigen Ausführungsformen der vorliegenden Offenlegung gezeigt. Das Speichermodul 500 ähnelt dem Speichermodul 200 insofern als das Speichermodul 500 ähnliche Elemente wie das Speichermodul 200 einschließen kann. Zum Beispiel kann, obwohl nicht dargestellt, das Speichermodul 500 eine Vielzahl von NAND-Strings einschließen, wobei jeder der Vielzahl von NAND-Strings eine Vielzahl von Speicherzellen, einen ersten Auswahltransistor, der mit einer Source-Leitung verbunden ist, einen zweiten Auswahltransistor, der mit einer Bitleitung verbunden ist, und Wortleitungen, die mit dem Steueranschluss jeder der Vielzahl von Speicherzellen verbunden sind, hat. Das Speichermodul 500 kann auch Lese-/Schreibschaltungen einschließen, die den Lese-/Schreibschaltungen 265 ähnlich sind. Ferner kann die Vielzahl von NAND-Strings des Speichermoduls 500 in einen oder mehrere Blöcke (z. B. ähnlich dem Block 260) gruppiert sein. Zum Beispiel kann das Speichermodul 500 eine Vielzahl von Blöcken 505A-505P einschließen. Es versteht sich, dass die Anzahl der Vielzahl von Blöcken 505A-505P von einer Ausführungsform zur anderen variieren kann. Ferner schließt, obwohl nicht dargestellt, jeder Block der Vielzahl von Blöcken 505A-505P eine Vielzahl von Wortleitungen ein.
  • Im Gegensatz zu 3 und 4, bei denen eine Untermenge von Wortleitungen aus jedem der Vielzahl von Blöcken 305A-305I für XOR-Schutz gewählt ist, sind in dem Speichermodul 500 nur bestimmte der Vielzahl von Blöcken 505A-505P für XOR-Schutz gewählt. Zum Beispiel und wie in 5 gezeigt, können anstelle des Identifizierens von „schwachen“ Wortleitungen aus jedem der Vielzahl von Blöcken 505A-505P ein Block 510 und ein Block 515 für XOR-Schutz gewählt sein. Obwohl zwei Blöcke (z. B. der Block 510, der Block 515) in 5 als XOR-geschützt dargestellt wurden, können bei anderen Ausführungsformen ein einzelner Block oder mehr als zwei Blöcke für XOR-Schutz gewählt sein. Alle Wortleitungen der gewählten Blöcke (z. B. der Block 510, der Block 515) können XOR-geschützt sein, wie in 7 unten erörtert.
  • Unter Bezugnahme auf 6 in Verbindung mit 5 kann jeder der Vielzahl von Blöcken 505A-505P zwischen einem ersten Pool 600 und einem zweiten Pool 605 sortiert sein. Der erste Pool 600 kann als qualitativ hochwertiger Pool angesehen sein, während der zweite Pool 605 als geschützter Pool angesehen sein kann. Somit kann bei einigen Ausführungsformen der zweite Pool 605 Blöcke aus der Vielzahl von Blöcken 505A-505P enthalten, die für den XOR-Schutz ausgewählt sind. Zum Beispiel können der Block 510 und der Block 515 der Vielzahl von Blöcken 505A-505P innerhalb des zweiten Pools 605 platziert sein. Alle verbleibenden Blöcke (z. B. die nicht gewählten Blöcke) können in den ersten Pool 600 platziert werden. Durch Platzieren jedes der Vielzahl von Blöcken 505A-505P in entweder den ersten Pool 600 oder den zweiten Pool 605 können die Blöcke, die XOR-geschützt werden sollen, leicht identifiziert werden. Die Blöcke im ersten Pool 600 benötigen möglicherweise keinen XOR-Schutz, zumindest zu dem Zeitpunkt, zu dem diese Blöcke in den ersten Pool 600 platziert und somit als „hochwertige“ Blöcke klassifiziert sind. Bei einigen Ausführungsformen kann ein schwächerer oder einfacherer Schutz als der XOR-Schutz oder eine andere Schutzmethode auf die Blöcke im ersten Pool 600 angewendet werden.
  • Zusätzlich oder alternativ kann bei einigen Ausführungsformen ein schwächerer oder einfacherer Schutz als der XOR-Schutz auf die Blöcke im zweiten Pool 605 angewendet werden. Insbesondere kann bei einigen Ausführungsformen, wenn die Anzahl von Blöcken im zweiten Pool 605 unter einem vorgegebenen Schwellenwert liegt, ein einfacherer oder schwächerer XOR-Schutz oder ein anderer Schutz auf diese Blöcke angewendet werden, wodurch der XOR-Schutz vollständig eliminiert wird. Wenn die Anzahl von Blöcken im zweiten Pool 605 den vorgegebenen Schwellenwert überschreitet, können einige oder alle dieser Blöcke im zweiten Pool durch XOR-Schutz geschützt sein.
  • Außerdem kann sich bei einigen Ausführungsformen der Inhalt des ersten Pools 600 und des zweiten Pools 605 ändern. Zum Beispiel können einer oder mehrere der Vielzahl von Blöcken 505A-505P vom ersten Pool 600 in den zweiten Pool 605 übertragen werden, wenn die Speicherzustandsprüfung auf dem Speichermodul 500 erfolgt und Blöcke, die ursprünglich im ersten Pool waren, für XOR-Schutz gewählt sind. Solche Blöcke können in den zweiten Pool 605 übertragen werden, und alle Wortleitungen dieser Blöcke können XOR-geschützt (oder durch andere Mittel geschützt) sein. Der erste Pool 600 und der zweite Pool 605 können Datenstrukturen (z. B. Tabellen, Protokolle usw.) sein, die die Vielzahl von Blöcken 505A-505P identifizieren, die in diesen Pools kategorisiert sind. Zum Beispiel können bei einigen Ausführungsformen eine erste Tabelle für den ersten Pool 600 und eine zweite Tabelle für den zweiten Pool 605 verwendet werden. In solchen Fällen können Identitäten der Vielzahl von Blöcken 505A-505P, die unter dem ersten Pool 600 kategorisiert sein sollen, in der ersten Tabelle aufgeführt sein und Identitäten der Vielzahl von Blöcken, die im zweiten Pool 605 kategorisiert sein sollen, in der zweiten Tabelle aufgeführt sein. Wenn ein beliebiger Block der Vielzahl von Blöcken 505A-505P vom ersten Pool 600 in den zweiten Pool 605 verschoben wird, kann die erste Tabelle aktualisiert werden, um den Block zu löschen, und kann die zweite Tabelle aktualisiert werden, um den Block hinzuzufügen. Somit können sich der erste Pool 600 und der zweite Pool 605 dynamisch ändern. Bei anderen Ausführungsformen können der erste Pool 600 und der zweite Pool 605 auf andere Weise konfiguriert sein.
  • Unter Bezugnahme auf 7 wird ein exemplarisches Flussdiagramm gezeigt, das einen Prozess 700 gemäß einigen Ausführungsformen der vorliegenden Offenbarung skizziert. Der Prozess 700 kann auf Basis der spezifischen Ausführungsform zusätzliche oder andere Operationen einschließen. Der Prozess 700 wird in Verbindung mit 5 und 6 erörtert. Bei einigen Ausführungsformen kann der Prozess 700 während der Entwicklung oder Produktion (z. B. während der Herstellung, vor dem Verpacken, nach dem Verpacken usw.) des Speichermoduls 500 implementiert sein, wenn die Speicherzustandsprüfung an dem Speichermodul durchgeführt wird. Bei anderen Ausführungsformen kann der Prozess 700 nach der Entwicklung und während des Betriebs des Speichermoduls 500 implementiert sein, wenn die Speicherzustandsprüfung durchgeführt wird. Somit kann die Speicherzustandsprüfung zum Implementieren des Prozesses 700 einmal oder mehrmals während der Lebensdauer des Speichermoduls 500 durchgeführt werden. Bei einigen Ausführungsformen kann die Speicherzustandsprüfung automatisch in bestimmten Zeiträumen oder bei Erfüllung bestimmter Bedingungen durchgeführt werden. Bei einigen Ausführungsformen kann die Speicherzustandsprüfung zum Beispiel nach Programmieren eines bestimmten Blocks durchgeführt werden. Bei anderen Ausführungsformen kann die Speicherzustandsprüfung alle paar Stunden, Tage, Jahre oder in beliebigen anderen Zeitabschnitten erfolgen, je nach Wunsch.
  • Bei einigen Ausführungsformen kann die Speicherzustandsprüfung auch durch Senden von Anweisungen an die Speichersteuerung (z. B. die Speichersteuerung 130), die dem Speichermodul 500 zugeordnet ist, auf Basis empfangener Anweisungen von der Host-Vorrichtung (z. B. der Host-Vorrichtung 105) und/oder empfangener Anweisungen von einer anderen, mit dem Speichermodul verbundenen Komponente (z. B. der Testschaltung 145) erfolgen. Ferner kann, wenn die Speicherzustandsprüfung am Speichermodul 500 durchgeführt wird, die Speicherzustandsprüfung bei einigen Ausführungsformen an allen der Vielzahl von Blöcken 505A-505P durchgeführt werden, während die Speicherzustandsprüfung bei anderen Ausführungsformen an einem einzelnen Block oder einer Untermenge dieser Blöcke durchgeführt werden kann. Wenn zum Beispiel bei Programmierung eines Blocks aus der Vielzahl von Blöcken 505A-505P eine Speicherzustandsprüfung durchgeführt wird, kann bei einigen Ausführungsformen das Programmieren eines einzelnen Blocks die Speicherzustandsprüfung auf allen Blöcken einleiten, ganz gleich, ob diese Blöcke die Speicherzustandsprüfung eingeleitet haben. Bei anderen Ausführungsformen kann das Programmieren eines einzelnen Blocks die Speicherzustandsprüfung nur für den Block und möglicherweise eine Untermenge anderer Blöcke einleiten, die auf Basis eines vorgegebenen Kriteriums für die Speicherzustandsprüfung gewählt sein können.
  • Daher beginnt der Prozess 700 mit Operation 705, wenn die Speicherzustandsprüfung auf dem Speichermodul 500 durchgeführt werden soll, entweder auf einem einzelnen Block, einer Untergruppe oder allen der Vielzahl von Blöcken 505A-505P. Bei Operation 710 werden aus den zu prüfenden Blöcken vermutet fehlerhaft gewordene Blöcke identifiziert. Zur Erläuterung wird nachfolgend davon ausgegangen, dass alle der Vielzahl von Blöcken 505A-505P auf ihren Speicherzustand hin getestet werden. Das Verfahren 700 kann jedoch in ähnlicher Weise für Speichertests an einem einzelnen oder einer Untermenge der Vielzahl von Blöcken 505A-505P verwendet werden. Bei einigen Ausführungsformen wird die Speicherzustandsprüfung an den Blöcken der Vielzahl von Blöcken 505A-505P durchgeführt, die sich im ersten Pool 600 befinden oder, anders ausgedrückt, die vor der Operation 710 noch als „hochwertige Blöcke“ gelten. Wenn der Prozess 700 zum ersten Mal durchgeführt wird, können alle der Vielzahl von Blöcken 505A-505P unter dem ersten Pool 600 klassifiziert werden. Daher kann die Operation 710 für alle der Vielzahl von Blöcken 505A-505P erfolgen. Da einige Blöcke aus der Vielzahl von Blöcken 505A-505P zum Schutz in den zweiten Pool 605 übertragen werden, kann die Operation 710 an weniger Blöcken durchgeführt werden. Da die Blöcke der Vielzahl von Blöcken 505A-505P vom ersten Pool 600 in den zweiten Pool 605 übertragen werden, verringert sich ferner die Anzahl von Blöcken im ersten Pool und erhöht sich die Anzahl von Blöcken im zweiten Pool. Bei einigen Ausführungsformen kann die Speicherzustandsprüfung auch an den Blöcken der Vielzahl von Blöcken 505A-505P erfolgen, die sich im zweiten Pool 605 befinden, um festzustellen, ob einer der Blöcke im zweiten Pool fehlerhaft geworden ist und daher keinen XOR-Schutz mehr benötigt (weil fehlerhaft gewordene Blöcke nicht mehr verwendet werden).
  • Somit werden bei der Operation 710 vermutet fehlerhaft gewordene Blöcke aus der Vielzahl von Blöcken 505A-505P aus dem ersten Pool 600 identifiziert. „Vermutet fehlerhafte gewordene Blöcke“ sind Blöcke, die entweder bei Durchführung der Operation 710 fehlerhaft geworden sind oder nicht notwendigerweise bei Durchführung der Operation 710 fehlerhaft geworden sind, doch innerhalb eines vorgegebenen Zeitraums nach Durchführen der Operation 710 voraussichtlich fehlerhaft werden. Die vermutet fehlerhaft gewordenen Blöcke können auf verschiedene Arten identifiziert werden. Bei einigen Ausführungsformen kann ein ähnlicher Mechanismus wie der zum Identifizieren der „schwachen“ Wortleitungen verwendet werden. Bei einigen Ausführungsformen kann zum Beispiel ein vorgegebener Parameter von allen oder einer Untermenge der Vielzahl von Blöcken 505A-505P gemessen und ein Mittelwert berechnet werden. Wenn der gemessene Parameter eines bestimmten Blocks um mehr als einen vorgegebenen Schwellenwert vom berechneten Mittelwert abweicht, kann dieser bestimmte Block als ein vermutet fehlerhaft gewordener Block betrachtet werden. Bei einigen Ausführungsformen kann die Anzahl von Wortleitungen, die fehlerhaft oder „schwach“ geworden sind, als Indikator für vermutet fehlerhaft gewordene Blöcke verwendet werden. Wenn zum Beispiel bei einigen Ausführungsformen die Anzahl fehlerhaft oder „schwach“ gewordener Wortleitungen in einem bestimmten Block einen vorgegebenen Schwellenwert überschreitet, kann dieser bestimmte Block als vermutet fehlerhaft gewordener Block betrachtet werden.
  • Bei einigen Ausführungsformen können Prüfungen zum Identifizieren der „hochwertigen“ Blöcke durchgeführt werden. Es kann einfacher sein, „hochwertige“ Blöcke zu identifizieren als Blöcke, die entweder fehlerhaft geworden sind (hier auch als tatsächlich fehlerhaft gewordene Blöcke bezeichnet) oder bei denen vermutet wird, dass sie fehlerhaft geworden sind (z. B. vermutet fehlerhaft gewordene Blöcke). Daher kann eine Speicherprüfung zum Identifizieren der „hochwertigen“ Blöcke, die in den ersten Pool 600 platziert werden können, durchgeführt werden. Alle verbleibenden Blöcke, die die vermutet fehlerhaft gewordenen Blöcke enthalten, können in den zweiten Pool 605 platziert werden. Andere Mechanismen können zum Identifizieren der vermutet fehlerhaft gewordenen Blöcke verwendet werden.
  • Bei einigen Ausführungsformen können die vermutet fehlerhaft gewordenen Blöcke, die zum Zeitpunkt der Durchführung der Operation 710 tatsächlich fehlerhaft geworden sind, als „fehlerhafte Blöcke“ markiert und während des Betriebs des Speichermoduls 500 nicht verwendet werden. Bei einigen Ausführungsformen können die „fehlerhaften Blöcke“ in den zweiten Pool 605 oder in einen dritten Pool, der nur „fehlerhafte Blöcke“ enthält, übertragen werden. Sobald die „fehlerhaften Blöcke“ aus dem ersten Pool 600 übertragen wurden, kann der erste Pool aktualisiert werden, um die „fehlerhaften Blöcke“ aus dem ersten Pool zu löschen. Die vermutet fehlerhaft gewordenen Blöcke, die keine „fehlerhaften Blöcke“ sind, werden bei Operation 715 vom ersten Pool 600 in den zweiten Pool 605 übertragen. Der erste Pool 600 und der zweite Pool 605 können aktualisiert werden, um die Übertragung der vermutet fehlerhaft gewordenen Blöcke vom ersten Pool in den zweiten Pool widerzuspiegeln. Bei Operation 720 sind die vermutet fehlerhaft gewordenen Blöcke, die bei der Operation 715 in den zweiten Pool 605 übertragen wurden, XOR-geschützt.
  • Bei einigen Ausführungsformen sind alle Wortleitungen der vermutet fehlerhaft gewordenen Blöcke XOR-geschützt, wie oben erörtert. Bei einigen Ausführungsformen können Mechanismen wie Abnutzungsausgleich auf die vermutet fehlerhaft gewordenen Blöcke angewendet werden, so dass diese Blöcke weniger benutzt und dadurch geringer belastet werden, so dass sie sich weniger wahrscheinlich in „fehlerhafte Blöcke“ verwandeln. Bei einigen Ausführungsformen kann, wenn die Anzahl der vermutet fehlerhaft gewordenen Blöcke im zweiten Pool 605 unter einem vorgegebenen Schwellenwert liegt, ein einfacherer XOR-Schutz oder anderer Schutzmechanismus auf diese Blöcke angewendet werden, wodurch die Notwendigkeit eines XOR-Schutzes vollständig vermieden wird. Jede andere Art von Schutz, die als wünschenswert zum Anwenden auf die vermutet fehlerhaft gewordenen Blöcke im zweiten Pool 605 angesehen werden kann, kann angewendet werden. Ferner wird bei einigen Ausführungsformen XOR-Schutz nicht auf die Blöcke angewendet, die im ersten Pool 600 verbleiben. Bei einigen Ausführungsformen kann ein leichteres Schutzverfahren auf die Blöcke angewendet werden, die im ersten Pool 600 verbleiben.
  • Bei Operation 725 wird die Vielzahl von Blöcken 505A-505P im ersten Pool 600 überwacht, wie oben erörtert. Bei einigen Ausführungsformen kann die Überwachung periodisch auf Basis bestimmter Kriterien erfolgen, während bei anderen Ausführungsformen die Überwachung kontinuierlich erfolgen kann, so dass, sobald eine Änderung in einem Block der Vielzahl von Blöcken 505A-505P erkannt wird, der Prozess 700 für den Block, der sich geändert hat, oder für alle Blöcke bei Änderung eines Blocks wiederholt werden kann. Wenn die Anzahl der vermutet fehlerhaft gewordenen Blöcke im zweiten Pool 605 einen Schwellenwert überschreitet, können bei einigen Ausführungsformen einige oder alle dieser Blöcke (einschließlich der Blöcke, die möglicherweise nicht XOR-geschützt oder durch andere Mechanismen im zweiten Pool geschützt wurden) XOR-geschützt sein. Durch Überwachen der Vielzahl von Blöcken 505A-505P im ersten Pool 600 auf vermutet fehlerhaft gewordene Blöcke und Schützen nur der vermutet fehlerhaft gewordenen Blöcke im zweiten Pool 605 muss nur ein Bruchteil der Blöcke XOR-geschützt sein, was die Leistung des Speichermoduls 500 erhöht.
  • Unter Bezugnahme nun auf 8 wird ein vereinfachtes exemplarisches Blockdiagramm eines Speichermoduls 800 gemäß einigen Ausführungsformen der vorliegenden Offenlegung gezeigt. Das Speichermodul 800 ähnelt dem Speichermodul 200 insofern als das Speichermodul 800 ähnliche Elemente wie das Speichermodul 200 einschließen kann. Zum Beispiel kann das Speichermodul 800, obwohl nicht dargestellt, eine Vielzahl von NAND-Strings einschließen, wobei jede der Vielzahl von NAND-Strings eine Vielzahl von Speicherzellen, einen ersten Auswahltransistor, der mit einer Source-Leitung verbunden ist, einen zweiten Auswahltransistor, der mit einer Bitleitung verbunden ist, und Wortleitungen, die mit dem Steueranschluss jeder der Vielzahl von Speicherzellen verbunden sind, aufweist. Das Speichermodul 800 kann auch Lese-/Schreibschaltungen einschließen, die den Lese-/Schreibschaltungen 265 ähnlich sind. Ferner kann die Vielzahl von NAND-Strings des Speichermoduls 800 in einen oder mehrere Blöcke gruppiert sein (z. B. ähnlich dem Block 260). Zum Beispiel kann das Speichermodul 800 eine Vielzahl von Blöcken 805A-805P einschließen. Es versteht sich, dass die Anzahl der Vielzahl von Blöcken 805A-805P von einer Ausführungsform zur anderen variieren kann. Ferner schließt, obwohl nicht dargestellt, jeder Block der Vielzahl von Blöcken 805A-805P eine Vielzahl von Wortleitungen ein.
  • Das Speichermodul 800 ist eine Kombination aus den Ausführungsformen des Speichermoduls 300 und des Speichermoduls 500. Insbesondere und ähnlich wie bei dem Speichermodul 500 können bei dem Speichermodul 800 einige Blöcke aus der Vielzahl von Blöcken 805A-805P für XOR-Schutz gewählt sein. Zum Beispiel können, wie in 8 gezeigt, Block 810 und 815 für XOR-Schutz gewählt sein. Obwohl nur zwei Blöcke (z. B. der Block 810 und der Block 815) für XOR-Schutz im Speichermodul 800 gewählt sind, können bei anderen Ausführungsformen ein einzelner Block oder mehr als zwei Blöcke für XOR-Schutz gewählt sein. Ferner versteht es sich, dass, obwohl der Block 810 und der Block 815 als an entgegengesetzten Enden des Speichermoduls 800 angeordnet dargestellt sind, die relativen Positionen der für XOR-Schutz gewählten Blöcke keine Rolle spielen. Jeder Block, der als vermutet fehlerhaft gewordener Block identifiziert wird, kann für XOR-Schutz gewählt werden. Somit sind der Block 805 und der Block 810 vermutet fehlerhaft gewordene Blöcke, die auf die gleiche Weise wie oben in Bezug auf 5 bis 7 erörtert identifiziert wurden.
  • Doch im Gegensatz zum Speichermodul 500, in dem alle Wortleitungen der gewählten Blöcke (z. B. der Block 510, der Block 515) XOR-geschützt (oder durch andere Mechanismen geschützt) sind, wird im Speichermodul 800 nur eine Untermenge von Wortleitungen der gewählten Blöcke (z.B. der Block 810, der Block 815) für XOR-Schutz gewählt, ähnlich wie im Speichermodul 300. Zum Beispiel können eine oder mehrere Wortleitungen 820 als „schwach“ für XOR-Schutz im Block 810 identifiziert werden. Analog können eine oder mehrere Wortleitungen 825 als „schwach“ für XOR-Schutz im Block 815 identifiziert werden. Somit bietet, anstatt dass alle Wortleitungen in einigen wenigen gewählten Blöcken XOR-Schutz erhalten (wie im Speichermodul 500) oder dass einige Wortleitungen in allen Blöcken XOR-Schutz erhalten (wie im Speichermodul 300), das Speichermodul 800 einen Kompromiss, bei dem einige wenige Wortleitungen (z. B. die Wortleitungen 825, die Wortleitungen 835) einiger gewählter Blöcke (z. B. der Block 810, der Block 815) XOR-Schutz erhalten.
  • Unter Bezugnahme nun auf 9 wird ein exemplarisches Flussdiagramm gezeigt, das die Operationen eines Prozesses 900 gemäß einigen Ausführungsformen der vorliegenden Offenbarung skizziert. Der Prozess 900 kann je nach der spezifischen Ausführungsform zusätzliche oder andere Operationen einschließen. Der Prozess 900 wird in Verbindung mit 8 erörtert. Bei einigen Ausführungsformen kann der Prozess 900 während der Entwicklung oder Produktion (z. B. während der Herstellung, vor dem Verpacken, nach dem Verpacken usw.) des Speichermoduls 800 implementiert sein, wenn die Speicherzustandsprüfung an dem Speichermodul durchgeführt wird. Bei anderen Ausführungsformen kann der Prozess 900 nach der Entwicklung und während des Betriebs des Speichermoduls 800 implementiert sein, wenn die Speicherzustandsprüfung durchgeführt wird. Somit kann die Speicherzustandsprüfung zum Implementieren des Prozesses 900 ein oder mehrere Male während der Lebensdauer des Speichermoduls 800 durchgeführt werden. Bei einigen Ausführungsformen kann die Speicherzustandsprüfung automatisch in vorgegebenen bestimmten Zeiträumen oder bei Erfüllung bestimmter Bedingungen durchgeführt werden. Bei einigen Ausführungsformen kann die Speicherzustandsprüfung zum Beispiel nach Programmieren eines bestimmten Blocks durchgeführt werden. Bei anderen Ausführungsformen kann die Speicherzustandsprüfung alle paar Stunden, Tage, Jahre oder in beliebigen anderen Zeitabschnitten erfolgen, je nach Wunsch.
  • Bei einigen Ausführungsformen kann die Speicherzustandsprüfung auch durch Senden von Anweisungen an die Speichersteuerung (z. B. die Speichersteuerung 130), die dem Speichermodul 800 zugeordnet ist, auf Basis empfangener Anweisungen von der Host-Vorrichtung (z. B. der Host-Vorrichtung 105) und/oder empfangener Anweisungen von einer anderen, mit dem Speichermodul verbundenen Komponente (z. B. der Testschaltung 145) erfolgen. Ferner kann, wenn die Speicherzustandsprüfung am Speichermodul 800 durchgeführt wird, die Speicherzustandsprüfung bei einigen Ausführungsformen an allen der Vielzahl von Blöcken 805A-805P durchgeführt werden, während die Speicherzustandsprüfung bei anderen Ausführungsformen an einem einzelnen Block oder einer Untermenge dieser Blöcke durchgeführt werden kann, wie oben erörtert.
  • Somit beginnt der Prozess 900 mit Operation 905, wenn eine Speicherzustandsprüfung durchgeführt werden soll. Bei Operation 910 werden die vermutet fehlerhaft gewordenen Blöcke im Speichermodul 800 ähnlich wie bei der Operation 710 identifiziert. Die identifizierten vermutet fehlerhaft gewordenen Blöcke (z. B. der Block 810, der Block 815) werden in einen zweiten Pool (z. B. ähnlich dem zweiten Pool 605) platziert, während die Blöcke, die nicht als vermutet fehlerhaft gewordene Blöcke kategorisiert sind, bei Operation 915 in einen ersten Pool (z. B. ähnlich dem ersten Pool 600) platziert werden. Bei Operation 920 werden die „schwachen“ Wortleitungen oder die zu schützenden Wortleitungen in den bei der Operation 910 gewählten Blöcken ähnlich wie bei den Operationen 410 und 415 identifiziert. Die identifizierten Wortleitungen werden bei Operation 925 XOR-geschützt. Die Operation 925 ist ähnlich wie Operation 420. Bei Operation 930 werden die Blöcke, die der erste Pool bleiben, ähnlich wie bei Operation 725 überwacht, und der Prozess 900 wird wiederholt, wenn das Überwachungskriterium erfüllt ist.
  • Somit wird durch Bereitstellen eines partiellen XOR-Schutzmechanismus, bei dem nur „schwache“ Bereiche eines Blocks und/oder nur bestimmte Blöcke eines Speichermoduls XOR-geschützt werden, durch die vorliegende Offenlegung ein XOR-Schutz auf effektive und kosteneffiziente Weise erreicht und gleichzeitig die Leistung des zugehörigen Speichermoduls erhöht.
  • Der hier beschriebene Gegenstand der Erfindung veranschaulicht manchmal unterschiedliche Komponenten, die in unterschiedlichen anderen Komponenten enthalten oder mit ihnen verbunden sind. Es versteht sich, dass solche dargestellten Architekturen nur beispielhaft sind, und dass tatsächlich viele andere Architekturen implementiert werden können, die dieselbe Funktionalität erzielen. In einem konzeptionellen Sinn ist jede Anordnung von Komponenten zum Erzielen derselben Funktionalität tatsächlich „assoziiert“, so dass die gewünschte Funktionalität erzielt wird. Somit können zwei beliebige Komponenten, die hier kombiniert sind, um eine bestimmte Funktionalität zu erzielen, als „miteinander assoziiert“ betrachtet werden, so dass die gewünschte Funktionalität erzielt wird, unabhängig von Architekturen oder medienübergreifenden Komponenten. Gleichermaßen können zwei beliebige so miteinander assoziierte Komponenten auch als „betriebsfähig miteinander verbunden“ oder „betriebsfähig miteinander gekoppelt“ betrachtet werden, um die gewünschte Funktionalität zu erzielen, und zwei beliebige Komponenten, die so miteinander assoziiert werden können, können auch als „betriebsfähig miteinander koppelbar“ betrachtet werden, um die gewünschte Funktionalität zu erzielen. Spezielle Beispiele für betriebsfähig miteinander koppelbar schließen physisch steckbare und/oder physikalisch interagierende Komponenten und/oder drahtlos interagierbare und/oder drahtlos interagierende Komponenten und/oder logisch interagierende und/oder logisch interagierbare Komponenten ein, sind aber nicht darauf beschränkt.
  • Bezüglich der Verwendung von im Wesentlichen jeglicher Ausdrücke im Plural und/oder Singular hierin kann ein Fachmann vom Plural in den Singular und/oder vom Singular in den Plural umwandeln, wie es für den Kontext und/oder die Anwendung geeignet ist. Aus Gründen der Klarheit können die verschiedenen Singular-/Plural-Vertauschungen hier ausdrücklich dargelegt werden.
  • Ein Fachmann wird verstehen, dass die hier verwendeten Ausdrücke im Allgemeinen und insbesondere in den beiliegenden Ansprüchen (z. B. Hauptteile der beigefügten Ansprüche) generell als „offene“ Ausdrücke beabsichtigt sind (d. h. der Begriff „einschließlich“ muss als „einschließlich, aber nicht darauf beschränkt“ ausgelegt werden, der Begriff „weist auf“ muss als „weist mindestens auf“ ausgelegt werden, der Begriff „schließt ein“ muss als „schließt ein, ist aber nicht darauf beschränkt“ usw. ausgelegt werden). Ein Fachmann wird ferner verstehen, dass, falls eine spezielle Anzahl in einer eingeleiteten Anspruchs-Rezitation beabsichtigt ist, eine solche Absicht in dem Anspruch explizit angegeben ist, und wenn eine solche Rezitation fehlt, keine solche Absicht vorhanden ist. Als Hilfe zum Verständnis können zum Beispiel in den folgenden beiliegenden Ansprüchen die einleitenden Formulierungen „mindestens ein/e“ und „ein/e oder mehrere“ verwendet werden, um Anspruchs-Rezitationen einzuleiten. Die Verwendung solcher Formulierungen darf jedoch nicht so ausgelegt werden, dass die Einleitung einer Anspruchs-Rezitation durch die unbestimmten Artikel „ein“ oder „eine“ bedeutet, dass jeder spezielle Anspruch, der eine solche eingeleitete Anspruchs-Rezitation enthält, auf Erfindungen eingeschränkt ist, die nur eine solche Rezitation enthalten, sogar wenn der selbe Anspruch die einleitenden Formulierungen „ein/e oder mehrere“ und „mindestens ein/e“ und unbestimmte Artikel, wie „ein“ oder „eine“ enthält (z. B. muss „ein“ und/oder „eine“ in der Regel so ausgelegt werden, dass es „mindestens ein/e“ oder „ein/e oder mehrere“ bedeutet); Dasselbe gilt auch für die Verwendung von bestimmten Artikeln, die dazu benutzt werden, Anspruchs-Rezitationen einzuleiten. Zusätzlich dazu wird, sogar wenn eine spezielle Anzahl einer eingeleiteten Anspruchs-Rezitation explizit angegeben wird, ein Fachmann erkennen, dass eine solche Rezitation in der Regel so interpretiert werden muss, dass mindestens die angegebene Anzahl gemeint ist (z. B. bedeutet die bloße Rezitation von „zwei Rezitationen“ ohne weitere Modifizierer in der Regel mindestens zwei Rezitationen oder zwei oder mehr Rezitationen). Ferner ist in den Fällen, in denen eine Konvention verwendet wird, die „mindestens ein/e/s von A, B und C, usw.“ entspricht, eine solche Konstruktion im Allgemeinen in dem Sinn beabsichtigt, in dem ein Fachmann die Konvention verstehen würde (z. B. wird „ein System, das mindestens eines von A, B und C aufweist“ Systeme einschließen, die A alleine, B alleine, C alleine, A und B zusammen, A und C zusammen, B und C zusammen und/oder A, B und C zusammen usw. aufweisen, ist aber nicht darauf beschränkt). In diesen Fällen, in denen eine Konvention verwendet wird, die „mindestens einem/einer von A, B oder C, usw.“ entspricht, ist eine solche Konstruktion im Allgemeinen in dem Sinn beabsichtigt, in dem ein Fachmann die Konvention verstehen würde (z. B. würde „ein System, das mindestens eines von A, B oder C aufweist“ Systeme einschließen, die A alleine, B alleine, C alleine, A und B zusammen, A und C zusammen, B und C zusammen und/oder A, B und C zusammen usw. aufweisen, ist aber nicht darauf beschränkt). Ein Fachmann wird ferner verstehen, dass praktisch jedes disjunktive Wort und/oder praktisch jede Formulierung, die zwei oder mehr alternative Begriffe darlegt, in der Beschreibung, den Ansprüchen oder Zeichnungen so verstanden werden sollte, dass die Möglichkeit besteht, dass es einen der Begriffe, einen von beiden Begriffen oder beide Begriffe einschließt. Zum Beispiel wird die Formulierung „A oder B“ so verstanden, dass die Möglichkeiten „A“ oder „B“ oder „A und B“ eingeschlossen sind. Ferner bedeutet die Verwendung der Wörter „ungefähr“, „etwa“, „rund“, „im Wesentlichen“ usw., sofern nicht anders angegeben, ein Plus oder Minus von zehn Prozent.
  • Die vorhergehende Beschreibung der veranschaulichenden Ausführungsformen wurde zu Zwecken der Veranschaulichung und Beschreibung vorgelegt. Sie soll nicht erschöpfend oder beschränkend in Bezug auf die genaue offenbarte Form sein, und Modifikationen und Variationen sind im Lichte der obigen Lehren möglich oder können aus der Praxis der offenbarten Ausführungsformen erlangt werden. Es ist beabsichtigt, dass der Schutzumfang der Erfindung durch die hieran angehängten Ansprüche definiert wird.

Claims (20)

  1. Verfahren, aufweisend: Identifizieren einer schwachen Wortleitung aus mindestens einem einer Vielzahl von Blöcken eines Speichermoduls, wobei jeder der Vielzahl von Blöcken eine Vielzahl von Wortleitungen aufweist; Bestimmen, dass die schwache Wortleitung eine erste Schutzstufe erhalten soll; und Anwenden der ersten Schutzstufe auf die schwache Wortleitung.
  2. Verfahren nach Anspruch 1, weiterhin aufweisend das Identifizieren einer ersten Wortleitung eines ersten Blocks als die schwache Wortleitung auf Basis eines Werts eines der ersten Wortleitung zugeordneten Parameters, der von einem Durchschnittsparameter um einen vorbestimmten Schwellenwert abweicht.
  3. Verfahren nach Anspruch 2, wobei der Durchschnittsparameter berechnet wird durch: Messen des Werts des Parameters aus jeder der Vielzahl von Wortleitungen; und Berechnen eines Durchschnitts des gemessenen Wertes aus jeder der Vielzahl von Wortleitungen.
  4. Verfahren nach Anspruch 1, weiterhin aufweisend das Anwenden einer zweiten Schutzstufe auf die Vielzahl von Wortleitungen, die die erste Schutzstufe nicht erhalten.
  5. Verfahren nach Anspruch 4, wobei die erste Schutzstufe ein XOR-Schutz oder ein einstufiger Zellkopierschutz ist und wobei die zweite Schutzstufe ein Fehlerkorrekturcode-Schutz oder der XOR-Schutz über eine Streifenhöhe ist, die größer als die Streifenhöhe des auf die erste Schutzstufe angewendeten XOR-Schutzes ist.
  6. Verfahren nach Anspruch 1, weiterhin aufweisend: Wählen mindestens eines vermutet fehlerhaft gewordenen Blocks aus der Vielzahl von Blöcken; Identifizieren der schwachen Wortleitung von jedem des mindestens einen vermutet fehlerhaft gewordenen Blocks; und Platzieren des mindestens einen vermutet fehlerhaft gewordenen Blocks in einen zweiten Pool und Platzieren der verbleibenden der Vielzahl von Blöcken in einen ersten Pool.
  7. Verfahren nach Anspruch 6, weiterhin aufweisend periodisches Überwachen der verbleibenden der Vielzahl von Blöcken in dem ersten Pool zum Identifizieren eines zusätzlichen vermutet fehlerhaft gewordenen Blocks.
  8. Verfahren nach Anspruch 7, weiterhin aufweisend Übertragen des zusätzlichen vermutet fehlerhaft gewordenen Blocks zum zweiten Pool.
  9. Verfahren nach Anspruch 6, wobei die erste Schutzstufe auf jeden des mindestens einen vermutet fehlerhaft gewordenen Blocks im zweiten Pool angewendet wird und wobei kein Schutz auf die verbleibenden der Vielzahl von Blöcken im ersten Pool angewendet wird.
  10. Verfahren nach Anspruch 1, wobei der mindestens eine der Vielzahl von Blöcken eine Untermenge von Blöcken ausgewählt aus der Vielzahl von Blöcken aufweist und wobei jede der Vielzahl von Wortleitungen jeder der Untermenge von Blöcken als die schwache Wortleitung bestimmt wird, auf die die erste Schutzstufe angewendet wird.
  11. Verfahren nach Anspruch 1, wobei eine Untermenge der Vielzahl von Wortleitungen aus jedem der Vielzahl von Blöcken als die schwache Wortleitung bestimmt wird, auf die die erste Schutzstufe angewendet wird.
  12. Nicht-transitorischer computerlesbarer Datenträger mit darauf gespeicherten computerlesbaren Anweisungen, die bei Ausführung durch einen mit einem Speichermodul assoziierten Prozessor einen Prozess ausführen, der aufweist: Kategorisieren jedes Blocks des Speichermoduls in einen ersten Pool oder einen zweiten Pool, wobei der zweite Pool vermutet fehlerhaft gewordene Blöcke des Speichermoduls aufweist und der erste Pool verbleibende Blöcke des Speichermoduls aufweist, die nicht die vermutet fehlerhaft gewordenen Blöcke sind, und wobei jeder der Blöcke des Speichermoduls eine Vielzahl von Wortleitungen aufweist; Anwenden einer ersten Schutzstufe auf jede der Vielzahl von Wortleitungen von jedem der vermutet fehlerhaft gewordenen Blöcke im zweiten Pool; Periodisches Überwachen der verbleibenden Blöcke des Speichermoduls im ersten Pool zum Identifizieren eines zusätzlichen vermutet fehlerhaft gewordenen Blocks; Übertragen des zusätzlichen vermuteten fehlerhaften Blocks in den zweiten Pool; und Anwenden der ersten Schutzstufe auf jede der Vielzahl von Wortleitungen des zusätzlichen vermutet fehlerhaft gewordenen Blocks.
  13. Nicht-transitorischer computerlesbarer Datenträger nach Anspruch 12, weiterhin aufweisend Identifizieren, dass ein erster Block des Speichermoduls einer der vermutet fehlerhaft gewordenen Blöcke oder des zusätzlichen vermutet fehlerhaft gewordenen Blocks ist, basierend auf einem dem ersten Block zugeordneten Parameter, der von einem vorgegebenen Schwellenwert um einen vorgegebenen Wert abweicht.
  14. Nicht-transitorischer computerlesbarer Datenträger nach Anspruch 12, weiterhin aufweisend Kombinieren eines Abnutzungsausgleichsmechanismus mit der ersten Schutzstufe.
  15. Nicht-transitorischer computerlesbarer Datenträger nach Anspruch 12, weiterhin aufweisend Anwenden eines weiteren Schutzes auf die verbleibenden Blöcke des Speichermoduls in dem ersten Pool.
  16. Speichervorrichtung, aufweisend: eine Vielzahl von Speichermodulen, wobei die Vielzahl von Speichermodulen jeweils eine Vielzahl von Blöcken aufweist und die Vielzahl von Blöcken jeweils eine Vielzahl von Wortleitungen umfasst; und eine Speichersteuerung, die jedem der Vielzahl von Speichermodulen zugeordnet ist, wobei die Speichersteuerung programmierte Anweisungen aufweist zum: Identifizieren einer Gruppe schwacher Wortleitungen aus jedem der Vielzahl von Blöcken; Identifizieren einer Untermenge von Wortleitungen aus der Gruppe schwacher Wortleitungen aus jedem der Vielzahl von Blöcken für XOR-Schutz; und Anwenden des XOR-Schutzes auf jede der Untermenge von Wortleitungen von jedem der Vielzahl von Blöcken.
  17. Speichervorrichtung nach Anspruch 16, wobei die Speichersteuerung weiterhin programmierte Anweisungen zum Anwenden eines zweiten Schutzes auf jede der Vielzahl von Wortleitungen aufweist, auf die der XOR-Schutz nicht angewendet wird.
  18. Speichervorrichtung nach Anspruch 16, weiterhin aufweisend Anwenden eines Abnutzungsausgleichsmechanismus auf die Untermenge von Wortleitungen von jedem der Vielzahl von Blöcken zusätzlich zum XOR-Schutz.
  19. Speichervorrichtung nach Anspruch 16, wobei die Untermenge von Wortleitungen, auf die der XOR-Schutz angewendet wird, erste vier Wortleitungen jedes der Vielzahl von Blöcken aufweist.
  20. Speichervorrichtung nach Anspruch 16, weiterhin aufweisend periodisches Überwachen der Vielzahl von Wortleitungen, auf die der XOR-Schutz nicht angewendet wird, zum Aktualisieren der Gruppe schwacher Wortleitungen und Aktualisieren der Untergruppe von Wortleitungen, auf die der XOR-Schutz angewendet wird.
DE102020106006.8A 2019-06-20 2020-03-05 Partieller xor-schutz Pending DE102020106006A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/447,861 US10929224B2 (en) 2019-06-20 2019-06-20 Partial XOR protection
US16/447,861 2019-06-20

Publications (1)

Publication Number Publication Date
DE102020106006A1 true DE102020106006A1 (de) 2020-12-24

Family

ID=73654259

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020106006.8A Pending DE102020106006A1 (de) 2019-06-20 2020-03-05 Partieller xor-schutz

Country Status (3)

Country Link
US (1) US10929224B2 (de)
JP (1) JP7073430B2 (de)
DE (1) DE102020106006A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220107599A (ko) * 2021-01-25 2022-08-02 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US20230070300A1 (en) * 2021-09-03 2023-03-09 Micron Technology, Inc. Embedded memory lifetime testing
US11797385B2 (en) * 2021-10-25 2023-10-24 Micron Technology, Inc. Managing information protection schemes in memory systems

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006216136A (ja) * 2005-02-02 2006-08-17 Toshiba Corp 半導体記憶装置
US8560899B2 (en) * 2010-07-30 2013-10-15 Infineon Technologies Ag Safe memory storage by internal operation verification
US8832507B2 (en) 2010-08-23 2014-09-09 Apple Inc. Systems and methods for generating dynamic super blocks
US8732557B2 (en) * 2011-05-31 2014-05-20 Micron Technology, Inc. Data protection across multiple memory blocks
JP5828746B2 (ja) * 2011-11-24 2015-12-09 ルネサスエレクトロニクス株式会社 半導体装置
US8953398B2 (en) 2012-06-19 2015-02-10 Sandisk Technologies Inc. Block level grading for reliability and yield improvement
US9218242B2 (en) * 2013-07-02 2015-12-22 Sandisk Technologies Inc. Write operations for defect management in nonvolatile memory
US9501400B2 (en) 2013-11-13 2016-11-22 Sandisk Technologies Llc Identification and operation of sub-prime blocks in nonvolatile memory
US9875085B2 (en) 2015-07-28 2018-01-23 Sandisk Technologies Llc Memory system and method of generating a seed value
US9760303B2 (en) 2015-09-29 2017-09-12 Sandisk Technologies Llc Partially-bad block operation in 3-D nonvolatile memory
KR102389259B1 (ko) * 2015-10-15 2022-04-22 에스케이하이닉스 주식회사 메모리 장치 및 메모리 장치의 동작 방법
US10133645B2 (en) * 2016-02-08 2018-11-20 Sandisk Technologies Llc Data recovery in three dimensional non-volatile memory array after word line short
US9997258B2 (en) 2016-05-10 2018-06-12 Sandisk Technologies Llc Using non-volatile memory bad blocks

Also Published As

Publication number Publication date
JP2021002323A (ja) 2021-01-07
JP7073430B2 (ja) 2022-05-23
US10929224B2 (en) 2021-02-23
US20200401477A1 (en) 2020-12-24

Similar Documents

Publication Publication Date Title
DE102013222321B4 (de) Elektronisches Gerät mit einer Vielzahl von Speicherzellen und mit physikalisch unklonbarer Funktion
DE102020106006A1 (de) Partieller xor-schutz
DE102008003944B4 (de) Speichersystem und Programmierverfahren für ein Speichersystem
DE10233642B4 (de) Fehlerkorrektur-Kodierung und -Dekodierung in einer Festkörper-Speicherungsvorrichtung
DE102008028327B4 (de) Speicherauffrischsystem und -Verfahren
DE102015116801A1 (de) Nichtflüchtige Speichersysteme und Verfahren zum Betreiben von nichtflüchtigen Speichersystemen
DE102006048856B4 (de) Verfahren zum Betreiben einer IC-Halbleiterspeichervorrichtung und IC-Halbleiterspeichervorrichtung
DE102008030858A1 (de) Speicher mit dynamischer Redundanzkonfigurierung
DE112014004761T5 (de) Beeinflussung des Wear-Leveling in Speichersystemen
DE112020006139T5 (de) Vor-lese-und lese-schwellenspannungsoptimierung
DE102004063571A1 (de) System und Verfahren zum Konfigurieren einer Festkörperspeicherungsvorrichtung mit Fehlerkorrekturcodierung
DE102013109235A1 (de) Flash-Speichersystem mit Detektor für anormale Wortleitung und Verfahren zum Erfassen einer anormalen Wortleitung
DE102007058418A1 (de) Fehlerkorrektur in Speicherbauteilen
DE112006001182T5 (de) Fehlerbasierte Versorgungsregulation
DE60103397T2 (de) Gesicherter eeprom-speicher mit fehlerkorrekturschaltung
DE112015006285T5 (de) Mehrchip-doppelschreiben
DE102015113414B4 (de) Fehlerkorrektur unter Verwendung von WOM-Codes
DE112014001305T5 (de) Auswahl einer redundanten Datenspeicherkonfiguration auf der Grundlage verfügbaren Speicherplatzes
DE3209679A1 (de) Halbleiter-speichereinrichtung
DE112020000182T5 (de) Blockqualitätsklassifizierung beim testen für nichtflüchtigen speicher und flags für mehrere fehlerhafte blöcke bezüglich produktdiversität
DE102020134945A1 (de) Dynamische fehlerüberwachung und -reparatur
DE102015121727A1 (de) Auffrischung nichtflüchtigen Speichers
EP1071994B1 (de) Speicheranordnung mit redundanten speicherzellen und verfahren zum zugriff auf redundante speicherzellen
DE102005060901A1 (de) Verfahren zur Erkennung einer Versorgungsunterbrechung in einem Datenspeicher und zur Wiederherstellung des Datenspeichers
DE102019132807A1 (de) Fehlerkorrektur in Datenspeichervorrichtungen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: DEHNSGERMANY PARTNERSCHAFT VON PATENTANWAELTEN, DE

Representative=s name: DEHNS GERMANY PARTNERSCHAFT MBB, DE