Patent ID: 7782780

Claim:
A method for arbitration in a packet switch comprising a first plurality of input ports and a first plurality of output ports, the method comprising: generating by an arbiter in a first clock cycle an availability signal indicating whether each pseudo-port of a plurality of pseudo-ports is available in a second clock cycle following the first clock cycle, each pseudo-port of the plurality of pseudo-ports identifying a respective second plurality of output ports in the first plurality of output ports and being available if each output port of the second plurality of output ports is available to receive data in the second clock cycle, wherein the availability signal comprises both a plurality of availability indicators and a plurality of hold indicators corresponding to the plurality of pseudo-ports, each availability indicator of the plurality of availability indicators indicating whether the corresponding pseudo-port is available, each hold indicator of the plurality of hold indicators indicating whether the corresponding pseudo-port has a hold; receiving a first grant request by a first grant request filter, the first grant request identifying a first input port of the first plurality of input ports and a first pseudo-port of the plurality of pseudo-ports; determining by the first grant request filter the first grant request is not serviceable in the second clock cycle based on the availability signal; issuing a hold request by the first grant request filter; issuing a hold grant by the arbiter in response to the hold request, the hold grant indicating the first pseudo-port is being held for the first input port, wherein issuing the hold grant further comprises updating the availability signal to indicate the first pseudo-port has a hold; receiving by a second grant request filter a second grant request identifying a second input port of the plurality of input ports and the first pseudo-port; determining by the second grant request filter the second grant request is not serviceable based on the updated availability signal; determining by the first grant request filter a third grant request is serviceable by determining the first pseudo-port is being held for the first input port and is available based on the updated availability signal corresponding to the first pseudo-port; issuing by the first grant request filter a serviceable grant request based on the third grant request; issuing a grant by the arbiter in response to the serviceable grant request; and routing a first data packet by the packet switch from the first input port to each output port identified by the first pseudo-port in response to the grant.