Memory Sub-System for Non-Deterministic Command Scheduling

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvesupport for non-volatile memory protocolsVSAvoidcommand queue and scheduling logic
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improveintegration of non-volatile memoryVSAvoidscheduling logic
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improveresponse ordering accuracyVSAvoidcommand throughput
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

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.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10503438B1Memory sub-system supporting non-deterministic commands
Publication Date: 2019.12.10 MICRON TECHNOLOGY INC
  • US10503438B1 patent drawing
  • US10503438B1 patent drawing
  • US10503438B1 patent drawing

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.