NVMe Switch PRP Pointer Modification for Multi-Host PCIe Routing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Routing PCIe memory requests to multiple hosts associated with Solid State Drives (SSDs) is complex due to the lack of host identification in Physical Region Pages (PRP) entries within the NVMe standard, making it difficult to determine which host to route the requests to.

Innovation Solution

The NVMe switch modifies PRP entries with a host ID or virtual function ID to facilitate routing of PCIe memory requests by embedding this identification within the PRP data or list pointers, allowing the NVMe switch to direct requests to the appropriate host.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If the NVMe standard uses PRP entries without host identification, then the structure remains simple and compatible with the original standard, but routing PCIe memory requests to multiple hosts becomes complex and ambiguous

Engineering Contradiction:
Improvemulti-host supportVSAvoidrouting complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent embeds host identification information within the existing PRP entry structure by utilizing unused or reserved bits in the PRP descriptor. This nested approach allows host routing information to be contained within the original PRP structure without adding external complexity, enabling multi-host support while maintaining structural simplicity

Inventive Principle:
Principle #7Nested doll (Nesting)

Solution Approach 2:

The NVMe switch preemptively modifies PRP entries by embedding host identification information before forwarding commands to SSDs. This preliminary action ensures that routing information is already embedded in the PRP entries when they reach the SSD, eliminating the need for complex routing decisions at later stages and simplifying the overall routing process

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If the NVMe switch modifies PRP entries by embedding host ID or VF ID, then routing accuracy to specific hosts improves, but the complexity of pointer modification and processing increases

Engineering Contradiction:
Improvehost identification accuracyVSAvoidpointer modification complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent applies modification only to specific fields within the PRP entry structure, specifically targeting unused or reserved bits that are local to the PRP descriptor. This localized modification approach embeds host identification information without altering the overall structure or functionality of the PRP entries, minimizing processing complexity while maintaining identification accuracy

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The NVMe switch changes parameters within the PRP entry by embedding host ID or VF ID in specific bit positions. This parameter change approach modifies only the necessary routing information fields while leaving other PRP parameters unchanged, enabling accurate host identification without requiring complete restructuring of the pointer system

Inventive Principle:
Principle #35Parameter changes

3Reliability

If multiple hosts are supported without modifying PRP entries, then the original NVMe standard compatibility is maintained, but the ability to route requests to specific hosts is lost

Engineering Contradiction:
Improvestandard compatibilityVSAvoidmulti-host routing capability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent nests host identification information within the existing PRP entry structure by utilizing unused or reserved bits. This nested embedding maintains outward compatibility with the original NVMe standard while internally providing multi-host routing capability, allowing both standard compliance and enhanced functionality to coexist

Inventive Principle:
Principle #7Nested doll (Nesting)

Solution Approach 2:

The NVMe switch performs preliminary modification of PRP entries by embedding host identification information before commands are processed by SSDs. This advance preparation ensures that when PRP entries are encountered during command execution, they already contain the necessary routing information, enabling both standard compatibility and multi-host support without conflict

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP4220419B1Modifying nvme physical region page list pointers and data pointers to facilitate routing of pcie memory requests
Publication Date: 2024.02.21 MARVELL WORLD TRADE LTD
  • EP4220419B1 patent drawingFigure 1A
  • EP4220419B1 patent drawingFigure 1B
  • EP4220419B1 patent drawingFigure 2

AI summary

A first command is received from a virtual or physical host associated with a storage system which includes two or more hosts. The first command comprises one or more physical request page (PRP) entries associated with the non-volatile memory express (NVMe) standard. The one or more PRP entries are modified with an indication of the virtual or physical host. A second command is sent with the modified one or more PRP entries to a solid state drive (SSD). A memory request is received from the SSD, where the memory request comprises the modified one or more PRP entries. The memory request is routed to the virtual or physical host based on the indication of the virtual or physical host in the modified one or more PRP entries.