Firmware Delta File Block Rearrangement for IoT Memory Constraints
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
IoT devices with limited flash memory storage face challenges in performing firmware updates due to their small memory size, requiring efficient methods to manage and update firmware effectively.
Innovation Solution
A firmware update method involving partial decompression of a delta file, where blocks are rearranged and grouped into control, difference, and extra blocks, with swap blocks added to reposition update areas, allowing for efficient updating of firmware in IoT devices with limited memory.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If traditional firmware update methods are used, then firmware can be updated, but the required flash memory space becomes too large for IoT devices
Solution Approach 1:
The delta file is divided into multiple blocks (control blocks, difference blocks, extra blocks) that correspond to different update areas. This segmentation allows the system to process and store only the necessary portions of the update data, reducing the total flash memory space required while maintaining update reliability through structured organization of update information.
Solution Approach 2:
Swap blocks are generated in advance to store the relative address values of update areas before the actual update process. This preliminary action allows the system to pre-calculate and store address information, reducing the need for additional flash memory during the update process and preventing update errors through proper address management.
2Reliability
If delta file blocks are not rearranged, then the update process is simple, but update errors occur due to incorrect address values
Solution Approach 1:
The system performs preliminary rearrangement of delta file blocks and generation of swap blocks before the actual firmware update. By pre-organizing control blocks, difference blocks, and extra blocks according to their corresponding update areas, the system ensures correct address values are used during updates, preventing errors while managing complexity through advance preparation.
Solution Approach 2:
Swap blocks act as intermediaries that store the relative address values of update areas. These swap blocks mediate between the raw delta file blocks and the final update process, ensuring that correct address information is transferred and applied. This intermediary structure simplifies the update process by pre-resolving address conflicts and ensuring data integrity.
3Quantity of substance
If the entire delta file is decompressed, then all update information is available, but memory space requirements increase
Solution Approach 1:
The delta file is segmented into multiple blocks that can be processed independently. By organizing update information into discrete control blocks, difference blocks, and extra blocks corresponding to specific update areas, the system can load and process only the necessary segments into memory, reducing overall memory space requirements while maintaining operational simplicity through structured access patterns.
Solution Approach 2:
The system performs preliminary organization of delta file blocks into swap blocks that store relative address values. This preliminary action allows the system to prepare address information in advance, enabling more efficient memory management during the actual update process. By pre-organizing data structure, the system reduces the need for large temporary memory spaces during decompression and update operations.
Data Source
AI summary
An operation method of a server for updating firmware includes: generating a first delta file including a plurality of blocks based on a plurality of update areas included in a first version firmware; generating a second delta file by repositioning the plurality of blocks included in the first delta file such that a plurality of unit blocks are generated by grouping control blocks, difference blocks, and extra blocks, each of which corresponds to the plurality of update areas, respectively; generating a plurality of swap blocks based on extra blocks among the plurality of blocks; and generating a third delta file by adding the generated plurality of swap blocks to the second delta file.


