JP3581249B2 - 半導体不良ビット救済処理方法及び半導体不良ビット救済処理装置 - Google Patents
半導体不良ビット救済処理方法及び半導体不良ビット救済処理装置 Download PDFInfo
- Publication number
- JP3581249B2 JP3581249B2 JP12213898A JP12213898A JP3581249B2 JP 3581249 B2 JP3581249 B2 JP 3581249B2 JP 12213898 A JP12213898 A JP 12213898A JP 12213898 A JP12213898 A JP 12213898A JP 3581249 B2 JP3581249 B2 JP 3581249B2
- Authority
- JP
- Japan
- Prior art keywords
- spare
- solution
- line
- memory block
- rescue
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/78—Masking faults in memories by using spares or by reconfiguring using programmable devices
- G11C29/80—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
- G11C29/808—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout using a flexible replacement scheme
Landscapes
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Description
【発明の属する技術分野】
本発明は、メモリセルの不良をスペアで救済するための解を求める半導体不良ビット救済処理方法及び半導体不良ビット救済処理装置に関する。
【0002】
【従来の技術】
従来、Random Access Memories(RAMs)と呼ばれる半導体メモリーの集積度がまだそれ程高くないときは、製造初期にある程度のビット不良が発生しても、これを製造条件の改善等で解消してきた。
【0003】
しかし、半導体メモリーの容量の増大にともなって、ビット不良の解消を図ろうとするだけでなく、ある程度のビット不良の発生を前提として、ビット不良を救済する(ビット不良を含むラインを代替する)スペアと呼ばれる予備ラインを設ける技術が開発された。スペアを設ければ、実質的な集積度は減るが、結局、生産性などの観点で有利だからである。
【0004】
このスペアの技術を利用する場合、まず、メモリーテスタ装置(あるいはビット・フェイル・テスタ装置等)において不良ビットを検出した後、不良ビットの位置に応じて、所定本数ずつ設けられた行スペアと列スペアのうちどのスペアでどの不良ラインを救済するかについて決定する処理を、スペアの使用方法に制約がある場合にはそれを考慮しつつ行い、この結果に従ってリペア装置においてチップ上に設けられた切替アドレス設定用のヒューズをレーザで切断するなどして各スペアで代替すべきラインのアドレスを設定する。
【0005】
以下、上記処理の従来技術における問題点に関して詳しく説明する。上記のように半導体メモリーは、主要なメモリーアレー部分に加えて、スペアと呼ばれる予備ライン(行用のラインと列用のライン)を備えている。この予備ラインは、通常、修理を担当するメモリーアレー領域ごとに分けてまとめられて配置されている。不良ビットセルが検出されると、その不良ビットセルを含むライン(行ライン、列ライン)を不良ラインとして、そのラインを、その領域の修理を担当している予備ラインと交換する。全ての不良ビットセルが予備ラインで救済されるまで、不良ラインと予備ラインの交換を続ける。予備ラインにより全ての不良ビットセルが救済されれば、その半導体メモリーの救済は成功である。一方、全ての予備ラインが使われても、不良ビットセルが存在する場合(あるいはある担当範囲内での全予備ラインが使われても、その担当範囲内に不良ビットセルが存在する場合)は、救済不可と判定する。なお、上記救済処理にあたっては、救済可能な場合に使用する予備ライン数は最小であることが望ましい等、製造コストに関して最適な救済方法に関する判断基準が設けられている場合が多い。
【0006】
従来の救済処理方法では、不良ラインと予備ラインとの間の対応付けに関して全ての組合せを計算して評価すると多大な計算時間を要することから、例えば、最も不良の多いラインから順に予備ラインを割り当てて行き、全ての予備ラインが割り当てられても救済できない場合は、溯って割り当てを変更する方法が取られていた。あるいは、左側の不良列(または上側の不良行)から順に予備ラインを割り当てて行き、全ての予備ラインが割り当てられても救済できない場合は、溯って割り当てを変更する方法が取られていた。
【0007】
しかし、これら従来の救済方法では、救済可能な不良ラインと予備ラインの間の対応関係が存在する場合でも、限られた計算時間内では全ての組合せを確かめられないために、救済できる組合せを確かめるまでに制限時間になり救済不可と判定したり、あるいは救済できたとしても最適解には遠い救済解を提示(出力)することがあった。
【0008】
特に、予備ラインに不良ビットセルが存在する場合はその予備ラインの適用の組合せも加わり、また、予備ラインが複数のメモリーアレイ領域を担当できる場合は複数の領域が一つの予備ラインを取り合うので、このような場合は組合せ数はさらに増大し、解を求めるのが困難になるという問題点があった。
【0009】
近年、半導体メモリーは、その集積度とアーキテクチャの複雑性が益々高まり、従来の救済方法では、非常に簡単な不良の場合を除くとスペアによるライン交換の任意の組合せは莫大な数となり、その計算には時間がかかるために、限られた処理時間内では救済不可となる場合がさらに多くなって、生産性の低下となっている。
【0010】
【発明が解決しようとする課題】
上述したように従来は、不良ラインを予備ラインで救済する解が存在する場合でも、救済不可とされることが多々発生するという問題があった。特に、予備ラインに不良ビットセルが存在する場合は、救済解の探索が一段と難しくなるという問題があった。
【0011】
本発明は、上記事情を考慮してなされたものであり、予備ラインにより全不良ビットが救済可能か否かを短時間に判定することができ、また救済可能の場合には予備ラインの使用の仕方に関して最適もしくは準最適な解を提示することのできる半導体不良ビット救済処理方法及び半導体不良ビット救済処理装置を提供することを目的とする。
【0012】
【課題を解決するための手段】
(1)本発明は、半導体デバイスにおけるビットデータを記憶するための第1のセルの不良ビットを予備として設けられた第2のセルにより救済する半導体不良ビット救済処理方法において、現実の第1のセルおよび第2のセルからなる救済対象に対して仮想的に与えた第3のセルにより、該現実の第1のセルおよび第2のセルの不良ビットを救済する手順を有することを特徴とする。
【0013】
ここで、「救済する」とは、第1のセルに生じた不良ビットを、代替可能な第2のセルにより代替できるようにする程度の意味として用いている。
【0014】
(2)本発明は、半導体デバイスのメモリーブロックの不良ビットを、予備として設けられた予備ラインにより救済する半導体不良ビット救済処理方法において、現実のメモリーブロックならびに予備ラインおよびリンボからなる救済対象に対して仮想的に与えた予備ラインにより、該メモリーブロックならびに予備ラインおよびリンボのビット不良を救済する手順を有することを特徴とする。
【0015】
(3)本発明は、半導体デバイスのメモリーブロックならびに予備ラインおよびリンボの不良ビットの位置を示す情報をもとに、予備ラインによりメモリーブロックの不良ビットを救済する半導体不良ビット救済処理方法において、現実のメモリーブロックならびに予備ラインおよびリンボからなる救済対象に対して仮想的に与えた予備ラインにより、該メモリーブロックならびに予備ラインおよびリンボのビット不良を救済する解を求め、この求められた解に基づいて、現実の予備ラインによりメモリーブロックの不良ビットを救済する解を求めることを特徴とする。
【0016】
(4)好ましくは、前記仮想的な予備ラインに係る解のうち、該仮想的な予備ラインにより救済された現実のメモリーブロックのラインを、現実の予備ラインで救済するラインとし、該仮想的な予備ラインに係る解のうち、仮想的な予備ラインにより救済された現実の予備ライン以外の現実の予備ラインを、救済に使用可能な予備ラインとするようにしてもよい。
【0017】
(5)好ましくは、前記仮想的な予備ラインに係る解のうち、該仮想的な予備ラインにより救済された現実のメモリーブロックのラインを、現実の予備ラインで救済するラインとして決定するとともに、該仮想的な予備ラインに係る解のうち、仮想的な予備ラインにより救済された現実の予備ライン以外の現実の予備ラインを、救済に使用可能な予備ラインとして決定し、この決定にもとづいて救済するメモリーブロックのラインとその救済に使用する予備ラインとの対応関係を決定するようにしてもよい。
【0018】
(6)好ましくは、仮想的な予備ラインにより現実のメモリーブロックならびに予備ラインおよびリンボからなる救済対象を救済する解を求めるに際し、現実のメモリーブロックと現実の予備ラインとの間に保持される対応関係に対応するように現実のメモリーブロックならびに予備ラインおよびリンボからなる救済対象に対して仮想的な予備ラインを与え、現実のメモリーブロックを救済するにあたって現実の予備ラインに与えられている制約条件に対応する条件を仮想的な予備ラインに与えて、前記解を求めるようにしてもよい。
【0019】
(7)好ましくは、仮想的な予備ラインにより現実のメモリーブロックならびに予備ラインおよびリンボからなる救済対象を救済する解を求めるに際し、現実のメモリーブロックと現実の予備ラインとの間に保持される対応関係に対応するように現実のメモリーブロックならびに予備ラインおよびリンボからなる救済対象に対して仮想的な予備ラインを与え、現実のメモリーブロックを救済するにあたって現実の予備ラインに与えられている制約条件のうち所定の条件を仮想的な予備ラインに与えて、前記解を求め、この求められた解が前記制約条件の残りの条件を満たす場合に、この解を求めるべき解とするようにしてもよい。
【0020】
(8)好ましくは、仮想的な予備ラインにより現実のメモリーブロックならびに予備ラインおよびリンボからなる救済対象を救済する解を求めるに際し、現実のメモリーブロックならびに予備ラインおよびリンボに含まれる全ての不良ビットについて行識別子と列識別子の2つの座標要素で特定される位置情報を表現する2部グラフを作成し、作成された2部グラフからDM分解およびその縮約グラフを算出し、算出されたDM分解およびその縮約グラフにもとづいて、仮想的な予備ラインとこれにより救済されるメモリーブロックにおける不良ビットを含むラインとの対応関係を求めるようにしてもよい。
【0021】
(9)好ましくは、仮想的な予備ラインにより現実のメモリーブロックならびに予備ラインおよびリンボからなる救済対象を救済する解を求めるに際し、現実のメモリーブロックならびに予備ラインおよびリンボに含まれる全ての不良ビットについて行識別子と列識別子の2つの座標要素で特定される位置情報を表現する2部グラフを作成し、作成された2部グラフからDM分解およびその縮約グラフを算出し、算出されたDM分解およびその縮約グラフにもとづいて前記解を求める第1の処理を実行し、現実のメモリーブロックならびに予備ラインおよびリンボに含まれる全ての不良ビットの位置情報、予備ラインの使用方法に関する制約条件および予備ラインの本数制限、現実のメモリーブロックを救済する仮想の予備ラインの最小化を整数計画問題で表現し、その整数解として前記解を求める第2の処理を、前記第1の処理の実行結果をバックアップするために、実行するようにしてもよい。
【0022】
(10)好ましくは、規定された時間だけ前記第1の処理を実行しても解が得られなかった場合に、前記第2の処理を実行するようにしてもよい。
【0023】
(11)好ましくは、仮想的な予備ラインにより現実のメモリーブロックならびに予備ラインおよびリンボからなる救済対象を救済する解を求めるに際し、現実のメモリーブロックならびに予備ラインおよびリンボに含まれる全ての不良ビットの位置情報、予備ラインの使用方法に関する制約条件および予備ラインの本数制限、現実のメモリーブロックを救済する仮想の予備ラインの最小化を整数計画問題で表現し、その整数解として前記解を求めるようにしてもよい。
【0024】
(12)好ましくは、前記整数計画問題を、整数条件を実数条件に緩和して線形計画問題として解き、整数解が得られた場合に、これを求めるべき解とするようにしてもよい。
【0025】
(13)好ましくは、仮想的な予備ラインにより現実のメモリーブロックならびに予備ラインおよびリンボからなる救済対象を救済する解を求める手順には、全ての不良ビットを救済できる解が存在しないことを検出する手順を含むようにしてもよい。
【0026】
(14)好ましくは、仮想的な予備ラインにより現実のメモリーブロックならびに予備ラインおよびリンボからなる救済対象を救済する解を求めるに際し、仮想的な予備ラインの使用の態様を変えた複数の解を求め、求められた解のうち、使用すべき現実の予備ラインの数を最小とするものを求めるべき解とするようにしてもよい。
【0027】
(15)好ましくは、仮想的な予備ラインにより現実のメモリーブロックならびに予備ラインおよびリンボからなる救済対象を救済する解を求めるに際し、前処理としてラインフェイルを救済する解を求め、前処理において救済された不良ビットを除いた全不良ビットを、前処理において使用した仮想的な予備ラインを除いた残りの仮想的な予備ラインにより救済する解を求め、これら解を結合したものを求めるべき解とするようにしてもよい。
【0028】
(16)また、本発明は、半導体デバイスにおけるビットデータを記憶するための第1のセルの不良ビットを予備として設けられた第2のセルにより救済する解を求める半導体不良ビット救済処理装置において、現実の第1のセルおよび第2のセルからなる救済対象に対して仮想的に与えた第3のセルにより、該現実の第1のセルおよび第2のセルの不良ビットを救済する手段を備えたことを特徴とする。
【0029】
また、本発明は、半導体デバイスのメモリーブロックの不良ビットを、予備として設けられた予備ラインにより救済する解を求める半導体不良ビット救済処理装置において、現実のメモリーブロックならびに予備ラインおよびリンボからなる救済対象に対して仮想的に与えた予備ラインにより、該メモリーブロックならびに予備ラインおよびリンボのビット不良を救済する処理手段を備えたことを特徴とする。
【0030】
また、本発明は、半導体デバイスのメモリーブロックならびに予備ラインおよびリンボの不良ビットの位置を示す情報をもとに、予備ラインによりメモリーブロックの不良ビットを救済する解を求める半導体不良ビット救済処理装置において、現実のメモリーブロックならびに予備ラインおよびリンボからなる救済対象に対して仮想的に与えた予備ラインにより、該メモリーブロックならびに予備ラインおよびリンボのビット不良を救済する解を求める処理手段と、この手段により求められた前記解に基づいて、現実の予備ラインによりメモリーブロックの不良ビットを救済する解を求める手段とを備えたことを特徴とする。
【0031】
好ましくは、現実の予備ラインによりメモリーブロックの不良ビットを救済する解を求める手段は、前記仮想的な予備ラインに係る解のうち、該仮想的な予備ラインにより救済された現実のメモリーブロックのラインを、現実の予備ラインで救済するラインとし、該仮想的な予備ラインに係る解のうち、仮想的な予備ラインにより救済された現実の予備ライン以外の現実の予備ラインを、救済に使用可能な予備ラインとするようにしてもよい。
【0032】
好ましくは、現実の予備ラインによりメモリーブロックの不良ビットを救済する解を求める手段は、前記仮想的な予備ラインに係る解のうち、該仮想的な予備ラインにより救済された現実のメモリーブロックのラインを、現実の予備ラインで救済するラインとして決定するとともに、該仮想的な予備ラインに係る解のうち、仮想的な予備ラインにより救済された現実の予備ライン以外の現実の予備ラインを、救済に使用可能な予備ラインとして決定し、この決定にもとづいて救済するメモリーブロックのラインとその救済に使用する予備ラインとの対応関係を決定するようにしてもよい。
【0033】
好ましくは、前記処理手段は、現実のメモリーブロックと現実の予備ラインとの間に保持される対応関係に対応するように現実のメモリーブロックならびに予備ラインおよびリンボからなる救済対象に対して仮想的な予備ラインを与え、現実のメモリーブロックを救済するにあたって現実の予備ラインに与えられている制約条件に対応する条件を仮想的な予備ラインに与えて、前記解を求めるようにしてもよい。
【0034】
好ましくは、前記処理手段は、現実のメモリーブロックと現実の予備ラインとの間に保持される対応関係に対応するように現実のメモリーブロックならびに予備ラインおよびリンボからなる救済対象に対して仮想的な予備ラインを与え、現実のメモリーブロックを救済するにあたって現実の予備ラインに与えられている制約条件のうち所定の条件を仮想的な予備ラインに与えて、前記解を求め、この求められた解が前記制約条件の残りの条件を満たす場合に、この解を求めるべき解とするようにしてもよい。
【0035】
好ましくは、前記処理手段は、現実のメモリーブロックならびに予備ラインおよびリンボに含まれる全ての不良ビットについて行識別子と列識別子の2つの座標要素で特定される位置情報を表現する2部グラフを作成し、作成された2部グラフからDM分解およびその縮約グラフを算出し、算出されたDM分解およびその縮約グラフにもとづいて、仮想的な予備ラインとこれにより救済されるメモリーブロックにおける不良ビットを含むラインとの対応関係を求めるようにしてもよい。
【0036】
好ましくは、前記処理手段は、現実のメモリーブロックならびに予備ラインおよびリンボに含まれる全ての不良ビットについて行識別子と列識別子の2つの座標要素で特定される位置情報を表現する2部グラフを作成し、作成された2部グラフからDM分解およびその縮約グラフを算出し、算出されたDM分解およびその縮約グラフにもとづいて前記解を求める第1の処理を実行し、現実のメモリーブロックならびに予備ラインおよびリンボに含まれる全ての不良ビットの位置情報、予備ラインの使用方法に関する制約条件および予備ラインの本数制限、現実のメモリーブロックを救済する仮想の予備ラインの最小化を整数計画問題で表現し、その整数解として前記解を求める第2の処理を、前記第1の処理の実行結果をバックアップするために、実行するようにしてもよい。
【0037】
好ましくは、前記処理手段は、規定された時間だけ前記第1の処理を実行しても解が得られなかった場合に、前記第2の処理を実行するようにしてもよい。
【0038】
好ましくは、前記処理手段は、仮想的な予備ラインにより現実のメモリーブロックならびに予備ラインおよびリンボからなる救済対象を救済する解を求めるに際し、現実のメモリーブロックならびに予備ラインおよびリンボに含まれる全ての不良ビットの位置情報、予備ラインの使用方法に関する制約条件および予備ラインの本数制限、現実のメモリーブロックを救済する仮想の予備ラインの最小化を整数計画問題で表現し、その整数解として前記解を求めるようにしてもよい。
【0039】
好ましくは、前記処理手段は、前記整数計画問題を、整数条件を実数条件に緩和して線形計画問題として解き、整数解が得られた場合に、これを求めるべき解とするようにしてもよい。
【0040】
好ましくは、前記処理手段は、全ての不良ビットを救済できる解が存在しないことを検出する手段を有するようにしてもよい。
【0041】
好ましくは、前記処理手段は、仮想的な予備ラインの使用の態様を変えた複数の解を求め、求められた解のうち、使用すべき現実の予備ラインの数を最小とするものを求めるべき解とするようにしてもよい。
【0042】
好ましくは、前記処理手段は、前処理としてラインフェイルを救済する解を求める手段と、前処理において救済された不良ビットを除いた全不良ビットを、前処理において使用した仮想的な予備ラインを除いた残りの仮想的な予備ラインにより救済する解を求め、これら解を結合したものを求めるべき解とする手段とを有するように構成してもよい。
【0043】
また、本発明は、救済対象となる半導体デバイスのメモリーブロックならびに予備ラインおよびリンボから構成される処理単位が、垂直方向の予備ラインは前記メモリーブロックの垂直方向の長さを持つ1本のラインとして垂直方向の所与のブロックに属す不良ラインに割当て可能であり且つ水平方向の予備ラインは前記メモリーブロックの水平方向の長さを持つ1本のラインとして水平方向の所与のブロックに属す不良ラインに割当て可能である、という条件を満たさない場合に、予備ラインによりメモリーブロックの不良ビットを救済する半導体不良ビット救済処理方法において、前記条件を満たすように前記処理単位を分割して形成した複数の部分処理単位夫々ごとに、予備ラインによりメモリーブロックの不良ビットを救済する解の候補を求め、前記部分処理単位夫々の解の候補を合成して前記処理単位の解を生成することを特徴とする。
【0044】
前記部分処理単位に対する救済する解は、例えば、(1)〜(9)の方法により求めることができる。
【0045】
好ましくは、前記部分処理単位夫々は少なくとも1つの他の部分処理単位との間で一部の予備ライン群を共用するものであり、前記部分処理単位夫々の解の候補を合成するに際しては、複数の部分処理単位間でのスペア群の共用形態を考慮して、前記処理単位の解を生成するようにしてもよい。
【0046】
好ましくは、前記解の候補を求めるに際しては、前記複数の部分処理単位夫々ごとに所定数ずつの解の候補を求めておき、前記処理単位の解を生成するに際しては、前記部分処理単位夫々から所定の手順で1つずつ合成すべき解の候補を選択し当該解の候補の組合わせにより前記処理単位の解が得られるか否かを判断する一連の処理を繰返し行い、最初に前記処理単位の解が得られたときに当該解を採用するものとするようにしてもよい。
【0047】
好ましくは、前記解の候補を求めるに際しては、前記複数の部分処理単位夫々ごとに所定数ずつの解の候補を求めておき、前記処理単位の解を生成するに際しては、前記部分処理単位夫々から1つずつ合成すべき解の候補を選択する全部または一部の組合わせ夫々について、当該解の候補の組合わせにより前記処理単位の解になり得るものが得られた場合にこれを前記処理単位の解の候補とし、前記処理単位の解の候補が複数得られた場合には所定の基準で選択した1つの前記処理単位の解の候補を前記処理単位の解として採用するものとするようにしてもよい。
【0048】
好ましくは、前記部分処理単位の解の候補を合成するに際して、複数の前記部分処理単位間で共用されている予備ライン群については、当該予備ライン群を共用する部分処理単位の解の候補のうちの少なくとも1つにおいて当該予備ライン群のうちで使用不可とされたものの和集合を、当該予備ライン群における使用不可の予備ラインの集合として、当該予備ライン群に関する前記処理単位の解を求めるようにしてもよい。
【0049】
なお、複数の前記部分処理単間で共用されていない予備ライン群については、当該予備ライン群を持つ部分処理単の解の候補における当該予備ライン群に関する部分を前記処理単位の解として採用することができる。
【0050】
好ましくは、前記部分処理単位の解の候補を合成するに際して、使用不可の予備ライン以外の予備ラインを用いたメモリブロックの不良ビットの救済処理を、各部分処理単位について逐次的に行うとともに、当該部分処理単位の解の候補において使用不可となっている予備ラインおよびそれまでの救済処理において使用済みとなった予備ラインの和集合を当該部分処理単位における使用不可の予備ラインとして、前記処理単位の解を求めるようにしてもよい。
【0051】
また、本発明は、救済対象となる半導体デバイスのメモリーブロックならびに予備ラインおよびリンボから構成される処理単位が、垂直方向の予備ラインは前記メモリーブロックの垂直方向の長さを持つ1本のラインとして垂直方向の所与のブロックに属す不良ラインに割当て可能であり且つ水平方向の予備ラインは前記メモリーブロックの水平方向の長さを持つ1本のラインとして水平方向の所与のブロックに属す不良ラインに割当て可能であるという条件を満たさない場合に、予備ラインによりメモリーブロックの不良ビットを救済する半導体不良ビット救済処理装置において、前記条件を満たすように前記処理単位を分割して形成した複数の部分処理単位夫々ごとに、予備ラインによりメモリーブロックの不良ビットを救済する解の候補を求める手段と、前記部分処理単位夫々の解の候補を合成して前記処理単位の解を生成する手段とを備えたことを特徴とする。
【0052】
なお、装置に係る本発明は方法に係る発明としても成立し、方法に係る発明は装置に係る発明としても成立する。
【0053】
また、装置に係る本発明や方法に係る本発明は、これを実現するプログラムを格納した記録媒体に係る発明としても成立する。
【0054】
すなわち、本発明は、半導体デバイスにおけるビットデータを記憶するための第1のセルの不良ビットを予備として設けられた第2のセルにより救済する半導体不良ビット救済処理をコンピュータに実行させるプログラムであって、現実の第1のセルおよび第2のセルからなる救済対象に対して仮想的に与えた第3のセルにより、該現実の第1のセルおよび第2のセルの不良ビットを救済させる手順を有するプログラムを記録したコンピュータ読取り可能な記録媒体を要旨とする。
【0055】
また、本発明は、半導体デバイスのメモリーブロックの不良ビットを、予備として設けられた予備ラインにより救済する半導体不良ビット救済処理をコンピュータに実行させるプログラムであって、現実のメモリーブロックならびに予備ラインおよびリンボからなる救済対象に対して仮想的に与えた予備ラインにより、該メモリーブロックならびに予備ラインおよびリンボのビット不良を救済させる手順を有するプログラムを記録したコンピュータ読取り可能な記録媒体を要旨とする。
【0056】
また、本発明は、半導体デバイスのメモリーブロックならびに予備ラインおよびリンボの不良ビットの位置を示す情報をもとに、予備ラインによりメモリーブロックの不良ビットを救済する半導体不良ビット救済処理をコンピュータに実行させるプログラムであって、現実のメモリーブロックならびに予備ラインおよびリンボからなる救済対象に対して仮想的に与えた予備ラインにより、該メモリーブロックならびに予備ラインおよびリンボのビット不良を救済する解を求めさせ、この求められた解に基づいて、現実の予備ラインによりメモリーブロックの不良ビットを救済する解を求めさせるプログラムを記録したコンピュータ読取り可能な記録媒体を要旨とする。
【0057】
また、他の本発明も、コンピュータに当該発明に相当する手順を実行させるための(あるいはコンピュータを当該発明に相当する手段として機能させるための、あるいはコンピュータに当該発明に相当する機能を実現させるための)プログラムを記録したコンピュータ読取り可能な記録媒体として成立する。
【0058】
本発明では、メモリーブロックの不良ビットを予備ラインで救済する解と、メモリーブロックならびに予備ラインおよびリンボを仮想的なメモリーブロックとした場合に仮想される不良の予備ラインでこの仮想的なメモリーブロックの不良ビットを救済する解との間に一定の関係が存在することを見出だしたことにもとづき、不良ビットの存在し得る現実の予備ラインで現実のメモリーブロックの不良ビットを救済する解を直接求める代わりに、不良ビットの存在しない仮想の予備ラインで仮想のメモリーブロックの不良ビットを救済する解を求め、上記の一定の関係にもとづいて、この解から現実の解を得るものである。
【0059】
ここで、解とは、仮想の予備ラインに関する場合、例えば次のような意味、すなわち仮想の予備ラインにより救済されるラインの集合を示す情報である。
【0060】
また、解とは、現実の予備ラインに関する場合、例えば次のような意味、すなわち仮想の予備ラインにより救済されるメモリーブロックのラインと、そのラインの救済に使用する予備ラインとの対応を示す情報である。
【0061】
また、解とは、現実の予備ラインに関する場合、例えば次のような意味、すなわち予備ラインにより救済するメモリーブロックのラインと、そのラインの救済に使用可能な予備ラインとを示す情報である。この場合、使用可能な予備ラインが複数存在するならば、この情報をもとに、後にリペア工程に先だって実際の対応を決定することになる。
【0062】
より具体的には、例えば、メモリーブロックならびに予備ラインおよびリンボからなるビットマトリックス全体を対象とする、現実の予備ライン数に等しい不良ビットのない予備ラインを仮想して、解を求める。求められた解において、現実の予備ラインが仮想の予備ラインで救済されているような対応関係がある場合には、その現実の予備ラインは使用しないと解釈する。この場合、現実の予備ラインに不良ビットが存在しても、その予備ラインの割り当てに特別な扱いを必要としないので、解を求める処理が簡単になり高速化される。
【0063】
また、仮想の予備ラインと救済される不良ラインとの対応関係の存在は、現実の予備ラインと救済される不良ラインとの対応関係の存在と、必要不十分な関係にある。これにより、仮想の予備ラインによりメモリーブロックならびに予備ラインおよびリンボからなるビットマトリックス全体を救済可能な場合は、現実の予備ラインにより現実のメモリーブロック内の全不良ビットを救済することが可能となり、一方、仮想の予備ラインの本数では該ビットマトリックス全体を救済できない場合は、現実の予備ラインによりメモリーブロック内の全不良ビットを救済することが不可能となる。
【0064】
本発明によれば、不良ビットの存在し得る現実の予備ラインで現実のメモリーブロックの不良ビットを救済する解を直接求める代わりに、不良ビットの存在しない仮想の予備ラインで仮想のメモリーブロックの不良ビットを救済する解を求めるので、予備ラインに不良ビットが存在する場合にこの予備ラインの不良ビットを他の予備ラインで救済することを考慮しつつ解を求めるようなことが不要となり、比較的容易にかつ高速に解を求めることあるいは解が存在しないことを見地することができる。
【0065】
また、不良ビットセルが一様に散らばって出現するような場合あるいはラインフェイルを救済した後に残った不良の多くが孤立不良のような場合などには、制限時間を超える探索を行うことが極力少なくなり、不良ラインの使用本数を最小本数またはこれに極めて近い本数で実現した不良ラインと予備ラインとの間の対応関係を求めることが多くなると期待できる。
【0066】
また、本発明では、予備ラインを含めたメモリー全体の不良ビットセルの位置情報を2部グラフで表現して、その最大マッチングを算出することにより、配置された予備ラインの数では救済できないことを、短時間に判断できる。また、最大マッチングから算出されるDM分解を用いることにより、不良ラインと予備ラインの間の最適もしくは準最適な対応関係を短時間に決定できる。特に、不良ビットセルが一様に散らばって出現しているような場合あるいはラインフェイルを救済した後に残った不良の多くが孤立不良のような場合などには、最小本数で実現した対応関係を算出することが期待できる。
【0067】
また、本発明では、予備ラインを含めたメモリー全体の不良ビットセルの位置情報、および予備ラインの適用範囲と本数制限を整数計画問題で表現する。そして、その整数計画問題の整数条件を実数条件に緩和して得られる線形計画問題を解くことにより、実行可能解がない場合には救済不能と判定し、整数解が得られた場合は不良ラインと予備ラインの間の最適な対応関係を算出することができる。
【0068】
また、本発明によれば、救済対象となる半導体デバイスのメモリーブロックならびに予備ラインおよびリンボから構成される処理単位が、垂直方向の予備ラインは前記メモリーブロックの垂直方向の長さを持つ1本のラインとして垂直方向の所与のブロックに属す不良ラインに割当て可能であり且つ水平方向の予備ラインは前記メモリーブロックの水平方向の長さを持つ1本のラインとして水平方向の所与のブロックに属す不良ラインに割当て可能である、という条件を満たさない場合であっても、前記条件を満たすように前記処理単位を分割して形成した複数の部分処理単位夫々ごとに、予備ラインによりメモリーブロックの不良ビットを救済する解の候補を求め、前記部分処理単位夫々の解の候補を合成することによって、前記処理単位の解を得ることができる。
【0069】
【発明の実施の形態】
以下、図面を参照しながら発明の実施の形態を説明する。
【0070】
本実施形態では、例えば、メモリーテスト装置により得られた不良ビットの情報(メモリーブロック内の不良ビットだけでなく予備ライン(スペア)やリンボの不良ビットの情報も含む)をもとに、メモリーブロック内の不良ビットをスペアにより救済する方法(解)を求めあるいは救済不可であることを決定し、その結果は、これをもとにレーザでヒューズを切断してスペアで救済するラインのアドレスを設定する等の工程により不良ビットを救済するリペア装置に供されるような、半導体不良ビット救済処理装置のいくつかの例について説明する。本実施形態の半導体不良ビット救済処理装置は、ソフトウエアにより実現可能であり、メモリーテスト装置やリペア装置とは独立して設けることも、メモリーテスト装置やリペア装置に内蔵することも可能であるが、以下では独立して設けるものとして説明する。なお、メモリーテスト装置からは後述するラインフェイル処理が施されていない不良ビットの情報が与えられる場合を主として説明する。また、リペア装置に供される情報として、救済の仕方(救済されるラインと使用するスペアとの対応関係)を特定した情報を出力する場合を主として説明する。
【0071】
製造ラインにおいては、メモリーテストからリペアまでの工程は通常ロット単位(例えば、25ウエハ/ロット、200チップ/ウエハ)に行われるので、半導体不良ビット救済処理装置は基本的な処理単位としてはウエハ単位に動作し製造管理システムとのリンクの観点ではロット単位に稼働することが多い。一方、オフラインにおいては、半導体不良ビット救済処理装置は、ロット単位からメモリーブロック単位まで任意に使用可能なことが多い。しかし、いずれの場合においても、半導体メモリーの1チップは通常、同様の構成を有する複数のメモリーブロック(例えば4×8個)からなり、不良ビットの救済のためのスペアとリンボはメモリーブロックごとに設けられるので、本実施形態に係る不良ビット救済処理は、このメモリーブロック単位に行われることになる。以下では、1つのメモリーブロックに対する処理を中心に説明していく。
【0072】
本発明は、どのような構成を有する半導体メモリーあるいはメモリーを有する他のデバイスにも適用可能であるが、最初に、本実施形態を説明するために一例として用いる半導体メモリー(以下、RAMとする)の不良ビット救済に関する構成について説明する。
【0073】
図1に、本実施形態に係る半導体不良ビット救済処理装置が処理対象とするRAMの内部のメモリーブロック200と予備ライン(以下、スペアと呼ぶ)211〜214とリンボ215〜218の配置図の一具体例を示す。メモリーブロックの行方向のビット数や列方向のビット数が任意であるが、もちろん、メモリーブロックの行方向のビット数と水平のスペアのビット数は同一であり、メモリーブロックの列方向のビット数と垂直のスペアのビット数は同一である。また、リンボは、1つの水平のスペアと1つの垂直のスペアの組ごとに対応して1ビットずつ設けられる。
【0074】
図1のRAMでは、1つのメモリーブロック200を上下に2分割と左右に2分割した(全体として4分割した)サブブロックを考える(図1中の点線が分割の境界を示す)。つまり、図中のサブブロックBLK1(図中の左上の四半分201)、BLK2(図中の左下の四半分202)、BLK3(図中の右上の四半分203)、BLK4(図中の右下の四半分204)の集まりが1つのメモリーブロックに対応する。
【0075】
メモリーブロックの上、下、左、右には、それぞれ、3本、3本、6本、6本のスペア211,212,213,214が配置されている。
【0076】
4角にある3×6の行列215,216,217,218の要素は、リンボ(limbo)と呼ばれるメモリーセルであり、救済に使用した水平方向のスペアと垂直方向のスペアとの交点に位置するビットを代替するものである。詳しくは後述するように、リンボに不良ビットがある場合、スペアの使用に制約(リンボに関する制約)を与えることになる。
【0077】
図1中の×印は不良ビットを表している。
【0078】
以下では便宜上、メモリーブロック行列のBLK1とBLK3を合せたものをメモリーブロック行列の上行と呼ぶ。同様に、BLK2およびBLK4、BLK1およびBLK2、BLK3およびBLK4を、それぞれ、メモリーブロック行列の下行、左列、右列と呼ぶ。
【0079】
また、メモリーブロックの上、下、左、右にあるスペアを、それぞれ、上水平スペア(図1ではC1〜C3)、下水平スペア(図1ではC4〜C6)、左垂直スペア(図1ではR1〜R6)、右垂直スペア(図1ではR7〜R12)と呼ぶ。
【0080】
ここで、図1に例示したRAMのメモリーブロックにおいては、各BLKi(i=1〜4)の救済方法には次のようなスペアに関する制約があるものとする。
・BLK1の不良ビットは上水平スペアまたは左垂直スペアによってのみ救済可能である。
・BLK2の不良ビットは下水平スペアまたは左垂直スペアによってのみ救済可能である。
・BLK3の不良ビットは上水平スペアまたは右垂直スペアによってのみ救済可能である。
・BLK4の不良ビットは下水平スペアまたは右垂直スペアによってのみ救済可能である。
【0081】
なお、この制約は図1のRAMの持つ構成に固有のものであり、このようなスペアに関する制約は半導体メモリーの構成に応じて与えられるものである(半導体メモリーによってはこのような制約がない場合もあり得る)。
【0082】
また、図1の場合、上水平スペアについては3本、下水平スペアは3本、左垂直スペアは6本、右垂直スペアは6本が、それぞれ、使用可能な上限本数となる。通常、水平方向や垂直方向のスペアの数は、メモリーブロックの行や列の数よりも少ないので、使用可能なスペアの上限本数の制約は一般的に存在する。
【0083】
さらに、本発明では、リンボを持つ半導体メモリーを想定しているが、この場合、リンボに関する制約が一般的に存在する。詳しくは後述するが、リンボが不良ビットであると、このリンボに対応する水平方向のスペアと垂直方向のスペアのいずれか一方しかメモリーブロックの救済に使用できないという制約が課される。従って、図1のRAMの場合も、リンボに関する制約が課される。
【0084】
さて、本実施形態に係る半導体不良ビット救済処理装置では、スペアに関する制約およびリンボに関する制約のもとで、メモリーブロックにおける不良ライン(行あるいは列)をスペアで置き換えて救済する解を求める処理を行う。そして、リペア装置では、この解に従って、メモリーブロックにおける不良ライン(行あるいは列)をスペアで置き換えるために、レーザでヒューズを切断してアドレスを設定する等のプロセスを行う。この置き換えのためのプロセスにはコストがかかるため、通常、得られた救済方法の良し悪しを判断するための評価基準が定義される。本実施形態では、救済のために使用するスペアの総数を評価基準に用いるものとする。つまり、使用するスペアの総数が少ないほど、良い救済方法であると解釈する。このような不良救済問題の実行可能解を「救済解」と呼び、スペア数を最小とする救済解を「最適な救済解」と呼ぶ。また、救済解に用いられるスペアを「救済ライン」と呼ぶ。また、救済解無しの場合を「救済不可」と呼ぶことがある。なお、救済不可には、メモリーブロックに存在する全ての不良ビットを救済可能なスペアの組合せが得られなかった場合の他に、処理時間の制限を設ける場合で、救済解が得られるまでに制限時間に達してしまった場合がある。
【0085】
なお、本実施形態では、ある処理単位について1つの救済解が得られた時点または救済不可が決定された時点で、次の処理単位の救済処理に進む形態を中心に説明するが、いくつかの救済解を求め、上記評価基準に基づく評価関数により、より良い救済解を選択して出力するようにすることも可能である。
【0086】
図2に図1と同様の構造を有するメモリーブロックの不良ビットを救済する一例を示す。なお、この例では簡単のためブロックのサイズやスペアの本数を小規模にしてある。
【0087】
図2中では、不良ビットを1で、正常ビットを0で表す。この表記の仕方は、以下で参照する他の図においても同様である。
【0088】
図2の例の場合、ある救済解においては、図中の矢印の始点にあるスペアが終点にある行ラインや列ラインを代替する。この救済解は最適な救済解であり、その救済ライン数は3である。例えば、他の救済方法として、BLK4の2つの不良ビットについては右垂直スペアを2本用いることによっても救済可能であるが、この場合は計4本のスペアを要することになり最適解にはならない。
【0089】
上記した図2の例は、メモリーブロックのみに不良ビットが存在し、スペアおよびリンボには不良ビットが存在しない例であったが、一般にはスペアやリンボにも不良ビットが存在し得る。
【0090】
もし救済ラインの候補であるスペアに不良ビットがある場合は、そのスペアに直交するスペアを使用してそのスペアの不良ビットをも救済することが可能である。リンボ行列はその際に使用可能な直交スペアの情報を与えるものである。以下、図1の例を用いてリンボ行列の役割について説明する。ここでは、左上端のリンボ行列を取り上げて説明するが、他の3つのリンボ行列についてもその役割は同様である。
【0091】
まず、左上端のリンボ行列の(i,j)成分を便宜上、(i,j)リンボと呼ぶことにする。ここで、1≦i≦3,1≦j≦6である。
【0092】
この(i,j)リンボが不良である場合、対応する上水平スペアCi と左垂直スペアRj のうち、いずれか一方のみが使用可能となる(つまり両方は使用できない)。
【0093】
一方、この(i,j)リンボが良の場合(つまり不良でない場合)は、対応する上水平スペアCi と左垂直スペアRj とが併用可能となる(つまりいずれか一方を使用することも両方を使用することも可能となる)。
【0094】
なお、(i,j)リンボは、両スペアCi ,Rj を実際に使用した際の交点の代用メモリーセルとして使用される。従って、もし(i,j)リンボが良ならば、両スペアCi ,Rj を実際に使用した際の交点に不良が存在(残存/発生)しても構わないことになる。
【0095】
このようにスペア上に存在する不良ビットは、そのスペアに直交する他のスペアでのみ救済が可能であるが、そのような救済を行う場合、この2つのスペアの組に対応するリンボは良でなければならない。また、スペア上に存在するビット不良を実際に救済するのは、代用メモリーとしてのリンボの成分であって、直交するスペアの成分ではない。
【0096】
図3に図2と同じ構成のメモリーブロックにおいてリンボやスペアに不良が存在する場合の一例を示す。なお、この例でも簡単のためブロックのサイズやスペアの本数を小規模にしてある。この例の場合、ある救済解においては、図中の矢印の始点にあるスペアが終点にある行や列を代替する。この救済解は最適な救済解であり、救済ライン数は4である。図3の場合、例えば最右の垂直スペアは上水平スペアの不良を救済している(実際には対応するリンボの成分により救済される)。
【0097】
なお、図1におけるスペアの本数やリンボのサイズは一例であり、本発明を実施するにあたってこれらの数値は本質的ではない。また、図1の構造(すなわち、メモリーブロックの上、下、左、右にスペアが配置され、メモリーブロックが4つのBLKiに4分割され、各BLKiの救済に使用可能なスペアの位置等に対する制約を持つなどの構造)自体も一例であり、本発明は種々の構造を持つ半導体メモリーに適用可能である。例えば、メモリーブロックが4分割される場合だけでなく、8分割される場合、いずれかの方向のみに2分割される場合、分割されない場合(スペアのサブブロックへの適用制限がない場合)など、スペアの位置がメモリーブロックの上、下、左および右とは相違する場合、スペアの使用に他の制限が課される場合など、種々の構造を持つ半導体メモリーに適用可能である。もちろん、半導体メモリーもRAMに限らず、種々のデバイスに適用可能である。
【0098】
次に、本発明に係る救済処理(問題解法)の基本原理等について説明する。
【0099】
以下、メモリーブロック行列(スペアとリンボを含まないもの)を行列Aで表すものとする。一方、図4に示すように、(a)に示すような行列Aにスペアとリンボ(図示せず)を全て添付して得られる(b)に示すような行列を考える。以下、このような行列を行列Bで表すものとする。例えば、図1の200のメモリーブロックが行列Aに該当し、図1をまとめて1つの行列と考えたものが行列Bに該当する。
【0100】
行列Bの上行、下行、左列、右列は、行列Aの場合と同様に定義する。例えば、図1の水平な点線の上部、下部がそれぞれ行列Bの上行、下行であり、垂直な点線の左側、右側がそれぞれ行列Bの左列、右列である。
【0101】
さらに、本発明では、行列Bに対して、行列Aのスペアの数と同数でかつ行列Aと同様の制約を持つ、不良のない新たなスペアを仮想する。例えば、図1の行列Bの上下にはそれぞれ3本ずつ、左右にそれぞれ6本ずつの「不良ビットのないスペア」が存在しているものと仮定する。なお、行列Bのスペアには不良がないと仮定するので、ここでは行列Bに対するリンボは不要である。また、このような仮想したスペアにはリンボに関する制約がないものとする。
【0102】
なお、スペアについての混同を避けるために、行列AにおけるスペアをAスペア、行列Bにおいて仮想したスペアをBスペアと呼んで明示的に両者を区別することがある。
【0103】
次の定理は、行列Aの救済解と行列Bの救済解の間の対応関係を示すものであり、本来の不良救済という問題を行列Bに拡張することの正当性を保証するものである。
【0104】
(定理)
「行列Aの救済解が存在するための必要十分条件は、行列Bの救済解が存在することである。」
(必要性の証明)
まず、必要性の証明を示す。
Aの救済ライン集合をL(A)とする。Bの行、列ベクトルのうち、Aの要素を含まない行、列ベクトルの全体をXとする(つまり、Aの外側にあるBの行、列ベクトルの全体からなる集合をXとする)。また、L(A)の各行、各列を延長して得られるXの部分集合をL(A)e とし、L(A)によって救済される行列Aの行、列を延長して得られる行、列の集合をL′(A)e とする。
【0105】
図5にその具体例を示す。図5では、1,2,…,7のラインがL(A)e に、1′,2′,…,7′のラインがL′(A)e にそれぞれ該当し、iA がi′A を救済する(i=1,2,…,7)。ただし、iA ,i´A 等の添字AはAの高さまたは幅への制限を表す。
【0106】
このとき、B−Aに属する不良は、L′(A)e またはX−L(A)e のライン上に存在することが示せる。具体的には、L(A)e のライン上にあってL′(A)e のライン上にはない成分についてチェックすればよい:
(i)L(A)e の、互いに直交する2本のラインの交点:これは良のリンボなので正常である。
【0107】
(ii)L(A)e 上の(i)以外のリンボ:不良があった場合は、直交するX−L(A)e のライン上に存在する。
【0108】
(iii )L(A)−L′(A)e 上の成分:不良は有り得ない(不良があるとすると、それを救済するAの直交スペアが必要になるので、結局L′(A)e に属してしまい矛盾する。)
【数1】
【0109】
従って、式(1)で表されるL(B)は行列Bの不良を全てカバー(救済)していることが分かる。
【0110】
さらに、L(B)がカバーする行列Bの上行、下行、左列、右列のライン数はそれぞれ上水平、下水平、左垂直、右垂直のBスペア数以下(実際は等しい)なので、このL(B)はBの救済ライン集合を与える。
(必要性の証明の終り)
(十分性の証明)
次に、十分性の証明を示す。
Bの救済ライン集合をL(B)とする。L(B)でカバーされていないAスペアの集合をLo (A)とする。L(B)によってカバーされているAの行、列の集合をLA とする。
【0111】
図6にその具体例を示す。図6では、1´,2´,…,8´のラインがL(B)に該当し、2´A ,6´A ,7´A ,8´A がLA にそれぞれ該当する。ただし、2´A 等の添字AはAの高さまたは幅への制限を表す。
【0112】
LA をカバーしている上水平、下水平、左垂直、右垂直のBスペアの本数をそれぞれu,d,l,rとすると、Lo (A)には、上水平、下水平、左垂直、右垂直のスペアがそれぞれ少なくともu,d,l,r本は存在する。それらを該当する本数だけ(つまりu,d,l,rずつ)任意にピックアップして得られるLo (A)の部分集合をL(A)とすると、L(A)はAを救済する。
【0113】
図6の2A ,6A ,7A ,8A がL(A)の例である。
【0114】
これを示すために、まずLA のラインとL(A)のスペアとの間に任意に一対一対応をつけておく(但しAの上部には上水平のスペアを対応させる等の条件は満たすものとする)。さて、L(A)のライン(kとする)上に不良がある場合、その不良はLA のラインの延長上にある(その理由は、不良はL(B)のラインでカバーされるからである)。そのラインに対応するL(A)のラインをhとすると、k,hを延長したときの交点(リンボ)はL(B)のどのラインにもカバーされないため正常(良)である。つまり、このリンボによって、前記の不良は解消される。すなわち、L(A)のライン上の不良はAをカバーした際、全て解消される。従って、上記の一対一対応のもとでLA の各ラインにL(A)のスペアを割当ててやればAが救済される。
(十分性の証明の終り)
なお、この定理は、図1で例示した構造(すなわち、メモリーブロックの上、下、左、右にスペアが配置され、メモリーブロックが4つのBLKiに4分割され、各BLKiの救済に使用可能なスペアの位置等に対する制約を持つなどの構造)のみならず、どのような構造を持つメモリーブロックについても成立する。すなわち、メモリーブロックの分割数やスペアの配置場所には依存せずに成立する。
【0115】
この定理の実用上の意義は、上記証明の中に示されている。つまり、行列Aの救済ライン集合L(A)で救済されるAの不良ラインの集合は、行列Bの救済ライン集合で救済されるBの不良ラインの集合へと自然に拡張することができる。逆に、Bの救済ライン集合L(B)によってカバーされているAの各不良ラインに対して、L(B)によってカバーされていないAのスペアを任意に対応させることが可能であり、従ってL(B)からAの救済解を構成することができる。
【0116】
本発明に係る半導体不良ビット救済処理装置は、この点に基づいて救済解を求めるものである。
【0117】
以下では、本発明の実施の形態に係る半導体不良ビット救済処理装置の基本構成について説明する。
【0118】
本実施形態に係る半導体不良ビット救済処理装置は、上記定理に基づいたもので、概略的には、まず、与えられたメモリーブロック、スペアおよびリンボの不良ビットのアドレス情報および処理対象となるRAMに応じたスペアに関する制約をもとに、行列B(メモリーブロック、スペアおよびリンボからなる行列)の救済解を求める。救済解としては、救済される行列Bの行アドレスおよび列アドレス(いずれか一方の場合もある)の番号が与えられる。
【0119】
ここで、行列BにおいてBスペアにより救済される行ラインや列ラインには、メモリーブロック(すなわち行列A)の要素を含むものと含まないものとがある。その中で、メモリーブロックの要素を含むライン(の行または列アドレス)は、行列Aで救済される行や列を与える。また、メモリーブロックの要素を含まないライン(の行または列アドレス)は、行列Aに対する現実のスペア(Aスペア)のうち使用できないものを与える(つまり、その他のAスペアが使用可能であることになる)。
【0120】
次に、行列Bの救済解をもとに、行列Aすなわちメモリーブロックに対する救済解を求める。すなわち、Bスペアによってカバーされているメモリーブロックの各不良ラインに対して、BスペアによってカバーされていないAスペアを任意に対応させることにより、Aの救済解を構成する。
【0121】
図7に本実施形態に係る半導体不良ビット救済処理装置の基本構成を示す。この半導体不良ビット救済処理装置は、入力処理部1、ラインフェイル処理部2、救済処理部3、出力処理部4を備えている。図8にこの半導体不良ビット救済処理装置の処理手順の一例を示す。
【0122】
入力処理部1は、ステップS1において、メモリーテスタ装置からの不良ビットのアドレス情報(行アドレスと列アドレスの対)を入力し、格納する。この情報は、行列Bとして保持される。
【0123】
ラインフェイル処理部2は、ステップS2において、ラインフェイル処理を行い、行列Bを縮小する。ラインフェイルとは、あるラインについて、不良ビットが多数存在するために必然的にスペアの割り当てが決まる状態を言う。例えば、図1の構造において、行列Bの上行に属する行ラインの左列に属する成分に、左垂直スペアの残数を上回る不良ビットが存在した場合は、それらの不良は左垂直スペアでは救済不能なため、当該RAMを救済するためには、上水平スペアで救済せざるを得ない。このような状態がラインフェイルである。なお、この例の場合に上水平スペアの残数が0ならば、当該RAMは救済不可となる。ラインフェイル処理は、入力処理部1の処理と同時におよび/またはその処理の終了後に行われる。
【0124】
救済処理部3は、ステップS3において、所定の手順により、行列Bに対する救済解を求める。あるいは、救済不可を判断する。
【0125】
出力処理部4は、ステップS4において、行列Bに対する救済解から行列Aに対する救済解を求めて、これを出力する。また、ラインフェイル処理部2もしくは救済処理部3において救済不可と判定された場合、その旨を示すメッセージを出力する。
【0126】
ここで、図9〜図11の簡単な具体例を用いて不良ビット救済処理について説明する。
【0127】
図9に図1と同様の構造を有するメモリーブロックの一例を示す。この例では、メモリーブロックは4行×4列で、上水平スペア、下水平スペア、左垂直スペア、右垂直スペアはそれぞれ1本、1本、2本、2本設けられている。また、図9において、L1〜L6は、それぞれ、行アドレスが1〜6のラインを示し、C1〜C8は、それぞれ、列アドレスが1〜8のラインを示す。
【0128】
図9の例の場合、不良ビットのアドレス情報を(行アドレス、列アドレス)の形式で表すと、(1,6),(1,7),(3,3),(4,4),(5,2),(5,5),(5,6),(5,7),(5,8),(6,1),(6,4)の情報が入力される。
【0129】
図10に、図9の例に対応する救済解の一例を示す。この場合、L5とC4がラインフェイルとなる。図10では、Bスペアによって救済される行列Bのラインは、L3,L5,C1,C4,C6,C7となる。
【0130】
これにより、救済される行列Aのラインは、L3,L5,C4,C6となり、救済に使用可の行列Aに対するスペアは、L1,L6,C2,C8(救済に使用不可の行列Aに対するスペアは、C1,C7)となる。
【0131】
そして、任意に対応付けを行うと(ただし、この例の場合は対応付けの自由度はない)、行列AのラインL3をL1のスペアで救済し、ラインL5をスペアL6で救済し、ラインC4をスペアC2で救済し、ラインC6をスペアC8で救済する解が得られる。この様子を図11に示す。
【0132】
以上のようにして救済解を求めることができる。
【0133】
ここで、いくつかの変形例について説明する。
【0134】
不良ビットの分布状況等によっては非常に簡単に(簡易な処理により)救済解を求めることができる場合がある。例えば、不良ビット総数が少ない場合、あるいはラインフェイルを除いた不良ビット総数が少ない場合、あるいはスペアやリンボには不良ビットがなく、メモリーブロック内の不良ビット数も少ない場合、あるいはメモリーブロック内の不良ビット数が微小の場合など、種々の場合が考えられる。例えば、極端にいえば、スペアに不良がなくメモリーブロック内の不良ビットが1つのみである場合、この不良ビットを救済対象とする任意のスペアを1つ選択するだけでよい。このような場合に、例えば、図12や図13に示すように救済処理部3の他に不良ビットの分布状況等が予め規定された条件を満たす場合に該予め規定された条件に対応した簡易処理を行う簡易処理部6をも備え、ラインフェイル処理の前および/または後に前処理部5で簡易処理可能か否か判定し、簡易処理可能と判定された場合には、簡易処理を行うようにしてもよい。
【0135】
また、1つのメモリーブロックに対する処理時間の制限を設定し、この制限時間内に救済解が得られなかった場合には、救済不可と判定するようにしてもよい。
【0136】
また、ラインフェイル処理は、メモリーテスタ装置の方で行い、ラインフェイルのビット不良を除いたアドレス情報と、ラインフェイルにより救済するラインのアドレスとを入力するようにしても良い。さらに、ラインフェイル処理を、メモリーテスタ装置側でも本半導体不良ビット救済処理装置側でも行わないようにして構わない。
【0137】
また、本半導体不良ビット救済処理装置側(出力処理部4)では、行列Bの救済解をもとに、救済する不良ラインと使用するAスペアとの対応までは特定せずに、メモリーブロックで救済する全不良ラインと各不良ラインに使用可能なAスペアとを示す情報(広い意味での救済解)を求めて出力し、リペア装置の方で最終的な対応を決定するようにしてもよい。
【0138】
以下では、より詳しい実施形態、特に上記のラインフェイル処理や救済処理についてより詳しく示した実施形態をいくつか説明する。まず、救済処理としてグラフ理論を利用したものを説明し、次に救済処理として線形計画法を利用したものを説明し、さらに種々の構成・変形例等について説明する。
【0139】
まず、本発明のより詳しい第1の実施形態に係る半導体不良ビット救済処理装置について説明する。
【0140】
図14は、本実施形態に係る半導体不良ビット救済処理装置の概略構成を示すブロック図である。
【0141】
この半導体不良ビット救済処理装置は、データ入力部10、ラインフェイル判定部20、2部グラフ作成部30、最大マッチング作成部40、DM分解作成部50、救済解作成部60、救済結果出力部70を備えている。
【0142】
データ入力部10は、RAMのメモリーブロック、スペアおよびリンボの不良ビットに関する情報を読み込む。
【0143】
ラインフェイル判定部20は、不良数の多いラインへの必然的なスペア割当てを行う。また、ラインフェイル判定部20では、行列の各ブロック(行列Bの上部と左部の重複部分等)のサイズによって必然的に決まる救済不能の判定も行う。
【0144】
2部グラフ作成部30は、ラインフェイル判定部20を経て縮小された不良ビットデータをもとに2部グラフを作成する。
【0145】
最大マッチング作成部40は、作成された上記2部グラフの最大マッチングを求める。また、この最大マッチングをもとに救済不可の判定を行う。
【0146】
DM分解作成部50は、求められた上記最大マッチングのデータを用いてDM分解およびその縮約グラフを求める。
【0147】
救済解作成部60は、上記のDM分解およびその縮約グラフにもとづいて、不良ラインとスペアの間の対応関係を決めるとともに、救済不可を検出する。
【0148】
救済結果出力部70は、救済解が得られた場合には本来のメモリーブロックの不良ラインと本来のスペアとの間の対応関係を求めて出力する。一方、ラインフェイル判定部20、最大マッチング作成部40もしくは救済解作成部60において、スペアの本数に関する制限を満たす救済解が存在しないことが判明した場合、または制限時間内に救済解が得られず時間切れとなった場合には、「救済解が存在しない」旨を示すメッセージを出力する。なお、救済解が得られなかった場合、後の解析等の処理のために、どの処理において時間切れ以外の理由で救済不可となったかあるいはどの処理の時点で時間切れとなったかを示す情報を出力するようにしてもよい。
【0149】
なお、行列Aから行列Bへの拡大操作は、データ入力部10において、メモリーブロック、スペアおよびリンボの不良ビットを読み込んだ後、それらの不良ビット間に区別を設けずに同等に扱うことで、実質的に拡大操作が行われる。ラインフェイル判定部20から救済解作成部60に至る過程は、拡大行列Bに対する操作である。救済結果出力部70において初めて、本来のメモリーブロック行列Aの不良ラインと本来のスペア(Aスペア)を区別して、両者の間の対応関係を算出するという操作を行う。
【0150】
次に、本実施形態に係る半導体不良ビット救済処理装置の処理手順について詳しく説明する。図15は、本実施形態の半導体不良ビット救済処理装置の処理手順の一例を示すフローチャートである。
【0151】
ここでは、図1で説明した構造を持つRAMの内部のある1つのメモリーブロックに対するメモリーテストの結果、図16の行列B(メモリーブロック、スペア、リンボ)で示されるような不良ビットについて、不良ビットの情報が入力された場合を具体例として取り上げて説明する。
【0152】
図16に示されるように、この具体例に係るRAMのメモリーブロックは、24行×24列(行アドレス1〜3,28〜30と列アドレス1〜3,28〜30を除く部分)で構成され、上水平スペア(行アドレス1〜3に対応)、下水平スペア(行アドレス28〜30に対応)、左垂直スペア(列アドレス1〜3に対応)、右垂直スペア(列アドレス28〜30に対応)がそれぞれ3本ずつと、4隅にこれらスペアに対応する計36個のリンボが設けられている。また、前述したようなスペアに関する制約、すなわち、メモリーブロックの左上の四半分は上水平スペアまたは左垂直スペアによってのみ救済可能であり、同様に、メモリーブロックの左下、右上、右下の各四半分は、それぞれ、下水平スペアまたは左垂直スペア、上水平スペアまたは右垂直スペア、下水平スペアまたは右垂直スペアによってのみ救済可能であるという制約があるものとする。また、前述したようなリンボに関する制約がある。なお、図16中、1は不良ビットを、0は正常ビットを表す。
【0153】
前述したように、本実施形態では、まず、行列B(メモリーブロック、スペア、リンボ)の不良ビットを救済する解を求めるが、その際、行列Aの救済と同様のスペアに関する制約を課すことになる。すなわち、行列Bに対して、不良ビットのない仮想の上水平スペア、仮想の下水平スペア、仮想の左垂直スペア、仮想の右垂直スペアをそれぞれ3本ずつ使用可能とする。また、行列Bの左上、左下、右上、右下の各四半分は、それぞれ、仮想の上水平スペアまたは仮想の左垂直スペア、仮想の下水平スペアまたは仮想の左垂直スペア、仮想の上水平スペアまたは仮想の右垂直スペア、仮想の下水平スペアまたは仮想の右垂直スペアによってのみ救済可能であるという制約があるものとする。なお、前述したように仮想のスペアに対応する仮想のリンボは以下の処理では使用しない。
【0154】
(1)まず、ステップS101の、データ入力部10により不良ビットのアドレスデータを読み込んで、これを行列Bに拡張する処理について説明する。
【0155】
ステップS101では、RAMのメモリーブロック、スペアおよびリンボにおける不良ビットの位置を示す行のアドレスと列のアドレスとの対からなるデータを逐次入力する。このデータは、
row:整数 column:整数
という形式で記述されるものとする。
例えば、行アドレス120、列アドレス45のセルに不良ビットが存在する場合には、row:120,column:45という形式で記述される。このデータは、行アドレスまたは列アドレスによって予めソートされているものとする。図16の行列Bに対応する入力データの例を図17に示す。
【0156】
なお、入力データの形式は、上記したもの以外の形式でも構わない。例えば、行列Bの全ビットマップのデータ(行アドレス、列アドレス、良または不良を示すビット等)を入力してもよい。
【0157】
また、ステップS101では、内部で保持する各種データを初期化する。例えば、図16の例の場合、図18(a)に示すように、上水平スペア、下水平スペア、左垂直スペア、右垂直スペアの残数をそれぞれ3本に設定する。
【0158】
本実施形態では、垂直スペアを優先して使用するか、水平スペアを優先して使用するか、を予め指定するものとする。後述するステップS602とS603では、垂直スペア優先の場合と、水平スペア優先の場合とで、動作が少しことなる。
【0159】
ところで、このステップS101におけるデータの入力はまとめて行い、全データを格納してから、ラインフェイルの処理を行ってもよいが、本実施形態ではステップS101で1つの不良ビットのデータを入力するごとに、次のラインフェイルの処理(データ格納を含む)を行うものとする。したがって、次のステップS201は、これを前提として説明する。
【0160】
(2)次に、ステップS201のラインフェイル判定部20による第1のラインフェイル検出処理について説明する。
【0161】
前述したように、ラインフェイルとは、あるラインについて、不良ビットが多数存在するために必然的にスペアの割り当てが決まる状態を言う。例えば、図16において、行列Bの上行に属するラインの左列に属する成分に、左垂直スペアの残数を上回る不良ビットが存在した場合は、それらの不良は左垂直スペアでは救済不能なため、当該RAMを救済するためには、上水平スペアで救済せざるを得ない。このような状態がラインフェイルである。なお、この例の場合に上水平スペアの残数が0ならば、当該RAMは救済不可となる。
【0162】
ステップS201では、行アドレスまたは列アドレスによってソートされた順に入力される不良ビットのアドレスをその入力順にチェックしていき、同じ行アドレスか同じ列アドレスが連続して出現する場合は、その出現回数をカウントし、この連続して出現した回数とその行アドレスまたは列アドレスに対応するスペアの残数とを比較することによって、ラインフェイルか否かを判定する。
【0163】
ラインフェイルでない場合は、そのデータを入力データ格納用ファイルに書き込む。
【0164】
ラインフェイルと判定された場合は、その行または列のラインに属する不良ビットは、入力データ格納用ファイルから全て削除するとともに、以後は当該ラインに属する不良ビットは入力データ格納用ファイルには書き込まないようにする。また、その行または列のラインを記憶するとともに、ラインフェイルに割り当てるべく、対応するスペアの残数を1減らす(すなわちスペアを1本割り当てたと解釈する)。
【0165】
例えば、図17の入力データの場合、
row: 1 column: 2から
row: 7 column:17まではラインフェイルではないと判定されるので、これらデータを入力データ格納用ファイルに書き込み、さらに、
row:10 column: 7
row:10 column:24
row:10 column:25
row:10 column:26
をこの順番に読み込んで、入力データ格納用ファイルに書き込んだ後、
row:10 column:27
を読み込むと、この時点で行アドレス10の行がラインフェイルと判定される (右垂直スペアは3本しかないからである)。従って、rowを10とする上記の4つのアドレスデータは入力データ格納用ファイルから削除され、
row:10 column:27
は、入力データ格納用ファイルには書き込まれない。
また、次に読み込むデータ
row:10 column:28
も、入力データ格納用ファイルには書き込まれないことになる。
【0166】
この結果、行アドレス10のラインフェイルには上水平スペアが割り当てられるので、上水平スペアの残数を1本減らして残数2とする。また、ラインフェイルとして行アドレス10を記憶する。
【0167】
さて、前述したようにステップS101とS201は、不良ビットのデータを1つ読み込む毎に実行するものとした。このときのステップS101およびS201の処理手順の一例を図19に示す。
【0168】
また、本ラインフェイル処理において、対応するスペアが不足してラインフェイルが救済できない場合は、当該RAMを救済できないので、その時点で異常終了とし、ステップS702に進む。
【0169】
ここで、図17にステップS101,S201のサイクルを適用すると、結局、ラインフェイルと判定された行アドレス10のラインに属する6つの不良ビット以外の計22個の不良ビットのアドレスのデータが、入力データ格納用ファイルに書き込まれる。また、図18(b)に示すように、上水平スペア、下水平スペア、左垂直スペア、右垂直スペアの残数はそれぞれ2本、3本、3本、3本に更新され、図18(c)に示すように、ラインフェイルとして行アドレス10が記憶される。なお、図18中で、rnは行アドレスnを示し、cmは列アドレスmを示すものとする。また、仮想の上水平スペアにより救済される行列Bにおける行アドレス10のラインを図20中に「ラインフェイル(その1)」として示す。
【0170】
(3)次に、ステップS202のラインフェイル判定部20による第2のラインフェイル検出処理について説明する。
【0171】
ステップS202では、ステップS101,S201のサイクルの終了後、入力データ格納用ファイルに書き込まれているデータを参照して、各アドレスについて同一アドレスを持つ不良ビットの総和を計算し、それぞれ対応するスペアの残数と比較することによって、再度、ラインフェイルの検出を行う。ラインフェイルが検出された場合は、そのラインに属する不良ビットは、入力データ格納用ファイルから全て削除し、そのラインフェイルに割り当てるべく対応するスペアの残数を1減らし、また、ラインフェイルと判定された行や列のアドレスを記憶する。
【0172】
ステップS202は、新たにラインフェイルが検出されなくなるまで繰り返し行う。
【0173】
ここで、ステップS201は、不良ビットデータを逐次読み込む過程において、同じ行アドレスあるいは同じ列アドレスが連続して出現する場合にのみ、ラインフェイルの検出を行うものであった。そして、ラインフェイルが検出される度にそれに割り当てるべく対応するスペアの残数が減少していく。従って、ステップS101,S201のサイクルが終了した後で、再度、ラインフェイルが検出できるケースがあり得る。
【0174】
図17の例では、これにステップS101,S102を適用後、入力データ格納用ファイルに書き込まれた22個の不良ビットのアドレスのデータに対してステップS202を適用すると、列アドレス17の列がラインフェイルとして検出される。なぜなら、列アドレス17を持つ不良ビットデータは4つあり、そのうち3つは行列Bの上行に属する。ところが、上水平スペアの残数は図18(b)のように2本なので(行アドレス10のラインフェイルの救済に使用したので)、これら3つの不良ビットは右垂直スペアで救済せざるを得ないからである。
【0175】
そこで、列アドレス17に属する4つの不良ビットを入力データ格納用ファイルから全て削除する。この時点での入力データ格納用ファイルの内容の一例を図21に示す。図21のように未救済の不良ビット数は計18個に縮小される。
【0176】
また、右垂直スペアの残数を1減らして2とする。この時点で、図17の具体例に対するスペアの残数は、図18(d)に示すように、上水平スペアが2本、下水平スペアが3本、左垂直スペアが3本、右垂直スペアが2本となる。また、図18(e)に示すように、列アドレス17を記憶する。なお、仮想の右垂直スペアにより救済される行列Bにおける列アドレス17のラインを図20中に「ラインフェイル(その2)」として示す。
【0177】
なお、図21では後の処理のために各エントリに不良ビットの属するサブブロックの番号(BKLiにおけるiの値)を登録してあるが、登録せずに必要時に求めるようにしても良い。
【0178】
本処理において、スペアが不足し、ラインフェイルが救済できない場合は、当該RAMを救済できないので、ステップS702に進む。
【0179】
ここで、後の処理のためにステップS201とS202のラインフェイルの救済がすべて完了したときの上水平スペアの残数をres u、下水平スペアの残数をres d、左垂直スペアの残数をres l、右垂直スペアの残数をres rと記述する。
図17の具体例の場合、
res u=2
res d=3
res l=3
res r=2
となる。
【0180】
(4)次に、ステップS301の2部グラフ作成部30による2部グラフの作成処理について説明する。
【0181】
ステップS301では、入力データ格納用ファイルに書き込まれているアドレスのデータをもとに、2部グラフデータを作成する。
【0182】
行列Bの各成分は正常ビットまたは不良ビットの何れかであるため、2部グラフG=(V1 ,V2 ,E)で等価に実現できる。実際、行列Bの行の添字集合、列の添字集合がそれぞれGの左頂点集合V1 、右頂点集合V2 に対応し、行列Bの不良ビットセルがGの辺(Eの要素)に対応する。ここで、行列BはステップS101,S201,S202を経て、ラインフェイルが検出された場合には、実質的に縮小されたものとなっている。
【0183】
例えば、本具体例について、ステップS101,S201,S202を経た後の入力データ格納用ファイルに書き込まれているアドレスのデータをもとに、縮小された行列Bを示すと、図22のようになる。この図22の行列Bに対応する2部グラフを図23に示す。
【0184】
なお、実際のプログラムの中(計算機内部)では、この行列BのデータをB(i,j)のような2次元配列等によりそのままの形で持つ必要はなく、直接2部グラフのデータに落とせば良い。
【0185】
本例では、図23のように最初から2部グラフとして保持していることになる。この場合、本処理では、図24(a)に示すように各行アドレスに対するリンク先の列アドレスおよび図24(b)に示すように各列アドレスに対するリンク先の行アドレスのテーブルを作成することになる。また、計算機内部の処理として、行アドレスおよび列アドレスに1から順に排他的に番号を付け替える場合、番号により行か列かが識別できるため図24(a)と(b)は1つのテーブルで実現可能である。さらに、図24(a)と(b)は図21と合体させて設けても良い。
【0186】
なお、ステップS202が終了した時点でビットマップの形で不良データのアドレス情報を保持する場合には、本処理では、図21と図24のテーブルを作成することになる。
【0187】
(5)次に、ステップS401の最大マッチング作成部40による最大マッチングの作成処理について説明する。
【0188】
ステップS401では、ステップS301で作成した2部グラフに対して、その最大マッチングを算出する。2部グラフGの辺集合Eの部分集合Xにおいて、Xに含まれるどの2辺も端点を共有しないとき、Xを「最大マッチング」と言う。2部グラフの最大マッチングを求めるには例えばHopcroft & Karpのアルゴリズムを用いることができる。このアルゴリズムは、例えば文献「情報の構造」浅野孝夫著、日本評論社に詳しく開示されている。求めた最大マッチングは、本処理で救済不可の判定に使用され、また後のステップS501でDM分解の作成に使用される。
【0189】
さて、2部グラフG=(V1 ,V2 ,E)の頂点の部分集合U1 ,U2 (U1 はV1 の部分集合、U2 はV2 の部分集合)対して、
[u,v]が2部グラフGの辺ならば、
「uはU1 の要素である」または「vはU2 の要素である」、
が成立するとき、式(2)で表される集合を2部グラフGの被覆という。頂点数が最小の被覆を「最小被覆」と言う。最小被覆は、スペアの本数に制限がないとした場合の最適な救済解に相当するものである(したがって、ここでの最小被覆により得られた救済解では実現可能の場合と実現不可能の場合とがある)。
【0190】
【数2】
【0191】
本処理では、「最大マッチングに含まれる辺の数は最小被覆に含まれる頂点の数に等しい」というKonig−Egervaryの定理(例えば上記文献「情報の構造」に開示されている)に従い、最大マッチングに含まれる辺の数がスペアの残数の総和よりも大きい場合は、当該RAMの救済解は存在し得ないので、ステップS701に進む。
【0192】
図23の2部グラフに対する最大マッチングの一例と最小被覆の一例を図25に示す。図25において、太線で示した辺の集合が1つの最大マッチングであり、黒く塗り潰した頂点の集合が1つの最小被覆である。最大マッチングは例えば図26のようにあるいは図24に最大マッチングを示すフラグを設けることなどにより記憶される。
【0193】
この場合、最大マッチングに含まれる辺の数は9で、スペアの残数の総和10(図18(d)に示すように、上水平スペアが2本、下水平スペアが3本、左垂直スペアが3本、右垂直スペアが2本)よりも小さいので、救済不可とは判定されないので、ステップS701には進まず、次のステップS501に進む。
【0194】
(6)次に、ステップS501のDM分解作成部50によるDM分解の作成処理について説明する。
【0195】
ステップS501では、ステップS401で求めた最大マッチングをもとに、2部グラフGのDM分解を求める。行列のDM分解は、ブロック三角化(階層的分解)の最も細かい分解として知られている(例えば文献「線形計算」、岩波講座 応用数学[方法2]、森ほか著に開示されている)。DM分解は、直感的に述べれば、与えられた行列を幾つかの部分行列が対角線上に並び、しかもその対角線部分の左下半の成分が全て0になるように、行と列を並べ変えたものである(DM(A.L,Dulmage & N.S.Mendelsohn)分解の厳密な定義については上記文献「情報の構造」等に詳しい)。DM分解は、ステップS401で求めた最大マッチングのデータをもとに、強連結成分分解のアルゴリズム(例えば上記文献「情報の構造」に開示されている)を用いることによって高速に求まる。求められたDM分解は、ラインフェイル処理の後に残った不良ビットを3種類の不良ビットに分類し、各分類毎に順次Bスペアを割り当てていく処理に利用される。
【0196】
図27(a)に並べ変える前の行列の一例を、図27(b)に並べ変えた後の行列のDM分解の一例を示す(なお図27は一般的な説明のための図であり図16の例に対応するものではない)。図27において、行列の左側の数字は行番号を、上側の数字は列番号を表す。各部分行列には通常左上部から順に、G1 ,G2 ,G3 ,…,Gn ,G0 という名前を付ける。ここで、G1 とG0 は、特別な部分行列であり、行列によっては存在しない場合もある。G2 ,G3 ,…,Gn は、常に正方行列であり、2部グラフとして見た場合には完全マッチングを含むような部分行列である。
【0197】
DB分解においては、対角線部分の右上半の成分には1が含まれていてもよい。それらの1は部分行列間の隣接関係を表している。その隣接関係をグラフで表現したものが図27(c)に示す有向グラフである。本実施形態では、この有向グラフをDM分解の縮約グラフと呼び、GDMという記号で表す。
【0198】
図25の最大マッチングをもとに、図23の2部グラフのDM分解を求めると、図28のDM分解が得られる。このDM分解の縮約グラフGDMを図29に示す。
【0199】
なお、計算機内部では、例えば、DM分解とその縮約グラフGDMは図30のように保持することができる。
【0200】
(7)次に、ステップS551の救済解作成部60による孤立不良のグループ分け処理について説明する。
【0201】
ステップS551では、DM分解のデータをもとに、孤立不良をメモリーブロックの構造に応じたいくつかのグループに分類する。
【0202】
例えば、図1のような構造の場合には、孤立不良を4つのグループに分類する。なお、スペアのサブブロックへの適用制限がない場合には、グループは1つになる。
【0203】
DM分解行列において1×1の分解成分(部分行列)を形成し、かつDM分解グラフGDMにおいてG0 ,G1 以外のどの頂点とも隣接していない成分を孤立不良と呼ぶことにする。通常、ある不良ビットに対して、その不良ビットを含む行および列に、他の不良ビットが全く存在しない場合に、その不良ビットを孤立不良と呼ぶが、本実施形態では、原則としてG0 には垂直スペアを、G1 には水平スペアを割当てるため、前記のようなより広い意味で孤立不良という語句を用いる。
【0204】
図1のような構造の場合、孤立不良は、それがBLK1,BLK2,BLK3,BLK4のいずれに属するかによって、4つのグループに分類することができる。BLK1に属する孤立不良のグループをI1で表す。同様に、BLK2,BLK3,BLK4のそれぞれに属する孤立不良のグループをI2,I3,I4で表す。
【0205】
これら各グループごとに、水平スペアの割り当て可能な上限本数を設定し、(sup I1,sup I2,sup I3,sup I4)で表す。ステップS201,S202が行われた後の上水平スペアの残数をres uとおき、下水平スペアの残数をres dとおくと、sup I1はI1の要素数およびres uの値の小さい方の値、sup I2はI2の要素数とres dの値の小さい方の値としてそれぞれ設定することができる。同様に、sup I3はI3の要素数とres uの値の小さい方の値、sup I4はI4の要素数とres dの値の小さい方の値としてそれぞれ設定することができる。
【0206】
図28の例では、行ラベル14、列ラベル14の不良ビット(G5 に対応)、および行ラベル29、列ラベル22の不良ビット(G6 に対応)が共に孤立不良である。前者はI1に属し、後者はI4に属する。この例には他の孤立不良はないので、I2とI3は空集合である。ステップS201,S202が行われた後において、res u=2、res d=3、res l=3、res r=2であるので、sup I1=1、sup I2=sup I3=0、sup I4=1である。
【0207】
なお、後述する処理ループにおいて次のステップS601まで後戻りする場合には、ステップS601の処理に入る直前に各種データの内容を再現できるように保存しておく。
【0208】
ところで、一般に実際のRAMデータの場合、不良ビットは、ある特定の行あるいは列に連続して発生するか、あるいはどの行、列にも一様に(ランダムに)発生するというケースが多い。ある特定の行あるいは列に不良ビットが連続して発生する場合、そのような行あるいは列はラインフェイルとしてステップS201およびS202において救済される(スペアが割り当てられる)。従って、ステップS301以降では、どの行、列にも一様に発生する不良ビットを扱うことになる。不良ビットがどの行、列にも一様に発生する場合、不良ビットの多くは孤立不良となる場合が多い。
【0209】
(8)次に、ステップS601の救済解作成部60よるG1 ,G0 へのスペアの割り当て処理について説明する。
【0210】
ステップS601では、DM分解の分解成分G0 ,G1 (ただしそれが存在する場合)に水平スペアまたは垂直スペアを割り当てる。
【0211】
まず、G1 の行ラベルに対応する行列Bの全てのラインに水平スペアを割り当てる。もしG1 の行ラベルに対応する行列Bの全てのラインへの水平スペアの割り当てが、水平スペアの残数の不足により不可能な場合は、G1 の行ラベルに対応する行列Bのラインのうち、DM分解行列においてG1 の右側に1(不良ビット)があるようなラインについては水平スペアを割り当て、他のラインについては、使用可能なスペア数の範囲内で水平または垂直スペアを割り当てる。
【0212】
次に、G0 の列ラベルに対応するBの全てのラインに垂直スペアを割り当てる。もしG0 の列ラベルに対応するBの全てのラインへの垂直スペアの割り当てが、垂直スペアの残数の不足により不可能な場合は、G0 の列ラベルに対応するBのラインのうち、DM分解行列においてG0 の上側に1(不良ビット)があるようなラインについては垂直スペアを割り当て、他のラインについては、使用可能なスペア数の範囲内で垂直または水平スペアを割り当てる。
【0213】
G1 ,G0 へのスペアの割り当てによってスペアの残数が変更されるが、その変更後の上水平スペア、下水平スペア、左垂直スペア、右垂直スペアの残数を、改めてそれぞれres u、res d、res l、res rとおく。また、その行または列のラインを記憶する。
【0214】
もしスペアの残数が足りず、G0 ,G1 へのスペアの割り当てが求まらない場合(どのようにしてもG0 ,G1 が救済できない場合)は、スペア不足として、ステップS702に移る。
【0215】
図28の例では、行ラベル1の行に上水平スペアが、行ラベル25の行に下水平スペアが、列ラベル27の列に右垂直スペアがそれぞれ割り当てられる。従って、スペアの残数は、図18(f)に示すように、res u=1、res d=2、res l=3、res r=1となる。また、図18(g)に示すように、行ラベル1、行ラベル25、列ラベル27を記憶する。なお、図28のDM分解おける本処理でのスペアの割り当て結果を図31(a)に示す。また、仮想の上水平スペアにより救済される行列Bにおける行ラベル1、行ラベル25、列ラベル27のラインをそれぞれ図20中にG1 (1)、G1 (2)、G0 として示す。
【0216】
ここで、後述する処理ループにおいて次のステップS602まで後戻りする場合のために、ステップS602の処理に入る直前の各種データの内容を保存しておくものとする。
【0217】
(9)次に、ステップS602の救済解作成部60による孤立不良グループへのスペア割り当て処理について説明する。図32にS602およびS603の処理手順の一例を示す。
【0218】
ステップS602では、孤立不良が存在する場合に、各孤立不良グループI1,I2,I3,I4のそれぞれにスペアを割り当てる。孤立不良グループI1,I2,I3,I4の要素数をそれぞれ|I1|,|I2|,|I3|,|I4|で表すものとする。
【0219】
孤立不良の各グループI1,I2,I3,I4への水平スペアの割り当て本数の組合せ(a,b,c,d)を1つ選ぶ。
【0220】
aは0〜上限数sup I1の範囲の値、
bは0〜上限数sup I2の範囲の値、
cは0〜上限数sup I3の範囲の値、
dは0〜上限数sup I4の範囲の値
をそれぞれ取り得るので、このような組合せは、計(sup I1+1)×(sup I2+1)×(sup I3+1)×(sup I4+1)通りある。
【0221】
なお、組合せ(a,b,c,d)の選択方法としては種々のものが考えられる。垂直スペア優先の場合は、まず、a=b=c=d=0とし、以降、aを0からsup I1まで1ずつ増加していき、次に、b=1として、aを0からsup I1まで1ずつ増加していく、といったようにa、b、c、dの順に4重のループを形成するような形で選択していく方法が好ましい。水平スペア優先の場合は、まず、a=sup I1、b=sup I2、c=sup I3、d=sup I4とし、値を1ずつ減少させるようにa、b、c、dの順に4重のループを形成するような形で選択していく方法が好ましい。その他、組合せが同一とならないようにその都度ランダムに生成していく方法など、種々のものが考えられる。
【0222】
次に、孤立不良の各グループI1,I2,I3,I4それぞれへの垂直スペアの割り当て本数の組合せを、上記水平スペアの割り当て本数の組合せ(a,b,c,d)と孤立不良グループの要素数(|I1|,|I2|,|I3|,|I4|)から、(|I1|−a,|I2|−b,|I3|−c,|I4|−d)と計算する。
【0223】
次に、上記の水平スペアの割り当て本数組合せ(a,b,c,d)に対して次の4つの条件、すなわち、
a+c≦res u
b+d≦res d
(|I1|−a)+(|I2|−b)≦res l
(|I3|−c)+(|I4|−d)≦res r
が成り立つか否か判定する。そして、4つの条件のいずれか1つでも成り立たない場合は、上記の水平スペアの割り当て本数組合せ(a,b,c,d)を選び直す。また、それに伴い、孤立不良の各グループへの垂直スペアの割り当て本数の組合せを再度計算し直す。そして、再度、上記の4つの条件について判定を行う。
【0224】
以上を繰り返し、4つの条件を満たす(a,b,c,d)、(|I1|−a,|I2|−b,|I3|−c,|I4|−d)を求める。
【0225】
4つの条件のすべてを満たすものが得られた場合は、スペアの割り当て本数の組合せ(a,b,c,d)と(|I1|−a,|I2|−b,|I3|−c,|I4|−d)を用いて、a+c本のラインには上水平スペアを、b+d本のラインには下水平スペアを、(|I1|−a)+(|I2|−b)本のラインには左垂直スペアを、(|I3|−c)+(|I4|−d)本のラインには右垂直スペアを割り当てる。
【0226】
その割り当てに伴い、スペアの残数を再計算する。その際、あるグループに2以上の孤立不良が含まれる場合に、そのグループについて使用する水平スペアの数と垂直スペアの数がいずれも0でないならば、そのグループにおいてどの孤立不良に水平スペアを使用し、どの孤立不良に垂直スペアを使用するかを決定する。この決定方法としては、例えばランダムに割り当てる方法、アドレスのソート順にまず水平スペアを割り当て次に垂直スペアを割り当てる方法など、種々の方法が考えられる。
【0227】
そして、各行や列のアドレスを記憶する。また、孤立不良へのスペアの割り当てによってスペアの残数が変更されるので、その変更後の上水平スペア、下水平スペア、左垂直スペア、右垂直スペアの残数を、改めてそれぞれres u、res d、res l、res rとおく。
【0228】
なお、すべての(a,b,c,d)について上記処理を繰り返した結果、4つの条件のすべてを満たすものが得られなかった場合は、スペア不足としてステップS702に移る。また、上記処理の繰り返し中に時間切れとなった場合にはステップS703に移る。
【0229】
図28の例の場合、sup I1=1、sup I2=sup I3=0、sup I4=1、|I1|=1、|I2|=|I3|=0、|I4|=1であり、ステップS601が行われた後のスペアの残数res u=1、res d=2、res l=3、res r=1である。
【0230】
ここで、例えば(a,b,c,d)=(0,0,0,1)を選んだとすると、(|I1|−a,|I2|−b,|I3|−c,|I4|−d)=(1,0,0,0)となる。
【0231】
そして、上記の4つの条件は、
a+c(=0)≦res u(=1)
b+d(=1)≦res d(=2)
(|I1|−a)+(|I2|−b)(=1)≦res l(=3)
(|I3|−c)+(|I4|−d)(=0)≦res r(=1)
とすべて満たすことがわかる。
【0232】
この例の場合、行ラベル29の行に下水平スペアを、列ラベル14の列に左垂直スペアを割り当てることになる。スペアの残数は、図18(h)に示すように、上水平スペアが1本、下水平スペアが1本、左垂直スペアが2本、右垂直スペアが1本となる。また、図18(i)に示すように、行ラベル29と列ラベル14を記憶する。なお、図28のDM分解における本処理でのスペアの割り当て結果を図31(b)に太線で示す。また、仮想の上水平スペアにより救済される行列Bにおける行ラベル29、列ラベル14のラインをそれぞれ図20中にG6 ,G5 として示す。
【0233】
(10)次に、ステップS603の救済解作成部60による他成分へのスペアの割り当て処理について説明する。
【0234】
ステップS603では、G1 ,G0 および孤立不良以外のDM分解の成分が存在する場合に、その各成分に対して、スペアの割り当てを行う。DM分解に含まれる分解成分のうちG1 ,G0 および孤立不良以外の分解成分を単に他成分と呼ぶことにする。ここでは、一般性を失うことなく、G2 ,G3 ,…,Gk が他成分であるとして説明する。
【0235】
他成分G2 ,G3 ,…,Gk については、DM分解の縮約グラフGDM上でのG2 ,G3 ,…,Gk のトポロジカルソート(垂直スペア優先の場合)あるいは逆トポロジカルソート(水平スペア優先の場合)の1つから得られる最小被覆の中から、救済解を求める。
【0236】
なお、以下の説明においても、トポロジカルソートは垂直スペア優先の場合であり、逆トポロジカルソートは水平スペア優先の場合である。
【0237】
トポロジカルソートとは、アサイクリックグラフ(有向閉路を含まない有向グラフ)の点集合に対するラベル付けの1種で、どの有向辺(u,v)に対しても始点uのラベルの方が終点vのラベルよりも小さくなるようなラベル付けのことを指す。同様に、逆トポロジカルソートとは、アサイクリックグラフの点集合に対するラベル付けの1種で、どの有向辺(u,v)に対しても終点vのラベルの方が始点uのラベルよりも小さくなるようなラベル付けのことを指す。DM分解の縮約グラフGDMは常にアサイクリックグラフであるため、トポロジカルソートや逆トポロジカルソートが可能である。1つのアサイクリックグラフに対して、複数のトポロジカルソートや逆トポロジカルソートが可能である。トポロジカルソートや逆トポロジカルソートの1つは深さ優先探索(例えば上記文献「情報の構造」に開示されている)によって求めることができる。
【0238】
垂直スペア優先の場合、G2 ,G3 ,…,Gk の最小被覆は、まず、G2 ,G3 ,…,Gk に対するトポロジカルソートの1つを求め、次にそのトポロジカルオーダーに逆らわないように水平または垂直スペアを割り当てることによって求めることができる。ここで、「トポロジカルソートオーダーに逆らわないように」とは、あるGj (j>1)に対して水平スペアを割当てたならば、Gj のトポロジカルソートのラベルよりも小さなラベルを持つ成分Gj (1<i<j)に対しても水平スペアを割当てなければならないという意味である。
【0239】
同様に、水平スペア優先の場合、G2 ,G3 ,…,Gk の最小被覆は、まず、G2 ,G3 ,…,Gk に対する逆トポロジカルソートの1つを求め、次にその逆トポロジカルオーダーに逆らわないように水平または垂直スペアを割り当てることによって求めることができる。ここで、「逆トポロジカルソートオーダーに逆らわないように」とは、あるGj (j>1)に対して垂直スペアを割当てたならば、Gj の逆トポロジカルソートのラベルよりも小さなラベルを持つ成分Gj (1<i<j)に対しても垂直スペアを割当てなければならないという意味である。
【0240】
上記の制約はDM分解のどの成分にも含まれない不良ビットの救済方法を規定するものである。
【0241】
1つのトポロジカルソートや逆トポロジカルソートからは逐次複数の最小被覆を構成することができる(例えば上記文献「情報の構造」に開示されている)。従って、それらの最小被覆を1つずつ生成し、スペアの残数制限と比較することによってスペアの残数制限を満たす最小被覆を求めればよい。
【0242】
もし、スペアの残数制限を満たす最小被覆が求まらなかった場合は、ステップS602に戻り、孤立不良の各グループへの水平スペアの割り当て本数の組合せ(a,b,c,d)を選び直し、孤立不良へのスペアの割り当てを決め、再度、G2 ,G3 ,…,Gk に対する最小被覆を探索する。
【0243】
図28の場合、G2 ,G3 ,G4 が他成分である。G2 ,G3 ,G4 をトポロジカルソートすると、G2 ,G3 ,G4 となる。G2 ,G3 ,G4 を逆トポロジカルソートすると、G4 ,G3 ,G2 となる。このオーダー(順序)に従って、例えば、G2 に水平スペアを、G3 ,G4 に垂直スペアを割り当てることができる。すなわち、行ラベル4の行に上水平スペアを、行ラベル27の行に下水平スペアを、列ラベル6の列に左垂直スペア、列ラベル10の列に左垂直スペアを割り当てることになる。
【0244】
このときスペアの残数は、図18(j)に示すように、上水平スペアが0本、下水平スペアが0本、左垂直スペアが0本、右垂直スペアが1本となる。また、図18(k)に示すように、これら行ラベル4、行ラベル27、列ラベル6、列ラベル10を記憶する。なお、図28のDM分解における本処理でのスペアの割り当て結果を図31(c)に太線で示す。また、仮想の上水平スペアにより救済される行列Bにおける行ラベル4、行ラベル27、列ラベル6、列ラベル10のラインをそれぞれ図20中にG2 (1),G2 (2),G3 ,G4 として示す。
【0245】
以上のようにしてスペアの残数内で他成分へのスペアの割り当てができたので、これで行列Bの救済解が1つ求まったことになる。
【0246】
なお、ステップS602,S603の繰り返し操作を行っても、他成分に対する最小被覆が見つからなかった場合は、スペア不足としてステップS702に移る。また、上記の一連の手続きで、もし制限時間をオーバーした場合は、時間不足としてステップS703に移る(上記の一連の手続きは非常に高速に行われるため、救済のための制限時間をオーバーすることは非常にまれであると考えられる)。
【0247】
なお、上記処理において、解が得られずステップS602に戻る前に、いくつかのトポロジカルソートあるいは逆トポロジカルソートについて同様の処理を繰り返し、それでも解が得られなかった場合にステップS602に戻るようにしても良い。また、孤立不良がない場合にのみ、このようなトポロジカルソートや逆トポロジカルソートのループ処理を行うようにしても良い。
【0248】
(11)次に、ステップS701の救済結果出力部70による救済の対応データを作成し出力(あるいは送信)する処理について説明する。
【0249】
ステップS701では、ステップS601〜S603の過程で得られた救済解(行列Bの不良ラインとBのスペアの間の対応関係)をもとに、本来のメモリーブロック(行列A)の不良ラインと本来のスペアの間の対応関係を求める。
【0250】
行列Bの救済解において、BのスペアがAのスペアを救済している(に対応している)場合は、そのAスペアはAの不良ラインの救済には使用しない。BのスペアがAの不良ラインを救済している場合は、使用しないことが決まったAスペア以外のAスペアを割り当てる。この割り当て方法は、前述した定理の証明の中に述べたように任意である。
【0251】
以上の方法で定めた救済の対応データを出力する。
【0252】
図16の例の場合、図20に示されるように、行ラベル10の行と、列ラベル17の列がラインフェイルとして検出され、行ラベル1,4,25,27,29の行と、列ラベル6,10,14,27の列がステップS601からS603の過程で、救済されるべき不良ラインとして検出される。つまり、行列Bの救済解は、これらの行、列へのBのスペア(仮想スペア)の割り当てである。この救済解をもとに、行列Aの不良ラインとAのスペアの間の対応関係を求める。
【0253】
この場合、行列Aについて、行ラベル10,25の行と、列ラベル14,17,27の列が救済されるラインとなる。また、行ラベル1,29が救済に使用できないスペアとなり、行ラベル2,3,28,29の行と、列ラベル1〜3,28〜29の列のうちから救済に使用するスペアが割り当てられることになる。
【0254】
対応関係の具体例は次のようになる。まず、行ラベル1,29の行は共にAスペアであるので、行ラベル1,29の行はどちらもAの不良ラインの救済には使用しない。次に行ラベル4,10のAの不良ラインにそれぞれAの上水平スペア2,3を割り当て、行ラベル25,27のAの不良ラインにそれぞれ、下水平スペア28,30を割り当てる。最後に列ラベル6,10,14のAの不良ラインにそれぞれAの左垂直スペア1,2,3を割り当て、列ラベル17,27のAの不良ラインにそれぞれAの右垂直スペア28,29を割り当てる。
【0255】
なお、前述したように広い意味での救済解を出力するようにしてもよい。
【0256】
(12)次に、ステップS702の救済結果出力部70による救済不可を出力(あるいは送信)する処理について説明する。
【0257】
ステップS702では、スペア数が不足した場合は救済不可として、その旨を示すメッセージを出力する。
【0258】
(13)次に、ステップS703の救済結果出力部70による時間内の救済不可を出力(あるいは送信)する処理について説明する。
【0259】
ステップS703では、救済のための制限時間をオーバーした場合は、時間内の救済不可として、その旨を示すメッセージを出力する。
【0260】
以上述べた実施形態は本発明を実施するための例であり、種々の変形が可能である。
【0261】
例えば、ラインフェイルの算出はハード上の処理あるいはメモリーテスト装置側の処理とし、ステップS101で入力データとして入力されるデータは、予め算出されたラインフェイルのアドレスデータと、ラインフェイルを全て算出した後の不良ビットの情報であるとしてもよい。その場合、ステップS201,S202は省略できる。
【0262】
また、ステップS202の後で、BLK1,BLK2,BLK3,BLK4の各々に対して、その中に含まれる不良ビットの、互いに異なる行アドレスの総数、および互いに異なる列アドレスの総数をカウントし、もしその行アドレスの総数および列アドレスの総数が共にあるしきい値を越えたならば、スペア不足としてステップS702に進んでもよい。ここで、しきい値というのは、Aスペアの数によって決定される。すなわち、Aの上水平スペア数をn、左垂直スペア数をmとするとき、BLK1の行アドレスの総数に対するしきい値はn+m×n、列アドレスの総数に対するしきい値はm+n×mで表される。つまり、これらのしきい値はAの上水平スペアおよび左垂直スペアを全て使えばBLK1が救済可能となる、BLK1の最大サイズに対応している。
【0263】
また、ステップS101とS201の処理は、前述したようにこれらを交互に繰り返し行うのではなく、各々をバッチ処理的に実行することも可能である。さらに、バッチ処理的に実行する場合には、S101の終了後、S201を省いて次のS202を行ってもよい。また、ラインフェイル処理として、他のアルゴリズムを用いることも可能である。例えば、“Efficient spare allocation for reconfigurable arrays”,by Sy−Yen Kuo and W.Kent Fuchs,IEEE Design and Test,pp.24−31,1987(より詳しくはそのFig.5)に開示されたものを用いることも可能である。
【0264】
また、ステップS401の最大マッチングの辺数による「救済解なし」の判定は、行列Bの上部、下部、左部、右部、およびこれらの共有部分(左上部、右上部、左下部、右下部)のそれぞれに限定して行うことも可能である。例えば2部グラフGの部分グラフで、行列Bの上部の行、列に対応する頂点およびそれらの頂点間の辺集合だけからなる部分グラフに対して、最大マッチングを求め、その辺数と行列Bの上部で使用可能なスペアの総数とを比較し、もし前者が後者よりも大きければ「救済解なし」と判定し、ステップS702に進むことも可能である。
【0265】
この判定の範囲は、種々の組合せで行う場合が考えられ、例えば、前述したメモリーブロック全部を対象範囲とする他に、(1)上部、下部、左部および右部のそれぞれについて判定を行う方法、(2)左上部、右上部、左下部および右下部のそれぞれについて判定を行う方法、メモリーブロック全部と(1)の組合せ、メモリーブロック全部と(2)の組合せ、メモリーブロック全部と(1)と(2)の組合せなどが考えられる。複数の判定を行う場合には、いずれか1つの判定で「救済解なし」と判定されれば、当該RAMは救済不可となるので、その判定が出された時点でステップS702に進む。
【0266】
また、ステップS551の後で、孤立不良グループI1,I2,I3,I4の内部から、行列Aの本来のスペア(Aスペア)に属するような孤立不良を抜き出しておき、ステップS602においては、まず、そのような孤立不良を、A内を横切らないようにBスペアで救済することも可能である。つまり、孤立不良を含むAスペアは、A内の不良ビットの救済には使用しないとしてしまうことも可能である。これによって、最終的なスペアの使用総数を減らせる場合がある。
【0267】
また、ステップS602とステップS603の順番を入れ替えることも可能である。つまり、他成分へのスペアの割り当てを行ってから、その時点のスペアの残数を用いて孤立不良グループへのスペアの割り当てを行うことも可能である。
【0268】
また、ステップS603において、G2 ,G3 ,…,Gk の最小被覆を求める方法は、トポロジカルソートや逆トポロジカルソートの1つから得られる最小被覆だけに限定しているが、文献“Generation linear extensions fast”,by G.Pruesse and F.Ruskey,SIAM J.Computing,Vol.23,pp.373−386,1994の方法を用いて、トポロジカルソートあるいは逆トポロジカルソートを全て求めて、他の最小被覆をチェックすることも可能である(ただし、この場合、異なるトポロジカルソートや逆トポロジカルソートから同一の最小被覆が得られることが多々あり得ることに注意する)。あるいは文献“Generation of maximum independent sets of a bipartite graph and maximum cliques of a circular−arc graph”,by T.Kashiwabara,et al,J.Algorithms,Vol.13,pp.161−174,1992の方法を用いて最小被覆を全て列挙することも可能である。
【0269】
また、ステップS603において、分解成分G2 ,G3 ,…,Gk の中にサイズの大きな分解成分がある場合は、その分解成分を水平スペアと垂直スペアが混在したスペアの集まりで救済してから、残りの成分の最小被覆を求めることも可能である。
【0270】
また、ステップS602,S603の繰り返し操作を行っても、他成分に対する最小被覆が見つからなかった場合は、ステップS601に戻り、分解成分G1 ,G0 へのスペアの割り当て方法を変更してもよい。その場合、G1 ,G0 は、水平スペアと垂直スペアの混在したスペアの集まりで割り当てを行うことになる。ステップS601では、G1 の右側に1があるようなラインについては水平スペアを割り当て、G0 の上側に1があるようなラインについては垂直スペアを割り当てるとしたが、孤立不良の定義を本来の狭義で解釈することによって、G1 の右側に1を含むラインに垂直スペアを割り当てたり、G0 の上側の1を含むラインに水平スペアを割り当てることも可能である。なお、この場合、例えば、ラインフェイル検出の終了直後の各種データの内容を保存しておき、割り当て方法を変更するときは各種データの内容を保存時の状態に戻すようにする。
【0271】
ここで、G1 の行ラベル、列ラベルに対応する行、列に対して、水平スペアと垂直スペアの混在したスペアの集まりで割り当てを行う必要のある例を図33に示す。図33は、入力時における行列Bから、その零行と零列を削除して書いたものである。この例には、上水平、下水平スペアがそれぞれ4本、左垂直、右垂直スペアがそれぞれ8本ずつあるものとする。なお、図33では、行や列のアドレスを付け替えている。
【0272】
図34は、図33においてラインフェイル(列ラベル5の列)を算出した後の行列Bに対するDM分解行列である。そして、図33において○印または×印をつけた行ラベルおよび列ラベルの行、列がBの救済解である。そのうち○印のついた行ラベルおよび列ラベルの行、列は、救済すべきAの不良ラインを示し、×印のついた行ラベルおよび列ラベルの行、列は、Aの不良ラインの救済には使用しないとした、Aスペアを示している。
【0273】
本実施形態に係る救済処理方法では、不良ビットを含むスペア(不良スペア)を特別扱いせずに、メイン領域のラインと同等に扱っている。そのため、不良スペアを使わなくても救済できるような解があっても、そのような解を出力するとは限らない。その場合、救済解における使用スペア数の最小化という面からは不利である。そこで、次のような改良も可能である。
【0274】
まず、不良ビットのあるスペアは全てラインフェイルとみなして解いてみる。つまり、ステップS202に続くステップS203として「不良スペアは全てラインフェイルとみなす」という処理を追加する。そして、ステップS401、S601、S602、あるいはS603から、ステップS702に進んだ場合は、救済不可の送信の代わりにステップS301に戻る処理を追加する(ただし、ここで戻るという処理は1回限りとする)。ステップS301に戻った場合は、不良スペアのデータをラインフェイルのデータから外し、該不良スペア上の不良ビットデータを追加した不良ビットデータの集まりを救済の対象にする。
【0275】
次に、本発明のより詳しい第2の実施形態に係る半導体不良ビット救済処理装置について説明する。
【0276】
図35は、本実施形態に係る半導体不良ビット救済処理装置の概略構成を示すブロック図である。この半導体不良ビット救済処理装置は、データ入力部10、ラインフェイル判定部20、線形計画問題表現部35、2段階単体法適用部45、救済結果出力部70を備えている。
【0277】
データ入力部10、ラインフェイル判定部20、救済結果出力部70については第1の実施形態と同様である。
【0278】
線形計画問題表現部35は、ラインフェイル判定部20を経て縮小された不良ビットデータ、およびスペアの適用範囲と本数制限を線形計画問題で表現する。
【0279】
2段階単体法適用部45は、上記線形計画問題に2段階単体法を適用し、不良ラインとスペアの間の対応関係を決める。
【0280】
次に、本実施形態に係る半導体不良ビット救済処理装置の処理手順を図36のフローチャートを用いて説明する。ただし、ステップT101、ステップT201、ステップT202については、それぞれ、第1の実施形態のステップS101、ステップS201、ステップS202と同様であるので、以下ではステップT301以降の処理について説明する。
【0281】
(1)まず、ステップT301の線形計画問題表現部35により行われる線形計画問題による表現を作成する処理について説明する。
【0282】
ステップT301では、ステップT101,T201,T202を経て作成された、入力データ格納用ファイルの不良ビットセルの位置情報およびスペアの適用範囲と本数制限を線形計画問題で表現する。
【0283】
一般に、2部グラフGの最小被覆問題は次のように整数計画問題(IP)として定式化できる(例えば上記文献「情報の構造」に開示されている)。
【0284】
【数3】
【0285】
ここで、n,mはそれぞれGの頂点数、辺数(すなわちラインフェイル処理終了後の不良ビットの総数)である。KはGの接続行列であり、Im は全ての要素が1であるようなm桁の行ベクトルを表す。
【0286】
図37(a)にステップT101,T201,T202を経て縮小された行列Bの一例を、図37(b)にこの行列Bに対応する2部グラフを、図37(c)にその行列Bを等価に表現する2部グラフGの接続行列Kを示す。行列Bの行または列の番号(インデックス)が、2部グラフGの頂点番号に対応している。なお、ここでは、行列Bの行または列の番号は、2部グラフGの頂点番号を見易くするために、1から始まる通し番号を付けている。2部グラフGの辺のラベルa,b,c等は、行列Bの不良ビットに対応している。接続行列Kは2部グラフGの頂点と辺の間の接続関係を表した行列である。
【0287】
2部グラフの最小被覆問題と最大マッチング問題は線形計画問題として眺めたとき互いに双対な問題であるため、上記式の2番目にある条件の部分を実数条件xi ≧0(1≦i≦n)に置き換えて、線形計画問題として扱うことができる(例えば上記文献「情報の構造」に開示されている)。つまり、次の線形計画問題(LP)は最適解として整数解を持つ。
【0288】
【数4】
【0289】
前述したように、最小被覆問題は、スペアの本数に制限がないとした場合の最適な救済解に相当するものである。
【0290】
スペアの本数に制限のある本来の不良ビットの救済問題においては、まず、入力データ格納用ファイルの不良ビットセルの位置情報をもとに、係数行列Kを作成する。次に、スペアの適用範囲と本数制限を線形不等式によって表現する。すると、次のような整数計画問題(RIP)で表現できる。ただし、次に示すものは図1に例示した構造を対象とした場合の一例であり、実際には種々の制約条件に応じて異なったものとなる。
【0291】
【数5】
【0292】
ここで、行列BはステップT202を経た後の縮小された行列Bであり、その行および列には1,2,3,…という通番が付けられているものとする。u,d,l,rは行列Bのそれぞれ上行、下行、左列、右列の数でありu+d+l+r=nである。idx(A)は本来のメモリーブロック行列Aの行、列に相当する行、列の番号からなる集合である。
【0293】
例えば、図37の行列Bの場合、n=14,m=12,u=d=3,l=r=4,idx(A)={2,3,4,5,9,10,11,12}である。
【0294】
この整数計画問題(RIP)の整数条件xi (xi は0または1),(1≦i≦n)を、実数条件xi ≧0(1≦i≦n)に置き換えると、次のような線形計画問題(RLP)が得られる。
【0295】
【数6】
【0296】
(2)次に、ステップT401の2段階単体法適用部45により行われる2段階単体法を適用して救済解を得る処理について説明する。
【0297】
ステップT401では、上記した線形計画問題(RLP)に2段階単体法を適用する。2段階単体法は良く知られた線形計画問題(LP)の解法であり例えば文献「線形計画法」、今野浩著、日科技連に詳しく開示されている。
【0298】
この線形計画問題(RLP)は前述した線形計画問題(LP)と違い、最適解として整数解を持つ保証はないが、ラインフェイルの救済後の不良ビットが、どの行、どの列にも一様に発生する傾向のある実際のRAMデータにおいては整数解が得られる場合が非常に多い。また、整数計画問題(RIP)はスペアの本数に制約のある本来の不良ビットの救済問題を等価に定式化したものなので、線形計画問題(RLP)が整数解を持つ場合は、それは常に最適な救済解であることになる。
【0299】
2段階単体法のフェーズ1(第1段階)において線形計画問題(RLP)に実行可能解が存在しないことが判明した場合は、ステップT702に移る。また、2段階単体法の出力結果が非整数解の場合は、ステップT703に移る。
【0300】
図37の行列Bに2段階単体法を適用すると、x1 =x4 =x7 =x10=x13=x14=1、他のxi については0という結果が得られる。そのときの目的関数の値は2である。ただし、もとの行列Aには上水平、下水平、左垂直、右垂直スペアがそれぞれ3本ずつあるとしている(なお、前述したように、図37の行列Bはラインフェイルや、零行、零列を削除して縮小された後の行列である)。
【0301】
(3)次に、ステップT701の救済結果出力部70による救済の対応データを作成し出力(あるいは送信)する処理について説明する。
【0302】
ステップT701では、ステップT401で得られた救済解(行列Bの不良ラインとBのスペアの間の対応関係)をもとに、本来のメモリーブロック(行列A)の不良ラインと本来のスペアの間の対応関係を求める。
【0303】
第1の実施形態のステップS701で述べたように、行列Bの救済解において、BのスペアがAのスペアを救済している(に対応している)場合は、そのAスペアはAの不良ラインの救済には使用しない。BのスペアがAの不良ラインを救済している場合は、使用しないことが決まったAスペア以外のAスペアを任意に割り当てる。
【0304】
以上の方法で定めた救済の対応データを出力する。
【0305】
図37の行列Bの例では、行ラベル4の行と、列ラベル10の列が救済されるべき不良ラインとして検出される。行ラベル1の行と、列ラベル7,13,14の列は、いずれもAスペアであるので、これらはAの不良ラインの救済には使用しない。
【0306】
行列Aの不良ラインと本来のスペアの間の対応関係を求めるには、行ラベル4の行にAの任意の下水平スペアを割り当て、列ラベル10の列にAの「列ラベル7の左垂直スペア」以外の左垂直スペアを割り当てればよい。
【0307】
なお、前述したように広い意味での救済解を出力するようにしてもよい。
【0308】
(4)次に、ステップT702の救済結果出力部70による救済不可を出力(あるいは送信)する処理について説明する。
【0309】
ステップT702では、スペア数が不足した場合は救済不可として、その旨メッセージを出力する。
【0310】
(5)次に、ステップT703の救済結果出力部70により行われる非整数解による救済不可を出力(あるいは送信)する処理について説明する。
【0311】
ステップT703では、ステップT401で非整数解が得られた場合は、救済不可として、その旨を示すメッセージを出力する。
【0312】
ところで、以上では非整数解となった場合に救済不可としたが、その代わりに、ステップT401で非整数解となった場合に、全ての不良ビットを救済できる解が存在する可能性があるので、整数解を得るためのさらなる手順を実行もしくは試行するようにしてもよい。
【0313】
なお、上記では整数計画問題を線形計画問題に緩和して解く方法について説明したが、例えば文献「整数計画法と組み合わせ最適化」(今野浩著、日科技連)に開示されている分枝限定法等を用いてもよい。
【0314】
以上、各実施形態について、図1のメモリーブロックと予備ラインの配置モデルを用いて説明してきたが、前述したように本発明は前記モデルに限定されるものではない。例えば、図38のようなモデルも自然な拡張で扱うことが可能である。図38のモデルでは、1または複数のスペアからなる垂直スペアのグループGi は垂直ラインのブロックBi の救済に使われ、1または複数のスペアからなる水平スペアのグループGA ,GB はそれぞれ水平ラインのブロックBA ,BB の救済に使われる。そして、互いに直交するスペアの使用に制約を与えるリンボが設定されている。このモデルに対しても前述した定理が成り立つため、本発明を適用することができる。
【0315】
また、これらのモデルにおいては、スペアやリンボはメモリーブロックの外側に位置するように配置されているが、スペアやリンボは例えばメモリーブロック内の2つの小ブロックの間に配置されていてもよいし、あるいは小ブロックの内部に配置されていてもよい。例えば、図1の場合、メモリーブロック行列Aの左列(BLK1とBLK2からなる部分)の中央にR1,…,R6をまとめて挿入し、Aの右列(BLK3とBLK4からなる部分)の中央にR7,…,R12をまとめて挿入し、Aの上行(BLK1とBLK3からなる部分)の下側にC1,C2,C3をまとめて挿入し、Aの下行(BLK2とBLK4からなる部分)の下側にC4,C5,C6をまとめて挿入してもよい。その場合、リンボは互いに直交するスペアの見掛け上交差する位置に配置されることになる。このような変形は、もとの図1から簡単なアドレスの付け替えによって得ることができる。
【0316】
また、上述したモデルにおいては、スペアにはその本数とその割り当て可能範囲という制約しか与えられていないが、その他にも種々の制約が設けられている場合があり得る。例えば、後述する同じ番号列へのスペアの割り当て禁止、あるいは2つのアドレスの2進表現におけるビット列の差異に関する制約等がある。これらは大規模なメモリーの不良ビット検出および救済をコンパクトに扱うための、いわゆるアドレス圧縮等の技術と関連する。
【0317】
例えば、図1において行列Aの左列、右列にそれぞれ1,2,3,…という通番を付けた場合、同じ番号を持つ2つの列(例えば右列の番号10の列と左列の番号10の列)に対して、共に垂直スペアを割り当てることは禁止するという制約が設けられている場合がある。
【0318】
このようなスペアの使用に関する制約が与えられている場合にも、本実施形態は適用可能である。例えば、第1の実施形態の場合、ステップS602,S603のサイクル(あるいはステップS601も含めたS601〜S603のサイクル)を複数回繰り返し、複数の解候補を求めて、それら解候補の各々に対してスペアの使用に関する制約を満たしているか否かをチェックし、満たしているものを救済解として出力することも可能である。第2の実施形態の場合は、制約条件を等式あるいは不等式で表現して(RIP)の条件に付加すればよい。ただし、一般に条件数が増えるとそれだけ整数解が求まる可能性は小さくなる。
【0319】
また、本発明は、メモリーブロックがサブブロックに分割されておらずスペアの使用にメモリブロックに関する制限のないものにも適用可能である。この場合、スペアについては水平と垂直の2分類になり、孤立不良ではグループが1つになるなど、サブブロックに関する処理や内部データが修正されるだけである。もちろん、メモリーブロックが行または列のいずれかの方向のみに分割されたサブブロックが存在する場合にも同様に適用可能である。
【0320】
また、上記の他、本発明は様々なモデルに、そのまま、もしくは部分的に適用可能である。
【0321】
また、本実施形態においては、メモリーブロック行列Aの不良救済問題を、行列Aにスペアとリンボを全て添付して拡大した行列Bの不良救済問題に拡張して考えるという方法を、DM分解や線形計画法と結びつけて説明したが、この拡張するという考え方は他の従来手法と結び付けることも可能である。例えば、文献“Effcient spare allocation for reconfigurable arrays”,by Sy−Yen Kuo and W.Kent Fuchs, IEEE Design and Test, pp.24−31,1987で提案されているbranch−and−bound algorithmやheuristic algorithmを行列Bに適用してBの救済解を求め、その救済解をもとに行列Aの不良ラインと本来の(行列Aの)スペアの間の対応関係を求めることも可能である(すなわち上記アルゴリズムを本実施形態に係る救済処理として用いる)。
【0322】
また、各実施形態においては、行列Bの不良救済問題を解いてから、行列Aの救済解を求めるという方法を説明したが、逆に行列Aの救済解の候補を求めてから、前記候補を行列Bの救済解に拡張してみて、当該候補が実際に行列Aの救済解になり得るか否かをチェックしてみるという方法も可能である。つまり、前述した定理の(必要性)の証明において示した方法と同様の方法で、行列Aの救済解候補の救済ライン集合で救済されるAの不良ラインの集合を、行列Bの救済ライン集合で救済されるBの不良ラインの集合へと拡張してみる。
【0323】
行列Aの救済解の候補(αとおく)を求める際は、行列Aのスペアやリンボには不良ビットが存在しないものと仮定して求める。救済解の候補αを行列Bの救済解へと拡張する際には、まず、行列Bから、行列Aの救済解の候補の行と列を行列Bまで延長して得られる行と列を削除する。そして、この削除によって縮小された行列(B/αとおく)の不良救済問題を解く。行列B/αの不良救済問題においては、前記候補αで使用していたスペア数の残数を用いて、スペアやリンボには不良ビットが存在しないものとして解く。
【0324】
もし行列B/αの救済解が求まれば、前記候補αは行列Aの救済解になり得るので、行列Aの不良ラインと本来のスペアの間の対応関係を定めてやればよい。もし前記候補αが行列Bの救済解へと拡張できなかった場合は、行列Aの救済解の候補を求め直して、再度、拡張を試みればよい。
【0325】
図39(a)〜(d)に具体例を示す。まず、行列Aの救済解の候補α(図39(a)の長円で囲った2本のライン)を作成し、その救済ラインによって救済される各ラインをBのサイズに引き延ばして除去する(図39(b))。次に、その除去によって発生する零行、零列を取り除いて圧縮した行列B/αの救済解を前記候補αで使用していたスペア数の残数を用いて求める(図39(c))。その救済解をαと合わせれば、元の行列Bの救済解となる(図39(d))。行列Aの不良ラインと本来のスペアの間の対応関係は、図39(d)から自明である(長円で囲まれていない2本のスペアをαの2本ラインに割り当てればよい)。
【0326】
さて、以上では1つの半導体デバイスの1チップ内の1つのメモリーブロックに対する処理を中心に説明を行ったが、ここで、1チップ単位の処理、1ウエハ単位の処理、1ロット単位の処理に関連した構成について説明する。
【0327】
通常、メモリーテスタ装置では、ウエハ(半導体基板)の状態でテストを行い、リペア装置では、ウエハの状態でリペアを行う。従って、その中間の工程に位置する半導体不良ビット救済処理装置の場合、最低限1枚のウエハを単位として処理が行われる。また、通常、製造工程では、25枚などを1組とするロットを単位としてプロセスが進められることが多い。また、多品種の製造ラインにおいては、ある半導体不良ビット救済処理装置が、複数品種に係る半導体デバイスを担当する場合もある。
【0328】
従って、半導体不良ビット救済処理装置には、例えば、サブブロックごとの不良ビットの情報とともに、全体的な製造支援システムとリンクされたロットID、ロット内のウエハ番号、ウエハ内におけるチップ番号、チップ内におけるサブブロック番号などが与えられる場合がある。また、例えば、ロット毎にそのロットの品種IDが与えられる場合がある。
【0329】
このような場合、半導体不良ビット救済処理装置には、例えば、図40(a)に示すような形式でデータを与えるようにすればよい。なお、メモリーテスタ側でラインフェイル処理を行う場合には、例えば、図40(b)に示すような形式となる。そして、半導体不良ビット救済処理装置は、同様の形式でデータを出力すればよい。なお、救済不可のチップについてはブロックID等のデータは不要となる。
【0330】
また、半導体デバイスの品種によって、上水平スペア等の数が相違し、あるいはサブブロックの分割方法、スペアに関する制約等が相違することがあるので、半導体不良ビット救済処理装置は、例えば、図40(c)に示すような、品種IDをキーとして、ウエハに関するデータ、チップに関するデータ、ブロックに関するデータなどを登録したテーブルを持ち、与えられたロットIDから処理に必要な情報を検索し、処理に先だって必要な設定をしておく。例えば、図16の例で言えば、4種類のスペアの残数を、検索によって得た数値からそれぞれ3本と設定する。なお、上記のようなテーブルを持たずに、必要時にネットワーク等で接続されたサーバ等からロットIDをキーとして得るようにしてもよい。
【0331】
また、製造ラインにおいては、通常、チップ単位でのリペアに意味があるので、1つでも救済不可のメモリーブロックが見つかれば、その時点で当該チップの救済処理を打ち切るような処理を行うのが好ましい。
【0332】
また、1チップには通常複数のメモリーブロックが含まれるので、処理時間を削減するために、本半導体不良ビット救済処理装置(あるいはCPU)を複数台並列に設け、1ラウンドで複数のメモリーブロックについて同時に救済解を求めるようにしてもよい。
【0333】
次に、本実施形態に係る半導体不良ビット救済処理装置のシステム構成について説明する。
【0334】
本半導体不良ビット救済処理装置は、ソフトウエアで実現可能であり、図41(a)に示すようにメモリーテスタ装置301やリペア装置303とは独立した1つの装置302として実現する他に、図41(b)に示すようにメモリーテスタ装置304上に実現する方法、図42(a)に示すようにリペア装置307上に実現する方法、図42(b)に示すようにメモリーテスタ装置308とリペア装置309に機能を分散して実現する方法(例えばメモリーテスタ装置側で行列Bに対する救済解を求め、これを中間情報としてリペア装置に与え、リペア装置側で行列Aに対する救済解に変換する)、図41(a)において一部の機能を分散して実現する方法等、種々の実現形態が可能である。
【0335】
また、メモリーテスタ装置と半導体不良ビット救済処理装置とが1対多、多対1、あるいは多対多に対応する構成、リペア装置と半導体不良ビット救済処理装置とが1対多、多対1、あるいは多対多に対応する構成も可能である。この場合、受け渡しする情報には、必要な装置IDを付加すればよい。
【0336】
次に、図43に本半導体不良ビット救済処理装置をソフトウエアで実現する場合の装置構成の一例を示す。
【0337】
本半導体不良ビット救済処理装置の処理をCPU321に実行させるためのプログラムは、例えば、これを格納した記録媒体から読み取り装置を介し、あるいは他の計算機等から通信回線を介し通信インタフェース装置を通じるなどしてハードディスク装置323にインストールされ、実行時には適宜RAM322に書き込まれて、CPU321により実行される。
【0338】
図41(a)や図42(a)の場合、入力装置324は、例えば、通信手段等からなり、図41(b)や図42(b)の場合、例えば、入力装置324の代わりに、メモリーテスタ機能との間でのプロセス間通信が行われる。同様に、図41(a)や図41(b)の場合、例えば、出力装置325は通信手段等からなり、図42(a)や図42(b)の場合、例えば、出力装置325の代わりに、リペア機能との間でのプロセス間通信が行われる。
【0339】
また、図40(c)で説明したような各種情報は、例えば、ハードディスク装置323に格納され、必要に応じて参照され、あるいは通信装置によりネットワークを介して必要に応じて入手される。
【0340】
なお、メモリーテスト装置において、複数回(例えば数回ないし20数回)のファンクションテストを行う場合に、ファンクションテストの間に救済処理を行い、救済不可となったチップについては以降のファンクションテストを行わないようにするものがあるが、本発明はこのようなシステムにも適用可能である。
【0341】
次に、本発明の第3の実施形態について説明する。
【0342】
本実施形態は、第1の実施形態の構成と第2の実施形態の構成を兼ね備え、第1の実施形態におけるDM分解等による救済処理(すなわち高速で最適解またはこれに近い解を得ることができる救済処理)を、第2の実施形態における整数計画問題あるいは線形計画問題による救済処理(すなわち解が得られたならば、その解は必ず最適解であるような救済処理)でバックアップするものである。
【0343】
すなわち、第1の実施形態のようにDM分解およびその縮約グラフにもとづいて救済解を求める場合に、制約時間内に救済解が求まらないときに、一旦処理を中止し、第2の実施形態のように整数/線形計画問題として救済解を求めることを行う。この場合、本実施形態をソフトウェアを用いて実現するならば、整数/線形計画問題の計算処理は、第1の救済処理等に用いるために用意されたプロセッサ(CPU)ではなく別のプロセッサによって特別に処理するのが望ましい。このようにすることで、制約時間内にDM分解およびその縮約グラフにもとづいて救済解が求まらない場合が少ないとき、整数/線形計画問題として時間をかけて救済解を求めることで、救済不可を削減できる。あるいはまた、制約時間内にDM分解およびその縮約グラフにもとづいて救済解が求まらない場合が希なときには、DM分解およびその縮約グラフにもとづいて求めた救済解に最適性が保証されないときに整数/線形計画問題として最適な救済解を求めるためにもしくはDM分解およびその縮約グラフにもとづいて求めた救済解の最適性を検証するために利用することもできる。
【0344】
図44に、本実施形態に係る半導体不良ビット救済処理装置の概略構成を示す。
【0345】
本半導体不良ビット救済処理装置は、データ入力部10、ラインフェイル判定部20、第1の救済処理部100、第2の救済処理部200、救済結果出力部70を備えている。
【0346】
データ入力部10、ラインフェイル判定部20、救済結果出力部70については第1の実施形態と同様である。なお、第1の実施形態や第2の実施形態と同様にラインフェイル判定部20を設けない構成もあるが、以下ではラインフェイル判定部20を設けるものとして説明する。
【0347】
第1の救済処理部100は、第1の実施形態における2部グラフ作成部30、最大マッチング作成部40、DM分解作成部50、救済解作成部60に相当する処理を行うものである。
【0348】
第2の救済処理部200は、第2の実施形態の線形計画問題表現部35、2段階単体法適用部45に相当する処理を行うものである。
【0349】
本実施形態は、ソフトウェアにより実現可能である。第1の救済処理部100を割り当てるCPUと第2の救済処理部200を割り当てるCPUとを同じ性能のものにしてもよいし、第1の救済処理部100を割り当てるCPUよりも第2の救済処理部200を割り当てるCPUの方を計算速度に関して高性能なものとしてもよい。
【0350】
本実施形態では、第1の救済処理部100による処理には、1単位の処理に対する制限時間(t1とする)が設けられるものとする。なお、第2の救済処理部200による処理には、制限時間(t2とする)を設ける方法と、制限時間を設けない方法とがある。また、前者の場合、制限時間t2を制限時間t1よりも長く設定する方法(例えば第1の救済処理部100に割り当てるCPUと第2の救済処理部200に割り当てるCPUとを同じ性能のものにする場合)と、制限時間t1と制限時間t2を同じに設定する方法(例えば第1の救済処理部100に割り当てるCPUよりも第2の救済処理部200を割り当てるCPUの方を計算速度に関して高性能なものとする場合)とが考えられる。
【0351】
また、救済処理を繰り返して行う場合、第1の救済処理部100と第2の救済処理部200による処理の開始や終了を同期して行う方法と、第1の救済処理部100は周期的に実行するが、これには第2の救済処理部200を同期させない方法とがある。
【0352】
図45に、本半導体不良ビット救済処理装置の処理手順の一例を示す。ただし、図45では、第1の実施形態や第2の実施形態と相違する部分のみを示している。
【0353】
まず、第1の実施形態や第2の実施形態と同様に、不良ビットのアドレスデータの読み込み、ラインフェイルの算出などの処理を行う。
【0354】
次に、第1の救済処理部100により、第1の実施形態と同様にして、救済解を求めるための処理を行う。
【0355】
次に、本実施形態では、所定の条件が成立した場合には、第2の救済処理部200により、第2の実施形態と同様にして、救済解を求めるための処理を行う。
【0356】
上記の所定の条件としては、種々のものがある。
【0357】
第1の形態は、第1の救済処理部100によっても、規定の制限時間内に救済解を求めることができなかった場合に、第2の救済処理部200を起動するものである。
【0358】
第2の形態は、第1の救済処理部100によって規定の制限時間内に救済解を求めることができないことがまれであるような場合に、第1の救済処理部100によっても、規定の制限時間内に救済解を求めることができなかったならば、第2の救済処理部200を起動するものである。
【0359】
第3の形態は、第1の救済処理部100によって求められた救済解の最適性を検証するために、第2の救済処理部200によって最適解を求めるための処理を行うものである。
【0360】
第4の形態は、第1の救済処理部100によって規定の制限時間内に救済解を求めることができないことがまれであるような場合に、第1の救済処理部100によって求められた救済解の最適性を検証するために、第2の救済処理部200によって最適解を求めるための処理を行うものである。
【0361】
なお、制限時間内に救済解を求めることができなかったとは、処理中に制限時間を経過してしまったことを意味し、制限時間内にスペア不足が判明するなどして救済解がないことが分かった場合は含まれない。
【0362】
そして、いずれの形態においても、第1の救済処理部100のみ実行され、救済解が得られた場合には、その救済解を出力し、第1の救済処理部100および第2の救済処理部200の両方が実行され、救済解が得られた場合には、第2の救済処理部200の救済解を出力し、救済解が得られなかった場合には、救済不可を示す旨のメッセージを出力する。また、複数の救済処理が並列実行された場合には、上記の救済解やメッセージとともに救済対象の識別情報が出力される。
【0363】
なお、第1の救済処理部100および第2の救済処理部200の両方が実行され、救済解が得られた場合には、第1の救済処理部100が最適解であったか否かを示す情報を併せて出力するようにしてもよい。
【0364】
また、救済解が得られなかった場合には、第2の救済処理部200が実行されたか否か、救済解なしとなった理由がスペア数不足か時間不足か非整数解かなどを示す情報を出力するようにしてもよい。
【0365】
以上の様々な観点での種々の構成は、本半導体不良ビット救済処理装置の目的、例えば製造ラインへ設置するのか、研究もしくは不良ICの詳細解析などのオフライン的なサイトに設置するのか、などに応じて、適宜選択することができる。
【0366】
次に、本実施形態に係る半導体不良ビット救済処理装置を製造ラインへ設置することを想定した場合の一例について説明する。
【0367】
図46は、並列実行するm系統の第1の救済処理部100−1〜100−mと、1系統の第2の救済処理部200を備えた半導体不良ビット救済処理装置の例である。なお、データ入力部10とラインフェイル処理部20と救済結果出力部70は省略してある。
【0368】
ここでは、各第1の救済処理部100−1〜100−mと第2の救済処理部200に専用のCPUが割り当てられるものとする。
【0369】
第1の救済処理部100−1〜100−mによる第1の救済処理は、同時に実行開始され、規定の制限時間に達したら、同時に終了されるものとする。制限時間内に救済解が得られた第1の救済処理部は、制限時間に達するまで待ち状態となり、制限時間内に救済解が得られなかった第1の救済処理部は、制限時間にて処理を打ち切ることになる。
【0370】
そして、制限時間内に救済解が得られた第1の救済処理部からは救済解が出力され、制限時間内に救済解がないことが判明した第1の救済処理部からは救済不可である旨を示すメッセージが出力され、制限時間内に救済解が得られなかった第1の救済処理部からは、第2の救済処理の結果を待たせるために保留を示す旨のメッセージを出力する。なお、複数の救済処理が並列実行された場合には、上記の救済解やメッセージとともに救済対象の識別情報が出力される。
【0371】
そして、救済対象のデータがmセット以上ある場合には、第1の救済処理部100−1〜100−mによる第1の救済処理が繰り返し実行される。
【0372】
ここで、制限時間内に救済解が得られなかった第1の救済処理部があった場合には、その救済対象データに対して第2の救済処理部200による第2の救済処理を試みる。
【0373】
そして、第2の救済処理部からは、制限時間内に救済解が得られたならばその救済解が出力され、制限時間内に救済解がないことが判明した場合および制限時間内に救済解が得られなかった場合には、救済不可を示すメッセージが出力される。
【0374】
解の統合処理部300では、第1の救済処理部から保留を示す旨のメッセージを受けた対象(識別情報)について、その後に第2の救済処理部から受けた結果(救済解または救済不可メッセージ)をもって、最終結果とする。
【0375】
なお、この解の統合処理部300は、本半導体不良ビット救済処理装置内に設けられる場合と、リペア装置側に設けられる場合とが考えられる。
【0376】
次に、図47を参照しながら処理の流れの具体例を示す。
【0377】
ここでは、図47に示すように、第1の救済処理部100−1〜100−8にはそれぞれCPU1〜8が割り当てられ、第2の救済処理部200にはCPU9が割り当てられており、一定周期で同期して1単位の救済対象ごとに処理を進めていく。また、第2の救済処理部の処理には、第1の救済処理部の2単位分の周期が割り当てられるものとする(この時間内に計算が終了するものとする)。
【0378】
まず、第1回目の周期においては、CPU1〜CPU8においてそれぞれ救済対象#1〜#8に対する第1の救済処理が実行される。
【0379】
ここで、救済対象#3に対する第1の救済処理を行ったCPU3において処理途中で制限時間に達してしまって救済解が得られなかった場合、救済対象#3に対する第2の救済処理がCPU9において実行されることになる。
【0380】
しかして、第2回目の周期においては、CPU1〜CPU8においてそれぞれ救済対象#9〜#16に対する第1の救済処理が実行され、第3回目の周期においては、CPU1〜CPU8においてそれぞれ救済対象#17〜#24に対する第1の救済処理が実行されるとともに、第2回目と第3回目の周期に渡って、CPU9において救済対象#3に対する第2の救済処理が実行される。
【0381】
そして、第4回目の周期においては、CPU1〜CPU8においてそれぞれ救済対象#25〜#32に対する第1の救済処理が実行されるとともに、他に処理途中で制限時間に達してしまって救済解が得られなかった救済対象があれば、その救済対象に対する第2の救済処理がCPU9において実行される。
【0382】
また、例えば、上記において、第1の救済処理により救済解が得られないことがまれでCPU9がほとんど稼働しないような場合には、第1の救済処理により救済解が得られたいずれかの救済対象について、CPU9を用いて第2の救済処理を行うことによって、第2の救済処理で得た最適解と第1の救済処理で得た救済解とを比較することによって、第1の救済処理で求めた解の最適性を検証するようにしてもよい。
【0383】
次に、本発明の第4の実施形態について説明する。
【0384】
これまでは、各スペアが1本のラインとして割当てられるようなメモリーブロックに対する不良ビットの救済処理について説明してきた。すなわち、各垂直スペアや各水平スペアはメモリーブロックの行方向や列方向と同じビット幅を持ち、各スペアは1本を単位として(すなわちその行方向や列方向と同じビット数を単位として)用いられるものであった。
【0385】
本実施形態では、各スペアを1本のラインとして割当てなくても良いような自由度の存在するメモリーブロックに対する不良ビットの救済処理について説明する。
【0386】
まずその説明に先だって、これまで説明してきた種々の救済処理が適用可能なメモリーブロックとスペアとリンボの構成について言及しておく。
【0387】
ここでは、メモリーブロックをメイン、垂直スペアをRスペア、水平スペアをCスペアと呼ぶものとする。通常、メインは複数のブロックに分かれ、それぞれのブロックに対して数本ずつのスペアが使用可能という仕様になっている。そして、実際、スペアはメイン内のブロックの任意の箇所に埋め込まれている場合が多い。メインのうちブロックを垂直方向に分割したときのそれぞれの部分をRブロック、水平方向に分割したときのそれぞれの部分をCブロックと呼ぶ。
【0388】
図48にメモリーブロックとスペアとリンボの構成の一例を示す。この例では、BLK−1とBLK−2がそれぞれRブロックであり、BLK−AとBLK−BがそれぞれCブロックである。Rスペア(1)はBLK−1の不良ビットを救済するためのRスペア群であり、Rスペア(2)はBLK−2の不良ビットを救済するためのRスペア群である。Cスペア(A)はBLK−Aの不良ビットを救済するためのCスペア群であり、Cスペア(B)はBLK−Bの不良ビットを救済するためのCスペア群である。図48ではRスペアはRブロックの右側に、CスペアはCブロックの下側に書いてあるが、RスペアがRブロックの内部に埋め込まれていたり、CスペアがCブロックの内部に埋め込まれている例もある。
【0389】
前述したように、スペアは、メインの行、列の間に埋め込まれている場合が多いが、アドレス変換をすれば、例えば図49のようにメインの外側に設けられているような形で表現することができる。その場合、リンボは、RスペアとCスペアの交差する部分として、メインの外側に現れる。
【0390】
ここで、救済解を求める処理を行う対象とする処理単位が以下の条件を満たす場合、この処理単位は「基本形」であると定義する。
条件:「各スペアは1本のラインとして割当てられる。」
この条件はより具体的に言うと、「垂直方向の予備ラインはメモリーブロックの垂直方向の長さを持つ1本のラインとして垂直方向の所与の1つまたは複数のブロックに属す不良ラインに割当て可能であり、かつ、水平方向の予備ラインはメモリーブロックの水平方向の長さを持つ1本のラインとして水平方向の所与の1つまたは複数のブロックに属す不良ラインに割当て可能である」という条件である。
【0391】
なお、図49の例のようにスペアやリンボを外側に記述するのは、単に構造を見易くするためであり、このような記述自体は基本形の本質とは無関係である。
【0392】
さて、先に証明した定理すなわち「行列Aの救済解が存在するための必要十分条件は、行列Bの救済解が存在することである。」という定理は、基本形に変換できる処理単位に対して常に成り立つ(先の例では、Rブロック数が2、Cブロック数が2の場合について上記定理を証明したが、この定理がブロック数に依存せずに成り立つことは明らかである)。従って、これまで説明してきた種々の救済処理は、基本形に変換できる任意の処理単位に対して利用できるものである。
【0393】
救済処理を実現するための救済プログラムは、基本形に変換できるどのような処理単位に対しても適用できるように、汎用化してもよい。その場合、ブロックのサイズやスペア数等、デバイスに固有なパラメータは外から、例えばファイル形式で渡してもよい。
【0394】
さて、処理単位のなかには、上記した条件を満足せず、そのままでは基本形にならない場合もある。基本形にならないということは、その処理単位にはこれまで説明してきた種々の救済処理救済処理をそのまま適用することができないということを意味する。
【0395】
例えば、図50に例示するメモリーブロックとスペアとリンボの構成は、Cスペアを細分化して割当てることができるという自由度の高いデバイスの処理単位の例である。すなわち、Rスペアに限っては上記条件を満足しているが、Cスペアが上記条件を満足していない場合である。
【0396】
以下では、Cスペアを細分化して割当てることができる例をもとに説明するが、Rスペアを細分化して割当てることができる例に対しても同様のことが言える。なお、CスペアおよびRスペアのいずれも細分化して割当てることができる場合については後で詳しく説明する。
【0397】
図50の例においては、S0〜S7の8つのブロックからなるメインを囲むように、左右4本ずつのRスペアと上下3本ずつのCスペアと必要なリンボが配置されている(実際に図50のような構成になっていてもよいし、アドレス変換後の配置が図50のようであってもよい)。
【0398】
RブロックであるBLK−1はブロックS0,S1,S4,S5を含み、RブロックであるBLK−2はブロックS2,S3,S6,S7を含み、CブロックであるBLK−AはブロックS0,S1,S2,S3を含み、CブロックであるBLK−BはブロックS4,S5,S6,S7を含む。
【0399】
左側の4本のRスペア(R1とする)はBLK−1用であり、右側の4本のRスペア(R2とする)はBLK−2用であるものとする。また、上側の3本のCスペアはBLK−A用であり、下側の4本のCスペアはBLK−B用であるものとする(なお、上下のそれぞれのCスペアについて、S0とS4に対応する部分をc1、S1とS5に対応する部分をc2、S2とS6に対応する部分をc3、S3とS7に対応する部分をc4と呼ぶものとする)。
【0400】
これらRスペアはそれぞれ、1本のラインとして割り当てられる。
【0401】
一方、Cスペアについては、実際の割当てにおいては、1本のCスペアを4当分して、その一部だけを使うことが可能であるものとする。また、ここでは、それら細分化された4本の短いCスペアには、他の短いCスペアと連動して用いなければならないという制約があるものとする。例えば、{c1,c2,c3,c4}をそれら4本の短いCスペアとしたとき、{c1,c3},{c2,c4}は、それぞれメインの同一の行アドレスを救済しなければならないという制約である。つまり、短いCスペアは1つおきに2本ずつ1本にまとめた状態で使用しなければならないという制約である(実質的には1本のCスペアを2当分して、その一部だけを使うことが可能であるということになる)。
【0402】
このような場合には、上記の連動という性質を用いてメインとCスペアを縦方向に分割し、図51の(a)と(b)のような2つの部分処理単位に分けて扱うことにする。なお、左右のRスペア(R1,R2)は、両方の部分処理単位で共用させる。各部分処理単位においてはRスペアを共用するため、この部分処理単位を「共用単位」と呼ぶことにする。共用単位においては、スペアが1本のラインとしてメインのラインを救済するという対応関係が付けられているため、上記条件を満足し、共用単位は基本形になっていることがわかる。
【0403】
次に、上記条件を満足しない他の例を示す。
【0404】
図52に例示するメモリーブロックとスペアとリンボの構成は、Cスペアの割当て範囲にさらに自由度のある例である。
【0405】
RスペアやRブロックについては図50の例と同様である。
【0406】
BLK−AとBLK−Bは水平方向のブロック(Cブロック)、BLK−1とBLK−2は垂直方向のブロック(Rブロック)を表す。Cブロックをさらに3つのCサブブロックに分割し、BLK−AのCサブブロックはBLK−A1、BLK−A2、BLK−A3で表し、BLK−BのCサブブロックはBLK−B1、BLK−B2、BLK−B3で表す。6本のCスペアを上から順にCA1、CA2、CA3、CB1、CB2、CB3で表す。
【0407】
Cスペアの細分化や連動という性質は図50の例の場合と同様とする。図50の例の場合と相違するのは、Cスペアの割当て範囲である。各Cスペアの割当て範囲は次のように重複しているものとする。すなわち、BLK−Aについては、CA1はBLK−A2およびBLK−A3の救済に、CA2はBLK−A1およびBLK−A3の救済に、CA3はBLK−A1およびBLK−A2の救済に使用可能である。BLK−Bについても同様に、CB1はBLK−B2およびBLK−B3の救済に、CB2はBLK−B1およびBLK−B3の救済に、CB3はBLK−B1およびBLK−B2の救済に使用可能である。
【0408】
このような場合にも、図50と同様に処理単位を2つの共用単位に分割すると、図53の(a)と(b)に示すようになる。この場合、Cスペアの割当て範囲が重複しているが、それぞれの共用単位は基本形になっていることがわかる。
【0409】
さて、上記したように、もとの処理単位が「各スペアは1本のラインとして割当てられる。」という条件を満足せず、基本形になっていない場合であっても、この処理単位を共用単位に分割することにより、各々の共用単位については、これまでに説明してきた救済処理を適用することができるようになる。
【0410】
そこで、上記条件を満足していない処理単位については、まず、各共用単位ごとに(他の共用単位を考慮せずに)救済解を求め、そして、共用単位間で共用しているスペア群について考慮しながら各共用単位の救済解を合成することにより、当該処理単位の救済解を生成することができる。
【0411】
以下では、このように「各スペアは1本のラインとして割当てられる。」という条件を満足しない処理単位に対する救済処理を行う半導体不良ビット救済処理装置について説明する。なお、以下では、1つの処理単位を対象として説明を行う。
【0412】
図54に、この場合における半導体不良ビット救済処理装置の基本構成例を示す。また、図55に、この場合における救済処理の手順の一例を示す。
【0413】
入力処理部1001は、対象となる処理単位に固有の情報等を入力し、またメモリーテスタ装置からの処理単位(例えば図50)に対する不良ビットのアドレス情報(行アドレスと列アドレスの対)を入力する(ステップS1001)。
【0414】
なお、処理単位に固有の情報としては、例えば、共用単位の数、共用単位のR,Cブロック数、共用単位の1ブロック用のR,Cスペア数、共用単位のR,Cブロックの列,行サイズなどである。
【0415】
次に、入力処理部1001は、処理単位に固有の情報を参照して、入力された処理単位に対する不良ビットのアドレス情報を、各共用単位(例えば図51の(a)と(b))に対するアドレス情報に変換(分配)する(ステップS1002)。
【0416】
例えば、図50の例の場合にブロックS0の不良ビットは図51(a)のように共用単位E1に割り振り、ブロックS1の不良ビットは図51(b)のように共用単位E2に割り振る。メインの他のブロックやCスペアについても同様である。Rスペアとリンボの不良ビットについては全ての共用単位に共通に割り振る。
【0417】
次に、共用単位救済処理部1002は、共用単位ごとに、救済処理を行って、救済解を求める(ステップS1003)。この救済処理には、例えば、第1の実施形態として説明したものやその変形例などを用いることができる。
【0418】
ここで求める救済解は、各共用単位における救済すべき不良ラインと使用不可のスペアとを示す情報とする(スペアが必要な不良ラインのアドレスに、実際のスペアのアドレスを割当てることはしない)。
【0419】
ここでは、各共用単位についてそれぞれ、複数の救済解を求めるものとする(上限の個数を決めておくものとする)。
【0420】
以下では、各共用単位で求められた救済解を、解候補と呼ぶ。なお、複数の救済解を求める方法としては、例えば、第1の実施形態におけるS602とS603を繰返し行うなど、種々の方法が考えられる。
【0421】
なお、この各共用単位に対する救済処理は、並列に実行してもよいし、順次実行してもよい。
【0422】
また、1つでも救済不可となった共用単位が存在する場合には、当該処理単位は救済不可となる。
【0423】
次に、解候補合成処理部1003は、各共用単位から1つずつ選出した解候補を、共用単位間で共用しているスペア群について考慮しながら合成して、当該処理単位の救済解を生成する(ステップS1004)。なお、この共用単位の解候補の合成処理については後で詳しく説明する。
【0424】
次に、出力処理部1004は、当該処理単位の救済解が存在する場合には、当該救済解についてアドレスを変換し直したものを出力し、救済解が存在しない場合には、その旨を示すメッセージ等を出力する(ステップS1005)。
【0425】
なお、出力する救済解は、当該処理単位における救済すべき不良ラインとその救済に使用可能のスペアとを示す情報としてもよいし、どのスペアでどの不良ラインを救済するかを特定した情報としてもよい。
【0426】
また、ラインフェイル処理を行う場合には、例えば、第1の実施形態と同様に入力された処理単位の不良ビットのアドレスデータに対してラインフェイル処理(図15のステップS201)を行い、ステップS1003において共用単位毎にラインフェイル処理(図15のステップS202)を行う。
【0427】
以下では、各共用単位から1つずつ選出した解候補の合成方法として、幾つかの方法について説明する。解候補の合成では、複数の共用単位で共用されているスペアをいかに扱うかがポイントとなる。なお、選出のしかたや最適解の探索などについては後述する。
【0428】
解候補の合成方法の第1の例について説明する。
【0429】
本例では、Rスペアが共用単位間で共用されるので、Rスペアに関して処理を適用することになる。
【0430】
まず、各共用単位から解候補を1つずつ選出する。
【0431】
次に、選出された解候補それぞれにおいて使用不可となったRスペアの和集合(共用単位の解候補のうちの少なくとも1つにおいて使用不可となったRスペアの集合)を求め、Rブロック毎に「Rスペアの総数」から「使用不可となったRスペア数」を減じて「Rスペアの残数」を求める。また、選出された解候補において「Rスペアが必要な不良ラインの総数」を求める。
【0432】
例えば、共用単位が2つあり、左側のRスペアを第1番〜第4番とし(総数を4本とし)、第1の共用単位では1番のRスペアが使用不可能となり、第2の共用単位では2番のRスペアが使用不可となった場合には、左側の使用不可のRスペアの和集合は1番と2番のRスペア(すなわち2本)であり、左側の使用可能なRスペアの残数は4−2=2本となる。
【0433】
また、例えば、共用単位が2つあり、左側のRスペアを第1番〜第4番とし(総数を4本とし)、第1の共用単位では1番と3番のRスペアが使用不可となり、第2の共用単位では2番と3番のRスペアが使用不可となった場合には、左側の使用不可のRスペアの和集合は1番と2番と3番のRスペア(すなわち3本)であり、左側の使用可能なRスペアの残数は4−3=1本となる。
【0434】
次に、各Rブロック毎に、「Rスペアの残数」と「Rスペアが必要な不良ラインの総数」とを比較して、「Rスペアの残数」の方が大きいかまたは等しければ、当該解候補の組合わせに対して合成解が存在すると判定する。一方、1つでも「Rスペアの残数」の方が小さいRブロックがあれば、当該解候補の組合わせに対して合成解が存在しないと判定する。
【0435】
なお、合成解が存在すると判定された解候補の組合わせから当該処理単位の救済解(広い意味での解)を生成するにあたっては、共用単位間で共用されているRスペアについては、処理対象とした全Rスペアから上記の使用不可のRスペアの和集合に属するものを除外したRスペアと、Rスペアが必要な不良ラインとを示す情報が解となる。
【0436】
共用単位間で共用されていないCスペアについては各共用単位の解候補の内容をそのまま用いることができる。
【0437】
また、出力する救済解として、どのスペアでどの不良ラインを救済するかを特定した情報を出力する場合には、処理単位レベルでのスペア割当てを行えばよい。
【0438】
次に、解候補の合成方法の第2の例について説明する。
【0439】
不使用スペアは共用単位に依存するものなので、ある共用単位で不使用としたスペアであっても、他の共用単位では不使用としていないスペアも存在し得る。上記の第1の例に係る合成方法は処理が速いのが利点であるが、合成解があるのにそれが求まらない場合もあり得る。
【0440】
そこで、本例では、各共用単位毎に順番にスペアの割当てを行って行く。
【0441】
まず、各共用単位から解候補を1つずつ選出する。
【0442】
次に、第1の共用単位について、当該共用単位において使用不可となったRスペア以外のRスペアを用いて、不良ラインを救済する。
【0443】
次に、第2の共用単位について、当該共用単位において使用不可となったRスペアおよび第1の共用単位の救済で使用されたRスペアを使用不可として、それ以外のRスペアを用いて、不良ラインを救済する。
【0444】
共用単位が3つ以上ある場合には、以下同様にして、前回までの共用単位で使用したRスペアと当該共用単位で使用不可となったRスペアを当該共用単位における使用不可のRスペアとして、不良ラインを救済する。
【0445】
なお、不良ラインが存在しない共用単位については、上記処理を行う必要はない。
【0446】
例えば、左側のRスペアについてのみ説明すると、共用単位が2つあり、左側のRスペアを第1番〜第4番とし(総数を4本とし)、第1の共用単位では1番のRスペアが使用不可となり、Rスペアで救済すべきラインが1本であった場合には、第1番以外のRスペアを使用することとなる。ここでは、第2番のRスペアを使用したものとする。次に、第2の共用単位では3番のRスペアが使用不可となり、Rスペアで救済すべきラインが2本であった場合には、この3番のRスペアおよび第1の共用単位で使用済みの第2番のRスペア以外のRスペアを使用することとなる。ここでは、第1番と第4番のRスペアを使用したものとする。この結果、左側のRスペアについて、合成解が得られたことになる。右側のRスペアについても同様にして処理が行われる。
【0447】
なお、スペアの使用方法に制約があり、共用単位の解候補を求めるまでの段階でこの制約を考慮していない場合には、例えば上記の解候補の合成において、処理単位の救済解がこの制限を満足するか否かをもチェックするものとする。
【0448】
さて、上記では、解候補の1つの組合わせに対する合成処理について説明したが、以下では、複数の組合わせのなかから1つを選択する手順について説明する。
【0449】
図56に解候補の合成処理の手順の一例を示す。
【0450】
この手順は、処理単位の救済解が1つ得られた時点でその組合わせを採用するもので、共用単位の各々から解候補を1つずつ選出し(ステップS1011)、この解候補を上記したような処理によって合成して当該処理単位の救済解が得られるか否かを判定し(ステップS1012)、得られた場合には(ステップS1013)、その救済解を採用することとして、処理を終了し、得られなかった場合には(ステップS1013)、次の組合わせを選出して同様の処理を行う(ステップS1014,S1011,S1012)。規定数の組合わせ(全ての組合わせ数あるいはそれより少ない所定数)について当該処理単位の救済解が得られなかった場合には(ステップS1014)、救済不可とする。
【0451】
各共用単位からの解候補の選出方法としては、例えば、ランダムに選出する方法、各共用単位について救済に使用するCスペアの多いものをなるべく優先的に選出する方法など、種々の方法が考えられる。
【0452】
次に、図57、解候補の合成処理の手順の他の例を示す。
【0453】
この手順は、処理単位の救済解として最適なものを与える組合わせを全部または一部の組合わせのなかから探索するもので、共用単位の各々から解候補を1つずつ選出し(ステップS1021)、この解候補を上記したような処理によって合成して当該処理単位の救済解の候補を求めもしくは救済不可を判断する(ステップS1022)、という一連を処理を、解候補の組合わせを変えながら、規定数の組合わせ(全ての組合わせ数あるいはそれより少ない所定数)について行う(ステップS1021,S1022,S1023)。そして、当該処理単位の救済解となり得る候補が1つ得られた場合には(ステップS1024)、これを救済解として採用する(ステップS1025)。当該処理単位の救済解となり得る候補が2以上得られた場合には(ステップS1024)、救済に使用するスペアが最も少なくて済む候補を最良の救済解として採用する(ステップS1026)。救済に使用するスペアが最も少なくて済む候補が複数ある場合には、他の選択基準を用いてあるいはランダムに、いずれか1つを選択する。当該処理単位の救済解となり得る候補が1つも得られなかった場合には(ステップS1024)、当該処理単位は救済不可となる。
【0454】
各共用単位からの解候補の選出方法としては、例えば、m個の共用単位の解候補をn個ずつ求め、nm 種類の組合わせを全て選択する方法、m個の共用単位の解候補をn個ずつ求め、nm より小さい種類数の組合わせをランダムに選択する方法、m個の共用単位の解候補をn個ずつ求め、各共用候補の解候補について救済に使用するCスペアの多い順に取り出したk個(k<n)の部分について、km 種類数の全ての組合わせを選択する方法など、種々の方法が考えられる。
【0455】
なお、当該処理単位の救済解として複数のものを出力し、例えばリペア装置側で実際に使用する1つを選択するようにしてもよい。
【0456】
以上では、Cスペアを細分化して割当てることができる例、すなわちRスペアを共用単位間で共用する例をもとに説明したが、Rスペアを細分化して割当てることができる例、すなわちRスペアを共用単位間で共用する例に対しても同様である(上記の説明において、CスペアとRスペアを逆にすればよい)。
【0457】
また、CスペアおよびRスペアのいずれも細分化して割当てることができる場合についても、本手法は同様に適用することができる。
【0458】
例えば、図58に例示するメモリーブロックとスペアとリンボの構成は、図50のCスペアの構造をRスペアにも適用したもので、RスペアおよびCスペアを細分化して割当てることができるデバイスの処理単位の例である。すなわち、RスペアおよびCスペアのいずれも上記した「各スペアは1本のラインとして割当てられる。」という条件を満足していない場合である。
【0459】
図58の例においては、S0〜S15の16個のブロックからなるメインを囲むように、左右4本ずつのRスペアと上下4本ずつのCスペアと必要なリンボが配置されている(実際に図58のような構成になっていてもよいし、アドレス変換後の配置が図58のようであってもよい)。
【0460】
左側の4本のRスペアはBLK−1用であり、右側の4本のRスペアはBLK−2用であるものとする。また、上側の3本のCスペアはBLK−A用であり、下側の4本の3スペアはBLK−B用であるものとする。
【0461】
なお、左右のそれぞれのRスペアについて、S0,S1,S2,S3に対応する部分をr1、S4,S5,S6,S7に対応する部分をr2、S8,S9,S10,S11に対応する部分をr3、S12,S13,S14,S15に対応する部分をr4とし、上下のそれぞれのCスペアについて、S0,S4,S8,S12に対応する部分をc1、S1,S5,S9,S13に対応する部分をc2、S2,S6,S10,S14に対応する部分をc3、S3,S7,S11,S15に対応する部分をc4と呼ぶものとする。
【0462】
RスペアおよびCスペアについては、実際の割当てにおいては、1本のスペアを4当分して、その一部だけを使うことが可能であるものとする。また、ここでは、それら細分化された4本の短いスペアには、他の短いスペアと連動して用いなければならないという制約があるものとする。例えば、{r1,r2,r3,r4}をそれら4本の短いRスペアとしたとき、{r1,r3},{r2,r4}は、それぞれメインの同一の列アドレスを救済しなければならないという制約と、{c1,c2,c3,c4}をそれら4本の短いCスペアとしたとき、{c1,c3},{c2,c4}は、それぞれメインの同一の行アドレスを救済しなければならないという制約である。つまり、短いスペアは1つおきに2本ずつ1本にまとめた状態で使用しなければならないという制約である(実質的には1本のスペアを2当分して、その一部だけを使うことが可能であるということになる)。
【0463】
このような場合には、図50の例と同様に、上記の連動という性質を用いてメインとRスペアおよびCスペアを縦横方向に4分割し、図59の(a)〜(d)のような4つの共用単位に分けて扱うことにする。この場合、図60に示すように、共用単位E1とE2の間ではr1とr3の短いスペアが共用され、共用単位E3とE4の間ではr2とr4の短いスペアが共用され、共用単位E1とE3の間ではc1とc3の短いスペアが共用され、共用単位E2とE4の間ではc2とc4の短いスペアが共用されることになる。
【0464】
このように分割した場合、4つの各共用単位それぞれにおいてはスペアが1本のラインとしてメインのラインを救済するという対応関係が付けられているため、上記条件を満足し、4つの共用単位はいずれも基本形になっていることがわかる。
【0465】
したがって、このようにRスペアおよびCスペアの両方が上記条件を満足しない場合であっても、処理単位を共用単位に分割し、各共用単位毎に解候補を求め、それらを合成することによって、当該処理単位に対する救済解を得ることができる。
【0466】
ただし、この場合、図60に例示するように、RスペアおよびCスペアの両方が複数の共用単位で共用されているので、解候補の合成処理にあたっては、RスペアとCスペアのそれぞれについて、前述したような解候補の合成を行えばよい。
【0467】
なお、本実施形態では、1つの半導体デバイスの1チップ内の1つのメモリーブロックに対する処理を中心に説明を行ったが、前述したような、1チップ単位の処理、1ウエハ単位の処理、1ロット単位の処理に関連して説明した構成、システム構成、本半導体不良ビット救済処理装置をソフトウエアで実現する構成などの種々の構成は、本実施形態にも適用可能である。
【0468】
本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。
【0469】
【発明の効果】
本発明によれば、メモリー部分を有する半導体デバイスにおいて予備ラインに不良ビットセルが検出されている場合であっても、救済の可/不可と、救済が可能な場合に不良ラインと予備ラインとの間の対応関係を高速かつ安定的にまた求めることができる。また、処理に制限時間が設けられている場合でも制限時間内に上記の結果を得ることが期待できる。また、不良ビットセルが一様に散らばって出現するような場合あるいはラインフェイルを救済した後に残った不良の多くが孤立不良のような場合などには、制限時間を超える探索を行うことが極力少なくなり、不良ラインの使用本数を最小本数またはこれに極めて近い本数で実現した不良ラインと予備ラインとの間の対応関係を求めることが多くなると期待できる。
【図面の簡単な説明】
【図1】メモリーブロックとスペアとリンボの構成の一具体例を示す図
【図2】メモリーブロックのみに不良ビットが存在する場合の不良ビットの救済を説明するための図
【図3】スペアやリンボにも不良ビットが存在する場合の不良ビットの救済を説明するための図
【図4】メモリーブロックからなる行列Aとメモリーブロックとスペアとリンボからなる行列Bを説明するための図
【図5】行列Aの救済解と行列Bの救済解との関係を説明するための図
【図6】行列Aの救済解と行列Bの救済解との関係を説明するための他の図
【図7】本発明の実施形態に係る半導体不良ビット救済処理装置の基本構成を示す図
【図8】本発明の実施形態に係る半導体不良ビット救済処理装置の処理手順の一例を示すフローチャート
【図9】行列Bの一例を示す図
【図10】行列Bによる救済解の一例を示す図
【図11】行列Aにおける救済解の一例を示す図
【図12】本発明の実施形態に係る半導体不良ビット救済処理装置の処理手順の他の例を示すフローチャート
【図13】本発明の実施形態に係る半導体不良ビット救済処理装置の処理手順のさらに他の例を示すフローチャート
【図14】本発明の第1の実施形態に係る半導体不良ビット救済処理装置の概略構成を示す図
【図15】本発明の第1の実施形態に係る半導体不良ビット救済処理装置の処理手順の一例を示すフローチャート
【図16】行列Bの一例を示す図
【図17】図16の行列Bに対応する入力データの一例を示す図
【図18】スペアの残数やBスペアで救済されるラインの情報の保持方法の一例を示す図
【図19】図15のフローチャートにおけるステップS101およびS201のより詳しい処理手順の一例を示すフローチャート
【図20】Bスペアにより救済される行列Bにおける行や列のラインを示す図
【図21】入力データ格納用ファイルの形式の一例を示す図
【図22】ラインフェイル処理後の縮小されたB行列を示す図
【図23】図22の行列Bに対応する2部グラフを示す図
【図24】図22の2部グラフにおけるリンク情報を記憶したテーブルの一例を示す図
【図25】図23の2部グラフに対する最大マッチングの一例と最小被覆の一例を示す図
【図26】最大マッチングを記憶したテーブルの一例を示す図
【図27】DM分解とその縮約グラフを説明するための図
【図28】図23の2部グラフから求めたDM分解を示す図
【図29】図28に対するDM分解の縮約グラフを示す図
【図30】図28に対するDM分解とその縮約グラフの保持方法の一例を示す図
【図31】図28のDM分解をもとにしたスペアの割り当て処理を説明するための図
【図32】図15のフローチャートにおけるステップS602およびS603のより詳しい処理手順の一例を示すフローチャート
【図33】B行列の一例を示す図
【図34】図33のB行列においてラインフェイルを算出した後の行列Bに対するDM分解行列を示す図
【図35】本発明の第2の実施形態に係る半導体不良ビット救済処理装置の概略構成を示す図
【図36】本発明の第2の実施形態に係る半導体不良ビット救済処理装置の処理手順の一例を示すフローチャート
【図37】行列B、2部グラフおよび接続行列を説明するための図
【図38】メモリーブロックとスペアとリンボの構成の一具体例を示す図
【図39】本発明の他の実施形態に係る半導体不良ビット救済処理方法を説明するための図
【図40】半導体不良ビット救済処理装置に与えられるデータ形式の一例
【図41】半導体不良ビット救済処理装置のシステム構成例を示す図
【図42】半導体不良ビット救済処理装置のシステム構成例を示す図
【図43】半導体不良ビット救済処理装置の装置構成例を示す図
【図44】本発明の第3の実施形態に係る半導体不良ビット救済処理装置の概略構成を示す図
【図45】本発明の第3の実施形態に係る半導体不良ビット救済処理装置の処理手順の一例を示すフローチャート
【図46】同実施形態の適用例を説明するための図
【図47】同実施形態の適用例を説明するための図
【図48】メモリーブロックとスペアとリンボの構成の一具体例を示す図
【図49】基本形となる処理単位を説明するための図
【図50】基本形でない処理単位を説明するための図
【図51】基本形となる共用単位を説明するための図
【図52】基本形でない処理単位を説明するための図
【図53】基本形となる共用単位を説明するための図
【図54】本発明の第4の実施形態に係る半導体不良ビット救済処理装置の概略構成を示す図
【図55】本発明の第4の実施形態に係る半導体不良ビット救済処理装置の処理手順の一例を示すフローチャート
【図56】同実施形態に係る解候補合成処理の手順の一例を示すフローチャート
【図57】同実施形態に係る解候補合成処理の手順の他の例を示すフローチャート
【図58】基本形でない処理単位を説明するための図
【図59】基本形となる共用単位を説明するための図
【図60】共用単位で共用されるスペア群を説明するための図
【符号の説明】
1…入力処理部
2…ラインフェイル処理部
3…救済処理部
4…出力処理部
10…データ入力部
20…ラインフェイル判定部
30…2部グラフ作成部
35…線形計画問題表現部
40…最大マッチング作成部
45…2段階単体法適用部
50…DM分解作成部
60…救済解作成部
70…救済結果出力部
200…メモリーブロック
201〜204…サブブロック
211〜214…スペア
215〜218…リンボ
321…CPU
322…RAM
323…ハードディスク装置
324…入力装置
325…出力装置
326…バス
100,100−1〜100−n…第1の救済処理部
200…第2の救済処理部
300…解の統合処理部
1001…入力処理部
1002…ラインフェイル処理部
1003…共用単位救済処理部
1004…解候補合成処理部
1005…出力処理部
1012…ラインフェイル処理部
Claims (16)
- 半導体デバイスのメモリーブロックならびに予備ラインおよびリンボの不良ビットの位置を示す情報をもとに、予備ラインによりメモリーブロックの不良ビットを救済するために、現実のメモリーブロックならびに予備ラインおよびリンボからなる救済対象に対して仮想的な予備ラインにより、該メモリーブロックならびに予備ラインおよびリンボのビット不良を救済する第1の解を求め、この求められた第1の解に基づいて、現実の予備ラインによりメモリーブロックの不良ビットを救済する第2の解を求める半導体不良ビット救済処理方法であって、
前記第1の解のうち、前記仮想的な予備ラインにより救済された現実のメモリーブロックのラインを、現実の予備ラインで救済するラインとして決定するとともに、前記第1の解のうち、仮想的な予備ラインにより救済された現実の予備ライン以外の現実の予備ラインを、救済に使用可能な予備ラインとして決定し、この決定にもとづいて救済するメモリーブロックのラインとその救済に使用する予備ラインとの対応関係を決定することを特徴とする半導体不良ビット救済処理方法。 - 前記第1の解を求めるに際し、現実のメモリーブロックと現実の予備ラインとの間に保持される対応関係に対応するように現実のメモリーブロックならびに予備ラインおよびリンボからなる救済対象に対して仮想的な予備ラインを与え、現実のメモリーブロックを救済するにあたって現実の予備ラインに与えられている制約条件に対応する条件を仮想的な予備ラインに与えて、前記第1の解を求めることを特徴とする請求項1記載の半導体不良ビット救済処理方法。
- 前記第1の解を求めるに際し、現実のメモリーブロックと現実の予備ラインとの間に保持される対応関係に対応するように現実のメモリーブロックならびに予備ラインおよびリンボからなる救済対象に対して仮想的な予備ラインを与え、現実のメモリーブロックを救済するにあたって現実の予備ラインに与えられている制約条件のうち所定の条件を仮想的な予備ラインに与えて、前記第1の解の候補を求め、この求められた候補が前記制約条件の残りの条件を満たす場合に、この候補を求めるべき前記第1の解とすることを特徴とする請求項1記載の半導体不良ビット救済処理方法。
- 前記第1の解を求めるに際し、現実のメモリーブロックならびに予備ラインおよびリンボに含まれる全ての不良ビットについて行識別子と列識別子の2つの座標要素で特定される位置情報を表現する2部グラフを作成し、作成された2部グラフからDM分解およびその縮約グラフを算出し、算出されたDM分解およびその縮約グラフにもとづいて、仮想的な予備ラインとこれにより救済されるメモリーブロックにおける不良ビットを含むラインとの対応関係を求めることを特徴とする請求項1記載の半導体不良ビット救済処理方法。
- 前記第1の解を求めるに際し、現実のメモリーブロックならびに予備ラインおよびリンボに含まれる全ての不良ビットについて行識別子と列識別子の2つの座標要素で特定される位置情報を表現する2部グラフを作成し、作成された2部グラフからDM分解およびその縮約グラフを算出し、算出されたDM分解およびその縮約グラフにもとづいて前記第1の解を求める第1の処理を実行し、現実のメモリーブロックならびに予備ラインおよびリンボに含まれる全ての不良ビットの位置情報、予備ラインの使用方法に関する制約条件および予備ラインの本数制限、現実のメモリーブロックを救済する仮想の予備ラインの最小化を整数計画問題で表現し、その整数解として前記第1の解を求める第2の処理を、前記第1の処理の実行結果をバックアップするために、実行することを特徴とする請求項1記載の半導体不良ビット救済処理方法。
- 規定された時間だけ前記第1の処理を実行しても前記第1の解が得られなかった場合に、前記第2の処理を実行することを特徴とする請求項5記載の半導体不良ビット救済処理方法。
- 前記第1の解を求めるに際し、現実のメモリーブロックならびに予備ラインおよびリンボに含まれる全ての不良ビットの位置情報、予備ラインの使用方法に関する制約条件および予備ラインの本数制限、現実のメモリーブロックを救済する仮想の予備ラインの最小化を整数計画問題で表現し、その整数解として前記第1の解を求めることを特徴とする請求項1記載の半導体不良ビット救済処理方法。
- 前記整数計画問題を、整数条件を実数条件に緩和して線形計画問題として解き、整数解が得られた場合に、これを求めるべき前記第1の解とすることを特徴とする請求項5または7記載の半導体不良ビット救済処理方法。
- 前記第1の解を求める手順には、全ての不良ビットを救済できる解が存在しないことを検出する手順を含むことを特徴とする請求項1記載の半導体不良ビット救済処理方法。
- 前記第1の解を求めるに際し、仮想的な予備ラインの使用の態様を変えた複数の解を求め、求められた解のうち、使用すべき現実の予備ラインの数を最小とするものを求めるべき前記第1の解とすることを特徴とする請求項1記載の半導体不良ビット救済処理方法。
- 前記第1の解を求めるに際し、前処理としてラインフェイルを救済する解を求め、前処理において救済された不良ビットを除いた全不良ビットを、前処理において使用した仮想的な予備ラインを除いた残りの仮想的な予備ラインにより救済する解を求め、これら解を結合したものを求めるべき前記1の解とすることを特徴とする請求項1記載の半導体不良ビット救済処理方法。
- 救済対象となる半導体デバイスのメモリーブロックならびに予備ラインおよびリンボから構成される処理単位が、垂直方向の予備ラインは前記メモリーブロックの垂直方向の長さを持つ1本のラインとして垂直方向の所与のブロックに属す不良ラインに割当て可能であり且つ水平方向の予備ラインは前記メモリーブロックの水平方向の長さを持つ1本のラインとして水平方向の所与のブロックに属す不良ラインに割当て可能である、という条件を満たさない場合に、予備ラインによりメモリーブロックの不良ビットを救済する半導体不良ビット救済処理方法において、前記条件を満たすように前記処理単位を分割して形成した複数の部分処理単位夫々ごとに、予備ラインによりメモリーブロックの不良ビットを救済する解の候補を求め、前記部分処理単位夫々の解の候補を合成して前記処理単位の解を生成することを特徴とする半導体不良ビット救済処理方法。
- 前記部分処理単位夫々は少なくとも1つの他の部分処理単位との間で一部の予備ライン群を共用するものであり、前記部分処理単位夫々の解の候補を合成するに際しては、複数の部分処理単位間でのスペア群の共用形態を考慮して、前記処理単位の解を生成することを特徴とする請求項12に記載の半導体不良ビット救済処理方法。
- 前記部分処理単位の解の候補を合成するに際して、複数の前記部分処理単位間で共用されている予備ライン群については、当該予備ライン群を共用する部分処理単位の解の候補のうちの少なくとも1つにおいて当該予備ライン群のうちで使用不可とされたものの和集合を、当該予備ライン群における使用不可の予備ラインの集合として、当該予備ライン群に関する前記処理単位の解を求めることを特徴とする請求項13に記載の半導体不良ビット救済処理方法。
- 前記部分処理単位の解の候補を合成するに際して、使用不可の予備ライン以外の予備ラインを用いたメモリブロックの不良ビットの救済処理を、各部分処理単位について逐次的に行うとともに、当該部分処理単位の解の候補において使用不可となっている予備ラインおよびそれまでの救済処理において使用済みとなった予備ラインの和集合を当該部分処理単位における使用不可の予備ラインとして、前記処理単位の解を求めることを特徴とする請求項12または13に記載の半導体不良ビット救済処理方法。
- 救済対象となる半導体デバイスのメモリーブロックならびに予備ラインおよびリンボから構成される処理単位が、垂直方向の予備ラインは前記メモリーブロックの垂直方向の長さを持つ1本のラインとして垂直方向の所与のブロックに属す不良ラインに割当て可能であり且つ水平方向の予備ラインは前記メモリーブロックの水平方向の長さを持つ1本のラインとして水平方向の所与のブロックに属す不良ラインに割当て可能であるという条件を満たさない場合に、予備ラインによりメモリーブロックの不良ビットを救済する半導体不良ビット救済処理装置において、前記条件を満たすように前記処理単位を分割して形成した複数の部分処理単位夫々ごとに、予備ラインによりメモリーブロックの不良ビットを救済する解の候補を求める手段と、前記部分処理単位夫々の解の候補を合成して前記処理単位の解を生成する手段とを備えたことを特徴とする半導体不良ビット救済処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP12213898A JP3581249B2 (ja) | 1997-06-10 | 1998-05-01 | 半導体不良ビット救済処理方法及び半導体不良ビット救済処理装置 |
US09/093,729 US6067259A (en) | 1997-06-10 | 1998-06-09 | Method and device for repairing arrays with redundancy |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9-152593 | 1997-06-10 | ||
JP15259397 | 1997-06-10 | ||
JP9-349350 | 1997-12-18 | ||
JP34935097 | 1997-12-18 | ||
JP12213898A JP3581249B2 (ja) | 1997-06-10 | 1998-05-01 | 半導体不良ビット救済処理方法及び半導体不良ビット救済処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11238396A JPH11238396A (ja) | 1999-08-31 |
JP3581249B2 true JP3581249B2 (ja) | 2004-10-27 |
Family
ID=27314399
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP12213898A Expired - Fee Related JP3581249B2 (ja) | 1997-06-10 | 1998-05-01 | 半導体不良ビット救済処理方法及び半導体不良ビット救済処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6067259A (ja) |
JP (1) | JP3581249B2 (ja) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6397349B2 (en) * | 1998-10-13 | 2002-05-28 | Agere Systems Guardian Corp. | Built-in self-test and self-repair methods and devices for computer memories comprising a reconfiguration memory device |
US6317846B1 (en) * | 1998-10-13 | 2001-11-13 | Agere Systems Guardian Corp. | System and method for detecting faults in computer memories using a look up table |
JP2001035189A (ja) * | 1999-07-16 | 2001-02-09 | Advantest Corp | メモリの不良救済解析方法及びこの解析方法を適用した不良救済解析器を搭載したメモリ試験装置 |
US7062425B1 (en) * | 1999-09-30 | 2006-06-13 | Cypress Semiconductor Corp. | Method and apparatus for automated enumeration, simulation, identification and/or irradiation of device attributes |
US6816986B1 (en) * | 1999-12-28 | 2004-11-09 | Intel Corporation | Remapping memory devices during operation |
US6772102B1 (en) * | 2000-09-13 | 2004-08-03 | Illinois Institute Of Technology | Optimal placement of wavelength converters in trees and trees of rings |
US6675274B1 (en) * | 2001-03-15 | 2004-01-06 | Emc Corporation | Method and apparatus for determining volume swaps |
JP4678994B2 (ja) * | 2001-06-20 | 2011-04-27 | 株式会社アドバンテスト | メモリの不良救済解析方法・メモリ試験装置 |
DE10155449A1 (de) * | 2001-11-12 | 2003-05-28 | Infineon Technologies Ag | Verfahren zur Rekonfiguration eines Speichers |
WO2004074851A2 (en) * | 2003-02-14 | 2004-09-02 | Logicvision Inc. | Memory repair analysis method and circuit |
JP4382526B2 (ja) * | 2003-07-01 | 2009-12-16 | 株式会社山武 | 文章分類装置および方法 |
US6944075B1 (en) | 2005-01-05 | 2005-09-13 | International Business Machines Corporation | Variable column redundancy region boundaries in SRAM |
DE102005015002A1 (de) * | 2005-04-01 | 2006-10-05 | Infineon Technologies Ag | Verfahren zum automatischen Bereitstellen von Reparaturpositionsdaten von Fuse-Elementen in einer integrierten Speicherschaltung |
JP2007004233A (ja) * | 2005-06-21 | 2007-01-11 | Yamatake Corp | 文章分類装置、文章分類方法、およびプログラム |
JP2007287272A (ja) * | 2006-04-19 | 2007-11-01 | Hitachi Ltd | 冗長線所要量算出システムおよびそれを用いた不良解析方法 |
US20110173132A1 (en) * | 2010-01-11 | 2011-07-14 | International Business Machines Corporation | Method and System For Spawning Smaller Views From a Larger View |
US8429371B2 (en) * | 2010-03-23 | 2013-04-23 | Avaya Inc. | System and method for robust and efficient free chain management |
JP5664204B2 (ja) * | 2010-12-15 | 2015-02-04 | 富士通株式会社 | 半導体メモリ |
US8612169B2 (en) | 2011-04-26 | 2013-12-17 | International Business Machines Corporation | Method and system for detecting anomalies in a bipartite graph |
KR101521258B1 (ko) * | 2013-09-10 | 2015-05-21 | 연세대학교 산학협력단 | 메모리 수리 방법 및 메모리 수리 장치 |
KR102650154B1 (ko) * | 2016-12-08 | 2024-03-22 | 삼성전자주식회사 | 가상 페일 생성기를 포함하는 메모리 장치 및 그것의 메모리 셀 리페어 방법 |
CN110797071B (zh) * | 2019-10-31 | 2021-10-22 | 西安紫光国芯半导体有限公司 | 一种多子块nand闪存缺陷的修复方法 |
CN114078561B (zh) * | 2020-08-18 | 2023-09-12 | 长鑫存储技术有限公司 | 失效位元修补方案的确定方法及装置 |
US11791010B2 (en) | 2020-08-18 | 2023-10-17 | Changxin Memory Technologies, Inc. | Method and device for fail bit repairing |
US11797371B2 (en) | 2020-08-18 | 2023-10-24 | Changxin Memory Technologies, Inc. | Method and device for determining fail bit repair scheme |
US11791012B2 (en) | 2021-03-31 | 2023-10-17 | Changxin Memory Technologies, Inc. | Standby circuit dispatch method, apparatus, device and medium |
US11881278B2 (en) | 2021-03-31 | 2024-01-23 | Changxin Memory Technologies, Inc. | Redundant circuit assigning method and device, apparatus and medium |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2590897B2 (ja) * | 1987-07-20 | 1997-03-12 | 日本電気株式会社 | 半導体メモリ |
US6026505A (en) * | 1991-10-16 | 2000-02-15 | International Business Machines Corporation | Method and apparatus for real time two dimensional redundancy allocation |
-
1998
- 1998-05-01 JP JP12213898A patent/JP3581249B2/ja not_active Expired - Fee Related
- 1998-06-09 US US09/093,729 patent/US6067259A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH11238396A (ja) | 1999-08-31 |
US6067259A (en) | 2000-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3581249B2 (ja) | 半導体不良ビット救済処理方法及び半導体不良ビット救済処理装置 | |
US6366995B1 (en) | System and a method for defining transforms of memory device addresses | |
CN110797071B (zh) | 一种多子块nand闪存缺陷的修复方法 | |
EP1170666A2 (en) | On-line fault tolerant operation via incremental reconfiguration of field programmable gate arrays | |
JPH11144491A (ja) | リペア可能な半導体メモリアレーおよびリペア可能な半導体メモリアレーの製造方法 | |
JP2991138B2 (ja) | メモリlsiの不良解析方法 | |
US8027972B2 (en) | Nodal data normalization | |
CN107590031B (zh) | 存储器管理系统及其方法 | |
US11200962B2 (en) | Memory devices having spare column remap storages and methods of remapping column addresses in the memory devices | |
WO2004074851A2 (en) | Memory repair analysis method and circuit | |
US6904584B2 (en) | Method and system for placing logic nodes based on an estimated wiring congestion | |
CN100403443C (zh) | 分析和修复存储器的方法 | |
US7076700B2 (en) | Method for reconfiguring a memory | |
Sodhi et al. | Tool addition strategies for flexible manufacturing systems | |
WO2022037199A1 (zh) | 失效位元的修补方法及装置 | |
Park et al. | Repair of memory arrays by cutting | |
JP3601913B2 (ja) | メモリ解析装置及びメモリ解析方法 | |
JPS60209999A (ja) | Icメモリの救済方式 | |
Veeramani et al. | A polynomial-time algorithm for optimal clustering in a special class of {0, l}-matrices | |
WO2022037201A1 (zh) | 失效位元的修补方法及装置 | |
CN114078561B (zh) | 失效位元修补方案的确定方法及装置 | |
JP4232354B2 (ja) | リダンダンシ演算装置、リダンダンシ演算方法、リダンダンシ演算プログラム、リダンダンシ演算プログラムを記録した記録媒体 | |
CN118351926B (zh) | 一种存储芯片的故障测试设备及方法 | |
Rab et al. | Using asymmetric layer repair capability to reduce the cost of yield enhancement in 3D stacked memories | |
Banerjee et al. | On Managing Test-Time, Power, and Layer Assignment in 3D SoCs with Built-In-Self-Repair Modules |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20031224 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040113 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040227 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040720 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040722 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080730 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090730 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090730 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100730 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |