(57)【要約】  生産システム（１００，３００）は、処理装置（１１５）、コントローラ・エージェント（３５０）および第１処理エージェントを含む。処理装置（１１５）は、動作レシピ（operatingrecipe）に従って加工品（１３０）を処理するように構成されている。コントローラ・エージェント（３５０）は、処理装置（１１５）内の加工品（１３０）の処理に関する制御動作を決定するように構成されている。第１処理エージェント（３２０，３４０）は、処理装置（１１５）および加工品（１３０）のうちの少なくとも一つに関連し、コントローラ・エージェント（３５０）に対してインターフェイスで接続し、制御動作を受信し、制御動作に基づいて動作レシピを作成するように構成されている。  動作レシピに従って加工品（１３０）を処理するように構成された処理装置（１１５）を制御するための方法が提供される。処理装置（１１５）および加工品（１３０）のうちの少なくとも一つに関する第１処理エージェントを作成する。処理装置（１１５）内の加工品（１３０）の処理に関する制御動作を決定するように構成されたコントローラ・エージェント（３５０）を作成する。この第１処理エージェント（３２０，３４０）がコントローラ・エージェント（３５０）とインターフェイスで接続され、制御動作を受信する。第１処理エージェント（３２０，３４０）は処理装置（１１５）とインターフェイスで接続され、制御動作に基づいて動作レシピを作成する。
2005515623.tif 000002
【特許請求の範囲】
【請求項１】
動作レシピに従って加工品（１３０）を処理するように構成された処理装置（１１５）と、
前記処理装置（１１５）内の前記加工品（１３０）の処理に関係する制御動作を決定するように構成されたコントローラ・エージェント（３５０）と、
前記処理装置（１１５）および前記加工品（１３０）の少なくともどちらかに関連し、前記コントローラ・エージェント（３５０）にインターフェイスで接続して、前記制御動作を受信し、前記制御動作に基づいて動作レシピを作成するように構成される第１処理エージェント（３２０，３４０）とを備える、生産システム（１００，３００）。
【請求項２】
前記処理装置（１１５）および前記加工品（１３０）の少なくともどちらかに関連し、前記第１処理エージェント（３２０，３４０）には関連しない第２処理エージェント（３２０，３４０）をさらに備え、前記第１処理エージェント（３２０，３４０）および第２処理エージェント（３２０，３４０）の少なくとも一方は前記コントローラ・エージェント（３５０）にインターフェイスで接続するように構成されている、請求項１記載の生産システム（１００，３００）。
【請求項３】
前記第１処理エージェント（３２０）は前記加工品（１３０）と関係し、前記コントローラ・エージェント（３５０）とインターフェイスで接続され、前記制御動作を受信して、前記処理装置（１１５）と関連した前記第２処理エージェント（３４０）に対して前記制御動作を渡すように構成されており、前記第２処理エージェント（３４０）は前記制御動作に基づいて前記動作レシピを作成するように構成されている、請求項２記載の生産システム（１００，３００）。
【請求項４】
前記コントローラ・エージェント（３５０）は前記加工品（１３０）および前記処理装置（１１５）の少なくとも一方に関するデータを受信して、制御モデルおよび前記受信データに基づいて前記制御動作を決定するように構成されている、請求項１記載の生産システム（１００，３００）。
【請求項５】
前記第１処理エージェント（３２０）は前記加工品（１３０）に関するデータを前記コントローラ・エージェント（３５０）に供給するように構成され、前記第２処理エージェント（３４０）は前記処理装置（１１５）に関するデータを前記コントローラ・エージェント（３５０）に供給するように構成され、さらに前記コントローラ・エージェント（３５０）は前記制御モデル、前記加工品（１３０）に関連したデータおよび前記処理装置（１１５）に関連したデータに基づいて前記制御動作を決定するように構成されている、請求項４記載の生産システム（１００，３００）。
【請求項６】
動作レシピに従って加工品（１３０）を処理するように構成された処理装置（１１５）を制御するための方法であって、
前記処理装置（１１５）および前記加工品（１３０）の少なくともどちらかに関連付けられる第１処理エージェント（３２０，３４０）を作成するステップと、
前記処理装置（１１５）内の前記加工品（１３０）の処理に関係する制御動作を決定するように構成されたコントローラ・エージェント（３５０）を作成するステップと、
前記コントローラ・エージェント（３５０）に第１処理エージェント（３２０，３４０）をインターフェイスで接続して、前記制御動作を受信するステップと、
前記第１処理エージェント（３２０，３４０）と前記処理装置（１１５）とをインターフェイスで接続して、前記制御動作に基づいて、前記動作レシピを作成するステップとを含む方法。
【請求項７】
前記処理装置（１１５）および前記加工品（１３０）の少なくともどちらかに関連するが、前記第１処理エージェント（３２０，３４０）には関連しない第２処理エージェント（３２０，３４０）を作成するステップと、
前記第１処理エージェント（３２０，３４０）および前記第２処理エージェント（３２０，３４０）の少なくとも一方を前記コントローラ・エージェント（３５０）にインターフェイスで接続するステップとをさらに含む、請求項６記載の方法。
【請求項８】
前記第１処理エージェント（３２０）から前記第２処理エージェント（３４０）に対して前記制御動作を渡すステップと、
前記制御動作に基づいて前記動作レシピを作成するために前記第２処理エージェント（３４０）および前記処理装置（１１５）をインターフェイスで接続するステップとをさらに含む、請求項７記載の方法。
【請求項９】
前記加工品（１３０）および前記処理装置（１１５）の少なくとも一方に関するデータを前記コントローラ・エージェント（３５０）に提供するステップと、
制御モデルおよび前記提供されたデータに基づいて前記制御動作を決定するステップと  をさらに含む、請求項６記載の方法。
【請求項１０】
前記加工品（１３０）に関するデータを提供するために前記第１処理エージェント（３２０）と前記制御エージェント（３５０）とをインターフェイスで接続するステップと、
前記処理装置（１１５）に関するデータを提供するために前記第２処理エージェント（３４０）を前記コントローラ・エージェント（３５０）にインターフェイスで接続するステップと、
前記制御モデルと、前記処理装置（１１５）および前記加工品（１３０）に関連するデータとに基づいて前記制御動作を決定するステップとをさらに含む、請求項９記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に半導体装置製造の分野に関し、さらに詳細には、自立的で、能動的なソフトウェアエージェントを用いてウェハの処理のためのレシピを制御する自動化された生産環境に関する。
【背景技術】
【０００２】
半導体業界においては、集積回路装置、例えばマイクロプロセッサ、メモリ装置等の品質、信頼性およびスループットの改善に対する継続的な動機付けが存在する。この動機付けは、より高い信頼性を持って動作する高品質のコンピュータおよび電気製品に対する消費者の要求によってあおられている。このような要求は、半導体装置、例えばトランジスタの製造における継続的な改善、さらにはそのようなトランジスタを含む集積回路装置の製造における継続的な改善へと繋がる。さらに、一般的なトランジスタ部品の製造における欠陥を減らすことにより、トランジスタ当たりの全体のコストを下げることができ、さらにはそのようなトランジスタを含む集積回路装置のコストをも下げることができる。
【０００３】
一般的に、あるウェハに対して、１セットの処理ステップが様々な処理（プロセス）装置を用いて行われる。処理装置には、フォトリソグラフィーステッパ、エッチング装置、デポジション（deposition）装置、研磨装置、ラピッド・サーマル処理（rapid thermal processing）装置、インプランテーション（implantation、イオン注入）装置等々が含まれる。半導体処理（プロセス）装置の基礎となる技術が過去数年にわたってより大きな関心を引き起こし、それによって実質的な改善へとつながった。しかしながら、この領域でなされた進歩にもかかわらず、現在商業的に入手可能な処理装置の多くはいくつかの欠点を抱えている。特に、そのような装置類はしばしば先進プロセスデータ監視機能を有していない。先進プロセスデータ監視機能とは、例えばユーザフレンドリーな形式で、イベントログ、現在のプロセスパラメータおよびラン（run）全体のプロセスパラメータ両方のリアルタイムグラフィカル表示、さらにローカルサイトおよび全世界の遠隔監視とともに、経過（ヒストリカルな）パラメトリックデータを提供する能力である。これらの欠点により、スループット、正確性、安定性および再現性、プロセス温度、機械装置パラメータなどの重要なプロセスパラメータの処理が最適化されないおそれがある。この変動性はラン内のばらつき、ランとランの間のばらつき、そして装置と装置の間のばらつきとして現れ、それらは製品の品質および性能のばらつきへと繋がりうる。それに対して、そのような装置類のための理想的な監視および診断システムは、この変動性を監視する手段とともに、重要なパラメータを最適に制御するための手段をも提供する。
【０００４】
半導体処理ラインの運用を改善するテクニックの一つは、様々な処理装置の動作を自動的に制御する全工場的（ファクトリーワイドな）制御システムを採用することである。製造装置が製造フレームワークまたは処理モジュールのネットワークと通信を行う。各製造装置は、通常、装置インターフェイスに結合される。装置インターフェイスは、製造装置と製造フレームワークとの間の通信を促進する機械インターフェイスに結合される。機械インターフェイスは一般にアドバンスド・プロセス・コントロール（ＡＰＣ）システムの一部であってもよい。ＡＰＣシステムは、製造（manufacturing）モデルに基づいて制御スクリプトを起動する。制御スクリプトは、製造プロセスを実行するために必要なデータを自動的に読み出すソフトウェアプログラムとすることができる。しばしば、半導体装置は複数のプロセスのための複数の製造装置を通り抜けて、処理された半導体装置の品質に関するデータを生成する。
【０００５】
製造プロセスの間、製造中のデバイスの性能に影響を与える様々な出来事が発生しうる。つまり、製造プロセスステップ中の変動がデバイス性能のばらつきにつながる。構造の限界寸法（critical dimensions）、ドーピングレベル、接点抵抗、粒子汚染（particle contamination）などの要素はすべて潜在的にデバイスの最終性能に影響を与えうる。
処理の変動を低減するために、処理ライン中の様々な装置は性能モデルに従って制御される。一般的に制御される処理装置には、フォトリソグラフィーステッパ、研磨装置、エッチング装置、デポジション（deposition）装置が含まれる。処理前および／または処理後の測定データが装置のためのプロセス制御装置（コントローラ）に供給される。処理後の結果が目標値にできるだけ近くなるように、プロセス制御装置は性能モデルおよび計測情報に基づいて、処理時間などの動作レシピパラメータを計算する。このようにして偏差（ばらつき）を減少させることで、スループットを増大、コスト削減、デバイスの性能向上などの収益率向上に等しい結果が生まれる。
【０００６】
工場規模のＡＰＣシステムのような分散処理環境においては、コンフィギュレーション制御および効率性の問題が優勢となる。一般に、プロセスコントローラを構成するための制御コードを書いているソフトウェアデベロッパーは数多くある。ある特定のデベロッパーは特定のタイプのコントローラを開発するために多大なる努力をしている。通常、それぞれのデベロッパーが独特のプログラミングスタイルを持ち、自分たちがすでに開発したルーチンに依存している。例えば、各デベロッパーは、ＡＰＣフレームワーク内でデータベースやその他の構成要素とのインターフェイスを作り、様々な計算動作および基本的なユーティリティ動作を実行するためのルーチンセットを持っている。
【０００７】
そのような構成に関する一つの問題は、プロセス制御スクリプトの間に一貫性があまりないことである。多数のカスタムスクリプトはさらにコンフィギュレーション制御の問題および効率性の問題を生じさせる。デベロッパーは、おそらく別のデベロッパーがすでに作った別のタイプのプロセスコントローラについてすでに開発されているコードを複製するのに相当な時間を費やしているかもしれない。標準化されていないコードをデバッグするにはより多くの時間がかかり、効率をさらに下げることになる。
本発明は、上述の一以上の課題を解決し、または少なくともその影響を低減することを目的としている。
【発明の開示】
【発明の概要】
【０００８】
本発明の一態様は、処理装置、コントローラ・エージェントおよび第１処理エージェントを含む製造システムである。処理装置は、動作レシピ（operating recipe）に従って加工品（ワークピース）を処理するように構成されている。コントローラ・エージェントは、処理装置内の加工品の処理に関する制御動作を決定するように構成されている。第１処理エージェントは、処理装置および加工品のうちの少なくとも一つに関連し、コントローラ・エージェントに対してインターフェイスを形成し、制御動作を受信し、制御動作に基づいて操作レシピを作成するように構成されている。
【０００９】
本発明の他の態様は、操作レシピに従って加工品を処理するように構成された処理装置を制御するための方法である。処理装置および加工品のうちの少なくとも一つに関連した第１処理エージェントが作成される。処理装置内の加工品の処理に関する制御動作を決定するように構成されたコントローラ・エージェントが作成される。この第１処理エージェントがコントローラ・エージェントとインターフェイスで接続され、制御動作を受信する。第１処理エージェントは処理装置とインターフェイスで接続され、制御動作に基づいて操作レシピを作成する。
【００１０】
本発明は、添付の図面と関係付けて、以下の説明を参照することによって理解できるであろう。図面中、類似の参照符号は類似の要素を示している。
本発明は様々な変形および代替の形態をとりうるが、その特定の実施形態を例示のために図面に示し、本明細書において詳細に説明する。しかしながら、特定の実施形態についての本明細書中の説明は、開示された特定の形態に本発明を限定しようとするものではなく、むしろ反対に、添付の特許請求の範囲に規定される本発明の精神および範囲の範疇に入る、すべての変形物、均等物および代替物を含むことを意図している、ことを理解してもらいたい。
【発明を実施するための最良の形態】
【００１１】
本発明の例示としての実施形態を以下説明する。明確化のために、本明細書では、現実の実施品のすべての特徴を説明することはしない。そのような現実の実施品の開発においては、例えばシステム関連の順守事項およびビジネス上の制約など、実用化の事例毎に異なる、開発者の特定の目標を達成するために、数々の実施に則した判断を行わなければならないことは当然理解してもらえるだろう。さらに、そのような開発努力は複雑で時間のかかるものであるかもしれないが、それにもかかわらず本明細書の開示による利益を得た当業者にとっては日常作業に過ぎないことも理解できるであろう。
【００１２】
まず図１は、本発明のある特定の実施形態に従って構成され、実行される処理フロー１００の一部を示す概念図である。処理フロー１００の図示された部分は２つのステーション１０５を含み、それぞれのステーション１０５は処理装置１１５と通信するコンピュータ装置１１０を含んでいる。２つのステーション１０５は互いに通信リンク１２０上で通信する。図示された実施形態では、コンピュータ装置１１０および通信リンク１２０はより大きなコンピュータシステムの一部、例えばネットワーク１２５を含む。図１に示された処理装置１１５は、集積回路装置を製造中のウェハ１３５のロット１３０を処理している。本発明は半導体装置を製造するのに使用可能なものとして示されているが、その用途はそれに限定されるものではなく、他のタイプの製造プロセスにも応用可能である。従って、上述の処理フロー１００においては、ウェハ１３５のロット１３０はより一般的に「加工品」と呼ぶことができる。処理装置１１５およびそれに対して実行されるすべての処理操作は、すべての実施形態において、かならずしも半導体装置の製造に関係するものである必要はない。しかしながら、明確さのため、および発明をさらに理解するために、図示される実施形態の枠内において本発明を開示する場合には、半導体製造に関する用語を用いる。
【００１３】
図２は、本発明に従ってプログラムされ、動作するコンピュータ装置１１０のハードウェアおよびソフトウェアアーキテクチャの選択された部分をそれぞれ示している。ハードウェアおよびソフトウェアアーキテクチャのいくつかの要素（例えば、個々のカード、基本入出力システム（BIOS）、入出力ドライバ等）は図示していない。これらの要素は明快さのために省略されるが、それによって本発明が不明確になるものではない。しかしながら、本開示の利益を得た当業者であれば、コンピュータ装置１１０のソフトウェアおよびハードウェアアーキテクチャはそのような普通の特徴を多く含むことを理解するであろう。
【００１４】
例示する実施形態では、コンピュータ装置１１０はUNIXベースのオペレーティングシステムを採用したワークステーションであるが、本発明はそれに限定されるものではない。コンピュータ装置１１０は、ラップトップコンピュータ、デスクトップコンピュータ、ミニコンピュータ、メインフレームコンピュータまたはスーパーコンピュータなどの、事実上どのようなタイプの電子コンピュータ装置においても実装可能である。コンピュータ装置１１０は代替の実施形態、処理装置１１５に組み込まれたプロセッサまたはコントローラであってもよい。本発明はまたＵＮＩＸベースのオペレーティングシステムに限定されるものではない。代替のオペレーティングシステム（例えば、ＷＩＮＤＯＷＳベースまたはディスクオペレーティングシステム（ＤＯＳ）ベース）も採用可能である。本発明はコンピュータ装置１１０の特定の実装によって制限されることはない。
【００１５】
コンピュータ装置１１０はさらにプロセッサ２０５を含み、プロセッサ２０５はバスシステム２１５上である記憶装置２１０と通信する。この記憶装置２１０は一般に少なくともハードディスク（図示せず）およびランダムアクセスメモリ（ＲＡＭ）（図示せず）を含む。ある実施形態においては、コンピュータ装置１１０はさらに、光学ディスク（図示せず）、フロッピー電気磁気ディスク（図示せず）などのリムーバブル記憶装置、または磁気テープ（図示せず）またはＺＩＰディスク（図示せず）などのその他の形態のリムーバブル記憶装置を含む。プロセッサ２０５は当該技術分野において知られた任意の適切なプロセッサでよい。例えば、プロセッサは汎用のマイクロプロセッサでもよいし、またはデジタルシグナルプロセッサ（ＤＳＰ）でもよい。例示する実施形態では、プロセッサ２０５はアドバンスド・マイクロ・ディバイシズInc社（ＡＭＤ）から商業的に入手可能なAthlon（商標）６４ビットプロセッサであるが、本発明はそれに限定されない。サンマイクロシステムズ社から提供される６４ビットのUltraSPARC（商標）または３２ビットのmicroSPARC（商標）、インテル・コーポレーション社から提供されるItanium（商標）またはPentium（商標）クラスのプロセッサのいずれか、コンパック・コンピュータ・コーポレーション社から提供されるAlpha（商標）プロセッサを代わりに採用してもよい。コンピュータ装置１１０はモニタ２４０、キーボード２４５、およびマウス２５０を含み、それらはまとまって、それらに関係するユーザーインターフェイスソフトウェア２５５とともに、ユーザーインターフェイス２６０を構成する。例示された実施形態におけるユーザーインターフェイス２６０はグラフィカルユーザーインターフェイス（ＧＵＩ）であるが、これは本発明の実施に必要なものではない。
【００１６】
コンピュータ装置１１０のソフトウェアアーキテクチャの選択された部分がさらに図２に示されている。例示した実施形態において、各コンピュータ装置１１０は記憶装置２１０内に常駐のソフトウェアエージェント２６５を有する。ソフトウェアエージェント２６５は処理フロー１００内において、コンピュータ装置１１０以外の場所に常駐してもよいことに注意してもらいたい。ソフトウェアエージェント２６５の存在位置は本発明の実施において本質的な事項ではない。ソフトウェアエージェント２６５の存在位置は本質的な事項ではないので、いくつかのコンピュータ装置１１０がそれらに常駐する複数のソフトウェアエージェント２６５を有する一方で、他のコンピュータ装置１１０がなにも持たないようにしてもよい、ことにさらに注意してもらいたい。カルフォルニア州マウンテンビューのConsilium, Inc.社から提供されるＷＯＲＫＳＴＲＥＡＭ（商標）などの自動製造実行システム（ＭＥＳ）２７０は少なくとも一つのコンピュータ装置１１０に常駐する。
【００１７】
上述したように、図１において、コンピュータ装置１１０は、通信リンク１２０上で接続されることにより、より大きなコンピュータシステム１２５の一部とすることができる。そのような実装におけるコンピュータシステムの例には、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、システムエリアネットワーク（ＳＮＡ）、イントラネット、またはインターネットさえも含む。このコンピュータシステム１２５はネットワーク化されたクライアント／サーバアーキテクチャを採用するが、代替の実施形態ではピアトゥーピア（peer-to-peer）アーキテクチャを採用することもできる。従って、ある代替実施形態では、コンピュータ装置１１０は互いに直接に通信することができる。通信リンク１２０はワイヤレス、同軸ケーブル、光ファイバー、またはペア撚り線（twisted pair）とすることができる。それを採用する実施形態において、コンピュータシステム１２５および通信リンク１２０は実装に応じて変化するものであり、当該技術分野において知られている任意の適切な方法で提供することができる。コンピュータシステム１２５は当該技術分野において知られた任意の適切な通信プロトコル、例えばＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）を採用することができる。
【００１８】
図１および図２を参照して、ソフトウェアエージェント２６５は共同して、製造プロセスを通じて、ウェハ１３５のロット１３０を効率的に監視する責任を負う。各処理装置１１５は、この目的のために採用可能なリソースの一つである。例えば、処理装置１１５はウェハ１３５の一部を製造する、例えばウェハ１３５のレイヤ、パターン、ドーピング、熱処理などのために使用される製造装置であってもよい。または、処理装置１１５は処理フロー１００の様々な部分の能力を評価するために使用される計測装置であってもよい。従って、ソフトウェアエージェント２６５は、ウェハ１３５のロット１３０を続いて処理するための複数のリソースを査定し、処理装置１１５に代表されるリソースを割り当て、そしてウェハ１３５のロット１３０を続いて処理するためのそれらリソースの割り当てについて、互いにネゴシエーションを行うことが可能である。
【００１９】
例示する実施形態では、ソフトウェアエージェント２６５は、起動（スタートアップ）時に自己設定され、インテリジェントで、状態認識（state-aware）で、そして、その達成のためにそれらが自律的に動作を開始する、特定のゴールがしみこんでいる。ソフトウェアエージェント２６５はさらに、それらの環境変化に対して自己調整（self-adjust）を行う。ソフトウェアエージェント２６５はオブジェクト指向プログラミング（ＯＯＰ）環境におけるオブジェクトとして実装されるが、本発明はオブジェクト指向ではない技術を用いて実装することも可能である。それらの動作は比較的単純で、スクリプトまたは規則（rule）ベースである。その動作は選択された目標、例えば割り当てられたロットの処理期限を達成する、所定の品質レベルを達成する、装置の稼働率を最大化する、都合良く予防的にメンテナンスのスケジュールを組む、などを達成するように設計される。これらの目的を達成するために、ソフトウェアエージェント２６５はＭＥＳ２７０とインターフェイスで接続され、既存の工場制御システム（図示せず）と統合される。本開示の利益を得た当業者には自明であるように、このインターフェイスおよび統合が行われる方法は、ＭＥＳ２７０および工場制御システムの特徴に応じて、実装の形態ごとに異なる。
【００２０】
以下でさらに説明するように、ソフトウェアエージェント２６５はいくつかの異なったレベルに専門化することができる。一つのレベルは、「タイプ」によるもの、つまりソフトウェアエージェント２６５が処理フロー１００において「消費者」なのか「供給者」なのかを表す。さらに詳細には、ソフトウェアエージェント２６５が消費者なのか、それとも供給者なのかは、処理フロー１００の全体においてそれが表す要素のタイプによって決定される。例えば、ソフトウェアエージェント２６５は、ウェハ１３５のロット１３０を表すことができ（つまり、「ロット・エージェント」）、処理装置１１５を表すこともできるし（つまり、「装置エージェント」）またはプロセス材料を表すこともできる（つまり、「リソース・エージェント」）。ソフトウェアエージェント２６５は機能、つまりソフトウェアエージェント２６５が処理フロー内でどのような機能を実行するか、によって専門化することもできる。例えば、ソフトウェアエージェント２６５は、かならずしも特定の要素を表す必要はなく、特定の機能を実行するように構成される。例えば、ソフトウェアエージェント２６５は、処理装置１１５内で処理されるウェハ１３５の特定のロット１３０についての制御動作（すなわち、「制御エージェント」）を決定するように構成することができる。この制御エージェントによって実行される動作はロット１３０の特性および処理装置１１５の特性の両方に応じて変わる。制御エージェントは特定の実装に応じて、ロット・エージェントによって、または装置エージェントによって呼び出される。例示する実施形態では、制御エージェントはそのライフサイクルにわたって特定の処理装置１１５との関係を保持する。しかしながら、他の形態も使用可能である。ソフトウェアエージェント２６５によって実行可能な他の機能には、スケジュール作成が含まれる。
【００２１】
以下でさらに完全に説明される一実施形態として、例えばスケジュール作成エージェント、処理エージェント、およびコントローラ・エージェントがある。ソフトウェアエージェント２６５は、製造ドメインの要素、例えばロット１３０や処理装置１１５などとかならずしも一対一の関係でなくてもよいことを注意してもらいたい。その代わりに、ほとんどのドメイン要素はそれぞれソフトウェアエージェント２６５のグループによって表される。例えば、ロット１３０または処理装置１１５は、スケジュール作成エージェントおよび処理エージェントの両方を持つことができる。コントローラ・エージェントは特定の処理装置１１５と関連づけられ、処理エージェントのなかの一つによって呼び出される（つまり、ロット１３０または処理装置１１５と関連づけられる）。この構成は、ドメイン要素機能の一つの態様を支援する特定の動作を示す、特定のオブジェクトの設計を促進する。
【００２２】
この特定の実施形態においては、ソフトウェアエージェント２６５は、オブジェクト指向プログラム技術を用いて実現される。オブジェクト指向コンピュータという用語においては、ソフトウェア「エージェント」は自律的な、能動的オブジェクトである。その動作セットが与えられると、ソフトウェアエージェント２６５はその場の状態に応答して独立して動作することができ、それによって可適応システム動作を生成する。本発明は、例えば工場労働者、材料、装置、プロセス等々の半導体製造工場内の「実世界」のエージェントの機能を模倣し、改善する、自律的な可搬性の「ソフトウェアエージェント」を定義し、構成し、配置するエージェント拡張システムを提供する。当業者であれば、エージェントまたはその他のソフトウェアオブジェクトが一以上のソフトウェアオブジェクトを含むことができることは理解できるであろう。本明細書において、「オブジェクト」という用語においては、あるソフトウェアオブジェクトがさらに他の複数のソフトウェアオブジェクトから構成されていてもよいと理解されるべきである。逆に言えば、当業者であれば、あるオブジェクトの機能を他の機能と結びつけられることが理解できるであろう。別々のオブジェクトに関連するものとして説明された機能を、ある単一オブジェクトに関連する機能として結合することができる、ことは理解できるであろう。
【００２３】
さらにこの特定の実施形態において、ソフトウェアエージェント２６５は「設定変更可能」である。この特定の実施形態において、ソフトウェアエージェントは、それらの動作を支配するスクリプトを修正するか、または「制御ノブ」を修正することで設定を変更することができる。制御ノブは、外部的に設定変更可能なパラメータまたはソフトウェアエージェントの特性（プロパティ）であって、柔軟性および／またはシステム調整を提供する。例えば、ある特性はシステムの判断を支配するカーブを特定する。さらに詳細には、ソフトウェアエージェント２６５の処理およびスケジュール作成動作は、ある所定のイベントがスクリプトセグメントの実行を引き起こすように、スクリプトが書かれている。ある特定の実装において、スクリプトはＪＰｙｔｈｏｎ、双方向のＪａｖａインターフェイスを提供するオープンソースのＪａｖａプログラミング言語として実装される。ＪＰｙｔｈｏｎのダウンロードに関する情報を含む、さらに詳しい情報はインターネットのhttp://www.jpython.org/から得ることができる。
【００２４】
本発明の詳細な説明のいくつかの部分では、結果として、コンピュータシステムまたは計算装置のメモリ内のデータビットに対する操作のシンボリックな表現を含む、ソフトウェアによって実現されるプロセスとして説明される。これらの説明および表現は、当該技術分野の当業者が彼らの仕事を効率的に他の当業者に伝達するためのものである。これらの処理および操作は、物理量の物理的な操作を必要とするものである。通常、もっとも必ずしも必要ではないが、これらの物理量は、電気的、磁気的、または光学的な信号の形態をとり、それらは蓄積、転送、結合、比較、その他の操作が可能なものである。専ら一般的な用例という理由から、ときには、これらの信号をビット、値（value）、要素（element）、シンボル、キャラクタ、項（term）、数などと呼ぶのが便利である。
しかしながら、これらの用語のすべてまたは類似の用語は適切な物理量に関連付けられるべきであり、それらの量に適用される単なる便利なラベルである、ことを念頭に置く必要がある。特に断らない限り、またはこれまでの議論から明らかなように、これらの説明は、ある電子装置の記憶装置内の物理的（電気的、磁気的、または光学的）な量として表されるデータを、記憶装置、転送装置または表示装置のなかの物理的な量として同様に表される他のデータに操作または変換する、電子装置の動作または処理についてのものである。そのような説明を意味する用語の例としては、「プロセス（処理）」、「コンピューティング」、「計算」、「決定」、「表示」などの用語があるが、それらに限定されるものではない。
【００２５】
本発明のソフトウェアによって実装される部分は通常、プログラム記憶媒体の形態にエンコードされるか、または伝送媒体の形式において実装される。プログラム記憶媒体は磁気媒体（例えば、フロッピーディスクまたはハードディスク）または光学媒体（例えば、コンパクトディスクリードオンリーメモリ、つまり「ＣＤ−ＲＯＭ」）でよく、さらには読み出し専用であっても、ランダムアクセス方式であってもよい。同様に、伝送媒体はペア撚り線、同軸ケーブル、光ファイバー、または当該技術分野において既知の他の適切な伝送媒体でよい。本発明は、これらの実装形式に限定されるものではない。
【００２６】
処理フロー１００は、ＡＰＣ（Advanced Process Control）フレームワークにしたがって実装することができる。ＡＰＣシステムは交換可能な、標準化されたソフトウェアコンポーネントからなる分散ソフトウェアシステムを含み、処理フロー３００においてラントゥーラン（run-to-run）制御および障害検出／分類を可能にする。ソフトウェアエージェント２６５およびそれらの動作である本発明はＡＰＣシステムの上部レイヤとなり、ほぼ自律的に動作する半導体製造プロセスフローを実現する。
【００２７】
ＡＰＣシステムのソフトウェアコンポーネントは、SEMI（Semiconductor Equipment and Materials International）のCIM（Computer Integrated Manufacturing）フレームワークに準拠したシステム技術およびAPC（Advanced Process Control）フレームワークを基礎とするアーキテクチャスタンダードを実装する。CIM（SEMI E81-0699-CIMフレームワークドメインアーキテクチャのための暫定仕様書）およびAPC（SEMI E93-0999-CIMフレームワーク高度プロセス制御コンポーネントのための暫定仕様書）の仕様書はSEMIから一般に入手可能である。SEMIの連絡先は、テキサス州７８７３１オースティン、スイート２９０、テキサスハイウェイノース、キャピタル８３１０、電話512-349-2422、ファックス512-349-2442、インターネットアドレス： http://www.semi.orgである。
【００２８】
この特定のアーキテクチャはオブジェクト指向プログラミングを利用したソフトウェアに深く依存し、ＯＭＧ（Object Management Group）のＣＯＲＢＡ（コルバ、Common Object Request Broker Architecture）および分散オブジェクトシステムのためのＣＯＲＢＡサービス仕様書を採用する。ＯＭＧのＣＯＲＢＡアーキテクチャについての情報およびその仕様書もまた、一般に容易に入手可能である。
【００２９】
本明細書で説明するＡＰＣシステムの機能を実行するのに適応可能なソフトウェアシステムの例は、KLA-Tencor, Inc.社が販売するCatalystシステムである。KLA-Tencor社の連絡先は、カルフォルニア州９５１３４サンノゼ、リオローブルズ１６０、電話408-875-6000、ファックス408-875-3030、http://www.kla-tencor.comである。Catalystシステムについての追加情報は、KLA-Tencor社のウェブサイト、http://www.kla-tencor.com/contolsolutions/catalystapc.htmlから入手可能である。
【００３０】
図３は、本発明の他の実施形態に従った、ソフトウェアエージェント２６５を用いて実装した処理フロー３００の例としての実施形態を簡略ブロック図である。例としてのロット１３０はロットスケジュール作成エージェント３１０およびロット処理エージェント３２０によって表される。例としての処理装置１１５は、装置スケジュール作成エージェント３３０および装置処理エージェント３４０によって表される。ロットスケジュール作成エージェント３１０は処理フロー３００のなかの様々な要素、例えばロットを完成させるために必要なリソースを確保するための装置スケジュール作成エージェント３３０などとネゴシエーションを行う。例えば、ロットスケジュール作成エージェント３１０および装置スケジュール作成エージェント３３０は、ロット１３０に対する処理装置１１５の予約のスケジュールを作成するために「コントラクト・ネット・ネゴシエーションプロトコル」アプローチを用いることができる。
【００３１】
ロット処理エージェント３２０および／または装置処理エージェント３４０は、処理装置１１５がロット１３０を処理のために受け取ったときに呼び出される。ロット処理エージェント３２０および装置処理エージェント３４０はコントローラ・エージェント３５０とインターフェイスで接続され、ロット１３０を処理するための処理装置１１５の動作レシピを設定するために必要な制御動作を決定する。ロット処理エージェント３２０または装置処理エージェント３４０のどちらかがコントローラ・エージェント３５０を呼び出す。一実施形態では、ロット処理エージェント３２０はコントローラ・エージェント３５０に、必要な制御動作を決定するために必要なロット１３０の特性に関するデータ（例えば、寸法に関する計測データ、電気的計測データ等々）を送ることができる。同様に、装置処理エージェント３５０は、処理装置１１５に関するデータ（例えば、アイドル時間、前回のクリーニングからの時間、装置の健常性等々）をコントローラ・エージェント３６０に渡すことができる。代替実施形態では、ロット１３０および／または処理装置１１５の特性に関するデータは、コントローラエージェント３５０がアクセス可能な集中化されたデータ記憶装置３６０に蓄積される。データ記憶装置３６０は、処理前および処理後計測データ、装置の状態、ロットの優先度などを含むデータを蓄積するように構成することができる。
【００３２】
コントローラ・エージェント３５０の動作についてさらに詳細に説明する。コントローラ・エージェント３５０によって実行される特定の制御動作は実装に応じて変化する。例えば、もし処理装置１１５がCMP装置であったとすると、コントローラ・エージェント３５０は研磨前の厚さの測定値（例えば、高い構造の厚さ、低い構造の厚さ）を受信し、研磨後の目標とする厚さを達成するのに必要な研磨時間を予測する。処理装置１１５がエッチング装置である場合には、コントローラ・エージェント３５０は、エッチング前および／またはエッチング後の厚さの測定値に基づいて処理装置１１５のエッチング性能をモデル化することができる。コントローラ・エージェント３５０は処理装置１１５の制御モデルを用いて予測を行うことができる。制御モデルは一般的に知られた線形または非線型技術を用いて経験的に作成される。この制御モデルは、相対的に単純な方程式ベースのモデル（例えば、線形、指数、加重平均など）、またはニューラルネットワークモデル、PCA（Principal component analysis）モデルまたはPLS（projection to latent structure）モデルなどのより複雑なモデルとすることができる。このモデルの特定の実装は選択されたモデル化技術に応じて変化する。制御モデルを用いて、コントローラ・エージェント３５０は、エッチング後の厚さのばらつきを低減するように、エッチング時間、プラズマ強度、温度、圧力、反応ガス濃度などの動作レシピパラメータを決定することができる。他のタイプの処理装置１１５に対しては他の制御シナリオが成り立つ。
【００３３】
コントローラ・エージェント３５０を設定する際（つまり、それが最初に例示されるとき）に、コントローラ・エージェント３５０によって利用されるグローバルな設定変数が決定される。例示する実施形態では、これらのグローバル変数はレシピマネージメントシステム（RMS）（つまり、処理装置１１５によって実装される、現在のプロセスのためのデフォルトレシピを記憶するレシピ設定のグローバルデータベース）からの変数およびコンテクスト変数（context variable）の値を含む。コンテクスト変数値は制御スレッドを定義し、一般的に装置識別コード、ロット番号、動作番号などの変数値から構成される。さらに、必要なベースライン変数はどれも所与の値である。その例としては、エラー通知のための電子メールリスト、タイムアウトの時間値、「子」ロットとして取り扱われる、一ロット内で許容可能なウェハの最大数、コントローラエージェント３５０が使用する以前のレイヤ情報（フィードフォワード情報）などが挙げられる。
【００３４】
コントローラ・エージェント３５０は、グローバル設定変数に設定されたロット番号およびウェハの数についての値を使用して、ロット番号、ファミリーネーム、親の名前、工場、ウェハの数およびステータス（つまり、ロットが親ロットなのか、子ロットなのか）についての値を決定する。すでに決定されたコンテクストおよびＲＭＳ情報を、コントローラエージェント３５０が制御の動きを計算するのに用いる値を設定するために用いることができる。例えば、コントローラ・エージェント３５０は、ＲＭＳ内に定義されている値に従った制御モデルパラメータの値を設定するためにコンテクスト情報（または「スレッド」指定）を用いることができる。特定の例としては、特定のエッチングチャンバのコンテクストに従った制御モデルにおいて使用されるエッチング速度のための値、およびＲＭＳに定義されているそのエッチングチャンバのエッチング速度のための値を設定することがある。
【００３５】
さらに、コントローラ・エージェント３５０は、ロット番号およびレイヤ名による待ち行列（クエリー）を用いて、データ記憶装置３６０からフィードフォワード測定情報取り出すことができる。コントローラ・エージェント３５０は与えられたロットに関するデータ配列中の要素をチェックして、抜けている値をデフォルト値で充填する。例えば、コントローラ・エージェント３５０によって用いられるフィードフォワード情報の一部として必要な、欠落している測定値を設定するために、以前のプロセスの目標値が用いられる。デフォルト値を用いる代わりに、欠落しているフィードフォワード情報を設定する他の方法を実行することもできる。
【００３６】
コントローラ・エージェント３５０は、現在の制御スレッドに関連する制御状態を読み出すためにデータ記憶装置３６０を検索するのに必要なキーおよび状態構造（state structure）の値を設定する。このキーはデータ記憶装置３６０からスレッド状態データを読み出すために使用される。コントローラエージェント３５０は、このスレッドコンテクストで処理される最近のロットのための要求されたデータのスタック内でスレッド状態データを検索する。もしそのような値が見つかると、それらは制御モデルを含むユーザ定義関数に渡される。ユーザ定義関数は計算を行い、そのスレッド状態についての値を返す。スタック内で値が見つからないときは、コントローラエージェント３５０は階層構造（ヒエラルキー）を上方向にのぼって検索して、そのスレッド状態に対する値を有する最初の階層レベルからデータを読み出す。スタックおよびすべての階層レベルは類似であるが、精度の異なるデータを含むものと仮定される。
【００３７】
コントローラエージェント３５０は、データ記憶装置３６０内で照合を実行することにより危険チェック（jeopardy check）を実行して、危険スタック（つまり、最後の計測動作から与えられたスレッドにおいて処理されたロットのスタック）内のロット数についての値を読み出す。この値は、この危険カテゴリー内のロット数についての閾値、通常はＲＭＳ内に特定されている値、と比較される。もしこの危険閾値を超えていなければ、コントローラエージェント３５０は継続動作する。もしこの閾値を超えているときは、コントローラエージェント３５０は停止（アボート）し、オペレータに、現在のロットについての制御動作を決定する前に、危険スタック内のロットのリストからあるロットについての計測イベントを実行するように指示するポップアップディスプレイを送出する。
【００３８】
コントローラエージェント３５０は、上述のように、以前に決定された状態および目標情報からコントローラ入力（プロセスレシピの更新）を計算する。次にコントローラエージェント３５０は制御動作の結果を装置処理エージェント３４０に送り、それによりロット１３０の処理の前に処理装置１１５の動作レシピを更新する。
【００３９】
ある実施形態では、２以上のコントローラエージェント３５０がロット１３０の処理のために作成される。例えば、もし処理装置１１５がフォトリソグラフィーステッパであるとすると、一つのコントローラエージェント３５０がオーバーレイ制御のために呼び出され、他のコントローラエージェント３５０が限界寸法（ＣＤ）を制御するために呼び出される。複数のコントローラエージェント３５０は、露光線量、露光時間、焦点（フォーカス）などの様々なステッパパラメータを調整するために、処理されたウェハからのフィードバックを用いることができる。他の例においては、ポリシリコン層を形成するための装置のようなデポジション装置もまた、ポリシリコン粒径（グレインサイズ）およびポリシリコン層の厚さなどのパラメータを制御するために複数のコントローラエージェント３５０を持つことができる。
【００４０】
コントローラエージェント３５０が呼び出されたとき、個々のコントローラエージェント３５０のどれが制御動作を決定する必要があるかを決定するためにコンテクスト変数をチェックする。動作ＩＤは実行されるべきプロセスを指し示す（例えば、ポリゲートマスク対第２層間絶縁膜マスク（ＩＬＤ））。各コントローラエージェント３５０はある特定のコンテクスト状態においてのみ必要であり、それらのすべてのコンテクスト条件が適合したときにのみ動作する。例えば、ＣＤコントローラエージェント３５０はポリゲートマスクのために動作するが、第２ＩＬＤマスク処理では動作しない。一方、オーバーレイ・コントローラエージェント３５０は両方のマスクイベントにおいて動作しうる。
【００４１】
本明細書で説明したように、エージェントベースの制御アーキテクチャの使用は、工場全体の効率を改善し、より総合的な自動化を提供する。より詳細には、自律的、能動的なソフトウェアエージェント２６５がロットのスケジュール作成および処理の実行をスケジュール作成し、始動する。一般的に、改良されたプロセス制御は製品のばらつきを低減し、それによって生産能力および利益率を向上させる。
【００４２】
これまでに開示した特定の実施形態は一例にすぎない。本明細書の教示による利益を得た当業者に明らかなように、本発明を変形することができ、また異なるが均等な方法で実施することができる。さらに、添付の特許請求の範囲の記載を除いては、本明細書に開示した構造または設計の詳細に、本発明を限定しようとする意図はない。従って、上述の特定の実施形態は改造または変更が可能であり、そのような変形物は本発明の範囲および精神の中にあるものとして考えられる。従って、保護を求める範囲は添付の特許請求の範囲に記載されるとおりである。
【図面の簡単な説明】
【００４３】
【図１】本発明に従って構成され、操作される第１処理フローの一実施形態の一部を示す概念図。
【図２】図１のコンピュータ装置のハードウェアおよびソフトウェアアーキテクチャの選択された部分をそれぞれ示す概念的部分ブロック図。
【図３】本発明に従って構成され、操作される第２処理フローにおける、スケジュール作成エージェント、処理エージェントおよびコントローラエージェントにエージェントを専門化した概念的部分ブロック図。
【図１】
2005515623.tif 000003
【図２】
2005515623.tif 000004
【図３】
2005515623.tif 000005
【国際調査報告】
2005515623.tif 000006
2005515623.tif 000007
2005515623.tif 000008