# Patent

## Title
Optimal buffer space configuration and scheduling for single-arm multi-cluster tools

## Abstract

A method for scheduling single-arm multi-cluster tools is provided. The present invention studies the scheduling problem of a single-arm multi-cluster tool with a linear topology and process-bound bottleneck individual tool. Its objective is to find a one-wafer cyclic schedule such that the lower bound of cycle time is reached by optimally configuring spaces in buffering modules that link individual cluster tools. A Petri net model is developed to describe the dynamic behavior of the system by extending resource-oriented Petri nets such that a schedule can be parameterized by robots' waiting time. Based on this model, conditions are presented under which a one-wafer cyclic schedule with lower bound of cycle time can be found. With the derived conditions, an algorithm is presented to find such a schedule and optimally configure the buffer spaces.

## Background
CLAIM FOR DOMESTIC PRIORITY
This application claims priority under 35 U.S.C. §119 to the U.S. Provisional Patent Application No. 62/102,108 filed Jan. 12, 2015, the disclosure of which is incorporated herein by reference in its entirety.


COPYRIGHT NOTICE
A portion of the disclosure of this patent document contains material, which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
FIELD OF THE INVENTION
The present invention relates to a method for scheduling single-arm multi-cluster tools with optimal buffer space configuration.
BACKGROUND
The following references are cited in the specification. Disclosures of these references are incorporated herein by reference in their entirety.
List of References

    W. K. Chan, J. G. Yi, and S. W. Ding, “Optimal Scheduling of Multi-cluster Tools with Constant Robot Moving Times, Part I: Two-Cluster Analysis,” IEEE Transactions on Automation Science and Engineering, vol. 8, pp. 5-16, 2011a.
    W. K. Chan, J. G. Yi, S. W. Ding, and D. Z. Song, “Optimal Scheduling of Multi-cluster Tools with Constant Robot Moving Times, Part II: Tree-Like Topology Configurations,” IEEE Transactions on Automation Science and Engineering, vol. 8, pp. 17-28, 2011b.
    M. Dawande, C. Sriskandarajah, and S. Sethi, “On throughput maximization in constant travel-time robotic cells”, Manufacturing and Service Operations Management, vol. 4, no. 4, 296-312, 2002.
    S. W. Ding, J. G. Yi, and M. T. Zhang, “Multicluster Tools Scheduling: an Integrated Event Graph and Network Model Approach,” IEEE Transactions on Semiconductor Manufacturing, vol. 19, pp. 339-351, 2006.
    I. Drobouchevitch, S. P. Sethi, and C. Sriskandarajah, “Scheduling Dual Gripper Robotic Cells: One-unit Cycles,” European Journal of Operational Research, vol. 171, pp. 598-631, 2006.
    D. Jevtic, “Method and Apparatus for Managing Scheduling a Multiple Cluster Tool,” in European Patent. vol. 1,132,792(A2), 2001.
    D. Jevtic and S. Venkatesh, “Method and Apparatus for Scheduling Wafer Processing within a Multiple Chamber Semiconductor Wafer Processing Tool Having a Multiple Blade Robot,” in U.S. Pat. No. 6,224,638, 2001.
    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.
    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, 1-15, 2004.
    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, 319-332, 2005.
    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, 170-178, 2003.
    T. L. Perkinson, R. S. Gyurcsik, and P. K. MacLarty, “Single-wafer cluster tool performance: An analysis of the effects of redundant chambers and revisitations sequences on throughput,” IEEE Transactions on Semiconductor Manufacturing, vol. 9, 384-400, 1996.
    T. L. Perkinson, P. K. MacLarty, R. S. Gyurcsik, and R. K. Cavin, III, “Single-wafer cluster tool performance: An analysis of throughput,” IEEE Transactions on Semiconductor Manufacturing, vol. 7, 369-373, 1994.
    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, 609-618, 2001.
    S. Venkatesh, R. Davenport, P. Foxhoven, and J. Nulman, A steady state throughput analysis of cluster tools: Dual-blade versus single-blade robots, IEEE Trans. Semi-conduct. Manuf., vol.10, pp. 418-424, 1997.
    N. Q. Wu, “ Necessary and Sufficient Conditions for Deadlock-free Operation in Flexible Manufacturing System Using a Colored Petri Net Model,” IEEE Transaction on System, Man, and Cybernetics, Part C, vol. 29, pp. 192-204, 1999.
    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, pp. 224-237, 2008a.
    N. Q. Wu, F. Chu, C. Chu, and M. Zhou, “Petri Net-Based Scheduling of Single-Arm Cluster Tools With Reentrant Atomic Layer Deposition Processes,” IEEE Transactions on Automation Science and Engineering, vol. 8, pp. 42-55, January 2011.
    N. Q. Wu, F. Chu, C. B. Chu, and M. C. Zhou, “Petri net modeling and cycle time analysis of dual-arm cluster tools with wafer revisiting,” IEEE Transactions on Systems, Man, & Cybernetics, Part A, in press, 2012.
    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.
    N. Q. Wu and M. Zhou, “Analysis of wafer sojourn time in dual-arm cluster tools with residency time constraint and activity time variation,” IEEE Transactions on Semiconductor Manufacturing, vol. 23, pp. 53-64, 2010a.
    N. Q. Wu and M. C. Zhou, “A closed-form solution for schedulability and optimal scheduling of dual-arm cluster tools based on steady schedule analysis,” IEEE Transactions on Automation Science and Engineering, vol. 7, no. 2, 303-315, 2010b.
    N. Q. Wu and M. C. Zhou, Process vs resource-oriented Petri net modeling of automated manufacturing systems, Asian Journal of Control, vol. 12, no. 3, 267-280, 2010c.
    N. Q. Wu and M. C. Zhou, “Modeling, analysis and control of dual-arm cluster tools with residency time constraint and activity time variation based on Petri nets,” IEEE Transactions on Automation Science and Engineering, vol. 9, no. 2, 446-454, 2012a.
    N. Q. Wu and M. C. Zhou, “Schedulability analysis and optimal scheduling of dual-arm cluster tools with residency time constraint and activity time variation,” IEEE Transactions on Automation Science and Engineering, vol. 9, no. 1, 203-209, 2012b.
    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, 56-69, 2008b.
    F. J. Yang, N. Q. Wu, Y. Qiao, and M. C. Zhou, Petri net-based optimal one-wafer cyclic scheduling of hybrid multi-cluster tools in wafer fabrication, IEEE Transactions on Semiconductor Manufacturing, vol. 27, no. 2, 192-203, 2014a.
    F. J. Yang, N. Q. Wu, Y. Qiao, and M. C. Zhou, Optimal one-wafer cyclic scheduling of single-arm multi-cluster tools with two-space buffering modules, IEEE Transactions on Systems, Man, & Cybernetics: Systems, vol. 44, no. 12, 1584-1597, 2014b.
    J. G. Yi, S. W. Ding, D. Z. Song, and M. T. Zhang, “Steady-State Throughput and Scheduling Analysis of Multi-Cluster Tools for Semiconductor Manufacturing: A Decomposition Approach,” IEEE Transactions on Automation Science and Engineering, vol. 5, pp. 321-336, 2008.
    M. C. Zhou and K. Venkatesh, Modeling, simulation and control of flexible manufacturing systems: Petri net approach, World Scientific, Singapore, 1998.
    Q. H. Zhu, N. Q. Wu, Y. Qiao, and M. C. Zhou, Petri net-based optimal one-wafer scheduling of single-arm multi-cluster tools in semiconductor manufacturing, IEEE Transactions on Semiconductor Manufacturing, vol. 26, no. 4, 578-591, 2013.
    W. M. Zuberek, “Timed Petri nets in modeling and analysis of cluster tools,” IEEE Transactions on Robotics Automation, vol. 17, no. 5, pp. 562-575, October 2001.


Since two decades ago, cluster tools have been increasingly adopted in wafer fabrication for high quality and low lead time. In general, a cluster tool integrates several process modules (PMs), a wafer handle robot (R), and one or more loadlocks (LL) for wafer cassette loading/unloading. In operating a cluster tool, a raw wafer in a loadlock is transported to PMs one by one in a specific sequence, and finally returns to the loadlock where it comes from. The robot executes loading, transportation, and unloading operations. It can be a single or dual-arm one, thus resulting in a single or dual-arm cluster tool. A multi-cluster tool is composed of multiple single-cluster tools, as shown in FIG. 1, which are interconnected via buffers with finite capacity for holding incoming and outgoing wafers.
Extensive studies have been done in modeling, analysis, scheduling, and performance evaluation for single-cluster tools [Perkinson et al., 1994 and 1996; Venkatesh et al., 1997; Zuberek, 2001; Wu et al., 2011 and 2012; and Wu and Zhou, 2010a, 2012a, and 2012b]. These studies reveal that a cluster tool operates in a steady state for most of time. A cluster tool operates in one of two modes called transport-bound and process-bound regions. When the wafer processing time dominates the operations such that the robot has idle time, it is process-bound, otherwise it is transport-bound if the robot is always busy. Practically, the robot task time is much shorter than wafer processing time and can be assumed to be a constant [Kim et al., 2003]. Thus, in practice, a cluster tool is often process-bound. In a process-bound region, a pull schedule (backward schedule) is optimal for a single-arm cluster tool [Kim et al., 2003; Lee et al. 2004; Lopez and Wood, 2003; and Dawande, 2002], and a swap scheduling is optimal for a dual-arm cluster tool [Venkatesh et al., 1997; and Drobouchevich et al., 2006]. However, these results are applicable only when there is no strict wafer residency time constraint.
Some wafer fabrication processes must meet strict wafer residency time constraints, thus leading to a complex scheduling problem [Kim et al., 2003; and Lee and Park, 2005]. Studies have been done for scheduling dual-arm cluster tools with wafer residency time constraints in [Kim et al., 2003; Lee and Park, 2005; and Rostami et al., 2001], and methods for finding an optimal periodic schedule are presented. To improve computational efficiency, this problem is further studied in [Wu et al., 2008a; and Wu and Zhou, 2010a, 2010b, 2012a, and 2012b] for both single-arm and dual-arm cluster tools. They develop a type of Petri net models by explicitly describing the robot waiting. Based on these models, an optimal cyclic schedule can be found by simply determining when and how long the robot should wait such that closed-form scheduling algorithms are developed to find such a schedule. Thereafter, one calls such a method a robot waiting method.
In order to meet complex manufacturing conditions, multi-cluster tools have been used in industry for more than a decade. Since the interconnection of single-cluster tools results in coupling and dependence of the single-cluster tools, their analysis and scheduling are more complicated than that of a single-cluster tool [Chan et al., 2011a]. Up to now, there are only a few research reports on this issue. Based on priority rules, heuristics for their scheduling are proposed in [Jevtic, 2001, Jevtic and Venkatesh, 2001]. Since it is difficult to evaluate the performance of a heuristic method, Ding et al. [2006] develop an integrated event graph and network models for them. Then, an extended critical path method is presented to find a periodic schedule. By ignoring the robot moving time, a decomposition approach is presented for scheduling them [Yi et al., 2008]. By this approach, they are decomposed into individual tools and the fundamental period (FP) of each single-cluster tool is calculated. Then, the FP for the whole system can be obtained by analyzing the robot operations in accessing the buffer modules (BMs). With constant robot moving time, Chan et al. [2011a and 2011b] subsequently tackle their scheduling problem. They develop a polynomial algorithm to find an optimal multi-wafer cyclic schedule.
Since robot task time is much shorter than wafer processing time in practice, a single-cluster tool is mostly process-bound. Hence, the present invention assumes that the bottleneck single-cluster tool in a multi-cluster tool is process-bound. Such a multi-cluster tool is called a process-dominant one [Zhu et al., 2013]. For a process-dominant one, the FP of its bottleneck single-cluster tool must be the lower bound of cycle time for the entire system. It is well-known that a one-wafer cyclic schedule is easy to understand, implement, and control to guarantee uniform product quality [Dawande et al., 2002; and Drobouchevitch et al., 2006]. Thus, it is highly desirable to have an optimal one-wafer cyclic schedule for a multi-cluster tool.
Aiming at finding an optimal one-wafer cyclic schedule, Zhu et al. [2013] study the scheduling problem of a process-dominant multi-cluster tool with a linear topology by using the robot waiting method. Their multi-cluster tool is composed of single-arm cluster tools and single-capacity BMs. They show that there is always an optimal one-wafer cyclic schedule for such a multi-cluster tool and efficient algorithms are developed to find such a schedule. They also present the conditions under which the lower bound of cycle time can be reached by a one-wafer cyclic schedule. For the same systems, this scheduling problem is further studied in [Yang et al., 2014]. It is shown that a one-wafer cyclic schedule to reach the lower bound of cycle time can be always found if all the BMs have two spaces. These results are very important for scheduling multi-cluster tools.
By the aforementioned studies, it is known that, with one-space BMs, the lower bound of cycle time may not be reached by a one-wafer cyclic schedule, which implies productivity loss. With two-space BMs, the maximal productivity is reached. However, cost must be paid for additional spaces. Thus, an interesting and significant question is how to optimally configure the buffer spaces such that a one-wafer cyclic schedule is found to reach the maximal productivity. This motivates us to conduct this study. As done in [Zhu et al., 2013; and Yang et al., 2014], one studies a single-arm process-dominant multi-cluster tool with linear topology. A Petri net (PN) model is developed to describe the dynamic behavior of the system with one or two spaces in a BM. With this model, based on the robot waiting method, one derives the conditions under which a one-wafer cyclic schedule with the lower bound of cycle time can be found for an individual tool such that this tool can operate as if it is independent. Then, an algorithm is presented to find such a schedule and configure the buffer spaces. This algorithm involves simple calculations for setting the robot waiting time and is computationally efficient. Further, the buffer space configuration is optimal in terms of the number of buffer spaces needed.
There is a need in the art for a method for scheduling single-arm multi-cluster tools with optimal buffer space configuration.
SUMMARY OF THE INVENTION
An aspect of the present invention is to provide a method for scheduling single-arm multi-cluster tools with optimal buffer space configuration.
According to an embodiment of the present claimed invention, a method for scheduling single-arm multi-cluster tools with optimal buffer space configuration, comprises: obtaining, by a processor, a wafer processing time, a robot wafer loading and unloading time, and a robot moving time; calculating, by a processor, a shortest time for completing a wafer based on the wafer processing time, the robot wafer loading and unloading time, and the robot moving time; calculating, by a processor, a robot cycle time based on the robot wafer loading and unloading time, and the robot moving time; determining, by a processor, a fundamental period based on selecting a maximum value among the shortest time for completing the wafer and the robot cycling time; determining, by a processor, a type of cluster tool by: if the fundamental period is a value of the shortest time for completing the wafer, the type of cluster tool is process-bound; otherwise the type of cluster tool is a transport-bound; determining, by a processor, the multi-cluster tools to be process-bound, or transport-bound based on the type of cluster tool having a maximum value of the fundamental period; determining, by a processor, a lower bound of cycle time based on the maximum value of the fundamental period; determining, by a processor, an algorithm for scheduling and buffer space configuration based on a petri net model; and calculating, by a processor, a robot waiting time based on the algorithm; calculating, by a processor, a wafer sojourn time based on the algorithm and the lower bound of cycle time; determining, by a processor, a buffer space for buffer module based on the wafer sojourn time and the robot waiting time; and obtaining, by a processor, a schedule based on the buffer space for buffer module and the lower bound of cycle time.
The present invention studies the scheduling problem of a single-arm multi-cluster tool with a linear topology and process-bound bottleneck individual tool. Its objective is to find a one-wafer cyclic schedule such that the lower bound of cycle time is reached by optimally configuring spaces in buffering modules that link individual cluster tools. A Petri net model is developed to describe the dynamic behavior of the system by extending resource-oriented Petri nets such that a schedule can be parameterized by robots' waiting time. Based on this model, conditions are presented under which a one-wafer cyclic schedule with lower bound of cycle time can be found. With the derived conditions, an algorithm is presented to find such a schedule and optimally configure the buffer spaces. This algorithm requires only simple calculation to set the robots' waiting time and configure the buffer space. Illustrative examples are presented to show the application and power of the proposed method.



BRIEF DESCRIPTION OF THE DRAWINGS
Embodiments of the present invention are described in more detail hereinafter with reference to the drawings, in which:
FIG. 1 shows a multi-cluster tool with a linear topology;
FIG. 2 depicts a PN model for processing Step PSij;
FIG. 3 depicts a PN model for a BM; and
FIG. 4 depicts PN model for tool Ci.



DETAILED DESCRIPTION
In the following description, a method for scheduling single-arm multi-cluster tools with optimal buffer space configuration is set forth as preferred examples. It will be apparent to those skilled in the art that modifications, including additions and/or substitutions maybe made without departing from the scope and spirit of the invention. Specific details may be omitted so as not to obscure the invention; however, the disclosure is written to enable one skilled in the art to practice the teachings herein without undue experimentation.
In Section A, a PN model is developed. Based on it, Section B gives the method for scheduling a single-cluster tool by setting robot waiting time. Section C derives the conditions under which a one-wafer cyclic schedule with the lower bound of cycle time can be obtained for an individual tool. Then, an efficient algorithm for scheduling a multi-cluster tool and configuring the buffer spaces is proposed. Examples are used to show the applications of the proposed method in Section D.
A. System Modeling
A multi-cluster tool composed of K individual single-cluster tools is called a K-cluster tool. Topologically, a K-cluster tool can be linear or tree-like. The present invention conducts the scheduling and buffer space configuration problem for a linear and process-dominant K-cluster tool composed of single-arm cluster tools as shown in FIG. 1. Thereafter, a K-cluster tool means such a multi-cluster tool unless otherwise specified. Let n={1, 2, . . . , n} and n={0}∪n. The i-th tool in a K-cluster tool is denoted by Ci, i∈K, with C1 and CK being the head and tail ones. In Ci, i∈K−1, there is at least one processing step and, in CK, there are at least two processing steps, since otherwise it is not meaningful and can be removed from a K-cluster tool. For scheduling, the loadlocks and BMs linking the individual tools can be treated as processing steps with processing time being zero. The BM linking Ci and Ci+1 is used to deliver wafers from Ci to Ci+1. Thus, this BM is called the outgoing buffer for Ci and incoming one for Ci+1. Assume that there are totally n[i]+1 steps in Ci, i∈K, including the steps for BMs. In Ci, one numbers the incoming BM as Step 0 and the last step as Step n[i], and the other steps are numbered in this order. Multiple PMs can be configured to serve for a step. Since the results obtained in the present invention can be extended to multi-PM-step case, it is assumed that there is one PM for each processing step. However, a step representing a BM can have more than one space. The j-th step, j∈n[i], in Ci is denoted by PSij. The BM linking Ci and Ci+1 is numbered as Steps b[i] and 0, and denoted by PSi(b[i]) and PS(i+1)0, for Ci and Ci+1, respectively. Let Ri be the robot in Ci. In this way, the steps in Ci are PSi0, PSi1, . . . , PSi(b[i]), PSi(b[i]+1), . . . , PSi(n[i], where PSi0 and PSi(b[i]) represent the incoming and outgoing steps, respectively. The wafer processing route is: PS10→PS11→ . . . →PS1(b[1])(PS20)→PS21→ . . . →PS2(b[2])(PS30)→ . . . →PS(K−1)(b[K−1])(PSK0)→PSK1→ . . . →PSK(n[K])→ . . . →PSK0(PS(K−1)(b[K−1]))→PS(K−1)(b[K−1]+1)→ . . . →PS30(PS2(b[2]))→PS2(b[2]+1)→ . . . →PS20(PS1(b[1]))→ . . . →PS1(n[1])→PS10.
For a K-cluster tool studied in the present invention, as done in [Chan et al., 2011a and 2011b], one assumes that: 1) all the wafers follow an identical processing sequence as given above and visit each PM only once; 2) a PM can process one wafer at a time; 3) the activity time is deterministic and known; 4) the loading and unloading time of a robot is the same; and 5) each BM can hold either one or two wafers.
A.1 Modeling Wafer Flow
As an effective tool for modeling concurrent activities, Petri nets (PN) are widely adopted for modeling manufacturing systems. The present invention extends resource-oriented PN developed in [Wu, 1999; Wu and Zhou, 2001 and 2010c; and Wu et al., 2008b] to model a K-cluster tool. The basic concept of PN can be seen in [Zhou and Venkatesh, 1998; and Wu and Zhou, 2009]. It is kind of finite capacity PN defined as PN=(P, T, I, O, Ω, M, Γ), where P={p1, p2, . . . , pm} is a finite set of places; T={t1, t2, . . . , tn} is a finite set of transitions with P∪T≠Ø and P∩T=Ø; I:P×T→={0, 1, 2, . . . } is an input function; O:P×T→ is an output function; Ω:P→{c1, c2, . . . , cn} and Ω:T→{c1, c2, . . . , cn} is a color function; M:P→ is a marking representing the number of tokens in places with M0 being the initial marking; and Γ:P→{1, 2, 3, . . . } is a capacity function, where Γ(p) denotes the largest number of tokens that p can hold at a time. The preset of transition t is the set of all input places to t, i.e., •t={p:p∈P and I(p, t)>0}. Its postset is the set of all output places from t, i.e., t•={p:p∈P and O(p, t)>0}. Similarly, p's preset •p={t∈T:O(p, t)>0} and postset p•={t∈T:I(p, t)>0}. The transition enabling and firing rules can be found in [Wu and Zhou, 2009 and 2010c].
The set of all markings reachable from M0 is denoted as R(M0). A transition in a PN is live if it can fire at least once in some firing sequence for every marking M∈R(M0). A PN is live if every transition is live. The liveness of a PN can make sure all events or activities in the model to happen.
A.2 PN for K-Cluster Tools
In the operations of a K-cluster tool, there are mainly three states: initial transient state, steady state, and final transient one. Although the present invention focuses on finding a cyclic schedule at the steady state, there is an initial transient process for a cluster tool to enter a steady state and there is a final transient process when a cluster tool needs to terminate. Hence, it is meaningful to develop a model that can describe the dynamic behavior of all the three states. The key for scheduling a K-cluster tool is to coordinate the activities of its multiple robots in accessing BMs. Thus, if each individual cluster tool and BMs are modeled, the dynamic behavior of a K-cluster tool is well described. Thus, one develops PN models for a single-cluster tool and BM as follows.
First, one presents the model for PSij in Ci as shown in FIG. 2. Timed place pij with Γ(pij)=1, i∈K, and j∈n[i]\{0, b[i]} is used to model the PM for the step. PS10 for the loadlocks in C1 is treated as a step and is modeled by p10 with Γ(p10)=∞, representing that it can hold and remove all the wafers in process. With a robot waiting method being used in the present invention, robot waiting is explicitly modeled. Timed qij with Γ(qij)=1 is used to model Ri's waiting at step j∈n[i] for unloading a wafer at SPij. Non-timed zij and dij with Γ(zij)=Γ(dij)=1 model Ri's holding a wafer for loading into pij and moving to Step j+1 (or step 0, if j=n[i]), respectively. Timed tij and uij model Ri's loading and unloading a wafer into and from pij, respectively. Pictorially, pij's and qij's are denoted by , zij's and dij's by , and transitions by .
For a BM linking Ci and Ci+1, place Pi(b[i]) is used to model the outgoing buffer for Ci and p(i+1)0 the incoming buffer for Ci+1. Physically, pi(b[i]) and p(i+1)0 are for the same BM. One uses two places to model the BM since it serves for both Ci and Ci+1. One needs to configure a minimal number of spaces in a BM such that a one-wafer cyclic schedule can be obtained to reach the lower bound of cycle time. Hence, in modeling a BM, one assumes that a BM has two spaces, leading to Γ(pi(b[i]))=Γ(p(i+1)0)=2. When the system is scheduled, for a BM, if at any time, there is only one token, a space is configured for this BM. However, if for some time, there are two tokens in a BM, two spaces are configured for this BM. Then, pi(b[i]), qi(b[i]), zi(b[i]), di(b[i]), ti(b[i]) and ui(b[i]) are used to model Step pi(b[i]) for Ci, while p(i+1)0, q(i+1)0, z(i+1)0, d(i+1)0, t(i+1)0 and u(i+1)0 are used to model Step 0 for Ci+1. In this way, the PN model for a BM is obtained as shown in FIG. 3.
In the PN model shown in FIG. 3, pi(b[i]) (p(i+1)0) has two output transitions ui(b[i]) and u(i+1)0, leading to a conflict. Notice that when a token enters pi(b[i]) by firing ti(b[i]), it should enable u(i+1)0, while a token enters p(i+1)0 by firing t(i+1)0, it should enable ui(b[i]). To describe and resolve such a conflict, colors are introduced into the PN model as follows.
Definition 2.1: Transition ti has a unique color Ω(ti)={ci} and a token in p∈•ti enabling ti has color {ci} as ti has.
According to Definition 2.1, ui(b[i]) and u(i+1)0 have colors ci(b[i]) and c(i+1)0, respectively. When a token enters pi(b[i]) by firing ti(b[i]) has color c(i+1)0, while a token enters p(i+1)0 by firing t(i+1)0 has color ci(b[i]). Then, according to the transition enabling and firing rules, the PN model is made conflict-free.
With the PN models for steps and BMs, one can present the PN model for Ci, i∈K−1\{1}, as shown in FIG. 4. Place ri with Γ(ri)=1 models robot Ri and denoted by . A token in ri indicates that the robot is available. Transition yij together with arcs (ri, yij) and (yij, qij) models Ri's moving from Steps j+2 to j (or from Step 0 if j=n[i]−1, or from Step 1 if j=n[i]) without holding a wafer. Transition xij together with arcs (dij, xij) and (xij, zij+1) models Ri's moving from Steps j to j+1 (or to Step 0 if j=n[i]) and (xij, zij+1) is replaced by (xij, zi0)) with a wafer held. In this way, the PN model for Ci, i∈K−1\{1}, is obtained as shown in FIG. 4. Since the loadlocks denoted by SP10 in C1 are the incoming buffer but not shared with any other individual tool, replacing the PN model for the incoming buffer in FIG. 4 by the model for SP10, one can obtain the PN model for C1. Similarly, replacing the PN model for the outgoing buffer in FIG. 4 by the model for SPKj, one has the PN model for CK.
With the structure of the PN model built, one can set initial marking M0. By assumption that there are always wafers to be processed and the loadlocks can hold all wafers in processing, one sets M0(p10)=n. Since the K-cluster tool addressed here is process-dominant, or its bottleneck cluster tool is process-bound, at the steady state, if there is a wafer in processing at every processing step, the maximum productivity is achieved. Thus, for C1, one sets M0(p1j)=1, j∈n[1]\{0, b[i], b[i]−1}; M0(p1j)=0, j∈{b[1], b[1]−1}; M0(z1j)=0, j∈n[1]\{b[1]}; M0(z1(b[1]))=1; M0(dij)=0, j∈n[1]; M0(q1j)=0, j∈n[1]; and M0(r1)=0. By this setting, R1 is at Step b[1] ready for loading a wafer into SP1(b[1]). For Ci, 2≦i≦K, one sets M0(pij)=1, i∈K\{1} and j∈n[i]\{0, 1, b[i]}; M0(pij)=0, i∈k−1\{1} and j∈{0, 1, b[i]}; M0(pK0)=M0(pK1)=0; M0(zij)=M0(dij)=0, i∈K\{1} and j∈n[i]; M0(qij)=0, i∈K\{1} and j∈n[i]\{0}; M0(qi0)=1, i∈K\{1}; and M0(ri)=0, i∈K\{1}. By this setting, Ri in Ci is at Step 0 for unloading a wafer from SPi0.
According to the transition enabling and firing rules, transition ti is enabled if there is a token with color ci in •ti (process-enabled) and there is at least a free space in ti• (resource-enabled). According to the rules, for Ci at M0, assume that transition firing sequence yi1→ui1→xi1 is performed such that a token enters zi2. At this state, ti2 is the only process-enabled transition, but it is not resource-enabled, since M0(pi2)=Γ(pi2)=1. In other words, the system is deadlocked. To make it deadlock-free, a control policy is introduced into the model such that the model becomes a controlled PN [Wu, 1999]. For a controlled PN, a process and resource-enabled transition can fire only it is also control-enabled. Based on [Wu et al., 2008a], for the above developed PN, all yij's are controlled and the control policy is defined as follows.
Definition 2.2: At marking M, transition yij, i∈K, j∈n[i]\{n[i], b[i]−1}, is said to be control-enabled if M(pi(j+1))=0; yi(n[i]), i∈K, is said to be control-enabled if ti1 has just been fired; yi(b[i−1]), i∈K−1, is said to be control-enabled if ti(b[i+1]) has just been fired.
It follows from [Wu et al., 2008a] that, by the control policy given in Definition 2.2, a single-arm cluster tool is deadlock-free. It is easy to verify that the PN model for a K-cluster tool is deadlock-free if the control policy given in Definition 2.2 is applied.
By assumption, a K-cluster tool is process-dominant, and a backward scheduling strategy for each individual tool is optimal. Then, with a backward scheduling strategy being applied, starting from M0, the PN can evolve as follows. R1 in C1 loads a wafer into p1(b[1]) by firing t1(b[i]). Then, R1 moves to p1(b[1]−2) for firing u1(b[i]−2). After firing t1(b[1]), u20 fires immediately by R2 in C2 and a token is moved to p21. Ri, i∈K\{1, 2}, acts similarly. The transition firing process for the individual tools can be described as follows. For C1, the transition firing sequence is t1(b[1])→y1(b[1]−2)→u1(b[1]−2)→x1(b[1]−2)→t1(b[1]−1)→ . . . →y10→u10→x10→t11→y1(n[1])→u1(n[1])→x1(n[1])→t10→y1(n[1]−1)→u1(n[1]−1)→x1(n[1]−1)→t1(n[1])→ . . . →y1(b[1])→u1(b[1])→x1(b[1])→t1(b[1]+1)→y1(b[1]−1)→u1(b[1]−1)→x1(b[1]−1)→t1(b[1]) again; for Ci, i∈K−1\{1}, ui0→xi0→ti1→yi(n[i])→ui(n[i])→xi(n[i])→ti0→yi(n[i]−1)→ui(n[i]−1)→xi(n[i]−1)→ti(n[i])→ . . . →yi(b[i])→ui(b[i])→xi(b[i])→ti(b[i]+1)→yi(b[i]−1)→ui(b[i]−1)→xi(b[i]−1)→ti(b[i])→ . . . →yi0→ui0 again; and for CK, uK0→xK0→tK1→yK(n[K])→uK(n[K])→xK(n[K])→tK0→yK(n[K]−1)→uK(n[K]−1)→xK(n[K]−1)→tK(n[K])→ . . . →yK0→uK0 again. In this process, each time after ti(b[i]), i∈K−1, fires, u(i+1)0 can fire, and after t(i+1)0 fires, ui(b[i]) can fire. In this way, the system can keep working. The key is how to coordinate the firing of ti(b[i]), u(i+1)0, t(i+1)0, and ui(b[i]), i∈K−1.
A K-cluster tool may start from its idle state at which there is no wafer being processed. This state can be modeled by using virtual tokens denoted by V0. Assume that, at M0, every token in the PN model is a virtual token V0. Then, the PN model evolves according to the transition enabling and firing rules such that whenever u10 fires, a token representing a real wafer is delivered into the system. In this way, when all V0 tokens are removed from the model, the initial transient process ends and a steady state is reached. This implies that, by doing so, the PN model describes not only the steady state but also the idle state and initial transient process. Similarly, it can also describe the final transient process.
A.3 Modeling Activity Time
To describe the temporal properties of a K-cluster tool's PN model, time is associated with both places and transitions. When time ζ is associated with transition t, t's firing should last for ζ time units; while it is associated with place p, a token should stay in p for at least ζ time units before it can enable its output transition. As pointed out by Kim et al., [2003], the time taken for Ri to load/unload a wafer into/from a PM, loadlock, and BM is same, and is denoted by λi. Similarly, the time taken for Ri to move among PMs, loadlocks, and BMs is also same no matter whether Ri holds a wafer or not, and is denoted by μi. The time taken for processing a wafer at step j in Ci is αij. Let ωij and τij denote Ri's waiting time in qij and the wafer sojourn time in a PM at Step j in Ci, respectively. The time duration for transitions and places are summarized in Table I.







TABLE I







Time duration for transitions and places











Transition

Time


Symbol
or place
Actions
duration





λi
tij
Ri loads a wafer into pij, i ε  K, j ε  n[i]
λi



uij
Ri unloads a wafer from pij, i ε  K, j ε  n[i]



μi
xij
Ri moves from pij to pi(j +1), i ε  K, j ε  n[i] − 1 (or
μi




from pi(n[i]) to pi0, i ε  K, j = n[i])




yij
Ri moves from pi(j + 2) to pij, i ε  K, j ε  n[i] (or





from pi0 to pi(n[i] − 1), if i ε  K and j = n[i] − 1, or 





from pi1 to pi(n[i]), if i ε  K and j = n[i])



αij
pij
A wafer being processing in pij, i ε  K, j ε  n[i]
αij


τij
pij
Wafer sojourn time in pij, i ε  K, j ε  n[i]
τij


ωij
qij
Ri waits before it unloads a wafer from pij, i ε  K,
[0, ∞)




j ε  n[i]




zij or dij
No robot activity related to it 
0









Up to now, one completes the modeling of a K-cluster tool. Based on the PN model, one discusses how to schedule an individual cluster tool next.
B. Scheduling of Individual Cluster Tools
To schedule a K-cluster tool, one needs to schedule its individual cluster tools and, at the same time, coordinate the activities of multiple robots. If all the individual tools are scheduled to be operated in a paced way and, at the same time, each tool can operate in an independent way, a cyclic schedule is obtained for a K-cluster tool. Based on this concept, one next discusses the scheduling problem of individual cluster tools.
For cluster tool Ci, based on the PN model, one first analyzes the time taken for completing a wafer at Step j, j∈n[i]. According to the PN model, to complete a wafer at Step j, the following transition firing sequence is performed: σ1=firing uij(with time λi)→xij(μi)→ti(j+1)(λi)→yi(j−1)(μi)→Ri waiting in qi(j−1)(ωi(j−1))→ui(j−1)(λi)→xi(j−1)(μi)→tij(λi)→processing a wafer in pij(αij)→uij(λi) again. In this process, if j=n[i], it requires to replace ti(j+1)(λi) by ti0(λi) without changing the time taken.
If j=b[i] for a BM, let ξ1 be the time point when firing ti(b[i]) ends and ξ2 be the time point when firing ui(b[i]) starts. Although, for a BM, there is no wafer processing function and the wafers (tokens) delivered by ti(b[i]) and ui(b[i]) are different, for a scheduling purpose, one concerns only the time taken. Hence, one can treat αi(b[i])=ξ2−ξ1 as a virtual wafer processing time for a BM, which is consistent with αij for a wafer processing step.
Similarly, if j=0, let ρ1 be the time point when firing ti0 ends and ρ2 the time point when firing ui0 starts. Then, αi0=ρ2−ρ1 can be treated as the virtual wafer processing time for Step 0. Thus, the time taken for completing a wafer at Step j is

ζij=αij+4λi+3μi+ωi(j−1),i∈K and j∈n[i]  (3.1)

ζi0=αi0+4λi+3μi+ωi(n[i])  (3.2)

Notice that Step SP10 is for the loadlocks. By assumption, there are always wafers ready to be processed. Hence, after firing t10, u10 can fire immediately, leading to α10=0. Also, αi(b[i]) and αi0 can be zero, dependent on a schedule for Ci and a K-cluster tool.
If Ri′ waiting time is removed from (3.1) and (3.2), then the shortest time for completing a wafer at step j is

ζij=αij+4λi+3μi,i∈K and j∈n[i]  (3.3)

To coordinate the behavior of the steps in an individual tool, the tool may be scheduled such that after a wafer is processed in a PM at Step j, the wafer stays at the PM for some time, i.e., τij≧αij. In (3.1) and (3.2), replace αij by τij, one has

ηij=τij+4λi+3μi+ωi(j−1),i∈K and j∈n[i]  (3.4)

ηi0=τi0+4λi+3μi+ωi(n[i])  (3.5)

Then, one needs to analyze Ri's cycle time in Ci. In this cycle, Ri performs activity sequence σ2=firing yi(n[i])(μi)→waiting in qi(n[i])(ωi(n[i]))→u(n[i])(λi)→xi(n[i])(μi)→ti0(λi) → . . . →yi(j−1)(μi)→waiting in qi(j−1)(ωi(j−1))→ui(j−1)(λi)→xi(j−1)(μi)→tij(λi)→yi(j−2)(μi)→waiting in qi(j−2)(ωi(j−2))→ui(j−2)(λi)→xi(j−2)(μi)→ti(j−1)(λi)→ . . . →yi0(μi)→waiting in qi0(ωi0)→ui0(λi)→xi0(μi)→ti1(λi)→yi(n[i])(μi) again. During this process, all the transitions fire only once and there is a waiting time in qij. Since there are (n[i]+1) yij's, uij's, xij's, tij's, and qij's, the cycle time for Ri in Ci can be calculated as

ψi=2(n[i]+1)(λi+μi)+Σj=0n[i]ωij=ψi1+ψi2,i∈K,  (3.6)

where ψi1=2(n[i]+1)(λi+μi) is Ri's task time in a cycle and is constant, while ψi2=Σj=0n[i]ωij is Ri's waiting time in a cycle.

Let πi=max{ζi0, ζi1, . . . , ζi(n[i]), ψi1} denote the fundamental period (FP) [Perkinson et al., 1994; and Venkatesh et al., 1997] for Ci. If πi=max{ζi0, ζi1, . . . , ζi(n[i])}, Ci is process-bound, otherwise it is transport-bound. Since the steps in Ci operate in a serial way, the productivity for each step should be identical, or the time taken for completing a wafer at each step in Ci should be same. Let ηi be the time taken for Ci to complete a wafer. Then, one has

ηi=ηi0=ηi1η= . . . =ηi(n[i])  (3.7)

It indicates that, at a steady state, all the steps in Ci have the same cycle time. By examining σ1 and σ2, one can conclude that Ri's cycle time is same as the cycle time for each step. Hence, one has

ψi=ηi=ηi0=ηi1= . . . =ηi(n[i])  (3.8)

It follows from (3.6) that Ri's cycle time consists of ψi1 and ψi2, where ψi1 is a known constant and ψi2 is the sum of ωij's that are to be determined by a schedule. Thus, to schedule individual tools is to determine ωij's, or the scheduling problem for the individual tools is parameterized by ωij's . With these results, one discusses how to configure the spaces for the BMs such that a one-wafer cyclic schedule is found to reach the lower bound of cycle time for a K-cluster tool next.
C. Scheduling K-Cluster Tool
Let π=max{π1, π2, . . . , πK} and assume π=πh, the FP of Ch. This implies that Ch is the bottleneck tool in a K-cluster tool. Let η be the cycle time of a cyclic schedule for a K-cluster tool. Then, one has η≧π [Zhu et al., 2013; and Yang et al., 2014], i.e., π is the lower bound of cycle time of any cyclic schedule for a K-cluster tool. Let ηi be the cycle time of a one-wafer cyclic schedule for Ci, i∈K. To find a one-wafer cyclic schedule with cycle time η for a K-cluster tool, one has the following result.
Proposition 4.1: To obtain a cyclic schedule for a K-cluster tool with cycle time η, the cycle time of a cyclic schedule for its individual tool Ci, i∈K, should be equal to η, or

η1=η2= . . . =ηK=η  (4.1)

Proof: With the developed PN model for a BM linking Ci and C1+1, at marking M, for Ci, one assumes that tib[i] fires at time ξ1 such that a token enters p(i)(b[i]) (p(i+1)0) at ξ2=ξ1+λi. Further, assume that, at ξ2, there is a token in q(i+1)0. By the transition enabling and firing rules, after firing tib[i], u(i+1)0 is enabled and it fires at ξ2. Then, in Ci, after a cycle, tib[i] fires again such that another token enters pi(b[i]) (p(i+1)0) at ξ3=ξ2+ηi. After ξ3, for Ci+1, when a token enters q(i+1)0, u(i+1)0 can fire again at only ξ4≧ξ3=ξ2+ηi. Thus, one has ηi+1=ξ4−ξ2≧ξ3−ξ2=(ξ2+ηi)−ξ2=ηi, or ηi+1≧ηi. In the same way, one can show that ηi≧ηi+1. This implies that ηi=ηi+1. Hence, one has η1=η2= . . . =ηK. Since the cycle time for the K-cluster tool is equal to that of C1, one has η1=η2= . . . =ηK=η, or the proposition holds.
To maximize the productivity of a K-cluster tool, it is desired that it is scheduled such that the lower bound cycle time π is reached. For easy implementation, a one-wafer cyclic schedule is preferred. It follows from Proposition 4.1 that, to reach such a goal, a K-cluster tool should be scheduled such that

η1=η2= . . . =ηK=η=π=πh  (4.2)

It follows from Zhu et al., [2013], for a K-cluster tool, there may be no cyclic schedule such that the lower bound cycle time is reached. A one-wafer cyclic schedule with the lower bound of cycle time may be found by increasing buffer spaces in BMs. It is shown that, with two buffer spaces in each BM, a one-wafer cyclic schedule with the lower bound of cycle can be always found [Yang et al., 2014]. Then a question is whether one needs two buffer spaces in each BM? One answers this question by finding a one-wafer cyclic schedule with the lower bound of cycle time with minimal buffer space configuration in this section.
C.1 Scheduling Analysis
According to the above analysis, to reach the lower bound of cycle time, for Ci, i∈K, a one-wafer cyclic schedule should be found such that its cycle time is π. Assume that such a schedule is found by using the method given in the last section for Ci, i∈K, such that the time for firing ti0, ui0, ti(b[i]), and ui(b[i]) is determined. If, at a time, any of these transitions should fire as scheduled, it is enabled and can fire, then every individual tool can operate independently. In this way, a one-wafer cyclic schedule with cycle time π is obtained for a K-cluster tool. Since a K-cluster tool addressed in the present invention is process-dominant, one has π=πh and π≧πi, and ψi2=π−ψi1≧0, i∈K. This implies that if Ci, i∈K\{h}, is transport-bound, it is not meaningful to reduce the cycle time by reducing the number of wafers being concurrently processed in the tool. Hence, a backward scheduling strategy can be applied for any Ci, i∈K. Then, the key is how to schedule individual tool Ci, i∈K, by determining Ri's waiting time ωij's such that ψi2=π−ψi1. To obtain a one-wafer cyclic schedule for Ci, i∈K, such that its cycle time is π, according to the discussion in the last section, one has ηij=π=πh, j∈n[i]. Then, it follows from (4.2) that one has

ηij=η(i+1)f=π=πh,i∈K−1,j∈n[i], and f∈n[i+1]  (4.3)

By (4.3), all the individual tools can be operated in a paced way. Then, the key is to coordinate multiple robots such that when any of ti0, ui0, ti(b[i]), and ui(b[i]), i∈K, should fire as scheduled, it is enabled. To do so, one needs to analyze the dynamic behavior of a K-cluster tool.
Theorem 4.1: For a process-dominant K-cluster tool, a one-wafer cyclic schedule can be found with cycle time π by determining the robot waiting time ωij's and ω(i+1)f's for Ci, i∈K−1, if and only if two BMs linking Ci−1 and Ci, and Ci and Ci+1 have one buffer space, and the following conditions are satisfied.

τi(b[i])≧4λi+1+3μi+1+ω(i+1)(n[i+1])  (4.4)

τ(i+1)0≧4λi+3μi+ωi(b[i]−1)  (4.5)

Proof Necessity: Consider the BM linking Ci and Ci+1 denoted by Step b[i] in Ci, i∈K−1. By (3.4), (3.5), and (4.3), the cycle time for this step should be scheduled to be ηi(b[i])=π=τi(b[i])+4λi+3μi+ωi(b[i]−1) such that the wafer sojourn time τi(b[i])=π−(4λi+3μi+ωi(b[i]−1)). With the PN model shown in FIG. 3, firing ti(b[i]) loads a wafer into pi(b[i]) (p(i+1)0). Let φ1 denote the time point when firing ti(b[i]) ends. Assume that, after firing ti(b[i]), the token in pi(b[i]) (p(i+1)0) is delivered immediately to Ci+1 at φ1 by firing u(i+1)0. Then, Ri+1 in Ci+1 performs transition firing sequence σ1=firing u(i+1)0(λi+1)→x(i+1)0(μi+1)→t(i+1)1(λi+1)→y(i+1)(n[i+1])(μi+1)→waiting in q(i+1)(n[i+1])(ω(i+1)n[i+1])→u(i+1)(n[i+1])(λi+1)→x(i+1)(n[i+1])(μi+1)→t(i+1)0(λi+1) such that a new token in Ci+1 is loaded into p(i+1)0 (pi(b[i])) by firing t(i+1)0 such that ui(b[i]) is enabled. Let φ2 be the time point when a wafer is loaded into p(i+1)0 (pi(b[i])) (the end of firing t(i+1)0). Let Θ=(φ2−φ1)+4λi+3μi+ωi(b[i]−1). Then, the cycle time for Step b[i] in Ci must be greater or equal to Θ. By σ1, one has φ2−φ1=4λi+1+3μi+1+ω(i+1)n[i+1]. Further, assume that τi(b[i])≧4λi+1+3μi+1+ω(i+1)(n[i+1]) does not hold, or φ2−φ1=4λi+1+3μi+1+ω(i+1)(n[i+1])>τi(b[i]). This implies that Θ=(φ2−φ1)+4λ1+3μi+ωi(b[i]−1)>τi(b[i])+4λi+3μi+ωi(b[i]−1)=π, which contradicts that the cycle time of Ci is π. Hence, (4.4) is necessary. Similarly, one can show that τ(i+1)0≧4λi+3μi+ωi(b[i]−1) is necessary to make ti(b[i]) enabled when it is scheduled to fire. Also, consider the BM linking Ci−1 and Ci, one can show the necessity of (4.4) and (4.5). Notice that when one shows the necessity of (4.4) and (4.5), one requires that there be a space in p(i+1)0 (pi(b[i])), otherwise it is not possible. Hence, the buffer space is also necessary.
Sufficiency: With the PN model shown in FIG. 3, one examines the BM linking Ci and Ci+1 denoted by Step b[i] in Ci, i∈K−1. With π being the cycle time, by the scheduling method given in the last section, a one-wafer cyclic schedule is obtained such that π=τi(b[i])+4λi+3μi+ωi(b[i]−1). Let φ3 be the time point when firing ti(b[i]) ends such that a wafer is loaded into pi(b[i]) (p(i+1)0). At the same time, Ci+1 is scheduled such that u(i+1)0 starts to fire at φ3 and then σ1 is performed. Let φ4 denote the time point when firing t(i+1)0 ends and a wafer is loaded into p(i+1)0 (pi(b[i])) such that ui(b[i]) is enabled. Thus, one has φ4−φ3=4λi+1+3μi+1+ω(i+1)(n[i+1]). By (4.4), one has τi(b[i])≧4λi+1+3μi+1+ω(i+1)(n[i+1]). This implies that ui([i]) is scheduled to start firing at φ5 with φ5−φ3=τi(b[i]). Hence, one has φ5−φ3=τi(b[i])≧4λi+1+3μi+1+ω(i+1)(n[i+1])=φ4−φ3. In other words, when ui(b[i]) is scheduled to fire, there is a token in p(i+1)0 (pi(b[i])), or ui(b[i]) is enabled. Then, after firing ui(b[i]), when ti(b[i]) is scheduled to fire, p(i+1)0 (pi(b[i])) is empty since τ(i+1)0≧4λi+3μi+ωi(b[i]−1). This implies that ti(b[i]) is enabled. Similarly, by examining Step 0 in Ci, one can show that, if (4.4) and (4.5) hold, both ui0 and ti0 are enabled whenever they are scheduled to fire. Notice that, in the above discussed process, there is at most one token p(i+1)0 (pi(b[i])), or one buffer space is sufficient.
In Theorem 4.1, to find a one-wafer cyclic schedule for Ci with cycle time π such that Ci can operate independently, one requires that both (4.4) and (4.5) hold. However, by examining the BM linking Ci and Ci+1, i∈K−1, one can show that if one of the conditions (4.4) and (4.5) holds, the other holds too. One has the following corollary.
Corollary 4.1: For Ci and Ci+1 linking by a BM, if Condition (4.4) in Theorem 4.1 holds, then (4.5) holds; and vice versa.
Proof: Assume that τi(b[i])≧4λi+1+3μi+1+ω(i+1)(n[i+1]) holds. For Step b[i] in Ci, by (3.4), (3.5), and (4.3), one has π=τi(b[i])+4λi+3μi+ωi(b[i]−1), thus leading to τi(b[i])=π−(4λi+3μi+ωi(b[i]−1))≧4λi+1+3μi+1+ω(i+1)(n[i+1]). For Step 0 in Ci+1, by (3.4), (3.5), and (4.3), one has π=τ(i+1)0+4λi+1+3μi+1+ω(i+1)(n[i+1]), thus leading to 4λi+1+3μi+1+ω(i+1)(n[i+1])=π−τ(i+1)0. Therefore, π−(4λi+3μi+ωi(b[i]−1))≧4λi+1+3μi+1+ω(i+1)(n[i+1])=π−τ(i+1)0, leading to τ(i+1)0≧4λi+3μi+ωi(b[i]−1). Similarly, if (4.5) holds, one can show that (4.4) holds.
It follows from Corollary 4.1 that, if one of conditions (4.4) and (4.5) holds, to find a one-wafer cyclic schedule with cycle time π for Ci, one needs one buffer space in the BMs linking Ci−1 and Ci, and Ci and Ci+1. However, Conditions (4.4) and (4.5) may not be satisfied for both BMs linking Ci−1 and Ci, and Ci and Ci+1. By observing (4.4), if τi(b[i])<4λi+1+3μi+1, one has τi(b[i])<4λi+1+3μi+1+ω(i+1)(n[i+1]). Then, one has the following result.
Theorem 4.2: For a process-dominant K-cluster tool, a one-wafer cyclic schedule can be found with cycle time π by determining the robot waiting time ωij's and ω(i+1)f's for Ci, i∈K−1, if the BM linking Ci−1 and Ci has one buffer space, the BM linking Ci and Ci+1 has two buffer spaces, and the following conditions are satisfied

τ(i−1)(b[i−1])≧4λi+3μi+ωi(n[i])  (4.6)

and τi(b[i])<4λi+1+3μi+1  (4.7)

Proof: It follows from Theorem 4.1 that, if condition (4.6) is satisfied and there is one buffer space in the BM linking Ci−1 and Ci, Ci can be scheduled with cycle time π such that, whenever ti0 and ui0 are scheduled to fire, they are enabled and can fire. Then, one examines ti(b[i])and ui(b[i]). With two buffer spaces in the BM linking Ci and Ci+1, one assumes that at marking M, there is a token in zi(b[i]) and a token in pi(b[i]) (p(i+1)0) with color ci(b[i]), or it enables ui(b[i]). At this marking, K(pi(b[i]))−M(pi(b[i]))=1, or this is a free space in it such that ti(b[i]) is enabled. Then, the system is scheduled as follows. Transition ti(b[i]) fires and a token with color c(i+1)0 is loaded into pi(b[i]) (p(i+1)0). Let φ1 be the time point when firing ti(b[i]) ends. Notice that, at this time, there are two tokens with different colors in pi(b[i]) (p(i+1)0) simultaneously. After firing ti(b[i]), u(i+1)0 fires immediately at φ1. Also, after τi(b[i])=π−(4λi+3μi+ω(i)(b[i]−1)) time units, ui(b[i]) fires at time φ2=φ1τi(b[i])=φ1+π−(4λi+3μi+ω(i)(b[i]−1)) and a token is removed from pi(b[i]) (p(i+1)0). For Ci+1, after firing u(i+1)0 at φ1, σ1 is performed. Let φ3 be the time point when firing t(i+1)0 ends. One has φ3=φ1+4λi+1+3μi+1+ω(i+1)(n[i+1]). Since τi(b[i])<4λi+1+3μi+1, φ2=φ1+τi(b[i])<φ14λi+1+3μi+1<φ14λi+1+3μi+1ω(i+1)(n[i+1])=φ3, or φ2<φ3. It means that there is no conflict. At time φ3, there is a free space in pi(b[i]) (p(i+1)0) such that ti(b[i]) can fire again as scheduled.
Theorem 4.2 shows that, if τi(b[i])<4λi+1+3μi+1, two buffer spaces in the BM linking Ci and Ci+1 are sufficient. It follows from Theorem 4.1 that, if τi(b[i])<4λi+1+3μi+1, one buffer space in the BM linking Ci and Ci+1 is not sufficient. Thus, one has the following corollary immediately.
Corollary 4.2: For a process-dominant K-cluster tool, if τi(b[i])<4λi+1+3μi+1, two buffer spaces in the BM linking Ci and Ci+1 are necessary to find a one-wafer cyclic schedule with cycle time π for Ci.
With cycle time being π, one has τi(b[i])=π−(4λi+3μi+ω(i)(b[i]−1)). This means that τi(b[i]) decreases as ω(i)(b[i]−1) increases. It follows from Theorem 4.1 that, to obtain a one-wafer cyclic schedule with cycle time π for a K-cluster tool, it is desired to schedule the individual tools such that τi(b[i]) is as large as possible, i.e., ω(i)(b[i]−1) is as small as possible. Since ψi2=π−ψi1=Σj=0n[i]ωij, if one sets ωi(n[i])=ψi2, one has ω(i)(b[i]−1)=0 and τi(b[i])=π−(4λi+3μi) is maximized. One has the following result.
Theorem 4.3: For a process-dominant K-cluster tool, if τi(b[i])<4λi+1+3μi+1 and the BM linking Ci and Ci+1 has two buffer spaces, by setting ω(i+1)(n[i+1])=ψ(i+1)2, both Ci and Ci+1 can be scheduled with cycle time π such that ti(b[i]), ui(b[i]), t(i+1)0, and u(i+1)0 can fire whenever they are scheduled to fire.
Proof: Just as the proof of Theorem 4.2, the firing of ti(b[i]) ends at φ1, ui(b[i]) fires at time φ2=φ1+τi(b[i])=φ1+π−(4λi+3μi+ω(i)(b[i]−1)), and the firing of t(i+1)0 ends at φ3. One has φ2=φ1+τi(b[i])<φ1+4λi+1+3μi+1<φ1+4λi+1+3μi+1+ψ(i+1)2=φ3, or φ2<φ3. This implies that t(i+1)0 can fire as scheduled. After firing ui(b[i]) in Ci, ti(b[i]) fires again and this firing ends at φ4=φ1+π such that a token enabling u(i+1)0 enters pi(b[i]) (p(i+1)0). Since Ci+1 is also scheduled with cycle time π, u(i+1)0 is scheduled to fire again at φ1+π. At this time there is already a token that enables u(i+1)0 there. Thus, it can fire and the theorem holds.
By Theorem 4.3, if two buffer spaces should be configured for the BM linking Ci−1 and Ci, one can find a one-wafer schedule for Ci with cycle time π by setting ωi(n[i])=ψi2. By doing so, τi(b[i])=π−(4λi+3μi) is maximized. Then, let Λi=τi(b[i])=π−(4λi+3μi) and one has the following result.
Theorem 4.4: For a process-dominant K-cluster tool, if τ(i−1)(b[i−1])<4λi+3μi and Λi<4λi+1+3μi+1, a one-wafer cyclic schedule with cycle time π can be obtained for Ci such that ti0, ui0, ti(b[i]), and ui(b[i]) can fire whenever they are scheduled to fire if and only if there are two buffer spaces in both BMs that link Ci−1 and Ci, and Ci and Ci+1.
Proof Necessity: By τ(i−1)(b[i−1])<4λi+3μi, it follows from Corollary 4.2 that the BM linking Ci−1 and Ci must have two buffer spaces to obtain such a schedule for Ci. With two buffer spaces in the BM linking Ci−1 and Ci, it follows from Theorem 4.3 that Ci can be scheduled by setting ωi(n[i])=ψi2. With ωi(n[i])=ψi2, one has Λi=τi(b[i])=π−(4λi+3μi) such that one cannot make τi(b[i])≧4λi+1+3μi+1 true. Then, by Corollary 4.2, two buffer spaces in the BM linking Ci and Ci+1 are necessary.
Sufficiency: This can be shown from Theorem 4.3 directly.
Theorem 4.4 presents the conditions under which two consecutive BMs need two buffer spaces to obtain a one-wafer cyclic schedule with cycle time π . It follows from Theorem 4.4 that one has the following corollary.
Corollary 4.3:For a process-dominant K-cluster tool, if τ(i−1)(b[i−1])<4λi+3μi and Λi≧4λi+1+3μi+1, a one-wafer cyclic schedule with cycle time π can be obtained for Ci such that ti0, ui0, ti(b[i]), and ui(b[i]) can fire whenever they are scheduled to fire if and only if there are two buffer spaces in the BM that links Ci−1 and Ci, and there is one buffer space in the BM that links Ci and Ci+1.
When there are two buffer spaces in the BM linking Ci−1 and Ci, one can set ωi(n[i])=ψi2 such that τi(b[i])=Λi=π−(4λi+3μi), the largest value. In this way, one makes τi(b[i])≧4λi+1+3μi+1 easier to be satisfied. Hence, only a few BMs that need two buffer spaces. Up to now, one has presented the conditions for obtaining a one-wafer cyclic schedule with cycle time π. Based on the results, then one can discuss how to schedule the system and configure the buffer spaces next.
C.2 Scheduling and Buffer Space Configuration Algorithm
In the last section, one presents the conditions for scheduling an individual tool to obtain a one-wafer cyclic schedule with the lower bound of cycle time π. Since there are multiple robots in a K-cluster tool, the key is to coordinate their activities in accessing BMs. To do so, one schedules individual tools from Ci to CK one by one by using the method given in Section A. In this process, the conditions obtained in the last section are applied such that the buffer spaces are optimally configured.
Since the K-cluster tool discussed here is process-dominant, one has or π≧πi, or π≧ψi1, i∈K, and ψi2=π−ψi1≧0. Let Bi−1 be the number of buffer spaces in the BM linking Ci−l and Ci. Then, the system can be scheduled and, at the same time, the buffer spaces can be configured as follows. For C1, since the loadlocks are not shared with any other tool, one sets ω1(n[1])=πψ11=ψ12 such that ω1j=0, j∈n[1]\{n[1]}. In this way, a one-wafer cyclic schedule with cycle time π is obtained. With ω1(b[1]−1)=0, τ1(b[1])=Λ1 is maximized such that the BM linking C1 and C2 needs the minimal number of buffer spaces.
Then, for C2, according to the discussion in the last section, one checks if Λ1≧4λ2+3μ2 is satisfied. If so, set B1=1 and ω2(n[2])=Λ14λ2+3μ2 and ω2j, j∈n[2]\{b[2]−1, n[2]}, as large as possible such that ω2(j−1)≦π−α2j−4λ2+3μ2. Then, set ω2(b[2]−1)=ψ22−Σj=0b[2]−2ω2j−Σj=b[2]n[2]ω2j such that ω2(b[2]−1) is as small as possible and τ2(b[2])=π−(4λ2+3μ2+ω2(b[2]−1)) is as large as possible. In this way, a one-wafer cyclic schedule with cycle time π is obtained for C2. If Λ1≧4λ2+3μ2 is not satisfied, set B1=2, ω2(n[2])=ψ22, and τ2(b[2])=Λ2 to obtain a one-wafer cyclic schedule with cycle time π. For Ci, i∈K−1\{1, 2}, with τ(i−1)(b[i−1]) obtained for scheduling Ci−1, do the same for scheduling C2 to set the number of buffer spaces Bi and obtain the one-wafer cyclic schedule with cycle time π.
For CK, one assigns each ωKj, j∈n[k]. If τ(K−1)(b[k−1])≧4λK+3μK+ωK(n[k]) is satisfied, set BK−1=1, otherwise set BK−1=2 such that cycle time π can be reached. In this way, a one-wafer cyclic schedule with cycle time π for a K-cluster tool can be obtained and the buffer spaces are configured. This process is summarized into Algorithm 4.1.
Algorithm 4.1: Find the optimal one-wafer cyclic schedule and optimal buffer configuration for K-cluster tool.
Input: αij, λi, μi, i∈K, j∈n[i]
Output: ωij, i∈K, j∈n[i]; Bi, i∈K−1 
i)




  
    Let
    ⁢
    
      
    
    ∏
  
  =
  
    
      
        max
        
          1
          ≤
          i
          ≤
          K
        
      
      ⁢
      
        
          (
          
            π
            i
          
          )
        
        ⁢
        
          
        
        ⁢
        and
        ⁢
        
          
        
        ⁢
        
          B
          i
        
      
    
    =
    1
  




ii) Determine ω1j, j∈n[1] for R1 as

    
    
        1) For j←0 to n[1]−1 do
        2) ω1j←0
        3) end
        4) ω1(n[1])←π−2(n[1]+1)(λ1+μ1)
        5) τ1(b[1])←π−(4λ1+3μ1)

iii) Determine Bi−1, ωij for Ci, 2≦i≦K−1, j∈n[i] as

        1) For i=2 to ≦K−1 do
        2) If τ(i−1)(b[i−1])<4λi+3μi then
        3) Bi−1←Bi−1+1
        4) For j←0 to n[i]−1 do
        5) ωij←0
        6) End
        7) ωi(n[i])←π−2(n[i]+1)(λi+μi)
        8) τi(b[i])←π−(4λi+3μi)
        9) Else
        10) ωi(n[i])←min{τ(i−1)(b[i−1])−(4λi+3μi), π−2(n[i]+1)(λi+μi)}
        11) For j←0 to n[i]−1 and j≠b[i]−1 do
        12) ωij←min{π−(4λi+3μi+αi(j+1)), π−2(n[i]+1)(λi+μi)−Σd=0j−1ωid−ωi(n[i])}
        13) End
        14) ωi(b[i]−1)=π−{2(n[i]+1)(λi+μi)+Σj=0b[i]−2ωij+Σj=b[i]n[i]ωij}
        15) τi(b[i])←π−(4λi+3μi+ωi(b[i]−1))
        16) End

iv) Determine BK−1, j∈n[K] for RK as.

        1) For j←0 to n[K]−1 do
        2) ωKj←min{π−(4λK+3μK+αK(j+1)), π−2(n[K]+1)(λK+μK)−Σd=0j−1ωKd}
        3) End
        4) ωK(n[K])←π−2(n[K]+1)(λK+μK)−Σd=0n[K]−1ωKd 
        5) If τ(k−1)(b[k−1])<4λk+3μk+ωK(n[K]) 
        6) BK−1←BK−1+1
        7) End and return Bi, i∈K−1 
    
    


By examining Algorithm 4.1, it is known that, to find a one-wafer cyclic schedule with cycle time π for a process-dominant K-cluster tool and configure the buffer spaces, only simple calculations are involved. Thus, the algorithm is very efficient. Since π is the lower bound of cycle time, the obtained schedule is optimal in terms of productivity. One has the following result.
Theorem 4.5: The buffer space configuration obtained by Algorithm 4.1 is optimal.
Proof: Since only when τi(b[i])<4λi+1+3μi+1, Bi is set to be Bi=2, otherwise, it is set to be Bi=1. Thus, if the number of BMs that need two buffer spaces is minimized, the buffer space configuration is optimal. By Algorithm 4.1, τi(b[i]) is made to be as small as possible such that the number of cases with τi(b[i])<4λi+1+3μi+1 is minimized, leading to that the configuration is optimal.
C.3 Schedule Implementation
As discussion above, the schedule of a K-cluster tool obtained by Algorithm 4.1 is just for a steady-state. Since there is an initial transient process before a steady-state is reached. As shown in Section A, a system can reach its steady state from initial marking M0 with all tokens in the system being virtual ones. Note that, in Section A, one sets M0(pi(b[i]))=0(M0(p(i+1)0)=0), i∈K−1. With such M0, the obtained schedule cannot be realized. To realize the obtained schedule, one needs to change M0 by putting V0 tokens in the system as follows. For a BM linking Ci and Ci+1, i∈K−1, if Bi=1, set M0(pi(b[i]))=0 (M0(p(i+1)0)=0); if Bi=2, set M0(pi(b[i]))=1 (M0(p(i+1)0)=1) such that the token has color ci(b[i]), or it enables ui(b[i]). Then, starting from M0, the system evolves just as in the steady state as follows. Whenever a token enters qij, i∈K and j∈n[i], it stays in qij for ωij time units as scheduled and every time u10 fires, a token W representing a real wafer is unloaded from p10. When all virtual tokens V0 are removed from the system, the system reaches its steady-state and it operates just as scheduled.
D. Illustrative Examples
In this section, one uses two examples to illustrate the applications of the proposed method.
Example 1
This is a 3-cluster tool from [Chan et al., 2011b]. The activity time is as, for C1, α10=0 (the loadlocks), α11=34 s, α12=0 (BM1), α13=31 s, α14=4 s, λ1=10 s, and μ1=1 s; for C2, α20=0 (BM1), α21=82 s, α22=0 (BM2), α23=54 s, α24=12 s, λ2=7 s, and μ2=1 s; and for C3, α30=0 (BM2), α31=54 s, α32=38 s, α33=91 s, α34=90 s, λ3=3 s, and μ3=1 s. It is solved with one-space BM in [Chan et al., 2011b] and a multi-wafer cyclic schedule is obtained with cycle time 114.8 s.
For C1, one has ζ10=α10+4λ1+3μ1=0+4×10+3×1=43 s, ζ11=α11+4λ1+3μ1=34+4×10+3×1=77 s, ζ12=43 s, ζ13=74 s, ζ14=47 s, and ψ11=2(n[1]+1)(μ1+λ1)=2×(4+1)×(10+1)=110 s. Hence, π1=110, and C1 is transport-bound. For C2, one has ζ20=α20+4λ2+3μ2=ζ22=α22+4λ2+3μ2=0+4×7+3×1=31 s, ζ21=113 s, ζ23=85 s, ζ24=43 s, and ψ21=2(n[2]+1)(μ2+λ2)=2×(4+1)×(7+1)=80 s. Hence, π2=113, and C2 is process-bound. For C3, one has ζ30=α30+4λ3+3μ3=0+4×3+3×1=15 s, ζ31=69 s, ζ32=53 s, ζ33=106 s, ζ34=105 s, and ψ31=2(n[3]+1)(μ3+λ3)=2×(4+1)×(3+1)=40 s. Hence, π3=106 s, and C3 is process-bound too. Because π2>π1>π3 and C2 is process-bound, the 3-cluster tool is process-dominant and the lower bound of cycle time is η1=η2=η3=π=π2=113 s.
By the proposed method, one has ψ12=π−ψ11=3 s, ψ22=π−ψ21=33 s, and ψ32=π−ψ31=73 s. By Algorithm 4.1, a one-wafer cyclic schedule is obtained by setting the ωij's as: for C1, ω10=ω11=ω12=ω13=0 s, ω14=3 s, and τ12=π−(4λ1+3μ1)=113−43=70 s; for C2, ω20=ω21=ω22=ω23=0 s, ω24=33 s, and τ22=π−(4λ2+3μ2)=113−31=82 s; and for C3, ω30=44 s, ω31=29 s, ω32=ω33=ω34=0 s. Since τ12=70>(4λ2+3μ2)=31 and τ22=82>(4λ3+3μ3)+ω34=15, one does not need additional buffer space for both BMs. In this way, a one-wafer schedule is found with the cycle time 113 s instead of a multi-wafer schedule with cycle time 114.8 s as obtained in [Chan et al., 2011b].
Example 2
In a 3-cluster tool, the activity time is as: for C1, α10=0 (the loadlocks), α11=75 s, α12=0 (BM1), α13=70 s, λ1=10 s, and μ1=5 s; for C2, α20=0 (BM1), α21=0 s (BM2), α22=7 s, λ2=20 s, and μ2=1 s; and for C3, α30=0 (BM2), α31=5 s, α32=100 s, λ3=5 s, and μ3=1s.
For C1, one has ζ10=α10+4λ1+3μ1=0+4×10+3×5=55 s, ζ11=α11+4λ1+3μ1=75+55=130 s, ζ12=α12+4λ1+3μ1=0+55=55 s, ζ13=α13+4λ1+3μ1=70+55=125 s, and ψ11=2(n[1]+1)×(λ1+μ1)=2(3+1)×(10+5)=8×15=120 s, or C1 is process-bound and π1=130 s. For C2, one has ζ20=α20+4λ2+3μ2=0+4×20+3×1=83 s, ζ21=α21+4λ2+3μ2=0+83=83 s, ζ22=α22+4λ2+3μ27+83=90, and ψ21=2(n[2]+1)×(λ2+μ1)=2(2+1)×(20+1)=6×21=126 s, or C2 is transport-bound and π2=126 s. For C3, one has ζ30=α30+4λ3+3μ3=0+4×5+3×1=23 s, ζ31=α31+4λ3+3μ3=5+23=28 s, ζ32=α32+4λ3+3μ3=100+23=123 s, and ψ31=2(n[3]+1)×(λ3+μ3)=2(2+1)×(5+1)=36, or C3 is also process-bound and π3=123 s. Since π=π1=130 s>π2=126 s>π3=123 s and C1 is process-bound, this 3-cluster tool is process-dominant. One needs to schedule the system such that η1=η2=η3=π=π1=130 s.
By the proposed method, one has ψ12=130−ψ11=130−120=10 s, and ψ22=130−ψ21=130−126=4 s, and ψ32=130−ψ31=130−36=94 s. By Algorithm 4.1, for C1, one has ω10=ω11=ω12=0 s, ω13=10 s, τ12=π−(4λ1+3μ1)=130−55=75 s. Then, one has τ12=75<4λ2+3μ2=83. This implies that, to obtain a one-wafer cyclic schedule with cycle time 130, two buffer spaces should be configured for BM1. With two buffer spaces in BM1, ω2(n[2])=ψ22=4 s is set. Hence, by Algorithm 4.1, for C2, one has ω20=ω21=0 s, ω22=4 s, and τ21=π−(4λ2+3μ2)=130−(4×20+3×1)=47 s. For C3, by Algorithm 4.1, one has ω30=94 s, ω31=ω32=0 s. Since τ21=47>4λ3+3μ3+ω32=23, no additional buffer space for BM2 is needed and a one-wafer cyclic schedule with cycle time 130 s, the lower bound, is obtained.
It is complicated to schedule a multi-cluster tool. Since a one-wafer cyclic schedule is easy to implement and understand by practitioners, it is highly desirable to obtain such a schedule. Productivity is among the most important performance goals for a semiconductor manufacturer. It is known that the number of buffer spaces in a BM has effect on the performance of a multi-cluster tool. For a single-arm multi-cluster tool whose bottleneck tool is process-bound, the present invention investigates how to configure buffer spaces for its buffering modules to obtain one-wafer cyclic schedule such that the lower bound of cycle time is reached. To solve this problem, a PN model is developed for a K-cluster tool with a linear topology by extending the resource-oriented Petri net. Based on this model, the necessary and sufficient conditions under which a one-wafer cyclic schedule with the lower bound of cycle time are established such that the minimal number of buffer spaces for the buffering modules is configured. Based on the derived conditions, an algorithm is presented to find such a schedule and configure the buffer spaces optimally. This algorithm is computationally efficient. An effective method is also proposed to implement the obtained schedule.
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.
In some embodiments, the present invention includes computer storage media having computer instructions or software codes stored therein which can be used to program computers or microprocessors to perform any of the processes of the present invention. The storage media can include, but is not limited to, floppy disks, optical discs, Blu-ray Disc, DVD, CD-ROMs, and magneto-optical disks, ROMs, RAMs, flash memory devices, or any type of media or devices suitable for storing instructions, codes, and/or data.
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.

## Claims

1. A computer implemented method for scheduling single-arm multi-cluster tools with optimal buffer space configuration, comprising:
obtaining, by a processor, a wafer processing time, a robot wafer loading and unloading time, and a robot moving time;
calculating, by a processor, a shortest time for completing a wafer based on the wafer processing time, the robot wafer loading and unloading time, and the robot moving time;
calculating, by a processor, a robot cycle time based on the robot wafer loading and unloading time, and the robot moving time;
determining, by a processor, a fundamental period based on selecting a maximum value among the shortest time for completing the wafer and the robot cycling time;
determining, by a processor, a type of cluster tool by:
if the fundamental period is a value of the shortest time for completing the wafer, the type of cluster tool is process-bound;
otherwise the type of cluster tool is a transport-bound;

determining, by a processor, the multi-cluster tools to be process-bound, or transport-bound based on the type of cluster tool having a maximum value of the fundamental period;
determining, by a processor, a lower bound of cycle time based on the maximum value of the fundamental period;
determining, by a processor, an algorithm for scheduling and buffer space configuration based on a petri net model; and
calculating, by a processor, a robot waiting time based on the algorithm;
calculating, by a processor, a wafer sojourn time based on the algorithm and the lower bound of cycle time;
determining, by a processor, a buffer space for buffer module based on the wafer sojourn time and the robot waiting time; and
obtaining, by a processor, a schedule based on the buffer space for buffer module and the lower bound of cycle time.

2. The method of claim 1, wherein the shortest time for completing the wafer is calculated by:


ζij=αij+4λi+3μi,i∈K and j∈n[i]

ζij denotes a shortest time for completing a wafer for a cluster tool i at step j;
αij denotes a wafer processing time for a cluster tool i at step j;
λi denotes a robot wafer loading and unloading time for a cluster tool i;
μi denotes a robot moving time for a cluster tool i;
K denotes a total number of cluster tools; and
n[i] denotes a total number of steps for a cluster tool i.

3. The method of claim 1, wherein the robot cycle time is calculated by:


ψi=2(n[i]+1)(λi+μi)+Σj=0n[i]ωij,i∈K 

ψi denotes a robot cycle time for a cluster tool i;
λi denotes a robot wafer loading and unloading time for a cluster tool i;
μi denotes a robot moving time for a cluster tool i;
Σj=0n[i]ωij denotes a waiting time in a cycle for a cluster tool i; and
K denotes a total number of cluster tools.

4. The method of claim 1, wherein the fundamental period is determined by:


πi=max{ζi0,ζi1, . . . ,ζi(n[i]),ψi1}

πi denotes a fundamental period for a cluster tool i;
ζi0, ζi1, . . . , ζi(n[i]) denote shortest times for a cluster tool i at different steps; and
ψi1 denotes a robot cycle time for a cluster tool i.

5. The method of claim 1, wherein the maximum value of the fundamental period π is determined by:


π=max{π1,π2, . . . ,πK}

π1, π2, . . . , πK denote different fundamental periods for different cluster tools.

6. A non-transitory computer-readable medium whose contents cause a computing system to perform a computer implemented method for scheduling single-arm multi-cluster tools with optimal buffer space configuration, the method comprising:
obtaining, by a processor, a wafer processing time, a robot wafer loading and unloading time, and a robot moving time;
calculating, by a processor, a shortest time for completing a wafer based on the wafer processing time, the robot wafer loading and unloading time, and the robot moving time;
calculating, by a processor, a robot cycle time based on the robot wafer loading and unloading time, and the robot moving time;
determining, by a processor, a fundamental period based on selecting a maximum value among the shortest time for completing the wafer and the robot cycling time;
determining, by a processor, a type of cluster tool by:
if the fundamental period is a value of the shortest time for completing the wafer, the type of cluster tool is process-bound;
otherwise the type of cluster tool is a transport-bound;

determining, by a processor, the multi-cluster tools to be process-bound, or transport-bound based on the type of cluster tool having a maximum value of the fundamental period;
determining, by a processor, a lower bound of cycle time based on the maximum value of the fundamental period;
determining, by a processor, an algorithm for scheduling and buffer space configuration based on a petri net model; and
calculating, by a processor, a robot waiting time based on the algorithm;
calculating, by a processor, a wafer sojourn time based on the algorithm and the lower bound of cycle time;
determining, by a processor, a buffer space for buffer module based on the wafer sojourn time and the robot waiting time; and
obtaining, by a processor, a schedule based on the buffer space for buffer module and the lower bound of cycle time.

7. The non-transitory computer-readable medium of claim 6, wherein the shortest time for completing the wafer is calculated by:


ζij=αij+4λi+3μi,i∈K and j∈n[i]

ζij denotes a shortest time for completing a wafer for a cluster tool i at step j;
αij denotes a wafer processing time for a cluster tool i at step j;
λi denotes a robot wafer loading and unloading time for a cluster tool i;
μi denotes a robot moving time for a cluster tool i;
K denotes a total number of cluster tools; and
n[i] denotes a total number of steps for a cluster tool i.

8. The non-transitory computer-readable medium of claim 6, wherein the robot cycle time is calculated by:


ψi=2(n[i]+1)(λi+μi)+Σj=0n[i]ωij,i∈K 

ψi denotes a robot cycle time for a cluster tool i;
λi denotes a robot wafer loading and unloading time for a cluster tool i;
μi denotes a robot moving time for a cluster tool i;
Σj=0n[i]ωij denotes a waiting time in a cycle for a cluster tool i; and
K denotes a total number of cluster tools.

9. The non-transitory computer-readable medium of claim 6, wherein the fundamental period is determined by:


πi=max{ζi0,ζi1, . . . ,ζi(n[i]),ψi1}

πi denotes a fundamental period for a cluster tool i;
ζi0, ζi1, . . . , ζi(n[i]) denote shortest times for a cluster tool i at different steps; and
ψi1 denotes a robot cycle time for a cluster tool i.

10. The non-transitory computer-readable medium of claim 6, wherein the maximum value of the fundamental period π is determined by:


π=max{π1,π2, . . . ,πK}

π1, π2, . . . , πK denote different fundamental periods for different cluster tools.