Control device and program storage method

The control device relocates programs within the ECU's storage area to create contiguous space, addressing fragmentation issues and maintaining performance by efficiently using available space.

WO2026099971A1PCT designated stage Publication Date: 2026-05-15NISSAN MOTOR CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
NISSAN MOTOR CO LTD
Filing Date
2024-11-07
Publication Date
2026-05-15

AI Technical Summary

Technical Problem

Fragmentation of program storage areas in ECUs leads to inefficient storage and potential performance degradation due to the lack of large continuous unused areas, causing divided program execution and increased scanning times.

Method used

A control device with a program acquisition unit, movement control unit, and program storage unit that relocates existing programs to unused areas within the storage area to create contiguous space for new programs, minimizing fragmentation.

Benefits of technology

This approach delays the progression of fragmentation, ensures efficient storage by utilizing available space, and maintains ECU performance by avoiding divided program execution.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2024039536_15052026_PF_FP_ABST
    Figure JP2024039536_15052026_PF_FP_ABST
Patent Text Reader

Abstract

An ECU (100) is a control device, for a vehicle (10), that realizes respective functions by executing respective programs stored in a program storage region (141). A program acquisition unit (110) acquires a target program that is an update program or a program to be newly added. When there is no storable region, which is a continuous unused region capable of storing the target program, in the program storage region (141), a movement control unit (120) ensures a storable region by moving the program stored in the program storage region (141) to an unused region in the program storage region (141). A program storage unit (130) stores the target program in the storable region.
Need to check novelty before this filing date? Find Prior Art

Description

Control Device and Program Storage Method

[0001] The present invention relates to a control device and a program storage method.

[0002] A vehicle is equipped with an ECU (Electronic Control Unit) which is a control device. Each function of the ECU is realized by a processor included in the ECU executing a software program (hereinafter referred to as a program) stored in a program storage area. Patent Document 1 discloses a technique for downloading an update program from a server and updating the program of the ECU mounted on a vehicle.

[0003] Japanese Patent Application Laid-Open No. 2017-149323

[0004] When updates and additions of each program stored in the program storage area of the ECU are repeated, the program storage area becomes fragmented such that the used areas are arranged discontinuously with small unused areas in between, and a large continuous unused area cannot be secured. In a fragmented program storage area, since a large continuous unused area cannot be secured, newly added programs are often stored by being divided into a plurality of unused areas. When a divided program is executed by the processor, it may take time for scanning, etc., and there is a risk that the performance of the ECU will deteriorate. Also, there are programs for which divided storage is not allowed.

[0005] The present invention has been made in view of the above circumstances, and an object thereof is to provide a control device and a program storage method capable of delaying the progress of fragmentation of the program storage area.

[0006] To achieve the above objective, the control device according to the present invention is a control device that realizes corresponding functions by executing each program stored in the program storage area, and comprises a program acquisition unit, a movement control unit, and a program storage unit. The program acquisition unit acquires a target program, which is an update program or a newly added program. If there is no contiguous unused area in the program storage area that can store the target program, the movement control unit secures a storable area by moving a program stored in the program storage area to an unused area within the program storage area. The program storage unit stores the target program in the storable area.

[0007] This invention secures available storage space by moving a program stored in a program storage area to an unused area within that program storage area when there is no available storage space within that area. This slows down the progression of fragmentation in the program storage area.

[0008] This is a block diagram of a system equipped with an ECU according to an embodiment of the present invention. This is a hardware configuration diagram of an ECU according to an embodiment of the present invention. This is a flowchart of the program storage process according to an embodiment of the present invention. This is a diagram (1) showing an example of the configuration of the program storage area. This is a diagram (2) showing an example of the configuration of the program storage area. This is a diagram (3) showing an example of the configuration of the program storage area.

[0009] Hereinafter, an ECU 100 according to an embodiment of the present invention will be described with reference to the drawings. In each drawing, the same or equivalent parts are denoted by the same reference numerals.

[0010] As shown in Figure 1, the ECU 100 according to an embodiment of the present invention is mounted on a vehicle 10. The ECU 100 is a vehicle control device for driver assistance that has multiple functions to assist in driving the vehicle 10. For example, the ECU 100 has functions to assist in driving, such as emergency braking (FEB), rear emergency braking (RAEB), lane departure prevention (LDP), rear side collision prevention (BSI), autonomous driving (AD), parking assistance (APA), preceding vehicle departure notification (LCDN), and exit safety assistance (OSE). These functions of the ECU 100 are independent of each other, and a program for realizing each function is stored in the program storage area 141. The ECU 100 controls in-vehicle components such as the engine, brakes, steering, and car navigation system by executing each program stored in the program storage area 141. In this way, the ECU 100 realizes each of the driver assistance functions.

[0011] Furthermore, the ECU 100 is connected to the data center 30 wirelessly via the communication device 20, enabling communication. This allows the ECU 100 to obtain update programs from the data center 30 via OTA (Over The Air) and update each program stored in the program storage area 141 to the latest version. The ECU 100 can also obtain new programs from the data center 30 via OTA (Over The Air) and store (install) them in the program storage area 141.

[0012] Next, the hardware configuration of the ECU 100 will be described. The ECU 100 is, for example, a microcomputer. As shown in Figure 2, the ECU 100 comprises a processor 11, RAM (Random Access Memory) 12, ROM (Read Only Memory) 13, flash memory 14, and a communication interface (indicated as communication I / F in the figure) 15, all connected to each other via a bus 16.

[0013] The processor 11 comprises, for example, one or more CPUs (Central Processing Units) and their peripheral circuits, and performs various arithmetic operations. The processor 11 executes a control program 131 stored in the ROM 13, thereby performing program storage operations, such as updating programs stored in the program storage area 141 of the flash memory 14 or adding new programs to the program storage area 141. Details of the program storage operations will be described later. The processor 11 also implements various functions to support the operation of the vehicle 10 by executing each program stored in the program storage area 141. The processor 11 may further include arithmetic circuits such as a logic unit and a numerical unit.

[0014] The RAM 12 functions as the work memory for the processor 11. The ROM 13 stores the control program 131 described above. The control program 131 may also be stored in the flash memory 14.

[0015] The flash memory 14 is a non-volatile semiconductor memory. The flash memory 14 has a program storage area 141. The program storage area 141 stores programs corresponding to each function for assisting the operation of the vehicle 10, which are executed by the processor 11. In addition, the flash memory 14 stores various data used for processing by the processor 11 in areas other than the program storage area 141. Alternatively, storage such as an HDD (Hard Disk Drive) or SSD (Solid State Drive) may be provided in or outside the ECU 100, and the program storage area 141 may be stored in such storage.

[0016] The communication interface 15 includes an interface circuit for connecting the ECU 100 to an in-vehicle network compliant with standards such as CAN (Controller Area Network). The communication interface 15 receives signals from in-vehicle components such as brakes and engines, and the navigation system, and passes them to the processor 11. The communication interface 15 also receives update programs and newly added programs from the data center 30 via the communication device 20 and passes them to the processor 11.

[0017] Furthermore, the communication interface 15 transmits control signals generated by the processor 11 to the in-vehicle components. The control signals received from the communication interface 15 control in-vehicle components such as the engine and brakes, thereby realizing the various driver assistance functions of the ECU 100.

[0018] For example, the ECU 100 implements the functions shown in Figure 1 by having the processor 11 execute the control program 131 stored in the ROM 13. That is, the ECU 100 implements the functions of the program acquisition unit 110, the movement control unit 120, and the program storage unit 130. These units are functionally configured for updating or adding programs stored in the program storage area 141 via OTA. The configuration related to the driving assistance functions, which are the original functions of the ECU 100, and other functional configurations are omitted in Figure 1.

[0019] The program acquisition unit 110 acquires update programs or newly added programs from the data center 30 via the communication device 20. In the following description, the program acquired by the program acquisition unit 110 will be referred to as the target program.

[0020] If there is no contiguous unused area (storable area) in the program storage area 141 where the target program can be stored, the movement control unit 120 will secure a storable area by moving an existing program stored in the program storage area 141 to an unused area within the program storage area 141. At this time, the movement control unit 120 will move the program to the smallest unused area among the movable unused areas. Details of the processing by the movement control unit 120 will be described later.

[0021] The program storage unit 130 stores the target program in a storable area within the program storage region 141. If there are multiple storable areas, the program storage unit 130 stores the target program in the smallest of these storable areas. If the program storage unit 130 cannot secure a storable area within the program storage region 141, it divides the target program into multiple unused areas and stores them there.

[0022] Next, the operation of the program storage process executed by the ECU 100 configured as described above will be explained with reference to the flowchart in Figure 3. For example, when the program acquisition unit 110 of the ECU 100 acquires an update program for updating a program stored in the program storage area 141, or a program to be newly added to the program storage area 141 (hereinafter, both will be collectively referred to as the target program), via OTA from the data center 30 through the communication device 20, the program storage process is started.

[0023] First, the program storage unit 130 extracts a contiguous unused area from the program storage area 141 (step S101). If the target program is an update program, the program storage unit 130 determines that the area in the program storage area 141 where the program to be updated is stored is unused and extracts a contiguous unused area. This is because when a program is updated, the program to be updated is deleted, and the area where this program was stored becomes unused.

[0024] Here, the process of step S101 will be explained using a specific example. For example, suppose that programs A to E are stored in the program storage area 141, as shown in Figure 4A. And the target program is the program to be newly added. In this case, the program storage unit 130 extracts two areas as consecutive unused areas: area a between program B and program C, and area b between program D and program E.

[0025] On the other hand, the target program is a program for updating program A. In this case, the program storage unit 130 determines that the storage area for program A to be updated is unused and extracts a contiguous unused area. That is, in this case, the program storage unit 130 extracts three contiguous unused areas: the storage area for program A, area a between program B and program C, and area b between program D and program E.

[0026] Returning to Figure 3, the program storage unit 130 then determines whether there is a storage area (storable area) in the extracted unused area that is larger than or equal to the size of the target program (step S102). If there is a storage area (step S102; Yes), the program storage unit 130 stores the target program in that storage area (step S103). If there are multiple storage areas, the program storage unit 130 stores the target program in the smallest storage area among them. This ensures that the target program is stored in an unused area that is as close to the minimum size as possible.

[0027] On the other hand, if there is no available storage area (step S102; No), the movement control unit 120 extracts a program stored in a location adjacent to the unused area extracted in step S101 (step S104). Then, from the extracted programs, the movement control unit 120 selects the largest program that has not yet been selected (step S105). In the following description, the program selected in step S105 will be referred to as the selected program.

[0028] Then, the movement control unit 120 determines whether or not there is an unused area in the program storage area 141 that can move the selected program (i.e., an unused area larger than the selected program) (step S106).

[0029] If there are no such unused areas (step S106; No), the process proceeds to step S109. On the other hand, if there are such unused areas (step S106; Yes), the move control unit 120 moves the selected program to the smallest unused area in the unused areas to which the selected program can be moved (step S107).

[0030] Then, the movement control unit 120 determines again whether there is a storage area for the target program in the program storage area 141 after the selected program has been moved (step S108).

[0031] If there is no available storage area (step S108; No), the process proceeds to step S109. On the other hand, if there is available storage area (step S108; Yes), the movement control unit 120 stores the target program in the available storage area (step S103), and the program storage process ends.

[0032] In step S109, the movement control unit 120 determines whether all the programs extracted in step S104 were selected in step S105. If there are any unselected programs (step S109; No), the process returns to step S105, and the movement control unit 120 moves the selected programs if they are movable, and if there is a storable area after the move, it repeats the process of storing the target programs in that storable area.

[0033] On the other hand, if all extracted programs are selected (step S109; Yes), it means that the programs in the program storage area 141 could not be moved, or even if the programs in the program storage area 141 were moved, it would not be possible to secure storage space for the target programs. Therefore, the program storage unit 130 determines whether or not the target programs can be stored by dividing them into multiple unused areas (step S110). If there is almost no unused space, or if the target program is not permitted to be stored in division, it is determined that it cannot be divided (step S110; No), and the program storage area 141 is not updated, and the program storage process ends. At this time, the ECU 100 may output an error message indicating that the target programs could not be stored via the communication device 20 to the smartphone of the vehicle owner 10 that has been registered in advance, or to an in-vehicle device (e.g., a speaker). The ECU 100 may also include a message in this error message prompting the deletion of unnecessary functions in order to secure capacity in the program storage area 141.

[0034] On the other hand, if it is determined that the program can be divided and stored (step S110; Yes), the program storage unit 130 divides the target program into multiple unused areas and stores them (step S111). There are various methods for how to divide the target program. For example, the program storage unit 130 can divide and store the target program so that the unused areas are used as efficiently as possible. Alternatively, the program storage unit 130 can divide and store the target program so that the number of divisions is kept to a minimum. This completes the program storage process.

[0035] Next, I will explain the program storage process described above with a specific example. Figure 4A shows the program storage area 141 where programs A to E are stored. Let's assume that a program storage process is executed to newly store program F (the target program), with a size of 500 MB, in this program storage area 141.

[0036] In this case, first, in step S101 of the program storage process, unused areas a and b are extracted. Since both areas a and b are smaller than 500 MB, program F cannot be stored in them. Therefore, step S102 determines No. Then, in step S104, programs B, C, D, and E adjacent to these unused areas a and b are extracted. Subsequently, programs C, E, B, and D are selected from among these in descending order of size, and it is determined whether they can be moved to areas a and b. As a result of the determination, programs C, E, and B are not moved because their size is larger than areas a and b (step S106; No). On the other hand, program D, which has a size of 400 MB, is moved to area a of the same size (step S107). Then, the program storage area 141 becomes the state shown in Figure 4B. That is, due to the movement of program D, the unused area b is expanded to 700 MB, and program F can be stored (step S108; Yes). Therefore, program F is stored in area b, and the program storage area 141 contains the information shown in Figure 4C. In other words, it becomes possible to store program F in a continuous unused area.

[0037] As described above, when the ECU 100, which is a control device according to this embodiment, attempts to store a target program in the program storage area 141, if there is no contiguous unused area available for storage, it secures a storable area by moving the program stored in the program storage area 141 to an unused area within the program storage area 141. This allows the target program to be stored in the program storage area 141 without being divided, thus slowing down the progression of fragmentation of the program storage area 141 when storing the target program.

[0038] Furthermore, the ECU 100 according to this embodiment moves the program stored in the program storage area 141 to the smallest unused area within the available unused areas. This makes it possible to move the existing program to the most efficient location within the program storage area 141, thereby making it easier to secure more storage space for the target program.

[0039] (Variations) This invention is not limited to the above embodiments, and various modifications and applications are possible. For example, parts of the above embodiments can be omitted or replaced, or arbitrary configurations can be added. Also, the hardware configuration, functional configuration, flowchart, etc. shown in the above embodiments are examples and can be changed as appropriate.

[0040] For example, in the program storage process of the above embodiment, programs adjacent to unused areas in the program storage area 141 are extracted (step S104), the extracted programs are selected in descending order of size, it is determined whether they can be moved to the unused area, and the programs are moved (steps S105 to S107). However, various methods can be employed to move programs within the program storage area 141 to secure storage space for the target program. For example, storage space can be secured by sequentially moving each program stored in the program storage area 141 so that there are no gaps between programs.

[0041] For example, in the above embodiment, during the program storage process, if there is no available storage space in the program storage area 141, a process is uniformly performed to move the programs stored in the program storage area 141 to secure available storage space. However, if the target program is a program related to a specific function that requires high responsiveness, such as emergency braking (FEB) or rear emergency braking (RAEB), the process of moving the existing program is executed, and if the program is related to any other function, it is not necessary to move the existing program. By doing so, the movement of programs in the program storage area 141 can be suppressed, and thus the degradation of the flash memory 14 can be suppressed.

[0042] In the above embodiment, the ECU 100 may be not only an ECU of the driving support system but also an ECU such as a multimedia system ECU or a power supply system ECU. The multimedia system ECU is a general term for ECUs that control the multimedia system of the vehicle 10. Examples of the multimedia system ECU include, for example, a navigation control ECU that controls the navigation system of the vehicle 10, an audio control ECU that controls the audio equipment of the vehicle 10, and the like. The power supply system ECU is a general term for ECUs that control the power supply system of the vehicle 10. Examples of the power supply system ECU include, for example, a power supply control ECU that controls the ACC (accessory) power supply and the IG (ignition) power supply mounted on the vehicle 10. Also, the present invention is similarly applicable to a configuration in which the vehicle 10 is provided with such a plurality of types of ECUs and the program storage area 141 is shared by these ECUs.

[0043] Further, the present invention is applicable to control devices other than the ECU 100 which is a control device that controls the vehicle 10. For example, the present invention is applicable to a control device of an industrial robot that operates by executing a program corresponding to each function, a control device of a machine tool, and the like. Also, the program storage method of the present invention is applicable when storing the programs of each function in the program storage area 141 of the flash memory 14 at the manufacturing stage of the ECU 100.

[0044] Also, in the above embodiment, an example has been described in which the processor 11 of the ECU 100 realizes each function of the program acquisition unit 110, the movement control unit 120, and the program storage unit 130 by executing the control program 131. However, the processor 11 may be configured by dedicated hardware that realizes each function.

[0045] Furthermore, the control program 131 for executing the operations of the above embodiment may be stored in a recording medium such as a computer-readable CD-ROM (Compact Disc Read-Only Memory), DVD (Digital Versatile Disc), MO (Magneto Optical Disc), or memory card and distributed, and the program can be installed in a computer to realize each function, thereby configuring the program acquisition unit 110, the movement control unit 120, and the program storage unit 130 of the ECU 100. In cases where the functions of the program acquisition unit 110, the movement control unit 120, and the program storage unit 130 are realized through a division of labor between the OS (Operating System) and the application, or through cooperation between the OS and the application, only the parts other than the OS may be stored in the recording medium.

[0046] The present invention allows for various embodiments and modifications without departing from the broad spirit and scope of the invention. Furthermore, the embodiments described above are for illustrative purposes only and do not limit the scope of the invention. In other words, the scope of the invention is indicated by the claims, not by the embodiments. Various modifications made within the scope of the claims and the equivalent significance of disclosure are considered to be within the scope of the invention.

[0047] 10 Vehicle, 20 Communication device, 30 Data center, 100 ECU, 11 Processor, 12 RAM, 13 ROM, 131 Control program, 14 Flash memory, 141 Program storage area, 15 Communication interface, 16 Bus, 110 Program acquisition unit, 120 Movement control unit, 130 Program storage unit.

Claims

1. A control device that realizes corresponding functions by executing each program stored in a program storage area, comprising: a program acquisition unit that acquires a target program which is an update program or a newly added program; a move control unit that, when there is no contiguous unused area in the program storage area in which the target program can be stored, moves a program stored in the program storage area to an unused area in the program storage area to secure the storable area; and a program storage unit that stores the target program in the storable area.

2. The control device according to claim 1, wherein the move control unit performs a process to move a program stored in the program storage area when the target program is a program relating to a specific function and there is no available storage area, and does not perform a process to move a program stored in the program storage area when the target program is a program relating to a function other than the specific function.

3. The control device according to claim 1, wherein the movement control unit moves the program stored in the program storage area to the smallest unused area among the unused areas to which the program can be moved.

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

5. A method for storing a program in a program storage area by a computer, wherein the computer obtains a target program which is an update program or a newly added program, and if there is no contiguous unused area in the program storage area in which the target program can be stored, the computer secures the available storage area by moving a program currently stored in the program storage area to an unused area within the program storage area, and stores the target program in the available storage area.