DE102011085989A1 - Verfahren und Vorrichtung zum Ausführen von parallelen Speicherlese- und Speicherschreiboperationen - Google Patents

Verfahren und Vorrichtung zum Ausführen von parallelen Speicherlese- und Speicherschreiboperationen Download PDF

Info

Publication number
DE102011085989A1
DE102011085989A1 DE102011085989A DE102011085989A DE102011085989A1 DE 102011085989 A1 DE102011085989 A1 DE 102011085989A1 DE 102011085989 A DE102011085989 A DE 102011085989A DE 102011085989 A DE102011085989 A DE 102011085989A DE 102011085989 A1 DE102011085989 A1 DE 102011085989A1
Authority
DE
Germany
Prior art keywords
contents
memory
partitions
ecc
individual
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE102011085989A
Other languages
English (en)
Other versions
DE102011085989B4 (de
Inventor
Graziano Mirichigni
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 DE102011085989A1 publication Critical patent/DE102011085989A1/de
Application granted granted Critical
Publication of DE102011085989B4 publication Critical patent/DE102011085989B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/1016Error in accessing a memory location, i.e. addressing error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • 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/1072Adding 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 multilevel memories
    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1096Parity calculation or recalculation after configuration or reconfiguration of the system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0004Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/004Reading or sensing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0061Timing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2909Product codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6561Parallelized implementations
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/562Multilevel memory programming aspects
    • G11C2211/5623Concurrent multilevel programming and reading
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/23Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory codes

Abstract

Der hierin offenbarte Gegenstand bezieht sich auf Lese- und Schreibprozesse einer Speichervorrichtung.

Description

  • HINTERGRUND
  • Gebiet
  • Der hierin offenbarte Gegenstand bezieht sich auf Lese- und Schreibprozesse einer Speichervorrichtung.
  • Information:
  • Speichervorrichtungen werden in vielen Typen von elektronischen Vorrichtungen verwendet, wie Computern, Mobiltelefonen, PDAs, Datenloggern und Navigationsgeräten, um nur einige Beispiele zu nennen. Unter solchen elektronischen Vorrichtungen können verschiedene Typen von nicht-flüchtigen Speichervorrichtungen verwendet werden, wie NAND- oder NOR-Flash-Speicher und Phasenübergangsspeicher (PCM), um nur einige Beispiele zu nennen. Im Allgemeinen können Schreib- oder Programmierprozesse verwendet werden, um Informationen in solchen Speichervorrichtungen zu speichern, während ein Leseprozess verwendet werden kann, um gespeicherte Informationen zu abzurufen.
  • Einige Typen von Speichervorrichtungen umfassen ein Speicherzellenfeld, welches in Gruppen von Speicherzellen wie Seiten, Blöcke, Partitionen, usw. partitioniert wird. In solchen Fällen können Speicherzellen innerhalb solch einer Gruppe gewöhnliche elektronische Schaltungen, welche z. B. Messverstärker und Zeilen-/Spaltendecoder umfassen, teilen. Dementsprechend kann sowohl das Lesen von als auch das Schreiben in solch eine Gruppe von Speicherzellen einige gewöhnliche elektronische Schaltungen umfassen. In solch einem Fall kann eine anhängige Schreiboperation, welche in einem Abschnitt solch einer Gruppe von Speicherzellen auftritt, eine Leseoperation daran hindern, in einem anderen Abschnitt der gleichen Gruppe von Speicherzellen aufzutreten. Solch eine beschränkende Bedingung kann in langsameren Leseoperationen und insgesamt in reduzierter Leistungsfähigkeit einer Speichervorrichtung resultieren.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Nicht-einschränkende und nicht-erschöpfende Ausführungsformen werden mit Bezug auf die folgenden Zeichnungen beschrieben, wobei sich gleiche Bezugszeichen auf gleiche Teile, über die verschiedenen Zeichnungen hinweg, beziehen, sofern nicht anders spezifiziert.
  • 14 sind schematische Diagramme eines Abschnitts eines Speichers, gemäß einer Ausführungsform.
  • 5 ist ein Flussdiagramm eines Prozesses zum Lesen von einer Partition des Speichers, gemäß einer Ausführungsform.
  • 6 ist ein Flussdiagramm eines Prozesses zum Aktualisieren eines Fehlerkorrektur-Code(ECC)-Abschnitts des Speichers gemäß einer Ausführungsform.
  • 7 ist ein schematisches Diagramm, welches eine beispielhafte Ausführungsform eines Rechnersystems darstellt.
  • DETAILLIERTE BESCHREIBUNG
  • Der in dieser Beschreibung durchgehend gemachte Bezug auf „eine Ausführungsform” bedeutet, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft, welche/s in Verbindung mit der Ausführungsform beschrieben wird, in mindestens einer Ausführungsform des beanspruchten Gegenstands umfasst wird. Wenn daher der Ausdruck „in einer Ausführungsform” oder „eine Ausführungsform” an verschiedenen Stellen in dieser Beschreibung auftritt, so bedeutet dies nicht notwendigerweise, dass diese sich alle auf dieselbe Ausführungsform beziehen. Des Weiteren können die bestimmten Merkmale, Strukturen oder Eigenschaften in einer oder mehreren Ausführungsformen kombiniert werden.
  • In einer Ausführungsform kann eine Speichervorrichtung, wie NAND, NOR oder PCM-Flash, ein Speicherfeld umfassen, welches in Gruppen von Speicherzellen, Partitionen genannt, partitioniert ist. Speicherzellen innerhalb solcher Partitionen können gewöhnliche elektronische Schaltungen, welche z. B. Messverstärker und Zeilen-/Spaltendecoder umfassen, teilen. In einer Implementierung kann ein Speicherfeld, zusätzlich zu einer Mehrzahl von Partitionen, in welchen Benutzerdaten gespeichert werden, eine Fehlerkorrektur-Code(ECC)-Partition umfassen, um ECC zu speichern. Solch ein ECC kann benutzt werden, um Daten mit Paritäts-Bits zu ergänzen, welche genug Extrainformation für die Daten umfassen, um die Daten zu rekonstruieren, wenn eines oder mehrere Bits der Daten korrumpiert werden. Z. B. kann solch ein ECC während eines Prozesses des Lesens gespeicherter Daten und/oder eines Prozesses des Verifizierens nach dem Schreiben der Daten eingesetzt werden. Ein ECC kann eine Kette von Daten, welche mit Paritäts-Bits ergänzt sind, umfassen. Ein Prozess zum Konstruieren eines ECC kann, zumindest zum Teil, auf einer bestimmten verwendeten Anwendung basieren. In einer bestimmten Implementierung kann ein ECC, zumindest zum Teil, auf parallelen Verschlüsselungs- und Entschlüsselungstechniken basieren. Solche Techniken können einen 1 Bit-Fehlerkorrigierenden-Binär-Hamming-Code, einen Mehr-als-1-Bit-Fehlerkorrigierenden-Binär-Bose Chaudhury-Hecquenghem(BCH)-Code, nicht-binären Reed-Solomon-Code oder einen Faltungscode umfassen, um nur einige Beispiele zu nennen.
  • In einer Ausführungsform kann ein ECC in einer Technik zum Ausführen einer Lesen-während-Schreiben-Operation in einer bestimmten Partition eines Speicherfeldes verwendet werden. In solch einer Technik kann ein ECC, statt zum Detektieren und Korrigieren von Fehlern benutzt zu werden, wie oben beschrieben, verwendet werden zum Verschlüsseln von Information, welche repräsentativ für Inhalte in einer oder mehreren Partitionen eines Speicherfeldes ist, so dass solche Inhalte zu einer späteren Zeit während einer gleichzeitigen Schreiboperation gelesen werden können. Solch ein ECC kann geschrieben werden in und gespeichert werden in einer ECC-Partition, welche getrennt und verschieden von der einen oder den mehreren Partitionen in einem Speicherfeld, welches zum Speichern der Daten benutzt wird, sein kann. Hierbei werden solche Partitionen, welche verwendet werden, um Daten wie Benutzerdaten, welche in die Partitionen geschrieben oder von den Partitionen gelesen werden können, zu speichern, Datenpartitionen genannt werden, um sie z. B. von einer ECC-Partition zu unterscheiden. Insbesondere kann eine ECC-Partition ECC umfassen, welcher zumindest zum Teil auf Daten basiert, welche in einer Anzahl von Datenpartitionen gespeichert sind. Z. B. kann ECC, wenn Daten in Datenpartitionen eins bis acht geschrieben werden, kalkuliert werden, basierend auf den Daten, welche in die Datenpartitionen eins bis acht geschrieben wurden. Solch ein kalkulierter ECC kann dann in einer ECC-Partition gespeichert werden und z. B. zu einer späteren Zeit in einem Prozess zum Feststellen der Inhalte irgendeiner der Datenpartitionen eins bis acht verwendet werden. Solch ein Prozess des Feststellens der Inhalte einer Datenpartition kann statt des direkten Lesens solcher Inhalte ausgeführt werden. Hier bezieht sich der Ausdruck „direktes Lesen” auf einen Prozess des Erfassens eines Zustands einer oder mehrerer Speicherzellen mittels Messverstärker und anderen Schaltungen. Im Gegensatz dazu kann ein Zustand einer oder mehrerer Speicherzellen „indirekt gelesen” werden durch das Schlussfolgern oder das Feststellen solch eines Zustands ohne einen Prozess des Erfassens der Speicherzellen, wie unten beschrieben. Direktes Lesen der Inhalte eines Blocks einer Datenpartition mag nicht erlaubt sein während einer anhängigen Schreiboperation in der gleichen Datenpartition, weil z. B. eine Suspendier-Operation erforderlich sein kann. Jedoch, wie im Detail unten beschrieben, gemäß einer bestimmten Ausführungsform, kann indirektes Lesen von Inhalten eines Blocks einer Datenpartition ausgeführt werden, selbst wenn solch ein Block zu einer Datenpartition gehört, welche gerade dabei ist, beschrieben zu werden. In einer Implementierung kann eine Technik zum Ausführen einer solchen Lesen-während-Schreiben-Operation (z. B. ein indirektes Lesen) eines Blocks oder anderen Abschnitts einer bestimmten Datenpartition das Feststellen der Inhalte des Blocks oder des anderen Abschnitts, basierend, zumindest zum Teil, auf Inhalten in anderen Datenpartitionen und einer ECC-Partition, umfassen. Daher kann die Leistungsfähigkeit einer Speichervorrichtung verbessert werden, wenn eine Operation zum Schreiben in eine bestimmte Datenpartition zum Lesen von der gleichen Datenpartition bis zur Beendigung einer Operation nicht suspendiert werden muss.
  • In einer Ausführungsform kann eine Technik zum gleichzeitigen Ausführen einer Lesen-während-Schreiben-Operation in einer Datenpartition einer Speichervorrichtung das Kalkulieren eines ECC, basierend, zumindest zum Teil, auf Inhalten individueller Datenpartitionen in einem Speicher umfassen. Solch ein ECC kann z. B. in einer ECC-Partition gehalten werden. Solch ein ECC kann mit einem bestimmten Abschnitt oder Block der individuellen Datenpartitionen korrespondieren. Z. B. kann ein ECC für Block 2 einen ECC umfassen, welcher durch Benutzen der Inhalte des Blocks 2 der individuellen Datenpartitionen kalkuliert wurde. Ein anderer ECC für Block 3 kann einen ECC umfassen, welcher durch Benutzen der Inhalte des Blocks 3 der individuellen Datenpartitionen kalkuliert wurde, usw. Solche Werte des ECC (z. B. ECC für Block 2, ECC für Block 3, usw.) können in einer ECC-Partition gespeichert werden. Durch das Benutzen solch eines ECC z. B. können Inhalte eines Blocks einer bestimmten Datenpartition indirekt gelesen werden, basierend, zumindest zum Teil, auf Inhalten von korrespondierenden Blöcken von Datenpartitionen, anders als die bestimmte Datenpartition und der ECC, welcher mit dem Block korrespondiert, wie im Detail unten beschrieben. In einer Implementierung können Inhalte der Datenpartitionen anders als solch eine bestimmte Datenpartition seriell oder miteinander parallel über eine Leitung oder einen Bus in einem Prozess des indirekten Lesens der Inhalte der bestimmten Datenpartition gelesen werden.
  • Wie oben beschrieben, kann eine Schreiboperation einen direkten Leseprozess einer Datenpartition daran hindern, in der gleichen Datenpartition aufzutreten. Solche Schreiboperationen können durch einen Prozessor, welcher z. B. eine Anwendung ausführt, initiiert werden. Solche Schreiboperationen können auch durch einen Speichermikrocontroller, welcher in der Speichervorrichtung eingebettet ist oder mit der Speichervorrichtung gestapelt ist, während irgendeines einer Anzahl von internen Speicherprozessen initiiert werden. Z. B. kann ein Speichermikrocontroller Schreiboperationen in eine oder mehrere Partitionen eines Speicherfeldes initiieren, um Verschleißausgleich, Speicherbereinigung, Bad-Block-Management und/oder Auffrischungsprozesse auszuführen. Solche Prozesse können z. B. Hintergrundoperationen umfassen, welche nicht sichtbar für einen Prozessor und/oder Benutzer auf einer Anwendungsebene sind. Hierin beschriebene Ausführungsformen können es solchen Schreiboperationen erlauben, aufzutreten, ohne eine Notwendigkeit solche internen Speicherprozesse zu suspendieren.
  • In einer Ausführungsform kann ein ECC kalkuliert und/oder aktualisiert werden in Antwort auf Daten, welche in eine oder mehrere Datenpartitionen in ein Speicherfeld geschrieben werden. Wie oben beschrieben, kann ein ECC, zumindest zum Teil, auf solchen Daten basieren. Insbesondere kann ein Prozess zum Kalkulieren eines ECC direktes Lesen der Inhalte von Datenpartitionen und das Benutzen solcher Inhalte in den ECC-Kalkulationen umfassen. In einer Implementierung kann eine eingehende Leseanfrage (z. B. initiiert durch einen Prozessor oder Speichermikrocontroller) in Konflikt stehen mit Leseoperationen, welche in ECC-Kalkulationen involviert sind. Dementsprechend kann in einem Fall solch eine eingehende Leseanfrage abgelehnt werden, wenn individuelle Datenpartitionen mit ECC-Kalkulationen beschäftigt sind. In einem anderen Fall jedoch können ein oder mehrere Prozesse, welche ECC-Kalkulationen umfassen, suspendiert werden, so dass eine eingehende Leseanfrage nicht abgelehnt werden muss. Nach Ausführen der eingehenden Leseanfrage können ein oder mehrere Prozesse, welche ECC-Kalkulationen umfassen, fortgesetzt werden, obwohl der beanspruchte Gegenstand nicht in dieser Weise beschränkt ist.
  • In einer Ausführungsform kann eine Technik zum Lesen-während-Schreiben in einer Datenpartition eines Speicherfeldes in einer Speichervorrichtung ausgeführt werden, welche eine ECC-Partition zum Speichern von ECC und einen Speichermikrocontroller zum Kalkulieren von ECC umfasst, basierend, zumindest zum Teil, auf Inhalten von individuellen Datenpartitionen in dem Speicherfeld. Solch ein Speichermikrocontroller kann einen Lesebefehl zum Lesen der Inhalte eines ersten Abschnitts einer bestimmten Datenpartition, während des Schreibens in einen zweiten Abschnitt der gleichen Datenpartition, initiieren. Der Leseabschnitt kann der gleiche wie der Schreibabschnitt sein, aber bis die Schreiboperation beendet ist, kann nur der alte Inhalt gelesen werden. Inhalte des ersten Abschnitts können festgestellt werden (z. B. indirekt gelesen), basierend, zumindest zum Teil, auf dem ECC, welcher in einer ECC-Partition gespeichert wird. Inhalte des ersten Abschnitts können auch festgestellt werden, basierend, zumindest zum Teil, auf Inhalten von anderen Datenpartitionen. Daher müssen Inhalte des ersten Abschnitts der Datenpartition nicht direkt gelesen werden, jedoch können sie stattdessen unter Benutzung des ECC und der Inhalte in anderen Datenpartitionen indirekt gelesen werden. In einer Implementierung können z. B. der erste Abschnitt und der zweite Abschnitt der Datenpartition mindestens eine Gruppe von Messverstärkern teilen, obwohl der beanspruchte Gegenstand nicht in dieser Weise beschränkt ist.
  • 1 ist ein schematisches Diagramm eines Abschnitts 100 des Speichers, gemäß einer Ausführungsform. Z. B. kann solch ein Speicher NAND, NOR oder PCM-Flash-Speicher umfassen, welcher in Datenpartitionen der Speicherzellen organisiert werden kann. In den folgenden Beschreibungen kann solch ein Abschnitt des Speichers als acht Datenpartitionen umfassend beschrieben werden. Solch eine bestimmte Anzahl von Datenpartitionen ist lediglich der Einfachheit halber und zum Vereinfachen der Erklärung und des Verstehens beschrieben. Jedoch ist es zu verstehen, dass die Anzahl der Datenpartitionen, welche in hierin beschriebenen Ausführungsformen involviert sind, nicht auf eine bestimmte Anzahl beschränkt ist und der beanspruchte Gegenstand diesbezüglich nicht beschränkt ist. Fortfahrend mit der Beschreibung von 1, kann der Speicherabschnitt 100 eine Anzahl (z. B. acht) von Datenpartitionen 110 umfassen. In einer Implementierung können solche Datenpartitionen das Speicherzellenfeld 116, den Zeilendecoder 113, den Spaltendecoder 136, die Programmierlader 133 (z. B. benutzt während Schreiboperationen zum Bestimmen der zu beschreibenden Speicherzellen), einen oder mehrere Messverstärker 130 und andere Schaltungen 120, welche z. B. in Lese-/Schreiboperationen der assoziierten Datenpartitionen involviert sind, umfassen.
  • In einer Implementierung kann eine Leseoperation zum direkten Lesen von einer Datenpartition gleichzeitig mit einer Schreiboperation zum Schreiben in eine andere Datenpartition auftreten. In solch einem Fall braucht es zu keiner Konkurrenzsituation oder keinem Konflikt zu kommen, weil, unter einer Anzahl von Gründen, solche Datenpartitionen ihre eigenen Leseschaltungen (z. B. Messverstärker) und/oder z. B. Zeilen- und Spalten-Decodier-Schaltungen umfassen können. So kann für ein bestimmtes Beispiel die Leseoperation 140 zum direkten Lesen von Datenpartition 1 gleichzeitig mit der Schreiboperation 160 zum Schreiben in die Datenpartition 6 auftreten. Die Leseoperation 140 kann z. B. einen Prozess 145 des Messens der Zustände der gelesenen Speicherzellen in Datenpartition 1 über die Messverstärker 130 und des Schreibens von Daten, welche repräsentativ für die Zustände sind, in einen Ausgabepuffer 150 umfassen.
  • 2 ist ein schematisches Diagramm des Abschnitts 100 des Speichers, gemäß einer anderen Ausführungsform. Wie oben erwähnt, kann eine Leseoperation zum direkten Lesen von einer Datenpartition gleichzeitig mit einer Schreiboperation zum Schreiben in eine andere Datenpartition auftreten. In einem Fall, auftretend wie in Datenpartition 170 gezeigt, kann jedoch ein Konflikt auftreten. Insbesondere kann die Leseoperation 240 zum direkten Lesen von einem Block der Datenpartition 6 nicht in der Lage sein, gleichzeitig mit der Schreiboperation 260 zum Schreiben in einen anderen Block der Datenpartition 6 aufzutreten. In einer Implementierung z. B. kann die Schreiboperation 260, nach Empfangen eines Befehls (z. B. von einem externen Prozessor oder von einem Abschnitt eines internen Speichermikrocontrollers) zum Ausführen der Leseoperation 240, suspendiert werden, bis die Leseoperation 240 beendet ist. In einer anderen Implementierung kann ein Befehl zum Ausführen der Leseoperation 240 abgelehnt und/oder verzögert werden, bis die Schreiboperation 260 beendet ist. In beiden Implementierungen kann die Leseoperation 240 z. B. einen Prozess 245 des Messens der Zustände der gelesenen Speicherzellen in Partition 6 über die Messverstärker 130 und des Schreibens von Daten, welche repräsentativ für die Zustände sind, in einen Ausgabepuffer 250 umfassen.
  • 3 ist ein schematisches Diagramm eines Abschnitts 300 des Speichers, gemäß einer Ausführungsform. Ähnlich dem oben beschriebenen Speicher, welcher den Abschnitt 100 umfasst, kann solch ein Speicher NAND, NOR oder PCM-Flash-Speicher umfassen, welcher in Partitionen der Speicherzellen organisiert sein kann. Jedoch kann der Speicherabschnitt 300 ECC-Partitionen 310 zusätzlich zu acht Datenpartitionen, welche oben in den 1 und 2 beschrieben sind, umfassen. (wiederum ist es zu verstehen, dass der beanspruchte Gegenstand nicht auf irgendeine bestimmte Anzahl von Datenpartitionen beschränkt ist) In einer Implementierung kann solch eine ECC-Partition 310 das Speicherzellenfeld 316, den Zeilendecoder 313, den Spaltendecoder 336, Programmierlader 333, einen oder mehrere Messverstärker 330 und andere Schaltungen 320, welche z. B. in Lese-/Schreiboperationen der ECC-Partition involviert sind, umfassen. Obwohl die Größen (z. B. die Anzahl der Speicherzellen) der Speicherzellenfelder 216 der Datenpartitionen 0 bis 7 substantiell gleich sein können, kann die Größe des Speicherzellenfeldes 316 für die ECC-Partition 310 unterschiedlich sein. Z. B. kann das Speicherzellenfeld 316 substantiell größer als das Speicherzellenfeld 216 der Datenpartition 0 oder das Speicherzellenfeld 370 der Datenpartition 6 sein. Eine bestimmte Größe des Speicherzellenfelds 316 kann, zumindest zum Teil, auf bestimmten Details der ECC-Techniken, welche zum Kalkulieren des ECC verwendet werden, um im Speicherzellenfeld 316 gespeichert zu werden, der Anzahl und Größe der Datenpartitionen, der Größe der Blöcke oder Seiten in Datenpartitionen, usw. basieren.
  • Wie oben beschrieben, kann eine Leseoperation zum direkten Lesen von einer Datenpartition gleichzeitig mit einer Schreiboperation zum Schreiben in eine andere Datenpartition auftreten, da keine Konkurrenzsituation oder kein Konflikt aufzutreten braucht. So kann für ein bestimmtes Beispiel die Leseoperation 344 zum Lesen von einem Block in Datenpartition 2 gleichzeitig mit der Schreiboperation 360 zum Schreiben in einen Block in der Datenpartition 6 auftreten. Jedoch kann die Leseoperation 340 zum direkten Lesen von einem Block in Datenpartition 6 nicht in der Lage sein, z. B. gleichzeitig mit der Schreiboperation 360 zum Schreiben in den gleichen oder einen anderen Block der gleichen Datenpartition 6 aufzutreten. Nichtsdestotrotz umfassen die hierin beschriebenen Ausführungsformen Techniken zum indirekten Lesen von Inhalten eines Abschnitts einer Datenpartition, während ein anderer Abschnitt der gleichen Datenpartition programmiert wird. Solche Techniken können ECC, welcher in der ECC-Partition 310 gespeichert ist, benutzen. Daher, z. B., während die Schreiboperation 360 in einem ersten Block der Datenpartition 6 auftritt, brauchen Inhalte eines zweiten Blocks der Datenpartition 6, welche durch die Leseoperation 340 gelesen werden sollen, nicht durch direktes Lesen von dem zweiten Block festgestellt werden. Der erste und der zweite Block können der gleiche sein, aber bis die Schreiboperation beendet ist, kann nur der alte Inhalt gelesen werden. Stattdessen können solche Inhalte indirekt gelesen und festgestellt werden, basierend auf Inhalten der korrespondierenden Blöcke der ECC-Partition und den Datenpartitionen 0 bis 5 und 7 (z. B. alle Datenpartitionen außer der Datenpartition 6), wie im Detail unten erklärt. In einer Implementierung kann ein solcher ECC kalkuliert worden sein, während des letzten Mals, dass der zweite Block der Datenpartition 6 und/oder irgendeine der anderen Datenpartitionen programmiert wurden. Solch ein ECC kann kalkuliert worden sein, basierend, zumindest zum Teil, auf Daten, welche während dieses letzten Mals programmiert wurden. Details einer solchen ECC-Kalkulation werden jetzt beschrieben.
  • In einer Implementierung können Datenpartitionen eine Anzahl von Blöcken umfassen, wobei ein Block Bits, Bytes, Wörter, Wortgruppen usw. umfassen kann. Z. B. kann eine 1-Gbit-Speichervorrichtung 8 Datenpartitionen umfassen, wobei solch eine Datenpartition 64 Blöcke umfassen kann. Die Blöcke können eine Größe von 256-kBytes haben und in Seiten von 16 Wörtern oder 32 Bytes von Daten organisiert sein, welche durch eine Gruppe von Messverstärkern parallel gelesen werden können, obwohl der beanspruchte Gegenstand nicht in dieser Weise beschränkt ist. Um Bezeichnungen einzuführen, kann ein Ausdruck zum Ausdrücken der Inhalte eines bestimmten Blocks innerhalb einer bestimmten Partition als PxBy geschrieben werden, wobei x eine Partitionsnummer ist und y ein Block innerhalb von Partition Nr. x ist. Z. B. können Inhalte des Blocks 23 in der Partition 0 geschrieben werden als P0B23, Inhalte des Blocks 36 der Datenpartition 4 können geschrieben werden als P4B36 usw. Dementsprechend kann unter Benutzung solcher Bezeichnungen der ECC der Blöcke der Datenpartitionen 0 bis 7 geschrieben werden als eine Funktion der Inhalte der Blöcke der Datenpartitionen 0 bis 7, welche in den Kalkulationen des ECC benutzt werden, wie folgt:
    Block 0 ECC = f (P0B0, P1B0, P2B0, P3B0, P4B0, P5B0, P6B0, P7B0)
    Block 1 ECC = f (P0B1, P1B1, P2,B1, P3B1, P4B1, P5B1, P6B1, P7B1)
    Block 2 ECC = f (P0B2, P1B2, P2,B2, P3B2, P4B2, P5B2, P6B2, P7B2)
    usw. Solch eine Funktion f kann irgendeine Anzahl von Operationen und/oder Algorithmen umfassen. Z. B. kann in einer Implementierung solch eine Funktion eine Verkettung der Inhalte der Blöcke der Datenpartitionen 0 bis 7 umfassen. In einer anderen Implementierung kann solch eine Funktion eine Kombination von Boolschen Operationen umfassen.
  • Details einer solchen Funktion können von einer bestimmten Situation zu einer anderen variieren und der beanspruchte Gegenstand ist in dieser Weise nicht beschränkt.
  • Zurückkehrend zu 3, wie bereits beschrieben, kann die Leseoperation 340 zum direkten Lesen von einem Block in der Datenpartition 6 nicht in der Lage sein, z. B. gleichzeitig mit der Schreiboperation 360 zum Schreiben in einen Block in der gleichen Datenpartition 6 aufzutreten. Zum Beschreiben eines solchen Falles in Ausdrücken der Blöcke, wie oben eingeführt, als ein bestimmtes Beispiel, kann die Leseoperation 340 zum direkten Lesen des Blocks 2 der Datenpartition 6 nicht in der Lage sein, gleichzeitig mit der Schreiboperation 360 zum Schreiben in Block 0 der gleichen Datenpartition 6 aufzutreten. Während jedoch die Schreiboperation 360 den Block 0 der Datenpartition 6 programmiert, müssen die Inhalte des Blocks 2 der Datenpartition 6, welche durch die Leseoperation 340 gelesen werden sollen, nicht durch das direkte Lesen von Block 2 der Datenpartition 6 festgestellt werden. Stattdessen können solche Inhalte indirekt gelesen werden, basierend auf Inhalten des Blocks 2 ECC 342, und Inhalten des Blocks 2 der Datenpartitionen 0 bis 5 und 7. Dementsprechend können die Inhalte des Blocks 2 der Datenpartition 6 als eine Funktion des ECC und die Inhalte der Blöcke der Datenpartitionen 0 bis 5 und 7, welche in den Kalkulationen des ECC für Block 2 benutzt werden, wie folgt geschrieben werden:
    P6B2 = g(P0B2, P1B2, P2B2, P3B2, P4B2, P5B2, P7B2, Block 2 ECC).
  • Solch eine Funktion g kann irgendeine Anzahl von Operationen und/oder Algorithmen umfassen. Z. B. kann in einer Implementierung mindestens ein Abschnitt einer solchen Funktion g eine inverse Funktion von der oben beschriebenen f umfassen. Der obige Ausdruck impliziert, dass Daten des Blocks 2 der Datenpartition 6 von Block 2 ECC 342 und Daten in Block 2 der anderen Datenpartitionen geschlussfolgert oder festgestellt werden können. Dies kann gelten, weil der Block 2 ECC 342 vorher kalkuliert wurde, basierend, zumindest zum Teil, auf Daten in Block 2 der Datenpartition 6 und Daten in Block 2 der anderen Datenpartitionen. Daher können solche Daten, um die Leseoperation 340 zum direkten Lesen der Daten des Blocks 2 der Datenpartition 6 auszuführen, stattdessen indirekt gelesen werden, indem Block 2 ECC 342 und Daten in Block 2 der anderen Datenpartitionen benutzt werden. Dementsprechend kann solch eine Leseoperation einen Prozess 345 des direkten Lesens der Daten in Block 2 der Datenpartitionen 0 bis 5 und 7 und einen Prozess des direkten Lesens von Daten in Block 2 ECC 342 der ECC-Partition 310 umfassen. Solche Lesedaten können dem Kalkulationsblock 350 bereitgestellt werden, welcher z. B. einen Abschnitt eines Speichermikrocontrollers umfassen kann. Der Kalkulationsblock 350 kann eine oder mehrere Operationen zum indirekten Lesen der Daten des Blocks 2 der Datenpartition 6 unter Benutzung des Blocks 2 ECC 342 und Daten im Block 2 der anderen Datenpartitionen ausführen. Der Kalkulationsblock 350 kann danach Daten des Blocks 2 der Datenpartition 6 einem Ausgabepuffer 355 bereitstellen, wo solche Daten z. B. für einen Prozessor als Lesedaten, welche aus Leseoperation 340 resultieren, verfügbar sein können.
  • 4 ist ein schematisches Diagramm des Abschnitts 300 des Speichers während eines Prozesses des Kalkulierens des ECC, gemäß einer Ausführungsform. Solch ein Prozess kann initiiert werden z. B. durch einen Speichermikrocontroller, nach oder während einer oder mehrerer Operationen zum Schreiben der Daten in eine oder mehrere Datenpartitionen. Wie oben diskutiert, kann ECC kalkuliert werden, basierend, zumindest zum Teil, auf solchen Daten in korrespondierenden Blöcken der Datenpartitionen 6 bis 7. Z. B. kann Block 2 kalkuliert werden, basierend, zumindest zum Teil, auf Daten in Block 2 der Datenpartitionen 0 bis 7. Dementsprechend kann ein Prozess des Kalkulierens des ECC einen Prozess 445 des direkten Lesens der Daten in Block 2 der Datenpartitionen 0 bis 7 und des Bereitstellens der Lesedaten an den ECC-Kalkulationsblock 450 umfassen. In einer Implementierung kann der ECC-Kalkulationsblock 450 einen Abschnitt eines Speichermikrocontrollers umfassen. Nach dem Kalkulieren des ECC für Block 2 kann der Kalkulationsblock 450 den ECC in einem Prozess 446 des Schreibens des kalkulierten ECC an die ECC-Partition 310 bereitstellen. Als Nächstes kann ein Prozess des Kalkulierens des ECC für nachfolgende Blöcke (z. B. Block 3, Block 4 usw.) ausgeführt werden, indem der oben beschriebene Prozess für die individuellen Blöcke benutzt wird. Selbstverständlich sind solche Details des Kalkulierens des ECC lediglich Beispiele, und der beanspruchte Gegenstand ist nicht in dieser Weise beschränkt.
  • 5 ist ein Flussdiagramm eines Prozesses 500 zum indirekten Lesen von einer Datenpartition eines Speicherfeldes, gemäß einer Ausführungsform. Solch ein Prozess kann durch eine Speichervorrichtung ausgeführt werden, welche z. B. den Abschnitt 300, wie oben beschrieben, umfasst. Insbesondere kann, wie in dem Rechteck 510, solch ein Prozess in Antwort auf das Empfangen einer Anfrage zum Lesen von einem bestimmten Block in einer Datenpartition des Speicherfeldes, während eine Schreiboperation in der gleichen Datenpartition auftritt, ausgeführt werden. Solch eine Anfrage kann durch einen Prozessor, welcher eine Anwendung ausführt, und/oder einen Speichermikrocontroller, welcher Schreiboperationen in einer oder mehreren Datenpartitionen des Speicherfeldes zum Ausführen z. B. von Verschleißausgleich, Speicherbereinigung, Bad-Block-Management und/oder Auffrischungsprozesse ausführt, initiiert werden. Wie oben beschrieben, kann eine Leseoperation zum direkten Lesen von einem bestimmten Block in einer Datenpartition nicht in der Lage sein, gleichzeitig mit einer Schreiboperation zum Schreiben in einen anderen Block der gleichen Datenpartition aufzutreten. Daher können Inhalte des bestimmten Blocks statt des direkten Lesens von dem bestimmten Block der Datenpartition indirekt gelesen werden, indem die Inhalte der korrespondierenden Blöcke der anderen Datenpartitionen und ECC der korrespondierenden Blöcke benutzt werden. Dementsprechend, wie in den Rechtecken 520 und 530, können Inhalte der anderen Datenpartitionen und Inhalte des ECC der korrespondierenden Blöcke von der ECC-Partition direkt gelesen und benutzt werden, um die Inhalte des bestimmten Blocks indirekt zu lesen.
  • 6 ist ein Flussdiagramm eines Prozesses 600 zum Aktualisieren einer ECC-Partition des Speichers, gemäß einer Ausführungsform. Solch ein Prozess kann durch einen Speichermikrocontroller einer Speichervorrichtung ausgeführt werden, welche z. B. den Abschnitt 300, wie oben beschrieben, umfasst. Insbesondere, wie in Rechteck 610, kann solch ein Prozess in Antwort auf das Empfangen einer Anfrage zum Schreiben in eine oder mehrere Datenpartitionen eines Speicherfeldes ausgeführt werden. Z. B., wenn neue Daten in solche Datenpartitionen eines Speicherfeldes geschrieben werden, kann ein aktualisierter ECC, basierend, zumindest zum Teil, auf den neuen Daten, kalkuliert werden.
  • Solch ein aktualisierter ECC kann einen älteren ECC ersetzen, welcher in einer ECC-Partition gespeichert ist, wie z. B. der ECC-Partition 310, gezeigt in 3. Der ECC kann kalkuliert werden, indem irgendeine Anzahl von Prozessen oder Algorithmen benutzt wird, welche neue in Datenpartitionen eines Speicherfeldes geschriebene Daten wie auch ältere Daten, welche in den Datenpartitionen gespeichert sind, benutzen können. In einer Implementierung kann ein bestimmter ECC kalkuliert werden, basierend, zumindest zum Teil, auf korrespondierenden Blöcken, über die Datenpartitionen eines Speicherfeldes hinweg. Z. B. wenn individuelle Datenpartitionen 64 Blöcke umfassen, kann die ECC-Partition 310 64 Werte des ECC, korrespondierend zu den Blöcken, speichern. Selbstverständlich ist solch eine Anzahl von Datenpartitionen und ECC-Werten lediglich ein Beispiel, und der beanspruchte Gegenstand ist nicht in dieser Weise beschränkt. In Rechteck 620 können Daten der korrespondierenden Blöcke über die Datenpartitionen direkt gelesen werden. In Rechteck 630 kann der ECC kalkuliert werden, indem solche Lesedaten verwendet werden.
  • In einer bestimmten Implementierung können zumindest Abschnitte des Prozesses 600 suspendiert werden, um es zu erlauben, dass ein Lesen für einen eingehenden Lesebefehl ausgeführt wird. Solche Abschnitte des Prozesses 600 können dann fortgeführt werden, nachdem solch ein Lesen beendet ist. Solch eine Suspendierung eines Prozesses zum Aktualisieren des ECC kann in verbesserter Lese-Leistungsfähigkeit einer Speichervorrichtung resultieren, da ein Lesebefehl (initiiert durch einen Prozessor, zum Beispiel) nicht verzögert werden muss. Daher wird an Raute 640 eine Feststellung gemacht, ob ein Lesebefehl empfangen wird. Wenn nicht, dann kann der Prozess 600 übergehen zu Rechteck 646, wobei ein Prozess des Kalkulierens des ECC beendet wird. Nach Beendigung, in Rechteck 680, kann der kalkulierte ECC in eine ECC-Partition der Speichervorrichtung geschrieben werden. Andererseits, wenn ein Lesebefehl bei Raute 640 empfangen wird, kann der Prozess 600 übergehen zu dem Rechteck 650 zum Suspendieren des Kalkulierens des ECC. Während solch einer Suspendierung kann das Überwachen des Fortschritts eines Leseprozesses, welcher aus dem eingehenden Lesebefehl resultiert, feststellen, ob solch ein Leseprozess beendet ist, wie in Raute 660. Wenn der Leseprozess nicht beendet ist, kann der Prozess 600 zurückspringen zu Raute 660 zum Fortsetzen des Überwachens des Leseprozesses. Andererseits, wenn der Leseprozess beendet ist, kann der Prozess 600 übergehen zu Block 670, wobei ein Prozess des Kalkulierens des ECC beendet wird. Nach Beendigung, in Rechteck 680, kann der kalkulierte ECC in eine ECC-Partition der Speichervorrichtung geschrieben werden. Selbstverständlich sind solche Details des Prozesses 600 lediglich Beispiele, und der beanspruchte Gegenstand ist nicht in dieser Weise beschränkt.
  • 7 ist ein schematisches Diagramm, welches eine beispielhafte Ausführungsform eines Rechnersystems 700, welches eine Speichervorrichtung 710 umfasst, darstellt. Solch eine Rechnervorrichtung kann z. B. ein oder mehrere Prozessoren zum Ausführen einer Anwendung und/oder anderen Codes umfassen. Z. B. kann die Speichervorrichtung 710 eine Anzahl von Datenpartitionen und einer ECC-Partition, wie in 3 gezeigt, umfassen. Eine Rechnervorrichtung 704 kann repräsentativ für jegliche/s Vorrichtung, Gerät, oder Maschine sein, welche konfigurierbar sein kann zum Verwalten der Speichervorrichtung 710. Die Speichervorrichtung 710 kann einen Speichermikrocontroller 715 und einen Speicher 722 umfassen. Beispielhaft, aber nicht beschränkend, kann die Rechnervorrichtung 704 umfassen: eine oder mehrere Rechnervorrichtungen und/oder Plattformen, wie z. B. einen Desktop-Computer, einen Laptop-Computer, eine Workstation, eine Server-Vorrichtung o. Ä.; eine oder mehrere Personalcomputer oder Kommunikationsvorrichtungen oder -geräte, wie z. B. einen persönlichen digitalen Assistenten, eine mobile Kommunikationsvorrichtung o. Ä.; ein Rechnersystem und/oder assoziierte Diensteproviderfähigkeit, wie z. B. eine Datenbank oder ein Datenspeicherdiensteprovider/-system und/oder irgendeine Kombination davon.
  • Es wird anerkannt, dass alle oder ein Teil der verschiedenen Vorrichtungen, welche in System 700 gezeigt sind, und die Prozesse und Verfahren, welche hier weiterhin beschrieben werden, implementiert werden können, indem Hardware, Firmware, Software oder irgendeine Kombination davon benutzt oder anderweitig eingeführt wird. Daher kann, beispielhaft, aber nicht beschränkend, die Rechnervorrichtung 704 mindestens eine Verarbeitungseinheit 720 umfassen, welche mit dem Speicher 722 durch einen Bus 740 und einen Host oder Speichermikrocontroller 715 operativ gekoppelt ist. Die Verarbeitungseinheit 720 ist repräsentativ für eine oder mehrere Schaltungen, welche konfigurierbar sind zum Ausführen von mindestens einem Abschnitt einer Datenverarbeitungsprozedur oder eines Datenverarbeitungsprozesses. Als Beispiel, aber nicht beschränkend, kann die Verarbeitungseinheit 720 einen oder mehrere Prozessoren, Steuereinheiten, Mikroprozessoren, Mikrocontroller, anwendungsspezifische integrierte Schaltungen, digitale Signalprozessoren, programmierbare Logikvorrichtungen, feldprogrammierbare Gate-Arrays u. Ä. oder irgendeine Kombination davon umfassen. Die Verarbeitungseinheit 720 kann ein Betriebssystem umfassen, welches konfiguriert ist zum Kommunizieren mit Speichermikrocontroller 715. Solch ein Betriebssystem kann z. B. Befehle erzeugen, welche an den Speichermikrocontroller 715 über den Bus 740 gesendet werden sollen. Solche Befehle können Lese- und/oder Schreibbefehle umfassen. In Antwort auf einen Lesebefehl, z. B. kann der Speichermikrocontroller 715 den Prozess 500 wie oben beschrieben ausführen zum Ausführen eines Lesen-während-Schreiben-Prozesses.
  • Der Speicher 722 ist repräsentativ für irgendeinen Datenspeichermechanismus. Der Speicher 722 kann z. B. einen primären Speicher 724 und/oder einen sekundären Speicher 726 umfassen. Der primäre Speicher 724 kann z. B. einen Speicher mit wahlfreiem Zugriff, Nur-Lese-Speicher usw. umfassen. Während in diesem Beispiel als separat von der Verarbeitungseinheit 720 dargestellt, sollte es zu verstehen sein, dass alles oder Teile des primären Speichers 724 innerhalb der oder auf andere Weise zusammen angeordnet/gekoppelt mit der Verarbeitungseinheit 720 bereitgestellt werden können.
  • Der sekundäre Speicher 726 kann z. B. den gleichen oder einen ähnlichen Typ von Speicher wie der primäre Speicher und/oder eines oder mehrere Datenspeichervorrichtungen oder -systeme, wie z. B. ein Plattenlaufwerk, ein optisches Plattenlaufwerk, ein Bandlaufwerk, ein Festkörperspeicherlaufwerk usw. umfassen. In bestimmten Implementierungen kann der sekundäre Speicher 726 operativ empfänglich sein für, oder anderweitig konfigurierbar zum Koppeln mit einem computerlesbaren Medium 728. Das computerlesbare Medium 728 kann z. B. irgendein Medium umfassen, welches Daten, Code, und/oder Instruktionen für eine oder mehrere der Vorrichtungen in dem System 700 tragen und/oder verfügbar machen kann. Die Rechnervorrichtung 704 kann z. B. eine Eingabe/Ausgabe 732 umfassen.
  • In einer bestimmten Ausführungsform kann das Rechnersystem 700 die Speichervorrichtung 722, welche den Speicher 724 umfasst, und den Speicher-Mikrocontroller 715 zum Kalkulieren eines ECC, basierend, zumindest zum Teil, auf Inhalten der individuellen Speicherfeld-Partitionen im Speicher 724, umfassen. In Antwort auf einen Versuch des Lesens bestimmter Inhalte eines ersten Abschnitts einer bestimmten der individuellen Speicherfeld-Partitionen, während des Schreibens in einen zweiten Abschnitt der bestimmten der individuellen Speicherfeld-Partitionen, kann der Speicher-Mikrocontroller 715 die bestimmten Inhalte des ersten Abschnitts, basierend, zumindest zum Teil, auf dem ECC, feststellen. Das Rechnersystem 700 kann auch die Verarbeitungseinheit 720 zum Bedienen einer oder mehrerer Anwendungen und zum Initiieren der Lesebefehle, welche auf den Speicher-Mikrocontroller 715, z. B. zum Bereitstellen des Zugriffs auf Speicherzellen im Speicher 724, gerichtet sind, umfassen.
  • Die Eingabe/Ausgabe 732 ist stellvertretend für eine oder mehrere Vorrichtungen oder Merkmale, die konfiguriert werden können, um menschliche und/oder Maschinen-Eingaben anzunehmen oder auf andere Weise einzuführen, und/oder eine oder mehrere Vorrichtungen oder Merkmale, die konfiguriert werden können, um Ausgaben für Menschen und/oder Maschinen abzugeben oder auf andere Weise bereitzustellen. Beispielhaft, aber nicht beschränkend, kann die Eingabe-/Ausgabe-Vorrichtung 732 eine operativ konfigurierte Anzeige, Lautsprecher, Tastatur, Maus, Trackball, Berührungsbildschirm, Daten-Anschluss usw. umfassen.
  • Die Ausdrücke „und” und „und/oder” und „oder”, wie hierin benutzt, können eine Vielfalt an Bedeutungen umfassen, die zumindest in Teilen vom Kontext, in welchem Sie benutzt werden, abhängen werden. Typischerweise sollen „und/oder” sowie „oder”, wenn benutzt, um eine Liste wie A, B oder C zu assoziieren, bedeuten, dass A, B und C hier im inklusiven Sinn benutzt wird sowie A, B oder C im exklusiven Sinn benutzt wird. Der in dieser Beschreibung durchgehend gemachte Bezug auf „eine Ausführungsform” bedeutet, dass ein bestimmtes Merkmal, Struktur oder Eigenschaft, welche/s in Verbindung mit der Ausführungsform beschrieben wird, in mindestens einer Ausführungsform des beanspruchten Gegenstands umfasst wird. Wenn daher der Ausdruck „in einer Ausführungsform” oder „eine Ausführungsform” an verschiedenen Stellen in dieser Beschreibung auftritt, so bedeutet dies nicht notwendigerweise, dass diese sich alle auf dieselbe Ausführungsform beziehen. Des Weiteren können die bestimmten Merkmale, Strukturen oder Eigenschaften in einer oder mehreren Ausführungsformen kombiniert werden.
  • Während veranschaulicht und beschrieben wurde, was gegenwärtig als beispielhafte Ausführungsformen angesehen wird, wird es durch Fachleute zu verstehen sein, dass verschiedene andere Modifikationen gemacht werden können und Äquivalente ersetzt werden können, ohne von dem beanspruchten Gegenstand abzuweichen. Zusätzlich können viele Modifikationen gemacht werden, um eine bestimmte Situation den Lehren des beanspruchten Gegenstandes anzupassen, ohne von dem zentralen hierin beschriebenen Konzept abzuweichen. Daher ist es beabsichtigt, dass der beanspruchte Gegenstand nicht auf die bestimmten offenbarten Ausführungsformen beschränkt wird, sondern dass solch ein beanspruchter Gegenstand auch alle Ausführungsformen umfassen kann, welche in den Bereich der beigefügten Ansprüche oder Äquivalente davon fallen.

Claims (20)

  1. Verfahren umfassend: Lesen bestimmter Inhalte eines ersten Abschnitts einer bestimmten von individuellen Speicherpartitionen in einem Speicherfeld eines Speichers, während des Schreibens in einen zweiten Abschnitt der bestimmten der individuellen Speicherpartitionen, wobei das Lesen das Feststellen bestimmter Inhalte des ersten Abschnitts umfasst, basierend, zumindest in Teilen, auf einem Fehlerkorrektur-Code (ECC), basierend, zumindest zum Teil, auf Inhalten der individuellen Speicherpartitionen.
  2. Verfahren gemäß Anspruch 1, wobei das Feststellen der bestimmten Inhalte des ersten Abschnitts weiterhin zumindest zum Teil auf Inhalten der Abschnitte der individuellen Speicherpartitionen basiert, welche mit dem ersten Abschnitt der bestimmten der individuellen Speicherpartitionen korrespondieren.
  3. Verfahren gemäß Anspruch 2, wobei die Inhalte des ersten Abschnitts der bestimmten der individuellen Speicherpartitionen nicht für das Feststellen der bestimmten Inhalte des ersten Abschnitts benutzt werden.
  4. Verfahren gemäß Anspruch 2, weiterhin umfassend: paralleles Lesen der Inhalte der Abschnitte der individuellen Speicherpartitionen über einen Bus, welche mit dem ersten Abschnitt der bestimmten der individuellen Speicherpartitionen korrespondieren, während des Ausführens des Feststellens der bestimmten Inhalte des ersten Abschnitts.
  5. Verfahren gemäß Anspruch 2, weiterhin umfassend: der Reihe nach Lesen der Inhalte der Abschnitte der individuellen Speicherpartitionen über einen Bus, welche mit dem ersten Abschnitt der bestimmten der individuellen Speicherpartitionen korrespondieren, während des Ausführens des Feststellens der bestimmten Inhalte des ersten Abschnitts.
  6. Verfahren gemäß Anspruch 1, wobei das Schreiben in den zweiten Abschnitt der bestimmten der individuellen Speicherpartitionen als Antwort auf eine interne Operation, welche durch den Speicher initiiert wurde, erfolgt.
  7. Verfahren gemäß Anspruch 1, weiterhin umfassend: Abbrechen einer Kalkulation des ECC in Antwort auf das Empfangen einer Leseanfrage zum Lesen von zumindest einem Abschnitt der Inhalte der individuellen Speicherpartitionen; und Fortsetzen des Kalkulierens des ECC nach dem Lesen von zumindest einem Teil der Inhalte der individuellen Speicherpartitionen.
  8. Verfahren gemäß Anspruch 1, wobei der erste Abschnitt und der zweite Abschnitt der bestimmten der individuellen Speicherpartitionen zumindest eine Gruppe von Messverstärkern teilen.
  9. Speichermikrocontroller, umfassend: zumindest eine Schnittstelle zum Verbinden mit einem Speicherfeld; und elektronische Schaltungen zum: Lesen bestimmter Inhalte eines ersten Abschnitts einer bestimmten von individuellen Speicherpartitionen des Speicherfeldes, während des Schreibens in einen zweiten Abschnitt der bestimmten von individuellen Speicherpartitionen, wobei das Lesen das Feststellen der bestimmten Inhalte des ersten Abschnitts umfasst, basierend, zumindest zum Teil, auf einem Fehlerkorrektur-Code (ECC), basierend zumindest zum Teil auf Inhalten der individuellen Speicherpartitionen.
  10. Speichermikrocontroller gemäß Anspruch 9, wobei das Feststellen der bestimmten Inhalte des ersten Abschnitts weiterhin, zumindest zum Teil, auf Inhalten der Abschnitte der individuellen Speicherpartitionen basiert, welche mit dem ersten Abschnitt der bestimmten der individuellen Speicherpartitionen korrespondieren.
  11. Speichermikrocontroller gemäß Anspruch 10, wobei die Inhalte des ersten Abschnitts der bestimmten der individuellen Speicherpartitionen nicht für das Feststellen der bestimmten Inhalte des ersten Abschnitts benutzt werden.
  12. Speichermikrocontroller gemäß Anspruch 10, weiterhin umfassend eine Schaltung zum: parallelen Lesen der Inhalte der Abschnitte der individuellen Speicherpartitionen über einen Bus, welche mit dem ersten Abschnitt der bestimmten der individuellen Speicherpartitionen korrespondieren, während des Ausführens des Feststellens der bestimmten Inhalte des ersten Abschnitts.
  13. Speichermikrocontroller gemäß Anspruch 10, weiterhin umfassend eine Schaltung zum: der Reihe nach Lesen der Inhalte der Abschnitte der individuellen Speicherpartitionen über einen Bus, welche mit dem ersten Abschnitt der bestimmten der individuellen Speicherpartitionen korrespondieren, während des Ausführens des Feststellens der bestimmten Inhalte des ersten Abschnitts.
  14. Speichermikrocontraller gemäß Anspruch 9, wobei der erste Abschnitt und der zweite Abschnitt der bestimmten der individuellen Speicherpartitionen zumindest einen Messverstärker teilen.
  15. System, umfassend: eine Speichervorrichtung, welche einen Speicher umfasst, die Speichervorrichtung weiterhin umfassend einen Mikrocontroller zum: Lesen bestimmter Inhalte eines ersten Abschnitts einer bestimmten von individuellen Speicherpartitionen in einem Speicherfeld eines Speichers, während des Schreibens in einen zweiten Abschnitt der bestimmten der individuellen Speicherpartitionen, wobei das Lesen das Feststellen der bestimmten Inhalte des ersten Abschnitts umfasst, basierend, zumindest zum Teil, auf einem Fehlerkorrektur-Code (ECC), basierend, zumindest zum Teil, auf Inhalten der individuellen Speicherpartitionen; und einen Prozessor zum Bedienen einer oder mehrerer Anwendungen und zum Initiieren eines Lesebefehls an den Speichermikrocontroller zum Bereitstellen des Zugriffs auf das Speicherfeld.
  16. System gemäß Anspruch 15, wobei das Feststellen der bestimmten Inhalte des ersten Abschnitts weiterhin, zumindest in Teilen, auf Inhalten der Abschnitte der individuellen Speicherpartitionen basiert, welche mit dem ersten Abschnitt der bestimmten der individuellen Speicherpartitionen korrespondieren.
  17. System gemäß Anspruch 16, wobei die Inhalte des ersten Abschnitts der bestimmten der individuellen Speicherpartitionen nicht für das Feststellen der bestimmten Inhalte des ersten Abschnitts benutzt werden.
  18. System gemäß Anspruch 16, weiterhin umfassend eine Schaltung zum: parallelen Lesen der Inhalte der Abschnitte der individuellen Speicherpartitionen über einen Bus, welche mit dem ersten Abschnitt der bestimmten der individuellen Speicherpartitionen korrespondieren, während des Ausführens des Feststellens der bestimmten Inhalte des ersten Abschnitts.
  19. System gemäß Anspruch 16, weiterhin umfassend eine Schaltung zum: der Reihe nach Lesen der Inhalte der Abschnitte der individuellen Speicherpartitionen über einen Bus, welche mit dem ersten Abschnitt der bestimmten der individuellen Speicherpartitionen korrespondieren, während des Ausführens des Feststellens der bestimmten Inhalte des ersten Abschnitts.
  20. System gemäß Anspruch 15, wobei der erste Abschnitt und der zweite Abschnitt der bestimmten der individuellen Speicherpartitionen zumindest einen Messverstärker teilen.
DE102011085989.6A 2010-11-16 2011-11-09 Verfahren und Vorrichtung zum Ausführen von parallelen Speicherlese- und Speicherschreiboperationen Active DE102011085989B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/947,771 2010-11-16
US12/947,771 US8583987B2 (en) 2010-11-16 2010-11-16 Method and apparatus to perform concurrent read and write memory operations

Publications (2)

Publication Number Publication Date
DE102011085989A1 true DE102011085989A1 (de) 2012-06-28
DE102011085989B4 DE102011085989B4 (de) 2017-03-02

Family

ID=46048952

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102011085989.6A Active DE102011085989B4 (de) 2010-11-16 2011-11-09 Verfahren und Vorrichtung zum Ausführen von parallelen Speicherlese- und Speicherschreiboperationen

Country Status (6)

Country Link
US (3) US8583987B2 (de)
JP (1) JP5464528B2 (de)
KR (1) KR101343262B1 (de)
CN (1) CN102567242B (de)
DE (1) DE102011085989B4 (de)
TW (1) TWI506423B (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9208019B2 (en) 2010-11-16 2015-12-08 Micron Technology, Inc. Method and apparatus to perform concurrent read and write memory operations

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10725997B1 (en) * 2012-06-18 2020-07-28 EMC IP Holding Company LLC Method and systems for concurrent collection and generation of shared data
US9070436B2 (en) 2013-01-30 2015-06-30 Hewlett-Packard Development Company, L.P. Memory controller using crisscross error-correcting codes
KR102084461B1 (ko) * 2013-03-04 2020-04-14 삼성전자 주식회사 저항체를 이용한 비휘발성 메모리 장치
US9830087B2 (en) * 2014-11-13 2017-11-28 Micron Technology, Inc. Memory wear leveling
US10636480B2 (en) 2015-05-14 2020-04-28 Adesto Technologies Corporation Concurrent read and reconfigured write operations in a memory device
US10152545B2 (en) 2015-10-20 2018-12-11 Adobe Systems Incorporated Personalized recommendations using localized regularization
KR20180051703A (ko) 2016-11-07 2018-05-17 삼성전자주식회사 Raid 방식으로 데이터를 저장하는 스토리지 장치
US10585749B2 (en) * 2017-08-10 2020-03-10 Samsung Electronics Co., Ltd. System and method for distributed erasure coding
US10956262B2 (en) 2019-03-14 2021-03-23 Micron Technology, Inc. Deferred error code correction with improved effective data bandwidth performance
US11093323B2 (en) * 2019-04-15 2021-08-17 Nvidia Corporation Performant inline ECC architecture for DRAM controller
US10957393B2 (en) 2019-06-27 2021-03-23 Micron Technology, Inc. Apparatus and methods for performing concurrent access operations on different groupings of memory cells
CN110750466A (zh) * 2019-10-18 2020-02-04 深圳豪杰创新电子有限公司 提高闪存擦写寿命的方法和装置
CN113848454A (zh) * 2021-09-09 2021-12-28 海光信息技术股份有限公司 一种芯片测试方法及芯片测试机

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6807609B1 (en) * 1989-12-04 2004-10-19 Hewlett-Packard Development Company, L.P. Interleaving read and write operations on a bus and minimizing buffering on a memory module in a computer system
JPH0440697A (ja) * 1990-06-06 1992-02-12 Matsushita Electric Ind Co Ltd 半導体記憶装置
US5913926A (en) * 1992-08-20 1999-06-22 Farrington Investments Ltd. Expandable modular data storage system having parity storage capability
US5666511A (en) * 1992-10-08 1997-09-09 Fujitsu Limited Deadlock suppressing schemes in a raid system
US5761402A (en) * 1993-03-08 1998-06-02 Hitachi, Ltd. Array type disk system updating redundant data asynchronously with data access
FR2726934B1 (fr) 1994-11-10 1997-01-17 Sgs Thomson Microelectronics Procede de lecture anticipee de memoire a acces serie et memoire s'y rapportant
DE19540915A1 (de) * 1994-11-10 1996-05-15 Raymond Engineering Redundante Anordnung von Festkörper-Speicherbausteinen
US6067255A (en) 1997-07-03 2000-05-23 Samsung Electronics Co., Ltd. Merged memory and logic (MML) integrated circuits including independent memory bank signals and methods
US5914970A (en) * 1997-08-27 1999-06-22 Allen-Bradley Company, Llc Computer memory system providing parity with standard non-parity memory devices
US6321345B1 (en) * 1999-03-01 2001-11-20 Seachange Systems, Inc. Slow response in redundant arrays of inexpensive disks
FR2805653A1 (fr) 2000-02-28 2001-08-31 St Microelectronics Sa Memoire serie programmable et effacable electriquement a lecture par anticipation
GB2370477B (en) * 2000-12-22 2004-03-03 Tandberg Television Asa Method and apparatus for encoding a product code
JP4001724B2 (ja) 2001-03-29 2007-10-31 富士通株式会社 半導体記憶装置
JP3860436B2 (ja) * 2001-07-09 2006-12-20 富士通株式会社 半導体記憶装置
JP4059473B2 (ja) * 2001-08-09 2008-03-12 株式会社ルネサステクノロジ メモリカード及びメモリコントローラ
US6614685B2 (en) 2001-08-09 2003-09-02 Multi Level Memory Technology Flash memory array partitioning architectures
JP2004040697A (ja) 2002-07-08 2004-02-05 Suzuki Motor Corp 車両用放送に連動した画像提供システム
JP2005025827A (ja) * 2003-06-30 2005-01-27 Toshiba Corp 半導体集積回路装置およびそのエラー検知訂正方法
FR2874734A1 (fr) 2004-08-26 2006-03-03 St Microelectronics Sa Procede de lecture de cellules memoire programmables et effacables electriquement, a precharge anticipee de lignes de bit
US20060123271A1 (en) * 2004-11-19 2006-06-08 International Business Machines Corporation RAID environment incorporating hardware-based finite field multiplier for on-the-fly XOR
US8200887B2 (en) * 2007-03-29 2012-06-12 Violin Memory, Inc. Memory management system and method
US7721143B2 (en) * 2005-12-06 2010-05-18 Lsi Corporation Method for reducing rebuild time on a RAID device
US7539842B2 (en) 2006-08-15 2009-05-26 International Business Machines Corporation Computer memory system for selecting memory buses according to physical memory organization information stored in virtual address translation tables
US7694031B2 (en) * 2006-10-31 2010-04-06 Globalfoundries Inc. Memory controller including a dual-mode memory interconnect
US20080168331A1 (en) * 2007-01-05 2008-07-10 Thomas Vogelsang Memory including error correction code circuit
KR101360812B1 (ko) 2008-06-05 2014-02-11 삼성전자주식회사 반도체 장치 및 이를 포함하는 반도체 시스템
US8149643B2 (en) 2008-10-23 2012-04-03 Cypress Semiconductor Corporation Memory device and method
US8094500B2 (en) * 2009-01-05 2012-01-10 Sandisk Technologies Inc. Non-volatile memory and method with write cache partitioning
US20100199020A1 (en) * 2009-02-04 2010-08-05 Silicon Storage Technology, Inc. Non-volatile memory subsystem and a memory controller therefor
US8132044B1 (en) * 2010-02-05 2012-03-06 Symantec Corporation Concurrent and incremental repair of a failed component in an object based storage system for high availability
US8583987B2 (en) 2010-11-16 2013-11-12 Micron Technology, Inc. Method and apparatus to perform concurrent read and write memory operations
US8645637B2 (en) 2010-11-16 2014-02-04 Micron Technology, Inc. Interruption of write memory operations to provide faster read access in a serial interface memory

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9208019B2 (en) 2010-11-16 2015-12-08 Micron Technology, Inc. Method and apparatus to perform concurrent read and write memory operations
US9513992B2 (en) 2010-11-16 2016-12-06 Micron Technology, Inc. Method and apparatus to perform concurrent read and write memory operations

Also Published As

Publication number Publication date
KR20120052883A (ko) 2012-05-24
US20120124449A1 (en) 2012-05-17
US20150309868A1 (en) 2015-10-29
US9208019B2 (en) 2015-12-08
US8583987B2 (en) 2013-11-12
US9513992B2 (en) 2016-12-06
JP2012108890A (ja) 2012-06-07
DE102011085989B4 (de) 2017-03-02
TWI506423B (zh) 2015-11-01
KR101343262B1 (ko) 2013-12-18
TW201227292A (en) 2012-07-01
JP5464528B2 (ja) 2014-04-09
US20140068380A1 (en) 2014-03-06
CN102567242B (zh) 2015-05-06
CN102567242A (zh) 2012-07-11

Similar Documents

Publication Publication Date Title
DE102011085989B4 (de) Verfahren und Vorrichtung zum Ausführen von parallelen Speicherlese- und Speicherschreiboperationen
DE102011075814B4 (de) Speicherpuffer mit zugänglicher Information nach einem Schreibfehler
DE102011086098B4 (de) Parallele Speicherlese- und Speicherschreib-Operationen in einem Speicher mit serieller Schnittstelle
DE102012214324B4 (de) Verfahren und Vorrichtung zur Erleichterung der Datenüberprüfung mithilfe einer Prüfsumme in Verbindung mit einem Sidefile
DE112016005869T5 (de) Vorausschauende Arbeitsspeicherinstandhaltung
DE102018112790A1 (de) Sichere Doppelpufferung unter Verwendung sicherer verketteter DMA-Listen
DE112014005266B4 (de) Verfahren und System zur Vorwärtsreferenz-Protokollierung in einem peristenten Datenspeicher
DE102019117787B4 (de) Speichervorrichtung und Betriebsverfahren derselben
DE102012112354A1 (de) Speichervorrichtung und nichtflüchtige Speichervorrichtung sowie Betriebsverfahren davon
DE102020112512A1 (de) Datenspeichergerät und Betriebsverfahren dafür
DE202008018572U1 (de) Speichersystem
DE102018122491A1 (de) Halbleiterspeichervorrichtung und verfahren zum betreiben derselben
DE112014005570T5 (de) Deaktivieren von Seiten in einem Nand-Flash-Speicher-System
DE102016108733B4 (de) Steuern einer redundanten Anordnung von unabhängigen Festplatten (RAID), welche ein Nur-Lese-Flash-Datenspeichergerät einschließt
DE102007016460A1 (de) Nichtflüchtiges Speicherbauelement, nichtflüchtiges Speichersystem und Leseverfahren für ein nichtflüchtiges Speicherbauelement
DE102010030748A1 (de) Bitfehlerschwelle und Umabbildung einer Speicheranordnung
DE102018214010A1 (de) Verfahren und Vorrichtung zur Reduzierung von unbemerkten Datenfehlern in nichtflüchtigen Speichersystemen
DE112018000230T5 (de) System und Verfahren zur spekulativen Befehlsausführung unter Verwendung des Steuerungsspeicherpuffers
DE102018123926A1 (de) Dynamische mehrstufige Decodierung
DE112019001863T5 (de) Verwenden von spursperren und schrittweitengruppensperren zum verwalten von cacheoperationen
DE102010006139A1 (de) System und Verfahren zur Finalisierung eines Halbleiterspeichers
DE112016002305B4 (de) Reduktion der Schreibverstärkung in einem Objektspeicher
DE112019005391T5 (de) Optimierte datenorganisation für neuronale netze
DE102011017634B4 (de) Signalleitung zum Anzeigen eines Schreibfehlers in einem Speicher
DE102018124836A1 (de) Neuartiger speicherbaustein

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
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final