DE4220196C2 - Halbleiterspeichervorrichtung und Verfahren zum Korrigieren eines Datenfehlers in einer Halbleiterspeichervorrichtung entsprechend einer vorbestimmten Hamming-Matrix - Google Patents

Halbleiterspeichervorrichtung und Verfahren zum Korrigieren eines Datenfehlers in einer Halbleiterspeichervorrichtung entsprechend einer vorbestimmten Hamming-Matrix

Info

Publication number
DE4220196C2
DE4220196C2 DE4220196A DE4220196A DE4220196C2 DE 4220196 C2 DE4220196 C2 DE 4220196C2 DE 4220196 A DE4220196 A DE 4220196A DE 4220196 A DE4220196 A DE 4220196A DE 4220196 C2 DE4220196 C2 DE 4220196C2
Authority
DE
Germany
Prior art keywords
data
signal
signals
correction
syndrome
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.)
Expired - Fee Related
Application number
DE4220196A
Other languages
English (en)
Other versions
DE4220196A1 (de
Inventor
Hiroyasu Makihara
Kenji Kohda
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE4220196A1 publication Critical patent/DE4220196A1/de
Application granted granted Critical
Publication of DE4220196C2 publication Critical patent/DE4220196C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Algebra (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)
  • Semiconductor Memories (AREA)
  • Read Only Memory (AREA)

Description

Die vorliegende Erfindung bezieht sich auf eine Halbleiterspeichervorrichtung sowie auf ein Verfahren zum Korrigieren eines Datenfehlers einer Halbleiterspeichervorrichtung entsprechend einer vorbestimmten Hamming-Matrix.
Gewisse Halbleiterspeichervorrichtungen weisen eine Fehlerkorrekturschaltung (nachfolgend als ECC abgekürzt) auf, die für die Fehlerkorrektur von aus einem Speicherzellenfeld ausgelesenen fehlerhaften Daten eingesetzt ist.
Die Erkennung, ob ein Datenfehler einer beliebigen Bitlänge vorliegt, wird durchgeführt, indem ein Datenbit, Paritätsbit genannt, an die Daten angehängt wird. Dieses Erkennungsverfahren wird Paritätsprüfung (parity check) genannt. Bei der Paritätsprüfung wird das Datum eines Paritätsbits so gesetzt, daß die Anzahl der Bits von 1en geradzahlig (oder ungeradzahlig) bei den zu überprüfenden Daten und dem Paritätsbit ist. Die Erkennung eines Fehlers von 1 Bit wird gestattet, indem die Anzahl der Bits von 1en überprüft wird.
Allerdings ist es nicht möglich, einen Fehler durch die Paritätsprüfung zu korrigieren, da das fehlerhafte Bit nicht identifiziert werden kann. Zum Zweck des Erkennens des Fehlers und dessen Korrektur werden Daten einer Mehrzahl von Bits an diejenigen Daten angehängt, in denen es einen Fehler zu erkennen gilt. Diese Daten mit mehreren Bits werden Check-Bits genannt und sind redundante Bits zum Erkennen und Korrigieren eines Fehlers. Check-Bitdaten werden nachfolgend Paritätsdaten genannt. Daten mit angehängten Check-Bits werden Fehlerkorrekturcode genannt.
Allgemein werden Paritätsdaten mit 6 Bits und Paritätsdaten mit 4 Bits zum Anhängen für die Korrektur eines einzelnen Bitfehlers in Daten von 32 Bit bzw. 8 Bit benötigt.
Die ECC führt die vorbestimmte Operation mit dem ausgelesenen Datum und dem entsprechenden Paritätsbit durch zum Korrigieren des Fehlers im ausgelesenenen Datum und zum eventuellen Bereitstellen des ausgelesenen Datums als korrigiertes Datum.
So ein ECC wird beispielsweise in ein Masken-ROM (Read Only Memory=Nur-Lesespeicher) eingebaut, in das Daten während eines Herstellungsprozesses voreingeschrieben werden, und aus dem nur das Auslesen möglich ist. Die Anwendung eines ECC für EEPROMs (Electronically Erasable and Programmable ROM=elektronisch lesbares und programmierbares ROM) für Speichervorrichtungen, in die Daten nach dem Herstellungsprozeß überschrieben werden können, wird im US-Patent 49 58 352 beschrieben.
Die Fig. 10 zeigt ein schematisches Blockschaltbild mit einem Beispiel des Aufbaus eines herkömmlichen Masken-ROM mit einem ECC. Der Aufbau eines herkömmlichen Masken-ROM mit ECC wird nachfolgend unter Bezug auf die Fig. 10 beschrieben. Der Masken-ROM umfaßt ein Speicherzellenfeld 1 zum Speichern von an eine externe Quelle auszulesenden ursprünglichen Daten (nachfolgend als reguläres Speicherzellenfeld bezeichnet) sowie ein Speicherzellenfeld 2 zum Speichern von Paritätsbits zum Korrigieren der Fehler in den aus dem Speicherzellenfeld 1 ausgelesenen Daten (nachfolgend als Paritätsspeicherzellenfeld bezeichnet).
Das Speicherzellenfeld 1 umfaßt 32 Blöcke DB0-DB31, die Daten mit 32 Bit entsprechen. Entsprechend umfaßt das Paritätsspeicherzellenfeld 32 sechs Blöcke DP0-DP5, die Paritätsdaten mit sechs Bit entsprechen.
Eine Mehrzahl von Wortleitungen WL ist gemeinsam für das Speicherzellenfeld 1 und Paritätsspeicherzellenfeld 2 vorgesehen. Eine Mehrzahl von Bitleitungen BL ist für jede der 38 Blöcke DB0-DB31 und DP0-DP5 vorgesehen.
Die Wortleitungen WL sind mit einem X-Decoder 3 verbunden. Die Bitleitungen BL sind mit einem Y-Gatter 7 verbunden. Ein Adreßpuffer 5 nimmt die Wellenformung und Verstärkung für ein über Adreßeingabeanschlüsse A0-An angelegtes externes Adreßsignal wahr und legt dieses an den X-Decoder 3 und einen Y-Decoder 4 an. Der X-Decoder 3 decodiert das Adreßsignal des Adreßpuffers 5 und aktiviert eine der Mehrzahl von Wortleitungen WL entsprechend dem Adreßsignal.
Der Y-Decoder decodiert das Adreßsignal des Adreßpuffers 5 und steuert das Y-Gatter 7.
Genauer gesagt, das Y-Gatter 7 ist in 32 Blöcke YGD0-YGD31 entsprechend den 32 regulären Speicherzellenfeldblöcken DB0-DB31 eingeteilt, sowie in 6 Blöcke YGP0-YGP5 entsprechend den sechs Paritätsspeicherzellenfeldblöcken DP0-DP5. Jeder der 32 Blöcke YGD0-YGD31 im Y-Gatter 7 reagiert auf das decodierte Ausgangssignal des Y-Decoders 4 und verbindet elektrisch eine Leseverstärkergruppe 8 mit einer der Mehrzahl von Bitleitungen des entsprechenden regulären Speicherzellenfeldblocks. Entsprechend reagiert jeder der 6 Blöcke YGP0-YGP5 im Y-Gatter 7 auf das decodierte Ausgangssignal des Y-Decoders 4 und verbindet elektrisch die Leseverstärkergruppe 8 mit einer der Mehrzahl von Bitleitungen des entsprechenden Paritätsspeicherzellenfeldblocks.
Die Leseverstärkergruppe 8 umfaßt 32 Leseverstärker SAD0-SAD31 sowie 6 Leseverstärker SAP0-SAP5, die den 32 Y-Gatter-Blöcken YGD0-YGD31 sowie den 6 Y-Gatter-Blöcken YGP0-YGP5 entsprechen. Jeder der 38 Leseverstärker SAD0-SAD31 und SAP0-SAP5 liest und verstärkt das Signal auf einer Bitleitung BL, die elektrisch mit einem entsprechenden Y-Gatterblock verbunden ist, und legt dieses an die ECC 9 an.
Jeder der regulären Speicherzellenfeldblöcke DB0-DB31 und der Paritätsspeicherzellenfeldblöcke DP0-DP5 umfaßt eine in einer Matrix aus einer Mehrzahl von Zeilen und Spalten angeordnete Speicherzelle MC. In einer Reihe angeordnete Speicherzellen MC sind mit derselben Wortleitung WL verbunden. In einer Spalte angeordnete Speicherzellen MC sind mit derselben Bitleitung BL verbunden.
Die Aktivierung einer Wortleitung WL bewirkt ein Signal entsprechend der in jeder Speicherzelle MC gespeicherten Daten, die mit dieser Wortleitung WL verbunden ist, und erscheint auf der mit der Speicherzelle MC verbundenen Bitleitung BL. Wenn N Spalten von Speicherzellenspalten in jedem regulären Speicherzellenfeldblock DB0-DB31 und Paritätsspeicherzellenfeldblock DP0-DP5 vorgesehen sind, werden gespeicherte Daten von (38×N) Speicherzellen MC, die mit derselben Wortleitung WL verbunden sind, gleichzeitig an das Y-Gatter 7 angelegt.
Jeder der entsprechend dem regulären Speicherzellenfeld 1 vorgesehenen Y-Gatterblöcke YGD0-YGD31 verbindet elektrisch nur eine Bitleitung BL im entsprechenden regulären Speicherzellenfeldblock mit einem entsprechenden Leseverstärker. Entsprechend verbindet jeder der Y-Gatterblöcke YGP0-YGP5, die entsprechend dem Paritätsspeicherzellenfeld 2 vorgesehen sind, nur eine Bitleitung BL des entsprechenden Paritätsspeicherzellenfeldblocks mit einem entsprechenden Leseverstärker. Daher verstärkt die Leseverstärkergruppe 8 eines der N Datensignale, die vom Speicherzellenfeldblock DB0 zum Y-Gatterblock YGD0 bereitgestellt werden, eines der N vom Speicherzellenfeldblock DB1 zum Y-Gatterblock YGD1 bereitgestellten Datensignale, . . ., eines der N vom Speicherzellenfeldblock DB31 zum Y-Gatterblock YGD31 bereitgestellten Datensignale, eines des N vom Paritätsspeicherzellenfeldblock DP0 zum Y-Gatterblock YGP0 bereitgestellten Datensignale, . . ., sowie eines der N vom Paritätsspeicherzellenfeldblock DP0 zum Y-Gatterblock YGP5 bereitgestellten Datensignale, um diese als Inputsignal d0, d1, . . ., d31, P0, . . ., P5 an die ECC 9 anzulegen.
Daher werden die gespeicherten Daten von 38 mit derselben Wortleitung verbundenen Speicherzellen MC zur ECC 9 aus jeweils einem der regulären Speicherzellenfeldblöcke DB0-DB31 und Paritätsspeicherzellenfeldblöcke DP0-DP5 ausgelesen.
Vorbestimmte Paritätsdaten werden in das Paritätsspeicherzellenfeld 2 zum Zeitpunkt der Herstellung eingeschrieben, um mit der arithmetischen Operation der ECC 9 die Erkennung und Korrektur von einem Bitfehler zu bewirken, der in den 38 Datenbits d0-d31 und P0-P5 erzeugt wird, die parallel vom regulären Speicherzellenfeld 1 und dem Paritätsspeicherzellenfeld 2 zur ECC 9 ausgelesen werden. Die in das Paritätsspeicherzellenfeld 2 einzuschreibenden Partitätsdaten werden entsprechend der im Speicherzellenfeld 1 gespeicherten Daten bestimmt.
Die zu einer externen Quelle auszulesenden Daten werden vorher in das Speicherzellenfeld 1 zum Zeitpunkt der Herstellung eingeschrieben. Allerdings existieren aus verschiedenen Gründen mehrere Fälle, bei denen die aus dem Speicherzellenfeld 1 ausgelesenen Daten nicht die richtigen Daten sind. In einem derartigen Fall werden die aus dem Speicherzellenfeld 1 ausgelesenen Daten in korrekte Daten durch den Betrieb der ECC 9 korrigiert.
Die ECC 9 ist parallel mit 32 zu einer externen Quelle auszulesenden Datenbits d0-d31 sowie 6 Paritätsbits P0-P5 versehen, die zur Korrektur eines in den 32 Datenbits erzeugten 1 Bitfehlers benötigt werden. Die ECC 9 führt eine vorbestimmte Operation mit den 32 Datenbits d0-d31 und den 6 Paritätsbits P0-P5 aus und stellt ein 32 Bitdatum für den Ausgabepuffer 10 bereit. Wenn kein Fehler vorliegt, werden die 32 Bitdaten direkt an den Ausgabepuffer 10 angelegt. Wenn ein Fehler in einem der 32 ausgelesenen Daten mit d0-d31 vorliegt, wird das fehlerhafte Bit korrigiert und die 32 Bitdaten werden an den Ausgabepuffer 10 angelegt.
Die ECC 9 legt selektiv an den Ausgabepuffer 10 die niederwertigen 16 Datenbits d0-d15 und die höherwertigen 16 Datenbits d16-d31 der fehlerkorrigierten 32 Datenbits d0-d31 an.
Der Ausgabepuffer 10 verstärkt die durch die ECC 9 ausgegebenen Datensignale, das heißt die korrigierten 16 Datenbits d0-d15 (oder d16-d31) und legt diese an Datenausgabeanschlüsse DT0-DT15 an.
Der Ausgabepuffer 10 umfaßt 16 Pufferschaltungen OUT0-OUT15, die den von der ECC 9 bereitgestellten 16 Datenbits entsprechen. Die 16 Pufferschaltungen OUT0-OUT15 sind mit den 16 Datenausgabeanschlüssen DT0-DT15 verbunden.
Die Steuerschaltung 6 reagiert auf ein extern angelegtes Steuersignal des Steuersignaleinganganschlusses CTL zum Steuern der Operation, wie der Adreßpuffer 5 und der Ausgabepuffer 10.
Die Fig. 11 zeigt ein schematisches Blockdiagramm mit dem internen Aufbau der ECC 9 nach Fig. 10.
Vor der Beschreibung des Aufbaues der ECC 9 wird kurz der arithmetische Prozeß mit dem Fehlerkorrekturmechanismus der ECC 9 unter Bezug auf die Fig. 11 beschrieben. Die Einzelheiten dieser Fehlerkorrektur und der Schaltung sind in "Interface", August 1984, Seiten 236-250 beschrieben.
Ein Fehlerkorrekturcode y (ein zu korrigierender Code) mit m Bit für das Entdecken und Korrigieren eines Fehlers von 1 Bit wird wie folgt dargestellt:
y=(y0 y1 . . . y (m-1)) (1)
wobei y0, y1, . . ., y (m-1) die Logikwerte des niederstwertigen Bit, des zweitniederstwertigen Bit, . . . des höchstwertigen Bit des Fehlerkorrekturcodes sind.
Entsprechend stellt sich ein Fehlerkorrekturcode mit keinem fehlerhaften Datenbit, das heißt Erwartungswertdaten x der m-Bitdaten, wie folgt dar:
x=(x0 x1 . . . x (m-1)) (2)
wobei x0, x1, . . ., x (m-1) für die korrekten Logikwerte des niederstwertigen Bit, des zweitniederstwertigen Bit, . . . des höchstwertigen Bit des Fehlerkorrekturcodes stehen.
Die Fehleranzeige zwischen betreffenden Bits mit Logikwerten y0-y (m-1) des Fehlerkorrekturcodes und der entsprechenden Erwartungswertdaten x0-x (m-1) wird durch die folgende Matrix e dargestellt (nachfolgend als Fehlermatrix bezeichnet), für die y=x+e gilt.
e=(e0 e1 . . . e (m-1)) (3)
wobei e0, e1, . . ., e (m-1) für die Logikwerte des Versatzes (des Unterschieds) des niederstwertigen Bit y0, des zweitniederstwertigen Bit y1, . . . des höchstwertigen Bit y (m-1) sowie den entsprechenden Erwartungswertdaten x0, x1, . . . x (m-1). Es wird angenommen, daß ein Logikwert 0 anzeigt, daß kein Versatz (keine Differenz) zum Erwartungswert besteht, und ein Logikwert 1 zeigt an, daß ein Unterschied (offset) von den erwarteten Daten besteht. In den folgenden Gleichungen bezeichnen die Operatoren + in einem Kreis und ein X eine Addition bzw. Multiplikation mit 2 als Modul.
Durch den Zusammenhang y=x+e wird die Beziehung zwischen dem Logikwert yj eines beliebigen Bits des Fehlerkorrekturcodes und dessen Erwartungswert xj (j=0, 1, . . . (m-1)) durch die folgende Gleichung dargestellt:
yj=xj ⊕ ej (4)
Die Fig. 20 ist die Wahrheitstabelle der modulo 2 Addition. Aus Fig. 20 geht hervor, daß wenn der zu addierende Wert B 0 ist, das Additionsergebnis mit dem Wert A, zu dem B addiert wird, übereinstimmt. Wenn der zu addierende Wert B 1 ist, zeigt das Additionsergebnis einen Logikwert, der invers bezüglich des Wertes A ist, zu dem B addiert wurde.
Wenn daher die Logikwerte e0-e (m-1) bekannt sind, können die Erwartungswerte x0-x (m-1) jedes Bits bestimmt werden.
Die Gegenwart eines Fehlerbits im Fehlerkorrekturcode x kann durch die Benutzung einer Matrix von Elementen mit 1 und 0 erkannt werden, die Hamming-Matrix genannt wird. Eine Hamming-Matrix H ist eine Matrix, die den folgenden Gleichungszusammenhang erfüllt:
H · x=0 (5)
Wenn die Logikwerte y0-y (m-1) der jeweiligen Bits des noch nicht korrigierten Korrekturcodes y den Erwartungswerten x0-x (m-1) entsprechen, ist der Zusammenhang H · y=0 erfüllt. Wenn der Logikwert eines beliebigen Bits im Fehlerkorrekturcode y sich von dem entsprechenden Erwartungswert unterscheidet, gilt H · y≠0. Das Produkt H · y der Hamming-Matrix H und der Zeile y, die einen Fehlerkorrekturcode vor der Korrektur beschreiben, wird Syndrom-Matrix (syndrome matrix) S genannt.
Die Syndrom-Matrix S zeigt an, welches Bit des Fehlerkorrekturcodes y einen Logikwert unterschiedlich vom Erwartungswert aufweist.
Die Syndrom-Matrix S kann wie unten beschrieben erhalten werden, indem die transportierte HT der Paritäts-Check-Matrix H benutzt wird, entsprechend dem Zusammenhang zwischen der Zeile y als Fehlerkorrekturcode vor der Korrektur, Zeile x von Erwartungswertdaten und Fehlermatrix e.
e=HT · S (6)
Aus der oben beschriebenen Gleichung (4) geht hervor, daß der Logikwert yj eines beliebigen Bits des Fehlerkorrekturcodes y nicht korrigiert werden muß, wenn er identisch mit dem Erwartungswert xj ist. Wenn andererseits der Logikwert yj eines beliebigen Bits sich von dessen Erwartungswert xj unterscheidet, muß der Logikwert yj dieses Bits invertiert werden. Eine Fehlermatrix wird durch Gleichung (6) erhalten, und der richtige Logikwert xj eines beliebigen Bits des Fehlerkorrekturcodes kann wie folgt erhalten werden:
xj=yj ⊕ ej (7)
Durch Benutzung einer vorbestimmten Hamming-Matrix H kann ein im Fehlerkorrekturcode mit beliebiger Bitlänge erzeugtes fehlerhaftes Bit korrigiert werden.
Wenn der Fehlerkorrekturcode durch die ursprünglichen zu korrigierenden Daten einer Bitlänge m₁ und Paritätsdaten einer Bitlänge m₂ gebildet werden, ist die Hamming-Matrix H eine Matrix von m₂ Zeilen und m₁ Spalten, wie in Fig. 22 gezeigt. Die Fig. 22 zeigt eine typische Form einer Hamming-Matrix.
Die Erkennung und Korrektur eines Bitfehlers in einem 32-Bitdatum benötigt das Hinzufügen von 6-Bit-Paritätsdaten zu dem 32-Bitdatum. Die Operation zum Korrigieren eines 1-Bitfehlers in den 32-Bitdaten wird nachfolgend beschrieben.
Der Fehlerkorrekturcode von 32-Bitdaten d0-d31 und 6-Bit-Paritätsdaten P0-P5 wird durch die folgende Sequenz DP dargestellt:
DP=(d0 d1 . . . d31 P0 P1 . . . P5)
Eine Hamming-Matrix H von 6 Zeilen × 38 Spalten wird entsprechend der korrekten Logikwerte für jedes Bit von d0-d31, P0-P5 des Fehlerkorrekturcodes bestimmt. In der folgenden Beschreibung wird das Element auf der i-ten Zeile und der j-ten Spalte in der Hamming-Matrix H als h (i, j) dargestellt. Die Hamming-Matrix H sieht wie folgt aus:
wobei (i=0, 1, 2 . . . 5; j=0, 1, 2 . . . 37).
Die Elemente S0-S5 der Syndrom-Matrix S werden durch die folgende Berechnung entsprechend der Sequenz DP, die dem Fehlerkorrekturcode entspricht, und der Hamming-Matrix H berechnet:
Aus Gleichung 8 geht hervor, daß ein beliebiges Element Si der Syndrom-Matrix durch die folgende Berechnung entsprechend dem i-ten Element h (i, 0)-h (i, 37) der Hamming-Matrix H und den Logikwerten d0-d31 sowie P0-P5 der zugehörigen Bits der Fehlerkorrekturcodes erhalten wird.
Sj=d0 × h (i, 0) ⊕ d1 × h (i, 1) · · · ⊕ d31 × h (i, 31) ⊕ P0 × h (i, 32) · · · ⊕ P5 × h (i, 37).
Die Fig. 21 ist eine Wahrheitstabelle mit einer modulo 2 Multiplikation. Wie aus Fig. 21 zu sehen, wird das Multiplikationsergebnis (A×B) 0, wenn der zu multiplizierende Wert B 0 beträgt, unabhängig vom Multiplikanden A. Wenn der zu multiplizierende Wert B 1 beträgt, erreicht Multiplikationsergebnis (A×B) einen mit dem Multiplikanden A identischen Logikwert.
Das i-te Element Si der Syndrom-Matrix S wird erhalten, indem durch Addition modulo 2 alle Daten des Fehlerkorrekturcodes, die modulo 2 mit den Elementen h (i, 0)-h (i, 37) der i-ten Zeile in der Hamming-Matrix H zu multiplizieren sind, die 1 betragen.
Die Elemente e0-e37 der Fehlermatrix e werden durch den folgenden Ausdruck entsprechend der Transponierten HT der Hamming-Matrix H und der Elemente S0-S5 der berechneten Syndrom-Matrix berechnet.
Aus Gleichung 9 geht hervor, daß ein beliebiges Element ej der Fehlermatrix e sich wie folgt ausdrückt:
ej=h (0, j × S0 ⊕ h (1, j) × S1 ⊕ --- ⊕ h (5, j) × S5
Das j-te Element ej der Fehlermatrix e wird erreicht, indem im Modul 2 eine Multiplikation mit den Elementen der Syndrom-Matrix S durchgeführt wird, die mit den Elementen multipliziert werden sollten, die 1 von den Elementen h (0, 1)-h (5, j) in der j-ten Spalte der Hamming-Matrix H sind, sowie die umgekehrten Logikwerte der Elemente der Syndrom-Matrix S, die mit den Elementen multipliziert werden sollten, die 0 in der j-ten Spalte sind.
Dann können die Elemente D0-D31 des korrekten Fehlerkorrekturcodes DP durch den folgenden Ausdruck erreicht werden, entsprechend der Daten d0-d31 und P0-P5 jedes Bits des Fehlerkorrekturcodes sowie der Elemente e0-e31 des berechneten Fehlervektors e:
Die berechneten Elemente D0-D31 sind jeweils die erwarteten Werte der jeweiligen Datenbits, die zu einer externen Quelle ausgelesen werden sollen.
Somit erkennt und korrigiert die ECC 9 in Fig. 10 einen Bitfehler, der in den 32-Bitdaten auftritt, die nach außen ausgelesen werden sollen. Der Schaltungsaufbau der ECC 9 wird unter Bezug auf die Fig. 11 erklärt. In der Logikschaltung entsprechen das Hochpegelpotential und das Niedrigpegelpotential den Logikwerten 1 bzw. 0.
Ein Syndrom-Signalgenerator 90 erzeugt 6 Bit Syndromsignale S0-S5 und entsprechende invertierte Signale, die den oben erwähnten Syndromsignalen entsprechen, indem er eine Operation entsprechend einer vorbestimmten Hamming-Matrix H auf die 32-Datenbits d0-d31 und 6 Paritätsdatenbits P0-P5 ausübt, die aus dem regulären Speicherzellenfeld 1 bzw. dem Paritätsspeicherzellenfeld 2 in Fig. 10 ausgelesen wurden.
Insbesondere wird ein beliebiges Syndromsignal Sj erzeugt, indem eine Operation wie die in (8) beschriebene mit einer Logikschaltung in der Syndrom-Signalgeneratorschaltung 90 durchgeführt wird.
Ein Korrektursignalgenerator 91 erzeugt 32 Bit eines Korrektursignals e0-e31 entsprechend der Elemente e0-e31 der oben beschriebenen Fehlermatrix e, indem der Betrieb entsprechend der vorbestimmten Hamming-Matrix für alle 12 Signalbits der 6 Bits des Syndromsignals S0-S5 und der betreffenden vom Syndrom-Signalgenerator 90 erzeugten invertierten Signale durchgeführt wird.
Insbesondere wird ein beliebiges Korrektursignal ej erreicht, indem eine Operation wie die in (9) ausgedrückte mit einer Logikschaltung im Korrektursignalgenerator 91 durchgeführt wird.
Die Fig. 12 zeigt ein Beispiel an einer herkömmlichen Hamming-Matrix, die zum Erkennen und Korrigieren eines 1-Bitfehlers in 32-Bitdaten benutzt wird. Der Syndrom-Signalgenerator 90 und der Korrektursignalgenerator 91 werden entsprechend der Hamming-Matrix H eingerichtet.
In der Operation zum Erhalten der Syndromsignale entsprechen die jeweiligen Datenbits im Fehlerkorrekturcode den jeweiligen Elementen jeder Zeile der Hamming-Matrix H (siehe auf Formel (8)).
In der Operation zum Erhalten der Korrektursignale entspricht jedes der Korrektursignale der jeweiligen Spalte der Hamming-Matrix H, und die jeweiligen Datenbits des Syndromsignals entsprechen den jeweiligen Elementen in jeder Spalte der Hamming-Matrix H (siehe auch Gleichung (9)).
Bei der Verwendung der Hamming-Matrix H entsprechend Fig. 12 wird das Syndromsignal S0 beispielsweise berechnet, indem modulo 2 die 16 Datenbits d10-d17, d25-d31 sowie P0 addiert werden, die den 16 Elementen in den Elementen der ersten Zeile der Hamming-Matrix H entsprechen, die 1 sind. Entsprechend wird das Syndromsignal S1 erhalten, indem modulo 2 alle die 16 Daten d11-d25 und P1 addiert werden, die den 16 Elementen auf 1 unter den Elementen der zweiten Zeile der Hamming-Matrix H entsprechen. Auf dieselbe Weise wird jedes der Syndromsignale S2-S5 erhalten, indem Modulo 2 alle 16 Daten addiert werden, die den Elementen auf 1 in der jeweiligen 3. bis 6. Reihe der Hamming-Matrix H entsprechen.
Beispielsweise wird das Syndromsignal S0 durch die folgende Operation erhalten:
S0=d10 ⊕ d11 ⊕ . . . ⊕ d17 ⊕ d25 ⊕ d26 ⊕ . . . d31 ⊕ P0
Die modulo 2 Addition ist der EXKLUSIV-ODER (EX OR) Logikoperation äquivalent. Daher wird das Syndromsignal S0 erhalten, indem die EXKLUSIV-ODER-Funktion auf alle sechszehn Daten d10-d17, d25-d31 und P0 angewendet wird.
Entsprechend wird jedes der anderen fünf Syndromsignale S1-S5 erhalten, indem das EXKLUSIV-ODER für die 16 den Elementen auf 1 entsprechenden Daten in den jeweiligen Zeilen der Hamming-Matrix H angewendet wird.
Der Syndrom-Signalgenerator 90 umfaßt eine Mehrzahl von EX-OR Gattern. Die Fig. 13 ist ein Schaltbild mit dem Aufbau des Syndrom-Signalgenerators 90, wobei die Hamming-Matrix H aus Fig. 12 benutzt wird.
Wie in Fig. 13 gezeigt, umfaßt der Syndrom-Signalgenerator 90 sechs Schaltungsblöcke 90-1 bis 90-6, die die Syndromsignale S0-S5 erzeugen.
Jeder der Schaltungsblöcke 90-1 bis 90-6 umfaßt acht 2-Eingangs EX-OR Gatter 900a, vier 2-Eingangs EX-OR Gatter 900b zum Empfangen als Eingangssignal die Ausgänge der zwei EX-OR Gatter der acht EX-OR Gatter 900a, zwei 2-Eingangs EX-OR Gatter 900c zum Empfangen als Eingangssignal die Ausgänge der zwei EX-OR Gatter der vier EX-OR Gatter 900b, sowie ein 2-Eingangs EX-OR Gatter 900d zum Empfangen als Eingangssignal die Ausgänge der zwei EX-OR Gatter 900c.
An jeden der Schaltungsblöcke 90-1 bis 90-6 werden 16 der Datenbits aus den 38 Datenbits d0-d31 sowie P0-P5 angelegt, die zum Kalkulieren der Syndromsignale S0-S5 benötigt werden.
Die Tabelle in Fig. 14 zeigt die 16 Eingabesignale I1-I16 an jeden der Schaltungsblöcke 90-1 bis 90-6.
Aus Fig. 14 ist zu sehen, daß die Eingabesignale I1-I16 zu den jeweiligen Schaltungsblöcken 90-1, 90-2, . . ., 90-6 diejenigen 16 Daten sind, die den Elementen der ersten Zeile, der zweiten Zeile, . . ., der sechsten Zeile der Hamming-Matrix H entsprechen, die jeweils 1 sind. Daher sind die Ausgabesignale von jedem der EX-OR Gatter 900d in den jeweiligen Schaltungsblöcken 90-1 bis 90-6 die sechs Syndromsignale S0-S5.
Jeder der Schaltungsblöcke 90-1 bis 90-6 umfaßt ferner einen Inverter 900e zum Invertieren des Ausgangs des EX-OR Gatters 900d. Daher werden invertierte Signale der sechs Syndromsignale S0-S5 von dem Inverter 900e in jeden der jeweiligen Schaltungsblöcke 90-1 bis 90-6 bereitgestellt.
Jedes der Korrektursignale e0-e31 wird erhalten, indem im Modul 2 die Syndromsignale, die den Elementen in der entsprechenden Spalte der Hamming-Matrix H auf 1 entsprechen, mit den invertierten Signalen der Syndromsignale multipliziert werden, die den Elementen auf 0 entsprechen.
In dem Fall, daß die Hamming-Matrix H in Fig. 12 benutzt wird, wird das Korrektursignal e0 beispielsweise erhalten, indem im Modul n, durch Multiplizieren zweier Syndromsignale S4 und S5, die den Elementen auf 1 in den Elementen der ersten Spalte der Hamming-Matrix H entsprechen, mit den vier invertierten Signalen der Syndromsignale S0-S4, die den Elementen auf 0 entsprechen. Das heißt, das Korrektursignal e0 wird durch Durchführen der folgenden Operation berechnet:
e0=|S0 × |S1 × |S2 × |S3 ×S4 × S5,
wobei |S0-|S3 für die invertierten Signale der Syndromsignale S0-S3 stehen.
Die modulo 2 Multiplikation ist dem logischen Produkt bei der Logikoperation äquivalent. Daher wird jedes der 32 Korrektursignale e0-e31 erhalten, indem das Logikprodukt aller 6 Signale des Syndromsignals genommen wird, die den Elementen auf 1 entsprechen, sowie die invertierten Signale der Syndromsignale, die den Elementen auf 0 entsprechen, jeweils der Elemente der entsprechenden Spalten der Hamming-Matrix H.
Folglich umfaßt der Korrektursignalgenerator 91 32 Schaltungsblöcke, die eine Operation äquivalent der eines AND Gatters ausführen.
Die Fig. 15 ist ein Schaltbild mit einem Beispiel eines Aufbaus des Korrektursignalgenerators 91, bei dem die Hamming-Matrix aus Fig. 12 eingesetzt wird.
Wie in Fig. 15 gezeigt, umfaßt der Korrektursignalgenerator 91 Schaltungsblöcke 91-1 bis 91-32 zum Erzeugen der Korrektursignale e0-e31.
Jeder der 32 Schaltungsblöcke 91-1 bis 91-32 umfaßt zwei 3-Eingangs-NAND-Gatter 910a sowie ein 2-Eingangs-NOR-Gatter 910b zum Empfangen als Eingangssignale die Ausgänge der zwei NAND-Gatter 910a.
Die Fig. 16 ist eine Tabelle mit sechs Eingangssignalen i1-i6, die jeweils an die Schaltungsblöcke 91-1 bis 91-32 angelegt werden. Wie in Fig. 16 gezeigt, werden das NAND-Gatter 910a des Schaltungsblocks 91-1, das NAND-Gatter 910a des Schaltungsblocks 91-2, . . ., das NAND-Gatter 910a des Schaltungsblocks 91-32 mit den gesamten sechs Signalen des Syndromsignals beaufschlagt, die den Elementen auf 1 entsprechen, sowie den invertierten Signalen des Syndromsignals, die den Elementen auf 0 entsprechen, jeweils in der ersten Spalte der Hamming-Matrix H, den insgesamt sechs Signalen des Syndromsignals, die den Elementen auf 1 entsprechen und den invertierten Signalen des Syndromsignals, die den Elementen auf 0 entsprechen, jeweils in der zweiten Spalte der Hamming-Matrix H, . . ., den insgesamt 6 Signalen des Syndromsignals, die den Elementen auf 1 entsprechen und den invertierten Signalen des Syndromsignals, die den Elementen auf 0 entsprechen, jeweils in der 32. Spalte der Hamming-Matrix H.
In jedem der Schaltungsblöcke 91-1 bis 91-32, die den Korrektursignalgenerator 91 bilden, erreicht das Ausgangspotential des NOR-Gatters 910b hohen Logikpegel nur dann, wenn die Ausgangspotentiale der zwei NAND-Gatter 910a beide auf niedrigem Pegel stehen. Die Ausgabepotentiale der zwei NAND-Gatter 910a erreichen beide den niedrigen Pegel nur dann, wenn die sechs Eingabesignale i1-i6 in diese NAND-Gatter 910a alle auf hohem Pegel stehen. Mit anderen Worten, die mit zwei NAND-Gattern 910a und einem NOR-Gatter 910b implementierte Schaltung führt eine Operation äquivalent der eines NAND-Gatters mit 6 Eingängen durch.
Daher werden die Korrektursignale e0, e1, . . ., e31 von dem NOR-Gatter 910b des Schaltungsblocks 91-1, des Schaltungsblocks 91-2, . . ., bzw. des Schaltungsblocks 91-32 bereitgestellt.
Wie in Fig. 11 gezeigt, führt die Datenkorrekturschaltung 92 die Operation gemäß (10) zum Korrigieren der Signale e0-e31 durch, die vom Korrektursignalgenerator 91 erzeugt wurden, sowie für die 32 Datenbits d0-d31 des regulären Speicherzellenfeldes 1. Die Fig. 17 ist ein Schaltbild, das den Aufbau der Datenkorrekturschaltung 92 zeigt, wobei die Hamming-Matrix aus Fig. 12 gezeigt ist.
Wie in Fig. 17 gezeigt, umfaßt die Datenkorrekturschaltung 92 32 2-Eingangs EX-OR Gatter 920.
An die EX-OR Gatter 92-1, 92-2, . . ., 92-32 werden das Korrektursignal e0 und das Datensignal d0, das Korrektursignal e1 und das Datensignal d1, . . ., das Korrektursignal e31 und das Datensignal d31 angelegt. Daher zeigen die Ausgabeanschlüsse der 32 EX-OR Gatter 92-1, 92-2, . . ., 92-32 das Exklusiv-ODER-Signal der Signale e0 und d0, das Exklusiv-ODER-Signal der Signale e1 und d1, . . ., und das Exklusiv-ODER-Signal der Signale e31 und d31.
Die 32 Datensignale d0-d31 erscheinen auf den Ausgabeanschlüssen der jeweiligen EX-OR Gatter 92-1 bis 92-32 invertiert, wenn sie von den entsprechenden Erwartungswerten sich unterscheiden, und nicht invertiert, wenn sie den entsprechenden Erwartungswerten entsprechen. Daher werden 32 Bitdatensignale d0-d31 mit einem Fehler, sofern dieser besteht, korrigiert, und werden als korrekte Daten D0-D31 aus den 32 EX-OR Gattern 92-1 bis 92-32 ausgegeben.
Wie erneut in Fig. 11 gezeigt, wird ein Datenselektor 93 durch ein Auswahlsignal SE gesteuert, zum Auswählen und Anlegen der 16 Datenbitsignale D0-D15 oder der anderen 16 Datenbitsignale D16-D31 der Datenkorrekturschaltung 92.
Die Fig. 18 ist ein Schaltbild mit einem Aufbau des Datenselektors 93.
Wie in Fig. 18 gezeigt, umfaßt der Datenselektor 93 16 Schaltungsblöcke 93-1 bis 93-16. Jeder der Schaltungsblöcke 93-1 bis 93-16 umfaßt zwei P-Kanal-MOS-Transistoren 930a und 930c sowie zwei N-Kanal-MOS-Transistoren 930b und 930d. Die Transistoren 930a und 930b sind parallel verbunden. Genauso sind die Transistoren 930c und 930d parallel verbunden.
Die Transistoren 930a und 930b des Schaltungsblocks 93-1, des Schaltungsblocks 93-2, . . ., des Schaltungsblocks 93-16 sind als Transfer-Gatter der korrekten Datensignale D0, D1, . . ., D15 vorgesehen.
Entsprechend sind die Transistoren 930c und 930d des Schaltungsblocks 93-1, des Schaltungsblocks 93-2, . . ., und des Schaltungsblocks 93-16 als Transfer-Gatter der korrigierten Datensignale D16, D17, . . ., D31 vorgesehen.
Das Auswahlsignal SE und dessen invertiertes Signal werden an die Gatter der Transistoren 930b und 930c, bzw. an die Gatter der Transistoren 930a und 930d angelegt.
Ein Hochpegelpotential des Auswahlsignals SE bewirkt, daß die Transistoren 930a und 930b einen leitenden Zustand erreichen und die Transistoren 930c bzw. 930d in einen nichtleitenden Zustand versetzt werden. Daher werden die niederwertigen 16 Bits des Datensignals D0-D15 der korrigierten 32 Bits des Datensignals D0-D31 von den 16 Schaltungsblöcken 93-1 bis 93-16 bereitgestellt. Umgekehrt bewirkt das Niedrigpegelpotential des Auswahlsignals SE, daß die Transistoren 930c und 930d leitenden Zustand erreichen, während die Transistoren 930a und 930b in den nichtleitenden Zustand versetzt werden. Daher werden die höherwertigen 16 Bits der Datensignale D16-D31 von den 16 Schaltungsblöcken 93-1 bis 93-16 bereitgestellt.
Die Tabelle in Fig. 19 zeigt den Zusammenhang zwischen logischen Potentialpegeln des Auswahlsignals SE und dessen invertiertem Signal sowie den Ausgabesignalen O₀-O₁₅ des Datenselektors 93.
Durch Schalten des Logikpegels des Auswahlsignals SE werden die Datensignale der 16 niederwertigen Bits oder die Datensignale der 16 höherwertigen Bits wahlweise bereitgestellt. Das Auswahlsignal SE und dessen invertiertes Signal werden von der Steuerschaltung 6 in Fig. 10 beispielsweise erzeugt.
Wie oben beschrieben, umfaßt eine herkömmliche ECC einen Syndrom-Signalgenerator, der aus einer Mehrzahl von Schaltungsblöcken gebildet ist, deren Anzahl identisch mit der Anzahl von Paritätsdaten ist, die gleichzeitig aus einem Speicherzellenfeld ausgelesen werden, sowie einen Korrektursignalgenerator und eine Datenkorrekturschaltung, die jeweils aus einer Mehrzahl von Blöcken gebildet sind, deren Anzahl identisch mit der Anzahl von Daten ohne ausgelesene Paritätsdaten ist.
Jeder der Mehrzahl von Schaltungsblöcken, die den Syndrom-Signalgenerator bilden, benötigt viele Eingangssignalleitungen und umfaßt viele Logikgatterschaltungen. Die Schaltungskomplexität des Syndrom-Signalgenerators ist daher hoch.
Jeder der Mehrzahl von Schaltungsblöcken, die den Korrektursignalgenerator und die Datenkorrekturschaltung bilden, benötigen nicht so viele Eingangssignalleitungen wie jede der Mehrzahl von Schaltungsblöcken, die den Syndrom-Signalgenerator bilden. Allerdings ist die Anzahl von Schaltungsblöcken, die den Korrektursignalgenerator bilden, und die Anzahl von Schaltungsblöcken, die die Datenkorrekturschaltung bilden, deutlich größer als die Anzahl zum Bilden des Syndrom-Signalgenerators. Daher ist Schaltungskomplexität des Korrektursignalgenerators und der Datenkorrekturschaltung hoch.
Folglich war die durch eine ECC auf einem Halbleitersubstrat belegte Fläche bei einem herkömmlichen Halbleiterspeicher groß, was zu dem Problem führte, daß die für das Speicherzellenfeld freibleibende Fläche auf dem Halbleitersubstrat vermindert ist.
Im Fall des Masken-ROMs aus Fig. 10 umfaßt beispielsweise die ECC 9 sechs Schaltungsblöcke 90-1 bis 90-6, die jeweils 16 Eingangssignalleitungen und 15 EX-OR Gatter (siehe Fig. 13) benötigen; 32 Schaltungsblöcke 91-1 bis 91-32, die jeweils 6 Eingangssignalleitungen benötigen, 2 NAND-Gatter und 1 NOR-Gatter (siehe Fig. 15); sowie 32 EX-OR Gatter 92-1 bis 92-32, die jeweils 2 Eingangssignalleitungen benötigen.
Daher weist eine herkömmliche Halbleiterspeichervorrichtung mit Fehlerkorrekturfunktion das Problem auf, daß ein Erhöhen der Speicherkapazität ohne Vergrößern der Chip-Größe schwierig war.
Aus der US 4.780.875 ist eine Halbleiterspeichervorrichtung bekannt mit einem Speicherzellenfeld mit einer Mehrzahl von darin gespeicherten Daten und einer Mehrzahl von darin gespeicherten Paritätsdaten, einer Vorrichtung zum Auslesen der Mehrzahl von Daten und der Mehrzahl von Paritätsdaten aus dem Speicherzellenfeld, einer Fehlerkorrekturvorrichtung zum Korrigieren eines Fehlers in den Daten auf der Basis einer Paritätsprüfmatrix, wobei die Daten in Gruppen eingeteilt sind, einem Syndromgenerator zum Erzeugen einer Mehrzahl von Syndromsignalen auf der Basis der Datengruppen und der Mehrzahl von Paritätsdaten, die aus dem Speicherzellenfeld durch die Lesevorrichtung ausgelesen werden, einer Gruppenauswahlvorrichtung zum sequentiellen Auswählen der Daten, einer Korrektursignalerzeugungsvorrichtung zum sequentiellen Erzeugen eines Korrektursignales für die Datengruppen und einer Datenkorrekturvorrichtung zum Korrigieren eines Fehlers in der von der Gruppenauswahleinrichtung ausgewählten Datengruppe, entsprechend eines von der Korrektursignalerzeugungsvorrichtung erzeugten Korrektursignales. Die Aufteilung eines 32-Bit Datenworts erfolgt in vier Gruppen zu je 8-Bit Daten, wobei 7 Paritätsdaten zur Durchführung einer Fehlerkorrektur benötigt werden. Dadurch ist die zur Speicherung der Paritätsdaten erforderliche Speicherkapazität erhöht, verglichen mit einer Aufteilung der Daten in nur eine oder zwei Gruppen, bei welcher 6 Paritätsdaten benötigt werden.
Aus IBM TDB, November 1995, Seite 2561 sind Speicher mit Fehlererkennung und Korrektur (ECC) bekannt, bei denen die Aufteilung von 32-Bit Speicherdatenworten auf zwei 16-Bit Worte mit sechs ECC-Bits erfolgt.
Aufgabe der vorliegenden Erfindung ist es, eine Halbleiterspeichervorrichtung zu schaffen, die eine Fehlerkorrekturfunktion für aus einem Speicherzellenfeld ausgelesene Daten aufweist, bei der die Größe einer ECC-Schaltung vermindert und die Anzahl von Logikgattern und Signalleitungen verringert ist.
Die Aufgabe wird durch die Halbleiterspeichervorrichtung nach dem Patentanspruch 1 sowie das Verfahren nach dem Patentanspruch 16 gelöst.
Vorteilhafte Weiterbildungen sind in den Unteransprüchen beschrieben.
Um die Aufgabe zu lösen, wird die Mehrzahl von an eine externe Quelle auszulesenden Daten in der Fehlerkorrekturvorrichtung gleichmäßig in eine erste und eine zweite Datengruppe, die eine erste und eine zweite Hälfte der Mehrzahl von Daten bildet, geteilt, wobei die Datenkorrekturschaltung umfaßt: eine Syndrom-Signalgeneratorschaltung zum Erzeugen einer Mehrzahl von Syndromsignalen entsprechend der ersten und zweiten aus dem Speicherzellenfeld ausgelesenen Datengruppe, eine Gruppenauswahlschaltung zum sequentiellen Auswählen der ersten und der zweiten Datengruppe, die aus dem Speicherzellenfeld ausgelesen werden, eine Korrektursignalerzeugungsschaltung zum sequentiellen Erzeugen von Korrektursignalen für die erste Datengruppe und die zweite Datengruppe synchron mit der Auswahloperation der Gruppenauswahlschaltung, als Reaktion auf das von der Syndrom-Signalgeneratorschaltung erzeugte Syndromsignal, sowie eine Schaltung zum Korrigieren eines Fehlers in den von der Gruppenselektorschaltung ausgewählten Daten, als Reaktion auf die von der Korrektursignalerzeugungsschaltung erzeugten Korrektursignale.
Wie oben beschrieben sind die Halbleiterspeichervorrichtung und das Datenkorrekturverfahren so gestaltet, daß die Korrektursignalgeneratorschaltung zum Erzeugen von Korrektursignalen selektiv Korrektursignale für die Hälfte der Mehrzahl von Daten ausgenommen der Paritätsdaten erzeugt, und Korrektursignale für die verbleibende Hälfte der Mehrzahl von Daten erzeugt, wobei die Datenkorrekturschaltung zum Korrigieren eines Fehlers entspre­ chend der Korrektursignale selektiv eine Fehlerkorrektur für die Hälfte der Mehrzahl von aus dem Speicherzellenfeld ausgelesenen Daten (ausschließlich der Paritätsdaten) durchführt, und dann für die verbleibende Hälfte der Mehrzahl von Daten. Hierdurch kann eine Korrektursignalerzeugungsschaltung realisiert werden, deren Schaltungsaufwand (Komplexität) im wesentlichen nur dem einer Schaltung entspricht, die Korrektursignale für die Hälfte von einer an einer externen Quelle auszulesenden Daten ent­ spricht, und die Datenkorrekturschaltung kann durch einen Schal­ tungsaufbau realisiert werden, dessen Komplexität im wesentli­ chen gleich dem eines Schaltungsaufbaus für die Hälfte von aus­ zulesenden Daten ist.
Entsprechend der beschriebenen Hamming-Matrix wird die Ver­ minderung der Schaltungskomplexität der ECC erleichtert, da der Aufbau insbesondere der Signalkorrekturerzeugungsschaltung ver­ einfacht wird. Daher wird die durch eine ECC belegte Fläche in einer Halbleiterspeichervorrichtung drastisch vermindert, da die Fehlerkorrektur mit einer Leistung durchgeführt werden kann, die der einer herkömmlichen ECC mit erleichterter Schaltungskomple­ xität entspricht.
Ausführungsbeispiele sind anhand der Figuren beschrieben.
Von den Figuren zeigen:
Fig. 1 ein Blockdiagramm mit dem schematischen Aufbau eines Masken-ROM entsprechend einer Ausführungs­ form;
Fig. 2 ein Blockdiagramm mit einem Aufbau des ECC nach Fig. 1;
Fig. 3 ein Diagramm mit einem Beispiel einer Hamming- Matrix, die für die Fehlerkorrektur benutzt wird;
Fig. 4 ein Schaltbild mit dem Aufbau eines Syndrom- Signalgenerators nach Fig. 2;
Fig. 5 ein Diagramm mit einer Tabelle von Eingabesignalen I1-I16 in jeden der Schaltungsblöcke 110-1 bis 110-6 nach Fig. 4;
Fig. 6 ein Schaltbild mit dem Aufbau des Korrektur­ signalgenerators gemäß Fig. 2;
Fig. 7 ein Diagramm mit einer Tabelle von Eingabesignalen an jeden der Schaltungsblöcke 111-1 bis 111-16;
Fig. 8 ein Schaltbild mit dem Aufbau des Datenselektors aus Fig. 2;
Fig. 9 ein Schaltbild mit dem Aufbau der Datenkorrektur­ schaltung gemäß Fig. 2;
Fig. 10 ein Blockdiagramm zum schematischen Verdeutlichen der Gesamtstruktur eines konventionellen Masken- ROM mit Fehlerkorrekturfunktion;
Fig. 11 ein Blockschaltbild zum schematischen Verdeutli­ chen des Aufbaus der ECC nach Fig. 10;
Fig. 12 ein Diagramm mit einem Beispiel einer Hamming- Matrix, die für die Fehlerkorrektur in der her­ kömmlichen ECC verwendet wird;
Fig. 13 ein Schaltbild mit dem Aufbau der Syndrom-Signal­ generatorschaltung aus Fig. 11;
Fig. 14 ein Diagramm mit der Tabelle von Eingabesignalen an jeden der Schaltungsblöcke 90-1-90-6 aus Fig. 13;
Fig. 15 ein Schaltbild mit dem Aufbau des Korrektur­ signalgenerators aus Fig. 11;
Fig. 16 ein Diagramm mit einer Tabelle von Eingabesignalen an jedem der Schaltungsblöcke 91-1 bis 91-32 aus Fig. 15;
Fig. 17 ein Schaltbild mit dem Aufbau der Datenkorrektur­ schaltung aus Fig. 11;
Fig. 18 ein Schaltbild mit dem Aufbau des Datenselektors aus Fig. 11;
Fig. 19 ein Diagramm mit einer Tabelle des Zusammenhangs zwischen den Logikpegeln des Auswahlsignals und den Ausgabedaten der ECC;
Fig. 20 ein Diagramm mit einer Wahrheitstabelle einer modulo 2 Addition;
Fig. 21 eine Wahrheitstabelle einer modulo 2 Multiplika­ tion und
Fig. 22 ein Diagramm mit einer typischen Hamming-Matrix.
Die Fig. 1 ist ein Blockschaltbild zum schematischen Verdeutli­ chen der Gesamtstruktur eines Masken-ROM entsprechend einer Aus­ führungsform.
Der Aufbau der in dem Masken-ROM enthaltenen Schaltungen ent­ spricht dem des herkömmlichen Masken-ROM aus Fig. 10, mit Aus­ nahme des Aufbaus einer ECC 11.
Die Figur ist ein Blockschaltbild zum schematischen Verdeutli­ chen des Aufbaus der ECC 11 aus Fig. 1. Wie in Fig. 2 gezeigt, liegt ein wichtiger Unterschied in der ECC aus der vorliegenden Ausführungsform gegenüber einer herkömmlichen Schaltung darin, daß ein Datenselektor 113 auf einer Stufe vorgesehen ist, die einer Datenkorrekturschaltung 112 vorhergeht, und daß ein Kor­ rektursignalgenerator 111 16 Datenbits e0-e15 oder e16-e31 be­ reitstellt.
Dieser Aufbau wird umgesetzt, indem eine Serie von Operationen für die Fehlerkorrektur in der ECC 11 durchgeführt wird, ent­ sprechend einer Hamming-Matrix H, die beispielsweise in Fig. 3 gezeigt ist. Die Fig. 3 zeigt ein Beispiel einer Hamming- Matrix, die den Aufbau nach Fig. 2 ermöglicht.
Wie in Fig. 3 gezeigt, weist die Hamming-Matrix H eine Regel­ mäßigkeit auf, die in einer Hamming-Matrix für eine herkömmliche ECC nicht zu sehen ist. In der Hamming-Matrix nach Fig. 3, in der 6 Elemente in jeder Spalte der 32 Spalten vorgesehen sind, besitzen nur zwei der 6 Elemente in jeder Spalte Werte, die sich von denen der entsprechenden 6 Elemente unterscheiden, in der Spalte, die 16 Spalten vorherkommt.
Beispielsweise, beim Vergleich der 6 Elemente der ersten Spalte und der 6 Elemente der siebzehnten Spalte, sind die Werte der Elemente auf der ersten Zeile und der zweiten Spalte 0 in der ersten Spalte, während diese 1 in den entsprechenden Zeilen der siebzehnten Spalte sind. Die Elemente in der 3. bis 6. Reihe der ersten Spalte sind mit denen der 17. Spalte identisch.
Entsprechend sind beim Vergleichen der 4. Spalte und der 20. Spalte die Werte der Elemente der zweiten Zeile und der sechsten Zeile 0 in der 4. Spalte, während sie 1 in der 20. Spalte sind. Die Werte der Elemente in der ersten Zeile und in der 3. bis 5. Zeile der 4. Spalte entsprechen denen in der 20. Spalte.
Der Fehlerkorrekturvorgang in der ECC bei der vorliegenden Aus­ führungsform ist mit der für eine herkömmliche ECC identisch. Der Syndrom-Signalgenerator 110 nach Fig. 2 erzeugt die 6 Syn­ dromsignale S0, S1, . . ., S5, indem die EXKLUSIV-ODER-Funktion auf die Elemente ausgeübt wird, die den Wert 1 besitzen, in der ersten Zeile, in der zweiten Zeile, . . ., in der 6. Zeile der Hamming-Matrix H, aus den 32 Datenbits d0-d31 und den 6 Pari­ tätsdaten P0-P5.
Fig. 4 ist ein Schaltbild mit dem Aufbau des Syndrom-Signal­ generators 110. Wie in Fig. 4 gezeigt, umfaßt der Syndrom-Signal­ generator 110 sechs Schaltungsblöcke 110-1 bis 110-6 zum Erzeu­ gen von sechs Syndromsignalen S0-S5.
Jeder der 6 Schaltungsblöcke 110-1 bis 110-6 weist eine Struktur auf, die identisch mit der der 6 Schaltungsblöcke 90-1 bis 90-6 ist, die den Syndrom-Signalgenerator der herkömmlichen ECC aus Fig. 13 bilden, und erzeugen ebenfalls invertierte Signale der Syndromsignale S0-S5.
Es sollte erwähnt werden, daß die 16 Signale I1-I16, die in je­ dem der Schaltungsblöcke 110-1 bis 110-6 vorgesehen sind, sich von denen aus Fig. 13 unterscheiden, da die Hamming-Matrix (Fig. 3) in der vorliegenden Ausführungsform sich von der (Fig. 12) in eine herkömmliche ECC unterscheidet.
Beispielsweise wird das Syndromsignal S0 erhalten, indem EXKLU­ SIV ODER der 16 Daten d10-d12, d15-d18, d21-d24, d26-d28, d31, und P0 gebildet wird, entsprechend der 16 Elemente, die in der ersten Zeile der Hamming-Matrix H (Fig. 3) 1 sind. Im folgenden wird der Ausdruck zum Berechnen des Syndromsignals S0 gezeigt:
S0 = d10 ⊕ d11 ⊕ d12 ⊕ d15 ⊕ d16 ⊕ d17 ⊕ d18 ⊕ d21 ⊕ d22 ⊕ d23 ⊕ d24 ⊕ d26 ⊕ d27 ⊕ d28 ⊕ d31 ⊕ P0
Die Fig. 5 ist ein Diagramm mit einer Tabelle der Eingabe­ signale I1-I16 in jeden der Schaltungsblöcke 110-1 bis 110-6 aus Fig. 4.
Wie in Fig. 2 gezeigt, wird der Korrektursignalgenerator 111 durch ein Signal gesteuert, das identisch mit dem Auswahlsignal SE ist, zum Steuern des Datenselektors 113 zum Erzeugen entwe­ der der Signale e0-e15 der 16 niederwertigen Bits, oder der Signale e16-e31 der 16 höherwertigen Bits, aus den 32 Bits des Korrektursignals e0-e31, entsprechend den Syndromsignalen S0-S5 und dessen invertierten Signalen.
Die Fig. 6 ist ein Schaltbild mit dem Aufbau eines Korrektur­ signalgenerators 111.
Wie in Fig. 6 gezeigt, umfaßt der Korrektursignalgenerator 111 16 Schaltungsblöcke 111-1 bis 111-16, was eine geringere Zahl von Schaltungsblöcken verglichen mit der eines herkömmlichen Korrektursignalgenerators (Fig. 15) ist.
Jeder der Schaltungsblöcke 111-1 bis 111-16 unterscheidet sich von einem herkömmlichen Korrektursignalgenerator dadurch, daß jeder Block 4P-Kanal-MOS-Transistoren 110c, 110e, 110g, 110i, sowie 4N-Kanal-MOS-Transistoren 110d, 110f, 110h, 110j umfaßt, zusätzlich zu zwei 3-Eingangs NAND-Gattern 110a und einem 2-Ein­ gangs NOR-Gatter 110b. Das Auswahlsignal SE und dessen inver­ tiertes Signal werden an die Gatter der Transistoren 110d, 110e, 110h und 110i bzw. an die Gatter der Transistoren 110c, 110f, 110g sowie 110j angelegt.
Die 32 Korrektursignale e0, e1, . . . , e31 werden erhalten, indem das Logikprodukt von insgesamt 6 Syndromsignalen, die den Ele­ menten auf 1 in der ersten Spalte entspricht, und die invertier­ ten Signale der Syndromsignale, die den Werten 0 in der ersten Spalte der Hamming-Matrix H entsprechen, der Syndromsignale ent­ sprechend der Elemente, die in der zweiten Spalte auf 1 stehen und die invertierten Signale der Syndromsignale, die den Elemen­ ten in der zweiten Spalte auf der Hamming-Matrix H auf 0 ent­ sprechen, . . ., der Syndromsignale, die den Elementen in der 32. Spalte auf 1 entsprechen und die invertierten Signale der Syn­ dromsignale, die den Elementen in der 32. Spalte der Hamming- Matrix H auf 0 entsprechen, gebildet wird.
Bei der vorliegenden Ausführungsform weist die Hamming-Matrix H die oben beschriebene Regelmäßigkeit auf. Daher entsprechen die Signale, die zum Berechnen des Korrektursignals e16, zum Berech­ nen des Korrektursignals e17, . . ., die Signale zum Berechnen des Korrektursignals e31, der Inversion der Logikwerte von 2 Signa­ len aus den Signalen, die zum Berechnen des Korrektursignals e0 und der restlichen selben Signale benötigt werden, der Inversion von zwei Logikwerten zweier Signale von den Signalen, die zum Berechnen des Korrektursignals e1 benötigt werden, wobei die restlichen Signale identisch bleiben, . . ., der Inversion der Logikwerte von zwei Signalen aller Signale zum Berechnen des Korrektursignals e15, wobei die verbleibenden Signale identisch bleiben.
Beispielsweise wird, wie in Fig. 3 gezeigt, das Korrektursignal e0 erhalten, indem das Logikprodukt von insgesamt 6 Signalen gebildet wird, das heißt zwei Syndromsignalen S4 und S5, die den Elementen auf 1 in der ersten Spalte entsprechen, sowie inver­ tierten Signalen von vier Syndromsignalen S0-S3, die den Elemen­ ten auf 0 in der ersten Spalte der Hamming-Matrix H entsprechen. Das Korrektursignal e16 wird erhalten, indem das Logikprodukt von insgesamt 6 Signalen, das heißt vier Syndromsignalen S0, S1, S4, S5, die den Elementen auf 1 in der 17. Spalte entsprechen, und von invertierten Signalen von zwei Syndromsignalen S2 und S3 gebildet wird, die den Elementen auf 0 in der 17. Spalte ent­ sprechen. Die folgende Gleichung zeigt die Berechnung zum Erhal­ ten der Fehlerkorrektursignale e0 und e16.
e0 = |S0 × |S1 × |S2 × |S3 × S4 × S5
e16 = S0 × S1 × |S2 × |S3 × S4 × S5
Aus der obigen Gleichung geht hervor, daß beispielsweise zum Erhalten des Korrektursignals e16 die zwei invertierten Signale |S0 und |S1, das heißt S0 und S1 benötigt werden, und die ver­ bleibenden vier Syndromsignale zum Erhalten des Korrektursignals e0 benötigt werden.
Es geht daher aus Fig. 6 hervor, daß insgesamt 8 in den Syn­ dromsignalen zum Berechnen der Korrektursignale e0 und e16 ent­ haltene Signale an den Schaltungsblock 111-1 zum Erzeugen der Korrektursignale e0 und e16 angelegt werden.
In dem Schaltungsblock 111-1 sind Transistoren 110c und 110d sowie Transistoren 110g und 110h als Übertragungsgatter für die zwei Signale (die invertierten Signale der Syndromsignale S0 und S1), die nicht in den Syndromsignalen zum Berechnen der Korrek­ tursignale e16 aus den Syndromsignalen für das Korrektursignal e0 enthalten sind. Entsprechend sind Transistoren 110e und 110f sowie Transistoren 110i und 110j als Übertragungsgatter für die zwei Signale S0, S1 vorgesehen, die nicht in den Syndromsignalen zum Berechnen des Korrektursignals e16 der Syndromsignale zum Berechnen des Korrektursignals e0 enthalten sind. Die Ausgänge der Transistoren 110c und 110d sowie die Ausgänge der Transisto­ ren 110e und 110f werden an denselben Eingangsanschluß eines NAND-Gatters 110a angelegt. Die Ausgangssignale der Transistoren 110g und 110h sowie die Ausgangssignale der Transistoren 110i und 110j werden an denselben Eingangsanschluß des anderen NAND- Gatters 110a angelegt.
Ein Hochpegelpotential des Auswahlsignals SE (Selektsignal) be­ wirkt, daß die Transistoren 110c, 110d, 110g sowie 110h leiten­ den Zustand erreichen, während die Transistoren 110e, 110f, 110i sowie 110j in einen nichtleitenden Zustand versetzt werden. Da­ her werden im Schaltungsblock 111-1 sechs für die Berechnung des Korrektursignals e0 notwendige Syndromsignale an das NAND-Gatter 110 angelegt, wodurch der Ausgang des NOR-Gatters 110g das Kor­ rektursignal e0 aufweist.
Andererseits bewirkt ein Niedrigpegelpotential des Auswahl­ signals SE, daß die Transistoren 110e, 110f, 110i und 110j lei­ tenden Zustand erreichen, während die Transistoren 110c, 110d, 110g und 110h in einen nichtleitenden Zustand verbracht werden. Daher sind im Schaltungsblock 111-1 die zum Berechnen des Kor­ rektursignals e16 benötigten 6 Syndromsignale die Eingangssignale für das NAND-Gatter 110a, wodurch das Ausgabesignal des NOR- Gatters 110b das Korrektursignal e16 wird.
An die anderen Schaltungsblöcke 111-2, 111-3, . . ., 111-16 werden alle Syndromsignale angelegt, die zum Berechnen der Korrektur­ signale e1 und e17, der Korrektursignale e2 und e18, . . ., der Kor­ rektursignale e15 und e31 notwendig sind.
Die Tabelle in Fig. 7 zeigt die acht Eingabesignale i1-i6, |i1- |i6 (|i1-|i6 stehen für die invertierten Signale der Signale i1- i6), die an jeden der Schaltungsblöcke 111-1 bis 111-16 angelegt werden.
Jeder der Schaltungsblöcke 111-2 bis 111-16 weisen einen Schal­ tungsaufbau auf, der gleich dem des Schaltungsblocks 111-1 ist.
Im Schaltungsblock 111-k, wobei k eine beliebige ganze Zahl zwi­ schen 1 und 16 ist, sind die Transistoren 110c und 110d sowie die Transistoren 110g und 110h als Transfergatter für die zwei Syndromsignale vorgesehen, die nicht in den Syndromsignalen zum Berechnen des Korrektursignales e (k+15) der Syndromsignale für das Berechnen des Korrektursignals e (k-1) enthalten sind.
Die Transistoren 110e und 110f sowie die Transistoren 110i und 110j sind als Transfergatter für die zwei Signale vorgesehen, die nicht in den Syndromsignalen zum Berechnen des Korrektur­ signals e (k-1) der Syndromsignale zum Berechnen des Korrektur­ signals e (k+15) enthalten sind. Vier Eingangsanschlüsse der sechs Eingangsanschlüsse der zwei NAND-Gatter 110a werden ge­ meinsam mit vier Signalen beaufschlagt, die gemeinsam in den Syndromsignalen zum Berechnen des Korrektursignals e (k-1) und des Korrektursignals e (k+15) enthalten sind. Einer der zwei verbleibenden Eingangsanschlüsse wird gemeinsam mit den Ausgabe­ signalen der Transistoren 110d, 110e und 110f beaufschlagt. Der andere Eingangsanschluß der zwei verbleibenden Anschlüsse wird gemeinsam mit den Ausgabesignalen der Transistoren 110g, 110h, 110i und 110j beaufschlagt.
Daher erzeugen die Schaltungsblöcke 111-2 bis 111-16 die Korrek­ tursignale e1-e15 und die Korrektursignale e16-e31, wenn das Auswahlsignal SE hohen Pegel bzw. niedrigen Pegel erreicht.
Wie in Fig. 2 gezeigt, wird die Datenauswahlschaltung 113 durch das Auswahlsignal SE gesteuert, zum Bereitstellen von Signalen d0-d15, welche die niederwertigen 16 Bits der 32 Bits des Daten­ signals d0-d31 sind, oder von Signalen d16-d31, welche die höher­ wertigen 16 Bits der 32 Bitdatensignale d0-d31 sind, an die Datenkorrekturschaltung 112.
Die Fig. 8 ist ein Schaltbild mit dem Aufbau eines Datenselek­ tors 113. Wie in Fig. 8 gezeigt, umfaßt der Datenselektor 113 16 Schaltungsblöcke 113-1 bis 113-16.
Jeder der Schaltungsblöcke 113-1 bis 113-16 umfaßt zwei P-Kanal- MOS-Transistoren 113a und 113c sowie zwei N-Kanal-MOS-Transisto­ ren 113b und 113d. Das Auswahlsignal SE sowie dessen invertier­ tes Signal werden an die Gates der Transistoren 113b und 113c sowie die Gates der Transistoren 113a und 113d angelegt.
An die Schaltungsblöcke 113-1, 113-2, . . ., 113-16 werden das Datum d0 und das Datum d16, das um 16 Bit höherwertiger als das Datum d0 ist, das Datum d1 und das Datum d17, das um 16 Bit höher­ wertiger als das Datum d1 ist, . . ., das Datum d15 und das Datum d13, das um 16 Bit höherwertiger als das Datum d15 ist, angelegt. In jedem der Schaltungsblöcke 113-1 bis 113-16 sind Transistoren 113a und 113b sowie Transistoren 113c und 113d als Transfergatter für die niederwertigen bzw. höherwertigen der zwei Eingabedaten vorgesehen.
Wenn daher das Auswahlsignal SE hohen Pegel erreicht, bewirkt dies, daß die für die niederwertigen Eingabedaten vorgesehenen Transfergatter 113a und 113b leiten, während das Auswahlsignal SE auf niedrigem Pegel bewirkt, daß die für die höherwertigen Eingabedaten vorgesehenen Transfergatter 113c und 113d leiten, jeweils in den Schaltungsblöcken 113-1 bis 113-16. Als Ergebnis werden Datensignale d0-d15 der 16 niederwertigen Bits sowie Da­ tensignale d16-d31 der 16 höherwertigen Bits von den 16 Schal­ tungsblöcken 113-1 bis 113-16 bereitgestellt, wenn das Auswahl­ signal SE hohen Pegel bzw. niedrigen Pegel erreicht.
Die Datenkorrekturschaltung 112 korrigiert einen Fehler in den 16 Datensignalen des Datenselektors 113, indem sie das EXKLUSIV ODER der betreffenden Datensignale d0-d15 (oder d16-d31) bildet, die vom Datenselektor 113 bereitgestellt werden, mit den 16 Kor­ rektursignalen e0-e15 (oder e16-e31), die vom Korrektursignal­ generator 111 erzeugt werden.
Die Fig. 9 ist ein Schaltbild mit dem Aufbau der Datenkorrek­ turschaltung 112.
Wie in Fig. 9 gezeigt, umfaßt die Datenkorrekturschaltung 112 16 zwei Eingangs EX-OR-Gatter 112-1 bis 112-16. Die EX-OR-Gatter 112-1, 112-2, . . ., 112-16 werden mit Ausgabesignalen d0 (d16) des Schaltungsblocks 113-1 des Datenselektors 113 und dem Aus­ gabesignal des Schaltungsblocks 113-1 des Datenselektors 113 und dem Ausgabesignal e0 (e16) des Schaltungsblocks 111-1 des Kor­ rektursignalgenerators 111, dem Ausgabesignal d1 (d17) des Schaltungsblocks 113-2 des Datenselektors 113 und dem Ausgabe­ signal e1 (e17) des Schaltungsblocks 111-2 des Korrektursignal­ generators 111, . . ., dem Ausgabesignal d15 (d31) des Schaltungs­ blocks 113-16 des Datenselektors 113 und dem Ausgabesignal e15 (e31) des Schaltungsblocks 111-16 des Korrektursignalgenerators 111 versehen.
Die Schaltungsblöcke 113-1 bis 113-16 des Datenselektors 113 und die Schaltungsblöcke 111-1 bis 111-16 des Korrektursignalgenera­ tors 111 stellen Datensignale d0-d15 sowie Korrektursignale e0- e15, und Datensignale d16-d31 sowie Korrektursignale e16-e31 bereit, wenn das Auswahlsignal SE hohen bzw. niedrigen Pegel erreicht.
Wenn daher das Auswahlsignal SE hohen Pegel erreicht, sind die Ausgabesignale der EX-OR Gatter 112-1 bis 112-16 die EXKLUSIV- ODER-Signale der Datensignale d0-d15 der 16 niederwertigen Bits mit den entsprechenden Korrektursignalen e0-e15. Wenn das Daten­ auswahlsignal SE niedrigen Pegel erreicht, sind die Ausgabe­ signale der EX-OR Gatter 112-1 bis 112-16 die EXKLUSIV-ODER- Signale der Datensignale d16-d31 der höherwertigen 16 Bits mit den entsprechenden Korrektursignalen e16-e31.
Dies bedeutet, daß, wenn ein 1-Bit-Datenfehler in den 16 nieder­ wertigen Bits der Datensignale d0-d15 existiert, daß dieser Feh­ ler berichtigt wird. Wenn keiner vorliegt, erscheinen die Daten­ signale d0-d15 direkt an den Ausgabeanschlüssen der EX-OR Gatter 112-1 bis 112-16, wenn das Ausgangssignal SE hohen Pegel er­ reicht. Entsprechend wird ein 1-Bit-Fehler in den Datensignalen d16-d31 der höherwertigen 16 Bits berichtigt. Wenn kein Fehler vorliegt, erscheinen die Datensignale d16-d31 an den Ausgabe­ anschlüssen der EX-OR Gatter 112-1 bis 112-16, wenn das Auswahl­ signal SE niedrigen Pegel erreicht.
Durch Schalten des Logikpegels des Auswahlsignals SE auf her­ kömmliche Weise werden die korrigierten Datensignale d0-d15 der niederwertigen 16 Bits sowie die korrigierten Datensignale d16- d31 der höherwertigen 16 Bits wahlweise von der ECC 11 bereit­ gestellt.
Bei der vorliegenden Ausführungsform werden 32 Daten, deren Feh­ ler zu erkennen und zu korrigieren ist, in zwei Gruppen einge­ teilt, wobei die Fehlerkorrektur für die beiden Gruppen durch dieselbe Schaltung ausgeführt wird. Dies bedeutet, daß die An­ zahl von Schaltungsblöcken (16), die den Korrektursignalgenera­ tor bilden, und die Anzahl von EX-OR Gattern (16), die die Da­ tenkorrekturschaltung bilden, auf die Hälfte reduziert sind, verglichen mit dem herkömmlichen Fall (32). Daher wird die An­ zahl von Komponenten für den Korrektursignalgenerator, die An­ zahl von Eingangssignalleitungen für die Datenkorrekturschaltung und die Anzahl von Elementen für die Datenkorrekturschaltung deutlich reduziert. Als Ergebnis wird die Schaltungskomplexität der ECC 11 deutlich vermindert, verglichen mit dem herkömmlichen Fall.
Eine ECC mit einem Aufbau wie bei der vorliegenden Ausführungs­ form kann nicht nur mit der in Fig. 3 gezeigten Hamming-Matrix H realisiert werden, sondern mit jeder Hamming-Matrix, die eine Regelmäßigkeit (Gleichmäßigkeit) wie die Hamming-Matrix H in Fig. 3 aufweist. Beispielsweise ist eine andere mögliche Ham­ ming-Matrix, die die Realisierung der ECC der vorliegenden Er­ findung erlaubt, eine Matrix, bei der die Reihenfolge der 32 in Fig. 3 gezeigten Spalten ausgetauscht ist. Genauer gesagt, durch Benutzen einer Matrix, die aus 16 Spaltenpaaren der 32 Spalten, die den Daten d0-d31 der 38 Daten d0-d31 und P0-P5, die gleichzeitig zu der ECC aus dem Speicherzellenfeld ausgelesen wurden, wobei jedes Spaltenpaar gerade M (M=konstante Zahl, zwei in der obigen Ausführungsform) voneinander verschiedene Elemente aufweist, eine Gruppe der 16 Datenbits und die andere Gruppe der verbleibenden Datenbits der zu korrigierenden Daten d0-d31 kann durch dieselbe Schaltung realisiert werden. Die An­ zahl von benötigten Transfergattern in den Schaltungsblocks 111-1 bis 111-16, die die Korrektursignalgeneratorschaltung 111 bil­ den, hängt von der Anzahl der Konstanten M ab, was zu 2M Trans­ fergattern führt.
Bezüglich des Layouts der Elemente einer ECC auf einem Halblei­ tersubstrat muß die Hamming-Matrix für die in der Halbleitervor­ richtung benutzte ECC voneinander unabhängige Spalten haben, wobei die Anzahl von Elementen mit 1 in einer Zeile identisch und gleichmäßig für alle Zeilen sein muß.
Obwohl die oben beschriebene Ausführungsform für den Fall be­ schrieben wurde, daß eine ECC einen einzelnen Bitfehler in 32 Datenbits erkennt und korrigiert, kann die Erfindung auf eine ECC für das Erkennen und Korrigieren eines einzelnen Bitfehlers benutzt werden, der in Daten einer Bitlänge unterschiedlich von 32 Bit erzeugt wird.
Obwohl bei der oben erwähnten Ausführungsform die intern ausge­ lesenen Daten in zwei Operationen an eine externe Quelle ausge­ geben werden, kann dieselbe Wirkung erhalten werden, indem die Erfindung auf ein Masken-ROM angewendet wird, bei dem die Anzahl von intern ausgelesenen Daten identisch mit der Anzahl von aus­ gegebenen Daten ist.
Die vorliegende Erfindung ist auf Halbleiterspeichervorrichtun­ gen wie EEPROMs und EPROMs anwendbar, in die Daten nach der Her­ stellung hineingeschrieben wird.

Claims (17)

1. Halbleiterspeichervorrichtung mit
einem Speicherzellenfeld (1, 2) mit einer Mehrzahl von darin gespeicherten Daten (d0-d31) und einer Mehrzahl von darin ge­ speicherten Paritätsdaten (P0-P5),
einer Vorrichtung (8) zum Auslesen der Mehrzahl von Daten und der Mehrzahl von Paritätsdaten aus dem Speicherzellenfeld (1, 2) und
einer Fehlerkorrekturvorrichtung (11) zum Korrigieren eines Feh­ lers in der Mehrzahl von Daten, indem eine Operation entspre­ chend einer vorbestimmten Hamming-Matrix auf die Mehrzahl von Daten (d0-d31) und die Mehrzahl von Paritätsdaten (P0-P5), die von der Lesevorrichtung (8) ausgelesen wurden, angewendet wird,
wobei die Mehrzahl von Daten (d0-d31) in der Fehlerkorrekturvorrichtung (11) gleichmäßig in eine erste Gruppe die eine erste Hälfte der Mehrzahl von Daten bildet und eine zweite Gruppe die eine zweite Hälfte der Mehrzahl von Daten bildet (d0-d15, d16-d31) eingeteilt ist, wobei die Fehlerkorrekturvorrichtung (11)
eine Syndromsignalerzeugervorrichtung (110) aufweist, zum Erzeu­ gen einer Mehrzahl von Syndromsignalen (S0-S5) auf der Basis der ersten und zweiten Datengruppen (d0-d15, d16-d31) und der Mehr­ zahl von Paritätsdaten (P0-P5), die aus dem Speicherzellenfeld (1, 2) durch die Lesevorrichtung (8) ausgelesen wurden,
eine Gruppenauswahlvorrichtung (113) aufweist, zum sequentiellen Auswählen der Daten der ersten Gruppe und der zweiten Gruppe (d0-d15, d16-d31), die aus dem Speicherzellenfeld (1, 2) durch die Lesevorrichtung (8) ausgelesen wurden,
eine Korrektursignalerzeugervorrichtung (111) aufweist, zum sequentiellen Erzeugen eines Korrektursignals (e0-e15) für die erste Daten­ gruppe (d0-d15) und eines Korrektursignals (e16-e31) für die zweite Datengruppe (d16-d31) synchron mit der Auswahloperation der Gruppenauswahlvorrichtung (113), als Reaktion auf das von der Syndrom-Signalerzeugervorrichtung (110) erzeugte Syndrom­ signal,
und eine Datenkorrekturvorrichtung (112) aufweist, zum Korrigieren eines Fehlers in der von der Gruppenauswahlvorrichtung (113) ausge­ wählten Datengruppe, entsprechend eines von der Korrektursignal­ erzeugervorrichtung (111) erzeugten Korrektursignals (e0-e31).
2. Halbleiterspeichervorrichtung nach Anspruch 1, dadurch gekenn­ zeichnet, daß
die Syndromsignalerzeugungsvorrichtung (110) zusätzlich inver­ tierte Signale ( aus der Mehrzahl von Syndromsignalen (S0-S5) erzeugt,
die Korrektursignalerzeugungsvorrichtung (111) eine Signalaus­ wahlvorrichtung (110c-110j) aufweist, zum sequentiellen Auswäh­ len eines Signals, das für die erste Datengruppe (d0-d15) benö­ tigt wird und eines Signals, das für die zweite Datengruppe (d16-d31) benötigt wird, aus der Mehrzahl von Syndromsignalen (S0-S5) und der invertierten Signale (, und
eine Korrektursignalgeneratorvorrichtung (110a, 110b) aufweist, zum Erzeugen des Korrektursignals als Reaktion auf das von der Signalauswahlvorrichtung (110c-110j) ausgewählte Signal.
3. Halbleiterspeichervorrichtung nach Anspruch 2, dadurch gekenn­ zeichnet, daß
die vorbestimmte Hamming-Matrix eine Mehrzahl von Elementen auf­ weist, die in einer Mehrzahl von Zeilen entsprechend der Mehr­ zahl von Syndromsignalen (S0-S5) angeordnet sind,
wobei die Mehrzahl von Elementen in eine Mehrzahl von ersten Spalten entsprechend der ersten Datengruppe (d0-d15), eine Mehr­ zahl von zweiten Spalten entsprechend der zweiten Datengruppe (d16-d31), und eine Mehrzahl von dritten Spalten entsprechend der Mehrzahl von Paritätsdaten (P0-P5) angeordnet sind,
die Mehrzahl von ersten Spalten und die Mehrzahl von zweiten Spalten eine Mehrzahl von Paaren bilden, die jeweils zueinander eine eins-zu-eins-Beziehung aufweisen,
die erste Spalte und die zweite Spalte, die jedes Paar bilden, eine erste Zeile mit Elementen identischen Werts und eine zweite Zeile mit Elementen verschiedener Werte aufweisen, und
die Anzahl von zweiten Zeilen in allen der Mehrzahl von Paaren identisch ist.
4. Halbleiterspeichervorrichtung nach Anspruch 3, dadurch gekennzeich­ net, daß jedes der Elemente das Syndromsignal und dessen inver­ tiertes Signal mit Werten 0 und 1 anzeigt, entsprechend der Zeile, in der es angeordnet ist, und die Daten entsprechend den Zeilen mit Werten 1 bzw. 0 anzeigt, in denen es angeordnet ist.
5. Halbleiterspeichervorrichtung nach Anspruch 4, dadurch ge­ kennzeichnet, daß
die Auswahlvorrichtung (110c-110j) eine Mehrzahl von ersten Si­ gnalschaltvorrichtungen (110c-110j) aufweist, die entsprechend der Mehrzahl von Paaren vorgesehen sind,
jede der Mehrzahl von ersten Signalschaltvorrichtungen (110c-110j) wahlweise das Syndromsignal oder dessen invertiertes Si­ gnal, angezeigt durch das in der zweiten Zeile angeordnete Ele­ ment der Elemente der in dem entsprechenden Paar enthaltenen ersten Spalte, sowie das Syndromsignal oder dessen invertiertes Signal, das durch das Element angezeigt wird, das in der zweiten Zeile der Elemente in der zweiten Spalte im entsprechenden Paar angeordnet ist, angezeigt wird,
wobei die Korrektursignalgeneratorvorrichtung (110a, 110b) eine Mehrzahl von ersten Logikschaltungsvorrichtungen (110a, 110b) aufweist, die entsprechend der Mehrzahl von Paaren vorgesehen sind, und
jede der Mehrzahl von ersten Logikschaltungsvorrichtungen (110a, 110b) ein logisches Produktsignal aus dem Syndromsignal oder dessen invertiertem Signal, wie durch das Element in der ersten Zeile der Elemente der ersten Spalte im entsprechenden Paar an­ gezeigt, sowie dem Ausgangssignal der entsprechenden ersten Signalschaltvorrichtung (110a-110b) erzeugt.
6. Halbleiterspeichervorrichtung nach Anspruch 4, dadurch gekennzeichnet, daß
die Syndromsignalerzeugungsvorrichtung (110) eine Mehrzahl von zweiten Logikschaltungsvorrichtungen (110-1 bis 110-6) aufweist, die entsprechend der Mehrzahl von Zeilen vorgesehen sind, und jede der zweiten Logikschaltungsvorrichtungen (110-1 bis 110-6) ein EXKLUSIV-ODER Signal und ein davon invertiertes Signal er­ zeugt, aus den Daten und den Paritätsdaten, die den Elementen mit 1 in der entsprechenden Zeile entsprechen.
7. Halbleiterspeichervorrichtung nach Anspruch 5, dadurch ge­ kennzeichnet, daß
die Gruppenauswahlvorrichtung (113) eine Mehrzahl von zweiten Signalschaltvorrichtungen (113a-113d) umfaßt, die entsprechend der Mehrzahl von Paaren vorgesehen sind,
wobei jede der Mehrzahl von zweiten Signalschaltvorrichtungen (113a-113d) selektiv die Daten bereitstellt, die der ersten Spalte im entsprechenden Paar entsprechen, und die Daten, die der zweiten Spalte im ersten Paar entsprechen.
8. Halbleiterspeichervorrichtung nach Anspruch 7, dadurch ge­ kennzeichnet, daß
die Mehrzahl von ersten Signalschaltvorrichtungen (110c-110j) und die Mehrzahl von zweiten Signalschaltvorrichtungen (113a-113d) von einer Einheit gesteuert werden.
9. Halbleiterspeichervorrichtung nach Anspruch 8, dadurch ge­ kennzeichnet, daß
die Datenkorrekturvorrichtung (112) eine Mehrzahl von dritten Logikschaltungsvorrichtungen (112-1 bis 112-16) umfaßt, die ent­ sprechend der Mehrzahl von Paaren vorgesehen sind,
wobei jede der Mehrzahl von dritten Logikvorrichtungen (112-1 bis 112-16) ein EXKLUSIV-ODER Signal erzeugt, aus einem Aus­ gangssignal der entsprechenden ersten Logikschaltungsvorrichtung (110a-110b) und einem Ausgabesignal der entsprechenden zweiten Signalschaltvorrichtung (113a-113d).
10. Halbleiterspeichervorrichtung nach Anspruch 5, dadurch ge­ kennzeichnet, daß
jede der Mehrzahl von ersten Logikschaltungsvorrichtungen (110a-110b) ein NAND-Gatter (110a) und ein NOR-Gatter (110b) aufweist.
11. Halbleiterspeichervorrichtung nach Anspruch 6, dadurch ge­ kennzeichnet, daß
jede der Mehrzahl von ersten Signalschaltvorrichtungen (110c-110j) eine erste Schaltvorrichtung (110c, 110d, 110g, 110h) aufweist, zum Übertragen eines Syndromsignals oder eines invertierten Signals zu einer entsprechenden ersten Logikschaltungsvorrichtung, das durch ein Element angezeigt wird, das in jeder der zweiten Zeilen der Elemente der ersten Spalte in dem entsprechenden Paar angeordnet ist, sowie eine zweite Schaltvorrichtung (110e, 110f, 110h, 110i), zum Übertragen eines Syndromsignals oder eines in­ vertierten Signals zu einer ersten Logikschaltungsvorrichtung, das durch ein Element angezeigt wird, das in jeder der zweiten Zeilen der Elemente der in dem entsprechenden Paar enthaltenen zweiten Spalte enthalten ist.
12. Halbleiterspeichervorrichtung nach Anspruch 6, dadurch ge­ kennzeichnet, daß
jede der Mehrzahl von zweiten Logikschaltungsvorrichtungen (110-1, 110-6) eine Mehrzahl von EX-OR Gattern sowie einen Inverter aufweist.
13. Halbleiterspeichervorrichtung nach Anspruch 9, dadurch ge­ kennzeichnet, daß
jede der zweiten Signalschaltvorrichtungen (113a-113d) eine dritte Schaltvorrichtung (113a-113b) aufweist, zum Übertragen zu einer entsprechenden dritten Logikschaltungsvorrichtung die Da­ ten, die einer entsprechenden ersten Spalte entsprechen, sowie eine vierte Schaltvorrichtung (113c, 113d) aufweist, zum Über­ tragen zu einer entsprechenden dritten Logikschaltungsvorrich­ tung Daten, die einer entsprechenden zweiten Spalte entsprechen, wobei die dritte Schaltvorrichtung (113a, 113b) und die vierte Schaltvorrichtung (113c, 113d) abwechselnd aktiviert werden.
14. Halbleiterspeichervorrichtung nach Anspruch 11, dadurch gekennzeichnet, daß
die erste Schaltvorrichtung (110c, 110d, 110g, 110h) eine erste Feldeffekthalbleitervorrichtung aufweist, die einen ersten Lei­ teranschluß aufweist, zum Empfangen eines entsprechenden Syn­ dromsignals oder eines invertierten Signals, einen Steueran­ schluß aufweist, zum Empfangen eines vorbestimmten Steuer­ signals, und einen zweiten Leiteranschluß aufweist, der mit einer entsprechenden ersten Logikschaltung verbunden ist, und die zweite Schaltvorrichtung (110e, 110f, 110i, 110j) ein zwei­ tes Feldeffekthalbleiterelement aufweist, das einen ersten Lei­ teranschluß aufweist, zum Empfangen eines entsprechenden Syn­ dromsignals oder eines invertierten Signals, einen zweiten Lei­ teranschluß aufweist, der mit einer entsprechenden ersten Logik­ schaltung verbunden ist, und einen Steueranschluß aufweist, zum Empfangen eines Steuersignals mit einem Logikpegel, der komple­ mentär zu dem des vorbestimmten Steuersignals ist.
15. Halbleiterspeichervorrichtung nach Anspruch 13, dadurch gekennzeichnet, daß
die dritte Schaltvorrichtung (113a, 113b) ein drittes Feld­ effekthalbleiterelement aufweist, das einen ersten Leiter­ anschluß aufweist, zum Empfangen eines entsprechenden Datums, einen zweiten Leiteranschluß aufweist, der mit einer entsprechen­ den dritten Logikschaltungsvorrichtung verbunden ist, sowie einen Steueranschluß aufweist, zum Empfangen des ersten Steuer­ signals, und
die vierte Schaltvorrichtung (113c, 113d) ein viertes Feld­ effekthalbleiterelement aufweist, das einen ersten Leiter­ anschluß aufweist, zum Empfangen eines entsprechenden Datums, einen zweiten Leiteranschluß aufweist, der mit einer entsprechen­ den dritten Logikschaltungsvorrichtung verbunden ist, sowie einen Steueranschluß aufweist, zum Empfangen des zweiten Steuer­ signals.
16. Verfahren zum Korrigieren eines Datenfehlers in einer Halb­ leiterspeichervorrichtung entsprechend einer vorbestimmten Ham­ ming-Matrix, mit
einem Speicherzellenfeld (1, 2), in dem eine Mehrzahl von Daten (d0-d31) und eine Mehrzahl von Paritätsdaten (P0-P5) entspre­ chend der Mehrzahl von Daten (d0-d31) gespeichert sind,
wobei die Mehrzahl von Daten (d0-d31) gleichmäßig in eine erste Gruppe die eine erste Hälfte der Mehrzahl von Daten bildet und eine zweite Gruppe die eine zweite Hälfte der Mehrzahl von Daten bildet (d0-d15, d16-d31) eingeteilt ist, mit den Schritten:
Auslesen der ersten und zweiten Datengruppen (d0-d15, d16-d31) und der Mehrzahl von Paritätsdaten (P0-P5) aus dem Speicherzel­ lenfeld (1, 2),
Erzeugen einer Mehrzahl von Syndromsignalen (S0, S5) auf der Basis der ausgelesenen ersten und zweiten Datengruppen (d0-d15, d16-d31) und der Mehrzahl der Paritätsdaten (P0-P5),
sequentielles Auswählen der ausgelesenen ersten und zweiten Da­ tengruppen (d0-d15, d16-d31),
sequentielles Erzeugen eines Korrektursignals (e0-e15) für die erste Datengruppe (d0-d15) und eines Korrektursignals (e16-e31) für die zweite Datengruppe (d16-d31) synchron mit der Auswahl als Reaktion auf die erzeugten Syndromsignale (S0-S5), und
Korrigieren eines Fehlers in der ausgewählten Datengruppe als Reaktion auf das erzeugte Korrektursignal (e0-e31).
17. Verfahren nach Anspruch 16, dadurch gekennzeichnet, daß die vorbestimmte Hamming-Matrix eine Mehrzahl von Elementen auf­ weist, die in einer Mehrzahl von Zeilen angeordnet sind, entspre­ chend der Mehrzahl von Syndromsignalen (S0-S5),
wobei die Mehrzahl von Elementen in einer Mehrzahl von ersten Spalten entsprechend der ersten Datengruppe (d0-d15), einer Mehrzahl von zweiten Spalten entsprechend der zweiten Datengruppe (d16-d31) sowie einer Mehrzahl von dritten Spalten entspre­ chend der Mehrzahl von Paritätsdaten (P0-P5) angeordnet ist,
die Mehrzahl von ersten Spalten und die Mehrzahl von zweiten Spalten eine Mehrzahl von Paaren bilden, die jeweils eine eins- zu-eins-Beziehung zueinander haben,
die jedes Paar bildende erste Spalte und zweite Spalte eine erste Zeile aufweisen, die Elemente mit identischen Werten auf­ weist, und eine zweite Spalte aufweisen, die Elemente verschie­ dener Werte aufweist, und
die Anzahl von zweiten Zeilen gleich in allen der Mehrzahl von Paaren ist.
DE4220196A 1991-06-24 1992-06-19 Halbleiterspeichervorrichtung und Verfahren zum Korrigieren eines Datenfehlers in einer Halbleiterspeichervorrichtung entsprechend einer vorbestimmten Hamming-Matrix Expired - Fee Related DE4220196C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3151809A JP2745252B2 (ja) 1991-06-24 1991-06-24 半導体記憶装置

Publications (2)

Publication Number Publication Date
DE4220196A1 DE4220196A1 (de) 1993-01-14
DE4220196C2 true DE4220196C2 (de) 1995-04-06

Family

ID=15526786

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4220196A Expired - Fee Related DE4220196C2 (de) 1991-06-24 1992-06-19 Halbleiterspeichervorrichtung und Verfahren zum Korrigieren eines Datenfehlers in einer Halbleiterspeichervorrichtung entsprechend einer vorbestimmten Hamming-Matrix

Country Status (4)

Country Link
US (1) US5383205A (de)
JP (1) JP2745252B2 (de)
KR (1) KR950010311B1 (de)
DE (1) DE4220196C2 (de)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3106947B2 (ja) * 1996-02-28 2000-11-06 日本電気株式会社 不揮発性半導体記憶装置
US5748547A (en) * 1996-05-24 1998-05-05 Shau; Jeng-Jye High performance semiconductor memory devices having multiple dimension bit lines
US20050036363A1 (en) * 1996-05-24 2005-02-17 Jeng-Jye Shau High performance embedded semiconductor memory devices with multiple dimension first-level bit-lines
US5784391A (en) * 1996-10-08 1998-07-21 International Business Machines Corporation Distributed memory system with ECC and method of operation
JP2001167596A (ja) * 1999-12-09 2001-06-22 Toshiba Corp 不揮発性半導体記憶装置
TW506194B (en) * 2000-03-27 2002-10-11 Sanyo Electric Co Error detection and correction circuit
US6957378B2 (en) * 2001-06-04 2005-10-18 Kabushiki Kaisha Toshiba Semiconductor memory device
US7158058B1 (en) 2002-12-09 2007-01-02 Marvell International Ltd. Method and apparatus for generating a seed set in a data dependent seed selector
US7341765B2 (en) * 2004-01-27 2008-03-11 Battelle Energy Alliance, Llc Metallic coatings on silicon substrates, and methods of forming metallic coatings on silicon substrates
JP4980565B2 (ja) * 2004-12-21 2012-07-18 富士通セミコンダクター株式会社 半導体メモリ
JP4864395B2 (ja) * 2005-09-13 2012-02-01 株式会社東芝 半導体記憶装置
FR2892576A1 (fr) * 2005-10-25 2007-04-27 Univ Paris Sud Procede et dispositif de correction d'erreur dans des circuits electroniques de traitement de donnees.
US7506226B2 (en) * 2006-05-23 2009-03-17 Micron Technology, Inc. System and method for more efficiently using error correction codes to facilitate memory device testing
WO2011036747A1 (ja) * 2009-09-24 2011-03-31 株式会社東芝 演算装置
US20120079349A1 (en) * 2010-09-24 2012-03-29 Arkady Bramnik Method and apparatus for multi-bit upset protection
US8677205B2 (en) 2011-03-10 2014-03-18 Freescale Semiconductor, Inc. Hierarchical error correction for large memories
US8914712B2 (en) 2012-02-27 2014-12-16 Freescale Semiconductor, Inc. Hierarchical error correction
US10642688B2 (en) 2018-04-12 2020-05-05 EMC IP Holding Company LLC System and method for recovery of unrecoverable data with enhanced erasure coding and replication
US10592338B2 (en) * 2018-04-27 2020-03-17 EMC IP Holding Company LLC Scale out data protection with erasure coding

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4649540A (en) * 1984-12-26 1987-03-10 Thomson Components-Mostek Corp. Error-correcting circuit having a reduced syndrome word
JPS6246357A (ja) * 1985-08-23 1987-02-28 Hitachi Vlsi Eng Corp 半導体記憶装置
JPH0194599A (ja) * 1987-10-05 1989-04-13 Mitsubishi Electric Corp 半導体記憶装置
JPH01171199A (ja) * 1987-12-25 1989-07-06 Mitsubishi Electric Corp 半導体メモリ

Also Published As

Publication number Publication date
DE4220196A1 (de) 1993-01-14
KR930001239A (ko) 1993-01-16
KR950010311B1 (ko) 1995-09-14
US5383205A (en) 1995-01-17
JPH052898A (ja) 1993-01-08
JP2745252B2 (ja) 1998-04-28

Similar Documents

Publication Publication Date Title
DE4220196C2 (de) Halbleiterspeichervorrichtung und Verfahren zum Korrigieren eines Datenfehlers in einer Halbleiterspeichervorrichtung entsprechend einer vorbestimmten Hamming-Matrix
DE2260850C2 (de) Schaltungsanordnung zur Erkennung von Einzel- und Mehrfachfehlern und zur korrektur von Einzel- und bestimmten Mehrfachfehlern
DE3638632C2 (de)
DE4242810C2 (de) EEPROM mit einem Fehlerprüf- und Korrektur-Schaltkreis
DE3603926A1 (de) Halbleiter-speicherelement
EP0400179B1 (de) Verfahren und Vorrichtung zum internen Paralleltest von Halbleiterspeichern
DE2425823A1 (de) Einrichtung zur fehlererkennung und fehlerkorrektur
DE2060643B2 (de) Schaltungsanordnung zur Korrektur von Einzelfehlern
DE3209679C2 (de)
DE2456709C2 (de) Schaltungsanordnung zur Fehlererkennung und -korrektur
DE102006005817B4 (de) Fehlererkennungsvorrichtung für einen Adressdecoder und Vorrichtung zur Fehlererkennung für einen Adressdecoder
DE3727586C2 (de) Datenverarbeitungsanordnung bestehend aus vier im wesentlichen gleich aufgebauten Moduln
DE2361512C2 (de) Schaltungsanordnung zur Prüfung eines Additionsresultates
DE102005022107B9 (de) Vorrichtung und Verfahren zum Bestimmen einer Position eines Bitfehlers in einer Bitfolge
DE1937249C3 (de) Selbstprüf ende Fehlererkennungsschaltung
DE102018131613A1 (de) Fehlererkennung mittels Gruppenfehler
DE102004006528A1 (de) Fehlerfassung und Korrektur in einer geschichteten dreidimensionalen Speicherarchitektur
DE3422287C2 (de)
DE102019113970B4 (de) Erkennung von adressfehlern
EP0238978A1 (de) Modulo-2-Addierer zur Verknüpfung von drei Eingangssignalen
EP0294678B1 (de) Sicherungseinrichtung zum Absichern von Daten in Speichereinheiten einer Datenverarbeitungsanlage unter Verwendung eines Fehlererkennungs- und Fehlerkorrekturcodes
EP0046963B1 (de) Schaltungsanordnung zur Erkennung und Korrektur von Fehlerbündeln
DE102022111624B4 (de) Fehlerkorrektur mit schneller Syndromberechnung
EP0012828A1 (de) Schaltungsanordnung zur Korrektur von bytestrukturierten Fehlern
EP0669575B1 (de) Elektronisches Rechenwerk

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)
8339 Ceased/non-payment of the annual fee