Extended PRP Lists for NVMe SSD Data Transfer
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Consumer class SSDs lack support for scatter/gather lists (SGLs), leading to performance issues during data transfers, as they must either rewrite the storage stack or perform double copying of data buffers to align with physical region page (PRP) alignment, which is resource-intensive and inefficient.
Innovation Solution
The implementation of extended physical region page (PRP) lists in host computing devices to facilitate data transfers by generating a PRP list from SGLs and allocating memory pages for metadata, allowing seamless data transfer without requiring storage stack rewriting or expensive data segment copying.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If consumer class SSDs use PRP-based data transfers without SGL support, then compatibility with NVMe specifications is maintained, but storage device performance significantly decreases
Solution Approach 1:
The patent introduces an intermediary mechanism that translates SGL-based data transfer requests into PRP-based transfers. The host storage stack generates SGLs for efficient data transfer, and the SSD controller acts as an intermediary that converts these SGLs into equivalent PRP lists, allowing the consumer class SSD to maintain SGL-like performance while using PRP-based transfers that it natively supports.
Solution Approach 2:
The patent changes the parameter representation of data transfer buffers by converting scatter/gather buffer descriptions into physical region page format. This parameter transformation allows the same data transfer operation to be expressed in a format that consumer class SSDs can process efficiently, maintaining performance while ensuring compatibility.
2Adaptability or versatility
If the storage stack is rewritten to use PRP-based data transfers, then compatibility with consumer class SSDs is achieved, but resource consumption and implementation complexity increase
Solution Approach 1:
Rather than rewriting the entire storage stack to use PRP-based transfers, the patent introduces a translation layer or intermediary component that converts standard SGL requests into PRP format. This approach maintains the original storage stack design while adding a compatibility layer that handles the conversion, significantly reducing implementation complexity compared to a full rewrite.
Solution Approach 2:
The patent performs preliminary conversion of SGL data structures into PRP format before data transfer operations begin. By pre-processing the buffer descriptions and creating equivalent PRP lists in advance, the system avoids the need for complex runtime conversions or storage stack modifications, reducing both implementation complexity and runtime overhead.
3Adaptability or versatility
If double copying of data buffers is performed to align with PRP alignment, then data transfer compatibility is achieved, but resource utilization and performance decrease
Solution Approach 1:
Instead of performing expensive double copying of data buffers to achieve PRP alignment, the patent uses intelligent copying of only the necessary buffer descriptor information (metadata) from SGL structures to create equivalent PRP lists. This selective copying approach maintains PRP alignment compatibility while minimizing data movement and reducing resource utilization significantly compared to full buffer copying.
Data Source
AI summary
Methods, non-transitory machine readable media, and computing devices that use extended physical region page (PRP) lists to improve storage device performance are disclosed. With this technology, a PRP list is generated that includes pointers retrieved from a scatter/gather list (SGL) for memory buffers representing data segments associated with a storage operation. The PRP list is extended to include a pointer to an allocated memory page configured to store metadata segments represented by other memory buffers referenced by other pointers in the SGL. A command request that includes the extended PRP list is submitted to a storage device for execution of the storage operation. With this technology, storage operations are advantageously enabled for non-volatile memory express (NVMe) solid-state drive (SSDs), for example, that do not support SGL transfers.


