NVM Controller Staging Data Requests for Concurrency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Non-volatile memory (NVM) systems face inefficiencies in data access request handling due to misalignment between data sizes of host requests and internal storage element sizes, leading to wasted capacity and increased garbage collection and write amplification.

Innovation Solution

A controller in the NVM device stages and combines data access requests to maximize concurrent programming, ensuring that the combined data size meets or exceeds the capacity of a single set of operations, thereby optimizing concurrency and reducing waste.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data access requests are processed individually without staging, then request processing simplicity is maintained, but storage element utilization efficiency deteriorates due to size misalignment

Engineering Contradiction:
Improvestorage element utilization efficiencyVSAvoidrequest processing complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The controller stages incoming data access requests in a staging buffer before processing, performing preliminary organization and alignment of request data sizes to match storage element capacities. This preliminary action enables subsequent concurrent programming operations without waste, resolving the contradiction between utilization efficiency and processing simplicity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The controller merges multiple staged requests into combined programming operations when their data sizes align with storage element capacities. By combining requests that can be programmed concurrently to the same storage elements, the system achieves higher utilization efficiency while managing complexity through intelligent request grouping.

Inventive Principle:
Principle #5Merging (Combining)

2Productivity

If requests are staged and combined to meet storage element size requirements, then programming concurrency is improved, but garbage collection overhead increases

Engineering Contradiction:
Improveprogramming concurrencyVSAvoidgarbage collection time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The controller maintains continuous programming operations by staging requests and combining them to achieve full storage element utilization. This continuous useful action minimizes idle programming cycles and reduces the frequency and impact of garbage collection operations, as data is programmed more efficiently without wasted capacity that would require subsequent cleanup.

Inventive Principle:
Principle #20Continuity of useful action

3Adaptability or versatility

If data sizes of host requests are not aligned with internal storage element sizes, then flexibility in accepting various request sizes is maintained, but write amplification increases

Engineering Contradiction:
Improverequest size flexibilityVSAvoidwrite amplification
Core Design Contradiction:
Adaptability or versatilityVSLoss of substance

Solution Approach 1:

The controller changes the parameter of data organization by staging requests and reorganizing their data sizes to align with storage element capacities. This parameter transformation maintains the flexibility to accept various host request sizes while eliminating write amplification, as the controller internally adjusts data grouping rather than requiring fixed-size requests from the host.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS8938583B1System and method for concurrently executing data access requests
Publication Date: 2015.01.20 WESTERN DIGITAL TECHNOLOGIES INC
  • US8938583B1 patent drawing
  • US8938583B1 patent drawing
  • US8938583B1 patent drawing

AI summary

Embodiments of the invention are directed to systems and methods for optimizing data access request handling in a non-volatile memory (NVM) device. In one embodiment, the device may include a number of storage elements that can be concurrently programmed, and the device may include a controller that determines whether data access requests may be staged and processed together so that the concurrency of the storage device may be optimized. In one embodiment, staged requests are selectively combined together so that their combined data size is greater than or equal to a data size that can be programmed in a single set of concurrent operations to the storage elements.