Splitting Sequential Read Commands for Non-Volatile Memory

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The memory controller in non-volatile storage devices faces challenges in efficiently scheduling mixed random read and sequential read command sequences, leading to bottlenecks and idle planes due to the need for synchronized timing and restricted parallel operations.

Innovation Solution

The proposed solution involves splitting sequential read commands into plane read commands at boundaries and submitting them as asynchronous independent plane reads (AIPR) alongside random read commands, allowing for simultaneous execution and improved plane utilization, thereby reducing bottlenecks and increasing performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If sequential read commands are executed with synchronized timing across multiple planes, then read performance is improved through parallel operations, but plane utilization deteriorates due to idle planes during AIPR mode

Engineering Contradiction:
Improveread performanceVSAvoidplane utilization
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent segments sequential read commands into multiple independent plane read commands that can be executed asynchronously across different planes. Instead of treating sequential reads as a single synchronized operation, the system divides them into separate commands for each plane, allowing independent execution and improving overall plane utilization while maintaining read performance.

Inventive Principle:
Principle #1Segmentation

2Quantity of substance

If asynchronous independent plane reads are used for random reads, then plane utilization is improved, but sequential read performance deteriorates due to blocking and idle planes

Engineering Contradiction:
Improveplane utilizationVSAvoidsequential read performance
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent implements dynamic scheduling that adapts the execution mode based on the type of read command. For sequential reads, the system dynamically coordinates plane operations to avoid blocking while maintaining throughput. For random reads, asynchronous independent plane reads are used. This dynamic approach allows the system to optimize for either plane utilization or sequential read performance depending on the workload characteristics.

Inventive Principle:
Principle #15Dynamics

3Productivity

If synchronized timing is required for multi-plane reads, then read performance is improved, but device complexity increases due to timing coordination overhead

Engineering Contradiction:
Improveread performanceVSAvoidtiming coordination overhead
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent extracts the timing coordination requirement from the plane read operations themselves and handles it at the command scheduling level. By separating the timing coordination function from the actual plane execution, the system reduces the complexity burden on individual planes while maintaining overall synchronized performance when needed.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS11989458B2Splitting sequential read commands
Publication Date: 2024.05.21 SANDISK TECHNOLOGIES LLC
  • US11989458B2 patent drawing
  • US11989458B2 patent drawing
  • US11989458B2 patent drawing

AI summary

Technology is disclosed herein for handling of mixed random read and sequential read command sequences. Plane read commands are formed from one or more sequential read commands. A sequential read command may be split into multiple plane read commands at plane boundaries. The plane read commands are submitted to the respective planes as asynchronous independent plane read commands. Random read commands may be submitted to the planes as asynchronous independent plane read (AIPR) commands on par with the split sequential read commands. Therefore, AIPR may be used for both sequential read commands and random read commands. Submitting a split sequential read command to one or more planes while one or more other planes are performing a random read command can significantly improve performance.