Process recipe synchronization method and apparatus, and semiconductor process device
By using multi-threaded asynchronous task processing method to synchronize process formulas in process equipment, the problem of too long synchronization time due to the increase in the number of process formulas is solved, and a more efficient process formula synchronization process is achieved.
Patent Information
- Application Number
- PCT/CN2024/129268
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-11-10
- Filing Date
- 2024-11-01
- Publication Date
- 2025-05-15
AI Technical Summary
As the equipment usage time increases, the number of process formulas continues to increase, resulting in the equipment taking a long time to synchronize process formulas, affecting production efficiency.
Using multi-threaded asynchronous task processing method, the target process formula that is not stored in the recipe database in the target process equipment and synchronizes it to the recipe database. By assigning synchronization tasks to multiple child threads to execute in parallel, the time for synchronizing process recipes is significantly shortened.
This method can greatly shorten the time required to synchronize the process formula, reduce the waiting time for users, and avoid duplicate process formulas in the recipe database.
Smart Images

Figure CN2024129268_15052025_PF_FP_ABST
Abstract
Description
A process recipe synchronization method, device and semiconductor process equipment Technical Field
[0001] The present application relates to the field of production process technology, specifically, to a process recipe processing technology under the field of production process technology, and more specifically, to a process recipe synchronization method, device and semiconductor process equipment. Background Art
[0002] A process recipe can be simply understood as a record of the process steps used to produce a product. When producing a product, the equipment typically strictly follows the process recipe. Furthermore, to better monitor the process recipes within the equipment, a monitoring device is typically installed to synchronize all process recipes to the monitoring device for monitoring.
[0003] However, as the equipment is continuously used, the number of process recipes therein also increases irregularly, so that after the equipment has been used for a period of time, the number of process recipes inside the equipment is often at least hundreds. At this time, it takes a long time to complete the synchronization of the process recipes.
[0004] Summary of the Invention
[0005] Multiple embodiments of the present application provide a method, device, and semiconductor process equipment for synchronizing a process recipe to achieve the purpose of quickly synchronizing the process recipes in the process equipment.
[0006] In a first aspect, the present application provides a method for synchronizing a process recipe, comprising:
[0007] Using a multi-threaded asynchronous task processing method, determining a target process recipe in a target process device that is not stored in a recipe database, and synchronizing the target process recipe to the recipe database;
[0008] The asynchronous task processing method using multi-threading includes: using a target number of sub-threads to execute target tasks in parallel, and the target tasks include determining a target process recipe in a target process device that is not stored in a recipe database, and synchronizing the target process recipe to the recipe database.
[0009] In some embodiments, the recipe database is used to store process recipes displayed by a process monitoring application, and the process monitoring application is used to monitor the target process equipment.
[0010] In some embodiments, the method of using a multi-threaded asynchronous task processing method to determine a target process recipe in a target process device that is not stored in a recipe database, and synchronizing the target process recipe to the recipe database, includes:
[0011] Acquiring target recipe data of the target process equipment, wherein the target recipe data includes: identification information of the process recipe in the target process equipment;
[0012] Allocating the target recipe data to a target number of sub-threads, wherein different sub-threads are allocated identification information of different process recipes;
[0013] For each of the sub-threads, the assigned identification information is traversed in the sub-thread respectively, and when the original recipe data does not contain the process recipe indicated by the traversed identification information, the process recipe indicated by the traversed identification information is determined as the target process recipe, and the target process recipe is synchronized to the recipe database; wherein the original recipe data includes: the process recipe stored in the recipe database before the target process recipe is synchronized to the recipe database.
[0014] In some implementations, the identification information of the process recipe includes: a recipe name and a modification time of the process recipe.
[0015] In some embodiments, synchronizing the target process recipe to the recipe database includes:
[0016] Acquiring the target process recipe from the target process equipment based on the identification information of the target process recipe;
[0017] Analyze the process steps of the target process recipe;
[0018] The target process recipe is stored in the recipe database in the order of the process steps.
[0019] In some embodiments, the process step of analyzing the target process recipe includes:
[0020] Parse the target process recipe, determine the data between two adjacent step name fields as the process step corresponding to the step name field located in front of the two adjacent step name fields, and determine the data after the last step name field in the target process recipe as the last process step.
[0021] In some embodiments, storing the target process recipe in the recipe database in the order of the process steps includes:
[0022] Based on a database insert operation triggered by a database instruction, the target process recipe is stored in the recipe database in the order of the process steps.
[0023] In some implementations, the single database operation includes a database insert operation triggered based on a database instruction.
[0024] In some embodiments, before distributing the target recipe data to a target number of sub-threads, the method further includes:
[0025] In response to a target input by a user, the value of the target quantity is adjusted.
[0026] In a second aspect, the present application provides a process recipe synchronization device for synchronizing process recipes in a host computer, the process recipe synchronization device comprising: a processor and a memory;
[0027] The memory is connected to the processor, and is used to store computer programs;
[0028] The processor is configured to implement the above-mentioned process recipe synchronization method by running the computer program stored in the memory.
[0029] In a third aspect, the present application provides a process recipe synchronization device, the process recipe synchronization device comprising:
[0030] The synchronization module is used to determine the target process recipe in the target process equipment that is not stored in the recipe database by adopting a multi-threaded asynchronous task processing method, and synchronize the target process recipe to the recipe database.
[0031] In some embodiments, the recipe database is used to store process recipes displayed by a process monitoring application, and the process monitoring application is used to monitor the target process equipment.
[0032] In some implementations, the synchronization module includes:
[0033] an acquiring unit, configured to acquire target recipe data of the target process equipment, wherein the target recipe data includes: identification information of the process recipe in the target process equipment;
[0034] an allocating unit, configured to allocate the target recipe data to a target number of sub-threads, wherein different sub-threads are allocated identification information of different process recipes;
[0035] A synchronization unit is used to traverse the assigned identification information of each sub-thread in the sub-thread respectively, and when the original recipe data does not contain the process recipe indicated by the traversed identification information, determine the process recipe indicated by the traversed identification information as the target process recipe, and synchronize the target process recipe to the recipe database; wherein the original recipe data includes: the process recipe stored in the recipe database before synchronizing the target process recipe to the recipe database.
[0036] In some embodiments, the identification information includes: a recipe name and a modification time of the process recipe.
[0037] In some implementations, the synchronization unit is specifically configured to:
[0038] Acquiring the target process recipe from the target process equipment based on the identification information of the target process recipe;
[0039] Analyze the process steps of the target process recipe;
[0040] The target process recipe is stored in the recipe database in the order of the process steps.
[0041] In some embodiments, the process step of parsing the target process recipe in the synchronization unit includes:
[0042] Parse the target process recipe, determine the data between two adjacent step name fields as the process step corresponding to the step name field located in front of the two adjacent step name fields, and determine the data after the last step name field in the target process recipe as the last process step.
[0043] In some embodiments, the device further comprises:
[0044] The response module is used to adjust the value of the target quantity in response to the user's target input.
[0045] In a fourth aspect, the present application provides a semiconductor process equipment, comprising: a host computer and a process recipe synchronization device communicatively connected to the host computer;
[0046] The host computer includes: a plurality of process recipes for process production;
[0047] The process recipe synchronization device is used to execute the above-mentioned process recipe synchronization method to synchronize the process recipe in the host computer.
[0048] In a fifth aspect, the present application provides an electronic device, including a processor and a memory;
[0049] The memory is connected to the processor, and is used to store computer programs;
[0050] The processor is used to implement the process recipe synchronization method as described in the first aspect by running the computer program stored in the memory.
[0051] In a sixth aspect, the present application provides a computer-readable storage medium having a computer program stored thereon. When the computer program is executed by a processor, the method for synchronizing the process recipe as described in the first aspect is implemented.
[0052] In the seventh aspect, the present application provides a computer program product or computer program, wherein the computer program product includes a computer program, and the computer program is stored in a computer-readable storage medium; the processor of the computer device reads the computer program from the computer-readable storage medium, and when the processor executes the computer program, it implements the steps of the process recipe synchronization method as described in the first aspect.
[0053] The various implementations provided in this application utilize a multi-threaded asynchronous task processing approach to determine target process recipes in target process equipment that are not stored in the recipe database and synchronize the target process recipes to the recipe database. Compared to using a single thread to handle process recipe synchronization tasks, the multiple threads in this application are independent of each other and handle process recipe synchronization tasks simultaneously, significantly shortening the time required to synchronize process recipes and reducing user waiting time. Furthermore, synchronization is performed only on target process recipes that are not yet stored in the recipe database, preventing duplicate process recipes from appearing in the recipe database. BRIEF DESCRIPTION OF THE DRAWINGS
[0054] Figure 1 is a synchronous flow chart of the traditional process formula provided by this application;
[0055] FIG2 is an architecture diagram of a feasible application scenario of a process recipe synchronization method provided by this application;
[0056] FIG3 is a schematic flow chart of a synchronization method for a process recipe provided in this application;
[0057] FIG4 is a flowchart of a practical application of a synchronization method for a process recipe provided in this application;
[0058] FIG5 is a schematic structural diagram of a synchronization device for a process recipe provided in this application;
[0059] FIG6 is a schematic structural diagram of an electronic device provided in this application. DETAILED DESCRIPTION
[0060] Unless otherwise defined, technical or scientific terms used in the embodiments of this application should have the same ordinary meaning as those understood by persons of ordinary skill in the art to which this application belongs. The terms "first," "second," and similar expressions used in the embodiments of this application do not denote any order, quantity, or importance, but are merely provided to avoid confusion among constituent elements.
[0061] Unless the context requires otherwise, throughout this specification, the term "plurality" means "at least two," and "including" is to be interpreted as open and inclusive, meaning "including, but not limited to." Throughout this specification, terms such as "one embodiment," "some embodiments," "exemplary embodiments," "example," "specific example," or "some examples" are intended to indicate that a particular feature, structure, material, or characteristic associated with the embodiment or example is included in at least one embodiment or example of the present application. The schematic representations of these terms do not necessarily refer to the same embodiment or example.
[0062] The following will be combined with the drawings in the embodiments of this application to clearly and completely describe the technical solutions in the embodiments of this application. Obviously, the embodiments described are only part of the embodiments of this application, not all of the embodiments. Based on the embodiments in this application, all other embodiments obtained by ordinary technicians in this field without making creative efforts are within the scope of protection of this application.
[0063] As described in the background technology, synchronizing the process recipe is an important step in the process production process. As shown in Figure 1, in the process recipe scenario of synchronizing the host computer to the AGC (Advanced Group Controller System), it is usually selected to traverse each process recipe in the host computer, and then determine whether the cycle ends. Specifically, it can be determined whether all the process recipes in the host computer have been traversed. If so, the synchronization is completed. If not, it is continued to determine whether the process recipe currently traversed has been stored in the AGC. If so, the process recipe currently traversed is not synchronized, and the next process recipe is continued to be traversed. If not, the process recipe currently traversed is obtained, and the process steps of the process recipe are stored in the AGC one by one, and the next process recipe is continued to be traversed.
[0064] When synchronizing process recipes, the speed and accuracy of synchronization are particularly important. To ensure accuracy, even if there are a large number of process recipes, each one is read one by one within a single thread and then synchronized directly to the recipe database. In a real-world production environment, faced with hundreds of process recipes that need to be synchronized, it often takes dozens of minutes, or even several hours, to complete the synchronization of the process recipes. To shorten the synchronization time of the process recipes, the inventors discovered through research that multiple threads can be used to execute the process recipe synchronization task simultaneously, thus shortening the synchronization time exponentially.
[0065] Based on the above concept, the synchronization method of the process recipe provided in this application will be described exemplarily below.
[0066] Referring to Figure 2, Figure 2 shows a feasible application scenario of a process recipe synchronization method. In this application scenario, the host computer 201 is equivalent to the target process equipment in this application, and the database storing the process recipe displayed by the equipment monitoring software 202 is equivalent to the recipe database in this application. Specifically, the application scenario includes: a factory automation software control module 203, which is the factory-side control software, also called EAP, which is responsible for the issuance of tasks and instruction interaction in automated production and manufacturing. A factory automation communication module 204 is used to interact with the factory automation software control module 203, receive instructions from the factory automation software control module 203, and feedback tasks and machine status. The host computer 201 is responsible for overall machine control, receives tasks issued by users and the factory automation communication module 204, and performs task decomposition to coordinate the efficient execution of each task. The programmable logic controller 205, which belongs to the channel control module, is mainly responsible for the control and data interaction of the process module controller 206 and the transmission module controller 207. The process module controller 206 interacts with the hardware and is responsible for the process execution of each process tank or chamber; the transport module controller 207 interacts with the hardware and is responsible for the transport operation execution of FOUPs and wafers in the machine.
[0067] Among them, the host computer 201 is internally provided with a host computer control software 2011, which can be divided into three parts: GUI (Graphic User Interface), Coordinator (Coordination Adapter), and Scheduler (Scheduling Calculator). Among them: GUI is used to provide the machine operation status and provide a user operation interface. Scheduler is used to input machine information according to the Coordinator, calculate the task optimization execution sequence, and ensure the machine production capacity. Coordinator is used to receive and execute tasks issued from the GUI and the factory automation communication module 204, coordinate the task operation; interact with the Scheduler, receive the actions output from the Scheduler, and finally control the process module controller 206 and the transmission module controller 207 to complete the task.
[0068] The equipment monitoring software 202 is internally divided into three parts: the GUI, the Interface service, and the Database (database and data service module). The GUI provides information about the equipment's operating status and provides a user interface. The Interface service provides the necessary data display services for the graphical interface, through commands or database query and modification operations. The Database primarily stores the equipment-related data required by the monitoring software.
[0069] Taking the process recipe in the upper computer synchronized with the AGC in the application scenario shown in FIG2 as an example, an embodiment of the present application provides a process recipe synchronization method, as shown in FIG3 , the process recipe synchronization method includes:
[0070] S301: using a multi-threaded asynchronous task processing method to determine a target process recipe in a target process device that is not stored in a recipe database, and synchronizing the target process recipe to the recipe database.
[0071] The target process equipment stores multiple process recipes required for process production / manufacturing. This application does not limit the content of these multiple process recipes or how they are stored in the target process equipment. They can be any recipe content and stored in any manner in the target process equipment. For example, these multiple process recipes can be process recipes for new products entered into the target process equipment by relevant personnel, process recipes that are modified from existing process recipes, etc. The target location for synchronizing the process recipes in the target process equipment is the recipe database. That is, process recipes in the target process equipment that are not yet stored in the recipe database need to be stored in the recipe database so that the process recipes in the recipe database and the process recipes in the target process equipment are consistent in terms of quantity and data content. Therefore, the recipe database is not the database that stores the process recipes of the target process equipment. It is understood that the target process equipment and the recipe database, as the two parties to synchronization, represent different devices in different scenarios. This application does not limit the application scenarios, including but not limited to the application scenario shown in Figure 2. Any application scenario that synchronizes the process recipes in one device to another falls within the scope of protection of this application.
[0072] Multi-threaded asynchronous task processing can be understood as multiple threads executing tasks concurrently without interfering with each other. In this way, a total task is divided, and then each divided subtask is handed over to a different thread for asynchronous task processing. Each subtask can be processed at the same time, thereby greatly shortening the execution or processing time of the total task. There is no limitation on the number of threads here, and it can be two, three, or even more. Specifically, all the process recipes in the target process equipment are divided into multiple parts, so that the total task of synchronizing the process recipes in the target process equipment can be divided into multiple subtasks for synchronizing each process recipe. Each subtask is then handed over to a different sub-thread for task processing. In some embodiments, the multi-threaded asynchronous task processing method includes: using a target number of sub-threads to execute the target task in parallel, and the target task includes determining the target process recipe in the target process equipment that is not stored in the recipe database, and synchronizing the target process recipe to the recipe database.
[0073] It is understood that the synchronization operation of synchronizing the process recipe in the target process equipment to the recipe database can be triggered by the user or automatically. For example, the user triggers the above step S301 by pressing a physical button or clicking a control in an application.
[0074] In this embodiment, a multi-threaded asynchronous task processing approach is used to determine target process recipes for target process equipment that are not stored in the recipe database and synchronize these target process recipes with the recipe database. Compared to using a single thread to handle process recipe synchronization tasks, the multiple threads in this application independently handle process recipe synchronization tasks simultaneously, significantly shortening the time required to synchronize process recipes and reducing user waiting time. Furthermore, synchronization is performed only on target process recipes that are not yet stored in the recipe database, preventing duplicate process recipes from appearing in the recipe database.
[0075] In some embodiments, the recipe database is used to store process recipes displayed by a process monitoring application, which is used to monitor target process equipment.
[0076] It should be noted that when a process monitoring application is used to monitor the target process equipment, the process recipes on both sides must be strictly consistent. For example, the target process equipment is a host computer, and the process monitoring application is an AGC. If the recipe data displayed in the AGC does not match the actual recipe data on the host computer, it will cause significant difficulties and misleading for process engineers, and may even lead to decision-making errors. If modifications are made based on the incorrect recipe, significant losses will result.
[0077] In this embodiment, by synchronizing the process recipe in the target process equipment to the process monitoring application, the process recipe in the target process equipment can be monitored in the process monitoring application, making it easier for relevant personnel to perform related processing based on the process recipe.
[0078] In some embodiments, a multi-threaded asynchronous task processing method is used to determine a target process recipe in a target process device that is not stored in a recipe database, and synchronize the target process recipe to the recipe database, including:
[0079] Acquiring target recipe data of a target process equipment, wherein the target recipe data includes: identification information of a process recipe in the target process equipment;
[0080] Allocating target recipe data to a target number of sub-threads, wherein different sub-threads are assigned identification information of different process recipes;
[0081] For each sub-thread respectively, the assigned identification information is traversed in the sub-thread, and when the original recipe data does not contain the process recipe indicated by the traversed identification information, the process recipe indicated by the traversed identification information is determined as the target process recipe, and the target process recipe is synchronized to the recipe database; wherein the original recipe data includes: the process recipe stored in the recipe database before the target process recipe is synchronized to the recipe database.
[0082] It should be noted that when determining whether two process recipes are identical or the same process recipe, all process steps in the process recipes can be used for comparison. If all process steps in the two process recipes are identical, the two process recipes are identical or the same process recipe. However, due to the large number of process steps in a process recipe, using this determination method takes a long time to determine the result. Therefore, in this application, the identification information of the process recipes is compared to determine whether two process recipes are identical. The identification information of the process recipes can be considered a unique identifier of the process recipes. If the identification information is the same, the process recipes are considered identical; otherwise, the process recipes are considered different. The identification information can be numbers, letters, special symbols, or a combination of the above. For example, the identification information of the process recipe is a unique ID set for the process recipe, but is not limited to this. After determining the determination method for determining whether two process recipes are identical, the traversed identification information is compared with the identification information of each process recipe in the original recipe data using this determination method to determine whether the process recipe indicated by the traversed identification information exists in the original recipe data. If so, the process recipe indicated by the traversed identification information is determined as the target process recipe.
[0083] In some embodiments, the target recipe data includes identification information for all process recipes in the target process equipment. When assigning the target recipe data to subthreads, the identification information for all process recipes in the target process equipment can be assigned to different subthreads based on an allocation strategy, with different subthreads sharing the synchronization tasks for different process recipes. The allocation strategy includes, but is not limited to, an even distribution strategy. Each subthread performs the synchronization task for the process recipe indicated by its assigned identification information, following the same execution steps, except that each subthread is assigned different identification information. To avoid redundancy, the process of subthreads performing synchronization tasks will be described using only one subthread as an example. Assume that subthread A is assigned identification information for m process recipes. It sequentially accesses each identification information through a traversal method, performing the same target processing on each accessed identification information until all m process recipe identification information has been traversed. This target processing includes determining whether the identification information for a process recipe in the original recipe data is identical to the identification information currently being accessed or traversed. If so, the next identification information is traversed. If not, the process recipe indicated by the currently accessed or traversed identification information is stored in the recipe database.
[0084] In some embodiments, each sub-thread includes a processing function that performs synchronization tasks based on passed parameters. Distributing target recipe data to a target number of sub-threads can be understood as assigning identification information of a different process recipe to each sub-thread and then passing that identification information to that sub-thread. The synchronization task includes sequentially accessing each piece of identification information through a traversal method, performing the target processing described above on each piece of identification information accessed, and continuing until all identification information has been traversed.
[0085] In this embodiment, by comparing the identification information of the process recipes, it is determined whether two process recipes are the same. This allows for a quick determination of whether the process recipe indicated by the traversed identification information exists in the original recipe data, further shortening the synchronization time. Specifically, in this embodiment, if the identification information of two process recipes is the same, the two process recipes are deemed to be the same, without having to compare the specific contents of the two process recipes one by one. This reduces the amount of data required to compare when determining whether the two process recipes are the same, thereby shortening the time required to compare whether the process recipes are the same, and further shortening the entire synchronization time. For example, assuming that the identification information of process recipe 1 is identification A and the identification information of process recipe 2 is identification B, process recipe 1 contains 100 pieces of information and process recipe 2 contains 100 pieces of information. In this embodiment, it is only necessary to compare whether identification A is the same as identification B to determine whether process recipe 1 and process recipe 2 are the same, without having to compare the 100 pieces of information of process recipe 1 with the 100 pieces of information of process recipe 2 one by one, greatly reducing the amount of data required to be processed during the comparison process.
[0086] In some implementations, the identification information of the process recipe includes: a recipe name and a modification time of the process recipe.
[0087] It should be noted that the formula name is the name of the process formula, and the modification time is the time when the process formula is modified. In some embodiments, the formula name may be related to the product that can be produced according to the process formula. Process formulas with different formula names are process formulas designed for different products. Therefore, the formula name can be regarded as identification information that distinguishes different process formulas to a certain extent. However, when optimizing and upgrading the same product or process formula, the process formula needs to be modified. At this time, although the formula name has not changed, the process steps of the process formula have changed. The formula name will no longer be regarded as identification information that distinguishes different process formulas. Since the corresponding modification time will be recorded each time the process formula is modified. Therefore, the formula name and modification time can be regarded as a whole as the identification information of the process formula.
[0088] In this embodiment, the recipe name and modification time are taken as a whole as identification information of the process recipe, and there is no need to set additional identification information for the process recipe, which is simple and convenient.
[0089] In some embodiments, synchronizing the target process recipe to a recipe database includes:
[0090] Obtaining the target process recipe from the target process equipment based on the identification information of the target process recipe;
[0091] Analyze the process steps of the target process recipe;
[0092] The target process recipe is stored in the recipe database in the order of process steps.
[0093] It should be noted that the identification information is used to distinguish different process recipes. Therefore, the identification information can be used to accurately find the corresponding process recipe in the target process equipment. It is understood that a process recipe records multiple process steps. In this embodiment, after parsing the process steps, all process steps of the same process recipe are stored in the recipe database at once.
[0094] For example, a single database operation can be used to store all the process steps of the same process recipe into the recipe database at once. Specifically, the above-mentioned storage of the target process recipe into the recipe database in the order of the process steps includes:
[0095] Based on a database insert operation triggered by a database instruction, the target process recipe is stored in the recipe database in the order of process steps.
[0096] A single database operation may mean that only one database operation needs to be performed on the database. In some embodiments, a single database operation includes a database insert operation triggered based on a database instruction.
[0097] In this embodiment, the number of times the recipe database is accessed or operated can be reduced, avoiding excessive pressure on the recipe database due to frequent operations. While improving the storage performance of the recipe database, the synchronization time of the process recipe can be further shortened.
[0098] In some embodiments, the process steps of analyzing the target process recipe include:
[0099] Parse the target process formula, determine the data between two adjacent step name fields as the process step corresponding to the step name field located in front of the two adjacent step name fields, and determine the data after the last step name field in the target process formula as the last process step.
[0100] It should be noted that each process step in the process recipe includes multiple fields and corresponding field values, wherein the first field in the process step is the step name field, and its field value is the step name of the process step. Therefore, the starting position and end position of each process step can be determined by identifying the step name field. For example, the step name field in the process step is stepName. In the process of parsing the process recipe, the first stepName is used as the starting position. When parsing to the second stepName, the data between the two stepNames is determined as the process step of the first stepName, and the second stepName is used as the new starting position. When parsing to the third stepName, the data between the second and third stepNames is determined as the process step of the second stepName, and the third stepName is used as the new starting position. By analogy, each process step can be obtained, and the order between the process steps can be determined.
[0101] In this embodiment, each process step in the process recipe can be accurately parsed using the step name field, thereby avoiding synchronizing an erroneous process recipe to the recipe database.
[0102] To avoid an excessive number of child threads affecting other tasks on the device, or to avoid an excessive number of child threads causing a long synchronization time, in some implementations, before allocating the target recipe data to the target number of child threads, the method further includes:
[0103] In response to a user's target input, the value of the target quantity is adjusted.
[0104] It should be noted that if a sub-thread has too many threads, it will occupy a large amount of hardware resources, such as memory and processor resources. Other tasks requiring hardware resources may be affected, and the larger the number of threads in a sub-thread, the more likely these tasks will be affected. Conversely, the smaller the number of threads in a sub-thread, the less likely other tasks requiring hardware resources will be affected. However, the smaller the number of sub-threads, the longer the synchronization time. Therefore, it is necessary to set the number of sub-threads to a reasonable value. Because the hardware resources and recipes of different devices vary, the corresponding reasonable value also varies. Therefore, it is necessary to provide a flexible method for adjusting the number of sub-threads. In some embodiments, a user interface can be provided, displaying an input box in which the user can enter a specific value, thereby adjusting the target number of sub-threads to the specific value entered by the user. In other embodiments, the user interface can also include multiple controls representing different values. When the user clicks a corresponding control, the target number is adjusted to the value represented by the corresponding control.
[0105] In some implementations, experiments can be conducted in advance to determine a reasonable value for the target number. For example, to ensure the stable operation of the AGC background service, the synchronization of process recipes does not affect the normal operation of other system functions and services. The server processing speed is observed by increasing the number of threads one by one. It was ultimately found that when a function has a maximum of 20 sub-threads, the server memory consumption and CPU utilization rate reach 80%. Creating more sub-threads will reduce the server processing power and slow down the operation speed. Taking all factors into consideration, it is optimal to have a maximum number of thread tasks not exceeding 20, that is, the target number can be 20.
[0106] In this embodiment, the number of sub-threads can be flexibly set to avoid too many sub-threads, which may affect other tasks on the device; or too few sub-threads, which may result in a long synchronization time.
[0107] The following is an illustrative description of the feasible execution process of the synchronization method of the process recipe provided in this application with a specific implementation method.
[0108] In a feasible implementation, taking the synchronization of the process recipe of the host computer in FIG2 to the AGC as an example, referring to FIG4 , the synchronization of the process recipe may include:
[0109] S401: Acquire identification information of each process recipe in the host computer. In this embodiment, the recipe name and modification time are taken as a whole and regarded as identification information.
[0110] S402: Obtain identification information of the original process recipe in the AGC, wherein the original process recipe refers to the process recipe in the AGC before executing this step.
[0111] S403: Based on the maximum number of threads, the identification information of each process recipe in the host computer is divided into N parts, where N is the maximum number of threads. Here, a configuration file can be pre-set, and the value of N can be pre-set in the configuration file to implement the configuration of the maximum number of threads. For example, when the maximum number of threads needs to be limited to 5, the value of N can be set to 5 in the configuration file. Therefore, N can be freely configured according to user needs. For example, when the number of threads is 20, the memory consumption and central processing unit usage of the device reach 80%, then N can be set to 20. Moreover, it can be divided into N parts in an even distribution manner. For example, if the number of process recipes in the host computer is 100, each piece of identification information includes: identification information of 5 process recipes.
[0112] S404: Create N sub-threads and assign N pieces of identification information to each sub-thread. Each sub-thread uses asynchronous task processing to synchronize the process recipe based on its own identification information. The processing within each sub-thread is identical, namely S405 to S413, differing in the identification information used. Here, we will illustrate S405 to S413 using only one sub-thread as an example.
[0113] S405: After obtaining the assigned identification information, the child thread loops through each identification information in its synchronization task.
[0114] S406: Determine whether the loop is finished. If so, execute step S407. If not, execute step S408.
[0115] S407: The synchronization task has been completed, and the synchronization is completed.
[0116] S408: Determine whether the currently traversed identification information exists in the original recipe data, that is, whether the process recipe indicated by the currently traversed identification information already exists in the AGC. If so, execute step S409. If not, execute step S410. Specifically, compare the recipe name and modification time of the original process recipe in the AGC obtained in step S402 with the name and modification time of the currently traversed recipe to determine whether the process recipe recorded in the AGC is consistent with the process recipe transmitted by the host computer.
[0117] S409: No synchronization is performed, and step S405 is continued to traverse the next identification information.
[0118] S410: Based on the currently traversed identification information, the corresponding target process recipe is obtained from the host computer.
[0119] S411: parse each process step in the target process recipe and store the parsed process steps in a cache. Specifically, the process steps can be parsed based on the process step name field in the above embodiment, which will not be described in detail here.
[0120] S412: Determine whether the process steps in the target process recipe have been parsed and stored in the cache. If not, continue to step S411; if so, proceed to step S413.
[0121] S413: All process steps are stored in batches in a recipe database, and only a single database operation is performed to save all process steps. The recipe database is the database of the AGC for storing the displayed process recipes.
[0122] In this embodiment, the tasks of the synchronous process recipe are divided and then handed over to multi-threaded asynchronous processing. The advantage of multi-threaded asynchronous processing is that the synchronous processing tasks are run at the same time, and the threads do not interfere with each other. Since they are processed at the same time, the processing time is greatly reduced. The storage of process recipes is realized by performing batch database operations in units of process steps, which can reduce database operations as much as possible and avoid frequent database operations causing high database pressure, which in turn leads to the risk of automatic closure and data loss. In addition, the algorithm in this embodiment is highly versatile and can be applied not only to device hardware, device host software, but also to other monitoring equipment software. All modules involving synchronization functions can be embedded and used, which greatly improves subsequent work efficiency and reduces R&D costs.
[0123] Some embodiments of the present application further provide a process recipe synchronization device for synchronizing process recipes in a host computer, comprising: a processor and a memory;
[0124] Wherein, the memory is connected to the processor, and the memory is used to store computer programs;
[0125] The processor is configured to implement the method for synchronizing the process recipes of any of the above embodiments by running a computer program stored in the memory.
[0126] Another embodiment of the present application further provides another process recipe synchronization device, as shown in FIG5 , the process recipe synchronization device includes:
[0127] The synchronization module 51 is used to determine the target process recipe of the target process equipment that is not stored in the recipe database by adopting a multi-threaded asynchronous task processing method, and synchronize the target process recipe to the recipe database.
[0128] In some embodiments, the recipe database is used to store process recipes displayed by a process monitoring application, which is used to monitor target process equipment.
[0129] In some embodiments, the synchronization module 51 includes:
[0130] an acquiring unit, configured to acquire target recipe data of a target process equipment, wherein the target recipe data includes: identification information of a process recipe in the target process equipment;
[0131] an allocating unit, configured to allocate target recipe data to a target number of sub-threads, wherein different sub-threads are allocated identification information of different process recipes;
[0132] A synchronization unit is used to traverse the assigned identification information of each sub-thread in the sub-thread respectively, and when the original recipe data does not contain the process recipe indicated by the traversed identification information, determine the process recipe indicated by the traversed identification information as the target process recipe, and synchronize the target process recipe to the recipe database; wherein the original recipe data includes: the process recipe stored in the recipe database before synchronizing the target process recipe to the recipe database.
[0133] In some implementations, the identification information includes: a recipe name and a modification time of the process recipe.
[0134] In some implementations, the synchronization unit is specifically configured to:
[0135] Obtaining the target process recipe from the target process equipment based on the identification information of the target process recipe;
[0136] Analyze the process steps of the target process recipe;
[0137] The target process recipe is stored in the recipe database in the order of process steps.
[0138] In some embodiments, the process step of parsing the target process recipe in the synchronization unit includes:
[0139] Parse the target process formula, determine the data between two adjacent step name fields as the process step corresponding to the step name field located in front of the two adjacent step name fields, and determine the data after the last step name field in the target process formula as the last process step.
[0140] In some embodiments, the device further comprises:
[0141] The response module is used to adjust the value of the target quantity in response to the user's target input.
[0142] The process recipe synchronization device provided in the embodiment of this application and the process recipe synchronization method provided in the above embodiment of this application are based on the same inventive concept. For technical details not fully described in this embodiment, please refer to the specific processing content of the process recipe synchronization method provided in the above embodiment of this application, and will not be repeated here.
[0143] Another embodiment of the present application further provides a semiconductor process equipment, comprising: a host computer and a process recipe synchronization device communicatively connected to the host computer;
[0144] The host computer includes: multiple process recipes for process production;
[0145] The process recipe synchronization device is used to execute the process recipe synchronization method of any of the above embodiments to synchronize the process recipe in the host computer.
[0146] Another embodiment of the present application further proposes an electronic device, as shown in Figure 6. An exemplary embodiment of the present application further provides an electronic device, including: a memory and a processor, the memory stores a computer program, and when the processor executes the computer program, it executes the steps of the synchronization method of the process recipe according to various embodiments of the present application described in the above embodiments of the present application.
[0147] The internal structure of the electronic device can be shown in Figure 6. The electronic device includes a processor, a memory, a network interface and an input device connected via a system bus. The processor of the electronic device is used to provide computing and control capabilities. The memory of the electronic device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system and a computer program. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The network interface of the electronic device is used to communicate with an external terminal via a network connection. When the computer program is executed by the processor, the steps in the synchronization method of the process recipe according to various embodiments of the present application described in the above embodiments of the present application are performed.
[0148] The processor may include a main processor, and may also include a baseband chip, a modem, etc.
[0149] The memory stores a computer program that executes the technical solution of the present invention, and may also store an operating system and other key services. Specifically, the computer program may include program code, which includes computer operating instructions. More specifically, the memory may include read-only memory (ROM), other types of static storage devices that can store static information and instructions, random access memory (RAM), other types of dynamic storage devices that can store information and instructions, disk storage, flash memory, etc.
[0150] The processor may be a general-purpose processor, such as a general-purpose central processing unit (CPU), a microprocessor, or an application-specific integrated circuit (ASIC), or one or more integrated circuits used to control the execution of the program of the present invention. It may also be a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic device, discrete gate or transistor logic device, or discrete hardware components.
[0151] Input devices may include devices that receive data and information input by a user, such as a keyboard, mouse, camera, scanner, light pen, voice input device, touch screen, pedometer, or gravity sensor.
[0152] Output devices may include means that allow information to be output to a user, such as display screens, printers, speakers, and the like.
[0153] The communication interface may include any device such as a transceiver to communicate with other devices or communication networks, such as Ethernet, Radio Access Network (RAN), Wireless Local Area Network (WLAN), etc.
[0154] The processor executes the computer program stored in the memory and calls other devices, which can be used to implement the various steps of the synchronization method of any process recipe provided in the above embodiments of the present application.
[0155] The electronic device may further include a display component and a voice component. The display component may be a liquid crystal display or an electronic ink display. The input device of the electronic device may be a touch layer covering the display component, or a button, trackball or touchpad provided on the housing of the electronic device, or an external keyboard, touchpad or mouse.
[0156] Those skilled in the art will understand that the structure shown in Figure 6 is merely a block diagram of a portion of the structure related to the solution of the present application, and does not constitute a limitation on the electronic device to which the solution of the present application is applied. The specific electronic device may include more or fewer components than shown in the figure, or combine certain components, or have a different component arrangement.
[0157] In addition to the above-mentioned methods and devices, the process recipe synchronization method provided in the embodiments of the present application may also be a computer program product, which includes a computer program, which, when executed by a processor, enables the processor to execute the steps of the process recipe synchronization method according to various embodiments of the present application described in the above-mentioned "Exemplary Method" section of the present application.
[0158] The computer program product may be written in any combination of one or more programming languages to implement the program code of the embodiments of the present application, including object-oriented programming languages such as Java, C++, and conventional procedural programming languages such as C or similar programming languages. The program code may be executed entirely on the user's computing device, partially on the user's computing device, as a standalone software package, partially on the user's computing device and partially on a remote computing device, or entirely on a remote computing device or server.
[0159] In addition, an embodiment of the present application also provides a computer-readable storage medium on which a computer program is stored, and the computer program is executed by a processor to execute the steps in the synchronization method of the process recipe according to various embodiments of the present application described in the above "Exemplary Method" section of the present application.
[0160] It should be understood that the specific examples in this article are only intended to help those skilled in the art better understand the present application, rather than to limit the scope of the present application.
[0161] It can be understood that in the various implementation methods of this application, the size of the serial number of each process does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of this application.
[0162] It can be understood that the various embodiments described in this application can be implemented individually or in combination, and this application is not limited to this.
[0163] Unless otherwise indicated, all technical and scientific terms used in this application have the same meaning as those generally understood by those skilled in the art in the technical field of this application. The terms used in this application are only for the purpose of describing specific embodiments and are not intended to limit the scope of this application. The term "and / or" used in this application includes any and all combinations of one or more related listed items. The singular forms "a", "above", and "the" used in this application and the appended claims are also intended to include plural forms, unless the context clearly indicates otherwise.
[0164] It is understood that the processor of the present application can be an integrated circuit chip with signal processing capabilities. During implementation, each step of the above-mentioned method implementation can be completed by hardware integrated logic circuits in the processor or software instructions. The above-mentioned processor can be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. The various methods, steps, and logic block diagrams disclosed in this application can be implemented or executed. The general-purpose processor can be a microprocessor or any conventional processor. The steps of the method disclosed in this application can be directly implemented and executed by a hardware decoding processor, or by a combination of hardware and software modules in the decoding processor. The software module can be located in a storage medium mature in the art, such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, etc. The storage medium is located in the memory, and the processor reads the information in the memory and, in conjunction with its hardware, completes the steps of the above-mentioned method.
[0165] It will be understood that the memory in the present application may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memories. Among them, the non-volatile memory may be a read-only memory (ROM), a programmable read-only memory (Programmable ROM, PROM), an erasable programmable read-only memory (Erasable PROM, EPROM), an electrically erasable programmable read-only memory (EEPROM) or flash memory. The volatile memory may be a random access memory (RAM). It should be noted that the memory of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.
[0166] Those skilled in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0167] Those skilled in the art will clearly understand that, for the convenience and brevity of description, the specific working processes of the above-described systems, devices and units can refer to the corresponding processes in the aforementioned method implementation methods and will not be repeated here.
[0168] In the several embodiments provided in this application, it should be understood that the disclosed systems, devices, and methods can be implemented in other ways. For example, the device embodiments described above are merely illustrative. For example, the division of units is merely a logical function division. In actual implementation, there may be other division methods, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.
[0169] The units described as separate components may or may not be physically separate, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed across multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of this embodiment.
[0170] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
[0171] If the functions are implemented in the form of software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application, or the part that contributes to the prior art or the part of the technical solution, can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a number of instructions for enabling a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the method described in each embodiment of the present application. The aforementioned storage medium includes: various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.
[0172] The above description is merely a specific embodiment of the present application, but the scope of protection of the present application is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in the present application should be included in the scope of protection of the present application. Therefore, the scope of protection of the present application should be based on the scope of protection of the claims.
Claims
1. A synchronization method for a process recipe, characterized in that: include: Using a multi-threaded asynchronous task processing method, determining a target process recipe in a target process device that is not stored in a recipe database, and synchronizing the target process recipe to the recipe database; The recipe database is used to store the process recipe displayed by the process monitoring application, and the process monitoring application is used to monitor the target process equipment; The asynchronous task processing method using multi-threading includes: using a target number of sub-threads to execute a target task in parallel, wherein the target task includes determining a target process recipe in a target process device that is not stored in a recipe database, and synchronizing the target process recipe to the recipe database.
2. The method according to claim 1, characterized in that The method adopts a multi-threaded asynchronous task processing method to determine a target process recipe in a target process device that is not stored in a recipe database, and synchronizes the target process recipe to the recipe database, including: Acquire target recipe data of the target process equipment, wherein the target recipe data includes: identification information of the process recipe in the target process equipment; Allocating the target recipe data to a target number of sub-threads, wherein different sub-threads are allocated identification information of different process recipes; For each of the sub-threads, the assigned identification information is traversed in the sub-thread respectively, and when the original recipe data does not contain the process recipe indicated by the traversed identification information, the process recipe indicated by the traversed identification information is determined as the target process recipe, and the target process recipe is synchronized to the recipe database; wherein the original recipe data includes: the process recipe stored in the recipe database before the target process recipe is synchronized to the recipe database.
3. The method according to claim 2, characterized in that The identification information of the process recipe includes: the recipe name and modification time of the process recipe.
4. The method according to claim 2, characterized in that: Synchronizing the target process recipe to the recipe database includes: Based on the identification information of the target process recipe, acquiring the target process recipe from the target process equipment; Analyze the process steps of the target process recipe; The target process recipe is stored in the recipe database in the order of the process steps.
5. The method according to claim 4, characterized in that The process steps of analyzing the target process formula include: Parse the target process recipe, determine the data between two adjacent step name fields as the process step corresponding to the step name field located in front of the two adjacent step name fields, and determine the data after the last step name field in the target process recipe as the last process step.
6. The method according to claim 4, characterized in that The step of storing the target process recipe in the recipe database according to the order of the process steps comprises: Based on a database insert operation triggered by a database instruction, the target process recipe is stored in the recipe database in the order of the process steps.
7. The method according to claim 2, characterized in that Before distributing the target recipe data to the target number of sub-threads, the method further includes: In response to a target input by a user, the value of the target quantity is adjusted.
8. A process recipe synchronization device, used to synchronize the process recipe in a host computer, characterized in that: include: Processor and memory; Wherein, the memory is connected to the processor, and the memory is used to store a computer program; The processor is used to implement the following by running the computer program stored in the memory: A synchronization method for the process recipe described in any one of claims 1 to 7.
9. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the method for synchronizing the process recipes according to any one of claims 1 to 7 is implemented.
10. A semiconductor process equipment, characterized in that: include: A host computer and a process recipe synchronization device connected to the host computer in communication; The host computer includes: a plurality of process recipes for process production; The process recipe synchronization device is used to execute the process recipe synchronization method described in any one of claims 1 to 7 to synchronize the process recipe in the host computer.
Citation Information
Patent Citations
Semiconductor machine productivity simulation method and semiconductor machine productivity simulation system
CN108363362A
Data synchronization method and device and electronic equipment
CN113836220A
Synchronization method and device of process formula and semiconductor process equipment
CN117520450A
Method of providing context specific recipes in a semiconductor facility by defining product categories
US20040220968A1
Database synchronization employing parallel poll threads
US20230134092A1
Cited By
Process formula synchronization method and device, formula distribution management equipment and storage medium
CN121637577A
Process recipe synchronization method and apparatus, recipe dispensing management device, and storage medium
CN121637577B