(57)【特許請求の範囲】
【請求項１】
メモリテスト情報を記憶する方法であって、前記方法は、
メモリをテストしている間に検出される故障メモリセルの個所および数に関連する情報の一部を記憶し、当該情報はロー部およびカラム部を有するテーブル内に記憶され、テーブルの各ロー部およびカラム部は、故障メモリセルが位置するメモリの各ロー部またはカラム部のアドレスおよびメモリの各ロー部またはカラム部内で検出される故障メモリセルの数を記憶する少なくとも１つのアドレス／エラーカウントエントリ対を含み、
故障メモリセルが位置するメモリの各ロー部またはカラム部内の故障メモリセル数が利用可能な相補型メモリスペア数を超えるかどうかに一部基づいて、故障メモリセルが検出される時に記憶された情報を更新して、故障メモリセルを修正するために第１のタイプのメモリスペアが割り当てられ、故障メモリセルを修正するために第２の相補型メモリスペアが割り当てられ、またはメモリは修正不能である、ことを示すステップを備え、
第１のタイプのメモリスペアはメモリのロー部およびカラム部の一方に対応し、第２の相補型メモリスペアはメモリのロー部およびカラム部の他方に対応する、方法。
【請求項２】
請求項１記載の方法であって、さらに、
故障メモリセルが見つけられるメモリのロー部およびカラム部の少なくとも一つのアドレスとテーブル内に記憶されたアドレスエントリとの間に一致が存在するかどうかを確認するステップを含む方法。
【請求項３】
請求項２記載の方法であって、一致が存在する場合には、さらに、
対とされたエラーカウントエントリが利用可能な相補型メモリスペア数に等しければ一致するアドレスエントリと対とされたエラーカウントエントリを増分するステップを含む方法。
【請求項４】
請求項２記載の方法であって、テーブルのロー部およびカラム部の両方に一致が存在する場合には、さらに、
対とされたエラーカウントエントリの各々が利用可能な各相補型メモリスペア数よりも小さければ一致するアドレスエントリと対とされたエラーカウントエントリを増分するステップを含む方法。
【請求項５】
請求項２記載の方法であって、テーブルのロー部およびカラム部の一方に一致が存在する場合には、さらに、
一致するアドレスエントリを含まないテーブルのロー部またはカラム部が満杯であるかどうかを確認するステップを含む方法。
【請求項６】
請求項５記載の方法であって、一致するアドレスエントリを含まないテーブルのロー部またはカラム部が満杯でなければ、さらに、
対とされたエラーカウントエントリが利用可能な相補型メモリスペア数よりも小さければ一致するアドレスエントリと対とされたエラーカウントエントリを増分し、かつ、
テーブルの一致するアドレスエントリを含まない部分にアドレス/エラーカウントエントリを追加し、追加されたエントリ対はテーブル内のアドレスエントリと一致しない故障メモリセルが見つけられるメモリのロー部またはカラム部のアドレスおよび１のエラーカウントを含む、ステップを有する方法。
【請求項７】
請求項５記載の方法であって、一致するアドレスエントリを含まないテーブルのロー部またはカラム部が満杯であれば、テーブル内に記憶された情報はメモリが修正不能であることを示すように更新される方法。
【請求項８】
請求項２記載の方法であって、一致が存在しなければ、さらに、
テーブルのロー部およびカラム部の少なくとも一方が満杯であるかどうかを確認するステップを含む方法。
【請求項９】
請求項８記載の方法であって、テーブルのロー部またはカラム部のいずれも満杯でなければ、さらに、
テーブルのロー部およびカラム部の両方にアドレス/エラーカウントエントリを追加し、追加された各エントリ対は故障メモリセルが見つけられるメモリのロー部またはカラム部の各アドレスおよび１のエラーカウントを含む、ステップを有する方法。
【請求項１０】
請求項８記載の方法であって、テーブルのロー部およびカラム部の少なくとも一方が満杯であれば、テーブル内に記憶された情報はメモリが修正不能であることを示すように更新される方法。
【請求項１１】
請求項２記載の方法であって、一つのタイプのメモリスペアの総数が相補型メモリスペアの総数よりも大きい場合に、一致が存在するかどうかを確認するステップは、
スペア総数が小さい方のメモリスペアのタイプに対応するメモリのロー部またはカラム部のアドレスをテーブル内のアドレスエントリと比較する前に、スペア総数が大きい方のメモリスペアのタイプに対応するメモリのロー部またはカラム部のアドレスをテーブル内のアドレスエントリと比較する、ことを含む方法。
【請求項１２】
請求項２記載の方法であって、第１および第２のタイプのメモリスペアの総数が等しい場合に、一致が存在するかどうかを確認するステップは、
故障メモリセルが見つけられるメモリのロー部およびカラム部のアドレスの一つをランダムに選択し、
ランダムに選択されないメモリのロー部またはカラム部のアドレスをテーブル内のアドレスエントリと比較する前に、ランダムに選択されたメモリのロー部またはカラム部のアドレスをテーブル内のアドレスエントリと比較する、ステップを含む方法。
【請求項１３】
請求項１記載の方法であって、さらに、
テーブルのロー部に含まれるアドレス/エラーカウントエントリ対をテーブルのカラム部に含まれる関連するアドレス/エラーカウントエントリ対とリンクするステップを含む方法。
【請求項１４】
請求項１３記載の方法であって、一意的リンクＩＤを記憶するためのリンク識別子エントリが、テーブルのロー部に含まれるアドレス/エラーカウントエントリ対をテーブルのカラム部に含まれる関連するアドレス/エラーカウントエントリ対とリンクするための、スペア総数の大きいメモリスペアのタイプに対応するテーブルのロー部またはカラム部の各アドレス/エラーカウントエントリ対に追加される方法。
【請求項１５】
請求項１４記載の方法であって、一意的リンクＩＤ数はスペア総数の小さいタイプのメモリスペア数に等しい方法。
【請求項１６】
請求項１記載の方法であって、テーブルは少なくとも一つの第１の
タイプのメモリスペアが少なくとも一つの第２の相補型メモリスペアと交差するメモリの一部を表わす方法。
【請求項１７】
請求項１記載の方法であって、テーブルサイズは次式により求められ、
【数１】
0003878062.tif 000006
ここに、CE=テーブルのカラム部内のエントリ数=SR*(SC+1);
RE=テーブルのロー部内のエントリ数=SC*(SR+1);
RowCnt=テーブルのロー部内のエラーカウントのサイズ=log2(SC+2);
RowAddr=テーブルのロー部内のアドレスのサイズ=log2(R);
ColumnCnt=テーブルのカラム部内のエラーカウントのサイズ=log2(SR+2);
ColumnAddr=テーブルのカラム部内のアドレスのサイズ=log2(C);
R=メモリのロー部内のロー数;
SR=第１または第２のタイプのメモリスペア数;
SC=相補型メモリスペア数;
C=メモリのカラム部内のカラム数;
ID=リンクＩＤのサイズ=RE>CEならば[log2(CE)], CE>REならば[log2(RE)].
【請求項１８】
請求項１記載の方法であって、メモリのロー部はメモリの少なくとも一つのローを含みメモリのカラム部はメモリの少なくとも一つのカラムを含む方法。
【請求項１９】
請求項１記載の方法であって、メモリのカラム部は少なくとも一つの入出力（Ｉ/Ｏ）装置を含み、少なくとも一つのＩ/Ｏ装置はメモリの少なくとも一つのカラムに対する入力および出力パスを提供する方法。
【請求項２０】
メモリテスト情報を記憶する装置であって、
メモリをテストしている間に検出される故障メモリセルの個所および数に関連する情報の一部をロー部およびカラム部を有するテーブル内に記憶する論理を備え、テーブルの各ロー部およびカラム部は、故障メモリセルが位置するメモリの各ロー部またはカラム部のアドレスおよびメモリの各ロー部またはカラム部内で検出される故障メモリセルの数を記憶する少なくとも１つのアドレス／エラーカウントエントリ対を含み、前記装置は、
故障メモリセルが位置するメモリの各ロー部またはカラム部内の故障メモリセル数が利用可能な相補型メモリスペア数を超えるかどうかに一部基づいて、故障メモリセルが検出される時に記憶された情報を更新して、故障メモリセルを修正するために第１のタイプのメモリスペアが割り当てられ、故障メモリセルを修正するために第２の相補型メモリスペアが割り当てられ、またはメモリは修正不能であることを示す論理をさらに備え、
第１のタイプのメモリスペアはメモリのロー部およびカラム部の一方に対応し、第２の相補型メモリスペアはメモリのロー部およびカラム部の他方に対応する、装置。
【請求項２１】
請求項２０記載の装置であって、さらに、
故障メモリセルが見つけられるメモリのロー部およびカラム部の少なくとも一つのアドレスとテーブル内に記憶されたアドレスエントリとの間に一致が存在するかどうかを確認する論理を含む装置。
【請求項２２】
請求項２１記載の装置であって、さらに、
対とされたエラーカウントエントリが利用可能な相補型メモリスペア数に等しければ、一致が存在する時に一致するアドレスと対とされたエラーカウントエントリを増分する論理を含む装置。
【請求項２３】
請求項２１記載の装置であって、さらに、
対とされたエラーカウントエントリの各々が利用可能な各相補型メモリスペア数よりも
小さければ、テーブルのロー部およびカラム部の両方に一致が存在する時に一致するアドレスエントリと対とされたエラーカウントエントリを増分する論理を含む装置。
【請求項２４】
請求項２１記載の装置であって、さらに、
テーブルのロー部およびカラム部の一方に一致が存在する時は、一致するアドレスエントリを含まないテーブルのロー部またはカラム部が満杯であるかどうかを確認する論理を含む装置。
【請求項２５】
請求項２４記載の装置であって、さらに、
対とされたエラーカウントエントリが利用可能な相補型メモリスペア数よりも小さければ、テーブルのロー部およびカラム部の一方に一致が存在する時に一致するアドレスエントリと対とされたエラーカウントエントリを増分する論理と、
テーブルのロー部およびカラム部の一方に一致が存在する時にテーブルの一致するアドレスエントリを含まない部分にアドレス/エラーカウントエントリを追加する論理であって、追加されるエントリ対はテーブル内のアドレスエントリと一致しない故障メモリセルが見つけられるメモリのロー部またはカラム部のアドレスおよび１のエラーカウントを含む論理と、を含む装置。
【請求項２６】
請求項２４記載の装置であって、さらに、
一致するアドレスエントリを含まないテーブルのロー部またはカラム部が満杯である時は、メモリは修正不能であることを示す論理を含む装置。
【請求項２７】
請求項２１記載の装置であって、さらに、
一致が存在しない時にテーブルのロー部およびカラム部の少なくとも一方が満杯であるかどうかを確認する論理を含む装置。
【請求項２８】
請求項２７記載の装置であって、さらに、
一致が存在しない時にテーブルのロー部およびカラム部の両方にアドレス/エラーカウントエントリを追加する論理であって、追加される各エントリ対は故障メモリセルが見つけられるメモリのロー部またはカラム部の各アドレスおよび１のエラーカウントを含む論理を含む装置。
【請求項２９】
請求項２７記載の装置であって、さらに、
テーブルのロー部およびカラム部の少なくとも一方が満杯である時に、メモリは修正不能であることを示す論理を含む装置。
【請求項３０】
請求項２１記載の装置であって、一致が存在するかどうかを確認する論理は、
一つのタイプのメモリスペア総数が相補型メモリスペア総数よりも大きい時に、スペア総数が小さい方のメモリスペアのタイプに対応するメモリのロー部またはカラム部のアドレスをテーブル内のアドレスエントリと比較する前に、スペア総数が大きい方のメモリスペアのタイプに対応するメモリのロー部またはカラム部のアドレスをテーブル内のアドレスエントリと比較する論理を含む装置。
【請求項３１】
請求項２１記載の装置であって、一致が存在するかどうかを確認する論理は、
第１および第２のタイプのメモリスペアの総数が等しい時に、故障メモリセルが見つけられるメモリのロー部およびカラム部のアドレスの一つをランダムに選択する論理と、
第１および第２のタイプのメモリスペアの総数が等しい時に、ランダムに選択されないメモリのロー部またはカラム部のアドレスをテーブル内のアドレスエントリと比較する前に、ランダムに選択されたメモリのロー部またはカラム部のアドレスをテーブル内のアドレスエントリと比較する論理と、を含む装置。
【請求項３２】
請求項２０記載の装置であって、さらに、
テーブルのロー部に含まれるアドレス/エラーカウントエントリ対をテーブルのカラム部に含まれる関連するアドレス/エラーカウントエントリ対とリンクする論理を含む装置。
【請求項３３】
請求項３２記載の装置であって、さらに、
一意的リンクＩＤを記憶するためのリンク識別子エントリを、テーブルのロー部に含ま
れるアドレス/エラーカウントエントリ対をテーブルのカラム部に含まれる関連するアドレス/エラーカウントエントリ対とリンクするための、スペア総数の大きい方のメモリスペアのタイプに対応するテーブルのロー部またはカラム部の各アドレス/エラーカウントエントリ対に追加する論理を含む装置。
【請求項３４】
請求項３３記載の装置であって、一意的リンクＩＤ数はスペア総数の小さいタイプのメモリスペア数に等しい装置。
【請求項３５】
請求項２０記載の装置であって、テーブルは少なくとも一つの第１のタイプのメモリスペアが少なくとも一つの第２の相補型メモリスペアと交差するメモリの一部を表わす装置。
【請求項３６】
メモリの故障セルの位置を特定する情報を記憶する方法であって、
メモリのローおよびカラムにそれぞれ関連したテーブル対を生成し、各テーブルは、ローまたはカラムに関連するアドレスおよびアドレスのエラーカウントのための領域と、一方のテーブルのアドレスを他方のテーブルのアドレスにリンクするリンク情報とを含み、
故障メモリセルを検出する場合に、故障メモリセルのローアドレスおよびメモリのローに関連したテーブル内のカウント値を記憶し、故障メモリセルのカラムアドレスおよびメモリのカラムに関連したエントリのカウント値を記憶し、前記一方のテーブルに記憶されたエントリを他方のテーブルに記憶されたエントリにリンクするテーブルの少なくとも１つにおける情報を記憶し、
さらに故障メモリセルを検出する場合に、当該故障したメモリセルのローおよびカラムアドレスがそれぞれのテーブルに記憶されているかどうかを検出するために前記テーブルをチェックし、各検出されたアドレスに対して、検出されたアドレスに対応するカウント値を増分させるステップを備える、方法。
【請求項３７】
請求項３６記載の方法であって、メモリは修正割当のためにセルの１以上のスペアローおよびセルの１以上のスペアカラムを有し、ローに関連するテーブルはSR*(SC+1)に等しいエントリ最大数を有し、カラムに関連するテーブルはSC*(SR+1)に等しいエントリ最大数を有し、
ここに、SR=セルのスペアローの数
SC=セルのスペアカラムの数
【請求項３８】
請求項３７記載の方法であって、ローテーブルまたはカラムテーブルの増分されたカウント値が割当可能なスペアカラムまたはローカラムの数を超えるかどうかをそれぞれ判定し、もし超えれば、当該ローまたはカラムを、超えたカウント値に対応するアドレスに指定し、スペアローまたはスペアカラムの１つによってそれぞれ修正されるステップをさらに含む方法。
【請求項３９】
請求項３８記載の方法であって、もし前記修正の割当がなされなかった場合、さらに故障したセルが位置するアドレスの他のテーブルへのエントリを付加する方法。
【請求項４０】
請求項３９記載の方法であって、さらなるエラーを検出する場合に、前記さらに故障したセルが、既にそのエントリの最大数を含むテーブル内にエントリを要求するかどうか判定し、もし要求すれば、当該メモリを修正不能に指定するステップをさらに含む方法。
【請求項４１】
ローおよびカラムに配列されたメモリセルと、修正割当のためのセルの少なくとも１つのスペアローおよびセルの少なくとも１つのスペアカラムとを有するメモリ装置であって、さらに故障メモリセルに関する情報を有し、
故障セルを有するローのアドレスおよびローの故障セルの数を各々特定する１以上のエントリをその中に記憶する、メモリセルのローに関連する第１のテーブルと、
故障セルを有するカラムのアドレスおよびカラムの故障セルの数を各々特定する１以上のエントリをその中に記憶する、メモリセルのカラムに関連する第２のテーブルとを備え、
前記テーブルの少なくとも１つは、当該テーブルの各エントリを他方のテーブルの対応するエントリにリンクする情報を含む、メモリ装置。
【請求項４２】
請求項４１記載のメモリ装置であって、第１のテーブルはSR*(SC+1)に等しいエントリ最大数を有し、
ここに、SR=セルのスペアローの数
SC=セルのスペアカラムの数
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
メモリテスト情報の記憶方法および装置が記述される。特に、冗長メモリ回路を有するメモリのメモリテスト情報記憶方法および装置が公開される。
【０００２】
【従来の技術】
従来のメモリテストはメモリアレイ内の全ての故障メモリアドレスの識別とこれらのメモリアドレスのどのビットが故障しているかの識別の両方を含んでいる。典型的なメモリテストはメモリ内にさまざまなデータパターンを書き込み、次にメモリの出力を予期された値またはパターンと比較することを含んでいる。予期された値と実際に読み出したメモリ値との一致は、典型的にはメモリテスタ自体内に配置された、外部メモリマップ内に記憶される。
【０００３】
全テストパターンが実行され、故障アドレス（および、ビット）が識別され記憶された後で、テスタは記憶されたエラーデータのリペア解析を実施してどの故障アドレスロー部およびカラム部（すなわち、Ｉ/Ｏ）またはいずれかのビット（すなわち、セル）を利用可能な冗長（すなわち、スペア）メモリセルと置換してメモリを完全に作動可能とするかを決定することができる。故障メモリ情報は、典型的に、全メモリテストの終りに解析される。それにより、リペアアルゴリズムはメモリの動作を最大限としかつ冗長メモリセルを最も効率的な方法で使用する最適リペア構成を決定するために全ての故障メモリ情報を考慮することができる。さらに、全ての故障メモリ情報を一時に考慮することにより、ある修正不能なメモリ状態を早期に識別することができ、修正不能な状況において貴重なテストおよびリペア時間を浪費する前にメモリが廃棄される。
【０００４】
最も一般的なテスタに関連する制約条件により、リペア情報はダイナミックに発生して使用する必要がある。そのため、冗長メモリセルを非効率的に使用して全体メモリ歩留りを低減することがある。また、この制約条件により、より高速かつ高密度のメモリの開発においてメモリテストは最も費用が掛かりかつ時間を消耗するプロセスとされている。
【０００５】
例えば、従来のメモリテスタは典型的にテストするのに使用されるメモリセルの動作周波数よりも比較的遅い処理クロック速度を有する。比較的遅いクロック速度により被測定メモリが正規の動作速度で正しく動作するかどうかを確認することが不可能となる。また、これら従来の低速テスタを使用して正規の動作速度でエラー情報を集めることは不可能である。したがって、テスタは大量のエラーデータを記憶し、次に、この大量のデータを“オフライン”で実行されるリペアアルゴリズムで解析しなければならない。従来のテスタでは、エラーメモリは故障ビットの予期される総数と同じ大きさでなければならない。さらに、メモリ密度が増大するにつれ、既に制限されているテスタメモリも増大しなければならず、より複雑なリペアアルゴリズムソリューションを処理できるようにするためにテスタの処理力を増大しなければならない。
【０００６】
従来のテスタに関連するもう一つの制約条件は、その典型的に制限されたＩ/Ｏ能力である。メモリがより高密度化するにつれ、メモリをテストするのに必要なＩ/Ｏ数も増加しなければならない。Ｉ/Ｏが制限されたテスタでは全体メモリを一度にテストすることができず、テストプログラムはいくつかのより小さなテスト用に分割する必要がある。メモリテストの分割により全体テスト時間が増大し、それはメモリ製作コストに大きく寄与する。
【０００７】
メモリ設計者はこれらのいくつかの問題に取り組むためにビルトインセルフテスト（ＢＩＳＴ）を利用してきている。ＢＩＳＴでは、メモリをテストするためのパターン発生器がメモリ自体と同じ半導体チップ（すなわち、ウエハ）上に作り込まれる。それによりＢＩＳＴ回路はメモリを“迅速に”テスすることができ、動作速度よりも低速でメモリをテストする結果エラー検出を失敗する問題を解消する。さらに、ＢＩＳＴ回路は今日のテスタがＩ/Ｏ制限されていることに関連する問題にも取り組む。
【０００８】
さらに、従来のＢＩＳＴ技術にも制限が存在する。例えば、故障メモリ情報を記憶するために大量のエラーメモリをＢＩＳＴに内蔵しなければならない。また、リペアアルゴリズム処理を実施するために追加記憶装置およびプロセッサリソースをメモリに内蔵しなければならない。スペースおよびプロセッサの制限により、限定された量のエラー記憶装置およびリペアコードしかＢＩＳＴ設計内に統合することができない。したがって、従来のＢＩＳＴ技術は故障メモリ個所を検出するために“スナップショット法”を使用し続けている。それにはリペアアルゴリズムが故障メモリ情報を“休む間もなく”処理することが必要であり、前記したように、それによりメモリチップ上に含まれる冗長メモリセルは非効率的に使用されるようになる。
【０００９】
【発明が解決しようとする課題】
したがって、テスタに課されるエラー記憶装置要求条件を緩和しかつリペアアルゴリズムの複雑さを遥かに単純なタスクに簡約する、メモリテストにより発生する故障メモリ情報を記憶するための改善された技術が必要とされている。特に、完全に解析してリペア情報を発生する必要がある故障メモリ情報だけを記憶する改善された技術が必要とされている。
【００１０】
【課題を解決するための手段】
したがって、一つの目的は効率的な方法で全ての故障メモリ情報のオンチップ記憶装置を提供することである。もう一つの目的は全ての故障メモリ情報の高速記憶装置を提供することである。さらに、もう一つの目的は多数のＩ/Ｏバスメモリを有するメモリのテストをサポートすることである。さらに、もう一つの目的はリペアアルゴリズムを開始する前に、ある修正不能メモリ故障状態を検出することである。もう一つの目的はリペアアルゴリズム自体の複雑さを低減することである。これらの目的はメモリを有する故障メモリ個所に関する情報をコンパクトにする方法および装置により取り組まれる。
【００１１】
一側面に従って、メモリテスト情報を記憶する方法はメモリテスト中に検出された故障メモリセルの個所および数に関連する情報の一部を記憶するステップを含んでいる。記憶された情報は故障メモリセルが検出されると更新されて故障メモリセルを修正するために第１のタイプのメモリスペアが割り当てられる、故障メモリセルを修正するために第２の相補型メモリスペアが割り当てられる、またはメモリは修正不能であることを示す。第１のタイプのメモリスペアはメモリのロー部およびカラム部の一方に対応し、第２の相補型メモリスペアはメモリのロー部およびカラム部の他方に対応する。
【００１２】
関連する側面に従って、記憶された情報は一部故障メモリセルが見つけられるメモリの各ロー部またはカラム部内の故障メモリセル数が利用可能な相補型メモリスペア数を越えるかどうかに基づいて、故障メモリセルの修正に割り当てられるメモリスペアのタイプを示すように更新される。
【００１３】
さらに、もう一つの関連側面に従って、情報はロー部およびカラム部を有するテーブル内に記憶され、テーブルの各ロー部およびカラム部は故障メモリセルが見つけられるメモリの各ロー部またはカラム部のアドレスおよびメモリの各ロー部またはカラム部内で検出された故障メモリセル数を記憶する少なくとも一つのアドレス/エラーカウントエントリ対を含んでいる。
【００１４】
さらに、もう一つの関連側面に従って、この方法はさらに故障メモリセルが見つけられるメモリのロー部およびカラム部の少なくとも一つのアドレスとテーブル内に記憶されたアドレスエントリとの間に一致が存在するかどうかを確認するステップを含んでいる。
【００１５】
さらに、もう一つの関連側面に従って、一致が存在する場合には、この方法はさらに対とされたエラーカウントエントリが利用可能な相補型メモリスペア数に等しければ一致するアドレスと対とされたエラーカウントエントリを増分するステップを含んでいる。テーブルのロー部およびカラム部の両方に一致が存在する場合には、この方法はさらに対とされたエラーカウントエントリの各々が利用可能な各相補型メモリスペア数よりも少なければ一致するアドレスと対とされたエラーカウントエントリを増分するステップを含んでいる。
【００１６】
さらに、もう一つの関連側面に従って、テーブルのロー部およびカラム部の一方に一致が存在する場合には、この方法はさらに一致するアドレスエントリを含まないテーブルのロー部またはカラム部が満杯であるかどうかを確認するステップを含んでいる。一致するアドレスエントリを含まないテーブルのロー部またはカラム部が満杯でなければ、この方法はさらに対とされたエラーカウントエントリが利用可能な相補型メモリスペア数よりも少ない場合に一致するアドレスと対とされたエラーカウントエントリを増分し、テーブルの一致するアドレスエントリを含まない部分にアドレス/エラーカウントエントリ対を追加するステップを含み、追加されるエントリ対はテーブル内のアドレスエントリに一致しない故障メモリセルが見つけられるメモリのロー部またはカラム部のアドレスおよび１のエラーカウントを含んでいる。一致するアドレスエントリを含まないテーブルのロー部またはカラム部が満杯であれば、テーブル内に記憶された情報はメモリが修正不能であることを示すように更新される。
【００１７】
さらに、もう一つの関連側面に従って、一致が存在しなければ、この方法はさらにテーブルのロー部およびカラム部の少なくとも一方が満杯であるかどうかを確認するステップを含んでいる。テーブルのロー部またはカラム部のいずれも満杯でなければ、この方法はさらにテーブルのロー部およびカラム部の両方にアドレス/エラーカウントエントリ対を追加するステップを含み、追加される各エントリ対は故障メモリセルが見つけられるメモリのロー部またはカラム部の各アドレスおよび１のエラーカウントを含んでいる。テーブルのロー部およびカラム部の少なくとも一方が満杯であれば、テーブル内に記憶された情報はメモリが修正不能であることを示すように更新される。
【００１８】
さらに、もう一つの関連側面に従って、一つのタイプのメモリスペアの総数が相補型メモリスペアの総数よりも大きければ、一致が存在するかどうかを確認するステップはスペア総数の少ない方のメモリスペアのタイプに対応するメモリのロー部またはカラム部のアドレスをテーブル内のアドレスエントリと比較する前に、スペア総数の多い方のメモリスペアのタイプに対応するメモリのロー部またはカラム部のアドレスをテーブル内のアドレスエントリと比較するステップを含んでいる。
【００１９】
さらに、もう一つの関連側面に従って、第１および第２のタイプのメモリスペアの総数が等しければ、一致が存在するかどうかを確認するステップは故障メモリセルがランダムに見つけられるメモリのロー部およびカラム部の一つのアドレスを選択するステップと、ランダムに選択されないメモリのロー部またはカラム部のアドレスをテーブル内のアドレスエントリと比較する前に、ランダムに選択されたメモリのロー部またはカラム部のアドレスをテーブル内のアドレスエントリと比較するステップを含んでいる。
【００２０】
さらに、もう一つの関連側面に従って、この方法はテーブルのロー部内に含まれるアドレス/エラーカウントエントリ対をテーブルのカラム部内に含まれる関連するアドレス/エラーカウントエントリ対とリンクするステップを含んでいる。一意的リンクＩＤを記憶するリンク識別子エントリが、テーブルのロー部内に含まれるアドレス/エラーカウントエントリ対をテーブルのカラム部内に含まれる関連するアドレス/エラーカウントエントリ対とリンクするためのスペア総数の多い方のメモリスペアのタイプに対応するテーブルのロー部またはカラム部の各アドレス/エラーカウント対に追加される。一意的リンクＩＤ数はスペア総数の少ない方のタイプのメモリスペア数に等しい。
【００２１】
さらに、もう一つの関連側面に従って、テーブルは第１のタイプのメモリスペアの少なくとも一つが第２の相補型メモリスペアの少なくとも一つと交差するメモリの一部を表わす。
【００２２】
“含む”および“含んでいる”という用語は、特許請求の範囲だけでなく本明細書で使用される場合、規定された特徴、ステップまたはコンポーネントの存在を明記するものであるが、これらの用語の使用は一つ以上の他の特徴、ステップ、コンポーネントまたはグループの存在または追加を除外するものではないことを強調する。
【００２３】
【発明の実施の形態】
添付図に関して以下に好ましい実施例が説明される。下記の説明では、不要な詳細により説明が曖昧になるのを回避するため、よく知られた機能および構造またはそのいずれかについては詳細に説明しない。
【００２４】
冗長回路
簡単に前記したように、メモリリペアを遂行するために含まれる冗長回路は識別された故障メモリ個所にスペアメモリセルを多重化（すなわち、マッピング）することにより故障メモリ場所を置換することができるメモリアレイにより構成される。リペアアルゴリズムからのリペア情報は故障メモリ個所にスペアローまたはカラムセルをどのようにマッピングするかを示す。故障メモリ個所を修正する効率的なアルゴリズムが本出願と同日に出願され本出願と同じ譲受人の米国特許出願第60/296,793号“Repair Analysis Algorithm Suitable for On-Chip Implementation”に記載されている。
【００２５】
任意所与の故障メモリビットを固定するのに一つのスペアメモリしか必要としない。典型的に、スペアメモリセル回路はアドレス可能なロースペアセルおよびカラムスペアセルにより構成される。このような構成では、スペアローがその個所にマッピングされる時に所与のローアドレスに関連する全メモリビットが置換される。同様に、メモリ内にスペアカラムをマッピングするとそのカラム内に含まれる全メモリビットを置換する。ローおよびカラムアドレスの各交点が一群の全メモリビット（すなわち、セル）を選択する。
【００２６】
他の冗長回路構成もスペアＩ/Ｏをマッピングすることができる。これらの構成はいくつかのカラムメモリアレイを一つの出力ドライバ群とする。それにより多数のカラムアドレス内に存在する個別のデータビットを単一スペアカラムで置換することができる。スペアカラムはカラムアドレスに対する一群のＩ/Ｏを置換する。したがって、“カラム”という用語はこの文書全体を通してカラムおよびＩ/Ｏ型冗長回路の両方を指す。
【００２７】
いくつかのメモリコアを有するメモリチップにおいて、さまざまなメモリコアを修正するために含まれるスペアローおよびスペアカラムは個別に構成することができる。所与の冗長回路内で互いに交差するスペアローおよびカラム数は、その冗長回路に関連するエラー記憶テーブルの構成を決定する重要な設計規準である。各エラー記憶テーブルは特定のコア内でスペアローがスペアカラムと交差する一つのサブブロックを表わすものと考えられる。各スペアローおよびスペアカラムはある範囲のローアドレスおよびカラムアドレスを修正することができる。この範囲は“解析ブロック”と呼ばれるものを画定する。解析ブロックのローアドレスおよびカラムアドレス範囲はメモリコアをより小さな独立領域に分割する。解析ブロックのスペアローおよびスペアカラムは多数のサブブロック間で共用することができる。共用量は特定のメモリコアの冗長アーキテクチュアによって決まる。
【００２８】
ある範囲の関連するローアドレスおよびカラムアドレスを修正できる他に、サブブロックはそれ自体内の全故障個所を修正するのに使用することができる専用スペアローおよびスペアカラムを有する。同様に、サブブロックがスペアローおよびスペアＩ/Ｏにより構成される場合には、この同じ能力が有効であり、サブブロックはそれ自体内の全故障個所を修正するのに使用することができる専用スペアローおよびスペアＩ/Ｏを有する。
【００２９】
前記したように、サブブロック当たりスペアローおよびカラムセルすなわちＩ/Ｏ数はメモリチップ上に常駐する異なるメモリコアにわたって変動することができる。下記の典型的な実施例はサブブロック当たり二つのスペアローおよび一つのスペアカラム（すなわち、Ｉ/Ｏ）を使用するメモリコアを特徴とするが、当業者ならばサブブロック当たり任意数のスペアセルすなわちＩ/Ｏを使用する他の構成が可能であることがお判りであろう。
【００３０】
エラー記憶テーブル
エラー記憶テーブルはリペア解析アルゴリズムが識別された故障メモリセルをスペア個所にマッピングするのに必要なリペアコードを発生するために必要とされる情報だけを記憶するのに使用される。これはリペア処理に対する全ての故障情報を記憶する従来のエラー記憶とは対照的である。前記したように、各スペアセル（すなわち、Ｉ/Ｏ）はある範囲のアドレスをカバーし、したがって、一時にある数のアドレスを修正する。
【００３１】
例えば、一時に四つのローアドレスを置換することができるスペアセルを有するメモリコアが与えられると、アドレスの最下位２ビット（ＬＳＢ）は１アドレスであると考えることができる。メモリコアのローアドレス１およびローアドレス３にメモリ故障が識別されると、スペアローはローアドレス０，１，２および３を置換する。したがって、エラー記憶テーブルはローアドレス０，１，２および３を同じアドレスと解釈する。しかしながら、これはリペア解析アルゴリズムを駆動するために記憶することができる故障メモリ情報の量を低減する一つの方法にすぎない。
【００３２】
図１Ａ、図１Ｂは一般化されたエラー記憶判断チャートを示す。任意所与の冗長回路構造内の利用可能なスペアローおよびスペアカラム（すなわち、Ｉ/Ｏ）数に基づいて、一般化されたチャートから特定の判断チャートを引出すことができる。エラー記憶テーブルにとって重要なのはそのテーブルエントリを支配するルールである。これらのルールはテーブルが表わすサブブロック内で利用可能なスペア数に基づいている。
【００３３】
二つの一般的なルールがチャートエントリを支配する。第１に、所与のカラムアドレス上の故障数が利用可能なスペアロー数を越える場合には、スペアカラムを使用しなければならない。この状況が図２Ａに示されている。第２に、所与のローアドレス上の故障数が利用可能なスペアカラム（すなわち、Ｉ/Ｏ）数を越える場合には、スペアローを使用しなければならない。この状況が図２Ｂに示されている。スペアＩ/Ｏが利用可能な場合には、追加テーブルエントリルールが必要である。多数のＩ/Ｏが同じアドレスに故障を有し利用可能なスペアＩ/Ｏ数を越える場合には、スペアローを使用しなければならない。
【００３４】
これらの一般的ルールを頭に入れて、図１Ａ、図１Ｂのチャートは一般的にその水平方向にＩ/Ｏ（すなわち、カラム）情報、および垂直方向にロー情報を有するようにされている。垂直１０２および水平１０４チャートヘッダーは、それぞれ、対応するロー更新テーブルおよびカラム更新テーブルの現在状態を記述する（図３Ａおよび３Ｂ参照）。ヘッダーは各テーブルが、１）処理される故障の現在のローアドレスおよびカラムアドレスまたはそのいずれかに一致するエントリを含まずかつ満杯ではない、２）処理される故障の現在のローアドレスおよびカラムアドレスまたはそのいずれかに一致するエントリを含む、および３）満杯であって処理される故障の現在のローアドレスおよびカラムアドレスまたはそのいずれかに一致するエントリを含まない、かどうかをを示す。ヘッダーはさまざまなテーブルエントリに対する現在のローおよびカラムエラーカウントを示す情報も含んでいる。
【００３５】
判断チャートの各ブロック１０６はロー更新およびカラム更新テーブルを現在のテーブルエントリおよび処理される故障のアドレス位置に基づいてどのように修正すべきかを規定する情報を含んでいる。左下ブロックエントリ１０８はロー更新テーブルコマンドに対応し、左上セルエントリ１１０はカラム更新テーブルコマンドを表わし、右下セルエントリ１１２は空であるかあるいは“ＮＧ”にセットされて処理されるメモリコアが“no good”すなわち修正不能であることを示す。
【００３６】
図３Ａおよび３Ｂは、それぞれ、ロー更新テーブルおよびカラム更新テーブル（すなわち、Ｉ/Ｏ更新）を示す。テーブルサイズおよびテーブルエントリサイズは利用可能なスペアロー数および所与のサブブロック内で利用可能なカラム（すなわち、Ｉ/Ｏ）数によって決まる。二つのスペアローおよび一つのスペアＩ/Ｏを有するサブブロックの実例を続けて、テーブルローエントリ数は４である。利用可能な各スペアローに対する二つのエントリ、プラス二つの利用可能なスペアローと利用可能な単一スペアカラムの各交点に対する二つのエントリ。同様に、テーブルカラムエントリ数は３である。利用可能な単一スペアカラムに対する一つのエントリ、プラス利用可能な単一スペアカラムと二つの利用可能なスペアローの各交点に対する二つのエントリ。
【００３７】
ロー更新テーブルおよびカラム更新テーブルの各々が現在のエラーカウントに対するエントリを含んでいる。実例におけるエラーカウントエントリのサイズは２ビットである。各テーブルは修正されるロー故障およびカラム故障のアドレスに対する対応するエントリも有する。最後に、ロー更新テーブルは所与のローリペアを対応するカラムリペアとリンクするエントリを含んでいる。この例に対して、カラムＩＤエントリのサイズはやはり２ビットである。エラー記憶テーブルのサイズおよびそのさまざまなエントリに関する詳細は後の“エラーテーブルサイズの計算”のセクションに詳細に記載されている。
【００３８】
従来は、リペア解析アルゴリズムがサブブロックを固定するためにスペアローおよびカラムをどのように配列するかを適切に選択するために、故障メモリセルの全アドレスを記憶する必要がある。ここに記載された技術を利用することにより、各スペアセルすなわちＩ/Ｏはいくつかのローを同時に固定することができ、いくつかのアドレスをエラーテーブル内の単一アドレスとして表わすことができる。下記の例では、各スペアローはメモリ内の四つの隣接ローを修正するようにアドレスすることができる。
【００３９】
エラー記憶テーブルの所要サイズをさらに低減する他の技術はエラーテーブル内に冗長エラーを記憶せず、所与のアドレスがエラーを有する回数をカウントし、既に必要とされているスペアローまたはスペアカラムに沿っていると確認されたエラーは記憶しないことを含んでいる。これらの技術は結合されてエラー記憶プロセス中に制限されたリペア解析を実施し、所与のメモリコアを修正するのに使用しなければならないスペアセルすなわちＩ/Ｏの予選択を遂行する。また、この技術によりテスト中に修正不能メモリデバイスを早期に検出することができ、貴重なテスト時間およびリソースが節減される。
【００４０】
実例
図４Ａおよび４Ｂはいくつかの識別された故障メモリ個所を有するサブブロックの実例を示す。図４Ａは１0個のエラーＡからＪを有するサブブロックを示す。図４Ｂに示すテーブルはサブブロック内のエラーが存在するローおよびカラム個所のリストである。前記したように、実例における各スペアローはサブブロック内の四つのローを置換することができる。図５Ａの（ａ）、（ｂ）から５Ｃの（ａ）、（ｂ）は、図４Ａに示す典型的なサブブロック上で前記したエラー記憶技術を実行する時に実施されるさまざまなステップを示す。
【００４１】
図５Ａの（ａ）、（ｂ）について、第１のエラーＡが検出されると、ロー部およびＩ/Ｏテーブルが現在のエントリについてチェックされる。エントリが存在しなければ、ステップ１として図示するように、テーブルが対応するローエントリおよびカラムエントリにより更新される。エラーＡはローアドレス４上で検出される最初のエラーであり、それはアドレス１にマッピングされるため、エラーカウントが１に増分される。対応するカラムエントリがアドレス１および１のエラーカウントを有してなされる。ＩＤリンクはローアドレスをカラムアドレスにリンクする。対応するカラムアドレスエントリがＩ/Ｏテーブル内のＩＤ＝０位置においてなされるため、このエントリは同じＩＤを使用してローテーブルエントリ内でリンクされる。
【００４２】
リスト内の次のエラーはＢである。このエラーはサブブロックのローアドレス２およびカラムアドレス３で見つけられる。これらの個所はローすなわちＩ/Ｏ更新テーブル内のいかなるローエントリまたはカラムエントリとも一致しないため、テーブルは現在のエラー情報により再び更新される。これはステップ２として図示されている。
【００４３】
図５Ｂの（ａ）、（ｂ）はエラー処理の次の段階を示す。例において、次に検出されるエラーはエラーＣである。このエラーはローアドレス２およびカラムアドレス１において見つけられる。このエラー個所はロー更新テーブル内の現在のエントリに一致し、そのためローアドレス２を有するロー更新テーブルエントリのエラーカウントは２に増分される。これはステップ３として図示されている。前記した一般的ルールを適用すると、ロー２に対するエラーカウントは利用可能なカラムスペア数（本例において１）を越えるため、ローは二つの利用可能なスペアローの一方により固定しなければならない。ロー２上の全てのエラーが割り当てられたロースペアにより固定されるため、エラーＣに対する対応するエントリはカラムテーブルに追加する必要がない。
【００４４】
次の検出エラーはエラーＤである。このエラーは既存のいかなるエラーアドレスとも一致せず、テーブルは新しいエラー情報により更新される。これはステップ４として図示されている。エラーＤに対するエントリを行った後でカラムエントリテーブルは満杯である。したがって、任意の現在カラムアドレスエントリと一致しない任意の追加検出エラーによりこのデバイスは修正不能とされ、テストサイクルを停止することができる。
【００４５】
例における次の検出エラーはエラーＥである。このエラーはＩ/Ｏ更新テーブル内の現在のカラムエントリと一致するが、いかなる現在のローテーブルエントリとも一致しない。したがって、ローテーブルは新しいエラー情報により更新される。カラムＩＤエラーＥローテーブルエントリは０にセットされ、それはカラム１に関連するＩ/Ｏテーブル識別子に対応する。ＩＤ＝０に対するエラーカウントは２に増分されて追加検出カラムエラーを記録する。これらの更新はステップ５に図示されている。
【００４６】
図５Ｃの（ａ）、（ｂ）はエラー記憶プロセスの次の段階を示す。例における次の検出エラーはエラーＦである。このエラーはサブブロックのロー３およびカラム１において見つけられる。このエラーは２のエラーカウントを有するカラムエントリ（ＩＤ＝０）に一致する。このエラーによりカラムエントリのエラーカウントは利用可能なロースペア数を越える。再び前記した一般的ルールを適用すると、利用可能な単一カラムスペアがエラーを固定するために割り当てられる。割り当てられたスペアカラムによりエラーが固定されるため、ローエントリテーブル内で対応するエントリを行う必要がない。
【００４７】
増分されたエラーカウント（３）が利用可能なスペアロー数（２）を越えなければ、デバイスは修正不能であると確認されているのは重要なことである。その理由はローエントリテーブルが満杯であることであり、したがって、ローアドレス３に対する故障情報を追加するようにローテーブルを更新することができない。テーブルは全ての修正可能な（および、修正不能ないくつかの）エラーパターンが一致するようなサイズとされる。したがって、テーブルエントリを越えることは修正不能なデバイスをテストプロセスの早期に識別するのを助ける。
【００４８】
例における次の三つのエラーＧ，ＨおよびＩは全てが既存のエントリに一致し、したがって、記憶判断プロセスにおいて無視される。同一エラーはリペア解析プロセスにおいて全く考慮する必要がない。例における最後のエラーＪは新しいエラーであるが、前に割り当てられたロースペアにより修正される。この事実はローテーブル内のエラーカウントエントリにより識別することができる。２の値を有するローエントリ内の全てのエラーカウントがスペアローを使用しなければならず、それはこの値が利用可能なスペアカラム数を超えるためである。３のエントリを有する全てのカラムエントリにはカラムスペアを固定しなければならず、それはこの値が利用可能なスペアロー数を超えるためである。
【００４９】
全てのエラーが処理されておりエラー記憶テーブルが完了しておれば、リペア解析アルゴリズムはテーブル結果を解釈して成功するリペアを遂行できるかどうかを確認する。図６はリペア解析がどのようにエラー記憶テーブルを解釈してリペアを遂行するかを示す。エラー記憶テーブルのカラム更新部を調べると、スペアカラムＣ１がカラムアドレス１を修正するのに使用され、それはこのエントリに対するエラーカウント（例えば、３）が利用可能なスペアロー数（例えば、２）を越えるためである。次に、二つの利用可能なスペアローＲ１の一方がローアドレス２を修正するのに使用される。このローアドレスに対するエラーカウントエントリ（例えば、２）は利用可能なスペアカラム数（例えば、１）を越えるため、再び、スペアローが割り当てられる。
【００５０】
最後に、最終的に利用可能なスペアローがどのように割り当てられるかを確認するために、エラーテーブルのロー更新部が調べられる。既に割り当てられたスペアカラムＣ１はカラムＩＤ＝０を有するカラムアドレス１に割り当てられたことを思い出していただきたい。したがって、カラムＩＤ＝０を有する全てのローアドレスエラーエントリが既に割り当てられたスペアカラムＣ１により修正される。ローテーブルを調べることによりローアドレス４の記録されたエラーを除く全エラーが割り当てられたスペアカラムＣ１または割り当てられたスペアローＲ１により修正されることが示される。したがって、最終的に利用可能なスペアローＲ２がロー４内のリペアエラーＤに割り当てられ、サブブロック内の全エラーがスペアメモリセルすなわちＩ/Ｏによりうまく修正される。
【００５１】
実例のプロセスフロー図
図７はエラー記憶プロセスの典型的な実施例を示すトップレベルフロー図である。プロセスはアイドルモードと定義されるステップ７０２で開始する。次に、ステップ７０４においてエラー記憶（ＥＳ）テーブル情報をメモリ、例えば、メモリチップ上に含まれるＳＲＡＭからフェッチするかどうか決定される。ＥＳ情報をフェッチすると判断がなされなければプロセスはアイドル状態７０２に戻るが、フェッチすると判断されればステップ７０６に移ってＳＲＡＭからＥＳ情報が読み出される。ＳＲＡＭからＥＳ情報を読み出した後でプロセスはステップ７０８に移り、そこで更新されたＥＳ情報をＳＲＡＭに書き込む判断がなされる。ＥＳ情報を更新すると判断されれば、ステップ７１０においてＥＳテーブルが更新され、ステップ７０２においてプロセスはアイドル状態に戻る。ＥＳテーブルが更新されなければ、ステップ７１２においてエラーテストおよび処理が開始する。
【００５２】
ステップ７１２においてサブブロックがテストされ、存在する場合の、Ｉ/Ｏ入力上でアクティブなエラー信号数が決定される。二つ以上のエラー信号が検出される場合には、プロセスはステップ７２０に移り二つ以上のエラー信号を処理するルーチンが実行される。一つ以下のエラー信号が検出される場合には、プロセスはステップ７１４に移り、そこでちょうど一つだけのエラー信号が検出されているか確認される。ちょうど一つだけのエラー信号が検出される場合には、プロセスはステップ７１８に移りちょうど一つだけのエラー信号を処理するルーチンが実行される。エラーが検出されなければ現在のサイクルに対してなんのアクションもとられず、プロセスはステップ７１６を通ってステップ７０８に移りそこでＳＲＡＭ内のＥＳテーブルを更新する判断が再びなされる。ステップ７１２からステップ７２０においてエラー信号を検出して処理するプロセスが再び実行される。
【００５３】
図８は一つのメモリセルエラーしか検出されない場合にエラーを処理する典型的なルーチンのフロー図である。図示されたステップのいくつかは一つのスペアカラム（すなわち、Ｉ/Ｏ）および二つのスペアローを有する冗長回路を含む実例に特有のものである。図に示す一般的概念は任意数のスペアローおよびカラムを有する冗長回路に拡張できることが理解される。
【００５４】
ルーチンは、例えば、図７に示すトップレベルプロセスのステップ７１８から呼び出されているステップ８０２で開始される。ステップ８０４において、エラーのアドレスがロー更新テーブル内のエントリと比較されて、ロー一致が存在するかどうか確認される。ロー一致が存在すれば、ルーチンはステップ８０６から８２２まで進む。これらのステップにおいて、対応するＩ/Ｏアドレスが存在するかどうかがステップ８０８および８１４において確認され、そうであればＩ/Ｏカウントが２に等しいかどうかがステップ８１０および８１６において確認される。Ｉ/Ｏカウントが２に等しい場合、ステップ８０６において確認されるローカウントが１に等しければ、ステップ８１２においてローカウントは増分されＩ/Ｏカウントは３にセットされる。しかしながら、ステップ８０６においてローカウントが１に等しくなければ、ステップ８１８においてＩ/Ｏカウントだけが増分される。
【００５５】
ステップ８０８および８１４においてＩ/Ｏ一致が見つからないか、またはステップ８１０および８１６においてＩ/Ｏカウントが２に等しくなく、ステップ８０６においてローカウントが１に等しければ、ステップ８２２においてローカウントだけが増分される。しかしながら、ステップ８０６においてローカウントが１に等しくなければ、ステップ８２０においてなんのアクションもとられない。
【００５６】
ステップ８０４においてロー一致が存在しなければ、ステップ８３８においてルーチンはロー更新テーブルが満杯であるかどうかを確認する。ローテーブルが満杯でなければ、ステップ８２４においてルーチンはＩ/Ｏアドレス一致についてＩ/Ｏ更新テーブルを調べる。Ｉ/Ｏアドレス一致が見つかれば、ステップ８２６においてＩ/Ｏカウントが調べられる。Ｉ/Ｏカウントが２（例におけるスペアロー数）よりも大きければ、ステップ８２８においてＩ/Ｏカウントが３にセットされ、そうでなければ、ステップ８３０において新しいローエントリが追加され対応するＩ/Ｏカウントが増分される。ステップ８２４においてＩ/Ｏ一致が見つからなければ、ステップ８３２においてＩ/Ｏテーブルが満杯であるかどうか確認される。テーブルが満杯であれば、ステップ８３４において調べられるメモリコアは修正不能としてタグ付けされ、そうでなければ、ステップ８３６において新しいローおよびＩ/Ｏテーブルエントリが作られる。
【００５７】
ステップ８３８においてローテーブルは満杯であることが判れば、ステップ８４０においてルーチンは対応するＩ/Ｏアドレス一致を捜す。一致が見つからなければ、ステップ８３４においてメモリコアはやはりリペア修正不能としてタグ付けされる。Ｉ/Ｏ一致が見つかれば、ステップ８４２において対応するエラーカウントが調べられる。エラーＩ/Ｏエラーカウントが１であれば、ロー更新テーブル内でこれ以上追加スペースは利用できないため、メモリコアはリペア修正不能としてタグ付けされる。しかしながら、ステップ８４２においてＩ/Ｏカウントが１に等しければ、Ｉ/Ｏカウントは３にセットされる。各テーブル更新が完了した後で、ステップ８４６において制御は図７に示す主エラー処理ルーチンへ戻る。
【００５８】
図９は二つ以上のメモリセルエラーが検出される場合の典型的なエラー処理ルーチンのフロー図である。ここでも、図示するステップのいくつかは一つのスペアカラム（すなわち、Ｉ/Ｏ）および二つのスペアローを有する冗長回路を含む実例に特定的なものである。前記したように、図示する一般的概念は任意数のスペアローおよびカラムを有する冗長回路に拡張することができる。
【００５９】
ルーチンは図７に示すトップレベルプロセスの、例えば、ステップ７１８から呼び出されているステップ９０２で開始する。ステップ９０４においてロー更新テーブルが調べられる。ロー一致が見つかれば、ステップ９０６においてローエラーカウントが２にセットされる。しかしながら、ロー一致が見つからなければ、ステップ９０８においてロー更新テーブルが満杯であるかどうか確認される。テーブルが満杯であれば、ステップ９１０においてテストされるメモリコアは修正不能としてタグが付される。ステップ９０８においてテーブルが満杯でなければ、カラムＩＤ値が３にセットされエラーカウントが２にセットされた新しいテーブルエントリが作られる。ステップ９１４において制御は図７に示す主エラー処理ルーチンへ戻る。
【００６０】
エラーテーブルサイズの計算
前記したことから、エラーテーブルは全ての修正可能（および、いくつかの修正不能）エラーパターンが一致するようなサイズとされることを思い出していただきたい。次に、この結果を達成するようにエラーテーブルのサイズ計算することができる方法について説明する。図１０はＲローおよびＣカラムを有するメモリサブブロックを示す。サブブロックは解析ブロック内の故障メモリセルを修正するスペアカラムＳCおよびスペアローＳRを含んでいる。
【００６１】
前記したように、解析ブロック内に含まれる各サブブロックに対して別々のエラー記憶テーブルが必要である。図３Ａおよび３Ｂは、それぞれ、エラーテーブルのロー更新部およびカラム（すなわち、Ｉ/Ｏ）更新部を示す。テーブルエントリのフォーマットはアドレス/エラーカウント対を含んでいる。追加ＩＤエントリが最も多くのスペアを有する更新テーブル内（ローまたはカラム）に含まれる。ＩＤエントリはエラー記憶テーブルのロー部およびカラム部間のリンクを提供する。
【００６２】
下記の等式はローおよびカラム更新テーブル内のカウント/アドレス対のサイズを計算するのに使用することができる。
【数２】
0003878062.tif 000002
【００６３】
リンクＩＤの値およびリンクＩＤの必要なＮＩＤ数は次式を使用して計算することができる。
【数３】
0003878062.tif 000003
0003878062.tif 000004
【００６４】
前式を使用して、エラー記憶テーブルのサイズを次のように計算することができる。
【数４】
0003878062.tif 000005
【００６５】
ある項は典型的な実施例を説明する便宜上使用されているが、ここに記載された一般的概念を制限するために使用されるものではない。例えば、メモリの“ロー”部または“カラム”部またはメモリスペアのタイプの任意特定の参照はメモリのこれらの部分またはメモリスペアのタイプのいずれかを包含するものと解釈することができる。メモリスペアの場合には、一タイプのメモリスペアが所与のメモリセル個所を修正するのに使用されなければ、他方の相補型メモリスペアをその個所を修正するのに使用できる点において、特定の用語はメモリスペアの相補型を表わす。さらに、“セル”または“メモリセル”という用語はメモリ内の一つ以上のメモリセルまたは位置を表わすものと解釈することができる。
【００６６】
いくつかの典型的な実施例に関してさまざまな側面について説明してきた。これらの実施例の理解を容易にするために、コンピュータシステムやマイクロコントローラの要素により実施することができるアクションのシーケンスにより多くの側面が説明された。例えば、各実施例において、さまざまなアクションは特殊化された回路（例えば、特殊化された機能を実施するように相互接続された論理ゲート）、一つ以上のプロセッサにより実行されるプログラム命令、または両者の組合せにより実施できることが認識される。
【００６７】
さらに、典型的な実施例はここに記載されている技術をプロセッサに実施させる適切なコンピュータ命令セットを記憶している任意形式のコンピュータ読取り可能記憶媒体の一部と考えることができる。したがって、さまざまな側面を多くの異なる形式で実施することができ、このような形式は全て記載された範囲内に入るものとする。さまざまな側面の各々に対して、実施例のこのような任意の形式をここでは記載されたアクションを実施する“ように論理構成されている”、あるいは記載されたアクションを実施する“論理”と言うことができる。
【００６８】
さまざまな典型的実施例について説明してきたが、当業者ならばこれらの実施例は単なる説明用であって他の多くの実施例が可能であることが理解される。発明の範囲は前記説明ではなく特許請求の範囲により明示され、特許請求の範囲内に入る全てのバリエーションはその中に包含されるものとする。
【００６９】
関連出願
本出願は35 U.S.C. §119(e)の元で、その全体内容が本開示の一部としてここに組み入れられている2001年7月8日に出願された米国特許出願第60/296,789号“Error Storage”に優先権を請求する。
【図面の簡単な説明】
【図１】Ａは、一般化されたエラー記憶判断チャートを示す図である。
Ｂは、エラー記憶判断チャートのブロック記述を示す図である。
【図２Ａ】利用可能なメモリスペアを使用する検出されたメモリセル故障の修正を示す図である。
【図２Ｂ】利用可能なメモリスペアを使用する検出されたメモリセル故障の修正を示す図である。
【図３Ａ】エラー記憶テーブルのローおよびカラム部を示す図である。
【図３Ｂ】エラー記憶テーブルのローおよびカラム部を示す図である。
【図４Ａ】いくつかの検出された故障メモリ個所を有するメモリの典型的な部分を示す図である。
【図４Ｂ】いくつかの検出された故障メモリ個所を有するメモリの典型的な部分を示す図である。
【図５Ａ】（ａ）は図４Ａおよび４Ｂに示すメモリの典型的な部分に対するエラー記憶プロセスのさまざまな段階を示す図、（ｂ）はエラー記憶プロセスのさまざまなＩＤリンクを示す図である。
【図５Ｂ】（ａ）は図４Ａおよび４Ｂに示すメモリの典型的な部分に対するエラー記憶プロセスのさまざまな段階を示す図、（ｂ）はエラー記憶プロセスのさまざまなＩＤリンクを示す図である。
【図５Ｃ】（ａ）は図４Ａおよび４Ｂに示すメモリの典型的な部分に対するエラー記憶プロセスのさまざまな段階を示す図、（ｂ）はエラー記憶プロセスのさまざまなＩＤリンクを示す図である。
【図６】図４Ａおよび４Ｂに示すメモリの典型的な部分の修正を示す図である。
【図７】エラー記憶プロセスの典型的な実施例を示すトップレベルフロー図である。
【図８】一つのメモリセルエラーしか検出されない時の典型的なエラー処理ルーチンのフロー図である。
【図９】二つ以上のメモリセルエラーが検出される時の典型的なエラー処理ルーチンのフロー図である。
【図１０】ＲローおよびＣカラムを有するメモリの一部を示す図である。
【符号の説明】
１０２  垂直チャートヘッダー
１０４  水平チャートヘッダー
１０６  ブロック
１０８  ブロックエントリ
１１０，１１２  セルエントリ
【図１】
0003878062.tif 000007
【図２Ａ】
0003878062.tif 000008
【図２Ｂ】
0003878062.tif 000009
【図３Ａ】
0003878062.tif 000010
【図３Ｂ】
0003878062.tif 000011
【図４Ａ】
0003878062.tif 000012
【図４Ｂ】
0003878062.tif 000013
【図５Ａ】
0003878062.tif 000014
【図５Ｂ】
0003878062.tif 000015
【図５Ｃ】
0003878062.tif 000016
【図６】
0003878062.tif 000017
【図７】
0003878062.tif 000018
【図８】
0003878062.tif 000019
【図９】
0003878062.tif 000020
【図１０】
0003878062.tif 000021