(57)【要約】メモリを分析および修復するための方法および装置が提示される。この方法は、少なくともメモリの一部分で検出された故障メモリセルをいくつかの種類のメモリの予備のうち１つのみを使用して修復しなければならないか、またはメモリ予備の種類のうちどれを使用しても修復できるかを判定するステップ（３０２、３０４、３０６）を含む。修復しなければならない新しいエラーが修復されなくなり、かつ故障メモリセルがスキップされなくなるまで、またはメモリが修復不能であると判定されるまで、いくつかの種類のメモリ予備のうち１つのみを使用して修復しなければならない故障メモリセルは繰返し修復され、いくつかの種類のメモリ予備のうちどれを使用しても修復できる故障メモリセルはスキップされる。
2004522250.tif 000002
【特許請求の範囲】
【請求項１】
メモリを分析および修復するための方法であって、
メモリの少なくとも一部分で検出された故障メモリセルを複数の種類のメモリの予備のうち１つのみを使用して修復しなければならないか、またはそれら複数の種類のメモリの予備のうちどれを使用しても修復できるかを判定するステップと、
修復しなければならない新しいエラーが修復されなくなり、かつ故障メモリセルがスキップされなくなるまで、またはメモリが修復不能であると判定されるまで、複数の種類のメモリの予備のうち１つのみを使用して修復しなければならない故障メモリセルを繰返し修復し、複数の種類のメモリの予備のうちどれを使用しても修復できる故障メモリセルはいずれもスキップするステップと、
修復しなければならない故障メモリセルを修復するときにスキップされた故障メモリセルのうち少なくとも１つを修復するステップと、
少なくとも１つのスキップされた故障メモリセルが修復されるたびに、故障メモリセルを修復しなければならないかを判定する前記ステップ、および修復しなければならない故障メモリセルを繰返し修復するステップを繰返す前記ステップとを含む、方法。
【請求項２】
複数の種類のメモリの予備のうち第１の種類はメモリの行および列の部分のうち一方を修復することができ、複数の種類のメモリの予備のうち第２の相補的な種類はメモリの行および列の部分のうち他方を修復することができる、請求項１に記載の方法。
【請求項３】
修復しなければならない故障メモリセルは、その総数が利用可能な相補的な種類のメモリの予備の数を超える故障メモリセルを有するメモリの、行または列の部分のそれぞれに故障メモリセルを含む、請求項２に記載の方法。
【請求項４】
メモリの前記少なくとも一部分は、
前記メモリをいくつかの分析ブロックに論理的に分けることによって形成され、各分析ブロックは、複数の種類のメモリの予備の各々の種類のうち少なくとも１つを完全に含む、請求項１に記載の方法。
【請求項５】
メモリの前記少なくとも一部分は、
各分析ブロックをいくつかのサブブロックに論理的に分けることによって形成され、各サブブロックは、それぞれの分析ブロックにおける、複数の種類のメモリの予備の各々が修復することのできるメモリセルの範囲に対応する領域にわたって延びる、請求項４に記載の方法。
【請求項６】
各サブブロックについての故障メモリセルの情報を、メモリに別々のアドレス指定可能なエントリとして記憶するステップをさらに含む、請求項５に記載の方法。
【請求項７】
各サブブロックについての故障メモリセルの情報は、分析および修復されているメモリの一部分に記憶される、請求項６に記載の方法。
【請求項８】
メモリ内のアドレス指定可能なエントリの各々は、それぞれのサブブロックのエラー記憶テーブルに対応し、各エラー記憶テーブルは、メモリの行および列の部分のそれぞれで検出されたいくつかの故障メモリセルに関係する情報を記憶するための行エントリおよび列エントリを有する、請求項６に記載の方法。
【請求項９】
メモリの行および列の部分のそれぞれで検出された前記いくつかの故障メモリセルに関係する情報を、メモリに記憶された少なくとも１つのエラー記憶テーブルから読出すステップをさらに含み、
メモリの前記少なくとも一部分で検出された前記故障メモリセルは、前記いくつかの故障メモリセルに関係する情報が読出される前記少なくとも１つのエラー記憶テーブルに対応するサブブロックに位置する、請求項８に記載の方法。
【請求項１０】
前記メモリで検出されたすべての故障メモリセルが修復されるまで、または前記メモリが修復不能と判定されるまで、前記メモリの別々の部分上で前記方法の前記ステップの各々を行なうステップをさらに含む、請求項９に記載の方法。
【請求項１１】
前記方法の前記ステップの各々を前記メモリの別々の部分上で行なうことは、別々の部分の各々につき同時に起こる、請求項１０に記載の方法。
【請求項１２】
複数の種類のメモリの予備のうち１つのみを使用して修復しなければならない故障メモリセルを繰返し修復する前記ステップは、
前記少なくとも１つのエラー記憶テーブルの行エントリまたは列エントリが空であるか、またはその行もしくは列エントリによって識別されたエラーが修復されたかを判定するステップと、
もしその行または列エントリが空でなく、識別されたエラーも修復されていない場合、識別されたエラーを修復しなければならないかを判定し、そうでなければ前記少なくとも１つのエラー記憶テーブルの次の行または列エントリが空であるか、または次の行エントリもしくは列エントリによって識別されたエラーが修復されたかを判定するステップと、
もし識別されたエラーを修復しなければならない場合、複数の種類のメモリの予備のうち１つのみの予備が利用可能であるかを判定し、そうでなければ識別されたエラーの修復をスキップし、さらに前記少なくとも１つのエラー記憶テーブルの次の行エントリまたは列エントリが空であるか、または次の行エントリもしくは列エントリによって識別されたエラーが修復されたか、を判定するステップと、
複数の種類のメモリの予備のうちその１つのみの予備が利用可能である場合、識別されたエラーを複数の種類のメモリの予備のうちその１つのみの予備で修復し、さらに前記少なくとも１つのエラー記憶テーブルの次の行エントリまたは列エントリが空であるか、または次の行エントリもしくは列エントリによって識別されたエラーが修復されたかを判定し、そうでなければそのメモリが修復不能であると判定するステップとを含み、
前記少なくとも１つのエラー記憶テーブルの行エントリまたは列エントリが空であるか、または行もしくは列エントリによって識別されたエラーが修復されたかを判定するステップは、前記少なくとも１つのエラー記憶テーブルのすべての行エントリおよび列エントリが処理されるまで繰返される、請求項８に記載の方法。
【請求項１３】
修復しなければならない故障メモリセルを修復するときにスキップされた故障メモリセルのうち少なくとも１つを修復する前記ステップは、
スキップされた故障メモリセルのうち前記少なくとも１つの最初に検出された故障メモリセルのみを修復するステップを含む、請求項８に記載の方法。
【請求項１４】
最初に検出された故障メモリセルのみを修復する前記ステップは、
前記少なくとも１つのエラー記憶テーブルの行エントリまたは列エントリが空であるかを判定するステップと、
もしその行または列エントリが空でなければ、その行エントリまたは列エントリによって識別されたエラーが修復されたかを判定し、そうでなければ前記少なくとも１つのエラー記憶テーブルの次の行エントリまたは列エントリが空であるかを判定するステップと、
もし識別されたエラーが修復されていなければ、複数の種類のメモリの予備のうち第１の種類が利用可能であるかを判定し、そうでなければ前記少なくとも１つのエラー記憶テーブルの次の行エントリまたは列エントリが空であるかを判定するステップと、
もし複数の種類のメモリの予備のうち第１の種類が利用可能であれば、識別されたエラーをその第１の種類の予備で修復し、そうでなければ複数の種類のメモリの予備のうち第２の相補的な種類が利用可能であるかを判定するステップと、
もし複数の種類のメモリの予備のうち第２の種類が利用可能であれば、識別されたエラーをその第２の種類の予備で修復し、そうでなければそのメモリを修復不能と判定するステップとを含み、
前記少なくとも１つのエラー記憶テーブルの行エントリまたは列エントリが空であるかを判定する前記ステップは、前記少なくとも１つのエラー記憶テーブルの少なくともすべての行エントリまたはすべての列エントリが処理されるまで繰返される、請求項１３に記載の方法。
【請求項１５】
前記少なくとも１つのエラー記憶テーブルの行エントリまたは列エントリのいずれかが空であると判定されると、空であるその種類における次のエントリは処理する必要がない、請求項１４に記載の方法。
【請求項１６】
メモリの行の部分はメモリの少なくとも１つの行を含み、メモリの列の部分はメモリの少なくとも１つの列を含む、請求項２に記載の方法。
【請求項１７】
メモリの列の部分は少なくとも１つの入出力（Ｉ／Ｏ）装置を含み、前記少なくとも１つのＩ／Ｏ装置は、メモリの少なくとも１つの列のための入力および出力経路を提供する、請求項２に記載の方法。
【請求項１８】
修復しなければならない故障メモリセルを修復するときにスキップされた故障メモリセルのうち少なくとも１つを修復する前記ステップは、
複数の種類のうちどの種類のメモリの予備が、複数の種類のメモリの予備のどれを使用しても修復できる故障メモリセルを最も多く修復できるかを判定するステップと、
判定された種類の利用可能な予備でそれら最も多くの故障メモリセルを置換えるステップとを含む、請求項１に記載の方法。
【請求項１９】
メモリの少なくとも一部分で検出された故障メモリセルを修復しなければならないかを判定することに先立って、前記方法は、
メモリの前記少なくとも一部分における複数の種類のメモリの予備のいずれかが機能しないかを判定するステップと、
メモリの前記少なくとも一部分における複数の種類のメモリの予備の配置に基づいて、機能しないメモリの予備に関係する情報をまとめてグループ分けするステップとをさらに含む、請求項１に記載の方法。
【請求項２０】
機能しないメモリの予備に関係する情報をまとめてグループ分けする前記ステップは、
メモリの前記少なくとも一部分のいくつかの部分の機能しないメモリの予備に関係する情報を、もしそれらの部分が複数の種類のメモリの予備のそれぞれの種類のうち少なくとも１つによって修復可能である場合、まとめてＯＲ演算するステップを含む、請求項１９に記載の方法。
【請求項２１】
メモリを分析および修復するための装置であって、
メモリの少なくとも一部分で検出された故障メモリセルを複数の種類のメモリの予備のうち１つのみを使用して修復しなければならないか、または複数の種類のメモリの予備のうちどれを使用しても修復できるかを判定する論理と、
修復しなければならない新しいエラーが修復されなくなり、かつ故障メモリセルがスキップされなくなるまで、またはそのメモリが修復不能と判定されるまで、複数の種類のメモリの予備の１つのみを使用して修復しなければならない故障メモリセルを繰返し修復し、複数の種類のメモリの予備のうちどれを使用しても修復できる故障メモリセルはいずれもスキップする論理と、
修復しなければならない故障メモリセルを修復するときにスキップされた故障メモリセルのうち少なくとも１つを修復する論理と、
少なくとも１つのスキップされた故障メモリセルが修復されるたびに、故障メモリセルを修復しなければならないかを判定し、修復しなければならない故障メモリセルを繰返し修復する論理とを含む、装置。
【請求項２２】
複数の種類のメモリの予備のうち第１の種類はメモリの行および列の部分のうち一方を修復することができ、複数の種類のメモリの予備のうち第２の相補的な種類はメモリの行および列の部分のうち他方を修復することができる、請求項２１に記載の装置。
【請求項２３】
修復しなければならない故障メモリセルは、その総数が利用可能な相補的な種類のメモリの予備の数を超える故障メモリセルを有するメモリの、行または列の部分のそれぞれに故障メモリセルを含む、請求項２２に記載の装置。
【請求項２４】
前記メモリをいくつかの分析ブロックに論理的に分ける論理をさらに含み、各分析ブロックは、複数の種類のメモリの予備の各々の種類の少なくとも１つを完全に含む、請求項２１に記載の装置。
【請求項２５】
分析ブロックの各々をいくつかのサブブロックに論理的に分ける論理とをさらに含み、各サブブロックは、それぞれの分析ブロックにおける、複数の種類のメモリの予備の各々が修復可能であるメモリセルの範囲に対応する領域にわたって延びる、請求項２４に記載の装置。
【請求項２６】
各サブブロックについての故障メモリセルの情報をメモリの別々のアドレス指定可能なエントリとして記憶する論理をさらに含む、請求項２５に記載の装置。
【請求項２７】
各サブブロックについての故障メモリセルの情報は、分析および修復されているメモリの一部分に記憶される、請求項２６に記載の装置。
【請求項２８】
サブブロックのそれぞれに対応するメモリ内のアドレス指定可能なエントリの各々についてのエラー記憶テーブルをさらに含み、各エラー記憶テーブルは、メモリの行および列の部分のそれぞれで検出されたいくつかの故障メモリセルに関係する情報を記憶するための行および列エントリを有する、請求項２６に記載の装置。
【請求項２９】
メモリの行および列の部分のそれぞれで検出された前記いくつかの故障メモリセルに関係する情報を、メモリに記憶された少なくとも１つのエラー記憶テーブルから読出す論理をさらに含み、
メモリの前記少なくとも一部分で検出された前記故障メモリセルは、前記いくつかの故障メモリセルに関係する情報が読出される前記少なくとも１つのエラー記憶テーブルに対応するサブブロックに位置する、請求項２８に記載の装置。
【請求項３０】
メモリで検出されたすべての故障メモリセルが修復されるまで、またはそのメモリが修復不能であると判定されるまで、前記メモリの別々の部分で検出された故障メモリセルが修復されたかを判定する論理をさらに含む、請求項２９に記載の装置。
【請求項３１】
前記論理は、故障メモリセルが前記メモリの別々の部分で同時に修復されたかを判定する、請求項３０に記載の装置。
【請求項３２】
前記少なくとも１つのエラー記憶テーブルの行エントリまたは列エントリが空であるか、またはその行エントリもしくは列エントリによって識別されたエラーが修復されたかを判定する論理と、
その行または列エントリが空でなく、識別されたエラーも修復されていないとき、識別されたエラーを修復しなければならないかを判定する論理と、
行エントリまたは列エントリが空であるか、または識別されたエラーが修復されているとき、前記少なくとも１つのエラー記憶テーブルの次の行エントリまたは列エントリが空であるか、または次の行エントリもしくは列エントリによって識別されたエラーが修復されたかを判定する論理と、
識別されたエラーを修復しなければならないとき、複数の種類のメモリの予備のうちその１つのみの予備が利用可能であるかを判定する論理と、
識別されたエラーを修復する必要がないとき、識別されたエラーを修復することをスキップし、前記少なくとも１つのエラー記憶テーブルの次の行エントリまたは列エントリが空であるか、または次の行エントリもしくは列エントリによって識別されたエラーが修復されたかを判定する論理と、
複数の種類のメモリの予備のうちその１つのみの予備が利用可能であるとき、識別されたエラーを複数の種類のメモリの予備のうちその１つのみの予備で修復し、前記少なくとも１つのエラー記憶テーブルの次の行エントリまたは列エントリが空であるか、または次の行エントリもしくは列エントリによって識別されたエラーが修復されたかを判定する論理と、
複数の種類のメモリの予備のうちその１つのみの予備が利用可能でないとき、そのメモリは修復不能であると判定する論理とをさらに含む、請求項２８に記載の装置。
【請求項３３】
修復しなければならない故障メモリセルを修復するときにスキップされた故障メモリセルのうち少なくとも１つを修復する前記論理は、
スキップされた故障メモリセルのうちの前記少なくとも１つ最初に検出された故障メモリセルのみを修復する論理を含む、請求項２８に記載の装置。
【請求項３４】
最初に検出された故障メモリセルのみを修復する前記論理は、
前記少なくとも１つのエラー記憶テーブルの行エントリまたは列エントリが空であるかを判定する論理と、
その行エントリまたは列エントリが空でないとき、その行エントリまたは列エントリによって識別されたエラーが修復されたかを判定する論理と、
その行エントリまたは列エントリが空であるとき、前記少なくとも１つのエラー記憶テーブルの次の行エントリまたは列エントリが空であるかを判定する論理と、
識別されたエラーが修復されていないとき、複数の種類のメモリの予備のうち第１の種類が利用可能であるかを判定する論理と、
識別されたエラーが修復されているとき、前記少なくとも１つのエラー記憶テーブルの次の行エントリまたは列エントリが空であるかを判定する論理と、
第１の種類の予備が利用可能であるとき、識別されたエラーをその第１の種類の予備で修復する論理と、
第１の種類の予備が利用可能でないとき、複数の種類のメモリの予備のうち第２の相補的な種類が利用可能であるかを判定する論理と、
第２の種類の予備が利用可能であるとき、識別されたエラーをその第２の種類の予備で修復する論理と、
第２の種類の予備が利用可能でないとき、そのメモリが修復不能であると判定する論理とを含む、請求項３３に記載の装置。
【請求項３５】
もし前記少なくとも１つのエラー記憶テーブルの行エントリまたは列エントリのいずれかが空であると判定されると、空であるその種類の次のエントリは処理する必要がない、請求項３４に記載の装置。
【請求項３６】
メモリの行の部分はメモリの少なくとも１つの行を含み、メモリの列の部分はメモリの少なくとも１つの列を含む、請求項２２に記載の装置。
【請求項３７】
メモリの列の部分は少なくとも１つの入出力（Ｉ／Ｏ）装置を含み、前記少なくとも１つのＩ／Ｏ装置はメモリの少なくとも１つの列のための入力および出力経路を提供する、請求項２２に記載の装置。
【請求項３８】
修復しなければならない故障メモリセルを修復するときにスキップされた故障メモリセルのうち少なくとも１つを修復する前記論理は、
複数の種類のうちどの種類のメモリの予備が、複数の種類のメモリ予備うちどれを使用しても修復できる故障メモリセルを最も多く修復できるかを判定する論理と、
判定された種類の利用可能な予備でそれら最も多くの故障メモリセルを置換える論理とを含む、請求項２１に記載の装置。
【請求項３９】
メモリの前記少なくとも一部分における複数の種類のメモリの予備のいずれかが機能しないかを判定する論理と、
メモリの前記少なくとも一部分における複数の種類のメモリの予備の配置に基づいて、機能しないメモリの予備に関係する情報をまとめてグループ分けする論理とをさらに含む、請求項２１に記載の装置。
【請求項４０】
機能しないメモリの予備に関係する情報をまとめてグループ分けする前記論理は、
メモリの前記少なくとも一部分におけるいくつかの部分についての機能しないメモリセルに関係する情報を、もしそれらの部分が複数の種類のメモリの予備のそれぞれの種類のうち少なくとも１つによって修復可能であれば、まとめてＯＲ演算する論理を含む、請求項３９に記載の装置。
【発明の詳細な説明】
【０００１】
【背景】
説明されるのはメモリを分析および修復するための方法および装置である。特に、冗長メモリ回路を有するメモリの、故障メモリセルを分析および修復するための方法および装置が提示される。
【０００２】
最も一般的な意味では、メモリはいくつかの行（Ｍ）およびいくつかの列（Ｎ）を有するメモリセルの２次元のアレイとして規定することができる。行と列との交差点の各々が記憶された情報の１出力ビットを作る。多くの場合、いかなる所定のときでもメモリから２ビット以上の情報が出力されるのが望ましい。これを達成するための２つの方法は、アレイ構造全体を複製して付加的な出力ビットを提供するか、またはアレイの１つの次元を（たとえばＭまたはＮ次元で）さまざまなサブブロックに細分し、メモリアレイがアクセスされるたびに各々のサブブロックが１出力ビットを提供するようにすることである。
【０００３】
細分されたものを３つの変数、Ｒ、ＣおよびＩ／Ｏを使用して表わしてもよく（典型的にはＲ×Ｃ×ＩＯとして表記される）、ＲおよびＣは、それぞれアレイの行の数および列の数を示し、アレイへの入力として働く。Ｉ／Ｏ変数は、アレイの行と列の「交差点」からの出力である、ビットの数を表わしてもよい。実際には、Ｉ／Ｏビットはアレイの単一の行と列との交差点で形成されない。そうではなく、Ｉ／Ｏビットは、同時にアクセスされるアレイの単一の行と複数の列との交差点の集合によって、または同時にアクセスされるアレイの複数の行と、単一の列との交差点の集合によって形成される。Ｉ／Ｏビットがどのように形成されるかは、行または列のどちらが細分されてアレイの複数のＩ／Ｏを作成するかに依存する。
【０００４】
従来のメモリアレイは、主にメモリの製造歩留りを向上させるため、故障メモリセルを置換えるために使用される冗長メモリセルを含む。メモリは一般的に行および列の２次元のアレイとして規定してもよいため、冗長セルも予備の行および予備の列（または予備のＩ／Ｏ）の２次元のグループとして規定すると都合がよい。予備の行および列（またはＩ／Ｏ）の数、ならびにその構成は変化し得るが、典型的にはメモリアレイは予備の行および列のグループか、または予備の行およびＩ／Ｏのグループを有するように配置される。
【０００５】
予備の行は、メモリの単一の行アドレスに関連するいくつかの列およびＩ／Ｏを同時に置換えることができる。同様に、もし予備の列が存在すると、メモリの単一の列アドレスに関連するいくつかの行を置換えることができる。もし予備のＩ／Ｏが存在すると、メモリの特定のＩ／Ｏビットに関連するいくつかの列を同時に置換えることができる。典型的には、Ｉ／Ｏは、メモリアレイの行または列と同じ方向に配向され、よって故障メモリセルの交換の目的のために同じ方向に配向された予備の種類と同じように扱うことができる。
【０００６】
従来のメモリのテストは、メモリアレイのすべての故障したメモリアドレスを識別すること、およびそれらのメモリアドレスのどのビットが故障しているかを識別することを伴う。典型的なメモリテストは、さまざまなデータパターンをメモリに書込み、それからメモリの出力を読取り、予想される値またはパターンと比較することを伴う。予想されるメモリの読出値と実際のメモリの読出値との不一致は、典型的にはメモリテスタ自身に位置する、外部メモリマップに記憶される。
【０００７】
テストパターンのすべてが実行され、故障したアドレス（およびビット）が識別および記憶された後、テスタは記憶されたエラーデータについて修復分析を行なって、メモリを十分に動作させるために故障したアドレスの行および／または列（またはＩ／Ｏ）のどのビット（またはセル）を利用可能な予備のメモリセルで置換える必要があるかを判定してもよい。故障したメモリの情報は典型的にはメモリテストのすべての終わりに分析される。これによって、修復ルーチンは故障したメモリの情報のすべてを考慮に入れ、メモリの動作を最大限にし、かつ冗長メモリセルを最も効率のよいやり方で使用する、最適の修復構成を判定することが可能になる。さらに、故障したメモリの情報のすべてを一度に考慮に入れることによって、ある修復不能なメモリの状況を早期に識別し、修復不能な状態に貴重なテストおよび修復の時間を浪費する前に、そのメモリを放棄することができる。
【０００８】
たいていの従来的なテスタに関連する制限は、修復情報が動的に生成され使用されることを要求する。これは冗長メモリセルを非効率的に使用することによってメモリの歩留り全体を減少させ得る。またこれらの制限は、より高速でより高密度なメモリの開発においてメモリのテストを非常に高価かつ時間を浪費するプロセスにしている。
【０００９】
たとえば、従来のメモリテスタは、典型的にはテストのためにそれらが使用されるメモリセルの動作周波数よりも比較的遅い処理クロック速度を有する。この比較的遅いクロック速度のため、テスト中のメモリが通常の動作速度で正しく動作するかを判定することが不可能となる。またこれらのより遅い従来のテスタを使用してエラー情報を通常の動作速度で集めることは不可能である。結果として、テスタは大量のエラーデータを記憶し、それから、この大量のデータを「オフライン」で実行される修復ルーチンで分析することができなければならない。従来のテスタでは、エラーメモリは予想される故障したビットの総数と同じぐらい大きくなければならない。さらに、メモリの密度が増え続るのに伴い、既に制限されているテスタのメモリも増やさなければならず、テスタの処理能力を増やし、より複雑な修復ルーチンソリューションを処理できるようにしなければならない。
【００１０】
従来のテスタに関連する別の制限は、典型的にそのＩ／Ｏ能力が制限されていることである。メモリが高密度化するにつれ、そのメモリをテストするために必要とされるＩ／Ｏの数も増やさなければならない。Ｉ／Ｏが制限されているテスタは、メモリ全体を一度にテストすることができず、テストプログラムをより小さなテストに分割することが必要となるであろう。メモリテストの分割は、テスト時間全体の増加につながり、メモリの製造に関連するコストの大きな一因となる。
【００１１】
メモリの設計者は、組み込み自己試験（またはＢＩＳＴ）技術を使用してこれらの懸念のいくつかを解決してきた。ＢＩＳＴでは、メモリをテストするためのパターン生成器がそのメモリ自身と同じ半導体チップ（またはウェハ）上に作られる。これによって、ＢＩＳＴ回路は「高速で（ａｔ ｓｐｅｅｄ）」そのメモリをテストすることが可能となり、動作速度以下でメモリをテストする結果としてエラー検出に失敗する懸念を排除する。さらに、ＢＩＳＴ回路は、Ｉ／Ｏが制限されている今日のテスタに関連する懸念を解決する。
【００１２】
それでも、従来のＢＩＳＴ技術には限界がある。たとえば、今なお大量のエラーメモリをＢＩＳＴ回路に組み込んで故障したメモリの情報を記憶しなければならない。また付加的な記憶およびプロセッサ資源をメモリに組み込んで修復ルーチン処理を行なわなければならない。スペースおよびプロセッサの制限のため、限られた量のエラー記憶および修復コードしかＢＩＳＴ設計に統合することはできない。結果として、従来のＢＩＳＴ技術は、故障したメモリの場所を検出するために「スナップショットアプローチ」を使用し続けている。これは、修復ルーチンが故障したメモリの情報を「その場で（ｏｎ ｔｈｅ ｆｌｙ）」処理することを要求し、これは上述のとおり、メモリチップ上に含まれる冗長メモリセルの非効率な使用につながる。
【００１３】
よって、修復ルーチンの複雑さを減少させてはるかに簡単な作業にし、メモリテスタに課されたエラー記憶の要件を軽減する、メモリを分析および修復するための改善された技術が必要である。
【００１４】
【概要】
したがって、１つの目的は、メモリのいくつかのより小さな部分を同時に効率よく修復することができる、複雑さが減少したメモリの分析および修復技術を提供することである。別の目的は、故障したメモリの情報をすべて効率のよいやり方でオンチップで記憶することを可能にする、メモリの分析および修復技術を提供することである。さらに別の目的は、故障したメモリの情報のすべてについて高速の分析および修復情報の生成を可能にすることである。さらに別の目的は、多数のＩ／Ｏを有するメモリのテストを支援することである。また別の目的は、修復ルーチンの実行の初期で、ある修復不能なメモリの故障状況を検出することである。これらの目的は、メモリの故障メモリセルを分析および修復するための方法および装置によって解決される。
【００１５】
一局面によると、メモリを分析および修復するための方法は、メモリの少なくとも一部分で検出された故障メモリセルを、いくつかの種類のメモリの予備のうち１つのみを使用して修復しなければならないか、またはいくつかの種類のメモリの予備のうちどれを使用しても修復できるかを判定するステップを含む。いくつかの種類のメモリの予備のうち１つのみを使用して修復しなければならない故障メモリセルは、修復しなければならない新しいエラーが修復されなくなり、かつ故障メモリセルがスキップされなくなるまで、またはメモリが修復不能と判定されるまで繰返し修復され、いくつかの種類のメモリの予備のうちどれを使用しても修復できる故障メモリセルはいずれもスキップされる。修復しなければならない故障メモリセルを修復するときにスキップされた故障メモリセルのうち少なくとも１つが修復される。故障メモリセルを修復しなければならないかを判定するステップ、および修復しなければならない故障メモリセルを繰返し修復するステップは、少なくとも１つのスキップされた故障メモリセルが修復されるたびに繰返される。
【００１６】
ある関係する局面によると、複数の種類のメモリの予備のうち第１の種類はメモリの行および列の部分のうち一方を修復することができ、複数の種類のメモリの予備のうち第２の相補的な種類はメモリの行および列の部分のうち他方を修復することができる。
【００１７】
別の関係する局面によると、修復しなければならない故障メモリセルは、その総数が利用可能な相補的な種類のメモリの予備の数を超える故障メモリセルを有する、メモリの行または列の部分のそれぞれに、故障メモリセルを含む。
【００１８】
さらに別の関係する局面によると、メモリの少なくとも一部分は、そのメモリをいくつかの分析ブロックに論理的に分けることによって形成され、各分析ブロックは、複数の種類のメモリの予備の各々の種類の少なくとも１つを完全に含む。
【００１９】
さらに別の関係する局面によると、メモリの少なくとも一部分は、分析ブロックの各々をいくつかのサブブロックに論理的に分けることによって形成され、各サブブロックは、それぞれの分析ブロックの、複数の種類のメモリの予備の各々が修復することのできるメモリセルの範囲に対応する領域にわたって延びる。
【００２０】
さらに別の関係する局面によると、この方法は、各サブブロックについての故障メモリセルの情報をメモリに別々のアドレス指定可能なエントリとして記憶するステップをさらに含む。
【００２１】
さらに別の関係する局面によると、各サブブロックについての故障メモリセル情報は、分析および修復されているメモリの一部分に記憶される。
【００２２】
さらに別の関係する局面によると、メモリのアドレス指定可能なエントリの各々は、それぞれのサブブロックのエラー記憶テーブルに対応し、各エラー記憶テーブルは、メモリの行および列の部分のそれぞれで検出されたいくつかの故障メモリセルに関係する情報を記憶するための行エントリおよび列エントリを有する。
【００２３】
さらに別の関係する局面によると、この方法は、メモリの行および列の部分のそれぞれで検出されたいくつかの故障メモリセルに関係する情報を、メモリに記憶された少なくとも１つのエラー記憶テーブルから読出すステップをさらに含む。メモリの少なくとも一部分で検出された故障メモリセルは、いくつかの故障メモリセルに関係する情報が読出される少なくとも１つのエラー記憶テーブルに対応する、サブブロックに位置する。
【００２４】
さらに別の関係する局面によると、この方法は、メモリで検出されたすべての故障メモリセルが修復されるか、またはそのメモリが修復不能と判定されるまで、メモリの別々の部分上でこの方法のステップの各々を行なうステップをさらに含む。
【００２５】
さらに別の関係する局面によると、この方法のステップの各々をメモリの別々の部分上で行なうことは、別々の部分の各々に対して同時に起こる。
【００２６】
さらに別の関係する局面によると、複数の種類のメモリの予備のうち１つの種類のみを使用して修復しなければならない故障メモリセルを繰返し修復するステップは、少なくとも１つのエラー記憶テーブルの行エントリまたは列エントリが空であるか、または行エントリもしくは列エントリによって識別されたエラーが修復されたかを判定するステップを含む。もしその行エントリまたは列エントリが空でなく、識別されたエラーも修復されていない場合、識別されたエラーを修復しなければならないかが判定される。そうでなければ、少なくとも１つのエラー記憶テーブルの次の行エントリまたは列エントリが空であるか、または次の行もしくは列エントリによって識別されたエラーが修復されたかが判定される。もし識別されたエラーを修復しなければならないと、複数の種類のメモリの予備のうち１つのみの予備が利用可能であるかが判定される。そうでないと、識別されたエラーを修復するステップはスキップされ、少なくとも１つのエラー記憶テーブルの次の行エントリまたは列エントリが空であるか、または次の行エントリもしくは列エントリによって識別されたエラーが修復されたかが判定される。もし複数の種類のメモリの予備のうち１つのみの予備が利用可能であると、識別されたエラーは複数の種類のメモリの予備のその１つのみの予備で修復され、少なくとも１つのエラー記憶テーブルの次の行エントリまたは列エントリが空であるか、または次の行エントリまたは列エントリによって識別されたエラーが修復されたかが判定される。そうでなければそのメモリは修復不能と判定される。少なくとも１つのエラー記憶テーブルの次の行エントリまたは列エントリが空であるか、または行もしくは列エントリによって識別されたエラーが修復されたか  を判定するステップは、少なくとも１つのエラー記憶テーブルのすべての行および列エントリが処理されるまで繰返される。
【００２７】
さらに別の関係する局面によると、修復しなければならない故障メモリセルを修復するときにスキップされた故障メモリセルのうち少なくとも１つを修復するステップは、スキップされた故障メモリセルのうち少なくとも１つの最初に検出された故障メモリセルのみを修復するステップを含む。
【００２８】
さらに別の関係する局面によると、最初に検出された故障メモリセルのみを修復するステップは、少なくとも１つのエラー記憶テーブルの行エントリまたは列エントリが空であるかを判定するステップを含む。もし行エントリまたは列エントリが空でなければ、その行エントリまたは列エントリによって識別されたエラーが修復されたかが判定される。そうでなければ、少なくとも１つのエラー記憶テーブルの次の行エントリまたは列エントリが空であるかが判定される。もし識別されたエラーが修復されていないと、複数の種類のメモリの予備のうち第１の種類が利用可能であるかが判定される。そうでなければ、少なくとも１つのエラー記憶テーブルの次の行エントリまたは列エントリが空であるかが判定される。もし複数の種類のメモリの予備のうち第１の種類が利用可能であれば、識別されたエラーはその第１の種類の予備で修復される。そうでなければ、複数の種類のメモリの予備のうち第２の相補的な種類が利用可能であるかが判定される。もし複数の種類のメモリの予備のうち第２の種類が利用可能であれば、識別されたエラーはその第２の種類の予備で修復される。そうでなければメモリは修復不能と判定される。少なくとも１つのエラー記憶テーブルの行エントリまたは列エントリが空であるかを判定するステップは、少なくとも１つのエラー記憶テーブルの少なくともすべての行エントリまたはすべての列エントリが処理されるまで繰返される。
【００２９】
さらに別の関係する局面によると、もし少なくとも１つのエラー記憶テーブルの行エントリまたは列エントリのいずれかが空であると判定されると、空であるその種類の次のエントリは処理される必要がない。
【００３０】
さらに別の関係する局面によると、メモリの行の部分はメモリの少なくとも１つの行を含み、メモリの列の部分はメモリの少なくとも１つの列を含む。
【００３１】
さらに別の関係する局面によると、メモリの列の部分は少なくとも１つの入出力（Ｉ／Ｏ）装置を含み、この少なくとも１つのＩ／Ｏ装置は、メモリの少なくとも１つの列のための入力および出力経路を提供する。
【００３２】
さらに別の関係する局面によると、修復しなければならない故障メモリセルを修復するときにスキップされた故障メモリセルのうち少なくとも１つを修復するステップは、複数の種類のうちどの種類のメモリの予備が、複数の種類のメモリの予備のうちどれを使用しても修復できる故障したメモリを最も多く修復することができるかを判定するステップを含む。それら最も多くの故障メモリセルは、判定された種類の利用可能な予備で置換えられる。
【００３３】
さらに別の関係する局面によると、メモリの少なくとも一部分で検出された故障メモリセルを修復しなければならないかを判定する前に、この方法は、メモリの少なくとも一部分における複数の種類のメモリの予備のうちいずれかが機能しないかを判定するステップをさらに含む。機能しないメモリの予備に関係する情報は、メモリの少なくとも一部分における複数の種類のメモリの予備の配置に基づいて、まとめてグループ分けされる。
【００３４】
さらに別の関係する局面によると、機能しないメモリの予備に関係する情報をまとめてグループ分けするステップは、メモリの少なくとも一部分のいくつかの部分についての機能しないメモリの予備に関係する情報を、もしそれらの部分が複数の種類のメモリの予備のそれぞれの種類のうち少なくとも１つによって修復することが可能であれば、まとめてＯＲ演算するステップを含む。
【００３５】
「含む」および「含んでいる」という用語は、この明細書および特許請求の範囲で使用されるときには、記述された特徴、ステップまたは構成要素の存在を特定するために用いられることが強調されるべきである。しかしこれらの用語の使用は、１つまたはそれ以上の他の特徴、ステップ、構成要素またはそのグループの存在または追加を排除しない。
【００３６】
上記の目的、特徴および利点は、同じ参照番号が類似または同じ要素を示す添付の図面と共に以下の詳細な説明と照らし合わせることで、より明らかになるであろう。
【００３７】
［詳細な説明］
添付の図面を参照して好ましい実施例を以下に説明する。以下の説明では、説明を不必要に詳しくしてわかりにくくするのを避けるため、周知の機能および／または構成は詳細に説明しない。
【００３８】
例示的なメモリアーキテクチャ
分析および修復の技術を詳細に説明する前に、この技術を適用することができる例示的なメモリアーキテクチャをまず説明することが有用であろう。メモリアレイの予備を中心として見ると、予備の行および列（またはＩ／Ｏ）はメモリアレイ全体を通して定間隔に配置してもよい。予備の行および予備の列（またはＩ／Ｏ）の活性化は、典型的にはヒューズによって制御されるが、他の活性化の手段も公知である。ヒューズが「溶ける」とき、対応する予備の行または列（またはＩ／Ｏ）が活性化され、置換えられるべき適切なメモリアドレスがプログラムされる。ヒューズは、レーザ切断、およびある電気信号の活性化を含むがこれに限らない、さまざまな方法で「溶ける」ことができる。
【００３９】
典型的にはヒューズはそれが活性化する予備のメモリセルに比べると比較的大きいため、多くの場合、所与のヒューズのいずれかを使用して、いくつかの行または列（またはＩ／Ｏ）を一度に活性化し置換えてもよい。そのような配置では、所与のヒューズによって活性化されプログラムされる予備の行または列のグループは、分析および修復の立場からは、単一の実体として見てもよい。予備の行および列のこのようなグループ分けを分析および修復ルーチンで利用して、故障メモリセルの識別および置換えでのある程度の圧縮および効率を達成してもよい。
【００４０】
図１は冗長回路を備える例示的なメモリアレイを示す。この例示的なアレイはメモリセルの２つのバンク、バンク０およびバンク１を含む。メモリセルのバンクの各々は、３２列（列０〜１５と１６〜３１）および４０９６行（各々２Ｋセルの行の２セット）のアレイを含む。このメモリバンクは、各々が１２８のＩ／Ｏ（ＩＯ［０］〜ＩＯ［１２７］とＩＯ［１２８］〜ＩＯ［２５５］）を有する部分に分けられる。予備のＩ／Ｏおよび予備の行は、アレイ全体を通して定間隔に配置される。上述のように、予備の列および予備の行を有する冗長回路を含むメモリアレイも使用することができる。
【００４１】
メモリアレイは、分析ブロック１０２と称されるいくつかの部分に論理的に分けられる。分析ブロック１０２のサイズおよび形状は、好ましくは、少なくとも１つの予備Ｉ／Ｏ（または列）および少なくとも１つの予備の行を完全に含むメモリアレイの最小の部分を規定するように選ばれる。分析および修復ルーチンは、好ましくは分析ブロック１０２ごとに動作するように規定される。示される例示的なメモリアーキテクチャでは、１６の分析ブロックが示される。メモリアレイはいかなる数の分析ブロックにも論理的に分けられることが理解されるであろう。
【００４２】
分析ブロックの予備のメモリセルが他の分析ブロックの予備のメモリセルから独立するように分析ブロック１０２を規定することは、修復および分析ルーチンのさらなる効率につながるが、そのような配置は厳密には要求されない。たとえば、確実に所与の分析ブロックの予備のＩ／Ｏおよび予備の行が分析ブロックの境界と交差しないようにすることによって、分析および修復ルーチンは、メモリアレイのさまざまな分析ブロックを独立的かつ並列に分析および修復することができる。
【００４３】
図２は、図１に示されるハイライトされた分析ブロック１０２をより詳細に示す。この図からわかるように、例の分析ブロックの各々は、４つのＩ／Ｏの予備および４つの行の予備を含むように規定される。分析ブロック１０２は、サブブロック２０２と称される、より小さな部分に論理的にさらに分けてもよい。図２に示される分析ブロックは、８つのそのようなサブブロック２０２を有する。サブブロックのサイズは、好ましくはそのサブブロックが行およびＩ／Ｏ（または列）の次元に延びる距離が、行およびＩ／Ｏ（または列）の予備が置換えることのできるメモリセルの範囲に対応するように選ばれる。
【００４４】
示される例によると、サブブロック２０２の各々は、Ｉ／Ｏセクション２０６の３２のＩ／Ｏのいずれかを置換えることのできる１つのＩ／Ｏの予備、およびそのブロックの５１２行のいずれかを置換えることのできる２つの行の予備を含む。サブブロックは、各々が４つのサブブロックからなる２行に配置され、この行はセット２０４と称される。好ましくは、各サブブロックについての故障メモリセルの情報は、エラー記憶（ＥＳ）ＳＲＡＭ（図示せず）に別々の行エントリとして記憶される。ＥＳ  ＳＲＡＭの行エントリの各々は、エラー記憶テーブルと称してもよい。メモリアレイのサイズおよびアレイの冗長回路の構成に依存して、いくつかのＥＳ  ＳＲＡＭを使用して故障メモリセルの情報を記憶してもよい。故障メモリセルおよび修復の情報を記憶するための技術は、この出願と同じ譲受人を有し、２００２年５月３１日に出願された「メモリテストの情報を記憶するための方法および装置（Ｍｅｔｈｏｄｓ ａｎｄ Ａｐｐａｒａｔｕｓ ｆｏｒ Ｓｔｏｒｉｎｇ Ｍｅｍｏｒｙ Ｔｅｓｔ Ｉｎｆｏｒｍａｔｉｏｎ）」と題される同時係属中の米国特許出願第１０／ 号に説明される。
【００４５】
分析ルーチン
例示的なメモリアーキテクチャの説明が終わったので、メモリアレイの故障メモリセルを分析するためのルーチンを提示する。分析ルーチンで（および修復ルーチンでも）使用される以下の言葉を定義する。
【００４６】
Ｍｕｓｔ：１つのやり方、すなわちエラーまたはエラーのグループを予備の行で置換えるか、または予備のＩ／Ｏ（または列）で置き換えるかのいずれかによってのみ修復することができる、故障メモリセル（またはエラー）もしくはエラーのグループ。
【００４７】
Ｆｉｘｅｄ：ルーチンのフローを制御するために使用されるフラグ。このフラグは、エラーが修復されるたびに「Ｙ」にセットされるべきである。
【００４８】
Ｓｋｉｐ：ルーチンのフローを制御するために使用される別のフラグ。このフラグは、エラーが検出されたがルーチンによって直ちに修復されないたびに「Ｙ」にセットされるべきである。
【００４９】
ＮＧ：メモリアレイが修復不能であることを示す、ルーチンで使用されるフラグ。
【００５０】
Ｆｉｘ＿Ａｎｙ：直ちに修繕すべきエラーの種類を判定するためにルーチンで使用されるフラグ。もしこのフラグが「Ｙ」にセットされていると、発見されたエラーはどれでも可能であれば修繕されるであろう。「Ｎ」にセットされていると、「Ｍｕｓｔ」エラーのみがルーチンによって修復されるであろう。
【００５１】
このルーチンの分析の部分のフロー図が図３に示される。厳密には要求されないが、このルーチンは、現在分析されている分析ブロックの冗長回路を形成するさまざまな行の予備および列の予備の持つ機能性に関係する情報を判定（または更新）することによってステップ３０２で開始する。予備の持つ機能性の情報は、メモリ、たとえばＥＳ  ＳＲＡＭにサブブロック２０２ごとに記憶してもよい。もし予備の持つ機能性の情報がこのやり方で記憶されると、ステップ３０２は、さまざまなサブブロック２０２の中から集められた関係する予備の持つ機能性の情報をまとめてグループ分けするステップをさらに含むべきである。
【００５２】
関係する予備の機能性の情報のグループ分けは、論理的「ＯＲ」関数を使用して達成してもよい。たとえば、図２に示される分析ブロックでは、所与のセット２０４のＩ／Ｏセクション２０６の各々における、予備の行に関係する機能性の情報は、その予備の行がセット２０４の示される４つのＩ／Ｏセクション２０６の各々と交差するため、まとめてＯＲ演算されるべきである。同様に、Ｉ／Ｏセクション２０６の行の各々に対する予備のＩ／Ｏ（または列）に関係する機能性の情報は、予備のＩ／ＯがそのＩ／Ｏセクション２０６の行の各々と交差するため、まとめてＯＲ演算されるべきである。
【００５３】
現在の分析ブロックの予備の機能性の情報が更新された後、ルーチンはステップ３０４に進み、ここで現在の分析ブロックについて記憶された修復コード（ＲＣ）情報がメモリから読出される。好ましくはＲＣ情報は、エラー記憶情報と別々に、たとえば別々のＲＣおよびＥＳ  ＳＲＡＭにそれぞれ記憶されるが、この記憶配置は厳密には必要ではない。ステップ３０６から３３０は、分析ルーチンの主要部分を示す。所与の分析ブロック１０２の故障メモリセル情報を、その分析ブロックを修復するための適切な修復コードを生成することができるように、これらのステップで分析する。分析ブロックの各々が処理された後、そのメモリアレイのすべての分析ブロックが処理されたかの判定がステップ３３２で行なわれる。もし処理がすんでいれば、プロセスは終了し、そうでなければ処理すべき次の分析ブロックに関係する情報がステップ３３４で更新され、プロセスはステップ３０２から繰返される。
【００５４】
分析ルーチンの主要部分は２つのステップからなるアプローチを使用する。まずルーチンは、１つの特定のやり方、すなわち予備の行を割当てるか、または予備のＩ／Ｏを割当てるかのいずれか一方のみでエラーを修復することによって修繕しなければならない分析ブロックのそれらの行および／またはＩ／Ｏを修復しようとする。次にルーチンは、複数の方法、すなわち利用可能な予備のいずれかの種類を割当ててエラーを修復することによって修復可能である行および／またはＩ／Ｏを修復しようとする。
【００５５】
フロー図にははっきりと示されていないが、ルーチンによって使用されるさまざまなフラグは、新しい分析ブロックの処理の開始に先立って、以下の値に初期設定される。
【００５６】
Ｆｉｘ＿Ａｎｙ：「Ｎ」にセットされる。
Ｆｉｘｅｄ：「Ｎ」にセットされる。
【００５７】
Ｓｋｉｐ：「Ｎ」にセットされる。
ＮＧ：「Ｎ」にセットされる。
【００５８】
Ｌａｓｔ Ｓｅｔ：「Ｎ」にセットされる（注意：このフラグの値は現在の分析ブロック１０２の予備／サブブロック／セットの構成に依存する）。
【００５９】
分析ブロックの処理は、ステップ３０６で現在の分析ブロックのＥＳデータを、たとえばＥＳ  ＳＲＡＭから読出すことで開始する。フラグＦｉｘ＿Ａｎｙは「Ｎ」に初期設定されるため、ルーチンはいわゆる「Ｍｕｓｔ」エラーをまず処理することによってＥＳデータの分析を開始する。「Ｍｕｓｔ」エラーは、特定の１種類の予備、すなわちこの例では予備の行または予備のＩ／Ｏ（または列）のいずれかでのみ修復できるメモリセルの故障を表すことを思い出されたい。分析ルーチンのこの段階は、上述の２つのステップからなるアプローチの第１のステップを表す。
【００６０】
図２に示される分析ブロックは、各々が４つからなるサブブロックの２つのセット２０４に配置される８つのサブブロック２０２を含むことを思い出されたい。各セットは、セット２０４の４つのサブブロックにまたがる５１２行のいずれかを置換えるために利用可能である２つの予備の行を含む。この特定の配置では、最初の４つのエラー記憶テーブルがステップ３０６でＥＳ  ＳＲＡＭから読出される。これらのエラー記憶テーブルは、分析ブロック１０２の第１のセット２０４を作る４つのサブブロック２０２に対応する。他の配置では、ＥＳ  ＳＲＡＭから読出されるべきデータの量を変化させることが必要であろう。
【００６１】
次に、図４Ａおよび４Ｂに示される修復ルーチン（以下に詳細を示す）を使用して、ステップ３０６で読出されたＥＳデータがステップ３０８で処理される。ここでもフラグＦｉｘ＿Ａｎｙが「Ｎ」に初期設定されるため、修復ルーチンは、いわゆる「Ｍｕｓｔ」エラーをまず修復しようとすることによって開始する。フラグＳｋｉｐ、ＦｉｘｅｄおよびＮＧは、一旦修復ルーチンでセットされると、分析のこの段階を通して維持され、図３に示されるルーチンの分析の部分に戻されるべきである。もしエラーが発見されて修復されない場合は、フラグＳｋｉｐは「Ｙ」にセットされるべきであり、もしエラーが修復された場合は、フラグＦｉｘｅｄは「Ｙ」にセットされるべきであり、もしエラーが発見され修復不能な場合は、フラグＮＧは「Ｙ」にセットされるべきであることを思い出されたい。
【００６２】
ステップ３１０で制御はルーチンの分析の部分に戻り、ここでＮＧフラグの現在の状態がテストされる。もしＮＧフラグが「Ｙ」にセットされていると、ルーチンはステップ３１２に進み、ここでそのメモリアレイは修復不能と識別される。一旦この判定が行なわれると、そのメモリアレイはさらに分析される必要はなく、分析および修復ルーチンは終了する。
【００６３】
もしフラグＮＧがステップ３１０で「Ｎ」にセットされると、ルーチンはステップ３１４に進み、ここでＦｉｘ＿Ａｎｙフラグの現在の状態がテストされる。上述のように、他の識別されたエラーの前に「Ｍｕｓｔ」エラーを識別および修復するため、このフラグは２つのステップからなる分析の第１段階の間「Ｎ」にセットされる。
【００６４】
したがって、分析の第１段階の間にルーチンはステップ３１６に進み、ここで、処理されている現在のセット２０４が分析ブロック１０２内の分析すべき最後のセット２０４であるかの判定が行なわれる。もし分析されている現在のセット２０４がその分析ブロックの処理すべき最後のセットでなければ、ルーチンはステップ３１８に進み、ＥＳ  ＳＲＡＭのアドレスが更新されて、ルーチンによって分析されるべき次のセット２０４に対応する、ＳＲＡＭに記憶される次の４つのエラー記憶テーブルにアクセスが行なわれる。ステップ３０６から３１８は、その分析ブロック１０２のすべてのセット２０４が「Ｍｕｓｔ」エラーについて処理されるまで繰返し実行される。
【００６５】
処理されている現在のセット２０４が現在の分析ブロック１０２の最後のセット２０４であるとステップ３１６で判定されたとき、ルーチンはステップ３２０に進み、ここでＦｉｘｅｄフラグの現在の状態がテストされる。もしＦｉｘｅｄフラグが「Ｙ」にセットされていれば、それは、「Ｍｕｓｔ」エラーが修復ルーチンによってステップ３０８で修復されたことを示し、プロセスはステップ３３０に進み、ここでＥＳ  ＳＲＡＭのアドレスは更新されて、ＥＳ  ＳＲＡＭに記憶される最初の４つのエラー記憶テーブルに再びアクセスが行なわれる。これらのエラー記憶テーブルは、現在分析されている分析ブロック１０２の最初のセット２０４に対応する。図示されていないが、フラグＳｋｉｐおよびＦｉｘｅｄは、ステップ３３０で再び「Ｎ」に初期設定される。
【００６６】
ステップ３０６から３１８は、現在の分析ブロック１０２のすべてのセット２０４が「Ｍｕｓｔ」エラーについて処理されるまで、再び繰返し実行される。分析ブロックのいずれかのエラーを修繕することで、以前にスキップされたエラー（識別されたエラーが「Ｍｕｓｔ」エラーでなかったためスキップされた）がその後「Ｍｕｓｔ」エラーになることが理解されるであろう。よって、新しいエラーが修復ルーチンによって修繕されなくなるまで、分析ブロックを「Ｍｕｓｔ」エラーについて処理することが繰返される。
【００６７】
修復ルーチンによって新しい「Ｍｕｓｔ」エラーが修繕されなくなったとき、修復ルーチンによって戻されるＦｉｘｅｄフラグは、初期値の「Ｎ」にセットされたままであろう。このため、Ｆｉｘｅｄフラグがステップ３２０でテストされると、プロセスはステップ３２２に進み、ここでＳｋｉｐフラグの現在の状態がテストされる。これは、「Ｍｕｓｔ」エラーが他の種類のエラーの前に修復される、２つのステップからなるアプローチの第１段階の終了を意味する。
【００６８】
もし分析の第１段階中にエラーがスキップされなかった場合、プロセスはステップ３３２に進み、ここで現在の分析ブロック１０２がメモリアレイの処理すべき最後の分析ブロックであるかの判定が行なわれる。もし現在の分析ブロックが処理されるべき最後の分析ブロックであれば、ルーチンは終了する。そうでなければ、ルーチンはステップ３３４に進み、ここでルーチン全体がメモリアレイの次の分析ブロックについて繰返される。図示されていないが、フラグＳｋｉｐ、Ｆｉｘ＿ＡｎｙおよびＦｉｘｅｄは、ステップ３３４で再び「Ｎ」に初期設定される。
【００６９】
もし分析の第１段階中にエラーがスキップされていれば、修復ルーチンによって戻されるＳｋｉｐフラグの値は「Ｙ」にセットされているであろう。結果として、このフラグはステップ３２２でテストされると、ルーチンはステップ３２４に進み、ここでＦｉｘ＿Ａｎｙフラグは「Ｙ」にセットされる。これは２つのステップからなるアプローチの第２段階の開始を意味し、ここで利用可能な予備のいずれかの種類によって修復できるエラーが修復ルーチンによって処理される。
【００７０】
Ｆｉｘ＿Ａｎｙフラグを「Ｙ」にセットした後、ＥＳ  ＳＲＡＭのアドレスはステップ３３０で更新されて、ＥＳ  ＳＲＡＭに記憶される最初の４つのエラー記憶テーブルに再びアクセスが行なわれる。これらのエラー記憶テーブルは、現在分析されている分析ブロック１０２の第１のセット２０４に対応する。フラグＳｋｉｐおよびＦｉｘｅｄは、再び「Ｎ」に初期設定される。
【００７１】
ステップ３０６から３１２は、分析の第１段階と同じやり方で分析の第２段階において実行される。Ｆｉｘ＿Ａｎｙフラグがステップ３１４でテストされるとき、このフラグは分析の第２段階の間「Ｙ」にセットされるため、ルーチンはステップ３２６に進む。
【００７２】
ステップ３２６でフラグＦｉｘｅｄがテストされて、何らかのエラーが修復ルーチンによってステップ３０８で修復されたかが判定される。もしエラーが修繕されていないと、ルーチンはステップ３１８に進み、ここでＥＳ  ＳＲＡＭのアドレスは更新されて、ＳＲＡＭに記憶されている次の４つのエラー記憶テーブルにアクセスが行なわれる。これらの記憶テーブルは、ルーチンによって処理されるべき分析ブロック１０２の次のセット２０４に対応する。分析ブロック１０２のセット２０４は、分析ブロックのエラーが修復されたとステップ３２６で判定されるまで処理される。分析の第１段階中にエラーがスキップされたとステップ３２２で判定された後初めて分析ルーチンの第２段階に入るため、ルーチンのこの段階では少なくとも１つのエラーが分析ブロックに存在しなければならないことを思い出されたい。
【００７３】
分析ブロックのエラーが修復されたとステップ３２６で判定されると、ルーチンはステップ３２８に進み、ここでＦｉｘ＿Ａｎｙフラグは「Ｎ」にリセットされる。これによってルーチンは再び分析の第１段階に入り、ここでルーチンは、ある特定の種類の利用可能な予備によってのみ修復可能である、「Ｍｕｓｔ」エラーを探し修復しようとする。
【００７４】
ここでも、分析および修復の第２段階中に分析ブロックのエラーのどれかを修繕することが、新たな「Ｍｕｓｔ」エラーを生成し得ることが理解されるであろう。分析の第２段階でどれか１つエラーを選ぶことは簡単なことではない。したがって、説明した技術は、修繕すべき最善のエラーを判定しようとはせず、その代わりに、分析ブロックで最初に遭遇した修繕されていないエラーを修繕し、潜在的な新しい「Ｍｕｓｔ」エラーが検出および修復される、分析の第１段階に戻る。このアプローチは、分析および修復ルーチンの全体の性能にわずかな影響しか与えない、簡単かつ効率的なものにつながる。
【００７５】
またはこれに代えて、分析の第２段階の間に、残っている「Ｍｕｓｔ」でない種類のエラーを最も多く修復可能なメモリの予備の種類を判定する試みを行なってもよい。この判定を行なうことは、製造歩留りの改善につながるが、ルーチンに複雑さを追加し、メモリの修復を実施するために必要とされる分析および修復時間ならびに記憶要件の増加につながる。
【００７６】
分析および修復の第１および第２の段階の実行の上述のシーケンスは、１）「Ｍｕｓｔ」エラーが修繕されず、かつ修繕されていないエラーがスキップされずに第１段階が終了するか、または、２）そのメモリ領域が修復不能（すなわちＮＧフラグが「Ｙ」にセットされる）と判定されるまで続く。ルーチンが完了すると、分析されているメモリアレイの故障メモリセルを置換えるために必要である修復コードがＲＣ  ＳＲＡＭに記憶される。
【００７７】
修復ルーチン
図４Ａおよび４Ｂは、メモリアレイの故障メモリセルを予備セルで置換えるために必要とされる修復コードを生成するための例示的な修復ルーチンのフロー図を示す。図４Ａは、検出された「Ｍｕｓｔ」エラーが修復される、分析および修復の第１段階で動作されるときに実行されるステップを示す。図４Ｂは、「Ｍｕｓｔ」でない種類のエラーが修復される、分析および修復の第２段階で動作されるときに実行されるステップを示す。「Ｍｕｓｔ」エラーか他の種類のエラーのどちらが処理されるかの決定は、図４Ａに示されるルーチンのステップ４０２で行なわれる。
【００７８】
修復ルーチンを詳しく説明する前に、このルーチンで使用される、ある用語を定義し、ルーチンの動作に関する一般的な考察をいくつか行なうことは有用であろう。
【００７９】
まず、何が「Ｍｕｓｔ」の種類のエラーを構成するかは、分析されているメモリアレイのサイズ、検出されたエラーの数、望ましいテスト歩留り、および利用可能な予備の行および予備の列（またはＩ／Ｏ）の数を含むがこれに限らない、いかなる数の変数にも依存し得る。好ましい実施例によると、「Ｍｕｓｔ」エラーは、１）分析ブロックの所与の行で検出されたエラーであって、その所与の行のエラーの数が利用可能な予備の列（またはＩ／Ｏ）の数を超える場合、または、２）分析ブロックの所与の列（またはＩ／Ｏ）で検出されたエラーであって、その所与の列（またはＩ／Ｏ）で検出されたエラーの数が利用可能な予備の行の数を超える場合として規定される。
【００８０】
次に、図４Ａおよび４Ｂに示される例示的なフロー図は、行のエラーが列のエラーの前に処理され修復されることを示すが、このとおりである必要はない。たとえば、「Ｍｕｓｔ」の種類のエラーが処理される、図４Ａに示されるルーチンの部分では、エラー記憶テーブル内の行エントリおよび列エントリのすべてがエラーについてテストされ、行エントリまたは列エントリのどちらで任意のものを始めるかが判定される。「Ｍｕｓｔ」でない種類のエラーが処理される、図４Ｂに示されるルーチンの部分で、行エントリまたは列エントリのどちらを最初に処理するかは、適用されるエラー記憶技術に依存する。たとえば同時係属中の米国特許出願第１０／ 号に示されるエラー記憶技術は、「Ｍｕｓｔ」でない種類のエラーが確実にエラー記憶テーブル内に行エントリおよび列エントリの両方を有するようにする。
【００８１】
これらのエラー記憶技術の適用を反映する図４Ｂは、テーブルの行エントリのみが「Ｍｕｓｔ」でない種類のエラーについてテストされているのを示すが、このとおりである必要はない。もし故障メモリセルの情報をＥＳ  ＳＲＡＭに記憶することが、「Ｍｕｓｔ」でない種類のエラーが行エントリおよび列エントリの両方を持つことを保証しないのであれば、このルーチンは、エラー記憶テーブルの行エントリおよび列エントリの両方で少なくとも１つの「Ｍｕｓｔ」でない種類のエラーを探すように修正することができる。さらに、もしＥＳ  ＳＲＡＭの故障メモリセル情報の記憶がそう保証するのであれば、ルーチンは、エラー記憶テーブルの列エントリの「Ｍｕｓｔ」でない種類のエラーのみを探すように修正することができる。
【００８２】
最後に、図４Ａおよび／または４Ｂは、分析ブロック１０２のセット２０４を形成するサブブロック２０２の各々の、処理されている４つの行および３つの列を示す。修復ルーチンで処理される行および列の数は、ＥＳ  ＳＲＡＭに記憶される故障メモリセルの情報の量に依存することが理解されるであろう。上述のことから、ＥＳ  ＳＲＡＭの行の各々はエラー記憶テーブルに対応してもよいことを思い出されたい。同時係属中の米国特許出願第１０／ 号に説明されるように、エラー記憶テーブルの各々は、故障メモリセル情報の合計のうち少なくとも一部分を記憶するための行および列エントリを含む。
【００８３】
この同時係属中の出願は、２つの予備の行および１つの予備の列を有するサブブロック２０２について、修復を実施するために必要とされるテーブルの行エントリの数は、利用可能な予備行の各々につき２つのエントリ、プラス２つの利用可能な予備の行と１つの利用可能な予備の列の交差点の各々につき２つのエントリの、４つであり、一方修復を実施するために必要とされるテーブルの列エントリの数は、１つの利用可能な予備の列につき１つのエントリ、プラス１つの利用可能な予備の列と２つの利用可能な予備の行との交差点の各々につき２つのエントリの、３つであることをさらに説明する。よって、図４Ａおよび４Ｂで処理される行および／または列の数は単に例示的であり、所与のサブブロック２０２の行および列の総数までのいずれの数にもなり得る。処理すべき行および列の数が少ないほど、修復ルーチンはより効果的かつ効率的になる。
【００８４】
これらの定義および一般的な考察を念頭に置き、図４Ａに示される修復ルーチンの部分をさらに詳しく説明していく。図でわかるように、所与のセット２０４を作るサブブロック２０２の各々は、ルーチンで順次処理される。エラーテーブルの行および列エントリの各々は同じやり方で処理されるため、行♯１の処理のみを詳しく説明する。
【００８５】
第１のＥＳテーブルの行（または列またはＩ／Ｏ）エントリの処理は、ステップ４０４で開始し、ここでそのテーブルエントリで識別されたエラーが既に修復されたか（すなわち予備の行または予備の列で修繕されたか）、または対応する行のエラーの数がゼロであり、よって修復する必要がないかが判定される。これらの状態のいずれかが当てはまれば、ルーチンは先に進んで、テーブルのすべての行エントリおよび列エントリが処理されるまで、エラー記憶テーブルの次の行（および列）エントリを処理する。もしこれらの状態のいずれも当てはまらない場合、ルーチンはステップ４０６に進み、ここでその故障が「Ｍｕｓｔ」の種類であるか、または他の種類のエラーであると判定される。好ましい実施例によると、もし行で検出されたエラーの数が利用可能な予備の列の数を超えると、エラーは「Ｍｕｓｔ」エラーと見なされるであろうことを思い出されたい。
【００８６】
もしエラーが「Ｍｕｓｔ」の種類のエラーでないと、そのエラーはスキップされ（ルーチンのこの部分は「Ｍｕｓｔ」の種類のエラーのみを処理するため）、ルーチンはステップ４０８に進み、ここでＳｋｉｐフラグは真（ｔｒｕｅ）にセットされる。これは図３に示される分析ルーチンに対し、検出されたエラーはスキップされたため、そのルーチンでさらなる処理を進めることが可能であることを示す。すると、ルーチンは先に進んで、すべての行エントリおよび列エントリが処理されるまで、エラー記憶テーブルの次の行（および列）エントリを処理する。
【００８７】
もしエラーが「Ｍｕｓｔ」の種類のエラーであると判定されると、ルーチンはステップ４１０に進み、ここでエラーを修復するために予備の行が利用可能であるかについての判定が行なわれる。もし予備の行が利用可能であれば、その利用可能な予備の行がエラーを修復するために割当てられ、ルーチンはステップ４１２に進み、ここでＦｉｘｅｄフラグは真にセットされる。これは分析ルーチンに対し、検出されたエラーが修繕され、よってそのルーチンでさらなる処理を進めることが可能であることを示す。すると、ルーチンは先に進んで、すべての行エントリおよび列エントリが処理されるまで、エラー記憶テーブルの次の行（および列）エントリを処理する。
【００８８】
もし検出された「Ｍｕｓｔ」の種類のエラーを修復するために利用可能な予備の行がない場合、ルーチンはステップ４１４に進み、ここでフラグＮＧは「Ｙ」にセットされる。このフラグは分析ルーチンに対し、分析されているメモリアレイは修復不能であることを示し、アレイのすべての分析および修復が停止される。分析ブロック１０２の現在のセット２０４のサブブロック２０２の各々が処理されると、ルーチンはステップ３０８でルーチンの分析の部分に制御権を戻す。
【００８９】
次に図４Ｂに示される修復ルーチンの部分をさらに詳しく説明する。ルーチンのこの部分は、図４Ａに示されるルーチンの部分で「Ｍｕｓｔ」エラーを処理する間にスキップされた少なくとも１つのエラーのうち１つのエラーを検出しそれを修復しようとすることを思い出されたい。行（またはおそらく列またはＩ／Ｏ）エントリの各々は同じやり方で処理されるため、行♯１の処理のみを詳しく説明する。ルーチンのこの部分はステップ４１６で開始し、ここでエラーが行１で検出されたかが判定される。もしエラーが検出されていると、ルーチンはステップ４１８に進み、ここで検出されたエラーが既に修復されたかが判定される。もし第１の行エントリでエラーが検出されないか、または第１の行エントリで検出されたエラーが既に修復されていると、ルーチンは先に進んで、エラー記憶テーブルの残りの行（または列またはＩ／Ｏ）エントリの処理をすべてのエントリが処理されるまで続ける。
【００９０】
またはこれに代えて、エラー記憶テーブルのエラーのない第１の行（または列またはＩ／Ｏ）エントリの下方の行（または列またはＩ／Ｏ）エントリにもエラーがないことを、適用されたエラー記憶技術が保証できると、さらなる行（または列またはＩ／Ｏ）エントリの処理はスキップしてもよい。するとルーチンは直接ステップ４２０および４２２に進むことができ、ここで分析ブロック１０２の現在のセット２０４の次のサブブロック２０２が処理される。
【００９１】
もし検出されたエラーがまだ修復されていないとステップ４１８で判定されると、ルーチンはステップ４２４に進み、ここで検出されたエラーを修復するための行の予備が利用可能であるか  が判定される。もし行の予備が利用可能であると、エラーはステップ４２６でその利用可能な予備で修復され、Ｆｉｘｅｄフラグがステップ４３４でセットされる。もし利用可能な予備がないと、ルーチンはステップ４２８に進み、ここで検出されたエラーを修復するための列の予備が利用可能であるかが判定される。もし列の予備が利用可能であると、エラーはステップ４３０でその利用可能な予備で修復され、Ｆｉｘｅｄフラグはステップ４３６で再びセットされる。もし検出されたエラーを修復するために行および列の予備がどちらも利用可能でない場合、ＮＧフラグはステップ４３２で「Ｙ」にセットされ、制御はルーチンの分析の部分に戻る。
【００９２】
ある用語が例示的な実施例を説明する中で便宜のために使用されてきたが、それらはここに説明される一般的な概念を限定するために使用されるべきではない。たとえば、メモリの「行」または「列」の部分、もしくはメモリの予備の種類について特定的に述べている部分は、メモリのこれらの部分か、またはメモリの予備の種類を含むと理解され得る。メモリの予備の場合、その特定の用語は、もしメモリの予備の１つの種類が所与のメモリセルの場所の修復のために使用されない場合、他方の相補的な種類のメモリの予備を使用してその場所を修復してもよいという点で、相補的な種類のメモリの予備を表す。
【００９３】
さらに、「修復」または「修復する」という用語は、故障メモリセルを予備のセルで置換えることだけを含むのでなく、予備のセルで故障メモリセルを置換える際に後に使用するための、たとえばＲＣ  ＳＲＡＭに記憶してもよい、故障修復情報の生成も含む。さらに、「セル」および「メモリセル」という用語は、メモリにおける１つまたはいくつかのメモリセル、もしくは場所を示すと理解され得る。最後に、「Ｙ」および「真」ならびに「Ｎ」および「偽（ｆａｌｓｅ）」という用語は、説明されたルーチンで発生するさまざまなテスト状況の状態を説明するためにこの説明および特許請求の範囲を通して相互に置換えて使用することができる。
【００９４】
さまざまな局面をいくつかの例示的な実施例に関連して説明してきた。これらの実施例の理解を容易にするため、コンピュータシステムまたはマイクロコントローラの要素によって行なうことのできる動作のシーケンスに関して多くの局面を説明した。たとえば、実施例の各々において、さまざまな動作は、専用回路（たとえば専用の機能を遂行するように相互に接続される別個の論理ゲート）によって、１つまたはそれ以上のプロセッサによって実行されるプログラム命令によって、または両方の組合せによって行なうことができる。
【００９５】
さらに、例示的な実施例は、ここに説明した技術をプロセッサに実行させるコンピュータの命令の適切なセットを記憶した、いかなる形のコンピュータ読出可能記憶媒体の一部とも見なされ得る。よって、さまざまな局面は多くの異なる形で実施してもよく、そのような形はすべて、説明されたものの範囲内にあると考えられる。さまざまな局面の各々について、そのような形の実施例はいずれも、ここでは、説明した動作を実行するように「構成された論理」として、またはこれに代えて説明した動作を実行する「論理」と称することができる。
【００９６】
さまざまな例示的な実施例が説明されてきたが、これらの実施例は単に例示的なものであり、多くの他の実施例が可能であることが当業者によって理解されるであろう。この発明の意図する範囲は、上述の説明ではなく特許請求の範囲によって規定され、特許請求の範囲内にある変形はすべてそこに含まれることが意図される。
【図面の簡単な説明】
【図１】冗長回路を備える例示的なメモリアレイを示す。
【図２】図１に示される例示的なメモリアレイの一部分を示し、かつそのメモリアレイの分析ブロックと称される部分を示す。
【図３】例示的な修復分析ルーチンのフロー図を示す。
【図４Ａ】図３に示される修復分析ルーチンによって生成された情報を処理するための例示的な修復ルーチンのフロー図を示す。
【図４Ｂ】図３に示される修復分析ルーチンによって生成された情報を処理するための例示的な修復ルーチンのフロー図を示す。
【図１】
2004522250.tif 000003
【図２】
2004522250.tif 000004
【図３】
2004522250.tif 000005
【図４Ａ】
2004522250.tif 000006
【図４Ｂ】
2004522250.tif 000007
【国際公開パンフレット】
2004522250.tif 000008
2004522250.tif 000009
2004522250.tif 000010
2004522250.tif 000011
2004522250.tif 000012
2004522250.tif 000013
2004522250.tif 000014
2004522250.tif 000015
2004522250.tif 000016
2004522250.tif 000017
2004522250.tif 000018
2004522250.tif 000019
2004522250.tif 000020
2004522250.tif 000021
2004522250.tif 000022
2004522250.tif 000023
2004522250.tif 000024
2004522250.tif 000025
2004522250.tif 000026
2004522250.tif 000027
2004522250.tif 000028
2004522250.tif 000029
2004522250.tif 000030
2004522250.tif 000031
2004522250.tif 000032
2004522250.tif 000033
2004522250.tif 000034
2004522250.tif 000035
2004522250.tif 000036
2004522250.tif 000037
2004522250.tif 000038
2004522250.tif 000039
2004522250.tif 000040
2004522250.tif 000041
2004522250.tif 000042
2004522250.tif 000043
2004522250.tif 000044
2004522250.tif 000045
【国際公開パンフレット（コレクトバージョン）】
2004522250.tif 000046
2004522250.tif 000047
【国際公開パンフレット（コレクトバージョン）】
2004522250.tif 000048
2004522250.tif 000049
2004522250.tif 000050
2004522250.tif 000051
2004522250.tif 000052
2004522250.tif 000053
2004522250.tif 000054
2004522250.tif 000055
2004522250.tif 000056
2004522250.tif 000057
2004522250.tif 000058
2004522250.tif 000059
2004522250.tif 000060
2004522250.tif 000061
2004522250.tif 000062
2004522250.tif 000063
2004522250.tif 000064
2004522250.tif 000065
2004522250.tif 000066
2004522250.tif 000067
2004522250.tif 000068
2004522250.tif 000069
2004522250.tif 000070
2004522250.tif 000071
2004522250.tif 000072
2004522250.tif 000073
2004522250.tif 000074
2004522250.tif 000075
2004522250.tif 000076
2004522250.tif 000077
2004522250.tif 000078
2004522250.tif 000079
2004522250.tif 000080
2004522250.tif 000081
2004522250.tif 000082
2004522250.tif 000083
2004522250.tif 000084
2004522250.tif 000085
2004522250.tif 000086
【国際調査報告】
2004522250.tif 000087