Claims
- 1. An arbiter which is operable to route a plurality of instructions received on a first number of input channels to designated ones of a second number of output channels according to instruction routing information, the arbiter comprising arbitration circuitry which is operable to arbitrate between instructions received on different input channels and designating a same output channel, and prevent any of the different input channels from transmitting a subsequent instruction until arbitration between the different input channels is complete.
- 2. The arbiter of claim 1 wherein the arbitration circuitry employs M by 1ofN encoding for the instructions where M is an integer greater than or equal to one and N is an integer greater than or equal to two.
- 3. The arbiter of claim 1 wherein the arbitration circuitry employs 1ofN encoding for the instruction routing information where N is an integer greater than or equal to two.
- 4. The arbiter of claim 1 wherein the instruction routing information comprises input control information and output control information, the input control information being encoded using 1ofA and 1ofB encoding where A*B is the second number, and the output control information being encoded using 1ofC and 1ofD encoding where C*D is the first number.
- 5. The arbiter of claim 1 wherein the arbitration circuitry is operable to route the instructions between each of the input channels and each of the output channels asynchronously.
- 6. The arbiter of claim 5 wherein the arbitration circuitry is operable to route the instructions asynchronously using a handshake protocol.
- 7. The arbiter of claim 6 wherein the handshake protocol between a first sender and a first receiver on a link between a first input channel and a first output channel comprises:
the first sender sets a data signal valid when an enable signal from the first receiver goes high; the first receiver lowers the enable signal upon receiving the valid data signal; the first sender sets the data signal neutral upon receiving the low enable signal; and the first receiver raises the enable signal upon receiving the neutral data signal.
- 8. The arbiter of claim 6 wherein the handshake protocol is delay-insensitive.
- 9. The arbiter of claim 1 wherein the arbitration circuitry comprises a crossbar operable to receive the instructions from the input channels and transmit the instructions to the output channels, the arbitration circuitry further comprising input control circuitry and output control circuitry which are operable to control the crossbar.
- 10. The arbiter of claim 9 wherein the input control circuitry is operable to generate split control information for the crossbar with reference to the instruction routing information, the input control circuitry further being operable to generate a request bit corresponding to each pair of the input and output channels, each request bit indicating whether or not the corresponding input channel is to form a link with the corresponding output channel, the request bits also being generated with reference to the instruction routing information.
- 11. The arbiter of claim 10 wherein the output control circuitry is operable to generate merge control information for the crossbar by arbitrating among the request bits.
- 12. The arbiter of claim 11 wherein the output control circuitry comprises a binary tree structure.
- 13. The arbiter of claim 12 wherein the binary tree structure comprises a plurality of arbitration circuits and merge circuits configured in a plurality of stages and being operable to arbitrate among the request bits by accumulating an index of a winning input channel.
- 14. The arbiter of claim 13 wherein behavior of a stage of the tree structure may be described using concurrent sequential processes (CSP) notation as follows:
- 15. The arbiter of claim 1 wherein the arbitration circuitry comprises grant circuitry operable to prevent deadlock of the arbiter by transmitting a grant token corresponding to the same output channel to an arbitration-winning input channel.
- 16. The arbiter of claim 15 wherein the arbitration circuitry also comprises a main crossbar operable to receive the instructions from the input channels and transmit the instructions to the output channels, the arbitration circuitry further comprising input control circuitry and output control circuitry which are operable to control the main crossbar by generating first split control information and first merge control information from the instruction routing information, and wherein the grant circuitry comprises a grant crossbar operable to transmit the grant token in response to second split control information and second merge control information, the second split control information being derived from the first merge control information, and the second merge control information being derived from the first split control information.
- 17. The arbiter of claim 15 wherein the grant circuitry is implemented a slack of one or less such that a second request from a particular channel is blocked until a first request has been granted.
- 18. The arbiter of claim 1 wherein the arbitration circuitry comprises a first crossbar operable to receive the instructions from the input channels and transmit the instructions to the output channels, the arbitration circuitry also comprising input control circuitry and output control circuitry which are operable to control the first crossbar by generating first split control information and first merge control information from the instruction routing information, the arbitration circuitry also comprising a second crossbar operable to transmit data from any of the output channels to any of the input channels in response to second split control information and second merge control information, the second split control information being derived from the first merge control information, and the second merge control information being derived from the first split control information.
- 19. The arbiter of claim 18 wherein arbitration circuitry is operable to generate the second split control information and the second merge control information only in response to an indication that a two-way transaction has been requested.
- 20. The arbiter of claim 9 wherein the crossbar is operable to route the instructions to each output channel in the deterministic manner.
- 21. An integrated circuit comprising the arbiter of claim 1.
- 22. The integrated circuit of claim 21 wherein the integrated circuit comprises any of a CMOS integrated circuit, a GaAs integrated circuit, and a SiGe integrated circuit.
- 23. At least one computer-readable medium having data structures stored therein representative of the arbiter of claim 1.
- 24. The at least one computer-readable medium of claim 23 wherein the data structures comprise a simulatable representation of the arbiter.
- 25. The at least one computer-readable medium of claim 24 wherein the simulatable representation comprises a netlist.
- 26. The at least one computer-readable medium of claim 23 wherein the data structures comprise a code description of the arbiter.
- 27. The at least one computer-readable medium of claim 26 wherein the code description corresponds to a hardware description language.
- 28. A set of semiconductor processing masks representative of at least a portion of the arbiter of claim 1.
RELATED APPLICATION DATA
[0001] The present application is a divisional application of U.S. patent application Ser. No. 10/136,025 for ASYNCHRONOUS CROSSBAR WITH DETERMINISTIC OR ARBITRATED CONTROL filed on Apr. 30, 2002 (Attorney Docket No. FULCP001) which claims priority from U.S. Provisional Patent Application No. 60/352,131 for ASYNCHRONOUS CROSSBAR CIRCUIT WITH DETERMINISTIC OR ARBITRATED CONTROL filed on Jan. 25, 2002 (Attorney Docket No. FULCP001P), the entire disclosure of which is incorporated herein by reference for all purposes.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60352131 |
Jan 2002 |
US |
Divisions (1)
|
Number |
Date |
Country |
Parent |
10136025 |
Apr 2002 |
US |
Child |
10237406 |
Sep 2002 |
US |