Claims
- 1. An arbiter for use in a hierarchical arbitration system, the arbiter comprising:a) at least two inputs for receiving local request signals; b) a further input for receiving a group grant signal; c) at least two outputs for providing local grant signals; d) a further output for providing a group request signal; e) a local arbiter having at least two inputs for accepting local request signals from the at least two inputs for receiving request signals and at least two outputs for providing internal local grant signals; f) means for grouping local requests to generate the group request signal; and g) a plurality of means, each for combining the group grant signal with an associated one of the internal local grant signals to generate the local grant signals.
- 2. The arbiter of claim 1 wherein the means for grouping local requests logically ORs the local requests to generate the group request signal.
- 3. The arbiter of claim 1 wherein each of the plurality of means for combining the group grant signal with an associated one of the internal local grant signals logically ANDs the group grant signal with the associated one of the internal local grant signals to generate one of the local grant signals.
- 4. The arbiter of claim 1 wherein the local arbiter operates such that if a local request, favored during an arbitration cycle, is granted by a local grant signal in the arbitration cycle, a next local request will be favored in a next arbitration cycle, and if a local request, favored during an arbitration cycle, is not granted in by a local grant signal in an arbitration cycle, it will remain favored in the next arbitration cycle.
- 5. The arbiter of claim 1 wherein the local arbiter operates such that if a local request, favored during an arbitration cycle, is granted by a local grant signal while at least one other local requests is HIGH in the arbitration cycle, a next local request will be favored in a next arbitration cycle, if a local request, favored during an arbitration cycle, is granted by a local grant signal while all other local requests are LOW in the arbitration cycle, it will remain favored in the next arbitration cycle, and if a local request, favored during an arbitration cycle, is not granted in by a local grant signal in an arbitration cycle, it will remain favored in the next arbitration cycle.
- 6. A hierarchical arbitration system comprising:a) at least two leaf layer arbiters, each of the at least two leaf layer arbiters including i) at least two inputs for accepting local request signals, ii) at least two outputs for providing local grant signals, iii) a further output for providing a group request signal, and iv) a further input for receiving a group grant signal; and b) a root arbiter including i) inputs for accepting the group request signal from each of the at least two leaf layer arbiters, and ii) outputs for providing the group grant signals to each of the at least two leaf layer arbiters.
- 7. The hierarchical arbitration system of claim 6 wherein each of the leaf layer arbiters further includev) a local arbiter having at least two inputs for accepting the local request signals and at least two outputs for providing internal local grant signals; vi) means for grouping local requests to generate the group request signal; vii) a plurality of means, each for combining the received group grant signal with an associated one of the internal local grant signals to generate the local grant signals.
- 8. The hierarchical arbitration system of claim 7 wherein the means for grouping local requests logically ORs the local requests to generate the group request signal.
- 9. The hierarchical arbitration system of claim 7 wherein each of the plurality of means for combining the received group grant signal with an associated one of the internal local grant signals logically ANDs the group grant signal with the associated one of the internal local grant signals to generate one of the local grant signals.
- 10. The hierarchical arbitration system of claim 7 wherein, each of the local arbiters operates such that if a local request, favored during an arbitration cycle, is granted by a local grant signal in the arbitration cycle, a next local request will be favored in a next arbitration cycle, and if a local request, favored during an arbitration cycle, is not granted in by a local grant signal in an arbitration cycle, it will remain favored in the next arbitration cycle.
- 11. The hierarchical arbitration system of claim 7 wherein, each of the local arbiters operates such that if a local request, favored during an arbitration cycle, is granted by a local grant signal while at least one other local requests is HIGH in the arbitration cycle, a next local request will be favored in a next arbitration cycle, if a local request, favored during an arbitration cycle, is granted by a local grant signal while all other local requests are LOW in the arbitration cycle, it will remain favored in the next arbitration cycle, and if a local request, favored during an arbitration cycle, is not granted in by a local grant signal in an arbitration cycle, it will remain favored in the next arbitration cycle.
- 12. In a system defining a number N, where N is an integer greater than 1, of hierarchical arbitration layers, where a first layer is the lowest layer of the hierarchy, a method for arbitrating requests, the method comprising steps of:a) initializing a layer index to the first layer; b) at the first layer, accepting request signals; c) incrementing the layer index; d) determining whether or not the layer index equals the number N; e(1) if the layer index does not equal the number N, i) grouping the accepted request signals and defining a group request signal for each group; and e(2) if the layer index is equal to the number N, i) determining grant signals, ii) decrementing the layer index, iii) determining internal grant signals, iv) determining grant signals by combining an associated one of the grant signals from the next higher layer with each of the internal grant signals, and v) determining whether the layer index is 1, vi(a) if the layer index is 1, terminating the process, and vi(b) if the layer index is not 1, repeating steps e(2)(ii) through e(2)(vi).
- 13. The method of claim 12 wherein, in the step of grouping the accepted request signals and defining a group request signal for each group, each of the group request signals are defined by logically ORing grouped request signals.
- 14. The method of claim 12 wherein, in the step of determining grant signals, the grant signals are determined by logically ANDing an associated one of the grant signals from the next higher layer with each of the internal grant signals.
- 15. The method of claim 12 wherein, in the step of determining initial grant signals, if a local request, favored during an arbitration cycle, is granted by a local grant signal in the arbitration cycle, a next local request will be favored in a next arbitration cycle, and if a local request, favored during an arbitration cycle, is not granted in by a local grant signal in an arbitration cycle, it will remain favored in the next arbitration cycle.
- 16. The method of claim 12 wherein, in the step of determining initial grant signals, if a local request, favored during an arbitration cycle, is granted by a local grant signal while at least one other local requests is HIGH in the arbitration cycle, a next local request will be favored in a next arbitration cycle, if a local request, favored during an arbitration cycle, is granted by a local grant signal while all other local requests are LOW in the arbitration cycle, it will remain favored in the next arbitration cycle, and if a local request, favored during an arbitration cycle, is not granted in by a local grant signal in an arbitration cycle, it will remain favored in the next arbitration cycle.
- 17. In a system defining a number N, where N is an integer greater than 1, of hierarchical arbitration layers, where a first layer is the lowest layer of the hierarchy, a method for arbitrating requests, the method comprising steps of:a) initializing a layer index to the first layer; b) at the first layer, accepting request signals; c) incrementing the layer index; d) determining whether or not the layer index equals the number N; e(1) if the layer index does not equal the number N, i) grouping the accepted request signals and defining a group request signal for each group; and e(2) if the layer index is equal to the number N, i) determining grant signals, ii) decrementing the layer index, iii) determining internal grant signals, iv) determining whether the layer index is 1, and v(a) if the layer index is 1, updating the internal grant signals by combining each of them with associated grant signals from the N−1 higher layer(s) of the hierarchy, and v(b) if the layer index is not 1, repeating steps e(2) (ii) through e(2) (v).
- 18. The method of claim 17 wherein, in the step of grouping the accepted request signals and defining a group request signal for each group, each of the group request signals are defined by logically ORing grouped request signals.
- 19. The method of claim 17 wherein, in the step of determining grant signals, the grant signals are determined by logically ANDing associated ones of the grant signals from the N−1 higher layer(s) of the hierarchy with each of the internal grant signals.
- 20. The method of claim 17 wherein, in the step of determining initial grant signals, if a local request, favored during an arbitration cycle, is granted by a local grant signal in the arbitration cycle, a next local request will be favored in a next arbitration cycle, and if a local request, favored during an arbitration cycle, is not granted in by a local grant signal in an arbitration cycle, it will remain favored in the next arbitration cycle.
- 21. The method of claim 17 wherein, in the step of determining initial grant signals, if a local request, favored during an arbitration cycle, is granted by a local grant signal while at least one other local requests is HIGH in the arbitration cycle, a next local request will be favored in a next arbitration cycle, if a local request, favored during an arbitration cycle, is granted by a local grant signal while all other local requests are LOW in the arbitration cycle, it will remain favored in the next arbitration cycle, and if a local request, favored during an arbitration cycle, is not granted in by a local grant signal in an arbitration cycle, it will remain favored in the next arbitration cycle.
- 22. An arbitration system for handling up to four requests, the arbitration system comprising:a) four inputs for accepting request signals; b) a fifth input for accepting a group grant signal; c) four outputs for providing grant signals; d) a fifth output for providing a group request signal; e) a first arbiter having i) two inputs for accepting request signals from a first two of the four inputs for accepting request signals, ii) two outputs for providing grant signals to a first two of the four outputs for providing grant signals, iii) an third input coupled with the fifth input for accepting the group grant signal, and iv) a fourth input for accepting a second group grant signal; f) a second arbiter having i) two inputs for accepting request signals from a second two of the four inputs for accepting request signals, ii) two outputs for providing grant signals to a second two of the four outputs for providing grant signals, iii) an third input coupled with the fifth input for accepting the group grant signal, and iv) a fourth input for accepting a third group grant signal; g) a third arbiter having i) two inputs, each for accepting a grouped request signal, ii) a third input coupled with the fifth input for accepting the group grant signal, iii) a first output coupled with the fourth input of the first arbiter, and iv) a second output coupled with the fourth input of the second arbiter; h) a first logical OR element having i) four inputs, each coupled with a respective one of the four inputs for accepting request signals, and ii) an output coupled with the fifth output for providing a group request signal; i) a second logical OR element having i) two inputs, each coupled with a respective one of the first two of the four inputs for accepting request signals, and ii) an output coupled with a first one of the two inputs of the third arbiter; and j) a third logical OR element having i) two inputs, each coupled with a respective one of the second two of the four inputs for accepting request signals, and ii) an output coupled with a second one of the two inputs of the third arbiter.
- 23. An M-by-N switch, where N is an integer greater than one and M is another integer greater than one, the M-by-N switch comprising:a) M input port controllers for receiving incoming cells; b) N output port controllers for receiving outgoing cells; c) N hierarchical arbitration systems, each the N hierarchical arbitration systems being associated with one of the N output ports and having i) at least two leaf layer arbiters, each of the at least two leaf layer arbiters including A) at least two inputs for accepting local request signals, B) at least two outputs for providing local grant signals, C) a further output for providing a group request signal, and D) a further input for receiving a group grant signal; and ii) a root arbiter including A) inputs for accepting the group request signal from each of the at least two leaf layer arbiters, and B) outputs for providing the group grant signals to each of the at least two leaf layer arbiters; and d) switching fabric including M rows and N columns of crosspoints, wherein each of the M rows is associated with one of the M input port controllers, wherein each of the N columns is associated with one of the N output port controllers and one of the N hierarchical arbitration systems.
- 24. The M-by-N switch of claim 23 wherein each of the M crosspoints of a row is coupled with an associated input of an associated leaf arbiter of the hierarchical arbiter associated with the row.
- 25. The M-by-N switch of claim 24 wherein each cell has an associated N bit multicast pattern, andwherein, if a bit of a previously stored multicast pattern associated with a head-of-line cell is high, the crosspoint receiving the associated cell submits a request to an arbiter associate with its column.
- 26. The M-by-N switch of claim 25 wherein, if the arbiter grants the request, the associated input port controller broadcasts its head-of-line cell to each of the crosspoints of an associated row.
- 27. The M-by-N switch of claim 26 further comprising M handshake circuits arranged between the input port controllers and their associated rows of crosspoints, wherein each of the M handshake circuits informs its associated input port controller whether to transmit the head-of-line cell or whether to load a next multicast pattern.
- 28. An xM-by-N switch, where N is an integer greater than one, x is another integer greater than one, and M is yet another integer greater than one, the xM-by-N switch comprising:a) xM input port controllers for receiving incoming cells; b) N output port controllers for receiving outgoing cells; c) xN hierarchical arbitration systems, each x the xN hierarchical arbitration systems being associated with one of the N output ports, and each of the xN hierarchical arbitration systems having i) at least two leaf layer arbiters, each of the at least two leaf layer arbiters including A) at least two inputs for accepting local request signals, B) at least two outputs for providing local grant signals, C) a further output for providing a group request signal, and D) a further input for receiving a group grant signal; and ii) a root arbiter including A) inputs for accepting the group request signal from each of the at least two leaf layer arbiters, and B) outputs for providing the group grant signals to each of the at least two leaf layer arbiters; d) N row arbiters, each of the N row arbiters receiving request signals from x associated hierarchical arbitration systems and providing grant signals to the x associated hierarchical arbitration systems; and e) switching fabric including xM rows and N columns of crosspoints, wherein each of the xM rows is associated with one of the xM input port controllers, wherein each of the N columns is associated with one of the N output port controllers and one of the N row arbiters.
- 29. The xM-by-N switch of claim 28 wherein each of the row arbiters includesi) at least two leaf layer arbiters, each of the at least two leaf layer arbiters including A) at least two inputs for accepting request signals from the x hierarchical arbitration systems of an associated row, B) at least two outputs for providing local grant signals, C) a further output for providing a group request signal, and D) a further input for receiving a group grant signal; and ii) a root arbiter including A) inputs for accepting the group request signal from each of the at least two leaf layer arbiters, and B) outputs for providing the group grant signals to each of the at least two leaf layer arbiters.
- 30. An N-request arbitration system for handling cells which may have one of P priority levels, the arbitration system comprising:a) P hierarchical arbitration systems, each of the P hierarchical arbitration systems being associated with a priority level and having i) at least two leaf layer arbiters, each of the at least two leaf layer arbiters including A) at least two inputs for accepting local request signals, B) at least two outputs for providing local grant signals, C) a further output for providing a group request signal, and D) a further input for receiving a group grant signal; and ii) a root arbiter including A) inputs for accepting the group request signals from each of the at least two leaf layer arbiters, B) outputs for providing the group grant signals to each of the at least two leaf layer arbiters, and C) means for combining the group request signals to generate a priority group request; b) a priority selection device having inputs for receiving P priority group request from the P hierarchical arbitration systems and having P outputs for providing a priority grant signal to each of the P hierarchical arbitration systems; and c) N, P-input OR gates, each of the N, P-input OR gates having an associated one of its P inputs coupled with an associated one of N grant signals from an associated one of the P hierarchical arbitration systems.
- 31. The N-request arbitration system of claim 30 wherein the priority selection device sets a grant signal associated with the highest priority HIGH priority group request to HIGH and sets all other grant signals LOW.
§1. CLAIM TO PRIORITY
Benefit is claimed, under 35 U.S.C. §119(e)(1), to the filing date of provisional patent application serial No. 60/070,404, entitled “A FAST HIERARHICAL ARBITRATION SCHEME FOR MULTICAST PACKET SWITCHES”, filed on Jan. 5, 1998 and listing Hung-Hsiang J. Chao as the inventor, for any inventions enclosed in the manner provided by U.S.C. §112, ¶1. This provisional application is expressly incorporated herein by reference.
US Referenced Citations (5)
Foreign Referenced Citations (1)
Number |
Date |
Country |
2261131 |
May 1993 |
GB |
Provisional Applications (1)
|
Number |
Date |
Country |
|
60/070404 |
Jan 1998 |
US |