Hierarchical Memory System Using Persistent Storage
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current computing systems face challenges in efficiently utilizing non-volatile memory resources due to their non-deterministic behavior, leading to increased costs and limitations in providing memory resources to multi-user networks, as they rely heavily on volatile memory for main memory provisioning.
Innovation Solution
Implementing a hierarchical memory system that redirects data requests from volatile memory to non-volatile memory, using logic circuitry to intercept and manage data access, allowing non-volatile memory to be used as part of the main memory, and utilizing a hypervisor to selectively store data in persistent or non-persistent memory based on access patterns.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If volatile memory is used for main memory provisioning, then memory access speed and system performance are improved, but cost increases and memory capacity is limited
Solution Approach 1:
The patent segments the memory system into multiple levels: volatile memory (DRAM) for frequently accessed data and non-volatile memory (NAND flash) for less frequently accessed data. The memory controller divides memory management tasks between these segments, allowing the system to leverage the speed of volatile memory while utilizing the large capacity of non-volatile memory, thereby resolving the contradiction between access speed and memory capacity.
Solution Approach 2:
The patent introduces a hierarchical dimension to the memory system by stacking volatile and non-volatile memory layers. Instead of treating memory as a single uniform resource, the system creates a multi-dimensional memory architecture where data can be stored at different levels based on access frequency, enabling both fast access for critical data and large capacity for bulk storage.
2Quantity of substance
If non-volatile memory is used for main memory, then cost is reduced and memory capacity is increased, but memory access speed and system performance deteriorate due to non-deterministic behavior
Solution Approach 1:
The patent implements preliminary actions by pre-loading frequently accessed data from non-volatile memory into volatile memory buffers before they are needed. The memory controller predicts access patterns and proactively transfers data to faster storage locations, ensuring that when data is actually accessed, it is already in high-speed memory, thus maintaining performance while using non-volatile memory for bulk storage.
Solution Approach 2:
The patent introduces volatile memory buffers and a sophisticated memory controller as intermediaries between non-volatile memory and the CPU. These intermediaries cache data from non-volatile memory and manage transfer operations, shielding the CPU from the non-deterministic access times of non-volatile memory while still enabling large capacity storage.
3Quantity of substance
If non-volatile memory is used for main memory, then available memory resources are increased at lower cost, but system reliability and determinism worsen
Solution Approach 1:
The patent implements feedback mechanisms where the memory controller continuously monitors access patterns, timing, and performance metrics. Based on this feedback, the controller dynamically adjusts data placement between volatile and non-volatile memory, optimizes buffer management, and makes real-time decisions to maintain deterministic access times. This feedback loop ensures that the system adapts to maintain reliability while utilizing large non-volatile memory capacity.
Data Source
AI summary
Apparatuses, systems, and methods for hierarchical memory systems are described. A hierarchical memory system can leverage persistent memory to store data that is generally stored in a non-persistent memory, thereby increasing an amount of storage space allocated to a computing system at a lower cost than approaches that rely solely on non-persistent memory. An example method includes receiving a request to access data via an input/output (I/O) device, determining whether the data is stored in a non-persistent memory device or a persistent memory device, and redirecting the request to access the data to logic circuitry in response to determining that the data is stored in the persistent memory device.


