(57)【特許請求の範囲】
【請求項１】
メモリ・セルの行および列、ならびに冗長行（２１２Ａ，２１２Ｂ）および冗長列（２１４Ａ，２１４Ｂ）を含む複数のメモリ構造を有する半導体メモリ（１１０Ａ）の修理方法であって、
ａ）前記メモリを検査して障害セル（２５０，２５２，２５４，２５６）を識別し、コンピュータ（１１４）において前記障害セルの表現を作成するステップと、
ｂ）前記表現内の前記障害セルから選択したものに、当該セルと同じ行内にある障害セルの数を表す第１引数と、同じ列内にある障害セルの数を表す第２引数とを割り当てるステップであって、
ｉ）相互的、排他的に共線状にある障害セルのクラスタ（２６０，２６２）を識別するステップ、および
ｉｉ）少なくとも１つのクラスタを選択し、前記選択したクラスタ内の障害セルに値を割り当てるステップ、
を含むステップと、
ｃ）ｉ）第１に、前記第１引数または第２引数のいずれかに基づいて、小さい引数程高い優先度を受け取り、
ｉｉ）第２に、前記第１引数または第２引数の他のものに基づいて、大きな引数程高い優先度を受け取るように、
前記表現の中の障害セルに優先度を与えるステップと、
ｄ）少なくとも部分的に、前記割り当てた優先度に基づいて、１つの障害セルを選択し、
ｅ）冗長メモリ構造を割り当て、前記選択した障害セルを修理するステップであって、前記第１の優先度決定ステップにおいて用いた引数が、前記選択した障害セルと同じ列にある障害セルの数を表す場合、前記冗長構造を行とし、前記第１の優先度決定ステップにおいて用いた引数が、前記選択した障害セルと同じ行にある障害セルの数を表す場合、前記冗長構造を列とするステップと、
を含む方法。
【請求項２】
請求項１記載の方法であって、追加的に、
ｆ）前記障害セルの表現を変化させ、前記割り当てられたメモリ構造と交換した障害セルを除去するステップと、
ｇ）ステップｂ）ないしｅ）を繰り返すステップと、
を含む方法。
【請求項３】
請求項２記載の方法において、ステップｆ）およびｇ）は、前記表現内に障害セルがなくなるまで、または全ての冗長行および冗長列を割り当てるまで繰り返す方法。
【請求項４】
請求項２記載の方法において、前記割り当てるステップは、修理対象の半導体メモリのどのメモリ構造が、冗長メモリ構造と交換されるのかを示すデータ構造を、コンピュータ・メモリ内に構築するステップを含む方法。
【請求項５】
請求項４記載の方法を用いて半導体メモリを作成する方法であって、追加的に、
ｈ）前記データ構造を修理部（１１６）に供給するステップと、
ｉ）前記データ構造内の交換情報にしたがって、前記半導体メモリを物理的に変化させるステップと、
を含む方法。
【請求項６】
請求項１記載の方法において、請求項１のステップは、前記半導体メモリの各領域毎に繰り返される方法。
【請求項７】
請求項１記載の方法において、
ｆ）前記クラスタが、未割り当ての冗長行のみを用いて修理可能であるか、あるいは未割り当ての冗長列のみを用いて修理可能であるかを示す論理値を各クラスタに割り当てるステップを追加的に含み、
前記クラスタを選択するステップは、
ｂ１）前記クラスタのいずれかが、未割り当ての冗長行のみまたは未割り当ての冗長列のいずれを用いても修理できないことを示す論理値を有する場合、少なくとも１つのかかるクラスタを選択するステップを含む、
方法。
【請求項８】
メモリ・セルの行および列、ならびに冗長行（２１２Ａ，２１２Ｂ）および冗長列（２１４Ａ，２１４Ｂ）を含む複数のメモリ構造を有する半導体メモリ（１１０Ａ）の修理方法であって、
ａ）前記メモリを検査して障害セル（２５０，２５２，２５４，２５６）を識別し、コンピュータ（１１４）において前記障害セルの表現を作成するステップと、
ｂ）前記表現内の前記障害セルから選択したものに、当該セルと同じ行内にある障害セルの数を表す第１引数と、同じ列内にある障害セルの数を表す第２引数とを割り当てるステップと、
ｃ）ｉ）第１に、前記第１引数または第２引数のいずれかに基づいて、小さい引数程高い優先度を受け取り、
ｉｉ）第２に、前記第１引数または第２引数の他のものに基づいて、大きな引数程高い優先度を受け取るように、
前記表現の中の障害セルに優先度を与えるステップと、
ｄ）少なくとも部分的に、前記割り当てた優先度に基づいて、１つの障害セルを選択し、
ｅ）冗長メモリ構造を割り当て、前記選択した障害セルを修理するステップであって、前記第１の優先度決定ステップにおいて用いた引数が、前記選択した障害セルと同じ列にある障害セルの数を表す場合、前記冗長構造を行とし、前記第１の優先度決定ステップにおいて用いた引数が、前記選択した障害セルと同じ行にある障害セルの数を表す場合、前記冗長構造を列とするステップと、
を含む方法において、
前記半導体メモリは、少なくとも１つの領域（２００）に編成され、各領域は複数のセグメントを有し、各セグメントがメモリ構造を含み、更に各セグメントには冗長メモリ構造が関連付けられており、各セグメントに関連付けられた前記冗長メモリ構造は、当該領域における少なくとも１つの他のセグメントに関連付けられており、
ｆ）各セグメントに、当該セグメントが、未割り当ての冗長行のみを用いることによって修理可能か、あるいは未割り当ての冗長列のみを用いて修理可能かを示す論理値を割り当てるステップを追加的に含み、
障害セルを選択する前記ステップは、
ｄ１）前記セグメントの内少なくとも１つが、未割り当ての冗長行のみまたは未割り当ての冗長列のみのいずれを用いてもそれが修理不可能であることを示す論理値を有する場合、かかるセグメント内にある１つの障害セルを選択するステップを含む、
方法。
【発明の詳細な説明】
本発明は、一般的には半導体メモリの製造に関し、更に特定すれば不良メモリ・セルの修理に関するものである。
実際上全てのコンピュータは、半導体メモリ・チップを使用している。コンピュータのプロセッサが増々強力になったために、コンピュータ内で必要とされるメモリ量も増大した。その結果、１つのメモリ・チップ内に記憶可能な情報のビット数が増加している。
メモリの使用量が増えるに従って、市場の要求によってメモリ製造者にメモリ価格の低下が強いられた。これまでに、格納ビット当たりの価格は大きく低下している。サイズの増大および価格低下が重なり合ったために、半導体メモリの製造者には非常に困難な課題が賦課されることになった。即ち、彼らは製造するメモリのコストを削減しなければならない。
大型化されたメモリの製造コスト削減における難題の１つは、メモリ・サイズが増大するに従って、不良半導体メモリの可能性が高くなることである。したがって、メモリ・サイズが増大する程、歩留まりの低下が予測される。しかしながら、歩留まりは、半導体回路の生産コストに影響を与える非常に重要な要因である。
歩留まりを高めるために、メモリ製造者は、各半導体メモリの一部として、冗長セルを含ませている。不良セルを冗長セルと交換することによって、完全に機能するメモリを形成する。もし修理が迅速にできるとすれば、生産コストは、不良ダイを修理することによって削減することができる。
典型的には、修理はウエハ・レベル検査の一部として行われる。ウエハ上の各ダイは、USA CA,Aguora HillsのTeradyne,Inc.によって販売されているJ993のような、高速メモリ・テスタによる検査が行われる。このテスタは、不良メモリ・セルを有するダイを識別し、どのセルが不良であるかについて記録を行う。次に、テスタは、どのメモリ・セルを冗長セルと交換し、不良メモリを修理すべきかに関して計算を行う。この情報を、修理部に、典型的には電子データ・ファイルとして受け渡す。修理部では、ダイ上に必要な接続部を作り、典型的にレーザを用いて永久的にダイを変更させる。
メモリ内のセルは、行および列に配置されている。冗長セルも行および列に配置されている。修理は、不良セルを含む行全体または列全体を交換することによって行われる。
冗長行および冗長列の数は限られているので、修理可能な不良セルの数は限定される。修理可能以上の不良セルがある場合、典型的にはダイ全体を廃棄する。
不良セルは群（クラスタ）状で発生することが非常に多い。したがって、、単一の行または単一の列を交換することによっていくつかの不良セルを修理可能な場合が多い。冗長列および冗長行を適切に使用することによって、多くの不良を有するメモリでさえも、少数の冗長行および冗長列を用いて修理が可能である。冗長行および冗長列の最良の使用を図るために、多くのメモリ・テスタは、全ての不良セルを修理する方法が発見されるまで、冗長行および冗長列を用いる異なる方法を試すようにプログラムされている。この技法は、「ブルート・フォース（brute force）」技法と呼ばれている。不良セル全ての交換を可能にするいずれかの解決策があれば、この技法は最終的にはそれを発見する。しかしながら、この技法は、比較的遅い。大きなメモリでは、この技法は余りに遅すぎる可能性が高い。
冗長行および冗長列をいかにして割り当て特定の不良を修理するかを決定する別の方法に、「モスト（Most）」と呼ばれるものがある。この技法では、テスタは、不良メモリ・セルが最も多い行または列を識別する。１つの冗長要素を用いて、この行または列を修理する。次いで、不良セルの数が次に多い行または列を修理する。全ての冗長要素を使いきるまで、このプロセスを繰り返す。この方法は、多くの場合有効に作用し、ブルート・フォース技法よりもはるかに高速である。しかしながら、修理可能な不良セルであっても、そのパターンによってはこの方法で冗長要素を割り当てることでは修理できないものがある。
メモリを修理可能な速度を高める技法に、「マスト（Must）」技法と呼ばれるものがある。「マスト」は、冗長列よりも多くの障害セルを含むあらゆる行が、あるとすれば、冗長行を用いて修理しなければならないという事実を利用する。同様に、冗長行よりも多くの不良セルを含むあらゆる列も、あるとすれば、冗長列を用いて修理しなければならない。したがって、「マスト」は、典型的に予備処理工程として用いられ、冗長要素を用いて修理しなければならない障害セルに、冗長要素を精度高く割り当てるものである。しかし、予備処理に「マスト」を用いても、ブルート・フォース・プロセスは、非常に遅い可能性があり、「モスト」プロセスは全ての修理可能なメモリを修理できない場合があり得る。
メモリの修理速度を高くする別の技術は、IEEE Transactions on Computer-Aided Design（Ｖｏｌ．ＣＡＤ−６，ＮＯ．２、１９８７年３月）のChin-Long WeyとFabrizio Lombardi著の論文「On the Repair of Redundant RAM′s」に記載されている。特に、その論文には、実行時間が高速の欠陥メモリ・セルを修理するアルゴリズムが記載されている。しかし、そのアルゴリズムは常に冗長要素の最適な割り当てとなるとはかぎらない。
したがって、メモリ・セル内の不良全ての修理が可能な場合に、かかる修理を行う方法を迅速に発見する、メモリ・セル修理方法があれば、非常に望ましいであろう。
発明の概要
上述の背景を念頭にいれ、本発明の目的は、冗長行および冗長列を用いて、メモリ・チップ内の全ての不良を迅速に修理することである。
また、多数のセグメントを有する領域があるメモリを迅速に修理することも目的の１つである。
上述の目的およびその他の目的は、メモリ検査から得られる障害（故障）情報を処理することによって達成される。障害情報は、クラスタ内の各不良（欠陥）セルに行および列の対を割り当てることによって処理する。行番号は、不良セルと同一行における不良セルの数を表し、列番号は、同一列における不良セルの数を表す。行列対において最も小さい数を有するセルを選択し、修理する。複数のセルが同一の最も小さい数を有する場合、最も高い行番号および列番号の組み合わせを有するセルを選択する。行番号の方が大きい場合冗長行によって、また列番号の方が大きい場合冗長列によって、セルを修理する。続いて、このプロセスを繰り返す。
一実施例では、セルは１つ以上のセルのクラスタに集合化され、各セルは当該クラスタ内の他のセルと共線(collinear)となっている。１クラスタの不良セルは同時に処理される。冗長行のみまたは冗長列のみのいずれを用いても修理できないクラスタを、最初に処理する。
他の実施例では、冗長行または冗長列を共有するセグメントにメモリを編成（ｏｒｇａｎｉｚｅ）する場合、冗長行または状行列のみを用いて修理できないセグメントを最初に選択し処理する。
他の実施例では、プロセスの最初の工程は、業界標準（工業規格）の「マスト（Must）」プロセスを用いて、冗長行または冗長列をそれらの行または列に割り当てることである。
【図面の簡単な説明】
本発明は、以下の詳細な説明および添付図面を参照することによって、よりよく理解することができよう。図面において、
図１は、本発明を組み込んだメモリ検査システムのブロック図である。
図２Ａは、半導体メモリの領域を示す図である。
図２Ｂは、多数のセグメントを有するメモリ領域における障害のクラスタを示す図である。
図３は、本発明の方法を示すフロー・チャートである。
図４Ａないし図４Ｅは、図３の方法の動作の一例を示す図である。
図５Ａないし図５Ｅは、図３の方法の処理の第２の例を示す図である。
好適実施例の説明
図１は、半導体メモリ・チップの製造において使用可能な検査システムを示す。メモリは、いずれかの公知プロセスにしたがって、ウエハ１１０Ａ上で製造される。ウエハ１１０Ａは検査ヘッド１１２に供給され、ここで、検査システム・コントローラ１１４からのコマンドに応答して、ウエハ１１０Ａ上の各メモリを検査する。
検査ヘッド１１２および検査システム・コントローラ１１４は、商業的に入手可能なメモリ検査システムの一部である。Teradyne,Inc.のJ993は、かかる検査システムの一例であるが、いずれの商業的に入手可能なメモリ検査システムでも使用可能である。
検査ヘッド１１２は、ウエハ１１０Ａとインターフェースし、ウエハ１１０Ａ上の各メモリに対して検査信号の書き込みおよび読み取りができるようにする。検査ヘッド１１２および検査システム・コントローラ１１４は、当技術では公知のように、適正に動作しないウエハ１１０Ａ上の各メモリのセルを検出するように動作する。
当技術では公知のように、検査システム・コントローラ１１４は、各メモリ内の障害（故障）セルについての情報を処理する。メモリが冗長行および冗長列を含む場合、検査システム・コントローラ１１４は、どのように冗長行および冗長列を用いて不良（欠陥）セルを修理可能かについて計算を行う。検査システム・コントローラ１１４はコンピュータを含み、計算は、コンピュータにプログラムされている命令にしたがって実行される。
一旦検査システム・コンピュータ１１４が、メモリ内の冗長行および冗長列を用いてどのようにしてメモリ内の不良セルを修理可能かを判定したなら、この情報はレーザ修理部１１６に渡される。ウエハ１１０Ａは、レーザ修理部１１６の位置１１０Ｂに移動される。レーザ修理部１１６は、検査システム・コントローラ１１４によって供給された情報を用いて、ウエハ１１０Ｂ上のメモリを修理する。修理を行う際、レーザを照射してメモリ・チップの一部分を変化させ、不良行および不良列を、メモリから切断すると共に、冗長行または冗長列をそれらの場所に接続する。
図２Ａは、メモリの一領域２００の構成を概略的に示す。１つの領域には、典型的に、行および列に編成された数千ものセルが含まれる。各メモリは、１つの領域または多数の領域を有する場合がある。各領域は、他のいずれの領域とも独立して修理可能なメモリの部分である。領域２００は、冗長行２１２Ａおよび２１２Ｂ、ならびに冗長列２１４Ａおよび２１４Ｂを含み、これらを用いて領域２００内の不良セルの修理を行う。
領域２００は、セグメントＳ０，Ｓ１，Ｓ２およびＳ３に分割されている。冗長列２１２ＡはセグメントＳ０およびＳ１内の行と変換することができる。冗長行２１２Ｂは、セグメントＳ２およびＳ３内の不良セルと変換するために使用することができる。冗長列２１４Ａは、セグメントＳ０およびＳ２内の不良セルと交換するために使用することができる。冗長列２１４Ｂは、セグメントＳ１およびＳ３内の不良セルと交換するために使用することができる。
領域、セグメントおよび冗長列または冗長行の数ならびに構成は、メモリの製造者によって選択される。ここに示す数および構成は、限定的なものではなく、例示的なものである。
図２Ｂは、領域２００内の障害セルのクラスタの形成を示す。以下で説明するように、障害セルはクラスタ毎に処理される。クラスタとは、障害セルの一群のことであり、少なくとも２つの障害セルを含んでいなければならない。単一のスペアで交換可能な２つの障害セルはどれも、同じクラスタ内にある。このようなセルのグループ化は結合性(associative)が考慮される。例えば、障害セル２５０および２５２は、冗長行２１２Ａの一方を用いて交換できるであろう。したがって、障害セル２５０および２５２は、同一クラスタ内にある。障害セル２５０および障害セル２５４は、双方とも、１つの冗長列２１４Ａの使用によって交換することができる。したがって、障害セル２５０，２５２および２５４は全てクラスタ２６０内にある。
一方、障害セル２５６は、クラスタ２６０内のどのセルとも同じ行または列にない。これは、クラスタ２６０内のどのセルとも同じ冗長要素と交換されない。したがって、障害セル２５６は、別のクラスタ、即ち、クラスタ２６２に属する。
１つのクラスタ内にあるセルは「相互に共線的（mutually co-linear）」である。「相互に共線的」とは、クラスタ内の各セルが、当該クラスタ内の少なくとも１つの他のセルと同一線上にあることを意味する。クラスタを定義する目的のために、「共線的」とは、２つのセルが同じスペアで交換されることを意味するものとする。したがって、セルのクラスタへの集合（グループ）化は、障害セルの分布およびスペアの配列の関数となる。
他の障害セルと相互に共線的でない障害セルは、いずれのクラスタにも割り当てられない。クラスタに割り当てられない障害セルのことを「シングレット(singlet)」と呼ぶことにする。シングレットはクラスタとは別個に処理される。ある領域がシングレットのみを含む場合、１つよりも多い障害セルを修理可能なスペアがない可能性がある。したがって、クラスタ内の複数の障害を修理するために冗長要素を割り当を行うステップには、シングレットには不要のものもある。
１つのクラスタ内にあるセルは、「排他的に共線的」でもある。「排他的に共線的」とは、同一線上にあるセルは全て、常に同じクラスタ内にあることを意味する。１つのクラスタには、別のクラスタ内のセルと「共線的」にあるセルは存在しない。したがって、クラスタは、相互かつ排他的に共線的な障害セルの集合として定義される。
次に図３を参照すると、本発明のメモリ修理プロセスのフロー・チャートが示されている。先に説明したように、検査システム・コントローラ１１４は、検査対象メモリのどのセルに障害があるのかについて判定を行う。また、先に説明したように、業界標準のMust予備処理を用いて、障害セルのいくつかに冗長要素を割り当てる。この予備処理後に残る障害情報は、図３に示すように更に処理が施される。
図３に示すプロセスは反復的プロセスである。このプロセスを１回通過することによって、領域２００の１つの行または列を修理するために、１つの冗長行または冗長列（以下、単に「スペア」と呼ぶことにする）が、割り当てられる。好適実施例では、図３のプロセスは、検査システム・コントローラ１１４内のコンピュータにおいて実行される。
図３のプロセスは、障害セルを含む全ての行または列が交換されるか、あるいは全てのスペアを使いきるまで、繰り返し実行される。このプロセスはステップ３１０において開始し、全ての障害セルが交換されたか否かについて判定が行われる。全ての障害が交換されている場合、プロセスは完了する。
障害が残っている場合、実行はステップ３１２に進む。ステップ３１２では、未だスペアが残っているか否かについて判定を行う。スペアが残っていない場合も、実行は終了する。しかしながら、メモリ領域の交換が不可能となるので、例外即ちエラー状態で、実行は終了する。
実行はステップ３１４に移行する。ステップ３１４において、各行および列内にある「共線」障害セルの数を数える。この数は、後に使用するために格納しておく。
次に処理はステップ３１６に進む。ステップ３１６において、現行のパスがこのプロセスの最初のパスであるか否かについて判定するためのチェックを行う。コンピュータ・ソフトウエアでは、かかるチェックは、多数の方法のいずれかで行うことができ、プロセスの実行前にフラグをセットし、プロセスの終了時にそれをクリアする等が可能である。最初のパスの場合、実行はステップ３２０に移行する。
最初のパス以外の各パスでは、実行はステップ３１８に移行する。ステップ３１８において、いずれかの行または列が、冗長行または冗長列と交換しなければならないか否かについてチェックを行う。ステップ３１８では、上述の業界標準のMustプロセスを用いる。プロセスの最初のパスでは、ステップ３１８をスキップする。何故なら、上述のように、障害情報はMustプロセスによって予備処理され、例えば、いくつかのセルを修理するために冗長要素を割り当てることによって、障害情報が変化するまで、このプロセスを繰り返す必要がないからである。これについては、以下で説明する。
交換のために識別された行および列は、パラメータとしてステップ３３８に渡され、ここで、以下で説明するように、これらの行および列にスペアが割り当てられる。
ステップ３１８において交換のために識別される行または列がない場合、実行はステップ３２０に移行する。ステップ３２０において、クラスタの識別が行われる。コンピュータ・メモリ内に、複数のリンクされたリスト・データ構造を構築するためのプロセスがあってもよい。各障害セルは順番に処理される。各セルをチェックし、それが既に開始された各リストにおけるセルと共線状であるか否かについて判定する。このセルがいずれのリストにおけるいずれのセルとも共線状でない場合、これを用いて新しいリストを開始する。このセルがリスト上のセルと共線状である場合、そのリストに追加する。しかしながら、このセルが複数のリスト上にあるセルと共線状である場合、これらのリストを１つのリストに纏め、このセルを纏めたリストに追加する。一旦全ての障害セルの処理を行ったなら、２つ以上のセルを有する各リストは１つのクラスタを表すことになる。
当技術では、リンクされたリスト(linked list)は、項目の迅速なソートまたは集合化を行う際に都合のよいデータ構造であることが知られている。しかしながら、リンクされたリスト（連結）リストは、大量のメモリを必要とする。何故なら、リスト内の各エントリは、当該エントリに対するデータ値に加えて、リスト内の次のエントリに対するポインタも含むからである。検査システム・コントローラ１１４内のコンピュータ・メモリ空間が限られている場合、非連結リストをメモリに構築することが好ましい場合もある。非連結リストは、集合化された値をメモリ内の連続する位置に格納していくことによって作成する。かかるリストの方が使用メモリが少ないが、リストを纏めるためには、メモリ内のデータ値を編成し直し、結合されたリスト内の全てのエントリを、連続するメモリ位置に格納していなければならない。
以前のステップにおける処理のために、冗長要素と交換されるものとして既に指定されている行または列内のセルは、もはや障害セルとしては扱われず、クラスタ内に含まれないことを注記しておく。したがって、行および列が交換のために識別される毎に、クラスタは変化する可能性がある。
処理はステップ３２２に進む。このステップにおいて、（ｒ，ｃ）値を各クラスタに割り当てる。（ｒ，ｃ）値は、１対のブール値を表す。ｒ値が真である場合、冗長列を全く使用することなく、使用可能な冗長行の数でクラスタを修理可能であることを示す。ここではこれをＲで示すことにする。逆に、ｒ値が偽（虚）である場合、クラスタは使用可能な冗長行では修理することはできない。ここでは、これをＲ*で示すことにする。同様に、ｃ値も真または偽であり、冗長行を使用することなく、クラスタを使用可能な列と修理可能であるか否かを示す。
使用可能な冗長行または列とは、検査対象メモリの修理に使用するために未だ指定されていないもののことである。図３のステップを実行すると、冗長要素が１つずつ指定される。したがって、各クラスタに割り当てられる（ｒ，ｃ）値は、図３のプロセスを通過する毎に変化する可能性がある。
例えば、図４Ｂは、２つのクラスタ４１４および４１６を示す。図４の例では、セグメントは３つの冗長行および３つの冗長列を有する。１列が使用され、３つの冗長行および２つの冗長列が残っている。クラスタ４１４および４１６は各々、３つの使用可能な冗長行または２つの使用可能な列全てを用いなくても修理可能であるので、これらには各々（Ｒ，Ｃ）の値が割り当てられる。
（ｒ，ｃ）値は、クラスタに対するデータ構造の一部として格納される。各クラスタに（ｒ，ｃ）値を割り当てることに加えて、（ｒ，ｃ）値を各セグメントにも割り当てる。セグメントに対する（ｒ，ｃ）値は、当該セグメント内にある障害セルは、使用可能な冗長行または列を用いてそれぞれ修理可能か否かを示す。図４Ｂのセグメントは、合計で障害セルを有する５つの行および４つの列を有する。３つの使用可能な冗長行および２つの使用可能な冗長列があるのみであるので、このセグメントには（ｒ，ｃ）値として（Ｒ*，Ｃ*）が割り当てられる。
冗長要素が多数のセグメントにわたるメモリでは、各冗長要素集合に関連するセルは別個に考慮される。例えば、図２のＢは、冗長列２１４Ｂが、セグメントＳ１およびＳ３内のセルを修理するために使用可能な唯一の列であることを示す。クラスタ２６０はセグメントＳ１内に４列のセルを含む（使用可能な３つの列スペアより多い）ので、クラスタ２６０を修理するためには１つの行スペアも用いなければならず、クラスタ２６０はＣ*値を得る。
また、クラスタ２６２は１行に４つの障害を有するが、これら障害セルの位置のために、クラスタを修理するために行の使用を必要としない。即ち、クラスタ２６２はセグメントＳ２内の１つの行に３つの障害セル、およびクラスタＳ３内の同じ行に他の障害セルを有する。セグメントＳ２内の３つの障害セルは、冗長列２１４Ａを用いて修理することができる。セグメントＳ３内の障害セルは、冗長列２１４Ｂを用いて修理することができる。したがって、１行内のこれら４つのセルは、使用可能な列スペアによって修理が可能である。
一旦（ｒ，ｃ）値が各クラスタに割り当てられたなら、実行はステップ３２４に移行する。ステップ３２４において、いずれのクラスタも修理に「適格(eligible)」であるか否かについて判定を行う。クラスタが修理に「適格」となるのは、これがＲ*またはＣ*値を有する場合である。いずれかのクラスタがかかる値を有する場合、実行はステップ３３０に移行する。好適実施例では、ステップ３２０において、いずれかのクラスタが（Ｒ*，Ｃ），（Ｒ，Ｃ*）または（Ｒ*，Ｃ*）を有する場合にフラグをセットし、ステップ３２４において、当該フラグがセットされている場合、ステップ３３０に分岐する。
ステップ３３０において、修理に適格なクラスタを選択し、次の処理を進める。
この処理では、適格クラスタの内１つの行または列と交換するために、１つの冗長要素を割り当てる。Ｒ*値を有するクラスタは、いずれかの時点で、修理に用いる冗長列を必要とする。したがって、ステップ３３０では、別の処理で、Ｒ*値を有するクラスタにのみ列を適用することを指定する。同様に、ステップ３３０は、Ｃ*値を有するクラスタのみが、冗長行によって修理されることを指定する。Ｒ*およびＣ*値双方を有するクラスタは、冗長行または冗長列のいずれかによって修理することができる。その場合、ステップ３３０では、別の処理によって、当該クラスタにおける障害を修理するために、冗長行または冗長列のいずれかを選択可能であることを指定する。
ステップ３３０は、検査システム・コントローラ１１４のコンピュータ・メモリにデータ構造を構築する。別の処理に適格なクラスタは、このデータ構造内で識別する。クラスタが連結リストによって識別される場合、適格クラスタを表すデータ構造は、単に選択されたリストに対するポインタのリストとすることができる。しかしながら、選択値を表す他の多くの方法も、コンピュータでは共通して使用されている。適格クラスタのリストに加えて、クラスタに冗長行または冗長行のどちらを割り当てるべきかの指示も、このデータ構造に含まれる。
次に、適格クラスタを表すデータ構造は、ステップ３３４に渡され、更に別の処理が行われる。ステップ３３４では、適格クラスタから、「狭幅度（ｎａｒｒｏｗｎｅｓｓ）」評価基準と呼ばれる、第１レベルの評価基準を満足するクラスタを選択する。「狭幅度」とは、クラスタ内の障害セルを含む行または列の最小数のことを言う。例えば、第１クラスタが３つの行および２つの列に障害セルを有する場合、これは列狭幅度が２、行狭幅度が３となる。単一の列および５つの行に障害セルを有するクラスタは、行方向では狭幅度が大きいが、列方向では狭幅度が小さい。これは、１つの列狭幅度、および５の行狭幅度を有する。
ステップ３３４では、行方向において最も狭いクラスタおよび列方向において最も狭いクラスタのみを選択する。最初に、単一の行または単一の列に障害セルを有するクラスタ、即ち、狭幅度が１のもののみを選択する。かかるクラスタがない場合、２つの行または２つの列に障害セルを有するクラスタ、即ち、狭幅度が２のもののみを選択する。ステップ３３４は、このようにして、全ての適格クラスタの最小狭幅度を識別するまで続けられる。交換に適格なクラスタを表すデータ構造は、行方向の狭幅度が最小のクラスタ、および列方向の狭幅度が最小のクラスタのみに縮められる。行および列の狭幅度値も、このデータ構造内に格納され、後に使用される。
実行は次にステップ３３５に移行し、ここで適格クラスタの選択を更に処理する。ステップ３３５では、適格クラスタ内の各障害セルに（ｎ，ｍ）の形態のランクを割り当てる。ここで、ｎは、当該障害セルと同じ行内にある、クラスタ内の障害セルの数、ｍは当該セルと同じ列内にある、クラスタ内の障害セルの数である。例えば、図４Ｂは、２つのクラスタ４１４および４１６を示す。クラスタ４１４内の障害セルは、（１，３）（２，３）（２，１）（１，３）というランクを有する。クラスタ４１６内の障害セルは、（２，２）（２，１）および（１，２）というランクを有する。
ステップ３３５において、このランクに基づいて、最良の行および最良の列を交換のために選択する。最良の行とは、ｍ（列値）が最も小さい障害セルを含む行のことである。最も小さいｍ値を有する障害セルが複数ある場合、これらの内最良のものは、ｎ値が最も大きいものである。最良の列とは、ｎ（行値）が最も小さい障害セルを含む列のことである。最も小さいｎ値を有する障害セルが複数ある場合、これらの内最良のものは、ｍ値が最も大きいものである。
先に説明したように、修理に適格な各クラスタには、冗長要素を用いて、行が交換可能か、列が交換可能か、あるいはいずれも交換可能かについての指示が、関連付けられている。行の交換に適格なクラスタについて、最良の行のみを選択する。列の交換に適格なクラスタについて、最良の列のみを選択する。行または列のいずれかの交換に適格なクラスタについて、最良の行または列を選択する。この最後の想定において、第１引数（ａｒｇｕｍｅｎｔ）として、最良の行セルのｍ（列）値を、最良の列セルのｎ（行）値と比較する。また、補引数(co-argument)として、最良の行セルのｎ値を、最良の列セルのｍ値と比較する。先と同様、選択は、最小の引数および最大の補引数に基づいて行われる。
交換に適格な各クラスタに対して、一旦最良の要素または要素群を識別したなら、全ての中で最良の要素または要素群を選択する。上述のように、引数が最も小さい要素を選択する。複数の行または列が全て最小の引数を有する場合、補引数が最も大きなものを、最良として選択する。
複数の行または列が同じランクを有し、最良の行または列が複数あるという場合もあり得る。この場合、これらの全てを保持し、後の処理の間に単一の最良を選択する。先と同様、選択した行および列の指定は、検査システム・コントローラ１１４内のコンピュータ・メモリにデータ構造を構築することによって行われる。連結リストまたは非連結リストのように、いずれかの都合のよいデータ構造を用いればよい。
次に、処理はステップ３３６に移行し、ここで単一の最良の行または列を交換のために選択する。単一の最良行または列が既に選択されている場合、このステップは不要である。ステップ３３５において選択された行および列の内、「交差しない(uncrossed)」ものが、交換に好適である。「交差する(crossed)」行または列は、少なくとも１つの障害セルを他の選択された要素と共有する。したがって、ステップ３３６では、ステップ３３６において選択した各行および列に対して、当該行または列、およびステップ３３５において選択した他の行または列に共通する障害セルの数を判定する。かかる共有障害セルが最も少ない行または列を、単一の最良のものとして選択する。
単一の最良に対する評価基準を満足する行または列が複数ある場合、それらの要素の１つを任意に選択することができる。あるいは、行または列を交換する優先度を、ステップ３３６における処理に含ませてもよい。例えば、ステップ３３６では、使用可能な冗長行の方が多い場合には行を、使用可能な冗長列の方が多い場合には列を、交換のための単一の最良要素として選択することが可能である。行のみまたは列のみが使用可能という状況では、ステップ３３６では、使用可能な冗長要素があるものについて、交換のために要素を選択しなければならない。あるいは、検査システム・コントローラ１１４は、最良行または列が多数ある場合には、交換すべき行または列に対する優先度を、入力として受け入れてもよい。こうして、ユーザが、メモリ２００のアーキテクチャに基づいて、この優先度を指定するようにしてもよい。
行および列間の選択に用いる評価基準には無関係に、単一の最良要素が選択されない場合、最良のものの内の１つをランダムに選択することができる。次に、選択した単一の最良行または列を、実際の交換のために受け渡す。
処理はステップ３３８に進み、ここでスペアを適用する。図１に示すシステムでは、図３に示す処理は、修理部１１６とは別個の、検査システム・コントローラ１１４において実行される。したがって、ステップ３３８において、どのスペアを特定の行または列に割り当てるのかを示すデータ構造を作成することによって、スペアを適用する。このデータ構造は、後にレーザ修理部１１６に渡され、そこで、指示されたスペアを用いて、指示された行の修理を行う。しかしながら、図３の処理をレーザ修理部１１６内で実行する場合、そのときにメモリ２００を実際に物理的に変化させることによって、スペアを適用することが可能である。
スペアを適用する場合、ステップ３３８では、図３の他のステップで使用したデータ構造の更新も行う。即ち、使用可能なスペアの数を記録しているデータ構造は、スペアが１つ使用されたことを反映するために、変更しなければならない。加えて、障害セルを記録しているデータ構造も変更し、このスペアと交換された行または列内の障害セルを全て除去しなければならない。
一旦スペアをステップ３３８において適用したなら、次に処理はステップ３１０に戻る。このプロセスを繰り返し、他の行または列を交換のために選択する。このように、全ての障害を交換するまで、または他にスペアがなくなるまで、プロセスを繰り返し、各パス毎に１つスペアを適用していく。
上述の処理は、ステップ３２４において、修理に適格なクラスタがあったと判定した場合についてのものである。ステップ３２４において修理に適格なクラスタがないと判定された場合にも、同様の処理を実行する。その場合、しかしながら、処理はステップ３２４からステップ３２６に移行する。
ステップ３２６において、（ｒ，ｃ）値を各セグメントについて決定する。これらの値は、クラスタに対するものと同じ意味を有する。ｒ値がＲ*である場合、使用可能な冗長行のみではセグメントを修理できないことを暗示する。ｃ値がＣ*である場合、使用可能な冗長列のみではセグメントを修理できないことを暗示する。例えば、図４Ａに示すセグメントは、７つの行および５つの列に障害セルを有する。このセグメントが３つの冗長行および３つの冗長列を有する場合、それが有する（ｒ，ｃ）値は、（Ｒ*，Ｃ*）となる。
一旦（ｒ，ｃ）値がその領域内の各セグメントについて決定されたなら、処理はステップ３２８に移行する。ステップ３２８において、セグメントのいずれかに、Ｒ*値またはＣ*値を有するものがあるか否かについて判定を行う。かかるセグメントはいずれも修理に適格である。好適実施例では、いずれかのセグメントが（Ｒ*，Ｃ*），（Ｒ，Ｃ*）または（Ｒ*，Ｃ*）を有する場合、ステップ３２２においてフラグをセットし、フラグがセットされた場合、ステップ３２８において、ステップ３３２に分岐する。
少なくとも１つのセグメントが修理に適格である場合、処理はステップ３３２に移行する。ステップ３３２は、修理に適格な障害セルのデータ構造を構築するという点において、ステップ３３０と同様である。しかしながら、このデータ構造は、適格セグメント内の障害セル全てを含む。
スペアを割り当てることによってクラスタ内の障害全てを修理した場合、残りの障害は全て「シングレット」である。クラスタが残っていない場合、ステップ３３２において、適格な選択のデータ構造に、クラスタではなくシングレットを配置する。シングレットに対する処理は、クラスタに対する処理を単純化した変形である。全てのシングレットは、同じ狭幅度評価基準および同じ最大最小評価基準(maximin criteria)を有する。また、シングレットには交差するものはないはずである。したがって、ステップ３３４，３３５および３３６では、セグメント内のシングレットからは何も選択されない。
しかしながら、セグメントの（ｒ，ｃ）値が、行を使用すべきことまたは列を使用すべきことを示す場合、当該セグメント内のシングレットに適用するために、その種の冗長要素を選択する。同様に、ユーザの優先度、または冗長行または冗長列のどちらが使用可能かについて判定するその他の機構がある場合、その種の冗長要素を用いる。一旦セグメントに適用すべき冗長要素の種類を選択したなら、その冗長要素を適用するシングレットの１つを、任意に選択することができる。
上述のように、ステップ３３２において作成したデータ構造は、冗長行または冗長列のどちらを用いて、クラスタの修理が可能かについての指示も含む。Ｒ*値を有するセグメントでは、冗長列を用いて修理を行うことに限定される。Ｃ*値を有するセグメントでは、行を用いて修理を行うことに限定される。（Ｒ*，Ｃ*）の値を有するセグメントについては、行または列いずれを用いても修理を行うことができる。
一旦適格セグメント内の障害セルを識別したなら、処理はステップ３３４に移行する。先に説明したように、ステップ３３４，３３５および３３６における処理では、修理に適格な全ての障害セルから、修理すべき単一の最良行または列を選択し、冗長要素をステップ３３８において適用する。
ステップ３２４および３２８において修理に適格なクラスタおよびセグメントがない場合、処理はステップ３２８からステップ３３４に移行する。この処理経路は、修理に適格な選択を限定する、ステップ３３０および３３２を迂回する。したがって、処理がステップ３２８から直接ステップ３３４に移行する場合、いずれかのクラスタが修理に適格であり、冗長行または冗長列のいずれかを用いて、修理を行うことができる。全てのクラスタを修理したなら、先に論じたように、同じ選択プロセスを用いて、シングレットの修理を行う。
これらのクラスタに対する処理は、その他の点では上述の処理と同一である。ステップ３３４，３３５および３３６において、修理に対して単一の最良行または列を選択する。ステップ３３８においてスペアを適用し、その最良の交換を行う。
図４は、図３に関連付けて説明した処理の適用例を示す。図２に示したようなメモリ２００に対して、セグメント当たり、最大３つの冗長行および冗長列が使用可能である。図４Ａは、１つのセグメントにおける冗長セル４１０のパターン例を示す。図４Ｂは、冗長列と交換しなければならない列４１２を示す。この冗長列は、従来技術におけると同様、図３のステップを実行する前に、Must予備処理の一部として割り当てられる。
図４Ｂは、２つのクラスタ４１４および４１６を示す。これらはステップ３２０において識別される。クラスタ４１４は３つの行および２つの列に及ぶ。クラスタ４１６は、２つの行および２つの列に及ぶ。図４の例では、セグメントは３つの冗長列および３つの冗長行を有する。１列が既に使用され、残っているのは３つの冗長行および２つの冗長列である。クラスタ４１４および４１６の各々は、３つの冗長行または２つの冗長列を用いなくても修理可能であるので、これらには双方とも（Ｒ，Ｃ）という値が割り当てられる。したがって、処理はステップ３２４を通過して３２６に移る。
図４Ｂのセグメントは、合計で、５つの行および４つの列に障害セルを有する。使用可能な冗長行が３つ、使用可能な冗長列が２つあるのみであるので、このセグメントには、（Ｒ*，Ｃ*）という（ｒ，ｃ）値が割り当てられる。
次に処理はステップ３３２に移行する。ステップ３３２において、クラスタ４１４および４１６を選択して、更に別の処理を行う。セグメントの（ｒ，ｃ）値は（Ｒ*，Ｃ*）であるので、これらのクラスタの１つにおいて、行または列のいずれかが交換可能がある。
ステップ３３４において、狭幅度評価基準を適用する。クラスタ４１６は、行寸法が最も狭く、２行に及ぶに過ぎない。クラスタ４１４および４１６は各々、列寸法が２であり、したがって更に別の処理のために双方とも保持される。
ステップ３３５における行方向の最大最小処理では、いずれの列においても未修理障害セルの最小数は１である。図４Ｂにおけるセルの内２つが、この数を共有する。これらの各々は、その行における２つの内の１つである。したがって、各々は、（２，１）で示されるランクを有する。このようにして、ステップ３３５において、双方の行４１３Ａおよび４１３Ｂは、交換可能な行として、識別される。
クラスタ４１４のみが、列の交換に対して適格である。クラスタ４１４におけるセルの内、２つのセルが、最低の行カウントである、１の行カウントを有する。したがって、これらは各々（１，３）というランクを有する。ランク（１，３）のセルは双方とも列４２０に含まれるので、列４２０は、交換に対する単一の最良列となる。
このようにして、列４２０ならびに行４１３Ａおよび４１３Ｂは、可能な交換目標となる。しかしながら、（１，３）というランクを有する列は、ランク（２，１）の行よりも、補引数は大きい。このために、列４２０が、交換のための単一の最良候補として選択され、ステップ３３６は不要となる。したがって、ステップ３３８において、列スペアが割り当てられる。
図３の処理を通過する次のパスでは、残っている冗長列は１つである。したがって、ステップ３１８では、障害要素が１つよりも多いいずれかの行が、行と交換すべき要素として識別される。したがって２つの障害セルを含む行４２２が修理される。
図４Ｄに示すように、この割り当てを行った後、２つのシングレット障害が残るのみとなる。図３の処理を通過する次のパスでは、残りの冗長列は１つ、および残りの冗長行は２つである。冗長要素よりも多い障害を含む行または列がないので、修理すべきものはない。また、識別されるクラスタもない。したがって、処理はステップ３２６に移行する。
図４Ｄに示すセグメントは、（Ｒ，Ｃ*）の値を有する。したがって、実行はステップ３３２に移行し、ここで交換する行を指定する。この場合、どのシングレットがその行を受け取るかは問題でない。行４２６が割り当てられる。
次のパスでは、１つのシングレットのみが残り、１つの冗長行および１つの冗長列がある。したがって、セグメント値は（Ｒ，Ｃ）となり、いずれの冗長要素を用いてもよい。図４の例では、列の交換に優先度がある。したがって、列４２４を適用して、残りの障害を修理する。
図４の単純な例では、１つのセグメントを示すに過ぎないので、セグメントの（ｒ，ｃ）値を判定する必要がない。しかしながら、スペアを共有する多数のセグメントがある場合、セグメントの（ｒ，ｃ）値を用いてセグメントを選択することにより、ある冗長要素が他のセグメントにおいて修理を行うために必要な場合に、その冗長要素を１つのセグメントに使用しないことを保証する。
他の例を図５に示す。図５Ａは、メモリ・セグメントにおける障害セルのパターンを示す。図５Ｂに、冗長列５１２を用い、Must予備処理にしたがって、３つ以上の不良セルを有する列を修理することを示す。
また、図５Ｂは、２つのクラスタ５１４および５１６も示す。クラスタ５１６は、（Ｒ，Ｃ）の値を有する。したがって、ステップ３２４において、クラスタ５１４が修理に適格であると判定される。Ｃ*値は、修理のために１行を割り当てなければならないことを示す。したがって、ステップ３３０では、修理の選択をクラスタ５１４内の行に限定する。
識別されたクラスタが１つのみであるので、ステップ３３４における選択の一層の絞り込みは行わない。
クラスタ５１４内の障害セルは、左から右、上から下の順に、（２，３），（２，１），（２，３），（２，１）および（１，３）のランクを有する。これらの内、最小の列引数は１である。最大の補引数は２である。これらのセルの内２つが（２，１）のランクを共有する。したがって、ステップ３３５において、行５１８Ａおよび５１８Ｂが、各々、交換に可能な行として識別される。
ステップ３３６における非交差評価基準では、選択を絞り込まない。何故なら、列の選択はなく、列の選択と交差する行もないからである。したがって、行の内の１つをランダムに選択する。行５１８が割り当てられる。
図５Ｃでは、この修理の後、列５２０内に３つの障害セルがあることを示す。ここでは、残っている冗長行は２つのみであるので、これら３つの障害セルは、列を用いて修理しなければならない。したがって、次のパスでは、実行はステップ３１８を通過してステップ３２８に進み、ここで列５２０を適用する。図５Ｄに示すように、次のパスでは、残りの冗長列が１つ、および残りの冗長行が２つである。行５２４は２つの障害セルを含む。したがって、行によってこれを修理しなければならない。この場合も、実行はステップ３１８を通過してステップ３３８に進み、ここで冗長行５２４を適用する。
図５Ｅは、クラスタの一部ではない、残りの単一障害セルを、冗長列を用いて修理することを示す。図４の例におけると同様、この修理には冗長列または冗長行のいずれを用いることも可能であるが、この例は、列の交換に対する優先度を示す。
本発明のプロセスによれば、不良メモリ・セルの修理に使用するために、冗長要素を迅速に割り当てる。この割り当ては効率的でもある。このように、メモリの製造時間は大幅に短縮される。
本発明のプロセスは、修理するための冗長行または冗長列を最終的に必要とするセルを迅速に識別し、かかる冗長要素を修理のために割り当てるので、有効に作用するものと確信する。限られた数の冗長要素でメモリの修理が可能であり、この順序で障害セルを処理する結果として、その修理が行われる。
一方、最終的に冗長行を必要とする不良セルが、冗長行よりも多い場合、本発明の方法は、この結果を迅速に得ることができる。最終的に冗長行を必要とするセルが冗長行よりも多い場合でも、同じことが言える。したがって、本発明は、修理できないメモリを修理しようとする際の処理時間の短縮を図るものでもある。
以上これらの利点が得られる。
一実施例について説明してきたが、多数の代替実施例および変容も可能である。例えば、ステップ３１８を省略してもよい。
また、種々の処理ステップの順序を逆にすることも可能である。例えば、クラスタ処理を扱うステップ３２０，３２２および３２４は、セグメントを扱うステップ３２６および３２８の後に実行してもよい。
また、解決に到達しない場合を識別するステップを、本処理に追加(embellish)してもよい。例えば、冗長要素よりもクラスタの方が多い場合、修理は不可能である。あるいは、Ｃ*クラスタの方が冗長行よりも多い場合、修理は行われない。Ｒ*クラスタの方が冗長列よりも多い場合も、修理は行われない。これらの条件をチェックして、処理時間を短縮することも可能である。
他の追加として、図３のステップ３１２を変更し、プロセス全体を繰り返す必要がない場合を検出するようにしてもよい。冗長メモリ構造が残っていても、１つの種類しかない場合、プロセス全体を繰り返す必要はない場合もあり得る。その場合、選択すべき種類が１つであるので、修理するために行または列のどちらを用いるべきかについてのチェックを行う必要はない。
また、図１に示したメモリ検査システムは、商業的に入手可能なメモリ製造機器の例示であることを注記すべきであろう。様々な態様が可能である。例えば、図３との関連で説明した処理は、検査システム・コントローラ１４の代わりに、レーザ修理部１１６において実行することも可能である。かかる実施例では、検査システム・コントローラ１１４は、冗長行および列の必要な交換を行うようにレーザ修理部１１６に命令するデータ・ファイルではなく、障害位置を示すデータをレーザ位置部に渡すことになる。この実施例では、処理の終了時に全てを行うのではなく、冗長行および列を割り当てる毎に、修理を行うことができる。
他の構成では、図３のプロセスは、別個のコンピュータで実行することも可能である。かかる実施例は、検査システム・コントローラ１１４およびレーザ修理部１１６が、本方法の必要なステップを実行するのに適したメモリまたは処理能力を有していない場合に好適である。
また、本発明による処理のために述べた特定のデータ構造は例示であることは認められよう。多くのデータ構造が、本発明を実施するために可能である。
更に、開示した本発明の実施例は、２つのプロセスを用いるが、これらを別個に用いてもよい。一方のプロセスにおいて、最小幅および最短長（即ち、最小の引数および最大の補引数を有する）の行または列（一般的には「メモリ構造」と呼ぶことも可能である）を識別することによって、交換のための行および列を選択する。このプロセスを「最大最小プロセス」と呼ぶ。
プロセスの第２部分は、クラスタおよびセグメントのために（ｒ，ｃ）値を使用する。これらの値は、セグメントまたはクラスタのどちらを最初に処理すべきかについての選択を変更する。（ｒ，ｃ）ロジックは、他の従来からのメモリ修理プロセスでも使用可能である。あるいは、（ｒ，ｃ）ロジックを使用せずに、最小プロセスを用いることも可能である。
【図１】
0003871714.tif 000002
【図２Ａ】
0003871714.tif 000003
【図２Ｂ】
0003871714.tif 000004
【図３】
0003871714.tif 000005
【図４Ａ】
0003871714.tif 000006
【図４Ｂ】
0003871714.tif 000007
【図４Ｃ】
0003871714.tif 000008
【図４Ｄ】
0003871714.tif 000009
【図４Ｅ】
0003871714.tif 000010
【図５Ａ】
0003871714.tif 000011
【図５Ｂ】
0003871714.tif 000012
【図５Ｃ】
0003871714.tif 000013
【図５Ｄ】
0003871714.tif 000014
【図５Ｅ】
0003871714.tif 000015