Flash Controller Command Selection via Multi-Stage Arbitration
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing flash storage systems face inefficiencies due to the need to process hundreds of commands simultaneously, which is memory-intensive and time-consuming, often leading to unfair and inefficient command execution due to limited reordering capabilities.
Innovation Solution
A system with multiple ports and arbiters selects a subset of command identifiers based on age and port priority, allowing a microcontroller to optimize command execution by processing a smaller set of commands, ensuring fairness and efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If all issued flash commands are examined and reordered, then command execution efficiency is improved, but memory usage and processing time increase significantly
Solution Approach 1:
The patent segments the command selection process into multiple stages: first, port arbiters select commands from individual ports; then a second arbiter selects from the aggregated set. This segmentation reduces the memory burden on any single component and enables efficient processing through distributed selection logic.
Solution Approach 2:
Instead of examining all issued commands simultaneously, the system performs partial examination in sequential stages. The port arbiters perform preliminary selection, and the second arbiter performs final selection from a reduced set, avoiding the need to hold all commands in memory at once while still achieving efficient reordering.
2Device complexity
If commands are processed in the order they are issued, then processing simplicity is maintained, but system efficiency deteriorates due to inability to execute parallelizable commands
Solution Approach 1:
The port arbiters perform preliminary selection of commands from each port before the second arbiter performs final selection. This preliminary action organizes commands in advance, enabling the second arbiter to efficiently select commands for reordering without complex real-time analysis, thus maintaining processing simplicity while improving efficiency.
3Productivity
If limited command reordering is implemented, then some efficiency improvement is achieved, but command execution fairness deteriorates as newer commands may be executed while older commands languish
Solution Approach 1:
The arbitration process is segmented across multiple components (port arbiters and second arbiter) that work sequentially. This segmentation ensures that commands from all ports are considered in the selection process, preventing any single port from monopolizing execution while still allowing efficient reordering through the multi-stage selection mechanism.
Data Source
AI summary
A system for selecting a subset of issued flash storage commands to improve processing time for command execution. A plurality of ports stores a first plurality of command identifiers and are associated with the plurality of ports. Each of the first plurality of arbiters selects an oldest command identifier among command identifiers within each corresponding port resulting in a second plurality of command identifiers. A second arbiter makes a plurality of selections from the second plurality of command identifiers based on command identifier age and the priority of the port. A session identifier queue stores commands associated with the plurality of selections among other commands forming a third plurality of commands. A microcontroller selects an executable command from the third plurality of commands for execution based on an execution optimization heuristic. After execution of the command, the command identifier in the port is cleared.


