Methods and apparatus for virtual channel flow control associated with a switch fabric
First Claim
1. A system, comprising:
- a processor operatively coupled to a memory and configured to execute a module associated with a first stage of a switch fabric;
a module associated with a second stage of the switch fabric, the module associated with the first stage being directly coupled to the module associated with the second stage via a single physical hop having a plurality of virtual channels;
the module associated with the first stage being configured to assign a virtual channel identifier associated with a virtual channel from the plurality of virtual channels to a data packet, the module associated with the first stage configured to send the data packet through the virtual channel based on the virtual channel identifier, the module associated with the second stage configured to store the data packet in a queue associated with the virtual channel based on the virtual channel identifier, the module associated with the first stage having a plurality of output queues, each output queue from the plurality of output queues being associated with a virtual channel from the plurality of virtual channels, the module associated with the first stage being configured to assign the virtual channel identifier based on a result of a hash function that uses as inputs (1) a value of a header of the data packet and (2) an available capacity of each associated output queue from the plurality of output queues; and
the module associated with the second stage configured to send a flow control signal to the module associated with the first stage when an available capacity of the queue is less than a predetermined threshold, the module associated with the first stage configured to suspend sending data packets via the virtual channel in response to the flow control signal.
1 Assignment
0 Petitions
Accused Products
Abstract
A system includes a module associated with a first stage of a switch fabric directly coupled to a module associated with a second stage of the switch fabric via a single physical hop having multiple virtual channels. The module associated with the first stage is configured to assign a virtual channel identifier associated with a virtual channel with a data packet using a hash function and to send the data packet through the virtual channel based on the virtual channel identifier. The module associated with the second stage is configured to send a flow control signal to the module associated with the first stage when an available capacity of a queue is less than a predetermined threshold. The module associated with the first stage is configured to suspend sending data packets via the virtual channel in response to the flow control signal.
-
Citations
19 Claims
-
1. A system, comprising:
-
a processor operatively coupled to a memory and configured to execute a module associated with a first stage of a switch fabric; a module associated with a second stage of the switch fabric, the module associated with the first stage being directly coupled to the module associated with the second stage via a single physical hop having a plurality of virtual channels; the module associated with the first stage being configured to assign a virtual channel identifier associated with a virtual channel from the plurality of virtual channels to a data packet, the module associated with the first stage configured to send the data packet through the virtual channel based on the virtual channel identifier, the module associated with the second stage configured to store the data packet in a queue associated with the virtual channel based on the virtual channel identifier, the module associated with the first stage having a plurality of output queues, each output queue from the plurality of output queues being associated with a virtual channel from the plurality of virtual channels, the module associated with the first stage being configured to assign the virtual channel identifier based on a result of a hash function that uses as inputs (1) a value of a header of the data packet and (2) an available capacity of each associated output queue from the plurality of output queues; and the module associated with the second stage configured to send a flow control signal to the module associated with the first stage when an available capacity of the queue is less than a predetermined threshold, the module associated with the first stage configured to suspend sending data packets via the virtual channel in response to the flow control signal. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system, comprising:
-
a first switch stage of a switch fabric having a plurality of output queues, the first switch stage configured to associate incoming data with an output queue from the plurality of output queues, each output queue from the plurality of output queues associated with and configured to send data through a virtual channel from a plurality of virtual channels associated with a single physical hop, the plurality of output queues configured to alternate sending data through the plurality of virtual channels based on a schedule, the first switch stage configured to associate the incoming data with the output queue from the plurality of output queues based on a result of a hash function that uses as inputs (1) a value of a header of the incoming data and (2) an available capacity of each output queue from the plurality of output queues; and a second switch stage of the switch fabric operatively coupled to the first switch stage via the plurality of virtual channels, the second switch stage having a plurality of input queues, each input queue from the plurality of input queues being associated with a virtual channel from the plurality of virtual channels, each input queue from the plurality of input queues having a capacity threshold, the second switch stage configured to send a flow control signal to an output queue associated with a virtual channel from the plurality of virtual channels if an available capacity of the input queue associated with that virtual channel is less than its capacity threshold, the first switch stage configured to remove the output queue from the schedule in response to receiving the flow control signal. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14)
-
-
15. A system, comprising:
-
a processor operatively coupled to a memory and configured to execute a module associated with a first stage of a switch fabric; the module associated with a first stage of a switch fabric configured to assign data packets to virtual channels from a first plurality of virtual channels, the first plurality of virtual channels being associated with a first single physical hop, the module associated with the first stage configured to alternate sending data through each virtual channel from the first plurality of virtual channels based on a first schedule, the switch fabric being part of a single logical hop, each output queue from a plurality of output queues at the first stage being associated with a virtual channel from the first plurality of virtual channels, each output queue from the plurality of output queues configured to store and send the assigned data packets through its associated virtual channel, the module associated with the first stage configured to assign the data packets to the virtual channels based on a result of a first hash function that uses as input (1) a value of a header of at least one of the data packets and (2) an available capacity of each associated output queue from the plurality of output queues; a module associated with a second stage of the switch fabric configured to receive data packets from the first plurality of virtual channels, the module associated with the second stage configured to assign the data packets to virtual channels from a second plurality of virtual channels based on a result of a second hash function, the second plurality of virtual channels being associated with a second single physical hop, the module associated with the second stage configured to alternate sending data through each virtual channel from the second plurality of virtual channels based on a second schedule; and a module associated with a third stage of the switch fabric, the module associated with the third stage configured to receive data packets from the second plurality of virtual channels. - View Dependent Claims (16, 17, 18, 19)
-
Specification