DE102008003043A1 - Speicher mit Fehlerkorrekturcodeschaltung - Google Patents

Speicher mit Fehlerkorrekturcodeschaltung Download PDF

Info

Publication number
DE102008003043A1
DE102008003043A1 DE102008003043A DE102008003043A DE102008003043A1 DE 102008003043 A1 DE102008003043 A1 DE 102008003043A1 DE 102008003043 A DE102008003043 A DE 102008003043A DE 102008003043 A DE102008003043 A DE 102008003043A DE 102008003043 A1 DE102008003043 A1 DE 102008003043A1
Authority
DE
Germany
Prior art keywords
data
memory
matrix
memory cells
read
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.)
Withdrawn
Application number
DE102008003043A
Other languages
English (en)
Inventor
Peter Chlumecky
Josef Schnell
Harald Streif
Thomas Vogelsang
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.)
Polaris Innovations Ltd
Original Assignee
Qimonda AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qimonda AG filed Critical Qimonda AG
Publication of DE102008003043A1 publication Critical patent/DE102008003043A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)

Abstract

Ein Speicher enthält eine Matrix von Speicherzellen und eine Fehlerkorrekturcodeschaltung. Die Fehlerkorrrekturcodeschaltung ist dafür ausgelegt, einen ersten Teil eines ersten Datenworts aus einer externen Schaltung und einen zweiten Teil des ersten Datenworts aus der Matrix von Speicherzellen zu empfangen, den ersten Teil und den zweiten Teil zu kombinieren, um das erste Datenwort bereitzustellen und das erste Datenwort für das Schreiben in die Matrix von Speicherzellen zu codieren.

Description

  • Stand der Technik
  • Speichergeschwindigkeit und Speicherkapazität nehmen weiter zu, um den Bedürfnissen von Systemanwendungen gerecht zu werden. Zu bestimmten dieser Systemanwendungen gehören mobile elektronische Systeme mit begrenztem Platz und begrenzten Stromressourcen. Bei mobilen Anwendungen, wie zum Beispiel Mobiltelefonen und PDA (Personal Digital Assistants), sind Speicherzellendichte und Stromverbrauch Probleme für zukünftige Generationen. Um diese Probleme anzugehen, entwickelt die Industrie Direktzugriffsspeicher (RAM) für mobile Anwendungen. Für DRAMs mit niedrigem Stromverbrauch, wie zum Beispiel DRAMs mit einfacher Datenrate und mit niedrigem Stromverbrauch (LP-SDR) und DRAMs mit doppelter Datenrate und mit niedrigem Stromverbrauch (LP-DDR) ist die Verringerung des Auffrischstroms eine Möglichkeit zum Verringern des Stromverbrauchs.
  • Um den Auffrischstrom zu verringern, wird in der Regel die Auffrischperiode verlängert. Eine Verlängerung der Auffrischperiode führt in der Regel jedoch dazu, dass aufgrund der verlängerten Auffrischperiode bestimmte Speicherzellen ausfallen. Zum Beispiel können 99,9% der Speicherzellen in einer Matrix von Speicherzellen eine Haltezeit von 250 ms aufweisen. Die anderen 0,1% können jedoch möglicherweise ihre Werte für eine bestimmte Zeit zwischen ungefähr 0–200 ms nicht halten. Diese Speicherzellen, die ihre Werte nicht halten können, werden als Tail-Bit bezeichnet. Diese Tail-Bit können während des Selbstauffrischens eines Speichers zu Einzelbit fehlern führen. Durch Detektieren und Korrigieren dieser Tail-Bit kann die Auffrischperiode verlängert werden, um den Auffrischstrom zu verringern.
  • Fehlerkorrekturcode (ECC) berechnet Paritätsinformationen und kann bestimmen, ob ein Bit zu einem falschen Wert gewechselt hat. ECC kann die ursprünglich berechnete Parität mit der geprüften Parität vergleichen und etwaige Korrekturen vornehmen, um falsche Datenwerte zu korrigieren. In bestimmten Fällen ist es erwünscht, dass ECC direkt in einen Speicherchip eingebaut ist, um größere Speicherchipzuverlässigkeit zu gewährleisten oder um andere Speicherchipeigenschaften zu optimieren, wie etwa Selbstauffrischströme auf DRAM mit niedrigem Stromverbrauch. ECC-Schaltkreise sind jedoch in der Regel aufgrund von zusätzlichen Speicherelementen zum Speichern der Paritätsinformationen mit einem großen Overhead assoziiert. Typische ECC-Implementierungen können bis zu 50% der Speicherchipfläche kosten.
  • Ein typischer DRAM mit niedrigem Stromverbrauch besitzt viele Optionen, die erfordern, verschiedene Datenbreiten aus der Matrix abzurufen oder in die Matrix zu schreiben (z. B. verschiedene Organisationen, wie etwa x16 oder x32, verschiedene Schnittstellenstandards, wie etwa SDR oder DDR, und Datenmaskierung in diesen Organisationen und Standards). Das Lesen von Daten aus einer Speichermatrix und das Schreiben von Daten in eine Speichermatrix mit ECC sollte mit hoher Geschwindigkeit durchgeführt werden. Zusätzlich sollte die ECC so wenig Zusatzaufwand in der Speichermatrix wie möglich benutzen, um Chipfläche zu sparen. Ein ECC-Code wird effizienter, wenn das zu korrigierende Datenwort länger wird, weil die Anzahl der zum Korrigieren eines Bit in dem Datenwort verwendeten Paritätsbit logarithmisch mit der Wortlänge ansteigt. Der An teil der Paritätsspeicherzellen in der Speichermatrix nimmt deshalb mit steigender Datenwortlänge ab. Wenn die verwendete ECC-Wortlänge länger als die Anzahl der durch eine externe Schaltung während einer Schreiboperation bereitgestellten Bit ist, muss die neue Parität durch Kombinieren von bereits in der Speichermatrix befindlichen Bit mit den durch die externe Schaltung bereitgestellten Bit berechnet werden. Das Kombinieren von Bit verwandelt die Schreiboperation in eine Lese-Modifizier-Schreiboperation.
  • Typische Speicher vermeiden die Lese-Modifizier-Schreiboperation durch Verwendung der kleinsten Datenwortlänge aller erforderlichen Datenwortlängen als grundlegendes Datenwort, das durch ECC korrigiert wird. Da Datenmaskierung bei einer typischen DRAM-Spezifikation nach Byte erfolgt, ist ein Zusatzaufwand in der ECC-Matrix von mindestens 50% erforderlich (der kleinste Zusatzcode zum Korrigieren eines Bit von 8 ist ein Hamming-Code, der vier Paritätsbit benutzt). Bei einer typischen DRAM-Architektur ist eine Lese-Modifizier-Schreiboperation nicht mit hoher Geschwindigkeit möglich, da Datenkonkurrenz auf den bidirektionalen Matrixdatenleitungen auftreten würde. Dies ist insbesondere der Fall, wenn die durch die ECC-Datenkorrekturlogik erzeugte Verzögerung betrachtet wird.
  • Aus diesen und anderen Gründen wird die vorliegende Erfindung benötigt.
  • Kurzfassung
  • Eine Ausführungsform stellt einen Speicher bereit. Der Speicher enthält eine Matrix von Speicherzellen und eine Fehlerkorrekturcodeschaltung. Die Fehlerkorrekturcodeschaltung ist dafür ausgelegt, von einer externen Schaltung einen ersten Teil eines ersten Datenworts und von der Matrix von Speicherzellen einen zweiten Teil des ersten Datenworts zu empfangen, den ersten Teil und den zweiten Teil zu kombinieren, um das erste Datenwort bereitzustellen, und das erste Datenwort für das Schreiben in die Matrix von Speicherzellen zu codieren.
  • Kurze Beschreibung der Zeichnungen
  • Die beigefügten Zeichnungen sollen ein weiteres Verständnis der vorliegenden Erfindung gewährleisten und sind in die vorliegende Beschreibung integriert und bilden einen Teil dieser. Die Zeichnungen zeigen die Ausführungsformen der vorliegenden Erfindung und dienen zusammen mit der Beschreibung zur Erläuterung der Prinzipien der Erfindung. Andere Ausführungsformen der vorliegenden Erfindung und viele der beabsichtigten Vorteile der vorliegenden Erfindung werden ohne Weiteres ersichtlich, wenn sie durch Bezugnahme auf die folgende ausführliche Beschreibung besser verstanden werden. Die Elemente der Zeichnungen sind nicht unbedingt maßstabsgetreu zueinander. Gleiche Bezugszahlen kennzeichnen entsprechende ähnliche Teile.
  • 1 ist ein Blockdiagramm einer Ausführungsform einer Speicheranordnung.
  • 2 ist ein Blockdiagramm einer Ausführungsform einer Lese-Modifizier-Schreiboperation.
  • 3 ist ein Impulsdiagramm einer Ausführungsform der Zeitsteuerung von Signalen für eine Lese-Modifizier-Schreiboperation für die Speicheranordnung.
  • 4 ist ein Blockdiagramm einer Ausführungsform einer Schaltung für einen DDR SDRAM.
  • Ausführliche Beschreibung
  • In der folgenden ausführlichen Beschreibung wird auf die beigefügten Zeichnungen verwiesen, die einen Teil dieser bilden und in denen zur Veranschaulichung spezifische Ausführungsformen gezeigt sind, in denen die Erfindung ausgeübt werden kann. In dieser Hinsicht wird mit Bezug auf die Orientierung der beschriebenen Figur(en) Richtungsterminologie wie etwa "oben", "unten", "vorne", "hinten", "vorderes", "hinteres" usw. verwendet. Da Komponenten von Ausführungsformen der vorliegenden Erfindung in einer Anzahl verschiedener Orientierungen positioniert werden können, wird die Richtungsterminologie zur Veranschaulichung verwendet und ist auf keinerlei Weise einschränkend. Es versteht sich, dass andere Ausführungsformen verwendet und strukturelle oder logische Änderungen vorgenommen werden können, ohne von dem Umfang der vorliegenden Erfindung abzuweichen. Die folgende ausführliche Beschreibung ist deshalb nicht im einschränkenden Sinne aufzufassen, und der Umfang der vorliegenden Erfindung wird durch die angefügten Ansprüche definiert.
  • 1 ist ein Blockdiagramm einer Ausführungsform einer Speicheranordnung 100. Die Speicheranordnung 100 enthält einen Speichercontroller 102 und einen Speicher 106. Der Speichercontroller 102 ist durch den Speicherkommunikationspfad 104 und externe bidirektionale Lese-/Schreibdatenleitungen (EXT_BI_RWDQ) 144 elektrisch mit dem Speicher 106 gekoppelt. Der Speicher 106 enthält Steuerlogik 108, eine Speichermatrix 114, einen sekundären Leseverstärker bzw. Auswahllogik 134, eine Schaltung 136 für Fehlerkorrekturcode (ECC) und Eingabe- /Ausgabe-(E/A)-Logik 140. Bei einer Ausführungsform ist die Speicheranordnung 100 ein dynamischer Direktzugriffsspeicher mit Einzeldatenrate (SDR DRAM). Bei einer anderen Ausführungsform ist die Speicheranordnung 100 ein DRAM mit Doppeldatenrate (DDR).
  • Im vorliegenden Gebrauch soll der Ausdruck "elektrisch gekoppelt" nicht bedeuten, dass Elemente direkt gekoppelt sein müssen, und es können dazwischentretende Elemente zwischen den "elektrisch gekoppelten" Elementen vorgesehen sein.
  • Die Steuerlogik 108 ist durch Lesespaltenauswahlleitungen (RCSL) 110 und Schreibspaltenauswahlleitungen (WCSL) 112 elektrisch mit der Speichermatrix 114 gekoppelt. Die Speichermatrix 114 enthält mehrere Speicherzellen 118 zum Speichern von Daten und mehrerer Speicherzellen 118 (d. h. Paritätsspeicher) zum Speichern von Paritätsdaten wie bei 116 angegeben. Die Speichermatrix 114 ist durch Schreibmatrixdatenleitungen (WADQ) 130 und Lesematrixdatenleitungen (RADQ) 132 elektrisch mit dem sekundären Leseverstärker bzw. der Auswahllogik 134 gekoppelt. Der sekundäre Leseverstärker und die Auswahllogik 134 ist elektrisch mit der ECC-Schaltung 136 gekoppelt. Die ECC-Schaltung 136 ist durch bidirektionale Lese-/Schreibdatenleitungen (BI_RWDQ) 138 elektrisch mit der E/A-Logik 140 gekoppelt. Die E/A-Logik 140 ist durch den Signalpfad 142 elektrisch mit der Steuerlogik 108 und durch externe bidirektionale Lese-/Schreibdatenleitungen 144 mit dem Speichercontroller 102 gekoppelt.
  • In der Speicheranordnung 100 sind die Spaltenauswahlleitungen zwischen der Steuerlogik 108 und der Speichermatrix 114 separat, um Lesespaltenauswahlleitungen 110 zum Auswählen von Speicherzellen für Leseoperationen und Schreibspaltenauswahl leitungen 112 zum Auswählen von Speicherzellen für Schreiboperationen bereitzustellen. Zusätzlich sind die Datenleitungen zwischen der Speichermatrix 114 und dem sekundären Leseverstärker bzw. der Auswahllogik 134 auch getrennt, um Schreibmatrixdatenleitungen 130 zum Leiten von Daten zu der Speichermatrix 114 während Schreiboperationen und Lesematrixdatenleitungen 132 zum Leiten von Daten aus der Speichermatrix 114 während Leseoperationen bereitzustellen. Die bidirektionalen Lese-/Schreibdatenleitungen 138 zwischen der ECC-Schaltung 136 und der E/A-Logik 140 und die externen bidirektionalen Lese-/Schreibdatenleitungen 144 zwischen der E/A-Logik 140 und dem Speichercontroller 102 sind gemeinsam benutzte Datenleitungen sowohl zum Leiten von Daten aus dem Speicher 106 während Leseoperationen als auch zum Leiten von Daten zu dem Speicher 106 während Schreiboperationen.
  • Durch Verwendung separater Spaltenauswahlleitungen und separater Matrixdatenleitungen für Lese- und Schreiboperationen können Daten gleichzeitig aus der Speichermatrix 114 gelesen und in diese geschrieben werden. Indem gleichzeitig Daten aus der Speichermatrix 114 gelesen und in diese geschrieben werden können, wird eine ECC-Operation mit hoher Geschwindigkeit unter Verwendung von größeren ECC-Wörtern durchgeführt, als bei typischen Speicheranordnungen möglich ist. Größere ECC-Wörter verwenden weniger Paritätsbit als kleinere ECC-Wörter, und dadurch benutzt die Speicheranordnung 100 im Vergleich zu typischem DRAM weniger Chipfläche zum Speichern von Paritätsdaten.
  • Der Speichercontroller 102 steuert die Funktionsweise des Speichers 106. Der Speichercontroller 102 enthält einen Mikroprozessor, Mikrocomputer oder andere geeignete Logikschaltkreise zum Steuern der Funktionsweise des Speichers 106 durch den Speicherkommunikationspfad 104. Der Speichercontroller 102 führt der Steuerlogik 108, dem sekundären Leseverstärker bzw. der Auswahllogik 134 und der ECC-Schaltung 136 zum Lesen von Daten aus der Speichermatrix 114 und zum Schreiben von Daten in diese Taktsignale, Befehlssignale und andere Signale zu. Der Speichercontroller 102 liefert Daten zum Schreiben in den Speicher 106 und empfängt aus dem Speicher 106 gelesene Daten durch die E/A-Logik 140 und die externen bidirektionalen Lese-/Schreibdatenleitungen 144. Der Speichercontroller 102 empfängt Daten zum Schreiben in den Speicher 106 von einer (nicht gezeigten) Host- oder externen Schaltung. Außerdem führt der Speichercontroller 102 der Host- oder externen Schaltung aus dem Speicher 106 gelesene Daten zu.
  • Die Steuerlogik 108 führt der Speichermatrix 114 durch die Schreibspaltenauswahlleitungen 112 Schreibspaltenauswahlsignale zu und führt der Speichermatrix 114 durch die Lesespaltenauswahlleitungen 110 Lesespaltenauswahlsignale zu. Schreibspaltenauswahlsignale werden der Speichermatrix 114 zugeführt, um auf Speicherzellen zuzugreifen, um Daten in die Speicherzellen zu schreiben. Lesespaltenauswahlsignale werden der Speichermatrix 114 zugeführt, um auf Speicherzellen zuzugreifen, um Daten aus den Speicherzellen zu lesen. Die Steuerlogik 108 steuert auch die E/A-Logik 140 durch den Signalpfad 142 zum Steuern der Zeitsteuerung und zum Leiten von Daten zwischen bidirektionalen Lese-/Schreibdatenleitungen 138 und externen bidirektionalen Lese-/Schreibdatenleitungen 144.
  • Die Speichermatrix 114 enthält mehrere Speicherzellen 118 zum Speichern von Daten und Paritätsinformationen. Bei einer Ausführungsform enthält jede Speicherzelle 118 einen Transistor 124 und einen Kondensator 126. Das Gate des Transistors 124 ist elektrisch mit einer Wortleitung 120 gekoppelt. Eine Sei te des Drain-Source-Pfades des Transistors 124 ist elektrisch mit einer Bitleitung 122 gekoppelt, und die andere Seite des Drain-Source-Pfades ist elektrisch mit einer Seite des Kondensators 126 gekoppelt. Die andere Seite des Kondensators 126 ist elektrisch mit einer Referenz 128, wie zum Beispiel einer Hälfte der Versorgungsspannung oder Masse gekoppelt. Der Kondensator 126 wird geladen und entladen, um eine logische "0" oder eine logische "1" zu repräsentieren. Bei anderen Ausführungsformen werden andere geeignete Speicherzellenelemente und Strukturen verwendet.
  • Während einer Leseoperation wird die Wortleitung 120 aktiviert, um den Transistor 124 einzuschalten, und der auf dem Kondensator 126 gespeicherte Datenbitwert wird durch die Bitleitung 122 durch einen Leseverstärker gelesen. Während einer Schreiboperation wird die Wortleitung 120 aktiviert, um den Transistor 124 einzuschalten und auf den Kondensator 126 zuzugreifen. Der mit der Bitleitung 122 verbundene Leseverstärker wird übersteuert, um durch die Bitleitung 122 und den Transistor 124 einen Datenbitwert auf den Kondensator 126 zu schreiben.
  • Eine Leseoperation an der Speicherzelle 118 ist eine destruktive Leseoperation. Nach jeder Leseoperation ist der Kondensator 126 auf den Datenbitwert, der gerade gelesen wurde, wiederaufgeladen oder entladen. Zusätzlich entlädt sich auch ohne Leseoperationen die Ladung auf dem Kondensator 126 mit der Zeit. Um den gespeicherten Datenbitwert zu behalten, wird die Speicherzelle 118 durch Lesen und/oder Schreiben der Speicherzelle 118, wie etwa während des Selbstauffrischens, periodisch aufgefrischt. Alle Speicherzellen 118 in der Matrix von Speicherzellen 114 werden periodisch aufgefrischt, um ihre Werte zu behalten.
  • Der Paritätsspeicher 116 speichert Paritätsinformationen für in den Speicherzellen 118 in der Speichermatrix 114 gespeicherte Datenwörter. Wenn zum Beispiel ein Hamming-Code und 8-Bit-Datenwörter verwendet werden, speichert der Paritätsspeicher 116 für jedes Datenwort vier Paritätsbit. Bei 64-Bit-Datenwörtern speichert der Paritätsspeicher 116 für jedes Datenwort acht Paritätsbit. Die Anzahl der Paritätsbit für jedes Datenwort variiert abhängig von der Länge des Datenworts und des verwendeten konkreten ECC-Verfahrens. Mit zunehmender Länge des Datenworts nimmt die Gesamtzahl der in dem Paritätsspeicher 116 für die Speichermatrix 114 gespeicherten Paritätsbit ab.
  • Der sekundäre Leseverstärker bzw. die Auswahllogik 134 schreibt Daten durch die Schreibmatrixdatenleitungen 130 in die Speichermatrix 114. Der sekundäre Leseverstärker bzw. die Auswahllogikschaltung 134 liest Daten durch die Lesematrixdatenleitungen 132 aus der Speichermatrix 114. Die ECC-Schaltung 136 empfängt zu codierende und in die Speichermatrix 114 zu schreibende Daten aus der E/A-Logik 140 auf den bidirektionalen Lese-/Schreibdatenleitungen 138. Die ECC-Schaltung 136 empfängt zu decodierende und korrigierende gelesene Daten aus der Speichermatrix 114, wenn ein Fehler detektiert wird. Die decodierten und korrigierten Daten werden auf den bidirektionalen Lese-/Schreibdatenleitungen 138 der E/A-Logik 140 zugeführt.
  • Wenn die in die Speichermatrix 114 zu schreibenden Daten aus der E/A-Logik 140 maskiert sind, so dass die Daten weniger Byte als die ECC-Wortgröße zum Speichern von Daten in der Speichermatrix 114 enthalten, empfängt die ECC-Schaltung 136 die Daten für das maskierte Datenbyte bzw. die maskierten Maskenbyte für das ECC-Wort aus der Speichermatrix 114. Die ECC-Schaltung 136 decodiert das Datenbyte oder die Datenbyte aus der Speichermatrix 114 und kombiniert die decodierten Daten aus der Speichermatrix 114 dann mit den Daten aus der E/A-Logik 140. Die kombinierten Daten werden dann durch die ECC-Schaltung 136 codiert und in die Speichermatrix 114 geschrieben. Auf diese Weise wird eine Schreiboperation, bei der ein oder mehrere Datenbyte maskiert wurden, mit einer Lese-Modifizier-Schreiboperation ersetzt. Die Lese-Modifizier-Schreiboperation wird sowohl bei einem SDR DRAM als auch bei einem DDR DRAM mit hoher Geschwindigkeit abgeschlossen.
  • 2 ist ein Blockdiagramm einer Ausführungsform einer Lese-Modifizier-Schreiboperation 200. An der Lese-Modifizier-Schreiboperation 200 sind die Speichermatrix 114, die ECC-Schaltung 136, eine externe Schaltung 202 und andere (nicht gezeigte) relevante Schaltkreise beteiligt. Bei dieser Ausführungsform beträgt die ECC-Wortlänge 4 Byte (d. h. 32 Bit). Bei anderen Ausführungsformen können andere ECC-Wortlängen verwendet werden, wie zum Beispiel 2 Byte oder 8 Byte. Während einer Schreiboperation führt die externe Schaltung 202 der ECC-Schaltung 136 wie bei 204a204c angegeben 3 Datenbyte zu. Bei dieser Ausführungsform wurde wie bei 204d angegeben ein Datenbyte maskiert. Da die ECC-Schaltung 136 eine ECC-Wortlänge von 32 Bit aufweist, empfängt die ECC-Schaltung 136 die Daten für das maskierte Byte 204d aus der Speichermatrix 114 wie bei 206d angegeben als Reaktion auf den Leseteil der Lese-Modifizier-Schreiboperation. Die anderen unmaskierten Byte werden wie bei 206a206c angegeben für das ECC-Wort aus der Speichermatrix 114 nicht benutzt, da sie von der externen Schaltung 202 bereitgestellt werden.
  • Die ECC-Schaltung 136 decodiert das Byte 206d aus der Spei chermatrix 114 und korrigiert die Daten, wenn ein falsches Datenbit detektiert wird. Das decodierte Byte 206d wird mit den Byte 204a204c aus der externen Schaltung 202 kombiniert, um ein vollständiges Datenwort zur Codierung während des Modifizierteils der Lese-Modifizier-Schreiboperation zu bilden. Die ECC-Schaltung 136 codiert dann das vollständige Datenwort. Die Byte des codierten Datenworts werden dann wie bei 208a208d angegeben als Reaktion auf den Schreibteil der Lese-Modifizier-Schreiboperation in die Speichermatrix 114 geschrieben. Bei anderen Ausführungsformen können zwei oder drei der Byte 204a204d maskiert werden. In jedem Fall werden die Daten für die maskierten Byte aus der Speichermatrix 114 gelesen und mit den unmaskierten Byte aus der externen Schaltung 202 kombiniert.
  • 3 ist ein Impulsdiagramm 300 einer Ausführungsform der Zeitsteuerung von Signalen für eine Lese-Modifizier-Schreiboperation für die Speicheranordnung 100. Das Impulsdiagramm 300 enthält ein Taktsignal (CLK) 302 auf dem Speicherkommunikationspfad 104, ein erstes Spaltenauswahlleitungslesesignal (CSLR0) 304 auf den Lesespaltenauswahlleitungen 110, ein zweites Spaltenauswahlleitungslesesignal (CSLR1) 306 auf den Lesespaltenauswahlleitungen 110, ein drittes Spaltenauswahlleitungslesesignal (CSLR2) 308 auf den Lesespaltenauswahlleitungen 110 und ein viertes Spaltenauswahlleitungslesesignal (CSLR3) 310 auf den Lesespaltenauswahlleitungen 110. Das Impulsdiagramm 300 enthält außerdem ein erstes Spaltenauswahlleitungsschreibsignal (CSLW0) 312 auf den Schreibspaltenauswahlleitungen 112, ein zweites Spaltenauswahlleitungsschreibsignal (CSLW1) 314 auf den Schreibspaltenauswahlleitungen 112, ein drittes Spaltenauswahlleitungsschreibsignal (CSLW2) 316 auf den Schreibspaltenauswahlleitungen 112 und ein viertes Spaltenauswahlleitungsschreibsignal (CSLW3) 318 auf den Schreibspaltenauswahlleitungen 112. Das Impulsdiagramm 300 enthält außerdem ein Lokaldatenleitungslesesignal (LDQR) 320 auf den Lesematrixdatenleitungen 132, ein Lokaldatenleitungsschreibsignal (LDQW) 322 auf den Schreibmatrixdatenleitungen 130, ein erstes Bitleitungssignal (BL0) 324 auf einer ersten Bitleitung 122, ein zweites Bitleitungssignal (BL1) 326 auf einer zweiten Bitleitung 122, ein drittes Bitleitungssignal (BL2) 328 auf einer dritten Bitleitung 122 und ein viertes Bitleitungssignal (BL3) 330 auf einer vierten Bitleitung 122.
  • Das Impulsdiagramm 300 zeigt Lese-Modifizier-Schreiboperationen für eine Burstlänge von vier. Bei anderen Ausführungsformen werden andere geeignete Burstlängen verwendet. Jede dargestellte Lese-Modifizier-Schreiboperation liest und schreibt in eine einzelne Speicherzelle 118. Es werden mehrere Signale, die den in dem Impulsdiagramm 300 dargestellten Signalen ähnlich sind, parallel verwendet, um mehrere Speicherzellen 118 auf der Basis der ECC-Wortlänge zu lesen und zu schreiben.
  • An der ansteigenden Flanke 332 des CLK-Signals 302 wird der Leseteil der ersten Lese-Modifizier-Schreiboperation für ein erstes Bit in dem Burst eingeleitet. Als Reaktion auf den Leseteil geht das CSLR0-Signal 304 bei 334 zu logisch hoch über, um eine erste Speicherzelle für Lesezugriff auszuwählen. Die erste Speicherzelle speichert ein anstelle eines nicht durch die externe Schaltung bereitgestellten maskierten Datenbits zu verwendendes Datenbit. Als Reaktion auf die ansteigende Flanke 334 des CSLR0-Signals 304 wird der Datenbitwert wie bei 338 auf dem BL0-Signal 324 angegeben gelesen. Der Datenbitwert wird auf den Lesematrixdatenleitungen 132 wie bei 336 auf dem LDQR-Signal 320 angegeben von der ersten Bitleitung zu dem sekundären Leseverstärker bzw. der Auswahl logik 134 geleitet. Nachdem der Datenbitwert gelesen wurde, geht das CSLR0-Signal 304 bei 340 zu logisch niedrig über.
  • Zwischen der fallenden Flanke 340 des CSLR0-Signals 304 und der ansteigenden Flanke 342 des CSLW0-Signals 312 wird der Modifizierteil der ersten Lese-Modifizier-Schreiboperation des Bursts ausgeführt. Während dieser Zeit kombiniert die ECC-Schaltung 136 die aus der externen Schaltung empfangenen Daten mit den aus der Speichermatrix 114 empfangenen Daten und codiert die kombinierten Daten, um ein erstes codiertes Datenwort bereitzustellen. Die Länge dieses Modifizierteils variiert auf der Basis davon, ob der Speicher ein SDR DRAM oder ein DDR DRAM ist, und der ECC-Korrekturzeit.
  • Der Schreibteil der ersten Lese-Modifizier-Schreiboperation des Bursts wird nach der nächsten ansteigenden Flanke 352 des CLK-Signals 302 eingeleitet. Als Reaktion auf die Schreiboperation geht das CSLW0-Signal 312 bei 342 zu logisch hoch über, um die erste Speicherzelle für Schreibzugriff auszuwählen. Als Reaktion auf die ansteigende Flanke 342 des CSLW0-Signals 312 stellt der sekundäre Leseverstärker bzw. die Auswahllogik 134 wie bei 344 auf dem LDQW-Signal 322 angegeben das Datenbit auf den Schreibmatrixdatenleitungen 130 bereit. Das bei 344 auf dem LDQW-Signal 322 angegebene Datenbit wird wie bei 346 auf dem BL0-Signal 324 angegeben zu der ersten Bitleitung geleitet. Das Datenbit wird in der ersten Speicherzelle gespeichert. Die erste Speicherzelle speichert nun ein Datenbit des ersten codierten Datenworts.
  • Gleichzeitig mit dem Schreiben des Datenbit in die erste Speicherzelle wie bei 346 des BR0-Signals 324 angegeben findet die Leseoperation für das folgende Datenbit in dem Burst statt. An der ansteigenden Flanke 352 des CLK-Signals 302 wird der Leseteil einer zweiten Lese-Modifizier-Schreiboperation für das zweite Bit in dem Burst eingeleitet. Als Reaktion auf den Leseteil geht das CSLR1-Signal 306 bei 354 zu logisch hoch über, um eine zweite Speicherzelle für Lesezugriff auszuwählen. Die zweite Speicherzelle speichert ein anstelle eines nicht durch die externe Schaltung bereitgestellten maskierten Datenbits zu verwendendes Datenbit. Als Reaktion auf die ansteigende Flanke 354 des CSLR1-Signals 306 wird der Datenbitwert wie bei 358 auf dem BL1-Signal 326 angegeben gelesen. Der Datenbitwert wird wie bei 356 auf dem LDQR-Signal 320 angegeben auf den Lesematrixdatenleitungen 132 von der zweiten Bitleitung zu dem sekundären Leseverstärker bzw. der Auswahllogik 134 geleitet. Nachdem der Datenbitwert gelesen wurde, geht das CSLR1-Signal 306 bei 360 zu logisch niedrig über. Deshalb werden die Daten wie bei 346 auf dem BL0-Signal 324 angegeben im Wesentlichen gleichzeitig mit dem Lesen von Daten aus einer zweiten Speicherzelle in der Speichermatrix 114 wie bei 358 auf dem BL1-Signal 326 angegeben in eine erste Speicherzelle in der Speichermatrix 314 geschrieben. Auf diese Weise kann die Speicheranordnung 100 während einer Lese-Modifizier-Schreiboperation mit hoher Geschwindigkeit operieren.
  • Zwischen der fallenden Flanke 360 des CSLR1-Signals 306 und der ansteigenden Flanke 362 des CSLW1-Signals 314 wird der Modifizierteil der zweiten Lese-Modifizier-Schreiboperation des Bursts ausgeführt. Während dieser Zeit kombiniert die ECC-Schaltung 136 die aus der externen Schaltung empfangenen Daten mit den aus der Speichermatrix 114 empfangenen Daten und codiert die kombinierten Daten, um ein zweites codiertes Datenwort bereitzustellen.
  • Der Schreibteil der zweiten Lese-Modifizier-Schreiboperation des Bursts wird nach der nächsten ansteigenden Flanke 372 des CLK-Signals 302 eingeleitet. Als Reaktion auf die Schreiboperation geht das CSLW1-Signal 314 bei 362 zu logisch hoch über, um die zweite Speicherzelle für Schreibzugriff auszuwählen. Als Reaktion auf die ansteigende Flanke 362 des CSLW1-Signals 314 stellt der sekundäre Leseverstärker bzw. die Auswahllogik 134 wie bei 364 auf dem LDQW-Signal 322 angegeben das Datenbit auf den Schreibmatrixdatenleitungen 130 bereit. Das Datenbit bei 364 auf dem LDQW-Signal 322 wird wie bei 366 auf dem BL1-Signal 326 angegeben zu der zweiten Bitleitung geleitet. Das Datenbit wird in der zweiten Speicherzelle gespeichert. Die zweite Speicherzelle speichert nun ein Datenbit des zweiten codierten Datenworts.
  • Gleichzeitig mit dem Schreiben des Datenbit in die zweite Speicherzelle wie bei 366 des BR1-Signals 326 angegeben findet die Leseoperation für das folgende Datenbit in dem Burst statt. An der ansteigenden Flanke 372 des CLK-Signals 302 wird der Leseteil einer dritten Lese-Modifizier-Schreiboperation für das dritte Bit in dem Burst eingeleitet. Als Reaktion auf die Leseoperation geht das CSLR2-Signal 308 bei 374 zu logisch hoch über, um eine dritte Speicherzelle für Lesezugriff auszuwählen. Die dritte Speicherzelle speichert ein anstelle eines nicht durch die externe Schaltung bereitgestellten maskierten Datenbits zu verwendendes Datenbit. Als Reaktion auf die ansteigende Flanke 374 des CSLR2-Signals 308 wird der Datenbitwert wie bei 378 auf dem BL2-Signal 328 angegeben gelesen. Der Datenbitwert wird wie bei 376 auf dem LDQR-Signal 320 angegeben auf den Lesematrixdatenleitungen 132 von der dritten Bitleitung zu dem sekundären Leseverstärker bzw. der Auswahllogik 134 geleitet. Nachdem der Datenbitwert gelesen wurde, geht das CSLR2-Signal 308 bei 380 zu logisch niedrig über. Deshalb werden Daten wie bei 366 auf dem BL1-Signal 326 angegeben im Wesentlichen gleichzeitig mit dem Lesen von Daten aus einer dritten Speicherzelle in der Speichermatrix 114 wie bei 378 auf dem BL2-Signal 328 angegeben in eine zweite Speicherzelle in der Speichermatrix 314 geschrieben.
  • Zwischen der fallenden Flanke 380 des CSLR2-Signals 308 und der ansteigenden Flanke 382 des CSLW2-Signals 316 wird der Modifizierteil der dritten Lese-Modifizier-Schreiboperation des Bursts ausgeführt. Während dieser Zeit kombiniert die ECC-Schaltung 136 die aus der externen Schaltung empfangenen Daten mit den aus der Speichermatrix 114 empfangenen Daten und codiert die kombinierten Daten, um ein drittes codiertes Datenwort bereitzustellen.
  • Der Schreibteil für die dritte Lese-Modifizier-Schreiboperation des Bursts wird nach der nächsten ansteigenden Flanke 392 des CLK-Signals 302 eingeleitet. Als Reaktion auf die Schreiboperation geht das CSLW2-Signal 316 bei 382 zu logisch hoch über, um die dritte Speicherzelle für Schreibzugriff auszuwählen. Als Reaktion auf die ansteigende Flanke 382 des CSLW2-Signals 316 stellt der sekundäre Leseverstärker bzw. die Auswahllogik 134 wie bei 384 auf dem LDQW-Signal 322 angegeben das Datenbit auf den Schreibmatrixdatenleitungen 130 bereit. Das Datenbit bei 384 auf dem LDQW-Signal 322 wird wie bei 386 auf dem BL2-Signal 328 angegeben zu der dritten Bitleitung geleitet. Das Datenbit wird in der dritten Speicherzelle gespeichert. Die dritte Speicherzelle speichert nun ein Datenbit des dritten codierten Datenworts.
  • Gleichzeitig mit dem Schreiben des Datenbit in die dritte Speicherzelle wie bei 386 des BR2-Signals 328 angegeben findet die Leseoperation für das folgende Datenbit in dem Burst statt. An der ansteigenden Flanke 392 des CLK-Signals 302 wird der Leseteil einer Lese-Modifizier-Schreiboperation für das vierte Bit in dem Burst eingeleitet. Als Reaktion auf die Leseoperation geht das CSLR3-Signal 310 bei 394 zu logisch hoch über, um eine vierte Speicherzelle für Lesezugriff auszuwählen. Die vierte Speicherzelle speichert ein anstelle eines nicht durch die externe Schaltung bereitgestellten maskierten Datenbits zu verwendendes Datenbit. Als Reaktion auf die ansteigende Flanke 394 des CSLR3-Signals 310 wird wie bei 398 auf dem BL3-Signal 330 angegeben der Datenbitwert gelesen. Der Datenbitwert wird wie bei 396 auf dem LDQR-Signal 320 angegeben auf den Lesematrixdatenleitungen 132 von der vierten Bitleitung zu dem sekundären Leseverstärker bzw. der Auswahllogik 134 geleitet. Nachdem der Datenbitwert gelesen wurde, geht das CSLR3-Signal 310 bei 400 zu logisch niedrig über. Deshalb werden Daten wie bei 386 auf dem BL2-Signal 328 angegeben im Wesentlichen gleichzeitig mit dem Lesen von Daten aus einer vierten Speicherzelle in der Speichermatrix 114 wie bei 398 auf dem BL3-Signal 330 angegeben in eine dritte Speicherzelle in der Speichermatrix 114 geschrieben.
  • Zwischen der fallenden Flanke 400 des CSLR3-Signals 310 und der ansteigenden Flanke 402 des CSLW3-Signals 318 wird der Modifizierteil der vierten Lese-Modifizier-Schreiboperation des Bursts ausgeführt. Während dieser Zeit kombiniert die ECC-Schaltung 136 die aus der externen Schaltung empfangenen Daten mit den aus der Speichermatrix 114 empfangenen Daten und codiert die kombinierten Daten, um ein viertes codiertes Datenwort bereitzustellen.
  • Der Schreibteil für die vierte Lese-Modifizier-Schreiboperation des Bursts wird nach der nächsten ansteigenden Flanke 393 des CLK-Signals 302 eingeleitet. Als Reaktion auf die Schreiboperation geht das CSLW3-Signal 318 bei 402 zu logisch hoch über, um die vierte Speicherzelle für Schreibzugriff auszuwählen. Als Reaktion auf die ansteigende Flanke 402 des CSLW3-Signals 318 stellt der sekundäre Leseverstärker bzw. die Auswahllogik 134 wie bei 404 auf dem LDQW-Signal 322 angegeben das Datenbit auf den Schreibmatrixdatenleitungen 322 bereit. Das Datenbit bei 404 auf dem LDQW-Signal 322 wird wie bei 406 auf dem BL3-Signal 330 angegeben zu der vierten Bitleitung geleitet. Das Datenbit wird in der vierten Speicherzelle gespeichert. Die vierte Speicherzelle speichert nun ein Datenbit des vierten codierten Datenworts.
  • Bei der dargestellten Ausführungsform des Impulsdiagramms 300 wurden die Verzögerungen zwischen den Spaltenauswahlleitungslesesignalen und den Spaltenauswahlleitungsschreibsignalen aus den Flanken des CLK-Signals 302 abgeleitet. Bei anderen Ausführungsformen wird jedoch zur Bereitstellung der Flanken anstelle der Flanken des CLK-Signals 302 eine interne Timerschaltung verwendet, um die Verzögerungen zwischen den Spaltenauswahlleitungslesesignalen und den Spaltenauswahlleitungsschreibsignalen abzuleiten. Bei einer Ausführungsform, bei der die Speicheranordnung 100 ein DDR DRAM ist, werden die Verzögerungen zwischen den Spaltenauswahlleitungslesesignalen und den Spaltenauswahlleitungsschreibsignalen aus den Flanken des CLK-Signals 302 abgeleitet. Bei einer Ausführungsform, bei der die Speicheranordnung 100 ein SDRAM ist, werden die Verzögerungen zwischen den Spaltenauswahlleitungslesesignalen und den Spaltenauswahlleitungsschreibsignalen aus den Flanken einer internen Timerschaltung abgeleitet.
  • 4 ist ein Blockdiagramm einer Ausführungsform einer Schaltung 500 für einen DDR DRAM. Für SDR DRAM führt der Bursttyp zu keinen Problemen. Für SDR DRAM ist ein Satz Daten pro Taktzyklus erforderlich, und Steuerschaltkreise können die Adressen und Daten korrekt mit der Kernfrequenz des SRD DRAM ordnen. Für DDR DRAM beträgt die Kernfrequenz jedoch die Hälfte der Datenrate. Der Kern des DDR DRAM verwendet deshalb ein 2-Bit-Prefetch, um zwei Bit Daten parallel pro Bit der seriellen Datenausgabe bereitzustellen (z. B. 64 Bit für eine x32-DDR-Schnittstelle).
  • Verschachtelte Bursts und sequenzielle Bursts mit geraden Startadressen kombinieren Daten aus Burstadressen 0 und 1, 2 und 3, 4 und 5 usw. an der ansteigenden bzw. fallenden Taktflanke. Sequenzielle Bursts mit ungeraden Startadressen kombinieren jedoch Daten aus Burstadressen 1 und 2, 3 und 4, 5 und 6 usw. Wenn das ECC-Wort Daten aus Adressen für eine erlaubte Burstsequenz, nicht aber für eine andere kombiniert, werden zwei ECC-Wörter gleichzeitig ausgewertet. Die angeforderten Bit werden dann kombiniert und die anderen Bit verworfen. Zum Beispiel enthält ein ECC-Wort Daten aus Burstadressen 0 und 10 und ein anderes ECC-Wort enthält Daten aus Burstadressen 2 und 3. Wenn beide Burstadressen 1 und 2 angefordert werden, werden beide ECC-Wörter gleichzeitig ausgewählt und decodiert. Die Datenbit aus Burstadressen 1 und 2 werden verwendet, und die Datenbit aus Burstadressen 0 und 3 werden verworfen. 4 zeigt eine Ausführungsform zweier ECC-Blöcke zum Ermöglichen dieses Prozesses in einem DDR DRAM.
  • Die Schaltung 500 enthält eine Speichermatrix 506, einen unteren ECC-Block 516, einen oberen ECC-Block 518 und eine Organisations-, Burstbit- und Datenmaskenauswahlschaltung 524. Bei dieser Ausführungsform beträgt das ECC-Wort 64 Bit, und es werden acht Paritätsbit für jedes ECC-Wort verwendet. Bei anderen Ausführungsformen werden andere geeignete ECC- Wortlängen mit ihrer jeweiligen Anzahl von Paritätsbit verwendet.
  • Der untere ECC-Block 516 ist durch die lokale Datenleitung (LDQ), Master-Datenleitungen (MDQ) 508a508d und erste Master-Paritätsdatenleitungen (MDQP0) 510 elektrisch mit der Speichermatrix 506 gekoppelt. Der untere ECC-Block 516 ist durch erste Fehlerkorrekturcodedatenleitungen (ECCDQ0) 520a und zweite Fehlerkorrekturcodedatenleitungen (ECCDQ1) 520b elektrisch mit der Organisations-, Burstbit- und Datenmaskenauswahlschaltung 524 gekoppelt. Der obere ECC-Block 518 ist durch die lokale Datenleitung (LDQ), Master-Datenleitungen (MDQ) 512a512d und zweite Master-Paritätsdatenleitungen (MDQP1) 514 elektrisch mit der Speichermatrix 506 gekoppelt. Der obere ECC-Block 518 ist durch dritte Fehlerkorrekturcodedatenleitungen (ECCDQ2) 522a und vierte Fehlerkorrekturcodedatenleitungen (ECCDQ3) 522b elektrisch mit der Organisations-, Burstbit- und Datenmaskenauswahlschaltung 524 gekoppelt. Die Organisations-, Burstbit- und Datenmaskenauswahlschaltung 524 ist durch Lese-/Schreibdatenleitungen (RWD) 526 elektrisch mit einer externen Schaltung gekoppelt. Der Einfachheit halber stellt die Schaltung 500 nur einen Satz LDQ und MDQ dar, obwohl die LDQ und MDQ verdoppelt sind, um einen Satz für Leseoperationen und einen Satz für Schreiboperationen bereitzustellen.
  • Der untere ECC-Block 516 empfängt 64-Bit-Datenwörter durch Datenleitungen MDQ0–MDQ7 und assoziierte acht Paritätsbit durch Paritätsdatenleitungen MDQP0. Der untere ECC-Block 516 decodiert jedes 64-Bit-Datenwort und korrigiert etwaige ausgefallene Bit, wenn ein Fehler detektiert wird. Eine erste Hälfte jedes decodierten Datenworts wird auf ECCDQ0 520a und eine zweite Hälfte jedes decodierten Datenworts auf ECCDQ1 520b ausgegeben.
  • Der obere ECC-Block 518 empfängt 64-Bit-Datenwörter durch Datenleitungen MDQ8–MDQ15 und assoziierte acht Paritätsbit durch Paritätsdatenleitungen MDQP1. Der obere ECC-Block 518 decodiert jedes 64-Bit-Datenwort und korrigiert etwaige ausgefallene Bit, wenn ein Fehler detektiert wird. Eine erste Hälfte jedes decodierten Datenworts wird auf ECCDQ2 522a und eine zweite Hälfte jedes decodierten Datenworts auf ECCDQ3 522b ausgegeben.
  • Während einer Leseoperation empfängt der untere ECC-Block 516 ein codiertes Datenwort und die Paritätsinformationen für das codierte Datenwort aus der Speichermatrix 506. Das codierte Datenwort wird decodiert und korrigiert, wenn ein Fehler detektiert wird, und durch ECCDQ0 520a und ECCDQ1 520b zu der Organisations-, Burstbit- und Datenmaskenauswahlschaltung 524 geleitet. Der obere ECC-Block 518 empfängt ein codiertes Datenwort und die Paritätsinformationen für das codierte Datenwort aus der Speichermatrix 506. Das codierte Datenwort wird decodiert und korrigiert, wenn ein Fehler detektiert wird, und durch ECCDQ2 522a und ECCDQ3 522b zu der Organisations-, Burstbit- und Datenmaskenauswahlschaltung 524 geleitet. Die Organisations-, Burstbit- und Datenmaskenauswahlschaltung 524 wählt die aus dem unteren ECC-Block 516 geleiteten 64 Bit Daten, die aus dem oberen ECC-Block 518 geleiteten 64 Bit Daten oder 32 Bit Daten aus dem unteren ECC-Block 516 und 32 Bit Daten aus dem oberen ECC-Block 518, um das 64-Bit-Datenwort auf RWD 526 bereitzustellen.
  • Ausführungsformen der vorliegenden Erfindung schaffen eine Speicheranordnung, die ECC mit ECC-Wörtern verwendet, die mehr Bit enthalten, als aus einer externen Schaltung zum Schrieben in die Speichermatrix bereitgestellt werden. Längere ECC-Wörter verbessern die Chipgrößeneffizienz im Vergleich zu kürzeren ECC-Wörtern. Wenn die ECC-Wortgröße eines DRAM mit ECC länger als das kürzeste in der Schreiboperation des DRAM verwendete Wort ist, werden Daten aus der Speichermatrix mit externen Daten kombiniert, um die Parität bei einer Lese-Modifizier-Schreiboperation zu berechnen. Eine Lese-Modifizier-Schreiboperation wird unter Verwendung separater Lesematrixdatenleitungen und Schreibmatrixdatenleitungen und Lesespaltenauswahlleitungen und Schreibspaltenauswahlleitungen mit ausreichender Geschwindigkeit ausgeführt, um den Zeitsteuerungsspezifikationen für SDR DRAM und DDR DRAM gerecht zu werden.
  • Obwohl hier spezifische Ausführungsformen dargestellt und beschrieben wurden, ist für Durchschnittsfachleute ersichtlich, dass vielfältige alternative und/oder äquivalente Implementierungen die gezeigten und beschriebenen spezifischen Ausführungsformen ersetzen können, ohne von dem Umfang der vorliegenden Erfindung abzuweichen. Die vorliegende Anmeldung soll jegliche Anpassungen oder Varianten der hier besprochenen spezifischen Ausführungsformen abdecken. Deshalb ist beabsichtigt, dass die vorliegende Erfindung nur durch die Ansprüche und ihre Äquivalente eingeschränkt wird.

Claims (27)

  1. Speicher, umfassend: eine Matrix von Speicherzellen und eine Fehlerkorrekturcodeschaltung, die dafür ausgelegt ist, einen ersten Teil eines ersten Datenworts aus einer externen Schaltung und einen zweiten Teil des ersten Datenworts aus der Matrix von Speicherzellen zu empfangen, den ersten Teil und den zweiten Teil zu kombinieren, um das erste Datenwort bereitzustellen, und das erste Datenwort zum Schreiben in die Matrix von Speicherzellen zu codieren.
  2. Speicher nach Anspruch 1, ferner umfassend: Lesedatenleitungen zum Leiten des zweiten Teils des ersten Datenworts von der Matrix von Speicherzellen zu der Fehlerkorrekturcodeschaltung und Schreibdatenleitungen zum Leiten des codierten ersten Datenworts von der Fehlerkorrekturcodeschaltung zu der Matrix von Speicherzellen.
  3. Speicher nach Anspruch 1 oder 2, ferner umfassend: Lesespaltenauswahlleitungen zum Auswählen von Speicherzellen in der Matrix von Speicherzellen für einen Lesezugriff und Schreibspaltenauswahlleitungen zum Auswählen von Speicherzellen in der Matrix von Speicherzellen für einen Schreibzugriff.
  4. Speicher nach einem der Ansprüche 1 bis 3, ferner umfassend: eine Datenauswahlschaltung; wobei die Fehlerkorrekturcodeschaltung folgendes umfasst: einen ersten Fehlerkorrekturcodeblock, der dafür ausgelegt ist, ein zweites Datenwort zu decodieren und das decodierte zweite Datenwort zu der Datenauswahlschaltung zu leiten und einen zweiten Fehlerkorrekturcodeblock, der dafür ausgelegt ist, ein drittes Datenwort zu decodieren und das decodierte dritte Datenwort zu der Datenauswahlschaltung zu leiten; wobei die Datenauswahlschaltung dafür ausgelegt ist, das decodierte zweite Datenwort, das decodierte dritte Datenwort und einen Teil des decodierten zweiten Datenworts und einen Teil des decodierten dritten Datenworts auszuwählen, um zu der externen Schaltung geleitet zu werden.
  5. Speicher nach einem der Ansprüche 1 bis 4, wobei der Speicher einen dynamischen Direktzugriffsspeicher mit einfacher Datenrate umfasst.
  6. Speicher nach einem der Ansprüche 1 bis 4, wobei der Speicher einen dynamischen Direktzugriffsspeicher mit doppelter Datenrate umfasst.
  7. Speicher, umfassend: eine Matrix von Speicherzellen; Lesedatenleitungen zum Lesen von Daten aus der Matrix von Speicherzellen; Schreibdatenleitungen zum Schreiben von Daten in die Matrix von Speicherzellen und eine Fehlerkorrekturcodeschaltung, die dafür ausgelegt ist, in die Matrix von Speicherzellen zu schreibende externe Daten zu empfangen, die externen Daten mit aus der Matrix von Speicherzellen gelesenen Daten zu kombinieren und die kombinierten Daten für das Schreiben in die Matrix von Speicherzellen zu codieren.
  8. Speicher nach Anspruch 7, ferner umfassend: Lesespaltenauswahlleitungen zum Auswählen von Speicherzellen in der Matrix von Speicherzellen für Lesezugriff und Schreibspaltenauswahlleitungen zum Auswählen von Speicherzellen in der Matrix von Speicherzellen für Schreibzugriff.
  9. Speicher nach Anspruch 8, wobei die Schreibspaltenauswahlleitungen dazu dienen, erste Speicherzellen in der Matrix von Speicherzellen gleichzeitig, während die Lesespaltenauswahlleitungen zweite Speicherzellen in die Matrix von Speicherzellen für Lesezugriff auswählen, für Schreibzugriff auszuwählen.
  10. Speicher nach einem der Ansprüche 7 bis 9, ferner umfassend: bidirektionale Lese-/Schreibdatenleitungen zum Leiten von Daten zwischen der Fehlerkorrekturcodeschaltung und einer Eingangs-/Ausgangsschaltung.
  11. Speicher nach einem der Ansprüche 7 bis 10, wobei der Speicher einen dynamischen Direktzugriffsspeicher mit einfacher Datenrate umfasst.
  12. Speicher nach einem der Ansprüche 7 bis 10, wobei der Speicher einen dynamischen Direktzugriffsspeicher mit doppelter Datenrate umfasst.
  13. Speicher, umfassend: eine Matrix von Speicherzellen; Mittel zum gleichzeitigen Schreiben von Daten in die Matrix von Speicherzellen und Lesen von Daten aus der Matrix von Speicherzellen und Mittel zum Codieren eines Datenworts, das mindestens ein Byte aus einer externen Schaltung und mindestens ein Byte aus der Matrix von Speicherzellen enthält.
  14. Speicher nach Anspruch 13, wobei das mindestens eine Byte aus der Matrix von Speicherzellen mindestens ein nicht durch die externe Schaltung bereitgestelltes maskiertes Byte umfasst.
  15. Speicher nach Anspruch 13 oder 14, wobei das Datenwort mindestens 16 Bit umfasst.
  16. Speicher nach einem der Ansprüche 13 bis 15, wobei der Speicher einen dynamischen Direktzugriffsspeicher mit einfacher Datenrate umfasst.
  17. Speicher nach einem der Ansprüche 13 bis 15, wobei der Speicher einen dynamischen Direktzugriffsspeicher mit doppelter Datenrate umfasst.
  18. Verfahren zum Schreiben in einen Speicher, mit den folgenden Schritten: Empfangen erster externer Daten aus einer externen Schaltung; Lesen erster Daten aus einer Speichermatrix durch einen ersten Datenpfad; Kombinieren der ersten externen Daten mit den aus der Speichermatrix gelesenen ersten Daten; Codieren der kombinierten Daten und Schreiben der codierten kombinierten Daten in die Speichermatrix durch einen zweiten Datenpfad.
  19. Verfahren nach Anspruch 18, ferner mit den folgenden Schritten: Empfangen zweiter externer Daten aus der externen Schaltung und Lesen von zweiten Daten aus der Speichermatrix durch den ersten Datenpfad gleichzeitig mit dem Schreiben der codierten kombinierten Daten in die Speichermatrix durch den zweiten Datenpfad.
  20. Verfahren nach Anspruch 18 oder 19, ferner mit dem folgenden Schritt: Decodieren der ersten Daten aus der Speichermatrix.
  21. Verfahren nach Anspruch 20, ferner mit dem folgenden Schritt: Korrigieren der ersten Daten aus der Speichermatrix als Reaktion auf das Detektieren eines Fehlers.
  22. Verfahren nach einem der Ansprüche 18 bis 21, wobei das Empfangen der ersten externen Daten das Empfangen der ersten externen Daten mit einer einfachen Datenrate umfasst.
  23. Verfahren nach einem der Ansprüche 18 bis 21, wobei das Empfangen der ersten externen Daten das Empfangen der ersten externen Daten mit einer doppelten Datenrate umfasst.
  24. Verfahren zum Zugreifen auf einen Speicher, mit den folgenden Schritten: Empfangen eines ersten Teils eines Datenworts von einer externen Schaltung; Empfangen eines zweiten Teils des Datenworts von einer Matrix von Speicherzellen; Kombinieren des ersten Teils und des zweiten Teils, um das Datenwort bereitzustellen; Codieren des Datenworts und Schreiben des codierten Datenworts in die Matrix von Speicherzellen.
  25. Verfahren nach Anspruch 24, wobei das Empfangen des zweiten Teils das Empfangen des zweiten Teils durch erste Datenleitungen umfasst und wobei das Schreiben des codierten Datenworts das Schreiben des codierten Datenworts durch zweite Datenleitungen umfasst.
  26. Verfahren nach Anspruch 24 oder 25, ferner mit den folgenden Schritten: Auswählen erster Speicherzellen für Lesezugriff mit ersten Auswahlleitungen zum Empfangen des zweiten Teils und Auswählen zweiter Speicherzellen für Schreibzugriff mit zweiten Auswahlleitungen zum Schreiben des codierten Datenworts.
  27. Verfahren nach einem der Ansprüche 24 bis 26, ferner mit den folgenden Schritten: Lesen eines ersten Datenworts aus der Matrix von Speicherzellen; Decodieren des ersten Datenworts; Lesen eines zweiten Datenworts aus der Matrix von Speicherzellen; Decodieren des zweiten Datenworts und Leiten des ersten Datenworts und/oder des zweiten Datenworts und/oder eines Teils des ersten Datenworts und eines Teils des zweiten Datenworts zu der externen Schaltung.
DE102008003043A 2007-01-05 2008-01-02 Speicher mit Fehlerkorrekturcodeschaltung Withdrawn DE102008003043A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/650,169 2007-01-05
US11/650,169 US20080168331A1 (en) 2007-01-05 2007-01-05 Memory including error correction code circuit

Publications (1)

Publication Number Publication Date
DE102008003043A1 true DE102008003043A1 (de) 2008-07-31

Family

ID=39564106

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102008003043A Withdrawn DE102008003043A1 (de) 2007-01-05 2008-01-02 Speicher mit Fehlerkorrekturcodeschaltung

Country Status (2)

Country Link
US (1) US20080168331A1 (de)
DE (1) DE102008003043A1 (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100855979B1 (ko) * 2007-02-13 2008-09-02 삼성전자주식회사 바이트 마스킹 동작을 위한 반도체 메모리 장치 및 패리티데이터 생성 방법
US7930615B2 (en) * 2007-05-31 2011-04-19 Agere Systems Inc. Memory device with error correction capability and preemptive partial word write operation
US8347165B2 (en) 2007-12-17 2013-01-01 Micron Technology, Inc. Self-timed error correcting code evaluation system and method
US8583987B2 (en) * 2010-11-16 2013-11-12 Micron Technology, Inc. Method and apparatus to perform concurrent read and write memory operations
US9003260B2 (en) * 2011-06-29 2015-04-07 Texas Instruments Incorporated Partial-writes to ECC (error check code) enabled memories
KR20130012737A (ko) * 2011-07-26 2013-02-05 에스케이하이닉스 주식회사 반도체 메모리 장치 및 이를 포함하는 반도체 시스템
US8806316B2 (en) 2012-01-11 2014-08-12 Micron Technology, Inc. Circuits, integrated circuits, and methods for interleaved parity computation
US9009570B2 (en) 2012-06-07 2015-04-14 Micron Technology, Inc. Integrity of an address bus
US9323608B2 (en) 2012-06-07 2016-04-26 Micron Technology, Inc. Integrity of a data bus
US9037949B1 (en) * 2012-06-21 2015-05-19 Rambus Inc. Error correction in a memory device
US9734921B2 (en) 2012-11-06 2017-08-15 Rambus Inc. Memory repair using external tags
KR102178137B1 (ko) * 2014-08-26 2020-11-12 삼성전자주식회사 반도체 메모리 장치, 이의 에러 정정 방법 및 이를 포함하는 메모리 시스템
KR20170035103A (ko) 2015-09-22 2017-03-30 삼성전자주식회사 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
KR20170045806A (ko) 2015-10-20 2017-04-28 삼성전자주식회사 반도체 메모리 장치 및 이의 동작 방법
US9778984B1 (en) * 2016-11-01 2017-10-03 Invensas Corporation Enhanced memory reliability in stacked memory devices
US11023173B2 (en) * 2019-09-03 2021-06-01 Micron Technology, Inc. Apparatuses and methods to mask write operations for a mode of operation using ECC circuitry
US11385963B1 (en) * 2021-02-24 2022-07-12 Western Digital Technologies, Inc. Usage of data mask in DRAM write
US20240006012A1 (en) * 2022-07-01 2024-01-04 Ampere Computing Llc Virtualized scan chain testing in a random access memory (ram) array

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4181977A (en) * 1978-06-19 1980-01-01 International Business Machines Corporation Random access bubble memory with unified read/write cycle
US4335459A (en) * 1980-05-20 1982-06-15 Miller Richard L Single chip random access memory with increased yield and reliability
US5001665A (en) * 1986-06-26 1991-03-19 Motorola, Inc. Addressing technique for providing read, modify and write operations in a single data processing cycle with serpentine configured RAMs
US4884271A (en) * 1987-12-28 1989-11-28 International Business Machines Corporation Error checking and correcting for read-modified-write operations
US4888773A (en) * 1988-06-15 1989-12-19 International Business Machines Corporation Smart memory card architecture and interface
US5008886A (en) * 1989-01-27 1991-04-16 Digital Equipment Corporation Read-modify-write operation
US5014273A (en) * 1989-01-27 1991-05-07 Digital Equipment Corporation Bad data algorithm
CA2066454C (en) * 1989-09-11 1998-08-25 Bhikoo J. Patel Apparatus and method for maintaining cache/main memory consistency
US5307356A (en) * 1990-04-16 1994-04-26 International Business Machines Corporation Interlocked on-chip ECC system
US5313624A (en) * 1991-05-14 1994-05-17 Next Computer, Inc. DRAM multiplexer
US5325375A (en) * 1991-06-28 1994-06-28 Sun Microsystems, Inc. Method and apparatus for non-atomic level parity protection for storing data in a random access memory
US5327570A (en) * 1991-07-22 1994-07-05 International Business Machines Corporation Multiprocessor system having local write cache within each data processor node
JP3599334B2 (ja) * 1991-08-16 2004-12-08 マルティチップ テクノロジー, インコーポレイテッド 高性能ダイナミックメモリシステム
US5459842A (en) * 1992-06-26 1995-10-17 International Business Machines Corporation System for combining data from multiple CPU write requests via buffers and using read-modify-write operation to write the combined data to the memory
US5666515A (en) * 1993-02-18 1997-09-09 Unisys Corporation Information processing system having multiple modules and a memory on a bus, where any module can lock an addressable portion of the memory by sending retry signals to other modules that try to read at the locked address
US5452429A (en) * 1993-11-17 1995-09-19 International Business Machines Corporation Error correction code on add-on cards for writing portions of data words
US5488691A (en) * 1993-11-17 1996-01-30 International Business Machines Corporation Memory card, computer system and method of operation for differentiating the use of read-modify-write cycles in operating and initializaiton modes
GB2289779B (en) * 1994-05-24 1999-04-28 Intel Corp Method and apparatus for automatically scrubbing ECC errors in memory via hardware
US5802586A (en) * 1995-02-27 1998-09-01 Motorola, Inc. Cache memory having a read-modify-write operation and simultaneous burst read and write operations and a method therefor
US5802587A (en) * 1995-04-25 1998-09-01 Oki Data Corporation Memory controller adapted for rapid block access operations
US5860112A (en) * 1995-12-27 1999-01-12 Intel Corporation Method and apparatus for blending bus writes and cache write-backs to memory
US6052327A (en) * 1997-10-14 2000-04-18 Altera Corporation Dual-port programmable logic device variable depth and width memory array
KR100281896B1 (ko) * 1998-07-16 2001-02-15 윤종용 저속 테스트 장비로 테스트되는 더블 데이터 레이트 동기식 디램 집적 회로 장치
US6701480B1 (en) * 2000-03-08 2004-03-02 Rockwell Automation Technologies, Inc. System and method for providing error check and correction in memory systems
US6339541B1 (en) * 2000-06-16 2002-01-15 United Memories, Inc. Architecture for high speed memory circuit having a relatively large number of internal data lines
US6742067B2 (en) * 2001-04-20 2004-05-25 Silicon Integrated System Corp. Personal computer main board for mounting therein memory module
FR2831971A3 (fr) * 2001-11-02 2003-05-09 Iroc Tech Procede de memorisation de donnees avec correction d'erreur
US6718444B1 (en) * 2001-12-20 2004-04-06 Advanced Micro Devices, Inc. Read-modify-write for partial writes in a memory controller
US7124260B2 (en) * 2002-08-26 2006-10-17 Micron Technology, Inc. Modified persistent auto precharge command protocol system and method for memory devices
US7206891B2 (en) * 2002-09-26 2007-04-17 Lsi Logic Corporation Multi-port memory controller having independent ECC encoders
US7167955B1 (en) * 2003-12-23 2007-01-23 Unisys Corporation System and method for testing and initializing directory store memory
JP2006031795A (ja) * 2004-07-14 2006-02-02 Renesas Technology Corp 不揮発性半導体記憶装置

Also Published As

Publication number Publication date
US20080168331A1 (en) 2008-07-10

Similar Documents

Publication Publication Date Title
DE102008003043A1 (de) Speicher mit Fehlerkorrekturcodeschaltung
DE102020115736A1 (de) Halbleiterspeichervorrichtung und Verfahren zum Betreiben der Halbleiterspeichervorrichtungen
DE69828234T2 (de) Integrierte Halbleiterschaltungsvorrichtung
DE102006054998B4 (de) Latenzsteuerschaltung, Halbleiterspeicherbauelement und Verfahren zum Steuern der Latenz
DE3689128T2 (de) Halbleiterspeichergerät mit einer Korrekturfunktion.
DE102008028327B4 (de) Speicherauffrischsystem und -Verfahren
DE102011087354A1 (de) Halbleiterspeicherelement, Verfahren zum Verifizieren einer Multizyklusselbstauffrischungsoperationeines Haibleiterspeicherelements undTestsystem
DE102007038615B4 (de) Speicher mit Speicherbänken und Modusregistern, sowie Verfahren zum Betreiben eines solchen Speichers
DE10350865A1 (de) Speicherbaustein mit variabel verzögerter Spaltenauswahl
DE102007050864B4 (de) Verfahren und Vorrichtung zum Kommunizieren von Befehls- und Adresssignalen
DE102006025108A1 (de) Direktzugriffsspeicher mit ECC
DE102015108143A1 (de) Nand-Vorab-Lese-Fehlerkorrektur
DE102006002888B4 (de) Direktzugriffsspeicher mit niedriger Anfangslatenz
DE102006016247A1 (de) Speicher, Datenverarbeitungssystem, Steuereinheit und Steuerverfahren
DE112005002390T5 (de) Burst-Betrieb für die Speichertransaktion und Speicherkomponenten, welche die zeitweilig multiplexierte Fehlerkorrekturcodierung unterstützen
DE112020006398T5 (de) Geräte, systeme und verfahren zur fehlerkorrektur
DE102006014048A1 (de) Stromsparendes Auffrischschema für DRAMs mit segmentierter Wortleitungsarchitektur
DE60012081T2 (de) Nichtflüchtige Halbleiterspeicheranordnung, die eine Datenleseoperation während einer Datenschreib/lösch-Operation erlaubt
DE102004027121B4 (de) Ein Mehrfachbankchip, der mit einer Steuerung kompatibel ist, die für eine geringere Anzahl von Banken entworfen ist, und ein Verfahren zum Betreiben
DE102005003903B4 (de) System und Verfahren zumn Auffrischen einer dynamischen Speichervorrichtung
DE102018121993A1 (de) Speichervorrichtung zum Verhindern einer Doppelprogrammierung einer Ausfalladresse und Betriebsverfahren dafür
DE102004060348A1 (de) Halbleiterspeichervorrichtung und Gehäuse dazu, und Speicherkarte mit Verwendung derselben
DE19951677A1 (de) Halbleiterspeichervorrichtung
DE19963689A1 (de) Schaltungsanordnung eines integrierten Halbleiterspeichers zum Speichern von Adressen fehlerhafter Speicherzellen
DE112020003768T5 (de) Verfahren zur fehlererkennung und korrektur und entsprechende systeme und geräte dafür

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R081 Change of applicant/patentee

Owner name: INFINEON TECHNOLOGIES AG, DE

Free format text: FORMER OWNER: QIMONDA AG, 81739 MUENCHEN, DE

Owner name: POLARIS INNOVATIONS LTD., IE

Free format text: FORMER OWNER: QIMONDA AG, 81739 MUENCHEN, DE

R082 Change of representative

Representative=s name: EPPING HERMANN FISCHER, PATENTANWALTSGESELLSCH, DE

Representative=s name: EPPING HERMANN FISCHER PATENTANWALTSGESELLSCHA, DE

R081 Change of applicant/patentee

Owner name: POLARIS INNOVATIONS LTD., IE

Free format text: FORMER OWNER: INFINEON TECHNOLOGIES AG, 85579 NEUBIBERG, DE

R082 Change of representative

Representative=s name: EPPING HERMANN FISCHER, PATENTANWALTSGESELLSCH, DE

Representative=s name: EPPING HERMANN FISCHER PATENTANWALTSGESELLSCHA, DE

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee