NVMe Non-Contiguous Queue Management via Segmented PRP Lists

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing NVMe submission and completion queue mechanisms face challenges in managing Physical Region Page (PRP) lists, particularly in reducing PCIe traffic and power consumption while maintaining performance and handling low power modes, due to the need for additional storage and potential performance degradation.

Innovation Solution

A hybrid approach is adopted where PRP lists are stored in DRAM and pointers are stored in always-on memory, allowing for efficient retrieval and reconstruction of PRP lists during errors or low power mode transitions, reducing the need for continuous PCIe communication and optimizing memory usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If PRP lists are stored in DRAM, then access speed is improved, but power consumption increases and memory requirements increase

Engineering Contradiction:
ImprovePRP list access speedVSAvoidpower consumption
Core Design Contradiction:
SpeedVSUse of energy by moving object

Solution Approach 1:

The PRP list storage is segmented into two parts: frequently accessed PRP list data is stored in DRAM for fast access, while less frequently accessed data is stored in non-volatile memory. This segmentation allows the system to optimize for both speed and power consumption by loading only necessary portions into DRAM.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary actions by pre-loading PRP list data into DRAM before it is needed, or caching frequently accessed portions. This allows the DRAM to be populated in advance during low-power states, so that when full performance is needed, the data is already available without requiring continuous high-power operation.

Inventive Principle:
Principle #10Preliminary action

2Use of energy by moving object

If PRP lists are stored in non-volatile memory, then power consumption is reduced, but access speed decreases

Engineering Contradiction:
Improvepower consumptionVSAvoidPRP list access speed
Core Design Contradiction:
Use of energy by moving objectVSSpeed

Solution Approach 1:

The PRP list storage is segmented into two parts: frequently accessed PRP list data is stored in DRAM for fast access, while less frequently accessed data is stored in non-volatile memory. This segmentation allows the system to optimize for both speed and power consumption by loading only necessary portions into DRAM.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically adjusts the storage location of PRP list data based on access patterns and power state. During active high-performance modes, data is kept in DRAM for fast access. During low-power modes, the system can transition to using non-volatile memory storage, dynamically adapting to current operational requirements.

Inventive Principle:
Principle #15Dynamics

3Speed

If PRP lists are cached in memory, then access speed is improved, but additional storage requirements increase

Engineering Contradiction:
ImprovePRP list access speedVSAvoidmemory storage requirements
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The PRP list storage is segmented into two parts: frequently accessed PRP list data is stored in DRAM for fast access, while less frequently accessed data is stored in non-volatile memory. This segmentation allows the system to optimize for both speed and power consumption by loading only necessary portions into DRAM.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different portions of the PRP list are stored with different qualities: hot data that requires frequent access is stored in fast DRAM, while cold data is stored in slower non-volatile memory. This local quality differentiation ensures that only the necessary amount of fast memory is used, optimizing the balance between access speed and storage requirements.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10296249B2System and method for processing non-contiguous submission and completion queues
Publication Date: 2019.05.21 SANDISK TECHNOLOGIES LLC
  • US10296249B2 patent drawing
  • US10296249B2 patent drawing
  • US10296249B2 patent drawing

AI summary

Systems and methods for processing non-contiguous submission and completion queues are disclosed. Non-Volatile Memory Express (NVMe) implements a paired submission queue and completion queue mechanism, with host software on a host device placing commands into the submission queue. The submission and completion queues may be contiguous or non-contiguous in host device memory. Non-contiguous queues may be defined by a link to a list on the host device that lists the non-contiguous sections in memory. In practice, the memory device stores the list in one type of memory (such as a dynamic random access memory (DRAM) cache) and the link in a different type of memory (such as always-on memory or non-volatile memory). In this way, the link may be accessed in various modes (such as low power mode) in order to recreate the list in DRAM. At least a part of the list of non-contiguous sections may be restored in response to the memory device exiting low power mode, or in response to determining that part or all of the list of noncontiguous sections is corrupted. The list of non-contiguous sections may comprise a list of physical region pages.