Non-Volatile Memory Persistence Mechanism for Computing Devices
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing persistence mechanisms are limited in making systems fully non-volatile, introducing significant overhead and failing to provide orthogonal persistence during power failures, as they require external power sources and exhibit latency in resuming system states.
Innovation Solution
A method and apparatus for a computing device that includes a processor and non-volatile memory, which performs a stop procedure upon power failure by scheduling out process tasks, storing their states, flushing caches, and reporting offline to master tiles, and a go procedure upon power recovery by restoring tasks and peripheral information from memory modules.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If hibernation is used to provide persistence, then system state can be recovered, but external power sources are required and the system cannot operate during power failure
Solution Approach 1:
The system performs self-preservation by automatically flushing cache data and process states to non-volatile memory before power failure, eliminating dependency on external power sources for persistence operations
2Reliability
If checkpoint-restarts are used for persistence, then system can resume after failure, but significant overhead is introduced due to redundant data dumps
Solution Approach 1:
The invention extracts only the essential process state information and cache data that need to be persisted, rather than dumping redundant system-wide checkpoint data, thereby reducing overhead while maintaining resumption capability
Solution Approach 2:
The system performs partial persistence by selectively flushing only the necessary process control blocks and cache lines to non-volatile memory, avoiding the excessive action of complete system checkpointing
3Reliability
If checkpoint-restarts are used, then system can recover from failure, but kernel reboot is required causing extra latency
Solution Approach 1:
The system performs preliminary actions by pre-flushing cache and storing process states to non-volatile memory before power failure occurs, enabling immediate resumption without kernel reboot and reducing resumption latency
Data Source
AI summary
A method of supporting persistence of a computing device is provided. The computing device performs a stop procedure upon power failure. In the stop procedure, the computing device schedules out a running process task, stores a state of the process task to a process control block of a memory module including a non-volatile memory, flushes a cache for the processor, and flushes a pending memory request.


