(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022162994
(43)【公開日】2022-10-25
(54)【発明の名称】製造システムにおける多変量時系列データの予測方法およびシステム
(51)【国際特許分類】
G05B 19/418 20060101AFI20221018BHJP
G06N 20/00 20190101ALI20221018BHJP
G05B 23/02 20060101ALI20221018BHJP
【FI】
G05B19/418 Z
G06N20/00
G05B23/02 R
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022065251
(22)【出願日】2022-04-11
(31)【優先権主張番号】17/229,306
(32)【優先日】2021-04-13
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】516172237
【氏名又は名称】アクセンチュア グローバル ソリューションズ リミテッド
(74)【代理人】
【識別番号】100102406
【弁理士】
【氏名又は名称】黒田 健二
(74)【代理人】
【識別番号】100100240
【弁理士】
【氏名又は名称】松本 孝
(72)【発明者】
【氏名】村井 誠
(72)【発明者】
【氏名】森賀 新
(72)【発明者】
【氏名】須山 敦志
(72)【発明者】
【氏名】林 素明
(72)【発明者】
【氏名】工藤 卓哉
(57)【要約】 (修正有)
【課題】多変量時系列を使用して製造システムを制御する方法について記載する。
【解決手段】製造システム内のデバイスからのデータを記録するステップと、記録済みのデータを記憶するステップと、第1の時間ウィンドウ内で欠測値をベイズモデルを使用して補間するステップと、補間された値を予測データとして記憶するステップと、第2の時間ウィンドウ内に入るデータを読み込むステップと、第2の時間ウィンドウ内に入る予測データが利用可能でない予測データを読み込むステップと、読み込まれたデータおよび予測データを使用してベイズモデルのパラメータを最適化するステップと、読み込まれたデータおよび予測データが利用可能でない値をベイズモデルを使用して予測するステップと、予測された値を予測データとして記憶するステップと、記録済みのデータを生成しているデバイスの1つ以上を第2の時間ウィンドウ内の予測データに基づき調整する。
【選択図】
図5
【特許請求の範囲】
【請求項1】
多変量時系列を使用して製造システムを制御する方法であって、
前記製造システム内の1つ以上のデバイスからのデータを記録するステップと、
前記記録済みのデータを複数の時系列としてデータストレージに記憶するステップであって、各時系列は、第1の時間に対応する第1の記録済みの値および前記時系列の最後に対応する最終の記録済みの値を有する、前記データストレージに記憶するステップと、
第1の時間ウィンドウ内で、前記複数の時系列内の欠測値をベイズモデルを使用して補間するステップであって、前記欠測値は、個々の前記時系列の前記第1から最後の時間の間に入る、前記補間するステップと、
前記補間された値を予測データとして予測ストレージに記憶するステップであって、前記補間された値は、補間された各値の不確実性を含む、前記補間された値を予測データとして予測ストレージに記憶するステップと、
第2の時間ウィンドウ内に入る前記記録済みのデータを前記データストレージから読み込むステップと、
前記第2の時間ウィンドウ内に入る予測データであって、それに代わる記録済みのデータが利用可能でない予測データを、前記予測ストレージから読み込むステップと、
前記読み込まれた記録済みのデータおよび前記予測データを使用して前記ベイズモデルのパラメータを最適化するステップと、
それぞれの前記時系列の値であって、読み込まれた記録済みのデータおよび予測データが利用可能でない前記値を、前記ベイズモデルを使用して予測するステップと、
前記予測された値を予測データとして前記予測ストレージに記憶するステップであって、前記予測値は、各予測値の不確実性を含む、前記予測された値を予測データとして前記予測ストレージに記憶するステップと、
前記記録済みのデータを生成している前記デバイスのうちの1つ以上を、前記第2の時間ウィンドウ内の前記予測データに基づき調整するステップと
を含む、方法。
【請求項2】
前記予測データは、統計的分布または密度関数として記憶される、請求項1に記載の方法。
【請求項3】
前記予測データは、確率的サンプルとして記憶され、前記予測データを読み込むステップは、前記確率的サンプルのランダムサンプルを選択するステップを含む、請求項1に記載の方法。
【請求項4】
前記読み込まれた記録済みのデータおよび予測データの周辺尤度が取扱い可能であれば、前記読み込まれた記録済みのデータおよび予測データの前記周辺尤度を演算するステップと、
前記読み込まれた記録済みのデータおよび予測データの前記周辺尤度が取扱い可能でなければ、前記読み込まれた記録済みのデータおよび予測データの条件付き密度を演算するステップと
をさらに含む、請求項1に記載の方法。
【請求項5】
前記第2の時間ウィンドウ内の前記読み込まれた記録済みのデータ点それぞれについて条件付き確率P(xi|Xj≠i)を演算するステップ
をさらに含む、請求項1に記載の方法。
【請求項6】
一連のパラメータ値に関して条件付き密度および演算コストを含むコスト関数を演算するステップと、
前記コスト関数の最低値に対応するように前記パラメータを調整するステップと
をさらに含む、請求項1に記載の方法。
【請求項7】
前記1つ以上のデバイスを調整するステップは、前記1つ以上のデバイスのメンテナンスを実行またはスケジュールするステップを含む、請求項1に記載の方法。
【請求項8】
前記1つ以上のデバイスを調整するステップは、前記1つ以上のデバイスの動作設定を調整するステップを含む、請求項1に記載の方法。
【請求項9】
1つ以上のプロセッサと、
前記1つ以上のプロセッサに結合され命令が記憶されたコンピュータ可読ストレージデバイスと
を含むシステムであって、前記命令は、前記1つ以上のプロセッサにより実行されると前記1つ以上のプロセッサに動作を実行させ、前記動作は、
製造システム内の1つ以上のデバイスからのデータを記録することと、
前記記録済みのデータを複数の時系列としてデータストレージに記憶することであって、各時系列は、第1の時間に対応する第1の記録済みの値および前記時系列の最後に対応する最終の記録済みの値を有する、前記データストレージに記憶することと、
第1の時間ウィンドウ内で、前記複数の時系列内の欠測値をベイズモデルを使用して補間することであって、前記欠測値は、個々の前記時系列の前記第1から最後の時間の間に入る、前記補間することと、
前記補間された値を予測データとして予測ストレージに記憶することであって、前記補間された値は、補間された各値の不確実性を含む、前記補間された値を予測データとして予測ストレージに記憶することと、
第2の時間ウィンドウ内に入る前記記録済みのデータを前記データストレージから読み込むことと、
前記第2の時間ウィンドウ内に入る予測データであって、それに代わる記録済みのデータが利用可能でない予測データを、前記予測ストレージから読み込むことと、
前記読み込まれた記録済みのデータおよび前記予測データを使用して前記ベイズモデルのパラメータを最適化することと、
それぞれの前記時系列の値であって、読み込まれた記録済みのデータおよび予測データが利用可能でない前記値を、前記ベイズモデルを使用して予測することと、
前記予測された値を予測データとして前記予測ストレージに記憶することであって、前記予測値は、各予測値の不確実性を含む、前記予測された値を予測データとして前記予測ストレージに記憶することと、
前記記録済みのデータを生成している前記デバイスのうちの1つ以上を、前記第2の時間ウィンドウ内の前記予測データに基づき調整することと
を含む、システム。
【請求項10】
前記動作は、
前記予測データを、統計的分布または密度関数として記憶すること
をさらに含む、請求項9に記載のシステム。
【請求項11】
前記動作は、
確率的サンプルとして記憶された前記予測データを記憶することと、
前記確率的サンプルのランダムサンプルを選択することにより前記予測データを読み込むことと
をさらに含む、請求項9に記載のシステム。
【請求項12】
前記動作は、
前記読み込まれた記録済みのデータおよび予測データの周辺尤度が取扱い可能であれば、前記読み込まれた記録済みのデータおよび予測データの前記周辺尤度を演算することと、
前記読み込まれた記録済みのデータおよび予測データの前記周辺尤度が取扱い可能でなければ、前記読み込まれた記録済みのデータおよび予測データの条件付き密度を演算することと
をさらに含む、請求項9に記載のシステム。
【請求項13】
前記動作は、
前記第2の時間ウィンドウ内の前記読み込まれた記録済みのデータ点それぞれについて条件付き確率P(xi|Xj≠i)を演算すること
をさらに含む、請求項9に記載のシステム。
【請求項14】
前記動作は、
一連のパラメータ値に関して条件付き密度および演算コストを含むコスト関数を演算することと、
前記コスト関数の最低値に対応するように前記パラメータを調整することと
をさらに含む、請求項9に記載のシステム。
【請求項15】
前記動作は、
前記1つ以上のデバイスのメンテナンスを実行またはスケジュールすること
をさらに含む、請求項9に記載のシステム。
【請求項16】
前記動作は、
前記1つ以上のデバイスの動作設定を調整すること
をさらに含む、請求項9に記載のシステム。
【請求項17】
1つ以上のプロセッサに結合され命令が記憶されたコンピュータ可読ストレージ媒体であって、前記命令は、前記1つ以上のプロセッサにより実行されると前記1つ以上のプロセッサに動作を実行させ、前記動作は、
製造システム内の1つ以上のデバイスからのデータを記録することと、
前記記録済みのデータを複数の時系列としてデータストレージに記憶することであって、各時系列は、第1の時間に対応する第1の記録済みの値および前記時系列の最後に対応する最終の記録済みの値を有する、前記データストレージに記憶することと、
第1の時間ウィンドウ内で、前記複数の時系列内の欠測値をベイズモデルを使用して補間することであって、前記欠測値は、個々の前記時系列の前記第1から最後の時間の間に入る、前記補間することと、
前記補間された値を予測データとして予測ストレージに記憶することであって、前記補間された値は、補間された各値の不確実性を含む、前記補間された値を予測データとして予測ストレージに記憶することと、
第2の時間ウィンドウ内に入る前記記録済みのデータを前記データストレージから読み込むことと、
前記第2の時間ウィンドウ内に入る予測データであって、それに代わる記録済みのデータが利用可能でない予測データを、前記予測ストレージから読み込むことと、
前記読み込まれた記録済みのデータおよび前記予測データを使用して前記ベイズモデルのパラメータを最適化することと、
それぞれの前記時系列の値であって、読み込まれた記録済みのデータおよび予測データが利用可能でない前記値を、前記ベイズモデルを使用して予測することと、
前記予測された値を予測データとして前記予測ストレージに記憶することであって、前記予測値は、各予測値の不確実性を含む、前記予測された値を予測データとして前記予測ストレージに記憶することと、
前記記録済みのデータを生成している前記デバイスのうちの1つ以上を、前記第2の時間ウィンドウ内の前記予測データに基づき調整することと
を含む、ストレージ媒体。
【請求項18】
前記動作は、
前記予測データを、統計的分布または密度関数として記憶すること
をさらに含む、請求項17に記載のストレージ媒体。
【請求項19】
前記動作は、
確率的サンプルとして記憶された前記予測データを記憶することと、
前記確率的サンプルのランダムサンプルを選択することにより前記予測データを読み込むことと
をさらに含む、請求項17に記載のストレージ媒体。
【請求項20】
前記動作は、
前記読み込まれた記録済みのデータおよび予測データの周辺尤度が取扱い可能であれば、前記読み込まれた記録済みのデータおよび予測データの前記周辺尤度を演算することと、
前記読み込まれた記録済みのデータおよび予測データの前記周辺尤度が取扱い可能でなければ、前記読み込まれた記録済みのデータおよび予測データの条件付き密度を演算することと
をさらに含む、請求項17に記載のストレージ媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、製造システムにおける多変量時系列データの予測方法およびシステムに関する。
【背景技術】
【0002】
時系列とは、時間順のデータ点のシーケンスである。製造環境において、時系列は、製造機器の経時的な内部状態を表現することができる。あるいは時系列は、連続するワークピースにわたる特定のパラメータまたは特性を追跡することができる。例として、特定の物理的測定値が、いくつかのワークピースについて記録され、経時的な測定値を記録する時系列を形成することができる。一部の時系列は多変量であり、つまり時系列は時間依存変数を2つ以上有する。多変量時系列において、変数は、それ自体の過去の値、さらに少なくとも部分的に他の変数に依存する。例として、特定の製造パラメータは、それ自体の過去の値、ならびに製造プロセスの上流工程からのパラメータの両方に依存し得る。
【発明の概要】
【課題を解決するための手段】
【0003】
本開示の実装は、全般的に、多変量時系列を使用して製造システムを制御する方法を対象とする。特に、本開示の実装は、製造システムにおいて多変量時系列データを予測し、予測された時系列データを使用して製造システムにおけるパラメータに調整を加える方法およびシステムを対象とする。
【0004】
一部の実装において、アクションは、製造システム内の1つ以上のデバイスからのデータを記録することと、記録済みのデータを複数の時系列としてデータストレージに記憶することであって、各時系列は、第1の時間に対応する第1の記録済みの値および時系列の最後に対応する最終の記録済みの値を有する、データストレージに記憶することと、第1の時間ウィンドウ内で、複数の時系列内の欠測値をベイズモデルを使用して補間することであって、欠測値は、個々の時系列の第1から最後の時間の間に入る、補間することと、補間された値を予測データとして予測ストレージに記憶することであって、補間された値は、補間された各値の不確実性を含む、補間された値を予測データとして予測ストレージに記憶することと、第2の時間ウィンドウ内に入る記録済みのデータをデータストレージから読み込むことと、第2の時間ウィンドウ内に入る予測データであって、それに代わる記録済みのデータが利用可能でない予測データを、予測ストレージから読み込むことと、読み込まれた記録済みのデータおよび予測データを使用してベイズモデルのパラメータを最適化することと、それぞれの時系列の値であって、読み込まれた記録済みのデータおよび予測データが利用可能でない値を、ベイズモデルを使用して予測することと、予測された値を予測データとして予測ストレージに記憶することであって、予測値は、各予測値の不確実性を含む、予測された値を予測データとして予測ストレージに記憶することと、記録済みのデータを生成しているデバイスのうちの1つ以上を、第2の時間ウィンドウ内の予測データに基づき調整することとを含む。この側面の他の実装は、対応するシステムと、装置と、本方法のアクションを実行するように構成されコンピュータストレージデバイス上にエンコーディングされたコンピュータプログラムとを含む。
【0005】
これらの実装および他の実装はそれぞれ、次の特徴のうちの1つ以上を任意選択で含むことができる。一部の実装において、予測データは、統計的分布または密度関数として記憶される。一部の実装において、予測データは、確率的サンプルとして記憶され、予測データを読み込むことは、確率的サンプルのランダムサンプルを選択することを含む。一部の実装は、読み込まれた記録済みのデータおよび予測データの周辺尤度が取扱い可能であれば、読み込まれた記録済みのデータおよび予測データの周辺尤度を演算することと、読み込まれた記録済みのデータおよび予測データの周辺尤度が取扱い可能でなければ、読み込まれた記録済みのデータおよび予測データの条件付き密度を演算することとを含む。一部の実装は、第2の時間ウィンドウ内の読み込まれた記録済みのデータ点それぞれについて条件付き確率P(xi|Xj≠i)を演算することを含む。一部の実装は、一連のパラメータ値に関して条件付き密度および演算コストを含むコスト関数を演算することと、コスト関数の最低値に対応するようにパラメータを調整することとを含む。一部の実装において、1つ以上のデバイスを調整することは、1つ以上のデバイスのメンテナンスを実行またはスケジュールすることを含む。一部の実装において、1つ以上のデバイスを調整することは、1つ以上のデバイスの動作設定を調整することを含む。
【0006】
当然のことながら、本開示による方法は、本願明細書に記載される側面および特徴の任意の組み合わせを含むことができる。つまり、例として、本開示による装置および方法は、本願明細書に具体的に記載される側面および特徴の組み合わせに限定されず、示される側面および特徴の任意の組み合わせも含むことができる。
【0007】
本開示の1つ以上の実装の詳細が、添付の図面および下記の説明の中に記載されている。本開示の他の特徴および利点が、その説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0008】
【
図1】本開示の実装を実行することができる例示のシステムを示す。
【
図2】本開示による、多変量時系列データのための例示の予測システムを示す。
【
図3】本開示による予測システムを組み込んだ例示の製造システムを示す。
【
図4】当初の時点における3つの時系列の略図である。
【
図5】
図2の訓練および予測モジュールにより実行可能な例示のプロセスを示す。
【
図7】
図2のストレージモジュールにより実行可能な例示のプロセスを示す。
【
図8A】
図2のモデルメンテナンスモジュールにより実行可能な例示のプロセスを示す。
【
図8B】
図8Aにおいて生成されたレポートの例示のグラフ表現を示す。
【
図9A】
図2のモデルメンテナンスモジュールにより実行可能な例示のプロセスを示す。
【
図9B】
図9Aにおいて生成されたレポートの例示のグラフ表現を示す。
【
図10A】
図2のモデルメンテナンスモジュールにより実行可能な例示のプロセスを示す。
【
図11】本開示の予測システムを組み込んだ製造システムのさらなる例を示す。
【
図12】本開示の予測システムを組み込んだ製造システムのさらなる例を示す。
【発明を実施するための形態】
【0009】
別々の図面内の同じ参照番号および名称は、同じ構成要素を示す。
【0010】
本開示の実装は、全般的に、多変量時系列を使用して製造システムを制御する方法を対象とする。特に、本開示の実装は、製造システムにおいて多変量時系列データを予測し、予測された時系列データを使用して製造システムにおけるパラメータに調整を加える方法およびシステムを対象とする。
【0011】
一部の実装において、アクションは、製造システム内の1つ以上のデバイスからのデータを記録することと、記録済みのデータを複数の時系列としてデータストレージに記憶することであって、各時系列は、第1の時間に対応する第1の記録済みの値および時系列の最後に対応する最終の記録済みの値を有する、データストレージに記憶することと、第1の時間ウィンドウ内で、複数の時系列内の欠測値をベイズモデルを使用して補間することであって、欠測値は、個々の時系列の第1から最後の時間の間に入る、補間することと、補間された値を予測データとして予測ストレージに記憶することであって、補間された値は、補間された各値の不確実性を含む、補間された値を予測データとして予測ストレージに記憶することと、第2の時間ウィンドウ内に入る記録済みのデータをデータストレージから読み込むことと、第2の時間ウィンドウ内に入る予測データであって、それに代わる記録済みのデータが利用可能でない予測データを、予測ストレージから読み込むことと、読み込まれた記録済みのデータおよび予測データを使用してベイズモデルのパラメータを最適化することと、それぞれの時系列の値であって、読み込まれた記録済みのデータおよび予測データが利用可能でない値を、ベイズモデルを使用して予測することと、予測された値を予測データとして予測ストレージに記憶することであって、予測値は、各予測値の不確実性を含む、予測された値を予測データとして予測ストレージに記憶することと、記録済みのデータを生成しているデバイスのうちの1つ以上を、第2の時間ウィンドウ内の予測データに基づき調整することとを含む。この側面の他の実装は、対応するシステムと、装置と、本方法のアクションを実行するように構成されコンピュータストレージデバイス上にエンコーディングされたコンピュータプログラムとを含む。
【0012】
例示の製造システムを参照して、本開示の各実装について本願明細書にさらに詳細に記載する。例示の製造システムは、半導体デバイスの製作に使用されるウェーハを加工するために使用される。半導体デバイス製作プロセスは、例として、単体の半導体デバイスおよび集積回路チップを製造するために使用される。製作プロセスは、半導体ウェーハ上に電子回路を徐々に形成していく自動化された工程のシーケンスを含む。工程の数が原因で、製作プロセスは、開始から終了までに数週間かかる場合もある。なお、本開示の実装は、任意の適切な自動化システムを用いて実現可能であると考えられる。
【0013】
図1は、本開示の実装を実行することができる例示のシステム100を示す。例示のシステム100は、コンピューティングデバイス102、バックエンドシステム108、およびネットワーク106を含む。一部の例では、ネットワーク106は、ローカルエリアネットワーク(LAN:local area network)、ワイドエリアネットワーク(WAN:wide area network)、インターネット、またはそれらの組み合わせを含み、ウェブサイト、デバイス(例えばコンピューティングデバイス102)、およびバックエンドシステム(例えばバックエンドシステム108)を接続する。一部の例において、ネットワーク106には、有線および/またはワイヤレスの通信リンク上でアクセスできる。
【0014】
一部の例において、コンピューティングデバイス102は、デスクトップコンピュータ、ラップトップコンピュータ、ハンドヘルドコンピュータ、タブレットコンピュータ、携帯情報端末(PDA:personal digital assistant)、携帯電話、ネットワークアプライアンス、カメラ、スマートフォン、拡張汎用パケット無線サービス(EGPRS:enhanced general packet radio service)モバイル電話、メディアプレーヤ、ナビゲーションデバイス、電子メールデバイス、ゲーム機、またはこれらのデバイスもしくは他のデータ処理デバイスのいずれか2つ以上の適切な組み合わせなど、任意の適切なタイプのコンピューティングデバイスを含むことができる。
【0015】
示されている例において、バックエンドシステム108は、少なくとも1つのサーバシステム112およびデータストア114(例えばデータベースおよび知識グラフ構造)を含む。一部の例において、少なくとも1つのサーバシステム112は、ユーザがコンピューティングデバイスを使用して相互作用できる、コンピュータに実装された1つ以上のサービスをホストする。例としてサーバシステム112は、本開示の実装による多変量時系列の予測システムの一部として提供される1つ以上のアプリケーションをホストすることができる。
【0016】
一部の例においてバックエンドシステム108は、本開示の実装による、製造システムにおける異常を検出する異常検出システムをホストする。例としてユーザ120(例えば半導体製作工場のオペレータ)は、コンピューティングデバイス102を使用して予測システムと相互作用することができる。
【0017】
図2は、多変量時系列データのための例示の予測システム200を示す。システム200は、ストレージモジュール202と、訓練および予測モジュール204と、モデルメンテナンスモジュール206とを含む。ストレージモジュール202は、製造システム(図示せず)から記録された時系列データ用のデータストレージと、訓練および生産モジュール204により予測されたデータ用の予測ストレージとを含む。以下の開示において、「記録済みのデータ」は、製造システムから得られる時系列データを指す。記録済みのデータは、製造機器内のセンサにより生成されたものとすることができる。記録済みのデータは、製造機器自体の内部状態、または製造機器により加工されるワークピースの特性もしくはパラメータに対応することができる。ストレージモジュール202は、それに向かう矢印により示されているように、訓練および予測モジュール202ならびにモデルメンテナンスモジュール206からデータのリクエストを受容する。ストレージモジュール202は、外に向かう矢印により示されているように、記録済みのデータおよび予測データを訓練および予測モジュール202ならびにモデルメンテナンスモジュール206に提供する。訓練および予測モジュール204は、ストレージモジュール202からの最新データに基づき、予測データを生成するためのモデルパラメータを継続的に最適化する。訓練および生産モジュール204からの予測結果は、後の予測において使用するためにストレージモジュール202に記憶される。モデルメンテナンスモジュール206は、ストレージモジュール202からの最新のデータに基づき、訓練および予測モジュール204の予測性能を評価する。モデルメンテナンスモジュール206は、現在のデータに基づく予測データを正確に予測するのが難しいボトルネックを特定することもできる。以下、モジュール202、204、206の動作について、いくつかの例を参照しながら記載する。
【0018】
図3は、製造工程302a~304cのシーケンスを含む例示の製造システム300を示す。製造工程302a~304cは、概して2つのカテゴリに分類される。第1のカテゴリは、製造中のワークピース(例えばウェーハ)に変更を加える加工工程302a~cを含む。第2のカテゴリは、加工工程302a~cのうちの1つの結果を測定する測定工程304a~cを含む。例として、測定工程は、前の加工工程の間に変化した測定値(例えばワークピースの寸法または物理的性質)を記録することができる。システムは、交互に配列された同数の加工工程および測定工程302a~304cを含む。ただし、必ずしもこの通りであるとは限らない。他のシステムは、2つの測定工程の間に2つ以上の加工工程を含むことができる。簡潔にするために、システム300は、3つの加工工程302a~cとともに示されている。しかしながら、本開示の実装は、より多くの数の加工工程および測定工程を含む複雑な製造システムにも応用可能である。
【0019】
各測定工程304a~cは、測定工程304a~cにおいて得られた値を時系列として記憶する対応するデータストレージ306a~cに接続されている。各測定工程304a~cのためのデータストレージ306a~cは、以下でさらに詳細に説明されるように、データストレージ306a~cに記憶された時系列の欠測データを補う予測器308a~cに接続されている。各予測器308a~cは、予測器308a~cにより生成された値を記憶する対応する予測ストレージ310a~cに接続されている。
図3は、個々の測定工程304a~cに対する関係を示すために、データストレージ306a~c、予測器308a~c、および予測ストレージ310a~cを別々の存在として示す。しかしながら、一部の実装において、データストレージ306a~cおよび予測ストレージ310a~cはすべて
図2のストレージモジュール202に含まれ、予測器308a~cはすべて
図2の訓練および予測モジュール204の一部である。例として、データストレージ306a~cおよび予測ストレージ310a~cはすべて、
図1のバックエンドシステム108内の1つ以上のサーバ114上に格納可能である。
【0020】
図4は、当初の時点における3つの時系列402、404、406の略図である。例として、時系列402、404、406は、
図3内の測定工程304a cから得られる記録済みのデータを含む。各時系列402、404、406は、例えば各測定工程304a~cについて個々のデータストレージ306a~cなどに記憶された、複数の離散データ点を含む。各時系列402、404、406は、記録済みのデータ点を複数含むが、時系列402、404、406は、特定の時間枠(例えばt=5から37)にわたるウィンドウWに関連して画定された空所A1、A2、B1、B2、C1も含む。
図6Aおよび
図6Bを参照して記載されるように、ウィンドウWは、サイズまたは位置が変化することで、時系列データの中の異なる時間枠にわたることができる。一部のケースでは、時系列402、404、406内の空所は、機器または通信の停止に起因する。空所A1、B1については、空所A1、B1の前後両方のデータ点が利用可能である。例として、センサが測定値を得られなかったこと、またはセンサが得た測定値が通信システムにおける乱れによりデータストレージ306a、306bに保存されなかったことが考えられる。
【0021】
製造用途では、データは、ワークピースが個々の測定工程304a~cを通るときに、測定工程304a~cから得られる。ロット内の第1のワークピースは、既に3つの測定工程304a~cをすべてクリアしていてもよく、第1のワークピースに対応するデータが、3つの時系列402、404、406すべてにおいて利用可能である。これに対し、第2のワークピースは、考察中の時点では第1の測定工程304aのみをクリアしていてもよい。このケースでは、時系列404、406は第2のワークピースに対応するデータをまだ含まない。言い換えれば、データの獲得は同時に発生しなくてもよい。例として、
図4内の空所A2、B2、C1は、データ獲得が同時に発生しないことに起因してもよい。
【0022】
予測器308a~308cは、ベイズ統計を使用して、時系列402、404、406内の空所A1、A2、B1、B2、C1の欠測値のインピュテーションを行う。システム300が初期化されたとき、予測ストレージ310a~cは、空所A1、A2、B1、B2、C1内の値に対する以前の予測を有しない。このケースでは、予測器308a~308cは初めに、履歴データと、データストレージ306a~c内の利用可能なデータとを使用して、各時系列内の第1のデータ点と最終のデータ点との間にある空所A1およびB1の欠測値を補間する。時系列の最終の値に続く空所A2、B2、C1は、同じモデルを使用して予測される。例として、空所A1およびB1の欠測値は、事後分布p(x|y)を計算することにより補間可能であり、xは欠測値のセットであり、yは観測値のセットである。この手法は、システムの状態空間モデルなどの確率的時系列モデルを要求するが、欠測値を補間するための特殊なアルゴリズムは要求しない。
【0023】
予測器308a~308cまたは訓練および予測モジュール204は、ラグ付きデータに対して、単一のモデルのみを使用して欠測データのインピュテーションを行う。言い換えれば、予測器308a~308cは、時系列内の欠測値を補間するために専用の方法を要求しない。単一のモデル(例えば状態空間モデル)は、時系列データを表現し、予測と欠測値の補間との両方に使用可能である。すべての時系列モデルは、ベイズモデルとして数学的に解釈可能であるため、欠測値を補間し、不確実性を表現するために使用可能である。訓練および予測モジュールは、ガウス過程モデル、状態空間モデル、ARIMAモデル、再帰型ニューラルネットワークモデル、およびそれらの変形など、任意の時系列予測モデルを使用することができる。欠測値は、その不確実性値とともに、予測ストレージ310a~310cに予測値として記憶される。予測値は、統計として、密度関数として、または確率的サンプルとして記憶可能である。
【0024】
図5は、
図2の訓練および予測モジュール204ならびに
図3内の予測器308a~cにより実行可能な例示のプロセス500を示す。502にて訓練および予測モジュール204は、予測のための目的関数および勾配を計算する。プロセス500において、時間および演算リソースを節約するために、目的関数の勾配はシステム200の初期化時にのみ計算される。訓練および予測モジュール204は、時系列に対して相対的にウィンドウW(
図4)の位置が変化したかどうかを区別する。変化していれば、スライディングウィンドウの更新された位置が504にて得られ、ウィンドウWの位置は、506にてストレージモジュール202にデータをリクエストするために使用される。ウィンドウWの位置が変化していなければ、訓練および予測モジュール204は、ウィンドウWに関する新たなデータが利用可能であるかどうかを、データのリクエストをストレージモジュール202に送信すること(図示せず)により判断する。新たなデータが実際に利用可能であれば、ウィンドウの位置が変化した場合と同様に、506にてストレージモジュール202にデータがリクエストされる。ストレージモジュール202からデータを取得した後、読み込まれたデータを使用して、508ではモデルパラメータの最適化、510では予測の演算が、それぞれ行われる。510にて得られた予測データは、512にて予測ストレージでの記憶のためにストレージモジュール202に送信される。
【0025】
概して、任意の適切な最適化手法を応用可能である。ベイズ統計の原理に従い、例として、マルコフ連鎖モンテカルロ(MCMC:Markov chain Monte Carlo)および変分推論などのアルゴリズムを、モデルパラメータを計算するために使用可能である。マルコフ連鎖モンテカルロ法は、直接計算できないパラメータの事後分布を、ランダムサンプルを使用して近似する。例として、この方法は、パラメータのもっともらしい開始値により始まる。提案分布から生成されたランダムノイズをもっともらしい開始値に加算することにより、新たな提案が生成される。もっともらしい開始値および新たな提案の両方について事後分布が計算される。新たな提案がより高い事後値をもたらせば、新たな提案と引き換えに開始値が破棄される。新たな提案がより低い値をもたらせば、両方の事後値の高さに相当する確率を使用して、新たな提案が受容されるかまたは棄却されるかが決定される。いずれのケースにおいても、新たな提案が受容されれば、新たな提案が開始点となり、プロセスが繰り返される。新たな提案が棄却された場合は、前の開始点からプロセスが再び開始される。MCMC法は、このプロセスを繰り返すことにより、比較的少数のサンプルを使用して、パラメータの実際の分布に近いサンプルの分布を生成することができる。
【0026】
予測の演算もベイズ統計の原理に従い、例として、学習されたモデルパラメータの分布を使用して予測分布を計算する。
【0027】
図6Aおよび
図6Bは、
図5に示された2つのシナリオに対応する時系列の例を示す。対応する構成要素を示すために、
図4におけるのと同じ参照番号が使用されている。時間的に進行した類似の構成要素は、参照番号の後に一重引用符および二重引用符を使用することにより示されている。
【0028】
図6Aは、
図4に示された当初の時間からいくらかの時間が経過した後の時系列402’、404’、406’を示す。ただし、ウィンドウWの位置は
図4におけるのと同じである。例として、以前は時系列402内の空所A2であったものが、時系列402’では記録済みのデータを用いて埋められている。同様に、時系列404、406内の空所B2、C1の一部を、時系列404’、406’内の新たに利用可能なデータが埋めている。しかしながら、一部の空所A1、B1は、時間が進行しても同じままである。同じままである空所A1、B1に対しては、予測ストレージに以前保存された予測(補間された値)を再度使用して、欠測データのインピュテーションを行うことができる。変化している空所B2、C1に対しては、訓練および予測モジュール204が、新たに追加されたデータをストレージモジュール202から読み込み、モデルを訓練し、時系列404’、406’内の空所B2’、C1’のための新たな予測値を生成する(
図5内の506~510参照)。当初の工程におけるのとは異なり、目的関数およびその勾配は再度計算されない。代わりに、さらなる訓練および予測のために、勾配関数に対する入力として最新のデータおよび予測結果が供給される。
【0029】
図6Bは、
図4内のウィンドウWとは異なる位置にある、シフトしたウィンドウW’を伴う時系列402’、404’、406’を示す。時系列402’、404’、406’内の記録済みのデータは、
図6Aにおけるものと同じであるが、ウィンドウW’の新たな位置により、インピュテーションが行われる必要のあるデータの領域が少なくとも一部、変化している。例として、
図4および
図6Aの空所B1は、新たなウィンドウW’にはもはや入らず、空所B1”、C1”は、
図6Aにおけるそれらの等価物よりもサイズが大きい。一方、例えば時系列402’内の空所A1などの一部の空所は、同じままである。
図4から直接
図6Bに進行すると、
図6Aについて記載されたのと同様の、欠測データのインピュテーションを行うためのプロセス。
図6Aから
図6Bに進行すると、時系列402’、404’、406’自体に、利用可能な新たな記録済みのデータはない。したがって、訓練および予測モジュール204は、同じデータを使用してさらなる予測を生成し、空所B1”、C1”の値のインピュテーションを行う。
【0030】
図6Aおよび
図6B内のウィンドウW、W’は同じサイズであるが、ウィンドウのサイズは、反復ごとに変化する場合もある。ウィンドウのサイズが可変である実装では、勾配関数も可変とすることができる。このケースでは、勾配関数を再計算する必要はない。そうではなく、ウィンドウのサイズが増大するときに勾配関数を追加で演算すれば足りる。
【0031】
このように、訓練および予測モジュールは、過去の訓練結果を引き継ぎ、当該の結果を少量の新たなデータを用いて補う。訓練とデータの読み込みとは並行して発生するため、各ウィンドウ位置のための訓練に必要な計算時間を短縮可能である。このようにして、時系列の予測に要求される演算時間を短縮可能である。さらに、データが高頻度で記憶されるため、十分に訓練されたモデルが、最新のデータを使用して迅速に予測結果をもたらすことができる。
【0032】
図7は、
図2のストレージモジュール202により実行可能な例示のプロセス700を示す。702にてストレージモジュール202は、訓練および予測モジュール204またはモデルメンテナンスモジュール206からデータのリクエストを受信する(
図2)。例としてリクエストは、プロセス500の506に対応することができる。ストレージモジュール202は初めに、リクエストされたデータおよびウィンドウに対応する記録済みのデータがデータストレージ(例えば
図3内の306a~306c)に記憶されているかどうかの問い合わせを行う。記憶されていれば、704にてデータストレージから記録済みのデータが読み込まれる。言い換えれば、以前は予測されたのみであった値について記録済みのデータがデータストレージ内で利用可能であれば、ストレージモジュール202は、予測された値ではなく記録済みの値を読み込む。記録済みのデータがデータストレージから読み込まれた後、時系列が空所を含む場合、706にてストレージモジュール202は、欠測データに対する値が予測ストレージ(例えば
図3内の310a~310c)に保存されているかどうかの問い合わせを行う。予測ストレージは以前に予測された値のみを含むため、システムの初期化後、特定の時系列についてデータおよび予測データの完全なセットが利用可能でない場合がある。システムは、そのような利用可能でない値について、708にて不明フラグを返し、これらは所定の高バリアンス値として処理され、別の値を予測するための入力として使用される。ストレージモジュール202は、データストレージおよび予測ストレージの両方からデータを読み込むので、欠測時系列データが理由で訓練および予測モジュール204が動作できない可能性は低下する。
【0033】
前述のように、予測値は、統計として、密度関数として、または確率的サンプルとして記憶可能であり、これにより、予測値の不確実性に関する情報を維持できる。これに対し、点推定は、不確実性の情報を含まない。一部の複雑な予測分布は、単一の密度関数または少数の統計では表現できない。分布が複雑すぎる場合は、サンプルサイズを増大させた確率的サンプル、または密度の混合などのより豊かな表現法も使用可能である。予測分布のデータサイズを縮小するために、確率的サンプルが予測値の表現法として使用されてもよく、読み込まれるサンプル1つがランダムに選択されてもよい。
【0034】
図8A、
図9A、および
図10Aは、最も新しいデータおよび訓練結果に基づく予測性能を継続的に評価するために
図2のモデルメンテナンスモジュール206により実行可能な例示のプロセスを示す。
【0035】
図8Aは、訓練および予測モジュール204により使用される現在の予測モデルの性能を評価する例示のプロセス800を示す。802にてモデルメンテナンスモジュール206は、評価のリクエストを受信する。リクエストは、ユーザ(例えば
図1内のユーザ102)によりトリガ可能であり、またはシステムが所定のスケジュールに従ってリクエストをトリガすることができる。いずれのケースでも、モデルメンテナンスモジュール206は、訓練および予測モジュール204と並行して動作する。804にて、最新の利用可能なデータがストレージモジュール202から読み込まれる。最新の利用可能なデータは、予測ストレージに記憶された値により補われ特定のウィンドウWについてデータストレージ内で利用可能なすべてのデータを含む。読み込まれたデータに基づき、モデルメンテナンスモジュール206は、読み込まれたデータの周辺尤度p(X)が取扱い可能であるかどうかを判断する。取扱い可能である場合、806にて周辺尤度p(X)が演算される。取扱い可能でない場合、808にて条件付き密度q(X)が計算される。いずれのケースでも、810にてレポートが返される。多くのケースにおいて、各時系列は異なるスケールを有するため、複数の時系列の予測精度のアセスメントを定量的に行うのは難しい。そのようなスケールの差は、周辺尤度を使用して予測性能を評価することにより自然に解決可能である。
【0036】
図8Bは、810にて生成されたレポートの例示のグラフ表現812である。グラフ812は、9日間の期間にわたる周辺尤度p(X)814を示す。9日間の期間のうち最終の3日間に周辺尤度p(X)が著しく低下しており、これは、そのタイムスパンにモデルの性能が劣化していることを示す。これに対応して、ユーザは必要に応じ、モデルに変更を加えること、またはハイパーパラメータを調節することができる。自動性能調節メカニズムが、ユーザ入力に基づき、または所定のスケジュールに従い、ハイパーパラメータを調節することもできる。
【0037】
図9Aは、各時系列内の特定のデータ点の予測精度を判断する例示のプロセス900を示す。902にてモデルメンテナンスモジュール206は、プロセス800におけるのと同様にリクエストを受信する。904にてモデルメンテナンスモジュール206は、プロセス800におけるのと同様に最新の利用可能なデータを読み込む。906および908にてモデルメンテナンスモジュール206は、訓練および予測モジュール204が、後に記録された実際のデータ点に近い値を予測したかどうか、すなわち予測精度を判断するために、データ系列におけるnの点それぞれについて条件付き確率P(x
i|X
j≠i)を演算する。P(x
i|X
j≠i)を得るために、観測データおよび未観測データの両方が考慮に入れられる。未観測データは、分布としてストレージモジュール202に記憶される。数学的には、そのような値のP(x
i|X
j≠i)は、記憶された分布を積分(平均)することにより計算可能である。特定のウィンドウ内の値のみが評価される場合、モデルメンテナンスモジュール206は、ウィンドウ内のnの点それぞれについて条件付き確率P(x
i|X
j≠i)を演算する。演算が完了すると、910にてモデルメンテナンスモジュール206は、レポートを生成する。
【0038】
図9Bは、910にて生成されたレポートの例示のグラフ表現812である。グラフ910は、時系列の個別のデータ点が丸で記された3つの時系列を含む。データ点には、各データ点における条件付き確率P(x
i|X
j≠i)を表現する線が重ねられている。条件付き確率P(x
i|X
j≠i)の値が小さいほど、訓練および予測モジュール204によって生成された予測の精度は低くなる。例としてモデルメンテナンスモジュール206は、条件付き確率P(x
i|X
j≠i)の値に基づき、予測が難しかったデータ点を示す。これは、そのデータ点が予測分布の外れ値であったことを意味する。ユーザは、このような示唆に基づき、データおよびモデルを検討することができる。予測システム200自体は、条件付き確率の値が低いデータ点を削除するなどのデータ自体に対する操作を実行しない。
【0039】
図10Aは、最も低いコストでパラメータ(例えば最適化ステップサイズ)を自動的に発見する例示のプロセス1000を示す。1002にてモデルメンテナンスモジュール206は、プロセス800、900におけるのと同様にリクエストを受信する。1004にて、リクエストに基づきパラメータセットが決定される。例として、パラメータが最適化ステップサイズであれば、パラメータセットは異なる一連のステップサイズを含むことができる。1006にて、条件付き密度q(X)がそれぞれのパラメータについて計算される。q(X)がそれぞれのパラメータについて計算された後、1008にてレポートが生成される。
【0040】
図10Bは、1008にて生成されたレポートの例示のグラフ表現1010である。グラフ1010の横軸は、パラメータセット、すなわち最適化ステップサイズを含む。曲線1012は、1006にて各ステップサイズについて計算されたq(X)に対応し、モデルの性能の低下を表現する。曲線1014は、演算コストを表現し、これはステップサイズとともに増加する。曲線1016は、-q(X)および演算コストに基づく総コスト関数である。例として、訓練および予測モジュール204が点線1018により示される6のステップサイズを現在使用している場合、モデルメンテナンスモジュール206は、総コスト関数1016の最低値に対応する1020のステップサイズを推奨する。例としてモデルメンテナンスモジュール206は、推奨をユーザに表示することができる。あるいは、またはさらに、モデルメンテナンスモジュールの推奨に基づき1つ以上のパラメータを自動的に更新するように訓練および予測モジュール204を構成可能である。
【0041】
図11および
図12はそれぞれ、本開示の予測システムを組み込んだ製造システム1100、1200の例を示す。例として製造システム1100、1200は、半導体ウェーハを製作するために使用可能である。ウェーハ製作は、成膜、除去、パターン形成、および電気的性質の調節という4つのカテゴリに大別される加工工程を含む。これらの加工工程は、ウェーハ上の特定の領域に対して実行され、数百回繰り返されて、完成した回路が形成される。ウェーハ製作は、加工工程に加えて、加工工程の合間に挿入される測定工程を含む。各測定工程にて得られたデータは、インライン品質管理に使用可能である。例として、データは、所定の上限および下限と比較可能である。この限界から測定データが外れていれば、そのウェーハを不良とみなすことができる。ウェーハ製作は、一般的に、テストパターンのシーケンスに従ってウェーハ上の回路に機能不良がないかどうかをテストするウェーハテスト工程で終了する。ウェーハテストの後、ウェーハは、ダイ準備などのさらなる製作工程に進むことができる。
【0042】
半導体製造において収集されるデータは、次の特性を有する。複数のプロセスからのセンサデータおよび品質管理データが、多変量データを構成する。製造機器の内部状態は、時間とともに変化し、時系列データに適する。同様に、ウェーハ自体の状態は加工時間に依存する。製作プロセスは順次的であるため、データの利用可能性はシーケンス中のウェーハの進行に依存し、すなわちデータは同時に発生しない。最後に、品質管理データは通常、サブサンプリングされ、つまりあらゆるウェーハについてすべての品質管理データが利用可能というわけではない。
【0043】
図11および
図12において、加工工程は、加工工程1102、1202により表現され、ウェーハテストは、最終テスト1104c、1212により表現されている。測定工程1104、1204からのデータは、上述したインライン品質データ、または加工機器の状態を示すセンサデータを含むことができる。
図11のシステム1100において、最終テスト1104cからのデータは、テスト工程1104a、1104bからのデータと同じ形で処理される。言い換えれば、最終テスト1104cからのデータは、いくつかの時系列のうちの1つとして予測システム200により処理される。本開示による予測システムは、測定工程1104a、1104bからの時系列データとともに最終テスト1104cからのデータを表現し、個々の時系列におけるデータ間の相関を捕捉することができる。
【0044】
もう1つの選択肢として、
図12は、本開示に従いモデリングされた時系列が、別の最終テスト1212の結果を予測する別のテスト予測器1214(例えば機械学習モデル)に入力可能であることを示す。本例では、アプリケーションモジュール1216が、最終テスト1212において測定されたデータの結果を、テスト予測器1214により生成されたデータと比較することができる。
【0045】
システム1100、1200のどちらにおいても、アプリケーションモジュール1114、1216は、次の追加機能のうちの1つ以上を含むことができる。アプリケーションモジュール1114、1216は、予測を視覚化し、定量的なリスクアセスメントを提供する。アプリケーションモジュール1114、1216は、測定された最終テストデータと予測された最終テストデータとを比較して予測精度を監視することもできる。アプリケーションモジュール1114、1216は、例えばモデル精度が著しく劣化した場合または予測が所定の限界から逸脱した場合など、所定のシナリオに基づきユーザに警告するアラームマネジメントシステムも含むことができる。
【0046】
記載された技術は、ウェーハ製作およびその他製造システムとの関連で、製造機器または製造された部品の異常を早期段階で検出することができる。例として、異常の検出は、モデルメンテナンスモジュールを使用することにより実現可能であり、モデルメンテナンスモジュールは、予測が難しかったデータ点を示すことができる。そのようなデータ点を使用して、異常を検出可能である。同様に、予測データを使用して、製造機器のメンテナンスを予測可能である。例として、機器の出力が経時的に変化することが既知であれば、時系列予測を使用して機器の将来の状態を推論可能である。機器の状態の大きな変化が予測されれば、出力パラメータを許容範囲に戻すために、早期メンテナンスなどの処置を講じることが可能である。例として、特定の機械がエッチングまたは機械加工の動作を実行してもよく、その測定が動作後に行われる。特定の時点にて測定値が許容範囲から外れるであろうことを時系列予測が示せば、実際の測定値が許容できない点に到達する前に、機械の運転パラメータが(例えばメンテナンス処置により)調整されてもよい。最後に、この技術は、バーチャルメトロロジーのために、つまりコストのかかるウェーハの物理的測定の代わりに、使用可能である。
【0047】
前述した実装のいくつかは、製造システムに関するものであるが、本開示において記載された技術は、他の状況にも応用可能である。
【0048】
例として、自律型ロボットおよび自律走行車は、複数のタイプのセンサを備え、そのアクチュエータを、例えば障害物との衝突を回避するために、高周波センサデータに基づき制御する。そのような多数のセンサがあることで、マルチモーダルセンサには、入力データを様々なタイミングで受信する傾向があると考えられる。さらに、通信条件が原因でデータの一部が喪失されることもある。自律型ロボットまたは自律走行車のアクティビティを監視するためには、その予測機能が適切に作動しているかどうかを定量的に評価する必要がある。これは、各センサが異なるスケールおよび/または周波数を有することが理由で難しいこともある。本開示において記載された技術は、遅延したデータを処理し、欠測データを推論することができる。予測システムにおいて使用される並列処理は、迅速なデータ獲得および予測を可能にする。モデルメンテナンスモジュールは、全体的な予測性能を定量化し、処理が難しいデータを生成する個別のセンサを特定することができる。
【0049】
この技術は、自動取引にも応用可能である。自動取引は、高速な取引スピードと、複数の市場からのデータに基づく高い予想精度とを要求する。そのようなシステムは、限られた時間内に多数の売買を処理しなければならない。異なる市場からのデータは、時間粒度が異なる可能性が高い。利益が減少すると、予測モデルにおいてその原因を特定する必要がある。本開示において記載された技術は、演算コストの削減が可能であるため、大量のデータに関する予測を迅速に実行することができる。欠測データの推論と、未観測の遅延した値の予測とが可能である。モデルメンテナンスモジュールは、データの予測が難しい特定の市場を特定し、予測性能を向上させるためにモデルを自動的に調節することができる。
【0050】
概して、本開示において記載された技術は、同時に発生しない値および欠測値を含む多変量時系列を処理するための一貫したフレームワークを提供する。異なるプロセスからの多変量時系列データを使用することで、各プロセスを独立して分析するよりも高い予測性能につながる。データ獲得、学習、および予測の並列ルーチンは、効率的な演算につながる。最後に、予測システムは、予測モデルを正確に監視し、改善することができる。
【0051】
本明細書に記載された実装およびすべての機能動作は、デジタル電子回路構成において、または本明細書で開示された構造およびその構造上の等価物を含むコンピュータソフトウェア、ファームウェア、もしくはハードウェアにおいて、またはそれらのうちの1つ以上の組み合わせにおいて実現され得る。実装は、1つ以上のコンピュータプログラム製品として、すなわちデータ処理装置により実行されまたはデータ処理装置の動作を制御するようコンピュータ可読媒体上にエンコーディングされたコンピュータプログラム命令の1つ以上のモジュールとして実現されてもよい。コンピュータ可読媒体は、機械可読ストレージデバイス、機械可読ストレージ基板、メモリデバイス、機械可読伝播信号をもたらす物質の構成、またはそれらのうちの1つ以上の組み合わせとされてもよい。「コンピューティングシステム」という用語は、データを処理するすべての装置、デバイス、および機械を含み、例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む。装置は、ハードウェアに加えて、対象のコンピュータプログラムの実行環境を作り出すコード(例えばプロセッサファームウェア、プロトコルスタック、データベースマネジメントシステム、オペレーティングシステム、またはそれらのうち1つ以上の任意の適切な組み合わせなどを構成するコード)を含んでもよい。伝播信号とは、適切な受信機装置に送信される情報をエンコーディングするために生成される人工的に生成された信号(例えば機械生成された電気信号、光信号、または電磁信号)である。
【0052】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイル型またはインタープリタ型言語を含む任意の適切な形態のプログラミング言語で書かれてもよく、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境での使用に適した他のユニットとしてを含め、任意の適切な形態で展開されてもよい。コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応するとは限らない。プログラムは、他のプログラムまたはデータを保持するファイルの一部(例えばマークアップ言語ドキュメントに格納される1つ以上のスクリプト)、対象のプログラム専用の単一ファイル、または複数の連携ファイル(例えば1つ以上のモジュール、サブプログラム、またはコードの一部を格納する複数ファイル)に格納されてもよい。コンピュータプログラムは、1つのコンピュータ上で実行されるように、または1つの場所に位置するかもしくは複数の場所に分散し通信ネットワークにより相互接続された複数のコンピュータ上で実行されるように、展開されてもよい。
【0053】
本明細書に記載されたプロセスおよび論理フローは、入力データに作用し出力を生成することにより機能を実行する1つ以上のコンピュータプログラムを実行する、1つ以上のプログラマブルプロセッサにより実行されてもよい。プロセスおよび論理フローは、専用論理回路構成(例えばFPGA(field programmable gate array:フィールドプログラマブルゲートアレイ)またはASIC(application specific integrated circuit:特定用途向け集積回路))によっても実行でき、装置は該専用論理回路構成としても実装できる。
【0054】
コンピュータプログラムの実行に適したプロセッサには、例として、汎用および専用両方のマイクロプロセッサ、ならびに任意の適切な種類のデジタルコンピュータの任意の1つ以上のプロセッサが含まれる。一般に、プロセッサは、読み取り専用メモリもしくはランダムアクセスメモリまたは両方から命令およびデータを受信する。コンピュータの構成要素は、命令を実行するプロセッサならびに命令およびデータを記憶する1つ以上のメモリデバイスを含むことができる。一般に、コンピュータはさらに、データを記憶する1つ以上の大容量ストレージデバイス(例えば磁気、光磁気ディスク、もしくは光ディスク)を含むか、またはそれからデータを受信するよう、もしくはそれにデータを転送するよう動作可能に結合されるか、またはその両方である。なお、コンピュータがそのようなデバイスを有することは要求されない。さらにコンピュータは、別のデバイス(例えばモバイル電話、携帯情報端末(PDA)、モバイルオーディオプレーヤ、グローバルポジショニングシステム(GPS:Global Positioning System)受信機)に内蔵されてもよい。コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体には、あらゆる形態の不揮発性メモリ、媒体、およびメモリデバイスが含まれ、例として、半導体メモリデバイス(例えばEPROM、EEPROM、およびフラッシュメモリデバイス)、磁気ディスク(例えば内蔵ハードディスクまたはリムーバブルディスク)、光磁気ディスク、ならびにCD ROMおよびDVD-ROMディスクが含まれる。プロセッサおよびメモリは、専用論理回路構成により補完されてもよく、またはそれに組み込まれてもよい。
【0055】
ユーザとの相互作用を提供するために、情報をユーザに表示するディスプレイデバイス(例えばCRT(cathode ray tube:陰極線管)、LCD(liquid crystal display:液晶ディスプレイ)モニタ)、ならびにユーザがコンピュータに入力を提供できるキーボードおよびポインティングデバイス(例えばマウス、トラックボール、タッチパッド)を有するコンピュータ上で各実装が実現されてもよい。他の種類のデバイスが、同じくユーザとの相互作用を提供するために使用されてもよい。例として、ユーザに提供されるフィードバックは、任意の適切な形態の感覚フィードバック(例えば視覚フィードバック、聴覚フィードバック、触覚フィードバック)であってもよく、ユーザからの入力は、音響、音声、または触覚入力を含め、任意の適切な形態で受信されてもよい。
【0056】
実装は、バックエンドコンポーネントを含むコンピューティングシステム(例えばデータサーバとして)、ミドルウェアコンポーネントを含むコンピューティングシステム(例えばアプリケーションサーバ)、および/またはフロントエンドコンポーネントを含むコンピューティングシステム(例えばユーザが実装と相互作用するのに用いることができるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータ)、またはそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、もしくはフロントエンドコンポーネント1つ以上の任意の適切な組み合わせにおいて実現されてもよい。システムのコンポーネントは、任意の適切な形態または媒体のデジタルデータ通信(例えば通信ネットワーク)により相互接続されてもよい。通信ネットワークの例には、ローカルエリアネットワーク(「LAN」)、および例えばインターネットなどのワイドエリアネットワーク(「WAN」)が含まれる。
【0057】
コンピューティングシステムは、クライアントおよびサーバを含んでもよい。クライアントおよびサーバは、一般に、互いに遠隔にあり、典型的には通信ネットワークを介して相互作用する。クライアントとサーバとの関係は、個々のコンピュータ上で実行され相互にクライアント-サーバ関係を有するコンピュータプログラムにより生じる。
【0058】
本明細書は多数の詳述を含むが、これらは、本開示の範囲または特許請求の範囲に対する限定として解釈されるべきではなく、むしろ特定の実装に特有の特徴の記載として解釈されるべきである。別々の実装との関連で本明細書に記載されている特定の特徴は、単一の実装に組み合わせても実装可能である。逆に、単一の実装との関連で記載されている様々な特徴が、複数の実装において別々に実装されることも、または任意の適切な組み合わせの構成要素において実装されることも可能である。さらに、各特徴は、特定の組み合わせで動作するよう上述されていることもあり、当初そのように請求されていることさえもあるが、一部のケースでは、請求されている組み合わせの特徴1つ以上をその組み合わせから削除可能であり、請求されている組み合わせは、組み合わせの構成要素または組み合わせの構成要素の変形を対象とし得る。
【0059】
同じく、各動作は図面内に特定の順序で示されているが、これは、望ましい結果を達成するために、当該の動作が示されている特定の順序もしくは順番で実行されること、または示されているすべての動作が実行されることを要求するものと理解されてはならない。特定の状況では、マルチタスクおよび並列処理が有利なこともある。さらに、上述の実装における様々なシステムコンポーネントの分離は、すべての実装においてそのような分離を要求するものと理解されてはならず、当然のことながら、記載されているプログラムコンポーネントおよびシステムは、一般に、単一のソフトウェア製品に統合されても、または複数のソフトウェア製品にパッケージ化されてもよい。
【0060】
いくつかの実装が記載された。しかし、当然のことながら、本開示の意図および範囲から逸脱することなく様々な変更が加えられ得る。例として、工程が並べ替え、追加、または削除された、上記で示されたフローの様々な形態が使用されてもよい。したがって、他の実装は、添付の特許請求の範囲に記載の範囲内にある。
【外国語明細書】