In-Vehicle Flash Reprogramming Using Cross-Block Differential Updates
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In-vehicle control devices with microcomputers having built-in flash memory composed of large blocks and limited RAM capacity face challenges in differential reprogramming due to large differential data sizes, leading to prolonged update times, especially when major changes are made to the program.
Innovation Solution
The solution involves using a temporary block in the flash memory to recreate and write the updated program, utilizing differential data and old programs from multiple blocks to reduce data size, and employing compressed data that doesn't require the original program for restoration, thus minimizing RAM usage and speeding up the update process.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If differential data is generated using only the old program from the same block, then the update process is simple, but the differential data size becomes large when major changes are made, leading to long transfer and update times
Solution Approach 1:
The patent segments the flash memory into multiple blocks and divides the program update process into stages. When updating a block, the system uses old programs from other blocks that have already been updated to generate differential data, rather than relying solely on the old program from the same block. This segmentation allows the system to maintain simple differential generation logic while significantly reducing differential data size by finding more similar code patterns across different blocks.
Solution Approach 2:
The patent performs preliminary updates on certain blocks first, so that their new programs are already in place and can be used as reference for generating differential data for subsequent blocks. This preliminary action creates a cascade effect where each updated block contributes to reducing the differential data size of remaining blocks, thereby reducing overall update time without increasing process complexity.
2Ease of operation
If the entire new program is transferred via CAN and written to flash memory, then the update process is straightforward, but the writing time becomes very long even when only a small part of the program needs updating
Solution Approach 1:
The patent extracts and uses only the necessary differential portions of the program for updating, rather than transferring and writing the entire new program. By calculating differential data between the new program and relevant old programs from other blocks, the system extracts only the changed portions that need to be transferred via CAN and written to flash memory, dramatically improving update speed while maintaining operational simplicity.
Solution Approach 2:
The patent changes the parameter being transferred from the complete new program to differential data representing only the changes. This parameter change reduces the data volume to be transferred and written, directly improving update speed. The system dynamically determines which blocks need updating and generates differential data only for those blocks, optimizing the update process without complicating the operation.
3Quantity of substance
If another block is erased and used to store old program for differential restoration, then RAM usage is reduced, but the old program cannot be used for subsequent differential updates after erasure
Solution Approach 1:
The patent segments the flash memory into multiple blocks and implements a selective update strategy where not all blocks are erased and reused. Instead, certain blocks are preserved with their old programs intact to serve as reference for generating differential data for other blocks. This segmentation allows the system to maintain low RAM usage while preserving old program data where needed, avoiding the trade-off between RAM consumption and update efficiency.
Solution Approach 2:
The patent copies old program data from blocks that are not being updated to serve as reference for differential generation. Rather than erasing and reusing blocks, the system makes use of existing old program copies in other blocks, eliminating the need to erase blocks for storage purposes and maintaining their availability for differential update operations.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Provided is an in-vehicle control device which makes it possible to achieve restoration processing of differential reprogramming even in an in-vehicle control device using a microcomputer with a built-in flash memory using a small amount of RAM and composed of large blocks, and is capable of restoring a new program in a short time by decreasing the size of differential data even for a new program to which major changes have been made. Provided is an in-vehicle control device capable of updating a program on the basis of update content provided from an update tool, the in-vehicle control device being provided with a first memory provided with a plurality of blocks for storing programs, and a second memory. When updating a program, differential data of the program and an update program are stored in the second memory, an update program for a block to be updated among the plurality of blocks is recreated in another block which is different from the block to be updated using the differential data and an old program, and the update program which has been recreated in the other block is written in the block to be updated.