Patent ID: 7848251

Claim:
A data transfer apparatus comprising: a switching fabric for switching data packets a plurality of output ports, wherein each output port includes an output queue a plurality of input ports coupled to the output ports through the switching fabric, wherein each input port includes a plurality of input queues respectively coupled to each of the output queues a plurality of regulators disposed in the output ports and the input ports, the regulators operable in concert to manage data flow from the input queues to the output queues, wherein the regulators are operable to reduce for each input queue ij associated with the output queue j an amount of data that the input queue ij desires to send to the output queue j at the time t to μ ij (t), wherein if output queue j cannot accommodate all of the data the input ports desire to send to output queue j, then μ ij (t)=(ρ ji (t−1)/Σ ρ ij (t−1))*(Lout j /T), wherein ρ ij is a length of a virtual output queue corresponding to an amount of packets at input queue ij capped at a length C and Lout j is a total number of packets which output queue j can receive in a selected period of time T.