WO2025115486A1 - 動作制御装置、動作制御プログラムおよび電子制御装置 - Google Patents
動作制御装置、動作制御プログラムおよび電子制御装置 Download PDFInfo
- Publication number
- WO2025115486A1 WO2025115486A1 PCT/JP2024/038347 JP2024038347W WO2025115486A1 WO 2025115486 A1 WO2025115486 A1 WO 2025115486A1 JP 2024038347 W JP2024038347 W JP 2024038347W WO 2025115486 A1 WO2025115486 A1 WO 2025115486A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- time
- prohibition
- executed
- processing unit
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/48—Program initiating; Program switching, e.g. by interrupt
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 disclosure relates to an operation control device that controls the operation of multiple virtual machines in a time-sharing manner with each virtual machine operating for a predetermined operating time for each operating cycle, an operation control program that is executed by the operation control device, and an electronic control device that includes the operation control device.
- a vehicle such as an automobile is equipped with multiple electronic control units, which communicate with each other and work together to perform various processes.
- electronic control units are sometimes abbreviated to ECUs.
- ECUs electronice control units
- the functions of multiple ECUs that previously operated independently are mounted as multiple virtual machines on a single microcomputer via a hypervisor.
- microcomputers are sometimes abbreviated to microcomputers.
- Patent Documents 1 and 2 disclose techniques related to this problem.
- Patent Document 1 discloses a method of dividing tasks into several groups and adaptively dividing the processing time of these groups.
- Patent Document 2 discloses a method of detecting and disabling an interrupt task that occurs during uninterruptible processing, thereby ensuring uninterruptible processing, by executing the interrupt task after the uninterruptible processing is completed.
- the objective of this disclosure is to provide an operation control device, an operation control program, and an electronic control device that can prevent processes that must be executed continuously from being interrupted by a switching process.
- the operation control device controls a plurality of virtual machines to operate in a time-sharing manner with each virtual machine operating for a predetermined operating time allocated for each operating cycle.
- one of the plurality of virtual machines that is currently operating is defined as the operating machine.
- the operation control device includes a first processing unit capable of executing a switching process to switch the operating machine, and a second processing unit capable of executing a prohibition process to prohibit the execution of the switching process and an authorization process to permit the execution of the switching process.
- the operating machine transmits a prohibition request when starting a specific process that must be executed continuously, i.e., a process that cannot be interrupted or an atomic process, and transmits an authorization request when the specific process is completed.
- the above configuration prevents the occurrence of a switching process that switches the operating machine when the operating machine is executing a specific process. In this way, it is possible to guarantee consistent operation until the specific process is completed. Furthermore, with the above configuration, when the second processing unit executes a judgment process and the remaining time is less than the set time, in other words, when it is extremely unlikely that the specific process that is about to be started can be completed before the operating time has elapsed, the prohibition process is not executed and, accordingly, the specific process is not executed. In this way, the specific process that is unlikely to be completed in that operating cycle can be executed in the next operating cycle. In this way, with the above configuration, it is possible to obtain the excellent effect of preventing the specific process, which is a process that must be executed continuously, from being interrupted by a switching process.
- FIG. 1 is a diagram showing a schematic configuration of an integrated ECU and an ECU according to a first embodiment
- FIG. 2 is a timing chart showing the operation of each part in a first comparative operation example according to a comparative example
- FIG. 3 is a timing chart showing the operation of each part in a second comparative operation example according to a comparative example
- FIG. 4 is a timing chart showing the operation of each unit in a first operation example according to the first embodiment
- FIG. 5 is a timing chart showing the operation of each unit in a second operation example according to the first embodiment
- FIG. 1 is a diagram showing a schematic configuration of an integrated ECU and an ECU according to a first embodiment
- FIG. 2 is a timing chart showing the operation of each part in a first comparative operation example according to a comparative example
- FIG. 3 is a timing chart showing the operation of each part in a second comparative operation example according to a comparative example
- FIG. 4 is a timing chart showing the operation of each unit in a first
- FIG. 6 is a timing chart showing the operation of each unit in a third operation example according to the first embodiment
- FIG. 7 is a timing chart showing the operation of each unit in a fourth operation example according to the first embodiment
- FIG. 8 is a timing chart showing the operation of each unit in a fifth operation example according to the first embodiment
- FIG. 9 is a timing chart showing the operation of each unit in a sixth operation example according to the first embodiment
- FIG. 10 is a timing chart showing the operation of each unit in a seventh operation example according to the first embodiment
- FIG. 11 is a timing chart showing the operation of each unit in an eighth operation example according to the first embodiment
- FIG. 12 is a timing chart showing the operation of each unit in a ninth operation example according to the first embodiment
- FIG. 13 is a timing chart showing the operation of each part in a third comparative operation example according to a comparative example
- FIG. 14 is a timing chart showing the operation of each unit in a tenth operation example according to the first embodiment
- FIG. 15 is a timing chart showing the operation of each part in a fourth comparative operation example according to a comparative example
- FIG. 16 is a timing chart showing the operation of each part in a fifth comparative operation example according to a comparative example
- FIG. 17 is a timing chart showing the operation of each unit in an eleventh operation example according to the first embodiment
- FIG. 18 is a diagram showing a specific example of allocation of the total margin time according to the first embodiment
- FIG. 19 is a diagram illustrating an example of specific content of each process executed when a prohibition request according to the first embodiment is received;
- FIG. 20 is a diagram illustrating an example of specific content of each process executed during a prohibited period according to the first embodiment;
- FIG. 21 is a diagram illustrating an example of specific content of each process executed when an operation time according to a modified example ends;
- FIG. 22 is a diagram illustrating an example of specific content of each process executed when a permission request according to the first embodiment is received;
- FIG. 23 is a timing chart showing the operation of each unit in a twelfth operation example according to the second embodiment;
- FIG. 24 is a timing chart showing the operation of each unit in a thirteenth operation example according to the second embodiment;
- FIG. 25 is a timing chart showing the operation of each unit in a fourteenth operation example according to the second embodiment;
- FIG. 26 is a timing chart showing the operation of each unit in the fifteenth operation example according to the third embodiment.
- the integrated ECU 1 of this embodiment is mounted on a vehicle such as an automobile, and the functions of multiple ECUs that previously operated independently are mounted on the chip of a single microcomputer 3 via a hypervisor 2.
- multiple ECUs include an engine ECU, an air conditioner ECU, a central gateway ECU, and a body ECU.
- the functions of the multiple ECUs are mounted in units called virtual machines.
- the hypervisor may be abbreviated to HV
- the virtual machine may be abbreviated to VM.
- the integrated ECU 1 has functions equivalent to two ECUs, ECU-A and ECU-B.
- the integrated ECU 1 may have functions equivalent to three or more ECUs.
- the ECU 4 is not integrated into the integrated ECU 1, but is provided independently like a conventional ECU.
- the integrated ECU 1 and ECU 4 are connected via a bus communication line 5, which allows them to communicate with each other.
- the ECU 4 is equipped with a microcomputer 6.
- the microcomputer 6 is equipped with hardware such as a CPU, various storage devices, and various peripherals (not shown).
- the various peripherals include communication hardware 7 for performing communications. Note that in this specification, hardware is sometimes abbreviated to HW.
- the ECU 4 is equipped with an ECU-0 application A0 for implementing its main functions. Note that in this specification, application is sometimes abbreviated to app. Also, in the following explanations and drawings, ECU-0 app A0 is sometimes abbreviated to app A0.
- the ECU 4 is equipped with a communication driver 8.
- the communication driver 8 controls the communication HW 7 to perform data communication with other ECUs including the integrated ECU 1 via the bus communication line 5.
- Both the application A0 and the communication driver 8 are realized by the CPU of the microcomputer 6 executing a computer program stored in a non-transitive physical storage medium and performing processing corresponding to the computer program, that is, they are realized by software.
- the integrated ECU1 has two VMs, VM10 and VM11.
- the functions of ECU-A are realized by VM10
- the functions of ECU-B are realized by VM11.
- VM10 has an ECU-A application A1 for realizing the main functions of ECU-A.
- VM11 has an ECU-B app A2 for realizing the main functions of ECU-B. Note that in the following explanations and drawings, ECU-A app A1 and ECU-B app A2 may be abbreviated to app A1 and app A2, respectively.
- HV2 is for running VM10 and VM11 on microcomputer 3.
- Microcomputer 3 is an example of a computer, and includes a CPU (not shown) as its hardware, various storage devices, various peripherals, and the like.
- the various peripherals include communication HW12 for communication.
- the various storage devices include register 13.
- Register 13 is a register to be protected, that is, a register for which protection settings can be made regarding writing.
- VM10 includes communication driver 14.
- VM11 includes communication driver 15.
- Communication drivers 14 and 15 control communication HW12 to perform data communication with other ECUs, including ECU4, via bus communication line 5.
- the HV2 functions as an operation control device that controls the operation of each of the multiple VMs 10 and 11 in a time-sharing manner with each VM 10 and 11 operating for a pre-allocated operating time for each operating cycle.
- the integrated ECU 1 controls the multiple VMs 10 and 11 using time-sharing scheduling that allocates fixed operating times to each of the multiple VMs 10 and 11.
- the integrated ECU 1 is an example of an electronic control device that includes a microcomputer 3, multiple VMs 10 and 11 operating on the microcomputer 3, and the HV2 that functions as an operation control device. Note that in this specification, the multiple VMs 10 and 11 that are currently operating may be referred to as operating machines.
- HV2 VM10, and VM11 are all realized by the CPU of microcomputer 3 executing computer programs stored in a non-transient physical storage medium to execute processes corresponding to the computer programs, that is, they are realized by software.
- the program executed by HV2 corresponds to an operation control program.
- the HV2 has two functional blocks, a first processing unit 21 and a second processing unit 22.
- the first processing unit 21 can execute a switching process to switch between operating machines. Each process executed by the first processing unit 21 corresponds to a first process.
- the second processing unit 22 can execute a prohibition process to prohibit the execution of a switching process and an authorization process to permit the execution of a switching process. Each process executed by the second processing unit 22 corresponds to a second process.
- the operating machine is configured to send a prohibition request when starting a specific process that must be executed sequentially, that is, a process that cannot be interrupted or is atomic, and to send a permission request when the specific process is completed.
- “processes that must be executed sequentially” includes not only processes that will not be established and will fail if not executed sequentially, but also processes that will not provide the processing results desired by the user if not executed sequentially, that is, processes for which it is desirable to execute them sequentially.
- the second processing unit 22 When the second processing unit 22 receives a prohibition request, it executes a judgment process to determine whether the remaining time, which is the time from that point until the time when the operating time has elapsed, is equal to or greater than a predetermined set time. If the result of the judgment process shows that the remaining time is equal to or greater than the set time, the second processing unit 22 executes the prohibition process, and if the remaining time is less than the set time, it does not execute the prohibition process. When the second processing unit 22 receives a permission request, it executes the permission process. The operating machine executes a specific process during the prohibition period, which is the period during which the prohibition process is being executed.
- the first processing unit 21 is capable of extending the operating time by a predetermined margin time during the prohibited period.
- the second processing unit 22 executes a judgment process using the time from when the prohibition request is received until the extended operating time has elapsed as the remaining time.
- an available time that can be used as margin time is set for each operating cycle.
- the first processing unit 21 extends the operating time by consuming the required margin time from the available time. In other words, the margin time is allocated and used from the available time.
- the first processing unit 21 can allocate at least a portion of the remaining time to the operating time of the last operating machine. If the specific process has not been completed when the operating time has elapsed during the prohibited period, the first processing unit 21 can determine that an abnormality has occurred and execute one or both of a switching process and a notification process that notifies the outside of the abnormality. If the specific process has not been completed when the operating time has elapsed during the prohibited period, the first processing unit 21 can determine that an abnormality has occurred and execute a notification process that notifies the outside of the abnormality when it receives a permission request in the next or subsequent operating cycles.
- the first processing unit 21 can cause the operating machine to repeatedly transmit the prohibition request until the prohibition process is executed. If the prohibition process is not executed after the operating machine transmits a prohibition request, the first processing unit 21 can place the operating machine in a standby state for a period until the switching process is executed, or place the operating machine in a state in which it can execute a process different from the specific process. If the prohibition process is not executed after the operating machine transmits a prohibition request, the first processing unit 21 can execute the switching process before the operating time allocated to the operating machine has elapsed.
- the set time can be set by the following first setting method or second setting method.
- the first setting method the set time is set in advance for each of multiple virtual machines.
- the set time can be set based on the time required for a specific process that the virtual machine to be set is likely to execute. If there is one specific process that the virtual machine is likely to execute, the set time can be set to a time corresponding to the time required for that specific process. Note that the time corresponding to the time required for the specific process includes not only the same time as the time required for the specific process, but also a time with a specified margin added to that time.
- the set time can be set to a time corresponding to the longest time required for each of the multiple specific processes.
- the longest time required for each of the multiple specific processes does not only include a time equal to the longest time required for each of the multiple specific processes, but also includes a time with a specified margin added to that time.
- the second processing unit 22 when the second processing unit 22 receives a prohibition request, it sets the set time based on the time required for the specific process to be started by the operating machine that sent the prohibition request.
- the set time can be set to a time corresponding to the time required for the specific process to be started by the operating machine that sent the prohibition request. Note that the time corresponding to the time required for the specific process includes not only the same time as the time required for the specific process, but also a time with a specified margin added to that time.
- each term may be expressed differently as follows: Specific process ⁇ Task Switching process starts ⁇ VM switching Operation cycle ⁇ HV cycle Available time ⁇ Overall margin time
- the HV cycle is 1000 ⁇ sec, and the total margin time is 50 ⁇ sec.
- the period when the operating machine is VM10 is represented as "VM10”
- the period when the operating machine is VM11 is represented as “VM11”
- the period when the first processing unit 21 is executing switching processing is represented as "HV”
- the period when the operating machine is executing a task is represented as "Task”
- the period when the microcontroller 3 is transitioning to a mode that reduces power consumption is represented as "Halt”
- the period when prohibited processing is being executed is represented as "disable”.
- FIG. 4 The first operation example shown in Fig. 4 is based on the assumption that the VM10 starts executing a task during its operation and completes the task without interruption.
- the VM10 transmits a prohibition request to the HV2 when a predetermined time has elapsed since the VM10 was switched to the operating machine.
- the HV2 receives the prohibition request transmitted from the VM10, it executes a determination process.
- the remaining time plus 50 ⁇ s which is the unused time of the total margin time, is assumed to be longer than the set time.
- HV2 executes the prohibition process at the time when it receives the prohibition request.
- VM10 which is the operating machine, starts executing a task.
- the task is not completed when the initial operating time allocated to VM10 has elapsed. Therefore, the first processing unit 21 extends the operating time until the task being executed by VM10 is completed. In this case, the operating time is extended by consuming 20 ⁇ s from the total margin time.
- FIG. 9 The sixth operation example shown in Fig. 9 is based on the assumption that the VM10 starts executing a task in the middle of its operation time and completes the task without interrupting it or extending the operation time.
- the VM10 transmits a prohibition request to the HV2 when a predetermined time has elapsed since the VM10 was switched to the operation machine.
- the HV2 receives the prohibition request transmitted from the VM10, it executes a determination process.
- the third comparative operation example shown in FIG. 13 differs from the second comparative operation example in that the contents of the tasks are specified.
- the communication between the integrated ECU 1 and the ECU 4 is divided into multiple parts, and all communication data must be transmitted or received from the VM 10 to the ECU 4 within a predetermined time, for example, 100 ⁇ s.
- the VM 10 performs the above-mentioned communication as a task.
- the communication performed by the VM 10 is divided into two parts.
- VM10 transmits or receives communication data for the first time to ECU4 when a predetermined time has elapsed since VM10 was switched to the operating machine. Thereafter, the operating time allocated to VM10 ends before VM10 transmits or receives communication data for the second time to ECU4, and therefore the first processing unit 21 performs switching processing. In other words, at this point, communication processing is interrupted. Then, in the next HV cycle, VM10 transmits or receives communication data for the second time to ECU4 when VM10 is switched to the operating machine.
- VM switching occurs after the first transmission or reception of communication data, and the second transmission or reception of communication data is performed in the next HV cycle, so all communication data is not transmitted or received within 100 ⁇ s.
- VM 10 since the communication processing is completed normally, VM 10 does not retransmit or rereceive the communication data, and there is a risk that communication between the integrated ECU 1 and ECU 4 will remain unsuccessful.
- VM 10 executes the first transmission or reception of communication data to ECU 4 in that HV cycle, it can execute the second transmission or reception of communication data to ECU 4 consecutively.
- all communication data can be transmitted or received within 100 ⁇ sec.
- communication processing can be completed continuously without being interrupted by VM switching.
- the write control for the register 13 includes three processes: "protection release” for releasing the protection setting of the register 13, "write” for writing to the register 13, and "protection reset” for resetting the protection setting of the register 13.
- VM10 starts write control when a predetermined time has elapsed since VM10 was switched to the operating machine. That is, VM10 first performs the protection release process, and then starts the write process. Thereafter, the operating time allocated to VM10 ends before VM10 completes the write process, and so the first processing unit 21 performs the switch process. That is, in this case, VM switching occurs during the write process, which causes the write control to be interrupted.
- the fifth comparative operation example shown in Fig. 16 differs from the fourth comparative operation example in the timing at which VM switching occurs. That is, in the fifth comparative operation example, the operation time allocated to VM 10 ends after the execution of the protection release process and before the start of the write process, so the switching process is performed by the first processing unit 21. That is, in this case, VM switching occurs after the execution of the protection release process, which causes the write control to be interrupted.
- VM11 which is subsequently switched to the operating machine, will perform write control on register 13, which will result in another VM11 resetting protection on register 13.
- VM10 attempts to start a write process at the point when it is switched to the operating machine, but because register 13 is set to protection, it will be unable to perform the write, and as a result, VM10 will not be able to successfully complete its write control on register 13.
- the eleventh operation example shown in FIG. 17 assumes write control to the register 13 as the specific content of the task, as in the fourth and fifth comparative operation examples.
- the VM 10 transmits a prohibition request to the HV 2 when a predetermined time has elapsed since the VM 10 was switched to the operating machine.
- the HV 2 receives the prohibition request transmitted from the VM 10
- the HV 2 executes a judgment process. In this case, it is assumed that the time obtained by adding 50 ⁇ s, which is the unused time of the total margin time, to the remaining time is longer than the set time. Then, the HV 2 executes the prohibition process at the time when the prohibition request is received.
- VM10 which is the operating machine, starts write control. That is, VM10 first performs the protection release process, and then starts the write process. Thereafter, the initial operating time allocated to VM10 ends before VM10 completes the write process. In this case, however, the first processing unit 21 extends the operating time until the task being executed by VM10 is completed.
- VM10 can continuously execute all processes in the write control in that HV cycle.
- the problems that arise in the fourth and fifth comparison operation examples do not occur, and a series of processes in the write control can be completed normally.
- write control will be executed during the operation time in the next HV cycle, as in the seventh operation example.
- case 3 20 ⁇ sec is consumed as margin time in VM10, and 25 ⁇ sec is consumed as margin time in VM11.
- case 2 is a case in which VM10 and VM11 share the total margin time, with 5 ⁇ sec remaining in the total margin time.
- case 4 40 ⁇ sec is consumed as margin time in VM10, and the remaining 10 ⁇ sec is unused and remains as a remainder.
- each process executed when the HV2 receives a prohibition request can be as shown in Fig. 19.
- the second processing unit 22 executes the process as shown in Fig. 19 every time a prohibition request is received.
- step S101 it is determined whether or not a time T1 obtained by adding a usable margin time to the time from when the prohibition request is received to when the operation time has elapsed is equal to or greater than a set time T2.
- step S101 becomes "YES” and the process proceeds to step S102.
- step S102 prohibition processing is executed. After step S102 is executed, this process ends.
- time T1 is less than time T2, step S101 becomes "NO”, the prohibition processing of step S102 is not executed, and this process ends.
- each process executed by the first processing unit 21 of the HV 2 during the prohibition period can be as shown in Fig. 20.
- the first processing unit 21 executes the process as shown in Fig. 20 at predetermined intervals during the prohibition period.
- step S201 it is determined whether or not the time T3, which is the margin time consumed during the prohibition period, is equal to or greater than the set margin time T4.
- step S201 becomes "YES” and the process proceeds to step S202.
- step S202 a sticking error is issued and notified.
- Step S202 corresponds to the notification process.
- step S203 a sticking error flag is set.
- step S204 switching process is performed.
- step S204 this process ends.
- time T3 is less than time T4
- step S201 becomes "NO" and the process ends without executing steps S202 to S204, i.e., notification process, switching process, and other processes.
- a sticking error is issued and a sticking error flag is set, and then VM switching is performed, thereby ensuring real-time performance for the entire HV2.
- issuing a sticking error can be used as a basis for deciding whether to re-execute processing on the VM or to restart the VM.
- the first processing unit 21 can perform each process according to a modified example shown in FIG. 21, instead of each process according to this embodiment shown in FIG. 20.
- Each process according to the modified example shown in FIG. 21 is executed when the operation time that is the initial operation time allocated to the VM plus a set margin time, that is, the operation time including the margin, ends, and differs from each process according to this embodiment shown in FIG. 20 in that step S211 is provided instead of step S201.
- step S211 it is determined whether or not the state is prohibited in which execution of the switching process is prohibited.
- step S211 becomes "YES” and the process proceeds to step S202.
- step S211 becomes "NO” and the process proceeds to step S204, where the switching process is performed and then the process ends.
- a sticking error flag is set, that is, it is determined that the VM is stuck.
- each process executed when the HV2 receives a permission request can be as shown in FIG. 22.
- the second processing unit 22 executes the process as shown in FIG. 22 every time a permission request is received.
- step S301 it is determined whether a sticking error flag is set, in other words, whether the sticking error flag is set.
- the sticking error flag being set is referred to as an error flag being "on.”
- step S302 a sticking error is issued and notified.
- Step S302 corresponds to the notification process. After step S302 is executed, the process proceeds to step S303, where the permission process is executed. After step S303 is executed, this process ends. On the other hand, if the sticking error flag is not set, step S301 becomes "NO", and the process of step S302, i.e., the notification process, is not executed, and the process proceeds to step S303, where the permission process is executed. According to this type of process, by issuing a sticking error even when the permission process is executed, it is possible to clearly indicate that the execution of a specific process has ended after a sticking of the prohibited period has occurred.
- the HV 2 included in the integrated ECU 1 of this embodiment controls the operation of each of the multiple VMs 10 and 11 in a time-division manner for an operation time previously allocated for each HV cycle, and includes a first processing unit 21 capable of executing a switching process for switching between operating machines, and a second processing unit 22 capable of executing a prohibition process for prohibiting the execution of the switching process and a permission process for permitting the execution of the switching process.
- the VMs 10 and 11 are configured to transmit a prohibition request when starting a specific process, and transmit a permission request when completing the specific process.
- the second processing unit 22 When the second processing unit 22 receives a prohibition request, it executes a judgment process to determine whether the remaining time, which is the time from that point until the end of the operating time, is equal to or greater than a predetermined set time, and as a result, if the remaining time is equal to or greater than the set time, it executes the prohibition process, and if the remaining time is less than the set time, it does not execute the prohibition process. In addition, when the second processing unit 22 receives a permission request, it executes the permission process. The operating machine executes a specific process during the prohibition period, which is the period during which the prohibition process is being executed.
- the above configuration prevents the occurrence of a switching process that switches the operating machine when the operating machine is executing a specific process. In this way, it is possible to ensure consistent operation until the specific process is completed. Furthermore, with the above configuration, when the second processing unit 22 executes a judgment process to determine that the remaining time is less than the set time, in other words, when it is highly unlikely that the specific process that is about to be started can be completed before the operating time has elapsed, the prohibition process is not executed, and therefore the specific process is not executed. In this way, the specific process that is unlikely to be completed in that HV cycle can be executed in the next HV cycle. In this way, the configuration of this embodiment has the excellent effect of preventing the specific process, which is a process that must be executed continuously, from being interrupted by the switching process.
- the set time can be set in advance for each of the multiple VMs 10 and 11. In this way, the operating time of each VM can be managed uniformly.
- the set time can be set based on the time required for the specific process started by the operating machine that sent the prohibition request. In this way, in cases where the specific process cannot be completed normally for some reason, it is possible to keep the extension of the operating time to a minimum, thereby ensuring real-time performance.
- the first processing unit 21 can put the operating machine in a state in which it can execute a process other than the specific process for the period until the switching process is executed. In this way, it becomes possible to execute other processes during the time until the VM switching, and as a result, the resources of the microcomputer 3 can be used effectively. If the prohibition process is not executed after the operating machine sends a prohibition request, the first processing unit 21 can execute the switching process before the operating time allocated to the operating machine has elapsed. In this way, if there is no process that can be executed in the operating machine other than the specific process, it becomes possible to operate another VM, and as a result, the resources of the microcomputer 3 can be used effectively.
- the second embodiment will be described below with reference to FIGS.
- a change is made to the setting of the available time in the first embodiment.
- an available time is set for each of the multiple VMs 10 and 11.
- the first processing unit 21 extends the operating time by consuming the required margin time from the available time corresponding to the operating machine.
- the margin time is allocated and used from the available time corresponding to the operating machine.
- the available time may be referred to as the per-VM margin time.
- the per-VM margin time is 20 ⁇ sec for both VM10 and VM11.
- Twelfth Operation Example The twelfth operation example shown in Fig. 23 is based on the assumption that the VM10 starts executing a task during its operation and completes the task without interruption.
- the VM10 transmits a prohibition request to the HV2 when a predetermined time has elapsed since the VM10 was switched to the operating machine.
- the HV2 Upon receiving the prohibition request transmitted from the VM10, the HV2 executes a determination process.
- the remaining time plus 20 ⁇ s which is the per-VM margin time corresponding to VM10, is assumed to be longer than the set time.
- HV2 executes the prohibition process at the time when the prohibition request is received.
- VM10 which is the operating machine, starts executing a task.
- the task is not completed when the initial operating time allocated to VM10 has elapsed. Therefore, the first processing unit 21 extends the operating time until the task being executed by VM10 is completed. In this case, the operating time is extended by consuming only 20 ⁇ s, which is the entire per-VM margin time.
- VM10 can extend its operation time up to the per-VM margin time, and can continuously complete a task that is an uninterruptible process.
- VM10 sends a permission request when it completes the task.
- HV2 ends the prohibition process and executes the permission process. This causes the first processing unit 21 to execute the switching process. In this way, even if the operation time is extended, real-time performance can be ensured by immediately switching VMs after the task is completed.
- FIG. 24 Thirteenth Operation Example
- the thirteenth operation example shown in FIG. 24 is based on the assumption that VM10 and VM11 start executing a task during their operation time and complete the task without interruption.
- the operation of VM10 during its operation time is the same as that of the twelfth operation example.
- VM11 transmits a prohibition request to HV2 when a predetermined time has elapsed since VM11 was switched to the operating machine.
- HV2 Upon receiving the prohibition request transmitted from VM11, HV2 executes a determination process.
- the remaining time plus 20 ⁇ s which is the per-VM margin time corresponding to VM11, is assumed to be longer than the set time.
- HV2 executes the prohibition process at the time when it receives the prohibition request.
- VM11 which is the operating machine, begins executing a task. In this case, the task is not completed when the initial operating time assigned to VM11 has elapsed.
- the first processing unit 21 extends the operating time until the task being executed by VM11 is completed.
- the operating time is extended by consuming 20 ⁇ s, which is the entire per-VM margin time.
- VM11 can extend its operating time up to the per-VM margin time, and can continuously complete a task that is an uninterruptible process.
- VM11 sends a permission request when it completes the task.
- HV2 receives the permission request, it ends the prohibition process and executes the permission process. This causes the first processing unit 21 to execute the switching process.
- a margin time is given to each VM, so that a VM with a relatively high priority does not monopolize the margin time, and as a result, the same amount of margin time can be secured for a VM with a relatively low priority.
- FIG. 25 The fourteenth operation example shown in Fig. 25 is based on the assumption that the VM10 starts executing a task in the middle of its operation time and does not complete the task.
- the VM10 transmits a prohibition request to the HV2 when a predetermined time has elapsed since the VM10 was switched to the operating machine.
- the HV2 receives the prohibition request transmitted from the VM10, it executes a determination process.
- the remaining time plus 20 ⁇ s which is the per-VM margin time corresponding to VM10, is assumed to be longer than the set time.
- HV2 executes the prohibition process at the time when the prohibition request is received.
- VM10 which is the operating machine, begins executing a task.
- the task is not completed when the initial operating time assigned to VM10 has elapsed. Therefore, the first processing unit 21 extends the operating time until the task being executed by VM10 is completed.
- the first processing unit 21 determines that an abnormality has occurred and executes notification processing.
- notification processing a fixation error is issued to indicate that it has been detected that the prohibited period during which VM switching is prohibited has become fixed.
- the first processing unit 21 executes switching processing while VM switching remains in this prohibited state.
- VM11 sends a prohibition request to HV2 when a predetermined time has elapsed since VM11 was switched to the operating machine.
- HV2 receives the prohibition request sent from VM11, it executes a judgment process. In this case, it is assumed that the remaining time plus 20 ⁇ s, which is the per-VM margin time corresponding to VM11, is longer than the set time. In this case, HV2 executes the prohibition process at the time it receives the prohibition request. In conjunction with the start of the prohibition process, VM11, which is the operating machine, starts executing the task.
- the task is not completed when the initial operation time allocated to VM11 has elapsed. Therefore, the first processing unit 21 extends the operation time until the task being executed by VM11 is completed. In this case, the operation time is extended by consuming 20 ⁇ s, which is the entire margin time per VM.
- VM11 sends a permission request when it completes the task.
- HV2 receives the permission request, it ends the prohibition process and executes the permission process.
- the first processing unit 21 executes the switching process.
- VM10 resumes task execution from the point at which it is switched to the operating machine.
- the task executed by VM10 is completed when a predetermined time has elapsed since VM10 was switched to the operating machine.
- VM10 transmits a permission request when the task is completed.
- HV2 receives the permission request, it ends the prohibition process and executes the permission process.
- HV2 also executes a notification process, which issues a sticking error. After that, when the operating time allocated to VM10 has elapsed, the first processing unit 21 executes the switching process.
- a per-VM margin time is set for each of the multiple VMs 10 and 11, and the first processing unit 21 extends the operating time by consuming the required margin time from the per-VM margin time corresponding to the operating machine.
- all of the VMs 10 and 11 can use the per-VM margin time of 20 ⁇ s as their margin time, regardless of their priority.
- a margin time is given to each VM, so that a VM with a relatively high priority does not monopolize the margin time, and margin time can be secured for a VM with a relatively low priority as well.
- the second embodiment will be described below with reference to FIG.
- a change is made to the first embodiment with respect to the processing content of the first processing unit 21.
- the first processing unit 21 does not extend the operation time during the prohibited period. That is, in this embodiment, a margin time such as an overall margin time or a margin time for each VM is not set.
- FIG. 26 The fifteenth operation example shown in Fig. 26 is based on the assumption that the VM10 starts executing a task in the middle of its operation time and does not complete the task.
- the VM10 transmits a prohibition request to the HV2 when a predetermined time has elapsed since the VM10 was switched to the operating machine.
- the HV2 receives the prohibition request transmitted from the VM10, it executes a determination process.
- HV2 executes the prohibition process at the time when the prohibition request is received.
- VM10 which is the operating machine, starts executing a task.
- the task has not been completed even when the operating time allocated to VM10 has elapsed due to some reason such as an abnormality or a malfunction.
- the first processing unit 21 determines that an abnormality has occurred and executes a notification process.
- a fixation error is issued to indicate that it has been detected that the prohibited period in which VM switching is prohibited has become fixed.
- the first processing unit 21 executes the switching process while VM switching remains in this prohibited state.
- VM11 sends a prohibition request to HV2 when a predetermined time has elapsed since VM11 was switched to the operating machine.
- HV2 receives the prohibition request sent from VM11, it executes a judgment process. In this case, it is assumed that the remaining time is longer than the set time. Then, HV2 executes the prohibition process at the time when it receives the prohibition request.
- VM11 which is the operating machine, starts executing a task. In this case, the task is completed before the operating time assigned to VM11 has elapsed.
- VM11 sends a permission request when it completes the task.
- HV2 receives the permission request, it ends the prohibition process and executes the permission process. As a result, the first processing unit 21 executes the switching process.
- VM10 resumes task execution from the point at which it is switched to the operating machine.
- the task executed by VM10 is completed when a predetermined time has elapsed since VM10 was switched to the operating machine.
- VM10 transmits a permission request when the task is completed.
- HV2 receives the permission request, it ends the prohibition process and executes the permission process.
- HV2 also executes a notification process, which issues a sticking error. After that, when the operating time allocated to VM10 has elapsed, the first processing unit 21 executes the switching process.
- no margin time such as an overall margin time or a margin time for each VM is set.
- more operating time can be allocated to all of the VMs 10 and 11 than in the above-mentioned embodiments in which a margin time is set.
- This disclosure is not limited to the HV2 that controls each of the multiple VMs that run on the microcomputer 3 that constitutes the integrated ECU 1 mounted on the vehicle using time-sharing scheduling, but can be applied to general operation control devices that control each of the multiple VMs that run on a computer to run in a time-sharing manner for a predetermined operating time assigned to each operating cycle.
- control unit and the method described in the present disclosure may be realized by a dedicated computer provided by configuring a processor and memory programmed to execute one or more functions embodied in a computer program.
- control unit and the method described in the present disclosure may be realized by a dedicated computer provided by configuring a processor with one or more dedicated hardware logic circuits.
- control unit and the method described in the present disclosure may be realized by one or more dedicated computers configured by combining a processor and memory programmed to execute one or more functions with a processor configured with one or more hardware logic circuits.
- the computer program may be stored in a computer-readable non-transient tangible recording medium as instructions executed by the computer.
- An operation control device that performs control for operating each of a plurality of virtual machines (10, 11) in a time-sharing manner for an operation time previously assigned to each operation cycle, If one of the plurality of virtual machines that is currently in operation is defined as an operating machine, A first processing unit (21) capable of executing a switching process for switching the operating machine; a second processing unit (22) capable of executing a prohibition process for prohibiting execution of the switching process and an authorization process for authorization of execution of the switching process; Equipped with the operating machine is adapted to transmit a prohibition request when starting a specific process that must be executed continuously, and to transmit a permission request when completing the specific process; The second processing unit is When the prohibition request is received, a determination process is executed to determine whether or not a remaining time, which is a time from the prohibition request to a time when the operation time has elapsed, is equal to or longer than a predetermined set time.
- the operation machine is a motion control device that executes the specific process during a prohibited period during which the prohibited process is being executed.
- the first processing unit is configured to extend the operation time by a predetermined margin time during the prohibited period,
- the second processing unit executes the judgment process by setting the remaining time as the time from the time the prohibition request is received to the time the extended operation time has elapsed.
- An available time is set for each operation cycle, The operation control device according to claim 2, wherein the first processing unit extends the operation time by consuming the required margin time from the available time.
- an available time is set for each of the plurality of virtual machines, The operation control device according to [2], wherein the first processing unit is configured to extend the operation time by consuming the required margin time from the available time corresponding to the operating machine.
- the first processing unit is configured to allocate at least a portion of the remainder of the available time to the operating time of the operating machine that operates last in the operating cycle when the operating machine that operates last is started.
- An operation control program to be executed by an operation control device (2) that controls each of a plurality of virtual machines (VM10, VM11) to operate in a time-division manner for an operation time previously assigned to each operation cycle, the program comprising: If one of the plurality of virtual machines that is currently in operation is defined as an operating machine, A first process capable of executing a switching process for switching the operating machine; a second process capable of executing a prohibition process for prohibiting execution of the switching process and an authorization process for authorization of execution of the switching process; Including, the operating machine is adapted to transmit a prohibition request when starting a specific process that must be executed continuously, and to transmit a permission request when completing the specific process; In the second process, When the prohibition request is received, a determination process is executed to determine whether or not a remaining time, which is a time from the prohibition request to a time when the operation time has elapsed, is equal to or longer than a predetermined set time.
- the operating machine is an operating control program that executes the specific process during a prohibited period during which the prohibited process is being executed.
- An electronic control device including: a computer (3); a plurality of virtual machines (VM10, VM11) that operate on the computer; and an operation control device (2) that controls each of the plurality of virtual machines to operate in a time-sharing manner for an operation time that is assigned in advance for each operation cycle, If one of the plurality of virtual machines that is currently in operation is defined as an operating machine,
- the motion control device includes: A first processing unit (21) capable of executing a switching process for switching the operating machine; a second processing unit (22) capable of executing a prohibition process for prohibiting execution of the switching process and an authorization process for authorization of execution of the switching process; Equipped with the operating machine is adapted to transmit a prohibition request when starting a specific process that must be executed continuously, and to transmit a permission request when completing the specific process;
- the second processing unit is When the prohibition request is received, a determination process is executed to determine whether or not a remaining time, which is a time from the prohibition request to a time when the operation time has elapsed, is equal to or
- the operating machine is an electronic control device that executes the specific process during a prohibited period during which the prohibited process is being executed.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
Abstract
第1処理部(21)は、前記複数の仮想マシンのうち動作中のものである動作マシンを切り替える切り替え処理を実行する。第2処理部(22)は、前記切り替え処理の実行を禁止する禁止処理および前記切り替え処理の実行を許可する許可処理を実行する。前記動作マシンは、特定処理を開始する際に禁止要求を送信するとともに前記特定処理を完了した際に許可要求を送信する。前記第2処理部は、前記禁止要求を受信したとき、残り時間が所定の設定時間以上の時間であるか否かを判断する判断処理を実行し、前記判断処理の結果、前記残り時間が前記設定時間以上の時間である場合には前記禁止処理を実行し、前記残り時間が前記設定時間未満の時間である場合には前記禁止処理を実行しない。前記第2処理部は、前記許可要求を受信したとき、前記許可処理を実行する。前記動作マシンは、前記禁止処理が実行されている期間である禁止期間中に前記特定処理を実行する。
Description
本出願は、2023年11月28日に出願された日本出願番号2023-200713号に基づくもので、ここにその記載内容を援用する。
本開示は、複数の仮想マシンのそれぞれを動作周期毎に予め割り当てられた動作時間ずつ時分割で動作させるための制御を行う動作制御装置、動作制御装置に実行させる動作制御プログラムおよび動作制御装置を備えた電子制御装置に関する。
例えば自動車などの車両には複数の電子制御装置が搭載されており、それら複数の電子制御装置は、互いの間で通信を行い連携して各種の処理を行うようになっている。なお、本明細書では、電子制御装置のことをECUと省略することがある。近年、車両に搭載されるECUの数が増加する傾向であることから、複数のECUを1つに統合するという方法が実施されている。このように統合されたECUである統合ECUでは、従来単独で動作していた複数のECUの機能が、ハイパーバイザーを介して1つのマイクロコンピュータ上に複数の仮想マシンとして搭載されることになる。なお、本明細書では、マイクロコンピュータのことをマイコンと省略することがある。
従来のECUでは1つのマイコンのリソースを1つのECUの機能により占有可能であったが、統合ECUでは1つのマイコンのリソースを複数の仮想マシンのそれぞれが使用することになる。そのため、統合ECUでは、複数の仮想マシンに対して固定の動作時間を割り当てる時分割スケジューリングでの制御が行われる。時分割スケジューリングにより、複数の仮想マシンのそれぞれは、予め割り当てられた動作時間で個別に動作するため、各仮想マシン間で協調してリソースを割り振る必要がなくなる。
上記構成では、所定の仮想マシンが動作する際、動作時間が消費された段階で動作中の仮想マシンを切り替える切り替え処理が実行されることになる。つまり、上記構成では、動作中の処理が完了したか否かに関係なく切り替え処理が実行される可能性がある。そのため、上記構成では、連続して実行しなければならない処理、つまり中断不可能な処理またはアトミックな処理の実行中に切り替え処理が実行されてしまい、その結果、中断不可能な処理などが中断されてしまう、という課題が生じることになる。
このような課題に関連する従来技術として特許文献1、2に開示される技術を挙げることができる。まず、特許文献1には、タスクをいくつかのグループに分割し、それらグループの処理時間を適応的に時分割する方法が開示されている。続いて、特許文献2には、中断不可能な処理中に対して割り込みタスクが発生した場合、その割り込みタスクを検出して割り込みタスクを無効化し、中断不可能な処理が完了後に割り込みタスクを実行することで中断不可能な処理を保証する方法が開示されている。
しかし、特許文献1に開示される従来技術では、中断不可能な処理について考慮されておらず、また、特許文献2に開示される従来技術では、動作中の仮想マシンを切り替える切り替え処理のような事前に割り込みが発生すると分かっている処理と中断不可能な処理が完了せずに割り込みタスクが実行されない可能性があることを考慮できていない。このようなことから、上記従来技術では、上記した課題を解決することが困難であった。
本開示の目的は、連続して実行しなければならない処理が切り替え処理により中断されることを防止することができる動作制御装置、動作制御プログラムおよび電子制御装置を提供することにある。
本開示の一態様において、動作制御装置は、複数の仮想マシンのそれぞれを動作周期毎に予め割り当てられた動作時間ずつ時分割で動作させるための制御を行う。この場合、前記複数の仮想マシンのうち動作中のものを動作マシンとする。前記動作制御装置は、前記動作マシンを切り替える切り替え処理を実行することができる第1処理部と、前記切り替え処理の実行を禁止する禁止処理および前記切り替え処理の実行を許可する許可処理を実行することができる第2処理部と、を備える。前記動作マシンは、連続して実行しなければならない処理、つまり中断不可能な処理またはアトミックな処理である特定処理を開始する際に禁止要求を送信するとともに、前記特定処理を完了した際に許可要求を送信するようになっている。
前記第2処理部は、前記禁止要求を受信したとき、その時点から前記動作時間が経過する時点までの時間である残り時間が所定の設定時間以上の時間であるか否かを判断する判断処理を実行する。前記第2処理部は、前記判断処理の結果、前記残り時間が前記設定時間以上の時間である場合には前記禁止処理を実行するとともに、前記残り時間が前記設定時間未満の時間である場合には前記禁止処理を実行しないようになっている。また、前記第2処理部は、前記許可要求を受信したとき、前記許可処理を実行するようになっている。前記動作マシンは、前記禁止処理が実行されている期間である禁止期間中に前記特定処理を実行する。
上記構成によれば、動作マシンが特定処理を実行しているときに動作マシンを切り替える切り替え処理が発生することが防止される。このようにすれば、特定処理が完了するまで一貫した動作を保証することができる。また、上記構成によれば、第2処理部が判断処理を実行することにより、残り時間が設定時間未満の時間である場合、言い換えると、これから開始しようとする特定処理を動作時間が経過するまでに完了することができる可能性が極めて低い場合、禁止処理が実行されず、それに伴い、特定処理も実行されない。このようにすれば、その動作周期で完了する見込みのない特定処理を、次の動作周期にて実行することができる。このように、上記構成によれば、連続して実行しなければならない処理である特定処理が切り替え処理により中断されることを防止することができるという優れた効果が得られる。
本開示についての上記目的およびその他の目的、特徴や利点は、添付の図面を参照しながら下記の詳細な記述により、より明確になる。その図面は、
図1は、第1実施形態に係る統合ECUおよびECUの構成を模式的に示す図であり、
図2は、比較例に係る第1比較動作例における各部の動作内容を表すタイミングチャートであり、
図3は、比較例に係る第2比較動作例における各部の動作内容を表すタイミングチャートであり、
図4は、第1実施形態に係る第1動作例における各部の動作内容を表すタイミングチャートであり、
図5は、第1実施形態に係る第2動作例における各部の動作内容を表すタイミングチャートであり、
図6は、第1実施形態に係る第3動作例における各部の動作内容を表すタイミングチャートであり、
図7は、第1実施形態に係る第4動作例における各部の動作内容を表すタイミングチャートであり、
図8は、第1実施形態に係る第5動作例における各部の動作内容を表すタイミングチャートであり、
図9は、第1実施形態に係る第6動作例における各部の動作内容を表すタイミングチャートであり、
図10は、第1実施形態に係る第7動作例における各部の動作内容を表すタイミングチャートであり、
図11は、第1実施形態に係る第8動作例における各部の動作内容を表すタイミングチャートであり、
図12は、第1実施形態に係る第9動作例における各部の動作内容を表すタイミングチャートであり、
図13は、比較例に係る第3比較動作例における各部の動作内容を表すタイミングチャートであり、
図14は、第1実施形態に係る第10動作例における各部の動作内容を表すタイミングチャートであり、
図15は、比較例に係る第4比較動作例における各部の動作内容を表すタイミングチャートであり、
図16は、比較例に係る第5比較動作例における各部の動作内容を表すタイミングチャートであり、
図17は、第1実施形態に係る第11動作例における各部の動作内容を表すタイミングチャートであり、
図18は、第1実施形態に係る全体マージン時間の割り振りに関する具体例を示す図であり、
図19は、第1実施形態に係る禁止要求を受信したときに実行される各処理の具体的な内容の一例を模式的に示す図であり、
図20は、第1実施形態に係る禁止期間に実行される各処理の具体的な内容の一例を模式的に示す図であり、
図21は、変形例に係る動作時間が終了したときに実行される各処理の具体的な内容の一例を模式的に示す図であり、
図22は、第1実施形態に係る許可要求を受信したときに実行される各処理の具体的な内容の一例を模式的に示す図であり、
図23は、第2実施形態に係る第12動作例における各部の動作内容を表すタイミングチャートであり、
図24は、第2実施形態に係る第13動作例における各部の動作内容を表すタイミングチャートであり、
図25は、第2実施形態に係る第14動作例における各部の動作内容を表すタイミングチャートであり、
図26は、第3実施形態に係る第15動作例における各部の動作内容を表すタイミングチャートである。
以下、複数の実施形態について図面を参照して説明する。なお、各実施形態において実質的に同一の構成には同一の符号を付して説明を省略する。
(第1実施形態)
以下、第1実施形態について図1~図22を参照して説明する。
(第1実施形態)
以下、第1実施形態について図1~図22を参照して説明する。
図1に示すように、本実施形態の統合ECU1は、例えば自動車などの車両に搭載されるものであり、従来単独で動作していた複数のECUの機能がハイパーバイザー2を介して1つのマイコン3のチップ上に搭載されたものである。複数のECUの具体例としては、例えばエンジンECU、エアコンECU、セントラルゲートウェイECUおよびボデーECUなどを挙げることができる。この場合、複数のECUの機能は、仮想マシンという単位で搭載される。なお、本明細書では、ハイパーバイザーのことをHVと省略することがあるとともに、仮想マシンのことをVMと省略することがある。
統合ECU1は、ECU-AおよびECU-Bという2つのECUに相当する機能を備えている。統合ECU1は、3つ以上のECUに相当する機能を備えていてもよい。ECU4は、統合ECU1として統合されることなく、従来のECUと同様に独立して設けられている。統合ECU1およびECU4は、バス通信線5を介して接続されており、これにより互いの間で通信を行うことが可能となっている。
ECU4は、マイコン6を備えている。マイコン6は、そのハードウェアとして図示しないCPU、各種の記憶装置、各種のペリフェラルなどを備えている。各種のペリフェラルには、通信を行うための通信ハードウェア7などが含まれる。なお、本明細書では、ハードウェアのことをHWと省略することがある。ECU4は、その主たる機能を実現するためのECU-0アプリケーションA0を備えている。なお、本明細書ではアプリケーションのことをアプリと省略することがある。また、以下の説明および図面では、ECU-0アプリA0のことをアプリA0と省略することがある。
ECU4は、通信ドライバ8を備えている。通信ドライバ8は通信HW7を制御して統合ECU1を含む他のECUとの間でバス通信線5を介したデータ通信を行うものである。アプリA0および通信ドライバ8は、いずれもマイコン6が備えるCPUが非遷移的実体的記憶媒体に格納されているコンピュータプログラムを実行してコンピュータプログラムに対応する処理を実行することにより実現されている、つまりソフトウェアにより実現されている。
統合ECU1は、2つのVM10およびVM11を備えている。この場合、ECU-Aの機能はVM10により実現され、ECU-Bの機能はVM11により実現される。VM10は、ECU-Aの主たる機能を実現するためのECU-AアプリケーションA1を備えている。VM11は、ECU-Bの主たる機能を実現するためのECU-BアプリA2を備えている。なお、以下の説明および図面では、ECU-AアプリA1およびECU-BアプリA2のことを、それぞれアプリA1およびアプリA2と省略することがある。
HV2は、マイコン3上でVM10およびVM11を動作させるためのものである。マイコン3は、コンピュータの一例であり、そのハードウェアとして図示しないCPU、各種の記憶装置、各種のペリフェラルなどを備えている。各種のペリフェラルには、通信を行うための通信HW12などが含まれる。各種の記憶装置には、レジスタ13が含まれる。レジスタ13は、プロテクション対象のレジスタ、つまり書き込みに関する保護設定を行うことができるレジスタである。VM10は、通信ドライバ14を備えている。VM11は、通信ドライバ15を備えている。通信ドライバ14、15は、通信HW12を制御してECU4を含む他のECUとの間でバス通信線5を介したデータ通信を行うものである。
この場合、HV2は、複数のVM10およびVM11のそれぞれを動作周期毎に予め割り当てられた動作時間ずつ時分割で動作させるための制御を行う動作制御装置として機能する。つまり、統合ECU1では、複数のVM10およびVM11に対して固定の動作時間を割り当てる時分割スケジューリングでの制御が行われる。また、この場合、統合ECU1は、マイコン3と、マイコン3上で動作する複数のVM10およびVM11と、動作制御装置として機能するHV2と、を備えた電子制御装置の一例である。なお、本明細書では、複数のVM10およびVM11のうち動作中のものを動作マシンと称することがある。
HV2、VM10およびVM11は、いずれもマイコン3が備えるCPUが非遷移的実体的記憶媒体に格納されているコンピュータプログラムを実行してコンピュータプログラムに対応する処理を実行することにより実現されている、つまりソフトウェアにより実現されている。なお、上記したコンピュータプログラムのうちHV2が実行するプログラムは、動作制御プログラムに相当する。
HV2は、第1処理部21および第2処理部22といった2つの機能ブロックを備えている。第1処理部21は、動作マシンを切り替える切り替え処理を実行することができる。第1処理部21により実行される各処理は、第1処理に相当する。第2処理部22は、切り替え処理の実行を禁止する禁止処理および切り替え処理の実行を許可する許可処理を実行することができる。第2処理部22により実行される各処理は、第2処理に相当する。
この場合、動作マシンは、連続して実行しなければならない処理、つまり中断不可能な処理またはアトミックな処理である特定処理を開始する際に禁止要求を送信するとともに、特定処理を完了した際に許可要求を送信するようになっている。本明細書において、「連続して実行しなければならない処理」とは、連続して実行しなかった場合に処理が成立せずに失敗となるような処理だけでなく、連続して実行しなかった場合にユーザが所望するレベルの処理結果が得られないような処理、つまり連続して実行することが望ましいような処理をも含む。
第2処理部22は、禁止要求を受信したとき、その時点から動作時間が経過する時点までの時間である残り時間が所定の設定時間以上の時間であるか否かを判断する判断処理を実行する。第2処理部22は、判断処理の結果、残り時間が設定時間以上の時間である場合には禁止処理を実行するとともに、残り時間が設定時間未満の時間である場合には禁止処理を実行しないようになっている。第2処理部22は、許可要求を受信したとき、許可処理を実行するようになっている。動作マシンは、禁止処理が実行されている期間である禁止期間中に特定処理を実行するようになっている。
第1処理部21は、禁止期間中、動作時間を所定のマージン時間だけ延長することができるようになっている。第1処理部21により上記延長が行われる場合、第2処理部22は、禁止要求を受信した時点から延長した動作時間が経過する時点までの時間を残り時間として判断処理を実行することになる。本実施形態では、動作周期毎にマージン時間として使用することができる使用可能時間が設定されている。第1処理部21は、使用可能時間から必要とするマージン時間を消費する形で動作時間の延長を行うようになっている。すなわち、マージン時間は、使用可能時間から割り当てられて使用されるようになっている。
第1処理部21は、動作周期において最後に動作する動作マシンの動作が開始される際に使用可能時間に余りがある場合、その余りの少なくとも一部を最後に動作する動作マシンの動作時間に割り当てることができる。第1処理部21は、禁止期間において動作時間が経過した時点で特定処理が完了していない場合、異常が発生したと判断して切り替え処理および異常を外部に通知する通知処理の一方または双方を実行することができる。第1処理部21は、禁止期間において動作時間が経過した時点で特定処理が完了していない場合、異常が発生したと判断して次回以降の動作周期において許可要求を受信すると異常を外部に通知する通知処理を実行することができる。
第1処理部21は、動作マシンが禁止要求を送信した後に禁止処理が実行されなかった場合、禁止処理が実行されるまで動作マシンに禁止要求の送信を繰り返し実行させることができる。第1処理部21は、動作マシンが禁止要求を送信した後に禁止処理が実行されなかった場合、切り替え処理が実行されるまでの期間、動作マシンを待機状態とする、または、動作マシンを特定処理とは異なる別の処理を実行可能な状態とすることができる。第1処理部21は、動作マシンが禁止要求を送信した後に禁止処理が実行されなかった場合、動作マシンに割り当てられた動作時間が経過する前に切り替え処理を実行することができる。
設定時間は、以下の第1設定手法または第2設定手法により設定することができる。第1設定手法では、設定時間は、複数の仮想マシンのそれぞれ毎に予め設定される。この場合、設定時間は、その設定対象となる仮想マシンが実行する可能性がある特定処理に要する時間に基づいて設定することができる。設定時間は、仮想マシンが実行する可能性がある特定処理が1つである場合、その特定処理に要する時間に対応する時間に設定することができる。なお、特定処理に要する時間に対応する時間とは、特定処理に要する時間と同じ時間だけでなく、その時間に対して所定のマージンを持たせた時間をも含む。
また、設定時間は、仮想マシンが実行する可能性がある特定処理が複数ある場合、複数の特定処理のそれぞれに要する時間のうち最も長い時間に対応する時間に設定することができる。なお、複数の特定処理のそれぞれに要する時間のうち最も長い時間とは、複数の特定処理のそれぞれに要する時間のうち最も長い時間と同じ時間だけでなく、その時間に対して所定のマージンを持たせた時間をも含む。
第2手法では、第2処理部22は、禁止要求を受信したとき、禁止要求を送信した動作マシンが開始する特定処理に要する時間に基づいて設定時間を設定する。設定時間は、禁止要求を送信した動作マシンが開始する特定処理に要する時間に対応する時間に設定することができる。なお、特定処理に要する時間に対応する時間とは、特定処理に要する時間と同じ時間だけでなく、その時間に対して所定のマージンを持たせた時間をも含む。
次に、上記構成の作用について、図2~図21を参照して説明する。
以下の説明では、各用語について下記のように別の言い方をする場合がある。
特定処理 → タスク
切り替え処理が開始されること → VM切り替え
動作周期 → HV周期
使用可能時間 → 全体マージン時間
以下の説明では、各用語について下記のように別の言い方をする場合がある。
特定処理 → タスク
切り替え処理が開始されること → VM切り替え
動作周期 → HV周期
使用可能時間 → 全体マージン時間
この場合、HV周期が1000μ秒になっており、全体マージン時間が50μ秒になっているものとする。図2~図17などでは、動作マシンがVM10である期間を「VM10」と表し、動作マシンがVM11である期間を「VM11」と表し、第1処理部21が切り替え処理を実行している期間を「HV」と表し、動作マシンがタスクを実行している期間を「Task」と表し、マイコン3が消費電力を低減するモードに遷移している期間を「Halt」と表し、禁止処理が実行されている期間を「disable」と表している。
以下の説明では、本実施形態との比較のため、本実施形態による動作例の説明に加え、従来技術に相当する比較例による動作例である比較動作例の説明も行うこととする。なお、比較例は、本実施形態に対して第2処理部22を省くとともに第2処理部22により実行される各処理に関連する処理も省いたものとなっている。
[1-1]第1比較動作例
図2に示す第1比較動作例は、VM10が動作時間の途中においてタスクの実行を開始するとともに、そのタスクを動作時間内に中断することなく完了することができた場合を想定したものである。この場合、VM10は、自身が動作マシンへと切り替えられた時点から所定時間が経過した時点においてタスクの実行を開始する。この場合、VM10により実行されるタスクは、動作時間が終了する時点よりも前の時点において完了となっている。その後、VM10に割り当てられた動作時間が経過した時点において、第1処理部21は、切り替え処理を行う。
図2に示す第1比較動作例は、VM10が動作時間の途中においてタスクの実行を開始するとともに、そのタスクを動作時間内に中断することなく完了することができた場合を想定したものである。この場合、VM10は、自身が動作マシンへと切り替えられた時点から所定時間が経過した時点においてタスクの実行を開始する。この場合、VM10により実行されるタスクは、動作時間が終了する時点よりも前の時点において完了となっている。その後、VM10に割り当てられた動作時間が経過した時点において、第1処理部21は、切り替え処理を行う。
[1-2]第2比較動作例
図3に示す第2比較動作例は、VM10が動作時間の途中においてタスクの実行を開始するとともに、そのタスクを動作時間内に完了することができなかった場合を想定したものである。この場合、VM10は、自身が動作マシンへと切り替えられた時点から所定時間が経過した時点においてタスクの実行を開始する。この場合、VM10により実行されるタスクは、VM10に割り当てられた動作時間が経過した時点でも完了していないが、この時点において第1処理部21により切り替え処理が行われることから、タスクが中断される。
図3に示す第2比較動作例は、VM10が動作時間の途中においてタスクの実行を開始するとともに、そのタスクを動作時間内に完了することができなかった場合を想定したものである。この場合、VM10は、自身が動作マシンへと切り替えられた時点から所定時間が経過した時点においてタスクの実行を開始する。この場合、VM10により実行されるタスクは、VM10に割り当てられた動作時間が経過した時点でも完了していないが、この時点において第1処理部21により切り替え処理が行われることから、タスクが中断される。
このように中断されたタスクは、次のHV周期において再開される。すなわち、次のHV周期において、VM10は、自身が動作マシンへと切り替えられた時点からタスクの実行を再開する。この場合、VM10により実行されるタスクは、VM10が動作マシンへと切り替えられた時点から所定時間が経過した時点において完了となっている。このように、比較例では、タスクの実行中にVM切り替えが発生した場合、タスクが中断されてしまい、期待する機能が動作しないことが考えられる。これに対し、本実施形態では、タスクの実行中にVM切り替えが発生しない機能を導入することにより、このような課題の解決を図るようになっている。
[2-1]第1動作例
図4に示す第1動作例は、VM10が動作時間の途中においてタスクの実行を開始するとともにそのタスクを中断することなく完了することができた場合を想定したものである。この場合、VM10は、自身が動作マシンへと切り替えられた時点から所定時間が経過した時点において、HV2に対して禁止要求を送信する。HV2は、VM10から送信された禁止要求を受信すると、判断処理を実行する。
図4に示す第1動作例は、VM10が動作時間の途中においてタスクの実行を開始するとともにそのタスクを中断することなく完了することができた場合を想定したものである。この場合、VM10は、自身が動作マシンへと切り替えられた時点から所定時間が経過した時点において、HV2に対して禁止要求を送信する。HV2は、VM10から送信された禁止要求を受信すると、判断処理を実行する。
この場合、残り時間に対して全体マージン時間のうち未だ使用されていない時間である50μ秒を加えた時間が、設定時間よりも長いものであるとする。そうすると、HV2は、禁止要求を受信した時点において禁止処理を実行する。禁止処理の開始に合わせて、動作マシンであるVM10は、タスクの実行を開始する。この場合、タスクは、VM10に割り当てられた当初の動作時間が経過した時点では完了しない。そのため、第1処理部21は、VM10により実行されているタスクが完了するまで動作時間を延長する。この場合、全体マージン時間から20μ秒だけ消費して動作時間の延長が行われる。
このような第1動作例によれば、VM10は、その動作時間が20μ秒だけ延長されることにより、中断不可能な処理であるタスクを連続して完了させることができる。VM10は、タスクを完了した際に許可要求を送信する。HV2は、許可要求を受信した時点において、禁止処理を終了して許可処理を実行する。これにより、第1処理部21は、切り替え処理を実行する。このように、動作時間が延長された場合であっても、タスク完了後に直ちにVM切り替えが行われることによりリアルタイム性を確保することができる。
[2-2]第2動作例
図5に示す第2動作例は、VM10、VM11が動作時間の途中においてタスクの実行を開始するとともにそのタスクを中断することなく完了することができた場合を想定したものである。この場合、VM10の動作時間における動作は、第1動作例と同様である。そして、この場合、VM11は、自身が動作マシンへと切り替えられた時点から所定時間が経過した時点において、HV2に対して禁止要求を送信する。HV2は、VM11から送信された禁止要求を受信すると、判断処理を実行する。
図5に示す第2動作例は、VM10、VM11が動作時間の途中においてタスクの実行を開始するとともにそのタスクを中断することなく完了することができた場合を想定したものである。この場合、VM10の動作時間における動作は、第1動作例と同様である。そして、この場合、VM11は、自身が動作マシンへと切り替えられた時点から所定時間が経過した時点において、HV2に対して禁止要求を送信する。HV2は、VM11から送信された禁止要求を受信すると、判断処理を実行する。
この場合、残り時間に対して全体マージン時間のうち未だ使用されていない時間である30μ秒を加えた時間が、設定時間よりも長いものであるとする。そうすると、HV2は、禁止要求を受信した時点において禁止処理を実行する。禁止処理の開始に合わせて、動作マシンであるVM11は、タスクの実行を開始する。この場合、タスクは、VM11に割り当てられた当初の動作時間が経過した時点では完了しない。
そのため、第1処理部21は、VM11により実行されているタスクが完了するまで動作時間を延長する。この場合、全体マージン時間から10μ秒だけ消費して動作時間の延長が行われる。このような第2動作例によれば、VM11は、その動作時間が10μ秒だけ延長されることにより、中断不可能な処理であるタスクを連続して完了させることができる。VM11は、タスクを完了した際に許可要求を送信する。HV2は、許可要求を受信した時点において、禁止処理を終了して許可処理を実行する。これにより、第1処理部21は、切り替え処理を実行する。
このように、動作時間が延長された場合であっても、タスク完了後に直ちにVM切り替えが行われることによりリアルタイム性を確保することができる。第2動作例から分かるように、本実施形態の構成によれば、全体マージン時間に未だ使用されていない時間がある限り、複数のVMから要求された分だけマージン時間を割り当てることができる。本実施形態のように、HV周期全体でマージン時間を設定することで適応的にVM毎に要求するマージン時間を分配することができる。
[2-3]第3動作例
図6に示す第3動作例は、VM10が動作時間の途中においてタスクの実行を開始するとともにそのタスクが完了しなかった場合を想定したものである。この場合、VM10は、自身が動作マシンへと切り替えられた時点から所定時間が経過した時点において、HV2に対して禁止要求を送信する。HV2は、VM10から送信された禁止要求を受信すると、判断処理を実行する。
図6に示す第3動作例は、VM10が動作時間の途中においてタスクの実行を開始するとともにそのタスクが完了しなかった場合を想定したものである。この場合、VM10は、自身が動作マシンへと切り替えられた時点から所定時間が経過した時点において、HV2に対して禁止要求を送信する。HV2は、VM10から送信された禁止要求を受信すると、判断処理を実行する。
この場合、残り時間に対して全体マージン時間のうち未だ使用されていない時間である50μ秒を加えた時間が、設定時間よりも長いものであるとする。そうすると、HV2は、禁止要求を受信した時点において禁止処理を実行する。禁止処理の開始に合わせて、動作マシンであるVM10は、タスクの実行を開始する。この場合、タスクは、VM10に割り当てられた当初の動作時間が経過した時点では完了しない。そのため、第1処理部21は、VM10により実行されているタスクが完了するまで動作時間を延長する。
ただし、この場合、異常、故障などの何らかの理由により、全体マージン時間の全てである50μ秒を消費して動作時間の延長が行われても、タスクが完了しなかったものとする。そうすると、第1処理部21は、異常が発生したと判断し、通知処理を実行する。通知処理では、VM切り替えが禁止された状態である禁止期間が固着したことを検知した旨を表す固着エラーが発行される。また、このとき、第1処理部21は、このようにVM切り替えが禁止された状態のまま、切り替え処理を行う。
そして、この場合、VM11は、自身が動作マシンへと切り替えられた時点から所定時間が経過した時点において、HV2に対して禁止要求を送信する。HV2は、VM11から送信された禁止要求を受信すると、判断処理を実行する。この場合、VM10により全体マージン時間の全てが使用されたことに起因して、残り時間が設定時間より短いものであるとする。そのため、HV2が禁止処理を実行せず、その結果、VM11は、このHV周期においてタスクの実行を開始することができない。
このように、動作マシンであるVM11が禁止要求を送信した後に禁止処理が実行されなかった場合、第1処理部21は、切り替え処理が実行されるまでの期間、動作マシンであるVM11を待機状態とする。なお、この場合、第1処理部21は、切り替え処理が実行されるまでの期間、動作マシンであるVM11をタスクとは異なる別の処理を実行可能な状態とすることもできる。その後、VM11に割り当てられた動作時間が経過した時点において、第1処理部21は、切り替え処理を行う。
次のHV周期において、VM10は、自身が動作マシンへと切り替えられた時点からタスクの実行を再開する。この場合、VM10により実行されるタスクは、VM10が動作マシンへと切り替えられた時点から所定時間が経過した時点において完了となっている。VM10は、タスクを完了した際に許可要求を送信する。HV2は、許可要求を受信した時点において、禁止処理を終了して許可処理を実行する。また、このとき、HV2は、通知処理を行い、これにより固着エラーが発行される。このようにすれば、統合ECU1において、VMの再起動や処理の中断などの判断を行うことができる。
その後、VM10に割り当てられた動作時間が経過した時点において、第1処理部21は、切り替え処理を行う。VM11は、自身が動作マシンへと切り替えられた時点において、HV2に対して禁止要求を送信する。HV2は、VM11から送信された禁止要求を受信すると、判断処理を実行する。この場合、残り時間に対して全体マージン時間のうち未だ使用されていない時間である50μ秒を加えた時間が、設定時間よりも長いものであるとする。そうすると、HV2は、禁止要求を受信した時点において禁止処理を実行する。禁止処理の開始に合わせて、動作マシンであるVM11は、タスクの実行を開始する。
この場合、VM11により実行されるタスクは、VM11が動作マシンへと切り替えられた時点から所定時間が経過した時点において完了となっている。VM11は、タスクを完了した際に許可要求を送信する。HV2は、許可要求を受信した時点において、禁止処理を終了して許可処理を実行する。その後、VM11に割り当てられた動作時間が経過した時点において、第1処理部21は、切り替え処理を行う。第3動作例から分かるように、本実施形態の構成によれば、優先度が高いVMをHV周期の先頭から順に動作させるようにすることで、優先度が高いVMに対して優先的にマージン時間を割り当てることができる。
[2-4]第4動作例
図7に示す第4動作例は、第3動作例に対して次の点が異なっている。すなわち、第4動作例では、動作マシンであるVM11が禁止要求を送信した後に禁止処理が実行されなかった場合、第1処理部21は、禁止処理が実行されるまで動作マシンであるVM11に禁止要求の送信を繰り返し実行させるようになっている。なお、図7では、繰り返し送信される禁止要求について、単なる矢印により表している。
図7に示す第4動作例は、第3動作例に対して次の点が異なっている。すなわち、第4動作例では、動作マシンであるVM11が禁止要求を送信した後に禁止処理が実行されなかった場合、第1処理部21は、禁止処理が実行されるまで動作マシンであるVM11に禁止要求の送信を繰り返し実行させるようになっている。なお、図7では、繰り返し送信される禁止要求について、単なる矢印により表している。
[2-5]第5動作例
図8に示す第5動作例は、第3動作例に対してVM11に関連する動作が異なっている。すなわち、第5動作例では、VM11は、自身が動作マシンへと切り替えられた時点から所定時間が経過した時点において、HV2に対して禁止要求を送信する。HV2は、VM11から送信された禁止要求を受信すると、判断処理を実行する。この場合、VM10により全体マージン時間の全てが使用されているためにVM11の動作時間の延長はできないものの、その時点から延長無しの動作時間が経過する時点までの残り時間が設定時間より短いものであるとする。
図8に示す第5動作例は、第3動作例に対してVM11に関連する動作が異なっている。すなわち、第5動作例では、VM11は、自身が動作マシンへと切り替えられた時点から所定時間が経過した時点において、HV2に対して禁止要求を送信する。HV2は、VM11から送信された禁止要求を受信すると、判断処理を実行する。この場合、VM10により全体マージン時間の全てが使用されているためにVM11の動作時間の延長はできないものの、その時点から延長無しの動作時間が経過する時点までの残り時間が設定時間より短いものであるとする。
そうすると、HV2は、禁止要求を受信した時点において禁止処理を実行する。禁止処理の開始に合わせて、動作マシンであるVM11は、タスクの実行を開始する。この場合、VM11により実行されるタスクは、禁止処理が開始された時点から所定時間が経過した時点において完了となっている。VM11は、タスクを完了した際に許可要求を送信する。HV2は、許可要求を受信した時点において、禁止処理を終了して許可処理を実行する。その後、VM11に割り当てられた動作時間が経過した時点において、第1処理部21は、切り替え処理を行う。
第5動作例から分かるように、本実施形態の構成によれば、全体マージン時間の全てが使用されており、マージン時間がない場合においても、タスクが完了するまでの時間を確保できる場合には禁止処理が行われるようになっており、その結果、当該動作時間中にタスクを連続して完了させることができる。
[2-6]第6動作例
図9に示す第6動作例は、VM10が動作時間の途中においてタスクの実行を開始するとともに、動作時間を延長することなくそのタスクを中断することなく完了することができた場合を想定したものである。この場合、VM10は、自身が動作マシンへと切り替えられた時点から所定時間が経過した時点において、HV2に対して禁止要求を送信する。HV2は、VM10から送信された禁止要求を受信すると、判断処理を実行する。
図9に示す第6動作例は、VM10が動作時間の途中においてタスクの実行を開始するとともに、動作時間を延長することなくそのタスクを中断することなく完了することができた場合を想定したものである。この場合、VM10は、自身が動作マシンへと切り替えられた時点から所定時間が経過した時点において、HV2に対して禁止要求を送信する。HV2は、VM10から送信された禁止要求を受信すると、判断処理を実行する。
この場合、残り時間に対して全体マージン時間のうち未だ使用されていない時間である50μ秒を加えた時間が、設定時間よりも長いものであるとする。そうすると、HV2は、禁止要求を受信した時点において禁止処理を実行する。禁止処理の開始に合わせて、動作マシンであるVM10は、タスクの実行を開始する。この場合、VM10により実行されるタスクは、禁止処理が開始された時点から所定時間が経過した時点において完了となっている。VM10は、タスクを完了した際に許可要求を送信する。HV2は、許可要求を受信した時点において、禁止処理を終了して許可処理を実行する。その後、VM10に割り当てられた動作時間が経過した時点において、第1処理部21は、切り替え処理を行う。
[2-7]第7動作例
図10に示す第7動作例は、VM10が動作時間の途中においてタスクの実行を開始しようとしたものの、そのHV周期における動作時間でのタスク実行ができずに次のHV周期における動作時間でのタスク実行となる場合を想定したものである。この場合、VM10は、自身が動作マシンへと切り替えられた時点から所定時間が経過した時点において、HV2に対して禁止要求を送信する。HV2は、VM10から送信された禁止要求を受信すると、判断処理を実行する。
図10に示す第7動作例は、VM10が動作時間の途中においてタスクの実行を開始しようとしたものの、そのHV周期における動作時間でのタスク実行ができずに次のHV周期における動作時間でのタスク実行となる場合を想定したものである。この場合、VM10は、自身が動作マシンへと切り替えられた時点から所定時間が経過した時点において、HV2に対して禁止要求を送信する。HV2は、VM10から送信された禁止要求を受信すると、判断処理を実行する。
この場合、残り時間に対して全体マージン時間のうち未だ使用されていない時間である50μ秒を加えた時間が、設定時間よりも短いものであるとする。そのため、HV2が禁止処理を実行せず、その結果、VM10は、このHV周期においてタスクの実行を開始することができない。そして、次のHV周期において、VM10は、自身が動作マシンへと切り替えられた時点でHV2に対して禁止要求を送信する。HV2は、VM10から送信された禁止要求を受信すると、判断処理を実行する。この場合、残り時間に対して全体マージン時間のうち未だ使用されていない時間である50μ秒を加えた時間が、設定時間よりも長いものであるとする。
そうすると、HV2は、禁止要求を受信した時点において禁止処理を実行する。禁止処理の開始に合わせて、動作マシンであるVM10は、タスクの実行を開始する。この場合、VM10により実行されるタスクは、VM10が動作マシンへと切り替えられた時点から所定時間が経過した時点において完了となっている。VM10は、タスクを完了した際に許可要求を送信する。HV2は、許可要求を受信した時点において、禁止処理を終了して許可処理を実行する。その後、VM10に割り当てられた動作時間が経過した時点において、第1処理部21は、切り替え処理を行う。
第7動作例から分かるように、本実施形態の構成によれば、動作マシンからHVへ禁止要求禁止が送信されたとき、HV2は残り時間が設定時間未満の時間であると判断した場合、禁止処理を実行しないため、そのHV周期における動作時間において完了する見込みのないタスクを次のHV周期における動作時間において実施することができる。このように、本実施形態の構成によれば、事前にVM切り替えまでの時間が分かるため、むやみに動作時間を延長したりすることなく、また他のVMへ影響を及ぼしたりすることなく、リアルタイム性を確保することができる。
[2-8]第8動作例
図11に示す第8動作例は、HV周期において最後に動作する動作マシンの動作が開始される際に全体マージン時間に余りがある場合を想定したものである。この場合、VM10およびVM11のいずれもタスクを実行しなかったことから、VM11の動作が開始される際に全体マージン時間が消費されておらず50μ秒そのまま残っているものとする。第1処理部21は、このような全体マージン時間の余りの少なくとも一部を最後に動作する動作マシンであるVM11の動作時間に割り当てるようになっている。このようにすれば、マイコン3のリソースを有効活用し、何の処理も動作しない時間を無くすことができる。
図11に示す第8動作例は、HV周期において最後に動作する動作マシンの動作が開始される際に全体マージン時間に余りがある場合を想定したものである。この場合、VM10およびVM11のいずれもタスクを実行しなかったことから、VM11の動作が開始される際に全体マージン時間が消費されておらず50μ秒そのまま残っているものとする。第1処理部21は、このような全体マージン時間の余りの少なくとも一部を最後に動作する動作マシンであるVM11の動作時間に割り当てるようになっている。このようにすれば、マイコン3のリソースを有効活用し、何の処理も動作しない時間を無くすことができる。
[2-9]第9動作例
図12に示す第9動作例は、第7動作例に対して次の点が異なっている。なお、図12の上段には、各動作例の比較のため、第7動作例を説明する際に使用した図10と同様の図も記載されている。すなわち、図12の下段に示すように、第9動作例では、第1処理部21は、動作マシンであるVM10が禁止要求を送信した後に禁止処理が実行されなかった場合、動作マシンであるVM10に割り当てられた動作時間が経過する前に切り替え処理を実行するようになっている。
図12に示す第9動作例は、第7動作例に対して次の点が異なっている。なお、図12の上段には、各動作例の比較のため、第7動作例を説明する際に使用した図10と同様の図も記載されている。すなわち、図12の下段に示すように、第9動作例では、第1処理部21は、動作マシンであるVM10が禁止要求を送信した後に禁止処理が実行されなかった場合、動作マシンであるVM10に割り当てられた動作時間が経過する前に切り替え処理を実行するようになっている。
このような第9動作例によれば、動作マシンであるVM10が禁止要求を送信した後に禁止処理が実行されなかった場合、VM10に割り当てられた動作時間の残りの時間が、他のVM11に分け与えられる。このようにすれば、VM10において他に動作可能な処理が存在しない場合にVM10で無駄な時間を消費することなく、その分の時間を他のVM11の動作時間として割り当てることが可能となり、その結果、マイコン3のリソースを有効活用することができる。
[1-3]第3比較動作例
図13に示す第3比較動作例は、第2比較動作例に対し、タスクの内容が具体化されている点が異なっている。この場合、統合ECU1およびECU4の間で行われる通信は、複数に分割されており、全ての通信データをVM10からECU4へと例えば100μ秒である所定時間以内に送信または受信する必要があるものとする。VM10は、タスクとして、上記した通信を行うようになっている。VM10が行う通信は、2回に分割されているものとする。
図13に示す第3比較動作例は、第2比較動作例に対し、タスクの内容が具体化されている点が異なっている。この場合、統合ECU1およびECU4の間で行われる通信は、複数に分割されており、全ての通信データをVM10からECU4へと例えば100μ秒である所定時間以内に送信または受信する必要があるものとする。VM10は、タスクとして、上記した通信を行うようになっている。VM10が行う通信は、2回に分割されているものとする。
この場合、VM10は、自身が動作マシンへと切り替えられた時点から所定時間が経過した時点においてECU4に対する1回目の通信データの送信または受信を実行する。その後、VM10がECU4に対する2回目の通信データの送信または受信を実行するよりも前の時点においてVM10に割り当てられた動作時間が終了することから第1処理部21により切り替え処理が行われる。つまり、この時点で、通信の処理が中断される。そして、次のHV周期において、VM10は、自身が動作マシンへと切り替えられた時点においてECU4に対する2回目の通信データの送信または受信を実行する。
このように、第3比較動作例では、1回目の通信データの送信または受信の後にVM切り替えが発生し、次のHV周期で2回目の通信データの送信または受信が行われているため、100μ秒以内に全ての通信データが送信または受信されていない。ただし、この場合、VM10としては、通信の処理が正常に完了しているため、通信データの再送信または再受信を行うことがなく、統合ECU1およびECU4の間の通信が失敗したままになるおそれがある。
[2-10]第10動作例
図14に示す第10動作例は、第1動作例に対し、タスクの内容が具体化されている点が異なっている。タスクの具体的な内容は、第3比較動作例と同様である。この場合、VM10は、自身が動作マシンへと切り替えられた時点から所定時間が経過した時点において、HV2に対して禁止要求を送信する。HV2は、VM10から送信された禁止要求を受信すると、判断処理を実行する。
図14に示す第10動作例は、第1動作例に対し、タスクの内容が具体化されている点が異なっている。タスクの具体的な内容は、第3比較動作例と同様である。この場合、VM10は、自身が動作マシンへと切り替えられた時点から所定時間が経過した時点において、HV2に対して禁止要求を送信する。HV2は、VM10から送信された禁止要求を受信すると、判断処理を実行する。
この場合、残り時間に対して全体マージン時間のうち未だ使用されていない時間である50μ秒を加えた時間が、設定時間よりも長いものであるとする。そうすると、HV2は、禁止要求を受信した時点において禁止処理を実行する。禁止処理の開始に合わせて、動作マシンであるVM10は、ECU4に対する1回目の通信データの送信または受信を実行する。この場合も、第3比較動作例と同様、VM10がECU4に対する2回目の通信データの送信または受信を実行するよりも前に時点においてVM10に割り当てられた当初の動作時間が終了する。ただし、この場合、第1処理部21は、VM10により実行されているタスクが完了するまで動作時間を延長する。
そのため、VM10は、当該HV周期において、ECU4に対する1回目の通信データの送信または受信を実行した後、それと連続してECU4に対する2回目の通信データの送信または受信を実行することができる。このように、第10動作例によれば、100μ秒以内に全ての通信データを送信または受信することができる。つまり、第10動作例によれば、通信の処理が、VM切り替えにより中断されることなく、連続して完了させることができる。
[1-4]第4比較動作例
図15に示す第4比較動作例は、タスクの具体的な内容として、レジスタ13に対する書き込み制御を想定したものである。レジスタ13に対する書き込み制御には、レジスタ13の保護設定を解除する「保護解除」、レジスタ13に対して書き込みを行う「書き込み」およびレジスタ13の保護設定を再度行う「保護再設定」といった3つの処理が含まれる。
図15に示す第4比較動作例は、タスクの具体的な内容として、レジスタ13に対する書き込み制御を想定したものである。レジスタ13に対する書き込み制御には、レジスタ13の保護設定を解除する「保護解除」、レジスタ13に対して書き込みを行う「書き込み」およびレジスタ13の保護設定を再度行う「保護再設定」といった3つの処理が含まれる。
この場合、VM10は、自身が動作マシンへと切り替えられた時点から所定時間が経過した時点において書き込み制御を開始する。すなわち、VM10は、まず保護解除の処理を行い、その後、書き込みの処理を開始する。その後、VM10が書き込みの処理を完了するよりも前の時点においてVM10に割り当てられた動作時間が終了することから第1処理部21により切り替え処理が行われる。つまり、この場合、書き込みの処理中にVM切り替えが発生し、それにより書き込み制御が中断されている。
このとき、レジスタ13の保護設定が解除されたままとなっている。そのため、この後に動作マシンへと切り替えられたVM11が、レジスタ13に対する書き込みを行う可能性があり、そうすると、他のVM11によりレジスタ13の内容が書き換えられてしまう。その後、次のHV周期において、VM10は、自身が動作マシンへと切り替えられた時点において書き込み処理を再開することになるが、前のHV周期においてレジスタ13の内容がVM11に書き換えられていることから、レジスタ13の設定に誤りが生じるおそれがある。
[1-5]第5比較動作例
図16に示す第5比較動作例は、第4比較動作例に対し、VM切り替えが発生するタイミングが異なっている。すなわち、第5比較動作例では、保護解除の処理の実行後であり且つ書き込みの処理の開始前の時点においてVM10に割り当てられた動作時間が終了することから第1処理部21により切り替え処理が行われる。つまり、この場合、保護解除の処理の実行後にVM切り替えが発生し、それにより書き込み制御が中断されている。
図16に示す第5比較動作例は、第4比較動作例に対し、VM切り替えが発生するタイミングが異なっている。すなわち、第5比較動作例では、保護解除の処理の実行後であり且つ書き込みの処理の開始前の時点においてVM10に割り当てられた動作時間が終了することから第1処理部21により切り替え処理が行われる。つまり、この場合、保護解除の処理の実行後にVM切り替えが発生し、それにより書き込み制御が中断されている。
そして、この後に動作マシンへと切り替えられたVM11がレジスタ13に対する書き込み制御を行う可能性があり、そうすると、他のVM11によりレジスタ13に対して保護再設定が行われることになる。その後、次のHV周期において、VM10は、自身が動作マシンへと切り替えられた時点において書き込み処理を開始しようとするが、レジスタ13が保護設定されているため、書き込みを行うことができなくなり、その結果、VM10によるレジスタ13の書き込み制御が正常に完了できなくなる。
[2-11]第11動作例
図17に示す第11動作例は、タスクの具体的な内容として、第4比較動作例および第5比較動作例と同様、レジスタ13に対する書き込み制御を想定したものである。この場合、VM10は、自身が動作マシンへと切り替えられた時点から所定時間が経過した時点において、HV2に対して禁止要求を送信する。HV2は、VM10から送信された禁止要求を受信すると、判断処理を実行する。この場合、残り時間に対して全体マージン時間のうち未だ使用されていない時間である50μ秒を加えた時間が、設定時間よりも長いものであるとする。そうすると、HV2は、禁止要求を受信した時点において禁止処理を実行する。
図17に示す第11動作例は、タスクの具体的な内容として、第4比較動作例および第5比較動作例と同様、レジスタ13に対する書き込み制御を想定したものである。この場合、VM10は、自身が動作マシンへと切り替えられた時点から所定時間が経過した時点において、HV2に対して禁止要求を送信する。HV2は、VM10から送信された禁止要求を受信すると、判断処理を実行する。この場合、残り時間に対して全体マージン時間のうち未だ使用されていない時間である50μ秒を加えた時間が、設定時間よりも長いものであるとする。そうすると、HV2は、禁止要求を受信した時点において禁止処理を実行する。
禁止処理の開始に合わせて、動作マシンであるVM10は、書き込み制御を開始する。すなわち、VM10は、まず保護解除の処理を行い、その後、書き込みの処理を開始する。その後、VM10が書き込みの処理を完了するよりも前の時点においてVM10に割り当てられた当初の動作時間が終了する。ただし、この場合、第1処理部21は、VM10により実行されているタスクが完了するまで動作時間を延長する。
そのため、VM10は、当該HV周期において、書き込み制御における全ての処理を連続して実行することができる。このように、本実施形態の構成によれば、第4比較動作例および第5比較動作例において生じる問題が発生することなく、書き込み制御における一連の処理を正常に完了することができる。なお、第11動作例でも、判断処理において、残り時間に対してマージン時間を加えた時間が設定時間よりも短いものであるとの結果が得られた場合には、第7動作例と同様、次のHV周期における動作時間で書き込み制御が実行されることになる。
[3]全体マージン時間の割り振り
図18に示すように、HV周期毎に設定された全体マージン時間がどのように各VM10、VM11に割り振られて消費されるのかは、図18に示すように、様々なケースが考えられる。ケース1では、VM10においてマージン時間として30μ秒が消費されており、残りの20μ秒が消費されずに余りとなっている。ケース2では、VM10においてマージン時間として30μ秒が消費されるとともにVM11においてマージン時間として20μ秒が消費されている。つまり、ケース2は、VM10とVM11とで全体マージン時間を分け合うとともに、全体マージン時間に余りが生じていないケースである。
図18に示すように、HV周期毎に設定された全体マージン時間がどのように各VM10、VM11に割り振られて消費されるのかは、図18に示すように、様々なケースが考えられる。ケース1では、VM10においてマージン時間として30μ秒が消費されており、残りの20μ秒が消費されずに余りとなっている。ケース2では、VM10においてマージン時間として30μ秒が消費されるとともにVM11においてマージン時間として20μ秒が消費されている。つまり、ケース2は、VM10とVM11とで全体マージン時間を分け合うとともに、全体マージン時間に余りが生じていないケースである。
ケース3では、VM10においてマージン時間として20μ秒が消費されるとともにVM11においてマージン時間として25μ秒が消費されている。つまり、ケース2は、VM10とVM11とで全体マージン時間を分け合うとともに、全体マージン時間に5μ秒の余りが生じているケースである。ケース4では、VM10においてマージン時間として40μ秒が消費されており、残りの10μ秒が消費されずに余りとなっている。
ケース5では、VM10においてマージン時間として50μ秒が消費されており、全体マージン時間に余りが生じていない。ケース6では、VM11においてマージン時間として50μ秒が消費されており、全体マージン時間に余りが生じていない。ケース7では、VM10、VM11のいずれにおいてもマージン時間が消費されておらず、全体マージン時間の全てである50μ秒の余りが生じている。このような全体マージン時間の割り振りに関するケースの数は、統合ECU1に搭載されるVMの数に応じてさらに増加することになる。
[4-1]禁止要求を受信したときに実行される各処理の具体的な内容
HV2が禁止要求を受信したときに実行する各処理は、具体的には、図19に示すような内容とすることができる。第2処理部22は、禁止要求を受信するたびに、図19に示すような内容の処理を実行するようになっている。ステップS101では、禁止要求を受信した時点から動作時間が経過する時点までの時間に対して使用可能なマージン時間を加えた時間T1が設定時間である時間T2以上であるか否かが判断される。
HV2が禁止要求を受信したときに実行する各処理は、具体的には、図19に示すような内容とすることができる。第2処理部22は、禁止要求を受信するたびに、図19に示すような内容の処理を実行するようになっている。ステップS101では、禁止要求を受信した時点から動作時間が経過する時点までの時間に対して使用可能なマージン時間を加えた時間T1が設定時間である時間T2以上であるか否かが判断される。
ここで、時間T1が時間T2以上である場合、ステップS101で「YES」となり、ステップS102に進む。ステップS102では、禁止処理が実行される。ステップS102の実行後、本処理が終了となる。一方、時間T1が時間T2未満である場合、ステップS101で「NO」となり、ステップS102の禁止処理が実行されることなく、本処理が終了となる。このような処理によれば、事前にVM切り替えまでの時間が分かるため、むやみに動作時間を延長したりすることなく、また他のVMへ影響を及ぼしたりすることなく、リアルタイム性を確保することができる。
[4-2]禁止期間に実行される各処理の具体的な内容
禁止期間にHV2の第1処理部21により実行される各処理は、具体的には、図20に示すような内容とすることができる。第1処理部21は、禁止期間中、所定の周期毎に、図20に示すような内容の処理を実行するようになっている。ステップS201では、禁止期間中に消費されたマージン時間である時間T3が設定されたマージン時間である時間T4以上であるか否かが判断される。
禁止期間にHV2の第1処理部21により実行される各処理は、具体的には、図20に示すような内容とすることができる。第1処理部21は、禁止期間中、所定の周期毎に、図20に示すような内容の処理を実行するようになっている。ステップS201では、禁止期間中に消費されたマージン時間である時間T3が設定されたマージン時間である時間T4以上であるか否かが判断される。
ここで、時間T3が時間T4以上である場合、ステップS201で「YES」となり、ステップS202に進む。ステップS202では、固着エラーが発行されて通知される。ステップS202は、通知処理に対応している。ステップS202の実行後はステップS203に進み、固着エラーフラグが設定される。ステップS203の実行後はステップS204に進み、切り替え処理が行われる。ステップS204の実行後、本処理が終了となる。一方、時間T3が時間T4未満である場合、ステップS201で「NO」となり、ステップS202~S204の処理、つまり通知処理および切り替え処理などの処理が実行されることなく、本処理が終了となる。
このような処理によれば、消費されたマージン時間が設定されたマージン時間と同じになった場合に固着エラーを発行するとともに固着エラーフラグを設定し、その後にVM切り替えを行うようになっているため、HV2全体でのリアルタイム性が保証される。また、上記処理によれば、固着エラーを発行することでVMに対して処理を再度実行させることや、VMの再起動を行う判断材料とすることができる。
なお、第1処理部21は、図20に示した本実施形態に係る各処理に代えて、図21に示すような内容の変形例に係る各処理を行うことができる。図21に示す変形例による各処理は、VMに割り当てられた当初の動作時間に設定されたマージン時間を加えた動作時間、つまりマージン込みの動作時間が終了したときに実行されるものであり、図20に示した本実施形態による各処理に対し、ステップS201に代えてステップS211が設けられている点が異なっている。ステップS211では、切り替え処理の実行が禁止された禁止状態であるか否かが判断される。
ここで、禁止状態である場合、ステップS211で「YES」となり、ステップS202に進む。一方、禁止状態ではない場合、ステップS211で「NO」となり、ステップS204に進み、切り替え処理が行われた後に本処理が終了となる。このような変形例によれば、設定されたマージン時間を加えた動作時間が終了したときに切り替え処理の実行が禁止された禁止状態であれば、固着エラーフラグが設定される、つまりVM固着と判断される。
[4-3]許可要求を受信したときに実行される各処理の具体的な内容
HV2が許可要求を受信したときに実行する各処理は、具体的には、図22に示すような内容とすることができる。第2処理部22は、許可要求を受信するたびに、図22に示すような内容の処理を実行するようになっている。ステップS301では、固着エラーフラグが設定されているか、言い換えると固着エラーフラグが立っているか、が判断される。なお、図22では、固着エラーフラグが立っていることをエラーフラグ「オン」と称している。ここで、固着エラーフラグが立っている場合、ステップS301で「YES」となり、ステップS302に進む。ステップS302では、固着エラーが発行されて通知される。
HV2が許可要求を受信したときに実行する各処理は、具体的には、図22に示すような内容とすることができる。第2処理部22は、許可要求を受信するたびに、図22に示すような内容の処理を実行するようになっている。ステップS301では、固着エラーフラグが設定されているか、言い換えると固着エラーフラグが立っているか、が判断される。なお、図22では、固着エラーフラグが立っていることをエラーフラグ「オン」と称している。ここで、固着エラーフラグが立っている場合、ステップS301で「YES」となり、ステップS302に進む。ステップS302では、固着エラーが発行されて通知される。
ステップS302は、通知処理に対応している。ステップS302の実行後はステップS303に進み、許可処理が実行される。ステップS303の実行後、本処理が終了となる。一方、固着エラーフラグが立っていない場合、ステップS301で「NO」となり、ステップS302の処理、つまり通知処理が実行されることなく、ステップS303に進み、許可処理が実行される。このような処理によれば、許可処理の実行時にも固着エラーを発行することにより、禁止期間の固着が生じたうえで特定処理の実行が終了したことを明確にすることができる。
以上説明した本実施形態によれば、次のような効果が得られる。
本実施形態の統合ECU1が備えるHV2は、複数のVM10、VM11のそれぞれをHV周期毎に予め割り当てられた動作時間ずつ時分割で動作させるための制御を行うものであり、動作マシンを切り替える切り替え処理を実行することができる第1処理部21と、切り替え処理の実行を禁止する禁止処理および切り替え処理の実行を許可する許可処理を実行することができる第2処理部22と、を備える。VM10、VM11は、特定処理を開始する際に禁止要求を送信するとともに、特定処理を完了した際に許可要求を送信するようになっている。
本実施形態の統合ECU1が備えるHV2は、複数のVM10、VM11のそれぞれをHV周期毎に予め割り当てられた動作時間ずつ時分割で動作させるための制御を行うものであり、動作マシンを切り替える切り替え処理を実行することができる第1処理部21と、切り替え処理の実行を禁止する禁止処理および切り替え処理の実行を許可する許可処理を実行することができる第2処理部22と、を備える。VM10、VM11は、特定処理を開始する際に禁止要求を送信するとともに、特定処理を完了した際に許可要求を送信するようになっている。
第2処理部22は、禁止要求を受信したとき、その時点から動作時間が経過する時点までの時間である残り時間が所定の設定時間以上の時間であるか否かを判断する判断処理を実行し、その結果、残り時間が設定時間以上の時間である場合には禁止処理を実行するとともに残り時間が設定時間未満の時間である場合には禁止処理を実行しないようになっている。また、第2処理部22は、許可要求を受信したとき、許可処理を実行するようになっている。動作マシンは、禁止処理が実行されている期間である禁止期間中に特定処理を実行する。
上記構成によれば、動作マシンが特定処理を実行しているときに動作マシンを切り替える切り替え処理が発生することが防止される。このようにすれば、特定処理が完了するまで一貫した動作を保証することができる。また、上記構成によれば、第2処理部22が判断処理を実行することにより、残り時間が設定時間未満の時間である場合、言い換えると、これから開始しようとする特定処理を動作時間が経過するまでに完了することができる可能性が極めて低い場合、禁止処理が実行されず、それに伴い、特定処理も実行されない。このようにすれば、そのHV周期で完了する見込みのない特定処理を、次のHV周期にて実行することができる。このように、本実施形態の構成によれば、連続して実行しなければならない処理である特定処理が切り替え処理により中断されることを防止することができるという優れた効果が得られる。
本実施形態では、切り替え処理の実行が禁止された禁止期間では、元々設定されていた動作時間をマージン時間だけ延長することが可能となっており、そのように延長された動作時間が経過するまで動作マシンによる特定処理の実行が継続される。このようにすれば、より確実に、特定処理を中断することなく、連続して完了することができる。また、本実施形態では、延長された動作時間が経過するまでに特定処理が完了しない場合には、通知処理および切り替え処理が行われる。
このようにすれば、設定されたマージン時間を超えるような動作時間の延長が行われることがなく、特定のVMだけがむやみに長い時間動作するような事態の発生が防止され、他のVMの動作時間が減少するなどの悪影響が生じることがなくなりリアルタイム性を確保することができる。また、本実施形態によれば、固着エラーを通知する通知処理が行われることにより、特定処理が完了しなかった動作マシンに対して再起動や特定処理の再実行などを行うことができる。
本実施形態では、HV周期毎に全体マージン時間が設定されており、第1処理部21は、全体マージン時間から必要とするマージン時間を消費する形で動作時間の延長を行うようになっている。このようにすれば、HV2全体でマージン時間を設定することができるため、その設定を簡易なものとすることができる。また、このようにすれば、HV周期の中で適応的に各VMが要求するマージン時間を分配することができる。さらに、このようにすれば、複数のVMのうち優先度が高いVMをHV周期の先頭から順に動作させることで、相対的に優先度の高いVMに対して優先的にマージン時間を与えることができる。
第1処理部21は、HV周期において最後に動作する動作マシンの動作が開始される際に全体マージン時間に余りがある場合、その余りの少なくとも一部を最後に動作する動作マシンの動作時間に割り当てるようになっている。このようにすれば、無駄なマージン時間を無くすことができる。第1処理部21は、禁止期間において動作時間が経過した時点で特定処理が完了していない場合、異常が発生したと判断して切り替え処理および異常を外部に通知する通知処理を実行する。このようにすれば、特定処理が正常に完了しない場合などにおいて、禁止処理が実行されたまま他のVMの動作時間に影響を与えてしまうことが防止されてリアルタイム性を確保することができるとともに、VMの再起動や特定処理の中断の判断などを行うことができる。
第1処理部21は、禁止期間において動作時間が経過した時点で特定処理が完了していない場合、異常が発生したと判断して次回以降のHV周期において許可要求を受信すると異常を外部に通知する通知処理を実行する。このようにすれば、禁止期間が固着したまま動作し続けていることを通知処理により報知することで、VMの再起動や特定処理の中断の判断などを行うことができる。
設定時間は、複数のVM10、VM11のそれぞれ毎に予め設定することができる。このようにすれば、各VMが動作する時間を一律に管理することができる。または、第2処理部22が、禁止要求を受信したとき、禁止要求を送信した動作マシンが開始する特定処理に要する時間に基づいて設定時間を設定することができる。このようにすれば、何らかの理由により特定処理を正常に完了することができなかった場合などにおいて、動作時間を延長する時間を必要最小限に抑えることが可能となり、その結果、リアルタイム性を確保することができる。
第1処理部21は、動作マシンが禁止要求を送信した後に禁止処理が実行されなかった場合、禁止処理が実行されるまで動作マシンに禁止要求の送信を繰り返し実行させることができる。このようにすれば、VM切り替えまでの時間をHV2に要求することなく、VMだけで完結して処理を行うことができる。第1処理部21は、動作マシンが禁止要求を送信した後に禁止処理が実行されなかった場合、切り替え処理が実行されるまでの期間、動作マシンを待機状態とすることができる。このようにすれば、マイコン3をスリープなどに遷移させて消費電力を低減することができる。
第1処理部21は、動作マシンが禁止要求を送信した後に禁止処理が実行されなかった場合、切り替え処理が実行されるまでの期間、動作マシンを特定処理とは異なる別の処理を実行可能な状態とすることができる。このようにすれば、VM切り替えまでの時間で他の処理を実行することが可能となり、その結果、マイコン3のリソースを有効活用することができる。第1処理部21は、動作マシンが禁止要求を送信した後に禁止処理が実行されなかった場合、動作マシンに割り当てられた動作時間が経過する前に切り替え処理を実行することができる。このようにすれば、動作マシンにおいて特定処理のほかに実行可能な処理がない場合、他のVMを動作させることが可能となり、その結果、マイコン3のリソースを有効活用することができる。
(第2実施形態)
以下、第2実施形態について図23~図25を参照して説明する。
本実施形態は、第1実施形態に対し、使用可能時間の設定について変更が加えられたものである。本実施形態では、複数のVM10、VM11のそれぞれ毎に使用可能時間が設定されている。そのうえで、第1処理部21は、動作マシンに対応する使用可能時間から必要とするマージン時間を消費する形で動作時間の延長を行うようになっている。すなわち、マージン時間は、動作マシンに対応する使用可能時間から割り当てられて使用されるようになっている。
以下、第2実施形態について図23~図25を参照して説明する。
本実施形態は、第1実施形態に対し、使用可能時間の設定について変更が加えられたものである。本実施形態では、複数のVM10、VM11のそれぞれ毎に使用可能時間が設定されている。そのうえで、第1処理部21は、動作マシンに対応する使用可能時間から必要とするマージン時間を消費する形で動作時間の延長を行うようになっている。すなわち、マージン時間は、動作マシンに対応する使用可能時間から割り当てられて使用されるようになっている。
次に、上記構成の作用について説明する。
以下の説明では、使用可能時間のことをVM毎マージン時間と称することがある。この場合、VM毎マージン時間は、VM10、VM11のいずれについても、20μ秒になっているものとする。
以下の説明では、使用可能時間のことをVM毎マージン時間と称することがある。この場合、VM毎マージン時間は、VM10、VM11のいずれについても、20μ秒になっているものとする。
[2-12]第12動作例
図23に示す第12動作例は、VM10が動作時間の途中においてタスクの実行を開始するとともにそのタスクを中断することなく完了することができた場合を想定したものである。この場合、VM10は、自身が動作マシンへと切り替えられた時点から所定時間が経過した時点において、HV2に対して禁止要求を送信する。HV2は、VM10から送信された禁止要求を受信すると、判断処理を実行する。
図23に示す第12動作例は、VM10が動作時間の途中においてタスクの実行を開始するとともにそのタスクを中断することなく完了することができた場合を想定したものである。この場合、VM10は、自身が動作マシンへと切り替えられた時点から所定時間が経過した時点において、HV2に対して禁止要求を送信する。HV2は、VM10から送信された禁止要求を受信すると、判断処理を実行する。
この場合、残り時間に対してVM10に対応するVM毎マージン時間である20μ秒を加えた時間が、設定時間よりも長いものであるとする。そうすると、HV2は、禁止要求を受信した時点において禁止処理を実行する。禁止処理の開始に合わせて、動作マシンであるVM10は、タスクの実行を開始する。この場合、タスクは、VM10に割り当てられた当初の動作時間が経過した時点では完了しない。そのため、第1処理部21は、VM10により実行されているタスクが完了するまで動作時間を延長する。この場合、VM毎マージン時間の全てである20μ秒だけ消費して動作時間の延長が行われる。
このような第12動作例によれば、VM10は、VM毎マージン時間まで、その動作時間を延長することができ、中断不可能な処理であるタスクを連続して完了させることができる。VM10は、タスクを完了した際に許可要求を送信する。HV2は、許可要求を受信した時点において、禁止処理を終了して許可処理を実行する。これにより、第1処理部21は、切り替え処理を実行する。このように、動作時間が延長された場合であっても、タスク完了後に直ちにVM切り替えが行われることによりリアルタイム性を確保することができる。
[2-13]第13動作例
図24に示す第13動作例は、VM10、VM11が動作時間の途中においてタスクの実行を開始するとともにそのタスクを中断することなく完了することができた場合を想定したものである。この場合、VM10の動作時間における動作は、第12動作例と同様である。そして、この場合、VM11は、自身が動作マシンへと切り替えられた時点から所定時間が経過した時点において、HV2に対して禁止要求を送信する。HV2は、VM11から送信された禁止要求を受信すると、判断処理を実行する。
図24に示す第13動作例は、VM10、VM11が動作時間の途中においてタスクの実行を開始するとともにそのタスクを中断することなく完了することができた場合を想定したものである。この場合、VM10の動作時間における動作は、第12動作例と同様である。そして、この場合、VM11は、自身が動作マシンへと切り替えられた時点から所定時間が経過した時点において、HV2に対して禁止要求を送信する。HV2は、VM11から送信された禁止要求を受信すると、判断処理を実行する。
この場合、残り時間に対してVM11に対応するVM毎マージン時間である20μ秒を加えた時間が、設定時間よりも長いものであるとする。そうすると、HV2は、禁止要求を受信した時点において禁止処理を実行する。禁止処理の開始に合わせて、動作マシンであるVM11は、タスクの実行を開始する。この場合、タスクは、VM11に割り当てられた当初の動作時間が経過した時点では完了しない。
そのため、第1処理部21は、VM11により実行されているタスクが完了するまで動作時間を延長する。この場合、VM毎マージン時間の全てである20μ秒だけ消費して動作時間の延長が行われる。このような第13動作例によれば、VM11は、VM毎マージン時間まで、その動作時間を延長することができ、中断不可能な処理であるタスクを連続して完了させることができる。VM11は、タスクを完了した際に許可要求を送信する。HV2は、許可要求を受信した時点において、禁止処理を終了して許可処理を実行する。これにより、第1処理部21は、切り替え処理を実行する。
このように、動作時間が延長された場合であっても、タスク完了後に直ちにVM切り替えが行われることによりリアルタイム性を確保することができる。第13動作例から分かるように、本実施形態の構成によれば、VM毎にマージン時間が与えられるため、優先度が相対的に高いVMがマージン時間を占有するようなことがなく、その結果、優先度が相対的に低いVMについても同程度にマージン時間を確保することができる。
[2-14]第14動作例
図25に示す第14動作例は、VM10が動作時間の途中においてタスクの実行を開始するとともにそのタスクが完了しなかった場合を想定したものである。この場合、VM10は、自身が動作マシンへと切り替えられた時点から所定時間が経過した時点において、HV2に対して禁止要求を送信する。HV2は、VM10から送信された禁止要求を受信すると、判断処理を実行する。
図25に示す第14動作例は、VM10が動作時間の途中においてタスクの実行を開始するとともにそのタスクが完了しなかった場合を想定したものである。この場合、VM10は、自身が動作マシンへと切り替えられた時点から所定時間が経過した時点において、HV2に対して禁止要求を送信する。HV2は、VM10から送信された禁止要求を受信すると、判断処理を実行する。
この場合、残り時間に対してVM10に対応するVM毎マージン時間である20μ秒を加えた時間が、設定時間よりも長いものであるとする。そうすると、HV2は、禁止要求を受信した時点において禁止処理を実行する。禁止処理の開始に合わせて、動作マシンであるVM10は、タスクの実行を開始する。この場合、タスクは、VM10に割り当てられた当初の動作時間が経過した時点では完了しない。そのため、第1処理部21は、VM10により実行されているタスクが完了するまで動作時間を延長する。
ただし、この場合、異常、故障などの何らかの理由により、VM毎マージン時間の全てである20μ秒を消費して動作時間の延長が行われても、タスクが完了しなかったものとする。そうすると、第1処理部21は、異常が発生したと判断し、通知処理を実行する。通知処理では、VM切り替えが禁止された状態である禁止期間が固着したことを検知した旨を表す固着エラーが発行される。また、このとき、第1処理部21は、このようにVM切り替えが禁止された状態のまま、切り替え処理を行う。
そして、この場合、VM11は、自身が動作マシンへと切り替えられた時点から所定時間が経過した時点において、HV2に対して禁止要求を送信する。HV2は、VM11から送信された禁止要求を受信すると、判断処理を実行する。この場合、残り時間に対してVM11に対応するVM毎マージン時間である20μ秒を加えた時間が、設定時間よりも長いものであるとする。そうすると、HV2は、禁止要求を受信した時点において禁止処理を実行する。禁止処理の開始に合わせて、動作マシンであるVM11は、タスクの実行を開始する。
この場合、タスクは、VM11に割り当てられた当初の動作時間が経過した時点では完了しない。そのため、第1処理部21は、VM11により実行されているタスクが完了するまで動作時間を延長する。この場合、VM毎マージン時間の全てである20μ秒だけ消費して動作時間の延長が行われる。VM11は、タスクを完了した際に許可要求を送信する。HV2は、許可要求を受信した時点において、禁止処理を終了して許可処理を実行する。これにより、第1処理部21は、切り替え処理を実行する。
次のHV周期において、VM10は、自身が動作マシンへと切り替えられた時点からタスクの実行を再開する。この場合、VM10により実行されるタスクは、VM10が動作マシンへと切り替えられた時点から所定時間が経過した時点において完了となっている。VM10は、タスクを完了した際に許可要求を送信する。HV2は、許可要求を受信した時点において、禁止処理を終了して許可処理を実行する。また、このとき、HV2は、通知処理を行い、これにより固着エラーが発行される。その後、VM10に割り当てられた動作時間が経過した時点において、第1処理部21は、切り替え処理を行う。
このような第14動作例によれば、複数のVM10、VM11のそれぞれ毎にVM毎マージン時間が設定されていることから、VM10およびVM11のうち一方がVM毎マージン時間を消費したとしても、VM10およびVM11のうち他方が禁止要求を送信した場合には、そのVMに割り当てられたVM毎マージン時間の上限まで動作時間を延長して禁止処理を行うことができる。
以上説明した本実施形態によれば、複数のVM10、VM11のそれぞれ毎にVM毎マージン時間が設定されており、第1処理部21は、動作マシンに対応するVM毎マージン時間から必要とするマージン時間を消費する形で動作時間の延長を行うようになっている。このようにすれば、優先度の高低に関係なく、全てのVM10、VM11がいずれもVM毎マージン時間である20μ秒をマージン時間として使用することができる。つまり、本実施形態によれば、VM毎にマージン時間が与えられるため、優先度が相対的に高いVMがマージン時間を占有することなく、優先度が相対的に低いVMについてもマージン時間を確保することができる。
(第3実施形態)
以下、第2実施形態について図26を参照して説明する。
本実施形態は、第1実施形態に対し、第1処理部21の処理内容について変更が加えられたものである。本実施形態では、第1処理部21は、禁止期間中、動作時間の延長を行わないようになっている。つまり、本実施形態では、全体マージン時間またはVM毎マージン時間といったマージン時間の設定が行われていない。
以下、第2実施形態について図26を参照して説明する。
本実施形態は、第1実施形態に対し、第1処理部21の処理内容について変更が加えられたものである。本実施形態では、第1処理部21は、禁止期間中、動作時間の延長を行わないようになっている。つまり、本実施形態では、全体マージン時間またはVM毎マージン時間といったマージン時間の設定が行われていない。
次に、上記構成の作用について説明する。
[2-15]第15動作例
図26に示す第15動作例は、VM10が動作時間の途中においてタスクの実行を開始するとともにそのタスクが完了しなかった場合を想定したものである。この場合、VM10は、自身が動作マシンへと切り替えられた時点から所定時間が経過した時点において、HV2に対して禁止要求を送信する。HV2は、VM10から送信された禁止要求を受信すると、判断処理を実行する。
[2-15]第15動作例
図26に示す第15動作例は、VM10が動作時間の途中においてタスクの実行を開始するとともにそのタスクが完了しなかった場合を想定したものである。この場合、VM10は、自身が動作マシンへと切り替えられた時点から所定時間が経過した時点において、HV2に対して禁止要求を送信する。HV2は、VM10から送信された禁止要求を受信すると、判断処理を実行する。
この場合、残り時間が設定時間よりも長いものであるとする。そうすると、HV2は、禁止要求を受信した時点において禁止処理を実行する。禁止処理の開始に合わせて、動作マシンであるVM10は、タスクの実行を開始する。この場合、異常、故障などの何らかの理由により、VM10に割り当てられた動作時間が経過した時点でもタスクが完了しなかったものとする。そうすると、第1処理部21は、異常が発生したと判断し、通知処理を実行する。通知処理では、VM切り替えが禁止された状態である禁止期間が固着したことを検知した旨を表す固着エラーが発行される。また、このとき、第1処理部21は、このようにVM切り替えが禁止された状態のまま、切り替え処理を行う。
そして、この場合、VM11は、自身が動作マシンへと切り替えられた時点から所定時間が経過した時点において、HV2に対して禁止要求を送信する。HV2は、VM11から送信された禁止要求を受信すると、判断処理を実行する。この場合、残り時間が設定時間よりも長いものであるとする。そうすると、HV2は、禁止要求を受信した時点において禁止処理を実行する。禁止処理の開始に合わせて、動作マシンであるVM11は、タスクの実行を開始する。この場合、タスクは、VM11に割り当てられた動作時間が経過した時点よりも前の時点において完了となっている。VM11は、タスクを完了した際に許可要求を送信する。HV2は、許可要求を受信した時点において、禁止処理を終了して許可処理を実行する。これにより、第1処理部21は、切り替え処理を実行する。
次のHV周期において、VM10は、自身が動作マシンへと切り替えられた時点からタスクの実行を再開する。この場合、VM10により実行されるタスクは、VM10が動作マシンへと切り替えられた時点から所定時間が経過した時点において完了となっている。VM10は、タスクを完了した際に許可要求を送信する。HV2は、許可要求を受信した時点において、禁止処理を終了して許可処理を実行する。また、このとき、HV2は、通知処理を行い、これにより固着エラーが発行される。その後、VM10に割り当てられた動作時間が経過した時点において、第1処理部21は、切り替え処理を行う。
以上説明した本実施形態によれば、全体マージン時間またはVM毎マージン時間といったマージン時間の設定が行われていない。このような本実施形態によれば、マージン時間の設定を行う上記各実施形態に比べ、全てのVM10、VM11に対してより多くの動作時間を割り振ることができる。上記各実施形態では、設定された全体マージン時間またはVM毎マージン時間のうち使用されなかった時間が無駄な時間になるおそれがあったが、本実施形態では、このような無駄な時間を生じさせることがない。また、本実施形態によれば、上記各実施形態と同様、禁止期間の固着検出が可能であるとともに、完了する見込みのない特定処理を次のHV周期で動作させることができる。
(その他の実施形態)
なお、本開示は上記し且つ図面に記載した各実施形態に限定されるものではなく、その要旨を逸脱しない範囲で任意に変形、組み合わせ、あるいは拡張することができる。
上記各実施形態で示した数値などは例示であり、それに限定されるものではない。
なお、本開示は上記し且つ図面に記載した各実施形態に限定されるものではなく、その要旨を逸脱しない範囲で任意に変形、組み合わせ、あるいは拡張することができる。
上記各実施形態で示した数値などは例示であり、それに限定されるものではない。
本開示は、車両に搭載される統合ECU1を構成するマイコン3上で動作する複数のVMのそれぞれを時分割スケジューリングでの制御を行うHV2に限らず、コンピュータ上で動作する複数のVMのそれぞれを動作周期毎に予め割り当てられた動作時間ずつ時分割で動作させるための制御を行う動作制御装置全般に適用することができる。
本開示は、実施例に準拠して記述されたが、本開示は当該実施例や構造に限定されるものではないと理解される。本開示は、様々な変形例や均等範囲内の変形をも包含する。加えて、様々な組み合わせや形態、さらには、それらに一要素のみ、それ以上、あるいはそれ以下、を含む他の組み合わせや形態をも、本開示の範疇や思想範囲に入るものである。
本開示に記載の制御部及びその手法は、コンピュータプログラムにより具体化された一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリーを構成することによって提供された専用コンピュータにより、実現されてもよい。あるいは、本開示に記載の制御部及びその手法は、一つ以上の専用ハードウェア論理回路によってプロセッサを構成することによって提供された専用コンピュータにより、実現されてもよい。もしくは、本開示に記載の制御部及びその手法は、一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリーと一つ以上のハードウェア論理回路によって構成されたプロセッサとの組み合わせにより構成された一つ以上の専用コンピュータにより、実現されてもよい。また、コンピュータプログラムは、コンピュータにより実行されるインストラクションとして、コンピュータ読み取り可能な非遷移有形記録媒体に記憶されていてもよい。
本開示は、特許請求の範囲に記載の発明に加え、以下のような発明を含む。
[1]
複数の仮想マシン(10、11)のそれぞれを動作周期毎に予め割り当てられた動作時間ずつ時分割で動作させるための制御を行う動作制御装置であって、
前記複数の仮想マシンのうち動作中のものを動作マシンとすると、
前記動作マシンを切り替える切り替え処理を実行することができる第1処理部(21)と、
前記切り替え処理の実行を禁止する禁止処理および前記切り替え処理の実行を許可する許可処理を実行することができる第2処理部(22)と、
を備え、
前記動作マシンは、連続して実行しなければならない処理である特定処理を開始する際に禁止要求を送信するとともに、前記特定処理を完了した際に許可要求を送信するようになっており、
前記第2処理部は、
前記禁止要求を受信したとき、その時点から前記動作時間が経過する時点までの時間である残り時間が所定の設定時間以上の時間であるか否かを判断する判断処理を実行し、
前記判断処理の結果、前記残り時間が前記設定時間以上の時間である場合には前記禁止処理を実行するとともに、前記残り時間が前記設定時間未満の時間である場合には前記禁止処理を実行しないようになっており、
前記許可要求を受信したとき、前記許可処理を実行するようになっており、
前記動作マシンは、前記禁止処理が実行されている期間である禁止期間中に前記特定処理を実行する動作制御装置。
[2]
前記第1処理部は、前記禁止期間中、前記動作時間を所定のマージン時間だけ延長することができるようになっており、
前記第2処理部は、前記禁止要求を受信した時点から延長した前記動作時間が経過する時点までの時間を前記残り時間として前記判断処理を実行する[1]に記載の動作制御装置。
[3]
前記動作周期毎に使用可能時間が設定されており、
前記第1処理部は、前記使用可能時間から必要とする前記マージン時間を消費する形で前記動作時間の延長を行うようになっている[2]に記載の動作制御装置。
[4]
前記複数の仮想マシンのそれぞれ毎に使用可能時間が設定されており、
前記第1処理部は、前記動作マシンに対応する前記使用可能時間から必要とする前記マージン時間を消費する形で前記動作時間の延長を行うようになっている[2]に記載の動作制御装置。
[5]
前記第1処理部は、前記動作周期において最後に動作する前記動作マシンの動作が開始される際に前記使用可能時間に余りがある場合、その余りの少なくとも一部を最後に動作する前記動作マシンの前記動作時間に割り当てるようになっている[3]に記載の動作制御装置。
[6]
前記第1処理部は、前記禁止期間において前記動作時間が経過した時点で前記特定処理が完了していない場合、異常が発生したと判断して前記切り替え処理および前記異常を外部に通知する通知処理の一方または双方を実行する[1]から[5]のいずれか一項に記載の動作制御装置。
[7]
前記第1処理部は、前記禁止期間において前記動作時間が経過した時点で前記特定処理が完了していない場合、異常が発生したと判断して次回以降の前記動作周期において前記許可要求を受信すると前記異常を外部に通知する通知処理を実行する[1]から[6]のいずれか一項に記載の動作制御装置。
[8]
前記設定時間は、前記複数の仮想マシンのそれぞれ毎に予め設定されている[1]から[7]のいずれか一項に記載の動作制御装置。
[9]
前記第2処理部は、前記禁止要求を受信したとき、前記禁止要求を送信した前記動作マシンが開始する前記特定処理に要する時間に基づいて前記設定時間を設定する[1]から[7]のいずれか一項に記載の動作制御装置。
[10]
前記第1処理部は、前記動作マシンが前記禁止要求を送信した後に前記禁止処理が実行されなかった場合、前記禁止処理が実行されるまで前記動作マシンに前記禁止要求の送信を繰り返し実行させるようになっている[1]から[9]のいずれか一項に記載の動作制御装置。
[11]
前記第1処理部は、前記動作マシンが前記禁止要求を送信した後に前記禁止処理が実行されなかった場合、前記切り替え処理が実行されるまでの期間、前記動作マシンを待機状態とする、または、前記動作マシンを前記特定処理とは異なる別の処理を実行可能な状態とするようになっている[1]から[9]のいずれか一項に記載の動作制御装置。
[12]
前記第1処理部は、前記動作マシンが前記禁止要求を送信した後に前記禁止処理が実行されなかった場合、前記動作マシンに割り当てられた前記動作時間が経過する前に前記切り替え処理を実行する[1]から[9]のいずれか一項に記載の動作制御装置。
[13]
複数の仮想マシン(VM10、VM11)のそれぞれを動作周期毎に予め割り当てられた動作時間ずつ時分割で動作させるための制御を行う動作制御装置(2)に実行させる動作制御プログラムであって、
前記複数の仮想マシンのうち動作中のものを動作マシンとすると、
前記動作マシンを切り替える切り替え処理を実行することができる第1処理と、
前記切り替え処理の実行を禁止する禁止処理および前記切り替え処理の実行を許可する許可処理を実行することができる第2処理と、
を含み、
前記動作マシンは、連続して実行しなければならない処理である特定処理を開始する際に禁止要求を送信するとともに、前記特定処理を完了した際に許可要求を送信するようになっており、
前記第2処理では、
前記禁止要求を受信したとき、その時点から前記動作時間が経過する時点までの時間である残り時間が所定の設定時間以上の時間であるか否かを判断する判断処理を実行し、
前記判断処理の結果、前記残り時間が前記設定時間以上の時間である場合には前記禁止処理を実行するとともに、前記残り時間が前記設定時間未満の時間である場合には前記禁止処理を実行しないようになっており、
前記許可要求を受信したとき、前記許可処理を実行するようになっており、
前記動作マシンは、前記禁止処理が実行されている期間である禁止期間中に前記特定処理を実行する動作制御プログラム。
[14]
コンピュータ(3)と、前記コンピュータ上で動作する複数の仮想マシン(VM10、VM11)と、前記複数の仮想マシンのそれぞれを動作周期毎に予め割り当てられた動作時間ずつ時分割で動作させるための制御を行う動作制御装置(2)と、を備えた電子制御装置であって、
前記複数の仮想マシンのうち動作中のものを動作マシンとすると、
前記動作制御装置は、
前記動作マシンを切り替える切り替え処理を実行することができる第1処理部(21)と、
前記切り替え処理の実行を禁止する禁止処理および前記切り替え処理の実行を許可する許可処理を実行することができる第2処理部(22)と、
を備え、
前記動作マシンは、連続して実行しなければならない処理である特定処理を開始する際に禁止要求を送信するとともに、前記特定処理を完了した際に許可要求を送信するようになっており、
前記第2処理部は、
前記禁止要求を受信したとき、その時点から前記動作時間が経過する時点までの時間である残り時間が所定の設定時間以上の時間であるか否かを判断する判断処理を実行し、
前記判断処理の結果、前記残り時間が前記設定時間以上の時間である場合には前記禁止処理を実行するとともに、前記残り時間が前記設定時間未満の時間である場合には前記禁止処理を実行しないようになっており、
前記許可要求を受信したとき、前記許可処理を実行するようになっており、
前記動作マシンは、前記禁止処理が実行されている期間である禁止期間中に前記特定処理を実行する電子制御装置。
[1]
複数の仮想マシン(10、11)のそれぞれを動作周期毎に予め割り当てられた動作時間ずつ時分割で動作させるための制御を行う動作制御装置であって、
前記複数の仮想マシンのうち動作中のものを動作マシンとすると、
前記動作マシンを切り替える切り替え処理を実行することができる第1処理部(21)と、
前記切り替え処理の実行を禁止する禁止処理および前記切り替え処理の実行を許可する許可処理を実行することができる第2処理部(22)と、
を備え、
前記動作マシンは、連続して実行しなければならない処理である特定処理を開始する際に禁止要求を送信するとともに、前記特定処理を完了した際に許可要求を送信するようになっており、
前記第2処理部は、
前記禁止要求を受信したとき、その時点から前記動作時間が経過する時点までの時間である残り時間が所定の設定時間以上の時間であるか否かを判断する判断処理を実行し、
前記判断処理の結果、前記残り時間が前記設定時間以上の時間である場合には前記禁止処理を実行するとともに、前記残り時間が前記設定時間未満の時間である場合には前記禁止処理を実行しないようになっており、
前記許可要求を受信したとき、前記許可処理を実行するようになっており、
前記動作マシンは、前記禁止処理が実行されている期間である禁止期間中に前記特定処理を実行する動作制御装置。
[2]
前記第1処理部は、前記禁止期間中、前記動作時間を所定のマージン時間だけ延長することができるようになっており、
前記第2処理部は、前記禁止要求を受信した時点から延長した前記動作時間が経過する時点までの時間を前記残り時間として前記判断処理を実行する[1]に記載の動作制御装置。
[3]
前記動作周期毎に使用可能時間が設定されており、
前記第1処理部は、前記使用可能時間から必要とする前記マージン時間を消費する形で前記動作時間の延長を行うようになっている[2]に記載の動作制御装置。
[4]
前記複数の仮想マシンのそれぞれ毎に使用可能時間が設定されており、
前記第1処理部は、前記動作マシンに対応する前記使用可能時間から必要とする前記マージン時間を消費する形で前記動作時間の延長を行うようになっている[2]に記載の動作制御装置。
[5]
前記第1処理部は、前記動作周期において最後に動作する前記動作マシンの動作が開始される際に前記使用可能時間に余りがある場合、その余りの少なくとも一部を最後に動作する前記動作マシンの前記動作時間に割り当てるようになっている[3]に記載の動作制御装置。
[6]
前記第1処理部は、前記禁止期間において前記動作時間が経過した時点で前記特定処理が完了していない場合、異常が発生したと判断して前記切り替え処理および前記異常を外部に通知する通知処理の一方または双方を実行する[1]から[5]のいずれか一項に記載の動作制御装置。
[7]
前記第1処理部は、前記禁止期間において前記動作時間が経過した時点で前記特定処理が完了していない場合、異常が発生したと判断して次回以降の前記動作周期において前記許可要求を受信すると前記異常を外部に通知する通知処理を実行する[1]から[6]のいずれか一項に記載の動作制御装置。
[8]
前記設定時間は、前記複数の仮想マシンのそれぞれ毎に予め設定されている[1]から[7]のいずれか一項に記載の動作制御装置。
[9]
前記第2処理部は、前記禁止要求を受信したとき、前記禁止要求を送信した前記動作マシンが開始する前記特定処理に要する時間に基づいて前記設定時間を設定する[1]から[7]のいずれか一項に記載の動作制御装置。
[10]
前記第1処理部は、前記動作マシンが前記禁止要求を送信した後に前記禁止処理が実行されなかった場合、前記禁止処理が実行されるまで前記動作マシンに前記禁止要求の送信を繰り返し実行させるようになっている[1]から[9]のいずれか一項に記載の動作制御装置。
[11]
前記第1処理部は、前記動作マシンが前記禁止要求を送信した後に前記禁止処理が実行されなかった場合、前記切り替え処理が実行されるまでの期間、前記動作マシンを待機状態とする、または、前記動作マシンを前記特定処理とは異なる別の処理を実行可能な状態とするようになっている[1]から[9]のいずれか一項に記載の動作制御装置。
[12]
前記第1処理部は、前記動作マシンが前記禁止要求を送信した後に前記禁止処理が実行されなかった場合、前記動作マシンに割り当てられた前記動作時間が経過する前に前記切り替え処理を実行する[1]から[9]のいずれか一項に記載の動作制御装置。
[13]
複数の仮想マシン(VM10、VM11)のそれぞれを動作周期毎に予め割り当てられた動作時間ずつ時分割で動作させるための制御を行う動作制御装置(2)に実行させる動作制御プログラムであって、
前記複数の仮想マシンのうち動作中のものを動作マシンとすると、
前記動作マシンを切り替える切り替え処理を実行することができる第1処理と、
前記切り替え処理の実行を禁止する禁止処理および前記切り替え処理の実行を許可する許可処理を実行することができる第2処理と、
を含み、
前記動作マシンは、連続して実行しなければならない処理である特定処理を開始する際に禁止要求を送信するとともに、前記特定処理を完了した際に許可要求を送信するようになっており、
前記第2処理では、
前記禁止要求を受信したとき、その時点から前記動作時間が経過する時点までの時間である残り時間が所定の設定時間以上の時間であるか否かを判断する判断処理を実行し、
前記判断処理の結果、前記残り時間が前記設定時間以上の時間である場合には前記禁止処理を実行するとともに、前記残り時間が前記設定時間未満の時間である場合には前記禁止処理を実行しないようになっており、
前記許可要求を受信したとき、前記許可処理を実行するようになっており、
前記動作マシンは、前記禁止処理が実行されている期間である禁止期間中に前記特定処理を実行する動作制御プログラム。
[14]
コンピュータ(3)と、前記コンピュータ上で動作する複数の仮想マシン(VM10、VM11)と、前記複数の仮想マシンのそれぞれを動作周期毎に予め割り当てられた動作時間ずつ時分割で動作させるための制御を行う動作制御装置(2)と、を備えた電子制御装置であって、
前記複数の仮想マシンのうち動作中のものを動作マシンとすると、
前記動作制御装置は、
前記動作マシンを切り替える切り替え処理を実行することができる第1処理部(21)と、
前記切り替え処理の実行を禁止する禁止処理および前記切り替え処理の実行を許可する許可処理を実行することができる第2処理部(22)と、
を備え、
前記動作マシンは、連続して実行しなければならない処理である特定処理を開始する際に禁止要求を送信するとともに、前記特定処理を完了した際に許可要求を送信するようになっており、
前記第2処理部は、
前記禁止要求を受信したとき、その時点から前記動作時間が経過する時点までの時間である残り時間が所定の設定時間以上の時間であるか否かを判断する判断処理を実行し、
前記判断処理の結果、前記残り時間が前記設定時間以上の時間である場合には前記禁止処理を実行するとともに、前記残り時間が前記設定時間未満の時間である場合には前記禁止処理を実行しないようになっており、
前記許可要求を受信したとき、前記許可処理を実行するようになっており、
前記動作マシンは、前記禁止処理が実行されている期間である禁止期間中に前記特定処理を実行する電子制御装置。
Claims (14)
- 複数の仮想マシン(10、11)のそれぞれを動作周期毎に予め割り当てられた動作時間ずつ時分割で動作させるための制御を行う動作制御装置であって、
前記複数の仮想マシンのうち動作中のものを動作マシンとすると、
前記動作マシンを切り替える切り替え処理を実行することができる第1処理部(21)と、
前記切り替え処理の実行を禁止する禁止処理および前記切り替え処理の実行を許可する許可処理を実行することができる第2処理部(22)と、
を備え、
前記動作マシンは、連続して実行しなければならない処理である特定処理を開始する際に禁止要求を送信するとともに、前記特定処理を完了した際に許可要求を送信するようになっており、
前記第2処理部は、
前記禁止要求を受信したとき、その時点から前記動作時間が経過する時点までの時間である残り時間が所定の設定時間以上の時間であるか否かを判断する判断処理を実行し、
前記判断処理の結果、前記残り時間が前記設定時間以上の時間である場合には前記禁止処理を実行するとともに、前記残り時間が前記設定時間未満の時間である場合には前記禁止処理を実行しないようになっており、
前記許可要求を受信したとき、前記許可処理を実行するようになっており、
前記動作マシンは、前記禁止処理が実行されている期間である禁止期間中に前記特定処理を実行する動作制御装置。 - 前記第1処理部は、前記禁止期間中、前記動作時間を所定のマージン時間だけ延長することができるようになっており、
前記第2処理部は、前記禁止要求を受信した時点から延長した前記動作時間が経過する時点までの時間を前記残り時間として前記判断処理を実行する請求項1に記載の動作制御装置。 - 前記動作周期毎に使用可能時間が設定されており、
前記第1処理部は、前記使用可能時間から必要とする前記マージン時間を消費する形で前記動作時間の延長を行うようになっている請求項2に記載の動作制御装置。 - 前記複数の仮想マシンのそれぞれ毎に使用可能時間が設定されており、
前記第1処理部は、前記動作マシンに対応する前記使用可能時間から必要とする前記マージン時間を消費する形で前記動作時間の延長を行うようになっている請求項2に記載の動作制御装置。 - 前記第1処理部は、前記動作周期において最後に動作する前記動作マシンの動作が開始される際に前記使用可能時間に余りがある場合、その余りの少なくとも一部を最後に動作する前記動作マシンの前記動作時間に割り当てるようになっている請求項3に記載の動作制御装置。
- 前記第1処理部は、前記禁止期間において前記動作時間が経過した時点で前記特定処理が完了していない場合、異常が発生したと判断して前記切り替え処理および前記異常を外部に通知する通知処理の一方または双方を実行する請求項1から5のいずれか一項に記載の動作制御装置。
- 前記第1処理部は、前記禁止期間において前記動作時間が経過した時点で前記特定処理が完了していない場合、異常が発生したと判断して次回以降の前記動作周期において前記許可要求を受信すると前記異常を外部に通知する通知処理を実行する請求項1から5のいずれか一項に記載の動作制御装置。
- 前記設定時間は、前記複数の仮想マシンのそれぞれ毎に予め設定されている請求項1から5のいずれか一項に記載の動作制御装置。
- 前記第2処理部は、前記禁止要求を受信したとき、前記禁止要求を送信した前記動作マシンが開始する前記特定処理に要する時間に基づいて前記設定時間を設定する請求項1から5のいずれか一項に記載の動作制御装置。
- 前記第1処理部は、前記動作マシンが前記禁止要求を送信した後に前記禁止処理が実行されなかった場合、前記禁止処理が実行されるまで前記動作マシンに前記禁止要求の送信を繰り返し実行させるようになっている請求項1から5のいずれか一項に記載の動作制御装置。
- 前記第1処理部は、前記動作マシンが前記禁止要求を送信した後に前記禁止処理が実行されなかった場合、前記切り替え処理が実行されるまでの期間、前記動作マシンを待機状態とする、または、前記動作マシンを前記特定処理とは異なる別の処理を実行可能な状態とするようになっている請求項1から5のいずれか一項に記載の動作制御装置。
- 前記第1処理部は、前記動作マシンが前記禁止要求を送信した後に前記禁止処理が実行されなかった場合、前記動作マシンに割り当てられた前記動作時間が経過する前に前記切り替え処理を実行する請求項1から5のいずれか一項に記載の動作制御装置。
- 複数の仮想マシン(VM10、VM11)のそれぞれを動作周期毎に予め割り当てられた動作時間ずつ時分割で動作させるための制御を行う動作制御装置(2)に実行させる動作制御プログラムであって、
前記複数の仮想マシンのうち動作中のものを動作マシンとすると、
前記動作マシンを切り替える切り替え処理を実行することができる第1処理と、
前記切り替え処理の実行を禁止する禁止処理および前記切り替え処理の実行を許可する許可処理を実行することができる第2処理と、
を含み、
前記動作マシンは、連続して実行しなければならない処理である特定処理を開始する際に禁止要求を送信するとともに、前記特定処理を完了した際に許可要求を送信するようになっており、
前記第2処理では、
前記禁止要求を受信したとき、その時点から前記動作時間が経過する時点までの時間である残り時間が所定の設定時間以上の時間であるか否かを判断する判断処理を実行し、
前記判断処理の結果、前記残り時間が前記設定時間以上の時間である場合には前記禁止処理を実行するとともに、前記残り時間が前記設定時間未満の時間である場合には前記禁止処理を実行しないようになっており、
前記許可要求を受信したとき、前記許可処理を実行するようになっており、
前記動作マシンは、前記禁止処理が実行されている期間である禁止期間中に前記特定処理を実行する動作制御プログラム。 - コンピュータ(3)と、前記コンピュータ上で動作する複数の仮想マシン(VM10、VM11)と、前記複数の仮想マシンのそれぞれを動作周期毎に予め割り当てられた動作時間ずつ時分割で動作させるための制御を行う動作制御装置(2)と、を備えた電子制御装置であって、
前記複数の仮想マシンのうち動作中のものを動作マシンとすると、
前記動作制御装置は、
前記動作マシンを切り替える切り替え処理を実行することができる第1処理部(21)と、
前記切り替え処理の実行を禁止する禁止処理および前記切り替え処理の実行を許可する許可処理を実行することができる第2処理部(22)と、
を備え、
前記動作マシンは、連続して実行しなければならない処理である特定処理を開始する際に禁止要求を送信するとともに、前記特定処理を完了した際に許可要求を送信するようになっており、
前記第2処理部は、
前記禁止要求を受信したとき、その時点から前記動作時間が経過する時点までの時間である残り時間が所定の設定時間以上の時間であるか否かを判断する判断処理を実行し、
前記判断処理の結果、前記残り時間が前記設定時間以上の時間である場合には前記禁止処理を実行するとともに、前記残り時間が前記設定時間未満の時間である場合には前記禁止処理を実行しないようになっており、
前記許可要求を受信したとき、前記許可処理を実行するようになっており、
前記動作マシンは、前記禁止処理が実行されている期間である禁止期間中に前記特定処理を実行する電子制御装置。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2023-200713 | 2023-11-28 | ||
| JP2023200713A JP2025086620A (ja) | 2023-11-28 | 2023-11-28 | 動作制御装置、動作制御プログラムおよび電子制御装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025115486A1 true WO2025115486A1 (ja) | 2025-06-05 |
Family
ID=95897640
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2024/038347 Pending WO2025115486A1 (ja) | 2023-11-28 | 2024-10-28 | 動作制御装置、動作制御プログラムおよび電子制御装置 |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JP2025086620A (ja) |
| WO (1) | WO2025115486A1 (ja) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004127039A (ja) * | 2002-10-03 | 2004-04-22 | Seiko Epson Corp | タスク排他制御方法及びタスク排他制御装置 |
| JP2023032307A (ja) * | 2021-08-26 | 2023-03-09 | 株式会社デンソーテン | 仮想化制御装置および割り込み制御方法 |
-
2023
- 2023-11-28 JP JP2023200713A patent/JP2025086620A/ja active Pending
-
2024
- 2024-10-28 WO PCT/JP2024/038347 patent/WO2025115486A1/ja active Pending
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004127039A (ja) * | 2002-10-03 | 2004-04-22 | Seiko Epson Corp | タスク排他制御方法及びタスク排他制御装置 |
| JP2023032307A (ja) * | 2021-08-26 | 2023-03-09 | 株式会社デンソーテン | 仮想化制御装置および割り込み制御方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2025086620A (ja) | 2025-06-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6903784B2 (ja) | 車両システム、車両およびこの種の車両システムの動作方法 | |
| JP5195913B2 (ja) | マルチコアシステム、車両用電子制御ユニット、タスク切り替え方法 | |
| JP2006099331A (ja) | 情報処理装置、割り込み処理制御方法、並びにコンピュータ・プログラム | |
| JP2009223842A (ja) | 仮想計算機制御プログラム及び仮想計算機システム | |
| US10571993B2 (en) | Micro controller unit | |
| US12032983B2 (en) | Method of accessing device in virtual environment | |
| EP3036629B1 (en) | Handling time intensive instructions | |
| WO2025115486A1 (ja) | 動作制御装置、動作制御プログラムおよび電子制御装置 | |
| CN115220864A (zh) | 虚拟模式执行管理器 | |
| JP5996110B2 (ja) | 計算機システム及び制御方法 | |
| JP7619222B2 (ja) | 電子制御装置 | |
| US8522060B2 (en) | Computer system, method for controlling the same, and program | |
| US10269194B2 (en) | Multiprocessor system and vehicle control system | |
| US12578986B2 (en) | Information processing device, vehicle, information processing method, and computer-readable storage medium | |
| JP5842833B2 (ja) | 情報処理装置、プログラム | |
| JP2023032307A (ja) | 仮想化制御装置および割り込み制御方法 | |
| CN118689599A (zh) | 中断处理的方法、装置和电子设备 | |
| JP7754769B2 (ja) | 管理装置、管理プログラムおよび電子制御装置 | |
| JP2024062067A (ja) | 仮想化制御装置および仮想化制御方法 | |
| JP2025112863A (ja) | 電子制御装置、メモリ領域の割り当て方法及びメモリ領域の割り当てプログラム | |
| JP5703505B2 (ja) | バスパーティション構造を備えるコンピュータ | |
| JP2023152485A (ja) | 処理装置 | |
| KR20260011635A (ko) | 정적으로 정의된 작업을 활성화시키도록 구성된 멀티코어 프로세서 컴퓨터 시스템 및 이러한 멀티코어 프로세서의 관리 방법 | |
| JP2022098090A (ja) | 車両制御装置 | |
| JP2013190929A (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: 24897175 Country of ref document: EP Kind code of ref document: A1 |