JP4497695B2 - 半導体集積回路装置 - Google Patents

半導体集積回路装置 Download PDF

Info

Publication number
JP4497695B2
JP4497695B2 JP2000314249A JP2000314249A JP4497695B2 JP 4497695 B2 JP4497695 B2 JP 4497695B2 JP 2000314249 A JP2000314249 A JP 2000314249A JP 2000314249 A JP2000314249 A JP 2000314249A JP 4497695 B2 JP4497695 B2 JP 4497695B2
Authority
JP
Japan
Prior art keywords
data
output
bit
circuit
test
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
JP2000314249A
Other languages
English (en)
Other versions
JP2002124098A (ja
JP2002124098A5 (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.)
Renesas Technology Corp
Original Assignee
Renesas Technology 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 Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2000314249A priority Critical patent/JP4497695B2/ja
Publication of JP2002124098A publication Critical patent/JP2002124098A/ja
Publication of JP2002124098A5 publication Critical patent/JP2002124098A5/ja
Application granted granted Critical
Publication of JP4497695B2 publication Critical patent/JP4497695B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Static Random-Access Memory (AREA)
  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Tests Of Electronic Circuits (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、半導体集積回路装置に係り、特に冗長記憶回路およびECC回路を組み合せて構成される記憶システムに係る故障救済の可否を判定すること、並びにソフトエラーに対するエラー訂正能力を評価することを可能とする半導体集積回路装置に関するものである。
【0002】
【従来の技術】
第1に、エラー訂正を実施するための従来のECC(Error Checking and Correction )技術について説明する。
図24は、エラー訂正を実施するためのECC回路を備えたRAMを有して構成される従来の記憶システムの構成を示す回路図である。図24において、201はRAM(ランダムアクセス・メモリ)、202はパリティ生成回路、203はエラー検出回路、204はデコーダ回路、205から215はEX−OR(イクスクルーシブ・オア)ゲートである。また、CDI<0>からCDI<10>は上記複数の回路から構成される記憶システムに対するデータ入力部、X1からX11はデータ入力部CDI<0>からCDI<10>にそれぞれ対応する各1ビットの情報データ、P1からP4は各1ビットのパリティデータ、DI<1>からDI<15>はRAM201のデータ入力部、DO<1>からDO<15>はRAM201のデータ出力部、E1からE4は各1ビットのエラー検出用データ、I<0>からI<3>はデコーダ回路104のデータ入力部、B<3>,B<5>からB<7>,B<9>からB<15>はデコーダ回路104のデータ出力部、CDO<0>からCDO<10>は記憶システムに対するデータ出力部である。なお、RAM201については、データ入出力信号に係る部分のみが表示され、アドレス信号、制御信号等に係る回路部位の表示は省略されている。
【0003】
次に図24に示される記憶システムの動作について説明する。
なお、この実施の形態では、入力される情報データが11ビットでパリティデータが4ビットの場合を例にとるものとする。図25は、RAM201および記憶システム全体のデータ入出力部に対する情報データおよびパリティデータのビット割り当てを示す図である。この例においては、パリティデータP1,P2,P3,P4は以下の式に従って生成される。
P1=X1+X2+X4+X5+X7+X9+X11 (1)
P2=X1+X3+X4+X6+X7+X10+X11 (2)
P3=X2+X3+X4+X8+X9+X10+X11 (3)
P4=X5+X6+X7+X8+X9+X10+X11 (4)
但し、上記の論理式において“+”はイクスクルーシブ・オア演算を示すものとする。図26は、上記の論理式に従ってパリティデータを出力させるパリティ生成回路202の具体的な回路構成を示す図である。図26に示される論理ゲートはすべてEX−ORゲートである。
【0004】
RAM201にデータを書き込む際には、図24に示される記憶システムに対して、11ビットの情報データをデータ入力部CDI<0>からCDI<10>に入力すると、上記の論理式に基づいて、パリティデータP1,P2,P3,P4を生成する。次に、11ビットの情報データX1〜X11および4ビットのパリティデータP1〜P4を合わせた15ビットのデータを、図25に示されるビット割り当てに従ってRAM201のデータ入力部DI<1>からDI<15>に書き込む。
【0005】
また、RAM201からデータを読み出す際には、RAM201のデータ出力部DO<1>〜DO<15>から出力される15ビットの出力データに対してエラー検出回路203を用いてエラー検出を実施する。ここで、エラーとしては、メモリセルの故障などに起因して生じるハードエラーと、デバイス内の放射線による記憶データの反転などに起因して生じるソフトエラーとが挙げられる。
【0006】
エラー検出回路203においては、以下の論理式に従ってエラー検出用データE1,E2,E3,E4が生成される。
E1=P1+X1+X2+X4+X5+X7+X9+X11 (5)
E2=P2+X1+X3+X4+X6+X7+X10+X11 (6)
E3=P3+X2+X3+X4+X8+X9+X10+X11 (7)
E4=P4+X5+X6+X7+X8+X9+X10+X11 (8)
但し、上記の論理式において“+”はイクスクルーシブ・オア演算を示すものとする。図27は、上記の論理式に従ってエラー検出用データを出力させるエラー検出回路203の具体的な回路構成を示す図である。図27に示される論理ゲートは、すべてEX−ORゲートである。エラーが存在しない場合には、E1=E2=E3=E4=0となる。また、15ビットの出力データのなかで1ビットのエラーがあれば、当該エラーが発生したデータに対して図25において割り当てられた数をバイナリデータとして表現するようにE1〜E4に係るバイナリ値が決定される。すなわち、エラーが発生したデータに対して割り当てられた数をYとすると、Y=E4*2+E3*2+E2*2+E1*2を満たすように、エラー検出用データE1,E2,E3,E4に係るバイナリ値が決定される。例えば、情報データX8に係る記憶素子についてエラーが生じた場合には、X8に対して割り当てられた数である12を示すように、E4=1,E3=1,E2=0,E1=0となる。
【0007】
次に、デコーダ回路204は、エラー検出用データE1,E2,E3,E4をそれぞれデータ入力部I<0>,I<1>,I<2>,I<3>に入力する。エラーが発生している場合には、当該エラーが発生したビットデータに対して図25において割り当てられた数をiとすると、デコーダ回路104のデータ出力部B<i>からデータ“1”が出力され、他のデータ出力部B<j>(j≠i)からデータ“0”が出力される。例えば、RAM201のデータ出力部DO<12>からの出力データにエラーが生じた場合には、エラー検出回路203は、E4=1,E3=1,E2=0,E1=0を出力する。デコーダ回路104は、これらの入力データに基づいてデコードを実施し、データ出力部B<12>のみからデータ“1”を出力する。
【0008】
さらに、デコーダ回路104のデータ出力部B<i>(i=3,5〜7,9〜15)からの出力信号、およびRAM201においてデータ出力部B<i>に対応するデータ出力部DO<i>(i=3,5〜7,9〜15)からの出力信号はそれぞれ対応するビット位置毎に2入力のEX−ORゲート205〜215に入力される。EX−ORゲート205〜215のデータ出力部は、そのまま図24に示された記憶システムに対するデータ出力部CDO<0>〜CDO<10>に接続される。データ出力部B<i>からデータ“0”が出力されるとデータ出力部DO<i>からのデータがそのまま対応するデータ出力部CDO<j>に出力され、データ出力部B<i>からデータ“1”が出力されるとデータ出力部DO<i>からのデータが反転して対応するデータ出力部CDO<j>に出力される。したがって、1ビットのエラーがある場合には、当該ビットに係るデータをEX−ORゲートにより反転して出力することができるので、エラー訂正を実施することが可能となる。なお、例示したECC回路は1ビット訂正用の回路であり、2ビットのエラーが発生した場合には、エラーを訂正することができない。また、3ビット以上のエラーについては、エラーの存在を検出できないことがある。
【0009】
第2に、従来におけるRAMのテスト回路およびテストによる故障検出に基づく故障救済を実施する冗長記憶回路について説明する。このようなテスト回路および冗長記憶回路については、例えば特開平8−94718号公報、特開平11−265597号公報に記載されている。
【0010】
図28から図30は、従来の冗長記憶回路およびテスト回路を示す図である。図28は図29と図30との位置関係を示す説明図であり、図29および図30は従来の冗長記憶回路およびテスト回路の構成を示す回路図である。図29および図30において、221はRAM、222はRAM221に対するテスト回路、223〜251はセレクタである。記憶手段としてのRAM221と、外部に対して入出力されるデータ数より多いRAM221のデータ入出力部の使用形態を適宜設定できるように各入出力データが伝送される信号線とRAM221のデータ入出力部との接続を切り換える入出力切り換え手段としてのセレクタ223〜251とから冗長記憶回路が構成される。また、セレクタ223〜251については、制御部に入力される信号のデータが“0”の場合には“0”入力部に入力されるデータが出力され、制御部に入力される信号のデータが“1”の場合には“1”入力部に入力されるデータが出力される。
【0011】
また、XDI<1>からXDI<15>は上記複数の回路から構成される記憶システムに対する冗長データ入力部、DI<0>からDI<15>はRAM221のデータ入力部、DO<0>からDO<15>はRAM221のデータ出力部、XDO<1>からXDO<15>は記憶システムに対する冗長データ出力部、IDO<0>からIDO<15>はテスト回路222のデータ入力部、F<1>からF<15>はテスト回路222のデータ出力部、SIDOはテスト回路222へ入力されるシリアル入力データ、SODOはテスト回路222から出力されるシリアル出力データ、SRCTRLはテスト回路222に入力される後述の制御信号群である。RAM221のデータ出力部DO<0>からDO<15>はそれぞれテスト回路222のデータ入力部IDO<0>からIDO<15>に接続される。また、テスト回路222のデータ出力部F<1>からF<15>はそれぞれセレクタ237〜251の制御部に接続され、さらにデータ出力部F<2>からF<15>はそれぞれセレクタ223〜236の制御部に接続される。
【0012】
上記のように図29および図30に示されるシステムにおいては、16ビットのデータ入出力部(DI<i>,DO<i>)(i=1〜16)を備えたRAM221にセレクタを付加して、通常動作においてデータ入出力部(XDI<i>,XDO<i>)(i=1〜15)を使用する15ビットの入出力機能を備えたRAMとして動作させる冗長記憶回路が実現されている。
【0013】
次に、図29および図30に示される冗長記憶回路およびテスト回路から構成される記憶システムの動作について説明する。
RAM221のデータ出力部DO<1>からDO<15>より出力されるデータに異常がない場合には、テスト回路222のデータ出力部F<1>からF<15>はデータ“1”を出力する。これにより、セレクタ223〜251はすべて“1”入力部から入力されるデータを出力することになり、冗長データ入力部XDI<1>からXDI<15>より入力されるデータがそれぞれRAM221のデータ入力部DI<1>からDI<15>に入力されるとともに、RAM221のデータ出力部DO<1>からDO<15>より出力されるデータがそれぞれ冗長データ出力部XDO<1>からXDO<15>へ出力される。
【0014】
テスト回路222においてRAM221のデータ出力部DO<1>からDO<15>より出力されるいずれかのデータに異常があることが検出された場合、すなわちRAM221を構成する記憶素子に故障が存在することが判明した場合には、故障の発生した記憶素子に係るデータ入出力部を(DI<i>,DO<i>)とすると、テスト回路222のデータ出力部F<1>からF<i>よりデータ“0”が出力され、データ出力部F<i+1>からF<15>よりデータ“1”が出力される。これにより、冗長データ入力部XDI<1>からXDI<i>より入力されるデータがそれぞれRAM221のデータ入力部DI<0>からDI<i−1>へ入力されるとともに、冗長データ入力部XDI<i>からXDI<15>より入力されるデータがデータ入力部DI<i>からDI<15>へ入力されて、故障の発生した記憶素子に係るデータ入力部DI<i>へ入力されるデータがデータ入力部DI<i−1>へも入力されるようになる。また、RAM221のデータ出力部DO<0>からDO<i−1>より出力されるデータがそれぞれ冗長データ出力部XDO<1>からXDO<i>へ出力されるとともに、RAM221のデータ出力部DO<i+1>からDO<15>より出力されるデータがそれぞれ冗長データ出力部XDO<i+1>からXDO<15>へ出力されて、故障の発生した記憶素子に係るデータ出力部DO<i>から出力されるデータを記憶システムの外部へ出力させないようにする。したがって、故障の発生した記憶素子に係るデータ入出力部(DI<i>,DO<i>)を不使用にするとともに、データ入出力部(DI<i>,DO<i>)に代えて予備のデータ入出力部として用意されたデータ入出力部(DI<0>,DO<0>)を使用することにより、セレクタ223〜251を備えたRAM221から成る冗長記憶回路は15ビットのデータ入出力機能を有するRAMとして正常に動作する。
【0015】
ここで、記憶素子に故障が発生した場合のテスト回路および冗長記憶回路の動作について例をあげて説明する。テスト回路222において、RAM221のデータ出力部DO<6>から出力されるデータに異常があることが検出された場合、すなわちデータ出力部DO<6>に接続する記憶素子に故障が存在することが判明した場合には、テスト回路222のデータ出力部F<1>からF<6>よりデータ“0”が出力され、データ出力部F<7>からF<15>よりデータ“1”が出力される。これにより、セレクタ223〜227の制御部にデータ“0”が入力されて冗長データ入力部XDI<1>からXDI<6>より入力されるデータがそれぞれRAM221のデータ入力部DI<0>からDI<5>へ入力されるとともに、セレクタ228〜236の制御部にデータ“1”が入力されて冗長データ入力部XDI<6>からXDI<15>より入力されるデータがそれぞれRAM221のデータ入力部DI<6>からDI<15>へ入力されて、故障の発生した記憶素子に接続するデータ入力部DI<6>へ入力されるデータがデータ入力部DI<5>へも入力されるようになる。また、出力側については、セレクタ237〜242の制御部にデータ“0”が入力されてRAM221のデータ出力部DO<0>からDO<5>より出力されるデータがそれぞれ冗長データ出力部XDO<1>からXDO<6>へ出力されるとともに、セレクタ243〜251の制御部にデータ“1”が入力されてRAM221のデータ出力部DO<7>からDO<15>より出力されるデータがそれぞれ冗長データ出力部XDO<7>からXDO<15>へ出力されて、故障の発生した記憶素子に接続するデータ出力部DO<6>から出力されるデータを記憶システムの外部へ出力させないようにする。したがって、故障の発生した記憶素子に接続するデータ入出力部(DI<6>,DO<6>)を不使用にするとともに、データ入出力部(DI<6>,DO<6>)に代えて予備のデータ入出力部(DI<0>,DO<0>)を使用することにより、セレクタ223〜251を備えたRAM221から成る冗長記憶回路は15ビットのデータ入出力機能を有するRAMとして正常に動作する。
【0016】
次に、図29および図30に示されたテスト回路222の構成および動作について詳細に説明する。図31から図33は、従来のテスト回路を示す図である。図31は図32と図33との位置関係を示す説明図であり、図32および図33は従来のテスト回路の内部構成を示す回路図である。図32および図33において、SFFA<0>からSFFA<15>はスキャンフリップフロップ、261〜274は2入力ANDゲートである。スキャンフリップフロップSFFA<0>からSFFA<15>について、SIはシリアルデータ入力部、SOはシリアルデータ出力部、SIDOはシリアル入力データ、SODOはシリアル出力データである。図32および図33に示されるように、スキャンフリップフロップSFFA<i>(i=1〜15)のシリアルデータ出力部SOはそれぞれスキャンフリップフロップSFFA<i−1>のシリアルデータ入力部SIに接続され、これによりスキャンフリップフロップSFFA<0>からSFFA<15>が直列接続されて、RAMテスト用のスキャンパスが構成されている。また、ANDゲートi(i=262〜274)の出力部はANDゲート(i−1)の一方の入力部に接続される。これにより、ANDゲートiの出力が“0”となると、iより小さなすべてのjについてANDゲートjの出力もすべて“0”となる。例えば、ANDゲート266の出力が“0”となると、ANDゲート261〜265の出力もすべて“0”となる。
【0017】
また、IDO<0>からIDO<15>はテスト回路222のデータ入力部、F<1>からF<15>はテスト回路222のデータ出力部、TMSI,TMFBはテストモード信号、CMP0L(A),CMP1L(A),CMP0L(B),CMP1L(B)は比較制御信号である。これらの信号から、図29に示される制御信号群SPCTRLが構成される。図32および図33に示されるように、比較制御信号CMP0L(A),CMP1L(A)は偶数番のスキャンフリップフロップSFFAに入力され、比較制御信号CMP0L(B),CMP1L(B)は奇数番のスキャンフリップフロップSFFAに入力される。これにより、偶数番(Aグループ)のスキャンフリップフロップSFFAと奇数番(Bグループ)のスキャンフリップフロップSFFAとにそれぞれ独立に期待値を設定することが可能となる。
【0018】
図34は、スキャンフリップフロップSFFAの回路構成を示す図である。図34において、281,286,289はインバータ、282,283,284,287はORゲート、285,288はNANDゲート、290はDフリップフロップである。また、Tはクロック信号Tであり、CMP0Lは比較制御信号CMP0L(A)またはCMP0L(B)のいずれかを示し、CMP1Lは比較制御信号CMP1L(A)またはCMP1L(B)のいずれかを示すものとする。さらに、SI,SOについてはそれぞれシリアル入力データ信号、シリアル出力データ信号をも示すものとする。
【0019】
次に、図32および図33に示されるテスト回路の動作について説明する。
RAM221のテストを実施する前に、TMSI=0,TMFB=1,CMP1L=1,CMP0L=1として、スキャンフリップフロップSFFAをシフトモードに設定する。TMFB=1とすることで、ORゲート284の出力は“1”となる。CMP0L=1とすることで、ORゲート282の出力は“1”となる。TMSI=0とすることで、ORゲート283の出力はシリアル入力データ信号SIと同じ信号レベルとなる。したがって、インバータ286の出力もシリアル入力データ信号SIと同じ信号レベルとなる。また、CMP1L=1とすることで、ORゲート287の出力は“1”となる。これにより、インバータ289の出力はシリアル入力データ信号SIと同じ信号レベルとなる。この状態でDフリップフロップ190にクロック信号Tによりクロックが入力されると、シリアル入力データ信号SIの信号レベルがラッチされてシリアルデータ出力信号SOとして出力される。したがって、シリアル入力データSIDOとして“1”を設定し、クロック信号Tにより与えられるクロックに応じてデータ“1”を順次シフトインすることで、スキャンフリップフロップSFFA<0>からSFFA<15>すべてに“1”をラッチさせる。この際、テスト回路222のデータ出力部F<1>からF<15>からはすべてデータ“1”が出力される。
【0020】
次に、RAMのテストを実施するに際して、TMFB=0,TMSI=1とするとともに、CMP0LおよびCMP1Lについていずれか一方を0に他方を1にすることによりテストモードに設定して比較動作を実施する。例えば、RAM221から読み出されるデータの期待値が“1”である場合には、CMP1L=0,CMP0L=1とする。既に、スキャンフリップフロップSFFAにデータ“1”が保持されていることをも考慮すると、ORゲート282,283,284の出力はすべて“1”となり、インバータ286の出力も“1”となる。RAM221から読み出されるデータが“1”すなわちIDO=1である場合には、ORゲート287の出力が“1”となってインバータ289の出力も“1”となる。この状態でDフリップフロップ290へクロック信号Tによりクロックが入力されると、Dフリップフロップ290の出力は“1”となり、スキャンフリップフロップSFFAの保持データは変化しない。また、RAM221から読み出されるデータが期待値に反して“0”すなわちIDO=0である場合には、ORゲート287の出力が“0”となってインバータ289の出力も“0”となる。この状態でDフリップフロップ290へクロック信号Tによりクロックが入力されると、Dフリップフロップ290の出力は“0”に変化し、スキャンフリップフロップSFFAの出力も“0”となる。なお、期待値が“0”である場合には、CMP1L=1,CMP0L=0に設定することで、同様にRAM221から読み出されるデータが期待値と同じ場合にはスキャンフリップフロップSFFAの出力は“1”に保持され、RAM221から読み出されるデータが期待値と異なる場合にはスキャンフリップフロップSFFAの出力は“0”に変化する。上記のようにRAM221内の記憶素子に故障が検出されると、当該記憶素子に係るスキャンフリップフロップSFFAの出力すなわちシリアル出力データ信号SOは“0”となり、故障の有無に係る当該テスト結果は各スキャンフリップフロップSFFAにおいて保持される。
【0021】
上記のようにRAM221から読み出されるデータについて、各ビット毎の比較動作が終了すると、図32および図33に示されるテスト回路においては、16ビット分のテスト結果が得られる。これらのテスト結果は、RAM221に係る各データ入出力部(DI<i>,DO<i>)に接続する記憶素子に故障が存在するか否かを示すPass/Failフラグとなる。すなわち、テスト結果が“1”の場合はPassを示し、テスト結果が“0”の場合はFailを示す。そして、テスト結果として、データ入出力部(DI<i>,DO<i>)に接続する記憶素子に故障が発生してスキャンフリップフロップSFFA<i>の出力が“0”となると、ANDゲート261〜274の動作に基づいてテスト回路222においてデータ出力部F<1>からF<i>よりデータ“0”を出力し、データ出力部F<i+1>からF<15>よりデータ“1”を出力する。例を挙げて説明すれば、RAM221に係るテストに基づき、データ入出力部(DI<6>,DO<6>)に接続する記憶素子について故障が検出された場合には、スキャンフリップフロップSFFA<6>の出力が“0”となる。これにより、テスト回路222においてデータ出力部F<1>からF<6>よりデータ“0”を出力し、データ出力部F<7>からF<15>よりデータ“1”を出力する。これらの出力データをそれぞれ図29および図30に示されるセレクタ223〜251の制御部に入力して、データ入出力部(DI<6>,DO<6>)の使用を無効にすることにより、記憶素子の故障に対する救済を実施する。この場合、RAM221は、データ入出力部(DI<i>,DO<i>)(i=0〜5,7〜15)を使用して15ビットのデータ入出力機能を有するRAMとして正常に動作する。
【0022】
なお、テスト結果を読み出す必要がある場合には、RAM221のテストを終了した後に、TMSI=0,TMFB=1,CMP1L=1,CMP0L=1として、各スキャンフリップフロップSFFAをシフトモードに設定する。そして、クロック信号Tより供給されるクロックに応じて各スキャンフリップフロップSFFAに保持されたデータを順次シフトアウトして、シリアル出力データSODOとして取り出す。例えば、テスト結果としてSFF<6>の出力のみが“0”となっている場合には、全体的なテスト結果としてシリアルデータ“1111110111111111”が得られることになる。
【0023】
【発明が解決しようとする課題】
従来の半導体集積回路装置は以上のように構成されているので、ECC回路、テスト回路および冗長記憶回路を組み合せれば、冗長記憶回路を用いることでRAMに対する故障救済を実施するとともに、さらに故障救済がなされたRAMに対してECC回路によるエラー訂正を実施することが可能である。したがって、従来技術で例示したECC回路、テスト回路および冗長記憶回路を組み合せて記憶システムを構成することで、RAM内の1つのワードデータに係る記憶素子に2ビットの故障が生じても救済可能なことがある。しかし、ECC回路では複数ビット(従来の技術において例示されたECC回路では3ビット以上)のエラーについてはエラーの存在を検出できないことがあるので、ECC回路によるエラー訂正が正常に実施されたか否かを評価することができない。すなわち、例えば1つのワードデータに係る記憶素子に4ビットの故障が存在して、これら故障のなかの1ビットの故障を冗長記憶回路を用いて救済した場合において、ECC回路におけるエラー検出回路が3ビット分の記憶素子の故障に基づくエラーを全く検出できないことがある。したがって、従来の技術における冗長記憶回路とECC回路とを組み合せるのみでは、RAM内の記憶素子に生じた故障に対する救済を保証することができないという課題があった。
【0024】
また、ECC回路によりエラー訂正された記憶素子の故障に基づくエラーに係るビット数を知ることができないので、記憶素子等の故障に基づくエラー以外のソフトエラー等についてRAM全体としてのエラー訂正能力を評価することができないという課題があった。
【0025】
この発明は上記のような課題を解決するためになされたもので、RAMに係る故障救済を保証することができる半導体集積回路装置を得ることを目的とする。
また、この発明はRAM全体としてのソフトエラーに対するエラー訂正能力を評価することができる半導体集積回路装置を得ることを目的とする。
【0026】
【課題を解決するための手段】
この発明に係る半導体集積回路装置は、複数ビットのデータ入力部およびデータ出力部と、少なくとも1ビットの予備データ入力部および予備データ出力部とを有して構成される記憶手段と、記憶手段の記憶素子に故障が存在しない場合には、記憶手段へのデータの入出力を複数ビットのデータ入力部およびデータ出力部を使用して実施し、記憶手段の記憶素子に故障が存在する場合には、当該故障の存在する記憶素子に係るビット位置のデータ入力部およびデータ出力部を不使用にするとともに、不使用にしたデータ入力部およびデータ出力部と同数の予備データ入力部および予備データ出力部を使用して記憶手段へのデータの入出力を実施する入出力切り換え手段と、記憶手段と入出力切り換え手段とから成る冗長記憶手段のデータ出力部、あるいは記憶手段のデータ出力部または記憶手段のデータ出力部および予備データ出力部からの出力データと期待値とを各ビット毎に比較し、当該比較結果を保持可能であるとともに、任意のビット位置に係る比較動作を不能とすることができるテスト手段と、テスト手段における各ビット毎の比較結果を逐次的に取り出すことができるテスト結果出力手段と、テスト結果出力手段により取り出された各ビット毎の比較結果に基づいて故障の存在する記憶素子に係るビット位置を特定する故障位置特定手段とを備えるようにしたものである。
【0027】
この発明に係る半導体集積回路装置は、冗長記憶手段に入力される情報データについて1ビットのエラー検出を可能とするパリティデータを生成し、当該パリティデータを冗長記憶手段に出力するパリティ生成手段と、情報データと当該情報データに対応するパリティデータとから構成される冗長記憶手段よりの出力データを入力して、1ビットのエラーの存在するビット位置を特定するエラー位置特定手段と、エラー位置特定手段から出力される信号に基づき、エラーの存在するビット位置について冗長記憶手段のデータ出力部から出力されるデータを反転させるエラー訂正手段とを備えるようにしたものである。
【0028】
この発明に係る半導体集積回路装置は、故障位置特定手段が、故障を示すビットデータの検出をトリガとして停止するまで、逐次的に取り出される比較結果のビット数を計数し、当該計数値をバイナリデータとして出力する計数手段と、バイナリデータをデコードするデコード手段とを有して構成され、エラー位置特定手段が、冗長記憶手段からの出力データを入力して、エラーの存在するビット位置をバイナリデータとして出力するエラー位置出力手段と、バイナリデータをデコードする上記デコード手段とを有して構成され、計数手段のデータ出力部に接続されるとともにエラー位置出力手段のデータ出力部に接続されて、計数手段のデータ出力部かエラー位置出力手段のデータ出力部のいずれか一方を選択的にデコード手段のデータ入力部に接続する選択手段を備えるようにしたものである。
【0029】
この発明に係る半導体集積回路装置は、冗長記憶手段のデータ出力部とテスト手段のデータ入力部とを接続可能とするとともに、デコード手段のデータ出力部とテスト手段のデータ入力部とを接続可能として、テスト手段にイクスクルーシブ・オア演算を実施する回路素子を組み込むようにしたものである。
【0030】
この発明に係る半導体集積回路装置は、情報データについて1ビットのエラー検出を可能とするパリティデータを生成して出力するパリティ生成手段と、パリティ生成手段からのパリティデータと、冗長記憶手段において当該パリティデータに係るビット位置のデータ出力部から出力されるデータとをそれぞれ対応するビット位置毎に入力する複数のイクスクルーシブ・オアゲートと、冗長記憶手段に入力される情報データ、または冗長記憶手段において情報データに係るビット位置のデータ出力部から出力されるデータのいずれか一方を選択的にパリティ生成手段のデータ入力部に入力する選択手段とを備えるようにしたものである。
【0031】
この発明に係る半導体集積回路装置は、テスト結果出力手段により取り出されたワードデータ毎の比較結果のなかにおける故障に係るビットデータ数を少なくとも2以上計数することができる第1の故障数計数手段を備えるようにしたものである。
【0032】
この発明に係る半導体集積回路装置は、テスト結果出力手段により取り出された比較結果における故障に係るビットデータ数を計数することができる第2の故障数計数手段を備えるようにしたものである。
【0033】
【発明の実施の形態】
以下、この発明の実施の一形態を説明する。
実施の形態1.
図1は、この発明の実施の形態1によるECC回路、冗長記憶回路およびテスト回路等を有して構成される記憶システムとして与えられる半導体集積回路装置の構成を示す回路図である。図1において、1は冗長記憶回路およびテスト回路等から成る複合回路、2は11ビットの情報データから成るデータ集合に対応する4ビットのパリティデータを生成するパリティ生成回路(パリティ生成手段)、3は複合回路1の出力データについてのエラー検出を実施してエラー検出結果並びにエラーが存在するビット位置をバイナリデータとして出力するエラー検出回路(エラー位置出力手段)、4はエラー検出回路3および後述のカウンタ7から入力されるバイナリデータをデコードするデコーダ回路(デコード手段)、5は2入力のANDゲート、6はDフリップフロップ、7はRAMに対するテスト結果を示すシリアルデータに係るビット数を計数するカウンタ(計数手段)、8から11は出力部がデコーダ回路4の入力部に接続されるセレクタ、12から22はEX−ORゲートである。なお、ANDゲート5、Dフリップフロップ6、カウンタ7およびデコーダ回路4からRAMに対するテスト結果に基づいて故障の存在するメモリセル、ビット線等の記憶素子に係るビット位置を特定する故障位置特定手段が構成される。また、エラー検出回路3およびデコーダ回路4から情報データとパリティデータとから構成される記憶手段よりの出力データを入力して、1ビットのエラーの存在するビット位置を特定するエラー位置特定手段が構成される。また、複数のEX−ORゲート12〜22によりエラー位置特定手段から出力される信号に基づき、エラーの存在するビット位置について記憶手段のデータ出力部から出力されるデータを反転させるエラー訂正手段が構成される。さらに、複数のセレクタ8〜11により、カウンタ7のデータ出力部かエラー検出回路3のデータ出力部のいずれか一方を選択的にデコーダ回路4のデータ入力部に接続する選択手段が構成される。
【0034】
Dフリップフロップ6については、Sはリセット信号入力部を示し、リセット信号が入力されると、Dフリップフロップ6の出力Qは“1”に設定される。カウンタ7については、Q0,Q1,Q2,Q3がそれぞれ2,2,2,2に対応するバイナリデータのデータ出力部である。ENはイネーブル信号入力部を示し、“1”が入力されている間においてはカウンタ7が動作可能状態となり、“0”が入力されている間においてはカウンタ7が動作停止状態となる。また、Rはリセット信号入力部を示し、リセット信号が入力されると、データ出力部Q1,Q2,Q3,Q4の出力はすべて“0”となる。
【0035】
また、CDI<0>からCDI<10>は上記複数の回路から構成される記憶システムに対するデータ入力部、X1からX11はデータ入力部CDI<0>からCDI<10>にそれぞれ対応する各1ビットの情報データ、P1からP4は情報データX1からX11を基にしてパリティ生成回路2により生成され出力される各1ビットのパリティデータ、XDI<1>からXDI<15>は複合回路1の冗長データ入力部、XDO<1>からXDO<15>およびYDO<1>からYDO<15>は複合回路1の冗長データ出力部、E1からE4はエラー検出回路3から出力される各1ビットのエラー検出用データ、I<0>からI<3>はデコーダ回路4のデータ入力部、B<0>からB<15>はデコーダ回路4のデータ出力部および当該出力部に対応するように複合回路1に設けられたデータ入力部、CDO<0>からCDO<10>は記憶システムに対するデータ出力部である。
【0036】
さらに、MASKは後述するスキャンフリップフロップSFF<i>(i=0〜15)に接続されてスキャンフリップフロップSFF内の比較動作を不能にするマスク信号、INIT1はDフリップフロップ6およびカウンタ7を初期化するための初期化信号、FLAG1はRAMのテスト結果についてのPass/Failを通知するためのフラグ用信号、SELIはセレクタ8〜11の制御部に入力されるセレクタ制御信号、DECENはデコーダ回路4の出力を制御するイネーブル信号である。SELI=0であればセレクタ8〜11の“0”入力部から入力されるデータがデータ出力部から出力され、SELI=1であればセレクタ8〜11の“1”入力部から入力されるデータがデータ出力部から出力される。また、DECEN=0であればデコーダ回路4のデータ出力部B<i>(i=0〜15)のすべての出力が“0”となる。
【0037】
次に、図2から図4はこの発明の実施の形態1による冗長記憶回路およびテスト回路を示す図である。図2は図3と図4との位置関係を示す説明図であり、図3および図4はこの発明の実施の形態1による冗長記憶回路およびテスト回路の構成を示す回路図である。図3および図4において、31はRAM(記憶手段)、32はRAM31内の記憶素子に故障が存在するか否かを判定するテスト等を実施するテスト回路(テスト手段)、33〜61はセレクタである。なお、RAM31については、データ入出力信号に係る部分のみが表示され、アドレス信号、制御信号等に係る回路部位の表示は省略されている。
【0038】
また、XDI<1>からXDI<15>はRAM31、テスト回路32等を有して構成される複合回路1の冗長データ入力部、DI<0>からDI<15>はRAM31のデータ入力部、DO<0>からDO<15>はRAM31のデータ出力部、XDO<1>からXDO<15>は複合回路1の冗長データ出力部、B<0>からB<15>は複合回路1のデータ入力部および当該データ入力部に対応するようにテスト回路32に設けられたデータ入力部、IDO<0>からIDO<15>はテスト回路32のデータ入力部、F<0>からF<15>はテスト回路32のデータ出力部、YDO<1>からYDO<15>はテスト回路32のデータ出力部であるとともに複合回路1の冗長データ出力部、SIDOはテスト回路32へ入力されるシリアル入力データ、SODOはテスト回路32から出力されるシリアル出力データ、SRCTRLはテスト回路32に入力される後述の制御信号群、MASKは図1において説明したマスク信号である。RAM31のデータ出力部DO<0>からDO<15>はそれぞれテスト回路32のデータ入力部IDO<0>からIDO<15>に接続可能であり、複合回路1の冗長データ出力部XDO<1>からXDO<15>はそれぞれテスト回路32のデータ入力部IDO<0>からIDO<14>に接続可能となっている。また、テスト回路32のデータ出力部F<1>からF<15>はそれぞれセレクタ47〜61の制御部に接続され、さらにデータ出力部F<2>からF<15>はそれぞれセレクタ33〜46の制御部に接続される。
【0039】
また、複数のセレクタ33〜61により、冗長データ入出力部(XDI<i>,XDO<i>)(i=1〜15)に対して入出力されるデータ数より多いRAM31のデータ入出力部(DI<i>,DO<i>)(i=0〜15)の使用形態を適宜設定できるように冗長データ入力部XDIとRAM31のデータ入力部DIとの接続並びに冗長データ出力部XDOとRAM31のデータ出力部DOとの接続を切り換える入出力切り換え手段が構成される。また、符号62は記憶手段としてのRAM31と入出力切り換え手段としてのセレクタ33〜61とを有して構成される冗長記憶回路(冗長記憶手段)である。なお、RAM31を構成する記憶素子に故障が存在しない場合には、データ入出力部(DI<i>,DO<i>)(i=1〜15)を使用して、RAM31に対するデータの入出力を実施する。すなわち、データ入出力部(DI<0>,DO<0>)は記憶素子に故障が発生した場合の予備のデータ入出力部として与えられているものであり、以降の説明においてデータ入力部DI<0>およびデータ出力部DO<0>を他のデータ入出力部と区別してそれぞれ予備データ入力部および予備データ出力部と称することがある。
【0040】
次に、図5から図7はこの発明の実施の形態1によるテスト回路を示す図である。図5は図6と図7との位置関係を示す説明図であり、図6および図7はこの発明の実施の形態1によるテスト回路の内部構成を示す回路図である。図6および図7において、SFF<0>からSFF<15>はスキャンフリップフロップ、71〜86は2入力のANDゲートである。スキャンフリップフロップSFF<0>からSFF<15>について、SIはシリアルデータ入力部、SOはシリアルデータ出力部、SIDOはシリアル入力データ、SODOはシリアル出力データである。図6および図7に示されるように、スキャンフリップフロップSFF<i>(i=1〜15)のシリアルデータ出力部SOはスキャンフリップフロップSFF<i−1>のシリアルデータ入力部SIに接続される。符号87は、スキャンフリップフロップSFF<0>からSFF<15>が直列接続されて構成されるRAMテスト用のスキャンパスである。このスキャンパス87は、RAM31をテストした際にテスト回路32に保持される各ビット毎の比較結果を逐次的に取り出すことができるテスト結果出力手段として機能する。また、ANDゲートi(i=71〜86)の出力部はANDゲート(i−1)の一方の入力部に接続される。これにより、ANDゲートiの出力が“0”となると、iより小さなすべてのjについてANDゲートjの出力も“0”となる。
【0041】
また、IDO<0>からIDO<15>およびB<0>からB<15>はそれぞれテスト回路32のデータ入力部、F<0>からF<15>およびYDO<1>からYDO<15>はそれぞれテスト回路32のデータ出力部、TMSI,TMFBはテストモード信号、CMP0L(A),CMP1L(A),CMP0L(B),CMP1L(B)は比較制御信号、REDENはANDゲート71〜86の出力を制御する制御信号である。これらの信号から、図3に示される制御信号群SPCTRLが構成される。図6および図7に示されるように、比較制御信号CMP0L(A),CMP1L(A)は偶数番のスキャンフリップフロップSFFに入力され、比較制御信号CMP0L(B),CMP1L(B)は奇数番のスキャンフリップフロップSFFに入力される。これにより、偶数番(Aグループ)のスキャンフリップフロップSFFと奇数番(Bグループ)のスキャンフリップフロップSFFとにそれぞれ独立に期待値を設定することができる。また、スキャンフリップフロップSFF<i>(i=0〜14)については、それぞれデータ入力部IDO<i>、データ入力部B<i+1>、データ出力部YDO<i+1>が接続されるとともに、それぞれANDゲート71〜86を介してデータ出力部F<i>が接続される。スキャンフリップフロップSFF<15>については、データ入力部IDO<15>、データ入力部B<0>が接続されるとともに、ANDゲート86を介してデータ出力部F<15>に接続される。また、制御信号REDENについては、REDEN=0とすることでANDゲート71〜86のすべての出力すなわちデータ出力部F<0>からF<15>の出力を“0”にすることができる。なお、マスク信号MASKについては、図6および図7においては配線の表示が省略されているが、すべてのスキャンフリップフロップSFFに共通に接続されている。
【0042】
図8は、この発明の実施の形態1によるスキャンフリップフロップSFFの構成を示す回路図である。図8において、91はANDゲート、92,98,101はインバータ、93,94,95,96,99はORゲート、97,100はNANDゲート、102はDフリップフロップである。また、Tはクロック信号Tであり、CMP0Lは比較制御信号CMP0L(A)またはCMP0L(B)のいずれかを示し、CMP1Lは比較制御信号CMP1L(A)またはCMP1L(B)のいずれかを示す。また、SI,SOについてはそれぞれシリアル入力データ信号、シリアル出力データ信号をも示すものとする。さらに、Bはデータ入力部B<i>(i=0〜15)からの信号を総括して示すものとし、Dはデータ入力部IDO<i>(i=0〜15)からの信号を総括して示すものとする。
【0043】
次に、図8に示されたスキャンフリップフロップSFFの動作について説明する。
MASK=0またはB=0の場合には、ORゲート99の一方の入力部の信号レベルは比較制御信号CMP1Lの信号レベルと同じになるとともに、ORゲート93の入力部へのANDゲート91からの出力は無効となるために、図8に示されるスキャンフリップフロップSFFは従来の技術に係る説明において図34に示されたスキャンフリップフロップSFFAと実質的に同じ回路構成を有することになる。したがって、TMSI=0,TMFB=1,CMP1L=1,CMP0L=1とすることでシフトモードに設定することができ、各スキャンフリップフロップSFFに保持されたデータをクロック信号Tにより供給されるクロックに応じて順次シフトすることが可能となる。また、TMFB=0,TMSI=1とするとともに、CMP0LおよびCMP1Lについていずれか一方を0に他方を1にすることで比較動作を実施するテストモードに設定することができる。なお、シフトモードおよびテストモードにおける図8に示されるスキャンフリップフロップSFFの回路動作は図34に示されるスキャンフリップフロップSFFに係る回路動作と同様であるので、その説明を省略する。
【0044】
また、TMSI=1,TNFB=0,CMP1L=1,CMP0L=1とすることで、ORゲート96の出力は“1”となってORゲート99の出力も“1”となる。また、ORゲート93およびORゲート94の出力は“1”となり、ORゲート95の出力はDフリップフロップ102の出力部の信号レベルと同じ信号レベルとなるから、インバータ98の出力もDフリップフロップ102の出力部の信号レベルと同じ信号レベルとなる。したがって、インバータ101の出力はDフリップフロップ102の信号レベルと同じ信号レベルとなって、クロック信号Tにより任意の数のクロックが供給されても出力データを保持可能なデータ保持モードに設定することができる。
【0045】
また、MASK=1の場合にはANDゲート91の出力は信号Bの信号レベルと同じ信号レベルとなる。したがって、Dフリップフロップ102に“1”をラッチさせた後に、テストモード(TMSI=1,TMFB=0)においてB=1とすると、ANDゲート91の出力が“1”となってORゲート99の出力は“1”となる。また、ORゲート93、ORゲート94およびORゲート95の出力はすべて“1”となるから、インバータ98の出力も“1”となる。したがって、インバータ101の出力は“1”となるので、Dフリップフロップ102の出力は“1”に保持される。すなわち、比較制御信号CMP0L,CMP1Lの値に関係なく、信号Bとして“1”が入力されたスキャンフリップフロップSFFの出力は“1”を保持するので、当該スキャンフリップフロップSFFについては比較動作が不能となる。
【0046】
次に、図1に示されたECC回路、冗長記憶回路およびテスト回路等を有して構成される記憶システムに係る動作について、従来の技術で述べた記憶システムと異なる点を中心に説明する。
まず、概略的に説明すると、テスト回路32はRAM31内において故障が存在するメモリセル、ビット線等の記憶素子の検出等を実行するように動作する。この実施の形態1におけるテスト回路32を用いたRAM31に対するテストは、大別すれば、故障が存在する記憶素子に接続するデータ出力部からのデータの異常を検知して冗長記憶回路62による故障救済を実施するビット位置を特定する故障救済ビット位置特定テストと、当該故障救済ビット位置についてテスト回路32における比較動作を実施して記憶素子の故障に基づくエラーをECC回路により訂正可能か否かを判定する訂正可否判定テスト、および故障救済ビット位置のデータ入出力部を不能とするとともに予備データ入出力部(DI<0>,DO<0>)を使用してRAM31に対するデータ入出力を実施するようにセレクタ33〜61の適宜制御する信号をテスト回路32から出力させるための冗長記憶回路制御用テストに分けられる。
【0047】
第1に、上記の故障救済ビット位置特定テストについて説明する。まずRAM31のテストを実施する前に、TMSI=0,TMFB=1,CMP1L=1,CMP0L=1,MASK=0として、スキャンフリップフロップSFFをシフトモードに設定する。シフトモードに設定することで、ORゲート93、ORゲート95およびORゲート99の出力は“1”となるので、インバータ101の出力はシリアル入力データ信号SIの信号レベルと同じ信号レベルとなる。この状態でDフリップフロップ102にクロック信号Tによりクロックが供給されると、シリアル入力データ信号SIの信号レベルがラッチされてシリアル出力データ信号SOとして出力される。したがって、図6に示されるシリアル入力データSIDOとして“1”を設定し、クロック信号Tにより供給されるクロックに応じてデータ“1”を順次シフトインすることで、スキャンフリップフロップSFFのすべてに“1”を保持させる。
【0048】
次に、MASK=0,DECEN=0,REDEN=0,TMFB=0,TMSI=1とするとともに、CMP0LおよびCMP1Lについていずれか一方を0に他方を1にしてテストモードに設定することにより比較動作を実施する。例えば、RAM31から読み出されるデータの期待値が“1”である場合には、CMP1L=0,CMP0L=1とする。既に、スキャンフリップフロップSFFにデータ“1”が保持されていることをも考慮すれば、インバータ98の出力は“1”となり、ORゲート99の出力はRAM31から読み出されるデータに係るデータ信号Dの信号レベルと同じ信号レベルとなるので、データ信号Dが期待値と同じ“1”である場合にはクロック信号Tによりクロックが供給されると、Dフリップフロップ102の出力は“1”となりスキャンフリップフロップSFFの出力は保持される。また、データ信号Dが期待値と異なる“0”である場合には、クロック信号Tによりクロックが供給されると、Dフリップフロップ102の出力は“0”となりスキャンフリップフロップSFFの出力は“0”に変化する。なお、期待値が“0”である場合も同様に、データ信号Dが期待値と同じ場合にはスキャンフリップフロップSFFの出力は“1”に保持され、データ信号Dが期待値と異なる場合にはスキャンフリップフロップSFFの出力は“0”に変化する。なお、上記の比較動作に基づくテストは任意の数のワードデータについて逐次的または断続的に実施され、一度でもデータ信号が期待値と異なる場合があれば当該ビット位置に係るスキャンフリップフロップSFFの出力は“0”に変化し、故障救済ビット位置特定テストが実施される期間において当該データ“0”が保持される。すなわち、上記のように各データ入出力部(DI<i>,DO<i>)(i=1〜15)について、任意の数のワードデータについての比較結果をそれぞれ対応するスキャンフリップフロップSFF<i>(i=1〜15)に保持して、16ビットのテスト結果を得る。
【0049】
なお、上記の故障救済ビット位置特定テストについては、冗長記憶回路62により救済される故障の存在する記憶素子に接続するデータ入出力部DI,DOのビット位置は1つに限られるために、故障救済対象のデータ入出力部は1ビット分検出すれば十分である。このために、故障救済ビット位置特定テストにおけるテスト対象のRAM31内に記憶されたワードデータの選定には種々の方式が考えられる。例えば、記憶素子としてのビット線の故障を検出して、当該故障の存在するビット線に接続するデータ入出力部のビット位置を特定する場合を考える。図9は、RAMの基本的な構成を示す図である。図9において、説明を簡単にするために1つのメモリブロック内のメモリセル数を32個(0〜31)とする。図9において、A0〜A4はアドレス信号であり、信号A0および信号A1に基づいてYデコーダによりビット線が選択され、信号A2、信号A3および信号A4に基づいてXデコーダによりワード線が選択される。また、B1,B2,B3,B4はビット線、DO<0>からDO<3>はデータ出力部を示す。すなわち、このRAMでは1つのワードデータとして3ビットのデータが出力される。したがって、図9に示されるような回路構成を有するRAMについては、故障の存在するビット線に接続するデータ入出力部のビット位置を特定するためには、アドレス信号A0〜A4を制御して、0番地、1番地、2番地および3番地に記憶されたワードデータに対して各ビット毎に期待値との比較によるテストを実施すれば十分である。例えば、アドレス信号A0〜A4により2番地を指定した際にデータ出力部DO<1>から出力されるデータに異常が検出されれば、データ出力部DO<1>に接続するビット線B3に故障が存在することが推定される。
【0050】
また、記憶素子としてのメモリセルの故障を検出して、当該メモリセルに接続するデータ入出力部のビット位置を特定する場合には、所定の規則により導かれたアドレス毎のワードデータを取り出して比較動作を実施し、出力データに異常が検出された時点でテストを終了する方式が考えられる。すなわち、REDEN=0の条件下でデータ出力部F<0>の出力が“0”となった時点でテストを終了し、異常が検出されたデータを出力したデータ出力部DOに係るビット位置を故障救済ビット位置とする。
【0051】
次に、故障救済ビット位置特定テストにおいて、テスト回路32によるRAM31に対するテスト結果が得られれば、図1に示される初期化信号INIT1をアクティブにして、Dフリップフロップ6およびカウンタ7を初期化して、Dフリップフロップ6の出力Qを“1”とするとともに、カウンタ7の出力をQ0=Q1=Q2=Q3=0とする。この初期化が終了すれば、TMSI=0,TMFB=1,CMP1L=1,CMP0L=1,MASK=0として、図6および図7に示されるテスト回路32を再びシフトモードに設定する。
【0052】
次に、各スキャンフリップフロップSFF、Dフリップフロップ6およびカウンタ7に共通にクロック信号Tよりクロックを供給して、スキャンフリップフロップSFFに保持されたテスト結果をシフトアウトするとともにシフトアウトされたビットデータ数を計数する。テスト結果のシフトアウトを実施する間において、故障の存在を示すデータが出力されてシリアル出力データSODOが“0”となると、Dフリップフロップ6が当該故障に係るビットデータをラッチした段階で、Dフリップフロップの出力すなわちカウンタ7へのイネーブル信号が“0”となりカウンタ7の動作は停止する。さらに、Dフリップフロップ6の出力部はANDゲート5の一方の入力部に接続されているので、Dフリップフロップ6の出力は“0”に固定され、カウンタ7の停止状態はそのまま維持される。すなわち、RAM31内のデータ入出力部(DI<i>,DO<i>)に接続する記憶素子に故障が発生してスキャンフリップフロップSFF<i>にデータ“0”が保持されている場合には、クロック信号Tにより(i+1)個のクロックが供給された時点で、テスト終了後にスキャンフリップフロップSFF<i>に保持されたデータ“0”がDフリップフロップ6にラッチされて、フラグ用信号FLAG1の信号レベルが“1”から“0”に変化するとともに、カウンタ7が停止する。したがって、カウンタ7は、故障が生じた記憶素子に接続するデータ入出力部(DI<i>,DO<i>)のビット位置iに1を加えた計数値(i+1)を示すものとなる。なお、RAM31に係るビット位置特定テストにおいて、1または複数の故障を検出した場合には、故障が生じた記憶素子に接続する入出力のなかで最も小さなビット位置にあるデータ入出力部についてのビット位置を検知することになる。また、データ入出力部(DI<15>,DO<15>)に接続する記憶素子に故障が存在して、SFF<15>の出力に“0”が保持されている場合には、i+1=16となるからカウンタ7の計数は一巡して、Q0=Q1=Q2=Q3=0となる。
【0053】
上記動作について例をあげて説明すると、例えばデータ入出力部(DI<6>,DO<6>)に接続する記憶素子に故障が存在する場合には、テスト終了後において当該故障が存在する記憶素子に接続するデータ入出力部に対応するスキャンフリップフロップSFF<6>にはデータ“0”が保持される。したがって、テスト結果をシフトアウトする際には、クロック信号Tにより7個のクロックが入力された時点で、カウンタ7が停止する。すなわち、カウンタ7は、計数値7を示すQ3=0,Q2=1,Q1=1,Q0=1の状態で停止する。これにより、故障が存在する記憶素子に接続するデータ入出力部に係るビット位置(7−1=6)を検知することができる。
【0054】
第2に、訂正可否判定テストについて説明する。
故障救済ビット位置特定テストに係るテスト結果のシフトアウトにより、FLAG1=0となって故障の存在が検出されると、MASK=1,DECEN=1,REDEN=0,SELI=1,TMFB=0,TMSI=1とするとともに、CMP0LおよびCMP1Lについていずれか一方を0に他方を1に設定して、RAM31内のすべてのワードデータに対してワードデータ毎に比較動作を実施する。SELI=1に設定することで、セレクタ8〜11は“1”入力部に入力されたデータを出力部から出力する。すなわち、デコーダ回路4のデータ入力部I<0>,I<1>,I<2>,I<3>には、それぞれカウンタ7のデータ出力部Q0,Q1,Q2,Q3から出力されるデータが入力される。また、DECEN=1に設定することで、デコーダ回路4は入力されるバイナリデータをデコードして対応するビット位置のデータ出力部から“1”を出力する。ここで、ビット位置iに係るデータ入出力部(DI<i>,DO<i>)について故障が検出された場合には、カウンタ7のデータ出力部Q0,Q1,Q2,Q3から出力されるバイナリデータはi+1を表現するように各値が設定されるので、デコードの結果としてデコーダ回路4はデータ出力部B<i+1>のみから“1”を出力する。
【0055】
デコーダ回路4のデータ出力部B<i+1>から出力されたデータ“1”は、テスト回路32のデータ入力部B<i+1>に入力される。これにより、データ入力部B<i+1>に接続されるスキャンフリップフロップSFF<i>については、MASK=1並びにB=1となって比較動作が不能となり、当該スキャンフリップフロップSFF<i>の出力は“1”に保持される。なお、データ入出力部(DI<15>,DO<15>)について故障が検出された場合には、Q0=Q1=Q2=Q3=0となってデータ入力部B<0>にデータ“1”が入力される。図6および図7に示されるように、テスト回路32のデータ入力部B<0>はスキャンフリップフロップSFF<15>に接続されているので、当該スキャンフリップフロップSFF<15>は、この場合比較動作不能となってその出力は“1”に保持される。上記の説明から明らかなように、テスト回路32においてデータ入力部B<1>からB<15>をそれぞれスキャンフリップフロップSFF<0>からSFF<14>に接続するとともに、データ入力部B<0>をスキャンフリップフロップSFF<15>に接続することで、故障が検出されたデータ入出力部(DI<i>,DO<i>)に対応するスキャンフリップフロップSFF<i>における比較動作を不能とすることができる。
【0056】
上記動作について例をあげて説明すると、RAM31に対するテスト回路32による故障救済ビット位置特定テストを終了した後に、例えばデータ入出力部(DI<6>,DO<6>)に接続する記憶素子に故障が存在することが検出された場合には、テスト結果をシフトアウトすることで故障が検出されてFLAG1=0となり、カウンタ7からは計数値7を表現するQ3=0,Q2=1,Q1=1,Q0=1が出力される。デコーダ回路4は、これら入力されるバイナリデータをデコードして、データ出力部B<7>のみから“1”を出力する。そして、テスト回路32においてデータ入力部B<7>に接続されるスキャンフリップフロップSFF<6>は、MASK=1並びにB=1である条件下で比較動作不能となり、スキャンフリップフロップSFF<6>の出力は“1”に保持される。
【0057】
以上説明したように、MASK=1,DECEN=1,SELI=1とすることで、RAM31に対する故障救済ビット位置特定テストのテスト結果をシフトアウトすることで故障が検出されたデータ入出力部(DI<i>,DO<I>)については、訂正可否判定テストにおいて比較動作を不能にすることができる。したがって、訂正可否判定テストにおいては、冗長記憶回路62による故障救済が予定されているデータ入出力部(DI<i>,DO<i>)を除いた他のデータ入出力部DI,DOを対象として、各ワードデータ毎に期待値との比較動作を実施する。この訂正可否判定テストを実施するに際しては、まず故障救済ビット位置特定テストと同様に、TMSI=0,TMFB=1,CMP1L=1,CMP0L=1,MASK=0としてシフトモードに設定し、スキャンフリップフロップSFFのすべてに“1”を保持させる。
【0058】
次に、各ワードデータ毎の比較動作に移行する。まず、TMFB=0,TMSI=1とするとともに、CMP0LおよびCMP1Lについていずれか一方を0に他方を1に設定することにより比較動作を実施する。例えば、RAM31から読み出されるデータの期待値が“1”である場合には、CMP1L=0,CMP0L=1とする。次に、比較動作の実施により各スキャンフリップフロップSFFの出力部に保持されたテスト結果に係るデータをクロック信号Tにより供給される任意の数のクロックに対しても保持するために、TMFB=0,TMSI=1,CMP0L=1,CMP1L=1としてスキャンフリップフロップSFFをデータ保持モードに設定する。
【0059】
RAM31の各ワードデータ毎に実施されるテストに係るテスト結果が保持された際に、比較動作不能としたデータ入出力部(DI<i>,DO<i>)以外のデータ入出力部(DI<j>,DO<j>)(i≠j)について故障が検出されると、当該データ入出力部(DI<j>,DO<j>)に係るスキャンフリップフロップSFF<j>の出力は“0”となり、テスト回路32のデータ出力部F<0>からF<j>よりの出力が“0”となる。したがって、データ出力部F<0>の出力をチェックすることにより、テスト対象となっているワードデータに係る記憶素子に故障が存在するか否かを判定することが可能となる。すなわち、データ出力部F<0>の出力が“0”であれば、故障が存在することが検知されて、この場合には当該ワードデータに対するテスト結果をシフトアウトして、後述するデータ処理を実施する。また、データ出力部F<0>の出力が“1”であれば、故障が存在しないことが確認されて、この場合には次のワードデータに対するテストに移行する。なお、テスト結果をシフトアウトする際には、同時にシリアル入力データSIDOとして“1”を設定して、データ“1”を順次シフトインする。これにより、すべてのスキャンフリップフロップSFF<i>(i=0〜15)にデータ“1”を保持させて、次のワードデータに対するテストに備えることができる。
【0060】
データ出力部F<0>の出力が“0”であって、テスト結果がシフトアウトされれば、シフトアウトされたテスト結果において記憶素子の故障の存在を示すデータ数すなわちビットデータが“0”であるビット数を計数する。比較動作不能としたビット位置に係るデータ入出力部(DI<i>,DO<i>)については、図3および図4に示される冗長記憶回路62を用いての故障救済が予定されているので、各ワードデータ毎に検出される残り1ビットの故障に基づくエラーについては図1に示されるECC回路によりエラー訂正を実施することが可能である。すなわち、各ワードデータ毎のテストにおいてデータ出力部F<0>の出力が“0”となったすべてのワードデータについて計数された故障に係るビットデータのビット数が1であれば、RAM31の全ワードデータについて記憶素子の故障に基づくエラーに対するエラー訂正を保証できるから、図1に示される冗長記憶回路とECC回路との組み合せから成る記憶システムについて記憶素子の故障に対する故障救済を保証することが可能となる。また、各ワードデータ毎のテストにおいてデータ出力部F<0>の出力が“0”となったワードデータについて1つでも計数された故障に係るビットデータのビット数が2以上となれば、当該ワードデータについてはECC回路によるエラー訂正を保証することはできない。したがって、故障が検出されたワードデータ毎に、シフトアウトされるテスト結果のなかに存在する故障に係るビット数を計数することにより、ECC回路によるエラー訂正の可否すなわち図1に示された冗長記憶回路とECC回路との組み合せから成る記憶システムの故障救済の可否の判定を実施することが可能となる。
【0061】
第3に、冗長記憶回路制御用テストについて説明する。
上記の訂正可否判定テストにより、記憶システムによる故障救済が可能であると判定された場合には、故障救済ビット位置にあるデータ入出力部DI,DOに対する故障救済を実施するために、まずTMSI=0,TMFB=1,CMP1L=1,CMP0L=1,MASK=0としてスキャンフリップフロップSFFをシフトモードに設定する。その後、シリアル入力データSIDOとして“1”を設定し、クロック信号Tにより供給されるクロックに応じてデータ“1”を順次シフトインすることで、すべてのスキャンフリップフロップSFF<i>(i=0〜15)にデータ“1”を保持させる。
【0062】
次に、MASK=0,DECEN=0,REDEN=1,TMFB=0,TMSI=1とするとともに、期待値に応じてCMP0LおよびCMP1Lについていずれか一方を0に他方を1に設定した状態において、RAM31から1または複数の所定のアドレスのワードデータをテスト回路32に読み出して比較動作を実施する。なお、訂正可否判定テストの有効性を維持するためには、故障救済ビット位置特定テストにより特定されるとともに訂正可否判定テストにおいてデータ入出力部における比較動作を不能としたビット位置と、冗長記憶回路制御用テストにおいて記憶素子の故障が検出されるビット位置とを一致させる必要があるので、冗長記憶回路制御用テストにおいてテスト対象となるRAM31内に記憶されたワードデータについては、故障救済ビット位置特定テストにおいて選定されたワードデータと同じアドレスのものを選定するものとする。
【0063】
上記冗長記憶回路制御用テストにおける比較動作の実施により、故障が存在する記憶素子に接続するデータ入出力部DI,DOに係るビット位置をiとすれば、スキャンフリップフロップSFF<i>の出力は“1”から“0”に変化し、ANDゲート71〜86の動作に基づいてテスト回路32のデータ出力部F<0>からF<i>の出力が“0”となり、データ出力部F<i+1>からF<15>の出力が“1”となる。例えば、故障の検出されるビット位置がi=6である場合には、テスト回路32のデータ出力部F<0>からF<6>の出力が“0”となり、データ出力部F<7>からF<15>の出力が“1”となる。
【0064】
既に述べテスト回路32と冗長記憶回路62との接続形態から明らかなように、データ出力部F<2>からF<15>より出力されるデータはそれぞれセレクタ33〜46の制御部に入力され、データ出力部F<1>からF<15>より出力されるデータはそれぞれセレクタ47〜61の制御部に入力される。これにより、故障の発生した記憶素子に係るビット位置iのデータ入出力部(DI<i>,DO<i>)を不使用とするとともに、当該データ入出力部(DI<i>,DO<i>)に代えて予備データ入出力部(DI<0>,DO<0>)を使用することにより、RAM31とセレクタ33〜61とを有して構成される冗長記憶回路62は15ビットの入出力機能を有するRAMとして動作する。例えば、データ入出力部(DI<6>,DO<6>)に接続する記憶素子に故障が存在する場合には、セレクタ33〜61を適宜制御することにより、データ入出力部(DI<6>,DO<6>)を不使用とするとともに、当該データ入出力部(DI<6>,DO<6>)に代えて予備データ入出力部(DI<0>,DO<0>)を使用して、冗長記憶回路62を15ビットの入出力機能を有するRAMとして動作させる。なお、当該冗長記憶回路62の動作については、従来の技術として図29および図30を用いて説明した冗長記憶回路と同様であるので、その詳細な説明は省略する。
【0065】
以上のように、故障救済ビット位置特定テスト、訂正可否判定テストおよび冗長記憶回路制御用テストが終了すれば、MASK=0,DECEN=1,SELI=0として通常動作モードに設定する。通常動作時においては、SELI=0とすることで、エラー検出回路3から出力されるエラー検出データE1,E2,E3,E4がそれぞれデコーダ回路4の入力部I<0>,I<1>,I<2>,I<3>に入力される。デコーダ回路4は、入力されるバイナリデータをデコードし、当該エラーが発生したビットデータに対して図25において割り当てられた数をiとすると、データ出力部B<i>のみからデータ“1”を出力する。これにより、EX−ORゲート12〜22を介して1ビットのエラーに係るエラー訂正が実施される。すなわち、SELI=1と設定することにより、図1に示される記憶システムはECC回路としての機能をも有する。なお、ECC回路の動作については、従来の技術として図24を用いて説明したECC回路と同様であるので、その詳細な説明は省略する。
【0066】
以上のように、この実施の形態1によれば、複数ビットのデータ入出力部(DI<i>,DO<i>)(i=1〜15)と1ビットの予備データ入出力部(DI<0>,DO<0>)とを有して構成されるRAM31と、RAM31内の記憶素子に故障が存在しない場合には、RAM31へのデータ入出力を複数ビットのデータ入出力部(DI<i>,DO<i>)(i=1〜15)を使用して実施し、RAM31内の記憶素子に故障が存在する場合には、当該故障の存在する記憶素子に係るビット位置のデータ入出力部(DI<i>,DO<i>)を不使用にするとともに、不使用にしたデータ入出力部(DI<i>,DO<i>)に代えて予備データ入出力部(DI<0>,DO<0>)を使用してRAM31へのデータの入出力を実施するように制御することができる複数のセレクタ33〜61と、RAM31とセレクタ33〜61とを有して構成される冗長記憶回路62の冗長データ出力部XDO<i>(i=1〜15)、あるいはRAM31のデータ出力部DI<i>(i=1〜15)および予備データ出力部DI<0>からの出力データと期待値とを各ビット毎に比較し、当該比較結果を保持可能であるとともに、任意のビット位置に係る比較動作を不能とすることができるテスト回路32と、テスト結果における各ビット毎の比較結果を逐次的に取り出すことができるスキャンパス87と、ANDゲート5、Dフリップフロップ6、カウンタ7およびデコーダ回路4を有して構成されてスキャンパス87により取り出された各ビット毎の比較結果に基づいて故障の存在する記憶素子に係るビット位置を特定する故障位置特定手段とを備えるように構成したので、スキャンパス87により取り出されたRAM31のテスト結果に基づいて、故障位置特定手段により故障の存在する記憶素子に係るビット位置を特定することができ、当該故障の存在する記憶素子に係るビット位置をテスト回路32において比較動作不能として再度RAM31に係るテストをワードデータ毎に実施することにより、当該故障の存在する記憶素子に係るビット位置のデータ入出力部を冗長記憶回路62により故障救済した際における各ワードデータ毎の故障に係るビットデータ数を計数することが可能となり、冗長記憶回路62以外の故障救済手段による故障救済の可否を判定することができるという効果を奏する。
【0067】
また、冗長記憶回路62に入力される情報データについて1ビットのエラー検出を可能とするパリティデータを生成し、当該パリティデータを冗長記憶回路62に出力するパリティ生成回路2と、エラー検出回路3およびデコーダ回路4を有して構成されて情報データと当該情報データに対応するパリティデータとから構成される冗長記憶回路62よりの出力データを入力して、1ビットのエラーの存在するビット位置を特定するエラー位置特定手段と、エラー位置特定手段のデータ出力部Bから出力されるデータに基づいてエラーの存在するビット位置について冗長記憶回路62のデータ出力部DOから出力されるデータを反転させるEX−ORゲート12〜22とを備えるように構成したので、冗長記憶回路62から出力されるデータについてパリティ生成回路2、エラー検出回路3、デコーダ回路4、EX−ORゲート12〜22等から成る1ビットのエラー訂正が可能なECC回路が与えられ、冗長記憶回路62に係るデータ入出力について各ワードデータ毎に1ビットのエラーを許容することができるから、冗長記憶回路62により故障救済されるビット位置の比較動作を不能にした状態でワードデータ毎のテストを実施することで、記憶素子の故障に基づくエラーに対するECC回路によるエラー訂正の可否、ひいてはECC回路、冗長記憶回路およびテスト回路を有して構成される記憶システムの全体的な故障救済の可否を判定することができて、システム全体の故障救済を保証することが可能になるという効果を奏する。
【0068】
さらに、故障位置特定手段がANDゲート5、Dフリップフロップ6、カウンタ7およびデコーダ回路4を有して構成され、エラー位置特定手段がエラー検出回路3およびデコーダ回路4を有して構成され、またカウンタ7のデータ出力部に接続されるとともにエラー検出回路3のデータ出力部に接続されてカウンタ7のデータ出力部かエラー検出回路3のデータ出力部のいずれか一方を選択的にデコーダ回路4のデータ入力部に接続するセレクタ8〜11を備えるように構成したので、故障位置特定手段とエラー位置特定手段との間でデコーダ回路4を共有することができるから、システムの回路規模を小さくすることができるという効果を奏する。
【0069】
なお、図1に示されるように、データ出力部XDOに代えてデータ出力部YDO(またはデータ出力部YDO’)から出力されるデータに対してエラー訂正を実施することも可能である。この場合には、通常動作時においてYDO<i>=XDO<i>となるように、CMP0L=1,TMSI=1,TMFB=1,CMP1L=0,MASK=0に設定する必要がある。また、データ出力部YDOを用いる代わりにデータ出力部YDO’を用いることも可能であるが、データ出力部YDO’を用いる場合には論理が反転するので、図1等に示される上位階層の回路を修正する必要がある。また、図3および図4に示されるテスト回路のデータ入力部IDO<0>からIDO<14>に対しては、それぞれRAM31のデータ出力部DO<0>からDO<14>を接続するのに代えて、()により示されるようにXDO<1>からXDO<15>を接続することも可能である。ただし、この場合には、テスト時においてXDO<i+1>=DO<i>となるように、REDEN=0とすることでデータ出力部F<i>(i=1〜15)の出力として“1”を設定する。また、スキャンフリップフロップSFF<i>(i=1〜15)としては、図8に示される回路構成を例にとって説明したが、スキャンフリップフロップSFFの回路構成は図8に示されるものに限定されるわけではなく、図10および図11に示される回路構成を有するスキャンフリップフロップSFFを用いても同様の動作を実現することが可能である。
【0070】
実施の形態2.
図12は、この発明の実施の形態2によるECC回路、冗長記憶回路およびテスト回路等を有して構成される記憶システムとして与えられる半導体集積回路装置の構成を示す回路図である。図12において、図1と同一符号並びに記号列は同一または相当する構成要素または信号を示すので、その説明を省略する。図12に示される回路は、図1に示される回路と比較すると、冗長データ出力部XDO<i>(i=3,5〜7,9〜15)に代えてそれぞれ訂正データ出力部EDO<i>(i=3,5〜7,9〜15)が設けられている点、およびEX−ORゲート12〜22が削除されている点で相違する。すなわち、ECC回路におけるエラー訂正も複合回路1内で実施されて、エラー訂正後のデータが訂正データ出力部EDOから出力される。
【0071】
図13から図15は、この発明の実施の形態2による冗長記憶回路およびテスト回路を示す図である。図13は図14と図15との位置関係を示す説明図であり、図14および図15はこの発明の実施の形態1による冗長記憶回路およびテスト回路の構成を示す回路図である。図14および図15において、図3および図4と同一符号並びに記号列は同一または相当する構成要素または信号を示すので、その説明を省略する。図14および図15に示される回路は、図3および図4に示される回路と比較すると、テスト回路32に訂正データ出力部EDO<i>(i=3,5〜7,9〜15)が新たに設けられている点で相違する。すなわち、冗長データ出力部XDOから出力されるデータおよびデコーダ回路4のデータ出力部Bから出力されるデータを入力してテスト回路32内においてエラー訂正を実施し、エラー訂正後のデータが訂正データ出力部EDOから出力される。
【0072】
図16から図18は、この発明の実施の形態2によるテスト回路を示す図である。図16は図17と図18との位置関係を示す説明図であり、図17および図18はこの発明の実施の形態2によるテスト回路の内部構成を示す回路図である。図17および図18において、図6および図7と同一符号並びに記号列は同一または相当する構成要素または信号を示すので、その説明を省略する。図17および図18に示される回路は、図6および図7に示される回路と比較すると、ビット位置2,4〜6,8〜14において実施の形態1で使用されたスキャンフリップフロップSFFとは異なる回路構成を有するスキャンフリップフロップSFFEが使用されている点、および当該異なる回路構成を有するスキャンフリップフロップSFFEに訂正データ出力部EDO<i>(i=3,5〜7,9〜15)が設けられている点で相違する。すなわち、ビットデータの訂正が必要となるビット位置すなわち情報データに係るビット位置には、イクスクルーシブ・オア演算を実施する機能を備えたスキャンフリップフロップSFFEが配置され、当該スキャンフリップフロップSFFEによりエラー訂正されたデータが訂正データ出力部EDOから出力される。
【0073】
図19は、図17および図18に示されたスキャンフリップフロップSFFEの回路構成を示す図である。図19において、図8と同一符号並びに記号列は同一または相当する構成要素または信号を示すので、その説明を省略する。また、111はインバータ、112,113はORゲート、114はANDゲートである。図19に示される回路は、図8に示される回路と比較すると、インバータ111、ORゲート112,113、ANDゲート114およびこれら各ゲートに係る配線から構成されるイクスクルーシブ・オア演算を実施する機能を有する回路部位が新たに設けられている点で相違する。
【0074】
次に、図19に示されたスキャンフリップフロップSFFEの動作について説明する。
スキャンフリップフロップSFFEについて、TMSI=1,CMP1L=0,CMP0L=1,TMFB=1,MASK=0とすると、ORゲート93、ORゲート94およびORゲート95の出力が“1”となってインバータ98の出力は“1”となる。また、ORゲート96の出力は“0”となって、ORゲート99の出力部の信号レベルは信号Dと同じ信号レベルとなるから、NANDゲート100の出力部の信号レベルは信号Dの信号レベルを反転したものになるとともにインバータ101の出力部の信号レベルは信号Dと同じ信号レベルとなる。したがって、データ出力部EDOから出力される信号の論理値をEDO、信号Bの論理値をB、信号Dの論理値をDとすると、上記設定においては次の論理式が成立する。
EDO=(B+D)・(B+D
上記論理式において、“+”は論理和、“・”は論理積、“*”は論理値の反転を意味するものである。したがって、上記設定により、信号Bと信号Dとに対するイクスクルーシブ・オア演算の演算結果がデータ出力部EDOから出力されることになる。
【0075】
なお、スキャンフリップフロップSFFEについては、図8に示されたスキャンフリップフロップSFFと同様に、TMSI=0,TMFB=1,CMP1L=1,CMP0L=1,MASK=0とすることで、シフトモードに設定することができる。また、TMSI=1,TMFB=0,MASK=0とするとともに、期待値に応じてCMP0LおよびCMP1Lについていずれか一方を0に他方を1にすることにより、比較動作を実施するテストモードに設定することができる。さらに、TMSI=1,TMFB=0,CMP1L=1,CMP0L=1とすることで、クロック信号Tより任意の数のクロックが供給されてもスキャンフリップフロップSFFEの出力を保持するデータ保持モードに設定することができる。なお、上記各モードにおけるスキャンフリップフロップSFFE内における回路動作は、図8に示されるスキャンフリップフロップSFFにおける回路動作と同様であるので、詳細な説明については省略する。
【0076】
次に、図12に示されたECC回路、冗長記憶回路およびテスト回路等を有して構成される記憶システムに係る動作について説明する。
故障が存在するメモリセル、ビット線等の記憶素子に接続するデータ出力部からのデータ異常を検出して冗長記憶回路による故障救済を実施するビット位置を特定する故障救済ビット位置特定テスト、当該故障救済ビット位置についてテスト回路における比較動作を不能にして各ワードデータ毎に比較動作を実施して記憶素子の故障に基づくエラーをECC回路により訂正可能か否かを判定する訂正可否判定テスト、および故障救済ビット位置のデータ入出力部を不能とするとともに当該データ入出力部に代えて予備データ入出力部を使用してRAMに対するデータ入出力を実施するようにセレクタを適宜制御する信号をテスト回路から出力させるための冗長記憶回路制御用テスト等に係る動作については、実施の形態1による記憶システムと同様であるのでその説明を省略する。
【0077】
冗長記憶回路制御用テストに基づくセレクタ33〜61による入出力部の接続切り換えが完了すれば、MASK=0,DECEN=1,SELI=0,TMSI=1,CMP1L=0,CMP0L=1,TMFB=1として、通常動作モードに設定する。また、この通常動作モードにおいては、テスト回路32のデータ入力部IDO<0>からIDO<14>をそれぞれ冗長データ出力部XDO<1>からXDO<15>に接続する。通常動作時においては、SELI=0と設定することで、エラー検出回路3から出力されるエラー検出データE1,E2,E3,E4がそれぞれデコーダ回路4のデータ入力部I<0>,I<1>,I<2>,I<3>に入力される。デコーダ回路4は、入力されたバイナリデータをデコードして、エラーの生じている冗長データ出力部XDO<i>に係るビット位置iのデータ出力部B<i>のみからデータ“1”を出力する。テスト回路32は、冗長データ出力部XDOおよびデータ出力部Bからの出力データを入力して、当該データをそれぞれ対応するビット位置(i−1)のスキャンフリップフロップSFFEに入力する。スキャンフリップフロップSFFE<i−1>は、上記信号制御によりEX−ORモードに設定され、冗長データ出力部XDO<i>およびデータ出力部B<i>からの出力データを入力して、2つの入力データに係るイクスクルーシブ・オア演算をすることでエラー訂正を実施し、エラー訂正済みの情報データに係るビットデータをデータ出力部EDO<i>から出力する。すなわち、この実施の形態2では、スキャンフリップフロップSFFEにイクスクルーシブ・オア演算を実施する演算機能を付与することで、テスト回路32をECC回路としても動作させることができる。
【0078】
以上のように、この実施の形態2によれば、冗長記憶回路62のデータ出力部XDO<i>(i=1〜15)とテスト回路32のデータ入力部IDO<i>(i=0〜14)とを接続可能にするとともに、デコーダ回路4のデータ出力部B<i>(i=0〜15)とテスト回路32のデータ入力部B<i>(i=0〜15)とを接続可能として、テスト回路32にイクスクルーシブ・オア演算を実施する機能を備えた回路素子を組み込むように構成したので、エラー検出回路3およびデコーダ回路4により特定されるエラーの存在するビット位置に係る位置情報と冗長記憶回路62から出力される情報データとを入力して、イクスクルーシブ・オア演算を行なうことでエラー訂正を実施することができるから、エラー訂正処理をテスト回路32内で実施することができて、エラー訂正処理専用の回路を設ける必要がないから、回路規模を小さくすることができるという効果を奏する。
【0079】
なお、スキャンフリップフロップSFFE<i>(i=2,4〜6,8〜14)としては、図19に示される回路構成を例にとって説明したが、スキャンフリップフロップSFFEの回路構成は図19に示されるものに限定されるわけではなく、図20および図21に示される回路構成を有するスキャンフリップフロップSFFEを用いても同様の動作を実現することが可能である。
【0080】
実施の形態3.
図22は、この発明の実施の形態3によるECC回路、冗長記憶回路およびテスト回路等を有して構成される記憶システムとして与えられる半導体集積回路装置の構成を示す回路図である。図22において、図12と同一符号並びに記号列は同一または相当する構成要素または信号を示すので、その説明を省略する。121はセレクタ(選択手段)、122〜125はEX−ORゲート、ECCMODEはセレクタ121の制御信号である。セレクタ121は、ECCMODE=1の際には記憶システムのデータ入力部CDI<i>(i=0〜10)から入力される11ビットの情報データを出力し、ECCMODE=0の際には冗長データ出力部XDO<i>(i=3,5〜7,9〜15)から入力される11ビットのデータを出力する。
【0081】
次に動作について説明する。
RAMに対するデータの書き込みを実施する際には、ECCMODE=1に設定する。セレクタ121は、データ入力部CDI<i>(i=0〜10)から入力される11ビットの情報データをパリティ生成回路2に入力する。パリティ生成回路2は、当該11ビットの情報データに対する4ビットのパリティデータを生成して、パリティデータP1,P2,P3,P4をそれぞれ対応するビット位置にある冗長データ入力部XDIに入力する。
【0082】
RAMに対するデータの読み出しを実施する際には、ECCMODE=0に設定する。セレクタ121は、読み出し対象の情報データが記憶されているビット位置に係る冗長データ出力部XDO<i>(i=3,5〜7,9〜15)から出力される11ビットのデータをパリティ生成回路2に入力する。パリティ生成回路2は、当該11ビットのデータに対する4ビットのパリティデータP1,P2,P3,P4を生成する。上記のような動作に基づいて、読み出し対象の情報データに係るエラー検出用データE1,E2,E3,E4の生成について、式(5)におけるX1+X2+X4+X5+X7+X9+X11、式(6)におけるX1+X3+X4+X6+X7+X10+X11、式(7)におけるX2+X3+X4+X8+X9+X10+X11、式(8)におけるX5+X6+X7+X8+X9+X10+X11に係る演算結果が、それぞれパリティ生成回路2からデータP1,P2,P3,P4として出力される。EX−ORゲート122、123,124および125は、それぞれ読み出し対象の情報データに対するパリティデータが記憶されているビット位置に係る冗長データ出力部XDO<1>,XDO<2>,XDO<4>およびXDO<8>から出力されるデータとパリティ生成回路2から出力されるデータP1,P2,P3およびP4とに対して対応するビット位置毎にイクスクルーシブ・オア演算を実施して、当該演算結果をそれぞれエラー検出用データE1,E2,E3およびE4として出力する。
【0083】
以上のように、この実施の形態3によれば、情報データについて1ビットのエラー検出を可能とするパリティデータを生成して出力するパリティ生成回路2と、パリティ生成回路2からのパリティデータと冗長記憶回路62において当該パリティデータに係るビット位置のデータ出力部から出力されるデータとをそれぞれ対応するビット位置毎に入力するEX−ORゲート122〜125と、記憶システムのデータ入力部CDI<i>(i=1〜10)から冗長記憶回路62に入力される情報データ、または冗長記憶回路62において情報データに係るビット位置のデータ出力部XDO<i>(i=3,5〜7,9〜15)から出力されるデータのいずれか一方を選択的にパリティ生成回路2のデータ入力部に入力するセレクタ121を備えるように構成したので、冗長記憶回路62へデータを書き込む際には、セレクタ121によりデータ入力部CDI<i>(i=0〜10)からの情報データを選択して通常の書き込み動作を実施するとともに、冗長記憶回路62からデータを読み出す際には、読み出し対象の情報データに係るビット位置のデータ出力部XDO<i>(i=3,5〜7,9〜15)から出力されるデータをパリティ生成回路2に入力して生成されたパリティデータP1,P2,P3,P4と、読み出し対象の情報データに対するパリティデータに係るビット位置のデータ出力部XDO<i>(i=1,2,4,8)から出力されるデータとについて対応するビット位置毎にイクスクルーシブ・オア演算を行なうことにより情報データに係るエラー検出を実施することができるから、エラー検出回路3を省略して回路規模を小さくすることができるという効果を奏する。
【0084】
実施の形態4.
図23は、この発明の実施の形態4によるECC回路、冗長記憶回路およびテスト回路等を有して構成される記憶システムとして与えられる半導体集積回路装置の一部構成を示す回路図である。図23に示される回路は図1、図12および図22にそれぞれ記載された記憶システムに適用することが可能であり、図示を簡略化するために複合回路1、パリティ生成回路2、デコーダ回路4等は省略されている。図23において、図1と同一符号並びに記号列は同一または相当する構成要素または信号を示すので、その説明を省略する。131はインバータ、132はカウンタ、133はORゲート、134はANDゲート、135はDフリップフロップである。また、INIT2はカウンタ132を初期化するための初期化信号、FLAG2はワードデータ毎にテスト結果をシフトアウトする際に当該ビットデータ列に含まれる“0”の数すなわちテスト対象のワードデータに係る記憶素子に存在する故障の数が2になると信号レベルが変化するフラグ用信号である。なお、ANDゲート5、Dフリップフロップ6、ORゲート133、ANDゲート134およびDフリップフロップ135からスキャンパス87により取り出されたワードデータ毎の比較結果としてのビットデータ列のなかにおける故障に係るビットデータ数を2個計数することができる第1の故障数計数手段が構成される。また、インバータ131およびカウンタ132からスキャンパス87により取り出された比較結果としてのビットデータ列における故障に係るビットデータ数を計数することができる第2の故障数計数手段が構成される。
【0085】
次に動作について説明する。
故障が存在する記憶素子に接続するデータ入出力部のデータ異常を検出して冗長記憶回路による故障救済を実施するビット位置を特定する故障救済ビット位置特定テストが終了した後に、当該ビット位置についてテスト回路における比較動作を不能にして各ワードデータ毎に比較動作を実施する。これらの動作については、既に詳細に説明しているので、ここではその説明を省略する。訂正可否判定テストにおいて、各ワードデータ毎に比較動作を実施した後に、テスト回路32のデータ出力部F<0>の信号レベルが“0”であるのを検出してテスト対象のワードデータに係る記憶素子に故障が存在することが確認されれば、テスト回路32内のスキャンフリップフロップSFF(またはSFFE)に保持されたテスト結果がシリアル出力データとしてシフトアウトされる。このテスト結果のシフトアウトを実施する際には、まず初期化信号INIT1をアクティブにして、Dフリップフロップ6、カウンタ7およびDフリップフロップ135を初期化して、Dフリップフロップ6およびDフリップフロップ135の出力Qをともに“1”とする。すなわち、初期化時点において、フラグ用信号FLAG1,FLAG2の信号レベルは“1”となっている。
【0086】
次に、各スキャンフリップフロップSFF(またはSFFE)、Dフリップフロップ6、カウンタ7およびDフリップフロップ135に対して共通にクロック信号Tよりクロックを供給して、テスト結果を1ビットずつシフトアウトする。テスト結果のシフトアウトを実施する間において、シリアル出力データSODOが“0”となると、ANDゲート5の出力が“0”となる。そして、クロック信号Tから次のクロックが供給されれば、Dフリップフロップ6の出力Qに“0”がラッチされ、フラグ用信号FLAG1の信号レベルが“1”から“0”に変化する。フラグ用信号FLAG1の信号レベルは、初期化してリセットされない限りそのまま“0”を保持する。
【0087】
次に、テスト結果の1ビットずつのシフトアウトにおいて、シリアル出力データSODOが再度すなわち二度目に“0”となると、ORゲート133の出力が“0”となり、ANDゲート134の出力も“0”となる。そして、クロック信号Tから次のクロックが供給されれば、Dフリップフロップ135の出力に“0”がラッチされ、フラグ用信号FLAG2の信号レベルが“1”から“0”に変化する。したがって、シフトアウトされるテスト結果としてのビットデータ列のなかにデータ“0”が2つ以上存在する場合、すなわちテスト対象のワードデータに係る記憶素子に2つ以上の故障が存在する場合には、フラグ用信号FLAG2の信号レベルが“0”となるから、フラグ用信号FLAG2をチェックすることでECC回路による記憶素子の故障に基づくエラーに対するエラー訂正の可否を判定することが可能となる。そして、ECC回路によるエラー訂正が不可であると判定された場合には、その時点でテスト対象である半導体集積回路装置が不良品であると判定して、テストを終了する。なお、テスト結果をシフトアウトする際におけるカウンタ7によるビット数の計数等に係る動作については、既に詳細に説明しているので、ここではその説明を省略する。
【0088】
また、カウンタ132については、初期化信号INIT2をアクティブにして、出力をQ0’=Q1’=,…,=Qn’=0とした後は、シリアル入力データSODOの信号レベルが“0”の状態でクロック信号Tよりクロックが供給される毎に1ずつ計数値を増分する。したがって、冗長記憶回路62による故障救済ビット位置についてテスト回路における比較動作を不能にした状態で各ワードデータ毎の比較動作を実施する際に、最初に初期化信号INIT2をアクティブにしてカウンタ132を初期化しておけば、ECC回路によるエラー訂正の可否を判定する訂正可否判定テストが完了した時点において、冗長記憶回路62により救済されるビット位置に係る記憶素子を除いたRAM内のすべての記憶素子のなかで故障が存在している記憶素子の数を計数することが可能となる。ところで、任意のワードデータに係る記憶素子について、冗長記憶回路62により救済されるビット位置以外のビット位置にある記憶素子に故障が存在する場合には、当該ワードデータについては記憶素子の故障に基づくエラーをECC回路によりエラー訂正する必要があるために、当該ワードデータ内にソフトエラーが発生した場合にはソフトエラーに対する救済が不可能となる。したがって、カウンタ132の計数値により、ソフトエラーの救済不能なワードデータ数を検知することができるので、RAM全体としてのソフトエラーに対するエラー訂正能力を評価することが可能となる。
【0089】
以上のように、この実施の形態4によれば、ANDゲート5、Dフリップフロップ6、ORゲート133、ANDゲート134およびDフリップフロップ135を有して構成され、スキャンパス87により取り出されたワードデータ毎の比較結果としてのビットデータ列のなかにおける故障に係るビットデータ数を2個計数することができる第1の故障計数手段を備えるように構成したので、冗長記憶回路62以外の故障救済手段による故障救済可能なビット数が1ビットである場合に、冗長記憶回路62による故障救済が予定されているビット位置の比較動作を不能にした状態でのテストにより任意のワードデータに係る記憶素子の故障数が2であることが検出されれば、当該テスト対象の半導体集積回路装置を不良品であると判定してテストを終了することができるから、半導体集積回路装置のテスト時間の短縮化を実現することができるという効果を奏する。
【0090】
また、インバータ131およびカウンタ132を有して構成され、スキャンパス87により取り出された比較結果としてのビットデータ列のなかにおける故障に係るデータ数を計数することができる第2の故障計数手段を備えるように構成したので、冗長記憶回路62による故障救済が予定されているビット位置以外のビット位置において故障が検出されるワードデータ数すなわちソフトエラーの救済不能なワードデータ数を検知することができるから、RAM31全体としてのソフトエラーに対するエラー訂正能力を評価することができるという効果を奏する。
【0091】
【発明の効果】
以上のように、この発明によれば、複数ビットのデータ入力部およびデータ出力部と少なくとも1ビットの予備データ入力部および予備データ出力部とを有して構成される記憶手段と、記憶手段の記憶素子に故障が存在しない場合には、記憶手段へのデータの入出力を複数ビットのデータ入力部およびデータ出力部を使用して実施し、記憶手段の記憶素子に故障が存在する場合には、当該故障の存在する記憶素子に係るビット位置のデータ入力部およびデータ出力部を不使用にするとともに、不使用にしたデータ入力部およびデータ出力部と同数の予備データ入力部および予備データ出力部を使用して記憶手段へのデータの入出力を実施する入出力切り換え手段と、記憶手段と入出力切り換え手段とから成る冗長記憶手段のデータ出力部、あるいは記憶手段のデータ出力部または記憶手段のデータ出力部および予備データ出力部からの出力データと期待値とを各ビット毎に比較し、当該比較結果を保持可能であるとともに、任意のビット位置に係る比較動作を不能とすることができるテスト手段と、テスト手段における各ビット毎の比較結果を逐次的に取り出すことができるテスト結果出力手段と、テスト結果出力手段により取り出された各ビット毎の比較結果に基づいて故障の存在する記憶素子に係るビット位置を特定する故障位置特定手段とを備えるように構成したので、テスト結果出力手段により取り出された記憶手段に係るテスト結果に基づいて、故障位置特定手段により故障の存在する記憶素子に係るビット位置を特定することができ、当該故障の存在する記憶素子に係るビット位置をテスト手段において比較動作不能として再度記憶手段に係るテストをワードデータ毎に実施することにより、当該故障の存在する記憶素子に係るビット位置のデータ入出力部を冗長記憶手段により故障救済した際における各ワードデータ毎の故障に係るビットデータ数を計数することが可能となり、冗長記憶手段以外の故障救済手段による故障救済の可否を判定することができるという効果を奏する。
【0092】
この発明によれば、冗長記憶手段に入力される情報データについて1ビットのエラー検出を可能とするパリティデータを生成し、当該パリティデータを冗長記憶手段に出力するパリティ生成手段と、情報データと当該情報データに対応するパリティデータとから構成される冗長記憶手段よりの出力データを入力して、1ビットのエラーの存在するビット位置を特定するエラー位置特定手段と、エラー位置特定手段から出力される信号に基づき、エラーの存在するビット位置について冗長記憶手段のデータ出力部から出力されるデータを反転させるエラー訂正手段とを備えるように構成したので、冗長記憶手段から出力されるデータについてパリティ生成手段、エラー位置特定手段、エラー訂正手段等から成る1ビットのエラー訂正が可能なECC回路が与えられ、冗長記憶手段に係るデータ入出力について各ワードデータ毎に1ビットのエラーを許容することができるから、冗長記憶手段により故障救済されるビット位置の比較動作を不能にした状態でワードデータ毎のテストを実施することで、記憶素子の故障に基づくエラーに対するECC回路によるエラー訂正の可否、ひいてはECC回路、冗長記憶手段、テスト手段等を有して構成される記憶システムの全体的な故障救済の可否を判定することができて、システム全体の故障救済を保証することが可能になるという効果を奏する。
【0093】
この発明によれば、故障位置特定手段が、故障を示すビットデータの検出をトリガとして停止するまで、逐次的に取り出される比較結果のビット数を計数し、当該計数値をバイナリデータとして出力する計数手段と、バイナリデータをデコードするデコード手段とを有して構成され、エラー位置特定手段が、冗長記憶手段からの出力データを入力して、エラーの存在するビット位置をバイナリデータとして出力するエラー位置出力手段と、バイナリデータをデコードする上記デコード手段とを有して構成され、計数手段のデータ出力部に接続されるとともにエラー位置出力手段のデータ出力部に接続されて、計数手段のデータ出力部かエラー位置出力手段のデータ出力部のいずれか一方を選択的に上記デコード手段のデータ入力部に接続する選択手段を備えるように構成したので、故障位置特定手段とエラー位置特定手段との間でデコード手段を共有することができるから、システムの回路規模を小さくすることができるという効果を奏する。
【0094】
この発明によれば、冗長記憶手段のデータ出力部とテスト手段のデータ入力部とを接続可能とするとともに、デコード手段のデータ出力部とテスト手段のデータ入力部とを接続可能として、テスト手段にイクスクルーシブ・オア演算を実施する回路素子を組み込むように構成したので、エラー位置特定手段およびデコード手段により特定されるエラーの存在するビット位置に係る位置情報と冗長記憶手段から出力される情報データとを入力して、イクスクルーシブ・オア演算を行なうことでエラー訂正を実施することができるから、エラー訂正処理をテスト手段内で実施することができて、エラー訂正処理専用の回路を設ける必要がないから、回路規模を小さくすることができるという効果を奏する。
【0095】
この発明によれば、情報データについて1ビットのエラー検出を可能とするパリティデータを生成して出力するパリティ生成手段と、パリティ生成手段からのパリティデータと冗長記憶手段において当該パリティデータに係るビット位置のデータ出力部から出力されるデータとをそれぞれ対応するビット位置毎に入力する複数のイクスクルーシブ・オアゲートと、冗長記憶手段に入力される情報データ、または冗長記憶手段において情報データに係るビット位置のデータ出力部から出力されるデータのいずれか一方を選択的にパリティ生成手段のデータ入力部に入力する選択手段とを備えるように構成したので、冗長記憶手段へデータを書き込む際には、選択手段により冗長記憶手段に入力される情報データを選択して通常の書き込み動作を実施するとともに、冗長記憶手段からデータを読み出す際には、選択手段により冗長記憶手段において読み出し対象の情報データに係るビット位置のデータ出力部から出力されるデータをパリティ生成手段に入力して生成されたパリティデータと、冗長記憶手段において読み出し対象の情報データに対するパリティデータに係るビット位置のデータ出力部から出力されるデータとについて対応するビット位置毎にイクスクルーシブ・オア演算を行なうことにより情報データに係るエラー検出を実施することができるから、エラー位置出力手段を省略して回路規模を小さくすることができるという効果を奏する。
【0096】
この発明によれば、テスト結果出力手段により取り出されたワードデータ毎の比較結果のなかにおける故障に係るビットデータ数を少なくとも2以上計数することができる第1の故障数計数手段を備えるように構成したので、冗長記憶手段以外の故障救済手段による故障救済可能なビット数がn(n≧1)ビットである場合に、冗長記憶手段による故障救済が予定されているビット位置の比較動作を不能にした状態でのテストにより任意のワードデータに係る記憶素子の故障数がn+1であることが検出されれば、当該テスト対象の半導体集積回路装置を不良品であると判定してテストを終了することができるから、半導体集積回路装置のテスト時間の短縮化を実現することができるという効果を奏する。
【0097】
この発明によれば、テスト結果出力手段により取り出された比較結果における故障に係るビットデータ数を計数することができる第2の故障数計数手段を備えるように構成したので、冗長記憶手段による故障救済が予定されているビット位置以外のビット位置において故障が検出されるワードデータ数すなわちソフトエラーの救済不能なワードデータ数を検知することができるから、記憶手段全体としてのソフトエラーに対するエラー訂正能力を評価することができるという効果を奏する。
【図面の簡単な説明】
【図1】 この発明の実施の形態1による冗長記憶回路、ECC回路、テスト回路等を有して構成される記憶システムの構成を示す回路図である。
【図2】 図3と図4との位置関係を示す説明図である。
【図3】 この発明の実施の形態1による冗長記憶回路およびテスト回路の構成を示す回路図である。
【図4】 この発明の実施の形態1による冗長記憶回路およびテスト回路の構成を示す回路図である。
【図5】 図6と図7との位置関係を示す説明図である。
【図6】 この発明の実施の形態1によるテスト回路の内部構成を示す回路図である。
【図7】 この発明の実施の形態1によるテスト回路の内部構成を示す回路図である。
【図8】 この発明の実施の形態1によるスキャンフリップフロップの構成を示す回路図である。
【図9】 RAMの基本的な構成を示す図である。
【図10】 この発明の実施の形態1によるスキャンフリップフロップの構成を示す回路図である。
【図11】 この発明の実施の形態1によるスキャンフリップフロップの構成を示す回路図である。
【図12】 この発明の実施の形態2による冗長記憶回路、ECC回路、テスト回路等を有して構成される記憶システムの構成を示す回路図である。
【図13】 図14と図15との位置関係を示す説明図である。
【図14】 この発明の実施の形態2による冗長記憶回路およびテスト回路の構成を示す回路図である。
【図15】 この発明の実施の形態2による冗長記憶回路およびテスト回路の構成を示す回路図である。
【図16】 図17と図18との位置関係を示す説明図である。
【図17】 この発明の実施の形態2によるテスト回路の内部構成を示す回路図である。
【図18】 この発明の実施の形態2によるテスト回路の内部構成を示す回路図である。
【図19】 この発明の実施の形態2によるスキャンフリップフロップの構成を示す回路図である。
【図20】 この発明の実施の形態2によるスキャンフリップフロップの構成を示す回路図である。
【図21】 この発明の実施の形態2によるスキャンフリップフロップの構成を示す回路図である。
【図22】 この発明の実施の形態3による冗長記憶回路、ECC回路、テスト回路等を有して構成される記憶システムの構成を示す回路図である。
【図23】 この発明の実施の形態4による冗長記憶回路、ECC回路、テスト回路等を有して構成される記憶システムの一部構成を示す回路図である。
【図24】 冗長記憶回路、ECC回路、テスト回路等を有して構成される従来の記憶システムの構成を示す回路図である。
【図25】 図24に示された記憶システム全体のデータ入出力部に対する情報データおよびパリティデータのビット割り当てを示す図である。
【図26】 パリティ生成回路の具体的な回路構成を示す図である。
【図27】 エラー検出回路の具体的な回路構成を示す図である。
【図28】 図29と図30との位置関係を示す説明図である。
【図29】 従来の冗長記憶回路およびテスト回路の構成を示す回路図である。
【図30】 従来の冗長記憶回路およびテスト回路の構成を示す回路図である。
【図31】 図32と図33との位置関係を示す説明図である。
【図32】 従来のテスト回路の内部構成を示す回路図である。
【図33】 従来のテスト回路の内部構成を示す回路図である。
【図34】 従来のスキャンフリップフロップの構成を示す回路図である。
【符号の説明】
1 複合回路、2 パリティ生成回路(パリティ生成手段)、3 エラー検出回路(エラー位置出力手段)、4 デコーダ回路(デコード手段)、5,71〜86,91,114,134 ANDゲート、6,102,135 Dフリップフロップ、7 カウンタ(計数手段)、8〜11 セレクタ(選択手段)、12〜22 EX−ORゲート(エラー訂正手段)、31 RAM(記憶手段)、32 テスト回路(テスト手段)、33〜61 セレクタ(入出力切り換え手段)、62 冗長記憶回路(冗長記憶手段)、87 スキャンパス(テスト結果出力手段)、92,98,101,111,131 インバータ、93〜96,99,112,113,133 ORゲート、97,100 NANDゲート、121 セレクタ(選択手段)、122〜125 EX−ORゲート、132 カウンタ、B データ入力部、データ出力部、CDI,DI,IDO データ入力部、CDO,DO,F データ出力部、CMP0L,CMP1L 比較制御信号、DECEN イネーブル信号、E1〜E4 エラー検出用データ、ECCMODE 制御信号、EDO 訂正データ出力部、FLAG1,FLAG2 フラグ用信号、I データ入力部、INIT1,INIT2 初期化信号、MASK マスク信号、P1〜P4 パリティデータ、REDEN 制御信号、SELI セレクタ制御信号、SFF,SFFE スキャンフリップフロップ、SI シリアルデータ入力部、SIDO シリアル入力データ、SO シリアルデータ出力部、SODO シリアル出力データ、PCTRL 制御信号群、T クロック信号、TMSI,TMFB テストモード信号、X1〜X11 情報データ、XDI冗長データ入力部、XDO,YDO 冗長データ出力部。

Claims (9)

  1. 複数ビットのデータ入力部およびデータ出力部と、少なくとも1ビットの予備データ入力部および予備データ出力部とを有して構成される記憶手段と、
    前記記憶手段の記憶素子に故障が存在しない場合には、前記記憶手段へのデータの入出力を前記複数ビットのデータ入力部およびデータ出力部を使用して実施し、前記記憶手段の記憶素子に故障が存在する場合には、当該故障の存在する記憶素子に係るビット位置のデータ入力部およびデータ出力部を不使用にするとともに、不使用にしたデータ入力部およびデータ出力部と同数の予備データ入力部および予備データ出力部を使用して前記記憶手段へのデータの入出力を実施する入出力切り換え手段と、
    前記記憶手段と前記入出力切り換え手段とから成る冗長記憶手段のデータ出力部、あるいは前記記憶手段のデータ出力部または前記記憶手段のデータ出力部および予備データ出力部からの出力データと期待値とを各ビット毎に比較し、当該比較結果を保持可能であるとともに、任意のビット位置に係る比較動作を不能とすることができるテスト手段と、
    前記テスト手段における各ビット毎の比較結果を逐次的に取り出すことができるテスト結果出力手段と、
    前記テスト結果出力手段により取り出された各ビット毎の比較結果に基づいて故障の存在する記憶素子に係るビット位置を特定する故障位置特定手段とを備えることを特徴とする半導体集積回路装置。
  2. 冗長記憶手段に入力される情報データについて1ビットのエラー検出を可能とするパリティデータを生成し、当該パリティデータを前記冗長記憶手段に出力するパリティ生成手段と、
    情報データと当該情報データに対応するパリティデータとから構成される前記冗長記憶手段よりの出力データを入力して、1ビットのエラーの存在するビット位置を特定するエラー位置特定手段と、
    前記エラー位置特定手段から出力される信号に基づき、エラーの存在するビット位置について前記冗長記憶手段のデータ出力部から出力されるデータを反転させるエラー訂正手段とを備えることを特徴とする請求項1記載の半導体集積回路装置。
  3. 故障位置特定手段が、故障を示すビットデータの検出をトリガとして停止するまで、逐次的に取り出される比較結果のビット数を計数し、当該計数値をバイナリデータとして出力する計数手段と、バイナリデータをデコードするデコード手段とを有して構成され、
    エラー位置特定手段が、冗長記憶手段からの出力データを入力して、エラーの存在するビット位置をバイナリデータとして出力するエラー位置出力手段と、バイナリデータをデコードする前記デコード手段とを有して構成され、
    前記計数手段のデータ出力部に接続されるとともに前記エラー位置出力手段のデータ出力部に接続されて、前記計数手段のデータ出力部か前記エラー位置出力手段のデータ出力部のいずれか一方を選択的に前記デコード手段のデータ入力部に接続する選択手段を備えることを特徴とする請求項2記載の半導体集積回路装置。
  4. 冗長記憶手段のデータ出力部とテスト手段のデータ入力部とを接続可能とするとともに、デコード手段のデータ出力部とテスト手段のデータ入力部とを接続可能として、
    テスト手段にイクスクルーシブ・オア演算を実施する回路素子を組み込むことを特徴とする請求項3記載の半導体集積回路装置。
  5. 情報データについて1ビットのエラー検出を可能とするパリティデータを生成して出力するパリティ生成手段と、
    前記パリティ生成手段からのパリティデータと、冗長記憶手段において当該パリティデータに係るビット位置のデータ出力部から出力されるデータとをそれぞれ対応するビット位置毎に入力する複数のイクスクルーシブ・オアゲートと、
    前記冗長記憶手段に入力される情報データ、または前記冗長記憶手段において情報データに係るビット位置のデータ出力部から出力されるデータのいずれか一方を選択的に前記パリティ生成手段のデータ入力部に入力する選択手段とを備えることを特徴とする請求項1記載の半導体集積回路装置。
  6. テスト結果出力手段により取り出されたワードデータ毎の比較結果のなかにおける故障に係るビットデータ数を少なくとも2以上計数することができる第1の故障数計数手段を備えることを特徴とする請求項1記載の半導体集積回路装置。
  7. テスト結果出力手段により取り出された比較結果における故障に係るビットデータ数を計数することができる第2の故障数計数手段を備えることを特徴とする請求項1記載の半導体集積回路装置。
  8. 複数ビットのデータ入力部およびデータ出力部と、少なくとも1ビットの予備データ入力部および予備データ出力部とを有して構成される記憶手段、
    前記記憶手段のデータ出力部と期待値とを各ビット毎に比較するテスト手段、
    前記テスト手段における各ビット毎の比較結果を逐次的に取り出すことができるテスト結果出力手段、
    前記テスト結果出力手段により取り出された各ビット毎の比較結果に基づいて故障の存在する記憶素子に係るビット位置を特定する故障位置特定手段を備えることを特徴とする半導体集積回路装置。
  9. 前記故障位置特定手段によって特定された故障の存在する記憶素子に係るビット位置をデコードするデコーダ手段をさらに有し、
    前記テスト手段は前記デコーダ手段の出力信号を受けて対応する記憶素子に係るビット位置のデータ入力部およびデータ出力部を不使用にする、請求項8記載の半導体集積回路装置。
JP2000314249A 2000-10-13 2000-10-13 半導体集積回路装置 Expired - Fee Related JP4497695B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000314249A JP4497695B2 (ja) 2000-10-13 2000-10-13 半導体集積回路装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000314249A JP4497695B2 (ja) 2000-10-13 2000-10-13 半導体集積回路装置

Publications (3)

Publication Number Publication Date
JP2002124098A JP2002124098A (ja) 2002-04-26
JP2002124098A5 JP2002124098A5 (ja) 2007-11-01
JP4497695B2 true JP4497695B2 (ja) 2010-07-07

Family

ID=18793541

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000314249A Expired - Fee Related JP4497695B2 (ja) 2000-10-13 2000-10-13 半導体集積回路装置

Country Status (1)

Country Link
JP (1) JP4497695B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6841698B2 (ja) * 2017-03-21 2021-03-10 ルネサスエレクトロニクス株式会社 半導体装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6414797A (en) * 1987-07-08 1989-01-18 Nec Corp Semiconductor integrated memory
JPH05128895A (ja) * 1991-10-31 1993-05-25 Nec Ic Microcomput Syst Ltd 半導体装置
JPH11110307A (ja) * 1997-10-06 1999-04-23 Mitsubishi Electric Corp 半導体集積回路
JPH11265597A (ja) * 1998-01-16 1999-09-28 Mitsubishi Electric Corp 半導体集積回路装置

Also Published As

Publication number Publication date
JP2002124098A (ja) 2002-04-26

Similar Documents

Publication Publication Date Title
TWI269155B (en) Method and checker of checking for errors in an error correction code (ECC) protected mechanism and a computer system including the checker
US5177744A (en) Method and apparatus for error recovery in arrays
US7797609B2 (en) Apparatus and method for merging data blocks with error correction code protection
JPS6229827B2 (ja)
JP3039455B2 (ja) 半導体メモリ装置テスト方法及び半導体メモリ装置
JP2001023394A (ja) Ecc回路搭載半導体記憶装置及びその検査方法
TW200525549A (en) Self-test architecture to implement data column redundancy in a RAM
KR20060111856A (ko) 반도체 기억 장치
JP5421152B2 (ja) 半導体集積回路
JP2019168316A (ja) 半導体集積回路
JP5558269B2 (ja) プログラマブル論理回路のエラー訂正回路
TW201503145A (zh) 在nand陣列中儲存及讀取可靠資訊的方法及裝置
KR20070059952A (ko) 메모리 시험 장치
JP4497695B2 (ja) 半導体集積回路装置
JP2008146793A (ja) 冗長回路及び半導体記憶装置
JP3930446B2 (ja) 半導体装置
US7484147B2 (en) Semiconductor integrated circuit
JP2001043698A (ja) 内蔵メモリアレイの自己検査回路および自己検査方法
JP2003316599A (ja) 集積回路
JPS6227479B2 (ja)
JP5964265B2 (ja) 半導体集積回路装置
Divva et al. Design and Verification of ECC Scheme to optimize area and tester time in OTP ROM Controller
JP3895118B2 (ja) シングルイベントアップセット補償回路
TWI308339B (en) Memory testing equipment
JP4357373B2 (ja) 高信頼性制御装置

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20060123

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070914

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070914

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20071101

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100401

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100406

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100413

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

Free format text: PAYMENT UNTIL: 20130423

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

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

Free format text: PAYMENT UNTIL: 20130423

Year of fee payment: 3

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: 20140423

Year of fee payment: 4

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees