DE102011075814B4 - Speicherpuffer mit zugänglicher Information nach einem Schreibfehler - Google Patents

Speicherpuffer mit zugänglicher Information nach einem Schreibfehler Download PDF

Info

Publication number
DE102011075814B4
DE102011075814B4 DE102011075814.3A DE102011075814A DE102011075814B4 DE 102011075814 B4 DE102011075814 B4 DE 102011075814B4 DE 102011075814 A DE102011075814 A DE 102011075814A DE 102011075814 B4 DE102011075814 B4 DE 102011075814B4
Authority
DE
Germany
Prior art keywords
memory
buffer
write
information
controller
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.)
Active
Application number
DE102011075814.3A
Other languages
English (en)
Other versions
DE102011075814A1 (de
Inventor
Cimmino Pasquale
Falanga Francesco
Massimo Iaculo
Minopoli Dionisio
Marco Ferrara
Campardo Giovanni
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.)
Micron Technology Inc
Original Assignee
Micron Technology 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 Micron Technology Inc filed Critical Micron Technology Inc
Publication of DE102011075814A1 publication Critical patent/DE102011075814A1/de
Application granted granted Critical
Publication of DE102011075814B4 publication Critical patent/DE102011075814B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • G11C16/3413Circuits or methods to recover overprogrammed nonvolatile memory cells detected during program verification, usually by means of a "soft" erasing step
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

Verfahren, umfassend: Initiieren eines Schreibvorgangs, um eine bestimmte Information von einer Speichersteuerung (150, 250) in ein erstes Speicherfeld (180, 280) einer ersten Speicherpartition (165, 265) über einen ersten internen Speicherpuffer (170, 270) der ersten Speicherpartition (165, 265) zu schreiben; Halten der bestimmten Information in dem ersten internen Speicherpuffer (170, 270) während des Schreibvorgangs und nach einem Schreibfehlerereignis; nach dem Schreibfehlerereignis, Lesen der bestimmten Information vom ersten internen Speicherpuffer (170, 270) in die Speichersteuerung (150, 250), Bereitstellen der bestimmten Information an einen zweiten internen Speicherpuffer (185, 285) einer zweiten Speicherpartition (155, 255), der mit einem zweiten Speicherfeld (195, 295) der zweiten Speicherpartition (155, 255) assoziiert ist, und Schreiben der bestimmten Information in das zweite Speicherfeld (195, 295) über den zweiten internen Speicherpuffer (185, 285).

Description

  • HINTERGRUND
  • Bereich:
  • Der hierin offenbarte Gegenstand bezieht sich auf eine Speichervorrichtung und auf ein Verfahren zum Betreiben derselben.
  • Information:
  • Speichervorrichtungen werden in vielen Typen von elektronischen Vorrichtungen verwendet, wie Computern, Mobiltelefonen, PDAs, Datenschreibern und Navigationsequipment, um nur einige Beispiele zu nennen. Unter solchen elektronischen Vorrichtungen können verschiedene Typen von nicht volatilen Speichervorrichtungen verwendet werden wie NAND oder NOR Flash Speicher, SRAM, DRAM und Phasenübergangsspeicher, um nur einige Beispiel zu nennen. Im Allgemeinen kann ein Schreib- oder Programmierprozess verwendet werden, um Information in solchen Speichervorrichtungen zu speichern, während ein Leseprozess verwendet werden kann, um gespeicherte Informationen abzurufen.
  • Gelegentlich, während des Betriebs einer Speichervorrichtung, kann ein Prozess des Schreibens in und/oder Lesens von Information aus einem Speicherfeld fehlschlagen. Solch ein Fehler muss nicht notwendigerweise zu einem schwerwiegenden Betriebsfehler führen, wenn eine Speichervorrichtung Sicherheitsmaßnahmen beinhaltet, wie eine Fehlerkorrektur und/oder eine Fähigkeit, einen Lese- und/oder Schreibprozess zu wiederholen, zum Beispiel. Das Besitzen solcher Sicherheitsmaßnahmen kann jedoch in Zusatzkosten resultieren, wie eine Verwendung von einem Speichervorrichtungsbereich, der ansonsten für andere Zwecke verwendet werden könnte und/oder dem Hinzufügen von Schritten zu einem Prozess des Herstellens einer Speichervorrichtung, zum Beispiel.
  • US 6 788 609 B2 offenbart ein Flash-Speichersystem, in welchem ein Speicherpuffer 6 verwendet wird, um Daten („file data”) in einen Block #1 eines Datenspeichers 8 oder in einen Block #2 des Datenspeichers 8 zu schreiben, basierend auf der Fehlerinformation des Blocks, in welchen die Daten zu schreiben sind.
  • US 2009/0040836 A1 offenbart ein Flash-Speichersystem, in welchem Daten einer ersten Seite an ein Register A und Daten einer zweiten Seite an ein Register B bereitgestellt werden, wobei jedes der Register A und B seine jeweiligen Seitendaten an einen Seitenpuffer bereitstellt.
  • DE 10 2007 051 061 A1 offenbart eine Speichersteuerung, die einen Rücksicherungsspeicher enthält, der dazu eingerichtet ist, eine Rücksicherungskopie von vorher programmierten Daten aus mehrschichtigen Flash-Speicherzellen zu speichern, wenn eine weitere Programmierung der mehrschichtigen Flash-Speicherzellen scheitert. Die Rücksicherungskopie der vorher programmierten Daten wird verwendet, um Fehler in den vorher programmierten Daten zu erfassen und zu korrigieren, bevor eine erneute Programmierung der vorher programmierten Daten in unterschiedliche mehrschichtige Flash-Speicherzellen des nicht flüchtigen Speichersystems vorgenommen wird.
  • DE 10 2004 025 977 A1 offenbart einen Flashspeicherbaustein mit einer Mehrzahl von Hauptbitleitungen, einer Mehrzahl von redundanten Bitleitungen, einer Mehrzahl von ersten Seitenpuffern, welche jeweils als eine Mehrzahl von ersten Seitenpuffergruppen organisiert sind, die mit den Hauptbitleitungen verbunden sind, einer Mehrzahl von zweiten Seitenpuffern, welche jeweils als eine Mehrzahl von zweiten Seitenpuffergruppen organisiert sind, die mit den redundanten Bitleitungen verbunden sind.
  • KURZE BESCHREIBUNG DER FIGUREN
  • Nicht begrenzende und nicht erschöpfende Ausführungsformen werden mit Bezug auf die folgenden Figuren beschrieben, worin sich ähnliche Bezugszeichen auf ähnliche Teile über die verschiedenen Figuren hinweg beziehen, wenn nicht anders spezifiziert.
  • 1 ist ein schematisches Blockdiagramm einer Speichervorrichtung gemäß einer Ausführungsform.
  • 2 ist ein schematisches Blockdiagramm einer Speichervorrichtung gemäß einer anderen Ausführungsform.
  • 3 ist ein Flussdiagramm eines Prozesses zum Beschreiben einer Speichervorrichtung, gemäß einer Ausführungsform.
  • 4 ist ein Flussdiagramm eines Prozesses zum Beschreiben einer Speichervorrichtung, gemäß einer anderen Ausführungsform.
  • 5 ist ein schematisches Blockdiagramm eines Computersystems und einer Speichervorrichtung gemäß einer Ausführungsform.
  • DETAILLIERTE BESCHREIBUNG
  • Die Erfindung wird durch ein Verfahren nach Anspruch 1, eine Speichervorrichtung nach Anspruch 3 und ein System nach Anspruch 7 definiert. Vorteilhafte Ausführungsformen sind Gegenstand der abhängigen Ansprüche.
  • Ein Bezug innerhalb dieser Beschreibung auf ”eine Ausführungsform” bedeutet, dass ein bestimmtes Merkmal, eine Struktur oder Eigenschaft, die in Verbindung mit der Ausführungsform beschrieben ist, in mindestens einer Ausführungsform des beanspruchten Gegenstandes enthalten ist. Damit bezieht sich das Auftreten des Ausdrucks ”in einer Ausführungsform” oder ”einer Ausführungsform” an verschiedenen Stellen dieser Beschreibung nicht notwendigerweise auf dieselbe Ausführungsform. Weiterhin können die bestimmten Merkmale, Strukturen oder Eigenschaften in einer oder mehreren Ausführungsformen kombiniert werden.
  • In einer Ausführungsform kann eine Speichervorrichtung eine Speichersteuerung umfassen zum Initiieren eines Schreibvorgangs, um bestimmte Information in ein Speicherfeld zu schreiben. Solch eine Speichervorrichtung kann auch einen Speicherpuffer umfassen, um die bestimmte Information von der Speichersteuerung zu empfangen, um die bestimmte Information während des Schreibvorgangs zu speichern und die bestimmte Information nachfolgend auf ein Schreibfehlerereignis zu speichern. Solch ein Schreibfehlerereignis kann aus irgendeiner von einer Anzahl an Situationen resultieren, wie Defekte von einer oder mehreren Speicherzellen, Speicherblöcken oder anderen Abschnitten eines Speicherfeldes, zum Beispiel. Solche Defekte können von einem Herstellungsprozess herrühren oder können nach der Herstellung einer Speichervorrichtung resultieren. Zum Beispiel können eine oder mehrere defekte Speicherzellen in einem Speicherblock darin resultieren, dass der gesamte Speicherblock defekt ist. Solch ein fehlerhafter Speicherblock kann zu einem Fehler führen, von dem fehlerhaften Speicherblock zu lesen oder darein zu schreiben. Demgemäß kann ein Speicherpuffer, der bestimmte Information nach solch einem Schreibfehler beibehält, solche bestimmte Information für einen nachfolgenden erneuten Schreibprozess verfügbar haben. Natürlich sind solche Gründe für Schreibfehlerereignisse nur Beispiele und der beanspruchte Gegenstand ist nicht darauf begrenzt.
  • Mit anderen Worten, solch ein Speicherpuffer kann gespeicherte Information beibehalten und nach dem Fehlschlagen solche Information erfolgreich von dem Speicherpuffer in ein Speicherfeld schreiben. In einer bestimmten Implementierung zum Beispiel kann solch ein Speicherpuffer einen NAND Seitenpuffer umfassen, obwohl andere bestimmte Speichertypen in anderen Implementierungen verwendet werden können. Als ein Ergebnis des Beibehaltens von Information oder Daten während eines Schreibfehlerereignisses kann zum Beispiel eine Datenseite weiterhin für einen NAND Benutzer (zum Beispiel eine Speicherkartensteuerung) verfügbar sein nach einem Fehler, solch eine Datenseite in einen Block eines NAND Speicherfeldes zu schreiben. Demgemäß kann solch eine Datenseite, die weiterhin in einem NAND Seitenpuffer vorhanden ist, zum Lesen, Modifizieren und/oder erneuten Schreiben in einen anderen Block des Speicherfeldes zugänglich sein.
  • In einer Ausführungsform kann Information, die geschrieben wird, in einem NAND Seitenpuffer vorhanden sein, während eines mit Schreiben beschäftigten Abschnitts eines Schreibvorgangs. Solche Information kann zusätzlich für weiteres Lesen und/oder Modifizieren oder erneutem Schreiben verfügbar sein mit Hilfe eines ”Lese-von-Puffer” Befehls und/oder eines ”Schreibe-von-Puffer” Befehls, wenn ein Schreibfehlerereignis ein Seitenschreiben beeinflusst, zum Beispiel wegen eines fehlerhaften Speicherblocks. Eine Ausführungsform von solch einer Speichervorrichtung wie oben beschrieben kann zum Beispiel eine Anzahl von Vorteilen bereitstellen, darunter eine Speicherarchitektur, die es vermeidet, Speicherchipbereich für einen zusätzlichen Steuerungs-RAM-Puffer zu verwenden, um Information zu halten, für den Fall, dass das erfolgreiche Schreiben von solcher Information in ein Speicherfeld fehlschlägt. In einer Implementierung kann zum Beispiel ein NAND Seitenspeicher verwendet werden als zusätzlicher volatiler Speicher in einem bestimmten Vorgang, der keinen nicht volatilen Datenspeicher verwenden muss. Natürlich sind solche Vorteile von Ausführungsformen, die hierin beschrieben sind, nur Beispiele, und der beanspruchte Gegenstand ist nicht darauf beschränkt.
  • Ausführungsformen wie solche, die oben beschrieben sind, können die Implementierung einer relativ robusten Verwaltung fehlerhafter Blöcke ermöglichen, die interne fehlerhafte Speicherblöcke vor einem externen Host verbirgt. Solch eine Verwaltung fehlerhafter Blöcke kann mit Hilfe von Reservespeicherblöcken oder anderen Speicherabschnitten zum Ersetzen von fehlerhaften Blöcken arbeiten. In einer Implementierung kann ein Prozess des Verbergens von fehlerhaften Speicherblöcken bedeuten, dass keine Fehlerinformation an einen Host zurückgegeben würde, als zum Beispiel eine ”Vorgang abgeschlossen” Mitteilung, nachdem aufeinander bezogene Vorgänge abgeschlossen sind. Zum Beispiel kann eine Speichervorrichtung einen Schreib- und/oder Löschbefehl von einem Host empfangen. Wenn solch ein Schreib- und/oder Löschvorgang zu einer internen fehlerhaften Blockerzeugung führt, dann kann eine Speichersteuerung der Speichervorrichtung intern erneute Zugordnungsänderungsprozesse/erneute Kopierprozesse verwalten, um den Schreib- und/oder Löschvorgang auszuführen. Diese Verwaltung kann dem Host transparent sein, welcher nur einen Hinweis empfangen mag, dass ein Schreib- und/oder Löschvorgang abgeschlossen ist. In einer Implementierung kann solch eine Verwaltung das Halten einer unerledigten Schreibseite in einem extra Steuerungsspeicher mit wahlfreiem Zugriff (RAM) beinhalten, um ein neues Seitenschreiben auf einen anderen ”frischen” Block zu wiederholen, wenn ein Fehler eines ersten Blocks auftritt. Jedoch kann solch ein Zusatz RAM wertvollen Bereich auf einem Speicherchip belegen, der ansonsten für andere Zwecke verwendet werden könnte. Zum Beispiel kann ein zusätzlicher Steuerungs-RAM ungefähr einen Quadratmillimeter bei 0,11 Mikrometer Technologie verwenden. In einer Implementierung kann solche eine Verwaltung einen Fehlerkorrekturkode (error-correcting code ECC) Maschine umfassen und einen Prozess des Auslesens (zum erneuten Kopieren) einer gerade fehlgeschlagenen Seite direkt von einem NAND Block, anstelle des Haltens von ursprünglicher Information in einem zusätzlichen RAM Puffer. Der Erfolg einer solchen Implementierung kann von der Leichtigkeit abhängen, mit der ein Schaden, der während einer Schreibphase aufgetreten ist, mit Hilfe von ECC korrigiert werden kann. Jedoch kann es wahrscheinlicher sein, dass ein solcher Schaden, der nach einem Seitenschreibfehler auftritt, nicht durch ECC korrigierbar ist aufgrund der Leistungsbegrenzungen des ECC. Natürlich ist solche eine Implementierung eines ECC nur ein Beispiel und der beanspruchte Gegenstand nicht darauf beschränkt.
  • 1 ist ein schematisches Blockdiagramm einer Speichervorrichtung 110 gemäß einer Ausführungsform. Solch eine Speichervorrichtung 110 kann Information und/oder Anweisungen 115 von einem externen Host (nicht gezeigt) empfangen. Nach einem Schreibfehlerereignis kann die Speichervorrichtung 110 in der Lage sein, Versuche zu wiederholen, Information wieder in nicht volatilen Speicher zu schreiben, wie im Detail unten beschrieben. Jedoch kann solch eine Fähigkeit den Nachteil des Aufweisens von zusätzlichem Steuerungs-RAM Puffer umfassen zum Beibehalten von Information für solche erneuten Schreibversuche wie ebenfalls unten beschrieben. Pfeile in den 1 bis 3 haben nur ein Ende, um der Beschreibung von bestimmten Ausführungsformen und Implementierungen zu entsprechen, die folgen. Jedoch kann irgendeiner oder alle solcher Pfeile mit zwei Enden versehen sein, um einen Fluss in einer oder beiden Richtungen anzuzeigen, und der beanspruchte Gegenstand ist diesbezüglich nicht beschränkt. Zum Beispiel kann der Pfeil 115 Information repräsentieren, die an die Speichervorrichtung 110 bereitgestellt wird und/oder Information, die von der Speichervorrichtung 110 an eine externe Einheit bereitgestellt wird.
  • In einer bestimmten Implementierung kann die Speichervorrichtung 110 eine NAND Flash-Speicherkarte umfassen, die von einer Anzahl von Typen an Hosts verwendet werden kann, um Information zu speichern. Zum Beispiel kann die Speichervorrichtung 110 eine Speicherkarte umfassen, die für eine digitale Kamera (der Host), ein ”Miniatur-Laufwerk” (thumbdrive) usw. verwendet werden kann. In einer Ausführungsform kann die Speichervorrichtung 110 eine Steuerung 150 und einen Speicherabschnitt 160 umfassen. Weiterhin kann die Steuerung 150 eine Steuerungs-RAM Pufferschnittstelle 120 und einen Prozessor 130 umfassen, der eine ECC Maschine 135 umfassen kann. Der Speicherabschnitt 160 kann eine oder mehrere Speicherpartitionen 155 und 165, zum Beispiel, umfassen. Solche Speicherpartitionen können auf demselben Chip oder auf einem separaten Chip sein, und der beanspruchte Gegenstand ist nicht darauf beschränkt. Individuelle Speicherpartitionen 155 können einen internen RAM Puffer 185 und ein Speicherfeld 195 umfassen. Die individuelle Speicherpartition 165 kann den internen RAM Puffer 170 und das Speicherfeld 180 umfassen. Obwohl nicht gezeigt, kann der Speicherabschnitt 160 zusätzliche Speicherpartitionen umfassen. In einer Implementierung kann solch ein interner RAM Puffer einen NAND Seitenpuffer umfassen. Zum Beispiel könne die RAM Puffer 185 und 170 einen volatilen Speicher umfassen, um eine Seite von Information, die in das Speicherfeld 196 beziehungsweise das Speicherfeld 180 geschrieben werden soll, zu hosten. Das Speicherfeld 195 und das Speicherfeld 180 kann nicht volatilen Speicher umfassen.
  • Mit Bezug auf die Speichervorrichtung 110 kann Information, in Antwort auf ein Schreibfehlerereignis (zum Beispiel das Auftreten eines fehlerhaften Blocks) während einer Schreiboperation, die vorher in einem fehlerhaften Speicherblock geschrieben wurde, zu einem neuen Speicherblock kopiert werden. Information kann, in Antwort auf das Schreibfehlerereignis, auch zu dem neuen Speicherblock kopiert werden. In einer Implementierung kann die Speichervorrichtung 110 einem Host ein ”Schreibvorgang abgeschlossen” Signal bereitstellen, wodurch das Schreibfehlerereignis vor dem Host verborgen wird. Solch ein Schreibvorgang wird nun im Detail beschrieben. Ein Host (nicht gezeigt) kann Information 115 an die Speichervorrichtung 110 zum Schreiben in einen nicht volatilen Abschnitt eines Speicherfeldes 180 zum Beispiel bereitstellen. Solche Information 115 kann temporär in einer Steuerungs-RAM Pufferschnittstelle 120 gespeichert werden und danach zum Prozessor 130 über die Leitung 125 transferiert werden. Der Prozessor 130 kann als nächstes die Information 115 in den RAM Puffer 170 über die Leitung 140 transferieren. In der Zwischenzeit braucht die Information 115 nicht in der Steuerungs-RAM Pufferschnittstelle 120 gehalten zu werden. Der RAM Puffer 170 kann die Information 150 an das Speicherfeld 180 transferieren, über die Leitung 178. Wenn ein Schreibfehlerereignis während eines solchen Transfers von Information an das Speicherfeld 180 auftritt, dann kann ein Prozess des erneuten Versuchens des Schreibens wie folgt vorgehen. Die Information 115, die nicht voll in das Speicherfeld 180 geschrieben wurde, kann zumindest teilweise von dem Speicherfeld abgerufen werden und in den RAM Puffer 170 abgelegt werden mithilfe einer Leseoperation über die Leitung 175, zum Beispiel. Die Information 115 kann von dem RAM Puffer über die Leitung 145 gelesen werden, um durch die ECC Maschine 135 verarbeitet zu werden, um einen oder mehrere Fehler zu korrigieren, die aus dem Schreibfehlerereignis resultieren. Wenn die ECC Maschine 135 solche Fehler erfolgreich korrigiert, kann die Information 115 zu einem anderen Speicherfeld 195 über die Leitung 135, den RAM Puffer 185 und die Leitung 190 kopiert werden, zum Beispiel. Demgemäß kann solch ein Prozess des erneuten Versuchens des Schreibens auf den Erfolg der ECC Maschine 135 angewiesen sein. Selbstverständlich sind solche Details eines Schreibprozesses lediglich Beispiele und der beanspruchte Gegenstand ist nicht darauf beschränkt.
  • 2 ist ein schematisches Blockdiagramm einer Speichervorrichtung 210 gemäß einer Ausführungsform. Ähnlich der Speichervorrichtung 110, die in 1 gezeigt ist, kann die Speichervorrichtung 210 zum Beispiel Information und/oder Anweisungen 215 von einem externen Host (nicht gezeigt) empfangen. In einer bestimmten Implementierung kann die Speichervorrichtung 210 eine NAND Flashspeicherkarte umfassen, die durch eine Anzahl von Typen von Hosts verwendbar sein kann, um Information zu speichern. Zum Beispiel kann die Speichervorrichtung 210 eine Speicherkarte umfassen, die für eine digitale Kamera (den Host), ein ”Miniatur-Laufwerk”, usw. verwendet wird. Wie für die Speichervorrichtung 110, kann die Speichervorrichtung 210 in der Lage sein, Versuche, Information zu nicht volatilem Speicher erneut zu schreiben, zu wiederholen nach einem Schreibfehlerereignis. Im Gegensatz zu der Speichervorrichtung 110 kann solch eine Fähigkeit der Speichersteuerung 210 durch einen RAM Puffer bereitgestellt werden, der zwischen einer Speichersteuerung und einem Speicherfeld angeordnet ist, wohin solche Information geschrieben werden soll, wie auch unten beschrieben. Zum Beispiel beinhaltet die Speichervorrichtung 110 einen Steuerungs-RAM Puffer, um Information für solche erneuten Schreibversuche zu halten, wohingegen die Speichervorrichtung 210 nicht auf solch einen Steuerungs-RAM Puffer zum erneuten Schreiben angewiesen ist.
  • In einer Implementierung kann die Speichervorrichtung 210, ähnlich der Speichervorrichtung 110 eine Steuerung 250 und einen Speicherabschnitt 260 umfassen. Weiterhin kann die Steuerung 250 eine Steuerungs-RAM Pufferschnittstelle 220 und einen Prozessor 230 umfassen, der eine ECC Maschine 235 umfasst. Der Speicherabschnitt 260 kann eine oder mehrere Speicherpartitionen 255 und 265 zum Beispiel umfassen. Solche Speicherpartitionen können auf demselben Chip oder auf verschiedenen Chips sein, und der beanspruchte Gegenstand ist nicht in dieser Weise beschränkt. Die individuelle Speicherpartition 255 kann den internen RAM Puffer 285 und das Speicherfeld 295 umfassen. Die individuelle Speicherpartition 265 kann einen internen RAM Puffer 270 und das Speicherfeld 280 umfassen. Obwohl nicht gezeigt, kann der Speicherabschnitt 260 zusätzliche Speicherpartitionen umfassen. In einer Implementierung kann solch ein interner RAM Puffer einen NAND Seitenpuffer umfassen. Zum Beispiel können die RAM Puffer 285 und 270 einen volatilen Speicher umfassen, um eine Seite von Information beherbergen, die in das Speicherfeld 295 beziehungsweise das Speicherfeld 280 geschrieben werden soll. Das Speicherfeld 295 und das Speicherfeld 280 kann nicht volatilen Speicher umfassen.
  • Bezogen auf die Speichervorrichtung 210 kann Information in Antwort auf ein Schreibfehlerereignis (zum Beispiel das Auftreten eines fehlerhaften Blocks) während eines Schreibvorgangs, die vorher in einen fehlerhaften Speicherblock geschrieben wurde, zu einem neuen Speicherblock kopiert werden. Aktuelle Information kann, in Antwort auf das Schreibfehlerereignis, auch zu dem neuen Speicherblock kopiert werden. In einer Implementierung kann die Speichervorrichtung 210 einem Host ein ”Schreibvorgang abgeschlossen” Signal ausgeben, wodurch das Schreibfehlerereignis dem Host verborgen bleibt. Solch ein Schreibvorgang wird nun im Detail beschrieben. Ein Host (nicht gezeigt) kann die Information 215 der Speichervorrichtung 210 bereitstellen zum Schreiben in ein Speicherfeld 280, zum Beispiel. Solche Information 215 kann temporär in der Steuerungs-RAM Pufferschnittstelle 220 gespeichert werden und nachfolgend zu dem Prozessor 230 über die Leitung 225 transferiert werden. Der Prozessor 230 kann als nächstes die Information 215 in den RAM Puffer 270 über die Leitung 240 transferieren. In einer Implementierung kann, ähnlich der Speichervorrichtung 110, die Steuerungs-RAM Pufferschnittstelle 220 von der Information 215 frei gemacht werden nachfolgend auf den Transfer der Information 215 zum RAM Puffer 270. Der RAM Puffer 270 kann, über die Leitung 278, die Information 215 zu dem Speicherfeld 280 transferieren. Wenn ein Schreibfehlerereignis während eines solchen Transfers von Information zu dem Speicherfeld 280 auftritt, dann kann ein Prozess des Wiederversuchens des Schreibens wie folgt vorgehen. Die Information 215, die nicht in das Speicherfeld 280 geschrieben wurde, kann weiterhin im RAM Puffer 270 gehalten werden. Demgemäß kann solche gehaltene Information für andere Schreibvorgänge zu anderen Abschnitten des Speichers in dem Speicherfeld 280 über die Leitung 275 verfügbar sein, zum Beispiel. Solch ein zusätzlicher Schreibvorgang, mit Hilfe von Information, die in dem RAM Puffer gehalten wird, kann in Antwort auf einen ”Schreibe-von-Puffer” Befehl geschehen, der durch den Prozessor 230 initiiert wird.
  • In einer anderen Ausführungsform kann die Information, die in dem RAM Puffer 270 gehalten wird, nach einem Schreibfehlerereignis für einen anderen Schreibvorgang zu einem anderen Speicherfeld 295 verfügbar sein. Solch ein zusätzlicher Schreibvorgang, mit Hilfe von Information, die in dem RAM Puffer 270 gehalten wird, kann in Antwort auf einen Lese-von-Puffer Befehl geschehen, der durch den Prozessor 230 initiiert wird. Im Detail kann die Information 215, die nicht in das Speicherfeld 280 geschrieben werden konnte, von dem RAM Puffer 270 abgerufen werden nach solch einem Fehlschlagen eines Schreibvorgangs mit Hilfe des ”Lese-von-Puffer” Befehlsvorganges. In einer Implementierung kann die Information 215 von dem RAM Puffer 270 über die Leitung 245 gelesen werden. Die Information 215 kann zu einem anderen Speicherfeld 295 über die Leitung 253, den RAM Puffer 285 und die Leitung 290 geschrieben werden, zum Beispiel. In einer anderen Implementierung kann die Information 215 von dem RAM Puffer 270 über die Leitung 245 zum Prozessor 230 gelesen werden, der einen anderen Speicherbereich bestimmen kann, in den die Information 215 während eines erneuten Schreibprozesses geschrieben werden soll. Zum Beispiel kann solch ein Speicherort das Speicherfeld 295 umfassen, welches auf einem selben oder unterschiedlichen Chip angeordnet sein kann, wie jener des Speicherfeldes 280, bei dem der Schreibfehler auftrat.
  • 3 ist ein Flussdiagramm eines Prozesses 300 zum Schreiben in eine Speichervorrichtung gemäß einer Ausführungsform. Bei Block 310 kann ein Host einer Speichervorrichtung wie eine Kamera, ein Mobiltelefon oder eine andere elektronische Vorrichtung, die Information zu speichern hat, solche Information an eine Speichersteuerung der Speichervorrichtung bereitstellen. Bei Block 320 kann solche Information zu einem Speicherpuffer geschrieben werden. In einer Implementierung kann ein Speicherpuffer einen RAM Seitenpuffer umfassen, zum Beispiel. Bei Block 330 kann der Speicherpuffer, während eines Schreibvorgangs, der Information von dem Speicherpuffer zu einem Speicherfeld schreibt, ein Signal an die Speichersteuerung bereitstellen, um anzuzeigen, dass der Speicherpuffer belegt ist. Bei Block 340 kann Information, die in dem Speicherpuffer während des Schreibvorgangs gespeichert ist, der Information zu dem Speicherfeld schreibt, nachfolgend auf den Schreibvorgang gehalten werden. Solch ein Schreibvorgang kann entweder erfolgreich sein oder fehlschlagen und eine Bestimmung einer der Möglichkeiten kann bei Block 350 ausgeführt werden. In einer Implementierung kann solch ein Bestimmen, ob ein Schreibfehlerereignis aufgetreten ist, durch die Speichersteuerung ausgeführt werden nach der Rücknahme eines NAND ”mit Schreiben beschäftigt” Signals. Zu dieser Zeit kann die Speichersteuerung ein NAND Statusregister überprüfen, das ein Resultat (zum Beispiel Erfolg oder Fehler) des Vorgangs umfasst. Bei Block 360 kann, im Fall eines erfolgreichen Schreibvorgangs die Speichervorrichtung dem Host der Speichervorrichtung ein Signal bereitstellen, das anzeigt, dass der Schreibvorgang erfolgreich war und/oder abgeschlossen ist. Ansonsten kann eine Speichersteuerung bei Block 370, in dem Fall eines Schreibfehlerereignisses, einen ”Schreibe-von-Puffer” Befehl an den Speicherpuffer ausgeben. Demgemäß kann Information, bei Block 380, nach einem fehlgeschlagenen Schreibvorgang, die von einem Speicherpuffer gehalten wird, zu einem Speicherfeld geschrieben werden. Solch ein Speicherfeld kann dasselbe Speicherfeld umfassen, das in den früheren fehlgeschlagenen Schreibvorgang eingebunden war. Optional kann die Information, die durch einen Speicherpuffer gehalten wird, in ein anderes Speicherfeld geschrieben werden. Wenn das Speicherfeld dasselbe ist wie jenes, das in den fehlgeschlagenen Schreibvorgang einbezogen war, dann kann ein anderer Abschnitt des Speicherfeldes verwendet werden in dem Prozess von Block 380. Zum Beispiel kann solch ein anderer Abschnitt des Speicherfeldes einen anderen Block des Speicherfeldes umfassen. In einer Implementierung kann die Speichersteuerung der Speichervorrichtung solche Speicherorte bestimmen, um Information während eines erneuten Schreibprozesses zu schreiben. Wie oben bemerkt, kann die Information zu einem Speicherbereich eines Speicherfeldes geschrieben werden, der auf einem Chip angeordnet ist, der sich von jenem des Speicherfeldes, das in das Schreibfehlerereignis eingebunden war, unterscheidet. Schließlich kann der Prozess 300 zu Block 360 fortschreiten, wo die Speichervorrichtung ein Signal an den Host der Speichervorrichtung bereitstellen kann, das anzeigt, dass der Schreibvorgang erfolgreich war und/oder abgeschlossen ist. In solch einem Fall kann das Auftreten eines Schreibfehlerereignisses von dem Host wie oben beschreiben verborgen werden.
  • 4 ist ein Flussdiagramm eines Prozesses 400 zum Beschreiben einer Speichervorrichtung, gemäß einer Ausführungsform. Bei Block 410 kann ein Host einer Speichervorrichtung, der Informationen zum Speichern aufweist, solche Information einer Speichersteuerung der Speichervorrichtung bereitstellen. Bei Block 420 kann die Information zu einem Speicherpuffer geschrieben werden. In einer Implementierung kann solch ein Speicherpuffer einen RAM-Seitenpuffer zum Beispiel umfassen. Bei Block 430 kann der Speicherpuffer irgendeines Schreibvorgangs zum Schreiben von Information von dem Speicherpuffer zu dem Speicherfeld ein Signal an die Speichersteuerung bereitstellen, das anzeigt, dass der Speicherpuffer belegt ist. Bei Block 440 kann Information in einem Speicherpuffer während eines Schreibvorgangs zum Schreiben von solcher Information zu einem Speicherfeld gespeichert werden. Zusätzlich kann solche Information in einem Speicherpuffer behalten werden nach einem Schreibvorgang. Solch ein Schreibvorgang kann entweder erfolgreich sein oder fehlschlagen und eine Bestimmung des einen oder anderen Ereignisses kann bei Block 450 ausgeführt werden. Bei Block 460 kann, im Fall eines erfolgreichen Schreibvorgangs, eine Speichervorrichtung ein Signal an den Host der Speichervorrichtung bereitstellen, um anzuzeigen, dass der Schreibvorgang erfolgreich war und/oder abgeschlossen ist. Ansonsten kann, bei Block 470 im Fall eines Schreibfehlerereignisses, die Speichersteuerung einen Lese-von-Puffer Befehl an den Speicherpuffer ausgeben. Demgemäß kann die Information, die von dem Speicherpuffer gehalten wird, nach dem versuchten und fehlgeschlagenen Schreibvorgang von dem Speicherpuffer gelesen werden. In einer Implementierung kann jedoch solche Leseinformation an die Speichersteuerung bereitgestellt werden, die einen Abschnitt des Speichers bestimmen kann, der sich von dem Abschnitt des Speichers unterscheidet, der in das Schreibfehlerereignis einbezogen war, in dem die Information gespeichert werden soll, die von dem Speicherpuffer abgefragt wurde. Ähnlich kann bei Block 480 die Information, die von dem Speicherpuffer gelesen wird, zu einem Abschnitt des Speicher geschrieben werden, der vorhergehend nicht zu dem Schreibfehlerereignis geführt hat. Zum Beispiel kann solch ein Abschnitt des Speichers einen Block und/oder eine Seite von Speicher umfassen, die sich von einem Block und/oder einer Seite des Speichers unterscheidet, die zu einem vorhergehenden Schreibfehlerereignis geführt hat. Wie oben bemerkt, kann die Information an einen Speicherort eines Speicherfeldes geschrieben werden, der auf einem Chip ist, der sich von jenem des Speicherfeldes unterscheidet, das in das Schreibfehlerereignis eingebunden war. Schließlich kann der Prozess 400 zu Block 460 fortschreiten, wo die Speichervorrichtung ein Signal an den Host der Speichervorrichtung bereitstellen kann, das anzeigt, dass der Schreibvorgang erfolgreich war und/oder abgeschlossen ist. In solch einem Fall kann das Auftreten eines Schreibfehlerereignisses vor dem Host verborgen bleiben, wie oben diskutiert.
  • 5 ist eine schematische Ansicht eines Rechensystems 500 und einer Speichervorrichtung gemäß einer Ausführungsform. Solch eine Rechenvorrichtung kann einen oder mehrere Prozessoren, zum Beispiel zum Ausführen einer Anwendung und/oder eines anderen Codes umfassen. Zum Beispiel kann die Speichervorrichtung 510 ein Speicherfeld 280 enthalten, das in 2 gezeigt ist. Eine Rechenvorrichtung 504 kann repräsentativ sein für irgendeine Vorrichtung, Anwendung oder Maschine, die konfigurierbar sein kann, um die Speichervorrichtung 510 zu verwalten. Die Speichervorrichtung 510 kann eine Speichersteuerung 515 und einen Speicher 522 umfassen. In einer Implementierung kann solch eine Speichervorrichtung die Speichervorrichtung 210, die Steuerung 250, und den Speicher 280 umfassen, die in 2 gezeigt sind, zum Beispiel. Beispielsweise, aber nicht begrenzend, kann die Rechenvorrichtung 504 umfassen: eine oder mehrere Rechenvorrichtungen und/oder Plattformen, wie zum Beispiel einen Desktopcomputer, einen Laptopcomputer, eine Workstation, eine Servervorrichtung und ähnliches; eine oder mehrere persönliche Rechen- oder Kommunikationsvorrichtungen oder Anwendungen, wie zum Beispiel ein persönlicher digitaler Assistent, Mobilkommunikationsvorrichtung, oder ähnliches; ein Rechensystem und/oder assoziierte Dienstbereitstellertätigkeit, wie zum Beispiel eine Datenbank oder Datenspeicherdienstbereitsteller/-system; und/oder irgendeine Kombination davon.
  • Es ist anerkannt, dass alle oder ein Teil der verschiedenen Vorrichtungen, die in dem System 500 gezeigt sind, und die Prozesse und Verfahren wie hierin weiter beschrieben, implementiert werden können mit Hilfe oder ansonsten umfassend Hardware, Firmware, Software, oder irgendeine Kombination davon. Damit kann als, beispielsweise aber nicht begrenzend, die Rechenvorrichtung 504 zumindest eine Verarbeitungseinrichtung 520 umfassen, die operativ mit dem Speicher 522 über einen Bus 540 und eine Host- oder Speichersteuerung 515 verbunden ist. Die Verarbeitungseinheit 510 ist repräsentativ für einen oder mehrere Schaltkreise, die konfigurierbar sind, zumindest einen Abschnitt einer Datenverarbeitungsprozedur oder -prozesses auszuführen. Beispielsweise aber nicht begrenzend kann die Verarbeitungseinheit 520 einen oder mehrere Prozessoren, Controller, Mikroprozessoren, Mikrocontroller, anwendungsspezifische integrierte Schaltkreise, digitale Signalprozessoren, programmierbare logische Vorrichtungen, feldprogrammierbare Gatearrays, und ähnliches, oder irgendeine Kombination davon umfassen. Die Verarbeitungseinheit 520 kann ein Betriebssystem umfassen, das dazu konfiguriert ist, mit der Speichersteuerung 515 zu kommunizieren. Solch ein Betriebssystem kann, zum Beispiel, Befehle erzeugen, die an die Speichersteuerung 515 über den Bus 540 zu senden sind. Solche Befehle können Lese- und/oder Schreibbefehle umfassen. In Antwort auf einen Schreibbefehl kann die Speichersteuerung 515 zum Beispiel ein Vorspannungssignal, wie einen Setz- oder Rücksetzimpuls, um Informationen zu einer Speicherpartition zu schreiben, die mit dem Schreibbefehl assoziiert sind, zum Beispiel.
  • Der Speicher 522 ist repräsentativ für jeglichen Datenspeichermechanismus. Der Speicher 522 kann Informationen empfangen, die über den RAM-Puffer 570 gespeichert werden sollen, der ähnlich dem RAM-Puffer 270 sein kann, der in 2 gezeigt ist, zum Beispiel. Der Speicher 522 kann zum Beispiel einen Primärspeicher 524 und/oder einen Sekundärspeicher 526 umfassen, von denen jeder in eine oder mehrere Partitionen partitioniert sein kann, wie oben diskutiert, zum Beispiel. Der Primärspeicher 524 kann zum Beispiel einen wahlfreien Zugriffsspeicher, Nur-Lese-Speicher, etc. umfassen. Obwohl in diesem Beispiel als separat von der Verarbeitungseinheit 520 dargestellt, sollte es verstanden werden, dass alles oder ein Teil des Primärspeichers 524 innerhalb oder anderweitig nah angeordnet/gekoppelt mit der Verarbeitungseinheit 520 bereitgestellt sein kann.
  • Der Sekundärspeicher 526 kann zum Beispiel denselben oder einen ähnlichen Typ an Speicher umfassen wie der Primärspeicher und/oder eine oder mehrere Datenspeichervorrichtungen oder -systeme, wie zum Beispiel ein Festplattenlaufwerk, ein optisches Laufwerk, ein Bandlaufwerk, ein Festkörperspeicherlaufwerk, etc. In verschiedenen Implementierungen kann der Sekundärspeicher 526 operativ empfänglich sein für oder anderweitig konfiguriert sein zum Koppeln mit einem computerlesbaren Medium 528. Das computerlesbare Speichermedium 528 kann zum Beispiel jedes Medium umfassen, das Daten, Codes und/oder Anweisungen für eine oder mehrere der Vorrichtungen in dem System 500 tragen kann und/oder zugänglich machen kann.
  • In einer Ausführungsform kann das System 500 eine Speichervorrichtung umfassen, wie die Speichervorrichtung 200, die in 2 zum Beispiel gezeigt ist. Solch eine Speichervorrichtung kann eine Speichersteuerung 515 umfassen, zum Initiieren eines Schreibvorgangs, um bestimmte Informationen zu einem Speicherfeld zu schreiben. Die Speichervorrichtung kann auch einen Speicherpuffer 570 umfassen, um die bestimmte Information von der Speichersteuerung zu empfangen, die bestimmte Information während des Schreibvorgangs auszuführen und die bestimmte Information nach einem Schreibfehlerereignis zu speichern. Das System 500 kann weiter einen Prozessor 520 umfassen, um eine oder mehrere Anwendungen zu bedienen, und Schreibbefehle zu der Speichersteuerung zu initiieren, um Zugriff auf das Speicherfeld bereitzustellen. In einer Implementierung kann der Speicherpuffer einen NAND Seitenpuffer umfassen, der intern zu einem NAND Speicher ist, der das Speicherfeld umfasst.
  • Die Rechenvorrichtung 504 kann zum Beispiel eine Eingabe/Ausgabe 532 umfassen. Die Eingabe/Ausgabe 532 ist repräsentativ für eine oder mehrere Vorrichtungen oder Einrichtungen, die konfigurierbar sein können, menschliche und/oder Maschineneingaben zu akzeptieren oder anderweitig einzuführen, und/oder eine oder mehrere Vorrichtungen oder Einrichtungen, die konfigurierbar sein können, Ausgaben für Menschen und/oder Maschinen auszugeben oder anderweitig bereitzustellen. Beispielsweise aber nicht begrenzend kann die Eingabe/Ausgabe 532 eine operativ konfigurierte Anzeige, Lautsprecher, Tastatur, Maus, Trackball, Touchscreen, Datenanschluss, etc. umfassen.

Claims (12)

  1. Verfahren, umfassend: Initiieren eines Schreibvorgangs, um eine bestimmte Information von einer Speichersteuerung (150, 250) in ein erstes Speicherfeld (180, 280) einer ersten Speicherpartition (165, 265) über einen ersten internen Speicherpuffer (170, 270) der ersten Speicherpartition (165, 265) zu schreiben; Halten der bestimmten Information in dem ersten internen Speicherpuffer (170, 270) während des Schreibvorgangs und nach einem Schreibfehlerereignis; nach dem Schreibfehlerereignis, Lesen der bestimmten Information vom ersten internen Speicherpuffer (170, 270) in die Speichersteuerung (150, 250), Bereitstellen der bestimmten Information an einen zweiten internen Speicherpuffer (185, 285) einer zweiten Speicherpartition (155, 255), der mit einem zweiten Speicherfeld (195, 295) der zweiten Speicherpartition (155, 255) assoziiert ist, und Schreiben der bestimmten Information in das zweite Speicherfeld (195, 295) über den zweiten internen Speicherpuffer (185, 285).
  2. Verfahren nach Anspruch 1, wobei der erste interne Speicherpuffer einen NAND-Seitenpuffer umfasst.
  3. Speichervorrichtung, umfassend: eine Speichersteuerung (150, 250), um einen Schreibvorgang zu initiieren, um eine bestimmte Information in ein erstes Speicherfeld (180, 280) einer ersten Speicherpartition (165, 265) zu schreiben; einen ersten internen Speicherpuffer (170, 270) der ersten Speicherpartition (165, 265), der mit dem ersten Speicherfeld (180, 280) assoziiert ist; wobei die Speichersteuerung (150, 250) dazu eingerichtet ist, um die bestimmte Information in das erste Speicherfeld (180, 280) über den ersten internen Speicherpuffer (170, 270) zu schreiben, wobei der erste interne Speicherpuffer (170, 270) dazu eingerichtet ist, um die bestimmte Information von der Speichersteuerung (150, 250) zu empfangen, um die bestimmte Information während des Schreibvorgangs zu halten und die bestimmte Information nach einem Schreibfehlerereignis, das mit dem ersten Speicherfeld (180, 280) assoziiert ist, zu halten, wobei das erste Speicherfeld (180, 280) dazu eingerichtet ist, um die bestimmte Information von der Speichersteuerung (150, 250) über den ersten internen Speicherpuffer (170, 270) zu empfangen, wobei die Speichervorrichtung weiterhin einen zweiten internen Speicherpuffer (185, 285) einer zweiten Speicherpartition (155, 255) umfasst, der mit einem zweiten Speicherfeld (195, 295) der zweiten Speicherpartition (155, 255) assoziiert ist; und wobei die Speichersteuerung (150, 250) dazu eingerichtet ist, um, nach dem Schreibfehlerereignis, die bestimmte Information vom ersten internen Speicherpuffer (170, 270) in die Speichersteuerung (150, 220) zu lesen, um die bestimmte Information von der Speichersteuerung (150, 250) an den zweiten internen Speicherpuffer (185, 285) bereitzustellen, und, um die bestimmte Information an das zweite Speicherfeld (195, 295) über den zweiten internen Speicherpuffer (185, 285) zu schreiben.
  4. Speichervorrichtung nach Anspruch 3, wobei der erste interne Speicherpuffer einen NAND-Seitenpuffer umfasst.
  5. Speichervorrichtung nach Anspruch 3, wobei der erste interne Speicherpuffer und das erste Speicherfeld auf demselben Chip angeordnet sind.
  6. Speichervorrichtung nach Anspruch 3, wobei die Speichervorrichtung eine NAND-basierte Speicherkarte umfasst, um die bestimmte Information von einer Speicherkartensteuerung zu empfangen.
  7. System, umfassend: eine Speichervorrichtung (110), umfassend: eine Speichersteuerung (150, 250), um einen Schreibvorgang zu initiieren, um eine bestimmte Information in ein erstes Speicherfeld (180, 280) einer ersten Speicherpartition (165, 265) zu schreiben; einen ersten internen Speicherpuffer (170, 270) der ersten Speicherpartition (165, 265), der mit dem ersten Speicherfeld (180, 280) assoziiert ist; wobei der erste Speicherpuffer (170, 270) dazu eingerichtet ist, um die bestimmte Information von der Speichersteuerung (150, 250) zu empfangen, die bestimmte Information während des Schreibvorgangs zu speichern, und die bestimmte Information nach einem Programmfehlerereignis zu speichern, das mit dem ersten Speicherfeld (180, 280) assoziiert ist, wobei das erste Speicherfeld (180, 280) dazu eingerichtet ist, um die bestimmte Information von der Speichersteuerung (150, 250) über den ersten Speicherpuffer (170, 270) zu empfangen; einen Prozessor, um eine oder mehrere Anwendungen zu bedienen und Schreibbefehle an die Speichersteuerung (150, 250) zu initiieren, um Zugriff zu dem ersten Speicherfeld (180, 280) und zu einem zweiten Speicherfeld (195, 295) einer zweiten Speicherpartition (155, 255) bereitzustellen; und einen zweiten internen Speicherpuffer (185, 285) der zweiten Speicherpartition (155, 255), der mit dem zweiten Speicherfeld (180, 280) assoziiert ist; wobei die Speichersteuerung (150, 250) dazu eingerichtet ist, um, nach dem Schreibfehlerereignis, die bestimmte Information vom ersten internen Speicherpuffer (170, 270) in die Speichersteuerung (150, 220) zu lesen, um die bestimmte Information von der Speichersteuerung (150, 250) an den zweiten internen Speicherpuffer (185, 285) bereitzustellen, und, um die bestimmte Information an das zweite Speicherfeld (180, 280) über den zweiten Speicherpuffer (185, 285) zu schreiben.
  8. System nach Anspruch 7, wobei der erste interne Speicherpuffer einen NAND-Seitenpuffer umfasst, der intern zu einem NAND-Speicher ist, der das erste Speicherfeld umfasst.
  9. System nach Anspruch 7, wobei der erste interne Speicherpuffer einen volatilen Speicher umfasst.
  10. System nach Anspruch 7, wobei die Speichervorrichtung eine NAND-basierte Speicherkarte umfasst.
  11. System nach Anspruch 7, wobei der erste interne Speicherpuffer und das erste Speicherfeld auf einem selben Chip angeordnet sind.
  12. System nach Anspruch 7, wobei die Speichervorrichtung eine NAND-basierte Speicherkarte umfasst, um die bestimmte Information von einer Speicherkartensteuerung zu empfangen.
DE102011075814.3A 2010-05-13 2011-05-13 Speicherpuffer mit zugänglicher Information nach einem Schreibfehler Active DE102011075814B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/779,671 2010-05-13
US12/779,671 US8880778B2 (en) 2010-05-13 2010-05-13 Memory buffer having accessible information after a program-fail

Publications (2)

Publication Number Publication Date
DE102011075814A1 DE102011075814A1 (de) 2011-11-17
DE102011075814B4 true DE102011075814B4 (de) 2016-10-13

Family

ID=44859876

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102011075814.3A Active DE102011075814B4 (de) 2010-05-13 2011-05-13 Speicherpuffer mit zugänglicher Information nach einem Schreibfehler

Country Status (6)

Country Link
US (2) US8880778B2 (de)
JP (1) JP5735338B2 (de)
KR (1) KR101337812B1 (de)
CN (1) CN102243603B (de)
DE (1) DE102011075814B4 (de)
TW (1) TWI461902B (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI454922B (zh) * 2011-12-19 2014-10-01 Phison Electronics Corp 記憶體儲存裝置及其記憶體控制器與資料寫入方法
CN103186470B (zh) * 2011-12-30 2016-04-20 群联电子股份有限公司 存储器储存装置及其存储器控制器与数据写入方法
CN103218308B (zh) * 2012-01-20 2016-06-29 群联电子股份有限公司 缓冲存储器管理方法、存储器控制器与存储器储存装置
KR102154296B1 (ko) 2012-12-18 2020-09-14 삼성전자 주식회사 저항체를 이용한 비휘발성 메모리 장치의 구동 방법 및 비휘발성 메모리 장치
US9710226B1 (en) 2013-07-16 2017-07-18 Rambus Inc. Unsuccessful write retry buffer
JP2016143085A (ja) * 2015-01-29 2016-08-08 株式会社東芝 装置及び方法
CN105843700B (zh) * 2016-03-25 2019-01-15 中国科学院微电子研究所 一种控制器
KR20180127594A (ko) * 2017-05-19 2018-11-29 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR102234725B1 (ko) 2017-05-30 2021-04-02 에스케이하이닉스 주식회사 컨트롤러 및 메모리 시스템 및 메모리 시스템의 동작 방법
KR102398186B1 (ko) 2017-07-03 2022-05-17 삼성전자주식회사 메모리 컨트롤러의 동작 방법 및 사용자 장치의 동작 방법
KR20210108692A (ko) 2020-02-26 2021-09-03 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
US11953986B2 (en) * 2022-07-01 2024-04-09 Micron Technology, Inc. Selectable signal, logging, and state extraction

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6788609B2 (en) * 1991-11-26 2004-09-07 Renesas Technology Corp. Storage device employing a flash memory
DE102004025977A1 (de) * 2003-05-28 2004-12-23 Samsung Electronics Co., Ltd., Suwon Flash-Speicherbaustein
DE102007051061A1 (de) * 2006-10-19 2008-05-15 Samsung Electronics Co., Ltd., Suwon Nichtflüchtiges Halbleiterspeichersystem und entsprechendes Verfahren zum Durchführen einer Programmieroperation
US20090040836A1 (en) * 2007-08-09 2009-02-12 Samsung Electronics Co., Ltd. NAND flash memory device and method of programming the same

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6369824B1 (en) * 1999-05-07 2002-04-09 Silicon Integrated Systems Corp. Computer system having an integrated core and graphic controller device capable of accessing memory data simultaneously from a system memory pool and a separate stand-alone frame buffer memory pool
WO2003015101A2 (en) * 2001-08-08 2003-02-20 Koninklijke Philips Electronics N.V. Random-access memory devices comprising a dioded buffer
TW200302966A (en) * 2002-01-29 2003-08-16 Matsushita Electric Ind Co Ltd Memory device, data processing method and data processing program
JP2004086991A (ja) * 2002-08-27 2004-03-18 Renesas Technology Corp 不揮発性記憶装置
US7392436B2 (en) * 2003-05-08 2008-06-24 Micron Technology, Inc. Program failure recovery
US8429313B2 (en) 2004-05-27 2013-04-23 Sandisk Technologies Inc. Configurable ready/busy control
US7958292B2 (en) * 2004-06-23 2011-06-07 Marvell World Trade Ltd. Disk drive system on chip with integrated buffer memory and support for host memory access
US7409473B2 (en) * 2004-12-21 2008-08-05 Sandisk Corporation Off-chip data relocation
JP2007310680A (ja) * 2006-05-18 2007-11-29 Matsushita Electric Ind Co Ltd 不揮発性記憶装置およびそのデータ転送方法
KR100799688B1 (ko) * 2007-01-03 2008-02-01 삼성전자주식회사 백업 회로를 갖는 메모리 시스템 및 그것의 프로그램 방법
KR100877610B1 (ko) * 2007-01-23 2009-01-09 삼성전자주식회사 페이지 데이터 저장 방법과 저장 장치
KR100850515B1 (ko) * 2007-01-24 2008-08-05 삼성전자주식회사 멀티레벨 셀 플래시 메모리를 갖는 메모리 시스템 및그것의 프로그램 방법
KR100823175B1 (ko) * 2007-02-27 2008-04-18 삼성전자주식회사 프로그램 성능을 향상시킬 수 있는 플래시 메모리 장치 및그것을 포함한 메모리 시스템
US8351262B2 (en) * 2007-04-23 2013-01-08 Samsung Electronics Co., Ltd. Flash memory device and program method thereof
US7924628B2 (en) * 2007-11-14 2011-04-12 Spansion Israel Ltd Operation of a non-volatile memory array
JP4417994B2 (ja) * 2007-11-26 2010-02-17 株式会社東芝 素材データ記録装置及び、素材データ記録方法
KR101030146B1 (ko) * 2008-08-29 2011-04-18 서울대학교산학협력단 페이지 버퍼를 쓰기 캐시로 이용하는 플래시 기반 저장 장치 및 이용 방법
KR101005164B1 (ko) * 2009-05-29 2011-01-04 주식회사 하이닉스반도체 불휘발성 메모리 소자 및 이의 프로그램 방법
TWI416523B (zh) * 2009-06-10 2013-11-21 Silicon Motion Inc 非揮發性記憶體之寫入錯誤管理方法、非揮發性記憶體、記憶卡、以及非揮發性記憶體之控制器
US8132045B2 (en) * 2009-06-16 2012-03-06 SanDisk Technologies, Inc. Program failure handling in nonvolatile memory
US8683270B2 (en) * 2010-04-29 2014-03-25 Micron Technology, Inc. Signal line to indicate program-fail in memory
KR101662277B1 (ko) * 2010-05-12 2016-10-05 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법
KR101847976B1 (ko) * 2011-11-03 2018-04-12 에스케이하이닉스 주식회사 반도체 시스템

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6788609B2 (en) * 1991-11-26 2004-09-07 Renesas Technology Corp. Storage device employing a flash memory
DE102004025977A1 (de) * 2003-05-28 2004-12-23 Samsung Electronics Co., Ltd., Suwon Flash-Speicherbaustein
DE102007051061A1 (de) * 2006-10-19 2008-05-15 Samsung Electronics Co., Ltd., Suwon Nichtflüchtiges Halbleiterspeichersystem und entsprechendes Verfahren zum Durchführen einer Programmieroperation
US20090040836A1 (en) * 2007-08-09 2009-02-12 Samsung Electronics Co., Ltd. NAND flash memory device and method of programming the same

Also Published As

Publication number Publication date
KR101337812B1 (ko) 2013-12-06
TW201211758A (en) 2012-03-16
CN102243603B (zh) 2017-07-18
CN102243603A (zh) 2011-11-16
DE102011075814A1 (de) 2011-11-17
US9208901B2 (en) 2015-12-08
US20110283050A1 (en) 2011-11-17
US20150026513A1 (en) 2015-01-22
US8880778B2 (en) 2014-11-04
JP2011243193A (ja) 2011-12-01
TWI461902B (zh) 2014-11-21
JP5735338B2 (ja) 2015-06-17
KR20110125611A (ko) 2011-11-21

Similar Documents

Publication Publication Date Title
DE102011075814B4 (de) Speicherpuffer mit zugänglicher Information nach einem Schreibfehler
DE102011085989B4 (de) Verfahren und Vorrichtung zum Ausführen von parallelen Speicherlese- und Speicherschreiboperationen
DE102011086098B4 (de) Parallele Speicherlese- und Speicherschreib-Operationen in einem Speicher mit serieller Schnittstelle
DE102008003944B4 (de) Speichersystem und Programmierverfahren für ein Speichersystem
DE102020112512A1 (de) Datenspeichergerät und Betriebsverfahren dafür
DE112016005869T5 (de) Vorausschauende Arbeitsspeicherinstandhaltung
DE102019117787B4 (de) Speichervorrichtung und Betriebsverfahren derselben
DE112011100112B4 (de) Pufferspeicher-platte in blitzkopie-kaskade
DE102018122491A1 (de) Halbleiterspeichervorrichtung und verfahren zum betreiben derselben
DE102017128940A1 (de) System und Verfahren zum dynamischen Falten oder direkten Schreiben basierend auf Block-Störungsfreiheit in einem nichtflüchtigen Speichersystem
DE112007003015B4 (de) Verfahren und Vorrichtung zur Cache-gestützten Fehlerdetektion und -korrektur in einem Speicher
DE112014005266B4 (de) Verfahren und System zur Vorwärtsreferenz-Protokollierung in einem peristenten Datenspeicher
DE102018214010A1 (de) Verfahren und Vorrichtung zur Reduzierung von unbemerkten Datenfehlern in nichtflüchtigen Speichersystemen
DE202008018572U1 (de) Speichersystem
DE112008000180T5 (de) Verfahren und System für die Umsetzung eines Fast-Wakeup eines Flashspeichersystems
DE102019128491A1 (de) Betriebsverfahren für Open-Channel-Speichervorrichtung
DE112018000230T5 (de) System und Verfahren zur spekulativen Befehlsausführung unter Verwendung des Steuerungsspeicherpuffers
DE102013021679A1 (de) Rettung von Ereignisnachverfolgungsinformationen bei Stromausfall-Unterbrechungsszenarien
DE112016002305B4 (de) Reduktion der Schreibverstärkung in einem Objektspeicher
DE102020211544A1 (de) Steuerung, betriebsverfahren der steuerung und speichergerät mit derselben
DE102011017634B4 (de) Signalleitung zum Anzeigen eines Schreibfehlers in einem Speicher
DE112019005391T5 (de) Optimierte datenorganisation für neuronale netze
DE102018124836A1 (de) Neuartiger speicherbaustein
DE112019000158T5 (de) Bereichskollisions-crawler für logische blockadressierung
DE102020121109A1 (de) Speicher-controller, speichervorrichtungen und betriebsverfahren der speichervorrichtungen

Legal Events

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