Hybrid Network Switch Architecture for Latency and Congestion Management
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Network switches face performance issues under heavy loads due to head-of-line blocking, which packet pulling techniques like Virtual Output Queueing (VOQ) can mitigate but at the cost of increased latency. Additionally, increasing clock speeds to reduce latency may not be feasible as demand increases.
Innovation Solution
Implementing a network switch with a hybrid architecture that supports both packet pushing and packet pulling. Packet pushing is used under light loads to maintain low latency, while packet pulling is employed under heavy loads to maintain line rates, dynamically switching between the two based on load conditions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If packet pulling (VOQ) is used to mitigate head-of-line blocking under heavy loads, then network switch performance under heavy loads is improved, but latency increases
Solution Approach 1:
The network switch dynamically selects between packet pulling and packet pushing modes based on real-time load conditions. Under heavy loads, packet pulling (VOQ) is used to maintain line rates and prevent head-of-line blocking. Under light loads, packet pushing is used to minimize latency. This dynamic adaptation resolves the contradiction by applying the appropriate mechanism contextually rather than using a single fixed approach.
Solution Approach 2:
The system changes operational parameters (packet forwarding mode) based on load conditions. When load exceeds thresholds, the system transitions from packet pushing to packet pulling mode, effectively changing the control parameter to optimize performance for current conditions while managing the latency-performance tradeoff.
2Loss of time
If clock speed is increased to reduce latency, then latency decreases, but feasibility is compromised as demand increases
Solution Approach 1:
Instead of statically increasing clock speed, the system dynamically adjusts packet forwarding behavior based on load conditions. Packet pushing is employed during light-load periods to achieve low latency without requiring higher clock speeds, making the solution feasible while still addressing latency concerns when appropriate.
Solution Approach 2:
The system changes the packet forwarding mechanism (from pulling to pushing) based on operational parameters like load level, rather than relying solely on increasing clock speed. This parameter change allows latency optimization through architectural choices rather than purely through frequency increases.
3Loss of time
If packet pushing is used under light loads, then latency is reduced, but head-of-line blocking may occur under heavy loads
Solution Approach 1:
The network switch monitors load conditions and dynamically switches between packet pushing and packet pulling modes. Packet pushing is activated during light loads to minimize latency, while packet pulling is engaged during heavy loads to prevent head-of-line blocking and maintain reliability, thus resolving the contradiction through contextual adaptation.
4Device complexity
If a single packet forwarding mechanism is used, then device complexity is reduced, but adaptability to different load conditions deteriorates
Solution Approach 1:
The network switch implements a universal hybrid architecture that can perform both packet pushing and packet pulling operations. This multi-functionality allows the same device to adapt to different load conditions effectively, maintaining simplicity while achieving versatility through a unified control mechanism that selects the appropriate forwarding mode based on real-time conditions.
Data Source
AI summary
A network switch has a packet pulling architecture, and also supports packet pushing. In an example implementation, a device includes: an output buffer; a data crossbar connected to the output buffer; an input buffer connected to the data crossbar; an input queue; a request crossbar connected to the input queue; and an output queue. The input queue is configured to transfer a packet from the input buffer to the output buffer over the data crossbar in response to the packet being eligible for packet pushing, and to send a push request in parallel with transferring the packet to the output buffer. The output queue is configured to receive the push request from the input queue over the request crossbar, and to control reading of the packet from the output buffer in response to granting the push request


