WO2018123707A1 - 制御装置 - Google Patents
制御装置 Download PDFInfo
- Publication number
- WO2018123707A1 WO2018123707A1 PCT/JP2017/045437 JP2017045437W WO2018123707A1 WO 2018123707 A1 WO2018123707 A1 WO 2018123707A1 JP 2017045437 W JP2017045437 W JP 2017045437W WO 2018123707 A1 WO2018123707 A1 WO 2018123707A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- task
- synchronization
- synchronization mechanism
- processes
- control device
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Definitions
- the present invention relates to a control device.
- Multi-processors are used in electronic control devices such as in-vehicle control devices.
- a multi-core configuration in which one processor has a plurality of processor cores (hereinafter “cores”) is adopted. Synchronization may be required between processes (processes, tasks, threads, etc.) that operate in parallel under the control of an OS (Operating System) and processes that operate in parallel between processor cores.
- OS Operating System
- the processing overhead required for synchronization is preferably small.
- SMP Symmetric Multiprocessing
- AMP Asymmetric Multiprocessing
- SMP one OS handles a plurality of processor cores, and processing to be shifted to an execution state is executed by an empty core. That is, the core that executes the process is dynamically selected.
- AMP the core on which processing is executed is determined in advance and is statically selected.
- the SMP OS has the characteristics that the processing load can be leveled between the cores, and the AMP OS has a real-time property easily.
- the operating core may be dynamically changed. For example, in a control mode in which the number of processes to be executed is small in order to reduce power consumption, some cores are paused and operations are continued with only the remaining cores. In this case, relocation of processing to the core occurs in the AMP OS.
- a synchronization mechanism is selected according to the state and attributes of a thread. Specifically, threads that communicate closely with each other and operate in close cooperation belong to the “tightly coupled thread group”, and threads that exchange data using buffers belong to the “loosely coupled thread group”.
- the thread of the coupled thread group uses a high-speed synchronization mechanism by hardware or the like, and the thread of the loosely coupled thread group uses a low-speed synchronization mechanism by an OS service or the like.
- Patent Document 2 discloses a method of selecting a barrier synchronization method according to the number of thread operations and the number of cores in which the threads are operating.
- the number of threads ⁇ the number of cores
- busy wait type barrier synchronization is selected
- the number of threads> core number suspend / resume type barrier synchronization is selected.
- the advantage of the busy wait method is that the waiting time is small, but the disadvantage is that a processor load is generated and the operation of other threads operating in parallel may be hindered.
- the number of threads is equal to or less than the number of cores, the number of threads operating for each core is 1 or less, and even if busy wait is performed, the operation of other threads is not hindered. Can be used without receiving.
- Patent Document 1 it is assumed that the OS is SMP and the processor core on which the thread is executed is dynamically selected. For this reason, the arrangement
- an appropriate synchronization method can be selected according to the number of thread operations and the number of cores in which the threads are operating, but the target synchronization mechanism is limited to barrier synchronization. If the scope of the synchronization mechanism selected according to the operation status of the thread (or process or task) or the core is expanded to other than the barrier synchronization, improvement in processing performance and power consumption can be expected. In this case, however, the method for selecting the synchronization mechanism must be clarified.
- An object of the present invention is to provide a control device capable of switching between performing synchronization using one of a plurality of types of synchronization mechanisms or not using a synchronization mechanism in accordance with the arrangement status of a plurality of processes. .
- the present invention provides a plurality of processors, a detection unit that detects an arrangement state of a plurality of processes in the plurality of processors, and a plurality of types of synchronization that synchronizes the plurality of processes.
- a memory storing the association of the mechanism, the arrangement status, and an identifier indicating the first process using the synchronization mechanism or the second process not using the synchronization mechanism; and the arrangement detected by the detection unit
- An execution unit that executes the first process or the second process indicated by the identifier corresponding to the situation.
- FIG. 1 shows a hardware configuration example of a control system to which the present invention is applied.
- the controller 101 is connected to the sensor 102 and the actuator 103, receives information obtained from the sensor 102 as an input, and outputs a control signal to the actuator 103.
- An example of the sensor 102 is a Hall element, and an example of the actuator 103 is a brushless DC motor.
- the sensor 102 is connected to an input circuit 111
- the actuator 103 is connected to an output circuit 112
- the input circuit 111 and the output circuit 112 are further connected to an input / output circuit 130 (IO) of the microcomputer 110.
- the microcomputer 110 includes four processor cores 121 to 124 (a plurality of processors), a RAM 140 (Random Access Memory), a ROM 150 (Read Only Memory), a nonvolatile memory 160 (NVRAM), and includes an input / output circuit 130. These circuits are connected by a bus.
- the controller 101 also has a power supply circuit 113.
- An AMP OS is arranged in each of the cores 121 to 124 (PC1 to PC4).
- tasks of the OS five tasks A to E are prepared as an initial state.
- Tasks A to C are directly related to control, and tasks D and E are processes such as diagnosis that are not directly related to control. These tasks are periodically executed by the OS.
- Tasks A to E are assigned 0x10 to 0x14 in hexadecimal notation as task IDs.
- Fig. 2 shows the configuration of tasks A to C.
- Task A executes subtasks a1 (consisting of functions) and a2, task B executes subtask b, and task C executes subtask c.
- the flow of control processing is as follows.
- Subtasks a1, b, and c acquire signals from the sensor 102 and use them as inputs, generate intermediate data d1, d2, and d3 for the inputs.
- the control signal is calculated with d3 as an input, and the signal is output to the actuator 103.
- FIG. 3 shows the functional configuration of the control system to which the present invention is applied, and the flow of signals and data between the functions. Each function is realized by a software program. These software programs are stored in the ROM 150 by the microcomputer 110, operate on the cores 121 to 124 using the RAM 140 as a temporary storage, and record / read data to / from the nonvolatile memory 160.
- the operation unit control unit 31 defines a process to be executed as an OS task, selects a core that executes each task, and arranges the task.
- the operation status management unit 32 acquires task allocation information (task allocation information P_task) from the operation unit control unit 31 to the core. Further, the operation status management unit 32 acquires the operation information O_core of each core and the operation information O_task of each task from the microcomputer 110 and the OS.
- the operation status management unit 32 detects the arrangement status of a plurality of tasks (processes) on the cores 121 to 124 (a plurality of processors).
- the synchronization mechanism utilization unit 33 (33-1 to 33-n) is arranged at a point where synchronization is required in each task, and a common ID (hereinafter referred to as “synchronization ID”) is used for a plurality of synchronization mechanism utilization units 33 to be synchronized. ]).
- the synchronization mechanism utilization unit 33 calls the synchronization mechanism selection unit 34 using the synchronization ID (ID_sync) and task ID (ID_task) as parameter values.
- the synchronization mechanism selection unit 34 arranges information on task allocation from the operation status management unit 32 to the core (task allocation information P_task: which core is allocated or not allocated), and operation information O_task of each task (For example, as an operation mode indicated by the OS, any one of operation, standby, waiting for execution, and executable) is acquired.
- the operation information O_core of each core (for example, either in operation or in suspension) may be acquired separately from the task operation information O_task.
- these pieces of information acquired from the operation status management unit 32 are collectively referred to as “task arrangement operation information”.
- the synchronization mechanism selection unit 34 selects an appropriate synchronization mechanism corresponding to the synchronization ID (ID_sync) based on the task placement operation information, and the synchronization mechanism 35 (35-1 to 35). Select from -m) and execute. For this selection, a “synchronization mechanism selection rule” and a “processing routine selection rule” described later are used.
- the plurality of types of synchronization mechanisms 35 (35-1 to 35-m) synchronize between a plurality of tasks (processes).
- the execution unit 40 executes the first process or the second process indicated by the identifier corresponding to the arrangement status of a plurality of tasks (processes) acquired (detected) by the operation status management unit 32 (detection unit).
- the identifier indicates a first process using the synchronization mechanism 35 or a second process not using the synchronization mechanism 35. Details of the identifier will be described later with reference to FIG. 5A.
- the execution unit 40 is realized when at least one of the cores 121 to 124 executes a predetermined program.
- the execution unit 40 includes a synchronization mechanism using unit 33, a synchronization mechanism selection unit 34, a data transfer unit 36, and a data access control unit 37.
- the constituent elements may be deleted or changed according to the “selection rule”.
- Tasks A to C in FIG. 2 are provided with synchronization mechanism utilization units 33-1 to 33-3, 33-1 is the last of subtask a1, 33-2 is the last of b, and 33-3 is c. Is placed at the end. Also, 0x01 is assigned to the synchronization mechanism utilization units 31-1 to 31-3 in hexadecimal notation as a common synchronization ID.
- the data sending / receiving unit 36 (36-1 to 36-k) is arranged in a task for synchronization.
- the data transfer unit 36 reads / writes data from / to the data access control unit 37 by designating the data ID.
- the data access control unit 37 reads / writes data from / to a data buffer provided on the RAM 140. At that time, the data access control unit 37 controls the read / write position based on the task placement operation information from the operation status management unit 32.
- the data transfer unit 36 reads and writes data via the data access control unit 37, so that data is transferred between tasks to be synchronized.
- FIG. 4 is a process flow executed by the synchronization mechanism selection unit 34 in response to the call of the synchronization mechanism utilization unit 33.
- task placement operation information is acquired in step 41.
- step 42 the type of the synchronization mechanism 35 to be used is selected from the task placement operation information based on the synchronization mechanism selection rule. Details will be described later with reference to FIG. 5A.
- a synchronization object corresponding to the type of the synchronization mechanism 35 selected in step 42 is selected from the synchronization ID of the synchronization mechanism using unit 33.
- a processing routine that uses the synchronization object is also selected from the type of the selected synchronization mechanism 35 based on the processing routine selection rule.
- the method of using the synchronization object differs for each task ID. In that case, a processing routine corresponding to the synchronization ID and task ID is also selected.
- the synchronization object 35 is a combination of the synchronization object and the processing routine. Details will be described later with reference to FIG. 5B.
- step 44 synchronization processing is executed using the synchronization object of the synchronization mechanism 35 selected in step 43 and the processing routine. The process ends here.
- the synchronization mechanism selection rule 50 in FIG. 5A shows an example of the synchronization mechanism selection rule in a table format. Each row of the synchronization mechanism selection rule 50 corresponds to one rule.
- the column items include “control mode”, “core 1”, “core 2”, and “synchronization mechanism”.
- “Control mode” is a control mode of the system.
- the control mode is related to the task placement operation information, that is, the placement of the task in the core and the presence / absence of the task operation are statically determined for the control mode.
- the operation status management unit 32 detects a control mode indicating the power consumption (normally, low power consumption 1, low power consumption 2) of the controller 101 (control device).
- the synchronization mechanism selection rule 50 stores the control mode and the arrangement state in association with each other.
- the operation unit control unit 31 arranges a plurality of tasks (processes) in the cores 121 to 124 (a plurality of processors) based on the arrangement state corresponding to the control mode detected by the operation state management unit 32. Thereby, a plurality of tasks are statically arranged in the cores 121 to 124 according to the control mode.
- the synchronization mechanism selection rule 50 is stored in a memory such as the ROM 150 and the nonvolatile memory 160, for example.
- the operation status management unit 32 detection unit may inquire the current control mode from the host system, or may read the current control mode stored in a predetermined memory by the host system or the like.
- Core 1 and “Core 2” are tasks running in each core, and “Synchronization mechanism” is a value indicating the type of synchronization mechanism to be selected.
- the values of items such as the control mode and the synchronization mechanism include a name such as “normal” in FIG. 5A, but an actual program includes an ID.
- the synchronization mechanism selection rule 50 includes the arrangement status of a plurality of tasks (processes) in the cores 121 to 124 (a plurality of processors) and the first process using the synchronization mechanism 35 or the first process not using the synchronization mechanism 35.
- An identifier indicating two processes is stored in association with each other.
- the synchronization mechanism selection unit 34 selects a synchronization mechanism from the task placement operation information.
- the current control mode may be acquired from the operation status management unit 32 and a synchronization mechanism that matches the control mode may be selected. The following description is based on the assumption that the task placement operation information is selected.
- the control mode is “normal” in the first line, “task A, B” in the “core 1” column, and “task C” in the “core 2” column.
- “Core 1” is the processor core 121
- “Core 2” is the core 122. That is, the task A and the task B are operating in the core 121 and the task C is operating in the core 122.
- barrier synchronization is selected as the synchronization mechanism.
- the second line shows a state in which the control mode is “low power consumption 1”, the task A operates in the core 1 and the task C operates in the core 2, and the spin lock is selected as the synchronization mechanism. It is set.
- the third line shows a state in which the control mode is “low power consumption 2” and the task A and the task C operate in the core 1, and the OS event is selected as the synchronization mechanism. Yes.
- the operation unit control unit 31 follows the synchronization mechanism selection rule 50, and the controller 101 (control) indicated by the control mode (normally low power consumption 1, low power consumption 2) detected by the operation state management unit 32 (detection unit). As the power consumption of the device decreases, the number of processes is reduced. Further, the operation unit control unit 31 reduces the number of cores (processors) to be used as the power consumption of the controller 101 indicated by the control mode detected by the operation state management unit 32 decreases.
- the power values when the control mode is “normal”, “low power consumption 1”, and “low power consumption 2” are Pn, P1, and P2, respectively, the relationship of Pn> P1> P2 is established. To do.
- core 1 and “core 2” mean a specific processor core (for example, processor cores 121 and 122), but may be assumed not to be a specific core. Under this assumption, for example, even when task A and task B are operating in the processor core 122 and task C is operating in the processor core 124, the situation of the first line of the synchronization mechanism selection rule 50 is also met. That is, if two cores are operating, tasks A and B are operating on one core and task C is operating on the other core, no. One rule applies.
- a value indicating a specific task such as “task A” is described in the synchronization mechanism selection rule, but a value other than a specific task may be used.
- tasks 1 and 2 are described in “core 1”
- task 3 is described in “core 2” in the first line of the synchronization mechanism selection rule 50.
- Tasks 1 to 3 mean that they are different tasks.
- the situation where task A and task B operate in the processor core 121 and task C operates in the core 122 matches the first line. That is, if two cores are operating, two different tasks are operating on one core, and another task is operating on the other core, no.
- One rule applies.
- the synchronization mechanism selection rule also describes a task that is not synchronized, so that it can be shared with setting information that defines assignment of the task to the core.
- the task core assignment and task operation status are patterned, and the number of situations corresponding to one rule increases. For this reason, it is possible to reduce the number of rules (that is, reduce the data size of the rules) and improve the reusability of the rules.
- the synchronization mechanism selection rule is assumed to be common to a plurality of synchronization IDs, but may be switched for each synchronization ID.
- One of the latter implementation methods is to add a synchronization ID column to the rule table.
- the processing routine selection rule 51 in FIG. 5B shows an example of the processing routine selection rule in a table format. Each line of the processing routine selection rule 51 corresponds to one rule.
- the column items include “synchronization ID”, “task ID”, “synchronization mechanism”, and “processing routine”. As the value of “synchronization mechanism”, the value described in “synchronization mechanism” in the synchronization mechanism selection rule 50 is entered. In the “processing routine”, an ID assigned to the processing using the synchronization object is entered.
- the processing routine selection rule 51 is a rule for the synchronization ID of 0x01 from the first line to the fifth line.
- the first line indicates that if the type of the synchronization mechanism is barrier synchronization regardless of the task ID, the ID of the processing routine is R1.
- the second line indicates that if the task ID is 0x10, that is, task A and the type of the synchronization mechanism is spin lock, the ID of the processing routine is R2. The same applies to the third and subsequent lines.
- control mode changes the allocation of tasks to the core, and the selected synchronization mechanism is changed according to the synchronization mechanism selection rule 50. It is assumed that the control mode starts from “normal” after system initialization. Since the mechanism of each synchronization mechanism is known, the description of the processing inside the synchronization mechanism is omitted in this embodiment.
- FIG. 6 shows an example of task allocation to the core when the control mode is “normal”.
- Task A and task B are arranged in the core 121
- task C and task E are arranged in the core 122
- task D is arranged in the core 123.
- Task priorities are set such that A is higher than B and C is higher than E.
- the task unit control unit 31 performs the task allocation and the priority setting.
- the synchronization mechanism selection unit 34 selects barrier synchronization as the synchronization mechanism 35.
- the barrier synchronization object selected by the synchronization mechanism selection unit 34 and corresponding to the synchronization ID of 0x01 has the synchronization number set to 3.
- the suspend / resume method should be selected.
- the synchronization mechanism selection rule 50 may specify whether the barrier synchronization is the busy wait method or the suspend / resume method, or may be fixed in advance to the suspend / resume method.
- FIG. 7 shows a time chart example of task operation when the control mode is “normal”.
- Task A is activated and enters an operating state, executes subtask a1, and at time t1, subtask a1 calls synchronization mechanism selection unit 34 from synchronization mechanism utilization unit 33-1 and enters a wait state.
- the task B operating in the same core enters an operating state by OS priority control, and the subtask b is executed.
- the subtask b calls the synchronization mechanism selection unit 34 from the synchronization mechanism utilization unit 33-2 and enters a waiting state.
- task C starts and operates in parallel with task A, and executes subtask c.
- the subtask c Prior to time t2, the subtask c calls the synchronization mechanism selection unit 34 from the synchronization mechanism utilization unit 33-3 and enters a waiting state. Synchronization is established at time t2, task A is resumed, and subtask a2 is executed.
- the processing routine of the synchronization mechanism 35 is the same for every task, and the ID in the processing routine selection rule 51 is R1.
- FIG. 8 shows an example of task allocation to the core when the control mode is “low power consumption 1”.
- Task A and task D are arranged in the core 121, and task C and task E are arranged in the core 122.
- Task B is not arranged and does not operate.
- the subtask a2 uses data d1 and d3 and does not use d2.
- Task priorities are set such that A is higher than D and C is higher than E.
- the core 123 and the core 124 are stopped.
- the operation unit control unit 31 rearranges this task to the core.
- the operation status management unit 32 detects task rearrangement and notifies the synchronization mechanism selection unit 34 of the task rearrangement.
- the synchronization mechanism selection unit 34 initializes the synchronization mechanism 35.
- the synchronization mechanism selection unit 34 selects the spin lock as the synchronization mechanism 35. More precisely, it is a combination of a spin lock and a process completion flag.
- a processing completion flag is prepared for the subtask c. Since the synchronization mechanism selection unit 34 is called with the task ID as a parameter value, when it is called from the task A, it continues to read the flag until the processing completion flag of the subtask c becomes valid, and when it becomes valid, it returns to the task processing. Then, the subtask a2 is executed. When called from task C, the completion flag of subtask c is validated. The spin lock is used for exclusive access to these processing completion flags.
- the processing routine of the synchronization mechanism 35 is different between task A and task C, and the IDs in the processing routine selection rule 51 are R2 and R3, respectively.
- FIG. 9 shows a time chart example of task operation when the control mode is “low power consumption 1”.
- Task A starts and enters an operating state, and executes subtask a1.
- the subtask a1 calls the synchronization mechanism selection unit 34 from the synchronization mechanism utilization unit 33-1, and continues to confirm the completion of the operation of the subtask c.
- task C starts and operates in parallel with task A, and executes subtask c.
- the subtask c calls the synchronization mechanism selection unit 34 from the synchronization mechanism utilization unit 33-3, and validates the processing completion flag (operation completion flag).
- task A is resumed and subtask a2 is executed.
- the task A and the task C are started to be executed simultaneously every period based on a common notification by the network communication to the core 121 and the core 122, and the subtasks a1 and c Can be expected to complete almost simultaneously, the waiting time for synchronization can be reduced.
- Barrier synchronization generally has a large overhead, but the overhead can be reduced.
- FIG. 10 shows an example of task allocation to the core when the control mode is “low power consumption 2”.
- Task A and task C are arranged in the core 121.
- Tasks B, D, and E are not arranged and do not operate.
- the subtask a2 uses data d1 and d3 and does not use d2.
- the priority of the task is set so that A is higher than C.
- the cores 122 to 124 are suspended.
- the operation unit control unit 31 has a plurality of operations.
- a task (process) is arranged in one of the cores 121 to 124 (a plurality of processors). Thereby, the power consumption of the controller 101 can be suppressed.
- FIG. 11 shows an example of a time chart of task operation when the control mode is “low power consumption 2”.
- Task A starts and enters an operating state, and executes subtask a1.
- the subtask a1 calls the synchronization mechanism selection unit 34 from the synchronization mechanism utilization unit 33-1, and enters the standby state for the event corresponding to the synchronization ID 0x01.
- task C is started by OS priority control, and subtask c is executed.
- the subtask c calls the synchronization mechanism selection unit 34 from the synchronization mechanism utilization unit 33-3, and the synchronization mechanism selection unit 34 issues an event corresponding to the synchronization ID 0x01 and ends the process.
- the task A is resumed and the subtask a2 is executed.
- the processing routine of the synchronization mechanism 35 is different between task A and task C, and the IDs in the processing routine selection rule 51 are R4 and R5, respectively.
- Synchronization using OS events is lighter in processing than barrier synchronization, and does not occupy the processing power of the processor core unlike a busy-waiting spin lock.
- the operation unit control unit 31 integrates the task A and the task C, and executes a new task F that executes processing in the order of the subtasks a1, c, and a2. There is a way to create and execute.
- the synchronization mechanism in the third line of the synchronization mechanism selection rule 50 is “none”.
- the synchronization mechanism selection unit 34 does nothing. Thereby, the overhead of a synchronous process can be eliminated.
- the execution unit 40 executes the second process that does not use the synchronization mechanism 35 when a plurality of tasks (processes) are arranged in only one of the cores 121 to 124 (a plurality of processors). Specifically, as the second process, the execution unit 40 integrates a plurality of tasks (processes) into one, and executes one integrated task (process).
- the overhead of synchronization processing can be reduced or eliminated by making it possible to select an appropriate synchronization mechanism based on task allocation to the core and task operation status.
- Power reduction and response time improvement (reduction of waiting time) can be realized.
- the power consumption and response time are measured by, for example, a power line from the power circuit 113 to each core.
- the power consumption takes a minimum value when the task is waiting for synchronization and no other task is operating.
- a reduction in the overhead of the synchronization processing is observed as a reduction in the minimum value and a reduction in the time width for taking the minimum value.
- the system may continue to operate without relocation of tasks only when some tasks are paused. In that case, only the condition of the used synchronization mechanism is changed.
- the operation status management unit 32 detects the suspension of task B and notifies the synchronization mechanism selection unit 34.
- the synchronization mechanism selection unit changes the synchronization number from 3 to 2 for the barrier synchronization object corresponding to the synchronization ID 0x01.
- task B pauses before entering a wait state due to barrier synchronization.
- the operation status management unit 32 provides the OS mode information (AMP / SMP) to the synchronization mechanism selection unit 34, and the synchronization mechanism selection unit 34 switches the synchronization mechanism selection rule to be used according to the mode information.
- the synchronization mechanism selection rule 50 in FIG. 5A is used when the OS operates in AMP.
- the operation status management unit 32 sets the OS mode indicating whether the operation system installed in the controller 101 (control device) is symmetric (SMP) or asymmetric (AMP). To detect.
- the synchronization mechanism selection rule 50 stores a combination of an OS mode and an arrangement state and an identifier in association with each other.
- the execution unit 40 executes the first process or the second process indicated by the identifier corresponding to the combination of the OS mode and the arrangement status detected by the operation status management unit 32. Thereby, according to the OS mode and the arrangement state, it is possible to switch between performing synchronization using one of a plurality of types of synchronization mechanisms or not using the synchronization mechanism.
- the synchronization mechanism is made an OS resource instead of a spin lock.
- the usage of the OS resources is the same as the spin lock described with reference to FIGS.
- OS resources are used, synchronization can be achieved by a simple procedure without busy waiting. In this way, a more appropriate synchronization mechanism can be selected by using the OS mode information (AMP / SMP).
- dynamic function placement This adds tasks to the controller and its processor core on the control network during system operation.
- dynamic function placement the synchronization mechanism selection rule may be updated at the same time. At that time, the synchronization mechanism selection rule may be distributed from the control network to the controller 101.
- the data transfer unit 36-1 is arranged in the subtask a1, and the data d1 is written into the data buffer 120 via the data access control unit 37.
- a data exchanging unit 36-2 is arranged for subtask b
- a data exchanging unit 36-3 is arranged for subtask c
- data d2 and d3 are written in data buffer 120, respectively.
- a data transfer unit 36-4 is arranged in the subtask a2, and reads data d1 to d3 from the data buffer 120 via the data access control unit 37.
- the data buffer 120 has a two-surface configuration of a buffer x and a buffer y, and areas for data d1, d2, and d3 are secured respectively. However, when the control mode is “normal”, only the buffer x is used.
- the data d1 written by the subtask a1 and the data d1 read by the subtask a2 exist at the same position on the RAM 140. Data d2 and d3 are also in the same position for reading and writing.
- the data access control unit 37 receives the current control mode (associated with the task allocation) from the operation status management unit 32, and when it is “normal”, uses the buffer x for both reading and writing data. . Further, the data access control unit 37 searches for data arrangement information determined in advance from the data ID designated by the data transfer unit 36 to obtain the position of the data in the buffer x.
- control mode is switched from “normal” to “low power consumption 1”. Furthermore, it is assumed that “none” is specified for the synchronization mechanism on the second line of the synchronization mechanism selection rule 50. Task A and task C are not synchronized. There may be a delay between the update of the data d3 by the subtask c and the acquisition by the subtask a2. The maximum value of the delay is determined by the execution period of the periodic task, but the maximum value of the delay is assumed to be within a design allowable range.
- the data access control unit 37 uses the buffer x and the buffer y separately for writing and reading.
- buffer x is used for writing
- buffer y is used for reading.
- the data access control unit 37 switches the buffer when the writing of the data d3 by the subtask c is completed. That is, the buffer y is used for writing and the buffer x is used for reading.
- the controller 101 includes a buffer x (first buffer) and a buffer y (second buffer).
- the execution unit 40 uses the buffer x for writing a plurality of tasks (processes) and uses the buffer y for reading a plurality of tasks (processes) in the first period.
- the buffer y is used for writing a plurality of tasks
- the buffer x is used for reading a plurality of tasks.
- the data access control unit 37 changes the read / write position of the buffer according to the task arrangement and the operation. Since the presence or absence of the synchronization mechanism is also selected according to the task arrangement and operation, it can be said that the data access control unit 37 controls the read / write position of the buffer according to the presence or absence of the synchronization mechanism. Thus, exclusive control of data can be realized without a synchronization mechanism between tasks.
- the data access control unit 37 needs to be reentrant or perform exclusive execution using a synchronization mechanism.
- the present invention is not limited to the above-described embodiment, and includes various modifications.
- the above-described embodiment has been described in detail for easy understanding of the present invention, and is not necessarily limited to the one having all the configurations described.
- a part of the configuration of an embodiment can be replaced with the configuration of another embodiment, and the configuration of another embodiment can be added to the configuration of an embodiment.
- the microcomputer 110 (controller 101) includes a multi-core processor, but may include a multi-processor.
- each of the above-described configurations, functions, and the like may be realized by hardware by designing a part or all of them with, for example, an integrated circuit.
- Each of the above-described configurations, functions, and the like may be realized by software by interpreting and executing a program that realizes each function by a processor (microcomputer).
- Information such as programs, tables, and files for realizing each function can be stored in a recording device such as a memory, a hard disk, or an SSD (Solid State Drive), or a recording medium such as an IC card, an SD card, or a DVD.
- a plurality of processors an arrangement status management unit that manages an arrangement status of a plurality of processes for the plurality of processors, and a synchronization status setting unit that sets a synchronization status between the plurality of processes based on the arrangement status.
- a control device A plurality of processors, an arrangement status management unit that manages an arrangement status of a plurality of processes for the plurality of processors, and a synchronization status setting unit that sets a synchronization status between the plurality of processes based on the arrangement status.
- the control device of (1) includes operation unit control means for determining the processing configuration and the arrangement of the processing in the processor, and the operation unit control means sets the synchronization state setting means to be in the synchronization state.
- a control apparatus is characterized in that a plurality of processes originally executed in parallel or in parallel are integrated into a process executed in series.
- the control device is provided with data access control means for controlling a data read / write position based on the arrangement state.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
Abstract
本発明は、複数の処理の配置状況に応じて、複数種類の同期機構のいずれかを用いて同期を行う又は同期機構を使用しないことを切り替えることができる制御装置を提供する。本発明は、動作状況管理部32は、コア121~124への複数のタスクの配置状況を検出する。複数種類の同期機構35(35-1~35-m)は、複数のタスクの間の同期をとる。同期機構選択ルール50は、コア121~124への複数のタスクの配置状況と、同期機構35を使用する第1処理又は同期機構35を使用しない第2処理を示す識別子と、を対応づけて記憶する。実行部40は、動作状況管理部32によって検出された複数のタスクの配置状況に対応する識別子が示す第1処理又は第2処理を実行する。
Description
本発明は、制御装置に関する。
車載制御装置などの電子制御装置には、マルチプロセッサが採用されている。また1つのプロセッサに複数のプロセッサコア(以下「コア」)を持つマルチコア構成が取られている。OS(Operating System)の制御により並行動作する処理(プロセス、タスク、スレッドなど)や、プロセッサコア間で並列動作する処理の間では、同期が必要とされる場合がある。同期のために掛かる処理のオーバーヘッドは小さい方が好ましい。
OSの種類には、SMP(Symmetric Multiprocesing)とAMP(Asymmetric Multiprocessing)とがある。SMPでは、1つのOSが複数のプロセッサコアを扱い、実行状態に移される処理は空いているコアで実行される。つまり処理を実行するコアは動的に選択される。これに対しAMPでは、処理が実行されるコアは事前に決定されており、静的に選択される。SMP OSはコア間で処理負荷の平準化を図ることができ、AMP OSはリアルタイム性が確保しやすい、などの特徴がそれぞれある。
一方、マルチコアプロセッサを用いたシステムでは、稼働するコアを動的に変更する場合がある。例えば消費電力低減のために、実行する処理が少ない制御モードでは、いくつかのコアを休止し、残りのコアだけで動作を継続する。この場合、AMP OSでは、コアへの処理の再配置が生じる。
コアへの処理配置が変わるときのように、処理の動作状況に変化があるときには、同期が必要な処理について、適切な同期機構を選択し直す余地が生じる。
特許文献1では、スレッドの状態や属性に応じて、同期機構を選択している。具体的には、スレッド間で通信などを行い密接に連携して動作するスレッドは「密結合スレッドグループ」に属し、バッファを用いてデータ交換するスレッドは「疎結合スレッドグループ」に属すとして、密結合スレッドグループのスレッドはハードウェアなどによる高速な同期機構を、疎結合スレッドグループのスレッドはOSのサービスなどによる低速な同期機構を使う、としている。
特許文献2では、スレッドの動作数とスレッドが動作しているコアの数に応じて、バリア同期の方式を選択する方法を開示している。スレッド数≦コア数のときには、ビジーウェイト方式のバリア同期を、またスレッド数>コア数のときには、サスペンド・リジューム方式のバリア同期を選択する。ビジーウェイト方式の長所は待ち時間が小さいことであるが、プロセッサ負荷が発生し、並列動作している他スレッドの動作を妨げる恐れのある点が短所である。これに対し、スレッド数≦コア数のときにはコアごとに動作するスレッド数は1つ以下であり、ビジーウェイトを行っても他スレッドの動作を妨げることがないので、ビジーウェイト方式の短所の影響を受けずに用いることができる。
特許文献1では、OSはSMPであり、スレッドが実行されるプロセッサコアは動的に選択される想定となっている。このため、同期が必要なスレッドのプロセッサコアへの配置状況は時点により異なる。このような動作条件では、スレッドが動作するコアによらずに同期を実現できる機構を利用する必要がある。これに対しAMP OSのように、処理の動作するコアが静的に決定されている場合、その情報を利用すれば、処理の動作状況によっては、オーバーヘッドがより小さい同期機構を利用できる可能性がある。
特許文献2は、スレッドの動作数とスレッドが動作しているコアの数に応じて適切な同期方式を選択することができるが、対象となる同期機構がバリア同期に限定されている。
スレッド(またはプロセスやタスク)やコアの動作状況に応じて選択する同期機構の対象をバリア同期以外にも広げれば、処理性能や消費電力などの点で改善を期待できる。しかしこの場合、同期機構の選択方法を明らかにしなければならない。
スレッド(またはプロセスやタスク)やコアの動作状況に応じて選択する同期機構の対象をバリア同期以外にも広げれば、処理性能や消費電力などの点で改善を期待できる。しかしこの場合、同期機構の選択方法を明らかにしなければならない。
本発明の目的は、複数の処理の配置状況に応じて、複数種類の同期機構のいずれかを用いて同期を行う又は同期機構を使用しないことを切り替えることができる制御装置を提供することにある。
上記目的を達成するために、本発明は、複数のプロセッサと、前記複数のプロセッサへの複数の処理の配置状況を検出する検出部と、前記複数の処理の間の同期をとる複数種類の同期機構と、前記配置状況と、前記同期機構を使用する第1処理又は前記同期機構を使用しない第2処理を示す識別子と、を対応づけて記憶するメモリと、前記検出部によって検出された前記配置状況に対応する前記識別子が示す前記第1処理又は前記第2処理を実行する実行部と、を備える。
本発明によれば、複数の処理の配置状況に応じて、複数種類の同期機構のいずれかを用いて同期を行う又は同期機構を使用しないことを切り替えることができる。上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
以下、図面を用いて、本発明の第1~第2の実施形態によるコントローラ(制御装置)の構成及び動作について説明する。なお、各図において、同一符号は同一部分を示す。
(第1の実施形態)
図1は本発明を適用した制御システムのハードウェア構成例を示している。コントローラ101はセンサ102、アクチュエータ103と接続しており、センサ102から得られる情報を入力として、アクチュエータ103に制御信号を出力している。センサ102の例としてホール素子、アクチュエータ103の例としてブラシレスDCモータがある。
センサ102やアクチュエータ103はそれぞれ複数あってもよい。
図1は本発明を適用した制御システムのハードウェア構成例を示している。コントローラ101はセンサ102、アクチュエータ103と接続しており、センサ102から得られる情報を入力として、アクチュエータ103に制御信号を出力している。センサ102の例としてホール素子、アクチュエータ103の例としてブラシレスDCモータがある。
センサ102やアクチュエータ103はそれぞれ複数あってもよい。
コントローラ101内において、センサ102は入力回路111と、アクチュエータ103は出力回路112に接続され、さらに入力回路111と出力回路112はマイクロコンピュータ110の入出力回路130(IO)と接続されている。マイクロコンピュータ110には4つのプロセッサコア121~124(複数のプロセッサ)、RAM140(Random Access Memory)、ROM150(Read Only Memory)、不揮発メモリ160(NVRAM)を備え、入出力回路130も含めて、これらの回路はバスで接続されている。またコントローラ101は電源回路113を有する。
以下では、図1のシステムにおけるソフトウェア構成例を説明する。コア121~124(PC1~PC4)にはそれぞれAMP OSが配置されている。OSのタスクは初期状態として、タスクA~Eの5つが用意されている。タスクA~Cが制御に直接関係し、タスクD,Eは制御に直接関係しない診断などの処理である。これらのタスクはOSにより周期的に実行されている。また、タスクA~EにはそれぞれタスクIDとして16進数表現で0x10~0x14が付与されている。
図2はタスクA~Cの構成を示している。タスクAはサブタスクa1(関数で構成される)とa2を、タスクBはサブタスクbを、タスクCはサブタスクcを実行する。制御の処理の流れは、サブタスクa1、b、cがセンサ102から信号を取得して入力とし、入力に対して中間データd1、d2、d3をそれぞれ生成し、その後でサブタスクa2が中間データd1~d3を入力として、制御信号を計算し、その信号をアクチュエータ103に出力する。
図3は本発明を適用した制御システムの機能構成、および機能間の信号やデータの流れを示している。各機能はソフトウェアプログラムにより実現される。これらソフトウェアプログラムはマイクロコンピュータ110にて、ROM150に格納され、RAM140を一時記憶として利用し、コア121~124上で動作し、データの記録・読出しを不揮発メモリ160に対して行う。
動作単位制御部31は、OSのタスクとして実行する処理を規定し、各タスクを実行するコアを選択して、タスクを配置する。動作状況管理部32は、動作単位制御部31からタスクのコアへの配置情報(タスク配置情報P_task)を取得する。また、動作状況管理部32は、各コアの動作情報O_coreや各タスクの動作情報O_taskをマイクロコンピュータ110やOSから取得する。
換言すれば、動作状況管理部32(検出部)は、コア121~124(複数のプロセッサ)への複数のタスク(処理)の配置状況を検出する。
同期機構利用部33(33-1~33-n)は、各タスクにおいて同期が必要な点に配置されており、同期を取る複数の同期機構利用部33には共通のID(以下「同期ID」)が付与されている。同期機構利用部33は同期ID(ID_sync)とタスクID(ID_task)をパラメータ値として、同期機構選択部34を呼び出す。
同期機構選択部34は、動作状況管理部32から各タスクのコアへの配置情報(タスク配置情報P_task:どのコアに配置されているか、または配置されていないか)、および各タスクの動作情報O_task(例えばOSが示す動作モードとして、動作中、待機中、実行待ち、実行可能のいずれか)を取得する。各コアの動作情報O_core(例えば動作中、休止中のいずれか)を、タスクの動作情報O_taskとは別に取得してもよい。以降では動作状況管理部32から取得されるこれらの情報をまとめて「タスク配置動作情報」と呼ぶ。同期機構選択部34は同期機構利用部33からの呼び出しを受けて、タスク配置動作情報をもとに、同期ID(ID_sync)に対応して適切な同期機構を同期機構35(35-1~35-m)から選択し、実行する。この選択には、後述の「同期機構選択ルール」や「処理ルーチン選択ルール」を用いる。
換言すれば、複数種類の同期機構35(35-1~35-m)は、複数のタスク(処理)の間の同期をとる。実行部40は、動作状況管理部32(検出部)によって取得(検出)された複数のタスク(処理)の配置状況に対応する識別子が示す第1処理又は第2処理を実行する。ここで、識別子は、同期機構35を使用する第1処理又は同期機構35を使用しない第2処理を示す。識別子の詳細については、図5Aを用いて、後述する。
なお、実行部40は、コア121~124の少なくとも1つが所定のプログラムを実行することにより実現される。本実施形態では、実行部40は、同期機構利用部33、同期機構選択部34、データ授受部36、データアクセス制御部37から構成されるが、後述する「同期機構選択ルール」や「処理ルーチン選択ルール」に応じて、その構成要素を削除、変更してもよい。
図2のタスクA~Cには同期機構利用部33-1~33-3が配置されており、33-1がサブタスクa1の最後に、33-2がbの最後に、33-3がcの最後に配置されている。また同期機構利用部31-1~31-3には、共通の同期IDとして16進数表現で0x01が付与されている。
データ授受部36(36-1~36-k)は、同期を取るタスクに配置されている。データ授受部36はデータアクセス制御部37に対し、データのIDを指定してデータの読み書きを行う。データアクセス制御部37はRAM140上に設けられたデータバッファに対してデータの読み書きを行う。その際、データアクセス制御部37は、動作状況管理部32からのタスク配置動作情報に基づき、読み書き位置の制御を行う。データ授受部36がデータアクセス制御部37を介してデータの読み書きを行うことで、同期を取るタスク間でのデータの受け渡しがなされる。
図4は同期機構選択部34が同期機構利用部33の呼び出しに応じて実行する処理のフローである。処理を開始後、ステップ41にて、タスク配置動作情報を取得する。次にステップ42にて、タスク配置動作情報から、同期機構選択ルールに基づき、利用する同期機構35の種類を選択する。詳細については、図5Aを用いて、後述する。
次にステップ43にて、同期機構利用部33の同期IDから、ステップ42で選択された同期機構35の種類に対応した同期オブジェクトを選択する。また、選択された同期機構35の種類から、処理ルーチン選択ルールに基づき、同期オブジェクトを利用する処理ルーチンも選択する。同期機構35の種類によっては、タスクIDごとに同期オブジェクトの利用方法が異なる。その場合には、同期IDおよびタスクIDに対応する処理ルーチンも選択する。同期オブジェクトと処理ルーチンとを合わせて、同期機構35である。詳細については、詳細については、図5Bを用いて、後述する。
次にステップ44にて、ステップ43で選択した同期機構35の同期オブジェクトと、処理ルーチンを用いて同期処理を実行する。以上で処理を終了する。
図5Aの同期機構選択ルール50は、同期機構選択ルールの例を表形式で示したものである。同期機構選択ルール50の各行が1つのルールに対応している。列の項目には「制御モード」「コア1」「コア2」「同期機構」がある。「制御モード」はシステムの制御モードである。ここでは、制御モードがタスク配置動作情報と関連している、つまり制御モードに対してタスクのコアへの配置や、タスクの動作有無が静的に決定されている。
換言すれば、動作状況管理部32(検出部)は、コントローラ101(制御装置)の消費電力(通常、低消費電力1、低消費電力2)を示す制御モードを検出する。同期機構選択ルール50は、制御モードと、配置状況と、を対応づけて記憶する。動作単位制御部31は、動作状況管理部32によって検出される制御モードに対応する配置状況に基づいて、複数のタスク(処理)をコア121~124(複数のプロセッサ)へ配置する。これにより、制御モードに応じて、複数のタスクが静的にコア121~124へ配置される。
なお、同期機構選択ルール50は、例えば、ROM150、不揮発メモリ160等のメモリに記憶される。動作状況管理部32(検出部)は、上位システムに現在の制御モードを問い合わせてもよいし、上位システム等によって所定のメモリに記憶された現在の制御モードを読み出してもよい。
「コア1」「コア2」は各コアで動作しているタスク、「同期機構」は選択される同期機構の種類を示す値が入る。制御モードや同期機構などの項目の値は、図5Aでは「通常」といった名称が入っているが、実際のプログラムではIDが入る。
換言すれば、同期機構選択ルール50は、コア121~124(複数のプロセッサ)への複数のタスク(処理)の配置状況と、同期機構35を使用する第1処理又は同期機構35を使用しない第2処理を示す識別子と、を対応づけて記憶する。
同期機構選択ルール50には、制御モードが「通常」「低消費電力1」「低消費電力2」の3つのモードに対応するルールが定義されている。同期機構選択部34は、タスク配置動作情報から同期機構の選択を行う。または、動作状況管理部32から現在の制御モードを取得し、制御モードに合致する同期機構を選択してもよい。以下の説明は、タスク配置動作情報から選択することを前提とする。
同期機構選択ルール50にて、1行目は制御モードが「通常」であり、「コア1」の列には「タスクA,B」,「コア2」の列には「タスクC」と記されている。「コア1」はプロセッサコア121、「コア2」はコア122のことである。つまり、コア121でタスクAとタスクBが動作し、コア122でタスクCが動作している状況を示す。このようなタスクのコアへの配置およびタスクの動作時には、同期機構としてバリア同期が選択される設定となっている。
同様に、2行目は制御モードが「低消費電力1」であり、コア1ではタスクAが、コア2ではタスクCが動作する状況を示しており、同期機構としてはスピンロックが選択される設定となっている。また、3行目は制御モードが「低消費電力2」であり、コア1でタスクAとタスクCが動作する状況を示しており、同期機構としてはOSのイベントが選択される設定となっている。
なお、動作単位制御部31は、同期機構選択ルール50に従い、動作状況管理部32(検出部)によって検出される制御モード(通常、低消費電力1、低消費電力2)が示すコントローラ101(制御装置)の消費電力が小さくなるにつれて、複数の処理の数を減らす。また、動作単位制御部31は、動作状況管理部32によって検出される制御モードが示すコントローラ101の消費電力が小さくなるにつれて、使用するコア(プロセッサ)の数を減らす。ここで、制御モードが、「通常」、「低消費電力1」、「低消費電力2」の場合の電力値を、それぞれ、Pn、P1、P2とすると、Pn>P1>P2の関係が成立する。
上記では、「コア1」「コア2」が特定のプロセッサコア(例えば、プロセッサコア121、122)を意味することを前提としているが、特定のコアでないことを前提としてもよい。この前提では、例えば、プロセッサコア122でタスクAとタスクBが動作し、プロセッサコア124でタスクCが動作している場合も、同期機構選択ルール50の1行目の状況に合致する。つまり、2つのコアが動作しており、一方のコアでタスクA、Bが動作し、他方のコアでタスクCが動作していればNo.1のルールが適用される。
また上記では、「タスクA」のように特定のタスクを意味する値を同期機構選択ルールに記載しているが、特定のタスクでない値としてもよい。例えば、同期機構選択ルール50の1行目に置いて、「コア1」に「タスク1,2」、「コア2」に「タスク3」と記載されているとする。タスク1~3は、それぞれ異なるタスクであることを意味している。
この場合、プロセッサコア121にてタスクAとタスクBが動作し、コア122にてタスクCが動作している状況は、1行目に合致する。つまり、2つのコアが動作しており、一方のコアで異なる2つのタスクが動作し、他方のコアで別の1つのタスクが動作していればNo.1のルールが適用される。
この場合、プロセッサコア121にてタスクAとタスクBが動作し、コア122にてタスクCが動作している状況は、1行目に合致する。つまり、2つのコアが動作しており、一方のコアで異なる2つのタスクが動作し、他方のコアで別の1つのタスクが動作していればNo.1のルールが適用される。
以上に、コアを特定のものとする場合と非特定のものとする場合、およびタスクを特定のものとする場合と非特定のものとする場合とを説明した。コアとタスクの両方を特定のものとする場合は、同期機構選択ルールは同期しないタスクも記載することで、タスクのコアへの割り当てを定義する設定情報と共用化することができる。一方、タスクやコアを非特定のものとすると、タスクのコア割り当てやタスクの動作状況をパターン化することになり、1つのルールで対応する状況の数が増える。このため、ルール数の縮小(すなわちルールのデータサイズの縮小)や、ルールの再利用性向上を実現することができる。
上記では、同期機構選択ルールは複数の同期IDで共通とする前提で説明したが、同期IDごとに切り替えてもよい。後者の実現方法の1つは、ルールテーブルに同期IDの列を追加するものである。
図5Bの処理ルーチン選択ルール51は、処理ルーチン選択ルールの例を表形式で示したものである。処理ルーチン選択ルール51の各行が1つのルールに対応している。列の項目には「同期ID」「タスクID」「同期機構」「処理ルーチン」がある。「同期機構」の値は、同期機構選択ルール50における「同期機構」に記された値が入る。「処理ルーチン」は、同期オブジェクトを利用する処理に付与されたIDが入る。
処理ルーチン選択ルール51は、1行目から5行目まで全て、同期IDが0x01についてのルールである。1行目は、タスクIDを問わず、同期機構の種類がバリア同期であれば、処理ルーチンのIDはR1であることを示している。2行目は、タスクIDが0x10すなわちタスクAであり、同期機構の種類がスピンロックであれば、処理ルーチンのIDはR2であることを示している。3行目以降も同様である。
以下では、システムが制御モードを変更し、それに伴いタスクのコアへの配置も変更すると共に、選択される同期機構が同期機構選択ルール50に沿って変更されていく様子を説明する。制御モードはシステムの初期化の後、「通常」から開始するとする。各同期機構の仕組みは公知であるため、本実施形態では同期機構内部の処理の説明を省略する。
(制御モードが通常のときの動作)
最初に、システムの制御モードが「通常」のときの動作を説明する。図6は、制御モードが「通常」のときの、タスクのコアへの配置例を示している。コア121にタスクAとタスクBが、コア122にタスクCとタスクEが、コア123にタスクDが配置されている。タスクの優先度はAがBより、CがEより高く設定されている。これらのタスク配置や優先度設定は、動作単位制御部31が行う。
最初に、システムの制御モードが「通常」のときの動作を説明する。図6は、制御モードが「通常」のときの、タスクのコアへの配置例を示している。コア121にタスクAとタスクBが、コア122にタスクCとタスクEが、コア123にタスクDが配置されている。タスクの優先度はAがBより、CがEより高く設定されている。これらのタスク配置や優先度設定は、動作単位制御部31が行う。
このタスク配置にて、タスクA~Cが動作するとき、同期機構選択部34は同期機構35としてバリア同期を選択する。同期機構選択部34に選択され、同期IDが0x01に対応したバリア同期のオブジェクトは、同期数が3に設定されている。図6の場合には、サスペンド・リジューム方式が選択されるべきである。同期機構選択ルール50にて、バリア同期がビジーウェイト方式かサスペンド・リジューム方式かを指定してもよいし、予めサスペンド・リジューム方式に固定してもよい。
図7は、制御モードが「通常」のときの、タスク動作のタイムチャート例を示している。タスクAが起動して動作状態となり、サブタスクa1を実行し、時刻t1にサブタスクa1は同期機構利用部33-1から同期機構選択部34を呼び出し、待ち状態に入る。これにより、同じコアで動作するタスクBがOSの優先度制御により動作状態となり、サブタスクbが実行される。時刻t2に、サブタスクbは同期機構利用部33-2から同期機構選択部34を呼び出し、待ち状態に入る。一方、タスクCはタスクAと並行に起動・動作して、サブタスクcを実行する。時刻t2より前に、サブタスクcは同期機構利用部33-3から同期機構選択部34を呼び出し、待ち状態に入る。時刻t2には同期が成立し、タスクAが再開されてサブタスクa2が実行される。この例では、同期機構35の処理ルーチンは、どのタスクでも同じであり、処理ルーチン選択ルール51におけるIDはR1である。
(制御モードが低消費電力1のときの動作)
次に、システムが制御モードを「通常」から「低消費電力1」に変更したときのシステムの動作を説明する。図8は、制御モードが「低消費電力1」のときの、タスクのコアへの配置例を示している。コア121にタスクAとタスクDが、コア122にタスクCとタスクEが配置されている。タスクBは配置されておらず、動作しない。サブタスクa2は、データd1とd3を利用し、d2は利用しない。タスクの優先度は、AがDより、CがEより高く設定されている。コア123とコア124は休止する。
次に、システムが制御モードを「通常」から「低消費電力1」に変更したときのシステムの動作を説明する。図8は、制御モードが「低消費電力1」のときの、タスクのコアへの配置例を示している。コア121にタスクAとタスクDが、コア122にタスクCとタスクEが配置されている。タスクBは配置されておらず、動作しない。サブタスクa2は、データd1とd3を利用し、d2は利用しない。タスクの優先度は、AがDより、CがEより高く設定されている。コア123とコア124は休止する。
制御モードが変更されたときに、動作単位制御部31がこのタスクのコアへの再配置を行う。動作状況管理部32はタスク再配置を検出し、同期機構選択部34に通知する。同期機構選択部34は、同期機構35を初期化する。
上記のタスク配置にて、タスクAとタスクCが動作するとき、同期機構選択部34は同期機構35としてスピンロックを選択する。正確には、スピンロックと処理完了フラグを一緒にしたものである。サブタスクcに処理完了フラグが用意されている。同期機構選択部34はタスクIDをパラメータ値として呼出しされるので、タスクAから呼び出された時には、サブタスクcの処理完了フラグが有効になるまでフラグを読み続け、有効になったらタスクの処理に復帰して、サブタスクa2を実行する。タスクCから呼び出された時には、サブタスクcの完了フラグを有効にする。スピンロックはこれら処理完了フラグへの排他的アクセスに利用される。この例では、同期機構35の処理ルーチンは、タスクAとタスクCとで異なり、処理ルーチン選択ルール51におけるIDはそれぞれ、R2とR3である。
図9は、制御モードが「低消費電力1」のときの、タスク動作のタイムチャート例を示している。タスクAが起動して動作状態となり、サブタスクa1を実行する。時刻t3にサブタスクa1は同期機構利用部33-1から同期機構選択部34を呼び出し、サブタスクcの動作完了を確認し続ける。一方、タスクCはタスクAと並行に起動・動作して、サブタスクcを実行する。時刻t4に、サブタスクcは同期機構利用部33-3から同期機構選択部34を呼び出し、処理完了フラグ(動作完了フラグ)を有効にする。時刻t4にタスクAが再開されてサブタスクa2が実行される。
上記のようなスピンロックの利用により、例えばタスクAとタスクCが、コア121とコア122へのネットワーク通信などによる共通の通知をもとに、毎周期に同時に実行開始され、サブタスクa1とcとがほぼ同時に処理完了すると期待される場合には、同期のための待ち時間を短くすることができる。バリア同期は一般的にオーバーヘッドが大きいが、そのオーバーヘッドの軽減を図ることができる。
(制御モードが低消費電力2のときの動作)
次に、システムが制御モードを「低消費電力1」から「低消費電力2」に変更したときのシステムの動作を説明する。図10は、制御モードが「低消費電力2」の、タスクのコアへの配置例を示している。コア121にタスクAとタスクCが配置されている。タスクB,D,Eは配置されておらず、動作しない。サブタスクa2は、データd1とd3を利用し、d2は利用しない。タスクの優先度は、AがCより高く設定されている。コア122~124は休止する。
次に、システムが制御モードを「低消費電力1」から「低消費電力2」に変更したときのシステムの動作を説明する。図10は、制御モードが「低消費電力2」の、タスクのコアへの配置例を示している。コア121にタスクAとタスクCが配置されている。タスクB,D,Eは配置されておらず、動作しない。サブタスクa2は、データd1とd3を利用し、d2は利用しない。タスクの優先度は、AがCより高く設定されている。コア122~124は休止する。
換言すれば、動作単位制御部31は、動作状況管理部32(検出部)によって検出される制御モードがコントローラ101(制御装置)の最小の消費電力(低消費電力2)を示す場合、複数のタスク(処理)をコア121~124(複数のプロセッサ)のうちの1つに配置する。これにより、コントローラ101の消費電力を抑制することができる。
図11は、制御モードが「低消費電力2」のときの、タスク動作のタイムチャート例を示している。タスクAが起動して動作状態となり、サブタスクa1を実行する。時刻t5にサブタスクa1は同期機構利用部33-1から同期機構選択部34を呼び出し、同期ID0x01に対応したイベントの待機状態に入る。これにより、タスクCがOSの優先度制御により開始され、サブタスクcを実行する。時刻t6に、サブタスクcは同期機構利用部33-3から同期機構選択部34を呼び出し、同期機構選択部34は同期ID0x01に対応したイベントを発行して、処理を終了する。これによりタスクAが再開され、サブタスクa2が実行される。この例では、同期機構35の処理ルーチンは、タスクAとタスクCとで異なり、処理ルーチン選択ルール51におけるIDはそれぞれ、R4とR5である。
OSのイベントを用いた同期は、バリア同期と比較して処理が軽量であり、ビジーウェイトするスピンロックのように、プロセッサコアの処理能力を占有しない。
制御モードが「低消費電力2」のときの別の実施形態として、動作単位制御部31がタスクAとタスクCを統合し、サブタスクa1、c、a2の順で処理を実行する新しいタスクFを作成して実行する方法がある。この場合、同期処理が不要になるので、同期機構選択ルール50の3行目における同期機構は「なし」となる。同期機構がなしの場合、同期機構選択部34は何も行わない。これにより、同期処理のオーバーヘッドをなくすことができる。
換言すれば、実行部40は、複数のタスク(処理)がコア121~124(複数のプロセッサ)のうちの1つのみに配置される場合、同期機構35を使用しない第2処理を実行する。詳細には、実行部40は、第2処理として、複数のタスク(処理)を1つに統合し、統合された1つのタスク(処理)を実行する。
以上のように、タスクのコアへの配置や、タスクの動作状況をもとに、適切な同期機構を選択可能とすることにより、同期処理に掛かるオーバーヘッドを小さくする、または無くすことができ、消費電力低減や、応答時間の改善(待ち時間の短縮)を実現することができる。
消費電力や応答時間は、例えば電源回路113から各コアへの電源線にて計測する。消費電力は、タスクが同期の成立待ちであり、他のタスクが動作中でないときに、極小値を取る。同期処理のオーバーヘッドの縮小は、この極小値の低減や、極小値を取る時間幅の短縮となって観測される。
上記ではタスクがコアに再配置される場合を説明したが、一部のタスクが休止するだけで、タスクの再配置はなしにシステムが動作を継続する場合もありうる。その場合には、利用されている同期機構の条件だけを変更する。例えば図6のタスク配置にて、タスクBが休止したとき、動作状況管理部32がタスクBの休止を検出し、同期機構選択部34に通知する。同期機構選択部は、同期ID0x01に対応するバリア同期のオブジェクトについて、同期数を3から2に変更する。ただし、タスクBが休止するのは、バリア同期による待ち状態に入る前とする。
以上説明したように、本実施形態によれば、複数の処理の配置状況に応じて、複数種類の同期機構のいずれかを用いて同期を行う又は同期機構を使用しないことを切り替えることができる。
(変形例)
上記ではOSがAMPであることを前提としたが、以下ではOSがSMPとAMPとでモード切り替えをできるものであると想定する。動作状況管理部32がOSのモード情報
(AMP/SMP)を同期機構選択部34に提供し、同期機構選択部34がそのモード情報に応じて、利用する同期機構選択ルールを切り替える。この場合、図5Aの同期機構選択ルール50は、OSがAMPで動作するときに利用される。
上記ではOSがAMPであることを前提としたが、以下ではOSがSMPとAMPとでモード切り替えをできるものであると想定する。動作状況管理部32がOSのモード情報
(AMP/SMP)を同期機構選択部34に提供し、同期機構選択部34がそのモード情報に応じて、利用する同期機構選択ルールを切り替える。この場合、図5Aの同期機構選択ルール50は、OSがAMPで動作するときに利用される。
換言すれば、動作状況管理部32(検出部)は、コントローラ101(制御装置)にインストールされるオペレーションシステムが対称型(SMP)であるか又は非対称型(AMP)であるかを示すOSモードを検出する。同期機構選択ルール50は、OSモード及び配置状況の組合せと、識別子とを対応づけて記憶する。実行部40は、動作状況管理部32によって検出されたOSモード及び配置状況の組合せに対応する識別子が示す第1処理又は第2処理を実行する。これにより、OSモード及び配置状況に応じて、複数種類の同期機構のいずれかを用いて同期を行う又は同期機構を使用しないことを切り替えることができる。
OSがSMPのときは、例えば同期機構選択ルール50の2行目にて、同期機構をスピンロックではなくOSのリソースにする。OSのリソースの使われ方は、図8と図9で説明したスピンロックと同様である。OSのリソースを利用する場合、ビジーウェイトすることなしに、容易な手順で同期を取ることができる。このように、OSのモード情報(AMP/SMP)を利用することで、より適切な同期機構を選択することができる。
以上では、時間経過と共に動作するタスクが減少する場合の例を説明した。制御モードが「低消費電力2」から「通常」に戻る場合には、動作するタスクは増加する。この場合の同期機構の選択方法は、上記と同じで問題ない。
一方で、動的機能配置と呼ばれるタスクの配置の仕方がある。これは、システムの稼働中に制御ネットワーク上で、コントローラおよびそのプロセッサコアにタスクを追加するものである。動的機能配置が実行される場合には、同期機構選択ルールも同時に更新すればよい。その際、同期機構選択ルールを、制御ネットワークからコントローラ101に配信してもよい。
(第2の実施形態)
以下では、図12を用いて、データ授受部36、データアクセス制御部37の動作例を説明する。タスク配置は当初、図6の制御モードが「通常」の状況とする。
以下では、図12を用いて、データ授受部36、データアクセス制御部37の動作例を説明する。タスク配置は当初、図6の制御モードが「通常」の状況とする。
サブタスクa1にはデータ授受部36-1が配置されており、データアクセス制御部37を介して、データバッファ120にデータd1を書き込む。同様に、サブタスクbにはデータ授受部36-2が、サブタスクcにはデータ授受部36-3が配置されており、データバッファ120にそれぞれデータd2、データd3を書き込む。サブタスクa2にはデータ授受部36-4が配置されており、データアクセス制御部37を介して、データバッファ120からデータd1~d3を読み込む。
データバッファ120は、バッファxとバッファyの2面構成となっており、それぞれにデータd1、d2、d3の領域が確保されている。しかし制御モードが「通常」のときには、バッファxのみが用いられる。サブタスクa1が書き込むデータd1とサブタスクa2が読み込むデータd1は、RAM140上で同じ位置に存在する。データd2、d3も読み込みと書き込みが同じ位置である。
データアクセス制御部37は、動作状況管理部32から(タスク配置と関連付いた)現在の制御モードを受け取り、「通常」である場合には、データの読み込みにも書き込みにも、バッファxを用いる。またデータアクセス制御部37は、データ授受部36から指定されるデータIDから、事前に決められたデータ配置情報を検索して、バッファx内のデータの位置を求める。
今、制御モードが「通常」から「低消費電力1」に切り替わったとする。さらに、同期機構選択ルール50の2行目の同期機構に「なし」が指定されているとする。タスクAとタスクCとは同期が取られない。データd3のサブタスクcによる更新からサブタスクa2による取得までには遅延が生じうる。この遅延の最大値は周期タスクの実行周期で決まるが、遅延の最大値は設計上の許容範囲に収まっているとする。
データアクセス制御部37は制御モードが「低消費電力1」の場合には、書き込みと読み込みでバッファxとバッファyを使い分ける。最初に、書き込みにバッファxを、読み込みにバッファyを利用する。データアクセス制御部37は、例えば、サブタスクcによるデータd3の書き込みが完了した時点で、バッファを切り替える。つまり、書き込みにバッファyを、読み込みにバッファxを用いるように変更する。このようにバッファ2面を用いることで、読み書きするタスク同士の同期を取っていなくても、同じ領域に同時に読み書きすることを回避できる。
換言すれば、コントローラ101(制御装置)は、バッファx(第1バッファ)とバッファy(第2バッファ)を備える。実行部40は、同期機構35を使用しない第2処理を実行する場合、第1期間において、複数のタスク(処理)の書き込みにバッファxを用い、複数のタスク(処理)の読み込みにバッファyを用い、第1期間の後の第2期間において、複数のタスクの書き込みにバッファyを用い、複数のタスクの読み込みにバッファxを用いる。
以上のように、データアクセス制御部37はタスク配置と動作に応じて、バッファの読み書き位置を変更する。同期機構の有無もタスク配置と動作に応じて選択されるので、データアクセス制御部37は、同期機構の有無に応じてバッファの読み書き位置を制御しているともいえる。これにより、タスク間の同期機構をなくしても、データの排他制御を実現できる。なおデータアクセス制御部37は再入可能とするか、同期機構を用いて排他的な実行を行う必要がある。
なお、本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上述した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
上記実施形態では、マイクロコンピュータ110(コントローラ101)は、マルチコアプロセッサを備えるが、マルチプロセッサを備えていてもよい。
また、上記の各構成、機能等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサ(マイクロコンピュータ)がそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
なお、本発明の実施形態は、以下の態様であってもよい。
(1)複数のプロセッサと、前記複数のプロセッサに対する複数の処理の配置状況を管理する配置状況管理手段と、前記複数の処理間の同期状態を前記配置状況に基づいて設定する同期状態設定手段と、を備える制御装置。
(2)(1)の制御装置は、処理の構成や処理のプロセッサへの配置を決定する動作単位制御手段を備え、前記動作単位制御手段は、前記同期状態設定手段が同期状態をなしとする場合に、もとは並列または並行に実行される複数の処理を統合して、直列に実行される処理に構成することを特徴とする、制御装置。
(3)(1)において、前記同期状態設定手段は、オペレーションシステムの動作モードも同期状態の設定に利用することを特徴とする、制御装置。
(4)(1)の制御装置は、前記配置状況に基づいてデータの読み書き位置を制御するデータアクセス制御手段を備えることを特徴とする、制御装置。
上記(1)~(4)によれば、コアへの処理配置が変わるとき、可能であれば同期機構をオーバーヘッドがより小さいにものに変える、あるいは同期機構の利用を無くすことにより、処理性能の向上や消費電力の低減を実現する。また同期機構のオーバーヘッドが小さくなる、または無くなると、プロセッサの処理能力に余裕が出て、1つのコアにより多くの処理を配置しやすくなり、コア縮退時に稼働させるコア数を減らしやすくなり、消費電力の低減をさらに図ることができる。
31…動作単位制御部、32…動作状況管理部、33…同期機構利用部、34…同期機構選択部、35…同期機構、36…データ授受部、37…データアクセス制御部、40…実行部、50…同期機構選択ルール、51…処理ルーチン選択ルール、101…コントローラ、102…センサ、103…アクチュエータ、110…マイクロコンピュータ、111…入力回路、112…出力回路、113…電源回路、120…データバッファ、121~124…プロセッサコア、130…入出力回路、140…RAM、150…ROM、160…不揮発メモリ
Claims (8)
- 複数のプロセッサと、
前記複数のプロセッサへの複数の処理の配置状況を検出する検出部と、
前記複数の処理の間の同期をとる複数種類の同期機構と、
前記配置状況と、前記同期機構を使用する第1処理又は前記同期機構を使用しない第2処理を示す識別子と、を対応づけて記憶するメモリと、
前記検出部によって検出された前記配置状況に対応する前記識別子が示す前記第1処理又は前記第2処理を実行する実行部と、
を備えることを特徴とする制御装置。 - 請求項1に記載の制御装置であって、
前記検出部は、
前記制御装置の消費電力を示す制御モードを検出し、
前記メモリは、
前記制御モードと、前記配置状況と、を対応づけて記憶し、
前記制御装置は、
前記検出部によって検出される前記制御モードに対応する前記配置状況に基づいて、前記複数の処理を前記複数のプロセッサへ配置する動作単位制御部を備える ことを特徴とする制御装置。 - 請求項2に記載の制御装置であって、
前記動作単位制御部は、
前記検出部によって検出される前記制御モードが前記制御装置の最小の消費電力を示す場合、前記複数の処理を前記複数のプロセッサのうちの1つに配置し、
前記実行部は、
前記複数の処理が前記複数のプロセッサのうちの1つのみに配置される場合、前記第2処理を実行する
ことを特徴とする制御装置。 - 請求項3に記載の制御装置であって、
前記実行部は、
前記第2処理として、前記複数の処理を1つに統合し、統合された1つの処理を実行する
ことを特徴とする制御装置。 - 請求項2に記載の制御装置であって、
前記検出部は、
前記制御装置にインストールされるオペレーションシステムが対称型であるか又は非対称型であるかを示すOSモードを検出し、
前記メモリは、
前記OSモード及び前記配置状況の組合せと、前記識別子とを対応づけて記憶し、
前記実行部は、
前記検出部によって検出された前記OSモード及び前記配置状況の組合せに対応する前記識別子が示す前記第1処理又は前記第2処理を実行する ことを特徴とする制御装置。 - 請求項2に記載の制御装置であって、
第1バッファと第2バッファを備え、
前記実行部は、
前記第2処理を実行する場合、第1期間において、前記複数の処理の書き込みに前記第1バッファを用い、前記複数の処理の読み込みに前記第2バッファを用い、前記第1期間の後の第2期間において、前記複数の処理の書き込みに前記第2バッファを用い、前記複数の処理の読み込みに前記第1バッファを用いる
ことを特徴とする制御装置。 - 請求項2に記載の制御装置であって、
前記動作単位制御部は、
前記検出部によって検出される前記制御モードが示す前記制御装置の消費電力が小さくなるにつれて、前記複数の処理の数を減らす
ことを特徴とする制御装置。 - 請求項7に記載の制御装置であって、
前記動作単位制御部は、
前記検出部によって検出される前記制御モードが示す前記制御装置の消費電力が小さくなるにつれて、使用するプロセッサの数を減らす
ことを特徴とする制御装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016-252912 | 2016-12-27 | ||
JP2016252912A JP6774147B2 (ja) | 2016-12-27 | 2016-12-27 | 制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018123707A1 true WO2018123707A1 (ja) | 2018-07-05 |
Family
ID=62707510
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2017/045437 WO2018123707A1 (ja) | 2016-12-27 | 2017-12-19 | 制御装置 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6774147B2 (ja) |
WO (1) | WO2018123707A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021026613A (ja) * | 2019-08-07 | 2021-02-22 | 株式会社デンソーテン | 演算装置、演算方法およびプログラム |
JP7476638B2 (ja) | 2020-04-15 | 2024-05-01 | 株式会社デンソー | マルチプロセッサシステム |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003084990A (ja) * | 2001-09-12 | 2003-03-20 | Chuo Electronics Co Ltd | タスク間における汎用通信方法 |
JP2005100264A (ja) * | 2003-09-26 | 2005-04-14 | Toshiba Corp | スケジューリング方法および情報処理システム |
JP2011198063A (ja) * | 2010-03-19 | 2011-10-06 | Fujitsu Ltd | データ入出力制御方法,データ入出力制御プログラムおよびデータ入出力制御装置 |
WO2012105230A1 (ja) * | 2011-02-02 | 2012-08-09 | 日本電気株式会社 | 分散システム、装置、方法及びプログラム |
JP2016110240A (ja) * | 2014-12-03 | 2016-06-20 | 日本電信電話株式会社 | 電源制御装置、サーバ仮想化システム、および、電源制御方法 |
-
2016
- 2016-12-27 JP JP2016252912A patent/JP6774147B2/ja active Active
-
2017
- 2017-12-19 WO PCT/JP2017/045437 patent/WO2018123707A1/ja active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003084990A (ja) * | 2001-09-12 | 2003-03-20 | Chuo Electronics Co Ltd | タスク間における汎用通信方法 |
JP2005100264A (ja) * | 2003-09-26 | 2005-04-14 | Toshiba Corp | スケジューリング方法および情報処理システム |
JP2011198063A (ja) * | 2010-03-19 | 2011-10-06 | Fujitsu Ltd | データ入出力制御方法,データ入出力制御プログラムおよびデータ入出力制御装置 |
WO2012105230A1 (ja) * | 2011-02-02 | 2012-08-09 | 日本電気株式会社 | 分散システム、装置、方法及びプログラム |
JP2016110240A (ja) * | 2014-12-03 | 2016-06-20 | 日本電信電話株式会社 | 電源制御装置、サーバ仮想化システム、および、電源制御方法 |
Also Published As
Publication number | Publication date |
---|---|
JP6774147B2 (ja) | 2020-10-21 |
JP2018106472A (ja) | 2018-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9411646B2 (en) | Booting secondary processors in multicore system using kernel images stored in private memory segments | |
KR101239082B1 (ko) | 멀티코어 아키텍처 내의 리소스 관리 | |
JP3557947B2 (ja) | 複数のプロセッサで同時にスレッドの実行を開始させる方法及びその装置並びにコンピュータ可読記録媒体 | |
CN101529383B (zh) | 任务处理装置 | |
TWI416413B (zh) | Work processing device | |
US9733981B2 (en) | System and method for conditional task switching during ordering scope transitions | |
US20130191832A1 (en) | Management of threads within a computing environment | |
WO2006059543A1 (ja) | スケジューリング方法、スケジューリング装置およびマルチプロセッサシステム | |
TWI426451B (zh) | Work processing device | |
WO2002069174A1 (fr) | Procede d'execution en parallele de processus et ordinateur a processeurs multiples | |
KR20050030871A (ko) | 실시간 동작 수행방법 및 시스템 | |
JP2012104140A (ja) | 待機状態にあるプロセッサ実行リソースの共有 | |
CN101310257A (zh) | 多处理器系统和用于使计算机执行多处理器系统的控制方法的程序 | |
US8413163B2 (en) | Program control device including per-timeslot switching of thread execution | |
WO2009150815A1 (ja) | マルチプロセッサシステム | |
KR20070090649A (ko) | 멀티 코어 시스템에서 협력적 스케줄링을 제공하는 장치 및방법 | |
WO2018123707A1 (ja) | 制御装置 | |
JP2010539592A (ja) | データを交換する方法及びシステム | |
CN102436393B (zh) | 任务处理装置 | |
US20080133899A1 (en) | Context switching method, medium, and system for reconfigurable processors | |
JP2006099332A (ja) | 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム | |
WO2013145199A1 (ja) | 仮想計算機のスケジュール方法 | |
JP4789269B2 (ja) | ベクトル処理装置及びベクトル処理方法 | |
JP4292705B2 (ja) | タスクスケジューリング装置 | |
JP2010244332A (ja) | マルチコアシステムのためのタスク割り当て手段、その方法及びそのプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 17887763 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 17887763 Country of ref document: EP Kind code of ref document: A1 |