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-MatrixInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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
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).
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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.
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).
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.
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.
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)
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)
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 | 半導体メモリ |
-
1991
- 1991-06-24 JP JP3151809A patent/JP2745252B2/ja not_active Expired - Fee Related
-
1992
- 1992-06-05 US US07/894,661 patent/US5383205A/en not_active Expired - Lifetime
- 1992-06-19 DE DE4220196A patent/DE4220196C2/de not_active Expired - Fee Related
- 1992-06-23 KR KR1019920010893A patent/KR950010311B1/ko not_active IP Right Cessation
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 |