Embedded Device Hibernation via Sectioned RAM Compression
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current embedded systems, such as GPS receivers, lack a hibernation mode that efficiently stores data, leading to loss of navigation information when power is restored, and existing data compression techniques fail to balance high compression ratio and high decompression throughput for fast wake-up times.
Innovation Solution
The method involves dividing the RAM into sections and independently selecting a compression algorithm for each section to achieve a high decompression speed, with the option to switch algorithms based on compression ratio thresholds, and storing this information for appropriate decompression upon waking.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If data is stored in SDRAM during sleep state, then data is preserved, but power consumption occurs to maintain the data
Solution Approach 1:
The system segments data storage into two distinct locations: SDRAM for active data during operation, and non-volatile storage for data that must be preserved during hibernation. The data management module divides data between these storage media based on priority and volatility requirements, eliminating the need to maintain powered SDRAM during low-power states while preserving critical data in non-volatile storage.
Solution Approach 2:
The invention extracts data from volatile SDRAM storage and transfers it to non-volatile storage before entering hibernation mode. This extraction process removes the dependency on powered SDRAM for data preservation, allowing the system to achieve true low-power state while maintaining data integrity through the data management module's coordinated data transfer operations.
2Quantity of substance
If compression ratio is increased, then storage efficiency improves, but decompression time increases
Solution Approach 1:
The system dynamically selects compression algorithms and adjusts compression ratios based on real-time conditions including available storage space, wake-up time requirements, and data characteristics. The data management module monitors system state and adapts compression parameters accordingly, choosing higher compression ratios when storage is constrained and lower ratios when fast decompression is prioritized, thus resolving the static trade-off between compression efficiency and decompression speed.
Solution Approach 2:
The invention changes compression parameters (algorithm selection, compression ratio) based on system state and requirements. Different compression algorithms are applied to different data sections depending on their characteristics and the desired balance between storage efficiency and decompression speed, allowing flexible optimization rather than a fixed compression approach.
3Device complexity
If single compression algorithm is used, then device complexity is reduced, but ability to balance compression ratio and decompression throughput is limited
Solution Approach 1:
The data management module serves multiple functions: it manages data between storage media, selects appropriate compression algorithms, controls compression ratios, and coordinates data transfer timing. This multi-functional approach consolidates what would otherwise require separate dedicated components, achieving algorithm diversity and optimization capability without proportionally increasing system complexity.
Data Source
AI summary
An embedded device is hibernated by storing state data of the embedded device to a non-volatile data storage medium, and powering off the embedded device. The embedded device is later woken up in response to the detection of a wakeup event from a wakeup source. The state data stored in the RAM of the embedded device comprises one or more registers of a Central Processing Unit (CPU) of the embedded device, one or more registers of a system-on-chip (SOC) of the embedded device, and the system and applications code and data. Waking the embedded device comprises loading, from the non-volatile data storage medium, initial memory sections that are used to run a kernel of the embedded device. State data that is stored in the RAM of a system is compressed by dividing the RAM into a plurality of sections and independently choosing, for each section in the plurality of sections, a compression arithmetic. For each section, a compression arithmetic that has a high decompression speed is selected. The selected compression arithmetic is used to compress data in the section.


