Hybrid Controller Adapting SSD Block Pool Sizes

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional NAND Flash-based SSDs face inefficiencies due to the difference in performance characteristics between read and write operations, and the inability to reuse invalidated memory locations until the entire block is erased, leading to increased write amplification and reduced storage system performance.

Innovation Solution

A method to dynamically adapt block pool sizes by configuring memory blocks in single-level cell (SLC) and multi-bit-per-cell modes, allowing for real-time relocation and reconfiguration of blocks between pools based on current utilization and workload properties, thereby optimizing performance and reducing write amplification.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If memory blocks are organized in fixed pools with static allocation, then system simplicity is maintained, but performance optimization under varying workload conditions is limited

Engineering Contradiction:
Improveperformance optimizationVSAvoidblock pool management
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements dynamic block pool adaptation by continuously monitoring the number of ready-to-use blocks in each pool and adjusting block allocations based on current workload conditions. The hybrid controller dynamically determines when to transfer blocks between SLC and multi-bit-per-cell pools, transforming the static block allocation into a dynamic system that adapts to varying performance requirements.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system employs feedback mechanisms by monitoring block pool utilization levels and using this information to trigger block transfers between pools. The hybrid controller receives feedback about the number of available blocks in each pool and adjusts the block distribution accordingly, creating a closed-loop control system that optimizes performance based on actual system state.

Inventive Principle:
Principle #23Feedback

2Productivity

If blocks are transferred between pools frequently to optimize performance, then write amplification is reduced, but system overhead and complexity increase

Engineering Contradiction:
Improvewrite amplification reductionVSAvoidblock transfer management
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system implements self-service by automatically monitoring block pool states and performing block transfers without external intervention. The hybrid controller autonomously determines when block transfers are needed based on predefined thresholds and workload conditions, reducing the need for complex external management while maintaining optimization benefits.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent changes the operational parameters of memory blocks by transferring them between different configuration pools (SLC vs. multi-bit-per-cell). This parameter change allows the system to optimize for different performance characteristics dynamically, reducing write amplification by selecting appropriate block configurations based on current workload demands.

Inventive Principle:
Principle #35Parameter changes

3Speed

If SLC mode blocks are used extensively for high performance, then write speed is improved, but storage capacity is reduced

Engineering Contradiction:
Improvewrite speedVSAvoidstorage capacity
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent applies local quality by maintaining different block configurations in separate pools rather than using a single uniform configuration. SLC mode blocks with superior write performance are kept in a dedicated pool for scenarios requiring high speed, while multi-bit-per-cell blocks provide additional storage capacity. The system selectively accesses appropriate pools based on performance requirements, allowing each pool to have optimized local characteristics.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The storage system is segmented into multiple block pools with different characteristics (SLC and multi-bit-per-cell). This segmentation allows the system to separate high-performance storage needs from capacity-oriented needs, enabling independent management and optimization of each segment without compromising the other.

Inventive Principle:
Principle #1Segmentation

4Quantity of substance

If multi-bit-per-cell mode blocks are used to maximize capacity, then storage density is improved, but write performance and endurance deteriorate

Engineering Contradiction:
Improvestorage densityVSAvoidendurance
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The system applies local quality by assigning multi-bit-per-cell blocks to a separate pool where they can provide high storage density for capacity-oriented workloads. These blocks are not forced to handle write-intensive operations, allowing them to maintain their density advantage while avoiding the endurance degradation that would result from excessive write operations.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

By segmenting the storage system into SLC and multi-bit-per-cell pools, the patent protects the multi-bit-per-cell blocks from write-intensive operations that would reduce their endurance. The segmentation allows capacity optimization without sacrificing reliability, as each pool type can be used for its strength.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11182089B2Adapting memory block pool sizes using hybrid controllers
Publication Date: 2021.11.23 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11182089B2 patent drawing
  • US11182089B2 patent drawing
  • US11182089B2 patent drawing

AI summary

A computer-implemented method, according to one embodiment, includes: determining whether a number of blocks included in a first ready-to-use (RTU) queue is in a first range of the first RTU queue. In response to determining that the number of blocks included in the first RTU queue is in the first range, a determination is made as to whether a number of blocks included in a second RTU queue is in a second range of the second RTU queue. Moreover, in response to determining that the number of blocks included in the second RTU queue is not in the second range, valid data is relocated from one of the blocks in a first pool which corresponds to the first RTU queue. The block in the first pool is erased, and transferred from the first pool to the second RTU queue which corresponds to a second pool.