Pseudo Cut-Through NVMe-oF Architecture Reducing Memory Overhead
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing NVMe Over Fabric (NVMEoF) systems require significant memory resources and incur high latency due to the store and forward mechanism for data transfer between remote hosts and non-volatile memory storage, which is inefficient and undesirable.
Innovation Solution
A pseudo cut-through architecture is implemented, where remote descriptors specifying larger-than-page-size buffers are mapped to page-sized virtual buffers, allowing for direct memory access (DMA) requests to be generated and sent over the fabric, reducing the need for extensive buffering and minimizing latency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a store and forward mechanism is used for data transfer between remote hosts and NVM storage, then data can be transferred reliably, but memory resource requirements increase and latency increases
Solution Approach 1:
The patent segments large remote buffers into multiple page-sized virtual buffers, allowing the system to process and transfer data in smaller manageable chunks. This segmentation enables the controller to map remote buffers to page-sized virtual buffers, reducing the need for large memory buffers while maintaining reliable data transfer through the fabric.
Solution Approach 2:
The patent introduces virtual buffers as an intermediary between remote buffers and physical memory. These virtual buffers act as a mediator that maps remote buffer addresses to physical memory locations, allowing the system to avoid direct large buffer allocations in physical memory while maintaining data transfer reliability.
2Quantity of substance
If a store and forward mechanism is used for data transfer, then data can be fully buffered, but operation latency increases
Solution Approach 1:
By segmenting data transfer into page-sized operations rather than requiring full buffer transfer, the system reduces the time data spends in buffering states. The controller can process and forward page-sized chunks more quickly, reducing overall operation latency while still providing sufficient buffering capacity for data transfer.
Solution Approach 2:
The controller pre-establishes mappings between remote buffers and virtual buffers before data transfer begins. This preliminary mapping setup allows for faster data transfer operations without requiring large buffering capacities, as the paths are already defined and ready for immediate data movement.
3Productivity
If remote buffers larger than page size are used, then data transfer efficiency improves, but memory resource requirements increase
Solution Approach 1:
The patent segments large remote buffers into multiple page-sized virtual buffers, allowing the system to maintain the efficiency benefits of large buffer operations while avoiding the memory resource requirements of storing entire large buffers in physical memory. The virtual buffer layer enables this segmentation without performance loss.
Solution Approach 2:
Virtual buffers serve as an intermediary layer that allows the system to reference large remote buffers without allocating proportional physical memory. The virtual buffer mapping enables efficient data transfer by providing direct access paths while eliminating the need for large physical memory buffers.
Data Source
AI summary
An example method of exchanging data between a remote host and a target system includes receiving at least one remote descriptor from the remote host over a front-end fabric at a controller, the at least one remote descriptor specifying a remote buffer in a remote memory of the remote host that is larger than a page size. The method includes adding entries to a table that map the remote buffer to a plurality of page-sized virtual buffers in a virtual address space managed by the controller, generating local descriptors referencing the plurality of paged-sized virtual buffers, receiving a sequence of page-sized direct memory access (DMA) requests at the controller, generating a sequence remote DMA (RDMA) requests from the sequence of DMA requests based on the entries in the table, and sending the sequence of RDMA requests to the remote host over the front-end fabric.


