(57)【要約】１つまたは複数の半導体製造ツールおよびツールサービス層を使用して、製造工程およびデータ収集ステップを含めたクライアントの要求を、要求中のツール機能またはツールサービス層機能を参照せずに満たす。まず、クライアントから要求を受信し、次いで、ツールによって提供できる１つまたは複数のツール機能およびツールサービス層によって提供できる１つまたは複数のツールサービス層機能を識別する。サービス要求を満たすために必要な機能が識別された後で、その識別されたツール機能およびツールサービス層機能が実施され、それによってクライアントサービス要求を満たす。さらに、一実施形態では、サービス要求は、サブステップを具体的に参照する必要はなく、同様に、一実施形態では、該要求は、クライアント要求を満たすのに必要なツールサービス層機能を参照しない。こうした状況では、必要なツールサービス層機能は、サービス要求からの情報なしに、独立に識別される。
2005524969.tif 000002
【特許請求の範囲】
【請求項１】
ツールサービス層を使用して、クライアントのツールサービス要求を満たすための方法であって、
（１）クライアントからツールサービス要求を受信するステップと、
（２）ツールサービス層によって提供できる１つまたは複数のツールサービス層機能を識別するステップであって、
該識別された１つまたは複数のツールサービス層機能は、前記ツールサービス要求を満たすよう要求されるものであり、
（３）前記識別された１つまたは複数のツールサービス層機能を実行し、該実行によって前記クライアントツールサービス要求を満たすステップと
を具えたことを特徴とする方法。
【請求項２】
前記ツールサービス要求は、前記１つまたは複数のツールサービス層機能に連携された、１つまたは複数のツールによって提供される１つまたは複数のツール機能によって満たすことができ、
該ツールサービス要求は、前記１つまたは複数のツール機能を参照しないことを特徴とする請求項１記載の方法。
【請求項３】
前記ツールサービス要求は、前記１つまたは複数のツールサービス層機能を参照しないことを特徴とする請求項１記載の方法。
【請求項４】
前記識別ステップは、自動化シナリオを実行するワークフローを識別する工程をさらに具えたことを特徴とする請求項１記載の方法。
【請求項５】
前記ツールサービス要求は、前記１つまたは複数のツールサービス層機能に連携された、１つまたは複数のツールによって提供される１つまたは複数のツール機能によって満たすことができ、
該識別ステップは、前記１つまたは複数のツールによって提供できるツール機能を示す構成情報を調べる工程をさらに具えたことを特徴とする請求項１記載の方法。
【請求項６】
前記識別ステップは、前記ツールサービス層によって提供できるツールサービス層機能を示す構成情報を調べる工程をさらに具えたことを特徴とする請求項１記載の方法。
【請求項７】
前記識別ステップは、ワークフロー定義を示す構成情報を調べる工程をさらに具えたことを特徴とする請求項１記載の方法。
【請求項８】
前記ツールサービス要求は、前記１つまたは複数のツールサービス層機能に連携された、１つまたは複数のツールによって提供される１つまたは複数のツール機能によって満たすことができ、
前記クライアント要求を、前記１つまたは複数のツールが理解できるフォーマットに変換するステップをさらに具えたことを特徴とする請求項１記載の方法。
【請求項９】
ツールサービス層を使用して、クライアントのツールサービス要求を満たすためのシステムであって、
メモリと、
前記メモリと通信し、ルーティング装置を介して、クライアントからのツールサービス要求を受信するように構成されたプロセッサと
を具え、
前記ツールサービス層は、前記プロセッサ上で実装されており、前記ツールサービス要求を満たすのに必要な１つまたは複数のツールサービス層機能を識別するように構成され、
前記プロセッサは、前記識別された１つまたは複数のツールサービス層機能を、前記ツールサービス層に実施させて、前記クライアントツールサービス要求を満たすように構成されたことを特徴とするシステム。
【請求項１０】
前記ツールサービス要求は、前記１つまたは複数のツールサービス層機能に連携された、１つまたは複数のツールによって提供される１つまたは複数のツール機能によって満たすことができ、
該ツールサービス要求は、前記１つまたは複数のツール機能を参照しないことを特徴とする請求項９記載のシステム。
【請求項１１】
前記ツールサービス要求は、前記１つまたは複数のツールサービス層機能を参照しないことを特徴とする請求項９記載のシステム。
【請求項１２】
前記プロセッサは、自動化シナリオを実行するワークフローを識別できることを特徴とする請求項９に記載のシステム。
【請求項１３】
前記ツールサービス要求は、前記１つまたは複数のツールサービス層機能に連携された、１つまたは複数のツールによって提供される１つまたは複数のツール機能によって満たすことができ、
該プロセッサは、前記１つまたは複数のツールによって提供できるツール機能を示す構成情報を調べることができることを特徴とする請求項９記載のシステム。
【請求項１４】
前記プロセッサは、前記ツールサービス層によって提供できるツールサービス層機能を示す構成情報を調べることができることを特徴とする請求項９記載のシステム。
【請求項１５】
前記プロセッサは、ワークフロー定義を示す構成情報を調べることができることを特徴とする請求項９記載のシステム。
【請求項１６】
前記ツールサービス要求は、前記１つまたは複数のツールサービス層機能に連携された、１つまたは複数のツールによって提供される１つまたは複数のツール機能によって満たすことができ、
該プロセッサは、前記クライアント要求を、前記１つまたは複数のツールが理解できるフォーマットに変換できることを特徴とする請求項９記載のシステム。
【請求項１７】
コンピュータ読取り可能媒体上で実施され、ツールサービス層を使用してクライアントのツールサービス要求を満たすためのコンピュータプログラムであって、
クライアントからツールサービス要求を受信するためのコンピュータ読取り可能命令と、
前記ツールサービス層によって提供できる１つまたは複数のツールサービス層機能を識別するためのコンピュータ読取り可能命令であって、前記識別された１つまたは複数のツールサービス層機能は、前記ツールサービス要求を満たすように要求され、
前記識別された１つまたは複数のツールサービス層機能を実行し、該実行によって前記クライアントツールサービス要求を満たすためのコンピュータ読取り可能命令と
具えたことを特徴とするコンピュータプログラム。
【請求項１８】
前記ツールサービス要求は、前記１つまたは複数のツールサービス層機能に連携された、１つまたは複数のツールによって提供される１つまたは複数のツール機能によって満たすことができ、
該ツールサービス要求は、前記１つまたは複数のツール機能を参照しないことを特徴とする請求項１７記載のコンピュータプログラム。
【請求項１９】
前記ツールサービス要求は、前記１つまたは複数のツールサービス層機能を参照しないことを特徴とする請求項１７記載のコンピュータプログラム。
【請求項２０】
前記識別させるためのコンピュータ読取り可能命令は、自動化シナリオを実行するワークフローを識別するためのコンピュータ読取り可能命令をさらに具えたことを特徴とする請求項１７記載のコンピュータプログラム。
【請求項２１】
前記ツールサービス要求は、前記１つまたは複数のツールサービス層機能に連携された、１つまたは複数のツールによって提供される１つまたは複数のツール機能によって満たすことができ、
該識別させるためのコンピュータ読取り可能命令は、前記１つまたは複数のツールによって提供できるツール機能を示す構成情報を調べるためのコンピュータ読取り可能命令をさらに具えたことを特徴とする請求項１７記載のコンピュータプログラム。
【請求項２２】
前記識別させるためのコンピュータ読取り可能命令は、前記ツールサービス層によって提供できるツールサービス層機能を示す構成情報を調べるためのコンピュータ読取り可能命令をさらに具えたことを特徴とする請求項１７記載のコンピュータプログラム。
【請求項２３】
前記識別させるためのコンピュータ読取り可能命令は、ワークフロー定義を示す構成情報を調べるためのコンピュータ読取り可能命令をさらに具えたことを特徴とする請求項１７記載のコンピュータプログラム。
【請求項２４】
前記ツールサービス要求は、前記１つまたは複数のツールサービス層機能に連携された、１つまたは複数のツールによって提供される１つまたは複数のツール機能によって満たすことができ、
該コンピュータプログラムは、前記クライアント要求を、前記１つまたは複数のツールが理解できるフォーマットに変換するためのコンピュータ読取り可能命令をさらに具えたことを特徴とする請求項１７記載のコンピュータプログラム。
【請求項２５】
ツールサービス層を使用してクライアントのツールサービス要求を満たすためのシステムであって、
クライアントからツールサービス要求を受信する手段と、
前記ツールサービス層によって提供できる１つまたは複数のツールサービス層機能を識別する手段であって、前記識別された１つまたは複数のツールサービス層機能は、前記ツールサービス要求を満たすように必要され、
前記識別された１つまたは複数のツールサービス層機能を実行し、該実行によって前記クライアントツールサービス要求を満たす手段と
を具えたことを特徴とするシステム。
【請求項２６】
前記ツールサービス要求は、前記１つまたは複数のツールサービス層機能に連携された、１つまたは複数のツールによって提供される１つまたは複数のツール機能によって満たすことができ、
該ツールサービス要求は、前記１つまたは複数のツール機能を参照しないことを特徴とする請求項２５記載のシステム。
【請求項２７】
前記ツールサービス要求は、前記１つまたは複数のツールサービス層機能を参照しないことを特徴とする請求項２５記載のシステム。
【請求項２８】
前記識別の手段は、自動化シナリオを実行するワークフローを識別する手段をさらに具えたことを特徴とする請求項２５記載のシステム。
【請求項２９】
前記ツールサービス要求は、前記１つまたは複数のツールサービス層機能に連携された、１つまたは複数のツールによって提供される１つまたは複数のツール機能によって満たすことができ、
前記識別する手段は、前記１つまたは複数のツールによって提供できるツール機能を示す構成情報を調べる手段をさらに具えたことを特徴とする請求項２５記載のシステム。
【請求項３０】
前記識別する手段は、前記ツールサービス層によって提供できるツールサービス層機能を示す構成情報を調べる手段をさらに具えたことを特徴とする請求項２５記載のシステム。
【請求項３１】
前記識別する手段は、ワークフロー定義を示す構成情報を調べる手段をさらに具えたことを特徴とする請求項２５記載のシステム。
【請求項３２】
前記ツールサービス要求は、前記１つまたは複数のツールサービス層機能に連携された、１つまたは複数のツールによって提供される１つまたは複数のツール機能によって満たすことができ、
該システムは、前記クライアント要求を、前記１つまたは複数のツールが理解できるフォーマットに変換する手段をさらに具えたことを特徴とする請求項２５記載のシステム。
【請求項３３】
クライアントのツールサービス要求を満たすためのシステムであって、
プロセッサと、
前記プロセッサと通信するメモリと
を具え、
前記メモリは、
クライアントからのツールサービス要求を受信するように構成され、前記ツールサービス要求を満たすのに必要な１つまたは複数のツールサービス層機能を識別するように構成されたツールサービス層と、
前記識別された１つまたは複数のツールサービス層機能を、前記ツールサービス層に実行させ、該実行によって前記クライアントツールサービス要求を満たすように構成されたツールサービスコンポーネントと
を具えたことを特徴とするシステム。
【請求項３４】
前記ツールサービス層は、自動化シナリオを実行するワークフローを識別できることを特徴とする請求項３３記載のシステム。
【請求項３５】
前記ツールサービス層は、提供できるツールサービス層機能を示す構成情報を調べることができることを特徴とする請求項３３記載のシステム。
【請求項３６】
前記ツールサービス層は、ワークフロー定義を示す構成情報を調べることができることを特徴とする請求項３３記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般には、半導体装置の製造に使用される制御プロセスに関する。
より詳細には、本発明は、たとえば製造ステップおよびデータ収集ステップを含めたクライアントの要求を、そのタスクを完遂するのに求められる特定のサブステップに関する知識をクライアントが有する必要なしに満たすための方法、システム、および、コンピュータプログラムに関する。
【背景技術】
【０００２】
半導体製造産業において、ますます表面化している問題の１つは、半導体製造設備中の装置が非効率的に使用されていることである。このように装置稼働が非効率的である（たとえば、稼働率が低い）理由の１つは、今日の半導体工場管理および自動化の解決策として、しばしば、無数のベンダの極めて複雑で（ｂｅｗｉｌｄｅｒｉｎｇ）多様なコンポーネントおよびカスタムモジュールをつなぎ合わせるのに使用されるソフトウェアの派生品および改良品（ｅｖｏｌｕｔｉｏｎ）を寄せ集めて対処しているからである。たとえば、最初にベンダから供給される工場管理ソフトウェアはしばしば、競争上の強みを得ようとする考えから、購入者／ユーザによって修正される。しかし、既存のシステムに追加の機能およびツールを加えて修正してきた長年の積み重ねによって、取り扱い（ｎａｖｉｇａｔｅ）が難しく、また断片化され雑多な（ｓｐｒａｗｌ）ソフトウェアになっている。したがって、こうしたソフトウェアソリューションの寄せ集めによって、従来の製造作業の管理が難しくなっている。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
こうした断片化されたシステムによって生じる問題の１つは、クライアント（たとえば、ツールなど別のエンティティによって実施できるサービスを要求するいずれかのエンティティ）と工場内のさまざまなツールの間の通信に伴う難しさである。
例えば、特定のベンダのツール、またはあるファミリのツールでは、一般に、そのツールのクラスに特有の通信プロトコルが使われている。これは少数のプロトコルで管理可能であり得る。しかし多くの製造設備は、何百もの独立したツールまたはモジュールからなる。こうした状況では、クライアントの要求を、設備が適切に機能するように設備内のすべてのツールの各プロトコルに合わせて調整する必要がある。
【０００４】
実際、それぞれのサービス要求に応じるために、いくつかの多分複雑な追加の作業またはサブステップが必要になり、そのため前述の状況がさらに複雑になっている。
こうした作業またはサブステップのいずれもが、通常はあるツールによって扱われない１つまたは複数の前の（または後の）ステップに、潜在的に大いに依存する。例えば、フォトリソグラフィ工程を実施する前には、１つまたは複数ロットの材料をフォトリソグラフィツールに供給しなければならない。
しかし、ツール自体は、そのロットを動かしまたは扱うのに必要な機能を提供しない。したがって、特定のクライアント要求を満たすためには、そのツールによって提供されるもの以外のサービスが必要である。クライアントにこうした他のサービスについての認識を求めると、システムがより複雑になり、管理システムの実施が難しくなるという問題がある。
【０００５】
そこで、実際のクライアントの要求またはツールサービスを遂行するだけでなく、さまざまな異なるタイプの機械およびソフトウェアを含む製造環境内で他の関連サービスを提供することもできる製造システムの要求が求められている。
同様に、クライアントの要求を満たすのに必要なサブステップについてクライアントの認識を求めずに、こうした関連するサービスを利用し実施するための技術が必要とされている。
【課題を解決するための手段】
【０００６】
本発明は、クライアントのサービス要求を満たすために１つまたは複数のツールおよびツールサービス層（ｔｏｏｌ  ｓｅｒｖｉｃｅ  ｌａｙｅｒ）を使用するための技術を提供することによって前述した問題に対処する。
少なくとも一実施形態において、こうしたサービス要求は、１つまたは複数のツール機能、１つまたは複数のツールサービス層機能、または１つまたは複数のツール機能と１つまたは複数のサービス層機能の組合せを実施することによって満たすことができる。
ツール機能の少なくとも一部は、たとえばツールの初期化、圧力の増加または減少、チャンバへのガス充填、ポンプの作動などを含めたツールジョブ（ｔｏｏｌ  ｊｏｂ）を提供するのに実際に必要とされるサブステップを含むことがある。
少なくとも一実施形態で企図されているツールサービス層の少なくとも１つの機能とは、クライアントからツール機能（たとえば、フォトリソグラフィ工程の実施）の要求を受け取り、実施を必要とする他の関連する機能（以下、「ツールサービス層機能」と称する）が何であるか（たとえばフォトリソグラフィツールへの材料の供給）を判断し、こうした機能を実施することである。
したがって、本発明の少なくとも一部の実施形態では動作の際に、まずクライアントからサービス要求を受信する。次いで、製造設備内で使用可能な１つまたは複数のツールによって提供できる１つまたは複数のツール機能、ならびにツールサービス層によって提供できる１つまたは複数のツールサービス層機能を識別する。こうした実施形態では、ツール機能およびツールサービス層機能は、サービス要求を満たすことが必要とされる（または少なくとも望まれる）。それから、識別された１つまたは複数のツール機能、および１つまたは複数のツールサービス層機能を実施し、それによってクライアントのサービス要求を満たす。
【０００７】
また本発明の少なくとも一実施形態では、サービス要求は、１つまたは複数のツール機能、あるいは１つまたは複数のツールサービス層機能を参照しない。こうした実施形態では、まずツール機能またはツールサービス層機能を識別し、次いでそれを実施する。
【０００８】
本発明についての以下の詳細説明を、添付の図面と併せ読めば、本発明のさまざまな目的、特徴および利点がより深く理解され、より十分に評価できよう。
【発明の効果】
【０００９】
本発明は、クライアントからツール機能の要求を受け取り、その要求されたツール機能に対して実施を必要とする他の関連するツールサービス層機能が何であるかを認識し、その認識されたツールサービス層機能を実施し、クライアントサービス要求を満たすようにしたので、必要なツールサービス層機能をサービス要求からの情報なしに独立に識別することができ、これにより、管理システムの制御を簡素化し、システムの拡張性を高めることが容易になる。
【発明を実施するための最良の形態】
【００１０】
図１Ａは、本発明の少なくとも一部の概念を実施するために使用できるシステムの一例を示す図である。より具体的には、システム１００は、半導体製造システムのブロック図であり、本発明の少なくとも一部の実施形態では、複数の相互接続されたコンポーネントを含む。たとえば、システム１００は、複数のクライアントプロセスまたはクライアント１１０、ルーティング装置１２０、ツールサービス層１３０、複数のコンピューティングノード１５２および複数のツール１４０を含むことができる。
【００１１】
クライアント１１０は、サービスの提供を必要とし得る任意の数のエンティティを含むことができる。たとえば、サービスを求める呼出しは、プロセスが実行されている装置から送信される要求の形で行うことができる。クライアント１１０を実行できる装置の例には、監視アプリケーション、ツール状態表示パネル、ユーザインターフェイスなどが含まれる。使用に際しては、クライアントを使用して、研磨プロセスなどのツールジョブまたはツールサービスの実施、あるいはたとえばセンサによるデータの収集を要求することができる。さらに、クライアントは、ワークフロー（すなわち別のワークフローを実行するための呼出し）を含むことができる。一般に言えば、ワークフローは、事前にプログラムまたは記述された、ある仕事を完遂するために必要な一連のステップまたは作業を含み得る。それぞれのステップは、１つまたは複数のサービス提供を要求し、または別のワークフローを実行させることができる。したがって、ワークフロー中の１つのステップで、サービスを要求することができ、またそれを使用してサービスを要求することができる。
【００１２】
ツール１４０は、半導体を製造または測定するための標準の製造設備で使用されるモジュールおよび装置を含む。たとえば、ツール１４０の例には、酸化、フォトリソグラフィ、インプラント、計量のサービスなどのための装置が含まれる。ツール１４０は、センサや半導体の加工、計量またはパッケージ用ツールの内部または外部の補助ハードウェアなどの装置（たとえば外部装置１４２）を含むこともできる。
【００１３】
図１Ｂを参照すると、ノード１５２はパーソナルコンピュータ、ワークステーションなどどんなコンピュータ装置を含むこともでき、１つまたは複数のツールサービスコンポーネント（ｔｏｏｌ  ｓｅｒｖｉｃｅ  ｃｏｍｐｏｎｅｎｔ）１５０を実施するために使用することができる。またそれぞれのツールサービスコンポーネントは、ツール１４０（または外部装置１４２）との通信を助けるため１つまたは複数のツールドライバコンポーネント（またはデバイスドライバ）１５５を含むことができる。具体的には、ノード１５２上で実装された１つまたは複数のツールサービスコンポーネント１５０は、クライアント１１０とツール１４０の間で通信するのに必要な機能を提供する。具体的には、ソフトウェアおよび／またはハードウェアプロセスを使用することで、それぞれのツールサービスコンポーネント１５０は、ツールの論理的抽象化を行う役目を果たし、実際のツールインスタンス（ｔｏｏｌ  ｉｎｓｔａｎｃｅ）となる。したがって、関連するツールに渡すよう意図されたクライアントの要求は、ツールサービスコンポーネント１５０によって受信され、最初に処理される。
【００１４】
次いで、ツールドライバコンポーネント（ｔｏｏｌ  ｄｒｉｖｅｒ  ｃｏｍｐｏｎｅｎｔ）１５５は、クライアント要求を、それに関連するツールが受け入れることができる通信プロトコルに変換すなわち翻訳する。それぞれのツールサービスコンポーネントは、複数のツールドライバを含むことができる。それぞれのツールドライバは、実際のツール１４０および／またはそのツールの内部または外部にある装置と通信することができる。たとえば、ツールサービスコンポーネントは、あるツールドライバに、あるツールと通信させ、また別のツールドライバに、そのツールに接続された（または別の方法で通信する）装置、たとえば外部装置１４２などと通信させることができる。外部装置の例には、バーコードリーダ、センサなどが含まれる。このようにして、ツールサービスコンポーネント１５０により、それぞれのクライアントがツールと直接に通信しなければならない場合よりも、得られる抽象性および柔軟性のレベルが高まる。たとえば、クライアントは（ツールサービスコンポーネントから）ツールまたは装置を発生源とするデータを要求することができる。ツールサービスコンポーネントは論理ツールであり、クライアントはツールサービスコンポーネントがどのようにして要求されたデータを取り出すかを知らず、または気に掛けない。
【００１５】
図１Ｂに示すように、ツールサービスコンポーネント１５０を含むことに加えて、それぞれのノード１５２は、オブジェクトテーブル（ｏｂｊｅｃｔ  ｔａｂｌｅ）１５４を含むことができる。以下に述べるように、こうしたオブジェクトテーブル１５４を使用して、ノード上で実行されているツールサービスコンポーネントの特定のインスタンスを識別し呼び出すのに使用されるオブジェクト参照を格納または管理することができる。したがって、ツールサービスコンポーネント１５０を使用して、ツール１４０に指令を出し、またツールから通信を受信する。
【００１６】
さらに、ツールサービスコンポーネントが起動されているそれぞれのノードを登録するためにノード登録プロセス１６２を実行するノード１６０を実装することができる。これにより、ノード登録プロセス１６２を使用して、ツールサービスコンポーネントが起動されているぞれぞれのノードのノード識別子（ノードＩＤ）を、中央データベース１７０に格納し、またはそこから引き出すことができる。この例では、ノード１６０を使用して、データベース１７０を管理する（すなわちノードＩＤを、データベース１７０に格納し、そこから取り出す）が、他の例では、データベース１７０は、ノード１５２によって直接に管理することができる。さらに、データベース１７０の代わりに、任意の媒体（たとえば、任意の記憶ファイルなど）を使用して情報を格納することができる。
【００１７】
データベース１７０を使用して、上述のノードＩＤに加えて、ツールまたはツールサービス層がサービスを提供できるかどうか識別するために使用する構成情報を格納する。したがって、ツールに関連する構成情報は、名前、ポート数、材料容量などツールの特性を含むことができる。同様に、ツールサービス層に関する構成情報は、明示的に定義された任意のサービス、および提供できる他のサービスの特性を含むことができる。構成情報は、任意の定義済みユーザを含むことも、自動化シナリオを実行する（すなわち、一連の個別タスクに対処するためのワークフローを実行する）ため事前定義されたワークフローを含むこともできる。本発明の少なくとも一部の実施形態では、構成情報は、構成アプリケーションなどを使用して、ユーザ（プロセスエンジニアなど）がデータベース１７０に入力できることが企図されている。
【００１８】
図１Ａに戻って参照すると、少なくとも一部の実施形態では、クライアントのサービス要求を十分に満たすために、他の複数のサブステップまたは機能（そうでなければ、クライアント要求の受信および実施によって自動的に実施されない）が必要となり得ることが企図されている。具体的には、いくつかの状況において、要求は、ツール、ツールサービス層、またはこの２つの組合せによって実施される１つまたは複数の追加のサブステップまたはタスクを実施することによってのみ満たすことができる。たとえば、研磨プロセスには、研磨ジョブ自体に加えて、ツール機能、たとえばツールの初期化、レシピパラメータ設定などのサブステップおよび／またはツールサービス層機能、たとえば研磨剤の装入、研磨中のデータ収集および今後の稼働のための結果分析のサブステップなどを必要とすることがある。さらに、少なくとも一部の実施形態では、サービスによっては、ツール機能（すなわちツールによる動作）は必要ないことが企図されている。こうした場合、サービスはツールサービス層１３０（すなわちツールサービス層機能）によって提供することができる。たとえば、障害検出手順を使用して、ツール自体によるサービスを必要とせずに、ツールが正常な状態（ｈｅａｌｔｈ）であるかを監視することができる。したがって、サービス要求は、ツール機能、ツールサービス層機能、またはこの２つの組合せを提供することによって満たすことができる。いずれの場合においても、少なくとも一部の実施形態では、クライアント要求は、要求されたサービスの具体的内容（ｓｐｅｃｉｆｉｃｓ）を（すなわち、どのサブステップ、どのコマンドプロトコルまたはフォーマットも、あるいはツールまたはツールサービス層がサービスを提供しているかも）参照する必要はなく、要求されたジョブ以外には、コンポーネントまたはプロセスの存在についてさえ知る必要がないことが企図されている。
【００１９】
ルーティング装置１２０は、オブジェクト参照を突き止めることによって、クライアント要求を適切なツールサービスコンポーネント１５０に引き渡し、ツール機能またはツールサービス層機能を実施する働きをするメソッドを呼び出す役割を担う。一般的に言えば、こうしたクライアント要求は、ツールによって提供される所望のツールサービスを識別し、ルーティング装置１２０は、所望のサービスに関連するオブジェクト参照を識別し、オブジェクトのメソッドを呼び出す。たとえば、ワークフロー中の１つのステップで、特定の研磨技術を１つまたは複数ロットの材料に適用するように要求することができる。さらに、本発明の少なくとも一部の実施形態では、クライアント要求は、実際のサービスまたは具体的内容（サブステップ、コマンドパラメータ、フォーマットなど）または要求されたジョブを完遂するために必要な詳細を参照せず、またそれに関する知識ももたないことが企図されている。たとえば、上述の研磨技術には、いつ実際の研磨プロセスを終了するかを判断するために研磨中に、センサによる監視プロセスを実行する必要がある。
【００２０】
ルーティング装置１２０は、協調してまたツールサービス層１３０と連携して動作する任意の数のソフトウェアプロセスまたはその任意の組合せを含んでおり、要求されたサービスを提供できるツールに関連するオブジェクト参照を識別し、そのオブジェクトの適切なメソッドを呼び出す役割を担う。同様に、ツールサービス層１３０は、ツールサービス層自体がサービスを提供できるインスタンスを判断する。こうした状況では、ツールが、要求を満たす必要がないことがある。その代わりに、要求は、ツールサービス層１３０によって満たすことができる。他の状況では、ツールおよびツールサービス層によって提供されるサービスの組合せによって満たすことができる。さらに、ツールサービス層１３０を使用して、ジョブ（たとえばワークフロー中の一ステップなどを含むことがある）の実行を制御するための事前定義されたワークフローを識別することができる。こうした場合は、呼び出されるワークフローを、たとえば遠隔またはローカルのデータベース（データベース１７０など）から呼び出し、次いで１つまたは複数のクライアント１１０として起動することができる。それから、ワークフローは、たとえば他のワークフローの実行などを含めて任意の数の追加クライアント要求を行うことができる。したがって、主要な自動化プロセスを実施する働きをするワークフローは、他のワークフローを呼び出して、たとえば例外処理ルーチンを含めた１つまたは複数のサブステップを実施することができる。
【００２１】
上述したように、ルーティング装置１２０は、クライアント要求を、適切なツールサービスコンポーネントにルーティングする役割を担う。このようにして、任意の数のクライアントが任意の数のツールにサービスを要求することができ得る（すなわち複数のクライアントが単一のツールのサービスを要求し、または１つのクライアントが複数のツールのサービスを要求することができる）。さらに、ツールサービス層１３０は、ルーティング装置１２０およびツールサービスコンポーネント１５０に加えて、他のアプリケーションコンポーネントを含むことができる。したがって、カスタムソフトウェアおよびハードウェアコンポーネントを追加することによって、システムの拡張性を高めることが容易になる。
【００２２】
上述したように、本発明の少なくとも一部の実施形態では、ツールサービス層１３０は、クライアント１１０から任意の数の要求を受け付け、または受信する役割を担うことが企図されている。繰り返して言うと、こうした要求は、要求されたサービスの具体的内容を参照する必要はなく、また要求されたジョブ以外には、コンポーネントまたはプロセスの存在についてさえ知る必要はない。このように、クライアント要求が、それぞれのツールの特異性およびプロトコルに適合する必要はない。その代わりに、クライアント要求をそれぞれのツール１４０が認識できるフォーマットに翻訳および変換するように、ツールサービス層１３０を構成する。したがって、ツールサービスコンポーネント１５０は、クライアント１１０にとっては、それぞれのツール１４０を表すものに見える。
【００２３】
さらに、ツールサービスコンポーネント１５０のソフトウェアおよびハードウェアプロセスは、いずれかのツール１４０またはツールサービス層１３０によって機能を提供できるかどうか判断する役割を担う。具体的には、ツールサービスコンポーネントは、ツールサービスの提供を容易にするのに必要なサブステップを判断する。サービスを完遂するのにツール機能以上のものが必要な場合は、ツールサービス層１３０が、こうした追加のツールサービス層機能を識別し提供する役割を担う。
【００２４】
図１Ａに示したように、一部の場合では、ツールサービス層１３０は、ツールサービスコンポーネント１５０およびルーティング装置１２０上に分散される。他の場合では、ツールサービス層１３０は、ルーティング装置１２０上でだけでも、ツールサービスコンポーネント１５０上でだけでも実装することができる。
【００２５】
上述したように、本発明の少なくとも一部の実施形態では、構成情報は、プロセス実行前（または実行中）に登録プロセスを用いて入力できる。構成情報は、入力されると、システムの初期化時に、たとえばツールサービス層１３０に転送することができる。それから、構成情報を使用して、たとえば個々のツール１４０およびツールサービス層１３０によって提供できる機能を識別する。
【００２６】
一般に、図１Ａおよび１Ｂで述べたコンポーネント、およびその具体的な構成は、例示のためのものであり、また本発明は、任意の数の代替コンポーネントおよび／または構成を企図するものであることを理解されたい。
【００２７】
図２を参照すると、ツールサービスコンポーネントを登録するために使用できるプロセスの一例が示されている。この点に関して、ツールサービスコンポーネントが起動され、首尾よく初期化されると、関連するツールによって提供される機能を登録することができ、次いで、これによりクライアント１１０から使用できるようになる。このプロセスの開始時、ワークステーションから、ユーザ（すなわちプロセスエンジニア、オペレータなど）がサービスを選択し起動する（ステップ２１０）。構成情報（この情報によって、たとえばツールサービスコンポーネントが実行されるノードを識別する）に基づいて、選択されたサービスを提供できるノードを識別する。次いで、たとえば起動サービスプロセス（すなわちそれぞれのノード上の遠隔エージェントなど）にツールサービスコンポーネントを起動する要求を行う（ステップ２１５）。次いで、識別されたノード上の起動サービスプロセスは、それぞれのツール（または１つの論理ツールとしてグループ化された１組のツール）について、ツールサービスコンポーネントプロセスを起動する（ステップ２２０）。次いで、ツールサービスコンポーネントプロセスは、ツールサービスコンポーネントオブジェクトを生成する。それから、それぞれのツールサービスコンポーネントオブジェクトは、それ自体を識別するオブジェクト参照をオブジェクトテーブル１５４に、およびそのノードを識別するノードＩＤをデータベース１７０に登録する（ステップ２３０）。
【００２８】
図３を参照すると、クライアント要求をツールサービスコンポーネント１５０にルーティングするために使用できるプロセスの一例が示されている。要求が受信されると、ツール機能を実施することができる。最初に、クライアント要求がルーティング装置１２０に送信され、そこで受信される（ステップ３１０）。クライアント要求に応答して、ルーティング装置１２０が、クライアントの要求に対応するツールサービスコンポーネントオブジェクト参照があるかどうかキャッシュメモリを調べる（ステップ３１５）。具体的には、本発明の少なくとも一部の実施形態では、クライアント要求を満たすのに必要な情報（たとえばツールサービスコンポーネントオブジェクト参照）をルーティング装置１２０上にローカルに格納できることが企図されている。たとえば、同一のまたは類似の要求が、最近処理された可能性がある。したがって、最近呼び出されたツールおよびツールサービス層機能に関する情報（たとえばホスト名）が、キャッシュメモリに残っている。
【００２９】
こうしたケースでは、クライアント要求を満たすために必要な情報がルーティング装置１２０上にローカルに格納されている場合に、要求されたサービスに対応するツールサービスコンポーネントが呼び出され（ステップ３３０）、要求されたサービスの提供に必要なタスクが実行される。
【００３０】
クライアント要求を満たすのに必要な情報が、ルーティング装置１２０上にローカルに格納されていない場合には、要求されたサービスを提供できるツールサービスコンポーネントを実行しているノードに対応するノードＩＤを取得する（ステップ３２０）。具体的には、ルーティング装置１２０が、ノード登録サービス１６２またはデータベース１７０を、ツール名で直接に呼び出し、それによって、要求されたツールサービスコンポーネントプロセスが起動（ｌｏｕｎｃｈ）されたノードＩＤ（すなわちコンピュータホスト名）が返される。このノードＩＤを用いて、要求されたツールに関連するツールサービスコンポーネントオブジェクト参照を取得する（ステップ３２５）。具体的には、クライアント要求に対応するオブジェクト参照について、識別されたノード上のオブジェクトテーブルを調べる。その後で、ツールサービスコンポーネントオブジェクト参照が返される。このようにして、クライアント要求を満たすのに必要なツールサービスコンポーネントインスタンスを識別することができる。
【００３１】
図３には、クライアント要求を、ツールサービスコンポーネントにルーティングするための具体的なプロセスを示したが、本発明の概念に関連する他のルーティング手順を使用することもできることを理解されたい。また、たとえばマネージャプロセスまたは外部データベースを使用せずに、コンピューティングノード上のオブジェクト参照を直接に突き止める手順を含めた、どんな標準の業界ルーティング手順も使用することができる。
【００３２】
図４を参照すると、クライアント要求を満たすために使用できる少なくとも１つのプロセスの例が示されている。まずクライアント要求が、ツールサービス層１３０、および図３の例示的なプロセスを用いて識別されたツールサービスコンポーネントによって受信される（ステップ４１０）。それに応答して、クライアントが要求されたサービスの受信を許可されていることを確認するためにセキュリティチェックを実施する（ステップ４１４）。一般的に言えば、業界標準のセキュリティプロセスを使用することができる。クライアントが要求されたサービスを受信することを許可されている場合（ステップ４１８）、クライアント要求を対応するツールサービスコンポーネントに転送する（ステップ４２６）。一方、クライアントが要求されたサービスを受信することを許可されていない場合は（ステップ４１８）、要求を拒否する（ステップ４２２）。
【００３３】
要求がツールサービスコンポーネントに転送された後、ツールサービスコンポーネントに対応するツールが要求されたサービスを提供するのに必要な機能を実施できるかどうかを識別するために構成情報を調べる（ステップ４３０）。たとえば、構成情報は、ツールがどの機能を実施できるかを明示的に示すことができる。ツールが、要求されたサービスを提供するのに必要な機能を実施することができる場合には、そのツールにサービスを要求し（ステップ４３６）、次いでサービスが提供される。
【００３４】
構成情報を調べた後で、要求されたサービスがそのツールでは得られないと判断された場合、ツールサービスコンポーネント１５０は、要求されたサービスを提供するのに必要な機能を実施できるかどうかを判断する（ステップ４４０）。たとえば、構成情報では、ツールサービス層１３０が提供できるそれぞれの機能を示すことができる。具体的には、ツールによってサービスが得られるかどうかを確認するステップと同様に、ツールサービスコンポーネント１５０は、構成情報を調べて、単独でまたはツールサービス層１３０と連携して、サービスを提供するのに必要な機能を実施できるかどうかを判断することができる。
【００３５】
ツールサービスコンポーネント１５０が、それ自体またはツールサービス層１３０は要求されたサービスを提供するのに必要な機能を実施することができないと判断した場合には（４４０）、要求が拒否される（ステップ４４４）。
【００３６】
しかし、ツールサービスコンポーネント１５０が、それ自体またはツールサービス層１３０は要求されたサービスを提供するのに必要な機能を実施できると判断した場合（ステップ４４０）、そのサービスが、ツールサービス層１３０に組み込まれたサービスであるかどうかを判断する（ステップ４４８）。具体的には、サービスが事前定義された、または既知のサービスである場合には、それは組込みサービスである。したがって、組込みサービスは、その特定のサービスを提供するためのコードまたはスクリプトに実装されたプロセスを含む。さらに、組込みサービスを実施するために必要な追加の情報を、構成情報から取得することができる。
【００３７】
サービスが組込みサービスである場合、サービスが提供される（ステップ４５２）。
【００３８】
一方、サービスがツールサービス層１３０に組み込まれていない場合には（ステップ４４８）、ツールサービス層１３０が、要求されたサービスの提供に関するワークフローが定義されているかどうかを識別する（ステップ４５６）。こうした場合、要求されたサービスを提供し、あるいは別のワークフローの１つまたは複数のステップを完遂するためにワークフローを事前定義することができる。たとえば、ツールサービス層１３０は、たとえばプロセスエンジニアによって定義される事前定義の（事前にプログラムされた）ワークフローについて構成情報をチェックする。したがって、上述のように、ワークフローは、自動化シナリオ（すなわち、特定の一連の個別タスクに対処するためのワークフローを実行する）で使用することができる。より具体的には、ワークフローは、たとえばデータベース１７０から取り出し、たとえば、あるサービス（別のワークフローのあるステップによって要求された可能性がある）を提供する１つまたは複数のクライアント１１０として実行することができる。このようにして、ワークフローを特定のタスクを完遂するために定義することができ、この特定のタスクは、別のワークフローのあるサブタスクを構成することができる。
【００３９】
要求されたサービスを提供するためのワークフローが定義されている場合には、そのワークフローを（たとえばワークフロー起動エージェントなどによって）起動する（ステップ４６４）。一方、要求されたサービスを提供するためのワークフローが定義されていない場合には、要求が拒否される（ステップ４６０）。
【００４０】
上記のようにして、本発明の少なくとも一部の実施形態では、ツール１４０の機能をツールサービス層１３０の機能と合体する。
【００４１】
図５は、クライアント要求を満たすために使用できる過程を示す、システムとプロセスの組合せの図である。図５では、クライアント１１０上で、ワークフロー５１０が起動されている（これは、別のワークフローの一ステップになり得る）。実行時、ワークフロー５１０のステップ５１２がクライアント要求を行う（ステップ５２０）。次いで、このクライアント要求を、ルーティング装置１２０が受信する。次いで、ルーティング装置１２０が、このクライアント要求に対応するツールサービスコンポーネントオブジェクト参照があるかどうかキャッシュメモリをチェックする。
【００４２】
クライアント要求に対応するツールサービスコンポーネントオブジェクト参照がキャッシュメモリに格納されている場合、要求を、ノード１５２上の識別されたツールサービスコンポーネント１５０に転送する（ステップ５３０）。要求を受信後、ツールサービスコンポーネント１５０は、ツールドライバ１５５を介してツール１４０を呼び出し（ステップ５４０）、このツールは、クライアント要求を満たす。
【００４３】
一方、クライアント要求に対応するツールサービスコンポーネントオブジェクト参照が、ルーティング装置１２０のキャッシュメモリに格納されていない場合、ルーティング装置１２０は、クライアント要求に対応するノードＩＤについて、ノード登録プロセス１６２に照会する（ステップ５５０）。それに応答して、ノード登録プロセス１６２は、データベース１７０を検索し（ステップ５６０）、要求されたサービスを提供できるツールサービスコンポーネントプロセスを実行するノードを識別するノードＩＤ番号を取得する（ステップ５７０）。
【００４４】
次いで、ノード登録プロセス１６２によって取得されたノードＩＤは、ルーティング装置１２０に転送される（ステップ５７０）。このルーティング装置は、ノードＩＤで識別されるノード上で実装されたオブジェクトテーブル１５４が照会される。具体的には、要求されたサービスを提供できるツールサービスコンポーネントを実行するオブジェクト参照について、オブジェクトテーブル１５４に照会する（ステップ５９０）。適切なルーティングサービスコンポーネントを識別した後、それに対応するオブジェクト参照を、ルーティング装置１２０に返す（ステップ５９５）。
【００４５】
オブジェクト参照を使用して、ルーティング装置は、クライアント要求を、ノード１５２上の識別されたツールサービスコンポーネント１５０に送信する（ステップ５３０）。要求を受信した後、ツールサービスコンポーネント１５０は、ツールドライバ１５５を介してツール１４０を呼び出し（ステップ５４０）、このツールがクライアント要求を満たす。
【００４６】
図６は、クライアント１１０、ルーティング装置１２０、ノード１５２および／またはツール１４０の内部ハードウェアの一例を示すブロック図である。バス６５６は、システム１１５の他のコンポーネントを相互接続する主要な情報リンクとして働く。ＣＰＵ６５８は、システムの中央処理装置であり、本発明のプロセスおよび他のプログラムを実行するのに必要な計算および論理演算を実施する。システムの主記憶装置は、ＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ：読出し専用メモリ）６６０およびＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ：ランダムアクセスメモリ）６６２で構成される。ディスクコントローラ６６４は、１つまたは複数のディスクドライブを、システムバス６５６にインターフェイスする。こうしたディスクドライブは、たとえばフロッピディスクドライブ６７０、ＣＤ  ＲＯＭまたはＤＶＤ（ｄｉｇｉｔａｌ  ｖｉｄｅｏ  ｄｉｓｋｓ：デジタルビデオディスク）ドライブ６６６、内部または外部ハードドライブ６６８などである。ＣＰＵ６５８は、インテルコーポレーションまたはイリノイ州Ｓｃｈａｕｍｂｅｒｇのモトローラ製のプロセッサを含めた任意の数のさまざまなタイプのプロセッサとすることができる。メモリ／記憶装置は、任意の数のさまざまなタイプのメモリ装置たとえばＤＲＡＭやＳＲＡＭ、ならびに磁気および光メディアを含めたさまざまなタイプの記憶装置とすることができる。さらに、メモリ／記憶装置は、伝送の形態をとることもできる。
【００４７】
ディスプレイインターフェイス６７２は、表示装置６４８とインターフェイスし、バス６５６からの情報を表示装置６４８上に表示できるようにする。また表示装置６４８は、任意選択の付属品である。たとえば通信ポート６７４を使用して、前述のシステムの他のコンポーネントなどの外部装置との通信が行われる。たとえば、ポート６７４は、ノード１５２のうちの１つにリンクされたバス／ネットワークなどにインターフェイスすることができる。光ファイバおよび／または電気ケーブルおよび／または導体および／または光通信（赤外線など）および／または無線通信（無線周波数（ＦＲ）など）を、外部装置と通信ポート６７４の間のトランスポート媒体として使用することができる。周辺インターフェイス６５４は、キーボード６５０およびマウス６５２にインターフェイスし、入力データをバス６５６に送信できるようにする。こうしたコンポーネントに加えて、制御システムは、任意選択で赤外線送信機６７８および／または赤外線受信機６７６を含むこともできる。赤外線送信機は、コンピュータシステムを、赤外線信号伝送を介してデータを送信／受信する、処理コンポーネント／端末の１つまたは複数と併せて使用する場合に、任意選択で使用される。制御システムでは、赤外線送信機または赤外線受信機を使用する代わりに、低パワーの無線送信機６８０および／または低パワーの無線受信機６８２を任意選択で使用することもできる。低パワー無線送信機は製造プロセスのコンポーネントが受信するための信号を送信し、低パワーの無線受信機を介してコンポーネントから信号を受信する。
【００４８】
図７は、コンピュータ読取り可能コードまたは命令を格納するために使用できる例示的なコンピュータ読取り可能メモリ媒体７８４の図である。たとえば、媒体７８４は、図６に示したディスクドライブで使用することができる。一般に、フロッピディスク、ＣＤ  ＲＯＭ、デジタルビデオディスクなどのメモリ媒体は、たとえば１バイト言語用の複数バイトロケール、およびコンピュータが本明細書に記載する諸機能を実施できるようにするために上記のシステムを制御するプログラム情報を含む。あるいは、ＲＯＭ６６０および／またはＲＡＭ６６２を用いて、中央処理装置６５８に本発明の諸プロセス（ｉｎｓｔａｎｔ  ｐｒｏｃｅｓｓｅｓ）に関連する演算を実施するように命令するために使用するプログラム情報を格納することもできる。情報を格納するための適切なコンピュータ読取り可能媒体の他の例には、磁気、電子または光ディスク（ホログラフィを含む）の記憶装置、それらの何らかの組合せなどが含まれる。
【００４９】
本発明の少なくとも一部の実施形態では、上記で説明した本発明のさまざまな側面を実施するためのソフトウェアのさまざまな部分は、メモリ／記憶装置に常駐できることが企図されている。
【００５０】
一般に、本発明の少なくとも一部の実施形態のさまざまなコンポーネントを、ハードウェア、ソフトウェアまたはその組合せで実装できることを強調して述べるべきである。こうした実施形態では、さまざまなコンポーネントおよびステップを、ハードウェアおよび／またはソフトウェアで実装して、本発明の諸機能を実施する。現在使用可能なまたは将来開発される任意のコンピュータソフトウェア言語および／またはハードウェアコンポーネントを、本発明のこうした実施形態に用いることができる。たとえば、Ｃ＋＋またはＶｉｓｕａｌ  Ｂａｓｉｃプログラミング言語を使用して上述の機能の少なくとも一部を実装することができる。
【００５１】
また上記に説明した本発明の特定の実施形態は、本発明の一般的な原理を例示するものにすぎないことをよく理解されたい。上記に述べた原理に合致するさまざまな修正が当業者によって行われ得る。
【図面の簡単な説明】
【００５２】
【図１Ａ】本発明の少なくとも一部の実施形態の概念を実施するために使用できるシステムの一例を示すブロック図である。
【図１Ｂ】複数のコンピューティングノード、ルーティング装置、データベースおよび処理ノードを含む図１Ａのシステムの一部を詳細に示す図である。
【図２】本発明の少なくとも一部の実施形態で企図される、ツールサービスコンポーネントを登録するために使用できるプロセスの一例を示す図である。
【図３】本発明の少なくとも一部の実施形態で企図される、クライアント要求をツールサービスコンポーネントにルーティングするために使用できるプロセスの一例を示す図である。
【図４】本発明の少なくとも一部の実施形態で企図される、クライアント要求を満たすために使用できる少なくとも１つのプロセスの一例を示す図である。
【図５】本発明の少なくとも一部の実施形態で企図される、クライアント要求を満たすために使用できるシステムとプロセスの組合せを示す図である。
【図６】本発明の少なくとも一部の実施形態の一部として企図され、またそれと共に使用するためのコンピューティング装置の諸側面を示す高水準ブロック図である。
【図７】本発明の少なくとも一部の実施形態の、コンピュータ実施プロセスを格納するために使用できるメモリ媒体の一例を示す図である。
【図１Ａ】
2005524969.tif 000003
【図１Ｂ】
2005524969.tif 000004
【図２】
2005524969.tif 000005
【図３】
2005524969.tif 000006
【図４】
2005524969.tif 000007
【図５】
2005524969.tif 000008
【図６】
2005524969.tif 000009
【図７】
2005524969.tif 000010
【国際調査報告】
2005524969.tif 000011
2005524969.tif 000012
2005524969.tif 000013