Heap Memory Persistence Across Warm Reset Firmware Updates
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Device updates, such as firmware updates, result in significant downtime due to the erasure and rewriting of all data, which can be minimized by persisting data used in both configurations.
Innovation Solution
A method and system for persisting memory during device updates by determining which data to retain using metadata, allowing only necessary data to be rewritten, thereby reducing downtime and improving update speed.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If all data is erased and rewritten during device update, then data consistency is ensured, but update time increases significantly
Solution Approach 1:
The patent segments the heap memory into multiple regions with different persistence characteristics. Some memory regions are marked for persistence while others are cleared during update. This segmentation allows selective retention of data in critical regions while clearing non-critical regions, thereby reducing overall update time while maintaining data consistency in persisted regions.
Solution Approach 2:
The patent performs preliminary actions by marking certain memory blocks as persistent before the update process begins. The metadata structures are prepared in advance to identify which blocks should be retained. This preliminary marking enables the update process to skip erasure and rewriting of these blocks, significantly reducing update time while ensuring data consistency through the pre-established persistence markers.
2Reliability
If all data is rewritten during device update, then data integrity is maintained, but processing speed decreases
Solution Approach 1:
The patent extracts the persistence determination logic from the general update process. By using metadata structures that pre-identify persistent blocks, the system separates the decision-making about what to retain from the actual update execution. This extraction allows the update process to focus only on non-persistent blocks, improving update speed while maintaining data integrity through the extracted persistence metadata.
Solution Approach 2:
The patent implements self-service through automated persistence tracking using metadata. The system automatically identifies and marks persistent memory blocks based on their usage patterns and criticality, without requiring manual intervention. This self-service mechanism ensures data integrity is maintained through automated tracking while improving update speed by eliminating the need for comprehensive rewriting of all memory blocks.
3Adaptability or versatility
If memory is fully cleared during update, then configuration transition is complete, but update efficiency decreases
Solution Approach 1:
The patent introduces dynamic characteristics to the memory update process by allowing different persistence behaviors for different memory regions. The system dynamically determines which blocks to persist based on metadata markers, enabling flexible configuration transitions. This dynamic approach maintains complete configuration transition capability while improving update efficiency by avoiding unnecessary clearing of persistent blocks.
Data Source
AI summary
A method for updating a device includes receiving an instruction to update from a first configuration in the device to a second configuration, where a first heap memory allocated to the first configuration includes multiple first allocated memory blocks and corresponding first memory blocks metadata. The method also includes performing a warm reset, the reset including determining, based on the first memory blocks metadata, that when updating from the first configuration to the second configuration, data of at least one of the first allocated memory blocks should be persisted to a second heap memory allocated to the second configuration, and causing the device to update from the first configuration to the second configuration, where the update includes persisting, based on the first memory blocks metadata, the data of at least one of the first allocated memory blocks to a second heap memory allocated to the second configuration.


