Virtual Output Queuing Flow Control for Data Switch Fabric Congestion
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Data switches face inefficiencies due to head-of-line blocking, where non-congested data flows are stopped in service-aware flow control, leading to reduced transmission efficiency without resolving congestion in data-switch fabrics.
Innovation Solution
Implementing virtual output queuing (VOQ) with flow control to selectively stop or reduce data flows only contributing to congestion, allowing non-congested flows to continue, thereby preventing head-of-line blocking.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If service aware flow control is used to reduce fabric-loss, then data congestion is reduced, but head-of-line blocking occurs where non-congested data flows are unnecessarily stopped
Solution Approach 1:
The patent segments data flows into different classes based on their contribution to congestion. By using virtual output queues (VOQs) associated with specific egress modules, the system can selectively apply flow control only to flows causing congestion at particular outputs, rather than stopping all flows from an ingress module. This segmentation allows non-congested flows to continue uninterrupted.
Solution Approach 2:
The patent implements local flow control by associating flow control decisions with specific egress modules and their corresponding VOQs. Each egress module can independently manage its own queue status and trigger flow control only when its specific queue is congested, rather than applying uniform flow control to all flows from an ingress module. This localized approach preserves transmission efficiency for non-congested flows.
2Reliability
If coarse-grained link-level flow control is implemented, then fabric congestion is managed, but transmission efficiency is reduced due to unnecessary flow termination
Solution Approach 1:
The patent divides the data transmission system into finer-grained units by creating virtual output queues at the ingress module level, each associated with a specific egress module. This segmentation enables the system to manage congestion at the egress module level rather than at the entire link level, allowing selective flow control that preserves transmission efficiency for non-congested flows.
Solution Approach 2:
The patent applies partial flow control by selectively stopping only the portion of data flows that are actually causing congestion at specific egress modules, rather than applying excessive or uniform flow control to all flows. This partial action approach maintains transmission efficiency for flows that do not contribute to congestion while still effectively managing fabric congestion.
Data Source
AI summary
Methods and apparatus for data switching are disclosed. An example method includes receiving a data traffic flow at a data ingress module and buffering the data traffic flow in a virtual output queue included in the data ingress module, where the virtual output queue being associated with a data egress module. The example method also includes communicating the data traffic flow to the data egress module via a fabric egress queue included in a data-switch fabric. The example method further includes monitoring data occupancy in the fabric egress queue and determining, based on the data occupancy, that a change in congestion state in the fabric egress queue has occurred. The example method still further includes, in response to the change in congestion state, communicating a flow control message to the data ingress module and, in response to the flow control message, modifying communication of the data traffic flow.


