Instruction scheduling method and device, semiconductor equipment and medium
By allocating time slices for each business instruction in the semiconductor manufacturing process and sending them at designated times, the problems of Recipe execution time jitter and high EtherCAT chip cost are solved, achieving efficient and accurate instruction scheduling and reliable communication.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-12-12
- Publication Date
- 2026-04-07
AI Technical Summary
In existing semiconductor manufacturing processes, the execution time of Recipes fluctuates too much, making it difficult to run them repeatedly. EtherCAT chips are expensive, have poor compatibility, and have low communication reliability.
By storing multiple business instructions received from the business process and allocating a corresponding time slice for each instruction, the system ensures that instructions are sent at the specified time, achieving efficient and accurate instruction scheduling. It is deployed in the processor using a dedicated core, eliminating communication uncertainties and performance losses with the business process.
It achieves efficient and precise scheduling of Recipes, ensures the repeatability of execution time, reduces hardware adaptation requirements, and improves communication reliability and compatibility.
Smart Images

Figure CN121807475A_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of instruction scheduling, in particular to an instruction scheduling method and device, a semiconductor device and a medium. BACKGROUND
[0002] A Recipe in a semiconductor manufacturing process refers to a set of precisely defined process parameters and operation steps for guiding a production device to perform a specific semiconductor manufacturing task. In the process of a semiconductor manufacturing process, the actual execution time of each step is often too large when running a Recipe, which brings difficulties to repeatedly running the Recipe. To solve this problem, the current industry usually uses an EtherCAT chip and protocol. However, using this method requires the use of an EtherCAT chip and protocol, which will increase the cost of components. On the one hand, the EtherCAT chip must be adapted to the corresponding hardware architecture, which has poor compatibility. On the other hand, as the number of controlled components increases, the number of communication nodes in the EtherCAT serial will also increase. When a node has a problem, the communication nodes behind it will be interrupted, and the communication reliability is low. SUMMARY
[0003] The present application discloses an instruction scheduling method and device, a semiconductor device and a medium, which has good compatibility, high communication reliability and can realize efficient and accurate instruction scheduling.
[0004] In a first aspect, the present application provides an instruction scheduling method, comprising: storing a plurality of service instructions of a received service process; allocating a corresponding time slice for each service instruction of the stored service process; and in the case that a received control instruction indicates that the service process needs to be started, sending the service instruction in the corresponding time slice.
[0005] In this way, the embodiments of the present application can eliminate the uncertainty and performance loss caused by communication with the service process during Recipe execution by first storing a plurality of service instructions of a received service process, allocate a corresponding time slice for each service instruction of the stored service process, and ensure the accuracy and timeliness of each service instruction execution, send the service instruction in the corresponding time slice in the case that a received control instruction indicates that the service process needs to be started, realize efficient and accurate scheduling of the instruction, and ensure that the subsequent control component receives and executes the service instruction at a fixed time point, with high communication reliability. Moreover, no specific hardware architecture needs to be adapted, and the compatibility is good.
[0006] In a possible implementation, before storing a plurality of service instructions of a received service process, the method further comprises: parsing a plurality of service instructions of the service process from a received instruction package of the service process.
[0007] Thus, in the embodiment of the present application, the service instruction in the whole instruction package is received and parsed, and in the subsequent Recipe execution process, there is no need to interact with other service processes, thereby eliminating the uncertainty and performance loss caused by the communication with the service process in the Recipe execution process, and avoiding the delayed sending instruction caused by the delay in receiving the service instruction.
[0008] In a possible implementation, the plurality of service instructions of the received service process are stored, including: storing all the service instructions of the same service process received according to the execution order indicated by the process serial number corresponding to each service instruction of the service process.
[0009] Thus, in the embodiment of the present application, the service instruction in the whole instruction package is received and parsed, and in the subsequent Recipe execution process, there is no need to interact with other service processes, thereby eliminating the uncertainty and performance loss caused by the communication with the service process in the Recipe execution process, and avoiding the delayed sending instruction caused by the delay in receiving the service instruction.
[0010] In a possible implementation, a corresponding time slice is allocated for each service instruction of the stored service process, including: allocating a corresponding time slice for each service instruction in turn according to the execution order indicated by the process serial number corresponding to each service instruction of the service process.
[0011] Thus, in the embodiment of the present application, the service instruction in the whole instruction package is received and parsed, and in the subsequent Recipe execution process, there is no need to interact with other service processes, thereby eliminating the uncertainty and performance loss caused by the communication with the service process in the Recipe execution process, and avoiding the delayed sending instruction caused by the delay in receiving the service instruction.
[0012] In a possible implementation, the service instruction is sent in the corresponding time slice in the case that the received control instruction indicates that the service process needs to be started, including: in the case that the received control instruction indicates that a plurality of service instructions of the service process need to be started in sequence, the plurality of service instructions of the service process are sent according to the time slice sequence; or in the case that the received control instruction indicates that the first service instruction of the service process that has not been executed needs to be started, the first service instruction is sent.
[0013] Thus, in the embodiment of the present application, the service instruction in the whole instruction package is received and parsed, and in the subsequent Recipe execution process, there is no need to interact with other service processes, thereby eliminating the uncertainty and performance loss caused by the communication with the service process in the Recipe execution process, and avoiding the delayed sending instruction caused by the delay in receiving the service instruction.
[0014] In a possible implementation, when the received control instruction indicates that the plurality of service instructions of the service process need to be started in sequence, the plurality of service instructions of the service process are sent in the time slice sequence, including: when it is judged that the component for receiving the previous service instruction meets the preset running condition, the current service instruction is sent; wherein the preset running condition includes the running time length and / or the running state.
[0015] In this way, by judging whether the component for receiving the previous service instruction meets the preset running condition, that is, judging whether the component has truly executed the action corresponding to the previous service instruction, the current service instruction is sent after the component truly executes the corresponding action, so that the execution action conflict caused by sending the new service instruction before the previous service instruction is completed is avoided.
[0016] In a second aspect, the application provides an instruction scheduling device, including: an instruction storage module, configured to store a plurality of service instructions of a received service process; a time slice allocation module, configured to allocate a corresponding time slice for each service instruction of the stored service process; and a time slice sending module, configured to send the service instruction in the corresponding time slice when a received control instruction indicates that the service process needs to be started.
[0017] In a possible implementation, before storing the plurality of service instructions of the received service process, the device further includes an instruction analysis module, configured to analyze the plurality of service instructions of the service process from a received instruction package of the service process.
[0018] In a possible implementation, storing the plurality of service instructions of the received service process includes: storing all the service instructions of the same service process received according to the execution order indicated by the process serial number corresponding to each service instruction of the service process.
[0019] In a possible implementation, allocating the corresponding time slice for each service instruction of the stored service process includes: allocating the corresponding time slice for each service instruction in sequence according to the execution order indicated by the process serial number corresponding to each service instruction of the service process.
[0020] In a possible implementation, when the received control instruction indicates that the service process needs to be started, the service instruction is sent in the corresponding time slice, including: when the received control instruction indicates that the plurality of service instructions of the service process need to be started in sequence, the plurality of service instructions of the service process are sent in the time slice sequence; or when the received control instruction indicates that the first service instruction of the service process that has not been executed needs to be started, the first service instruction is sent.
[0021] In a possible implementation, when the received control instruction indicates that multiple service instructions of the service process need to be started in sequence, the multiple service instructions of the service process are sent in a time slice sequence, including: when it is determined that a component for receiving a previous service instruction meets a preset running condition, a current service instruction is sent; wherein the preset running condition includes a running time length and / or a running state.
[0022] In a third aspect, an embodiment of the present application further provides an instruction scheduling apparatus, comprising a memory, a processor and a computer program stored in the memory, and the processor executes the computer program to implement the steps of the above method.
[0023] In a fourth aspect, an embodiment of the present application further provides a semiconductor device, comprising the above instruction scheduling apparatus; and a hardware apparatus, configured to perform corresponding actions in response to the service instructions sent by the instruction scheduling apparatus.
[0024] In a fifth aspect, an embodiment of the present application further provides a computer readable storage medium, which stores a computer program, and the computer program is executed by a processor to implement the steps of the above method. BRIEF DESCRIPTION OF DRAWINGS
[0025] In order to more clearly illustrate the technical solutions of the embodiments of the present application or the prior art, the following will briefly introduce the drawings needed to be used in the embodiments or the prior art description. Obviously, the drawings in the following description are only some embodiments of the present application, and for those skilled in the art, other drawings can also be obtained without creative labor based on these drawings.
[0026] Figure 1 It is a schematic diagram of a process flow in the related art.
[0027] Figure 2 It is a schematic diagram of an EtherCAT scheme in the related art.
[0028] Figure 3 It is a schematic diagram of the deployment architecture of each process in the operating system provided by the embodiment of the present application.
[0029] Figure 4 It is a schematic diagram of the service process and the instruction scheduling process provided by the embodiment of the present application.
[0030] Figure 5 It is a flowchart of the instruction scheduling method provided by the embodiment of the present application.
[0031] Figure 6 It is a schematic diagram of various control instructions provided by the embodiment of the present application.
[0032] Figure 7A schematic diagram of a time slice allocation result of a service process provided by an embodiment of the present application. DETAILED DESCRIPTION
[0033] Various exemplary embodiments, features, and aspects of the present application will be described in detail below with reference to the accompanying drawings. The same reference numbers in different drawings represent the same or similar elements / function. Although various aspects of embodiments are illustrated in the drawings, the drawings are not necessarily drawn to scale unless specifically noted.
[0034] As used herein, the terms "comprise", "comprising", "have", "having", "include", "including", "contain", "containing", or variants thereof are open-ended, and include one or more stated features, integers, elements, steps, components or functions but do not preclude the presence or addition of one or more other features, integers, elements, steps, components, functions or groups thereof.
[0035] When an element is referred to as being "connected", "coupled", "responsive", or variants thereof to another element, it can be directly connected, coupled, or responsive to the other element, or intervening elements can be present.
[0036] Although the terms first, second, third, etc. can be used herein to describe various elements / operations, these elements / operations should not be limited by these terms. These terms are only used to distinguish one element / operation from another element / operation. Thus, a first element / operation in some embodiments could be termed a second element / operation in other embodiments without departing from the teachings of the present application.
[0037] The word "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any implementation described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other implementations.
[0038] In addition, for the purpose of convenience and brevity, detailed descriptions of well-known functions and structures incorporated in the present application can be omitted. It will be appreciated that those skilled in the art will be able to devise various arrangements that, although not explicitly described herein, embody the principles of the application and fall within the spirit and scope of the application.
[0039] In order to facilitate the understanding of the technical solutions provided by the embodiments of the present application, the technical environment for implementing the technical solutions will be described first.
[0040] In semiconductor manufacturing processes, recipe execution typically requires repeatability. Engineers expect the execution time of each process step in a recipe to be deterministic; specifically, when a recipe is repeatedly executed, the execution time jitter for the same step should not exceed a preset threshold (e.g., 1 ms). Execution time jitter refers to the time difference between executing the same step on different wafers. However, in actual recipe operation, the actual execution time jitter for each step often far exceeds the specified threshold, reducing the repeatability of recipe execution.
[0041] Typically, the repeatability metric of a recipe's steps can be evaluated by statistically analyzing a set of latency intervals, such as X1, X2, X3, etc. Figure 1 Taking the recipe shown (which requires repeated execution of steps 1 to 5) as an example, the repeatability of the recipe is evaluated by determining whether the actual peak-to-peak value (maximum value - minimum value) is less than a preset threshold. Figure 1 X2-X1 is taken as the actual peak-to-peak value. If X2-X1 is less than 1ms, the execution time of the Recipe Step is determined to meet the repeatability index requirement; otherwise, it is not.
[0042] Currently, the industry typically uses EtherCAT chips and protocols to achieve recipe repeatability, such as... Figure 2 As shown, the EtherCAT master station controls the EtherCAT slave stations to execute gas mass flow controller (MFC) commands, which in turn execute stage commands via another EtherCAT slave station, and finally execute motor commands via yet another EtherCAT slave station. On one hand, the EtherCAT chip must be compatible with the corresponding hardware architecture, resulting in poor compatibility. On the other hand, as the number of controlled hardware devices increases, the number of EtherCAT communication nodes also increases. If any node malfunctions, communication will be interrupted, leading to low communication reliability.
[0043] To address the aforementioned technical problems, this application provides an instruction scheduling method and apparatus. In the instruction scheduling method, by first storing multiple received business instructions from a business process, the uncertainty and performance loss caused by communication between the Recipe and the business process during execution can be eliminated. A corresponding time slice is allocated to each stored business instruction, ensuring the accuracy and timeliness of each instruction's execution. When a received control instruction indicates that a business process needs to start, the business instruction is sent in the corresponding time slice, thereby achieving efficient and accurate instruction scheduling and execution, high communication reliability, and reduced instruction scheduling errors. Furthermore, the instruction scheduling method of this embodiment does not require adaptation to a specific hardware architecture and has good compatibility.
[0044] The instruction scheduling method of the embodiments of the present application can be executed by a terminal device or a server, etc. The terminal device can be a user equipment (UE), a mobile device, a user terminal, a terminal, a cellular phone, a cordless phone, a personal digital assistant (PDA), a handheld device, a computing device, a vehicle-mounted device, a wearable device, etc. The server can include a single server or a server cluster composed of multiple servers. The instruction scheduling method of the embodiments of the present application can be realized by calling the computer readable instructions stored in the memory by the processor.
[0045] The instruction scheduling method provided by the embodiments of the present application is deployed in the processor in the form of an exclusive core. The instruction scheduling method provided by the embodiments of the present application can be applied to the operating system of a multi-core central processing unit (CPU). The execution of the instruction scheduling method by the whole core of the CPU in the system can exclude the interference of other business processes, and realize efficient and accurate scheduling of instructions. Figure 3 For example, the process deployment architecture shown in the figure is taken as an example. The operating system has a 4-core CPU, i.e., including Core0, Core1, Core2, and Core3. According to the business needs, business process 1 runs on Core0, business process 2 runs on Core1, business process 3 runs on Core2, and the instruction scheduling process runs on Core3. The instruction scheduling process specifically corresponds to the instruction scheduling method provided by the embodiments of the present application. Core0, Core1, and Core2 communicate with Core3 through inter-process communication. The communication method is not limited in the present application. In this paper, Core0, Core1, and Core2 are cores running business processes, and Core3 is a core running an instruction scheduling process. The following will not be described in detail.
[0046] Core3 running the instruction scheduling process involves inter-process communication (see Figure 4 , such as the business instructions and control instructions of the business processes sent to Core3 by Core0, Core1, and Core2 mentioned in the following), maintenance of the instruction queue (such as the storage of multiple business instructions of the business processes and the allocation of corresponding time slices for the business instructions mentioned in the following), scheduling of instructions (such as sending business instructions in corresponding time slices to trigger the corresponding instruction operations of the components mentioned in the following), etc. Core3 also integrates the driver library of all controlled components and the necessary basic information, such as communication protocols, logs, etc. The present application does not make specific limitations.
[0047] As shown in Figure 5 , the instruction scheduling method provided by the embodiments of the present application can include the following steps S101 to S103. The following will be described in combination withFigure 3 The process deployment architecture shown schematically describes the present instruction scheduling method. It should be noted that, Figure 3 The 4-core CPU is only an example, and the actual number of cores can be set according to actual needs, and the present application does not make specific limitations.
[0048] In step S101, the received service instructions of the service process are stored.
[0049] The service instructions are sent by Core0, Core1, and Core2 running the service process to Core3 running the instruction scheduling process. The service instructions of the service process refer to the instructions required to implement the preset service. In the semiconductor manufacturing process, the service instructions of the service process can be MFC instructions, stage instructions, etc. In fact, the present instruction scheduling method can be used not only in the semiconductor manufacturing process, but also in robot control scenarios or other embedded device control scenarios, and therefore, the specific content of the service instructions of the service process can be flexibly set according to actual needs, and the present application does not make specific limitations.
[0050] In step S102, a corresponding time slice is allocated for each service instruction of the stored service process.
[0051] The time slice refers to a period of CPU time allocated by the operating system to a process. The time slice is set in advance according to the execution time jitter of the process step. In the present embodiment, the time slice is set to the order of microseconds (us) to ensure that the repeatability of the Recipe instruction execution meets the expectation. Core3 performs the sending work of the service instruction in the time slice corresponding to the service instruction. The sending work of the service instruction is instructed to start by the control instruction, for example, Core3 can immediately start the sending work of the service instruction in the service process 1 upon receiving the instruction that the service process 1 needs to be started. Core3 performs the sending work of the last service instruction in the service process, at which time the instruction sending work of the service process is completed. During the execution of the sending work of the service instruction by Core3, Core3 can immediately stop the sending work of the current service or the next service instruction upon receiving the control instruction indicating to pause.
[0052] In step S103, the service instruction is sent in the corresponding time slice upon receiving the control instruction indicating that the service process needs to be started.
[0053] The control instruction is sent by Core0, Core1, and Core2 running the service process to Core3. The control instruction refers to the instruction for controlling the state of the corresponding service process. In the semiconductor manufacturing process, the types of the control instructions of the service process can be full execution (Run), single-step execution (StepExec), pause (Pause), and termination (Stop), which will be described in detail with reference toFigure 6 Full execution means sending all service instructions in a service process in sequence. Single-step execution means sending only one service instruction in a service process. Pause means stopping sending service instructions in a service process. Terminate means terminating sending service instructions in a service process. In the embodiment, to smoothly proceed with the running of a certain service process, Core0, Core1 and Core2 running the service process send all service instructions of the service process to Core3 running the instruction scheduling process, and then send the control instruction corresponding to the service process to Core3.
[0054] If Core3 receives the control instruction of the service process in the current time slice and the control instruction indicates that the service instruction needs to be sent in the corresponding time slice to start the service process, the corresponding time slice is the current time slice, and Core3 sends the service instruction in the current time slice. If Core3 receives the control instruction for the service instruction in the current time slice and the control instruction indicates that the service process needs to be started in a certain time slice later, the corresponding time slice is the certain time slice later, and Core3 sends the service instruction in the time slice.
[0055] In this way, the embodiment of the application can eliminate the uncertainty and performance loss caused by communication with the service process during the Recipe execution process by first storing the plurality of service instructions of the received service process, can ensure the accuracy and timeliness of the execution of each service instruction by allocating a corresponding time slice for each service instruction of the stored service process, and can realize efficient and accurate scheduling of the instructions by sending the service instruction in the corresponding time slice in the case where the received control instruction indicates that a service process needs to be started, thereby ensuring that the subsequent control component receives and executes the service instruction at a fixed time point.
[0056] Core0, Core1 and Core2 running the service process can package all service instructions related to the service process in advance, and then send the instruction package to Core3 running the instruction scheduling process. Before step S101, the instruction scheduling method can further include: parsing the plurality of service instructions of the service process from the received instruction package of the service process. In this way, the embodiment of the application eliminates the uncertainty and performance loss caused by communication with other service processes during the Recipe execution process by receiving the entire instruction package and then parsing the service instructions therefrom, thereby avoiding the delayed sending of the instructions caused by the delay in receiving the service instructions.
[0057] The Core0, the Core1, and the Core2 performing the business process can pack the business instructions involved according to a predetermined instruction format to obtain a Recipe instruction package. Exemplarily, the parameters used for packing the business instructions can include an instruction type, a process sequence number, an instruction execution duration, a device file descriptor, and a parameter address. The instruction type indicates the type of the instruction in the Recipe, such as whether it is a Recipe process instruction or a pre-condition judgment instruction. The process sequence number indicates the execution order of the process step corresponding to the business instruction in the entire Recipe. The instruction execution duration indicates the duration required for the execution of the business instruction. The device file descriptor indicates the hardware object driven by the business instruction. The parameter address indicates the parameter required for the action performed by the hardware object driven by the business instruction. In fact, the parameters used for packing the business instructions can be flexibly set according to actual requirements, which are not limited in the present application.
[0058] The step S101 in the instruction scheduling method can include: storing all the business instructions of the same business process received according to the execution order indicated by the process sequence number corresponding to each business instruction of the business process. In this way, the execution order indicated by the process sequence number of the business instruction is used for sequential storage, which ensures the accuracy of subsequent sequential sending of the instructions.
[0059] Exemplarily, the Core2 can pre-pack the four business instructions required for the business process 3, and then send the instruction package to the Core3. The Core3 parses the four business instructions and the corresponding process sequence numbers in the instruction package after receiving the instruction package, and stores them according to the execution order indicated by the process sequence number corresponding to each business instruction, so as to subsequently send the business instructions according to the storage order.
[0060] The step S102 in the instruction scheduling method can include: sequentially assigning a corresponding time slice to each business instruction according to the execution order indicated by the process sequence number corresponding to each business instruction of the business process. In this way, the execution order indicated by the process sequence number corresponding to each business instruction is used for sequential assignment of the time slice, which can ensure the subsequent sequential sending of the business instructions according to the execution order, so that the hardware device can be triggered to operate (or perform an action) according to the corresponding instruction, ensuring that the execution time of the process step of the Recipe is determined, thereby achieving the repeatability requirement of the Recipe execution.
[0061] Exemplarily, if the execution order of the four business instructions of a certain business process corresponding to the process step is business instruction 1, business instruction 2, business instruction 3, and business instruction 4, then the time slice corresponding to the business instruction 1 is the first time slice, the time slice corresponding to the business instruction 2 is the second time slice, the time slice corresponding to the business instruction 3 is the third time slice, and the time slice corresponding to the business instruction 4 is the fourth time slice.
[0062] The time slice in the embodiment of the application is us level, so that the service instruction can be scheduled in us level time by using the instruction scheduling method, and the execution time jitter of the service instruction is ensured to be no more than ms level. Specifically, Core 3 running the instruction scheduling process can calculate the corresponding time slice based on the parameters of the service instruction such as execution time consumption, end condition and the like, and for the service instruction affecting the instruction scheduling performance, the optimal time slice can be determined in calculation, so as to ensure that the instruction scheduling error of Core 3 always remains in us level.
[0063] Core 0, Core 1 and Core 2 running the service process send the control instruction to Core 3 according to the actual service requirement, and Core 3 schedules the corresponding service process according to the content of the actually received control instruction. Step S103 in the instruction scheduling method can include: in the case where the received control instruction indicates that the multiple service instructions of the service process need to be started in sequence, the multiple service instructions of the service process are sent in the time slice sequence; or in the case where the received control instruction indicates that the first service instruction of the service process needs to be started, the first service instruction is sent. In this way, the embodiment of the application realizes on-demand scheduling of the instruction by the specific indication content of the control instruction, and can perform accurate sending work of the service instruction.
[0064] In the case where the received control instruction indicates that the multiple service instructions of the service process need to be started in sequence (i.e. the received control instruction is full execution), Core 3 running the instruction scheduling process sends the service instructions in the time slice sequence corresponding to each service instruction of the service process. For example, after receiving the control instruction of full execution of the service process 2 sent by Core 1, Core 3 sends the corresponding service instruction in the time slice sequence of the four service instructions of the service process 2.
[0065] In the case where the received control instruction indicates that the first service instruction of the service process needs to be started (i.e. the received control instruction is single-step execution), Core 3 running the instruction scheduling process sends the service instruction in the time slice where the service instruction needs to be started. For example, after receiving the control instruction of single-step execution of the service process 3 sent by Core 2, Core 3 sends the first service instruction of the service process 3 in the corresponding time slice.
[0066] In the case that the control instruction received indicates that the plurality of service instructions of the service process need to be started in sequence, the plurality of service instructions of the service process can be sent in the time slice sequence, which can include: in the case that the hardware used to receive the previous service instruction meets the preset running condition, the current service instruction is sent; wherein the preset running condition includes a running time length and / or a running state. In this way, the embodiment of the present application determines whether the hardware used to receive the previous service instruction meets the preset running condition before sending the current service instruction, that is, whether the hardware has truly executed the action corresponding to the previous service instruction, and the current service instruction is sent after the corresponding action is truly executed, which can avoid the execution action conflict caused by sending a new service instruction before the previous service instruction is completed.
[0067] Exemplarily, as Figure 7 The time slice allocation result of each service process is shown, the queue 1 includes the service instructions of the service process 1, the queue 2 includes the service instructions of the service process 2, and the queue 3 includes the service instructions of the service process 3. In the task queue 1 corresponding to the service process 1, before the current service instruction (i.e. the motor action) corresponding to the current time slice (i.e. the third time slice) is sent, if it is determined that the laser used to receive the previous service instruction (i.e. the laser action) does not meet the preset running condition, for example, the running time length of the laser does not reach the preset time length, which indicates that the execution action corresponding to the Laser action has not been completed, the current service instruction and the service instructions after it (i.e. the motor action and the fan action) are delayed. Figure 7
[0068] It should be noted that in addition to the running time length reaching the preset time length as shown above, the preset running condition can also be that the running state reaches the preset state. In terms of the rotating motor as the hardware corresponding to the Motor action, the running state of the rotating motor, i.e. the rotating speed, needs to reach the preset rotating speed, so that the execution action corresponding to the Motor action is considered to be completed. In actual application, a suitable preset running condition can be selected according to the specific hardware, which is not limited in the present application.
[0069] The Core3 running the instruction scheduling process is independent of scheduling Figure 7 different instruction queues, in other words, the state of each service process is only controlled by the control instruction of the corresponding service process. Figure 7 The medium-high priority management queue is used to store control instructions, and the execution priority of the control instructions is higher than that of the instruction queue used to store service instructions. In other words, the Core 3 preferentially executes the control instructions in each time slice, and then sends the service instructions according to the control instructions.
[0070] After step S103, the instruction scheduling method can further include: in a case where the received control instruction indicates that the service process needs to be stopped, stopping sending the service instructions. The stopping can mean pausing or terminating.
[0071] Specifically, in a case where the received control instruction indicates that the service process needs to be paused (i.e., the received control instruction is pause), the Core 3 pauses sending the current or next service instruction of the service process.
[0072] In a case where the received control instruction indicates that the service process needs to be terminated (i.e., the received control instruction is terminate), the Core 3 terminates sending the service instruction of the service process.
[0073] Step S102 can further include: assigning the same time slice to the service instructions of different service processes that have been stored. In this way, the embodiments of the present application can send the service instructions of different service processes in parallel or in series in the same time slice, so that the service instructions of different service processes are scheduled in the same time slice, and the processing efficiency is improved.
[0074] For example, as shown in FIG. 2, the Core 3 will execute the sending task of the service instructions of the Laser action of the service process 1, the Stage action of the service process 2, and the Stage action of the service process 3 in the second time slice. Figure 7
[0075] In some embodiments, the instruction scheduling method can further include: storing the received control instruction, and determining the time slice corresponding to the control instruction. In this way, the embodiments of the present application can ensure that the specific action corresponding to the control instruction, such as stopping the business process, is executed in the corresponding time slice by storing the control instruction and determining the corresponding time slice. In order to successfully run a certain business process, the Core0, Core1 and Core2 running the business process will send all the business instructions of the business process to the Core3 running the instruction scheduling process, and then send the control instruction corresponding to the business process to the Core3. Therefore, in the method, the Core3 can first execute step S101, that is, store the received multiple business instructions of the business process, and then store the received control instruction. In addition, the Core3 can determine the time slice corresponding to the control instruction and the time slice corresponding to the business instruction simultaneously or sequentially.
[0076] The control instruction received by the Core3 from the Core0, Core1 and Core2 running the business process can be a control instruction for controlling the state of the business process in the future time slice. Then, the Core3 can store the received control instruction in the management queue, and determine the time slice corresponding to the control instruction. For example, as shown in Figure 7 the Core3 stores the Stop control instruction sent by the Core2 for the business process 3 in the management queue, and determines that the time slice corresponding to the Stop is the fourth time slice, so that the Core3 stops the business process 3 in the fourth time slice. In some embodiments, multiple control instructions can correspond to the same time slice, for example, the time slice corresponding to the two control instructions of stopping the business process 3 and stopping the business process 2 is the same time slice. In this way, the Core3 will stop the business process 3 and the business process 2 in the time slice.
[0077] The embodiments of the present application also provide an instruction scheduling device, which includes: an instruction storage module, configured to store the received multiple business instructions of a business process; a time slice allocation module, configured to allocate a corresponding time slice to each business instruction of the business process which has been stored; and a time slice sending module, configured to send the business instruction in the corresponding time slice in the case that the received control instruction indicates that the business process needs to be started.
[0078] In a possible implementation, before storing the received multiple business instructions of the business process, the device further includes an instruction analysis module, configured to: analyze the multiple business instructions of the business process from the received instruction package of the business process.
[0079] In a possible implementation, the method further includes: storing the plurality of service instructions of the received service process according to an execution order indicated by a process sequence number corresponding to each service instruction of the service process.
[0080] In a possible implementation, the method further includes: assigning a corresponding time slice to each service instruction of the stored service process according to the execution order indicated by the process sequence number corresponding to each service instruction of the service process.
[0081] In a possible implementation, the method further includes: in a case where the received control instruction indicates that the service process needs to be started, sending the service instruction in the corresponding time slice, including: in a case where the received control instruction indicates that a plurality of service instructions of the service process need to be started in sequence, sending the plurality of service instructions of the service process in the time slice sequence; or in a case where the received control instruction indicates that a first service instruction of the service process that has not been executed needs to be started, sending the first service instruction.
[0082] In a possible implementation, the method further includes: in a case where the received control instruction indicates that a plurality of service instructions of the service process need to be started in sequence, sending the plurality of service instructions of the service process in the time slice sequence, including: in a case where it is determined that a component for receiving a previous service instruction meets a preset running condition, sending a current service instruction; and wherein the preset running condition includes a running duration and / or a running state.
[0083] In some embodiments, the apparatus provided by the embodiments of the present application has functions or includes modules that can be used to perform the methods described in the above method embodiments, and the specific implementation can refer to the description of the above method embodiments. For brevity, details are not repeated here.
[0084] The embodiments of the present application also provide an instruction scheduling apparatus, including a memory, a plurality of processors, and a computer program stored in the memory, wherein one of the plurality of processors executes the computer program to implement the steps of the above method.
[0085] The embodiments of the present application also provide a semiconductor device, including the above instruction scheduling apparatus, and a hardware apparatus configured to perform a corresponding action in response to a service instruction sent by the instruction scheduling apparatus.
[0086] The embodiments of the present application also provide a computer readable storage medium having a computer program stored thereon, wherein the computer program is executed by a processor to implement the steps of the above method.
[0087] Computer readable storage media can be any media that can be read by a machine. Such media can include, but is not limited to, optical discs, magnetic discs, magnetic tapes, electronic memories, and / or any combination thereof. Computer readable storage media can be non-transitory, in that it can be a tangible medium. In some embodiments, computer readable storage media can be non-transitory, in that it can not be a signal per se. In other embodiments, computer readable storage media can be a transitory medium, in that it can be a signal. In some embodiments, computer readable storage media can be non-transitory, in that it can not be a signal per se, and computer readable storage media can be transitory, in that it can be a signal. In some embodiments, computer readable storage media can be non-transitory, in that it can not be a signal per se, and computer readable storage media can be non-transitory, in that it can be a tangible medium. In some embodiments, computer readable storage media can be transitory, in that it can be a signal, and computer readable storage media can be transitory, in that it can be a signal.
[0088] Computer readable program instructions described herein can be downloaded to respective computing / processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and / or a wireless network. The network can comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and / or edge servers. A network adapter card or network interface in each computing / processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing / processing device.
[0089] Computer readable program instructions for carrying out operations of the present application can be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The computer readable program instructions can execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer can be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection can be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate array (FPGA), or programmable logic array (PLA) can execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present application.
[0090] The computer readable program instructions can also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions / acts specified in the flowchart and / or block diagram block or blocks.
[0091] The computer readable program instructions can also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions / acts specified in the flowchart and / or block diagram block or blocks.
[0092] The computer readable program instructions can also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable data processing apparatus or other device to produce a computer implemented process such that the instructions which execute on the computer, other programmable data processing apparatus, or other device implement the functions / acts specified in the flowchart and / or block diagram block or blocks.
[0093] The computer readable program instructions can also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable data processing apparatus or other device to produce a computer implemented process such that the instructions which execute on the computer, other programmable data processing apparatus, or other device implement the functions / acts specified in the flowchart and / or block diagram block or blocks.
[0094] The above preferred embodiments, the purpose of the present application, technical solutions and advantages are further described in detail, it should be understood that the above described only the preferred embodiments of the present application, and not to limit the present application, any modification, equivalent replacement, improvement, etc. made within the spirit and principles of the present application, should be included within the scope of the present application.
Claims
1. An instruction scheduling method, characterized in that, include: Store multiple business instructions received from the business process; Allocate a corresponding time slice for each service instruction of the stored service process; If a received control instruction indicates that the service process needs to be started, the service instruction is sent in the corresponding time slot.
2. The method according to claim 1, characterized in that, Before storing multiple business instructions received from the business process, the method further includes: Multiple business instructions of the business process are parsed from the received instruction packet of the business process.
3. The method according to claim 1, characterized in that, The storage receives multiple business instructions from the business process, including: All received business instructions from the same business process are stored according to the execution order indicated by the process sequence number corresponding to each business instruction of the business process.
4. The method according to any one of claims 1 to 3, characterized in that, Allocating a corresponding time slice for each service instruction of the stored service process includes: According to the execution order indicated by the process sequence number corresponding to each business instruction in the business process, a corresponding time slice is allocated to each business instruction in sequence.
5. The method according to any one of claims 1 to 4, characterized in that, If a received control command indicates that the service process needs to be started, the service command is sent in the corresponding time slice, including: If a received control command indicates that multiple service instructions for the service process need to be started sequentially, the multiple service instructions for the service process are sent in time-slice order; or, If the received control instruction indicates that the first unexecuted service instruction of the service process needs to be started, the first service instruction is sent.
6. The method according to claim 5, characterized in that, When a received control command indicates that multiple service instructions for the service process need to be started sequentially, the multiple service instructions for the service process are sent in time-slice order, including: If the component used to receive the previous service instruction meets the preset operating conditions, the current service instruction is sent. The preset operating conditions include operating time and / or operating status.
7. A command scheduling device, characterized in that, The method includes a memory, a plurality of processors, and a computer program stored in the memory, wherein one of the plurality of processors executes the computer program to implement the steps of the method according to any one of claims 1 to 6.
8. A command scheduling device, characterized in that, include: The instruction storage module is used to store multiple business instructions received from the business process; The time slice allocation module is used to allocate a corresponding time slice for each service instruction of the stored service process; The time-slice sending module is used to send the service instruction during the corresponding time slice when the received control instruction indicates that the service process needs to be started.
9. A semiconductor device, characterized in that, include: The instruction scheduling device as described in claim 7 or 8; The hardware device is used to perform corresponding actions in response to the service instructions sent by the instruction scheduling device.
10. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 6.