Virtual Block Pools for Storage Endurance Protection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Data storage devices with shared memory face performance and endurance issues due to malicious or misbehaved applications and host devices causing increased write amplification and wearout, leading to premature 'end-of-life' conditions.

Innovation Solution

Implementing a controller that manages virtual pools with counters for each logical block address range or unit, sending warnings or error messages to applications when write thresholds are exceeded, to monitor and maintain the health of the memory device.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If the data storage device is shared between multiple applications and host devices, then the storage capacity and accessibility are improved, but the memory device wears out faster due to malicious or misbehaved applications causing increased write amplification

Engineering Contradiction:
Improveshared memory accessibilityVSAvoidmemory device endurance
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent divides the shared memory into multiple virtual pools, where each virtual pool is associated with a specific application or host device. This segmentation allows the controller to track and manage write operations for each application separately, preventing any single malicious application from causing excessive write amplification that would wear out the entire memory device. Each virtual pool has its own counter that tracks the number of write operations, enabling granular control over memory usage and endurance protection.

Inventive Principle:
Principle #1Segmentation

2Reliability

If the controller monitors write operations for each application, then the memory device health is protected, but the device complexity increases due to maintaining multiple counters and virtual pools

Engineering Contradiction:
Improvememory device health protectionVSAvoidcontroller structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent creates virtual copies of the memory pool structure, where each application receives a virtual pool that appears as a separate memory space. The controller maintains counter copies for each virtual pool, allowing it to track write operations independently for each application without requiring complex physical reconfiguration. This virtualization approach simplifies the monitoring mechanism while providing granular control over memory usage and health tracking.

Inventive Principle:
Principle #26Copying

3Duration of action of stationary object

If the controller sends warnings to applications when thresholds are exceeded, then the memory device lifespan is extended, but the loss of time occurs due to additional monitoring and communication overhead

Engineering Contradiction:
Improvememory device lifespanVSAvoidmonitoring overhead
Core Design Contradiction:
Duration of action of stationary objectVSLoss of time

Solution Approach 1:

The patent implements a threshold-based warning system that proactively notifies applications before their write operations cause significant wear to the memory device. By setting predetermined thresholds and sending warnings in advance, the system prevents excessive write amplification before it occurs, extending the memory device lifespan. The controller monitors write operation counts against these thresholds and communicates warnings to applications, allowing them to adjust their behavior before causing damage.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS12182454B2Virtual block pools for protecting device health
Publication Date: 2024.12.31 SANDISK TECHNOLOGIES LLC
  • US12182454B2 patent drawing
  • US12182454B2 patent drawing
  • US12182454B2 patent drawing

AI summary

A data storage device includes a memory device and a controller coupled to the memory device. The controller is configured to maintain a plurality of virtual pools, wherein each virtual pool corresponds with an logical block address (LBA) range, update a counter of a virtual pool, wherein the counter corresponds to a health of the LBA range, and select, based on the counter, the virtual pool to program data to. The controller is further configured to maintain a counter for each application having data programmed to the virtual pool, where the counter is increased for each write operation to the virtual pool. When the counter equals or exceeds a threshold value, the controller is configured to send a warning to each application associated with the virtual pool having the counter that equals or exceeds the threshold value.