(57)【要約】自動化製造環境においてスケジューリングするための方法および装置の構成が開示されている。その方法はプロセスフロー（１００）において所定のイベントの発生を検出すること、ソフトウエアスケジューリングエージェント（３０５、３１０、３１５、３２０）にその発生を通知すること、所定のイベントの検出に応じてそのソフトウエアスケジューリングエージェント（３０５、３１０、３１５、３２０）からアクションを応答的にスケジューリングすることを含む。この装置は自動化製造環境であり、プロセスフロー（１００）とコンピュータシステムを含む。このコンピュータシステムは更にその上に存在する複数のソフトウエアエージェント（３０５、３１０、３１５、３２０）を含み、このソフトウエアスケジューリングエージェント（３０５、３１０、３１５、３２０）は複数の所定のイベントに応じてプロセスフロー（１００）においてアクティビティに応答してアポイントメントスケジュールできる。
2005524165.tif 000002
【特許請求の範囲】
【請求項１】
プロセスフロー（１００）において所定のイベントの発生を検出し、
ソフトウエアスケジューリングエージェント（３０５、３１０、３１５、３２０）に前記イベントの発生を通知し、
前記所定のイベントの検出に応じて前記ソフトウエアスケジューリングエージェント（３０５、３１０、３１５、３２０）に応答してアクションをスケジューリングする、自動化製造環境でのスケジューリング方法。
【請求項２】
前記所定のイベントの検出では、計画されていないイベントあるいは予想外のイベントを検出する、請求項１記載の方法。
【請求項３】
前記所定のイベントの検出では、アポイントメントの状態変更、ファクトリーの状態変更、およびアラームイベントのうちの一つの発生を検出する、請求項１記載の方法。
【請求項４】
前記所定のイベントの検出では、アポイントメントのキャンセル、アポイントメントの拡張、アポイントメントの収縮、アポイントメントの中止、アポイントメントがアクティブになる、アポイントメントが完了に近づく、アポイントメントの完了、アポイントメントをシフトする、アポイントメントのオーバーライド、コミットメントウインドウのアップデート、ダウンタイムの発生を検出、マシンが利用できるようになる、ＰＭ／Ｑｕａｌが検出される、チェンバが故障する、チェンバが利用できるようになる、マシン能力の変更、マシン種類の変更、プロセスの追加、プロセスオペレーションの追加、ロットがマシンに到達する、ロットプロセスの変更、ロットが保留状態で配置される、ロットが保留状態から開放される、ロットの優先事項・プライオリティの変更、ロットの期日変更、ロットのウエハ数変更、ロットプロセスオペレーションの変更、ロットがマシンから外れる、アポイントメント開始時刻に対するアラーム始動およびアポイントメント終了時刻に対するアラーム始動、のうちの少なくとも一つを検出することを含む、請求項１記載の方法。
【請求項５】
前記ソフトウエアスケジューリングエージェント（３０５、３１０、３１５、３２０）に前記所定のイベントの発生の通知では、
パブリッシャ（３５２）へ前記発生の指示を送り、
前記パブリッシャ（３５２）からサブスクライブリスナ（３５８）へ前記発生をパブシッリュし、
前記サブスクライブリスナ（３５８）から前記ソフトウエアスケジューリングエージェント（３０５、３１０、３１５、３２０）を呼び出すことを含む、請求項１記載の方法。
【請求項６】
前記アクションのスケジューリングでは、進行中のスケジュールアポイントメントを中止すること、スケジュールアポイントメントが開始する前にスケジュールアポイントメントをキャンセルすること、新たなアポイントメントをスケジューリングすること、スケジュールアポイントメントを開始すること、スケジュールアポイントメントの持続時間を拡張すること、スケジュールアポイントメントの持続時間を収縮すること、スケジュールアポイントメントをシフトすること、新たな処理能力・プロセスケイパビリティを追加すること、古い処理能力を削除すること、アラームを設定すること、アラームをキャンセルすること、アポイントメントの状態を変更することのうちの少なくとも一つがなされる、請求項１記載の方法。
【請求項７】
前記所定のイベントと関連するアポイントメントを積極的にスケジューリングする、請求項１記載の方法。
【請求項８】
プロセスフロー（１００）での所定のイベントの発生を検出するための手段と、
ソフトウエアスケジューリングエージェント（３０５、３１０、３１５、３２０）に前記所定のイベントの発生を通知するための手段と、
前記所定のイベントの検出に応じてソフトウエアスケジューリングエージェント（３０５、３１０、３１５、３２０）に応答してアクションをスケジューリングするための手段とを有した、自動化製造環境でのスケジュール用装置。
【請求項９】
前記所定のイベントの発生を検出するための手段は、計画されていないイベントあるいは予想外のイベントを検出するための手段を含む、請求項８記載の装置。
【請求項１０】
前記所定のイベントの発生を検出するための手段は、アポイントメント状態の変更、ファクトリー状態の変更、アラームイベントのうちの一つの発生を検出するための手段を含む、請求項８記載の装置。
【請求項１１】
前記所定のイベントを検出するための手段は、アポイントメントのキャンセル、アポイントメントの拡張、アポイントメントの縮小、アポイントメントの中止、アポイントメントの状態を変更、アポイントメントのシフト、アポイントメントのオーバーライド、トランスポート時間のアップデート、ロード時間のアップデート、アンロード時間のアップデート、ロットをバッチに結合する、ロットがバッチから離れる、バッチからのロットをキャンセルする、コッミットメントウインドウをアップデートする、ダウンタイムの発生を検出する、マシンが利用可能になる、ＰＭ／Ｑｕａｌが検出される、チェンバが故障する、チェンバが利用可能になる、マシン能力の変更、マシン種類の変更、プロセスの追加、プロセスオペレーションの追加、ロットがマシンに到達する、ロットプロセスを変更する、ロットが保留で配置される、ロットが保留から開放される、ロットの優先事項の変更、ロットの期日変更、ロットのウエハ数変更、ロットのプロセスオペレーション変更、ロットがマシンを外れる、アポイントメント開始時刻に対するアラーム始動、アポイントメント終了時刻に対するアラーム始動のうち少なくとも一つを検出するための手段を含む、請求項８記載の装置。
【請求項１２】
前記ソフトウエアスケジューリングエージェント（３０５、３１０、３１５、３２０）に前記発生を通知する手段は、
パブリッシャ（３５２）へ前記発生の指示を送る手段と、
パブリッシャ（３５２）からサブスクライブリスナ（３５８）へ前記発生をパブリッシュするための手段と、
前記サブスクライブリスナ（３５８）から前記ソフトウエアスケジューリングエージェント（３０５、３１０、３１５、３２０）を呼び出すための手段と、を含む、請求項８記載の装置。
【請求項１３】
前記応答してアクションをスケジューリングするための手段は、進行中のスケジュールアポイントメントを中止すること、スケジュールアポイントメントが開始する前にスケジュールアポイントメントをキャンセルすること、新たなアポイントメントをスケジューリングすること、スケジュールアポイントメントを開始すること、スケジュールアポイントメントの持続時間を拡張すること、スケジュールアポイントメントの持続時間を縮めること、スケジュールアポイントメントをシフトすること、新たな処理能力を追加すること、古い処理能力を削除すること、アラームを設定すること、アラームをキャンセルすること、アポイントメントの状態を変更することのうちの少なくとも一つのための手段を含む、請求項８記載の装置。
【請求項１４】
前記所定のイベントと関連するアポイントメントを積極的にスケジューリングするための手段を更に有した、請求項８記載の装置。
【請求項１５】
プロセスフロー（１００）と、
コンピュータシステムと、を有し、
前記コンピュータシステムは、当該コンピュータシステム上に存在する複数のソフトウエアスケジューリングエージェント（３０５、３１０、３１５、３２０）を含み、前記ソフトウエアスケジューリングエージェント（３０５、３１０、３１５、３２０）は複数の所定のイベントに応じた処理の流れ（１００）におけるアクティビティに対するアポイントメントに応答してスケジューリングすることが可能である、自動化製造環境。
【請求項１６】
プロセスフロー（１００）において所定のイベントのうちの一つの発生を検出し、一つのソフトウエアエージェント（２６５）にその発生を通知することが出来る、複数のパブリッシャ及びサブスクライバを更に有する、請求項１５記載の自動化製造環境。
【請求項１７】
少なくとも一つの生産実行システム（２７０）及び自動化マテリアルハンドリングシステム（２８０）を更に有する、請求項１５記載の自動化製造環境。
【請求項１８】
前記コンピュータシステムは、ローカルエリアネットワーク、広域ネットワーク、イントラネット、インターネットの一部、のうちの少なくとも一つである、請求項１５記載の自動化製造環境。
【請求項１９】
前記処理の流れ（１００）は一部の半導体製造設備を有する、請求項１５記載の自動化製造環境。
【発明の詳細な説明】
【技術分野】
【０００１】
アメリカ合衆国政府は本発明に対し一括払いライセンスと、限られた状況において米国商務省、標準技術局により与えられたアワードNo. ７０ＮＡＮＢ７Ｈ３０４１の条件に規定されている適当な条件で特許権者に対し使用を許諾する権利を有する。
【０００２】
本発明は自動化製造環境に関するものであり、より具体的には、自動化製造環境でのスケジューリングに関するものである。
【背景技術】
【０００３】
高まる技術的要求と世界規模での最新電子デバイスの受け入れにより、大規模で複雑な集積回路に対し、かつてないほどの要求が生み出されている。半導体産業の競合では、製品を最も効率的な方法で設計し、製造し、売買することが要求される。これには電子産業における急速な改良に対応するための製造技術の改良が必要とされる。これらの要求に応じるために、材料と処理装置において多くの技術的進歩を生み出し、集積回路設計数を大幅に増加している。これらの改良にはコンピュータリソースの効果的な利用やそのほかの最新設備も必要とし、設計や製造だけではなく、スケジューリングや管理、製造プロセスの自動化も補助する。
【０００４】
まず製造については、集積回路あるいはマイクロチップは多くの構造や特徴を含む最新の半導体デバイスから、典型的に数マイクロメータ大に製造される。製造プロセスフロー(プロセス)は、概して、一連の製造ツールを通して多くのウエハを処理することを含む。材料層が製造中に半導体基板に追加され、半導体基板から取除かれ、そして／あるいは半導体基板上に処理され、集積回路が作られる。製造は原則的に次の４つの基本オペレーションよりなる。
・階層化、つまり様々な材料の薄層を半導体が作られるウエハへ追加する
・パターニング、つまり追加層の選択部分を取除く、
・ドーピング、つまり特定量のドーパントを追加層において開口部を介してウエハの選択部分に位置させる、および
・熱処理、つまり材料を加熱および冷却し、処理したウエハに所望の効果を与える
４つだけの基本オペレーションであるが、特定の製造プロセスにより、それらは何百もの様々な方法と組み合わせることができる。例えば、マイクロチップファブリケーション・半導体プロセスのプラクティカルガイド[Peter Van Zant著、Microchip Fabrication A Practival Guide to Semiconductor Processing（3d Ed. 1997 McGraw-Hill Companies, Inc）(ISBN 0-07-067250-4)]を参照のこと。それぞれの製造ツールは４つの基本オペレーションの一つ以上を実行している。この４つの基本オペレーションは全体のプロセスフローに従って実行され、最終的に完成した半導体デバイスを作り出す。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながらそのような集積回路を製造する半導体工場を管理することは難しい。半導体工場（”fab”）は多くのパーツ、典型的には４００００以上のウエハと、多くのパーツタイプ、典型的には１００以上のパーツタイプが同時に製造されているような複雑な環境にある。それぞれのウエハは半導体工場（つまり、“fab”）を通って移動するので、３００以上のプロセスステップを経る。その多くのステップでは同じ機械（マシン）を使用する。大きな工場では約５００のコンピュータ管理されたマシンを含み、このウエハ処理を実行している。工場を通してのルーティング、スケジューリング、材料のトラッキングはコンピュータ化した工場の管理システムのアシスタンスがあっても困難であり、複雑な仕事である。
【０００６】
半導体チップのような製品を製造するための設備を効率よく管理するには製造プロセスフローの様々な面を監視することが必要となる。例えば、手元の原料の総量や仕掛品の状態、進行中のそれぞれの段階においてのマシンやツールの状態や稼働率をトラックすることは一般的に望ましい。所定の時間に各マシン上にどのロットを流すか(should run)を選択することは最も重要な決定の一つである。加えて、製造プロセスで使用されるほとんどのマシンは定期的な予防的維持(preventative maintenance)(ＰＭ)と装置の品質保証(equipment qualification)(Ｑｕａｌ)手順のスケジューリングと、定期的に実行されなければならない別の診断および修繕手順を必要とする。これらの手順は製造プロセスフロー自体を妨げないように実行されなければならない。
【０００７】
この問題に対する一つの取り組みは自動化生産実行システム（ＭＥＳ）の実施である。自動化生産実行システムはユーザーが限られた範囲でマシンとツールの状態、つまり製造環境での“エンティティ”(entity)を見て操作することを可能にする。加えて、ＭＥＳは製造過程を通してロットあるいは仕掛品のディスパッチングとトラッキングを許容し、最も効率のよい方法でリソースが管理されるようにしている。具体的には、ＭＥＳプロンプトに応じて、ユーザーは仕掛品およびエンティティの状態に関する要求された情報を入力する。例えば、ユーザーが特定のエンティティで予防的維持つまりＰＭを実施する際に、オペレータはＰＭ（イベント）のパフォーマンスをＭＥＳスクリーンに記録し、そのエンティティの状態に関してＭＥＳデータベースに記憶された情報をアップデートする。代わりに、エンティティが修理あるいはメンテナンスのために切られる場合は、オペレータはこの情報をＭＥＳデータベースに記録する。これはその次にバックアップが記録されるまでエンティティを使用させないものである。
【０００８】
MESシステムはロットとマシンをトラッキングするのに十分であるが、そのようなシステムにはいくつかの欠陥がある。そのうち最も明らかなのは、その受身の性質、最新のスケジューリングがない、高度に自動化した工場オペレーションのサポートができない点である。現行のＭＥＳシステムは工場状態の監視と、正確な時刻での作業開始を製造作業者に大いに依存している。例えば、ウエハ工場の技術者(ＷＦＴ)が適切なＭＥＳコマンドを発するまでロットは処理を開始しない。また処理前にＷＦＴはＭＥＳコマンドを発し、マシンが利用可能なときにマシンでロットが利用できるよう十分に進んだ計画で自動マテリアルハンドリングシステム(ＡＭＨＳ)からロットを回収しなければならない。ＷＦＴが十分早くにロットを回収しない場合、あるいは利用可能な最速の時点において処理を開始することができない場合、マシンはアイドル状態になり、生産に悪影響を及ぼす。
【０００９】
典型的な自動化生産実行システムにおけるこれらの不完全さは製造プロセスの効率的な作業においてＷＦＴの重要性を強調するものである。ＷＦＴたちは多くの重要な役割を果たす。例えば、ＷＦＴたちは注意力と時間が許す限りはディスパッチング、トランスポート、処理を開始する。ＷＦＴたちは未完成のバッチを流すかどうか、対照的に追加の近づいているロットを待つか、あるいは、あるいはロットを処理しないでＰＭあるいは品質保証手順を実行するかどうか、などのスケジューリングを決定する。ＷＦＴたちは付加価値を持たないＭＥＳ処理を実施し、受身である従来の工場管理システムを利用する。このような状況において、“受身”という用語は自動起動や自動開始する、とは対照的に、管理システムにおけるアクティビティがＷＦＴによって開始されなければならないことを意味する。
【００１０】
しかしながら、ＷＦＴたちの存在によって避けることができない非効率さもある。最高のＷＦＴのパフォーマンスと最悪のＷＦＴのパフォーマンスとの間には典型的に大きな違いがある。ＷＦＴは一般的に同時に複数のツールとロット処理を監視し、個々のロットあるいはツールに集中することを困難にしている。更に、大きさや最新の製造プロセスフローの複雑さは、ＷＦＴがダウンストリームボトルネック(downstream bottlemeck)あるいはアップストリームアクティビティ(upstream activity)から生じる不足を予見し、且つ防ぐのを非常に困難にしている。ＷＦＴのシフト変更、休憩時間、非番もまた非効率性あるいは製造プロセスフローに悪影響を及ぼすマシンのアイドルタイムを生み出す。ＷＦＴの重要性が自動化ＭＥＳの不完全さによって誇張されるのと同様に、ＷＦＴの不完全さは彼らの重要性によって誇張される。
【００１１】
従って今日のウエハ工場において利用されている工場管理システムは受身であり、高度な自動化ができない。これらのシステムはＷＦＴとその他の工場スタッフに大いに依存し、工場の状態を監視し、継続して変更に反応し、短時間で論理的決定をし、タイミングよく工場管理アクティビティを開始し、調整する。これらのＷＦＴたちはエージェントであり、工場管理システムに不足している能動素子(active element)を提供する。その結果、競合の激しい半導体産業における工場の効率は稼働率、生産性、スキルレベル、およびこれらヒューマンエージェントの一貫性に完全に依存する。ＷＦＴは工場の様々な機器格納部分つまりベイに設けられた多くのツールを監視し、作動させなければならない。WFTたちはツールやベイ、マテリアルハンドリングシステムやさまざまな工場制御システムに渡り多重化を強いられる。工場の生産が偏り、さらに複雑なプロセスが導入されるので、スタッフの増員あるいはシステム能力の向上なしには高まる複雑さやボリュームを満たすのは更に困難になる。ＷＦＴたちの目に見えるアップストリーム、ダウンストリーム作業、ツール状態、仕掛品やリソースの可用性は制限される。
【００１２】
しかしながら、鍵となる論理的決定はこの限定され、そして古くなった情報に基づいていることが多く、それは工場管理システムにより部分的にだけ提供されるものである。ＷＦＴは非常に長い時間をシステムとのやりとり、工場イベントと状態変更の監視、そしてＭＥＧ記録などの付加価値をもたらさない機能の実行に使う。技術者たちは、一時的に要求される管理とを調整することはできないので、シフトの変更により工場のオペレーションが中断される。技術者たちの最大限の努力にもかかわらず、ツールの利用はサイクル時間、在庫率、工場生産高、混合を含む、別の鍵となる工場メトリクスに悪影響を及ぼす。ベイ内(intrabay)マテリアルハンドリングが１２インチのウエハを新たな３００ｍｍウエハ工場へ運ぶ必要がるので、重要な追加の複雑性が導入される。従来の工場管理システムはこのレベルの詳細なスケジューリングと実行管理を提供することが出来ない。
【００１３】
本発明は既述の一つあるいは全ての問題を解決、あるいは少なくとも低減することに関するものである。
【課題を解決するための手段】
【００１４】
本発明は様々な特徴および実施例において自動化製造環境においてスケジューリングのための方法及び装置に関するものである。一つの実施例においては、方法はプロセスフローつまりプロセスフッローにおいて所定のイベントの発生を検出すること、ソフトウエアスケジューリングエージェントにその発生を通知すること、所定のイベントの検出に応答して(reactively)、ソフトウエアスケジューリングエージェントからアクションをスケジューリングすることを有する。別の実施例はこの方法を実行するためにプログラムされたコンピュータシステムとこの方法を実施するために指示でエンコード化したコンピュータ可読記憶媒体を含む。更に他の実施例においては、発明はプロセスフローとコンピュータシステムを有する自動化製造環境を含む。このコンピュータシステムはその上に存在する複数のソフトウエアスケジューリングエージェントを含み、このソフトウエアスケジューリングエージェントは複数の所定のイベントに応答して、プロセスフローでのアクティビティに対するアポイントメントをスケジューリングすることが出来る。
【００１５】
本発明は様々な変更や変形がされてよいが、ここの具体的な実施例は図面の例により明らかにされており、ここに詳細を解説する。しかしながらここに解説されている具体的な実施例は開示されている特定の形状へえ限定するものではなく、むしろ本発明は添付の請求項によって規定されている発明の範疇に属する全ての改良、等価物、及び変形例をカバーするものである。
【発明を実施するための最良の形態】
【００１６】
本発明は添付の図面と併せて以下の説明を参照することで理解されるものであり、同じ構成要素には同じ参照番号を付している。
【００１７】
本発明の図示された実施例を以下に解説する。簡素化のため、現実の実施品における全ての特徴を本明細書に記載することはしていない。当然のことながらそのような現実の実施品の開発においては、開発者における特定の目標を達成するため、システム的制限やビジネス的制限との摺り合わせなど、多くの特定の実施の決定がなされる。それらは各実施形態によって様々に変化するものである。更に、そのような開発努力は複雑で時間を消費するものであるのは当然のことであるが、それでもなお、この開示の恩恵を有する開発者にとっては通常作業の範疇に入るものである。
【００１８】
図１は本発明によって構成され作動するプロセスフロー１００の一つの特定の実施例の一部を例示したものである。プロセスフロー１００は半導体デバイスを製造する。しかしながら、本発明は別のタイプの製造プロセスフローを応用する。従って、これまで説明してきたプロセスフロー１００においては、ウエハ１３５のロット１３０がより総称的に“ワークピース”として呼ばれる。プロセスツール１１５とその上で実行されるどのプロセスオペレーションも全ての実施例において半導体デバイスの製造と必ずしも関係している必要はない。しかしながら、簡素化と更に発明を理解するため、半導体製造に関する専門用語は図示された実施例との関連で発明を開示するにあたりそのままにしておく。
【００１９】
プロセスフローの例示部分は二つのステーション１０５を含み、各ステーション１０５はプロセスツール１１５と通信するコンピュータデバイス１１０を含む。各ステーション１０５はコミュ二ケーションリンク１２０を超えて相互に通信する。図示された実施例においては、コンピュータデバイス１１０とコミュニケーションリンク１２０は、例えばネットワーク１２５のような、より大きなコンピュータシステムの一部を有する。図１のプロセスツール１１５はウエハ１３５のロット１３０を処理しており、それは最終的に集積回路になる。プロセスフロー１００はまたＭＥＳの一部と自動マテリアルハンドリングシステム(ＡＭＨＳ)を含む。簡素化のためにどちらも図示していない。そしてそのほかの統合した工場管理を含む。このＡＭＨＳはロット１３０を処理し、プロセスフロー１００における別の位置に加え、一つのステーション１０５からもう一方への運搬つまりトランスポートを容易にする。
【００２０】
既述のとおり、コンピュータデバイス１１０は、コミュニケーションリンク１２０を通じた接続により、更に大きなコンピュータシステム１２５の一部となり得る。そのような実施品の典型的なコンピュータシステムは、ローカルエリアネットワーク（LANs）、広域エリアネットワーク（WANs）、システムエリアネットワーク（SANs）、イントラネット、あるいはインターネットでさえも含む。このコンピュータシステム１２５はネットワーククライアント／サーバーアーキテクチャを用いているが、しかし別の実施例はピアツーピアアーキテクチャを用いてもよい。従って、別のいくつかの実施例では、コンピュータデバイス１１０が直接相互に通信する。コミュニケーションリンク１２０は例えばワイアレス、同軸ケーブル、光ファイバ、あるいはツイストペア線リンクである。コンピュータシステム１２５とコミュニケーションリンク１２０は、一つを用いている実施例においては、具体的な実施品であり、従来公知のどのような適当な方法で実施されてもよい。コンピュータシステム１２５は例えばＴＣＰ／ＩＰ(Transmission Protocol/Internet Protocol)等の、既存の適切なコミュニケーションプロトコルのいずれを用いてもよい。
【００２１】
図２はコンピュータデバイス１１０のハードウエアおよびソフトウエアアーキテクチャの選択部分を描いている。ハードウエアおよびソフトウエアアーキテクチャのいくつかの特徴（例：特定のカード、基本入出力システム（BIOS）、インプット／アウトプットドライバなど）は図示されていない。これらの特徴は簡素化のため、そして本発明を曖昧なものにしないように省略されている。この開示の恩恵を有する当業者にとっては当然のことであるが、しかしながらこのコンピュータデバイス１１０のソフトウエアおよびハードウエアアーキテクチャは多くのそのような通例の特徴を含む。
【００２２】
図示された実施例においては、コンピュータデバイス１１０はワークステーションであり、ＵＮＩＸベースのオペレーティングシステム２００を用いている。しかし、本発明はそれに限定されるものではない。コンピュータデバイス１１０はノートブックコンピュータ、デスクトップコンピュータ、ミニコンピュータ、メインフレームコンピュータ、スーパーコンピュータなど、事実上あらゆるタイプの電子コンピュータデバイスにおいて実施される。コンピュータデバイス１１０は別の実施例においては、プロセスツール１１５に埋め込まれたプロセッサあるいはコントローラであってもよい。本発明もまたＵＮＩＸベースのオペレーションシステムに限定されるものではない。別のオペレーティングシステム（例：ウインドーズTMベース、Linux TMベース、あるいはディスクオペレーティングシステム（ＤＯＳ）ベース）もまた用いられる。本発明はコンピュータデバイス１１０におけるそのような特徴の特定の実施品により限定さるものではない。
【００２３】
コンピュータデバイス１１０はまたバスシステム２１５を通じて、記憶装置２１０と通信するプロセッサ２０５を含む。記憶装置２１０は典型的には少なくともハードディスク（図示せず）とランダムアクセスメモリ(ＲＡＭ)（図示せず）を含む。コンピュータデバイス１１０はまた、いくつかの実施例においては、光ディスク２３０あるいはフロッピー電子磁気ディスク２３５、あるいはその他の形状で磁気テープ（図示せず）あるいはジップディスク（図示せず）などの取り外し可能な記憶装置を含む。コンピュータデバイス１１０はモニタ２４０、キーボード２４５、マウス２５０を含み、これらは、それぞれに関連するユーザーインターフェースソフトウエア２５５とともに、ユーザーインターフェース２６０を有する。図示された実施例におけるユーザーインターフェース２６０は、本発明を実施するにあたり必須ではないが、グラフィカルユーザーインターフェース（ＧＵＴ）である。
【００２４】
図示された実施例において、各コンピュータデバイス１１０は、記憶装置２１０の中に存在するソフトウエアエージェント２６５を含む。ここで留意すべきは、ソフトウエアエージェント２６５はプロセスフロー１００において、コンピュータデバイス１１０とは別の場所に存在してもよいことである。ソフトウエアエージェント２６５の位置は本発明の実施には関係ない。また更に留意すべきは、ソフトウエアエージェント２６５の位置は関係ないため、いくつかのコンピュータデバイス１１０はその上に存在する多数のソフトウエアエージェント２６５を有してもよいことである。一方で別のコンピュータデバイス１１０は一つのソフトウエアエージェント２６５も有さない。従って、コンピュータデバイス１１０とプロセスツール１１５との間は一対一対応である必要はない。ワークストリーム(WORKSTREAM TM)などの自動化ＭＥＳとＡＭＨＳのそれぞれのソフトウエアコンポーネント２７０、２８０もまた、少なくとも一つのコンピュータデバイス１１０の上に存在する。ソフトウエアエージェント２６５と同様に、ソフトウエアコンポーネント２７０、２８０はプロセスフロー１００のどこに存在してもよい。
【００２５】
図１と図２を参照して、各ソフトウエアエージェント２６５はそれぞれ、いくらかの“製造ドメインエンティティ”を表しており、例えばロット１３０、プロセスツール１１５、リソース、ＰＭあるいはＱｕａｌなどである。プロセスツール１１５は、ウエハ１３５のいくつかの部分を製造するために使用される製造ツールであり、すなわち、層、パターン、ドープ、あるいはウエハ１３５をする熱処理である。あるいはプロセスツール１１５はプロセスフロー１００の様々なパーツのパフォーマンスを評価するために使用される測定ツールである。ソフトウエアエージェント２６５はあわせて効率のよいスケジューリング、および製造プロセスを通してウエハ１３５のロット１３０を管理する責任がある。これらの目的を増進させるため、ソフトウエアエージェント２６５はＭＥＳとＡＭＨＳのソフトウエアコンポーネントのそれぞれ２７０、２８０と連動させ、別の既存の工場管理システム（図示せず）と統合する。ソフトウエアエージェント２６５はまた必要に応じてプロセスツール１１５と別の装置をソフトウエア実施“装置インターフェース”（EI）（図示せず）によって連動させている。この開示によって恩恵を受ける当業者にとっては当然のことであるが、この連動と統合が発生することは具体的な実施品であり、ＭＥＳ、ＡＭＨＳの構成や構造、そして別の工場管理システムに依存している。
【００２６】
本発明で特に興味深いのは、ソフトウエアエージェント２６５は、対応する製造ドメインエンティティの代わりに、応答的にアクティビティをスケジュールし、開始し、実行することである。図示された実施例においては、ソフトウエアエージェント２６５は、また積極的にアクティビティをスケジューリングする。あわせて、ソフトウエアエージェント２６５はとりわけ、各ロット１３０の前に一つ以上のオペレーションを特定の制限されたプロセスツール１１５をスケジューリングする。それにはトランスポートと必要とされるリソースを含む。詳細は以下で検討する。これには近づいているロットを待つのとは対照的に、完了していないバッチを流すなどの最適化決定と、仕様を満たすためにこの機に便乗した予防的維持（ＰＭ）プロシージャ、あるいは品質試験（Ｑｕａｌｓ）スケジューリングを含む。ソフトウエアエージェント２６５はロットのトランスポートと処理、ＭＥＳ処理を実行、処理とトランスポートを監視、スケジュールされていないアクティビティに反応、スケジュールアクティビティから逸脱、などのアクティビティをスケジュールし開始する。更に図示された実施例においては、ソフトウエアエージェント２６５はユーザーがプロセスフロー１００のパフォーマンスを調整するためにそれらの動作に影響を及ぼすことができる。
【００２７】
図示された実施例においては、スケジューリングエージェント２６５はそれらが表す製造ドメインエンティティにより分けられる。実施品によって多くの異なるタイプのスケジューリングエージェント２６５がある。図３に明らかな実施形態における主要なタイプのスケジューリングエージェント２６５は以下のものを含む。
・ウエハ１３５のロット１３０の代わりにアクティビティをスケジューリングするロットスケジューリングエージェント(ＬＳＡ)３０５
・プロセスツール１１５の代わりにアクティビティをスケジューリングするマシンスケジューリングエージェント(ＭＳＡ)３１０
・ＰＭとＱｕａｌ（図示せず）の代わりにアクティビティをスケジューリングするＰＭスケジューリングエージェント(ＰＭＳＡ)３１５
・リソース（図示せず）の代わりにアクティビティをスケジューリングするリソーススケジューリングエージェント(ＲＳＡ)３２０
しかしながら、これらの明らかにされているものに加え、あるいは代わりに、別のタイプのものが用いられてよい。図示された実施例におけるこれらのスケジューリングエージェント２６５のそれぞれの役割や機能は以下で更に十分検討される。
【００２８】
これらのアクティビティのいくつかは本発明によって応答的にスケジュールされる。すなわち、例えばプロセスグロー１００で発生しているイベントに対しスケジュールされる。一つの具体的な実施形態では以下を含む。
【００２９】
・例えばプロセスフロー１００などのプロセスフローにおいて所定のイベントの発生を検出する
・例えばＬＳＡ３０５、ＭＳＡ３１０、ＰＭＳＡ３１５あるいはＲＳＡ３２０などのサブスクライビングソフトウエアスケジューリングエージェントにその発生を通知する
・所定のイベントの検出に応答してアクションをスケジューリングする
この所定のイベントおよび応答的なスケジュールアクションは、実施態様ごとに特定のものとなる。いくつかの典型的なイベントと応答的なスケジュールアクションは以下で更に検討される。
ここで留意すべきは、このタイプの応答的スケジューリングは、そのようなイベントがプロセスフロー１００において発生しているという情報を示す。このためソフトウエアエージェント２６５は図示されていないが、“パブリッシャ”（あるいはノーティファイア）と“サブスクライバ”として知られる、追加のソフトウエアコンポーネントに応答する。エージェントは一つ以上のノーティファイアにサブスクライブするリスナを生み出す。ノーティファイアは工場内で変更が発生した場合にそれらのサブスクライブリスナへイベントをパブリッシュする。次にリスナはそれらのサブスクライブソフトウエアエージェント２６５を呼び出す。例えば、ＭＳＡが作られるときは、エージェントは特定のマシンイベントにサブスクライブするマシンリスナを作る。ＭＳＡは特定のマシンで発生するどの変更も受信することに関心がある。例えば、マシンの稼働率が変化した場合、パブリッシャはその全てのリスナに対しイベントをパブリッシュする。次いでマシンリスナはイベントについてサブスクライブＭＳＡに通知する。サブスクライブＭＳＡは適切に反応する。
【００３０】
さらに具体的には、ソフトウエアエージェント２６５が作られるときには、それらはリスナを作り、そのリスナをイベントパブリッシャに追加することによりパブリッシュイベントにサブスクライブする。リスナはソフトウエアエージェント２６５が適切な方法でプロセスフロー１００におけるイベントに反応するのを可能にする。以下の表１は図示された実施例において用いられた関連のあるソフトウエアエージェント２６５をリストにしたものであり、ソフトウエアエージェントが作るリスナとそれらの機能の解説である。ここで留意すべきはこの方法でリスナとノーティファイアを介してパブリッシャとサブスクライバを用いることは従来公知であり、どのような適切な技術でも用いられてよいことである。
【００３１】
表１  ソフトウエアエージェントおよび関連リスナ
│ソフトウエアエー│関連リスナ          │サブスクライブの理由          │
│ジェント        │                    │                              │
│                │                    │                              │
│ＲＳＡ(例：リソ │装置イベントリスナ  │装置インターフェースからイベン│
│ースローディング│                    │トをリスンする。イベントはロー│
│エージェント)   │                    │ド開始、チャージ開始、ロード完│
│                │                    │了、チャージ完了、などを含む。│
│                │マシンリスナ        │マシン上で発生するＭＥＳイベン│
│                │                    │トをリスンする。例えば、マシン│
│                │                    │が利用できず、適切に反応すると│
│                │                    │きにリスンする。              │
│                │プロセスオペレーショ│マシンの処理能力を変更する可能│
│                │ンリスナ            │性があるのでプロセスオペレーシ│
│                │                    │ョン内で変更をリスンする。    │
│                │プロセスリスナ      │マシンの処理能力を変更する可能│
│                │                    │性があるのでプロセス内で変更を│
│                │                    │リスンする。                  │
│                │アラームリスナ      │スケジュールアクティビティに対│
│                │                    │し、開始時刻あるいは終了時刻に│
│                │                    │設定されたアラームをリスンする│
│                │                    │。                            │
│                │スケジュールアドバタ│開始していないスケジュールアポ│
│                │イズメントリスナ    │イントメントに対し“通知された│
│                │                    │”タイムスロットをリスンする。│
│                │アポイントメント状態│カレンダーに影響を及ぼす可能性│
│                │変更リスナ          │のある別のエージェントのスケジ│
│                │                    │ューリングカレンダー上にある対│
│                │                    │応のどのアポイントメントもリス│
│                │                    │ンする。                      │
│                │                    │                              │
│ＬＳＡ          │アラームリスナ      │スケジュールアクティビティに対│
│                │                    │し開始時刻あるいは終了時刻に設│
│                │                    │定されたアラームをリスンする  │
│                │ロットリスナ        │製品変更、優先度変更、ウエハー│
│                │                    │数など、ロット上で発生するＭＥ│
│                │                    │Ｓイベントをリスンする        │
│                │ＡＭＨＳリスナ      │ＬＳＡによって表示されるロット│
│                │                    │の位置変更をリスンする        │
│                │アポイントメント状態│カレンダーに影響を及ぼす可能性│
│                │変更リスナ          │のある別のエージェントのスケジ│
│                │                    │ューリングカレンダー上にある対│
│                │                    │応のどのアポイントメントもリス│
│                │                    │ンする。                      │
│                │                    │                              │
│ＭＳＡ          │アラームリスナ      │スケジュールアクティビティに対│
│                │                    │し開始時刻あるいは終了時刻に設│
│                │                    │定されたアラームをリスンする。│
│                │プロセスオペレーショ│マシンの処理能力を変更する可能│
│                │ンリスナ            │性があることから、プロセスオペ│
│                │                    │レーション内で変更をリスンす  │
│                │                    │る。                          │
│                │マシンリスナ        │マシン上で発生しているＭＥＳイ│
│                │                    │ベントをリスンする。例えば、マ│
│                │                    │シンが利用できないときにリスン│
│                │                    │する。                        │
│                │アポイントメント状態│そのカレンダーに影響を及ぼす可│
│                │変更リスナ          │能性のある別のエージェントのス│
│                │                    │ケジューリングカレンダー上にあ│
│                │                    │る対応のどのアポイントメントも│
│                │                    │リスンする。                  │
│                │チェンバリスナ      │ダウンタイム、ＰＭ、あるいはＱ│
│                │(Chamber Listener)  │ｕａｌなど、チェンバレベルで発│
│                │                    │生するＭＥＳイベントをリスンす│
│                │                    │る。                          │
│                │プロセスリスナ      │マシンの処理能力を変更する可能│
│                │                    │性があることから、プロセスオペ│
│                │                    │レーション内で変更をリスンす  │
│                │                    │る。                          │
│                │装置イベントリスナ  │装置インターフェースからイベン│
│                │                    │トをリスンする。イベントはマシ│
│                │                    │ンポートへのキャリアの到達、処│
│                │                    │理の開始、処理のほぼ完了、キャ│
│                │                    │リアの離脱(carrier depated)な │
│                │                    │どを含む。                    │
│                │                    │                              │
│ＰＭスケジューリ│チェンバリスナ      │ダウンタイム、PM、あるいはQual│
│ングエージェント│                    │など、チェンバレベルで発生する│
│(ＰＭＳＡ)      │                    │MESイベントをリスンする。     │
│                │マシンリスナ        │マシン上で発生しているＭＥＳイ│
│                │                    │ベントをリスンする。例えば、マ│
│                │                    │シンが利用できないときにリスン│
│                │                    │する。                        │
│                │Ｑｕａｌコレクション│新たなＱｕａｌあるいは削除され│
│                │リスナ              │たどのＱｕａｌもリスンする。  │
│                │ＰＭコレクションリス│新たなＱｕａｌあるいは削除され│
│                │ナ                  │たどのＰＭに対してもリスンす  │
│                │                    │る。                          │
│                │アポイントメント状態│トラックはカレンダーに影響を及│
│                │変更リスナ          │ぼす可能性のあるどのアポイント│
│                │                    │メントも変更する。            │
【００３２】
表１から明らかなように、その中にリストアップされているソフトウエアエージェント２６５はそれらのカレンダーに影響を及ぼす可能性のあるアポイントメントの変更をリスンする。例えば表１と併せて図５（以下で詳細を更に検討）を検討する。図５は様々なアポイントメント(ＳＥＴＵＰ１、ＬＯＴ１、ＭＯＶＥ１、ＴＯＯＬ１、ＰＭ、ＱＵＡＬなど)を例示しており、それらはそれぞれの様々なエージェント（ＴＯＯＬ１に対するＭＳＡ、ＬＯＴ１に対するＬＳＡ、ＰＭＳＡおよびＲＳＡ）に対してカレンダー内に含まれている。例えば、ＭＳＡカレンダーはプロセスアポイントメントＬＯＴ１を含み、それはＬＳＡカレンダー上にあるプロセスアポイントメントＴＯＯＬ１に対応している。これら二つのアポイントメントは実際は同じイベント（すなわち、ＴＯＯＬ１上でＬＯＴ１を処理）に対するものである。それらは二つの異なるエンティティ（すなわち、ロットＬＯＴ１とプロセスツールTOOL１）に対し、二つの異なるエンティティ（すなわち、それぞれＭＳＡとＬＳＡ）により作られたものである。
【００３３】
図３と図５の両方を参照する。対応するアポイントメント（例：ＬＯＴ１、ＴＯＯＬ１）が作られる際に、これらのアポイントメント自体は、例えば図３のリスナ３５６、３５８などのリスナのコレクション（collection of listeners）を含む。リスナは、別のソフトウエアエージェント２６５がアポイントメントが変更したことを通知してもらいたいときにアポイントメントに追加される。この場合、ＭＳＡカレンダー３７０上のロットプロセスエージェントＬＯＴ１は、プロセスアポイントメントＬＯＴ１が変更した場合にノーティファイア３５４を通してＬＳＡ３０５に知らせるリスナ３５６を含む。一方、ロットアポイントメントＴＯＯＬ１は変更する場合にノーティファイア３５２を通してＭＳＡ３１０に通知するリスナ３５８を含む。ＭＳＡ３１０がプロセスアポイントメントＬＯＴ１を変更する場合、ＬＳＡ３０５はアポイントメントの変更を通知され、それに応じてアポイントメントＴＯＯＬ１を変更する。従ってリスナはソフトウエアエージェント２６５が対応するアポイントメントを同期化するのを可能にする。また、ソフトウエアエージェント２６５は適宜そのような所定のイベントを応答的にスケジューリングすることができ、次いで別のソフトウエアエージェント２６５によって変更がなされるので、それらのカレンダーのアップデートをし続けることができる。
【００３４】
ソフトウエアエージェント２６５がアポイントメントの変更に応答するときは、ソフトウエアエージェント２６５は対応するアポイントメントを慎重に操作する。ある場合には、二つのソフトウエアエージェント２６５が同時にそれぞれの対応するアポイントメントを操作することは不適当である。従って単一のソフトウエアエージェント２６５がそれに対応するアポイントメントを操作する責任があり、次いでそれが対応するアポイントメントのソフトウエアエージェント２６５を促し、それに対応するアポイントメントを操作する。例えば図５において、ＬＳＡ３０５はムーブアポイントメントＭＯＶＥ１を含み、その次にロットプロセスアポイントメントＴＯＯＬ１が続く。ムーブアポイントメントＭＯＶＥ１に対し終了時刻に達したが、アポイントメントが終了していない場合、アラームリスナがＬＳＡ３０５に通知する（“アラーム”はリスンされるイベントタイプの一つであり、詳細は以下で検討する）。次いでＬＳＡ３０５は変更可能な時間によってムーブアポイントメントＭＯＶＥ１の持続時間を拡張し、さらにムーブアポイントメントＭＯＶＥ１の拡張に対応するためにロットプロセスアポイントメントＴＯＯＬ１をシフトする。
【００３５】
同時に、ＭＳＡ３１０に対するアラームリスナはロットプロセスアポイントメントＴＯＯＬ１の開始が到達したことを通知する。いつプロセスツール１１５に到達すべきかを、ＬＳＡ３０５が最もよく決定できことから、ロットＬＯＴ１は、ＬＳＡ３０５はムーブアポイントメントを拡張した後に、ロットプロセスアポイントメントＴＯＯＬ１の開始時刻をシフトする。ＭＳＡ３１０はそのアポイントメント状態の変更リスナを待ち、それをロットプロセスアポイントメントへのシフトを通知し、その対応するロットプロセスアポイントメントを見つけ、そしてそれを適宜シフトさせる。このような状況において、ＭＳＡ３１０はそれ自身の開始時刻のアラームを無視する。図示していないが、ロット１３０、プロセスツール１１５、リソース、そしてＰＭとＱｕａｌは、図示はしていないが、全て対応の“プロセス”エージェントを有し、処理が必要な重要なイベントが発生した際にはスケジューリングエージェントによって通知される。
【００３６】
積極的且つ反応の早いスケジューリング動作デューティ促進のため、ソフトウエアエージェント２６５は、概念的に図４に例示されているような、スケジュール“アポイントメント”のカレンダーを保持している。図４は、概念的には、例えば多くのロット１３０に対するプロセスツール１１５、に対するアポイントメントに関する情報を含むカレンダーを示す。“アポイントメント”とはプロセス１１５がそれ自体に強制してプロセスオペレーションを実行する特定の時間枠のことであり、またアポイントメント開始時刻（Apointment Start Time:ＴＳ）とアポイントメント終了時刻（Apointment End Time:ＴＥ）により定義される。例示された実施例において、アポイントメントは“コミットメントウインドウ”(ＣＷ)内に予約され、あるいは処理に対する最も早い開始時刻(earliest start time:ＥＳＴ）と最も遅いデリバリ時間（latest delivery time:”LDTP”）により定義されるタイムウインドウ内に予約される。クライアントのロット１３０はＥＳＴまでにプロセスツール１１５に到達することをコミット(commit)し、プロセスツール１１５はＬＤＴまでに処理を完了することをコミットする。しかしながらここで留意すべきは、コミットメントウインドウの使用は本発明の実施には必要ないことである。
【００３７】
図４において、プロセスツール１１５は、Ｌｏｔ１からＬｏｔ４に対し、予約したアポイントメント、それぞれＡｐｐ１からＡＰＰ４、を有している。従って、Ｌｏｔ１からＬｏｔ４に対するカレンダー情報は次のとおりである。
Ｌｏｔ1: ＡＰＰ1[t10,t12],ＣＷ1[t8,t１4]
Ｌｏｔ2: ＡＰＰ2[t13,t15],ＣＷ2[t9,t1６]
Ｌｏｔ3: ＡＰＰ3[t5,t7], ＣＷ3[t2,t11]
Ｌｏｔ4: ＡＰＰ4[t3,t4], ＣＷ4[t1,t6]
ここで留意すべきは、図示された実施例においては、コミットメントウインドウのいくつかがオーバーラップしていることである、しかし、アポイントメントはどれもオーバーラップしていない。アポイントメントは他のアポイントメントとオーバーラップしない限りは、コミットメントウインドウ内でシフトされ、あるいは拡張、収縮、キャンセル、スケジュール変更。更なる詳細は以下で検討する。しかしながら、実施形態によってはアポイントメントの一部はオーバーラップすることもある。
【００３８】
従って、図３に戻って、例えばプロセスアポイントメント３７５のようなアポイントメントはスケジューリングエージェント３０５など、それぞれのスケジューリングエージェントにより保持されているカレンダー３８５や３７０などのカレンダー上に積極的に予約される。しかしながらここで留意すべきは、全てのアポイントメントがプロセスアポイントメントではないことである。プロセスアポイントメント３７５が新たに予約される場合、常に、ＬＳＡ３０５は、ロット１３０が新たに予約されたプロセスアポイントメント３７５の位置へと移動するようムーブアポイントメントをスケジューリングする。例えば、再度図１を参照すると、第一のプロセスツール１１５上に処理されるロット１３０がポート１４０から出て、スケジュールされたプロセスアポイントメント３７５に対し、第二のプロセスツール１１５のポート１４５へ到達しなければならない場合を仮定する。各ＬＳＡはロット１３０に対しアポイントメントをスケジュールし、第一のプロセスツール１１５のポート１４０と第二のプロセスツール１１５のポート１４５などのソースと目的地の位置との間を移動する。
【００３９】
図５は、概念的に３つの異なるタイプのエンティティに対し保持されている３つの関連したカレンダー、ロット１３０、プロセスツール１１５、予防的維持（ＰＭ）を描いており、異なるタイプのアポイントメントがその上に予約されている。図４に対して図５では、所定のカレンダーに対する全てのアポイントメントは一つのタイムラインに折りたたまれている。それぞれのアポイントメントに対するコミットメントウインドウはこの折りたたみを容易にするため、そして過度に図を混乱させないように省略されている。さらに具体的には、図５が例示しているのは
・プロセスツールＴＯＯｌ１に対するカレンダーであり、プロセスツールＴＯＯｌ１に対し、ＭＳＡにより保持され、セットアップに対し予約されたアポイントメントを含む（例：ＳＥＴＵＰ１、ＳＥＴＵＰ2）；ロットプロセスアポイントメント（例：ＬＯＴ１、ＬＯＴ２、ＬＯＴ３）；予防的維持（例：ＰＭ）、品質保証（例：ＱＵＡＬ）
・ロットＬＯＴ１に対し、ＬＳＡにより保持されているロットＬＯＴ１に対するカレンダーであり、その上に移動用アポイントメント（例：ＭＯＶＥ１、ＭＯＶＥ２、ＭＯＶＥ３，ＭＯＶＥ４、ＭＯＶＥ５）とロットプロセスアポイントメント（例：ＴＯＯＬ１、ＴＯＯＬ２）が予約されている；そして
・ＰＭＳＡにより保持されているＰＭに対するカレンダーであり、その上に予防的維持（例：ＰＭ）、品質保証（例：ＱＵＡＬ）に対するアポイントメントが予約されている。
更に別のタイプのアポイントメントが予約される。例えば、プロセスツールＴＯＯＬ１が故障した場合、すなわち、処理にもはや利用できない場合、“ダウンタイムアポイントメント”がそのカレンダー上に予約され、予想される修復時間を表す。ここで留意すべきは、図５のカレンダーにおけるこれらアポイントメントのそれぞれは、第一に、ソフトウエアエージェント２６５がそれらが表示する製造ドメインエンティティに従って積極的にスケジューリングするイベントに対するものであることである。
【００４０】
図３のプロセスアポイントメント３７５などのアポイントメントはいくつかの“状態”のうちの一つに存在し、あるいはどの所定の時間でも特定の“状態”を有する。実施形態においてその状態は次のとおりである。
・仮の状態−アポイントメントは作られているが予約はされていない（後で検討）
・準備が整っていない−仮のアポイントメントは予約されたが実行するには準備が出来ていない
・準備が出来ている−アポイントメントにおいて含まれるロット１３０が予約されるプロセスツール１１５に到着している
・アクティブ−アポイントメントの開始時刻に達し、全てのパーティシパントは動作可能である
・アクティブＰＭ／Ｑｕａｌ−ＰＭアポイントメントのＱｕａｌ部に続く開始時刻が到達する
・処理−スケジューリングアクティビティの開始、すなわち、プロセスツール１１５により開始命令が確認された、あるいはＰＭまたはＱｕａｌが開始した
・ＰＭ／Ｑｕａｌ処理−ＰＭのフォローアップQual部開始
・ほぼ完了−所定のパラメータ（例：処理時間残、ウエハ数）により定義されているようにアポイントメントがほぼ完了
・完了−プロセスが完了
・キャンセル−予約されたアポイントメントを処理状態に入る前にカレンダーから削除する
・中止−処理状態において処理の間にアポイントメントが中止
仮状態のアポイントメントは予約されるまでは仮のままであり、そのため準備の整っていない状態に入る。アポイントメントはロット１３０がプロセスツール１１５に到達するまでは準備が整わない。次いでアポイントメントはプロセスツール１１５が処理を開始したことを確認するまでアクティブ（すなわちアポイントメントが開始する）になる。アポイントメントが一旦処理されると、ほぼ完了するまではその状態のままであり、次いで完了する。処理状態に入る前にカレンダーからアポイントメントが削除される場合、アポイントメントは“キャンセル”され、システムから削除される。処理状態であれば、アポイントメントは中断した場合は“中止”される。完了したアポイントメントあるいは中止されたアポイントメントはシステムから削除されるまではこの状態のままである。
【００４１】
しかしながら、本発明によれば、ソフトウエアエージェント２６５はまたプロセスフロー１００における展開の結果生じるそれぞれの製造ドメインエンティティに応答して、イベントをスケジューリングする。典型的にはソフトウエアエージェント２６５による応答なスケジューリングは、まず始めに積極的にスケジューリングしたアポイントメントへの変更に影響を与える。しかしながらこれは本発明の実施には必要ではない。例えば、一つの具体的な実施形態では、ソフトウエアエージェント２６５はマシンの故障に対しアクティビティをスケジューリングする。そのマシンの故障でマシンに処理を停止させ、マシン修理のためにダウンタイム期間を必要とする。そのようなイベントに対し、通常は積極的なスケジュールアポイントメントはない。というのもそのようなマシンの故障は通常は前もって予測できないからである。
【００４２】
更に具体的には、ソフトウエアエージェント２６５は、通常、プロセスフロー１００内で発生する別のイベントに反応する。これらのイベントは前もって識別される。すなわち、“あらかじめ定められている（predetermined)”。そのため、これらのイベントに対する適当なアクティビティが明確にされる。適当なアクションは関連の製造ドメインのタイプだけではなく、関連のイベントタイプを含んだ、多くのファクターによって決まる。所定のイベントは実施形態においては、アポイントメント状態変更、工場状態の変更、アラームイベントの3タイプのうちの一つとして分類されている。
【００４３】
通常、スケジューリングエージェント３０５、３１０などのソフトウエアエージェント２６５がプロセスアポイントメント３７５などのアポイントメントを変更する場合、アポイントメント状態の変更が発生する。ソフトウエアエージェント２６５はアポイントメントの状態を変更し、アポイントメントを拡張あるいは収縮し、アポイントメントをキャンセル、アポイントメントをシフトし、あるいは別の操作をカレンダーに、あるいはカレンダー上にアポイントメントを実行する。アポイントメントが変更される場合、適したエージェント２６５が変更に反応する。例えば、ＭＳＡ３１０はアポイントメント３７５が遅れているためにそれのカレンダー３７０上にアポイントメント３７５のスケジュールされた持続時間を拡張する。ＬＳＡ３０５は対応のアポイントメント３７５をそれのカレンダー３８５上に拡張することによりその変化に反応し、二つのカレンダー３７９、３８５を超えてアポイントメント３７５を同期化する。アポイントメントの状態変更は例えば、アポイントメントのキャンセル、アポイントメントの拡張、アポイントメントの収縮、アポイントメントの中止、アポイントメントの状態変更、アポイントメントのシフト、そしてコミットメントウインドウのアップデートを含む。
【００４４】
工場の状態変更は通常、プロセスフロー１００などの工場の状態が変更する場合に発生する。工場状態の変更イベントはＭＥＳ２７０（図２）、ＡＭＨＳ２８０（同様に図２）、あるいはプロセスツール１１５に対する装置インターフェース（ＥＩ図示せず）に由来するものである。工場状態の変更はロット期限の変更、ロットを保留状態にする、プロセスあるいはロットのプロセスオペレーションの変更、ロット位置の変更、キャリアがマシンポートに到達する、などを含む。所定の、全ての工場の状態変更に対してソフトウエアエージェント２６５は適宜に反応する。典型的な工場の状態変更はダウンタイムの発生、マシンが利用できるようになる、ＰＭ／Ｑｕａｌが検出される、チェンバが故障する、ロットがマシンから外れる、移動が完了する、ウエハが完了する、を含む。
【００４５】
この具体的な実施形態においては、特定のアラームが時間になったときにアラームイベントが発生する。アラームイベントを受信したとき、例えばロットアポイントメントに対するアポイントメント終了時刻に達したとき、エージェントは反応する。マシンエージェントがアポイントメントが終了したとの通知を受信しない場合、マシンエージェントはアポイントメントの合計の持続時間の変更可能なパーセンテージに基づきアポイントメントを拡張する。一旦アポイントメントを拡張すると、マシンエージェントはアポイントメントの新たな予想される終了時刻に対して新たにアラームを設定する。例えばアラームイベントはアポイントメント開始時刻に対するアラームの始動、あるいはアポイントメント終了時刻に対するアラームの始動である。
【００４６】
ここで留意すべきは、計画されていない、あるいは予想外のイベントもあるということである。例えば、スケジュールしたＰＭあるいはＱｕａｌ期間に対して故障しない限りは、実際はマシンあるいはチェンバがいつ故障したのかを知るための信頼できる方法はない。これらのイベントのいくつかは予想される。例えば、プロセスツール１１５のポート１４５にロット１３０が到達する時間は、時間通り到達するのであれば、その移動はスケジュールされているので知られなければならない。実施形態の中にはそのようなイベントに対し、スケジュールが合うと仮定し、そしてスケジュールが合わない場合にだけ応答的にスケジュールことを選ばずに、応答的にスケジュールしないことを選択するものもある。ここで留意すべきは、別の実施例では、これらの説明に追加あるいはこれらの説明の代わりのどちらにもリストアップされていないイベントに応答的にスケジューリングする場合もある。
【００４７】
特定のイベントが発生すると実行される応答的スケジューリングは、イベントの性質により決定し、そしてある程度は、特定の実施により決まる。一般的に言えば、応答的スケジューリングは典型的には前もってスケジュールした、あるいは予約した図３のアポイントメント３７５などのアポイントメントの変更を含む。予約したプロセスアポイントメントとＰＭ／Ｑｕａｌアポイントメントはシフト、拡張され、中止され、収縮され、キャンセルされ、スケジュール変更がされてよい。移動とセットアップアポイントメントは必要に応じて、ロットプロセスアポイントメントが変更されるときに変更される。図示されている実施例においては、これらのアポイントメント変更はＬＳＡ３０５あるいはＭＳＡ３１０により実行される。
【００４８】
例えば、予約されたプロセスアポイントメントはシフトすることも可能であり、それにより予約されたムーブアポイントメントはキャンセルされ、中止され、あるいはスケジュール変更される。アポイントメントは"糸に通したビーズ（beads on a string）"と見なされる。既存のアポイントメントはそれぞれのコミットメントウインドウ内でスケジューリングの変更に対応するため、時間内で前後に（すなわち、図４と図５において右あるいは左）スライドできる。図示された実施例では、論理を簡素化するため、アポイントメントはいずれの方向にも次のアポイントメントを過ぎてシフトすることができない。
【００４９】
ロット１３０に対するロットプロセスアポイントメントが予想よりも早く完了した状況を検討する。このことはＭＳＡ３１０に対し"早い開始"として知られる応答的スケジュールをする機会を提供する。それは図３のＭＳＡ３１０がアイドル状態であり、ＭＳＡ３１０は早い開始時刻に次のアポイントメントをシフトするよう試み、直ちにそれを開始するからである。ロット１３０がプロセスアポイントメントを早く完了した場合、ＭＳＡ３１０は次のスケジュールアポイントメントを時間内で前にシフトすることによって反応し、早く開始する機会をうまく活用している。ＬＳＡ３０５はロットプロセスの完了が早いイベントには違う反応をする。
【００５０】
これについての事例は図６Ａにおいて明らかであり、この図においては、現在時刻ｔｃが次のアポイントメントＡｐｐ１に対してコミットメントウインドウＣＷ１内に収まっている。次いで次のアポイントメントＡｐｐ１は左にシフトし、あるいは時間内で前にシフトする。そのため処理がすぐに開始できる。次の予約アポイントメントがシフトできずに現在時刻に開始できないとき、ＭＳＡ３１０は現在時刻あるいはより早くに開始するコミットメントウインドウを有する別の予約アポイントメントを探す。これら予約アポイントメントのうちのひとつは別の予約アポイントメントをキャンセルすることなく直ちに開始するために移動可能な場合、予約アポイントメントは"飛び越え"の方法で移動され、その他の予約アポイントメントは必要に応じてシフトされる。このシナリオは図６において明らかであり、そこではプロバイダがアイドル状態である現在時刻ｔｃは次の予約アポイントメントＡｐｐ１に対し、コミットメントウインドウＣＷ１の外側にある。しかし３番目の予約アポイントメントＡＰＰ３のコミットメントウエンドウＣＷ3内に収まる。これにより３番目のアポイントメントＡＰＰ３は"飛び越え"オペレーションを実行し、アポイントメントＡｐｐ１とＡＰＰ２を飛び越え、そしてアポイントメントＡｐｐ１はアポイントメントＡＰＰ３に続いてすぐに後の開始時刻へ右にシフトされる。
【００５１】
いずれの場合でも影響を受けたロット１３０に対するＬＳＡ３０５はそれらのアポイントメントが変更したことによって通知される。開始時刻と終了時刻との違いはスケジュールされた移動の適切性もまた変更する。例えば、予約アポイントメントが左にシフトされた場合、開始時刻が早いことは、ロット１３０が、現在スケジュールされている移動により提供されるよりも早く到達する必要があることを意味する。反対に、開始時刻が遅いことは、ロット１３０が、遅く移動しなければならないことを意味する。いずれの状況においても変更された移動はロット１３０に対し正しい到達時間を達成するのに適している。
【００５２】
ソフトウエアエージェント２６５が現在のアポイントメントの持続時間のために、あるいはその直前のアポイントメントが予想より長いために応答的にスケジューリングする状況を検討する。ＬＳＡ３０５とＭＳＡ３１０がアポイントメントを予約する場合、それらは"終了時刻アラーム"（図示せず）を設定する。その終了時刻アラームはアポイントメントが完了するようにスケジューリングがなされると、そのようにスケジューリングがなされたことをそれらに通知する。タスクが完了する際に、スケジューリングエージェント３０５、３１０は通知され、これらのアラームはキャンセルされる。従ってアラームが始動する場合、スケジューリングエージェント３０５、３１０はアポイントメントがスケジュール時刻に完了しなかったことと、そのためにアポイントメントが拡張されるべきであるとわかる。
【００５３】
図７Ａと図７Ｂは二つのそのような状況を描いている。それぞれのアポイントメントに対するタイムラインは折りたたまれており、コミットメントウインドウは図５のカレンダーの場合は省略されている。図７Ａにおいて、移動ＭＯＶＥ３は予想よりも持続時間が長かった。そしてその移動ＭＯＶＥ４、ＭＯＶＥ５とアポイントメントＡＰＰ２はこの更に長い存続時間に対応するよう、調整のため後ろにシフトされた。図７Ｂにおいて、アポイントメントＡＰＰ３は予想よりも長くかかり、そしてそのためアポイントメントＡＰＰ４とＡＰＰ５は更に後ろにシフトされた。ここで留意すべきは図７Ａと図７Ｂの両方において、例示されている変更は両方の状況において変更されたアポイントメントに対するコミットメントウインドウが変更に対応するために必然的に十分広くなければならないことを示唆することである。そうでなければいくつかのアポイントメントはキャンセルされる必要がある。
【００５４】
これらの２つの例から明らかなように、この応答的スケジューリングは状況に応じて変化する。一般的に、例示されている実施形態においては、以下のスケジューリングアクティビティが所定のイベントに応じて発生する。
・進行中のスケジュールアポイントメントを中止する
・スケジュールアポイントメントを開始前にキャンセルする
・新たなアポイントメントをスケジューリングする
・スケジュールアポイントメントの持続時間を拡張する
・スケジュールアポイントメントの持続時間を収縮する
・スケジュールアポイントメントを更に早い時刻あるいは更に遅い時刻にシフトする
・コミットメントウインドウを変更する
・アラームを設定する
・アラームをキャンセルする
・アポイントメントの状態を変更する
そのような応答的スケジューリングを引きおこす“所定のイベント"はアポイントメントの状態変更に対し、以下を含む。
・アポイントメントをキャンセルする
・アポイントメントを拡張する
・アポイントメントを収縮する
・アポイントメントを中止する
・アポイントメントの状態を変更する
・アポイントメントをシフトする-
・予想外のキャリアが到達する
・トランスポート時間をアップデートする
・アンロード時間をアップデートする
・ロットをバッチに加える
・ロットをバッチに残す(leave)
・バッチからロットをキャンセルする
・コミットメントウインドウをアップデートする
工場状態の変更に対しては、所定のイベントは例えば以下のようなものである。
・ダウンタイムの検出
・マシンが利用可能になる
・ＰＭ／Ｑｕａｌが検出される
・チェンバが故障あるいは生じるcoming up
・マシン能力の変更
・マシン種類の変更
・プロセスの追加
・プロセスオペレーションの追加
・ロットプロセスを変更する
・ロットを保留状態で配置する
・ロットを保留状態から解放する
・ロットの優先事項を変更する
・ロットの期限を変更する
・ロットのウエハ数を変更する
・ロットのプロセスオペレーションを変更する
・ロットがマシンから外れる、マシンに到達する
またアラームイベントに対しては、所定のイベントは次のものである。
・アポイントメント開始時刻に対しアラームが始動する
・アポイントメント終了時刻に対しアラームが始動する
ここで留意すべきは、これらのリストは完全なものではなく、一例にすぎないことである。所定のイベントの識別は実施品固有のものであり、実例例間で変化する。典型的に、応答的スケジューリングを引き起こすイベントによって、これらのアクティビティは組み合わせられて、あるいは別の方法において条件付で用いられる。表２−５は本発明の１つの特定の実施品に対し、所定のイベント、それらのタイプ、そして応答的スケジューリングアクティビティをそれぞれマシンやロット、ＰＭ、リソーススケジューリングエージェントに対してリストアップしたものである。
【００５５】
表２、表３、そして表５はひとつ以上のロード／アンロードオペレーションとアポイントメント、チャージ／ディスチャージオペレーションとアポイントメントを示す。この開示によって恩恵を受ける当業者には当然のことであるが、いくつかのプロセスツール１１５はロットバッチプロセスオペレーションを実行する。そこでは複数のロット１３０はバッチにおいて同時に処理される。これらのプロセスツールのいくつかはロード、チャージ、ディスチャージ、アンロードステップを用いる。例えばプロセスツール１１５はまず始めに全てのバッチパーティシパントをロードする。すなわち、ツールＩ／Ｏポート（図示せず）からツールインターナルストッカー（図示せず）までのロット１３０である。通常このタイプのプロセスツール１１５は複数のＩ／Ｐポートを有しており、そしてロード／アンロードオペレーションもまたバッチにおいて実行される。全パッチパーティシパントのロード後、プロセスツール１１５はバッチチャージオペレーションを実行し、インターナルストッカーからファーネスチューブ（図示せず）などに、処理が実際に開始する前に移動する。プロセスツール１１５がバッチプロセスオペレーションを完了するとき例えばファーネスチューブバックからインターナルストッカーへバッチパーティシパントをディスチャージする。最終的にロット１３０がツールＩ／Ｐポートへの移動準備が整ったとき、連続するバッチアンロードオペレーションが実行される。
【００５６】
表２はまた"ロック"されたアポイントメントを示す。望まないアポイントメントがシフトするのを妨げるため、この実施形態はアポイントメント施錠装置を用いている。一般的に言えば、ロット１３０がソースロケーションからプロセスツール１１５へ最終移動を開始するときは、そのアポイントメントをキャンセルあるいは右へシフト、あるいは時間内で後ろのシフトすることによって、その前を飛び越える新たなアポイントメントを有することは望ましくない。この発生を防ぐために、ＭＳＡはロット１３０が最終移動を開始する際にロットプロセスアポイントメントを“ロック”する。ここで留意すべきは、ロックされたアポイントメントはそれでもなお時折シフトされる必要があることである。例えば、二つのアポイントメントがある特定のプロセスツール１１５に対し、カレンダー上に予約され、そして第一のアポイントメントは処理中であり、その一方で第二のアポイントメントに対するロット１３０がプロセスツール１１５へと最終移動を開始したと仮定する。第二のアポイントメントはプロセスツール１１５への“最終”移動にあるためロックされる。第一のアポイントメントが長く、延長される必要がある場合は、第二のアポイントメントはまず始めに第一のアポイントメントが延長できるようにシフトされる必要がある。従って、ロックされた第二のアポイントメントは一般的にこれが望ましくないにしてもシフトされなければならない。しかしながら一般的に、アポイントメントはある状況においては“ロック”され、シフトあるいはキャンセルするのを防ぐ。
【００５７】
表２  ＭＳＡに対する応答的スケジューリングアクティビティ活動
│イベント      │イベント種類・│応答的スケジューリング活動          │
│              │タイプ        │                                    │
│              │              │                                    │
│ダウンタイムを│ファクトリー状│ダウンタイムイベントはマシンが現在の│
│検出する      │態の変更（ＭＥ│ところ処理に利用できない、あるいは処│
│              │Ｓ）          │理中にエラーが発生したことを示す。Ｍ│
│              │              │ＳＡはマシンが現在のところ処理に利用│
│              │              │できないことを検出した場合、ＭＳＡは│
│              │              │処理されているロットプロセスアポイン│
│              │              │トメントを中止あるいは収縮する。次い│
│              │              │でＭＳＡは中止したロットプロセスアポ│
│              │              │イントメントの後あるいはアンロードア│
│              │              │ポイントメントの後にダウンタイムアポ│
│              │              │イントメントを予約する。エラーによっ│
│              │              │て処理中にダウンタイムイベントが発生│
│              │              │した場合、ＭＳＡは処理中のロットプロ│
│              │              │セスアポイントメントの後に、あるいは│
│              │              │アンロードアポイントメントの後にダウ│
│              │              │ンタイムイベントを予約する。ダウンタ│
│              │              │イムアポイントメントとオーバーラップ│
│              │              │している予約プロセスアポイントメント│
│              │              │は可能であれば時間内で後にシフトされ│
│              │              │る。そうでなければキャンセルされる。│
│              │              │                                    │
│検出された使用│ファクトリー状│アクティブなＰＭ、Ｑｕａｌあるいはダ│
│可能マシン    │態の変更（ＭＥ│ウンタイムアポイントメントが完了され│
│(machine      │Ｓ）          │る。マシンのカレンダー上にある次のア│
│availabl      │              │ポイントメントが可能であれば、次いで│
│edetected）   │              │シフトされ、開始される。            │
│              │              │                                    │
│ＰＭ／Ｑｕａｌ│ファクトリー状│ＰＭ／Ｑｕａｌアポイントメントはどの│
│を検出する    │態の変更（ＭＥ│アクティブアポイントメントの後にでも│
│              │Ｓ）          │予約される。ＰＭ／Ｑｕａｌアポイント│
│              │              │メントにオーバーラップしているアポイ│
│              │              │ントメントはそのＰＭ／Ｑｕａｌアポイ│
│              │              │ントメントの後にシフトされる。オーバ│
│              │              │ーラップした予約アポイントメントがシ│
│              │              │フトできない場合は、キャンセルされ  │
│              │              │る。                                │
│              │              │                                    │
│チェンバダウン│ファクトリー状│マシンあるいはチェンバに対し、準備の│
│を検出する    │態の変更（ＭＥ│できていない全てのアポイントメントで│
│              │Ｓ）          │、開始していないものはキャンセルさ  │
│              │              │れる。                              │
│              │              │                                    │
│チェンバアップ│ファクトリー状│どのアポイントメントに対する持続時間│
│を検出する    │態の変更（ＭＥ│も新たなスループット率に基づき予想完│
│              │Ｓ）          │了時刻へ収縮され、可能であれは右へ、│
│              │              │あるいは時間内で後ろにシフトされる。│
│              │              │                                    │
│ロットがスケジ│アラーム状態の│ロットがマシンとともに“リザーブ”ポ│
│ュール開始時刻│変更          │ートを有する場合、ＭＳＡはＬＳＡがム│
│にポートにない│              │ーブアポイントメントを拡張するまで待│
│              │              │つ。ムーブアポイントメントの拡張によ│
│              │              │りＬＳＡはロットアポイントメントを右│
│              │              │へシフトさせる。次いでＭＳＡはロット│
│              │              │アポイントメントのシフトに適切に反応│
│              │              │する。ロットがポートをリザーブしてい│
│              │              │ない場合、アポイントメントはキャンセ│
│              │              │ルされる。                          │
│              │              │                                    │
│ロットがマシン│ファクトリー状│ロットが正しい位置に到達した場合、Ｍ│
│ポートに到着す│態の変更(ＥＩ)│ＳＡはアポイントメントがバッチアポイ│
│る            │              │ントメントのパーティシパントでない場│
│              │              │合はアポイントメントをアクティブにす│
│              │              │る。アポイントメントがバッチアポイン│
│              │              │トメントのパーティシパントの場合、Ｍ│
│              │              │ＳＡはそのアポイントメントを作動可能│
│              │              │にする。マシンがアイドル状態で、アポ│
│              │              │イントメントがアクティブな場合、ＭＳ│
│              │              │Ａはアポイントメントの処理を開始する│
│              │              │（注意：バッチアポイントメントのパー│
│              │              │ティシパントは全てのパーティシパント│
│              │              │がマシンに到達したときにアクティブに│
│              │              │される。）                           │
│              │              │ロットが正しいマシンに到達したがポー│
│              │              │トが間違っている場合、ＭＳＡは別のロ│
│              │              │ットがポートを予約したか確認をする。│
│              │              │別のロットがポートを予約した場合、Ｍ│
│              │              │ＳＡはそのロットに次に利用可能なポー│
│              │              │トを割り当てる。到達ロットに対するア│
│              │              │ポイントメントがアクティブな場合、Ｍ│
│              │              │ＳＡはロット処理を開始する。        │
│              │              │ロットが間違ったマシンに到着した場合│
│              │              │ＭＳＡは別のロットがポ−トを予約した│
│              │              │か確認をする。別のロットがポートを予│
│              │              │約した場合、ＭＳＡはそのロットに次の│
│              │              │利用可能なポートを割り当てる。次いで│
│              │              │マシンは到達したばかりのロットに対し│
│              │              │アポイントメントを予約する。オーバー│
│              │              │ラップしているどのアポイントメントも│
│              │              │遅い時間にシフトされる。オーバーラッ│
│              │              │プしているアポイントメントが時間内で│
│              │              │後ろにシフトできない場合、そのアポイ│
│              │              │ントメントはキャンセルされる。      │
│              │              │                                    │
│ロットプロセス│アラーム状態の│ロットプロセスアポイントメントが遅れ│
│アポイントメン│変更          │る場合、そのアポイントメントは拡張さ│
│トが遅れる    │              │れ、オーバーラップしているどの予約ア│
│              │              │ポイントメントも右へシフトされるか、│
│              │              │時間内で後ろにシフトされる。        │
│              │              │オーバーラップしているどの予約アポイ│
│              │              │ントメントも右へシフト出来ず、またア│
│              │              │ポイントメントがロックされていない場│
│              │              │合は、アポイントメントはキャンセルさ│
│              │              │れる。アポイントメントがロックされ、│
│              │              │また右へシフトできない場合は、アポイ│
│              │              │ントメントのコミットメントウインドウ│
│              │              │が拡張し、シフトできるようにする。  │
│ロットプロセス│ファクトリー状│ロットプロセスアポイントメントが予想│
│が早く完了する│態の変更(ＥＩ)│よりも早く完了する場合は、アポイント│
│              │              │メントは収縮され、完了され、可能であ│
│              │              │れば次のアポイントメントが時間内で前│
│              │              │にシフトされる。次のアポイントメント│
│              │              │が現在時刻へシフトできる場合は、アポ│
│              │              │イントメントを開始する。            │
│              │              │                                    │
│ほぼ完了したロ│ファクトリー状│ＭＳＡはロットに対する残りの処理時間│
│ット処理を検出│態の変更      │を算出する。早く終了しそうな場合は、│
│する          │              │アポイントメントは新たな終了時刻へ収│
│              │              │縮され、そしてどの次のアポイントメン│
│              │              │トも左へシフトあるいは時間内で前にシ│
│              │              │フトされる。遅く終了しそうな場合は、│
│              │              │アポイントメントは新たな終了時刻へ拡│
│              │              │張され、どのオーバーラップアポイント│
│              │              │メントも遅い時間にシフトされるか、キ│
│              │              │ャンセルされる。                    │
│              │              │                                    │
│ロットアポイン│アポイントメン│処理中あるいはほぼ完了の場合、アポイ│
│トメントキャン│ト状態の変更  │ントメントは中止されるか、準備が出来│
│セルする      │              │ていない場合は単にキャンセルされる。│
│              │              │アポイントメントのキャンセルにあたり│
│              │              │次のアポイントメントは可能であれば時│
│              │              │間内で前にシフトされ、各アポイントメ│
│              │              │ント間のギャップを低減する。        │
│              │              │                                    │
│ロットがマシン│ファクトリー状│ロット離脱(departure)の時間にまだ処 │
│ポートを離れる│態の変更      │理中である場合、アポイントメントは中│
│              │              │止され、終了時刻は時間内で前にシフト│
│              │              │される。次のアポイントメントは出来る│
│              │              │限り早くにシフトされる。            │
│              │              │                                    │
│アポイントメン│アポイントメン│アポイントメントは右へシフトされる。│
│トを右にシフト│トの状態変更  │右へシフトできない場合はロックされな│
│する          │              │い限りはキャンセルされる。ロックされ│
│              │              │る場合、右シフトをブロックしているい│
│              │              │ずれのアポイントメントもキャンセルさ│
│              │              │れる。                              │
【００５８】
表３は”フィーダオペレーション“（feeder operation）を示す。一部が自動化された工場では、一部だけのプロセスオペレーションがソフトウエアエージェント２６５によりスケジュールされ、管理される。従って、工場での一部のプロセスツール１１５だけがソフトウエアエージェント２６５の管理下にあり、そして工場は完全にこのシステムの管理下にはない。このソフトウエアエージェント２６５により管理されるこれらのプロセスオペレーションは“コントロールプロセスオペレーション”と呼ばれる。それぞれのコントロールプロセスオペレーションの直前に、一連の“フィーダ”オペレーションはコントロールプロセスオペレーションの処理時間の変更可能なパーセンテージから生じる。“フィーダ”アポイントメントは先にスケジュールされているアポイントメントに対し、最も早い開始時刻を決定するのに用いられる。さらに具体的には、フィーダアポイントメントはLSAが先にスケジュールし、実際のプロセスツール１１５とともにフィーダオペレーションをスケジューリングする時間にまだ達していないときに用いられる。フィーダーアポイントメントはそれらのフィーダオペレーションに対し、処理アクティビティを表すために用いられ、持続時間はそれぞれのフィーダオペレーションのサイクル時間に等しい。
【００５９】
表３はまた“マックスムーブ”アポイントメントを示す。フィーダオペレーションにとって、最終フィーダオペレーションを実行する特定のプロセスツール１１５はロット１３０が最終フィーダオペレーションで処理を開始しない限りは知られない。“マックスムーブ”アポイントメントは最終フィーダプロセスツール１１５からコントロールされたプロセスツール１１５までのトランスポートアクティビティを表す。一つの実施例においては、マキシマムムーブアポイントメントの持続時間は最終フィーダープロセスツールステーション１０５とコントロールプロセスツールステーション１０５との間の最悪の場合のトランスポート時間により生じる。最終フィーダアポイントメントがアクティブにされた場合、最終フィーダオペレーションを実行している実際のプロセスツール１１５が知られ、そしてマキシマムムーブアポイントメントはムーブアポイントメントあるいはその後のムーブアポイントメントにより置き換えられる。
【００６０】
表３は更に“ビッドリクエスト”を示す。図示している実施例においては、プロセスフロー１００は“ビッドリクエスト”とともに開始するスケジューリングアポイントメントに対しプロトコルを用いる。LSA３０５は使用可能なＭＳＡ３１０へ“リクエストビッド”メッセージをパブリッシュする。このＭＳＡ３１０はLSA３０５に一つ以上のビッドを提示する。LSA３０５は複数のそのようなビッドから一つを選択する。それは典型的には一つ以上の“アポイントメント”をもたらす結果となり、そのアポイントメントはＬＳＡ３０５がウエハ１３５のロット１３０に対し求めているオペレーションの実行に関連するものである。しかしながら、ここで留意すべきは、別のプロトコルは“ビッドリクエスト”のないところで用いられることである。従って、ビッドリクエストは実施品の具体的な特徴であり、全実施形態において見つけられるものではない。
【００６１】
表３  LSAに対する応答的スケジューリングアクティビティ
│イベント      │イベントタイプ│応答的スケジューリング活動              │
│              │              │                                        │
│ムーブアポイン│アラームイベン│このアラームはムーブアポイントメントのス│
│トメントに対  │ト            │ケジュールされた終了時刻が到達したことを│
│し、アポイント│              │示す。ＬＳＡはムーブアポイントメントを拡│
│メント終了時刻│              │張すべきか決定する。そのムーブがマシンポ│
│アラームを始動│              │ートにから始まるものであれば、ムーブアポ│
│する          │              │イントメントの拡張はポートをクリアするた│
│              │              │め、常に許可される。そうでなければ、ムー│
│              │              │ブアポイントメントは最大の拡張パーセンテ│
│              │              │ージが達せられるまで（すなわち１７５％）│
│              │              │本来スケジュールされた持続時間のパーセン│
│              │              │テージを拡張する（すなわち、25％）。最大 │
│              │              │の拡張パーセンテージが達せられたとき、ア│
│              │              │ポイントメントは中止される。ムーブアポイ│
│              │              │ントメントが拡張される場合、その後の予約│
│              │              │アポイントメントは時間内で後ろにシフトさ│
│              │              │れる。新たな終了時刻は拡張されたムーブア│
│              │              │ポイントメントに対して設定される。      │
│              │              │                                        │
│フィーダアポイ│アラームイベン│このアラームはフィーダアポイントメントの│
│ントメントに対│ト            │スケジュールされた終了時刻が達したことを│
│し、アポイント│              │示す。LSAは変更可能なパーセンテージまで │
│メント終了時刻│              │アポイントメントを拡張する。それに続くど│
│アラームを始動│              │のフィーダアポイントメント（あれば）もこ│
│              │              │のフィーダアポイントメントが拡張された量│
│              │              │だけ収縮される（オペレーションに対する処│
│              │              │理時間以下にフィーだの持続時間を収縮でき│
│              │              │ない。）最終手段として、最終フィーダアポ │
│              │              │イントメントの後のアポイントメントは後の│
│              │              │時間にシフトされる。                    │
│              │              │                                        │
│ムーブアポイン│アラームイベン│このアラームはスケジュールされた特定のム│
│トメントに対す│ト            │ーブアポイントメントの開始時刻が発生した│
│るアポイントメ│              │ことを示す。ＬＳＡはアポイントメントがア│
│ント開始時刻の│              │クティブでない場合はアポイントメントをア│
│到達          │              │クティブにし、ＡＭＨＳムーブが開始され  │
│              │              │る。アポイントメントがロットアポイントメ│
│              │              │ントの前の最終ムーブの場合、LSAはMSAに  │
│              │              │ポートを予約することとアポイントメントを│
│              │              │ロックすることを求める。またトランスポー│
│              │              │ト時間と残りのトランスポート時間を適宜ア│
│              │              │ップデートする。次いでＬＳＡはアポイント│
│              │              │メント終了時刻アラームを作る。          │
│              │              │                                        │
│フィーダアポイ│アラームイベン│このアラームは特定のフィーダアポイントメ│
│ントメントに対│ト            │ントのスケジュールした開始時刻が発生した│
│するアポイント│              │ことを示す。ＬＳＡはアポイントメントがア│
│メント開始時刻│              │クティブでない場合はアクティブにする。次│
│の到達        │              │いでＬＳＡはアポイントメント終了時刻アラ│
│              │              │ームを作る。                            │
│              │              │                                        │
│ロットアポイン│アポイントメン│LSAはロットアポイントメントとこのロット │
│トメントをキャ│ト状態の変更  │アポイントメントに関連するどのアクティブ│
│ンセルする    │              │でないムーブもキャンセルする。また、ロッ│
│              │              │トアポイントメントに関連する全てのロード│
│              │              │・アンロードアポイントメントもキャンセル│
│              │              │し、そして必要に応じて適宜どのアラームも│
│              │              │キャンセルする。次いでＬＳＡはキャンセル│
│              │              │されたアポイントメントをスケジュール変更│
│              │              │する。                                  │
│              │              │                                        │
│ロットアポイン│アポイントメン│ＭＳＡはロットアポイントメントが遅れてい│
│トメントを拡張│ト状態の変更  │るときにこの変更を開始する。ＬＳＡはロッ│
│する          │              │トプロセスアポイントメントが拡張された後│
│              │              │に全てのアポイントメントを右へ、あるいは│
│              │              │時間内で後ろにシフトすることによりこの変│
│              │              │更に反応する。次いでロットアポイントメン│
│              │              │トを特定の時刻へ拡張する。              │
│ロットアポイン│アポイントメン│ＭＳＡはロットの処理が妨げられた場合にこ│
│トメントを中止│ト状態の変更  │の変更を開始する。ＬＳＡはアポイントメン│
│する          │              │トの状態を中止へ変更し、ロットを保留状態│
│              │              │に置き、そして全てのアポイントメントをキ│
│              │              │ャンセルした後にムーブアポイントメントを│
│              │              │ソータへ、あるいはストッカーへスケジュー│
│              │              │ルする。                                │
│              │              │                                        │
│アンロードアポ│アポイントメン│ＬＳＡはアンロードアポイントメントの状態│
│イントメントを│ト状態の変更  │を中止へと変更する。                    │
│中止する      │              │                                        │
│ロードアポイン│アポイントメン│ＬＳＡはロードアポイントメントの状態を中│
│トメントを中止│ト状態の変更  │止へと変更する。                        │
│する          │              │                                        │
│ロットアポイン│アポイントメン│ＭＳＡはロットの処理が開始したときにこの│
│トメントをプロ│ト状態の変更  │変更を開始する。ＬＳＡはアポイントメント│
│セスさせ      │              │を処理状態へと変更し、ロットプロセスエー│
│              │              │ジェントにアポイントメントの処理を開始す│
│              │              │るよう通知する。                        │
│              │              │                                        │
│ロードアポイン│アポイントメン│ＬＳＡはアポイントメントを処理状態へと変│
│トメントを処理│ト状態の変更  │更し、ロットプロセスエージェントに通知す│
│する          │              │る。                                    │
│              │              │                                        │
│アンロードアポ│アポイントメン│ＬＳＡはアポイントメントを処理状態へと変│
│イントメントを│ト状態の変更  │更し、ロットプロセスエージェントに通知す│
│処理する      │              │る。                                    │
│              │              │                                        │
│ロットアポイン│アポイントメン│ＭＳＡはロットが処理を完了したときにこの│
│トメントを完了│ト状態の変更  │変更を開始し、適切な場合にはアポイントメ│
│する          │              │ントを収縮する。ＬＳＡはプロセスエージェ│
│              │              │ントに通知し、状態を完了へと変更し、ポス│
│              │              │トコントロールムーブアポイントメントがス│
│              │              │ケジュールされたことを確認し、そしてスケ│
│              │              │ジュールされていなければ、スケジュールす│
│              │              │る。ＬＳＡは次のアポイントメントを開始す│
│              │              │る。                                    │
│              │              │                                        │
│ロードアポイン│アポイントメン│ＬＳＡはプロセスエージェントに通知し、状│
│トメントを完了│ト状態の変更  │態を完了へと変更する。LSAは次のアポイン │
│する          │              │トメントを開始する。                    │
│              │              │                                        │
│アンロードアポ│アポイントメン│ＬＳＡはプロセスエージェントに通知し、完│
│イントメントを│ト状態の変更  │了へと状態を変更する。ＬＳＡは次のアポイ│
│完了する      │              │ントメントを開始する。                  │
│              │              │                                        │
│ムーブアポイン│アポイントメン│ＬＳＡはアポイントメントを完了し、適切な│
│トメントを完了│ト状態の変更  │場合にはアポイントメントを収縮する。ＬＳ│
│する          │              │Ａはまた終了時刻アラームをキャンセルし、│
│              │              │トランスポート開始時刻を適宜アップデート│
│              │              │し、次のアポイントメントを開始する。    │
│              │              │                                        │
│ロットアポイン│アポイントメン│ＭＳＡはロットプロセスがほぼ完了している│
│トメントをほぼ│ト状態の変更  │ことを示すイクイップメントイベントを受信│
│完了させる    │              │するときにこの変更を開始する。ＬＳＡはア│
│              │              │ポイントメントの状態をほぼ完了へと変更す│
│              │              │る。次いでＬＳＡはポストコントロールムー│
│              │              │ブアポイントメントをスケジュールし、適切│
│              │              │な場合には次のプロセスオペレーションに対│
│              │              │してスケジューリングを呼び出す。        │
│              │              │                                        │
│ロットをシフト│アポイントメン│ＬＳＡはロットアポイントメントを左へ移  │
│する          │ト状態の変更  │動、あるいは時間内で前に移動させようとす│
│              │              │る。左にシフトできない場合、システムは全│
│              │              │てのアクティブでないムーブ、ロード、アン│
│              │              │ロードアポイントメントをキャンセルし、次│
│              │              │いでロットアポイントメントをキャンセルす│
│              │              │る。                                    │
│              │              │                                        │
│ロードアポイン│アポイントメン│ＬＳＡはロードアポイントメントを左へ移動│
│トメントを左へ│ト状態の変更  │させようとする。左へシフトできない場合、│
│シフトする    │              │システムは全てのアクティブでないなムーブ│
│              │              │アポイントメントをキャンセルし、ロード／│
│              │              │アンロードアポイントメントをキャンセル  │
│              │              │し、ロットアポイントメントをキャンセルす│
│              │              │る。                                    │
│              │              │                                        │
│アンロードアポ│アポイントメン│ＬＳＡはアンロードアポイントメントを左へ│
│イントメントを│ト状態の変更  │移動させようとする。左へシフトできない場│
│左へシフトする│              │合、システムは全てのアクティブでないムー│
│              │              │ブアポイントメントをキャンセルし、ロード│
│              │              │／アンロードアポイントメントをキャンセル│
│              │              │し、ロットアポイントメントをキャンセルす│
│              │              │る。                                    │
│              │              │                                        │
│ロットアポイン│アポイントメン│ＬＳＡは第一のアポイントメントがムーブア│
│トメントを右へ│ト状態の変更  │ポイントメントかどうかを見て確認する。そ│
│シフトする    │              │れがムーブアポイントメントであり、アクテ│
│              │              │ィブではない場合、あるいはマシンやマシン│
│              │              │ポート上にない場合、そのムーブアポイント│
│              │              │メントをシフトさせ、ロットアポイントメン│
│              │              │トあるいはロードアポイントメントの開始に│
│              │              │到達させる（ムーブアポイントメントがアク│
│              │              │ティブの場合、ロットアポイントメントある│
│              │              │いはロードアポイントメントの開始へ終了を│
│              │              │拡張する。次いで先行するどのアポイントメ│
│              │              │ントも右へシフトさせる。システムがアポイ│
│              │              │ントメントを右へシフトできない場合は全て│
│              │              │のアクティブでないムーブアポイントメン  │
│              │              │ト、どのロード／アンロードアポイントメン│
│              │              │トも、そしてロットアポイントメントをキャ│
│              │              │ンセルする。                            │
│              │              │                                        │
│ロードアポイン│アポイントメン│ＬＳＡはその前のアポイントメントがムーブ│
│トメントを右へ│ト状態の変更  │アポイントメントかどうかを見て確認する。│
│シフトする    │              │それがムーブアポイントメントであり、アク│
│              │              │ティブでない場合、あるいはマシンやマシン│
│              │              │ポート上にない場合、そのムーブアポイント│
│              │              │メントをシフトさせ、それがロードアポイン│
│              │              │トメントの開始に到達させる（ムーブアポイ│
│              │              │ントメントがアクティブの場合、ロードアポ│
│              │              │イントメントの開始へ終了を拡張する）。次 │
│              │              │いでＬＳＡは先行するどのアポイントメント│
│              │              │も右へシフトする。システムがアポイントメ│
│              │              │ントを右へシフトできない場合は、全てのア│
│              │              │クティブでないムーブアポイントメント、ど│
│              │              │のロード／アンロードアポイントメントも、│
│              │              │そしてロットアポイントメントをキャンセル│
│              │              │する。                                  │
│              │              │                                        │
│アンロードアポ│アポイントメン│ＬＳＡはアポイントメントを右へシフトす  │
│イントメントを│ト状態の変更  │る。システムがアポイントメントを右にシフ│
│右へシフトする│              │トできない場合、ＬＳＡはロットアポイント│
│              │              │メントをキャンセルする。それはロットアポ│
│              │              │イントメントに関連する全てのムーブ、ロー│
│              │              │ド、アンロードアポイントメントをキャンセ│
│              │              │ルするものである。                      │
│              │              │                                        │
│ロットアポイン│アポイントメン│ＬＳＡはロットアポイントメントを特定の時│
│トメントを収縮│ト状態の変更  │刻へ収縮し、それに続くムーブアポイントメ│
│する          │              │ントを時間内で前にシフトする。          │
│              │              │                                        │
│ロードアポイン│アポイントメン│ＬＳＡはロードアポイントメントを特定の時│
│トメントを収縮│ト状態の変更  │刻へ収縮する。                          │
│する          │              │                                        │
│              │              │                                        │
│アンロードアポ│アポイントメン│ＬＳＡはアンロードアポイントメントを特定│
│イントメントを│ト状態の変更  │の時刻へ収縮する。                      │
│収縮(shrink)す│              │                                        │
│る            │              │                                        │
│              │              │                                        │
│予定外のムーブ│ファクトリー状│ロットの現在位置がマシンポートである場  │
│完了          │態の変更(AMHS)│合、次いでシステムはそのロットアポイント│
│              │              │メント以外の全てのアポイントメントをキャ│
│              │              │ンセルする。ロットアポイントメントがキャ│
│              │              │ンセルされるのはそのアポイントメントが別│
│              │              │のマシンに対するものの場合だけである。ア│
│              │              │ポイントメントが別のマシンに対するもので│
│              │              │ある場合は、ＬＳＡは全てのアポイントメン│
│              │              │トをキャンセルし、オーバーライドスケジュ│
│              │              │ールを呼び出すためにＭＳＡを待つ。そうで│
│              │              │なければ、システムはロットが次のプロセス│
│              │              │アポイントメントの目的地へ戻るのにどれく│
│              │              │らいの時間がかかるかを決定する。ロットが│
│              │              │まだプロセス開始時刻に間に合う場合、シス│
│              │              │テムは次いで適切なムーブアポイントメント│
│              │              │をスケジュール変更する。ロットが開始時刻│
│              │              │に間に合わない場合は全てのムーブ、ロード│
│              │              │、アンロード、ロットアポイントメントを  │
│              │              │キャンセルし、スケジュールを開始する。  │
│              │              │                                        │
│ロットアポイン│アポイントメン│ＬＳＡはロットアポイントメントコミットメ│
│トメントに対す│ト状態の変更  │ントウインドウを適宜アップデートする。コ│
│るコミットメン│              │ミットメントウインドウは所定のアポイント│
│トウインドウの│              │メントに対し、ロットの最も早い開始時刻と│
│アップデート  │              │最も遅いデリバリ時刻を表す。コミットメン│
│              │              │トウインドウはアポイントメントが遅れて処│
│              │              │理され、新たな終了時刻がアポイントメント│
│              │              │の最も遅いデリバリ時刻を超えた場合にアッ│
│              │              │プデートされる。                        │
│              │              │                                        │
│ロードアポイン│アポイントメン│ＬＳＡはロード開始時刻と残りのロード時間│
│トメントに対す│ト状態の変更  │をロードアポイントメント上に適宜アップデ│
│るロードタイム│              │ートする。                              │
│のアップデート│              │                                        │
│              │              │                                        │
│間違ったムーブ│アポイントメン│現在のロット位置がマシンポートである場  │
│の完了        │ト状態の変更  │合、次いでシステムはロットアポイントメン│
│              │              │ト以外の全てのアポイントメントをキャンセ│
│              │              │ルする。ロットアポイントメントがキャンセ│
│              │              │ルされるのはアポイントメントが別のマシン│
│              │              │に対するものであった場合である。アポイン│
│              │              │トメントが別のマシンに対するものであった│
│              │              │場合、ＬＳＡは全てのアポイントメントをキ│
│              │              │ャンセルし、オーバーライドスケジューリン│
│              │              │グを呼び出すためにMSAを待つ。そうでなけ │
│              │              │れば、システムは次のプロセスアポイントメ│
│              │              │ントの目的地へ、ロットが次のプロセスアポ│
│              │              │イントメントの目的地へ戻るのにどれくらい│
│              │              │の時間がかかるかを決定する。ロットがまだ│
│              │              │本来の処理をするとき、次いでシステムは適│
│              │              │切なムーブアポイントメントを際スケジュー│
│              │              │ルする。ロットが開始時刻に間に合わない場│
│              │              │合、全てのムーブ、ロード、アンロード、ロ│
│              │              │ットアポイントメントはキャンセルされ、ス│
│              │              │ケジューリングを開始する。              │
│              │              │                                        │
│ロットの期日変│ファクトリー状│ロットがアクティブなプロセスアポイントメ│
│更            │態の変更（ＭＥ│ントを有している場合は現在のアポイントメ│
│              │Ｓ）          │ントあるいは次のアンロードアポイントメン│
│              │              │ト（ある場合は）のどちらか一方をキャンセ│
│              │              │ルする。アポイントメントが“ほぼ完了”の│
│              │              │状態で且つ次のプロセスオペレーションがコ│
│              │              │ントロールオペレーションでない、あるいは│
│              │              │進行中の次のオペレーションがない場合、現│
│              │              │在のロットプロセスアポイントメントの後に│
│              │              │ムーブアポイントメントをスケジュールす  │
│              │              │る。そうでなければ次のプロセスオペレーシ│
│              │              │ョンのスケジュールを試みる。ロットがアク│
│              │              │ティブなムーブアポイントメントアクティブ│
│              │              │を有し、且つムーブがマシンポートを目的地│
│              │              │としている場合は、次のロードアポイントメ│
│              │              │ント（ある場合）と次のロットプロセスアポ│
│              │              │イントメントの後のアポイントメントをキャ│
│              │              │ンセルする。そうでなければ、ムーブアポイ│
│              │              │ントメントの後の全アポイントメントをキャ│
│              │              │ンセルし、現在のプロセスオペレーションを│
│              │              │スケジュール変更する。                  │
│              │              │ロットがアクティブなフィーダアポイントメ│
│              │              │ントを有する場合、フィーダアポイントメン│
│              │              │トの後の全アポイントメントをキャンセル  │
│              │              │し、次のプロセスオペレーションをスケジュ│
│              │              │ール変更する。                          │
│              │              │ロットがアクティブなロードアポイントメン│
│              │              │トを有する場合、次のロットアポイントメン│
│              │              │トあるいはロードアポイントメント（ある場│
│              │              │合）の後のアポイントメントをキャンセルす│
│              │              │る。                                    │
│              │              │ロットがアクティブなアンロードアポイント│
│              │              │メントアクティブを有する場合、現在時刻以│
│              │              │後のアポイントメントをキャンセルする。次│
│              │              │のオペレーションがコントロールオペレーシ│
│              │              │ョンでない、あるいはそれ以上のオペレーシ│
│              │              │ョンがない場合、アンロードアポイントメン│
│              │              │トの後にムーブアポイントメントをスケジュ│
│              │              │ールする。次のプロセスオペレーションに対│
│              │              │しスケジュール変更をする。アクティブなア│
│              │              │ポイントメントがない場合、今後の全アポイ│
│              │              │ントメントをキャンセルし、現在のプロセス│
│              │              │オペレーションをスケジュール変更する。  │
│              │              │                                        │
│ロットを保留状│ファクトリー状│ロット処理中の場合、ポストムーブアポイン│
│態にする      │態の変更(MES) │トメントの後のアポイントメントをキャンセ│
│(lot put on   │              │ルする。                                │
│hold)         │              │ロットがコントロールマシンポートへ移動し│
│              │              │ている場合、ムーブ後の全アポイントメント│
│              │              │をキャンセルし、ロットがマシンポートに到│
│              │              │達するとムーブを最も近いストッカーへスケ│
│              │              │ジューリングする。アンロードアポイントメ│
│              │              │ントが処理している場合、後の全てのアポイ│
│              │              │ントメントをキャンセルし、ポストムーブを│
│              │              │スケジューリングする。フィーダアポイント│
│              │              │メントが処理している場合、アポイントメン│
│              │              │トを収縮し中止し、そしてフィーダアポイン│
│              │              │トメントの後の全アポイントメントをキャン│
│              │              │セルする。ロードアポイントメントが処理し│
│              │              │ている場合、ロードアポイントメントはアン│
│              │              │ロードアポイントメント以外の後の全アポイ│
│              │              │ントメントをキャンセルする。次いでポスト│
│              │              │ムーブアポイントメントをスケジュールす  │
│              │              │る。ロットがアクティブなプロセスアポイン│
│              │              │トメントを有してそれが処理あるいはほぼ完│
│              │              │了の状態である場合は、完了が認められる。│
│              │              │次のアポイントメントがアンロードアポイン│
│              │              │トメントの場合、続くアポイントメントは  │
│              │              │キャンセルされ、アンロード後にムーブがス│
│              │              │ケジュールされる。次のアポイントメントが│
│              │              │ムーブアポイントメントの場合、それと続く│
│              │              │アポイントメントはキャンセルされ、別のム│
│              │              │ムーブがスケジュールされる。            │
│              │              │続くアポイントメントが無い場合、そのプロ│
│              │              │セスアポイントメントの後にムーブはスケジ│
│              │              │ュールされる。ロットアポイントメントがア│
│              │              │クティブであるが処理あるいは完了でない場│
│              │              │合、それは収縮あるいは中止される。次のア│
│              │              │ポイントメントがアンロードアポイントメン│
│              │              │トである場合、続くアポイントメントはキャ│
│              │              │ンセルされ且つムーブアポイントメントがス│
│              │              │ケジュールされる。次のアポイントメントが│
│              │              │ムーブアポイントメントである場合、それは│
│              │              │キャンセルされ、別のムーブアポイントメン│
│              │              │トがスケジュールされる。次のアポイントメ│
│              │              │ントがない場合は、ムーブアポイントメント│
│              │              │がスケジュールされる。                  │
│              │              │ロットがフィーダアポイントメントにある場│
│              │              │合、それは収縮且つ中止され、そして全ての│
│              │              │続くアポイントメントがキャンセルされる。│
│              │              │ロットがロードアポイントメントにあり、処│
│              │              │理状態にある場合、続くロットプロセスアポ│
│              │              │イントメントはキャンセルされる。次のアン│
│              │              │ロードアポイントメントは残され、続く全て│
│              │              │のアポイントメントはキャンセルされる。ム│
│              │              │ーブアポイントメントはアンロードアポイン│
│              │              │トメントの後にスケジュールされる（双方と│
│              │              │もＲＳＡにより開始されたアポイントメント│
│              │              │の変更に対して後で前にシフトする）。ロー │
│              │              │ドアポイントメントが処理していない場合、│
│              │              │それと続くアポイントメントはキャンセルさ│
│              │              │れ、ムーブアポイントメントがスケジュール│
│              │              │される。                                │
│              │              │ロットがアンロードアポイントメントにある│
│              │              │場合、続く全てのアポイントメントはキャン│
│              │              │セルされ、アンロードアポイントメントの後│
│              │              │にムーブアポイントメントがスケジュールさ│
│              │              │れる。                                  │
│              │              │ロットがムーブアポイントメントにあり、ム│
│              │              │ーブが開始した場合、続く全てのアポイント│
│              │              │メントはキャンセルされる。ムーブがマシン│
│              │              │ポートに対する場合、ムーブは            │
│              │              │ロットがムーブアポイントメント上にあり開│
│              │              │始していない場合、ムーブアポイントメント│
│              │              │は中止され、続く禅アポイントメントはキャ│
│              │              │ンセルされる。                          │
│              │              │                                        │
│処理変更      │ファクトリー状│ロットがアクティブなプロセスアポイントメ│
│(process      │態の変更      │ントを有する場合、現在のアポイントメント│
│changed)      │              │あるいは次のアンロードアポイントメント  │
│              │              │（ある場合）のどちらか一方をキャンセルす│
│              │              │る。そのアポイントメントが“ほぼ完了”の│
│              │              │状態にあり、且つ次のプロセスオペレーショ│
│              │              │ンがコントロールオペレーションでない、あ│
│              │              │るいは進行中の次のオペレーションがない場│
│              │              │合、現在のロットアポイントメントの後にム│
│              │              │ーブアポイントメントをスケジューリングす│
│              │              │る。アポイントメントがほぼ完了し、次のオ│
│              │              │ペレーションがコントロールオペレーション│
│              │              │の場合、次のプロセスオペレーションのスケ│
│              │              │ジュールを試みる。ロットがアクティブなム│
│              │              │ーブアポイントメントを有し、ムーブの目的│
│              │              │地がマシンポートの場合、次のロードおよび│
│              │              │アンロードアポイントメント（ある場合）と│
│              │              │次のロットプロセスアポイントメントの後の│
│              │              │アポイントメントをキャンセルする。      │
│              │              │ロットがアクティブなフィーダアポイントメ│
│              │              │ントを有する場合、フィーダアポイントメン│
│              │              │トの後の全アポイントメントをキャンセル  │
│              │              │し、先行のどのフィーダアポイントメントと│
│              │              │同様に次のプロセスオペレーションをスケジ│
│              │              │ュール変更する。                        │
│              │              │ロットがアクティブなロードアポイントメン│
│              │              │トを有する場合、次のロードアポイントメン│
│              │              │トの後のアポイントメントをキャンセルす  │
│              │              │る。                                    │
│              │              │ロットがアクティブなアンロードアポイント│
│              │              │メントを有する場合、現在時刻以後のアポイ│
│              │              │ントメントをキャンセルする。次のオペレー│
│              │              │ションがコントロールオペレーショでない、│
│              │              │あるいはそれ以上のオペレーションがない場│
│              │              │合は、アンロードアポイントメントの後にム│
│              │              │ーブアポイントメントをスケジューリングす│
│              │              │る。次のプロセスオペレーションに対しスケ│
│              │              │ジュール変更をする。アクティブなアポイン│
│              │              │トメントがない場合、今後の全アポイントメ│
│              │              │ントをキャンセルし、現在のプロセスオペレ│
│              │              │ーションをスケジュール変更する。        │
│              │              │                                        │
│プロセスオペレ│ファクトリー状│ＬＳＡは全てのアクティブでないアポイント│
│ーションの変更│態の変更(MES) │メントを削除する。次いでＬＳＡは新たなプ│
│              │              │ロセスオペレーションがコントロールあるい│
│              │              │はフィーダプロセスオペレーションであるか│
│              │              │どうかを見て確認する。プロセスオペレーシ│
│              │              │ョンがフィーダの場合、次いでエージェント│
│              │              │は次のプロセスオペレーションをスケジュー│
│              │              │ルする。プロセスオペレーションがコントロ│
│              │              │ールであり且つエージェントがこのプロセス│
│              │              │オペレーションに対しアポイントメントを有│
│              │              │さない場合、ＬＳＡはこのプロセスオペレー│
│              │              │ションをスケジューリングする。          │
│              │              │ロットがアクティブなプロセスアポイントメ│
│              │              │ントを有する場合、現在のアポイントメント│
│              │              │あるいは次のアンロードアポイントメント  │
│              │              │（ある場合）のどちらか一方をキャンセルす│
│              │              │る。アポイントメントが“ほぼ完了”の状態│
│              │              │にあり且つ次のプロセスオペレーションがコ│
│              │              │ントロールロールオペレーションではない、│
│              │              │あるいは進行中の次のオペレーションがない│
│              │              │場合は、現在のロットプロセスアポイントメ│
│              │              │ント後にムーブアポイントメントをスケジュ│
│              │              │ールする。アポイントメントがほぼ完了であ│
│              │              │り、次のオペレーションがコントロールオペ│
│              │              │レーションの場合、次のプロセスオペレーシ│
│              │              │ョンのスケジュールを試みる。ロットがアク│
│              │              │ティブなムーブアポイントメントを有し、そ│
│              │              │のムーブがマシンポートを目的地としている│
│              │              │場合は、その次のロードおよびアンロードア│
│              │              │ポイントメント（ある場合）と次のロットプ│
│              │              │ロセスアポイントメントの後のアポイントメ│
│              │              │ントをキャンセルする。そうでなければ、ム│
│              │              │ーブアポイントメントの後の全アポイントメ│
│              │              │ントをキャンセルし、現在のプロセスオペレ│
│              │              │ーションをスケジュール変更する。        │
│              │              │ロットがアクティブなフィーダアポイントメ│
│              │              │ントを有する場合、フィーダアポイントメン│
│              │              │トの後の全アポイントメントをキャンセル  │
│              │              │し、それに先立つフィーダアポイントメント│
│              │              │と同様に次のプロセスオペレーションをスケ│
│              │              │ジュール変更する。                      │
│              │              │ロットがアクティブなロードアポイントメン│
│              │              │トを有する場合、その次のアンロードアポイ│
│              │              │ントメントの後のアポイントメントをキャン│
│              │              │セルする。                              │
│              │              │ロットがアクティブでないアンロードアポイ│
│              │              │ントメントを有する場合、現在時刻以後のア│
│              │              │ポイントメントをキャンセルする。次のオペ│
│              │              │レーションがコントロールオペレーションで│
│              │              │ない、あるいはそれ以上のオペレーションが│
│              │              │ない場合、アンロードアポイントメントの後│
│              │              │にムーブアポイントメントをスケジュールす│
│              │              │る。次のプロセスオペレーションに対しスケ│
│              │              │ジュール変更をする。アクティブなアポイン│
│              │              │トメントがない場合、今後の全てのアポイン│
│              │              │トメントをキャンセルし、現在のプロセスオ│
│              │              │ペレーションをスケジュール変更する。    │
│              │              │                                        │
│ウエハ数が減少│ファクトリー状│ロットに対するウエハ数が減少する場合、Ｍ│
│する          │態の変更（ＭＥ│ＳＡはまだ開始していないそのカレンダー上│
│              │Ｓ）          │にロットアポイントメントを収縮する。ＭＳ│
│              │              │Ａは適度にアポイントメントを収縮させよう│
│              │              │とする。ＭＳＡは収縮されない、まだ開始し│
│              │              │ていないどのロットアポイントメントもキャ│
│              │              │ンセルする。ＬＳＡはその次に、ＭＳＡによ│
│              │              │ってなされたアポイントメントの変更に、変│
│              │              │更の内容によって反応する。              │
│              │              │                                        │
│ウエハ数が増加│ファクトリー状│ロットに対するウエハ数が増加する場合、Ｍ│
│する          │態の変更（ＭＥ│ＳＡはまだ開始していないそのカレンダー上│
│              │Ｓ）          │にロットアポイントメントを拡張する。ＭＳ│
│              │              │Ａは適度にアポイントメントを拡張しようと│
│              │              │する。ＭＳＡは拡張されない、まだ開始して│
│              │              │いないどのロットアポイントメントもキャン│
│              │              │セルする。ＬＳＡはその次に、ＭＳＡによっ│
│              │              │てなされたアポイントメントの変更に、変更│
│              │              │の内容によって反応する。                │
│              │              │                                        │
│ロット終了    │ファクトリー状│システムはロットに対する全アポイントメン│
│              │態の変更（ＭＥ│トをキャンセルする。                    │
│              │Ｓ）          │                                        │
│ロットが入る  │ファクトリー状│ロットがセグメントの第一のオペレーション│
│(lot move in) │態の変更      │ではないフィーダオペレーションへ移動する│
│              │              │場合、ＬＳＡはアポイントメントの終了時刻│
│              │              │を現在時刻と等しく調整しさらにそのオペレ│
│              │              │ーションに対し処理時間を加える。次いでＬ│
│              │              │ＳＡは終了時刻アラームを設定する。フィー│
│              │              │ダオペレーションが最終フィーダの場合、Ｌ│
│              │              │ＳＡは適当なムーブアポイントメントととも│
│              │              │にマックスムーブアポイントメントを置き換│
│              │              │え、残りのトランスポート時間をアップデー│
│              │              │トする。                                │
│              │              │                                        │
│ロットが出る  │ファクトリー状│ロットが変更したオペレーションがフィーダ│
│(lot move out)│態の変更      │オペレーションである場合、ＬＳＡは完全に│
│              │              │フィーダアポイントメントを収縮し、続くフ│
│              │              │ィーダとマックスムーブアポイントメントを│
│              │              │キャンセルし、次のオペレーションと先立つ│
│              │              │どのフィーダアポイントメントもスケジュー│
│              │              │ルする。ロットが変更したオペレーションが│
│              │              │コントロールオペレーションの場合、何もア│
│              │              │クションは起こされない（次のオペレーショ│
│              │              │ンは完了に使い状態でスケジュールされてい│
│              │              │た）。ロットが変更したオペレーションが通 │
│              │              │常（コントロールあるいはフィーダでない）│
│              │              │オペレーションの場合、ＬＳＡはオペレーシ│
│              │              │ョンをロット変更へスケジューリングする。│
│              │              │                                        │
│試験的リクエス│ファクトリー状│ＥＲＦは特定のロットをどのように処理する│
│トフォーム（Ｅ│態の変更（ＭＥ│かについての具体的な指示を含む。ＥＲＦは│
│ＲＦ）状態の変│Ｓ）          │ロットに添付あるいはロットから削除され、│
│更            │              │そしてＬＳＡはこれが発生するときに通知さ│
│experimental  │              │れる。ＬＳＡはそれぞれのロットプロセスア│
│request form  │              │ポイントメントのＭＳＡを通知し、そして続│
│              │              │いてアポイントメントの状態変更に反応する│
│              │              │（パーティシペートしている今後のどのバッ│
│              │              │チアポイントメントとももはや競合できない│
│              │              │場合）。                                 │
│              │              │                                        │
│オーバーライド│ファクトリー状│ビッドリクエストとアポイントメント変更リ│
│ロットアポイン│態の変更（ＭＥ│スナが作られ、ＭＳＡへ戻される（これはマ│
│トメント      │Ｓ）          │シンポート上に配置されるスケジュールされ│
│              │              │ていないロットに対するものである）。     │
│マシンがタイム│アポイントメン│ＬＳＡは新たなタイムスロットでオペレーシ│
│スロットを通知│ト状態の変更  │ョンに対しプロセスアポイントメントを改良│
│する          │              │できるかどうか決定する。出来る場合、次い│
│              │              │でＬＳＡはアポイントメントをキャンセル  │
│              │              │し、通知されたタイムスロットに対するアポ│
│              │              │イントメントをスケジュール変更するために│
│              │              │提示するビッドメッセージをパブリッシュす│
│              │              │る。                                    │
【００６２】
表４  PMスケジューリングエージェントに対する応答的スケジューリングアクティビティ
│イベント    │イベントタイプ│応答的スケジューリングエージェント      │
│            │              │                                        │
│PM／Qualアポ│アポイントメン│ＰＭアポイントメントはキャンセルされスケ│
│イントメント│ト状態の変更  │ジュール変更される。                    │
│をキャンセル│              │                                        │
│する        │              │                                        │
│            │              │                                        │
│PM／Qualアポ│アポイントメン│ＭＳＡはＰＭアポイントメントが遅れている│
│イントメント│ト状態の変更  │ときにこの変更を開始する。ＰＭＳＡは拡張│
│を拡張する  │              │されているＰＭプロセスアポイントメントの│
│            │              │右に全てのアポイントメントをシフトするこ│
│            │              │とによってこの変更に反応する。シフトされ│
│            │              │ないアポイントメントはキャンセルされ、ス│
│            │              │ケジュール変更される。次いでＰＭアポイン│
│            │              │トメントを特定の時間に拡張する。        │
│            │              │                                        │
│PM／Qualアポ│アポイントメン│ＭＳＡはＰＭ処理が妨げられたときにこの変│
│イントメント│ト状態の変更  │更を開始する。ＭＳＡはアポイントメントの│
│を中止する  │              │状態を中止へと変更する。ＰＭＳＡはアポイ│
│            │              │ントメントをスケジュール変更をする。    │
│            │              │                                        │
│PM／Qualアポ│アポイントメン│ＭＳＡはＭＳＡがＰＭが開始したことを知っ│
│イントメント│ト状態の変更  │たときにこの変更を開始する。ＭＳＡはアポ│
│を処理する  │              │イントメントを処理状態へと変更する。    │
│            │              │                                        │
│PM／Qualアポ│アポイントメン│ＭＳＡはＰＭが処理を完了したときにこの変│
│イントメント│ト状態の変更  │更を開始し、適宜にアポイントメントを収縮│
│を完了する  │              │する。ＰＭＳＡは処理エージェントに通知し│
│            │              │、状態を完了へと変更し、マシンあるいは現│
│            │              │在時刻上に現在のウエハ数とともにPMの最終│
│            │              │発生をアップデートする。                │
│            │              │                                        │
│PMアポイント│アポイントメン│ＭＳＡは次のＱｕａｌが開始時間なったとき│
│メントをアク│ト状態の変更  │にこの変更を開始する。ＰＭＳＡはアポイン│
│ティブPM／Qu│              │トメントの状態を“アクティブ”へと変更す│
│alにす      │              │る。                                    │
│る          │              │                                        │
│            │              │                                        │
│PMアポイント│アポイントメン│ＭＳＡはＰＭアポイントメントのQual部(por│
│メントを処理│ト状態の変更  │tion)を示すファクトリー状態の変更を受信 │
│PM／Qualにす│              │したときにこの変更を開始する。ＰＭＳＡは│
│る          │              │るのアポイントメントの状態を処理PM／Qual│
│            │              │へと変更する。                          │
│            │              │                                        │
│PM／Qualアポ│アポイントメン│ＰＭＳＡはＰＭアポイントメントを左へ移動│
│イントメント│ト状態の変更  │しようとする。左へシフトできない場合、シ│
│を左へシフト│              │ステムはアポイントメントをキャンセルしそ│
│する        │              │れをスケジュール変更する。              │
│            │              │                                        │
│PM／Qualアポ│アポイントメン│ＰＭＳＡはＰＭアポイントメントを右へ移動│
│イントメント│ト状態の変更  │しようとする。右へシフトできない場合、シ│
│を右へシフト│              │ステムはアポイントメントをキャンセルし、│
│する        │              │それをスケジュール変更をする。          │
│            │              │                                        │
│PM／Qualアポ│アポイントメン│ＰＭＳＡは特定の時間へＰＭアポイントメン│
│イントメント│ト状態の変更  │トを収縮する。                          │
│を収縮する  │              │                                        │
│            │              │                                        │
│PM／Qualアポ│アポイントメン│ＰＭアポイントメントのコミットメントウイ│
│イントメント│ト状態の変更  │ンドウはアップデートされる。コミットメン│
│に対するコミ│              │トウインドウは所定のアポイントメントに対│
│ットメントウ│              │してＰＭの最も早い起動時間と最も遅いデリ│
│インドウのア│              │バリ時間を表す。                        │
│ップデート  │              │                                        │
│            │              │                                        │
│PM／Qualアポ│アポイントメン│PMアポイントメントは存在する場合はカレン│
│イントメント│ト状態の変更  │ダー内においてキャンセルされる。次いでそ│
│をオーバーラ│              │れはビッドリクエストとアポイントメント変│
│イドする    │              │更リスナを作り、それをＭＳＡへ戻す。これ│
│            │              │は開始されているスケジュールされていない│
│            │              │ＰＭに対応するものである。              │
│            │              │                                        │
│MESマシンイ │ファクトリー状│ＰＭＳＡはこのイベントに依存しているどの│
│ベントを検出│態の変更      │ＰＭあるいはＱｕａｌ内でのイベントの発生│
│する        │              │数を適宜アップデートする。次いでこのイベ│
│            │              │ント発生により引き起こされるどのＰＭある│
│            │              │いはＱｕａｌもスケジューリングする。それ│
│            │              │らは現在のところそのカレンダー上にスケジ│
│            │              │ュールされていないものである。          │
│            │              │                                        │
│ロット処理が│ファクトリー状│ＰＭＳＡは処理された材料の数に基づきスケ│
│マシン上で完│態の変更      │ジュールされている全てのPMあるいはＱｕａ│
│了する      │              │ｌに対するコミットメントウインドウを再確│
│            │              │認する。コミットメントウインドウが無効で│
│            │              │ある場合、ＰＭＳＡはＰＭあるいはＱｕａｌ│
│            │              │が新たなウインドウ内にスケジュールされる│
│            │              │場合にコミットメントウインドウをアップデ│
│            │              │ートするか、あるいは既存のアポイントメン│
│            │              │トをキャンセルし、新たなウインドウ内にて│
│            │              │スケジュールを変更するかのどちらかである│
│            │              │。またトリガー点に到着し、前にスケジュー│
│            │              │ルされていない、処理された材料の数に基づ│
│            │              │きいずれのＰＭあるいはＱｕａｌをもスケ  │
│            │              │ジュールする。                          │
│            │              │                                        │
│アラームが始│アラームイベン│ＰＭＳＡはトリガー点に到着し、そして前に│
│動する      │ト            │スケジュールされていない、タイムベースの│
│            │              │ＰＭあるいはＱｕａｌをスケジューリングす│
│            │              │る。                                    │
【００６３】
表５  リソーススケジューリングエージェントに対する応答的スケジューリングアクティビティ
│イベント    │イベントタイプ│応答的スケジューリングアクティビティ    │
│            │              │                                        │
│ロード（アン│アラームイベン│このアラームは特定のロード（アンロード）│
│ロード）アポ│ト            │アポイントメントのスケジュールした起動時│
│イントメント│              │間が到達したことを示す。リソースアポイン│
│に対するアポ│              │トメントスケジューラはアポイントメントが│
│イントメント│              │アクティブでない場合はアポイントメントを│
│開始時刻のア│              │アクティブにする。またリソースアポイント│
│ラームが始動│              │メントスケジューラは必要に応じてアポイン│
│する        │              │トメント終了時刻も作る。このリソースアポ│
│            │              │イントメントスケジューラはプロセスエージ│
│            │              │ェントにアポイントメントの処理を開始する│
│            │              │ように通知する。                        │
│            │              │                                        │
│ディスチャー│アラームイベン│このアラームは特定のディスチャージアポイ│
│ジアポイント│ト            │ントメントのスケジュールした開始時間が到│
│メントに対す│              │達したことを示す。リソースアポイントメン│
│るアポイント│              │トスケジューラはアポイントメントがアクテ│
│メント開始時│              │ィブでない場合はアポイントメントをアクテ│
│間のアラーム│              │ィブにする。また必要に応じてアポイントメ│
│が始動する  │              │ントの終了時刻も作る。リソースアポイント│
│            │              │メントスケジューラはプロセスエージェント│
│            │              │にアポイントメントの処理を開始するように│
│            │              │通知する。                              │
│            │              │                                        │
│ロード（アン│アラームイベン│このアラームは特定のロード（アンロード）│
│ロード）アポ│ト            │アポイントメントのスケジュールした終了時│
│イントメント│              │刻が到達したことを示す。リソースアポイン│
│に対するアポ│              │トメントスケジューラはアポイントメントを│
│イントメント│              │最大の拡張パーセンテージが達せられるまで│
│終了時刻のア│              │（例１７５％）本来スケジュールされた持続│
│ラームが始動│              │時間のパーセンテージ（例：２５％）で拡張│
│する        │              │する。アポイントメントを拡張する前に、続│
│            │              │いて予約されたアポイントメントは時間内で│
│            │              │後にシフトされる。新たな終了時刻アラーム│
│            │              │は拡張されたロード（アンロード）アポイン│
│            │              │トメントに対し設定される。              │
│            │              │                                        │
│チャージアポ│アラームイベン│このアラームは特定のチャージアポイントメ│
│イントメント│ト            │ントのスケジュールした終了時刻が到達した│
│に対するアポ│              │ことを示す。リソースアポイントメントスケ│
│イントメント│              │ジューラはアポイントメントを最大の拡張パ│
│終了時刻のア│              │ーセンテージが達せられるまで(例１７５％)│
│ラームが始動│              │本来スケジュールされた持続時間のパーセン│
│する        │              │テージ（例：２５％）で拡張する。アポイン│
│            │              │トメントを拡張する前に、続いて予約された│
│            │              │アポイントメントは時間内で後ろにシフトさ│
│            │              │れる。新たな終了時刻アラームは拡張された│
│            │              │ロード（アンロード）アポイントメントに対│
│            │              │し設定される。                          │
│            │              │                                        │
│マシンバッチ│アポイントメン│ＭＳＡは対応のマシンバッチアポイントメン│
│アポイントメ│トの状態変更  │トに対する開始時間が到達したときにこの変│
│ントがその状│              │更を開始する。ＲＳＡは対応の現在のチャー│
│態をアクティ│              │ジアポイントメントの状態をアクティブへと│
│ブへ状態する│              │変更し、そして新たな終了時刻アラームはア│
│            │              │クティブにされたチャージアポイントメント│
│            │              │に対し設定される。                      │
│            │              │                                        │
│マシンバッチ│アポイントメン│ＭＳＡはマシンバッチアポイントメントが実│
│アポイントメ│トの状態変更  │際に開始されたときにこの変更を開始する。│
│ントがその状│              │このチャージアポイントメントはまだアクテ│
│態を処理へ変│              │ィブ状態を有す。                        │
│更する      │              │                                        │
│            │              │                                        │
│マシンバッチ│アポイントメン│ＭＳＡは対応のマシンバッチアポイントメン│
│アポイントメ│トの状態変更  │ト処理が実際に完了したときにこの変更を開│
│ントがその状│              │始する。ＲＳＡは対応のディスチャージアポ│
│態を完了へ変│              │イントメントのアポイントメント状態を完了│
│更する      │              │状態へと変更する。                      │
│            │              │                                        │
│ロットロード│アポイントメン│ＬＳＡはロットロードアポイントメントが後│
│(アンロード)│トの状態変更  │の時間へシフトされたときにこの変更を開始│
│アポイントメ│              │する。ＲＳＡはその対応するロードアポイン│
│ントが後の時│              │トメントを再調整し、そして必要に応じてそ│
│間へシフトさ│              │のカレンダー上に別のアポイントメントをシ│
│れる        │              │フトする。そのアポイントメントが開始時刻│
│            │              │アラームを有している場合はアラームのアッ│
│            │              │プデートが実行される。                  │
│            │              │                                        │
│マシンバッチ│アポイントメン│ＭＳＡはマシンバッチアポイントメントが後│
│アポイントメ│トの状態変更  │の時間にシフトされたときにロットスケジュ│
│ントを右に、│              │ーリングカレンダーからこの変更を開始ある│
│後の時間へシ│              │いは変更への対応を開始する。ＲＳＡは対応│
│フトする    │              │のチャージおよびディスチャージアポイント│
│            │              │メントを後の時間にシフトする。そのカレン│
│            │              │ダー上の別のアポイントメントもまたシフト│
│            │              │される。                                │
│            │              │                                        │
│マシンバッチ│アポイントメン│ＭＳＡはマシンバッチアポイントメントが収│
│アポイントメ│トの状態変更  │縮されたときにこの変更を開始する。ディス│
│ント収縮する│              │チャージアポイントメントがアクティブでな│
│            │              │いとき、ＲＳＡは対応のディスチャージアポ│
│            │              │イントメントを前の時間にシフトする。そう│
│            │              │でなければＲＳＡはディスチャージアポイン│
│            │              │トメントを収縮する。ディスチャージアポイ│
│            │              │ントメントに対する開始時刻アラームあるい│
│            │              │は終了時刻アラームはアップデートされる必│
│            │              │要がある。                              │
│            │              │                                        │
│マシンバッチ│アポイントメン│ＭＳＡはマシンバッチアポイントメントが拡│
│アポイントメ│トの状態変更  │張したときにこの変更を開始する。ディスチ│
│ントを拡張す│              │ャージアポイントメントがアクティブでない│
│る          │              │とき、ＲＳＡは対応のディスチャージアポイ│
│            │              │ントメントを後の時間にシフトする。そうで│
│            │              │なければＲＳＡはディスチャージアポイント│
│            │              │メントを拡張する。ディスチャージアポイン│
│            │              │トメントに対する開始時刻アラームあるいは│
│            │              │終了時刻アラームはアップデートされる必要│
│            │              │がある。                                │
│            │              │                                        │
│ロードが開始│ファクトリー状│装置（イクイップメント）インターフェース│
│する        │態の変更（EI）│（EI）はＲＳＡにロードが開始したことを知│
│            │              │らせる。ＲＳＡはロードされたロットが予想│
│            │              │されたものあるいは予想外のものかどうかに│
│            │              │よって反応する。全てのロットが予想された│
│            │              │ものであるが、しかしオーダーをロードする│
│            │              │ことはカレンダー上のアポイントメントとは│
│            │              │異なるものである場合、ＲＳＡはそのロード│
│            │              │アポイントメントとそれらのパーティシパン│
│            │              │トを再調整する。                        │
│            │              │                                        │
│キャリアが到│ファクトリー状│ＥＩはＲＳＡにキャリアが到達したことを知│
│達する      │態の変更      │らせる。予想通りのロットを運んでいれば、│
│            │              │ＲＳＡは対応のリソースロードロットアポイ│
│            │              │ントメントの状態を動作可能状態へと変更す│
│            │              │る。                                    │
│            │              │                                        │
│ロードをアッ│ファクトリー状│ＥＩよりの通知で、対応のロードアポイント│
│プデートする│態の変更      │メントがバッチジョブにおける第一のもので│
│            │              │はない場合、ＲＳＡはまず前のロードアポイ│
│            │              │ントメントを収縮し、フォローアップロード│
│            │              │アポイントメントを早い開始時刻へ戻し(pul│
│            │              │l)、前のロードアポイントメントのアポイン│
│            │              │トメント状態を完了状態へと変更する。前の│
│            │              │ロードアポイントメントに対する終了時刻ア│
│            │              │ラームはキャンセルされる。ＰＭＳＡは次の│
│            │              │ロードアポイントメント状態をアクティブへ│
│            │              │と変更する。                            │
│            │              │                                        │
│ロードが完了│ファクトリー状│ロードが完了したというＥＩによる通知で、│
│する        │態の変更      │ＲＳＡは対応のロードアポイントメントを収│
│            │              │縮し、終了時刻アラームをキャンセルし、最│
│            │              │終ロードアポイントメントのアポイントメン│
│            │              │ト状態を完了状態へと変更する。          │
│            │              │                                        │
│チャージが開│ＥＩイベント  │チャージが開始したというＥＩによる通知で│
│始する      │              │、RSAはチャージアポイントメントの状態を │
│            │              │処理状態へと変更する。                  │
│            │              │                                        │
│チャージが完│ＥＩイベント  │チャージが完了したというＥＩによる通知で│
│了する      │              │、ＲＳＡはチャージアポイントメントを収縮│
│            │              │し、終了時刻アラームをキャンセルし、チャ│
│            │              │ージアポイントメントの状態を完了状態へと│
│            │              │変更する。フォローアップアンロードアポイ│
│            │              │ントメントがいくつかある場合は、アンロー│
│            │              │ドアポイントメントを早い開始時間へと戻し│
│            │              │、アンロードアポイントメントを開始する。│
│            │              │                                        │
│ディスチャー│ＥＩイベント  │ディスチャージが開始したというＥＩによる│
│ジを開始する│              │通知で、ＲＳＡはディスチャージアポイント│
│            │              │メントの状態を処理状態へと変更する。    │
│            │              │                                        │
│アンロードが│ＥＩイベント  │アンロードが開始したというＥＩによる通知│
│開始する    │              │で、ＲＳＡは第一のアンロードアポイントメ│
│            │              │ントの状態を処理状態へと変更する。      │
│            │              │                                        │
│アンロードを│ＥＩイベント  │ＥＩからの通知で、アンロードアポイントメ│
│アップデート│              │ントはアップデートされる。対応のアンロー│
│する        │              │ドアポイントメントがアンロード開始イベン│
│            │              │トにおいて最終アポイントメントではない場│
│            │              │合、ＲＳＡは対応のアンロードアポイントメ│
│            │              │ントを収縮し、その終了時刻アラームをキャ│
│            │              │ンセルし、その状態を完了状態へと変更する│
│            │              │。次いでＲＳＡは次のアンロードアポイント│
│            │              │メントを早い時間へ戻し、次のアンロードア│
│            │              │ポイントメントの処理を開始する。対応のア│
│            │              │ンロードアポイントメントがアンロード開始│
│            │              │イベントにおいて最後のアポイントメントで│
│            │              │ある場合、ＲＳＡはアンロード完了イベント│
│            │              │を待つ。                                │
│            │              │                                        │
│アンロードを│ＥＩイベント  │アンロードが完了したというＥＩよりの通知│
│完了する    │              │で、ＲＳＡはアンロードアポイントメントを│
│            │              │収縮し、その終了時刻アラームをキャンセル│
│            │              │し、アポイントメントの状態を完了状態へと│
│            │              │変更する。                              │
│            │              │                                        │
│予想外のアン│ＥＩイベント  │アンロードが予想外に開始（すなわち、次の│
│ロードが開始│              │アポイントメントがアンロードアポイントメ│
│する        │              │ントではない、あるいは移動の順番がスケジ│
│            │              │ュールされた順番とは異なる場合）したとい│
│            │              │うＥＩよりの通知で、ＲＳＡはスケジュール│
│            │              │アンロードアポイントメントを変更し、最初│
│            │              │のアポイントメントをアクティブにする。オ│
│            │              │ーバーラップしているアポイントメントは後│
│            │              │の時間にシフトされるかキャンセルされる。│
│            │              │                                        │
│予想外のロー│EIイベント    │ロードが予想外に開始（すなわち、次のアポ│
│ドが開始する│              │イントメントがロードアポイントメントでは│
│            │              │ない、あるいは移動の順番がスケジュールさ│
│            │              │れた順番とは異なる場合）したというＥＩよ│
│            │              │りの通知で、次のチャージアポイントメント│
│            │              │のパーティシパントのひとつではないロット│
│            │              │がリストにある場合、ＲＳＡはロットリスト│
│            │              │とバッチIDを通過し、適切な対応のためにＭ│
│            │              │ＳＡへ向かう。全てのロットが次のチャージ│
│            │              │アポイントメントにあり、しかし移動の順番│
│            │              │がスケジュールされたアポイントメントとは│
│            │              │異なる場合、ＲＳＡはロードアポイントメン│
│            │              │トをスケジュール変更する。              │
【００６４】
ここで留意すべきは、予約アポイントメントはシフトされ、キャンセルされ、収縮され、拡張され、スケジュール変更されるということであり、これらの変更はプロセスフローを通して、特にカレンダーを通して影響を与えることができることである。変更は一つののソフトウエアエージェントによって行われるが、変更されたアポイントメントは複数のカレンダー上に予約される。この変更は結果としてその他のソフトウエアエージェントと通信する必要があり、それによりそれらの変更がそれぞれカレンダーにアップデートできる。このことはプロセスフローにおける別のタイプのイベントにも当てはまる。
【００６５】
例示した形態では、本発明はオブジェクト指向（ＯＯＰ）プログラミング技術を用いて実施される。一方で本発明はオブジェクト指向でない技術を用いて実施されてもよい。ソフトウエアエージェント２６５はオブジェクトとして実施され、そしてそれらは、インテリジェントで、状態を感知するものであり（state aware）、特定の目的が組み込まれ、かつその目的を達成するための動作を自発的に行う。これらの動作は比較的単純であり、スクリプトとプロパティを通して部分的に変更が可能である。この動作は割り当てられたロットの納期を達成すること、所定の品質水準を達成すること、マシンの稼動時間を最大限にすること、この機に便乗した予防的維持のスケジューリングなどの選ばれた目的を達成するために設計されている。ヘルパークラスはオブジェクトのクラスであり、そこへソフトウエアエージェント２６５である様々なオブジェクトが様々な責任を委託する、あるいはプロセスフロー１００においていくつかの有益なサービスを提供するものである。既述のパブリッシャとリスナもまたヘルパークラスオブジェクトである。
【００６６】
従って、ここに解説した詳細の幾つかの部分は、コンピュータシステムあるいはコンピュータデバイスにおいてメモリ内においてデータビット上にオペレーションの記号による説明（symbolic representation）を含む、ソフトウエアを実施プロセスに関して公開されている。これらの解説や説明は最も効率よく作業材料を別の当業者に運ぶために当業者によって用いられる方法である。これらの処理やオペレーションは物質数量の物質操作(physical manipulation)を必要とする。通常、必ず必要ではないが、これらの数量は電気、磁気、あるいは記憶され、移動され、組み合わされ、比較され、そうでなければ操作される光学信号の形をとる。主として一般に頻繁に使われるという理由から、これらの信号をビッド、価値(value)、要素(element)、記号(symbol)、特徴(characters)、期間(terms)、数(numbers)などとして示すことは時に便利であることを証明している。
【００６７】
しかしながらこれら全てのそして類似した用語は適切な物質数量に関連し、単にこれらの数量に用いられる便利なラベルであると考える。具体的に述べられていない場合、あるいはそうでなければ明らかであるが、本発明の開示を通して、これらの解説は電子デバイスのアクションと処理を示し、それは物理学の（電子、磁気、あるいは光学）量として、あるいはトランスミッションあるいはディスプレイデバイスとして表されるデータを操作し変換する。それらの説明を示す用語の例は、制限なしに、“プロセシング”、“コンピューティング”、“カリュクレーティング”、“ディターミニング”、“ディスプレイング”などである。
【００６８】
ここで留意すべきは本発明のソフトウエア実施アスペクトは典型的になんらかのプログラム記憶媒体の形でエンコード化されていること、あるいは何らかのタイプの伝送媒体で実施されることである。このプログラム記憶装置は磁気（例：フロッピイディスクあるいはハードドライブ）あるいは光学（例：リードオンリーメモリのコンパクトディスク、すなわちＣＤＲＯＭ）であり、そしてリードオンリーあるいはランダムアクセスである。同様に伝送媒体はツイストペア線、同軸ケーブル、光学ファイバ、あるいは従来公知の別の適切な伝送媒体である。本発明は所定の実施品のこれらのアスペクトに限定されるものではない。
【００６９】
ここに詳細な解説を終える。これまでに解説した特定の実施例は一例にすぎず、本発明はこの教示で恩恵を受ける当業者たちにとって明らかな、他のしかし等価の方法で変更され実施さ得る。ここで留意すべきは、検討されていない更なる変形が更に別の実施例で用いられてよいことである。更にここに明らかにされた構造の詳細あるいは設計に対しクレームにおいて解説されているものの以外に、限定はない。従ってこれまでに開示された特定の実施例は修正あるいは変更されてよく、またそのような全ての変形は本発明の範囲と意図の範囲内で検討される。従って、ここに求められている保護はクレームにおいて説明する。
【図面の簡単な説明】
【００７０】
【図１】本発明により構成され作動されるプロセスフローの一つの特定の実施例の一部を概念図である。
【図２】図１のコンピュータデバイスの選択されたハードウエアとソフトウエアのアーキテクチャ部分をそれぞれ概念的に描いたブロック図である。
【図３】図１の装置の一つの特定の実施品を概念的に描いた（すなわち半導体製造施設からのプロセスフローの一部と、リソースの消費に対するアポイントメントをスケジューリングする方法）図である。
【図４】予約アポイントメントの概念図である。
【図５】予約アポイントメントの関連する３つのカレンダーの概念図である。
【図６Ａ】早い開始時刻を活用するために予約アポイントメントの変更の概念図である。
【図６Ｂ】早い開始時刻を活用するために予約アポイントメントの変更の概念図。
【図７Ａ】先行する予約アポイントメントに対し予想外に長い持続時間に対応するために変更された予約アポイントメントの二つの状況の概念図。
【図７Ｂ】先行する予約アポイントメントに対し予想外に長い持続時間に対応するために変更された予約アポイントメントの二つの状況の概念図である。
【図１】
2005524165.tif 000003
【図２】
2005524165.tif 000004
【図３】
2005524165.tif 000005
【図４】
2005524165.tif 000006
【図５】
2005524165.tif 000007
【図６Ａ】
2005524165.tif 000008
【図６Ｂ】
2005524165.tif 000009
【図７Ａ】
2005524165.tif 000010
【図７Ｂ】
2005524165.tif 000011
【手続補正書】
【提出日】平成16年6月17日(2004.6.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセスフロー（１００）において所定のイベントの発生を検出し、
ソフトウエアスケジューリングエージェント（３０５、３１０、３１５、３２０）に前記イベントの発生を通知し、
前記所定のイベントの検出に応じて前記ソフトウエアスケジューリングエージェント（３０５、３１０、３１５、３２０）に応答してアクションをスケジューリングする、自動化製造環境でのスケジューリング方法。
【請求項２】
前記所定のイベントの検出では、計画されていないイベントあるいは予想外のイベントを検出する、請求項１記載の方法。
【請求項３】
前記所定のイベントの検出では、アポイントメントの状態変更、ファクトリーの状態変更、およびアラームイベントのうちの一つの発生を検出する、請求項１記載の方法。
【請求項４】
前記所定のイベントの検出では、アポイントメントのキャンセル、アポイントメントの拡張、アポイントメントの収縮、アポイントメントの中止、アポイントメントがアクティブになる、アポイントメントが完了に近づく、アポイントメントの完了、アポイントメントをシフトする、アポイントメントのオーバーライド、コミットメントウインドウのアップデート、ダウンタイムの発生を検出、マシンが利用できるようになる、ＰＭ／Ｑｕａｌが検出される、チェンバが故障する、チェンバが利用できるようになる、マシン能力の変更、マシン種類の変更、プロセスの追加、プロセスオペレーションの追加、ロットがマシンに到達する、ロットプロセスの変更、ロットが保留状態で配置される、ロットが保留状態から開放される、ロットの優先事項・プライオリティの変更、ロットの期日変更、ロットのウエハ数変更、ロットプロセスオペレーションの変更、ロットがマシンから外れる、アポイントメント開始時刻に対するアラーム始動およびアポイントメント終了時刻に対するアラーム始動、のうちの少なくとも一つを検出することを含む、請求項１記載の方法。
【請求項５】
前記ソフトウエアスケジューリングエージェント（３０５、３１０、３１５、３２０）に前記所定のイベントの発生の通知では、
パブリッシャ（３５２）へ前記発生の指示を送り、
前記パブリッシャ（３５２）からサブスクライブリスナ（３５８）へ前記発生をパブシッリュし、
前記サブスクライブリスナ（３５８）から前記ソフトウエアスケジューリングエージェント（３０５、３１０、３１５、３２０）を呼び出すことを含む、請求項１記載の方法。
【請求項６】
前記アクションのスケジューリングでは、進行中のスケジュールアポイントメントを中止すること、スケジュールアポイントメントが開始する前にスケジュールアポイントメントをキャンセルすること、新たなアポイントメントをスケジューリングすること、スケジュールアポイントメントを開始すること、スケジュールアポイントメントの持続時間を拡張すること、スケジュールアポイントメントの持続時間を収縮すること、スケジュールアポイントメントをシフトすること、新たな処理能力・プロセスケイパビリティを追加すること、古い処理能力を削除すること、アラームを設定すること、アラームをキャンセルすること、アポイントメントの状態を変更することのうちの少なくとも一つがなされる、請求項１記載の方法。
【請求項７】
前記所定のイベントと関連するアポイントメントを積極的にスケジューリングする、請求項１記載の方法。
【請求項８】
プロセスフロー（１００）での所定のイベントの発生を検出するための手段と、
ソフトウエアスケジューリングエージェント（３０５、３１０、３１５、３２０）に前記所定のイベントの発生を通知するための手段と、
前記所定のイベントの検出に応じてソフトウエアスケジューリングエージェント（３０５、３１０、３１５、３２０）に応答してアクションをスケジューリングするための手段とを有した、自動化製造環境でのスケジュール用装置。
【請求項９】
前記所定のイベントの発生を検出するための手段は、計画されていないイベントあるいは予想外のイベントを検出するための手段を含む、請求項８記載の装置。
【請求項１０】
前記所定のイベントの発生を検出するための手段は、アポイントメント状態の変更、ファクトリー状態の変更、アラームイベントのうちの一つの発生を検出するための手段を含む、請求項８記載の装置。
【請求項１１】
前記所定のイベントを検出するための手段は、アポイントメントのキャンセル、アポイントメントの拡張、アポイントメントの縮小、アポイントメントの中止、アポイントメントの状態を変更、アポイントメントのシフト、アポイントメントのオーバーライド、トランスポート時間のアップデート、ロード時間のアップデート、アンロード時間のアップデート、ロットをバッチに結合する、ロットがバッチから離れる、バッチからのロットをキャンセルする、コッミットメントウインドウをアップデートする、ダウンタイムの発生を検出する、マシンが利用可能になる、ＰＭ／Ｑｕａｌが検出される、チェンバが故障する、チェンバが利用可能になる、マシン能力の変更、マシン種類の変更、プロセスの追加、プロセスオペレーションの追加、ロットがマシンに到達する、ロットプロセスを変更する、ロットが保留で配置される、ロットが保留から開放される、ロットの優先事項の変更、ロットの期日変更、ロットのウエハ数変更、ロットのプロセスオペレーション変更、ロットがマシンを外れる、アポイントメント開始時刻に対するアラーム始動、アポイントメント終了時刻に対するアラーム始動のうち少なくとも一つを検出するための手段を含む、請求項８記載の装置。
【請求項１２】
前記ソフトウエアスケジューリングエージェント（３０５、３１０、３１５、３２０）に前記発生を通知する手段は、
パブリッシャ（３５２）へ前記発生の指示を送る手段と、
パブリッシャ（３５２）からサブスクライブリスナ（３５８）へ前記発生をパブリッシュするための手段と、
前記サブスクライブリスナ（３５８）から前記ソフトウエアスケジューリングエージェント（３０５、３１０、３１５、３２０）を呼び出すための手段と、を含む、請求項８記載の装置。
【請求項１３】
前記応答してアクションをスケジューリングするための手段は、進行中のスケジュールアポイントメントを中止すること、スケジュールアポイントメントが開始する前にスケジュールアポイントメントをキャンセルすること、新たなアポイントメントをスケジューリングすること、スケジュールアポイントメントを開始すること、スケジュールアポイントメントの持続時間を拡張すること、スケジュールアポイントメントの持続時間を縮めること、スケジュールアポイントメントをシフトすること、新たな処理能力を追加すること、古い処理能力を削除すること、アラームを設定すること、アラームをキャンセルすること、アポイントメントの状態を変更することのうちの少なくとも一つのための手段を含む、請求項８記載の装置。
【請求項１４】
前記所定のイベントと関連するアポイントメントを積極的にスケジューリングするための手段を更に有した、請求項８記載の装置。
【請求項１５】
プロセスフロー（１００）と、
請求項１に記載した方法に従ってスケジューリングを行うコンピュータシステムと、を有し、
前記コンピュータシステムは、当該コンピュータシステム上に存在する複数のソフトウエアスケジューリングエージェント（３０５、３１０、３１５、３２０）を含み、前記ソフトウエアスケジューリングエージェント（３０５、３１０、３１５、３２０）は複数の所定のイベントに応じた処理の流れ（１００）におけるアクティビティに対するアポイントメントに応答してスケジューリングすることが可能である、自動化製造システム。
【請求項１６】
プロセスフロー（１００）において所定のイベントのうちの一つの発生を検出し、一つのソフトウエアエージェント（２６５）にその発生を通知することが出来る、複数のパブリッシャ及びサブスクライバを更に有する、請求項１５記載の自動化製造システム。
【請求項１７】
少なくとも一つの生産実行システム（２７０）及び自動化マテリアルハンドリングシステム（２８０）を更に有する、請求項１５記載の自動化製造システム。
【請求項１８】
前記コンピュータシステムは、ローカルエリアネットワーク、広域ネットワーク、イントラネット、インターネットの一部、のうちの少なくとも一つである、請求項１５記載の自動化製造システム。
【請求項１９】
前記処理の流れ（１００）は一部の半導体製造設備を有する、請求項１５記載の自動化製造システム。
【国際調査報告】
2005524165.tif 000012
2005524165.tif 000013
2005524165.tif 000014