(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0004】
ホストコンピュータからのプロセスジョブ情報の入力順序は、必ずしも、使用者が意図する処理順序に整合しているわけではない。たとえば、トランジスタ等のデバイスを作り込むべき製品基板を処理ユニットに搬入する前に、デバイスの作り込みを予定していない非製品基板が処理ユニットに搬入される場合がある。非製品基板の一つの例は、処理ユニットの内部の洗浄の都合で搬入されるユニット洗浄用基板であり、他の例は、処理条件の適否や処理ユニットの内部の環境等をモニタするためのモニタ用基板である。その他、様々な理由で、非製品基板が処理ユニットに搬入される場合がある。
【0005】
複数枚の非製品基板に対して処理ユニットで所定の処理(たとえば処理ユニット内部の洗浄)を行った後に、製品基板を当該処理ユニットで処理することが望まれる場合もある。必要枚数の非製品基板を準備できない場合には、使用された非製品基板が再度処理ユニットに搬入されて、必要枚数分の処理が繰り返される。このようなときには、必要枚数の非製品基板を一度に基板処理装置にセットすることができないため、非製品基板に対するプロセスジョブ情報が2つ以上に分かれる。一方、必要枚数の非製品基板の処理が終わる前であっても製品基板を基板処理装置にセットすることは可能であるので、2つ以上に分割された非製品基板用のプロセスジョブの間に製品基板用のプロセスジョブが割り込むこともあり得る。
【0006】
このような場合に、プロセスジョブ情報の入力順にスケジュールを作成すると、必要枚数の非製品基板の処理が実行される前に、製品基板が処理ユニットに搬入されるおそれがあり、必ずしも、使用者の意図する動作を行わせることができない。
また、ホストコンピュータからのプロセスジョブ情報の入力順は、必ずしも、処理効率を考慮された順序であるとは限らない。たとえば、60℃の薬液温度を指定した第1プロセスジョブ情報、80℃の薬液温度を指定した第2プロセスジョブ情報、60℃の薬液温度を指定した第3プロセスジョブ情報が、この順序で入力される場合があり得る。このような場合に、プロセスジョブ情報の入力順にスケジュールを作成すると、第1プロセスジョブと第2プロセスジョブとの間、および第2プロセスジョブと第3プロセスジョブとの間に、それぞれ、基板処理装置の動作を一旦停止させて、薬液温度を変更しなければならない。つまり、薬液温度を60℃から80℃に変更し、その後に80℃から60℃に戻すことになる。薬液温度の変更には、数時間を要する場合もあるから、前述のようなプロセスジョブ情報の入力順で実際の基板処理を実行すると、生産効率が悪い。
【0007】
そこで、この発明の一つの目的は、プロセスジョブ情報の入力順だけでなくプロセスジョブのカテゴリをも考慮してプロセスジョブをスケジューリングして実行できる基板処理方法および基板処理装置を提供することである。
【課題を解決するための手段】
【0008】
この発明
の一実施形態は、基板処理を実行するための処理ユニット(SPIN1〜SPIN12)を備えた基板処理装置における基板処理方法であって、外部コンピュータ(24)から、1枚または複数枚の第1基板に対する処理である第1プロセスジョブを規定する第1プロセスジョブ情報を受信する第1受信工程(S101;S121)と、外部コンピュータ(24)から、1枚または複数枚の第2基板に対する処理である第2プロセスジョブを規定する第2プロセスジョブ情報を、前記第1受信工程よりも後に受信する第2受信工程(S102,S103;S122,S123)と、前記第1プロセスジョブを前記処理ユニットで実行するための第1処理スケジュールを作成する第1処理スケジューリング工程(S109;S129,S137)と、前記第1プロセスジョブのカテゴリに基づいて属性情報を生成する属性情報生成工程(S111;S131,S139)と、前記第2プロセスジョブ情報および前記属性情報に基づいて、前記第2プロセスジョブを前記処理ユニットで実行するための第2処理スケジュールを作成する第2処理スケジューリング工程(S112,S113;S132,S133,S134,S140)と、を含む基板処理方法
を提供する。なお、括弧内の英数字は、後述の実施形態における対応構成要素等を表す。以下、この項において同じ。
【0009】
この方法によれば、外部コンピュータから第1プロセスジョブ情報および第2プロセスジョブ情報を順に受信して、それらによってそれぞれ規定される第1プロセスジョブおよび第2プロセスジョブを実行するための第1処理スケジュールおよび第2処理スケジュールが作成される。基板処理装置がそれらの第1処理スケジュールおよび第2処理スケジュールに従って動作することによって、第1プロセスジョブおよび第2プロセスジョブが実行される。
【0010】
第2処理スケジュールの作成は、第2プロセスジョブ情報に基づくだけでなく、第1プロセスジョブのカテゴリに基づいて生成される属性情報にも基づいて作成される。そのため、第1プロセスジョブのカテゴリを考慮して、第2プロセスジョブが計画される。つまり、先に情報を受信したプロセスジョブのカテゴリに応じて適切に第2プロセスジョブを計画することができる。
【0011】
たとえば、第1プロセスジョブのカテゴリに応じて、第2プロセスジョブおよびその後に受信される他のプロセスジョブの順序を適切に定めることにより、受信順序とは異なる順序でプロセスジョブを実行する計画を策定することができる。たとえば、処理ユニットのメンテナンスのためのプロセスジョブを第2プロセスジョブに先行して実行させたり、生産性が高まるようにプロセスジョブの順序を最適化したりすることができる。また、第1プロセスジョブのカテゴリに応じて、第2プロセスジョブの実行を留保することにより、第1プロセスジョブが実行された処理ユニットが第2プロセスジョブの実行のために適切な状態になるまで待機することができる。これにより、適切な状態の処理ユニットで第2プロセスジョブを実行でき、それにより、品質の高い基板処理を実現できる。
【0012】
この発明
の一実施形態では、前記属性情報生成工程(S111;S131,S139)が、前記第2処理スケジューリング工程の前に実行され
る。
第2処理スケジューリング工程よりも前に属性情報生成工程が完了していれば、第2プロセスジョブ情報および属性情報の両方に基づいて第2処理スケジュールを作成できる。それにより、無駄なスケジューリング処理が行われたり、基板処理装置の無駄な動作が生じたりすることを回避できる。
【0013】
たとえば、第2処理スケジューリング工程の後に属性情報が生成されると、第2処理スケジューリングを事後的に無効化する必要が生じるので、無駄なスケジューリング処理が行われることになる。また、第2処理スケジュールに基づいて、基板処理装置の動作が開始した後に属性情報が生成されると、第2プロセスジョブが無駄に途中まで実行されてしまう。たとえば、第2プロセスジョブが、処理ユニットへの基板搬送、処理ユニットでの基板処理、および処理ユニットからの基板搬出を含むとする。この場合、処理ユニットの前まで基板が搬送された時点で第2処理スケジュールが無効とされると、その基板をたとえば基板待機位置まで戻す必要が生じ、無駄な基板搬送動作が生じる。これらの無駄な処理または動作は、第2処理スケジューリング工程よりも前に属性情報を生成することによって回避できる。
【0014】
前記属性情報生成工程は、第2受信工程よりも前に実行されてもよい。この場合、属性情報に基づかない第2処理スケジューリング工程をより確実に回避できる。
この発明の一実施形態では、前記第1プロセスジョブのカテゴリである基板の種類、レシピで指定された処理液の種類、およびレシピで指定された処理液の温度のうちの少なくとも一つに基づいて属性情報が生成される。
この発明
の一実施形態では、前記属性情報生成工程が、前記第1プロセスジョブのカテゴリとは異なるカテゴリのプロセスジョブの前記処理ユニットにおける実行を禁止する禁止属性情報を生成する工程(S111;S13
1,S139
)を含
む。
【0015】
この方法により、第1プロセスジョブが計画された処理ユニットにおいて、第1プロセスジョブのカテゴリとは異なるカテゴリのプロセスジョブが計画されることを回避できる。換言すれば、第1プロセスジョブが計画された処理ユニットにおいて、少なくとも2回にわたって同一カテゴリのプロセスジョブが実行されることを保証できる。
とくに、次のプロセスジョブのスケジューリングよりも前に禁止属性情報を予め生成しておけば、第1プロセスジョブとは異なるカテゴリの処理が同じ処理ユニットに対して計画されることを確実に回避できる。また、第1プロセスジョブが計画された処理ユニットにおいて、別のカテゴリの処理を実行するための無駄な準備動作が計画されることを回避することもできる。
【0016】
この発明
の一実施形態では、前記第2処理スケジューリング工程が、前記禁止属性情報が生成されている場合に、前記第1プロセスジョブのカテゴリと前記第2プロセスジョブのカテゴリとの異同を判断する工程(S112a,S113a;S132a,S134a,140a)と、前記第1および第2プロセスジョブのカテゴリが同じであれば、前記処理ユニットにおいて前記第2プロセスジョブを実行する第2処理スケジュールの作成を許容し、前記第1および第2プロセスジョブのカテゴリが異なれば、前記処理ユニットにおいて前記第2プロセスジョブを実行する第2処理スケジュールの作成を禁止する工程(S112a,S113a;S132a,S134a,140a)とを含
む。
【0017】
この方法により、禁止属性情報が生成されている場合には、第1および第2プロセスジョブのカテゴリが同じであれば、第1および第2プロセスジョブの同一処理ユニットでの処理が許容される一方で、それらのカテゴリが異なれば、第1および第2プロセスジョブの同一処理ユニットでの処理が禁止される。
たとえば、或るプロセスジョブ1(第1プロセスジョブ)の情報の次に情報が受信されたプロセスジョブ2(第2プロセスジョブ)のカテゴリがプロセスジョブ1のカテゴリとは異なり、プロセスジョブ2の情報の次に情報が受信されたプロセスジョブ3(別の第2プロセスジョブ)のカテゴリがプロセスジョブ1のカテゴリと同じである場合を考える。この場合、プロセスジョブ1が計画された処理ユニットにおけるプロセスジョブ2の計画は禁止され、当該処理ユニットにおけるプロセスジョブ3の計画が許容される。したがって、当該処理ユニットにおいて、プロセスジョブ1に続いてプロセスジョブ3が実行されるように、プロセスジョブ3の処理スケジュールが作成される。プロセスジョブ2については、たとえば、別の処理ユニットにおいて実行するように処理スケジュールが作成されてもよい。禁止属性情報が取り消されれば、プロセスジョブ1が計画された処理ユニットにおけるプロセスジョブ2の計画が許容される。このようにして、禁止属性情報を利用することによって、カテゴリに応じて、プロセスジョブの順序を適切に定めることができる。
【0018】
この発明
の一実施形態では、前記第1プロセスジョブ情報が前記第1基板の種類を表す第1基板種情報を含み、前記第2プロセスジョブ情報が前記第2基板の種類を表す第2基板種情報を含み、前記カテゴリの異同を判断する工程は、前記第1基板種情報および前記第2基板種情報に基づいて前記第1および第2基板の種類の異同を判断する工程(S112a,S113a)を含
む。
【0019】
この方法では、禁止属性情報が生成されている場合に、第1および第2プロセスジョブの基板の種類が同じであれば、第1プロセスジョブが計画された処理ユニットにおける第2プロセスジョブの計画が許容される。その一方で、第1および第2プロセスジョブの基板の種類が異なる場合には、第1プロセスジョブが計画された処理ユニットにおける第2プロセスジョブの計画が禁止される。
【0020】
たとえば、或るプロセスジョブ1(第1プロセスジョブ)の情報およびその次に受信されたプロセスジョブ2(第2プロセスジョブ)の情報が異なる基板の種類を指定しており、プロセスジョブ2の情報の次に受信されたプロセスジョブ3(別の第2プロセスジョブ)の情報がプロセスジョブ1と同じ基板の種類を指定している場合を考える。この場合、プロセスジョブ1が計画された処理ユニットにおけるプロセスジョブ2の計画は禁止される。その一方で、当該処理ユニットにおけるプロセスジョブ3の計画が許容される。したがって、当該処理ユニットにおいて、プロセスジョブ1に続いてプロセスジョブ3が実行されるように、プロセスジョブ3の処理スケジュールが作成される。プロセスジョブ2については、たとえば、禁止属性情報が取り消されるまで処理スケジュールの作成が保留されるか、または別の処理ユニットにおいて実行するように処理スケジュールが作成されてもよい。禁止属性情報が取り消されれば、プロセスジョブ1が計画された処理ユニットにおけるプロセスジョブ2の計画が許容される。
【0021】
基板の種類の一つの例は、製品の製造のために用いられる製品基板である。基板の種類の他の例は、製品の製造以外の目的、たとえば処理ユニットのメンテナンス(洗浄等)または処理品質モニタのために用いられる非製品基板である。製品基板の処理に先立って、非製品基板を用いた複数のプロセスジョブの連続実行が必要とされる場合がある。
たとえば、非製品基板の処理(プロセスジョブ1)を指定するプロセスジョブ情報、製品基板の処理(プロセスジョブ2)を指定するプロセスジョブ情報、非製品基板の処理(プロセスジョブ3)を指定するプロセスジョブ情報が順に受信された場合を想定する。この場合に、プロセスジョブ1に対応するプロセスジョブ情報に基づいて禁止属性情報が生成されることにより、プロセスジョブ1が計画された処理ユニットにおける製品基板の処理計画が禁止される。したがって、プロセスジョブ1が計画された処理ユニットで、プロセスジョブ1の次にプロセスジョブ2を実行するような計画は禁止される。一方、プロセスジョブ3を当該処理ユニットでプロセスジョブ1の次に実行する計画は許容される。その結果、当該処理ユニットにおいて、プロセスジョブ1およびプロセスジョブ3を連続して実行させることができる。このように、プロセスジョブ情報の受信順序によらずに、製品基板の処理に相当する複数のプロセスジョブを連続実行させる処理スケジューリングが可能になる。
【0022】
プロセスジョブ3の計画の後に禁止属性情報が取り消されれば、その後は、当該処理ユニットにおけるプロセスジョブ2の計画が許容される。したがって、非製品基板の処理である複数のプロセスジョブを連続実行した後に、製品基板の処理を計画できる。
この発明
の一実施形態では、前記第1プロセスジョブ情報が前記第1基板に対する処理条件を表す第1処理条件情報を含み、前記第2プロセスジョブ情報が前記第2基板に対する処理条件を表す第2処理条件情報を含み、前記カテゴリの異同を判断する工程は、前記第1処理条件情報および前記第2処理条件情報に基づいて前記第1および第2基板に対する処理条件の異同を判断する工程(S132a,S134a,140a)を含む
。
【0023】
この方法では、禁止属性情報が生成されている場合に、第1および第2プロセスジョブの処理条件が同じであれば、第1プロセスジョブが計画された処理ユニットにおける第2プロセスジョブの計画が許容される。その一方で、第1および第2プロセスジョブの処理条件が異なる場合には、第1プロセスジョブが計画された処理ユニットにおける第2プロセスジョブの計画が禁止される。
【0024】
たとえば、或るプロセスジョブ1の情報(第1プロセスジョブ情報)、プロセスジョブ2の情報(第2プロセスジョブ情報)、およびプロセスジョブ3の情報(別の第2プロセスジョブ情報)が、この順序で受信された場合を考える。そして、プロセスジョブ1およびプロセスジョブ2の情報が異なる処理条件を指定しており、プロセスジョブ1およびプロセスジョブ3の情報が同じ処理条件を指定していると仮定する。この場合、プロセスジョブ1が計画された処理ユニットにおいて、プロセスジョブ1の次にプロセスジョブ2を実行するような計画は禁止される。その一方で、当該処理ユニットにおいてプロセスジョブ1の次にプロセスジョブ3を実行する計画は許容される。したがって、当該処理ユニットにおいて、プロセスジョブ1に続いてプロセスジョブ3が実行されるように、プロセスジョブ3の処理スケジュールが作成される。プロセスジョブ2については、たとえば、禁止属性情報が取り消されるまで処理スケジュールの作成が保留されるか、または別の処理ユニットにおいて実行するように処理スケジュールが作成されてもよい。禁止属性情報が取り消されれば、プロセスジョブ1が計画された処理ユニットにおけるプロセスジョブ2の計画が許容される。
【0025】
処理条件の一例は、基板処理のために用いられる処理流体の種類である。処理流体は、気体または液体である。たとえば、処理液の種類の例は、処理液の化学組成、処理液の構成液の混合比、処理液の濃度、処理液の温度などである。
たとえば、基板処理装置が複数の温度に切り換えて処理液を供給可能な処理液供給ユニット(CC1)を備えている場合を考える。ただし、処理液の温度の変更は瞬時に行うことはできず、処理液の温度の変更には、温度調整のための一定以上の時間が必要である。このような場合には、等しい処理液温度での基板処理を規定する複数のプロセスジョブを連続して処理することができれば、生産性を向上できる可能性が高い。
【0026】
たとえば、第1処理液温度(たとえば60℃)を指定するプロセスジョブ1の情報、第2処理液温度(たとえば80℃)を指定するプロセスジョブ2の情報、第1処理液温度を指定するプロセスジョブ3の情報が順に受信された場合を想定する。この場合に、プロセスジョブ1の情報に基づいて禁止属性情報が生成されることにより、プロセスジョブ1が計画された処理ユニットにおける、第1処理液温度以外の処理液温度を指定した基板処理の計画が禁止される。したがって、プロセスジョブ1が計画された処理ユニットで、プロセスジョブ1の次にプロセスジョブ2を実行するような計画は禁止される。一方、プロセスジョブ3を当該処理ユニットでプロセスジョブ1の次に実行する計画は許容される。その結果、当該処理ユニットにおいて、プロセスジョブ1およびプロセスジョブ3を連続して実行させることができる。このように、プロセスジョブ情報の受信順序によらずに、処理液温度の等しい複数のプロセスジョブを連続実行させる処理スケジューリングが可能になる。
【0027】
プロセスジョブ3の計画の後に禁止属性情報が取り消されれば、その後は、当該処理ユニットにおけるプロセスジョブ2の計画が許容される。したがって、第1処理液温度での複数のプロセスジョブを連続実行した後に、第2処理液温度での基板処理を計画できる。
基板処理装置が複数の処理ユニットを備えている場合に、処理条件の変更が複数の処理ユニットにおいて共通に生じる場合がある。具体的には、処理液供給ユニットが複数の処理ユニットに対して共通に処理液を供給するように構成されている場合が一つの例である。この場合、プロセスジョブ1を或る処理ユニットで計画すると、当該処理ユニットに処理液を供給する処理液供給ユニットが処理液を供給する他の処理ユニットにおいても処理条件が切り換わる。このように、第1プロセスジョブを或る処理ユニットに対して計画することによって他の処理ユニットの処理条件が変化する場合には、処理条件が変化する複数の処理ユニットについて他の処理条件のプロセスジョブの計画を禁止するように禁止属性情報が生成されることが好ましい。
【0028】
たとえば、第1プロセスジョブを計画した場合に、処理液供給ユニットに関連して、当該第1プロセスジョブで使用する処理液種以外の処理液種を使用する計画を禁止する禁止属性情報を生成してもよい。これにより、その処理液供給ユニットからの処理液の供給を受ける全ての処理ユニットにおいて、第1プロセスジョブで使用する処理液種以外の種類の処理液種を指定するプロセスジョブの計画が禁止される。
【0029】
この発明
の一実施形態では、前記第1処理スケジューリング工程が、前記第1基板に対する処理を実行する第1処理ユニットを特定する第1処理ユニット特定工程(109a)を含み、前記属性情報生成工程が、前記第1プロセスジョブのカテゴリとは異なるカテゴリのプロセスジョブの前記第1処理ユニットにおける実行を禁止する禁止属性情報を生成する工程(S111)であり、前記第2処理スケジューリング工程が、前記禁止属性情報が生成されている場合に、前記第1プロセスジョブのカテゴリと前記第2プロセスジョブのカテゴリとの異同を判断するカテゴリ判断工程(S112a,S113a)と、前記カテゴリ判断工程の判断結果に基づいて前記第2基板に対する処理を実行する第2処理ユニットを特定する第2処理ユニット特定工程(S112b,S113b)とを含み、前記第2処理ユニット特定工程が、前記第1および第2プロセスジョブのカテゴリが同じであれば、前記第1処理ユニットを前記第2処理ユニットとして特定し、前記第1および第2プロセスジョブのカテゴリが異なれば、前記第1処理ユニットとは異なる処理ユニットを前記第2処理ユニットとして特定す
る。
【0030】
この方法により、第1プロセスジョブを実行する第1処理ユニットが特定され、その第1処理ユニットにおいて第1プロセスジョブとは異なるカテゴリの他のプロセスジョブを実行するような計画が禁止される。それに応じて、第2プロセスジョブのカテゴリが第1プロセスジョブと同じであれば、第1処理ユニットに第2プロセスジョブが計画される。第2プロセスジョブのカテゴリが第1プロセスジョブとは異なれば、第1処理ユニットにおける第2プロセスジョブの計画は禁止され、別の処理ユニットにおいて第2プロセスジョブが計画される。これにより、第1処理ユニットでは、カテゴリが同じ複数のプロセスジョブの連続実行が保証される。
【0031】
たとえば、或るプロセスジョブ1(第1プロセスジョブ)の情報の次に情報受信されたプロセスジョブ2(第2プロセスジョブ)のカテゴリがプロセスジョブ1のカテゴリとは異なり、プロセスジョブ2の情報の次に情報受信されたプロセスジョブ3(別の第2プロセスジョブ)のカテゴリがプロセスジョブ1のカテゴリと同じである場合を考える。この場合、プロセスジョブ1が計画された処理ユニット1において、プロセスジョブ1の次にプロセスジョブ2を実行する計画は禁止され、当該処理ユニット1においてプロセスジョブ1の次にプロセスジョブ3を実行する計画は許容される。したがって、当該処理ユニット1において、プロセスジョブ1に続いてプロセスジョブ3が実行されるように、プロセスジョブ3の処理スケジュールが作成される。プロセスジョブ2については、たとえば、別の処理ユニット2において実行するように処理スケジュールが作成される。このようにして、処理ユニット1において、プロセスジョブ1,3の間にプロセスジョブ2が割り込むことを回避できる。
【0032】
前記属性情報生成工程は、前記第1処理ユニットに関連付けた禁止属性情報を生成する工程(S111)であってもよい。この場合、個々の処理ユニットに関連付けて禁止属性情報が生成される。それにより、各処理ユニットについて個別に異カテゴリのプロセスジョブの計画を禁止できる。
この発明
の一実施形態では、前記属性情報生成工程が、前記第1プロセスジョブの実行のために無効となる処理条件を表す無効条件情報を生成する工程(S131)であり、前記第2処理スケジューリング工程が、前記無効条件情報が生成されている場合に、前記第1プロセスジョブの処理条件と前記第2プロセスジョブの処理条件との異同を判断する処理条件判断工程(S132a,S134a,140a)と、前記処理条件判断工程において、前記第1および第2プロセスジョブの処理条件が異なると判断された場合には、前記無効条件情報が解除されるまで、前記第2処理スケジュールの作成を留保する工程(S133)とを含
む。
【0033】
この方法により、無効条件情報によって処理条件が無効とされることによって、第1プロセスジョブと処理条件の異なるプロセスジョブが相次いで実行されることを回避できる。無効条件情報が解除されれば、処理条件の異なるプロセスジョブの計画が許容される。こうして、プロセスジョブ情報の受信順序によらずに、処理条件が同じプロセスジョブを連続させることができる。それにより、処理条件の変更回数を少なくして、生産性を向上することができる。
【0034】
この発明
の一実施形態では、前記第1プロセスジョブ情報が、前記第1基板に対する処理の内容を規定した第1レシピを含み、前記第1処理スケジューリング工程が、前記第1レシピに基づいて、前記第1基板に対する処理を実行する第1処理ユニットを特定する工程(S109a,S129a,137b)を含
む。
【0035】
この方法によれば、プロセスジョブ情報は基板処理の内容を規定したレシピを含むので、それに基づいて、プロセスジョブを実行すべき処理ユニットを特定できる。レシピが、第1基板に対する処理を実行すべき処理ユニットを指定する処理ユニット指定情報を含んでいてもよい。この場合、処理ユニット指定情報に基づいて処理ユニットが特定される。また、レシピが、処理ユニット指定情報を含んでいなくてもよい。この場合、処理条件その他の処理内容に基づいて、処理ユニットが特定されればよい。
【0036】
この発明
の一実施形態では、前記第1プロセスジョブ情報が、前記第1基板に対する処理を実行すべき処理ユニットを指定する処理ユニット指定情報を含み、前記第1処理スケジューリング工程が、前記処理ユニット指定情報に基づいて、前記第1基板に対する処理を実行する第1処理ユニットを特定する工程(S109a,S129a,137b)を含
む。
【0037】
この方法では、プロセスジョブ情報が、処理ユニット指定情報を含むので、その処理ユニット指定情報に基づいてプロセスジョブを実行すべき処理ユニットを特定できる。処理ユニット指定情報は、1つの処理ユニットを指定する情報であってもよいし、複数の処理ユニットを指定する情報であってもよい。複数の処理ユニットが指定されている場合には、その複数の処理ユニットのうちのいずれかを選択して、当該プロセスジョブを構成する基板のための処理を計画すればよい。
【0038】
この発明
の一実施形態は、基板処理を実行するための処理ユニット(SPIN1〜SPIN12)と、前記処理ユニットを制御する制御ユニット(20)とを含む、基板処理装置
を提供する。前記制御ユニットは、外部コンピュータ(24)から、1枚または複数枚の第1基板に対する処理である第1プロセスジョブを規定する第1プロセスジョブ情報を受信する第1受信手段(22,S101;S121)と、外部コンピュータ(24)から、1枚または複数枚の第2基板に対する処理である第2プロセスジョブを規定する第2プロセスジョブ情報を、前記第1プロセスジョブ情報の受信よりも後に受信する第2受信手段(22,S102,S103;S122,S123)と、前記第1プロセスジョブを前記処理ユニットで実行するための第1処理スケジュールを作成する第1処理スケジューリング手段(25,S109;S129,S137)と、前記第1プロセスジョブのカテゴリに基づいて属性情報を生成する属性情報生成手段(25,S111;S131,S139)と、前記第2プロセスジョブ情報および前記属性情報に基づいて、前記第2プロセスジョブを前記処理ユニットで実行するための第2処理スケジュールを作成する第2処理スケジューリング手段(25,S112,S113;S132,S133,S134,S140)と、を含む。
【0039】
この発明
の一実施形態では、前記属性情報生成手段が、前記第2処理スケジューリング手段が前記第2処理スケジュールを作成する前に前記属性情報を生成す
る。
この発明の一実施形態では、前記属性情報生成手段は、前記第1プロセスジョブのカテゴリである基板の種類、レシピで指定された処理液の種類、およびレシピで指定された処理液の温度のうちの少なくとも一つに基づいて属性情報を生成する。
この発明
の一実施形態では、前記属性情報生成手段が、前記第1プロセスジョブのカテゴリとは異なるカテゴリのプロセスジョブの前記処理ユニットにおける実行を禁止する禁止属性情報を生成す
る。
【0040】
この発明
の一実施形態では、前記第2処理スケジューリング手段が、前記禁止属性情報が生成されている場合に、前記第1プロセスジョブのカテゴリと前記第2プロセスジョブのカテゴリとの異同を判断する手段(25,S112a,S113a;S132a,S134a,140a)と、前記第1および第2プロセスジョブのカテゴリが同じであれば、前記処理ユニットにおいて前記第2プロセスジョブを実行する第2処理スケジュールの作成を許容し、前記第1および第2プロセスジョブのカテゴリが異なれば、前記処理ユニットにおいて前記第2プロセスジョブを実行する第2処理スケジュールの作成を禁止する手段(25,S112a,S113a;S132a,S134a,140a)とを含
む。
【0041】
この発明
の一実施形態では、前記第1プロセスジョブ情報が前記第1基板の種類を表す第1基板種情報を含み、前記第2プロセスジョブ情報が前記第2基板の種類を表す第2基板種情報を含み、前記カテゴリの異同を判断する手段(25,S112a,S113a)は、前記第1基板種情報および前記第2基板種情報に基づいて前記第1および第2基板の種類の異同を判断す
る。
【0042】
この発明
の一実施形態では、前記第1プロセスジョブ情報が前記第1基板に対する処理条件を表す第1処理条件情報を含み、前記第2プロセスジョブ情報が前記第2基板に対する処理条件を表す第2処理条件情報を含み、前記カテゴリの異同を判断する手段(25,S132a,S134a,140a)は、前記第1処理条件情報および前記第2処理条件情報に基づいて前記第1および第2基板に対する処理条件の異同を判断す
る。
【0043】
この発明
の一実施形態では、前記第1処理スケジューリング手段が、前記第1基板に対する処理を実行する第1処理ユニットを特定する第1処理ユニット特定手段(25,109a)を含み、前記属性情報生成手段(25,S111)が、前記第1プロセスジョブのカテゴリとは異なるカテゴリのプロセスジョブの前記第1処理ユニットにおける実行を禁止する禁止属性情報を生成し、前記第2処理スケジューリング手段が、前記禁止属性情報が生成されている場合に、前記第1プロセスジョブのカテゴリと前記第2プロセスジョブのカテゴリとの異同を判断するカテゴリ判断手段(25,S112a,S113a)と、前記カテゴリ判断手段の判断結果に基づいて前記第2基板に対する処理を実行する第2処理ユニットを特定する第2処理ユニット特定手段(25,S112b,S113b)とを含み、前記第2処理ユニット特定手段が、前記第1および第2プロセスジョブのカテゴリが同じであれば、前記第1処理ユニットを前記第2処理ユニットとして特定し、前記第1および第2プロセスジョブのカテゴリが異なれば、前記第1処理ユニットとは異なる処理ユニットを前記第2処理ユニットとして特定す
る。
【0044】
この発明
の一実施形態では、前記属性情報生成手段(25,S131)が、前記第1プロセスジョブの実行のために無効となる処理条件を表す無効条件情報を生成し、前記第2処理スケジューリング手段が、前記無効条件情報が生成されている場合に、前記第1プロセスジョブの処理条件と前記第2プロセスジョブの処理条件との異同を判断する処理条件判断手段(25,S132a,S134a,140a)と、前記処理条件判断手段において、前記第1および第2プロセスジョブの処理条件が異なると判断された場合には、前記無効条件情報が解除されるまで、前記第2処理スケジュールの作成を留保する手段(25,S133)とを含
む。
【0045】
この発明
の一実施形態では、前記第1プロセスジョブ情報が、前記第1基板に対する処理の内容を規定した第1レシピを含み、前記第1処理スケジューリング手段(25,S109a,S129a,137b)が、前記第1レシピに基づいて、前記第1基板に対する処理を実行する第1処理ユニットを特定す
る。
【0046】
この発明
の一実施形態では、前記第1プロセスジョブ情報が、前記第1基板に対する処理を実行すべき処理ユニットを指定する処理ユニット指定情報を含み、前記第1処理スケジューリング手段が(25,S109a,S129a,137b)、前記処理ユニット指定情報に基づいて、前記第1基板に対する処理を実行する第1処理ユニットを特定す
る。
【発明を実施するための形態】
【0048】
以下では、この発明の実施の形態を、添付図面を参照して詳細に説明する。
図1は、この発明の一実施形態に係る基板処理装置のレイアウトを示す図解的な平面図であり、
図2はその図解的な側面図である。この基板処理装置は、インデクサセクション1と、処理セクション2と、薬液キャビネットCC1とを含む。処理セクション2は、インデクサセクション1との間で基板Wを受け渡しするための受け渡しユニットPASSを備えている。インデクサセクション1は、未処理の基板Wを受け渡しユニットPASSに渡し、受け渡しユニットPASSから処理済みの基板Wを受け取る。処理セクション2は、受け渡しユニットPASSから未処理の基板Wを受け取って、その基板Wに対して、処理剤(処理液または処理ガス)を用いた処理、紫外線等の電磁波を用いた処理、物理洗浄処理(ブラシ洗浄、スプレーノズル洗浄等)などの各種の処理を施す。そして、処理セクション2は、処理後の基板Wを受け渡しユニットPASSに渡す。
【0049】
インデクサセクション1は、複数のステージST1〜ST4と、インデクサロボットIRとを含む。
ステージST1〜ST4は、複数枚の基板W(たとえば半導体ウエハ)を積層状態で収容した基板収容器Cをそれぞれ保持することができる基板収容器保持部である。基板収容器Cは、基板Wを密閉した状態で収納するFOUP(Front Opening Unified Pod)であってもよいし、SMIF(Standard Mechanical Inter Face)ポッド、OC(Open Cassette)等であってもよい。たとえば、基板収容器CをステージST1〜ST4に載置したとき、基板収容器Cでは、水平姿勢の複数枚の基板Wが互いに間隔を開けて鉛直方向に積層された状態となる。
【0050】
インデクサロボットIRは、たとえば、基台部6と、多関節アーム7と、一対のハンド8A,8Bとを含む。基台部6は、たとえば、当該基板処理装置のフレームに固定されている。多関節アーム7は、水平面に沿って回動可能な複数本のアーム部を互いに回動可能に結合して構成されており、アーム部の結合箇所である関節部でアーム部間の角度を変更することによって、屈伸するように構成されている。多関節アーム7の基端部は、基台部6に対して、鉛直軸線回りの回動が可能であるように結合されている。さらに、多関節アーム7は、基台部6に対して昇降可能に結合されている。換言すれば、基台部6には、多関節アーム7を昇降させるための昇降駆動機構、多関節アーム7を鉛直軸線回りに回動させるための回動駆動機構が内蔵されている。また、多関節アーム7には、各アーム部を独立して回動させるための個別回動駆動機構が備えられている。多関節アーム7の先端部に、鉛直軸線回りの個別回動および水平方向への個別進退が可能であるように、ハンド8A,8Bが結合されている。多関節アーム7には、ハンド8A,8Bを鉛直軸線回りに個別に回動させるためのハンド回動駆動機構と、ハンド8A,8Bを水平方向に個別に進退させるためのハンド進退機構とが備えられている。ハンド8A,8Bは、たとえば、1枚の基板Wをそれぞれ保持できるように構成されている。なお、ハンド8A,8Bは上下に重なった状態で配置されていてもよいが、
図1では、明瞭化のために、ハンド8A,8Bを紙面に平行な方向(水平方向)にずらして描いてある。
【0051】
この構成により、インデクサロボットIRは、いずれかのステージST1〜ST4に保持された基板収容器Cから一枚の未処理基板Wをハンド8Aで搬出して受け渡しユニットPASSに渡すように動作する。さらに、インデクサロボットIRは、受け渡しユニットPASSから一枚の処理済み基板Wをハンド8Bで受け取って、いずれかのステージST1〜ST4に保持された基板収容器Cに収容するように動作する。
【0052】
処理セクション2は、複数(この実施形態では12個)の処理ユニットSPIN1〜SPIN12と、主搬送ロボットCRと、前述の受け渡しユニットPASSとを含む。
処理ユニットSPIN1〜SPIN12は、この実施形態では、立体的に配置されている。より具体的には、三層構造をなすように複数の処理ユニットSPIN1〜SPIN12が配置されており、各層部分に4つの処理ユニットが配置されている。すなわち、第1層部分に4つの処理ユニットSPIN1,SPIN4,SPIN7,SPIN10が配置され、第2層部分に別の4つの処理ユニットSPIN2,SPIN5,SPIN8,SPIN11が配置され、第3層部分にさらに別の処理ユニットSPIN3,SPIN6,SPIN9,SPIN12が配置されている。
【0053】
さらに具体的には、平面視において処理セクション2の中央に主搬送ロボットCRが配置されており、この主搬送ロボットCRとインデクサロボットIRとの間に受け渡しユニットPASSが配置されている。受け渡しユニットPASSを挟んで対向するように、3つの処理ユニットSPIN1〜SPIN3を積層した第1処理ユニット群G1と、別の3つの処理ユニットSPIN4〜SPIN6を積層した第2処理ユニット群G2とが配置されている。そして、第1処理ユニット群G1に対してインデクサロボットIRから遠い側に隣接するように、3つの処理ユニットSPIN7〜SPIN9を積層した第3処理ユニット群G3が配置されている。同様に、第2処理ユニット群G2に対してインデクサロボットIRから遠い側に隣接するように、3つの処理ユニットSPIN10〜SPIN12を積層した第4処理ユニット群G4が配置されている。第1〜第4処理ユニット群G1〜G4によって、主搬送ロボットCRが取り囲まれている。
【0054】
主搬送ロボットCRは、たとえば、基台部11と、多関節アーム12と、一対のハンド13A,13Bとを含む。基台部11は、たとえば、当該基板処理装置のフレームに固定されている。多関節アーム12は、水平面に沿って延びた複数本のアーム部を互いに回動可能に結合して構成されており、アーム部の結合箇所である関節部でアーム部間の角度を変更することによって、屈伸するように構成されている。多関節アーム12の基端部は基台部11に対して、鉛直軸線回りの回動が可能であるように結合されている。さらに、多関節アーム12は、基台部11に対して昇降可能に結合されている。換言すれば、基台部11には、多関節アーム12を昇降させるための昇降駆動機構、多関節アーム12を鉛直軸線回りに回動させるための回動駆動機構が内蔵されている。また、多関節アーム12には、各アーム部を独立して回動させるための個別回動駆動機構が備えられている。多関節アーム12の先端部に、鉛直軸線回りの個別回動および水平方向への個別進退が可能であるように、ハンド13A,13Bが結合されている。多関節アーム12には、ハンド13A,13Bを鉛直軸線回りに個別に回動させるためのハンド回動駆動機構と、ハンド13A,13Bを水平方向に個別に進退させるためのハンド進退機構とが備えられている。ハンド13A,13Bは、たとえば、1枚の基板Wをそれぞれ保持できるように構成されている。なお、ハンド13A,13Bは上下に重なった状態で配置されていてもよいが、
図1では、明瞭化のために、ハンド13A,13Bを紙面に平行な方向(水平方向)にずらして描いてある。
【0055】
この構成により、主搬送ロボットCRは、受け渡しユニットPASSから未処理の一枚の基板Wをハンド13Aで受け取り、その未処理の基板Wをいずれかの処理ユニットSPIN1〜SPIN12に搬入する。また、主搬送ロボットCRは、処理ユニットSPIN1〜SPIN12で処理された処理済みの基板Wをハンド13Bで受け取り、その基板Wを受け渡しユニットPASSに渡す。
【0056】
処理ユニットSPIN1〜SPIN12は、基板Wを1枚ずつ処理する枚葉型の処理ユニットである。処理ユニットSPIN1〜SPIN12は、たとえば、1枚の基板Wを水平姿勢で保持して回転させるスピンチャック15と、スピンチャック15に対して処理液(薬液またはリンス液)を供給する処理液ノズル16とを処理室17(チャンバ)内に備えた、回転液処理ユニットであってもよい。
図2では、処理ユニットSPIN3についてのみ、その内部構成を示し、他の処理ユニットの内部構成の図示を省いてある。
【0057】
薬液キャビネットCC1は、処理ユニットSPIN1〜SPIN12に処理液としての薬液を供給する処理液供給ユニットの一例である。この実施形態では、薬液キャビネットCC1は、全ての処理ユニットSPIN1〜SPIN12に共通に薬液を供給するように構成されている。ただし、複数の薬液キャビネットを設けて、各薬液キャビネットが別の一つまたは複数の処理ユニットに対して薬液をそれぞれ供給する構成としてもよい。薬液キャビネットCC1は、薬液を貯留するタンク3と、タンク3内の薬液の温度を調節する温度調節ユニット4と、タンク3内の薬液を処理ユニットSPIN1〜SPIN12に送り出すポンプ5とを備えている。
【0058】
図3は、前記基板処理装置の電気的構成を説明するためのブロック図である。基板処理装置は、制御ユニットとしてのコンピュータ20を備えている。コンピュータ20は、処理ユニットSPIN1〜SPIN12、薬液キャビネットCC1、主搬送ロボットCRおよびインデクサロボットを制御する。コンピュータ20は、パーソナルコンピュータ(FAパソコン)の形態を有していてもよい。コンピュータ20は、制御部21と、出入力部22と、記憶部23とを備えている。制御部21は、CPU等の演算ユニットを含む。出入力部22は、表示ユニット等の出力機器と、キーボード、ポインティングデバイス、タッチパネル等の入力機器とを含む。さらに、出入力部22は、外部コンピュータであるホストコンピュータ24との通信のための通信モジュールを含む。記憶部23は、固体メモリデバイス、ハードディスクドライブ等の記憶装置を含む。
【0059】
制御部21は、スケジューリング機能部25と、処理実行指示部26とを含む。スケジューリング機能部25は、基板Wを基板収容器Cから搬出し、処理ユニットSPIN1〜SPIN12のうちの一つ以上で処理した後、基板収容器Cに収容するために、基板処理装置のリソースを時系列に従って作動させるための計画(スケジュール)を作成する。処理実行指示部26は、スケジューリング機能部25によって作成されたスケジュールに従って、基板処理装置のリソースを作動させる。リソースとは、基板処理装置に備えられ、基板の処理のために用いられる各種のユニットであり、具体的には、処理ユニットSPIN1〜SPIN12、インデクサロボットIR、主搬送ロボットCR、薬液キャビネットCC1およびそれらの構成要素を含む。
【0060】
記憶部23は、制御部21が実行するプログラム30と、ホストコンピュータ24から受信したプロセスジョブデータ(プロセスジョブ情報)40と、スケジューリング機能部25によって作成されたスケジュールデータ50とを含む各種データ等を記憶するように構成されている。
記憶部23に記憶されたプログラム30は、制御部21をスケジューリング機能部25として作動させるためのスケジュール作成プログラム31と、制御部21を処理実行指示部26として作動させるための処理実行プログラム32とを含む。
【0061】
プロセスジョブデータ40は、各基板Wに付与されたプロセスジョブ(PJ)符号と、プロセスジョブ符号に対応付けられたレシピとを含む。
レシピは、基板処理内容を定義したデータであり、基板処理条件および基板処理手順を含む。より具体的には、基板種情報、並行処理ユニット情報、使用処理液情報、処理時間情報等を含む。基板種情報は、処理対象の基板の種類を表す情報である。基板の種類の具体例は、製品を作り込むために使用される製品基板、処理ユニットのメンテナンス等のために使用され、製品の製造には使用されない非製品基板などである。並行処理ユニット情報とは、使用可能な処理ユニットを指定する処理ユニット指定情報であり、指定された処理ユニットによる並行処理が可能であることを表す。換言すれば、指定処理ユニットのうちの一つが使用できないときには、それ以外の指定処理ユニットによる代替が可能であることを表す。「使用できないとき」とは、当該処理ユニットが別の基板Wの処理のために使用中であるとき、当該処理ユニットが故障中であるとき、オペレータが当該処理ユニットで基板Wの処理をさせたくないと考えているとき、などである。使用処理液情報とは、基板処理のために用いる処理液の種類を指定する情報である。具体例は、薬液の種類および薬液の温度を指定する情報である。処理時間情報とは、処理液を供給する継続時間などである。使用処理液情報および処理時間情報は、処理条件情報の例である。
【0062】
プロセスジョブとは、共通の処理が施されるべき1枚または複数枚の基板Wに対して行われる当該処理をいう。プロセスジョブ符号とは、プロセスジョブを識別するための識別情報(基板群識別情報)である。すなわち、共通のプロセスジョブ符号が付与された複数枚の基板Wには、当該プロセスジョブ符号に対応付けられたレシピによる共通の処理が施される。ただし、異なるプロセスジョブ符号に対応する基板処理内容(レシピ)が同じである場合もあり得る。たとえば、処理順序(基板収容器Cからの払い出し順序)が連続している複数枚の基板Wに対して共通の処理が施されるとき、それらの複数枚の基板Wに対して共通のプロセスジョブ符号が付与される。
【0063】
制御部21は、各基板Wに対するプロセスジョブデータを、ホストコンピュータ24から出入力部22を介して取得し、記憶部23に記憶させる。プロセスジョブデータの取得および記憶は、各基板Wに対するスケジューリングが実行されるよりも前に行われればよい。たとえば、基板収容器CがステージST1〜ST4に保持された直後に、ホストコンピュータ24から制御部21に当該基板収容器Cに収容された基板Wに対応するプロセスジョブデータが与えられてもよい。スケジューリング機能部25は、記憶部23に格納されたプロセスジョブデータ40に基づいて各プロセスジョブを計画し、その計画を表すスケジュールデータ50を記憶部23に格納する。処理実行指示部26は、記憶部23に格納されたスケジュールデータ50に基づいて、インデクサロボットIR、主搬送ロボットCR、処理ユニットSPIN1〜SPIN12、および薬液キャビネットCC1を制御することにより、基板処理装置にプロセスジョブを実行させる。
【0064】
図4〜
図7は、スケジューリング機能部25による処理例を説明するためのフローチャートである。より具体的には、制御部21(コンピュータ20)がスケジュール作成プログラム31を実行することによって、所定の制御周期で繰り返し行われる処理が表されている。換言すれば、スケジュール作成プログラム31には、
図4〜
図7に示す処理をコンピュータに実行させるようにステップ群が組み込まれている。
【0065】
ホストコンピュータ24は、プロセスジョブデータを制御部21に与えて、そのプロセスジョブデータによって定義されるプロセスジョブの開始を指示する。制御部21は、そのプロセスジョブデータを受信して記憶部23に格納する(ステップS1,S2)。そのプロセスジョブデータを用いて、スケジューリング機能部25は、プロセスジョブを実行するためのスケジューリングを行う。
【0066】
スケジューリング機能部25は、まず、各基板を処理するための仮タイムテーブルを作成する(ステップS3)。たとえば、プロセスジョブデータにおいて或るプロセスジョブ符号に対応付けられたレシピが、処理ユニットSPIN1〜SPIN12の並行処理を指定しているとする。すなわち、当該レシピに従う基板処理が、12個の処理ユニットSPIN1〜SPIN12のいずれにおいても実行可能である場合を考える。この場合、当該プロセスジョブ符号が付与された基板Wが処理を受けるときに通る経路は、12通りである。すなわち、その基板Wの処理のために選択し得る経路は、処理ユニットSPIN1〜SPIN12のいずれかを通る12個の経路である。そこで、スケジューリング機能部25は、その12個の経路に対応した仮タイムテーブルを各基板に対して作成する。
【0067】
処理ユニットSPIN1を通る経路に対応した仮タイムテーブルを
図8に示す。この仮タイムテーブルは、インデクサロボットIRによる基板収容器Cからの基板Wの搬出(Get)を表すブロックと、インデクサロボットIRによる当該基板Wの受け渡しユニットPASSへの搬入(Put)を表すブロックと、主搬送ロボットCRによる受け渡しユニットPASSからの当該基板Wの搬出(Get)を表すブロックと、主搬送ロボットCRによる当該基板Wの処理ユニットSPIN1への搬入(Put)を表すブロックと、処理ユニットSPIN1による当該基板Wに対する処理を表す処理ブロックと、主搬送ロボットCRによる処理ユニットSPIN1からの処理済みの基板Wの搬出(Get)を表すブロックと、主搬送ロボットCRによる当該基板Wの受け渡しユニットPASSへの搬入(Put)を表すブロックと、インデクサロボットIRによる当該基板Wの受け渡しユニットPASSからの搬出(Get)を表すブロックと、インデクサロボットIRによる当該基板Wの基板収容器Cへの搬入(Put)を表すブロックとを含む。スケジューリング機能部25は、これらのブロックを時間軸上で重なり合いのないように順番に配置することによって、仮タイムテーブルを作成する。さらに、
図8の仮タイムテーブルは、処理ブロックが配置された期間中において、薬液キャビネットCC1からの薬液の供給を表す薬液供給ブロックを含む。
【0068】
スケジューリング機能部25は、同じ基板Wに対して、処理ユニットSPIN2〜SPIN12をそれぞれ通る経路に対応した同様の仮タイムテーブル(処理ブロックを処理ユニットSPIN2〜SPIN12にそれぞれ配置した仮タイムテーブル)を作成する。こうして、一枚の基板Wに対して合計12経路分の仮タイムテーブルが作成される。
一方、
図4に示すように、スケジューリング機能部25は、プロセスジョブデータに基づいて、プロセスジョブのカテゴリを判別する(ステップS4)。カテゴリとは、処理の種別である。より具体的には、処理対象の基板の種類は、カテゴリの一つの例である。カテゴリの他の例は、基板の処理条件である。より具体的には、プロセスジョブデータ中のレシピで指定された処理液(とくに薬液)の種類、処理液の温度などが基板の処理条件の例である。
【0069】
スケジューリング機能部25は、プロセスジョブのカテゴリを判別して、必要に応じて、仮想リソースの計画を追加する(ステップS5,S6)。仮想リソースとは、基板処理装置に実際に備えられたユニットに対応する実リソースではなく、制御の都合上、仮想的に設けられるリソースである。スケジューリング機能部25は、必要に応じて仮想リソースを追加して(ステップS5,S6)、実リソースおよび仮想リソースを利用したスケジュールを作成する。
【0070】
仮想リソースの一例は、製品リソースである。
図8には、処理ユニットSPIN1〜SPIN12に対応した製品リソースとして、「SPIN1製品」リソース、「SPIN2製品」リソース、…、「SPIN12製品」リソースを示す。製品リソースとは、処理ユニットでの処理対象が製品基板であるときに用いられる仮想的なユニットを表す仮想リソースである。具体的には、製品基板を処理するための処理ブロックと同じ期間に、当該処理ブロックが計画される処理ユニットに対して、製品リソースを占有する製品処理ブロックが配置される(
図8参照)。非製品基板に対しては、製品リソースを利用するためのブロックは配置されない。したがって、或る処理ユニットの製品リソースが占有されている期間であっても、当該処理ユニットの同期間に対して製品処理ブロックが配置されていなければ、非製品基板の処理を計画することができる。
【0071】
仮想リソースの他の例は、処理条件リソースである。処理条件リソースとは、処理ユニットでの使用可能な処理条件に対応する仮想的なユニットを表す仮想リソースである。処理条件リソースの一つの例は、使用薬液の温度を表す薬液温度リソースである。
図8には、薬液キャビネットCC1からの60℃の薬液供給を表す薬液温度リソースとしての「CC1薬液60℃」リソースと、薬液キャビネットCC1からの80℃の薬液供給を表す薬液温度リソースとしての「CC1薬液80℃」リソースとを示す。たとえば、プロセスジョブのレシピが、薬液キャビネットCC1からの60℃の薬液供給を指定しているとき、薬液キャビネットCC1のリソース(実リソース)の使用とともに、60℃の薬液の使用を表す薬液温度リソースを使う計画が行われる。すなわち、処理ブロックが配置される期間の一部に薬液キャビネットCC1の使用を表す薬液供給ブロックが配置され、その薬液供給ブロックと同じ期間に、「CC1薬液60℃」リソースに対して60℃の薬液の使用を表す「60℃薬液」ブロックが配置される。
【0072】
図8には仮想リソースとして、「SPIN1製品」リソース〜「SPIN12製品」リソース、「CC1薬液60℃」リソース、「CC1薬液80℃」リソースを示してあるが、これらは必要時に追加されれば良い。すなわち、仮タイムテーブルは、不要な仮想リソースの記述を含む必要はない。
薬液キャビネットCC1が同時に異なる2つ以上の温度の薬液供給が不可能な構成の場合には、同時には1種類の温度の薬液供給のみが計画可能である。異なる温度の薬液を供給するためには、タンク3(
図2参照)内の薬液の温度を変更するための調節が必要である。したがって、異なる温度の薬液供給は、異なる時間に計画される必要がある。より具体的には、薬液温度の変更に要する充分な時間を空けた異なる期間に計画される必要がある。したがって、或る温度の薬液の使用が計画されている期間には、他の温度の薬液を使うプロセスジョブの計画は禁止される。この実施形態では、全ての処理ユニットSPIN1〜SPIN12に対して、一つの薬液キャビネットCC1からの薬液が供給されるように構成されており、かつ薬液キャビネットCC1は同時には一種類のみの温度の薬液供給が可能である。そこで、或る温度の薬液の使用がいずれかの処理ユニットに対して計画されると、いずれの処理ユニットにおいても、他の温度の薬液使用の計画は禁止される。
【0073】
薬液キャビネットCC1は、所定の複数個の処理ユニットへと同時に薬液を供給できるように構成されていてもよい。この場合には、重複した期間に異なる処理ユニットで同じ温度の同種薬液を使用する計画を立てることが許容される。
作成された仮タイムテーブルは、スケジュールデータ50の一部として記憶部23に格納される(
図4のステップS7)。同様の仮タイムテーブルが同じプロセスジョブ符号が付与された基板Wの全てに対応して作成される(ステップS8)。仮タイムテーブルの作成段階では、別の基板Wに関するブロックとの干渉(時間軸上での重なり合い)は考慮されない。
【0074】
受信済みの全てのプロセスジョブに対して仮タイムテーブルの作成を終えると(ステップS9:YES)、スケジューリング機能部25は、全体スケジューリングを実行する(ステップS10)。全体スケジューリングとは、作成された仮タイムテーブルのブロックを、各リソースの他のブロックと重複しないように、時間軸上に配置することである。全体スケジューリングによって作成されたスケジュールデータは記憶部23に格納される(ステップS11)
図5は、全体スケジューリング(
図4のステップS10)の詳細を説明するためのフローチャートである。スケジューリング機能部25は、基板Wの仮タイムテーブルを記憶部23から読み出して、その仮タイムテーブルを構成しているブロックを時間軸上に配置していく。
【0075】
さらに具体的には、スケジューリング機能部25は、受信時間が最も早い未計画のプロセスジョブの1枚の基板Wに対応する仮タイムテーブルを読み出す(ステップS21)。スケジューリング機能部25は、その読み出した仮タイムテーブルを構成する全てのブロックを配置するのに必要なリソースが全て使用可能かどうかを判断する(ステップS22)。全ての必要なリソースが使用可能であれば(ステップS22:YES)、当該仮タイムテーブルを構成する各ブロックを対応するリソースに時間軸上で前詰めに配置する(ステップS23)。すなわち、各ブロックは、同一リソースが同じ時間に重複して使用されないようにしながら、時間軸上で最も早い位置に配置される。仮タイムテーブルを構成する全てのブロックを配置し終えると、スケジューリング機能部25は、その仮タイムテーブルの処理ブロックを配置した処理ユニットに関連する製品リソースの占有状態を設定する(ステップS24。
図6参照)。また、スケジューリング機能部25は、その仮タイムテーブルが薬液供給ブロックを含む場合に、薬液温度リソースの占有状態を設定する(ステップS25。
図7参照)。
【0076】
同様の処理が同じプロセスジョブの最後の基板の仮タイムテーブルまで順に実行される(ステップS26)。さらに、同様の処理が、記憶部23に格納された未計画のプロセスジョブデータに対して、繰り返される(ステップS27)。
仮タイムテーブルを構成するブロックを配置すべき少なくとも一つのリソースが使用不可能であるときは(ステップS22:NO)、スケジューリング機能部25は、計画中の基板に係るプロセスジョブの計画全体を留保する(ステップS28)。そして、次のプロセスジョブデータがある場合には(ステップS29:YES)、スケジューリング機能部25は、次のプロセスジョブデータの仮タイムテーブルを記憶部23から読み出して(ステップS30)、ステップS22からの処理を繰り返す。次のプロセスジョブデータとは、受信時間が次のプロセスジョブデータである。次のプロセスジョブデータがなければ(ステップS29:NO)、スケジューリング機能部25の処理は、ステップS27に移る。
【0077】
ステップS28において計画が留保されたプロセスジョブの計画は、必要なリソースが使用可能になるまで後回しにされる。より具体的には、占有状態に設定された製品リソースまたは薬液温度リソース(ステップS24,S25参照)を使うプロセスジョブは、後回しになる。
図6は、製品リソース占有状態設定(
図5のステップS24)に関連する処理を説明するためのフローチャートである。スケジューリング機能部25は、処理を計画している基板が非製品基板かどうかを判断する(ステップS41)。非製品基板の場合には(ステップS41:YES)、スケジューリング機能部25は、さらに、最初の非製品基板かどうかを判断する(ステップS42)。具体的には、スケジューリング機能部25は、同じ処理ユニットに対して直前に処理が計画された基板が製品基板であれば、最初の非製品基板であると判断する。さもなければ(同じ処理ユニットに対して直前に処理が計画された基板がない場合を含む)、スケジューリング機能部25は、最初の非製品基板ではないと判断する。最初の非製品基板の場合には(ステップS42:YES)、スケジューリング機能部25は、当該非製品基板の処理を計画した処理ユニットに対応する製品リソースの以後の全期間を占有状態に設定する(ステップS43)。したがって、その占有状態の製品リソースを使う仮タイムテーブルの計画はできなくなる(
図5のステップS22参照)。すなわち、最初の非製品基板の処理を計画した処理ユニットに対して、製品基板の処理の計画が禁止される。このように、製品リソースを占有状態に設定すること(ステップS43)は、対応する処理ユニットに対して製品基板の処理の計画を禁止する禁止属性情報を生成することに相当する。
【0078】
最初の非製品基板でない場合には(ステップS42:NO)、スケジューリング機能部25は、当該非製品基板が最後の非製品基板かどうかを判断する(ステップS44)。たとえば、未スケジューリングの基板のなかに非製品基板がない場合に、スケジューリング機能部25は、最後の非製品基板であると判断してもよい。また、プロセスジョブデータが、最後の非製品基板であることを表す情報を有している場合には、当該プロセスジョブの最後の基板を最後の非製品基板であると判断してもよい。
【0079】
最後の非製品基板である場合には(ステップS44:YES)、製品リソースの全期間占有状態が解除される(ステップS45)。それにより、当該製品リソースに対応する処理ユニットにおいて、製品基板の処理を計画できる状態に復帰する。一方、最後の非製品基板でなければ(ステップS44:NO)、製品リソースの全期間占有状態が保持される。
【0080】
仮タイムテーブルのブロックを配置した基板が製品基板の場合には(ステップS41:NO)、ステップS42〜S45の処理が省かれる。
最初の非製品基板の処理を含むプロセスジョブのスケジューリングを終えた後に、次の非製品基板のプロセスジョブデータの受信までに長い待機時間が生じるときには、ステップS41,S42の判断に依らずに、製品リソースの占有状態を解除してもよい。たとえば、最初の非製品基板の処理を含むプロセスジョブのスケジューリング終了後、一定の待機時間内に次の非製品基板のプロセスジョブデータが受信されないときに、非製品リソースの占有状態を解除してもよい。また、最初の非製品基板の処理を含むプロセスジョブのスケジューリング終了後、製品基板の処理を指定する一定数以上のプロセスジョブデータの受信が連続した場合に、非製品リソースの占有状態を解除してもよい。また、最初の非製品基板の処理を含むプロセスジョブのスケジューリング終了後、一定枚数以上の製品基板のスケジューリングを完了するまで次の非製品基板のプロセスジョブデータが受信されないときに、非製品リソースの占有状態を解除してもよい。
【0081】
図7は、薬液温度リソース占有状態設定(
図5のステップS25)に関連する処理を説明するためのフローチャートである。スケジューリング機能部25は、計画対象の基板処理が薬液温度リソースを使用するかどうか、すなわち、仮タイムテーブルが薬液温度リソースを使用するブロックを含むかどうかを判断する(ステップS51)。薬液温度リソースを使用する場合には(ステップS51:YES)、スケジューリング機能部25は、さらに、当該薬液温度リソースを使う最初の基板かどうかを判断する(ステップS52)。具体的には、スケジューリング機能部25は、いずれかの薬液温度リソースを使用する直前の基板処理において、異なる温度の薬液温度リソースが使用されているか、または薬液温度リソースを使用する処理が未計画の場合には、その薬液温度リソースを使う最初の基板であると判断する。さもなければ、スケジューリング機能部25は、その薬液温度リソースを使う最初の基板ではないと判断する。その薬液温度リソースを使う最初の基板の場合には(ステップS52:YES)、スケジューリング機能部25は、他の薬液温度リソースに関して、以後の全期間を占有状態に設定する(ステップS53)。したがって、その占有状態の薬液温度リソースを使う仮タイムテーブルの計画はできなくなる(
図5のステップS22参照)。すなわち、別の薬液温度での基板処理の計画が禁止される。このように、薬液温度リソースを占有状態に設定すること(ステップS53)は、異なる薬液温度(処理条件の一例)での基板処理の計画を禁止する禁止属性情報を生成することに相当する。
【0082】
その薬液温度リソースを使う最初の基板でない場合には(ステップS52:NO)、スケジューリング機能部25は、その薬液温度リソースを使う最後の基板かどうかを判断する(ステップS54)。たとえば、未スケジューリングの基板の仮タイムテーブルのなかに、同じ薬液温度リソースを使うものがない場合に、スケジューリング機能部25は、その薬液温度リソースを使う最後の基板であると判断してもよい。また、プロセスジョブデータが、その薬液温度リソースを使う最後の基板であることを表す情報を有している場合には、当該プロセスジョブの最後の基板を、その薬液温度リソースを使う最後の基板であると判断してもよい。
【0083】
その薬液温度リソースを使う最後の基板である場合には(ステップS54:YES)、当該薬液温度リソースの全期間占有状態が解除される(ステップS55)。それにより、当該薬液温度以外の薬液温度条件での基板処理を計画できる状態に復帰する。一方、その薬液温度リソースを使用する最後の基板でなければ(ステップS54:NO)、その薬液温度リソースの全期間占有状態が保持される。
【0084】
当該基板の仮タイムテーブルが薬液温度リソースを使用するブロックを有しない場合には、(ステップS51:NO)、ステップS52〜S55の処理が省かれる。
或る薬液温度リソースを使う最初の基板の処理を含むプロセスジョブのスケジューリングを終えた後に、次の同じ薬液温度リソースを使う次の基板のプロセスジョブデータの受信までに長い待機時間が生じるときには、ステップS51,S52の判断に依らずに、他の薬液温度リソースの占有状態を解除してもよい。たとえば、或る薬液温度リソースを使う最初の基板の処理を含むプロセスジョブのスケジューリング終了後、一定の待機時間内に同じ薬液温度リソースを使う次の基板のプロセスジョブデータが受信されないときに、他の薬液温度リソースの占有状態を解除してもよい。また、或る薬液温度リソースを使う最初の基板の処理を含むプロセスジョブのスケジューリング終了後、他の薬液温度リソースを使う一定数以上のプロセスジョブデータの受信が連続した場合に、他の薬液温度リソースの占有状態を解除してもよい。また、或る薬液温度リソースを使う最初の基板の処理を含むプロセスジョブのスケジューリング終了後、他の薬液温度リソースを使う一定枚数以上の基板処理を指定する一つ以上のプロセスジョブデータが受信されたときに、他の薬液温度リソースの占有状態を解除してもよい。
【0085】
次に、スケジューリングの第1の具体例について、
図9Aおよび
図9B等を参照して説明する。
以下のような内容のレシピを有するプロセスジョブPJ1,PJ2,PJ3,PJ4の情報(プロセスジョブデータ)をこの順序でホストコンピュータ24から受信し、処理のスタートを指示された場合について説明する(ステップS101,S102,S103,S104)。
【0086】
PJ1:SPIN1で1枚の非製品基板を処理
PJ2:SPIN1〜SPIN2で2枚の製品基板を並行処理
PJ3:SPIN1で1枚の非製品基板を処理
PJ4:SPIN1〜SPIN2で2枚の製品基板を並行処理
使用者の意図は、処理ユニットSPIN1に関しては、製品基板を用いた処理を間に挟むことなく非製品基板を用いた内部洗浄処理等を2回連続して行うことである。たとえば、非製品基板をスピンチャック15に保持させた状態で処理液ノズル16から純水を吐出することで、処理ユニットSPIN1の内部を洗浄することができる。非製品基板を用いた内部洗浄処理の回数は、たとえば、製品基板に対して処理を行うときに要求される処理ユニット内部の清浄度に依存する。すなわち、その回数は、使用者が必要に応じて設定する。たとえば、準備できる非製品基板の枚数の制限などのために、2枚の非製品基板に対する処理を一つのプロセスジョブにまとめることができなかったり、連続する2つのプロセスジョブで非製品基板の使用を指定できなかったりすることがある。このような場合でも、この基板処理装置は、2枚以上の非製品基板による連続処理を実現する。
【0087】
図10Aは、プロセスジョブPJ1,PJ3の各基板に対して作成される仮タイムテーブルを示し、
図10BはプロセスジョブPJ2,PJ4の各基板に対して作成される仮タイムテーブルを示す。スケジューリング機能部25は、プロセスジョブPJ1〜PJ4に対応するプロセスジョブデータを受信すると(ステップS101〜S104。受信工程)、各プロセスジョブPJ1〜PJ4を受信する度にそれらに対応する仮タイムテーブルをそれぞれ作成する(ステップS105〜S108)。
【0088】
プロセスジョブPJ2,PJ4については、
図10Bに示すように、2つの処理ユニットSPIN1〜SPIN2での並行処理を指定して製品基板に対する処理を行うための仮タイムテーブルが作成される。すなわち、処理ユニットSPIN1,SPIN2に処理ブロックをそれぞれ配置した仮タイムテーブルが作成される。処理ブロックは、基板処理のために当該処理ユニットが占有されることを表す。また、処理ユニットSPIN1に配置された処理ブロックと重複する期間には、処理ユニットSPIN1に対応する製品リソース「SPIN1製品」に対して、製品処理ブロックが配置されている。この製品処理ブロックは、処理ユニットSPIN1において製品基板が処理されること、すなわち、製品基板の処理のために処理ユニットSPIN1が占有されることを表す。同様に、処理ユニットSPIN2に配置された処理ブロックと重複する期間には、処理ユニットSPIN2に対応する製品リソース「SPIN2製品」に対して、製品処理ブロックが配置されている。この製品処理ブロックは、処理ユニットSPIN2において製品基板が処理されること、すなわち、製品基板の処理のために処理ユニットSPIN2が占有されることを表す。
【0089】
プロセスジョブPJ1,PJ3については、
図10Aに示すように、一つの処理ユニットSPIN1を指定して非製品基板に対する処理を行うための仮タイムテーブルが作成される。すなわち、処理ユニットSPIN1に処理ブロックが配置されている。非製品基板に対する処理であるので、製品リソース「SPIN1製品」は使用されない。
図11A〜
図14は、全体スケジューリングの例を示す。
【0090】
図11Aは、最初に受信したプロセスジョブPJ1の最初の基板に対応する仮タイムテーブルを構成する全てのブロックを配置した例を示す。スケジューリング機能部25は、プロセスジョブデータを受信した順序に、各プロセスジョブの仮タイムテーブルを用いてスケジューリングを実行する(処理スケジューリング工程)。すなわち、スケジューリング機能部25は、まず、プロセスジョブPJ1の仮タイムテーブルから取得されたブロックを対応するリソースのスペースに時間軸上において最も早い位置に(すなわち前詰めで)順に配置していく(ステップS109。第1処理スケジューリング工程)。このとき、スケジューリング機能部25は、同一リソースのスペースでブロックが重なり合わないように各ブロックを配置する。プロセスジョブPJ1は1枚の非製品基板に対する処理を処理ユニットSPIN1で行うべきことを指定する処理であるので、処理ブロックは処理ユニットSPIN1に対応するように配置される(ステップS109a)。こうして、プロセスジョブPJ1に対するスケジューリングを終える。
【0091】
プロセスジョブPJ1に対するスケジューリング(ステップS109)の後、スケジューリング機能部25は、それが1枚目の非製品基板に対する処理スケジューリングであると判断する(ステップS110)。そこで、スケジューリング機能部25は、
図11Bに示すように、次の基板の処理を計画する前に、「SPIN1製品」リソースを、プロセスジョブPJ1の開始時以後の全期間について占有状態とし、それによって、「SPIN1製品」リソースを無効化する(ステップS111。禁止属性情報の生成)。これは、処理ユニットSPIN1が製品基板の処理のために全期間において占有されていることを表す。これにより、「SPIN1製品」リソースへの製品処理ブロックの配置が禁止される。それによって、処理ユニットSPIN1を用いた製品基板の処理の計画が禁止される。「SPIN2製品」リソースは占有されていないので、処理ユニットSPIN2については、製品基板の処理を計画できる。
【0092】
このようにして、次のプロセスジョブPJ2の処理スケジューリングよりも前に、「SPIN1製品」リソースの使用を禁止する禁止属性情報が生成され、それによって、処理ユニットSPIN1を製品基板の処理のために使用することが禁止される。処理実行指示部26は、プロセスジョブPJ1のスケジューリング完了後、プロセスジョブPJ1に対して作成されたスケジュールに従って基板処理装置のリソースを作動させる。処理実行指示部26は、任意のタイミングでプロセスジョブPJ1の実行を開始することができるが、プロセスジョブPJ1の次のプロセスジョブPJ2の受信(ステップS102)よりも前にプロセスジョブPJ1の実行を開始してもよい。
【0093】
次に、スケジューリング機能部25は、プロセスジョブPJ1の次に情報(プロセスジョブデータ)が受信されたプロセスジョブPJ2に対するスケジューリングを行う(ステップS112。第2処理スケジューリング工程)。プロセスジョブPJ2のレシピは、2つの処理ユニットSPIN1,SPIN2での2枚の製品基板の並行処理を指定しているので、仮タイムテーブルは「SPIN1製品」リソースまたは「SPIN2製品」リソースに配置すべき製品処理ブロックを含む。プロセスジョブPJ2の仮タイムテーブルのうち処理ユニットSPIN1を使う仮タイムテーブル(
図10Bの上段)は、占有状態となっている「SPIN1製品」リソースを用いるので、適用できない。すなわち、スケジューリング機能部25は、プロセスジョブPJ2について作成された、処理ユニットSPIN1を通る仮タイムテーブルの製品処理ブロックを「SPIN1製品」リソースに配置できるか否かを判断する(ステップS112a)。この判断は、プロセスジョブPJ1の基板種(非製品基板)とプロセスジョブPJ2の基板種(製品基板)との異同の判断にほかならない(カテゴリ(基板種)の異同を判断する工程)。「SPIN1製品」リソースが占有されているため、製品処理ブロックを「SPIN1製品」リソースに配置できない。これは、プロセスジョブPJ1とプロセスジョブPJ2とで基板の種類が異なるため、プロセスジョブPJ2を処理ユニットSPIN1に対して計画することが禁止されることを意味する。
【0094】
そこで、スケジューリング機能部25は、
図12に示すように、処理ユニットSPIN2を使う仮タイムテーブル(
図10Bの下段)を選択し、その仮タイムテーブルを構成するブロックを、同一リソースの他のブロックと重複しないように時間軸上で前詰めに配置していく(ステップS112b)。これにより、処理ブロックが処理ユニットSPIN2に配置され、その処理ブロックと同じ期間において、「SPIN2製品」リソースに製品処理ブロックが配置される。「SPIN1製品」リソースが占有状態のままであるので、プロセスジョブPJ2の2枚の基板の処理は、いずれも処理ユニットSPIN2に計画される。
【0095】
処理実行指示部26は、プロセスジョブPJ2のスケジューリング完了後、プロセスジョブPJ2に対して作成されたスケジュールに従って基板処理装置のリソースを作動させる。処理実行指示部26は任意のタイミングでプロセスジョブPJ2の実行を開始することができるが、プロセスジョブPJ2の次のプロセスジョブPJ3の受信(ステップS103)よりも前にプロセスジョブPJ2の実行を開始してもよい。
【0096】
スケジューリング機能部25は、プロセスジョブPJ2の処理スケジューリングを終えた後、プロセスジョブPJ2の次に情報(プロセスジョブデータ)が受信されたプロセスジョブPJ3に対するスケジューリングを行う(ステップS113。第2処理スケジューリング工程)。プロセスジョブPJ3のレシピは、処理ユニットSPIN1での1枚の非製品基板の処理を指定している。プロセスジョブPJ3の仮タイムテーブル(
図10A)は、占有状態となっている「SPIN1製品」リソースを用いないので、スケジューリング機能部25は、この仮タイムテーブルを適用可能であると判断する(ステップS113a)。占有状態となっている「SPIN1製品」リソースを用いるか否かの判断は、プロセスジョブPJ1,PJ3の基板種の異同の判断に相当する(カテゴリ(基板種)の異同を判断する工程)。そして、プロセスジョブPJ3が占有状態である「SPIN1製品」リソースを用いないことは、プロセスジョブPJ3がプロセスジョブPJ1と同種の基板種に対する処理であることを意味する。
【0097】
そこで、スケジューリング機能部25は、
図13Aに示すように、プロセスジョブPJ3の仮タイムテーブルを構成するブロックを、同一リソースの他のブロックと重複しないように時間軸上で前詰めに配置していく。これにより、処理ブロックが処理ユニットSPIN1に配置される(ステップS113b)。プロセスジョブPJ3は製品リソースを使用する製品処理ブロックを有していないので、「SPIN1製品」リソースが占有状態であっても、プロセスジョブPJ3の仮タイムテーブルを構成する全てのブロックを配置することができる。
【0098】
もしも、プロセスジョブPJ3が2枚以上の非製品基板に対する処理である場合には、2枚目以降の非製品基板に対しても同様にして処理ユニットSPIN1での処理が繰り返し計画される。
プロセスジョブPJ3の最後の基板の仮タイムテーブルを構成する全てのブロックの配置を終えると、スケジューリング機能部25は、プロセスジョブPJ3が非製品基板を基板種として指定する最後のプロセスジョブかどうかを判断する(ステップS114)。たとえば、スケジューリング機能部25は、受信済みのプロセスジョブデータを参照して、スケジューリングが未了のプロセスジョブのなかに非製品基板を基板種として指定しているものがあるかどうかを判断してもよい。また、プロセスジョブPJ3のためのプロセスジョブデータが、非製品基板を指定する最後のプロセスジョブであることを表す情報を有していてもよい。この場合、スケジューリング機能部25は、その情報に基づいて、プロセスジョブPJ3が非製品基板の最後のプロセスジョブかどうかを判断できる。
【0099】
プロセスジョブPJ3が非製品基板の処理のための最後のプロセスジョブである場合には、スケジューリング機能部25は、「SPIN1製品」リソースの全期間占有状態を解除する(ステップS115)。すなわち、処理ユニットSPIN1での製品基板の処理を禁止する禁止属性情報が取り消される。それによって、「SPIN1製品」リソースが有効になる。たとえば、
図13Bに示すように、スケジューリング機能部25は、プロセスジョブPJ3の最後の基板(非製品基板)に対する最初のブロック開始時以降の期間における「SPIN1製品」リソースの占有状態を解除してもよい。これにより、プロセスジョブPJ3の最後の基板の最初のブロック開始時以降の期間には、「SPIN1製品」リソースへの製品処理ブロックの配置が可能になる。
【0100】
ただし、
図13Bの例では、プロセスジョブPJ3の最後の基板の処理ブロックが処理ユニットSPIN1に配置されていて、プロセスジョブPJ3の最後の基板の最初のブロック開始と当該基板に対する処理ブロックとの間には、別の基板の処理のための処理ブロックが配置可能な充分な期間が存在しない。したがって、実質的には、処理ブロックの配置は、プロセスジョブPJ3の最後の基板の処理ブロックの後の期間に制限され、それに応じて、製品処理ブロックの配置もプロセスジョブPJ3の最後の基板の処理ブロックの後の期間に制限される。
【0101】
したがって、「SPIN1製品」リソースの開放は、最後の非製品基板の処理ブロックの前に同じ処理ユニットでの基板処理を指定する別の処理ブロックの配置を禁止できるタイミングに設定すればよい。たとえば、プロセスジョブPJ3の最後の非製品基板に対応する処理ブロックの終了時以降の期間において「SPIN1製品」リソースを開放してもよい。
【0102】
処理実行指示部26は、プロセスジョブPJ3のスケジューリング完了後、プロセスジョブPJ3に対して作成されたスケジュールに従って基板処理装置のリソースを作動させる。処理実行指示部26は任意のタイミングでプロセスジョブPJ3の実行を開始することができるが、プロセスジョブPJ3の次のプロセスジョブPJ4の受信(ステップS104)よりも前にプロセスジョブPJ3の実行を開始してもよい。
【0103】
スケジューリング機能部25は、プロセスジョブPJ3の処理スケジューリングを終えた後、
図14に示すように、プロセスジョブPJ3の次に情報(プロセスジョブデータ)が受信されたプロセスジョブPJ4に対するスケジューリングを行う(ステップS116。処理スケジューリング工程)。プロセスジョブPJ4のレシピは、2つの処理ユニットSPIN1,SPIN2での2枚の製品基板の並行処理を指定しているので、仮タイムテーブルは「SPIN1製品」リソースまたは「SPIN2製品」リソースに配置すべき製品処理ブロックを含む。
【0104】
「SPIN1製品」リソースの占有状態が開放されており、かつ「SPIN2製品」リソースは利用可能であるので、スケジューリング機能部25は、プロセスジョブPJ4の仮タイムテーブルのうち処理ユニットSPIN1およびSPIN2をそれぞれ使う仮タイムテーブルがいずれも使用可能であると判断する(ステップS116a)。したがって、スケジューリング機能部25は、処理ユニットSPIN1またはSPIN2を使う仮タイムテーブルのいずれかを選択して処理を計画する(ステップS116b)。
【0105】
図14の例では、処理ユニットSPIN2に配置済みの処理ブロックの終了時刻が、処理ユニットSPIN1に配置済みの処理ブロックの終了時刻よりも早い。そこで、スケジューリング機能部25は、処理ユニットSPIN2を使う仮タイムテーブル(
図10B下段)を選択し、その仮タイムテーブルを構成するブロックを、同一リソースの他のブロックと重複しないように時間軸上で前詰めに配置していく。これにより、1枚目の製品基板の処理ブロックが処理ユニットSPIN2に配置され、その処理ブロックと同じ期間において「SPIN2製品」リソースに製品処理ブロックが配置される。
【0106】
次いで、スケジューリング機能部25は、プロセスジョブPJ4の2枚目の製品基板の処理を計画する。「SPIN1製品」リソースの占有状態が開放されているので、「SPIN1製品」リソースおよび「SPIN2製品」リソースはいずれも利用可能である。したがって、スケジューリング機能部25は、プロセスジョブPJ4の仮タイムテーブルのうち処理ユニットSPIN1およびSPIN2を使う仮タイムテーブルがいずれも使用可能であると判断する(ステップS116a)。
【0107】
図14の例では、処理ユニットSPIN1に配置済みの処理ブロックの終了時刻が、処理ユニットSPIN2に配置済みの処理ブロック(プロセスジョブPJ2の1枚目の製品基板)の終了時刻よりも早い。そこで、スケジューリング機能部25は、処理ユニットSPIN1を使う仮タイムテーブル(
図10Bの上段)を選択し、その仮タイムテーブルを構成するブロックを、同一リソースの他のブロックと重複しないように時間軸上で前詰めに配置していく(ステップS116b)。これにより、2枚目の製品基板の処理ブロックが処理ユニットSPIN1に配置され、その処理ブロックと同じ期間において「SPIN1製品」リソースに製品処理ブロックが配置される。
【0108】
こうして、プロセスジョブPJ4のスケジューリングが終了する。
処理実行指示部26は、プロセスジョブPJ4のスケジューリング完了後、プロセスジョブPJ4に対して作成されたスケジュールに従って任意のタイミングで基板処理装置のリソースを作動させる。
次に、スケジューリングの第2の具体例について、
図15A、
図15Bおよび
図15C等を参照して説明する。
【0109】
以下のような内容のレシピを有するプロセスジョブPJ1,PJ2,PJ3,PJ4のプロセスジョブデータをこの順序でホストコンピュータ24から受信し、スタート指示された場合について説明する(ステップS121,S122,S123,S124)。
PJ1:SPIN1〜SPIN2で、CC1の薬液を60℃で使用して1枚の基板を処理
PJ2:SPIN1〜SPIN2で、CC1の薬液を80℃で使用して1枚の基板を処理
PJ3:SPIN1〜SPIN2で、CC1の薬液を60℃で使用して1枚の基板を処理
PJ4:SPIN1〜SPIN2で、CC1の薬液を80℃で使用して1枚の基板を処理
前述のとおり、薬液キャビネットCC1は、タンク3に貯留された薬液の温度を調節する温度調節ユニット4を備えている。しかし、温度調節ユニット4はタンク3内の薬液の温度を瞬時に変更できるわけではなく、たとえば、薬液の温度を60℃と80℃との間で変更するには、相応の時間(たとえば数時間)が必要である。したがって、薬液温度を変更し、変更後の薬液温度で安定した薬液供給を行える状態になるまでの待機時間には、基板を処理することができない。したがって、基板処理装置のダウンタイムが長くなり、生産性が悪くなる。
【0110】
そこで、この実施形態では、プロセスジョブデータの受信順によらずに、処理条件(具体的には薬液温度)が等しいプロセスジョブを連続して実行するための仕組みが備えられている。
薬液キャビネットCC1は、同時に一つの処理ユニットのみに対して薬液が供給可能に構成されていてもよいし、複数の処理ユニットに対して薬液を供給できる能力を備えていてもよい。以下では、薬液キャビネットCC1は、少なくとも2つ(たとえば12個全部)の処理ユニットに対して同時に薬液を供給できる能力を備えている場合を想定する。
【0111】
図16AはプロセスジョブPJ1,PJ3の各基板に対して作成される仮タイムテーブルを示し、
図16BはプロセスジョブPJ2,PJ4の各基板に対して作成される仮タイムテーブルを示す。スケジューリング機能部25は、プロセスジョブPJ1〜PJ4に対応するプロセスジョブデータを受信すると(ステップS121〜S124。受信工程)、それらに対応する仮タイムテーブルをそれぞれ作成する(ステップS125〜S128)。
【0112】
プロセスジョブPJ1〜PJ4のそれぞれについて、2つの処理ユニットSPIN1〜SPIN2での並行処理を指定して製品基板に対する処理を行うための仮タイムテーブルが作成される。すなわち、処理ユニットSPIN1,SPIN2に処理ブロックをそれぞれ配置した2つの仮タイムテーブルが各基板に対して作成される。また、処理ブロックが配置された期間内において、薬液キャビネットCC1からの薬液が供給される期間には、薬液キャビネットCC1に対して、薬液供給ブロックが配置される。薬液供給ブロックは、薬液キャビネットCC1が薬液供給のために使用されることを表す。
【0113】
仮タイムテーブルには、さらに、薬液温度リソース(仮想リソース)として、薬液キャビネットCC1から60℃の薬液を供給することを表す「CC1薬液60℃」リソースと、薬液キャビネットCC1から80℃の薬液を供給することを表す「CC1薬液80℃」リソースとが設けられている。そして、プロセスジョブPJ1,PJ3に対応する仮タイムテーブルでは、薬液供給ブロックと同じ期間に、「CC1薬液60℃」リソースを占有する「60℃薬液」ブロックが配置されている。同様に、プロセスジョブPJ2,PJ4に対応する仮タイムテーブルでは、薬液供給ブロックと同じ期間に、「CC1薬液80℃」リソースを占有する「80℃薬液」ブロックが配置されている。「60℃薬液」ブロックは、薬液キャビネットCC1が60℃の薬液を供給する状態であることを表す。同様に、「80℃薬液」ブロックは、薬液キャビネットCC1が80℃の薬液を供給する状態であることを表す。
【0114】
図17は、最初に受信したプロセスジョブPJ1の最初の基板に対応する仮タイムテーブルを構成する全てのブロックを配置した例を示す。
スケジューリング機能部25は、プロセスジョブデータを受信した順序に、各プロセスジョブの仮タイムテーブルを用いてスケジューリングを実行する(処理スケジューリング工程)。すなわち、スケジューリング機能部25は、まず、プロセスジョブPJ1の仮タイムテーブルから取得されたブロックを対応するリソースのスペースに時間軸上において最も早い位置に(すなわち前詰めで)順に配置していく(ステップS129。第1処理スケジューリング工程)。このとき、スケジューリング機能部25は、同一のリソースのスペースでブロックが重なり合わないように各ブロックを配置する。プロセスジョブPJ1は1枚の基板に対する処理を処理ユニットSPIN1またはSPIN2で行うべきことを指定する処理である。処理ユニットSPIN1,SPIN2のいずれにおいても処理が計画されていないときには、処理ブロックはいずれの処理ユニットに対応させてもよい。
図17には、処理ブロックを処理ユニットSPIN1に対応するように配置した例を示す(ステップS129a)。
【0115】
また、プロセスジョブPJ1は、60℃の薬液の使用を指定しているので、処理ブロックを配置した期間内において薬液を使用する期間には、薬液キャビネットCC1に対応付けて薬液供給ブロックが配置される。さらに、同じ期間において、「CC1薬液60℃」リソースに対して、「60℃薬液」ブロックが配置される(ステップS129a)。こうして、プロセスジョブPJ1に対するスケジューリングを終える。
【0116】
もしも、プロセスジョブPJ1が2枚以上の基板に対する処理である場合には、2枚目以降の基板に対しても同様にして処理ユニットSPIN1またはSPIN2での処理が繰り返し計画される。この場合、処理ブロックがより早い時刻に配置できるように、処理ユニットSPIN1またはSPIN2のいずれかを用いる仮タイムテーブルが選択される。
プロセスジョブPJ1に対するスケジューリング(ステップS129)の後、スケジューリング機能部25は、それが60℃の薬液温度での1枚目の基板を含むプロセスジョブの処理スケジューリングであると判断する(ステップS130)。そこで、スケジューリング機能部25は、次の基板の処理を計画する前に、
図18に示すように、プロセスジョブPJ1で使用されない「CC1薬液80℃」リソースを占有状態とし、それによって、「CC1薬液80℃」リソースを無効化する(ステップS131。禁止属性情報の生成)。これは、薬液キャビネットCC1が、プロセスジョブPJ1の開始以降の全ての期間において、80℃の薬液供給のための使用が不可能な状態であることを表す。これにより、「CC1薬液80℃」リソースへの薬液温度ブロックの配置が禁止される。それによって、80℃の薬液を用いたプロセスジョブの計画が禁止される。「CC1薬液60℃」リソースは未占有の期間があるので、60℃の薬液を用いる別の基板処理の計画は許容される。
【0117】
このようにして、次のプロセスジョブPJ2の処理スケジューリングよりも前に、「CC1薬液80℃」リソースの使用を禁止する禁止属性情報が生成され、それによって、80℃の薬液を用いる処理が禁止される。
次に、スケジューリング機能部25は、プロセスジョブPJ1の次に情報(プロセスジョブデータ)が受信されたプロセスジョブPJ2に対するスケジューリングを開始する(ステップS132。第2処理スケジューリング工程)。プロセスジョブPJ2のレシピは、2つの処理ユニットSPIN1〜SPIN2のいずれかでの1枚の基板の処理を指定している。プロセスジョブPJ2について作成された仮タイムテーブルは、処理ユニットSPIN1およびSPIN2のいずれを使う仮タイムテーブルにおいても、「CC1薬液80℃」リソースに配置すべき「80℃薬液」ブロックを含む。ところが、「CC1薬液80℃」リソースは全期間において占有状態となっているため、「80℃薬液」ブロックを配置することができない(ステップS132a)。よって、スケジューリング機能部25は、プロセスジョブPJ2の計画を留保する(ステップS133)。
【0118】
スケジューリング機能部25は、「80℃薬液」ブロックが「CC1薬液80℃」リソースに配置可能か否かを判断し、それによって、先行するプロセスジョブPJ1で使用される薬液温度と等しいかどうかを判断する。この判断工程は、プロセスジョブPJ2の処理条件とプロセスジョブPJ1の処理条件との異同を判断する工程(カテゴリの異同を判断する工程)である。この具体例では、プロセスジョブPJ2の処理条件がプロセスジョブPJ1の処理条件と異なるので、プロセスジョブPJ2の計画が留保される(ステップS133)。
【0119】
次に、
図19に示すように、スケジューリング機能部25は、プロセスジョブPJ2の処理スケジューリングを留保した状態で、プロセスジョブPJ2の次に情報(プロセスジョブデータ)が受信されたプロセスジョブPJ3に対するスケジューリングを行う(ステップS134。第2処理スケジューリング工程)。プロセスジョブPJ3のレシピは、処理ユニットSPIN1またはSPIN2での1枚の基板の処理を指定し、かつ60℃の薬液の使用を指定している。プロセスジョブPJ3の仮タイムテーブルは、処理ユニットSPIN1,SPIN2のいずれを用いる場合であっても、「CC1薬液80℃」リソースを使用しないので、適用可能である。すなわち、スケジューリング機能部25は、仮タイムテーブルに含まれる「60℃薬液」ブロックを「CC1薬液60℃」リソースに配置できるかどうかを判断することにより、直前に計画済みのプロセスジョブPJ1の処理条件(薬液温度)と計画中のプロセスジョブPJ3の処理条件(薬液温度)との異同を判断する(ステップS134a。カテゴリの異同を判断する工程)。
【0120】
図19の例では、プロセスジョブPJ1のために処理ユニットSPIN1が用いられているので、処理ユニットSPIN2を用いるよりも処理ユニットSPIN2を用いる方が処理ブロックを早い時刻に配置できる。そこで、スケジューリング機能部25は、処理ユニットSPIN2を用いる仮タイムテーブルを採用し、その仮タイムテーブルを構成するブロックを、同一リソースの他のブロックと重複しないように時間軸上で前詰めに配置していく。これにより、処理ブロックが処理ユニットSPIN2に配置される(ステップS134b)。また、プロセスジョブPJ3は、60℃の薬液の使用を指定しているので、処理ブロックを配置した期間内において薬液を使用する期間には、薬液キャビネットCC1に対応付けて薬液供給ブロックが配置される。さらに、同じ期間において、「CC1薬液60℃」リソースに対して、「60℃薬液」ブロックが配置される(ステップS134b)。こうして、プロセスジョブPJ3に対するスケジューリングを終える。
【0121】
プロセスジョブPJ3は、占有状態の「CC1薬液80℃」リソースを使用するブロックを有していないので、「CC1薬液80℃」リソースが占有状態であっても、プロセスジョブPJ3の仮タイムテーブルを構成する全てのブロックを配置することができる。
もしも、プロセスジョブPJ3が2枚以上の基板に対する処理である場合には、2枚目以降の基板に対しても同様にして処理ユニットSPIN1またはSPIN2での処理が繰り返し計画される。
【0122】
プロセスジョブPJ3の最後の基板の仮タイムテーブルを構成する全てのブロックの配置を終えると、スケジューリング機能部25は、プロセスジョブPJ3が60℃の薬液使用を指定する最後のプロセスジョブかどうかを判断する(ステップS135)。たとえば、スケジューリング機能部25は、受信済みのプロセスジョブデータを参照して、スケジューリングが未了のプロセスジョブのなかに60℃の薬液使用を指定しているものがあるかどうかを判断してもよい。また、プロセスジョブPJ3のためのプロセスジョブデータが、60℃の薬液使用を指定する最後のプロセスジョブであることを表す情報を有していてもよい。この場合、スケジューリング機能部25は、その情報に基づいて、プロセスジョブPJ3が60℃の薬液を用いる最後のプロセスジョブかどうかを判断できる。
【0123】
プロセスジョブPJ3が60℃の薬液使用を指定する最後のプロセスジョブである場合には、スケジューリング機能部25は、「CC1薬液80℃」リソースの全期間占有状態を解除する(ステップS136)。すなわち、80℃の薬液を用いる基板処理の計画を禁止する禁止属性情報が取り消される。それによって、「CC1薬液80℃」リソースが有効になる。
【0124】
たとえば、
図20に示すように、スケジューリング機能部25は、プロセスジョブPJ3の最後の基板に対する薬液供給ブロックの終了時刻以降の期間における「CC1薬液80℃」リソースの占有状態を解除してもよい。これにより、プロセスジョブPJ3の最後の基板に対する薬液供給ブロック終了時以降の期間には、「CC1薬液80℃」リソースへの「80℃薬液」ブロックの配置が可能になる。
【0125】
ただし、薬液キャビネットCC1において薬液の温度を60℃から80℃に変更するために温度調節のための時間が必要であるので、プロセスジョブPJ3の最後の基板に対する薬液供給ブロックから一定時間以上を開けて80℃の薬液を用いる処理を計画する必要がある。
次に、スケジューリング機能部25は、未計画のプロセスジョブPJ2,PJ4のうち、最先に受信したプロセスジョブPJ2に対するスケジューリングを開始する(ステップS137。第1処理スケジューリング工程)。プロセスジョブPJ2のレシピは、2つの処理ユニットSPIN1またはSPIN2での1枚の基板の処理を指定し、80℃の薬液の使用を指定しているので、仮タイムテーブルは「80℃薬液」ブロックを含む。「CC1薬液80℃」リソースの占有状態が開放されているので、プロセスジョブPJ2の仮タイムテーブルの全てのブロックが配置可能である。しかし、前述のとおり、薬液温度の変更には時間を要するので、スケジューリング機能部25は、
図21に示すように、プロセスジョブPJ3の最後の薬液供給ブロックの後に、薬液キャビネットCC1に対応して、液交換(温度調節)ブロックを配置する(ステップS137a)。これにより、薬液キャビネットCC1における薬液温度の変更が計画される。
【0126】
次いで、スケジューリング機能部25は、
図21に示すように、プロセスジョブPJ2の最初の基板の仮タイムテーブルを構成するブロックを配置する。このとき、液交換(温度調節)ブロックの直後に薬液供給ブロックが配置されるように、仮タイムテーブルを構成する各ブロックが対応するリソースに対して時間軸上で前詰めに配置される。
図21の例では、薬液供給ブロックの配置から逆算される処理ブロックの開始時刻において、処理ユニットSPIN1およびSPIN2のいずれもが使用可能である。したがって、いずれの処理ユニットSPIN1,SPIN2を通る仮タイムテーブルが採用されてもよい。
図21には、処理ユニットSPIN1を通る仮タイムテーブルが適用された例を示す(ステップS137b)。
【0127】
また、プロセスジョブPJ2は、80℃の薬液の使用を指定しているので、薬液供給ブロックと同じ期間において、「CC1薬液80℃」リソースに対して、「80℃薬液」ブロックが配置される(ステップS137b)。こうして、プロセスジョブPJ2に対するスケジューリングを終える。
もしも、プロセスジョブPJ2が2枚以上の基板に対する処理である場合には、2枚目以降の基板に対しても同様にして処理ユニットSPIN1またはSPIN2での処理が繰り返し計画される。この場合、処理ブロックがより早い時刻に配置できるように、処理ユニットSPIN1またはSPIN2のいずれかを用いる仮タイムテーブルが選択される。
【0128】
プロセスジョブPJ2のスケジューリングの後、スケジューリング機能部25は、プロセスジョブPJ2が80℃の薬液で処理すべき最初の基板を含むプロセスジョブかどうかを判断する。プロセスジョブPJ2の前の薬液処理は60℃の薬液を用いているので、この判断が肯定される(ステップS138)。そこで、スケジューリング機能部25は、プロセスジョブPJ2のスケジューリングの後、次のプロセスジョブの処理を計画する前に、プロセスジョブPJ2で使用されない「CC1薬液60℃」リソースを占有状態とする禁止属性情報を生成し、それによって、「CC1薬液60℃」リソースを無効化する(ステップS139。
図22を併せて参照)。これは、薬液キャビネットCC1が、プロセスジョブPJ2の開始以降の全ての期間において、60℃の薬液供給のための使用が不可能な状態であることを表す。これにより、プロセスジョブPJ2以降、「CC1薬液60℃」リソースへのブロックの配置が禁止される。それによって、60℃の薬液を用いたプロセスジョブの計画が禁止される。「CC1薬液80℃」リソースは、プロセスジョブPJ2以降に未占有の期間があるので、80℃の薬液を用いる別のプロセスジョブの計画は許容される。
【0129】
次に、スケジューリング機能部25は、
図23に示すように、未計画のプロセスジョブPJ4に対するスケジューリングを開始する(ステップS140。第2処理スケジューリング工程)。プロセスジョブPJ4のレシピは、処理ユニットSPIN1またはSPIN2での1枚の基板の処理を指定し、かつ80℃の薬液の使用を指定している。スケジューリング機能部25は、プロセスジョブPJ4の仮タイムテーブルを構成する全てのブロックが対応するリソースに対して配置可能かどうかを判断する。
【0130】
この判断は、プロセスジョブPJ4の仮タイムテーブルが有する「80℃薬液」ブロックを、それに対応する「CC1薬液80℃」リソースに配置可能であるかどうかの判断を含む。プロセスジョブPJ4の仮タイムテーブルは、処理ユニットSPIN1,SPIN2のいずれを用いる場合であっても、「CC1薬液60℃」リソースを使用しない。すなわち、プロセスジョブPJ4の仮タイムテーブルは、「80℃薬液」ブロックを含み、「60℃薬液」ブロックを含まない。そのため、スケジューリング機能部25は、「80℃薬液」ブロックが配置可能であると判断する(ステップS140a)。この判断は、プロセスジョブPJ4の処理条件がプロセスジョブPJ3の処理条件と同じであるとの判断(カテゴリが同じであるとの判断)にほかならない。
【0131】
そこで、スケジューリング機能部25は、「80℃薬液」ブロックを「CC1薬液80℃」リソースに配置するとともに、処理ユニットSPIN1またはSPIN2で処理を実行するようにプロセスジョブPJ4の基板処理を計画する(ステップS140b)。
図23の例では、プロセスジョブPJ2のために処理ユニットSPIN1が用いられているので、処理ユニットSPIN2を用いるよりも処理ユニットSPIN2を用いる方が処理ブロックを早い時刻に配置できる。そこで、スケジューリング機能部25は、処理ユニットSPIN2を用いる仮タイムテーブルを採用し、その仮タイムテーブルを構成するブロックを、同一リソースの他のブロックと重複しないように時間軸上で前詰めに配置していく。これにより、処理ブロックが処理ユニットSPIN2に配置される。
【0132】
また、プロセスジョブPJ4は、80℃の薬液の使用を指定しているので、処理ブロックを配置した期間内において薬液を使用する期間には、薬液キャビネットCC1に対応付けて薬液供給ブロックが配置される。さらに、同じ期間において、「CC1薬液80℃」リソースに対して、「80℃薬液」ブロックが配置される。こうして、プロセスジョブPJ4に対するスケジューリングを終える。
【0133】
プロセスジョブPJ4は、占有状態の「CC1薬液60℃」リソースを使用するブロックを有していないので、「CC1薬液60℃」リソースが占有状態であっても、プロセスジョブPJ4の仮タイムテーブルを構成する全てのブロックを配置することができる。
もしも、プロセスジョブPJ4が2枚以上の基板に対する処理である場合には、2枚目以降の基板に対しても同様にして処理ユニットSPIN1またはSPIN2での処理が繰り返し計画される。
【0134】
プロセスジョブPJ4の最後の基板の仮タイムテーブルを構成する全てのブロックの配置を終えると、スケジューリング機能部25は、プロセスジョブPJ4が80℃の薬液使用を指定する最後のプロセスジョブかどうかを判断する(ステップS141)。たとえば、スケジューリング機能部25は、受信済みのプロセスジョブデータを参照して、スケジューリングが未了のプロセスジョブのなかに80℃の薬液使用を指定しているものがあるかどうかを判断してもよい。また、プロセスジョブPJ4のためのプロセスジョブデータが、80℃の薬液使用を指定する最後のプロセスジョブであることを表す情報を有していてもよい。この場合、スケジューリング機能部25は、その情報に基づいて、プロセスジョブPJ4が80℃の薬液を用いる最後のプロセスジョブかどうかを判断できる。
【0135】
プロセスジョブPJ4が80℃の薬液使用を指定する最後のプロセスジョブである場合には、プロセスジョブPJ4の最後の基板の処理を計画した後、スケジューリング機能部25は、「CC1薬液60℃」リソースの全期間占有状態を解除する(ステップS142)。たとえば、
図24に示すように、スケジューリング機能部25は、プロセスジョブPJ4の最後の基板に対する薬液供給ブロックの終了時刻以降の期間における「CC1薬液60℃」リソースの占有状態を解除してもよい。これにより、プロセスジョブPJ4の最後の基板に対する薬液供給ブロック終了時以降の期間には、「CC1薬液60℃」リソースへの「60℃薬液」ブロックの配置が可能になる。ただし、実際には、「60℃薬液」ブロックを配置する前に、液交換(温度調節)ブロックの配置が必要である。
【0136】
図25は、以下のようなプロセスジョブPJ1,PJ2,PJ3,PJ4を指定するプロセスジョブデータをこの順序でホストコンピュータ24から受信し、スタート指示された場合のプロセスジョブ実行順序を説明するための図である。
PJ1:薬液を60℃で使用して基板を処理
PJ2:薬液を60℃で使用して基板を処理
PJ3:薬液を80℃で使用して基板を処理
PJ4:薬液を60℃で使用して基板を処理
プロセスジョブPJ1,PJ2はいずれも60℃の薬液を使用するので、その順序で計画される。プロセスジョブPJ3は80℃の薬液を使用するので、プロセスジョブPJ1,PJ2の実行後に液交換(温度調節)が必要になる。そこで、
図25(b)(実施例)に示すように、60℃の薬液を使用するプロセスジョブPJ4を先行して実行することにより、液交換(温度調節)が一回だけとなり、プロセスジョブPJ1〜PJ4の全体の処理時間を短縮できる。
【0137】
プロセスジョブPJ1,プロセスジョブPJ2の計画を終えた時点でプロセスジョブPJ4に対応するプロセスジョブデータが未受信の場合、スケジューリング機能部25は、プロセスジョブPJ3の計画、より具体的には、液交換(温度調節)ブロックの配置を、所定の待機時間だけ待機する。この待機時間は、液交換(温度調節)ブロックの時間を限度に定めてもよい。
【0138】
プロセスジョブPJ2の計画後、液交換(温度調節)ブロックの時間に等しく定めた待機時間以内にプロセスジョブPJ4のプロセスジョブデータを受信した場合には、
図25(b)に示すように、プロセスジョブPJ1〜PJ4を受信順に計画して最短で処理を終える
図25(a)の比較例の場合よりも早くプロセスジョブPJ1〜PJ4の処理が終わる。
液交換(温度調節)ブロックの時間だけ待機してプロセスジョブPJ4のプロセスジョブデータを受信し、プロセスジョブPJ4をプロセスジョブPJ3に先行して計画した例を
図25(c)(実施例)に示す。この場合、プロセスジョブPJ1〜PJ4を受信順に計画して最短で処理を終える
図25(a)の比較例の場合とほぼ同時刻にプロセスジョブPJ1〜PJ4の処理が終わる。
【0139】
液交換(温度調節)ブロックの時間を超える待機時間を設定すると、液交換所要時間を超えて待機してプロセスジョブPJ4のプロセスジョブデータを受信した場合には、
図25(d)(実施例)に示すように、全体の処理時間が
図25(a)の比較例よりも長くなる。
また、液交換ブロックに等しい待機時間を設定した場合に、その待機時間後にプロセスジョブPJ4のプロセスジョブデータを受信したときには、
図25(e)(実施例)に示すように、プロセスジョブPJ3がプロセスジョブPJ4よりも前に計画されることになる。その結果、2回の液交換ブロックの配置が必要になり、全体の処理時間は、
図25(a)の比較例よりも長くなる。
【0140】
したがって、或るプロセスジョブの計画終了から次のプロセスジョブデータの受信までの待機時間の期待値が液交換ブロックの時間以下であれば、この実施形態に従ってプロセスジョブを計画することによって、全体の処理時間を短縮して基板処理装置の生産性を向上できる。たとえ、その待機時間の期待値が液交換ブロックの時間を超える場合であっても、液交換回数を少なくできる利益がある。液交換回数を少なくすることにより、たとえば、液交換(温度調節)に要するエネルギーを削減できる。
【0141】
また、ホストコンピュータからプロセスジョブPJ4の受信時刻に関する情報が与えられれば、スケジューリング機能部25は、プロセスジョブPJ4のデータ受信を待機すべきか否かを判断できる。すなわち、プロセスジョブPJ2の終了から液交換所要時間以内にプロセスジョブPJ4のデータが受信できるならば、スケジューリング機能部25は、プロセスジョブPJ3の計画を保留して、プロセスジョブPJ4の受信を待機し、プロセスジョブPJ3に先行してプロセスジョブPJ4を計画すればよい。一方、プロセスジョブPJ2の終了から液交換所要時間以内にプロセスジョブPJ4のデータが受信できないのであれば、スケジューリング機能部25は、プロセスジョブPJ4の受信を待つことなく、プロセスジョブPJ3の計画を開始すればよい。
【0142】
以上のように、この実施形態によれば、基板処理装置のコンピュータ20は、ホストコンピュータ24からプロセスジョブデータを受信し、受信したプロセスジョブデータによって規定されるプロセスジョブの処理スケジュールを作成する。処理スケジュールを作成するスケジューリング機能部25は、基板処理装置に備えられているユニットに対応する実リソースのほかに、基板処理装置に備えられているユニットとは別の仮想リソースを設けて、それらの実リソースおよび仮想リソースに対するスケジューリングを行う。具体的には、仮想リソースとして、処理ユニットSPIN1〜SPIN2で処理される基板種を表す製品リソースが設けられる。具体的には、製品リソースとして、「SPIN1製品」リソースおよび「SPIN2製品」リソースが設けられる。また、別の仮想リソースとして、薬液キャビネットCC1が供給する薬液の温度を表す薬液温度リソースが設けられる。具体的には、薬液温度リソースとして、「60℃薬液」リソースと、「80℃薬液」リソースとが設けられる。
【0143】
スケジューリング機能部25は、プロセスジョブデータ中のレシピに含まれる基板種情報に基づいて、処理ユニットで製品基板を処理する期間に、当該処理ユニット関連付けて、対応する製品リソースを使用する処理スケジュールを作成する。具体的には、処理ユニットに対して処理ブロックを配置する期間と同じ期間に、当該製品リソースに対して製品処理ブロックを配置する。
【0144】
また、スケジューリング機能部25は、プロセスジョブデータに含まれるレシピによって指定される薬液温度に基づいて、薬液キャビネットCC1から薬液を供給する期間に、当該薬液キャビネットCC1に関連付けて、対応する薬液温度リソースを使用する処理スケジュールを作成する。具体的には、薬液キャビネットCC1に対して薬液供給ブロックを配置する期間と同じ期間に、当該薬液温度リソースに対して、薬液温度ブロックを配置する。
【0145】
一方、スケジューリング機能部25は、非製品基板の処理を計画すると、その非製品基板を処理する処理ユニットの製品リソースを無効化する。具体的には、製品リソースの全期間を占有状態として、製品リソースへの製品処理ブロックの配置を禁止する。これにより、製品リソースを使用するプロセスジョブ、すなわち、製品基板を処理するためのプロセスジョブは、当該処理ユニットには計画できなくなる。その一方で、製品リソースを使用しないプロセスジョブ、すなわち、非製品基板を処理するためのプロセスジョブは、当該処理ユニットに計画できる。これにより、非製品基板を処理する複数のプロセスジョブが連続するようにスケジューリングできる。つまり、たとえ、非製品基板の処理を規定する2つのプロセスジョブデータの受信の間に、製品基板の処理を規定する別のプロセスジョブデータの受信が割り込んだとしても、それらの2つの非製品基板処理のためのプロセスジョブを連続させることができる。
【0146】
また、スケジューリング機能部25は、レシピで指定された薬液温度に対応する薬液温度ブロックを、それに対応する温度の薬液温度リソースに配置すると、他の薬液温度リソースを無効化する。具体的には、当該他の薬液温度リソースの全期間を占有状態として、当該他の薬液温度リソースへの薬液温度ブロックの配置を禁止する。これにより、当該他の薬液温度リソースを使用するプロセスジョブ、すなわち、当該他の温度の薬液での基板処理を指定するプロセスジョブは計画できなくなる。その一方で、当該レシピ指定薬液温度と同じ温度の薬液で基板を処理するプロセスジョブは、引き続き計画することができる。これにより、同じ温度の薬液を用いる複数のプロセスジョブが連続するようにスケジューリングできる。つまり、たとえ、同じ温度の薬液での基板処理を規定するレシピを有する2つのプロセスジョブデータの受信の間に、他の温度の薬液での基板処理を規定するレシピを有する別のプロセスジョブデータの受信が割り込んだとしても、それらの2つの同じ温度の薬液処理のためのプロセスジョブを連続させることができる。
【0147】
このように、プロセスジョブのカテゴリ(基板種、薬液温度)に対応した属性情報として、異なるカテゴリ(基板種、薬液温度)の仮想リソースを無効化する禁止属性情報が生成される。そして、その禁止属性情報に基づいて、その後のプロセスジョブのスケジューリングが行われる。これにより、先に情報を受信したプロセスジョブのカテゴリに応じて、その後に情報を受信したプロセスジョブを適切に計画することができる。薬液温度の仮想リソースを無効化する禁止属性情報は、計画済みのプロセスジョブの実行のために無効となる処理条件(上記の場合には薬液温度)を表す無効条件情報の一例である。禁止属性情報が解除されれば、制限がなくなり、異なるカテゴリのプロセスジョブのスケジューリングが可能になる。
【0148】
より具体的には、先に情報が受信されて計画されたプロセスジョブのカテゴリに応じて、カテゴリの異なるプロセスジョブの実行を留保できる。たとえば、非製品基板を用いた処理ユニットのメンテナンス処理が所要回数だけ連続するのを待って、製品基板の処理を当該処理ユニットにおいて計画できる。それにより、適切にメンテナンスされた状態の処理ユニットで製品基板を処理することができ、それにより、品質の高い基板処理を実現できる。また、第1温度の薬液での処理を規定する複数のプロセスジョブを連続して処理した後に、第2温度の薬液での処理を規定するプロセスジョブを計画できる。それにより、薬液温度の変更回数を少なくできるので、基板処理装置の生産性を向上できる。
【0149】
また、この実施形態では、一つのプロセスジョブの処理スケジュールが作成されると、次のプロセスジョブの処理スケジュールを作成する前に、必要に応じて、すなわち、プロセスジョブのカテゴリに応じて、仮想リソースの無効化(禁止属性情報の生成)が行われる。これにより、無駄なスケジューリング処理や、基板処理装置の無駄な動作を回避できる。
【0150】
仮想リソースを無効化するタイミングが遅い場合、無効化されることになる仮想リソースを使う別のプロセスジョブのスケジューリング処理が当該仮想リソースの無効化よりも先行するおそれがある。この場合には、当該別のプロセスジョブのスケジューリングを事後的に取り消すことになるから、無駄なスケジューリング処理が生じる。また、無効化されることになる仮想リソースを使う別のプロセスジョブが計画され、さらに実行開始されてから、その仮想リソースを無効化すると、基板処理装置の無駄な動作が生じる。具体的には、非製品基板を処理ユニットSPIN1で処理した後に、製品基板を処理ユニットSPIN1の前まで搬送した後に製品リソースが無効化されると、その製品基板の搬送動作が無駄になる。そればかりでなく、その製品基板をたとえば基板収容器まで一旦戻す基板搬送動作が生じるから、処理効率の悪化を招く。しかも、余分な搬送動作によって、基板が不必要な汚染を受けるリスクもある。そこで、仮想リソースの無効化は、次のプロセスジョブのスケジューリングを開始するよりも前に行うことで、前述のような無駄な処理および動作を回避できる。また、或るプロセスジョブが計画された処理ユニットにおいて、別のカテゴリのプロセスジョブを実行するための無駄な準備動作が計画されることを回避することもできる。
【0151】
仮想リソースの無効化(禁止属性情報の生成)は、次のプロセスジョブデータを受信するよりも前に実行されてもよい。この場合、前述のような無駄な処理および動作をより確実に回避できる。
以上、この発明の一実施形態について説明してきたが、この発明はさらに他の形態で実施することもできる。たとえば、前述の実施形態で示した基板処理装置の構成や基板処理内容は一例に過ぎず、基板処理装置は他の構成を採ることができ、かつ別の基板処理内容に対してもこの発明を適用できる。
【0152】
また、前述の実施形態では、仮想リソースおよびその仮想リソースに配置すべき仮想ブロック(製品処理ブロック、薬液温度ブロック)を用い、さらに仮想リソースを必要に応じて占有状態として無効化することによって、複数のプロセスジョブ間のカテゴリの異同が判断されている。しかし、このような構成は、一例であり、例えば、スケジューリング機能部25が、複数のプロセスジョブのレシピの内容を比較して、カテゴリの異同を判断してもよい。ただし、仮想リソース等を用いる構成は、実リソースに対する処理スケジューリングと同様の処理でカテゴリの異同判別を併せて行えるので、処理の実行のためのプログラミングが容易であるという利点がある。たとえば、仮想リソースを占有状態とする処理は、処理ユニット等の実リソースを異常発生状態として無効化する処理と同様の処理で実現できる。
【0153】
また、前述の実施形態では、薬液キャビネットが一つだけ設けられた構成について説明したが、複数の薬液キャビネットが備えられてもよい。この場合には、薬液キャビネットごとに、薬液温度リソースを設け、使用する薬液キャビネットおよび使用する薬液温度を指定した処理スケジューリングを作成すればよい。
また、前述の実施形態では、レシピにおいて処理ユニットが指定されている例について説明したが、プロセスジョブデータは、処理ユニット指定情報を含んでいなくてもよい。この場合、スケジューリング機能部25は、レシピに基づいて、基板処理に使用すべき処理ユニットを特定すればよい。
【0154】
また、プログラム30は、コンピュータ20に組み込まれた状態で提供されてもよいし、コンピュータ20とは別の記憶媒体(CD−ROM、DVD−ROM等のコンピュータ読取可能な記憶媒体)に記録された状態で提供されてもよい。
処理対象の基板の種類はとくに限定されるものではなく、半導体基板、ガラス基板等に代表される基板一般に対して、この発明の適用が可能である。
【0155】
その他、特許請求の範囲に記載された事項の範囲で種々の設計変更を施すことが可能である。