Semiconductor production scheduling method, device and equipment and storage medium

By performing chromosome encoding and iterative calculation of the bottleneck process of the semiconductor production line, the production schedule is optimized, and the problem of low calculation efficiency of heuristic algorithms is solved, and the production efficiency and equipment utilization are improved.

CN120235440APending Publication Date: 2025-07-01SHANGHAI INTEGRATED CIRCUIT RESEARCH & DEVELOPMENT CENTER CO LTD
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202311863273.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-12-29
Publication Date
2025-07-01

AI Technical Summary

Technical Problem

In semiconductor production lines, the calculation efficiency is low when sorting bottleneck processes using heuristic algorithms, resulting in low production efficiency and inability to deal with the complex and changeable situations in the bottleneck process processing process in a timely manner.

Method used

By encoding the bottleneck process of semiconductor products and iteratively compute the genetic algorithm based on the decoding results, the optimized target chromosome and target production schedule are determined, the tuning problem of bottleneck process sorting is simplified, and the solution scale of the optimization bottleneck process production schedule is reduced.

Benefits of technology

It improves semiconductor production efficiency, enhances the system's ability to deal with complex and variable processing processes, and improves the utilization rate and production efficiency of bottleneck process equipment.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120235440A_ABST
    Figure CN120235440A_ABST
Patent Text Reader

Abstract

The invention provides a semiconductor production scheduling method and device, equipment and a storage medium. The method comprises the following steps: acquiring an initial population of a plurality of batches of products; decoding each chromosome in the initial population to obtain the scheduling time corresponding to each chromosome; performing genetic algorithm iterative computation based on a preset fitness function and the scheduling time corresponding to each chromosome, and outputting N chromosomes with relatively large fitness function values; aiming at the N chromosomes, respectively calculating average in-process waiting time corresponding to each non-bottleneck process, and determining a target chromosome according to the average in-process waiting time corresponding to each non-bottleneck process; and decoding the target chromosome to obtain target scheduling time corresponding to the target chromosome, so that all bottleneck processes and non-bottleneck processes of all batches of products are executed according to the target scheduling time to produce all batches of products. The method provided by the invention is helpful for improving the production efficiency of the semiconductor.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the technical field of semiconductor production, and in particular, to a semiconductor production scheduling method, device, equipment, and storage medium. Background Art

[0002] Semiconductor production lines are considered to be the most complex manufacturing systems today, with characteristics such as multiple re-entries, large scale, complex processes, multiple products, and uncertainties. Among them, the bottleneck problem is the key issue in the optimization scheduling of semiconductor production lines. Those very few bottleneck resources determine the utilization degree of the majority of non-bottleneck resources and also determine the effective output of the system.

[0003] In some implementations, a heuristic algorithm is used to optimize the sorting of semiconductor bottleneck processes. However, due to the large scale of semiconductor production, there is a problem of low computational efficiency when using this algorithm for optimization, resulting in low semiconductor production efficiency. Summary of the Invention

[0004] The present application provides a semiconductor production scheduling method, device, equipment, and storage medium to solve the problem of low semiconductor production efficiency.

[0005] In a first aspect, the present application provides a semiconductor production scheduling method, which includes:

[0006] Obtain an initial population of multiple batches of products; where the batch products are semiconductor products, and the initial population includes at least two chromosomes. Any chromosome is an integer encoding of all bottleneck processes of all batch products. A chromosome is composed of multiple genes, and the integer on each gene represents the batch number of the batch product. The total number of times the gene with the same batch number appears in the chromosome represents the total number of bottleneck processes of the batch product. The position of the gene in the chromosome represents the processing priority of the bottleneck process;

[0007] Decode each chromosome in the initial population respectively to obtain the scheduling time corresponding to each chromosome. The scheduling time includes the planned start time and the planned completion time of the bottleneck process corresponding to any gene in the chromosome;

[0008] Perform genetic algorithm iterative calculation based on a preset fitness function and the scheduling time corresponding to each chromosome, and output N chromosomes with larger fitness function values, where N is an integer greater than 1;

[0009] For the N chromosomes, calculate the average waiting time of work-in-process corresponding to each non-bottleneck process respectively, and determine the target chromosome according to the average waiting time of work-in-process corresponding to each non-bottleneck process; the average waiting time of work-in-process corresponding to each non-bottleneck process corresponding to the target chromosome is less than or equal to a preset threshold;

[0010] Decode the target chromosome to obtain the target production scheduling time corresponding to the target chromosome, so that all bottleneck processes and non-bottleneck processes of all batches of products are executed according to the target production scheduling time, in order to produce all batches of products.

[0011] In a possible implementation, decode each chromosome in the initial population to obtain the production scheduling time corresponding to each chromosome, including:

[0012] Initialize the bottleneck process buffer;

[0013] For any chromosome, activate the genes corresponding to each bottleneck process of the first batch of products, and simulate the processing of the first bottleneck process of the first batch of products;

[0014] Based on the judgment of whether there is a buffer in the bottleneck process buffer, activate the remaining genes on the chromosome in ascending order until all genes on the chromosome are activated;

[0015] Each bottleneck process is simulated for processing according to the processing priority corresponding to the gene on the chromosome, and each non-bottleneck process is simulated for processing according to the heuristic rule scheduling until the simulation of all processes of all batches of products is completed, and the planned time corresponding to each chromosome is obtained. The planned time includes the virtual start time and virtual completion time corresponding to each process in all processes;

[0016] Based on the preset completion time and the planned time, perform reverse scheduling to obtain the production scheduling time corresponding to the chromosome.

[0017] In a possible implementation, based on the preset completion time and the planned time, perform reverse scheduling to obtain the production scheduling time corresponding to the chromosome, including:

[0018] Determine the planned completion time of the process with the latest virtual completion time according to the preset completion time; the planned start time of the process with the latest virtual completion time is the planned completion time minus the first duration corresponding to the latest process, and the first duration corresponding to the latest process is the difference between the virtual completion time and virtual start time of the latest process;

[0019] For any other process, subtract the second duration corresponding to any process from the planned start time of the subsequent process of any process to obtain the planned completion time of any process. The second duration corresponding to any process is the difference between the virtual start time of the subsequent process of any process and the virtual completion time of any process;

[0020] Subtract the first duration corresponding to any process from the planned completion time of any process to obtain the planned start time of any process.

[0021] In a possible implementation manner, determining a target chromosome according to the average waiting time of work-in-process corresponding to each non-bottleneck process includes:

[0022] If the average waiting time of work-in-process corresponding to each non-bottleneck process is less than or equal to a preset threshold, then determine the chromosome with the largest fitness function value among the N chromosomes as the target chromosome;

[0023] If there is any non-bottleneck process whose average waiting time of work-in-process is greater than the preset threshold, then determine the non-bottleneck process as a bottleneck process, and loop to execute the steps from obtaining the initial population of multiple batches of products to calculating the average waiting time of work-in-process corresponding to each non-bottleneck process for the N chromosomes, and determining the target chromosome according to the average waiting time of work-in-process corresponding to each non-bottleneck process, until when the loop stop condition is reached, output the target chromosome, and the target chromosome is the chromosome with the largest fitness function value among the N chromosomes output in the last loop;

[0024] Wherein, the loop stop condition is any one of the following: the average waiting time of work-in-process corresponding to each non-bottleneck process is less than or equal to the preset threshold, the number of non-bottleneck processes becomes 0, and the number of loops reaches the preset maximum number of loops.

[0025] In a possible implementation manner, performing genetic algorithm iterative calculation based on a preset fitness function and the scheduling time corresponding to each chromosome, and outputting N chromosomes with larger fitness function values, includes:

[0026] According to the preset fitness function and the scheduling time corresponding to each chromosome, calculate the fitness function values of all chromosomes in the initial population, and perform selection operation, crossover operation and mutation operation on the initial population after calculating the fitness function values to generate the next generation population;

[0027] Calculate the fitness function values of each chromosome in the next generation population, and when the iteration stop condition is met, output N chromosomes with larger fitness function values in the next generation population; wherein, the iteration stop condition is that the fitness function value of any chromosome in the next generation population reaches the preset function value or the number of iterations reaches the preset maximum number of iterations.

[0028] In a possible implementation manner, performing selection operation, crossover operation and mutation operation on the initial population after calculating the fitness function values to generate the next generation population, includes:

[0029] Determine that the genetic operations of the genetic algorithm include a selection operation based on the roulette wheel method, a crossover operation based on the crossover probability, and a mutation operation based on the mutation probability;

[0030] Perform a selection operation on the initial population after calculating the fitness function values by using the roulette wheel method, and select a preset number of chromosomes as the parental population;

[0031] Based on the crossover probability, two chromosomes sequentially selected from the parental population are used as the first parental chromosome and the second parental chromosome. A crossover operation is performed on the first parental chromosome and the second parental chromosome to obtain two offspring chromosomes. The two offspring chromosomes obtained from the crossover operation are added to the parental population to obtain an offspring population.

[0032] Based on the mutation probability, the chromosome selected from the offspring population is used as the third parental chromosome. A mutation operation is performed on the third parental chromosome to obtain an offspring chromosome, and the offspring chromosome obtained from the mutation operation is added to the offspring population to obtain the next-generation population.

[0033] In a second aspect, the present application provides a semiconductor production scheduling device, including an acquisition module, a first decoding module, an iteration module, a determination module, and a second decoding module, where

[0034] The acquisition module is used to acquire the initial population of multiple batches of products; where the batch products are semiconductor products, the initial population includes at least two chromosomes, any chromosome is an integer encoding of all bottleneck processes of all batch products, the chromosome is composed of multiple genes, and the integer on each gene represents the batch number of the batch product. The total number of times the gene with the same batch number appears in the chromosome represents the total number of bottleneck processes of the batch product, and the position of the gene in the chromosome represents the processing priority of the bottleneck process;

[0035] The first decoding module is used to decode each chromosome in the initial population respectively to obtain the scheduling time corresponding to each chromosome. The scheduling time includes the planned start time and the planned completion time of the bottleneck process corresponding to any gene in the chromosome;

[0036] The iteration module is used to perform genetic algorithm iterative calculation based on a preset fitness function and the scheduling time corresponding to each chromosome, and output N chromosomes with larger fitness function values, where N is an integer greater than 1;

[0037] The determination module is used to calculate the average in-process waiting time corresponding to each non-bottleneck process for the N chromosomes respectively, and determine the target chromosome according to the average in-process waiting time corresponding to each non-bottleneck process; the average in-process waiting time corresponding to each non-bottleneck process corresponding to the target chromosome is less than or equal to a preset threshold;

[0038] The second decoding module is used to decode the target chromosome to obtain the target scheduling time corresponding to the target chromosome, so that all bottleneck processes and non-bottleneck processes of all batch products are executed according to the target scheduling time to produce all batch products.

[0039] In a possible implementation manner, the first decoding module is specifically used for:

[0040] Initialize the buffer of the bottleneck process;

[0041] For any chromosome, activate the genes corresponding to each bottleneck process of the first batch of products, and simulate the processing of the first bottleneck process of the first batch of products;

[0042] Based on the judgment of whether there is a buffer in the bottleneck process buffer, activate the remaining genes on the chromosome in ascending order until all genes on the chromosome are activated;

[0043] Each bottleneck process is simulated for processing according to the processing priority corresponding to the gene on the chromosome, and each non-bottleneck process is simulated for processing according to the heuristic rule scheduling until the simulation of all processes of all batches of products is completed, and the planned time corresponding to each chromosome is obtained. The planned time includes the virtual start time and virtual completion time corresponding to each process in all processes;

[0044] Based on the preset completion time and the planned time, perform reverse scheduling to obtain the scheduling time corresponding to the chromosome.

[0045] In a possible implementation manner, the first decoding module is specifically used for:

[0046] Determine the planned completion time of the process with the latest virtual completion time according to the preset completion time; the planned start time of the process with the latest virtual completion time is the planned completion time minus the first duration corresponding to the latest process, and the first duration corresponding to the latest process is the difference between the virtual completion time and virtual start time of the latest process;

[0047] For any other process, the planned completion time of any process is obtained by subtracting the second duration corresponding to any process from the planned start time of the subsequent process of any process. The second duration corresponding to any process is the difference between the virtual start time of the subsequent process of any process and the virtual completion time of any process;

[0048] The planned start time of any process is obtained by subtracting the first duration corresponding to any process from the planned completion time of any process.

[0049] In a possible implementation manner, the determination module is specifically used for:

[0050] If the average in-process waiting time corresponding to each non-bottleneck process is less than or equal to the preset threshold, determine the chromosome with the largest fitness function value among the N chromosomes as the target chromosome;

[0051] If the average waiting time of work-in-process corresponding to any non-bottleneck process is greater than the preset threshold, then determine the non-bottleneck process as the bottleneck process, and loop through the steps from obtaining the initial population of multiple batches of products to calculating the average waiting time of work-in-process corresponding to each non-bottleneck process for N chromosomes, and determining the target chromosome based on the average waiting time of work-in-process corresponding to each non-bottleneck process, until when the loop stop condition is reached, output the target chromosome, where the target chromosome is the chromosome with the largest fitness function value among the N chromosomes output in the last loop;

[0052] Among them, the loop stop condition is any one of the following: the average waiting time of work-in-process corresponding to each non-bottleneck process is less than or equal to the preset threshold, the number of non-bottleneck processes becomes 0, or the number of loops reaches the preset maximum number of loops.

[0053] In a possible implementation, the iteration module is specifically used for:

[0054] Calculate the fitness function values of all chromosomes in the initial population according to the preset fitness function and the scheduling time corresponding to each chromosome, and perform selection operation, crossover operation and mutation operation on the initial population after calculating the fitness function values to generate the next generation population;

[0055] Calculate the fitness function values of each chromosome in the next generation population, and when the iteration stop condition is met, output the N chromosomes with larger fitness function values in the next generation population; among them, the iteration stop condition is that the fitness function value of any chromosome in the next generation population reaches the preset function value or the number of iterations reaches the preset maximum number of iterations.

[0056] In a possible implementation, the iteration module is specifically used for:

[0057] Determine that the genetic operations of the genetic algorithm include selection operation based on roulette wheel method, crossover operation based on crossover probability and mutation operation based on mutation probability;

[0058] Perform selection operation on the initial population after calculating the fitness function values by using the roulette wheel method, and select a preset number of chromosomes as the parental population;

[0059] Based on the crossover probability, take two chromosomes sequentially selected from the parental population as the first parental chromosome and the second parental chromosome, perform crossover operation on the first parental chromosome and the second parental chromosome to obtain two offspring chromosomes, and add the two offspring chromosomes obtained by the crossover operation to the parental population to obtain the offspring population;

[0060] Based on the mutation probability, select chromosomes from the offspring population as the third parental chromosomes, perform mutation operations on the third parental chromosomes to obtain offspring chromosomes, and add the offspring chromosomes obtained by the mutation operations to the offspring population to obtain the next-generation population.

[0061] In a third aspect, the present application provides an electronic device, including: a processor and a memory communicatively connected to the processor; the memory stores computer-executable instructions; the processor executes the computer-executable instructions stored in the memory, so that the processor executes the semiconductor production scheduling method described in the first aspect.

[0062] In a fourth aspect, the present application provides a computer-readable storage medium, in which computer-executable instructions are stored, and when the computer-executable instructions are executed by a processor, they are used to implement the semiconductor production scheduling method described in the first aspect.

[0063] In a fifth aspect, the present application provides a computer program product, including a computer program, which when executed by a processor, implements the semiconductor production scheduling method described in the first aspect.

[0064] In a sixth aspect, the present application provides a chip, on which a computer program is stored, and when the computer program is executed by the chip, it implements the semiconductor production scheduling method described in the first aspect.

[0065] In a possible implementation, the chip is a chip in a chip module.

[0066] The present application provides a semiconductor production scheduling method, device, equipment and storage medium. This method combines chromosome encoding and decoding methods to adjust the processing priorities of all bottleneck processes of each batch of products, that is, optimize the scheduling times of all bottleneck processes. Compared with optimizing by heuristic algorithms, optimizing through chromosome encoding and decoding methods can simplify the optimization problem of semiconductor bottleneck process sorting, reduce the solution scale of optimizing the bottleneck process scheduling time, thereby improving the solution efficiency. At the same time, the improved solution efficiency enables each bottleneck process to execute more quickly according to the target scheduling time, thus achieving the effect of improving production efficiency. BRIEF DESCRIPTION OF THE DRAWINGS

[0067] The accompanying drawings herein are incorporated into the specification and constitute a part of this specification, showing embodiments consistent with the present application, and are used together with the specification to explain the principles of the present application.

[0068] Figure 1 It is a schematic diagram of a network architecture corresponding to an application scenario provided by an embodiment of the present application;

[0069] Figure 2Flow schematic of a semiconductor production scheduling method provided by an embodiment of the present application Figure 1 ;

[0070] Figure 3 Flow schematic of a semiconductor production scheduling method provided by an embodiment of the present application Figure 2 ;

[0071] Figure 4 Schematic diagram of a crossover operation provided by an embodiment of the present application;

[0072] Figure 5 Schematic diagram of a mutation operation provided by an embodiment of the present application;

[0073] Figure 6 Schematic diagram of the structure of a semiconductor production scheduling device provided by an embodiment of the present application;

[0074] Figure 7 Schematic diagram of the hardware structure of an electronic device provided by an embodiment of the present application.

[0075] Through the above-mentioned drawings, specific embodiments of the present application have been shown, and there will be more detailed descriptions hereinafter. These drawings and textual descriptions are not intended to limit the scope of the concept of the present application in any way, but to illustrate the concept of the present application to those skilled in the art by referring to specific embodiments. Detailed implementation manners

[0076] Here, the exemplary embodiments will be described in detail, and the examples are shown in the drawings. When the following description refers to the drawings, unless otherwise indicated, the same numbers in different drawings represent the same or similar elements. The implementation manners described in the following exemplary embodiments do not represent all implementation manners consistent with the present application. On the contrary, they are merely examples of devices and methods consistent with some aspects of the present application as detailed in the appended claims.

[0077] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data for analysis, stored data, displayed data, etc.) involved in the present application are all information and data authorized by the user or fully authorized by all parties, and the collection, use, and processing of relevant data need to comply with relevant laws, regulations, and standards, and corresponding operation entrances are provided for the user to choose to authorize or reject.

[0078] In the prior art, a heuristic algorithm is used to optimize the sorting of semiconductor bottleneck processes. The heuristic algorithm can achieve good results in solving small and medium-sized production scheduling problems. However, the semiconductor production scale is large, and it has characteristics such as complex constraints and uncertainties. Therefore, when using this heuristic algorithm for optimization, there is a problem of low computational efficiency, which in turn leads to low semiconductor production efficiency. In addition, there may be a situation where non-bottleneck processes become bottleneck processes during the processing of semiconductor bottleneck processes. At this time, the low computational efficiency cannot cope with the complex and changeable situations during the processing of semiconductor bottleneck processes in a timely manner, or the ability to cope with the complex and changeable situations during the processing of semiconductor bottleneck processes is poor.

[0079] In view of this, an embodiment of the present application provides a semiconductor production scheduling method. This method encodes the bottleneck processes of semiconductor products by chromosomes, determines an optimized target chromosome based on the decoding result, and obtains an optimized target scheduling time based on the optimized target chromosome. Compared with the optimization using the heuristic algorithm, optimizing based on the chromosome encoding and decoding method can simplify the optimization problem of semiconductor bottleneck process sorting, reduce the solution scale of optimizing the bottleneck process scheduling time, thereby improving the solution efficiency. At the same time, the improvement of the solution efficiency enables each bottleneck process to execute more quickly according to the target scheduling time, thus achieving the effect of improving production efficiency.

[0080] Exemplarily, Figure 1 shows a schematic diagram of a network architecture corresponding to an application scenario provided by an embodiment of the present application. As Figure 1 shown, this network architecture may include electronic device 1, electronic device 2, a production simulator, a bottleneck process area, and a non-bottleneck process area. Among them, a manufacturing execution system (MES) is installed in electronic device 1, a production simulator is installed in electronic device 2, the bottleneck process area includes at least one bottleneck process, and the non-bottleneck processes in the non-bottleneck process area may be set as bottleneck processes and moved to the bottleneck process area. Electronic device 1 is respectively connected to electronic device 2, the bottleneck process area, and the non-bottleneck process area. The connection of electronic device 1 to the bottleneck process area and the non-bottleneck process area can be understood as that electronic device 1 is respectively connected to the devices to which the bottleneck processes in the bottleneck process area belong and the devices to which the non-bottleneck processes in the non-bottleneck process area belong.

[0081] In an embodiment of the present application, MES can be used to collect relevant information of batch products. Among them, the relevant information of batch products may include, for example, the batch number of batch products and the total number of bottleneck process steps, etc.

[0082] In an embodiment of the present application, the user can specify or set one or more processes as bottleneck processes in the production simulator according to experience.

[0083] In the embodiments of the present application, the bottleneck process of a semiconductor can be understood as the process that restricts the system performance in a semiconductor production system. Or rather, when the production capacity of a certain process in the semiconductor production system reaches its limit, it becomes the bottleneck process and restricts the performance of the entire system. The bottleneck process of a semiconductor can be understood as the processing technology that includes the bottleneck process.

[0084] In one application scenario, the production simulator can obtain the relevant information of batch products from the MES in response to the start instruction input by the user or regularly obtain the relevant information of batch products from the MES, so that the production simulator can obtain the target scheduling time based on the semiconductor production scheduling method provided by the embodiments of the present application. The production simulator can also send the target scheduling time to the MES, so that all bottleneck processes and non-bottleneck processes of all batch products are executed according to the target scheduling time, so as to produce all batch products.

[0085] Exemplarily, the semiconductor production scheduling method may include: obtaining an initial population of multiple batch products; wherein, the batch products are semiconductor products, the initial population includes at least two chromosomes, any chromosome is an integer encoding of all bottleneck processes of all batch products, the chromosome is composed of multiple genes, and the integer on each gene represents the batch number of the batch product, the total number of times the gene with the same batch number appears in the chromosome represents the total number of bottleneck processes of the batch product, and the position of the gene in the chromosome represents the processing priority of the bottleneck process; respectively decoding each chromosome in the initial population to obtain the scheduling time corresponding to each chromosome, and the scheduling time includes the planned start time and the planned completion time of the bottleneck process corresponding to any gene in the chromosome; performing genetic algorithm iterative calculation based on a preset fitness function and the scheduling time corresponding to each chromosome, and outputting N chromosomes with larger fitness function values, where N is an integer greater than 1; for the N chromosomes, respectively calculate the average waiting time of work-in-process corresponding to each non-bottleneck process, and determine the target chromosome according to the average waiting time of work-in-process corresponding to each non-bottleneck process; the average waiting time of work-in-process corresponding to each non-bottleneck process corresponding to the target chromosome is less than or equal to a preset threshold; decoding the target chromosome to obtain the target scheduling time corresponding to the target chromosome, so that all bottleneck processes and non-bottleneck processes of all batch products are executed according to the target scheduling time, so as to produce all batch products. Compared with optimizing by the heuristic algorithm, optimizing by the chromosome encoding and decoding method in this way can simplify the optimization problem of semiconductor bottleneck process sorting, so as to reduce the solution scale of optimizing the scheduling time of the bottleneck process, thereby improving the solution efficiency. At the same time, the improvement of the solution efficiency can enable each bottleneck process to execute more quickly based on the target scheduling time, thereby achieving the effect of improving production efficiency.

[0086] The technical solution of the present application and how the technical solution of the present application solves the above technical problems will be described in detail below with specific embodiments. The following several specific embodiments can be combined with each other, and the same or similar concepts or processes may not be described again in some embodiments. The embodiments of the present application will be described below with reference to the accompanying drawings.

[0087] Figure 2 Flow schematic of a semiconductor production scheduling method provided by an embodiment of the present application Figure 1 . The execution subject of this method can be Figure 1 The electronic device 2 equipped with a production simulator shown in the figure, and the specific execution subject can be determined according to the actual scenario. As Figure 2 shown in the figure, this method may include:

[0088] S201. Obtain the initial population of multiple batches of products; wherein, the batch products are semiconductor products, and the initial population includes at least two chromosomes. Any chromosome is an integer encoding of all bottleneck processes of all batch products. A chromosome is composed of multiple genes, and the integer on each gene represents the batch number of the batch product. The total number of times the gene with the same batch number appears in the chromosome represents the total number of bottleneck processes of the batch product, and the position of the gene in the chromosome represents the processing priority of the bottleneck process.

[0089] In the embodiments of the present application, the integer encoding can be understood as that a chromosome is composed of multiple genes, and the integer on each gene represents the batch number of the batch product. The total number of times the gene with the same batch number appears in the chromosome represents the total number of process steps of the batch product, and the position of the gene in the chromosome represents the processing priority of the process step. The genes represent the feeding sequence of the processing batches from small to large, and the smaller the number, the earlier the feeding.

[0090] Exemplarily, assuming there are 4 types of batch products, and each batch product has 3 bottleneck processes, the relationship table between the chromosome, the bottleneck process, and the processing priority of each bottleneck process can be shown in Table 1 for example.

[0091] Table 1

[0092]

[0093] As shown in Table 1, this chromosome is 424134231231. All 1s in this chromosome represent the first batch product (or the batch product with batch number 1). Similarly, all 2s represent the second batch product (or the batch product with batch number 2), all 3s represent the third batch product (or the batch product with batch number 3), and all 4s represent the fourth batch product (or the batch product with batch number 4).

[0094] The bottleneck process "4-1" corresponding to 4 at the first gene position in this chromosome represents the first bottleneck process of the fourth batch of products (or the batch of products with batch number 4); the bottleneck process "2-1" corresponding to 2 at the second gene position in this chromosome represents the first bottleneck process of the second batch of products (or the batch of products with batch number 2); the bottleneck process "4-2" corresponding to 4 at the third gene position in this chromosome represents the second bottleneck process of the fourth batch of products (or the batch of products with batch number 4). The bottleneck processes corresponding to the genes at the remaining gene positions in Table 1 are represented similarly and will not be elaborated here.

[0095] The left-to-right sorting in the chromosome represents the processing priority of the bottleneck processes. For example, 4 at the first gene position in the above chromosome 424134231231 represents a processing priority of 1, and 3 at the fifth gene position represents a processing priority of 5. The smaller the number, the higher the priority. When multiple batches of products are in the same semiconductor bottleneck process buffer, the batch of products with a higher priority will be processed by the semiconductor bottleneck process earlier.

[0096] In a possible implementation, an initial chromosome can be obtained first, and then M - 1 other chromosomes can be generated by randomly adjusting the deployment positions of the genes corresponding to different batch numbers on the initial chromosome, or M - 1 other chromosomes can be generated by randomly generating all the bottleneck processes of all batches of products. The M - 1 other chromosomes and the initial chromosome form an initial population; where M represents the total number of chromosomes in the initial population, and the embodiments of this application do not specifically limit the total number of chromosomes in the initial population and the method of obtaining the initial chromosome. Exemplarily, an initial chromosome can be obtained by performing random integer encoding on all the bottleneck processes of all batches of products.

[0097] S202. Decode each chromosome in the initial population to obtain the scheduling time corresponding to each chromosome. The scheduling time includes the planned start time and the planned completion time of the bottleneck process corresponding to any gene in the chromosome.

[0098] In the embodiments of this application, both the planned start time and the planned completion time are specific moments. For example, the planned start time is 8:30 am on June 23, 2023, and the planned completion time is 10 am on June 24, 2023.

[0099] In a possible implementation, the decoding of any chromosome can be understood as activating the chromosome in ascending order of the gene feeding sequence of the chromosome. During this period, simulate the processing of the bottleneck processes and non-bottleneck processes of each batch of products to obtain the scheduling time corresponding to each chromosome. In the embodiments of this application, the scheduling time can also include the planned start time and the planned completion time of each non-bottleneck process.

[0100] S203. Perform iterative calculations of the genetic algorithm based on a preset fitness function and the scheduling times corresponding to each chromosome, and output N chromosomes with larger fitness function values, where N is an integer greater than 1.

[0101] In the embodiments of the present application, the preset fitness function may be optimized with parameters such as the processing cycle, delivery date, inventory volume, and equipment utilization rate of the product. To improve the adaptability of the method proposed in the embodiments of the present application in multiple scenarios, when setting the preset fitness function in the embodiments of the present application, the weight setting for each parameter can also be increased.

[0102] S204. For the N chromosomes, calculate the average waiting time of work-in-process corresponding to each non-bottleneck process respectively, and determine the target chromosome according to the average waiting time of work-in-process corresponding to each non-bottleneck process; the average waiting time of work-in-process corresponding to each non-bottleneck process corresponding to the target chromosome is less than or equal to a preset threshold.

[0103] In the embodiments of the present application, each chromosome corresponds to a set of work-in-process waiting times. A set of work-in-process waiting times includes the work-in-process waiting times corresponding to each bottleneck process and the work-in-process waiting times corresponding to each non-bottleneck process. The N chromosomes correspond to N sets of work-in-process waiting times. For any non-bottleneck process, among the N sets of work-in-process waiting times, this non-bottleneck process corresponds to N work-in-process waiting times, and the average value of these N work-in-process waiting times is determined as the average work-in-process waiting time corresponding to this non-bottleneck process. Among them, the work-in-process waiting time corresponding to a process can be understood as the total waiting time of all batches of products from the previous process of this process to this process.

[0104] In a possible implementation, for any chromosome, the production simulator can call the simulator for simulation based on this chromosome and the relevant information of each non-bottleneck process, so as to obtain the work-in-process waiting times corresponding to each non-bottleneck process. Among them, the relevant information of the non-bottleneck process can be obtained synchronously or asynchronously by the production simulator when obtaining the relevant information of the batch products.

[0105] Furthermore, determine whether to update the bottleneck process according to whether the average waiting time of work-in-process corresponding to each non-bottleneck process is greater than the preset threshold, so as to determine the target chromosome.

[0106] Exemplarily, when the average waiting time corresponding to each non-bottleneck process is less than or equal to the preset threshold, the chromosome with the largest fitness function value among the N chromosomes is determined as the target chromosome; when there is at least one non-bottleneck process corresponding to the average waiting time of work-in-process greater than the preset threshold, this at least one non-bottleneck process is determined as the bottleneck process, update the bottleneck process correspondingly, and re-obtain the initial population based on the bottleneck process before the addition and the added bottleneck process to determine the target chromosome.

[0107] In another possible implementation, for any chromosome, the production simulator can call the emulator for simulation based on the chromosome, the relevant information of each non-bottleneck process, and the relevant information of each bottleneck process, so as to obtain the waiting time of work-in-process corresponding to each non-bottleneck process and the waiting time of work-in-process corresponding to each bottleneck process. Furthermore, based on the N chromosomes, the average waiting time of work-in-process corresponding to each non-bottleneck process and the average waiting time of work-in-process corresponding to each bottleneck process are obtained.

[0108] Further, it is determined whether to update the bottleneck process according to whether the average waiting time of work-in-process corresponding to each non-bottleneck process is greater than a preset threshold, and / or whether the average waiting time of work-in-process corresponding to each bottleneck process is less than or equal to the preset threshold, so as to determine the target chromosome.

[0109] Exemplarily, when the average waiting time of work-in-process corresponding to each non-bottleneck process is less than or equal to the preset threshold, and the average waiting time of work-in-process corresponding to each bottleneck process is greater than the preset threshold, the chromosome with the largest fitness function value among the N chromosomes is determined as the target chromosome; when there is at least one non-bottleneck process whose average waiting time of work-in-process is greater than the preset threshold, and / or there is a bottleneck process whose average waiting time of work-in-process is less than or equal to the preset threshold, the bottleneck process and the non-bottleneck process are updated accordingly, and the steps from obtaining the initial population to S204 are cyclically executed based on the updated bottleneck process until there is no update for both the bottleneck process and the non-bottleneck process, and the chromosome with the largest fitness function value among the N chromosomes output in the last cycle is determined as the target chromosome.

[0110] S205. Decode the target chromosome to obtain the target scheduling time corresponding to the target chromosome, so that all bottleneck processes and non-bottleneck processes of all batches of products are executed according to the target scheduling time, so as to produce all batches of products.

[0111] In a possible implementation, the decoding of the target chromosome can be understood as activating the target chromosome in ascending order of the gene feeding sequence of the target chromosome. During this period, the processing of the bottleneck processes and non-bottleneck processes of each batch of products is simulated to obtain the target scheduling time corresponding to the target chromosome, which is equivalent to adjusting the processing priorities of all bottleneck processes of each batch of products.

[0112] Optionally, when the production simulator simulates the processing of all bottleneck processes and non-bottleneck processes, results such as equipment utilization rate, product processing cycle, and completion time can be obtained based on the target scheduling time.

[0113] In the embodiment of the present application, the processing priority of all bottleneck processes of each batch of products is adjusted in combination with the chromosome encoding and decoding method, that is, the scheduling time of all bottleneck processes is optimized. Compared with the optimization by the heuristic algorithm, such optimization by the chromosome encoding and decoding method can simplify the optimization problem of semiconductor bottleneck process sorting, so as to reduce the solution scale of optimizing the scheduling time of the bottleneck process, thereby improving the solution efficiency. At the same time, the improvement of the solution efficiency can enable each bottleneck process to be executed more quickly based on the target scheduling time, thereby achieving the effect of improving production efficiency. In addition, since the preset fitness function is based on the parameters such as the product processing cycle, delivery period, stacking volume and equipment utilization rate as the optimization target, the sorting time corresponding to the chromosome output based on the preset fitness function can improve the utilization efficiency of the equipment to which the bottleneck process belongs, reduce the stacking of the bottleneck process, shorten the production cycle, and increase the system output.

[0114] Based on the above embodiments, in order to more clearly describe the technical solution of the present application, for example, please refer to Figure 3 , Figure 3 The schematic diagram shows a process of a semiconductor production scheduling method provided by an embodiment of the present application. Figure 2 The execution subject of this method can be Figure 1 The electronic device 2 equipped with the production simulator shown can be specifically executed by a subject according to the actual scenario. Figure 3 As shown, the method may include:

[0115] S301. Obtain relevant information of multiple batches of products and relevant information of bottleneck processes.

[0116] In the embodiment of the present application, the user can specify or set one or more processes as bottleneck processes in the production simulator based on experience.

[0117] S302, obtaining an initial population of multiple batches of products.

[0118] This step is similar or identical to the above step S201 and will not be described in detail here.

[0119] S303, initializing the bottleneck process buffer.

[0120] In the embodiment of the present application, initializing the bottleneck process buffer can be understood as clearing the cache in the bottleneck process buffer.

[0121] S304. For any chromosome, activate the genes corresponding to the bottleneck processes of the first batch of products, and simulate the first bottleneck process of processing the first batch of products.

[0122] S305. Based on the judgment of whether there is a buffer in the bottleneck process buffer, the remaining genes on the chromosome are activated in ascending order until all genes on the chromosome are activated.

[0123] S306. Each bottleneck process is simulated for processing according to the processing priority corresponding to the gene on the chromosome, and each non-bottleneck process is simulated for processing according to the heuristic rule scheduling until the simulation of all processes of all batches of products is completed, and the planned time corresponding to each chromosome is obtained. The planned time includes the virtual start time and virtual completion time corresponding to each process in all processes.

[0124] Among them, the heuristic rule scheduling can include, for example, any one of the following: first in first out (FIFO) rule, last in first out (LIFO) rule, shortest processing time (SPT) rule, etc.

[0125] Among them, the virtual start time and virtual completion time can be understood as the two ends of the duration of a process being processed. Or rather, the difference between the virtual completion time and the virtual start time corresponding to each process is the duration of the process being processed. For example, the virtual start time of the first process is 00, the virtual completion time of the first process is 12, the virtual start time of the second process is 16, and the virtual completion time of the second process is 20.

[0126] The following takes the chromosome in Table 1 as an example to exemplarily illustrate the process of activating all genes on the chromosome. Since there is no buffer in the bottleneck process buffer at the beginning, the 1-1 bottleneck process is first selected for simulation processing, that is, the batch product with batch number 1 is fed. At this time, the activated genes and the bottleneck processes of the batch products corresponding to the activated genes are shown in bold in Table 2.

[0127] Table 2

[0128]

[0129] After the simulation of the 1-1 bottleneck process is completed, if the first batch of products is simulated to enter the non-bottleneck process area and there is no buffer in the bottleneck process buffer, then the first batch of products is simulated to be processed in the non-bottleneck processes in the non-bottleneck process area according to the preset heuristic scheduling rules;

[0130] And, the 2-1 bottleneck process is selected for simulation processing, that is, the batch product with batch number 2 is fed. At this time, the activated genes and the bottleneck processes of the batch products corresponding to the activated genes are shown in bold in Table 3.

[0131] Table 3

[0132]

[0133] After the simulation processing of the 2-1 bottleneck process is completed, if the second batch of products are simulated to enter the non-bottleneck process area, while the first batch of products are simulated to enter the bottleneck process area, then simulate the processing of the 1-2 bottleneck process, and simulate the processing of the second batch of products on the non-bottleneck processes in the non-bottleneck process area according to the preset heuristic scheduling rules;

[0134] If the second batch of products are simulated to enter the non-bottleneck process area, while the first batch of products are still in the non-bottleneck process area and there is no buffer in the bottleneck process buffer, then activate the genes corresponding to the third batch of products and simulate the processing of the 3-1 bottleneck process; and so on, until all the remaining genes of the chromosome are activated, then the bottleneck processes in the bottleneck process are processed according to the processing priorities in Table 1, and the non-bottleneck processes are processed according to the preset heuristic scheduling rules until the simulation processing of all processes is completed, and the planned times corresponding to each chromosome are obtained.

[0135] S307. Perform backward scheduling based on the preset completion time and the planned time to obtain the scheduling time corresponding to the chromosome.

[0136] In the embodiment of the present application, during decoding, for any chromosome, before the activation of the chromosome is completed, if there is a buffer in the bottleneck process buffer, then simulate the processing according to the bottleneck processes in the buffer; when there is no buffer in the bottleneck process buffer, activate the genes of the next batch of products, so that the equipment to which the bottleneck process belongs will not be in an idle waiting state, which helps to improve the utilization rate of the equipment to which the bottleneck process belongs.

[0137] It should be understood that the above steps S303 to S307 are the specific implementations of the above step S202.

[0138] S308. Calculate the fitness function values of all chromosomes in the initial population according to the preset fitness function and the scheduling times corresponding to each chromosome, and perform selection operations, crossover operations, and mutation operations on the initial population for which the fitness function values have been calculated to generate the next generation population.

[0139] S309. Calculate the fitness function values of each chromosome in the next generation population, and when the iteration stop condition is satisfied, output the N chromosomes with larger fitness function values in the next generation population; where the iteration stop condition is that the fitness function value of any chromosome in the next generation population reaches the preset function value or the number of iterations reaches the preset maximum number of iterations.

[0140] It should be understood that the fact that the fitness function value of any chromosome in the next generation population reaches the preset function value can reflect that the fitness function value converges to the preset function value.

[0141] In the embodiments of the present application, based on the encoding and decoding method, the processing priorities of the bottleneck processes of each batch of products are adjusted through genetic operations, so as to obtain N chromosomes with the optimal fitness, providing data support for the calculation of the waiting time of work-in-process, and at the same time, providing a basis for obtaining the optimal chromosomes.

[0142] It should be understood that the above steps S308 to S309 are the specific implementations of the above step S203.

[0143] S310. For the N chromosomes, calculate the average waiting time of work-in-process corresponding to each non-bottleneck process respectively.

[0144] This step is similar to or the same as the above step S204, and will not be elaborated here.

[0145] S311. Determine whether the average waiting time of work-in-process corresponding to each non-bottleneck process is greater than a preset threshold. If not, perform step S312; if so, perform step S313.

[0146] S312. If the average waiting time of work-in-process corresponding to each non-bottleneck process is less than or equal to the preset threshold, determine the chromosome with the largest fitness function value among the N chromosomes as the target chromosome.

[0147] It should be understood that the larger the fitness function value, the better the corresponding chromosome, so that the optimal target sorting time can be obtained based on the optimal target chromosome.

[0148] In the embodiments of the present application, when the average waiting time of work-in-process corresponding to each non-bottleneck process is less than or equal to the preset threshold, that is, when the average waiting time of work-in-process corresponding to each non-bottleneck process is within the allowable range, there is no need to determine the non-bottleneck process as a bottleneck process, that is, there is no new bottleneck process. Therefore, the chromosome with the largest fitness function value among the N chromosomes with larger fitness function values output in the above step S309 is determined as the target chromosome.

[0149] S313. If there is any non-bottleneck process whose average waiting time of work-in-process is greater than the preset threshold, determine the non-bottleneck process as a bottleneck process, and loop to execute the steps from S302 to S311 until the loop stop condition is reached, and output the target chromosome, where the target chromosome is the chromosome with the largest fitness function value among the N chromosomes output in the last loop; among them, the loop stop condition is any one of the following: the average waiting time of work-in-process corresponding to each non-bottleneck process is less than or equal to the preset threshold, the number of non-bottleneck processes becomes 0, and the number of loops reaches the preset maximum number of loops.

[0150] It can be understood that in one loop, the number of non-bottleneck processes is at least reduced by 1 and can become 0.

[0151] In the embodiment of the present application, if the average waiting time of work-in-process corresponding to any non-bottleneck process is greater than a preset threshold, the non-bottleneck process is determined as a bottleneck process, that is, a new bottleneck process is added. When step S302 in the steps from S302 to S311 is executed cyclically, an initial population is re-obtained based on the bottleneck processes before the addition and the newly added bottleneck process, and then the steps from S303 to S311 are executed based on the re-obtained initial population to determine the target chromosome.

[0152] Exemplarily, assuming that 2 new bottleneck processes are added, the length of each chromosome in the re-obtained initial population is increased by 2*T, where T is the number of batches, that is, 2 new bottleneck processes are added to each batch of products in each chromosome.

[0153] In the embodiment of the present application, the bottleneck processes are updated based on the average waiting time of work-in-process corresponding to each non-bottleneck process, and then the target chromosome is determined, considering the situation where non-bottleneck processes are transformed into bottleneck processes during the processing, which can enhance the ability of the semiconductor production system to cope with the complex and changeable situations during the processing of semiconductor bottleneck processes. At the same time, the fitness function value of the target chromosome is relatively large. Therefore, when each bottleneck process is executed based on the target scheduling time corresponding to the target chromosome, the semiconductor production efficiency can be further improved.

[0154] S314. Decode the target chromosome to obtain the target scheduling time corresponding to the target chromosome.

[0155] This step is similar to or the same as step S205 above, and will not be elaborated here.

[0156] In a possible implementation manner, the above step S307 may include:

[0157] S3071. Determine the planned completion time of the process with the latest virtual completion time according to the preset completion time; the planned start time of the process with the latest virtual completion time is the planned completion time minus the first duration corresponding to the latest process, and the first duration corresponding to the latest process is the difference between the virtual completion time and the virtual start time of the latest process.

[0158] In the embodiment of the present application, the preset completion time may be the delivery time or any moment within a preset duration before the delivery time. For example, assume that the delivery time is 10:00 am on December 5, 2023, and assume that the preset duration is 72 hours, then any moment within 72 hours before and including 10:00 am on December 5, 2023 can be used as the preset completion time.

[0159] Exemplarily, assume that the preset completion time, which is also the planned completion time of the process with the latest virtual completion time, is 10:00 am on December 5, 2023. And the virtual completion time and virtual start time of the process with the latest virtual completion time are 48 and 36 respectively. Then the first duration is 12. Therefore, the planned start time of the process with the latest virtual completion time is the planned completion time of this process minus 12 hours, that is, 10:00 pm on December 4, 2023.

[0160] S3072. For any other process, the planned completion time of this process is obtained by subtracting the second duration corresponding to this process from the planned start time of the subsequent process of this process. The second duration corresponding to this process is the difference between the virtual start time of the subsequent process of this process and the virtual completion time of this process.

[0161] S3073. The planned start time of this process is obtained by subtracting the first duration corresponding to this process from the planned completion time of this process.

[0162] It can be understood that the planned start times and planned completion times of all processes constitute the production scheduling time.

[0163] Exemplarily, taking the subsequent process of any process as the process with the latest virtual completion time to illustrate the determination process of the planned start time and planned completion time of this process. For example, assume that the virtual completion time and virtual start time of the process with the latest virtual completion time are 48 and 36 respectively, the planned start time of the process with the latest virtual completion time is 10:00 pm on December 4, 2023, and the virtual completion time and virtual start time of this process are 24 and 18 respectively. Then the second duration corresponding to this process is 36 - 24 = 12, the first duration corresponding to this process is 24 - 18 = 6. Then the planned completion time of this process is the planned start time of the process with the latest virtual completion time minus 12 hours, that is, 10:00 am on December 3, 2023. The planned start time of this process is the planned completion time of this process minus 6 hours, that is, 4:00 am on December 3, 2023. By analogy, the planned start times and planned completion times of all processes are obtained.

[0164] In a possible implementation manner, the above steps perform selection operation, crossover operation, and mutation operation on the initial population after calculating the fitness function value to generate the next generation population, which may include:

[0165] S3081. Determine that the genetic operations of the genetic algorithm include selection operation based on roulette wheel method, crossover operation based on crossover probability, and mutation operation based on mutation probability.

[0166] S3082. Use the roulette wheel method to perform a selection operation on the initial population after calculating the fitness function values, and select a preset number of chromosomes as the parental population.

[0167] S3083. Based on the crossover probability, select two chromosomes sequentially from the parental population as the first parental chromosome and the second parental chromosome, perform a crossover operation on the first parental chromosome and the second parental chromosome to obtain two offspring chromosomes, and add the two offspring chromosomes obtained from the crossover operation to the parental population to obtain the offspring population.

[0168] In a possible implementation, determine the number of crossover gene positions, select the first crossover genes with the number of crossover gene positions from the first parental chromosome to form a first crossover gene set, and select the second crossover genes with the number of crossover gene positions from the second parental chromosome to form a second crossover gene set; retain the genes in the first parental chromosome that are not in the first crossover gene set at the corresponding gene positions of the first offspring chromosome, and retain the genes in the second parental chromosome that are not in the second crossover gene set at the corresponding gene positions of the second offspring chromosome; copy the first crossover genes in the first crossover gene set to the crossover gene positions of the second offspring chromosome in sequence to obtain the second offspring chromosome, and copy the second crossover genes in the second crossover gene set to the crossover gene positions of the first offspring chromosome in sequence to obtain the first offspring chromosome.

[0169] Exemplarily, Figure 4 shows a schematic diagram of a crossover operation provided by an embodiment of the present application. As Figure 4 shown, retain the genes [1, 3, 1, 3, 1, 3] included in the set Part1 of the first parental chromosome Parent1 on the first offspring chromosome Son1, and maintain the order and position of each gene. Retain the genes [1, 3, 1, 3, 3, 1] included in the set Part1 of the second parental chromosome Parent2 on the second offspring chromosome Son2, and maintain the order and position of each gene. Then, copy the genes [4, 2, 4, 2, 4, 2] included in the set Part2 of the second parental chromosome Parent2 to the first offspring chromosome Son1 and maintain the order of each gene to obtain the first offspring chromosome Son1. Copy the genes [2, 4, 2, 4, 2, 4] included in the set Part2 of the first parental chromosome Parent1 to the second offspring chromosome Son2 and maintain the order of each gene to obtain the second offspring chromosome Son2.

[0170] S3084. Select the chromosomes from the offspring population as the third paternal chromosomes based on the mutation probability, perform mutation operations on the third paternal chromosomes to obtain offspring chromosomes, and add the offspring chromosomes obtained from the mutation operations to the offspring population to obtain the next generation population.

[0171] In a possible implementation, extract the first mutant gene segment from the third paternal chromosome and retain the original part of the genes; wherein, the first mutant gene segment includes multiple genes; reverse all the genes within the first mutant gene segment, and form the third offspring chromosome with the second mutant gene segment obtained after the reverse processing and the original part of the genes.

[0172] Randomly select a consecutive genes in the third paternal chromosome, reverse the order of these x genes to obtain the third offspring chromosome, where a > 1. Exemplarily, Figure 5 shows a schematic diagram of a mutation operation provided by an embodiment of the present application. As Figure 5 shown, the third paternal chromosome is [1, 3, 1, 4, 2, 2, 4, 3, 2, 4, 1, 3]. The first mutant gene segment is [1, 4, 2, 2, 4, 3], and the second mutant gene segment is [3, 4, 2, 2, 4, 1]. The third offspring chromosome is [1, 3, 3, 4, 2, 2, 4, 1, 2, 4, 1, 3].

[0173] In the embodiments of the present application, the fitness function value corresponding to each chromosome can be calculated according to the preset fitness function. The roulette method is adopted for selection operations, crossover operations, and mutation operations according to the size of the fitness function values of each chromosome, and cyclic iteration is performed to obtain a reasonable production scheduling method, which can improve the efficiency of production scheduling and also improve the utilization rate of the equipment belonging to the semiconductor bottleneck process.

[0174] Figure 6 is a schematic structural diagram of a semiconductor production scheduling device provided by an embodiment of the present application. Please refer to Figure 6 , the semiconductor production scheduling device 60 includes an acquisition module 601, a first decoding module 602, an iteration module 603, a determination module 604, and a second decoding module 605, wherein,

[0175] The acquisition module 601 is used to acquire the initial population of multiple batches of products; wherein, the batch products are semiconductor products, and the initial population includes at least two chromosomes. Any chromosome is an integer coding of all the bottleneck processes of all batches of products. The chromosome is composed of multiple genes, and the integer on each gene represents the batch number of the batch product. The total number of times the gene with the same batch number appears in the chromosome represents the total number of bottleneck process steps of the batch product. The position of the gene in the chromosome represents the processing priority of the bottleneck process;

[0176] The first decoding module 602 is used to decode each chromosome in the initial population to obtain the production scheduling time corresponding to each chromosome. The production scheduling time includes the planned start time and the planned completion time of the bottleneck process corresponding to any gene in the chromosome.

[0177] The iteration module 603 is used to perform genetic algorithm iterative calculation based on a preset fitness function and the production scheduling time corresponding to each chromosome, and output N chromosomes with larger fitness function values, where N is an integer greater than 1.

[0178] The determination module 604 is used to calculate the average in-process waiting time corresponding to each non-bottleneck process for the N chromosomes respectively, and determine the target chromosome according to the average in-process waiting time corresponding to each non-bottleneck process. The average in-process waiting time corresponding to each non-bottleneck process corresponding to the target chromosome is less than or equal to a preset threshold.

[0179] The second decoding module 605 is used to decode the target chromosome to obtain the target production scheduling time corresponding to the target chromosome, so that all bottleneck processes and non-bottleneck processes of all batches of products are executed according to the target production scheduling time to produce all batches of products.

[0180] In a possible implementation manner, the first decoding module 602 is specifically used for:

[0181] Initialize the bottleneck process buffer.

[0182] For any chromosome, activate the genes corresponding to each bottleneck process of the first batch of products, and simulate the processing of the first bottleneck process of the first batch of products.

[0183] Based on the judgment of whether there is a buffer in the bottleneck process buffer, activate the remaining genes on the chromosome in ascending order until all genes on the chromosome are activated.

[0184] Each bottleneck process is simulated for processing according to the processing priority corresponding to the gene on the chromosome, and each non-bottleneck process is simulated for scheduling according to the heuristic rule until the simulation of all processes of all batches of products is completed, and the planned time corresponding to each chromosome is obtained. The planned time includes the virtual start time and the virtual completion time corresponding to each process in all processes.

[0185] Based on the preset completion time and the planned time, perform reverse scheduling to obtain the production scheduling time corresponding to the chromosome.

[0186] In a possible implementation manner, the first decoding module 602 is specifically used for:

[0187] Determine the planned completion time of the process with the latest virtual completion time according to the preset completion time; the planned start time of the process with the latest virtual completion time is the planned completion time minus the first duration corresponding to the latest process, and the first duration corresponding to the latest process is the difference between the virtual completion time and the virtual start time of the latest process;

[0188] For any other process, the planned completion time of a process is obtained by subtracting the second duration corresponding to the process from the planned start time of the subsequent process of the process. The second duration corresponding to the process is the difference between the virtual start time of the subsequent process of the process and the virtual completion time of the process;

[0189] The planned start time of a process is obtained by subtracting the first duration corresponding to the process from the planned completion time of the process.

[0190] In a possible implementation manner, the determination module 604 is specifically used for:

[0191] If the average waiting time of work-in-process corresponding to each non-bottleneck process is less than or equal to the preset threshold, then determine the chromosome with the largest fitness function value among the N chromosomes as the target chromosome;

[0192] If there is any non-bottleneck process whose average waiting time of work-in-process is greater than the preset threshold, then determine the non-bottleneck process as the bottleneck process, and loop to execute the steps from obtaining the initial population of multiple batches of products to calculating the average waiting time of work-in-process corresponding to each non-bottleneck process for the N chromosomes, and determining the target chromosome according to the average waiting time of work-in-process corresponding to each non-bottleneck process, until when the loop stop condition is reached, output the target chromosome, and the target chromosome is the chromosome with the largest fitness function value among the N chromosomes output in the last loop;

[0193] Wherein, the loop stop condition is any one of the following: the average waiting time of work-in-process corresponding to each non-bottleneck process is less than or equal to the preset threshold, the number of non-bottleneck processes becomes 0, and the number of loops reaches the preset maximum number of loops.

[0194] In a possible implementation manner, the iteration module 603 is specifically used for:

[0195] Calculate the fitness function values of all chromosomes in the initial population according to the preset fitness function and the scheduling time corresponding to each chromosome, and perform selection operation, crossover operation and mutation operation on the initial population after calculating the fitness function values to generate the next generation population;

[0196] Calculate the fitness function values of each chromosome in the next-generation population, and when the iteration stop condition is met, output the N chromosomes with larger fitness function values in the next-generation population; wherein, the iteration stop condition is that the fitness function value of any chromosome in the next-generation population reaches a preset function value or the number of iterations reaches a preset maximum number of iterations.

[0197] In a possible implementation manner, the iteration module 603 is specifically configured to:

[0198] Determine that the genetic operations of the genetic algorithm include a selection operation based on the roulette wheel method, a crossover operation based on the crossover probability, and a mutation operation based on the mutation probability;

[0199] Perform a selection operation on the initial population for which the fitness function values have been calculated using the roulette wheel method, and select a preset number of chromosomes as the parental population;

[0200] Based on the crossover probability, use two chromosomes sequentially selected from the parental population as the first parental chromosome and the second parental chromosome, perform a crossover operation on the first parental chromosome and the second parental chromosome to obtain two offspring chromosomes, and add the two offspring chromosomes obtained from the crossover operation to the parental population to obtain an offspring population;

[0201] Based on the mutation probability, use the chromosome selected from the offspring population as the third parental chromosome, perform a mutation operation on the third parental chromosome to obtain an offspring chromosome, and add the offspring chromosome obtained from the mutation operation to the offspring population to obtain the next-generation population.

[0202] The semiconductor production scheduling device provided by the embodiments of the present application can be used to execute the above method embodiments, and its implementation principle and technical effects are similar, which will not be elaborated here in the embodiments of the present application.

[0203] It should be understood that the above device embodiments are illustrative, and the devices of the present application can also be implemented in other ways. For example, the division of units / modules in the above embodiments is only a logical function division, and there can be other division methods in actual implementation. For example, multiple units, modules, or components can be combined, or can be integrated into another system, or some features can be ignored or not executed.

[0204] The embodiments of the present application provide an electronic device, Figure 7 which is a schematic hardware structure diagram of an electronic device provided by the embodiments of the present application.

[0205] As Figure 7 shown, the electronic device 70 includes: a processor 701 and a memory 702; the memory 702 stores computer execution instructions; the processor 701 executes the computer execution instructions stored in the memory 702, so that the electronic device 70 executes the above method.

[0206] When the memory 702 is independently provided, the electronic device 70 further includes a bus 703 for connecting the memory 702 and the processor 701.

[0207] Figure 7 The electronic device 70 shown in the embodiment can execute the steps in the above method embodiment, and its implementation principle and beneficial effects are similar, which will not be elaborated here.

[0208] The embodiment of the present application provides a chip. The chip includes a processor, and the processor is used to call a computer program in the memory to execute the technical solution in the above embodiment. Its implementation principle and technical effects are similar to those of the above related embodiments, which will not be elaborated here.

[0209] The embodiment of the present application further provides a computer-readable storage medium. The computer-readable storage medium stores computer-executable instructions. When the computer-executable instructions are executed by the processor, the above method is implemented. The method described in the above embodiment can be implemented in whole or in part by software, hardware, firmware, or any combination thereof. If implemented in software, the function can be stored as one or more instructions or codes on a computer-readable medium or transmitted on a computer-readable medium. The computer-readable medium may include a computer storage medium and a communication medium, and may also include any medium that can transfer a computer program from one place to another. The storage medium can be any target medium accessible by a computer.

[0210] In a possible implementation, the computer-readable medium may include RAM, ROM, a compact disc read-only memory (CD-ROM), or other optical disc memories, magnetic disk memories, or other magnetic storage devices, or any other medium targeted to carry or store the required program code in the form of instructions or data structures and accessible by a computer. Moreover, any connection is properly referred to as a computer-readable medium. For example, if software is transmitted from a website, server, or other remote source using coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of the medium. As used herein, disk and optical disc include optical disc, laser disc, optical disc, digital versatile disc (DVD), floppy disk, and Blu-ray disc, where disks typically reproduce data magnetically, while optical discs utilize lasers to optically reproduce data. The above combinations should also be included within the scope of the computer-readable medium.

[0211] An embodiment of the present application provides a computer program product. The computer program product includes a computer program, and when the computer program is run, it causes the computer to execute the above method.

[0212] In the above embodiments, the descriptions of the various embodiments have their own emphases. For parts not detailed in a certain embodiment, reference may be made to the relevant descriptions of other embodiments. The technical features of the above embodiments can be combined arbitrarily. For the sake of brevity of description, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, it should be considered as the scope described in this specification.

[0213] Those skilled in the art will readily conceive of other implementations of the present application after considering the specification and practicing the invention disclosed herein. The present application is intended to cover any variations, uses, or adaptations of the present application, which follow the general principles of the present application and include common general knowledge or conventional technical means in the technical field not disclosed in the present application. The specification and embodiments are only regarded as exemplary, and the true scope and spirit of the present application are pointed out by the appended claims.

[0214] It should be understood that the present application is not limited to the exact structures described above and shown in the drawings, and various modifications and changes can be made without departing from its scope. The scope of the present application is only limited by the appended claims.

Claims

1. A production scheduling method for a semiconductor, characterized in that, The method includes: Obtaining an initial population of products in multiple batches; wherein, the batch products are semiconductor products, the initial population includes at least two chromosomes, any one of the chromosomes is an integer encoding of all bottleneck processes of all the batch products, the chromosome is composed of multiple genes, and the integer on each gene represents the batch number of the batch product, the total number of times the gene with the same batch number appears in the chromosome represents the total number of bottleneck processes of the batch product, and the position of the gene in the chromosome represents the processing priority of the bottleneck process; Decoding each of the chromosomes in the initial population respectively to obtain the scheduling times corresponding to the respective chromosomes, the scheduling time including the planned start time and the planned completion time of the bottleneck process corresponding to any one of the genes in the chromosome; Performing iterative calculation of a genetic algorithm based on a preset fitness function and the scheduling times corresponding to the respective chromosomes, and outputting N chromosomes with larger fitness function values, where N is an integer greater than 1; For the N chromosomes, calculating the average in-process waiting time corresponding to each non-bottleneck process respectively, and determining a target chromosome according to the average in-process waiting time corresponding to each non-bottleneck process; the average in-process waiting time corresponding to each non-bottleneck process corresponding to the target chromosome is less than or equal to a preset threshold; Decoding the target chromosome to obtain the target scheduling time corresponding to the target chromosome, so that all bottleneck processes and non-bottleneck processes of all the batch products are executed according to the target scheduling time, in order to produce all the batch products.

2. The method according to claim 1, characterized in that, The decoding each of the chromosomes in the initial population respectively to obtain the scheduling times corresponding to the respective chromosomes includes: Initializing a bottleneck process buffer; For any one of the chromosomes, activating the genes corresponding to each bottleneck process of the first batch of products, and simulating the processing of the first bottleneck process of the first batch of products; Based on the judgment of whether there is a buffer in the bottleneck process buffer, activating the remaining genes on the chromosome in ascending order until all the genes on the chromosome are activated; Each of the bottleneck processes is simulated for processing according to the processing priority corresponding to the gene on the chromosome, and each of the non-bottleneck processes is simulated for processing according to a heuristic rule scheduling until the simulation processing of all processes of all batch products is completed, obtaining the planned times corresponding to the respective chromosomes, the planned time including the virtual start time and the virtual completion time corresponding to each process in all the processes; Performing backward scheduling based on a preset completion time and the planned time to obtain the scheduling time corresponding to the chromosome.

3. The method according to claim 2, wherein The performing backward scheduling based on a preset completion time and the planned time to obtain the scheduling time corresponding to the chromosome includes: Determine the planned completion time of the process with the latest virtual completion time according to the preset completion time; the planned start time of the process with the latest virtual completion time is the planned completion time minus the first duration corresponding to the latest process, and the first duration corresponding to the latest process is the difference between the virtual completion time and the virtual start time of the latest process; For any other process, the planned completion time of the process is obtained by subtracting the second duration corresponding to the process from the planned start time of the subsequent process of the process, and the second duration corresponding to the process is the difference between the virtual start time of the subsequent process of the process and the virtual completion time of the process; The planned start time of the process is obtained by subtracting the first duration corresponding to the process from the planned completion time of the process.

4. The method according to any one of claims 1 to 3, characterized in that, The determining the target chromosome according to the average waiting time of work-in-process corresponding to each non-bottleneck process includes: If the average waiting time of work-in-process corresponding to each non-bottleneck process is less than or equal to the preset threshold, determine the chromosome with the largest fitness function value among the N chromosomes as the target chromosome; If there is any non-bottleneck process whose average waiting time of work-in-process is greater than the preset threshold, determine the non-bottleneck process as a bottleneck process, and loop to execute the steps from obtaining the initial population of multiple batches of products to calculating the average waiting time of work-in-process corresponding to each non-bottleneck process for the N chromosomes and determining the target chromosome according to the average waiting time of work-in-process corresponding to each non-bottleneck process until the loop stop condition is reached, and output the target chromosome, where the target chromosome is the chromosome with the largest fitness function value among the N chromosomes output in the last loop; Wherein, the loop stop condition is any one of the following: the average waiting time of work-in-process corresponding to each non-bottleneck process is less than or equal to the preset threshold, the number of non-bottleneck processes becomes 0, and the number of loops reaches the preset maximum number of loops.

5. The method according to any one of claims 1 to 3, characterized in that, The iterative calculation of the genetic algorithm based on the preset fitness function and the scheduling time corresponding to each chromosome, and outputting N chromosomes with larger fitness function values includes: According to the preset fitness function and the scheduling time corresponding to each chromosome, calculate the fitness function values of all chromosomes in the initial population, and perform selection operation, crossover operation and mutation operation on the initial population after calculating the fitness function values to generate the next generation population; Calculate the fitness function values of each chromosome in the next generation population, and when the iteration stop condition is met, output N chromosomes with larger fitness function values in the next generation population; wherein, the iteration stop condition is that the fitness function value of any chromosome in the next generation population reaches the preset function value or the number of iterations reaches the preset maximum number of iterations.

6. The method according to claim 5, characterized in that, The performing selection operation, crossover operation and mutation operation on the initial population after calculating the fitness function values to generate the next generation population includes: It is determined that the genetic operations of the genetic algorithm include a selection operation based on the roulette wheel method, a crossover operation based on the crossover probability, and a mutation operation based on the mutation probability; The roulette wheel method is used to perform a selection operation on the initial population for which the fitness function values have been calculated, and a preset number of chromosomes are selected as the parental population; Based on the crossover probability, two chromosomes sequentially selected from the parental population are used as the first parental chromosome and the second parental chromosome, and a crossover operation is performed on the first parental chromosome and the second parental chromosome to obtain two offspring chromosomes, and the two offspring chromosomes obtained by the crossover operation are added to the parental population to obtain an offspring population; Based on the mutation probability, the chromosome selected from the offspring population is used as the third parental chromosome, a mutation operation is performed on the third parental chromosome to obtain an offspring chromosome, and the offspring chromosome obtained by the mutation operation is added to the offspring population to obtain the next-generation population.

7. A semiconductor production scheduling device, characterized in that, It includes an acquisition module, a first decoding module, an iteration module, a determination module, and a second decoding module, where the acquisition module is used to acquire the initial population of multiple batches of products; wherein, the batch of products is a semiconductor product, the initial population includes at least two chromosomes, any one of the chromosomes is an integer encoding of all the bottleneck processes of all the batches of products, the chromosome is composed of multiple genes, and the integer on each gene represents the batch number of the batch of products, the total number of times the gene with the same batch number appears in the chromosome represents the total number of bottleneck processes of the batch of products, and the position of the gene in the chromosome represents the processing priority of the bottleneck process; the first decoding module is used to decode each of the chromosomes in the initial population to obtain the scheduling time corresponding to each of the chromosomes, and the scheduling time includes the planned start time and the planned completion time of the bottleneck process corresponding to any one of the genes in the chromosome; the iteration module is used to perform genetic algorithm iterative calculation based on a preset fitness function and the scheduling time corresponding to each of the chromosomes, and output N chromosomes with larger fitness function values, where N is an integer greater than 1; the determination module is used to calculate the average in-process waiting time corresponding to each non-bottleneck process for the N chromosomes, and determine the target chromosome according to the average in-process waiting time corresponding to each non-bottleneck process; the average in-process waiting time corresponding to each non-bottleneck process corresponding to the target chromosome is less than or equal to a preset threshold; the second decoding module is used to decode the target chromosome to obtain the target scheduling time corresponding to the target chromosome, so that all the bottleneck processes and non-bottleneck processes of all the batches of products are executed according to the target scheduling time to produce all the batches of products.

8. An electronic device, characterized in that, It includes: a processor, and a memory communicatively connected to the processor; the memory stores computer execution instructions; the processor executes the computer execution instructions stored in the memory to implement the method according to any one of claims 1 to 6.

9. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer-executable instructions, and when the computer-executable instructions are executed by a processor, they are used to implement the method according to any one of claims 1 to 6.

10. A computer program product, characterized in that, It includes a computer program, and when the computer program is run, it causes the computer to execute the method according to any one of claims 1 to 6.

Citation Information

Cited By

  • Real-time judgment method, device and equipment for bottleneck equipment and storage medium

    CN121146726A