Shared Send Queue for Networked Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional network systems require multiple dedicated send queues for each reliable communication channel, leading to increased communication processing overhead and limited scalability, especially for companion devices with limited queue storage capacity.
Innovation Solution
Implementing a shared send queue that decouples from reliable communication channels, allowing multiple outstanding messages and enabling message transmission across multiple destinations without the need for multiple send queues, with a communication device managing the shared send queue to ensure in-order completion of messages.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If multiple dedicated send queues are allocated for each reliable communication channel, then reliable connectivity and message transmission order are ensured, but communication processing overhead increases and device complexity increases
Solution Approach 1:
Multiple dedicated send queues are merged into a single shared send queue that serves multiple reliable communication channels. The shared send queue stores work queue elements for different channels, and the network controller manages message transmission across channels using this unified queue structure, thereby reducing the total number of queues while maintaining reliable connectivity for each channel.
Solution Approach 2:
The shared send queue is designed to be universal, serving multiple reliable communication channels simultaneously. It can store and manage work queue elements for different destination devices and channels, making the queue structure multi-functional rather than dedicated to a single channel, thus reducing overall system complexity.
2Reliability
If multiple dedicated send queues are allocated for each reliable communication channel, then message transmission order is maintained, but CPU overhead increases
Solution Approach 1:
The CPU overhead is reduced by merging multiple dedicated send queues into one shared send queue. The network controller handles message transmission and order management for multiple channels using this single queue, thereby decreasing the processing burden on the CPU compared to managing multiple separate queues.
Solution Approach 2:
The network controller acts as an intermediary between the shared send queue and multiple reliable communication channels. It manages the complexity of maintaining in-order delivery across channels while using the simplified shared queue structure, thereby reducing CPU overhead without sacrificing reliability.
3Reliability
If multiple dedicated send queues are allocated for each reliable communication channel, then communication reliability is maintained, but memory bandwidth utilization increases
Solution Approach 1:
Multiple dedicated send queues are combined into a single shared send queue, reducing the total memory structures that need to be managed. This consolidation decreases memory bandwidth utilization while the network controller ensures error-free transfer through its management of the shared queue and coordination with reliable communication channels.
4Reliability
If multiple dedicated send queues are allocated for each reliable communication channel, then channel-specific message ordering is ensured, but scalability is limited
Solution Approach 1:
The shared send queue is designed with universality to handle multiple reliable communication channels. It can accommodate work queue elements for different destinations and channels while maintaining the ability to ensure in-order delivery for each channel, thereby improving scalability compared to dedicated queue per channel approaches.
Solution Approach 2:
The shared send queue employs dynamic management mechanisms where the network controller can flexibly allocate and manage queue resources based on current communication needs. This dynamic approach allows the system to scale efficiently by adapting to varying numbers and types of communication channels without requiring static dedicated queues for each.
Data Source
AI summary
Generally, this disclosure relates to a shared send queue in a networked system. A method, apparatus and system are configured to support a plurality of reliable communication channels using a shared send queue. The reliable communication channels are configured to carry messages from a host to a plurality of destinations and to ensure completed order of messages is related to a transmission order.


