JP2745252B2 - 半導体記憶装置 - Google Patents

半導体記憶装置

Info

Publication number
JP2745252B2
JP2745252B2 JP3151809A JP15180991A JP2745252B2 JP 2745252 B2 JP2745252 B2 JP 2745252B2 JP 3151809 A JP3151809 A JP 3151809A JP 15180991 A JP15180991 A JP 15180991A JP 2745252 B2 JP2745252 B2 JP 2745252B2
Authority
JP
Japan
Prior art keywords
signal
data
bit
correction
syndrome
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP3151809A
Other languages
English (en)
Other versions
JPH052898A (ja
Inventor
浩泰 牧原
憲次 香田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP3151809A priority Critical patent/JP2745252B2/ja
Priority to US07/894,661 priority patent/US5383205A/en
Priority to DE4220196A priority patent/DE4220196C2/de
Priority to KR1019920010893A priority patent/KR950010311B1/ko
Publication of JPH052898A publication Critical patent/JPH052898A/ja
Application granted granted Critical
Publication of JP2745252B2 publication Critical patent/JP2745252B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Probability & Statistics with Applications (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

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、半導体記憶装置に関
し、特に、誤り訂正回路を有する半導体記憶装置に関す
る。
【0002】
【従来の技術】半導体記憶装置には、メモリセルアレイ
からのデータ読出時に、読出されたデータに誤りがあっ
た場合それを訂正する誤り訂正回路(ErrorCor
rection Circuit:以下、ECCと略
す)が内蔵されたものがある。
【0003】一般に、任意のビット長のデータに誤りが
あるか否かは、このデータにパリティビットと呼ばれる
1ビットのデータを付加することによって検出できる。
このような検出方法はパリティチェックと呼ばれる。パ
リティチェックによれば、誤りを検出されるべきデータ
とパリティビットのデータのうち、データ“1”のビッ
トの数が偶数(または奇数)となるように、パリティビ
ットのデータが設定される。したがって、データ“1”
のビットの数を調べれば1ビットの誤りの有無を検出す
ることができる。
【0004】しかしながら、パリティチェックによれ
ば、どのビットに誤りがあるかを検出することはできな
いので、誤りを訂正することができない。そこで、誤り
を検出し、かつこれを訂正するためには、誤りを検出さ
れるべきデータに、複数ビットのデータが付加される。
この複数ビットのデータは、誤りの検出および訂正のた
めの冗長ビットであり、チェックビットと呼ばれる。以
下、チェックビットのデータをパリティデータと呼ぶ。
チェックビットが付加されたデータは、誤り訂正コード
と呼ばれる。
【0005】一般に、32ビットのデータに発生した1
ビットの誤りを訂正するには、6ビットのパリティデー
タを付加する必要があり、8ビットのデータに発生した
1ビットの誤りを訂正するには4ビットのパリティデー
タが必要である。
【0006】ECCは、読出されたデータと、これに対
応するパリティデータとに、所定の演算を施すことによ
って、前記読出されたデータの誤りを訂正し、訂正後の
データを最終的な読出データとして出力する。
【0007】このようなECCは、その製造工程中に予
めデータが書込まれ、製造後はデータの読出のみが可能
な、いわゆるマスクROM(Read OnlyMem
ory)に現在多く適用されている。最近では、ECC
は、EEPROM(Erectorically Er
asable and ProgrammableRO
M)などの、製造後にデータを書換えることが可能な記
憶装置にも適用することが提案されている。
【0008】図10は、ECCを有する従来のマスクR
OMの全体構成の一例を示す概略ブロック図である。次
に、図10を参照しながら、ECCを有する従来のマス
クROMの構成について説明する。
【0009】このマスクROMは、外部に読出されるべ
き本来のデータが記憶されたメモリセルアレイ(以下、
正規メモリセルアレイと呼ぶ)1と、メモリセルアレイ
1から読出されたデータの誤りを訂正するためのパリテ
ィデータが記憶されたメモリセルアレイ(以下、パリテ
ィメモリセルアレイと呼ぶ)とを含む。
【0010】メモリセルアレイ1は、32ビットのデー
タに対応して32個のブロックDB0〜DB31を含
む。同様に、パリティメモリセルアレイ2は、6ビット
のパリティデータに対応して、6つのブロックDP0〜
DP5を含む。
【0011】複数のワード線WLがメモリセルアレイ1
およびパリティメモリセルアレイ2に共通に設けられ
る。複数のビット線BLが、38個のブロックDB0〜
DB31,DP0〜DP5の各々に設けられる。
【0012】これらのワード線WLはXデコーダ3に接
続され、これらのビット線BLはYゲート7に接続され
る。
【0013】アドレスバッファ5は、アドレス入力端子
A0〜Anに外部から供給されたアドレス信号を波形整
形および増幅して、Xデコーダ3およびYデコーダ4に
与える。
【0014】Xデコーダ3は、アドレスバッファ5から
のアドレス信号をデコーダして、前記複数のワード線W
Lのうち、このアドレス信号に対応する1本のみを活性
化する。
【0015】Yデコーダ4は、アドレスバッファ5から
のアドレス信号をデコードして、Yゲート7を制御す
る。
【0016】具体的には、Yゲート7は、32個の正規
メモリセルアレイブロックDB0〜DB31に対応して
32個のブロックYGD0〜YGD31と、6つのパリ
ティメモリセルアレイブロックDP0〜DP5に対応す
る6つのブロックYGP0〜YGP5に分割される。Y
ゲート7内の32個のブロックYGD0〜YGD31の
各々は、Yデコーダ4のデコード出力に応答して、対応
する正規メモリセルアレイブロックのビット線BLのう
ちの1本のみをセンスアンプ群8に電気的に接続する。
同様に、Yゲート7内の残りの6つのブロックYGP0
〜YGP5の各々は、Yデコーダ4のデコード出力に応
答して、対応するパリティメモリセルアレイブロックの
ビット線BLのうちの1本のみをセンスアンプ群8に電
気的に接続する。
【0017】センスアンプ群8は、32個のYゲートブ
ロックYGD0〜YGD31と、6つのYゲートブロッ
クYGP0〜YGP5とにそれぞれ対応して、32個の
センスアンプSAD0〜SAD31と、6つのセンスア
ンプSAP0〜SAP5とを含む。これら合計38個の
センスアンプSAD0〜SAD31,SAP0〜SAP
5は、各々、対応するYゲートブロックによって電気的
に接続された1本のビット線BL上の信号を感知・増幅
してECC9に与える。
【0018】正規メモリセルアレイブロックDB0〜D
B31の各々と、パリティメモリセルアレイブロックD
P0〜DP5の各々とは、いずれも、複数の行および複
数の列のマトリックス状に配列されたメモリセルMCを
含む。同一行に配列されたメモリセルMCは同じワード
線WLに接続され、同一行に配列されたメモリセルMC
は同一のビット線BLに接続される。
【0019】一本のワード線WLが活性化されると、こ
のワード線WLに接続される各メモリセルMCの記憶デ
ータに応じた信号が、そのメモリセルMCに接続された
ビット線BLに現われる。したがって、各正規メモリセ
ルアレイブロックDB0〜DB31および各パリティメ
モリセルアレイブロックDP0〜DP5にそれぞれ含ま
れるメモリセル列の数をN列とすると、Yゲート7に
は、同じワード線WLに接続される(38×N)個のメ
モリセルMCの記憶データが同時に与えられる。
【0020】しかし、正規メモリセルアレイ1に対応し
て設けられた各YゲートブロックYGD0〜YGD31
は対応する正規メモリセルアレイブロック内の1本のビ
ット線BLのみを対応するセンスアンプに電気的に接続
し、パリティメモリセルアレイ2に対応して設けられた
各YゲートブロックYGP0〜YGP5は対応するパリ
ティメモリセルアレイブロック内の1本のビット線BL
のみを対応するセンスアンプに接続する。したがって、
センスアンプ群8は、メモリセルアレイブロックDP0
からYゲートブロックYGD0に与えられたN個のデー
タ信号のうちの1つ,メモリセルアレイブロックGD1
からYゲートブロックYGD1に与えられたN個のデー
タ信号のうちの1つ,…,メモリセルアレイブロックD
B31からYゲートブロックYGD31に与えられたN
個のデータ信号のうちの1つ,パリティメモリセルアレ
イブロックDP0からYゲートブロックYGP0に与え
られたN個のデータ信号のうちの1つ,…,およびパリ
ティメモリセルアレイブロックDP5からYゲートブロ
ックYGP5に与えられたN個のデータ信号のうちの1
つをそれぞれ増幅して、ECC9への入力信号d0,d
1,…,d31,P0,…,P5とする。
【0021】このようにして、各正規メモリセルアレイ
ブロックDB0〜DB31および各パリティメモリセル
アレイブロックDP0〜DP5からそれぞれ、同じワー
ド線WLに接続される1つのメモリセルMCの記憶デー
タがECC9に読出される。
【0022】そこで、正規メモリセルアレイ1およびパ
リティメモリセルアレイ2から同時にECC9に読出さ
れるべき38ビットのデータd0〜d31,P0〜P5
に発生した1ビットの誤りの検出および訂正が、ECC
9の演算動作によって実現されるような、所定のパリテ
ィデータが、パリティメモリセルアレイ2に製造時に予
め書込まれている。もちろんパリティメモリセルアレイ
2に書込まれるべきパリティデータは、メモリセルアレ
イ1の記憶データに応じて決定される。
【0023】メモリセルアレイ1には、外部に読出され
るべきデータが製造時に予め書込まれている。しかしな
がら、種々の原因により、メモリセルアレイ1から読出
されたデータは必ずしも本来読出されるべき正しいデー
タでない場合がある。このような場合に、メモリセルア
レイ1から読出されたデータがECC9の動作によって
正しいデータに訂正される。
【0024】したがって、ECC9には、本来外部に読
出されるべき32ビットのデータd0〜d31と、この
32ビットのデータに発生した1ビットの誤りを訂正す
るのに必要な6ビットのパリティデータP0〜P5とが
同時に与えられる。ECC9は、この32ビットのデー
タd0〜d31と、この6ビットのパリティデータP0
〜P5とに所定の演算を施して、読出された32ビット
のデータをd0〜d31のうちのいずれか1つのビット
に誤りがあった場合にはこれを訂正して、誤りがない場
合にはそのまま、出力バッファ10に与える。
【0025】本例では、ECC11は、誤りを訂正され
た32ビットのデータd0〜d31のうち、下位16ビ
ットのデータd0〜d15と、上位16ビットのデータ
d16〜d31とのうちのいずれか一方を選択的に出力
バッファ10に与える。
【0026】出力バッファ10は、ECC9の出力信
号、すなわち、訂正後の16ビットのデータd0〜d1
5(またはd16〜d31)を、増幅してデータ出力端
子DT0〜DT15に供給する。
【0027】出力バッファ10は、ECC9の出力する
16ビットのデータに対応して16個のバッファ回路O
UT0〜OUT15を含む。これら16個のバッファ回
路PUT0〜OUT15がそれぞれ16個のデータ出力
端子DT0〜DT15に接続される。
【0028】制御回路6は、制御信号入力端子CTLに
外部から供給される制御信号に応答して、アドレスバッ
ファ5,出力バッファ10等の動作を制御する。
【0029】図11は、図10におけるECC9の内部
構成を示す概略ブロック図である。まず、ECC9の構
成の説明に先立って、ECC9における演算の手順およ
び誤り訂正の原理について、図20を参照しながら簡単
に説明する。誤り訂正の原理および回路による実現方法
の詳細は、たとえば「インターフェース」,1984年
8月号,pp.236〜250に述べられている。
【0030】図20は、ECCにおける誤り訂正の手順
を示す図である。1ビットの誤りを検出および訂正させ
るべきmビットの誤り訂正コードyを下記の行列で表わ
す。
【0031】 y=(y0 y1…y(m−1)) …(1) 上記式(1)において、y0,y1,…,y(m−1)
は、それぞれ、誤り訂正コードの、最下位ビット,第2
位ビット,…最上位ビットの論理値を表わす。
【0032】同様に、どのビットにも誤りのない誤り訂
正コード、すなわちmビットのデータの期待値xを下記
の行列で表わす。
【0033】 x=(x0 x1…x(m−1)) …(2) 上記式(2)において、x0,x1,…,x(m−1)
はそれぞれ、誤り訂正コードの、最下位ビット,第2位
ビット,…最上位ビットがそれぞれ本来とるべき論理値
を表わす。
【0034】ここで、誤り訂正コードのそれぞれのビッ
トの論理値y0〜y(m−1)がその期待値x0〜x
(m−1)からどれだけずれているかを次式の行列e
(以下、エラー行列と呼ぶ)で表わすと、y=x+eが
成立つ。
【0035】 e=(e0 e1…e(m−1)) …(3) 上記式(3)において、e0,e1,…,e(m−1)
はそれぞれ、誤り訂正コードの最下位ビットy0,第2
位ビットy1,…最上位ビットy(m−1)がその期待
値x0,x1,…x(m−1)からどれだけずれている
かを示す論理値を表わす。この論理値が0のとき期待値
からのずれはなく、この論理値が1のとき期待値とのず
れがあるとみなされる。以下のすべての式において、+
を○で囲んだ記号および、×はそれぞれ、2を法とする
加算および乗算を表わす。
【0036】y=x+eの関係より、誤り訂正コードの
任意のビットの論理値xjとその期待値ejとの関係は
次式で表わされる。(j=0,1,…(m−1))
【0037】
【数1】
【0038】図20は、2を法とする加算を示す真理値
表である。図22からわかるように、2を法とする加算
によれば、加える値Bが0であればその加算結果は加え
られる値Aと一致する。しかし、加える値Bが1であれ
ば、加算結果は加えられる値Aと逆の論理値となる。
【0039】したがって、e0〜e(m−1)の論理値
がわかれば、誤り訂正コードの各ビットの期待値x0〜
x(m−1)を知ることができる。
【0040】一方、誤り訂正コードxのいずれかのビッ
トに誤りがあるか否かは、ハミング行列と呼ばれる、
1,0のみを要素とする行列を用いて調べることができ
る。ハミング行列Hは次式のような関係を満たす行列で
ある。
【0041】 H・x=0 …(5) したがって、訂正される前の誤り訂正コードyの各ビッ
トの論理値y0〜y(m−1)がその期待値x0〜x
(m−1)と一致していれば、H・x=0が成立つが、
誤り訂正コードyのいずれかのビットの論理値がその期
待値と異なると、H・y≠0となる。ここで、ハミング
行列Hと訂正前の誤り訂正コードを表わす行列yとの積
H・yはシンドローム行列Sと呼ばれる。
【0042】シンドローム行列Sは、誤り訂正コードy
のうちのいずれのビットの論理値が期待値と異なってい
るのかを示す。
【0043】ここで、訂正前の誤り訂正コードを表わす
行列yと、期待値行列xと、エラー行列eとの間に成立
つ関係によって、シンドローム行列Sはパリティ検査行
列Hの転置行列HT を用いて次式によって求められる。
【0044】 e=HT ・S …(7) 上記式(4)からわかるように、誤り訂正コードyの任
意のビットの論理値yjがその期待値xjと同じであれ
ば、このビットの論理値yjは訂正される必要はなく、
逆に、任意のビットの論理値yjがその期待値xjと異
なれば、このビットの論理値yjは反転される必要があ
る。つまり、式(7)によってエラー行列eが得られれ
ば、次式のような演算によって誤り訂正コードの任意の
ビットの正しい論理値xjを得ることができる。
【0045】
【数2】
【0046】このように、所定のハミング行列行列Hを
用いることにより、任意のビット長の誤り訂正コードに
発生した1ビットの誤りを訂正することができる。
【0047】誤り訂正コードが、m1 ビット長の、誤り
を訂正されるべき本来のデータと、m2 ビット長のパリ
ティデータとを含む場合、ハミング行列Hは、たとえば
図22で示されるような、m2 行m1 列の行列である。
図22には、ハミング行列の一般的な形が示される。
【0048】32ビットのデータに発生する1ビットの
誤りを検出および訂正するには、この32ビットのデー
タに6ビットのパリティデータを付加する必要がある。
次に、32ビットのデータに発生した1ビットの誤りを
訂正するための具体的な演算手順について説明する。
【0049】まず、これら32ビットのデータとD0〜
D31と6ビットのパリティデータP0〜P5とによっ
て構成される誤り訂正コードを次式で示される行列DP
で表わす。
【0050】 DP=(d0 d1…d31 P0 P1…P5) この誤り訂正コードの各ビットd0〜d31,P0〜P
5が本来とるべき論理値に応じて、6行×38列のハミ
ング行列Hが決定される。以下の説明では、ハミング行
列Hにおける、i行目のj列目の要素をh(i,j)と
表わす。今、ハミング行列Hを一般的に次式で表わす
(i=0,1,2…5:j=0,1,2…37)。
【0051】
【数3】
【0052】誤り訂正コードに対応する行列DPとハミ
ング行列Hとに基づき次式のような演算によって、シン
ドローム行列Sの要素S0〜S5が算出される。
【0053】
【数4】
【0054】式(9)からわかるように、シンドローム
行列Sの任意の要素Siは、ハミング行列Hのi行目の
要素h(i,0)〜h(i,37)と誤り訂正コードの
それぞれのビットの論理値d0〜d31,P0〜P5と
に基づく次式のような演算によって算出される。
【0055】
【数5】
【0056】図21は、2を法とする乗算を示す真理値
表である。図21からわかるように、2を法とする乗算
によれば、掛ける数Bが0であれば掛けられる数Aにか
かわらず乗算結果(A×B)は0となり、掛ける数Bが
1であれば、乗算結果(A×B)は掛けられる数Aと同
じ論理値となる。
【0057】それゆえ、シンドローム行列Sのi番目の
要素Siは、ハミング行列Hのi番目の行の要素h
(i,0)〜h(i,37)のうち1である要素とそれ
ぞれ2を法として掛け合わされるべき、誤り訂正コード
のデータをすべて、2を法として加算することによって
得られる。
【0058】次に、ハミング行列Hの転置行列HT と算
出されたシンドローム行列の要素S0〜S5とに基づく
次式のような演算によって、エラー行列eの要素e0〜
e37が算出される。
【0059】
【数6】
【0060】式(10)からわかるように、エラー行列
eの任意の要素ejは次式で表わされる。
【0061】
【数7】
【0062】つまり、エラー行列eのj番目の要素ej
は、ハミング行列Hのj列目の要素h(0,j)〜h
(5,j)のうち、1であるものと掛け合わされるべ
き、シンドローム行列Sの要素と、前記j列目の要素の
うち0であるものと掛け合わされるべき、シンドローム
行列Sの要素のそれぞれの逆の論理値とに対して、2を
法とする乗算を行なうことによって得られる。
【0063】最後に、誤り訂正コードのそれぞれのビッ
トのデータd0〜d31,P0〜P5と、算出されたエ
ラーベクトルeの要素e0〜e31とに基づく次式で示
されるような演算を行なうことによって、正しい誤り訂
正コードDPの要素D0〜D31が算出される。
【0064】
【数8】
【0065】算出された要素D0〜D31がそれぞれ、
外部に読出されるべきデータのそれぞれのビットの期待
値である。
【0066】図10のECC9はこのような手順で外部
に出力されるべき32ビットのデータに発生した1ビッ
トの誤りを検出および訂正する。以下、ECC9の回路
構成について図11を参照して説明する。論理回路にお
いて、ハイレベルの電位およびローレベルの電位はそれ
ぞれ、論理値1および0に対応する。
【0067】シンドローム信号発生器90は、図10の
正規メモリセルアレイ1およびパリティメモリセルアレ
イ2からそれぞれ読出された32ビットのデータd0〜
d31および6ビットのパリティデータP0〜P5に対
して所定のハミング行列Hに基づく演算を行なって、前
述のシンドローム行列Sに対応する6ビットのシンドロ
ーム信号S0〜S5およびその反転信号を発生する。
【0068】具体的には、任意のシンドローム信号Sj
はシンドローム信号発生器90において、上記式(9)
で表わされる演算と等価な演算が論理回路によって実行
されることにより得られる。
【0069】訂正信号発生器91は、シンドローム信号
発生器90により発生された6ビットのシンドローム信
号S0〜S5およびその反転信号の合計12ビットの信
号に前記所定のハミング行列に基づく演算を行なうこと
によって、前述のエラー行列eの要素e0〜e31に対
応する32ビットの訂正信号e0〜e31を発生する。
【0070】具体的には、任意の訂正信号ejは、訂正
信号発生器91において、上記式(10)で表わされる
演算と等価な演算が論理回路によって実行されることに
よって得られる。
【0071】図12は、32ビットのデータに生じた1
ビットの誤りを検出および訂正するために用いられる従
来のハミング行列の一例である。シンドローム信号発生
器90および訂正信号発生器91は、このハミング行列
Hに従って構成される。
【0072】シンドローム信号を得るための演算におい
て、誤り訂正コードのそれぞれのビットのデータは、ハ
ミング行列Hの各行のそれぞれの要素に対応する(式
(9)参照)。
【0073】訂正信号を得るための演算において、訂正
信号のそれぞれは、ハミング行列Hのそれぞれの列に対
応し、シンドローム信号のそれぞれのビットのデータ
は、ハミング行列Hにおける各列のそれぞれの要素に対
応する(式(10)参照)。
【0074】ハミング行列Hとして図12に示されるも
のが用いられる場合、たとえばシンドローム信号S0
は、ハミング行列Hの1行目の要素のうち、1である1
6個の要素にそれぞれ対応する16個のデータd01〜
d17,d25〜d31,P0をすべて、2を法として
加算することによって算出される。同様に、シンドロー
ム信号S1は、ハミング行列Hの2行目の要素のうち1
である16個の要素にそれぞれ対応する16個のデータ
をd11〜d25,P1をすべて、2を法として加算す
ることによって得られる。以下同様に、シンドローム信
号S2〜S5がそれぞれ、ハミング行列Hの3行目〜6
行目の1である要素にそれぞれ対応する16個のデータ
をすべて、2を法として加算することにより得られる。
【0075】すなわち、たとえばシンドローム信号S0
は、次式で示される演算によって得られる。
【0076】
【数9】
【0077】2を法とする加算は、論理演算における排
他的論理和と等価である。したがって、シンドローム信
号S0は、16個のデータd10〜d17,d25〜d
31,P0すべての排他的論理和をとることによって得
られる。
【0078】同様に、他の5つのシンドローム信号S1
〜S5は各々、ハミング行列Hの対応する行の要素のう
ち1である要素にそれぞれ対応する16個のデータの排
他的論理和をとることによって得られる。
【0079】そこで、シンドローム信号発生器90は、
複数のEX−ORゲートを含む。図13は、図12のハ
ミング行列Hが用いられる場合のシンドローム信号発生
器90の構成の一例を示す回路図である。
【0080】図13を参照して、シンドローム信号発生
器90は、6個のシンドローム信号S0〜S5をそれぞ
れ発生する6個の回路ブロック90−1〜90−6を含
む。
【0081】各回路ブロック90−1〜90−6は、8
個の2入力EX−ORゲート900aと、これら8個の
EX−ORゲート900aのうちの2つのEX−ORゲ
ートの出力を入力として受ける4つの2入力EX−OR
ゲート900bと、これら4つのEX−ORゲート90
0bのうちの2つのEX−ORゲートの出力を入力とし
て受ける2つの2入力EX−ORゲート900cと、こ
れら2つのEX−ORゲート900cの出力を入力とし
て受ける2入力EX−ORゲート900dとを含む。
【0082】6個の回路ブロック90−1〜90−6に
はそれぞれ、38個のデータd0〜d31,P0〜P5
のうち、シンドローム信号S0〜S5を算出するために
必要な16個のデータが入力される。図14は、各回路
ブロック90−1〜90−6への16個の入力信号I1
〜I16を表形式で示す図である。
【0083】図14に示されるように、回路ブロック9
0−1への入力信号I1〜I16,回路ブロック90−
2への入力信号I1−I16,…,回路ブロック90−
6への入力信号I1−I16はそれぞれ、図12のハミ
ング行列の1行目の要素のうのち1である要素に対応す
る16個のデータ,ハミング行列Hの2行目の要素のう
ち1である要素にそれぞれ対応する16個のデータ,
…,ハミング行列Hの6行目の要素のうち1である要素
にそれぞれ対応する16個のデータである。したがっ
て、これら6個の回路ブロック90−1〜90−6内の
EX−ORゲート900dの出力信号は、それぞれ、6
個のシンドローム信号S0〜S5となる。
【0084】各回路ブロック90−1〜90−6は、さ
らに、EX−ORゲート940の出力を反転するインバ
ータ900eを含む。したがって、6個の回路ブロック
90−1〜90−6内のインバータ900eからはそれ
ぞれ、6個のシンドローム信号S0〜S5の反転信号が
出力される。
【0085】一方、訂正信号e0〜e31の各々は、ハ
ミング行列Hの対応する列の要素のうち、1である要素
に対応するシンドローム信号と、0である要素に対応す
るシンドローム信号の反転信号とをすべて、2を法とし
て乗算することによって得られる。
【0086】ハミング行列Hとして図12に示されるも
のが用いられる場合、たとえば訂正信号e0は、ハミン
グ行列Hの1列目の要素のうち、1である要素にそれぞ
れ対応する2つのシンドローム信号S4およびS5と、
0である要素にそれぞれ対応する4つのシンドローム信
号信号S0〜S4の反転信号とをすべて、2を法として
乗算することによって得られる。すなわち、訂正信号e
0は次式のような演算によって算出される。
【0087】 e0=/S0×/S1×/S2×/S3×S4×S5 上記式において、/S0〜/S3はそれぞれ、シンドロ
ーム信号S0〜S3の反転信号を表わす。
【0088】2を法とする乗算は、論理演算における論
理積と等価である。したがって、32個の訂正信号e0
〜e31の各々は、ハミング行列Hの対応する列の要素
のうち、1である要素に対応するシンドローム信号と、
0である要素に対応するシンドローム信号の反転信号と
の合計6個の信号の論理積をとることによって得られ
る。
【0089】そこで、訂正信号発生器91は、それぞれ
がANDゲートと等価な動作を行なう32個の回路ブロ
ックを含む。
【0090】図15は、図12のハミング行列が用いら
れた場合の訂正信号発生器91の構成の一例を示す回路
図である。
【0091】図15を参照して、訂正信号発生器91
は、訂正信号e0〜e31をそれぞれ発生する回路ブロ
ック91−1〜91−32を含む。
【0092】これら32個の回路ブロック91−1〜9
1−32の各々は、2個の3入力NANDゲート910
aと、これら2個のNANDゲート910aの出力を入
力として受ける2入力NORゲート910bとを含む。
【0093】図16は、これらの回路ブロック91−1
〜91−32の各々への6個の入力信号i1〜i6を表
形式で示す図である。図16に示されるように、回路ブ
ロック91−1のNANDゲート910a,回路ブロッ
ク91−2のNANDゲート910a,…,回路ブロッ
ク91−32のNANDゲート910aにはそれぞれ、
ハミング行列Hの1列目の1である要素に対応するシン
ドローム信号と、0である要素に対応するシンドローム
信号の反転信号との合計6個の信号,ハミング行列Hの
2列目の1である要素に対応するシンドローム信号と、
0である要素に対応するシンドローム信号の反転信号と
の合計6個の信号,…,ハミング行列Hの32列目の1
である要素に対応するシンドローム信号と、0である要
素に対応するシンドローム信号の反転信号との合計6個
の信号が入力される。
【0094】訂正信号発生器91を構成する回路ブロッ
ク91−1〜91−32の各々において、2つのNAN
Dゲート910aの出力電位がともにローレベルである
場合にのみNORゲート910bの出力電位はハイレベ
ルとなる。これら2個のNANDゲート910aの出力
電位がともにローレベルとなるのは、これらのNAND
ゲート910aへの6個の入力信号i1〜i6がすべて
ハイレベルである場合のみである。すなわち、2個のN
ANDゲート910aとNORゲート910bとによっ
て構成された回路は、6入力ANDゲートと等価な動作
を行なう。
【0095】したがって、回路ブロック91−1のNO
Rゲート910b,回路ブロック91−2のNORゲー
ト910b,…,回路ブロック91−32のNORゲー
ト910bからはそれぞれ、訂正信号e0,e1,…,
e31が出力される。
【0096】再度図11を参照して、データ訂正回路9
2は、訂正信号発生器91により発生された訂正信号e
0〜e31と、正規メモリセルアレイ1から読出された
32ビットのデータd0〜d31とに、式(11)で示
される演算を行なう。図17は、図12のハミング行列
が用いられた場合のデータ訂正回路92の構成を示す回
路図である。
【0097】図17を参照して、データ訂正回路92
は、32個の2入力EX−ORゲート920を含む。
【0098】EX−ORゲート92−1,92−2,
…,92−32にはそれぞれ、訂正信号e0およびデー
タ信号d0,訂正信号e1およびデータ信号d1,…,
訂正信号e31およびデータ信号d31が入力される。
したがって、これら32個のEX−ORゲート92−
1,92−2,…,92−32の出力端にはそれぞれ、
信号e0およびd0の排他的論理和信号,信号e1およ
びd1の排他的論理和信号,…,信号e31およびd3
1の排他的論理和信号が表われる。
【0099】すなわち、32個のデータ信号d0〜d3
1はそれぞれ、それが期待値と異なる場合には、反転さ
れて、それが期待値と一致する場合には、反転されず
に、EX−ORゲート92−1〜92−32の出力端に
現われる。したがって、これら32個のEX−ORゲー
ト92−1〜92−32からは、訂正後の32ビットの
データ信号D0〜D31が出力される。
【0100】再度図11を参照して、データセレクタ9
3は、セレクト信号SEによって制御されて、データ訂
正回路92から出力された訂正後のデータ信号D0〜D
31のうちの16ビットの信号D0〜D15と、残りの
16ビットの信号D16〜D31とのうちのいずれか一
方を、選択して出力する。
【0101】図18は、データセレクタ93の構成の一
例を示す回路図である。図18を参照して、データセレ
クタ93は、16個の回路ブロック93−1〜93−1
6を含む。これらの回路ブロック93−1〜93−16
の各々は、2個のPチャネルMOSトランジスタ930
aおよび930cと、2個のNチャネルMOSトランジ
スタ930bおよび930dとを含む。トランジスタ9
30aとトランジスタ930bとは互いに並列に接続さ
れる。同様に、トランジスタ930cとトランジスタ9
30dとも互いに並列に接続される。
【0102】回路ブロック93−1のトランジスタ93
0aおよび930b,回路ブロック93−2のトランジ
スタ930aおよび930b,…,回路ブロック93−
16のトランジスタ930aおよび930bはそれぞ
れ、訂正後のデータ信号D0,D1,…,D15のトラ
ンスファゲートとして設けられる。
【0103】同様に、回路ブロック93−1のトランジ
スタ930cおよび930d,回路ブロック93−2の
トランジスタ930cおよび930d,…,回路ブロッ
ク93−16のトランジスタ930cおよび930dは
それぞれ、訂正後のデータ信号D16,D17,…,D
31のトランスファゲートとして設けられる。
【0104】セレクト信号SEとその反転信号とはそれ
ぞれ、トランジスタ930bおよび930cのゲート
と、トランジスタ930aおよび930dのゲートとに
与えられる。
【0105】セレクト信号SEの電位がハイレベルであ
れば、トランジスタ930aおよび930bが導通し、
トランジスタ930cおよび930dが非導通状態とな
る。したがって、16個の回路ブロック93−1〜93
−16からはそれぞれ、訂正後の32ビットのデータ信
号D0〜D31のうちの下位16ビットのデータ信号D
0〜D15が出力される。逆に、セレクト信号SEの電
位がローレベルであれば、トランジスタ930cおよび
930dが導通し、トランジスタ930aおよび930
bが非導通状態となる。したがって、16個の回路ブロ
ック93−1〜93−16からはそれぞれ、32ビット
のデータ信号D0〜D31のうちの上位16ビットのデ
ータ信号D16〜D31が出力される。
【0106】図19は、セレクト信号SEおよびその反
転信号の電位の論理レベルと、データセレクタ93の出
力信号O0 〜O15との関係を表形式で示す図である。
【0107】このように、セレクト信号SEの論理レベ
ルを切換えることによって、訂正後のデータ信号D0〜
D31のうちの下位16ビットまたは、上位16ビット
のうちのいずれかのデータ信号を選択的に出力すること
ができる。セレクト信号SEおよびその反転信号は、た
とえば、図10の制御回路6により発生される。
【0108】
【発明が解決しようとする課題】以上のように、従来の
ECCは、メモリセルアレイから同時に読出されるデー
タのうちのパリティデータの数と同数の回路ブロックに
よって構成されるシンドローム信号発生器と、この読出
されたデータのうちパリティデータ以外のデータの数と
同数の回路ブロックによってそれぞれ構成される訂正信
号発生器およびデータ訂正回路とを含む。
【0109】シンドローム信号発生器を構成する回路ブ
ロックの各々は、多くの入力信号線を必要とし、かつ、
多くの論理ゲート回路を含む。このため、シンドローム
信号発生器の回路規模は大きい。
【0110】訂正信号発生器を構成する各回路ブロック
および、データ訂正回路を構成する各回路ブロックは、
いずれも、シンドローム信号発生器を構成する各回路ブ
ロックほど多くの入力信号線を必要としない。しかしな
がら、訂正信号発生器を構成する回路ブロックの数およ
び、データ訂正回路を構成する回路ブロックの数は、シ
ンドローム信号発生器を構成する回路ブロックの数より
もはるかに多い。このため、訂正信号発生器およびデー
タ訂正回路のいずれの回路規模も非常に大きい。
【0111】それゆえ、誤り訂正機能を有する従来の半
導体記憶装置は、ECCの半導体基板上における占有面
積が多大となり、メモリセルアレイのために使用される
半導体基板上の面積が小さくなるという問題を有してい
た。
【0112】たとえば、図10で示されるマスクROM
の場合、ECC9は、各々が、16本の入力信号線と1
5個のEX−ORゲートを必要とする6個の回路ブロッ
ク90−1〜90−6(図13参照)と、各々が、6本
の入力信号線と2個のNANDゲートと1個のNORゲ
ートとを必要とする、32個の回路ブロック91−1〜
91−32(図15参照)と、各々が、2本の入力信号
線を必要とする32個のEX−ORゲート92−1〜9
2−32とを含む。
【0113】それゆえに、本発明の目的は、上記のよう
な問題点を解決し、回路規模が削減されたECCを有す
る半導体記憶装置を提供することである。
【0114】
【課題を解決するための手段】この発明に係る半導体記
憶装置は、複数のアドレスを含み、各アドレスに第1の
グループの2(Nは自然数である)ビットのデータ
と、第2のグループの2ビットのデータと、第1およ
び第2のグループの2N+1ビットのデータに応じたN
+2ビットのパリティデータとが格納されたメモリセル
アレイと、アドレス信号に従って、メモリセルのうちの
いずれかのアドレスから第1および第2のグループの2
N+1ビットのデータとN+2ビットのパリティデータ
とを読出す読出手段と、読出手段によって読出された第
1および第2のグループの2N+1ビットのデータとN
+2ビットのパリティデータとに、所定のハミング行列
に従った演算を施して、第1のグループの2ビットの
データの誤りと第2のグループの2ビットのデータの
誤りとを順次訂正する誤り訂正手段と、誤り訂正手段に
よって訂正された第1または第2のグループの2ビッ
トのデータを外部に出力する出力手段とを備える。
【0115】誤り訂正手段は、読出手段によってメモリ
セルアレイから読出された、第1および第2のグループ
の2N+1ビットのデータとN+2ビットのパリティデ
ータとに基づいて、N+2ビットのシンドローム信号を
作成するシンドローム信号作成手段と、読出手段によっ
てメモリセルアレイから読出された第1のグループの2
ビットのデータと第2のグループの2ビットのデー
タとを順次選択するグループ選択手段と、シンドローム
信号作成手段により作成されたN+2ビットのシンドロ
ーム信号に基づいて、グループ選択手段の選択動作に同
期して、第1のグループの2ビットのデータのための
訂正信号と、第2のグループの2ビットのデータのた
めの訂正信号とを順次作成する訂正信号作成手段と、訂
正信号作成手段によって作成された2ビットの訂正信
号に基づいて、グループ選択手段によって選択された第
1または第2のグループの2ビットのデータの誤りを
訂正する訂正手段とを含む。
【0116】好ましくは、シンドローム信号作成手段
は、各シンドローム信号の反転信号をさらに作成し、訂
正信号作成手段は、N+2ビットのシンドローム信号お
よびN+2ビットの反転信号のうち、第1のグループの
のデータのために必要な信号、および第2のグルー
プの2ビットのデータのために必要な信号を順次選択
する信号選択手段と、信号選択手段により選択された信
号に応答して2ビットの訂正信号を作成する作成手段
とを含む。
【0117】
【作用】この発明に係る半導体記憶装置では、指定され
たアドレスから第1のグループの2ビットのデータと
第2のグループの2ビットのデータとN+2ビットの
パリティデータとを読出し、第1のグループの2ビッ
トのデータと第2のグループの2ビットのデータとを
順次選択するとともに、第1のグループ用の2ビット
の訂正信号と第2のグループ用の2ビットの訂正信号
とを順次生成する。そして、生成した訂正信号に基づい
て第1のグループの2ビットのデータと第2のグルー
プの2ビットのデータとを順次訂正し、外部に出力す
る。したがって、第1および第2のグループの2N+1
ビットのデータを一度に訂正した後、第1のグループの
ビットのデータと第2のグループの2ビットのデ
ータとを順次選択して出力していた従来に比べ、訂正手
段の回路規模を半分に削減でき、誤り訂正回路の回路規
模を削減できる。
【0118】
【実施例】図1は、本発明の一実施例のマスクROMの
全体構成を示す概略ブロック図である。
【0119】このマスクROMの全体構成は、図10に
示される従来のそれと同様である。しかし、本実施例の
マスクROMのECC11は、従来と異なる構成を有す
る。
【0120】図2は、図1のECC11の構成を示す概
略ブロック図である。図2を参照して、本実施例のEC
Cと従来とそれとの重要な相違点は、データセレクタ1
13がデータ訂正回路112の前段に設けられている点
および、訂正信号発生器111の出力信号が16ビット
の信号e0〜e15またはe16〜e31である点であ
る。
【0121】このような構成は、ECC11における誤
り訂正のための一連の演算が、たとえば図3で示される
ハミング行列Hに従って行なわれることにより実現され
る。図3は、図2に示される構成を可能にするハミング
行列の一例を示す図である。
【0122】図3を参照して、このハミング行列Hは、
従来のECCにおける一連の演算が従うハミング行列に
はないある規則性を有する。すなわち、このハミング行
列Hにおいて、32列目までの各列の6個の要素のうち
の2個の要素の値だけがそれぞれ、この列よりも16列
前の列の対応する2個の要素の値と異なる。
【0123】たとえば、1列目の要素と17列目の要素
とを比較すると、1行目および2行目の要素の値が、1
列目においては0であるのに対し、17列目においては
1である。一方、3行目ないし6行目の要素は、1列目
と17列目とで一致する。
【0124】同様に、たとえば4列目と20列目とを比
較すると、2行目および6行目の要素の値が、4列目に
おいては0であるのに対し20列目においては1であ
る。一方、1行目および、3行目ないし5行目の要素は
すべて、4列目と20列目とで一致する。
【0125】本実施例のECCにおける誤り訂正の原理
は、従来と全く同じである。したがって、図2のシンド
ローム信号発生器110は、6個のシンドローム信号S
0,S1,…,S5をそれぞれ、32ビットのデータ信
号d0〜d31および6ビットのパリティデータP0〜
P5のうち、ハミング行列Hの1行目の1である要素に
対応するものの排他的論理和,ハミング行列Hの2行目
の1である要素に対応するものの排他的論理和,…,ハ
ミング行列Hの6行目の1である要素に対応するものの
排他的論理和をとることによって発生する。
【0126】図4は、シンドローム信号発生器110の
構成を示す回路図である。図4を参照して、シンドロー
ム信号発生器110は、6個のシンドローム信号S0〜
S5をそれぞれ発生するための6個の回路ブロック11
0−1〜110−6を含む。
【0127】これら6個の回路ブロック110−1〜1
10−6はそれぞれ、図13に示される従来のECCに
含まれるシンドローム信号発生器を構成する6個の回路
ブロック90−1〜90−6と同じ構成を有し、シンド
ローム信号S0〜S6の反転信号も出力する。
【0128】ただし、本実施例で用いられるハミング行
列(図3)と従来用いられたハミング行列(図12)と
は異なるので、各回路ブロック110−1〜110−6
に入力される16個の信号I1〜I16は図13に示さ
れるものと異なる。
【0129】たとえば、シンドローム信号S0は、ハミ
ング行列H(図3)の1行目の要素のうち1である16
個の要素にそれぞれ対応する16個のデータd10〜d
12,d15〜d18,d21〜d24,d26〜d2
8,d31,P0すべての排他的論理和をとることによ
って得られる。次式は、シンドローム信号S0を算出す
るための演算を表わす。
【0130】
【数10】
【0131】図5は、図4の各回路ブロック110−1
〜110−6への入力信号I1〜I16を表形式で示す
図である。
【0132】再度図2を参照して、訂正信号発生器11
1は、データセレクタ113を制御するセレクト信号S
Eと同じ信号によって制御されて、シンドローム信号S
0〜S5およびその反転信号に基づいて、32ビットの
訂正信号e0〜e31のうちの下位16ビットの信号e
0〜e15または上位16ビットの信号e16〜e31
のうちのいずれか一方を発生する。
【0133】図6は、訂正信号発生器111の構成を示
す回路図である。図6を参照して、訂正信号発生器11
1は、従来の訂正信号発生器(図15)を構成する回路
ブロック数の半数である16個の回路ブロック111−
1〜111−16によって構成される。
【0134】各回路ブロック111−1〜111−16
は、従来の訂正信号発生器を構成する各回路ブロックと
異なり、2つの3入力NANDゲート110aと、2入
力NORゲート110bとに加えて、4個のPチャネル
MOSトランジスタ110c,110e,110g,1
10iと、4個のNチャネルMOSトランジスタ110
d,110f,110h,110jを含む。セレクト信
号SEとその反転信号とはそれぞれ、トランジスタ11
0d,110e,110hおよび110iのゲートと、
トランジスタ110c,110f,110gおよび11
0jのゲートとに与えられる。
【0135】さて、32個の訂正信号e0,e1,…,
e31はそれぞれ、ハミング行列Hの、1列目の要素の
うち1である要素に対応するシンドローム信号と、0で
ある要素に対応するシンドローム信号の反転信号との合
計6個の信号の論理積,ハミング行列Hの2列目の要素
のうち1である要素に対応するシンドローム信号と、0
である要素に対応するシンドローム信号の反転信号との
合計6個の信号,…,ハミング行列Hの32列目の要素
のうち1である要素のシンドローム信号と、0である要
素のシンドローム信号の反転信号との合計6個の信号の
論理積をとることによって得られる。
【0136】本実施例では、ハミング行列Hに前述のよ
うな規則性がある。このため訂正信号e16を算出する
ために必要な信号,訂正信号e17を算出するために必
要な信号,…,訂正信号e31を算出するために必要な
信号はそれぞれ、訂正信号e0を算出するために必要な
信号のうちの2つの信号の論理値を反転させたもの,訂
正信号e1を算出するために必要な信号のうちの2つの
信号の論理値を反転させたもの,…,訂正信号e15を
算出するために必要な信号のうちの2つの信号の論理値
を反転させたものに一致する。
【0137】たとえば、図3を参照して、訂正信号e0
は、ハミング行列Hの1列目の要素のうち1である要素
にそれぞれ対応する2つのシンドローム信号S4,S5
と、0である要素にそれぞれ対応する4つのシンドロー
ム信号S0〜S3の反転信号との合計6個の信号の論理
積をとることによって得られる。一方、訂正信号e16
は、17列目の要素のうち1である要素にそれぞれ対応
する4つのシンドローム信号S0,S2,S4,S5
と、0である要素にそれぞれ対応する2つのシンドロー
ム信号S2,S3との合計6個の信号の論理積をとるこ
とにとよって得られる。次式は、訂正信号e0およびe
16を算出するための演算を示す。
【0138】 e0=/S0×/S1×/S2×/S3×S4×S5 e16=S0×S1×/S2×/S3×S4×S5 上記式からわかるように、たとえば訂正信号e16を得
るには、訂正信号e0を得るのに必要な6個のシンドロ
ーム信号のうちの2つ/S0,/S1の反転信号S0,
S1と、残りの4つのシンドローム信号とが必要であ
る。
【0139】そこで、図6を参照して、訂正信号e0お
よびe16を発生するための回路ブロック111−1に
は、訂正信号e0を算出するためのシンドローム信号と
訂正信号e16を算出するためのシンドローム信号とに
含まれる合計8個の信号が入力される。
【0140】回路ブロック111−1において、トラン
ジスタ110cおよび110dと、トランジスタ110
gおよび110hとはそれぞれ、訂正信号e0を算出す
るためのシンドローム信号のうち訂正信号e16を算出
するためのシンドローム信号には含まれない2つの信号
(シンドローム信号S0およびS1の反転信号)の一方
および他方のトランスミッションゲートとして設けられ
る。同様に、トランジスタ110eおよび110fと、
トランジスタ110iおよび110jとはそれぞれ、訂
正信号e16を算出するためのシンドローム信号のう
ち、訂正信号e16を算出するためのシンドローム信号
に含まれない2つの信号S0,S1の一方および他方の
トランスミッションゲートとして設けられる。トランジ
スタ110cおよび100dの出力と、トランジスタ1
10eおよび110fの出力とは一方のNANDゲート
110aの同じ入力端に与えられ、トランジスタ110
gおよび110hの出力信号と、トランジスタ110i
および110jの出力信号とは他方のNANDゲート1
10aの同じ入力端に与えられる。
【0141】セレクト信号SEの電位がハイレベルであ
れば、トランジスタ110c,110d,110g,お
よび110hが導通し、トランジスタ110e,110
f,110i,および110jが非導通状態となる。し
たがって、回路ブロック111−1において、NAND
ゲート110aには、訂正信号e0を算出するために必
要な6つのシンドローム信号が与えられるので、NOR
ゲート110dの出力信号は訂正信号e0となる。
【0142】逆に、セレクト信号SEの電位がローレベ
ルであれば、トランジスタ110e,110f,110
i,および110gが導通し、トランジスタ110c,
110b,110g,および110hが非導通状態とな
る。したがって、回路ブロック111−1において、N
ANDゲート110aへの入力信号は訂正信号e16を
算出するために必要な6つのシンドローム信号となるの
で、NORゲート110bの出力信号は訂正信号e16
となる。
【0143】他の回路ブロック111−2,111−
3,…,111−16にはそれぞれ、訂正信号e1およ
びe17を算出するために必要なすべてのシンドローム
信号,訂正信号e2およびe18を算出するために必要
なすべてのシンドローム信号,…,訂正信号e15およ
びe31を算出するために必要なすべてのシンドローム
信号が入力される。
【0144】図7は、各回路ブロック11−1〜111
−16への8個の入力信号i1〜i6,/i1〜/i6
( /i1〜/i6は、信号i1〜i6の反転信号を表
わす。)を表形式で示す図である。
【0145】他の回路ブロック111−2〜111−1
6も、回路ブロック111−1と同様に構成される。
【0146】すなわち、kを1〜16の任意の整数とす
ると、回路ブロック111−kにおいて、トランジスタ
110cおよび110dと、トランジスタ110gおよ
び110hとはそれぞれ、訂正信号e(k−1)を算出
するためのシンドローム信号のうち、訂正信号e(k+
15)を算出するためのシンドローム信号に含まれない
2つのシンドローム信号のためのトランスファゲートと
して設けられる。逆に、トランジスタ110eおよび1
10fと、トランジスタ110iおよび110jとはそ
れぞれ、訂正信号e(k+15)を算出するためのシン
ドローム信号のうち、訂正信号e(k−1)を算出する
ためのシンドローム信号に含まれない2つの信号のトラ
ンスファゲートとして設けられる。2つのNANDゲー
ト110aの合計6つの入力端のうちの4つには、訂正
信号e(k−1)を算出するためのシンドローム信号
と、訂正信号e(k+15)を算出するためのシンドロ
ーム信号とに共通に含まれる4つの信号か共通に与えら
れる。残りの2つの入力端のうちの一方には、トランジ
スタ110c,110d,110eおよび110fの出
力信号が共通に与えられ、他方には、トランジスタ11
0g,110f,110i,および110jの出力信号
が共通に与えられる。
【0147】したがって、回路ブロック111−2〜1
10−16はそれぞれ、セレクト信号SEがハイレベル
のとき、訂正信号e1〜e15を出力し、セレクト信号
SEがローレベルのとき、訂正信号e16〜e31を出
力する。
【0148】再度図2を参照して、データセレクタ11
3は、セレクト信号SEによって制御されて、32ビッ
トのデータの信号d0〜d31の下位16ビットの信号
d0〜d15または上位16ビットの信号d16〜d3
1のうちのいずれか一方をデータ訂正回路112に与え
る。
【0149】図8は、データセレクタ113の構成を示
す回路図である。図8を参照して、データセレクタ11
3は、16個の回路ブロック113−1〜113−16
を含む。
【0150】これら16個の回路ブロック113−1〜
113−16の各々は、2つのPチャネルMOSトラン
ジスタ113a,113cと、2つのNチャネルMOS
トランジスタ113b,113dとを含む。セレクト信
号SEおよびその反転信号はそれぞれ、トランジスタ1
13bおよび113cのゲートと、トランジスタ113
aおよび113dのゲートとに与えられる。
【0151】回路ブロック113−1,113−2,
…,113−16にはそれぞれ、データd0およびこの
データよりも16ビット上位のデータd16,データd
1およびこのデータd1よりも16ビット上位のデータ
d17,…,データd15およびこのデータd15より
も16ビット上位のデータd31が入力される。各回路
ブロック113−1〜113−16において、トランジ
スタ113aおよび113bと、トランジスタ113c
および113dとはそれぞれ、その回路ブロックへの2
つの入力データのうち、下位ビットのデータのトランス
ファゲートおよび上位ビットのトランスファゲートとし
て設けられる。
【0152】したがって、セレクト信号SEがハイレベ
ルであれば、各回路ブロック113−1〜113−16
において、下位ビットの入力データに対応して設けられ
たトランスファゲート113a,113bが導通し、セ
レクト信号SEがローレベルであれば、各回路ブロック
113−1〜113−16において、上位ビットの入力
データに対応して設けられたトランスファゲート113
c,113dが導通する。この結果、16個の回路ブロ
ック113−1〜113−16からはそれぞれ、セレク
ト信号SEがハイレベルのとき、下位16ビットのデー
タ信号d0〜d15が出力され、セレクト信号SEがロ
ーレベルのとき、上位16ビットのデータ信号d16〜
d31が出力される。
【0153】再度図2を参照して、データ訂正回路11
2は、データセレクタ113から出力された16個のデ
ータ信号d0〜d15(またはd16〜d31)のそれ
ぞれと、訂正信号発生器111により発生された16個
の訂正信号e0〜e15(またはe16〜e31)のそ
れぞれとの排他的論理和をとることによって、データセ
レクタ113からの16個のデータ信号の誤りを訂正す
る。
【0154】図9は、データ訂正回路112の構成を示
す回路図である。図9を参照して、データ訂正回路11
2は、16個の2入力EX−ORゲート112−1〜1
12−6を含む。これらのEX−ORゲート112−
1,112−2,…112−16にはそれぞれ、データ
セレクタ113の回路ブロック113−1の出力信号d
0(d16)および訂正信号発生器111の回路ブロッ
ク111−1の出力信号e0(e16),データセレク
タ113の回路ブロック113−2の出力信号d1(d
17)および訂正信号発生器111の回路ブロック11
1−2の出力信号e1(e17),…,データセレクタ
113の回路ブロック113−16の出力信号e15
(d31)および訂正信号発生器111の回路ブロック
111−16の出力信号e15(e31)が入力され
る。
【0155】一方、データセレクタ113の回路ブロッ
ク113−1〜113−16と、訂正信号発生器111
の回路ブロック111−1〜111−16とは、セレク
ト信号SEがハイレベルのとき、データ信号d0〜d1
5と、訂正信号e0〜e15とをそれぞれ出力し、セレ
クト信号SEがローレベルのとき、データ信号d16〜
d31と、訂正信号e16〜e31とをそれぞれ出力す
る。
【0156】したがって、セレクト信号SEがハイレベ
ルのとき、EX−ORゲート112−1〜112−16
の出力信号は、下位16ビットのデータ信号d0〜d1
5のそれぞれと、これらに対応する訂正信号e0〜e1
5との排他的論理和信号ととなる。逆に、データセレク
ト信号SEがローレベルのとき、EX−ORゲート11
2−1〜112−16の出力信号は、上位16ビットの
データ信号d16〜d31のそれぞれと、これらに対応
する訂正信号e16〜e31との排他的論理和信号とな
る。
【0157】つまり、下位16ビットのデータ信号d0
〜d15は、これらのいずれか1ビットのデータに誤り
があれば、その誤りが訂正されて、誤りがなければその
まま、EX−ORゲート112−1〜112−16の出
力端に、セレクト信号SEがハイレベルのときに現われ
る。一方、上位16ビットのデータ信号d16〜d31
は、これらに1ビットの誤りが含まれていれば、この誤
りが訂正されて、誤りがなければそのまま、EX−OR
ゲート112−1〜112−16の出力端に、セレクト
信号SEがローレベルのときに現われる。
【0158】それゆえ、セレクト信号SEの論理レベル
を従来と同様に切換えることにより、本実施例のECC
11から、訂正後の下位16ビットのデータ信号d0〜
d15と、訂正後の上位16ビットのデータ信号d16
〜d31とが選択的に出力される。
【0159】以上のように、本実施例では、誤りを検出
および訂正されるべき32個のデータが2つのグループ
に分割され、この2つのグループに対する誤り訂正が同
一の回路によって行なわれる。このため、訂正信号発生
器を構成する回路ブロック数(16個)およびデータ訂
正回路を構成するEX−ORゲートの数(16個)がそ
れぞれ、従来(32個)の半分でよいので、訂正信号発
生器の構成素子数,データ訂正回路への入力信号線数お
よびデータ訂正回路の構成素子数が大幅に削減される。
この結果、本実施例のECC11の回路規模は従来より
も大幅に低減される。
【0160】本実施例と同様の構成のECCは、図3に
示されるハミング行列Hによってのみ可能となるもので
はなく、図3のハミング行列Hと同じ規則性を有するハ
ミング行列であればどのようなものによっても、可能と
なる。たとえば、図3のハミング行列Hの1列目から3
2列目において列の順序が入替えられた行列の各々は、
実施例のECCの構成を可能にする他のハミング行列の
一例である。すなわち、メモリセルアレイからECCに
同時に読出される38個のデータd0〜d31,P0〜
P5のうちパリティデータP0〜P5を除くデータd0
〜d31に対応する32列が、一定数Mの要素のみが互
いに異なる2列を1対とする16対によって構成される
ような、ハミング行列が用いられれば、誤りを訂正され
るべき32ビットのデータd0〜d31のうちの16ビ
ット分のデータの誤り訂正と残りの16ビット分の誤り
訂正とが同じ回路によって実現可能となる。もちろん、
訂正信号発生器111を構成する回路ブロック111−
1〜111−16におけるトランスファゲートは、前記
一定数Mに応じた数、すなわち2M個必要となる。
【0161】一般に、ECCの構成素子の半導体基板上
におけるレイアウト等を考慮して、半導体記憶装置に用
いられるECCが従うハミング行列は、それぞれの列が
互いに独立であること,すべての行において1である要
素の数が同じであり、かつ偶数であることなどが要求さ
れる。
【0162】上記実施例では、32ビットのデータに生
じた1ビットの誤りを検出および訂正するECCの構成
について説明されたが、32ビット以外のビット長のデ
ータに生じた1ビットの誤りを検出および訂正するため
のECCに本発明が適用されることももちろん可能であ
る。
【0163】また、上記実施例では、内部で読出された
データが2回に分けて外部に出力されたが、内部での読
出データの数と、外部への出力データの数とが同一であ
るマスクROMに本発明が適用されても同様の効果が得
られる。
【0164】本発明は、EEPROMやEPROMなど
の、製造後にデータを書込むことができる半導体記憶装
置にも適用可能である。
【0165】
【発明の効果】以上のように、この発明によれば、2
N+1ビットのデータを読出して2ビットずつデータ
を選択し、2ビットずつデータの誤りを訂正して外部
に出力するので、2N+1ビットのデータを一度に訂正
した後2ビットずつデータを出力していた従来に比
べ、訂正手段の回路規模を半分に削減でき、誤り訂正回
路の回路規模を削減できる。
【図面の簡単な説明】
【図1】本発明の一実施例のマスクROMの全体構成を
示す概略ブロック図である。
【図2】図1のECCの構成を示す概略ブロック図であ
る。
【図3】図1のECCにおける誤り訂正のために用いら
れるハミング行列の一例を示す図である。
【図4】図2のシンドローム信号発生器の構成を示す回
路図である。
【図5】図4の各回路ブロック110−1〜110−6
への入力信号I1〜I16を表形式で示す図である。
【図6】図2の訂正信号発生器の構成を示す回路図であ
る。
【図7】図6の各回路ブロック111−1〜111−1
6への入力信号を表形式で示す図である。
【図8】図2のデータセレクタの構成を示す回路図であ
る。
【図9】図2のデータ訂正回路の構成を示す回路図であ
る。
【図10】従来の誤り訂正機能付マスクROMの全体構
成を示す概略ブロック図である。
【図11】図10のECCの構成を示す概略ブロック図
である。
【図12】従来のECCにおける誤り訂正のために用い
られるハミング行列の一例を示す図である。
【図13】図11のシンドローム信号発生器の構成を示
す回路図である。
【図14】図13の各回路ブロック90−1〜90−6
への入力信号を表形式で示す図である。
【図15】図11の訂正信号発生器の構成を示す回路図
である。
【図16】図15の各回路ブロック91−1〜91−3
2への入力信号を表形式で示す図である。
【図17】図11のデータ訂正回路の構成を示す回路図
である。
【図18】図11のデータセレクタの構成を示す回路図
である。
【図19】セレクト信号SEの論理レベルと、ECCの
出力データとの関係を表形式で示す図である。
【図20】2を法とする加算を示す真理値表の図であ
る。
【図21】2を法とする乗算を示す真理値表の図であ
る。
【図22】ハミング行列の一般的な形を示す図である。
【符号の説明】
1 正規メモリセルアレイ 2 パリティメモリセルアレイ 3 Xデコーダ 4 Yデコーダ 5 アドレスバッファ 6 制御回路 7 Yゲート 8 センスアンプ群 9,11 ECC 10 出力バッファ 90,110 シンドローム信号発生器 91,111 訂正信号発生器 92,112 データ訂正回路 93,113 データセレクタ

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数のアドレスを含み、各アドレスに第
    1のグループの2(Nは自然数である)ビットのデー
    タと、第2のグループの2ビットのデータと、前記第
    1および第2のグループの2N+1ビットのデータに応
    じたN+2ビットのパリティデータとが格納されたメモ
    リセルアレイと、 アドレス信号に従って、前記メモリセルのうちのいずれ
    かのアドレスから前記第1および第2のグループの2
    N+1ビットのデータと前記N+2ビットのパリティデ
    ータとを読出す読出手段と、 前記読出手段によって読出された前記第1および第2の
    グループの2N+1ビットのデータと前記N+2ビット
    のパリティデータとに、所定のハミング行列に従った演
    算を施して、前記第1のグループの2ビットのデータ
    の誤りと前記第2のグループの2ビットのデータの誤
    りとを順次訂正する誤り訂正手段と、 前記誤り訂正手段によって訂正された前記第1または第
    2のグループの2ビットのデータを外部に出力する出
    力手段とを備え、 前記誤り訂正手段は、 前記読出手段によって前記メモリセルアレイから読出さ
    れた、前記第1および第2のグループの2N+1ビット
    のデータと前記N+2ビットのパリティデータとに基づ
    いて、N+2ビットのシンドローム信号を作成するシン
    ドローム信号作成手段と、 前記読出手段によって前記メモリセルアレイから読出さ
    れた前記第1のグループの2ビットのデータと前記第
    2のグループの2ビットのデータとを順次選択するグ
    ループ選択手段と、 前記シンドローム信号作成手段により作成されたN+2
    ビットのシンドローム信号に基づいて、前記グループ選
    択手段の選択動作に同期して、前記第1のグループの2
    ビットのデータのための2ビットの訂正信号と、前
    記第2のグループの2ビットのデータのための2
    ットの訂正信号とを順次作成する訂正信号作成手段と、 前記訂正信号作成手段によって作成された2ビットの
    訂正信号に基づいて、前記グループ選択手段によって選
    択された第1または第2のグループの2ビットのデー
    タの誤りを訂正する訂正手段とを備えた、半導体記憶装
    置。
  2. 【請求項2】 前記シンドローム信号作成手段は、各シ
    ンドローム信号の反転信号をさらに作成し、 前記訂正信号作成手段は、 前記N+2ビットのシンドローム信号およびN+2ビッ
    トの前記反転信号のうち、前記第1のグループの2
    ットのデータのために必要な信号、および前記第2のグ
    ループの2ビットのデータのために必要な信号を順次
    選択する信号選択手段と、 前記信号選択手段により選択された信号に応答して前記
    ビットの訂正信号を作成する作成手段とを含む、請
    求項1に記載の半導体記憶装置。
JP3151809A 1991-06-24 1991-06-24 半導体記憶装置 Expired - Fee Related JP2745252B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP3151809A JP2745252B2 (ja) 1991-06-24 1991-06-24 半導体記憶装置
US07/894,661 US5383205A (en) 1991-06-24 1992-06-05 Semiconductor memory device having an error correction circuit and an error correction method of data in a semiconductor memory device
DE4220196A DE4220196C2 (de) 1991-06-24 1992-06-19 Halbleiterspeichervorrichtung und Verfahren zum Korrigieren eines Datenfehlers in einer Halbleiterspeichervorrichtung entsprechend einer vorbestimmten Hamming-Matrix
KR1019920010893A KR950010311B1 (ko) 1991-06-24 1992-06-23 반도체 기억장치

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
JPH052898A JPH052898A (ja) 1993-01-08
JP2745252B2 true JP2745252B2 (ja) 1998-04-28

Family

ID=15526786

Family Applications (1)

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

Country Status (4)

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

Families Citing this family (19)

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

Family Cites Families (4)

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

Also Published As

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

Similar Documents

Publication Publication Date Title
JP2745252B2 (ja) 半導体記憶装置
JP2583547B2 (ja) 半導体メモリ
US5099484A (en) Multiple bit error detection and correction system employing a modified Reed-Solomon code incorporating address parity and catastrophic failure detection
US4335458A (en) Memory incorporating error detection and correction
JP4112849B2 (ja) 半導体記憶装置
JP2617455B2 (ja) 符号化装置
JP4621715B2 (ja) メモリ装置
EP0172734A2 (en) Semiconductor memory device
US7996745B2 (en) ECC for single 4-bits symbol correction of 32 symbols words with 21 maximum row weight matrix
US5668976A (en) Error correction method and apparatus for disk drive emulator
JPH11312396A (ja) マルチビット半導体メモリ装置及びその装置の誤り訂正方法
JP2013070122A (ja) 誤り訂正装置、誤り訂正方法及び演算装置
JPH045214B2 (ja)
EP0793174B1 (en) Error detection and correction method and apparatus for computer memory
EP0077204A2 (en) Error-correcting memory with low storage overhead and fast correction mechanism
US4689792A (en) Self test semiconductor memory with error correction capability
JPS6116351A (ja) システムメモリ用単一誤り訂正回路
JPH0697559B2 (ja) 半導体記憶装置
US20020188909A1 (en) Symbol level error correction codes which protect against memory chip and bus line failures
CN1164941A (zh) Crc/edc校验器***
US11650877B2 (en) Detecting address errors
US4868829A (en) Apparatus useful for correction of single bit errors in the transmission of data
Lee et al. MVP ECC: Manufacturing process variation aware unequal protection ECC for memory reliability
JP2622957B2 (ja) Bch符号の符号化及び復号化方法
SU809396A1 (ru) Устройство дл контрол блокапОСТО ННОй пАМ Ти

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19970617

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19980106

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080213

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090213

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090213

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100213

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees