Flash Command Dispatch Arbiter with Priority Queues

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Flash storage devices face inefficiencies in request dispatching due to varying completion times of different operations, such as control, read, and write requests, which can lead to suboptimal performance and data consistency issues.

Innovation Solution

A system with multiple queues of unique, ordered priority is implemented, where an arbiter selects the highest priority non-empty queue for dispatching flash commands, allowing for prioritization and arbitration of requests to improve flash memory performance through 'pipelining' of operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If requests are dispatched in FIFO order without prioritization, then the system is simple to implement, but high-priority control operations are delayed by lower-priority read/write operations

Engineering Contradiction:
Improvecontrol operation completion speedVSAvoidrequest dispatching system complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The request dispatching system is segmented into multiple priority levels (ultra priority, high priority, low priority queues). Control operations are placed in ultra priority queues while read/write operations use lower priority queues, allowing critical operations to be processed independently and immediately without being blocked by less critical operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different queues are assigned different priority levels based on the criticality of their operations. The ultra priority queue is reserved for control operations that require immediate processing, while other queues handle less time-sensitive operations. This local differentiation of quality ensures that critical operations receive the necessary processing speed.

Inventive Principle:
Principle #3Local quality

2Productivity

If the system uses a single queue for all flash commands, then the device complexity is low, but the throughput and utilization of the flash memory are suboptimal

Engineering Contradiction:
Improveflash memory throughputVSAvoidqueue management system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The single queue is segmented into multiple priority-based queues (ultra priority, high priority, low priority). This segmentation allows the system to manage different types of operations separately, improving flash memory utilization by ensuring that critical control operations are not delayed by bulk data transfers, thereby increasing overall throughput.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The arbiter dynamically selects which queue to service based on current system state and priority levels. This dynamic queue management allows the system to adapt to varying workloads and maintain optimal throughput by always processing the most critical pending operations first.

Inventive Principle:
Principle #15Dynamics

3Reliability

If control operations are interrupted by read/write operations, then lower-priority operations can progress, but data consistency issues arise

Engineering Contradiction:
Improvedata consistencyVSAvoidcontrol operation completion time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system segments operations into critical control operations (ultra priority) and non-critical data operations (high and low priority). This segmentation ensures that control operations that affect data consistency are protected from interruption by lower-priority operations, maintaining reliability while allowing time loss to be minimized for non-critical operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system takes preliminary action by assigning higher priority to control operations before any potential conflicts arise. This preemptive priority assignment prevents data consistency issues from occurring in the first place, as control operations that modify flash state are always processed before read/write operations that could interfere with them.

Inventive Principle:
Principle #9Preliminary anti-action

4Productivity

If the arbiter frequently switches between queues to maximize utilization, then throughput improves, but the lock bit mechanism becomes more complex

Engineering Contradiction:
Improveflash channel utilizationVSAvoidarbiter logic complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The arbiter implements dynamic queue selection based on priority levels and queue state. The lock bit mechanism is enhanced with dynamic behavior, allowing the arbiter to maintain queue selection during locked operations while still enabling priority-based switching when appropriate. This dynamic approach maximizes flash channel utilization without requiring overly complex arbitration logic.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS12197320B2System and method for enhancing flash channel utilization
Publication Date: 2025.01.14 MICROCHIP TECHNOLOGY INC
  • US12197320B2 patent drawing
  • US12197320B2 patent drawing
  • US12197320B2 patent drawing

AI summary

An apparatus and method for dispatching flash commands. The apparatus includes a plurality of queues, wherein each queue comprises an input to receive a flash command, an output to send a flash command, and an empty signal output to signal when the queue is empty, wherein each queue is assigned a unique, ordered priority. The apparatus includes a selector comprising a plurality of flash command inputs, a flash command output to a flash target, and a selection input, wherein each flash command input is coupled to a corresponding queue output. The apparatus includes an arbiter comprising inputs receiving each queue empty signal and receiving a lock bit from the flash command output of the selector and comprising a selection output coupled to the selection input of the selector. The flash command comprises a lock bit and a plurality of control bits to output to control inputs on a flash target.