DE102004002219A1 - Unterstütztes Speichersystem - Google Patents

Unterstütztes Speichersystem Download PDF

Info

Publication number
DE102004002219A1
DE102004002219A1 DE102004002219A DE102004002219A DE102004002219A1 DE 102004002219 A1 DE102004002219 A1 DE 102004002219A1 DE 102004002219 A DE102004002219 A DE 102004002219A DE 102004002219 A DE102004002219 A DE 102004002219A DE 102004002219 A1 DE102004002219 A1 DE 102004002219A1
Authority
DE
Germany
Prior art keywords
ecc
storage elements
memory storage
data
combinatorial
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
DE102004002219A
Other languages
English (en)
Inventor
Richard L. Hilton
Kenneth J. Eldredge
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of DE102004002219A1 publication Critical patent/DE102004002219A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6575Implementations based on combinatorial logic, e.g. Boolean circuits

Abstract

Ein Speichersystem weist folgende Merkmale auf: eine Mehrzahl von Speicherspeicherungselementen, ein Adreßersetzungsmodul, das mit der Mehrzahl von Speicherspeicherungselementen gekoppelt ist und wirksam ist, um erste Adressen von ersten vorbestimmten Speicherplätzen in zweite Adressen von zweiten vorbestimmten Speicherplätzen auszubilden; und eine kombinatorische ECC-Logikschaltung, die mit der Mehrzahl von Speicherspeicherungselementen gekoppelt ist und wirksam ist, um in Daten, die aus der Mehrzahl von Speicherspeicherungselementen gelesen werden, in weniger als drei Taktzyklen Fehler zu erfassen und zu korrigieren.

Description

  • Die Erfindung bezieht sich auf einen Direktzugriffsspeicher für eine Datenspeicherung. Im einzelnen bezieht sich diese Erfindung auf ein unterstütztes Speichersystem.
  • Auf dem Gebiet der Speichertechnologie macht man Riesenschritte bei der Erhöhung der Geschwindigkeit, der Erhöhung der Kapazität und der Erhöhung der Fehlertoleranz. Geschwindigkeit und eine höhere Kapazität bei Speichervorrichtungen werden hauptsächlich dadurch erzielt, daß die Speicherelemente oder -zellen kleiner und dichter bepackt gestaltet werden. Da die Speicherelementgröße auch proportional zu den Kosten pro Bit ist, besteht das Ziel von Speicherherstellern darin, die Speicherelementgröße so stark wie praktizierbar zu verringern. Durch Verringern der Zellengröße werden diese Speichervorrichtungen zur Verwendung als eingebettete Speicher bei elektronischen Verbraucherprodukten und Spielzeugen sowie bei Computern und anderen Vorrichtungen in bezug auf Kosten und Kapazität wettbewerbsfähig.
  • Ein Verringern der Größe integrierter Schaltungen und Speichervorrichtungen ist keine einfache und geradlinige Aufgabe. Die Verringerung der Größe und die Erhöhung der Dichte führt oft zu Defekten in den Speicherelementen, die auf nicht-perfektionierte Herstellungsprozesse oder andere Fehler zurückgehen. Manche die Ausbeute verringernde Defekte können beispielsweise Haftfehler, Übergangsfehler, Kopplungsfehler und zeichenabhängige Ausfälle umfassen.
  • Es ist die Aufgabe der vorliegenden Erfindung, Systeme, Vorrichtungen, Speicher und Verfahren zu schaffen, die eine effektivere Datenspeicherung ermöglichen.
  • Diese Aufgabe wird durch ein Speichersystem gemäß Anspruch 1, eine Vorrichtung gemäß Anspruch 10, Verfahren gemäß Anspruch 18 oder 25 sowie durch einen Speicher gemäß Anspruch 22 gelöst.
  • Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung weist ein Speichersystem folgende Merkmale auf: eine Mehrzahl von Speicherspeicherungselementen, ein mit der Mehrzahl von Speicherspeicherungselementen gekoppeltes Adreßersetzungsmodul und eine kombinatorische ECC-Logikschaltung (ECC = error correcting code, Fehlerkorrekturcode), die mit der Mehrzahl von Speicherspeicherungselementen gekoppelt ist und wirksam ist, um in Daten, die aus der Mehrzahl von Speicherspeicherungselementen gelesen werden, in weniger als drei Taktzyklen Fehler zu erfassen und zu korrigieren.
  • Gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung weist eine Vorrichtung folgende Merkmale auf: einen Prozessor, eine Mehrzahl von Speicherspeicherungselementen, die wirksam sind, um ansprechend auf Anweisungen von dem Prozessor Daten zu speichern, ein Adreßersetzungsmodul, das mit der Mehrzahl von Speicherspeicherungselementen und dem Prozessor gekoppelt ist und wirksam ist, um erste Adressen von ersten vorbestimmten Speicherplätzen, die von dem Prozessor empfangen werden, in zweite Adressen von zweiten vorbestimmten Speicherplätzen abzubilden, und eine kombinatorische ECC-Logikschaltung, die mit der Mehrzahl von Speicherspeicherungselementen und dem Prozessor gekoppelt ist und wirksam ist, um in Daten, die aus der Mehrzahl von Speicherspeicherungselementen gelesen werden, in weniger als drei Taktzyklen Fehler zu erfassen und zu korrigieren, bevor die Daten an den Prozessor geliefert werden.
  • Gemäß einem noch weiteren Ausführungsbeispiel der vorliegenden Erfindung weist ein Verfahren folgende Schritte auf: Empfangen von Daten und zumindest einer Adresse, um die Daten in einer Mehrzahl von Direktzugriffsspeicherspeicherungselementen zu speichern, Bestimmen, ob die zumindest eine empfangene Adresse auf einen defekten Speicherplatz zeigt, Abbilden der empfangenen Adresse in zumindest eine korrigierte Adresse ansprechend darauf, daß die zumindest eine Adresse auf einen defekten Speicherplatz zeigt, und Erzeugen eines ECC-Codeworts, unter Verwendung eines kombinatorischen ECC-Logikcodierers, aus den empfangenen Daten in weniger als drei Taktzyklen, und Speichern des ECC-Codeworts in die Mehrzahl von Direktzugriffsspeicherspeicherungselementen, und Lesen der Mehrzahl von Direktzugriffsspeicherspeicherungselementen und Decodieren der ECC-Codewörter in denselben unter Verwendung eines kombinatorischen ECC-Logikdecodierers, der wirksam ist, um Fehler in denselben zu erfassen und zu korrigieren.
  • Gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung weist ein Speicher folgende Merkmale auf: eine Mehrzahl von Speicherspeicherungselementen, einen kombinatorischen ECC-Logikcodierer, der mit der Mehrzahl von Speicherspeicherungselementen gekoppelt ist und wirksam ist, um in weniger als drei Taktzyklen ein ECC-Codewort auf der Basis von Daten zu erzeugen, die in der Mehrzahl von Speicherspeicherungselementen gespeichert werden sollen. Der Speicher umfaßt ferner einen kombinatorischen ECC-Logikdecodierer, der mit der Mehrzahl von Speicherspeicherungselementen gekoppelt ist und wirksam ist, um ein aus der Mehrzahl von Speicherspeicherungselementen gelesenes ECC-Codewort zu empfangen und das ECC-Codewort zu decodieren, um in weniger als drei Taktzyklen zumindest einen Fehler in den Daten zu korrigieren.
  • Gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung weist ein ECC-Verfahren folgende Schritte auf: ein Codierungsverfahren, das in weniger als drei Taktzyklen abgeschlossen ist, wobei das Codierungsverfahren folgende Schritte aufweist: Empfangen eines Datenblocks einer vorbestimmten Anzahl von Bits, Erzeugen einer Mehrzahl von ECC-Bits auf der Basis des Datenblocks unter Verwendung einer kombinatorischen Logik, und Anhängen der Mehrzahl von ECC- Bits an den Datenblock und Erzeugen eines ECC-Codeworts aus denselben. Das ECC-Verfahren umfaßt ferner ein Decodierungsverfahren, das in weniger als drei Taktzyklen abgeschlossen ist und folgende Schritte aufweist: Empfangen eines ECC-Codeworts und Decodieren des ECC-Codeworts und Korrigieren von Fehlern, falls vorhanden, unter Verwendung einer kombinatorischen Logik und Erzeugen des Datenblocks einer vorbestimmten Anzahl von Bits.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
  • 1 ein vereinfachtes Blockdiagramm einer Vorrichtung 10, die ein unterstütztes Speichersystem 12 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung aufweist;
  • 2 ein vereinfachtes Blockdiagramm eines Ausführungsbeispiels eines unterstützten Speichersystems 12 gemäß der vorliegenden Erfindung;
  • 3 ein ausführlicheres Blockdiagramm eines Ausführungsbeispiels des unterstützten Speichersystems 12 gemäß der vorliegenden Erfindung;
  • 4 ein Logikdiagramm eines Ausführungsbeispiels eines ECC-Codierers gemäß der vorliegenden Erfindung; und
  • 5 ein Logikdiagramm eines Ausführungsbeispiels eines ECC-Decodierers gemäß den Lehren der vorliegenden Erfindung.
  • 1 ist ein vereinfachtes Blockdiagramm einer Vorrichtung 10, die ein unterstütztes Speichersystem 12 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung aufweist. Die Vorrichtung 10 kann ein beliebiger Herstellungs artikel sein, der einen Prozessor 14 zum Steuern eines oder mehrerer Aspekte seiner Funktion aufweist. Beispielsweise kann die Vorrichtung 10 in einer beliebigen ihrer Implementierungen ein Computer sein, eine beliebige Vorrichtung, die Audio-, Video- und andere Arten von Multimedia-Daten erfaßt, verarbeitet, anzeigt und/oder sendet, Telekommunikationsvorrichtungen, persönliche digitale Assistenten usw. sein. Das unterstützte Speichersystem 12 ist auf kommunikative Weise mit dem Prozessor 14 gekoppelt und weist einen Speicher 16 und ein Schnittstellenmodul 18 auf. Der Speicher 16 weist eine Mehrzahl von Speicherzellen oder Speicherelementen auf, von denen jede bzw. jedes in der Lage ist, zumindest ein Datenbit zu speichern. Der Speicher 16 kann ein oder eine Mehrzahl von Speicherchips umfassen. Der Speicher 16 kann eine beliebige Speichertechnologie umfassen, z.B. einen beliebigen Direktzugriffsspeicher (RAM), einschließlich eines dynamischen RAM (DRAM), eines EDO-RAM (extended data out RAM), eines Video-RAM (VRAM), eines statischen RAM (SRAM), eines synchrone DRAM (SDRAM) und eines magnetoresistiven oder magnetischen RAM (MRAM). MRAMs sind als Technologie von nächsten durchschlagenden nichtflüchtigen Speichern von Interesse, die Flash-Speicher und EEPROMs ersetzen sollen, wo ein schnelles Schreiben oder eine hohe Schreibbeanspruchungsdauer erforderlich sind, und sind längerfristig als Mehrzweck-Lese-/Schreib-RAM von Interesse. Während Hersteller MRAM-Entwürfe und Herstellungsprozesse perfektionieren, um die Größe zu verringern und die Fehlerraten und Defekte zu vermindern, ist es wichtig, ein unterstütztes Speichersystem zu schaffen, das einen nicht-perfekten Speicher befähigt, praktisch wie eine perfekte oder nahezu perfekte Vorrichtung zu fungieren. Obwohl die vorliegende Erfindung hierin hauptsächlich im Kontext von MRAM beschrieben ist, ist die Erfindung nicht hierauf beschränkt und auch auf andere Speicherspeicherungstechnologien anwendbar.
  • Die Firma Hewlett-Packard, die Anmelderin der vorliegenden Erfindung, ist außerdem die Anmelderin mehrerer anderer Pa tentschriften, die auf MRAM-Technologie bezogen sind, einschließlich: US-Patentschrift Nr. 6,188,615 mit dem Titel MRAM DEVICE INCLUDING DIGITAL SENSE AMPLIFIERS, eingereicht am 29. Oktober 1999 und erteilt am 13. Februar 2001; US-Patentschrift Nr. 6,163,477 mit dem Titel MRAM DEVICE USING MAGNETIC FIELD BIAS TO IMPROVE REPRODUCIBILITY OF MEMORY CELL SWITCHING, eingereicht am 6. August 1999 und erteilt am 19. Dezember 2000; US-Patentschrift Nr. 6,128,239 mit dem Titel MRAM DEVICE INCLUDING ANALOG SENSE AMPLIFIERS, eingereicht am 29. Oktober 1999 und erteilt am 3. Oktober 2000; US-Patentschrift Nr. 6,111,783 mit dem Titel MRAM DEVICE INCLUDING WRITE CIRCUIT FOR SUPPLYING WORD AND BIT LINE CURRENT HAVING UNEQUAL MAGNITUDES, eingereicht am 16. Juni 1999 und erteilt am 29. August 2000; und US-Patentschrift Nr. 5,982,660 mit dem Titel MAGNETIC MEMORY CELL WITH OFF-AXIS REFERENCE LAYER ORIENTATION FOR IMPROVED RESPONSE, eingereicht am 27. August 1998 und erteilt am 9. November 1999. Diese Patentschriften sind durch Bezugnahme in das vorliegende Dokument aufgenommen.
  • Ein Schnittstellenmodul 18 dient als Schnittstelle zwischen dem Prozessor 14 und dem Speicher 16. Für eine Vorrichtung 10, beispielsweise einen Notebook-Computer oder einen Personal-Computer, kann das Schnittstellenmodul 18 eine EIDE (enhanced integrated drive electronics, verbesserte Integrierter-Antrieb-Elektronik), ESDI (enhanced small device interface, verbesserte Kleinvorrichtungsschnittstelle), SCSI (small computer system interface, Kleincomputer-Schnittstelle) oder eine andere geeignete Schnittstelle umfassen. Für einen Server kann das Schnittstellenmodul 18 einen Faserkanal oder eine SCSI-Schnittstelle umfassen. Für eine Vorrichtung 10, z.B. eine Digitalkamera, kann das Schnittstellenmodul 18 eine Kameraschnittstelle umfassen, und der Speicher 16 kann für eine kurz- oder langfristige Speicherung von digitalen Bildern in der Digitalkamera verwendet werden. Bei anderen Computersystemen kann das Schnittstellenmodul 18 ein Speichersteuerungsbus sein, der den Prozessor 14 befähigt, aus dem Speicher 16 zu lesen und in denselben zu schreiben. Die Implementierung des Schnittstellenmoduls 18 hängt von der Funktionalität des Prozessors 14 und der Vorrichtung 10 ab, den Prozessor 14 zu befähigen, effektiv mit dem Speicher 16 zu kommunizieren und Daten zu lesen und zu schreiben.
  • Das unterstützte Speichersystem 12 weist ferner ein Fehlerkorrekturmodul 20 auf, das wirksam ist, um vorübergehende und dauerhafte Fehler, die in dem Speicher 16 auftreten, zu erfassen und zu korrigieren. Beispiele einer Fehlererfassung und -korrektur umfassen Adreßersetzungsschemata und Fehlerkorrekturcode-Schemata (ECC-Schemata). ECC ist eine Technik, die verwendet wird, um einen Code auf der Basis der in einen Speicher geschriebenen Daten zu berechnen, der anschließend verwendet wird, um die Genauigkeit der Daten zu prüfen, wenn sie aus dem Speicher gelesen werden. ECC ist eine Form einer Paritätserfassung, beinhaltet jedoch komplexe Berechnungen, um den ECC-Code zu bestimmen. Mit der Hilfe des Fehlerkorrekturmoduls 20 ist das unterstützte Speichersystem 12 in der Lage, in dem Speicher 16 eine unvollkommene Speichertechnologie mit einem höheren tolerierbaren Fehlergrad zu verwenden. Um die neue Speichertechnologie zu nutzen, verwendet das unterstützte Speichersystem 12 ein Fehlerkorrekturmodul 20, um Fehler, die in dem Speicher 16 auftreten können, zu erkennen und zu korrigieren.
  • 2 ist ein ausführlicheres Blockdiagramm eines Ausführungsbeispiels des unterstützten Speichersystems 12 gemäß der vorliegenden Erfindung. Mit dem Schnittstellenmodul 18 ist ein sekundäres Datenspeichermodul oder ein Puffer/Cachespeicher 22 gekoppelt, das bzw. der wirksam ist, um Lese-/Schreibdaten vorübergehend zu speichern. Der Puffer/Cachespeicher 22 ist wirksam, um den aktuellen Datenblock zum Zweck eines schnellen Zugriffs durch den Prozessor 14 zu speichern. Vorzugsweise fungiert der Puffer/Cachespeicher 22 als Cachespeicher, um in Erwartung von Prozessorbefehlen mehr als einen Datenblock, auf den entweder als letztes zugegriffen wurde oder für den ein Zugriff erwartet wird, zu speichern. In seiner einfachsten Form kann der Puffer/Cachespeicher 22 den aktuellen aktiven Datenblock speichern, während er den nächsten Datenblock in Erwartung eines sequentiellen Zugriffs durch den Prozessor 14 in den Adreßraum lädt.
  • Schreibdaten werden an einen ECC-Codierer 24 kommuniziert, der mit dem Puffer/Cachespeicher 22 gekoppelt ist und eine Mehrzahl von ECC-Bits erzeugt, die an die Datenbits angehängt werden sollen. Einzelheiten des ECC-Codierers 24 sind in 4 gezeigt und nachstehend ausführlich beschrieben. Eine zwischen den ECC-Codierer 24 und Speicherelemente 28 gekoppelte Schreibschaltung 26 fungiert, um die Daten und ECC-Bits in Speicherplätze zu schreiben, die durch die Schreibadresse festgelegt werden. Die Schreibschaltung 26 kann Schreibwortleitungen und andere Schaltungselemente und Konfigurationen (nicht gezeigt) umfassen, die von der Speichertechnologie abhängen, die zum Implementieren der Speicherelemente 28 verwendet wird. Die Schreibadresse kann durch ein Adreßersetzungsmodul 30 modifiziert werden, das arbeitet, um die logische Adresse eines Blocks von defekten Speicherzellen in eine physische Adresse eines anderen Blocks von Speicherzellen, in denen sich die Daten in der Tat befinden, abzubilden. Bei weiteren Ausführungsbeispielen können alle Speicheradressen in neue Adressen abgebildet werden, um alle Adressen in der Tat um die Anzahl von defekten Speicherplätzen zu verschieben. Einzelheiten von Ausführungsbeispielen der Adreßersetzungstechnologie finden sich in der ebenfalls übertragenen US-Patentanmeldung Nr. 10/044,542, die am 11. Januar 2002 eingereicht wurde und den Titel Self-Healing MRAM trägt, und in der US-Patentanmeldung Nr. 09/766,354, die am 19. Januar 2001 eingereicht wurde und den Titel Self-Healing Memory trägt, wobei beide Patentanmeldungen durch Bezugnahme in das vorliegende Dokument aufgenommen sind. Das ECC-Schema wird optimalerweise dazu verwendet, während des Betriebs (on-the-fly) das Vorliegen einiger Datenfehlerbits zu erfassen und zu korrigieren, und die Adreßersetzung wird optimalerweise verwendet, um dauerhafte Fehler oder Defekte in größeren Chucks des Speichers zu korrigieren. Es ist vorzuziehen, beide diese Schemata und vielleicht andere geeignete Techniken zu kombinieren, um vorübergehende und dauerhafte Fehler in Speichervorrichtungen zu maskieren.
  • Eine Erfassungsschaltung 32 ist mit den Speicherelementen 28 gekoppelt, um den logischen Zustand derselben zu erfassen und dadurch gespeicherte Daten zu erhalten, um sie dem Prozessor 14 bereitzustellen. Die Erfassungsschaltung 32 liest die gespeicherten Daten und liefert die Daten an einen ECC-Decodierer 34. Der ECC-Decodierer 34 ist wirksam, um einen Fehler zu erfassen, falls er existiert, und die korrigierten Daten an den Puffer/Cachespeicher 22 zu liefern. Einzelheiten des ECC-Decodierers 34 sind nachfolgend unter Bezugnahme auf 5 dargelegt.
  • Bei dem unterstützten Speichersystem 12 werden die Daten in einer Anzahl von Bits gelesen und geschrieben, die potentiell größer ist als die Speicherbusbreite zwischen dem Prozessor 14 und dem Hostschnittstellenmodul 18. Dies ermöglicht einen effizienten ECC-Schutz und eine verbesserte Leistungsfähigkeit für sequentielle Zugriffe durch ein paralleles Lesen mehrerer Bits. Das Adreßersetzungsmodul 30 verschiebt die durch den Prozessor angeforderte Speicheradresse gemäß einer Fehlertabelle, die bekannte Fehlerinformationen und Adreßabbildungsinformationen enthält, zu einer internen physischen Speicheradresse. Das ECC-Codieren und -Decodieren fügt eine weitere Datenfehlerkorrektur während des Betriebs (on-the-fly) hinzu. Der ECC-Codierer 24 und der ECC-Decodierer 34 sind vorzugsweise durch eine sehr „flache" und somit schnelle kombinatorische Logik implementiert, die Codier- und Decodiervorgänge in weniger als Dreitaktzyklen, vorzugsweise einem Taktzyklus, abschließt. Dies steht in krassem Gegensatz zu derzeitigen Implementierungen konventioneller Zustandsmaschinen, die viele Taktzyklen benötigen, um lange Berechnungen durchzuführen, um die richtigen ECC-Codes zu erzeugen und die ECC-Codes zu decodieren.
  • 3 ist ein ausführlicheres Blockdiagramm eines Ausführungsbeispiels des unterstützten Speichersystems 12 gemäß der vorliegenden Erfindung. Der Speicher 16 weist zumindest eine Speichervorrichtung, beispielsweise MRAM, mit Speicherelementen 28 auf, die in einem Array 36 angeordnet sind. Jedes Magnetspeicherspeicherungselement 28 umfaßt in der Regel eine Datenspeicherungsschicht und eine Referenzschicht. Der logische Zustand eines Magnetspeicherelements hängt von den relativen Magnetisierungsausrichtungen in seinen Datenspeicherungs- und Referenzschichten ab. Die Magnetisierung jedes Speicherelements nimmt zu jeglichem gegebenen Zeitpunkt eine von zwei stabilen Orientierungen an. Diese beiden stabilen Orientierungen, parallel und antiparallel, stellen logische Werte „0" und „1" dar. Die Speicherelemente 28 sind üblicherweise in Zeilen und Spalten angeordnet, wobei sich die Zeilen in einer x-Richtung und die Spalten in einer y-Richtung erstrecken. In 3 ist lediglich eine relativ geringe Anzahl von Speicherelementen gezeigt, um die Beschreibung der Erfindung stark zu vereinfachen. In der Praxis werden in verschiedenen Branchen üblicherweise Arrays von 1024×1024-Speicherelementen oder größere Arrays verwendet.
  • Leiterbahnen, die als Wortleitungen 40 fungieren, erstrecken sich entlang der x-Richtung, und Leiterbahnen, die als Bitleitungen 42 fungieren, erstrecken sich entlang der y-Richtung. Bei einem Ausführungsbeispiel liegt eine Wortleitung für jede Zeile von Speicherelementen 28 und eine Bitleitung für jede Spalte von Speicherelementen 28 vor. Jedes Speicherelement ist in der Darstellung an einem Kreuzungspunkt einer entsprechenden Wortleitung 40 und Bitleitung 42 positioniert. Die Erfassungsschaltung 32 (2) erfaßt den Widerstand von ausgewählten Speicherelementen 28 während Leseoperationen und richtet die Magnetisierung von ausgewählten Speicherelementen 28 während Schreiboperationen aus.
  • Der Speicher 16 weist einen Zeilendecodierer 44, der wirksam ist, um Wortleitungen 40 auszuwählen, und eine Mehrzahl von Spaltendecodierschaltungen 46 (auch als Spaltendecodierer 46 bezeichnet) zum Auswählen von Bitleitungen 42 während Lese- und Schreiboperationen auf. Eine Speicherzelle 28 wird durch Liefern einer Zeilenadresse Ax an den Zeilendecodierer 44 und einer Spaltenadresse Ay an den Spaltendecodierer 46 ausgewählt. Ansprechend auf die Zeilenadresse Ax koppelt der Zeilendecodierer 44 eine entsprechende Wortleitung 40 mit einem bekannten Spannungspegel, z.B. Masse. Ansprechend auf die Spaltenadresse Ay koppelt der Spaltendecodierer 46 eine entsprechende Bitleitung 42 mit einem Erfassungsverstärker 48. Ein ausgewähltes Speicherelement 28 liegt an dem Kreuzungspunkt von ausgewählten Wort- und Bitleitungen 40 und 42. Die Erfassungsverstärker 48 erfassen den Logikzustand der ausgewählten Speicherelemente 28.
  • Die Zeilenadressen Ax und die Spaltenadressen Ay können durch die Adreßersetzungsschaltung 30 an den Zeilendecodierer 44 bzw. den Spaltendecodierer 46 geliefert werden. Bei einem Ausführungsbeispiel empfängt die Ersetzungsschaltung 30 durch das Schnittstellenmodul 18 eine logische Adresse von dem Prozessor 14 und wandelt die empfangene logische Adresse auf der Basis von gespeicherten Speicherzellendefektinformationen in eine physische Adresse um. Der Zeilendecodierer 44 und der Spaltendecodierer 46 können die durch die Ersetzungsschaltung 30 bereitgestellten physischen Adressen verwenden, um entsprechende Speicherelemente 28 auszuwählen.
  • ECC ist ein übliches Paritätsschema. Der Hamming-Code, die Reed-Solomon-Codes, der Golay-Binärcode, der Goppa-Binärcode, der Viterbi-Code oder andere Algorithmen können verwendet werden, um die ECC-Bits auf der Basis eines Blocks von Daten einer vorbestimmten Größe zu erzeugen. Ei ne höhere Korrekturfähigkeit und Dateneffizienz kann mit größeren Datenblockgrößen, leistungsfähigeren ECC-Algorithmen, jedoch mit einer größeren Schaltungskomplexität erzielt werden. Statt komplexe Zustandsmaschinen zu verwenden, um die Logik des ECC-Codierers 24 und des ECC-Decodierers 34 zu implementieren, wie bei herkömmlichen Systemen, verwenden Ausführungsbeispiele der vorliegenden Erfindung ein „flaches" kombinatorisches Logikschema. Eine derartige ECC-Architektur kann die ECC-Daten in einem oder sehr wenigen Taktzyklen, beispielsweise weniger als drei Taktzyklen, codieren und decodieren. Ein Ausführungsbeispiel der vorliegenden Erfindung wird so beschrieben, daß es ein Beispiel eines Vier-Bit-Datenblocks verwendet, der zu Datenblöcken größerer Größen extrapoliert werden kann. Bei diesem Beispiel ist das ECC-Codewort die Vier-Bit-Daten, an die drei Bits von zusätzlichen ECC-Bits angehängt sind. Der Hamming-Code wird bei diesem Beispiel verwendet, um die ECC-Bits zu erzeugen. Die sich ergebende Beziehung zwischen den Eingangsdatenbits und dem Ausgangs-ECC-Codewort kann in Tabelle A zusammengefaßt werden.
  • TABELLE A
    Figure 00120001
  • Figure 00130001
  • Falls die vier Eingangsdatenbits d1, d2, d3 und d4 sind und die Codewort-Ausgangsbits c1, c2, c3, c4, c5, c6 und c7 sind, so kann die logische Beziehung zwischen Eingang und Ausgang in Tabelle A anschließend auf folgendes reduziert werden:
    c1 = d1
    c2 = d2
    c3 = d3
    c4 = d4
    c5 = d1 XOR d2 XOR d3
    c6 = d2 XOR d3 XOR d4
    c7 = d1 XOR d2 XOR d4
  • Diese logischen Gleichungen können durch eine kombinatorische Logik für den ECC-Codierer 24 implementiert sein, die den ECC-Code in weniger als drei Taktzyklen, und vorzugsweise in einem Taktzyklus, berechnen kann. Wie in 4 gezeigt ist, werden für jedes ECC-Bit, el bis en, ausgewählte Dateneingaben, dl bis dm, einer Logikschaltung 50 bereitgestellt, die angehängt werden, um Codewörter c1 bis c(m + n) zu bilden. Die Codewörter sind in dem Speicher 16 gespeichert. Bei 4 werden XOR-Gatter verwendet, um die Logikschaltung zum Erzeugen der ECC-Bits darzustellen. Vorzugsweise wird das Codieren in einem Taktzyklus des Taktsignals, CLK (CLK = clock, Takt), durchgeführt. Aufgrund der Einfachheit des Hamming-Codes bei diesem Beispiel können die sich ergebenden logischen Gleichungen natürlicherweise für eine Implementierung einer kombinatorischen Logik geeignet erscheinen. Diese Hamming-Code-Implementierung wird jedoch lediglich als Beispiel geliefert, um den Vorgang des Bestimmens der kombinatorischen Logikschaltung zu veranschaulichen; komplexere und leistungsfähigere ECC-Codes wie beispielsweise Reed-Solomon würden logische Gleichungen ergeben, die in der Regel die Verwendung von Zustandsmaschi nen erfordern würden, um die Codewörter in vielen Taktzyklen zu erzeugen.
  • Das Ausführungsbeispiel des ECC-Decodierers 34 ist ähnlich, wenn es auch komplexer ist. Bei diesem Beispiel ist das ECC-Schema in der Lage, Einbitfehler in den Daten, die aus dem Speicher zurückgelesen werden, zu korrigieren. Die nachstehende Tabelle B zeigt Codewort-Eingänge c1 bis c7, die alle möglichen Ausgänge des ECC-Codierers, plus alle möglichen 1-Bit-Fehler, darstellen. Zum Zweck der Korrektur zusätzlicher Bitfehler würde der Codewort-Eingang erweitert, um diese möglichen Fehlereingänge zu umfassen. Die gewünschten Ausgänge des ECC-Decodierers wären die korrigierten Daten, d1 bis d4.
  • TABELLE B
    Figure 00140001
  • Figure 00150001
  • Figure 00160001
  • Figure 00170001
  • Figure 00180001
  • Falls die ECC-Decodierereingänge c1, c2, c3, c4, c5, c6 und c7 und die Ausgänge d1, d2, d3 und d4 sind, kann der Datenausgang durch die folgenden Gleichungen dargestellt werden:
    d1 = c1 XOR[(c1 XOR c2 XOR c3 XOR c5) AND NOT (c2 XOR c3 XOR c4 XOR c6) AND(c1 XOR c2 XOR c4 XOR c7)]
    d2 = c2 XOR [(c1 XOR c2 XOR c3 XOR c5) AND(c2 XOR c3 XOR c4 XOR c6) AND(c1 XOR c2 XOR c4 XOR c7)]
    d3 = c3 XOR [(c1 XOR c2 XOR c3 XOR c5) AND(c2 XOR c3 XOR c4 XOR c6) AND NOT(cl XOR c2 XOR c4 XOR c7)]
    d4 = c4 XOR [NOT(c1 XOR c2 XOR c3 XOR c5) AND(c2 XOR c3 XOR c4 XOR c6) AND(c1 XOR c2 XOR c4 XOR c7)]
  • Diese logischen Gleichungen beschreiben einen ECC-Decodierer, der rein durch eine kombinatorische Logik, die in einem Taktzyklus oder sehr wenigen Taktzyklen durchgeführt werden kann, implementiert werden kann. 5 zeigt eine Darstellung der kombinatorischen Logikschaltung 52, die durch XOR-Gatter dargestellt ist, um ein ECC-Decodieren durchzuführen. Da die Anzahl möglicher Kombinationen von Fehlerbits mit der Anzahl von Datenbits exponentiell variiert, verwendet das obige Beispiel einen Vier-Bit-Dateneingang mit einem Drei-Bit-ECC-Code und die Korrektur eines Ein-Bit-Datenfehlers. Dieses Beispiel kann jedoch auf relativ einfache Weise auf größere Datenblöcke erweitert werden.
  • ABEL (Advanced Boolean Equation Language) ist eine Computersprache, die verwendet werden kann, um das Verhalten einer Logikschaltung zu beschreiben, um die Implementierung der Logikschaltung zu erzeugen. ABEL ist eine in der Branche standardmäßige Hardwarebeschreibungssprache (HDL – hardware description language), die durch die Data I/O Corporation für programmierbare Logikvorrichtungen (PLD – programmable logic devices) entwickelt wurde. Es gibt auch andere Hardwarebeschreibungssprachen, z.B. VHDL (Verflog Hardware Description Language), die in der Lage ist, Systeme einer größeren Komplexität zu beschreiben. Diese und andere Hardwarebeschreibungssprachen können verwendet werden, um das Verhalten eines Systems in einer Vielzahl von Formen zu beschreiben, einschließlich logischer Gleichungen, Wahrheitstabellen und Zustandsdiagramme, die C-artige Aussagen verwenden. Ein Kompilierer kann dann die Logik in PLDs (programmable logic devices, programmierbare Logikbauelemente), z.B. PALs (programmable array logic, programmierbare Arraylogik), SPLDs (simple programmable logic devices, einfache programmierbare Logikbauelemente), CPLDs (complex programmable logic devices, komplexe programmierbare Logikbauelemente) und FPGAs (field programmable gate arrays, feldprogrammierbare Gatterarrays) simulieren und implementieren.
  • Im Betrieb kommuniziert der Prozessor 14 die Daten zur Speicherung in dem Speicher 16 an den ECC-Codierer 24. Der ECC-Codierer 24 erzeugt ein Codewort aus Datenblöcken der Daten, wobei die Datenblöcke eine vorbestimmte Größe aufweisen. Das sich ergebende Codewort wird anschließend in den Speicher 16 geschrieben. Während eines Lesezugriffs wird das aus dem Speicher 16 gelesene Codewort in einem einzigen Schritt durch die kombinatorische Logik in dem ECC-Decodierer 34 decodiert, und die korrigierten Daten werden rasch dem Prozessor 14 bereitgestellt.
  • Da ein Entwickeln von Speichertechnologien eine lange Vorlaufzeit benötigt, um die Entwurfs- und Herstellungsprozesse zu perfektionieren, um Speichervorrichtungen mit ausreichend niedrigen Defekten zu erzeugen, damit sie im Handel überlebensfähig sind, sind Techniken, wie sie hierin beschrieben wurden und die die noch unvollkommenen Technologien zu einer kommerziellen Nutzung weiterführen, von unschätzbarem Wert. Da die hierin beschriebenen Techniken die Geschwindigkeit der Speichervorrichtung nicht beeinträchtigen, während sie die Defekte maskieren, können derartige Speichervorrichtungen arbeiten, als ob sie keine Defekte aufwiesen.

Claims (25)

  1. Speichersystem (12), das folgende Merkmale aufweist: eine Mehrzahl von Speicherspeicherungselementen (28); ein mit der Mehrzahl von Speicherspeicherungselementen (28) gekoppeltes Adreßersetzungsmodul (30); und eine kombinatorische ECC-Logikschaltung (ECC = error correcting code, Fehlerkorrekturcode) (20), die mit der Mehrzahl von Speicherspeicherungselementen (28) gekoppelt ist und wirksam ist, um in Daten, die aus der Mehrzahl von Speicherspeicherungselementen (28) gelesen werden, in weniger als drei Taktzyklen Fehler zu erfassen und zu korrigieren.
  2. Speichersystem (12) gemäß Anspruch 1, bei dem das Adreßersetzungsmodul (30) wirksam ist, um erste Adressen von ersten vorbestimmten Speicherplätzen in zweite Adressen von zweiten vorbestimmten Speicherplätzen abzubilden.
  3. Speichersystem (12) gemäß Anspruch 1 oder 2, das ferner eine Erfassungsschaltung (32) aufweist, die mit der Mehrzahl von Speicherspeicherungselementen (28) gekoppelt ist und wirksam ist, um Daten zu erfassen, die in ausgewählten der Mehrzahl von Speicherspeicherungselementen (28) gespeichert sind.
  4. Speichersystem (12) gemäß einem der Ansprüche 1 bis 3, das ferner eine Schreibschaltung (26) aufweist, die mit der Mehrzahl von Speicherspeicherungselementen (28) gekoppelt ist und wirksam ist, um Daten in ausgewählte der Mehrzahl von Speicherspeicherungselementen (28) zu schreiben.
  5. Speichersystem (12) gemäß einem der Ansprüche 1 bis 4, das ferner ein sekundäres Datenspeicherungsmodul (22) aufweist, das mit der kombinatorischen ECC-Logikschaltung (20) gekoppelt ist und wirksam ist, um Daten vorübergehend zu speichern.
  6. Speichersystem (12) gemäß einem der Ansprüche 1 bis 5, bei dem die Mehrzahl von Speicherspeicherungselementen (28) Direktzugriffsspeicherzellen aufweist.
  7. Speichersystem (12) gemäß einem der Ansprüche 1 bis 6, bei dem die Mehrzahl von Speicherspeicherungselementen (28) magnetoresistive Direktzugriffsspeicherzellen aufweist.
  8. Speichersystem (12) gemäß einem der Ansprüche 1 bis 7, bei dem die kombinatorische ECC-Logikschaltung (20) einen ECC-Codierer (24) aufweist, der wirksam ist, um ein ECC-Codewort auf der Basis einer vorbestimmten Anzahl von Datenbits zu erzeugen.
  9. Speichersystem (12) gemäß einem der Ansprüche 1 bis 8, bei dem die kombinatorische ECC-Logikschaltung (20) einen ECC-Decodierer (24) aufweist, der wirksam ist, um ein aus der Mehrzahl von Speicherspeicherungselementen (28) gelesenes ECC-Codewort zu decodieren und zumindest ein Fehlerbit in einer vorbestimmten Anzahl von Datenbits zu korrigieren.
  10. Vorrichtung (10), die folgende Merkmale aufweist: einen Prozessor (14); eine Mehrzahl von Speicherspeicherungselementen (28), die wirksam sind, um ansprechend auf Anweisungen von dem Prozessor (14) Daten zu speichern; ein Adreßersetzungsmodul (30), das mit der Mehrzahl von Speicherspeicherungselementen (28) und dem Prozessor (14) gekoppelt ist und wirksam ist, um erste Adressen von ersten vorbestimmten Speicherplätzen, die von dem Prozessor (14) empfangen werden, in zweite Adressen von zweiten vorbestimmten Speicherplätzen abzubilden; und eine kombinatorische ECC-Logikschaltung (20), die mit der Mehrzahl von Speicherspeicherungselementen (28) und dem Prozessor (14) gekoppelt ist und wirksam ist, um in Daten, die aus der Mehrzahl von Speicherspeicherungselementen (28) gelesen werden, in weniger als drei Taktzyklen Fehler zu erfassen und zu korrigieren, bevor die Daten an den Prozessor (14) geliefert werden.
  11. Vorrichtung (10) gemäß Anspruch 10, die ferner eine Erfassungsschaltung (32) aufweist, die mit der Mehrzahl von Speicherspeicherungselementen (28) gekoppelt ist und wirksam ist, um Daten zu erfassen, die in ausgewählten der Mehrzahl von Speicherspeicherungselementen (28) gespeichert sind.
  12. Vorrichtung (10) gemäß Anspruch 10 oder 11, die ferner eine Schreibschaltung (26) aufweist, die mit der Mehrzahl von Speicherspeicherungselementen (28) gekoppelt ist und wirksam ist, um Daten in ausgewählte der Mehrzahl von Speicherspeicherungselementen (28) zu schreiben.
  13. Vorrichtung (10) gemäß einem der Ansprüche 10 bis 12, die ferner ein sekundäres Datenspeicherungsmodul (22) aufweist, das mit der kombinatorischen ECC-Logikschaltung (20) gekoppelt ist und wirksam ist, um Daten vorübergehend zu speichern.
  14. Vorrichtung (10) gemäß einem der Ansprüche 10 bis 13, bei der die Mehrzahl von Speicherspeicherungselementen (28) Direktzugriffsspeicherzellen aufweist.
  15. Vorrichtung (10) gemäß einem der Ansprüche 10 bis 14, bei der die Mehrzahl von Speicherspeicherungselementen (28) magnetoresistive Direktzugriffsspeicherzellen aufweist.
  16. Vorrichtung (10) gemäß einem der Ansprüche 10 bis 15, bei der die kombinatorische ECC-Logikschaltung (20) einen ECC-Codierer (24) aufweist, der wirksam ist, um ein ECC-Codewort auf der Basis einer vorbestimmten Anzahl von Datenbits zu erzeugen.
  17. Vorrichtung (10) gemäß einem der Ansprüche 10 bis 16, bei der die kombinatorische ECC-Logikschaltung (20) einen ECC-Decodierer (24) aufweist, der wirksam ist, um ein aus der Mehrzahl von Speicherspeicherungselementen (28) gelesenes ECC-Codewort zu decodieren und zumindest ein Fehlerbit in einer vorbestimmten Anzahl von Datenbits zu korrigieren.
  18. Verfahren, das folgende Schritte aufweist: Empfangen von Daten und zumindest einer Schreibadresse, um die Daten in einer Mehrzahl von Direktzugriffsspeicherspeicherungselementen zu speichern; Bestimmen, ob zumindest ein defekter Speicherplatz existiert; Abbilden der empfangenen Schreibadresse auf zumindest eine korrigierte Adresse, ansprechend auf die Existenz zumindest eines bekannten defekten Speicherplatzes; und Erzeugen eines ECC-Codeworts, unter Verwendung eines kombinatorischen ECC-Logikcodierers, aus den empfangenen Daten in weniger als drei Taktzyklen, und Speichern des ECC-Codeworts in die Mehrzahl von Direktzugriffsspeicherspeicherungselementen.
  19. Verfahren gemäß Anspruch 18, das ferner folgende Schritte aufweist: Empfangen zumindest einer Leseadresse, um die in derselben gespeicherten Daten zu lesen; Abbilden der empfangenen Leseadresse in die zumindest eine korrigierte Adresse, ansprechend auf die Existenz zumindest eines bekannten defekten Speicherplatzes; und Lesen der Mehrzahl von Direktzugriffsspeicherspeicherungselementen und Decodieren der ECC-Codewörter in denselben, unter Verwendung eines kombinatorischen ECC-Logikcodierers, der wirksam ist, um Fehler in denselben zu erfassen und zu korrigieren.
  20. Verfahren gemäß Anspruch 18 oder 19, das ferner ein Erfassen des ECC-Codeworts, das in ausgewählten der Mehrzahl von Direktzugriffsspeicherspeicherungselementen gespeichert ist, aufweist.
  21. Verfahren gemäß einem der Ansprüche 18 bis 20, das ferner ein Schreiben von Daten in ausgewählte der Mehrzahl von Direktzugriffsspeicherspeicherungselementen aufweist.
  22. Speicher, der folgende Merkmale aufweist: eine Mehrzahl von Speicherspeicherungselementen (28); und einen kombinatorischen ECC-Logikcodierer (24), der mit der Mehrzahl von Speicherspeicherungselementen (28) gekoppelt ist und wirksam ist, um ein ECC-Codewort auf der Basis von Daten zu erzeugen, die in der Mehrzahl von Speicherspeicherungselementen gespeichert werden sollen; und einen kombinatorischen ECC-Logikdecodierer (34), der mit der Mehrzahl von Speicherspeicherungselementen (28) gekoppelt ist und wirksam ist, um ein aus der Mehrzahl von Speicherspeicherungselementen (28) gelesenes ECC-Codewort zu empfangen und das ECC-Codewort zu decodieren, um zumindest einen Fehler in den Daten in weniger als drei Taktzyklen zu korrigieren.
  23. Speicher gemäß Anspruch 22, bei dem der kombinatorische ECC-Logikcodierer (24) eine kombinatorische Logik aufweist, die wirksam ist, um das ECC-Codewort in einem Taktzyklus zu erzeugen.
  24. Speicher gemäß Anspruch 22 oder 23, bei dem der kombinatorische ECC-Logikdecodierer (34) eine kombinatorische Logik aufweist, die wirksam ist, um das ECC-Codewort zu decodieren und Fehler in den Daten in einem Taktzyklus zu korrigieren.
  25. ECC-Verfahren, das folgende Schritte aufweist: ein Codierungsverfahren, das in weniger als drei Taktzyklen abgeschlossen ist und folgende Schritte aufweist: Empfangen eines Datenblocks einer vorbestimmten Anzahl von Bits; Erzeugen einer Mehrzahl von ECC-Bits auf der Basis des Datenblocks unter Verwendung einer kombinatorischen Logik; und Anhängen der Mehrzahl von ECC-Bits an den Datenblock und Erzeugen eines ECC-Codeworts aus denselben; und ein Decodierungsverfahren, das in weniger als drei Taktzyklen abgeschlossen ist und folgende Schritte aufweist: Empfangen eines ECC-Codeworts; und Decodieren des ECC-Codeworts und Korrigieren von Fehlern, falls vorhanden, unter Verwendung einer kombinatorischen Logik, und Erzeugen des Datenblocks einer vorbestimmten Anzahl von Bits.
DE102004002219A 2003-03-06 2004-01-15 Unterstütztes Speichersystem Withdrawn DE102004002219A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/384,053 US7904786B2 (en) 2003-03-06 2003-03-06 Assisted memory system
US10-384,053 2003-03-06

Publications (1)

Publication Number Publication Date
DE102004002219A1 true DE102004002219A1 (de) 2004-10-07

Family

ID=32961337

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102004002219A Withdrawn DE102004002219A1 (de) 2003-03-06 2004-01-15 Unterstütztes Speichersystem

Country Status (3)

Country Link
US (1) US7904786B2 (de)
JP (1) JP2004272900A (de)
DE (1) DE102004002219A1 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050177679A1 (en) * 2004-02-06 2005-08-11 Alva Mauricio H. Semiconductor memory device
US7421454B2 (en) * 2004-02-27 2008-09-02 Yahoo! Inc. Method and system for managing digital content including streaming media
US20080077840A1 (en) * 2006-09-27 2008-03-27 Mark Shaw Memory system and method for storing and correcting data
US8504890B2 (en) * 2006-12-17 2013-08-06 Ramot At Tel Aviv University Ltd. Scheduling for LDPC decoding
TW200929237A (en) * 2007-12-21 2009-07-01 Winbond Electronics Corp Memory architecture and configuration method thereof
US8321761B1 (en) * 2009-09-28 2012-11-27 Nvidia Corporation ECC bits used as additional register file storage
KR20120137416A (ko) 2010-03-22 2012-12-20 모사이드 테크놀로지스 인코퍼레이티드 에러 정정을 갖는 복합 반도체 메모리 디바이스
US9612901B2 (en) 2012-03-30 2017-04-04 Intel Corporation Memories utilizing hybrid error correcting code techniques
DE112012006154T5 (de) * 2012-03-30 2015-02-05 Intel Corporation Speicher, die Hybrid-Fehlerkorrekturcode-Techniken verwenden

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5394407A (en) * 1993-07-01 1995-02-28 Motorola, Inc. Method of transferring error correcting code and circuit therefor
JP3305966B2 (ja) * 1995-12-25 2002-07-24 ソニー株式会社 データ復号装置及びその方法並びにデータ再生装置
JP3614173B2 (ja) 1996-02-29 2005-01-26 株式会社ルネサステクノロジ 部分不良メモリを搭載した半導体記憶装置
US5912906A (en) * 1997-06-23 1999-06-15 Sun Microsystems, Inc. Method and apparatus for recovering from correctable ECC errors
US6446184B2 (en) 1998-04-28 2002-09-03 International Business Machines Corporation Address re-mapping for memory module using presence detect data
US6212647B1 (en) 1998-06-02 2001-04-03 Hewlett-Packard Company Systems and methods to perform defect management to block addressable storage media
KR100287018B1 (ko) * 1998-08-07 2001-04-16 윤종용 에러 정정 회로를 구비한 반도체 메모리 장치
US6272651B1 (en) * 1998-08-17 2001-08-07 Compaq Computer Corp. System and method for improving processor read latency in a system employing error checking and correction
US6442676B1 (en) 1999-06-30 2002-08-27 Bull Hn Information Systems Inc. Processor with different width functional units ignoring extra bits of bus wider than instruction width
US6745363B2 (en) 1999-07-30 2004-06-01 Hewlett-Packard Development Company, Lp Early error detection using ECC
US6426893B1 (en) 2000-02-17 2002-07-30 Sandisk Corporation Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
DE10020128A1 (de) 2000-04-14 2001-10-18 Infineon Technologies Ag MRAM-Speicher
JP4477199B2 (ja) 2000-06-16 2010-06-09 株式会社ルネサステクノロジ 磁気ランダムアクセスメモリ、磁気ランダムアクセスメモリへのアクセス方法および磁気ランダムアクセスメモリの製造方法
JP3803239B2 (ja) 2000-09-29 2006-08-02 株式会社ルネサステクノロジ 誤り訂正符号化及び復号装置
US6591394B2 (en) 2000-12-22 2003-07-08 Matrix Semiconductor, Inc. Three-dimensional memory array and method for storing data bits and ECC bits therein
US6418068B1 (en) 2001-01-19 2002-07-09 Hewlett-Packard Co. Self-healing memory
US6681340B2 (en) 2001-02-23 2004-01-20 International Business Machines Corporation Efficient implementation of error correction code scheme
US6445612B1 (en) 2001-08-27 2002-09-03 Motorola, Inc. MRAM with midpoint generator reference and method for readout
US6643195B2 (en) * 2002-01-11 2003-11-04 Hewlett-Packard Development Company, Lp. Self-healing MRAM

Also Published As

Publication number Publication date
US20040181733A1 (en) 2004-09-16
US7904786B2 (en) 2011-03-08
JP2004272900A (ja) 2004-09-30

Similar Documents

Publication Publication Date Title
DE112011100371B4 (de) Verfahren, Vorrichtung und Computerprogrammprodukt zum Decodieren eines Codeworts
DE60117066T2 (de) Verfahren und Vorrichtung zum Überprüfen von fehlerkorrigierenden Codes
DE10133595B4 (de) Pufferschaltung, Speicherzugriffsverfahren und Reed-Solomon-Decoder
DE102010051813B4 (de) Fehlerkorrekturmechanismen für 8-Bit Speichergeräte
DE102020115736A1 (de) Halbleiterspeichervorrichtung und Verfahren zum Betreiben der Halbleiterspeichervorrichtungen
DE102013215055B4 (de) Schaltungsanordnung, Vorrichtung, Verfahren und Computerprogramm mit modifiziertem Fehlersyndrom zur Fehlererkennung von permanenten Fehlern in Speichern
DE102019123642A1 (de) Speicherfehlererkennung und korrektur
DE60015753T2 (de) System und verfahren zum schutz von daten und zur korrektur von bitfehlern folgend aus komponentenfehlern
DE102004036888B4 (de) Flashspeichersystem und zugehöriges Datenschreibverfahren
DE102007038114A1 (de) Fehlerkorrekturschaltung, Halbleiterspeicherelement und Fehlerkorrekturverfahren
DE102018122491A1 (de) Halbleiterspeichervorrichtung und verfahren zum betreiben derselben
DE102004063571A1 (de) System und Verfahren zum Konfigurieren einer Festkörperspeicherungsvorrichtung mit Fehlerkorrekturcodierung
DE102013111710A1 (de) Speichermodul, Speichersystem mit demselben und Verfahren zum Auslesen davon und Schreiben dort hinein
DE112011101116B4 (de) Two-Level BCH-Codes für Solid-State-Speichereinheiten
DE112011100579T5 (de) Verfahren und vorrichtung zum verwenden von cachespeicher in einem system, welches einen niedrigleistungszustand unterstützt
DE102015201384A1 (de) Vorrichtung und Verfahren zum Verbessern der Datenspeicherung durch Dateninvertierung
DE102008003113A1 (de) ECC-Steuereinheit, Speichersystem und Verfahren zur Korrektur eines Fehlers
DE19937101A1 (de) Halbleiterspeicherbauelement mit Chipinterner Fehlerkorrekturschaltung und ein Verfahren zum Korrigieren eines Datenfehlers darin
DE102005048255A1 (de) Integriertes Schaltungsbauelement und Betriebsverfahren
DE102007058828A1 (de) Speicherbauelement und Fehlerkorrekturverfahren
DE112014005810B4 (de) anagement der Datenspeicherung in analogen Speicherzellen unter Verwendung einer nicht ganzzahligen Anzahl von Bits pro Zelle
EP2100308B1 (de) Verfahren und halbleiterspeicher mit einer einrichtung zur erkennung von adressierungsfehlern
DE3209679A1 (de) Halbleiter-speichereinrichtung
DE102013112195A1 (de) Speichercontroller, der Teildaten in einer Speichervorrichtung ändert, sowie Verfahren zum Ändern von Teildaten davon
DE112004001843T5 (de) System und Verfahren zum automatischen Erkennen von Softfehlern in Latches einer integrierten Schaltung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8139 Disposal/non-payment of the annual fee