PCIe Switch Queue Transfer for Multi-Node Storage Sharing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current PCIe fabrics limit shared access to storage devices among multiple compute nodes, as each storage device typically has direct memory access to only one compute node, restricting concurrent requests and third-party data transfers.
Innovation Solution
Implementing a switch fabric that allows compute nodes to share access to storage devices through the transfer of queues, enabling multiple nodes to submit requests directly to storage devices via a PCIe switch, which routes data and interrupts based on address mappings, facilitating concurrent access and third-party transfers.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a storage device has direct memory access to only one compute node, then the system maintains simple access control and ownership management, but multiple compute nodes cannot concurrently access the storage device
Solution Approach 1:
The patent introduces a queue transfer mechanism as an intermediary that enables multiple compute nodes to access a storage device. The storage device maintains ownership by one compute node while allowing other compute nodes to transfer queues and access the device through the owner node, thus resolving the contradiction between simple access control and multi-node accessibility.
Solution Approach 2:
The storage device is designed with multi-functionality to serve both as an owned device for one compute node and as a shared resource for multiple compute nodes. Through the queue transfer mechanism, the same storage device can be accessed by multiple nodes concurrently, achieving versatility without requiring multiple separate storage devices.
2Productivity
If direct memory access is limited to one compute node, then the PCIe fabric maintains simple routing and address mapping, but concurrent requests and third-party data transfers are restricted
Solution Approach 1:
The patent implements preliminary action by pre-establishing queue transfer mechanisms and address mapping configurations that enable concurrent requests to be routed efficiently. Compute nodes can prepare queue transfers in advance, and the PCIe switch maintains pre-configured routing tables for rapid data transfer, reducing latency while supporting concurrent access.
Solution Approach 2:
The PCIe switch acts as an intermediary that facilitates concurrent requests and third-party data transfers. It manages address mappings and routes data packets between compute nodes and storage devices, enabling multiple nodes to submit requests simultaneously without increasing access latency significantly.
3Adaptability or versatility
If queues are transferred between compute nodes, then shared access to storage devices is enabled, but the system requires complex queue management and ownership tracking
Solution Approach 1:
The patent implements feedback mechanisms where the storage device and PCIe switch track queue ownership and transfer status. The system maintains ownership information through feedback loops that update address mappings and queue pointers, enabling complex queue sharing while maintaining manageable ownership tracking through automated status updates.
Solution Approach 2:
The queue transfer mechanism uses copying concepts where queue references or pointers are transferred between compute nodes rather than physically moving data. The storage device maintains its original queue structure while compute nodes obtain references to access the queues, reducing the complexity of actual queue management while enabling shared access.
Data Source
AI summary
According to examples, an apparatus may include a memory to which a first queue and a second queue are assigned, in which a storage device is to access data task requests stored in the first queue and the second queue, in which the apparatus is to transfer the first queue to a second apparatus. The apparatus may also include a central processing unit (CPU), the CPU to input data task requests for the storage device into the second queue, in which the second apparatus is to store the first queue in a second memory of the second apparatus, and the storage device is to access data task requests from the first queue stored in the second memory of the second apparatus and data task requests from the second queue stored in the memory to cause the apparatus and the second apparatus to share access to the storage device.


