(57)【要約】特殊化された自立型のアクティブソフトウェアエージェント（２６５）を用いる自動処理環境を提供するための装置および方法が開示される。ソフトウェアエージェント（２６５）は、対応付けられるエンティティのタイプと、プロセスフローにおいて実行する機能とによって特殊化される。この装置は、複数の製造ドメインエンティティ（１１５、１３０、３２０、４２０）と、製造ドメインエンティティ（１１５、１３０、３２０、４２０）の第２のサブセットによって提供されるプロセスリソース（４２０）を消費するために、製造ドメインエンティティ（１１５、１３０、３２０、４２０）の第１のサブセットをスケジューリングするための複数のこのようなソフトウェアエージェント（６１０）とを含むプロセスフローを含む。この方法は、このようなソフトウェアエージェント（２６５）をインスタンス化することと、その後、それらがプログラミングされたように動作できるようにすることとを含む。
2005528787.tif 000002
【特許請求の範囲】
【請求項１】
自動製造環境におけるプロセスフローであって、
複数の製造ドメインエンティティ（１１５、１３０、３２０、４２０）と、
前記製造ドメインエンティティ（１１５、１３０、３２０、４２０）に対応付けられた手段（２６５）とを有し、
前記対応付けられた手段は、前記製造ドメインエンティティ（１１５、１３０、３２０、４２０）の第１のサブセットをスケジューリングして、前記製造ドメインエンティティ（１１５、１３０、３２０、４２０）の第２のサブセットによって提供されるプロセスリソース（４２０）の消費を行ない、前記対応付けられた手段が、対応付けられた前記エンティティ（１１５、１３０、３２０、４２０）のタイプ別に特殊化されることを特徴とする、プロセスフロー。
【請求項２】
前記製造ドメインエンティティ（１１５、１３０、３２０、４２０）が、
プロセスツール（１１５）と、
プロセスツール（１１５）に対する予防メンテナンス／認定プロシージャ（３２０）と、
プロセスツール（１１５）によって用いられるプロセスリソース（４２０）と、
プロセスツール（１１５）で処理するためのロット（１３０）の少なくとも１つを含む、請求項１に記載のプロセスフロー。
【請求項３】
前記対応付けられた手段が、前記製造エンティティ（１１５、１３０、３２０、４２０）の代わりにスケジューリングするための手段と、前記製造エンティティ（１１５、１３０、３２０、４２０）の代わりに処理に対応付けられた手段の少なくとも１つを含む、請求項１に記載のプロセスフロー。
【請求項４】
前記対応付けられた手段が、プロセスツール（１１５）に対応付けられた手段と、ロット（１３０）に対応付けられた手段と、ＰＭプロシージャ（３２０）に対応付けられた手段と、リソース（４２０）に対応付けられた手段の少なくとも１つを含む、請求項１に記載のプロセスフロー。
【請求項５】
前記対応付けられた手段が、対応付けられた特定のエンティティ（１１５、１３０、３２０、４２０）の特徴によってさらに特殊化される、請求項１に記載のプロセスフロー。
【請求項６】
自動製造環境であって、
複数のプロセスツール（１１５）、前記プロセスツール（１１５）に対する複数の予防メンテナンス／認定プロシージャ（３２０）、前記プロセスツール（１１５）によって用いられる複数のプロセスリソース（４２０）、及び前記プロセスツール（１１５）で処理するための複数のロット（１３０）を含む、複数の製造ドメインエンティティ（１１５、１３０、３２０、４２０）と、
コンピューティングシステムと、を含み、
前記コンピューティングシステムは、
前記プロセスツール（１１５）での活動をスケジューリングし実行するための複数の機械エージェント（６５０、６９０）と、
前記プロセスツール（１１５）で処理するための前記ロット（１３０）をスケジューリングし、前記プロセスツール（１１５）で前記ロット（１３０）を処理しやすいようにアクションを実行するための複数のロットエージェント（６３０、６７０）と、
前記プロセスツール（１１５）によって前記プロセスリソース（４２０）の利用性をスケジューリングし、前記プロセスツール（１１５）によって前記プロセスリソース（４２０）を使用しやすいようにアクションを実行するための複数のリソースエージェント（６６０、６８５）と、
プロセスツール（１１５）での予防メンテナンス／認定プロシージャ（３２０）をスケジューリングし実行するための複数の予防メンテナンスエージェント（６４０、６８５）とを含む、自動製造環境。
【請求項７】
前記機械エージェント（６５０、６９０）が、前記プロセスツール（１１５）での活動をスケジューリングするための機械スケジューリングエージェント（６５０）と、前記プロセスツール（１１５）でのスケジューリングされた活動を実行するための機械処理エージェント（６９０）と、の少なくとも１つを含む、請求項６に記載の自動製造環境。
【請求項８】
前記機械エージェント（６５０、６９０）の少なくとも１つが、
前記プロセスツール（１１５）が、ウェハ（１３５）別、ロット（１３０）別、ロット（１３０）のバッチ別、またはウェハ（１３５）のバッチ別で処理を行うかどうか、
前記プロセスツール（１１５）が、ウェハ（１３５）、ロット（１３０）、またはバッチを順次または連続して処理するかどうか、
前記プロセスツール（１１５）のポートの数、
前記プロセスツール（１１５）のポートが、入力、出力、入出力であるかどうか、
前記プロセスツール（１１５）のチャンバが、直列または並列で使用されているかどうか、
前記プロセスツール（１１５）が、ＰＭを連鎖できるかどうか、
前記プロセスツール（１１５）におけるチャンバの数、
前記プロセスツール（１１５）が、内部ストレージを含むかどうか、
前記プロセスツール（１１５）が、ロット（１３０）またはバッチの処理を、別のロット（１３０）またはバッチを処理しながら、待ち行列に入れることができるかどうか、
前記プロセスツール（１１５）が、ローディングおよび／またはアンローディングを必要とするかどうか、
前記プロセスツール（１１５）が、リソース（４２０）を必要とするかどうか、必要であれば、前記リソース（４２０）が、専用リソースであるか、または共有リソースであるかどうか、
の少なくとも１つに従って特殊化される、請求項６に記載のプロセスフロー。
【請求項９】
前記ロットエージェント（６３０、６７０）が、ロットスケジューリングエージェント（６３０）とロット処理エージェント（６７０）の少なくとも１つを含む、請求項６に記載の自動製造環境。
【請求項１０】
前記ロットスケジューリングエージェント（６３０）と前記ロット処理エージェント（６７０）の少なくとも１つが、対応付けられた前記ロット（１３０）のプライオリティ、製品、または製品群の少なくとも１つによって特殊化される、請求項６に記載の自動製造環境。
【請求項１１】
前記リソースエージェント（６６０、６８５）が、リソーススケジューリングエージェント（６６０）とリソース処理エージェント（６８５）の少なくとも１つを含む、請求項６に記載の自動製造環境。
【請求項１２】
前記予防メンテナンスエージェント（６４０、６８０）が、ＰＭスケジューリングエージェント（６４０）とＰＭ処理エージェント（６８０）の少なくとも１つを含む、請求項６に記載の自動製造環境。
【請求項１３】
複数のロット開始エージェント（６０５、６１５）をさらに含む、請求項６に記載の自動製造環境。
【請求項１４】
自動製造環境であって、
複数のプロセスツール（１１５）、前記プロセスツール（１１５）に対する複数の予防メンテナンス／認定プロシージャ（３２０）、前記プロセスツール（１１５）によって用いられる複数のプロセスリソース（４２０）、及び前記プロセスツール（１１５）で処理するための複数のロット（１３０）を含む、複数の製造ドメインエンティティ（１１５、１３０、３２０、４２０）と、
コンピューティングシステムと、を有し、
前記コンピューティングシステムは、
前記予防メンテナンス／認定プロシージャ（３２０）、プロセスリソース（４２０）、および前記プロセスツール（１１５）上のロット（１３０）に対して活動をスケジューリングするための複数のスケジューリングエージェント（６１０）と、
前記スケジューリングされた活動を実行するための複数の処理エージェント（６２０）と、を含むものである、自動製造環境。
【請求項１５】
前記スケジューリングエージェント（６１０）と前記処理エージェント（６２０）の少なくとも１つが、対応付けられた前記エンティティの性質に従って特殊化される、請求項１４に記載の自動製造環境。
【請求項１６】
前記スケジューリングエージェント（６１０）が、
前記プロセスツール（１１５）での活動をスケジューリングするための機械スケジューリングエージェント（６５０）と、
前記プロセスツール（１１５）で処理するために前記ロット（１３０）をスケジューリングするためのロットスケジューリングエージェント（６３０）と、
プロセスツール（１１５）で予防メンテナンス／認定プロシージャ（３２０）をスケジューリングするための予防メンテナンススケジューリングエージェント（６４０）と、
前記プロセスツール（１１５）によって前記プロセスリソース（４２０）をスケジューリングするためのリソーススケジューリングエージェント（６６０）と、
の少なくとも１つを含む、請求項１４に記載の自動製造環境。
【請求項１７】
前記処理エージェント（６２０）が、
前記プロセスツール（１１５）でスケジューリングされた活動を実行するための機械処理エージェント（６９０）と、
前記プロセスツール（１１５）で前記ロット（１３０）を処理しやすいようにアクションを実行するためのロット処理エージェント（６７０）と、
前記プロセスツール（１１５）によって前記プロセスリソース（４２０）を使用しやすいようにアクションを実行するためのリソース処理エージェント（６８５）と、
前記プロセスツール（１１５）でスケジューリングされた予防メンテナンス／認定プロシージャ（３２０）を実行するための複数の予防メンテナンス処理エージェント（６８０）と、の少なくとも１つを含む、請求項１４に記載の自動製造環境。
【請求項１８】
前記ソフトウェアエージェント（２６５）が、ロット開始エージェント（６０２）を含む、請求項１４に記載の自動製造環境。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自動製造環境に関し、特に、自動製造環境におけるアクティブソフトウェアエージェントの特殊化に関する。
【背景技術】
【０００２】
高まる技術的要求と高度な電子デバイスの世界的規模での受け入れにより、大規模で複雑な集積回路に対する要求が、これまでにないほど高いものとなっている。半導体業界における競争で要求されていることは、可能な限り最も効率的な方法で、製品が設計、製造、および市販されることである。これには、エレクトロニクス業界における急速な改良に対応するように、製造技術の改良が要求される。これらの要求を満たすことで、材料および処理機器が多様に技術的に進歩し、集積回路デザイン数が著しく増大する。また、これらの改良には、デザインや製造だけでなく、製造プロセスのスケジューリング、制御、および自動化を支援するために、コンピューティングリソースおよび他の非常に高度な機器を効率的に利用することも要求される。
【０００３】
まず、製造に関して、集積回路、いわゆるマイクロチップは、典型的に、数マイクロメートルのサイズの多数の構造または特徴を含む最新の半導体デバイスから製造される。特徴は、半導体基板の局所化された領域に配置され、導電性、非導電性、または半導電性（すなわち、ドーパントで画定された領域において導電性になる）のものである。製造プロセスは、一般的に、一連の製造ツールを介して多数のウェハを処理することを伴う。各製造ツールは、以下にさらに詳細に記載する４つの基本動作のうちの１つ以上を実行する。４つの基本動作は、完成した半導体デバイスを最終的に生産するための全体的なプロセスに従って実行される。
【０００４】
集積回路は、半導体基板材料のウェハから製造される。デバイスを構成する集積された電気回路を作製するための製造中に、材料層が付加、除去、および／または処理される。製造は、本質的に、以下の４つの基本動作を含む。
・積層化、いわゆる、半導体が作られるウェハにさまざまな材料の薄層を付加する動作
・パターニング、いわゆる、付加した層の選択部分を除去する動作
・ドーピング、いわゆる、付加した層にある開口を介して、ウェハの選択部分に一定量のドーパントを配置する動作
・加熱処理、いわゆる、処理されたウェハに所望の効果を生じさせるように、材料を加熱および冷却する動作
基本動作は４つしかないが、特定の製造プロセスに応じて、数百の異なる方法で組み合わせることができる。例えば、Peter Van Zantによる「Microchip Fabrication A Practical Guide to Semiconductor Processing」(3d Ed,1997 McGraw-Hill Companies,Inc.)(ISBN 0-07-067250-4)を参照されたい。
【０００５】
しかしながら、半導体工場を制御することは、困難なタスクである。半導体工場（「ｆａｂ」）は、多数の部品、典型的に、４万枚以上のウェハ、および多数の部品の種類、典型的に、１００種類以上の部品が同時に製造されている複雑な環境である。各ウェハは、半導体工場内での移動中に、３００ステップを超える処理ステップを受けることがあり、その多くは、同じ機械を使用している。大きな工場では、このウェハ処理を実行するために、約５００台のコンピュータ制御された機械を備えていることがある。これらの工場の１つを通る材料のルーティング、スケジューリング、およびトラッキングは、コンピュータ化された工場制御システムの支援があったとしても、困難かつ複雑なタスクである。
【０００６】
半導体チップなどの製品を製造する施設を効率的に管理するには、製造プロセスのさまざまな態様を監視する必要がある。例えば、典型的に、手元にある原材料の量、未完成品（work-in-process）の状態、およびプロセス中のあらゆるステップでの機械およびツールの状態および利用可能性を追跡することが望ましい。１つの重要な決定は、任意の所与の時間に各機械を進行すべきロットを選択することである。また、製造プロセスにおけるほとんどの機械は、プロシージャの性能が製造プロセス自体の妨げにならないように、定期的な予防メンテナンス（「ＰＭ」：preventative maintenance）および機器認定（「Ｑｕａｌ」：equipment qualification）プロシージャとともに、定期的な実行が必須の他の診断および再調整プロシージャをスケジューリングすることが必要である。
【０００７】
この問題に対する１つのアプローチは、自動「製造実行システム」（「ＭＥＳ」：Manufacturing Execution System）を構築することである。自動ＭＥＳにより、ユーザは、制限された範囲で、製造環境にある機械およびツール、いわゆる「エンティティ」を見て操作することができる。さらに、ＭＥＳにより、製造プロセスを通るロットや未完成品を発送および追跡することができ、最も効率的な方法でリソースを管理することができるようになる。さらに詳しく言えば、ＭＥＳプロンプトに応答して、ユーザが、未完成品およびエンティティの状態に関する要求された情報を入力する。例えば、ユーザが特定のエンティティでＰＭを実行すると、メンテナンス技術者（「ＭＴ」：maintenance technician）が、ＰＭ（「イベント」）の性能をＭＥＳスクリーンに記録して、そのエンティティの状態に関してデータベースに格納された情報を更新する。この代わりとして、修理やメンテナンスのために、エンティティが停止されれば、ＭＴは、この情報をＭＥＳデータベースに記録し、その後、生産準備完了状態に戻るまで、エンティティの使用が防止される。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ＭＥＳシステムは、ロットおよび機械を追跡するには十分なものであるが、このようなシステムには、いくつかの欠陥があり、そのうち最も明らかなものとして、それらの受動的な性質、事前スケジューリングの欠如、高度に自動化された工場動作をサポート不能なことが挙げられる。現行のＭＥＳシステムは、工場の状態を監視し、正確な時間に活動を開始するために、製造の人員に依存するところが大きい。例えば、ウェハ製造技術者（「ＷＦＴ」：wafer fabrication technician）が適切なＭＥＳコマンドを発するまで、ロットの処理が始まらない。さらに、処理前に、ＷＦＴは、機械が利用可能な状態になると、ロットが機械で利用可能であるという十分な事前計画で、自動材料取扱いシステム（「ＡＭＨＳ」：automated material handling system）からロットを引き出すためのＭＥＳコマンドを発しなければならない。ＷＦＴがロットを十分に迅速に引き出さなければ、または最も早期に利用可能な時間での処理の始動を怠れば、機械がアイドリング状態になり、生産に悪影響を与える。
【０００９】
典型的な自動ＭＥＳにおけるこれらのタイプの欠陥は、製造プロセスの効率的な動作においてＷＦＴを重要視していることである。ＷＦＴは、多数の重要な機能を実行する。例えば、ＷＦＴは、注意力と時間が許せば、発送、輸送、および処理を開始する。ＷＦＴは、接近するロットを待機したり、ロットを処理する代わりに、ＰＭまたは認定プロシージャを実行したりするのとは対照的に、未完成バッチを走行させるかなどのスケジューリング決定を行う。ＷＦＴは、付加価値のないＭＥＳトランザクションを実行し、受動的な従来の工場制御システムを利用する。この文脈において、「受動的」という用語は、自動始動または自動起動とは対照的に、制御システムにおける活動が、ＷＦＴによって始動されなければならないことを意味する。
【００１０】
しかしながら、ＷＦＴが存在すると、何らかの非効率性が伴うことも避けられない。典型的に、最良のＷＦＴの遂行能力と最悪のＷＦＴの遂行能力との間には大きな差がある。ＷＦＴは、典型的に、複数のツールおよびロットの処理を同時に監視するため、個々のロットまたはツールに注力することが困難である。さらに、最新の製造プロセスフローの規模および複雑性では、ＷＦＴが、上流工程での活動から生じるボトルネックや不足を予測し防止することは極めて困難である。ＷＦＴに、シフト変更、休憩時間、および休暇を与えても、非効率性または機械のアイドリング時間が生じて、製造プロセスフローに悪影響を及ぼすことになる。自動ＭＥＳがないことでＷＦＴの重要性が高まるのと同様に、ＷＦＴの非効率性もＷＦＴの重要性によって高まる。
【００１１】
したがって、最近のウェハｆａｂで利用されている工場制御システムは、受動的なものであり、高度な自動化が可能ではない。これらのシステムは、工場の状態を監視し、一定の変化に継続的に対処し、迅速な論理的決定を下し、適時に工場制御活動を始動および調整するために、ウェハｆａｂ技術者および他の工場スタッフに非常に依存している。これらのウェハｆａｂ技術者は、工場制御システムで不足しているアクティブエレメントを与えるエージェントである。その結果、極めて競争の激しい半導体業界における工場の効率性が、これらの人的エージェントの利用可能性、生産性、技量および一貫性に非常に依存している。ウェハｆａｂ技術者は、ｆａｂのさまざまなベイに位置する多数のツールを監視し動作させなければならない。これらの技術者は、ツール、ベイ、材料取扱いシステム、およびさまざまな工場制御システムの間での多重伝送を強いられる。生産量が増加し、より複雑なプロセスが導入されるにつれ、スタッフを増員したり、システムの能力を上げたりする対応をとらなければ、高まる複雑性および量に対処することが困難である。ウェハｆａｂ技術者による上流工程および下流工程の動作の視認性、ツールの状態、未完成品およびリソースの利用可能性が制限される。
【００１２】
しかしながら、主要な論理的決定が、このように制限された古い情報に基づいていることが頻繁にあり、この情報は、工場制御システムによって部分的にのみ与えられる。ウェハｆａｂ技術者は、システムとの相互作用、工場のイベントと状態の変化の監視、およびＭＥＳロギングなどの他の付加価値のない機能の実行に膨大な時間を費やす。シフト変更を行うと、技術者が、要求された監視および調整を行うことが一時的に不能になるため、ｆａｂの動作が乱れてしまう。技術者の最善の努力にもかかわらず、ツールの稼働率が低下し、サイクル時間、在庫水準、工場の生産量、およびそれらの組合せを含む他の主要な工場の数的指標に悪影響を及ぼす。新しい３００ｍｍウェハｆａｂにおいて１２インチウェハを輸送するために、ベイ内での材料の取扱いが必要であるため、さらなる著しい複雑性が生じる。従来の工場制御システムは、このレベルの詳細なスケジューリングおよび実行制御を提供することができない。
【００１３】
本発明は、上述した問題の１つまたはすべてを解消し、または少なくとも軽減するためのものである。
【課題を解決するための手段】
【００１４】
本発明は、特殊化された自立型のアクティブソフトウェアエージェントを用いた自動処理環境を与えるための装置および方法を含む。ソフトウェアエージェントは、それらが対応付けられた（represented）エンティティの種類とそれらがプロセスフローで実行する機能とによって特殊化される。装置は、複数の製造ドメインエンティティと、製造ドメインエンティティの第２のサブセットによって供給されたプロセスリソースを消費するために、製造ドメインエンティティの第１のサブセットをスケジューリングするための複数のこのようなソフトウェアエージェントとを含むプロセスフローを含む。この方法は、このようなソフトウェアエージェントをインスタンス化することと、その後、それらをプログラミングされたように動作させることとを含む。
【００１５】
本発明は、添付の図面と組み合わせた以下の記載を参照することによって理解されてよく、図面において、参照番号が同様の要素は、それぞれ同様の要素を示す。
【００１６】
本発明は、さまざまな修正および別の形態が可能なものであるが、その具体的な実施形態が、例示的に図面に示され、本願明細書に記載される。しかしながら、本願明細書における具体的な実施形態の記載は、本発明を開示された特定の形態に限定することを意図したものではなく、むしろ、添付の特許請求の範囲内にあるすべての修正、均等物、および代替物に及ぶことが想定されていることを理解されたい。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の例示的な実施形態について記載する。明確にするために、本願明細書において、実際の実施例のすべての特徴が記載されているわけではない。言うまでもなく、このような実際の実施形態を開発するにあたって、システム関連の制約やビジネス関連の制約を踏まえるなど、実施例ごとにさまざまな判断を下して開発者らの意図する目的を達成していく必要があり、これは実施例によって異なることは認識されよう。さらに、このような開発作業は、複雑かつ時間を要するものであっても、本願の開示内容を利用できる当業者らにとっては日常業務の一環であることも認識されよう。
【００１８】
図１は、本発明に従って構成され動作するプロセスフロー１００の１つの特定の実施形態の一部分を概念的に示す。プロセスフロー１００は、半導体デバイスを作製する。しかしながら、本発明は、他のタイプの製造プロセスに適用されてよい。したがって、上述したプロセスフロー１００において、ウェハ１３５のロット１３０を、より一般的に、「ワークピース」と呼ぶことがある。プロセスツール１１５およびそこで実行される任意のプロセス動作は、すべての実施形態において、半導体デバイスの製造に必ずしも関連するものである必要はない。しかしながら、明確にするために、さらに、本発明をさらに理解するために、例示した実施形態の文脈において本発明を開示するさいに、半導体製造に関する用語を用いることにする。したがって、「ロット」という用語は、広義に解釈されるべきものであり、製造プロセスにおいて処理されてよい任意のワークピースを意味する。
【００１９】
プロセスフロー１００の例示した部分は、２つのステーション１０５を含み、各ステーション１０５は、プロセスツール１１５と通信するコンピューティングデバイス１１０を含む。ステーション１０５は、通信リンク１２０上で互いに通信しあう。例示した実施形態において、コンピューティングデバイス１１０および通信リンク１２０は、より大型のコンピューティングシステムの一部分、例えば、ネットワーク１２５を含む。図１に、最終的に集積回路になるウェハ１３５のロット１３０を処理するプロセスツール１１５が示されている。
【００２０】
図２は、本発明に従ってプログラミングされ動作するコンピューティングデバイス１１０のハードウェアおよびソフトウェアアーキテクチャの選択部分をそれぞれ示す。ハードウェアおよびソフトウェアアーキテクチャのいくつかの態様（例えば、個々のカード、基本入出力システム（「ＢＩＯＳ」）、入出力ドライバなど）は示されていない。これらの態様は、明確にするために、さらに、本発明を不明瞭にしないように省略されている。しかしながら、本願の開示内容を利用できる当業者らによって認識されるように、コンピューティングデバイス１１０のソフトウェアおよびハードウェアアーキテクチャは、このような多数の通常の特徴を含むであろう。
【００２１】
例示した実施形態において、コンピューティングデバイス１１０は、ＵＮＩＸ系オペレーティングシステムを用いたワークステーションであるが、本発明は、そのように制限されるものではない。コンピューティングデバイス１１０は、ラップトップコンピュータ、デスクトップコンピュータ、小型コンピュータ、メインフレームコンピュータ、またはスーパーコンピュータなど、実質的に任意のタイプの電子コンピューティングデバイスで与えられてよい。コンピューティングデバイス１１０は、いくつかの別の実施形態において、プロセスツール１１５に組み込まれたプロセッサまたはコントローラであってもよい。また、本発明は、ＵＮＩＸ系オペレーティングシステムに限定されるものではない。別のオペレーティングシステム（例えば、ＷｉｎｄｏｗＴＭ系、ＬｉｎｕｘＴＭ系、またはディスクオペレーティングシステム（「ＤＯＳ」）系）が用いられてもよい。本発明は、コンピューティングデバイス１１０の特定の実施例によって制限されるものではない。
【００２２】
また、コンピューティングデバイス１１０は、バスシステム２１５上で何らかのストレージ２１０と通信するプロセッサ２０５を含む。ストレージ２１０は、典型的に、少なくとも１つのハードディスクと、何らかのランダムアクセスメモリ（「ＲＡＭ」）とを含む。また、コンピューティングデバイス１１０は、いくつかの実施形態において、光ディスク２３０やフロッピー電磁ディスク２３５などの取外し可能なストレージや、磁気テープやジップディスク（図示せず）などの何らかの他の形態を含んでもよい。プロセッサ２０５は、当業者に公知の任意の適切なプロセッサであってよい。例えば、プロセッサは、汎用マイクロプロセッサまたはディジタル信号プロセッサ（「ＤＳＰ」）であってよい。例示した実施形態において、プロセッサ２０５は、アドバンスト・マイクロ・デバイシズ・インコーポレイテッド（Ａｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅｓ，Ｉｎｃ．）（「ＡＭＤ」）から市販されているＡｎｔｈｌｏｎＴＭプロセッサであるが、本発明は、このように限定されるものではない。サン・マイクロシステムズ（Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ）からの６４ビットＵｌｔｒａＳＰＡＲＣＴＭまたは３２ビットｍｉｃｒｏＳＰＡＲＣＴＭ、インテル・コーポレーションからのＩｔａｎｉｕｍＴＭ、ＰｅｎｔｉｕｍＴＭ、またはＡｌｐｈａＴＭクラスのプロセッサの任意のものが、代わりに用いられてよい。コンピューティングデバイス１１０は、モニタ２４０と、キーボード２４５と、マウス２５０とを含み、これらすべてが、それらに関連付けられたユーザインタフェースソフトウェア２５５（図２に図示）とともに、ユーザインタフェース２６０を構成する。ユーザインタフェースは、例示した実施形態において、グラフィカルユーザインタフェース（「ＧＵＩ」）であるが、これは、本発明の実施に必要なものではない。
【００２３】
図２は、コンピューティングデバイス１１０のソフトウェアアーキテクチャの選択部分を示す。各コンピューティングデバイス１１０は、例示した実施形態において、ストレージ２１０にソフトウェアエージェント２６５を含む。ソフトウェアエージェント２６５が、コンピューティングデバイス１１０ではなく、プロセスフロー１００の適所に存在してもよいことに留意されたい。ソフトウェアエージェント２６５の位置は、本発明の実施に重要なものではない。ソフトウェアエージェント２６５の位置が重要なものではないため、コンピューティングデバイス１１０に存在するソフトウェアエージェント２６５が複数あるものもあれば、まったくないコンピューティングデバイス１１０もあってよいことに留意されたい。少なくとも１つのコンピューティングデバイス１１０に、ＷＯＲＫＳＴＲＥＡＭＴＭなどの自動ＭＥＳ２７０の部分が存在する。
【００２４】
図１に再度戻ると、上述したように、コンピューティングデバイス１１０は、通信リンク１２０上の接続によって、より大型のコンピューティングシステム１２５の一部であってもよい。このような実施例における例示的なコンピューティングシステムは、ローカルエリアネットワーク（「ＬＡＮ」）、ワイドエリアネットワーク（「ＷＡＮ」）、システムエリアネットワーク（「ＳＡＮ」）、イントラネット、またはインターネットを含むものであってよい。コンピューティングシステム１２５は、ネットワーク化されたクライアント／サーバアーキテクチャを用いるが、別の実施形態が、ピアツーピアまたは他のタイプのアーキテクチャを用いてもよい。このように、いくつかの別の実施形態において、コンピューティングデバイス１１０は、互いに直接通信してよい。通信リンク１２０は、ワイヤレス、同軸ケーブル、光ファイバ、またはツイストペアワイヤリンクであってよい。コンピューティングシステム１２５を用いる実施形態の場合、このシステムと、通信リンク１２０とは、実装固有のものとなり、当業者に公知の任意の適切な方法で実装されてよい。コンピューティングシステム１２５は、当業者に公知の任意の適切な通信プロトコル、例えば、伝送制御プロトコル／インターネットプロトコル（「ＴＣＰ／ＩＰ」）を用いてよい。
【００２５】
以下、図１および図２の両方を参照すると、ソフトウェアエージェント２６５は、集合的に、製造プロセスを通るウェハ１３５のロット１３０を効率的にスケジューリングおよび制御する役割を果たす。各プロセスツール１１５は、この目的に合わせて用いられてよい何らかのリソースを表す。例えば、プロセスツール１１５は、ウェハ１３５の何らかの部分を作製するため、すなわち、ウェハ１３５を層状化、パターニング、ドープ、または加熱処理するために使用される製造ツールであってよい。または、プロセスツール１１５は、プロセスフロー１００のさまざまな部品の性能を評価するために使用される測定ツールであってもよい。このように、ソフトウェアエージェント２６５は、ウェハ１３５のロット１３０を順次処理するための複数のリソースを評価し、プロセスツール１１５によって対応付けられたリソースを割り当て、それらの中でウェハ１３５のロット１３０を順次処理するためのリソースを割り当てるように交渉することが可能である。
【００２６】
例示した実施形態において、ソフトウェアエージェント２６５は、起動時に自己設定型、インテリジェント、状態感知のものであり、自動的に挙動を始動させるための特別な目的が組み込まれている。また、ソフトウェアエージェント２６５は、環境の変化に合わせて、自己調節するものである。ソフトウェアエージェント２６５は、例示した実施形態において、オブジェクト指向プログラミング（「ＯＯＰ」）環境のオブジェクトとして与えられるが、本発明は、オブジェクト指向ではない技術を用いて与えられてもよい。それらの挙動は、比較的単純であり、スクリプトとプロパティによって部分的に構成可能である。挙動は、指定されたロットの達成、再定義されたレベルの品質の達成、機械の利用性の最大化、および便宜的な予防メンテナンスのスケジューリングなどの選択された目的を達成するように意図される。これらの目的を達成しやすいようにするために、ソフトウェアエージェント２６５は、ＭＥＳ２７０と連係し、既存の工場制御システム（図示せず）に統合される。本願の開示内容を利用できる当業者らに明らかなように、このように連係させ統合化させる方法は、ＭＥＳ２７０および工場制御システムのアイデンティティに応じて、実装固有のものになるであろう。
【００２７】
集合的に、ソフトウェアエージェント２６５は、以下にさらに詳細に記載するように、各ロット１３０に対して、搬送および要求されたリソースを含む、特定の能力を備えたプロセスツール１１５で１つ以上の動作を予めスケジューリングする。これは、接近するロット１３０を待機することとは対照的に、未完成のバッチを走行させること、および仕様に対応するように、便宜的な予防メンテナンスまたは認定をスケジューリングすることなど、最適な判断を行うことを含む。ソフトウェアエージェント２６５は、ロットの搬送および処理などの活動をスケジューリングおよび始動し、ＭＥＳトランザクションを実行し、処理および搬送を監視し、スケジューリングされていない活動やスケジューリングされた活動からの狂いに対応する。さらに詳しく言えば、ソフトウェアエージェント２６５は、例えば、以下のことを行ってよい。
・特定のツール１１５で次の処理の予約に間に合うように、ロット１３０に要求された材料の搬送の実行をスケジューリングおよび始動する
・搬送活動を監視し、狂いに対応する
・特定の約束開始時間までに予約済みの機械ポートへの搬送をスケジューリングおよび始動する
・自動識別および機器イベントを介して機械ポートキャリアの到着を検出する
・機器インタフェースを介してプロセスツール１１５へのレシピのダウンロードおよび処理を始動する
・ＭＥＳトランザクションを実行する
・処理活動を監視し、異常のＷＦＴを通知する
・機器イベントを介して処理が完了間近であることを検出し、認定されたプロセスツール１１５でプロセスフローの次のプロセスの処理予約をスケジューリングする
・最も近い位置にあるストッカーまたは最寄りのプロセスツール１１５への搬送を始動する
・キャリアの出発を検出し、ポートを解放する
・予備メンテナンスプロシージャをスケジューリングし、適切な時間にメンテナンス技術者（「ＭＴ」）に通知する
・認定プロシージャをスケジューリングし、適切な時間にＷＦＴに通知する
・処理またはＰＭまたはＱｕａｌを実行するようにリソース（例えば、レチクル、ローダ、アンローダなど）をスケジューリングする
実施レベルに応じて、与えられた実施形態が、これらの機能の任意またはすべて、または上記に挙げられていない機能を実行してよいことに留意されたい。
【００２８】
以下にさらに説明するように、ソフトウェアエージェント２６５は、この挙動を促進させるために、いくつかの異なるレベルで特殊化される。１つのレベルは、「タイプ」別であり、すなわち、ソフトウェアエージェント２６５が、プロセスフロー１００において、「消費者」であるか、サービス「提供者」であるかというものである。さらに詳しく言えば、ソフトウェアエージェント２６５が消費者であるか提供者であるかは、それが対応付けられたエンティティのタイプと、その対応付けが行われる状況とによって決定される。例えば、ソフトウェアエージェント２６５が、ウェハ１３５のロット１３０（すなわち、「ロットエージェント」）プロセスツール１１５（すなわち、「機械エージェント」）、プロセスリソース（すなわち、「リソースエージェント」）、またはＰＭもしくはＱｕａｌ（すなわち、「ＰＭエージェント」）であってよい。以下にさらに詳細に記載するように、ある状況においては消費者であり、他の状況においては提供者である製造ドメインエンティティとなるソフトウェアエージェント２６５があることに留意されたい。また、ソフトウェアエージェント２６５は、機能別、すなわち、プロセスフローにおいてソフトウェアエージェント２６５が実行する機能別に特殊化される。各々の特殊化されたソフトウェアエージェント２６５は、この実施形態が実行されるプロセスフロー１００の全体的性能において異なる役割に従事する。
【００２９】
ソフトウェアエージェント２６５が、必ずしも、ロット１３０、プロセスツール１１５などの製造ドメインエンティティと１対１で対応させて存在する必要はないということに留意されたい。その代わり、ほとんどのドメインエンティティは、それぞれエージェントグループによって対応付けられる。例えば、以下にさらに詳細に記載するように、ロット１３０またはプロセスツール１１５は、「スケジューリング」エージェントと、「処理」エージェントの両方を有するものであってよい。これにより、ドメインエンティティの機能性の１つの態様を支援するための特殊化された挙動を示す特殊化されたオブジェクトをデザインしやすくなる。
【００３０】
以下、図３Ａを参照すると、一般的な意味で、ソフトウェアエージェント２６５は、例示的なプロセスフロー３００において、典型的に、「消費者エージェント」３０５と、「提供者エージェント」３１０として分類できる。消費者エージェント３０５は、プロセスフロー１００を通るロット１３０を適時に効率的な方法で前進させることや、許容可能なウィンドウ内でＰＭまたはＱｕａｌプロシージャを実行することのそれぞれへの、消費者３１５、例えば、ロット１３０またはＰＭプロシージャ３２０の関心を表す。提供者エージェント３１０は、プロセスフロー１００を通るロット１３０を適時に効率的な方法で前進させるさいにリソースを処理するための消費者の需要を満たすことへの、プロバイダ３２５、例えば、プロセスツール１１５の関心を表す。例えば、ウェハ１３５のロット１３０に対応付けられたソフトウェアエージェント２６５が、「消費者」エージェント３０５と見なされ、プロセスツール１１５の対応付けられたソフトウェアエージェント２６５が、「提供者」エージェントと見なされてよく、これは、プロセスツール１１５が、ロット１３０によって「消費される」処理サービスを「提供する」ためである。前述したように、また、以下にさらに詳細に記載するように、ソフトウェアエージェント２６５が、ある状況下では提供者エージェント３１０として分類され、別の状況下では消費者エージェント３０５として分類される場合もあることに留意されたい。
【００３１】
上述したように、消費者エージェント３０５と提供者エージェント３１０との間の区別は、特に、スケジューリングと関連する傾向にある。ソフトウェアエージェント２６５によって始動される活動のスケジューリングは、例示した実施形態において、処理に関連する予算、コスト、および比率を中心に展開する。さらに詳しく言えば、リソースを割り当てるためのコントラクトネットネゴシエーションプロトコルの実行を促進させるためには、流動市場モデルアプローチをとるように、予算、コスト、および比率の組合せが用いられる。この組合せは、「望ましい」挙動、例えば、期日に間に合うこと、機械を効率的に利用することなどを助長するように構造化される。さらに詳しく言えば、消費者エージェント３０５が提供者３２５の処理サービスを得るために使用する「予算」が、消費者３１５に割り当てられる。同様に、提供者３２５は、対応付けられた処理サービス、例えば、処理時間に対して、消費者３１５に請求する。消費者３１５が支払う意志のある予算の量は、どのくらいの程度著しく消費者３１５が処理リソースにスケジュールを続行させる必要があるかに応じ、提供者３２５によって請求される量は、どのくらいの程度著しく提供者がスケジュールを満たすことを必要とするかに応じる。本願明細書に例示した実施形態において、予算とコストはドル表示であるが、これは、本発明の実施に必要なものではない。度量の単位は、他のものが使用されてよい。
【００３２】
以下、図３Ｂを参照すると、１つの方法３３０が例示されている。方法３３０は、さまざまな実施形態および実施例において実施されてよく、以下、そのうちの特定の１つが開示される。消費者ソフトウェアエージェント３０５および提供者ソフトウェアエージェント３１０は、消費者３１５を提供者３２５にスケジューリングするための「コントラクトネットネゴシエーションプロトコル」アプローチを用いる。消費者エージェント３０５は、提供者３２５のサービスへの消費者３１５のアクセスを求めて、提供者エージェント３１０と交渉する。このアクセスを「予約」と呼ぶ。この特定の実施形態において、消費者エージェント３０５と提供者エージェント３１０の両方は、それぞれのカレンダーに予約を「入れる」。
【００３３】
方法３３０は、ボックス３３５に示すように、特定のプロセスリソース、例えば、次に消費したいプロセスツール２１５でのプロセス時間に対して消費者３１５に予算を与えることで開始される。次いで、ボックス３４０に示すように、消費者３１５は、消費者ソフトウェアエージェント３０５を介して、消費者３１５がプロセスリソースを獲得するためのビッドリクエストを発行する。１つの実行例において、消費者ソフトウェアエージェント３０５は、消費者３１５の代わりに、資格を有するすべての提供者３１０からのビッドを要求する。消費者ソフトウェアエージェント３０５は、ビッドを要求すると、消費者の識別、搬送を開始するための最短時間、スケジューリングされる処理動作、消費者３１５が許容可能な最長完了時間、消費者３１５が提供者３１０に搬送されるさいの元位置、消費者の「予算計算器」などの関連情報を提供者３１０に与える。
【００３４】
次いで、ボックス３４５に示すように、提供者３２５は、提供者ソフトウェアエージェント３１０を介して、ビッドリクエストに応答して、消費者３１５に少なくとも１つのビッドをサブミットする。別の実施形態において、提供者ソフトウェアエージェント３１０は、何らビッドをサブミットしなくてもよい。上述したように、提供者ソフトウェアエージェントは、予約を追跡するために、カレンダー３２７を維持する。ビッドリクエストが受信されると、提供者ソフトウェアエージェント３１０は、提供者３０５が要求されたサービスを潜在的に提供できるタイムスロットの間、カレンダー３２７を検索する。各々の潜在的なタイムスロットに対して、提供者３０５は、開始時間および終了時間と、オプションのコストとからなるビッドをサブミットする。
【００３５】
次いで、消費者３１５は、消費者ソフトウェアエージェント３０５を介して、時間とオプションのコストを考慮して、サブミットされたビッドを選択する。次いで、ボックス３５５に示すように、消費者３１５は、消費者ソフトウェアエージェント３０５を介して、選択されたビッドに対する提供者３２５にコントラクトを授与する。しかしながら、提供者３２５は、典型的に、いくつかの消費者３１５と継続的に交渉している。提供者３２５が、コントラクトを受け入れることができないように、サブミットされたビッドと対立する方法で、別の消費者３１５を引き続きスケジューリングすることが可能である。したがって、提供者３２５は、提供者ソフトウェアエージェント３１０を介して、さらにビッドを与えることができるか、コントラクトを受け入れることができるかを確認するために、カレンダー３２７をチェックする。カレンダー３２７でビッドが依然として実現可能であれば、ボックス３６０に示すように、提供者３２５は、与えられたコントラクトを確認し、消費者および提供者の両方は、それぞれのカレンダー３２３、３２７上の予約３６２をスケジューリングする。「予約」３６２は、提供者３２５が活動を実行する義務を自らに課す時間期間である。
【００３６】
プロセスフロー３００における意思決定は、需要と供給の経済力によって誘導される。さらに詳しく言えば、消費者ソフトウェアエージェント３０５は、優先順位や待ち時間などの選択された要因に応じて、ある程度積極的にサービスを獲得するように意図される。提供者ソフトウェアエージェント３１０は、カレンダーにおける利用レベルなどの多数の要因に応じて、ある程度積極的にこのようなサービスを提供するように意図される。これらの決定が、決定が基づく予算およびコストに影響する構成可能なプロパティまたは曲線を介して外的に操作可能であることに留意されたい。このように共同して働くことで、消費者および提供者ソフトウェアエージェント３０５、３１０は協働して、適時に効率的な方法で消費者３０５を満足させる。
【００３７】
図４は、図２のソフトウェアエージェント２６５が全３つのレベルの特殊化を実施する半導体製造プロセスフロー４００の一部分を示す。さらに詳しく言えば、プロセスフロー４００は、
・スケジューリング目的でプロセスツールのＰＭおよびＱｕａｌプロシージャに対応付けられた消費者ソフトウェアエージェントである、ＰＭスケジューリングエージェント（「ＰＭＳＡ」：PM scheduling agent）４１８と、
・スケジューリング目的でロット１３０に対応付けられた消費者ソフトウェアエージェントである、ロットスケジューリングエージェント（「ＬＳＡ」：lot schedugling agent）４０５と、
・スケジューリング目的でプロセスツール１１５に対応付けられ、動作している状況に応じて、消費者および提供者ソフトウェアエージェントの両方である、機械スケジューリングエージェント（「ＭＳＡ」：machine scheduling agent）４１０と、
・スケジューリング目的でレチクル４２０に対応付けられた提供者ソフトウェアエージェントである、リソーススケジューリングエージェント（「ＲＳＡ」：resource scheduling agent）４１５と、を含む。図示していないが、ロット１３０、プロセスツール１１５、ＰＭまたはＱｕａｌプロシージャ（図示せず）、およびレチクル４２０はすべて、スケジューリングエージェント４０５、４１０、４１５、４１８が、活動を実行する時間になったときに制御を渡す対応する「処理」エージェントを有する。ＲＳＡ４１５が、他のタイプのプロセスリソース、例えば、ダミーウェハ、空のカセット、ＷＦＴ、ＭＴなどに対応付けられた可能性があることに留意されたい。プロセスフロー４００は、図３Ａおよび図３Ｂに対して上述したコントラクトネットネゴシエーションプロトコルに対して流動市場モデルアプローチを実施する。ＬＳＡ４０５は、スケジュールどおりに、コストを最小限に抑えるように努める。ＭＳＡ４１０は、利益を最大限にしながら、ツールの利用性を最適化するように努める。
【００３８】
ＬＳＡ４０５は、それが対応付けられたロット１３０をスケジュールどおりに維持するように努める。ＭＳＡ４１０は、それが対応付けられたプロセスツール１１５の利用性を最大限にするように努める。同様に、ＲＳＡ４１５は、それが対応付けられたリソース、すなわち、レチクル４２０の利用性を最大限にするように努める。ＲＳＡ４１５が、他の実施例において、他のタイプのリソース、例えば、機械ローディングリソース、ダミーウェハ、カセット、ウェハｆａｂ技術者、メンテナンス技術者などに対応付けられた可能性があることに留意されたい。ＰＭＳＡ４１８は、ＰＭおよびＱｕａｌ、特に、プロセスツール１１５を便宜的にスケジューリングすることを試みる。さまざまなエージェント４０５、４１０、４１５、および４１８がこれを行うのは、間に合わせる必要があるか、または維持したいスケジュールに従って、サービスに対して支払うための提供する価格や予算を調節することによって、処理リソースの消費の予約を交渉する状況においてである。
【００３９】
さらに詳しく言えば、ロット１３０は、典型的に、機器の多数の部品、例えば、プロセスツール１１５と交渉する。ＬＳＡ４０５は、ロット１３０が期日に間に合うことができるようにし、適切な時間に次のボトルネックの機械ステーションを与えるプロセスツールによって与えられるタイムスロットを見つけるように努める。同時に、ＭＳＡ４１０は、プロセスツール１１５の利用性を最適化するように処理するためにロット１３０を獲得することに努める。概して、ＭＳＡ４１０の目標は、それぞれのプロセスツール１１５の全体的な利用性を最大限にすることと、ロット１３０の相対的なプライオリティを考慮することと、セットアップまたはレシピの変更を減らすことと、そのバッチサイズを最適化することである。このようにエージェントの相互作用の共同により、特定の時間ウィンドウ内において特定のプロセスツール１１５で、ロット１３０がスケジューリングされる。
【００４０】
概括的に言えば、ＬＳＡ４０５は、所望の製造動作を実行可能なプロセスツール１１５に対応付けられたＭＳＡ４１０のすべてに「リクエストビッド」メッセージ４２５を発行することによって、交渉を開始する。この点で、ＭＳＡ４１０は、プロセスツール１１５が処理サービス、すなわち、処理時間を提供しているため、提供者としての役目をしている。各々の能力のあるプロセスツール１１５に対するＭＳＡ４１０は、リクエストビッドメッセージ４２５を受信すると、潜在的なビッドを識別し、ジョブを実行するために有資格のレチクル４２０を必要とすることを認識し、すべての能力のあるリソース、すなわち、有資格のレチクル４２０のＲＳＡ４１５に、独自のリクエストビッドメッセージ４３０を発行する。ここで、プロセスツール１１５が、プロセスサービス、すなわち、時間をレチクル４２０とともに消費しているため、ＭＳＡ４１０は、この時点での提供者から消費者へ移行する。有資格のレチクル４２０に対応付けられた各ＲＳＡ４１５は、１つ以上のビッド４３５をサブミットし、ＭＳＡ４１０は、そのビッド４６０に含むためにそのうちの１つを選択する。必要なリソースを識別したＭＳＡ４１０は、処理サービスの提供者としての役割に戻る。別の潜在的なビッドが、ＭＳＡ４１０によって識別されると、適切なＲＳＡ４１５から再度ビッドを要求する。
【００４１】
能力のあるプロセスツール１１５に対応付けられた各ＭＳＡ４１０は、リクエストビッドメッセージ４２５を発行したＬＳＡ４０５に、１つ以上のビッド４６０をサブミットする。ＬＳＡ４０５は、すべてのＭＳＡ４１０のすべてのサブミットされたビッド４６０の中から、１つのビッド４６０を選択する。次いで、ＬＳＡ４０５は、選択されたビッド４６０をサブミットするＭＳＡ４１０へ、コントラクト４６５を授与する。ＭＳＡ４１０は、機械カレンダー４７０をチェックし、ビッドがまだ利用可能であることを決定し、利用可能であれば、選択されたビッド４３５をサブミットしたレチクル４２０へコントラクト４４０を授与する。ＲＳＡ４１５は、リソースカレンダー４４５をチェックし、ビッドがまだ利用可能であるかを確認し、独自のリソースカレンダー４４５上で予約４７５ａをスケジューリングする。次いで、ＲＳＡ４１５は、「確認ビッド」メッセージ４４５でコントラクトを確認し、ＭＳＡ４１０は、「リソース」ビッド４３５を提供したＲＳＡ４１５を参照して、機械カレンダー４７０上で予約４７５ｂをスケジューリングする。次いで、ＭＳＡ４１０は、「確認されたビッド」メッセージ４８０をＬＳＡ４０５に送信する。次いで、ＬＳＡ４０５は、独自のロットカレンダー４８５上で対応する予約４７５ｃをスケジューリングする。予約４７５ａ、４７５ｂ、４７５ｃが実行される時間になると、スケジューリングエージェント４０５、４１０、４１５は、それぞれの処理エージェント（図示せず）に制御を渡す。
【００４２】
このように、同じタイプのエージェントは、一般に同様の挙動でプログラミングされるが、特殊化されたエージェントを作り出すためには、区別が行われる。上記記載におけるＭＳＡ４１０の挙動とＬＳＡ４０５およびＲＳＡ４１５とを比較すると、このような区別は容易に明らかである。しかしながら、例示した実施形態において、同様に、より微細な区別が存在する。例えば、プロセスツール１１５には多くのタイプがあり、プロセスツール１１５の各タイプは、それぞれのソフトウェアエージェント２６５が特殊化を必要とすることがあるさまざまな特徴を備える。例示した実施形態において、機械エージェントにおける特殊化に役立つであろう例示的な特徴は、
・プロセスツール１１５が、ウェハ別、ロット１３０別、ロット１３０のバッチ別、またはウェハのバッチ別に処理するかどうかということと、
・プロセスツール１１５が、順次（すなわち、第２ユニットの処理開始前には、第１のユニットの処理が完了）、または連続的（「カスケード式」、すなわち、第１のユニットの処理完了前に第２のユニットの処理が開始可能）にウェハ、ロット１３０、またはバッチを処理するかどうかということと、
・プロセスツール１１５のポート数と、
・プロセスツール１１５のポートが、入力であるか、出力であるか、または入出力であるかということと、
・プロセスツール１１５に対するチャンバが、直列または並列に使用されているかどうかということと、
・プロセスツール１１５が、ＰＭを連鎖できるかどうかということと、
・プロセスツール１１５におけるチャンバの数と、
・プロセスツール１１５が、内部ストレージを含むかどうかということと、
・プロセスツール１１５が、別のロット１３０またはバッチを処理しながら、ロット１３０の処理を待ち行列に入れることができるかどうかということと、
・プロセスツール１１５が、ローディングおよび／またはアンローディングを要求するかどうかということと、
・プロセスツール１１５が、リソースを要求するかどうか、さらに、要求すれば、それらのリソースが、専用のリソースであるか、または共有のリソースであるかどうかということと、
を含む。しかしながら、機械エージェント、または任意のソフトウェアエージェント２６５が特殊化される要因が、高度に実装固有のものであることに留意されたい。
【００４３】
例えば、機械エージェントが、ウェハ別、ロット別、バッチ別などを処理するかどうかによって特殊化される実施例について考慮する。１つの特定の実施形態において、以下の機械エージェントが用いられる。
・ベースライン処理エージェント
・ウェハベースの処理エージェント
・ウェハベースの連続処理エージェント
・ウェハベースのバッチ連続処理エージェント
・ウェハベースのバッチ処理エージェント
・ロットベースの処理エージェント
・ロットベースの連続処理エージェント
・ロットベースのバッチ処理エージェント
・ロットベースのバッチ連続処理エージェント
・ベースラインスケジューリングエージェント
・ウェハベースのスケジューリングエージェント
・ウェハベースの連続スケジューリングエージェント
・ウェハベースのバッチ連続スケジューリングエージェント
・ウェハベースのバッチスケジューリングエージェント
・ロットベースのスケジューリングエージェント
・ロットベースの連続スケジューリングエージェント
・ロットベースのバッチスケジューリングエージェント
・ロットベースのバッチ連続スケジューリングエージェント
この特定の実施形態は、オブジェクト指向プログラミング技術を用いてエージェントを与え、ベースラインエージェントは、クラス定義を提供し、他のエージェントは、そのクラスのサブクラスである。また、カレンダー、例えば、図３Ａのカレンダー３２７は、それらが関連付けられた機械のように特殊化されてもよい。したがって、直前に記載した実施形態において、以下の特殊化されたカレンダーが使用される。
・ウェハベースの連続カレンダー
・ウェハベースの順次カレンダー
・ウェハベースの順次バッチカレンダー
・ウェハベースのバッチ連続カレンダー
・ロットベースの順次カレンダー
・ロットベースの連続カレンダー
・ロットベースの順次バッチカレンダー
・ロットベースのバッチ連続カレンダー
しかしながら、これは、本発明の実施に必要なものではないことに留意されたい。
【００４４】
また、他のエージェント特殊化が用いられてもよい。ＰＭエージェントは、それらが実行するメンテナンスプロシージャが時間、処理されるウェハ、処理されるロット、処理されるバッチ、処理時間、イベントの発生などに基づいているかどうかによって特殊化されてよい。１つの特定の実施形態において、以下の特殊化されたＰＭエージェントが用いられる。
・ウェハベースのＰＭスケジューリングエージェント
・時間ベースのＰＭスケジューリングエージェント
・処理単位ベース（例えば、処理されるロット１３０の数、処理されるバッチの数）のＰＭスケジューリングエージェント
・処理時間ベース（例えば、累積処理時間）のＰＭスケジューリングエージェント
・イベントベースのＰＭスケジューリングエージェント（例えば、処理イベントの終わり）
・ウェハベースのＰＭ処理エージェント
・時間ベースのＰＭ処理エージェント
・処理単位ベース（例えば、処理されるロット１３０の数、処理されるバッチの数）のＰＭ処理エージェント
・処理時間ベース（例えば、累積処理時間）のＰＭ処理エージェント
・イベントベースのＰＭ処理エージェント（例えば、処理イベントの終わり）
各ＰＭスケジューリングエージェントは、異なるタイプのＰＭにより、固有の挙動を含む。例えば、時間ベースのＰＭスケジューリングエージェントは、時間（例えば、３０日ＰＭ）ベースにＰＭをスケジューリングする。時間ベースのＰＭスケジューリングエージェントは、ＰＭの最後の発生に３０日を追加することによって、ＰＭが期日になる時間を決定する。他方で、イベントベースのＰＭスケジューリングエージェントは、異なるように挙動する。イベントベースのＰＭスケジューリングエージェントは、ツール（例えば、エンドエッチＰＭ）で生じるイベントベースでＰＭをスケジューリングする。イベントベースのＰＭスケジューリングエージェントは、エンドエッチイベントが生じたことを検出すると、該当する特定のプロセスツール１１５でＰＭをスケジューリングする。
【００４５】
ＬＳＡは、
・プライオリティ
・製品
・製品群
などの理由で特殊化できる。したがって、ＬＳＡは、ロットのプライオリティ、製品、または製品群をベースにビッドを選択するさいに、異なる挙動を有することがある。例えば、より高いプライオリティのロットが、処理可能な時間をベースにビッドを選択するのに対して、より低いプライオリティのロットは、コストをベースにビッドを選択するであろう。また、ロットが、ロットの製品群をベースに異なるように挙動することもある。一例として、フラッシュプロセッサロットとマイクロプロセッサロットとを考慮する。フラッシュプロセッサが、可能な限り迅速にプロセスフローを通過する挙動を有することがある。この場合、ロットは、時間ベースでビッドを選択するであろう。他方で、マイクロプロセッサが、反対の挙動を有することがあり、コストをベースにビッドを選択することになる。
【００４６】
リソースエージェントは、同様に、スケジューリングまたは処理エージェントとして、専用リソース（例えば、ローディングリソース）に対応付けられたか、または共有リソース（例えば、ＷＦＴ、レチクル、ダミーウェハ、または空のキャリア）に対応付けられたかによって、およびそれらが対応付けられた特定のタイプのリソースによって特殊化されてよい。別の実施形態において、さらなる他の特殊化が用いられてよい。
【００４７】
例示した実施形態が例示されたＯＯＰ環境は、このタイプの特殊化に非常に適している。当業者に認識されるように、ＯＯＰ環境は、多数のソフトウェア実行されるオブジェクトを含み、そのうちの各々は、オブジェクトタイプ、またはオブジェクトクラスに属する。例示した実施形態において、処理エージェントおよびスケジューリングエージェントは、２つの異なるオブジェクトクラスに属する。クラス内のオブジェクトは、より低いレベルが、より高いレベルと区別する属性または特徴を含みながら、より高いレベルの特徴を継承する「継承階層」に区別できる。
【００４８】
ＭＳＡオブジェクトクラスに関して、図５Ａに示す継承階層５００を考慮する。ＭＳＡ５０２は、ＭＳＡのベースラインクラスである。ＭＳＡ５０２は、すべてのＭＳＡによって共有された挙動を含む。例えば、ＭＳＡ５０２は、予約開始時間および終了時間のアラームを発し取り去る役割を担う。また、エージェントは、いくつかの共通のヘルパークラスを構築し、それらは、例えば、予約変更通知者、予約変更リスナ、機械統計、機械リスナ、ビッドリクエストサブスクライバ、早期スタータ、ペナルティ払い戻し計算器、取消し評価器、ロット右シフトリスケジュラ、および機械ビッドリクエスタを含む。これらの概念のすべては、以下にさらに詳細に記載される。また、ＭＳＡ５０２は、ツール状態を要求する役割を担う。また、ＬＳＡは、ビッドを発生または確認するようにＭＳＡ５０２に求める。ＭＳＡ５０２における挙動のすべては、ＭＳＡによって継承される。ＭＳＡは、ロットＭＳＡ５０４、ロット連続ＭＳＡ５０６、バッチＭＳＡ５０８、バッチロットＭＳＡ５１０、バッチロット連続ＭＳＡ５１２、バッチウェハＭＳＡ５１４、バッチウェハ連続ＭＳＡ５１６、ウェハ機械スケジューリングエージェント５１８、およびウェハ連続ＭＳＡ５２０を含む。
【００４９】
ベースライン挙動を継承することに加えて、各々の特殊化されたＭＳＡは、固有の挙動を含み、いくつかの継承された挙動を無効にする。固有の挙動のほとんどは、例示した実施形態において、ＭＳＡと関連付けられたプロセスツール１１５がどのようにロット１３０を処理するかに基づく。挙動のいくつかは、ツール状態を処理すること、機器イベントを処理すること、予約状態の変更に対応すること、工場の状態の変更に対応すること、ロットまたはバッチの消費時間を決定すること、および特殊化されたヘルパークラス（以下にさらに詳細に記載）を作ることを含む。スケジューリングエージェント間の異なる挙動を説明するために、以下、ウェハＭＳＡ５１８とバッチロットＭＳＡ５１０の挙動を比較および対比する。
【００５０】
ウェハＭＳＡ５１８（例えば、プラズマストリップツールに対応付けられた）が、所与のロットに対して一度にウェハを処理する。他方で、バッチロットＭＳＡ５１０（例えば、炉に対応付けられた）が、一度にいくつかのロットのバッチを処理する。初期化中、エージェント５１０、５１８は、ツール状態を要求する。エージェント５１０、５１８によって受信されたツール状態は、固有のものである。ウェハＭＳＡ５１８が、ウェハベースで情報を含むツール状態を受信するのに対して、バッチロットＭＳＡ５１０は、ロットバッチベースでツール状態を受信する。各エージェント５１０、５１８は、機械の状態を見い出すために、ツール状態を独自に処理する。エージェント５１０、５１８間の別の違いは、それらがどのように機器イベントを処理するかということである。イベントは、機械がどのようにロットを処理するかに応じる。ウェハ機械の場合、いくつかの機器イベントは、ウェハベースである。バッチロット機械の場合、機器イベントのいくつかは時間ベースである。例えば、プロセスツール１１５がロット１３０またはバッチの処理をほぼ済ませると、完了間近のイベントが引き起こされる。ウェハベースの機械で、イベントは、所与の数のウェハが残っているときに引き起こされる。バッチロット機械で、イベントは、残り時間が特定のしきい値に達すると引き起こされる。
【００５１】
また、新しい予約の消費時間を決定することは、ウェハＭＳＡ５１８とバッチロットＭＳＡ５１０との間の違いでもある。ロット１３０が含むウェハ１３５の数およびプロセス動作は、ウェハベースの機械で消費時間を決定する。他方で、バッチロットＭＳＡ５１０は、プロセスおよびプロセス動作に対してバッチ消費時間を用いる。スケジューリングエージェントが完了間近のイベントを受信すると、エージェントは、予約を拡張または縮小するかを決定する。ウェハＭＳＡ５１８の場合、エージェント５１８は、処理される予定の残りのウェハの数を決定する。次いで、それは、残りのウェハ計数をベースに残りの消費時間を決定する。それは、残りの消費時間をベースに予約を収縮または拡張する。バッチロットＭＳＡ５１０は、完了間近のイベント内で残りの消費時間を受信する。それは、残りの消費時間をベースに予約を縮小または拡張する。
【００５２】
この代わりとして、図５Ｂの継承階層５５０について考慮する。ＲＳＡオブジェクトクラス５５２は、すべてのＲＳＡのベースラインクラスである。ベースラインＲＳＡ５５２は、ＲＳＡのすべてによって共有された挙動を含む。例えば、ベースラインＲＳＡ５５２は、予約開始時間および終了時間のアラームを発し取り除く役割を担う。ベースラインＲＳＡ５５２は、２つのサブクラス、すなわち、専用ＲＳＡ５５４および共有ＲＳＡ５５６にさらに分類される。専用リソースの典型的な例は、バッチ処理ツール１１５上でロット１３０のローディングおよびアンローディングの役割を担うローディングリソースである。このような専用リソースは、専用ＲＳＡ５５４、例えば、ローディングＲＳＡ５５８によって対応付けられる。共有リソースの典型的な例は、レチクル、空のカセット、ダミーウェハ、ＷＦＴ、およびＭＴである。このような共有リソースは、共有ＲＳＡ５５６、例えば、レチクルスケジューリングエージェント５６０、空のカセットスケジューリングエージェント５６２、ダミーウェハスケジューリングエージェント５６４、ＷＦＴスケジューリングエージェント５６８、ＭＴスケジューリングエージェント５７０によって対応付けられる。
【００５３】
ローディングＲＳＡ５５８の特殊化された挙動の１つは、ローディング順序の最適化である。ローディングＲＳＡ５５８は、ロット１３０の最短到着時間の更新に関連する予約変更イベントを受信するたびに、バッチにおけるすべてのロット１３０の最適化されたローディング順序を決定することによって、すべてのバッチ関係者のローディングは、最短時間で完了することができる。ローディングＲＳＡ５５８の別の特殊化された挙動は、バッチジョブが到着遅延ロット１３０を有する場合のアンローディング予約のスケジューリングである。所望の設定では、第２のバッチジョブに対するすべてのローディングは、第１のバッチジョブの解放開始時間前に完了するようにスケジューリングされる。したがって、第１のバッチジョブの解放が完了すると、第２のバッチジョブの積み込みを開始でき、第１のバッチのロット１３０のアンローディングは、第２のバッチの積み込み終了時間後にスケジューリングされる。しかしながら、第２のバッチの１つのロット１３０が、第１のバッチの解放開始時間前にローディングされるように十分に早く処理ツール１１５に到着できなければ、このロット１３０のローディング予約は、第１のバッチの解放が完了した後にスケジューリングされる必要がある。この状況下において、ＲＳＡは、処理ツール１１５で処理されるプロセス動作の性質に応じて、異なる特殊化された挙動を有する。ある場合において、１つのタイプのバッチ処理ツール１１５で実行されたプロセス動作は、プロセスルートの終わりに非常に近いものであり、ＲＳＡは、解放が終わった直後に第１のバッチに対してアンローディング予約を常にスケジューリングし、その後、到着遅延のローディング予約は、第１のバッチのアンローディング後にスケジューリングされる。他の場合において、プロセス動作は、プロセスルートの終わりにあまり近いものではなく、アンローディング予約を急がせるような緊急性がないため、到着遅延のロット１３０は、第１のバッチジョブの解放の後にローディングに対してスケジューリングされ、第１のバッチのアンローディングは、第２のバッチジョブの積み込みの完了後にスケジューリングされる。
【００５４】
専用ＲＳＡ５５４に対して、専用リソースの性質により、予約の間にリソースを搬送するための移動予約が要求されない。しかしながら、共有ＲＳＡ５５６に対して、リソースが、処理ツール１１５またはロット１３０のグループ間で共有される必要があるため、２つの予約が２つの異なる場所にスケジューリングされていれば、これらの２つの予約間で移動予約がスケジューリングされる必要がある。したがって、共有ＲＳＡ５５６は、リソース処理予約を生じさせ入れるとき、独自の特殊化された挙動を有し、すなわち、リソースの搬送が必要であれば、移動予約が生じて入れられる。また、共有ＲＳＡ５５６は、ビッド発生およびビッド確認に関する独自の特殊化された挙動も有する。それにより、より高いプライオリティの処理ツール１１５またはロット１３０が、重要度が低い処理ツール１１５またはロット１３０の予約を取り消すことができるようになる。
【００５５】
また、他の特殊化されたＲＳＡは、他の特殊化された挙動を呈する。ＷＦＴまたはＭＴスケジューリングエージェント５６８、５７０に対して、各々は、人員の資質（スキル）、休憩時間の要求、およびシフト制限に関連する制約を考慮するために、特殊化された挙動を有する。ＷＦＴとＭＴとの間の１つの違いは、典型的に、ＭＴが修理やＰＭの全持続時間に必要とされるのに対して、ＷＦＴは、その時間の一部だけでよいということである。例えば、ＷＦＴは、ローディングおよびアンローディング中にプロセスツール１１５で必要とされることがあるが、ツール１１５の処理中に他のタスクを実行することができる。空のカセットスケジューリングエージェント５６２は、動的に作り出され、その後、使用された後になくなるため、特殊化された挙動を有する。空のカセットは、ウェハを格納するための使用された後、共有リソースではなくなるのに対して、生産ロットを保持するカセットは、ウェハがカセットから取り除かれれば、空のカセットになり得る。ダミーウェハスケジューリングエージェント５６４は、これらのウェハが定期的な修理調整を必要とするため、特殊化された挙動を有する。ダミーウェハは、正確に処理するために最初のロードサイズを必要とするいくつかのバッチ機械において、空スロットを充填するために使用される。ダミーウェハは、特定の量が使用された後はサービスを中止されなければならず、それらが修理調整されるまで再度使用できない。
【００５６】
このように、例示した実施形態のＡＥＭＳ６００は、図６に示すソフトウェアオブジェクトを部分的に含む多数のソフトウェアコンポーネントを含む。これらは、以下のクラス、すなわち、
・スケジューリングエージェントクラス６１０を含み、このクラスはさらに以下のもの、すなわち、
・特定のロット１３０の代わりに、処理および関連する移動予約をスケジューリングするＬＳＡ６３０と、
・特定の機械の代わりに、他のスケジューリングエージェントで予約をスケジューリングするＭＳＡ６５０と、
・特定の機械の代わりに、特定のＰＭおよびＱｕａｌ予約をスケジューリングするＰＭスケジューリングエージェント（「ＰＳＡ」）６４０と、
・第２のリソース（例えば、レチクル、ＷＦＴ、ＭＴ）の使用をスケジューリングするＲＳＡ６６０とを含み、
・処理エージェントクラス６２０を含み、このクラスはさらに、以下のもの、すなわち、
・ロット処理および移動予約を実行するロット処理エージェント（「ＬＰＡ」）６７０と、
・セットアップ、ロット処理、またはバッチ処理を実行する機械処理エージェント（「ＭＰＡ」）６９０と、
・ＰＭおよびＱｕａｌ予約を実行するＰＭ処理エージェント（「ＰＰＡ」）６８０と、
・リソース固有の予約（例えば、機械ローディングリソースのロードおよびアンロード、リソース移動、リソース使用）を実行するリソース処理エージェント（「ＲＰＡ」）６８５とを含み、
・ロット開始エージェントクラス６０２を含み、このクラスはさらに、
・ボトルネックにより欠乏しないように適時に間に合うようにロットを解放する欠乏回避ロット開始エージェント（「ＳＡＬＳＡ」）６０５と、
・所定のスケジュールに従ってロットを解放するスケジューリングされた解放ロット開始エージェント（「ＳＲＬＳＡ」）６１５とを含む。
別の実施形態が、さらなる他のクラスを用いてもよい。
【００５７】
上述したように、ＳＡＬＳＡエージェント６０５は、新しいロット１３０がｆａｂのプロセスフローに解放されたときを決定する。さらに詳しく言えば、ＳＡＬＳＡエージェント６０５は、プロセスフローにおいて未完成品（「ＷＩＰ」）を監視し、プロセスフローでボトルネックを作り出す１つ以上のワークステーションを識別する。ＳＡＬＳＡエージェント６０５は、各ボトルネックワークステーションに近付く仕事量を表すＷＩＰ値を計算し、ＷＩＰ値が評価期間中に制御制限値を下回ることになるかどうかを決定する。ＷＩＰ値が、評価期間中に制御制限値を下回ることになれば、選択された追加の仕事量が製造ラインに解放される。いくつかの実施例において、ＳＡＬＳＡエージェント６０５は、選択された追加の仕事量に対して１つ以上の製品タイプをさらに決定する。
【００５８】
また、ＡＥＭＳ６００は、機能を達成するようにソフトウェアエージェント２６５によって使用される「ヘルパークラス」に多数のソフトウェアコンポーネント（図示せず）を含む。これらの他のコンポーネントは、一般的に、以下のようにグループ化することができる。
・さまざまな量を計算するための計算器（例えば、ロット予算計算器、最新完了時間計算器、ビッドコスト計算器）
・さまざまなイベントをスケジューリングするためのスケジューラ（例えば、移動スケジューラ）
・選択されたイベントまたは状態の変化の発生を検出し報告するためのリスナ（例えば、ロットリスナ、ビッドリスナ）
・ＡＥＭＳ５００コンポーネントのコンポーネントに時間（リアルまたは擬似）を与え、特定の時間または期間、アラームを設定し、リスナを呼び出すことができるアラームクロック
・製造設備の他の態様、例えば、ＭＥＳ、ＥＩ、ＡＭＨＳにインタフェースを与えるアダプタ、例えば、
・ＭＥＳトランジスタ、例えば、トラック入出力ロットまたは機械、ロットの保留などを実行するためにＭＥＳと連係するＭＥＳアダプタ
・機器インタフェースにコマンド（例えば、ダウンロードレシピ、リクエストツール状態など）を送信し、機器イベント発送者を介して機器インタフェースからイベント情報を受信するＥＩアダプタ
・ＡＭＨＳにコマンドを移動し、ＡＭＨＳから移動状態更新を受信するＡＭＨＳアダプタ
・ｆａｂ人員（例えば、ＷＦＴ）へさまざまな形態の通知を送信する通知アダプタ（例えば、スクリーン、携帯無線呼出し器、電子メールなど）
表１は、本発明の１つの特定の実施形態に対して、エージェント別にこれらのヘルパークラスコンポーネントを挙げる。
表１  ソフトウェアエージェント別に呼び出される
ヘルパークラスオブジェクト
ソフトウ
ェアエー   ヘルパークラス               ヘルパークラス
ジェント    オブジェクト              オブジェクトの機能
│ロットス│ＡＭＨＳリスナ  │ＡＭＨＳ移動イベントをリッスンし報告す│
│ケジュー│                │る                                    │
│リングエ│                │                                      │
│ージェン│ビッドリクエスタ│ビッドリクエストを発生し発行する      │
│ト      │                │                                      │
│        │ビッドセレクタ  │コストと時間でビッドを選択する        │
│        │                │                                      │
│        │複合比率計算器  │欠乏比率および臨界比率の組合せである複│
│        │                │合比率を計算する                      │
│        │                │                                      │
│        │空乏比率計算器  │プロセスフローのボトルネック下流に供給│
│        │                │するように、特定のロットを加速する必要│
│        │                │があるかどうかの目安であるエージェント│
│        │                │の欠乏比率を計算する                  │
│        │                │                                      │
│        │臨界比率計算器  │特定のロットがスケジュール通りであるか│
│        │                │の目安であるエージェントの臨界比率を計│
│        │                │算する                                │
│        │                │                                      │
│        │ロット予算計算器│処理のためのエージェントの予算を決定し│
│        │                │維持する                              │
│        │                │                                      │
│        │ＬＤＴ計算器    │エージェントの最新配送時間または完成日│
│        │                │を計算する                            │
│        │                │                                      │
│        │移動予約スケジュ│移動予約をスケジューリングする        │
│        │ーラ            │                                      │
│        │                │                                      │
│        │ロットスケジュー│予約を格納し操作する                  │
│        │リングカレンダー│                                      │
│        │                │                                      │
│        │ロット予約スケジ│処理予約をスケジューリングする        │
│        │ューラ          │                                      │
│        │                │                                      │
│        │ロットリスナ    │予約持続時間に影響する状態変化をリッス│
│        │                │ンし対応する                          │
│機械スケ│機械リスナ      │予約持続時間に影響する状態変化をリッス│
│ジューリ│                │ンし対応する                          │
│ングエー│                │                                      │
│ジェント│チャンバスケジュ│予約に影響する状態変化をリッスンし対応│
│        │ーリングエージェ│する                                  │
│        │ント            │                                      │
│        │                │                                      │
│        │チャンバリスナ  │機械のスループットに影響するであろうチ│
│        │                │ャンバイベントに対応するチャンバイベン│
│        │                │トをリッスンする                      │
│        │機械能力        │機械のプロセス能力を維持する役割を担う│
│        │                │                                      │
│        │                │                                      │
│        │早期スタータ    │機械がアイドリング状態のときに開始する│
│        │                │ように予約を探し出す                  │
│        │                │                                      │
│        │ロット右シフトリ│予約を後の開始時間にシフトするためのロ│
│        │スケジューラ    │ットリクエストに応答する              │
│        │                │                                      │
│        │全搬送計算器    │ビッド発生器によって呼び出されると、所│
│        │                │与のロットに対して全搬送時間を計算する│
│        │                │                                      │
│        │ビッド発生器    │ビッドリクエストからビッドを発生し、す│
│        │                │なわち、スロット発生器を取り消しながら│
│        │                │オープンスロット発生器とバッチビッド発│
│        │                │生器とを呼び出す                      │
│        │                │                                      │
│        │取消しビッド発生│ビッド発生器によって呼び出されると、機│
│        │器              │械スケジューリングカレンダー上の他の予│
│        │                │約を取り消すビッドを発生する          │
│        │                │                                      │
│        │オープンスロッド│ビッド発生器によって呼び出されると、機│
│        │ビッド発生器    │械スケジューリングカレンダー上のオープ│
│        │                │ンスロットにビッドを発生する          │
│        │                │                                      │
│        │ビッドコスト計算│特定のビッドに対するコストを計算する  │
│        │器              │                                      │
│        │                │                                      │
│        │ビッド確認器    │ビッドを拒絶するか、またはカレンダー上│
│        │                │に受け入れた予約を入れる              │
│        │                │                                      │
│        │バッチビッド発生│ビッド発生器によって呼び出されると、バ│
│        │器              │ッチを加入するか、または新しいバッチを│
│        │                │開始するように、ロットに対してビッドを│
│        │                │発生する                              │
│        │                │                                      │
│        │機械スケジューリ│予約を格納し操作する                  │
│        │ングカレンダー  │                                      │
│ＰＭスケ│機械リスナ      │予約に影響する機械の状態変化をリッスン│
│ジューリ│                │し対応する                            │
│ングエー│                │                                      │
│ジェント│チャンバリスナ  │チャンバイベントをリッスンする        │
│        │                │                                      │
│        │ＰＭスケジューリ│予約を格納し操作する                  │
│        │ングカレンダー  │                                      │
│        │                │                                      │
│        │ＰＭビッドセレク│ＰＭビッドを選択する                  │
│        │タ              │                                      │
│        │                │                                      │
│        │ＰＭウィンドウ計│ＰＭが実行されてよいウィンドウを計算す│
│        │算器            │る                                    │
│        │                │                                      │
│        │ＰＭ予算計算器  │ＰＭに対する予算を計算する            │
│        │                │                                      │
│        │ビッドリクエスタ│特定のサービスに対してビッドリクエスト│
│        │                │を発生し、予約ＭＳＡにリクエストを送信│
│        │                │する                                  │
│ロット処│ＭＥＳアダプタ  │ＭＥＳトランザクションを始動する      │
│理エージ│                │                                      │
│ェント  │通知            │適切なｆａｂ人員に通知する            │
│        │                │                                  │
│        │ＡＭＨＳファサー│ロット搬送活動を始動する              │
│        │ド              │                                      │
│機械処理│ロットリスナ    │機械処理に影響するロットに関するイベン│
│エージェ│                │トをリッスンする                      │
│ント    │                │                                      │
│        │ＭＥＳアダプタ  │ＭＥＳトランザクションを始動する      │
│        │                │                                      │
│        │通知            │適切なｆａｂ人員に通知する            │
│        │                │                                      │
│        │ＥＩアダプタ    │機器インタフェース（「ＥＩ」）にコマンド│ 
│        │                │を送信する                            │
│ＰＭ処理│ＭＥＳアダプタ  │ＭＥＳトランザクションを始動する      │
│エージェ│                │                                      │
│ント    │通知            │適切なｆａｂ人員に通知する            │
│        │                │                                      │
│        │ＥＩアダプタ    │機器インタフェース（「ＥＩ」）にコマンド│
│        │                │を送信する                            │
│リソース│ＭＥＳアダプタ  │ＭＥＳトランザクションを始動する      │
│処理エー│                │                                      │
│ジェント│通知            │適切なｆａｂ人員に通知する            │
│        │                │                                      │
│        │ＥＩアダプタ    │機器インタフェース（「ＥＩ」）にコマンド│ 
│        │                │を送信する                            │
│リソース│ローディング順序│バッチ予約のすべての参加者に対して、適│
│スケジュ│計算器          │切なローディング順序および実現可能なロ│
│ーリング│                │ーディング開始時間を計算する          │
│エージェ│                │                                      │
│ント    │取消しビッドリク│ＭＳＡからの取消しビッドリクエストに応│
│        │エストプロセッサ│答し、リソーススケジューリングカレンダ│
│        │                │ー上で実現可能な取消しビッドを発生する│
│        │                │                                      │
│        │オープンスロット│ＭＳＡからのオープンスロットビッドリク│
│        │ビッドリクエスト│エストに応答し、リソーススケジューリン│
│        │プロセッサ      │グカレンダー上で実現可能なオープンスロ│
│        │                │ットビッドを発生する                  │
│        │                │                                      │
│        │加入バッチビッド│ＭＳＡからの加入バッチビッドリクエスト│
│        │リクエストプロセ│に応答し、リソーススケジューリングカレ│
│        │ッサ            │ンダー上で実現可能な加入バッチビッドを│
│        │                │発生する                              │
│        │                │                                      │
│        │加入バッチ取消し│ＭＳＡからの加入バッチ取消しビッドリク│
│        │ビッドリクエスト│エストに応答し、リソーススケジューリン│
│        │プロセッサ      │グカレンダー上で実現可能な加入バッチ取│
│        │                │消しビッドを発生する                  │
│        │                │                                      │
│        │左シフトアクショ│対応する機械スケジューリングカレンダー│
│        │ンコンバータ    │からの所与の左シフトアクションの集まり│
│        │                │に対して、予約シフトおよびジャンプオー│
│        │                │バーアクションの集まりを発生する      │
│        │                │                                      │
│        │右シフトアクショ│対応する機械スケジューリングカレンダー│
│        │ンコンバータ    │からの所与の右シフトアクションの集まり│
│        │                │に対して、予約シフトおよびジャンプオー│
│        │                │バーアクションの集まりを発生する      │
│        │                │                                      │
│        │取消し実現可能プ│取消しビッドの実現可能性を評価し、実現│
│        │ロセッサ        │可能であれば、取消しビッドを達成するた│
│        │                │めのアクションの集まりを発生する      │
│        │                │                                      │
│        │オープンスロット│オープンスフォットビッドの実現可能性を│
│        │実現可能プロセッ│評価し、実現可能であれば、オープンスロ│
│        │サ              │ットビッドを達成するためのアクションの│
│        │                │集まりを発生する                      │
│        │                │                                      │
│        │加入バッチ実現可│加入バッチビッドの実現可能性を評価し、│
│        │能プロセッサ    │実現可能であれば、加入バッチビッドを達│
│        │                │成するためのアクションの集まりを発生す│
│        │                │る                                    │
│        │                │                                      │
│        │加入バッチ取消し│加入バッチ取消しビッドの実現可能性を評│
│        │実現可能プロセッ│価し、実現可能であれば、加入バッチ取消│
│        │サ              │しビッドを達成するためのアクションの集│
│        │                │まりを発生する                        │
│        │                │                                      │
│        │機械リスナ      │予約に影響する機械の状態変化をリッスン│
│        │                │し対応する                            │
│        │                │                                      │
│        │リソーススケジュ│予約を格納し操作する                  │
│        │ーリングカレンダ│                                      │
│        │ー              │                                      │
【００５９】
この特定の実施形態において、ソフトウェアエージェントは、オブジェクト指向プログラミング技術を用いて与えられる。オブジェクト指向コンピューティングの用語において、ソフトウェア「エージェント」は、自立型のアクティブオブジェクトである。動作セットが与えられたとすると、ソフトウェアエージェントは、ローカル状況に応答して独立したアクションをとることができることで、適応可能なシステム挙動を発生する。本発明は、工場労働者、材料、機器、リソースなどの半導体製造工場における「現実の世界」のエージェントの機能を模倣し高める自立型で移動式の「ソフトウェアエージェント」を規定し、構成し、および展開するエージェント強化されたシステムを提供する。当業者は、エージェントまたは他のソフトウェアオブジェクトが、１つ以上のソフトウェアオブジェクトを含み得ることを認識するであろう。本願明細書において使用される場合、「オブジェクト」という用語は、他のソフトウェアオブジェクトから構成されるものであってよいソフトウェアオブジェクトであると理解される。また、それとは反対に、当業者は、１つのオブジェクトの機能性と他の機能性とを組み合わせてよいことを認識するであろう。別のオブジェクトと関連付けられるように記載される機能性と、１つの目的に関連付けられた機能性とを組み合わせてよいことを理解されたい。
【００６０】
本願明細書の詳細な記載のいくつかの部分は、コンピューティングシステムまたはコンピューティングデバイスのメモリ内のデータビットでの動作の記号表記を伴うソフトウェア実行プロセスの点で結果的に与えられる。これらの記載および表記は、当業者らにそれらの働きの実体を最も効果的に伝えるために、当業者らによって用いられる手段である。プロセスおよび動作は、物理量の物理的な操作を必要とする。一般に、必要不可欠なことではないが、これらの量は、格納、転送、組合せ、比較、および操作可能な電気、磁気、または光信号の形をとる。主に共通して使用するために、これらの信号を、ビット、値、要素、記号、文字、用語、数などとして参照すると利便性が良い場合がある。
【００６１】
しかしながら、これらの同様の用語のすべてが、適切な物理量に関連付けられ、これらの量に適用された利便性の良いラベルにすぎないことに留意されたい。本願の開示内容全体を通して、特段の記載がない限り、または明らかであるように、これらの記載は、電子デバイスのアクションおよびプロセスを参照し、このデバイスは、何らかの電子デバイスのストレージ内の物理（電子、磁気、または光）量として表されるデータを操作して、格納内または伝送またはディスプレイデバイスにおいて物理量として同様に表される他のデータに変形する。このような記載を表す用語の例は、限定するものではないが、「処理」、「コンピューティング」、「計算」、「決定」、「表示」などの用語である。
【００６２】
また、本発明のソフトウェア実行の態様は、典型的に、プログラム格納媒体の何らかの形態でコード化されるか、または、何らかのタイプの伝送媒体で実行されることにも留意されたい。プログラムストレージ媒体は、磁気（例えば、フロッピーディスクまたはハードドライブ）または光（例えば、コンパクトディスク読取り専用メモリ、いわゆる「ＣＤＲＯＭ」）であってよく、読取専用またはランダムアクセスであってよい。同様に、伝送媒体は、ツイストペア線、同軸ケーブル、光ファイバ、または当業者に公知の何らかの他の適切な伝送媒体であってよい。本発明は、任意の所与の実施例のこれらの態様によって制限されるものではない。
【００６３】
以上で、詳細な記載の結論とする。上記に開示された特定の実施形態は、例示的なものにすぎず、本発明は、異なるように修正および実施されてよいが、同等の方法は、本願明細書の開示内容を利用できる当業者らに明らかである。さらに、特許請求の範囲に記載するもの以外、本願明細書に示された構成またはデザインの詳細には何ら制限が意図されていない。したがって、上記に開示された特定の実施形態は、変更または修正されてよく、すべてのこのような変形例は、特許請求の範囲内であると見なされることは明らかである。したがって、本願明細書において求められる保護は、特許請求の範囲において示される。
【図面の簡単な説明】
【００６４】
【図１】本発明に従って構成され動作する第１のプロセスフローの１つの特定の実施形態の一部分を概念的に示す。
【図２】図１のコンピューティングデバイスのハードウェアおよびソフトウェアアーキテクチャの選択部分をそれぞれ部分ブロック図で概念的に示す。
【図３Ａ】第１のレベルでのエージェント、すなわち、図１の第２のプロセスフローの消費者エージェントおよび提供者エージェントとしてのエージェントの特殊化を部分ブロック図で概念的に示す。
【図３Ｂ】図３Ａのプロセスフローに対するコントラクトネットネゴシエーションプロトコルの実行を示す。
【図４】図１のプロセスフローにおける種類、タイプ、エンティティ、および機能に関するエージェントの特殊化を部分ブロック図で概念的に示す。
【図５Ａ】例示した実施形態のオブジェクト指向プログラミング環境における２つのクラスのエージェントの継承階層を示す。
【図５Ｂ】例示した実施形態のオブジェクト指向プログラミング環境における２つのクラスのエージェントの継承階層を示す。
【図６】図１のプロセスフローのＡＥＭＳにおけるさまざまなクラスのエージェントを示す。
【図１】
2005528787.tif 000003
【図２】
2005528787.tif 000004
【図３Ａ】
2005528787.tif 000005
【図３Ｂ】
2005528787.tif 000006
【図４】
2005528787.tif 000007
【図５Ａ】
2005528787.tif 000008
【図５Ｂ】
2005528787.tif 000009
【図６】
2005528787.tif 000010
【手続補正書】
【提出日】平成16年7月28日(2004.7.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の製造ドメインエンティティ（１１５、１３０、３２０、４２０）と、
前記製造ドメインエンティティ（１１５、１３０、３２０、４２０）に対応付けられた手段（２６５）とを有し、
前記対応付けられた手段は、前記製造ドメインエンティティ（１１５、１３０、３２０、４２０）の第１のサブセットをスケジューリングして、前記製造ドメインエンティティ（１１５、１３０、３２０、４２０）の第２のサブセットによって提供されるプロセスリソース（４２０）の消費を行ない、
前記対応付けられた手段（２６５）は、対応付けられた前記エンティティ（１１５、１３０、３２０、４２０）に応じて特殊化されることを特徴とする自動製造環境。
【請求項２】
前記製造ドメインエンティティ（１１５、１３０、３２０、４２０）が、
プロセスツール（１１５）と、
プロセスツール（１１５）に対する予防メンテナンス／認定プロシージャ（３２０）と、
プロセスツール（１１５）によって用いられるプロセスリソース（４２０）と、
プロセスツール（１１５）で処理するためのロット（１３０）の少なくとも１つを含む、請求項１に記載の自動製造環境。
【請求項３】
前記対応付けられた手段が、前記製造エンティティ（１１５、１３０、３２０、４２０）の代わりにスケジューリングするための手段と、前記製造エンティティ（１１５、１３０、３２０、４２０）の代わりに処理に対応付けられた手段と、の少なくとも１つを含む、請求項１に記載の自動製造環境。
【請求項４】
前記対応付けられた手段が、プロセスツール（１１５）に対応付けられた手段と、ロット（１３０）に対応付けられた手段と、予防メンテナンスプロシージャ（３２０）に対応付けられた手段と、リソース（４２０）に対応付けられた手段と、の少なくとも１つを含む、請求項１に記載の自動製造環境。
【請求項５】
前記対応付けられた手段が、対応付けられた特定のエンティティ（１１５、１３０、３２０、４２０）の特徴によってさらに特殊化される、請求項１に記載の自動製造環境。
【請求項６】
前記製造ドメインエンティティ（１１５、１３０、３２０、４２０）が、
複数のプロセスツール（１１５）と、
前記プロセスツール（１１５）に対する複数の予防メンテナンス／認定プロシージャ（３２０）と、
前記プロセスツール（１１５）によって用いられる複数のプロセスリソース（４２０）と、
前記プロセスツール（１１５）で処理するための複数のロット（１３０）と、を含み、
前記対応付けられた手段（２６５）は、コンピューティングシステムを含み、このコンピューティングシステムは、
前記プロセスツール（１１５）での活動をスケジューリングし実行するための複数の機械エージェント（６５０、６９０）と、
前記プロセスツール（１１５）で処理するための前記ロット（１３０）をスケジューリングし、前記プロセスツール（１１５）で前記ロット（１３０）を処理しやすいようにアクションを実行するための複数のロットエージェント（６３０、６７０）と、
前記プロセスツール（１１５）によって前記プロセスリソース（４２０）の利用性をスケジューリングし、前記プロセスツール（１１５）によって前記プロセスリソース（４２０）を使用しやすいようにアクションを実行するための複数のリソースエージェント（６６０、６８５）と、
プロセスツール（１１５）での予防メンテナンス／認定プロシージャ（３２０）をスケジューリングし実行するための複数の予防メンテナンスエージェント（６４０、６８５）と、を含む、請求項１に記載の自動製造環境。
【請求項７】
前記機械エージェント（６５０、６９０）が、前記プロセスツール（１１５）での活動をスケジューリングするための機械スケジューリングエージェント（６５０）と、前記プロセスツール（１１５）でのスケジューリングされた活動を実行するための機械処理エージェント（６９０）の少なくとも１つを含む、請求項６に記載の自動製造環境。
【請求項８】
前記機械エージェント（６５０、６９０）の少なくとも１つが、
前記プロセスツール（１１５）が、ウェハ（１３５）別、ロット（１３０）別、ロット（１３０）のバッチ別、またはウェハ（１３５）のバッチ別で処理を行うかどうか、
前記プロセスツール（１１５）が、ウェハ（１３５）、ロット（１３０）、またはバッチを順次または連続して処理するかどうか、
前記プロセスツール（１１５）のポートの数、
前記プロセスツール（１１５）のポートが、入力、出力、入出力であるかどうか、
前記プロセスツール（１１５）のチャンバが、直列または並列で使用されているかどうか、
前記プロセスツール（１１５）が、予防メンテナンスプロシージャを連鎖できるかどうか、
前記プロセスツール（１１５）におけるチャンバの数、
前記プロセスツール（１１５）が、内部ストレージを含むかどうか、
前記プロセスツール（１１５）が、ロット（１３０）またはバッチの処理を、別のロット（１３０）またはバッチを処理しながら、待ち行列に入れることができるかどうか、
前記プロセスツール（１１５）が、ローディングおよび／またはアンローディングを必要とするかどうか、
前記プロセスツール（１１５）が、リソース（４２０）を必要とするかどうか、必要であれば、前記リソース（４２０）が、専用リソースであるか、または共有リソースであるかどうか、の少なくとも１つに従って特殊化される、請求項６に記載の自動製造環境。
【請求項９】
前記ロットエージェント（６３０、６７０）が、ロットスケジューリングエージェント（６３０）とロット処理エージェント（６７０）の少なくとも１つを含む、請求項６に記載の自動製造環境。
【請求項１０】
前記ロットスケジューリングエージェント（６３０）と前記ロット処理エージェント（６７０）との少なくとも１つが、対応付けられた前記ロット（１３０）のプライオリティ、製品、または製品群の少なくとも１つによって特殊化される、請求項９に記載の自動製造環境。
【請求項１１】
前記リソースエージェント（６６０、６８５）が、リソーススケジューリングエージェント（６６０）とリソース処理エージェント（６８５）の少なくとも１つを含む、請求項６に記載の自動製造環境。
【請求項１２】
前記予防メンテナンスエージェント（６４０、６８０）が、予防メンテナンススケジューリングエージェント（６４０）と予防メンテナンスエージェント（６８０）との少なくとも１つを含む、請求項６に記載の自動製造環境。
【請求項１３】
複数のロット開始エージェント（６０５、６１５）をさらに含む、請求項６に記載の自動製造環境。
【請求項１４】
前記製造ドメインエンティティ（１１５、１３０、３２０、４２０）が、
複数のプロセスツール（１１５）と、
前記プロセスツール（１１５）に対する複数の予防メンテナンス／認定プロシージャ（３２０）と、
前記プロセスツール（１１５）によって用いられる複数のプロセスリソース（４２０）と、
前記プロセスツール（１１５）で処理するための複数のロット（１３０）とを含み、
前記対応付けられた手段は、コンピューティングシステムを含み、このコンピューティングシステムは、
前記予防メンテナンス／認定プロシージャ（３２０）、プロセスリソース（４２０）、および前記プロセスツール（１１５）上のロット（１３０）に対して活動をスケジューリングするための複数のスケジューリングエージェント（６１０）と、
前記スケジューリングされた活動を実行するための複数の処理エージェント（６２０）と、を含むコンピューティングシステムを含む、請求項１に記載の自動製造環境。
【請求項１５】
前記スケジューリングエージェント（６１０）と前記処理エージェント（６２０）との少なくとも１つが、対応付けられた前記エンティティの性質に従って特殊化される、請求項１４に記載の自動製造環境。
【請求項１６】
前記スケジューリングエージェント（６１０）が、
前記プロセスツール（１１５）での活動をスケジューリングするための機械スケジューリングエージェント（６５０）と、
前記プロセスツール（１１５）で処理するために前記ロット（１３０）をスケジューリングするためのロットスケジューリングエージェント（６３０）と、
プロセスツール（１１５）で予防メンテナンス／認定プロシージャ（３２０）をスケジューリングするための予防メンテナンススケジューリングエージェント（６４０）と、
前記プロセスツール（１１５）によって前記プロセスリソース（４２０）をスケジューリングするためのリソーススケジューリングエージェント（６６０）と、の少なくとも１つを含む、請求項１４に記載の自動製造環境。
【請求項１７】
前記処理エージェント（６２０）が、
前記プロセスツール（１１５）でスケジューリングされた活動を実行するための機械処理エージェント（６９０）と、
前記プロセスツール（１１５）で前記ロット（１３０）を処理しやすいようにアクションを実行するためのロット処理エージェント（６７０）と、
前記プロセスツール（１１５）によって前記プロセスリソース（４２０）を使用しやすいようにアクションを実行するためのリソース処理エージェント（６８５）と、
前記プロセスツール（１１５）でスケジューリングされた予防メンテナンス／認定プロシージャ（３２０）を実行するための複数の予防メンテナンス処理エージェント（６８０）と、の少なくとも１つを含む、請求項１４に記載の自動製造環境。
【請求項１８】
前記コンピューティングシステムが、複数のロット開始エージェント（６０２）をさらに含む、請求項１４に記載の自動製造環境。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
本発明は、上述した問題の１つまたはすべてを解消し、または少なくとも軽減するためのものである。
米国特許第５，４４４，６３２号には、処理機械を制御しスケジューリングするための装置および方法が開示されている。スケジューラは、製造動作のシーケンスに従って製造されたアイテムのロットを製造するように要求されたスケジューリング選択をする。スケジューラは、オブジェクト指向プログラミング環境に存在するソフトウェア「オブジェクト」を含む。
LATHON R.D.らの「Negotiation among scheduling agents to achieve production goals」IEEE、2 October 1994、pages 1541-1546、XP010139150 ISBN:0-7803-2129-4には、製造ショップフロアでスケジューリング機能を達成するためのアーキテクチャが記載されている。エージェントは、システムの機能性に従って製造サブシステム（多数のエンティティを組み込む）の代理をする。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】変更
【補正の内容】
【００１４】
本発明は、特殊化された自立型のアクティブソフトウェアエージェントを用いる自動処理環境を含む。ソフトウェアエージェントは、代理するエンティティのタイプと、プロセスフローにおいて実行する機能とによって特殊化される。この装置は、複数の製造ドメインエンティティと、製造ドメインエンティティの第２のサブセットによって提供されるプロセスリソースを消費するために、製造ドメインエンティティの第１のサブセットをスケジューリングするための複数のこのようなソフトウェアエージェントとを含むプロセスフローを含む。


【国際調査報告】
2005528787.tif 000011
2005528787.tif 000012
2005528787.tif 000013
2005528787.tif 000014
2005528787.tif 000015