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

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

▶ 東京エレクトロン株式会社の特許一覧

特開2024-114430情報処理装置、基板処理装置及び基板処理方法
<>
  • 特開-情報処理装置、基板処理装置及び基板処理方法 図1
  • 特開-情報処理装置、基板処理装置及び基板処理方法 図2
  • 特開-情報処理装置、基板処理装置及び基板処理方法 図3
  • 特開-情報処理装置、基板処理装置及び基板処理方法 図4
  • 特開-情報処理装置、基板処理装置及び基板処理方法 図5
  • 特開-情報処理装置、基板処理装置及び基板処理方法 図6
  • 特開-情報処理装置、基板処理装置及び基板処理方法 図7
  • 特開-情報処理装置、基板処理装置及び基板処理方法 図8
  • 特開-情報処理装置、基板処理装置及び基板処理方法 図9
  • 特開-情報処理装置、基板処理装置及び基板処理方法 図10
  • 特開-情報処理装置、基板処理装置及び基板処理方法 図11
  • 特開-情報処理装置、基板処理装置及び基板処理方法 図12
  • 特開-情報処理装置、基板処理装置及び基板処理方法 図13
  • 特開-情報処理装置、基板処理装置及び基板処理方法 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024114430
(43)【公開日】2024-08-23
(54)【発明の名称】情報処理装置、基板処理装置及び基板処理方法
(51)【国際特許分類】
   H01L 21/02 20060101AFI20240816BHJP
【FI】
H01L21/02 Z
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2023020193
(22)【出願日】2023-02-13
(71)【出願人】
【識別番号】000219967
【氏名又は名称】東京エレクトロン株式会社
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】中村 隆央
(72)【発明者】
【氏名】三浦 真和
(72)【発明者】
【氏名】佐野 圭
(72)【発明者】
【氏名】奥 大輔
(57)【要約】
【課題】基板処理装置の状態に応じて基板処理装置が実行する操作を調整する。
【解決手段】被処理体を処理する基板処理装置と通信可能な情報処理装置であって、被処理体に対する一連の処理を示すレシピ情報の入力を受け付ける入力部と、レシピ情報に基づいて基板処理装置が実行する操作を示すコマンド列を生成するコマンド変換部と、基板処理装置の状態に応じてコマンド列を調整する手順を示す調整方法を生成するコマンド最適化部と、コマンド列及び調整方法を基板処理装置に出力する出力部と、を備える情報処理装置が提供される。
【選択図】図4
【特許請求の範囲】
【請求項1】
被処理体を処理する基板処理装置と通信可能な情報処理装置であって、
前記被処理体に対する一連の処理を示すレシピ情報の入力を受け付けるように構成されている入力部と、
前記レシピ情報に基づいて前記基板処理装置が実行する操作を示すコマンド列を生成するように構成されているコマンド変換部と、
前記基板処理装置の状態に応じて前記コマンド列を調整する手順を示す調整方法を生成するように構成されているコマンド最適化部と、
前記コマンド列及び前記調整方法を前記基板処理装置に出力するように構成されている出力部と、
を備える情報処理装置。
【請求項2】
請求項1に記載の情報処理装置であって、
前記レシピ情報に示された前記一連の処理を前記被処理体に対する1以上の処理を示す処理単位に分解した処理列を生成するように構成されているレシピ分解部と、
予め定めた最適化指標に基づいて前記処理列が実行される順番を最適化するように構成されている処理列最適化部と、
をさらに備える情報処理装置。
【請求項3】
請求項2に記載の情報処理装置であって、
前記コマンド変換部は、前記処理列最適化部により順番が最適化された前記処理列を前記コマンド列に変換するように構成されている、
情報処理装置。
【請求項4】
請求項3に記載の情報処理装置であって、
複数の最適化指標それぞれに基づいて前記処理列が実行される順番を最適化した複数の処理列候補を出力するように構成されている候補提示部をさらに備え、
前記コマンド変換部は、ユーザにより選択された前記処理列候補を前記コマンド列に変換するように構成されている、
情報処理装置。
【請求項5】
請求項2に記載の情報処理装置であって、
前記入力部は、最適化済み処理列の入力をさらに受け付けるように構成されており、
前記処理列最適化部は、前記最適化済み処理列に基づいて、前記処理列が実行される順番を最適化するように構成されている、
情報処理装置。
【請求項6】
請求項5に記載の情報処理装置であって、
前記処理列最適化部は、前記処理列のうち、前記最適化済み処理列と異なる部分について、前記処理列が実行される順番を最適化するように構成されている、
情報処理装置。
【請求項7】
請求項1から6のいずれかに記載の情報処理装置であって、
前記基板処理装置は、
前記被処理体に対してプロセスを行う複数の処理チャンバと、
前記被処理体を格納するロードポートと、
前記被処理体をロード又はアンロードするためのロードロック室と、
前記ロードポートと前記ロードロック室との間及び前記ロードロック室と前記処理チャンバとの間で前記被処理体を搬送する搬送機構と、
を備える情報処理装置。
【請求項8】
被処理体を処理する基板処理装置と通信可能な情報処理装置であって、
前記被処理体に対する一連の処理を示すレシピ情報の入力を受け付けるように構成されている入力部と、
前記レシピ情報に示された前記一連の処理を前記被処理体に対する1以上の処理を示す処理単位に分解した処理列を生成するように構成されているレシピ分解部と、
前記基板処理装置の状態に応じて前記処理列を整列する規則を示す整列規則を生成するように構成されている処理列最適化部と、
前記処理列及び前記整列規則を前記基板処理装置に出力するように構成されている出力部と、
を備える情報処理装置。
【請求項9】
被処理体を処理する基板処理装置であって、
前記被処理体に対する操作を示すコマンド列及び前記コマンド列を調整する手順を示す調整方法の入力を受け付けるように構成されている入力部と、
前記基板処理装置の状態及び前記調整方法に基づいて前記コマンド列を調整するように構成されているコマンド調整部と、
前記コマンド列に従って前記被処理体に対する操作を行うように構成されている操作部と、
を備える基板処理装置。
【請求項10】
被処理体を処理する基板処理装置であって、
前記被処理体に対する1以上の処理を含む処理単位が配列された処理列及び前記処理列を整列する規則を示す整列規則との入力を受け付けるように構成されている入力部と、
前記基板処理装置の状態及び前記整列規則に基づいて前記処理列が実行される順番を最適化するように構成されている処理列最適化部と、
前記処理列を前記被処理体に対する操作を示すコマンド列に変換するように構成されているコマンド変換部と、
前記コマンド列に従って前記被処理体に対する操作を行うように構成されている操作部と、
を備える基板処理装置。
【請求項11】
被処理体に対する一連の処理を示すレシピ情報の入力を受け付ける工程と、
前記レシピ情報に基づいて基板処理装置が実行する操作を示すコマンド列を生成する工程と、
前記基板処理装置の状態に応じて前記コマンド列を調整する手順を示す調整方法を生成する工程と、
前記基板処理装置の状態及び前記調整方法に基づいて前記コマンド列を調整する工程と、
前記コマンド列に従って前記被処理体に対する操作を行う工程と、
を実行する基板処理方法。
【請求項12】
被処理体に対する一連の処理を示すレシピ情報の入力を受け付ける工程と、
前記レシピ情報に示された前記一連の処理を前記被処理体に対する1以上の処理を示す処理単位に分解した処理列を生成する工程と、
基板処理装置の状態に応じて前記処理列を整列する規則を示す整列規則を生成する工程と、
前記基板処理装置の状態及び前記整列規則に基づいて前記処理列が実行される順番を最適化する工程と、
前記処理列を前記被処理体に対する操作を示すコマンド列に変換する工程と、
前記コマンド列に従って前記被処理体に対する操作を行う工程と、
を実行する基板処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置、基板処理装置及び基板処理方法に関する。
【背景技術】
【0002】
複数の処理チャンバを有する基板処理装置では、処理チャンバの空き時間を短くし、高いスループットを実現する被処理体の搬送スケジューリングが求められる。
【0003】
例えば、特許文献1には、ロードロック室にロードされたウェハの処理条件に応じて搬送シーケンスの種類を選択し、複数の動作パターンを組み合わせてスケジューリングした搬送シーケンスに従って搬送アーム装置を制御する搬送制御装置が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2013-258260号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
本開示は、基板処理装置の状態に応じて基板処理装置が実行する操作を調整する技術を提供する。
【課題を解決するための手段】
【0006】
本開示の一の態様によれば、被処理体を処理する基板処理装置と通信可能な情報処理装置であって、被処理体に対する一連の処理を示すレシピ情報の入力を受け付けるように構成されている入力部と、レシピ情報に基づいて基板処理装置が実行する操作を示すコマンド列を生成するように構成されているコマンド変換部と、基板処理装置の状態に応じてコマンド列を調整する手順を示す調整方法を生成するように構成されているコマンド最適化部と、コマンド列及び調整方法を基板処理装置に出力するように構成されている出力部と、を備える情報処理装置が提供される。
【発明の効果】
【0007】
一の側面によれば、基板処理装置の状態に応じて基板処理装置が実行する操作を調整することができる。
【図面の簡単な説明】
【0008】
図1】基板処理システムの全体構成の一例を示すブロック図である。
図2】基板処理装置のハードウェア構成の一例を示す模式図である。
図3】コンピュータのハードウェア構成の一例を示すブロック図である。
図4】第1実施形態における基板処理システムの機能構成の一例を示すブロック図である。
図5】レシピ情報の分解結果の一例を示す図である。
図6】処理列の一例を示す図である。
図7】コマンド列の一例を示す図である。
図8】処理列の順番と時間との関係の一例を示す図である。
図9】第1実施形態における基板処理方法の一例を示すフローチャートである。
図10】変形例1における基板処理システムの機能構成の一例を示すブロック図である。
図11】候補提示画面の一例を示す画面イメージである。
図12】変形例2における基板処理システムの機能構成の一例を示すブロック図である。
図13】第2実施形態における基板処理システムの機能構成の一例を示すブロック図である。
図14】第2実施形態における基板処理方法の一例を示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、図面を参照して本開示を実施するための形態について説明する。各図面において、同一構成部分には同一符号を付し、重複した説明を省略する場合がある。
【0010】
本明細書において平行、直角、直交、水平、垂直、上下、左右などの方向には、実施形態の効果を損なわない程度のずれが許容される。角部の形状は、直角に限られず、弓状に丸みを帯びてもよい。平行、直角、直交、水平、垂直、円、一致には、略平行、略直角、略直交、略水平、略垂直、略円、略一致が含まれてもよい。
【0011】
[第1実施形態]
本開示の第1実施形態は、複数の処理チャンバを有する基板処理装置が実行する操作を最適化する基板処理システムである。本実施形態における最適化の対象は、被処理体を処理チャンバに搬送する搬送スケジュールを少なくとも含む。
【0012】
複数の処理装置(処理チャンバ)を有する基板処理装置は、クラスターツールとも呼ばれ、真空搬送室から各処理装置へ被処理体を搬送する。クラスターツールでは、処理チャンバの空き時間を短縮し、全体のスループットを向上する搬送スケジュールが求められる。枚葉処理を行うクラスターツールでは、各処理チャンバで1枚ずつ被処理体を処理する。真空搬送室の内部では、搬送アームがモジュール(処理装置等)間で被処理体の搬送を行う。搬送スケジュールには、搬送アームが搬送する被処理体の順番、搬送先のモジュールの位置、及び搬送を行うタイミング等が含まれる。
【0013】
搬送スケジュールを最適化する際には、各モジュールで保持できる被処理体の枚数が制約となる。この制約により、実行可能な処理が制限されたり、デッドロックが発生したりといった問題が発生し得る。したがって、クラスターツールにおける搬送スケジュールは、各モジュールが保持可能な被処理体の枚数を考慮しながら、搬送及び処理の順番及びタイミング等を最適化することが重要となる。
【0014】
従来技術では、搬送スケジュールは、例えば以下のようにして最適化している。まず、顧客が所望のレシピ情報を入力する。次に、エンジニアが、最適な搬送スケジュールとなるように、装置パラメータ(各モジュールの動作ルール)を調整する。なお、動作ルールは、基板処理装置の状態に関する条件と、その条件を満たすときに実行する操作とを定義するルールである。そして、エンジニアは、例えば時間発展シミュレータを用いて、調整した装置パラメータで最適な搬送スケジュールを実現できるか否かを確認する。
【0015】
基板処理装置の装置パラメータは多岐にわたるため、最適な搬送スケジュールとなるように装置パラメータを調整することは、熟練したエンジニアでなければ困難な場合がある。また、このような手法では、最適化が属人的となり、装置パラメータの調整に時間がかかり、複雑な状況下では搬送スケジュールの性能担保が困難になり、顧客の要望に沿った搬送スケジュールを実現することができない場合がある。このため、搬送スケジュールを精度よくかつ効率的に最適化することが期待されている。
【0016】
本実施形態は、基板処理装置の状態に応じて基板処理装置が実行する操作をリアルタイムに調整することができる基板処理システムを実現する。一つの側面では、本実施形態における基板処理システムは、予め定めた最適化指標に基づいて調整方法を最適化するため、属人的ではない最適化を実現できる。また、一つの側面では、本実施形態における基板処理システムは、最適化を行う探索空間を適切に設定するため、最適化に要する計算時間を低減することができる。
【0017】
<システム構成>
本実施形態における基板処理システムの全体構成について、図1を参照しながら説明する。図1は、本実施形態における基板処理システムの全体構成の一例を示すブロック図である。
【0018】
図1に示すように、基板処理システム100は、工場a内に基板処理装置120a1~120a3と、制御装置121a1~121a3とを有する。基板処理装置120a1~120a3と制御装置121a1~121a3とは、有線又は無線により接続される。
【0019】
また、基板処理システム100は、工場b内に基板処理装置120b1、120b2と、制御装置121b1、121b2とを有する。基板処理装置120b1、120b2と制御装置121b1、121b2とは、有線又は無線により接続される。
【0020】
また、基板処理システム100は、工場c内に基板処理装置120c1、120c2と、制御装置121c1、121c2とを有する。基板処理装置120c1、120c2と制御装置121c1、121c2とは、有線又は無線により接続される。
【0021】
基板処理装置120a1~120a3、基板処理装置120b1、120b2、基板処理装置120c1、120c2は、ネットワークN1~N3を介してそれぞれホスト装置110a、110b、110cと接続されている。ホスト装置110a、110b、110cからの指示に基づく各制御装置の制御により、各基板処理装置が基板処理を実行する。ホスト装置110a、110b、110cは、インターネットなどのネットワークN4を介してサーバ装置150に接続されている。
【0022】
以下の説明では、基板処理装置120a1~120a3、120b1、120b2、120c1、120c2を総称して基板処理装置120ともいう。また、制御装置121a1~121a3、121b1、121b2、121c1、121c2を総称して制御装置121ともいう。ホスト装置110a、110b、110cを総称してホスト装置110ともいう。
【0023】
基板処理装置120a1~120a3、基板処理装置120b1、120b2、基板処理装置120c1、120c2は、それぞれが管理する多岐にわたるデータを自装置内に蓄積しているものとする。
【0024】
最適化装置140は、基板処理装置120a1を含む基板処理装置120に接続されることで、基板処理装置120のそれぞれに蓄積された蓄積データを継続的に取得する。図1の例は、最適化装置140が基板処理装置120a1に接続された様子を示しているが、これに限らない。以下、本実施形態では、最適化装置140が基板処理装置120a1に接続される場合の詳細について説明する。
【0025】
なお、最適化装置140は、被処理体を処理する基板処理装置と通信可能な情報処理装置の一例である。また、図1に示す基板処理システム100は一例であり、用途や目的に応じて様々なシステム構成例があることは言うまでもない。図1に示す基板処理装置120、制御装置121、ホスト装置110、サーバ装置150のような装置の区分は一例である。例えば、基板処理装置120の個数、制御装置121の個数、工場の個数、ホスト装置110の個数等は一例であり、これに限らない。
【0026】
例えば、基板処理システム100は、基板処理装置120、制御装置121、ホスト装置110、サーバ装置150の少なくとも2つが一体化された構成や、更に分割された構成等、様々な構成が可能である。例えば、制御装置121は、複数台の基板処理装置120をまとめて制御できるようにしてもよいし、基板処理装置120に対して一対一に設けるようにしてもよいし、基板処理装置120と一体化されてもよい。
【0027】
また、最適化装置140が基板処理装置120a1と接続されている例を挙げたが、最適化装置140は、他の基板処理装置120にも接続されてもよい。他の最適化装置140が、他の基板処理装置120a2等に対して一対一に接続されてもよい。
【0028】
最適化装置140は、ホスト装置110によって実現してもよいし、サーバ装置150によって実現してもよい。この場合、最適化装置140は不要となる。また、最適化装置140は、制御装置121によって実現してもよい。最適化装置140は、複数の制御装置121を纏めて制御する制御装置(図示しない)によって実現してもよい。
【0029】
<基板処理装置>
本実施形態における基板処理装置の一例について、図2を参照しながら説明する。図2は、本実施形態における基板処理装置の一例を示す図である。以下では、4つの処理チャンバを有する基板処理装置の構成例について説明するが、処理チャンバの数は2つ以上であればよく、4つに限らない。
【0030】
図2に示すように、本実施形態における基板処理装置120は、処理装置101~104と、真空搬送室200と、ロードロック室211~213と、大気搬送室220と、ロードポート231~234と、制御装置121と、を備える。
【0031】
処理装置101~104は、それぞれゲートバルブG11~G14を介して真空搬送室200と接続されている。処理装置101~104内は所定の真空雰囲気に減圧され、その内部にて被処理体の一例である基板Wに所望の処理を施す。処理装置101~104は、処理チャンバの一例である。
【0032】
真空搬送室200は、内部が所定の真空雰囲気に減圧されている。真空搬送室200には、減圧状態で基板Wを搬送可能な搬送機構201が設けられている。搬送機構201は、処理装置101~104又はロードロック室211~213に対して、基板Wを搬送する。搬送機構201は、例えば2つの搬送アーム(以下、「真空側アーム」とも呼ぶ)を有する。ただし、搬送アームは1つでもよい。
【0033】
ロードロック室211~213は、それぞれゲートバルブG21~G23を介して真空搬送室200と接続され、ゲートバルブG31~G33を介して大気搬送室220と接続されている。ロードロック室211~213内は、大気雰囲気と真空雰囲気とを切り替えることができるようになっている。
【0034】
大気搬送室220は、内部が大気雰囲気となっており、例えば清浄空気のダウンフローが形成されている。大気搬送室220の内部には、基板Wのアライメントを行う図示しないアライナが設けられている。また、大気搬送室220には、搬送機構221が設けられている。搬送機構221は、例えば1つの搬送アーム(以下、「大気側アーム」とも呼ぶ)を有する。ただし、搬送アームは2つ又はそれ以上でもよい。搬送機構221は、ロードロック室211~213、ロードポート231~234のキャリアC、又はアライナに対して、基板Wを搬送する。
【0035】
ロードポート231~234は、大気搬送室220の長辺の壁面に設けられている。ロードポート231~234は、ゲートバルブG41~G44を介して基板Wが収容されたキャリアC又は空のキャリアCが取り付けられる。キャリアCとしては、例えばFOUP(Front Opening Unified Pod)を利用できる。
【0036】
制御装置121は、基板処理装置120の各部を制御する。例えば、制御装置121は、処理装置101~104の動作、搬送機構201,221の動作、ゲートバルブG11~G14,G21~G23,G31~G33,G41~G44の開閉、ロードロック室211~213内の雰囲気の切り替え等を実行する。
【0037】
図2に示す基板処理装置120は、クラスターツールの一例である。また、処理装置101~104、搬送機構201,221、ロードロック室211~213及びロードポート231~234は、モジュールの一例である。
【0038】
<ハードウェア構成>
図1に示す基板処理システム100に含まれるホスト装置110、制御装置121、最適化装置140及びサーバ装置150は、例えば図3に示すようなハードウェア構成のコンピュータにより実現される。図3は、本実施形態におけるコンピュータのハードウェア構成の一例を示すブロック図である。
【0039】
図3に示されているように、本実施形態におけるコンピュータ500は、入力装置501、出力装置502、外部I/F(インタフェース)503、RAM(Random Access Memory)504、ROM(Read Only Memory)505、CPU(Central Processing Unit)506、通信I/F507及びHDD(Hard Disk Drive)508などを備え、それぞれがバスBで相互に接続されている。なお、入力装置501及び出力装置502は必要なときに接続して利用する形態であってもよい。
【0040】
入力装置501はキーボードやマウス、タッチパネルなどであり、作業者等が各操作信号を入力するのに用いられる。出力装置502はディスプレイ等であり、コンピュータ500による処理結果を表示する。通信I/F507はコンピュータ500をネットワークに接続するインタフェースである。HDD508は、プログラムやデータを格納している不揮発性の記憶装置の一例である。
【0041】
外部I/F503は、外部装置とのインタフェースである。コンピュータ500は外部I/F503を介してSD(Secure Digital)メモリカードなどの記録媒体503aの読み取り及び/又は書き込みを行うことができる。ROM505は、プログラムやデータが格納された不揮発性の半導体メモリ(記憶装置)の一例である。RAM504はプログラムやデータを一時保持する揮発性の半導体メモリ(記憶装置)の一例である。
【0042】
CPU506は、ROM505やHDD508などの記憶装置からプログラムやデータをRAM504上に読み出し、処理を実行することで、コンピュータ500全体の制御や機能を実現する演算装置である。
【0043】
<機能構成>
本実施形態における基板処理システムの機能構成について、図4乃至図7を参照しながら説明する。図4は、本実施形態における基板処理システムの機能構成の一例を示す図である。
【0044】
≪最適化装置≫
図4に示されているように、本実施形態における最適化装置140は、レシピ入力部301、レシピ分解部302、処理列最適化部303、コマンド変換部304、コマンド最適化部305及び制御情報出力部306を備える。処理列最適化部303は、処理列シミュレータ3031及び最適化アルゴリズム3032を含む。コマンド最適化部305は、時間発展シミュレータ3051及び最適化アルゴリズム3052を含む。
【0045】
レシピ入力部301、レシピ分解部302、処理列最適化部303、コマンド変換部304、コマンド最適化部305及び制御情報出力部306は、例えば、図3に示されているCPU506が、RAM504上にロードされたプログラムを実行することにより実現される。
【0046】
レシピ入力部301は、レシピ情報の入力を受け付ける。レシピ情報は、基板Wに対する一連の処理の内容を示す情報である。レシピ情報は、基板処理装置120のユーザがレシピを開発する際に入力する情報である。レシピ情報は、少なくともプロセスレシピと搬送レシピとを含む。プロセスレシピは、基板処理装置120がウェハに対して実行するプロセスに関するレシピである。搬送レシピは、モジュール間でウェハを搬送する制御に関するレシピである。レシピ情報には、例えば、ガス種、圧力等のプロセス条件、プロセス時間、クリーニングの頻度並びに回数、ダミーウェハの有無、及びプロセスの組合せ等が含まれる。また、レシピ情報には、チャンバ数、モジュール数、アーム数等の装置構成に関する情報が含まれてもよい。
【0047】
レシピ分解部302は、レシピ入力部301に入力されたレシピ情報に示された一連の処理を、1以上の処理を含む処理単位に分解する。以下、一連の処理を分解した処理単位の集合を「処理列」と呼ぶ。処理列は、基板Wを示す情報と当該基板Wに対して実行する処理単位を示す情報との組合せが、実行する順番に従って並べられた配列である。
【0048】
処理単位には、処理に要する時間に関する情報が含まれる。時間に関する情報は、処理に用いられるモジュールにより異なる。例えば、モジュールが搬送アームであれば、時間に関する情報は搬送アームの移動時間、搬送アームによる基板の保持時間を含む。また、例えば、モジュールが処理チャンバであれば、時間に関する情報はプロセス時間を含む。
【0049】
なお、レシピ分解部302は、予め定めた規則に従って、レシピ情報に示された一連の処理を処理単位に分解してもよい。また、レシピ分解部302は、ユーザによる指示に応じて、レシピ情報に示された一連の処理を処理単位に分解してもよい。レシピ分解部302が用いる規則は、制約条件を含んでもよい。制約条件は、例えば、クリーニング頻度、又はダミーウェハの有無等である。
【0050】
図5は、レシピ情報の分解結果の一例を示す図である。図5に示す例では、レシピ情報R1に、17個の処理P1~P17が含まれている。各処理P1~P17は、1つのモジュールが実行する1つの操作にそれぞれ対応する。
【0051】
図5に示されているように、レシピ情報R1は、8個の処理単位C1~C8に分解することができる。処理単位に分解する箇所は、任意の基準に従って決定すればよい。例えば、モジュール間で基板Wの受け渡しが発生し、後続のモジュールに空きがないと処理を継続できない箇所で処理単位を分解することができる。
【0052】
図5に示す例では、処理P1~P2において、大気側アームがロードポートでウェハ(基板Wの一例)を保持すると、後続の処理P3はロードロック室に空きがなければ実行することができない。したがって、処理P1,P2を1つの処理単位C1に含め、処理P3は次の処理単位C2に含めるとよい。
【0053】
図6は、処理列の一例を示す図である。図6に示されているように、処理列は、基板Wを示す情報(W1,W2,・・・)と、処理単位を示す情報(C1,C2,・・・)との組み合わせが、処理の順番に従って並べられた配列である。なお、図6に示す処理単位C1~C4は、図5に示した処理単位(番号)に対応している。
【0054】
処理列では、複数の基板Wに対する処理を実行可能なように、基板Wを示す情報と処理単位を示す情報との組み合わせが配列されている。例えば、基板W1に対して処理単位C1~C2を実行し、大気側アームが基板W1をロードロック室に搬送すると、大気側アームはアイドルとなる。そのため、次の基板W2に対して処理単位C1を実行し、大気側アームがロードポートで基板W2を保持することが可能となる。一方、基板W2に対して処理単位C1を実行し、大気側アームがロードポートで基板W2を保持しても、ロードロック室には基板W1が存在するため、処理単位C2を実行し、基板W2をロードロック室に搬送することはできない。
【0055】
その後、基板W1に対して処理単位C3~C4を実行し、真空側アームが基板W1をロードロック室から処理チャンバに搬送すると、ロードロック室に空きができる。そのため、基板W2に対して処理単位C2を実行し、基板W2をロードロック室に搬送することが可能となる。このようにして、レシピ分解部302は、レシピ情報を処理単位に分解し、実行可能な順番でそれらを並べることで、処理列を生成する。
【0056】
図4に戻って説明する。処理列最適化部303は、処理列シミュレータ3031及び最適化アルゴリズム3032を用いて、レシピ分解部302により生成された処理列における処理単位の順番を最適化する。
【0057】
処理列シミュレータ3031は、基板処理装置120による基板搬送を模擬するシミュレータである。処理列シミュレータ3031は、処理列を入力とし、入力された処理列に基づいて基板搬送のシミュレーションを実行する。処理列シミュレータ3031によるシミュレーション結果は、最適化アルゴリズム3032に入力される。
【0058】
処理列シミュレータ3031は、オフラインでのシミュレーションを実行する。つまり、処理列シミュレータ3031には、処理列全体が一度に入力され、将来の状態が既知な状態で処理列に示された処理を順次実行する。処理列シミュレータ3031は、すべての処理を実行した後にシミュレーション結果をまとめて出力する。
【0059】
最適化アルゴリズム3032は、処理列シミュレータ3031によるシミュレーション結果を入力とし、入力されたシミュレーション結果に基づいて、予め定めた最適化指標を満たすように、処理列が実行される順番を最適化する。最適化アルゴリズム3032により最適化された処理列は、処理列シミュレータ3031に入力される。
【0060】
最適化指標は、様々な指標を用いることができる。例えば、スループットの最大化、処理チャンバのアイドル時間の均一化、搬送する基板の順番の維持等を、最適化指標として利用することができる。
【0061】
また、最適化指標は、複数の指標を任意の重みで混合した指標を利用してもよい。例えば、スループットの最大化×0.6+アイドル時間の均一化×0.4を、最適化指標としてもよい。さらに、最適化指標は、許容範囲が設定されてもよい。例えば、アイドル時間が0秒~20秒の範囲となることを最適化指標としてもよい。
【0062】
処理列の最適化に用いるアルゴリズムは、公知のアルゴリズムを用いることができる。アルゴリズムの一例は、原始モンテカルロ法及び強化学習等である。なお、レシピ情報又は処理列の内容に応じて異なるアルゴリズムを選択してもよい。
【0063】
原始モンテカルロ法は、選択可能なすべての処理について、最初の1つの処理を選択した状態から最終状態までランダムに選択可能な処理を実行し、最終状態の評価結果に基づいて最適な処理を選択する手法である。クラスターツールにおける搬送スケジュールでは、選択可能な処理の数が比較的少数であるため、原始モンテカルロ法を用いれば、計算時間の短縮及び最適化精度の向上が期待できる。
【0064】
処理列最適化部303は、処理列シミュレータ3031と最適化アルゴリズム3032とを繰り返し実行することで、処理列における処理単位の順番を最適化する。処理列最適化部303は、予め定めた収束条件を満たすと、その時点の処理列を最適化済みの処理列として出力する。収束条件は、処理列の順番が収束したとき(例えば、入れ替えが発生しなくなったとき)、又は予め定めた回数の繰り返しを実行したとき等とすればよい。
【0065】
コマンド変換部304は、処理列最適化部303により最適化された処理列をコマンド列に変換する。コマンド列は、基板処理装置120が基板Wに対して実行する操作を示す情報である。コマンド列には、時間情報が付与されている。時間情報は、各コマンドを実行すべき時間を示す情報である。言い替えると、コマンド列は、基準時間に対する経過時間ごとに実行すべきコマンドが示された情報である。
【0066】
図7は、コマンド列の一例を示す図である。図7に示されているように、コマンド列は、時間を示す情報(T1,T2,・・・)と、コマンドの内容を示す情報との組み合わせが、時間単位で並べられた配列である。図7に示す例では、時間を示す情報は、コマンドを開始する時刻である。時間を示す情報は、コマンドの実行タイミングを定義する情報であればどのようなものでもよい。
【0067】
なお、図7に示すコマンド内容は、図5に示した処理P1~P17に対応している。ただし、コマンド内容と処理内容とは必ずしも一対一で対応しなくともよい。ある処理が複数のコマンドで実現される場合、1つの処理内容と連続する複数のコマンド内容とが対応することもある。
【0068】
図4に戻って説明する。コマンド最適化部305は、時間発展シミュレータ3051及び最適化アルゴリズム3052を用いて、コマンド変換部304により生成されたコマンド列を調整するための調整方法を最適化する。
【0069】
調整方法は、外乱に応じてコマンド列の時間情報を調整する手順を示す。外乱は、各コマンドの処理時間の変動である。外乱は、例えば、処理チャンバにおけるプロセス時間の変動、又は基板処理装置120のメンテナンス等により発生し得る。また、外乱は、例えば、基板処理装置120のメンテナンス又は障害等により、利用可能なモジュール数の変動により発生することもある。調整方法は、例えば、あるコマンドで実行したプロセスの処理時間が1秒長くなった場合、そのコマンド以降のコマンドの開始時間を1秒ずつ遅らせる、といった内容となる。
【0070】
時間発展シミュレータ3051は、基板処理装置120による基板搬送を模擬するシミュレータである。時間発展シミュレータ3051は、コマンド列を入力とし、入力されたコマンド列に基づいて基板搬送のシミュレーションを実行する。時間発展シミュレータ3051によるシミュレーション結果は、最適化アルゴリズム3052に入力される。
【0071】
時間発展シミュレータ3051は、オンラインでのシミュレーションを実行する。つまり、時間発展シミュレータ3051には、次に実行するコマンドが時間情報に従って入力され、将来の状態が未知な状態で入力されたコマンドを実行する。時間発展シミュレータ3051は、時間単位でコマンドの実行結果を出力する。
【0072】
最適化アルゴリズム3052は、時間発展シミュレータ3051によるシミュレーション結果を入力とし、入力されたシミュレーション結果に基づいて、コマンド列の時間情報及び調整方法を最適化する。最適化アルゴリズム3052により最適化されたコマンド列は、時間発展シミュレータ3051に入力される。
【0073】
コマンド列の最適化に用いるアルゴリズムは、公知のアルゴリズムを用いることができる。アルゴリズムの一例は、逆強化学習、模倣学習及びルールベース等である。なお、レシピ情報又はコマンド列の内容に応じて異なるアルゴリズムを選択してもよい。
【0074】
コマンド最適化部305は、時間発展シミュレータ3051と最適化アルゴリズム3052とを繰り返し実行することで、コマンド列の時間情報及び調整方法を最適化する。コマンド最適化部305は、予め定めた収束条件を満たすと、その時点のコマンド列及び調整方法を最適化済みのコマンド列及び調整方法として出力する。収束条件は、コマンド列が収束したとき(例えば、時間情報が変化しなくなったとき)、又は予め定めた回数の繰り返しを実行したとき等とすればよい。
【0075】
制御情報出力部306は、基板処理装置120の動作を制御する制御情報を出力する。本実施形態における制御情報は、コマンド最適化部305により最適化されたコマンド列及び調整方法を含む。
【0076】
≪基板処理装置≫
図4に示されているように、本実施形態における基板処理装置120は、制御情報入力部401、状態取得部402、コマンド調整部403及び操作部404を備える。
【0077】
制御情報入力部401、状態取得部402、コマンド調整部403及び操作部404は、例えば、図3に示されているCPU506が、RAM504上にロードされたプログラムを実行することにより実現される。
【0078】
制御情報入力部401は、基板処理装置120の動作を制御する制御情報の入力を受け付ける。制御情報には、基板処理装置120が実行する操作を示すコマンド列、及びコマンド列を調整する手順を示す調整方法が含まれる。
【0079】
状態取得部402は、基板処理装置120の状態を示す装置状態を取得する。装置状態には、基板処理装置120が備える各モジュールの状態が含まれる。装置状態には、利用可能なチャンバ数、モジュール数、アーム数等の装置構成が含まれてもよい。装置状態は、例えば、処理チャンバが処理を開始してから30秒経過した、搬送アームが基板Wを2枚保持している、といった内容を含む。
【0080】
コマンド調整部403は、状態取得部402により取得された装置状態及び制御情報入力部401に入力された調整方法に基づいて、制御情報入力部401に入力されたコマンド列の時間情報を調整する。
【0081】
操作部404は、コマンド調整部403により調整された時間情報に従って、コマンド列に示されたコマンドを実行することで、基板Wに対する操作を実行する。
【0082】
(処理列の最適化とコマンド列の最適化との関係)
本実施形態における最適化装置140は、2段階の最適化を行う。第1の最適化は、処理列最適化部303による処理単位の順番の最適化である。第2の最適化は、コマンド最適化部305による調整方法の最適化である。
【0083】
被処理体に対する一連の処理の内容をコマンド列に変換し、コマンド列の時間情報を直接最適化する場合、時間単位ごとの各モジュールの最適な動作を探索することになる。この場合、探索空間が膨大となり、現実的な計算時間では最適化を行うことが困難である。まず、被処理体に対する一連の処理の順番を最適化し、次に、最適化された順番で処理を行うコマンド列の時間情報を調整することで、それぞれの最適化の探索空間を適切に設定することができ、全体の計算量を低減することができる。
【0084】
また、処理単位の順番の最適化では、オフラインの最適化が行われるため、時間を遡って処理の並べ替えが行われることがある。図8は、処理単位の順番と時間との関係の一例を示す図である。図8に示されている例では、処理1.基板W1を処理チャンバ(PM)に搬送、処理2.処理チャンバで基板W2にプロセス実行、処理3.基板W3をロードロック室(LLM)に搬送・・・といった処理列があるとき、最適化アルゴリズム3032による最適化が行われると、処理2と処理3とが同じ時間に開始することになる。
【0085】
上記のような最適化では、最適な処理の順番を求めることができるが、オンラインで動作させることは困難である。処理1と処理2とを順番に実行した後に、処理3が入力されると、最適な処理の順番では処理2と同じ時間に開始すべきとなるが、実際には処理2の開始時間はすでに経過しており、その時間に開始することはできないからである。本実施形態では、最適化装置140がオフラインで処理の順番を最適化し、基板処理装置120がオンラインでコマンド列を調整する構成とすることで、時間を遡って処理の順番が並べ替えられることを回避し、オンラインで最適な動作を実現することが可能となっている。
【0086】
<処理手順>
本実施形態における基板処理システム100により実行される基板処理方法について、図9を参照しながら説明する。図9は、本実施形態における基板処理方法の一例を示すフローチャートである。
【0087】
ステップS1において、最適化装置140のレシピ入力部301は、ユーザによる操作に応じて、レシピ情報の入力を受け付ける。次に、レシピ入力部301は、受け付けたレシピ情報をレシピ分解部302に送る。
【0088】
ステップS2において、最適化装置140のレシピ分解部302は、レシピ入力部301からレシピ情報を受け取る。次に、レシピ分解部302は、レシピ情報に示された一連の処理を、1以上の処理を含む処理単位に分解する。これにより、初期状態の処理列が生成される。そして、レシピ分解部302は、初期状態の処理列を処理列最適化部303に送る。
【0089】
ステップS3において、最適化装置140の処理列最適化部303は、レシピ分解部302から初期状態の処理列を受け取る。次に、処理列最適化部303は、初期状態の処理列を処理列シミュレータ3031に入力する。
【0090】
処理列シミュレータ3031は、入力された処理列に基づいて基板搬送のシミュレーションを実行する。処理列シミュレータ3031によるシミュレーション結果は、最適化アルゴリズム3032に入力される。
【0091】
最適化アルゴリズム3032は、入力されたシミュレーション結果に基づいて、予め定めた最適化指標を満たすように、処理単位の順番を最適化する。最適化アルゴリズム3032により最適化された処理列は、処理列シミュレータ3031に入力される。
【0092】
処理列最適化部303は、予め定めた収束条件を満たすまで、処理列シミュレータ3031と最適化アルゴリズム3032とを繰り返し実行する。処理列最適化部303は、収束条件を満たしたとき、その時点の処理列をコマンド変換部304に送る。
【0093】
ステップS4において、最適化装置140のコマンド変換部304は、処理列最適化部303から処理列を受け取る。次に、コマンド変換部304は、処理列をコマンド列に変換する。そして、コマンド変換部304は、コマンド列をコマンド最適化部305に送る。
【0094】
ステップS5において、最適化装置140のコマンド最適化部305は、コマンド変換部304からコマンド列を受け取る。次に、コマンド最適化部305は、コマンド列を時間発展シミュレータ3051に入力する。
【0095】
時間発展シミュレータ3051は、入力されたコマンド列に基づいて基板搬送のシミュレーションを実行する。時間発展シミュレータ3051によるシミュレーション結果は、最適化アルゴリズム3052に入力される。
【0096】
最適化アルゴリズム3052は、入力されたシミュレーション結果に基づいて、コマンド列の時間情報及び調整方法を最適化する。最適化アルゴリズム3052により最適化されたコマンド列は、時間発展シミュレータ3051に入力される。
【0097】
コマンド最適化部305は、予め定めた収束条件を満たすまで、時間発展シミュレータ3051と最適化アルゴリズム3052とを繰り返し実行する。コマンド最適化部305は、収束条件を満たしたとき、その時点のコマンド列及び調整方法を制御情報出力部306に送る。
【0098】
ステップS6において、最適化装置140の制御情報出力部306は、コマンド最適化部305からコマンド列及び調整方法を受け取る。次に、制御情報出力部306は、コマンド列及び調整方法を含む制御情報を生成する。そして、制御情報出力部306は、制御情報を基板処理装置120に送信する。
【0099】
ステップS7において、基板処理装置120の制御情報入力部401は、最適化装置140から制御情報を受信する。次に、制御情報入力部401は、受信した制御情報の入力を受け付ける。そして、制御情報入力部401は、受け付けた制御情報をコマンド調整部403に送る。
【0100】
ステップS8において、基板処理装置120の状態取得部402は、基板処理装置120が備える各モジュールの状態を取得する。次に、状態取得部402は、各モジュールの状態を含む装置状態を生成する。そして、状態取得部402は、装置状態をコマンド調整部403に送る。
【0101】
ステップS9において、基板処理装置120のコマンド調整部403は、制御情報入力部401から制御情報を受け取る。また、コマンド調整部403は、状態取得部402から装置状態を受け取る。次に、コマンド調整部403は、装置状態に基づいて外乱が発生したか否かを判定する。外乱が発生した場合、コマンド調整部403は、外乱に応じた調整方法に従って、コマンド列を調整する。そして、コマンド調整部403は、調整したコマンド列を操作部404に送る。なお、外乱が発生していない場合、コマンド調整部403は、コマンド列を調整せずに、そのまま操作部404に送る。
【0102】
ステップS10において、基板処理装置120の操作部404は、コマンド調整部403からコマンド列を受け取る。次に、操作部404は、コマンド列に示された時間情報に従って、コマンド列に示されたコマンドを実行する。これにより、基板処理装置120が備える各モジュールが、基板Wに対する操作を実行する。
【0103】
ステップS11において、基板処理装置120は、コマンド列に示されたすべてのコマンドが完了したか否かを判定する。すべてのコマンドが完了した場合(YES)、基板処理装置120は基板処理方法の処理を終了する。一方、完了していないコマンドがある場合(NO)、基板処理装置120はステップS8に処理を戻す。その後、基板処理装置120は、装置状態に基づいて残りのコマンドの時間情報を調整し、すべてのコマンドが完了するまで順次残りのコマンドを実行する。
【0104】
<第1実施形態の効果>
本実施形態における最適化装置140は、被処理体に対する一連の処理を示すレシピ情報に基づいて、基板処理装置120が実行する操作を示すコマンド列と、基板処理装置120の状態に応じてコマンド列を調整する手順を示す調整方法を生成する。本実施形態における基板処理装置120は、コマンド列に従って被処理体に対する操作を行い、基板処理装置120の状態に基づいてコマンド列を調整する。したがって、本実施形態における基板処理システム100によれば、基板処理装置120の状態に応じて基板処理装置120が実行する操作を調整することができる。
【0105】
本実施形態における基板処理装置120は、基板処理装置120の状態に基づいて外乱が発生したか否かを判定し、外乱が発生した場合、外乱に応じた調整方法に従って、コマンド列を調整する。したがって、本実施形態における基板処理システム100によれば、プロセス時間の変動等のリアルタイムな外乱に対して適切に対応することができる。
【0106】
本実施形態における最適化装置140は、レシピ情報に示された一連の処理を1以上の処理を含む処理単位に分解した処理列を生成し、予め定めた最適化指標に基づいて処理単位の順番を最適化する。また、本実施形態における最適化装置140は、最適化された処理列をコマンド列に変換し、コマンド列の時間情報を最適化する。したがって、本実施形態における基板処理システム100によれば、最適化における探索空間が適切に設定され、最適化に要する計算時間を低減することができる。
【0107】
本実施形態における基板処理装置120は、被処理体に対してプロセスを行う複数の処理チャンバと、被処理体をロード又はアンロードするためのロードロック室と、処理チャンバとロードロック室との間で被処理体を搬送する搬送機構とを備える。したがって、本実施形態における基板処理システム100によれば、基板処理装置120の状態に応じて、被処理体の搬送スケジュールを最適化することができる。
【0108】
[変形例1]
第1実施形態では、予め定めた最適化指標に基づいて最適化した処理列に基づいてコマンド列及び調整方法を生成した。変形例1では、複数の最適化指標に基づいて最適化した複数の処理列のうち、ユーザにより選択された処理列に基づいてコマンド列及び調整方法を生成する。
【0109】
以下、本変形例における基板処理システム100について、第1実施形態との相違点を中心に説明する。なお、本変形例は、第1実施形態以外の各実施形態及び各変形例に対しても適用可能である。
【0110】
<機能構成>
本変形例における基板処理システムの機能構成について、図10を参照しながら説明する。図10は、本変形例における基板処理システムの機能構成の一例を示す図である。
【0111】
≪最適化装置≫
図10に示されているように、本変形例における最適化装置140は、レシピ入力部301、レシピ分解部302、処理列最適化部303、コマンド変換部304、コマンド最適化部305、制御情報出力部306及び候補提示部307を備える。本変形例における最適化装置140は、第1実施形態における最適化装置140と比較して、候補提示部307をさらに備える点が異なる。
【0112】
本変形例における処理列最適化部303は、複数の異なる最適化指標に基づいて処理列が実行される順番を最適化することで、複数の処理列候補を生成する。選択可能な最適化指標の種類、及び最適化に用いるアルゴリズムは、第1実施形態と同様である。ただし、最適化指標に応じて、最適化に用いるアルゴリズムを選択してもよい。
【0113】
候補提示部307は、処理列最適化部303により生成された処理列候補を、表示装置506等に出力する。候補提示部307は、複数の最適化指標に基づく複数の処理列候補を、選択可能な態様でユーザに提示する。
【0114】
<候補提示画面>
本変形例における候補提示部307が処理列候補を提示するための候補提示画面について、図11を参照しながら説明する。図11は、候補提示画面の一例を示す画面イメージである。
【0115】
図11に示されているように、本変形例における候補提示画面600は、搬送条件表示欄610、チャート表示欄620、操作可視化欄630、条件変更ボタン641、最適化ボタン642及び決定ボタン643を有する。
【0116】
搬送条件表示欄610は、レシピ表示欄611及び指標表示欄612を有する。レシピ表示欄611には、ユーザにより入力されたレシピ情報の内容が表示される。指標表示欄612には、現在選択されている最適化指標が表示される。
【0117】
チャート表示欄620には、現在選択されている最適化指標に基づいて最適化された処理列が、チャート図に変換されて表示される。チャート図では、基板処理装置120が備えるモジュールごとに、基準時間(0秒)からの経過時間において処理している基板W(ウェハ)が示される。
【0118】
操作可視化欄630には、チャート図に表示されている処理列に従った各モジュールの動作が可視化される。チャート表示欄620には再生ボタン621が表示されており、ユーザが再生ボタン621を押下すると、チャート図上で現在時刻(Now)が時間軸上を進行する。操作可視化欄630では、基板処理装置120を模した画像が表示されており、現在時刻の進行に伴って各モジュールで基板Wが処理される様子がアニメーションで表示される。チャート表示欄620に示す現在時刻(Now)には、操作可視化欄630に示すようにウェハ101、102、103が各モジュールに置かれている。
【0119】
条件変更ボタン641は、最適化指標を切り替えるためのボタンである。ユーザが条件変更ボタン641を押下すると、選択可能な最適化指標の選択肢が表示される。ユーザが所望の最適化指標を選択すると、指標表示欄612に新たに選択された最適化指標が表示される。同時に、チャート表示欄620に、新たに選択された最適化指標に基づいて最適化された処理列が表示される。
【0120】
最適化ボタン642は、最適化を実行するためのボタンである。例えば、ユーザがレシピ表示欄611においてレシピを編集し、最適化ボタン642を押下すると、搬送条件表示欄610に表示されている内容に基づいて、処理列の最適化が再度実行される。最適化が終わると、チャート表示欄620に新たに最適化された処理列がチャート図に変換されて表示される。
【0121】
決定ボタン643は、処理列候補を選択するためのボタンである。ユーザが決定ボタン643を押下すると、指標表示欄612に表示された最適化指標に基づく処理列候補が選択される。処理列候補が選択されると、候補提示部307は、選択された処理列候補をコマンド変換部304に送る。
【0122】
<変形例1の効果>
本変形例における最適化装置140は、複数の最適化指標それぞれに基づいて処理列を最適化した複数の処理列候補をユーザに提示し、ユーザにより選択された処理列候補をコマンド列に変換する。したがって、本変形例における基板処理システム100によれば、ユーザの要望に沿った搬送スケジュールを実現することができる。
【0123】
例えば、ある最適化指標に基づいて最適化を行った場合に、異なる観点で問題が発生することがある。具体的には、スループット重視で最適化した場合に、処理チャンバのアイドル時間にばらつきが出る等、ユーザが想定していない問題が発生する可能性がある。複数の最適化指標に基づく処理列候補をユーザに提示し、ユーザがそれらを比較しながら検討することができれば、実機で実行する前に問題を発見することができ、基板の廃棄等を抑止することが期待できる。
【0124】
[変形例2]
第1実施形態では、予め定めた最適化指標に基づいて処理単位の順番を最適化した。変形例2では、最適化済みの処理列を参照しながら処理単位の順番を最適化する。
【0125】
以下、本変形例における基板処理システム100について、第1実施形態との相違点を中心に説明する。なお、本変形例は、第1実施形態以外の各実施形態及び各変形例に対しても適用可能である。
【0126】
<機能構成>
本変形例における基板処理システムの機能構成について、図12を参照しながら説明する。図12は、本変形例における基板処理システムの機能構成の一例を示す図である。
【0127】
≪最適化装置≫
図12に示されているように、本変形例における最適化装置140は、レシピ入力部301、レシピ分解部302、処理列最適化部303、コマンド変換部304、コマンド最適化部305及び制御情報出力部306を備える。なお、本変形例における最適化装置140は、第1実施形態における最適化装置140と比較して、レシピ情報に加えて、実績データを入力とする点が異なる。
【0128】
本変形例におけるレシピ入力部301は、レシピ情報及び実績データの入力を受け付ける。実績データは、最適化済みの処理列を示すデータである。最適化済みの処理列は、入力されるレシピ情報と類似する内容であるとよい。
【0129】
例えば、10枚の基板Wを処理したときの処理列があるとき、同じ処理内容で20枚の基板Wを処理したい場合であれば、10枚の基板Wを処理したときの処理列を実績データとして入力すればよい。また、例えば、10個の処理を実行したときの処理列があるとき、さらに数個の処理を追加したレシピ情報を入力するのであれば、10個の処理を実行したときの処理列を実績データとして入力すればよい。
【0130】
本変形例における処理列最適化部303は、レシピ入力部301に入力された実績データに基づいて、処理単位の順番を最適化する。具体的には、処理列最適化部303は、レシピ分解部302により生成された処理列のうち、実績データの処理列と合致する部分については実績データの処理列を再利用する。一方、実績データの処理列と異なる部分については、予め定めた最適化指標に基づいて処理単位の順番を最適化する。
【0131】
例えば、日常的に基板Wを処理するために用いているレシピ情報があるときに、緊急に処理したい基板Wが発生したとする。この場合、緊急に処理したい基板Wを処理するレシピ情報を入力し、新しく全体を計算し直すことも可能であるが、大部分が日常的に用いているレシピ情報に基づく処理列と同様のものとなる。すでに実績のある処理列の一部を再利用することができれば、その部分に関する最適化の計算は省略することができ、大幅に計算量を低減することができる。その結果、緊急で処理したい基板Wを処理するためのリードタイムを短縮することができる。
【0132】
<変形例2の効果>
本変形例における最適化装置140は、処理列のうち、最適化済み処理列と異なる部分について、順番を最適化する。言い替えると、本変形例における最適化装置140は、実績のある処理列と同じ部分を再利用して最適化を行う。したがって、本変形例における基板処理システム100によれば、実績のあるレシピ情報と類似するレシピ情報であれば、最適化に要する計算量をさらに低減することができる。
【0133】
[第2実施形態]
第1実施形態では、最適化装置140がコマンド列及び調整方法を最適化し、基板処理装置120が装置状態及び調整方法に基づいてコマンド列を調整しながら基板Wに対する処理を実行した。第2実施形態では、最適化装置140が、処理列が実行される順番を最適化し、最適化された処理列を再現するための整列規則を生成する。基板処理装置120は装置状態及び整列規則に基づいて処理列が実行される順番を最適化し、最適化された処理列に基づいて基板Wに対する処理を実行する。
【0134】
以下、本実施形態における基板処理システム100について、第1実施形態との相違点を中心に説明する。なお、本実施形態は、第1実施形態以外の各変形例に対しても適用可能である。
【0135】
<機能構成>
本実施形態における基板処理システムの機能構成について、図13を参照しながら説明する。図13は、本実施形態における基板処理システムの機能構成の一例を示す図である。
【0136】
≪最適化装置≫
図13に示されているように、本実施形態における最適化装置140は、レシピ入力部301、レシピ分解部302、処理列最適化部303-1、制御情報出力部306及び整列規則記憶部308を備える。処理列最適化部303-1は、処理列シミュレータ3031-1及び最適化アルゴリズム3032-1を含む。本実施形態における最適化装置140は、第1実施形態における最適化装置140と比較して、コマンド変換部304及びコマンド最適化部305を備えず、整列規則記憶部308を備える点が異なる。
【0137】
整列規則記憶部308には、処理列を並べ替える規則を示す整列規則が記憶される。初期状態では、整列規則記憶部308には、整列規則の初期値が記憶されている。整列規則記憶部308には、処理列最適化部303-1で処理単位の順番が最適化されるたびに、新たな整列規則が蓄積される。
【0138】
整列規則は、最適化前の処理単位の順番と、最適化後の処理単位の順番との差分を示す情報である。具体的には、例えば、ある処理列のグルーピング、処理列の優先度付け、処理列の同期を取る場所の指定等を、整列規則として用いることができる。ただし、整列規則としてどのような情報を用いるかは、最適化アルゴリズム3032-1に応じて選択することができる。
【0139】
処理列最適化部303-1は、処理列シミュレータ3031-1及び最適化アルゴリズム3032-1を用いて、レシピ分解部302により生成された処理列における処理単位の順番を最適化する。処理列最適化部303-1は、整列規則記憶部308から整列規則を読み出し、最適化アルゴリズム3032-1に入力する。また、処理列最適化部303-1は、最適化アルゴリズム3032-1から出力された処理列に基づいて、整列規則を生成し、整列規則記憶部308に記憶する。
【0140】
本実施形態における最適化アルゴリズム3032-1は、処理列シミュレータ3031-1によるシミュレーション結果及び整列規則記憶部308から読み出した整列規則を入力し、入力されたシミュレーション結果及び整列規則に基づいて、予め定めた最適化指標を満たすように、処理単位の順番を最適化する。なお、最適化アルゴリズム3032-1は、整列規則が入力されると、その整列規則を利用してより効率的に処理単位の順番を最適化するように構成されている。
【0141】
本実施形態における制御情報出力部306は、基板処理装置120の動作を制御する制御情報を出力する。本実施形態における制御情報は、処理列最適化部303-1により最適化された処理列及びその処理列を生成したときの整列規則を含む。
【0142】
≪基板処理装置≫
図13に示されているように、本実施形態における基板処理装置120は、制御情報入力部401、状態取得部402、処理列最適化部303-2、コマンド変換部304及び操作部404を備える。処理列最適化部303-2は、処理列シミュレータ3031-2及び最適化アルゴリズム3032-2を含む。本実施形態における基板処理装置120は、第1実施形態における基板処理装置120と比較して、コマンド調整部403の代わりに処理列最適化部303-2及びコマンド変換部304を備える点が異なる。
【0143】
本実施形態における制御情報入力部401は、基板処理装置120の動作を制御する制御情報の入力を受け付ける。制御情報には、被処理体に対する処理の順番を示す処理列、及び処理列を整列する規則を示す整列規則が含まれる。
【0144】
処理列最適化部303-2は、状態取得部402により取得された装置状態に基づいて、外乱を検知する。外乱を検知した場合、処理列最適化部303-2は、処理列シミュレータ3031-2及び最適化アルゴリズム3032-2を用いて、制御情報入力部401に入力された処理列における処理単位の順番を最適化する。
【0145】
外乱の検知は、状態取得部402により取得された装置状態において、制御情報入力部401に入力された処理列から変換されたコマンド列が実行できるか否かを判定することで行う。現在の装置状態においてコマンド列が実行できる場合、外乱が発生していないと判定する。一方、現在の装置状態においてコマンド列が実行できない場合、外乱が発生したと判定する。
【0146】
第1実施形態における最適化アルゴリズム3032は、オフラインでのシミュレーションを実行する。そのため、現在時刻をまたいで処理単位が並べ替えられるおそれがある。具体的には、現在時刻よりも後に実行される処理が現在時刻よりも前に移動したり、現在時刻よりも前に実行された処理が現在時刻よりも後に移動したりすることが起こり得る。本実施形態における基板処理装置120は、リアルタイムに基板Wを処理しながら処理列を最適化するため、現在時刻よりも前に移動した処理が実行されなかったり、現在時刻よりも後に移動した処理が二重で実行されたりする等の問題が起こる。
【0147】
このような問題を回避するために、本実施形態における最適化アルゴリズム3032-2は、処理単位の順番を最適化するとき、現在時刻をまたいだ処理単位の並べ替えを行わない制約を設ける。具体的には、現在時刻よりも後の処理のみを最適化の対象とし、現在時刻よりも後の処理が現在時刻よりも前に移動することがないように、処理列が実行される順番を最適化する。
【0148】
<処理手順>
本実施形態における基板処理システム100により実行される基板処理方法について、図14を参照しながら説明する。図14は、本実施形態における基板処理方法の一例を示すフローチャートである。
【0149】
ステップS21において、最適化装置140のレシピ入力部301は、ユーザによる操作に応じて、レシピ情報の入力を受け付ける。次に、レシピ入力部301は、受け付けたレシピ情報をレシピ分解部302に送る。
【0150】
ステップS22において、最適化装置140のレシピ分解部302は、レシピ入力部301からレシピ情報を受け取る。次に、レシピ分解部302は、レシピ情報に示された一連の処理を、1以上の処理を含む処理単位に分解する。これにより、初期状態の処理列が生成される。そして、レシピ分解部302は、初期状態の処理列を処理列最適化部303-1に送る。
【0151】
ステップS3において、最適化装置140の処理列最適化部303-1は、レシピ分解部302から初期状態の処理列を受け取る。次に、処理列最適化部303-1は、処理列を処理列シミュレータ3031-1に入力する。
【0152】
続いて、処理列最適化部303-1は、整列規則記憶部308から整列規則を読み出す。次に、処理列最適化部303-1は、整列規則を最適化アルゴリズム3032-1に入力する。
【0153】
処理列最適化部303-1は、予め定めた収束条件を満たすまで、処理列シミュレータ3031-1と最適化アルゴリズム3032-1とを繰り返し実行する。処理列最適化部303-1は、収束条件を満たしたとき、その時点の処理列を制御情報出力部306に送る。
【0154】
さらに、処理列最適化部303-1は、入力された処理列及び出力する処理列に基づいて、整列規則を生成する。そして、処理列最適化部303-1は、整列規則を整列規則記憶部308に記憶する。
【0155】
ステップS24において、最適化装置140の制御情報出力部306は、処理列最適化部303-1から処理列及び整列規則を受け取る。次に、制御情報出力部306は、処理列及び整列規則を含む制御情報を生成する。そして、制御情報出力部306は、制御情報を基板処理装置120に送信する。
【0156】
ステップS25において、基板処理装置120の制御情報入力部401は、最適化装置140から制御情報を受信する。次に、制御情報入力部401は、受信した制御情報の入力を受け付ける。そして、制御情報入力部401は、受け付けた制御情報を処理列最適化部303-2に送る。
【0157】
ステップS26において、基板処理装置120の状態取得部402は、基板処理装置120が備える各モジュールの状態を取得する。次に、状態取得部402は、各モジュールの状態を含む装置状態を生成する。そして、状態取得部402は、装置状態を処理列最適化部303-2に送る。
【0158】
ステップS27において、基板処理装置120の処理列最適化部303-2は、制御情報入力部401から制御情報を受け取る。また、処理列最適化部303-2は、状態取得部402から装置状態を受け取る。次に、処理列最適化部303-2は、装置状態に基づいて、外乱を検知する。外乱を検知しなかった場合、処理列最適化部303-2は、制御情報に含まれる処理列をコマンド変換部304に送る。
【0159】
外乱を検知した場合、処理列最適化部303-2は、制御情報に含まれる処理列を処理列シミュレータ3031-2に入力する。また、処理列最適化部303-2は、制御情報に含まれる整列規則を最適化アルゴリズム3032-2に入力する。
【0160】
処理列最適化部303-2は、予め定めた収束条件を満たすまで、処理列シミュレータ3031-2と最適化アルゴリズム3032-2とを繰り返し実行する。処理列最適化部303-2は、収束条件を満たしたとき、その時点の処理列をコマンド変換部304に送る。
【0161】
ステップS28において、基板処理装置120のコマンド変換部304は、処理列最適化部303-2から処理列を受け取る。次に、コマンド変換部304は、処理列をコマンド列に変換する。そして、コマンド変換部304は、コマンド列を操作部404に送る。
【0162】
ステップS29において、基板処理装置120の操作部404は、コマンド変換部304からコマンド列を受け取る。次に、操作部404は、コマンド列に示された時間情報に従って、コマンド列に示されたコマンドを実行する。これにより、基板処理装置120が備える各モジュールが、基板Wに対する操作を実行する。
【0163】
ステップS30において、基板処理装置120は、コマンド列に示されたすべてのコマンドが完了したか否かを判定する。すべてのコマンドが完了した場合(YES)、基板処理装置120は基板処理方法の処理を終了する。一方、完了していないコマンドがある場合(NO)、基板処理装置120はステップS26に処理を戻す。その後、基板処理装置120は、装置状態に基づいて残りのコマンドの時間情報を調整し、すべてのコマンドが完了するまで順次残りのコマンドを実行する。
【0164】
<第2実施形態の効果>
本実施形態における最適化装置140は、被処理体に対する一連の処理を示すレシピ情報に基づいて、被処理体に対する1以上の処理を示す処理単位を並べた処理列と、基板処理装置120の状態に応じて処理列を整列する規則を示す整列規則を生成する。本実施形態における基板処理装置120は、処理列から変換されたコマンド列に従って被処理体に対する操作を行い、基板処理装置120の状態に基づいて処理列が実行される順番を最適化する。したがって、本実施形態における基板処理システム100によれば、基板処理装置120の状態に応じて基板処理装置120が実行する操作を調整することができる。
【0165】
[補足]
今回開示された実施形態に係る情報処理装置及び基板処理装置は、すべての点において例示であって制限的なものではない。実施形態は、添付の請求の範囲及びその主旨を逸脱することなく、様々な形態で変形及び改良が可能である。上記複数の実施形態に記載された事項は、矛盾しない範囲で他の構成も取り得ることができ、また、矛盾しない範囲で組み合わせることができる。
【0166】
本開示の基板処理方法を含むプロセスを実行する基板処理装置は、上記の基板処理装置120のように真空下で処理を行う基板処理装置に限らない。基板処理装置は、ドライエッチング、成膜などの真空下で処理を行う装置だけでなく、塗布現像、洗浄などの大気下で処理を行う装置でも適用可能である。
【0167】
以上に開示された実施形態は、例えば、以下の態様を含む。
(付記1)
被処理体を処理する基板処理装置と通信可能な情報処理装置であって、
前記被処理体に対する一連の処理を示すレシピ情報の入力を受け付けるように構成されている入力部と、
前記レシピ情報に基づいて前記基板処理装置が実行する操作を示すコマンド列を生成するように構成されているコマンド変換部と、
前記基板処理装置の状態に応じて前記コマンド列を調整する手順を示す調整方法を生成するように構成されているコマンド最適化部と、
前記コマンド列及び前記調整方法を前記基板処理装置に出力するように構成されている出力部と、
を備える情報処理装置。
(付記2)
付記1に記載の情報処理装置であって、
前記レシピ情報に示された前記一連の処理を前記被処理体に対する1以上の処理を示す処理単位に分解した処理列を生成するように構成されているレシピ分解部と、
予め定めた最適化指標に基づいて前記処理列が実行される順番を最適化するように構成されている処理列最適化部と、
をさらに備える情報処理装置。
(付記3)
付記2に記載の情報処理装置であって、
前記コマンド変換部は、前記処理列最適化部により順番が最適化された前記処理列を前記コマンド列に変換するように構成されている、
情報処理装置。
(付記4)
付記2又は付記3に記載の情報処理装置であって、
複数の最適化指標それぞれに基づいて前記処理列が実行される順番を最適化した複数の処理列候補を出力するように構成されている候補提示部をさらに備え、
前記コマンド変換部は、ユーザにより選択された前記処理列候補を前記コマンド列に変換するように構成されている、
情報処理装置。
(付記5)
付記2から付記4のいずれかに記載の情報処理装置であって、
前記入力部は、最適化済み処理列の入力をさらに受け付けるように構成されており、
前記処理列最適化部は、前記最適化済み処理列に基づいて、前記処理列が実行される順番を最適化するように構成されている、
情報処理装置。
(付記6)
付記5に記載の情報処理装置であって、
前記処理列最適化部は、前記処理列のうち、前記最適化済み処理列と異なる部分について、前記処理列が実行される順番を最適化するように構成されている、
情報処理装置。
(付記7)
付記1から付記6のいずれかに記載の情報処理装置であって、
前記基板処理装置は、
前記被処理体に対してプロセスを行う複数の処理チャンバと、
前記被処理体を格納するロードポートと、
前記被処理体をロード又はアンロードするためのロードロック室と、
前記ロードポートと前記ロードロック室との間及び前記ロードロック室と前記処理チャンバとの間で前記被処理体を搬送する搬送機構と、
を備える情報処理装置。
(付記8)
被処理体を処理する基板処理装置と通信可能な情報処理装置であって、
前記被処理体に対する一連の処理を示すレシピ情報の入力を受け付けるように構成されている入力部と、
前記レシピ情報に示された前記一連の処理を前記被処理体に対する1以上の処理を示す処理単位に分解した処理列を生成するように構成されているレシピ分解部と、
前記基板処理装置の状態に応じて前記処理列を整列する規則を示す整列規則を生成するように構成されている処理列最適化部と、
前記処理列及び前記整列規則を前記基板処理装置に出力するように構成されている出力部と、
を備える情報処理装置。
(付記9)
被処理体を処理する基板処理装置であって、
前記被処理体に対する操作を示すコマンド列及び前記コマンド列を調整する手順を示す調整方法の入力を受け付けるように構成されている入力部と、
前記基板処理装置の状態及び前記調整方法に基づいて前記コマンド列を調整するように構成されているコマンド調整部と、
前記コマンド列に従って前記被処理体に対する操作を行うように構成されている操作部と、
を備える基板処理装置。
(付記10)
被処理体を処理する基板処理装置であって、
前記被処理体に対する1以上の処理を含む処理単位が配列された処理列及び前記処理列を整列する規則を示す整列規則との入力を受け付けるように構成されている入力部と、
前記基板処理装置の状態及び前記整列規則に基づいて前記処理列が実行される順番を最適化するように構成されている処理列最適化部と、
前記処理列を前記被処理体に対する操作を示すコマンド列に変換するように構成されているコマンド変換部と、
前記コマンド列に従って前記被処理体に対する操作を行うように構成されている操作部と、
を備える基板処理装置。
(付記11)
被処理体に対する一連の処理を示すレシピ情報の入力を受け付ける工程と、
前記レシピ情報に基づいて基板処理装置が実行する操作を示すコマンド列を生成する工程と、
前記基板処理装置の状態に応じて前記コマンド列を調整する手順を示す調整方法を生成する工程と、
前記基板処理装置の状態及び前記調整方法に基づいて前記コマンド列を調整する工程と、
前記コマンド列に従って前記被処理体に対する操作を行う工程と、
を実行する基板処理方法。
(付記12)
被処理体に対する一連の処理を示すレシピ情報の入力を受け付ける工程と、
前記レシピ情報に示された前記一連の処理を前記被処理体に対する1以上の処理を示す処理単位に分解した処理列を生成する工程と、
基板処理装置の状態に応じて前記処理列を整列する規則を示す整列規則を生成する工程と、
前記基板処理装置の状態及び前記整列規則に基づいて前記処理列が実行される順番を最適化する工程と、
前記処理列を前記被処理体に対する操作を示すコマンド列に変換する工程と、
前記コマンド列に従って前記被処理体に対する操作を行う工程と、
を実行する基板処理方法。
【符号の説明】
【0168】
100 基板処理システム
110 ホスト装置
120 基板処理装置
121 制御装置
140 最適化装置
150 サーバ装置
301 レシピ入力部
302 レシピ分解部
303 処理列最適化部
304 コマンド変換部
305 コマンド最適化部
306 制御情報出力部
307 候補提示部
308 整列規則記憶部
401 制御情報入力部
402 状態取得部
403 コマンド調整部
404 操作部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14