Firmware Update Package Generation Using Expansion Gaps
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current update package generation technologies require extensive flash block reprogramming, leading to long processing times and increased complexity due to the need to relocate entire flash blocks even for minor updates, which is inefficient and inadequate for large updates.
Innovation Solution
A software development tool chain that includes guidelines for content ordering, object file management, insertion of expansion gaps, use of jump tables, and compiler options to minimize data movement and reduce the number of flash blocks modified during updates, combined with binary differencing techniques to generate minimal-sized update packages.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If binary differencing algorithms are used to generate update packages, then the size of update packages is reduced, but the number of flash blocks requiring reprogramming remains high leading to long apply times
Solution Approach 1:
The patent applies preliminary action by organizing code into blocks with pre-inserted free space during the firmware building stage, before updates are applied. This advance preparation allows future updates to utilize the pre-existing free space without requiring code relocation, thereby reducing update apply time while maintaining small update package sizes.
Solution Approach 2:
The patent segments the firmware image into multiple code blocks, each with associated free space. This segmentation allows the update system to target only specific blocks that need updating rather than relocating entire images, reducing both update package size and apply time by limiting the scope of modifications needed.
2Adaptability or versatility
If code is relocated to accommodate new features, then functionality is improved, but the number of flash operations increases leading to longer processing times
Solution Approach 1:
The patent prepares the firmware structure in advance by inserting free space into code blocks during the build process. This preliminary action ensures that when new features need to be added, the code can expand into the pre-existing free space without relocation, thereby maintaining adaptability while minimizing processing time.
Solution Approach 2:
The patent creates a dynamic firmware structure where code blocks can grow into adjacent free space. This dynamic approach allows the firmware to adapt to new features by expanding within allocated space rather than requiring static relocation, thus improving adaptability without increasing processing time.
3Loss of time
If fixed percentage free space is inserted into each code block, then small updates can be applied without relocating code, but large updates still require relocation of subsequent blocks
Solution Approach 1:
The patent merges multiple free space regions into a single consolidated free space area at the end of the image. This consolidation allows both small and large updates to utilize the same pooled free space resource, eliminating the limitation where large updates would trigger code relocation while still maintaining the benefit of no-relocation updates for smaller changes.
Solution Approach 2:
The patent creates a universal free space pool that serves both small and large update scenarios. This multi-functional approach allows the same free space mechanism to handle updates of any size without requiring different strategies or triggering code relocation, thereby maintaining both fast apply times and adaptability for large updates.
4Reliability
If the entire image is moved to accommodate a single byte insertion, then data integrity is maintained, but every flash block covered by the image must be reprogrammed
Solution Approach 1:
The patent extracts the free space requirement from the code structure by dedicating specific regions as free space pools. This extraction allows new data to be inserted into the extracted free space region without moving the code, thereby maintaining data integrity while dramatically improving update efficiency by avoiding mass reprogramming.
Solution Approach 2:
The patent introduces free space regions as intermediary buffers between existing code and new data insertions. These intermediary regions absorb the impact of new code additions, allowing data integrity to be maintained through controlled insertion rather than image relocation, thus preserving both reliability and productivity.
Data Source
AI summary
The present invention reduces the time required to apply an update package for generating a new image from an original image within a non-volatile memory device by effectively reducing the number of flash blocks requiring modification by use of whatever free space is available at the end of the image as required. A set of software development guidelines and an improved firmware development tool chain (i.e. compiler, linker, etc.) are utilized to produce new firmware for the client device. A firmware programmer follows or applies this set of guidelines when developing new features and fixes for distribution via a new firmware image. The improved firmware development tool chain executes on a collection of function blocks, available from the development of the original image, used to create new firmware source code, which when complied and linked yields a new image, prior to the delta or differencing processing.


