(57)【特許請求の範囲】
【請求項１】
装置を制御するシステムであり、相互に接続し、階層的に結合する複数のサブシステムを有し、所定レベルの階層のサブシステムが、一つ上位のレベルの階層のサブシステムに包含されるところのシステムであって、
複数の状態機械であって、少なくともひとつの状態機械が各サブシステムに関連付けられることにより、複数の状態機械が階層的に結合する状態機械と、
階層によって定義された順序に従い、前記階層的に結合する複数のサブシステムの各々の状態機械の状態を評価する手段と、
前記装置の制御動作の間に複数のサブシステムの実行の順序をスケジューリングするための、及び各サブシステムの総実行時間、及び前記装置の実行のため選択されたサイクル数に応じて、階層にあるサブシステムの実行の順序を決定するためのスケジューラと、を含み、
前記装置の制御動作の間に関連するサブシステムがどのくらいの頻度で評価されるべきかを示すために時間間隔が各々のサブシステムに関連付けられ、
各サブシステムに関連する時間間隔に応じて、サブシステムの実行の順序が決定され、
前記状態機械の状態を評価するための手段は相対的に上位の階層の状態機械の評価の前に相対的に下位の階層の状態機械を評価するよう動作し、前記状態機械の状態を評価するための手段は相対的に下位の階層の状態機械のみから受信した状態データを使って当該状態機械の状態を評価する手段である、
ことを特徴とするシステム。
【請求項２】
請求項１に記載のシステムであって、
少なくともひとつの状態機械に結合し、信号を関連するサブシステムへ及びそこから転送するためのデジタル信号処理及び条件付けオブジェクトと、
前記階層的に結合する状態機械に結合し、前記階層的に結合する状態機械にコマンドを転送するためのユーザーインターフェースとを、
前記階層的に結合する複数のサブシステムの各々に対して含む、
ことを特徴とするシステム。
【請求項３】
請求項１に記載のシステムであって、
ひとつ若しくはそれ以上の状態機械の状態を評価するための手段は、さらに、相対的に上位の階層の状態機械のみから受信したコマンドデータを使用することを特徴とする、システム。
【請求項４】
請求項２に記載のシステムであって、さらに
複数のサブシステムの各々に関連付けられる信号を保存するためのメモリと、
前記メモリ内に保存された信号に応答して階層的に結合する複数の状態機械を評価するための手段であって、
相対的に上位の階層の状態機械より前に、相対的に下位の階層の状態機械が評価され、相対的に下位の階層の状態機械のみから受信した状態データを用いて、及びデジタル信号処理及び条件付けオブジェクトに流入するデータから、状態機械の状態を評価するところの手段と、
外部ユーザーからのコマンドを受信するための手段と、
外部ユーザーからのコマンドに応答して階層的に結合する複数の状態機械を評価するための手段であって、相対的に上位の階層の状態機械は相対的に下位の階層の状態機械より前に評価され、前記状態機械は前記相対的に上位の階層の状態機械のみから受信したコマンドデータを用いて評価されるところの手段と、
を含むシステム。
【請求項５】
請求項１に記載のシステムであって、前記階層的に結合する複数の状態機械の各々は、関連付けられるサブシステムのエラーを識別するための少なくとも一つのエラー状態を含む、ところのシステム。
【請求項６】
請求項１に記載のシステムであって、前記階層的に結合する複数の状態機械の各々は、さらに関連付けられるサブシステムの状態変化を識別するための少なくとも一つの遷移状態を含む、ところのシステム。
【請求項７】
請求項１に記載のシステムであって、前記階層的に結合する複数の状態機械の各々は、さらに関連付けられるサブシステムの固定された状態を示すための少なくとも一つの停止状態を含む、ところのシステム。
【請求項８】
請求項１に記載のシステムであって、前記階層的に結合する複数のサブシステムの各々は、さらにデータフロー図を含み、少なくとも一つの状態機械及びデータフロー図は関連するサブシステムの動作状態を示すよう提供される、ところのシステム。
【請求項９】
請求項８に記載のシステムであって、
スケジューラはさらに、
前記階層的に結合するサブシステムの状態機械の状態機械ポインタの第１順序リストであって、状態機械ポインタは関連するサブシステムの階層の昇順に配列されるところの第１リストと、
前記階層的に結合するサブシステムのデータフロー図のデータフローポインタの第２順序リストであって、前記データフローポインタはデータフロー順及び関連するサブシステムの階層の昇順に配列されるところの第２リストと、
前記第２リストの後に前記第１リストが続いてなる上方実行リストと、
逆順で配列された前記第１リストの後に前記第２リストが続いてなる下方実行リストと、
を含む、システム。
【請求項１０】
請求項９に記載のシステムであって、前記各サブシステムに関連する時間間隔の各々は前記装置の実行に使用される時間間隔の総数の因数である有効時間間隔のセットから選択される、ところのシステム。
【請求項１１】
請求項１０に記載のシステムであって、さらに
複数のエントリーを有する上方更新リストの複数のセットであって、
数は有効時間間隔のセット内の時間間隔の数に対応し、前記上方更新リストのセットの各エントリーは上方実行リスト内のひとつのエントリーのポインタを保存するところのセットと、
複数のエントリーを有する下方更新リストの複数のセットであって、
数は有効時間間隔のセット内の時間間隔の数に対応し、前記下方更新リストのセットの前記各エントリーは下方実行リスト内のひとつのエントリーのポインタを保存するところのセットと、
ポインタに関連するサブシステムの実行のために割当てられた時間間隔に応答して、状態機械ポインタ及びデータフローポインタを上方実行リスト及び下方実行リストからひとつ若しくはそれ以上の複数の上方更新リスト及び下方更新リストへそれぞれコピーするための手段と、
を含むシステム。
【請求項１２】
請求項１１に記載のシステムであって、さらに
複数のエントリーを有する複数の上方スケジュールリストであって、数は装置の実行に使用される時間間隔の総数に対応し、上方スケジュールリストのエントリーの各々は上方更新リストのポインタを保存するところのリストと、
複数のエントリーを有する複数の下方スケジュールリストであって、数は装置の実行に使用される時間間隔の総数に対応し、下方スケジュールリストのエントリーの各々は下方更新リストのポインタを保存するところのリストと、
複数の上方更新リストから複数の上方スケジュールリストへポインタをコピーするための、及び複数の下方更新リストから複数の下方スケジュールリストへポインタをコピーするための手段であって、ポインタはそれらの関連するサブシステムの時間間隔にしたがって複数のスケジュールリストの関連するひとつにコピーするために選択されるところの手段と、
を含むシステム。
【請求項１３】
請求項１２に記載のシステムであって、さらに
数が装置の実行用の時間間隔の総数に対応する複数のエントリーを含むマスター上方リストであって、各関連する時間間隔において解析されるサブシステムのポインタを保存するためのリストと、
数が装置の実行用の時間間隔の総数に対応する複数のエントリーを含むマスター下方リストであって、関連する時間間隔中に実行されるサブシステムのポインタを保存するためのリストと、
時間間隔を測定しかつ制御するためのタイマーと、
タイマー、マスター上方リスト、マスター下方リスト、複数の上方スケジュールリスト及び複数の下方スケジュールリストに結合され、測定されかつ制御された時間間隔に応答してマスター上方リスト内の複数の上方スケジュールリストのポインタを保存するための及びマスター下方リスト内の複数の下方スケジュールリストのポインタを保存するための手段と、
を含むシステム。
【請求項１４】
階層的に結合し、相互に接続する複数のサブシステムを有するシステムを解析するための方法であり、所定レベルの階層のサブシステムはひとつ上位のレベルの階層のサブシステムに包含され、前記相互に接続する複数のサブシステムの各々は階層的に結合する複数の状態機械の対応するひとつと関連付けられるところの方法であって、
各サブシステムに対して関連する状態機械の状態を評価する工程であって、関連する状態機械の評価の順序は相互に接続する複数のサブシステムの階層のレベルによって定義された順序に対応して決定され、状態機械の状態を評価する順序は相対的に下位の階層のサブシステムに関連付けられた状態機械から相対的に上位の階層のサブシステムに関連付けられた状態機械への順である、ところの工程と、
状態機械の階層内のサブシステムの実行をスケジュールする工程と
を含み、
前記各サブシステムは、どのくらいしばしば関連するサブシステムが評価されるべきかを示すための時間間隔に関連付けられ、
スケジューリングの工程は、各サブシステムの各々の時間間隔に応答してサブシステムの実行の順序を決定する工程を含み、
さらに前記実行の順序を決定するための工程は、システムの総実行時間に応答して実行される、方法。
【請求項１５】
請求項１４に記載の方法であり、サブシステムの各々に関連するのはデジタル信号処理及び条件付けオブジェクトから成るデータフロー図であるところの方法であって、さらに
階層間で結合する複数のサブシステムの各々内へ及びそこから選択された外部信号を転送する工程であって、各サブシステム内へ及びそこから転送された外部信号は各状態機械より比較的下位の階層内にあるデジタル信号処理及び条件付けオブジェクトに関連する外部信号であるところの工程と、
階層間で結合する複数の状態機械の各々内へコマンドを転送する工程であって、状態機械の各々内へ転送されるコマンドは各状態機械より比較的上位の階層にあるサブシステムから各状態機械において受信されるコマンドであるところの工程と、
から成る方法。
【請求項１６】
請求項１５に記載の方法であって、階層によって定義された順序で関連する状態機械の状態を評価する工程は、比較的上位の階層内にあるデジタル信号処理及び条件付けオブジェクトに関連する状態機械の評価の前に、比較的下位の階層内にあるデジタル信号処理及び条件付けオブジェクトに関連する状態機械を評価する、ところの方法。
【請求項１７】
請求項１４に記載の方法であって、階層によって定義された順序で関連する状態機械の状態を評価する工程がさらに、
システムの複数のサブシステムから受信された信号をメモリ内に保存する工程と、
メモリ内に保存された信号に応答して上方向に状態機械を評価する工程であって、比較的上位の階層内にあるサブシステムに関連する状態機械の前に比較的下位の階層内にあるサブシステムに関連する状態機械が評価され、当該状態機械は当該状態機械より比較的下位の階層内にあるサブシステムに関連する状態機械から受信した状態データのみを使って評価されるところの工程と、
外部ユーザーからコマンドを受信する工程と、
外部ユーザーからのコマンドに応答して下方向へ状態機械を評価する工程であって、比較的下位の階層内にあるサブシステムに関連する状態機械の前に比較的上位の階層内にあるサブシステムに関連する状態機械が評価され、当該状態機械は当該状態機械より比較的上位の階層内にあるサブシステムに関連する状態機械から受信したコマンドのみを使って評価されるところの工程と、
から成るところの方法。
【請求項１８】
請求項１４に記載の方法であって、状態機械の各々は関連するサブシステムにおいてエラーを識別するための少なくともひとつのエラー状態から成るところの方法。
【請求項１９】
請求項１４に記載の方法であって、状態機械の各々はさらに関連するサブシステムの変化状態を識別するための少なくともひとつの遷移状態から成るところの方法。
【請求項２０】
請求項１４に記載の方法であって、状態機械の各々はさらに関連するサブシステムの固定された状態を示すための少なくともひとつの停止状態から成るところの方法。
【請求項２１】
請求項１４に記載の方法であって
前記状態機械の各々に関連づけられるエラー状態は、関連するサブシステムのエラーを示し、関連するサブシステムの各々のエラーは、サブシステムの所定のレベルの階層に送信される、ことを特徴とする方法。
【請求項２２】
請求項１７に記載の方法であって、
サブシステムの各々はデータフロー図に関連づけられ、
上方向へ状態機械を評価する工程は、階層の昇順に関連するサブシステムの状態機械を評価する前に階層の昇順にサブシステムのデータフロー図を評価する工程を含む、ところの方法。
【請求項２３】
請求項２２に記載の方法であって、
下方向へ状態機械を評価する工程は階層の降順に関連するサブシステムの状態機械を評価した後に階層の降順にサブシステムのデータフロー図を評価する工程を含む、ところの方法。
【請求項２４】
装置を制御するための制御システムであって、
前記装置に結合されたプロセッサを含み、
前記プロセッサは、
前記装置に関連した信号を保存するためのメモリであって、前記信号は前記装置の動作の間、前記装置から受信され及び装置へ送られる、ところのメモリと、
前記装置の作動機能を表す階層的に結合し相互接続する複数のサブシステムを含む階層的なデータ構造であって、相互接続するサブシステムのそれぞれが少なくとも一つのオブジェクトによって表されるところの階層的データ構造と、
前記階層データ構造へ信号を送るための手段と、
前記信号に応答して制御された方法で階層データ構造内の状態を更新するための手段であって、実行サイクルの間に、オブジェクトの状態を階層の昇順及び降順に評価する手段を含む、ところの手段と、
装置の動作の間に階層データ構造のオブジェクトの各々の実行をスケジューリングするためのスケジューラであって、スケジューリングは制御システムの実行プロトコルに応答して行われる、ところのスケジューラ、を含み、
少なくとも一つのオブジェクトの各々は少なくとも一つの状態機械若しくはデータフロー図のいずれかを含み、制御システムの実行プロトコルは、前記状態機械及び階層データ構造のデータフロー図の実行の順序を指令する、
ことを特徴とする制御システム。
【請求項２５】
請求項２４に記載の制御システムであって、階層の昇順でオブジェクトの状態を評価するための手段は各オブジェクトより階層データ構造内で比較的下位であるオブジェクトからの情報を使用してオブジェクトの各々の状態を評価する、ところの制御システム。
【請求項２６】
請求項２４に記載の制御システムであって、階層の降順でオブジェクトの状態を評価するための手段は各オブジェクトより階層データ構造内で比較的上位であるオブジェクトからの情報を使用してオブジェクトの各々の状態を評価する、ところの制御システム。
【請求項２７】
請求項２４に記載の制御システムであって、
実行プロトコルは実行の４つの位相を含み、
それは上方データフロー実行位相、上方状態機械実行位相、下方状態機械実行位相及び下方データフロー実行位相から成る、
ところの制御システム。
【請求項２８】
請求項２４に記載の制御システムであって、装置はイオン注入システムである、ところの制御システム。
【発明の詳細な説明】
【０００１】
発明の分野
本発明は概して制御システムに関し、特に状態機械を使って複雑なシステムを制御するための装置及び方法に関する。
【０００２】
発明の背景
典型的に多くの製造システムは、所望の生産量を与えるように制御された方法で多くの独立の動作を実行する。そのような製造システムの一例がイオン注入システムである。イオン注入システムは、ウエハが所望の導電率特性に一致するのを保証するために半導体ウエハ内へイオン化された原子若しくは分子を注入するために使用される。イオン注入装置は、イオンビームジェネレータ及び真空ポンプのような多くの機械的コンポーネントを含み、それぞれは個々に制御される。機械的コンポーネント間の相互作用はものになる生産物がシステムから出力されることを保証するために注意深く制御されなければならない。
【０００３】
処理システムの機械的コンポーネント間の相互作用は制御システムによって管理される。歴史的に、1940年代及び1950年代には、制御システムは完全に電気機械的であり、それらはソフトウエアを含まなかった。この後、低コストコンピュータの出現に伴って、ソフトウエアは"エンドレス"な柔軟性を与えるために利用された。ソフトウエア制御システムにおいて、処理システムの各機械的コンポーネントはソフトウエアプログラムを通じて制御される。各ソフトウエアプログラムは情報の伝達をサポートするべくインターフェースを含む。機械的コンポーネントが相互作用するにしたがい、相互作用の効果はインターフェースを通じてソフトウエアプログラム間で渡される。メインソフトウエアプログラムが、システム内で異なる機械的コンポーネント間の相互作用を同期させるべく異なるソフトウエアプログラムによって実行される動作を順に並べるために与えられても良い。
【０００４】
典型的な制御システムは、コントロール・システム・アーキテクチャー（CSA）、コントロール・システム・オブザーバビリティ・コンポーネント（CSO）及びコントロール・システム・コントローラビリティ（CSC）コンポーネントによって定義される。CSAは処理システムのサブシステムを制御されるべき物理的システムと論理的に一致する構造にまとめる。CSOコンポーネントは物理的システムの状態を決定するために知覚信号をモニターする。CSOコンポーネントは、コンポーネントの動作を制御するために各コンポーネントと関連するところのアクチェータへの信号の状態をモニターしかつ修正する。信号は連続測定若しくは真/偽測定を表す。CSCコンポーネントはモニターされた信号内に検出された変更に基づいてどの制御アクションをとるべきかを決定する。
【０００５】
典型的な制御システムに対して、ハードウエア及びCSAから成るソフトウエアの組合せは、物理的システムの動作に関連する新しい条件及び要求に適応するよう単純に構成を変更されない。制御システムが典型的に単純に構成変更できないひとつの理由は制御システムのハードウエア及びソフトウエア要素の統合された性質のためである。新しいエレメントをサポートするために現存の制御システムへ新しい制御命令を加えることは、システム内のコンポーネントの現存する相互作用のタイミングに影響を及ぼし、それによって通常の動作を実行するための制御システムの能力を脅かす。したがって、ひとたびシステムが設計されると、全システムを改訂することなく新しいエレメントを組み入れることは困難である。例えば、それぞれのソフトウエアプログラムによって動作のシーケンスを適正に並べるために、メインソフトウエアプログラムはソフトウエアプログラム間のすべの相関を収容するよう設計されている。結果として、メインソフトウエアプログラムは非常に多くの例外条件を管理することができなければならない。例えば、例外条件の一つは、もしソフトウエアプログラムBが状態Yにあるか若しくはソフトウエアプログラムCが状態Zにあるなら、ソフトウエアプログラムAは状態Xに転移することができるというようなものである。したがって、メインソフトウエアプログラムの設計はしばしば複雑であり、メインソフトウエアプログラム及びしたがってシステム全体の性能を低下させ、メインソフトウエアプログラムに対して多くの修正なくして要素を付加若しくは削除することを困難にしている。
【０００６】
したがって、たとえシステムが改訂なしで新しい要素を組み込むようどうにかして適応され得たとしても、システム内のコンポーネント間の制御及びタイミング依存性のために、新しい要素を有する制御システムの動作の正確さに関して重大な疑念が存在する。結果として、新しい製品に現存の動作を適応するか若しくは現存の能力を再使用しようとするのは困難である。したがって、ソフトウエア制御システムはエンドレスな柔軟性を真に与えることはなく、与えられる柔軟性はしばしば信頼性を擬制にしている。
【０００７】
さらに、多くの個々のソフトウエアプログラムを含む制御システム内のエラーの適切な扱いは困難である。決定されたエラー取扱い方法はシステム全体に対して最適な方法ではないため、もし個々のソフトウエアプログラムがエラーを取り扱うための適当な方法を決定することが許されたら、エラー取扱い処理は統一性がなくなる。エラー取扱いへの集中アプローチはメインプログラム内でエラー取扱いを実行することによって与えられる。しかし、メインプログラムへ詳細なシステム知識を付加することは逆に複雑さを増加し、したがって、システム全体のすべての柔軟性を減少させる。
【０００８】
現在、オブジェクト指向方法論が制御システム挙動を解析し及び設計するために存在する。しかし、典型的にそれらは現存のソフトウエア及びハードウエア制御システムのトップの開発環境のみ与え、複雑さを抑制しない。
【０００９】
したがって、従来のシステムより実行が比較的複雑でない複雑な処理システムを制御する択一的方法を与えることが所望される。該システムは新しいコンポーネントの付加若しくは除去を容易にすることができ、インテリジェントエラー取扱い処理に対してサポートを許す。
【００１０】
発明の要旨
階層的に並べられたサブシステムから成るコントロール・システム・アーキテクチャー（CSA）が複雑な処理を制御する柔軟で信頼できる手段を与えるのに採用される。各サブシステムは、サブシステムをモニターし制御する一つ若しくはそれ以上の状態機械及び一つ若しくはそれ以上のデジタル信号処理及び条件付け装置（DSPCU）によって表される。DSPCUは制御システム信号を状態機械によってさらに処理するための状態へ変換し、及び／または、状態機械から制御システムアクチュエータへ送るためにコマンド入力を変換する。各サブシステムのDSPCUに関連付けられるのは、データフロー図であって、データフロー図は、DSPCU間のデータフロー及びDSPCUの実行順を命令する。コントロール・システム・オブザーバビリティ（CSO）及びコントロール・システム・コントローラビリティ（CSC）は階層での親−子状態機械のセットの間の相互接続を通じて可能となる。子の状態は、階層のレベルが一つ上位の前記親状態機械可視である。データフローは、一つのサブシステムまたは一つのレベルの上下において明示的なパス（path）によって行う。
【００１１】
ひとつの実施例において、制御システムの動作の各サイクルは、第１データフロー実行位相、上行状態機械実行位相、下行状態機械実行位相及び第２データフロー実行位相の４つの位相から成る並べられたプロトコルに従って動かされる。これらの位相の各々で実行されるサブシステム内の各コンポーネントの順序はスケジュールリスト内で維持される。実行位相の各々の動作及び状態機械及びデータフロー図の実行を予定するための方法及び装置が以下に詳細に説明される。
【００１２】
ひとつの実施例において、データ収集がシステムにより受信された入力信号の実行、システムによって与えられた出力信号の実行及びシステムに関連するユーザーインターフェースからのコマンドの受け容れを含むところの、データ収集は上記プロトコルの実行中に固定ポイントで起こるよう同期化される。プロトコルの実行中に固定ポイントでデータを収集することは、階層を覆い及び状態の一貫性を保証する方法で入力信号及び出力信号が制御されることを可能にする。
【００１３】
上記したように、プロトコルの４つの位相はひとつの動作サイクル内で起こる。ひとつの実施例において、実行のすべての位相は所定の実行期間内で実行される。したがって、与えられた階層及びプロトコルに対して、すべてのサブシステムに関連するすべてのタスクの実行を完了する時間は知られる。サブシステム内のコンポーネント若しくは測定された実行時間が変更されると、プロトコルの各位相の全実行時間、スケジュールリスト及び／またはデータ収集時間は自動的に改訂される。
【００１４】
上記方法で状態機械を階層的に結合することは、すべてのデータフローコンポーネント結合が明瞭に定義されるため、継ぎ目なしの組み込み若しくは制御システムからのコンポーネントの除去を容易にする。システムにコンポーネントを付加するために、該コンポーネントとシステム内の他のコンポーネントを表すデータフロー図と状態機械との間に適当な接続が為される。実行位相の間、新しく付加されたコンポーネントは階層内の所望のレベルに付加されたため、コンポーネントの適当な実行及びコンポーネントに関連する信号のタイミングは保証される。システムからコンポーネントを除去することは階層からコンポーネントに関連するサブシステムを単に除去することによって実行される。したがって、制御システムを修正するためにソフトウエアの大きな改訂は必要ない。結果として、本発明の制御システムは最小量の複雑さをもって柔軟性及び信頼性の両方を与える。要求される改訂は階層内の単一の親に局所化される。
【００１５】
状態機械の階層的結合により、例外取扱いは、階層内でより低い状態機械で起きる例外を適当に取り扱うために階層内でより高い状態機械内にプログラムされることができる。監視レベルにおけるサブシステムが各例外の取扱いに関するインテリジェントな決定をするための適当な情報を有するところで、階層内で適当な監視レベルが選択される。結果として、階層内のサブシステムはエラー状態をどのように扱うかに関しては独自の判定をするのに要求されず、付加的にエラー状態は効果的に取り扱われるべき階層のトップへ伝播してはならない。
【００１６】
発明のひとつの特徴にしたがって、相互接続された制御システムソフトウエアコンポーネントを有する装置の複雑なシステムを制御するためのシステムが与えられる。相互接続された制御システムソフトウエアコンポーネントは、階層内で結合されたひとつ若しくはそれ以上のサブシステムを含み、該階層のすぐ上のレベルで制御システムソフトウエアコンポーネント内に含まれる階層内で与えられたレベルでより低いレベル制御システムソフトウエアコンポーネントを有する。システムは複数の階層的に結合された状態機械を含み、階層的に結合された各々のサブシステムと関連する少なくともひとつの状態機械及び階層によって定義された順序で階層的に結合された各々のサブシステムに対する状態機械の状態を評価するための手段を有する。そのような整理されたデータ構造を有する制御システムを与えることによって、サブシステムは制御システムに対し大きな修正を要求することなく付加または装置から除去されることができる。
【００１７】
発明の他の特徴にしたがって、複数の相互接続されたサブシステムを有するシステムを解析するための方法が与えられる。相互接続されたサブシステムは階層内で結合され、階層内の付与のレベルでのサブシステムは階層のすぐ上のレベルにおいてサブシステム内に含まれ、相互接続されたサブシステムの各々は複数の階層的に結合された状態機械の対応するひとつと関連付けられる。方法は各サブシステムに対して関連する状態機械の状態を評価する工程を含み、関連する状態機械の評価の順序はひとつ若しくはそれ以上の相互接続されたサブシステムの階層によって定義された順序に応答して決定される。
【００１８】
発明の他の特徴に従って、装置を制御するための制御システムは装置に結合されたプロセッサを含む。プロセッサは装置に関連した信号を保存するためのメモリを含み、該信号は装置から受信され装置の動作中に装置に送られる。プロセッサはさらに、装置の作動機能を表す複数の階層的に相互接続されたサブシステム、階層的データ構造に信号を送るための手段、及び該信号に応答して制御された方法によって階層的データ構造内で状態を更新するための手段を含む。
【００１９】
発明の他の特徴にしたがって、イオン注入装置はシステムによる材料のイオン注入を制御するための制御システムを含む。制御装置は装置に関連する信号を保存するためのメモリを含み、そこでは信号は装置の動作中に装置から受信され及び装置に送られ、装置の作動機能を表す複数の階層的に相互接続したサブシステムから成る階層的データ、階層的データ構造に信号を送るための手段、信号に応答して制御された方法によって階層的データ内で状態を更新するための手段を含む。
【００２０】
イオン注入システムは発明の例として使用されるが、発明はあらゆる特定のタイプのシステムの制御に制限されない。
【００２１】
詳細な説明
本発明のさまざまな実施例は添付する図面を参照して説明され、そこでは異なる図面においても同じエレメントは同じ番号で参照される。
【００２２】
発明のひとつの特徴にしたがって、装置の作動機能を表す階層的に結合されたサブシステムのコントロール・システム・アーキテクチャー（CSA）が与えられる。CSAによって表された装置を制御する方法は実行プロトコルに従ってサブシステムの実行をスケジュールに入れる。実行プロトコルは、装置のすべての実行サイクルに対してサブシステムの各々の上方及び下方実行を実行する。そのような処理に関して、複雑なシステムの動作はサブシステムにモジュール化され、サブシステム間の相関は階層にしたがって制御される方法で取り扱われる。
【００２３】
本発明の制御システムアーキテクチャーによって制御されるひとつの装置は、イオン注入システムである。イオン注入は半導体ウエハ内に導電率を変化させる不純物を導入するための標準的で商業的に受け容れらた技術となった。所望の不純物材料はイオンソース内でイオン化され、該イオンは半導体ウエハの表面に方向付けられた指定エネルギーのイオンビームを形成するべく加速される。ビーム内の強力なイオンは半導体材料のバルク内に侵入し、所望の導電率の領域を形成するために半導体材料の結晶格子内に埋め込まれる。
【００２４】
イオン注入器の性能は単位時間あたりに処理されるウエハによって計られる。ウエハ移送時間、注入時間及びダウンタイムはすべて総合処理時間に寄与し、したがって、高いスループットを達成するためにこれらの時間を最小化することが所望される。イオン注入器の性能はまたイオンのドーズの正確さ及びウエハ表面全体にわたったドーズの均一性によって計られる。多くの半導体素子はイオン注入システムによって製造されるため、素子が制御可能で繰り返し可能な動作特性を有することを保証するためにウエハからウエハへドーズの正確性及び均一性を与えることが極めて重要である。
【００２５】
したがって、性能が最大化されながら正確性が維持されることを保証するために、適当な注入が負所望な遅れを受けることなく適当な時間に起こるように、イオン注入システムの要素の動作は注意深く整合される。
【００２６】
イオン注入システム100の一例が図１に示される。図１のイオン注入システムは、ここに参考文献として組み込むWhiteらによって1994年9月27日に発行された題名"Compact High Current Broad Beam Implanter"なる米国特許第5,350,926号に説明されている。概してイオン注入システム100は以下のように動作する。
【００２７】
図１において、イオン注入システム100はイオンソース2によって生成されるイオンビーム1とともに動作する。３つのスロットグリッド11、12、13の配列はソースからのイオンを制限し、抽出し及び加速するように働く。イオンビーム1はイオンビーム1を分解スリット4の方へ偏向させる分析電磁石3のポールの間に入る。異なる運動量を有する負所望のイオンは磁場によって異なる角度で偏向され、その結果それらは分解スリットの片方の側面上で遮られる。イオンビーム1は分解アパーチャ4を通過後再び発散し、第２電磁石5のポール間を通過して、平行イオン軌道を有する出力ビーム6を与える。注入位置において、ターゲット7はステージ7a上で制御された速度で上下に移動される。均一なイオン注入は出力ビーム6を通じてターゲット7を速度の垂直成分が一定の状態で移動することによって達成される。ターゲットの注入が完了したとき、ステージ7aはコンベアベルト若しくはそのようなものの上にターゲットを置き、処理のために次のターゲットを持ってくる。
【００２８】
イオン注入システム100の正確なタイミング、ドーズ量及びエレメントの制御は、制御システム200によって維持される。本発明のひとつの実施例にしたがって、イオン注入システム100の制御システム200は一対の中央演算処理装置CPU60及びCPU70で実行するソフトウエアアプリケーションによって実装される。本発明の一つの実施例にしたがって、CPU60及び70で実装される制御システムは周期制御システムであって、イオン注入システムの動作は、階層的に配置された多数のサブシステムへモジュール化されるものである。イオン注入システム100の各サブシステムに関連付けられるのはひとつ若しくはそれ以上の状態機械及びデータフロー図であり、各データフロー図は状態機械に関連付けられたデジタル信号処理及び条件付け装置（DSPCU）からのデータのフロー順を特定する。概して、状態機械はデジタル信号処理及び条件付けオブジェクトから状態情報を受信し、デジタル信号処理及び条件付けオブジェクトへコマンド情報を送信し、加えて状態機械は、デジタル／アナログ入力及び数値入力を読み取り及び処理し、信号を信号線１２０に転送する。選択されたコマンドはグラフィカル・ユーザー・インターフェース（GUI）80を通じて制御システム200へ入力される。
【００２９】
図２は制御システム200による周期的制御を与えるのに使用されるハードウエア及びソフトウエアコンポーネントのひとつの実施例を示したハイレベルのブロック図である。特定的に、制御システム200はインフォメーション・アプリカント・ネットワーク（IAN）コンピュータ101、ニュー・コントロール・システム・コンピュータ（NCS）102及び入力／出力（I/O）ハードウエア104を含む。有利なことに制御システム200はまたシステム改訂及び制御を容易にするために入力及び出力信号の許容セットに対する制約条件及びサブシステムの各々の状態を識別するテーブル（D5）を含む。テーブルD5は、制御システム200内のあらゆるアクセス可能な位置に置くことが可能であるが、CPU70内に示されている。IAN、NCS及びI/Oは以下で詳細に説明される。
【００３０】
IAN101及びI/O104はともに制御システム200用のデータ及びコマンド収集を与える。データ収集を２つの成分、すなわち、ひとつはイオン注入システムと制御システムとの間で信号データを転送し、ひとつはGUIと制御システムとの間でコマンドを転送する２つの成分に分離することによって、各機能は矛盾する状態に対するポテンシャルを減少させるために独立にスケジュールに入れられ得る。
【００３１】
I/O104はイオン注入システム100の各動作を適当に整合させるために信号120を受信し及び送信するためのデータ収集手段（D4a）を与えるハードウエアから成る。I/O104はNCS102によってモニターされ若しくは駆動されるべきイオン注入装置100内のさまざまな制御信号と接続される信号ライン120を受け取る。制御データ信号はループマスターハードウエア122によって検索される。ループマスターハードウエアは二重孔メモリ128の一部内にデジタルデータ値として保存される代表デジタル信号を与えるべく受信された制御信号をサンプリングする。
【００３２】
プロセッサ130は二重孔メモリ128へ接続される。プロセッサ130によって実行されるひとつの機能はメモリからデジタルデータ値を読み取ることであり、そのデータをニュー・コントロール・システム（NCS）102ソフトウエアだけでなくライン132上でCPU70へ転送することである。NCS102はメモリ内に保存され及びデジタル信号処理及び条件付けオブジェクトによって処理されたデジタルデータ値を使用し状態情報をイオン注入システム内の各サブシステムを制御しかつ監視する各状態機械へ与える。ひとつの実施例において、IAN101は、制御システム200とGUI80との間でのデータ及びコマンドの転送を制御するソフトウエアデータ収集アプリケーション（D4a）である。IAN101は例えばGUI80においてユーザーにイオン注入システムの動作に影響を及ぼすようNCS102へさまざまなコマンド及びデータを入力することによってイオン注入システム100の動作をカスタマイズすることを許容するユーザーインターフェースから成る。ユーザー入力コマンドは受信され及びIAN101によって処理され、イオン注入システムの各実行サイクルの間の所定の時間でNSC102へ伝播される。IAN101とNCS102との間でのコマンドの転送に対する制御はプロセッサ150及び130によって与えられる。
【００３３】
NCS102はイオン注入システムの作動機能を表すサブシステムの階層的制御構造（D1）を含むソフトウェアアプリケーションである。各サブシステムはひとつ若しくはそれ以上のタスクを実行し、下位の階層にあるサブシステムの状態は、一つ上位の階層のサブシステムがモニターし制御することに利用可能である。NCS102はまた階層内でサブシステムの実行の順序を決定するためのプロトコル制御（D2）を含む。さらにNCS102はプロトコルによって、及び関連するサブシステムの各々により実行されるタスクのタイミングによって定期的に、階層内のサブシステムのタスクを実行するためのスケジューラ（Ｄ３）を含む。
【００３４】
構造D1〜D5は、ハードウエア、ソフトウエア若しくはそれらの組合せで実行される機能単位である。異なる機能単位D1〜D5がCPU60及び70のひとつによって実行されるように図２に示されているが、本発明はあらゆる特定の数のCPU若しくはCPU内の機能のあらゆる特定の分布に制限されない。しかし、制御システムの機能性を異なるCPUに分離することの利点は、それによって２つの異なるオペレーティングシステム若しくは各CPUに対して最適化された構成を有するひとつのオペレーティングシステムがNCS及びIANソフトウエアプログラムとともに使用され得るということである。このアプローチはデータをモニターし集めるための最適なオペレーティングシステム（若しくは、オペレーティングシステム構成）はIANに対して利用され、一方NCSは制御目的用の最適なオペレーティングシステム（若しくはオペレーティングシステム構成）に頼ることを保証する。
【００３５】
階層を確立するために、イオン注入装置内の各サブシステムはサブ−サブシステムに分解される。同様に、サブ−サブシステムはサブ−サブ−サブシステムに分解され、それは与えられたサブ−サブシステムの成分を識別する。サブシステムをそれらの成分のサブ−サブシステムに分解することはある基本のサブシステムが識別されるまで続く。NCS102の階層サブシステム構造の作成及び評価は以下により詳細に与えられる。
【００３６】
多くのサブ−サブシステムに分割された各サブシステムはサブ−サブシステムに関して親と呼ばれ、一方サブ−サブシステムは親サブシステムに関して子と呼ばれる。サブシステム、サブ−サブシステム等の各々の作動機能は、サブシステム、サブ−サブシステム等に関連付けられる状態機械及びDSPCUのデータフロー図の組合せによって定義される。
【００３７】
NCS102は自動若しくは手動モードのいずれかで動作する。さらに、システム階層内で各サブシステムは自動若しくは手動モードのいずれかで動作する。自動モードにおいて、GUI80からのコマンドはサブシステムの階層内の最も上位レベルのサブシステムにのみ送られる。GUI80からの階層内でより低いレベルのサブシステムへのコマンドは、最も上位のサブシステムと目的のサブシステムの親との間（親チェーンと呼ばれる）の階層内のすべてのサブシステムが手動モードに切り替えられた後にのみ実行される。手動モードの際、親サブシステムは子サブシステムに命令せず、それは子サブシステムがその親サブシステム及び同時にGUI80からの両方によって命令されないことを保証する。したがって、手動モードへの切り替えは最上位レベルのサブシステムから最初に始めなければならない。さらに、子サブシステムへ送られるコマンドは自動的にNCS102ソフトウエアに親チェーンを上から下へ手動モードに命令させる。NCS102ソフトウエアに対する手動モードはシステムのすべての状態を含み、そこでは少なくとも最上位レベルのサブシステムが手動モードである。
【００３８】
したがって、相互接続されたデータ構造D1は制御システムによって並べられた、コヒーレントな決定をするためにフレームワークを与える。並べられた決定及びサブシステム実行はプロトコル制御器D2及びスケジューラD3によって実施される。プロトコル制御器D2及び階層データ構造のサブシステム内の決定及び実行をスケジュールに入れるためのスケジューラD3によって使用される方法は以下に詳細に説明される。最初に、階層的データ構造のひとつの実施例の基本的構造及び階層的データ構造を構築するための方法が説明される。
【００３９】
D1：データフロー構造
上記したように、イオン注入システムの作動機能はサブシステムの階層を使って表され、その各々はひとつ若しくはそれ以上の状態機械及びDSPCUへ及びからのデータのフローを識別するデータフロー図から成る。
【００４０】
各サブシステムを離散的状態機械及びDSPCU成分に分離することは、しばしば実行中に信号処理動作は制御の決定作成アスペクトと大きく異なるため設計を単純化しかつより粗野な性能へ導く。
【００４１】
例えば、図３に示されるように、親及び２つの子サブシステムは状態機械170〜172及びDSPCU370a、370b及び370cのデータフロー図のセットによって定義される。もしNCS102が図１のイオン注入システム100を制御するのに使用されたら、状態機械170〜172及びDSPCU370a、370b及び370cに対するデータフロー図はシステム100の作動機能性を与える。サブシステム階層は各レベルにおいて親データフロー図内に含まれる子サブシステムによって定義される。
【００４２】
例えば、状態機械170及びデータフロー図270から作られるサブシステムはイオン注入システムに関連し、状態機械171及びデータフロー図271はトリマ及び制御要素36に関連し、及び状態機械172及びデータフロー図272は移動スキャン制御要素27に関連する。同様に、階層内の同じ若しくはより低いレベルの他のサブシステムはイオン注入システムの他の部品と関連する。状態機械171及び172は状態機械170の直接制御の下にある。データフロー成分271、272及びDSPCU370a、370b及び370cはサブシステム間で相互接続され、階層によって制約されない。
【００４３】
階層的方法で状態機械を配列することのひとつの利点は制御下のシステム内のエラーの取扱いを容易にするということである。各サブシステムは検出する責任を負い、エラー状態に応答する。多くの場合、サブシステムはエラー状態に対して適当な応答を決定することができない。この場合、サブシステムはエラーをその親のサブシステムに伝播し、その後それはエラーに応答するか若しくはさらにエラーを上の親チェーン伝播するかのいずれかに対して責任がある。これはエラーを"バブリングアップする"と呼ばれる。設計による親サブシステムはシステム全体にわたって制御を有し、エラーに対する適当な応答を決定するための情報のより大きなセットを有する。結果として、エラー状態は階層のトップレベルへ伝播される必要がないが、より適当なレベルで取り扱われる。もしエラーが解決されずにトップサブシステムへ伝播すると、それはユーザーによる応答に対してIAN100へ伝播される。この方法でエラー取扱いを分配することによって、インテリジェントエラー取扱い戦略は最小の複雑さで実行される。
【００４４】
図４を参照して、各サブシステム内に潜在的に含まれたコンポーネントを表す例がマスター状態機械300及びデータフロー図310を含む。データフロー図310は関連する単一のDSPCU及びDSPCUの挙動を形成する他のコンポーネントを識別する。図４に示されるように、各サブシステムはオブザーバー状態機械302のようなひとつ若しくはそれ以上の付加的レベルの状態機械を含み、それはマスター有限状態機械300の評価の前に実行中に評価される。状態機械は状態及び入力信号に応答して状態機械サブシステムで取られた関連する遷移を識別する。
【００４５】
図４において状態機械300及び302によって表されたサブシステムはインジケータサブシステムである。インジケータサブシステムによって入力され得る３つの異なる状態が存在する。エラー状態、遷移状態及び停止状態である。エラー状態は（状態303のような）円によって示され、遷移状態は（状態304のような）角の丸い多角形によって示され、及び停止状態は状態305のような８角形によって示される。
【００４６】
ひとつの実施例において、状態機械302はインジケータサブシステムで（二重孔メモリ128若しくは子サブシステムのいずれかから）受信された入力信号をサンプリングするのに使用されるオブザーバー状態機械である。デジタル入力は状態ON、OFF若しくはUNKNOWNである。入力信号は遷移状態ON*OK、OFF*OK若しくはエラー状態であるI/O*ERRORのいずれかへ遷移するインジケータを生じさせる。
【００４７】
マスター状態機械300は入力FSM.Observer.On*OK及びFSM.Observer.Off*OKとして遷移状態の状況を受信するように示されている。これらの入力のひとつが主張される（オブザーバーFSMがそれらの状態の一つに入力する）ときはいつでも、マスター有限状態機械はON若しくはOFFのいずれかのターミナル状態に移行する。もし、FSM.Observer.I/O*ERROR入力が主張されることになると、インジケータはターミナルSHUTDOWN状態へ移行する。
【００４８】
データ構造（D1）の構築
サブシステム図と呼ばれる（図４に示されるような）状態機械／データフロー図は、ユーザーによって各サブシステムに対して手動で構成される。図が形成された後、それはゼロ若しくはそれ以上のコマンドのセット、ひとつ若しくはそれ以上の状態のセット、ゼロ若しくはそれ以上のデータフロー入力のセット及びゼロ若しくはそれ以上のデータフロー出力のセットによって定義されるインターフェースによって説明される。ひとつ若しくはそれ以上のサブシステムが親サブシステム内に含まれているとき、子サブシステムの各例への参照がサブシステムインターフェースを表す要素を通じて親データフローダイアグラム内に与えられる。この要素はDSPCUと同じインターフェースを有するが、実際には子サブシステムの閉じ込められた挙動を表す。
【００４９】
ひとつの実施例において、VISIOTMグラフィカル設計ツールが強化され、図の形式でサブシステム設計を作成するのに使用される。NCS102の全体の階層構造が形成されるにしたがって、VISIOツールは子サブシステムの状態機械／データフロー図からのデータに対し親サブシステムとリンクすることを許容する。グラフィカル要素間の接続及び外部プログラム制御に対するサポートを与える他のグラフィカルツールは択一的に使用され、したがって発明はVISIOツールの使用に限定されない。
【００５０】
上記したように、各親サブシステムに対する子サブシステムは親システムのデータフロー図内で表される。与えられたサブシステム図は状態機械、DSPCU及び親にリンクされた子サブシステムを記述する。階層は最上位のサブシステム図で開始し子サブシステムの各々を通じてリンクを作成することによって完全に定義（及び決定）される。ひとたびすべてのサブシステム図状態が手動で入力されると、状態機械、DSPCU及びそれらの相互接続を読み取り及び形成するのに必要なすべての要素を記述する階層データ構造へサブシステム図を変換するよう構築が開始される。以下、VISIOTMを通じて与えられたサブシステムをNCS102による処理が可能なフォーマットへ変換するのに使用されるひとつの方法が図５を参照して説明される。
【００５１】
工程220において、上記したように、ユーザーはシステム内で表されるべきサブシステムの各々に対してサブシステム図を準備する。階層データ構造内に含まれる状態機械／データフロー図の各々を含む図の完全なセット222が与えられる。工程224で構築ファイルがコンパイルされる。コンパイル処理の間、階層内のサブシステム間の未結合の入力及び出力が識別される。あらゆる未結合の入力及び出力が修正された後、構成ファイル226が作成される。構成ファイルは構築ファイルと類似している。しかし、親／子サブシステムのすべての入力及び出力が決定され、したがって親及び子サブシステムの上方及び下方実行を解析するための情報が与えられた。
【００５２】
構成ファイル226はCPU60及びCPU70の両方によって使用される。CPU70はIAN100総称ユーザーインターフェース229を構築するために工程228において構成ファイル226を使用する。総称ユーザーインターフェース229はユーザーに対してサブシステムが実際にNCS102内に含まれる特定の知識無しでNCS102を制御することを許可する。CPU60はNCS102を実行するソフトウエア231を構築するためのテンプレートとして工程230において構成ファイル226を使用する。構成ファイル226に加えて、CPU60は構成ファイル内のいずれのサブシステムがイオン注入システムの各実行サイクル中に評価されるべきかを識別するためにスケジューラD3（以下で詳細に説明される）を使用する。
【００５３】
DSPCUの実行のスケジューリング（D3）
ひとたび制御されるシステムの作動機能性を表す階層データ構造が生成されると、制御されたシステムの処理中にサブシステムの各々がどのように相互作用するかのスケジュールが与えられる。スケジュールは、各々のサブシステムの動作が所望の結果に達するために適当な時間で実行されることを保証するよう選択される。
【００５４】
ひとつの実施例において、制御されたシステムの動作の総時間は総動作時間と呼ばれる。総動作時間は多くの実行サイクルに配分され、その時間中制御されたシステムの状態が評価される。ひとつの実行サイクル中に、階層データ構造は階層の昇順及び階層の降順の両方で解析される。さらに各実行サイクルは多くの基本時間間隔に配分される。スケジューラは制御されたシステムの総動作時間内で各々の実行サイクルに対し、実行サイクル中に適当な基本時間間隔でサブシステムの実行をスケジュールに入れる。
【００５５】
したがって、スケジューラD3は制御システム階層から成る状態機械及びデータフロー図の実行を並べる。スケジューラによって決定された実行の順序は階層内でのサブシステムのそれぞれの位置及びサブシステムが解析される選択された周波数に基づいている。例えば、サブシステムは実行サイクル毎若しくは10回実行サイクル毎に解析される。
【００５６】
状態機械及びデータフロー図の実行のスケジューリングは、制御されたシステムの性能を最大化するために制御されたシステムの実際の動作前に実行される。ひとつの実施例において、各状態機械及びDSPCUはオブジェクトとして表され、スケジューリングはオブジェクト指向プログラミング方法を使って実行される。各オブジェクトは実行サイクル内で基本時間間隔に割当てられる。オブジェクトが実行用に選択される頻度が小さいと、そのオブジェクトに関連するオーバーヘッドの処理も低下する。ひとつの実施例において、異なる基本時間間隔へのオブジェクトの割当ては制御要求に基づいてシステム設計者によって実行される。ひとたびシステム設計者がオブジェクトが実行されるべき時間間隔を選択したら、一連のスケジュールリストが生成される。上記したように、制御されたシステムの動作の実行サイクル毎に、上方及び下方実行の両方が実行される。したがって、各実行サイクルに対して一連のリストは、実行の上行位相内で実行されるDSPCUオブジェクトを識別するリスト及び実行の下行位相内で実行されるDSPCUオブジェクトを識別するリストを含む。
【００５７】
一連のリストが生成される前に、階層データ構造は制御されたシステムの最悪の場合の実行時間状態、すなわち、階層データ構造内のDSPCU毎の上方及び下方実行の両方を実行するのにかかる最大量の時間を決定するべく評価される。最悪の場合の実行時間は制御システムの各サイクルの実行を許すべく時間の長さを決定するために使用される。決定された最悪ケースの実行時間は基本時間間隔を決定するべく選択された数の処理サイクルによって分割される。
【００５８】
図６を参照して、最悪ケースの実行時間を計算するために生成されたリスト及び処理サイクル中サブシステムの実行をスケジューリングするためのスケジューラによって生成されるリストを表すためにブロック図が与えられる。
【００５９】
DSPCUオブジェクト及び状態機械オブジェクトは、既知の帰納的階層ツリー検索技術を使ってリスト250及び253を形成するべく階層データ構造から検索される。リスト253は状態機械オブジェクトへのすべてのポインタのリストである。ポインタは、階層データ構造の底でのサブシステムの状態機械オブジェクトを指すポインタから階層データ構造の頂上でのサブシステムの状態機械オブジェクトを指すポインタへ並べられる。リスト250はDSPCUオブジェクトへのすべてのポインタのリストである。DSPCUオブジェクトへのポインタは、階層データ構造の底においてサブシステムに関連するDSPCUオブジェクトから階層データ構造の頂上においてサブシステムに関連するDSPCUオブジェクトへの順に、関連するデータフロー図によって定義された順序で並べられる。
【００６０】
状態機械オブジェクトへのポインタのリスト253を使って、２つの新しいリスト、すなわち更新アップ（上方実行）リスト261及び更新ダウン（下方実行）リスト256が生成される。更新アップ（上方実行）リスト261はDSPCUオブジェクトリスト250とそのあとに続く状態機械オブジェクトリスト253の組合せである。更新ダウン（下方実行）リスト256は状態機械オブジェクトのポインタリスト253の逆順（すなわち、リスト253の下から上の順）とそのあとに続くDSPCUオブジェクトのポインタリスト250の組合せである。
【００６１】
更新アップリスト261及び更新ダウンリスト256は階層的実行プロトコルにしたがって並べられたオブジェクトへのポインタを含む。しかし、リスト内のオブジェクトはそれらの実行に関連した異なるタイミング要求を有する。すなわち、各オブジェクトは制御されたシステムの実行サイクル中に異なる基本時間間隔で解析される。ひとつの実施例において、オブジェクト実行に有効な時間インターバルは、実行サイクル内の基本時間間隔の総数の因数であるインターバルのセットに制限される。例えば、もし上方若しくは下方実行のいずれかに対して要求される基本時間間隔の総数が８だったら、オブジェクト実行に有効な時間インターバルは８の因数である時間インターバル、すなわち1、2、4及び8である。選択された時間インターバルへオブジェクトの実行を制限することは、実行時間間隔を通じて制御システム内のオブジェクトの実行のバランス若しくは広がりを容易にする。
【００６２】
すべてのオブジェクトはセットのひとつの時間インターバルに関連するため、オリジナルの更新アップ及び更新ダウンリストは、それぞれのリストの多重検索を使って存在するセット（すなわち、総時間インターバルの因数）と同数のリストに分配される。例えば、図６に示されるように、制御されたシステムのひとつの実行サイクル内の基本時間間隔の数が８に等しいと仮定すると、８の４つの因数、１、２、４及び８が存在する。更新アップリスト261及び更新ダウンリスト256はそれぞれ基本間隔の１、２、４及び８倍の実行時間インターバルに関連したオブジェクトから完全に構成されていることが仮定されている。各オブジェクトに関連した時間インターバルに基づく検索技術を使用して、更新アップリスト261及び更新ダウンリスト256はそれぞれ図７を参照して説明される方法を使って、４つの異なったリスト262〜265及び266〜269に配分される。
【００６３】
工程700において、各グループリストは最小公倍数によって割り算されたグループに関連する時間インターバルと等しい値を割り当てられる。図６の例において、最小公倍数が１である場合、グループの各々262/266、263/267、264/268及び265/269に対して割り当てられた値はそれぞれ8、4、2及び1に等しい。割り当てられた値は、グループ内の各オブジェクトが制御されたシステムの実行のひとつのサイクル中に解析されるところの基本時間間隔の数を決定する。したがって、グループ262内の各オブジェクトは８基本時間間隔の間に解析され、一方グループ265内の各オブジェクトは１基本時間間隔の間に実行される。
【００６４】
ひとたび各グループが値を割り当てられると、工程702において、各グループはオブジェクトの平衡数のサブグループに配分される。グループの各対内のサブグループの数は一対のグループ内のすべてのオブジェクトに対して総許可実行時間を計算し、及びこの総許可実行時間を一対のグループに関する基本時間間隔の数で割り算することによって決定される。したがって、グループ262に対して、総許可実行時間は８基本時間間隔であり、一方基本時間間隔の数は８であるので、ひとつのサブグループが存在する。グループ264に対して、総許可実行時間は２基本時間間隔であり、一方基本時間間隔の総数は８であるので、２基本時間間隔の４つのサブグループが存在する。したがって、図６において、グループ262及び266はひとつのサブグループを有し、グループ263及び267は２つのサブグループを有し、グループ264及び268は４つのサブグループを有し、及びグループ265及び269は８つのサブグループを有する。
【００６５】
ひとたび各グループ内のサブグループの数が決定されると、オブジェクトは更新アップリスト261及び更新ダウンリスト256から各グループのサブグループへ分配される。オブジェクトが割り当てられるグループはオブジェクトの関連時間インターバル（１、２、４若しくは８）に応答して決定される。オブジェクトが配置されるサブグループは各オブジェクトを実行させるのにかかる時間及びサブグループに割り当てられた時間に応答して決定される。
【００６６】
ひとつの実施例において、各グループに対する総時間配分は特定のグループに関連する基本間隔の数を付加することによって決定される（例えば、更新アップリスト及び更新ダウンリストから２つの時間インターバルに関連したオブジェクトの実行のための総時間間隔を加算する）。これは本発明の限定ではないが、各グループに対して、オブジェクトが更新ダウンサブグループ内の配置のために更新ダウンリストから検索される前に、更新アップリストからのすべてのオブジェクトは更新アップサブグループ内に満たされる。ひとたび更新アップリスト261からのオブジェクトがサブグループに割り当てられると、グループに割り当てられた残りの時間を使って、更新ダウンリスト256からのオブジェクトがサブグループへ割り当てられる。したがって、工程704において、グループ用の更新アップリストが空いているか否かが決定される。もし空いていなければ、処理は工程706に進み、そこでグループに対する次の連続オブジェクトが更新アップリスト261から選択される。
【００６７】
上記したように、各サブグループは基本時間間隔のある倍数である割り当てられた時間間隔と関連していた。サブグループに対して割り当てられた時間間隔が一致するまで、オブジェクトはサブグループ内に配置され、その後オブジェクトはグループに対する次の連続サブグループ内に配置される。したがって、工程708において、オブジェクトに対する実行時間（例えば、オブジェクトの特性として保存される）は総サブグループ実行時間に付加され、及び割り当てられたサブグループ時間と比較される。もし和が割り当てられたサブグループ時間を超えると、工程710において次のサブグループが検索される。もし工程708において和が割り当てられたサブグループ時間を超えないか若しくは新しいサブグループが工程710で検索されると、工程712において、オブジェクトはサブグループ内に配置され、総時間及びサブグループ時間は増分される。工程714において、最大割り当てグループ時間と比較がなされる。もしグループを解析するための時間が残っていれば、処理は工程704に戻る。
【００６８】
更新アップリストが空いていると決定されたとき、工程714においてグループに割り当てられたすべての時間が一致したことが決定されるまで、オブジェクトは工程716から722を通じて更新ダウンリスト256からグループに対する関連した更新ダウンサブグループへ移動される。
【００６９】
したがって、図７に示された処理を使って、オブジェクトは関連する時間インターバル（1、2、4若しくは8）にしたがって特定のグループ内へ配置するためにそれぞれの更新アップ及び更新ダウンリストから選択される。グループ対262及び266において、ひとつのサブグループしか存在しないので、すべてのオブジェクトはサブグループＡ1内にある。グループ対263及び267に対して、オブジェクトはサブグループＢ1若しくはＢ2のいずれか内にある。
【００７０】
図７に記述された処理の結果は一連の時間間隔ベースのリストであり、その各々は状態機械及び階層データ構造からのDSPCUオブジェクトに対するポインタを含み、また関連するオブジェクトが制御されたシステムのひとつの実行サイクル中に解析されるところの基本時間間隔を識別する。時間間隔ベースリストは実行時間実行リスト274〜289（図６）を生成するのに使用され、それはサブグループに対するポインタのリストである。実行時間実行リストは、制御されたシステムのひとつの上方及び下方実行において、基本サイクルの各々に対してオブジェクトのサブグループの各々の実行の順序を識別する。図６の例を使用して、制御されたシステムの実行が８基本時間間隔を含む場合、更新アップ実行時間実行リストは８実行時間実行上方実行リスト274〜281からなり、更新ダウン実行時間実行リストは８実行時間実行下方実行リスト282〜289から成る。各基本時間間隔に対して、実行時間実行リストの上方及び下方対が実行され、実行時間実行リスト内の指示されたサブグループの各々内のオブジェクトは順に実行される。
【００７１】
実行時間実行リストは以下のようにして形成される。各基本時間間隔に対して、時間間隔ベースリストの各々からのひとつのサブグループは実行時間実行リスト内に含まれる。グループ内の次の連続サブグループの各々は連続サイクルで実行するよう選択される。サブグループを異なる基本時間間隔に分離することは実行サイクルを横切って動作を分配し、それによって与えられた時間間隔内で処理されるオブジェクトの数を管理可能な量に制限する。
【００７２】
実行時間実行リストは更新アップリスト290及び更新ダウンリスト291を生成するのに使用され、その各々はリスト274〜289のような実行時間実行リストに対するポインタのリストである。したがって、リスト274〜281のような８リストのひとつのセットが制御されたシステムの各実行サイクルに対して与えられる。ひとつの実施例において、タイマー（ソフトウエア若しくはハードウエアのいずれかで実行される）がゼロから制御された装置の実行サイクルの総数まで増分される。各タイマー増分に対して、実行時間リストの各々から更新アップリスト290及び更新ダウンリスト291へポインタをコピーすることによってそれぞれのリスト内でひとつのリストが生成される。例えば、もし制御されたシステムのひとつの動作サイクル内に1000実行サイクルが存在したら、更新アップリスト290は1000個の実行時間実行リストを含む。更新アップリスト290及び更新ダウンリスト291は制御されたシステムの実行サイクルの各々に対して動作のスケジューリングを与える。制御されたシステムの実際の実行時間の前にオブジェクトの各々の実行をスケジュールに入れることは実行時間オーバーヘッドを減少させ、したがって制御されたシステムの性能を強化する。
【００７３】
階層データ構造からのオブジェクトの実行をスケジュールに入れる上記方法は所望の実行間隔にわたって実行動作を分配するという利点を有するが、本発明は上記した工程に限定されない。むしろ、オブジェクトの階層構造が維持されるのを許すオブジェクトの実行をスケジュールに入れるあらゆる方法が択一的に使用される。
【００７４】
D2：プロトコル制御
プロトコル制御器D2は制御されたシステムの各実行サイクルの間にDSPCU及び子／親サブシステムの状態機械要素の実行プロトコルを実施する。プロトコルは図８のフロー図内に示されるようにスレッドと呼ばれる２つの別個の実行プログラムから成る。ひとつのプログラムであるメインスレッド400は、きつく制御された周期的時間フレーム内でDSPCU及び状態機械の状態評価及びコマンド評価用である。他のプログラムである二次スレッド500はDSPCUによる出来る限り長い個別計算の実行用である。２つのスレッドは独自に動作し、そこでは二次スレッド500がメインスレッド400内のDSPCUの制御下にある。
【００７５】
メインスレッド400は実行の７つの位相を有し、図２を参照して上述したIAN101、NCS102及びI/O104コンポーネントを含む。プロトコル制御器の動作は図２に示された制御システム200の要素を参照しながら図８を参照して説明される。
【００７６】
第１工程402は各実行サイクルの動作に周期性を与えるための同期化用である。周期的タイマーが経過したら、動作は工程404へ進む。
【００７７】
工程404において、実行プロトコルの位相Ｉが開始される。I/O104においてデータ収集が実行され、新しい出力信号値がメモリ128内に保存され及び新しい入力信号値がメモリ128から読み出される。工程406の位相II及び工程412の位相Vの間にDSPCUによって計算された出力信号は、サブシステムの各々に関連する物理的ハードウエアを制御するために数値フォーマットでI/O104の二重孔メモリ内に保存される。物理的ハードウエアからの入力信号値はI/O104の二重孔メモリから読み出され、次の位相での評価のためにNCS102内のメモリ内に保存される。
【００７８】
工程406において、実行プロトコルの位相IIが開始される。位相IIの間、NCS102はサブシステムのDSPCUの状態評価機能を実行する。実行順序はすべてのサブシステムの組み合わされたデータフロー図によって、左から右へ、データフロー矢印によって定義された順序で、階層内の最年少の子サブシステムから階層内の最年長の親へ指示される。
【００７９】
工程408において、実行プロトコルの位相IIIが開始される。位相IIIの間に、NCS102は階層内の状態機械の各々の状態評価機能を実行する。実行は階層内で最低の状態機械から階層内で最上の状態機械へ順になされる。したがって、子サブ−サブシステムに関連する状態機械はそれらの親サブシステムに関連する状態機械の前に解析される。
【００８０】
位相II及び位相IIIはともに上方実行位相内の状態評価から成る。上方状態評価を実行するとき、子サブシステムからのみ受信された入力（若しくは、I/O104から直接に受信された入力）は状態機械及び親サブシステムのDSPCUを評価するのに使用される。
【００８１】
工程410、位相IVにおいて、NCS102は階層内の状態機械の各々のコマンド評価機能を実行する。実行順序は最年長の親から最年少の子の順である。
【００８２】
工程412、位相Vにおいて、NCS102はDSPCUの各々のコマンド評価関数を実行する。実行順序は位相IIと同じ順序であり、すなわちデータフロー順である。
【００８３】
もしDSPCUによって新しい要求が二次スレッド新要求リスト450へ付加されたら、これらの要求は工程414の位相VIにおいて二次スレッド500へ送られる。
【００８４】
上述した実行の位相が完了したとき、IAN100内のソフトウエアは工程416、位相VIIにおいて更新される。工程416において、NCS102からのデータがIAN101へ送られる。その後IAN101はIANアプリケーションからグラフィカルユーザーインターフェースにより受信されたコマンド及び前のサイクルのデータ収集工程404から収集されたデータをNCS102へ送る。実行の下行位相が完了した後、状態機械によって与えられた出力信号はデジタルフォーマットでI/O104の二重孔メモリに保存される。デジタル出力は、サブシステムの各々の物理的ハードウエアを制御するために検索され必要によりアナログ信号に変換される。処理は次の周期的タイマーチックを待つために工程402へ戻り、そこで次の実行サイクルの開始まで待ち状態が入力される。
【００８５】
ひとつ若しくはそれ以上のDSPCUが要求を付加したとき二次スレッド500動作が開始する。DSPCUは工程414、位相VI動作中に二次スレッド新要求リスト450へ実行要求を付加する。新要求が二次スレッド500によって受信されると、新実行要求は新要求リスト450から除去され、かつ工程504において二次スレッド要求リスト501へ付加される。二次スレッド500は前の要求が完了した後工程506で与えられた順序で各要求を実行する。各要求の実行はメインスレッド400の多くの周期的サイクルの間実行してもよい。これによってDSPCUはメインスレッド400の周期性と干渉することなくより長い計算を実行することができる。工程508において要求の実行が二次スレッドによって完了するまで、DSPCUは後続の位相II状態評価（工程406）の各々の間に実行要求の状態を評価する。二次スレッド500はリストが空くまで要求を実行しつづける。二次スレッド500はメインスレッド400がより多くの要求を生成するまで工程502で待機する。
【００８６】
上記されたアップ／ダウン実行環境によって高度に整合された制御がイオン注入システム100内のサブシステムに対して及ぼされる。ハードウエアから与えられた入力信号の効果をユーザーによって与えられるコマンドの効果から分離することによって、イオン注入システムの動作の状態はその状態に影響を及ぼすコマンドが発行される前に最初に評価される。さらに、状態機械及びDSPCUの２つの位相の実行を果たすことによって、各サブシステムの真の状態が決定され、それは２つの異なるタイプの入力によって影響されるためである。
【００８７】
したがって、複雑なシステムを制御するための改良された方法及び装置が与えられ、それは制御システム内のサブシステムに関連する動作の制御を反映する複数の階層的に結合された状態機械を含む。新しい制御システムの第１の特徴はそれが周期的であることである。状態機械は与えられた解析時間間隔内で周期的インターバルで評価されるため、あらゆる時間におけるサブシステムの状態の正確な表示が与えられる。制御システムの第２の特徴は、それがユーザーインターフェースからのユーザーコマンドに対してばかりでなく入力／出力信号の両方に対しても同期したインターフェースを有することである。信号の実行をコマンドの実行から分離したことによって、コマンドの影響が制御されるべきシステムの実際の状態と同期することが保証される。さらに、制御システムが階層的な状態機械の配置に基づいているため、制御システム内の要素の付加若しくは削除は、親及び子サブシステム内の適当な通信リンクを与えるか若しくは除去することによて簡単に適応できる。したがって、システムコンポーネントの要求される再設計は、制御システム内の現存のサブシステムへ付加されるか及びそこから削除されるサブシステムに対して付加及び削除するために要求されない。さらに制御システムの階層的性質のために、エラー状態は制御システムないの適当な監視レベルまでしか伝播しない。結果として、エラーの取り扱いは制御システム内へ分配されそれによって、既知のエラー取り扱いを許してあらゆるひとつのサブシステムでの取り扱いの全体的な複雑性を減少させる。
【００８８】
上記制御システムはイオン注入システムと関連して説明されてきたが、本発明はそのような使用に限定されるものではなく、むしろサブシステムにモジュール化されるあらゆる複雑なシステムの制御をカバーするものである。したがって、上記制御システムは適応性を最大化するよう相互接続された階層的状態機械によって定義される階層的サブシステムを使用し、及びエラーの取り扱いは他のシステムにおける使用のために拡張される。
【００８９】
発明のいくつかの実施例が説明されてきたが、上記したものは単に図示したに過ぎず限定せず例としてのみ与えられたことは当業者にとって明白である。さまざまな修正及び他の実施例は当業者の態様内にあり及び発明の態様内に落ちるように予期される。
【図面の簡単な説明】
【図１】  図１は、本発明の制御システムによって制御されるイオン注入器を示す略示ブロック図である。
【図２】  図２は、本発明の制御システム内で採用され及び図１のイオン注入器を制御するために使用されるシステムコンポーネントのハイレベルなブロック図である。
【図３】  図３は、状態機械及び図１のイオン注入器を制御するのに使用されるデジタル信号処理及び条件付けユニットの階層的データ構造の例を表すブロック図である。
【図４】  図４は、制御システム階層の典型的要素を表すデータフロー図及び有限状態機械を表す、図３のデータ構造によって表されるサブシステムの例のブロック図である。
【図５】  図５は、図３のようなデータ構造を構築するのに使用される方法のひとつの実施例を示すフロー図である。
【図６】  図６は、図２の制御システム内のサブシステムの動作を計画するのに使用されるスケジューラのコンポーネントのブロック図である。
【図７】  図７は、図６のスケジューラによって採用されるスケジュールの方法のひとつの実施例のフロー図である。
【図８】  図８は、図２の制御システム内で使用される実行プロトコルを示すためのフロー図である。
【図１】
0004693142.tif 000002
【図２】
0004693142.tif 000003
【図３】
0004693142.tif 000004
【図４】
0004693142.tif 000005
【図５】
0004693142.tif 000006
【図６】
0004693142.tif 000007
【図７】
0004693142.tif 000008
【図８】
0004693142.tif 000009