Patent application title: Scheduling Start-up Process for Time-constrained Single-arm Cluster Tools
Inventors:
IPC8 Class: AB25J916FI
USPC Class:
1 1
Class name:
Publication date: 2017-03-23
Patent application number: 20170080563
Abstract:
Due to the trend of using larger wafer diameter and smaller lot size,
cluster tools need to switch from processing one lot of wafers to another
frequently. It leads to more transient periods in wafer fabrication.
Their efficient scheduling and control problems become more and more
important. It becomes difficult to solve such problems, especially when
wafer residency time constraints must be considered. This work develops a
Petri net model to describe the behavior during the start-up transient
processes of a single-arm cluster tool. Then, based on the model, for the
case that the difference of workloads among the steps is not too large
and can be properly balanced, a scheduling algorithm to find an optimal
feasible schedule for the start-up process is given. For other cases
schedulable at the steady state, a linear programming model is developed
to find an optimal feasible schedule for the start-up process.Claims:
1. A computer-implemented method for scheduling a cluster tool, the
cluster tool comprising a single-arm robot for wafer handling, a loadlock
for wafer cassette loading and unloading, n process modules each for
performing a wafer-processing step with a wafer residency time constraint
where the ith process module, i .di-elect cons. {1, 2, . . . , n}, is
used for performing Step i of the n wafer-processing steps for each
wafer, and a specialized processor configured to control the robot, the
loadlock, and the process modules through execution of the method, the
method comprising: when .sub.max.ltoreq..sub.iU and
.psi..sub.1.ltoreq..sub.iU, i=1, 2, . . . , n, determining, by the
specialized processor, values of .omega..sub.0, .omega..sub.1, . . . ,
.omega..sub.d for each of plural system states M.sub.sd, d=0, 1, . . .
n-1, of the cluster tool, where M.sub.st, 1.ltoreq.i.ltoreq.n-1 denotes
that i instances of a wafer unloading from the robot to any one of the n
process modules have occurred since system start-up, and .omega..sub.j, j
.di-elect cons.{0, 1, . . . d}, is a robot waiting time used in the state
M.sub.sd for the robot to wait before unloading a wafer in Step j from
the robot to the (j+1)th process module; wherein the determining of
.omega..sub.0, .omega..sub.1, . . . , .omega..sub.d for each of the
system states M.sub.sd, d=0, 1, . . . , n-1, comprises: setting, by the
specialized processor, .omega..sub.0=0 and .omega..sub.1=a.sub.1 for the
states M.sub.s0 and M.sub.s1); where: .sub.max=max{.sub.iL, i .di-elect
cons. N.sub.n}; .psi..sub.1=2(n+1).mu.+(2n+1).alpha.+.alpha..sub.0
.sub.iU=a.sub.i+4.alpha.+3.mu.+.delta..sub.i, i .di-elect cons.
N.sub.n\{1}; .sub.1U=a.sub.i+3.alpha.+.alpha..sub.0+3.mu.+.delta..sub.1;
.sub.1L=a.sub.i+4.alpha.+.mu., i .di-elect cons. N.sub.n\{1};
.sub.1L=a.sub.1+3.alpha.+.alpha..sub.0+3.mu.; a.sub.i, i .di-elect cons.
N.sub.n, is a time that a wafer is processed in the ith process module;
.delta..sub.i is the wafer residency time constraint of Step i, given by
a pre-determined longest time for which a wafer in the ith process module
is allowed to stay therein after this wafer is processed; .alpha. is a
time of loading a wafer to or unloading the wafer to the robot in Step i;
.mu. is a time of the robot moving from one wafer-processing step to
another; .alpha..sub.0 is a time of the robot unloading a wafer from the
loadlock and aligning the same; and N.sub.m={1 ,2, . . . ,} for a
positive integer m.
2. The method of claim 1, wherein the determining of .omega..sub.0, .omega..sub.1, . . . , .omega..sub.d for each of the system states M.sub.sd, d=0, 1, . . . , n-1, further comprises: setting .omega..sub.i=0, i .di-elect cons. N.sub.d-1.orgate.{0}, and .omega..sub.d=max{.sub.dmax-.psi..sub.sd(d+1)1, 0} for the state M.sub.sd, 2.ltoreq.d.ltoreq.n-1 when n>2; where: .sub.dmax=max{.sub.iL, i .di-elect cons. N.sub.d}; and .psi..sub.sd(d+1)1=2(d+1).mu.+(2d+1).alpha.+.alpha..sub.0.
3. The method of claim 2, further comprising: when .sub.max.ltoreq..sub.iU and .psi..sub.1.ltoreq..sub.iU, i=1, 2, . . . , n, setting, by the specialized processor, .omega..sub.i=0, i .di-elect cons. N.sub.n-1.orgate.{0}, and .omega..sub.n=max{.sub.max-.psi..sub.10} for use in a state M.sub.sn and thereafter, where M.sub.sn denotes that n instances of a wafer unloading from the robot to any one of the n process modules have occurred since system start-up, and .omega..sub.j, j .di-elect cons. {0, 1, . . . n}, is a robot waiting time, used in a steady state of the cluster tool, for the robot to wait before unloading a wafer in Step j from the robot to the (j+1)th process module.
4. The method of claim 3, further comprising: when [.sub.1L, .sub.1U], .andgate.[.sub.2L, .sub.2U].andgate. . . . .andgate.[.sub.nL, .sub.nU]O, determining, by the specialized processor, values of .omega..sub.0.sup.d, .omega..sub.1.sup.d, . . . , .omega..sub.d.sup.d for each of the system states M.sub.sd, d=0,1, . . . , n-1, where .omega..sub.j.sup.d, j .di-elect cons. {0, 1, . . . , d}, is a robot waiting time used in the state M.sub.sd for the robot to wait before unloading a wafer in Step j from the robot to the (j+1)th process module; wherein the determining of .omega..sub.0.sup.d, .omega..sub.1.sup.d, . . . , .omega..sub.d.sup.d for each of the system states M.sub.sd, d=0, 1, . . . , n, comprises: numerically optimizing the values of .omega..sub.0.sup.d, .omega..sub.1.sup.d, . . . , .omega..sub.d.sup.d such that d = 1 n i = 0 d .omega. i d ##EQU00007## is minimized subject to: t.sub.11.sup.0=.alpha..sub.0+.mu.+.alpha., t.sub.12.sup.1=t.sub.11.sup.0+.omega..sub.1.sup.1+.alpha., t.sub.i1.sup.d=t.sub.(i=1)2.sup.0+.mu.+.alpha., 1.ltoreq.i.ltoreq.d+1 and 1.ltoreq.d.ltoreq.n-1, t.sub.i2.sup.d=t.sub.(i+2)1.sup.d+.mu.+.omega..sub.i.sup.d+.alpha., 1.ltoreq.i.ltoreq.d-1 and 1.ltoreq.d.ltoreq.n-1, t.sub.02.sup.d=t.sub.(d+2)1.sup.d+.mu.+.omega..sub.0.sup.d+.alpha..sub.0, 1.ltoreq.d.ltoreq.n-1, t.sub.d2.sup.d=t.sub.11.sup.d-1+.mu.+.omega..sub.d.sup.d+.alpha., 1.ltoreq.d.ltoreq.n-1, t.sub.i1.sup.d=t.sub.(i+1)2.sup.d+.mu.+.alpha., 1.ltoreq.i.ltoreq.n and d .di-elect cons. {n,n+1}, t.sub.01.sup.d=t.sub.n2.sup.d+.mu..alpha., .di-elect cons. {n, n+1}, t.sub.i2.sup.d=t.sub.(i+2)1.sup.d+.mu.+.omega..sub.i.sup.d+.alpha., 1.ltoreq.i.ltoreq.n-2 and d .di-elect cons. {n, n+1}, t.sub.(n-1)2.sup.d=t.sub.01.sup.d+.mu.+.omega..sub.n-1.sup.d+.alpha., d .di-elect cons. {n, n+1}, t.sub.n2.sup.d=t.sub.11.sup.d-1+.mu.+.omega..sub.n.sup.d+.alpha., d .di-elect cons. {n, n+1}, t.sub.02.sup.d=t.sub.21.sup.d+.mu.+.omega..sub.0.sup.d+.alpha..sub.0, d .di-elect cons. {n, n+1}, .omega..sub.i.sup.n=.omega..sub.l.sup.n+1, 0.ltoreq.i.ltoreq.n d = 1 n i = 0 d .omega. i d .gtoreq. 0 ; ##EQU00008## and a.sub.i.ltoreq.t.sub.i2.sup.d-.alpha.-t.sub.i1.sup.d-1.ltoreq.a.sub.i+.de- lta..sub.i, 1.ltoreq.i.ltoreq.d and 1.ltoreq.d.ltoreq.n+1; where: t.sub.i1.sup.d denotes a time when the robot completes loading a wafer into Step i, i .di-elect cons. N.sub.n.orgate.{0}; t.sub.i2.sup.d a time when the robot completes unloading a wafer from Step i, i .di-elect cons. N.sub.n; t.sub.02.sup.d denotes a time when the robot completes unloading the loadlock and aligning the same; and .omega..sub.j.sup.d, j .di-elect cons. N.sub.n and d .di-elect cons. {n, n+1}, is a robot waiting time used in a state M.sub.sd for the robot to wait before unloading a wafer in Step j from the robot to the (j+1)th process module, the state M.sub.sd denoting that d instances of a wafer unloading from the robot to any one of the n process modules have occurred since system start-up.
5. The method of claim 4, further comprising: when [.sub.1L, .sub.1U].andgate.[.sub.2L, .sub.2U].andgate. . . . .andgate.[.sub.nL, .sub.nU]=O, by the specialized processor, .omega..sub.i=.omega..sub.i.sup.n, 0.ltoreq.i.ltoreq.n-1, and .omega..sub.n=.sub.max-.SIGMA..sub.t=0.sup.n-1.omega..sub.i for use in the state M.sub.sn and thereafter.
6. A computer-implemented method for scheduling a cluster tool, the cluster tool comprising a single-arm robot for wafer handling, a loadlock for wafer cassette loading and unloading, n process modules each for performing a wafer-processing step with a wafer residency time constraint where the ith process module, i .di-elect cons. {1, 2, . . . , n}, is used for performing Step i of the n wafer-processing steps for each wafer, and a specialized processor configured to control the robot, the loadlock, and the process modules through execution of the method, the method comprising: when [.sub.1L, .sub.1U].andgate.[.sub.2L, .sub.2U].andgate. . . . .andgate.[.sub.nL, .sub.nU]=O, determining, by the specialized processor, values of .omega..sub.0.sup.d, .omega..sub.1.sup.d, . . . , .omega..sub.d.sup.d for each of plural system states M.sub.sd, d=0,1, . . . , n-1, of the cluster tool, where M.sub.s1, 1.ltoreq.i.ltoreq.n-1 denotes that i instances of a wafer unloading from the robot to any one of the n process modules have occurred since system start-up, and .omega..sub.j.sup.d, j .di-elect cons. {0, 1, . . . d}, is a robot waiting time used in the state M.sub.sd for the robot to wait before unloading a wafer in Step j from the robot to the (j+1)th process module; wherein the determining of .omega..sub.0.sup.d, .omega..sub.1.sup.d, . . . .omega..sub.d.sup.d for each of the system states M.sub.sd, d=0, 1, . . . , n, comprises: numerically optimizing the values of .omega..sub.0.sup.d, .omega..sub.1.sup.d, . . . , .omega..sub.d.sup.d such that d = 1 n i = 0 d .omega. i d ##EQU00009## is minimized subject to: t.sub.11.sup.0=.alpha..sub.0+.mu.+.alpha., t.sub.12.sup.1=t.sub.11.sup.0+.omega..sub.1.sup.1+.alpha., t.sub.i1.sup.d=t.sub.(i=1)2.sup.0+.mu.+.alpha., 1.ltoreq.i.ltoreq.d+1 and 1.ltoreq.d.ltoreq.n-1, t.sub.i2.sup.d=t.sub.(i+2)1.sup.d+.mu.+.omega..sub.i.sup.d+.alpha., 1.ltoreq.i.ltoreq.d-1 and 1.ltoreq.d.ltoreq.n-1, t.sub.02.sup.d=t.sub.(d+2)1.sup.d+.mu.+.omega..sub.0.sup.d+.alpha..sub.0, 1.ltoreq.d.ltoreq.n-1, t.sub.d2.sup.d=t.sub.11.sup.d-1+.mu.+.omega..sub.d.sup.d+.alpha., 1.ltoreq.d.ltoreq.n-1, t.sub.i1.sup.d=t.sub.(i+1)2.sup.d+.mu.+.alpha., 1.ltoreq.i.ltoreq.n and d .di-elect cons. {n,n+1}, t.sub.01.sup.d=t.sub.n2.sup.d+.mu..alpha., .di-elect cons. {n, n+1}, t.sub.i2.sup.d=t.sub.(i+2)1.sup.d+.mu.+.omega..sub.i.sup.d+.alpha., 1.ltoreq.i.ltoreq.n-2 and d .di-elect cons. {n, n+1}, t.sub.(n-1)2.sup.d=t.sub.01.sup.d+.mu.+.omega..sub.n-1.sup.d+.alpha., d .di-elect cons. {n, n+1}, t.sub.n2.sup.d=t.sub.11.sup.d-1+.mu.+.omega..sub.n.sup.d+.alpha., d .di-elect cons. {n, n+1}, t.sub.02.sup.d=t.sub.21.sup.d+.mu.+.omega..sub.0.sup.d+.alpha..sub.0, d .di-elect cons. {n, n+1}, .omega..sub.i.sup.n=.omega..sub.l.sup.n+1, 0.ltoreq.i.ltoreq.n d = 1 n i = 0 d .omega. i d .gtoreq. 0 ; ##EQU00010## and a.sub.i.ltoreq.t.sub.i2.sup.d-.alpha.-t.sub.i1.sup.d-1.ltoreq.a.sub.i+.de- lta..sub.i, 1.ltoreq.i.ltoreq.d and 1.ltoreq.d.ltoreq.n+1. where: .sub.iU=a.sub.i+4.alpha.+3.mu.+.delta..sub.i, i .di-elect cons. N.sub.n\{1}; .sub.1U=a.sub.1+3.alpha.+.alpha..sub.0+3.mu.+.delta..sub.1; .sub.iL=a.sub.i+4.alpha.+3.mu., i .di-elect cons.N.sub.n\{1}; .sub.1L=a.sub.1+3.alpha.+.alpha..sub.0+3.mu.; t.sub.i1.sup.d denotes a time when the robot completes loading a wafer into Step i, i .di-elect cons. N.sub.n.orgate.{0}; t.sub.i2.sup.d denotes a time when the robot completes unloading a wafer from Step i, i .di-elect cons. N.sub.n; t.sub.02.sup.d denotes a time when the robot completes unloading the loadlock and aligning the same; .omega..sub.j.sup.d, j .di-elect cons. N.sub.n and d .di-elect cons. {n, n+1}, is a robot waiting time used in a state M.sub.sd for the robot to wait before unloading a wafer in Step j from the robot to the (j+1)th process module, the state M.sub.sd denoting that d instances of a wafer unloading from the robot to any one of the n process modules have occurred since system start-up; a.sub.i, i .di-elect cons. N.sub.n, is a time that a wafer is processed in the ith process module; .delta..sub.i is the wafer residency time constraint of Step i, given by a pre-determined longest time for which a wafer in the ith process module is allowed to stay therein after this wafer is processed; .alpha. is a time of loading a wafer to or unloading the wafer to the robot in Step i; .mu. is a time of the robot moving from one wafer-processing step to another; .alpha..sub.0 is a time of the robot unloading a wafer from the loadlock and aligning the same; and N.sub.m={1, 2, . . . , m} for a positive integer m.
7. The method of claim 6, further comprising: when [.sub.1L, .sub.1U].andgate.[.sub.2L, .sub.2U].andgate. . . . .andgate.[.sub.nL, .sub.nU]=O, setting, by the processor, .omega..sub.i=.omega..sub.i.sup.n, 0.ltoreq.i.ltoreq.n-1, and .omega..sub.n=.sub.max-.SIGMA..sub.i=0.sup.n-1.omega..sub.i for use in the state M.sub.sn and thereafter, where .omega..sub.j, j .di-elect cons. {0, 1, . . . n}, is a robot waiting time, used in a steady state of the cluster tool, for the robot to wait before unloading a wafer in Step j from the robot to the (j+1)th process module.
8. A cluster tool comprising a single-arm robot for wafer handling, a loadlock for wafer cassette loading and unloading, and plural process modules each for performing a wafer-processing step with a wafer residency time constraint, wherein the cluster tool further comprises one or more specialized processors configured to execute a process of scheduling the cluster tool according to the method of claim 1.
9. A cluster tool comprising a single-arm robot for wafer handling, a loadlock for wafer cassette loading and unloading, and plural process modules each for performing a wafer-processing step with a wafer residency time constraint, wherein the cluster tool further comprises one or more specialized processors configured to execute a process of scheduling the cluster tool according to the method of claim 2.
10. A cluster tool comprising a single-arm robot for wafer handling, a loadlock for wafer cassette loading and unloading, and plural process modules each for performing a wafer-processing step with a wafer residency time constraint, wherein the cluster tool further comprises one or more specialized processors configured to execute a process of scheduling the cluster tool according to the method of claim 3.
11. A cluster tool comprising a single-arm robot for wafer handling, a loadlock for wafer cassette loading and unloading, and plural process modules each for performing a wafer-processing step with a wafer residency time constraint, wherein the cluster tool further comprises one or more specialized processors configured to execute a process of scheduling the cluster tool according to the method of claim 4.
12. A cluster tool comprising a single-arm robot for wafer handling, a loadlock for wafer cassette loading and unloading, and plural process modules each for performing a wafer-processing step with a wafer residency time constraint, wherein the cluster tool further comprises one or more specialized processors configured to execute a process of scheduling the cluster tool according to the method of claim 5.
13. A cluster tool comprising a single-arm robot for wafer handling, a loadlock for wafer cassette loading and unloading, and plural process modules each for performing a wafer-processing step with a wafer residency time constraint, wherein the cluster tool further comprises one or more specialized processors configured to execute a process of scheduling the cluster tool according to the method of claim 6.
14. A cluster tool comprising a single-arm robot for wafer handling, a loadlock for wafer cassette loading and unloading, and plural process modules each for performing a wafer-processing step with a wafer residency time constraint, wherein the cluster tool further comprises one or more specialized processors configured to execute a process of scheduling the cluster tool according to the method of claim 7.
Description:
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of U.S. Provisional Patent Application No. 62/221,034, filed on Sep. 20, 2015, which is incorporated by reference herein in its entirety.
LIST OF ABBREVIATIONS
[0002] CP control policy
[0003] LL loadlock
[0004] LPM linear programming model
[0005] PM process module
[0006] PN Petri net
BACKGROUND
[0007] 1. Field of the invention
[0008] The present invention generally relates to scheduling a cluster tool, where the cluster tool has a single-arm robot for wafer handling, and plural process modules each for performing a wafer-processing step with a wafer residency time constraint. In particular, the present invention relates to a method for scheduling a start-up process for a single-arm cluster tool with wafer residency time constraints.
LIST OF REFERENCES
[0009] There follows a list of references that are occasionally cited in the specification. Each of the disclosures of these references is incorporated by reference herein in its entirety.
[0010] M. Bader, R. Hall and G. Strasser, "Integrated processing equipment," Solid State Technol., vol. 33, no. 5, pp. 149-154, 1990.
[0011] P. Burggraaf, "Coping with the high cost of wafer fabs." Semiconductor International, vol. 38, pp. 45-50, 1995.
[0012] A. Caloini, G. A. Magnani and M. Pezze, "A technique for designing robotic control systems based on Petri nets," IEEE Transactions on Control Systems and Technology, vol. 6, no. 1, pp. 72-87, 1998.
[0013] W. K. V. Chan, J. Yi and S. Ding, "Optimal scheduling of multicluster tools with constant robot moving times, part I: two-cluster analysis," IEEE Transactions on Automation Science and Engineering, vol. 8, no. 1, pp. 5-16, January 2011.
[0014] S. Ding, J. Yi and M. Zhang, "Scheduling multi-cluster tools: An integrated event graph and network model approach," IEEE Transactions on Semiconductor Manufacturing, vol. 19, no. 3, pp. 339-351, August 2006.
[0015] L. Ferrarini and L. Piroddi, "Modeling and control of fluid transportation operations in production plants with Petri nets," IEEE Transactions on Control Systems and Technology, vol. 16, no. 5, pp. 1090-1098, 2008.
[0016] D. Liu, Z. W. Li and M. C. Zhou, "Hybrid Liveness-Enforcing Policy for Generalized Petri Net Models of Flexible Manufacturing Systems," IEEE Transactions on Systems, Man, and Cybernetics: Systems, vol. 43, no. 1, pp. 85-97, January 2013.
[0017] C. Jung and T.-E. Lee, "An efficient mixed integer programming model based on timed Petri nets for diverse complex cluster tool scheduling problems," IEEE Transactions on Semiconductor Manufacturing, vol. 25, no. 2, pp. 186-199, 2012.
[0018] T. K. Kim, C. Jung and T. E. Lee, "Scheduling start-up and close-down periods of dual-armed cluster tools with wafer delay regulation" International Journal of Production Research, vol. 50, no. 10, pp. 2785-2795, May 2012.
[0019] D. K. Kim, T. E. Lee and H. J. Kim, "Optimal scheduling of transient cycles for single-armed cluster tools," in Proceedings of the 2013 IEEE International Conference on Automation Science and Engineering, Madison, Wis., USA, August 2013a.
[0020] H. J. Kim, J. H. Lee, C. Jung and T. E. Lee, "Scheduling cluster tools with ready time constraints for consecutive small lots," IEEE Transactions on Automation Science and Engineering, vol. 10, no. 1, pp. 145-159, January 2013b.
[0021] H. J. Kim, J. H. Lee and T. E. Lee, "Noncyclic scheduling of cluster tools with a branch and bound algorithm," IEEE Transactions on Automation Science and Engineering, vol. 12 , no. 2, pp. 690-700, April 2015.
[0022] J.-H. Kim, T.-E. Lee, H.-Y. Lee and D.-B. Park, "Scheduling analysis of timed-constrained dual-armed cluster tools," IEEE Transactions on Semiconductor Manufacturing, vol. 16, no. 3, 521-534, 2003.
[0023] J. H. Lee, H. J. Kim and T. E. Lee, "Scheduling transient periods of dual-armed cluster tools," in Proceedings of the 2012 IEEE International Conference on Mechatronics and Automation, Chengdu, China, pp. 1569-1574, August 2012.
[0024] J. H. Lee, H. J. Kim and T. E. Lee, "Scheduling lot switching operations for cluster tools," IEEE Transactions on Semiconductor Manufacturing, vol. 26, no. 4, pp. 592-601, 2013.
[0025] J. H. Lee, H. J. Kim and T. E. Lee, "Scheduling cluster tools for concurrent processing of two wafer types," IEEE Transactions on Automation Science Engineering, vol. 11, no. 2, pp. 525-536, 2014.
[0026] T.-E. Lee, H.-Y. Lee and Y.-H. Shin, "Workload balancing and scheduling of a single-armed cluster tool," in Proceedings of the 5th APIEMS Conference, Gold Coast, Australia, pp. 1-15, 2004.
[0027] T.-E. Lee and S.-H. Park, "An extended event graph with negative places and tokens for timed window constraints," IEEE Transactions on Automation Science and Engineering, vol. 2, no. 4, pp. 319-332, 2005.
[0028] D-Y. Liao, M. D. Jeng and M. C. Zhou, "Petri net modeling and Lagrangian relaxation approach to vehicle scheduling in 300 mm semiconductor manufacturing," in Proc. 2004 IEEE Conf Robot. Autom., New Orleans, La., 2004, pp. 5301-5306.
[0029] M.-J. Lopez and S.-C. Wood, "Systems of multiple cluster tools--configuration, reliability, and performance," IEEE Transactions on Semiconductor Manufacturing, vol. 16, no. 2, pp. 170-178, 2003.
[0030] T. L. Perkinson, P. K. Maclarty, R. S. Gyurcsik and R. K. Cavin, III, "Single-wafer cluster tools performance: An analysis of throughput," IEEE Transactions on Semiconductor Manufacturing, vol. 7, no. 2, pp. 369-373, May 1994.
[0031] T. L. Perkinston, R. S. Gyurcsik and P. K. Maclarty, "Single-wafer cluster tool performance: An analysis of effects of redundant chambers and revisitation sequences on throughput," IEEE Transactions on Semiconductor Manufacturing, vol. 9, no. 2, pp. 384-400. May 1996.
[0032] Y. Qiao, N. Q. Wu and M. C. Zhou, "Petri net modeling and wafer sojourn time analysis of single-arm cluster tools with residency time constraints and activity time variation," IEEE Transactions on Semiconductor manufacturing, vol. 25, no. 3, pp. 432-446, 2012a.
[0033] Y. Qiao, N. Q. Wu and M. C. Zhou, "Real-time scheduling of single-arm cluster tools subject to residency time constraints and bounded activity time variation," IEEE Transactions on Automation Science and Engineering, vol. 9, no. 3, pp. 564-577, 2012b.
[0034] Y. Qiao, N. Q. Wu and M. C. Zhou, "A Petri net-based novel scheduling approach and its cycle time analysis for dual-arm cluster tools with wafer revisiting" IEEE Transactions on Semiconductor Manufacturing, vol. 26, no. 1, pp. 100-110, Februar 2013.
[0035] S. Rostami, B. Hamidzadeh and D. Camporese, "An optimal periodic scheduler for dual-arm robots in cluster tools with residency constraints," IEEE Transactions on Robotics and Automation, vol. 17, pp. 609-618, 2001.
[0036] D. Simon, E. C. Castaneda and P. Freedman, "Design and analysis of synchronization for real-time closed-loop control in robotics," IEEE Transactions on Control Systems and Technology, vol. 6, no. 4, pp. 445-461, 1998.
[0037] Raymond Tang, Grantham K. H. Pang and Stephen S. Woo, "A continuous fuzzy Petri net tool for intelligent process monitoring and control," IEEE Transactions on Control Systems and Technology, vol. 3, no. 3, pp. 318-329, 1995.
[0038] S. Venkatesh, R. Davenport, P. Foxhoven and J. Nulman, "A steady state throughput analysis of cluster tools: Dual-blade versus single-blade robots," IEEE Transactions on Semiconductor Manufacturing, vol. 10, no. 4, pp. 418-424, November 1997.
[0039] N. Q. Wu, C. B. Chu, F. Chu and M. C. Zhou, "A Petri net method for schedulability and scheduling problems in single-arm cluster tools with wafer residency time constraints," IEEE Transactions on Semiconductor Manufacturing, vol. 21, no. 2, pp. 224-237, 2008a.
[0040] N. Q. Wu and M. C. Zhou, "Avoiding deadlock and reducing starvation and blocking in automated manufacturing systems", IEEE Transactions on Robotics and Automation, vol. 17, no. 5, pp. 657-668, 2001.
[0041] N. Q. Wu and M. C. Zhou, "Modeling and deadlock control of automated guided vehicle systems," IEEE/ASME Transactions on Mechatronics, vol. 9, no. 1, pp. 50-57, 2004.
[0042] N. Q. Wu and M. C. Zhou, System modeling and control with resource-oriented Petri nets, CRC Press, Taylor & Francis Group, New York, October 2009.
[0043] N. Q. Wu and M. C. Zhou, "Colored time Petri nets for modeling and analysis of cluster tools," Asian Journal of Control, vol. 12, no. 3, pp. 253-266, 2010a.
[0044] N. Q. Wu and M. C. Zhou, "A closed-form solution for schedulability and optimal scheduling of dual-arm cluster tools with wafer residency time constraint based on steady schedule analysis," IEEE Transactions on Automation Science and Engineering, vol. 7, no. 2, 303-315, 2010b.
[0045] N. Q. Wu, M. C. Zhou and Z. W. Li, "Resource-oriented Petri net for deadlock avoidance in flexible assembly systems," IEEE Transactions on System, Man, & Cybernetics, Part A, vol. 38, no. 1, pp. 56-69, 2008b.
[0046] U. Wikborg and T. E. Lee, "Noncyclic scheduling for timed discrete event systems with application to single-armed cluster tools using Pareto-optimal optimization," IEEE Transactions on Automation Science and Engineering, vol. 10, no. 3, pp. 689-710, July 2013.
[0047] J. Yi, S. Ding and M. Zhang, "Steady-state throughput and scheduling analysis of multi-cluster tools: A decomposition approach," IEEE Transactions on Automation Science and Engineering, vol. 5, no. 2, pp. 321-336, April 2008.
[0048] H. J. Yoon and D. Y. Lee, "On-line scheduling of integrated single-wafer processing tools with temporal constraints," IEEE Transactions on Semiconductor Manufacturing, vol. 18, no. 3, pp. 390-398, 2005.
[0049] M. Zhou and F. DiCesare, "Parallel and sequential mutual exclusions for Petri net modeling of manufacturing systems with shared resources," IEEE Transactions on Robotics and Automation, vol. 7, no. 4, pp. 515-527, 1991.
[0050] M. Zhou, F. DiCesare and A. Desrochers, "A hybrid methodology for synthesis of Petri nets for manufacturing systems," IEEE Transactions on Robotics and Automation, vol. 8, pp. 350-361, 1992.
[0051] M. C. Zhou and M. D. Jeng, "Modeling, analysis, simulation, scheduling, and control of semiconductor manufacturing systems: a Petri net approach," IEEE Transactions on Semiconductor Manufacturing, vol. 11, no. 3, pp. 333-357, 1998.
[0052] M. C. Zhou and K. Venkatesh, Modeling, simulation and control of flexible manufacturing systems: A Petri net approach, World Scientific, Singapore, 1998.
[0053] M. C. Zhou, C.-H. Wang and X. Y. Zhao, "Automating mason's rule and its application to analysis of stochastic Petri nets," IEEE Transactions on Control Systems and Technology, vol. 3, no. 2, pp. 238-244, 1995.
[0054] W. M. Zuberek, "Timed Petri nets in modeling and analysis of cluster tools," IEEE Transaction on Robotics & Automation Magazine, vol. 17, no. 5, pp.562-575, October 2001.
[0055] 2. Description of the Related Art
[0056] In semiconductor manufacturing, wafers are processed in cluster tools with a single-wafer processing technology. Such technology allows manufacturers to process wafers one by one at each process module (PM) in cluster tools. These tools can provide a reconfigurable, flexible and efficient environment, leading to better quality control and reduced lead time [Bader et al., 1990; and Burggraaf, 1995]. In a cluster tool, there are several process modules (PMs), an aligner, a wafer handling robot, and loadlocks (LLs) for wafer cassette loading/unloading. All these modules are mechanically linked together in a radial way and computer-controlled. The robot in the center of the tool can have a single arm or dual arms, thus resulting in a single- or a dual-arm cluster tool as respectively shown in FIGS. 1A and 1B.
[0057] With two LLs, a cluster tool can be operated consecutively without being interrupted such that it can operate in a steady state for most of time. Great efforts have been made in its modeling and performance evaluation [Chan et al., 2011; Ding et al., 2006; Perkinston et al., 1994; Perkinston et al., 1996; Venkatesh et al., 1997; Wu and Zhou, 2010a; Yi et al., 2008; Zuberek, 2001; and Lee et al., 2014]. It is found that, under the steady state, a cluster tool operates in two different regions: transport and process-bound ones. For the former, its robot is always busy and the robot task time in a cycle determines its cycle time; while for the latter, its robot has idle time in a robot task cycle and thus the processing time of its PMs dominates its cycle time. Since the robot moving time from one PM to another is much shorter than wafer processing time [Kim et al., 2003], a backward scheduling is optimal for single-arm cluster tools [Lee et al., 2004; and Lopez and Wood, 2003]. For a dual-arm cluster tool, a swap strategy is efficient [Venkatesh et al., 1997] for it can simplify robot tasks and thus reduces cycle time.
[0058] For some wafer fabrication processes, a strict constraint on the wafer sojourn time in a PM called residency time constraint must be considered in scheduling a cluster tool [Kim et al., 2003; Lee and Park, 2005; Rostami et al., 2001; and Yoon and Lee, 2005]. Such a constraint requires that a wafer should be unloaded from a PM within a limited time after being processed; otherwise, the wafer would be damaged due to the high temperature and residual chemical gas in the PM. However, no buffer between PMs in a cluster tool makes it complicated to schedule the tool to satisfy wafer residency time constraints. Methods are presented in [Kim et al., 2003; Lee and Park, 2005; and Rostami et al., 2001] to solve this scheduling problem and find an optimal periodic schedule for dual-arm cluster tools. Necessary and sufficient schedulability conditions are proposed for both single- and dual-arm cluster tools and if schedulable, closed-form scheduling algorithms are derived to find the optimal cyclic schedules [Wu et al., 2008a; and Wu and Zhou, 2010b].
[0059] Due to the trends of larger wafer diameter and smaller lot sizes, cluster tools need to switch from processing one lot of wafers to another one frequently. This leads to more transient periods in wafer fabrication, which includes start-up and close-down processes. Their efficient scheduling and control problems become more and more important. They become very difficult to solve especially when wafer residency time constraints must be considered. Although most existing studies [Chan et al., 2011; Ding et al., 2006; Perkinston et al., 1994; Perkinston et al., 1996; Venkatesh et al., 1997; Wu and Zhou, 2010a; Yi et al., 2008; Zuberek, 2001; Qiao et al., 2012a and 2012b; Qiao et al., 2013; and Lee et al., 2014] aim at finding an optimal periodical schedule, few researches focus on scheduling for transient states [Lee et al., 2012 and 2013; Kim et al., 2012, 2013a, 2013b, and 2013c; and Wikborg and Lee, 2013] despite their increasing importance. In [Kim et al., 2012], with a given robot task sequence, the transient period for the start-up and close-down processes is minimized for a dual-arm cluster tool. In [Kim et al., 2013a, and Wikborg and Lee, 2013], scheduling methods are proposed for noncyclic scheduling problem for single-arm cluster tools. With small batch, lot switching occurs frequently. Thus, studies are conducted and techniques are developed for scheduling lot switching processes for both single and dual-arm cluster tools [Lee et al., 2012 and 2013; and Kim et al., 2013b and 2013c].
[0060] However, all the above studies about scheduling a transient process in a cluster tool are not applicable for a single-arm cluster tool with wafer residency time constraints, which are not considered in [Lee et al., 2012 and 2013; Kim et al., 2013a, 2013b, and 2013c; and Wikborg and Lee, 2013]. Such constraints can make an optimal schedule for a transient process without residency time constraints considered infeasible. With wafer residency time constraints, Kim et al.
[2012] propose scheduling methods to minimize the transient period for the start-up and close-down processes for dual-arm cluster tools. Since different scheduling strategies are required to schedule single-arm cluster tools. Their research results cannot be used to find an optimal feasible transient process for residency time-constrained single-arm cluster tools.
[0061] There is a need in the art to derive a solution to this optimal feasible transient process and to develop a method for scheduling a single-arm cluster tool based on the derived optimal solution.
SUMMARY OF THE INVENTION
[0062] The present invention provides a method for scheduling a cluster tool. The cluster tool comprises a single-arm robot for wafer handling, a LL for wafer cassette loading and unloading, and plural process modules each for performing a wafer-processing step with a wafer residency time constraint.
[0063] The method includes scheduling a start-up process for the cluster tool. The start-up process is developed based on Scheduling Algorithm 1 and the LPM model detailed below.
[0064] Preferably, the method further includes scheduling a steady-state process according to results obtained in the start-up process.
[0065] Other aspects of the present invention are disclosed as illustrated by the embodiments hereinafter.
BRIEF DESCRIPTION OF THE DRAWINGS
[0066] FIG. 1A depicts an example of a cluster tool having a single-arm robot.
[0067] FIG. 1B depicts an example of a cluster tool having a dual-arm robot.
[0068] FIG. 2 depicts a Petri net (PN) for the steady state of a single-arm cluster tool according to [Wu et al., 2008].
[0069] FIG. 3 depicts a Petri net for the start-up process of a single-arm cluster tool.
[0070] FIG. 4 shows the simulation results for Example 1.
[0071] FIG. 5 shows the simulation results for Example 2.
DETAILED DESCRIPTION
[0072] A PN model is developed for the start-up process of a single-arm cluster tool in Section A. Section B recalls the schedulability conditions and scheduling analysis for single-arm cluster tools [Wu et al., 2008]. Then, a scheduling algorithm and a linear programming model are developed for the start-up transient process scheduling in Section C.
[0073] Hereinafter, the notation N.sub.n, n being a positive integer, denotes a set containing positive integers from 1 to n, i.e. N.sub.n={1, 2, . . . , n}.
A. PETRI NET MODELING AND CONTROL
A.1. Finite Capacity Petri Nets
[0074] As an effective tool, PNs are widely used in modeling, analysis, and control of discrete-event systems, process industry, and robotic control systems [Zhou and DiCesare, 1991; Zhou et al., 1992 and 1995; Tang et al., 1995; Simon et al., 1998; Caloini et al., 1998; Zhou and Jeng, 1998; Wu and Zhou, 2001 and 2004; Liao et al., 2004; Ferrarini and Piroddi, 2008; Jung and Lee, 2012; Wu et al., 2008b; and Liu et al., 2013]. Following Zhou and Venkatesh
[1998], the present work adopts a finite capacity PN to model a single-arm cluster tool. It is defined as PN=(P, T, I, O, M, K), where P={p.sub.1, p.sub.2, . . . , p.sub.m} is a finite set of places; T={t.sub.1, t.sub.2, . . . , t.sub.n} is a finite set of transitions with P.andgate.T.noteq.O and P.andgate.T=O; I:P.times.T.fwdarw.N={0, 1, 2, . . . } is an input function; O: P.times.T.fwdarw.N is an output function; M: P.fwdarw.N is a marking representing the number of tokens in places with M.sub.0 being the initial marking; and K: P.fwdarw.N\{0} is a capacity function where K(p) represents the largest number of tokens that p can hold at a time.
[0075] The preset of transition t is the set of all input places to t, i.e. t={p: p.di-elect cons.P and I(p, t)>0}. Its postset is the set of all output places from t, i.e., t ={p: p.di-elect cons.P and O(p, t)>0}. Similarly, p's preset p={t.di-elect cons.T: O(p, t)>0} and postset p ={t.di-elect cons.T: I(p, t)>0}. The transition enabling and firing rules can be found in [Wu and Zhou, 2009].
A.2. PN Model for Cluster Tools
[0076] In the present work, it is assumed that there are n.gtoreq.2 steps in a cluster tool and only one PM serves for each step. Let (PM.sub.1, PM.sub.2, . . . , PM.sub.n) denote the wafer flow pattern, where PM.sub.i, i .di-elect cons. N.sub.n, represents a process model being used to process wafers at Step i. Thus, a wafer needs to be processed at PM.sub.1-PM.sub.n sequentially before it is completed. Wu et al. [2008a] developed a PN model and conducted the steady periodical scheduling analysis for a single-arm cluster tool with wafer residency time constraints. We briefly introduce their PN model next.
[0077] In such a PN model, Step i is modeled by timed place p.sub.i with K(p.sub.i)=1, i .di-elect cons. N.sub.n. The LLs are treated just as a processing step called Step 0. Since the LLs can hold all the wafers in a tool, they are modeled by p.sub.0 with K(p.sub.0)=.varies.. The robot is modeled by place r with K(r)=1, meaning that it has only one arm and can hold one wafer at a time. When M(r)=1, it represents that the robot arm is available. When M(p.sub.i)=1, i .di-elect cons. N.sub.n, a wafer is being processed in the PM for Step i. When the robot arrives at Step i for unloading a wafer, the wafer may be under way. Then, it has to wait there for some time. Timed place q.sub.i, i .di-elect cons. N.sub.n, is added to model the robot's waiting at Step i before unloading a wafer there and M(q.sub.i)=1 means that the robot is waiting at Step i. Note that the explicit representation of a robot wait as a place is critically important to deal with residency time constraints. Non-timed place z.sub.ij is used to model the state at which it is ready to load a wafer to Step i or the wafer unloading from Step i ends. Transitions are used to model the robot tasks. Timed t.sub.i1, i .di-elect cons. N.sub.n, models loading a wafer into Step i, and t.sub.01 models loading a completed wafer into a LL. Timed t.sub.i2, i .di-elect cons. N.sub.n, models unloading a wafer from Step i, and t.sub.02 models unloading a raw wafer from a LL. Timed transition y.sub.i, i .di-elect cons. N.sub.n-2.orgate.{0}, represents the robot's moving from Steps i+2 to i without carrying a wafer; while transitions y.sub.n-1 and y.sub.n represent the robot's moving from a LL to Step n-1 and Steps 1 to n, respectively. Timed transition x.sub.i, i .di-elect cons. N.sub.n-1.orgate.{0}, models the robot's moving from Steps i to i+1 with a wafer held, and x.sub.n models the robot's moving from Steps n to 0. Pictorially, p.sub.i's and q.sub.i's are denoted by , z.sub.ij's by .largecircle., and r's by . Then, the PN model for a single-arm cluster tool is shown in FIG. 2.
[0078] At the steady state, every process module has one wafer being processed, i.e., .SIGMA..sub.i=1.sup.n K(p.sub.i) wafers are being processed. For the PN model in FIG. 2, consider marking M with M(p.sub.i)=1, i .di-elect cons. N.sub.n, and M(r)=1. At this marking, y.sub.0 is enabled and firing y.sub.0 leads the PN to a dead marking, or the PN is deadlock-prone. Thus, according to [Wu et al., 2008], a control policy is proposed to make it deadlock-free.
[0079] Control Policy 1 (CP1): At any M of the PN model in FIG. 2, y.sub.i, i .di-elect cons. N.sub.n-1.orgate.{0}, is said to be control-enabled if M(p.sub.i+1)=0; and y.sub.n is said to be control-enabled if M(p.sub.i)=1, i .di-elect cons. N.sub.n.
[0080] Before a cluster tool reaches its steady state, it must experience a start-up process. For a single-arm cluster tool, because the processing time is much longer than the robot task time, a backward strategy is found to be optimal [Lee et al., 2004; and Lopez and Wood, 2003]. Thus, a backward strategy is also used to operate the single-arm cluster tool for the start-up process. At the initial state, there is no wafers being processed in the tool, or the tool is empty. Let M.sub.s0 denote the initial state. When the tool starts to work, the robot unloads a wafer from the LLs, moves to Step 1, and loads this wafer into Step 1. Let M.sub.s1 denote the state of the system when the robot finishes the robot task of loading the wafer into Step 1. Then, the robot should wait there till this wafer is completed. After the wafer is processed, the robot unloads this wafer from Step 1 as soon as possible, moves to Step 2, loads this wafer into Step 2, returns to the LLs and unloads a raw wafer from the LLs, moves to Step 1, and loads the raw wafer into Step 1. At this time, Step 1 and Step 2 both have one wafer being processed. Thus, let M.sub.52 denote the state of the system at this time. In the following operations of the system, the tool would reach a state that the Step i, i .di-elect cons.N.sub.d and d<n, has one wafer being processed and Step i, d<i.ltoreq.n, is empty. To model this state, a PN model is developed shown in FIG. 3.
[0081] The places in the PN model in FIG. 3 have the same meanings as the ones in FIG. 2. Transitions t.sub.i1, .di-elect cons. N.sub.d+1, d<n and d.gtoreq.2, t.sub.i2, i .di-elect cons. N.sub.d.orgate.{0}, d<n and d.gtoreq.2, x.sub.i, i .di-elect cons. N.sub.d.orgate.{0}, d<n and d.gtoreq.2, and y.sub.i, i .di-elect cons. N.sub.d-1.orgate.{0}, d<n and d.gtoreq.2, in the PN model in FIG. 3 also have the same meanings as the ones in FIG. 2. Transition y.sub.d represents the robot's moving from Steps 1 to d. Because Step i, i .di-elect cons. N.sub.d, d<n and d.gtoreq.2, has one wafer being processed and Step i, d<i.ltoreq.n, is empty, we have M(p.sub.i)=K(p.sub.i), i .di-elect cons. N.sub.d, d<n and d.gtoreq.2, and M(r)=1. At the marking shown in FIG. 3, y.sub.0 is enabled and can fire. It can be seen that firing y.sub.o leads the PN to a dead marking, or the PN is deadlock-prone. Then, a control policy is introduced to make it deadlock-free.
[0082] Control Policy 2 (CP2): For the PN model in FIG. 3, y.sub.i, i .di-elect cons. N.sub.d.orgate.{0}, d<n and d.gtoreq.2, is said to be control-enabled if M(p.sub.i+1)=0.
[0083] With CP2, the start-up process could be described by running the PN model in FIG. 3 shown as follows. At the state M.sub.s2, Steps 1 and 2 both have one wafer being processed and the robot stays at Step 1. To describe the state M.sub.s2, we can set d=2 in the PN model and M.sub.s2(p.sub.i)=K(p.sub.i), i .di-elect cons. N.sub.2, and M.sub.s2(r)=1 holds. According to CP2, the following transitions firing sequence is: firing y.sub.2 (moving to Step 2).fwdarw.firing t.sub.22 (unloading a wafer from Step 2).fwdarw.firing x.sub.2 (moving from Steps 2 to 3).fwdarw.firing t.sub.31 (loading the wafer into Step 3).fwdarw.firing y.sub.1 (moving from Steps 3 to 1).fwdarw.firing t.sub.12 (unloading a wafer from Step 1).fwdarw.firing x.sub.1 (moving from Steps 1 to 2).fwdarw.firing t.sub.21 (loading the wafer into Step 2).fwdarw.firing y.sub.0 (moving from Steps 2 to 0).fwdarw.firing t.sub.02 (unloading a wafer from Step 0).fwdarw.firing x.sub.0 (moving from Steps 0 to 1).fwdarw.firing t.sub.11 (loading the wafer into Step 1). At this time, the system reaches state M.sub.s3 such that M.sub.s3(p.sub.i)=K(p.sub.i), i .di-elect cons. N.sub.3, and M.sub.s3(r)=1 hold. Then, we can set d=3 in the PN model. According to CP2, the PN model can evolve to state M.sub.s4 with M.sub.s4(p.sub.i)=K(p.sub.i), i .di-elect cons. N.sub.4, and M.sub.s4(r)=1. Similarly, with the PN model in FIG. 3 and CP2, the PN model can evolve to state M.sub.sn with M.sub.sn(p.sub.i)=K(p.sub.i), i .di-elect cons. N.sub.n, and M.sub.sn(r)=1. At this time, the cluster tool is full of wafers and it reaches the steady state.
A.3. Activity Time Modeling
[0084] In the PN models in FIGS. 2 and 3, to describe the temporal aspect of a cluster tool, both transitions and places are associated with time. We use .mu. to denote the time for the robot task of moving with or without carrying a wafer. Time a.sub.i is used to denote the time taken for completing a wafer at a step. It is assumed that the time taken for the robot's unloading a wafer from a step and loading a wafer into a step/LL is same and denoted by .alpha.. Transition t.sub.02 models the robot's unloading a wafer from the LLs and aligning a wafer. Therefore, the time associated with t.sub.02 is .alpha..sub.0 that is different from .alpha.. The robot's waiting time (denoted by .omega..sub.i) in q.sub.i is determined by a schedule and can be a real number in [.varies.), or .omega..sub.i .di-elect cons.[0, .varies.). The detailed explanation of temporal features is summarized in Table 1.
TABLE-US-00001 TABLE 1 The Time Durations Associated with Transitions and Places Allowed Transition time or place Actions duration t.sub.i1 Robot loads a wafer into Step i, i.di-elect cons.N.sub.n.orgate.{0} .alpha. t.sub.i2 Robot unloads a wafer from Step i, i.di-elect cons.N.sub.n t.sub.02 Robot unloads a wafer from a LL and aligns it .alpha..sub.0 y.sub.i Robot moves from a step to another without .mu. carrying a wafer x.sub.i Robot moves from a step to another with a wafer carried p.sub.i A wafer being processed in p.sub.i, i.di-elect cons.N.sub.n a.sub.i q.sub.i robot waits before unloading a wafer from Step i, .omega..sub.i i.di-elect cons.N.sub.n.orgate.{0} z.sub.ij No activity is associated
[0085] With wafer residency time constraints, the deadlock-freeness does not mean that the PNs shown in FIGS. 2 and 3 are live, because a token in p.sub.i cannot stay there beyond a given time interval. Let .tau..sub.i be the sojourn time of a token in p.sub.i and .delta..sub.i the longest time for which a wafer can stay in p.sub.i after it is processed. Then, the liveness of the PN model is defined as follows.
[0086] Definition 1: The PN models in FIGS. 2 and 3 for single-arm cluster tools with residency time constraints are live, if 1) at any marking with a token in p.sub.1, .A-inverted.i .di-elect cons. N.sub.n, and when t.sub.i2 fires a.sub.i.ltoreq..tau..sub.i.ltoreq.a.sub.i+.delta..sub.i holds; 2) at any marking with a token in p.sub.i, i .di-elect cons.N.sub.d and d<n, and when t.sub.i2 fires a.sub.i.ltoreq..tau..sub.i.ltoreq.a.sub.i+.delta..sub.i holds, respectively.
B. SCHEDULABILITY CONDITIONS
[0087] Before scheduling the start-up process, we recall the necessary and sufficient schedulability conditions of a single-arm cluster tool with wafer residency time constraints under the steady state derived in [Wu et al., 2008].
B.1. Timeliness Analysis for the Steady State
[0088] It follows from [Wu et al., 2008] that, to complete the processing of a wafer at Step i, i .di-elect cons. N.sub.n-1, it takes .tau..sub.i+4.alpha.+3.mu.+.omega..sub.i-1 time units, where .tau..sub.i should be within [a.sub.i, a.sub.i+.delta..sub.i]. With only one PM at Step i, i .di-elect cons. N.sub.n, we have that the lower permissive cycle time at Step i is
.theta..sub.iL=a.sub.i+4.alpha.+3.mu.+.omega..sub.i-1, i .di-elect cons. N.sub.n\{1} (1)
The upper permissive cycle time at Step i is
.theta..sub.1L=a.sub.i+4.alpha.+3.mu.+.omega..sub.i-1+.delta..sub.i, i .di-elect cons. N.sub.n\{1}. (2)
For Step 1, the lower one is
.theta..sub.1L=a.sub.1+3.alpha.+.alpha..sub.0+3.mu.+.omega..sub.0. (3)
[0089] Its upper one is
.theta..sub.1U=a.sub.1+3.alpha.+.sub.0+3.mu.+.omega..sub.0+.delta..sub.1- . (4)
[0090] It follows from (1)-(4) that the robot waiting time .omega..sub.i, E .di-elect cons. N.sub.n-1.orgate.{0}, affects the permissive wafer sojourn time. Thus, by carefully regulating them, one can change the permissive range among the steps. By removing them from the above expressions, we obtain the lower and upper workloads with no robot waiting for each step as follows:
.sub.iL=a.sub.i+4.alpha.+3.mu., i .di-elect cons. N.sub.n\{1}, (5)
.sub.iU=a.sub.i+4.alpha.+3.mu.+.delta..sub.i, i .di-elect cons. N.sub.n\{1}, (6)
.sub.1L=a.sub.i+3.alpha.+.alpha..sub.0+3.mu. (7)
and
.sub.1U=a.sub.1+3.alpha.+.alpha..sub.0+3.mu.+.delta..sub.1, (8)
where .sub.jL and .sub.jU are the lower and the upper workloads, respectively, for Step j, j .di-elect cons. N.sub.n.
[0091] To schedule a single-arm cluster tool with residency time constraints, one has to ensure a.sub.i.ltoreq..tau..sub.i.ltoreq.a.sub.i+.delta..sub.i. Hence, we need to know how .tau..sub.i is calculated. According to [Wu et al., 2008], we have that
.tau. i = 2 ( n + 1 ) .mu. + ( 2 n + 1 ) .alpha. + .alpha. 0 + d = 0 n .omega. d - ( 4 .alpha. + 3 .mu. + .omega. i - 1 ) = .psi. - ( 4 .alpha. + 3 .mu. + .omega. i - 1 ) , i .di-elect cons. N n \ { 1 } and ( 9 ) .tau. 1 = 2 ( n + 1 ) .mu. + ( 2 n + 1 ) .alpha. + .alpha. 0 + d = 0 n .omega. d - ( 3 .alpha. + .alpha. 0 + 3 .mu. + .omega. 0 ) = .psi. - ( 3 .alpha. + .alpha. 0 + 3 .mu. + .omega. 0 ) . ( 10 ) ##EQU00001##
The robot cycle time is given by
.psi.=2(n+1).mu.+(2n+1).alpha.+.alpha..sub.0+.SIGMA..sub.d=0.sup.n.omega- ..sub.d=.psi..sub.1+.psi..sub.2 (11)
where .psi..sub.1=2(n+1).mu.+(2n+1).alpha.+.alpha..sub.0 is a known constant and .psi..sub.2=.SIGMA..sub.d=0.sup.n.omega..sub.d is to be decided by a schedule. It should be pointed out that .psi. is independent of the .omega..sub.i's. Let .theta..sub.1=.tau..sub.1+3.alpha.+.alpha..sub.0+3.mu.+.omega..sub.0 and .theta..sub.i=.tau..sub.i+4.alpha.+3.mu.+.omega..sub.i-1, i .di-elect cons. N.sub.n-{1}, denote the cycle time for Step i, i .di-elect cons. N.sub.n. Then, it can be seen that, by making .omega..sub.i-1>0, the cycle time of Step i is increased without increasing the wafer sojourn time. Thus, it is possible to adjust the robot waiting time to balance the wafer sojourn time among the steps such that a feasible schedule can be obtained. For a periodic schedule in a steady state, we have
.theta.=.theta..sub.1=.theta..sub.2= . . . =.theta..sub.n=.psi.. (12)
[0092] In (11), .mu., .alpha., and .alpha..sub.0 are all deterministic, only .omega..sub.d, d .di-elect cons. N.sub.n.orgate.{0}, are changeable, i.e., .psi..sub.1 is deterministic and .psi..sub.2 can be regulated. Thus, based on the PN model shown in FIG. 2, one can schedule a single-arm cluster tool with residency time constraints by appropriately regulating .omega..sub.d, d .di-elect cons. N.sub.n.orgate.{0}, such that (12) holds and at the same time the wafer residency time constraints are fully satisfied.
B.2. Schedulability Conditions for the Steady State Scheduling
[0093] To find a feasible cyclic schedule, the key is to know under what conditions there exists .theta. such that the system is schedulable. Notice that, in (5)-(8), .sub.iL and .sub.iU denote the lower and upper bounds of .theta..sub.i, respectively. Let .sub.max=max{.sub.iL, i .di-elect cons.N.sub.n}. Then, Wu et al.
[2008] establish the following schedulability conditions.
[0094] Theorem 1: .sub.max.ltoreq..sub.iU and .psi..sub.1.ltoreq..sub.iU, i .di-elect cons. N.sub.n, a single-arm cluster tool with residency time constraints is schedulable.
[0095] For this case, when.sub.max.ltoreq..sub.iU and .psi..sub.1.ltoreq..sub.max, i .di-elect cons. N.sub.n, the tool is process-bound. When .sub.iL.ltoreq..psi..sub.1.ltoreq..sub.iU, i .di-elect cons. N.sub.n, a tool is transport-bound. With .sub.max.ltoreq..sub.iU, i .di-elect cons. N.sub.n, the difference of the workloads among the steps is not too large. Thus, by properly setting .omega..sub.i's, the workloads among the steps can be balanced such that there is a feasible cyclic schedule. It follows from [Wu et al., 2008] that, in this case, one can simply set .omega..sub.i=0, i .di-elect cons. N.sub.n-1.orgate.{0}, and .omega..sub.n=max{.sub.max-.psi..sub.1, 0} such that .psi.=max{.sub.max, .psi..sub.1} holds. In this way, a feasible schedule is found. Further, it is optimal in terms of cycle time.
[0096] By Theorem 1, to make the tool schedulable requires that the workloads among the steps are not too large, i.e. [.sub.1L, .sub.1U].andgate.[.sub.2L, .sub.2U].andgate. . . . .andgate.[.sub.nL, .sub.nU].noteq.O. However, sometimes we have [.sub.1L, .sub.1U].andgate.[.sub.2L, .sub.2U].andgate. . . . .andgate.[.sub.nL, .sub.nU].noteq.O. In this case, let E={i|i .di-elect cons. N.sub.n, .sub.iU<.sub.max} and F=N.sub.n\E. It follows from [Wu et al., 2008] that the time for completing a wafer at Step i can be increased by setting .omega..sub.i-1>0 without changing sojourn time .tau..sub.i. Hence, a cluster tool may be made schedulable even if the workloads among the steps are not well balanced. To do so, we balance the workloads among the steps by setting .omega..sub.i-1's as follows:
.omega. i - 1 = { 0 , i .di-elect cons. F max - ( a 1 + .delta. 1 + 3 .alpha. + .alpha. 0 + 3 .mu. ) , 1 .di-elect cons. E max - ( a i + .delta. i + 4 .alpha. + 3 .mu. ) , 1 .di-elect cons. E { 2 , 3 , 4 , , n } . ( 13 ) ##EQU00002##
[0097] Theorem 2: If [.sub.1L, .sub.1U].andgate.[.sub.2L, .sub.2U].andgate. . . . .andgate.[.sub.nL, .sub.nU].noteq.O, .sub.IU<.sub.max, i .di-elect cons. E.noteq.O, .sub.iU.gtoreq..sub.max, i .di-elect cons. F, and .SIGMA..sub.i.di-elect cons.F..omega..sub.i-1+.psi..sub.1.ltoreq..sub.max, a single-arm cluster tool with residency time constraints is schedulable with .omega..sub.i-1, i .di-elect cons. N.sub.n, being set by (13).
[0098] In this case, with the robot waiting time .omega..sub.i-1, i .di-elect cons.N.sub.n, being set by (13), without changing .tau..sub.i, .theta..sub.i for completing a wafer at Step i can be increased such that the workload among the steps can be properly balanced. Notice that, by (13), the robot waiting time .omega..sub.i-1, i .di-elect cons. N.sub.n, is set, and then let .omega..sub.n=.sub.max-(.psi..sub.1+.SIGMA..sub.i.di-elect cons.E.omega..sub.i-1) such that .psi.=.theta..sub.max hold. Thus, a feasible schedule is obtained and the cycle time is optimal. According to [Wu et al., 2008], the conditions given by Theorems 1 and 2 are the necessary and sufficient schedulability conditions for a single-arm cluster tool with residency time constraints. In the next section, we conduct the start-up process scheduling analysis for the system.
C. START-UP PROCESS SCHEDULING
C.1. Temporal Properties in Start-up Process
[0099] At the initial state denoted by M.sub.s0, the cluster tool is idle. When the tool starts to work, the robot unloads a wafer from the LLs, moves to Step 1, and loads this wafer into Step 1. At this time, M.sub.s1 is reached. From states M.sub.s0 to M.sub.s1, it takes (.alpha..sub.0+.mu.+.alpha.) time units. Then, the robot should wait there for a.sub.1 time units before the wafer in Step 1 is completed. Then, (.alpha..sub.0+3.alpha.+3.mu.) time units would be taken for performing the following robot task sequence: unloads this wafer from Step 1 as soon as possible, moves to Step 2, loads this wafer into the Step 2, returns to the LLs and unloads a raw wafer from the LLs, moves to Step 1, and loads the raw wafer into Step 1. At this time, both Steps 1 and 2 have one wafer being processed and M.sub.s2 is reached. From M.sub.s1 to M.sub.s25 it takes (.alpha..sub.1+.alpha..sub.0+3.alpha.+3.mu.) time units.
[0100] Observing the PN model shown in FIG. 3, we have that M.sub.sd(p.sub.i)=K(p.sub.i), i .di-elect cons. N.sub.d and 2.ltoreq.d.ltoreq.n-2, and M.sub.sd(r)=1. With CP2, the PN model can evolve to state M.sub.s(d+1) with M.sub.s(d+1)(p.sub.i)=K(p.sub.i), i .di-elect cons.N.sub.d+1, and M.sub.s(d+1)(r)=1, and then to M.sub.s(d+2) with M.sub.s(d+2)(p.sub.i)=K(p.sub.i), i .di-elect cons. N.sub.d+2, and M.sub.s(d+2)(r)=1. During the evolution from M.sub.s(d+1) to M.sub.s(d+2), the robot should sequentially go to Steps (d+1), d, . . . , and 1 for unloading the processed wafers. Thus, with wafer residency time constraints, it is necessary to know how much time is needed to complete the processing of a wafer at Step i, i .di-elect cons.N.sub.d+1. Notice that the wafers unloaded from Step i, i .di-elect cons.N.sub.d+1, during the period from M.sub.s(d+1) to M.sub.s(d+2) are all the ones loaded into Step i, i .di-elect cons. N.sub.d+1, during the period from M.sub.sd to M.sub.s(d+1). Thus, from the PN model in FIG. 3, CP2, and the period from M.sub.sd to M.sub.s(d+2), to complete the processing of a wafer in Step i, i .di-elect cons.N.sub.d+1, the following transition firing (activities) sequence must be executed: Firing t.sub.i2 (time .alpha.).fwdarw.x.sub.i (time .mu.).fwdarw.t.sub.(i-1)1 (time .alpha.).fwdarw.y.sub.i-1 (time .mu.).fwdarw.robot waiting in q.sub.i-1 (time .omega..sub.i-1).fwdarw.t.sub.(i-1)2 (time .alpha.).fwdarw.x.sub.i-1 (time .mu.).fwdarw.t.sub.i1 (time .alpha.).fwdarw.processing a wafer at Step i (time .tau..sub.i).fwdarw.t.sub.i2 (time .alpha.) again. In this way, a cycle is completed and it takes (.tau..sub.i+4.alpha.+3.mu.+.omega..sub.i-1) time units to complete a wafer. In fact, for a wafer unloaded from Step i, i .di-elect cons. N.sub.d, during the period from M.sub.sd to M.sub.s(d+1), 2.ltoreq.d<n, it also takes (.tau..sub.i+4.alpha.+3.mu.+.omega..sub.i-1) time units to complete this wafer. Notice that .tau..sub.i should be within [a.sub.i, a.sub.i+.delta..sub.i]. When .tau..sub.i=a.sub.i, we have the lower permissive time to complete a wafer at Step i, i .di-elect cons.N.sub.d\{1}, which equals to the one given by (1). When .tau..sub.i=a.sub.i+.delta..sub.i, we have the upper permissive time to complete a wafer at Step i, which equals to the one given by (2). For Step 1, the lower and upper permissive time to complete a wafer equals to the ones in (3) and (4), respectively. Then, if the robot waiting time is removed from (1)-(4), the lower and upper workloads without robot waiting for each step can be obtained via (5)-(8), respectively.
[0101] EQNS. (5)-(8) present the workload balance information that affects the existence of a feasible schedule. It follows from (2) and (6) that .theta..sub.iU>.sub.iU if .omega..sub.i->0. It implies that, by making .omega..sub.i-1>0, the cycle time of Step i is increased without increasing the wafer sojourn time. Thus, it is possible to adjust the robot waiting time such that the permissive wafer sojourn time ranges among the steps are balanced to some extent to guarantee the feasibility. To do so, we need to know how .tau..sub.i should be calculated. The wafer sojourn time at p.sub.i depends on the robot tasks and the workloads of the steps. From the PN model shown in FIG. 3 and CP2, during the evolutions from M.sub.s(d-1) to M.sub.sd, a wafer (W.sub.1) is loaded by the robot into Step i: Firing y.sub.d-1.fwdarw.waiting in q.sub.d-1.fwdarw.firing t.sub.(d-1)2.fwdarw.firing x.sub.d-1.fwdarw.firing t.sub.d1.fwdarw.firing y.sub.d-2.fwdarw.waiting in q.sub.d-2.fwdarw.firing t.sub.(d-2)2.fwdarw.firing x.sub.d-2.fwdarw.firing t.sub.(d-1)1.fwdarw. . . . .fwdarw.firing y.sub.i.fwdarw.waiting in q.sub.i.fwdarw.firing t.sub.i2 with unloading a wafer from Step i.fwdarw.firing x.sub.i.fwdarw.firing t.sub.(i+1).fwdarw.firing y.sub.i-1.fwdarw.waiting in q.sub.i-1.fwdarw.firing t.sub.(i-1)2.fwdarw.firing t.sub.i-1.fwdarw.firing t.sub.i1 to load wafer W.sub.1 into Step i.fwdarw. . . . .fwdarw.y.sub.1.fwdarw.waiting in q.sub.1.fwdarw.firing t.sub.12.fwdarw.x.sub.1.fwdarw.firing t.sub.21.fwdarw.firing y.sub.0.fwdarw.waiting in q.sub.0.fwdarw.firing t.sub.02.fwdarw.firing x.sub.0.fwdarw.firing t.sub.11. Then, from the PN model shown in FIG. 3 and CP2, during the evolutions from M.sub.sd to M.sub.s(d+1), wafer W.sub.2 is unloaded by the robot from Step i: Firing y.sub.d.fwdarw.waiting in q.sub.d.fwdarw.firing t.sub.d2.fwdarw.firing x.sub.d.fwdarw.firing t.sub.(d+1)1.fwdarw.firing y.sub.(d-1).fwdarw.waiting in q.sub.(d-1).fwdarw.firing t.sub.(d-1)2.fwdarw.firing x.sub.d-1.fwdarw.firing t.sub.d1.fwdarw. . . . .fwdarw.firing y.sub.i.fwdarw.waiting in q.sub.i.fwdarw.firing t.sub.i2 to unload wafer W.sub.1 from Step i.fwdarw.firing x.sub.i.fwdarw.firing t.sub.(i+1)1.fwdarw.firing y.sub.i-1.fwdarw.waiting in q.sub.i-1.fwdarw.firing t.sub.(i-1)2.fwdarw.firing x.sub.i-1.fwdarw.firing t.sub.i1.fwdarw. . . . .fwdarw.y.sub.1.fwdarw.waiting in q.sub.1.fwdarw.firing t.sub.12.fwdarw.x.sub.1.fwdarw.firing t.sub.21.fwdarw.firing y.sub.0.fwdarw.waiting in q.sub.0.fwdarw.firing t.sub.02.fwdarw.firing x.sub.0.fwdarw.firing t.sub.11. Thus, from the above PN evolutions we have that, during the evolution from M.sub.sd to M.sub.s(d+1), 2.ltoreq.d<n, the wafer sojourn time in p.sub.1, i .di-elect cons.N.sub.d, is given by
.tau. 1 = 2 ( d + 1 ) .mu. + ( 2 d + 1 ) .alpha. + .alpha. 0 + j = 0 d .omega. j - ( 3 .alpha. + .alpha. 0 + 3 .mu. + .omega. 0 ) and ( 14 ) .tau. i = 2 ( d + 1 ) .mu. + ( 2 d + 1 ) .alpha. + .alpha. 0 + j = 0 d .omega. j - ( 4 .alpha. + 3 .mu. + .omega. i - 1 ) , 1 < i .ltoreq. d . ( 15 ) ##EQU00003##
[0102] Let .psi..sub.sd(d+1) and .psi..sub.sd(d+1)1 denote the robot task time for transferring the tool from states M.sub.sd to M.sub.s(d+1) with and without robot waiting time considered, respectively. Thus, we have
.psi. sd ( d + 1 ) = 2 ( d + 1 ) .mu. + ( 2 d + 1 ) .alpha. + .alpha. 0 + j = 0 d .omega. j and ( 16 ) .psi. sd ( d + 1 ) 1 = 2 ( d + 1 ) .mu. + ( 2 d + 1 ) .alpha. + .alpha. 0 . ( 17 ) ##EQU00004##
[0103] It follows from (14)-(17) that to schedule the transient process of a residency-time constrained single-arm cluster tool is to appropriately regulate .omega..sub.j, j .di-elect cons. N.sub.d.orgate.{0}, such that the wafer residency time constraints at each step are all satisfied.
C.2. Scheduling for Start-up Process
[0104] Feasibility is an essential requirement for scheduling a transient process of a cluster tool. As we have mentioned that, at initial state M.sub.s0, the cluster tool is idle. When the tool reaches states M.sub.s1 to M.sub.sn, Steps 1 to n have one wafer being processed, respectively. For the start-up process, the robot tasks are determined. Thus, we just need to determine the robot waiting time during the period from M.sub.s0 to M.sub.sn to find a feasible schedule for the start-up process. Then, we have the following schedulability proposition.
[0105] Proposition 1: A start-up process of a single-arm cluster tool with wafer residency time constraints is schedulable if there exists the robot waiting time setting during the period from M.sub.s0 to M.sub.sn such that the wafer residency time constraint at each step is satisfied.
[0106] With Proposition 1, we know that it is necessary to propose a method to regulate the robot waiting time during the period from M.sub.s0 to M.sub.sn such that the cluster tool can enter the desired steady state from the initial state without violating the wafer residency time constraints.
[0107] In a cluster tool, it is reasonable to assume that there are more than one processing step. For the tool with two processing steps, the start-up process from M.sub.s0 to M.sub.s2 could be described by a robot task sequence .sigma..sub.1: Unloading a raw wafer (W.sub.2) from the LLs (time .alpha..sub.0).fwdarw.moving to Step 1 (time .mu.).fwdarw.loading wafer W.sub.2 into Step 1 (time .alpha.).fwdarw.waiting at Step 1 for .omega..sub.1=a.sub.1 time units.fwdarw.unloading wafer W.sub.2 from Step 1 (time .alpha.).fwdarw.moving to Step 2 (time .mu.).fwdarw.loading wafer W.sub.2 into Step 2 (time .alpha.).fwdarw.moving to the LLs (time .mu.).fwdarw.waiting at the LLs for .omega..sub.0 time units.fwdarw.unloading a raw wafer (W.sub.3) from the LLs (time .alpha..sub.0).fwdarw.moving to Step 1(time .mu.).fwdarw.loading wafer W.sub.3 into Step 1 (time .alpha.). At this time, the system reaches state M.sub.s2. In .sigma..sub.1, only robot waiting time .omega..sub.0 is unknown. Let |.sigma..sub.1| denote the time needed to perform sequence .sigma..sub.1. Thus, |.sigma..sub.1|=2.alpha..sub.0+4.alpha.+4.mu.+a.sub.1+.omega..sub.0. Therefore, for the single-arm cluster tool, to obtain a feasible start-up schedule is to determine the robot waiting time .omega..sub.0. For the single-arm cluster tool with n>2 processing steps, during the process from M.sub.s0 to M.sub.s2, the robot task sequence is also .sigma..sub.1. Then, the system keeps working according to the PN model in FIG. 3 and CP2 till it reaches state M.sub.sn. For this case, the robot waiting time is also unknown during the process from M.sub.s0 to M.sub.sn. Let .sub.max=max{.sub.iL, i .di-elect cons. N.sub.d}. To solve the scheduling problem, the following algorithm is developed.
[0108] Scheduling Algorithm 1: If .sub.max.ltoreq..sub.iU and .psi..sub.1.ltoreq..sub.iU, i .di-elect cons. N.sub.n, the robot waiting time is set as follows.
[0109] Situation 1: A single-arm cluster tool has two steps:
[0110] 1) During the process from M.sub.s0 to M.sub.s2, the tool operates according to the robot task sequence .sigma..sub.i and set .omega..sub.0=0 and .omega..sub.1=1.sub.1.
[0111] Situation 2: A single-arm cluster tool has n steps, n>2:
[0112] 1) During the process from M.sub.s0 to M.sub.s2, the performance of the tool is same as the one regulated by 1) in Situation 1;
[0113] 2) During the process from M.sub.sd to M.sub.s(d+1), 2.ltoreq.d<n, the tool operates according to the PN model in FIG. 3 and CP2 and set .omega..sub.i=0, i .di-elect cons. N.sub.d-1.orgate.{0}, and .omega..sub.d=max {.sub.dmax-.psi..sub.sd(d+1)1, 0}.
[0114] In this case, there are two situations. For Situation 1, there are two steps in a single-arm cluster tool. Then, during the start-up process from M.sub.s0 to M.sub.s2, the tool operates according to the robot task sequence .sigma..sub.1, and the robot waiting time .omega..sub.0 and .omega..sub.1 in .sigma..sub.1 can be set as .omega..sub.0=0 and .omega..sub.1=a.sub.1. With M.sub.s2 being reached, the system reaches its steady state. For Situation 2, a single-arm cluster tool has n steps, n>2. From M.sub.s0 to M.sub.s2, the performance of the tool is same as the one regulated by 1) in Situation 1. Then, during the process from M.sub.sd to M.sub.s(d+1), 2.ltoreq.d<n, the tool operates according to the PN model in FIG. 3 and CP2. At the same time, the robot waiting time is set as .omega..sub.i=0, i .di-elect cons. N.sub.d-1.orgate.{0}, and .omega..sub.d=max{.sub.dmax-.psi..sub.sd(d+1)1, 0} such that .psi..sub.sd(d+1)=max{.sub.dmax, .psi..sub.sd(d+1)1}. When the tool reaches state M.sub.sn, the system reaches its steady state. Then, by the PN model in FIG. 2 and CP1, the system operates with the backward strategy. By Scheduling Algorithm 1, a schedule could be found for the start-up process. Then, the next question is if this obtained schedule is feasible. The following theorem answers it.
[0115] Theorem 3: For a single-arm cluster tool with wafer residency time constraints, if .sub.max.ltoreq..sub.iU, .psi..sub.1.ltoreq..sub.iU, i .di-elect cons. N.sub.n, a schedule obtained by Scheduling Algorithm 1 is feasible.
[0116] Proof Consider Situation 1. For the start-up process from M.sub.s0 to M.sub.s2, the robot performs the robot tasks .sigma..sub.1. It is easy to find that wafer W.sub.2 can be unloaded from Step 1 without violating the residency time constraints. Then, W.sub.3 is delivered to Step 2. When M.sub.s2 is reached, the system enters its desired steady state. Consider Situation 2. By 1) for Situation 2 of Algorithm 1, similarly, the robot can perform the robot tasks c.sub.h such that the cluster tool can reach M.sub.s2 from M.sub.so without violating the wafer residency time constraints. Then, by 2) for Situation 2 of Algorithm 1, the tool operates according to the PN model in FIG. 3 and CP2 during the process from M.sub.sd to M.sub.s(d+1), 2.ltoreq.d<n. At the same time, .omega..sub.i=0, i .di-elect cons. N.sub.d-1.orgate.{0}, and .omega..sub.d=max{.sub.dmax.psi..sub.sd(d+1).sub.1, 0}. It follows from (14) and (15) that .tau..sub.1=2(d+1).mu.+(2d+1).alpha.+.alpha..sub.0+.tau..sub.j=0.sup.d.om- ega..sub.j-(3.alpha.+.alpha..sub.0+3.mu.+.omega..sub.0)=2(d+1).mu.+(2d+1).- alpha.+.alpha..sub.0+max{.sub.max-.psi..sub.sd(d+1)1, 0}-(3.alpha.+.alpha..sub.0+3.mu.) and .tau..sub.i=2(d+1).mu.+(2d+1).alpha.+.alpha..sub.0+.SIGMA..sub.j=0.sup.d.- omega..sub.j-(4.alpha.+3.mu.+.omega..sub.i-1)=2(d+1).mu.+(2d+1).alpha.+.al- pha..sub.0+max{.sub.dmax-.psi..sub.sd(d+1)1, 0}-(4.alpha.+.alpha.3.mu.), 1<i.ltoreq.d, hold, respectively. Then, there are two cases. Case 1: .sub.dmax.ltoreq..psi..sub.sd(d+1)1. Then, we have .tau..sub.1=2(d+1).mu.+(2d+1).alpha.+.alpha..sub.0+.sub.dmax-.psi..sub.sd- (d+1)1-(3.alpha.+.alpha..sub.0+3.mu.) and .tau..sub.i=2(d+1).mu.+(2d+1).alpha.+.alpha..sub.0+.sub.max-.psi..sub.sd(- d-1)1-(4.alpha.++3.mu.), 1<i.ltoreq.d, hold. Then, by (17) and .sub.max.ltoreq..sub.iU, i .di-elect cons. N.sub.n, we have .sub.1L-(3.alpha.+.alpha..sub.0+3.mu.).ltoreq..tau..sub.1=.sub.dmax-(3.al- pha.+.alpha..sub.0+3.mu.).ltoreq..sub.1U-(3.alpha.+.alpha..sub.0+3.mu.) and .sub.iL-(4.alpha.+3.mu.).ltoreq..tau..sub.i=.sub.dmax-4.alpha.+3.mu.)- .ltoreq..sub.iU-(4.alpha.+3.mu.), 1<i.ltoreq.d. Thus, it follows from (5)-(8) that a.sub.1=.sub.1L-(3.alpha.+.alpha..sub.0+3.mu.).ltoreq..tau..sub.1.ltoreq.- .sub.1U-(3.alpha.+.alpha..sub.0+3.mu.)=a.sub.1+.delta..sub.1 and a.sub.i=.sub.iL-(4.alpha.+3.mu.).ltoreq..tau..sub.i.ltoreq..sub.1U-(4.alp- ha.++3.mu.)=a.sub.i+.delta..sub.i, 1<i.ltoreq.d, hold. Case 2: .sub.dmax<.psi..sub.sd(d+1)1. Then, from (17), we have .tau..sub.1=2(d+1).mu.+(2d+1).alpha.+.alpha..sub.0-(3.alpha.+.alpha..sub.- 0+3.mu.)=.psi..sub.sd(d+1)1-(3.alpha.+.alpha..sub.0+3.mu.) and .tau..sub.i=2(d+1).mu.+(2d+1).alpha.+.alpha..sub.0-(4.alpha.+3.mu.)=.psi.- .sub.sd(d+1)1-(4.alpha.+3.mu.), 1<i.ltoreq.d, hold. By the assumption of .psi..sub.1.ltoreq..sub.iU, i .di-elect cons. N.sub.n, we have .tau..sub.1=.psi..sub.sd(d-1)1-(3.alpha.+.alpha..sub.0+3.mu.)<.psi..su- b.1-(3.alpha.+.alpha..sub.0+3.mu.).ltoreq..ltoreq..sub.1U-(3.alpha.+.alpha- ..sub.0+3.mu.) and .tau..sub.i=.psi..sub.sd(d+1)1-(4.alpha.+3.mu.)<.psi..sub.1-(4.alpha.+- 3.mu.).ltoreq..sub.iU-(4.alpha.+3.mu.), 1<i.ltoreq.d. Then, it follows from (5)-(8), .sub.max.ltoreq..sub.iU, i .di-elect cons. N.sub.n, and .sub.dmax<.psi..sub.sd(d+1)1 that a.sub.1=.sub.1L-(3.alpha.+.alpha..sub.0+3.mu.).ltoreq..sub.dmax-(3.alpha.- +.alpha..sub.0+3.mu.)<.tau..sub.1=.psi..sub.sd(d+1)1-(3.alpha.+.alpha..- sub.0+3.mu.)<.sub.1U-(3.alpha.+.alpha..sub.0+3.mu.)=a.sub.1+.delta..sub- .1 and a.sub.i=.sub.iL-(4.alpha.+3.mu.).ltoreq..sub.dmax-(4.alpha.+3.mu.)&- lt;.tau..sub.i=.psi..sub.sd(d+1)1-(4.alpha.+3.mu.)<.sub.iU-(4.alpha.+3.- mu.)=a.sub.i+.delta..sub.i, 1<i.ltoreq.d. Therefore, during the start-up process from M.sub.s0 to M.sub.s2, the wafer residency time constraints at each step are all satisfied. Hence, the theorem holds.
[0117] In the case of Situation 1, by Algorithm 1, the robot performs .sigma..sub.i such that the cluster tool can successfully go through the start-up process from M.sub.s0 to M.sub.s2 without violating any residency time constraints. Also, it takes |.sigma..sub.1|=2.alpha..sub.0+4.alpha.+4.mu.+a.sub.1 time units for the start-up process. In the case of Situation 2, by Algorithm 1, the schedule is same as the one before M.sub.s2 is reached. Then, by Algorithm 1, we need to dynamically adjust the robot waiting time at step d during the process from M.sub.sd to M.sub.s(d+1), 2.ltoreq.d<n, such that .psi..sub.sd(d+1)=max{.sub.dmax, .psi..sub.sd(d+1)1}. Thus, it takes |.sigma..sub.1|+.SIGMA..sub.d=2.sup.n-1 max(.sub.d max, .psi..sub.sd(d+1)1) time units for the start-up process. For a single-arm cluster tool with n.gtoreq.2 steps, when M.sub.sn is reached, the system enters its desired steady state. In the following evolution, the system operates with the backward strategy. Based on Theorem 1, for the steady state scheduling, a feasible and optimal schedule is obtained by setting .omega..sub.i=0, i .di-elect cons.N.sub.n-1.orgate.{0}, and .omega..sub.n=max{.sub.max-.psi..sub.1, 0} such that .psi.=max{.sub.max, .psi..sub.1} holds. Then, the following theorem proves its optimality.
[0118] Theorem 4: For a single-arm cluster tool with wafer residency time constraints, if .sub.max.ltoreq..sub.iU, .psi..sub.1.ltoreq..sub.iU, i .di-elect cons. N.sub.n, a schedule obtained by Scheduling Algorithm 1 for the start-up process is optimal.
[0119] Proof Situation 1: For the start-up process from M.sub.s0 to M.sub.s2, the robot performs the robot tasks .sigma..sub.1. If there be a schedule better than the one obtained by Algorithm 1, it must be that the robot waiting time .omega..sub.1 is shortened because of .omega..sub.0=0. However, if .omega..sub.1 is less than a.sub.1, the wafer being processed at Step 1 cannot be processed. Therefore, for Situation 1, the obtained schedule by Algorithm 1 is optimal. For Situation 2, similar to Situation 1, the obtained schedule by Algorithm 1 for the process from M.sub.s0 to M.sub.s2 is optimal. It follows from Theorem 3 that during the process from M.sub.sd to M.sub.s(d+1), 2 s.ltoreq.d<n, we have .tau..sub.1=2(d+1).mu.+(2d+1).alpha.+.alpha..sub.0+max{.sub.dmax-.psi..su- b.sd(d+1)1, 0}-(3.alpha.+.alpha..sub.0+3.mu.) and .tau..sub.i=2(d+1).mu.+(2d+1).alpha.+.alpha..sub.0+max{.sub.dmax-.psi..su- b.sd(d-1)1, 0}-(4.alpha.+3.mu.), 1<i.ltoreq.d, hold, respectively. It is assumed that .sub.dmax=.sub.kL, 1.ltoreq.k.ltoreq.d. Then, we have .tau..sub.1=2(d+1).mu.+(2d+1).alpha.+.alpha..sub.0+max{.sub.1L-.psi..sub.- sd(d+1)1, 0}-(3.alpha.+.alpha..sub.0+3.mu.) .sub.dmax=.sub.1L and .tau..sub.k=2(d+1).mu.+(2d+1).alpha.+.alpha..sub.0+max{.sub.kL-.psi..sub.- sd(d+1)1, 0}-(4.alpha.+3.mu.) if .sub.dmax=.sub.kL, 1<k.ltoreq.d. If .sub.dmax.gtoreq..psi..sub.sd(d+1)1, we have .sub.dmax=.psi..sub.sd(d+1) by Algorithm 1. By (17) and (5)-(8), we have .tau..sub.1=.sub.1L-(3.alpha.+.alpha..sub.0+3.mu.)=a.sub.1 if .sub.dmax=.sub.1L and .tau..sub.k=.sub.kL-(4.alpha.+3.mu.)=a.sub.k if .sub.dmax=.sub.kL, 1<k.ltoreq.d, hold. This means that it takes .psi..sub.sd(d+1)=.sub.kL time units for the process from M.sub.sd to M.sub.s(d+1), 2.ltoreq.d n. Thus, for the process from M.sub.sd to M.sub.s(d+1), 2 s.ltoreq.d<n, the wafer sojourn time just equals to a.sub.k at Step k. If there exists a schedule for the process from M.sub.sd to M.sub.s(d+1), 2.ltoreq.d<n, better than the one obtained by Algorithm 1, there must exist Step k where the wafer sojourn time is less than a.sub.k. This means the wafer at Step k cannot be processed. If .sub.dmax<.psi..sub.sd(d+1)1, a better schedule for the process from M.sub.sd to M.sub.s(d+1), 2.ltoreq.d<n, cannot be found because .psi..sub.sd(d+1)1 cannot be shortened. Therefore, the obtained schedule by Algorithm 1 for the process from M.sub.sd to M.sub.s(d+1), 2.ltoreq.d<n, is also optimal. Hence, the theorem holds.
[0120] By Theorem 3, the workloads among the steps are properly balanced, i.e. [.sub.1L, .sub.1U].andgate.[.sub.2L, .sub.2U].andgate. . . . .andgate.[.sub.nL, .sub.nU].noteq.O. However, there is also another case with [.sub.1L, .sub.1U] .andgate.[.sub.2L, .sub.2U].andgate. . . . .andgate.[.sub.nL, .sub.nU]=O. Under the steady state, the cycle time is a constant. Then, a feasible schedule could be found by setting .omega..sub.i-1>0, i .di-elect cons. E, to reduce the wafer sojourn time i without changing the time for completing a wafer at Step i [Wu et al., 2008]. For the transient process, we have: 1) wafers are processed at Step i, i .di-elect cons. E, during the process from M.sub.sd to M.sub.s(d+1) and M.sub.s(d+1) to M.sub.s(d+2), 2.ltoreq.d.ltoreq.n-2, respectively; 2) the time taken for the process from M.sub.sd to M.sub.s(d+1) and M.sub.s(d+1) to M.sub.s(d+2) may be different. Thus, the key to find a feasible and optimal schedule for the process from M.sub.sd to M.sub.s(d+2) is to dynamically adjust the robot waiting time .omega..sub.i-1. However, increasing and decreasing .omega..sub.i-1 would decrease and increase the wafer sojourn time .tau..sub.i, respectively. This makes it difficult to guarantee the feasibility and optimality at the same time. Thus, a linear programming model is developed to solve this problem. Let t.sub.ij.sup.d and .omega..sub.i.sup.d denote the time when firing t.sub.ij completes and the robot waiting at Step i before unloading a wafer during the process from M.sub.sd to M.sub.s(d+1), respectively. Then, we have a linear programming model.
[0121] Linear Programming Model (LPM): If [.sub.1L, .sub.1U].andgate.[.sub.2L, .sub.2U] . . . .andgate.[.sub.nL, .sub.nU]=O and the system checked by Theorem 2 is schedulable under the steady state, then a schedule can be found by the following LPM:
min d = 1 n i = 0 d .omega. i d ( 18 ) ##EQU00005##
[0122] subject to
t.sub.11.sup.0=.alpha..sub.0+.mu.+.alpha., (19)
t.sub.12.sup.1=t.sub.11.sup.0+.omega..sub.1.sup.1+.alpha., (20)
t.sub.i1.sup.d=t.sub.(i=1)2.sup.0+.mu.+.alpha., 1.ltoreq.i.ltoreq.d+1 and 1.ltoreq.d.ltoreq.n-1, (21)
t.sub.i2.sup.d=t.sub.(i+2)1.sup.d+.mu.+.omega..sub.i.sup.d+.alpha., 1.ltoreq.i.ltoreq.d-1 and 1.ltoreq.d.ltoreq.n-1, (22)
t.sub.02.sup.d=t.sub.(d+2)1.sup.d+.mu.+.omega..sub.0.sup.d+.alpha..sub.0- , 1.ltoreq.d.ltoreq.n-1, (23)
t.sub.d2.sup.d=t.sub.11.sup.d-1+.mu.+.omega..sub.d.sup.d+.alpha., 1.ltoreq.d.ltoreq.n-1, (24)
t.sub.i1.sup.d=t.sub.(i+1)2.sup.d+.mu.+.alpha., 1.ltoreq.i.ltoreq.n and d .di-elect cons. {n,n+1}, (25)
t.sub.01.sup.d=t.sub.n2.sup.d+.mu..alpha., .di-elect cons. {n, n+1}, (26)
t.sub.i2.sup.d=t.sub.(i+2)1.sup.d+.mu.+.omega..sub.i.sup.d+.alpha., 1.ltoreq.i.ltoreq.n-2 and d .di-elect cons. {n, n+1}, (27)
t.sub.(n-1)2.sup.d=t.sub.01.sup.d+.mu.+.omega..sub.n-1.sup.d+.alpha., d .di-elect cons. {n, n+1}, (28)
t.sub.n2.sup.d=t.sub.11.sup.d-1+.mu.+.omega..sub.n.sup.d+.alpha., d .di-elect cons. {n, n+1}, (29)
t.sub.02.sup.d=t.sub.21.sup.d+.mu.+.omega..sub.0.sup.d+.alpha..sub.0, d .di-elect cons. {n, n+1}, (30)
.omega..sub.i.sup.n=.omega..sub.l.sup.n+1, 0.ltoreq.i.ltoreq.n (31)
d = 1 n i = 0 d .omega. i d .gtoreq. 0 , ( 32 ) ##EQU00006## and
a.sub.i.ltoreq.t.sub.i2.sup.d-.alpha.-t.sub.i1.sup.d-1.ltoreq.a.sub.i+.d- elta..sub.i, 1.ltoreq.i.ltoreq.d and 1.ltoreq.d.ltoreq.n+1. (33)
[0123] For a single-arm cluster tool with two processing steps, the robot task sequence for the start-up process from M.sub.s0 to M.sub.s2 is .sigma..sub.1. Then, the system is operated with the backward strategy based on the PN model in FIG. 2. For a tool with n>2 processing steps, the robot task sequence for the start-up process from M.sub.s0 to M.sub.s2 is also .sigma..sub.1. Then, the system will run according to the PN model in FIG. 3 till it reaches state M.sub.sn. In the following operations, the system is operated by the backward strategy based on the PN model in FIG. 2. Notice that the robot task sequence for the start-up process of the two cases is known in advance. However, the robot waiting time is unknown. If the waiting time during the process from M.sub.s0 to M.sub.sn is determined, the schedule for the start-up process is determined. Objective (18) in LPM is to minimize the total robot waiting time. Constraints (19) and (21) give the time for completing the robot task of loading a wafer into a step. Constraints (20) and (22)-(24) represent the time for completing the robot task of unloading a wafer from a step. After M.sub.sn is reached, the cluster tool enters its steady state and operates by the backward strategy based on the PN model in FIG. 2 and CP1. Then, when the first robot task cycle for the steady state is completed, state M.sub.s(n+1) is reached. When the second robot task cycle for the steady state is completed, state M.sub.s(n+2) is reached. Thus, for the first and second cycles for the steady state, Constraints (25) and (26) mean the time for completing the robot task of loading a wafer into a step, and Constraints (27)-(30) indicate the time for completing the robot task of unloading a wafer from a step. Constraint (31) makes sure that the robot waiting time is same for the different cycle under the steady state. Constraint (32) means that the robot waiting time is no less than zero. With wafer residency time constraints being considered, Constraint (33) is used to guarantee such constraints to be satisfied. In this way, a schedule for the start-up process could be obtained by this model.
[0124] For the case with [.sub.1L, .sub.1U].andgate.[.sub.2L, .sub.2U].andgate. . . . .andgate.[.sub.nL, .sub.nU]=O, Theorem 2 gives schedulability conditions to check if the system is schedulable. Thus, it gives rise to a question that, for the case with [.sub.1L, .sub.1U].andgate.[.sub.2L, .sub.2U].andgate. . . . .andgate.[.sub.nL, .sub.nU]=O, if the system checked by Theorem 2 is schedulable, can a feasible schedule be obtained by LPM? To answer it, a schedule can be obtained by setting the robot waiting time as: 1) For the tool with two processing steps, the robot waiting time can be set as .omega..sub.0.sup.d=max{.sub.max-.sub.1U, 0}, d .di-elect cons. {1, 2}, .omega..sub.1.sup.1, =a.sub.1, .omega..sub.1.sup.2=max{.sub.max-.sub.2U, 0}, and .omega..sub.2.sup.2=.sub.max-.psi..sub.1-(.omega..sub.0.sup.2+.om- ega..sub.1.sup.2); and 2) For the tool with more than n>2 processing steps, the robot waiting time can be set as .omega..sub.i.sup.d=max{.sub.max-.sub.(i+1)U, 0}, 0.ltoreq.i.ltoreq.n-1 and 2.ltoreq.d.ltoreq.n+1, .omega..sub.1.sup.1=a.sub.1, and .omega..sub.d.sup.d=.sub.max-.psi..sub.1-.SIGMA..sub.i=0.sup.d-1.omega..s- ub.i.sup.d, 2.ltoreq.d.ltoreq.n+1. It is easy to verify that this schedule is in the feasible region of LPM. Therefore, if the system is schedulable according to Theorem 2's conditions, a feasible and optimal schedule can be obtained by LPM. For the first and second cycles for the steady state, the robot waiting time .omega..sub.i.sup.n and .omega..sub.i.sup.n+1, 0.ltoreq.i.ltoreq.n, can be determined by LPM. Then, in the following operations of the system under the steady state, the robot waiting time is also set as .omega..sub.i=.omega..sub.i.sup.n, 0.ltoreq.i.ltoreq.n-1, and .omega..sub.n=.sub.max-.SIGMA..sub.i=0.sup.n-1.omega..sub.i. Thus, another question is if the schedule for the steady state is feasible and optimal? The following theorem answers it.
[0125] Theorem 5: For a single-arm cluster tool with [.sub.1L, .sub.1U].andgate.[.sub.2L, .sub.2U].andgate. . . . .andgate.[.sub.nL, .sub.nU]=O, with the PN in FIG. 2 and CP1, if a schedule for the steady state is given by setting .omega..sub.i=.omega..sub.l.sup.n, 0.ltoreq.i.ltoreq.n-1, and .omega..sub.n=.sub.max-.SIGMA..sub.i=0.sup.n-1.omega..sub.i, where .omega..sub.i.sup.n, 0.ltoreq.i.ltoreq.n-1, is obtained by LPM, then such a schedule is feasible and optimal.
[0126] Proof By LPM, during the processes from M.sub.sn to M.sub.s(n+1) and M.sub.s(n+1) to M.sub.s(n+2), the robot waiting time is .omega..sub.i=.omega..sub.i.sup.n, 0.ltoreq.i.ltoreq.n. Then, the cycle time for the processes from M.sub.sn to M.sub.s(n+1) and M.sub.s(n+1) to M.sub.s(n+2) should be .psi.=.sub.max. If there exists a schedule with the cycle time .psi.<.sub.max and it is assumed that .sub.max=.sub.kL, k.noteq.1 holds, it follows from (9) that .tau..sub.k=[2(n+1).mu.+(2n+1).alpha.+.alpha..sub.0+.SIGMA..sub.d=0.sup.n- .omega..sub.d]-(4.alpha.+3.mu.+.omega..sub.k-1)=.psi.-(4.alpha.+3.mu.+.ome- ga..sub.k-1)<.sub.kL-(4.alpha.+3.mu.+.omega..sub.k-1).ltoreq..sub.kL-(4- .alpha.+3.mu.). Then, from (5), we have .tau..sub.k<.sub.kL-(4.alpha.+3.mu.)32 a.sub.k. This means that the wafer at Step k is not completed. Similarly, if there exists a schedule with the cycle time .psi.<.sub.max and .sub.max=.sub.1L holds, we have .tau..sub.1<a.sub.1. Therefore, the cycle time for the processes from M.sub.sn to M.sub.s(n+1) and M.sub.s(n+1) to M.sub.s(n+2) should be .psi.=.sub.max. This implies that .SIGMA..sub.i=0.sup.n.omega..sub.1=.sub.max-.psi..sub.1. Thus, based on LPM and Theorem 2, this theorem holds and the cycle time of the system for the steady state is .sub.max.
[0127] Up to now, for the case that the workloads among the steps can be properly balanced, i.e. [.sub.1L, .sub.1U].andgate.[.sub.2L, .sub.2U] .andgate. . . . .andgate. [.sub.nL, .sub.nU]=O, a scheduling algorithm is proposed to find the optimal schedule for the start-up process such that the single-arm cluster tool can enter its steady state optimally. For the case that the differences of the workloads among the steps are too large such that [.sub.1L, .sub.1U].andgate.[.sub.2L, .sub.2U].andgate. . . . .andgate.[.sub.nL, .sub.nU]=O, a linear programming model is developed to find a feasible and optimal schedule to transfer a single-arm cluster tool from the initial state to a steady one. Notice that Scheduling Algorithm 1 consists of several expressions and LPM is a linear programming model. Therefore, it is very computationally efficient to use the proposed methods to find a feasible and optimal schedule for the start-up process for single-arm cluster tools with wafer residency time constraints.
D. EXAMPLES
Example 1
[0128] The flow pattern is (PM.sub.1, PM.sub.2, PM.sub.3, PM.sub.4, PM.sub.5). It takes 5s for the robot to unload a wafer from a PM and to load a wafer to a PM/LL (.alpha.=5s), 10s to unload a wafer from the LLs and align it (.alpha..sub.0=10s), and 2s to move between PMs/LLs (.mu.=2s). It needs 90s, 100s, 100s, 105s, and 115s for a PM at Steps 1-5 to process a wafer (a.sub.1=90s, a.sub.2=100s, a.sub.3=100s, a.sub.4=105s, and a.sub.5=115s), respectively. After being processed, a wafer at Steps 1-4 can stay there for 20s (.delta..sub.1=.delta..sub.2=.delta..sub.3=.delta..sub.4=.delta..sub.5=20- s).
[0129] It follows from (5)-(8) that, we have .sub.1L=121s, .sub.1U=141s, .sub.2L=126s, .sub.2U=146s, .sub.3L=126s, .sub.3U=146s, .sub.4L=131s, .sub.4U=151s, .sub.5L=141s, .sub.5U=161s, and .psi..sub.1=89s. By Theorem 1, the single-arm cluster tool is schedulable. For the steady state, an optimal and feasible schedule is obtained by setting .omega..sub.0=.omega..sub.2=.omega..sub.3=.omega..sub.4=0s and .omega..sub.5=52s. Then, the cycle time of the system under the steady state is 141s. For this example, the workloads among the steps are properly balanced, i.e. [.sub.1L, .sub.1U].andgate.[.sub.2L, .sub.2U].andgate. . . . .andgate.[.sub.nL, .sub.nU].noteq.O. Thus, an optimal and feasible schedule can be found by Algorithm 1 for the start-up process. This example belongs to Situation 2 of Algorithm 1. Therefore, the robot waiting time during the start-up process is set as follows: 1) During the process from M.sub.s0 to M.sub.s2, .omega..sub.0=0s and .omega..sub.1=90s; 2) During the process from M.sub.s2 to M.sub.s3, .omega..sub.0=.omega..sub.1=0 s and .omega..sub.2=79s; 3) During the process from M.sub.s3 to M.sub.s4, .omega..sub.0=.omega..sub.1=.omega..sub.2=0s and .omega..sub.3=65s; 4) During the process from M.sub.s4 to M.sub.s5, .omega..sub.0=.omega..sub.1=.omega..sub.2=.omega..sub.3=0s and .omega..sub.4=56s. In this way, an optimal and feasible schedule is obtained for the start-up process. The simulation result is shown in FIG. 4. It shows that it takes 521s for the start-up process.
[0130] In [Wu et al., 2008], a method is proposed to transfer the system to enter its steady state from the initial state. It puts a virtual token (wafer) in places p.sub.2-p.sub.n and none at p.sub.1 in FIG. 2, i.e. M.sub.0(p.sub.i)=1, i .di-elect cons.N.sub.n-{1}, and M.sub.0(p.sub.1)=0 at the initial state. Then, by running the PN model with a schedule obtained by the scheduling algorithm in [Wu et al., 2008], when all the virtual wafers go out of the system, the steady state is reached. It takes 563s for the start-up process. Therefore, by the method as disclosed herein in the present work, the time taken for the start-up process is reduced by 8.1% compared with the method in [Wu et al., 2008].
Example 2
[0131] The flow pattern is (PM.sub.1, PM.sub.2, PM.sub.3, PM.sub.4). .alpha.=5s, .alpha..sub.0=10s, .mu.=2s, a.sub.1=85s, a.sub.2=85s, a.sub.3=110s, a.sub.4=120s, and .delta..sub.1=.delta..sub.2=.delta..sub.3=.delta..sub.4=20s hold.
[0132] It follows from (5)-(8) that, we have .sub.1L=116s, .sub.1U=136s, .sub.2L=111s, .sub.2U=131s, .sub.3L=136s, .sub.3U=156s, .sub.4L=146s, .sub.4U=166s, and .psi..sub.1=75s. By Theorem 2, the single-arm cluster tool is schedulable. For the steady state, an optimal and feasible schedule is obtained by setting .omega..sub.0=10s, .omega..sub.1=15s, .omega..sub.2=.omega..sub.3=0s, and .omega..sub.4=46s. Then, the cycle time of the system under the steady state is 146s. For this example, differences between the workloads among the steps are too large and [.sub.1L, .sub.1U].andgate.[.sub.2L, .sub.2U].andgate. . . . .andgate.[.sub.nL, .sub.nU]=Oholds. Thus, LPM is used to find an optimal and feasible schedule for the start-up process. With LPM, the robot waiting time during the start-up process is set as follows: 1) During the process from M.sub.s0 to M.sub.s2, .omega..sub.0=.omega..sub.0.sup.1=10s and .omega..sub.1=.omega..sub.1.sup.1=85s; 2) During the process from M.sub.s2 to M.sub.s3, .omega..sub.0=.omega..sub.0.sup.2=0s, .omega..sub.1=.omega..sub.1.sup.2=15s and .omega..sub.2=.omega..sub.2.sup.2=54s; 3) During the process from M.sub.s3 to M.sub.s4, .omega..sub.0=.omega..sub.0.sup.3=10s, .omega..sub.1=.omega..sub.1.sup.3=15s, .omega..sub.2=.omega..sub.2.sup.3=0s, and .omega..sub.3=.omega..sub.3.sup.360s. Then, the tool enters its steady state and it is scheduled by setting .omega..sub.0=.omega..sub.0.sup.4=10s, .omega..sub.1=.omega..sub.1.sup.4=15s, .omega..sub.2=.omega..sub.3=.omega..sub.2.sup.4=.omega..sub.3.sup.4=0s, and .omega..sub.4=.omega..sub.4.sup.4=46s. In this way, an optimal and feasible schedule is obtained for the start-up process. The simulation result is shown in FIG. 5. It shows that it takes 405s for the start-up process. However, with the existing method in [Wu et al., 2008], it takes 455s for the start-up process. Thus, the time taken for this start-up process is reduced by 11%.
E. THE PRESENT INVENTION
[0133] The present invention is developed based on the theoretical development in Sections A-C above.
[0134] An aspect of the present invention is to provide a computer-implemented method for scheduling a cluster tool. The cluster tool comprises a single-arm robot for wafer handling, a LL for wafer cassette loading and unloading, and n process modules each for performing a wafer-processing step with a wafer residency time constraint where the ith process module, i .di-elect cons.N.sub.n, is used for performing Step i of the n wafer-processing steps for each wafer. Note that although the cluster tool is said to comprise a LL, it is understood that in the present invention, the cluster tool can have one or more LLs.
[0135] The method includes scheduling a start-up process for the cluster tool. The start-up process has plural system states M.sub.si, i=0, 1, . . . , n-1, where M.sub.s0 is an initial state of system start-up, and M.sub.si, 1.ltoreq.i.ltoreq.n-1 denotes that i instances of a wafer unloading from the robot to any one of the n process modules have occurred since the system start-up.
[0136] Advantageously, the start-up process is developed based on Scheduling Algorithm 1. When .sub.max.ltoreq..sub.1U and .psi..sub.1.ltoreq..sub.IU, i=1, 2, . . . , n, values of .omega..sub.0, .omega..sub.1, . . . , .omega..sub.d for each of the system states M.sub.sd, d=0, 1, . . . n-1, are determined. As mentioned above, .omega..sub.j, j .di-elect cons. {0, 1, . . . , d}, is a robot waiting time used in the state M.sub.sd for the robot to wait before unloading a wafer in Step j from the robot to the (j+l)th process module. According to Scheduling Algorithm 1, the values of .omega..sub.0, .omega..sub.1, . . . , and .omega..sub.d are determined by: setting .omega..sub.0=0 and .omega..sub.1=a.sub.1 for the states M.sub.s0 and M.sub.s1; and setting .omega..sub.i=0, i .di-elect cons.N.sub.d-1.orgate.{0}, and .omega..sub.d=max{.sub.dmax-.psi..sub.sd(d+1)1, 0} for the state M.sub.sd, 2.ltoreq.d.ltoreq.n-1 when n>2.
[0137] As a steady-state process follows the start-up process, preferably the method further includes scheduling the steady-state process based on the results obtained in the start-up process. In particular, values of .omega..sub.0, .omega..sub.1, . . . , and .omega..sub.d are determined, in which .omega..sub.j, j .di-elect cons. {0, 1, . . . , n}, is a robot waiting time, used in a steady state of the cluster tool, for the robot to wait before unloading a wafer in Step j from the robot to the (j+1)th process module. As indicated in Section B.2 above, one option is to set .omega..sub.i=0, i .di-elect cons.N.sub.n-1.orgate.{0}, and .omega..sub.n=max{.sub.max-.psi..sub.1, 0}.
[0138] Also advantageously, the start-up process is further developed based on the LPM model. When [.sub.1L, .sub.1U].andgate.[.sub.2L, .sub.2U].andgate. . . . .andgate.[.sub.nL, .sub.nU]=O, values of .omega..sub.0.sup.d, .omega..sub.1.sup.d, . . . , .omega..sub.d.sup.d for each of the system states M.sub.sd, d=0, 1, . . . , n-1, are determined, where .omega..sub.j.sup.d, j .di-elect cons.{0, 1, . . . d}, is a robot waiting time used in the state M.sub.sd for the robot to wait before unloading a wafer in Step j from the robot to the (j+1)th process module. The values of .omega..sub.0.sup.d, .omega..sub.1.sup.d, . . . , and .omega..sub.d.sup.d, d=0, 1, . . . , n, are numerically optimized such that (18) is minimized subject to constraints (19)-(33). For the steady-state process, Theorem 5 indicates that one option is to set .omega..sub.i=.omega..sub.i.sup.n, 0.ltoreq.i.ltoreq.n-1, and .omega..sub.n=.sub.max-.SIGMA..sub.i=0.sup.n-1.omega..sub.i for use in the state M.sub.sn and thereafter. Similarly, M.sub.sn denotes that n instances of a wafer unloading from the robot to any one of the n process modules have occurred since the system start-up.
[0139] The embodiments disclosed herein may be implemented using general purpose or specialized computing devices, computer processors, or electronic circuitries including but not limited to digital signal processors (DSP), application specific integrated circuits (ASIC), field programmable gate arrays (FPGA), and other programmable logic devices configured or programmed according to the teachings of the present disclosure. Computer instructions or software codes running in the general purpose or specialized computing devices, computer processors, or programmable logic devices can readily be prepared by practitioners skilled in the software or electronic art based on the teachings of the present disclosure.
[0140] In particular, the method disclosed herein can be implemented in a single-arm cluster tool if the cluster tool includes one or more processors. The one or more processors are configured to execute a process of scheduling the cluster tool according to one of the embodiments of the disclosed method.
[0141] The present invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. The present embodiment is therefore to be considered in all respects as illustrative and not restrictive. The scope of the invention is indicated by the appended claims rather than by the foregoing description, and all changes that come within the meaning and range of equivalency of the claims are therefore intended to be embraced therein.
User Contributions:
Comment about this patent or add new information about this topic:
People who visited this patent also read: | |
Patent application number | Title |
---|---|
20200360461 | ORODISPERSIBLE FILM COMPOSITION COMPRISING ENALAPRIL FOR THE TREATMENT OF HYPERTENSION IN A PEDIATRIC POPULATION |
20200360460 | NEUROPROTECTIVE PEPTIDE |
20200360459 | NATURAL DRUGS FOR THE TREATMENT OF INFLAMMATION AND MELANOMA |
20200360458 | HEALTH FUNCTIONAL FOOD FOR INHIBITING RISE OF BLOOD GLUCOSE CONTAINING COFFEE AND TAGATOSE |
20200360457 | ROOT EXTRACTS FROM PLANTS OF THE MORUS GENUS AND USES OF SAME |