Memory Sub-System for Non-Deterministic Command Scheduling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional memory controllers are unable to support non-deterministic commands with out-of-order responses for non-volatile memory components, such as those enabled by the NVDIMM-P protocol, due to the assumption that read commands for a specific rank will return in the order they were issued, which no longer holds when volatile and non-volatile memory components are connected on the same channel.
Innovation Solution
The memory sub-system includes extensions to the command queue and scheduling logic of the memory controller to support non-deterministic commands like NVDIMM-P, allowing for efficient scheduling of these commands without detrimental effects on deterministic commands to volatile memory components, and maintaining existing command scheduling policies like FRFCFS and QoS.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If conventional memory controllers use deterministic command scheduling assuming in-order responses, then volatile memory operations are efficient, but non-volatile memory components with out-of-order responses cannot be supported
Solution Approach 1:
The command queue is segmented into separate queues for deterministic and non-deterministic commands. This allows independent handling of each command type, enabling support for non-volatile memory protocols without disrupting volatile memory operations. The scheduling logic is also segmented to process commands from different queues according to their specific requirements.
Solution Approach 2:
An intermediary data structure (descriptor) is introduced to track command states and associate responses with their corresponding commands. This descriptor acts as a mediator that bridges the gap between out-of-order responses and in-order processing requirements, allowing the system to handle non-deterministic commands while maintaining overall system order.
2Adaptability or versatility
If non-deterministic commands with out-of-order responses are supported, then non-volatile memory components can be integrated, but command scheduling becomes more complex
Solution Approach 1:
The scheduling logic dynamically adapts based on command type. Deterministic commands are processed using traditional in-order scheduling, while non-deterministic commands are routed to a separate queue with appropriate handling. This dynamic approach allows the system to optimize for each command type without requiring complete redesign of the scheduling mechanism.
Solution Approach 2:
Commands are pre-categorized as deterministic or non-deterministic upon arrival, and pre-routed to appropriate queues before execution. This preliminary classification simplifies subsequent processing by ensuring that each command type is handled according to its specific requirements from the outset, avoiding complex real-time decision-making.
3Reliability
If separate handling of non-deterministic commands is implemented, then out-of-order responses are managed correctly, but existing command scheduling policies may be affected
Solution Approach 1:
The command queue system is designed to be universal, handling both deterministic and non-deterministic commands through a unified interface while maintaining separate processing paths. This multi-functionality allows the system to preserve existing scheduling policies for deterministic commands while adding support for non-deterministic commands, ensuring both reliability and productivity are maintained.
Solution Approach 2:
Different quality requirements are applied locally to different command types. Deterministic commands receive in-order processing guarantees, while non-deterministic commands are handled with out-of-order response support. This localized quality approach ensures that each command type receives the appropriate level of service without compromising overall system throughput.
Data Source
AI summary
A first non-deterministic read command from a command queue is selected to be issued. The command queue includes non-deterministic read commands including the first non-deterministic read command that are outstanding and placed in the wait state simultaneously. A first intermediate response from a non-volatile memory component is received that indicates that data associated with one of the outstanding non-deterministic read commands is available. A first send command is inserted into a send queue when the first intermediate response is received. The first send command is selected from the send queue to be issued and removed from the send queue. A response to a corresponding non-deterministic read command is received. The corresponding non-deterministic read command is one of the outstanding non-deterministic read commands. The response indicates the corresponding non-deterministic read command and includes data associated with corresponding non-deterministic read command. The corresponding non-deterministic read command is removed from the command queue.


