Claims
- 1. A crossbar switch controller comprising:
an input terminal configured to receive a set of service request signals from a set of virtual output queues each comprising a set of packets; a matrix circuit coupled to said input terminal and configured to represent said set of service request signals in the form of a matrix, wherein each service request signal is described by a row position M and a column position N; an output terminal coupled to said matrix circuit and configured to receive a portion of said set of packets during an epoch; an arbiter circuit coupled to said matrix circuit and configured to iteratively scan said matrix during said epoch and issue said set of grant signals to said virtual output queues to determine which service requests are granted; an arbiter controller coupled to said arbiter circuit and configured to initiate said arbiter circuit with an array of non-conflicting matrix elements; whereby, said arbiter circuit scans said matrix during a first epoch, issues said set of grant signals, allows said set of granted service requests to substantially complete, and if necessary, scans said matrix during subsequent epochs.
- 2. The crossbar switch controller of claim 1, wherein:
said arbiter controller is configured to initiate said arbiter circuit with a different array of non-conflicting matrix elements each epoch; and when in steady state operation, said arbiter controller is configured to determine said array of non-conflicting matrix elements for an epoch P based at least in part on a successive selection.
- 3. The crossbar switch controller of claim 1, wherein:
said arbiter controller is configured to initiate said arbiter circuit with a different array of non-conflicting matrix elements each epoch; and when in steady state operation, said arbiter controller is configured to determine said array of non-conflicting matrix elements for an epoch P based at least in part on a random selection.
- 4. The crossbar switch controller of claim 1, wherein:
said arbiter controller is configured to initiate said arbiter circuit with a different array of non-conflicting matrix elements each epoch; and when in steady state operation, said arbiter controller is configured to determine said array of non-conflicting matrix elements for an epoch P based at least in part on an earlier epoch P-x, where x is a natural number.
- 5. The crossbar switch controller of claim 1, wherein:
said arbiter controller is configured to initiate said arbiter circuit with a different array of non-conflicting matrix elements each epoch; and when in steady state operation, said arbiter controller is configured to determine said array of non-conflicting matrix elements for an epoch P based at least in part on information collected during an earlier epoch P-x, where x is a natural number.
- 6. The crossbar switch controller of claim 1, wherein:
said arbiter circuit includes a plurality of arblets arranged in rows and columns matching said matrix; and, each arblet includes a row input and a row output, a column input and a column output, and a data input and grant output.
- 7. The crossbar switch controller of claim 6, wherein:
said plurality of arblets comprises a first arblet, wherein said first arblet can make a grant decision based on a matrix element corresponding to said first arblet.
- 8. The crossbar switch controller of claim 7 wherein:
said plurality of arblets further comprises a second arblet and a third arblet coupled to said first arblet; wherein said first arblet can further make a grant decision based on said second arblet and said third arblet.
- 9. The crossbar switch controller of claim 8, wherein:
said arbiter circuit grant signal is comprised of a collection of arblet grant outputs.
- 10. The crossbar switch controller of claim 1, further comprising:
an arbitration pre-processor coupled to said input terminal and said matrix circuit, and configured to represent said set of service request signals in the form of a mapping matrix, and further configured to transform a first mapping position of said service request signal to a second mapping position based, in part, on a mapping algorithm; and, an arbitration post-processor coupled to said output terminal and said matrix circuit, and further configured to transform said second mapping position of said service request signal back to said first mapping position.
- 11. The crossbar switch controller of claim 10, wherein said mapping algorithm further comprises a set of mapping algorithm inputs.
- 12. The crossbar switch controller of claim 11, wherein said mapping algorithm comprises a rotation algorithm.
- 13. The crossbar switch controller of claim 12, wherein said set of mapping algorithm inputs comprises a row offset.
- 14. The crossbar switch controller of claim 12, said set of mapping algorithm inputs comprises a column offset.
- 15. The crossbar switch controller of claim 12, said set of mapping algorithm inputs comprises a row offset and a column offset.
- 16. The crossbar switch controller of claim 11, wherein said mapping algorithm further comprises a set of mapping stages.
- 17. The crossbar switch controller of claim 16, wherein each mapping stage of said set of mapping stages further includes a set of nodes.
- 18. The crossbar switch controller of claim 17, wherein each node of said set of nodes further includes a set of node inputs and a set of node outputs.
- 19. The crossbar switch controller of claim 18, wherein each node of said set of nodes further comprises a state.
- 20. The crossbar switch controller of claim 19, wherein said set of mapping algorithm inputs comprises said state.
- 21. The crossbar switch controller of claim 20, further including a first mapping stage including a first node, and a second mapping stage including a second node and a third node, wherein:
a first service request signal is coupled to a first node input of said first node; a second service request signal is coupled to a second node input of said first node; a first node output of said first node is coupled to a first node input of said second node; and, a second node output of said first node is coupled to a first node input of said third node.
- 22. The crossbar switch controller of claim 21, wherein:
if said state is true, said first service request signal is transmitted to said first node input of said second node; and, said second service request signal is transmitted to said first node input of said third node.
- 23. The crossbar switch controller of claim 21, wherein:
if said state is false, said first service request signal is transmitted to said first node input of said third node; and, said second service request signal is transmitted to said first node input of said second node.
- 24. The crossbar switch controller of claim 21, wherein said mapping algorithm comprises a hierarchical mapping algorithm.
- 25. The crossbar switch controller of claim 24, wherein said hierarchical mapping algorithm further comprises a binary tree topology.
- 26. The crossbar switch controller of claim 21, wherein said mapping algorithm comprises a switch network mapping algorithm.
- 27. The crossbar switch controller of claim 26, wherein said switch network mapping algorithm further comprises a butterfly topology.
- 28. A method of optimizing a crossbar switch controller, comprising:
configuring an input terminal to receive a set of service request signals from a set of virtual output queues each comprising a set of packets; coupling a matrix circuit to said input terminal; configuring said matrix circuit to represent said set of service request signals in the form of a matrix, wherein each service request signal is described by a row position M and a column position N; coupling an output terminal to said matrix circuit; configuring said output terminal to receive a portion of said set of packets during an epoch; coupling an arbiter circuit to said matrix circuit; configuring said arbiter circuit to iteratively scan said matrix during said epoch and issue said set of grant signals to said virtual output queues to determine which service requests are granted; coupling an arbiter controller to said arbiter circuit; configuring said arbiter controller to initiate said arbiter circuit with an array of non-conflicting matrix elements; scanning said matrix during a first epoch; issuing said set of grant signals; allowing said set of granted service requests to substantially complete; and if necessary, scanning said matrix during subsequent epochs.
- 29. The method of optimizing a crossbar switch controller of claim 28, wherein:
in said configuring said arbiter controller step, said array of non-conflicting matrix elements is a different array of non-conflicting matrix elements each epoch based, at least in part, on a successive selection.
- 30. The method of optimizing a crossbar switch controller of claim 28, wherein:
in said configuring said arbiter controller step, said array of non-conflicting matrix elements is a different array of non-conflicting matrix elements each epoch based, at least in part, on a random selection.
- 31. The method of optimizing a crossbar switch controller of claim 28, wherein:
in said configuring said arbiter controller step, said array of non-conflicting matrix elements is a different array of non-conflicting matrix elements each epoch based, at least in part, on a an earlier epoch selection.
- 32. The method of optimizing a crossbar switch controller of claim 28, wherein:
in said configuring said arbiter controller step, said array of non-conflicting matrix elements is a different array of non-conflicting matrix elements each epoch based, at least in part, on information collected during an earlier epoch selection.
- 33. The method of optimizing a crossbar switch controller of claim 28, wherein:
in said coupling an arbiter circuit step, said arbiter circuit includes a plurality of arblets arranged in rows and columns matching said matrix; and, each arblet includes a row input and a row output, a column input and a column output, and a data input and grant output.
- 34. The method of optimizing a crossbar switch controller of claim 33 wherein:
said plurality of arblets comprises a first arblet, wherein said first arblet can make a grant decision based on a matrix element corresponding to said first arblet.
- 35. The method of optimizing a crossbar switch controller of claim 34 wherein:
said plurality of arblets further comprises a second arblet and a third arblet coupled to said first arblet; wherein said first arblet can further make a grant decision based on said second arblet and said third arblet.
- 36. The method of optimizing a crossbar switch controller of claim 35, wherein:
said arbiter circuit grant signal is comprised of a collection of arblet grant outputs.
- 37. The method of optimizing a crossbar switch controller of claim 28, further comprising:
coupling an arbitration pre-processor to said input terminal and said matrix circuit; configuring said arbitration pre-processor to represent said set of service request signals in the form of a mapping matrix; configuring said arbitration pre-processor to further transform a first mapping position of said service request signal to a second mapping position based, in part, on a mapping algorithm; coupling an arbitration post-processor to said output terminal and said matrix circuit; and, configuring said arbitration post-processor to transform said second mapping position of said service request signal back to said first mapping position.
- 38. The method of optimizing a crossbar switch controller of claim 37, wherein said mapping algorithm further comprises a set of mapping algorithm inputs.
- 39. The method of optimizing a crossbar switch controller of claim 38, wherein said mapping algorithm comprises a rotation algorithm.
- 40. The method of optimizing a crossbar switch controller of claim 39, wherein said set of mapping algorithm inputs comprises a row offset.
- 41. The method of optimizing a crossbar switch controller of claim 39, said set of mapping algorithm inputs comprises a column offset.
- 42. The method of optimizing a crossbar switch controller of claim 39, said set of mapping algorithm inputs comprises a row offset and a column offset.
- 43. The method of optimizing a crossbar switch controller of claim 38, wherein said mapping algorithm further comprises a set of mapping stages.
- 44. The method of optimizing a crossbar switch controller of claim 43, wherein each mapping stage of said set of mapping stages further includes a set of nodes.
- 45. The method of optimizing a crossbar switch controller of claim 44, wherein each node of said set of nodes further includes a set of node inputs and a set of node outputs.
- 46. The method of optimizing a crossbar switch controller of claim 45, wherein each node of said set of nodes further comprises a state.
- 47. The method of optimizing a crossbar switch controller of claim 46, wherein said set of mapping algorithm inputs comprises said state.
- 48. The method of optimizing a crossbar switch controller of claim 47, further including:
coupling a first service request signal to a first node input of a first node in a first mapping stage; coupling a second service request signal to a second node input of said first node; coupling a first node output of said first node to a first node input of a second node in a second mapping stage; coupling a second node output of said first node to a first node input of a third node in said second mapping stage; wherein, if said state is true, transmitting said first service request signal to said first node input of said second node, and transmitting said second service request signal to said first node input of said third node; and, if said state is false, transmitting said first service request signal to said first node input of said third node, and transmitting said second service request signal to said first node input of said second node.
- 49. The method of optimizing a crossbar switch controller of claim 48, wherein said mapping algorithm comprises a hierarchical mapping algorithm.
- 50. The method of optimizing a crossbar switch controller of claim 49, wherein said hierarchical mapping algorithm further comprises a binary tree topology.
- 51. The method of optimizing a crossbar switch controller of claim 48, wherein said mapping algorithm comprises a switch network mapping algorithm.
- 52. The method of optimizing a crossbar switch controller of claim 49, wherein said switch network mapping algorithm further comprises a butterfly topology.
REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority to U.S. Prov. No. 60/333,945, filed Nov. 20, 2002, incorporated herein by reference.