Emulated InfiniBand Channel Adapter via Memory-Mapped I/O
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The Infiniband architecture requires dedicated hardware, which is expensive and adds significant cost to computer systems, as it necessitates specialized hardware components for interconnecting computing device nodes.
Innovation Solution
An emulated channel adapter, implemented using the Data Plane Development Kit (DPDK), replaces dedicated IB hardware by utilizing a poll mode driver to service queue pairs and implement memory-mapped communications between computing device nodes, allowing applications to communicate as if using IB hardware without the need for actual IB hardware.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If dedicated IB hardware is used, then communication performance and reliability are improved, but system cost increases significantly
Solution Approach 1:
The patent creates a software copy of the Infiniband channel adapter functionality. The emulated channel adapter implements the same communication protocols and queue pair management as hardware IB adapters, allowing applications to interact with it through the same interface. This software copy provides equivalent communication reliability without requiring expensive dedicated IB hardware components.
Solution Approach 2:
The patent replaces the mechanical/hardware-based Infiniband adapter with a software-based implementation. Instead of using physical IB hardware components (channel adapters, switches), the system uses software emulated in the host computing device's memory space, substituting hardware mechanics with software logic while maintaining the same functional behavior.
2Productivity
If dedicated IB hardware is used, then communication speed and efficiency are improved, but device complexity increases
Solution Approach 1:
The emulated channel adapter serves multiple functions within a single software component. It handles queue pair management, work request processing, payload data transmission, and communication protocol implementation all through one unified software interface. This multi-functionality eliminates the need for separate hardware components for each function, reducing overall device complexity while maintaining communication efficiency.
Solution Approach 2:
The emulated channel adapter acts as an intermediary layer between applications and the underlying communication infrastructure. It provides a standardized interface that applications can use without needing to understand or directly interact with complex hardware details. This intermediary abstraction simplifies the system by hiding hardware complexity behind a uniform software interface.
3Object-affected harmful factors
If software emulation is used, then system cost is reduced, but processing overhead may increase
Solution Approach 1:
The emulated channel adapter is pre-configured with queue pairs and memory-mapped I/O channels before communication begins. Applications can immediately start transmitting data without waiting for hardware initialization or configuration. The work request queues are pre-established in memory, allowing for rapid data submission and processing without the overhead of runtime hardware setup.
Solution Approach 2:
The software emulated adapter maintains continuous operation through persistent queue pairs and memory-mapped buffers. Data transmission flows continuously through pre-established communication channels without interruption for hardware reconfiguration or state resets. This continuous operation minimizes processing delays and maintains high throughput despite the software-based implementation.
Data Source
AI summary
Various examples are directed to systems and methods for utilizing a memory-mapped I/O channel. A first application may request that a message be sent to a channel counterparty. A message driver may receive from the first application the request to send the message, where the request comprises payload data from the message. The message driver may write a work request to a send queue of a first queue pair at the first memory location. An emulated channel adapter may poll a physical address at a memory device corresponding to the first memory location; determine that the work request is present at the send queue, and send the payload data to the channel counterparty.


