DE102018124836A1 - Neuartiger speicherbaustein - Google Patents

Neuartiger speicherbaustein Download PDF

Info

Publication number
DE102018124836A1
DE102018124836A1 DE102018124836.9A DE102018124836A DE102018124836A1 DE 102018124836 A1 DE102018124836 A1 DE 102018124836A1 DE 102018124836 A DE102018124836 A DE 102018124836A DE 102018124836 A1 DE102018124836 A1 DE 102018124836A1
Authority
DE
Germany
Prior art keywords
groups
bits
word
data bits
data
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
DE102018124836.9A
Other languages
English (en)
Inventor
Chien-Yin Liu
Yu-Der Chih
Hsueh-Chu YANG
Jonathan Chen
Kuan-Chun Chen
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.)
Taiwan Semiconductor Manufacturing Co TSMC Ltd
Original Assignee
Taiwan Semiconductor Manufacturing Co TSMC 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 to US201762592189P priority Critical
Priority to US62/592,189 priority
Priority to US15/965,883 priority
Priority to US15/965,883 priority patent/US10599517B2/en
Application filed by Taiwan Semiconductor Manufacturing Co TSMC Ltd filed Critical Taiwan Semiconductor Manufacturing Co TSMC Ltd
Publication of DE102018124836A1 publication Critical patent/DE102018124836A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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
    • G06F11/1056Updating check bits on partial write, i.e. read/modify/write
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Abstract

Ein Verfahren weist die folgenden Schritte auf: Abrufen eines ersten Worts, das eine Mehrzahl von Datenbits und eine Mehrzahl von Paritätsbits umfasst, die dem ersten Wort entsprechen, wobei die Mehrzahl von Datenbits (N - 1) Gruppen bildet und die Mehrzahl von Paritätsbits eine erste Gruppe bildet, die von den (N - 1) Gruppen verschieden ist, und N eine positive ganze Zahl ist, die größer als 2 ist; Empfangen einer Anforderung zum Aktualisieren von jeweiligen Datenbits einer ersten der (N - 1) Gruppen; und Bereitstellen eines zweiten Worts, das aktualisierte Datenbits, die eine zweite der (N - 1) Gruppen bilden, und eine Mehrzahl von aktualisierten Paritätsbits umfasst, die dem zweiten Wort entsprechen, wobei die Mehrzahl von aktualisierten Paritätsbits eine zweite Gruppe bildet, die den gleichen Gruppenindex wie die erste der (N - 1) Gruppen hat.

Description

  • Querverweis auf verwandte Anmeldung
  • Die vorliegende Anmeldung beansprucht die Priorität der am 29. Dezember 2017 eingereichten vorläufigen US-Patentanmeldung mit dem Aktenzeichen 62/592.189 , die durch Bezugnahme aufgenommen ist.
  • Hintergrund
  • Ein ECC-aktivierter Speicherbaustein (ECC: Fehlerkorrekturcode) ist im Allgemeinen ein Speicherbaustein, der außer tatsächlichen Datenbits noch weitere Informationen speichert, die als ECC-Bits bezeichnet werden (die normalerweise als „Paritätsbits“ bezeichnet werden). Diese Paritätsbits werden zum Prüfen der Konsistenz der Datenbits beim Lesen der Datenbits aus dem Speicherbaustein verwendet. In der Regel kann durch Verwenden der Paritätsbits eine Verfälschung (z. B. Fehler) von Datenbits erkannt werden und die verfälschten Datenbits können korrigiert werden.
  • In einem solchen ECC-aktivierten Speicherbaustein werden die Paritätsbits typischerweise mittels einer ECC-Maschine erzeugt, um mit den entsprechenden Datenbits assoziiert zu werden. Um zum Beispiel Fehler eines Datenworts mit N Datenbits zu erkennen oder zu korrigieren, werden M Paritätsbits erzeugt, um sie mit den N Datenbits zu assoziieren. Somit ist die Anzahl von Zellen in dem Speicherbaustein, die zum Speichern der N Datenbits verwendet werden, N + M Bits. In Reaktion auf einen Schreibzugriff auf den ECC-aktivierten Speicherbaustein (d. h. Schreiben einer Mehrzahl von Datenbits in den Speicherbaustein) werden entsprechende Paritätsbits berechnet und zusammen mit der Mehrzahl von Datenbits in den Speicherbaustein geschrieben. Wenn die Mehrzahl von Datenbits geschrieben wird, wird die Konsistenz der Datenbits unter Verwendung der entsprechenden Paritätsbits geprüft, und gegebenenfalls kann ein Datenfehler entsprechend korrigiert werden.
  • Bei verschiedenen Anwendungen kann es beim Aktualisieren der N Datenbits, statt der Aktualisierung aller Datenbits, mehrere partielle Schreibzyklen geben, die jeweils zum Aktualisieren einer entsprechenden Teilmenge der N Datenbits konfiguriert sind und durchgeführt werden, um alle N Datenbits zu aktualisieren. In einem Beispiel, in dem das vorgenannte Datenwort 64 Datenbits (N = 64) hat, können insgesamt vier partielle Schreibzyklen durchgeführt werden, um die insgesamt 64 Datenbits zu aktualisieren. Immer dann, wenn der partielle Schreibzyklus durchgeführt wird, um die entsprechende Teilmenge von Datenbits zu aktualisieren, wird eine entsprechende Gruppe von Paritätsbits erzeugt (z. B. aktualisiert). Entsprechend den vier partiellen Schreibzyklen werden die entsprechenden Gruppen von Paritätsbits mehrfach in die gleichen Zellen des Speicherbausteins geschrieben, was die jeweilige Lebensdauer der Zellen beeinträchtigt, die die Paritätsbits darstellen. Daher sind bestehende Verfahren zum Durchführen von partiellen Schreibzyklen in dem ECC-aktivierten Speicherbaustein nicht völlig zufriedenstellend.
  • Figurenliste
  • Aspekte der vorliegenden Erfindung lassen sich am besten anhand der nachstehenden detaillierten Beschreibung in Verbindung mit den beigefügten Zeichnungen verstehen. Es ist zu beachten, dass verschiedene Elemente nicht unbedingt maßstabsgetreu gezeichnet sind. Vielmehr können der Übersichtlichkeit der Erörterung halber die Abmessungen der verschiedenen Elemente beliebig vergrößert oder verkleinert sein.
    • 1 zeigt ein Blockschaltbild eines Speicherbausteins gemäß einigen Ausführungsformen.
    • 2 zeigt ein Ablaufdiagramm eines beispielhaften Verfahrens zu Betreiben des Speicherbausteins, gemäß einigen Ausführungsformen.
    • Die 3A bis 3F zeigen jeweils symbolische Diagramme von Wörtern, die mit dem Verfahren von 2 partiell aktualisiert werden, gemäß einigen Ausführungsformen.
    • 4 zeigt jeweilige symbolische Diagramme eines Worts auf verschiedenen Stufen der partiellen Aktualisierung, gemäß einigen Ausführungsformen.
    • 5 zeigt ein Blockschaltbild eines Computersystems zum Durchführen des Verfahrens von 2, gemäß einigen Ausführungsformen.
  • Detaillierte Beschreibung von beispielhaften Ausführungsformen
  • In der nachstehenden Beschreibung werden beispielhafte Ausführungsformen zum Implementieren verschiedener Merkmale des bereitgestellten Gegenstands beschrieben. Nachstehend werden spezielle Beispiele für Komponenten und Anordnungen beschrieben, um die vorliegende Erfindung zu vereinfachen. Diese sind natürlich lediglich Beispiele und sollen nicht beschränkend sein. Es dürfte zum Beispiel klar sein, dass wenn ein Element als mit einem anderen Element „verbunden“ oder „gekoppelt“ bezeichnet wird, es direkt mit dem anderen Element verbunden oder gekoppelt sein kann oder sich ein oder mehrere Elemente dazwischen befinden können.
  • Die vorliegende Erfindung stellt verschiedene Ausführungsformen eines ECC-aktivierten Speicherbausteins mit einer Steuerlogikschaltung bereit, die so konfiguriert ist, dass sie jeweilige Zellen des Speicherbaustein dynamisch ändert, um während jedes partiellen Schreibzyklus Paritätsbits bereitzustellen. Bei einigen Ausführungsformen ist die Steuerlogikschaltung so konfiguriert, dass sie eine Teilmenge eines ersten Datenworts, das sich in dem Speicherbaustein befindet, durch Bereitstellen eines zweiten Datenworts aktualisiert. Insbesondere haben das erste und das zweite Datenwort jeweils eine Mehrzahl von Teilmengen, die jeweils eine Mehrzahl von Datenbits haben, und mindestens eine entsprechende Teilmenge von Paritätsbits. Bei einigen Ausführungsformen ist die Steuerlogikschaltung so konfiguriert, dass sie einen Gruppenindex der Teilmenge von Paritätsbits des zweiten Datenworts als einen Gruppenindex der zu aktualisierenden Teilmenge des ersten Datenworts zuweist und einen Gruppenindex einer Teilmenge des zweiten Datenworts, das aktualisierte Bits enthält, als einen Gruppenindex der Teilmenge der Paritätsbits des ersten Datenworts zuweist. Daher können über mehrere partielle Schreibzyklen hinweg die Zellen, die mit den Paritätsbits geschrieben werden sollen, geändert werden, was die jeweilige Lebensdauer dieser Zellen vorteilhaft verlängert.
  • 1 zeigt ein beispielhaftes Blockschaltbild eines Speicherbausteins 100, gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. Der Speicherbaustein 100 weist eine Speichermatrix 102, eine Eingangs-/Ausgangsschaltung (E/A-Schaltung) 104, eine Steuerlogikschaltung 106 und eine ECC-Schaltung 108 (ECC: Fehlerkorrekturcode) auf. Bei einigen Ausführungsformen sind die Komponenten des Speicherbausteins 100 (d. h. die Speichermatrix 102, die E/A-Schaltung 104, die Steuerlogikschaltung 106 und die ECC-Schaltung 108) miteinander verbunden.
  • Bei einigen Ausführungsformen weist die Speichermatrix 102 eine Mehrzahl von Speicherzellen oder Zellen auf, die als eine Matrix angeordnet sind, in der die Zellen jeweils eine nichtflüchtige Speicherzelle (NVM-Zelle), wie zum Beispiel eine FRAM-Zelle (FRAM: ferroelektrischer Direktzugriffsspeicher), eine RRAM-Zelle (RRAM: resistiver Direktzugriffsspeicher), eine MRAM-Zelle (MRAM: magnetoresistiver Direktzugriffsspeicher) oder dergleichen, sein können. Bei einigen Ausführungsformen ist jede der Mehrzahl von Speicherzellen so konfiguriert, dass sie beschrieben oder gelesen wird, was später näher erörtert wird. Die E/A-Schaltung 104, die mehrere Treiber (z. B. Wortleitungstreiber, Bitleitungstreiber usw.), Sensorschaltungen (z. B. Leseverstärker usw.) und andere Logikschaltungen (z. B. Übertragungsgates, Schalter, Multiplexer usw.) aufweist, ist so konfiguriert, dass sie auf die Mehrzahl von Speicherzellen der Speichermatrix 102 zugreift. Die Steuerlogikschaltung 106 ist so konfiguriert, dass sie die E/A-Schaltung 104 so steuert, dass sie Datenbits in jeweilige Zellen der Speichermatrix 102 schreibt und die Datenbits liest, die sich in den jeweiligen Zellen der Speichermatrix 102 befinden. Die ECC-Schaltung 108 ist so konfiguriert, dass sie einen von mehreren ECCs (z. B. Hamming-Codes, Hsiao-Codes, Reed-Solomon-Codes, Bose-Chaudhuri-Hocquenghem-Codes, Turbo-Codes, Low-Density-Parity-Check-Codes) auf Grund von Datenbits erzeugt, die in die Speichermatrix 102 geschrieben werden sollen, und diesen ECC zum Erkennen von Fehlern der Datenbits verwendet, wenn die Datenbits aus der Speichermatrix 102 gelesen werden, und außerdem diese Fehler bei Bedarf korrigiert.
  • 2 zeigt ein Ablaufdiagramm eines beispielhaften Verfahrens 200 zum Betreiben des Speicherbausteins 100, gemäß verschiedenen Ausführungsformen. Bei verschiedenen Ausführungsformen werden die Schritte des Verfahrens 200 von den jeweiligen Komponenten ausgeführt, die in 1 gezeigt sind. Zur Erläuterung wird die nachstehende Ausführungsform des Verfahrens 200 in Verbindung mit der vorstehenden 1 und den nachstehenden 3A bis 3F beschrieben, die jeweils Wörter auf verschiedenen Betriebsstufen des Verfahrens 200 symbolisch darstellen. Die dargestellte Ausführungsform des Verfahrens 200 ist lediglich ein Beispiel. Daher dürfte klar sein, dass einer von mehreren Schritten des Verfahrens 200 weggelassen, umgeordnet und/oder hinzugefügt werden kann, was innerhalb des Schutzumfangs der vorliegenden Erfindung liegt.
  • Das Verfahren 200 beginnt mit dem Schritt 202, in dem eine Schreibanforderung empfangen wird, die an einem ersten Wort ausgeführt werden soll, das (N - 1) Gruppen von Datenbits und 1 Gruppe von Paritätsbits umfasst. Bei einigen Ausführungsformen haben die (N - 1) Gruppen von Datenbits jeweils eine gleichmäßig geteilte Anzahl von Datenbits eines Datenworts, und die Gruppe von Paritätsbits hat die gleiche Anzahl von Paritätsbits. Wenn zum Beispiel ein Datenwort 64 Datenbits hat, kann es 4 Gruppen von Datenbits geben, die jeweils 16 Datenbits haben, und entsprechend dem Datenwort, das 64 Datenbits hat, kann es 1 weitere Gruppe mit 16 Paritätsbits geben, die gemeinsam das erste Datenwort bilden, das 80 Daten- oder Paritätsbits hat. Bei einigen alternativen Ausführungsformen können die jeweiligen Anzahlen von Datenbits der (N - 1) Gruppen voneinander verschieden sein, was innerhalb des Schutzumfangs der vorliegenden Erfindung liegt. Der Übersichtlichkeit der Erläuterung halber werden hier die (N - 1) Gruppen von Datenbits und die 1 Gruppe von Paritätsbits jeweils als eine „Datengruppe“ bzw. eine „Paritätsgruppe“ bezeichnet.
  • Bei einigen Ausführungsformen werden die 16 Paritätsbits von der ECC-Schaltung 108 auf Grund des Datenworts als einer der verschiedenen vorgenannten ECC-Codes erzeugt. Bei einigen Ausführungsformen kann in dem vorstehenden Beispiel dieses erste Wort, das 4 Datengruppen und 1 Paritätsgruppe (die in den 3A bis 3F symbolisch dargestellt sind) umfasst, durch jeweilige Zellen der Speichermatrix 102 dargestellt werden (z. B. früher in diese geschrieben worden sein), und die Schreibanforderung zum Aktualisieren des ersten Worts kann mit der Steuerlogikschaltung 106 empfangen werden.
  • Das Verfahren 200 geht mit dem Schritt 204 weiter, in dem ermittelt wird, ob die Schreibanforderung eine Anforderung zum partiellen Schreiben ist oder nicht. Wenn nicht (d. h., wenn die Schreibanforderung keine Anforderung zum partiellen Schreiben ist), geht das Verfahren 200 zu einem Schritt 206 weiter, in dem alle Datenbits des ersten Worts aktualisiert werden; und wenn ja (d. h., wenn die Schreibanforderung eine Anforderung zum partiellen Schreiben ist), geht das Verfahren 200 zu nachfolgenden Schritten 208 bis 222 weiter, um die Datenbits des ersten Worts partiell zu aktualisieren, was später erörtert wird. Bei einigen Ausführungsformen kann im Schritt 206 die Steuerlogikschaltung 106 zunächst die E/A-Schaltung 104 veranlassen, das erste Wort aus den jeweiligen Zellen der Speichermatrix 102 auszulesen, sie kann das erste Wort über die ECC-Schaltung 108 decodieren, um korrekte oder korrigierte Datenbits des ersten Worts abzurufen, sie kann alle korrekten/korrigierten Datenbits aktualisieren, und sie kann die E/A-Schaltung 104 veranlassen, die korrekten/korrigierten Datenbits in die jeweiligen Zellen der Speichermatrix 102 zu schreiben.
  • Andererseits geht das Verfahren 200 mit dem Schritt 208 weiter, in dem das erste Wort aus der Speichermatrix 102 gelesen wird. Bei einigen Ausführungsformen kann die Steuerlogikschaltung 106 die E/A-Schaltung 104 veranlassen, das erste Wort aus der Speichermatrix 102 auszulesen. Zum Beispiel kann die Steuerlogikschaltung 106 einen Lesetreiber der E/A-Schaltung 104 veranlassen, eine Wortleitung (WL) anzusteuern, entlang der die Zellen das erste Wort darstellen (z. B. speichern), und dann Leseverstärker der E/A-Schaltung 104, die jeweils mit den Zellen verbunden sind, veranlassen, das erste Wort auszulesen. Der Klarheit halber sind der vorgenannte Lesetreiber, die vorgenannte WL und die vorgenannten Leseverstärker in den Figuren der vorliegenden Erfindung nicht dargestellt.
  • In 3A ist ein symbolisches Diagramm des ersten Worts, das dem Schritt 208 des Verfahrens 200 entspricht, als ein Beispiel dargestellt. Wie gezeigt ist, umfasst das erste Wort 4 Datengruppen 302, 304, 306 und 308 und 1 Paritätsgruppe 310, wobei jede der Daten-/Paritätsgruppen mit einem Gruppenindex assoziiert ist, was später bei dem Schritt 210 des Verfahrens 200 näher erörtert wird. Bei einigen Ausführungsformen weist jede der Datengruppen 302, 304, 306 und 308 eine Mehrzahl von Datenbits auf, und ebenso weist die Paritätsgruppe 310 eine Mehrzahl von Paritätsbits auf. Außerdem ist ein entsprechendes Daten-Tag mit jeder der Datengruppen 302, 304, 306 und 308 assoziiert, und ein entsprechendes Paritäts-Tag ist mit der Paritätsgruppe 310 assoziiert.
  • Die Datengruppe 302 umfasst zum Beispiel 16 Datenbits, die in 3A gemeinsam als „d[31:16]“ dargestellt sind, wobei die Datengruppe 302 mit einem Daten-Tag mit 4 Bits assoziiert ist, die in 3A als „0010“ dargestellt sind. Die Datengruppe 304 umfasst 16 Datenbits, die in 3A gemeinsam als „d[15:0]“ dargestellt sind, wobei die Datengruppe 304 mit einem Daten-Tag mit 4 Bits assoziiert ist, die in 3A als „0001“ dargestellt sind. Die Datengruppe 306 umfasst 16 Datenbits, die in 3A gemeinsam als „d[47:32]“ dargestellt sind, wobei die Datengruppe 306 mit einem Daten-Tag mit 4 Bits assoziiert ist, die in 3A als „0100“ dargestellt sind. Die Datengruppe 308 umfasst 16 Datenbits, die in 3A gemeinsam als „d[63:48]“ dargestellt sind, wobei die Datengruppe 308 mit einem Daten-Tag mit 4 Bits assoziiert ist, die in 3A als „1000“ dargestellt sind. Die Paritätsgruppe 310 umfasst 16 Datenbits, die in 3A gemeinsam als „p[15:0]“ dargestellt sind, wobei die Paritätsgruppe 310 mit einem Paritäts-Tag mit 4 Bits assoziiert ist, die in 3A als „1111“ dargestellt sind.
  • Bei einigen Ausführungsformen sind die Datenbits der Datengruppen, die Paritätsbits der Paritätsgruppe, das Daten-Tag und das Paritäts-Tag jeweils so konfiguriert, dass sie durch eine entsprechende Zelle der Speichermatrix 102 dargestellt sind. Bei einigen Ausführungsformen haben das Daten-Tag und das Paritäts-Tag jeweils unterschiedliche „Bitstrukturen“, damit die Steuerlogikschaltung 106 das Paritäts-Tag von dem einen oder den mehreren Daten-Tags unterscheiden kann. Insbesondere hat über die 4 Bits der Daten-Tags 0010, 0001, 0100 und 1000 hinweg jedes Daten-Tag mindestens eine logische Eins; und andererseits hat über die 4 Bits des Paritäts-Tags 1111 hinweg das Paritäts-Tag eine Anzahl von logischen Einsen, die größer als eins plus die maximal zulässigen Fehlerbits ist. Zum Beispiel ist das Paritäts-Tag 1111 so konfiguriert, dass es eine Anzahl von logischen Einsen hat, die größer als drei (d. h., 1 + 2) ist, wenn die Anzahl der maximal zulässigen Fehlerbits zwei ist. Daher kann, auch wenn das Paritäts-Tag zwei Fehlerbits, z. B. 1100, hat, die Steuerlogikschaltung 106 immer noch das Paritäts-Tag von allen anderen Daten-Tags unterscheiden, da die Daten-Tags nicht mehr als eine logische Eins haben können.
  • Das Verfahren 200 geht zu einem Schritt 210 weiter, in dem jeweilige Gruppenindizes der Paritätsgruppe und der zu aktualisierenden Datengruppe als „A“ bzw. „B“ identifiziert werden. Wie vorstehend dargelegt worden ist, ist bei einigen Ausführungsformen jede der Daten-/Paritätsgruppen mit einem Gruppenindex assoziiert. Wenn in 3A das erste Wort aus der Speichermatrix 102 gelesen wird, werden die Daten-/Paritätsgruppen 302 bis 310 des ersten Worts wie gezeigt angeordnet. Bei einigen Ausführungsformen kann die Steuerlogikschaltung 106 die jeweiligen Gruppenindizes der Daten-/Paritätsgruppen 302 bis 310 speichern, die von der Steuerlogikschaltung 106 vordefiniert oder zugewiesen werden können. Zum Beispiel ist die Datengruppe 302 mit einem Gruppenindex o assoziiert, die Datengruppe 304 ist mit einem Gruppenindex 1 assoziiert, die Datengruppe 306 ist mit einem Gruppenindex 2 assoziiert, die Paritätsgruppe 310 ist mit einem Gruppenindex 3 assoziiert, und die Datengruppe 308 ist mit einem Gruppenindex 4 assoziiert. Die Steuerlogikschaltung 106 kann diese Gruppenindizes der Daten-/Paritätsgruppen 302 bis 310 des ersten Worts speichern.
  • In einem Beispiel, in dem die Steuerlogikschaltung 106 so konfiguriert ist, dass sie die Datenbits der Datengruppe 304 (d. h. d[15:0]) aktualisiert, kann die Steuerlogikschaltung 106 den Wert von „B“ als 1 speichern (da der Gruppenindex der Datengruppe 304 1 ist). Und da die Paritätsgruppe 310 mit dem Gruppenindex 3 assoziiert ist, der, wie vorstehend dargelegt worden ist, durch sein Paritäts-Tag unterschieden werden kann, kann die Steuerlogikschaltung 106 den Wert von „A“ als 3 speichern. Bei einigen Ausführungsformen kann die Steuerlogikschaltung 106 diese Werte von A und B verwenden, um die Zellen der Speichermatrix 102 zu ändern, um aktualisierte Paritätsbits darzustellen, was später erörtert wird.
  • Das Verfahren geht zu einem Schritt 212 weiter, in dem das Tag der Paritätsgruppe entfernt wird und die N Gruppen des ersten Worts umgeordnet werden. In 3B ist ein symbolisches Diagramm des ersten Worts, das dem Schritt 212 des Verfahrens 200 entspricht, als ein Beispiel dargestellt. Wie gezeigt ist, wird das Paritäts-Tag „1111“ der Paritätsgruppe 310 entfernt, und die (N - 1) Datengruppen 302 bis 308 und die Paritätsgruppe 310 (d. h., die N Gruppen des ersten Worts) werden umgeordnet.
  • Das Verfahren geht mit einem Schritt 214 weiter, in dem die Datenbits des ersten Worts unter Verwendung eines mit dem ersten Wort assoziierten ECC bei Bedarf korrigiert werden. Bei einigen Ausführungsformen kann die Steuerlogikschaltung 106, nachdem sie das erste Wort aus der Speichermatrix 102 ausgelesen hat und umgeordnet hat (wie in 3B gezeigt ist), das umgeordnete erste Wort für die ECC-Schaltung 108 bereitstellen, um unter Verwendung der Paritätsbitgruppe 310 (d. h., eines mit dem ersten Wort assoziierten ECC) zu prüfen, ob es ein Fehlerdatenbit in dem gelesenen/umgeordneten ersten Wort [d. h. den (N - 1) Datenbitgruppen 302 bis 308] gibt. Wenn ja, kann die ECC-Schaltung 108 diese Fehlerdatenbits korrigieren und die korrigierten Datenbits des ersten Worts für die Steuerlogikschaltung 106 bereitstellen; und wenn nicht, kann die ECC-Schaltung 108 die empfangenen Datenbits für die Steuerlogikschaltung 106 bereitstellen, die in 3C symbolisch als „geprüfte“ oder „korrigierte“ Datenbits dargestellt sind.
  • Das Verfahren 200 geht zu einem Schritt 216 weiter, in dem die korrekten/korrigierten Datenbits dadurch modifiziert werden, dass die mit dem Gruppenindex B assoziierte Datengruppe entfernt wird und aktualisierte Datenbits in eine mit dem Gruppenindex A assoziierte Datengruppe eingefügt wird, um Zwischendatenbits zu erzeugen. Für das vorstehende Beispiel, in dem die Werte von A und B von der Steuerlogikschaltung 106 als 3 bzw. 1 gespeichert werden, ist ein symbolisches Diagramm dieser Zwischendatenbits, das dem Schritt 216 des Verfahrens 200 entspricht, in 3D als ein Beispiel dargestellt. Wie gezeigt ist, umfassen die Zwischendatenbits nicht die mit dem Gruppenindex 1 assoziierte Datengruppe (die durch Strichlinien dargestellt ist), d. h. die Datengruppe 304, die „alte“ Datenbits enthält. Die Zwischendatenbits umfassen jedoch Datenbits, die von den alten Datenbits der Datengruppe 304 aktualisiert worden sind, die in eine mit dem Gruppenindex 3 assoziierte Gruppe (die mit diagonalen Linien gefüllt ist) eingefügt werden. Insbesondere entfernt bei einigen Ausführungsformen die Steuerlogikschaltung 106 die Datenbits der Gruppe mit dem Gruppenindex 1 (Gruppe 304) aus den korrigierten Datenbits (3C), sie aktualisiert die Datenbits in der Gruppe 304 und fügt dann diese aktualisierte Gruppe 304' in eine Stelle mit dem Gruppenindex 3 ein, um die Zwischendatenbits bereitzustellen.
  • Das Verfahren 200 geht zu einem Schritt 218 weiter, in dem aktualisierte Paritätsbits bereitgestellt werden. Bei einigen Ausführungsformen kann die Steuerlogikschaltung 106, nachdem sie die Zwischendatenbits abgerufen hat (3D), die Zwischendatenbits für die ECC-Schaltung 108 bereitstellen, um aktualisierte Paritätsbits (d. h., einen aktualisierten ECC-Code) zu erzeugen, die mit den Zwischendatenbits assoziiert sind, die die aktualisierten Datenbits (die Datenbits der Gruppe 304') umfassen. Diese aktualisierten Paritätsbits, die eine Paritätsgruppe 310' bilden können, sind symbolisch in 3E dargestellt. Wie vorstehend dargelegt worden ist, werden die aktualisierten Paritätsbits auf Grund der entsprechenden Datenbits, d. h. der Zwischendatenbits, erzeugt, die Hamming-Codes, Hsiao-Codes, Reed-Solomon-Codes, Bose-Chaudhuri-Hocquenghem-Codes, Turbo-Codes oder Low-Density-Parity-Check-Codes sein können.
  • Das Verfahren 200 geht mit einem Schritt 220 weiter, in dem die aktualisierten Paritätsbits in eine Gruppe von Zwischendatenbits eingefügt werden, die mit dem Gruppenindex B assoziiert ist, um ein zweites Wort (oder ein partiell aktualisiertes erstes Wort) zu erzeugen. In dem vorstehenden Beispiel speichert die Steuerlogikschaltung 106 den Wert von B als 1 (Schritt 210), sodass die aktualisierten Paritätsbits, die die Gruppe 310' bilden, von der Steuerlogikschaltung 106 in die Gruppe mit dem Gruppenindex 1 eingefügt werden, um das zweite Wort zu erzeugen, was symbolisch in 3F dargestellt ist.
  • Das Verfahren 200 geht zu einem Schritt 222 weiter, in dem das zweite Wort partiell zurück in die Speichermatrix 102 geschrieben wird. Wie vorstehend dargelegt worden ist, werden die Datenbits (d. h. die Gruppen 302 bis 308) und die Paritätsbits (d. h. die Gruppe 310) des ersten Worts, die aktualisiert werden sollen, aus den jeweiligen Zellen der Speichermatrix 102 gelesen (3A). Bei einigen Ausführungsformen kann die Steuerlogikschaltung 106, nachdem sie das zweite Wort erzeugt hat (3F), die Datenstruktur des zweiten Worts befolgen, um die Gruppe, die die aktualisierten Datenbits enthält, und die Gruppe, die die aktualisierten Paritätsbits enthält, zurück in die Zellen der Speichermatrix 102 zu schreiben.
  • Insbesondere werden in 3A beim Empfangen der Anforderung zum partiellen Aktualisieren des ersten Worts die Datenbits der Datengruppe 302 aus einer ersten Mehrzahl von Zellen der Speichermatrix 102 ausgelesen, die Datenbits der Datengruppe 304 werden aus einer zweiten Mehrzahl von Zellen der Speichermatrix 102 ausgelesen, die Datenbits der Datengruppe 306 werden aus einer dritten Mehrzahl von Zellen der Speichermatrix 102 ausgelesen, die Paritätsbits der Paritätsgruppe 310 werden aus einer vierten Mehrzahl von Zellen der Speichermatrix 102 ausgelesen, und die Datenbits der Datengruppe 308 werden aus einer fünften Mehrzahl von Zellen der Speichermatrix 102 ausgelesen. Wenn in 3F das zweite Wort (das partiell aktualisierte erste Wort) zurück in die Speichermatrix 102 geschrieben wird, werden nur die aktualisierten Paritätsbits, die in der Paritätsgruppe 310' enthalten sind, zurück in die zweite Mehrzahl von Zellen der Speichermatrix 102 (die ursprünglich die zu aktualisierenden Datenbits darstellen) geschrieben, und nur die aktualisierten Datenbits, die in der Datengruppe 304' enthalten sind, werden zurück in die vierte Mehrzahl von Zellen der Speichermatrix 102 (die ursprünglich die bereits aktualisierten Paritätsbits darstellen) geschrieben. Daher können immer dann, wenn ein partieller Schreibzyklus durchgeführt wird (d. h., wenn eine Gruppe eines Worts aktualisiert wird), die Zellen, die aktualisierte Paritätsbits darstellen sollen, dadurch dynamisch geändert werden, dass die Zellen, die die zu aktualisierenden Datenbits darstellen, mit den Zellen getauscht werden, die die bereits aktualisierten Paritätsbits darstellen. Daher kann, wenn mehrere partielle Schreibzyklen durchgeführt werden, die Anzahl der Schreiboperationen der Zellen gleichmäßiger verteilt werden, wodurch die jeweilige Lebensdauer der Zellen vorteilhaft verbessert werden kann.
  • 4 zeigt jeweilige symbolische Diagramme eines Worts 400 auf verschiedenen Stufen der partiellen Aktualisierung, gemäß einigen Ausführungsformen. Wenn das Wort 400 aus einer Speichermatrix ausgelesen wird (in 4 als „gelesen“ dargestellt), umfasst das Wort 400 eine Paritätsgruppe 401, eine erste Datengruppe 402, eine zweite Datengruppe 404, eine dritte Datengruppe 406 und eine vierte Datengruppe 408, wobei die Daten-/Paritätsbits der Daten-/Paritätsgruppen 401 bis 406 durch jeweilige Zellen der Speichermatrix dargestellt werden. Zum Beispiel werden die Paritätsbits der Paritätsgruppe 401 durch eine erste Mehrzahl von Zellen dargestellt, die Datenbits der Datengruppe 402 werden durch eine zweite Mehrzahl von Zellen dargestellt, die Datenbits der Datengruppe 404 werden durch eine dritte Mehrzahl von Zellen dargestellt, die Datenbits der Datengruppe 406 werden durch eine vierte Mehrzahl von Zellen dargestellt, und die Datenbits der Datengruppe 408 werden durch eine fünfte Mehrzahl von Zellen dargestellt.
  • Wenn nach dem vorstehend erörterten Funktionsprinzip ein erster partieller Schreibzyklus (d. h., eine erste partielle Aktualisierung) an dem Wort 400 durchgeführt wird (z. B. nur die Datenbits der Datengruppe 402 des Worts 400 sollen aktualisiert werden), wird eine Position einer Gruppe, die die aktualisierten Datenbits enthält, d. h. eine Datengruppe 402', zu einer Position der Paritätsgruppe 401 verschoben, und eine Position einer Gruppe, die aktualisierte Paritätsbits enthält, d. h. eine Paritätsgruppe 401', wird zu einer Position der Datengruppe 402 verschoben, die aktualisiert werden soll. Anders ausgedrückt, es werden jeweilige Gruppenindizes ausgetauscht. Daher können die aktualisierten Datenbits, die in der Gruppe 402' enthalten sind, entsprechend in die erste Mehrzahl von Zellen geschrieben werden (statt in die zweite Mehrzahl von Zellen, wo die Datenbits der Gruppe 402 gelesen werden), und die aktualisierten Paritätsbits, die in der Paritätsgruppe 401' enthalten sind, können entsprechend in die zweite Mehrzahl von Zellen geschrieben werden (statt in die erste Mehrzahl von Zellen, wo die Paritätsgruppe 401 gelesen wird).
  • In ähnlicher Weise können, wenn anschließend ein zweiter partieller Schreibzyklus an dem Wort 400 durchgeführt wird (z. B. nur die Datenbits der Datengruppe 404 des Worts 400 sollen aktualisiert werden), aktualisierte Datenbits, die in einer Datengruppe 404 enthalten sind, entsprechend in die zweite Mehrzahl von Zellen geschrieben werden (statt in die dritte Mehrzahl von Zellen, wo die Datenbits der Datengruppe 404 gelesen werden), und entsprechende aktualisierte Paritätsbits, die in einer Gruppe 401'' enthalten sind, können entsprechend in die dritte Mehrzahl von Zellen geschrieben werden (statt in die zweite Mehrzahl von Zellen, wo die Paritätsbits der Paritätsgruppe 401' gelesen werden). Wenn anschließend ein dritter partieller Schreibzyklus an dem Wort 400 durchgeführt wird (z. B. nur die Datenbits der Datengruppe 406 des Worts 400 sollen aktualisiert werden), können aktualisierte Datenbits, die in einer Datengruppe 406' enthalten sind, entsprechend in die dritte Mehrzahl von Zellen geschrieben werden (statt in die vierte Mehrzahl von Zellen, wo die Datenbits der Datengruppe 404 gelesen werden), und entsprechende aktualisierte Paritätsbits, die in einer Paritätsgruppe 401''' enthalten sind, können entsprechend in die vierte Mehrzahl von Zellen geschrieben werden (statt in die dritte Mehrzahl von Zellen, wo die Paritätsbits der Paritätsgruppe 401'' gelesen werden). Wenn anschließend ein vierter partieller Schreibzyklus an dem Wort 400 durchgeführt wird (z. B. nur die Datenbits der Datengruppe 408 des Worts 400 sollen aktualisiert werden), können aktualisierte Datenbits, die in einer Datengruppe 408' enthalten sind, entsprechend in die vierte Mehrzahl von Zellen geschrieben werden (statt in die fünfte Mehrzahl von Zellen, wo die Datenbits der Datengruppe 408 gelesen werden), und entsprechende aktualisierte Paritätsbits, die in einer Paritätsgruppe 401'''' enthalten sind, können entsprechend in die fünfte Mehrzahl von Zellen geschrieben werden (statt in die vierte Mehrzahl von Zellen, wo die Paritätsbits der Paritätsgruppe 401'' gelesen werden). Somit werden die erste, zweite, dritte, vierte und fünfte Mehrzahl von Zellen jeweils gleichmäßig zweimal über die vier partiellen Schreibzyklen hinweg beschrieben.
  • 5 ist ein Blockschaltbild eines Computersystems 500 gemäß einigen Ausführungsformen. Ein oder mehrere der Tools und/oder Maschinen und/oder Systeme und/oder Operationen, die unter Bezugnahme auf die 1 bis 4 beschrieben worden sind, werden bei einigen Ausführungsformen mit einem oder mehreren Computersystemen 500 von 5 realisiert. Das System 500 weist mindestens einen Prozessor 501, einen Speicher 502, eine Netzwerk-Schnittstelle 506, eine Eingabe-/Ausgabevorrichtung (E/A-Vorrichtung) 508 und einen Speicher 510 auf, die über einen Bus 504 oder andere Verbindungskommunikationsmechanismen kommunikativ verbunden sind.
  • Der Speicher 502 umfasst bei einigen Ausführungsformen einen Direktzugriffsspeicher (RAM) und/oder einen anderen dynamischen Speicher und/oder einen Festspeicher (ROM) und/oder einen anderen statischen Speicher, die mit dem Bus 504 zum Speichern von Daten und/oder Befehlen verbunden sind, die von dem Prozessor 501 ausgeführt werden sollen. Der Speicher 502 kann weiterhin einen Benutzerbereich 512, einen Systemkern 514, Teile des Systemkerns und/oder des Benutzerbereichs und deren Komponenten aufweisen. Der Speicher 502 wird bei einigen Ausführungsformen auch zum Speichern von temporären Variablen oder anderen Zwischeninformationen beim Ausführen von Befehlen durch den Prozessor 501 verwendet. Bei verschiedenen Ausführungsformen kann der Speicher 502 in einem einzelnen integrierten Schaltkreis enthalten sein oder eine Mehrzahl von diskreten Speicherbausteinen aufweisen, die funktionsfähig miteinander verbunden sind.
  • Bei einigen Ausführungsformen ist der Speicher 510, wie etwa eine Magnetplatte oder eine optische Platte, mit dem Bus 504 zum Speichern von Daten und/oder Befehlen verbunden. Die Eingabe-/Ausgabevorrichtung 508 umfasst eine Eingabevorrichtung, eine Ausgabevorrichtung und/oder eine kombinierte Eingabe-/Ausgabevorrichtung, die einem Nutzer eine Interaktion mit dem System 500 ermöglichen. Eine Eingabevorrichtung umfasst zum Beispiel eine Tastatur, ein Keypad, eine Maus, einen Trackball, ein Touchpad und/oder Cursor-Richtungstasten zum Übermitteln von Informationen und Befehlen an den Prozessor 501. Eine Ausgabevorrichtung umfasst zum Beispiel einen Monitor, einen Drucker, einen Sprachsynthesizer usw. zum Übermitteln von Informationen an einen Nutzer.
  • Bei einigen Ausführungsformen werden eine oder mehrere Operationen und/oder Funktionalitäten der Tools und/oder Maschinen und/oder Systeme, die unter Bezugnahme auf die 1 bis 4 beschrieben worden sind, von dem Prozessor 501 realisiert, der zum Ausführen dieser Operationen und/oder Funktionalitäten programmiert ist. Bei einigen Ausführungsformen ist der Prozessor 501 als speziell konfigurierte Hardware, z. B. als eine oder mehrere ASICs (anwendungsspezifischen integrierten Schaltungen), konfiguriert. Bei verschiedenen Ausführungsformen kann der Prozessor 501 in einem einzigen integrierten Schaltkreis (IC) oder als mehrere kommunikativ verbundene ICs und/oder diskrete Schaltungen implementiert sein. Es ist klar, dass der Prozessor 501 gemäß verschiedenen bekannten Technologien implementiert werden kann. Bei einer Ausführungsform weist der Prozessor 501 eine oder mehrere Schaltungen oder Einheiten auf, die so konfiguriert sein können, dass sie eine oder mehrere hier beschriebene Funktionen oder Prozesse dadurch ausführen können, dass sie zum Beispiel Befehle ausführen, die in einem assoziierten Speicher gespeichert sind. Bei anderen Ausführungsformen kann der Prozessor 501 als Firmware (z. B. als diskrete logische Komponenten) implementiert werden, die so konfiguriert ist, dass sie eine oder mehrere hier beschriebene Funktionen oder Prozesse ausführt. Zum Beispiel kann der Prozessor 501 bei verschiedenen Ausführungsformen einen oder mehrere Controller, Mikroprozessoren, Microcontroller, ASICs, Digitalsignalprozessoren, programmierbare logische Bauelemente, Universalschaltkreise oder eine Kombination aus diesen Bauelementen oder Strukturen oder andere bekannte Bauelemente und Strukturen umfassen, um die hier beschriebenen Funktionen auszuführen.
  • Der Speicher 502, die Schnittstelle 506, der Speicher 510, die E/A-Vorrichtung 508 und/oder der Bus 504 sind so betreibbar, dass sie Befehle, Daten, Entwurfsbeschränkungen, Entwurfsregeln, Netzlisten, Layouts, Modelle und/oder andere Parameter zum Verarbeiten durch den Prozessor 501 empfangen.
  • Bei einigen Ausführungsformen werden die Operationen und/oder Funktionalitäten als Funktionen eines Programms realisiert, das in einem nichtflüchtigen maschinenlesbaren Speichermedium gespeichert ist. Bei mindestens einer Ausführungsform werden die Operationen und/oder Funktionalitäten als ein Programm, wie etwa eine Gruppe von ausführbaren Befehlen, realisiert, das in dem Speicher 502 gespeichert ist. Beispiele für das nichtflüchtige maschinenlesbare Speichermedium sind unter anderem eine externe oder Wechsel- und/oder eine interne oder eingebaute Speichereinheit, zum Beispiel eine optische Platte, wie etwa eine DVD, eine Magnetplatte, wie etwa eine Festplatte, ein Halbleiterspeicher, wie etwa ein ROM, ein RAM, eine Speicherkarte und dergleichen.
  • Bei einer Ausführungsform weist ein Verfahren die folgenden Schritte auf: Abrufen eines ersten Worts, das eine Mehrzahl von Datenbits und eine Mehrzahl von Paritätsbits umfasst, die dem ersten Wort entsprechen, wobei die Mehrzahl von Datenbits (N - 1) Gruppen bildet und die Mehrzahl von Paritätsbits eine erste Gruppe bildet, die von den (N - 1) Gruppen verschieden ist, und N eine positive ganze Zahl ist, die größer als 2 ist; Empfangen einer Anforderung zum Aktualisieren von jeweiligen Datenbits einer ersten der (N - 1) Gruppen; und Bereitstellen eines zweiten Worts, das aktualisierte Datenbits, die eine zweite der (N - 1) Gruppen bilden, und eine Mehrzahl von aktualisierten Paritätsbits umfasst, die dem zweiten Wort entsprechen, wobei die Mehrzahl von aktualisierten Paritätsbits eine zweite Gruppe bildet, die den gleichen Gruppenindex wie die erste der (N - 1) Gruppen hat.
  • Bei einer weiteren Ausführungsform weist ein Verfahren die folgenden Schritte auf: Lesen eines ersten Worts aus einer Speichermatrix, wobei das erste Wort eine Mehrzahl von Datenbits, die (N - 1) Gruppen bilden, und eine Mehrzahl von Paritätsbits umfasst, die dem ersten Wort entsprechen und eine erste Gruppe bilden, die an die (N - 1) Gruppen angehängt wird, wobei die erste Gruppe von Paritätsbits und die (N - 1) Gruppen von Datenbits jeweils mit einem Gruppenindex assoziiert sind und N eine positive ganze Zahl ist, die größer als 2 ist; Empfangen einer Anforderung zum partiellen Schreiben, um die Datenbits einer ersten der (N - 1) Gruppen zu aktualisieren; Bereitstellen eines zweiten Worts, das aktualisierte Datenbits, die eine zweite der (N - 1) Gruppen bilden, und eine Mehrzahl von aktualisierten Paritätsbits umfasst, die dem zweiten Wort entsprechen und die eine zweite Gruppe dadurch bilden, dass Gruppenindizes der zweiten der (N - 1) Gruppen und der zweiten Gruppe dem Gruppenindex der ersten Gruppe von Paritätsbits bzw. dem Gruppenindex der ersten der (N - 1) Gruppen entsprechen; und Schreiben eines Teils des zweiten Worts in die Speichermatrix.
  • Bei einer noch weiteren Ausführungsform weist ein Speicherbaustein Folgendes auf: eine Mehrzahl von Speicherzellen, die so konfiguriert sind, dass sie ein ersten Wort darstellen, wobei das erste Wort eine Mehrzahl von Datenbits, die (N - 1) Gruppen bilden, und eine Mehrzahl von Paritätsbits umfasst, die dem ersten Wort entsprechen und eine erste Gruppe bilden, die an die (N - 1) Gruppen angehängt ist, wobei die erste Gruppe von Paritätsbits und die (N - 1) Gruppen von Datenbits jeweils mit einem Gruppenindex assoziiert sind und N eine positive ganze Zahl ist, die größer als 2 ist; und eine Steuerlogikschaltung, die mit der Mehrzahl von Speicherzellen verbunden ist. Die Steuerlogikschaltung ist weiterhin so konfiguriert ist, dass sie die folgenden Schritte ausführt: in Reaktion auf eine Anforderung zum Aktualisieren der Datenbits einer ersten der (N - 1) Gruppen Bereitstellen eines zweiten Worts, das aktualisierte Datenbits, die eine zweite der (N - 1) Gruppen bilden, und eine Mehrzahl von aktualisierten Paritätsbits umfasst, die dem zweiten Wort entsprechen und eine zweite Gruppe bilden, wobei die jeweiligen Gruppenindizes der ersten der (N - 1) Gruppen und der zweiten Gruppe von aktualisierten Paritätsbits gleich sind; und Aktualisieren eines Teils des ersten Worts unter Verwendung des zweiten Worts.
  • Vorstehend sind Merkmale verschiedener Ausführungsformen beschrieben worden, sodass Fachleute die Aspekte der vorliegenden Erfindung besser verstehen können. Fachleuten dürfte klar sein, dass sie die vorliegende Erfindung ohne Weiteres als eine Grundlage zum Gestalten oder Modifizieren anderer Verfahren und Strukturen zum Erreichen der gleichen Ziele und/oder zum Erzielen der gleichen Vorzüge wie bei den hier vorgestellten Ausführungsformen verwenden können. Fachleute dürften ebenfalls erkennen, dass solche äquivalenten Auslegungen nicht von dem Grundgedanken und Schutzumfang der vorliegenden Erfindung abweichen und dass sie hier verschiedene Änderungen, Ersetzungen und Abwandlungen vornehmen können, ohne von dem Grundgedanken und Schutzumfang der vorliegenden Erfindung abzuweichen.
  • 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
    • US 62/592189 [0001]

Claims (20)

  1. Verfahren mit den folgenden Schritten: Abrufen eines ersten Worts, das eine Mehrzahl von Datenbits und eine Mehrzahl von Paritätsbits umfasst, die dem ersten Wort entsprechen, wobei die Mehrzahl von Datenbits (N - 1) Gruppen bildet und die Mehrzahl von Paritätsbits eine erste Gruppe bildet, die von den (N - 1) Gruppen verschieden ist, und N eine positive ganze Zahl ist, die größer als 2 ist; Empfangen einer Anforderung zum Aktualisieren von jeweiligen Datenbits einer ersten der (N - 1) Gruppen; und Bereitstellen eines zweiten Worts, das aktualisierte Datenbits, die eine zweite der (N-1) Gruppen bilden, und eine Mehrzahl von aktualisierten Paritätsbits umfasst, die dem zweiten Wort entsprechen, wobei die Mehrzahl von aktualisierten Paritätsbits eine zweite Gruppe bildet, die den gleichen Gruppenindex wie die erste der (N - 1) Gruppen hat.
  2. Verfahren nach Anspruch 1, wobei die erste Gruppe und die zweite der (N - 1) Gruppen den gleichen Gruppenindex haben.
  3. Verfahren nach Anspruch 1 oder 2, das weiterhin Folgendes umfasst: Lesen des ersten Worts aus einer Speichermatrix; Identifizieren jeweiliger Gruppenindizes der ersten Gruppe und der ersten der (N - 1) Gruppen; und Abrufen einer Mehrzahl von korrigierten Datenbits aus der Mehrzahl von Datenbits des ersten Worts.
  4. Verfahren nach einem der vorhergehenden Ansprüche, das weiterhin das Verwenden von jeweiligen Tags der ersten Gruppe und der (N - 1) Gruppen zum Unterscheiden der ersten Gruppe von den (N - 1) Gruppen umfasst.
  5. Verfahren nach Anspruch 4, wobei die Tags jeweils eine Mehrzahl von Bits umfassen, die entweder an die jeweilige Mehrzahl von Datenbits jeder der (N - 1) Gruppen oder an die Mehrzahl von Paritätsbits der ersten Gruppe angehängt werden.
  6. Verfahren nach Anspruch 5, das weiterhin Folgendes umfasst: vor dem Abrufen der Mehrzahl von korrigierten Datenbits Entfernen des Tags, das an die Mehrzahl von Paritätsbits der ersten Gruppe angehängt ist, und Umordnen der ersten Gruppe und der (N - 1) Gruppen.
  7. Verfahren nach Anspruch 3, das weiterhin Folgendes umfasst: Entfernen von korrigierten Datenbits der ersten der (N - 1) Gruppen aus der Mehrzahl von korrigierten Datenbits; und Einfügen der aktualisierten Datenbits in die zweite der (N - 1) Gruppen, um eine Mehrzahl von Zwischendatenbits bereitzustellen.
  8. Verfahren nach Anspruch 7, das weiterhin Folgendes umfasst: auf Grund der Mehrzahl von Zwischendatenbits Bereitstellen der aktualisierten Paritätsbits; und Einfügen der aktualisierten Paritätsbits in die erste der (N - 1) Gruppen, um das zweite Wort bereitzustellen.
  9. Verfahren nach einem der vorhergehenden Ansprüche, das weiterhin das Schreiben eines Teils des zweiten Worts, der die zweite Gruppe und die zweite der (N - 1) Gruppen umfasst, in die Speichermatrix umfasst.
  10. Verfahren mit den folgenden Schritten: Lesen eines ersten Worts aus einer Speichermatrix, wobei das erste Wort eine Mehrzahl von Datenbits, die (N - 1) Gruppen bilden, und eine Mehrzahl von Paritätsbits umfasst, die dem ersten Wort entsprechen und eine erste Gruppe bilden, die an die (N - 1) Gruppen angehängt wird, wobei die erste Gruppe von Paritätsbits und die (N - 1) Gruppen von Datenbits jeweils mit einem Gruppenindex assoziiert sind und N eine positive ganze Zahl ist, die größer als 2 ist; Empfangen einer Anforderung zum partiellen Schreiben, um die Datenbits einer ersten der (N - 1) Gruppen zu aktualisieren; Bereitstellen eines zweiten Worts, das aktualisierte Datenbits, die eine zweite der (N - 1) Gruppen bilden, und eine Mehrzahl von aktualisierten Paritätsbits umfasst, die dem zweiten Wort entsprechen und die eine zweite Gruppe dadurch bilden, dass Gruppenindizes der zweiten der (N - 1) Gruppen und der zweiten Gruppe dem Gruppenindex der ersten Gruppe von Paritätsbits bzw. dem Gruppenindex der ersten der (N - 1) Gruppen entsprechen; und Schreiben eines Teils des zweiten Worts in die Speichermatrix.
  11. Verfahren nach Anspruch 10, das weiterhin Folgendes umfasst: Identifizieren der jeweiligen Gruppenindizes der ersten Gruppe und der ersten der (N - 1) Gruppen; und Abrufen einer Mehrzahl von geprüften Datenbits, die im Bedarfsfall korrigiert werden, aus der Mehrzahl von Datenbits des ersten Worts.
  12. Verfahren nach Anspruch 11, das weiterhin Folgendes umfasst: Lesen von jeweiligen Tags der ersten Gruppe und der (N - 1) Gruppen, um zumindest die jeweiligen Gruppenindizes der ersten Gruppe und der ersten der (N - 1) Gruppen zu identifizieren.
  13. Verfahren nach Anspruch 12, wobei die Tags jeweils eine Mehrzahl von Bits umfassen, die entweder an die jeweilige Mehrzahl von Datenbits jeder der (N - 1) Gruppen oder an die Mehrzahl von Paritätsbits der ersten Gruppe angehängt werden.
  14. Verfahren nach Anspruch 13, das weiterhin Folgendes umfasst: vor dem Abrufen der Mehrzahl von geprüften Datenbits Entfernen des Tags, das an die Mehrzahl von Paritätsbits der ersten Gruppe angehängt ist, und Umordnen der ersten Gruppe und der (N - 1) Gruppen.
  15. Verfahren nach einem der Ansprüche 11 bis 14, das weiterhin Folgendes umfasst: Entfernen von geprüften Datenbits der ersten der (N - 1) Gruppen aus der Mehrzahl von geprüften Datenbits; und Einfügen der aktualisierten Datenbits in die zweite der (N - 1) Gruppen, um eine Mehrzahl von Zwischendatenbits bereitzustellen.
  16. Verfahren nach Anspruch 15, das weiterhin Folgendes umfasst: auf Grund der Mehrzahl von Zwischendatenbits Bereitstellen von aktualisierten Paritätsbits; und Einfügen der aktualisierten Paritätsbits in die erste der (N - 1) Gruppen, um das zweite Wort bereitzustellen.
  17. Speicherbaustein mit: einer Mehrzahl von Speicherzellen, die so konfiguriert sind, dass sie ein ersten Wort bereitstellen, wobei das erste Wort eine Mehrzahl von Datenbits, die (N - 1) Gruppen bilden, und eine Mehrzahl von Paritätsbits umfasst, die dem ersten Wort entsprechen und eine erste Gruppe bilden, die an die (N - 1) Gruppen angehängt ist, wobei die erste Gruppe von Paritätsbits und die (N - 1) Gruppen von Datenbits jeweils mit einem Gruppenindex assoziiert sind und N eine positive ganze Zahl ist, die größer als 2 ist; und einer Steuerlogikschaltung, die mit der Mehrzahl von Speicherzellen verbunden ist und so konfiguriert ist, dass sie die folgenden Schritte ausführt: in Reaktion auf eine Anforderung zum Aktualisieren der Datenbits einer ersten der (N - 1) Gruppen Bereitstellen eines zweiten Worts, das aktualisierte Datenbits, die eine zweite der (N - 1) Gruppen bilden, und eine Mehrzahl von aktualisierten Paritätsbits umfasst, die dem zweiten Wort entsprechen und eine zweite Gruppe bilden, wobei die jeweiligen Gruppenindizes der ersten der (N - 1) Gruppen und der zweiten Gruppe von aktualisierten Paritätsbits gleich sind, und Aktualisieren eines Teils des ersten Worts unter Verwendung des zweiten Worts.
  18. Speicherbaustein nach Anspruch 17, wobei die jeweiligen Gruppenindizes der ersten Gruppe von Paritätsbits und der zweiten der (N - 1) Gruppen gleich sind.
  19. Speicherbaustein nach Anspruch 17 oder 18, wobei die Steuerlogikschaltung weiterhin so konfiguriert ist, dass sie die folgenden Schritte ausführt: Identifizieren der jeweiligen Gruppenindizes der ersten Gruppe und der ersten der (N - 1) Gruppen; Abrufen einer Mehrzahl von geprüften Datenbits, die im Bedarfsfall korrigiert werden, aus der Mehrzahl von Datenbits des ersten Worts; Entfernen von geprüften Datenbits der ersten der (N - 1) Gruppen aus der Mehrzahl von geprüften Datenbits; und Einfügen der aktualisierten Datenbits in die zweite der (N - 1) Gruppen, um eine Mehrzahl von Zwischendatenbits bereitzustellen.
  20. Speicherbaustein nach Anspruch 19, wobei die Steuerlogikschaltung weiterhin so konfiguriert ist, dass sie die folgenden Schritte ausführt: auf Grund der Mehrzahl von Zwischendatenbits Bereitstellen der aktualisierten Paritätsbits; und Einfügen der aktualisierten Paritätsbits in die erste der (N - 1) Gruppen, um das zweite Wort bereitzustellen.
DE102018124836.9A 2017-11-29 2018-10-09 Neuartiger speicherbaustein Pending DE102018124836A1 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US201762592189P true 2017-11-29 2017-11-29
US62/592,189 2017-11-29
US15/965,883 2018-04-28
US15/965,883 US10599517B2 (en) 2017-11-29 2018-04-28 Memory device

Publications (1)

Publication Number Publication Date
DE102018124836A1 true DE102018124836A1 (de) 2019-05-29

Family

ID=66442146

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018124836.9A Pending DE102018124836A1 (de) 2017-11-29 2018-10-09 Neuartiger speicherbaustein

Country Status (5)

Country Link
US (3) US10599517B2 (de)
KR (1) KR102142602B1 (de)
CN (1) CN109840162A (de)
DE (1) DE102018124836A1 (de)
TW (1) TWI677877B (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10599517B2 (en) * 2017-11-29 2020-03-24 Taiwan Semiconductor Manufacturing Co., Ltd. Memory device
JP2021047527A (ja) * 2019-09-17 2021-03-25 キオクシア株式会社 メモリシステム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI277869B (en) 2005-08-23 2007-04-01 Via Tech Inc Architecture and method for storing data
US8880987B2 (en) * 2011-07-29 2014-11-04 Sandisk Technologies Inc. Checksum using sums of permutation sub-matrices
CN105579980A (zh) 2013-09-27 2016-05-11 仁荷大学校产学协力团 基于ssd的raid系统中的校验数据的去重
US9268503B2 (en) * 2014-01-14 2016-02-23 Compellent Technologies I/O handling between virtualization and RAID storage
US9766978B2 (en) * 2014-12-09 2017-09-19 Marvell Israel (M.I.S.L) Ltd. System and method for performing simultaneous read and write operations in a memory
US20170286216A1 (en) * 2016-04-01 2017-10-05 Intel Corporation Energy efficient read/write support for a protected memory
US10599517B2 (en) * 2017-11-29 2020-03-24 Taiwan Semiconductor Manufacturing Co., Ltd. Memory device

Also Published As

Publication number Publication date
US20190163568A1 (en) 2019-05-30
KR20190063448A (ko) 2019-06-07
CN109840162A (zh) 2019-06-04
US10970167B2 (en) 2021-04-06
US20200151057A1 (en) 2020-05-14
US10599517B2 (en) 2020-03-24
KR102142602B1 (ko) 2020-08-10
TWI677877B (zh) 2019-11-21
US20210224154A1 (en) 2021-07-22
TW201926357A (zh) 2019-07-01

Similar Documents

Publication Publication Date Title
DE112014004778B4 (de) Vorrichtung und Verfahren zum Verwalten von Chipgruppen
DE112011100371B4 (de) Verfahren, Vorrichtung und Computerprogrammprodukt zum Decodieren eines Codeworts
DE3128740C2 (de)
DE112007003015B4 (de) Verfahren und Vorrichtung zur Cache-gestützten Fehlerdetektion und -korrektur in einem Speicher
DE112010003645T5 (de) Festkörper-Speichersystem mit Parallelem Zugriff aus Mehreren Flash/PCM-Einrichtungen
DE102011075814B4 (de) Speicherpuffer mit zugänglicher Information nach einem Schreibfehler
DE102017128940A1 (de) System und Verfahren zum dynamischen Falten oder direkten Schreiben basierend auf Block-Störungsfreiheit in einem nichtflüchtigen Speichersystem
DE112014001305T5 (de) Auswahl einer redundanten Datenspeicherkonfiguration auf der Grundlage verfügbaren Speicherplatzes
DE112008002553T5 (de) Einsatz eines MLC-Flash als SLC durch Schreiben von Dummy-Daten
DE102010037290A1 (de) Speichersysteme und Verfahren zur Erfassung einer Verteilung von instabilen Speicherzellen
DE102018124836A1 (de) Neuartiger speicherbaustein
DE102016010277A1 (de) Verfahren und systeme zum verbessern von speicher-journaling
DE3209679A1 (de) Halbleiter-speichereinrichtung
DE102018122826A1 (de) Vorrichtung zum Unterstützen eines Fehlerkorrekturcodes und Testverfahren dafür
DE2450468C2 (de) Fehlerkorrekturanordnung für einen Speicher
DE102015113414A1 (de) Fehlerkorrektur unter Verwendung von WOM-Codes
DE102017128999A1 (de) Lesebetrieb und weiches Dekodierungs-Timing
DE102019117787A1 (de) Speichervorrichtung und Betriebsverfahren derselben
EP2100308B1 (de) Verfahren und halbleiterspeicher mit einer einrichtung zur erkennung von adressierungsfehlern
DE102019123510A1 (de) Nichtflüchtige Speichervorrichtung und Speichersystem, das die nichtflüchtige Speichervorrichtung umfasst
DE102019116097A1 (de) Vorprogramm-lesevorgang zur behebung von wortleitungsfehlern
DE112016002305T5 (de) Reduktion der Schreibverstärkung in einem Objektspeicher
DE2554502B2 (de)
DE102020112512A1 (de) Datenspeichergerät und Betriebsverfahren dafür
DE2549392B2 (de) Verfahren zur erhoehung der zuverlaessigkeit von integrierten speicherbausteinen und zur verbesserung der ausbeute von nach aussen hin fehlerfrei erscheinenden speicherbausteinen bei ihrer herstellung

Legal Events

Date Code Title Description
R012 Request for examination validly filed