Block-Based Differential Firmware Update Algorithm
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current firmware update methods for embedded devices require excessive memory, leading to higher power consumption, shorter battery life, larger chip areas, and increased costs, as they operate on full binary firmware images and generate large patch files even with minimal differences between updates.
Innovation Solution
A method that divides the new firmware image into blocks of equal size, applies a binary differential patching algorithm block-by-block, and creates separate block patches, reducing memory demand by optimizing the patch file size and ensuring fail-safe updates through tracking and temporary storage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If full firmware image update is used, then update completeness is ensured, but memory consumption doubles
Solution Approach 1:
The firmware image is divided into multiple blocks, and patching is performed block-by-block rather than requiring the entire firmware image to be loaded into memory simultaneously. This segmentation allows incremental processing with minimal memory footprint.
Solution Approach 2:
Instead of processing the complete firmware image at once, only the necessary blocks are processed incrementally. The patching algorithm processes blocks in sequence, applying changes progressively without requiring full image loading.
2Reliability
If traditional patching algorithms operate on full binary firmware image, then complete patching is achieved, but patch file size increases
Solution Approach 1:
The patching process is segmented into block-level operations. Each block is patched independently and sequentially, allowing the patch file to contain only the necessary differences for each block rather than requiring a complete firmware image patch.
Solution Approach 2:
The patching approach transitions from operating on the complete firmware image (one-dimensional full-image patching) to operating on individual blocks (multi-dimensional block-level patching), enabling more efficient patch file generation.
3Quantity of substance
If block-by-block patching is implemented, then memory usage is reduced, but processing complexity increases
Solution Approach 1:
The firmware and patching process are divided into manageable blocks with clear boundaries. Each block can be processed independently with standardized procedures, making the complexity tractable through systematic division.
Solution Approach 2:
Blocks are pre-numbered and organized in a systematic sequence before patching begins. This preliminary organization enables straightforward tracking and processing of blocks in order, reducing the complexity of managing the patching process.
Data Source
AI summary
A method for updating a firmware image comprises: — dividing a new firmware image into blocks 1* . . . n* . . . N*, wherein n* and N* are natural numbers, and wherein the size S is determined empirically before updating the firmware image, a) matching a first block 1* of the new firmware image against the full old firmware image using a binary differential and patching algorithm by b) creating a first block patch of the new and old firmware image according to said first block 1* of the new firmware image and the blocks 1 to M of the old firmware image, and repeating steps a) and b) wherein the consecutive repetitions are performed using only the blocks of the old firmware image not being processed yet, wherein the old binary firmware image is updated on a block-by-block basis, and wherein the currently processed block patch n is tracked.


