Memory Subsystem Queue Management for Priority Command Execution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional memory sub-systems face challenges in effectively prioritizing and managing commands across multiple memory dies, leading to inefficient allocation of system resources, where lower-priority commands may be executed before higher-priority ones, resulting in unnecessary resource utilization.
Innovation Solution
Implementing a queue management system at the die level with multiple priority queues for each memory die, where commands are assigned based on priority levels and a threshold value, ensuring that higher-priority commands are issued first, and all commands in a queue are issued when the threshold is exceeded, thereby optimizing resource allocation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If traditional command management is used without priority queues, then the system structure is simple, but lower-priority commands may be executed before higher-priority ones, leading to inefficient resource allocation
Solution Approach 1:
The command management system is segmented into multiple priority queues (first priority queue, second priority queue, etc.) within each memory die. Each queue handles commands of specific priority levels, ensuring that higher-priority commands are processed before lower-priority ones. This segmentation resolves the contradiction by organizing commands hierarchically, improving execution efficiency while maintaining manageable complexity through structured division.
Solution Approach 2:
A new dimension of priority levels is introduced to the command management system. Instead of a single linear queue, commands are organized across multiple dimensions: memory die level and priority level within each die. This dimensional expansion allows the system to differentiate and process commands based on urgency, resolving the efficiency issue while the modular queue structure keeps complexity controlled.
2Loss of time
If multiple priority queues are implemented at the die level, then higher-priority commands are executed promptly, but the device complexity increases
Solution Approach 1:
The queue management structure is segmented into multiple priority queues at each memory die level. This segmentation allows commands to be processed in priority order within each queue, reducing execution delays for high-priority commands. The modular nature of segmented queues makes the complexity manageable through structured organization rather than monolithic design.
Solution Approach 2:
Commands are pre-categorized and placed into appropriate priority queues before execution. This preliminary action of sorting commands by priority level ensures that higher-priority commands are readily available for immediate processing, reducing execution delays without requiring complex real-time decision-making during command processing.
3Loss of energy
If commands are continuously issued without threshold control, then queue processing is simple, but excessive queue accumulation occurs, wasting system resources
Solution Approach 1:
A feedback mechanism is implemented where the number of commands in each queue is continuously monitored against a threshold value. When the queue size exceeds the threshold, command issuance is controlled or paused. This feedback loop prevents excessive queue accumulation and optimizes resource utilization by ensuring commands are processed at appropriate rates, while the threshold-based control keeps the mechanism simple and manageable.
Data Source
AI summary
Methods, systems, and devices for data stream processing for maintaining queues for memory sub-systems are described. A number of commands included in a queue of a plurality of queues of a memory die of a memory sub-system can be determined. Each queue can be associated with a respective priority level and can be configured to maintain a respective set of commands. A command can be assigned to the queue based on a number of commands included in the queue. One or more commands can be issued from the queues based on the respective priority levels of the queues.


