IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アプライド マテリアルズ インコーポレイテッドの特許一覧

特許7556047マルチチャンバ半導体機器のための予測ウエハスケジューリング
<>
  • 特許-マルチチャンバ半導体機器のための予測ウエハスケジューリング 図1
  • 特許-マルチチャンバ半導体機器のための予測ウエハスケジューリング 図2
  • 特許-マルチチャンバ半導体機器のための予測ウエハスケジューリング 図3
  • 特許-マルチチャンバ半導体機器のための予測ウエハスケジューリング 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-13
(45)【発行日】2024-09-25
(54)【発明の名称】マルチチャンバ半導体機器のための予測ウエハスケジューリング
(51)【国際特許分類】
   H01L 21/02 20060101AFI20240917BHJP
   G05B 19/418 20060101ALI20240917BHJP
   H01L 21/677 20060101ALI20240917BHJP
【FI】
H01L21/02 Z
G05B19/418 Z
H01L21/68 A
【請求項の数】 19
(21)【出願番号】P 2022564191
(86)(22)【出願日】2021-05-21
(65)【公表番号】
(43)【公表日】2023-06-27
(86)【国際出願番号】 US2021033747
(87)【国際公開番号】W WO2021237147
(87)【国際公開日】2021-11-25
【審査請求日】2022-12-21
(31)【優先権主張番号】16/881,370
(32)【優先日】2020-05-22
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390040660
【氏名又は名称】アプライド マテリアルズ インコーポレイテッド
【氏名又は名称原語表記】APPLIED MATERIALS,INCORPORATED
【住所又は居所原語表記】3050 Bowers Avenue Santa Clara CA 95054 U.S.A.
(74)【代理人】
【識別番号】110002077
【氏名又は名称】園田・小林弁理士法人
(72)【発明者】
【氏名】リー, エイドリアン
【審査官】安田 雅彦
(56)【参考文献】
【文献】韓国登録特許第10-0957401(KR,B1)
【文献】特開2013-168498(JP,A)
【文献】国際公開第2019/246588(WO,A1)
【文献】特開2000-099111(JP,A)
【文献】特開2019-083309(JP,A)
【文献】特表2022-523870(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H01L 21/00 -21/48
H01L 21/66
H01L 21/67 -21/687
G05B 19/418
G06N 3/00 -3/126
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
処理デバイスによって製造ツールのリソースを決定することであって、前記リソースは第1のチャンバおよび第2のチャンバを含む、リソースを決定することと、
第1の製造タスクおよび第2の製造タスクを示すタスクデータにアクセスすることと、
前記第1のチャンバを使用して前記第1の製造タスクを実施する持続時間、および前記第2のチャンバを使用して前記第2の製造タスクを実施する持続時間を決定することと、
一連の処理において使用されるリソースおよび各リソースにおいて実施されるタスクの内容を規定するタスクデータを示す入力をモデル入力とし、リソースごとのタスクの持続時間を示す出力をモデル出力とする機械学習モデルを、前記第1の製造タスクを実施する前記持続時間および前記第2の製造タスクを実施する前記持続時間に基づいて、更新することと、
ウエハセットの処理について、前記処理デバイスによって、前記機械学習モデルを使用するコンピュータシミュレーションのセットを実施して、シミュレーション結果のセットを作成することであって、
前記ウエハセットに対する開始時間のセット、前記ウエハセットの各ウエハの処理において使用されるリソースおよび各リソースにおいて実施されるタスクの内容を規定するタスクデータを示すモデル入力、ならびに前記機械学習モデルを使用して、第1のコンピュータシミュレーションを実施し、前記ウエハセットの各ウエハを各リソースがいつ処理するかを示す第1のシミュレーション結果を得ることと、
前記ウエハセットのうちの少なくとも1つのウエハが、いずれか2つのタスク間において、既定の閾値を上回る持続時間にわたって待機状態であると検出することと、
前記少なくとも1つのウエハに対する異なる開始時間を含むように、前記開始時間のセットを修正することと、
修正された前記開始時間のセットを使用して第2のコンピュータシミュレーションを実施して、前記ウエハセットの各ウエハを各リソースがいつ処理するかを示す第2のシミュレーション結果を得ることと
を含む、シミュレーション結果のセットを作成することと、
1つまたは複数の最適化値に基づいて、前記シミュレーション結果のセットから1つのシミュレーション結果を選択することと、
前記処理デバイスによって、選択された前記1つのシミュレーション結果をデータストアに格納することとを含む、方法。
【請求項2】
前記製造ツールによって生成された時間データを分析することを更に含み、前記時間データが、前記タスクデータを考慮して複数のウエハが前記製造ツールによって処理されている間に生成される、請求項1に記載の方法。
【請求項3】
前記時間データが前記製造ツールに対して複数の時間を含み、前記複数の時間が、複数のウエハロード時間、前記第1のチャンバのウエハ処理時間、前記第2のチャンバのウエハ処理時間、および前記第1のチャンバと前記第2のチャンバとの間のウエハ移送時間を含む、請求項2に記載の方法。
【請求項4】
前記製造ツールと関連付けられたデータストアからの、前記製造ツールに対する時間データにアクセスすることと、
前記時間データを使用して、前記製造ツールをモデル化するように前記機械学習モデルを訓練することと、
前記機械学習モデルを前記製造ツールに格納することとを更に含む、請求項1に記載の方法。
【請求項5】
前記シミュレーション結果が、前記製造ツールの各チャンバに対するリソースベクトルを含む、リソースベクトルのセットを含み、前記リソースベクトルが、複数の時間値を含み、複数のウエハを処理するチャンバに対するタイムラインを表す、請求項1に記載の方法。
【請求項6】
ウエハ待機時間、チャンバ利用、またはツールスループットのうちの1つもしくは複数に基づいた、前記シミュレーション結果のセットに対する最適化値を含む、前記1つまたは複数の最適化値を計算することと、
前記シミュレーション結果のセットの各シミュレーション結果の間で、少なくとも1つの最適化値比較することと、
前記比較に基づいて、前記シミュレーション結果のセットから前記1つのシミュレーション結果を選択することとを更に含む、請求項1に記載の方法。
【請求項7】
前記タスクデータが、開始タスク、複数の中間タスク、および終了タスクを含むタスクのシーケンスを示し、前記最適化値が、前記中間タスクの特定のセットの間の前記ウエハ待機時間に対応する、請求項に記載の方法。
【請求項8】
前記中間タスクの前記特定のセットの間の前記ウエハ待機時間のばらつきが基準を下回るように、前記1つのシミュレーション結果を選択する、請求項7に記載の方法。
【請求項9】
前記製造ツールに対する前記シミュレーション結果を表すガントチャートの表示を提供することを更に含み、前記ガントチャートが、前記ウエハセットのうちの1つまたは複数のウエハに対する時間ブロックを表す前記第1のチャンバに対する横棒のセット、および前記ウエハセットのうちの1つまたは複数のウエハに対する時間ブロックを表す前記第2のチャンバに対する横棒のセットを含む、請求項1に記載の方法。
【請求項10】
前記製造ツールの前記リソースを決定することが、
前記製造ツールを分析して前記リソースのレイアウトを特定することと、
前記リソースそれぞれのタイプを決定することであって、前記第1のチャンバがウエハを改変する改変チャンバを含み、前記第2のチャンバが前記ウエハを移動させる移動チャンバを含む、タイプを決定することとを含む、請求項1に記載の方法。
【請求項11】
前記タスクデータが、ウエハを処理するレシピのシーケンスを含み、前記レシピのシーケンスが、前記第1のチャンバに対するレシピおよび前記第2のチャンバに対するレシピを含む、請求項1に記載の方法。
【請求項12】
メモリと、
前記メモリに通信可能に結合された処理デバイスとを備え、前記処理デバイスが、
製造ツールのリソースを決定し、前記リソースは第1のチャンバおよび第2のチャンバを含み、
第1の製造タスクおよび第2の製造タスクを示すタスクデータにアクセスし、
前記第1のチャンバを使用して前記第1の製造タスクを実施する持続時間、および前記第2のチャンバを使用して前記第2の製造タスクを実施する持続時間を決定し、
一連の処理において使用されるリソースおよび各リソースにおいて実施されるタスクの内容を規定するタスクデータを示す入力をモデル入力とし、リソースごとのタスクの持続時間を示す出力をモデル出力とする機械学習モデルを、前記第1の製造タスクを実施する前記持続時間および前記第2の製造タスクを実施する前記持続時間に基づいて、更新し、
ウエハセットの処理について、
前記ウエハセットに対する開始時間のセット、前記ウエハセットの各ウエハの処理において使用されるリソースおよび各リソースにおいて実施されるタスクの内容を規定するタスクデータを示すモデル入力、ならびに前記機械学習モデルを使用して、第1のコンピュータシミュレーションを実施し、前記ウエハセットの各ウエハを各リソースがいつ処理するかを示す第1のシミュレーション結果を得ることと、
前記ウエハセットのうちの少なくとも1つのウエハが、いずれか2つのタスク間において、既定の閾値を上回る持続時間にわたって待機状態であると検出することと、
前記少なくとも1つのウエハに対する異なる開始時間を含むように、前記開始時間のセットを修正することと、
修正された前記開始時間のセットを使用して第2のコンピュータシミュレーションを実施して、前記ウエハセットの各ウエハを各リソースがいつ処理するかを示す第2のシミュレーション結果を得ることと
を含む、前記機械学習モデルを使用するコンピュータシミュレーションのセットを実施して、シミュレーション結果のセットを作成し、
1つまたは複数の最適化値に基づいて、前記シミュレーション結果のセットから1つのシミュレーション結果を選択し、
選択された前記1つのシミュレーション結果をデータストアに格納する、システム。
【請求項13】
前記処理デバイスが更に、前記製造ツールによって生成された時間データを分析し、前記時間データが前記製造ツールに対して複数の時間を含み、前記複数の時間が、複数のウエハロード時間、前記第1のチャンバのウエハ処理時間、前記第2のチャンバのウエハ処理時間、および前記第1のチャンバと前記第2のチャンバとの間のウエハ移送時間を含む、請求項12に記載のシステム。
【請求項14】
前記シミュレーション結果が、前記製造ツールの各チャンバに対するリソースベクトルを含む、リソースベクトルのセットを含み、前記リソースベクトルが、複数の時間値を含み、複数のウエハを処理するチャンバに対するタイムラインを表す、請求項12に記載のシステム。
【請求項15】
前記タスクデータが、開始タスク、複数の中間タスク、および終了タスクを含むタスクのシーケンスを示す、請求項12に記載のシステム。
【請求項16】
実行されると処理デバイスに動作を実施させる命令を格納する、非一時的機械可読記憶媒体であって、前記動作が、
第1のチャンバおよび第2のチャンバを備える製造ツールと関連付けられたデータストアからの時間データにアクセスすることであって、前記時間データが、前記第1のチャンバを使用して製造タスクを実施する持続時間および前記第2のチャンバを使用して製造タスクを実施する持続時間を含む、時間データにアクセスすることと、
一連の処理において使用されるリソースおよび各リソースにおいて実施されるタスクの内容を規定するタスクデータを示す入力をモデル入力とし、リソースごとのタスクの持続時間を示す出力をモデル出力とする機械学習モデルを、前記製造ツールによって、前記時間データを使用して、前記製造ツールをモデル化するように訓練することと、
ウエハセットの処理について、前記製造ツールによって、前記機械学習モデルを使用するコンピュータシミュレーションのセットを実施して、シミュレーション結果のセットを作成することであって、
前記ウエハセットに対する開始時間のセット、前記ウエハセットの各ウエハの処理において使用されるリソースおよび各リソースにおいて実施されるタスクの内容を規定するタスクデータを示すモデル入力、ならびに前記機械学習モデルを使用して、第1のコンピュータシミュレーションを実施し、前記ウエハセットの各ウエハを各リソースがいつ処理するかを示す第1のシミュレーション結果を得ることと、
前記ウエハセットのうちの少なくとも1つのウエハが、いずれか2つのタスク間において、既定の閾値を上回る持続時間にわたって待機状態であると検出することと、
前記少なくとも1つのウエハに対する異なる開始時間を含むように、前記開始時間のセットを修正することと、
修正された前記開始時間のセットを使用して第2のコンピュータシミュレーションを実施して、前記ウエハセットの各ウエハを各リソースがいつ処理するかを示す第2のシミュレーション結果を得ることと
を含む、シミュレーション結果のセットを作成することと、
1つまたは複数の最適化値に基づいて、前記シミュレーション結果のセットから1つのシミュレーション結果を選択することと、
前記処理デバイスによって、前記製造ツールに対するスケジュールを含む選択された前記1つのシミュレーション結果をデータストアに格納することとを含む、非一時的機械可読記憶媒体。
【請求項17】
前記時間データが前記製造ツールに対して複数の時間を含み、前記複数の時間が、複数のウエハロード時間、前記第1のチャンバのウエハ処理時間、前記第2のチャンバのウエハ処理時間、および前記第1のチャンバと前記第2のチャンバとの間のウエハ移送時間を含む、請求項16に記載の非一時的機械可読記憶媒体。
【請求項18】
前記シミュレーション結果が、前記製造ツールの各チャンバに対するリソースベクトルを含む、リソースベクトルのセットを含み、前記リソースベクトルが、複数の時間値を含み、複数のウエハを処理するチャンバに対するタイムラインを表す、請求項16に記載の非一時的機械可読記憶媒体。
【請求項19】
前記動作が更に、前記製造ツールに対する前記シミュレーション結果を表すガントチャートの表示を提供することを含み、前記ガントチャートが、前記ウエハセットのうちの1つまたは複数のウエハに対する時間ブロックを表す前記第1のチャンバに対する横棒のセット、および前記ウエハセットのうちの1つまたは複数のウエハに対する時間ブロックを表す前記第2のチャンバに対する横棒のセットを含む、請求項16に記載の非一時的機械可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、予測モデリングに関し、より詳細には、製造リソースをスケジューリングするシミュレーションベースの最適化技法に関する。
【背景技術】
【0002】
製造は、人的労力、機械、またはそれらの組み合わせを含み得る、複数のステップを使用した製品の生産を伴う。製造ステップは、それらのステップがいつ、どこで、どのように実施されるかを決定し、製造される製品をもたらす設定と関連付けられることがある。プロセス技術者は、一般的に、製造ステップを実施するのに使用される製造リソースをスケジューリングし、スケジュールは、技術者による産業分野の経験および過去の実験に基づくものであることができる。
【発明の概要】
【0003】
以下、本開示のいくつかの態様の基本的な理解を提供するために、本開示の概要を簡単に示す。この概要は、広範囲にわたって本開示を概説するものではない。本開示の主要または重要な要素を特定しようとするものではなく、また本開示の特定の実現例における何らかの範囲または特許請求の範囲における何らかの範囲を詳細に線引きしようとするものでもない。単に、本開示のいくつかの概念を、以下に提示する更に詳細な説明の前置きとして、単純な形で提示することを目的とするものである。
【0004】
本開示の一態様では、方法は、処理デバイスによって、製造ツールのリソースを決定することであって、前記リソースは第1のチャンバおよび第2のチャンバを含む、リソースを決定することと、第1の製造タスクおよび第2の製造タスクを示すタスクデータにアクセスすることと、第1のチャンバを使用して第1の製造タスクを実施する持続時間および第2のチャンバを使用して第2の製造タスクを実施する持続時間を決定することと、第1の製造タスクを実施する持続時間および第2の製造タスクを実施する持続時間に基づいて、機械学習モデルを更新することと、処理デバイスによって、機械学習モデルおよびタスクデータを使用するコンピュータシミュレーションのセットを実施して、シミュレーション結果のセットを作成することと、処理デバイスによって、シミュレーション結果のセットの1つのシミュレーション結果をデータストアに格納することとを含む。
【0005】
本開示の別の態様では、システムは、メモリと、メモリに結合された処理デバイスとを含む。処理デバイスは、第1のチャンバおよび第2のチャンバを含む、製造ツールのリソースを決定し、第1の製造タスクおよび第2の製造タスクを示すタスクデータにアクセスし、第1のチャンバを使用して第1の製造タスクを実施する持続時間および第2のチャンバを使用して第2の製造タスクを実施する持続時間を決定し、第1の製造タスクを実施する持続時間および第2の製造タスクを実施する持続時間に基づいて、機械学習モデルを更新し、機械学習モデルおよびタスクデータを使用するコンピュータシミュレーションのセットを実施して、シミュレーション結果のセットを作成し、シミュレーション結果のセットの1つのシミュレーション結果をデータストアに格納するものである。
【0006】
本開示の一態様では、非一時的機械可読記憶媒体は命令を格納し、命令は、実行されると、機械学習モデルにアクセスして、ウエハのセットの処理を予測することと、ウエハのセットに対する開始時間のセットを使用して第1のコンピュータシミュレーションを実施することと、セットのうちの少なくとも1つのウエハが、既定の閾値を上回る持続時間にわたって待機状態であると検出することと、少なくとも1つのウエハに対する異なる開始時間を含むように開始時間のセットを修正することと、修正された開始時間のセットを使用して第2のコンピュータシミュレーションを実施することとを含む動作を、処理デバイスに実施させる。
【0007】
本開示は、添付図面の図に限定としてではなく例として例証される。
【図面の簡単な説明】
【0008】
図1】特定の実施形態による例示のシステムアーキテクチャを示すブロック図である。
図2】特定の実施形態による一例のコンピューティングデバイスを示す図である。
図3】特定の実施形態による、製造プロセスのシミュレーションベースの最適化を実施する一例の方法を示すフロー図である。
図4】特定の実施形態によるコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【0009】
製造プロセスは、複雑さを増し続けており、製造品を作成するために実施される多くのステップを伴う場合が多い。タスクは、単一のツールまたは1つもしくは複数のツールによって実施されることがある。各タスクは、タスクを完了するのにツールの1つまたは複数のリソースを要することがあり、製品のセットが同じリソースを使用しようとしている場合、リソースの競合が生じることがある。この競合に対処するため、ツールは、製品のうちの1つまたは複数がリソースを占有するようにスケジューリングすることがあり、またリソースが利用可能になるまで、残りの製品に順番待ちをさせることがある。製品を順番待ちさせることで、ツールのスループットが低減されることがあり、状況によっては製品の品質が低減されることがある。例えば、製造品は多くのタスクの結果であり得、タスクの間に製品が待機状態である時間のばらつきは、完成品のばらつきをもたらすことがある。これが生じる場合があるのは、タスク間のばらつきによって製品の性質が変更されることがあるためである。熱、湿分、質感、または他の性質の変化は、現在または今後のタスクに悪影響を及ぼすことがあり、また完成品の品質を低減させることがある。
【0010】
本開示の態様は、機械学習およびコンピュータシミュレーションを使用して、製造プロセスに対するリソーススケジューリングを最適化する技術を提供することによって、上述および他の欠点に対処する。一例では、技術は、一連の製品に対して複数のタスクを逐次または並行して実施することができる、製造ツール内に埋め込まれてもよい。製品は、半導体ウエハであってもよく、製造ツールは、半導体ウエハのうちの1つに対してタスクをそれぞれ実施することができる複数のチャンバを有してもよい。一例では、技術は、1つまたは複数の製品(例えば、ウエハ)をそれぞれ保持することができるチャンバのセットのレイアウトおよび能力を含んでもよい、製造ツールのリソースを決定する、コンピューティングデバイスが関与してもよい。技術は、製造ツールが1つまたは複数の製品に対して実施することができる製造タスクのシーケンスを示す、タスクデータにアクセスしてもよい。各タスクは、タスクを実施するためのレシピと関連付けられてもよく、製造ツールの特定のチャンバを使用してもよい。
【0011】
技術は、製造ツールが異なるリソースを使用して異なる製造タスクを実施するのにどれぐらい時間がかかるかを追跡してもよい。例えば、異なるリソースは、異なる製品容量、ロード時間、改変時間、洗浄時間、または前述の組み合わせを有することがある。技術は、追跡した時間に基づいて製造ツールの時間的態様をモデル化するように、機械学習モデルを訓練してもよい。技術は次いで、機械学習モデルおよびタスクデータを使用して、シミュレーション結果のセットを作成する、コンピュータシミュレーションのセットを実施してもよい。シミュレーション結果はそれぞれ、リソースが製品のセットに対してタスクを実施する順序を示す、製造ツールに対するスケジュールであってもよい。技術は次いで、シミュレーション結果に基づいて最適化値を計算し、最適化値に基づいてシミュレーション結果の1つを選択してもよい。最適化値は、1つまたは複数のタスクのセットに特異的であってもよく、製品待機時間(例えば、タスク間のウエハ待機時間)、リソース利用(例えば、チャンバ待機時間)、ツールのスループット、他の性能基準、または前述の組み合わせに基づいてもよい。
【0012】
本明細書に記載するシステムおよび方法は、製造プロセスで使用される1つまたは複数の製造ツールを向上させる技術を含む。特に、本開示の態様は、製造プロセス中の製品待機時間のばらつきを低減することによって、製造品の品質を向上させることができる。これは、製造品の一貫性を増加させることができる。技術はまた、製造ツールの、または製造ツールの特定のリソースの、利用および/またはスループットを増加させることができる。
【0013】
上記に参照した技術の様々な態様は、限定としてではなく例として本明細書で詳細に後述する。下記に提供する例は、製造ツールと通信可能に結合されたコンピューティングデバイスについて考察する。他の例では、コンピューティングデバイスは、製造ツールと通信可能に結合されなくてもよく、データストアからの製造ツールと関連付けられたデータにアクセスしてもよく、後でユーザまたはデバイスが製造ツールを構成するのに使用することができるデータを生成してもよい。
【0014】
図1は、特定の実施形態による、例示のシステムアーキテクチャ100を示すブロック図である。システムアーキテクチャ100は、1つもしくは複数の製品101を提供または生産することができる、製造プロセスを最適化するのに使用されてもよい。製品101は、使用または販売のためのものであってもよく、有形もしくは無形の物体、物品、サービス、他の製品、または前述の組み合わせであってもよい。有形の製品は、人間が触れるものであってもよく、物理的な製品、物品、要素、または他の物体(例えば、エッチング済みのウエハ、半導体デバイス、マイクロチップ、もしくは他の電子デバイス)を含んでもよい。無形の製品は、触れることなく人間が直接または間接的に知覚するものであってもよく、回路設計、デバイスレイアウト、製造レシピ、ツール構成、コンピュータプログラム、サービス、他の無形要素、または前述の組み合わせを含んでもよい。図1に示される例では、システムアーキテクチャ100は、製造ツール110と、1つまたは複数のコンピューティングデバイス120A~Zとを含んでもよい。
【0015】
製造ツール110は、製品101を生産する製造プロセスに寄与する任意のツールであってもよい。ツールは、機械、コンピューティングデバイス、コンピュータプログラム、他のデバイス、または前述の組み合わせであってもよい。製造ツール110は、コンピュータソフトウェア(例えば、プログラムコード)およびコンピュータハードウェア(例えば、集積回路)であってもよく、半導体デバイス作製に使用されてもよい。半導体デバイス作製は、半導体デバイスおよび集積回路(IC)の製造を伴ってもよい。製造ツール110は、フォトリソグラフィおよび化学処理ステップ(表面パッシベーション、熱酸化、平面拡散、および接合分離など)を含んでもよく、ステップの間に半導体材料(例えば、シリコンウエハ)で作られた製品上に電子回路が徐々に作成される、複数ステップシーケンスを実施してもよい。製造ツール110は、1つまたは複数のリソース115A~Zを使用して、製品101を処理してもよい。
【0016】
リソース115A~Zは製造ツール110の異なる部分であってもよく、それぞれ、製造ツール110の区分、範囲、セクション、領域、部分、または他の部分と同じもしくは同様であってもよい。一例では、リソース115A~Zはそれぞれ、製品101に対する1つまたは複数のタスクを実施するためのチャンバであってもよい。チャンバは、1つまたは複数の製品を保持してもよく、エンクロージャ、区画、コンテナ、開口部、容器、レセプタクル、ストレージユニット、ハウジング、または前述の組み合わせと同じもしくは同様であってもよい。リソース115A~Zは、製品を処理するのに使用することができる、1つまたは複数の異なるタイプのリソースを含んでもよい。製品を処理することは、製品が関与するアクションを実施することを伴ってもよく、製品をロードすること、製品を移送すること、製品を改変すること、他の動作、または前述の組み合わせの1つまたは複数の動作を含んでもよい。
【0017】
図1に示される例では、リソース115A~Cは、製品を製造ツール110内へ、または製造ツール110内で移動するように構成されてもよい。リソース115Aは、1つまたは複数の製品101を、製造ツール110の外部にある搬送デバイスから製造ツール110内へとロードする、ポートおよびロボットコンポーネントを含む外部移送リソースであってもよい。搬送デバイスは、1つまたは複数の製品のセットを製造ツールに、製造ツールから、または製造ツール間で搬送してもよい。搬送デバイスは、1つまたは複数の製品のセットを安全に格納するエンクロージャを有するポッドであってもよく、フロントオープニングユニファイドポッド(FOUP)と同じまたは同様であってもよい。リソース115B~Cは、製品を格納し、製品を製造ツール110内で移送することができる、内部移送リソースであってもよい。移送リソースは、製品のリソース内への移送、リソース外への移送、リソース間の移送、または前述の組み合わせを行ってもよい。内部および外部移送リソースは、ウエハを異なるチャンバ内およびチャンバ外へ移動させることができ、ロボットチャンバと呼ばれることがある、電気機械アクチュエータ(例えば、ロボット)を有するチャンバであってもよい。リソース115R~Zは、タスク122A~Zを考慮して製品101を改変することができる、製造ツール110の部分であってもよい。各リソースは、特定のタスク(例えば、タスク122A)または複数のタスクのセット(例えば、タスク122B~C)を実施するように構成されてもよい。
【0018】
タスク122A~Zは、製品101を生産するのに製造ツール110によって実施される製造ステップに対応してもよい。一例では、タスク122A~Zは、半導体作製タスクであってもよく、ウエハ洗浄(例えば、湿式洗浄)、フォトリソグラフィ、イオン注入、エッチング(例えば、湿式エッチング、乾式エッチング、原子層エッチング)、プラズマアッシング、熱処理(例えば、アニーリング、熱酸化)、蒸着(例えば、化学気相成長(CVD)、原子層蒸着(ALD)、物理気相成長(PVD))、分子線エピタキシー(MBE)、研磨(例えば、化学機械研磨)、測定(例えば、ウエハもしくはダイ測定)、試験(例えば、ウエハもしくはIC試験)、バックグラインド、ダイシング、ボンディング、封入、他のタスク、または前述の組み合わせを含んでもよい。タスク122A~Zはタスクデータ122と関連付けられてもよい。
【0019】
タスクデータ122は、タスク、および製品101を生産するのにタスクを実施することができるシーケンスを特定してもよい。タスクデータ122は、シーケンスデータ、シーケンスプログラム、レシピ、または他の用語で呼ばれることがある。タスクデータ122は、製品を設計するエンティティによって、製品を製造するエンティティに提供されてもよく、エンティティは同じまたは異なる企業体の一部であってもよい。製品を設計するエンティティは、開始タスク、1つまたは複数の中間タスク、および終了タスクを示してもよい。タスクのうちの1つまたは複数は、特定の製品に対して、またはセットの異なる製品(例えば、ポッド内の異なるウエハ)に対して、連続もしくは並行して実施されてもよい。
【0020】
タスクデータ122は、タスク122A~Zのうちの1つまたは複数に対する入力データ、出力データ、または前述の組み合わせを含んでもよい。タスクに対する入力データは、製造ステップに対する1つまたは複数の入力を定義する任意のデータを含んでもよい。例えば、入力データは、入力製品、コンフィギュレーション、設定、または他のデータの1つもしくは複数の属性を示してもよい。入力データは、パラメータデータ、設定データ、コンフィギュレーションデータ、他のデータ、または前述の組み合わせと同じもしくは同様であってもよい。入力データは、製造プロセスがどのように実施されるかを示す1つまたは複数の値(例えば、パラメータ値、設定値、コンフィギュレーション値)を含んでもよい。一例では、入力データは、時間(例えば、堆積時間、エッチング時間、酸化時間、埋込み時間、洗浄時間)、エネルギー(例えば、温度、電流、電圧、電磁周波数)、入力レート(例えば、ガス流量、ウエハスピン速度)、距離(例えば、基板とツールとの間の空間、特徴幅、高さ、奥行き)、圧力(例えば、パスカル、バール)、入力物質(例えば、前駆体、反応剤、希釈剤)、他の属性もしくは性質、または前述の組み合わせに対応する、1つまたは複数の値を含んでもよい。
【0021】
出力データは、製造ステップの予想出力を説明する任意のデータであってもよい。出力データは、製品101、副産物、他の出力、または前述の組み合わせの1つもしくは複数の属性を説明してもよい。出力データは、ステップが実施される前、最中、または後の実際の属性を示す値を含んでもよい。属性は、製品101の1つまたは複数の測定値に対応してもよい。測定値は、寸法(例えば、長さ、幅、高さ、奥行き、厚さ、半径、直径、面積、体積、サイズ)、材料の性質(例えば、反射率、放射率、吸収率、伝導率、密度、質感)、均一性(例えば、膜厚の均一性)、場所(例えば、相対もしくは絶対位置)、他の属性、または前述の組み合わせに関連してもよい。一例では、出力データは、N点計測(N-point metrology)の形態で製品101の属性を示してもよく、Nは、製品に対する基準測定値の数を示す(例えば、49点計測)。N点計測は、半導体製品の1つまたは複数の電子構成要素に対する重要な寸法(例えば、トランジスタもしくはビアの寸法)を提供してもよい。
【0022】
コンピューティングデバイス120A~Zは、製造ツール110と関連付けられた1つまたは複数のコンピューティングデバイスを含んでもよい。コンピューティングデバイス120A~Zは、埋込みシステム、サーバ、ワークステーション、パーソナルコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、携帯電話、パームサイズコンピューティングデバイス、携帯情報端末(PDA)などを含んでもよい。コンピューティングデバイス120A~Zは、x86ハードウェア(例えば、Intel(登録商標)またはAMD(登録商標))、PowerPC(登録商標)、SPARC(登録商標)、または他のハードウェアを実装したコンピューティングデバイスを含んでもよい。
【0023】
コンピューティングデバイス120A~Zのうちの1つまたは複数は、製造制御デバイス、センサデバイス、ユーザデバイス、他のデバイス、または前述の組み合わせとして機能してもよい。製造制御デバイス(例えば、コントローラ)は、製造ツール110の一部分を制御してもよく、入力データ、出力データ、または前述の組み合わせにアクセスするか、それらを生成するか、もしくはそれらを送信してもよい。センサデバイス(例えば、センサ)は、製造ツール110の一態様または製品101の一態様を知覚することができてもよく、製造ツール110または製品101の属性を測定することができる測定構成要素を伴ってもよい。一例では、センサデバイスは、画像取込みモジュールまたは音響取込みモジュールを含んでもよい。ユーザデバイスは、クライアントデバイスと同じまたは同様であってもよく、ユーザ(例えば、プロセス技術者)に対してユーザインターフェースを提供してもよい。ユーザインターフェースは、情報をユーザに提示(例えば、表示および/またはアナウンス)してもよく、ユーザ入力を集める1つもしくは複数の制御要素を含んでもよい。コンピューティングデバイス120A~Zのうちの1つまたは複数は、機械学習モデル126を使用してコンピュータシミュレーション124を実行してもよい。
【0024】
機械学習モデル126は、製造ツール110がタスクを実施するのに費やす持続時間を数学的にモデル化してもよい。一例では、機械学習モデル126は、製造ツール110をモデル化する単一の機械学習モデルであってもよい。別の例では、機械学習モデル126は機械学習モデルのセットを含んでもよく、セットの各モデルは1つまたは複数のリソースをモデル化してもよい。いずれの例でも、各機械学習モデルは、数学モデル、統計モデル、ニューラルネットワーク、他の数学的表現、または前述の組み合わせと同じもしくは同様であってもよい。機械学習モデル126は、モデル入力(例えば、タスクおよび/またはリソース)とモデル出力(例えば、持続時間)との関係を表す数学データを含んでもよい。数学データは、1つもしくは複数の行列、指数、値の対、ベクトル、関数、方程式、式、演算子、オペランド、係数、変数、重み、バイアス、リンク、他のデータ、または前述の組み合わせを含んでもよい。
【0025】
一例では、機械学習モデル126は、数学的関係を表す1つまたは複数の行列を含むデータ構造であってもよい。各行列は、1つまたは複数の次元を含んでもよく、特定の製造タスクおよび/またはリソースを1つまたは複数の持続時間と相関させてもよい。行列は、単一の次元(例えば、リスト)、2つの次元(例えば、テーブル)、または3つ以上の次元(例えば、3Dテーブル)を含んでもよい。行列の各要素は持続時間に対応してもよく、行列における要素の位置は対応するタスクおよび/またはリソースを示してもよい。例えば、第1の軸(例えば、行)はリソースに対応してもよく、第2の軸(例えば、列)はタスクに対応してもよく、各軸上における点の交点は要素(例えば、持続時間)を特定してもよい。要素は、製造ツールがリソースを使用してタスクを実施するのにかかった持続時間に基づいた、1つまたは複数の値を含んでもよい。1つまたは複数の値は、履歴値、最大値、最小値、平均値、累積値、他の数値もしくは統計値、または前述の組み合わせに基づいてもよい。
【0026】
別の例では、機械学習モデル126は、数学的関係を表す1つまたは複数の数学関数を含むデータ構造であってもよい。数学関数は、リソースに対応する変数およびタスクに対応する変数を含んでもよく、数学関数の出力は持続時間に対応してもよい。いずれの例でも、機械学習モデル121A~Zは、訓練データを分析し、訓練データから導き出されるパターンおよび推論を表すモデルを作製する、機械学習プロセスのアーチファクトであってもよい。
【0027】
訓練データは、製造ツール110の履歴または実験的実行に基づいた時系列データを含んでもよい。一例では、機械学習モデル126は、タスクデータ122を分析し、1つまたは複数の持続時間を導き出す1つまたは複数の回帰モデルを含んでもよい。別の例では、機械学習モデル126は、深層学習技法を使用して訓練される、複数の層を含んでもよい、1つまたは複数のニューラルネットワークを含んでもよい。ニューラルネットワークは、ネットワーク、人工ニューラルネットワーク(ANN)、ネットワーク、モデル、または他の用語で呼ばれることがある。ニューラルネットワークは、回帰型ニューラルネットワーク(RNN)、順伝播型ニューラルネットワーク(FFNN)、多層パーセプトロンニューラルネットワーク(MLP)全結合型ニューラルネットワーク、放射基底関数ニューラルネットワーク(RBF)、モジュラーニューラルネットワーク、コホネンの自己組織化ニューラルネットワーク、畳み込みニューラルネットワーク(CNN)、他のネットワーク、または前述の組み合わせと同じもしくは同様であってもよい。いずれの例でも、機械学習モデル126は、コンピュータシミュレーション124を実施するのに使用されてもよい。
【0028】
コンピュータシミュレーション124は、コンピュータシミュレーションのセットを実行して最適化されたスケジュールを特定する、コンピュータシミュレーションエンジンを表してもよい。コンピュータシミュレーション124はそれぞれ、1つまたは複数の製造ツールの以前観察された値に基づいて、機械学習モデル126を使用して、製造ツール110に対する将来の値を予測することを伴ってもよい。将来の値の予測は、時系列予測と呼ばれることがあり、時系列分析を伴ってもよい。一例では、各コンピュータシミュレーションは、製造ツール110をシミュレートして製造スケジュールを特定することを伴ってもよい。
【0029】
製造スケジュールは、製品のセットに対する開始時間のセットに基づいてもよく、コンピュータシミュレーションは、各製品に対するタスク全体を反復して、製造スケジュールを投入してもよい。第1のタスク反復は、各リソースそれぞれによって第1の製品がいつ処理されるかを決定してもよい。第2のタスク反復は、各リソースそれぞれによって第2の製品がいつ処理されるかを決定してもよい。第2の反復は、リソースの競合を考慮してもよく、リソースが第1の製品を処理し終えるまで第2の製品が処理されるのを遅らせてもよい。製造ツール110は、同じタスクを実施することができる複数のリソースを含んでもよく、第2の反復は、第2の製品が他のリソースのうちの1つによるスケジュールによって処理されることを示してもよい。反復は、全ての製品の処理がスケジューリングされるまで、各製品に対して行われてもよい。初期のコンピュータシミュレーションは製品を同時に開始させることがあり、それにより、製品が製造ツール内で異なる待ち時間(例えば、タスク間のウエハ待機時間)を有することがある。後続のコンピュータシミュレーションは、異なる開始時間を使用して、後続の製品が製造ツールによってロードされるのを待機させることがあるが、製造ツールが後続の製品を処理し始めると待ち時間はほとんどまたは全くない。後続のコンピュータシミュレーションは、リソースの競合および製品待機時間を低減する製造スケジュールを特定してもよい。コンピュータシミュレーション124は、製造スケジュールをシミュレーション結果データ128の形態で出力してもよい。
【0030】
シミュレーション結果データ128は、それぞれコンピュータシミュレーションの出力であってもよく、1つまたは複数の製造スケジュールを表してもよい、1つまたは複数のシミュレーション結果128A~Cを含んでもよい。製造スケジュールは、リソースによって(例えば、リソーススケジュール)、製品によって(例えば、製品スケジュール)、タスクによって(例えば、タスクスケジュール)、他の要素、または前述の組み合わせによって組織化される、1つもしくは複数のタイムラインのセットとして表されてもよい。一例では、シミュレーション結果はリソースによって組織化されてもよく、各タイムラインは、それぞれのリソース(例えば、それぞれのチャンバ)に対応してもよく、製品のそれぞれ(例えば、特定のチャンバによって改変された全てのウエハ)をリソースがいつ処理するかを示す時間ブロックを含んでもよい。別の例では、シミュレーション結果は製品によって組織化されてもよく、各タイムラインは、それぞれの製品(例えば、それぞれのウエハ)に対応してもよく、製品がいつどこで処理されたか(例えば、特定のウエハを処理した全てのチャンバ)を示す時間ブロックを含んでもよい。いずれの例でも、製造スケジュールは、一連の時間値として表されてもよく、図2に関連して更に詳細に後述するように、最適化127を介して分析されて最適化結果129を特定してもよい。
【0031】
図2は、本開示の1つまたは複数の態様による、製造ツールに対するシミュレーションベースの最適化を実施する技術を含む、例示のコンピューティングデバイス120を示すブロック図を示している。コンピューティングデバイス120は、図1のコンピューティングデバイス120A~Zのうちの1つもしくは複数と同じまたは同様であってもよい。本明細書で考察するコンポーネントおよびモジュールは、単一のコンピューティングデバイス上で、または複数の異なるコンピューティングデバイス上で実施されてもよい。一実現例では、コンポーネントのうちの1つまたは複数は、異なるコンピューティングデバイス上に(例えば、第1のコンピューティングデバイス上にはモデル訓練が、別のコンピューティングデバイス上にはコンピュータシミュレーションが)常駐してもよい。一般性を損なうことなく、より多数もしくは少数のコンポーネントまたはモジュールが含まれてもよい。例えば、コンポーネントのうちの2つ以上が組み合わされて単一のコンポーネントとなってもよく、またはあるコンポーネントの特徴が2つ以上のコンポーネントへと分割されてもよい。図2に示される例では、コンピューティングデバイス120は、ツール分析コンポーネント210と、モデル作成コンポーネント220と、コンピュータシミュレーションコンポーネント230とを含んでもよい。
【0032】
ツール分析コンポーネント210は、コンピューティングデバイス120が製造ツールを分析して、製造ツールのリソースおよび能力を決定できるようにしてもよい。分析は、製造ツールが顧客に配送される前に行われてもよく、または製造ツールが顧客に配送された後に行われてもよく、いずれの例でも、製造ツールの初期化の前、最中、または後に行われてもよい。初期化は、ハードウェア初期化(例えば、システム起動、BIOS)、ソフトウェア初期化(例えば、オペレーションシステム(OS)ブート、プログラム起動)、他の初期化、または前述の組み合わせと同じもしくは同様であってもよい。一例では、ツール分析コンポーネント210は、リソース決定モジュール212と、タスクデータモジュール214と、時間追跡モジュール216とを含んでもよい。
【0033】
リソース決定モジュール212は、1つもしくは複数のデータストレージオブジェクトにアクセスすることによって、1つもしくは複数のリソースと通信することによって、または前述の組み合わせによって、製造ツールのリソースおよびリソース能力を決定してもよい。上述したように、リソースは、製造品を処理する(例えば、ウエハを移動もしくは改変する)のに使用することができる、ツールの1つもしくは複数の範囲、セクション、またはチャンバを含んでもよい。データストレージオブジェクトは、1つまたは複数の製造ツールのリソースのうちの1つもしくは複数を示すデータを格納してもよく、データは、リソースデータまたはツールデータと呼ばれることがある。データストレージオブジェクトは、1つもしくは複数のファイルオブジェクト(例えば、ファイル、ディレクトリ)、データベースオブジェクト(例えば、レコード、タプル、値の対)、バイナリラージオブジェクト(BLOB)、他のデータ構造、または前述の組み合わせを含んでもよい。リソース決定モジュール212は、加えてまたは代わりに、リソースのうちの1つまたは複数と通信することによってリソースを決定してもよい。通信は、リソースそれぞれをスキャンまたは照会することと同じもしくは同様であってもよく、製造ツールのリソースを示すデータを用いて要求を送信し応答を受信することを伴ってもよい。リソース決定モジュール212は、リソースデータ242によって示されるように、データをデータストア240に格納してもよい。
【0034】
リソースデータ242は、特定データ、レイアウトデータ、能力データ、他のデータ、または前述の組み合わせを含んでもよい。特定データは、コンピューティングデバイス120がリソースを一意に特定できるようにしてもよく、リソースの1つまたは複数の識別子(例えば、リソース識別子、汎用一意識別子(UUID)、グローバル一意識別子(GUID))を含んでもよい。レイアウトデータは、ツールに対する、または別のリソースに対するリソースの位置を示してもよい。レイアウトデータは、リソース決定モジュール212が製造ツールのレイアウトを決定できるようにしてもよい。レイアウトは、1つもしくは複数の他のリソースに対する、またはツールに対するリソースの位置(例えば、相対位置)を示してもよい。リソースの位置は、リソース間で製品を移動させるのにかかる時間を決定するのに使用されてもよい。能力データは、リソースのタイプ(例えば、改変チャンバ、移動チャンバ)、およびリソースが実施することができる1つまたは複数のタスクを含んでもよい、リソースの能力を示してもよい。
【0035】
タスクデータモジュール214は、製品を製造するためのタスクを特定するタスクデータにアクセスしてもよい。タスクデータは、製造ツールが製品に対して実施するステップおよびステップの順序を特定してもよい。タスクデータモジュール214は、コンピューティングデバイス120が、ユーザ入力、データストレージオブジェクト、または前述の組み合わせを介して、タスクデータを受信できるようにしてもよい。一例では、タスクデータは、ネットワークを通じてアクセス可能である、中央データストアに格納されるシーケンスプログラムであってもよい(例えば、レシピリポジトリ、シーケンスリポジトリ)。タスクデータモジュール214は、タスクデータを受信(例えば、ダウンロード)し、それをタスクデータ122としてデータストア240に格納してもよい。一例では、タスクデータ122は、ウエハを処理するレシピのシーケンスを含んでもよく、各レシピは、製造ツールのそれぞれのチャンバに対応してもよい。
【0036】
時間追跡モジュール216は、コンピューティングデバイス120が、製造ツールが異なるタスクを実施するのにどれぐらいかかるかを決定することができるようにしてもよい。タスクは、任意の処理タスクであってもよく、リソースを改変する(例えば、リソースを前洗浄もしくは後洗浄する)、製品を改変する(例えば、フォトリソグラフィ、エッチング)、製品を移動する(例えば、ツールにロードする、またはリソース内もしくは外に移送する)、あるいは前述の組み合わせを行うタスクを伴ってもよい。一例では、時間追跡モジュール216は、1つまたは複数の製品の処理の間、製造ツールをモニタリングするのに使用されてもよい。別の例では、製造ツールは、1つまたは複数の製品の処理の間、持続時間を記録して(例えば、ログを取って)もよく、時間追跡モジュール216は、記録された時間にアクセスしてもよい。いずれの例でも、時間追跡モジュール216は、時間データ244としてデータストア240に格納される前、最中、または後に、持続時間を修正、集約、フィルタ処理、または補足してもよい。
【0037】
時間データ244は、製造ツールがタスクを実施するのに消費する持続時間を示してもよい。時間データ244は、1つもしくは複数の時間(例えば、開始時間、終了時間、および/または持続時間)、リソース(例えば、ローディングチャンバA、改変チャンバZ)、製品(例えば、ウエハ識別子、ポッド識別子)、タスク(例えば、シーケンス識別子、レシピ識別子)、ツール(例えば、製造ツール110)、他のデータ、あるいは前述の組み合わせを示す、エントリ(例えば、ログエントリ)を含んでもよい。一例では、時間データ244は、複数のウエハが特定の製造ツールによって処理される間に生成されてもよく、複数のウエハロード時間、第1のチャンバの処理時間、第2のチャンバの処理時間、およびチャンバ間の移送時間を示してもよい。
【0038】
モデル作成コンポーネント220は、時間データ244を使用して、製造ツールをモデル化するように機械学習モデル126を訓練してもよい。一例では、モデル作成コンポーネント220は、データアクセスモジュール222と、訓練モジュール224とを含んでもよい。
【0039】
データアクセスモジュール222は、製造ツールと関連付けられ、機械学習モデルを訓練するのに使用することができる、データにアクセスしてもよい。データは、訓練データと呼ばれることがあり、時間データ244、リソースデータ242、タスクデータ122、他のデータ、または前述の組み合わせなど、データストア240の任意のデータを含むか、または任意のデータから導き出されてもよい。データアクセスモジュール222は、訓練データに製造ツールから直接または間接的にアクセスしてもよい。訓練データに製造ツールから直接アクセスすることは、訓練データに製造ツールの通信チャネルまたはデータストアからアクセスすることを伴ってもよい。訓練データに製造ツールから間接的にアクセスすることは、訓練データに製造ツールとは別個のデータストアから(例えば、ログサーバから)アクセスすることを伴ってもよい。データアクセスモジュール222は、アクセスされたデータを訓練データとして使用する前に、データに対して1つまたは複数の処理動作を実施してもよい。処理は、前処理または後処理と呼ばれることがあり、相関、正規化、追加、除去、集約、フィルタ処理、殺菌、匿名化、または他の動作の1つもしくは複数の動作を伴ってもよい。
【0040】
訓練データは、履歴データ、シミュレーションデータ、拡張データ、他のデータ、または前述の組み合わせを含むか、あるいはそれらに基づいてもよい。履歴データは、製造プロセスの1つまたは複数の物理的実行から導き出されてもよく、物理的実行は、商用、テスト用、実験用、研究開発用、他の用途、または前述の組み合わせに対するものであってもよい。拡張データは、操作されているデータに存在することもしないこともあるばらつきを含むように操作される、履歴データに基づいてもよい。ばらつきは、1つまたは複数の数学的変換(例えば、レシピ修正に基づいて持続時間を低減または増加させる)を使用してデータを変更してもよい。
【0041】
訓練データは、ラベルありデータ、ラベルなしデータ、または前述の組み合わせを含んでもよい。ラベルありデータは、補助データ(例えば、リソースまたは製品ラベル)を補足した一次データ(例えば、持続時間)を含んでもよい。補助データは、タグ、注釈、リンク、ラベル、または他のデータであってもよい。ラベルなしデータは、ラベルがない(例えば、ラベルが欠落した、ラベルを有さない、ラベルがない)データであってもよい。ラベルなしデータは、ラベルなしで格納されてもよく、訓練モジュール224によってアクセスされる前は、ラベルなしのままであってもなくてもよい。
【0042】
訓練モジュール224は、コンピューティングデバイス120が、訓練データを分析し、1つまたは複数の機械学習モデル126を作成できるようにしてもよい。訓練モジュール224は、新しい機械学習モデルを作成、または既存の機械学習モデルを更新してもよい。機械学習モデルを訓練することは、専有、標準化、オープンソース、または前述の組み合わせである、1つもしくは複数の訓練技法を使用することを伴ってもよい。一例では、訓練モジュール224は、訓練データを分析し、リソースおよびタスクの各組み合わせに対する1つまたは複数の持続時間を特定してもよい。例えば、訓練モジュール224は、適用可能な各タスクを実施するのにリソースが消費する、持続時間(例えば、平均持続時間、最大持続時間、最近の持続時間)を特定してもよい。別の例では、訓練モジュール224は、機械学習モデル126を作成する訓練フレームワークに訓練データを提供してもよい。一例では、訓練フレームワークは、Tensorflow(商標)、Keras(商標)、PyTorch(商標)、Open Neural network Exchange(Onnx(商標))、Cognitive Toolkit(CNTK)、Azure Machine Learning Service、Create ML、他の機械学習フレームワーク、あるいは前述の組み合わせと同じまたは同様であってもよい。
【0043】
訓練モジュール224は、訓練の結果を機械学習モデル126としてデータストア240に格納してもよい。機械学習モデル126は、1つもしくは複数のファイルオブジェクト(例えば、ファイル、ディレクトリ、リンク)、データベースオブジェクト(例えば、レコード、タプル)、他のストレージオブジェクト、または前述の組み合わせとして格納されてもよい。データストア240は、メモリ(例えば、ランダムアクセスメモリ)、ドライブ(例えば、ハードドライブ、フラッシュドライブ)、データベースシステム、またはデータを格納することができる別のタイプのコンポーネントもしくはデータストレージデバイスであってもよい。データストア240は、複数のコンピューティングデバイス(例えば、複数のサーバコンピュータ)にまたがってもよい、複数のストレージコンポーネント(例えば、複数のドライブまたは複数のデータベース)を含んでもよい。機械学習モデル126は、1つもしくは複数の他のデータストアまたはコンピューティングデバイスに送信され、コンピュータシミュレーションコンポーネント230にアクセス可能にされてもよい。
【0044】
コンピュータシミュレーションコンポーネント230は、コンピューティングデバイス120が、機械学習モデル126およびタスクデータ122を使用してシミュレーション結果のセットを作成する、コンピュータシミュレーションのセットを実施できるようにしてもよい。各シミュレーション結果は、製品を処理するのに使用されるリソースに対するスケジュールを含んでもよく、各リソースが1つまたは複数の製品を処理する時間を示してもよい。スケジュールは、製造ツールの将来の実行に、または製造ツールの現在の実行に使用されてもよい。例えば、現在の実行からの入力(例えば、リソースXの遅延)は、モデルを更新し、残りのタスクをシミュレートして改訂されたスケジュールを特定するのに使用されてもよい。改訂されたスケジュールは次に、製造ツールが後続のタスクの実行を変更するのに使用されてもよい。スケジュールに対するこの改訂は、製造プロセスの遅延をほとんどまたは全く含まずに(例えば、製造ツールを停止もしくは再始動する必要なく)リアルタイムで行われてもよい。図2の例では、コンピュータシミュレーションコンポーネント230は、開始モジュール232と、実行モジュール234と、最適化モジュール236と、結果提供モジュール238とを含んでもよい。
【0045】
開始モジュール232は、シミュレーション入力を使用して、コンピュータシミュレーションの1つまたは複数を開始してもよい。シミュレーション入力は、機械学習モデル126およびモデル入力を含んでもよい。モデル入力は、タスクデータ122、リソースデータ242、製品数量データ、ユーザ入力データ、他のデータ、または前述の組み合わせに基づいてもよい。モデル入力は、製品に対応するタスクおよび/またはリソースを特定する、1つもしくは複数の入力ベクトルの形態であってもよい。セットの各製品は、同じ製品ベクトルまたは異なる製品ベクトルと関連付けられてもよい。モデル入力はまた、製造ツールが製品の1つまたは複数の処理をいつ始めるかを示す、開始時間のセットを含んでもよい。機械学習モデル126は、ローカルストレージデバイス、リモートストレージデバイス、または前述の組み合わせからアクセスされてもよい。一例では、開始モジュール232は、機械学習モデル126をローカルストレージ位置(例えば、データストア240)から受信してもよく、これは、コンピューティングデバイス120が機械学習モデルを作成したとき、あるいは機械学習モデルが別のコンピューティングデバイスによって作成され、コンピューティングデバイス120にインストール、パッケージ、ダウンロード、アップロード、または送信されたときに行われてもよい。別の例では、開始モジュール232は、コンピュータネットワーク130を通じて同じネットワーク上の、または異なるネットワーク(例えば、インターネット)上のサーバから、機械学習モデル126にアクセスしてもよく、これにより、顧客が、機械学習モデル126またはモデルに対する更新を第三者(例えば、製造ツール作成者もしくは配布者)から受信できるようにしてもよい。
【0046】
実行モジュール234は、コンピューティングデバイス120がコンピュータシミュレーションのセットを連続して、並行して、または前述の組み合わせで実行できるようにしてもよい。コンピュータシミュレーションの実行中、実行モジュール234は、1つまたは複数のリソース競合を検出してもよい。リソース競合は、製品(例えば、第2の製品)が、リソースが別の製品(例えば、第1の製品)の処理を終了するのを待っているときに生じることがある。実行モジュール234は、製品のうちの1つまたは複数の開始時間を調節することによって競合に対処してもよく、これには、第1の製品の開始時間をより早く調節すること(例えば、早めること)、または第2の製品の開始時間をより遅く調節すること(例えば、遅らせること)、または前述の組み合わせを伴ってもよい。調節された時間はシミュレーション結果に組み込まれてもよい。
【0047】
各シミュレーション結果は、リソースもしくは製品によって組織化またはアレンジされてもよい、1つもしくは複数のタイムラインのセットを表してもよい。一例では、タイムラインはリソースによって組織化されてもよく、各タイムラインは、それぞれのリソースに対応してもよく、各製品(それぞれのチャンバによって改変された全てのウエハ)をリソースがいつ処理するかを示してもよい。別の例では、タイムラインは製品によって組織化されてもよく、各タイムラインは、それぞれの製品に対応してもよく、製品がいつどこで処理されるか(例えば、それぞれのウエハを処理した全てのチャンバ)を示してもよい。いずれの例でも、シミュレーション結果は出力ベクトルのセットとして表されてもよい。
【0048】
出力ベクトルは、時系列データを格納するデータ構造であってもよく、特定のリソース(例えば、チャンバ)、特定の製品(例えば、ウエハ)、特定のツール、他のアイテム、または前述の組み合わせに対するタイムラインを表してもよい。各出力ベクトルは、時間データ、リソースデータ、タスクデータ、または他のデータを含んでもよい。出力ベクトルのセットは、特定のリソースに対応する1つもしくは複数のリソースベクトル(例えば、チャンバベクトル)、または特定の製造品に対応する製品ベクトル(例えば、ウエハベクトル)を含んでもよい。一例では、出力ベクトルは、製造ツールの特定のリソース(例えば、チャンバ)にそれぞれ対応する、リソースベクトルのセットであってもよい。リソースベクトルは、複数の時間値および製品識別子を含む時系列データを含んでもよい。時系列データは、リソースによって処理される複数の製品、および製品が処理される時間(例えば、開始時間、終了時間、持続時間)を示してもよい。別の例では、出力ベクトルは、製造ツールによって製造される特定の製品(例えば、ウエハ)にそれぞれ対応する、製品ベクトルのセットであってもよい。製品ベクトルは、製品を処理する複数のリソースおよびリソースが製品を処理する時間を示す、複数の時間値およびリソース識別子を含む時系列データを含んでもよい。
【0049】
最適化モジュール236は、シミュレーション結果を分析し、シミュレーション結果に対する最適化値を計算してもよい。最適化値は、1つもしくは複数の製品、リソース、ツール、または前述の組み合わせに基づいてもよい。例えば、最適化値は、製品待機時間(例えば、最大ウエハ待機時間)、リソース利用(例えば、チャンバ利用率)、ツールスループット(例えば、時間当たりのウエハ数)、他の値、または前述の組み合わせに基づいてもよい。最適化値は、加えてまたは代わりに、1つもしくは複数の特定のタスクに基づいてもよい。例えば、最適化値(例えば、製品待機時間)は、特定のタスクもしくはタスクのセットの前、最中、または後の時間に基づいてもよい。これは、製造ツールによって製品に対して実施されるタスクの一部が時間依存性(例えば、時間依存のフォトリソグラフィタスク)であり得る場合に、特に有利なことがある。セットのうちの異なる製品にわたる時間依存性のばらつきによって、製造品が既定の閾値(例えば、熱損失の閾値)を上回る形でばらつくことがある。
【0050】
一例では、最適化モジュール236は、出力ベクトルのセットを使用して、製品の待機時間など、最適化値を決定してもよい。待機時間は、リソース競合が解決される(例えば、リソースが利用可能になる)のを製品が待つ、1つまたは複数の持続時間に基づいてもよく、タスクが実施される前、最中、または後の持続時間を含んでもよい。1つまたは複数の持続時間は、製品が搬送デバイスから製造ツールにロードされる前の持続時間、ストレージリソース(例えば、ウエハバッファもしくはキュー)内における持続時間、他の持続時間、または前述の組み合わせを含んでもよい。上述したように、出力ベクトルは複数の時間値を含んでもよく、時間値を比較してウエハの待機時間を決定することができる。出力ベクトルが製品ベクトルである場合、単一の製品ベクトルを分析することによって、特定の製品の待機時間を決定することができる。出力ベクトルがリソースベクトルである場合、特定の製品を処理する全てのリソースに対するリソースベクトルを分析することによって、特定の製品に対する待機時間が決定されてもよい。いずれの例でも、最適化値(例えば、待機時間)を決定することは、出力ベクトルのうちの1つまたは複数の時間値を比較することによって実施されてもよい。
【0051】
最適化モジュール236は、異なるコンピュータシミュレーションの最適化値を比較してもよい。シミュレーション結果の最適化値は、シミュレーション結果のセットの1つまたは複数の最適化値と比較されてもよい。比較は、最適化値間の1つまたは複数の差を決定する数学的比較であってもよい。差は、比較の前もしくは後に重み付けおよび/または集約されてもよい。一例では、最適化モジュール236は、最適化値の比較に基づいて、シミュレーション結果のセットからシミュレーション結果を選択(例えば、最高値または最低値を有するシミュレーション結果を選択)してもよい。別の例では、最適化モジュール236は、比較に基づいて、1つまたは複数の追加のコンピュータシミュレーションを実行するか否かを決定してもよい。これには、追加のシミュレーションがより最適な解(例えば、待機時間がより少ないスケジュール)を特定しているか否かを決定することを伴ってもよい。後続のシミュレーション結果が、より最適化または実質的により最適化されている場合(例えば、閾値を上回る最適化値の差)、最適化モジュール236は、開始モジュール232と通信して、1つまたは複数のコンピュータシミュレーションを実施してもよい。後続のシミュレーション結果の最適化の程度が低いかまたは名目上最適化されている(例えば、閾値を下回る)場合、最適化モジュール236は、追加のコンピュータシミュレーションを実施しないことがあり、最適化された結果129を既存のシミュレーション結果のセットから選択してもよい。
【0052】
一例では、コンピュータシミュレーションの出力は、後続のコンピュータシミュレーションの入力を決定するのに使用されてもよい。例えば、第1のコンピュータシミュレーションは、最後の製造品が中間ステップの間待機しているリソーススケジュールを作成してもよい。待機時間の持続時間は、後続のコンピュータシミュレーションにおける製品の開始時間を調節するのに使用されてもよい。例えば、シミュレーション結果は、製品xがタスクnの後に持続時間yの間待機していた(例えば、5番目のウエハが90秒間遅延した)ことを示してもよく、後続のコンピュータシミュレーションに対する入力は、製品xの開始時間を持続時間nの間遅延させてもよい。別の例では、開始モジュールは、製品開始時間の複数の異なるセットを作成してもよく、それぞれを、実行され異なるシミュレーション結果を作成するコンピュータシミュレーションに対する入力として使用してもよい。
【0053】
結果提供モジュール238は、コンピューティングデバイス120が、シミュレーション結果を製造ツールと関連付けられたユーザまたはデバイスに提供できるようにしてもよい。シミュレーション結果を提供することは、シミュレーション結果を提示すること、シミュレーション結果を送信すること、結果を格納すること、または前述の組み合わせを伴ってもよい。結果提供モジュール238は、コンピュータシミュレーションに関する1つまたは複数のシミュレーション結果および詳細(例えば、最適化値、シミュレーションの数、値の差、最良スケジュール)を表示する、ユーザインターフェース(例えば、グラフィカルユーザインターフェース(GUI))を使用して、シミュレーション結果を提示してもよい。一例では、ユーザインターフェースは、1つまたは複数のタイムラインを使用するスケジュール(例えば、リソーススケジュール、製品スケジュール、タスクスケジュール)としてシミュレーション結果を視覚的に表す、1つまたは複数の表示グラフを含んでもよい。表示グラフ(例えば、棒グラフ、ガントチャート)は、第1のリソースに対する横棒のセットおよび第2のリソースに対する横棒のセット(例えば、第1および第2のチャンバ)を含む、リソースによって組織化されたグラフ(例えば、リソースグラフ)を含んでもよい。横棒の各セットは、それぞれのリソースによって処理される製品に対応する時間ブロックを表してもよい。表示グラフは、加えてまたは代わりに、第1の製品に対する横棒のセットおよび第2の製品に対する横棒のセット(例えば、第1および第2のウエハ)を含む、製品によって組織化されたグラフ(例えば、製品グラフ)を含んでもよい。横棒の各セットは、それぞれの製品を処理するリソースに対応する時間ブロックを表してもよい。ユーザインターフェースはまた、ユーザ(例えば、プロセス技術者)のユーザ入力を受信するように構成された、1つまたは複数の制御要素を含んでもよい。制御要素は、製造ツールによって使用されるシミュレーション結果のうちの1つまたは複数を選択するのに使用されてもよい(例えば、最適化されたスケジュールの選択)。
【0054】
結果提供モジュール238はまた、シミュレーションされた結果の1つと関連付けられた、最適化されたデータを製造ツールに提供してもよい。最適化されたデータは、最適化された結果129に関連してもよく、1つもしくは複数の開始時間、タイムライン、スケジュール、または他のデータを含んでもよい。一例では、最適化されたデータを製造ツールに提供することは、製造ツールとの通信チャネルを確立すること、および通信チャネルを使用して、最適化されたデータをコンピューティングデバイス120から製造ツールに送信することを伴ってもよい。別の例では、最適化されたデータを製造ツールに提供することは、最適化されたデータをデータストレージオブジェクトに格納すること、および製造ツールがデータストレージオブジェクトにアクセス(例えば、ネットワークストレージデバイスに格納)できるようにすることを伴ってもよい。
【0055】
図3は、本開示の1つまたは複数の態様による、シミュレーションベースの最適化を実施して製造ツールに対するスケジュールを特定する方法300の、1つの実例のフロー図を示している。方法300、およびその個々の機能、ルーチン、サブルーチン、または動作のそれぞれは、方法を実行するコンピュータデバイスの1つまたは複数のプロセッサによって実施されてもよい。特定の実現例では、方法300は、単一のコンピューティングデバイスによって実施されてもよい。あるいは、方法300は、2つ以上のコンピューティングデバイスによって実施されてもよく、各コンピューティングデバイスは、方法の1つもしくは複数の個々の機能、ルーチン、サブルーチン、または動作を実行する。
【0056】
説明を簡単にするため、本開示の方法は一連の作用として図示され記載される。しかしながら、本開示による作用は、様々な順序でおよび/または同時に、また本明細書に提示されず記載されない他の作用とともに行うことができる。更に、開示する主題による方法を実現するのに、例示される全ての作用が必要なわけではない。加えて、当業者であれば、方法はあるいは、状態図またはイベントによって、一連の相関状態として表すことができることを理解し認識するであろう。更に、本明細書に開示する方法は、かかる方法をコンピューティングデバイスに伝達し移行するのを容易にするため、製造品に格納できることが認識されるべきである。「製造品」という用語は、本明細書で使用するとき、任意のコンピュータ可読デバイスまたは記憶媒体からアクセス可能なコンピュータプログラムを包含するものとする。一実現例では、方法300は、図2に示されるようなモデル作成コンポーネント220およびコンピュータシミュレーションコンポーネント230によって実施されてもよい。
【0057】
方法300は、サーバデバイスまたはクライアントデバイスの処理デバイスによって実施されてもよく、ブロック302で開始してもよい。ブロック302で、処理デバイスは、製造ツールのリソースを決定してもよい。リソースは、第1のチャンバ、第2のチャンバ、および1つまたは複数の追加のチャンバを含んでもよい。処理デバイスは、製造ツールのデータを分析して、リソースのレイアウトを特定し、リソースそれぞれのタイプを決定することによって、リソースを決定してもよい。一例では、第1のチャンバは、製品を改変する改変チャンバ(例えば、エッチングチャンバ)であってもよく、第2のチャンバは、製品を移動させる移動チャンバ(例えば、ロボットチャンバ)であってもよい。
【0058】
ブロック304で、処理デバイスは、第1の製造タスクおよび第2の製造タスクを示すタスクデータにアクセスしてもよい。タスクデータは、ウエハ製品を処理するレシピのシーケンスを含んでもよく、レシピのシーケンスは、第1のチャンバに対するレシピおよび第2のチャンバに対するレシピを含んでもよい。タスクのシーケンスは、開始タスク、複数の中間タスク、および終了タスクを含んでもよい。リソースのうちの1つまたは複数は、同じタスクを実施することができてもよく、各リソースは1つまたは複数のタスクを実施することができてもよい。
【0059】
ブロック306で、処理デバイスは、第1のチャンバを使用して第1の製造タスクを実施する第1の持続時間および第2のチャンバを使用して第2の製造タスクを実施する第2の持続時間を決定してもよい。処理デバイスは、同じタスクデータまたは異なるタスクデータを使用して複数のウエハを処理する間、製造ツールによって以前生成された時間データを分析することによって、持続時間を決定してもよい。時間データは、過去の製造実行(例えば、完了している履歴実行)または現在の実行(例えば、まだ完了していない進行中の実行)の間に生成されていてもよい。一例では、時間データは、同じ製造ツールに対して複数の時間を含んでもよく、複数の時間は、1つもしくは複数のウエハロード時間、第1のチャンバのウエハ処理時間、第2のチャンバのウエハ処理時間、第1のチャンバと第2のチャンバとの間のウエハ移送時間、他の時間、または前述の組み合わせを含んでもよい。
【0060】
ブロック308で、処理デバイスは、第1の製造タスクを実施する持続時間および第2の製造タスクを実施する持続時間に基づいて、機械学習モデルを更新してもよい。更新は、製造ツールと関連付けられたデータストアからの、製造ツールに対する時間データにアクセスすること、および時間データを使用して機械学習モデルを訓練して、製造ツールを時間的にモデル化することを伴ってもよい。訓練済み機械学習モデルは次に、製造ツールに、またはコンピュータネットワークを通じて製造ツールに接続されたデバイス上に格納されてもよい。
【0061】
ブロック310で、処理デバイスは、機械学習モデルおよびタスクデータを使用して、シミュレーション結果のセットを作成する、コンピュータシミュレーションのセットを実施してもよい。コンピュータシミュレーションのセットを実施することは、機械学習モデルにアクセスして、ウエハのセットの処理を予測することを伴ってもよい。処理デバイスは、ウエハのセットに対する開始時間のセットを使用して第1のコンピュータシミュレーションを実施してもよく、セットのうちの少なくとも1つのウエハが、既定の閾値(例えば、n秒超過)を上回る持続時間にわたって待機していることを検出してもよい。処理デバイスは、少なくとも1つのウエハに対する異なる開始時間を含むように、開始時間のセットを修正し、修正された開始時間のセットを使用して第2のコンピュータシミュレーションを実施してもよい。
【0062】
処理デバイスはまた、シミュレーション結果に対する最適化値を計算してもよい。最適化値は、ウエハ待機時間、チャンバ利用、ツールスループット、または前述の組み合わせの1つもしくは複数に基づいてもよい。処理デバイスは、最適化値を、シミュレーション結果のセットのうちの1つまたは複数の最適化値と比較し、比較に基づいて、シミュレーション結果のセットからシミュレーション結果を選択してもよい。一例では、最適化値は、中間タスクのセットを考慮して計算されてもよい(例えば、タスクCおよびFの間のウエハ待機時間)。
【0063】
ブロック312で、処理デバイスは、シミュレーション結果のセットのシミュレーション結果をデータストアに格納してもよい。シミュレーション結果は、製品のセットを処理するのに使用される製造ツールの各チャンバに対するリソースベクトルを含む、リソースベクトルのセットであってもよい。各リソースベクトルは、複数の時間値を含んでもよく、複数の製品を処理する特定のチャンバに対するタイムラインを表してもよい。一例では、処理デバイスは、製造ツールに対する格納されたシミュレーション結果を表す、ガントチャートの表示を提供してもよい。ガントチャートは、セットのうちの1つまたは複数のウエハに対する時間ブロックを表す第1のチャンバに対する横棒のセット、およびセットのうちの1つまたは複数のウエハに対する時間ブロックを表す第2のチャンバに対する横棒のセットを含んでもよい。ブロック312を参照して本明細書に上述した動作の完了に応答して、方法は終了してもよい。
【0064】
図4は、特定の実施形態によるコンピュータシステム400を示すブロック図である。いくつかの実施形態では、コンピュータシステム400は、(例えば、ローカルエリアネットワーク(LAN)、イントラネット、エクストラネット、またはインターネットなどのネットワークを介して)他のコンピュータシステムに接続されてもよい。コンピュータシステム400は、クライアント・サーバ環境におけるサーバまたはクライアントコンピュータの容量内で、あるいはピアツーピアもしくは分配ネットワーク環境におけるピアコンピュータとして動作してもよい。コンピュータシステム400は、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、携帯情報端末(PDA)、セルラー電話、ウェブアプライアンス、サーバ、ネットワークルータ、スイッチもしくはブリッジ、またはデバイスが行うべきアクションを指定する命令セット(逐次もしくはその他)を実行することができる任意のデバイスによって提供されてもよい。更に、「コンピュータ」という用語は、個々にまたは併せて命令セット(もしくは複数のセット)を実行して、本明細書に記載する方法の1つまたは複数を実施する、コンピュータの任意の集合体を含むものとする。
【0065】
更なる態様では、コンピュータシステム400は、バス408を介して互いに通信してもよい、処理デバイス402と、揮発性メモリ404(例えば、ランダムアクセスメモリ(RAM))と、不揮発性メモリ406(例えば、読出し専用メモリ(ROM)または電気消去可能プログラマブルROM(EEPROM))と、データストレージデバイス416とを含んでもよい。
【0066】
処理デバイス402は、汎用プロセッサ(例えば、複合命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、他のタイプの命令セットを実装したマイクロプロセッサ、もしくは命令セットのタイプの組み合わせを実装したマイクロプロセッサなど)、あるいは専用プロセッサ(例えば、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、もしくはネットワークプロセッサなど)などの、1つまたは複数のプロセッサによって提供されてもよい。
【0067】
コンピュータシステム400は更に、ネットワークインターフェースデバイス422を含んでもよい。コンピュータシステム400はまた、ビデオディスプレイユニット410(例えば、LCD)と、英数字入力デバイス412(例えば、キーボード)と、カーソル制御デバイス414(例えば、マウス)と、信号生成デバイス420とを含んでもよい。
【0068】
いくつかの実現例では、データストレージデバイス416は、図2のツール分析コンポーネント210、モデル作成コンポーネント220、またはコンピュータシミュレーションコンポーネント230を符号化する、本明細書に記載する方法を実現するための命令を含む、本明細書に記載する方法または機能のうちの任意の1つもしくは複数を符号化する命令426を格納してもよい、非一時的コンピュータ可読記憶媒体424を含んでもよい。
【0069】
命令426はまた、コンピュータシステム400による実行の間、揮発性メモリ404内および/または処理デバイス402内に、完全にもしくは部分的に常駐してもよく、したがって、揮発性メモリ404および処理デバイス402もまた、機械可読記憶媒体を構築してもよい。
【0070】
コンピュータ可読記憶媒体424は、例示の例では単一の媒体として示されているが、「コンピュータ可読記憶媒体」という用語は、実行可能命令の1つもしくは複数のセットを格納する、単一の媒体あるいは複数の媒体(例えば、集中型もしくは分散型データベース、ならびに/または関連するキャッシュおよびサーバ)を含むものとする。また、「コンピュータ可読記憶媒体」という用語は、本明細書に記載する方法のうちの任意の1つまたは複数をコンピュータに実施させる、コンピュータが実行する命令のセットを格納または符号化することができる、任意の有形媒体を含むものとする。「コンピュータ可読記憶媒体」という用語は、固体メモリ、光学媒体、および磁気媒体を含むがそれらに限定されないものとする。
【0071】
本明細書に記載する方法、構成要素、および特徴は、離散的なハードウェアコンポーネントによって実現されてもよく、あるいはASIC、FPGA、DSP、または同様のデバイスなど、他のハードウェアコンポーネントの機能性に統合されてもよい。加えて、方法、構成要素、および特徴は、ハードウェアデバイス内のファームウェアモジュールまたは機能的回路によって実現されてもよい。更に、方法、構成要素、および特徴は、ハードウェアデバイスおよびコンピュータプログラムコンポーネントの任意の組み合わせで、またはコンピュータプログラムで実現されてもよい。
【0072】
別段の具体的な指示がない限り、「受信する」、「決定する」、「選択する」、「実施する」、「処理する」、「測定する」、「報告する」、「更新する」、「分析する」、「訓練する」、「作成する」、「追加する」、「計算する」、「行わせる」、「生成する」、「使用する」、「修正する」、「比較する」、「アクセスする」、「シフトする」、「格納する」、「検出する」などの用語は、コンピュータシステムのレジスタおよびメモリ内で物理(電子)量として表されるデータを操作し、コンピュータシステムのメモリまたはレジスタ内で、あるいは他のかかる情報記憶、伝達、または表示デバイス内で物理量として同様に表される他のデータへと変換する、コンピュータシステムによって実施または実現される、作用およびプロセスを指す。また、「第1の」、「第2の」、「第3の」、「第4の」などの用語は、本明細書で使用するとき、異なる要素同士を区別する標識を意味し、それらの数値指定に従った序数の意味を有さないことがある。
【0073】
本明細書に記載する例はまた、本明細書に記載する動作を実施するための装置に関連する。この装置は、本明細書に記載する方法を実施するために特別に構築されてもよく、あるいはコンピュータシステムに格納されたコンピュータプログラムによって選択的にプログラムされる、汎用コンピュータシステムを含んでもよい。かかるコンピュータプログラムは、任意のコンピュータ可読有形記憶媒体に格納されてもよい。
【0074】
本明細書に記載する方法および実例は、任意の特定のコンピュータまたは他の装置に本質的に関連しない。本明細書に記載する教示に従って、様々な汎用システムが使用されてもよく、あるいは、本明細書に記載する方法および/またはその個々の機能、ルーチン、サブルーチン、もしくは動作それぞれを実施するため、より専門的な装置を構築するのが便利であると証明できることがある。様々なこれらのシステムに対する構造の例は上述の記載で説明している。
【0075】
上述の記載は制限ではなく例示のためのものである。特定の実例および実現例を参照して本開示について記載してきたが、本開示は、記載される例および実現例に限定されないことが認識されるであろう。本開示の範囲は、特許請求の範囲の権利が及ぶ均等物の全範囲と併せて、添付の特許請求の範囲を参照して決定されるべきである。
図1
図2
図3
図4