Shared Network Adapter Data Constructs for Host Communication
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing technologies face challenges in efficiently managing the transfer of large data sets across hosts and shared network interfaces, which can be costly in terms of CPU cycles and network I/O.
Innovation Solution
The establishment of data constructs for a data device in host memory, including storage block pages, control program queue indexes, and interrupt registers, along with the transmission of a queue description record to a shared adapter to configure queues and manage data transfers.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If traditional data transfer methods are used through shared network interfaces, then data can be transferred between hosts and network, but CPU cycles and network I/O costs increase significantly
Solution Approach 1:
The patent segments the data transfer process by introducing separate control queues and data queues. Control queues handle command and status information, while data queues handle actual data transfer. This segmentation allows the system to optimize CPU involvement by separating control plane operations from data plane operations, reducing unnecessary CPU intervention in high-volume data transfers.
Solution Approach 2:
The patent introduces an intermediary data device with descriptor rings that act as a buffer between the host and shared network interface. This intermediary structure allows data to be staged and transferred in batches, reducing the frequency of CPU interventions and lowering overall CPU cycle consumption while maintaining data transfer efficiency.
2Productivity
If traditional data transfer methods are used through shared network interfaces, then data can be transferred between hosts and network, but network I/O costs increase significantly
Solution Approach 1:
The patent implements preliminary action by pre-configuring descriptor rings and data constructs in host memory before data transfer operations begin. The queue description records and control structures are established in advance, allowing the system to execute data transfers with minimal real-time processing overhead, thereby reducing network I/O costs.
Solution Approach 2:
The patent enables continuous data transfer operations through the use of ring buffers and descriptor queues that allow data to be transferred in continuous streams without frequent stop-start operations. This continuity reduces the overhead associated with repeated I/O operations, lowering overall network I/O costs while maintaining high productivity.
3Productivity
If data constructs are established in host memory with queue description records, then communication efficiency improves, but device complexity increases
Solution Approach 1:
The patent applies universality by designing a multi-functional data device structure that handles both control plane operations (command/status) and data plane operations (data transfer) through a unified queue description record framework. This universal structure reduces the need for separate complex configurations for different operation types, managing complexity while maintaining communication efficiency.
Solution Approach 2:
The patent manages complexity through parameter changes by allowing the queue description records to be dynamically configured with different parameters for control queues versus data queues. This flexibility enables the system to adapt to different communication requirements without requiring fundamentally different structural configurations, balancing efficiency gains with manageable complexity.
Data Source
AI summary
Embodiments herein describe techniques for establishing data constructs for a data device that enable communication between a host and a shared adapter. A shared adapter facilitates communication with one or more hosts coupled to a NIC. To do so, a host can establish the data device in each operating system that wishes to communicate with the shared adapter. This can include establishing data constructs such as storage block pages, queue indexes, and interrupt registers in the host memory. The host can then transmit a queue description record (QDR) to the shared adapter so the adapter can configure the queues and has the addresses of the data constructs in the host memory.


