(57)【特許請求の範囲】
【請求項１】
複数ビットのデータ入力部およびデータ出力部と、少なくとも１ビットの予備データ入力部および予備データ出力部とを有して構成される記憶手段と、
前記記憶手段の記憶素子に故障が存在しない場合には、前記記憶手段へのデータの入出力を前記複数ビットのデータ入力部およびデータ出力部を使用して実施し、前記記憶手段の記憶素子に故障が存在する場合には、当該故障の存在する記憶素子に係るビット位置のデータ入力部およびデータ出力部を不使用にするとともに、不使用にしたデータ入力部およびデータ出力部と同数の予備データ入力部および予備データ出力部を使用して前記記憶手段へのデータの入出力を実施する入出力切り換え手段と、
前記記憶手段と前記入出力切り換え手段とから成る冗長記憶手段のデータ出力部、あるいは前記記憶手段のデータ出力部または前記記憶手段のデータ出力部および予備データ出力部からの出力データと期待値とを各ビット毎に比較し、当該比較結果を保持可能であるとともに、任意のビット位置に係る比較動作を不能とすることができるテスト手段と、
前記テスト手段における各ビット毎の比較結果を逐次的に取り出すことができるテスト結果出力手段と、
前記テスト結果出力手段により取り出された各ビット毎の比較結果に基づいて故障の存在する記憶素子に係るビット位置を特定する故障位置特定手段とを備えることを特徴とする半導体集積回路装置。
【請求項２】
冗長記憶手段に入力される情報データについて１ビットのエラー検出を可能とするパリティデータを生成し、当該パリティデータを前記冗長記憶手段に出力するパリティ生成手段と、
情報データと当該情報データに対応するパリティデータとから構成される前記冗長記憶手段よりの出力データを入力して、１ビットのエラーの存在するビット位置を特定するエラー位置特定手段と、
前記エラー位置特定手段から出力される信号に基づき、エラーの存在するビット位置について前記冗長記憶手段のデータ出力部から出力されるデータを反転させるエラー訂正手段とを備えることを特徴とする請求項１記載の半導体集積回路装置。
【請求項３】
故障位置特定手段が、故障を示すビットデータの検出をトリガとして停止するまで、逐次的に取り出される比較結果のビット数を計数し、当該計数値をバイナリデータとして出力する計数手段と、バイナリデータをデコードするデコード手段とを有して構成され、
エラー位置特定手段が、冗長記憶手段からの出力データを入力して、エラーの存在するビット位置をバイナリデータとして出力するエラー位置出力手段と、バイナリデータをデコードする前記デコード手段とを有して構成され、
前記計数手段のデータ出力部に接続されるとともに前記エラー位置出力手段のデータ出力部に接続されて、前記計数手段のデータ出力部か前記エラー位置出力手段のデータ出力部のいずれか一方を選択的に前記デコード手段のデータ入力部に接続する選択手段を備えることを特徴とする請求項２記載の半導体集積回路装置。
【請求項４】
冗長記憶手段のデータ出力部とテスト手段のデータ入力部とを接続可能とするとともに、デコード手段のデータ出力部とテスト手段のデータ入力部とを接続可能として、
テスト手段にイクスクルーシブ・オア演算を実施する回路素子を組み込むことを特徴とする請求項３記載の半導体集積回路装置。
【請求項５】
情報データについて１ビットのエラー検出を可能とするパリティデータを生成して出力するパリティ生成手段と、
前記パリティ生成手段からのパリティデータと、冗長記憶手段において当該パリティデータに係るビット位置のデータ出力部から出力されるデータとをそれぞれ対応するビット位置毎に入力する複数のイクスクルーシブ・オアゲートと、
前記冗長記憶手段に入力される情報データ、または前記冗長記憶手段において情報データに係るビット位置のデータ出力部から出力されるデータのいずれか一方を選択的に前記パリティ生成手段のデータ入力部に入力する選択手段とを備えることを特徴とする請求項１記載の半導体集積回路装置。
【請求項６】
テスト結果出力手段により取り出されたワードデータ毎の比較結果のなかにおける故障に係るビットデータ数を少なくとも２以上計数することができる第１の故障数計数手段を備えることを特徴とする請求項１記載の半導体集積回路装置。
【請求項７】
テスト結果出力手段により取り出された比較結果における故障に係るビットデータ数を計数することができる第２の故障数計数手段を備えることを特徴とする請求項１記載の半導体集積回路装置。
【請求項８】
複数ビットのデータ入力部およびデータ出力部と、少なくとも１ビットの予備データ入力部および予備データ出力部とを有して構成される記憶手段、
前記記憶手段のデータ出力部と期待値とを各ビット毎に比較するテスト手段、
前記テスト手段における各ビット毎の比較結果を逐次的に取り出すことができるテスト結果出力手段、
前記テスト結果出力手段により取り出された各ビット毎の比較結果に基づいて故障の存在する記憶素子に係るビット位置を特定する故障位置特定手段を備えることを特徴とする半導体集積回路装置。
【請求項９】
前記故障位置特定手段によって特定された故障の存在する記憶素子に係るビット位置をデコードするデコーダ手段をさらに有し、
前記テスト手段は前記デコーダ手段の出力信号を受けて対応する記憶素子に係るビット位置のデータ入力部およびデータ出力部を不使用にする、請求項８記載の半導体集積回路装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、半導体集積回路装置に係り、特に冗長記憶回路およびＥＣＣ回路を組み合せて構成される記憶システムに係る故障救済の可否を判定すること、並びにソフトエラーに対するエラー訂正能力を評価することを可能とする半導体集積回路装置に関するものである。
【０００２】
【従来の技術】
第１に、エラー訂正を実施するための従来のＥＣＣ（Error Checking and Correction ）技術について説明する。
図２４は、エラー訂正を実施するためのＥＣＣ回路を備えたＲＡＭを有して構成される従来の記憶システムの構成を示す回路図である。図２４において、２０１はＲＡＭ（ランダムアクセス・メモリ）、２０２はパリティ生成回路、２０３はエラー検出回路、２０４はデコーダ回路、２０５から２１５はＥＸ−ＯＲ（イクスクルーシブ・オア）ゲートである。また、ＣＤＩ＜０＞からＣＤＩ＜１０＞は上記複数の回路から構成される記憶システムに対するデータ入力部、Ｘ１からＸ１１はデータ入力部ＣＤＩ＜０＞からＣＤＩ＜１０＞にそれぞれ対応する各１ビットの情報データ、Ｐ１からＰ４は各１ビットのパリティデータ、ＤＩ＜１＞からＤＩ＜１５＞はＲＡＭ２０１のデータ入力部、ＤＯ＜１＞からＤＯ＜１５＞はＲＡＭ２０１のデータ出力部、Ｅ１からＥ４は各１ビットのエラー検出用データ、Ｉ＜０＞からＩ＜３＞はデコーダ回路１０４のデータ入力部、Ｂ＜３＞，Ｂ＜５＞からＢ＜７＞，Ｂ＜９＞からＢ＜１５＞はデコーダ回路１０４のデータ出力部、ＣＤＯ＜０＞からＣＤＯ＜１０＞は記憶システムに対するデータ出力部である。なお、ＲＡＭ２０１については、データ入出力信号に係る部分のみが表示され、アドレス信号、制御信号等に係る回路部位の表示は省略されている。
【０００３】
次に図２４に示される記憶システムの動作について説明する。
なお、この実施の形態では、入力される情報データが１１ビットでパリティデータが４ビットの場合を例にとるものとする。図２５は、ＲＡＭ２０１および記憶システム全体のデータ入出力部に対する情報データおよびパリティデータのビット割り当てを示す図である。この例においては、パリティデータＰ１，Ｐ２，Ｐ３，Ｐ４は以下の式に従って生成される。
Ｐ１＝Ｘ１＋Ｘ２＋Ｘ４＋Ｘ５＋Ｘ７＋Ｘ９＋Ｘ１１        （１）
Ｐ２＝Ｘ１＋Ｘ３＋Ｘ４＋Ｘ６＋Ｘ７＋Ｘ１０＋Ｘ１１      （２）
Ｐ３＝Ｘ２＋Ｘ３＋Ｘ４＋Ｘ８＋Ｘ９＋Ｘ１０＋Ｘ１１      （３）
Ｐ４＝Ｘ５＋Ｘ６＋Ｘ７＋Ｘ８＋Ｘ９＋Ｘ１０＋Ｘ１１      （４）
但し、上記の論理式において“＋”はイクスクルーシブ・オア演算を示すものとする。図２６は、上記の論理式に従ってパリティデータを出力させるパリティ生成回路２０２の具体的な回路構成を示す図である。図２６に示される論理ゲートはすべてＥＸ−ＯＲゲートである。
【０００４】
ＲＡＭ２０１にデータを書き込む際には、図２４に示される記憶システムに対して、１１ビットの情報データをデータ入力部ＣＤＩ＜０＞からＣＤＩ＜１０＞に入力すると、上記の論理式に基づいて、パリティデータＰ１，Ｐ２，Ｐ３，Ｐ４を生成する。次に、１１ビットの情報データＸ１〜Ｘ１１および４ビットのパリティデータＰ１〜Ｐ４を合わせた１５ビットのデータを、図２５に示されるビット割り当てに従ってＲＡＭ２０１のデータ入力部ＤＩ＜１＞からＤＩ＜１５＞に書き込む。
【０００５】
また、ＲＡＭ２０１からデータを読み出す際には、ＲＡＭ２０１のデータ出力部ＤＯ＜１＞〜ＤＯ＜１５＞から出力される１５ビットの出力データに対してエラー検出回路２０３を用いてエラー検出を実施する。ここで、エラーとしては、メモリセルの故障などに起因して生じるハードエラーと、デバイス内の放射線による記憶データの反転などに起因して生じるソフトエラーとが挙げられる。
【０００６】
エラー検出回路２０３においては、以下の論理式に従ってエラー検出用データＥ１，Ｅ２，Ｅ３，Ｅ４が生成される。
Ｅ１＝Ｐ１＋Ｘ１＋Ｘ２＋Ｘ４＋Ｘ５＋Ｘ７＋Ｘ９＋Ｘ１１        （５）
Ｅ２＝Ｐ２＋Ｘ１＋Ｘ３＋Ｘ４＋Ｘ６＋Ｘ７＋Ｘ１０＋Ｘ１１      （６）
Ｅ３＝Ｐ３＋Ｘ２＋Ｘ３＋Ｘ４＋Ｘ８＋Ｘ９＋Ｘ１０＋Ｘ１１      （７）
Ｅ４＝Ｐ４＋Ｘ５＋Ｘ６＋Ｘ７＋Ｘ８＋Ｘ９＋Ｘ１０＋Ｘ１１      （８）
但し、上記の論理式において“＋”はイクスクルーシブ・オア演算を示すものとする。図２７は、上記の論理式に従ってエラー検出用データを出力させるエラー検出回路２０３の具体的な回路構成を示す図である。図２７に示される論理ゲートは、すべてＥＸ−ＯＲゲートである。エラーが存在しない場合には、Ｅ１＝Ｅ２＝Ｅ３＝Ｅ４＝０となる。また、１５ビットの出力データのなかで１ビットのエラーがあれば、当該エラーが発生したデータに対して図２５において割り当てられた数をバイナリデータとして表現するようにＥ１〜Ｅ４に係るバイナリ値が決定される。すなわち、エラーが発生したデータに対して割り当てられた数をＹとすると、Ｙ＝Ｅ４＊２３＋Ｅ３＊２２＋Ｅ２＊２１＋Ｅ１＊２０を満たすように、エラー検出用データＥ１，Ｅ２，Ｅ３，Ｅ４に係るバイナリ値が決定される。例えば、情報データＸ８に係る記憶素子についてエラーが生じた場合には、Ｘ８に対して割り当てられた数である１２を示すように、Ｅ４＝１，Ｅ３＝１，Ｅ２＝０，Ｅ１＝０となる。
【０００７】
次に、デコーダ回路２０４は、エラー検出用データＥ１，Ｅ２，Ｅ３，Ｅ４をそれぞれデータ入力部Ｉ＜０＞，Ｉ＜１＞，Ｉ＜２＞，Ｉ＜３＞に入力する。エラーが発生している場合には、当該エラーが発生したビットデータに対して図２５において割り当てられた数をｉとすると、デコーダ回路１０４のデータ出力部Ｂ＜ｉ＞からデータ“１”が出力され、他のデータ出力部Ｂ＜ｊ＞（ｊ≠ｉ）からデータ“０”が出力される。例えば、ＲＡＭ２０１のデータ出力部ＤＯ＜１２＞からの出力データにエラーが生じた場合には、エラー検出回路２０３は、Ｅ４＝１，Ｅ３＝１，Ｅ２＝０，Ｅ１＝０を出力する。デコーダ回路１０４は、これらの入力データに基づいてデコードを実施し、データ出力部Ｂ＜１２＞のみからデータ“１”を出力する。
【０００８】
さらに、デコーダ回路１０４のデータ出力部Ｂ＜ｉ＞（ｉ＝３，５〜７，９〜１５）からの出力信号、およびＲＡＭ２０１においてデータ出力部Ｂ＜ｉ＞に対応するデータ出力部ＤＯ＜ｉ＞（ｉ＝３，５〜７，９〜１５）からの出力信号はそれぞれ対応するビット位置毎に２入力のＥＸ−ＯＲゲート２０５〜２１５に入力される。ＥＸ−ＯＲゲート２０５〜２１５のデータ出力部は、そのまま図２４に示された記憶システムに対するデータ出力部ＣＤＯ＜０＞〜ＣＤＯ＜１０＞に接続される。データ出力部Ｂ＜ｉ＞からデータ“０”が出力されるとデータ出力部ＤＯ＜ｉ＞からのデータがそのまま対応するデータ出力部ＣＤＯ＜ｊ＞に出力され、データ出力部Ｂ＜ｉ＞からデータ“１”が出力されるとデータ出力部ＤＯ＜ｉ＞からのデータが反転して対応するデータ出力部ＣＤＯ＜ｊ＞に出力される。したがって、１ビットのエラーがある場合には、当該ビットに係るデータをＥＸ−ＯＲゲートにより反転して出力することができるので、エラー訂正を実施することが可能となる。なお、例示したＥＣＣ回路は１ビット訂正用の回路であり、２ビットのエラーが発生した場合には、エラーを訂正することができない。また、３ビット以上のエラーについては、エラーの存在を検出できないことがある。
【０００９】
第２に、従来におけるＲＡＭのテスト回路およびテストによる故障検出に基づく故障救済を実施する冗長記憶回路について説明する。このようなテスト回路および冗長記憶回路については、例えば特開平８−９４７１８号公報、特開平１１−２６５５９７号公報に記載されている。
【００１０】
図２８から図３０は、従来の冗長記憶回路およびテスト回路を示す図である。図２８は図２９と図３０との位置関係を示す説明図であり、図２９および図３０は従来の冗長記憶回路およびテスト回路の構成を示す回路図である。図２９および図３０において、２２１はＲＡＭ、２２２はＲＡＭ２２１に対するテスト回路、２２３〜２５１はセレクタである。記憶手段としてのＲＡＭ２２１と、外部に対して入出力されるデータ数より多いＲＡＭ２２１のデータ入出力部の使用形態を適宜設定できるように各入出力データが伝送される信号線とＲＡＭ２２１のデータ入出力部との接続を切り換える入出力切り換え手段としてのセレクタ２２３〜２５１とから冗長記憶回路が構成される。また、セレクタ２２３〜２５１については、制御部に入力される信号のデータが“０”の場合には“０”入力部に入力されるデータが出力され、制御部に入力される信号のデータが“１”の場合には“１”入力部に入力されるデータが出力される。
【００１１】
また、ＸＤＩ＜１＞からＸＤＩ＜１５＞は上記複数の回路から構成される記憶システムに対する冗長データ入力部、ＤＩ＜０＞からＤＩ＜１５＞はＲＡＭ２２１のデータ入力部、ＤＯ＜０＞からＤＯ＜１５＞はＲＡＭ２２１のデータ出力部、ＸＤＯ＜１＞からＸＤＯ＜１５＞は記憶システムに対する冗長データ出力部、ＩＤＯ＜０＞からＩＤＯ＜１５＞はテスト回路２２２のデータ入力部、Ｆ＜１＞からＦ＜１５＞はテスト回路２２２のデータ出力部、ＳＩＤＯはテスト回路２２２へ入力されるシリアル入力データ、ＳＯＤＯはテスト回路２２２から出力されるシリアル出力データ、ＳＲＣＴＲＬはテスト回路２２２に入力される後述の制御信号群である。ＲＡＭ２２１のデータ出力部ＤＯ＜０＞からＤＯ＜１５＞はそれぞれテスト回路２２２のデータ入力部ＩＤＯ＜０＞からＩＤＯ＜１５＞に接続される。また、テスト回路２２２のデータ出力部Ｆ＜１＞からＦ＜１５＞はそれぞれセレクタ２３７〜２５１の制御部に接続され、さらにデータ出力部Ｆ＜２＞からＦ＜１５＞はそれぞれセレクタ２２３〜２３６の制御部に接続される。
【００１２】
上記のように図２９および図３０に示されるシステムにおいては、１６ビットのデータ入出力部（ＤＩ＜ｉ＞，ＤＯ＜ｉ＞）（ｉ＝１〜１６）を備えたＲＡＭ２２１にセレクタを付加して、通常動作においてデータ入出力部（ＸＤＩ＜ｉ＞，ＸＤＯ＜ｉ＞）（ｉ＝１〜１５）を使用する１５ビットの入出力機能を備えたＲＡＭとして動作させる冗長記憶回路が実現されている。
【００１３】
次に、図２９および図３０に示される冗長記憶回路およびテスト回路から構成される記憶システムの動作について説明する。
ＲＡＭ２２１のデータ出力部ＤＯ＜１＞からＤＯ＜１５＞より出力されるデータに異常がない場合には、テスト回路２２２のデータ出力部Ｆ＜１＞からＦ＜１５＞はデータ“１”を出力する。これにより、セレクタ２２３〜２５１はすべて“１”入力部から入力されるデータを出力することになり、冗長データ入力部ＸＤＩ＜１＞からＸＤＩ＜１５＞より入力されるデータがそれぞれＲＡＭ２２１のデータ入力部ＤＩ＜１＞からＤＩ＜１５＞に入力されるとともに、ＲＡＭ２２１のデータ出力部ＤＯ＜１＞からＤＯ＜１５＞より出力されるデータがそれぞれ冗長データ出力部ＸＤＯ＜１＞からＸＤＯ＜１５＞へ出力される。
【００１４】
テスト回路２２２においてＲＡＭ２２１のデータ出力部ＤＯ＜１＞からＤＯ＜１５＞より出力されるいずれかのデータに異常があることが検出された場合、すなわちＲＡＭ２２１を構成する記憶素子に故障が存在することが判明した場合には、故障の発生した記憶素子に係るデータ入出力部を（ＤＩ＜ｉ＞，ＤＯ＜ｉ＞）とすると、テスト回路２２２のデータ出力部Ｆ＜１＞からＦ＜ｉ＞よりデータ“０”が出力され、データ出力部Ｆ＜ｉ＋１＞からＦ＜１５＞よりデータ“１”が出力される。これにより、冗長データ入力部ＸＤＩ＜１＞からＸＤＩ＜ｉ＞より入力されるデータがそれぞれＲＡＭ２２１のデータ入力部ＤＩ＜０＞からＤＩ＜ｉ−１＞へ入力されるとともに、冗長データ入力部ＸＤＩ＜ｉ＞からＸＤＩ＜１５＞より入力されるデータがデータ入力部ＤＩ＜ｉ＞からＤＩ＜１５＞へ入力されて、故障の発生した記憶素子に係るデータ入力部ＤＩ＜ｉ＞へ入力されるデータがデータ入力部ＤＩ＜ｉ−１＞へも入力されるようになる。また、ＲＡＭ２２１のデータ出力部ＤＯ＜０＞からＤＯ＜ｉ−１＞より出力されるデータがそれぞれ冗長データ出力部ＸＤＯ＜１＞からＸＤＯ＜ｉ＞へ出力されるとともに、ＲＡＭ２２１のデータ出力部ＤＯ＜ｉ＋１＞からＤＯ＜１５＞より出力されるデータがそれぞれ冗長データ出力部ＸＤＯ＜ｉ＋１＞からＸＤＯ＜１５＞へ出力されて、故障の発生した記憶素子に係るデータ出力部ＤＯ＜ｉ＞から出力されるデータを記憶システムの外部へ出力させないようにする。したがって、故障の発生した記憶素子に係るデータ入出力部（ＤＩ＜ｉ＞，ＤＯ＜ｉ＞）を不使用にするとともに、データ入出力部（ＤＩ＜ｉ＞，ＤＯ＜ｉ＞）に代えて予備のデータ入出力部として用意されたデータ入出力部（ＤＩ＜０＞，ＤＯ＜０＞）を使用することにより、セレクタ２２３〜２５１を備えたＲＡＭ２２１から成る冗長記憶回路は１５ビットのデータ入出力機能を有するＲＡＭとして正常に動作する。
【００１５】
ここで、記憶素子に故障が発生した場合のテスト回路および冗長記憶回路の動作について例をあげて説明する。テスト回路２２２において、ＲＡＭ２２１のデータ出力部ＤＯ＜６＞から出力されるデータに異常があることが検出された場合、すなわちデータ出力部ＤＯ＜６＞に接続する記憶素子に故障が存在することが判明した場合には、テスト回路２２２のデータ出力部Ｆ＜１＞からＦ＜６＞よりデータ“０”が出力され、データ出力部Ｆ＜７＞からＦ＜１５＞よりデータ“１”が出力される。これにより、セレクタ２２３〜２２７の制御部にデータ“０”が入力されて冗長データ入力部ＸＤＩ＜１＞からＸＤＩ＜６＞より入力されるデータがそれぞれＲＡＭ２２１のデータ入力部ＤＩ＜０＞からＤＩ＜５＞へ入力されるとともに、セレクタ２２８〜２３６の制御部にデータ“１”が入力されて冗長データ入力部ＸＤＩ＜６＞からＸＤＩ＜１５＞より入力されるデータがそれぞれＲＡＭ２２１のデータ入力部ＤＩ＜６＞からＤＩ＜１５＞へ入力されて、故障の発生した記憶素子に接続するデータ入力部ＤＩ＜６＞へ入力されるデータがデータ入力部ＤＩ＜５＞へも入力されるようになる。また、出力側については、セレクタ２３７〜２４２の制御部にデータ“０”が入力されてＲＡＭ２２１のデータ出力部ＤＯ＜０＞からＤＯ＜５＞より出力されるデータがそれぞれ冗長データ出力部ＸＤＯ＜１＞からＸＤＯ＜６＞へ出力されるとともに、セレクタ２４３〜２５１の制御部にデータ“１”が入力されてＲＡＭ２２１のデータ出力部ＤＯ＜７＞からＤＯ＜１５＞より出力されるデータがそれぞれ冗長データ出力部ＸＤＯ＜７＞からＸＤＯ＜１５＞へ出力されて、故障の発生した記憶素子に接続するデータ出力部ＤＯ＜６＞から出力されるデータを記憶システムの外部へ出力させないようにする。したがって、故障の発生した記憶素子に接続するデータ入出力部（ＤＩ＜６＞，ＤＯ＜６＞）を不使用にするとともに、データ入出力部（ＤＩ＜６＞，ＤＯ＜６＞）に代えて予備のデータ入出力部（ＤＩ＜０＞，ＤＯ＜０＞）を使用することにより、セレクタ２２３〜２５１を備えたＲＡＭ２２１から成る冗長記憶回路は１５ビットのデータ入出力機能を有するＲＡＭとして正常に動作する。
【００１６】
次に、図２９および図３０に示されたテスト回路２２２の構成および動作について詳細に説明する。図３１から図３３は、従来のテスト回路を示す図である。図３１は図３２と図３３との位置関係を示す説明図であり、図３２および図３３は従来のテスト回路の内部構成を示す回路図である。図３２および図３３において、ＳＦＦＡ＜０＞からＳＦＦＡ＜１５＞はスキャンフリップフロップ、２６１〜２７４は２入力ＡＮＤゲートである。スキャンフリップフロップＳＦＦＡ＜０＞からＳＦＦＡ＜１５＞について、ＳＩはシリアルデータ入力部、ＳＯはシリアルデータ出力部、ＳＩＤＯはシリアル入力データ、ＳＯＤＯはシリアル出力データである。図３２および図３３に示されるように、スキャンフリップフロップＳＦＦＡ＜ｉ＞（ｉ＝１〜１５）のシリアルデータ出力部ＳＯはそれぞれスキャンフリップフロップＳＦＦＡ＜ｉ−１＞のシリアルデータ入力部ＳＩに接続され、これによりスキャンフリップフロップＳＦＦＡ＜０＞からＳＦＦＡ＜１５＞が直列接続されて、ＲＡＭテスト用のスキャンパスが構成されている。また、ＡＮＤゲートｉ（ｉ＝２６２〜２７４）の出力部はＡＮＤゲート（ｉ−１）の一方の入力部に接続される。これにより、ＡＮＤゲートｉの出力が“０”となると、ｉより小さなすべてのｊについてＡＮＤゲートｊの出力もすべて“０”となる。例えば、ＡＮＤゲート２６６の出力が“０”となると、ＡＮＤゲート２６１〜２６５の出力もすべて“０”となる。
【００１７】
また、ＩＤＯ＜０＞からＩＤＯ＜１５＞はテスト回路２２２のデータ入力部、Ｆ＜１＞からＦ＜１５＞はテスト回路２２２のデータ出力部、ＴＭＳＩ，ＴＭＦＢはテストモード信号、ＣＭＰ０Ｌ（Ａ），ＣＭＰ１Ｌ（Ａ），ＣＭＰ０Ｌ（Ｂ），ＣＭＰ１Ｌ（Ｂ）は比較制御信号である。これらの信号から、図２９に示される制御信号群ＳＰＣＴＲＬが構成される。図３２および図３３に示されるように、比較制御信号ＣＭＰ０Ｌ（Ａ），ＣＭＰ１Ｌ（Ａ）は偶数番のスキャンフリップフロップＳＦＦＡに入力され、比較制御信号ＣＭＰ０Ｌ（Ｂ），ＣＭＰ１Ｌ（Ｂ）は奇数番のスキャンフリップフロップＳＦＦＡに入力される。これにより、偶数番（Ａグループ）のスキャンフリップフロップＳＦＦＡと奇数番（Ｂグループ）のスキャンフリップフロップＳＦＦＡとにそれぞれ独立に期待値を設定することが可能となる。
【００１８】
図３４は、スキャンフリップフロップＳＦＦＡの回路構成を示す図である。図３４において、２８１，２８６，２８９はインバータ、２８２，２８３，２８４，２８７はＯＲゲート、２８５，２８８はＮＡＮＤゲート、２９０はＤフリップフロップである。また、Ｔはクロック信号Ｔであり、ＣＭＰ０Ｌは比較制御信号ＣＭＰ０Ｌ（Ａ）またはＣＭＰ０Ｌ（Ｂ）のいずれかを示し、ＣＭＰ１Ｌは比較制御信号ＣＭＰ１Ｌ（Ａ）またはＣＭＰ１Ｌ（Ｂ）のいずれかを示すものとする。さらに、ＳＩ，ＳＯについてはそれぞれシリアル入力データ信号、シリアル出力データ信号をも示すものとする。
【００１９】
次に、図３２および図３３に示されるテスト回路の動作について説明する。
ＲＡＭ２２１のテストを実施する前に、ＴＭＳＩ＝０，ＴＭＦＢ＝１，ＣＭＰ１Ｌ＝１，ＣＭＰ０Ｌ＝１として、スキャンフリップフロップＳＦＦＡをシフトモードに設定する。ＴＭＦＢ＝１とすることで、ＯＲゲート２８４の出力は“１”となる。ＣＭＰ０Ｌ＝１とすることで、ＯＲゲート２８２の出力は“１”となる。ＴＭＳＩ＝０とすることで、ＯＲゲート２８３の出力はシリアル入力データ信号ＳＩと同じ信号レベルとなる。したがって、インバータ２８６の出力もシリアル入力データ信号ＳＩと同じ信号レベルとなる。また、ＣＭＰ１Ｌ＝１とすることで、ＯＲゲート２８７の出力は“１”となる。これにより、インバータ２８９の出力はシリアル入力データ信号ＳＩと同じ信号レベルとなる。この状態でＤフリップフロップ１９０にクロック信号Ｔによりクロックが入力されると、シリアル入力データ信号ＳＩの信号レベルがラッチされてシリアルデータ出力信号ＳＯとして出力される。したがって、シリアル入力データＳＩＤＯとして“１”を設定し、クロック信号Ｔにより与えられるクロックに応じてデータ“１”を順次シフトインすることで、スキャンフリップフロップＳＦＦＡ＜０＞からＳＦＦＡ＜１５＞すべてに“１”をラッチさせる。この際、テスト回路２２２のデータ出力部Ｆ＜１＞からＦ＜１５＞からはすべてデータ“１”が出力される。
【００２０】
次に、ＲＡＭのテストを実施するに際して、ＴＭＦＢ＝０，ＴＭＳＩ＝１とするとともに、ＣＭＰ０ＬおよびＣＭＰ１Ｌについていずれか一方を０に他方を１にすることによりテストモードに設定して比較動作を実施する。例えば、ＲＡＭ２２１から読み出されるデータの期待値が“１”である場合には、ＣＭＰ１Ｌ＝０，ＣＭＰ０Ｌ＝１とする。既に、スキャンフリップフロップＳＦＦＡにデータ“１”が保持されていることをも考慮すると、ＯＲゲート２８２，２８３，２８４の出力はすべて“１”となり、インバータ２８６の出力も“１”となる。ＲＡＭ２２１から読み出されるデータが“１”すなわちＩＤＯ＝１である場合には、ＯＲゲート２８７の出力が“１”となってインバータ２８９の出力も“１”となる。この状態でＤフリップフロップ２９０へクロック信号Ｔによりクロックが入力されると、Ｄフリップフロップ２９０の出力は“１”となり、スキャンフリップフロップＳＦＦＡの保持データは変化しない。また、ＲＡＭ２２１から読み出されるデータが期待値に反して“０”すなわちＩＤＯ＝０である場合には、ＯＲゲート２８７の出力が“０”となってインバータ２８９の出力も“０”となる。この状態でＤフリップフロップ２９０へクロック信号Ｔによりクロックが入力されると、Ｄフリップフロップ２９０の出力は“０”に変化し、スキャンフリップフロップＳＦＦＡの出力も“０”となる。なお、期待値が“０”である場合には、ＣＭＰ１Ｌ＝１，ＣＭＰ０Ｌ＝０に設定することで、同様にＲＡＭ２２１から読み出されるデータが期待値と同じ場合にはスキャンフリップフロップＳＦＦＡの出力は“１”に保持され、ＲＡＭ２２１から読み出されるデータが期待値と異なる場合にはスキャンフリップフロップＳＦＦＡの出力は“０”に変化する。上記のようにＲＡＭ２２１内の記憶素子に故障が検出されると、当該記憶素子に係るスキャンフリップフロップＳＦＦＡの出力すなわちシリアル出力データ信号ＳＯは“０”となり、故障の有無に係る当該テスト結果は各スキャンフリップフロップＳＦＦＡにおいて保持される。
【００２１】
上記のようにＲＡＭ２２１から読み出されるデータについて、各ビット毎の比較動作が終了すると、図３２および図３３に示されるテスト回路においては、１６ビット分のテスト結果が得られる。これらのテスト結果は、ＲＡＭ２２１に係る各データ入出力部（ＤＩ＜ｉ＞，ＤＯ＜ｉ＞）に接続する記憶素子に故障が存在するか否かを示すＰａｓｓ／Ｆａｉｌフラグとなる。すなわち、テスト結果が“１”の場合はＰａｓｓを示し、テスト結果が“０”の場合はＦａｉｌを示す。そして、テスト結果として、データ入出力部（ＤＩ＜ｉ＞，ＤＯ＜ｉ＞）に接続する記憶素子に故障が発生してスキャンフリップフロップＳＦＦＡ＜ｉ＞の出力が“０”となると、ＡＮＤゲート２６１〜２７４の動作に基づいてテスト回路２２２においてデータ出力部Ｆ＜１＞からＦ＜ｉ＞よりデータ“０”を出力し、データ出力部Ｆ＜ｉ＋１＞からＦ＜１５＞よりデータ“１”を出力する。例を挙げて説明すれば、ＲＡＭ２２１に係るテストに基づき、データ入出力部（ＤＩ＜６＞，ＤＯ＜６＞）に接続する記憶素子について故障が検出された場合には、スキャンフリップフロップＳＦＦＡ＜６＞の出力が“０”となる。これにより、テスト回路２２２においてデータ出力部Ｆ＜１＞からＦ＜６＞よりデータ“０”を出力し、データ出力部Ｆ＜７＞からＦ＜１５＞よりデータ“１”を出力する。これらの出力データをそれぞれ図２９および図３０に示されるセレクタ２２３〜２５１の制御部に入力して、データ入出力部（ＤＩ＜６＞，ＤＯ＜６＞）の使用を無効にすることにより、記憶素子の故障に対する救済を実施する。この場合、ＲＡＭ２２１は、データ入出力部（ＤＩ＜ｉ＞，ＤＯ＜ｉ＞）（ｉ＝０〜５，７〜１５）を使用して１５ビットのデータ入出力機能を有するＲＡＭとして正常に動作する。
【００２２】
なお、テスト結果を読み出す必要がある場合には、ＲＡＭ２２１のテストを終了した後に、ＴＭＳＩ＝０，ＴＭＦＢ＝１，ＣＭＰ１Ｌ＝１，ＣＭＰ０Ｌ＝１として、各スキャンフリップフロップＳＦＦＡをシフトモードに設定する。そして、クロック信号Ｔより供給されるクロックに応じて各スキャンフリップフロップＳＦＦＡに保持されたデータを順次シフトアウトして、シリアル出力データＳＯＤＯとして取り出す。例えば、テスト結果としてＳＦＦ＜６＞の出力のみが“０”となっている場合には、全体的なテスト結果としてシリアルデータ“１１１１１１０１１１１１１１１１”が得られることになる。
【００２３】
【発明が解決しようとする課題】
従来の半導体集積回路装置は以上のように構成されているので、ＥＣＣ回路、テスト回路および冗長記憶回路を組み合せれば、冗長記憶回路を用いることでＲＡＭに対する故障救済を実施するとともに、さらに故障救済がなされたＲＡＭに対してＥＣＣ回路によるエラー訂正を実施することが可能である。したがって、従来技術で例示したＥＣＣ回路、テスト回路および冗長記憶回路を組み合せて記憶システムを構成することで、ＲＡＭ内の１つのワードデータに係る記憶素子に２ビットの故障が生じても救済可能なことがある。しかし、ＥＣＣ回路では複数ビット（従来の技術において例示されたＥＣＣ回路では３ビット以上）のエラーについてはエラーの存在を検出できないことがあるので、ＥＣＣ回路によるエラー訂正が正常に実施されたか否かを評価することができない。すなわち、例えば１つのワードデータに係る記憶素子に４ビットの故障が存在して、これら故障のなかの１ビットの故障を冗長記憶回路を用いて救済した場合において、ＥＣＣ回路におけるエラー検出回路が３ビット分の記憶素子の故障に基づくエラーを全く検出できないことがある。したがって、従来の技術における冗長記憶回路とＥＣＣ回路とを組み合せるのみでは、ＲＡＭ内の記憶素子に生じた故障に対する救済を保証することができないという課題があった。
【００２４】
また、ＥＣＣ回路によりエラー訂正された記憶素子の故障に基づくエラーに係るビット数を知ることができないので、記憶素子等の故障に基づくエラー以外のソフトエラー等についてＲＡＭ全体としてのエラー訂正能力を評価することができないという課題があった。
【００２５】
この発明は上記のような課題を解決するためになされたもので、ＲＡＭに係る故障救済を保証することができる半導体集積回路装置を得ることを目的とする。
また、この発明はＲＡＭ全体としてのソフトエラーに対するエラー訂正能力を評価することができる半導体集積回路装置を得ることを目的とする。
【００２６】
【課題を解決するための手段】
この発明に係る半導体集積回路装置は、複数ビットのデータ入力部およびデータ出力部と、少なくとも１ビットの予備データ入力部および予備データ出力部とを有して構成される記憶手段と、記憶手段の記憶素子に故障が存在しない場合には、記憶手段へのデータの入出力を複数ビットのデータ入力部およびデータ出力部を使用して実施し、記憶手段の記憶素子に故障が存在する場合には、当該故障の存在する記憶素子に係るビット位置のデータ入力部およびデータ出力部を不使用にするとともに、不使用にしたデータ入力部およびデータ出力部と同数の予備データ入力部および予備データ出力部を使用して記憶手段へのデータの入出力を実施する入出力切り換え手段と、記憶手段と入出力切り換え手段とから成る冗長記憶手段のデータ出力部、あるいは記憶手段のデータ出力部または記憶手段のデータ出力部および予備データ出力部からの出力データと期待値とを各ビット毎に比較し、当該比較結果を保持可能であるとともに、任意のビット位置に係る比較動作を不能とすることができるテスト手段と、テスト手段における各ビット毎の比較結果を逐次的に取り出すことができるテスト結果出力手段と、テスト結果出力手段により取り出された各ビット毎の比較結果に基づいて故障の存在する記憶素子に係るビット位置を特定する故障位置特定手段とを備えるようにしたものである。
【００２７】
この発明に係る半導体集積回路装置は、冗長記憶手段に入力される情報データについて１ビットのエラー検出を可能とするパリティデータを生成し、当該パリティデータを冗長記憶手段に出力するパリティ生成手段と、情報データと当該情報データに対応するパリティデータとから構成される冗長記憶手段よりの出力データを入力して、１ビットのエラーの存在するビット位置を特定するエラー位置特定手段と、エラー位置特定手段から出力される信号に基づき、エラーの存在するビット位置について冗長記憶手段のデータ出力部から出力されるデータを反転させるエラー訂正手段とを備えるようにしたものである。
【００２８】
この発明に係る半導体集積回路装置は、故障位置特定手段が、故障を示すビットデータの検出をトリガとして停止するまで、逐次的に取り出される比較結果のビット数を計数し、当該計数値をバイナリデータとして出力する計数手段と、バイナリデータをデコードするデコード手段とを有して構成され、エラー位置特定手段が、冗長記憶手段からの出力データを入力して、エラーの存在するビット位置をバイナリデータとして出力するエラー位置出力手段と、バイナリデータをデコードする上記デコード手段とを有して構成され、計数手段のデータ出力部に接続されるとともにエラー位置出力手段のデータ出力部に接続されて、計数手段のデータ出力部かエラー位置出力手段のデータ出力部のいずれか一方を選択的にデコード手段のデータ入力部に接続する選択手段を備えるようにしたものである。
【００２９】
この発明に係る半導体集積回路装置は、冗長記憶手段のデータ出力部とテスト手段のデータ入力部とを接続可能とするとともに、デコード手段のデータ出力部とテスト手段のデータ入力部とを接続可能として、テスト手段にイクスクルーシブ・オア演算を実施する回路素子を組み込むようにしたものである。
【００３０】
この発明に係る半導体集積回路装置は、情報データについて１ビットのエラー検出を可能とするパリティデータを生成して出力するパリティ生成手段と、パリティ生成手段からのパリティデータと、冗長記憶手段において当該パリティデータに係るビット位置のデータ出力部から出力されるデータとをそれぞれ対応するビット位置毎に入力する複数のイクスクルーシブ・オアゲートと、冗長記憶手段に入力される情報データ、または冗長記憶手段において情報データに係るビット位置のデータ出力部から出力されるデータのいずれか一方を選択的にパリティ生成手段のデータ入力部に入力する選択手段とを備えるようにしたものである。
【００３１】
この発明に係る半導体集積回路装置は、テスト結果出力手段により取り出されたワードデータ毎の比較結果のなかにおける故障に係るビットデータ数を少なくとも２以上計数することができる第１の故障数計数手段を備えるようにしたものである。
【００３２】
この発明に係る半導体集積回路装置は、テスト結果出力手段により取り出された比較結果における故障に係るビットデータ数を計数することができる第２の故障数計数手段を備えるようにしたものである。
【００３３】
【発明の実施の形態】
以下、この発明の実施の一形態を説明する。
実施の形態１．
図１は、この発明の実施の形態１によるＥＣＣ回路、冗長記憶回路およびテスト回路等を有して構成される記憶システムとして与えられる半導体集積回路装置の構成を示す回路図である。図１において、１は冗長記憶回路およびテスト回路等から成る複合回路、２は１１ビットの情報データから成るデータ集合に対応する４ビットのパリティデータを生成するパリティ生成回路（パリティ生成手段）、３は複合回路１の出力データについてのエラー検出を実施してエラー検出結果並びにエラーが存在するビット位置をバイナリデータとして出力するエラー検出回路（エラー位置出力手段）、４はエラー検出回路３および後述のカウンタ７から入力されるバイナリデータをデコードするデコーダ回路（デコード手段）、５は２入力のＡＮＤゲート、６はＤフリップフロップ、７はＲＡＭに対するテスト結果を示すシリアルデータに係るビット数を計数するカウンタ（計数手段）、８から１１は出力部がデコーダ回路４の入力部に接続されるセレクタ、１２から２２はＥＸ−ＯＲゲートである。なお、ＡＮＤゲート５、Ｄフリップフロップ６、カウンタ７およびデコーダ回路４からＲＡＭに対するテスト結果に基づいて故障の存在するメモリセル、ビット線等の記憶素子に係るビット位置を特定する故障位置特定手段が構成される。また、エラー検出回路３およびデコーダ回路４から情報データとパリティデータとから構成される記憶手段よりの出力データを入力して、１ビットのエラーの存在するビット位置を特定するエラー位置特定手段が構成される。また、複数のＥＸ−ＯＲゲート１２〜２２によりエラー位置特定手段から出力される信号に基づき、エラーの存在するビット位置について記憶手段のデータ出力部から出力されるデータを反転させるエラー訂正手段が構成される。さらに、複数のセレクタ８〜１１により、カウンタ７のデータ出力部かエラー検出回路３のデータ出力部のいずれか一方を選択的にデコーダ回路４のデータ入力部に接続する選択手段が構成される。
【００３４】
Ｄフリップフロップ６については、Ｓはリセット信号入力部を示し、リセット信号が入力されると、Ｄフリップフロップ６の出力Ｑは“１”に設定される。カウンタ７については、Ｑ０，Ｑ１，Ｑ２，Ｑ３がそれぞれ２０，２１，２２，２３に対応するバイナリデータのデータ出力部である。ＥＮはイネーブル信号入力部を示し、“１”が入力されている間においてはカウンタ７が動作可能状態となり、“０”が入力されている間においてはカウンタ７が動作停止状態となる。また、Ｒはリセット信号入力部を示し、リセット信号が入力されると、データ出力部Ｑ１，Ｑ２，Ｑ３，Ｑ４の出力はすべて“０”となる。
【００３５】
また、ＣＤＩ＜０＞からＣＤＩ＜１０＞は上記複数の回路から構成される記憶システムに対するデータ入力部、Ｘ１からＸ１１はデータ入力部ＣＤＩ＜０＞からＣＤＩ＜１０＞にそれぞれ対応する各１ビットの情報データ、Ｐ１からＰ４は情報データＸ１からＸ１１を基にしてパリティ生成回路２により生成され出力される各１ビットのパリティデータ、ＸＤＩ＜１＞からＸＤＩ＜１５＞は複合回路１の冗長データ入力部、ＸＤＯ＜１＞からＸＤＯ＜１５＞およびＹＤＯ＜１＞からＹＤＯ＜１５＞は複合回路１の冗長データ出力部、Ｅ１からＥ４はエラー検出回路３から出力される各１ビットのエラー検出用データ、Ｉ＜０＞からＩ＜３＞はデコーダ回路４のデータ入力部、Ｂ＜０＞からＢ＜１５＞はデコーダ回路４のデータ出力部および当該出力部に対応するように複合回路１に設けられたデータ入力部、ＣＤＯ＜０＞からＣＤＯ＜１０＞は記憶システムに対するデータ出力部である。
【００３６】
さらに、ＭＡＳＫは後述するスキャンフリップフロップＳＦＦ＜ｉ＞（ｉ＝０〜１５）に接続されてスキャンフリップフロップＳＦＦ内の比較動作を不能にするマスク信号、ＩＮＩＴ１はＤフリップフロップ６およびカウンタ７を初期化するための初期化信号、ＦＬＡＧ１はＲＡＭのテスト結果についてのＰａｓｓ／Ｆａｉｌを通知するためのフラグ用信号、ＳＥＬＩはセレクタ８〜１１の制御部に入力されるセレクタ制御信号、ＤＥＣＥＮはデコーダ回路４の出力を制御するイネーブル信号である。ＳＥＬＩ＝０であればセレクタ８〜１１の“０”入力部から入力されるデータがデータ出力部から出力され、ＳＥＬＩ＝１であればセレクタ８〜１１の“１”入力部から入力されるデータがデータ出力部から出力される。また、ＤＥＣＥＮ＝０であればデコーダ回路４のデータ出力部Ｂ＜ｉ＞（ｉ＝０〜１５）のすべての出力が“０”となる。
【００３７】
次に、図２から図４はこの発明の実施の形態１による冗長記憶回路およびテスト回路を示す図である。図２は図３と図４との位置関係を示す説明図であり、図３および図４はこの発明の実施の形態１による冗長記憶回路およびテスト回路の構成を示す回路図である。図３および図４において、３１はＲＡＭ（記憶手段）、３２はＲＡＭ３１内の記憶素子に故障が存在するか否かを判定するテスト等を実施するテスト回路（テスト手段）、３３〜６１はセレクタである。なお、ＲＡＭ３１については、データ入出力信号に係る部分のみが表示され、アドレス信号、制御信号等に係る回路部位の表示は省略されている。
【００３８】
また、ＸＤＩ＜１＞からＸＤＩ＜１５＞はＲＡＭ３１、テスト回路３２等を有して構成される複合回路１の冗長データ入力部、ＤＩ＜０＞からＤＩ＜１５＞はＲＡＭ３１のデータ入力部、ＤＯ＜０＞からＤＯ＜１５＞はＲＡＭ３１のデータ出力部、ＸＤＯ＜１＞からＸＤＯ＜１５＞は複合回路１の冗長データ出力部、Ｂ＜０＞からＢ＜１５＞は複合回路１のデータ入力部および当該データ入力部に対応するようにテスト回路３２に設けられたデータ入力部、ＩＤＯ＜０＞からＩＤＯ＜１５＞はテスト回路３２のデータ入力部、Ｆ＜０＞からＦ＜１５＞はテスト回路３２のデータ出力部、ＹＤＯ＜１＞からＹＤＯ＜１５＞はテスト回路３２のデータ出力部であるとともに複合回路１の冗長データ出力部、ＳＩＤＯはテスト回路３２へ入力されるシリアル入力データ、ＳＯＤＯはテスト回路３２から出力されるシリアル出力データ、ＳＲＣＴＲＬはテスト回路３２に入力される後述の制御信号群、ＭＡＳＫは図１において説明したマスク信号である。ＲＡＭ３１のデータ出力部ＤＯ＜０＞からＤＯ＜１５＞はそれぞれテスト回路３２のデータ入力部ＩＤＯ＜０＞からＩＤＯ＜１５＞に接続可能であり、複合回路１の冗長データ出力部ＸＤＯ＜１＞からＸＤＯ＜１５＞はそれぞれテスト回路３２のデータ入力部ＩＤＯ＜０＞からＩＤＯ＜１４＞に接続可能となっている。また、テスト回路３２のデータ出力部Ｆ＜１＞からＦ＜１５＞はそれぞれセレクタ４７〜６１の制御部に接続され、さらにデータ出力部Ｆ＜２＞からＦ＜１５＞はそれぞれセレクタ３３〜４６の制御部に接続される。
【００３９】
また、複数のセレクタ３３〜６１により、冗長データ入出力部（ＸＤＩ＜ｉ＞，ＸＤＯ＜ｉ＞）（ｉ＝１〜１５）に対して入出力されるデータ数より多いＲＡＭ３１のデータ入出力部（ＤＩ＜ｉ＞，ＤＯ＜ｉ＞）（ｉ＝０〜１５）の使用形態を適宜設定できるように冗長データ入力部ＸＤＩとＲＡＭ３１のデータ入力部ＤＩとの接続並びに冗長データ出力部ＸＤＯとＲＡＭ３１のデータ出力部ＤＯとの接続を切り換える入出力切り換え手段が構成される。また、符号６２は記憶手段としてのＲＡＭ３１と入出力切り換え手段としてのセレクタ３３〜６１とを有して構成される冗長記憶回路（冗長記憶手段）である。なお、ＲＡＭ３１を構成する記憶素子に故障が存在しない場合には、データ入出力部（ＤＩ＜ｉ＞，ＤＯ＜ｉ＞）（ｉ＝１〜１５）を使用して、ＲＡＭ３１に対するデータの入出力を実施する。すなわち、データ入出力部（ＤＩ＜０＞，ＤＯ＜０＞）は記憶素子に故障が発生した場合の予備のデータ入出力部として与えられているものであり、以降の説明においてデータ入力部ＤＩ＜０＞およびデータ出力部ＤＯ＜０＞を他のデータ入出力部と区別してそれぞれ予備データ入力部および予備データ出力部と称することがある。
【００４０】
次に、図５から図７はこの発明の実施の形態１によるテスト回路を示す図である。図５は図６と図７との位置関係を示す説明図であり、図６および図７はこの発明の実施の形態１によるテスト回路の内部構成を示す回路図である。図６および図７において、ＳＦＦ＜０＞からＳＦＦ＜１５＞はスキャンフリップフロップ、７１〜８６は２入力のＡＮＤゲートである。スキャンフリップフロップＳＦＦ＜０＞からＳＦＦ＜１５＞について、ＳＩはシリアルデータ入力部、ＳＯはシリアルデータ出力部、ＳＩＤＯはシリアル入力データ、ＳＯＤＯはシリアル出力データである。図６および図７に示されるように、スキャンフリップフロップＳＦＦ＜ｉ＞（ｉ＝１〜１５）のシリアルデータ出力部ＳＯはスキャンフリップフロップＳＦＦ＜ｉ−１＞のシリアルデータ入力部ＳＩに接続される。符号８７は、スキャンフリップフロップＳＦＦ＜０＞からＳＦＦ＜１５＞が直列接続されて構成されるＲＡＭテスト用のスキャンパスである。このスキャンパス８７は、ＲＡＭ３１をテストした際にテスト回路３２に保持される各ビット毎の比較結果を逐次的に取り出すことができるテスト結果出力手段として機能する。また、ＡＮＤゲートｉ（ｉ＝７１〜８６）の出力部はＡＮＤゲート（ｉ−１）の一方の入力部に接続される。これにより、ＡＮＤゲートｉの出力が“０”となると、ｉより小さなすべてのｊについてＡＮＤゲートｊの出力も“０”となる。
【００４１】
また、ＩＤＯ＜０＞からＩＤＯ＜１５＞およびＢ＜０＞からＢ＜１５＞はそれぞれテスト回路３２のデータ入力部、Ｆ＜０＞からＦ＜１５＞およびＹＤＯ＜１＞からＹＤＯ＜１５＞はそれぞれテスト回路３２のデータ出力部、ＴＭＳＩ，ＴＭＦＢはテストモード信号、ＣＭＰ０Ｌ（Ａ），ＣＭＰ１Ｌ（Ａ），ＣＭＰ０Ｌ（Ｂ），ＣＭＰ１Ｌ（Ｂ）は比較制御信号、ＲＥＤＥＮはＡＮＤゲート７１〜８６の出力を制御する制御信号である。これらの信号から、図３に示される制御信号群ＳＰＣＴＲＬが構成される。図６および図７に示されるように、比較制御信号ＣＭＰ０Ｌ（Ａ），ＣＭＰ１Ｌ（Ａ）は偶数番のスキャンフリップフロップＳＦＦに入力され、比較制御信号ＣＭＰ０Ｌ（Ｂ），ＣＭＰ１Ｌ（Ｂ）は奇数番のスキャンフリップフロップＳＦＦに入力される。これにより、偶数番（Ａグループ）のスキャンフリップフロップＳＦＦと奇数番（Ｂグループ）のスキャンフリップフロップＳＦＦとにそれぞれ独立に期待値を設定することができる。また、スキャンフリップフロップＳＦＦ＜ｉ＞（ｉ＝０〜１４）については、それぞれデータ入力部ＩＤＯ＜ｉ＞、データ入力部Ｂ＜ｉ＋１＞、データ出力部ＹＤＯ＜ｉ＋１＞が接続されるとともに、それぞれＡＮＤゲート７１〜８６を介してデータ出力部Ｆ＜ｉ＞が接続される。スキャンフリップフロップＳＦＦ＜１５＞については、データ入力部ＩＤＯ＜１５＞、データ入力部Ｂ＜０＞が接続されるとともに、ＡＮＤゲート８６を介してデータ出力部Ｆ＜１５＞に接続される。また、制御信号ＲＥＤＥＮについては、ＲＥＤＥＮ＝０とすることでＡＮＤゲート７１〜８６のすべての出力すなわちデータ出力部Ｆ＜０＞からＦ＜１５＞の出力を“０”にすることができる。なお、マスク信号ＭＡＳＫについては、図６および図７においては配線の表示が省略されているが、すべてのスキャンフリップフロップＳＦＦに共通に接続されている。
【００４２】
図８は、この発明の実施の形態１によるスキャンフリップフロップＳＦＦの構成を示す回路図である。図８において、９１はＡＮＤゲート、９２，９８，１０１はインバータ、９３，９４，９５，９６，９９はＯＲゲート、９７，１００はＮＡＮＤゲート、１０２はＤフリップフロップである。また、Ｔはクロック信号Ｔであり、ＣＭＰ０Ｌは比較制御信号ＣＭＰ０Ｌ（Ａ）またはＣＭＰ０Ｌ（Ｂ）のいずれかを示し、ＣＭＰ１Ｌは比較制御信号ＣＭＰ１Ｌ（Ａ）またはＣＭＰ１Ｌ（Ｂ）のいずれかを示す。また、ＳＩ，ＳＯについてはそれぞれシリアル入力データ信号、シリアル出力データ信号をも示すものとする。さらに、Ｂはデータ入力部Ｂ＜ｉ＞（ｉ＝０〜１５）からの信号を総括して示すものとし、Ｄはデータ入力部ＩＤＯ＜ｉ＞（ｉ＝０〜１５）からの信号を総括して示すものとする。
【００４３】
次に、図８に示されたスキャンフリップフロップＳＦＦの動作について説明する。
ＭＡＳＫ＝０またはＢ＝０の場合には、ＯＲゲート９９の一方の入力部の信号レベルは比較制御信号ＣＭＰ１Ｌの信号レベルと同じになるとともに、ＯＲゲート９３の入力部へのＡＮＤゲート９１からの出力は無効となるために、図８に示されるスキャンフリップフロップＳＦＦは従来の技術に係る説明において図３４に示されたスキャンフリップフロップＳＦＦＡと実質的に同じ回路構成を有することになる。したがって、ＴＭＳＩ＝０，ＴＭＦＢ＝１，ＣＭＰ１Ｌ＝１，ＣＭＰ０Ｌ＝１とすることでシフトモードに設定することができ、各スキャンフリップフロップＳＦＦに保持されたデータをクロック信号Ｔにより供給されるクロックに応じて順次シフトすることが可能となる。また、ＴＭＦＢ＝０，ＴＭＳＩ＝１とするとともに、ＣＭＰ０ＬおよびＣＭＰ１Ｌについていずれか一方を０に他方を１にすることで比較動作を実施するテストモードに設定することができる。なお、シフトモードおよびテストモードにおける図８に示されるスキャンフリップフロップＳＦＦの回路動作は図３４に示されるスキャンフリップフロップＳＦＦに係る回路動作と同様であるので、その説明を省略する。
【００４４】
また、ＴＭＳＩ＝１，ＴＮＦＢ＝０，ＣＭＰ１Ｌ＝１，ＣＭＰ０Ｌ＝１とすることで、ＯＲゲート９６の出力は“１”となってＯＲゲート９９の出力も“１”となる。また、ＯＲゲート９３およびＯＲゲート９４の出力は“１”となり、ＯＲゲート９５の出力はＤフリップフロップ１０２の出力部の信号レベルと同じ信号レベルとなるから、インバータ９８の出力もＤフリップフロップ１０２の出力部の信号レベルと同じ信号レベルとなる。したがって、インバータ１０１の出力はＤフリップフロップ１０２の信号レベルと同じ信号レベルとなって、クロック信号Ｔにより任意の数のクロックが供給されても出力データを保持可能なデータ保持モードに設定することができる。
【００４５】
また、ＭＡＳＫ＝１の場合にはＡＮＤゲート９１の出力は信号Ｂの信号レベルと同じ信号レベルとなる。したがって、Ｄフリップフロップ１０２に“１”をラッチさせた後に、テストモード（ＴＭＳＩ＝１，ＴＭＦＢ＝０）においてＢ＝１とすると、ＡＮＤゲート９１の出力が“１”となってＯＲゲート９９の出力は“１”となる。また、ＯＲゲート９３、ＯＲゲート９４およびＯＲゲート９５の出力はすべて“１”となるから、インバータ９８の出力も“１”となる。したがって、インバータ１０１の出力は“１”となるので、Ｄフリップフロップ１０２の出力は“１”に保持される。すなわち、比較制御信号ＣＭＰ０Ｌ，ＣＭＰ１Ｌの値に関係なく、信号Ｂとして“１”が入力されたスキャンフリップフロップＳＦＦの出力は“１”を保持するので、当該スキャンフリップフロップＳＦＦについては比較動作が不能となる。
【００４６】
次に、図１に示されたＥＣＣ回路、冗長記憶回路およびテスト回路等を有して構成される記憶システムに係る動作について、従来の技術で述べた記憶システムと異なる点を中心に説明する。
まず、概略的に説明すると、テスト回路３２はＲＡＭ３１内において故障が存在するメモリセル、ビット線等の記憶素子の検出等を実行するように動作する。この実施の形態１におけるテスト回路３２を用いたＲＡＭ３１に対するテストは、大別すれば、故障が存在する記憶素子に接続するデータ出力部からのデータの異常を検知して冗長記憶回路６２による故障救済を実施するビット位置を特定する故障救済ビット位置特定テストと、当該故障救済ビット位置についてテスト回路３２における比較動作を実施して記憶素子の故障に基づくエラーをＥＣＣ回路により訂正可能か否かを判定する訂正可否判定テスト、および故障救済ビット位置のデータ入出力部を不能とするとともに予備データ入出力部（ＤＩ＜０＞，ＤＯ＜０＞）を使用してＲＡＭ３１に対するデータ入出力を実施するようにセレクタ３３〜６１の適宜制御する信号をテスト回路３２から出力させるための冗長記憶回路制御用テストに分けられる。
【００４７】
第１に、上記の故障救済ビット位置特定テストについて説明する。まずＲＡＭ３１のテストを実施する前に、ＴＭＳＩ＝０，ＴＭＦＢ＝１，ＣＭＰ１Ｌ＝１，ＣＭＰ０Ｌ＝１，ＭＡＳＫ＝０として、スキャンフリップフロップＳＦＦをシフトモードに設定する。シフトモードに設定することで、ＯＲゲート９３、ＯＲゲート９５およびＯＲゲート９９の出力は“１”となるので、インバータ１０１の出力はシリアル入力データ信号ＳＩの信号レベルと同じ信号レベルとなる。この状態でＤフリップフロップ１０２にクロック信号Ｔによりクロックが供給されると、シリアル入力データ信号ＳＩの信号レベルがラッチされてシリアル出力データ信号ＳＯとして出力される。したがって、図６に示されるシリアル入力データＳＩＤＯとして“１”を設定し、クロック信号Ｔにより供給されるクロックに応じてデータ“１”を順次シフトインすることで、スキャンフリップフロップＳＦＦのすべてに“１”を保持させる。
【００４８】
次に、ＭＡＳＫ＝０，ＤＥＣＥＮ＝０，ＲＥＤＥＮ＝０，ＴＭＦＢ＝０，ＴＭＳＩ＝１とするとともに、ＣＭＰ０ＬおよびＣＭＰ１Ｌについていずれか一方を０に他方を１にしてテストモードに設定することにより比較動作を実施する。例えば、ＲＡＭ３１から読み出されるデータの期待値が“１”である場合には、ＣＭＰ１Ｌ＝０，ＣＭＰ０Ｌ＝１とする。既に、スキャンフリップフロップＳＦＦにデータ“１”が保持されていることをも考慮すれば、インバータ９８の出力は“１”となり、ＯＲゲート９９の出力はＲＡＭ３１から読み出されるデータに係るデータ信号Ｄの信号レベルと同じ信号レベルとなるので、データ信号Ｄが期待値と同じ“１”である場合にはクロック信号Ｔによりクロックが供給されると、Ｄフリップフロップ１０２の出力は“１”となりスキャンフリップフロップＳＦＦの出力は保持される。また、データ信号Ｄが期待値と異なる“０”である場合には、クロック信号Ｔによりクロックが供給されると、Ｄフリップフロップ１０２の出力は“０”となりスキャンフリップフロップＳＦＦの出力は“０”に変化する。なお、期待値が“０”である場合も同様に、データ信号Ｄが期待値と同じ場合にはスキャンフリップフロップＳＦＦの出力は“１”に保持され、データ信号Ｄが期待値と異なる場合にはスキャンフリップフロップＳＦＦの出力は“０”に変化する。なお、上記の比較動作に基づくテストは任意の数のワードデータについて逐次的または断続的に実施され、一度でもデータ信号が期待値と異なる場合があれば当該ビット位置に係るスキャンフリップフロップＳＦＦの出力は“０”に変化し、故障救済ビット位置特定テストが実施される期間において当該データ“０”が保持される。すなわち、上記のように各データ入出力部（ＤＩ＜ｉ＞，ＤＯ＜ｉ＞）（ｉ＝１〜１５）について、任意の数のワードデータについての比較結果をそれぞれ対応するスキャンフリップフロップＳＦＦ＜ｉ＞（ｉ＝１〜１５）に保持して、１６ビットのテスト結果を得る。
【００４９】
なお、上記の故障救済ビット位置特定テストについては、冗長記憶回路６２により救済される故障の存在する記憶素子に接続するデータ入出力部ＤＩ，ＤＯのビット位置は１つに限られるために、故障救済対象のデータ入出力部は１ビット分検出すれば十分である。このために、故障救済ビット位置特定テストにおけるテスト対象のＲＡＭ３１内に記憶されたワードデータの選定には種々の方式が考えられる。例えば、記憶素子としてのビット線の故障を検出して、当該故障の存在するビット線に接続するデータ入出力部のビット位置を特定する場合を考える。図９は、ＲＡＭの基本的な構成を示す図である。図９において、説明を簡単にするために１つのメモリブロック内のメモリセル数を３２個（０〜３１）とする。図９において、Ａ０〜Ａ４はアドレス信号であり、信号Ａ０および信号Ａ１に基づいてＹデコーダによりビット線が選択され、信号Ａ２、信号Ａ３および信号Ａ４に基づいてＸデコーダによりワード線が選択される。また、Ｂ１，Ｂ２，Ｂ３，Ｂ４はビット線、ＤＯ＜０＞からＤＯ＜３＞はデータ出力部を示す。すなわち、このＲＡＭでは１つのワードデータとして３ビットのデータが出力される。したがって、図９に示されるような回路構成を有するＲＡＭについては、故障の存在するビット線に接続するデータ入出力部のビット位置を特定するためには、アドレス信号Ａ０〜Ａ４を制御して、０番地、１番地、２番地および３番地に記憶されたワードデータに対して各ビット毎に期待値との比較によるテストを実施すれば十分である。例えば、アドレス信号Ａ０〜Ａ４により２番地を指定した際にデータ出力部ＤＯ＜１＞から出力されるデータに異常が検出されれば、データ出力部ＤＯ＜１＞に接続するビット線Ｂ３に故障が存在することが推定される。
【００５０】
また、記憶素子としてのメモリセルの故障を検出して、当該メモリセルに接続するデータ入出力部のビット位置を特定する場合には、所定の規則により導かれたアドレス毎のワードデータを取り出して比較動作を実施し、出力データに異常が検出された時点でテストを終了する方式が考えられる。すなわち、ＲＥＤＥＮ＝０の条件下でデータ出力部Ｆ＜０＞の出力が“０”となった時点でテストを終了し、異常が検出されたデータを出力したデータ出力部ＤＯに係るビット位置を故障救済ビット位置とする。
【００５１】
次に、故障救済ビット位置特定テストにおいて、テスト回路３２によるＲＡＭ３１に対するテスト結果が得られれば、図１に示される初期化信号ＩＮＩＴ１をアクティブにして、Ｄフリップフロップ６およびカウンタ７を初期化して、Ｄフリップフロップ６の出力Ｑを“１”とするとともに、カウンタ７の出力をＱ０＝Ｑ１＝Ｑ２＝Ｑ３＝０とする。この初期化が終了すれば、ＴＭＳＩ＝０，ＴＭＦＢ＝１，ＣＭＰ１Ｌ＝１，ＣＭＰ０Ｌ＝１，ＭＡＳＫ＝０として、図６および図７に示されるテスト回路３２を再びシフトモードに設定する。
【００５２】
次に、各スキャンフリップフロップＳＦＦ、Ｄフリップフロップ６およびカウンタ７に共通にクロック信号Ｔよりクロックを供給して、スキャンフリップフロップＳＦＦに保持されたテスト結果をシフトアウトするとともにシフトアウトされたビットデータ数を計数する。テスト結果のシフトアウトを実施する間において、故障の存在を示すデータが出力されてシリアル出力データＳＯＤＯが“０”となると、Ｄフリップフロップ６が当該故障に係るビットデータをラッチした段階で、Ｄフリップフロップの出力すなわちカウンタ７へのイネーブル信号が“０”となりカウンタ７の動作は停止する。さらに、Ｄフリップフロップ６の出力部はＡＮＤゲート５の一方の入力部に接続されているので、Ｄフリップフロップ６の出力は“０”に固定され、カウンタ７の停止状態はそのまま維持される。すなわち、ＲＡＭ３１内のデータ入出力部（ＤＩ＜ｉ＞，ＤＯ＜ｉ＞）に接続する記憶素子に故障が発生してスキャンフリップフロップＳＦＦ＜ｉ＞にデータ“０”が保持されている場合には、クロック信号Ｔにより（ｉ＋１）個のクロックが供給された時点で、テスト終了後にスキャンフリップフロップＳＦＦ＜ｉ＞に保持されたデータ“０”がＤフリップフロップ６にラッチされて、フラグ用信号ＦＬＡＧ１の信号レベルが“１”から“０”に変化するとともに、カウンタ７が停止する。したがって、カウンタ７は、故障が生じた記憶素子に接続するデータ入出力部（ＤＩ＜ｉ＞，ＤＯ＜ｉ＞）のビット位置ｉに１を加えた計数値（ｉ＋１）を示すものとなる。なお、ＲＡＭ３１に係るビット位置特定テストにおいて、１または複数の故障を検出した場合には、故障が生じた記憶素子に接続する入出力のなかで最も小さなビット位置にあるデータ入出力部についてのビット位置を検知することになる。また、データ入出力部（ＤＩ＜１５＞，ＤＯ＜１５＞）に接続する記憶素子に故障が存在して、ＳＦＦ＜１５＞の出力に“０”が保持されている場合には、ｉ＋１＝１６となるからカウンタ７の計数は一巡して、Ｑ０＝Ｑ１＝Ｑ２＝Ｑ３＝０となる。
【００５３】
上記動作について例をあげて説明すると、例えばデータ入出力部（ＤＩ＜６＞，ＤＯ＜６＞）に接続する記憶素子に故障が存在する場合には、テスト終了後において当該故障が存在する記憶素子に接続するデータ入出力部に対応するスキャンフリップフロップＳＦＦ＜６＞にはデータ“０”が保持される。したがって、テスト結果をシフトアウトする際には、クロック信号Ｔにより７個のクロックが入力された時点で、カウンタ７が停止する。すなわち、カウンタ７は、計数値７を示すＱ３＝０，Ｑ２＝１，Ｑ１＝１，Ｑ０＝１の状態で停止する。これにより、故障が存在する記憶素子に接続するデータ入出力部に係るビット位置（７−１＝６）を検知することができる。
【００５４】
第２に、訂正可否判定テストについて説明する。
故障救済ビット位置特定テストに係るテスト結果のシフトアウトにより、ＦＬＡＧ１＝０となって故障の存在が検出されると、ＭＡＳＫ＝１，ＤＥＣＥＮ＝１，ＲＥＤＥＮ＝０，ＳＥＬＩ＝１，ＴＭＦＢ＝０，ＴＭＳＩ＝１とするとともに、ＣＭＰ０ＬおよびＣＭＰ１Ｌについていずれか一方を０に他方を１に設定して、ＲＡＭ３１内のすべてのワードデータに対してワードデータ毎に比較動作を実施する。ＳＥＬＩ＝１に設定することで、セレクタ８〜１１は“１”入力部に入力されたデータを出力部から出力する。すなわち、デコーダ回路４のデータ入力部Ｉ＜０＞，Ｉ＜１＞，Ｉ＜２＞，Ｉ＜３＞には、それぞれカウンタ７のデータ出力部Ｑ０，Ｑ１，Ｑ２，Ｑ３から出力されるデータが入力される。また、ＤＥＣＥＮ＝１に設定することで、デコーダ回路４は入力されるバイナリデータをデコードして対応するビット位置のデータ出力部から“１”を出力する。ここで、ビット位置ｉに係るデータ入出力部（ＤＩ＜ｉ＞，ＤＯ＜ｉ＞）について故障が検出された場合には、カウンタ７のデータ出力部Ｑ０，Ｑ１，Ｑ２，Ｑ３から出力されるバイナリデータはｉ＋１を表現するように各値が設定されるので、デコードの結果としてデコーダ回路４はデータ出力部Ｂ＜ｉ＋１＞のみから“１”を出力する。
【００５５】
デコーダ回路４のデータ出力部Ｂ＜ｉ＋１＞から出力されたデータ“１”は、テスト回路３２のデータ入力部Ｂ＜ｉ＋１＞に入力される。これにより、データ入力部Ｂ＜ｉ＋１＞に接続されるスキャンフリップフロップＳＦＦ＜ｉ＞については、ＭＡＳＫ＝１並びにＢ＝１となって比較動作が不能となり、当該スキャンフリップフロップＳＦＦ＜ｉ＞の出力は“１”に保持される。なお、データ入出力部（ＤＩ＜１５＞，ＤＯ＜１５＞）について故障が検出された場合には、Ｑ０＝Ｑ１＝Ｑ２＝Ｑ３＝０となってデータ入力部Ｂ＜０＞にデータ“１”が入力される。図６および図７に示されるように、テスト回路３２のデータ入力部Ｂ＜０＞はスキャンフリップフロップＳＦＦ＜１５＞に接続されているので、当該スキャンフリップフロップＳＦＦ＜１５＞は、この場合比較動作不能となってその出力は“１”に保持される。上記の説明から明らかなように、テスト回路３２においてデータ入力部Ｂ＜１＞からＢ＜１５＞をそれぞれスキャンフリップフロップＳＦＦ＜０＞からＳＦＦ＜１４＞に接続するとともに、データ入力部Ｂ＜０＞をスキャンフリップフロップＳＦＦ＜１５＞に接続することで、故障が検出されたデータ入出力部（ＤＩ＜ｉ＞，ＤＯ＜ｉ＞）に対応するスキャンフリップフロップＳＦＦ＜ｉ＞における比較動作を不能とすることができる。
【００５６】
上記動作について例をあげて説明すると、ＲＡＭ３１に対するテスト回路３２による故障救済ビット位置特定テストを終了した後に、例えばデータ入出力部（ＤＩ＜６＞，ＤＯ＜６＞）に接続する記憶素子に故障が存在することが検出された場合には、テスト結果をシフトアウトすることで故障が検出されてＦＬＡＧ１＝０となり、カウンタ７からは計数値７を表現するＱ３＝０，Ｑ２＝１，Ｑ１＝１，Ｑ０＝１が出力される。デコーダ回路４は、これら入力されるバイナリデータをデコードして、データ出力部Ｂ＜７＞のみから“１”を出力する。そして、テスト回路３２においてデータ入力部Ｂ＜７＞に接続されるスキャンフリップフロップＳＦＦ＜６＞は、ＭＡＳＫ＝１並びにＢ＝１である条件下で比較動作不能となり、スキャンフリップフロップＳＦＦ＜６＞の出力は“１”に保持される。
【００５７】
以上説明したように、ＭＡＳＫ＝１，ＤＥＣＥＮ＝１，ＳＥＬＩ＝１とすることで、ＲＡＭ３１に対する故障救済ビット位置特定テストのテスト結果をシフトアウトすることで故障が検出されたデータ入出力部（ＤＩ＜ｉ＞，ＤＯ＜Ｉ＞）については、訂正可否判定テストにおいて比較動作を不能にすることができる。したがって、訂正可否判定テストにおいては、冗長記憶回路６２による故障救済が予定されているデータ入出力部（ＤＩ＜ｉ＞，ＤＯ＜ｉ＞）を除いた他のデータ入出力部ＤＩ，ＤＯを対象として、各ワードデータ毎に期待値との比較動作を実施する。この訂正可否判定テストを実施するに際しては、まず故障救済ビット位置特定テストと同様に、ＴＭＳＩ＝０，ＴＭＦＢ＝１，ＣＭＰ１Ｌ＝１，ＣＭＰ０Ｌ＝１，ＭＡＳＫ＝０としてシフトモードに設定し、スキャンフリップフロップＳＦＦのすべてに“１”を保持させる。
【００５８】
次に、各ワードデータ毎の比較動作に移行する。まず、ＴＭＦＢ＝０，ＴＭＳＩ＝１とするとともに、ＣＭＰ０ＬおよびＣＭＰ１Ｌについていずれか一方を０に他方を１に設定することにより比較動作を実施する。例えば、ＲＡＭ３１から読み出されるデータの期待値が“１”である場合には、ＣＭＰ１Ｌ＝０，ＣＭＰ０Ｌ＝１とする。次に、比較動作の実施により各スキャンフリップフロップＳＦＦの出力部に保持されたテスト結果に係るデータをクロック信号Ｔにより供給される任意の数のクロックに対しても保持するために、ＴＭＦＢ＝０，ＴＭＳＩ＝１，ＣＭＰ０Ｌ＝１，ＣＭＰ１Ｌ＝１としてスキャンフリップフロップＳＦＦをデータ保持モードに設定する。
【００５９】
ＲＡＭ３１の各ワードデータ毎に実施されるテストに係るテスト結果が保持された際に、比較動作不能としたデータ入出力部（ＤＩ＜ｉ＞，ＤＯ＜ｉ＞）以外のデータ入出力部（ＤＩ＜ｊ＞，ＤＯ＜ｊ＞）（ｉ≠ｊ）について故障が検出されると、当該データ入出力部（ＤＩ＜ｊ＞，ＤＯ＜ｊ＞）に係るスキャンフリップフロップＳＦＦ＜ｊ＞の出力は“０”となり、テスト回路３２のデータ出力部Ｆ＜０＞からＦ＜ｊ＞よりの出力が“０”となる。したがって、データ出力部Ｆ＜０＞の出力をチェックすることにより、テスト対象となっているワードデータに係る記憶素子に故障が存在するか否かを判定することが可能となる。すなわち、データ出力部Ｆ＜０＞の出力が“０”であれば、故障が存在することが検知されて、この場合には当該ワードデータに対するテスト結果をシフトアウトして、後述するデータ処理を実施する。また、データ出力部Ｆ＜０＞の出力が“１”であれば、故障が存在しないことが確認されて、この場合には次のワードデータに対するテストに移行する。なお、テスト結果をシフトアウトする際には、同時にシリアル入力データＳＩＤＯとして“１”を設定して、データ“１”を順次シフトインする。これにより、すべてのスキャンフリップフロップＳＦＦ＜ｉ＞（ｉ＝０〜１５）にデータ“１”を保持させて、次のワードデータに対するテストに備えることができる。
【００６０】
データ出力部Ｆ＜０＞の出力が“０”であって、テスト結果がシフトアウトされれば、シフトアウトされたテスト結果において記憶素子の故障の存在を示すデータ数すなわちビットデータが“０”であるビット数を計数する。比較動作不能としたビット位置に係るデータ入出力部（ＤＩ＜ｉ＞，ＤＯ＜ｉ＞）については、図３および図４に示される冗長記憶回路６２を用いての故障救済が予定されているので、各ワードデータ毎に検出される残り１ビットの故障に基づくエラーについては図１に示されるＥＣＣ回路によりエラー訂正を実施することが可能である。すなわち、各ワードデータ毎のテストにおいてデータ出力部Ｆ＜０＞の出力が“０”となったすべてのワードデータについて計数された故障に係るビットデータのビット数が１であれば、ＲＡＭ３１の全ワードデータについて記憶素子の故障に基づくエラーに対するエラー訂正を保証できるから、図１に示される冗長記憶回路とＥＣＣ回路との組み合せから成る記憶システムについて記憶素子の故障に対する故障救済を保証することが可能となる。また、各ワードデータ毎のテストにおいてデータ出力部Ｆ＜０＞の出力が“０”となったワードデータについて１つでも計数された故障に係るビットデータのビット数が２以上となれば、当該ワードデータについてはＥＣＣ回路によるエラー訂正を保証することはできない。したがって、故障が検出されたワードデータ毎に、シフトアウトされるテスト結果のなかに存在する故障に係るビット数を計数することにより、ＥＣＣ回路によるエラー訂正の可否すなわち図１に示された冗長記憶回路とＥＣＣ回路との組み合せから成る記憶システムの故障救済の可否の判定を実施することが可能となる。
【００６１】
第３に、冗長記憶回路制御用テストについて説明する。
上記の訂正可否判定テストにより、記憶システムによる故障救済が可能であると判定された場合には、故障救済ビット位置にあるデータ入出力部ＤＩ，ＤＯに対する故障救済を実施するために、まずＴＭＳＩ＝０，ＴＭＦＢ＝１，ＣＭＰ１Ｌ＝１，ＣＭＰ０Ｌ＝１，ＭＡＳＫ＝０としてスキャンフリップフロップＳＦＦをシフトモードに設定する。その後、シリアル入力データＳＩＤＯとして“１”を設定し、クロック信号Ｔにより供給されるクロックに応じてデータ“１”を順次シフトインすることで、すべてのスキャンフリップフロップＳＦＦ＜ｉ＞（ｉ＝０〜１５）にデータ“１”を保持させる。
【００６２】
次に、ＭＡＳＫ＝０，ＤＥＣＥＮ＝０，ＲＥＤＥＮ＝１，ＴＭＦＢ＝０，ＴＭＳＩ＝１とするとともに、期待値に応じてＣＭＰ０ＬおよびＣＭＰ１Ｌについていずれか一方を０に他方を１に設定した状態において、ＲＡＭ３１から１または複数の所定のアドレスのワードデータをテスト回路３２に読み出して比較動作を実施する。なお、訂正可否判定テストの有効性を維持するためには、故障救済ビット位置特定テストにより特定されるとともに訂正可否判定テストにおいてデータ入出力部における比較動作を不能としたビット位置と、冗長記憶回路制御用テストにおいて記憶素子の故障が検出されるビット位置とを一致させる必要があるので、冗長記憶回路制御用テストにおいてテスト対象となるＲＡＭ３１内に記憶されたワードデータについては、故障救済ビット位置特定テストにおいて選定されたワードデータと同じアドレスのものを選定するものとする。
【００６３】
上記冗長記憶回路制御用テストにおける比較動作の実施により、故障が存在する記憶素子に接続するデータ入出力部ＤＩ，ＤＯに係るビット位置をｉとすれば、スキャンフリップフロップＳＦＦ＜ｉ＞の出力は“１”から“０”に変化し、ＡＮＤゲート７１〜８６の動作に基づいてテスト回路３２のデータ出力部Ｆ＜０＞からＦ＜ｉ＞の出力が“０”となり、データ出力部Ｆ＜ｉ＋１＞からＦ＜１５＞の出力が“１”となる。例えば、故障の検出されるビット位置がｉ＝６である場合には、テスト回路３２のデータ出力部Ｆ＜０＞からＦ＜６＞の出力が“０”となり、データ出力部Ｆ＜７＞からＦ＜１５＞の出力が“１”となる。
【００６４】
既に述べテスト回路３２と冗長記憶回路６２との接続形態から明らかなように、データ出力部Ｆ＜２＞からＦ＜１５＞より出力されるデータはそれぞれセレクタ３３〜４６の制御部に入力され、データ出力部Ｆ＜１＞からＦ＜１５＞より出力されるデータはそれぞれセレクタ４７〜６１の制御部に入力される。これにより、故障の発生した記憶素子に係るビット位置ｉのデータ入出力部（ＤＩ＜ｉ＞，ＤＯ＜ｉ＞）を不使用とするとともに、当該データ入出力部（ＤＩ＜ｉ＞，ＤＯ＜ｉ＞）に代えて予備データ入出力部（ＤＩ＜０＞，ＤＯ＜０＞）を使用することにより、ＲＡＭ３１とセレクタ３３〜６１とを有して構成される冗長記憶回路６２は１５ビットの入出力機能を有するＲＡＭとして動作する。例えば、データ入出力部（ＤＩ＜６＞，ＤＯ＜６＞）に接続する記憶素子に故障が存在する場合には、セレクタ３３〜６１を適宜制御することにより、データ入出力部（ＤＩ＜６＞，ＤＯ＜６＞）を不使用とするとともに、当該データ入出力部（ＤＩ＜６＞，ＤＯ＜６＞）に代えて予備データ入出力部（ＤＩ＜０＞，ＤＯ＜０＞）を使用して、冗長記憶回路６２を１５ビットの入出力機能を有するＲＡＭとして動作させる。なお、当該冗長記憶回路６２の動作については、従来の技術として図２９および図３０を用いて説明した冗長記憶回路と同様であるので、その詳細な説明は省略する。
【００６５】
以上のように、故障救済ビット位置特定テスト、訂正可否判定テストおよび冗長記憶回路制御用テストが終了すれば、ＭＡＳＫ＝０，ＤＥＣＥＮ＝１，ＳＥＬＩ＝０として通常動作モードに設定する。通常動作時においては、ＳＥＬＩ＝０とすることで、エラー検出回路３から出力されるエラー検出データＥ１，Ｅ２，Ｅ３，Ｅ４がそれぞれデコーダ回路４の入力部Ｉ＜０＞，Ｉ＜１＞，Ｉ＜２＞，Ｉ＜３＞に入力される。デコーダ回路４は、入力されるバイナリデータをデコードし、当該エラーが発生したビットデータに対して図２５において割り当てられた数をｉとすると、データ出力部Ｂ＜ｉ＞のみからデータ“１”を出力する。これにより、ＥＸ−ＯＲゲート１２〜２２を介して１ビットのエラーに係るエラー訂正が実施される。すなわち、ＳＥＬＩ＝１と設定することにより、図１に示される記憶システムはＥＣＣ回路としての機能をも有する。なお、ＥＣＣ回路の動作については、従来の技術として図２４を用いて説明したＥＣＣ回路と同様であるので、その詳細な説明は省略する。
【００６６】
以上のように、この実施の形態１によれば、複数ビットのデータ入出力部（ＤＩ＜ｉ＞，ＤＯ＜ｉ＞）（ｉ＝１〜１５）と１ビットの予備データ入出力部（ＤＩ＜０＞，ＤＯ＜０＞）とを有して構成されるＲＡＭ３１と、ＲＡＭ３１内の記憶素子に故障が存在しない場合には、ＲＡＭ３１へのデータ入出力を複数ビットのデータ入出力部（ＤＩ＜ｉ＞，ＤＯ＜ｉ＞）（ｉ＝１〜１５）を使用して実施し、ＲＡＭ３１内の記憶素子に故障が存在する場合には、当該故障の存在する記憶素子に係るビット位置のデータ入出力部（ＤＩ＜ｉ＞，ＤＯ＜ｉ＞）を不使用にするとともに、不使用にしたデータ入出力部（ＤＩ＜ｉ＞，ＤＯ＜ｉ＞）に代えて予備データ入出力部（ＤＩ＜０＞，ＤＯ＜０＞）を使用してＲＡＭ３１へのデータの入出力を実施するように制御することができる複数のセレクタ３３〜６１と、ＲＡＭ３１とセレクタ３３〜６１とを有して構成される冗長記憶回路６２の冗長データ出力部ＸＤＯ＜ｉ＞（ｉ＝１〜１５）、あるいはＲＡＭ３１のデータ出力部ＤＩ＜ｉ＞（ｉ＝１〜１５）および予備データ出力部ＤＩ＜０＞からの出力データと期待値とを各ビット毎に比較し、当該比較結果を保持可能であるとともに、任意のビット位置に係る比較動作を不能とすることができるテスト回路３２と、テスト結果における各ビット毎の比較結果を逐次的に取り出すことができるスキャンパス８７と、ＡＮＤゲート５、Ｄフリップフロップ６、カウンタ７およびデコーダ回路４を有して構成されてスキャンパス８７により取り出された各ビット毎の比較結果に基づいて故障の存在する記憶素子に係るビット位置を特定する故障位置特定手段とを備えるように構成したので、スキャンパス８７により取り出されたＲＡＭ３１のテスト結果に基づいて、故障位置特定手段により故障の存在する記憶素子に係るビット位置を特定することができ、当該故障の存在する記憶素子に係るビット位置をテスト回路３２において比較動作不能として再度ＲＡＭ３１に係るテストをワードデータ毎に実施することにより、当該故障の存在する記憶素子に係るビット位置のデータ入出力部を冗長記憶回路６２により故障救済した際における各ワードデータ毎の故障に係るビットデータ数を計数することが可能となり、冗長記憶回路６２以外の故障救済手段による故障救済の可否を判定することができるという効果を奏する。
【００６７】
また、冗長記憶回路６２に入力される情報データについて１ビットのエラー検出を可能とするパリティデータを生成し、当該パリティデータを冗長記憶回路６２に出力するパリティ生成回路２と、エラー検出回路３およびデコーダ回路４を有して構成されて情報データと当該情報データに対応するパリティデータとから構成される冗長記憶回路６２よりの出力データを入力して、１ビットのエラーの存在するビット位置を特定するエラー位置特定手段と、エラー位置特定手段のデータ出力部Ｂから出力されるデータに基づいてエラーの存在するビット位置について冗長記憶回路６２のデータ出力部ＤＯから出力されるデータを反転させるＥＸ−ＯＲゲート１２〜２２とを備えるように構成したので、冗長記憶回路６２から出力されるデータについてパリティ生成回路２、エラー検出回路３、デコーダ回路４、ＥＸ−ＯＲゲート１２〜２２等から成る１ビットのエラー訂正が可能なＥＣＣ回路が与えられ、冗長記憶回路６２に係るデータ入出力について各ワードデータ毎に１ビットのエラーを許容することができるから、冗長記憶回路６２により故障救済されるビット位置の比較動作を不能にした状態でワードデータ毎のテストを実施することで、記憶素子の故障に基づくエラーに対するＥＣＣ回路によるエラー訂正の可否、ひいてはＥＣＣ回路、冗長記憶回路およびテスト回路を有して構成される記憶システムの全体的な故障救済の可否を判定することができて、システム全体の故障救済を保証することが可能になるという効果を奏する。
【００６８】
さらに、故障位置特定手段がＡＮＤゲート５、Ｄフリップフロップ６、カウンタ７およびデコーダ回路４を有して構成され、エラー位置特定手段がエラー検出回路３およびデコーダ回路４を有して構成され、またカウンタ７のデータ出力部に接続されるとともにエラー検出回路３のデータ出力部に接続されてカウンタ７のデータ出力部かエラー検出回路３のデータ出力部のいずれか一方を選択的にデコーダ回路４のデータ入力部に接続するセレクタ８〜１１を備えるように構成したので、故障位置特定手段とエラー位置特定手段との間でデコーダ回路４を共有することができるから、システムの回路規模を小さくすることができるという効果を奏する。
【００６９】
なお、図１に示されるように、データ出力部ＸＤＯに代えてデータ出力部ＹＤＯ（またはデータ出力部ＹＤＯ’）から出力されるデータに対してエラー訂正を実施することも可能である。この場合には、通常動作時においてＹＤＯ＜ｉ＞＝ＸＤＯ＜ｉ＞となるように、ＣＭＰ０Ｌ＝１，ＴＭＳＩ＝１，ＴＭＦＢ＝１，ＣＭＰ１Ｌ＝０，ＭＡＳＫ＝０に設定する必要がある。また、データ出力部ＹＤＯを用いる代わりにデータ出力部ＹＤＯ’を用いることも可能であるが、データ出力部ＹＤＯ’を用いる場合には論理が反転するので、図１等に示される上位階層の回路を修正する必要がある。また、図３および図４に示されるテスト回路のデータ入力部ＩＤＯ＜０＞からＩＤＯ＜１４＞に対しては、それぞれＲＡＭ３１のデータ出力部ＤＯ＜０＞からＤＯ＜１４＞を接続するのに代えて、（）により示されるようにＸＤＯ＜１＞からＸＤＯ＜１５＞を接続することも可能である。ただし、この場合には、テスト時においてＸＤＯ＜ｉ＋１＞＝ＤＯ＜ｉ＞となるように、ＲＥＤＥＮ＝０とすることでデータ出力部Ｆ＜ｉ＞（ｉ＝１〜１５）の出力として“１”を設定する。また、スキャンフリップフロップＳＦＦ＜ｉ＞（ｉ＝１〜１５）としては、図８に示される回路構成を例にとって説明したが、スキャンフリップフロップＳＦＦの回路構成は図８に示されるものに限定されるわけではなく、図１０および図１１に示される回路構成を有するスキャンフリップフロップＳＦＦを用いても同様の動作を実現することが可能である。
【００７０】
実施の形態２．
図１２は、この発明の実施の形態２によるＥＣＣ回路、冗長記憶回路およびテスト回路等を有して構成される記憶システムとして与えられる半導体集積回路装置の構成を示す回路図である。図１２において、図１と同一符号並びに記号列は同一または相当する構成要素または信号を示すので、その説明を省略する。図１２に示される回路は、図１に示される回路と比較すると、冗長データ出力部ＸＤＯ＜ｉ＞（ｉ＝３，５〜７，９〜１５）に代えてそれぞれ訂正データ出力部ＥＤＯ＜ｉ＞（ｉ＝３，５〜７，９〜１５）が設けられている点、およびＥＸ−ＯＲゲート１２〜２２が削除されている点で相違する。すなわち、ＥＣＣ回路におけるエラー訂正も複合回路１内で実施されて、エラー訂正後のデータが訂正データ出力部ＥＤＯから出力される。
【００７１】
図１３から図１５は、この発明の実施の形態２による冗長記憶回路およびテスト回路を示す図である。図１３は図１４と図１５との位置関係を示す説明図であり、図１４および図１５はこの発明の実施の形態１による冗長記憶回路およびテスト回路の構成を示す回路図である。図１４および図１５において、図３および図４と同一符号並びに記号列は同一または相当する構成要素または信号を示すので、その説明を省略する。図１４および図１５に示される回路は、図３および図４に示される回路と比較すると、テスト回路３２に訂正データ出力部ＥＤＯ＜ｉ＞（ｉ＝３，５〜７，９〜１５）が新たに設けられている点で相違する。すなわち、冗長データ出力部ＸＤＯから出力されるデータおよびデコーダ回路４のデータ出力部Ｂから出力されるデータを入力してテスト回路３２内においてエラー訂正を実施し、エラー訂正後のデータが訂正データ出力部ＥＤＯから出力される。
【００７２】
図１６から図１８は、この発明の実施の形態２によるテスト回路を示す図である。図１６は図１７と図１８との位置関係を示す説明図であり、図１７および図１８はこの発明の実施の形態２によるテスト回路の内部構成を示す回路図である。図１７および図１８において、図６および図７と同一符号並びに記号列は同一または相当する構成要素または信号を示すので、その説明を省略する。図１７および図１８に示される回路は、図６および図７に示される回路と比較すると、ビット位置２，４〜６，８〜１４において実施の形態１で使用されたスキャンフリップフロップＳＦＦとは異なる回路構成を有するスキャンフリップフロップＳＦＦＥが使用されている点、および当該異なる回路構成を有するスキャンフリップフロップＳＦＦＥに訂正データ出力部ＥＤＯ＜ｉ＞（ｉ＝３，５〜７，９〜１５）が設けられている点で相違する。すなわち、ビットデータの訂正が必要となるビット位置すなわち情報データに係るビット位置には、イクスクルーシブ・オア演算を実施する機能を備えたスキャンフリップフロップＳＦＦＥが配置され、当該スキャンフリップフロップＳＦＦＥによりエラー訂正されたデータが訂正データ出力部ＥＤＯから出力される。
【００７３】
図１９は、図１７および図１８に示されたスキャンフリップフロップＳＦＦＥの回路構成を示す図である。図１９において、図８と同一符号並びに記号列は同一または相当する構成要素または信号を示すので、その説明を省略する。また、１１１はインバータ、１１２，１１３はＯＲゲート、１１４はＡＮＤゲートである。図１９に示される回路は、図８に示される回路と比較すると、インバータ１１１、ＯＲゲート１１２，１１３、ＡＮＤゲート１１４およびこれら各ゲートに係る配線から構成されるイクスクルーシブ・オア演算を実施する機能を有する回路部位が新たに設けられている点で相違する。
【００７４】
次に、図１９に示されたスキャンフリップフロップＳＦＦＥの動作について説明する。
スキャンフリップフロップＳＦＦＥについて、ＴＭＳＩ＝１，ＣＭＰ１Ｌ＝０，ＣＭＰ０Ｌ＝１，ＴＭＦＢ＝１，ＭＡＳＫ＝０とすると、ＯＲゲート９３、ＯＲゲート９４およびＯＲゲート９５の出力が“１”となってインバータ９８の出力は“１”となる。また、ＯＲゲート９６の出力は“０”となって、ＯＲゲート９９の出力部の信号レベルは信号Ｄと同じ信号レベルとなるから、ＮＡＮＤゲート１００の出力部の信号レベルは信号Ｄの信号レベルを反転したものになるとともにインバータ１０１の出力部の信号レベルは信号Ｄと同じ信号レベルとなる。したがって、データ出力部ＥＤＯから出力される信号の論理値をＥＤＯ、信号Ｂの論理値をＢ、信号Ｄの論理値をＤとすると、上記設定においては次の論理式が成立する。
ＥＤＯ＝（Ｂ＋Ｄ）・（Ｂ＊＋Ｄ＊）
上記論理式において、“＋”は論理和、“・”は論理積、“＊”は論理値の反転を意味するものである。したがって、上記設定により、信号Ｂと信号Ｄとに対するイクスクルーシブ・オア演算の演算結果がデータ出力部ＥＤＯから出力されることになる。
【００７５】
なお、スキャンフリップフロップＳＦＦＥについては、図８に示されたスキャンフリップフロップＳＦＦと同様に、ＴＭＳＩ＝０，ＴＭＦＢ＝１，ＣＭＰ１Ｌ＝１，ＣＭＰ０Ｌ＝１，ＭＡＳＫ＝０とすることで、シフトモードに設定することができる。また、ＴＭＳＩ＝１，ＴＭＦＢ＝０，ＭＡＳＫ＝０とするとともに、期待値に応じてＣＭＰ０ＬおよびＣＭＰ１Ｌについていずれか一方を０に他方を１にすることにより、比較動作を実施するテストモードに設定することができる。さらに、ＴＭＳＩ＝１，ＴＭＦＢ＝０，ＣＭＰ１Ｌ＝１，ＣＭＰ０Ｌ＝１とすることで、クロック信号Ｔより任意の数のクロックが供給されてもスキャンフリップフロップＳＦＦＥの出力を保持するデータ保持モードに設定することができる。なお、上記各モードにおけるスキャンフリップフロップＳＦＦＥ内における回路動作は、図８に示されるスキャンフリップフロップＳＦＦにおける回路動作と同様であるので、詳細な説明については省略する。
【００７６】
次に、図１２に示されたＥＣＣ回路、冗長記憶回路およびテスト回路等を有して構成される記憶システムに係る動作について説明する。
故障が存在するメモリセル、ビット線等の記憶素子に接続するデータ出力部からのデータ異常を検出して冗長記憶回路による故障救済を実施するビット位置を特定する故障救済ビット位置特定テスト、当該故障救済ビット位置についてテスト回路における比較動作を不能にして各ワードデータ毎に比較動作を実施して記憶素子の故障に基づくエラーをＥＣＣ回路により訂正可能か否かを判定する訂正可否判定テスト、および故障救済ビット位置のデータ入出力部を不能とするとともに当該データ入出力部に代えて予備データ入出力部を使用してＲＡＭに対するデータ入出力を実施するようにセレクタを適宜制御する信号をテスト回路から出力させるための冗長記憶回路制御用テスト等に係る動作については、実施の形態１による記憶システムと同様であるのでその説明を省略する。
【００７７】
冗長記憶回路制御用テストに基づくセレクタ３３〜６１による入出力部の接続切り換えが完了すれば、ＭＡＳＫ＝０，ＤＥＣＥＮ＝１，ＳＥＬＩ＝０，ＴＭＳＩ＝１，ＣＭＰ１Ｌ＝０，ＣＭＰ０Ｌ＝１，ＴＭＦＢ＝１として、通常動作モードに設定する。また、この通常動作モードにおいては、テスト回路３２のデータ入力部ＩＤＯ＜０＞からＩＤＯ＜１４＞をそれぞれ冗長データ出力部ＸＤＯ＜１＞からＸＤＯ＜１５＞に接続する。通常動作時においては、ＳＥＬＩ＝０と設定することで、エラー検出回路３から出力されるエラー検出データＥ１，Ｅ２，Ｅ３，Ｅ４がそれぞれデコーダ回路４のデータ入力部Ｉ＜０＞，Ｉ＜１＞，Ｉ＜２＞，Ｉ＜３＞に入力される。デコーダ回路４は、入力されたバイナリデータをデコードして、エラーの生じている冗長データ出力部ＸＤＯ＜ｉ＞に係るビット位置ｉのデータ出力部Ｂ＜ｉ＞のみからデータ“１”を出力する。テスト回路３２は、冗長データ出力部ＸＤＯおよびデータ出力部Ｂからの出力データを入力して、当該データをそれぞれ対応するビット位置（ｉ−１）のスキャンフリップフロップＳＦＦＥに入力する。スキャンフリップフロップＳＦＦＥ＜ｉ−１＞は、上記信号制御によりＥＸ−ＯＲモードに設定され、冗長データ出力部ＸＤＯ＜ｉ＞およびデータ出力部Ｂ＜ｉ＞からの出力データを入力して、２つの入力データに係るイクスクルーシブ・オア演算をすることでエラー訂正を実施し、エラー訂正済みの情報データに係るビットデータをデータ出力部ＥＤＯ＜ｉ＞から出力する。すなわち、この実施の形態２では、スキャンフリップフロップＳＦＦＥにイクスクルーシブ・オア演算を実施する演算機能を付与することで、テスト回路３２をＥＣＣ回路としても動作させることができる。
【００７８】
以上のように、この実施の形態２によれば、冗長記憶回路６２のデータ出力部ＸＤＯ＜ｉ＞（ｉ＝１〜１５）とテスト回路３２のデータ入力部ＩＤＯ＜ｉ＞（ｉ＝０〜１４）とを接続可能にするとともに、デコーダ回路４のデータ出力部Ｂ＜ｉ＞（ｉ＝０〜１５）とテスト回路３２のデータ入力部Ｂ＜ｉ＞（ｉ＝０〜１５）とを接続可能として、テスト回路３２にイクスクルーシブ・オア演算を実施する機能を備えた回路素子を組み込むように構成したので、エラー検出回路３およびデコーダ回路４により特定されるエラーの存在するビット位置に係る位置情報と冗長記憶回路６２から出力される情報データとを入力して、イクスクルーシブ・オア演算を行なうことでエラー訂正を実施することができるから、エラー訂正処理をテスト回路３２内で実施することができて、エラー訂正処理専用の回路を設ける必要がないから、回路規模を小さくすることができるという効果を奏する。
【００７９】
なお、スキャンフリップフロップＳＦＦＥ＜ｉ＞（ｉ＝２，４〜６，８〜１４）としては、図１９に示される回路構成を例にとって説明したが、スキャンフリップフロップＳＦＦＥの回路構成は図１９に示されるものに限定されるわけではなく、図２０および図２１に示される回路構成を有するスキャンフリップフロップＳＦＦＥを用いても同様の動作を実現することが可能である。
【００８０】
実施の形態３．
図２２は、この発明の実施の形態３によるＥＣＣ回路、冗長記憶回路およびテスト回路等を有して構成される記憶システムとして与えられる半導体集積回路装置の構成を示す回路図である。図２２において、図１２と同一符号並びに記号列は同一または相当する構成要素または信号を示すので、その説明を省略する。１２１はセレクタ（選択手段）、１２２〜１２５はＥＸ−ＯＲゲート、ＥＣＣＭＯＤＥはセレクタ１２１の制御信号である。セレクタ１２１は、ＥＣＣＭＯＤＥ＝１の際には記憶システムのデータ入力部ＣＤＩ＜ｉ＞（ｉ＝０〜１０）から入力される１１ビットの情報データを出力し、ＥＣＣＭＯＤＥ＝０の際には冗長データ出力部ＸＤＯ＜ｉ＞（ｉ＝３，５〜７，９〜１５）から入力される１１ビットのデータを出力する。
【００８１】
次に動作について説明する。
ＲＡＭに対するデータの書き込みを実施する際には、ＥＣＣＭＯＤＥ＝１に設定する。セレクタ１２１は、データ入力部ＣＤＩ＜ｉ＞（ｉ＝０〜１０）から入力される１１ビットの情報データをパリティ生成回路２に入力する。パリティ生成回路２は、当該１１ビットの情報データに対する４ビットのパリティデータを生成して、パリティデータＰ１，Ｐ２，Ｐ３，Ｐ４をそれぞれ対応するビット位置にある冗長データ入力部ＸＤＩに入力する。
【００８２】
ＲＡＭに対するデータの読み出しを実施する際には、ＥＣＣＭＯＤＥ＝０に設定する。セレクタ１２１は、読み出し対象の情報データが記憶されているビット位置に係る冗長データ出力部ＸＤＯ＜ｉ＞（ｉ＝３，５〜７，９〜１５）から出力される１１ビットのデータをパリティ生成回路２に入力する。パリティ生成回路２は、当該１１ビットのデータに対する４ビットのパリティデータＰ１，Ｐ２，Ｐ３，Ｐ４を生成する。上記のような動作に基づいて、読み出し対象の情報データに係るエラー検出用データＥ１，Ｅ２，Ｅ３，Ｅ４の生成について、式（５）におけるＸ１＋Ｘ２＋Ｘ４＋Ｘ５＋Ｘ７＋Ｘ９＋Ｘ１１、式（６）におけるＸ１＋Ｘ３＋Ｘ４＋Ｘ６＋Ｘ７＋Ｘ１０＋Ｘ１１、式（７）におけるＸ２＋Ｘ３＋Ｘ４＋Ｘ８＋Ｘ９＋Ｘ１０＋Ｘ１１、式（８）におけるＸ５＋Ｘ６＋Ｘ７＋Ｘ８＋Ｘ９＋Ｘ１０＋Ｘ１１に係る演算結果が、それぞれパリティ生成回路２からデータＰ１，Ｐ２，Ｐ３，Ｐ４として出力される。ＥＸ−ＯＲゲート１２２、１２３，１２４および１２５は、それぞれ読み出し対象の情報データに対するパリティデータが記憶されているビット位置に係る冗長データ出力部ＸＤＯ＜１＞，ＸＤＯ＜２＞，ＸＤＯ＜４＞およびＸＤＯ＜８＞から出力されるデータとパリティ生成回路２から出力されるデータＰ１，Ｐ２，Ｐ３およびＰ４とに対して対応するビット位置毎にイクスクルーシブ・オア演算を実施して、当該演算結果をそれぞれエラー検出用データＥ１，Ｅ２，Ｅ３およびＥ４として出力する。
【００８３】
以上のように、この実施の形態３によれば、情報データについて１ビットのエラー検出を可能とするパリティデータを生成して出力するパリティ生成回路２と、パリティ生成回路２からのパリティデータと冗長記憶回路６２において当該パリティデータに係るビット位置のデータ出力部から出力されるデータとをそれぞれ対応するビット位置毎に入力するＥＸ−ＯＲゲート１２２〜１２５と、記憶システムのデータ入力部ＣＤＩ＜ｉ＞（ｉ＝１〜１０）から冗長記憶回路６２に入力される情報データ、または冗長記憶回路６２において情報データに係るビット位置のデータ出力部ＸＤＯ＜ｉ＞（ｉ＝３，５〜７，９〜１５）から出力されるデータのいずれか一方を選択的にパリティ生成回路２のデータ入力部に入力するセレクタ１２１を備えるように構成したので、冗長記憶回路６２へデータを書き込む際には、セレクタ１２１によりデータ入力部ＣＤＩ＜ｉ＞（ｉ＝０〜１０）からの情報データを選択して通常の書き込み動作を実施するとともに、冗長記憶回路６２からデータを読み出す際には、読み出し対象の情報データに係るビット位置のデータ出力部ＸＤＯ＜ｉ＞（ｉ＝３，５〜７，９〜１５）から出力されるデータをパリティ生成回路２に入力して生成されたパリティデータＰ１，Ｐ２，Ｐ３，Ｐ４と、読み出し対象の情報データに対するパリティデータに係るビット位置のデータ出力部ＸＤＯ＜ｉ＞（ｉ＝１，２，４，８）から出力されるデータとについて対応するビット位置毎にイクスクルーシブ・オア演算を行なうことにより情報データに係るエラー検出を実施することができるから、エラー検出回路３を省略して回路規模を小さくすることができるという効果を奏する。
【００８４】
実施の形態４．
図２３は、この発明の実施の形態４によるＥＣＣ回路、冗長記憶回路およびテスト回路等を有して構成される記憶システムとして与えられる半導体集積回路装置の一部構成を示す回路図である。図２３に示される回路は図１、図１２および図２２にそれぞれ記載された記憶システムに適用することが可能であり、図示を簡略化するために複合回路１、パリティ生成回路２、デコーダ回路４等は省略されている。図２３において、図１と同一符号並びに記号列は同一または相当する構成要素または信号を示すので、その説明を省略する。１３１はインバータ、１３２はカウンタ、１３３はＯＲゲート、１３４はＡＮＤゲート、１３５はＤフリップフロップである。また、ＩＮＩＴ２はカウンタ１３２を初期化するための初期化信号、ＦＬＡＧ２はワードデータ毎にテスト結果をシフトアウトする際に当該ビットデータ列に含まれる“０”の数すなわちテスト対象のワードデータに係る記憶素子に存在する故障の数が２になると信号レベルが変化するフラグ用信号である。なお、ＡＮＤゲート５、Ｄフリップフロップ６、ＯＲゲート１３３、ＡＮＤゲート１３４およびＤフリップフロップ１３５からスキャンパス８７により取り出されたワードデータ毎の比較結果としてのビットデータ列のなかにおける故障に係るビットデータ数を２個計数することができる第１の故障数計数手段が構成される。また、インバータ１３１およびカウンタ１３２からスキャンパス８７により取り出された比較結果としてのビットデータ列における故障に係るビットデータ数を計数することができる第２の故障数計数手段が構成される。
【００８５】
次に動作について説明する。
故障が存在する記憶素子に接続するデータ入出力部のデータ異常を検出して冗長記憶回路による故障救済を実施するビット位置を特定する故障救済ビット位置特定テストが終了した後に、当該ビット位置についてテスト回路における比較動作を不能にして各ワードデータ毎に比較動作を実施する。これらの動作については、既に詳細に説明しているので、ここではその説明を省略する。訂正可否判定テストにおいて、各ワードデータ毎に比較動作を実施した後に、テスト回路３２のデータ出力部Ｆ＜０＞の信号レベルが“０”であるのを検出してテスト対象のワードデータに係る記憶素子に故障が存在することが確認されれば、テスト回路３２内のスキャンフリップフロップＳＦＦ（またはＳＦＦＥ）に保持されたテスト結果がシリアル出力データとしてシフトアウトされる。このテスト結果のシフトアウトを実施する際には、まず初期化信号ＩＮＩＴ１をアクティブにして、Ｄフリップフロップ６、カウンタ７およびＤフリップフロップ１３５を初期化して、Ｄフリップフロップ６およびＤフリップフロップ１３５の出力Ｑをともに“１”とする。すなわち、初期化時点において、フラグ用信号ＦＬＡＧ１，ＦＬＡＧ２の信号レベルは“１”となっている。
【００８６】
次に、各スキャンフリップフロップＳＦＦ（またはＳＦＦＥ）、Ｄフリップフロップ６、カウンタ７およびＤフリップフロップ１３５に対して共通にクロック信号Ｔよりクロックを供給して、テスト結果を１ビットずつシフトアウトする。テスト結果のシフトアウトを実施する間において、シリアル出力データＳＯＤＯが“０”となると、ＡＮＤゲート５の出力が“０”となる。そして、クロック信号Ｔから次のクロックが供給されれば、Ｄフリップフロップ６の出力Ｑに“０”がラッチされ、フラグ用信号ＦＬＡＧ１の信号レベルが“１”から“０”に変化する。フラグ用信号ＦＬＡＧ１の信号レベルは、初期化してリセットされない限りそのまま“０”を保持する。
【００８７】
次に、テスト結果の１ビットずつのシフトアウトにおいて、シリアル出力データＳＯＤＯが再度すなわち二度目に“０”となると、ＯＲゲート１３３の出力が“０”となり、ＡＮＤゲート１３４の出力も“０”となる。そして、クロック信号Ｔから次のクロックが供給されれば、Ｄフリップフロップ１３５の出力に“０”がラッチされ、フラグ用信号ＦＬＡＧ２の信号レベルが“１”から“０”に変化する。したがって、シフトアウトされるテスト結果としてのビットデータ列のなかにデータ“０”が２つ以上存在する場合、すなわちテスト対象のワードデータに係る記憶素子に２つ以上の故障が存在する場合には、フラグ用信号ＦＬＡＧ２の信号レベルが“０”となるから、フラグ用信号ＦＬＡＧ２をチェックすることでＥＣＣ回路による記憶素子の故障に基づくエラーに対するエラー訂正の可否を判定することが可能となる。そして、ＥＣＣ回路によるエラー訂正が不可であると判定された場合には、その時点でテスト対象である半導体集積回路装置が不良品であると判定して、テストを終了する。なお、テスト結果をシフトアウトする際におけるカウンタ７によるビット数の計数等に係る動作については、既に詳細に説明しているので、ここではその説明を省略する。
【００８８】
また、カウンタ１３２については、初期化信号ＩＮＩＴ２をアクティブにして、出力をＱ０’＝Ｑ１’＝，…，＝Ｑｎ’＝０とした後は、シリアル入力データＳＯＤＯの信号レベルが“０”の状態でクロック信号Ｔよりクロックが供給される毎に１ずつ計数値を増分する。したがって、冗長記憶回路６２による故障救済ビット位置についてテスト回路における比較動作を不能にした状態で各ワードデータ毎の比較動作を実施する際に、最初に初期化信号ＩＮＩＴ２をアクティブにしてカウンタ１３２を初期化しておけば、ＥＣＣ回路によるエラー訂正の可否を判定する訂正可否判定テストが完了した時点において、冗長記憶回路６２により救済されるビット位置に係る記憶素子を除いたＲＡＭ内のすべての記憶素子のなかで故障が存在している記憶素子の数を計数することが可能となる。ところで、任意のワードデータに係る記憶素子について、冗長記憶回路６２により救済されるビット位置以外のビット位置にある記憶素子に故障が存在する場合には、当該ワードデータについては記憶素子の故障に基づくエラーをＥＣＣ回路によりエラー訂正する必要があるために、当該ワードデータ内にソフトエラーが発生した場合にはソフトエラーに対する救済が不可能となる。したがって、カウンタ１３２の計数値により、ソフトエラーの救済不能なワードデータ数を検知することができるので、ＲＡＭ全体としてのソフトエラーに対するエラー訂正能力を評価することが可能となる。
【００８９】
以上のように、この実施の形態４によれば、ＡＮＤゲート５、Ｄフリップフロップ６、ＯＲゲート１３３、ＡＮＤゲート１３４およびＤフリップフロップ１３５を有して構成され、スキャンパス８７により取り出されたワードデータ毎の比較結果としてのビットデータ列のなかにおける故障に係るビットデータ数を２個計数することができる第１の故障計数手段を備えるように構成したので、冗長記憶回路６２以外の故障救済手段による故障救済可能なビット数が１ビットである場合に、冗長記憶回路６２による故障救済が予定されているビット位置の比較動作を不能にした状態でのテストにより任意のワードデータに係る記憶素子の故障数が２であることが検出されれば、当該テスト対象の半導体集積回路装置を不良品であると判定してテストを終了することができるから、半導体集積回路装置のテスト時間の短縮化を実現することができるという効果を奏する。
【００９０】
また、インバータ１３１およびカウンタ１３２を有して構成され、スキャンパス８７により取り出された比較結果としてのビットデータ列のなかにおける故障に係るデータ数を計数することができる第２の故障計数手段を備えるように構成したので、冗長記憶回路６２による故障救済が予定されているビット位置以外のビット位置において故障が検出されるワードデータ数すなわちソフトエラーの救済不能なワードデータ数を検知することができるから、ＲＡＭ３１全体としてのソフトエラーに対するエラー訂正能力を評価することができるという効果を奏する。
【００９１】
【発明の効果】
以上のように、この発明によれば、複数ビットのデータ入力部およびデータ出力部と少なくとも１ビットの予備データ入力部および予備データ出力部とを有して構成される記憶手段と、記憶手段の記憶素子に故障が存在しない場合には、記憶手段へのデータの入出力を複数ビットのデータ入力部およびデータ出力部を使用して実施し、記憶手段の記憶素子に故障が存在する場合には、当該故障の存在する記憶素子に係るビット位置のデータ入力部およびデータ出力部を不使用にするとともに、不使用にしたデータ入力部およびデータ出力部と同数の予備データ入力部および予備データ出力部を使用して記憶手段へのデータの入出力を実施する入出力切り換え手段と、記憶手段と入出力切り換え手段とから成る冗長記憶手段のデータ出力部、あるいは記憶手段のデータ出力部または記憶手段のデータ出力部および予備データ出力部からの出力データと期待値とを各ビット毎に比較し、当該比較結果を保持可能であるとともに、任意のビット位置に係る比較動作を不能とすることができるテスト手段と、テスト手段における各ビット毎の比較結果を逐次的に取り出すことができるテスト結果出力手段と、テスト結果出力手段により取り出された各ビット毎の比較結果に基づいて故障の存在する記憶素子に係るビット位置を特定する故障位置特定手段とを備えるように構成したので、テスト結果出力手段により取り出された記憶手段に係るテスト結果に基づいて、故障位置特定手段により故障の存在する記憶素子に係るビット位置を特定することができ、当該故障の存在する記憶素子に係るビット位置をテスト手段において比較動作不能として再度記憶手段に係るテストをワードデータ毎に実施することにより、当該故障の存在する記憶素子に係るビット位置のデータ入出力部を冗長記憶手段により故障救済した際における各ワードデータ毎の故障に係るビットデータ数を計数することが可能となり、冗長記憶手段以外の故障救済手段による故障救済の可否を判定することができるという効果を奏する。
【００９２】
この発明によれば、冗長記憶手段に入力される情報データについて１ビットのエラー検出を可能とするパリティデータを生成し、当該パリティデータを冗長記憶手段に出力するパリティ生成手段と、情報データと当該情報データに対応するパリティデータとから構成される冗長記憶手段よりの出力データを入力して、１ビットのエラーの存在するビット位置を特定するエラー位置特定手段と、エラー位置特定手段から出力される信号に基づき、エラーの存在するビット位置について冗長記憶手段のデータ出力部から出力されるデータを反転させるエラー訂正手段とを備えるように構成したので、冗長記憶手段から出力されるデータについてパリティ生成手段、エラー位置特定手段、エラー訂正手段等から成る１ビットのエラー訂正が可能なＥＣＣ回路が与えられ、冗長記憶手段に係るデータ入出力について各ワードデータ毎に１ビットのエラーを許容することができるから、冗長記憶手段により故障救済されるビット位置の比較動作を不能にした状態でワードデータ毎のテストを実施することで、記憶素子の故障に基づくエラーに対するＥＣＣ回路によるエラー訂正の可否、ひいてはＥＣＣ回路、冗長記憶手段、テスト手段等を有して構成される記憶システムの全体的な故障救済の可否を判定することができて、システム全体の故障救済を保証することが可能になるという効果を奏する。
【００９３】
この発明によれば、故障位置特定手段が、故障を示すビットデータの検出をトリガとして停止するまで、逐次的に取り出される比較結果のビット数を計数し、当該計数値をバイナリデータとして出力する計数手段と、バイナリデータをデコードするデコード手段とを有して構成され、エラー位置特定手段が、冗長記憶手段からの出力データを入力して、エラーの存在するビット位置をバイナリデータとして出力するエラー位置出力手段と、バイナリデータをデコードする上記デコード手段とを有して構成され、計数手段のデータ出力部に接続されるとともにエラー位置出力手段のデータ出力部に接続されて、計数手段のデータ出力部かエラー位置出力手段のデータ出力部のいずれか一方を選択的に上記デコード手段のデータ入力部に接続する選択手段を備えるように構成したので、故障位置特定手段とエラー位置特定手段との間でデコード手段を共有することができるから、システムの回路規模を小さくすることができるという効果を奏する。
【００９４】
この発明によれば、冗長記憶手段のデータ出力部とテスト手段のデータ入力部とを接続可能とするとともに、デコード手段のデータ出力部とテスト手段のデータ入力部とを接続可能として、テスト手段にイクスクルーシブ・オア演算を実施する回路素子を組み込むように構成したので、エラー位置特定手段およびデコード手段により特定されるエラーの存在するビット位置に係る位置情報と冗長記憶手段から出力される情報データとを入力して、イクスクルーシブ・オア演算を行なうことでエラー訂正を実施することができるから、エラー訂正処理をテスト手段内で実施することができて、エラー訂正処理専用の回路を設ける必要がないから、回路規模を小さくすることができるという効果を奏する。
【００９５】
この発明によれば、情報データについて１ビットのエラー検出を可能とするパリティデータを生成して出力するパリティ生成手段と、パリティ生成手段からのパリティデータと冗長記憶手段において当該パリティデータに係るビット位置のデータ出力部から出力されるデータとをそれぞれ対応するビット位置毎に入力する複数のイクスクルーシブ・オアゲートと、冗長記憶手段に入力される情報データ、または冗長記憶手段において情報データに係るビット位置のデータ出力部から出力されるデータのいずれか一方を選択的にパリティ生成手段のデータ入力部に入力する選択手段とを備えるように構成したので、冗長記憶手段へデータを書き込む際には、選択手段により冗長記憶手段に入力される情報データを選択して通常の書き込み動作を実施するとともに、冗長記憶手段からデータを読み出す際には、選択手段により冗長記憶手段において読み出し対象の情報データに係るビット位置のデータ出力部から出力されるデータをパリティ生成手段に入力して生成されたパリティデータと、冗長記憶手段において読み出し対象の情報データに対するパリティデータに係るビット位置のデータ出力部から出力されるデータとについて対応するビット位置毎にイクスクルーシブ・オア演算を行なうことにより情報データに係るエラー検出を実施することができるから、エラー位置出力手段を省略して回路規模を小さくすることができるという効果を奏する。
【００９６】
この発明によれば、テスト結果出力手段により取り出されたワードデータ毎の比較結果のなかにおける故障に係るビットデータ数を少なくとも２以上計数することができる第１の故障数計数手段を備えるように構成したので、冗長記憶手段以外の故障救済手段による故障救済可能なビット数がｎ（ｎ≧１）ビットである場合に、冗長記憶手段による故障救済が予定されているビット位置の比較動作を不能にした状態でのテストにより任意のワードデータに係る記憶素子の故障数がｎ＋１であることが検出されれば、当該テスト対象の半導体集積回路装置を不良品であると判定してテストを終了することができるから、半導体集積回路装置のテスト時間の短縮化を実現することができるという効果を奏する。
【００９７】
この発明によれば、テスト結果出力手段により取り出された比較結果における故障に係るビットデータ数を計数することができる第２の故障数計数手段を備えるように構成したので、冗長記憶手段による故障救済が予定されているビット位置以外のビット位置において故障が検出されるワードデータ数すなわちソフトエラーの救済不能なワードデータ数を検知することができるから、記憶手段全体としてのソフトエラーに対するエラー訂正能力を評価することができるという効果を奏する。
【図面の簡単な説明】
【図１】  この発明の実施の形態１による冗長記憶回路、ＥＣＣ回路、テスト回路等を有して構成される記憶システムの構成を示す回路図である。
【図２】  図３と図４との位置関係を示す説明図である。
【図３】  この発明の実施の形態１による冗長記憶回路およびテスト回路の構成を示す回路図である。
【図４】  この発明の実施の形態１による冗長記憶回路およびテスト回路の構成を示す回路図である。
【図５】  図６と図７との位置関係を示す説明図である。
【図６】  この発明の実施の形態１によるテスト回路の内部構成を示す回路図である。
【図７】  この発明の実施の形態１によるテスト回路の内部構成を示す回路図である。
【図８】  この発明の実施の形態１によるスキャンフリップフロップの構成を示す回路図である。
【図９】  ＲＡＭの基本的な構成を示す図である。
【図１０】  この発明の実施の形態１によるスキャンフリップフロップの構成を示す回路図である。
【図１１】  この発明の実施の形態１によるスキャンフリップフロップの構成を示す回路図である。
【図１２】  この発明の実施の形態２による冗長記憶回路、ＥＣＣ回路、テスト回路等を有して構成される記憶システムの構成を示す回路図である。
【図１３】  図１４と図１５との位置関係を示す説明図である。
【図１４】  この発明の実施の形態２による冗長記憶回路およびテスト回路の構成を示す回路図である。
【図１５】  この発明の実施の形態２による冗長記憶回路およびテスト回路の構成を示す回路図である。
【図１６】  図１７と図１８との位置関係を示す説明図である。
【図１７】  この発明の実施の形態２によるテスト回路の内部構成を示す回路図である。
【図１８】  この発明の実施の形態２によるテスト回路の内部構成を示す回路図である。
【図１９】  この発明の実施の形態２によるスキャンフリップフロップの構成を示す回路図である。
【図２０】  この発明の実施の形態２によるスキャンフリップフロップの構成を示す回路図である。
【図２１】  この発明の実施の形態２によるスキャンフリップフロップの構成を示す回路図である。
【図２２】  この発明の実施の形態３による冗長記憶回路、ＥＣＣ回路、テスト回路等を有して構成される記憶システムの構成を示す回路図である。
【図２３】  この発明の実施の形態４による冗長記憶回路、ＥＣＣ回路、テスト回路等を有して構成される記憶システムの一部構成を示す回路図である。
【図２４】  冗長記憶回路、ＥＣＣ回路、テスト回路等を有して構成される従来の記憶システムの構成を示す回路図である。
【図２５】  図２４に示された記憶システム全体のデータ入出力部に対する情報データおよびパリティデータのビット割り当てを示す図である。
【図２６】  パリティ生成回路の具体的な回路構成を示す図である。
【図２７】  エラー検出回路の具体的な回路構成を示す図である。
【図２８】  図２９と図３０との位置関係を示す説明図である。
【図２９】  従来の冗長記憶回路およびテスト回路の構成を示す回路図である。
【図３０】  従来の冗長記憶回路およびテスト回路の構成を示す回路図である。
【図３１】  図３２と図３３との位置関係を示す説明図である。
【図３２】  従来のテスト回路の内部構成を示す回路図である。
【図３３】  従来のテスト回路の内部構成を示す回路図である。
【図３４】  従来のスキャンフリップフロップの構成を示す回路図である。
【符号の説明】
１  複合回路、２  パリティ生成回路（パリティ生成手段）、３  エラー検出回路（エラー位置出力手段）、４  デコーダ回路（デコード手段）、５，７１〜８６，９１，１１４，１３４  ＡＮＤゲート、６，１０２，１３５  Ｄフリップフロップ、７  カウンタ（計数手段）、８〜１１  セレクタ（選択手段）、１２〜２２  ＥＸ−ＯＲゲート（エラー訂正手段）、３１  ＲＡＭ（記憶手段）、３２  テスト回路（テスト手段）、３３〜６１  セレクタ（入出力切り換え手段）、６２  冗長記憶回路（冗長記憶手段）、８７  スキャンパス（テスト結果出力手段）、９２，９８，１０１，１１１，１３１  インバータ、９３〜９６，９９，１１２，１１３，１３３  ＯＲゲート、９７，１００  ＮＡＮＤゲート、１２１  セレクタ（選択手段）、１２２〜１２５  ＥＸ−ＯＲゲート、１３２  カウンタ、Ｂ  データ入力部、データ出力部、ＣＤＩ，ＤＩ，ＩＤＯ  データ入力部、ＣＤＯ，ＤＯ，Ｆ  データ出力部、ＣＭＰ０Ｌ，ＣＭＰ１Ｌ  比較制御信号、ＤＥＣＥＮ  イネーブル信号、Ｅ１〜Ｅ４  エラー検出用データ、ＥＣＣＭＯＤＥ  制御信号、ＥＤＯ  訂正データ出力部、ＦＬＡＧ１，ＦＬＡＧ２  フラグ用信号、Ｉ  データ入力部、ＩＮＩＴ１，ＩＮＩＴ２  初期化信号、ＭＡＳＫ  マスク信号、Ｐ１〜Ｐ４  パリティデータ、ＲＥＤＥＮ  制御信号、ＳＥＬＩ  セレクタ制御信号、ＳＦＦ，ＳＦＦＥ  スキャンフリップフロップ、ＳＩ  シリアルデータ入力部、ＳＩＤＯ  シリアル入力データ、ＳＯ  シリアルデータ出力部、ＳＯＤＯ  シリアル出力データ、ＰＣＴＲＬ  制御信号群、Ｔ  クロック信号、ＴＭＳＩ，ＴＭＦＢ  テストモード信号、Ｘ１〜Ｘ１１  情報データ、ＸＤＩ冗長データ入力部、ＸＤＯ，ＹＤＯ  冗長データ出力部。
【図１】
0004497695.tif 000002
【図２】
0004497695.tif 000003
【図３】
0004497695.tif 000004
【図４】
0004497695.tif 000005
【図５】
0004497695.tif 000006
【図６】
0004497695.tif 000007
【図７】
0004497695.tif 000008
【図８】
0004497695.tif 000009
【図９】
0004497695.tif 000010
【図１０】
0004497695.tif 000011
【図１１】
0004497695.tif 000012
【図１２】
0004497695.tif 000013
【図１３】
0004497695.tif 000014
【図１４】
0004497695.tif 000015
【図１５】
0004497695.tif 000016
【図１６】
0004497695.tif 000017
【図１７】
0004497695.tif 000018
【図１８】
0004497695.tif 000019
【図１９】
0004497695.tif 000020
【図２０】
0004497695.tif 000021
【図２１】
0004497695.tif 000022
【図２２】
0004497695.tif 000023
【図２３】
0004497695.tif 000024
【図２４】
0004497695.tif 000025
【図２５】
0004497695.tif 000026
【図２６】
0004497695.tif 000027
【図２７】
0004497695.tif 000028
【図２８】
0004497695.tif 000029
【図２９】
0004497695.tif 000030
【図３０】
0004497695.tif 000031
【図３１】
0004497695.tif 000032
【図３２】
0004497695.tif 000033
【図３３】
0004497695.tif 000034
【図３４】
0004497695.tif 000035