Command Parser Feedback for Random Write Performance

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing storage systems face performance degradation due to inefficient command scheduling, as they lack feedback from the back end module to prioritize commands effectively, leading to suboptimal utilization of memory resources and increased processing time for random write operations.

Innovation Solution

Implementing a command parser in the front end module that receives feedback from the back end module regarding latch occupancy, cached logical-to-physical address maps, and free memory space to intelligently schedule commands, prioritizing writes over reads and optimizing memory usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If commands are sent to the back end module in the order received or grouped into batches, then the command processing flow is simple, but random write performance degrades due to inefficient memory resource utilization

Engineering Contradiction:
Improverandom write performanceVSAvoidcommand scheduling complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system implements a feedback mechanism where the back end module provides occupancy information about memory latches and cached address maps to the front end command parser. This feedback enables the command parser to dynamically adjust command scheduling decisions, prioritizing writes when latch occupancy is low and balancing with reads when occupancy is high, thereby improving random write performance without excessive complexity

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The command scheduling mechanism transitions from static ordering (FIFO or fixed batching) to dynamic prioritization based on real-time memory state. The command parser adjusts command priority dynamically according to latch occupancy levels and address map cache status, allowing the system to adapt to changing memory conditions and optimize write performance accordingly

Inventive Principle:
Principle #15Dynamics

2Productivity

If the front end module sends commands without feedback from the back end, then the system architecture is simple, but memory resource utilization is suboptimal

Engineering Contradiction:
Improvememory resource utilizationVSAvoidfeedback mechanism complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The back end module provides feedback information about latch occupancy and cached address map status to the front end command parser. This feedback loop enables the system to make informed scheduling decisions that maximize memory resource utilization, with the feedback mechanism adding minimal complexity through structured information exchange

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The command parser autonomously uses the received feedback information to make scheduling decisions without requiring external control. The system self-regulates command prioritization based on internal memory state feedback, improving resource utilization while maintaining architectural simplicity

Inventive Principle:
Principle #25Self-service

3Loss of time

If commands are processed in FIFO order, then implementation is straightforward, but processing time increases due to inability to prioritize critical operations

Engineering Contradiction:
Improvecommand processing timeVSAvoidcommand prioritization complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The system performs preliminary assessment of command priority by evaluating latch occupancy and address map cache status before sending commands to the back end. This preliminary action allows the command parser to pre-prioritize write commands when memory resources are available, reducing overall processing time without complex real-time arbitration

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Feedback about memory latch occupancy and cached address maps enables the command parser to prioritize time-critical write operations before they would cause delays. By receiving and acting on this feedback, the system reduces command processing time while maintaining manageable complexity through rule-based prioritization

Inventive Principle:
Principle #23Feedback

4Productivity

If the system does not track latch occupancy and address map cache status, then the system is simpler, but unnecessary data flushing occurs reducing IOPS

Engineering Contradiction:
ImproveIOPSVSAvoidstate tracking complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The back end module provides feedback on latch occupancy levels and cached address map status, enabling the command parser to identify when memory resources are available for additional writes. This feedback prevents unnecessary data flushing operations that would reduce IOPS, while the tracking complexity remains localized to the back end module

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The back end module self-tracks its internal state (latch occupancy and cache status) and provides this information to the front end. This self-service approach allows the system to optimize IOPS by preventing unnecessary flushing, while the tracking complexity is managed by the module that naturally has access to the state information

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10725901B2Storage system and method for soft-decision-based command execution to enhance random write performance
Publication Date: 2020.07.28 SANDISK TECHNOLOGIES LLC
  • US10725901B2 patent drawing
  • US10725901B2 patent drawing
  • US10725901B2 patent drawing

AI summary

A storage system and method for soft-decision-based command execution to enhance random write performance are provided. In one embodiment, the storage system comprises a memory and a controller. The controller comprises a command parser and a set of components in a path between the command parser and the memory, wherein the command parser is configured to receive a plurality of commands from a host and determine an order in which to send the plurality of commands to the set of components based on feedback from the set of components. Other embodiments are provided.