Process task starting control method and semiconductor process equipment
By determining the startup priority weight of the process tasks to be started in the semiconductor cleaning equipment, and prioritizing the task with the least interference based on the interference probability, the problem of idle process modules is solved, and the overall utilization rate and capacity of the equipment are improved.
Patent Information
- Application Number
- CN202511164195.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-08-19
- Publication Date
- 2025-11-21
AI Technical Summary
Some process modules in semiconductor cleaning equipment are idle for extended periods, resulting in low overall utilization and reduced production capacity.
By obtaining the list of started and pending process tasks, the priority weight of pending process tasks is determined. Based on the interference probability, the task with the least interference is started first, and the utilization rate of process modules is improved by using the queue-jumping strategy.
This improves the utilization rate of each process module of semiconductor process equipment, avoids long-term idleness, and enhances overall utilization and capacity.
Smart Images

Figure CN120993855A_ABST
Abstract
Description
Technical Field
[0001] This application belongs to the field of semiconductor technology, and in particular relates to a method for starting up a process task and semiconductor process equipment. Background Technology
[0002] Semiconductor processing equipment (such as semiconductor cleaning equipment) is a crucial type of equipment in the semiconductor field. Taking semiconductor cleaning equipment as an example... Figure 1 As shown, the process area of the semiconductor cleaning equipment includes multiple process modules: 8 process tanks 11 (corresponding to...) Figure 1 The tanks are Tank1 to Tank8, the washing tank (End-effector Washer Disinfector, abbreviated as EWD) is 12, and the drying tank is 13.
[0003] In related technologies, the scheduling scheme for semiconductor cleaning equipment is as follows: A single Process Transfer Robot (PTR) 14 is used to schedule materials in the process area. Process tasks (jobs) to be started, i.e., new jobs, are added to the list of jobs to be started in ascending order of their issuance time: NewJobs = [Job1, Job2, Job3, ..., Jobn]. Each recalculation selects the first job in the NewJobs list (i.e., Job1) and the already started jobs for scheduling planning; that is, the order in which new jobs start (i.e., the order in which they enter the process area) is the issuance order. In the above scheme, the new job start order strictly follows the issuance order, which can easily cause some process modules of the semiconductor cleaning equipment to be idle for a long time, resulting in low overall utilization of the semiconductor cleaning equipment and reduced capacity. Summary of the Invention
[0004] The purpose of this application is to provide a method for starting up a process task and a semiconductor process equipment, so as to solve the problem in the related art that some process modules of semiconductor cleaning equipment are easily idle for a long time, resulting in low overall utilization of semiconductor cleaning equipment and reduced production capacity.
[0005] To achieve the above objectives, the embodiments of this application adopt the following technical solutions: In a first aspect, embodiments of this application provide a method for controlling the initiation of a process task. The method includes: obtaining a list of initiated process tasks and a list of process tasks to be initiated, wherein the list of initiated process tasks includes initiated process tasks that are still being executed in the process area, and the list of process tasks to be initiated includes at least one process task to be initiated; determining an initiation priority weight for each process task to be initiated, wherein the initiation priority weight is related to the interference probability between the process task to be initiated and each of the initiated process tasks; determining a target process task to be initiated in the list of process tasks to be initiated based on the initiation priority weight of each process task to be initiated; and scheduling and planning all incomplete movement actions of the target process task to be initiated and each of the initiated process tasks.
[0006] In a second aspect, embodiments of this application provide a semiconductor process apparatus, including: a controller, a robot, and multiple process modules. The controller includes at least one processor and at least one memory, the memory storing a computer program. When the computer program is executed by the processor, it implements the steps of the method described in the first aspect.
[0007] The above-described technical solutions adopted in the embodiments of this application can achieve the following beneficial effects: In determining the startup order of process tasks to be started (i.e., new jobs), this embodiment determines the startup priority weight of each process task to be started based on the interference probability between the process task to be started and each already started process task, and then determines the target new job to be started first in the new job list based on the startup priority weight. Compared with related technologies where the startup order of new jobs strictly follows the issuance order, this embodiment uses a queue-jumping strategy (corresponding to the above-mentioned determination of the startup priority weight of each process task to be started, and then determining the target new job) to detect the probability of interference between each new job and already started jobs based on the current state of the semiconductor process equipment, and prioritizes the startup of new jobs with the least interference, i.e., complementary process paths. This improves the utilization rate of each process module of the semiconductor process equipment, avoids some process modules of the semiconductor process equipment from being idle for a long time, thereby improving the overall utilization rate of the semiconductor process equipment and thus increasing production capacity. Attached Figure Description
[0008] The accompanying drawings, which are included to provide a further understanding of this application and form part of this application, illustrate exemplary embodiments and are used to explain this application, but do not constitute an undue limitation of this application. In the drawings: Figure 1 This is a schematic diagram of the process area of a typical semiconductor cleaning equipment; Figure 2 A schematic diagram of a semiconductor cleaning device provided in one embodiment of this application; Figure 3 A flowchart illustrating a process task initiation control method provided in one embodiment of this application; Figure 4 This is a diagram illustrating job startup priority in related technologies. Figure 5 A flowchart illustrating a method for initiating a process task, provided as another embodiment of this application; Figure 6 A schematic diagram illustrating the determination of a movement action conflict, provided as an embodiment of this application; Figure 7 A schematic diagram of the job process location in a process area provided for one embodiment of this application; Figure 8 A schematic diagram of the job location and pruning strategy in a process area provided for one embodiment of this application; Figure 9 This is a schematic diagram of the overall process flow of a method for starting a process task, provided as another embodiment of this application. Detailed Implementation
[0009] To make the objectives, technical solutions, and advantages of this application clearer, the technical solutions of this application will be clearly and completely described below in conjunction with specific embodiments and corresponding drawings. Obviously, the described embodiments are only a part of the embodiments of this application, and not all of them. Based on the embodiments in this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.
[0010] The terms "first," "second," etc., used in this application are used to distinguish similar objects and not to describe a specific order or sequence. It should be understood that such data can be interchanged where appropriate so that embodiments of this application can be implemented in orders other than those illustrated or described herein. Furthermore, "and / or" in this application indicates at least one of the connected objects, and the character " / " generally indicates that the preceding and following objects are in an "or" relationship. It should be noted that all data involved in this application was obtained with the user's authorization.
[0011] Semiconductor processing equipment (such as semiconductor cleaning equipment) is a crucial type of equipment in the semiconductor field. Taking semiconductor cleaning equipment as an example... Figure 2 As shown, semiconductor cleaning equipment typically includes: multiple load ports (LPs) 21 (corresponding to...) Figure 2LP1~LP4), Stocker 22, Foup Transfer Robot (FTR) 23, Buffer Robot (BFR) 24, Opener 25 (corresponding to) Figure 2 The following robots are included: Opener1 and Opener2; Wafer Handling Robot (WHR); Horizontal Vertical Robot (HV); Wafer Pusher; Wafer Aligner; Process Transfer Robot (PTR); Multiple Dual Lifter Robots; Multiple Lifter Robots; Multiple Tanks (corresponding to...) Figure 2 The tanks include Tank1 to Tank8, the cleaning tank (EWD) 12, and the drying tank (Dry) 13.
[0012] in, Figure 2 The structure and function of each module in the semiconductor cleaning equipment shown are as follows: 1) Loading port (LP) 21 The device for loading and unloading wafer pods (Foup) has a set of loading ports (LP) 21 denoted as {LPi}, i∈{1,2,3,…,n}, where each loading port (LP) 21 can carry a single standard wafer pod, and each wafer pod can load multiple wafers.
[0013] 2) Stocker (material buffer) 22 The device for temporarily storing wafer cassettes consists of n buffer units, denoted as {Buffer i}, where i ∈ {1, 2, 3, ..., n}, and each buffer unit can hold one wafer cassette. Wafer cassettes can originate from any load port (LP) 21 and are then stored in the specified buffer unit location. The stocker 22 primarily supports the ability to schedule materials simultaneously for multiple jobs.
[0014] 3) Pre-scan module (Opener) 25 Opener1 and Opener2 are the essential modules for loading materials from loading port (LP) 21 into material buffer (Stocker) 22 and for materials to start executing a job in material buffer (Stocker) 22, respectively. Their main function is to scan (mapping) and verify the wafers in the wafer cassette to avoid material residue or other abnormalities.
[0015] 4) Wafer box transfer robot (FTR) 23 Used for material transfer between four units: Loading Port (LP) 21, Stocker 22, Buffer Robot (BFR) 24, and Opener 25.
[0016] 5) Buffer Robot (BFR) 24 It serves as a connecting and transfer mechanism for material transfer between the two units: the wafer transfer robot (FTR) 23 and the pre-scan module (Opener) 25.
[0017] 6) Wafer Handling Robot (WHR) 26 It is used for bidirectional wafer transfer between the pre-scanning module Opener2 and the horizontal vertical (HV) robot 27, but it can only be unidirectional at any given time, and a maximum of 25 wafers can be picked up for unidirectional transfer at a time.
[0018] 7) Horizontal-Vertical (HV) Robotic Arm 27 It is used for bidirectional wafer transfer between the wafer handling robot (WHR) 26 and the wafer pusher 28, but it can only be unidirectional at any given time, and can pick up a maximum of 25 wafers for unidirectional transfer each time.
[0019] 8) Wafer Push Platform (Pusher) 28 As a hub module for transferring wafers from the transport area to the process area, this platform can hold up to 50 wafers at a time (two groups in total).
[0020] 9) Wafer Alignment Platform (Aligner) 29 This platform is used for wafer calibration and can hold up to 50 wafers at a time (two sets in total).
[0021] 10) Process Transfer Robot (PTR) 14 Used for wafer gripping, responsible for wafer transfer between process tanks 11 ({Tank i, i∈1,2,3,…,8}), cleaning tanks 12 (for cleaning, actually Tank 9), and drying tanks 13 in the process area, and works in conjunction with dual lift robot 30 and unidirectional lift robot 31 to grip wafers.
[0022] 11) Dual Lifter Robotic Arm 30 Used for the horizontal and vertical transfer and gripping of wafers between adjacent process modules, and works in conjunction with the process transfer robot (PTR) 14 for wafer transfer.
[0023] 12) One-way lifting (Lifter) robotic arm 31 Used for gripping single-cell wafers in the vertical direction, and for wafer transfer in conjunction with the process transfer robot (PTR) 14.
[0024] 13) Process Module A tank is a device used for processing wafers. Tanks are categorized into acid tanks, water tanks, cleaning tanks, and drying tanks, and are represented as a set {Tank i}, where i ∈ {1, 2, 3, ..., 10}. Tank 9 is the cleaning tank, and Tank 10 is the drying tank. Wafer transfer between tanks operates around the process transfer robot (PTR) 14, the dual lift robot 30, and the unidirectional lift robot 31.
[0025] 14) Transmission Area It consists of a loading port (LP) 21, a material buffer area (Stocker) 22, a pre-scan module (Opener) 25, a buffer robot (BFR) 24, and a wafer box transfer robot (FTR) 23. The modules work together to complete a series of operations such as material transfer and buffering. The main function of the transfer area is to support the simultaneous scheduling of materials by multiple jobs.
[0026] 15) Process Area It consists of a series of tanks {Tank i}, i∈{1,2,3,…,10}, a wafer handling robot (WHR) 26, a horizontal vertical (HV) robot 27, a wafer pusher platform (Pusher) 28, a wafer alignment platform (Aligner) 29, a process transfer robot (PTR) 14, a dual lift robot 30, and a unidirectional lift robot 31. The first process of each process is the cleaning tank (EWD) 12, which is used for cleaning, and the last process is the drying tank (Dry) 13, which is used for drying.
[0027] in, Figure 2 The material transfer process in the semiconductor cleaning equipment shown can be as follows: The wafer cassette starts from and returns to the loading port (LP) 21. Steps 1)-2) below belong to the transfer area process, and steps 3)-7) below belong to the process area process.
[0028] 1) After the loading port (LP) 21 receives the wafer cassette, the wafer cassette transfer robot (FTR) 23 picks it up and moves it to the pre-scan module Opener1 for wafer verification. After the verification is successful, the wafer cassette transfer robot (FTR) 23 transfers the wafer cassette to the buffer position specified in the material buffer area (Stocker) 22.
[0029] 2) The wafer cassette transfer robot (FTR) 23 transfers the wafer cassettes on the buffer position of the material buffer area (Stocker) 22 to the pre-scan module Opener2 according to the process instructions, and opens the wafer cassettes for wafer verification. After the verification is passed, step 3 is executed.
[0030] 3) The wafer handling robot (WHR) 26 picks up a wafer from the wafer cassette located in the pre-scan module Opener2 and works with the horizontal vertical (HV) robot 27 to rotate the picked-up wafer onto the wafer pusher platform (Pusher) 28.
[0031] 4) After the wafer handling robot (WHR) 26 completes the wafer gripping in the wafer cassette in the pre-scan module Opener2, the wafer cassette transfer robot (FTR) 23 returns the empty wafer cassette in the pre-scan module Opener2 to its original buffer position in the material buffer area (Stocker) 22.
[0032] 5) The process transfer robot (PTR) 14 transports the wafer group corresponding to the Job to the process tank (Tank) 11 for processing according to the Job's issuance time and the preset process path (e.g., Tank1-Tank2-...-Tank6-Tank7-Tank8).
[0033] By default, the first process in each process is the cleaning tank (EWD) 12, and the last process is the drying tank 13. The gripping and unloading actions before and after each process tank 11 require the cooperation of a dual lift robot 30 and a unidirectional lift robot 31.
[0034] 6) After all processes corresponding to the current process are completed, the wafer transfer robot (FTR) 23 finds the buffer position bound to the current process from the material buffer (Stocker) 22 according to the process instructions, moves the empty wafer cassette in the buffer position to the pre-scan module Opener2, and opens the door of the empty wafer cassette.
[0035] 7) The process transfer robot (PTR) 14 transfers the wafer from the process area to the wafer pusher platform (Pusher) 28.
[0036] 8) The horizontal vertical (HV) robot 27 rotates to the wafer pusher 28 and transfers the wafer from the wafer pusher 28 to the wafer handling robot (WHR) 26.
[0037] 9) After the wafer handling robot (WHR) 26 completes the calibration of the wafer on the pre-scan module Opener2, it closes the door of the wafer cassette.
[0038] 10) The wafer cassette transfer robot (FTR) 23 returns the wafer cassette containing the finished wafer to the original buffer position of the stocker 22.
[0039] 11) Finally, the wafer transfer robot (FTR) 23 transfers the finished wafer cassette to the loading port (LP) 21 to complete the off-machine operation.
[0040] The technical solutions provided by the various embodiments of this application are described in detail below with reference to the accompanying drawings.
[0041] Figure 3 This is a flowchart illustrating a method for initiating a process task, as provided in one embodiment of this application. Figure 3 As shown, the process task initiation control method of this application embodiment may specifically include the following steps: S301, obtain the list of started jobs and the list of jobs to be started. The list of started jobs includes started jobs that are still being executed in the process area, and the list of jobs to be started includes at least one job to be started.
[0042] In this embodiment of the application, the execution subject of the job start control method of this embodiment of the application is the controller in the semiconductor process equipment (e.g., semiconductor cleaning equipment), which can be set in the host computer and / or slave computer of the semiconductor process equipment.
[0043] The overall algorithm architecture used in the embodiments of this application is as follows: Figure 2 As shown, the machine is divided into a transport area and a process area, and scheduling plans (e.g., move and dwell time planning) are performed separately for each area. The specific implementation process includes the following critical paths: 1) CarrierIn process: The FTR robot transports the material from LP to the buffer on the stocker of the material buffer area. The path is represented as: LP→FTR→Buffer.
[0044] 2) JobIn process: Implements material transfer from the buffer to the pusher in the wafer transfer area. The path is represented as: Buffer→FTR→Opener2→WHR→HV→Pusher.
[0045] 3) JobOut process: Implements reverse material transfer from the wafer transfer area Pusher to the buffer. The path is represented as: Pusher→HV→WHR→Opener2→FTR→Buffer.
[0046] (4) CarrierOut process: The FTR robot is used to transfer the material in the buffer to the LP to complete the unloading. The path is represented as: Buffer→FTR→LP.
[0047] (5) JobMid process: The wafer is processed from the wafer transfer area Pusher and then returned to the wafer transfer area Pusher after being processed by the tank process. The path is represented as: Pusher→EWD→Tank→Dry→Pusher.
[0048] The job startup control method in this application belongs to the scheduling method of process tasks (jobs) in the process area.
[0049] The time interval between the completion of a wafer's process in a process module and its removal by the robotic arm is called the dwell time. Each process module has an upper bound on the allowed dwell time; if the dwell time exceeds this upper bound, it is called over-bubbling. The algorithm's final planned move does not allow for over-bubbling. For process modules such as Tank1-Tank8, they are referred to as acid tanks or water tanks based on the type of liquid they contain for the process. The allowed dwell times for acid tanks and water tanks differ, with acid tanks allowing shorter dwell times and water tanks allowing longer dwell times.
[0050] The purpose of each recalculation is to select a job to be started (i.e., a new job) to start, and schedule the new job and all started jobs in the process area together for calculation.
[0051] Recalculation typically occurs in the following two scenarios, which correspond to... Figure 4 The Job mentioned above completes the target Move and Dry slots, and the Job completes the Out action. Figure 4 The following example illustrates how to select a new job in related technologies (selecting the first job from the new job list each time): 1) The selected new Job needs to complete the sheet-making action. This action indicates that the material corresponding to the new Job is in a batch push ready state in the Pusher module and can be picked up by the PTR robot. Figure 4 The target Move was executed.
[0052] 2) Jobs transferred from the process area to the transport area are in the ready-to-go phase after process completion (corresponding to...) Figure 4After the Dry tank Job completes the Out action, this action indicates that the Pusher module can transfer the material to Opener2 for scanning and verification.
[0053] Each recalculation first requires obtaining initialization information, including a list of started jobs (Jobs) and a list of new jobs (NewJobs): NewJobs = [Job1, Job2, Job3, ..., Jobn]. The list of started jobs (Jobs) includes jobs that have started and are still executing in the process area. The list of started jobs (Jobs) can be empty, meaning the number of jobs in the list can be zero. The jobs to be started in the list of new jobs (NewJobs) can be sorted in ascending order of their deployment time, meaning the first job in NewJobs has the earliest deployment time.
[0054] Furthermore, the "obtaining the list of jobs to be started" in step S301 above may specifically include the following steps: if there is at least one process task to be started that is not affected by the replacement of acid in the process tank, add at least one process task to be started that is not affected by the replacement of acid in the process tank to the list of process tasks to be started; or, if there are zero process tasks to be started that are not affected by the replacement of acid in the process tank, add at least one process task to be started that is affected by the replacement of acid in the process tank to the list of process tasks to be started, arranged in reverse order of the degree of impact.
[0055] Considering that jobs awaiting startup may be affected by acid changes in the process tanks (process tanks are divided into acid tanks and water tanks; the acid in the acid tank is replaced periodically or after reaching its usage limit, and the replacement takes a considerable amount of time; if the time a job spends passing through this acid tank overlaps with the acid replacement time, it indicates that the job will be affected by the acid replacement), in practical applications, a list of jobs to be started (NewJobs) can be generated by selecting those jobs that will not be affected by acid changes in the process tanks. This means the list of jobs to be started includes at least one job that is not affected by acid changes in the process tanks.
[0056] Specifically, the process path corresponding to each job to be started can be obtained, and it is determined whether the process tank chamber {Tank i} passed through will be affected by acid replacement, so as to divide the list of jobs to be started into two categories: one category is affected by the acid replacement in the process tank chamber {Tank i}, denoted as AffectedNewJobs, and the other category is not affected by the acid replacement in the process tank chamber {Tank i}, denoted as UnaffectedNewJobs. The calculation formula for not being affected by acid replacement is as follows (illustrated with Tank1 and Job1): The end time of the previous process when Job1 enters Tank1 > the end time of the next acid replacement in Tank1, or the end time of the next process when Job1 leaves Tank1 < the start time of the next acid replacement in Tank1. If the list UnaffectedNewJobs of jobs not affected by acid replacement is empty, then the list AffectedNewJobs is sorted in reverse order according to the degree of acid replacement impact and assigned to UnaffectedNewJobs, and the next step S302 is entered.
[0057] S302, determine the start priority weight of each job to be started w _total, start priority weight w _total is related to the interference probability between the job to be started and each started job.
[0058] In the embodiment of the present application, the start priority weight of each new job in the new job list NewJobs can be determined according to the interference probability between the job to be started and each started job w _total. For example, the greater the interference probability, the start priority weight w _total is greater.
[0059] Among them, w _total can be determined according to at least one of the process path length weight w _1 of the job to be started, the process path overlap weight w _2 between the job to be started and each started job, and the moving action conflict weight w _3 between the job to be started and each started job.
[0060] Among them, the shorter the process path length L, the smaller the probability that the job to be started interferes with each started job, and the greater the process path length weight w_1. As a feasible implementation, the process path length weight w _1 can be determined through the following steps: The reciprocal 1 / L of the process path (Recipe) length L of the job to be started is determined as the process path length weight w _1 of the job to be started, that is, w_1 = 1 / L.
[0061] The lower the overlap between the process paths of the job to be started and each of the already started jobs, the lower the probability of interference between the job to be started and each of the already started jobs, and the larger the process path overlap weight w_2. As a feasible implementation method, the process path overlap weight... w _2 can be determined through the following steps: Calculate the ratio L1 / L of the length L1 occupied by each started job in the process path of the job to be started to the length L of the process path of the job to be started; determine the overlap weight of the process paths between the job to be started and each started job based on the ratio L1 / L. w _2, The specific formula is as follows: w _2=1-L1 / L.
[0062] When the process path of a job to be started is occupied by multiple started jobs, the length L1 of the process path occupied by each started job is the sum of the lengths occupied by each started job. For example, if the process path of a job to be started is occupied by two started jobs, assuming the lengths occupied by these two started jobs are L11 and L12 respectively, then L1 = L11∪L12. That is, if there is an overlap between L11 and L12, the overlap is only calculated once when calculating L1, and L1 < L11 + L12. If there is no overlap between L11 and L12, then L1 = L11 + L12.
[0063] like Figure 5 As shown, the movement action conflict weight w _3 can be determined through the following steps: S501, based on whether there is a Move conflict in the first process module of the process path of the job to be started and each started job, determine the first conflict weight. w _3_1.
[0064] In this embodiment, the first conflict weight can be determined by judging whether the first process module in the process path of the job to be started is available, that is, by judging whether there is a move conflict between the job to be started and each already started job in the first process module. w _3_1. If the first process module is available, meaning there are no move conflicts between the job to be started in the first process module and any of the already started jobs, then determine the first conflict weight. w _3_1=1. If the first process module is unavailable, meaning there is a move conflict between the job to be started in the first process module and at least one already started job, then the first conflict weight is determined. w _3_1=0.
[0065] It should be noted here that the determination of the first conflict weight... w In step _3_1, only the first process module in the process path of the job to be started is considered; subsequent process modules are not considered.
[0066] S502, if there is no move conflict between the job to be started and each of the already started jobs in the first process module, then determine the second conflict weight based on whether there are move conflicts in the process paths of the job to be started and other process modules besides the first process module. w _3_2.
[0067] In this embodiment of the application, if the first process module is unavailable in step S501, i.e., there is a Move conflict in the first process module, then it is not necessary to continue determining the second conflict weight. w _3_2.
[0068] If the first process module is available in step S501, meaning there is no Move conflict in the first process module, then proceed to determine the second conflict weight. w _3_2.
[0069] The second conflict weight can be determined by checking whether the process modules other than the first process module in the process path of the job to be started are available, that is, by checking whether there are move conflicts between the job to be started and each started job in each other process module. w _3_2. If all other process modules are available, i.e., there are no Move conflicts in other process modules, then determine the second conflict weight. w _3_2=1. If at least one of the other process modules is unavailable, i.e., there is a Move conflict in at least one other process module, then the second conflict weight is determined. w _3_2=0.
[0070] Specifically, the step "whether there are Move conflicts between the job to be started and each already started job in the process path of the process task to be started, except for the first process module" can be determined through the following steps: If the job to be started meets the following condition: the first time interval of the job to be started entering other process modules (excluding the first process module) to execute the process intersects with the second time interval of other process modules occupied by each started job, then it is determined that the job to be started and each started job have a move conflict in other process modules.
[0071] Specifically, it determines whether there are movement conflicts between the job to be started and each job that has already been started in other process modules, that is, whether the time when the job to be started enters the process area conflicts with the original scheduling plan of the machine.
[0072] The original scheduling plan of the machine, that is, the scheduling plan at the last recalculation. Each time a new job is planned, the algorithm needs to perform a recalculation. Here, the last recalculation refers to the recalculation when the previous new job was planned.
[0073] As Figure 6 shown, t0 represents the time when the job to be started enters the process area, t1 represents the rollback time (i.e., the earliest available time of other process modules), t2 represents the end time of the job action in the process area for this other process module, and the second time interval [t1, t2] represents the time interval occupied by each started job in this other process module. If the first time interval [t0 + transfer time, t0 + transfer time + process time] for the job to be started to enter and execute the process in other process modules is within the second time interval [t1, t2], that is, t0 + transfer time ≥ t1 and t0 + transfer time + process time ≤ t2, or the first time interval [t0 + transfer time, t0 + transfer time + process time] and the second time interval [t1, t2] have partial overlap, that is, t0 + transfer time < t1 and t1 < t0 + transfer time + process time < t2, or t1 < t0 + transfer time < t2 and t0 + transfer time + process time > t2, it means that there will be a movement action conflict between the job to be started and each started job in this other process module, and the second conflict weight w _3_2 = 1. In practical applications, generally, the first time interval [t0 + transfer time, t0 + transfer time + process time] being within the second time interval [t1, t2] is used as the Move conflict judgment condition.
[0074] S503. Determine the product value of the first conflict weight w _3_1 and the second conflict weight w _3_2 as the movement action conflict weight w _3 of the job to be started and each started job.
[0075] In the embodiments of this application, the movement action conflict weight w _3 = w _3_1 * w _3_2.
[0076] Furthermore, the above S302 "Determine the start priority weight w _total of each job to be started" can specifically include the following steps: According to the process path length weight w _1 of the job to be started, the process path overlap weight w _2 between the job to be started and each started job, and the movement action conflict weight w_3 and their respective corresponding manual intervention weights are used to determine the start-up priority weights. w _total.
[0077] As a first feasible implementation method, three weights can be calculated. w _1、 w _2 and w The sum of _3 gives the startup priority weight. w _total, that is w _total= w _1+ w _2+ w _3.
[0078] As a second feasible implementation method, three weights can be calculated. w _1、 w _2、 w _3 and their corresponding human intervention weights α _1、 α _2、 α The sum of the products of _3 gives the startup priority weight. w _total, that is w _total= α _1* w _1+ α _2* w _2+ α _3* w _3. Among them, the weight of manual intervention α _1、 α _2、 α _3 represents the weight that operators can actively intervene in. It can be manually adjusted according to the process path characteristics of the machine on site. For example, it can be set... α _1= α _2= α _3=1, which is the same as the first feasible implementation method.
[0079] For example (assuming the process area includes 9 process tanks Tank1 to Tank9): There is a Job_0 currently running in the process area, and there are 3 Jobs in the transport area, none of which will be affected by acid replacement.
[0080] Job_0: The process path is Tank1-Tank2-Tank3-Tank4-Tank5-Tank6-Tank7-Tank8-Tank9, and the current position is Tank3.
[0081] The following is a list of jobs that will not be affected by acid replacement: Job_1: The process path is Tank1-Tank2-Tank3-Tank4-Tank5-Tank6-Tank7-Tank8-Tank9.
[0082] Job_2: The process path is Tank3-Tank4-Tank5-Tank6-Tank7-Tank8-Tank9.
[0083] Job_3: The process path is Tank7-Tank8-Tank9.
[0084] The process path length weights of Job1, Job2, and Job3 calculated in the above manner. w _1 are respectively w _1_Job1=1 / 9、 w _1_Job2=1 / 7、 w _1_Job3=1 / 3.
[0085] The process path overlap weights for Job1, Job2, and Job3 calculated in the above manner. w _2 are respectively w _2_Job1=1-7 / 9=2 / 9、 w _2_Job2=1-7 / 7=0、 w _2_Job3=1-3 / 3=0.
[0086] For ease of understanding, let's assume that the movement conflict weights of Job1, Job2, and Job3 are calculated in the manner described above. w _3 are respectively w _3_Job1=1、 w _3_Job2=0、 w _3_Job3=1.
[0087] The startup priority weights corresponding to Job_1, Job_2, and Job_3 are then... w _total are respectively w _total_Job1 = 1 / 9 + 2 / 9 + 1 = 4 / 3 w _total_Job2=1 / 7+0+0=1 / 7 w _total_Job3 = 1 / 3 + 0 + 1 = 4 / 3. Select startup priority weight. w Job1, which has the largest total and is ranked first, is the target job to be started.
[0088] S303, based on the startup priority weight of each job to be started. w _total, determines the target jobs to be started in the list of jobs to be started.
[0089] In this embodiment of the application, the startup priority weight can be... w The largest pending job in _total is identified as the target pending job (i.e., the target new job). The target new job is the next new job to be started, or the first new job to be started.
[0090] It should be noted here that if the startup priority weight is... w If the maximum number of jobs to be started (_total) is multiple, then the startup priority weights will be adjusted. w The job with the largest total and the highest sorted position is identified as the target job to be started. In other words, the job with the smallest index j in the list of jobs to be started [Jobj] (j∈1,2,…,n) is identified as the target job to be started.
[0091] In practical applications, the jobs in the NewJobs list to be started can be traversed, and the startup priority weight of any Jobj can be determined in the manner described above. w _total. After iterating through all jobs in NewJobs, priority weighting will be activated. w The job with the largest total value is identified as the target job to be started. When iterating through NewJobs, you can either traverse them sequentially according to their sorted order or randomly select them.
[0092] When the list of started jobs is empty (i.e., there are no started jobs in the process area), only the process path length weight needs to be determined. w _1 is sufficient to weight the process path length. w The largest job is selected as the target job to be started.
[0093] S304 performs scheduling planning for the target job to be started and all incomplete movement actions of each started job.
[0094] In this embodiment of the application, the target job to be started enters the process area and is scheduled together with all the unfinished movement actions of each started job in the process area, that is, Move and dwell time planning is performed, and the scheduling planning results are sent to the host computer and / or the slave computer.
[0095] Specifically, the time for the target job to enter the process area can be initialized to the earliest time that the target job can enter the process area. Scheduling planning is then performed based on this initial time to obtain an initial solution (i.e., the initial Move sequence and the corresponding dwell time). Then, it is determined whether the initial solution meets the constraints such as the dwell time. If it does not meet the constraints, the time for the target job to enter the process area is delayed based on the dwell time. Scheduling planning is then performed based on the delayed time until a solution that meets the constraints is obtained.
[0096] Furthermore, before step S301 "obtaining the list of started jobs and the list of jobs to be started", the job start control method of this application embodiment may also include a scheduling and planning step for the started jobs in the process area.
[0097] As a first feasible implementation, all permutations of each started job can be obtained, and scheduling planning (i.e., Move and dwell time planning) can be performed by traversing all permutations, that is, finding the optimal permutation.
[0098] like Figure 7 As shown, assuming there are 5 started Jobs in the process area, namely Job1, Job2, Job3, Job4 and Job5, when performing scheduling planning, the full permutation combination of the 5 Jobs (i.e., 120 scenarios) is traversed until the full permutation combination is traversed or a feasible solution is found.
[0099] As a second feasible implementation, based on the first feasible implementation, a pruning strategy can be used to remove unnecessary traversal combinations, reducing computation time and thus mitigating the risk of machine downtime caused by the host computer and / or slave computer failing to receive scheduling results in a timely manner. Specifically, all permutations of each started job can be obtained, and permutations that meet the following condition can be deleted to obtain the target permutation: the next process module to be entered by the preceding started job is occupied by the next started job (i.e., the subsequent started job occupies the next process module to be entered by the preceding started job); scheduling planning (e.g., Move and dwell time planning) is performed on each target permutation to find the optimal permutation.
[0100] The following is combined Figure 8 Let's illustrate the above pruning strategy with an example. For instance... Figure 8As shown, there are 5 jobs participating in the scheduling calculation within the process area: Job1, Job2, Job3, Job4, and Job5. The calculation rule used in the first feasible implementation is to traverse all permutations of the 5 jobs (i.e., 120 scenarios) until all permutation sets have been traversed or a feasible solution has been found. The core idea of the pruning strategy used in the second feasible implementation is to reduce unnecessary traversal combinations based on the material position in the tank. Figure 8 There are scenarios in which pruning can be done. Figure 8 Job5 is currently in Tank3 and is about to enter Tank4 and Tank5, but Tank4 is currently occupied by Job4. Job4 is currently in Tank4 and is about to enter Tank7, but Tank7 is currently occupied by Job2. This is based on the idea that the next process module to be entered by a previously started Job is being occupied by a subsequently started Job. Figure 8 There are at least 12 possible pruning combinations in the current state. For example, the following include 6 combinations of [Job5, Job4]: [Job5, Job4, Job3, Job2, Job1], [Job5, Job4, Job3, Job1, Job2], [Job5, Job4, Job1, Job2, Job3], [Job5, Job4, Job1, Job3, Job2], [Job5, Job4, Job2, Job1, Job3], [Job5, Job4, Job2, Job3] The following are six combinations of [Job1], including [Job4, Job2]: [Job4, Job2, Job5, Job1, Job3], [Job4, Job2, Job5, Job3, Job1], [Job4, Job2, Job1, Job5, Job3], [Job4, Job2, Job1, Job3, Job5], [Job4, Job2, Job3, Job1, Job5], [Job4, Job2, Job3, Job5, Job1], etc. In practical applications, machine scenarios are far more complex than... Figure 8 The scenario is complex, allowing for the pruning of more combinations. The pruning strategy proposed in this application does not affect the search for feasible solutions during scheduling; it only eliminates combinations that cannot be scheduled successfully. Furthermore, the more branches are pruned, the less time the algorithm takes, enabling the machines to communicate successfully within the specified time and improving machine stability.
[0101] To clearly illustrate the process task initiation control method of this application embodiment, the following is combined with... Figure 9 The overall flow of the process task initiation control method according to embodiments of this application is described. For example... Figure 9 As shown, the process task initiation control method of this application embodiment may specifically include the following steps: S901, retrieves all permutations and combinations for each started job.
[0102] S902, using a pruning strategy, delete all permutations that meet the following conditions to obtain the target permutation: the next process module to be entered by the preceding started process task is occupied by the following started process task.
[0103] S903 performs scheduling planning for all permutations and combinations of objectives.
[0104] S904, obtain the list of started jobs and the list of jobs to be started. The list of started jobs includes started jobs that are still running in the process area, and the list of jobs to be started includes at least one job to be started that will not be affected by acid change.
[0105] S905, determine if the list of jobs to be started is empty.
[0106] If not, proceed to step S906. If yes, proceed to step S911.
[0107] S906, Calculate the process path length weight of the job to be started. w _1.
[0108] S907, Calculate the process path overlap weight of the job to be started. w _2.
[0109] S908, determine whether the first process module in the process path of the job to be started is available, and calculate the first conflict weight. w _3_1.
[0110] If yes, proceed to step S909. If no, proceed to step S910.
[0111] S909, determine the second conflict weight based on whether the time when the job to be started enters the process area conflicts with the original scheduling plan. w _3_2. Execute step S910.
[0112] S910, Calculate startup priority weight w _total= α _1* w _1+ α _2* w _2+ α _3* w _3_1* w _3_2.
[0113] S911 will initiate priority weighting wThe largest pending job (_total) is identified as the target pending job.
[0114] S912 schedules and plans all incomplete movement actions of the target process task to be started and all started process tasks.
[0115] In summary, the process task startup control method of this application, when determining the startup order of process tasks to be started (i.e., new jobs), determines the startup priority weight of each process task to be started based on the interference probability between the process task to be started and each already started process task (e.g., at least one of the process path length weight of the process task to be started, the process path overlap weight of the process task to be started and each already started process task, and the movement action conflict weight of the process task to be started and each already started process task). Based on the startup priority weight, the target new job to be started first is determined from the list of new jobs. Compared to related technologies where the startup order of new jobs strictly follows the issuance order, this application embodiment, based on the current state of the semiconductor process equipment, uses a queue-jumping strategy (corresponding to the above determination of the startup priority weight of each process task to be started, and thus determining the target new job) to detect the probability of interference between each new job and an already started job, and prioritizes starting the new job with the least interference, i.e., complementary process paths. This improves the utilization rate of each process module of the semiconductor process equipment, avoids some process modules of the semiconductor process equipment from being idle for a long time, thereby improving the overall utilization rate of the semiconductor process equipment and thus increasing production capacity. When scheduling and planning jobs that have already started in the process area, a pruning strategy is used to remove unnecessary traversal combinations, which reduces computation time and thus reduces the risk of machine downtime caused by the host computer and / or slave computer failing to receive the scheduling results in time.
[0116] This application also provides a semiconductor process apparatus. This semiconductor process apparatus (e.g., a semiconductor cleaning apparatus) includes a controller, a robotic arm, and multiple process modules. Taking a semiconductor cleaning apparatus as an example, such as... Figure 2 As shown, the semiconductor cleaning equipment includes: a controller ( Figure 2 (not shown in the image), robotic arm (including...) Figure 2 The system includes wafer transfer robot (FTR) 23, buffer robot (BFR) 24, wafer handling robot (WHR) 26, horizontal vertical (HV) robot 27, process transfer robot (PTR) 14, dual lift robot 30, and unidirectional lift robot 31, and multiple process modules (including...). Figure 2The eight process tanks (Tank 11): Tank 1 to Tank 8, cleaning tank (EWD) 12 and drying tank (Dry) 13 are located in the controller, which is located in the host computer and / or the slave computer. The controller includes at least one processor and at least one memory. The memory stores a computer program. When the computer program is executed by the processor, it implements the steps of the start-up control method embodiment of any of the above process tasks.
[0117] In this embodiment of the semiconductor process equipment, when determining the startup order of process tasks to be started (i.e., new jobs), the startup priority weight of each process task to be started is determined based on the interference probability between the process task to be started and each already started process task (e.g., at least one of the process path length weight of the process task to be started, the process path overlap weight of the process task to be started and each already started process task, and the movement action conflict weight of the process task to be started and each already started process task). Based on the startup priority weight, the target new job to be started first is determined from the list of new jobs. Compared to related technologies where the startup order of new jobs strictly follows the issuance order, this embodiment of the application, based on the current state of the semiconductor process equipment, uses a queue-jumping strategy (corresponding to the above-mentioned determination of the startup priority weight of each process task to be started, and thus the determination of the target new job) to detect the probability of interference between each new job and an already started job, and prioritizes the startup of the new job with the least interference, i.e., complementary process paths. This improves the utilization rate of each process module of the semiconductor process equipment, avoids long-term idleness of certain process modules, thereby improving the overall utilization rate of the semiconductor process equipment and thus increasing production capacity. When scheduling and planning jobs that have already started in the process area, a pruning strategy is used to remove unnecessary traversal combinations, which reduces computation time and thus reduces the risk of machine downtime caused by the host computer and / or slave computer failing to receive the scheduling results in time.
[0118] This application also proposes a readable storage medium storing one or more computer programs, the one or more computer programs including instructions. When the program or instructions are executed by a processor in a semiconductor process apparatus including multiple applications, the processor in the semiconductor process apparatus is able to execute various processes of the above-described process task startup control method embodiments, and is specifically used to execute the steps of any of the above-described process task startup control method embodiments.
[0119] In this embodiment of the readable storage medium, when determining the startup order of process tasks to be started (i.e., new jobs), the startup priority weight of each process task to be started is determined based on the interference probability between the process task to be started and each already started process task (e.g., at least one of the process path length weight of the process task to be started, the process path overlap weight of the process task to be started and each already started process task, and the movement action conflict weight of the process task to be started and each already started process task). Based on the startup priority weight, the target new job to be started first is determined from the list of new jobs. Compared to related technologies where the startup order of new jobs strictly follows the issuance order, this embodiment of the application, based on the current state of the semiconductor process equipment, uses a queue-jumping strategy (corresponding to the above determination of the startup priority weight of each process task to be started, and thus determining the target new job) to detect the probability of interference between each new job and an already started job, and prioritizes starting the new job with the least interference, i.e., complementary process paths. This improves the utilization rate of each process module of the semiconductor process equipment, avoids long-term idleness of certain process modules of the semiconductor process equipment, thereby improving the overall utilization rate of the semiconductor process equipment and thus increasing production capacity. When scheduling and planning jobs that have already started in the process area, a pruning strategy is used to remove unnecessary traversal combinations, which reduces computation time and thus reduces the risk of machine downtime caused by the host computer and / or slave computer failing to receive the scheduling results in time.
[0120] The systems, devices, modules, or units described in the above embodiments can be implemented by computer chips or entities, or by products with certain functions. A typical implementation device is a computer. Specifically, a computer can be, for example, a personal computer, laptop computer, cellular phone, camera phone, smartphone, personal digital assistant, media player, navigation device, email device, game console, tablet computer, wearable device, or any combination of these devices.
[0121] For ease of description, the above devices are described separately by function as various units. Of course, in implementing this application, the functions of each unit can be implemented in one or more software and / or hardware.
[0122] Those skilled in the art will understand that embodiments of this application can be provided as methods, systems, or computer program products. Therefore, this application can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this application can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0123] This application is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this application. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart... Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.
[0124] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.
[0125] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of action steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.
[0126] In a typical configuration, a computing device includes one or more processors (CPU), input / output interfaces, network interfaces, and memory.
[0127] Memory may include non-persistent storage in computer-readable media, such as random access memory (RAM) and / or non-volatile memory, such as read-only memory (ROM) or flash RAM. Memory is an example of computer-readable media.
[0128] Computer-readable media includes both permanent and non-permanent, removable and non-removable media that can store information using any method or technology. Information can be computer-readable instructions, data structures, modules of programs, or other data. Examples of computer storage media include, but are not limited to, phase-change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, CD-ROM, digital versatile optical disc (DVD) or other optical storage, magnetic tape, magnetic magnetic disk storage or other magnetic storage devices, or any other non-transferable medium that can be used to store information accessible by a computing device. As defined herein, computer-readable media does not include transient computer-readable media, such as modulated data signals and carrier waves.
[0129] It should also be noted that the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such process, method, article, or apparatus. Unless otherwise specified, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes that element.
[0130] This application can be described in the general context of computer-executable instructions, such as program modules, that are executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc., that perform a specific task or implement a specific abstract data type. This application can also be practiced in distributed computing environments where tasks are performed by remote processing devices connected via a communication network. In distributed computing environments, program modules can reside in local and remote computer storage media, including storage devices.
[0131] The various embodiments in this specification are described in a progressive manner. Similar or identical parts between embodiments can be referred to mutually. Each embodiment focuses on describing the differences from other embodiments. In particular, the system embodiments are basically similar to the method embodiments, so the description is relatively simple; relevant parts can be referred to the descriptions in the method embodiments.
[0132] The above are merely embodiments of this application and are not intended to limit the scope of this application. Various modifications and variations can be made to this application by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the scope of the claims of this application.
Claims
1. A method for starting a process task, characterized in that, include: Obtain a list of started process tasks and a list of process tasks to be started. The list of started process tasks includes started process tasks that are still being executed in the process area, and the list of process tasks to be started includes at least one process task to be started. Determine the start priority weight of each of the process tasks to be started, wherein the start priority weight is related to the interference probability between the process task to be started and each of the process tasks already started; Based on the startup priority weight of each of the aforementioned process tasks to be started, the target process tasks to be started in the list of process tasks to be started are determined. Scheduling and planning are performed for all incomplete movement actions of the target process task to be started and each of the started process tasks.
2. The method according to claim 1, characterized in that, The startup priority weight is determined based on at least one of the following weights: The weights of the process path length of the process task to be started, the overlap of the process paths between the process task to be started and each of the already started process tasks, and the conflict weights of the movement actions between the process task to be started and each of the already started process tasks.
3. The method according to claim 1, characterized in that, Obtain the list of process tasks to be started, including: If there is at least one process task to be started that is not affected by acid replacement in the process tank, add at least one process task to be started that is not affected by acid replacement in the process tank to the list of process tasks to be started; or, If there are zero process tasks to be started that will not be affected by the acid replacement in the process tank, add at least one process task to be started that will be affected by the acid replacement in the process tank to the list of process tasks to be started, arranged in reverse order of the degree of impact.
4. The method according to claim 2, characterized in that, The process path length weight of the process task to be started is determined through the following steps: The reciprocal of the process path length of the process task to be started is determined as the process path length weight of the process task to be started.
5. The method according to claim 2, characterized in that, The overlap weight of the process paths between the process task to be started and each of the already started process tasks is determined through the following steps: Calculate the ratio of the length of the process path of the process task to be started occupied by each of the already started process tasks to the length of the process path of the process task to be started. The overlap weight of the process paths between the process task to be started and each of the already started process tasks is determined based on the ratio.
6. The method according to claim 2, characterized in that, The conflict weights between the movement actions of the process task to be started and each of the already started process tasks are determined through the following steps: Based on the process task to be started and each of the started process tasks, determine whether there is a movement action conflict in the first process module in the process path of the process task to be started, and determine the first conflict weight. If there is no movement action conflict between the process task to be started and each of the already started process tasks in the first process module, then the second conflict weight is determined based on whether there is a movement action conflict between the process task to be started and each of the already started process tasks in the process path of the process task to be started, excluding the first process module. The product of the first conflict weight and the second conflict weight is determined as the conflict weight of the movement action between the process task to be started and each of the already started process tasks.
7. The method according to claim 6, characterized in that, Whether there are movement conflicts between the process task to be started and each of the already started process tasks in the process path of the process task to be started, excluding the first process module, is determined by the following steps: If the process task to be started meets the following condition: the first time interval during which the process task to be started enters another process module (excluding the first process module) to execute the process intersects with the second time interval during which the other process modules are occupied by each of the started process tasks, then it is determined that the process task to be started and each of the started process tasks have a movement action conflict in the other process modules.
8. The method according to claim 2, characterized in that, Determining the startup priority weight of each of the process tasks to be started includes: The start priority weight is determined based on the process path length weight of the process task to be started, the process path overlap weight between the process task to be started and each of the started process tasks, the movement conflict weight between the process task to be started and each of the started process tasks, and their respective manual intervention weights.
9. The method according to claim 1, characterized in that, The step of determining the target process task to be started in the list of process tasks to be started based on the start priority weight of each of the process tasks to be started includes: The process task to be started with the highest startup priority weight is determined as the target process task to be started.
10. The method according to claim 9, characterized in that, The step of determining the process task to be started with the highest startup priority weight as the target process task to be started includes: If there are multiple process tasks with the highest startup priority weight, then the process task with the highest startup priority weight and the highest sorted order is determined as the target process task to be started.
11. The method according to claim 1, characterized in that, The process tasks to be started in the list are arranged in ascending order of issuance time.
12. The method according to claim 1, characterized in that, Before obtaining the list of started process tasks and the list of process tasks to be started, the process also includes: Obtain all permutations and combinations of each of the initiated process tasks; Delete all permutations that satisfy the following condition to obtain the target permutation: The next process module to be entered by the preceding process task is occupied by the following process task. Scheduling and planning are performed for all permutations and combinations of the aforementioned objectives.
13. A semiconductor process apparatus, characterized in that, include: The controller includes a robot and multiple process modules. The controller includes at least one processor and at least one memory, in which a computer program is stored. When executed by the processor, the computer program implements the steps of the method as described in any one of claims 1-12.
Citation Information
Patent Citations
Application program starting method and device, computer equipment and storage medium
CN110109737A
Material scheduling method and device for semiconductor processing equipment
CN112987674A
Task scheduling method and semiconductor process equipment
CN114462781A
Batch task scheduling method and system, electronic equipment and storage medium
CN117149388A