(57)【要約】【課題】描画データの分散処理における計算ノードのリソースを有効活用し、トータルスループットの向上を図ることが可能な描画データ分散処理方法およびマスク描画装置を提供することを課題とする。【解決手段】分散処理を割り当てられた計算ノードが、１つのチップデータの分散処理を実行し、この分散処理されたチップデータを転送用の計算ノードでマスク描画装置に転送すると、この転送処理が終了する前に、リソースの空きがある計算ノードに後続のチップデータの分散処理を割り当てて、前記１つのチップデータの転送処理と前記後続のチップデータの分散処理とを並行処理し、以後、順次この並行処理を実行する描画データ分散処理方法およびマスク描画装置を提供する。 【選択図】図２
2009271830.tif 000002
【特許請求の範囲】
【請求項１】
描画データを複数のチップデータに分割し、この分割された各チップデータを高速伝送路で接続された複数の計算ノードによって分散処理し、順次マスク描画装置に転送する描画データ分散処理方法であって、
所定の計算ノードが、他の計算ノードのリソースの空き状況の監視と他の計算ノードに前記チップデータの分散処理の割り当てとを行うために起動する処理工程と、前記分散処理を割り当てられた計算ノードが、１つのチップデータの分散処理を実行する処理工程と、この処理されたチップデータを転送用の計算ノードで前記マスク描画装置に転送する処理工程と、この転送処理が終了する前に、前記所定の計算ノードが、リソースの空きがある計算ノードに後続のチップデータの分散処理を割り当てて、前記１つのチップデータの転送処理と前記後続のチップデータの分散処理とを並行処理する処理工程とを有し、以後、順次この並行処理が実行されることを特徴とする描画データ分散処理方法。
【請求項２】
前記各チップデータは、２以上のストライプデータを含み、前記後続のチップデータの分散処理は、前記１つのチップデータの最終のストライプデータの転送処理が開始されるときに実行されることを特徴とする請求項１記載の描画データ分散処理方法。
【請求項３】
前記所定の計算ノードは、複数のチップデータから構成されるレイアウトデータのジョブを投入することにより起動し、前記並行処理は、この投入されたジョブに含まれるすべてのチップデータの分散処理が終了するまで順次繰り返されることを特徴とする請求項１または請求項２記載の描画データ分散処理方法。
【請求項４】
前記所定の計算ノードは、前記各ストライプデータを２以上の分散処理ブロックデータに分割し、この分散処理ブロックデータ単位に他の計算ノードを割り当てて分散処理を順次実行させ、最終のストライプデータにおける最終の分散処理ブロックデータの実行情報とリソースの空き情報とを取得すると、前記最終の分散処理ブロックデータの転送処理と同時に、リソースが空いている計算ノードに後続のチップデータの分散処理を実行させることを特徴とする請求項３記載の描画データ分散処理方法。
【請求項５】
描画データを２以上のストライプデータから構成される複数のチップデータに分割し、さらに、各ストライプデータを分散処理ブロックデータに分割し、この分割された分散処理ブロックデータを分散処理するために、高速伝送路で相互に接続された複数の計算ノードを備えたマスク描画装置であって、
前記複数の計算ノードは、他の計算ノードのリソースの空き状況の監視と他の計算ノードに前記分散処理ブロックデータの割り当てを行う管理ノードと、管理ノードによって割り当てられた前記分散処理ブロックデータの分散処理を実行する分散処理ノードと、前記分散処理されたブロックデータを前記ストライプデータ単位にまとめてチップデータごとにマスク描画装置に転送する転送ノードとから構成されたPCクラスタを形成し、
前記管理ノードは、１つのチップデータの分散処理が実行されている間に、他の分散処理ユニットのリソースの空き状況を監視し、前記分散処理が実行されているチップデータの最終分散処理ブロックデータの分散処理が実行され、前記転送ノードで転送処理が実行されると、後続のチップデータの分散処理を開始するものであることを特徴とするマスク描画装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、描画データ分散処理方法及びマスク描画装置に関し、特に、描画データを複数のチップデータに分割し、分割されたチップデータを分散処理する方法及び装置に関する。
【背景技術】
【０００２】
半導体デバイスの微細化、高集積化に伴い、マスク描画装置で処理するデータ量が膨大となり、マスク描画装置のオフライン処理となるデータ処理の所要時間が増大し、マスク描画処理全体のスループットの低下、ひいては、生産性の低下を招くという問題が生じていた。
【０００３】
従来、このような問題に対して、設計データから描画データへの変換をオフライン処理となる外部装置で行なわず、マスク描画装置内で行なうようにし、第１番目のデータ処理と転送処理とをパイプライン処理（パイプライン構成）し、転送時間中に順次設計データから描画データへの変換処理を進めることができるマスク描画装置、及びマスク描画方法が提案されていた。
【０００４】
この構成によれば、転送時間中に順次描画データのその後のデータ処理を進めることにより、転送時間と変換時間とデータ処理時間とを重ねることができるため、上記スループットの大幅な短縮を図ることができる。
（例えば、特許文献１参照）。
【特許文献１】特開２００８−３４４３９（請求項１の記載）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、近年、上記膨大な描画データを効率よく、低コストで処理するために、描画データを複数のチップデータに分割し、各チップデータを複数の計算ノードで処理する分散処理方法が採用されている。上記複数の計算ノードは、相互に高速伝送路で接続され、全体として仮想的に１つの並列計算機としての機能を果たすPCクラスタを形成している。
【０００６】
上記PCクラスタは、通常、上記チップデータの分散処理を実行するために、他の計算ノードへの割り当てを管理する管理ノードと、この管理ノードによって割り当てられたデータの処理を実際に行う分散処理ノードと、分散処理されたデータをマスク描画装置に転送する転送ノードから構成される。
【０００７】
このPCクラスタを利用した分散処理では、管理ノードによって分散処理の割り当てがなされた分散処理ノードでチップデータのデータ処理が実行され、このデータ処理が終了すると、順次、転送ノードからマスク描画装置に転送されていた。
【０００８】
図６は、上記分散処理による従来のチップデータ処理のタイムチャートを示したものである。管理ノードによって割り当てられた分散処理ノードで分散処理を実行し、チップデータ単位でシーケンシャルにマスク描画装置に転送する。すなわち、チップデータC１１、チップデータC１２、チップデータC１３…チップデータC１ｆの順序でシーケンシャルに処理する場合、チップデータC１１の分散処理終了後、転送ノードで転送している間は、分散処理ノードは稼働しておらず、リソースが空き状態になっている。同様に、チップデータC１２の分散処理終了後、転送ノードで転送している間は、分散処理ノードは稼働せず、以後、チップデータC１３からチップデータC１ｆまで、マスク描画装置に転送ノードで転送している間は、転送ノードのみが動作し、分散処理ノードは稼働しないという状態が繰り返されていた。
【０００９】
したがって、描画データの分散処理にかかる所要時間ｔ’は、上記分散処理ノードのリソースが空き状態で稼働していない時間も加算されるため、トータルスループットが低下するという不具合が生じていた。
【００１０】
そこで、本発明は、前記問題点に鑑み、描画データの分散処理における計算ノードのリソースを有効活用し、トータルスループットの向上を図ることが可能な描画データ分散処理方法およびこの方法を実施することが可能なマスク描画装置を提供することを課題とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するため、本発明にかかる描画データ分散処理方法は、描画データを複数のチップデータに分割し、この分割された各チップデータを高速伝送路で接続された複数の計算ノードによって分散処理し、順次マスク描画装置に転送する描画データ分散処理方法であって、所定の計算ノードが、他の計算ノードのリソースの空き状況の監視と他の計算ノードに前記チップデータの分散処理の割り当てとを行うために起動する処理工程と、前記分散処理を割り当てられた計算ノードが、１つのチップデータの分散処理を実行する処理工程と、この処理されたチップデータを転送用の計算ノードで前記マスク描画装置に転送する処理工程と、この転送処理が終了する前に、前記所定の計算ノードが、リソースの空きがある計算ノードに後続のチップデータの分散処理を割り当てて、前記１つのチップデータの転送処理と前記後続のチップデータの分散処理とを並行処理する処理工程とを有し、以後、順次この並行処理が実行されることを特徴とする。
【００１２】
この構成によれば、上記所定の計算ノードは、１のチップデータが転送処理されているときに、並行して他の計算ノードに後続のチップデータの分散処理を開始させることが可能になる。
【００１３】
前記各チップデータは、２以上のストライプデータを含む。そこで、たとえば、前記並行処理を開始するタイミングは、前記後続のチップデータの分散処理を前記１つのチップデータの最終のストライプデータの転送処理が開始されるときとすればよい。
【００１４】
前記所定の計算ノードの起動のタイミングは、複数のチップデータから構成されるレイアウトデータのジョブを投入するときにすればよく、前記並行処理は、この投入されたジョブに含まれるすべてのチップデータの分散処理が終了するまで順次繰り返されるようにすればよい。
【００１５】
前記所定の計算ノードは、前記各ストライプデータを２以上の分散処理ブロックデータに分割し、この分散処理ブロックデータ単位に他の計算ノードを割り当てて分散処理を順次実行させ、最終のストライプデータにおける最終の分散処理ブロックデータの実行情報とリソースの空き情報とを取得すると、前記最終の分散処理ブロックデータの転送処理と同時に、リソースが空いている計算ノードに後続のチップデータの分散処理を実行させるようにしてもよい。
【００１６】
上記課題を解決するため、本発明にかかるマスク描画装置は、描画データを２以上のストライプデータから構成される複数のチップデータに分割し、さらに、各ストライプデータを分散処理ブロックデータに分割し、この分割された分散処理ブロックデータを分散処理するために、高速伝送路で相互に接続された複数の計算ノードを備えたマスク描画装置であって、前記複数の計算ノードは、他の計算ノードのリソースの空き状況の監視と他の計算ノードに前記分散処理ブロックデータの割り当てを行う管理ノードと、管理ノードによって割り当てられた前記分散処理ブロックデータの分散処理を実行する分散処理ノードと、前記分散処理されたブロックデータを前記ストライプデータ単位にまとめてチップデータごとにマスク描画装置に転送する転送ノードとから構成されたPCクラスタを形成し、前記管理ノードは、１つのチップデータの分散処理が実行されている間に、他の分散処理ユニットのリソースの空き状況を監視し、前記分散処理が実行されているチップデータの最終分散処理ブロックデータの分散処理が実行され、前記転送ノードで転送処理が実行されると、後続のチップデータの分散処理を開始するものであることを特徴とする。
【発明の効果】
【００１７】
以上の説明から明らかなように、本発明にかかる描画データ分散方法及びこの分散方法の実施が可能なマスク描画装置は、描画データをチップデータ単位に分散処理する場合に、チップデータの転送処理と分散処理とを並行して実行することができるので、各計算ノードのリソースを有効活用することができ、ひいては、マスク描画装置のトータルスループットの向上を図ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００１８】
図１を参照して、１は、本発明にかかるマスク描画装置本体である。マスク描画装置本体１は、電子光学鏡筒１１と描画室１２とから構成され、電子光学鏡筒１１内の電子銃１１１から電子ビームＢを図示しない偏向器によって偏向し、描画室１２内のステージ１２１上に載置されたマスクＭに所望のパターンを描画する。
【００１９】
上記パターンの描画データは、複数のチップデータから構成されており、これらのチップデータのデータ処理は、複数の計算ノードから構成されるＰＣクラスタ２によって分散処理が実行される。
【００２０】
ＰＣクラスタ２は、他の計算ノードのリソースの空き状態の監視と他の計算ノードに対する上記分散処理の割り当てとを行う管理ノード（Writing Control Unit, 以下「WCU２１」という）と、上記分散処理を実行する分散処理ノード（Parallel Processing Unit, 以下「PPU２２」という）と、分散処理されたチップデータをマスク描画装置本体１に転送する転送ノード（Output Node, 以下「ON２３」という）とから構成されている。
【００２１】
PCクラスタ２内のWCU２１、PPU２２、ON２３は、相互にInfiniBandなど、高速伝送路２４によって接続されている。InfiniBandアーキテクチャは、上記クラスタ用のスイッチ型高速I/Oバスアーキテクチャとして好適である。なお、PPU２２は、実際に分散処理を実行するユニットであり、複数の計算ノードが接続されている。また、ON２３とマスク描画装置本体１とは、光ファイバケーブル２５で接続すればよい。
【００２２】
図２は、本発明にかかるチップデータ処理のタイムチャートを示す図である。チップデータC1は、ストライプデータＳｔ１１、ストライプデータＳｔ１２、ストライプデータＳｔ１３…ストライプデータＳｔ１ｆから構成され、チップデータＣ２は、ストライプデータＳｔ２１、ストライプデータＳｔ２２…というように、いずれのチップデータも２以上のストライプデータから構成され、最終のチップデータＣｆまで順次処理される。
【００２３】
本発明では、以下、処理方法について詳述するが、図１で説明したＯＮ２３による先行するチップデータＣ１の転送処理において、最終ストライプデータＳｔ１ｆの転送時に、図１で説明したＰＰＵ２２による後続のチップデータＣ２の最初のストライプデータＳｔ２１の分散処理を並行して開始し、以後、順次、この並行処理を実行する。
【００２４】
本発明では、このような処理方法を実行することにより、先行するチップデータの転送時に、ＰＰＵ２２のリソースが空き状態になるという状態を回避し、リソースの有効活用を図って、描画データの分散処理にかかる所要時間ｔを短縮し、マスク描画装置のトータルスループットを向上させるというものである。
【００２５】
図３は、本発明にかかる描画データ分散処理方法のフローチャートを示す図である。以下、図１を参照しながら説明する。
【００２６】
マスクに描画されるパターンのレイアウトデータを生成し、このレイアウトデータごとのジョブをＰＣクラスタ２に投入する（Ｓ１）。このレイアウトデータは、複数チップデータ（チップ数＝ｎ）を含む。
【００２７】
ＷＣＵ２１が起動し（Ｓ２）、初回のチップ処理が開始される（Ｓ３）。このチップ処理は、サブルーチンとして呼び出されるが、詳細は後述する。初回のチップ処理が終了すると、以後、カウンタにより、処理済チップ数＜ｎかどうかの判断が行われる（Ｓ４）。処理済チップ数＜ｎの場合は、さらに、チップ処理ルーチンから、ＰＰＵ２２のリソースの空きについての通知があるかどうか判断し（Ｓ５）、通知があるまでこの判断を繰り返す。通知あった場合には、後続（２回目）のチップ処理のために、再びサブルーチンを呼び出し（Ｓ６）、以後、処理済チップ数＝ｎになるまでＳ４〜Ｓ６の処理を繰り返す。処理済チップ数＝ｎになると、上記投入されたレイアウトのジョブが終了する。
【００２８】
ここで、時系列的には、Ｓ３のチップ処理後、Ｓ４、Ｓ５の判断を経て、Ｓ６のチップ処理が開始されるが、実際には、Ｓ３のチップ処理が終了する前に、Ｓ６のチップ処理が開始されるため、一部並行処理されており、以後、Ｓ６のチップ処理は、先行するチップ処理と後続のチップ処理が順次一部並行処理される。
【００２９】
図４は、図３で説明したチップ処理のサブルーチンのフローチャートを示す図である。以下、フローチャートを説明する前に、本発明にかかる分散処理の実際のデータ構成例を説明する。
【００３０】
図２で説明したように、チップデータは、２以上のストライプデータから構成されているが、上記分散処理は、たとえば、このストライプデータをさらに、２以上の分散処理ブロックデータに分割して処理する。図５は、チップデータとストライプデータとこの分散処理ブロックデータとの関係を模式的に示した図である。
【００３１】
チップデータＣ１は、ストライプデータＳｔ１１、ストライプＳｔ１２、ストライプデータＳｔ１３…ストライプデータＳｔ１ｆから構成されているが、各ストライプデータは、それぞれさらに複数の分散処理ブロックデータに分割される。すなわち、ストライプデータＳｔ１１は、分散処理ブロックデータｂ１１、ｂ１２、ｂ１３…ｂ１ｆに分割され、ストライプＳｔ１２は、分散処理ブロックデータｂ２１、ｂ２２、ｂ２３…ｂ２ｆに分割され、ストライプデータＳｔ１３は、分散処理ブロックデータｂ３１、ｂ３２、ｂ３３…ｂ３ｆに分割され、ストライプデータＳｔ１ｆは、分散処理ブロックデータｂｆ１、ｂｆ２、ｂｆ３…ｂｆｆに分割されている。各ＰＰＵ２２は、それぞれこの分散処理ブロックデータ単位でデータ処理を実行する。図４のフローチャートは、この分散処理を前提に説明する。
【００３２】
チップ処理サブルーチンが呼び出されると、当該チップデータにおけるストライプデータの続行の有無を判断する（Ｓ１０１）。すなわち、当該チップ処理において、最終のストライプデータＳｔ１ｆまでストライプデータのループが繰り返される。最終のストライプデータＳｔ１ｆの処理が終了すると、図３のＳ４の判断がなされる。
【００３３】
ストライプデータのループ続行の場合、さらに、分散処理ブロックのループの続行の有無を判断する（Ｓ１０２）。すなわち、当該ストライプ処理において、最終の分散処理ブロックデータｂｆｆまで分散処理ブロックデータのループが繰り返される。なお、分散処理ブロックデータｂｆｆの処理が終了し、続行しない場合には、次のストライプ処理に移行するために、Ｓ１０１の判断に戻り、ストライプデータの続行の有無が判断される。
【００３４】
分散処理ブロックデータのループを続行する場合、ＷＣＵ２１によるＰＰＵ２２のリソースの空きの監視が行われ（Ｓ１０３）、ＰＰＵ２２に空きがあるか否かの判断がなされる（Ｓ１０４）。リソースに空きがなければ、引き続きＳ１０３のリソースの監視を継続し、空きが生じるまでＳ１０３〜Ｓ１０４の処理を繰り返す。
【００３５】
ＰＰＵ２２に空きが生じた場合、現在、実行している当該チップ処理が、最終の分散処理ブロックデータｂｆｆか否かの判断を行う（Ｓ１０５）。最終の分散処理ブロックデータｂｆｆではない場合、その分散処理ブロックデータを空きのあるＰＰＵ２２に割り当てて（Ｓ１０７）、この割り当てられたＰＰＵ２２で分散処理を実行し（Ｓ１０８）、分散処理が終了すると、ＯＮ２３にデータを送信し、Ｓ１０２の判断がなされ、最終の分散ブロックデータの処理まで、このループが繰り返される。
【００３６】
一方、Ｓ１０５において、最終の分散処理ブロックデータｂｆｆの処理が実行される場合、上記ＰＰＵ２２のリソースの空き情報とこの最終分散処理ブロックデータｂｆｆの処理であることの情報が、ＷＣＵ２１に通知される（Ｓ１０６）。この通知は、図３で示したＳ５の通知として受け取られ、後続のチップデータの並行処理を開始するために、Ｓ６として、本サブルーチンが再び呼び出され、以後、この並行処理が順次実行される。なお、Ｓ１０６の通知後は、最後の分散処理ブロックデータｂｆｆについて上記Ｓ１０７〜Ｓ１０９の処理が実行される。
【図面の簡単な説明】
【００３７】
【図１】本発明にかかるマスク描画装置のブロック構成図
【図２】本発明にかかるチップデータ処理のタイムチャートを示す図
【図３】本発明にかかる描画データ分散処理方法のフローチャートを示す図
【図４】チップ処理のサブルーチンのフローチャートを示す図
【図５】チップデータとストライプデータとこの分散処理ブロックデータとの関係を模式的に示した図
【図６】従来のチップデータ処理のタイムチャートを示す図
【符号の説明】
【００３８】
１      マスク描画装置本体
２      ＰＣクラスタ
１１    電子光学鏡筒
１２    描画室
２１    ＷＣＵ（管理ノード、Writing Control Unit）
２２    ＰＰＵ（分散処理ノード、Parallel Processing Unit）
２３    ＯＮ（転送ノード、Output Node）
２４    高速伝送路
２５    光ファイバケーブル
１１１  電子銃
１２１  ステージ
【図１】
2009271830.tif 000003
【図２】
2009271830.tif 000004
【図３】
2009271830.tif 000005
【図４】
2009271830.tif 000006
【図５】
2009271830.tif 000007
【図６】
2009271830.tif 000008