US20260048477A1
2026-02-19
18/889,779
2024-09-19
Smart Summary: A method helps manage the timing of different steps in a system that processes materials. It looks at how long each step takes and finds the longest one. Based on this longest duration, it calculates a speed for the whole system. Then, it makes sure that multiple materials are fed into the system one after the other at this calculated speed. This way, all materials are processed efficiently and in order. 🚀 TL;DR
A method includes determining durations of a plurality of processes in a sequence of processes to be performed by a substrate processing system. Each process is performed by a subsystem of the substrate processing system. The method further includes determining a duration for a process of the plurality of processes that is a longest duration among the durations. The method further includes calculating a pace for the substrate processing system based at least in part on the determined first duration. The method further includes causing multiple substrates to be introduced sequentially into the substrate processing system at the calculated pace for execution of the first sequence of processes with respect to each of the multiple substrates.
Get notified when new applications in this technology area are published.
B24B51/00 » CPC main
Arrangements for automatic control of a series of individual steps in grinding a workpiece
B24B37/005 » CPC further
Lapping machines or devices; Accessories Control means for lapping machines or devices
This application claims the benefit of U.S. Provisional Application No. 63/683,853, filed Aug. 16, 2024, the contents of which are incorporated by reference herein in their entirety.
The present disclosure relates to control in manufacturing systems, such as substrate processing systems, and in particular to pace control for substrate processing operations.
Products are produced by performing one or more manufacturing processes using manufacturing equipment. For example, substrate processing equipment is used to process substrates by transporting substrates to processing chambers and performing processes on the substrates in the processing chambers. Many different processes may be performed on substrates in a sequence. Scheduling of when to perform specific processes on individual substrates can be challenging.
The following is a simplified summary of the disclosure in order to provide a basic understanding of some aspects of the disclosure. This summary is not an extensive overview of the disclosure. It is intended to neither identify key or critical elements of the disclosure, nor delineate any scope of the particular implementations of the disclosure or any scope of the claims. Its sole purpose is to present some concepts of the disclosure in a simplified form as a prelude to the more detailed description that is presented later.
In an aspect of the disclosure, a method includes determining durations of a plurality of processes in a sequence of processes to be performed by a substrate processing system. Each process of the plurality of processes is performed by a subsystem of the substrate processing system. The method further includes determining a duration for a process of the plurality of processes that is a longest duration among the durations of the plurality of processes. The method further includes calculating a pace for the substrate processing system based at least in part on the determined duration. The method further includes causing multiple substrates to be introduced sequentially into the substrate processing system at the calculated pace for execution of the sequence of process operations with respect to each of the multiple substrates.
In another aspect of the disclosure, a system includes a substrate processing system. The substrate processing system includes at least one substrate polishing subsystem to perform substrate polishing processes. The substrate processing system further includes at least one substrate cleaning subsystem to perform substrate cleaning processes. The substrate processing system further includes at least one substrate transfer subsystem to perform substrate transfer processes. The system further includes a memory and a processing device operatively coupled with the memory. The processing device is configured to determine durations of a plurality of processes in a sequence of processes to be performed by the substrate processing system. Each of the plurality of processes is performed by one or more of the at least one substrate polishing subsystem, the at least one substrate cleaning subsystem, or the at least one substrate transfer subsystem. The processing device is further configured to determine a duration for a process operation of the plurality of processes that is a longest duration among the durations of the plurality of processes. The processing device is further configured to calculate a pace for the substrate processing system based at least in part on the determined duration. The processing device is further configured to cause multiple substrates to be introduced sequentially into the substrate processing system at the calculated pace for execution of the sequence of processes with respect to the multiple substrates.
In a further aspect of the disclosure, a non-transitory machine-readable storage medium stores instructions which, when executed by a processing device, cause the processing device to perform operations. The operations include determining durations of a plurality of processes in a sequence of processes to be performed by a substrate processing system. Each process of the plurality of processes is performed by a subsystem of the substrate processing system. The operations further include determining a duration for a process of the plurality of processes that is a longest duration among the durations of the plurality of processes. The operations further include calculating a pace for the substrate processing system based at least in part on the determined duration. The operations further include causing multiple substrates to be introduced sequentially into the substrate processing system at the calculated pace for execution of the sequence of processes with respect to each of the multiple substrates.
The present disclosure is illustrated by way of example, and not by way of limitation in the figures of the accompanying drawings.
FIG. 1 is a block diagram illustrating an exemplary system architecture, according to certain embodiments.
FIG. 2 illustrates a data flow for calculating a processing system pace, according to certain embodiments.
FIG. 3 is a simplified schematic diagram of an exemplary substrate processing system, according to certain embodiments.
FIG. 4 is a block diagram illustrating pace control for a substrate processing system, according to certain embodiments.
FIGS. 5A-C are flow diagrams of methods associated with pace control for a substrate processing system, according to certain embodiments.
FIG. 6 is a block diagram illustrating a computer system, according to certain embodiments.
Described herein are technologies directed to pace control for substrate processing operations, such as in a substrate processing system. In some embodiments, pace control is performed to control the scheduling of when to perform particular operations on substrates in a substrate polishing system (e.g., that performs chemical mechanical planarization (CMP) and clean operations. However, technologies described in embodiments can be equally applied for other substrate processes and/or substrate processing systems, etc.
Products are produced by performing one or more manufacturing processes using manufacturing equipment. For example, substrate processing equipment is used to process substrates (e.g., wafers, semiconductors, glass panes, displays, etc.). A substrate processing system processes substrates based on a sequence recipe that includes different operations such as transfer operations (e.g., robots transporting substrates to different locations), processing operations (e.g., processing substrates in processing chambers), cleaning operations (e.g., cleaning the processing chamber after a processing operation), and/or the like. For example, in semiconductor processing, multi-layer features are fabricated on substrates using specific processing sequence recipes having multiple processing operations. In another example, substrates may be polished according to a polishing recipe and/or cleaned according to a cleaning recipe. The substrate processing system (e.g., cluster tool, CMP tool, etc.) may include multiple processing chambers and/or stations that may together perform a process sequence (e.g., sequence of process recipe operations completed in processing chambers and/or stations of the cluster tool) of a sequence recipe without removing the substrates from the processing environment (e.g., of the substrate processing system).
In some embodiments, for substrate polishing recipes, substrates are polished using equipment and/or chemicals in a polishing chamber. After polishing, the substrates may be transported to one or more cleaning chambers for execution of a cleaning recipe. Chemicals used in the polishing recipe may still be on the surface(s) of a substrate after the polishing recipe is complete and before the cleaning recipe has been performed. The chemicals may adversely affect the substrate when left on the substrate for too long. Therefore, transporting the substrate to the cleaning chamber(s) for execution of the cleaning recipe as soon as possible may be advantageous.
Conventionally, substrate transfer operations and processing operations occur as fast as the current state of subsystems (e.g., portions of the substrate processing system) allow without optimizing the usage of the subsystems for all tasks to complete the processing for all substrates. This causes the time that substrates remain at locations (e.g., remain in the processing chambers, queue times) to vary, which causes decreased quality of substrates, variation between substrates, wasted material, decreased yield, and the like. This also causes non-uniformity (e.g., inconsistency, un-uniform substrate surface properties) among the substrates. For example, in a wet substrate polishing recipe, substrates are polished using equipment and/or chemicals in a polishing chamber. After polishing, the substrates may be transported to one or more cleaning chambers for execution of a cleaning recipe. Chemicals used in the polishing recipe may still be on the surface(s) of the substrate after the polishing recipe and before the cleaning recipe. The chemicals may adversely affect the substrate by continuing to react with the substrate material(s). Therefore, transporting the substrate to the cleaning chamber(s) for execution of the cleaning recipe as soon as possible may be advantageous to reduce unwanted chemical reaction with the substrate. However, a cleaning process may take more time to complete than a polishing process. Accordingly, in traditional scheduling, a substrate may complete a polishing process and then become idle at a polishing station with chemicals still on the substrate while a cleaning station completes a cleaning process on another substrate. This causes a delay in performance of the cleaning process on the substrate to remove the chemicals applied during the polishing process, which adversely affects the substrate.
The devices, systems, and methods disclosed herein provide solutions to these and other shortcomings of conventional systems.
Disclosed herein is an algorithm and/or system to control substrate traffic in a substrate processing system (e.g., a substrate polishing platform, a substrate polishing system, etc.). In some embodiments, in a substrate processing system (e.g., such as a substrate polishing platform), polishing recipes and cleaning recipes may be executed. Each of the polishing recipes may include one or more polishing operations and each of the cleaning recipes may include one or more cleaning operations. Polishing recipes may be performed by one or more substrate polishing subsystems using polishing equipment and/or polishing chemicals. The polishing chemicals may be wet chemicals. Cleaning recipes may be performed by one or more substrate cleaning subsystems using cleaning equipment and/or cleaning solutions. The polishing chemicals may be cleaned from the surface(s) of the substrate during execution of cleaning recipe(s).
The algorithm and/or system disclosed herein may ensure substrate air time is controlled. Substrate “air time” may refer to the time between substrate polishing (e.g., wet polishing, etc.) and substrate cleaning. During substrate air time, chemicals from the polishing may still be on the substrate and may react with the substrate materials. Excessive air time may adversely affect the quality and/or condition of the substrate because of excess chemical reaction with the substrate. Reducing air time may reduce unwanted chemical reactions and may increase the quality and/or improve the condition of the substrate. Once the chemicals are cleaned from the substrate, such as during substrate cleaning, chemical reaction stops.
Once a polishing recipe is completed for a substrate, the substrate should be sent for cleaning as soon as possible to avoid the ill effects of continued chemical reaction (e.g., during substrate air time, etc.). However, downstream process(es) may form a bottleneck in the process flow. For example, a cleaning recipe may take longer to execute than the polishing recipe. Thus, a polished substrate may have to wait between the end of the polishing recipe and the beginning of the cleaning recipe. Waiting for the cleaning recipe to begin may contribute to excessive air time for the substrate as described above. The algorithm and/or system described in embodiments herein may pace the substrates in the processing system so that no substrate experiences excessive air time while transitioning (e.g., moving) from a polishing chamber to a cleaning chamber. Conventionally, pacing of the substrates in a processing system is computed and controlled manually. In some embodiments described herein, the substrate pacing is calculated and controlled automatically.
A system includes a substrate processing system. In some embodiments, the substrate processing system includes at least one substrate polishing subsystem to perform substrate polishing processes, at least one substrate cleaning subsystem to perform substrate cleaning processes, and/or at least one substrate transfer subsystem to perform substrate transfer processes. In some embodiments, a substrate polishing subsystem includes a polishing head disposed within a chamber. A substrate disposed on the polishing head may be polished according to a polishing recipe using polishing equipment and/or polishing chemical(s). In some embodiments, a substrate cleaning subsystem includes cleaning equipment disposed within a cleaning chamber. A substrate disposed within the cleaning chamber may be cleaned according to a cleaning recipe using cleaning equipment and/or cleaning solution(s).
The system may further include a memory and a processing device operatively coupled with the memory. The processing device may be a controller for the substrate processing system. The processing device may be configured to determine durations of a plurality of processes in a sequence of processes to be performed by the substrate processing system. Each process is to be performed by a subsystem of the substrate processing system. In some embodiments, the sequence of processes includes one or more polishing processes (e.g., of a polishing recipe), one or more cleaning processes (e.g., of a cleaning recipe), and/or one or more substrate transfer processes.
To determine the durations of processes and/or operations, a pilot substrate may be introduced into the substrate processing system. The pilot substrate may be introduced into the substrate processing system with a pre-pilot delay so that processing the pilot substrate does not conflict with processing the last substrate(s) of a previous group of substrates. The sequence of process operations may be performed with respect to the pilot substrate and the corresponding durations of each of the process operations may be measured. The measured durations may be stored. In some embodiments, the measured durations are compared to determine a longest duration. In some embodiments, the longest duration is identified by the comparison.
Upon determining the longest duration of a sequence of process operations, the processing device may calculate a pace for the substrate processing system based at least in part on the determined duration. The pace may be determined as the rate at which substrates can be introduced into the substrate polishing tool (e.g., from a front-opening unified pod (FOUP), etc.) so that no bottleneck occurs in the process flow. A bottleneck may occur when a downstream process has a longer duration than upstream process(es). For example, a cleaning operation may have a longer duration than a polishing operation immediately preceding the cleaning operation. A substrate that finishes the polishing operation may have to wait before the cleaning operation can begin. The pace may be determined so that a substrate can be moved directly from a polishing chamber (e.g., of a polishing subsystem, etc.) to a cleaning chamber (e.g., of a cleaning subsystem, etc.) without an excessive wait time (e.g., air time, etc.). The pace may be a rate, such as a rate of substrates per unit of time that can be introduced into the substrate processing system for processing.
In some embodiments, the pace is set based on a slowest or longest process and/or the slowest or longest substrate-handling time in a process sequence. The pace of the system may correspond to the maximum allowable pace for a polishing module of the system or the maximum allowable pace for a cleaning module of the system. The maximum allowable pace for a polishing module may correspond to the maximum allowable pace for a polishing chamber of the maximum allowable pace for a polishing robot (e.g., a substrate-handling robot associated with the polishing module). The maximum allowable pace for a cleaning module may correspond to the maximum allowable pace of a cleaning chamber or the maximum allowable pace for a cleaner robot (e.g., a substrate-handling robot associated with the cleaning module). The sum of the operation time for the polishing robot or for the cleaner robot corresponds to perform substrate pick and/or place operations may correspond to the maximum allowable pace for the robot. In some embodiments, the maximum allowable pace corresponds to the fastest pace at which the polishing module, cleaning module, polishing chamber, cleaning chamber, polishing robot, and/or cleaner robot can operate.
In embodiments, a processing device may cause multiple substrates to be introduced sequentially into the substrate processing system at the calculated pace (e.g., at the calculated rate, etc.) for execution of the sequence of processes with respect to each of the multiple substrates. For example, a first substrate may be caused to be introduced into the processing system at a first time, a second substrate may be caused to be introduced into the processing system at a later second time, a third substrate may be caused to be introduced into the processing system at a later third time, etc. according to the calculated pace. The second time differs from the first time substantially by the determined duration, and the third time differs from the second time substantially by the determined duration. In another example, where the calculated pace corresponds to one substrate every 30 seconds, a first substrate may be introduced into the processing system at time t=0 seconds, a second substrate may be introduced into the processing system at time t=30 seconds, a third substrate may be introduced into the processing system at time t=60 seconds, etc. After being introduced into the substrate processing system, each of the multiple substrates may be processed. For example, and in some embodiments, the sequence of process operations may be performed for each of the substrates, including one or more polishing processes and/or one or more cleaning processes. In some embodiments, where a cleaning operation has a longer duration than a polishing operation, the beginning of the polishing operation may be delayed so that the cleaning operation can begin substantially immediately after the polishing operation is complete.
Aspects of the present disclosure may result in technological advantages. By causing substrates to be introduced into the substrate processing system at the calculated pace, bottlenecks in the process flow can be avoided and thus substrates do not experience excessive air time. Thus, excessive chemical reaction does not occur to the substrates after execution of the polishing recipe (e.g., after performance of one or more polishing operations, etc.). This may cause increased quality of substrates, less variation between substrates, less wasted material, and increased yield compared to conventional solutions. This also causes increased uniformity among substrates compared to conventional solutions. Additionally, by calculating and setting pace automatically, human intervention (e.g., by engineers, technicians, etc.) is reduced, leading to more efficient processing of substrates. Additionally, the system can automatically calculate and set a new pace when a process recipe has been modified, compared to conventional solutions where human intervention may be needed.
Embodiments are described with reference to determining pacing for a sequence of processes associated with polishing of substrates. However, the embodiments described with reference to determining pacing for sequences of processes associated with polishing of substrates also apply to sequences of processes associated with other types of substrate processing, such as etching, deposition, oxidation, lithography, metrology, and so on.
FIG. 1 is a block diagram illustrating an exemplary system 100 (exemplary system architecture), according to certain embodiments. The system 100 includes a client device 120, processing equipment 124, sensors 126, and a data store 140.
In some embodiments, one or more of the client device 120, processing equipment 124, sensors 126, and/or data store 140 are coupled to each other via a network 130 to perform pace control. In some embodiments, network 130 is a public network that provides client device 120 with access to the data store 140 and other publicly available computing devices. In some embodiments, network 130 is a private network that provides client device 120 access to processing equipment 124, sensors 126, data store 140, and other privately available computing devices. In some embodiments, network 130 includes one or more Wide Area Networks (WANs), Local Area Networks (LANs), wired networks (e.g., Ethernet network), wireless networks (e.g., an 802.11 network or a Wi-Fi network), cellular networks (e.g., a Long Term Evolution (LTE) network), routers, hubs, switches, server computers, cloud computing networks, and/or a combination thereof.
In some embodiments, the client device 120 includes a computing device such as Personal Computers (PCs), laptops, mobile phones, smart phones, tablet computers, netbook computers, etc. Client device 120 may include an operating system that allows users to one or more of consolidate, generate, view, or edit data, etc. In some embodiments, client device 120 is a controller of processing equipment 124. In some embodiments, the client device 120 includes a pacing component 122.
In some embodiments, pacing component 122 receives user input (e.g., via a Graphical User Interface (GUI) displayed via the client device 120), receives process recipe data 142 (e.g., recipe and/or substrate transfer data from client device 120 and/or data store 140), and/or receives operation duration data 152, etc. In some embodiments, the pacing component 122 calculates one or more delays (e.g., a pre-pilot delay, a pre-production delay, etc.) and/or a system pace for processing substrates (e.g., for processing equipment 124 to process substrates). In some embodiments, pacing component 122 generates delay data 162 and/or pace data 172 based on the received process recipe data 142 and/or operation duration data 152 and causes substrates to be processed based on the delay data 162 and/or based on the pace data 172.
In some embodiments, the pacing component 122 stores data (e.g., user input, process recipe data 142, operation duration data 152, delay data 162, pace data 172, etc.) in the data store 140. In some embodiments, the pacing component 122 receives an indication of a calculated pace and/or a calculated delay (e.g., based on delay data 162 and/or the pace data 172) and causes substrates to be processed based on the calculated pace and/or with the calculated delay, etc. The pacing component 122 may calculate delays and/or a pace for each sequence of processes to be performed by the processing equipment 124. In some embodiments, when a new sequence of processes is to be performed for a new group of multiple new substrates, a new pace is calculated for the processing equipment 124 to process the new group of substrates. The pacing component may cause multiple new substrates to be processed at the new calculated pace.
In some embodiments, the pacing component 122 calculates a pace (e.g., for processing equipment 124) based on the process recipe data 142 and/or the operation duration data 152. The pacing component 122 may receive indications of one or more process recipes (e.g., indicated in process recipe data 142) and durations for operations for performing the process recipes (e.g., indicated in operation duration data 152). In some embodiments, the pacing component 122 receives polishing recipe data 144 and/or cleaning recipe data 146. Polishing recipe data 144 may be indicative of one or more polishing operations (e.g., to be performed by processing equipment 124) for executing a polishing recipe. Cleaning recipe data 146 may be indicative of one or more cleaning operations (e.g., to be performed by processing equipment 124) for executing a cleaning recipe.
Each of the operations indicated by the polishing recipe data 144 and the cleaning recipe data 146 may have measurable time durations. In some embodiments, the pacing component 122 generates the delay data 162 and/or the pace data 172 based on the time durations of the polishing operations and/or the cleaning operations. The time durations for each of the operations may be measured, such as by sensors 126. In some embodiments, during execution of the polishing operations and/or cleaning operations, sensors 126 can measure the time durations of the operations and may generate the operation duration data 152. Operation duration data 152 may include polishing operation data 154 indicative of durations of polishing operations and cleaning operation data 156 indicative of durations of cleaning operations.
The pacing component 122 may generate pace data 172 and/or delay data 162 based on the durations of the polishing and cleaning operations (e.g., indicated in the polishing operation data 154 and the cleaning operation data 156 respectively). Pace data 172 may be indicative of a calculated pace for processing equipment 124 to process substrates so that no bottleneck forms in the process flow. The calculated pace may correspond to a rate at which substrates can be sequentially introduced into the processing equipment 124 for processing. More details regarding the calculated pace are described herein.
Delay data 162 may be indicative of one or more calculated delays for processing equipment 124 to implement while processing substrates so that substrate process operations do not conflict and/or so that no substrate experiences undue air time. In some embodiments, delay data 162 includes pre-pilot delay data 164 and/or pre-production delay data 166. The pacing component 122 may calculate a pre-pilot delay and/or a pre-production delay based on the operation duration data 152 and/or the process recipe data 142 and may store the calculated delay(s) as delay data 162.
Pre-pilot delay data 164 may be indicative of a delay for a pilot substrate that is to be processed by the processing equipment 124. When a sequence of processes is to be performed using the processing equipment 124 and at least one of the processes has not been previously performed using the processing equipment 124 and/or if the duration of the process is unknown, a pilot substrate is introduced into the processing equipment 124 while a previous group of substrates is processed. The duration of the process may be measured (e.g., by sensors 126) so that the pace data 172 can be calculated. However, to avoid conflict between process operations for the pilot substrate and the previous group of substrates, the pacing component 122 may cause the pilot substrate to be delayed based on the pre-pilot delay data 164. Method(s) for determining pre-pilot delay are described herein below.
Pre-production delay data 166 may be indicative of a delay for a new group of substrates that are to be processed by the processing equipment 124. While processing equipment 124 finishes processing a previous group of substrates, processing the new group of substrates may be delayed according to the pre-production delay data 166 to avoid conflict between process operations for the new group of substrate and the old group of substrates. More details regarding the pre-pilot delay and the pre-production delay are described herein.
In some embodiments, the processing equipment 124 (e.g., cluster tool) is part of a substrate processing system (e.g., integrated processing system). The processing equipment 124 may include one or more of a controller, an enclosure system (e.g., substrate carrier, front opening unified pod (FOUP), substrate enclosure system, cassette, etc.), a side storage pod (SSP), an aligner device (e.g., aligner chamber), a factory interface (e.g., equipment front end module (EFEM)), a load lock, a transfer chamber, one or more processing chambers (e.g., one or more polishing chambers, one or more cleaning chambers, etc.), a robot arm (e.g., disposed in the transfer chamber, disposed in the front interface, etc.), and/or the like. The enclosure system, SSP, and/or load lock may mount to the factory interface and a robot arm disposed in the factory interface may transfer content (e.g., substrates) between the enclosure system, SSP, load lock, and factory interface. The aligner device may be disposed in the factory interface to align the content. The load lock and the processing chambers may mount to the transfer chamber and a robot arm disposed in the transfer chamber may transfer content (e.g., substrates, process kit rings, carriers, validation wafer, etc.) between the load lock, the processing chambers, and the transfer chamber. In some embodiments, the processing equipment 124 includes components of substrate processing systems. In some embodiments, the process recipe data 142 (e.g., recipe and/or substrate transfer data) include parameters of processes performed by components of the processing equipment 124 (e.g., etching, heating, cooling, transferring, processing, flowing, polishing, cleaning, etc.). More details regarding processing equipment are described herein, especially with respect to FIG. 3.
In some embodiments, the sensors 126 provide sensor data (e.g., sensor values, such as historical sensor values and current sensor values) associated with processing equipment 124. In some embodiments, the sensors 126 include one or more of an imaging sensor (e.g., camera, image capturing device, etc.), a pressure sensor, a temperature sensor, a flow rate sensor, a spectroscopy sensor, a time duration sensor (e.g., a clock or timer), and/or the like. In some embodiments, the sensor data used for equipment health and/or product health (e.g., product quality). In some embodiments, the sensor data is received over a period of time. In some embodiments, sensors 126 provide sensor data such as values of one or more of image data, leak rate, temperature, pressure, flow rate (e.g., gas flow), pumping efficiency, spacing (SP), High Frequency Radio Frequency (HFRF), electrical current, power, voltage, durations of process operations, and/or the like. In some embodiments, the operation duration data 152 is generated by the sensors 126.
In some embodiments, the data store 140 is memory (e.g., random access memory), a drive (e.g., a hard drive, a flash drive), a database system, or another type of component or device capable of storing data. In some embodiments, data store 140 includes multiple storage components (e.g., multiple drives or multiple databases) that span multiple computing devices (e.g., multiple server computers). In some embodiments, the data store 140 stores one or more of process recipe data 142 (e.g., recipe and/or substrate transfer data), operation duration data 152, delay data 162, and/or pace data 172.
In some embodiments, process recipe data 142 (e.g., recipe and/or substrate transfer data) includes polishing recipe data 144 and cleaning recipe data 146. In some embodiments, process recipe data 142 may include one or more of transfer operation data, processing operation data, cleaning operation data, and/or the like. In some embodiments, at least a portion of the process recipe data 142 is from client device 120, data store 140, and/or sensors 126.
In some embodiments, a “user” is represented as a single individual. However, other embodiments of the disclosure encompass a “user” being an entity controlled by a plurality of users and/or an automated source. In some examples, a set of individual users federated as a group of administrators is considered a “user.”
FIG. 2 illustrates a data flow 200 for calculating a processing system pace for performing a sequence of processes, according to certain embodiments. The system pace may be calculated based at least in part on durations of process operations. In some embodiments, operation duration data 152 includes indications of durations for multiple process operations. For example, and in some embodiments, operation duration data 152 includes polishing operation data 154 that is indicative of durations for multiple polishing operations and cleaning operation data 156 that is indicative of durations for multiple cleaning operations. A pace for a substrate processing system may be calculated based on the polishing operation data 154 and/or the cleaning operation data 156.
A polishing pace module 222 receives the polishing operation data 154. The polishing operation data 154 may include data indicative of durations for one or multiple polishing operations that are performed in sequence for substrates. An individual duration for each of the polishing operations may be included in the polishing operation data 154. The polishing pace module 222 may determine a longest duration among the durations contained in the polishing operation data 154. Upon identifying the longest duration, the polishing pace module 222 may calculate a corresponding pace for the longest duration. The calculated polishing pace may be a pace at which processing can occur according to the longest duration. For example, where the longest duration is 20 seconds, the calculated polishing pace may correspond to polishing three substrates per minute (e.g., processing three substrates per 60 second interval).
A cleaning pace module 224 receives the cleaning operation data 156. The cleaning operation data 156 may include data indicative of durations for one or multiple cleaning operations that are performed in sequence for subtrates. An individual duration for each of the cleaning operations may be included in the cleaning operation data 156.
The cleaning pace module 224 may determine a longest duration among the durations contained in the cleaning operation data 156. Upon identifying the longest duration, the cleaning pace module 224 may calculate a corresponding pace for the longest duration.
The calculated cleaning pace may be a pace at which processing can occur according to the longest duration. For example, where the longest duration is 30 seconds, the calculated cleaning pace may correspond to cleaning two substrates per minute (e.g., processing two substrates per 60 second interval).
The system pace module 232 receives the calculated polishing pace and the calculated cleaning pace from the polishing pace module 222 and the cleaning pace module 224 respectively. The system pace module 232 may compare the calculated polishing pace with the calculated cleaning pace to determine the slowest pace for a sequence of polishing operations and cleaning operations to be performed on substrates. Upon determining the slowest pace, the system pace module 232 outputs system pace data 240 indicative of a system pace. The system pace may correspond to the slowest calculated pace. In some embodiments, the processing of substrates (e.g., polishing and cleaning substrates, etc.) is caused to be performed at the system pace. For example, where the calculated polishing pace corresponds to polishing three substrates per minute and the calculated cleaning pace corresponds to cleaning two substrate per minute, the system pace module 232 determines the calculated cleaning pace is the slowest pace (e.g., 2 substrates per minute<three substrates per minute). The system pace module 232 determines the calculated cleaning pace is the fastest pace for the processing system so that a bottleneck does not form in the process flow and outputs a system pace corresponding to the calculated cleaning pace. Processing of substrates may then commence at the calculated cleaning pace (e.g., two substrates per minute).
FIG. 3 is a simplified schematic diagram of an exemplary substrate processing system 300, according to certain embodiments. In some embodiments, system 300 includes a factory interface such as an equipment front end module (EFEM) 310, a polishing module 320, and a cleaning module 330. Polishing module 320 may be a substrate polishing subsystem and may have one or more polishing chambers. Cleaning module 330 may be a substrate cleaning subsystem and may have one or more cleaning chambers.
Substrate carriers 312 carrying substrates 302 may dock to load ports of the EFEM 310. The substrates 302 may be carried in cassettes in the substrate carriers 312. An EFEM robot 314 may remove the substrates 302 from the carriers 312 and provide the substrates 302 to a cleaner pass-through station 332. In some embodiments, the EFEM robot 314 is a substrate-handling robot.
The EFEM robot 314 may remove the substrates 302 from the carriers 312 sequentially one-at-a-time according to a calculated pace for the system 300 as described herein. The cleaner pass-through station 332 may be a space where substrates 302 can pass through the cleaning module 330 to the polishing module 320. A cleaner robot 324 may receive the substrates 302 in the cleaner pass-through station 332 and may provide the substrates 302 to a polisher pass-through station 322. In some embodiments, the cleaner robot 334 is a substrate-handling robot. A polisher robot 324 may receive the substrates 302 in the polisher pass-through station 322 and may provide the substrates 302 to holding stations 326 within each of the polishing chambers. In some embodiments, the polisher robot 324 is a substrate-handling robot. The substrates 302 may be held on the holding stations 326 until a free space is made available on a polishing head 327. Once free space is made available on the polishing head 327, the substrate 302 is transferred to a platen 328 on the polishing head 327. The polishing head 327 may rotate so that the substrate 302 is disposed at a polishing station. The substrate 302 may then be polished.
In some embodiments, the polishing module 320 includes four polishing chambers, each with its own holding station 326 and polishing head 327. In some embodiments, each polishing head 327 includes two or more platens 328 (or one or more platens). For purposes of simplicity, only one platen 328 is illustrated for each of the polishing heads 327.
Once polished, a substrate 302 is transferred from a platen 328 on the polishing head 327 back to a holding station 326. The polished substrates 302 may have polishing chemicals disposed thereon. The polisher robot 324 may provide polished substrates 302 back to the polisher pass-through station 322. The cleaner robot 334 may provide the polished substrates 302 to one of the first cleaning chambers 336. The time a substrate 302 spends between polishing and cleaning in one of the first cleaning chambers 336 (e.g., including transport on one or more substrate-handling robots, etc.) may be referred to as “air time” as described herein. The substrates 302 may undergo at least a portion of a cleaning recipe (e.g., one or more cleaning operations, etc.) in a cleaning chamber 336. The polishing chemicals on the substrates 302 may be at least partially cleaned off of the substrates 302 in the cleaning chambers 336. In some embodiments, the substrates 302 are transferred to a second cleaning chamber 337 and/or a third cleaning chamber 338 for further cleaning. The substrates 302 may be transferred to the second and/or third cleaning chambers by the cleaner robot 334. A series of cleaning chambers 336, 337, and/or 338 may form a cleaning lane. In some embodiments, cleaning module 330 includes two cleaning lanes. In some embodiments, durations of cleaning operations performed in each of the cleaning chambers 336, 337, and/or 338 are determined for each lane. For example, and in some embodiments, first durations for processes performed in a first lane of cleaning chambers 336, 337, and/or 338 are determined, and second durations for processes performed in a second lane of cleaning chambers 336, 337, and/or 338 are determined.
The cleaned substrates 302 may be provided back to the EFEM robot 314. The EFEM robot 314 may load the polished and cleaned substrates 302 into the substrate carriers 312. The polishing operations and/or cleaning operations performed with respect to the substrates 302 may make up a sequence of process operations.
FIG. 4 is a block diagram 400 illustrating pace control for a substrate processing system, according to certain embodiments. In substrate processing, a “process job” may refer to processing a group of substrates (e.g., a lot of substrates, etc.) according to a set of process recipes. Multiple process jobs may be run using the same processing system, such as a polishing tool (e.g., a substrate polishing system, etc.). The process jobs may be run sequentially, one after the other. A prior production run 410 for a prior process job may be run before a new process job 412 commences. In embodiments, the new process job may include one or more different process recipes than the second process job. Accordingly, one or more process operations of the second process job may take a different amount of time to complete than process operations of the first process job. The new process job 412 may include a sequence of process operations (e.g., polishing operations of a polishing recipe, cleaning operations of a cleaning recipe, etc.) that have currently unknown durations. The sequence of operations may include a polishing process followed by a cleaning process. The unknown durations of the sequence of process operations may be measured before the production run 450 for the new process job 412 can commence so that the pace for the new process job 412 can be calculated to avoid any bottlenecks in the process flow that may cause excessive substrate air time.
In some embodiments, processing logic determines that one or more processes of a sequence of processes have not previously been executed by the substrate processing system, and therefore the durations for the one or more processes are unknown. To determine the unknown durations, a pilot substrate run 430 is performed where one or more pilot substrates are introduced into the processing system for performance of the sequence of operations (e.g., execution of polishing and/or cleaning recipes, etc.) with respect to the pilot substrates. However, the pilot substrates are introduced into the processing system after a pre-pilot delay 420 between the prior process job production run 410 and the pilot substrate run 430. In some embodiments, the prior process job production run 410 completes during the pre-pilot delay 420 and the pilot substrate run 430. The pre-pilot delay is calculated 425 so that processing of the one or more pilot substrates does not conflict with processing the last substrate of the prior process job. The pre-pilot delay may be calculated by determining how long the one or more pilot substrates are to wait so that processing the one or more pilot substrates does not conflict with processing the last substrate of the prior process job. In this way, the pilot substrates will be unobstructed during processing and will not be delayed in the process flow. After the pre-pilot delay 420, the pilot substrate run 430 can commence.
During the pilot substrate run 430, each of the process operations of a production run are performed on a substrate in sequence, and durations for process operations that have not previously been run on the system are measured. A duration may include time for loading the substrate into a chamber, performing the process operation, and removing the substrate from the chamber. The measured durations may be stored, such as for later use, etc.
Once all the unknown durations have been measured (e.g., and are now known), a pre-production delay 440 can be calculated 445. The pre-production delay is calculated so that processing of the next substrate of the new process job 412 does not conflict with processing the last pilot substrate. Similarly, a new pace 455 is calculated for the new process job 412. The new pace may be calculated based on the longest duration of the process operations. For example, the new pace is calculated based on the longest of the polishing operation and/or the cleaning operations. The new pace may be calculated so that no bottleneck occurs in the process flow. In some embodiments, the new pace corresponds to the maximum rate supported by the longest duration. For example, where the longest duration for a process operation is 30 seconds, the pace may correspond to introducing a new substrate into the processing system for processing once every 30 seconds. After the pre-production delay 440, the new process job production run 450 can commence at the calculated new pace 455. Commencement of the new process job production run 450 may include causing multiple new substrates to be introduced sequentially into the substrate processing system. In some embodiments, the pilot substrate(s) are first new substrates of the multiple new substrates. For example, two pilot substrates may be the first two substrates of a lot of new substrates.
FIG. 5A is a flow diagram of a method 500A associated with pace control for a substrate processing system, according to certain embodiments. In some embodiments, method 500A is performed by processing logic that includes hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, processing device, etc.), software (such as instructions run on a processing device, a general purpose computer system, or a dedicated machine), firmware, microcode, or a combination thereof. In some embodiments, provided is a non-transitory machine-readable storage medium storing instructions that when executed by a processing device, cause the processing device to perform method 500A.
For simplicity of explanation, method 500A is depicted and described as a series of operations. However, operations in accordance with this disclosure can occur in various orders and/or concurrently and with other operations not presented and described herein. Furthermore, in some embodiments, not all illustrated operations are performed to implement method 500A in accordance with the disclosed subject matter. In addition, those skilled in the art will understand and appreciate that method 500A could alternatively be represented as a series of interrelated states via a state diagram or events.
At block 510, processing logic determines durations of a plurality of processes in a sequence of processes to be performed by a substrate processing system. Each process is performed by a subsystem of the substrate processing system. In some embodiments, the sequence of processes includes one or more polishing processes (e.g., of a polishing recipe), one or more cleaning processes (e.g., of a cleaning recipe), and/or one or more substrate transfer processes. In some embodiments, the substrate processing system includes one or more substrate polishing subsystems to perform the substrate polishing processes, one or more substrate cleaning subsystems to perform the substrate cleaning processes, and/or one or more substrate transfer subsystems to perform the substrate transfer processes.
At block 520, processing logic determines a duration for a process of the plurality of processes that is a longest duration among the durations of the plurality of processes. For example, and in some embodiments, among the durations of the sequence of processes, processing logic identifies the longest duration. The processing logic may identify the process corresponding to the longest duration.
At block 530, processing logic calculates a pace for the substrate processing system based at least in part on the determined duration. The calculated pace may correspond to a rate at which the substrate processing system can process substrates according to the longest process duration. For example, and in some embodiments, where the longest process duration is for a cleaning operation subsequent to a polishing operation, the pace is calculated so that a polished substrate does not need to wait before being cleaned. The pace may indicate how often a substrate can be processed. For example, where the longest process duration is 30 seconds, the pace may indicate that the system can process a substrate once every 30 seconds without undue substrate air time as described herein above.
At block 540, processing logic causes multiple substrates to be introduced sequentially into the substrate processing system at the calculated pace for execution of the sequence of processes with respect to each of the multiple substrates. The processing logic may cause a substrate-handling robot to retrieve the substrates sequentially from a substrate carrier and introduced into the processing system at the calculated pace. For example, where the pace indicates the system can process a substrate once every 30 seconds without undue substrate air time, processing logic may cause a substrate-handling robot to retrieve a first substrate from a substrate carrier at time t=0 seconds and introduce the first substrate into the processing system. At time t=30 seconds, the processing logic may cause the robot to retrieve a second substrate from the substrate carrier and introduce the second substrate into the processing system, etc. The multiple substrates may be processed sequentially as they are received.
FIG. 5B is a flow diagram of a method 500B associated with pace control for a substrate processing system, according to certain embodiments. In some embodiments, method 500B is performed by processing logic that includes hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, processing device, etc.), software (such as instructions run on a processing device, a general purpose computer system, or a dedicated machine), firmware, microcode, or a combination thereof. In some embodiments, provided is a non-transitory machine-readable storage medium storing instructions that when executed by a processing device, cause the processing device to perform method 500B.
For simplicity of explanation, method 500B is depicted and described as a series of operations. However, operations in accordance with this disclosure can occur in various orders and/or concurrently and with other operations not presented and described herein. Furthermore, in some embodiments, not all illustrated operations are performed to implement method 500B in accordance with the disclosed subject matter. In addition, those skilled in the art will understand and appreciate that method 500B could alternatively be represented as a series of interrelated states via a state diagram or events.
At block 550, processing logic determines that a duration of a polishing process is less than a duration of a cleaning process. Processing logic may make the determination based on comparing the duration of the cleaning process with the duration of the polishing process. For example, processing logic may determine that a 20 second duration of a polishing process is less than a 30 second duration of a cleaning process.
At block 560, processing logic determines a time delta between the duration of the polishing process and the duration of the cleaning process. In some embodiments, the processing logic calculates the difference between the durations. Continuing with the above example, processing logic may subtract 20 seconds (e.g., corresponding to the polishing process duration) from 30 seconds (e.g., corresponding to the cleaning process duration) and determine that the time delta is 10 seconds.
At block 570, processing logic delays a start of the polishing process by the time delta. By delaying the start of the polishing process by the time delta, a wait time between completion of the polishing process and beginning of the cleaning process is mitigated. Without delaying the start of the polishing process, the substrate would experience a ten second air time between completion of the polishing process and beginning of the cleaning process. The air time experienced by the substrate may cause errors or defects on the substrate as described herein above. In some embodiments, by delaying the start of the polishing process by the calculated time delta, the cleaning process can begin substantially immediately after the polishing process has completed.
FIG. 5C is a flow diagram of a method 500C associated with pace control for a substrate processing system, according to certain embodiments. In some embodiments, method 500C is performed by processing logic that includes hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, processing device, etc.), software (such as instructions run on a processing device, a general purpose computer system, or a dedicated machine), firmware, microcode, or a combination thereof. In some embodiments, provided is a non-transitory machine-readable storage medium storing instructions that when executed by a processing device, cause the processing device to perform method 500C.
For simplicity of explanation, method 500C is depicted and described as a series of operations. However, operations in accordance with this disclosure can occur in various orders and/or concurrently and with other operations not presented and described herein. Furthermore, in some embodiments, not all illustrated operations are performed to implement method 500C in accordance with the disclosed subject matter. In addition, those skilled in the art will understand and appreciate that method 500C could alternatively be represented as a series of interrelated states via a state diagram or events.
At block 580, processing logic determines that a second sequence of processes is to be performed one a new substrate by a substrate processing system while the substrate processing system completes a first sequence of processes on one or more multiple substrates. The new substrate may be a first substrate of a new group of substrates (e.g., a new lot of substrates), or may be a pilot substrate for a new group of substrates. The second sequence of processes may include the same processes as the first sequence of processes or may include one or more different or new processes.
At block 585, processing logic calculates a delay for beginning the second sequence of processes on the new substrate based on a calculated pace. The calculated pace may correspond to the second sequence of processes. The calculated pace may correspond to a rate at which processing the new substrate can commence so that no bottlenecks are formed in the process flow. The calculated delay may be a pro-process delay or a pre-pilot delay as described herein.
At block 590, processing logic causes the new substrate to be introduced into the substrate processing system after the delay so that processing the new substrate does not conflict with processing a last substrate of the multiple substrates.
FIG. 6 is a block diagram illustrating a computer system 600, according to certain embodiments. In some embodiments, the computer system 600 is client device 120 of FIG. 1.
In some embodiments, computer system 600 is connected (e.g., via a network, such as a Local Area Network (LAN), an intranet, an extranet, or the Internet) to other computer systems. In some embodiments, computer system 600 operates in the capacity of a server or a client computer in a client-server environment, or as a peer computer in a peer-to-peer or distributed network environment. In some embodiments, computer system 600 is provided by a personal computer (PC), a tablet PC, a Set-Top Box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a web appliance, a server, a network router, switch or bridge, or any device capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that device. Further, the term “computer” shall include any collection of computers that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methods described herein.
In a further aspect, the computer system 600 includes a processing device 602, a volatile memory 604 (e.g., Random Access Memory (RAM)), a non-volatile memory 606 (e.g., Read-Only Memory (ROM) or Electrically-Erasable Programmable ROM (EEPROM)), and a data storage device 616, which communicate with each other via a bus 608.
In some embodiments, processing device 602 is provided by one or more processors such as a general purpose processor (such as, for example, a Complex Instruction Set Computing (CISC) microprocessor, a Reduced Instruction Set Computing (RISC) microprocessor, a Very Long Instruction Word (VLIW) microprocessor, a microprocessor implementing other types of instruction sets, or a microprocessor implementing a combination of types of instruction sets) or a specialized processor (such as, for example, an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), a Digital Signal Processor (DSP), or a network processor).
In some embodiments, computer system 600 further includes a network interface device 622 (e.g., coupled to network 674). In some embodiments, computer system 600 also includes a video display unit 610 (e.g., an LCD), an alphanumeric input device 612 (e.g., a keyboard), a cursor control device 614 (e.g., a mouse), and a signal generation device 620.
In some implementations, data storage device 616 includes a non-transitory computer-readable storage medium 624 on which store instructions 626 encoding any one or more of the methods or functions described herein, including instructions encoding components of FIG. 1 (e.g., pacing component 122, predictive component 114, etc.) and for implementing methods described herein.
In some embodiments, instructions 626 also reside, completely or partially, within volatile memory 604 and/or within processing device 602 during execution thereof by computer system 600, hence, in some embodiments, volatile memory 604 and processing device 602 also constitute machine-readable storage media.
While computer-readable storage medium 624 is shown in the illustrative examples as a single medium, the term “computer-readable storage medium” shall include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of executable instructions. The term “computer-readable storage medium” shall also include any tangible medium that is capable of storing or encoding a set of instructions for execution by a computer that cause the computer to perform any one or more of the methods described herein. The term “computer-readable storage medium” shall include, but not be limited to, solid-state memories, optical media, and magnetic media.
In some embodiments, the methods, components, and features described herein are implemented by discrete hardware components or are integrated in the functionality of other hardware components such as application-specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), digital signal processors (DSPs), or similar devices. In some embodiments, the methods, components, and features are implemented by firmware modules or functional circuitry within hardware devices. In some embodiments, the methods, components, and features are implemented in any combination of hardware devices and computer program components, or in computer programs.
Unless specifically stated otherwise, terms such as “determining,” “causing,” “outputting,” “identifying,” “predicting,” “processing,” “converting,” “providing,” “obtaining,” “receiving,” “updating,” measuring,” “calculating,” or the like, refer to actions and processes performed or implemented by computer systems that manipulates and transforms data represented as physical (electronic) quantities within the computer system registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices. In some embodiments, the terms “first,” “second,” “third,” “fourth,” etc. as used herein are meant as labels to distinguish among different elements and do not have an ordinal meaning according to their numerical designation.
Examples described herein also relate to an apparatus for performing the methods described herein. In some embodiments, this apparatus is specially constructed for performing the methods described herein, or includes a general purpose computer system selectively programmed by a computer program stored in the computer system. Such a computer program is stored in a computer-readable tangible storage medium.
The methods and illustrative examples described herein are not inherently related to any particular computer or other apparatus. In some embodiments, various general purpose systems are used in accordance with the teachings described herein. In some embodiments, a more specialized apparatus is constructed to perform methods described herein and/or each of their individual functions, routines, subroutines, or operations. Examples of the structure for a variety of these systems are set forth in the description above.
The above description is intended to be illustrative, and not restrictive.
Although the present disclosure has been described with references to specific illustrative examples and implementations, it will be recognized that the present disclosure is not limited to the examples and implementations described. The scope of the disclosure should be determined with reference to the following claims, along with the full scope of equivalents to which the claims are entitled.
1. A method, comprising:
determining durations of a plurality of processes in a first sequence of processes to be performed by a substrate processing system, wherein each process of the plurality of processes is to be performed by a subsystem of the substrate processing system;
determining a first duration for a first process of the plurality of processes that is a longest duration among the durations of the plurality of processes;
calculating a pace for the substrate processing system based at least in part on the determined first duration; and
causing multiple substrates to be introduced sequentially into the substrate processing system at the calculated pace for execution of the first sequence of processes with respect to each of the multiple substrates.
2. The method of claim 1, wherein the plurality of processes comprise substrate transfer processes, substrate polishing processes, and substrate cleaning processes, and wherein the substrate processing system comprises one or more substrate transfer subsystems to perform the substrate transfer processes, one or more substrate polishing subsystems to perform the substrate polishing processes, and one or more substrate cleaning subsystems to perform the substrate cleaning processes.
3. The method of claim 1, wherein a first substrate of the multiple substrates is caused to be introduced into the substrate processing system at a first time, wherein a second substrate of the multiple substrates is caused to be introduced into the substrate processing system at a second time, and wherein the second time differs from the first time substantially by the first duration.
4. The method of claim 1, further comprising:
determining that one or more processes of the first sequence of processes have not previously been executed by the substrate processing system;
causing the first sequence of processes to be performed on at least one substrate;
measuring the durations of the one or more processes; and
storing the measured durations of the one or more processes, wherein the durations of the one or more processes are used in determining which of the plurality of processes has the longest duration.
5. The method of claim 1, wherein the first sequence of processes comprises a polishing process followed by a cleaning process, the method further comprising:
determining that a second duration of the polishing process is less than a third duration of the cleaning process;
determining a time delta between the second duration and the third duration; and
delaying a start of the polishing process by the time delta, wherein by delaying the start of the polishing process by the time delta a wait time between completion of the polishing process and beginning of the cleaning process is mitigated.
6. The method of claim 1, further comprising:
determining that a second sequence of processes is to be performed on a new substrate by the substrate processing system while the substrate processing system completes the first sequence of processes on one or more of the multiple substrates;
calculating a delay for beginning the second sequence of processes on the new substrate based on the calculated pace; and
causing the new substrate to be introduced into the substrate processing system after the delay so that processing the new substrate does not conflict with processing a last substrate of the multiple substrates.
7. The method of claim 6, further comprising:
determining durations of a second plurality of processes in the second sequence of processes;
determining a second duration for a second process of the second plurality of processes that is a longest duration among the durations of the second plurality of processes;
calculating a new pace for the substrate processing system based at least in part on the determined second duration; and
causing multiple new substrates to be introduced sequentially into the substrate processing system at the calculated new pace for execution of the second sequence of processes with respect to each of the multiple new substrates.
8. The method of claim 1, wherein the substrate processing system comprises a first lane and a second lane, and wherein determining the durations of the plurality of processes comprises determining first durations of processes performed in the first lane and determining second durations of processes performed in the second lane.
9. A system, comprising:
a substrate processing system, comprising:
at least one substrate polishing subsystem to perform substrate polishing processes;
at least one substrate cleaning subsystem to perform substrate cleaning processes; and
at least one substrate transfer subsystem to perform substrate transfer processes;
a memory; and
a processing device operatively coupled with the memory, wherein the processing device is configured to:
determine durations of a plurality of processes in a first sequence of processes to be performed by the substrate processing system, wherein each of the plurality of processes is performed by one or more of the at least one substrate polishing subsystem, the at least one substrate cleaning subsystem, or the at least one substrate transfer subsystem;
determine a first duration for a first process operation of the plurality of processes that is a longest duration among the durations of the plurality of processes;
calculate a pace for the substrate processing system based at least in part on the determined first duration; and
cause multiple substrates to be introduced sequentially into the substrate processing system at the calculated pace for execution of the first sequence of processes with respect to the multiple substrates.
10. The system of claim 9, wherein a first substrate of the multiple substrates is caused to be introduced into the substrate polishing tool at a first time, wherein a second substrate of the multiple substrates is caused to be introduced into the substrate polishing tool at a second time, and wherein the second time differs from the first time substantially by the first duration.
11. The system of claim 9, wherein the processing device is further configured to:
determine that one or more processes of the first sequence of processes have not previously been executed by the substrate processing system;
cause the first sequence of processes to be performed on at least one substrate;
measure the durations of the one or more processes; and
store the measured durations of the one or more processes, wherein the durations of the one or more processes are used in determining which of the plurality of processes has the longest duration.
12. The system of claim 9, wherein the first sequence of processes comprises a polishing process followed by a cleaning process, and wherein the processing device is further configured to:
determine that a second duration of the polishing process is less than a third duration of the cleaning process;
determine a time delta between the second duration and the third duration; and
delay a start of the polishing process by the time delta, wherein by delaying the start of the polishing process by the time delta a wait time between completion of the polishing process and beginning of the cleaning process is mitigated.
13. The system of claim 9, wherein the processing device is further configured to:
determine that a second sequence of processes is to be performed on a new substrate by the substrate processing system while the substrate processing system completes the first sequence of processes on one or more of the multiple substrates;
calculate a delay for beginning the second sequence of processes on the new substrate based on the calculated pace; and
cause the new substrate to be introduced into the substrate polishing tool after the delay so that processing the new substrate does not conflict with processing a last substrate of the multiple substrates.
14. The system of claim 13, wherein the processing device is further configured to:
determine durations of a second plurality of processes in the second sequence of processes;
determine a second duration for a second process of the second plurality of processes that is a longest duration among the durations of the second plurality of processes;
calculate a new pace for the substrate processing system based at least in part on the determined second duration; and
cause multiple new substrates to be introduced sequentially into the substrate processing system at the calculated new pace for execution of the second sequence of processes with respect to each of the multiple new substrates.
15. The system of claim 9, wherein the substrate processing system comprises a first lane and a second lane, and wherein to determine the durations of the plurality of processes, the processing device is to:
determine first durations of processes performed in the first lane; and
determine second durations of processes performed in the second lane.
16. A non-transitory machine-readable storage medium storing instructions which, when executed, cause a processing device to perform operations comprising:
determining durations of a plurality of processes in a first sequence of processes to be performed by a substrate processing system, wherein each process of the plurality of processes is performed by a subsystem of the substrate processing system;
determining a first duration for a first process of the plurality of processes that is a longest duration among the durations of the plurality of processes;
calculating a pace for the substrate processing system based at least in part on the determined first duration; and
causing multiple substrates to be introduced sequentially into the substrate processing system at the calculated pace for execution of the first sequence of processes with respect to each of the multiple substrates.
17. The non-transitory machine-readable storage medium of claim 16, wherein the processing device is to perform operations further comprising:
determining that one or more processes of the first sequence of processes have not previously been executed by the substrate processing system;
causing the first sequence of processes to be performed on at least one substrate;
measuring the durations of the one or more processes; and
storing the measured durations of the one or more processes, wherein the durations of the one or more processes are used in determining which of the plurality of processes has the longest duration.
18. The non-transitory machine-readable storage medium of claim 16, wherein the first sequence of processes comprises a polishing process followed by a cleaning process, and wherein the processing device is to perform operations further comprising:
determining that a second duration of the polishing process is less than a third duration of the cleaning process;
determining a time delta between the second duration and the third duration; and
delaying a start of the polishing process by the time delta, wherein by delaying the start of the polishing process by the time delta a wait time between completion of the polishing process and beginning of the cleaning process is mitigated.
19. The non-transitory machine-readable storage medium of claim 16, wherein the processing device is to perform operations further comprising:
determining that a second sequence of processes is to be performed on a new substrate by the substrate processing system while the substrate processing system completes the first sequence of processes on one or more of the multiple substrates;
calculating a delay for beginning the second sequence of processes on the new substrate based on the calculated pace; and
causing the new substrate to be introduced into the substrate processing system after the delay so that processing the new substrate does not conflict with processing a last substrate of the multiple substrates.
20. The non-transitory machine-readable storage medium of claim 19, wherein the processing device is to perform operations further comprising:
determining durations of a second plurality of processes in the second sequence of processes;
determining a second duration for a second process of the second plurality of processes that is a longest duration among the durations of the second plurality of processes;
calculating a new pace for the substrate processing system based at least in part on the determined second duration; and
causing multiple new substrates to be introduced sequentially into the substrate processing system at the calculated new pace for execution of the second sequence of processes with respect to each of the multiple new substrates.