Claims
- 1. A switch fabric for routing data from one or more sources towards one or more destinations, comprising a switching stage configured between an input stage and an output stage, wherein:
the input stage is configured to receive the data transmitted from the one or more sources and forward the data to the switching stage; the switching stage is configured to route the data received from the input stage to the output stage; the output stage is configured to transmit the data received from the switching stage towards the one or more destinations; the input stage has one or more input ports, wherein each input port can be configured to receive data from a source; the output stage has one or more output ports, wherein each output port can be configured to transmit data towards a destination; the input stage comprises a plurality of input routing queues configured to store the data until the data is ready to be forwarded to the switching stage; the output stage comprises a plurality of output routing queues configured to store the data until the data is ready to be transmitted towards the one or more destinations; at least one input port can be programmably configured to store data in two or more input routing queues that are associated with a single output port; and at least one output port can be programmably configured to receive data from two or more output routing queues that are associated with a single input port.
- 2. The invention of claim 1, wherein:
different sets of data received at an input port from a single source can be stored in two or more different input routing queues; and different sets of data to be transmitted from an output port towards a single destination can be stored in two or more different output routing queues.
- 3. The invention of claim 2, wherein the data received at the input port from the single source can be separated into the different sets of data based on different destinations.
- 4. The invention of claim 2, wherein the data received at the input port from the single source can be separated into the different sets of data based on different quality-of-service levels.
- 5. The invention of claim 2, wherein the data received at the input port from the single source can be separated into the different sets of data to achieve isolation.
- 6. The invention of claim 1, wherein:
each input port can be programmably configured independent of each other input port; and each output port can be programmably configured independent of each other output port.
- 7. The invention of claim 1, wherein:
the input stage comprises one or more input devices, wherein each input device comprises a plurality of input ports and a plurality of input routing queues; the switching stage comprises one or more crossbar devices; the output stage comprises one or more output devices, wherein each output device comprises a plurality of output ports and a plurality of output routing queues; each input port of each input device can be programmably configured to store data in two or more input routing queues of that input device; and each output port of each output device can be programmably configured to receive data from two or more output routing queues of that output device.
- 8. The invention of claim 7, wherein:
each input device can be configured independent of each other input device; each output device can be configured independent of each other output device; each input port of each input device can be programmably configured independent of each other input port of that input device; and each output port of each output device can be programmably configured independent of each other output port of that output device.
- 9. The invention of claim 7, wherein:
a maximum number of the input routing queues in each input device that can be configured to receive data from an input port of that input device is a function of (1) the number of input ports of that input device that are configured to receive data from the one or more sources and (2) the total number of output ports in the output stage that are configured to transmit data towards the one or more destinations; and a maximum number of the output routing queues in each output device that can be configured to transmit data to an output port of that output device is a function of (1) the number of output ports of that output device that are configured to transmit data towards the one or more destinations and (2) the total number of input ports in the input stage that are configured to receive data from the one or more sources.
- 10. The invention of claim 1, wherein the switch fabric is fabricated as one or more integrated circuits.
- 11. A switch fabric for routing data from one or more sources towards one or more destinations, comprising a switching stage configured between an input stage and an output stage wherein:
the input stage is configured to receive the data transmitted from the one or more sources and forward the data to the switching stage; the switching stage is configured to route the data received from the input stage to the output stage; the output stage is configured to transmit the data received from the switching stage towards the one or more destinations; the input stage transmits bids to the switching stage to request connections through the switching stage for routing the data; the output stage is configured to transmit status information about the output stage to the input stage; and the input stage is configured to generate the bids transmitted to the switching fabric based on the status information about the output stage.
- 12. The invention of claim 11, wherein:
the output stage is further configured to transmit status information about the output stage to the switching stage; and the switching stage is configured to determine whether to accept or reject the bids based on the status information about the output stage.
- 13. The invention of claim 12, wherein:
the output stage comprises a plurality of output routing queues configured to store the data prior to being transmitted towards the one or more destinations; the output stage has a plurality of output ports, wherein each output port can be configured to transmit data towards a destination; the status information about the output stage that is used by the input stage corresponds to per queue status information for each output routing queue; and the status information about the output stage that is used by the switching stage corresponds to per port status information for each output port.
- 14. The invention of claim 11, wherein:
the output stage comprises a plurality of output routing queues configured to store the data prior to being transmitted towards the one or more destinations; the output stage has a plurality of output ports, wherein each output port can be configured to transmit data towards a destination; the status information about the output stage that is used by the input stage corresponds to (1) per queue status information for each output routing queue and (2) per port status information for each output port.
- 15. The invention of claim 11, wherein:
the input stage comprises a plurality of input devices, each input device performing a port expansion function; the switching stage comprises one or more crossbar devices, each crossbar device performing a data routing function; the output stage comprises a plurality of output devices, each output device performing a port contraction function; the status information about each output device is transmitted to all of the input devices in the input stage; and each input device is configured to generate bids transmitted to the switching fabric based on the status information about all of the output devices.
- 16. The invention of claim 15, wherein:
each output device comprises a plurality of output routing queues and a plurality of output ports; the status information transmitted from each output device to all of the input devices comprises both per queue status information for each output routing queue of that output device and per port status information for each output port of that output device.
- 17. The invention of claim 16, wherein:
each input device avoids generating bids for output routing queues that are congested as indicated by the per queue status information; and each input device avoids generating bids for output ports that are congested as indicated by the per port status information.
- 18. The invention of claim 11, wherein the switch fabric is fabricated as one or more integrated circuits.
- 19. A switch fabric for routing data from one or more sources towards one or more destinations, comprising a switching stage configured between an input stage and an output stage wherein:
the input stage is configured to receive the data transmitted from the one or more sources and forward the data to the switching stage; the switching stage is configured to route the data received from the input stage to the output stage; the output stage is configured to transmit the data received from the switching stage towards the one or more destinations; the input stage is configured to transmit bids to the switching stage to request connections through the switching stage for routing the data to the output stage; the switching stage is configured to determine whether to accept or reject each bid and to transmit a grant/rejection signal to the input stage identifying whether the bid is accepted or rejected; for each rejected bid, the grant/rejection signal explicitly identifies a reason for rejecting the bid; and the input stage determines how to react to a rejected bid based on the reason the bid was rejected.
- 20. The invention of claim 19, wherein:
the input stage comprises a plurality of input devices, each input device performing a port expansion function; the switching stage comprises one or more crossbar devices, each crossbar device performing a data routing function; the output stage comprises a plurality of output devices, each output device performing a port contraction function; each input device is configured to transmit bids to the one or more crossbar devices to request connections through the switching stage for routing the data to the output devices; and each crossbar device is configured to determine whether to accept or reject each bid received from an input device and the transmit a grant/rejection signal to that input device identifying whether the bid is accepted or rejected.
- 21. The invention of claim 20, wherein each input device is configured:
to transmit, if an initial bid is rejected due to bid collision, a subsequent bid for the same output device; and to transmit, if an initial bid is rejected due to back-pressure, a subsequent bid for a different output device.
- 22. The invention of claim 21, wherein the back-pressure comprises both per queue status information for each output routing queue in each output device and per port status information for each output port in each output device.
- 23. The invention of claim 20, wherein, in each input device, bids for each output device are organized and ordered by traffic class.
- 24. The invention of claim 20, wherein each input device is configured to reschedule a low-priority cell if a bid for a corresponding routing queue is rejected.
- 25. The invention of claim 19, wherein the switch fabric is fabricated as one or more integrated circuits.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of the filing date of U.S. provisional application No. 60/255,749, filed on Dec. 15, 2000 as attorney docket no. 4-28. This application is one of a set of U.S. patent applications consisting of Serial No. 09/xxx,xxx filed as attorney docket no. Dell 2-4-1-1-5-28, Serial No. 09/xxx,xxx filed as attorney docket no. Dell 3-5-2-6-29, and Serial No. 09/xxx,xxx filed as attorney docket no. Dell 4-2-3-1-7, all of which were filed on the same date and the teachings of all of which are incorporated herein by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60255749 |
Dec 2000 |
US |