Claims
- 1. A system for arbitrating among N competing entities, each entity operating to generate a service request, said system comprising:
a tree structure having (N−1) arbiter nodes organized into K levels, where N=2K and said levels are designated Level-1 through Level-K; each Level-1 arbiter node operating to select between two competing service requests, and at least one arbiter node at a higher level, designated as a Level-i node, is operable to select between two competing outputs generated by two lower level arbiter nodes (designated as Level-(i−1) nodes) coupled thereto, said competing service requests and said competing outputs being collectively referred to as competing links; each arbiter node having a direction indicator associated therewith, said direction indicator for indicating a particular link that said each arbiter node will pick out of a pair of competing links; and a logic structure for determining a probability value associated with said direction indicator based on a set of predetermined factors relating to said pair of competing links.
- 2. The system for arbitrating among N competing entities as set forth in claim 1, wherein said direction indicators are reset for each arbitration cycle with updated probability values.
- 3. The system for arbitrating among N competing entities as set forth in claim 1, wherein said tree structure and said logic structure are implemented in hardware.
- 4. The system for arbitrating among N competing entities as set forth in claim 3, wherein said hardware comprises a field-programmable gate array (FPGA) device.
- 5. The system for arbitrating among N competing entities as set forth in claim 3, wherein said hardware comprises an application-specific integrated circuit (ASIC) device.
- 6. The system for arbitrating among N competing entities as set forth in claim 1, wherein said probability value associated with said direction indicator is determined based on a composite weighted function having at least a queue size factor relating to each of said pair of competing links.
- 7. The system for arbitrating among N competing entities as set forth in claim 6, wherein, for each particular link of said pair of competing links coupled to said Level-i node, said queue size factor is derived based on an averaging function of queue size factors corresponding to a sub-tree that supports said each particular link.
- 8. The system for arbitrating among N competing entities as set forth in claim 7, wherein said averaging function comprises a weighted linear function of said queue size factors.
- 9. The system for arbitrating among N competing entities as set forth in claim 1, wherein said probability value associated with said direction indicator is determined based on a composite weighted function having at least a queue age factor relating to each of said pair of competing links.
- 10. The system for arbitrating among N competing entities as set forth in claim 9, wherein, for each particular link of said pair of competing links coupled to said Level-i node, said queue size factor is derived based on an averaging function of queue age factors corresponding to a sub-tree that supports said each particular link.
- 11. The system for arbitrating among N competing entities as set forth in claim 10, wherein said averaging function comprises a weighted linear function of said queue age factors.
- 12. The system for arbitrating among N competing entities as set forth in claim 1, wherein said probability value associated with said direction indicator is determined based on a composite weighted function having at least a service class factor relating to each of said pair of competing links.
- 13. The system for arbitrating among N competing entities as set forth in claim 12, wherein, for each particular link of said pair of competing links coupled to said Level-i node, said service class factor is derived based on an averaging function of service class factors corresponding to a sub-tree that supports said each particular link.
- 14. The system for arbitrating among N competing entities as set forth in claim 13, wherein said averaging function comprises a weighted linear function of said service class factors.
- 15. A multi-level system for arbitrating among N competing entities, each entity operating to generate a service request, said system comprising:
a primary tree structure having (N−1) arbiter nodes organized into K levels, where N=2K and said levels are designated Level-i through Level-K; each Level-1 arbiter node operating to select between two competing service requests, and at least one arbiter node at a higher level, designated as a Level-i node, is operable to select between two competing outputs generated by two lower level arbiter nodes (designated as Level-(i−1) nodes) coupled thereto, said competing service requests and said competing outputs being collectively referred to as competing links; each arbiter node having a flag associated therewith for indicating a particular link that said arbiter node will pick out of a pair of competing links depending upon said flag's direction; and an embedded logic structure associated with at least one arbiter node for determining said flag's direction after each arbitration cycle.
- 16. The multi-level system for arbitrating among N competing entities as set forth in claim 15, wherein said embedded logic structure comprises a binary tree arbiter (BTA) structure, referred to as a secondary BTA having a plurality of secondary arbiter nodes.
- 17. The multi-level system for arbitrating among N competing entities as set forth in claim 16, wherein said secondary BTA comprises a prioritized BTA.
- 18. The multi-level system for arbitrating among N competing entities as set forth in claim 16, wherein at least one of said secondary arbiter nodes is embedded with another BTA structure, referred to as a tertiary BTA having a plurality of tertiary arbiter nodes.
- 19. The multi-level system for arbitrating among N competing entities as set forth in claim 18, wherein each of said secondary and tertiary BTA structures is comprised of a prioritized BTA, each having a different priority level.
- 20. A system for arbitrating among N competing entities, each entity operating to generate a service request, said system comprising:
a first binary tree arbiter (BTA) structure having (N−1) arbiter nodes organized into K levels, where N=2K and said levels are designated Level-1 through Level-K, said first BTA operating to select one of said service requests as a first output, wherein said service requests are mapped to said N inputs of said first BTA in a first order of sequence; a second BTA structure having (N−1) arbiter nodes organized into K levels, where N=2K and said levels are designated Level-1 through Level-K, said second BTA operating to select one of said service requests as a second output, wherein said service requests are mapped to said N inputs of said second BTA in a second order of sequence; and a top node arbiter coupled to said first and second BTAs for arbitrating between said first and second outputs to select one of said service requests as an arbitration winner.
- 21. The system for arbitrating among N competing entities as set forth in claim 20, wherein said first BTA structure is comprised of a prioritized BTA.
- 22. The system for arbitrating among N competing entities as set forth in claim 20, wherein said second BTA structure is comprised of a prioritized BTA.
- 23. The system for arbitrating among N competing entities as set forth in claim 20, wherein said first and second BTA structures and said top node arbiter are integrated in hardware.
- 24. The system for arbitrating among N competing entities as set forth in claim 23, wherein said hardware comprises a field-programmable gate array (FPGA) device.
- 25. The system for arbitrating among N competing entities as set forth in claim 23, wherein said hardware comprises an application-specific integrated circuit (ASIC).
- 26. A system for arbitrating among N competing entities, each entity operating to generate a service request, said system comprising:
a tree structure having (N−1) arbiter nodes organized into K levels, where N=2K and said levels are designated Level-1 through Level-K, wherein said Level-K node is designated as a root node that is supported by a left sub-tree and a right sub-tree, said left sub-tree corresponding to a first portion of N/2 inputs that are assignable to N/2 service requests and said right sub-tree corresponding to a second portion of N/2 inputs that are assignable to N/2 service requests; each Level-1 arbiter node operating to select between two competing service requests, and at least one arbiter node at a higher level, designated as a Level-i node, is operable to select between two competing outputs generated by two lower level arbiter nodes (designated as Level-(i−1) nodes) coupled thereto, said competing service requests and said competing outputs being collectively referred to as competing links; each arbiter node having a flag associated therewith for indicating a particular link that said arbiter node will pick out of a pair of competing links depending upon said flag's direction; and a logic structure for determining a first weight factor associated with said left sub-tree and a second weight factor associated with said right sub-tree, said first and second weight factors operating to control said root node's flag direction after each arbitration cycle.
- 27. The system for arbitrating among N competing entities as set forth in claim 26, wherein said first weight factor is based on the number of active requests mapped to said first portion of inputs.
- 28. The system for arbitrating among N competing entities as set forth in claim 26, wherein said second weight factor is based on the number of active requests mapped to said second portion of inputs.
- 29. A system for arbitrating among N competing entities, each entity operating to generate a service request, said system comprising:
a plurality of binary tree arbiter (BTA) structures, each having (N−1) arbiter nodes organized into K levels, where N=2K and said levels are designated Level-i through Level-K, wherein said Level-1 nodes are associated with N inputs that are assignable to N service requests; a shuffler mechanism for shuffling said N service requests into a plurality of combinations, each combination being mapped to N inputs of a corresponding BTA structure, wherein each BTA structure is operable to select one of said service requests as an output based on said combination; and a logic structure operating responsive to said BTA outputs for selecting a particular output as an arbitration winner.
- 30. The system for arbitrating among N competing entities as set forth in claim 29, wherein said logic architecture comprises a round robin arbiter.
- 31. The system for arbitrating among N competing entities as set forth in claim 29, wherein said BTA structures, said shuffler mechanism and said logic structure are integrated in hardware.
- 32. The system for arbitrating among N competing entities as set forth in claim 31, wherein said hardware comprises a field-programmable gate array (FPGA) device.
- 33. The system for arbitrating among N competing entities as set forth in claim 31, wherein said hardware comprises an application-specific integrated circuit (ASIC).
- 34. A system for arbitrating among N competing entities, each entity operating to generate a service request, said system comprising:
a binary tree arbiter (BTA) having (N−1) arbiter nodes organized into K levels, where N=2K and said levels are designated Level-1 through Level-K, wherein said Level-i nodes are associated with N inputs that are assignable to N service requests; and a structure for staging said N service requests into a plurality of predetermined stages, each stage for effectuating a particular mapping relationship between said N service requests and said N inputs, wherein said structure is operable to select one of said predetermined stages for any particular arbitration cycle of said BTA.
- 35. The system for arbitrating among N competing entities as set forth in claim 34, wherein said structure is operable to select one of said predetermined stages in a cyclical manner.
- 36. The system for arbitrating among N competing entities as set forth in claim 34, wherein each of said predetermined stages maps said N service requests to said N inputs in a unique manner.
- 37. The system for arbitrating among N competing entities as set forth in claim 34, wherein each of said predetermined stages maps said N service requests to said N inputs in a manner such that each input is assigned a different service request for each arbitration cycle.
- 38. The system for arbitrating among N competing entities as set forth in claim 34, wherein said predetermined stages are operable to map said N service requests to said N inputs in a full shuffle mapping.
- 39. The system for arbitrating among N competing entities as set forth in claim 34, wherein said BTA is comprised of a prioritized BTA.
- 40. The system for arbitrating among N competing entities as set forth in claim 34, wherein at least one of said arbiter nodes is embedded with another BTA, referred to as a secondary BTA.
- 41. The system for arbitrating among N competing entities as set forth in claim 34, wherein each arbiter node is provided with a flag for facilitating arbitration between two links coupled thereto, said flag being resettable with a probability value for each arbitration cycle based on a plurality of Quality of Service (QoS) parameters associated with said two links.
- 42. A system for arbitrating among N competing entities, each entity operating to generate a service request, said system comprising:
a binary tree arbiter (BTA) structure having (N−1) arbiter nodes organized into K levels, where N=2K and said levels are designated Level-1 through Level-K, wherein said Level-K node is designated as a root node that is supported by a left sub-tree and a right sub-tree, said left sub-tree corresponding to a left half portion of N/2 inputs and said right sub-tree corresponding to a right half portion of N/2 inputs, said left and right portions forming a virtual input branch for said BTA structure; at least one shuffle interface including:
means for determining which pair of adjacent service request ports in a left half portion of a real request port branch is eligible for mapping a real request thereat to a virtual input in said right half portion of said virtual input branch; and means operable to effectuate a mapping of a real request from said pair of adjacent service request ports to said virtual input, if necessary; and a shuffle controller for controlling said at least one shuffle interface responsive at least in part to a flag status signal received from Level-1 arbiter nodes.
- 43. The system for arbitrating among N competing entities as set forth in claim 42, wherein said at least one shuffle interface comprises N/4 shuffle interfaces, each of which corresponds to a particular adjacent port pair in said left half portion of said real request port branch.
- 44. The system for arbitrating among N competing entities as set forth in claim 43, further comprising a shuffle interface pointer for selecting a particular shuffle interface for any arbitration cycle.
- 45. The system for arbitrating among N competing entities as set forth in claim 44, wherein said shuffle interface pointer comprises a round robin arbiter (RRA) mechanism.
- 46. A system for arbitrating among N competing entities, each entity operating to generate a service request, said system comprising:
a binary tree arbiter (BTA) structure having (N−1) arbiter nodes organized into K levels, where N=2K and said levels are designated Level-1 through Level-K, wherein said Level-K node is designated as a root node that is supported by a left sub-tree and a right sub-tree, said left sub-tree corresponding to a left half portion of N/2 inputs and said right sub-tree corresponding to a right half portion of N/2 inputs, said left and right portions forming a virtual input branch for said BTA structure; at least one shuffle interface including:
means for determining which pair of adjacent service request ports in a right half portion of a real request port branch is eligible for mapping a real request thereat to a virtual input in said left half portion of said virtual input branch; and means operable to effectuate a mapping of a real request from said pair of adjacent service request ports to said virtual input, if necessary; and a shuffle controller for controlling said at least one shuffle interface responsive at least in part to a flag status signal received from Level-1 arbiter nodes.
- 47. The system for arbitrating among N competing entities as set forth in claim 46, wherein said at least one shuffle interface comprises N/4 shuffle interfaces, each of which corresponds to a particular adjacent port pair in said right half portion of said real request port branch.
- 48. The system for arbitrating among N competing entities as set forth in claim 47, further comprising a shuffle interface pointer for selecting a particular shuffle interface for any arbitration cycle.
- 49. The system for arbitrating among N competing entities as set forth in claim 48, wherein said shuffle interface pointer comprises a round robin arbiter (RRA) mechanism.
- 50. An arbitration methodology for arbitrating among N competing entities, each entity operating to generate a service request, said methodology comprising the steps:
providing a tree structure having (N−1) arbiter nodes organized into K levels, where N=2K and said levels are designated Level-1 through Level-K, each Level-1 arbiter node operating to select between two competing service requests, and at least one arbiter node at a higher level, designated as a Level-i node, is operable to select between two competing outputs generated by two lower level arbiter nodes (designated as Level-(i−1) nodes) coupled thereto, said competing service requests and said competing outputs being collectively referred to as competing links, wherein each arbiter node is provided with a direction indicator, said direction indicator for indicating a particular link that said each arbiter node will pick out of a pair of competing links; determining a probability value associated with said direction indicator based on a set of predetermined factors relating to said pair of competing links; selecting a competing entity for granting its service request by said Level-K node based on probability values associated with Level-K node's competing links; and resetting, upon each arbitration cycle, said direction indicators associated with said arbiter nodes based on updated probability values.
- 51. The arbitration methodology for arbitrating among N competing entities as set forth in claim 50, wherein said probability value associated with said direction indicator is determined based on a composite weighted function having at least a queue size factor relating to each of said pair of competing links.
- 52. The arbitration methodology for arbitrating among N competing entities as set forth in claim 51, wherein, for each particular link of said pair of competing links coupled to said Level-i node, said queue size factor is derived based on an averaging function of queue size factors corresponding to a sub-tree that supports said each particular link.
- 53. The arbitration methodology for arbitrating among N competing entities as set forth in claim 52, wherein said averaging function comprises a weighted linear function of said queue size factors.
- 54. The arbitration methodology for arbitrating among N competing entities as set forth in claim 50, wherein said probability value associated with said direction indicator is determined based on a composite weighted function having at least a queue age factor relating to each of said pair of competing links.
- 55. The arbitration methodology for arbitrating among N competing entities as set forth in claim 54, wherein, for each particular link of said pair of competing links coupled to said Level-i node, said queue size factor is derived based on an averaging function of queue age factors corresponding to a sub-tree that supports said each particular link.
- 56. The arbitration methodology for arbitrating among N competing entities as set forth in claim 54, wherein said averaging function comprises a weighted linear function of said queue age factors.
- 57. The arbitration methodology for arbitrating among N competing entities as set forth in claim 50, wherein said probability value associated with said direction indicator is determined based on a composite weighted function having at least a service class factor relating to each of said pair of competing links.
- 58. The arbitration methodology for arbitrating among N competing entities as set forth in claim 57, wherein, for each particular link of said pair of competing links coupled to said Level-i node, said service class factor is derived based on an averaging function of service class factors corresponding to a sub-tree that supports said each particular link.
- 59. The arbitration methodology for arbitrating among N competing entities as set forth in claim 58, wherein said averaging function comprises a weighted linear function of said service class factors.
CROSS-REFERENCE TO RELATED APPLICATION(S)
[0001] This application discloses subject matter related to the subject matter disclosed in the following commonly owned co-pending patent application(s): (i) “Multiserver Scheduling System And Method For A Fast Switching Element,” application Ser. No. 10/059,641, filed Jan. 28, 2002, in the names of: Prasad Golla, Gerard Damm, John Blanton, Mei Yang, Dominique Verchere, Hakki Candan Cankaya, and Yijun Xiong (Attorney Docket No. 1285-052US1) and (ii) “Look-Up Table Arbitration System And Method For A Fast Switching Element,” application Ser. No. 10/075,176, filed Feb. 14, 2002, in the names of: Prasad Golla, Gerard Damm, John Blanton, and Dominique Verchere (Attorney Docket No. 1285-0080US), which is (are) hereby incorporated by reference for all purposes.