(57)【特許請求の範囲】
【請求項１】
複数のビットからなるデータに基づいて、複数のビットからなるＥＣＣコードを生成するためのＥＣＣコード生成手段と、
上記データの各ビットを記憶するためのデータ記憶手段と、
上記ＥＣＣコードの各ビットを記憶するためのＥＣＣコード記憶手段と、
上記データ記憶手段のデータと上記ＥＣＣコード記憶手段のＥＣＣコードとに基づいて誤り訂正のためのシンドロームを演算処理し、上記データの各ビットの誤りを訂正する機能を有する復号手段と、
検査モード時に、上記ＥＣＣコード生成手段に与えるデータの各ビットの値を任意に変更させるデータ入力制御手段とを備え、
上記復号手段は、検査モード時には検査用の任意のシンドロームを生成する機能を有することを特徴とするＥＣＣ回路搭載半導体記憶装置。
【請求項２】
複数のビットからなるデータに基づいて、複数のビットからなるＥＣＣコードを生成するためのＥＣＣコード生成手段と、
上記データの各ビットを記憶するためのデータ記憶手段と、
上記ＥＣＣコードの各ビットを記憶するためのＥＣＣコード記憶手段と、
上記データ記憶手段のデータと上記ＥＣＣコード記憶手段のＥＣＣコードとに基づいて誤り訂正のためのシンドロームを演算処理し、上記データの各ビットの誤りを訂正する機能を有する復号手段と、
検査モード時に、上記ＥＣＣコード生成手段に与えるデータの各ビットの値を変更させるデータ入力制御手段とを備え、
上記復号手段は、検査モード時には、対応して訂正するデータビットが存在しないパターンであって、そのパターンのうちいずれか１つのビットが反転しても対応して訂正すべきデータビットが存在するシンドロームパターンを生成する機能を有することを特徴とするＥＣＣ回路搭載半導体記憶装置。
【請求項３】
複数のビットからなるデータに基づいて、複数のビットからなるＥＣＣコードを生成するためのＥＣＣコード生成手段と、上記データの各ビットを記憶するためのデータ記憶手段と、上記ＥＣＣコードの各ビットを記憶するためのＥＣＣコード記憶手段と、上記データ記憶手段のデータと上記ＥＣＣコード記憶手段のＥＣＣコードとに基づいて誤り訂正のためのシンドロームを演算処理し、上記データの各ビットの誤りを訂正する機能を有する復号手段とを備えたＥＣＣ回路搭載半導体記憶装置の検査方法であって、
任意の２ビットにおいて（０  ０），（０  １），（１  ０），（１  １）の４通りのパターンが含まれるメモリ検査用データとメモリ検査用ＥＣＣコードとを生成することを特徴とするＥＣＣ回路搭載半導体記憶装置の検査方法。
【請求項４】
複数のビットからなるデータに基づいて、複数のビットからなるＥＣＣコードを生成するためのＥＣＣコード生成手段と、上記データの各ビットを記憶するためのデータ記憶手段と、上記ＥＣＣコードの各ビットを記憶するためのＥＣＣコード記憶手段と、上記データ記憶手段のデータと上記ＥＣＣコード記憶手段のＥＣＣコードとに基づいて誤り訂正のためのシンドロームを演算処理し、上記データの各ビットの誤りを訂正する機能を有する復号手段とを備えたＥＣＣ回路搭載半導体記憶装置の検査方法であって、
データから上記ＥＣＣコードとは異なるパターンを有する検査用ＥＣＣコードを生成し、検査用の任意のシンドロームを生成することを特徴とするＥＣＣ回路搭載半導体記憶装置の検査方法。
【請求項５】
複数のビットからなるデータに基づいて、複数のビットからなるＥＣＣコードを生成するためのＥＣＣコード生成手段と、上記データの各ビットを記憶するためのデータ記憶手段と、上記ＥＣＣコードの各ビットを記憶するためのＥＣＣコード記憶手段と、上記データ記憶手段のデータと上記ＥＣＣコード記憶手段のＥＣＣコードとに基づいて誤り訂正のためのシンドロームを演算処理し、上記データの各ビットの誤りを訂正する機能を有する復号手段とを備えたＥＣＣ回路搭載半導体記憶装置の検査方法であって、
検査モード時には、対応して訂正するデータビットが存在しないパターンであって、そのパターンのうちいずれか１つのビットが反転しても対応して訂正すべきデータビットが存在するシンドロームパターンを生成することを特徴とするＥＣＣ回路搭載半導体記憶装置の検査方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、誤り訂正符号回路（ＥＣＣ回路）を内蔵した半導体記憶装置に関するものである。
【０００２】
【従来の技術】
近年の半導体記憶装置の記憶容量の増加に伴い、内蔵されている記憶素子中のいずれかが故障する確率や、誤書き込み，誤読み出しなどの確率も高まってくる。そのため、電気信号からデータの誤りを検知してさらにこれを訂正する機能を有するＥＣＣ回路搭載半導体記憶装置が提案されている。
【０００３】
このＥＣＣ回路とは、符号（コード）理論に基づいて設計された誤り訂正機能を有する回路である。符号化による誤りの訂正は、本来伝達すべき情報に余分なもの（冗長性）を一定の規則に従って付加して送り、それらを受けた方では、受けた情報がこの規則に従っているかどうかを調べ、その結果によって誤りを検出・訂正するという順序で行なわれる。そのために、ＥＣＣ回路搭載半導体記憶装置においては、ディジタル情報に対し、より組織的に機械で処理しやすい形で冗長性を付加し、信頼性の向上を図っている。
【０００４】
ここで、従来例として、特開平５−５４６９７号公報に開示されているＥＣＣ回路搭載半導体記憶装置の構成および動作について、図１０及び図１１を参照しながら説明する。
【０００５】
図１０は上記公報に係る発明の背景となっている従来のＥＣＣ回路搭載半導体記憶装置（“第１の従来例”とする）の構成を概略的に示すブロック図である。図１０に示すように、ＥＣＣ回路搭載メモリブロック１０１は、データ記憶領域１０２と、ＥＣＣコード記憶領域１０３と、ＥＣＣコード生成器１０４と、復号器１０５と、Ｉ／Ｏコントロール回路１０６とによって構成されている。
【０００６】
Ｉ／Ｏコントロール回路１０６は、ＥＣＣ回路搭載メモリブロック１０１の外部に配置されるデバイスから入出力データ線１１２を経て入力されるデータを、入力データ線１０７を経由してデータ記憶領域１０２とＥＣＣコード生成器１０４とに送られる。ＥＣＣコード生成器１０４は、入力データ線１０７からの入力データ信号を受けて、このデータに対応するＥＣＣコードを生成し、このＥＣＣコードを書き込みＥＣＣコード線１０８を介してＥＣＣコード記憶領域１０３に入力する。復号器１０５は、データ記憶領域１０２から読み出されたデータを読み出しデータ線１０９を介して取り込むとともに、ＥＣＣコード記憶領域１０３から読み出されたＥＣＣコードを読み出しＥＣＣコード線１１０を介して取り込んで、データに誤りがなければそのデータを、データに誤りがあれば誤りの訂正を行ったデータを出力データ線１１１からＩ／Ｏコントロール回路１０６に送る。そして、Ｉ／Ｏコントロール回路１０６は、復号器１０５から出力されたデータを、そのまま入出力データ線１１２を介してＥＣＣ回路搭載メモリブロック１０１の外部のデバイスに出力する。
【０００７】
以下、ＥＣＣ回路搭載メモリブロック１０１にデータを書き込む動作と、ＥＣＣ回路搭載メモリブロック１０１からデータを読み出す動作とについて、より詳細に、８ビットのデータと４ビットのＥＣＣコードとによって１ワードが構成される場合を例にとって説明する。
【０００８】
まず、ＥＣＣ回路搭載メモリブロック１０１にデータを書き込む時は、Ｉ／Ｏコントロール回路１０６によって、ＥＣＣ回路搭載メモリブロック１０１の外部のデバイスからデータ入出力線１１２を経て入力される８ビットのデータ
（Ｄ０，Ｄ１，Ｄ２，Ｄ３，Ｄ４，Ｄ５，Ｄ６，Ｄ７）
を取り込む。そして、この取り込まれた８ビットのデータが、Ｉ／Ｏコントロール回路１０６により、入力データ線１０７を経てデータ記憶領域１０２に書き込まれるとともに、ＥＣＣコード生成器１０４にも入力される。
【０００９】
次に、ＥＣＣコード生成器１０４において、入力された８ビットのデータに対応する４ビットのＥＣＣコード
（Ｃ０，Ｃ１，Ｃ２，Ｃ３）
が生成され、このＥＣＣコードがＥＣＣコード線１０８を経てＥＣＣコード記憶領域１０３に書き込まれる。このとき、上記公報に記載されている方法によると、ＥＣＣコード（Ｃ０，Ｃ１，Ｃ２，Ｃ３）の各要素は、下記式（１）
Ｃ０＝Ｄ０＋Ｄ１＋Ｄ３＋Ｄ４＋Ｄ６
Ｃ１＝Ｄ０＋Ｄ２＋Ｄ３＋Ｄ５＋Ｄ６
Ｃ２＝Ｄ１＋Ｄ２＋Ｄ３＋Ｄ７
Ｃ３＝Ｄ４＋Ｄ５＋Ｄ６＋Ｄ７                                （１）
に基づいて生成される。ただし、上記式（１）及び以下の説明において、記号＋は排他的論理和を表すものとする。
【００１０】
次に、ＥＣＣ回路搭載メモリブロック１０１からデータを読み出すときは、復号器１０５に、データ記憶領域１０２から読み出される８ビットのデータ
（Ｄ０’，Ｄ１’，Ｄ２’，Ｄ３’，Ｄ４’，Ｄ５’，Ｄ６’，Ｄ７’）
を読み出しデータ線１０９を通じて取り込むとともに、ＥＣＣコード記憶領域１０３から読み出される４ビットのＥＣＣデータ
（Ｃ０’，Ｃ１’，Ｃ２’，Ｃ３’）
を読み出しＥＣＣコード線１１０を介して取り込む。そして、復号器１０５は、４ビットのシンドローム
（Ｓ０，Ｓ１，Ｓ２，Ｓ３）
を、下記式
Ｓ０＝Ｃ０’＋Ｄ０’＋Ｄ１’＋Ｄ３’＋Ｄ４’＋Ｄ６’
Ｓ１＝Ｃ１’＋Ｄ０’＋Ｄ２’＋Ｄ３’＋Ｄ５’＋Ｄ６’
Ｓ２＝Ｃ２’＋Ｄ１’＋Ｄ２’＋Ｄ３’＋Ｄ７’
Ｓ３＝Ｃ３’＋Ｄ４’＋Ｄ５’＋Ｄ６’＋Ｄ７’
に基づいて生成する。
【００１１】
復号器１０５は、読み出された８ビットのデータの中の１ビットまでの誤りを訂正するために、シンドロームのビット列に対応するデータ
（Ｄ０’，Ｄ１’，Ｄ２’，Ｄ３’，Ｄ４’，Ｄ５’，Ｄ６’，Ｄ７’）
中の誤りと判定されたビットのデータを反転処理した後に、出力データ線１１１に出力する。
【００１２】
このとき、シンドロームのビット列に対応するデータ（検査行列Ｈ）は、下記式（２）
【００１３】
【数１】
0003871471.tif 000002
【００１４】
で示される。このとき、ｓ＝（Ｓ０，Ｓ１，Ｓ２，Ｓ３）としたとき、シンドロームｓは、下記式
ｓ＝（Ｄ０’，Ｄ１’…，Ｄ７’，Ｃ０’，…，Ｃ３’）ＨＴ
で表される。ここで、シンドロームｓはデータ自体の情報を含まず誤りビットの情報だけを含んでいることが、ベクトル計算から確認できる。
【００１５】
図１２は、上記式（２）の有する意味を分かりやすくするために作成されたもので、誤りビットとシンドロームとの関係を示す図である。
【００１６】
たとえば、Ｓ０＝１，Ｓ１＝１，Ｓ２＝１，Ｓ３＝０という結果が得られたときには、ビットＤ３’のデータが誤りであることがわかるので、このビットのデータを訂正するのである。一方、ＳＯ＝Ｓ１＝Ｓ２＝Ｓ３＝０の時には、データに誤りがないことになり、どのビットのデータも反転しない。
【００１７】
このように誤りの訂正処理がされた８ビットのデータは、出力データ線１１１に出力され、Ｉ／Ｏコントロール回路１０６から入出力データ線１１２を介してＥＣＣ回路搭載メモリブロック１０１の外部に出力される。
【００１８】
以上の手順により、ＥＣＣ回路メモリブロック１０１へのデータの書き込みと、ＥＣＣ回路メモリブロック１０１からのデータの読み出しとが行なわれる。
【００１９】
次に、第２の従来例のＥＣＣ回路を搭載した半導体記憶装置の構成および動作について説明する。図１１は、上記公報に記載されている公報に係る発明の構成を概略的に示すブロック図である。
【００２０】
これは、図１０に示すＥＣＣ回路だけでは、一定の定められた誤り訂正処理以外の処理を行なうのに不便であることから、半導体記憶装置の特性等を考慮した各種の誤り訂正処理を行なうための改善を施したものである。
【００２１】
図１１に示すように、第２の従来例の半導体記憶装置は、図１０に示す半導体記憶装置の構成に加えて、ＥＣＣコードＩ／Ｏコントロール回路１１３を設けたものである。
【００２２】
図１１に示す回路において、通常の動作時には、テストモード信号１１７が”０”に設定される。これにより、ＥＣＣ回路搭載メモリブロック１０１へのデータの書き込み・読み出し動作は、すでに説明した第１の従来例の動作と同様の動作によって行なわれる。
【００２３】
次に、テストモード時の動作について説明する。テストモード信号１１７が”１”に設定されると、テストモード信号１１７によって、セレクタゲート１１４〜１１６が制御される。これによって、データ記憶領域１０２には、Ｉ／Ｏコントロール回路１０６から入力データ線１０７を介してデータが書き込まれる。また、データ記憶領域１０２から読み出されたデータは、読み出しデータ線１０９とセレクタゲート１１４を経由してＩ／Ｏコントロール回路１０６に出力される。このとき、書き込み・読み出しの動作にＥＣＣコード生成器１０４や復号器１０５が関与しないので、データ記憶領域１０２に対するデータの書き込み・読み出しをＥＣＣコード生成器１０４や復号器１０５を経由することなくいわば直接に行なうことができる。
【００２４】
一方、ＥＣＣコード記憶領域１０３には、ＥＣＣ回路搭載メモリブロック１０１の外部のデバイスにより、ＥＣＣデータ（Ｃ０，Ｃ１，Ｃ２，Ｃ３）がＥＣＣコードＩ／Ｏコントロール回路１１３とセレクタゲート１１５とを経由して書き込まれる。また、ＥＣＣコード記憶領域１０３から読み出されたデータは、セレクタゲート１１６とＥＣＣコードＩ／Ｏコントロール回路１１３とを経由してＥＣＣ回路搭載メモリブロック１０１の外部のデバイスに出力される。このように、ＥＣＣコード記憶領域１０３に対するデータの書き込み・読み出しを直接行なうことができる。
【００２５】
上記第２の従来例に係るＥＣＣ回路搭載半導体記憶装置においては、以上のようにして、たとえばチェッカーパターンの検査用データを用いてデータ記憶領域１０２とＥＣＣコード記憶領域１０３とのメモリセルの検査を行い、２ビット以上の誤りを訂正して良品・不良品の判別を行うように改善されている。
【００２６】
【発明が解決しようとする課題】
しかるに、上記第１，第２の従来例においては、それぞれ以下のような不具合があった。
【００２７】
第１の従来例においては、データ記憶領域とＥＣＣコード記憶領域とで異なる検査パターン（たとえばチェッカーパターン）を用いて検査しなければならない場合に、テストを迅速に行なうことができない。
【００２８】
一方、第２の従来例においては、検査パターンを多様に変化させることが可能になるが、反面、半導体記憶装置全体の占有面積が増大し、半導体記憶装置を搭載した電子機器の小型化の要請に十分応えることができない。
【００２９】
さらに、図１０，図１１に示される構成において、復号器１０５の誤りを訂正する動作の検査は行う手段がなく、１ビット誤りが発生したときでも正しく訂正されない可能性がある，つまり、従来の検査方法によってはＥＣＣ回路搭載半導体記憶装置の信頼性を十分確保することができないという不具合があった。
【００３０】
本発明の目的は、ＥＣＣ回路自体の構成の簡略化を図りつつ、搭載される電子機器の小型化に適した機能の高いＥＣＣ回路搭載半導体記憶装置を提供することや、ＥＣＣ回路搭載半導体記憶装置の信頼性の向上を図るための検査方法を提供することにある。
【００３１】
【課題を解決するための手段】
本発明の第１のＥＣＣ回路搭載半導体記憶装置は、複数のビットからなるデータに基づいて、複数のビットからなるＥＣＣコードを生成するためのＥＣＣコード生成手段と、上記データの各ビットを記憶するためのデータ記憶手段と、上記ＥＣＣコードの各ビットを記憶するためのＥＣＣコード記憶手段と、上記データ記憶手段のデータと上記ＥＣＣコード記憶手段のＥＣＣコードとに基づいて誤り訂正のためのシンドロームを演算処理し、上記データの各ビットの誤りを訂正する機能を有する復号手段と、検査モード時に、上記ＥＣＣコード生成手段に与えるデータの各ビットの値を任意に変更させるデータ入力制御手段とを備え、上記復号手段は、検査モード時には検査用の任意のシンドロームを生成する機能を有している。
【００３２】
これにより、復号手段の不良を検出することが可能になり、より信頼性の高いＥＣＣ回路搭載半導体記憶装置が得られる。
【００３３】
本発明の第２のＥＣＣ回路搭載半導体記憶装置は、複数のビットからなるデータに基づいて、複数のビットからなるＥＣＣコードを生成するためのＥＣＣコード生成手段と、上記データの各ビットを記憶するためのデータ記憶手段と、上記ＥＣＣコードの各ビットを記憶するためのＥＣＣコード記憶手段と、上記データ記憶手段のデータと上記ＥＣＣコード記憶手段のＥＣＣコードとに基づいて誤り訂正のためのシンドロームを演算処理し、上記データの各ビットの誤りを訂正する機能を有する復号手段と、検査モード時に、上記ＥＣＣコード生成手段に与えるデータの各ビットの値を変更させるデータ入力制御手段とを備え、上記復号手段は、検査モード時には、対応して訂正するデータビットが存在しないパターンであって、そのパターンのうちいずれか１つのビットが反転しても対応して訂正すべきデータビットが存在するシンドロームパターンを生成する機能を有している。
【００３４】
これにより、ＥＣＣコード記憶手段の不良を検出することができる。
【００３５】
本発明の第１のＥＣＣ回路搭載半導体記憶装置の検査方法は、複数のビットからなるデータに基づいて、複数のビットからなるＥＣＣコードを生成するためのＥＣＣコード生成手段と、上記データの各ビットを記憶するためのデータ記憶手段と、上記ＥＣＣコードの各ビットを記憶するためのＥＣＣコード記憶手段と、上記データ記憶手段のデータと上記ＥＣＣコード記憶手段のＥＣＣコードとに基づいて誤り訂正のためのシンドロームを演算処理し、上記データの各ビットの誤りを訂正する機能を有する復号手段とを備えたＥＣＣ回路搭載半導体記憶装置の検査方法であって、任意の２ビットにおいて（０  ０），（０  １），（１  ０），（１  １）の４通りのパターンが含まれるメモリ検査用データとメモリ検査用ＥＣＣコードとを生成する方法である。
【００３６】
この方法により、ワードに含まれる２ビット以上の不良を検出することが可能になる。
【００３７】
本発明の第２のＥＣＣ回路搭載半導体記憶装置の検査方法は、複数のビットからなるデータに基づいて、複数のビットからなるＥＣＣコードを生成するためのＥＣＣコード生成手段と、上記データの各ビットを記憶するためのデータ記憶手段と、上記ＥＣＣコードの各ビットを記憶するためのＥＣＣコード記憶手段と、上記データ記憶手段のデータと上記ＥＣＣコード記憶手段のＥＣＣコードとに基づいて誤り訂正のためのシンドロームを演算処理し、上記データの各ビットの誤りを訂正する機能を有する復号手段とを備えたＥＣＣ回路搭載半導体記憶装置の検査方法であって、データから上記ＥＣＣコードとは異なるパターンを有する検査用ＥＣＣコードを生成し、検査用の任意のシンドロームを生成する方法である。
【００３８】
この方法により、復号手段の不良を検出できる検査方法を提供することができる。
【００３９】
本発明の第３のＥＣＣ回路搭載半導体記憶装置の検査方法は、複数のビットからなるデータに基づいて、複数のビットからなるＥＣＣコードを生成するためのＥＣＣコード生成手段と、上記データの各ビットを記憶するためのデータ記憶手段と、上記ＥＣＣコードの各ビットを記憶するためのＥＣＣコード記憶手段と、上記データ記憶手段のデータと上記ＥＣＣコード記憶手段のＥＣＣコードとに基づいて誤り訂正のためのシンドロームを演算処理し、上記データの各ビットの誤りを訂正する機能を有する復号手段とを備えたＥＣＣ回路搭載半導体記憶装置の検査方法であって、検査モード時には、対応して訂正するデータビットが存在しないパターンであって、そのパターンのうちいずれか１つのビットが反転しても対応して訂正すべきデータビットが存在するシンドロームパターンを生成する方法である。
【００４０】
この方法により、ＥＣＣコード記憶手段の不良を検出できる検査方法を提供することができる。
【００４１】
【発明の実施の形態】
（第１の実施形態）
図１は、第１の実施形態におけるＥＣＣ回路搭載半導体記憶装置の構成を概略的に示すブロック図である。図１に示すように、半導体記憶装置には、多数のメモリセルをマトリクス状に配置したメモリセルアレイ５が設けられており、このメモリセルアレイ５は複数個のメモリブロック９に分割されていて、各メモリブロック９ごとに、図４に示されるようなデータ記憶領域９ａとＥＣＣコード記憶領域９ｂとが設けられている。そして、メモリセルアレイ５の周辺には、列を選択するためのカラムデコーダ４と、行を選択するためのロウデコーダ（図示せず）とが配置されている。そして、カラムデコーダ４はビット線群６により、ロウデコーダはワード線群（図示せず）により、それぞれメモリセルアレイ５と接続されている。なお、ロウデコーダに付設されている回路は、本願発明の特徴部分とは関連性がないために、図１において記載を省略している。
【００４２】
周辺回路においては、主要な要素として、ＥＣＣ回路搭載半導体記憶装置の外部のデバイスからデータを書き込む際におけるデータの入力制御を行なうための入力制御回路１と、データの伝達を行なうための８ビットのデータバス２と、ＥＣＣコードを伝達するための４ビットのＥＣＣコードバス３と、メモリセルアレイ５に書き込みするデータからＥＣＣコードを生成するとともに、メモリセルアレイ５から読み出したデータ・ＥＣＣコードからシンドロームを生成してデータの誤りを訂正する機能を備えたＥＣＣ回路７と、ＥＣＣ回路７から出力されるデータをＥＣＣ回路搭載半導体記憶装置の外部のデバイスに出力するための制御を行う出力制御回路８とが設けられている。
【００４３】
以下、以上のように構成されたＥＣＣ回路搭載半導体記憶装置の書き込み・読み出し動作について説明する。
【００４４】
まず、データをＥＣＣ回路搭載半導体記憶装置に書き込むときは、ＥＣＣ回路搭載半導体記憶装置の外部のデバイスから８ビットのデータ
（Ｄ０，Ｄ１，Ｄ２，Ｄ３，Ｄ４，Ｄ５，Ｄ６，Ｄ７）
が入力制御回路１に入力される。そして、入力制御回路１に入力された８ビットのデータは、データバス２からメモリセルアレイ５に送られてデータ記憶領域９ａに格納されるとともに、ＥＣＣ回路７に取り込まれる。ＥＣＣ回路７は、データバス２から取り込んだ８ビットのデータを元に、４ビットのＥＣＣコード
（Ｃ０，Ｃ１，Ｃ２，Ｃ３）
を生成する。このＥＣＣコードは、ＥＣＣコードバス３からカラムデコーダ４を経由してメモリセルアレイ５に送られてＥＣＣコード記憶領域９ｂに格納される。ここで、データ及びＥＣＣコードは、ビット線群６の中のある１ワード（＝データ８ビット＋ＥＣＣコード４ビット；以下１ワードと記述）のデータに対応するビット線に出力され、メモリセルアレイ５へと書き込まれる。
【００４５】
次に、データをＥＣＣ回路搭載半導体記憶装置からデータを読み出すときは、メモリセルアレイ５から読み出される１ワードのデータが、カラムデコーダ４によって選択されたビット線群６の中のビット線を経由してデータバス２及びＥＣＣバス３に読み出される。そして、データバス２を経由した８ビットのデータと、ＥＣＣコードバス３を経由した４ビットのＥＣＣコードとがＥＣＣ回路７に取り込まれる。ＥＣＣ回路７は、８ビットのデータと４ビットのＥＣＣコードとに基づいて、４ビットのシンドローム
（Ｓ０，Ｓ１，Ｓ２，Ｓ３）
を生成する。そして、このシンドロームに基づいて、図１２に示すような誤りビットとシンドロームとの関係を参照して、データに訂正すべき誤りがあるとこれを訂正し、誤りがなければそのままにしておくという誤りの訂正処理を行なった後に、８ビットのデータを出力制御回路８へ出力する。出力制御回路８は、ＥＣＣ回路７から入力される８ビットのデータをＥＣＣ回路搭載半導体記憶装置の外部のデバイスに出力し、これによって、データの読み出しが完了する。
【００４６】
図２は、図１のＥＣＣ回路７の内部構成を示す回路図である。図２に示すように、ＥＣＣ回路７内には、ＥＣＣコード・シンドローム生成回路１６と、データ訂正回路１７とが配設されており、ＥＣＣ回路７の各バス２，３との接続部分には、データバス２からＥＣＣ回路７へのデータの入力を制御するデータバス入力制御回路１０と、ＥＣＣコードバス３からＥＣＣ回路７へのＥＣＣコードの入力を制御するＥＣＣコードバス入力制御回路１１と、ＥＣＣコードバス３からＥＣＣ回路７へのＥＣＣコードの出力を制御するＥＣＣコードバス出力制御回路１２とが設けられている。ＥＣＣコード・シンドローム生成回路１６は、排他的論理和ゲート１３とインバータゲート１４とを組み合わせて構成されている。また、データ訂正回路１７は、論理積ゲート１５と排他的論理和ゲート１３とを組み合わせて構成されている。
【００４７】
図３は、ＥＣＣコードバス入力制御回路１１の構成を概略的に示す回路図である。同図に示すように、ＥＣＣコードバス入力制御回路１１は、テスト信号ＴＥＳＴを反転するためのインバータ１４と、ＥＣＣコードをＥＣＣ回路７内に伝えるＮチャネル型ＭＯＳトランジスタ及びＰチャネル型ＭＯＳトランジスタからなるＣＭＯＳトランスファゲート１８と、必要に応じてＥＣＣ回路７内に送る信号を“Ｌ”に固定するためのＮチャネル型ＭＯＳトランジスタ１９とにより構成されている。そして、テスト信号ＴＥＳＴが“Ｌ”のときには、ＣＭＯＳトランスファゲート１８によってＥＣＣコード（ＣＯ，Ｃ１，Ｃ２，Ｃ３）がＥＣＣ回路７内に送られる一方、テスト信号ＴＥＳＴが“Ｈ”のときにはＥＣＣコード（ＣＯ，Ｃ１，Ｃ２，Ｃ３）のＥＣＣ回路７内への入力が阻止され、かつ、Ｎチャネル型ＭＯＳトランジスタ１９によってＥＣＣ回路７内に送られる信号が“Ｌ”に固定される。
【００４８】
−具体的な回路構成−
本実施形態のＥＣＣ回路搭載半導体記憶装置によると、図１，図２及び図３に示すように、図１０及び図１１に示す第１，第２の従来例の半導体記憶装置に比べて、従来別に設けられていたＥＣＣコード生成器１０４に相当する部分がＥＣＣ回路７に組み込まれ、ＥＣＣ回路７によってＥＣＣ生成器１０４と復号器１０５との機能を併せて果たすように構成されていることで、装置自体の小型化が図られている。具体的には、図１０及び図１１に示す構成におけるＥＣＣコード生成器１０４には、本実施形態のＥＣＣ回路７内のＥＣＣコード・シンドローム生成回路１６内の１６個の排他的論理和ゲートのうち１２個の排他的論理和ゲートとインバータとが必要である（図中の波線によって囲まれる部分）。ただし、従来のＥＣＣ回路搭載半導体記憶装置においては、本実施形態のごときＥＣＣコードバス入力制御回路１１は不要である。その他の部分は、本実施形態と上記各従来例とでは、回路構成はほとんど変わらない。従って、排他的論理和ゲートが少なくとも６個のトランジスタによって構成され、インバータが２つのトランジスタによって構成されていることを考慮すると、本実施形態のＥＣＣ回路搭載半導体記憶装置により、従来のＥＣＣ回路搭載半導体記憶装置に比べて、トランジスタの数が低減されていることがわかる。よって、本実施形態のＥＣＣ回路搭載半導体記憶装置により、装置全体の小型化を図ることができる。
【００４９】
−演算方法−
次に、以上のように構成されたＥＣＣ回路７のＥＣＣコード生成・シンドローム生成・データ訂正動作を示す演算と、これに対応する回路動作とについて説明する。
【００５０】
まず、演算方法は、８ビットのデータビットから４ビットのＥＣＣコードを生成する式として、下記式（３）
Ｃ０＝Ｄ０＋Ｄ１＋Ｄ２            ＋Ｄ５＋Ｄ６
Ｃ１＝      Ｄ１＋Ｄ２＋Ｄ３＋Ｄ４＋Ｄ５
Ｃ２＝Ｄ０      ＋Ｄ２＋Ｄ３＋Ｄ４            ＋Ｄ７
Ｃ３＝Ｄ０＋Ｄ１      ＋Ｄ３            ＋Ｄ６＋Ｄ７        （３）
を使用する。
【００５１】
上記式（３）から、本実施形態のＥＣＣ回路搭載半導体記憶装置が以下のような２つの特徴を有していることが導かれる。
【００５２】
第１に、それぞれのＥＣＣコード中の各ビットＣＯ，Ｃ１，Ｃ２，Ｃ３の演算のために割り当てられているデータのビットの数が同じである。式（３）においては、各ＥＣＣコードの各ビットには、いずれも５ビットのデータが割り当てられている。たとえば、ＥＣＣコードの１つのビットＣ０には、５ビットのデータＤ０，Ｄ１，Ｄ２，Ｄ５，Ｄ６が割り当てられている。その結果、回路で演算を実現するときのゲート数が全てのＥＣＣコード中の各ビットごとに等しくなり、回路遅延のばらつきを生じない。それに対し、従来の式（１）で示されるＥＣＣコードを使用した場合には、ＥＣＣコード中の１つのビットＣ０には５つのデータビットが割り当てられ、ＥＣＣコード中の他のビットＣ３には４つのデータビットが割り当てられるので、回路遅延にばらつきを生じるおそれがあった。
【００５３】
第２に、８ビットのデータビットのパターンと同じ種類のパターンが４ビットのＥＣＣコードパターンとして生成される。たとえば、データとしてチェッカーパターンを書き込む場合、
（Ｄ０，Ｄ１，Ｄ２，Ｄ３，Ｄ４，Ｄ５，Ｄ６，Ｄ７）
＝（０，１，０，１，０，１，０，１）
とすると、ＥＣＣコードは、
（Ｃ０，Ｃ１，Ｃ２，Ｃ３）＝（０，１，０，１）
となり、ＥＣＣコードもチェッカーパターンになる。また、ストライプパターンを生成するためには、「ＡＬＬ０パターン」と「ＡＬＬ１パターン」とを生成する必要があるが、データビットが全て”１”の時ＥＣＣコードも全て”１”になる。
【００５４】
それに対し、式（１）で表される従来のＥＣＣコードを用いた場合、
（Ｄ０，Ｄ１，Ｄ２，Ｄ３，Ｄ４，Ｄ５，Ｄ６，Ｄ７）
＝（０，１，０，１，０，１，０，１）
とすると、ＥＣＣコードは、
（Ｃ０，Ｃ１，Ｃ２，Ｃ３）＝（０，０，０，１）
となり、ＥＣＣコードはチェッカーパターンとはならない。また、データビットが全て”１”の時、ＥＣＣコードは全て”１”にはならない。
【００５５】
以上のようなチェッカーパターンやストライプパターンは、メモリセルの検査において物理的に隣接しているメモリセル（ビットに対応する）間の干渉等の不良を検出するために有効な検査パターンである。ところが、従来のＥＣＣ回路搭載半導体記憶装置においては、チェッカーパターンやストライプパターンを用いた検査を行なうために、専用の検査パターンを用いる必要があることになる。それに対し、本実施形態のＥＣＣ回路搭載半導体記憶装置によると、データパターンと同じ種類のＥＣＣコードパターンが生成されるので、各種の検査パターンを別途準備していなくても、データパターンを用いて各種検査に適合したＥＣＣコードを生成できる。従って、準備しておく必要のある検査パターン数を低減することができる。
【００５６】
次に、上記式（３）は
Ｃ０＝              （Ｄ１＋Ｄ６）＋（Ｄ２＋Ｄ５）              ＋Ｄ０
Ｃ１＝                            （Ｄ２＋Ｄ５）＋（Ｄ３＋Ｄ４）＋Ｄ１
Ｃ２＝（Ｄ０＋Ｄ７）                            ＋（Ｄ３＋Ｄ４）＋Ｄ２
Ｃ３＝（Ｄ０＋Ｄ７）＋（Ｄ１＋Ｄ６）                            ＋Ｄ３
のように書き換えることができる。このように書き換えても、各ＥＣＣコードの各ビットは式（３）の値と等価であることは容易に理解できる。すなわち、上記括弧でくくった演算結果を共用することができる。たとえば、（Ｄ０＋Ｄ７）の値は、ＥＣＣコード中のビットＣ２とＣ３との演算に使用できる。従って、動作速度の向上を図ることができる。
【００５７】
一方、ＥＣＣコードの生成式である式（３）に対応するシンドロームの生成式は、下記式（４）
Ｓ０＝Ｃ０＋Ｄ０＋Ｄ１＋Ｄ２            ＋Ｄ５＋Ｄ６
Ｓ１＝Ｃ１＋      Ｄ１＋Ｄ２＋Ｄ３＋Ｄ４＋Ｄ５
Ｓ２＝Ｃ２＋Ｄ０      ＋Ｄ２＋Ｄ３＋Ｄ４            ＋Ｄ７
Ｓ３＝Ｃ３＋Ｄ０＋Ｄ１      ＋Ｄ３            ＋Ｄ６＋Ｄ７    （４）
で表される。また、上記式（４）は、
Ｓ０＝（Ｄ１＋Ｄ６）＋（Ｄ２＋Ｄ５）                ＋（Ｄ０＋Ｃ０）
Ｓ１＝                （Ｄ２＋Ｄ５）＋（Ｄ３＋Ｄ４）＋（Ｄ１＋Ｃ１）
Ｓ２＝（Ｄ０＋Ｄ７）                ＋（Ｄ３＋Ｄ４）＋（Ｄ２＋Ｃ２）
Ｓ３＝（Ｄ０＋Ｄ７）＋（Ｄ１＋Ｄ６）                ＋（Ｄ３＋Ｃ３）
のように書き換えることができる。式（３）と式（４）とを比較すると、共通部分が多いことがわかる。したがって、ＥＣＣコードの生成と、シンドロームの生成とにおいても、回路を共用することができ、動作速度の向上を図ることができる。
【００５８】
また、シンドロームの生成の結果、誤りが発見されたときに行なわれるデータの訂正は、下記式（５）
（  Ｓ０・／Ｓ１・  Ｓ２・  Ｓ３）＋Ｄ０→Ｄ０
（  Ｓ０・  Ｓ１・／Ｓ２・  Ｓ３）＋Ｄ１→Ｄ１
（  Ｓ０・  Ｓ１・  Ｓ２・／Ｓ３）＋Ｄ２→Ｄ２
（／Ｓ０・  Ｓ１・  Ｓ２・  Ｓ３）＋Ｄ３→Ｄ３
（／Ｓ０・  Ｓ１・  Ｓ２・／Ｓ３）＋Ｄ４→Ｄ４
（  Ｓ０・  Ｓ１・／Ｓ２・／Ｓ３）＋Ｄ５→Ｄ５
（  Ｓ０・／Ｓ１・／Ｓ２・  Ｓ３）＋Ｄ６→Ｄ６
（／Ｓ０・／Ｓ１・  Ｓ２・  Ｓ３）＋Ｄ７→Ｄ７              （５）
に従って行われる。ただし、式（５）において、“・”は論理積を表し、“／”はデータの反転を表す。たとえば、“／Ｓ０”は、Ｓ０が”０”の時“１”を、Ｓ０が“１”の時“０”を表す。“→”は左辺の演算結果を右辺に代入することを表す。つまり、上記式（５）は、（  ）内が“０”であればデータが変化せず、（  ）内が“１”のときにデータが反転することを示している。たとえば、シンドロームが（１０１１）のときには、データビットＤ０が誤りであると判断されて、その値が反転するように訂正される。また、シンドロームが（１１００）のときには、データビットＤ５が反転するように訂正されることになる。
【００５９】
ここで、下記式（６）は、従来技術で説明した式（２）に対応する本実施形態のＥＣＣ回路搭載半導体記憶装置で用いている検査行列Ｈを示す式である。
【００６０】
【数２】
0003871471.tif 000003
【００６１】
また、従来技術の説明において述べたように、シンドロームｓは、下記式
ｓ＝（Ｄ０，Ｄ１…，Ｄ７，Ｃ０，…，Ｃ３）ＨＴ
で表される。
【００６２】
図９は、本実施形態における誤りビットとシンドロームとの関係を示す図である。
【００６３】
−回路動作−
次に、本実施形態に係るＥＣＣ回路搭載半導体記憶装置の回路動作について説明する。
【００６４】
ＥＣＣコードを生成するときは、データバス入力制御回路１０からデータバス２の８ビットのデータがＥＣＣ回路７内に入力される。そして、ＥＣＣコード入力制御回路１１により、ＥＣＣ回路７への入力が”０”に固定される。そして、ＥＣＣコード・シンドローム生成回路１６により、式（３）に基づくＥＣＣコードの生成が行われ、ＥＣＣコードバス出力制御回路１２からＥＣＣコードバス３を介してメモリセルアレイに４ビットのＥＣＣコードが送られる。
【００６５】
シンドロームを生成するときは、データバス２の８ビットのデータが、データバス入力制御回路１０からＥＣＣ回路７内に取り込まれる。また、メモリセルアレイからＥＣＣコードバス３に取り出された４ビットのＥＣＣコードが、ＥＣＣコード入力制御回路１１からＥＣＣ回路７内に取り込まれる。そして、ＥＣＣコード・シンドローム生成回路１６により、式（４）に基づくシンドロームの生成が行なわれた後、データ訂正回路１７により、必要に応じて式（５）に基づくデータの訂正が行なわれる。さらに、出力制御回路８から半導体記憶装置の外部のデバイスに８ビットのデータが出力される。
【００６６】
以上のように、本実施形態におけるＥＣＣ回路搭載半導体記憶装置の回路動作によると、上述のようにＥＣＣコードの各ビットを算出する際のデータのビット数を均一にしているので（式（３）参照）、ＥＣＣコードを生成する際の各ＥＣＣコードビットの回路遅延を等しくすることができ、よって、ＥＣＣコード生成の際の動作の円滑化を図ることができる。
【００６７】
なお、ＥＣＣコードの各ビットを算出するための式（３）においては、すでに説明したように、データビットの任意の２ビットの入れ替えを複数回行ってもよいし、シンドロームの各ビットを算出する際の式（４）においても、データビットの任意の２ビットの入れ替えを複数回行ってもよい。
【００６８】
また、上記式（３）において、Ｃ０とＣ１とを入れ替えると、
Ｃ０＝      Ｄ１＋Ｄ２＋Ｄ３＋Ｄ４＋Ｄ５
Ｃ１＝Ｄ０＋Ｄ１＋Ｄ２            ＋Ｄ５＋Ｄ６
Ｃ２＝Ｄ０      ＋Ｄ２＋Ｄ３＋Ｄ４            ＋Ｄ７
Ｃ３＝Ｄ０＋Ｄ１      ＋Ｄ３            ＋Ｄ６＋Ｄ７        （３）
のようになる。このように、ＥＣＣコードビットの任意の２ビットの入れ替えを複数回行ってもよい。
【００６９】
なお、１６ビットのデータ（Ｄ０−Ｄ１５）と５ビットのＥＣＣコード（Ｃ０−Ｃ４）とを用いる場合には、以下の式
Ｃ０＝Ｄ０＋Ｄ１＋Ｄ３＋Ｄ４＋Ｄ６＋Ｄ８＋Ｄ９  ＋Ｄ１３＋Ｄ１４
Ｃ１＝Ｄ１＋Ｄ２＋Ｄ３＋Ｄ７＋Ｄ８＋Ｄ９＋Ｄ１０＋Ｄ１１＋Ｄ１２
Ｃ２＝Ｄ０＋Ｄ２＋Ｄ３＋Ｄ５＋Ｄ６＋Ｄ９＋Ｄ１０＋Ｄ１２＋Ｄ１３
Ｃ３＝Ｄ４＋Ｄ５＋Ｄ６＋Ｄ７＋Ｄ８＋Ｄ９＋Ｄ１０＋Ｄ１１＋Ｄ１５
Ｃ４＝Ｄ０＋Ｄ１＋Ｄ２＋Ｄ４＋Ｄ５＋Ｄ７＋Ｄ１０＋Ｄ１４＋Ｄ１５
によって、ＥＣＣコードを算出することができる。
【００７０】
（第２の実施形態）
図４は、第２の実施形態に係るＥＣＣ回路搭載半導体記憶装置のメモリセルアレイ５の構成を模式的に示す図である。同図に示すように、メモリセルアレイ５内は４つのメモリブロック９に分けられており、各メモリブロック９ごとにデータ記憶領域９ａとＥＣＣコード記憶領域９ｂとが設けられている。そして、メモリセルアレイ５中の行の番号をＸ＝０，１，２，…，２５５とし、各メモリブロック９の番号をＹ＝０，１，２，３とする。そして、１つのメモリセルブロック９におけるデータ記憶領域９ａとＥＣＣコード記憶領域９ｂとによって１つのワードに対応するメモリセルブロックが構成されており、これを“単位ワードブロック”とする。
【００７１】
ここで、本実施形態においても、第１の実施形態において説明した式（３）を用いて、８ビットのデータから４ビットのＥＣＣコードを生成するものとする。つまり、第１の実施形態と同様に、８ビットのデータパターンから、同じ種類のパターンが４ビットのＥＣＣコードパターンとして生成されるという特徴をそのまま有している。
【００７２】
このＥＣＣコードパターンは以下の規則性を有している。すなわち、添字が偶数であるＥＣＣコードビットを演算する式に、添字が偶数であるデータビットの奇数個と、添字が奇数であるデータビットの偶数個とを割り当てる。たとえば、ＥＣＣコードにおいて添字が偶数であるビットＣＯには、添字が偶数であるデータビットの奇数個（Ｄ０，Ｄ２，Ｄ６）と、添字が奇数であるデータビットの偶数個（Ｄ１，Ｄ５）とが割り当てられている。一方、添字が奇数であるＥＣＣコードビットを演算する式には、添字が奇数であるデータビットの奇数個と、添字が偶数であるデータビットの偶数個とを割り当てる。たとえば、ＥＣＣコードにおいて添字が奇数であるビットＣ１には、添字が奇数であるデータビットの奇数個（Ｄ１，Ｄ３，Ｄ５）と、添字が偶数であるデータビットの偶数個（Ｄ２，Ｄ４）とが割り当てられている。
【００７３】
以上のような規則性に従って生成できる検査パターンにおける具体的なデータビットとＥＣＣコードビットとの対応の例を以下に示す。
【００７４】
パターン名      （Ｄ０          〜          Ｄ７）（Ｃ０  〜  Ｃ３）
ＡＬＬ０        （０  ０  ０  ０  ０  ０  ０  ０）（０  ０  ０  ０）
ＡＬＬ１        （１  １  １  １  １  １  １  １）（１  １  １  １）
チェッカー      （０  １  ０  １  ０  １  ０  １）（０  １  ０  １）
チェッカーバー  （１  ０  １  ０  １  ０  １  ０）（１  ０  １  ０）
まず、メモリセルアレイ５内のすべてのメモリセル（データ記憶領域及びＥＣＣコード記憶領域を含む）に“０”のデータを書き込むときには、メモリセルアレイ５内の全てのアドレスのデータビット（又はＥＣＣコードビット）を全て“０”として書き込みを行う。次に、メモリセルアレイ５内のすべてのメモリセルに“１”のデータを書き込むときには、メモリセルアレイ５内の全てのアドレスのデータビット（又はＥＣＣコードビット）を全て“１”として書き込みを行う。
【００７５】
次に、メモリセルアレイ５全体にチェッカーパターンを書き込むときには、行番号Ｘ＝０である全てのアドレスの単位ワードブロック２１には“０”から始まり交互に“０”，“１”を繰り返すパターンである部分チェッカーパターンを書き込む。行番号Ｘ＝１である全てのアドレスの単位ワードブロック２１には“１”から始まり交互に“１”，“０”を繰り返すパターンである部分チェッカーバーパターンを書き込む。さらに、行番号Ｘ＝２である全てのアドレスの単位ワードブロック２１には部分チェッカーパターンを書き込む。つまり、行番号Ｘが偶数であるアドレスの全ての単位ワードブロック２１には部分チェッカーパターンを、行番号Ｘが奇数であるアドレスの全ての単位ワードブロック２１には部分チェッカーバーパターンを書き込むことにより、メモリセルアレイ５の全体にチェッカーパターンを書き込むことができる。
【００７６】
図５は、上述の手順によって、メモリセルアレイ５の全体にチェッカーパターンが書き込まれた状態を示す図である。
【００７７】
また、メモリセルアレイ５に、行方向のストライプパターン（横縞）を書き込むときには、たとえば行番号Ｘが偶数であるアドレスの全ての単位ワードブロック２１には部分ＡＬＬ０パターンを、行番号Ｘが奇数であるアドレスの全ての単位ワードブロック２１には部分ＡＬＬ１パターンを書き込む。メモリセルアレイ５に、列向のストライプパターン（縦縞）を書き込むときには、たとえば各行の全ての単位ワードブロック２１に部分チェッカーパターンを書き込むか、各行の全ての単位ワードブロック２１に部分チェッカーバーパターンを書き込む。
【００７８】
以上のように、本実施形態においては、ＥＣＣコードを生成するために規則として、添字が偶数であるＥＣＣコードビットを演算する式に、添字が偶数であるデータビットの奇数個と、添字が奇数であるデータビットの偶数個とを割り当てる一方、添字が奇数であるＥＣＣコードビットを演算する式には、添字が奇数であるデータビットの奇数個と、添字が偶数であるデータビットの偶数個とを割り当てるようにしている。これにより、部分チェッカーパターンのデータを利用して部分チェッカーパターンのＥＣＣコードを、部分チェッカーバーパターンのデータを利用して部分チェッカーバーパターンのＥＣＣコードを、部分ＡＬＬ０パターンのデータを利用して部分ＡＬＬ０パターンのＥＣＣコードを、部分ＡＬＬ１パターンのデータを利用して部分ＡＬＬ１パターンのＥＣＣコードをそれぞれ生成することができる。そして、このような各種のパターンを用いてメモリセルアレイ５中の各メモリセルの検査を行なうことにより、縦横斜め方向に隣接したメモリセル（ビット）間の干渉等の不良を検出することができる。
【００７９】
従って、第２の実施形態のＥＣＣコードの生成方法によると、データのパターンを利用して同じ種類のパターンのＥＣＣコードパターンを生成できるので、別途ＥＣＣコード専用の検査パターンを準備しなくても、メモリ検査において、縦横斜め方向に隣接したメモリセル（ビット）間の干渉等の不良を検出することができるという利点がある。
【００８０】
（第３の実施形態）
図６は、第３の実施形態に係るＥＣＣ回路搭載半導体記憶装置の構成を示すブロック図である。
【００８１】
同図に示すように、本実施形態におけるＥＣＣ回路搭載半導体記憶装置の構成は、第１の実施形態と同様である（図１参照）。本実施形態においては、ＥＣＣ回路搭載半導体記憶装置中の入力制御回路１に検査パターンを出力し、出力制御回路８から検査パターンを入力してメモリ検査を行うテスト回路２２が配設されており、このテスト回路２２の検査方法に特徴がある。
【００８２】
上記従来技術において説明したように、１ビットまで訂正可能なＥＣＣ回路搭載半導体記憶装置においてＥＣＣ回路搭載メモリブロックの外部とのＥＣＣコード入出力のための信号線を用いずにメモリの検査を行うためには、データビットのみの検査で１ワード中に含まれる２ビット以上の不良を検出する必要がある。しかし、従来行われているようなメモリの検査パターンでは２ビット以上の不良を検出できない。たとえば、検査パターンとして
（Ｄ０  Ｄ１  Ｄ２  Ｄ３  Ｄ４  Ｄ５  Ｄ６  Ｄ７）
ＡＬＬ０      （  ０    ０    ０    ０    ０    ０    ０    ０）
ＡＬＬ１      （  １    １    １    １    １    １    １    １）
チェッカー    （  ０    １    ０    １    ０    １    ０    １）
チェッカーバー（  １    ０    １    ０    １    ０    １    ０）
の４パターンを使用していると、Ｄ０が“０”に、Ｄ２が“１”に固定された不良モードはそれぞれの４パターンでは１ビット誤りとして認識されるため検出できない。
【００８３】
ここで、本実施形態においては、テスト回路２２の発生するデータビットのパターンとして、
（  D0  D1  D2  D3  D4  D5  D6  D7  C0  C1  C2  C3  ）
パターン１（  ０  ０  ０  ０  ０  ０  ０  ０  ０  ０  ０  ０  ）
パターン２（  １  １  １  １  １  １  １  １  １  １  １  １  ）
パターン３（  ０  １  ０  １  ０  １  ０  １  ０  １  ０  １  ）
パターン４（  １  ０  １  ０  １  ０  １  ０  １  ０  １  ０  ）
パターン５（  ０  ０  １  １  ０  ０  １  １  ０  ０  １  １  ）
パターン６（  １  １  ０  ０  １  １  ０  ０  １  １  ０  ０  ）
パターン７（  １  １  １  １  ０  ０  ０  ０  １  １  １  １  ）
パターン８（  ０  １  ０  １  １  １  １  １  １  ０  １  ０  ）
パターン９（  １  ０  １  ０  １  １  １  １  ０  １  ０  １  ）
の９パターンを使用する。以上の９パターンを作成する上でのルールとして、相隣接していないビット同士も含め、任意の２ビットに着目したときにその２ビットのパターンとして
（０  ０）
（０  １）
（１  ０）
（１  １）
の４通りのパターンが必ず含まれるように作られている。テスト回路２２による９パターンで検査を行うことで、不良の発生した任意の２ビットはいずれか１つ以上のパターンで２ビット不良として検出することができる。パターンを発生するテスト回路２２を設けることにより、ＥＣＣ回路搭載半導体記憶装置のメモリセルアレイ中のデータビット及びＥＣＣコードビットの双方について２ビット以上の不良を検出しうる検査方法を提供することができる。
【００８４】
また、このようなテスト回路２２は、半導体チップ内に組み込んでも組み込まなくてもよいが、テスト回路２２を半導体チップ内に組み込むことにより、外部デバイスとの入出力信号線を増やさずにメモリの２ビット以上の誤りを検出する検査手法を提供することができる。
【００８５】
なお、２ビット不良を検出する検査パターンを発生するテスト回路２２は、マイクロプロセッサを用いても実現できる。
【００８６】
図７は、テスト回路２２に代えて、マイクロプロセッサ２３によって、本実施形態のテスト方法を行なうように構成した例を示すブロック図である。この場合、メモリ・ロジック混載型半導体装置に適した構造が得られる。
【００８７】
なお、テスター等のハードウェアを別途設けることにより直接メモリのデータビットにアクセスすることでも実現できる。
【００８８】
（第４の実施形態）
図８は、第４の実施形態に係るＥＣＣ回路搭載半導体記憶装置の構成の一部（特にＥＣＣ回路）を示す回路図である。ＥＣＣ回路搭載半導体記憶装置全体の構成は、図１に示すとおりである。
【００８９】
図８に示すように、本実施形態におけるＥＣＣ回路２５は、図２に示すＥＣＣ回路７の構成に加えて、データバス２から取り込んだデータ（Ｄ０，Ｄ１，Ｄ２，Ｄ３）をＥＣＣコード生成用の排他的論理ゲートに入力するか否かを制御するためのデータバス入力テスト制御回路２６と、データバス入力制御回路１０からの入力とデータ訂正回路１７からの入力とを切り替えて出力制御回路８に送るセレクタゲート２７とを備えている。
【００９０】
以下、以上のように構成されたＥＣＣ回路２５について、通常書き込み動作・テストモード書き込み動作・通常読み出し動作・テストモード読み出し動作を示す演算と、対応する回路動作とを説明する。
【００９１】
通常書き込み動作は、８ビットのデータビットから４ビットのＥＣＣコードを生成する式として、第１の実施形態で示した式（３）を用いて行なう。また、通常読み出しのシンドローム生成は、第１の実施形態で示した式（４）を用いて行なう。
【００９２】
一方、テストモード書き込みのためには、下記式（７）
Ｃ０＝                （Ｄ１＋Ｄ６）＋（Ｄ２＋Ｄ５）
Ｃ１＝                                （Ｄ２＋Ｄ５）＋（Ｄ３＋Ｄ４）
Ｃ２＝（Ｄ０＋Ｄ７）                                ＋（Ｄ３＋Ｄ４）
Ｃ３＝（Ｄ０＋Ｄ７）＋（Ｄ１＋Ｄ６）                    （７）
を使用する。また、テストモード読み出しにおいては、読み出した８ビットのデータをそのまま出力する。
【００９３】
ここで、テストモード書き込み動作のための式（７）の特徴は、ＥＣＣコードを生成する式（３）中の右辺のうちの１つのビット（Ｄ０，Ｄ１，Ｄ２，Ｄ３）がそれぞれ省かれていることである。この操作を行なうために、ＥＣＣ制御回路２５中のデータバス入力テスト制御回路２６によって、８ビットのデータ中の最初の４ビットのデータ（Ｄ０，Ｄ１，Ｄ２，Ｄ３）の通過を遮断する。
【００９４】
そして、テストモード書き込みの後、通常読み出しを行うと、ビット誤りが存在しないときのシンドローム（Ｓ０，Ｓ１，Ｓ２，Ｓ３）は、式（７）を式（４）に代入して求められ、（０，０，０，０）ではなく（Ｄ０，Ｄ１，Ｄ２，Ｄ３）と等しくなる。つまり、外部から入力するデータビットにより任意のシンドロームを設定できる。
【００９５】
次に、回路動作について説明する。テストモード書き込みを行うときは、データバス入力制御回路１０は、データバス２の８ビットのデータをＥＣＣ回路２５内に入力する。データバス入力テスト制御回路２６は、ＥＣＣコード・シンドローム生成回路１６への出力を“０”に固定する。ＥＣＣコード入力制御回路１１は、ＥＣＣ回路２５への入力を“０”に固定する。式（７）に対応するＥＣＣコード・シンドローム生成回路１６によりＥＣＣコード生成が行われ、ＥＣＣコードバス出力制御回路１２からＥＣＣコードバス３へと４ビットのテスト用ＥＣＣコードが出力される。
【００９６】
シンドロームを生成するときは、データバス入力制御回路１０はデータバス２の８ビットのデータをＥＣＣ回路２５内に入力する。セレクタゲート２７は、入力された８ビットのデータをそのまま出力制御回路８から外部のデバイスに出力する。
【００９７】
データ訂正回路１７の検査を行なうためには、データビットＤ０，Ｄ１，Ｄ２，Ｄ４を、対応して修正するシンドロームＳ０，Ｓ１，Ｓ２，Ｓ３と同じパターンにする。つまり、図９に示すシンドロームＳ０，Ｓ１，Ｓ２，Ｓ３のパターンの各行と同じパターンにすれば複合機能の検査を行なうことができる。例として、データビットＤ０，Ｄ１，Ｄ２，Ｄ４を図９のシンドロームＳ０，Ｓ１，Ｓ２，Ｓ３の１行目に示しているパターン（１，０，１，１）にしてテストモード書き込みを行ない、通常読み出しを行なうと、シンドロームＳ０，Ｓ１，Ｓ２，Ｓ３は（１，０，１，１）になるので、対応するデータであるＤ０の値は反転して出力される。その結果、読み出されるデータビットＤ０，Ｄ１，Ｄ２，Ｄ４が（０，０，１，１）であることを確認することにより、データビットＤ０を訂正する複合機能の検査を行なうことができる。
【００９８】
このように第４の実施形態によれば、対応する訂正ビットが存在するシンドロームが生成されるようにＥＣＣコードビットを設定する手段を設けることにより、ＥＣＣ回路２５中の複合機能の検査を行なうことができ、ＥＣＣ回路搭載半導体記憶装置の信頼性を確保することができる。
【００９９】
また、ＥＣＣコード記憶領域９ｂの検査を行うためには、データビットＤ０，Ｄ１，Ｄ２，Ｄ３を全て“１”にしてテストモード書き込みを行う。ビット誤りが存在しない場合でもシンドロームは（０，０，０，０）ではなく（１，１，１，１）になる。この（１，１，１，１）というシンドロームは、
１．対応して修正するビットは存在しない
２．ＥＣＣコードに１ビット誤りが存在すると、シンドロームの１ビットが反転し、対応するデータビットの訂正を必ず行う
という２つの特徴がある。そのため、通常読み出し時に、ビット誤りが存在しない場合、書き込みを行ったデータと同じデータを読み出すことができる。
【０１００】
しかしながら、ＥＣＣコード（Ｃ０，Ｃ１，Ｃ２，Ｃ３）に誤りが１ビット存在すると、シンドローム（Ｓ０，Ｓ１，Ｓ２，Ｓ３）は
（１，０，１，１）（Ｃ１が誤っているとき）
（１，１，０，１）（Ｃ２が誤っているとき）
（１，１，１，０）（Ｃ３が誤っているとき）
（０，１，１，１）（Ｃ０が誤っているとき）
のいずれかになり、通常読み出し時にそれぞれＤ０，Ｄ１，Ｄ２，Ｄ３が反転され出力される。すなわち、ＥＣＣコード中の１つのビットの不良が検出され、ＥＣＣコード記憶領域の検査を行うことができる。
【０１０１】
下記表１は、ＥＣＣコード領域の考えられる全ての不良のパターンとそれを検出するためのテストモード書き込みのパターンを列挙したものである。
【０１０２】
【表１】
0003871471.tif 000004
【０１０３】
以上のように、第４の実施形態によれば、対応する訂正ビットが存在しないシンドロームが生成されるようにＥＣＣコードビットを設定する手段を設けることにより、メモリセルアレイ５内のＥＣＣコード領域９ａの検査を行うことができ、ＥＣＣ回路搭載半導体記憶装置の信頼性を確保することができる。
【０１０４】
【発明の効果】
本発明のＥＣＣ回路搭載半導体記憶装置によると、ＥＣＣ回路自体の構成の簡略化を図りつつ、各種の検査パターンを自在に盛り込むことを可能にすることにより、機能の高い半導体記憶装置の提供を図ることができる。
【０１０５】
本発明のＥＣＣ回路搭載半導体記憶装置の検査方法によると、半導体記憶装置の信頼性を確保するための検査を簡便に行なうことができる。
【図面の簡単な説明】
【図１】  本発明の第１の実施形態におけるＥＣＣ回路搭載半導体記憶装置の構成を概略的に示すブロック図である。
【図２】  本発明の第１の実施の形態におけるＥＣＣ回路の回路図である。
【図３】  本発明の第１の実施形態におけるＥＣＣコードバス入力制御回路の構成を概略的に示す回路図である。
【図４】  本発明の第２の実施形態におけるメモリセルアレイの構成を模式的に示す図である。
【図５】  本発明の第２の実施形態におけるメモリセルアレイにチェッカーパターンを書き込んだ状態を示す図である。
【図６】  本発明の第３の実施形態におけるＥＣＣ回路搭載半導体記憶装置の構成を概略的に示すブロック図である。
【図７】  本発明の第３の実施形態の変形例におけるＥＣＣ回路搭載半導体記憶装置の構成を概略的に示すブロック図である。
【図８】  本発明の第４の実施形態におけるＥＣＣ回路の回路図である。
【図９】  本発明の第５の実施形態における誤りビットとシンドロームとの関係を示す図である。
【図１０】  第１の従来例におけるＥＣＣ回路搭載半導体記憶装置の構成を概略的に示すブロック図である。
【図１１】  第２の従来例におけるＥＣＣ回路搭載半導体記憶装置の構成を概略的に示すブロック図である。
【図１２】  従来例における誤りビットとシンドロームとの関係を示す図である。
【符号の説明】
１    入力制御回路
２    データバス
３    ＥＣＣコードバス
４    カラムデコーダ
５    メモリセルアレイ
６    ビット線群
７    ＥＣＣ回路
８    出力制御回路
９    メモリブロック
９ａ  データ記憶領域
９ｂ  ＥＣＣコード記憶領域
１０  データバス入力制御回路
１１  ＥＣＣコードバス入力制御回路
１２  ＥＣＣコードバス出力制御回路
１３  排他的論理和ゲート
１４  インバータゲート
１５  論理積ゲート
１６  ＥＣＣコード・シンドローム生成回路
１７  データ訂正回路
１８  ＣＭＯＳトランスファゲート
１９  Ｎチャネル型ＭＯＳトランジスタ
２１  単位ワードブロック
２２  テスト回路
２３  ＣＰＵ
２５  ＥＣＣ回路
２６  データバス入力テスト制御回路
２７  セレクタゲート
【図１】
0003871471.tif 000005
【図２】
0003871471.tif 000006
【図３】
0003871471.tif 000007
【図４】
0003871471.tif 000008
【図５】
0003871471.tif 000009
【図６】
0003871471.tif 000010
【図７】
0003871471.tif 000011
【図８】
0003871471.tif 000012
【図９】
0003871471.tif 000013
【図１０】
0003871471.tif 000014
【図１１】
0003871471.tif 000015
【図１２】
0003871471.tif 000016