Claims
- 1. An apparatus comprising:
a first receive circuit configured to couple to a first interface to receive a first plurality of packets, wherein the first receive circuit is configured, for each packet of the first plurality of packets, to select a destination from one of a plurality of destinations; a second receive circuit configured to couple to a second interface to receive a second plurality of packets, wherein the second receive circuit is configured, for each packet of the second plurality of packets, to select a destination from one of the plurality of destinations; a plurality of transmit circuits configured to transmit packets on respective interfaces, wherein the plurality of destinations comprises the plurality of transmit circuits; a packet direct memory access (DMA) circuit, wherein the packet DMA circuit is configured to communicate packets to and from a memory controller, and wherein the packet DMA circuit is one of the plurality of destinations; and a switch coupled to the first receive circuit, the second receive circuit, and the plurality of destinations, wherein the switch is configured to couple the first receive circuit and the second receive circuit to select ones of the plurality of destinations to convey packets from the first receive circuit and the second receive circuit to the select ones of the plurality of destinations; wherein the first receive circuit, the second receive circuit, the plurality of destinations, and the switch are integrated onto an integrated circuit.
- 2. The apparatus as recited in claim 1 wherein the plurality of transmit circuits include a first transmit circuit configured to couple to the first interface and a second transmit circuit configured to couple to the second interface.
- 3. The apparatus as recited in claim 1 wherein the respective interfaces each support a plurality of virtual channels, and wherein the first receive circuit is further configured to select, for each packet, one of the plurality of virtual channels on the destination of that packet, and wherein the second receive circuit is further configured to select, for each packet, one of the plurality of virtual channels on the destination of that packet.
- 4. The apparatus as recited in claim 3 wherein, if: (i) the first receive circuit receives a first packet for a first destination and a first virtual channel on the first destination; and (ii) the second receive circuit receives a second packet for the first destination and the first virtual channel on the first destination; the switch is configured to select a selected one of the first receive circuit or the second receive circuit to transmit the first packet or the second packet, and wherein the switch is configured to inhibit selecting the other one of the first receive circuit or the second receive circuit until the selected one reaches a packet boundary.
- 5. The apparatus as recited in claim 3 wherein the first receive circuit is programmable to select the destination for each of the first plurality of packets.
- 6. The apparatus as recited in claim 5 wherein the first receive circuit comprises a hash and route circuit coupled to receive at least a portion of each of the plurality of packets and a virtual channel on which that packet is received, and wherein the hash and route circuit is programmable to select the destination responsive to one or both of the portion of that packet and the virtual channel on which that packet is received.
- 7. The apparatus as recited in claim 1 further comprising the memory controller integrated onto the integrated circuit, wherein the memory controller is configured to couple to a memory, and wherein the packet DMA circuit is configured to transmit packets received by the packet DMA circuit to the memory controller for storage in the memory.
- 8. The apparatus as recited in claim 7 wherein the packet DMA circuit is further configured to transmit packets to one of the plurality of destinations.
- 9. The apparatus as recited in claim 8 wherein the switch is configured to couple the packet DMA circuit to the one of the plurality of destinations.
- 10. The apparatus as recited in claim 1 wherein the first receive circuit is configured to select a first destination of the plurality of destinations for a first packet of the first plurality of packets, and wherein the first receive circuit is configured to select a second destination of the plurality of destinations for a second packet of the first plurality of packets, wherein the first destination is different from the second destination.
- 11. An apparatus comprising:
a first integrated circuit having a first plurality of interface circuits, wherein the first integrated circuit is configured to receive a first plurality of packets in a first interface circuit of the first plurality of interface circuits and a second plurality of packets in a second interface circuit of the first plurality of interface circuits, and wherein the first interface circuit is configured to select a destination from a plurality of destinations for each of the first plurality of packets, and wherein the second interface circuit is configured to select a destination from the plurality of destinations for each of the second plurality of packets, and wherein the plurality of destinations includes the first plurality of interface circuits and a packet direct memory access (DMA) circuit, wherein the packet DMA circuit is configured to communicate packets to and from a memory controller, and wherein the first integrated circuit further includes a switch configured to couple the first interface circuit and the second interface circuit to select ones of the plurality of destinations to transmit packets; and a second integrated circuit having a second plurality of interface circuits, wherein a third interface circuit of the second plurality of interface circuits is coupled to a fourth interface circuit of the first plurality of interface circuits, wherein the second integrated circuit is configured to receive a third plurality of packets on the third interface circuit, the third plurality of packets transmitted by the fourth interface circuit and including at least a first packet of the first plurality of packets and at least a second packet of the second plurality of packets, the first packet and the second packet having the fourth interface circuit as the destination in the first integrated circuit.
- 12. The apparatus as recited in claim 11 wherein the first interface circuit is configured to select a first destination of the plurality of destinations for a third packet of the first plurality of packets, and wherein the first interface circuit is configured to select a second destination of the plurality of destinations for a fourth packet of the first plurality of packets, and wherein the second destination is different from the first destination.
- 13. A method comprising:
receiving a first plurality of packets in a first receive circuit of an integrated circuit; selecting a destination from one of a plurality of destinations for each packet of the first plurality of packets; receiving a second plurality of packets in a second receive circuit of the integrated circuit; selecting a destination from one of the plurality of destinations for each packet of the second plurality of packets; coupling the first receive circuit and the second receive circuit to select ones of the plurality of destinations via a switch in the integrated circuit to convey packets, wherein the integrated circuit includes a plurality of transmit circuits configured to transmit packets on respective interfaces of the integrated circuit, and wherein the plurality of destinations includes the plurality of transmit circuits, and wherein the integrated circuit further includes a packet direct memory access (DMA) circuit, wherein the packet DMA circuit is configured to communicate packets to and from a memory controller, and wherein the packet DMA circuit is one of the plurality of destinations.
- 14. The method as recited in claim 13 wherein the respective interfaces each support a plurality of virtual channels, and wherein selecting a destination from one of a plurality of destinations for each packet of the first plurality of packets comprises selecting, for each packet, one of the plurality of virtual channels on the destination of that packet, and wherein selecting a destination from one of the plurality of destinations for each packet of the second plurality of packets comprises selecting, for each packet, one of the plurality of virtual channels on the destination of that packet.
- 15. The method as recited in claim 14 further comprising, if: (i) the first receive circuit receives a first packet for a first destination and a first virtual channel on the first destination; and (ii) the second receive circuit receives a second packet for the first destination and the first virtual channel on the first destination:
selecting a selected one of the first receive circuit or the second receive circuit to transmit the first packet or the second packet; and inhibiting selecting the other one of the first receive circuit or the second receive circuit until the selected one reaches a packet boundary.
- 16. The method as recited in claim 14 further comprising programming the first receive circuit to select the destination for each of the first plurality of packets.
- 17. The method as recited in claim 16 wherein the first receive circuit comprises a hash and route circuit coupled to receive at least a portion of each of the plurality of packets and a virtual channel on which that packet is received, and wherein programming the first transmit circuit to select the destination for each of the first plurality of packets comprises programming the hash and route circuit to select the destination responsive to one or both of the portion of that packet and the virtual channel on which that packet is received.
- 18. A computer accessible medium comprising one or more data structures representing:
a first receive circuit configured to couple to a first interface to receive a first plurality of packets, wherein the first receive circuit is configured, for each packet of the first plurality of packets, to select a destination from one of a plurality of destinations; a second receive circuit configured to couple to a second interface to receive a second plurality of packets, wherein the second receive circuit is configured, for each packet of the second plurality of packets, to select a destination from one of the plurality of destinations; a plurality of transmit circuits configured to transmit packets on respective interfaces, wherein the plurality of destinations comprises the plurality of transmit circuits; a packet direct memory access (DMA) circuit, wherein the packet DMA circuit is configured to communicate packets to and from a memory controller, and wherein the packet DMA circuit is one of the plurality of destinations; and a switch coupled to the first receive circuit, the second receive circuit, and the plurality of destinations, wherein the switch is configured to couple the first receive circuit and the second receive circuit to select ones of the plurality of destinations to convey packets from the first receive circuit and the second receive circuit to the select ones of the plurality of destinations; wherein the first receive circuit, the second receive circuit, the plurality of destinations, and the switch are integrated onto an integrated circuit.
- 19. The computer accessible medium as recited in claim 18 wherein the plurality of transmit circuits include a first transmit circuit configured to couple to the first interface and a second transmit circuit configured to couple to the second interface.
- 20. The computer accessible medium as recited in claim 18 wherein the respective interfaces each support a plurality of virtual channels, and wherein the first receive circuit is further configured to select, for each packet, one of the plurality of virtual channels on the destination of that packet, and wherein the second receive circuit is further configured to select, for each packet, one of the plurality of virtual channels on the destination of that packet.
- 21. The computer accessible medium as recited in claim 20 wherein, if: (i) the first receive circuit receives a first packet for a first destination and a first virtual channel on the first destination; and (ii) the second receive circuit receives a second packet for the first destination and the first virtual channel on the first destination; the switch is configured to select a selected one of the first receive circuit or the second receive circuit to transmit the first packet or the second packet, and wherein the switch is configured to inhibit selecting the other one of the first receive circuit or the second receive circuit until the selected one reaches a packet boundary.
- 22. The computer accessible medium as recited in claim 20 wherein the first receive circuit is programmable to select the destination for each of the first plurality of packets.
- 23. The computer accessible medium as recited in claim 22 wherein the first receive circuit comprises a hash and route circuit coupled to receive at least a portion of each of the plurality of packets and a virtual channel on which that packet is received, and wherein the hash and route circuit is programmable to select the destination responsive to one or both of the portion of that packet and the virtual channel on which that packet is received.
- 24. The computer accessible medium as recited in claim 18 wherein the packet DMA circuit is further configured to transmit packets to one of the plurality of destinations.
- 25. The computer accessible medium as recited in claim 24 wherein the switch is configured to couple the packet DMA circuit to the one of the plurality of destinations.
- 26. The computer accessible medium as recited in claim 18 wherein the first receive circuit is configured to select a first destination of the plurality of destinations for a first packet of the first plurality of packets, and wherein the first receive circuit is configured to select a second destination of the plurality of destinations for a second packet of the first plurality of packets, wherein the first destination is different from the second destination.
- 27. A computer accessible medium comprising one or more data structures representing:
a first integrated circuit having a first plurality of interface circuits, wherein the first integrated circuit is configured to receive a first plurality of packets in a first interface circuit of the first plurality of interface circuits and a second plurality of packets in a second interface circuit of the first plurality of interface circuits, and wherein the first interface circuit is configured to select a destination from a plurality of destinations for each of the first plurality of packets, and wherein the second interface circuit is configured to select a destination from the plurality of destinations for each of the second plurality of packets, and wherein the plurality of destinations includes the first plurality of interface circuits and a packet direct memory access (DMA) circuit, wherein the packet DMA circuit is configured to communicate packets to and from a memory controller, and wherein the first integrated circuit further includes a switch configured to couple the first interface circuit and the second interface circuit to select ones of the plurality of destinations to transmit packets; and a second integrated circuit having a second plurality of interface circuits, wherein a third interface circuit of the second plurality of interface circuits is coupled to a fourth interface circuit of the first plurality of interface circuits, wherein the second integrated circuit is configured to receive a third plurality of packets on the third interface circuit, the third plurality of packets transmitted by the fourth interface circuit and including at least a first packet of the first plurality of packets and at least a second packet of the second plurality of packets, the first packet and the second packet having the fourth interface circuit as the destination in the first integrated circuit.
- 28. The computer accessible medium as recited in claim 27 wherein the first interface circuit is configured to select a first destination of the plurality of destinations for a third packet of the first plurality of packets, and wherein the first interface circuit is configured to select a second destination of the plurality of destinations for a fourth packet of the first plurality of packets, and wherein the second destination is different from the first destination.
Parent Case Info
[0001] This application claims benefit of priority to U.S. Provisional Patent Application Serial No. 60/380,740, filed May 15, 2002. This application claims benefit of priority to U.S. Provisional Patent Application Serial No. 60/331,789, filed Nov. 20, 2001. This application claims benefit of priority to U.S. Provisional Patent Application Serial No. 60/344,713, filed Dec. 24, 2001. This application claims benefit of priority to U.S. Provisional Patent Application Serial No. 60/348,777, filed Jan. 14, 2002. This application claims benefit of priority to U.S. Provisional Patent Application Serial No. 60/348,717, filed Jan. 14, 2002.
Provisional Applications (5)
|
Number |
Date |
Country |
|
60380740 |
May 2002 |
US |
|
60331789 |
Nov 2001 |
US |
|
60344713 |
Dec 2001 |
US |
|
60348777 |
Jan 2002 |
US |
|
60348717 |
Jan 2002 |
US |