DE102013112195A1 - Speichercontroller, der Teildaten in einer Speichervorrichtung ändert, sowie Verfahren zum Ändern von Teildaten davon - Google Patents

Speichercontroller, der Teildaten in einer Speichervorrichtung ändert, sowie Verfahren zum Ändern von Teildaten davon Download PDF

Info

Publication number
DE102013112195A1
DE102013112195A1 DE102013112195.0A DE102013112195A DE102013112195A1 DE 102013112195 A1 DE102013112195 A1 DE 102013112195A1 DE 102013112195 A DE102013112195 A DE 102013112195A DE 102013112195 A1 DE102013112195 A1 DE 102013112195A1
Authority
DE
Germany
Prior art keywords
data
new
old
parity
partial
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102013112195.0A
Other languages
English (en)
Inventor
Lee Kijun
Junjin Kong
Hong Rak Son
Sejin Lim
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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
Priority claimed from KR1020120129549A external-priority patent/KR102041874B1/ko
Priority claimed from KR1020120129548A external-priority patent/KR102002044B1/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102013112195A1 publication Critical patent/DE102013112195A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • 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/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • 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/2942Coding, 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 wherein a block of parity bits is computed only from combined information bits or only from parity bits, e.g. a second block of parity bits is computed from a first block of parity bits obtained by systematic encoding of a block of information bits, or a block of parity bits is obtained by an XOR combination of sub-blocks of information bits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Error Detection And Correction (AREA)

Abstract

Ein Teildatenänderungsverfahren eines Speichercontrollers enthält das Empfangen einer Anfrage zum Ändern von Teildaten von einem Host; das Erfassen eines Fehlers der alten Daten, wobei die alten Daten Teildaten sind, die unter Verwendung eines Fehlererkennungscodes von einer Speichervorrichtung gelesen werden; das Berechnen einer Datendifferenz zwischen neuen Daten, die von dem Host bereit gestellt werden, und den alten Daten, falls die alten Daten nicht fehlerhaft sind und das Berechnen einer neuen Parität unter Verwendung der Datendifferenz und einer alten Parität, die von der Speichervorrichtung gelesen wurde; und das Speichern der neuen Daten und der neuen Parität auf der Speichervorrichtung.

Description

  • QUERVERWEIS AUF BEZUGNEHMENDE ANMELDUNGEN
  • Ein Prioritätsanspruch unter 35 U.S.C. § 119 besteht mit Bezug auf die koreanischen Patentanmeldungen KR 10-2012-0129548 und KR 10-2012-0129549 , eingereicht am 15. November 2012 beim koreanischen Patentamt, wobei ihr gesamter Inhalt hierbei durch Bezugnahme aufgenommen ist.
  • HINTERGRUND DER ERFINDUNG
  • Die erfinderischen Konzepte, die vorliegend beschrieben werden, betreffen ein Halbleiterspeichersystem, und insbesondere einen Speichercontroller, der in der Lage ist, Teildaten in einer Speichervorrichtung zu ändern, und ein Teildatenänderungsverfahren davon.
  • Eine Halbleiterspeichervorrichtung ist eine Speichervorrichtung, welche unter Verwendung von Halbleitern wie Silizium (Si), Germanium (Ge), Galliumarsenid (GaAs), Indiumphosphid (InP), usw. hergestellt wird. Halbleiterspeichervorrichtungen werden in flüchtige Speichervorrichtungen und nicht-flüchtige Speichervorrichtungen eingeteilt.
  • Wenn Daten in einer Speichervorrichtung gespeichert werden und Daten von der Speichervorrichtung gelesen werden, können Fehler auftreten. Verschiedene Fehlerkorrekturcodes können verwendet werden, um derartige Fehler zu erkennen und zu korrigieren. Die Fehlerkorrekturcodes können einen RS(Reed-Solomon)-Code, einen BCH(Bose-Chaudhuri-Hocquenghem)-Code, einen LDPC(niedrige Dichte-Paritätsüberprüfung)-Code, usw. enthalten.
  • Wenn Daten in einer Speichervorrichtung gespeichert werden, können auf der Speichervorrichtung zusammen mit den Daten Paritätsbits zur Fehlerkorrektur gespeichert werden. Falls Daten, die auf der Speichervorrichtung gespeichert sind, teilweise geändert werden, können alle Daten, die zusammen mit den Paritätsbits gespeichert sind, ausgelesen werden, um neue Paritätsbits zu erzeugen. Dies kann bedeuten, dass eine Datenauslesezeit und ein Leistungsverbrauch ansteigen.
  • KURZFASSUNG DER ERFINDUNG
  • Eine beispielhafte Ausführungsform der erfinderischen Konzepte betrifft ein Teildatenänderungsverfahren eines Speichercontrollers, welches das Empfangen einer Anfrage zum Ändern von Teildaten von einem Host aufweist. In einer Ausführungsform enthält das Verfahren das Erkennen eines Fehlers von Teildaten, die von einer Speichervorrichtung gelesen werden, unter Verwendung eines Fehlererkennungscodes; und falls die Daten, die von der Speichervorrichtung gelesen werden, nicht fehlerhaft sind, Berechnen einer Datendifferenz Ddif zwischen neuen Daten Dneu, die von dem Host bereitgestellt werden, und Teildaten Dalt (hiernach als alte Daten bezeichnet), die von der Speichervorrichtung gelesen werden, Berechnen einer neuen Parität Pneu unter Verwendung der Datendifferenz und einer alten Parität Palt, die von der Speichervorrichtung gelesen wurde, und Speichern der neuen Daten und der neuen Parität auf der Speichervorrichtung.
  • In einer Ausführungsform weist das Teildatenänderungsverfahren ferner das Lesen der gesamten Daten von der Speichervorrichtung, wenn die alten Daten fehlerhaft sind; und das Korrigieren eines Fehlers der alten Daten unter Verwendung eines Fehlerkorrekturcodes auf. Nachdem ein Fehler der alten Daten korrigiert wurde, wird eine Differenz zwischen neuen Daten, die von dem Host bereitgestellt werden und den fehlerkorrigierten alten Daten berechnet und eine neue Parität Pneu wird unter Verwendung der Datendifferenz Ddif und einer alten Parität Palt, die von der Speichervorrichtung gelesen wurde, berechnet.
  • In einer Ausführungsform enthält das Datenänderungsverfahren ferner das Durchführen einer Teildatenverschlüsselungsoperation des Teilens der gesamten Daten, die auf der Speichervorrichtung zu speichern sind, in eine Mehrzahl von Teildaten, des Erzeugens einer Parität für einen Fehlererkennungscode der jeweiligen Teildaten, und des Erzeugens von verschlüsselten Teildaten; und das Durchführen einer Operation zum Verschlüsseln der gesamten Daten des Erzeugens einer Parität für einen Fehlerkorrekturcode der gesamten verschlüsselten Teildaten nach der Operation zum Verschlüsseln der Teildaten.
  • In einer Ausführungsform enthält das Teildatenänderungsverfahren ferner das Durchführen einer Operation zum Verschlüsseln der gesamten Daten des Erzeugens einer Parität für einen Fehlerkorrekturcode der gesamten Daten, die auf der Speichervorrichtung zu speichern sind; und nachdem die Operation zum Verschlüsseln der gesamten Daten durchgeführt wurde, Teilen der gesamten Daten, die auf der Speichervorrichtung zu speichern sind, in eine Mehrzahl von Teildaten; und Erzeugen einer Parität für einen Fehlererkennungscode der gesamten Daten. Bei der Operation zum Verschlüsseln der Teildaten wird eine verschlüsselte Parität der gesamten Daten, die bei der Operation zum Verschlüsseln der gesamten Daten erzeugt wurde, erzeugt.
  • Eine Ausführungsform der erfinderischen Konzepte betrifft ein Teildatenänderungsverfahren eines Speichercontrollers, aufweisend das Empfangen einer Anfrage zum Verändern von Teildaten von einem Host; das Erkennen eines Fehlers von Teildaten, die von einer Speichervorrichtung gelesen wurden, unter Verwendung eines Fehlerkorrekturcodes; und falls die Teildaten, die von der Speichervorrichtung gelesen wurden, fehlerhaft sind, Korrigieren des Fehlers der Teildaten, Berechnen einer Datendifferenz Ddif zwischen neuen Daten Dneu, die von dem Host bereitgestellt werden, und den fehlerkorrigierten Teildaten Dalt (hiernach als alte Daten bezeichnet), und Berechnen einer neuen Parität Pneu unter Verwendung der Datendifferenz Ddif und einer alten Parität Palt, die von der Speichervorrichtung gelesen wurde.
  • In einer Ausführungsform enthält das Teildatenänderungsverfahren ferner das Durchführen einer Operation zum Verschlüsseln von Teildaten des Teilens der gesamten Daten, die auf der Speichervorrichtung zu speichern sind, in eine Mehrzahl von Teildaten, das Erzeugen einer Parität für einen Fehlerkorrekturcode von jeden Teildaten, und das Erzeugen von verschlüsselten Teildaten; und das Durchführen einer Operation zum Verschlüsseln der gesamten Daten des Erzeugens einer Parität für einen Fehlerkorrekturcode der gesamten verschlüsselten Teildaten nach der Operation zum Verschlüsseln der Teildaten.
  • In einer Ausführungsform enthält das Teildatenänderungsverfahren ferner das Durchführen einer Operation zum Verschlüsseln der gesamten Daten des Erzeugens einer Parität für einen Fehlerkorrekturcode der gesamten Daten, die auf der Speichervorrichtung zu speichern sind; und nachdem die Operation zum Verschlüsseln der gesamten Daten durchgeführt wurde, das Teilen der gesamten Daten, die auf der Speichervorrichtung zu speichern sind, in eine Mehrzahl von Teildaten und das Erzeugen einer Parität für einen Fehlerkorrekturcode der gesamten Daten. Bei der Operation zum Verschlüsseln der Teildaten wird eine verschlüsselte Parität der gesamten Daten, die bei der Operation zum Verschlüsseln der gesamten Daten erzeugt wird, erzeugt.
  • In einer Ausführungsform enthält das Teildatenänderungsverfahren ferner das Berechnen einer Datendifferenz Ddif zwischen neuen Daten Dneu, die von dem Host bereitgestellt werden, und Teildaten Dalt, die von der Speichervorrichtung gelesen wurden, und das Berechnen einer neuen Parität Pneu unter Verwendung der Datendifferenz und einer alten Parität Palt, die von der Speichervorrichtung gelesen wurde, falls die Teildaten, die von der Speichervorrichtung gelesen wurden, nicht fehlerhaft sind.
  • Gemäß zumindest einer beispielhaften Ausführungsform der erfinderischen Konzepte kann eine neue Parität unter Verwendung von Teildaten erzeugt werden, die ohne unmodifizierte Daten geändert werden, falls ein Teil von Daten, die auf der Speichervorrichtung gespeichert sind, geändert wird. Da eine neue Parität nur unter der Verwendung von veränderten Daten erzeugt wird, können eine Datenauslesezeit und ein Leistungsverbrauch reduziert werden. Außerdem kann ein Fehler einer neuen Parität durch frühzeitiges Erkennen und Korrigieren eines Fehlers verhindert werden, falls zu ändernde Teildaten fehlerhaft sind.
  • Eine Ausführungsform der erfinderischen Konzepte betrifft ein Verfahren zum Betreiben eines Speichercontrollers zum Aktualisieren einer Paritätsinformation. In einer Ausführungsform enthält das Verfahren das Bestimmen einer ersten Parität, wobei die erste Parität eine Parität entsprechend einer Gesamtheit von ersten Daten ist, die in einer Speichervorrichtung zu speichern sind, wobei die ersten Daten einen ersten Abschnitt und einen zweiten Abschnitt enthalten; das Empfangen einer Anfrage zum Ersetzen des ersten Abschnitts durch neue Daten; das Berechnen eines Datendifferenzwerts basierend auf den neuen Daten und dem ersten Abschnitt; das Aktualisieren der ersten Parität durch Berechnen einer neuen Parität der ersten Daten basierend auf der Datendifferenz und der ersten Parität; und das Ersetzen des ersten Abschnitts in den ersten Daten mit den neuen Daten durch Speichern der neuen Daten und der neuen Parität auf der Speichervorrichtung.
  • Die Datendifferenz und die neue Parität können ohne Verwendung des zweiten Abschnitts berechnet werden, und die neue Parität entspricht der Gesamtheit der ersten Daten einschließlich der neuen Daten und dem zweiten Abschnitt.
  • Der erste Abschnitt kann aufeinander folgende Bits der ersten Daten enthalten, der zweite Abschnitt kann aufeinander folgende Bits der ersten Daten enthalten, und die ersten und zweiten Abschnitte müssen sich nicht überlagern.
  • KURZE BESCHREIBUNG DER FIGUREN
  • Die vorstehenden und weitere Merkmale und Vorteile der beispielhaften Ausführungsformen werden durch detailliertes Beschreiben der beispielhaften Ausführungsformen mit Bezug auf die zugehörigen Zeichnungen deutlicher ersichtlich. Die zugehörigen Zeichnungen dienen zur beispielhaften Darstellung der Ausführungsformen und sollen nicht als den Umfang der Ansprüche beschränkend betrachtet werden. Die zugehörigen Zeichnungen sind nicht als im Maßstab dargestellt zu betrachten, sofern dies nicht explizit erwähnt wird.
  • 1 zeigt ein Blockdiagramm, das ein Speichersystem gemäß einer Ausführungsform der erfinderischen Konzepte darstellt;
  • 2 zeigt ein Blockdiagramm, das eine Speichervorrichtung gemäß 1 schematisch darstellt;
  • 3 und 4 zeigen Schaltdiagramme, die eine Speicherzellenanordnung gemäß Ausführungsformen der erfinderischen Konzepte schematisch darstellen;
  • 5 zeigt ein Blockdiagramm, das einen Speichercontroller, der in 1 dargestellt ist, schematisch darstellt;
  • 6 zeigt ein Blockdiagramm, das einen Neue-Parität-Generator gemäß 5 schematisch darstellt;
  • 7 bis 11 zeigen Tabellen und Blockdiagramme zum Beschreiben einer Operation eines Neue-Parität-Generators gemäß 6;
  • 12 zeigt ein Flussdiagramm, das ein Erzeugungsverfahren für eine neue Parität eines Speichersystems gemäß einer Ausführungsform der erfinderischen Konzepte darstellt;
  • 13 zeigt eine Tabelle, die ein Beispiel einer Paritätsüberprüfungsmatrix darstellt;
  • 14 zeigt eine Tabelle, die einen Fall darstellt, bei welchem zuerst ein Byte Daten in einer Paritätsüberprüfungsmatrix gemäß 13 verändert werden;
  • 15 zeigt eine Tabelle, die ein Beispiel darstellt, in welchem eine Operation zum Erzeugen einer neuen Parität auf einer Paritätsüberprüfungsmatrix gemäß 13 bei jedem Bereich durchgeführt wird;
  • 16 und 17 zeigen Tabellen, die eine Datenstruktur zur Fehlererkennung oder -korrektur von Teildaten darstellen;
  • 18 und 19 zeigen konzeptionelle Diagramme, die Abläufe beim Verschlüsseln von Teildaten und beim Verschlüsseln der gesamten Daten darstellen;
  • 20 und 21 zeigen Flussdiagramme, die ein Teildatenänderungsverfahren darstellen, bei welchem eine Fehlererkennungs- oder korrekturoperation eines Speichersystems gemäß einer Ausführungsform der erfinderischen Konzepte ausgeführt wird;
  • 22 zeigt ein Blockdiagramm, das eine Anwendung eines Speichersystems von 1 schematisch darstellt;
  • 23 zeigt ein Blockdiagramm, das eine Speicherkarte schematisch darstellt, die durch ein Speichersystem gemäß einer Ausführungsform der erfinderischen Konzepte implementiert ist;
  • 24 zeigt ein Blockdiagramm, das ein Festkörperlaufwerk schematisch darstellt, das durch ein Speichersystem gemäß einer Ausführungsform der erfinderischen Konzepte implementiert ist; und
  • 25 zeigt ein Blockdiagramm, das ein Computersystem schematisch darstellt, bei welchem ein Speichersystem gemäß einer Ausführungsform der erfinderischen Konzepte Anwendung findet.
  • DETAILLIERTE BESCHREIBUNG
  • Ausführungsformen werden mit Bezugnahme auf die zugehörigen Zeichnungen im Detail beschrieben. Die erfinderischen Konzepte können jedoch in verschiedenen unterschiedlichen Formen ausgebildet sein und sollten nicht auf die dargestellten Ausführungsformen beschränkt betrachtet werden. Diese Ausführungsformen sind vielmehr als Beispiele für eine schlüssige und vollständige Offenbarung vorgesehen und legen dem Fachmann die erfinderischen Konzepte vollständig dar. Demnach sind bekannte Prozessabläufe, Elemente und Techniken mit Bezug auf manche Ausführungsformen der erfinderischen Konzepte nicht beschrieben. Sofern nicht anders beschrieben, dienen gleiche Bezugszeichen in den beigefügten Zeichnungen und der Beschreibung zur Kennzeichnung gleicher Elemente, wobei auf eine redundante Beschreibung verzichtet wird. In den Zeichnungen können die Größen und relativen Größen von Abschnitten und Bereichen für die Klarheit überdimensioniert dargestellt sein.
  • Es ist zu verstehen, dass, obwohl die Begriffe „erster, erste, erstes”, „zweiter, zweite, zweites”, „dritter, dritte, drittes”, etc. verwendet werden, um verschiedene Elemente, Komponenten, Regionen, Schichten und/oder Bereiche zu beschreiben, diese Elemente, Komponenten, Regionen, Schichten und/oder Bereiche nicht als durch diese Begriffe beschränkt zu betrachten sind. Diese Begriffe werden ausschließlich dafür verwendet, dass ein Element, eine Komponente, eine Region, eine Schicht oder ein Bereich von einer anderen Region oder Schicht, oder einem anderen Bereich unterschieden werden kann. Somit könnte ein erstes Element, eine erste Komponente, eine erste Region, eine erste Schicht oder ein erster Bereich wie nachfolgend angeführt auch als zweites Element, zweite Komponente, zweite Region, zweite Schicht oder zweiter Bereich bezeichnet werden, ohne dabei von der Lehre der erfinderischen Konzepte abzuweichen.
  • Räumlich relative Begriffe wie „unterhalb”, „unter”, „niedriger”, „oberhalb”, „über” und dergleichen können vorliegend zur einfacheren Beschreibung eines Elements oder einer Beziehung zu einem anderen Element bzw. zu anderen Elementen oder Eigenschaften, wie in den Figuren dargestellt, verwendet werden. Es ist zu verstehen, dass die räumlich-relativen Begriffe dazu dienen, verschiedene Ausrichtungen der Vorrichtung unter Verwendung oder in Betrieb zusätzlich zur Ausrichtung, die in den Figuren dargestellt ist, zu umfassen. Falls die Vorrichtung in den Figuren beispielsweise gedreht ist, wären Elemente, die als „unter” oder „unterhalb” anderer Elemente oder Merkmale beschrieben sind, dann „oberhalb” der anderen Elemente oder Merkmale orientiert. Somit können die beispielhaften Ausdrücke „unter” und „unterhalb” beide Ausrichtungen, d. h., oberhalb und unterhalb, bezeichnen. Die Vorrichtung kann auch anders ausgerichtet sein (um 90° gedreht oder anders ausgerichtet) und die vorliegend verwendeten räumlich-relativen Beschreibungen können entsprechend interpretiert werden. Außerdem ist zu verstehen, dass, wenn eine Schicht als „zwischen” zwei Schichten beschrieben ist, diese Schicht die einzige Schicht zwischen den zwei Schichten sein kann, oder auch eine oder mehrere Zwischenschichten vorliegen können.
  • Die vorliegend verwendete Terminologie dient zur Beschreibung spezieller Ausführungsformen und soll die erfinderischen Konzepte nicht beschränken. Wie vorliegend verwendet, sollen die Singularformen „einer, eine, eines” und „der, die, das” auch die Pluralformen enthalten, sofern aus dem Kontext nicht eindeutig etwas anderes hervorgeht. Es ist ferner zu verstehen, dass die Begriffe „aufweisen” und/oder „aufweisend”, wenn sie in dieser Form verwendet werden, das Vorhandensein der erwähnten Merkmale, Ganzzahlen, Schritte, Operationen, Elemente und/oder Komponenten spezifiziert, jedoch nicht das Vorliegen oder Hinzufügen einer oder mehrerer anderer Merkmale, Ganzzahlen, Schritte, Operationen, Elemente, Komponenten und/oder Gruppen derselben ausschließt. Wie vorliegend verwendet, enthält der Begriff „und/oder” eine beliebige und alle Kombinationen von einem oder mehreren der assoziierten aufgelisteten Begriffe. Außerdem soll sich der Ausdruck „beispielhaft” auf ein Beispiel oder eine beispielhafte Darstellung beziehen.
  • Es ist zu verstehen, dass, wenn ein Element oder eine Schicht als „auf”, „verbunden mit”, „gekoppelt mit”, oder „benachbart zu” einem anderen Element oder einer Schicht beschrieben wird, eine direkte Verbindung, Kopplung, oder Nachbarschaft zu dem anderen Element oder der Schicht vorliegen kann, oder auch Zwischenelemente oder Schichten vorliegen können. Wenn hingegen ein Element als „direkt auf”, „direkt verbunden mit”, „direkt gekoppelt mit”, oder „direkt benachbart zu” einem anderen Element oder einer Schicht beschrieben wird, liegen keine Zwischenelemente oder Zwischenschichten vor.
  • Es sollte erwähnt sein, dass in manchen alternativen Ausführungsformen die erwähnten Funktionen/Wirkungen auch in einer anderen Reihenfolge als in der, die in den Figuren dargestellt ist, auftreten können. Zum Beispiel, können zwei aufeinander folgend dargestellte Figuren bzw. die dort dargestellten Funktionen eigentlich auch parallel oder manchmal auch in einer umgekehrten Reihenfolge ausgeführt werden, abhängig von der vorliegenden Funktionalität bzw. den entsprechenden Wirkungen.
  • Sofern nicht anders definiert, haben alle Ausdrücke (einschließlich technischer und wissenschaftlicher Begriffe), die vorliegend verwendet werden, die Bedeutung, die für einen Durchschnittsfachmann, der für das erfinderische Konzept zuständig ist, normal ist. Ferner ist zu verstehen, dass Begriffe, wie jene, die in gewöhnlich verwendeten Wörterbüchern definiert sind, so zu interpretieren sind, dass sie die Bedeutung haben, die mit ihrer Bedeutung im Kontext des relevanten Standes der Technik und/oder der vorliegenden Beschreibung übereinstimmt, d. h., die Bedeutung dieser Wörter soll nicht auf idealisierte oder zu formale Art und Weise interpretiert werden, solange dies vorliegend nicht ausdrücklich anders definiert wird.
  • I. SPEICHERSYSTEM EINSCHLIEßLICH ECC-ENCODER
  • 1 zeigt ein Blockdiagramm, das ein Speichersystem gemäß einer Ausführungsform der erfinderischen Konzepte schematisch darstellt. Mit Bezug auf 1 kann ein Speichersystem 1000 eine Speichervorrichtung 1100, einen Speichercontroller 1200 und einen Host 1300 enthalten.
  • Die Speichervorrichtung 1100 kann eine flüchtige Speichervorrichtung und eine nicht-flüchtige Speichervorrichtung enthalten. Die flüchtige Speichervorrichtung kann eine Speichervorrichtung enthalten, die darauf gespeicherte Daten verliert, wenn sie ausgeschaltet wird. Die flüchtige Speichervorrichtung kann einen SRAM, einen DRAM usw. enthalten. Die nicht-flüchtige Speichervorrichtung kann eine Speichervorrichtung sein, welche darauf gespeicherte Daten bei einem Ausschalten behält. Die nicht-flüchtige Speichervorrichtung kann einen ROM (Festwertspeicher), einen PROM (programmierbarer ROM), einen EPROM (elektrisch programmierbarer ROM), einen EEPROM (elektrisch löschbarer und programmierbarer ROM), eine Flash-Speichervorrichtung, einen PRAM (Phasenveränderungs-RAM), einen MRAM (magnetischer RAM), einen RRAM (resistiver RAM), einen FRAM (ferroelektrischer RAM), usw. enthalten. Die Speichervorrichtung 1100 kann verschiedene Verfahren zur Fehlerkorrektur verwenden, wenn bei einer Operation ein Bitfehler erzeugt wird.
  • Der Speichercontroller 1200 kann zwischen der Speichervorrichtung 1100 und dem Host 1300 verbunden sein. Der Speichercontroller 1200 kann in Reaktion auf eine Anfrage des Hosts 1300 auf die Speichervorrichtung 1100 zugreifen. Der Speichercontroller 1200 kann Daten von dem Host 1300 empfangen, um kodierte Daten DATA_C zu erzeugen. Der Speichercontroller 1200 kann der Speichervorrichtung 1100 einen Befehl CMD, eine Adresse ADDR, die kodierten Daten DATA_C und ein Steuersignal CTRL zuweisen.
  • Der Speichercontroller 1200 kann kodierte Daten DATA_C von der Speichervorrichtung 1100 empfangen und kann die kodierten Daten DATA_C entschlüsseln, um die Originaldaten wiederherzustellen. Der Speichercontroller 1200 kann die wiederhergestellten Daten zu dem Host 1300 senden.
  • Der Speichercontroller 1200 kann einen ECC-Encoder 1270 enthalten. Der ECC-Encoder 1270 kann eine ECC-Entschlüsselung der Daten durchführen, die auf der Speichervorrichtung 1100 vorzusehen sind, um kodierte Daten DATA_C zu erzeugen, zu welchen eine Parität hinzugefügt wird. Der ECC-Encoder 1270 kann unter Verwendung der Parität einen Fehler korrigieren.
  • Der ECC-Encoder 1270 kann einen Fehler unter Verwendung eines LDPC(niedrige Dichte Paritätsüberprüfung)-Codes, eines BCH(Bose-Chaudhuri-Hocquenghem)-Codes, eines Turbocodes, eines RS(Reed-Solomon)-Codes, eines Faltungscodes, eines RSC (rekursiver systematischer Code), oder einer kodierten Modulation wie einer TCM (Trellis-kodierte Modulation), einer BCM (Block kodierte Modulation) usw. korrigieren.
  • Wenn Daten, die auf der Speichervorrichtung 1100 gespeichert sind, teilweise geändert werden, kann der ECC-Encoder 1270 unter Verwendung von Daten, die teilweise verändert wurden, eine neue Parität erzeugen. Das Speichersystem 1000 gemäß einer Ausführungsform der erfinderischen Konzepte muss beim Erzeugen einer neuen Parität keine Daten verwenden, die nicht verändert wurden, so dass eine Datenlesezeit und ein Leistungsverbrauch reduziert werden.
  • 2 zeigt ein Blockdiagramm, das eine Speichervorrichtung 1100 von 1 schematisch darstellt. Mit Bezug auf 2 kann eine Speichervorrichtung 1100 eine Speicherzellenanordnung 1110, einen Adressdekoder 1120, eine Dateneingabe/ausgabeschaltung 1130 und eine Steuerlogik 1140 enthalten.
  • Die Speicherzellenanordnung 1110 kann mit dem Adressdekoder 1120 durch Wortleitungen WL und mit der Dateneingabe/ausgabeschaltung 1130 durch Bitleitungen BL verbunden sein. Die Speicherzellenanordnung 1110 kann eine Mehrzahl von Speicherzellen enthalten. Speicherzellen, die in einer Reihenrichtung angeordnet sind, können mit einer Wortleitung verbunden sein. Speicherzellen, die in einer Spaltenrichtung angeordnet sind, können mit einer Bitleitung verbunden sein. Jede Speicherzelle kann ein oder mehrere Datenbits speichern.
  • Der Adressdekoder 1120 kann mit der Speicherzellenanordnung 1110 durch die Wortleitungen WL verbunden sein. Der Adressdekoder 1120 kann eine Adresse ADDR von einem Speichercontroller 1200 (siehe 1) empfangen. Die Adresse ADDR kann eine Reihenadresse und eine Spaltenadresse enthalten. Der Adressdekoder 1120 kann eine oder mehrere Wortleitungen unter Verwendung der Reihenadresse auswählen und kann die Spaltenadresse CA zur Dateneingabe/ausgabeschaltung 1130 übertragen.
  • Die Dateneingabe/ausgabeschaltung 1130 kann mit der Speicherzellenanordnung 1100 durch die Bitleitungen BL verbunden sein und kann kodierte Daten DATA_C mit dem Speichercontroller 1200 austauschen. Die Dateneingabe/ausgabeschaltung 1130 kann in Reaktion auf eine Steuerung der Steuerlogik 1140 funktionieren bzw. operieren. Die Dateneingabe/ausgabeschaltung 1130 kann in Reaktion auf die Spaltenadresse CA von dem Adressdekoder 1120 eine oder mehrere Bitleitungen auswählen.
  • Die Dateneingabe/ausgabeschaltung 1130 kann kodierte Daten DATA_C von einer externen Vorrichtung (z. B. einem Speichercontroller 1200) empfangen, um die kodierten Daten DATA_C auf der Speicherzellenanordnung 1110 vorzusehen. Die Dateneingabe/ausgabeschaltung 1130 kann kodierte Daten DATA_C von der Speicherzellenanordnung 1110 lesen, um die gelesenen Daten DATA_C zum Speichercontroller 1200 auszugeben.
  • Die Steuerlogik 1140 kann mit dem Adressdekoder 1120 und der Dateneingabe/ausgabeschaltung 1130 verbunden sein. Die Steuerlogik 1140 kann eine Gesamtoperation (z. B. eine Leseoperation, Schreibeoperation, etc.) der Speichervorrichtung 1100 in Reaktion auf einen Befehl CMD und ein Steuersignal CTRL von dem Speichercontroller 1200 steuern.
  • 3 und 4 zeigen Schaltdiagramme, die eine Speicherzellenanordnung gemäß Ausführungsformen der erfinderischen Konzepte schematisch darstellen. 3 stellt ein Beispiel eines NAND-Flashspeichers dar, und 4 stellt ein Beispiel eines STT-MRAM dar (Spin-Transfer-Torque magneto-resistiver Direktzugriffsspeicher).
  • Mit Bezug auf 3 kann eine Speicherzellenanordnung 1110a eine Mehrzahl von Flashspeicherzellen enthalten. Speicherzellen MC1 bis MCm, die entlang einer Reihenrichtung vorgesehen sind, können jeweils mit Wortleitungen WL1 bis WLm verbunden sein. Speicherzellen in derselben Reihe können mit derselben Wortleitung verbunden sein. Speicherzellen MC1 bis MCm, die entlang einer Spaltenrichtung vorgesehen sind, können jeweils mit Bitleitungen BL1 bis BLn verbunden sein. Speicherzellen in derselben Spalte können mit derselben Bitleitung verbunden sein.
  • String-Auswahltransistoren SST können jeweils mit den Bitleitungen BL1 bis BLn und den Speicherzellen MCm verbunden sein. Die String-Auswahltransistoren SST können mit einer String-Auswahlleitung SSL verbunden sein. Ground-Auswahltransistoren GST können jeweils mit den Speicherzellen MC1 und einer gemeinsamen Source-Leitung CSL verbunden sein. Die Ground-Auswahltransistoren GST können mit einer Ground-Auswahlleitung GSL verbunden sein.
  • Mit Bezug auf 4 kann eine Speicherzellenanordnung 1110b eine Mehrzahl von Wortleitungen WL1 bis WLm, eine Mehrzahl von Bitleitungen BL1 bis BLn und eine Mehrzahl von Speicherzellen, die an Schnittstellen der Wortleitungen WL1 bis WLm und den Bitleitungen BL1 bis BLn angeordnet sind, enthalten.
  • Falls eine Speicherzelle aus einer STT-MRAM-Zelle besteht, kann sie einen Zellentransistor und ein Magnettunnelkontakt-(MTJ)-Element aus magnetischem Material enthalten. Das MTJ-Element kann durch ein resistives Element, wie einen PRAM, unter Verwendung eines Phasenveränderungsmaterials, durch einen RRAM unter Verwendung eines variabel-resistiven-Materials, wie eines komplexen Metalloxids, oder dergleichen ersetzt werden.
  • Rückkehrend zu 1 kann ein Speichersystem 1000 gemäß einer Ausführungsform der erfinderischen Konzepte derart konfiguriert sein, dass ein Speichercontroller 1200 einen ECC-Encoder 1270 enthält. Wenn Daten, die auf der Speichervorrichtung 1100 gespeichert sind, teilweise verändert werden, kann der ECC-Encoder 1270 gemäß beispielhaften Ausführungsformen der erfinderischen Konzepte unter Verwendung der teilweise geänderten Daten eine neue Parität erzeugen. Da eine neue Parität unter Verwendung der teilweise geänderten Daten erzeugt wird, können eine Datenlesezeit und ein Leistungsverbrauch reduziert werden.
  • II. VERFAHREN ZUM ERZEUGEN EINER NEUEN PARITÄT BEI TEILWEISE GEÄNDERTEN DATEN
  • 5 zeigt ein Blockdiagramm, das einen Speichercontroller 1200, der in 1 dargestellt ist, schematisch darstellt. Mit Bezug auf 5 kann ein Speichercontroller 1200 einen Systembus 1210, eine Steuereinheit 1220, einen RAM 1230, eine Hostschnittstelle 1240, eine Speicherschnittstelle 1250 und einen ECC-Encoder 1270 enthalten.
  • Der Systembus 1210 kann als interner Kanal des Speichercontrollers 1200 verwendet werden. Die Steuereinheit 1220 kann eine Gesamtoperation des Speichercontrollers 1200 steuern. Der RAM 1230 kann als Arbeitsspeicher, Cache-Speicher und/oder Pufferspeicher der Steuereinheit 1220 verwendet werden.
  • Die Hostschnittstelle 1240 kann mit einem Host 1300 (siehe 1) gemäß dem spezifischen Verbindungsstandard kommunizieren bzw. in Verbindung stehen. In beispielhaften Ausführungsformen kann der Speichercontroller 1200 mit dem Host 1300 unter Verwendung von zumindest einem von verschiedenen Verbindungsstandards wie USB (universeller serieller Bus), PCI (periphere Komponentenverbindung), PCI-E (PCI-Express), ATA (Advanced Technology Attachment), Serial-ATA, Parallel-ATA, SCSI (Schnittstelle eines kleinen Computersystems), ESDI (Schnittstelle einer erweiterten kleinen Disc), IDE (integrierte Treiberelektronik), und Firewire in Verbindung stehen.
  • Die Speicherschnittstelle 1250 kann eine Schnittstelle für eine Speichervorrichtung 1100 (siehe 1) sein. Die Speicherschnittstelle 1250 kann z. B. eine NAND-Flashschnittstelle, eine MRAM-Schnittstelle, oder dergleichen enthalten.
  • Der ECC-Encoder 1270 kann bei Daten von dem Host 1300 eine ECC-Verschlüsselung durchführen, um die Speichervorrichtung 1100 mit kodierten Daten DATA_C und einer Parität vorzusehen. Hierbei können die kodierten Daten DATA_C auch als ECC-Daten bezeichnet werden. Angenommen, dass Daten, die auf der Speichervorrichtung 1100 zu speichern sind, D1, D2, D3 und D4 sind, kann die Parität durch die folgende Gleichung 1 berechnet werden. P1 = D1 + D2 + D3 + D4 (1)
  • In der Gleichung 1 kann die Addition eine XOR-Operation oder eine mod2-Operation sein. Alternativ kann die Addition eine Operation sein, die einem nicht-binären Code zu einem nicht-linearen Code entspricht.
  • Wie vorliegend verwendet, werden die Operationen zur Addition oder Subtraktion von Bits jeweils durch XOR-Operationen erzielt.
  • Der ECC-Encoder 1270 kann einen Neue-Parität-Generator 1260 enthalten. Wenn ein Teil von Daten, die auf der Speichervorrichtung 1100 gespeichert sind, verändert wird, kann der Neue-Parität-Generator 1260 im ECC-Encoder 1270 unter Verwendung von teilweise geänderten Daten bzw. geänderten Teildaten eine neue Parität erzeugen. Der Neue-Parität-Generator 1260 kann außerhalb des ECC-Encoders 1270 platziert sein.
  • 6 zeigt ein Blockdiagramm, das einen Neue-Parität-Generator von 5 schematisch darstellt. Mit Bezug auf 6 kann ein Neue-Parität-Generator 1260 einen Datenort-Identifizierer 1261, einen Datendifferenzrechner 1262 und einen Paritätsrechner 1263 aufweisen.
  • Der Datenort-Identifizierer 1261 kann einen Ort von neuen Daten Dneu, die von einem Host 1300 eingegeben werden, identifizieren und kann ein Ortssignal LOC zu dem Datendifferenzrechner 1262 und zu dem Paritätsrechner 1263 senden. Hierbei steht ein Ort der neuen Daten für einen Ort von Daten, die durch neue Daten zu verändern sind, und zwar aus Daten, die auf einer Speichervorrichtung 1100 gespeichert sind.
  • Zum Beispiel wird angenommen, dass eine Parität P unter Verwendung von vier Daten D1, D2, D3 und D4 erzeugt wird. Die Daten D1 bis D4 können dabei beispielsweise jeweils an den Orten d1 bis d4 angeordnet werden. Falls D1 und D2 mit neuen Daten verändert werden, kann ein Ort der neuen Daten d1 und d2 sein. In der anschließenden Beschreibung können alte Daten an einem Ort d1 als D1alt bezeichnet werden und neue Daten können als D1neu bezeichnet werden. Falls alte Daten D1alt an einem Ort d1 mit neuen Daten D1neu verändert werden, kann der Datenort-Identifizierer 1261 das Ortssignal LOC, das d1 anzeigt, vorsehen.
  • Der Datendifferenzrechner 1262 kann das Ortssignal LOC bei neuen Daten von dem Datenort-Identifizierer 1261 empfangen und kann eine Differenz zwischen den neuen Daten Dneu von dem Host 1300 und alten Daten Dalt, die auf der Speichervorrichtung 1100 gespeichert sind, berechnen. Der Datendifferenzrechner 1262 kann dem Paritätsrechner 1263 eine Datendifferenz Ddif zwischen den neuen Daten Dneu und den alten Daten Dalt zur Verfügung stellen.
  • Der Paritätsrechner 1263 kann das Ortssignal LOC von neuen Daten empfangen und kann eine neue Parität Pneu unter Verwendung der Datendifferenz Ddif von dem Datendifferenzrechner 1262 und einer alten Parität Palt, die auf der Speichervorrichtung 1100 gespeichert ist, berechnen. Eine Operation des Paritätsrechners 1263 wird mit Bezug auf die 10 und 11 genauer beschrieben.
  • Eine Struktur und ein Funktionsprinzip des Neue-Parität-Generators 1260 können auf dem folgenden mathematischen Prinzip basieren. Es wird angenommen, dass Daten D1alt, D2alt, D3alt, D4alt und eine Parität Palt auf der Speichervorrichtung 1100 gespeichert werden.
  • Mit der Gleichung 1 kann eine alte Parität Palt durch Palt = D1alt + D2alt + D3alt + D4alt ausgedrückt werden.
  • Hierbei kann die alte Parität Palt verändert werden, falls D1alt und D2alt durch D1neu und D2neu ersetzt werden. Falls ein Teil von Daten, die auf der Speichervorrichtung 1100 gespeichert sind, verändert wird, kann ein herkömmliches Speichersystem alle Daten D1alt, D2alt, D3alt, D4alt von der Speichervorrichtung 1100 lesen, Daten verändern und eine neue Parität Pneu berechnen.
  • Mit der Gleichung 1 kann die neue Parität Pneu dargestellt werden, durch: Pneu = D1neu + D2neu + D3alt + D4alt.
  • Die neue Parität Pneu minus der alten Parität Palt entspricht (D1neu + D2neu + D3alt + D4alt) – (D1alt + D2alt + D3alt + D4alt).
  • Dann kann die neue Parität Pneu folgendermaßen dargestellt werden: Pneu = Palt + (D1neu + D2neu + D3alt + D4alt) – (D1alt + D2alt + D3alt + D4alt) Pneu = Palt + (D1neu + D2neu) – (D1alt + D2alt) Pneu = Palt + (D1neu – D1alt) + (D2neu – D2alt)
  • Wie anhand der vorstehenden Formeln zu verstehen, können Daten D3alt und D4alt, die nicht verändert werden, während einer arithmetischen Operation entfernt werden. Dies kann bedeuten, dass, wenn Daten, die auf der Speichervorrichtung 1100 gespeichert sind, teilweise geändert werden, Daten, die nicht geändert werden, für die Bestimmung einer neuen Parität für die Daten D1 bis D4 nicht notwendig sind.
  • Ein herkömmliches Speichersystem kann alle Daten, einschließlich der Daten D3alt und D4alt, die nicht verändert werden, lesen, um eine neue Parität zu berechnen. Obwohl eine Größe von ECC-Daten groß ist und eine Größe von Daten, die zu verändern sind, klein ist, kann das herkömmliche Speichersystem alle Daten lesen, um eine neue Parität zu erzeugen und aus diesem Grund können eine hohe Datenlesezeit und viel Leistung erforderlich sein.
  • Falls Daten, die auf der Speichervorrichtung 1100 gespeichert sind, teilweise gerändert werden, kann das Speichersystem 1000 gemäß einer Ausführungsform der erfinderischen Konzepte unter Verwendung von Daten, die durch den Neue-Parität-Generator 1260 von 6 teilweise geändert wurden, eine neue Parität erzeugen, ohne alle Daten auszulesen. Somit können eine Datenlesezeit und ein Leistungsverbrauch reduziert werden.
  • Anschließend wird eine Operation eines Neue-Parität-Generators von 6 mit Bezug auf die 7 und 11 ausführlicher beschrieben.
  • Mit Bezug auf 7 wird angenommen, dass vier alte Daten Dalt und eine alte Parität P auf einer Speichervorrichtung 1100 gespeichert werden. Alte Daten Dalt an Orten d1 bis d4 können 0, 0, 1 und 1 sein. Das heißt, D1alt ist 0, D2alt ist 0, D3alt ist 1 und D4alt ist 1. Somit kann Palt (D1alt + D2alt + D3alt + D4alt) durch eine XOR-Operation 0 sein.
  • Es wird angenommen, dass alte Daten D1alt und D2alt mit neuen Daten D1neu und D2neu verändert werden. Wie in 7 dargestellt, kann D1neu 0 und D2neu 1 sein. Ein Neue-Parität-Generator 1260 von 6 kann eine neue Parität Pneu ohne modifizierte Daten D3alt und D4alt erzeugen. Anschließend wird ein Verfahren zur Erhaltung einer neuen Parität Pneu ohne modifizierte Daten D3alt und D4alt beschrieben.
  • 8 zeigt ein Blockdiagramm, das einen Datendifferenzrechner von 6 schematisch darstellt. Mit Bezug auf 8 kann ein Datendifferenzrechner 1262 ein Ortssignal LOC neuer Daten empfangen, um eine Differenz zwischen neuen Daten Dneu und alten Daten Dalt zu berechnen. Eine Datendifferenz Ddif kann durch die folgende Gleichung 2 berechnet werden. Ddif = Dneu – Dalt = XOR(Dalt, Dneu) (2)
  • In der Gleichung 2 kann die Subtraktion eine XOR-Operation oder eine mod2-Operation sein. Alternativ kann die Subtraktion eine Operation sein, die einem nicht-binären Code oder einem nicht-linearen Code entspricht.
  • Der Datendifferenzrechner 1262 kann ein Ortssignal d1 empfangen, um eine Differenz D1dif zwischen neuen Daten D1neu und alten Daten D1alt zu berechnen. Anschließend kann der Datendifferenzrechner 1262 ein Ortssignal d2 empfangen, um eine Differenz D2dif zwischen neuen Daten D2neu und alten Daten D2alt zu berechnen. Hierbei kann die Datendifferenz D1dif für eine Differenz zwischen den neuen Daten D1neu und den alten Daten D1alt, welche an einem Ort d1 vorliegen, stehen. Alternativ kann der Datendifferenzrechner 1262 die Ortssignale d1 und d2 empfangen, um die Datendifferenzen D1dif und D2dif gleichzeitig zu berechnen. Die Datendifferenzen D1dif und D2dif können einem Paritätsrechner 1263 zur Verfügung gestellt werden.
  • 9 zeigt eine Tabelle zum Beschreiben einer Operation eines Datendifferenzrechners von 8. Wie vorstehend beschrieben wird angenommen, dass alte Daten D1alt und D2alt mit neuen Daten D1neu und D2neu verändert werden. Da D1neu und D1alt 0 sind, kann die Datendifferenz D1dif der Gleichung 2 0 sein. Da D2alt 0 ist und D2neu 1 ist, kann eine Datendifferenz D2dif 1 sein.
  • 10 zeigt ein Blockdiagramm, das einen Paritätsrechner von 6 schematisch darstellt. Mit Bezug auf 10 kann ein Paritätsrechner 1263 ein Ortssignal LOC von neuen Daten empfangen, um unter Verwendung einer Datendifferenz Ddif von einem Datendifferenzrechner 1262 und einer alten Parität Palt, die auf einer Speichervorrichtung 1100 gespeichert ist, eine neue Parität Pneu zu berechnen. Die neue Parität Pneu kann durch die folgende Gleichung 3 berechnet werden. Pneu = Palt + Pdif (3)
  • Im vorstehenden Beispiel kann Ddif eine Summe von D1dif und D2dif sein. D1dif kann eine Differenz zwischen D1neu und D1alt sein und D2dif kann eine Differenz zwischen D2neu und D2alt sein. Das heißt, die Gleichung 3 kann wie folgt dargestellt werden: Pneu = Palt + D1dif + D2dif = Palt + (D1neu – D1alt) + (D2neu – D2alt)
  • 11 zeigt eine Tabelle zum Beschreiben einer Operation eines Paritätsrechners von 10. Wie unter Verwendung von dem Beispiel von 9 berechnet, falls D1dif 0 ist und D2dif 1 ist, kann eine Gesamtdatendifferenz Ddif 1 sein. Da Palt 0 ist und Ddif 1 ist kann eine neue Parität Pneu 1 sein.
  • Mit Bezug auf die Gleichung 3 kann eine neue Parität Pneu durch eine Funktion der alten Parität Palt und eine veränderte Datendifferenz Ddif ausgedrückt werden. Hierbei muss eine Funktion zum Erhalten der neuen Parität Pneu nicht mit unmodifizierten Daten assoziiert werden (zum Beispiel D3alt und D4alt). Dies kann auf einen nicht-binären Code oder einen nicht-linearen Code ausgeweitet werden.
  • Da ein Speichersystem gemäß einer Ausführungsform der erfinderischen Konzepte eine neue Parität unter Verwendung von ausschließlich veränderten Daten berechnet, können eine Datenlesezeit und ein Leistungsverbrauch reduziert werden. Genauer gesagt kann das Speichersystem gemäß einer Ausführungsform der erfinderischen Konzepte vorteilhaft gegenüber dem Fall sein, bei welchem nur wenige Daten bzw. eine kleine Größe von Daten verändert werden.
  • 12 zeigt ein Flussdiagramm, das ein Verfahren zum Erzeugen einer neuen Parität eines Speichersystems gemäß einer Ausführungsform der erfinderischen Konzepte darstellt.
  • Bei der Operation S110 kann ein Speichercontroller 1200 (siehe 1) alte Daten Dalt und eine alte Parität Palt von einer Speichervorrichtung 1100 (siehe 1) lesen. Bei der Operation S120 kann der Speichercontroller 1200 neue Daten Dneu von einem Host 1300 (siehe 1) empfangen. Bei einer Operation S130 kann der Speichercontroller 1200 eine Differenz Ddif zwischen den alten Daten Dalt und den neuen Daten Dneu berechnen. Bei einer Operation S140 kann der Speichercontroller 1200 eine neue Parität Pneu unter Verwendung der alten Parität Palt und der Differenz Ddif berechnen.
  • 13 zeigt eine Tabelle, die ein Beispiel einer Paritätsüberprüfungsmatrix darstellt. Mit Bezug auf 13 kann eine Codelänge von Daten, die auf einer Speichervorrichtung 1100 (siehe 1) gespeichert sind, 72 sein und eine Datenlänge davon kann 64 sein. 13 stellt Datenorte d0 bis d55 dar, welche jeweils mit Daten D0 bis D55 korrespondieren. In 13 ist ein Beispiel einer Paritätsüberprüfungsmatrix einer (72, 64) Einzelfehler-Korrektur-Doppelfehler-Erkennung (SEC-DED) dargestellt. Hierbei kann die Einzelfehler-Korrektur-Doppelfehler-Erkennung bedeuten, dass ein Fehler korrigiert wird und zwei Fehler erkannt werden.
  • In 13 kann eine Reihe bzw. Zeile durch eine Paritätsüberprüfungsgleichung ausgedrückt werden. Eine Parität kann durch Additionscodebits an Orten erzeugt werden, die in einer Reihe '1' entsprechen. Zum Beispiel kann eine Parität P0 von einer ersten Reihe R1 durch die folgende Gleichung 4 berechnet werden. P0 = D0 + D1 + D2 + ... + D56 + D57 + D58 (4).
  • Paritäten P1 bis P7 von zweiten bis achten Reihen R2 bis R8 können auf die gleiche Weise wie bei der Gleichung 4 berechnet werden. Die folgende Tabelle 1 stellt Paritäten der Reihen R1 bis R8 dar. [Tabelle 1]
    P0 D0 + D1 + D2 + D3 + ... + D53 + D56 + D57 + D58
    P1 D0 + D1 + D2 + D8 + ... + D58 + D59 + D60 + D61
    P2 D3 + D4 + D5 + D8 + ... + D51 + D59 + D62 + D63
    P3 D3 + D6 + D7 + D11 + ... + D47 + D48 + D51 + D59
    P4 D3 + D11 + D14 + D15 + ... + D52 + D55 + D56 + D59
    P5 D0 + D3 + D11 + D19 + ... + D54 + D57 + D60 + D63
    P6 D1 + D4 + D7 + D8 + ... + D55 + D57 + D57 + D60 + D61
    P7 D2 + D5 + D6 + D9 + ... + D60 + D61 + D62 + D63
  • Ein Speichersystem 1000 (siehe 1) gemäß einer Ausführungsform der erfinderischen Konzepte kann neue Paritäten auf einer Mehrzahl von Reihen erzeugen. Wie in 13 dargestellt können neue Paritäten auf den ersten bis achten Reihen R1 bis R8 mit einer vorbestimmten Größe erzeugt werden. In diesem Fall kann, wie vorstehend beschrieben, eine neue Parität unter Verwendung von teilweise geänderten Daten, das heißt, nicht allen Daten, erzeugt werden, falls Daten teilweise geändert werden.
  • 14 zeigt eine Tabelle, die einen Fall darstellt, bei welchem in einer Paritätsüberprüfungsmatrix von 13 zuerst ein Byte von Daten verändert wird. In 14 können unmodifizierte Daten, d. h. Daten, die nicht zum Berechnen einer neuen Parität verwendet werden, durch X gekennzeichnet werden.
  • Falls zuerst ein Byte von Daten, die auf einer Speichervorrichtung 1100 gespeichert sind, verändert wird, kann ein herkömmliches Speichersystem alle Daten von 13 lesen, um eine neue Parität zu erzeugen. Ein Speichersystem 1000 gemäß einer Ausführungsform der erfinderischen Konzepte kann jedoch zuerst 1-Byte-Daten und eine 1-Byte-Parität lesen, um eine neue Parität zu erzeugen. Das heißt, mit Bezug auf die Gleichung 3 kann das Speichersystem 1000 der erfinderischen Konzepte eine Differenz zwischen einem Byte von neuen Daten Dneu und einem Byte von alten Daten Dalt berechnen und kann eine neue Parität Pneu unter Verwendung der Differenz Ddif und einer alten Parität Palt erzeugen. Da die neue Parität unter Verwendung von ausschließlich veränderten Daten berechnet wird, können eine Datenlesezeit und ein Leistungsverbrauch reduziert werden.
  • Wie in 14 dargestellt, falls eine neue Parität unter Verwendung von Teildaten (zum Beispiel den ersten 1-Byte-Daten) der Speichervorrichtung 1100 berechnet wird, kann eine ECC-Verschlüsselung bei verschiedenen Verfahren durchgeführt werden. Zum Beispiel kann eine ECC-Verschlüsselung unter Verwendung von ausschließlich modifizierten Daten durchgeführt werden. Das heißt, eine neue Parität Pneu kann unter Verwendung einer Differenz Ddif von veränderten Daten und einer alten Parität Palt berechnet werden. Alternativ können Daten, die auf der Speichervorrichtung 1100 gespeichert sind, in Bereiche unterteilt werden, die eine vorbestimmte Größe haben, und eine Operation zum Erzeugen einer neuen Parität kann mit Bezug auf die jeweiligen Bereiche durchgeführt werden.
  • 15 zeigt eine Tabelle, die ein Beispiel darstellt, in welchem eine Operation zum Erzeugen einer neuen Parität bei einer Paritätsüberprüfungsmatrix von 13 bei jedem Bereich durchgeführt wird. Um eine Operation zum Erzeugen einer neuen Parität bei jedem Bereich durchzuführen, kann ein ECC-Encoder 1270 korrespondierend zu den Bereichen Neue-Parität-Generatoren enthalten.
  • Falls ein erster Bereich von Daten verändert wird, kann eine neue Parität P0neu wie folgt dargestellt werden: P0alt + D0dif + D1dif + D2dif + D3dif + D4dif + D5dif + D6dif + D7dif.
  • Hierbei kann D1dif = (D1neu – D1alt) sein. Ein Neue-Parität-Generator von jedem Bereich kann gemäß der vorstehenden Gleichung P0neu gekennzeichnet werden. Wie in 15 dargestellt, kann der ECC-Encoder 1270 eine Byte-Maskierungsoperation durchführen, falls eine Operation zum Erzeugen einer Parität für jeden Bereich über das Bytes durchgeführt wird.
  • Wie vorstehend beschrieben, können eine Datenlesezeit und ein Leistungsverbrauch reduziert werden, da eine neue Parität nur unter Verwendung von veränderten Daten erzeugt wird. Außerdem kann die Operation zum Erzeugen der neuen Parität bei jedem Bereich durchgeführt werden. Genauer gesagt kann ein Speichersystem gemäß einer Ausführungsform der erfinderischen Konzepte vorteilhaft gegenüber dem Fall sein, bei welchem Daten nur um eine kleine Einheit verändert werden.
  • III. TEILDATENÄNDERUNGSVERFAHREN EINSCHLIESSLICH FEHLERERKENNUNG UND -KORREKTUR
  • Rückkehrend zu Gleichung 4, kann eine neue Parität P0neu wie folgt dargestellt werden, falls ein erster Bereich von Daten verändert wird: P0alt + D0dif + D1dif + D2dif + D3dif + D4dif + D5dif + D6dif + D7dif.
  • Falls der erste Bereich von Daten, die zu verändern sind, fehlerhaft ist, kann auch die neue Parität P0neu fehlerhaft sein.
  • Falls zu verändernde Daten fehlerhaft sind, kann ein Fehler einer neuen Parität durch frühzeitiges Erkennen und Korrigieren eines Fehlers verhindert werden. Anschließend werden Daten in jedem Bereich als Teildaten bezeichnet.
  • 16 und 17 zeigen Tabellen, die eine Datenstruktur für eine Fehlererkennung oder -korrektur von Teildaten darstellen. 16 zeigt eine Datenstruktur für eine Fehlererkennung von Teildaten. 17 zeigt eine Datenstruktur für eine Fehlerkorrektur von Teildaten.
  • Mit Bezug auf 16 können die gesamten Daten in n-Teildaten geteilt werden. Bei einer Operation zum Verschlüsseln von Daten kann eine Parität zur Fehlererkennung von jeden Teildaten und eine Parität zur Fehlerkorrektur der gesamten Daten erzeugt werden. Mit Bezug auf 17 können eine Parität zur Fehlerkorrektur von jeden Teildaten und eine Parität zur Fehlerkorrektur der gesamten Daten erzeugt werden.
  • 18 und 19 zeigen konzeptionelle Diagramme, die eine Reihenfolge bei einer Teildatenverschlüsselung und bei einer Verschlüsselung der gesamten Daten darstellen. 18 stellt ein Verfahren dar, bei welchem zuerst eine Teildatenverschlüsselung durchgeführt wird und anschließend eine Verschlüsselung der gesamten Daten.
  • Mit Bezug auf 18 können die gesamten Daten 110 in n-Teildatenbereiche Teil-DATA1 bis Teil-DATAn (n ist eine natürliche Zahl) geteilt werden. Eine Operation zum Verschlüsseln von Teildaten kann mit Bezug auf jede der Teildaten durchgeführt werden. Hierbei kann bei der Operation zum Verschlüsseln der Teildaten eine Parität zur Fehlererkennung oder -korrektur erzeugt werden.
  • Die gesamten Daten 110, die aus n-Teildatenbereichen Teil-DATA1 bis Teil-DATAn bestehen, können durch eine Operation zum Verschlüsseln von Teildaten für EDC oder ECC gesamte teilverschlüsselte Daten 120 werden. Die gesamten teilverschlüsselten Daten 120 können aus n teilkodierten Daten Teilverschlüsselte-DATA1 bis Teilverschlüsselte-DATAn bestehen, welche jeweils Teildaten und eine Parität enthalten.
  • Erste Teildaten Teil-DATA1 können zum Beispiel erste teilkodierte Daten Teilverschlüsselte-DATA1 durch eine Operation zum Verschlüsseln von Teildaten für EDC oder ECC werden. Die ersten teilkodierten Daten Teilverschlüsselte-DATA1 können aus den ersten Teildaten Teil-DATA1 und einer ersten Parität P1 bestehen. Entsprechend können n-te teilkodierte Daten Teilverschlüsselte-DATAn aus n-ten Teildaten Teil-DATAn und einer n-ten Parität Pn bestehen.
  • Die gesamten teilverschlüsselten Daten 120 können durch eine Operation zum Verschlüsseln der gesamten Daten für ECC abschließend kodierte Daten 130 werden. Die abschließend kodierten Daten 130 können aus gesamten teilkodierten Daten 131 und einer Parität 132 bestehen. Hierbei kann die Parität 132 eine Parität auf den teilkodierten gesamten Daten 131 sein.
  • 19 stellt ein Verfahren dar, bei welchem eine Verschlüsselung der gesamten Daten durchgeführt wird und anschließend eine Verschlüsselung der Teildaten durchgeführt wird. Mit Bezug auf 19 können die gesamten Daten 210 durch eine Operation zum Verschlüsseln der gesamten Daten für ECC komplett verschlüsselte Daten 220 werden.
  • Die komplett verschlüsselten Daten 220 können aus gesamten Daten 221 und einer Parität 222 der gesamten Daten 221 bestehen. In 19 können gestrichelte Linien 211 und 221 die gesamten Daten darstellen, bevor sie in Teildatenbereiche unterteilt werden. Die Parität 222 kann verwendet werden, um einen Fehler der gesamten Daten zu korrigieren.
  • Mit Bezug auf 19 können die gesamten Daten 221 in erste bis n-te Teildatenbereiche Teil-DATA1 bis Teil-DATAn unterteilt werden. Eine Operation zum Verschlüsseln der Teildaten für EDC oder ECC kann mit Bezug auf jede der Teildaten ausgeführt werden. Hierbei kann eine Parität zur Fehlererkennung oder -korrektur bei einer Operation zum Verschlüsseln von Teildaten erzeugt werden.
  • Die gesamten Daten 221, die aus n-Teildaten Teil-DATA1 bis Teil-DATAn bestehen, können durch eine Operation zum Verschlüsseln von Teildaten für EDC oder ECC teilverschlüsselte Daten werden. Erste Teildaten Teil-DATA1 können zum Beispiel erste teilkodierte Daten Teilverschlüsselte-DATA1 231 werden. Die ersten teilkodierten Daten Teilverschlüsselte-DATA1 231 können aus den ersten Teildaten Teil-DATA1 und einer ersten Parität P1 bestehen.
  • Eine Parität 222 der gesamten Daten kann durch eine Operation zum Verschlüsseln der gesamten Daten für EDC oder ECC eine verschlüsselte Parität werden. Hierbei kann die verschlüsselte Parität 232 durch Verschlüsseln der Parität 222 der gesamten Daten erzeugt werden.
  • 20 und 21 zeigen Flussdiagramme, die ein Verfahren zum Verändern von Teildaten darstellen, bei welchem eine Operation zur Fehlererkennung oder -korrektur eines Speichersystems gemäß einer Ausführungsform der erfinderischen Konzepte ausgeführt wird. 20 stellt eine Operation zum Verschlüsseln von Teildaten für EDC dar. 21 stellt eine Operation zum Verschlüsseln von Teildaten für ECC dar.
  • Mit Bezug auf 20 kann bei einer Operation S210 ein Host 1300 (siehe 1) eine Veränderung von Teildaten bei einem Speichercontroller 1200 (siehe 1) anfordern.
  • Bei Operation S220 kann der Speichercontroller 1200 unter Verwendung von EDC für Teildaten, die von einer Speichervorrichtung 1100 (siehe 1) ausgelesen werden, einen Fehler überprüfen. Hierbei können die Teildaten, die von der Speichervorrichtung 1100 ausgelesen werden, die alten Daten Dalt sein. Alte Daten Dalt und eine alte Parität Palt für EDC können auf der Speichervorrichtung 1200 gespeichert werden.
  • Bei der Operation S230 kann der Speichercontroller 1200 bestimmen, ob die Teildaten, die von der Speichervorrichtung 1100 gelesen wurden, fehlerhaft sind. Falls dem so ist, schreitet das Verfahren zur Operation S240 voran, bei welcher die gesamten Daten gelesen werden. Bei der Operation S245 kann ein Datenfehler unter Verwendung von ECC für die gesamten Daten korrigiert werden.
  • Falls bei der Operation S240 kein Fehler erkannt wird oder bei der Operation 245 ein Fehler korrigiert wird, kann bei der Operation 250 der Speichercontroller 1200 Teildaten lesen, um eine neue Parität Pneu zu erzeugen. Das heißt, wie mit Bezug auf 12 beschrieben, kann die neue Parität unter Verwendung einer Datendifferenz Ddif zwischen neuen Daten Dneu und alten Daten Dalt und einer alten Parität Palt erzeugt werden.
  • Bei der Operation S260 können die neuen Teildaten und die neue Parität Pneu auf der Speichervorrichtung 1100 gespeichert werden.
  • Mit Bezug auf 21 kann bei der Operation S310 eine Veränderung der Teildaten angefragt werden.
  • Bei der Operation S320 kann ein Fehler unter Verwendung von ECC für Teildaten, die aus der Speichervorrichtung 1100 gelesen werden, überprüft werden. Alte Daten Palt und eine alte Parität Palt für ECC können auf der Speichervorrichtung 1100 gespeichert werden.
  • Bei der Operation S330 kann der Speichercontroller 1200 bestimmen, ob die Teildaten, die von der Speichervorrichtung 1100 gelesen wurden, fehlerhaft sind. Falls dem so ist, schreitet das Verfahren zur Operation S340 voran, bei welcher der Speichercontroller 1200 einen Datenfehler unter Verwendung von ECC für Teildaten korrigiert.
  • Falls bei der Operation S330 ein Fehler nicht erkannt wird, oder bei der Operation S340 ein Fehler korrigiert wird, kann bei einer Operation S350 der Speichercontroller 1200 Teildaten lesen, um eine neue Parität Pneu zu erzeugen. Bei einer Operation S360 können die neuen Teildaten und die neue Parität Pneu auf der Speichervorrichtung 1100 gespeichert werden.
  • Wie vorstehend beschrieben, können eine Datenlesezeit und ein Leistungsverbrauch reduziert werden, da eine neue Parität nur unter Verwendung von veränderten Daten erzeugt wird. In beispielhaften Ausführungsformen kann eine Operation zum Erzeugen einer neuen Parität bei jedem Bereich ausgeführt werden. Falls Teildaten, die zu verändern sind, fehlerhaft sind, kann ein Fehler einer neuen Parität durch frühzeitiges Erkennen und Korrigieren eines Fehlers verhindert werden.
  • IV. ANWENDUNGEN
  • 22 zeigt ein Blockdiagramm, das eine Anwendung eines Speichersystems von 1 schematisch darstellt. Mit Bezug auf 22 kann ein Speichersystem 2000 eine Speichervorrichtung 2100 und einen Speichercontroller 2200 enthalten, welche gemäß zumindest einer beispielhaften Ausführungsform die vorstehend beschriebene Struktur und entsprechende Operationen mit Bezug auf die Speichervorrichtung 1100 und den Speichercontroller 1200 aufweist.
  • Die Speichervorrichtung 2100 kann eine Mehrzahl von Speicherchips enthalten. Die Speicherchips können in eine Mehrzahl von Gruppen unterteilt sein. Speicherchips in jeder Gruppe können konfiguriert sein, mit dem Speichercontroller 2200 über einen gemeinsamen Kanal in Verbindung zu stehen. In 22 ist ein Beispiel dargestellt, in welchem eine Mehrzahl von Speicherchips mit einem Speichercontroller 2200 über eine Mehrzahl von Kanälen CH1 bis CHk in Verbindung stehen.
  • 23 zeigt ein Blockdiagramm, das eine Speicherkarte, die durch ein Speichersystem gemäß einer Ausführungsform der erfinderischen Konzepte implementiert ist, schematisch darstellt. Mit Bezug auf 23 kann eine Speicherkarte 3000 eine Speichervorrichtung 3100, einen Speichercontroller 3200 und einen Verbinder 3300 enthalten. Gemäß zumindest einer beispielhaften Ausführungsform können die Speichervorrichtung 3100 und der Speichercontroller 3200 jeweils die Struktur und die vorstehend beschriebenen Operationen mit Bezug auf die Speichervorrichtung 1100 und den Speichercontroller 1200 aufweisen.
  • Der Verbinder 3300 kann die Speicherkarte 300 mit einem Host elektrisch verbinden. Die Speicherkarte 3000 kann Speicherkarten, wie eine PC-Karte (PCMCIA: Personal Computer Memory Card International Association), eine Compakt-Flash(CF)-Karte, eine Smart-Medienkarte (SM, SMC), einen Memorystick, eine Multimediakarte (MMC, RS-MMC, MMCmicro), eine SD-Karte (SD, miniSD, microSD, SDHC), eine universelle Flash-Speichervorrichtung (UFS) und so weiter enthalten.
  • 24 zeigt ein Blockdiagramm, das ein Festkörperlaufwerk, das durch ein Speichersystem gemäß einer Ausführungsform der erfinderischen Konzepte implementiert ist, schematisch darstellt. Mit Bezug auf 24 kann ein Festkörperlaufwerk 4000 eine Mehrzahl von Speichervorrichtungen 4100, einen Speichercontroller 4200 und einen Verbinder 4300 enthalten. Der Verbinder 4300 kann das Festkörperlaufwerk 4000 elektrisch mit einem Host verbinden. Gemäß zumindest einer beispielhaften Ausführungsform, kann jede der Speichervorrichtungen 4100 die Struktur und die vorstehend beschriebenen Operationen mit Bezug auf die Speichervorrichtung 1100 aufweisen und der Controller 4200 kann die Struktur und vorstehend beschriebenen Operationen mit Bezug auf den Speichercontroller 1200 aufweisen.
  • 25 zeigt ein Blockdiagramm, das ein Computersystem, bei welchem ein Speichersystem gemäß einer Ausführungsform der erfinderischen Konzepte angewandt wird, schematisch darstellt. Mit Bezug auf 25 kann ein Computersystem 5000 einen Bus 5100, einen Prozessor 5200, ein Speichersystem 5300, ein Modem 5400 und eine Nutzerschnittstelle 5500 enthalten.
  • Der Bus 5100 kann unter den Komponenten des Computersystems 5000 einen Kanal vorsehen. Der Prozessor 5200 kann die gesamte Operation des Computersystems 5000 steuern und kann eine Logikoperation durchführen. Das Speichersystem 5300 kann ein Speichersystem 1000 oder 2000 gemäß einer Ausführungsform der erfinderischen Konzepte enthalten.
  • Das Speichersystem 5300 kann als Arbeitsspeicher oder Speicher des Computersystems 5000 verwendet werden. Der Arbeitsspeicher kann ein Speicherplatz sein, der für den Prozessor 5200 verwendet wird, um das Computersystem 5000 zu steuern. Der Speicher kann ein Speicherplatz sein, der für das Computersystem 5000 verwendet wird, um Daten auf lange Zeit zu behalten bzw. zu speichern.
  • Wenn das Speichersystem 5300 als Arbeitsspeicher verwendet wird, kann das Computersystem 5000 ferner einen separaten Speicher aufweisen. Wenn das Speichersystem 5300 als Speicher verwendet wird, kann das Computersystem 5000 ferner einen separaten Arbeitsspeicher aufweisen. Das Modem 5400 kann mit einer externen Vorrichtung über Kabel oder kabellos kommunizieren.
  • Gemäß zumindest einer beispielhaften Ausführungsform kann das Speichersystem 5300 eine Speichervorrichtung enthalten, welche die Struktur und die vorstehend beschriebenen Operationen mit Bezug auf die Speichervorrichtung 1100 aufweist, und das Speichersystem 5300 kann einen Speichercontroller enthalten, welcher die Struktur und die vorstehend beschriebenen Operationen mit Bezug auf den Speichercontroller 1200 aufweist.
  • Die Nutzerschnittstelle 5500 kann Nutzerschnittstellen wie eine Kamera, eine Tastatur, eine Maus, ein Mikrofon, ein Berührungspanel, ein Touchpad, einen Knopf, einen Sensor und so weiter enthalten und die Nutzerschnittstelle 5500 kann ferner Nutzerausgabeschnittstellen wie einen Bildschirm, Lautsprecher, eine Lampe, einen Motor und so weiter enthalten.
  • Das Computersystem 5000 kann eine mobile Multimediavorrichtung wie ein Smartphone, ein Smartpad oder dergleichen sein, oder eine Multimediavorrichtung wie ein Notebook, ein Computer, ein Smart-TV, ein PC, ein Smart-Monitor oder dergleichen sein.
  • Während die erfinderischen Konzepte mit Bezug auf beispielhafte Ausführungsformen beschrieben worden sind, ist es für einen Fachmann klar, dass verschiedene Veränderungen und Modifikationen vorgenommen werden können, ohne dabei vom Geiste und Unfang der vorliegenden Erfindung abzuweichen. Daher ist zu verstehen, dass die vorstehenden Ausführungsformen nicht beschränkend sondern rein illustrativ sind.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • KR 10-2012-0129548 [0001]
    • KR 10-2012-0129549 [0001]

Claims (30)

  1. Teildatenänderungsverfahren eines Speichercontrollers (1200; 2200; 3200; 4200), aufweisend: Empfangen einer Anfrage zum Ändern von Teildaten von einem Host (1300); Erfassen eines Fehlers der alten Daten (Dalt), wobei die alten Daten (Dalt) Teildaten sind, die von einer Speichervorrichtung (1100; 2100; 3100; 4100) gelesen werden; Berechnen einer Datendifferenz (Ddif) zwischen neuen Daten (Dneu), die von dem Host (1300) bereitgestellt werden, und den alten Daten (Dalt); Berechnen einer neuen Parität (Pneu) unter Verwendung der Datendifferenz (Ddif) und einer alten Parität (Palt), die von der Speichervorrichtung (1100; 2100; 3100; 4100) gelesen wurde; Speichern der neuen Daten (Dneu) und der neuen Parität (Pneu) auf der Speichervorrichtung (1100; 2100; 3100; 4100).
  2. Teildatenänderungsverfahren nach Anspruch 1, ferner aufweisend: Lesen der gesamten Daten (110; 210) von der Speichervorrichtung (1100; 2100; 3100; 4100), wenn die alten Daten (Dalt) fehlerhaft sind; und Korrigieren eines Fehlers der alten Daten (Dalt) unter Verwendung eines Fehlerkorrekturcodes (ECC), wobei der Fehler der alten Daten (Dalt) unter Verwendung eines Fehlererkennungscodes (EDC) erfasst wird, und das Berechnen einer Datendifferenz (Ddif) durchgeführt wird, falls die alten Daten (Dalt) nicht fehlerhaft sind.
  3. Teildatenänderungsverfahren nach Anspruch 2, wobei, nachdem ein Fehler der alten Daten (Dalt) korrigiert wurde, eine Differenz zwischen neuen Daten (Dneu), die von dem Host (1300) bereit gestellt werden, und den fehlerkorrigierten alten Daten (Dalt) berechnet wird und eine neue Parität (Pneu) unter Verwendung der Datendifferenz (Ddif) und einer alten Parität (Palt), die von der Speichervorrichtung (1100; 2100; 3100; 4100) gelesen wurde, berechnet wird.
  4. Teildatenänderungsverfahren nach Anspruch 3, ferner aufweisend: Durchführen einer Teildatenverschlüsselungsoperation des Teilens der gesamten Daten (110; 210), die auf der Speichervorrichtung (1100; 2100; 3100; 4100) zu speichern sind, in eine Mehrzahl von Teildaten (120; 220), des Erzeugens einer Parität (P1–Pn) für einen Fehlererkennungscode (EDC) der jeweiligen Teildaten, und des Erzeugens von verschlüsselten Teildaten (DATA1–DATAn).
  5. Teildatenänderungsverfahren nach Anspruch 4, ferner aufweisend: Durchführen einer Operation zum Verschlüsseln der gesamten Daten (110; 210) des Erzeugens einer Parität (P1–Pn) für einen Fehlerkorrekturcode (ECC) der gesamten verschlüsselten Teildaten, die der Mehrzahl der Teildaten (120; 220) nach der Teildatenverschlüsselungsoperation entsprechen.
  6. Teildatenänderungsverfahren nach Anspruch 2, ferner aufweisend: Durchführen einer Operation zum Verschlüsseln der gesamten Daten (110; 210) einschließlich Erzeugen einer Parität (P1–Pn) für einen Fehlerkorrekturcode (ECC) der gesamten auf der Speichervorrichtung (1100; 2100; 3100; 4100) zu speichernden Daten (110; 210).
  7. Teildatenänderungsverfahren nach Anspruch 6, ferner aufweisend: nachdem die Operation zum Verschlüsseln der gesamten Daten (110; 210) durchgeführt wurde, Teilen der gesamten Daten (110; 210) in eine Mehrzahl von Teildaten (120; 220), wobei die gesamten Daten (110; 210) Daten sind, die auf der Speichervorrichtung (1100; 2100; 3100; 4100) zu speichern sind; und Erzeugen einer Parität (P1–Pn) für einen Fehlererkennungscode (EDC) der gesamten Daten (110; 210).
  8. Teildatenänderungsverfahren nach Anspruch 7, ferner aufweisend: Durchführen einer Teildatenverschlüsselungsoperation des Erzeugens einer Parität eines Fehlererkennungscodes (EDC) von jeweiligen einer Mehrzahl von Teildaten (120; 220) und Erzeugen von verschlüsselten Teildaten.
  9. Teildatenänderungsverfahren nach Anspruch 8, wobei bei der Teildatenverschlüsselungsoperation eine verschlüsselte Parität (232) der gesamten Daten (210), die bei der Operation zum Verschlüsseln der gesamten Daten (210) erzeugt wurden, erzeugt wird.
  10. Teildatenänderungsverfahren nach Anspruch 1, ferner aufweisend: falls die alten Daten (Dalt) fehlerhaft sind, Korrigieren des Fehlers der alten Daten (Dalt), wobei der Fehler der alten Daten (Dalt) unter Verwendung eines Fehlerkorrekturcodes (ECC) erfasst wird, und das Berechnen einer Datendifferenz (Ddif) zwischen neuen Daten (Dneu), die vom Host (1300) bereit gestellt wurden, und den fehlerkorrigierten alten Daten (Dalt) durchgeführt wird.
  11. Teildatenänderungsverfahren nach Anspruch 10, ferner aufweisend: Speichern der neuen Daten (Dneu) und der neuen Parität (Pneu) auf der Speichervorrichtung (1100; 2100; 3100; 4100).
  12. Teildatenänderungsverfahren nach Anspruch 10, ferner aufweisend: Durchführen einer Teildatenverschlüsselungsoperation des Teilens der gesamten Daten (110; 210), die auf der Speichervorrichtung (1100; 2100; 3100; 4100) zu speichern sind, in eine Mehrzahl von Teildaten (120; 220), des Erzeugens einer Parität (P1–Pn) für einen Fehlerkorrekturcode (ECC) von jeweiligen der Mehrzahl von Teildaten (120; 220) und des Erzeugens von verschlüsselten Teildaten; und Durchführen einer Operation zum Verschlüsseln der gesamten Daten (110; 210) des Erzeugens einer Parität für einen Fehlerkorrekturcode (ECC) aller verschlüsselten Teildaten, die der Mehrzahl der Teildaten (120; 220) nach der Teildatenverschlüsselungsoperation entsprechen.
  13. Teildatenänderungsverfahren nach Anspruch 10, ferner aufweisend: Durchführen einer Operation zum Verschlüsseln der gesamten Daten (110; 210) des Erzeugens einer Parität (P1–Pn) für einen Fehlerkorrekturcode (ECC) der gesamten Daten (110; 210), die auf der Speichervorrichtung (1100; 2100; 3100; 4100) zu speichern sind; und nachdem die Operation zum Verschlüsseln der gesamten Daten (110; 210) durchgeführt wurde, Teilen der gesamten Daten (110; 210) in eine Mehrzahl von Teildaten (120; 220) und Erzeugen einer Parität (P1–Pn) für einen Fehlerkorrekturcode (ECC) der gesamten Daten (110; 210).
  14. Teildatenänderungsverfahren nach Anspruch 13, ferner aufweisend: Durchführen einer Teildatenverschlüsselungsoperation des Erzeugens einer Parität (P1–Pn) eines Fehlerkorrekturcodes (ECC) von jeden der Mehrzahl von Teildaten (120; 220) und Erzeugen von verschlüsselten Teildaten.
  15. Teildatenänderungsverfahren nach Anspruch 14, wobei bei der Teildatenverschlüsselungsoperation eine verschlüsselte Parität (232) der gesamten Daten (210), die bei der Operation zum Verschlüsseln der gesamten Daten (210) erzeugt wurde, erzeugt wird.
  16. Teildatenänderungsverfahren nach Anspruch 10, ferner aufweisend: falls die Teildaten, die von der Speichervorrichtung (1100; 2100; 3100; 4100) gelesen wurden, nicht fehlerhaft sind, Berechnen einer Datendifferenz (Ddif) zwischen neuen Daten (Dneu), die von dem Host (1300) bereitgestellt wurden, und den alten Daten (Dalt), und Berechnen einer neuen Parität (Pneu) unter Verwendung der Datendifferenz (Ddif) und einer alten Parität (Palt), die von der Speichervorrichtung (1100; 2100; 3100; 4100) gelesen wurde.
  17. Teildatenänderungsverfahren nach Anspruch 10, wobei die Speichervorrichtung (1100; 2100; 3100; 4100) eine flüchtige Speichervorrichtung ist.
  18. Teildatenänderungsverfahren nach Anspruch 10, wobei die Speichervorrichtung (1100; 2100; 3100; 4100) eine nichtflüchtige Speichervorrichtung ist.
  19. Speichercontroller (1200; 2200; 3200; 4200) zum Erzeugen einer neuen Parität (Pneu), wenn Teildaten einer Speichervorrichtung (1100; 2100; 3100; 4100) verändert werden, aufweisend: einen Datenort-Identifizierer (1261), der konfiguriert ist, einen Ort der veränderten Teildaten zu identifizieren; einen Datendifferenzrechner (1262), der konfiguriert ist, Ortsinformationen (LOC) der veränderten Teildaten von dem Datenort-Identifizierer (1261) zu empfangen und eine Datendifferenz (Ddif) zwischen neuen Daten (Dneu), die von einem Host (1300) eingegeben wurden, und alten Daten (Dalt), die von der Speichervorrichtung (1100; 2100; 3100; 4100) eingegeben wurden, zu berechnen; und einen Paritätsrechner (1263), der konfiguriert ist, eine neue Parität (Pneu) unter Verwendung einer alten Parität (Palt), die auf der Speichervorrichtung (1100; 2100; 3100; 4100) gespeichert ist, und der Datendifferenz (Ddif) zu berechnen.
  20. Speichercontroller (1200; 2200; 3200; 4200) nach Anspruch 19, wobei der Datenort-Identifizierer (1261), der Datendifferenzrechner (1262) und der Paritätsrechner (1263) in einem Neue-Paritäts-Generator (1260) enthalten sind.
  21. Speichercontroller (1200; 2200; 3200; 4200) nach Anspruch 19, wobei der Datendifferenzrechner (1262) konfiguriert ist, unmodifizierte Daten von Daten, die auf der Speichervorrichtung (1100; 2100; 3100; 4100) gespeichert sind, derart zu bearbeiten, dass sie auf 0 eingestellt werden, und eine Datendifferenz (Ddif) zwischen den neuen Daten (Dneu) und den alten Daten (Dalt) zu berechnen.
  22. Speichercontroller (1200; 2200; 3200; 4200) nach Anspruch 19, wobei der Datendifferenzrechner (1262) konfiguriert ist, die veränderten Teildaten in eine Mehrzahl von Bereichen zu unterteilen und eine Datendifferenz (Ddif) zwischen neuen Daten (Dneu) und alten Daten (Dalt) mit Bezug auf jeden Bereich zu berechnen.
  23. Speichercontroller (1200; 2200; 3200; 4200) nach Anspruch 19, wobei der Datendifferenzrechner (1262) konfiguriert ist, eine Datendifferenz (Ddif) zwischen den neuen Daten (Dneu) und den alten Daten (Dalt) unter Verwendung einer XOR-Operation zu berechnen.
  24. Speichersystem, aufweisend: eine Speichervorrichtung (1100; 2100; 3100; 4100), die konfiguriert ist, Daten (DATA, DATA_C) und eine Parität zu speichern; einen Host (1300), der konfiguriert ist, neue Daten (Dneu) zum Ändern von Teildaten, die auf der Speichervorrichtung (1100; 2100; 3100; 4100) gespeichert sind, und Ortsinformation (LOC) bereit zu stellen; und einen Speichercontroller (1200; 2200; 3200; 4200), der konfiguriert ist, die neuen Daten (Dneu) und die Ortsinformation (LOC) von dem Host (1300) zu empfangen, um eine Datendifferenz (Ddif) zwischen den neuen Daten (Dneu), die von dem Host (1300) bereit gestellt sind, und alten Daten (Dalt), die von der Speichervorrichtung (1100; 2100; 3100; 4100) eingegeben wurden, zu berechnen, und um die neue Parität (Pneu) unter Verwendung einer alten Parität (Palt), die auf der Speichervorrichtung (1100; 2100; 3100; 4100) gespeichert ist, und der Datendifferenz (Ddif) zu erzeugen.
  25. Speichersystem nach Anspruch 24, wobei der Speichercontroller (1200; 2200; 3200; 4200) aufweist: einen Datenort-Identifizierer (1261), der konfiguriert ist, einen Ort der veränderten Teildaten zu identifizieren; einen Datendifferenzrechner (1262), der konfiguriert ist, Ortsinformationen (LOC) der veränderten Teildaten von dem Datenort-Identifizierer (1261) zu empfangen und die Datendifferenz (Ddif) zwischen den neuen Daten (Dneu) und den alten Daten (Dalt) zu berechnen; und einen Paritätsrechner (1263), der konfiguriert ist, die neue Parität (Pneu) unter Verwendung der alten Parität (Palt) und der Datendifferenz (Ddif) zu berechnen.
  26. Speichersystem nach Anspruch 24, wobei der Datendifferenzrechner (1262) konfiguriert ist, unmodifizierte Daten von Daten, die auf der Speichervorrichtung (1100; 2100; 3100; 4100) gespeichert sind, derart zu verarbeiten, dass sie auf 0 eingestellt werden, und die Datendifferenz (Ddif) zwischen den neuen Daten (Dneu) und den alten Daten (Dalt) zu berechnen.
  27. Speichersystem nach Anspruch 24, wobei der Datendifferenzrechner (1262) konfiguriert ist, die veränderten Teildaten in eine Mehrzahl von Bereichen zu unterteilen und eine Datendifferenz (Ddif) zwischen neuen Daten (Dneu) und alten Daten (Dalt) mit Bezug auf jeden Bereich zu berechnen.
  28. Verfahren zum Betreiben eines Speichercontrollers (1200; 2200; 3200; 4200) zum Aktualisieren von einer Paritätsinformation, wobei das Verfahren aufweist: Bestimmen, bei dem Speichercontroller (1200; 2200; 3200; 4200), einer ersten Parität (P1), wobei die erste Parität (P1) eine Parität ist, die einer Gesamtheit der ersten Daten (D1) entspricht, die in einer Speichervorrichtung (1100; 2100; 3100; 4100) gespeichert sind, wobei die ersten Daten (D1) einen ersten Abschnitt und einen zweiten Abschnitt enthalten; Empfangen einer Anfrage zum Ersetzen des ersten Abschnitts durch neue Daten (Dneu); Erzeugen, bei dem Speichercontroller (1200; 2200; 3200; 4200), eines Datendifferenzwerts basierend auf den neuen Daten (Dneu) und dem ersten Abschnitt; Aktualisieren der ersten Parität (P1) durch Erzeugen, bei dem Speichercontroller (1200; 2200; 3200; 4200), einer neuen Parität (Pneu) der ersten Daten (D1) basierend auf der Datendifferenz (Ddif) und der ersten Parität (P1); und Ersetzen des ersten Abschnitts in den ersten Daten (D1) mit den neuen Daten (Dneu) durch Speichern der neuen Daten (Dneu) und der neuen Parität (Pneu) auf der Speichervorrichtung (1100; 2100; 3100; 4100).
  29. Verfahren nach Anspruch 28, wobei der Speichercontroller (1200; 2200; 3200; 4200) die Operationen des Erzeugens der Datendifferenz (Ddif) und des Erzeugens der neuen Parität (Pneu) durchführt und diese ohne Verwendung des zweiten Abschnitts durchgeführt werden, und die neue Parität (Pneu) der Gesamtheit der ersten Daten (D1) entspricht, welche die neuen Daten (Dneu) und den zweiten Abschnitt enthalten.
  30. Verfahren nach Anspruch 28, wobei der erste Abschnitt aufeinanderfolgende Bits der ersten Daten (D1) enthält, der zweite Abschnitt aufeinanderfolgende Bits der ersten Daten (D1) enthält und sich die ersten und zweiten Abschnitte nicht überlagern.
DE102013112195.0A 2012-11-15 2013-11-06 Speichercontroller, der Teildaten in einer Speichervorrichtung ändert, sowie Verfahren zum Ändern von Teildaten davon Pending DE102013112195A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR1020120129549A KR102041874B1 (ko) 2012-11-15 2012-11-15 메모리 장치에 저장된 부분 데이터를 변경하는 메모리 컨트롤러 및 그것의 부분 데이터 변경 방법
KR1020120129548A KR102002044B1 (ko) 2012-11-15 2012-11-15 새 패러티를 생성하기 위한 에러 정정 코드 인코더를 포함하는 메모리 컨트롤러와 메모리 시스템
KR10-2012-0129548 2012-11-15
KR10-2012-0129549 2012-11-15

Publications (1)

Publication Number Publication Date
DE102013112195A1 true DE102013112195A1 (de) 2014-05-15

Family

ID=50555968

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013112195.0A Pending DE102013112195A1 (de) 2012-11-15 2013-11-06 Speichercontroller, der Teildaten in einer Speichervorrichtung ändert, sowie Verfahren zum Ändern von Teildaten davon

Country Status (5)

Country Link
US (1) US9311181B2 (de)
JP (1) JP2014099174A (de)
CN (1) CN103824599B (de)
DE (1) DE102013112195A1 (de)
TW (1) TWI627535B (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6414497B2 (ja) * 2015-03-25 2018-10-31 アイシン・エィ・ダブリュ株式会社 メモリコントローラ
JP2016184372A (ja) * 2015-03-27 2016-10-20 富士通株式会社 ストレージシステム,情報処理装置,パリティ生成プログラム及びパリティ生成方法
DE102015104841A1 (de) * 2015-03-30 2016-10-06 Infineon Technologies Ag Chip und Verfahren zum Detektieren einer Veränderung eines gespeicherten Datenvektors
US10176040B2 (en) * 2016-04-05 2019-01-08 Micron Technology, Inc. Error correction code (ECC) operations in memory
KR20170121798A (ko) * 2016-04-26 2017-11-03 삼성전자주식회사 반도체 메모리 장치 및 이의 동작 방법
US20170324425A1 (en) * 2016-05-06 2017-11-09 Infineon Technologies Ag Embedded parity matrix generator
CN107068194A (zh) * 2017-04-20 2017-08-18 聚辰半导体(上海)有限公司 一种应用在eeprom上的错误纠正编码及相应的eeprom
US10585749B2 (en) * 2017-08-10 2020-03-10 Samsung Electronics Co., Ltd. System and method for distributed erasure coding
KR20190031787A (ko) 2017-09-18 2019-03-27 삼성전자주식회사 병렬 리드-모디파이-라이트 동작을 수행하는 메모리 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120129549A (ko) 2011-05-20 2012-11-28 송권호 향기가 배출되는 의자
KR20120129548A (ko) 2011-05-20 2012-11-28 한밭대학교 산학협력단 세탁물 건조장치 및 건조방법

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06342405A (ja) 1993-06-01 1994-12-13 Nec Corp ファイル・システム
JP3270959B2 (ja) 1993-10-05 2002-04-02 株式会社日立製作所 ディスクアレイ装置におけるパリティ格納方法およびディスクアレイ装置
JPH11212877A (ja) 1998-01-28 1999-08-06 Nec Kofu Ltd 記憶装置
KR100300175B1 (ko) 1998-09-17 2001-10-27 서평원 인쇄회로기판에다운로드하는방법
JP2000259496A (ja) 1999-03-08 2000-09-22 Nec Kofu Ltd 記憶装置
JP2001337759A (ja) 2000-05-24 2001-12-07 Fuji Xerox Co Ltd ディスクアレイ装置
JP4877894B2 (ja) * 2001-07-04 2012-02-15 ルネサスエレクトロニクス株式会社 半導体装置
KR100423812B1 (ko) 2001-12-20 2004-03-22 한국전자통신연구원 디스크 캐쉬메모리 제어기 및 패리티 연산장치를 구비한알에이아이디 제어기 및 패리티 연산방법
US7100097B2 (en) 2002-07-16 2006-08-29 Hewlett-Packard Development Company, L.P. Detection of bit errors in maskable content addressable memories
JP4336168B2 (ja) 2003-09-08 2009-09-30 株式会社ルネサステクノロジ Ecc機能付き半導体記憶装置
US7191379B2 (en) 2003-09-10 2007-03-13 Hewlett-Packard Development Company, L.P. Magnetic memory with error correction coding
US7188303B2 (en) * 2003-12-29 2007-03-06 Intel Corporation Method, system, and program for generating parity data
KR100634414B1 (ko) 2004-09-06 2006-10-16 삼성전자주식회사 에러 검출용 패러티 발생기를 구비한 낸드 플래시 메모리 장치 및 그것의 에러 검출 방법
US7392428B2 (en) * 2004-11-19 2008-06-24 International Business Machines Corporation Method and system for recovering from abnormal interruption of a parity update operation in a disk array system
JP4643334B2 (ja) * 2005-03-31 2011-03-02 富士通セミコンダクター株式会社 半導体記憶装置
US7467335B2 (en) 2005-07-01 2008-12-16 Alcatel-Lucent Usa Inc. Method and apparatus for synchronizing data channels using an alternating parity deskew channel
TWI309768B (en) * 2005-09-06 2009-05-11 Realtek Semiconductor Corp Error correction apparatus capable of raising memory bandwidth utilization efficiency and related method thereof
US7954034B1 (en) * 2005-09-30 2011-05-31 Emc Corporation Method of and system for protecting data during conversion from an ECC protection scheme to a parity protection scheme
JP4469783B2 (ja) * 2005-11-28 2010-05-26 株式会社東芝 メモリ保護装置、メモリ保護システムおよびメモリ保護方法
JP4643479B2 (ja) * 2006-03-22 2011-03-02 株式会社東芝 アクセス制御装置、アクセス制御システム、プロセッサ、アクセス制御方法およびメモリアクセス制御方法
US7945840B2 (en) 2007-02-12 2011-05-17 Micron Technology, Inc. Memory array error correction apparatus, systems, and methods
KR100855979B1 (ko) 2007-02-13 2008-09-02 삼성전자주식회사 바이트 마스킹 동작을 위한 반도체 메모리 장치 및 패리티데이터 생성 방법
KR101472797B1 (ko) * 2007-07-16 2014-12-15 삼성전자주식회사 데이터를 읽거나 쓰기 위한 방법 및 장치
US8799743B2 (en) * 2008-10-28 2014-08-05 Micron Technology, Inc. Error correction in multiple semiconductor memory units
JP2010123156A (ja) 2008-11-17 2010-06-03 Elpida Memory Inc 半導体記憶装置及びその制御方法
US8769188B2 (en) * 2009-11-18 2014-07-01 Mediatek Inc. Nonvolatile memory controller and method for writing data to nonvolatile memory
KR101079367B1 (ko) 2010-01-13 2011-11-02 성균관대학교산학협력단 플래시 메모리를 사용하는 raid 저장 장치에서 패리티 데이터 관리 방법 및 그 장치
KR101623119B1 (ko) 2010-02-01 2016-05-20 삼성전자주식회사 솔리드 스테이트 드라이브의 에러 제어 방법
JP4940322B2 (ja) 2010-03-16 2012-05-30 株式会社東芝 半導体メモリ映像蓄積再生装置及びデータ書込み/読出し方法
JP2011198272A (ja) * 2010-03-23 2011-10-06 Toshiba Corp 半導体記憶装置および半導体記憶装置の制御方法
JP2012022422A (ja) 2010-07-13 2012-02-02 Panasonic Corp 半導体記録再生装置
US9058288B2 (en) * 2011-04-03 2015-06-16 Apple Inc. Redundant storage in non-volatile memory by storing redundancy information in volatile memory
US9444496B2 (en) * 2012-04-04 2016-09-13 University Of Southern California Correctable parity protected memory
JP5933755B2 (ja) * 2012-04-27 2016-06-15 株式会社日立製作所 ストレージシステム及びストレージ制御装置
US9619318B2 (en) * 2013-02-22 2017-04-11 Intel Deutschland Gmbh Memory circuits, method for accessing a memory and method for repairing a memory
WO2014205590A1 (en) * 2013-06-24 2014-12-31 Micron Technology, Inc. Circuits, apparatuses, and methods for correcting data errors

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120129549A (ko) 2011-05-20 2012-11-28 송권호 향기가 배출되는 의자
KR20120129548A (ko) 2011-05-20 2012-11-28 한밭대학교 산학협력단 세탁물 건조장치 및 건조방법

Also Published As

Publication number Publication date
CN103824599A (zh) 2014-05-28
TW201432458A (zh) 2014-08-16
CN103824599B (zh) 2018-06-05
US20140136920A1 (en) 2014-05-15
TWI627535B (zh) 2018-06-21
US9311181B2 (en) 2016-04-12
JP2014099174A (ja) 2014-05-29

Similar Documents

Publication Publication Date Title
DE102013112195A1 (de) Speichercontroller, der Teildaten in einer Speichervorrichtung ändert, sowie Verfahren zum Ändern von Teildaten davon
DE102013103391B4 (de) Betriebsverfahren eines Controllers, der eine nichtflüchtige Speichervorrichtung steuert, und Mappingmuster-Auswahlverfahren zum Auswählen eines Mappingmusters, das ein polar codiertes Codewort Multibitdaten einer nichtflüchtigen Speichervorrichtung zuordnet
DE112010004863B4 (de) Datenverwaltung in Festkörperspeichersystemen
CN108062258B (zh) 用于错误恢复的循环交错的xor阵列
DE102012112354A1 (de) Speichervorrichtung und nichtflüchtige Speichervorrichtung sowie Betriebsverfahren davon
DE112014004778B4 (de) Vorrichtung und Verfahren zum Verwalten von Chipgruppen
DE102018123891A1 (de) Handhabung nichtabgestimmter Schreibvorgänge
DE112016005869T5 (de) Vorausschauende Arbeitsspeicherinstandhaltung
DE102014103129B4 (de) Verfahren zum Lesen von Daten aus einer nichtflüchtigen Speichervorrichtung, nichtflüchtige Speichervorrichtung und Verfahren zum Betreiben eines Speichersystems
DE102018105750A1 (de) System und Verfahren für Hybrid-Push-Pull-Datenmanagement in einem nichtflüchtigen Datenspeicher
DE112014005266B4 (de) Verfahren und System zur Vorwärtsreferenz-Protokollierung in einem peristenten Datenspeicher
DE102019111132A1 (de) Speichereinrichtung, die Hostspeicher nutzt und Betriebsverfahren dafür
DE112016004629T5 (de) Datencodiertechniken für eine Vorrichtung
DE102018123103A1 (de) Halbleitervorrichtung, die Sicherheitsschlüssel erzeugt, Verfahren zum Erzeugen eines Sicherheitsschlüssels und Verfahren zum Registrieren des Sicherheitsschlüssels
DE102018122491A1 (de) Halbleiterspeichervorrichtung und verfahren zum betreiben derselben
US20200142744A1 (en) Logical address distribution in multicore memory system
DE112020005180T5 (de) Kondensieren von logischen zu physischen tabellenzeigern in ssds unter verwendung von gezonten namensräumen
DE102017114078A1 (de) Fehlerabschwächung für 3d-nand-flash-speicher
KR102391678B1 (ko) 저장 장치 및 그것의 서스테인드 상태 가속 방법
DE102020115747A1 (de) Speichermodul, Fehlerkorrekturverfahren für Speicher-Controller, der dieses steuert, und Rechensystem, das dieses umfasst
DE112020003489T5 (de) Speichersteuerung und verfahren zum decodieren von speichervorrichtungen mit vorzeitigem hartdecodierabbruch
DE102018123494A1 (de) Speichervorrichtung, die zum aktualisieren einesfeldprogrammierbaren gate-arrays ausgestaltetist, und betriebsverfahren dafür
DE102021106721A1 (de) Schnelles durch-steuerung-kopieren
DE102019129168A1 (de) Speichersystem und betriebsverfahren dafür
DE112020003961T5 (de) Vorhersagende speicherverwaltung

Legal Events

Date Code Title Description
R012 Request for examination validly filed