SSD Write Balancing Across SLC and MLC Partitions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The endurance performance of solid-state drives (SSDs) using both single-level cells (SLC) and multi-level cells (MLC) varies significantly, leading to premature failure of partitions with lower endurance, rendering the SSD partially inoperable.

Innovation Solution

A technique for balancing write commands by caching them into a write cache and directing data to either SLC or MLC partitions based on available capacity thresholds, and utilizing a balancing manager to proportionally distribute writes to maintain parity in P/E cycles across both types.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If write commands are directed to MLC partitions to maximize storage capacity, then storage density is improved, but endurance performance deteriorates due to lower P/E cycle tolerance

Engineering Contradiction:
Improvestorage capacityVSAvoidendurance performance
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The non-volatile memory is divided into multiple partitions with different cell types (SLC and MLC). The controller manages these partitions separately, allowing SLC partitions to handle wear-intensive operations while MLC partitions provide high-capacity storage, thus resolving the contradiction between storage density and endurance

Inventive Principle:
Principle #1Segmentation

2Reliability

If write commands are directed to SLC partitions to improve endurance performance, then reliability is improved, but storage capacity utilization deteriorates due to higher cost per byte

Engineering Contradiction:
Improveendurance performanceVSAvoidstorage capacity utilization
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

Different partitions of the non-volatile memory have different local qualities (SLC with high endurance, MLC with high capacity). The controller assigns write commands to appropriate partitions based on local characteristics, allowing SLC partitions to be used when endurance is prioritized and MLC partitions when capacity is prioritized, thus resolving the contradiction

Inventive Principle:
Principle #3Local quality

3Duration of action of stationary object

If a multi-partition arrangement with both SLC and MLC is used to balance endurance, then operational life is improved, but device complexity increases due to additional partition management

Engineering Contradiction:
Improveoperational lifeVSAvoidpartition management complexity
Core Design Contradiction:
Duration of action of stationary objectVSDevice complexity

Solution Approach 1:

The controller acts as an intermediary between the host and the multi-partition non-volatile memory. It implements a partition manager that abstracts the complexity of managing multiple partitions with different characteristics, automatically selecting appropriate partitions for write commands based on current wear levels and available capacity, thus resolving the contradiction between extended operational life and management complexity

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS12530150B2Techniques for balancing write commands on solid state storage devices (SSDs)
Publication Date: 2026.01.20 APPLE INC
  • US12530150B2 patent drawing
  • US12530150B2 patent drawing
  • US12530150B2 patent drawing

AI summary

Disclosed herein are techniques for balancing write commands directed to a non-volatile memory. According to some embodiments, a method may include caching a plurality of write commands into a write cache, and, in response to determining that an available capacity of the write cache satisfies a first threshold value: performing at least one write operation by directing data associated with the write commands in the write cache to the first partition of the non-volatile memory in response to determining that an available capacity of a first partition of the non-volatile memory satisfies a second threshold value; and performing at least one write operation by directing data associated with the write commands in the write cache to a second partition of the non-volatile memory in response to determining that the available capacity of the first partition of the non-volatile memory does not satisfy the second threshold value.