Scatter Gather List Descriptor Interleaving NVM Buffers
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current communication interfaces for non-volatile memory devices require excessive resources and overhead due to the need for multiple scatter/gather list descriptors to interleave data from separate buffers, leading to inefficiencies in data transfer.
Innovation Solution
A system and method utilizing specialized scatter/gather list descriptors that require only a single pair of descriptors to interleave data from a first buffer containing application data and a second buffer containing protection data, minimizing resource usage and adhering to existing communication standards like PCIe and NVMe.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If scatter/gather list descriptors are used to interleave data from separate buffers, then data interleaving is achieved, but the number of descriptors required becomes prohibitive
Solution Approach 1:
The patent combines multiple descriptor functions into a single unified descriptor structure. Instead of requiring separate descriptors for each buffer and each data block, the invention merges buffer identification, data block addressing, and interleaving control into one integrated descriptor that the storage device can process efficiently.
Solution Approach 2:
The descriptor design provides multi-functionality by enabling a single descriptor type to handle both application data and protection data from different buffers through unified addressing mechanisms. The descriptor can specify different buffer sources and interleave patterns without requiring separate specialized descriptor types for each case.
2Measurement precision
If multiple scatter/gather list descriptors are created for each block of data, then precise data location tracking is achieved, but the overhead becomes prohibitive
Solution Approach 1:
The patent segments the descriptor information into logical components (buffer identification, block addressing, transfer control) that can be efficiently packed and processed. This segmentation allows the storage device to parse and act on specific descriptor fields without processing unnecessary information, reducing overhead while maintaining precise tracking.
Solution Approach 2:
The host system prepares and populates the scatter/gather list with all necessary descriptor information before initiating the data transfer operation. By pre-configuring the descriptors with complete buffer addresses, block offsets, and interleaving parameters, the storage device can execute the operation with minimal additional processing overhead.
3Adaptability or versatility
If a third buffer is used to store interleaved data, then data interleaving is achieved, but memory resources are wasted
Solution Approach 1:
The patent extracts the interleaving function from the buffer storage function. Instead of using a third buffer to hold interleaved data, the invention extracts only the essential interleaving control information (buffer addresses, block sizes, patterns) into descriptors, allowing the storage device to perform interleaving during the transfer process itself without requiring additional buffer memory.
Solution Approach 2:
The scatter/gather list acts as an intermediary structure between the host system's buffers and the storage device. Rather than physically moving and interleaving data in an intermediate buffer, the SGL descriptors serve as a mediator that instructs the storage device how to retrieve and interleave data directly from the original buffers during the transfer operation.
Data Source
AI summary
A host interface communicates with a non-volatile memory (NVM) device over a bus. The host interface includes a first buffer, a second buffer and a scatter/gather list (SGL). The first buffer stores blocks of application data to be communicated to the storage device. The second buffer stores blocks of protection data added by the host interface with respect to the blocks of application data stored in the first buffer. The SGL utilizes a first descriptor type that includes a first buffer address, a first buffer interleave burst length, and a burst count, and a second descriptor type that includes a second buffer address, and a second buffer interleave burst length, wherein only a first descriptor and a second descriptor is required to interleave application data from the first buffer with protection data from the second buffer.


