Volatile Memory Persistence via Selective Backup
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Volatile memory systems lose state data during power failures or reboots, leading to severe consequences such as database rebuilds from outdated checkpoints or data corruption in applications like databases and file systems.
Innovation Solution
A computing system backs up a physical region of volatile memory to non-volatile memory using a processor that determines the memory region based on user input or transfer speed and power data, employing DMA transfers and storage controllers with hardware accelerators to ensure efficient and parallel backups, thereby achieving memory persistence.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If volatile memory is used for system memory, then access speed and processing efficiency are improved, but data persistence is lost during power failures or reboots
Solution Approach 1:
The memory system is segmented into two distinct parts: volatile memory (RAM) for high-speed temporary storage and non-volatile memory (NVM) for persistent storage. This segmentation allows each memory type to perform its specialized function optimally - speed for volatile memory and persistence for non-volatile memory - resolving the contradiction between access speed and data persistence.
Solution Approach 2:
A memory controller acts as an intermediary between the volatile memory and non-volatile memory, managing data transfers and coordination. The controller ensures that critical data is efficiently backed up to NVM while maintaining high-speed access to volatile memory during normal operation, thus preserving both speed and persistence characteristics.
2Reliability
If complete memory backup is performed, then data persistence is improved, but backup time and system performance are worsened
Solution Approach 1:
Instead of backing up the entire memory content, the system extracts only the critical data that needs to be persisted. This selective extraction approach reduces the backup volume and time significantly while maintaining data persistence for the most important information, thus resolving the contradiction between persistence and backup time.
Solution Approach 2:
The system performs preliminary identification and classification of critical data before the actual backup operation. By pre-determining which memory regions contain critical data that must be persisted, the system can perform targeted backups rather than complete memory dumps, reducing backup time while ensuring data persistence for essential information.
3Loss of time
If selective memory region backup is performed, then backup time is reduced, but data completeness may be worsened
Solution Approach 1:
The memory controller continuously monitors system state and provides feedback about which memory regions contain critical data. This feedback mechanism enables the backup system to dynamically adjust its selection criteria and ensure that all necessary data is captured in the selective backup, maintaining data completeness while reducing backup time through informed selection.
Solution Approach 2:
The backup strategy is dynamic rather than static - the system adapts its backup selection based on real-time monitoring of memory usage patterns, data criticality, and system state. This dynamic approach ensures that the most important data is always captured in the backup while optimizing backup time through intelligent, context-aware selection, resolving the contradiction between backup time and data completeness.
Data Source
AI summary
A system for achieving memory persistence includes a volatile memory, a non-volatile memory, and a processor. The processor may indicate a volatile memory range for the processor to backup, and open a memory window for the processor to access. The system further includes a power supply. The power supply may provide power for the processor to backup the memory range of the volatile memory. The processor may, responsive to an occurrence of a backup event, initiate a memory transfer using the opened memory window. The memory transfer uses the processor to move the memory range of the volatile memory to a memory region of the non-volatile memory.


