Volatile Memory Online Deduplication to Avoid Redundant Writes
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing deduplication techniques for volatile memory are unsuitable due to high performance requirements, leading to excessive memory resource consumption and decreased capacity.
Innovation Solution
Implementing online deduplication in a memory controller to identify and map logical addresses to physical addresses of previously written data, avoiding redundant writes to volatile memory.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If existing deduplication techniques are implemented for volatile memory, then memory capacity is decreased, but memory resource consumption becomes excessive and performance requirements are not met
Solution Approach 1:
The patent extracts the deduplication function from the volatile memory system and relocates it to a separate storage device. The memory controller identifies duplicate data blocks in volatile memory and extracts them for storage in non-volatile memory, leaving only unique blocks in volatile memory. This extraction approach reduces volatile memory usage while avoiding the performance overhead of in-memory deduplication algorithms.
Solution Approach 2:
The patent introduces a memory controller as an intermediary between the host system and the volatile memory. The controller performs deduplication operations by comparing incoming data blocks against a database of previously stored blocks, and manages the transfer of duplicate blocks to non-volatile storage. This intermediary approach allows deduplication to occur without directly impacting volatile memory performance.
2Loss of substance
If deduplication is performed to reduce memory resource consumption, then capacity increases, but performance requirements for volatile memory are compromised
Solution Approach 1:
The patent implements a copying strategy where duplicate data blocks are copied from volatile memory to non-volatile storage rather than being deleted or modified in place. The memory controller maintains references to both the original and copied blocks, allowing the system to reduce volatile memory consumption while preserving data accessibility. This copying approach minimizes performance impact by avoiding complex in-place modifications.
Solution Approach 2:
The patent performs preliminary deduplication actions by maintaining a database of previously stored data blocks in the non-volatile storage device. Before writing new data to volatile memory, the controller checks this database to identify potential duplicates in advance. This preliminary action prevents duplicate blocks from being written to volatile memory in the first place, reducing resource consumption without impacting write performance.
3Quantity of substance
If online deduplication is implemented in the memory controller, then capacity and resource efficiency improve, but device complexity increases
Solution Approach 1:
The patent segments the memory system into distinct functional components: volatile memory for active data, non-volatile storage for deduplicated data, and a memory controller that manages deduplication operations. By segmenting the system architecture and separating concerns, the controller can implement deduplication logic without overwhelming complexity. Each component has a specific role, making the overall system more manageable despite the added functionality.
Data Source
AI summary
Implementations described herein relate to a system that includes volatile memory and a controller. The controller may receive a command to write data to the volatile memory, where the command indicates a logical address associated with the data. The controller may compare the data to one or more duplicate data patterns to identify whether the data matches the duplicate data pattern. The controller may map, responsive to the data matching the duplicate data pattern, a physical address associated with the duplicate data pattern to the logical address, without writing the data to the volatile memory.


