Claims
- 1. A method for arbitrating for a switch fabric having a plurality of ports, each port from the plurality of ports being associated with its own plurality of links, the plurality of ports including a first port and a second port, the method comprising:
selecting a link from the plurality of links associated with the first port based on a weight value associated with each remaining link associated with a candidate packet and being from the plurality of links associated with the first port; and determining a first penalty for a weight vector entity associated with the first port based on a weight value associated with each link from a first subset of links from the plurality of links for the first port, each link from the first subset of links not being associated with a candidate packet.
- 2. The method of claim 1, wherein:
the selected link is associated with a weight value greater than a weight value associated with each remaining link associated with a candidate packet and being from the plurality of links for the first port; and each link from the first subset of links is associated with a weight value greater than the weight value of the selected link.
- 3. The method of claim 1, further comprising:
selecting a link from the plurality of links associated with the second port based on a weight value associated with each remaining link associated with a candidate packet and being from the plurality of links associated with the second port; and determining a penalty for a weight vector entity associated with the second port based on a weight value associated with each link from a subset of links from the plurality of links for the second port, each link from the subset of links for the second port not being associated with a candidate packet.
- 4. The method of claim 3, wherein the plurality of links associated with the second port includes the selected link associated with the first port.
- 5. The method of claim 3, further comprising:
incrementing a weight value associated with each link from the plurality of links associated with the first port based on a priority associated with each link from the plurality of links associated with the first port; and incrementing the weight value associated with each link from the plurality of links associated with the second port based on a priority associated with each link from the plurality of links associated with the second port.
- 6. The method of claim 1, further comprising:
decreasing, for each link from the first subset of links associated with the first port, the weight value associated with that link by the determined first penalty, the determined first penalty being a function of a bandwidth associated with the first port; and decreasing the weight value associated with the selected link if an acceptance signal associated with the selected link is received.
- 7. The method of claim 3, wherein:
the first port is one from the group of an output port and an input port; the second port is an input port if the first port is an output port; and the second port is an output port if the first port is an input port.
- 8. The method of claim 1, wherein:
the selecting and the determining are performed for a first time slot; and the selected link not being subsequently accepted for arbitration.
- 9. The method of claim 8, further comprising:
selecting, within the first time slot, a second link from the plurality of links associated with the first port based on a weight value associated with each remaining link associated with a candidate packet and being from the plurality of links associated with the first port; and determining, for the first time slot, a second penalty for a weight vector entity associated with the first port based on a weight value associated with each link from a second subset of links from the plurality of links for the first port, each link from the second subset of links not being associated with a candidate packet.
- 10. The method of claim 9, further comprising:
decreasing, for each link from the first subset of links associated with the first port, the weight value associated with that link by the determined first penalty; and decreasing, for each link from the second subset of links associated with the first port, the weight value associated with that link by the determined second penalty unless the weight value associated with that link has been decreased by the determined first penalty.
- 11. An apparatus, comprising:
a selection unit associated with a plurality of links, the selection unit being configured to transmit an arbitration signal and a penalty signal based on a weight value associated with each link from the plurality of links; and an update unit coupled to the selection unit, the update unit configured to receive the penalty signal from the selection unit and to receive an accept signal, the update unit being configured to transmit an update signal based on the penalty signal and the accept signal.
- 12. The apparatus of claim 11, wherein:
the arbitration signal is associated with a selected link from the plurality of links, the selected link is associated with a candidate packet and is associated with a weight value greater than a weight value associated with each remaining link that is associated with a candidate packet and is from the plurality of links.
- 13. The apparatus of claim 11, wherein:
the penalty signal is associated with a subset of links from the plurality of links, each link from the subset of links is not associated with a candidate packet, each link from the subset of links is associated with a weight value greater than the weight value of a link associated with the arbitration signal.
- 14. The apparatus of claim 11, wherein the selection unit is configured to select a link from the plurality of links having a candidate packet and having a weight value greater than a weight value associated with each remaining link having a candidate packet from the plurality of links.
- 15. The apparatus of claim 11, wherein:
the update unit is configured to penalize a weight vector entity based on a subset of links from the plurality of links; and each link from the subset of links does not have a candidate packet and is associated with a weight value greater than the weight value of the link associated with the arbitration signal.
- 16. The apparatus of claim 15, wherein:
the weight vector entity includes a plurality of weight values each uniquely associated with a link from the plurality of links; and the update unit is configured to penalize the weight vector entity by decreasing, for each link from a subset of links from the plurality of links, the associated weight value as a function of a bandwidth associated with a port associated with the selection unit, each link from the subset of links is not associated with a candidate packet, each link from the subset of links has an associated weight value greater than the associated weight value of the remaining links from the plurality of links.
- 17. The apparatus of claim 16, wherein a weight value associated with the link associated with the arbitration signal is decreased by the update unit if the received accept signal indicates that the selected link has been scheduled.
- 18. The apparatus of claim 11, wherein:
the update signal indicates an increment to the weight value associated with each link from the plurality of links.
- 19. The apparatus of claim 11, wherein:
the accept signal indicates whether the link associated with the arbitration signal has been scheduled.
- 20. The apparatus of claim 11, further comprising:
a second selection unit associated with its own plurality of links, the second selection unit being configured to receive the arbitration signal from the selection unit, the second selection unit being configured to transmit the accept signal and a penalty signal associated with the second selection unit based on a weight value associated with each link from the plurality of links associated with the second selection unit; and a second update unit coupled to the second selection unit, the second update unit configured to receive the penalty signal from the second selection unit and the accept signal from the second selection unit.
- 21. The apparatus of claim 20, wherein:
the second update unit is configured to transmit an update signal based on the penalty signal associated with the second selection unit and the accept signal, the update signal indicates an increment to the weight value associated with each link from the plurality of links associated with the second selection unit, the link associated with the accept signal being from the plurality of links associated with the second selection unit.
- 22. The apparatus of claim 20, wherein:
the selection unit and the update unit are associated with one from the group of an output port and an input port; the second selection unit and the second update unit are associated with an input port if the selection unit and the update unit are associated with an output port; and the second selection unit and the second update unit are associated with an output port if the selection unit and the update unit are associated with an input port.
- 23. An apparatus, comprising:
a selection unit associated with a plurality of links, the selection unit being configured to send, within a first time slot, a first arbitration signal and a first penalty signal based on a weight value associated with each link from the plurality of links; and an update unit coupled to the selection unit, the update unit configured to receive, within the first time slot, the first penalty signal from the selection unit and to receive a first accept signal, the update unit being configured to send, within the first time slot, an update signal based on the first penalty signal and the first accept signal.
- 24. The apparatus of claim 23, wherein:
the first arbitration signal is associated with a selected link from the plurality of links; and the first accept signal indicates that the selected link was not subsequently accepted for arbitration.
- 25. The apparatus of claim 24, wherein:
the selection unit is configured to send, within the first time slot, a second arbitration signal and a second penalty signal based on a weight value associated with each link from the plurality of links; the update unit is configured to receive, within the first time slot, the second penalty signal; and the update unit is configured to penalize a weight vector entity associated with each link from the plurality of links based on one from the group of the first penalty signal and the second penalty signal.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] The present invention is related to following applications: “Method and Apparatus Parallel, Weighted Arbitration Scheduling for a Switch Fabric” [Attorney Docket-ZGRO 001/00US], and “Method and Apparatus for Weighted Arbitration Scheduling Separately at the Input Ports and the Output Ports of a Switch Fabric” [Attorney Docket-ZGRO 002/00US], both of which are incorporated herein by reference.