DE102008003043A1 - Speicher mit Fehlerkorrekturcodeschaltung - Google Patents
Speicher mit Fehlerkorrekturcodeschaltung Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1044—Adding 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online 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
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 Speicheranordnung100 . Die Speicheranordnung100 enthält einen Speichercontroller102 und einen Speicher106 . Der Speichercontroller102 ist durch den Speicherkommunikationspfad104 und externe bidirektionale Lese-/Schreibdatenleitungen (EXT_BI_RWDQ)144 elektrisch mit dem Speicher106 gekoppelt. Der Speicher106 enthält Steuerlogik108 , eine Speichermatrix114 , einen sekundären Leseverstärker bzw. Auswahllogik134 , eine Schaltung136 für Fehlerkorrekturcode (ECC) und Eingabe- /Ausgabe-(E/A)-Logik140 . Bei einer Ausführungsform ist die Speicheranordnung100 ein dynamischer Direktzugriffsspeicher mit Einzeldatenrate (SDR DRAM). Bei einer anderen Ausführungsform ist die Speicheranordnung100 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 Speichermatrix114 gekoppelt. Die Speichermatrix114 enthält mehrere Speicherzellen118 zum Speichern von Daten und mehrerer Speicherzellen118 (d. h. Paritätsspeicher) zum Speichern von Paritätsdaten wie bei116 angegeben. Die Speichermatrix114 ist durch Schreibmatrixdatenleitungen (WADQ)130 und Lesematrixdatenleitungen (RADQ)132 elektrisch mit dem sekundären Leseverstärker bzw. der Auswahllogik134 gekoppelt. Der sekundäre Leseverstärker und die Auswahllogik134 ist elektrisch mit der ECC-Schaltung136 gekoppelt. Die ECC-Schaltung136 ist durch bidirektionale Lese-/Schreibdatenleitungen (BI_RWDQ)138 elektrisch mit der E/A-Logik140 gekoppelt. Die E/A-Logik140 ist durch den Signalpfad142 elektrisch mit der Steuerlogik108 und durch externe bidirektionale Lese-/Schreibdatenleitungen144 mit dem Speichercontroller102 gekoppelt. - In der Speicheranordnung
100 sind die Spaltenauswahlleitungen zwischen der Steuerlogik108 und der Speichermatrix114 separat, um Lesespaltenauswahlleitungen110 zum Auswählen von Speicherzellen für Leseoperationen und Schreibspaltenauswahl leitungen112 zum Auswählen von Speicherzellen für Schreiboperationen bereitzustellen. Zusätzlich sind die Datenleitungen zwischen der Speichermatrix114 und dem sekundären Leseverstärker bzw. der Auswahllogik134 auch getrennt, um Schreibmatrixdatenleitungen130 zum Leiten von Daten zu der Speichermatrix114 während Schreiboperationen und Lesematrixdatenleitungen132 zum Leiten von Daten aus der Speichermatrix114 während Leseoperationen bereitzustellen. Die bidirektionalen Lese-/Schreibdatenleitungen138 zwischen der ECC-Schaltung136 und der E/A-Logik140 und die externen bidirektionalen Lese-/Schreibdatenleitungen144 zwischen der E/A-Logik140 und dem Speichercontroller102 sind gemeinsam benutzte Datenleitungen sowohl zum Leiten von Daten aus dem Speicher106 während Leseoperationen als auch zum Leiten von Daten zu dem Speicher106 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 Speichermatrix114 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 Speicheranordnung100 im Vergleich zu typischem DRAM weniger Chipfläche zum Speichern von Paritätsdaten. - Der Speichercontroller
102 steuert die Funktionsweise des Speichers106 . Der Speichercontroller102 enthält einen Mikroprozessor, Mikrocomputer oder andere geeignete Logikschaltkreise zum Steuern der Funktionsweise des Speichers106 durch den Speicherkommunikationspfad104 . Der Speichercontroller102 führt der Steuerlogik108 , dem sekundären Leseverstärker bzw. der Auswahllogik134 und der ECC-Schaltung136 zum Lesen von Daten aus der Speichermatrix114 und zum Schreiben von Daten in diese Taktsignale, Befehlssignale und andere Signale zu. Der Speichercontroller102 liefert Daten zum Schreiben in den Speicher106 und empfängt aus dem Speicher106 gelesene Daten durch die E/A-Logik140 und die externen bidirektionalen Lese-/Schreibdatenleitungen144 . Der Speichercontroller102 empfängt Daten zum Schreiben in den Speicher106 von einer (nicht gezeigten) Host- oder externen Schaltung. Außerdem führt der Speichercontroller102 der Host- oder externen Schaltung aus dem Speicher106 gelesene Daten zu. - Die Steuerlogik
108 führt der Speichermatrix114 durch die Schreibspaltenauswahlleitungen112 Schreibspaltenauswahlsignale zu und führt der Speichermatrix114 durch die Lesespaltenauswahlleitungen110 Lesespaltenauswahlsignale zu. Schreibspaltenauswahlsignale werden der Speichermatrix114 zugeführt, um auf Speicherzellen zuzugreifen, um Daten in die Speicherzellen zu schreiben. Lesespaltenauswahlsignale werden der Speichermatrix114 zugeführt, um auf Speicherzellen zuzugreifen, um Daten aus den Speicherzellen zu lesen. Die Steuerlogik108 steuert auch die E/A-Logik140 durch den Signalpfad142 zum Steuern der Zeitsteuerung und zum Leiten von Daten zwischen bidirektionalen Lese-/Schreibdatenleitungen138 und externen bidirektionalen Lese-/Schreibdatenleitungen144 . - Die Speichermatrix
114 enthält mehrere Speicherzellen118 zum Speichern von Daten und Paritätsinformationen. Bei einer Ausführungsform enthält jede Speicherzelle118 einen Transistor124 und einen Kondensator126 . Das Gate des Transistors124 ist elektrisch mit einer Wortleitung120 gekoppelt. Eine Sei te des Drain-Source-Pfades des Transistors124 ist elektrisch mit einer Bitleitung122 gekoppelt, und die andere Seite des Drain-Source-Pfades ist elektrisch mit einer Seite des Kondensators126 gekoppelt. Die andere Seite des Kondensators126 ist elektrisch mit einer Referenz128 , wie zum Beispiel einer Hälfte der Versorgungsspannung oder Masse gekoppelt. Der Kondensator126 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 Transistor124 einzuschalten, und der auf dem Kondensator126 gespeicherte Datenbitwert wird durch die Bitleitung122 durch einen Leseverstärker gelesen. Während einer Schreiboperation wird die Wortleitung120 aktiviert, um den Transistor124 einzuschalten und auf den Kondensator126 zuzugreifen. Der mit der Bitleitung122 verbundene Leseverstärker wird übersteuert, um durch die Bitleitung122 und den Transistor124 einen Datenbitwert auf den Kondensator126 zu schreiben. - Eine Leseoperation an der Speicherzelle
118 ist eine destruktive Leseoperation. Nach jeder Leseoperation ist der Kondensator126 auf den Datenbitwert, der gerade gelesen wurde, wiederaufgeladen oder entladen. Zusätzlich entlädt sich auch ohne Leseoperationen die Ladung auf dem Kondensator126 mit der Zeit. Um den gespeicherten Datenbitwert zu behalten, wird die Speicherzelle118 durch Lesen und/oder Schreiben der Speicherzelle118 , wie etwa während des Selbstauffrischens, periodisch aufgefrischt. Alle Speicherzellen118 in der Matrix von Speicherzellen114 werden periodisch aufgefrischt, um ihre Werte zu behalten. - Der Paritätsspeicher
116 speichert Paritätsinformationen für in den Speicherzellen118 in der Speichermatrix114 gespeicherte Datenwörter. Wenn zum Beispiel ein Hamming-Code und 8-Bit-Datenwörter verwendet werden, speichert der Paritätsspeicher116 für jedes Datenwort vier Paritätsbit. Bei 64-Bit-Datenwörtern speichert der Paritätsspeicher116 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ätsspeicher116 für die Speichermatrix114 gespeicherten Paritätsbit ab. - Der sekundäre Leseverstärker bzw. die Auswahllogik
134 schreibt Daten durch die Schreibmatrixdatenleitungen130 in die Speichermatrix114 . Der sekundäre Leseverstärker bzw. die Auswahllogikschaltung134 liest Daten durch die Lesematrixdatenleitungen132 aus der Speichermatrix114 . Die ECC-Schaltung136 empfängt zu codierende und in die Speichermatrix114 zu schreibende Daten aus der E/A-Logik140 auf den bidirektionalen Lese-/Schreibdatenleitungen138 . Die ECC-Schaltung136 empfängt zu decodierende und korrigierende gelesene Daten aus der Speichermatrix114 , wenn ein Fehler detektiert wird. Die decodierten und korrigierten Daten werden auf den bidirektionalen Lese-/Schreibdatenleitungen138 der E/A-Logik140 zugeführt. - Wenn die in die Speichermatrix
114 zu schreibenden Daten aus der E/A-Logik140 maskiert sind, so dass die Daten weniger Byte als die ECC-Wortgröße zum Speichern von Daten in der Speichermatrix114 enthalten, empfängt die ECC-Schaltung136 die Daten für das maskierte Datenbyte bzw. die maskierten Maskenbyte für das ECC-Wort aus der Speichermatrix114 . Die ECC-Schaltung136 decodiert das Datenbyte oder die Datenbyte aus der Speichermatrix114 und kombiniert die decodierten Daten aus der Speichermatrix114 dann mit den Daten aus der E/A-Logik140 . Die kombinierten Daten werden dann durch die ECC-Schaltung136 codiert und in die Speichermatrix114 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-Schreiboperation200 . An der Lese-Modifizier-Schreiboperation200 sind die Speichermatrix114 , die ECC-Schaltung136 , eine externe Schaltung202 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 Schaltung202 der ECC-Schaltung136 wie bei204a –204c angegeben 3 Datenbyte zu. Bei dieser Ausführungsform wurde wie bei204d angegeben ein Datenbyte maskiert. Da die ECC-Schaltung136 eine ECC-Wortlänge von 32 Bit aufweist, empfängt die ECC-Schaltung136 die Daten für das maskierte Byte204d aus der Speichermatrix114 wie bei206d angegeben als Reaktion auf den Leseteil der Lese-Modifizier-Schreiboperation. Die anderen unmaskierten Byte werden wie bei206a –206c angegeben für das ECC-Wort aus der Speichermatrix114 nicht benutzt, da sie von der externen Schaltung202 bereitgestellt werden. - Die ECC-Schaltung
136 decodiert das Byte206d aus der Spei chermatrix114 und korrigiert die Daten, wenn ein falsches Datenbit detektiert wird. Das decodierte Byte206d wird mit den Byte204a –204c aus der externen Schaltung202 kombiniert, um ein vollständiges Datenwort zur Codierung während des Modifizierteils der Lese-Modifizier-Schreiboperation zu bilden. Die ECC-Schaltung136 codiert dann das vollständige Datenwort. Die Byte des codierten Datenworts werden dann wie bei208a –208d angegeben als Reaktion auf den Schreibteil der Lese-Modifizier-Schreiboperation in die Speichermatrix114 geschrieben. Bei anderen Ausführungsformen können zwei oder drei der Byte204a –204d maskiert werden. In jedem Fall werden die Daten für die maskierten Byte aus der Speichermatrix114 gelesen und mit den unmaskierten Byte aus der externen Schaltung202 kombiniert. -
3 ist ein Impulsdiagramm300 einer Ausführungsform der Zeitsteuerung von Signalen für eine Lese-Modifizier-Schreiboperation für die Speicheranordnung100 . Das Impulsdiagramm300 enthält ein Taktsignal (CLK)302 auf dem Speicherkommunikationspfad104 , ein erstes Spaltenauswahlleitungslesesignal (CSLR0)304 auf den Lesespaltenauswahlleitungen110 , ein zweites Spaltenauswahlleitungslesesignal (CSLR1)306 auf den Lesespaltenauswahlleitungen110 , ein drittes Spaltenauswahlleitungslesesignal (CSLR2)308 auf den Lesespaltenauswahlleitungen110 und ein viertes Spaltenauswahlleitungslesesignal (CSLR3)310 auf den Lesespaltenauswahlleitungen110 . Das Impulsdiagramm300 enthält außerdem ein erstes Spaltenauswahlleitungsschreibsignal (CSLW0)312 auf den Schreibspaltenauswahlleitungen112 , ein zweites Spaltenauswahlleitungsschreibsignal (CSLW1)314 auf den Schreibspaltenauswahlleitungen112 , ein drittes Spaltenauswahlleitungsschreibsignal (CSLW2)316 auf den Schreibspaltenauswahlleitungen112 und ein viertes Spaltenauswahlleitungsschreibsignal (CSLW3)318 auf den Schreibspaltenauswahlleitungen112 . Das Impulsdiagramm300 enthält außerdem ein Lokaldatenleitungslesesignal (LDQR)320 auf den Lesematrixdatenleitungen132 , ein Lokaldatenleitungsschreibsignal (LDQW)322 auf den Schreibmatrixdatenleitungen130 , ein erstes Bitleitungssignal (BL0)324 auf einer ersten Bitleitung122 , ein zweites Bitleitungssignal (BL1)326 auf einer zweiten Bitleitung122 , ein drittes Bitleitungssignal (BL2)328 auf einer dritten Bitleitung122 und ein viertes Bitleitungssignal (BL3)330 auf einer vierten Bitleitung122 . - 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 Speicherzelle118 . Es werden mehrere Signale, die den in dem Impulsdiagramm300 dargestellten Signalen ähnlich sind, parallel verwendet, um mehrere Speicherzellen118 auf der Basis der ECC-Wortlänge zu lesen und zu schreiben. - An der ansteigenden Flanke
332 des CLK-Signals302 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-Signal304 bei334 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 Flanke334 des CSLR0-Signals304 wird der Datenbitwert wie bei338 auf dem BL0-Signal324 angegeben gelesen. Der Datenbitwert wird auf den Lesematrixdatenleitungen132 wie bei336 auf dem LDQR-Signal320 angegeben von der ersten Bitleitung zu dem sekundären Leseverstärker bzw. der Auswahl logik134 geleitet. Nachdem der Datenbitwert gelesen wurde, geht das CSLR0-Signal304 bei340 zu logisch niedrig über. - Zwischen der fallenden Flanke
340 des CSLR0-Signals304 und der ansteigenden Flanke342 des CSLW0-Signals312 wird der Modifizierteil der ersten Lese-Modifizier-Schreiboperation des Bursts ausgeführt. Während dieser Zeit kombiniert die ECC-Schaltung136 die aus der externen Schaltung empfangenen Daten mit den aus der Speichermatrix114 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-Signals302 eingeleitet. Als Reaktion auf die Schreiboperation geht das CSLW0-Signal312 bei342 zu logisch hoch über, um die erste Speicherzelle für Schreibzugriff auszuwählen. Als Reaktion auf die ansteigende Flanke342 des CSLW0-Signals312 stellt der sekundäre Leseverstärker bzw. die Auswahllogik134 wie bei344 auf dem LDQW-Signal322 angegeben das Datenbit auf den Schreibmatrixdatenleitungen130 bereit. Das bei344 auf dem LDQW-Signal322 angegebene Datenbit wird wie bei346 auf dem BL0-Signal324 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-Signals324 angegeben findet die Leseoperation für das folgende Datenbit in dem Burst statt. An der ansteigenden Flanke352 des CLK-Signals302 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-Signal306 bei354 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 Flanke354 des CSLR1-Signals306 wird der Datenbitwert wie bei358 auf dem BL1-Signal326 angegeben gelesen. Der Datenbitwert wird wie bei356 auf dem LDQR-Signal320 angegeben auf den Lesematrixdatenleitungen132 von der zweiten Bitleitung zu dem sekundären Leseverstärker bzw. der Auswahllogik134 geleitet. Nachdem der Datenbitwert gelesen wurde, geht das CSLR1-Signal306 bei360 zu logisch niedrig über. Deshalb werden die Daten wie bei346 auf dem BL0-Signal324 angegeben im Wesentlichen gleichzeitig mit dem Lesen von Daten aus einer zweiten Speicherzelle in der Speichermatrix114 wie bei358 auf dem BL1-Signal326 angegeben in eine erste Speicherzelle in der Speichermatrix314 geschrieben. Auf diese Weise kann die Speicheranordnung100 während einer Lese-Modifizier-Schreiboperation mit hoher Geschwindigkeit operieren. - Zwischen der fallenden Flanke
360 des CSLR1-Signals306 und der ansteigenden Flanke362 des CSLW1-Signals314 wird der Modifizierteil der zweiten Lese-Modifizier-Schreiboperation des Bursts ausgeführt. Während dieser Zeit kombiniert die ECC-Schaltung136 die aus der externen Schaltung empfangenen Daten mit den aus der Speichermatrix114 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-Signals302 eingeleitet. Als Reaktion auf die Schreiboperation geht das CSLW1-Signal314 bei362 zu logisch hoch über, um die zweite Speicherzelle für Schreibzugriff auszuwählen. Als Reaktion auf die ansteigende Flanke362 des CSLW1-Signals314 stellt der sekundäre Leseverstärker bzw. die Auswahllogik134 wie bei364 auf dem LDQW-Signal322 angegeben das Datenbit auf den Schreibmatrixdatenleitungen130 bereit. Das Datenbit bei364 auf dem LDQW-Signal322 wird wie bei366 auf dem BL1-Signal326 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-Signals326 angegeben findet die Leseoperation für das folgende Datenbit in dem Burst statt. An der ansteigenden Flanke372 des CLK-Signals302 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-Signal308 bei374 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 Flanke374 des CSLR2-Signals308 wird der Datenbitwert wie bei378 auf dem BL2-Signal328 angegeben gelesen. Der Datenbitwert wird wie bei376 auf dem LDQR-Signal320 angegeben auf den Lesematrixdatenleitungen132 von der dritten Bitleitung zu dem sekundären Leseverstärker bzw. der Auswahllogik134 geleitet. Nachdem der Datenbitwert gelesen wurde, geht das CSLR2-Signal308 bei380 zu logisch niedrig über. Deshalb werden Daten wie bei366 auf dem BL1-Signal326 angegeben im Wesentlichen gleichzeitig mit dem Lesen von Daten aus einer dritten Speicherzelle in der Speichermatrix114 wie bei378 auf dem BL2-Signal328 angegeben in eine zweite Speicherzelle in der Speichermatrix314 geschrieben. - Zwischen der fallenden Flanke
380 des CSLR2-Signals308 und der ansteigenden Flanke382 des CSLW2-Signals316 wird der Modifizierteil der dritten Lese-Modifizier-Schreiboperation des Bursts ausgeführt. Während dieser Zeit kombiniert die ECC-Schaltung136 die aus der externen Schaltung empfangenen Daten mit den aus der Speichermatrix114 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-Signals302 eingeleitet. Als Reaktion auf die Schreiboperation geht das CSLW2-Signal316 bei382 zu logisch hoch über, um die dritte Speicherzelle für Schreibzugriff auszuwählen. Als Reaktion auf die ansteigende Flanke382 des CSLW2-Signals316 stellt der sekundäre Leseverstärker bzw. die Auswahllogik134 wie bei384 auf dem LDQW-Signal322 angegeben das Datenbit auf den Schreibmatrixdatenleitungen130 bereit. Das Datenbit bei384 auf dem LDQW-Signal322 wird wie bei386 auf dem BL2-Signal328 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-Signals328 angegeben findet die Leseoperation für das folgende Datenbit in dem Burst statt. An der ansteigenden Flanke392 des CLK-Signals302 wird der Leseteil einer Lese-Modifizier-Schreiboperation für das vierte Bit in dem Burst eingeleitet. Als Reaktion auf die Leseoperation geht das CSLR3-Signal310 bei394 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 Flanke394 des CSLR3-Signals310 wird wie bei398 auf dem BL3-Signal330 angegeben der Datenbitwert gelesen. Der Datenbitwert wird wie bei396 auf dem LDQR-Signal320 angegeben auf den Lesematrixdatenleitungen132 von der vierten Bitleitung zu dem sekundären Leseverstärker bzw. der Auswahllogik134 geleitet. Nachdem der Datenbitwert gelesen wurde, geht das CSLR3-Signal310 bei400 zu logisch niedrig über. Deshalb werden Daten wie bei386 auf dem BL2-Signal328 angegeben im Wesentlichen gleichzeitig mit dem Lesen von Daten aus einer vierten Speicherzelle in der Speichermatrix114 wie bei398 auf dem BL3-Signal330 angegeben in eine dritte Speicherzelle in der Speichermatrix114 geschrieben. - Zwischen der fallenden Flanke
400 des CSLR3-Signals310 und der ansteigenden Flanke402 des CSLW3-Signals318 wird der Modifizierteil der vierten Lese-Modifizier-Schreiboperation des Bursts ausgeführt. Während dieser Zeit kombiniert die ECC-Schaltung136 die aus der externen Schaltung empfangenen Daten mit den aus der Speichermatrix114 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-Signals302 eingeleitet. Als Reaktion auf die Schreiboperation geht das CSLW3-Signal318 bei402 zu logisch hoch über, um die vierte Speicherzelle für Schreibzugriff auszuwählen. Als Reaktion auf die ansteigende Flanke402 des CSLW3-Signals318 stellt der sekundäre Leseverstärker bzw. die Auswahllogik134 wie bei404 auf dem LDQW-Signal322 angegeben das Datenbit auf den Schreibmatrixdatenleitungen322 bereit. Das Datenbit bei404 auf dem LDQW-Signal322 wird wie bei406 auf dem BL3-Signal330 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-Signals302 abgeleitet. Bei anderen Ausführungsformen wird jedoch zur Bereitstellung der Flanken anstelle der Flanken des CLK-Signals302 eine interne Timerschaltung verwendet, um die Verzögerungen zwischen den Spaltenauswahlleitungslesesignalen und den Spaltenauswahlleitungsschreibsignalen abzuleiten. Bei einer Ausführungsform, bei der die Speicheranordnung100 ein DDR DRAM ist, werden die Verzögerungen zwischen den Spaltenauswahlleitungslesesignalen und den Spaltenauswahlleitungsschreibsignalen aus den Flanken des CLK-Signals302 abgeleitet. Bei einer Ausführungsform, bei der die Speicheranordnung100 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 Schaltung500 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 Speichermatrix506 , einen unteren ECC-Block516 , einen oberen ECC-Block518 und eine Organisations-, Burstbit- und Datenmaskenauswahlschaltung524 . 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)508a –508d und erste Master-Paritätsdatenleitungen (MDQP0)510 elektrisch mit der Speichermatrix506 gekoppelt. Der untere ECC-Block516 ist durch erste Fehlerkorrekturcodedatenleitungen (ECCDQ0)520a und zweite Fehlerkorrekturcodedatenleitungen (ECCDQ1)520b elektrisch mit der Organisations-, Burstbit- und Datenmaskenauswahlschaltung524 gekoppelt. Der obere ECC-Block518 ist durch die lokale Datenleitung (LDQ), Master-Datenleitungen (MDQ)512a –512d und zweite Master-Paritätsdatenleitungen (MDQP1)514 elektrisch mit der Speichermatrix506 gekoppelt. Der obere ECC-Block518 ist durch dritte Fehlerkorrekturcodedatenleitungen (ECCDQ2)522a und vierte Fehlerkorrekturcodedatenleitungen (ECCDQ3)522b elektrisch mit der Organisations-, Burstbit- und Datenmaskenauswahlschaltung524 gekoppelt. Die Organisations-, Burstbit- und Datenmaskenauswahlschaltung524 ist durch Lese-/Schreibdatenleitungen (RWD)526 elektrisch mit einer externen Schaltung gekoppelt. Der Einfachheit halber stellt die Schaltung500 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-Block516 decodiert jedes 64-Bit-Datenwort und korrigiert etwaige ausgefallene Bit, wenn ein Fehler detektiert wird. Eine erste Hälfte jedes decodierten Datenworts wird auf ECCDQ0520a und eine zweite Hälfte jedes decodierten Datenworts auf ECCDQ1520b 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-Block518 decodiert jedes 64-Bit-Datenwort und korrigiert etwaige ausgefallene Bit, wenn ein Fehler detektiert wird. Eine erste Hälfte jedes decodierten Datenworts wird auf ECCDQ2522a und eine zweite Hälfte jedes decodierten Datenworts auf ECCDQ3522b 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 Speichermatrix506 . Das codierte Datenwort wird decodiert und korrigiert, wenn ein Fehler detektiert wird, und durch ECCDQ0520a und ECCDQ1520b zu der Organisations-, Burstbit- und Datenmaskenauswahlschaltung524 geleitet. Der obere ECC-Block518 empfängt ein codiertes Datenwort und die Paritätsinformationen für das codierte Datenwort aus der Speichermatrix506 . Das codierte Datenwort wird decodiert und korrigiert, wenn ein Fehler detektiert wird, und durch ECCDQ2522a und ECCDQ3522b zu der Organisations-, Burstbit- und Datenmaskenauswahlschaltung524 geleitet. Die Organisations-, Burstbit- und Datenmaskenauswahlschaltung524 wählt die aus dem unteren ECC-Block516 geleiteten 64 Bit Daten, die aus dem oberen ECC-Block518 geleiteten 64 Bit Daten oder 32 Bit Daten aus dem unteren ECC-Block516 und 32 Bit Daten aus dem oberen ECC-Block518 , um das 64-Bit-Datenwort auf RWD526 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)
- 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.
- 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.
- 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.
- 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.
- Speicher nach einem der Ansprüche 1 bis 4, wobei der Speicher einen dynamischen Direktzugriffsspeicher mit einfacher Datenrate umfasst.
- Speicher nach einem der Ansprüche 1 bis 4, wobei der Speicher einen dynamischen Direktzugriffsspeicher mit doppelter Datenrate umfasst.
- 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.
- 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.
- 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.
- 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.
- Speicher nach einem der Ansprüche 7 bis 10, wobei der Speicher einen dynamischen Direktzugriffsspeicher mit einfacher Datenrate umfasst.
- Speicher nach einem der Ansprüche 7 bis 10, wobei der Speicher einen dynamischen Direktzugriffsspeicher mit doppelter Datenrate umfasst.
- 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.
- 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.
- Speicher nach Anspruch 13 oder 14, wobei das Datenwort mindestens 16 Bit umfasst.
- Speicher nach einem der Ansprüche 13 bis 15, wobei der Speicher einen dynamischen Direktzugriffsspeicher mit einfacher Datenrate umfasst.
- Speicher nach einem der Ansprüche 13 bis 15, wobei der Speicher einen dynamischen Direktzugriffsspeicher mit doppelter Datenrate umfasst.
- 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.
- 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.
- Verfahren nach Anspruch 18 oder 19, ferner mit dem folgenden Schritt: Decodieren der ersten Daten aus der Speichermatrix.
- Verfahren nach Anspruch 20, ferner mit dem folgenden Schritt: Korrigieren der ersten Daten aus der Speichermatrix als Reaktion auf das Detektieren eines Fehlers.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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)
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)
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 | 不揮発性半導体記憶装置 |
-
2007
- 2007-01-05 US US11/650,169 patent/US20080168331A1/en not_active Abandoned
-
2008
- 2008-01-02 DE DE102008003043A patent/DE102008003043A1/de not_active Withdrawn
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 |