CONTROL DEVICE, SYSTEM, SUBSTRATE PROCESSING APPARATUS, PRODUCT MANUFACTURING METHOD, AND PROGRAM

The control device addresses the increasing execution time of periodic tasks by dynamically assigning cyclic tasks to suitable processors, thereby preventing delays in non-periodic processing and ensuring efficient task execution.

JP7657618B2Active Publication Date: 2025-04-07CANON KK
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2021036298
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-03-08
Publication Date
2025-04-07
Estimated Expiration
2041-03-08

AI Technical Summary

Technical Problem

As the number of slave devices connected to the master device increases, the execution time for periodic tasks related to cyclic processing also increases, leading to potential delays in non-periodic processing due to higher priority periodic processing.

Method used

A control device with multiple processors that determines the most suitable processor for executing cyclic tasks based on the period of cyclic communication and execution time, ensuring that periodic tasks are executed efficiently without delaying non-periodic tasks.

Benefits of technology

The solution effectively suppresses delays in non-periodic processing while maintaining efficient periodic processing, ensuring timely completion of tasks and preventing interruptions in non-periodic task execution.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007657618000001
    Figure 0007657618000001
  • Figure 0007657618000002
    Figure 0007657618000002
  • Figure 0007657618000003
    Figure 0007657618000003
Patent Text Reader

Abstract

To provide a control device capable of suppressing delay of acyclic processing while performing cyclic processing.SOLUTION: A control device having a plurality of processors executing tasks and controlling slave devices connected via a network includes: an acquisition unit that acquires an execution time required to execute a periodic task for periodic processing related to periodic communication of a data frame including command data for controlling the slave device or response data from the slave device; and a determination unit that determines a processor to execute the periodic task from among the processors based on a period of the periodic communication and the execution time. The periodic task is executed in the determined processor.SELECTED DRAWING: Figure 4
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a control device, a system, a substrate processing apparatus, a method for manufacturing an article, a control method, and a program. [Background technology]

[0002] In a system in which data is transmitted and received (communicated) between a master device and a slave device, communication is performed at regular intervals (periodic communication). Patent Document 1 discloses a control device including a first calculation unit for executing a first task in a first control cycle, a second calculation unit for executing the first task in a second control cycle, and a third calculation unit for executing a third task that is executed depending on the situation. In other words, Patent Document 1 discloses that the first and second tasks that are processed periodically and the third task that is processed non-periodically are each executed by different calculation units. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] JP 2020-86481 A Summary of the Invention [Problem to be solved by the invention]

[0004] In a system in which communication is performed between a master device and slave devices, an increase in the number of slave devices connected to the master device increases the time (execution time) required to execute tasks related to periodic processing (periodic tasks) executed in the processing unit of the master device. Furthermore, an increase in the complexity of the processing for controlling the slave devices also increases the execution time of periodic tasks executed in the processing unit of the master device. Furthermore, because periodic processing must be completed within a period, it is executed with a higher priority than non-periodic processing that is executed aperiodically. As a result, periodic tasks may be assigned to a processing unit that executes tasks related to non-periodic processing (non-periodic tasks). This may result in the non-periodic tasks being put into a waiting state until the periodic tasks are completed, which may delay the completion of the non-periodic tasks.

[0005] Therefore, an object of the present invention is to provide a control device, system, substrate processing device, etc. that can suppress delays in non-periodic processing while performing periodic processing for communicating with slave devices at a constant cycle. [Means for solving the problem]

[0006] A control device according to one aspect of the present invention for solving the above-mentioned problems is a control device having a plurality of processors for executing tasks, and controlling slave devices connected via a network, the control device comprising: an acquisition unit that acquires an execution time required for execution of a periodic task that executes periodic processing related to periodic communication of a data frame including command data for controlling the slave devices or response data from the slave devices; and a determination unit that determines a processor that will execute the periodic task from among the plurality of processors based on a period of the periodic communication and the execution time. the periodic task includes a communication task for communicating the data frame and a generation task for generating command data for controlling the slave device, the acquisition unit acquires a first execution time required for execution of the communication task, and the determination unit determines a processor for executing the communication task, and then determines a processor for executing the generation task based on the period and the first execution time, and the periodic task is executed by the determined processor. .

[0007] Further objects or other aspects of the present invention will become apparent from the following description of the embodiments with reference to the accompanying drawings. Effect of the Invention

[0008] According to the present invention, there is provided a control device, a system, a substrate processing device, and the like that can suppress delays in non-periodic processing while performing periodic processing for communicating with a slave device at a constant cycle. [Brief description of the drawings]

[0009] [Figure 1] FIG. 1 is a diagram illustrating a system configuration. [Diagram 2] FIG. 2 is a diagram illustrating a configuration of a master device. [Diagram 3] FIG. 2 is a diagram showing a configuration of a processing unit. [Figure 4] 13 is a flowchart showing a task execution process. [Diagram 5] 11 is a flowchart showing a process for determining a processor that executes a task. [Figure 6] FIG. 4 is a diagram illustrating an example of a task allocation process according to the first embodiment. [Figure 7] FIG. 2 is a diagram showing an example of a task execution schedule according to the first embodiment. [Figure 8] FIG. 11 is a diagram illustrating another example of the task allocation process according to the first embodiment. [Figure 9] FIG. 11 is a diagram illustrating an example of a task allocation process according to the second embodiment. [Figure 10] FIG. 11 is a diagram showing an example of a task execution schedule according to the second embodiment. [Figure 11] FIG. 1 is a diagram showing a configuration of an exposure apparatus. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0010] Hereinafter, the embodiments will be described in detail with reference to the attached drawings. Note that the following embodiments do not limit the invention according to the claims. Although the embodiments describe a number of features, not all of these features are essential to the invention, and the features may be combined in any manner. Furthermore, in the attached drawings, the same reference numbers are used for the same or similar configurations, and duplicated descriptions are omitted.

[0011] First Embodiment 1 is a diagram showing the configuration of a system 100. The system 100 includes a master device 110 (control device), a plurality of slave devices 120 communicatively connected to the master device 110, and units 131, 132, and 133 communicatively connected to the slave devices 121, 122, and 123, respectively. Hereinafter, the slave devices 121, 122, and 123 may be collectively referred to simply as the slave device 120. Similarly, in the following description, the units 131, 132, and 133 may be collectively referred to simply as the unit 130.

[0012] In the system 100, the master device 110 controls the slave device 120, and the slave device 120 controls the unit 130. Here, in Fig. 1, the master device 110 and the slave device 120 can be realized by computers (information processing devices) connected to each other so as to be able to communicate with each other, but they may be configured as a board computer or may be configured to function as a board computer as well. The unit 130 is, for example, a mechanism such as an input relay, various sensors, a servo motor, or any other actuator, and can be controlled by the slave device 120.

[0013] The slave device 120 is communicatively connected to the master device 110 in a daisy chain system. The master device 110 communicates data with the slave device 120 at regular intervals (periodic communication) via the network 140. The slave devices 120 each control the units 130 based on the data received from the master device 110.

[0014] Next, EtherCAT (registered trademark), which is one of industrial Ethernet (registered trademark), will be described as an example of the network 140. In EtherCAT (registered trademark), a master device connected via a network transmits a data frame to a plurality of slave devices, and writes data on the fly into the data frame received by the plurality of slave devices. At this time, PDO communication and SDO communication are used for communication between the master device and the plurality of slave devices. PDO communication is a communication method in which communication is performed at a fixed cycle using data called a process data object (PDO). SDO communication is a communication method in which communication is performed in response to a request from a master device using data called a service data object (SDO). In PDO communication, communication of a data frame is completed at a fixed cycle (for example, 1 ms), so the arrival time of data is guaranteed. On the other hand, in SDO communication, communication is not necessarily completed within one cycle, so the arrival time of data is not guaranteed.

[0015] When EtherCAT (registered trademark) is adopted as the network 140, at least one of the nodes connected to the network 140 can function as a master device 110, and the other nodes can function as slave devices 120. The node functioning as the master device 110 manages (controls) communication timing of data frames in the network 140.

[0016] Here, the system 100 has three slave devices 121, 122, and 123 as the slave devices 120 communicatively connected to the master device 110, but the number of slave devices 120 is not limited to three. The system 100 also has three units 131, 132, and 133 as the units 130 controlled by the slave device 120. The unit 131 is controlled by the slave device 121, the unit 132 is controlled by the slave device 122, and the unit 133 is controlled by the slave device 123. In this embodiment, each unit 130 corresponds to one slave device 120, but one slave device may control multiple units.

[0017] Moreover, the unit 130 can be, for example, a servo motor for driving an object. A servo motor requires high control accuracy and therefore requires periodic control. If communication for realizing periodic control is delayed, a problem may occur in that the operation of the servo motor is delayed. In addition, a problem may occur in that the object to be driven cannot be accurately positioned at a target position, or the object to be driven may cause physical interference.

[0018] FIG. 2 is a diagram showing the configuration of the master device. In FIG. 2, the processing unit 1101 is a central processing unit (CPU) that executes an OS (Operating System) and various application programs. The processing unit 1101 is, for example, a multi-CPU having multiple CPUs, or a multi-core CPU having multiple cores, and has processors 1111, 1112, and 1113 that can process tasks in parallel. In FIG. 2, three processors 1111, 1112, and 1113 are illustrated, but the number of processors is not limited to three, and may be two or more. The processing unit 1101 may be composed of not only a central processing unit (CPU) but also a combination of processors or circuits such as a microprocessing unit (MPU), a graphics processing unit (GPU), and an application specific integrated circuit (ASIC). Here, in the following description, the processors 1111, 1112, and 1113 may be collectively referred to simply as the processor 1110.

[0019] The ROM 1102 is a memory that stores fixed data among the programs executed by the processing unit 1101 and parameters for calculation. The RAM 1103 is a memory that provides a working area for the processing unit 1101 and a temporary storage area for data. The ROM 1102 and the RAM 1103 are connected to the processing unit 1101 via a bus 1108. Reference numeral 1105 denotes an input device (input device) including a mouse, a keyboard, etc., and reference numeral 1106 denotes a display device (display device) such as a CRT or a liquid crystal display. The input device 1105 and the display device 1106 may be integrated devices such as a touch panel. The input device 1105 and the display device 1106 may be configured as devices separate from the computer. Reference numeral 1104 denotes a storage device such as a hard disk device, a CD, a DVD, a memory card, etc., and stores various programs, various data, etc. The input device 1105, the display device 1106, and the storage device 1104 are each connected to the bus 1108 via an interface not shown. A communication device 1107 for communicating via a network is also connected to the bus 1108. The communication device 1107 is used, for example, when connecting to a LAN to perform data communication using a communication protocol such as TCP / IP and communicating with other communication devices. The communication device 1107 functions as a data transmitter and receiver, and, for example, receives response data from a transmitter (not shown) in the slave device 120 and stores it in the RAM 1103 or the storage device 1104.

[0020] 3 is a diagram showing the configuration of the processing unit 1101. The processing unit 1101 has a generating unit 112, a communication unit 113, an acquiring unit 114, and a determining unit 115. The generating unit 112 generates command data for controlling each slave device 120. The communication unit 113 communicates data such as the command data with each slave device 120. The acquiring unit 114 acquires information such as the time required to execute a task executed by the generating unit 112, the communication unit 113, etc. (execution time). Here, a task is a unit of processing executed by the generating unit 112, the communication unit 113, etc., and each task is executed by one of the processors of the processing unit 1101. The determining unit 115 determines the processor that executes the task.

[0021] The master device 110 causes the generation unit 112 to execute a generation task 1120 to generate command data for controlling each slave device 120. The master device 110 also causes the communication unit 113 to execute a communication task 1130 to transmit command data to the slave device 120 via the network 140 and receive response data from the slave device 120. The generation task 1120 and the communication task 1130, which are executed periodically so that the master device 110 can perform periodic communication with the slave device 120, are considered to be periodic tasks. The master device 110 may also execute a non-periodic task 1160 to perform processing other than periodic communication. For example, the processing performed by the non-periodic task 1160 includes processing for controlling other devices by performing communication at any timing, and processing performed by receiving commands at any timing from a higher-level device (e.g., a host computer) connected to the master device 110.

[0022] The generation task 1120 is provided corresponding to the slave device 120 to be controlled. In this embodiment, for example, three generation tasks 1121, 1122, and 1123 are provided to control three slave devices 121, 122, and 123, respectively. The generation task 1121 controls the slave device 121, and generates command data for controlling the processing in the slave device 121. The generation task 1122 controls the slave device 122, and generates command data for controlling the processing in the slave device 122. The generation task 1123 controls the slave device 123, and generates command data for controlling the processing in the slave device 123. In this embodiment, the number of generation tasks 1120 and the number of slave devices 120 are the same as each other, but it is sufficient that the number of generation tasks 1120 for one slave device 120 is one or more, and the number of generation tasks 1120 and the number of slave devices 120 do not necessarily have to be the same.

[0023] Next, a task execution process according to this embodiment will be described. Fig. 4 is a flowchart showing the task execution process. First, the process in Fig. 4 will be described. In S101, the acquisition unit 114 acquires information such as the number of processors in the processing unit 1101 and the period in periodic communication from the storage device 1104, and notifies the determination unit 115 of the acquired information.

[0024] In S102, the acquisition unit 114 acquires from the storage device 1104 the execution times during which the generation task 1120 and the communication task 1130 are executed in the processing unit 1101, and notifies the determination unit 115. Here, the execution times of the tasks are acquired, for example, by measuring in advance the execution times when the tasks are executed. Alternatively, the execution times of the tasks may be acquired by calculating in advance the execution times from the number of steps of the programs constituting the tasks and the computing power of the processing unit 1101 (e.g., a numerical value that is an index of the computing power of the processing unit 1101, such as a clock frequency).

[0025] In S200, the determination unit 115 determines a processor that will execute a task based on the duration of one cycle (cycle) of periodic communication performed between the master device 110 and each slave device 120 and the execution time of each task. Specifically, it determines which of the processors 1111, 1112, and 1113 will execute each task and in what order.

[0026] Here, the process in S200 will be described in detail with reference to Fig. 5. Fig. 5 is a flowchart showing the process of determining the processor that executes the task. In S201, the determination unit 115 obtains free time for executing the generated task 1120 within the period in each processor of the processing unit 1101 from the period of the periodic communication obtained by the obtaining unit 114 and the execution time of the communication task 1130. Specifically, when the period obtained in S101 is Tc and the execution time of the communication task 1130 obtained in S102 is Tio, the free time Tb in each processor of the processing unit 1101 is calculated as Tb=Tc-Tio.

[0027] Here, the operation of the communication task 1130 will be described. The communication task 1130 performs periodic communication with the slave device 120 at the beginning of a certain period via the network 140. For example, the communication task 1130 transmits command data generated by the generation task 1120 in the previous period to the slave device 120 via the network 140, and receives response data from the slave device 120. The response data is, for example, data indicating whether or not the processing commanded by the command data has been completed. Then, the generation task 1120 generates command data to be transmitted to the slave device next using the response data received by the communication task 1130 as input data. Therefore, there is a restriction that the generation task 1120 cannot start processing unless the reception processing of the communication task 1130 in that period is completed. Therefore, the free time Tb is the time obtained by subtracting the execution time Tio of the communication task from the period Tc. In other words, the free time Tb is the maximum time during which the generation task 1120 can complete processing within a period in each processor of the processing unit 1101.

[0028] Here, the determination unit 115 prepares groups corresponding to the processors of the processing unit 1101 by the number of processors of the processing unit 1101, and assigns the generated task 1120 to each group. Then, the generated task 1120 assigned to a group is executed by the processor of the processing unit 1101 corresponding to the assigned group. Therefore, if the generated task 1120 is assigned to a group so that the execution time of the generated task 1120 falls within the free time Tb of the processor corresponding to the group, the generated task 1120 can complete processing within a period. Also, if the total execution time of the generated tasks 1120 falls within the free time Tb, it is possible to assign multiple generated tasks 1120 to one group. Hereinafter, the free time of the processor corresponding to a group may be referred to as the free time of the group. Also, if there are n processors (n is a natural number equal to or greater than 2) of the processing unit 1101 and there are also n corresponding groups, the respective free times are referred to as Tb1 to Tbn. Note that before the task is assigned to the group, each value of Tb1 to Tbn is equal to Tb.

[0029] Next, in the process from S202 to S208, the determination unit 115 repeats the process up to n times (first repeat) and assigns the generation task 1120 to the group. Here, as an example, in the process from S202 to S208, the determination unit 115 assigns the task to the Xth group (group X) (X is a natural number such that 1≦X≦n) and the free time of group X is Tbx will be described.

[0030] Next, in the processes from S203 to S207, the determination unit 115 performs the repetitive process (second repetitive process) the number of times corresponding to the number of generated tasks 1120 not assigned to a group, and determines the allocation of the generated tasks 1120 to the group X. Here, when there are m generated tasks 1120 (m is a natural number equal to or greater than 1) not assigned to a group, the determination unit 115 performs the repetitive process up to m times, and determines the allocation of the generated tasks 1120 to the group X. Furthermore, when allocating the generated tasks 1120 to the group X, the determination unit 115 performs the repetitive process for each generated task 1120 not assigned to a group. Furthermore, the determination unit 115 performs the repetitive process for the generated tasks 1120 in the order of the longest execution time corresponding to the generated tasks 1120.

[0031] Here, there are m generation tasks 1120, and Tt1 to Ttm are the execution times corresponding to the respective generation tasks 1120. In the following, the generation task 1120 to be processed is referred to as generation task Y, and the execution time of generation task Y is referred to as Tty.

[0032] Next, in S204, the determination unit 115 determines whether the generated task Y is executable in the free time Tbx of the group X. Specifically, the determination unit 115 determines whether Tbx≧Tty is true. If it is determined that the generated task Y is executable in the free time Tbx of the group X (Tbx≧Tty is true, S204 is Yes), the determination unit 115 advances the process to S205. If it is determined that the generated task Y is not executable in the free time Tbx of the group X (Tbx≧Tty is not true, S204 is No), the determination unit 115 returns the process to S203. Then, the determination unit 115 executes the next second iteration process with the task with the next longest execution time as the generated task Y to be processed.

[0033] In S205, the determination unit 115 allocates the generated task Y to the group X. Then, in S206, the determination unit 115 subtracts the execution time Tty of the allocated generated task Y from the free time Tbx of the group X to update the free time Tbx of the group X. Specifically, the free time Tbx of the group X is updated by Tbx-Tty.

[0034] In S207, if processing has not been performed for all of the generated tasks 1120 that are not assigned to a group, the determination unit 115 returns the process to S203 and performs the processes from S203 to S207 for the next generated task 1120. In addition, if processing has been performed for all of the generated tasks 1120 that are not assigned to a group, the determination unit 115 ends the processes from S203 to S207.

[0035] In S208, if the processing has not been performed for all groups, the determination unit 115 returns the processing to S202 and performs the processing from S202 to S208 for the next group. On the other hand, if the processing has been performed for all groups, the determination unit 115 ends the processing from S202 to S208.

[0036] Here, the process of allocating tasks to groups will be described with reference to Fig. 6. Fig. 6 is a diagram showing an example of the task allocation process according to this embodiment. First, the period of periodic communication and the execution time of each task will be described with reference to Fig. 6(a). In the example of Fig. 6(a), the period Tc of periodic communication, the execution time Tio of communication task 1130, and the execution times Tt1, Tt2, and Tt3 of generated tasks 1121, 1122, and 1123 are as shown in the following formulas (1) to (5). Tc=1 [msec] (1) Tio = 200 [μsec] (2) Tt1 = 400 [μsec] (3) Tt2 = 700 [μsec] (4) Tt3 = 300 [μsec] (5)

[0037] As described above, the acquisition unit 114 acquires these execution times and notifies the determination unit 115 (S102).

[0038] Next, the determination unit 115 acquires the free time Tb of the group to be assigned (S201). Since the free time Tb=Tc-Tio, Tb=800 [μsec]. Furthermore, since the number of processors in the processing unit 1101 is three, the number of groups to be assigned is also three. Before the tasks are assigned to each group, the free times Tb1, Tb2, and Tb3 of each group are Tb=Tb1=Tb2=Tb3=800 [μsec].

[0039] Next, the determination unit 115 assigns the generated task 1120 to the group (S202 to S208). First, as shown in S301, the determination unit 115 assigns tasks to group 1 in the order of longest execution time. The execution time Tt2 of the generated task 1122 is 700 [μsec], which is the longest among the three generated tasks. Here, since Tb1≧Tt2, the determination unit 115 assigns the generated task 1122 to group 1. Then, the determination unit 115 updates Tb1 by a value obtained by subtracting Tt2 from the free time Tb1 of group 1 (S206). The free time Tb1 after the update becomes Tb1−Tt2=100 [μsec].

[0040] Next, the determination unit 115 determines whether other generated tasks are executable during the free time Tb1 of group 1 (S204). Here, among the generated tasks not assigned to a group, the task with the longest execution time is the generated task 1121. The execution time of the generated task 1121 is Tt1=400 [μsec], and the free time Tb1 of group 1 is 100 [μsec]. Therefore, the determination unit 115 determines that the generated task 1121 is not executable during the free time Tb1 of group 1.

[0041] Then, the determination unit 115 also determines whether the generated task 1123, which has the next longest execution time, is executable or not (S204). Since the execution time Tt3 of the generated task 1123 is 300 [μsec], the determination unit 115 determines that the generated task 1123 is also not executable in the free time Tb1 of group 1. Since there are no more generated tasks that can be assigned to group 1, the determination unit 115 ends the process of assigning the generated task to group 1 and proceeds to the process of assigning the generated task to group 2.

[0042] Next, as shown in S302, the determination unit 115 assigns a generated task not assigned to a group to group 2. The determination unit 115 determines whether or not the generated task not assigned to a group is executable in the free time Tb2 of group 2 (S204). Here, among the generated tasks not assigned to a group, the task with the longest execution time is the generated task 1121. The execution time of the generated task 1121 is Tt1=400 [μsec], and the free time Tb1 of group 1 is 800 [μsec]. Therefore, since Tb2≧Tt1, the determination unit 115 assigns the generated task 1121 to group 2. Then, the determination unit 115 updates Tb2 with a value obtained by subtracting Tt1 from the free time Tb2 of group 2 (S206). The free time Tb2 after the update becomes Tb2-Tt1=400 [μsec].

[0043] Next, as shown in S303, the determination unit 115 further assigns a generated task not assigned to a group to group 2. The determination unit 115 determines whether or not the generated task not assigned to a group can be executed in the free time Tb2 of group 2 (S204). Here, among the generated tasks not assigned to a group, the task with the longest execution time is the generated task 1123. The execution time of the generated task 1123 is Tt3=300 [μsec], and the free time Tb2 of group 2 is 400 [μsec]. Therefore, since Tb2≧Tt3, the determination unit 115 assigns the generated task 1123 to group 2. Then, the determination unit 115 updates Tb2 with a value obtained by subtracting Tt3 from the free time Tb2 of group 2 (S206). The free time Tb2 after the update is Tb2-Tt3=100 [μsec]. In the example of FIG. 6(b), the generated task is not assigned to group 3. With the processing up to this point, the allocation of all the generated tasks to groups has been completed, so the determination unit 115 ends the processing from S202 to S208.

[0044] Next, returning to Fig. 4, the process from S103 will be described. In S103, the determination unit 115 judges whether or not a predetermined condition is satisfied. If the predetermined condition is satisfied, the determination unit 115 advances the process to S104. On the other hand, if the predetermined condition is not satisfied, the determination unit 115 advances the process to S105.

[0045] Here, the predetermined condition may be that the free time of the group corresponding to the processor 1110 (free time of the processing unit 1101) is equal to or longer than a predetermined time. Here, the free time of the processing unit 1101 may be the total free time of each of the multiple processors (in the example of FIG. 2, processors 1111, 1112, and 1113). Furthermore, the predetermined time that is the criterion for determining the predetermined condition may be set to, for example, the time of one cycle of periodic processing. Furthermore, for example, the predetermined time may be a time arbitrarily set by the user.

[0046] The predetermined condition may be that the free time of at least one of the processors is equal to or longer than a predetermined time. The predetermined time may be the time for one cycle of the periodic process, as described above, or may be a time arbitrarily set by the user.

[0047] The predetermined condition may be that the number of groups to which a generated task 1120 is not assigned is equal to or greater than a predetermined number when all generated tasks 1120 are assigned to groups in S200. For example, the condition may be satisfied if the number of groups to which a generated task 1120 is not assigned is 1 or more, and the condition is satisfied in the example of FIG. 6(b).

[0048] The predetermined condition may be that all of the generated tasks 1120 have been assigned to groups in S200. In other words, the condition may not be satisfied if there is even one generated task 1120 that has not been assigned to a group.

[0049] In addition, the above-mentioned multiple conditions can be combined to form a predetermined condition. In this case, the predetermined condition may be satisfied when at least one of the multiple conditions is satisfied, or the predetermined condition may be satisfied when all of the multiple conditions are satisfied.

[0050] In S104, the determination unit 115 causes the processing unit 1101 corresponding to each group to execute the generated tasks 1120 assigned to each group. Here, the process of causing the processing unit 1101 to execute the generated tasks 1120 assigned to each group will be described with reference to FIG. 7. FIG. 7 is a diagram showing an example of a task execution schedule according to this embodiment. The vertical axis represents time, and the periods of the first to third periodic communications are illustrated, showing a schedule for executing the process for each task. FIG. 7 illustrates a case where a communication task 1130, generated tasks 1121, 1122, and 1123, and a non-periodic task 1160 exist as tasks executed by the processing unit 1101.

[0051] The non-periodic task 1160 is executed by the processor 1113 (1) before the first communication cycle illustrated in Fig. 7. Also, the communication task 1130 is executed by the processor 1111 at the beginning of the first communication cycle (2).

[0052] Here, the processing of the communication task 1130 and the generation task 1120 will be described. The generation task 1120 generates command data for controlling the slave device 120. The generation task 1120 then writes the generated command data into a data frame. Specifically, the generation tasks 1121, 1122, and 1123 generate command data for the slave devices 121, 122, and 123, respectively, and write the command data into areas in the data frame allocated to the slave devices 121, 122, and 123.

[0053] The communication task 1130 transmits the data frame in which the command data is written to the slave device 121. The slave device 121, which receives the transmitted data frame, reads out the command data assigned to itself from the command data written in the data frame, and writes response data to the command data in the data frame. The slave device 121 then transmits the data frame in which the response data is written to the next slave device 122. The slave device 122, which receives the data frame from the slave device 121, then reads out the command data assigned to itself from the command data written in the data frame, and writes response data to the command data in the data frame. The slave device 122 then transmits the data frame in which the response data is written to the next slave device 123. The slave device 123, which receives the data frame from the slave device 122, then reads out the command data assigned to itself from the command data written in the data frame, and writes response data to the command data in the data frame. Slave device 123 then transmits the data frame in which the response data has been written to master device 110 via slave devices 122 and 121 .

[0054] The data frame transmitted to the master device 110 is read by the communication task 1130 and stored in a storage device (not shown) of the master device 110. Here, the storage device functions as a buffer for storing data such as the data frame, and may be, for example, a RAM, which is a memory that provides a working area for the CPU and a temporary storage area for data, or a storage device such as a hard disk drive, CD, DVD, or memory card. Then, by storing the data frame in the storage device, the generation task 1120 becomes able to refer to the response data transmitted from the slave device 120. Also, a series of processes from when the communication task 1130 transmits the data frame to the slave device 120 until the data frame returns to the master device 110 is performed during the execution of one communication task.

[0055] Returning now to the description of Fig. 7, the communication task 1130 transmits, in the first communication cycle, a data frame including command data generated by the generation task 1120 in the communication cycle preceding the first communication cycle, to the slave device 120. After that, the communication task 1130 receives a data frame of response data transmitted from the slave device 120 in the first communication cycle. Then, the communication task 1130 makes the received response data available for reference by the generation task 1120, and notifies the generation task 1120. In this way, the communication task 1130 is executed at the beginning of each communication cycle, transmits command data generated in the previous communication cycle to the slave device 120, receives response data from the slave device 120, and notifies the generation task.

[0056] Next, after receiving a notification from the communication task 1130, each of the generated tasks 1120 is executed. Specifically, the generated task 1121 is executed in the processor 1112 (3), the generated task 1123 is executed in the processor 1113 (4), and the generated task 1123 is executed in the processor 1112 (5). Here, the generated task 1121 is assigned to the same group (group 2), and is therefore executed in the same processor 1112. Also, in the first communication cycle, the generated task 1123 is executed after the generated task 1121 is terminated, but the order may be reversed. That is, the execution order of the generated task 1121 and the generated task 1123 is not limited to the example of FIG. 7. Also, it is sufficient that the generated task 1121 and the generated task 1123 are executed in the same processor, and the execution is not limited to the processor 1112. That is, the processor that executes the communication task 1130 and the generated task 1120 is not limited to the example of FIG. 7.

[0057] In this way, the communication task 1130 is executed by the processor 1111, and the generation task 1120 is executed by the processors 1111 and 1112. Therefore, the execution of the communication task 1130 and the generation task 1120 does not affect the execution of the aperiodic task 1160 executed by the processor 1113.

[0058] After the second communication cycle, the communication task 1130 and the generated task 1120 are similarly executed by the processors 1111 and 1112, and therefore the execution of the communication task 1130 and the generated task 1120 does not affect the execution of the non-periodic task 1160. In other words, the execution of the communication task 1130 and the generated task 1120 does not delay the execution of the non-periodic task 1160. In this way, even when the master device 110 performs a non-periodic process other than periodic communication, it is possible to perform the periodic communication process without delaying the non-periodic process.

[0059] Returning to the description of FIG. 4, in S105, the determination unit 115 executes an alternative process. As an alternative process, for example, the determination unit 115 can control to display an error on the display device 1106. Also, as an alternative process, for example, the determination unit 115 can interrupt the process of the periodic communication. Also, as an alternative process, for example, the determination unit 115 can extend the period and continue the process. Also, in S103, the determination unit 115 may determine a plurality of conditions, and in S105, different alternative processes may be executed according to the respective determination results of the plurality of conditions. For example, if all the generated tasks 1120 are not assigned to a group in S200, the process of the periodic communication may be interrupted. Also, if all the generated tasks 1120 are assigned to a group, but the free time of the processing unit 1101 is equal to or less than a predetermined time, the process of the periodic communication may not be interrupted, and an error may be displayed on the display device 1106.

[0060] Here, an example of the process of allocating tasks to groups when it is determined in S103 that the predetermined condition is not satisfied will be described with reference to Fig. 8. Fig. 8 is a diagram showing another example of the task allocation process according to this embodiment. First, the period of periodic communication and the execution time of each task will be described with reference to Fig. 8(a). In the example of Fig. 8(a), the period of periodic communication Tc, the execution time Tio of communication task 1130, and the execution times Tt1, Tt2, and Tt3 of generated tasks 1121, 1122, and 1123 are as shown in the following formulas (6) to (10). Tc = 1 [msec] ··· (6) Tio = 200 [μsec] ··· (7) Tt1 = 500 [μsec] ··· (8) Tt2 = 700 [μsec] ··· (9) Tt3 = 400 [μsec] ··· (10)

[0061] Here, descriptions that overlap with the description regarding FIG. 6 are omitted.

[0062] In S401, the determination unit 115 assigns task 1122 to group 1. Then, the determination unit 115 updates the free time Tb1 of group 1 to 100 [μsec]. Also, since the free time Tb1 of group 1, the generation tasks 1121 and 1123 are determined not to be executable.

[0063] In S402, the determination unit 115 assigns the generation task 1121 to group 2. Then, the determination unit 115 updates the free time Tb2 of group 2 to 300 [μsec]. Also, since Tb2 ≤ Tt3, the determination unit 115 determines that the generation task 1123 is not executable with the free time Tb2 of group 2.

[0064] In S403, the determination unit 115 assigns the generation task 1123 to group 3. Then, the determination unit 115 updates the free time Tb3 of group 3 to 400 [μsec].

[0065] With the processing up to here, for all generation tasks, the assignment to groups is completed, so the determination unit 115 ends the processing from S202 to S208.

[0066] Here, the total free time of each group is Tb1 + Tb2 + Tb3 = 800 [μsec]. If the predetermined time is set as the period Tc of periodic communication, then Tb1 + Tb2 + Tb3 < Tc. If the predetermined condition in S103 is that the free time of the processing unit 1101 is equal to or greater than the period of periodic communication, then the example in FIG. 8 does not satisfy the predetermined condition in S103.

[0067] In addition, since the generation task 1120 has been assigned to all groups, the number of groups to which the generation task 1120 is not assigned is 0. If the predetermined condition in S103 is that the number of groups to which the generation task 1120 is not assigned is 1 or more, the example in Fig. 8 does not satisfy the predetermined condition in S103.

[0068] Since periodic processing needs to be completed within a period, the communication task 1130 and the creation task 1120 are executed with priority over the non-periodic task 1160. Therefore, if a predetermined condition is not satisfied in S103, the processing of the non-periodic task 1160 may be interrupted and delayed until the processor of the processing unit 1101 has free time.

[0069] As described above, if the predetermined condition is not satisfied in S103, alternative processing such as displaying an error, stopping the periodic communication processing, or extending the period is executed in S105.

[0070] As described above, according to the control device of this embodiment, the processing of non-periodic tasks is prevented from being interrupted by the processing of communication tasks and generation tasks, so that delays in non-periodic processing can be suppressed while periodically communicating with other devices.

[0071] <Second embodiment> Next, an information processing unit according to the second embodiment will be described. Note that matters not mentioned here may follow the first embodiment. In the second embodiment, an example will be described in which the processing unit 1101 of the master device 110 has four processors, and the system 100 has six slave devices 120. Also, in the processing unit 1101, four generation tasks 1120, the same number as the number of the slave devices 120, and one communication task 1130 are executed.

[0072] The process of allocating tasks to groups will be described with reference to Fig. 9. Fig. 9 is a diagram showing an example of the task allocation process according to this embodiment. First, the period of periodic communication and the execution time of each task will be described with reference to Fig. 9(a). In the example of Fig. 9(a), the period of periodic communication Tc, the execution time Tio of the communication task 1130, and the execution times Tt1 to Tt6 of the generated tasks 1121 to 1126 are as shown in the following expressions (11) to (18). Tc=1 [msec] (11) Tio = 200 [μsec] (12) Tt1 = 500 [μsec] (13) Tt2 = 200 [μsec] (14) Tt3 = 230 [μsec] (15) Tt4 = 100 [μsec] (16) Tt5 = 650 [μsec] (17) Tt6 = 550 [μsec] (18)

[0073] The process of allocating the generated tasks 1120 to groups is the same as in the first embodiment, and therefore a detailed description will be omitted. As shown in Fig. 9(b), the generated tasks 1120 are allocated to groups 1 to 3. The generated tasks 1124 and 1125 are allocated to group 1, the generated tasks 1123 and 1126 are allocated to group 2, and the generated tasks 1121 and 1122 are allocated to group 3. Furthermore, none of the generated tasks 1120 are allocated to group 4. Furthermore, there is no generated task 1120 that is not allocated to a group.

[0074] Here, when the generated task 1120 is assigned to a group as shown in FIG. 9(b), it is determined in S103 that the predetermined condition is satisfied. Here, the process of making the processing unit 1101 execute the generated task 1120 assigned to a group will be described with reference to FIG. 10. FIG. 10 is a diagram showing an example of a task execution schedule according to this embodiment. The task execution schedule is the same as that in the first embodiment, so a detailed description will be omitted. As shown in FIG. 10, the execution of the communication task 1130 and the generated task 1120 does not affect the execution of the non-periodic task 1160. In other words, it is possible to suppress delay in the execution of the non-periodic task 1160 while executing the communication task 1130 and the generated task 1120.

[0075] As described above, according to the control device of this embodiment, the processing of communication tasks and generation tasks is prevented from interrupting the processing of non-periodic tasks, so that delays in non-periodic processing can be suppressed while performing periodic communication with other devices.

[0076] <Embodiments of the Substrate Processing Apparatus> An embodiment of a substrate processing apparatus to which the system 100 is applied will be described. In this embodiment, an exposure apparatus that exposes a substrate to light to form a pattern on the substrate will be described as an example of a substrate processing apparatus to which the system 100 is applied, but the present invention is not limited thereto. For example, the system 100 can be applied to substrate processing apparatuses such as an imprinting apparatus that uses a mold to form a pattern of an imprint material on a substrate, and a drawing apparatus that irradiates a substrate with a charged particle beam to form a pattern on the substrate. The system 100 can also be applied to substrate processing apparatuses such as a coating apparatus that coats a photosensitive medium on a substrate surface and a developing apparatus that develops a substrate to which a pattern has been transferred. The system 100 can also be applied to substrate processing apparatuses such as a film forming apparatus (CVD apparatus, etc.), a processing apparatus (laser processing apparatus, etc.), and an inspection apparatus (overlay inspection apparatus, etc.).

[0077] 11 is a diagram showing the configuration of an exposure apparatus 10. The exposure apparatus 10 is an exposure apparatus that projects a pattern of a mask M onto a substrate W via a projection optical system 14 to expose the substrate W. The exposure apparatus 10 has a light source 11, an illumination optical system 12, a mask stage 13, a projection optical system 14, a substrate stage 15, and a main controller 16. The exposure apparatus 10 also has a first driver 21 that drives the mask stage 13, a second driver 22 that drives a lens 14a of the projection optical system 14, and a third driver 51 that drives the substrate stage 15. The first driver 21, the second driver 22, and the third driver 51 are mechanisms that perform at least a part of the process of forming a pattern on the substrate W, and are controlled by a mask stage controller 31, a projection controller 32, and a substrate stage controller 41, respectively. In addition, the main control unit 16 has, for example, a CPU (processing unit) and a storage device, and controls the mask stage control unit 31, the projection control unit 32, and the substrate stage control unit 41, thereby controlling the entire exposure apparatus 10 (each part of the exposure apparatus 10).

[0078] The light source 11 emits exposure light. The illumination optical system 12 illuminates the mask M using the light emitted from the light source 11. The mask stage 13 holds the mask M and can be configured to be movable, for example, in the X and Y directions, by a first drive unit 21. The projection optical system 14 projects the pattern of the mask M illuminated by the illumination optical system 12 onto a substrate. The projection optical system 14 includes a lens 14a that can be moved, for example, in the X direction, by a second drive unit 22. The substrate stage 15 holds the substrate W and can be configured to be movable, for example, in the X and Y directions, by a third drive unit 51.

[0079] 11, when system 100 is applied, main controller 16 can be configured as master device 110. Furthermore, mask stage controller 31 and projection controller 32 can each be configured as slave device 120. First driver 21 and second driver 22 can each be configured as unit 130. Communication between main controller 16, mask stage controller 31, and projection controller 32 is performed at regular intervals via network 140.

[0080] In exposure apparatus 10, substrate stage controller 41 and third driver 51 can be configured as a control system separate from system 100, which also serves as the processing unit of master apparatus 110 in system 100. Main controller 16 and substrate stage controller 41 can be connected by a network that is not necessarily the same as network 140, for example, a field bus.

[0081] Here, as an example of application of the system 100 to the exposure apparatus 10, a case where the master apparatus 110 communicates with the mask stage controller 31, the projection controller 32, and the substrate stage controller 41 will be described. In the processing unit 1101 of the master apparatus 110, for example, a communication task 1130, generation tasks 1121 and 1122, and a non-periodic task 1160 can be executed. Here, the generation task 1121 is a task for generating command data to be transmitted to the mask stage controller 31 to control the mask stage 13. Moreover, the generation task 1122 is a task for generating command data to be transmitted to the projection controller 32 to control the lens 14a of the projection optical system 14. Moreover, the non-periodic task 1160 is a task for generating command data to be transmitted to the substrate stage controller 41 to control the substrate stage 15, and communicating with the substrate stage controller 41.

[0082] Furthermore, when operating the exposure apparatus to form a fine pattern on the substrate, the master apparatus 110 (main control unit 16) needs to control the first driving unit 21, the second driving unit 22, and the third driving unit 51 while synchronizing them with high precision. To achieve this, for the mask stage control unit 31 and the projection control unit 32, command data for control is generated by generation tasks 1121 and 1122 executed at regular intervals, and the data is transmitted via the network 140 by a communication task 1130 to perform control.

[0083] On the other hand, for the substrate stage control unit 41, the main control unit 16 executes a non-periodic task 1160 to generate command data for controlling the third drive unit 51, and transmits the data to the substrate stage control unit 41 via the field bus to perform control. Typically, high-load calculations are required for the control of the substrate stage 15, which requires particularly high control accuracy, and the calculations must be completed quickly in order to achieve high productivity as an exposure apparatus. In this way, the exposure apparatus is made up of multiple control systems, and there may be cases where the processing unit of the main control unit 16 is shared by multiple control systems.

[0084] In such a situation, if each task is executed by sharing the processing unit 1101 of the main control unit 16, if the generation task 1120 and the communication task 1130 are executed periodically, the time until the execution of the non-periodic task 1160 is completed will be delayed. This will not only delay the control of the substrate stage 15 and reduce the productivity of the apparatus, but also may reduce the control accuracy due to the timing discrepancy.

[0085] Therefore, the determination unit 115 assigns each task to a group so as to prevent the processing of the communication task and the generation task from being interrupted by the processing of the non-periodic task. By executing the task in the processor 1110 of the processing unit 1101 according to the result, it is possible to minimize the number of processors 1110 of the processing unit 1101 used for periodic communication, and therefore it is possible to suppress delays in processing for controlling the substrate stage 15.

[0086] As described above, the control device according to this embodiment can suppress delays in non-periodic processing for controlling the substrate stage while performing periodic communication between the mask stage controller and the projection controller.

[0087] <Embodiments of the method for manufacturing an article> The method for manufacturing an article according to an embodiment of the present invention is suitable for manufacturing an article such as a microdevice such as a semiconductor device or an element having a fine structure. The method for manufacturing an article according to this embodiment includes a step of processing a substrate using the above-mentioned substrate processing apparatus, and a step of manufacturing an article from the substrate processed in this step. Furthermore, this manufacturing method may include well-known steps (exposure, oxidation, film formation, deposition, doping, planarization, etching, resist stripping, dicing, bonding, packaging, etc.). The method for manufacturing an article according to this embodiment is advantageous in at least one of the performance, quality, productivity, and production cost of the article compared to conventional methods.

[0088] <Other embodiments> The present invention can also be realized by a process in which a program for implementing one or more of the functions of the above-described embodiments is supplied to a system or device via a network or a storage medium, and one or more processors in a computer of the system or device read and execute the program. The present invention can also be realized by a circuit (e.g., ASIC) that implements one or more of the functions.

[0089] Although the preferred embodiments of the present invention have been described above, it goes without saying that the present invention is not limited to these embodiments, and various modifications and changes are possible within the scope of the gist of the present invention.

[0090] Furthermore, each embodiment can be implemented not only alone, but also in any combination of all the embodiments.

Claims

1. A control device having a plurality of processors for executing tasks and controlling slave devices connected via a network, an acquisition unit that acquires an execution time required for execution of a periodic task that executes periodic processing related to periodic communication of a data frame including command data for controlling the slave device or response data from the slave device; a determination unit that determines a processor that will execute the periodic task from among the plurality of processors based on a period of the periodic communication and the execution time, the periodic tasks include a communication task for communicating the data frames and a generation task for generating command data for controlling the slave device; The acquisition unit acquires a first execution time required for execution of the communication task, the determination unit determines a processor that will execute the communication task, and then determines a processor that will execute the creation task based on the period and the first execution time; A control device, characterized in that the periodic task is executed in the determined processor.

2. The determination unit determines whether a predetermined condition is satisfied, If the predetermined condition is satisfied, the periodic task is executed on the determined processor; The predetermined condition is at least one of: a total of free times of the plurality of processors when the periodic task is executed by the determined processor is equal to or greater than a predetermined time; a number of processors among the plurality of processors on which the periodic task is not executed is equal to or greater than a predetermined number; and there is no periodic task on which a processor to be executed has not been determined. The control device according to claim 1 .

3. If the predetermined condition is not satisfied, the determination unit executes a predetermined process, The predetermined process is at least one of a process of controlling a display device to display an error, a process of extending the period, and a process of interrupting communication of the data frame.

3. The control device according to claim 2.

4. the slave device includes a plurality of slave devices; the generated task includes a plurality of generated tasks corresponding to the plurality of slave devices, The acquisition unit acquires a second execution time required for executing each of the plurality of generated tasks; The determination unit determines processors that will execute the plurality of generated tasks in descending order of the second execution times acquired by the acquisition unit.

4. The control device according to claim 1, wherein the control device is a control unit.

5. When a first generated task for which an execution processor has already been determined and a second generated task for which an execution processor has not yet been determined exist among the plurality of generated tasks, the determination unit determines a processor for executing the second generated task based on the period, the first execution time, and the second execution time for which the second generated task is executed.

5. The control device according to claim 4.

6. 6. The control device according to claim 1, further comprising a communication unit that communicates the data frame over the network at each of the cycles by executing the periodic task.

7. A system including a slave device connected via a network, and a master device having a plurality of processors for executing tasks and controlling the slave devices, The master device an acquisition unit that acquires an execution time required for execution of a periodic task that executes periodic processing related to periodic communication of a data frame including command data for controlling the slave device or response data from the slave device; a determination unit that determines a processor that will execute the periodic task from among the plurality of processors based on a period of the periodic communication and the execution time, the periodic tasks include a communication task for communicating the data frame and a generation task for generating command data for controlling the slave device; The acquisition unit acquires a first execution time required for execution of the communication task, the determination unit determines a processor that will execute the communication task, and then determines a processor that will execute the creation task based on the period and the first execution time; The system further comprises a processor that is configured to execute the periodic task.

8. A substrate processing apparatus for processing semiconductor substrates, comprising: A system according to claim 7, The slave device in the system controls a unit that performs at least a part of the processing of the semiconductor substrate. The substrate processing apparatus according to claim 1,

9. Processing the semiconductor substrate using the substrate processing apparatus according to claim 8; and producing an article from the processed semiconductor substrate. A method for producing an article comprising the steps of:

10. A control method for controlling slave devices connected via a network by a master device having a plurality of processors for executing tasks, comprising the steps of: acquiring an execution time required for executing a periodic task that executes periodic processing related to periodic communication of a data frame including command data for controlling the slave device or response data from the slave device; determining a processor that will execute the periodic task from among the plurality of processors based on the period of the periodic communication and the execution time; the periodic tasks include a communication task for communicating the data frames and a generation task for generating command data for controlling the slave device; The acquiring step acquires a first execution time required for executing the communication task, the determining step determines a processor that will execute the communication task, and then determines a processor that will execute the creation task based on the period and the first execution time; The control method comprises the step of executing the periodic task in the determined processor.

11. A program for causing a computer serving as a master device to execute each step of the control method according to claim 10.

Citation Information

Patent Citations

  • Substrate treatment apparatus, and production method of semiconductor device

    JP2017002353A

  • High performance control server system

    JP2019036313A

  • Control device

    JP2019061466A

  • Control device, system program, and control method

    JP2019153144A

  • Control system and control device

    JP2020086481A