qNVRAM Driver for Mobile Data Persistency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing mobile computing devices face performance degradation and increased wear on non-volatile memory due to the overhead of journaling and double-writing techniques used for data persistency, which also lead to unnecessary data writes and energy consumption.
Innovation Solution
Implementing quasi non-volatile RAM (qNVRAM) using libraries and drivers to manage volatile memory, allowing data to be persisted without additional hardware, by remapping or flushing data to non-volatile memory during specific events like application crashes or reboots, thus reducing write operations and enhancing energy efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If journaling and double-writing techniques are used to ensure data persistency, then data consistency and integrity are maintained, but I/O performance degrades and non-volatile memory wear increases
Solution Approach 1:
The system performs preliminary actions by detecting failure modes (crashes, reboots, power loss) before data loss occurs, and proactively remaps or flushes volatile memory to non-volatile memory in advance, rather than reacting after data loss happens
Solution Approach 2:
The patent introduces an intermediary layer (driver and library) between the application and the storage system that manages volatile memory persistency. This intermediary detects failure modes and coordinates remapping or flushing operations, acting as a mediator that resolves the conflict between speed and reliability
2Reliability
If journaling and double-writing are employed for atomicity and durability, then data integrity is ensured, but energy consumption increases due to unnecessary writes
Solution Approach 1:
Instead of always performing full journaling or double-writing operations, the system applies partial actions by selectively remapping or flushing only the necessary volatile memory portions based on detected failure modes, avoiding excessive writes and reducing energy consumption
3Reliability
If traditional persistency methods are used, then data is preserved across failures, but the lifetime of non-volatile memory is shortened due to increased write operations
Solution Approach 1:
The system performs preliminary failure mode detection and proactively remaps or flushes volatile memory before actual data loss occurs, reducing the frequency and urgency of writes to non-volatile memory, thereby extending its operational lifetime while maintaining data persistency
Data Source
AI summary
In one implementation, a computer-implemented method can include receiving, at a driver running on a mobile computing device with a local power source, a command from an application for an allocation of volatile memory; allocating, by the driver, memory from a pool of volatile memory for the application; storing data in the allocated memory; detecting, by the driver, that a particular situation currently exists on the mobile computing device that will cause the data to be lost; and performing, by the driver, an operation with regard to the memory and the data that will cause the data to be preserved following a conclusion of the particular situation.


