Network Adapter Congestion Control with Hardware Event Pre-Processing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing congestion control algorithms in packet communication networks suffer from long latency and high CPU resource consumption due to software implementations, and lack flexibility and efficiency in adapting to changing network conditions.
Innovation Solution
A network adapter with hardware-implemented congestion-control circuitry and a dedicated congestion-control processor that throttles transmission rates based on pre-processed congestion events, using a direct hardware interface for event transfer and supporting user-defined software code for algorithm flexibility.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If congestion control is implemented in software, then flexibility and adaptability are improved, but latency increases and CPU resource consumption increases
Solution Approach 1:
The patent divides the congestion control system into two segments: hardware circuitry (congestion-control circuitry) that handles event collection, pre-processing, and generation, and software (congestion-control processor) that handles algorithm execution. This segmentation allows time-critical functions to be performed in hardware with low latency while maintaining flexibility in the software layer.
Solution Approach 2:
The patent introduces an intermediary hardware layer (congestion-control circuitry) between the network pipelines and the software congestion control algorithm. This intermediary pre-processes congestion events and provides ready-to-use data to the software processor, reducing the software's workload and latency while preserving algorithm flexibility.
2Adaptability or versatility
If congestion control is implemented in software, then adaptability is improved, but CPU resource consumption increases
Solution Approach 1:
The patent segments the congestion control workload between hardware circuitry that performs event collection, filtering, and pre-processing, and software that executes the congestion control algorithm. This division reduces CPU resource consumption by handling routine processing in hardware while preserving adaptability in the software layer.
Solution Approach 2:
The hardware congestion-control circuitry performs self-service by automatically collecting congestion events from pipelines, pre-processing them, and generating ready-to-use events for the software processor. This automation reduces the CPU resources needed for data collection and preparation while maintaining system flexibility.
3Loss of time
If hardware-implemented congestion control is used, then latency is reduced and efficiency is improved, but flexibility and adaptability deteriorate
Solution Approach 1:
The patent segments the system so that hardware handles time-critical functions (event collection, pre-processing) while software handles algorithmic decisions. This allows low-latency hardware processing while maintaining flexible software-based congestion control algorithms that can adapt to changing network conditions.
4Measurement precision
If comprehensive congestion event processing is performed, then control accuracy is improved, but device complexity increases
Solution Approach 1:
The patent segments the complex event processing into hardware pre-processing (filtering, coalescing, validation) and software algorithm execution. This segmentation achieves comprehensive and accurate congestion control while managing system complexity by distributing processing tasks across hardware and software layers.
Data Source
Figure 1
Figure 2
Figure 3A~3B
AI summary
A network adapter includes a receive (RX) pipeline, a transmit (TX) pipeline, hardware-implemented congestion-control circuitry, and a congestion-control processor. The RX pipeline is configured to receive packets from a network and process the received packets. The TX pipeline is configured to transmit packets to the network. The hardware-implemented congestion-control circuitry is configured to receive, from the TX pipeline and from the RX pipeline, Congestion-Control (CC) events derived from at least some of the packets transmitted to the network and from at least some of the packets received from the network, and to pre-process the CC events. The congestion-control processor is configured to receive the pre-processed CC events from the congestion-control circuitry, and to throttle a transmission rate of the packets transmitted to the network by the TX pipeline responsively to the pre-processed CC events.