Software updating method of semiconductor device, semiconductor device and storage medium
By constructing an independent service process architecture and middleware message interaction, and identifying active and inactive service processes, the impact of semiconductor equipment software updates on job tasks was resolved, enabling flexible update methods and reducing economic losses.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- SHANGHAI WEIFU SEMICON EQUIP CO LTD
- Filing Date
- 2026-04-13
- Publication Date
- 2026-05-12
AI Technical Summary
During the execution of current tasks, existing semiconductor equipment faces challenges in determining the appropriate software update targets and timing, resulting in inflexible update methods or direct impacts on the work process, potentially leading to economic losses, especially in vertical furnace equipment.
The software architecture of the control system is constructed as multiple independent service processes. Messages are exchanged through middleware to identify active service processes participating in the current task, and software updates are performed on inactive service processes without affecting the task.
It enables flexible software updates of some service processes while maintaining the continuous execution of job tasks, reducing the impact of updates on job tasks and improving the flexibility of updates and the stability of equipment.
Smart Images

Figure CN122018952A_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of semiconductor manufacturing technology, and in particular to software update methods for semiconductor devices, semiconductor devices, and storage media. Background Technology
[0002] In the semiconductor manufacturing industry, semiconductor equipment is typically controlled by a control system to execute current tasks within semiconductor process cavities. As equipment functionality continues to expand, the control system usually integrates various software functions, including process control, data logging, log processing, and external communication. Different software functions have varying impacts on the current task during equipment operation.
[0003] With increasing demands for software version iterations, feature optimizations, and anomaly repair, related software functions in control systems typically require updates. However, existing software update methods often struggle to adequately consider the impact of different software functions on the current task, making it difficult to rationally determine the update targets and timing. On one hand, uniformly delaying software updates lacks flexibility; on the other hand, updating directly without fully considering the current task's requirements can negatively impact it. This is especially true in vertical furnace equipment, which processes hundreds of wafers simultaneously. Failure to properly manage the relationship between the current process and software updates can lead to significant economic losses. Summary of the Invention
[0004] In view of the shortcomings of the prior art described above, the purpose of this disclosure is to provide a software update method for semiconductor devices, semiconductor devices and storage media, and to solve the problems in the related art.
[0005] This disclosure provides a software update method for a semiconductor device, applied to a semiconductor device including a semiconductor process cavity and a control system. The control system operates multiple service processes, including a basic service process and process execution processes that depend on the basic service process. The method includes: determining, based on a software update instruction obtained from the control system, a service process to be updated among the multiple service processes; determining, based on a current job task of the semiconductor process cavity obtained from the control system, an active service process participating in the current job task among the multiple service processes; and, in response to a service process to be updated being an inactive service process to be updated and not belonging to a basic service process, performing a software update on the inactive service process to be updated while simultaneously maintaining the active service process continuing to execute the current job task.
[0006] In an embodiment of the first aspect, in response to the service process to be updated being the basic service process, the software update of the basic service process is delayed until the current job task is completed; in response to the service process to be updated being a process execution process, its activity or inactivity is determined based on whether the process execution process is executing the current job task, so as to perform a software update on the inactive process execution process.
[0007] In the first aspect of the embodiment, the process execution process and the basic service process communicate through process calls; the process execution process, as the active service process, initiates a process call to the basic service process to pass the job processing instructions of the current job task to the basic service process.
[0008] In an embodiment of the first aspect, the plurality of service processes further includes a service interaction process, which is communicatively connected between the input interface and other service processes, and is used to determine the process execution process and / or basic service process to be updated as the service process based on the software update instruction input by the input interface.
[0009] In an embodiment of the first aspect, the plurality of service processes communicate with a middleware; the step of performing a software update on the inactive service processes to be updated includes: the plurality of service processes further include a service interaction process, which transmits a software update instruction to the middleware, so that the middleware transmits the software update instruction to the inactive service processes to be updated among the plurality of service processes.
[0010] In an embodiment of the first aspect, the service interaction process publishes a message to the middleware; multiple service processes obtain their respective messages from the middleware; wherein the message includes at least one of: job request message, job status message, service status message, log message, data recording message, external communication message, and software update request message.
[0011] In an embodiment of the first aspect, the step of performing a software update on the inactive service process to be updated in response to the service process to be updated being an inactive service process to be updated includes: obtaining the current process flow to determine the execution sequence of service processes in the current process flow; determining, based on the execution sequence, the duration for which each inactive service process to be updated will remain inactive; determining, based on the software update instruction, the duration required for software update of each inactive service process to be updated; and determining the service process to be updated whose duration meets the duration required for software update, so as to perform a software update.
[0012] In an embodiment of the first aspect, the method further includes: delaying the software update of the service process to be updated in response to the fact that the service process to be updated belongs to the active service process; and performing a software update of the service process to be updated in response to the fact that the service process to be updated changes to inactive.
[0013] A second aspect of this disclosure provides a semiconductor device, including a control system and a semiconductor process cavity, the control system being configured to control the semiconductor process cavity and to perform a software update method for the semiconductor device as described in any of the first aspects.
[0014] A third aspect of this disclosure provides a computer-readable storage medium storing a computer program or instructions that, when executed, perform a software update method for a semiconductor device as described in any of the first aspects.
[0015] As described above, this disclosure provides a software update method for a semiconductor device, a semiconductor device, and a storage medium. The method includes: determining, based on a software update instruction obtained from the control system, a plurality of service processes to be updated; determining, based on the current task of the semiconductor process cavity obtained from the control system, an active service process participating in the current task among the plurality of service processes; and, in response to a service process to be updated being an inactive service process and not a basic service process, performing a software update on the inactive service process while simultaneously maintaining the active service process to continue executing the current task. This disclosure, by constructing the software architecture in the control system as an architecture running multiple independent service processes, and identifying the active service processes participating in the current task during its execution, and performing software updates on the inactive service processes to be updated, enables flexible updates to some service processes to be updated in the control system while maintaining the continuous execution of the current task, thereby reducing the impact of software updates on the execution of the current task. Attached Figure Description
[0016] Figure 1 A schematic diagram illustrating a scenario of a software update method for a semiconductor device according to an embodiment of this disclosure.
[0017] Figure 2 A flowchart illustrating a software update method for a semiconductor device according to an embodiment of this disclosure is shown.
[0018] Figure 3 A control system architecture diagram of a software update method for a semiconductor device according to an embodiment of this disclosure is shown.
[0019] Figure 4A control system architecture diagram illustrating a software update method for a semiconductor device according to yet another embodiment of this disclosure is shown.
[0020] Figure 5 A flowchart illustrating a software update method for a semiconductor device according to yet another embodiment of this disclosure is shown.
[0021] Figure 6 A schematic diagram of the modules of a software update system for a semiconductor device is shown in one embodiment of the present disclosure.
[0022] Figure 7 A schematic diagram of the structure of a computer device according to an embodiment of the present disclosure is shown. Detailed Implementation
[0023] The following specific examples illustrate the implementation of this disclosure. Those skilled in the art can easily understand other advantages and effects of this disclosure from the information disclosed herein. This disclosure can also be implemented or applied through other different specific embodiments, and various details in this disclosure can be modified or changed according to different viewpoints and application modules without departing from the spirit of this disclosure. It should be noted that, unless otherwise specified, the embodiments and features in the embodiments of this disclosure can be combined with each other.
[0024] The embodiments of this disclosure will now be described in detail with reference to the accompanying drawings, so that those skilled in the art to which this disclosure pertains can readily implement it. This disclosure may be embodied in many different forms and is not limited to the embodiments described herein.
[0025] In this disclosure, references to terms such as "one embodiment," "some embodiments," "example," "specific example," or "some examples," etc., indicate that a specific feature, structure, material, or characteristic represented in connection with that embodiment or example is included in at least one embodiment or example of this disclosure. Furthermore, the specific features, structures, materials, or characteristics represented may be combined in any suitable manner in any one or a group of embodiments or examples. Moreover, without contradiction, those skilled in the art can combine and integrate the different embodiments or examples represented in this disclosure, as well as the features of those different embodiments or examples.
[0026] Furthermore, the terms "first" and "second" are used for illustrative purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of technical features indicated. Thus, a feature defined as "first" or "second" may explicitly or implicitly include at least one of that feature. In the representation of this disclosure, "a set" means two or more, unless otherwise explicitly specified.
[0027] For the purpose of clarity, devices unrelated to the description are omitted, and the same or similar components throughout the specification are given the same reference numerals.
[0028] Throughout this specification, when it is said that a device is "connected" to another device, this includes not only "direct connection" but also "indirect connection" by placing other components in between. Furthermore, when it is said that a device "comprises" a certain constituent element, unless otherwise stated otherwise, this does not exclude other constituent elements, but rather implies that other constituent elements may be included.
[0029] While the terms first, second, etc., are used in some examples herein to refer to various elements, these elements should not be limited by these terms. These terms are used only to distinguish one element from another. For example, first interface and second interface, etc., are used. Furthermore, as used herein, the singular forms “a,” “an,” and “the” are intended to also include the plural forms unless the context indicates otherwise. It should be further understood that the terms “comprising,” “including,” indicate the presence of the stated feature, step, operation, element, module, item, kind, and / or group, but do not exclude the presence, occurrence, or addition of one or more other features, steps, operations, elements, modules, items, kinds, and / or groups. The terms “or” and “and / or” as used herein are interpreted as inclusive, or mean any one or any combination thereof. Thus, “A, B, or C” or “A, B, and / or C” means “any one of: A; B; C; A and B; A and C; B and C; A, B, and C.” Exceptions to this definition will only occur if the combination of elements, functions, steps, or operations is inherently mutually exclusive in some way.
[0030] The technical terms used herein are for reference only to specific embodiments and are not intended to limit the scope of this disclosure. The singular form used herein includes the plural form unless the statement explicitly indicates otherwise. The word "comprising" as used in this specification means to specify a particular characteristic, region, integer, step, operation, element, and / or component, and does not exclude the presence or addition of other characteristics, regions, integers, steps, operations, elements, and / or components.
[0031] Although not explicitly defined, all terms, including technical and scientific terms used herein, shall have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure pertains. Terms defined in commonly used dictionaries shall be further interpreted as having a meaning consistent with the relevant technical literature and the message of the present disclosure, and shall not be over-interpreted as having an ideal or overly formulaic meaning unless otherwise defined.
[0032] In the semiconductor manufacturing industry, semiconductor equipment is typically controlled by a control system to execute current tasks within semiconductor process cavities. As equipment functionality continues to expand, control systems often integrate various software functions, including process control, data logging, log processing, and external communication. Different software functions have varying impacts on the current task during equipment operation.
[0033] With increasing demands for software version iterations, feature optimizations, and anomaly repair, related software functions in control systems typically require updates. However, during the execution of current tasks by semiconductor equipment, existing software update methods often struggle to adequately consider the impact of different software functions on the current task, making it difficult to rationally determine the update targets and timing. On one hand, uniformly delaying software updates lacks flexibility; on the other hand, updating directly without fully considering the current task's requirements can negatively impact it. This is especially true in batch processing equipment such as vertical furnaces, where properly handling conflicts between software updates and current process technology is crucial to prevent significant economic losses.
[0034] Therefore, this disclosure provides a software update method for semiconductor devices, referring to... Figure 1The diagram illustrates a scenario for a software update method for a semiconductor device. This embodiment applies the software update method to a semiconductor device, thus requiring careful consideration of the device's specific application needs. Specifically, the semiconductor device includes a semiconductor process chamber 410 and a control system 100. The control system 100 runs multiple service processes 110, including a basic service process 150 and process execution processes 140 that depend on the basic service process 150. The control system 100 is connected to a database 300 for data storage and retrieval, a controller 400 for controlling the semiconductor process chamber 410, and a plant administration system 200 for production management information exchange. The control system 100 is a system with several control functions, including at least one of the following: recipe processing, material transfer, loading / unloading, human-machine interaction, data storage, and hardware control. Each service process 110 is an independent process, used to implement the aforementioned functions. These service processes can be categorized into basic service processes 150 and process execution processes 140 to collaboratively complete the current task. Production management information includes equipment status data and process execution data generated during the operation of the semiconductor equipment. By constructing the software architecture of the control system as an architecture running multiple independent service processes, and identifying active service processes participating in the current task during its execution, and performing software updates on service processes not belonging to these active service processes, the system can screen service processes to be updated based on the current task, rationally determine service processes eligible for software updates, and reduce the impact of software updates on the current task execution process.
[0035] like Figure 2 The diagram shown illustrates a flowchart of a software update method for a semiconductor device according to an embodiment of this disclosure.
[0036] exist Figure 2 The software update method for the semiconductor device described herein includes:
[0037] Step S110: Based on the software update instruction obtained from the control system, determine the service process to be updated among the multiple service processes.
[0038] The target software version carried in the software update instruction is a pre-tested and verified software version. For example, the tested and verified software version can be deployed on a test machine or simulation platform in a non-production state, and a verification process can be executed based on a preset test process to check whether the target software version meets the preset requirements in terms of formula processing, parameter distribution, hardware control, status feedback, data recording, and anomaly handling; if the verification results meet the preset requirements, a software update instruction carrying the target software version information is generated.
[0039] The service processes to be updated include at least one of the following: material scheduling service process, material transfer service process, process formulation service process, data recording service process, log processing service process, hardware control service process, and external communication service process.
[0040] In some embodiments, the software update instruction includes identification information corresponding to the service process to be updated. The control system can directly determine the service process to be updated based on the identification information carried in the software update instruction.
[0041] In some embodiments, the software update instruction includes update feature information. The control system can identify the service process to be updated among a plurality of service processes based on a preset mapping relationship between the update feature information and service processes. The update feature information includes at least one of the following: update package identifier, functional module identifier, change scope information, and version information.
[0042] In some embodiments, the software update instruction may instruct an update to be performed on a single service process to be updated, or it may instruct an update to be performed on multiple service processes to be updated.
[0043] In some embodiments, such as Figure 3 The diagram shows the control system architecture of a software update method for semiconductor equipment. The control system can run a service interaction process 130, which is communicatively connected between an input interface and other service processes. This service interaction process 130 is used to determine the process execution process 140 and / or the basic service process 150 to be updated based on the software update command input through the input interface. The input interface includes a human-machine interface 120 and / or an external terminal interface communicatively connected to the control system 100.
[0044] For example, service interaction process 130 adopts a Visual Frontend Service (VFService). Service interaction process 130 can serve as the interaction entry point for human-computer interaction interface 120, used to receive software update commands input by human-computer interaction interface 120. When the software in control system 100 needs to be updated, the software update command input by human-computer interaction interface 120 can first be received by service interaction process 130, and the service process to be updated can be determined based on the software update request. It is worth mentioning that, in contrast, in the service architecture of the prior art, service interaction process 130 basically covers the functions corresponding to each independent service process under the control system architecture of this disclosure. These functions are not independent of each other in the service architecture of the prior art, but are centrally coupled and uniformly implemented in service interaction process. Therefore, compared with the architecture of the prior art, the control system architecture of this disclosure, by splitting the functions originally concentrated in service interaction process 130 into multiple independent service processes, can provide an architectural foundation for subsequent service processes to perform software updates separately. In the new architecture of this disclosure embodiment, the service interaction process 130 is different from the service interaction process in the prior art. It separates the process-related functions into independent processes to reduce the coupling between the service processes and support software updates for different independent process execution processes, thereby improving the flexibility of software updates.
[0045] Therefore, under the new architecture of the control system, the service interaction process 130 is an independent service process, and can also serve as a front-end access node between multiple independent service processes and the human-machine interface 120. It is used to integrate the status information of each service process to feed back to the human-machine interface 120, while the multiple independent service processes each undertake their respective software functions.
[0046] Step S120: Based on the current job task of the semiconductor process cavity obtained from the control system, determine the active service process participating in the current job task among multiple service processes.
[0047] The current task refers to one or more tasks maintained by the control system at the current update moment that correspond to the current production of the semiconductor equipment. Current tasks include at least one of the following: formulation process tasks, material scheduling tasks, material transfer tasks, data recording tasks, and external communication tasks.
[0048] In some embodiments, reference Figure 3 The diagram shows the control system architecture of the software update method for the semiconductor device. Multiple service processes include several process execution processes 140 and several basic service processes 150. The process execution processes 140 and the basic service processes 150 communicate with each other through process calls.
[0049] The process execution process 140 is used to execute the current job task. The process execution process 140 includes: material scheduling service process 141, material transfer service process 142, and process formula service process 143.
[0050] The material scheduling service process 141 is used to schedule the material handling process according to the current job task. For example, the material scheduling service process 141 can be used to determine the inbound and outbound handling control of semiconductor equipment and external hoppers.
[0051] Material transfer service process 142 is used to perform material transfer processing. For example, material transfer service process 142 can be used to control the transfer process of wafers, carriers or other objects to be processed within a semiconductor device.
[0052] The process recipe service process 143 is used to perform processes related to the process recipe. For example, the process recipe service process 143 can be used to execute process recipe flows and process parameter calls so that the semiconductor equipment can perform the current task according to the predetermined process requirements. For example, if it is a vertical furnace, the corresponding process recipe service process 143 can specifically be used to execute one of the processes such as oxidation, deposition, annealing, and alloying. The process parameter call can be, for example, calling one or more parameters such as pressure control, gas flow rate, and temperature.
[0053] The basic service process 150 is used to provide basic functional support for the above-mentioned process execution process 140. The basic service process 150 includes: data recording service process 151, log processing service process 152, hardware control service process 153, and external communication service process 154.
[0054] The data recording service process 151 is used to receive process data, equipment status data and / or result data generated during the operation of semiconductor equipment, and write the data into a database and / or send it to the plant host system.
[0055] Log processing service process 152 is used to record the running logs, exception logs, and update logs of multiple service processes during the execution of the current job task.
[0056] The hardware control service process 153 is used to perform corresponding hardware control operations on the controller and semiconductor process cavity according to the control instructions issued by the control system 100.
[0057] The external communication service process 154 is used to realize the interaction of production management information between the control system and the plant host system, external management system, and remote operation and maintenance terminal.
[0058] Furthermore, the service interaction process 130 can communicate with the human-machine interface 120 to receive various operation commands input by the user through the human-machine interface 120, such as software update commands, job control commands, parameter configuration commands, and status query commands. After receiving the corresponding command, the service interaction process 130 can send the command to the process execution process 140 and / or the basic service process 150 through process invocation to execute the corresponding task.
[0059] Under this software architecture, any service process in the process execution process 140 can call each service process in the basic service process 150 to complete the execution of the current job task.
[0060] based on Figure 3 In the architecture of this embodiment, when multiple service processes communicate through process calls, the service interaction process 130 can determine the service process to be updated based on the software update command input by the human-computer interaction interface 120, and issue the software update command to the service process to be updated through direct inter-process calls.
[0061] based on Figure 3 In this embodiment, the process execution process 140, acting as an activity service process, initiates a process call to the basic service process 150 to transmit the current job processing instructions to the basic service process 150. Specifically, when a recipe process task is input as the current job task through the human-machine interface 120, the service interaction process 130 sends the recipe process task to the process recipe service process 143. The process recipe service process 143 can send a control request to the hardware control service process 153 through a process call, based on the recipe steps and process parameters obtained from analyzing the process recipe task. The hardware control service process 153 can convert the control request into low-level control instructions that the controller can recognize and send them to the controller (e.g., a programmable logic controller (PLC)). The controller can then control the actions of the execution components in the semiconductor process cavity according to the low-level control instructions, so that the semiconductor process cavity can complete the current job task.
[0062] In some embodiments, reference Figure 4 The diagram illustrates a control system architecture for a software update method for a semiconductor device. Multiple service processes include: service interaction process 130, material scheduling service process 141, material transfer service process 142, process recipe service process 143, data logging service process 151, log processing service process 152, hardware control service process 153, and external communication service process 154. All these service processes are connected to middleware 160. Middleware 160 includes at least one of the following: message middleware, event bus, and local message queue.
[0063] In this architecture, the service interaction process 130 can communicate with the human-machine interface 120 to receive various operation commands input by the user through the human-machine interface 120, such as software update commands, job control commands, parameter configuration commands, and status query commands. After receiving the corresponding command, the service interaction process 130 can encapsulate the command into a message and publish it to the middleware 160. The middleware 160, as a message distribution component in the control system 100, is used to forward messages between multiple service processes, coordinate message flow, and establish message communication links between service processes. The messages include at least one of the following: job request messages, job status messages, service status messages, log messages, data recording messages, external communication messages, and software update request messages.
[0064] Each service process connects to the middleware 160 without needing to establish direct process call relationships between them. The material scheduling service process 141, material transfer service process 142, process formulation service process 143, data recording service process 151, log processing service process 152, hardware control service process 153, and external communication service process 154 can all collaborate through the middleware 160 by subscribing to, receiving, processing, and publishing messages. For example, the process formulation service process 143 can generate a formulation execution message based on the current process flow, and the message is sent to the hardware control service process 153 via the middleware 160. Thus, different service processes can exchange messages through the middleware 160 without establishing direct point-to-point call relationships between them, further reducing the coupling between service processes. Furthermore, the middleware 160 has a low update frequency, improving the flexibility and stability of message distribution in the control system 100.
[0065] based on Figure 4 In the architecture of this embodiment, when multiple service processes communicate through middleware 160, the process execution process corresponding to the current job task can be identified as the active service process. For example, when the current job task is a material scheduling task, the material scheduling service process 141 executing the material scheduling task can be identified as the active service process; while other process execution processes 140 that are not executing the current job task, such as material transfer service process 142 and process recipe service process 143, can be identified as inactive service processes. For data recording service process 151, log processing service process 152, hardware control service process 153, and external communication service process 154 that participate in the message processing related to the current job task through middleware 160, since they belong to basic service processes 150, update determination is not based on activity or inactivity, but software updates are performed directly after the current job task ends.
[0066] based on Figure 4In the architecture of this embodiment, when the control system receives a software update instruction, the service interaction process 130 can encapsulate the software update instruction into a software update request message and publish it to the middleware 160; the service process to be updated can obtain the software update request message corresponding to itself from the middleware 160 to perform software update processing.
[0067] Since the service processes interact via middleware 160, even if a service process awaiting an update that is not currently participating in the software update process enters the update process, it will not affect the execution process corresponding to the current job from continuing to communicate with other service processes via middleware 160. Furthermore, Figure 4 The architecture of this embodiment enables message interaction between multiple service processes through middleware 160, eliminating the need to establish fixed point-to-point call relationships between multiple service processes. This helps to reduce the coupling between multiple service processes and takes into account both the operational needs of semiconductor devices and the software update needs.
[0068] Back Figure 2 Step S130: In response to the fact that the service process to be updated is an inactive service process to be updated and does not belong to the basic service process, perform a software update on the inactive service process to be updated, while maintaining the active service process to continue to execute the current job task.
[0069] This step distinguishes between the active service processes that are to be updated and the inactive service processes that are not currently executing the current job. Only the inactive service processes are updated, and the software updates for the basic service processes are postponed until the current job is completed.
[0070] In some embodiments, in response to the service process to be updated being a base service process, the software update of the base service process is postponed until the current job task is completed.
[0071] In response to the fact that the service process to be updated is a process execution process, its activity or inactivity is determined based on whether the process execution process is performing the current job task, so as to provide software updates for inactive process execution processes.
[0072] Therefore, during the execution of the current task, if the process execution process is updated, the process execution process responsible for the current task can be identified as the active service process, while other process execution processes are identified as inactive. Since the basic service processes support the process execution processes, the execution of any process execution process depends on the support of the basic service processes. Therefore, updating any basic service process must wait for the current task to finish. This judgment method allows for flexible updates to inactive service processes in the control system while maintaining the continued execution of the current task by active service processes, thus avoiding downtime caused by software updates.
[0073] For example, based on Figure 3 In the architecture of the illustrated embodiment, when the current task is material feeding and discharging, and the software update instruction indicates that the service process to be updated is the material scheduling service process 141 in the process execution process 140, the material scheduling service process 141 calls several basic service processes 150 during execution to perform the current task. The material scheduling service process 141 calls the hardware control service process to control the scheduling mechanism, calls the data recording service process 151 to record the scheduling status, calls the log processing service process 152 to record the execution log, and calls the external communication service process 154 to report the scheduling information to the plant mainframe system. Therefore, the material scheduling service process 141 and the basic service processes 150 are used to support the execution of the current task, and thus belong to service processes that cannot perform software updates during the execution of the current task. At this time, other process execution processes 140 that are not performing the current task, such as the material transfer service process 142 and the process formulation service process 143, can be identified as inactive service processes. Therefore, while maintaining process execution process 140 to continue supporting the execution of the current job, other process execution processes that do not support the execution of the current job can be included in the scope of updatable processes, thereby taking into account both the operational needs of semiconductor equipment and the needs of software updates.
[0074] In some embodiments, performing a software update on an inactive service process awaiting an update includes one or more of the following: sending an update package to the inactive service process, loading the update program file, performing a version replacement, rebuilding the process runtime environment, restarting the corresponding service process, and performing a post-update self-check. The active service process continues to execute processing normally according to the control logic corresponding to the current job task. For example, when the current job task is in the process processing stage, the process formulation service process can continue to execute the current formulation flow and cavity control as an active service process; while the material scheduling service process or material transfer service process, which is not participating in the current process processing, can perform a software update at this stage if it is a service process awaiting an update. Thus, online updates can be performed on some service processes without affecting the continuous execution of the current process task.
[0075] In some embodiments, during software updates of inactive service processes awaiting updates, the control system can continuously monitor the running status, resource usage status, and task execution status of active service processes to ensure that the current job is not interrupted by the update operation. If an abnormal status of the active service process is detected, subsequent software updates for service processes awaiting updates can be paused, and / or the current update operation can be rolled back to prioritize the execution of the current job. This approach ensures stable production capacity of the semiconductor equipment while updating the control system.
[0076] In some embodiments, the semiconductor device may be implemented as a vertical furnace. In step S130, the determination of whether the process execution process is active or inactive is based on at least one of the following states: device state, operation state, material state, gas path state, process state, and safety state. The process execution process includes a material transfer service process, a material scheduling service process, and a process formulation service process.
[0077] The material transfer service process is in an inactive state where software updates can be performed. For example, the inactive state of the material transfer service process includes, but is not limited to, the following: In terms of equipment mode, the semiconductor equipment is in standby mode or maintenance mode; in terms of operation state, the robot arm returns to its original position or the servo enable is turned off or there is no operation queue; in terms of material state, there are no wafer cassettes / boats waiting to be loaded or unloaded, and the furnace door is closed and locked; in terms of process state, there are no tasks waiting to be loaded into the furnace or unloaded from the furnace, and the batch has been completed; in terms of safety state, there is no emergency stop and no loading or unloading alarm.
[0078] Accordingly, the material transfer service process is in an active state. For example, the active state of the material transfer service process may include, but is not limited to, the following: in terms of equipment mode, for semiconductor equipment, it is in automatic operation mode or manual debugging mode; in terms of operation state, it is in the process of picking up, placing, rotating, or lifting; in terms of material state, the furnace door is open and there is material in the loading and unloading path; in terms of process state, the process is waiting for loading and unloading is not completed; in terms of safety state, there is a safety alarm that has not been reset.
[0079] The material scheduling service process is in an inactive state where software updates can be performed. For example, the inactive state of the material scheduling service process may include, but is not limited to, the following: In terms of equipment mode, the semiconductor equipment is in standby or maintenance mode or the transmission system is locked; in terms of operation state, the transmission mechanism is fully returned to its original position, the servo is powered off, and the scheduling queue is cleared; in terms of material state, the transmission line is idle and no wafer cassette is located in the scheduling path; in terms of process state, there are no furnace transfer tasks or chamber transfer tasks; in terms of safety state, there are no safety alarms.
[0080] Accordingly, the material scheduling service process is in an active state. For example, the active state of the material scheduling service process may include, but is not limited to, the following: in terms of equipment mode, the semiconductor equipment is in automatic transmission mode or manual debugging mode; in terms of operation state, it is in translation, lifting, or docking operation; in terms of material state, the material is being transmitted, and cross-area transmission is not completed; in terms of process state, the material is being transferred between process sections; in terms of safety state, there is transmission overload, material jamming, or limit abnormality.
[0081] When the process formulation service process is in an inactive state where software updates can be performed, the inactive state of the process formulation service process may, for example, include, but is not limited to, the following: In terms of equipment mode, the semiconductor equipment is in standby mode, maintenance mode, or process lock state; in terms of process state, there are no heating steps, no holding steps, no annealing steps, no doping steps, and the furnace temperature is less than or equal to the safe temperature; in terms of gas path state, the process gas is shut off, purging is completed, and the pressure and flow rate are stable; in terms of furnace state, the furnace is empty, there are no wafers inside the tube, and the batch is completed; in terms of safety conditions, there are no over-temperature alarms, no over-pressure alarms, and no gas alarms.
[0082] Accordingly, when the process formulation service process is in an active state, for example, the active state of the process formulation service process may include, but is not limited to, the following: in terms of equipment mode, the semiconductor equipment is in a process running state or the formulation is being executed; in terms of process state, it is in a state of heating, constant temperature, process heat preservation, or gas introduction; in terms of gas path state, it is in a state of gas flow regulation and / or process gas is being supplied; in terms of furnace state, there are wafers in the furnace and / or the process has not ended normally; in terms of safety conditions, the safety alarm has not been reset.
[0083] In some embodiments, reference Figure 5 The flowchart illustrating a software update method for a semiconductor device shows that software updates are performed on inactive service processes awaiting updates, including:
[0084] Step S131: Obtain the current process flow to determine the execution sequence of each service process in the current process flow.
[0085] Step S132: Based on the execution sequence, determine the duration for which each inactive service process to be updated will remain inactive.
[0086] Step S133: Based on the software update instruction, determine the software update duration required for each inactive service process to be updated, and determine the service processes to be updated whose duration meets the software update duration requirement, so as to perform the software update.
[0087] The execution sequence includes: the start time of each service process, the end time of each process, and the duration of each process's execution.
[0088] In some embodiments, the control system can determine the execution sequence of each service process in the current process flow based on at least one of the following: process recipe, task scheduling table, historical execution records, and current task status. For inactive service processes awaiting updates, the duration can be determined as the time period from the current moment to the start time of the process before its next expected participation in the current task.
[0089] In some embodiments, the control system can determine the software update time required for each service process to be updated based on the update package size, the number of update steps, and the historical update time corresponding to the software update instruction.
[0090] In some embodiments, the control system can compare the planned or predicted duration of inactivity for each inactive service process to be updated with the duration required for its respective software update. When the duration of inactivity for an inactive service process to be updated is greater than or equal to the duration required for its software update, the software update can be performed on that service process during that duration of inactivity. For example, if a material scheduling service process is expected to be inactive for a period of time and its update duration is shorter than the duration of inactivity during that period, then the software update can be prioritized for the material scheduling service process. In this way, software updates can be scheduled within a time window where the service process has no impact on the current task, thereby reducing the impact of update operations on equipment operation.
[0091] In some embodiments, considering that the time required for software updates may have errors, such as the actual software update taking longer than the planned or predicted time, a preset time margin is added to the required software update time to ensure that the software update can be completed within a continuous inactive period. The sum of the required software update time and the preset time margin is then used as the target update time length. Therefore, in step S133, the continuous inactive period corresponding to the inactive service process to be updated can be compared with the target update time length. The software update is only performed on the service process to be updated if the continuous inactive period corresponding to the inactive service process to be updated is greater than or equal to the target update time length.
[0092] In some embodiments, the preset time margin can be determined based on historical data of the actual update duration of the same service process to be updated (which may be the control system or the same service process run by the control system in other devices) and the duration required for software updates in the past. For example, the difference between the actual update duration obtained each time in the past and the predetermined duration required for software updates can be calculated; and the average of the difference obtained from each update in the past can be used as the preset time margin.
[0093] In some embodiments, when the continuous inactivity period of an inactive service process to be updated is less than the duration required for its software update, the control system identifies a subsequent continuous inactivity period that matches the duration required for the software update based on the execution sequence of the service process to be updated, and performs a software update on the service process to be updated at the start time of the continuous inactivity period.
[0094] This embodiment provides a method for updating the software of a semiconductor device, based on the foregoing embodiments.
[0095] In response to the fact that the service process to be updated is an active service process, the software update for the service process to be updated is postponed.
[0096] In response to a change in the service process to be updated to inactive, perform a software update for the service process to be updated.
[0097] In this embodiment, if the service process to be updated is an active service process, the software update will not be performed on the service process to be updated immediately. Instead, the update operation will be postponed, and the current job task will be maintained until the service process to be updated becomes inactive, and then the software update will be performed.
[0098] Specifically, the timing of issuing software update commands and the corresponding service processes to be updated can be controlled through the service interaction process to execute the software update.
[0099] For example, if the service process to be updated is a material handling service process, but the current process is in the wafer transfer stage, the update can be performed after the current transfer operation is completed and the process exits the active state. This method avoids directly updating the active service process, which could cause the current job to malfunction.
[0100] like Figure 6 The diagram illustrates a module schematic of a software update system for a semiconductor device according to an embodiment of this disclosure. It should be noted that the principle and technical implementation of the software update system for the semiconductor device can be referenced from the software update methods for semiconductor devices in previous embodiments; therefore, they will not be repeated in this embodiment.
[0101] The software update system 500 for the semiconductor device includes:
[0102] The acquisition module 501 is used to acquire software update instructions and the current operation task of the semiconductor process cavity.
[0103] The selection module 502, connected to the acquisition module 501, is used to determine the service process to be updated among multiple service processes based on the software update instruction.
[0104] Selection module 502 is also used to determine the active service process participating in the current job task among multiple service processes based on the current job task of the semiconductor process cavity.
[0105] The update module 503, connected to the selection module 502, is used to perform a software update on the inactive service process to be updated and not a basic service process in response to the fact that the service process to be updated is an inactive service process to be updated and does not belong to the basic service process, while maintaining the active service process to continue to execute the current job task.
[0106] It should be noted that, in Figure 6The various functional modules in the embodiments can be implemented, in whole or in part, by software, hardware, firmware, or any combination thereof. When implemented in software, they can be implemented, in whole or in part, in the form of a computer program or instruction product. A computer program or instruction product includes one or more computer programs or instructions. When a computer program or instruction is loaded and executed on a computer, it produces, in whole or in part, the flow or function according to this disclosure. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer program or instructions can be stored in a computer-readable storage medium or transferred from one computer-readable storage medium to another.
[0107] and, Figure 6 The apparatus disclosed in the embodiments can be implemented through other modular division methods. The apparatus embodiments shown above are merely illustrative. For example, the module division is only a logical functional division, and in actual implementation, there may be other division methods. For example, a group of modules or modules may be combined or dynamically integrated into another system, or some features may be ignored or not executed. Furthermore, the shown or discussed mutual coupling, direct coupling, or communication connection may be through some interfaces, and the indirect coupling or communication connection between devices or modules may be electrical or other forms.
[0108] in addition, Figure 6 The functional modules and sub-modules in the embodiments can be dynamically integrated within a single processing unit, or each module can exist physically independently, or two or more modules can be dynamically integrated within a single unit. These dynamic units can be implemented in hardware or as software functional modules. If these dynamic units are implemented as software functional modules and sold or used as independent products, they can also be stored in a computer-readable storage medium. This storage medium can be a read-only memory, a hard disk, or an optical disk, etc.
[0109] It should be specifically noted that the flowchart representations of the embodiments described above in this disclosure can be understood as representing a module, segment, or portion of code comprising one or more executable instructions configured to implement a specific logical function or process. Furthermore, the scope of the preferred embodiments of this disclosure includes other implementations in which functions may be performed not in the order shown or discussed, including substantially simultaneously or in reverse order depending on the functions involved.
[0110] For example, Figure 2 , Figure 5 The order of the steps in the method embodiment may vary in specific scenarios and is not limited to the above representation.
[0111] like Figure 7The diagram shown illustrates the structure of a computer device according to an embodiment of the present disclosure.
[0112] The computer device 600 may be exemplified as a processing terminal, such as a server, desktop computer, laptop computer, tablet computer, smartphone, or other terminal.
[0113] The computer device 600 includes a bus 601, a processor 602, and a memory 603. The processor 602 and the memory 603 can communicate via the bus 601. The memory 603 can store computer programs or instructions. The processor 602 implements the method flow or function described in the previous embodiments by running the computer program or instructions stored in the memory 603, for example... Figure 1 .
[0114] Bus 601 can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. Buses can be categorized as address buses, data buses, control buses, etc. For ease of representation, although only one thick line is used in the diagram, this does not indicate that there is only one bus or one type of bus.
[0115] In some embodiments, processor 602 may be implemented as a central processing unit (CPU), microprocessor unit (MCU), system-on-chip (System-on-Chip), or field-programmable array (FPGA). Memory 603 may include volatile memory for temporary data storage during program execution, such as random access memory (RAM).
[0116] The memory 603 may also include non-volatile memory for data storage, such as read-only memory (ROM), flash memory, hard disk drive (HDD), or solid-state disk (SSD).
[0117] In some embodiments, the computer device 600 may further include a communicator 604. The communicator 604 is used for communication with external devices. In specific examples, the communicator 604 may include one or more wired and / or wireless communication circuit modules. For example, the communicator 604 may include one or more of, such as a wired network card, a USB module, a serial interface module, etc. The wireless communication protocols followed by the wireless communication module include, for example, Nearfield Communication (NFC) technology, Infrared (IR) technology, Global System for Mobile Communications (GSM), General Packet Radio Service (GPRS), Code Division Multiple Access (CDMA), Wideband Code Division Multiple Access (WCDMA), Time-Division Code Division Multiple Access (TD-SCDMA), Long Term Evolution (LTE), Bluetooth (BT), Global Navigation Satellite System (GNSS), etc.
[0118] This disclosure also provides a computer-readable storage medium storing a computer program or instructions, which, when run, implement the method flow or function of any of the previous embodiments.
[0119] That is, the method steps in the above embodiments are implemented as software or computer code that can be stored in a recording medium (such as CD ROM, RAM, floppy disk, hard disk or magneto-optical disk), or implemented as computer code that is originally stored in a remote recording medium or a non-transitory machine-readable medium and will be stored in a local recording medium after being downloaded via a network, so that the method represented herein can be stored in such software processing on a recording medium using a general-purpose computer, a special processor or programmable or special hardware (such as ASIC or FPGA).
[0120] This disclosure may also provide a computer program product, comprising one or more computer programs or instructions, which, when run, perform all or part of the processes or functions described in this disclosure. The computer program product includes one or more computer programs or instructions.
[0121] Computer programs or instructions can be stored in a readable storage medium or transferred from one readable storage medium to another. For example, the computer program or instructions can be transferred from one website, computer, server, or data center to another website, computer, server, or data center via wired or wireless means. The readable storage medium can be any available medium capable of access, or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium, such as a floppy disk, hard disk, or magnetic tape; an optical medium, such as a digital video optical disc; or a semiconductor medium, such as a solid-state drive. The computer-readable storage medium can be a volatile or non-volatile storage medium, or it can include both volatile and non-volatile types of storage media.
[0122] In summary, this disclosure provides a software update method for a semiconductor device, a semiconductor device, and a storage medium. The method includes: determining, based on a software update instruction obtained from the control system, a service process to be updated from among a plurality of service processes; determining, based on the current job task of the semiconductor process cavity obtained from the control system, an active service process participating in the current job task from among the plurality of service processes; and, in response to a service process to be updated being an inactive service process to be updated and not a basic service process, performing a software update on the inactive service process to be updated, while simultaneously maintaining the active service process continuing to execute the current job task. This disclosure enables flexible updates to inactive service processes to be updated in the control system while maintaining the active service process continuing to execute the current job task, thereby reducing the impact of software updates on the execution of the current job task.
[0123] The above embodiments are merely illustrative of the principles and effects of this disclosure and are not intended to limit this disclosure. Any person skilled in the art can modify or alter the above embodiments without departing from the spirit and scope of this disclosure. Therefore, all equivalent modifications or alterations made by those skilled in the art without departing from the spirit and technical concept disclosed in this disclosure should still be covered by the protection scope of this disclosure.
Claims
1. A software update method for a semiconductor device, characterized in that, The semiconductor device includes a semiconductor process cavity and a control system. The control system runs multiple service processes, including basic service processes and process execution processes that depend on the basic service processes. The method includes: Based on the software update instruction obtained from the control system, determine the service process to be updated among the multiple service processes; Based on the current job task of the semiconductor process cavity obtained by the control system, the active service process participating in the current job task is determined from among the multiple service processes; In response to the fact that the service process to be updated is an inactive service process to be updated and is not a basic service process, a software update is performed on the inactive service process to be updated, while the active service process continues to execute the current job task.
2. The software update method for semiconductor devices according to claim 1, characterized in that, Also includes: In response to the fact that the service process to be updated is the basic service process, the software update of the basic service process is postponed until the current job task is completed; In response to the fact that the service process to be updated is a process execution process, its activity or inactivity is determined based on whether the process execution process is executing the current job task, so as to provide software updates for inactive process execution processes.
3. The software update method for semiconductor devices according to claim 2, characterized in that, The process execution process and the basic service process communicate via process calls, and the process execution process also includes: The process execution process, which serves as the activity service process, initiates a process call to the basic service process to pass the job processing instructions of the current job task to the basic service process.
4. The software update method for a semiconductor device according to claim 2, characterized in that, Also includes: The plurality of service processes also include a service interaction process, which is a communication connection between the input interface and other service processes. The service interaction process is used to determine the process execution process and / or basic service process to be updated based on the software update instruction input by the input interface.
5. The software update method for a semiconductor device according to claim 1, characterized in that, Multiple service processes communicate with a middleware; the step of performing a software update on the inactive service processes awaiting update includes: The plurality of service processes also include a service interaction process, which transmits a software update instruction to the middleware, so that the middleware can transmit the software update instruction to an inactive service process that is to be updated among the plurality of service processes.
6. The software update method for a semiconductor device according to claim 5, characterized in that, Also includes: The service interaction process publishes messages to the middleware; The multiple service processes obtain their respective messages from the middleware; The messages include at least one of the following: job request message, job status message, service status message, log message, data recording message, external communication message, and software update request message.
7. The software update method for a semiconductor device according to claim 1, characterized in that, The step of performing a software update on the inactive service process in response to the fact that the service process to be updated is an inactive service process to be updated includes: Obtain the current process flow to determine the execution sequence of service processes within the current process flow; Based on the execution sequence, the duration for which each inactive service process awaiting update will remain inactive is determined. Based on the software update instruction, determine the software update duration required for each of the inactive update-pending service processes, and determine the update-pending service processes whose duration meets the software update duration requirement, so as to perform the software update.
8. The software update method for a semiconductor device according to claim 1, characterized in that, Also includes: In response to the fact that the service process to be updated belongs to the active service process, the software update for the service process to be updated is postponed. In response to the change of the service process to be updated to inactive, a software update is performed on the service process to be updated.
9. A semiconductor device, characterized in that, The device includes a control system and a semiconductor process cavity, the control system being used to control the semiconductor process cavity, and the control system being configured to perform a software update method for a semiconductor device as described in any one of claims 1 to 8.
10. A computer-readable storage medium, characterized in that, The device contains a computer program or instructions that are executed to perform a software update method for a semiconductor device as described in any one of claims 1 to 8.