Command Buffer Management for Storage Device Congestion

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Non-volatile storage devices face performance slowdowns due to high latency and bandwidth utilization when handling multiple requests from initiator devices, often resulting in 'busy' messages and retransmissions, leading to monopolization of the command buffer and increased congestion.

Innovation Solution

Implementing a command buffer management module that communicates the remaining allowed storage size to initiator devices, allowing them to delay or avoid sending commands when the buffer is full, thereby reducing instances of monopolization and congestion by indicating available space and using programmable mappings to optimize resource allocation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the storage device processes a relatively large number of requests from multiple accessing devices, then the storage device can handle more data operations, but the processing speed slows down and latency increases

Engineering Contradiction:
Improvenumber of requests processedVSAvoidprocessing latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The command buffer is divided into multiple segments or regions, with each segment assigned to a specific initiator device. This segmentation allows multiple devices to access different segments simultaneously, reducing contention and latency while maintaining high throughput for multiple requests

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system pre-allocates command buffer segments to initiator devices before requests arrive. By preparing the buffer structure in advance and assigning segments proactively, the storage device can immediately process incoming requests without waiting for buffer availability, thereby reducing processing latency

Inventive Principle:
Principle #10Preliminary action

2Device complexity

If the storage device returns a busy message to an accessing device when the command buffer is full, then the buffer management is simplified, but the system bandwidth is wasted due to retransmissions

Engineering Contradiction:
Improvebuffer management complexityVSAvoidbandwidth utilization
Core Design Contradiction:
Device complexityVSLoss of energy

Solution Approach 1:

The command buffer management module continuously monitors buffer availability and provides real-time feedback to initiator devices about the status of their assigned segments. This feedback mechanism allows initiator devices to understand buffer status without causing congestion, eliminating the need for busy messages and retransmissions while maintaining simple buffer management

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

Each initiator device is assigned a dedicated segment of the command buffer that it can use independently. The device can autonomously determine when its segment is available and submit commands without needing to query the storage device, thereby eliminating bandwidth-wasting busy messages and retransmissions

Inventive Principle:
Principle #25Self-service

3Productivity

If the command buffer is monopolized by a single initiator device, then that device can achieve high throughput, but other initiator devices experience increased latency and reduced performance

Engineering Contradiction:
Improvethroughput of single initiator deviceVSAvoidlatency of other initiator devices
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The command buffer is segmented into multiple dedicated regions, with each initiator device assigned a specific segment. This segmentation ensures that one device cannot monopolize the entire buffer, as each device is confined to its own segment. Consequently, each device maintains high throughput within its segment while other devices simultaneously access their own segments without interference, eliminating latency for all initiators

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Each initiator device is granted exclusive access to a specific segment of the command buffer, providing localized high-performance access tailored to that device's needs. This local quality assurance ensures that each device experiences low latency and high throughput within its designated segment, while the overall system maintains fairness and prevents monopolization by any single device

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10013173B2Data storage device with command buffer management module and method of operating same
Publication Date: 2018.07.03 SANDISK TECHNOLOGIES LLC
  • US10013173B2 patent drawing
  • US10013173B2 patent drawing
  • US10013173B2 patent drawing

AI summary

An electronic device including a communication interface and a command buffer coupled to the communication interface. The communication interface is configured to receive commands from a plurality of initiator devices, and the command buffer is configured to store the commands. The electronic device further includes a command buffer management module coupled to the command buffer. The command buffer management module is configured to generate a message indicating a remaining allowed storage size associated with the command buffer. The communication interface is further configured to enable communication of the message to a particular initiator device of the plurality of initiator devices. The message may enable the particular initiator device to hold off on sending one or more other commands to the command buffer if the remaining allowed storage size fails to satisfy a threshold storage size.