(57)【要約】      （修正有）【課題】  小容量で不良情報の蓄積をすることが可能な不良情報格納部を備えた半導体装置を提供する。【解決手段】  ｍ本の冗長行および１本の冗長列を有する冗長救済において、不良情報を蓄積するエラー記憶テーブルのコラムテーブルに対してｍ＋１行の格納領域を設け、ロウテーブルに対してｍ＋ｎ行の格納領域を設ける。また、コラムマストすなわち常に冗長列と置換するコラムカウントの数をｎ＋１（ｎ＜ｍ）に設定する。ｎ個まで同一のコラムアドレスの不良がある場合において、新たに同一のコラムアドレスに従う不良がある場合には、必ずコラムマストとなり、ロウテーブルにロウアドレスを蓄積する必要は無い。したがって、コラムマストを判定するためにｎ個の格納領域が必要である。また、最低限ｍ本の冗長行を救済する必要があるためロウテーブルは、全体としてｍ＋ｎ行の格納領域だけ用意されれば救済可能かどうかの判別が可能である。【選択図】図９
2006209884.tif 000002
【特許請求の範囲】
【請求項１】
行列状に集積配置された複数のメモリセルを有するとともに、メモリセル行およびメモリセル列を救済するためのｒ本の冗長メモリセル行と１本の冗長メモリセル列をさらに有するメモリセルアレイと、
前記メモリセルアレイの不良情報を格納する不良情報格納部とを備え、
前記不良情報格納部は、
不良箇所のコラムアドレスと、前記コラムアドレス上に存在する不良箇所の数とを格納するコラム側不良情報蓄積テーブルと、
前記不良情報のロウアドレスと、前記不良情報のロウアドレス上に存在する不良箇所の数と、前記コラム側不良情報蓄積テーブル内における格納場所を示す列識別子とを格納するロウ側不良情報蓄積テーブルとを含み、
前記コラム側不良情報蓄積テーブルは、前記不良箇所のコラムアドレスと、前記コラムアドレス上に存在する不良箇所の数とからなる格納項目を（ｒ＋１）行分格納することが可能なテーブル構成を有し、
前記ロウ側不良情報蓄積テーブルは、不良箇所のロウアドレスと、前記ロウアドレス上に存在する不良箇所の存在する数と、コラム識別子とからなる格納項目を（ｒ＋ｎ（ｎ：ｒ＞ｎの整数））行分格納することが可能なテーブル構成を有する、半導体装置。
【請求項２】
前記コラム側不良情報蓄積テーブルは、前記不良箇所のコラムアドレスの格納項目に対して前記コラムアドレスを格納するために最小限必要なビット数を有し、前記不良箇所の数の格納項目に対して前記不良箇所の数の最大値（ｒ＋１）を格納するために最小限必要なビット数を有し、
前記ロウ側不良情報蓄積テーブルは、前記不良箇所のロウアドレスの格納項目に対して前記ロウアドレスを格納するために最小限必要なビット数を有し、前記不良箇所の数の格納項目に対して前記不良箇所の数の最大値に対応して２ビットを有し、前記コラム識別子の格納項目に対して前記コラム識別子の最大値（ｒ＋１）を格納するために最小限必要なビット数を有する、請求項１記載の半導体装置。
【請求項３】
前記メモリセルアレイ内の不良箇所のアドレスを検出する不良アドレス検出部と、
前記検出された不良箇所のアドレスと、前記不良箇所のロウアドレスまたはコラムアドレス上に存在する不良箇所の数とコラム識別子とを含む不良情報を前記不良情報格納部に格納する不良情報処理部とをさらに備える、請求項１記載の半導体装置。
【請求項４】
複数個の前記メモリセルアレイを設け、
複数個の前記メモリセルアレイの各々から出力される不良情報を選択的に切り換えて前記不良アドレス検出部に出力する切換部をさらに備える、請求項３記載の半導体装置。
【請求項５】
前記不良アドレス検出部は、前記メモリセルアレイの読出データをエンコードして不良箇所のアドレスを生成し、
複数個の前記メモリセルアレイを設け、
複数個の前記メモリセルアレイに対応して複数個の不良アドレス検出部が設けられ、
前記複数個の不良アドレス検出部から出力されるアドレスを選択的に切り換えて前記不良情報処理部に出力する切換部をさらに備える、請求項３記載の半導体装置。
【請求項６】
前記不良情報格納部に格納されたメモリセルアレイの不良箇所の不良情報に基づいて前記ｒ本の冗長メモリセル行および１本の冗長メモリセル列によって、救済可能か否かを判定する救済解析部をさらに備える、請求項１記載の半導体装置。
【請求項７】
前記救済解析部は、不良情報格納部に格納されたメモリセルアレイの不良箇所を前記ｒ本の冗長メモリセル行および１本の冗長メモリセル列によって、救済可能か否かを判定する際、救済の際に用いられる冗長メモリセル行および冗長メモリセル列の個数の和である救済コード数を算出し、救済の際に用いられる前記ｒ本の冗長メモリセル行および１本の冗長メモリセル列の全ての組合せに基づき算出される救済コード数のうち最小の救済コード数に対応する組合せで前記メモリセルアレイの不良箇所が救済されるように解析結果を出力する、請求項６記載の半導体装置。
【請求項８】
前記救済解析部は、不良情報格納部に格納されたメモリセルアレイの不良箇所を前記ｒ本の冗長メモリセル行および１本の冗長メモリセル列によって、救済の際に用いられる前記ｒ本の冗長メモリセル行および１本の冗長メモリセル列の全ての組合せに基づき２回救済可能か否かを判定し、１回目に救済コード数の最小のコード数を算出し、２回目に算出された救済コード数の最小のコード数と同じコード数が算出された場合には、最小のコード数と比較して一致していれば出力される、請求項７記載の半導体装置。
【請求項９】
前記メモリセルアレイは、列方向に沿って複数のメモリブロックに分割され、
各前記メモリブロックは、前記複数のメモリブロックで共有する前記ｒ本の冗長メモリセル行と各前記メモリブロック毎に設けられた１本の冗長メモリセル列を有し、
前記不良情報格納部は、各メモリブロック毎に不良情報を格納し、
前記救済解析部は、各メモリブロック毎に前記不良情報格納部に格納された各メモリブロックの不良箇所の不良情報に基づいて前記ｒ本の冗長メモリセル行および１本の冗長メモリセル列によって、救済可能か否かを判定し、一のメモリブロックにおいて割り当てられたｒ本の冗長メモリセル行は、他のメモリブロックにおいて既に割り当てられていると判定する、請求項６記載の半導体装置。
【請求項１０】
行列状に集積配置された複数のメモリセルを有するとともに、メモリセル行およびメモリセル列を救済するためのｒ本の冗長メモリセル行と１本の冗長メモリセル列をさらに有するメモリセルアレイと、不良情報のコラムアドレスおよび前記コラムアドレス上に存在する不良箇所の数を格納するコラム側不良情報蓄積テーブルと不良情報のロウアドレス、不良情報のロウアドレス上に存在する不良箇所の数、および前記コラム側不良情報蓄積テーブル内における格納場所を示す列識別子を格納するロウ側不良情報蓄積テーブルとを含む不良情報格納部とを備え、前記コラム側不良情報蓄積テーブルは、前記不良箇所のコラムアドレスと、前記コラムアドレス上に存在する不良箇所の数とからなる格納項目を（ｒ＋１）行分格納することが可能なテーブル構成を有し、前記ロウ側不良情報蓄積テーブルは、不良箇所のロウアドレスと、前記ロウアドレス上に存在する不良箇所の存在する数と、列識別子とからなる格納項目を（ｒ＋ｎ）（ｎ：ｒ＞ｎの整数）行分格納することが可能なテーブル構成を有する半導体装置の不良情報蓄積方法であって、
前記メモリセルアレイ内の不良箇所の発生を検出する不良アドレス検出ステップと、
前記検出された不良箇所のロウアドレスまたはコラムアドレスと等しい不良箇所の行またはコラムアドレスが前記不良情報格納部に既に格納されているかを判定する不良情報判定ステップと、
判定の結果、前記不良情報格納部に既に前記検出された不良箇所のロウアドレスまたはコラムアドレスに一致する不良情報が存在しない場合には、前記ロウ側または前記コラム側不良情報蓄積テーブルの空行に前記検出された不良箇所の不良情報を新規に格納する不良情報新規登録ステップと、
判定の結果、前記不良情報格納手段に前記検出された不良箇所のロウアドレスまたはコラムアドレスに一致するロウアドレスが存在する場合には、前記ロウ側不良情報蓄積テーブルの前記一致するロウアドレスが格納されている行に、または前記コラム側不良情報蓄積テーブルの前記一致するコラムアドレスが格納されている行に格納されている不良情報を更新する不良情報更新ステップとを備え、
同一のコラムアドレス上に存在する不良箇所の数がｎ個以上であると不良情報判定ステップによって判定された場合には、
前記不良情報更新ステップまたは前記不良情報新規登録ステップは、
新たに前記同一のコラムアドレス上に不良箇所が発生した場合には、前記不良情報格納部に既に前記検出された不良箇所のロウアドレスに一致する不良情報が存在しない場合においても前記ロウ側不良情報蓄積テーブルの空行に前記検出された不良箇所の不良情報を新規に格納する新規登録処理を行なわず、前記発生した不良箇所について前記コラム側不良情報蓄積テーブルの前記一致するコラムアドレスが格納されている不良情報を更新する、半導体装置の不良情報蓄積方法。
【請求項１１】
同一のコラムアドレス上に存在する不良箇所の数がｎ＋１個以上であると不良情報判定ステップによって判定された場合には、
前記不良情報更新ステップまたは前記不良情報新規登録ステップは、
新たに前記同一のコラムアドレス上に不良箇所が発生した場合には、前記不良情報格納部に新規登録処理または更新処理は行なわない、請求項１０記載の半導体装置の不良情報蓄積方法。
【請求項１２】
前記不良アドレス検出ステップにおいて、前記メモリセルアレイ内の同一ロウアドレスに不良箇所の発生として同時に２個以上の不良を検出した場合には、
前記不良情報新規登録ステップまたは前記不良情報更新ステップは、
前記不良情報格納部の前記コラム側不良情報蓄積テーブルに既に前記検出された不良箇所のコラムアドレスに一致する不良情報が存在しない場合においても前記コラム側不良情報蓄積テーブルの空行に前記検出された不良箇所の不良情報を新規に格納する新規登録処理は行なわない、請求項１０記載の半導体装置の不良情報蓄積方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不良ビット救済のために冗長回路を内蔵した半導体装置のテストにおいてその冗長回路で不良ビットを救済可能か否かについて判定する救済解析に必要な不良情報の発生、蓄積のための不良情報格納部を備えた半導体装置および半導体装置の不良情報蓄積方法に関するものである。
【背景技術】
【０００２】
大部分の半導体記憶装置は、予備のメモリセルを備えており、メモリセルの一部に不良のメモリセルがある場合、その不良部分を予備のメモリセルと置換し、不良チップの救済を行なうことが可能となっている。
【０００３】
一般的には半導体メモリセルの他に歩留まりを上げるために行と列の２種類の予備メモリセルからなる冗長回路が設けられている。そして半導体メモリセル内に生じた不良ビットは冗長回路と電気的に置換されることで救済される。
【０００４】
一般的に半導体装置のテストは、半導体メモリセルの期待値データと実際に読出したデータとを比較し、その結果が不一致であれば不良ビットとしてその半導体メモリセルについての不良情報を蓄積する。そして、この不良情報をもとに不良ビット救済のための予備で設けられている冗長回路を用いた救済解析を行なって救済判定、すなわちすべての不良ビットを冗長回路で置換可能な否かの判定を行なっている。このように、半導体メモリセル上の不良ビットを冗長回路で救済できるか否かを判定する救済解析を行なうためには、半導体メモリセルのテスト中に発生するアドレス等の不良情報を、何らかの方法で一時的に蓄積する必要がある。
【０００５】
従来、不良情報の蓄積に際しては、被試験半導体メモリセルと冗長回路を併せた容量と同一またはそれ以上の容量を有する蓄積用メモリを用いていた。しかし昨今のメモリ容量の増大に伴って不良情報を格納する蓄積用メモリすなわち不良情報格納手段も増大し、それによるハードウェアコストの増大や救済解析時間の増大などの面で大きな問題となってきている。このような問題を解決するために、小容量で不良情報の蓄積が可能なさまざまな不良情報蓄積方法が模索されてきた。
【０００６】
従来、不良情報を蓄積する際の圧縮情報としては、一般的に同一のアドレス線上に発生した不良ビットの数が、冗長線本数を超えない範囲で不良ビットデータを最大限取り得るサイズとなるように構成されている。
【０００７】
たとえば特開２００３−３４６４９６号公報においては、ｒ本の冗長行とｃ本の冗長列とを有する半導体装置の不良情報を格納する不良情報格納手段において、不良箇所のコラムアドレスとこのコラムアドレス上に存在する不良箇所の数とを格納するコラム側の不良情報蓄積テーブルと、もう一方の不良箇所のロウアドレスとこのロウアドレス上に存在する不良箇所の数とを格納するロウ側の不良情報蓄積テーブルとを備えた方式が示されている。
【０００８】
より具体的には、コラムアドレスに対応して（ｒ×ｃ＋ｃ）行分格納することが可能なコラム側不良情報蓄積テーブルと、ロウアドレスに対応して（ｒ×ｃ＋ｒ）行分格納することが可能なロウ側不良情報蓄積テーブルとを備えた構成である。当該テーブルを設けて不良情報が存在した場合に情報を格納および更新することにより、不良情報のアドレスを圧縮しながら蓄積するとともに、不良情報を格納するメモリの格納領域を小容量とする方式を開示している。
【０００９】
そして、この蓄積された不良情報に基づいて不良箇所の半導体メモリセルを救済するための救済解を算出する方式としては、特開２００３−３３１５９７号公報においては、総当りで救済解を導くＣＲＥＳＴＡ方式の救済解析アルゴリズムを適用することにより、救済効率１００％の救済解析を実現できる方式が示されている。
【特許文献１】特開２００３−３４６４９６号公報
【特許文献２】特開２００３−３３１５９７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
一方、不良状態としては、行あるいは列ラインが不良となっている場合すなわちライン不良の場合とシングルビット不良の場合とに大別すると分けることができる。
【００１１】
したがって、効率よく冗長救済を実行するためには、ライン不良とシングルビット不良とを正しく判別する必要がある。つまり列ライン不良があれば必ず冗長列で置換する必要があるが同一列上にシングルビット不良が数個存在する場合には、行ラインあるいは列ラインのいずれで救済するべきか他の不良発生状況に依存して判別する必要がある。
【００１２】
ランダムな不良が支配的な場合、同一列上に複数個の不良が重なる確率は極めて低い。逆に考えると同一コラムアドレス上にある一定数以上の不良があるのは、列ライン不良のときが支配的である場合と考えることができる。すなわちある一定数以上の同一コラムアドレス上に不良があれば、列ライン不良と考えることができる。
【００１３】
ここで、列ライン不良の確率について考える。たとえば１０２４行１２８列のアレイ構成について考える。
【００１４】
たとえば８個の冗長行が存在する場合シングルビット不良が同一コラムアドレスにたとえば９個以上存在する場合には、冗長行では救済することができないため冗長列で救済する必要がある等を考慮しなければならない。
【００１５】
しかしながら、シングルビット不良によって同一コラムアドレス上に複数の不良が発生する確率は非常に小さくなる。８個のランダムなシングルビット不良が発生した場合の概算値は次のようになる。ここでは同一行にシングルビット不良が発生しない場合を仮定して計算した確率の概算値である。８個が同一コラムアドレス上に発生する確率の概算値は次式となる。
【００１６】
【数１】
2006209884.tif 000003
つまり、ランダムなシングルビット不良によって８個の不良が同一コラムアドレス上に発生する確率は無視できる程度であるため、８個以上の不良が同一コラムアドレス上に発生している場合、ほとんどの場合は列ライン不良によるものと考えることができる。
【００１７】
次式は５個が同一のコラムアドレス上に発生する確率の概算値である。
【００１８】
【数２】
2006209884.tif 000004
この場合には、ランダムなシングルビット不良によって同一コラムアドレス上に５個の不良が存在する確率は、０．００００２％という計算になり、ランダムなシングルビット不良によって同一コラムアドレス上の不良カウント数を、たとえば５個までに達するような確率は極めて小さいと考えることができる。つまり、同一コラムアドレス上に５個以上の不良が存在する場合にはほとんどの場合は列ライン不良が原因であると考えられる。同一アドレス上の不良カウント数をたとえば５個カウントした場合に列ライン不良であると判断した場合、それが誤判断である確率が０．００００２％となる（ランダムシングルビット不良発生数が５個の場合）。
【００１９】
次式は、４個が同一コラムアドレス上に発生する確率の概算値である。
【００２０】
【数３】
2006209884.tif 000005
さらに次式は、３個が同一コラムアドレス上に発生する確率の概算値である。
【００２１】
【数４】
2006209884.tif 000006
そして、次式は２個が同一コラムアドレス上に発生する確率の概算値である。
【００２２】
【数５】
2006209884.tif 000007
たとえば、不良で０．０１％オーダまでしか考慮しないと仮定すると、４個以上の不良が同一コラムアドレス上に発生する確率は無視できる程度の確率である。よって同一コラムアドレス上の不良数のカウント値を４個までとし、４個に達すれば列ライン不良と判断して冗長列を割当てた場合でも、救済効率の損失を無視することができる。
【００２３】
実際に救済効率の損失が生じるのは、同一コラムアドレス上に不良数カウント値上限の不良が発生して、かつ、列ライン不良が発生する場合であり、このようなケースに対する救済効率の損失は極めて小さいものと仮定することができる。
【００２４】
従来の特開２００３−３４６４９６号公報の方式では、不良アドレスの圧縮時に特にロウ側およびコラム側不良蓄積テーブルを形成する際に、完全に列ライン不良であると判断するまで情報を格納する方式であったため欠落しても無視できる程度の情報でも欠落させずに保持していた。
【００２５】
本発明は、上記のような問題を解決するためになされたものであって、小容量で不良情報の蓄積をすることが可能な不良情報格納部を備えた半導体装置および半導体装置の不良情報蓄積方法を提供することを目的とする。
【課題を解決するための手段】
【００２６】
本発明に係る半導体装置は、行列状に集積配置された複数のメモリセルを有するとともに、メモリセル行およびメモリセル列を救済するためのｒ本の冗長メモリセル行と１本の冗長メモリセル列をさらに有するメモリセルアレイと、メモリセルアレイの不良情報を格納する不良情報格納部とを備える。不良情報格納部は、不良箇所のコラムアドレスと、コラムアドレス上に存在する不良箇所の数とを格納するコラム側不良情報蓄積テーブルと、不良情報のロウアドレスと、不良情報のロウアドレス上に存在する不良箇所の数と、コラム側不良情報蓄積テーブル内における格納場所を示す列識別子とを格納するロウ側不良情報蓄積テーブルとを含み、コラム側不良情報蓄積テーブルは、不良箇所のコラムアドレスと、コラムアドレス上に存在する不良箇所の数とからなる格納項目を（ｒ＋１）行分格納することが可能なテーブル構成を有し、ロウ側不良情報蓄積テーブルは、不良箇所のロウアドレスと、ロウアドレス上に存在する不良箇所の存在する数と、コラム識別子とからなる格納項目を（ｒ＋ｎ（ｎ：ｒ＞ｎの整数））行分格納することが可能なテーブル構成を有する。
【００２７】
本発明に係る半導体装置の不良情報蓄積方法は、行列状に集積配置された複数のメモリセルを有するとともに、メモリセル行およびメモリセル列を救済するためのｒ本の冗長メモリセル行と１本の冗長メモリセル列をさらに有するメモリセルアレイと、不良情報のコラムアドレスおよびコラムアドレス上に存在する不良箇所の数を格納するコラム側不良情報蓄積テーブルと不良情報のロウアドレス、不良情報のロウアドレス上に存在する不良箇所の数、およびコラム側不良情報蓄積テーブル内における格納場所を示す列識別子を格納するロウ側不良情報蓄積テーブルとを含む不良情報格納部とを備え、コラム側不良情報蓄積テーブルは、不良箇所のコラムアドレスと、コラムアドレス上に存在する不良箇所の数とからなる格納項目を（ｒ＋１）行分格納することが可能なテーブル構成を有し、ロウ側不良情報蓄積テーブルは、不良箇所のロウアドレスと、ロウアドレス上に存在する不良箇所の存在する数と、列識別子とからなる格納項目を（ｒ＋ｎ）（ｎ：ｒ＞ｎの整数）行分格納することが可能なテーブル構成を有する半導体装置の不良情報蓄積方法であって、メモリセルアレイ内の不良箇所の発生を検出する不良アドレス検出ステップと、検出された不良箇所のロウアドレスまたはコラムアドレスと等しい不良箇所の行またはコラムアドレスが不良情報格納部に既に格納されているかを判定する不良情報判定ステップと、判定の結果、不良情報格納部に既に検出された不良箇所のロウアドレスまたはコラムアドレスに一致する不良情報が存在しない場合には、ロウ側またはコラム側不良情報蓄積テーブルの空行に検出された不良箇所の不良情報を新規に格納する不良情報新規登録ステップと、判定の結果、不良情報格納手段に検出された不良箇所のロウアドレスまたはコラムアドレスに一致するロウアドレスが存在する場合には、ロウ側不良情報蓄積テーブルの一致するロウアドレスが格納されている行に、またはコラム側不良情報蓄積テーブルの一致するコラムアドレスが格納されている行に格納されている不良情報を更新する不良情報更新ステップとを備える。同一のコラムアドレス上に存在する不良箇所の数がｎ個以上であると不良情報判定ステップによって判定された場合には、不良情報更新ステップまたは不良情報新規登録ステップは、新たに同一のコラムアドレス上に不良箇所が発生した場合には、不良情報格納部に既に検出された不良箇所のロウアドレスに一致する不良情報が存在しない場合においてもロウ側不良情報蓄積テーブルの空行に検出された不良箇所の不良情報を新規に格納する新規登録処理を行なわず、発生した不良箇所についてコラム側不良情報蓄積テーブルの一致するコラムアドレスが格納されている不良情報を更新する。
【発明の効果】
【００２８】
本発明に係る半導体装置は、（ｒ＋１）行分格納することが可能なコラム側不良情報蓄積テーブルと、（ｒ＋ｎ）行分格納することが可能なロウ側不良情報蓄積テーブルとを設ける。したがって、半導体装置の救済解析に必要な不良情報を最低限必要な容量に抑えることができるため、メモリ容量を削減することができるという効果がある。
【００２９】
また、本発明に係る半導体装置の不良情報蓄積方法は、同一のコラムアドレス上に存在する不良箇所の数がｎ個以上であると不良情報判定ステップによって判定された場合には、不良情報更新ステップまたは不良情報新規登録ステップは、新たに同一のコラムアドレス上に不良箇所が発生した場合には、不良情報格納部に既に検出された不良箇所のロウアドレスに一致する不良情報が存在しない場合においてもロウ側不良情報蓄積テーブルの空行に検出された不良箇所の不良情報を新規に格納する新規登録処理を行なわず、発生した不良箇所についてコラム側不良情報蓄積テーブルの一致するコラムアドレスが格納されている不良情報を更新するため不必要な不良情報蓄積動作を行なわないので不良情報格納部に格納される不良情報のサイズを必要最低限なものとすることができる。また、不良情報の蓄積を行なうアルゴリズムを簡素化することもできるという効果がある。
【発明を実施するための最良の形態】
【００３０】
以下、この発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付し、その説明は繰返さない。
【００３１】
（実施の形態１）
図１は、本発明の実施の形態に従う半導体装置１のレイアウト概略図である。
【００３２】
図１を参照して、本発明の実施の形態１に従う半導体装置１は、周辺領域に配置された入力／出力インターフェイス領域２と、その内側に設けられた複数のメモリモジュールＭＪ１〜ＭＪ３と、その他の周辺領域である論理部領域３とを備える。
【００３３】
入力／出力インターフェイス領域２は、周辺領域に配置されたデータの入出力に用いられる複数のパッドＰＤを有し、図示しないが入力保護回路あるいはレベルシフタ等がこの領域に含まれている。論理部領域３は、冗長解析等のテスト処理を実行するための制御信号等を生成して出力するテストモード制御回路５と、テストモード制御回路５の制御により種々のテストモードに従うデータパターンを生成してメモリモジュールＭＪ１〜ＭＪ３に対して出力するパターン発生回路１０およびＢＩＳＡ（Built In Self Analysis）回路１５とを含む。また、メモリモジュールＭＪ１〜ＭＪ３にそれぞれ対応して設けられるモジュール入出力ユニット６〜８をさらに含む。
【００３４】
図１に示される構成においては、メモリモジュールＭＪ１〜ＭＪ３はそれぞれ隣接して配置されており、配線長を短くすべく入力／出力インターフェイス領域２に近接した位置に設けられている。
【００３５】
図２は、メモリモジュールＭＪ１〜ＭＪ３と、冗長解析を実行する論理部領域３の関係を説明する図である。
【００３６】
図２を参照して、本例においては、パターン発生回路（以下、単にＡＰＧとも称する）１０と、メモリモジュールＭＪ１〜ＭＪ３にそれぞれ対応して設けられる入力セレクタＩＳＥＬ１〜ＩＳＥＬ３と、各メモリモジュールＭＪ１〜ＭＪ３から出力された読出信号（リードデータ）を制御信号ＣＴに基づいて選択するセレクタＳＥＬと、セレクタＳＥＬの選択結果に従いメモリモジュールＭＪからのリードデータを判定するリードデータ判定回路２０と、判定結果に基づいて不良情報を記憶するエラー記憶回路２５と、エラー記憶回路に記憶された不良情報に基づいて冗長解析を実行するための救済解析回路３０とを含む。
【００３７】
救済解析回路３０は、エラー記憶回路２５から受けた不良情報を解析して、救済コードを出力する。救済コードは、外部装置あるいは冗長置換回路に出力されて、それに基づいた所定の冗長置換が対応するメモリモジュールに対して実行される。なお、各モジュール入出力ユニット６〜８は、入力セレクタＩＳＥＬ１〜ＩＳＥＬ３を含む。また、ＢＩＳＡ回路は、セレクタＳＥＬ、リードデータ判定回路２０、エラー記憶回路２５および救済解析回路３０を含むものとする。
【００３８】
入力セレクタＩＳＥＬ１〜ＩＳＥＬ３は、通常のデータである入力データＩＮとは別にＡＰＧ１０から出力されるテストデータＴＩＮの入力を受けて、通常時あるいはテスト時においてその入力を切換えてメモリモジュールＭＪ１〜ＭＪ３に対して出力する。メモリモジュールＭＪ１〜ＭＪ３は、通常時あるいはテスト時に選択されたアドレスに従うデータを出力し、テスト時においてはその冗長解析を実行する。
【００３９】
本例においてはメモリモジュールＭＪ１〜ＭＪ３のそれぞれが、リードデータＤＴＡ１〜ＤＴＡ３を出力する場合が一例として示されている。
【００４０】
本例においては、たとえば一例として各メモリモジュールＭＪは１２８本の入出力線ＩＯを有しており、１２８ビットのリードデータが出力されるものとする。
【００４１】
図３は、メモリモジュールに含まれる行列状に集積配置された複数のメモリセルを有するメモリアレイＡＲＹの一部を説明する図である。
【００４２】
ここで、メモリアレイＡＲＹは、メモリセル行にそれぞれ対応して設けられた複数のワード線ＷＬと、メモリセル列にそれぞれ対応して設けられた複数のビット線ＢＬとを含む。また、ワード線ＷＬおよびビット線ＢＬの交差点にはメモリセルＭＣが設けられており、対応するワード線ＷＬの活性化に応答してゲートトランジスタがオンし、キャパシタＣｐに蓄積されている電荷量に従うデータ読出あるいは蓄積に伴うデータ書込が実行される。
【００４３】
本例においては、１つのメモリセルと、それに対応するワード線ＷＬおよびビット線ＢＬが代表的に示されている。なお、ビット線ＢＬは選択ゲートＳＧを介して入出力線ＩＯと電気的に結合されている。なお、本例においては、一本のビット線ＢＬに対応して一本の入出力線ＩＯが示されているが、複数本のビット線ＢＬ毎に一本の入出力線ＩＯが設けられ、選択ゲートＳＧのビット線選択により入出力線ＩＯと電気的に結合する構成とすることも可能である。たとえば、一例として８列のビット線ＢＬに対応して一本の入出力線ＩＯを設けた構成とすることもできる。したがって、この場合には、ビット線の本数は、８×１２８（＝１０２４本）を設けた構成とすることも可能である。なお、本願構成は、複数行１列の冗長置換を実行する方式について説明する。具体的には、複数のメモリセル行の冗長置換が可能であり、１列すなわち一本の入出力線ＩＯに対応する８本のビット線が冗長置換されるものとする。なお、冗長置換のビット線の本数はこれに限られず、設計により自由な本数で冗長置換可能である。また、ＤＲＡＭメモリセルについて説明したがこれに限られず他のメモリセルを有するメモリアレイにおいても同様に適用可能である。
【００４４】
図４は、本発明の実施の形態１に従うエラー記憶回路２５の概略ブロック図である。
【００４５】
図４を参照して、本発明の実施の形態１に従うエラー記憶回路２５は、ＩＯアドレスエンコーダ３５と、不良判定部４０とを含む。
【００４６】
不良判定部４０は、前処理用比較回路４５と、エラー記憶アルゴリズム回路５０と、エラー記憶テーブル５５とを含む。なお、エラー記憶回路２５は、テストモード制御回路５により生成される制御信号es_runに応じて冗長解析のための動作を実行する。また、制御信号zrstは、リセット信号であり入力に応答して初期状態に設定される。制御信号clkは、クロック信号であり、図示しないクロック信号生成回路から出力されたクロック信号に同期して本願構成の冗長解析動作が実行されるものとする。また、救済解析回路３０に対してもテストモード制御回路５により生成される制御信号ra_runが入力されており、入力に応答して冗長解析のための動作を実行する。制御信号zrstおよび制御信号clkについては、上述したのと同様の動作処理を実行するために入力されている。
【００４７】
Ｉ／Ｏアドレスエンコーダ３５は、リードデータ判定回路２０によりメモリモジュールＭＪから読み出されたリードデータの良／不良を示す判定信号を受けて、エンコードして不良である入出力線ＩＯのコラムアドレスを生成する。本例においてはたとえば１２８本の入出力線のリードデータを受けて不良である入出力線ＩＯのアドレスである７ビットのコラムアドレスを生成する。そして、前処理比較回路４５に出力される。なお、複数の入出力線ＩＯが不良である場合には、不良であることを示す別のデータを生成する。たとえば、不良であることを示すさらに別の１ビットの信号をエラー記憶アルゴリズム回路５０に出力することができる。
【００４８】
前処理用比較回路４５は、ＩＯアドレスエンコーダ３５から入力される７ビットのコラムアドレスおよびアドレスＡＤＤに含まれるロウアドレスの入力を受けて、後述するエラー記憶テーブルに格納されているロウテーブルから一致するロウアドレスを検索し、一致したロウアドレスを選択して出力する。また、後述するエラー記憶テーブルに格納されているコラムテーブルから一致するコラムアドレスを検索し、一致したコラムアドレスを選択して出力する。また、既に検出済みの不良アドレスか否かも判定し、判定結果を出力する。
【００４９】
たとえば、前処理用比較回路は、２ビットの識別子をアドレスとともにエラー記憶アルゴリズム回路５０に出力する。具体的には、たとえば２ビットの識別子として「００」であれば、ロウアドレスおよびコラムアドレスは一致とし、「０１」であればロウアドレスが一致、コラムアドレスは不一致とし、「１０」であればコラムアドレスが一致、ロウアドレスは不一致、「１１」であればコラムアドレスおよびロウアドレスが共に不一致であるとすることができる。なお、既に検出済みの不良アドレスである場合には、識別子を生成しないようにして後述するエラー記憶テーブルに重複書込することを防止することができる。
【００５０】
エラー記憶アルゴリズム回路５０は、識別子とともに入力されるアドレスに従って後述する所定のアルゴリズムに従った処理を実行して、エラー記憶テーブル５５にそのルールに従った不良情報を格納する。
【００５１】
エラー記憶テーブル５５は、エラー記憶アルゴリズム回路５０により所定のアルゴリズムに従って不良情報を格納し、最終的にテーブル内に記憶された情報を救済解析回路３０に出力する。
【００５２】
救済解析回路３０は、エラー記憶テーブル５５から出力される不良情報に基づいて図示しない冗長回路による冗長置換を実行するための救済コードを出力する。
【００５３】
図５は、本発明の実施の形態１に従うエラー記憶テーブル５５の構成を示す図である。
【００５４】
エラー記憶テーブル５５は、ロウ側の不良情報を蓄積するロウ側不良情報蓄積テーブル（以下、単にロウテーブルとも称する）と、コラム側の不良情報を蓄積するコラム側不良情報蓄積テーブル（以下、単にコラムテーブルとも称する）とを備えている。図５（ａ）および図５（ｂ）は、ロウテーブルおよびコラムテーブルをそれぞれ表している。
【００５５】
これら２つのテーブルは関連付けされている。ロウ側の不良情報を蓄積するロウテーブルは、「ロウカウント」、「ロウアドレス」および「コラムＩＤ」のフィールドから構成されている。また、コラム側の不良上を蓄積するコラムテーブルは、「コラムカウント」および「コラムアドレス」のフィールドから構成されている。なお、この発明において不良情報とは、不良ビットのロウアドレスおよびコラムアドレスと、これらのロウアドレスおよびコラムアドレス上に存在する不良ビットの数を含む情報のことをいう。
【００５６】
ここで「ロウアドレス」および「コラムアドレス」のフィールドには、不良ビットの存在するロウアドレスおよびコラムアドレスが格納され、ロウ側の不良情報を蓄積するロウテーブルの場合には不良ビットのロウアドレスが格納され、コラム側の不良情報を蓄積するコラムテーブル６５には不良ビットのコラムアドレスが格納される。
【００５７】
「ロウカウントフィールド」には、「ロウアドレス」フィールドに格納されているロウアドレスと同一のロウアドレスを有するすべての不良ビットの数が格納される。なお、本願構成においては、不良ビットの数として「２」まで数えるため２ビットの領域が用意されている。
【００５８】
また、「コラムカウント」フィールドも、同様に同一のコラムアドレスを有するすべての不良ビットの数が格納される。後述するが「ｍ＋１」まで数える必要があるのでその数字に対応したビット数分の領域が用意されている。「コラムＩＤ」フィールドにはロウ側の不良情報を蓄積するロウテーブルの「ロウアドレス」フィールドに格納されている不良ビットのコラムアドレスが、コラム側の不良情報の蓄積するコラムテーブルのどこに格納されているのかを示す識別子であり、コラムテーブルに定義されたＩＤ番号（識別番号）が格納される。したがって、コラムＩＤの数に対応したビット数分の領域が用意されている。
【００５９】
この図５に示される場合においては、エラー記憶テーブル５５においてデータ領域の最初の行を「０行目」、次の行を「１行目」、その次の行を「２行目」、…と定め、コラム側の不良情報を蓄積するコラムテーブルにおけるこの何行目かを表わす数字が「コラムＩＤ」に対応している。そして、この「コラムＩＤ」によってロウ側の不良情報を蓄積するロウテーブルが、コラム側の不良情報を蓄積するコラムテーブルと関連付けされている。
【００６０】
なお、ここで示されているロウテーブルのロウカウントは２ビットで構成されており、ロウアドレスは一例として６ビットで示されており、コラムＩＤは４ビットの領域がそれぞれ示されている。またコラムテーブルにおいては、コラムカウントとして４ビットの領域が示されており、コラムアドレスとして５ビットの領域がそれぞれ示されている。これら、ロウアドレスおよびコラムアドレスは、メモリのサイズにより規定されるものであり、上記のビット数に限定されるものではない。
【００６１】
本実施の形態に従うエラー記憶テーブル５５は、ｍ本の冗長行と、１本の冗長列が設けられる場合、ｍ＋ｎ行の格納領域を有するロウテーブルと、ｍ＋１行の格納領域を有するコラムテーブルを設ける。なお、ｎ＋１は、後述するコラムマスト具体的には常に冗長列と置換する状態に設定する数である。したがって、ｎは、コラムマストに設定する数よりも１小さい数である。ｍ本の冗長行がある場合、コラムテーブルには、ｍ＋１行の格納領域すなわち冗長行および冗長列を足した数分だけ用意されれば救済可能かどうかの判別が可能である。
【００６２】
従来の方式では、コラムマストすなわち常に冗長列と置換する状態に設定する数としてとしてｍ＋１を設定していた。すなわち、冗長行をすべて使っても救済できないような場合に常に冗長列を用いる状態であると判断していた。したがって、従来のロウテーブルは、２ｍ行の格納領域を有していた。しかしながら、上述したように所定個以上の同一コラムアドレスの不良がある場合には、列ライン不良である可能性が高く、コラムマストとしても誤判断の可能性が低いことが判っている。
【００６３】
したがって、コラムマストとして冗長列と置換する状態に設定する数をｎ＋１（ｎ＜ｍ）に設定する。この点で、ｎ個まで同一のコラムアドレスの不良がある場合において、新たに同一のコラムアドレスに従う不良がある場合には、必ずコラムマストとなることがわかる。すなわち、新たに同一のコラムアドレスに従う不良がある場合には不良情報としてロウテーブルにロウアドレスを蓄積する必要は無く、コラムテーブルの対応するコラムカウントをコラムマストの値に更新すれば、それを検出してコラムマストであることを判別することが可能である。すなわち、ｎ個の同一のコラムアドレスに従う不良ビットが存在する場合に、それ以上の同一のコラムアドレスに従う不良ビットが発生した場合であってもロウアドレスについて不良情報を蓄積しないためエラー記憶テーブルに格納する不良情報を必要最小限のものとすることができる。すなわちロウテーブルにはｎ行の格納領域が必要となる。また、最低限、ｍ本の冗長行を救済する必要があるためロウテーブルは、全体としてｍ＋ｎ行の格納領域だけ用意されれば救済可能かどうかの判別が可能である。
【００６４】
したがって、従来の構成においては、ロウテーブルの個数が２ｍ行の格納領域が設けられていたが、本願構成においては、ｍ＋ｎ行（ｍ＞ｎ）の格納領域が設けられるため不良ビットの不良情報を救済解析に必要な最低限の量に抑えることにより不良情報の格納に必要なメモリまたはレジスタの大きさを抑えることができる。
【００６５】
図６は、本発明の実施の形態に従う不良情報の蓄積のためのロウテーブルおよびコラムテーブルに蓄積するための動作処理手順について説明する図である。
【００６６】
図６（ａ）を参照して、まず単一の入出力線ＩＯで不良（Fail）が発生した場合（Single IO エラー）と、複数の入出力線で不良が発生した場合（Multiple IO エラー）とに分けられる。また縦側の条件がロウアドレス側の条件となっており、横側の条件がコラムアドレス側の条件となっている。そして、条件としては大別して縦側すなわちロウアドレス側に３つの条件が示されており、横側すなわちコラムアドレス側に３つの条件が示されている。
【００６７】
具体的には、縦側の条件として、最初の段の条件はロウアドレスに一致せずにテーブルに空きがある場合が示されている。また次段においてはロウアドレスが一致する場合で、ロウカウントが１の場合とロウカウントが２の場合とに分けられる。そして、最後の段においてロウアドレスに一致せずにテーブルに空きがない場合が示されている。なお、ここでいうテーブルの空きについては、ロウテーブルの空きのことを示唆している。
【００６８】
また、横側の条件としては、最初の列の条件は、コラムアドレスに一致せずテーブルに空きがある場合が示されている。そして、次列においては、コラムアドレスに一致する場合であってコラムカウントが１〜ｎ−１の範囲（１≦Colcount≦（ｎ−１））にある場合と、コラムカウントがｎの場合（Colcount＝ｎ）、そしてコラムカウントがｎ＋１の場合（Colcount＝ｎ＋１）がそれぞれ示されている。そして最後の列に、コラムアドレスに一致せずテーブルに空きがない場合が示されている。なお、ここでいうテーブルの空きについては、コラムテーブルの空きのことを示唆している。
【００６９】
複数の入出力線ＩＯ（単に複数ＩＯとも標記される）で不良（Fail）が発生した場合についても同様に、最初の段において、ロウアドレスに一致せずテーブルに空きがある場合が示されている。そして、次段においてはロウアドレスに一致する場合でロウカウントが１の場合とロウカウントが２の場合とに分けられる。そして、最後の段においてロウアドレスに一致せずにテーブルに空きがない場合が示されている。なお、ここでいうテーブルの空きについては、ロウテーブルの空きのことを示唆している。なお、この場合において横側の条件は無関係である。
【００７０】
図６（ｂ）は、この各条件で処理する内容を説明する図である。
【００７１】
具体的には、ロウアップデート１〜３、ロウカウントアップ、コラムカウントアップ、前置保持およびＮＧセットについて説明されている。ロウアップデート１は、ロウテーブルにおいて空いているＩＤ番号の行（空きのＩＤとも称する）に対応してロウカウント、ロウアドレス、コラムＩＤ（新規ＩＤ）を設定する。なお、新規ＩＤは、コラムアップデートにより設定されるコラムのＩＤ番号を示す。ロウアップデート２は、ロウテーブルにおいて空いているＩＤ番号の行に対応してロウカウント、ロウアドレス、コラムＩＤ（一致ＩＤ）を設定する。なお、一致ＩＤは、一致したコラムのＩＤ番号を示す。ロウアップデート３は、ロウテーブルにおいて空いているＩＤ番号の行に対応してロウカウントを２に設定し、ロウアドレス、コラムＩＤ（存在しないＩＤ）を設定する。なお、存在しないＩＤは、たとえば用いられていないＩＤ番号を示す値をいう。ロウカウントアップは、対象となるＩＤのロウカウントに１を加算する。コラムカウントアップは、対象となるＩＤのコラムカウントに１を加算する。前置保持は、既に設定された状態を保持する。すなわち、特にテーブルの状態を変更しない。ＮＧセットは、救済不可であると判定された場合であり、ＮＧフラグがセットされる（ＮＧセットとも称される）。なお、ＮＧフラグがセットされた場合には、救済不可であるため救済解析動作は終了する。コラムアップデートは、コラムテーブルにおいて空いているＩＤ番号の行に対応してコラムカウント、コラムアドレスを設定する。
【００７２】
この動作処理手順の基本的な考え方について説明する。
【００７３】
基本的なルールについて、不良ビットのロウアドレスについてロウテーブル内に蓄積されているロウアドレスと不一致の場合、ロウテーブルに「不良情報の新規登録」を行なう。すなわちロウテーブルの空行にロウカウント、ロウアドレス、コラムＩＤを入力する。
【００７４】
ロウテーブル内に蓄積されているロウアドレスと一致の場合、同じロウアドレスについての不良情報が格納されている行でロウカウントに「１」を加算し、コラムＩＤを入力する。
【００７５】
不良ビットのコラムアドレスについてコラムテーブル内に蓄積されているコラムアドレスと不一致の場合、コラムテーブルに「不良情報の新規登録」を行なう。すなわちコラムテーブルの空行にコラムカウント、コラムアドレスを入力する。
【００７６】
コラムテーブル内に蓄積されているコラムアドレスと一致の場合、コラムテーブルに「不良情報の更新」を行なう。すなわち、不良ビットのコラムアドレスと同じコラムアドレスについての不良情報が格納されているロウのコラムカウントに１を加算する。
【００７７】
この基本的な考え方に加えて上述の図６に示されるルールが適用される。
【００７８】
以下、具体的にそのルールについて説明する。
【００７９】
「Ｃ」の段（ケースＣ−１，Ｃ−２，Ｃ−３，Ｃ−４，Ｃ−５）について
「Ｃ」の段は、ロウカウント＝２の時となっている。すなわち、同一のロウアドレスに２個以上の不良ビットが存在するため既にロウマスト（常に冗長行と置換の状態）となっている。したがって、さらに同一のロウアドレスについて新たに不良ビットが検出された場合には、既にロウマストであるため新たにロウテーブルに不良情報の新規登録あるいは不良情報の更新を行なう必要はないため前値保持とされている。また、コラムテーブルについても新たに不良情報の新規登録あるいは不良情報の更新を行なう必要はないため前値保持とされている。
【００８０】
「４」の列（ケースＡ−４，Ｂ−４，Ｃ−４，Ｄ−４）について
「４」の列は、コラムカウント（Colcount＝ｎ＋１）となっている。すなわち、コラムカウントがｎ＋１となっているため既にコラムマスト（常に冗長列と置換の状態）となっている。したがって、さらに同一のコラムアドレスについて新たに不良ビットが検出された場合には、既にコラムマストであるため新たにコラムテーブルの不良情報の新規登録あるいは不良情報の更新を行なう必要はないため前値保持とされている。また、ロウテーブルついても新たに不良情報の新規登録あるいは不良情報の更新を行なう必要はないため前値保持とされている。
【００８１】
「Ｂ」の段（ケースＢ−１，Ｂ−２，Ｂ−３，Ｂ−４，Ｂ−５）について
「Ｂ」の段は、ロウカウント＝１の時となっている。すなわち、既に同一のロウアドレスについてロウテーブルに不良情報の新規登録が行なわれている状態である。この場合に、同一のロウアドレスについて新たに不良ビットが検出された場合には、ロウテーブルに既に存在する同一のロウアドレスのロウカウント数をカウントアップしてロウカウント＝２とする。この場合は、ロウマストであり、コラムテーブルに不良情報の新規登録あるいは不良情報の更新を行なう必要はないため前値保持とされている。なお、ケースＢ−４において、ロウカウントがカウントアップされないが、これは既に上述した「４」の列であり、既にコラムマスト（常に冗長列と置換）であるためロウテーブルの不良情報の更新を行なう必要はないため前値保持とされている。
【００８２】
「３」の列（ケースＡ−３，Ｂ−３，Ｃ−３，Ｄ−３）について
ケースＡ−３については、同一のコラムアドレスに属するｎ個分のロウアドレスが既にロウテーブルに割当てられている状態である。この場合に、さらにロウアドレスが一致しない場合で同一のコラムアドレスについて新たに不良ビットが検出された場合には、基本的なルールに従えばロウテーブルに新たに検出された不良ビットの不良情報を新規登録する。しかしながら、上述したようにこの場合においては既にコラムテーブルに存在するコラムカウント（Colcount＝ｎ）をコラムマストの数すなわち、ｎ＋１にカウントアップすればコラムマストであると判別することができるため、ロウテーブルに不良情報の新規登録は行なう必要はないため前値保持とされている。
【００８３】
ケースＢ−３，Ｃ−３については、同一のコラムアドレスに属するｎ個分のロウアドレスが既にロウテーブルに割当てられている状態である。この場合、さらにロウアドレスが一致するとともに同一のコラムアドレスについて新たに不良ビットが検出された場合には、基本的なルールに従えばケースＡ−３と同様、既にコラムテーブルに存在するコラムカウント（Colcount＝ｎ）をコラムマストの数すなわち、ｎ＋１にカウントアップすればコラムマストであると判別することができるため、コラムテーブルについて同一のコラムアドレスに存在するコラムカウントをカウントアップすることも考えられるが、この場合には、ロウマストともなる状態であり、コラムマストとして冗長列を用いて救済を図るよりも本数の多い冗長行を用いて救済を図る方が救済効率が高い。この点については、例を挙げて後述する。したがって、この条件の場合には、コラムテーブルについては、不良情報の更新を行なわないとして前値保持としている。
【００８４】
ケースＤ−３については、同一のコラムアドレスに属するｎ個分のロウアドレスが既にロウテーブルに割当てられている状態である。この場合に、さらにロウアドレスが一致しない場合で同一のコラムアドレスについて新たに不良ビットが検出された場合には、基本的なルールに従えばロウテーブルに新たに検出された不良ビットの不良情報を新規登録する。しかしながら、上述したようにこの場合においては既にコラムテーブルに存在するコラムカウント（Colcount＝ｎ）をコラムマストの数すなわち、ｎ＋１にカウントアップすればコラムマストであると判別することができるため、ロウテーブルに不良情報の新規登録は行なう必要はないため前値保持とされている。すなわちケースＡ−３と同様であり、ロウテーブルに空行が無くても救済可能であるためＮＧセットとはならない。
【００８５】
「Ｄ」の段（ケースＤ−１，Ｄ−２，Ｄ−３，Ｄ−４，Ｄ−５）について
「Ｄ」の段は、新たに不良ビットが検出された場合に、ロウアドレスに一致せずにロウテーブルに空行がない状態である。この場合、ロウテーブルに不良情報の新規登録を行なうことができない状態である。すなわち、救済不可能な状態となっている。したがって、ケースＤ−１，Ｄ−２，Ｄ−５については、ロウテーブルおよびコラムテーブルともに不良情報の新規登録または不良情報の更新は行なう必要はなく前値保持とされるとともに、ＮＧセットとされる。一方、ケースＤ−３，Ｄ−４については、上述したようにコラムマストとして救済可能な状態であるためＮＧセットとはされない。
【００８６】
「５」の列（ケースＡ−５，Ｂ−５，Ｃ−５，Ｄ−５）について
「５」の列は、新たに不良ビットが検出された場合に、コラムアドレスに一致せずにコラムテーブルに空行がない状態である。この場合、コラムテーブルに不良情報の新規登録を行なうことができない状態である。すなわち、冗長列が２本以上必要な場合であり、救済不可能な状態となっている。したがって、ケースＡ−５，Ｄ−５については、ロウテーブルおよびコラムテーブルともに不良情報の新規登録または不良情報の更新は行なう必要はなく前値保持とされるとともに、ＮＧセットとされる。一方、ケースＢ−５，Ｃ−５については、上述したようにロウマストとして救済可能な状態であるためＮＧセットとはされない。
【００８７】
「Ａ」の段（ケースＡ−１，Ａ−２，Ａ−３，Ａ−４，Ａ−５）について
ケースＡ−１は、新たに不良ビットが検出された場合にロウアドレスおよびコラムアドレスがともに一致しない場合である。この場合には、ロウテーブルおよびコラムテーブルともに不良情報の新規登録を行なう。一方、ケースＡ−５は、空行がない場合であり、この場合は、救済不可となるためＮＧセットとなる。
【００８８】
ケースＡ−２は、同一のコラムアドレスに属するｎ−１個以下のコラムアドレスが既にコラムテーブルに存在する場合であり、ロウアドレスは一致せずにコラムアドレスが一致する新たな不良ビットが検出された場合である。この場合は、ロウテーブルについては、不良情報の新規登録を行ない、コラムテーブルについては、既に存在するｎ−１個以下のコラムカウントをカウントアップして不良情報の更新を行なう。ケースＡ−３，Ａ−４，Ａ−５については、上述したのでその説明は省略する。
【００８９】
なお、このルールに従えばコラムカウントをカウントアップし、ロウテーブルについて不良情報の新規登録を実行するが、後にロウテーブルに格納されているロウアドレスについてロウマストとなった場合であってもコラムテーブルのコラムカウントを訂正する必要はない。後述する救済解析においては、ロウテーブルを探索することにより救済解析が行なわれる。この点で、コラムテーブルのコラムカウント数は、コラムマストであるコラムが適正に置換されているか否かの確認として用いられるからである。
【００９０】
このようなルールを設けることにより、冗長行の本数を越える数の同一のコラムアドレスを有する不良ビットが発生した場合であっても、あるいは冗長列の本数を越える数の同一のロウアドレスについて不良ビットが発生した場合であっても、本ルールを適用することにより不必要な不良情報を蓄積しないのでロウテーブルおよびコラムテーブルに格納する不良情報を必要最小限のものにすることができる。本実施の形態に従う不良情報蓄積方法に従えば不良ビットの不良情報を救済解析に必要な最低限の量に抑えることによって、不良情報の格納に必要な容量あるいはレジスタの大きさを抑えることができる。また、不必要な不良情報を蓄積しないのでエラー記憶アルゴリズムを簡易にするとともに、その回路を実現する上でも回路構成が単純化されるため回路規模も縮小されることとなる。
【００９１】
図７は、図６に従うルールのもとに本発明の実施の形態に従うエラー記憶アルゴリズム回路５０の動作を説明するフローチャート図である。
【００９２】
処理が開始される（スタート）（ステップＳＰ０）。そして、不良ビットの検出が行なわれたかどうかが判定される（ステップＳＰ１）。ステップＳＰ１において検出が行なわれなかった場合にはステップＳＰ１に待機する。
【００９３】
一方、ステップＳＰ１において不良ビットが検出された場合には、次に、不良ビットが２個以上か否かが判定される（ステップＳＰ３）。ステップＳＰ３において、不良ビットが２個以上ある場合には、ステップＳＰ６に進む。なお、エラー記憶アルゴリズム回路５０は、上述したようにたとえば一例としてＩＯアドレスエンコーダ３５により生成された複数の入出力線ＩＯが不良である場合に不良であることを示す１ビットの信号に基づいて判定することが可能である。
【００９４】
ステップＳＰ３において不良ビットが１個の場合には、ステップＳＰ４に進み、不良ビットのアドレスを取得する。具体的には、上述した例においてはＩＯアドレスエンコーダ３５により生成された不良である入出力線ＩＯのコラムアドレスおよびロウアドレスを取得する。そして、不良ビットのコラムまたはロウアドレスと同じコラムまたはロウアドレスを有するデータが、エラー記憶テーブル５５に存在するかどうかが判定される（ステップＳＰ５）。なお、ここで説明する、ロウアドレスおよびコラムアドレスの一致、不一致の判定は、具体的には、上述したように前処理用比較回路４５から出力された２ビットの識別子に基づいて判定することが可能である。
【００９５】
ステップＳＰ５において、不良ビットのコラムまたはロウアドレスと同じコラムまたはロウアドレスを有するデータが、エラー記憶テーブル５５に存在しない場合には、エラー記憶テーブル５５に空行があるかが判定される（ステップＳＰ７）。ステップＳＰ７において、空行があると判定される場合には、エラー記憶テーブル５５の空行に不良ビットの不良情報を新規に格納する（ステップＳＰ８）。そして、ステップＳＰ１に戻る。ステップＳＰ７において空行がないと判定される場合には、ステップＳＰ２３に進みＮＧセットとなる。
【００９６】
一方、ステップＳＰ５において、不良ビットのコラムまたはロウアドレスと同じコラムまたはロウアドレスを有するデータが、エラー記憶テーブル５５に存在する場合には、次にロウアドレスが一致するかどうかが判定される（ステップＳＰ９）。ステップＳＰ９において、ロウアドレスが一致する場合には、次にロウカウントが２か否かが判定される。ロウカウントが２の場合には、ロウマストであるため前値保持（ステップＳＰ１１）し、ステップＳＰ１に戻る。ステップＳＰ１０において、ロウカウントが１の場合には、コラムアドレスが一致したかが判定される（ステップＳＰ１２）。ステップＳＰ１２において、コラムアドレスが一致しない場合には、ステップＳＰ１４に進み、ロウテーブルの同じロウアドレスの行の「ロウカウント」に「１」を加算する。
【００９７】
一方、ステップＳＰ１２において、コラムアドレスが一致する場合には、コラムカウントがｎ＋１かが判定される（ステップＳＰ１３）。コラムカウントがｎ＋１の場合には、前値保持（ステップＳＰ１５）し、ステップＳＰ１に戻る。ステップＳＰ１３において、コラムアドレスがｎ＋１でない場合には、ステップＳＰ１４に進む。
【００９８】
ステップＳＰ９において、ロウアドレスが一致しない場合には、コラムカウントがｎ＋１かが判定される（ステップＳＰ１６）。ステップＳＰ１６において、コラムカウントがｎ＋１の場合には、前値保持し（ステップＳＰ１７）、ステップＳＰ１に戻る。一方、ステップＳＰ１６において、コラムカウントがｎ＋１でない場合には、コラムカウントがｎかどうかが判定される（ステップＳＰ１８）。コラムカウントがｎでない場合には、ロウテーブルに空行があるかどうかが判定される（ステップＳＰ２０）。ステップＳＰ２０において、ロウテーブルに空行がない場合には、ＮＧセットとなる（ステップＳＰ２３）。  
【００９９】
ステップＳＰ２０において、ロウテーブルに空行がある場合には、コラムテーブルの同じコラムアドレスの行の「コラムカウント」に「１」を加算する（ステップＳＰ２１）。そして、ロウテーブルの空行に不良ビットの不良情報を格納する（ステップＳＰ２２）。そして、再びステップＳＰ１に戻る。
【０１００】
一方、コラムカウントがｎの場合には、コラムテーブルの同じコラムアドレスの行の「コラムカウント」に「１」を加算する（ステップＳＰ１９）に進む。
【０１０１】
図８は、不良ビットが２個以上ある場合における不良情報蓄積方法を説明するフローチャート図である。
【０１０２】
図８を参照して、ステップＳＰ３において、不良ビットが２個以上ある場合には、ステップＳＰ６に進む。次にロウアドレスに一致するかどうかが判定される（ステップＳＰ３０）。一致する場合には、ロウカウントが２か否かが判定される（ステップＳＰ３１）。ロウカウントが２の場合には、前値保持し（ステップＳＰ３２）、ステップＳＰ１に戻る。ステップＳＰ３１において、ロウカウントが１の場合には、ロウテーブルの同じロウアドレスの行のロウカウントに「１」を加算し（ステップＳＰ３３）、ステップＳＰ１に戻る。
【０１０３】
一方、ステップＳＰ３０において、ロウアドレスに一致しない場合には、ロウテーブルに空行があるか判断される（ステップＳＰ３４）。ステップＳＰ３４において、ロウテーブルに空行がある場合には、空行に不良ビットの不良情報を新規に格納してステップＳＰ１に戻る。一方、ステップＳＰ３４において、ロウテーブルに空行がない場合には、ステップＳＰ３６に進み、ＮＧセットとされる（ステップＳＰ３６）。
【０１０４】
図９は、冗長行が８本と冗長列が１本の場合のエラー記憶テーブルの構成を示す図である。ここでは、コラムマストすなわちｎ＋１＝５に設定している。すなわち、ｎ＝４である。したがって、コラムテーブルには、９段の格納領域が設けられ、ロウテーブルには、１２段の格納領域が設けられている。
【０１０５】
図９を参照して、ここで示されているロウテーブルのロウカウントは２ビットで構成されており、ロウアドレスは一例として６ビットで示されており、コラムＩＤは４ビットの領域がそれぞれ示されている。またコラムテーブルにおいては、コラムカウントとして４ビットの領域が示されており、コラムアドレスとして６ビットの領域がそれぞれ示されている。
【０１０６】
図１０は、ｎ＝４における本発明の実施の形態に従う不良情報の蓄積のためのロウテーブルおよびコラムテーブルに蓄積するための動作処理手順について説明する図である。
【０１０７】
上述の図６について、ｎ＝４に設定した場合が示されている。
【０１０８】
図１１〜図１５を用いて本発明の実施の形態１に従う不良記憶アルゴリズムを説明する。
【０１０９】
本例においては、説明の簡易のため冗長行が４本と冗長列が１本の場合について具体的に説明する。
【０１１０】
図１１は、上記で説明した不良記憶アルゴリズムを用いて、不良ビット「１」〜「２」までの不良情報が蓄積されたエラー記憶テーブルを説明する図である。
【０１１１】
図１１において、ｘ１〜ｘ９はロウアドレスを、ｙ１〜ｙ６はコラムアドレスを示しており、マトリックス上に付されている数字は、この数字が付されているアドレスの順に不良ビットが発生することを示している。また、ロウテーブルは８行構成であり、コラムテーブルは５行構成である。なお、ここでは、たとえば一例としてｎ＝４に設定している。したがって、コラマストは、ｎ＋１＝５となる。
【０１１２】
図１１（ａ）を参照して、１番目において（ｘ１，ｙ１）に不良が発生したことが示されている。エラー記憶アルゴリズム回路５０は、取得した不良ビット「１」のロウまたはコラムアドレスと同じロウまたはコラムアドレスを有するデータが、エラー記憶テーブル５５に存在するか否かを判断する（図７のステップＳＰ５）。この場合にはエラー記憶テーブル５５が空の状態であるので、すなわち不良ビット「１」のアドレスと等しいロウまたはコラムアドレスと一致する既に格納済みの不良ビットはエラー記憶テーブル５５には存在しないので、エラー記憶テーブル５５の空行に不良情報の新規登録を行なう（ステップＳＰ８）。具体的には、図１１（ａ）に示されるように、エラー記憶アルゴリズム回路５０はロウテーブルにはロウカウント（ｃｎｔ）＝１、ロウアドレス（ａｄｄ）＝ｘ１、コラムＩＤ＝０を空行すなわち０行目に格納し、コラムテーブルにはコラムカウント（ｃｎｔ）＝１、コラムアドレス（ａｄｄ）＝ｙ１を空行すなわち０行目に格納する。ここで、ロウテーブルのコラムＩＤに格納されている０は、コラムテーブルの０行目に不良ビット「１」のコラム側不良情報（コラムアドレス）が格納されていることを意味している。ただし、コラムテーブルは、上述したように最初の行を０行目として行数を数えるものとする。この場合は、図６に示されるケースＡ−１である。その後再びステップＳＰ１に戻り、エラー記憶アルゴリズム回路５０によってさらに不良ビットの発生が検出されるまで待機する。
【０１１３】
図１１（ｂ）においては、２番目において（ｘ２，ｙ２）に不良ビット「２」が発生したことが検出されたことを示している。
【０１１４】
この場合も図１１（ａ）で示したように、同一のロウアドレスおよび同一のコラムアドレスにおいて不良が発生していない場合すなわちケースＡ−１であるので新規に登録が行なわれる。
【０１１５】
図１２は、上記で説明した不良記憶アルゴリズムを用いて、不良ビット「３」〜「４」までの不良情報が蓄積されたエラー記憶テーブルを説明する図である。
【０１１６】
図１２（ａ）は、３番目に（ｘ３，ｙ２）に不良ビット「３」が発生したことが検出されたことを示している。この場合においては、コラムアドレスが２番目のコラムアドレスと同じアドレスであることがわかる。したがって、図７のフローチャートに従えば、ステップＳＰ５→ＳＰ９→ＳＰ１６→ＳＰ１８→ＳＰ２０→ＳＰ２１と進み、コラムテーブル内のコラムアドレスが一致した要素はカウントアップされ２に変更される（ステップＳＰ２１）。また、ロウテーブル内においては、新規登録され、空行に不良ビットのロウ側の不良情報が格納される（ステップＳＰ２２）。この場合は、図６に示されるケースＡ−２である。
【０１１７】
図１２（ｂ）は、４番目に（ｘ１，ｙ３）に不良ビット「４」が発生したことが検出されたことを示している。この場合においては、ロウテーブル内の０番目のロウアドレスと同じアドレスであることがわかる。したがって、図７のフローチャートに従えば、ステップＳＰ５→ＳＰ９→ＳＰ１０→ＳＰ１２→ＳＰ１４と進み、ロウテーブルの同じロウアドレスの行のロウカウントに１を加算する。すなわち、０番目の要素のカウント数をカウントアップする。コラムテーブルについては何も動作しない。この場合は、図６に示されるケースＢ−１である。
【０１１８】
図１３は、上記で説明した不良記憶アルゴリズムを用いて、不良ビット「５」〜「８」までの不良情報が蓄積されたエラー記憶テーブルを説明する図である。
【０１１９】
図１３（ａ）は、５番目に（ｘ４，ｙ３）に不良ビット「５」が発生したことが検知されたことを示している。この場合においては、（ｘ４，ｙ３）と同じアドレスはエラー記憶テーブル５５に格納されていないため図７のフローチャートに従えば上述した図１１と同様のステップを進み、ロウテーブルに新たにロウアドレスとして新規に登録がされ、またコラムテーブルにも新規に登録されることになる。この場合は、ケースＡ−１である。
【０１２０】
図１３（ｂ）は、６番目〜８番目について３回にわたって同じコラムアドレスに対して不良が検出された場合を示している。具体的には、（ｘ５，ｙ３）、（ｘ６，ｙ３）、（ｘ７，ｙ３）において不良ビット「６」，「７」，「８」が発生している場合が示されている。
【０１２１】
この場合においては、図７のフローチャートに従えば、ステップＳＰ５→ＳＰ９→ＳＰ１６→ＳＰ１８→ＳＰ２０→ＳＰ２１と進み、図１２（ａ）で説明したのと同様にロウテーブルに登録がされるとともにコラムテーブル内のコラムアドレスが一致した要素をカウントアップする。この場合は、ケースＡ−２である。
【０１２２】
図１４は、上記で説明した不良記憶アルゴリズムを用いて、不良ビット「９」〜「１０」までの不良情報が蓄積されたエラー記憶テーブルを説明する図である。
【０１２３】
図１４（ａ）は、９番目に（ｘ３，ｙ３）に不良ビット「９」が発生したことが検知されたことを示している。この場合に、図７のフローチャートに従えばステップＳＰ５→ＳＰ９→ＳＰ１０→ＳＰ１２→ＳＰ１３→ＳＰ１４に進み、ロウテーブル内の同じロウアドレスの行のロウカウントに「１」を加算すなわちカウントアップする。なお、コラムテーブルについては、何ら変更しない。この場合は、ケースＢ−１である。
【０１２４】
図１４（ｂ）は、１０番目に（ｘ８，ｙ３）に不良ビット「１０」が発生したことが検知されたことを示している。この場合に、図７のフローチャートに従えば、ステップＳＰ５→ＳＰ９→ＳＰ１６→ＳＰ１８→ＳＰ１９に進み、コラムテーブルの同じコラムアドレスの行の「コラムカウント」に「１」を加算（カウントアップ）する。ロウテーブルについては何ら変更しない。この場合は、ケースＡ−３である。
【０１２５】
図１５は、上記で説明した不良記憶アルゴリズムを用いて、不良ビット「１１」の不良情報が蓄積されたエラー記憶テーブルを説明する図である。
【０１２６】
図１５は、１１番目に（ｘ８，ｙ２）に不良ビット「１１」が発生したことが検知されたことを示している。この場合に、図７のフローチャートに従えば、ステップＳＰ５→ＳＰ９→ＳＰ１６→ＳＰ１８→ＳＰ２０→ＳＰ２１に進み、図１２（ａ）で説明したのと同様にロウテーブルに登録がされるとともにコラムテーブル内のコラムアドレスが一致した要素をカウントアップする。この場合は、ケースＡ−２である。
【０１２７】
上記で説明したように、メモリセルで発生した不良ビットとエラー記憶テーブル５５に蓄積されている不良ビットとの行およびコラムアドレスをそれぞれ比較し図７のフローチャートに従い上記例の如く処理が行なわれる。
【０１２８】
本実施の形態に従う不良情報蓄積方法によれば不良ビットの発生箇所とともに、ロウおよびコラムの両者の不良カウント数を包含する不良情報をよりコンパクトに格納することができるため簡易な解析手法を実行することができる。
【０１２９】
なお、ケースＢ−３，Ｃ−３ではコラムカウントアップはしない理由について以下に具体的に説明する。
【０１３０】
ここでは、ケースＢ−３を一例として説明する。
【０１３１】
冗長行が４本、冗長列が１本の冗長構成に対して同一のコラムアドレス上に３個の不良がある場合にコラムマストにするケースで説明する。
【０１３２】
図１６は、ケースＢ−３でコラムカウントアップする場合を説明する図である。
【０１３３】
図１６（ａ）は不良ビット「１」〜「３」の順に不良が検出された場合を説明する図である。図１６（ａ）に示されるように、上述した方式に従ってロウテーブルおよびコラムテーブルが形成される。
【０１３４】
次に、図１６（ｂ）において４番目に不良ビット「“４”」が検出された場合を説明する図である。
【０１３５】
具体的には（ｘ１，ｙ２）に不良アドレスが検出された場合が示されている。この場合においてはエラー記憶アルゴリズムではＢ−３に該当する。
【０１３６】
このとき、基本的なルールで考えるならば同一コラムに不良が３個あることになり、コラムマストとする。
【０１３７】
そして、たとえば図１６（ｃ）に示されるように、５番目〜１０番目に不良ビット「５」〜「１０」まで不良が検出されたとする。具体的には（ｘ４，ｙ３）〜（ｘ９，ｙ３）にまですべて同一コラムアドレス上に不良ビットが検出された場合が示されている。
【０１３８】
この場合においては、上記の方式に従えばコラムテーブルに示されるようにコラムマストが２つできてしまう。したがって、救済解析の段階で救済不可と判定される。
【０１３９】
これに対して、本発明の実施の形態に従う不良蓄積方法では、ケースＢ−３でコラムカウントアップしない。
【０１４０】
図１７は、ケースＢ−３でコラムカウントアップしない場合を説明する図である。
【０１４１】
図１７（ａ）は、図１６（ａ）で説明したのと同様の不良ビット「１」〜「３」の順に不良が検出された場合が示されている。
【０１４２】
そして、図１７（ｂ）において、４番目に不良ビット「“４”」が検出したときは、上記の図７のフローチャート図に従えばステップＳＰ１５→ＳＰ９→ＳＰ１０→ＳＰ１２→ＳＰ１４に進み、ロウテーブルの同じロウアドレスの行のロウカウントに「１」を加算するすなわちカウントアップし、ｘ１の行はロウマストとなる。
【０１４３】
すなわち、不良ビット“４”の不良は冗長行で救済することが定まるため、コラムテーブルではケアする必要はない。
【０１４４】
したがって、図１７（ｃ）に示されるように、５番目〜１０番目に不良ビット「５」〜「１０」まで不良が検出された場合においても、コラムマストは１つであり、不良ビット「５」〜「１０」においては冗長列によって救済されるように救済可能な判定とすることができる。
【０１４５】
次に、後述する冗長解析アルゴリズムのフロー中において、コラムテーブルを探索する意味について説明する。
【０１４６】
エラー記憶テーブルは、不良アドレス情報を圧縮して蓄積するため、ロウテーブルのみを探索した場合はコラムマスト不良を判別することができない。
【０１４７】
たとえば冗長行が４本、冗長列が１本の冗長構成の場合、同一コラム上に４個の不良もしくは同一コラム上に５個以上の不良（コラムマスト）いずれの場合でもロウテーブルの要素数は４個であり、ロウテーブルの要素数のみからでは、コラムマストを判定することができない。
【０１４８】
図１８〜図２０を用いてコラムテーブルを探索する意味について説明する。
【０１４９】
図１８は、不良ビット「１」〜「４」までの不良情報が蓄積されたエラー記憶テーブルを説明する図である。
【０１５０】
具体的には、図１８（ａ）は、（ｘ１，ｙ２）に不良ビット「１」が発生していることが検知されていることを示されている。この場合は、ケースＡ−１である。
【０１５１】
図１８（ｂ）は、同一のコラムアドレス上に不良ビット「２」〜「４」が発生していることが検知されていることを示している。この場合は、ケースＡ−２である。
【０１５２】
図１９は、不良ビット「５」〜「６」までの不良情報が蓄積されたエラー記憶テーブルを説明する図である。
【０１５３】
図１９（ａ）は、さらに同一のコラムアドレス上に不良ビット「５」が発生していることが検知されていることを示している。この場合は、ケースＡ−３である。この場合、ロウテーブルは何ら変更はなく、コラムテーブルのコラムアドレスが一致したコラムカウントを加算してカウントアップするのみである。したがって、図１８（ｂ）の場合と、図１９（ａ）の場合とでは、ロウテーブルのみでは状態の変化を識別できない。
【０１５４】
図１９（ｂ）は、不良ビット「６」が発生することが検知されていることを示している。この場合は、ケースＡ−１である。
【０１５５】
図２０は、不良ビット「７」〜「１０」までの不良情報が蓄積されたエラー記憶テーブルを説明する図である。
【０１５６】
図２０（ａ）は、同一のコラムアドレス上に不良ビット「７」〜「９」が発生していることが検知されていることを示している。この場合は、ケースＡ−２（３回）である。
【０１５７】
そして、図２０（ｂ）において、不良ビット「１０」が発生していることが検知されていることを示している。この場合には、上述したケースＡ−３の場合であり、ロウテーブルは何ら変更せず、コラムテーブルのコラムカウントをカウントアップする。図２０（ｂ）に示されているようにコラムマストが２つ存在することがわかる。
【０１５８】
ロウテーブルのみの探索を行なった場合、ｘ１〜ｘ４のロウアドレスを有する不良ビットについては、たとえば冗長行で救済し、ｘ５〜ｘ８のロウアドレスを有する不良ビットについては、たとえば冗長列で救済可能であるとも判定可能である。
【０１５９】
したがって、実際には、コラムマストが２個存在していて、コラム不良である場合を判定するためには、コラムテーブルを探索し、コラムテーブルの解析により救済不可の判定が可能となる。また、コラムテーブルにおいて、すべての不良アドレスが正しく置換されていることを確認するためには、コラムマスト不良が発生しているコラムアドレスに対して冗長列が割当てられていることを確認する必要がある。
【０１６０】
以下においては、上記において説明したエラー記憶テーブルに格納されている不良情報に基づいて救済コードを出力するための救済解析アルゴリズムについて説明する。
【０１６１】
図２１は、救済解析アルゴリズムで冗長判定に用いられるＣＲＥＳＴＡテーブルを説明する図である。なお、ここでは、冗長構成として、冗長行（スペアロウ）が４行、冗長列（スペアコラム）が１列用意されている場合のテーブルが示されている（４ロウ／１コラムの場合）。
【０１６２】
縦の条件としてｃｒｅ＿ＩＤが示されている。また、横の条件としてｃｒｅ＿ｎｏが示されている。ｃｒｅ＿ＩＤ＝０のときはＲＲＲＲＣの順にｃｒｅ＿ｎｏがインクリメントされて冗長ラインが割当てられる。ｃｒｅ＿ＩＤ＝１の場合にはＲＲＲＣＲの順にｃｒｅ＿ｎｏがインクリメントされて冗長ラインが割当てられる。ｃｒｅ＿ＩＤ＝２の場合にはＲＲＣＲＲの順にｃｒｅ＿ｎｏがインクリメントされて冗長ラインが割当てられる。ｃｒｅ＿ＩＤ＝３の場合にはＲＣＲＲＲの順にｃｒｅ＿ｎｏがインクリメントされて冗長ラインが割当てられる。ｃｒｅ＿ＩＤ＝４の場合にはＣＲＲＲＲの順にｃｒｅ＿ｎｏがインクリメントされて冗長ラインが割当てられる。
【０１６３】
図２２は、本発明の実施の形態に従う救済解析アルゴリズムのフローチャート図である。
【０１６４】
まず救済解析アルゴリズムが開始される（スタート）（ステップＳ０）。次にｃｒｅ＿ＩＤ＝０にセットする（ステップＳ１）。次に置換コードレジスタをリセットする（ステップＳ２）。図示しないが置換コードレジスタは、ＣＲＥＳＴＡテーブルのＲＲ・・・等の情報が格納されているレジスタである。
【０１６５】
次にｃｒｅ＿ｎｏ＝０にセットする（ステップＳ３）。そして上述した方式に従って不良情報が格納されているエラー記憶テーブルを解析する（以下、単にＥＳテーブル解析とも称する）（ステップＳ４）。ＥＳテーブル解析については後述する。そして、それが終了後現在のｃｒｅ＿ＩＤで救済が可能であるかどうかを判定する（ステップＳ５）。救済が可能であると判定した場合には救済解析を完了する（ステップＳ６）。
【０１６６】
一方、ステップＳ５において現在のｃｒｅ＿ＩＤで救済が可能ではないと判断した場合には次にステップＳ７に進み、ｃｒｅ＿ＩＤがラストの数であるかどうかを判定する。
【０１６７】
ステップＳ７においてラストである場合にはステップＳ９に進み救済不可であるとして救済解析を完了する。
【０１６８】
一方ステップＳ７においてｃｒｅ＿ＩＤがラストでない場合にはステップＳ８に進み、ｃｒｅ＿ＩＤをインクリメントして再びステップＳ２に戻る。このループ動作を繰り返すことにより、救済解析が可能か不可かを判定し置換コードに対応した冗長解析を実行するように動作する。
【０１６９】
図２３は、ＥＳテーブル解析を説明する図である。
【０１７０】
ＥＳテーブル解析が開始される（スタート）（ステップＳ１０）。次に、ロウＩＤ＝０にセットする（ステップＳ１１）。次に、ロウチェック（ロウＩＤ）を実行する（ステップＳ１２）。ロウチェックについては後述する。
【０１７１】
ロウチェックが終了した後に、ＮＧ判定を行ない、ＮＧである場合には現在のｃｒｅ＿ＩＤで救済不可（ステップＳ２１）であるとして処理を終了する（ステップＳ２３）。
【０１７２】
一方、ＮＧではない場合には次のステップＳ１４に進み、ロウＩＤがラストかどうかを判定する（ステップＳ１４）。ラストでない場合には、ステップＳ１５に進み、ロウＩＤをインクリメントして再びロウチェック（ロウＩＤ）を実行する（ステップＳ１２に再び戻る）。このループ動作処理を繰り返す。
【０１７３】
一方、ステップＳ１４においてロウＩＤがラストの場合には次のステップに進み、コラムＩＤを０にセットする（ステップＳ１６）。
【０１７４】
そしてコラムチェック（コラムＩＤ）を実行する（ステップＳ１７）。コラムチェックについては後述する。コラムチェックにおいてもロウチェックと同様にコラムＩＤがラストとなるまでインクリメントしながらループ動作処理を繰り返す。
【０１７５】
具体的には、ステップＳ１８においてＮＧかどうか判定され、ＮＧでない場合にはステップＳ１９に進む。ステップＳ１８においてＮＧである場合には現在のｃｒｅ＿ＩＤで救済不可であると判定して終了する（ステップＳ２１，Ｓ２３）。そして、ＮＧでない場合には、次のステップＳ１９においてコラムＩＤがラストであるかどうかが判定され、ラストである場合には現在のｃｒｅ＿ＩＤで救済可能である（ステップｓ２２）と判定して、終了する（ステップＳ２３）。一方、ステップＳ１９においてコラムＩＤがラストでない場合には、ステップＳ２０に進んでコラムＩＤをインクリメントしてステップＳ１７に再び戻る。
【０１７６】
図２４は、たとえば図２１で説明したエラー記憶テーブルについてＥＳテーブル解析を実行する場合を説明するフローチャート図である。
【０１７７】
図２１においては、ロウＩＤは０〜７が示されており、コラムＩＤは０〜４が示されている。図２４に示されるようにＥＳテーブル解析が開始される（スタート）（ステップＳ３０）。そして、ロウチェック（ロウＩＤ＝０）が開始される（ステップＳ３１）。ステップＳ３１後にステップＳ３２においてＮＧ判定が行なわれ、以降ロウＩＤ＝１〜６についても同様にロウチェックが行なわれる。そして、最後のロウチェック（ロウＩＤ＝７）が開始され（ステップＳ３３）、ＮＧ判定（ステップＳ３４）後、コラムチェック（コラムＩＤ＝０）が開始される（ステップＳ３５）。コラムチェックについてもロウチェックと同様の方式に従って処理され、最後のコラムチェック（コラムＩＤ＝４）が開始され（ステップＳ３７）、ＮＧ判定（ステップＳ３８）が実行される。ステップＳ３８において、ＮＧの場合には、現在のｃｒｅ＿ＩＤで救済不可であると判定して終了する（ステップＳ４０，Ｓ４１）。そして、ＮＧでない場合には、現在のｃｒｅ＿ＩＤで救済可能である（ステップＳ３９）と判定して、終了する（ステップＳ４１）。
【０１７８】
次に、ロウチェック（ロウＩＤ）について説明する。
【０１７９】
図２５は、ロウチェック（ロウＩＤ）のフローチャート図である。
【０１８０】
図２５を参照して、ロウカウントが０より大きいかどうかが判定される（ステップＳ５１）。ロウカウントが０より大きくない場合には、ステップＳ７１に進み処理を終了する。ステップＳ５１において、ロウカウントが０より大きい場合には、次に、ロウがスペアロウで救済済みであるかどうかが判定される。
【０１８１】
ロウがスペアロウへ救済済みである場合にはステップＳ７１に進み、処理を終了する。救済済みでない場合には、ロウカウントが２であるかどうかが判定される（ステップＳ５３）。
【０１８２】
なお、ステップＳ５２の判定は、複数の冗長解析を実行する場合において、既に同一行について救済解析が行なわれている場合があるからであり、単一の冗長解析を実行する場合については、救済済みではないためこのステップＳ５２を設ける必要はない。この点については後に後述する。
【０１８３】
ステップＳ５３において、ロウカウントが２である場合には次のステップＳ５４に進む。一方、ロウカウントが２ではない場合にはステップＳ６０に進む。
【０１８４】
ステップＳ５４において、ｃｒｅ＿ｎｏ＝ｎｕｌｌ（ラストの次）であるかどうかすなわち一周したかどうかが判定される。ステップＳ５４において、ｃｒｅ＿ｎｏ＝ｎｕｌｌ（ラストの次）であると判定された場合には、一周しているためＮＧセット（ステップＳ５９）に進み、処理を終了する（ステップＳ７１）。一方、ｃｒｅ＿ｎｏ＝ｎｕｌｌでない場合には、ステップＳ５５に進み現在のＣＲＥＳＴＡ要素がＲかどうか判定される（ステップＳ５５）。ステップＳ５５において、現在のＣＲＥＳＴＡ要素がＲである場合には、次のステップＳ５６に進み、冗長行（スペアロウ）に空きがあるかどうかが判定される（ステップＳ５６）。
【０１８５】
一方、ステップＳ５５において、現在のＣＲＥＳＴＡ要素がＲでない場合にはＮＧセットに進む（ステップＳ５９）。ステップＳ５６において、冗長行（スペアロウ）に空きがある場合には、スペアロウ割当（ステップＳ５７）に進み、ｃｒｅ＿ｎｏをインクリメントする（ステップＳ５８）。そして終了する。すなわち、次のロウチェックに進む。
【０１８６】
ステップＳ６０において、冗長行（スペアコラム）で救済済みであるかどうかが判定される。
【０１８７】
ステップＳ６０において、冗長行（スペアコラム）で救済済みであると判定される場合には処理を終了する（ステップＳ７１）。
【０１８８】
一方、ステップＳ６０においてスペアコラムで救済済みでない場合にはステップＳ６１に進み、ｃｒｅ＿ｎｏ＝ｎｕｌｌかどうかが判定される。ｃｒｅ＿ｎｏ＝ｎｕｌｌである場合にはステップＳ６６に進み、ＮＧセット（ステップＳ６６）として処理を終了する（ステップＳ７１）。
【０１８９】
一方、ステップＳ６１において、ｃｒｅ＿ｎｏ＝ｎｕｌｌでない場合には、現在のＣＲＥＳＴＡ要素がＲかどうか判定される（ステップＳ６２）。ステップＳ６２において、現在のＣＲＥＳＴＡ要素がＲである場合には、次のステップＳ６３に進み、冗長行（スペアロウ）に空きがあるかどうかが判定される。一方、ステップＳ６２において現在のＣＲＥＳＴＡ要素がＲでない場合には、冗長列（スペアコラム）に空きがあるかどうかが判定される（ステップＳ６７）。冗長列（スペアコラム）に空きがあると判定された場合にはスペアコラム割当（ステップＳ６８）を実行する。そして、ｃｒｅ＿ｎｏをインクリメントする（ステップＳ６９）。そして処理を終了する（ステップＳ７１）。
【０１９０】
一方、ステップＳ６７において、冗長列（スペアコラム）に空きがない場合には、ＮＧセット（ステップＳ７０）として処理を終了する（ステップＳ７１）。
【０１９１】
ステップＳ６２において、現在のＣＲＥＳＴＡ要素がＲである場合、次にスペアロウに空きがあるかどうかが判定される（ステップＳ６３）。ステップＳ６３において、空きがある場合にはスペアロウ割当（ステップＳ６４）となり、ｃｒｅ＿ｎｏをインクリメントして処理を終了する。一方、ステップＳ６３において、スペアロウに空きがない場合にはＮＧセット（ステップＳ６６）として処理を終了する（ステップＳ７１）。
【０１９２】
図２６は、コラムチェック（コラムＩＤ）の処理を説明するフローチャート図である。
【０１９３】
コラムチェックが開始される（ステップＳ８０）。コラムマストのカウント値であるかどうかが判定される（ステップＳ８１）。コラムマストのカウント値でない場合には処理を終了する。一方、ステップＳ８１において、コラムマストのカウント値である場合には、スペアコラムに救済済みであるかどうかが判定される（ステップＳ８２）。スペアコラムで救済済みである場合には処理を終了する。
【０１９４】
一方、ステップＳ８２においてスペアコラムで救済済みでない場合にはＮＧセットとして処理が終了される。上述したようにコラムチェックは、コラムテーブルにおいて、すべての不良アドレスが正しく置換されていることを確認するためには、コラムマスト不良が発生しているコラムアドレスに対して冗長列が割当てられていることを確認している。
【０１９５】
次に、エラー記憶テーブルに格納されている不良情報に基づいてＣＲＥＳＴＡテーブルにより救済解析が実行される場合を説明する。
【０１９６】
図２７は、ＣＲＥＳＴＡテーブルのｃｒｅ＿ＩＤ＝０を適用する場合を説明する図である。
【０１９７】
図２７（ａ）は、順に不良ビット「１」〜「１１」が検出された場合が示されている。この左側のマトリクス状に示されている不良ビットは、図１５で説明したのと同様であり、上述したのと同様の方式に従って、エラー記憶テーブルのロウテーブルおよびコラムテーブルに右側の不良情報が格納される。
【０１９８】
図２７（ｂ）は、冗長構成が冗長行が４本であり、冗長列が１本である場合のＣＲＥＳＴＡテーブルを説明する図である。
【０１９９】
上述したようにＣＲＥＳＴＡテーブルのまずｃｒｅ＿ＩＤ＝０から不良解析が実行される。そして、上述したようにロウテーブルのロウＩＤの番号０から順にロウチェックが行なわれる。
【０２００】
図２８は、ＣＲＥＳＴＡテーブルのｃｒｅ＿ＩＤ＝０を適用した場合を説明する図である。
【０２０１】
図２８（ａ）は、上述のフローに従って、ｃｒｅ＿ＩＤ＝０のＣＲＥＳＴＡテーブルの各要素すなわちＲＲＲＲＣに関して、ロウテーブルに割当てを行なった場合を説明する図である。
【０２０２】
図２８（ｂ）は、図２７（ｂ）と同様ＣＲＥＳＴＡテーブルが示されている。ここでは、ｃｒｅ＿ＩＤ＝０の要素に着目している。
【０２０３】
具体的には、ｃｒｅ＿ＩＤ＝０のＣＲＥＳＴＡテーブルの内容でエラー記憶テーブルの解析が行なわれる。
【０２０４】
まずエラー記憶テーブルに対してＣＲＥＳＴＡテーブルのｃｒｅ＿ＩＤ＝０の内容でロウテーブルに対してＲＲＲＲＣの順にスペアラインが割当てられる。その結果に示すとおり、救済不可となる。図２８には、すべてのスペアラインを使用済みの状態で未救済の不良アドレスを検知したため救済が不能となっている状態が示されている。
【０２０５】
図２９は、ＣＲＥＳＴＡテーブルのｃｒｅ＿ＩＤ＝１を適用する場合を説明する図である。
【０２０６】
図２９（ａ）は、上述のフローに従ってｃｒｅ＿ＩＤ＝０のＣＲＥＳＴＡテーブルの各要素すなわちＲＲＲＲＣに関して、ロウテーブルに割当てを行なった場合を説明する図である。
【０２０７】
図２９（ｂ）は、図２７（ｂ）と同様ＣＲＥＳＴＡテーブルが示されている。ここでは、ｃｒｅ＿ＩＤ＝１の要素に着目している。
【０２０８】
具体的には、ｃｒｅ＿ＩＤ＝１のＣＲＥＳＴＡテーブルの内容でエラー記憶テーブルの解析が行なわれる。
【０２０９】
まずエラー記憶テーブルに対してＣＲＥＳＴＡテーブルのｃｒｅ＿ＩＤ＝１の内容でロウテーブルに対してＲＲＲＣＲの順にスペアラインが割当てられる。その結果に示すとおり、ｃｒｅ＿ＩＤ＝１の割当順では救済可能であることがわかる。このようにして救済解析アルゴリズムを適用することによって不良のメモリセルを置換し、救済することが可能となる。そして、コラムテーブルについてもコラムチェックが行なわれる。コラムマストが検索され、ｙ３についてはコラムで救済済みであるため正常であるとして処理が終了する。
【０２１０】
したがって、本発明の実施の形態に従う不良情報蓄積方法により、エラー記憶テーブルの容量を最低限必要な大きさに制限してコンパクトな不良情報を格納することができるとともに、そのエラー記憶テーブルを用いて不良ビットを救済するための救済解析を実行することができる。
【０２１１】
なお、メモリアレイの冗長救済は、出荷テスト時において、不良ビットを救済する上述で説明した救済解を外部のテスタ等で算出し、算出結果からヒューズ等を用いて冗長回路の置換制御を実行して不良ビットの救済を図る方式が一般的である。
【０２１２】
しかしながら、本発明に従う冗長救済構成は、外部のテスタ等を用いる必要はなく、チップ内部で救済解を算出して、救済解に基づき冗長回路を制御して不良ビットの救済を図る方式である。したがって、出荷テスト時に限らず、出荷後においても不良ビットの救済解析を実行する事が可能である。具体的には、通常動作時たとえばシステムリセット時において、上記で説明した救済解析を実行することにより外部から見て自動的に不良ビットを救済することが可能であるためたとえば、出荷後に生じる不良ビットにも対応する事が可能となり、より信頼度の高いデバイスを実現することが可能となる。
【０２１３】
また、本発明は、複数の冗長行および１本の冗長列を用いて不良ビットを救済する救済解析を実行するものである。具体的には、冗長行が４本および冗長列が１本の冗長構成に対してもあるいは冗長行が８本および冗長列が１本の冗長構成においても同様のアルゴリズムが適用可能である。具体的には、冗長構成にしたがって、図５で説明したｍ，ｎの設定を変更するのみで種々の冗長構成に対応可能である。したがって、冗長構成が異なるメモリが混載しているチップにおいても、単一のＢＩＳＡ回路を用いて救済解析を実行することが可能である。したがって、汎用的なＢＩＳＡ回路を実現することができ、チップ全体としての回路の部品点数を削減するとともにコスト面でも有利である。
【０２１４】
なお、本願構成においては、大別して、不良情報を圧縮して格納する不良情報圧縮部と、不良情報圧縮部に格納された不良情報に基づいて不良ビットの救済解析を実行する救済解算出部に分けることができるが、救済解算出部に関しては、外部の装置を用いて救済解を算出する構成とする事も可能である。
【０２１５】
不良情報圧縮部のみをチップに搭載した場合には、テストデータＴＩＮを出力するＡＰＧをチップ内部に搭載する必要がなく、不良情報を圧縮するためのロジックテスタのみを内蔵すればよいためメモリテスタとして設けるレイアウト面積を縮小することが可能である。また、救済解析回路も不要であるためさらにレイアウト面積を縮小することが可能である。
【０２１６】
また、チップ内に救済解算出部がある場合、チップ内の動作周波数に従って救済解析が実行されるため解析時間に制約がかかる場合も考えられるが、外部の装置を用いて救済解を算出する場合には、チップ内の動作周波数の制約を受けることなく、さらに高速なクロックを用いて高速なテストを実現することも可能である。
【０２１７】
また、メモリテスタのデータピン数でテストバス幅が制限される可能性も考えられるが、外部の装置を用いることによりそのような制限を考慮する必要がなく、通常動作と同じバス幅で高品質なテストを実現することも可能である。
【０２１８】
（実施の形態１の変形例）
本発明の実施の形態１の変形例においては、効率的な冗長置換を実行することが可能な別の救済解析アルゴリズム（拡張版）について説明する。
【０２１９】
図３０は、エラー記憶テーブルの別の例を説明する図である。
【０２２０】
図３０（ａ）においては、同一コラムアドレス上に不良ビット「１」〜「５」が検出された場合が示されている。
【０２２１】
上述した方式に従って、不良情報がロウテーブルおよびコラムテーブルに格納される。
【０２２２】
この場合、上記のＣＲＥＳＴＡテーブルを割当てるとすると、ＣＲＥＳＴＡテーブル内で最初に救済可能判定を出すのは、ｃｒｅ＿ＩＤ＝１のときでＲＲＲＣＲの順にスペアラインを割当てたときである。これにより救済は可能である。つまりｘ１，ｘ２，ｘ３の３本の冗長行（スペアロウ）は本来は不要な冗長行である。しかし、上記したＣＲＥＳＴＡアルゴリズムは救済解が見付かるまで総当りとなっているため、ｘ１，ｘ２，ｘ３も置換してしまうことになる。
【０２２３】
しかしながら、図３０（ａ）に示される場合には、冗長列（スペアコラム）一本で救済が可能な場合である。救済に用いる冗長行および冗長列の本数は少ない方が効率的である。上記の冗長解析アルゴリズムでは、効率的な冗長置換が可能であっても最初に得られた救済コードに基づいて冗長置換が実行されるため必ずしも最適な救済コードではない場合も考えられる。
【０２２４】
この図３０（ａ）のような場合に対処するためにＣＲＥＳＴＡテーブルを変形することにより対処することが可能である。
【０２２５】
図３０（ｂ）は、別のＣＲＥＳＴＡテーブル（改）を説明する図である。
【０２２６】
ここでは、ＣＲＥＳＴＡテーブルの要素の組合せの順序が入れ替わっている。具体的には、Ｒ，Ｃの配列関係を入れ替えたものである。コラム側から順にコラムと置換可能かどうかを判定する方式である。これにより、たとえばｃｒｅ＿ＩＤ＝０の場合に、最初の冗長列Ｃにより冗長置換されるため効率的な冗長置換とすることも可能である。
【０２２７】
しかしながら、図３０（ｃ）に示されるようなエラー記憶テーブルの場合、ｃｒｅ＿ＩＤ＝０の場合に、救済可能であるが、その場合には、必ずしも最適な救済コードではない。
【０２２８】
具体的には、図３０（ｂ）に示される割当て方とすることにより図３０（ｃ）で示されたような不良が発生した場合には、上述の方式に従えばｃｒｅ＿ＩＤ＝０のときにＣＲＲＲＲの順にスペアラインを割当てると多くのコード（冗長行および冗長列の用いた総数）を発生することになる。
【０２２９】
上述したように、救済解が見付かるまで総当りのＣＲＥＳＴＡアルゴリズムでは、最初に見付かった救済解を出力するために理想的な救済コード数より多めに救済コードを出力する可能性がある。特にヒューズ歩留まり、冗長置換回路歩留まり、スペアライン歩留まりを考慮すると置換数が少ない方がテスト歩留まりの向上を期待することができる。
【０２３０】
図３１は、効率的な冗長置換を実行することが別の救済解析アルゴリズム（拡張版）を説明する図である。
【０２３１】
ここでは、効率的な冗長置換を実行するために最小コード数を計算し、最適な冗長置換を実行する。
【０２３２】
上記のフローチャートを適用することによりＣＲＥＳＴＡテーブルが動作する場合を説明する。
【０２３３】
処理が開始される（スタート）（ステップＳ９０）。そして、仮救済可能フラグをオフにする（ステップＳ９１）。なお、救済解析回路において、仮救済可能フラグおよび後述する最小コード数を格納する格納領域が設けられているものとする。
【０２３４】
次に、ループ（ｌｏｏｐ）を０にセットする（ステップＳ９２）。次に、ｃｒｅ＿ＩＤを０にセットする（ステップＳ９３）。そして、置換コードレジスタをリセットする（ステップＳ２）。次にｃｒｅ＿ｎｏ＝０にセットする（ステップＳ３）。そして、上述したようにＥＳテーブル解析を実行する（ステップＳ４）。次に、現在のｃｒｅ＿ＩＤで救済可能であるかどうかが判定される（ステップＳ５）。救済可能でないと判定された場合には、ｃｒｅ＿ＩＤがラストか否かが判定され（ステップＳ７）、ラストでない場合には、ｃｒｅ＿ＩＤがインクリメントされて（ステップＳ８）、再びステップＳ２に戻る。このステップＳ２からのループについては、図２２で説明したのと同様である。ステップＳ５において、現在のｃｒｅ＿ＩＤで救済可能であると判断された場合にはループ（ｌｏｏｐ）が１であるかどうかが判定される（ステップＳ９４）。
【０２３５】
ループ（ｌｏｏｐ）が１でない場合には、仮救済可能フラグを立てる（ステップＳ９５）。そして、現在の最小コードより小さいかどうかが判定される（ステップＳ９６）。
【０２３６】
そして、現在の最小コードより小さくないと判定された場合には、ステップＳ７に進む。
【０２３７】
一方、現在の最小コードより小さいと判定された場合には最小コード数を更新して（ステップＳ１０１）、ステップＳ７に進む。
【０２３８】
ステップＳ９４において、ループ（ｌｏｏｐ）が１である場合には、最小コード数と一致するかどうか判定される（ステップＳ９９）。そして、一致する場合には、救済解析完了（救済可能）となる（ステップＳ１００）。一方、最小コード数と一致しない場合には、ステップＳ７に進む。
【０２３９】
ステップＳ７において、ｃｒｅ＿ＩＤがラストである場合にはループ（ｌｏｏｐ）が１であるかどうかが判定される（ステップＳ１０２）。そして、ループ（ｌｏｏｐ）が１である場合には、救済解析完了（救済不可）となる（ステップＳ１０５）。
【０２４０】
一方、ステップＳ１０２において、ループ（ｌｏｏｐ）が１でない場合には、仮救済可能フラグが立っているかすなわち存在するかどうかを判定する（ステップＳ１０３）。
【０２４１】
ステップＳ１０３において、仮救済可能フラグが立っていた場合にはループ（ｌｏｏｐ）を１にセットして（ステップＳ１０４）、ステップＳ９３に進む。一方、ステップＳ１０３において、仮救済可能フラグが立っていない場合には救済解析完了（救済不可）となる（ステップＳ１０５）。
【０２４２】
本方式は、ＣＲＥＳＴＡテーブルを全て順番に割当てて最小コードを検索する方式である。具体的には、２回救済解析アルゴリズムを適用している。ループ（ｌｏｏｐ）が０の場合、救済可能であればステップＳ９４→Ｓ９５→Ｓ９６と進む。そして、現在のコード数が最小コード数よりも小さいかどうかを判定して（ステップＳ９６）、小さければ最小コード数を更新（ステップＳ１０１）して救済解析を続行する。そして、ＣＲＥＳＴＡテーブルが全て検索されて解析が終了した場合、ステップＳ７→Ｓ１０２へと進む。そして、今度は、ループ（ｌｏｏｐ）を１として、２回目の救済解析を実行する。そして、２回目の救済解析アルゴリズムの適用中に１回目の救済解析により得られた最小コード数と同じ最小コード数が得られた場合に、救済解析完了（救済可能）として処理するものである。
【０２４３】
当該方式により理想的な救済コード数となる最小コード数を得ることができる。
【０２４４】
１回目の救済解析により最小コード数を算出することも可能であるが、ＣＲＥＳＴＡテーブルの各要素を全て順番に割当てて、検出されたコード数を保持しておくことが必要であり、さらに複数のコード数が検出された場合には、それらの大小関係を比較する必要があり回路が煩雑となる可能性があるが、本願方式の場合には、最小コード数が更新されるのみであり、検出されたコード数を全て保持する必要はなく、簡易な回路で実現することが可能である。
【０２４５】
（実施の形態２）
上記の実施の形態１においては、複数本の冗長行および１本の冗長列の冗長救済方式について説明してきた。
【０２４６】
実施の形態２においては、上記の方式に従って、外部から見た場合に複数本の冗長行および複数本の冗長列の冗長救済が可能な方式について説明する。
【０２４７】
図３２は、本発明の実施の形態２に従う冗長救済の方式について説明する図である。
【０２４８】
図３２を参照して、ここでは、メモリアレイＡＲＹが示され、２つのメモリブロックＢＵ０，ＢＵ１に分割されている。そして、メモリアレイＡＲＹの左右には、それぞれ１本の冗長列が配置されている。具体的には、右側のブロックＢＵ１に対応して右側の冗長列が設けられており、左側のブロックＢＵ０に対応して左側の冗長列が設けられているものとする。そして、両方のブロックＢＵ０，ＢＵ１に共通の冗長行が設けられているものとする。そして、メモリアレイＡＲＹのメモリセルを示すアドレスとしては、１ビットのアドレスビットがブロックＢＵ０，ＢＵ１のいずれかを示し、残りのアドレスビットがロウアドレスおよびコラムアドレスを示すものとする。
【０２４９】
当該構成の場合、ブロックＢＵ毎に冗長救済を実行する。すなわち、ブロック毎にエラー記憶テーブルに不良ビットの不良情報を格納して、上述した方式に従って冗長解析を実行することにより、複数本の冗長行および複数本の冗長列の構成においても同様に対応することができる。
【０２５０】
ただし、ブロックＢＵ毎に冗長救済および冗長解析を実行するためブロックＢＵ毎にＥＳテーブルおよびＣＲＥＳＴＡテーブルを設ける必要がある。
【０２５１】
図３３は、本発明の実施の形態２に従う冗長救済を説明するフローチャート図である。
【０２５２】
図３３を参照して、まず冗長救済が実行されて（ステップＳ１１０）、次のステップに進む。そして、最初のＥＳテーブルをセットする（ステップＳ１１１）。そして、最初のＥＳテーブルに関して、図２２で説明したＥＳテーブル解析動作が実行される（ステップＳ１１２）。
【０２５３】
そして、次にＥＳテーブルがラストかどうかすなわち最終のＥＳテーブルかどうかが判定される（ステップＳ１１３）。ステップＳ１１１において、最終のＥＳテーブルである場合には、処理を終了する（ステップＳ１１５）。
【０２５４】
一方、ステップＳ１１３において、最終のＥＳテーブルで無い場合には、次のＥＳテーブルがセットされる（ステップＳ１１４）。そして、再びステップＳ１１２に戻り、上述したＥＳテーブル解析動作が実行される。
【０２５５】
なお、前述した方式と異なる点は、上述した図２５のフローチャート図において、ステップＳ５２において、ロウがスペアロウで救済済みかどうか判定の際、たとえばブロックＢＵ０の冗長解析後にブロックＢＵ１の冗長解析を実行した場合に、ロウがスペアロウで救済済みの場合には、ブロックＢＵ０の冗長解析の際にロウが既に救済されているため処理は終了される（ステップＳ７１）ことになる。その他の点については、上記で説明したのと同様の方式を採用することが可能である。
【０２５６】
したがって、本発明の実施の形態２に従う方式により、外部から見た場合に複数本の冗長行および複数本の冗長列の冗長救済を実行することができる。
【０２５７】
（実施の形態３）
図３４は、本発明の実施の形態３に従うメモリモジュールＭＪ１〜ＭＪ３と、冗長解析を実行する論理部領域３の関係を説明する図である。
【０２５８】
本発明の実施の形態３に従うメモリモジュールＭＪ１〜ＭＪ３と、冗長解析を実行する論理部領域３の関係は、図２の構成と比較して、リードデータ判定回路を各メモリモジュールＭＪ毎に設けた点が異なる。その他の点については、実施の形態１の図２で説明したのと同様であるのでその詳細な説明は繰り返さない。
【０２５９】
（実施の形態３の変形例１）
図３５は、本発明の実施の形態３の変形例１に従う半導体装置１＃のレイアウト概略図である。
【０２６０】
図１の半導体装置１＃と比較して、メモリモジュールＭＪ３が他のメモリモジュールＭＪ１，ＭＪ２と離れた位置に配置されている。仕様に応じてメモリモジュールＭＪ１，ＭＪ２と分離してメモリモジュールＭＪ３を配置することも当然に可能である。
【０２６１】
図３６は、本発明の実施の形態３の変形例１に従うメモリモジュールＭＪ１〜ＭＪ３と、冗長解析を実行する論理部領域３の関係を説明する図である。
【０２６２】
本発明の実施の形態３の変形例１に従うメモリモジュールＭＪ１〜ＭＪ３と、冗長解析を実行する論理部領域３の関係は、図２の構成と比較して、リードデータ判定回路およびＩＯアドレスエンコーダを各メモリモジュールＭＪ毎に設けた点が異なる。具体的には、メモリモジュールＭＪ１に対応してリードデータ判定回路２０ａおよびＩＯアドレスエンコーダ３５ａが設けられている。メモリモジュールＭＪ２に対応してリードデータ判定回路２０ｂおよびＩＯアドレスエンコーダ３５ｂが設けられている。メモリモジュールＭＪ３に対応してリードデータ判定回路２０ｃおよびＩＯアドレスエンコーダ３５ｃが設けられている。その他の点については、実施の形態１の図２で説明したのと同様であるのでその詳細な説明は繰り返さない。ここでは、ＩＯアドレスエンコーダを各メモリモジュールＭＪ毎に設けた構成となっている。エンコーダによりリードデータ判定回路から出力された１２８ビットのデータ信号は、７ビットのコラムアドレス信号に変換される。さらに、１ビットのデータ信号が付加されて出力される。たとえば、上述したように複数ＩＯ異常である場合を識別するためのデータ信号が出力される。なお、上記の実施の形態においては、不良の複数ＩＯ異常である場合には、ＩＯアドレスエンコーダからそれを識別するための１ビットの信号が付加されて出力される点について説明したが、これに限られずたとえば２ビットの信号を出力することも可能である。たとえば、ＩＯアドレスエンコーダから「２個以上のアドレスが不良であることを表わすフラグ」と、「１個以上のアドレスが不良であることを表わすフラグ」とに分けることも可能である。その際、「１個のアドレスのみが不良」と「１個以上のアドレスが不良」という中間信号を生成し、「１個のアドレスのみが不良」ではなく、「１個以上のアドレスが不良」であるときに「２個以上のアドレスが不良であることを表わすフラグ」を生成することも可能である。
【０２６３】
当該構成により、バス幅を短くすることができ、配線数を削減してＢＩＳＡ回路に入力することが可能となる。
【０２６４】
（実施の形態３の変形例２）
図３７は、本発明の実施の形態３の変形例２に従うメモリモジュールＭＪ１〜ＭＪ３と、冗長解析を実行する論理部領域３の関係を説明する図である。
【０２６５】
本発明の実施の形態３の変形例２に従うメモリモジュールＭＪ１〜ＭＪ３と、冗長解析を実行する論理部領域３の関係は、図３６の構成と比較して、メモリモジュールＭＪ１，ＭＪ２とは独立メモリモジュールＭＪ３において、冗長救済が実行される構成が示されている。具体的には、メモリモジュールＭＪ３に対応して、リードデータ判定回路２０ｃ、ＩＯアドレスエンコーダ３５ｃ、エラー記憶回路２５＃ａ、救済解析回路３０ａが設けられている。
【０２６６】
したがって、並列に冗長救済動作をメモリモジュールＭＪ１，ＭＪ２と、メモリモジュールＭＪ３との間で実行可能であるため高速な冗長救済が可能である。
【０２６７】
（実施の形態３の変形例３）
図３８は、本発明の実施の形態３の変形例３に従うメモリモジュールＭＪ１〜ＭＪ３と、冗長解析を実行する論理部領域３の関係を説明する図である。
【０２６８】
図３８を参照して、本発明の実施の形態３の変形例３に従うメモリモジュールＭＪ１〜ＭＪ３と、冗長解析を実行する論理部領域３の関係は、図３７の構成と比較して、救済解析回路３０以外においては、メモリモジュールＭＪ１，ＭＪ２とメモリモジュールＭＪ３とは独立に冗長救済動作を実行する構成が示されている。
【０２６９】
本例の構成においても、上述の冗長救済を同様に実行することが可能である。
【０２７０】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【０２７１】
【図１】本発明の実施の形態に従う半導体装置１のレイアウト概略図である。
【図２】メモリモジュールＭＪ１〜ＭＪ３と、冗長解析を実行する論理部領域３の関係を説明する図である。
【図３】メモリモジュールに含まれる行列状に集積配置された複数のメモリセルを有するメモリアレイＡＲＹの一部を説明する図である。
【図４】本発明の実施の形態１に従うエラー記憶回路２５の概略ブロック図である。
【図５】本発明の実施の形態１に従うエラー記憶テーブル５５の構成を示す図である。
【図６】本発明の実施の形態に従う不良情報の蓄積のためのロウテーブルおよびコラムテーブルに蓄積するための動作処理手順について説明する図である。
【図７】図６に従うルールのもとに本発明の実施の形態に従うエラー記憶アルゴリズム回路５０の動作を説明するフローチャート図である。
【図８】不良ビットが２個以上ある場合における不良情報蓄積方法を説明するフローチャート図である。
【図９】冗長行が８本と冗長列が１本の場合のエラー記憶テーブルの構成を示す図である。
【図１０】ｎ＝４における本発明の実施の形態に従う不良情報の蓄積のためのロウテーブルおよびコラムテーブルに蓄積するための動作処理手順について説明する図である。
【図１１】上記で説明した不良記憶アルゴリズムを用いて、不良ビット「１」〜「２」までの不良情報が蓄積されたエラー記憶テーブルを説明する図である。
【図１２】上記で説明した不良記憶アルゴリズムを用いて、不良ビット「３」〜「４」までの不良情報が蓄積されたエラー記憶テーブルを説明する図である。
【図１３】上記で説明した不良記憶アルゴリズムを用いて、不良ビット「５」〜「８」までの不良情報が蓄積されたエラー記憶テーブルを説明する図である。
【図１４】上記で説明した不良記憶アルゴリズムを用いて、不良ビット「９」〜「１０」までの不良情報が蓄積されたエラー記憶テーブルを説明する図である。
【図１５】上記で説明した不良記憶アルゴリズムを用いて、不良ビット「１１」までの不良情報が蓄積されたエラー記憶テーブルを説明する図である。
【図１６】Ｂ−３でコラムカウントアップする場合を説明する図である。
【図１７】ケースＢ−３でコラムカウントアップしない場合を説明する図である。
【図１８】不良ビット「１」〜「４」までの不良情報が蓄積されたエラー記憶テーブルを説明する図である。
【図１９】不良ビット「５」〜「６」までの不良情報が蓄積されたエラー記憶テーブルを説明する図である。コラムテーブルを探索する意味について説明する図である。
【図２０】不良ビット「７」〜「１０」までの不良情報が蓄積されたエラー記憶テーブルを説明する図である。
【図２１】救済解析アルゴリズムで冗長判定に用いられるＣＲＥＳＴＡテーブルを説明する図である。
【図２２】本発明の実施の形態に従う救済解析アルゴリズムのフローチャート図である。
【図２３】ＥＳテーブル解析を説明する図である。
【図２４】たとえば図２１で説明したエラー記憶テーブルについてＥＳテーブル解析を実行する場合を説明するフローチャート図である。
【図２５】ロウチェック（ロウＩＤ）のフローチャート図である。
【図２６】コラムチェック（コラムＩＤ）の処理を説明するフローチャート図である。
【図２７】ＣＲＥＳＴＡテーブルのｃｒｅ＿ＩＤ＝０を適用する場合を説明する図である。
【図２８】ＣＲＥＳＴＡテーブルのｃｒｅ＿ＩＤ＝０を適用した場合を説明する図である。
【図２９】ＣＲＥＳＴＡテーブルのｃｒｅ＿ＩＤ＝１を適用する場合を説明する図である。
【図３０】エラー記憶テーブルの別の例を説明する図である。
【図３１】効率的な冗長置換を実行することが別の救済解析アルゴリズム（拡張版）を説明する図である。
【図３２】本発明の実施の形態２に従う冗長救済の方式について説明する図である。
【図３３】本発明の実施の形態２に従う冗長救済を説明するフローチャート図である。
【図３４】本発明の実施の形態３に従うメモリモジュールＭＪ１〜ＭＪ３と、冗長解析を実行する論理部領域３の関係を説明する図である。
【図３５】本発明の実施の形態３の変形例１に従う半導体装置１＃のレイアウト概略図である。
【図３６】本発明の実施の形態３の変形例１に従うメモリモジュールＭＪ１〜ＭＪ３と、冗長解析を実行する論理部領域３の関係を説明する図である。
【図３７】本発明の実施の形態３の変形例２に従うメモリモジュールＭＪ１〜ＭＪ３と、冗長解析を実行する論理部領域３の関係を説明する図である。
【図３８】本発明の実施の形態３の変形例３に従うメモリモジュールＭＪ１〜ＭＪ３と、冗長解析を実行する論理部領域３の関係を説明する図である。
【符号の説明】
【０２７２】
１，１＃  半導体装置、２  入力／出力インターフェイス領域、３  論理部領域、５  テストモード制御回路、６〜８，６＃〜８＃  モジュール入出力ユニット、１０  パターン発生回路、１５  ＢＩＳＡ回路、２０，２０ａ，２０ｂ，２０ｃ  リードデータ判定回路、２５，２５＃，２５＃ａ  エラー記憶回路、３０，３０ａ  救済解析回路、３５，３５ａ，３５ｂ，３５ｃ  ＩＯアドレスエンコーダ、４０  不良判定部、４５  前処理用比較回路、５０  エラー記憶アルゴリズム回路、５５  エラー記憶テーブル。
【図１】
2006209884.tif 000008
【図２】
2006209884.tif 000009
【図３】
2006209884.tif 000010
【図４】
2006209884.tif 000011
【図５】
2006209884.tif 000012
【図６】
2006209884.tif 000013
【図７】
2006209884.tif 000014
【図８】
2006209884.tif 000015
【図９】
2006209884.tif 000016
【図１０】
2006209884.tif 000017
【図１１】
2006209884.tif 000018
【図１２】
2006209884.tif 000019
【図１３】
2006209884.tif 000020
【図１４】
2006209884.tif 000021
【図１５】
2006209884.tif 000022
【図１６】
2006209884.tif 000023
【図１７】
2006209884.tif 000024
【図１８】
2006209884.tif 000025
【図１９】
2006209884.tif 000026
【図２０】
2006209884.tif 000027
【図２１】
2006209884.tif 000028
【図２２】
2006209884.tif 000029
【図２３】
2006209884.tif 000030
【図２４】
2006209884.tif 000031
【図２５】
2006209884.tif 000032
【図２６】
2006209884.tif 000033
【図２７】
2006209884.tif 000034
【図２８】
2006209884.tif 000035
【図２９】
2006209884.tif 000036
【図３０】
2006209884.tif 000037
【図３１】
2006209884.tif 000038
【図３２】
2006209884.tif 000039
【図３３】
2006209884.tif 000040
【図３４】
2006209884.tif 000041
【図３５】
2006209884.tif 000042
【図３６】
2006209884.tif 000043
【図３７】
2006209884.tif 000044
【図３８】
2006209884.tif 000045