WO2021117445A1 - 情報処理装置、移動体および情報処理方法 - Google Patents

情報処理装置、移動体および情報処理方法 Download PDF

Info

Publication number
WO2021117445A1
WO2021117445A1 PCT/JP2020/043029 JP2020043029W WO2021117445A1 WO 2021117445 A1 WO2021117445 A1 WO 2021117445A1 JP 2020043029 W JP2020043029 W JP 2020043029W WO 2021117445 A1 WO2021117445 A1 WO 2021117445A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
storage area
ecu
controller
information processing
Prior art date
Application number
PCT/JP2020/043029
Other languages
English (en)
French (fr)
Inventor
孝彦 上辻
大輝 松田
宏和 玉野
Original Assignee
パナソニックIpマネジメント株式会社
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by パナソニックIpマネジメント株式会社 filed Critical パナソニックIpマネジメント株式会社
Priority to CN202080025847.9A priority Critical patent/CN113678101B/zh
Priority to DE112020001541.6T priority patent/DE112020001541T5/de
Publication of WO2021117445A1 publication Critical patent/WO2021117445A1/ja
Priority to US17/493,286 priority patent/US11947970B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

Definitions

  • This disclosure relates to an information processing device, a mobile body, and an information processing method.
  • Patent Document 1 in updating the control software of an electronic device mounted on an automobile, after the update version program is stored in a storage area different from the current version program, the storage area of the update version program is stored in the current version program.
  • An automotive control unit that switches to an area is disclosed.
  • the present disclosure provides an information processing device and the like that can update the program of the control to be updated so as not to affect the control.
  • the information processing device in the present disclosure has a first control and a virtual storage area having a first storage area and a second storage area in which a first program executed by the first control at startup is stored in one of the storage areas.
  • a second controller that provides storage to the first controller and a second program for updating the first program are acquired from an external device, and the acquired second program is used as the first storage area and the second program.
  • the update control unit to be stored in the other storage area of the storage area and the program to be executed by the first controller at startup after the second program is stored in the other storage area are described from the first program.
  • a switching unit for switching to the second program stored in the other storage area is provided.
  • the information processing device and the like in the present disclosure can update the program of the control to be updated so as not to affect the control.
  • FIG. 1 is a schematic diagram of a data distribution system according to an embodiment.
  • FIG. 2 is a block diagram showing an example of the hardware configuration of the server according to the embodiment.
  • FIG. 3 is a block diagram showing an example of the hardware configuration of the mobile body according to the embodiment.
  • FIG. 4 is a block diagram showing an example of the functional configuration of the information processing apparatus according to the embodiment.
  • FIG. 5 is a flowchart showing an example of a program update operation by the information processing apparatus according to the embodiment.
  • FIG. 6 is a flowchart showing an example of a program recovery operation by the information processing apparatus according to the embodiment.
  • FIG. 7 is a block diagram showing an example of the functional configuration of the information processing apparatus according to the first modification.
  • FIG. 8 is a block diagram showing an example of the functional configuration of the information processing apparatus according to the second modification.
  • FIG. 9 is a diagram showing a configuration of a virtual machine that realizes the functions of the information processing device.
  • the update target ECU may update the program by itself in response to the update instruction from the management ECU.
  • the management ECU tries to manage the update of the program in each ECU so that the update quality of the program does not vary in each ECU, for example, the management ECU issues a program update instruction so as to satisfy the condition according to the processing capacity of each ECU. It is necessary to devise such as doing. That is, it is necessary to implement a function for managing the update quality of the program of each ECU in the management ECU, and it is necessary to prepare a program for realizing the function.
  • the inventors make the program of the control to be updated managed by a control different from the control to be updated so as not to affect the control.
  • the information processing apparatus includes a first storage area and a second storage area in which a first control and a first program executed by the first control unit at startup are stored in one of the storage areas.
  • a second controller that provides virtual storage having an area to the first controller and a second program for updating the first program are acquired from an external device, and the acquired second program is stored in the first storage area.
  • the update control unit to be stored in the other storage area of the second storage area, and the program to be executed by the first controller at startup after the second program is stored in the other storage area.
  • a switching unit for switching from one program to the second program stored in the other storage area is provided.
  • the first program executed by the first control is stored in one of the first storage area and the second storage area of the virtual storage provided by the second control, and is stored in one of the storage areas for updating.
  • the second program is acquired, the second program is stored in the other storage area.
  • the switching unit stores the program executed by the first controller at startup in the storage area of the second program. It may be changed again to the said first program which is done.
  • a switching unit different from the first control can switch the program executed by the first control at startup from the second program to the first program. .. Therefore, even if the first control becomes unbootable or deadlocked by executing the second program with an abnormality, the first control is restarted so as to execute the first program that operates normally. be able to. Therefore, it is possible to prevent the first controller from malfunctioning.
  • the first controller may have the update control unit.
  • the first controller can store the second program in the other storage area.
  • the second controller may have the update control unit.
  • the second controller can store the second program in the other storage area.
  • the information processing apparatus includes a plurality of the first controllers, and the virtual storage by the second controller is accessed by the plurality of first controllers, respectively, and the plurality of first storage areas and the plurality of first storage areas. It may have a plurality of the second storage areas.
  • the program of the first controller can be updated so as not to affect the first controller.
  • the plurality of first controllers have a plurality of dependent controllers having a dependency relationship, and for each of the plurality of dependent controllers, the virtual storage is the first storage corresponding to the dependent controller.
  • One of the first storage area and the second storage area which has an area and the second storage area and corresponds to the dependent control, is executed by the dependent control when the dependent control is started.
  • the update control unit acquires the update second program corresponding to the dependent controller from the external device
  • the updated control unit transfers the acquired second program to the dependent controller.
  • the corresponding first storage area and the other storage area of the second storage area are stored, and the switching unit activates the dependent controller after the second program is stored in the other storage area.
  • the program to be executed at times is switched from the first program to the second program stored in the other storage area, and in the switching unit, at least one of the plurality of dependent controllers is the second program. If an abnormality is detected when the above is executed, the program executed by each of the plurality of dependent controllers at startup is changed again from the second program to the first program stored in one of the storage areas. You may.
  • a switching unit different from the plurality of dependent controllers is used when all the dependent controllers are started.
  • the program to be executed can be switched from the second program to the first program. Therefore, even if some of the dependent controls become unbootable or deadlocked by executing the second program with an abnormality and adversely affect other dependent controls, all of the plurality of dependent controls are controlled.
  • the vessel can be restarted to run a working first program. Therefore, it is possible to prevent the plurality of dependent controllers from failing.
  • first controller and the second controller may be ECUs.
  • first controller and the second controller may be able to communicate with each other by CAN.
  • the mobile body includes the above-mentioned information processing device and a mobile body main body on which the information processing device is mounted.
  • the first program executed by the first controller is one of the first storage area and the second storage area of the virtual storage provided by the second controller. It is stored in the storage area of the above, and when the second program for update is acquired, the second program is stored in the other storage area. After that, since the program executed by the first controller at startup is switched to the second program, the program of the first controller can be updated without using the first controller. Therefore, the program of the first control to be updated can be updated so as not to affect the first control.
  • FIG. 1 is a schematic diagram of a system for delivering a program for updating to an automobile according to an embodiment.
  • FIG. 1 a server 100, an automobile 200, a communication network 300, and a base station 310 of a mobile communication network are shown.
  • the server 100 is a device that stores a program (firmware) of an electronic device such as an ECU included in the automobile 200 and provides the program to the automobile 200 via the communication network 300.
  • the automobile 200 is a mobile body capable of communicating with the mobile communication network via the base station 310.
  • FIG. 1 shows a configuration example for updating the ECU program by delivering the program for updating the ECU of the automobile 200 to the automobile 200 by OTA (Over The Air).
  • OTA Over The Air
  • the method of updating the ECU program is not limited to updating using OTA.
  • the update device may be connected to the automobile 200 by wire, and the update program recorded on the recording medium via the update device may be applied to the ECU of the automobile 200.
  • FIG. 2 is a block diagram showing an example of the hardware configuration of the server according to the embodiment.
  • the server 100 includes a CPU (Central Processing Unit) 11, a main memory 12, a storage 13, and a communication IF (Interface) 14 as a hardware configuration.
  • a CPU Central Processing Unit
  • main memory main memory
  • storage 13 main memory
  • communication IF Interface
  • the CPU 11 is a processor that executes a control program stored in the storage 13 or the like.
  • the main memory 12 is a volatile storage area used as a work area used by the CPU 11 when executing a control program.
  • the storage 13 is a non-volatile storage area for holding control programs, contents, and the like.
  • the communication IF 14 is a communication interface that communicates with a plurality of automobiles 200 via the communication network 300.
  • the communication IF 14 is, for example, a wired LAN interface.
  • the communication IF 14 may be a wireless LAN interface.
  • the communication IF 14 is not limited to the LAN interface, and may be any communication interface as long as it can establish a communication connection with the communication network.
  • FIG. 3 is a block diagram showing an example of the hardware configuration of the information processing device 210 included in the automobile 200 according to the embodiment.
  • the information processing device 210 includes a TCU (Telematics Control Unit) 21 and n ECUs 22 as a hardware configuration. Note that FIG. 3 shows the configurations of each of the plurality of automobiles 200. The information processing device 210 does not have to include all the hardware configurations shown in FIG. For example, the information processing device 210 does not have to have the TCU 21.
  • TCU Transmission Control Unit
  • the TCU 21 is a communication unit in which the automobile 200 performs wireless communication with the communication network 300.
  • the TCU 21 is a communication unit including a cellular module corresponding to the standard of the mobile communication network.
  • the n ECUs 22 are control circuits that execute control of various devices such as an engine, a motor, a meter, a transmission, a brake, a steering wheel, a power window, and an air conditioner included in the automobile 200.
  • n ECUs 22 are provided corresponding to each of these various devices.
  • each of the n ECUs 22 includes a storage unit for storing a program.
  • the storage unit is, for example, a non-volatile memory.
  • the n ECUs are configured to be able to communicate with each other by, for example, a communication method compliant with Ethernet (registered trademark) or a communication method such as CAN (Control Area Network).
  • the storage 23 is a non-volatile storage area for holding a control program or the like.
  • FIG. 4 is a block diagram showing an example of the functional configuration of the information processing device 210 according to the embodiment.
  • the information processing device 210 includes a management ECU 220, an ECU 230, and a storage unit 240.
  • the ECU 220 and the ECU 230 are configured to be able to communicate with each other by, for example, a communication method compliant with Ethernet (registered trademark) or a communication method such as CAN.
  • the management ECU 220 is an ECU that manages updates of programs executed by the ECU 230.
  • the management ECU 220 provides the ECU 230 with a storage unit 240 that functions as virtual storage.
  • the management ECU 220 is realized by, for example, at least one of n ECUs 22.
  • the management ECU 220 may include the TCU 21.
  • the management ECU 220 is an example of the second controller.
  • the storage unit 240 is provided to the ECU 230 as virtual storage via the management ECU 220.
  • the virtual storage has a first storage area 241 and a second storage area 242.
  • One of the storage areas of the first storage area 241 and the second storage area 242 stores a first program executed by the ECU 230 at startup.
  • the first program is the program currently in use by the ECU 230.
  • the storage unit 240 is realized by the storage 23.
  • the ECU 230 accesses the storage area in which the first program of the storage unit 240 is stored and executes the first program.
  • the ECU 230 realizes its own function by executing the first program at the time of startup.
  • the ECU 230 is realized by, for example, at least one ECU different from the ECU 22 that realizes the management ECU 220 among the n ECUs 22.
  • the ECU 230 is an example of the first controller.
  • the management ECU 220 has an update control unit 221, a switching unit 222, and a virtual storage host unit 223.
  • the update control unit 221 controls the update of the program executed by the ECU 230. Specifically, the update control unit 221 acquires a second program for updating the first program from an external device, and uses the acquired second program in the first storage area 241 and the second storage area 242 of the virtual storage. Store in the other storage area.
  • the other storage area is the storage area of the first storage area 241 and the second storage area 242 in which the first program currently used by the ECU 230 is not stored.
  • the external device is, for example, a server 100 or a device for updating.
  • the update control unit 221 detects that an abnormality has occurred in the operation of the ECU 230 when the ECU 230 executes the second program. For example, when the update control unit 221 periodically acquires the operating state of the ECU 230 from the ECU 230, and when the ECU 230 executes the second program, the operating state of the ECU 230 cannot be acquired for a predetermined period or more from the previous acquisition. In addition, it may be determined that an abnormality has occurred in the ECU 230.
  • the update control unit 221 cannot acquire the operating state of the ECU 230 even if the ECU 230 is restarted a predetermined number of times or more, and an abnormality occurs in the ECU 230. It may be determined that it was. Further, even if the update control unit 221 can acquire the operating state of the ECU 230, if the operating state is a significantly different operating state from the assumption in advance, it may determine that an abnormality has occurred in the ECU 230.
  • the operating state is, for example, the CPU usage amount, the memory usage amount, the communication frequency, the communication pattern, etc.
  • the case where the operating state is significantly different from the previously assumed operating state is the case where at least one of the CPU usage amount, the memory usage amount, the communication frequency, and the communication pattern deviates from the respective assumed ranges. is there.
  • the program executed by the ECU 230 is stored in both the first storage area 241 and the second storage area 242 of the virtual storage, so that the switching unit 222 has a switching unit 222.
  • a processing unit that selects one of two programs stored in each of the two storage areas as a program to be executed by the ECU 230.
  • the switching unit 222 switches the program executed by the ECU 230 at startup from the first program to the second program stored in the other storage area after the second program is stored in the other storage area. ..
  • the switching unit 222 stores the program to be executed by the ECU 230 at startup in one of the storage areas from the second program. Change to the program again.
  • the virtual storage host unit 223 is a processing unit that provides the storage unit 240 as virtual storage to the ECU 230 by using the storage 23 that realizes the storage unit 240.
  • the virtual storage host unit 223 is accessed from the ECU 230 having a virtual client function, and provides the real storage area of the storage 23 as a virtual first storage area 241 and a second storage area 242.
  • the ECU 230 has a control unit 231, a state detection unit 232, and a virtual storage client unit 233.
  • the control unit 231 is a processing unit that executes the first program and realizes the function of the ECU 230. Specifically, the control unit 231 controls the virtual storage client unit 233, accesses the storage unit 240 via the management ECU 220, and stores it in one of the storage areas 241 and the second storage area 242. Execute the first program that has been executed.
  • the state detection unit 232 periodically acquires the operating state of the ECU 230 at regular intervals while the ECU 230 is starting up, and notifies the management ECU 220 of the acquired operating state.
  • the state detection unit 232 cannot operate due to an abnormality in the ECU 230
  • the state detection unit 232 cannot notify the management ECU 220 of the operation state. That is, the fact that the state detection unit 232 cannot notify the management ECU 220 of the operation state indicates that an abnormality has occurred in the operation of the ECU 230.
  • the virtual storage client unit 233 is a processing unit that receives the provision of the storage unit 240 that functions as virtual storage from the virtual storage host unit 223 by exchanging information with the virtual storage host unit 223 of the management ECU 220.
  • FIG. 5 is a flowchart showing an example of a program update operation by the information processing device 210 according to the embodiment.
  • the management ECU 220 determines whether or not the second program has been acquired (S11).
  • the management ECU 220 determines that the second program has been acquired (Yes in S11)
  • the management ECU 220 has a second storage area among the first storage area 241 and the second storage area 242 of the virtual storage that is not used by the ECU 230 at startup. Store the program (S12). If the management ECU 220 determines that the second program has not been acquired, the management ECU 220 returns to step S11.
  • the management ECU 220 switches the storage area used by the ECU 230 at startup to the storage area in which the second program is stored among the first storage area 241 and the second storage area 242 (S13). As a result, the management ECU 220 executes the second program when the ECU 230 is started. The management ECU 220 restarts the ECU 230 after switching the storage area used by the ECU 230 at the time of startup.
  • FIG. 6 is a flowchart showing an example of a program recovery operation by the information processing device 210 according to the embodiment. The recovery operation is performed after the update operation described with reference to FIG. 5 is performed.
  • the management ECU 220 determines whether or not an abnormality has occurred in the ECU 230 that has executed the second program (S21).
  • the management ECU 220 determines that an abnormality has occurred in the ECU 230 (Yes in S21), the second program is stored in the storage area used by the ECU 230 at startup in the first storage area 241 and the second storage area 242. The storage area is switched to the storage area in which the first program is stored (S22). As a result, the management ECU 220 executes the first program when the ECU 230 is started. The management ECU 220 restarts the ECU 230 after switching the storage area used by the ECU 230 at the time of startup.
  • the first program executed by the ECU 230 is stored in one of the storage areas 241 and the second storage area 242 of the virtual storage provided by the management ECU 220.
  • the second program for update is acquired, the second program is stored in the other storage area.
  • the switching unit 222 executes a program executed by the ECU 230 at startup from the second program in one storage area. Change to the first program stored in. According to this, when an abnormality is detected in the second program, the switching unit 222 of the management ECU 220 different from the ECU 230 can switch the program executed by the ECU 230 at startup from the second program to the first program. Therefore, even if the ECU 230 cannot be started or becomes deadlocked by executing the second program having an abnormality, the ECU 230 can be restarted so as to execute the first program that operates normally. Therefore, it is possible to prevent the ECU 230 from malfunctioning.
  • FIG. 7 is a block diagram showing an example of the functional configuration of the information processing apparatus 210A according to the first modification.
  • the information processing device 210A is different from the information processing device 210 of the embodiment in that the management ECU 220A provides the storage unit 240A as virtual storage for the plurality of ECUs 230a and 230b.
  • the differences between the information processing apparatus 210 of the embodiment will be mainly described.
  • the virtual storage host unit 223A provides the storage unit 240A to the plurality of ECUs 230a and 230b.
  • the virtual storage host unit 223A has a plurality of first storage areas 241 and 243, and a plurality of second storage areas 242 and 244, which are accessed by the plurality of ECUs 230a and 230b, respectively.
  • the virtual storage host unit 223A provides the ECU 230a with the first storage area 241 and the second storage area 242, and provides the ECU 230b with the first storage area 243 and the second storage area 244. In this way, the virtual storage host unit 223A provides two independent storage areas for the plurality of ECUs 230a and 230b.
  • One of the storage areas of the first storage area 241 and the second storage area 242 stores a first program executed by the ECU 230a at startup.
  • one of the storage areas of the first storage area 243 and the second storage area 244 stores a first program executed by the ECU 230b at startup.
  • the update control unit 221A performs the same processing as the update control unit 221 of the embodiment for each of the plurality of ECUs 230a and 230b. Specifically, the update control unit 221A acquires a second program for updating the first program of the ECU 230a from an external device, and uses the acquired second program as the first storage area 241 and the second storage area of the virtual storage. It is stored in the other storage area of 242. Similarly, the update control unit 221A acquires the second program for updating the first program of the ECU 230b from the external device, and the acquired second program is used in the first storage area 243 and the second storage area 244 of the virtual storage. Store in the other storage area.
  • the switching unit 222A executes a program executed by the ECU 230a at startup after the second program of the ECU 230a is stored in the other storage area of the first storage area 241 and the second storage area 242 from the first program to the other storage area. Switch to the second program stored in.
  • the switching unit 222A executes a program executed by the ECU 230b at startup after the second program of the ECU 230b is stored in the other storage area of the first storage area 243 and the second storage area 244 from the first program. Switch to the second program stored in the storage area of.
  • the switching unit 222A stores the program to be executed by the ECU 230a at startup in one of the storage areas from the second program. Change to the program again.
  • the switching unit 222A stores the program executed by the ECU 230b at startup in one of the storage areas from the second program. Change to one program again.
  • the program of the ECU can be updated so as not to affect the ECU for each of the plurality of ECUs 230a and 230b.
  • a plurality of ECUs 230a and 230b may have a dependency relationship.
  • the dependency relationship means that the functions of the other ECUs are realized on the premise that the functions of one ECU are realized. That is, in the dependency ECU, if the operation of one ECU is not performed normally, the operation of the other ECU is not performed normally. Therefore, the switching unit 222A may switch the program in consideration of the dependency relationship. Specifically, when an abnormality is detected when at least one of the plurality of ECUs 230a and 230b having a dependency relationship executes the second program, the switching unit 222A activates the plurality of ECUs 230a and 230b, respectively. The program to be executed at times is changed again from the second program to the first program stored in one of the storage areas.
  • the switching unit of the management ECU 220A different from the plurality of ECUs 230a and 230b can switch the program executed by all the ECUs 230a and 230b having a dependency relationship at startup from the second program to the first program. Therefore, even if the ECU 230a is in a state where it cannot be started or becomes deadlocked by executing the second program having an abnormality and adversely affects the ECU 230b, all the plurality of ECUs 230a and 230b are operated normally. You can reboot to run the program. Therefore, it is possible to prevent the plurality of ECUs 230a and 230b from failing.
  • the management ECU 220 and the ECU 230 are realized by any one of n ECUs 22, but the present invention is not limited to this, and one or more processors and a virtualized environment are realized. It may be realized by the memory or storage in which the program for the purpose is stored.
  • FIG. 8 is a block diagram showing an example of the functional configuration of the information processing device 210B according to the second modification.
  • FIG. 9 is a diagram showing a configuration of a virtual machine that realizes the functions of the information processing device 210B.
  • the information processing device 210B includes a management VM (Virtual Machine) 220B, a plurality of VMs (Virtual Machine) 230Ba and 230Bb, a monitoring unit 250, and a shared memory 260.
  • the information processing device 210B has a virtual machine virtually realized by software on one or more hardware.
  • the function of the information processing device 210B is realized in a hypervisor type virtual environment.
  • the management VM 220B has the same function as the management ECU 220 according to the embodiment.
  • the plurality of VM230Ba and 230Bb have the same functions as the ECUs 230a and 230b according to the embodiment.
  • the monitoring unit 250 periodically acquires the operating state from the state detecting unit 232 of the VM230Ba and 230Bb, and outputs the acquired operating state to the update control unit 221 of the management VM220B.
  • the monitoring unit 250 is realized as a processing unit different from the management VM220B, VM230Ba, and 230Bb, the operating state from each VM can be more effectively controlled without depending on the management VM220B, VM230Ba, and 230Bb. Can be obtained.
  • the shared memory 260 provides a storage area by the virtual storage function. In this way, since the storage area of the program of each VM is realized by the shared memory 260, information can be exchanged between the management VM 220B and the VM 230Ba, 230Bb at high speed.
  • the update control unit 221 of the management ECU 220 acquires the second program for updating the first program from the external device, and the acquired second program is used as the first storage area 241 and the first storage area 241 of the virtual storage. 2
  • the process of storing in the other storage area of the storage area 242 is performed, but the present invention is not limited to this, and the ECU 230 may further have an update control unit that performs the process.
  • the rewriting function of the ECU 230 is special, rewriting according to the function of the ECU 230 can be realized.
  • the switching unit 222 and 222A is assumed to be possessed by the management ECU 220, but the present invention is not limited to this, and a processing unit or controller different from the management ECU 220 and the ECU 230 may have the switching unit 222 and 222A.
  • the automobile 200 is given as an example of the moving body, but the moving body is not limited to the automobile 200, but may be another vehicle, an unmanned vehicle, a flying object such as a drone, or the like. There may be.
  • the mobile body includes an information processing device 210 and a mobile body main body on which the information processing device 210 is mounted. Further, the information processing device 210 is not limited to, for example, a computer system mounted on a mobile body, and may be applied to any computer system as long as it has a plurality of controls.
  • each component may be realized by being composed of dedicated hardware or by executing a software program suitable for each component.
  • Each component may be realized by a program execution unit such as a CPU or a processor reading and executing a software program recorded on a recording medium such as a hard disk or a semiconductor memory.
  • the software that realizes the distribution rule generation method of each of the above embodiments is the following program.
  • this program has a first control and a first storage area and a second storage area in which a first program executed by the first control at startup is stored in the computer.
  • An information processing method executed by an information processing device including a second control that provides virtual storage to the first control, and a second program for updating the first program is acquired from an external device.
  • the acquired second program is stored in the other storage area of the first storage area and the second storage area, and after the second program is stored in the other storage area, the first controller Is to execute an information processing method for switching a program to be executed at startup from the first program to the second program stored in the other storage area.
  • the present disclosure is applicable to an information processing device or the like that can update the program of the control to be updated so as not to affect the control.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

情報処理装置(210)は、ECU(230)と、一方の記憶領域にECU(230)が起動時に実行する第1プログラムが格納されている、第1記憶領域(241)および第2記憶領域(242)を有する仮想ストレージをECU(230)に提供する管理ECU(220)と、外部装置から第1プログラムの更新用の第2プログラムを取得し、取得した第2プログラムを第1記憶領域(241)および第2記憶領域(242)の他方の記憶領域に格納させる更新制御部(221)と、第2プログラムが他方の記憶領域に格納された後で、ECU(230)が起動時に実行するプログラムを第1プログラムから他方の記憶領域に格納された第2プログラムに切り替える切替部(222)と、を備える。

Description

情報処理装置、移動体および情報処理方法
 本開示は、情報処理装置、移動体および情報処理方法に関する。
 特許文献1では、自動車に搭載される電子機器の制御用ソフトウェアの更新において、更新バージョンプログラムを現行バージョンプログラムとは異なる格納エリアに格納した後で、更新バージョンプログラムの格納エリアを現行バージョンプログラムの格納エリアに切り替える自動車用制御ユニットが開示されている。
特開2006-301960号公報
 本開示は、更新対象の制御器のプログラムを当該制御器に影響を与えないように更新することができる情報処理装置などを提供する。
 本開示における情報処理装置は、第1制御器と、一方の記憶領域に前記第1制御器が起動時に実行する第1プログラムが格納されている、第1記憶領域および第2記憶領域を有する仮想ストレージを前記第1制御器に提供する第2制御器と、外部装置から前記第1プログラムの更新用の第2プログラムを取得し、取得した前記第2プログラムを前記第1記憶領域および前記第2記憶領域の他方の記憶領域に格納させる更新制御部と、前記第2プログラムが前記他方の記憶領域に格納された後で、前記第1制御器が起動時に実行するプログラムを前記第1プログラムから前記他方の記憶領域に格納された前記第2プログラムに切り替える切替部と、を備える。
 なお、これらの全般的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
 本開示における情報処理装置などは、更新対象の制御器のプログラムを当該制御器に影響を与えないように更新することができる。
図1は、実施の形態に係るデータ配信システムの概略図である。 図2は、実施の形態に係るサーバのハードウェア構成の一例を示すブロック図である。 図3は、実施の形態に係る移動体のハードウェア構成の一例を示すブロック図である。 図4は、実施の形態に係る情報処理装置の機能構成の一例を示すブロック図である。 図5は、実施の形態に係る情報処理装置によるプログラムの更新動作の一例を示すフローチャートである。 図6は、実施の形態に係る情報処理装置によるプログラムの復旧動作の一例を示すフローチャートである。 図7は、変形例1に係る情報処理装置の機能構成の一例を示すブロック図である。 図8は、変形例2に係る情報処理装置の機能構成の一例を示すブロック図である。 図9は、情報処理装置の機能を実現する仮想マシンの構成を示す図である。
 (本発明の基礎となった知見)
 本発明者らは、「背景技術」の欄において記載した、自動車用制御ユニットに関し、以下の問題が生じることを見出した。
 特許文献1の自動車用制御ユニット(ECU:Electronic Control Unit)では、更新後のプログラムに不具合が生じている場合、ECUが更新後のプログラムを実行したときに起動不能になる、または、起動したとしてもデッドロックになることがある。このように、ECUが起動不能またはデッドロックになると、ECUが動作できなくなるため、新しいプログラムを古いプログラムとは異なる格納エリアに格納したとしても、古いプログラムを用いてECUを再起動することができないという課題がある。
 また、複数のECUがそれぞれで独立してプログラムの更新を行う場合、ECU毎に処理能力が異なることが多いため、プログラムの更新品質にばらつきが生じてしまうという課題がある。例えば、プログラムの更新指示を更新対象とは異なる管理ECUが行う場合、更新対象のECUは、管理ECUからの更新指示に応じてプログラムの更新を自身で行うことがある。管理ECUは、プログラムの更新品質に各ECUでばらつきが生じないように各ECUにおけるプログラムの更新を管理しようとすると、例えば、各ECUの処理能力に応じた条件を満たすようにプログラムの更新指示をするなどの工夫が必要になる。つまり、管理ECUに各ECUのプログラムの更新品質を管理するための機能を実装する必要があり、当該機能を実現するためのプログラムを用意する必要がある。
 このような課題を解決するために、発明者らは、更新対象の制御器のプログラムを、当該制御器に影響を与えないように、更新対象の制御器とは別の制御器に管理させることができる情報処理装置および情報処理方法を見出すに至った。
 本開示の一態様に係る情報処理装置は、第1制御器と、一方の記憶領域に前記第1制御器が起動時に実行する第1プログラムが格納されている、第1記憶領域および第2記憶領域を有する仮想ストレージを前記第1制御器に提供する第2制御器と、外部装置から前記第1プログラムの更新用の第2プログラムを取得し、取得した前記第2プログラムを前記第1記憶領域および前記第2記憶領域の他方の記憶領域に格納させる更新制御部と、前記第2プログラムが前記他方の記憶領域に格納された後で、前記第1制御器が起動時に実行するプログラムを前記第1プログラムから前記他方の記憶領域に格納された前記第2プログラムに切り替える切替部と、を備える。
 これによれば、第1制御器が実行する第1プログラムは、第2制御器が提供する仮想ストレージの第1記憶領域および第2記憶領域の一方の記憶領域に格納されており、更新用の第2プログラムが取得されると第2プログラムは他方の記憶領域に格納される。その後、第1制御器が起動時に実行するプログラムが第2プログラムに切り替えられるため、第1制御器のプログラムの更新を、第1制御器を用いずに行うことができる。よって、更新対象の第1制御器のプログラムを第1制御器に影響を与えないように更新することができる。
 また、前記切替部は、前記第2プログラムを実行した第1制御器に異常が検知された場合、前記第1制御器が起動時に実行するプログラムを前記第2プログラムから前記一方の記憶領域に格納されている前記第1プログラムに再変更してもよい。
 これによれば、第2プログラムに異常が検知された場合、第1制御器とは異なる切替部が、第1制御器が起動時に実行するプログラムを第2プログラムから第1プログラムに切り替えることができる。よって、第1制御器が異常がある第2プログラムを実行することで起動不能またはデッドロックになったとしても、第1制御器を、正常に動作する第1プログラムを実行するように再起動することができる。このため、第1制御器が機能しなくなることを抑制することができる。
 また、前記第1制御器は、前記更新制御部を有してもよい。
 このため、第1制御器が第2プログラムを他方の記憶領域に格納することができる。
 また、前記第2制御器は、前記更新制御部を有してもよい。
 このため、第2制御器が第2プログラムを他方の記憶領域に格納することができる。
 また、前記情報処理装置は、複数の前記第1制御器を備え、前記第2制御器による前記仮想ストレージは、前記複数の第1制御器にそれぞれアクセスされる、複数の前記第1記憶領域および複数の前記第2記憶領域を有してもよい。
 このため、複数の第1制御器のそれぞれについて、当該第1制御器のプログラムを当該第1制御器に影響を与えないように更新することができる。
 また、前記複数の第1制御器は、依存関係にある複数の依存制御器を有し、前記複数の依存制御器のそれぞれについて、前記仮想ストレージは、当該依存制御器に対応する前記第1記憶領域および前記第2記憶領域を有し、当該依存制御器に対応する前記第1記憶領域および前記第2記憶領域の一方の記憶領域は、当該依存制御器の起動時に前記当該依存制御器が実行する第1プログラムを格納しており、前記更新制御部は、前記外部装置から当該依存制御器に対応する更新用の第2プログラムを取得した場合、取得した前記第2プログラムを当該依存制御器に対応する前記第1記憶領域および前記第2記憶領域の他方の記憶領域に格納させ、前記切替部は、前記第2プログラムが前記他方の記憶領域に格納された後で、当該依存制御器が起動時に実行するプログラムを前記第1プログラムから前記他方の記憶領域に格納された前記第2プログラムに切り替え、前記切替部は、前記複数の依存制御器のうちの少なくとも1つの依存制御器が第2プログラムを実行したときに異常が検知された場合、前記複数の依存制御器がそれぞれ起動時に実行するプログラムを、前記第2プログラムから前記一方の記憶領域に格納されている前記第1プログラムに再変更してもよい。
 これによれば、複数の依存制御器のうちの1つの依存制御器の第2プログラムに異常が検知された場合、複数の依存制御器とは異なる切替部が、全ての依存制御器が起動時に実行するプログラムを第2プログラムから第1プログラムに切り替えることができる。よって、一部の依存制御器が異常がある第2プログラムを実行することで起動不能またはデッドロックになって他の依存制御器に悪影響を及ぼす状態となったとしても、全ての複数の依存制御器を、正常に動作する第1プログラムを実行するように再起動することができる。このため、複数の依存制御器が機能しなくなることを抑制することができる。
 また、前記第1制御器と前記第2制御器はECUであってもよい。
 また、前記第1制御器と前記第2制御器は、CANにより相互に通信可能であってもよい。
 また、本開示の一態様に係る移動体は、上記の情報処理装置と、前記情報処理装置が搭載された移動体本体と、を備える。
 これによれば、移動体本体に搭載される情報処理装置では、第1制御器が実行する第1プログラムは、第2制御器が提供する仮想ストレージの第1記憶領域および第2記憶領域の一方の記憶領域に格納されており、更新用の第2プログラムが取得されると第2プログラムは他方の記憶領域に格納される。その後、第1制御器が起動時に実行するプログラムが第2プログラムに切り替えられるため、第1制御器のプログラムの更新を、第1制御器を用いずに行うことができる。よって、更新対象の第1制御器のプログラムを第1制御器に影響を与えないように更新することができる。
 なお、これらの全般的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
 以下、適宜図面を参照しながら、実施の形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。
 なお、発明者らは、当業者が本開示を十分に理解するために添付図面および以下の説明を提供するのであって、これらによって請求の範囲に記載の主題を限定することを意図するものではない。
 (実施の形態)
 以下、図1~図9を用いて、実施の形態を説明する。
 [構成]
 図1は、実施の形態に係る自動車への更新用のプログラムを配信するシステムの概略図である。
 具体的には、図1において、サーバ100、自動車200、通信ネットワーク300および移動体通信網の基地局310が示されている。
 サーバ100は、自動車200が備えるECUなどの電子機器のプログラム(ファームウェア)を記憶しており、自動車200に当該プログラムを通信ネットワーク300を介して提供する装置である。
 自動車200は、基地局310を介して移動体通信網に通信接続することが可能な移動体である。
 このように、図1では、OTA(Over The Air)で、自動車200のECUの更新用のプログラムが自動車200に配信されることで、ECUのプログラムが更新されるための構成例が示されている。なお、ECUのプログラムの更新方法は、OTAを用いて更新することに限らない。例えば、更新用の装置を自動車200に有線接続して、更新用の装置を介して記録媒体に記録された更新用プログラムを、自動車200のECUに適用するようにしてもよい。
 図2は、実施の形態に係るサーバのハードウェア構成の一例を示すブロック図である。
 図2に示すように、サーバ100は、ハードウェア構成として、CPU(Central Processing Unit)11と、メインメモリ12と、ストレージ13と、通信IF(Interface)14とを備える。
 CPU11は、ストレージ13等に記憶された制御プログラムを実行するプロセッサである。
 メインメモリ12は、CPU11が制御プログラムを実行するときに使用するワークエリアとして用いられる揮発性の記憶領域である。
 ストレージ13は、制御プログラム、コンテンツなどを保持する不揮発性の記憶領域である。
 通信IF14は、通信ネットワーク300を介して複数の自動車200と通信する通信インタフェースである。通信IF14は、例えば、有線LANインタフェースである。なお、通信IF14は、無線LANインタフェースであってもよい。また、通信IF14は、LANインタフェースに限らずに、通信ネットワークとの通信接続を確立できる通信インタフェースであれば、どのような通信インタフェースであってもよい。
 図3は、実施の形態に係る自動車200が備える情報処理装置210のハードウェア構成の一例を示すブロック図である。
 図3に示すように、情報処理装置210は、ハードウェア構成として、TCU(Telematics Control Unit)21と、n個のECU22とを備える。なお、図3には、複数の自動車200それぞれの構成が示されている。なお、情報処理装置210は、図3に示されるハードウェア構成を全て含んでいなくてもよい。例えば、情報処理装置210は、TCU21を有していなくてもよい。
 TCU21は、自動車200が通信ネットワーク300との間で無線通信を行う通信ユニットである。TCU21は、移動体通信網の規格に対応したセルラモジュールを含む通信ユニットである。
 n個のECU22は、自動車200が備えるエンジン、モータ、メータ、トランスミッション、ブレーキ、ステアリング、パワーウィンドウ、エアコンなどの各種機器の制御を実行する制御回路である。例えば、n個のECU22は、これらの各種機器のそれぞれに対応して設けられている。n個のECU22のそれぞれは、図示しないが、プログラムを記憶する記憶部を備える。記憶部は、例えば、不揮発性のメモリである。また、n個のECUは、例えば、イーサネット(登録商標)に準拠した通信方式やCAN(Controller Area Network)等の通信方式により相互に通信可能に構成されている。
 ストレージ23は、制御プログラムなどを保持する不揮発性の記憶領域である。
 次に、自動車200の情報処理装置210の機能構成について図4を用いて説明する。
 図4は、実施の形態に係る情報処理装置210の機能構成の一例を示すブロック図である。
 情報処理装置210は、管理ECU220と、ECU230と、記憶部240とを備える。ECU220とECU230とは、例えば、イーサネット(登録商標)に準拠した通信方式やCAN等の通信方式により相互に通信可能に構成されている。
 管理ECU220は、ECU230が実行するプログラムの更新を管理するECUである。管理ECU220は、ECU230に仮想ストレージとして機能する記憶部240を提供する。管理ECU220は、例えば、n個のECU22のうちの少なくとも1つのECUにより実現される。管理ECU220は、TCU21を含んでいてもよい。管理ECU220は、第2制御器の一例である。
 記憶部240は、管理ECU220を介して仮想ストレージとしてECU230に提供される。仮想ストレージは、第1記憶領域241および第2記憶領域242を有する。第1記憶領域241および第2記憶領域242の一方の記憶領域には、ECU230が起動時に実行する第1プログラムが格納されている。第1プログラムは、ECU230が現在使用中のプログラムである。記憶部240は、ストレージ23により実現される。
 ECU230は、記憶部240の第1プログラムが格納されている記憶領域にアクセスし、第1プログラムを実行する。ECU230は、起動時に第1プログラムを実行することで自身の機能を実現する。ECU230は、例えば、n個のECU22のうちの管理ECU220を実現するECU22とは異なる少なくとも1つのECUにより実現される。ECU230は、第1制御器の一例である。
 以下、管理ECU220およびECU230の具体的な機能について説明する。
 管理ECU220は、具体的には、更新制御部221と、切替部222と、仮想ストレージホスト部223とを有する。
 更新制御部221は、ECU230が実行するプログラムの更新を制御する。更新制御部221は、具体的には、外部装置から第1プログラムの更新用の第2プログラムを取得し、取得した第2プログラムを、仮想ストレージの第1記憶領域241および第2記憶領域242の他方の記憶領域に格納させる。他方の記憶領域は、第1記憶領域241および第2記憶領域242のうちで、ECU230が現在使用している第1プログラムが格納されていない方の記憶領域である。なお、外部装置は、例えば、サーバ100、または、更新用の装置である。
 また、更新制御部221は、ECU230が第2プログラムを実行したときに、ECU230の動作に異常が生じたことを検知する。更新制御部221は、例えば、ECU230の動作状態をECU230から定期的に取得しており、ECU230が第2プログラムを実行したときに、ECU230の動作状態を前回取得した時から所定期間以上取得できない場合に、ECU230に異常が生じたと判定してもよい。また、ECU230の動作状態を前回取得した時から所定期間以上取得できない場合、更新制御部221は、ECU230を所定回数以上再起動させてもECU230の動作状態を取得できない場合に、ECU230に異常が生じたと判定してもよい。また、更新制御部221は、ECU230の動作状態を取得できても、動作状態が事前の想定から大きく異なる動作状態である場合には、ECU230に異常が生じたと判定してもよい。ここで、動作状態とは、例えば、ECU230を構成するCPU(Central Processing Unit)およびメモリ(RAM:Random Access Memory)についての、CPUの利用量、メモリの利用量、通信頻度、通信パターンなどである。つまり、動作状態が事前の想定から大きく異なる動作状態である場合とは、CPUの利用量、メモリの利用量、通信頻度、及び通信パターンの少なくとも1つがそれぞれの想定される範囲から逸脱する場合である。
 第2プログラムが他方の記憶領域に格納された後では、仮想ストレージの第1記憶領域241および第2記憶領域242の両方にECU230が実行するプログラムが格納されることとなるため、切替部222は、ECU230が実行するプログラムとして2つの記憶領域にそれぞれ記憶されている2つのプログラムのうちの1つを選択する処理部である。具体的には、切替部222は、第2プログラムが他方の記憶領域に格納された後で、ECU230が起動時に実行するプログラムを第1プログラムから他方の記憶領域に格納された第2プログラムに切り替える。また、切替部222は、更新制御部221により第2プログラムを実行したECU230に異常が検知された場合、ECU230が起動時に実行するプログラムを第2プログラムから一方の記憶領域に格納されている第1プログラムに再変更する。
 仮想ストレージホスト部223は、記憶部240を実現しているストレージ23を用いて、ECU230に対して仮想ストレージとしての記憶部240を提供する処理部である。仮想ストレージホスト部223は、仮想クライアント機能を有するECU230からアクセスされ、ストレージ23の実記憶領域を、仮想的な第1記憶領域241および第2記憶領域242として提供する。
 ECU230は、具体的には、制御部231と、状態検知部232と、仮想ストレージクライアント部233とを有する。
 制御部231は、第1プログラムを実行して、ECU230の機能を実現する処理部である。制御部231は、具体的には、仮想ストレージクライアント部233を制御して、管理ECU220を介して記憶部240にアクセスし、第1記憶領域241および第2記憶領域242の一方の記憶領域に格納されている第1プログラムを実行する。
 状態検知部232は、ECU230が起動中において、一定間隔で定期的にECU230の動作状態を取得し、取得した動作状態を管理ECU220に通知する。状態検知部232は、ECU230に異常が生じて動作できなくなると、動作状態を管理ECU220に通知できなくなる。つまり、状態検知部232が動作状態を管理ECU220に通知できないことが、ECU230の動作に異常が生じたことを示している。
 仮想ストレージクライアント部233は、管理ECU220の仮想ストレージホスト部223との間で情報をやり取りすることで、仮想ストレージホスト部223から仮想ストレージとして機能する記憶部240の提供を受ける処理部である。
 [動作]
 以上のように構成された情報処理装置210について、その動作を以下に説明する。
 図5は、実施の形態に係る情報処理装置210によるプログラムの更新動作の一例を示すフローチャートである。
 管理ECU220は、第2プログラムを取得したか否かを判定する(S11)。
 管理ECU220は、第2プログラムを取得したと判定した場合(S11でYes)、仮想ストレージの第1記憶領域241および第2記憶領域242のうちでECU230が起動時に使用していない記憶領域に第2プログラムを格納する(S12)。管理ECU220は、第2プログラムを取得していないと判定した場合、ステップS11に戻る。
 次に、管理ECU220は、ECU230が起動時に使用する記憶領域を、第1記憶領域241および第2記憶領域242のうちで第2プログラムを格納した記憶領域に切り替える(S13)。これにより、管理ECU220は、ECU230の起動時に第2プログラムを実行させる。なお、管理ECU220は、ECU230が起動時に使用する記憶領域を切り替えた後で、ECU230を再起動する。
 図6は、実施の形態に係る情報処理装置210によるプログラムの復旧動作の一例を示すフローチャートである。復旧動作は、図5で説明した更新動作が行われた後に行われる。
 管理ECU220は、第2プログラムを実行したECU230に異常が生じたか否かを判定する(S21)。
 管理ECU220は、ECU230に異常が生じたと判定した場合(S21でYes)、ECU230が起動時に使用する記憶領域を、第1記憶領域241および第2記憶領域242のうちで、第2プログラムが記憶されている記憶領域から第1プログラムが記憶されている記憶領域に切り替える(S22)。これにより、管理ECU220は、ECU230の起動時に第1プログラムを実行させる。なお、管理ECU220は、ECU230が起動時に使用する記憶領域を切り替えた後で、ECU230を再起動する。
 [効果など]
 本実施の形態に係る情報処理装置210によれば、ECU230が実行する第1プログラムは、管理ECU220が提供する仮想ストレージの第1記憶領域241および第2記憶領域242の一方の記憶領域に格納されており、更新用の第2プログラムが取得されると第2プログラムは他方の記憶領域に格納される。その後、ECU230が起動時に実行するプログラムが第2プログラムに切り替えられるため、ECU230のプログラムの更新を、ECU230を用いずに行うことができる。よって、更新対象のECU230のプログラムを動作中のECU230に影響を与えないように更新することができる。
 また、本実施の形態に係る情報処理装置210において、切替部222は、第2プログラムを実行したECU230に異常が検知された場合、ECU230が起動時に実行するプログラムを第2プログラムから一方の記憶領域に格納されている第1プログラムに再変更する。これによれば、第2プログラムに異常が検知された場合、ECU230とは異なる管理ECU220が有する切替部222が、ECU230が起動時に実行するプログラムを第2プログラムから第1プログラムに切り替えることができる。よって、ECU230が異常がある第2プログラムを実行することで起動不能またはデッドロックになったとしても、ECU230を、正常に動作する第1プログラムを実行するように再起動することができる。このため、ECU230が機能しなくなることを抑制することができる。
 [変形例]
 (変形例1)
 上記実施の形態に係る情報処理装置210では、1つのECU230に対して仮想ストレージとしての第1記憶領域241および第2記憶領域242が管理ECU220によって提供される例を説明したが、複数のECU230a、230bに対して仮想ストレージが提供されてもよい。図7は、変形例1に係る情報処理装置210Aの機能構成の一例を示すブロック図である。
 情報処理装置210Aは、実施の形態の情報処理装置210と比較して、管理ECU220Aが複数のECU230a、230bに対して仮想ストレージとしての記憶部240Aを提供している点が異なる。以下では、主に、実施の形態の情報処理装置210の異なる点について説明する。
 管理ECU220Aでは、仮想ストレージホスト部223Aが複数のECU230a、230bに記憶部240Aを提供している。仮想ストレージホスト部223Aは、複数のECU230a、230bにそれぞれアクセスされる、複数の第1記憶領域241、243、および、複数の第2記憶領域242、244を有する。具体的には、仮想ストレージホスト部223Aは、ECU230aに第1記憶領域241および第2記憶領域242を提供し、ECU230bに第1記憶領域243および第2記憶領域244を提供する。このように、仮想ストレージホスト部223Aは、複数のECU230a、230bに対してそれぞれ独立した2つの記憶領域を提供する。第1記憶領域241および第2記憶領域242の一方の記憶領域には、ECU230aが起動時に実行する第1プログラムが格納されている。同様に、第1記憶領域243および第2記憶領域244の一方の記憶領域には、ECU230bが起動時に実行する第1プログラムが格納されている。
 更新制御部221Aは、複数のECU230a、230bのそれぞれに対して、実施の形態の更新制御部221と同様の処理を行う。更新制御部221Aは、具体的には、外部装置からECU230aの第1プログラムの更新用の第2プログラムを取得し、取得した第2プログラムを、仮想ストレージの第1記憶領域241および第2記憶領域242の他方の記憶領域に格納させる。同様に、更新制御部221Aは、外部装置からECU230bの第1プログラムの更新用の第2プログラムを取得し、取得した第2プログラムを、仮想ストレージの第1記憶領域243および第2記憶領域244の他方の記憶領域に格納させる。
 切替部222Aは、ECU230aの第2プログラムが第1記憶領域241および第2記憶領域242の他方の記憶領域に格納された後で、ECU230aが起動時に実行するプログラムを第1プログラムから他方の記憶領域に格納された第2プログラムに切り替える。同様に、切替部222Aは、ECU230bの第2プログラムが第1記憶領域243および第2記憶領域244の他方の記憶領域に格納された後で、ECU230bが起動時に実行するプログラムを第1プログラムから他方の記憶領域に格納された第2プログラムに切り替える。
 また、切替部222Aは、更新制御部221Aにより第2プログラムを実行したECU230aに異常が検知された場合、ECU230aが起動時に実行するプログラムを第2プログラムから一方の記憶領域に格納されている第1プログラムに再変更する。同様に、切替部222Aは、更新制御部221Aにより第2プログラムを実行したECU230bに異常が検知された場合、ECU230bが起動時に実行するプログラムを第2プログラムから一方の記憶領域に格納されている第1プログラムに再変更する。
 変形例1の情報処理装置210Aでは、複数のECU230a、230bのそれぞれについて、当該ECUのプログラムを当該ECUに影響を与えないように更新することができる。
 なお、変形例1において、複数のECU230a、230bが依存関係にある場合がある。依存関係にあるとは、一のECUの機能が実現されていることが前提で他のECUの機能が実現されている関係にあることである。つまり、依存関係のECUでは、一のECUの動作が正常に行われないと、他のECUの動作も正常に行われない。このため、切替部222Aは、依存関係について考慮して、プログラムの切り替えを行ってもよい。具体的には、切替部222Aは、依存関係にある複数のECU230a、230bのうちの少なくとも1つのECUが第2プログラムを実行したときに異常が検知された場合、複数のECU230a、230bがそれぞれ起動時に実行するプログラムを、第2プログラムから一方の記憶領域に格納されている第1プログラムに再変更する。
 これによれば、複数のECU230a、230bのうちの1つのECUが第2プログラムを実行したときに当該1つのECUから異常が検知された場合、複数のECU230a、230bとは異なる管理ECU220Aの切替部222Aが、依存関係にある全てのECU230a、230bが起動時に実行するプログラムを第2プログラムから第1プログラムに切り替えることができる。よって、ECU230aが異常がある第2プログラムを実行することで起動不能またはデッドロックになってECU230bに悪影響を及ぼす状態となったとしても、全ての複数のECU230a、230bを、正常に動作する第1プログラムを実行するように再起動することができる。このため、複数のECU230a、230bが機能しなくなることを抑制することができる。
 (変形例2)
 上記実施の形態では、管理ECU220と、ECU230とは、n個のECU22のうちのいずれかで実現されるとしたが、これに限らずに、1以上のプロセッサ、および、仮想化環境を実現するためのプログラムが格納されているメモリまたはストレージにより実現されてもよい。
 図8は、変形例2に係る情報処理装置210Bの機能構成の一例を示すブロック図である。図9は、情報処理装置210Bの機能を実現する仮想マシンの構成を示す図である。
 情報処理装置210Bは、図8に示すように、管理VM(Virtual Machine)220Bと、複数のVM(Virtual Machine)230Ba、230Bbと、監視部250と、共有メモリ260とを備える。情報処理装置210Bは、図9に示すように、1以上のハードウェアの上にソフトウェアにより仮想的に実現される仮想マシンを有する。例えば、情報処理装置210Bの機能は、ハイパーバイザー型の仮想化環境で実現される。
 管理VM220Bは、実施の形態に係る管理ECU220と同様の機能を有する。複数のVM230Ba、230Bbは、実施の形態に係るECU230a、230bと同様の機能を有する。
 監視部250は、VM230Ba、230Bbの状態検知部232から動作状態を定期的に取得し、取得した動作状態を管理VM220Bの更新制御部221に出力する。このように、監視部250は、管理VM220BおよびVM230Ba、230Bbとは異なる処理部として実現されているため、管理VM220BおよびVM230Ba、230Bbに依存することなく、より効果的に各VMからの動作状態を取得することができる。
 共有メモリ260は、仮想ストレージ機能による記憶領域を提供する。このように、共有メモリ260により、各VMのプログラムの記憶領域が実現されているため、管理VM220BおよびVM230Ba、230Bb間の情報の受け渡しを高速に行うことができる。
 (変形例3)
 上記実施の形態では、管理ECU220が有する更新制御部221において、外部装置から第1プログラムの更新用の第2プログラムを取得し、取得した第2プログラムを、仮想ストレージの第1記憶領域241および第2記憶領域242の他方の記憶領域に格納させる処理を行うとしたが、これに限らずに、ECU230が当該処理を行う更新制御部をさらに有していてもよい。これにより、ECU230の書き換え機能が特殊な場合に、ECU230の機能に応じた書き換えを実現することができる。
 (変形例4)
 上記実施の形態では、切替部222、222Aは、管理ECU220が有するとしたが、これに限らずに、管理ECU220およびECU230とは異なる処理部または制御器が有していてもよい。
 (変形例5)
 上記実施の形態では、自動車200を移動体の一例として挙げたが、移動体は、自動車200に限らずに、他の乗り物であってもよいし、無人の車両、ドローンなどの飛行体などであってもよい。移動体は、情報処理装置210と、情報処理装置210が搭載された移動体本体と、を備える。また、情報処理装置210は、例えば、移動体に搭載されるコンピュータシステムに限らずに、複数の制御器を備えていればどのようなコンピュータシステムに適用されてもよい。
 [その他]
 なお、上記実施の形態およびその変形例1~4において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。ここで、上記各実施の形態の配信ルール生成方法などを実現するソフトウェアは、次のようなプログラムである。
 すなわち、このプログラムは、コンピュータに、第1制御器と、一方の記憶領域に前記第1制御器が起動時に実行する第1プログラムが格納されている、第1記憶領域および第2記憶領域を有する仮想ストレージを前記第1制御器に提供する第2制御器と、を備える情報処理装置により実行される情報処理方法であって、外部装置から前記第1プログラムの更新用の第2プログラムを取得し、取得した前記第2プログラムを前記第1記憶領域および前記第2記憶領域の他方の記憶領域に格納させ、前記第2プログラムが前記他方の記憶領域に格納された後で、前記第1制御器が起動時に実行するプログラムを前記第1プログラムから前記他方の記憶領域に格納された前記第2プログラムに切り替える情報処理方法を実行させる。
 以上のように、本開示における技術の例示として、実施の形態を説明した。そのために、添付図面および詳細な説明を提供した。
 したがって、添付図面および詳細な説明に記載された構成要素の中には、課題解決のために必須な構成要素だけでなく、上記技術を例示するために、課題解決のためには必須でない構成要素も含まれ得る。そのため、それらの必須ではない構成要素が添付図面や詳細な説明に記載されていることをもって、直ちに、それらの必須ではない構成要素が必須であるとの認定をするべきではない。
 また、上述の実施の形態は、本開示における技術を例示するためのものであるから、請求の範囲またはその均等の範囲において種々の変更、置き換え、付加、省略などを行うことができる。
 本開示は、更新対象の制御器のプログラムを当該制御器に影響を与えないように更新することができる情報処理装置等に適用可能である。
 11  CPU(Central Processing Unit)
 12  メインメモリ
 13  ストレージ
 14  通信IF(Interface)
 21  TCU(Telematics Control Unit)
 22  ECU(Electronic Control Unit)
 23  ストレージ
100  サーバ
200  自動車
210、210A、210B  情報処理装置
220、220A  管理ECU
220B  管理VM
221、221A  更新制御部
222、222A  切替部
223、223A  仮想ストレージホスト部
230、230a,230b  ECU
230Ba、230Bb  VM
231  制御部
232  状態検知部
233  仮想ストレージクライアント部
240、240A  記憶部
241、243  第1記憶領域
242、244  第2記憶領域
250  監視部
260  共有メモリ
300  通信ネットワーク
310  基地局

Claims (10)

  1.  第1制御器と、
     一方の記憶領域に前記第1制御器が起動時に実行する第1プログラムが格納されている、第1記憶領域および第2記憶領域を有する仮想ストレージを前記第1制御器に提供する第2制御器と、
     外部装置から前記第1プログラムの更新用の第2プログラムを取得し、取得した前記第2プログラムを前記第1記憶領域および前記第2記憶領域の他方の記憶領域に格納させる更新制御部と、
     前記第2プログラムが前記他方の記憶領域に格納された後で、前記第1制御器が起動時に実行するプログラムを前記第1プログラムから前記他方の記憶領域に格納された前記第2プログラムに切り替える切替部と、を備える
     情報処理装置。
  2.  前記切替部は、前記第2プログラムを実行した第1制御器に異常が検知された場合、前記第1制御器が起動時に実行するプログラムを前記第2プログラムから前記一方の記憶領域に格納されている前記第1プログラムに再変更する
     請求項1に記載の情報処理装置。
  3.  前記第1制御器は、前記更新制御部を有する
     請求項1または2に記載の情報処理装置。
  4.  前記第2制御器は、前記更新制御部を有する
     請求項1または2に記載の情報処理装置。
  5.  前記情報処理装置は、複数の前記第1制御器を備え、
     前記第2制御器による前記仮想ストレージは、前記複数の第1制御器にそれぞれアクセスされる、複数の前記第1記憶領域および複数の前記第2記憶領域を有する
     請求項1から4のいずれか1項に記載の情報処理装置。
  6.  前記複数の第1制御器は、依存関係にある複数の依存制御器を有し、
     前記複数の依存制御器のそれぞれについて、
      前記仮想ストレージは、当該依存制御器に対応する前記第1記憶領域および前記第2記憶領域を有し、
      当該依存制御器に対応する前記第1記憶領域および前記第2記憶領域の一方の記憶領域は、当該依存制御器の起動時に前記当該依存制御器が実行する第1プログラムを格納しており、
      前記更新制御部は、前記外部装置から当該依存制御器に対応する更新用の第2プログラムを取得した場合、取得した前記第2プログラムを当該依存制御器に対応する前記第1記憶領域および前記第2記憶領域の他方の記憶領域に格納させ、
      前記切替部は、前記第2プログラムが前記他方の記憶領域に格納された後で、当該依存制御器が起動時に実行するプログラムを前記第1プログラムから前記他方の記憶領域に格納された前記第2プログラムに切り替え、
     前記切替部は、前記複数の依存制御器のうちの少なくとも1つの依存制御器が第2プログラムを実行したときに異常が検知された場合、前記複数の依存制御器がそれぞれ起動時に実行するプログラムを、前記第2プログラムから前記一方の記憶領域に格納されている前記第1プログラムに再変更する
     請求項5に記載の情報処理装置。
  7.  前記第1制御器と前記第2制御器はECUである、
     請求項1から6のいずれか1項に記載の情報処理装置。
  8.  前記第1制御器と前記第2制御器は、CANにより相互に通信可能である、
     請求項1から7のいずれか1項に記載の情報処理装置。
  9.  請求項1からのいずれか1項に記載の情報処理装置と、
     前記情報処理装置が搭載された移動体本体と、を備える、
     移動体。
  10.  第1制御器と、一方の記憶領域に前記第1制御器が起動時に実行する第1プログラムが格納されている、第1記憶領域および第2記憶領域を有する仮想ストレージを前記第1制御器に提供する第2制御器と、を備える情報処理装置により実行される情報処理方法であって、
     外部装置から前記第1プログラムの更新用の第2プログラムを取得し、
     取得した前記第2プログラムを前記第1記憶領域および前記第2記憶領域の他方の記憶領域に格納させ、
     前記第2プログラムが前記他方の記憶領域に格納された後で、前記第1制御器が起動時に実行するプログラムを前記第1プログラムから前記他方の記憶領域に格納された前記第2プログラムに切り替える
     情報処理方法。
PCT/JP2020/043029 2019-12-09 2020-11-18 情報処理装置、移動体および情報処理方法 WO2021117445A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202080025847.9A CN113678101B (zh) 2019-12-09 2020-11-18 信息处理装置、移动体以及信息处理方法
DE112020001541.6T DE112020001541T5 (de) 2019-12-09 2020-11-18 Informationsverarbeitungsvorrichtung, beweglicher gegenstand und informationsverarbeitungsverfahren
US17/493,286 US11947970B2 (en) 2019-12-09 2021-10-04 Information processing device, moving object, and information processing method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019-221804 2019-12-09
JP2019221804A JP7220397B2 (ja) 2019-12-09 2019-12-09 情報処理装置および情報処理方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/493,286 Continuation US11947970B2 (en) 2019-12-09 2021-10-04 Information processing device, moving object, and information processing method

Publications (1)

Publication Number Publication Date
WO2021117445A1 true WO2021117445A1 (ja) 2021-06-17

Family

ID=76313291

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/043029 WO2021117445A1 (ja) 2019-12-09 2020-11-18 情報処理装置、移動体および情報処理方法

Country Status (5)

Country Link
US (1) US11947970B2 (ja)
JP (1) JP7220397B2 (ja)
CN (1) CN113678101B (ja)
DE (1) DE112020001541T5 (ja)
WO (1) WO2021117445A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023007577A1 (ja) * 2021-07-27 2023-02-02 日産自動車株式会社 ソフトウェア更新装置、ソフトウェア更新システム、及びソフトウェア更新方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10243004A (ja) * 1997-02-21 1998-09-11 Honda Motor Co Ltd 車両用ネットワークシステムと車載用オペレーティングシステム
JP2002099517A (ja) * 2000-09-25 2002-04-05 Matsushita Electric Ind Co Ltd スレーブマイクロコンピュータの起動方法およびマイクロコンピュータ装置
JP2010111233A (ja) * 2008-11-05 2010-05-20 Fujitsu Ten Ltd マイクロコンピュータ及びマイクロコンピュートシステム
JP2013041436A (ja) * 2011-08-17 2013-02-28 Nec Engineering Ltd マルチプロセッサシステム及び起動方法
JP2015179411A (ja) * 2014-03-19 2015-10-08 日本電気株式会社 複数cpuの起動回路、複数cpuの起動方法及び複数cpuの起動回路のプログラム
JP2018200510A (ja) * 2017-05-25 2018-12-20 株式会社デンソーテン ソフトウェア更新装置、ソフトウェア更新システム、及び、ソフトウェア更新方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060259207A1 (en) 2005-04-20 2006-11-16 Denso Corporation Electronic control system for automobile
JP4548601B2 (ja) 2005-04-20 2010-09-22 株式会社デンソー 自動車用制御ユニット
EP3412514B1 (en) * 2014-11-12 2019-12-04 Panasonic Intellectual Property Corporation of America Update management method, update management device, and control program
JP6390644B2 (ja) * 2016-03-02 2018-09-19 住友電気工業株式会社 プログラム更新システム、プログラム更新方法及びコンピュータプログラム
JP6361671B2 (ja) * 2016-03-02 2018-07-25 住友電気工業株式会社 プログラム更新システム、プログラム更新方法、中継装置及びコンピュータプログラム
JP6756225B2 (ja) * 2016-10-04 2020-09-16 株式会社オートネットワーク技術研究所 車載更新システム、車載更新装置及び更新方法
JP6724717B2 (ja) * 2016-10-25 2020-07-15 株式会社オートネットワーク技術研究所 車載機器判定システム
JP6747339B2 (ja) * 2017-02-27 2020-08-26 株式会社オートネットワーク技術研究所 プログラム更新方法
JP6911591B2 (ja) * 2017-07-07 2021-07-28 富士通株式会社 情報処理装置、制御装置および情報処理装置の制御方法
JP6915500B2 (ja) * 2017-11-06 2021-08-04 トヨタ自動車株式会社 更新システム、電子制御装置、更新管理装置、及び更新管理方法
JP7027940B2 (ja) 2018-02-20 2022-03-02 株式会社デンソー 制御装置
WO2019187535A1 (ja) * 2018-03-28 2019-10-03 住友電気工業株式会社 制御装置、制御方法、およびコンピュータプログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10243004A (ja) * 1997-02-21 1998-09-11 Honda Motor Co Ltd 車両用ネットワークシステムと車載用オペレーティングシステム
JP2002099517A (ja) * 2000-09-25 2002-04-05 Matsushita Electric Ind Co Ltd スレーブマイクロコンピュータの起動方法およびマイクロコンピュータ装置
JP2010111233A (ja) * 2008-11-05 2010-05-20 Fujitsu Ten Ltd マイクロコンピュータ及びマイクロコンピュートシステム
JP2013041436A (ja) * 2011-08-17 2013-02-28 Nec Engineering Ltd マルチプロセッサシステム及び起動方法
JP2015179411A (ja) * 2014-03-19 2015-10-08 日本電気株式会社 複数cpuの起動回路、複数cpuの起動方法及び複数cpuの起動回路のプログラム
JP2018200510A (ja) * 2017-05-25 2018-12-20 株式会社デンソーテン ソフトウェア更新装置、ソフトウェア更新システム、及び、ソフトウェア更新方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023007577A1 (ja) * 2021-07-27 2023-02-02 日産自動車株式会社 ソフトウェア更新装置、ソフトウェア更新システム、及びソフトウェア更新方法
EP4379540A4 (en) * 2021-07-27 2024-08-14 Nissan Motor SOFTWARE UPDATE DEVICE, SOFTWARE UPDATE SYSTEM, AND SOFTWARE UPDATE METHOD

Also Published As

Publication number Publication date
JP7220397B2 (ja) 2023-02-10
DE112020001541T5 (de) 2022-01-05
CN113678101B (zh) 2024-07-23
US11947970B2 (en) 2024-04-02
US20220027166A1 (en) 2022-01-27
CN113678101A (zh) 2021-11-19
JP2021092875A (ja) 2021-06-17

Similar Documents

Publication Publication Date Title
JP6155507B2 (ja) メモリ管理を有するコンピューティングプラットフォームインターフェース
JP2023075222A (ja) 車両
US9910664B2 (en) System and method of online firmware update for baseboard management controller (BMC) devices
JP4359609B2 (ja) 計算機システム、システムソフトウェア更新方法及び第1サーバ装置
US20140129819A1 (en) Cloud cluster system and boot deployment method for the same
JP2014142957A5 (ja)
US9792150B1 (en) Detecting site change for migrated virtual machines
CN114651229A (zh) 基板管理控制器固件更新
JP2010233006A (ja) サーバシステム、集合型サーバ装置及びmacアドレス管理方法
WO2019156062A1 (ja) 情報処理システム、情報処理装置、情報処理装置のbios更新方法、及び情報処理装置のbios更新プログラム
US10467106B2 (en) Data processing method, data processing system, and non-transitory computer program product for controlling a workload delay time
JP6123626B2 (ja) 処理再開方法、処理再開プログラムおよび情報処理システム
JP3933587B2 (ja) 計算機システム、計算機装置及びオペレーティングシステムの移送方法
CN110874261A (zh) 可用性系统、方法和存储有程序的存储介质
JP2008262419A (ja) 情報処理装置、オペレーティングシステム選択方法、プログラム。
CN108319492B (zh) 复位物理机的方法、装置与系统
US20140181420A1 (en) Distributed cache coherency directory with failure redundancy
WO2021117445A1 (ja) 情報処理装置、移動体および情報処理方法
JP2007304845A (ja) 仮想計算機システムおよびソフトウェア更新方法
CN114185603B (zh) 一种智能加速卡的控制方法、服务器及智能加速卡
US10572151B2 (en) System and method to allocate available high bandwidth memory to UEFI pool services
US11392423B2 (en) Method for running a quorum-based system by dynamically managing the quorum
CN116501343A (zh) 一种程序升级方法、电源及计算设备
US20220391193A1 (en) Ota master, system, method, non-transitory storage medium, and vehicle
WO2021153224A1 (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: 20898410

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 20898410

Country of ref document: EP

Kind code of ref document: A1