"マスクレイアウトにおける複数のエッジセグメントについて、摂動量を該複数のエッジセグメントに適用したことによるレジスト像の値の偏差を決定することと、前記複数のエッジセグメントのすべてについてのレジスト像の値の偏差を含むマルチソルバー行列を生成することと、前記マルチソルバー行列を使用して、前記マスクレイアウトの前記複数のエッジセグメントの各々についての補正デルタ値を同時に決定することと、を実行するための命令を含むことを特徴とするコンピュータプログラム。前記マルチソルバー行列の擬似逆行列Aは、A1ATで定義され、ATはマルチソルバー行列の転置行列であり、Iは単位行列であり、αは単位行列に適用される調整可能な正の倍数因子であることを特徴とする請求項1に記載のコンピュータプログラム。初期マルチソルバー行列A0はi番目の対角成分が、A0iiΔRIiΔc0iで定められる対角行列であり、Δc0iはi番目のエッジセグメントの摂動量であり、ΔRIiはi番目のエッジセグメントのレジスト像の値に摂動の結果生じる変動であることを特徴とする請求項2に記載のコンピュータプログラム。マルチソルバー行列Aは、と表現され、A0は対角行列である初期マルチソルバー行列であり、P及びQはn×p行列であり、nはエッジセグメントの数であり、pはP及びQの列の数であることを特徴とする請求項1に記載のコンピュータプログラム。初期マルチソルバー行列A0はi番目の対角成分が、A0iiΔRIiΔc0iで定められる対角行列であり、Δc0iはi番目のエッジセグメントの摂動量であり、ΔRIiはi番目のエッジセグメントのレジスト像の値に摂動の結果生じる変動であることを特徴とする請求項4に記載のコンピュータプログラム。前記レジスト像の値の偏差を決定することは、第1のレジスト像シミュレーション結果を得るべくマスクレイアウトを使用してフォトリソグラフィプロセスのシミュレーションを行うことと、初期摂動レイアウトを得るべく前記マスクレイアウトの前記複数のエッジセグメントの各々を所定量だけ摂動させることと、第2のレジスト像シミュレーション結果を得るべく初期摂動レイアウトを使用して前記フォトリソグラフィプロセスのシミュレーションを行うことと、前記複数のエッジセグメントの各々について第1のレジスト像シミュレーション結果と第2のレジスト像シミュレーション結果との間のレジスト像の値の偏差を決定することと、を含むことを特徴とする請求項1に記載のコンピュータプログラム。前記補正デルタ値を同時に決定することは、前記マルチソルバー行列の擬似逆行列を使用して、前記補正デルタ値を含む補正デルタベクトルを決定することを含むことを特徴とする請求項1に記載のコンピュータプログラム。摂動されたレイアウトにおける前記複数のエッジセグメントの各々を前記補正デルタベクトルの対応する補正デルタ値だけ摂動させて、更なる摂動レイアウトを生成することと、第3のレジスト像シミュレーション結果を得るべく前記更なる摂動レイアウトを使用して前記フォトリソグラフィプロセスのシミュレーションを行うことと、前記複数のエッジセグメントの各々についての第3のレジスト像シミュレーション結果に基づいて前記マルチソルバー行列を更新することと、更新されたマルチソルバー行列の擬似逆行列を使用して前記補正デルタベクトルを更新することと、をさらに含むことを特徴とする請求項7に記載のコンピュータプログラム。エッジセグメントを含むマスクレイアウトのためのマスクイメージデータを生成するシステムであって、マスクレイアウトにおける複数のエッジセグメントについて、摂動量を該複数のエッジセグメントに適用したことによるレジスト像の値の偏差を決定することと、前記複数のエッジセグメントのすべてについてのレジスト像の値の偏差を含むマルチソルバー行列を生成することと、前記マルチソルバー行列を使用して、前記マスクレイアウトの前記複数のエッジセグメントの各々についての補正デルタ値を同時に決定することと、によりエッジセグメントの配置を決定するためのコンピュータを備えることを特徴とするシステム。前記マルチソルバー行列の擬似逆行列Aは、A1ATで定義され、ATはマルチソルバー行列の転置行列であり、Iは単位行列であり、αは単位行列に適用される調整可能な正の倍数因子であることを特徴とする請求項9に記載のシステム。初期マルチソルバー行列A0はi番目の対角成分が、A0iiΔRIiΔc0iで定められる対角行列であり、Δc0iはi番目のエッジセグメントの摂動量であり、ΔRIiはi番目のエッジセグメントのレジスト像の値に摂動の結果生じる変動であることを特徴とする請求項10に記載のシステム。マルチソルバー行列Aは、と表現され、A0は対角行列である初期マルチソルバー行列であり、P及びQはn×p行列であり、nはエッジセグメントの数であり、pはP及びQの列の数であることを特徴とする請求項9に記載のシステム。初期マルチソルバー行列A0はi番目の対角成分が、A0iiΔRIiΔc0iで定められる対角行列であり、Δc0iはi番目のエッジセグメントの摂動量であり、ΔRIiはi番目のエッジセグメントのレジスト像の値に摂動の結果生じる変動であることを特徴とする請求項12に記載のシステム。前記レジスト像の値の偏差を決定することは、第1のレジスト像シミュレーション結果を得るべくマスクレイアウトを使用してフォトリソグラフィプロセスのシミュレーションを行うことと、初期摂動レイアウトを得るべく前記マスクレイアウトの前記複数のエッジセグメントの各々を所定量だけ摂動させることと、第2のレジスト像シミュレーション結果を得るべく初期摂動レイアウトを使用して前記フォトリソグラフィプロセスのシミュレーションを行うことと、前記複数のエッジセグメントの各々について第1のレジスト像シミュレーション結果と第2のレジスト像シミュレーション結果との間のレジスト像の値の偏差を決定することと、を含むことを特徴とする請求項9に記載のシステム。前記補正デルタ値を同時に決定することは、前記マルチソルバー行列の擬似逆行列を使用して、前記補正デルタ値を含む補正デルタベクトルを決定することを含むことを特徴とする請求項9に記載のシステム。摂動されたレイアウトにおける前記複数のエッジセグメントの各々を前記補正デルタベクトルの対応する補正デルタ値だけ摂動させて、更なる摂動レイアウトを生成することと、第3のレジスト像シミュレーション結果を得るべく前記更なる摂動レイアウトを使用して前記フォトリソグラフィプロセスのシミュレーションを行うことと、前記複数のエッジセグメントの各々についての第3のレジスト像シミュレーション結果に基づいて前記マルチソルバー行列を更新することと、更新されたマルチソルバー行列の擬似逆行列を使用して前記補正デルタベクトルを更新することと、をさらに含むことを特徴とする請求項15に記載のシステム。マスクを製造する方法であって、マスクレイアウトにおける複数のエッジセグメントについて、摂動量を該複数のエッジセグメントに適用したことによるレジスト像の値の偏差を決定することと、前記複数のエッジセグメントのすべてについてのレジスト像の値の偏差を含むマルチソルバー行列を生成することと、前記マルチソルバー行列を使用して、前記マスクレイアウトの前記複数のエッジセグメントの各々についての補正デルタ値を同時に決定することと、により配置が決定されたエッジセグメントを含むマスクレイアウトを生成することと、生成されたマスクレイアウトデータを使用してマスクを製造することと、を含むことを特徴とする方法。図2の方法においては、マスクレイアウトの各エッジセグメントに対して補正量が個別的に決定される。レイアウトにおいて他のエッジセグメントが移動することの影響は考慮に入れられていない。フィーチャサイズが小さくなると、個々のエッジセグメントの補正量を解くときに収束の問題が生じることが経験されている。そこで、レイアウトの他のエッジセグメントの移動を考慮に入れて各エッジセグメントの補正量を決定する技術が求められている。本発明の方法は、どのようにしてマスクレイアウトにおける複数のエッジセグメントの集団的な移動が該レイアウトの複数の制御点でのレジスト像の値を変更するのかを追跡するとともに、該レイアウトにおける各エッジセグメントに対する補正量を決定する。マスクレイアウトの各エッジセグメントの移動の集合的な影響を示すマルチソルバー行列が使用され、マスクレイアウトの各エッジセグメントの補正量が同時に決定される。一実施形態においては、本発明の方法は、第1のレジスト像シミュレーション結果を得るべくマスクレイアウトを使用してフォトリソグラフィプロセスのシミュレーションを行い、初期摂動レイアウトを得るべく前記マスクレイアウトのエッジセグメントの各々を所定量だけ摂動させ、第2のレジスト像シミュレーション結果を得るべく初期摂動レイアウトを使用して前記フォトリソグラフィプロセスのシミュレーションを行い、各エッジセグメントについて第1のレジスト像シミュレーション結果と第2のレジスト像シミュレーション結果との偏差を決定し、すべてのエッジセグメントについての偏差を含むマルチソルバー行列を生成し、マルチソルバー行列の擬似逆行列を使用して、各エッジセグメントの補正デルタ値を含む補正デルタベクトルを決定し、更なる摂動レイアウトを生成すべく、初期摂動レイアウトの各エッジセグメントを補正デルタベクトルの対応する補正デルタ値だけ摂動させ、第3のレジスト像シミュレーション結果を得るべく前記更なる摂動レイアウトを使用して前記フォトリソグラフィプロセスのシミュレーションを行い、各エッジセグメントについての第3のレジスト像シミュレーション結果に基づいてマルチソルバー行列を更新し、更新されたマルチソルバー行列の擬似逆行列を使用して補正デルタベクトルを更新することを含む。一実施形態においては、本発明の方法は、補正デルタベクトルに従ったマスクレイアウトのエッジセグメント位置調整の前に補正デルタベクトルのそれぞれの値に減衰係数を掛けることを含む。本発明の方法は、どのようにしてマスクレイアウトにおける複数のエッジセグメントの集合的な移動が該レイアウトの複数の制御点でのレジスト像の値を変更するのかを追跡するとともに、該レイアウトにおける各エッジセグメントに対する補正量を決定する。図5は、エッジセグメント及び制御点を含むコンタクトフィーチャ510及び512を示す図である。コンタクトフィーチャ510は、位置が調整されうる4つのエッジセグメントを有し、各エッジセグメントは1つの制御点を有する。例えばエッジセグメント522は制御点524を有する。コンタクトフィーチャ510及び512は比較的小さいフィーチャであるので、1つのエッジセグメント例えばエッジセグメント522の移動がそのエッジセグメントの制御点例えば制御点524でのレジスト像の値に影響するとともに、このコンタクトフィーチャの他の3つのエッジセグメントの制御点でのレジスト像の値にも影響する。また、このレイアウトにおいて近接して配置されている複数のコンタクトフィーチャに関しても、1つのコンタクトフィーチャのエッジセグメントの移動が隣接するコンタクトフィーチャのエッジセグメントの制御点でのレジスト像の値に影響する。制御点でのレジスト像の値に対する隣接エッジセグメントの移動による同様の影響は、非コンタクトレイヤのマスクレイアウトにおいても観察されうる。図6は、本発明の一実施形態に係り、マスクレイアウトの複数エッジセグメントの補正量を同時に解く方法を示すフローチャートである。マスクレイアウトが大きい場合には、まずレイアウトを複数のパッチに分割してもよい。パッチは通常20μm×20μm乃至60μm×60μmの大きさである。マスクレイアウトはOPCを適用する前に分割され、OPCを各パッチに適用してから最終のOPC処理後レイアウトを生成すべく結合される。ステップ610では、設計レイアウトOPC処理前レイアウトを使用してレジスト像RIのシミュレーションが行われる。レジスト像のシミュレーションは、例えば米国特許第7,003,758号に記載されているフォトリソグラフィシミュレーションシステムを使用して行われてもよい。この米国特許の明細書全体を本明細書に引用する。ステップ612では、n個の移動可能エッジセグメントが存在するとして、設計レイアウトのエッジセグメントを予め設定された距離だけ摂動させるすなわち移動させる。これは、n×1ベクトルで特定される。これにより、摂動レイアウトが生成される。ステップ614では、摂動レイアウトを使用してレジスト像のシミュレーションが行われる。ステップ616では、設計レイアウトを使用してシミュレーションにより得られたRI値と摂動レイアウトを使用してシミュレーションにより得られたRI値との偏差を各エッジセグメントについて決定する。この偏差は初期マルチソルバー行列A0を生成するのに使用される。初期マルチソルバー行列はn×n行列であり、nはレイアウト中のエッジセグメントの数であり、マスクによっては100万を超える。初期マルチソルバー行列は対角行列であり、i番目ここでi=1、、Nの対角成分はi番目のセグメントのシミュレーションによるRI値の偏差ΔRIiをi番目のセグメントの摂動量Δco,iで除した値である。A0のi番目の対角成分は数学的には、で与えられる。言い換えれば、当初はエッジセグメントは相互作用しないと仮定していることになる。つまり、各エッジセグメントのRI値の変動はそのエッジセグメントにのみ帰属する。対角行列であるから、A0の非対角成分はすべてゼロである。すなわち、である。ステップ618では、レイアウト中のエッジセグメントに対する補正デルタベクトルがマルチソルバー行列の擬似逆行列を使用して決定される。補正デルタベクトルは、各エッジセグメントの補正デルタ値を含む。補正デルタベクトルの補正デルタ値は、目標RI値とステップ616あるいは後にはステップ622で決定されるシミュレーションによる最新RI値との偏差をまず計算して、その偏差にマルチソルバー行列の擬似逆行列を掛けることにより決定される。すなわち、である。ここで、はn×nマルチソルバー行列の擬似逆行列であり、は目標RI値を示すn×1ベクトルであり、は、ベクトルで特定される位置の値だけエッジセグメントを移動したときのシミュレーションによる最新RI値を示すn×1ベクトルである。kはステップ618の反復回数を示す添字である。マルチソルバー行列の擬似逆行列が使用されるのは、マルチソルバー行列が特異であるか特異に近くなることがあるからである。あるいは、RI値が取得される制御点が調整可能なエッジセグメントと同数ではなく通常の逆行列が計算され得ないように問題が一般化される場合には、マルチソルバー行列は正方行列ではないからである。マルチソルバー行列の擬似逆行列は、と定義される。ここで、はマルチソルバー行列の転置であり、Iはn×n単位行列であり、αは単位行列に適用される調整可能な正の倍数因子である。αの値は好ましくはデフォルト値に設定されるが図6の方法の全体特性を最適化するよう調整されてもよい。図6の方法で得られたマルチソルバー行列は100万×100万にも大きくなり得るので、マルチソルバー行列Aは3つの成分で表現されることが好ましい。すなわち、である。ここで、A0は対角行列である初期マルチソルバー行列であり、P及びQはn×p行列であり、nはエッジセグメントの数であり、pはP及びQの列の数である。p<<nである。初期値においてはp=0であり、行列P及びQは初期値では空行列である。P及びQの列には、ステップ624で後述するように、マルチソルバー行列への更新値が集められる。更新値の数は反復回数とともに増加するので、行列P及びQに蓄積される更新値の最大数を制限してもよい。例えば、pの最大値がpmaxに制限されてもよく、pmax個の最新の更新値が蓄積される。マルチソルバー行列をこれら3つの成分で表現することにより、マルチソルバー行列を効率的に記憶して、後述のように補正デルタベクトルを効率的に計算することができる。例えばn=1,000,000でありp=10であるとすると、n×nマルチソルバー行列Aを浮動小数点表示を使用してそのまま記憶するにはn×n×4=4兆バイトを消費してしまう。ところが、初期マルチソルバー行列A0の対角成分と行列P及びQを記憶するには、nn×p×2×4=8400万バイトを消費するだけでよい。中間行列を生成すれば、補正デルタベクトルは次のように計算される。ここで、は対角行列であり、はn×2p行列であり、行列であり、は2p×2p行列である。マルチソルバー行列をまず3つの成分で表現し中間行列を生成することにより、補正デルタベクトルの計算が効率的に行われる。具体的には、上述の等式のの逆行列が迅速に計算されうる。は2p×2p行列であり、pは通常10に等しい。例えばn=400,000でありp=10であるとすると、補正デルタベクトルは上述の等式を使用して、400,000×400,000行列の逆行列を計算する代わりに20×20行列の逆行列を計算することにより決定される。マルチソルバー行列が400,000×400,000行列である場合に上述の等式を使用して補正デルタベクトルを計算すれば、およそ1秒間で得られる。これに対して、400,000×400,000行列の逆行列を単に力業で計算した場合には2年以上かかるであろう。更に計算速度を高めるには、Dの逆行列を、と分析的に計算してもよい。一実施形態においては、反復処理のたびにを最小化する補正デルタベクトルが計算される。エッジセグメントに異なる特性または重み係数を割り当てることも可能である。非負の重み係数を対角成分に有する対角行列Wを導入した場合には、が最小化される。一実施形態においては、数量A及びが補正デルタベクトルを計算する際に、に置き換えられる。他の実施形態においては、最適化行列表示を使用して補正デルタベクトルを計算する際に、数量A0、P、及びが、に置き換えられる。初期状態では行列Wは単位行列に等しい。i番目のセグメントに対応するi番目のWの対角成分に大きな重み係数>>1が割り当てられた場合には、反復処理のたびに、i番目のセグメントのEPEが残りのセグメントのEPEよりも好ましいことに低減される。i番目のセグメントのEPEは重み係数によって増幅されるからである。ステップ620においては、補正デルタベクトルに減衰係数が適用されて、減衰された補正デルタベクトルの値でレイアウト中のエッジセグメントが移動される。すなわち、エッジセグメントの次の位置は、である。減衰係数はゼロと1との間の値であり、エッジセグメントの次の位置が大きく変化しすぎないように補正デルタベクトルに適用される。次いでステップ622では、レイアウトの最新版を使用してレジスト像のシミュレーションが行われる。ステップ624では、マルチソルバー行列が、エッジセグメントの位置変化によって生じたRI値の変化に基づいて更新される。マルチソルバー行列の更新が必要であるのは、マルチソルバー行列が、補正値のRI値に対する変化に線形に関連していてエッジセグメントが移動するときに変化するからである。ベクトルがと定義され、ベクトルがと定義される場合には、マルチソルバー行列Aを更新するには、であれば、が行列Pに新たな列として加えられ、が行列Qの新たな列として加えられる。この更新の結果、対角行列であった初期マルチソルバー行列Aはもはやそうではなくなる。マルチソルバー行列のi行j列の値は、j番目のエッジセグメントの位置変化によって生じるi番目のエッジセグメントのRI値の線形変化と解釈される。Aをと表現せずに直接用いる場合には、更新されたマルチソルバー行列は、であれば、で得られる。ステップ626では、レイアウト中のエッジセグメント位置調整が終了したか否かが決定される。一実施形態においては、ステップ618からステップ624の反復処理が予め定められた回数なされたときに調整が終了される。定められた反復回数が完了していないときには、この方法はステップ618に戻る。他の実施形態においては、性能指数が満足されるときに調整が終了される。性能指数は、レイアウト全体のエッジ位置誤差の2乗和が最小化されるかまたは予め設定された閾値未満となったときに満足されたものとしてもよい。性能指数が満足されない場合には、この方法はステップ618に戻る。調整が終了した場合には、ステップ628においてレイアウトの最新版がOPC処理後レイアウトとして使用される。OPC処理後レイアウトは通常、マスクの製造に使用される。図6の方法はソフトウエアで実行されてもよいし、ハードウエアで実行されてもよい。ソフトウエアで実行される図6の方法の実施形態は、いかなるコンピュータシステムで実行されてもよい。図6の方法は、いかなるマスクのいかなるマスクレイヤにも適用可能である。例えばコンタクトレイヤでもポリレイヤでもよい。また、いかなる形式のマスクにも適用可能である。例えばブライトフィールドマスクでもダークフィールドマスクであってもよい。図6の方法は、双極照明フォトリソグラフィに使用されるマスクのマスクレイアウトにも適用可能である。補正デルタベクトルは、双極照明に使用される2つのマスクレイアウトのそれぞれに対して、低コントラストの空間像をゼロに等しくして双方のマスクからのレジスト像の値をゼロに等しくするように決定されてもよい。図7は、反復回数に対するレジスト像の値のプロット図である。この図は、コンタクトフィーチャの典型的なエッジセグメントに関するものであり、従来技術の単一変数の解法によって決定されたものと、図6に示される方法で決定されたものとが示されている。図示されるように、図6の多変数解法を使用して決定された補正量から得られるRI値は、従来の単一変数解法反復回数29回よりも迅速に反復回数11回で目標RI値ゼロに収束している。図8は、従来の単一変数解法を使用して6回のOPC処理を反復して得られたOPC補正を適用したときのエッジ位置誤差のヒストグラムである。図8に示される分布は1.0nmから4.2nmの範囲に広がっており、この分布の二乗平均平方根RMSは0.61nmである。図9は、図6の方法を使用して6回のOPC処理を反復して得られたOPC補正を適用したときのエッジ位置誤差のヒストグラムである。図9に示される分布は1.0nmから1.7nmの範囲に広がっており、この分布のRMSは0.11nmである。よって、図6の多変数解法を使用してエッジセグメントの補正量を決定すれば、エッジ位置誤差の欠陥が小さくなるとともにエッジ位置誤差分布も狭くなる。本明細書では特定の実施形態を参照して本発明を説明したが、添付の請求項に説明される本発明のより広い精神と範囲から逸脱することなくさまざまな修正や変更を加えてもよいことは明らかであろう。よって、本明細書及び図面は一例を示すにすぎず制限的に解釈されるべきではない。"