Volatile Memory Allocation Based on Failure-Event Energy
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing computer systems face challenges in ensuring data persistence and protection against loss in volatile memory due to insufficient energy supply during power failures, leading to potential data loss and performance issues.
Innovation Solution
A host system dynamically reports available energy to memory devices, allowing them to adapt how much volatile memory resources to utilize, ensuring data is cached to persistent memory during system power or failure events by managing energy allocation based on reported host energy.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If volatile memory is used to store content for rapid access, then speed is improved, but reliability deteriorates because data can be lost on power failure
Solution Approach 1:
The system performs preliminary actions by flushing volatile memory content to non-volatile storage before power failure occurs. The host system receives failure notifications and initiates data transfer operations in advance, ensuring data is safely stored before the power supply is lost.
Solution Approach 2:
The patent introduces an intermediary mechanism - a notification system and coordination protocol between the host system and memory device. The host system acts as an intermediary that receives power failure notifications, coordinates the flushing operation, and manages the transition of data from volatile to non-volatile storage.
2Reliability
If capacitors are added to provide protection against data loss, then reliability is improved, but device complexity increases and physical space is consumed
Solution Approach 1:
The patent extracts the energy storage function from the memory device itself and relocates it to the host system. Instead of embedding capacitors or batteries in the memory device, the host system provides power support during failure events, thereby protecting data without adding complexity to the memory device.
Solution Approach 2:
The host system's power supply is made multi-functional by serving both normal operational purposes and failure recovery purposes. The same power infrastructure that runs the system during normal operation is also utilized to flush data to non-volatile storage during power failure events, eliminating the need for dedicated backup power components in the memory device.
3Reliability
If data is flushed to non-volatile memory on power failure, then data persistence is improved, but productivity deteriorates due to wait time for completion
Solution Approach 1:
The system dynamically adjusts its behavior based on power failure notifications. During normal operation, the system maintains high performance by keeping data in volatile memory. Upon receiving a failure notification, the system dynamically transitions to flushing data to non-volatile storage, then returns to high-performance mode once the operation completes, minimizing overall impact on productivity.
Solution Approach 2:
The system takes preliminary anti-action by preparing for the productivity loss in advance. When a power failure notification is received, the system immediately initiates the flush operation during what would otherwise be productive time, preventing data loss without requiring the system to remain in a low-performance state indefinitely.
4Productivity
If volatile memory buffers are used for caching, then productivity is improved, but reliability deteriorates due to potential data loss on power failure
Solution Approach 1:
The system performs preliminary flushing of volatile memory buffers to non-volatile storage upon receiving power failure notifications. This preliminary action ensures that cached data is preserved before power is lost, maintaining both the productivity benefits of volatile caching during normal operation and the reliability of data persistence during failure events.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Examples described herein relate to a device comprising a controller, a volatile memory device, and a non-volatile memory device. In some examples, the controller is to allocate an amount of the volatile memory device based on an amount of energy available to the device during a failure event. In some examples, the amount of energy available to the device during a failure event comprises watts over an amount of time. In some examples, the failure event comprises one or more of: power reduction, power loss, voltage reduction or loss, current reduction or loss, global reset, machine check, operating system (OS) failure or crash. In some examples, the allocated amount of the volatile memory device comprises a number of bytes. In some examples, the controller is to: indicate an amount of energy to copy data from the volatile memory device to the non-volatile memory device and receive an indication of the amount of energy available to the volatile memory device for a failure event.