Control device, control method, recording medium in which control program is recorded, and vehicle

A control device receives data output from plural applications. The control device arbitrates, based on predetermined conditions, the order in which the plural sets of data output from the plural applications are stored in a storage.

CROSS-REFERENCE TO RELATED APPLICATION

This application is based on and claims priority under 35 USC 119 from Japanese Patent Application No. 2022-022461 filed on Feb. 16, 2022, the disclosure of which is incorporated by reference herein.

BACKGROUND

Technical Field

The present disclosure relates to a control device, a control method, a recording medium in which a control program is recorded, and a vehicle.

Related Art

Conventionally, a virtualization support device is known which improves the efficiency with which a processor is utilized (e.g., Japanese Patent Application Laid-open (JP-A) No. 2021-051420). The processor disclosed in JP-A No. 2021-051420 executes arbitration of the order in which plural accelerators execute plural requests from first and second applications. The processor also controls settings of an input/output memory management unit using one of first and second information based on the arbitration and causes one or more corresponding accelerators of the plural accelerators to execute one of the plural requests based on the arbitration (e.g., see the abstract of JP-A No. 2021-051420).

In this connection, if plural devices (e.g., central processing units, or CPUs) that execute plural application software programs (hereinafter simply called “applications”) try to access a storage unit such as a storage at substantially the same time to store data, sometimes the problem of arbitrating which device's data is to be prioritized and stored arises.

The technology of JP-A No. 2021-051420 arbitrates the order in which the plural accelerators execute the plural requests but does not arbitrate the order in which sets of data of the plural applications are stored in a storage unit such as a storage.

For this reason, the related art has the problem that when plural devices related to plural applications access one storage unit at substantially the same time, sometimes competition ends up occurring between the plural devices. There are also cases where, due to plural devices accessing one storage unit at substantially the same time, integrity when updating data, for example, ends up being lost.

The present disclosure has been made in consideration of the above circumstances, and it is an object thereof to inhibit, even in a case where plural devices related to plural applications access one storage unit, the occurrence of competition between the devices.

SUMMARY

A first aspect of the disclosure is a control device including: a reception unit that receives data output from plural applications; and an arbitration unit that arbitrates, based on predetermined conditions, an order in which plural sets of the data output from the plural applications are stored in a storage unit.

The control device of the first aspect of the disclosure receives the data output from the plural applications. The control device arbitrates, based on the predetermined conditions, an order in which plural sets of the data output from the plural applications are stored in the storage unit. Because of this, even in a case where plural devices related to the plural applications access one storage unit, the occurrence of competition between the devices can be inhibited.

The predetermined conditions of a second aspect of the disclosure are vehicle state conditions representing conditions that are preset in accordance with vehicle states, the reception unit further receives a vehicle state, and the arbitration unit arbitrates, based on the vehicle state and the vehicle state conditions, the order in which the plural sets of data received by the reception unit are stored in the storage unit. According to the second aspect of the disclosure, even in a case where plural devices related to the plural applications access one storage unit in accordance with the vehicle state of the vehicle in which the control device is installed, the occurrence of competition between the devices can be inhibited.

The plural applications of a third aspect of the disclosure include an autonomous driving application that is an application relating to autonomous driving control and a control application that is an application relating to vehicle control that is different from the autonomous driving control, the vehicle states include an autonomous driving mode indicating that the vehicle is in an autonomous driving state, and the meditation unit arbitrates the order in which the plural sets of data are stored in the storage unit in such a way that, in a case in which the vehicle state received by the reception unit is the autonomous driving mode, the arbitration unit prioritizes, and stores in the storage unit, data output from the autonomous driving application over data output from the control application and, in a case in which the vehicle state received by the reception unit is not the autonomous driving mode, the arbitration unit prioritizes, and stores in the storage unit, the data output from the control application over the data output from the autonomous driving application. According to the third aspect of the disclosure, the control device can appropriately arbitrate the order in which the data are stored in the storage unit in accordance with whether or not the vehicle state is the autonomous driving state.

The plural applications of a fourth aspect of the disclosure further include a multimedia application that is an application relating to multimedia utilized in the vehicle, and the arbitration unit arbitrates the order in which the plural sets of data are stored in the storage unit in such a way that, in a case in which the vehicle state received by the reception unit is the autonomous driving mode, the arbitration unit prioritizes, and stores in the storage unit, the data output from the autonomous driving application over the data output from the control application and the data output from the multimedia application and, in a case in which the vehicle state received by the reception unit is not the autonomous driving mode, the arbitration unit prioritizes, and stores in the storage unit, the data output from the control application and the data output from the autonomous driving application over the data output from the multimedia application. According to the fourth aspect of the disclosure, the control device can appropriately arbitrate the order in which the data are stored in the storage unit in accordance with whether or not the vehicle state is the autonomous driving mode and the type of the application.

The vehicle states of a fifth aspect of the disclosure include a vehicle shop mode indicating that the vehicle is in a service or repair shop and that the vehicle is being serviced or being repaired, and the arbitration unit arbitrates the order in which the plural sets of data are stored in the storage unit in such a way that, in a case in which the vehicle state received by the reception unit is the vehicle shop mode, the arbitration unit prioritizes, and stores in the storage unit, the data output from the control application over the data output from the autonomous driving application. According to the fifth aspect of the disclosure, the control device can appropriately arbitrate the order in which the data are stored in the storage unit in accordance with whether or not the vehicle state is the vehicle shop mode.

The arbitration unit of a sixth aspect of the disclosure further arbitrates the order in which the plural sets of data are stored in the storage unit and an order in which data are read from the storage unit in such a way that, in a case in which the vehicle state received by the reception unit is the vehicle shop mode, the arbitration unit prioritizes a process of storing the data output from the applications in the storage unit over a process of reading data from the storage unit and, in a case in which the vehicle state received by the reception unit is the autonomous driving mode, the arbitration unit prioritizes the process of reading data from the storage unit over the process of storing the data output from the applications in the storage unit. According to the sixth aspect of the disclosure, the control device can appropriately arbitrate between the process of storing data in the storage unit and the process of reading data from the storage unit in accordance with the type of process with respect to the data.

The data output from the plural applications of a seventh aspect of the disclosure include key data for encrypting the data output from the applications and execution data utilized when executing the applications, and the arbitration unit arbitrates, based on the predetermined conditions, which of the key data and the execution data to prioritize and store in the storage unit. According to the seventh aspect of the disclosure, the control device can appropriately arbitrate the process of storing data in the storage unit in accordance with the type of data.

The predetermined conditions of an eighth aspect of the disclosure are vehicle state conditions representing conditions that are preset in accordance with vehicle states, the reception unit further receives a vehicle state, the vehicle states include an autonomous driving mode indicating that the vehicle is in an autonomous driving state and a vehicle shop mode indicating that the vehicle is in a service or repair shop and that the vehicle is being serviced or being repaired, and the arbitration unit further arbitrates the order in which the plural sets of data are stored in the storage unit and an order in which data are read from the storage unit in such a way that, in a case in which the vehicle state received by the reception unit is the vehicle shop mode, the arbitration unit prioritizes a process of storing the key data in the storage unit over a process of storing the execution data in the storage unit and, in a case in which the vehicle state received by the reception unit is the autonomous driving mode, the arbitration unit prioritizes a process of reading the execution data from the storage unit over the process of storing the key data in the storage unit. According to the eighth aspect of the disclosure, the control device can appropriately arbitrate between the process of storing data in the storage unit and the process of reading data from the storage unit in accordance with the type of data and the type of process.

A ninth aspect of the disclosure is a vehicle including the above control device. According to the ninth aspect of the disclosure, as in the first aspect, even in a case where plural devices related to the plural applications access one storage unit, the occurrence of competition between the devices can be inhibited.

A control method of a tenth aspect of the disclosure is a control method whereby a computer executes a process to receive data output from plural applications and arbitrate, based on predetermined conditions, an order in which plural sets of the data output from the plural applications are stored in a storage unit. According to the tenth aspect of the disclosure, as in the first aspect, even in a case where plural devices related to the plural applications access one storage unit, the occurrence of competition between the devices can be inhibited.

A recording medium of an eleventh aspect of the disclosure is a recording medium in which is recorded a control program for causing a computer to execute a process to receive data output from plural applications and arbitrate, based on predetermined conditions, an order in which plural sets of the data output from the plural applications are stored in a storage unit. According to the eleventh aspect of the disclosure, as in the first aspect, even in a case where plural devices related to the plural applications access one storage unit, the occurrence of competition between the devices can be inhibited.

As described above, according to the present disclosure, there is obtained the advantageous effect that, even in a case where plural devices related to plural applications access one storage unit, the occurrence of competition between the devices can be inhibited.

DETAILED DESCRIPTION

An embodiment of the disclosure will be described in detail below with reference to the drawings.

EMBODIMENT

FIG.1is a block diagram showing an example of the schematic configuration of a control system10pertaining to the embodiment. The control system10, as shown inFIG.1, includes plural central processing units (CPUs)12-1,12-2,12-3,12-4, plural hardware security modules (HSMs)14-1,14-2,14-3, a memory16serving as a temporary storage space, a storage18that is an example of a nonvolatile storage unit, and an Ethernet (registered trademark) switch (Eth/SW)19that is a communication interface. The control system10is installed in a vehicle (not shown in the drawings).

The control system10is hardware in which various constituent elements described later are installed. The control system10is also a processor.

The plural CPUs12-1,12-2,12-3,12-4, the plural HSMs14-1,14-2,14-3, the memory16, the storage18, and the Eth/SW19are communicably connected to each other via a bus (not shown in the drawings). It will be noted that in the following description any one of the plural CPUs12-1,12-2,12-3,12-4will also simply be called “the CPU12”. Furthermore, in the following description any one of the plural HSMs14-1,14-2,14-3will also simply be called “the HSM14”.

The HSM14is hardware for managing key data used to encrypt or decrypt data. The HSM14has a security function and is tamper resistant. The HSM14retains key data, performs encryption or decryption operations using key data, generates key data, and generates random numbers.

The memory16is a storage device that can be directly accessed by the CPU12that is a processor. The memory16also temporarily stores frequently utilized data, so it is also an example of a storage unit.

The storage18is realized by a hard disk drive (HDD), a solid-state drive (SSD), or a flash memory, for example. The storage18is also an example of memory of the present disclosure. The storage18, which serves as a storage medium, stores programs for allowing the control system10to function. The plural CPUs12-1,12-2,12-3,12-4configuring the control system10read the various programs from the storage18, load them to the memory16, and sequentially execute processes that the programs have.

By sequentially executing the various programs, the plural CPUs12-1,12-2,12-3,12-4of the control system10realize functions of a virtualization mechanism20, plural virtual machines30-1,30-2,30-3,30-4, plural basic software (BSW) programs40-1,40-2,40-3, a central gateway (G/W)50, a control application60A, an autonomous driving application60B, and a multimedia application60C, all shown inFIG.1.

It will be noted that in the following description any one of the plural virtual machines30-1,30-2,30-3,30-4will also simply be called “the virtual machine30”. Furthermore, in the following description any one of the plural BSW programs40-1,40-2,40-3will also simply be called “the BSW40”. Furthermore, in the following description any one of the control application60A, the autonomous driving application60B, and the multimedia application60C will also simply be called “the application60”.

The virtualization mechanism20is realized by software operating on the control system10. The virtualization mechanism20is realized by the plural CPUs12-1,12-2,12-3,12-4, which are physical configurations of the control system10. Furthermore, the functions of the virtual machine30are realized on the virtualization mechanism20.

The virtual machine30runs on the virtualization mechanism20. The virtual machine30runs as a virtualized computer. The virtual machine30can simulate the operation of a computer and act like the hardware of one computer.

The BSW40runs on the virtual machine30. The BSW40has basic functions such as an operating system function and a communication function. Specifically, the BSW40-1runs on the virtual machine30-2, the BSW40-2runs on the virtual machine30-3, and the BSW40-3runs on the virtual machine30-4.

The central G/W50runs on the virtual machine30. The central G/W50relays data received from the outside.

The application60runs on the BSW40. The application60is software that executes certain specific processes. In this embodiment, as shown inFIG.1, there run the control application60A, which is an application relating to vehicle control different from autonomous driving control, the autonomous driving application60B, which is an application relating to autonomous driving control, and the multimedia application60C, which is an application relating to multimedia utilized in the vehicle.

Specifically, the control application60A runs on the BSW40-1, the autonomous driving application60B runs on the BSW40-2, and the multimedia application60C runs on the BSW40-3.

It will be noted that data requiring a high level of security among data sent from the application60to the outside are encrypted by the HSM14, and then the encrypted data are sent from the application60to the outside. Furthermore, encrypted data among data that the application60receives from the outside are decrypted by the HSM14and are then utilized in the application60.

For example, data sent and received by the control application60A are encrypted or decrypted by the HSM14-1. Furthermore, data sent and received by the autonomous driving application60B are encrypted or decrypted by the HSM14-2. Furthermore, data sent and received by the multimedia application60C are encrypted or decrypted by the HSM14-3.

If the plural applications60shown inFIG.1access the storage18within a certain predetermined amount of time, competition can occur between the plural CPUs12-1,12-2,12-3,12-4and the plural HSMs14-1,14-2,14-3. Specifically, if the CPUs12that execute the applications60shown inFIG.1and the HSMs14that execute the encryption or decryption process with respect to data access the memory16or the storage18within a certain predetermined amount of time, competition can occur between the plural CPUs12-1,12-2,12-3,12-4and the plural HSMs14-1,14-2,14-3.

In consideration of this point, for example, a measure can also be taken where a certain application is prioritized without exception over the other applications. However, in such a case, for example, if an application with a high priority level is executed while an application with a low priority level is being executed, the execution of the application with the low priority level ends up being interrupted, and there is also the potential to cause an unexpected operation in the control system10. Furthermore, in a case where priority levels are set with respect to the applications, if a malfunction occurs in an application whose priority level is high, a situation can also occur where the application with the high priority level ends up continuing to occupy the storage18.

Therefore, the control system10of this embodiment arbitrates, based on the state of the vehicle (hereinafter simply called “the vehicle state”), the order in which data output from the plural applications60are stored in the storage18.

In this embodiment, a control device22that runs on the virtualization mechanism20receives the vehicle state. The control device22also arbitrates, based on the vehicle state and a vehicle state condition representing a condition that is preset in accordance with the vehicle state, the order in which plural sets of data are stored in the storage18.

It will be noted that the data output from the plural applications60include key data for encrypting the data output from the applications60and execution data utilized when executing the applications60. For this reason, the control device22also arbitrates, based on the vehicle state and the vehicle state condition, which of the key data and the execution data to prioritize, and store in the storage18. It will be noted that in the following description the process of storing data in the storage18will also simply be called “writing”.

FIG.2andFIG.3are drawings for describing access to the storage18by devices.

As shown inFIG.2, in a case where key data Key_A are output from the control application60A, the HSM14-1acquires the key data Key_A and stores the key data Key_A in its own storage unit (not shown in the drawings). It will be noted that the key data Key_A are utilized to encrypt or decrypt data sent and received between the control application60A and external devices. The HSM14-1first loads the key data Key_A to the memory16and then writes the key data Key_A to the storage18.

Furthermore, as shown inFIG.2, in a case where key data Key_C are output from the multimedia application60C, the HSM14-2acquires the key data Key_C and stores the key data Key_C in its own storage unit (not shown in the drawings). It will be noted that the key data Key_C are utilized to encrypt or decrypt data sent and received between the multimedia application60C and external devices. The HSM14-2first loads the key data Key_C to the memory16and then writes the key data Key_C to the storage18.

Moreover, as shown inFIG.2, in a case where execution data relating to autonomous driving are output from the autonomous driving application60B, the CPU12corresponding to the virtual machine30running the autonomous driving application60B first loads the execution data relating to autonomous driving to the memory16and then writes the execution data relating to autonomous driving to the storage18. Furthermore, the CPU12corresponding to the virtual machine30running the autonomous driving application60B reads, and outputs to the autonomous driving application60B, execution data relating to autonomous driving already stored in the storage18.

When the devices (in the above example, the HSM14-1, the HSM14-2, and the CPU12) related to the applications in their natural course access the storage18as described above, competition can occur between the devices. As a result, this can also lead to a state in which various requested performance requirements cannot be met.

For example, in a case where the vehicle is in an autonomous driving mode, there can be cases where the reading of execution data from the storage18or the writing of execution data to the storage18within a predetermined amount of time is considered a requested performance requirement. Furthermore, for example, in a case where the vehicle is in a vehicle shop mode, there can also be cases where writing key data to the storage18in a predetermined amount of time is considered a requested performance requirement.

Therefore, in this embodiment, as shown inFIG.3, the control device22that runs on the virtualization mechanism20arbitrates, based on the vehicle state, the vehicle state condition, the type of data, and the type of process, the order in which data are stored in the storage18and the order in which data are read from the storage18.

As shown inFIG.1, the control device22functionally incudes a reception unit24, a condition storage unit25, and an arbitration unit26. The functions of the control device22are realized by software.

The reception unit24receives the vehicle state of the vehicle in which the control system10is installed and the data output from the applications60.

It will be noted that in this embodiment a case where the vehicle states include an autonomous driving mode indicating that the vehicle is in an autonomous driving mode and a vehicle shop mode indicating that the vehicle is in a service or repair shop and that the vehicle is being serviced or being repaired will be described as an example.

The condition storage unit25stores vehicle state conditions representing conditions that are preset in accordance with the vehicle states. The vehicle state conditions are an example of predetermined conditions. In the vehicle state conditions, data processes to be prioritized are preset in accordance with the vehicle states.

FIG.4shows an example of the vehicle state conditions. As shown inFIG.4, in the vehicle state conditions, the vehicle states and priority rankings of processes are associated with each other. For example, as shown inFIG.4, in a case where the vehicle state is the autonomous driving mode, the priority level of the process of reading the execution data of the autonomous driving application60B from the storage18is the highest and the priority level of the process of writing key data to the storage18is the lowest. Furthermore, as shown inFIG.4, in a case where the vehicle state is the vehicle shop mode, the priority level of the process of writing key data to the storage18is the highest and the priority level of the process of reading execution data from the storage18is the lowest.

It will be noted that, as shown inFIG.4, priority levels of processes can also be set in regard to a failure mode indicating a state in which the vehicle has broken down and an over-the-air (OTA) mode indicating a state in which automotive software is being updated.

The arbitration unit26arbitrates, based on the vehicle state received by the reception unit24and the vehicle state condition stored in the condition storage unit25, the order in which the plural sets of data output from the plural applications60are stored in the storage18.

Specifically, in a case where the vehicle state received by the reception unit24is the autonomous driving mode, the arbitration unit26performs control to prioritize, and store in the storage18, the execution data output from the autonomous driving application60B over the execution data output from the control application60A and the execution data output from the multimedia application60C. It will be noted that, in a case where the vehicle state received by the reception unit24is the autonomous driving mode, the arbitration unit26performs control to prioritize, and store in the storage18, the execution data output from the control application60A over the execution data output from the multimedia application60C.

Furthermore, in a case where the vehicle state received by the reception unit24is not the autonomous driving mode, the arbitration unit26performs control to prioritize, and store in the storage18, the execution data output from the control application60A over the execution data output from the autonomous driving application60B and the execution data output from the multimedia application60C. It will be noted that, in a case where the vehicle state received by the reception unit24is not the autonomous driving mode, the arbitration unit26performs control to prioritize, and store in the storage18, the execution data output from the autonomous driving application60B over the execution data output from the multimedia application60C.

Furthermore, for example, in a case where the vehicle state received by the reception unit24is the vehicle shop mode, the arbitration unit26performs control to prioritize, and store in the storage18, the execution data output from the control application60A over the execution data output from the autonomous driving application60B and the execution data output from the multimedia application60C. Furthermore, for example, in a case where the vehicle state received by the reception unit24is the vehicle shop mode, the arbitration unit26performs control to prioritize, and store in the storage18, the execution data output from the autonomous driving application60B over the execution data output from the multimedia application60C.

It will be noted that the data output from the plural applications60also include key data for encrypting the data output from the applications60. For this reason, the arbitration unit26also arbitrates, based on the vehicle state and the vehicle state condition, which of the key data and the execution data to prioritize, and store in the storage18.

In a case where the vehicle state received by the reception unit24is the vehicle shop mode, the arbitration unit26performs control to prioritize the process of storing the key data in the storage18over the process of storing the execution data in the storage18. Furthermore, in a case where the vehicle state received by the reception unit24is the autonomous driving mode, the arbitration unit26performs control to prioritize the process of reading data from the storage18over the process of storing the key data in the storage18.

In this way, the arbitration unit26arbitrates the order in which the plural sets of data are stored in the storage18and the order in which data are read from the storage18.

It will be noted that in the example shown inFIG.1, four virtual machines30are shown, three BSW programs40are shown, and three applications60are shown. Furthermore, in the example shown inFIG.1, four CPUs12and three HSMs14are shown. However, the numbers of these constituent elements are not limited to the examples shown inFIG.1.

Next, the action of the control system10of the embodiment will be described.

When the virtual machine30realized by the CPU12of the control system10receives a request signal output from the application60, the CPU12realizing the virtual machine30executes the control process routine shown inFIG.5.

In step S50the CPU12receives the request signal output from the application60.

In step S52the CPU12determines whether or not the request signal received in step S50includes a request to update the key data. In a case where the request signal includes a request to update the key data, the CPU12proceeds to step S54. In a case where the request signal does not include a request to update the key data, the CPU12proceeds to step S58.

In step S54the CPU12requests the HSM14to update the key data.

When the HSM14receives the update request output from the CPU12, the HSM14stores the key data in its own storage unit (not shown in the drawings).

In step S56the CPU12requests the control device22to update the key data.

In step S58the CPU12determines whether or not the request signal received in step S50includes a request to access the storage18. In a case where the request signal includes a request to access the storage18, the CPU12proceeds to step S60. In a case where the request signal does not include a request to access the storage18, the CPU12ends the process.

In step S60the CPU12requests the control device22to read the execution data from the storage18or write the execution data to the storage18.

When a signal requesting the respective process is output to the control device22in step S56or step S60, the CPU12corresponding to the control device22executes the control process routine shown inFIG.6andFIG.7.

In step S100ofFIG.6the CPU12, as the reception unit of the control device22, receives the request signal output in step S56or step S60.

In step S101the CPU12, as the reception unit24of the control device22, receives the current vehicle state.

In step S102the CPU12, as the arbitration unit26of the control device22, reads the vehicle state condition from the condition storage unit25.

In step S103the CPU12, as the arbitration unit26of the control device22, determines whether or not the vehicle state received in step S101is the vehicle shop mode. In a case where the vehicle state is the vehicle shop mode, the CPU12proceeds to step S104. In a case where the vehicle state is not the vehicle shop mode, the CPU12proceeds to step S110shown inFIG.7.

The CPU12, as the arbitration unit26of the control device22, references the vehicle state condition read in step S102and executes processes in the order of step S104to step S108.

In step S104the CPU12, as the arbitration unit26of the control device22, writes to the storage18the key data output from the application60.

In step S106the CPU12, as the arbitration unit26of the control device22, writes to the storage18the execution data output from the application60.

In step S108the CPU12, as the arbitration unit26of the control device22, reads the execution data from the storage18in accordance with the request from the application60.

In this way, in a case where the vehicle is in the vehicle shop mode, the situation is one where upgrades or repairs are made to the vehicle, and it is necessary to make various settings with respect to the vehicle smooth. For this reason, in a case where the vehicle is in the vehicle shop mode, the priority level of the process of writing various types of data to the storage18is set high. In particular, the priority level of the process of writing the key data to the storage18is set the highest. It will be noted that, as shown in the processes of step S104to step S108, in a case where the vehicle is in the vehicle shop mode, the type of the application60is not considered.

Next, in step S110ofFIG.7the CPU12, as the arbitration unit26of the control device22, determines whether or not the vehicle state received in step S101is the autonomous driving mode. In a case where the vehicle state is the autonomous driving mode, the CPU12proceeds to step S112. In a case where the vehicle state is not the autonomous driving mode, the CPU12proceeds to step S120.

In step112the CPU12, as the arbitration unit26of the control device22, reads the execution data from the storage18in accordance with a request from the autonomous driving application60B. Then, the CPU12, as the arbitration unit26of the control device22, hands over the execution data it has read to the autonomous driving application60B.

In step S114the CPU12, as the arbitration unit26of the control device22, writes to the storage18the execution data output from the autonomous driving application60B.

In step S116the CPU12, as the arbitration unit26of the control device22, reads the execution data from the storage18in accordance with a request from the control application60A. Then, the CPU12, as the arbitration unit26of the control device22, hands over the execution data it has read to the control application60A.

In step S118the CPU12, as the arbitration unit26of the control device22, writes to the storage18the execution data output from the control application60A.

In this way, in a case where the vehicle state is the autonomous driving mode, various processes with respect to data relating to the autonomous driving application60B are prioritized.

In step S120the CPU12, as the arbitration unit26of the control device22, reads the execution data from the storage18in accordance with a request from the control application60A. Then, the CPU12, as the arbitration unit26of the control device22, hands over the execution data it has read to the control application60A.

In step S122the CPU12, as the arbitration unit26of the control device22, writes to the storage18the execution data output from the control application60A.

In step S124the CPU12, as the arbitration unit26of the control device22, reads the execution data from the storage18in accordance with a request from the autonomous driving application60B. Then, the CPU12, as the arbitration unit26of the control device22, hands over the execution data it has read to the autonomous driving application60B.

In step S126the CPU12, as the arbitration unit26of the control device22, writes to the storage18the execution data output from the autonomous driving application60B.

In this way, in a case where the vehicle is not in the autonomous driving mode, various processes with respect to data relating to the control application60A are prioritized over various processes with respect to data relating to the autonomous driving application60B.

In step S128the CPU12, as the arbitration unit26of the control device22, reads the execution data from the storage18in accordance with a request from the multimedia application60C. Then, the CPU12, as the arbitration unit26, hands over the execution data it has read to the multimedia application60C.

In step S130the CPU12, as the arbitration unit26of the control device22, writes to the storage18the execution data output from the multimedia application60C.

In this way, in both a case where the vehicle state is the autonomous driving mode and a case where the vehicle state is not the autonomous driving mode, various processes with respect to data relating to the control application60A and the autonomous driving application60B are prioritized over various processes with respect to data relating to the multimedia application60C.

In step S132the CPU12, as the arbitration unit26of the control device22, writes to the storage18the key data output from the application60.

In this way, in a case where the vehicle state is not the vehicle shop mode, various processes with respect to data relating to the application60are prioritized over the process of writing the key data to the storage18.

It will be noted that, in the control process routine shown inFIG.6andFIG.7, there are also cases where the control device22omits any of the processes of step S104to step S108are omitted depending on the request signal received in step S100. Furthermore, there are also cases where the control device22omits any of the processes of step S112to step S132depending on the request signal received in step S100.

For example, in a case where the request signal does not include a request to update the key data, the processes of step S104and step S132are omitted. Furthermore, for example, in a case where the request signal does not include a request to access the storage18, the processes of step S106to step S108and step S112to step S130are omitted.

Furthermore, in a case where the request signal does not include a request to process data relating to a specific application60, processes relating to that application60are omitted. For example, in a case where the request signal does not include a request to process data relating to the control application60A, the processes of step S116to step S118and step S120to step S122are omitted.

As described above, the control device pertaining to the embodiment receives data output from plural applications and arbitrates, based on predetermined conditions, the order in which the plural sets of data output from the plural applications are stored in a storage. Because of this, even in a case where plural devices related to the plural applications access one storage unit, the occurrence of competition between the devices can be inhibited.

Furthermore, the vehicle state conditions described above can be freely set, so the priority levels of the processes can be flexibly set. Furthermore, according to the control device pertaining to this embodiment, the priority levels of the processes can also be flexibly set in accordance with requested performance requirements.

It will be noted that although the processes performed by the devices in the above embodiment were described as software processes performed by executing programs, the processes may also be performed by hardware. Alternatively, the processes may also combine both software and hardware. Furthermore, the programs stored in the read only memory (ROM) may be stored in various types of storage media and circulated.

Moreover, the disclosure is not limited to the above embodiment and, in addition to the above embodiment, can be modified in various ways and implemented in a range that does not depart from the spirit thereof.

In this embodiment, a case where the vehicle states include the autonomous driving mode and the vehicle shop mode was described as an example, but the vehicle states are not limited to this. Priority levels of processes may also be set in regard to a manual driving mode indicating that the vehicle is in a manual driving state, a failure mode indicating a state in which the vehicle has broken down, and an over-the-air (OTA) mode indicating a state in which automotive software is being updated.

Furthermore, in this embodiment, a case where the plural applications include the control application60A, the autonomous driving application60B, and the multimedia application60C was described as an example, but the plural applications are not limited to this, and other applications may also be applied to this embodiment.