Claims
- 1. A method of controlling the flow of data in a heterogeneous speed network switching environment, comprising the steps of:
controlling with control logic of a source device the transmission of the data between said source device and a destination device in accordance with a handshaking protocol; and pacing transmission of the data from said source device to said destination device with pacing logic.
- 2. The method of claim 1, wherein the step of controlling in accordance with said handshaking protocol further comprises the step of transmitting a scheduling request signal from said source device to a select one of one or more output ports of said destination device when the data is ready for forwarding.
- 3. The method of claim 2, Wherein when said select one of said one or more output ports in the step of transmitting is ready to receive the data from said source device, said destination device transmits a data request signal to said control logic.
- 4. The method of claim 3, wherein said scheduling request signal is associated with the data which is enqueued in said source device, and said data request signal is sent to said source device in response to receiving said transmission request signal from said source device, which said data request signal is processed by said pacing logic in the step of pacing to cause transmission of the data to said destination device.
- 5. The method of claim 1, wherein said pacing logic in the step of pacing paces transmission of the data from said source device to said destination device by pacing a data request signal associated with the data, which said data request signal is generated by said destination device in response to said source device transmitting a scheduling request signal to said destination device in the step of controlling.
- 6. The method of claim 1, wherein said pacing logic in the step of pacing comprises a plurality of ring queues such that there is a select one of said plurality of ring queues associated with each one of a plurality of bandwidths of said destination device in the heterogeneous speed environment.
- 7. The method of claim 6, wherein there are two said ring queues and two said bandwidths associated with said destination device in the step of pacing.
- 8. The method of claim 6, wherein each of said plurality of ring queues operates at a different rate.
- 9. The method of claim 1, wherein the step of controlling includes the step of arbitrating with arbitration logic transmission of data between a plurality of ring queues of said source device.
- 10. The method of claim 9,wherein said plurality of ring queues in the step of arbitrating each processes one or more data requests received from said destination device, and said arbitration logic determines the order in which each of said one or more data request signals are processed.
- 11. The method of claim 10, wherein the step of arbitrating includes a step of sharing one or more shared credits of a shared credit pool with a corresponding private credit pool of each ring queue of said plurality of ring queues, the step of sharing performed in accordance with predetermined criteria before a corresponding data request of said one or more data requests is processed.
- 12. The method of claim 11, wherein a fast ring queue and a slow ring queue of said plurality of ring queues each obtain a select one of said one or more shared credits, in the step of sharing, in accordance with different predetermined criteria, wherein said fast ring queue must remove a select one of said one or more shared credits from said shared credit pool as a requirement to occupying a seat in a head position of said fast ring queue which is vacant.
- 13. The method of claim 12, wherein before said seat in said head position of said fast ring queue can be occupied, said seat at said head position must be vacant, and a select one of said one or more data requests associated with said fast ring queue must be waiting to be processed, and said select one of said one or more shared credits in said shared credit pool is available for sharing.
- 14. The method of claim 12, wherein before said seat in said head position in said slow ring queue can be occupied, said seat in said head position of said slow ring queue must be vacant, and a select one of said one or more data requests associated with said slow ring queue must be waiting to be processed, and a shared credit from said shared credit pool is required, if and only if,
- 15. A data flow control architecture in a heterogeneous speed network switching environment, comprising:
control logic of a source device for controlling the transmission of the data between said source device and a destination device in accordance with a handshaking protocol; and pacing logic for pacing transmission of the data from said source device to said destination device.
- 16. The architecture of claim 15, wherein said control logic transmits a scheduling request signal to a select one of one or more output ports of said destination device when the data is ready for forwarding.
- 17. The architecture of claim 16, wherein when said select one of said one or more output ports is ready to receive the data from said source device, said destination device transmits a data request signal to said control logic.
- 18. The architecture of claim 17, wherein said scheduling request signal is associated with the data enqueued in said source device, and said data request signal is sent to said source device in response to receiving said transmission request signal from said source device, which said data request signal is processed by said pacing logic to cause transmission of the data to said destination device.
- 19. The architecture of claim 15, wherein said pacing logic paces transmission of the data from said source device to said destination device by pacing a data request signal associated with the data, which said data request signal is generated by said destination device in response to said source device transmitting a scheduling request signal to said destination device.
- 20. The architecture of claim 15, wherein said pacing logic comprises a plurality of ring queues such that there is a select one of said plurality of ring queues associated with each one of a plurality of bandwidths of said destination device in the heterogeneous speed environment.
- 21. The architecture of claim 20, wherein there are two said ring queues and two said input port bandwidths associated with said destination device.
- 22. The architecture of claim 20, wherein each of said plurality of ring queues operates at a different rate.
- 23. The architecture of claim 15, wherein said control logic further comprises arbitration logic for arbitrating transmission of data between a plurality of ring queues of said source device.
- 24. The architecture of claim 23, wherein said plurality of ring queues each processes one or more data requests received from said destination device, and said arbitration logic determines the order in which each of said one or more data request signals are processed.
- 25. The architecture of claim 24, wherein said arbitration logic controls the sharing of one or more shared credits of a shared credit pool with a corresponding private credit pool of each ring queue of said plurality of ring queues, the said one or more shared credits shared in accordance with predetermined criteria before a corresponding data request of said one or more data requests is processed.
- 26. The architecture of claim 25, wherein a fast ring queue and a slow ring queue of said plurality of ring queues each obtain select ones of said one or more shared credits in accordance with predetermined criteria, wherein said fast ring queue must remove a select one of said one or more shared credits from said shared credit pool as a requirement to occupying a seat in a head position of said fast ring queue which is vacant.
- 27. The architecture of claim 26, wherein before said seat in said head position of said fast ring queue can be occupied, said seat at said head position must be vacant, and a select one of said one or more data requests associated with said fast ring queue must be waiting to be processed, and said select one of said one or more shared credits in said shared credit pool is available for sharing.
- 28. The architecture of claim 26, wherein before said seat in said head position in said slow ring queue can be occupied, said seat in said head position of said slow ring queue must be vacant, and a select one of said one or more data requests associated with said slow ring queue must be waiting to be processed, and a shared credit from said shared credit pool is required, if and only if,
- 29. A method of credit-based pacing of data in a heterogeneous switching environment, comprising the steps of:
controlling with control logic transmission of the data between a source device and a destination device, in accordance with a handshaking protocol, said source device having a plurality of input ports, said plurality of input ports operational at two or more different data bandwidths; pacing transmission of the data from each of said plurality of input ports of said source device to said destination device with corresponding pacing logic; and arbitrating between said corresponding pacing logic with arbitration logic, transmission of the data from said respective plurality of input ports.
- 30. The method of claim 29, further comprising the steps of:
transmitting a data request signal from said destination device to said source device when said destination device is ready to receive the data, said data request signal enqueued in a data request queue of said source device, which said data request queue corresponds to a specific port of said destination device; and forwarding the data to said port of said destination device with said control logic when said data request has been processed by a ring queue of said source device which is associated with said data request queue, which ring queue processes said data request at a rate which reduces congestion in a switching fabric interstitial to said source device and said destination device.
- 31. A credit-based pacing architecture for forwarding data in a heterogeneous switching environment, comprising:
control logic for controlling transmission of the data between a source device and a destination device, in accordance with a handshaking protocol, said source device having a plurality of input ports, said plurality of input ports operational at two or more different data bandwidths; corresponding pacing logic for pacing the speed of transmission of the data from each of said plurality of input ports of said source device to said destination device; and arbitrating logic for arbitrating between said corresponding pacing logic transmission of the data from said respective plurality of input ports.
- 32. The architecture of claim 31, wherein a data request signal is transmitted from said destination device to said source device when said destination device is ready to receive the data, said data request signal enqueued in a data request queue of said source device, which said data request queue corresponds to a specific port of said destination device, and wherein the data is forwarded to said port of said destination device by said control logic when said data request has been processed by a ring queue of said source device which is associated with said data request queue, which ring queue processes said data request at a rate which reduces congestion in a switching fabric interstitial to said source device and said destination device.
- 33. A method of switching frames from a port on a source device to a port on a destination device so as to prevent large buffer and bandwidth requirements and to simplify flow control, comprising:
implementing a handshaking protocol between an input buffer and a destination port wherein data is kept from arriving at the destination device until the data is specifically requested by the destination port and the data can be transmitted to the wire immediately; implementing a pacing protocol to prevent congestion in the network by transmitting data fragments from the source device at substantially the rate at which the data fragments will eventually be transmitted to the destination device; implementing a credit scheme for arbitrating between two pacing protocols per device, each pacing protocol forwarding data at a different rate.
Parent Case Info
[0001] This application claims priority under 35 U.S.C. § 119(e) from U.S. Provisional Patent application Ser. No. 60/184,671 entitled “Credit-Based Pacing Scheme For Heterogeneous Speed Frame Forwarding” filed Feb. 24, 2000.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60184671 |
Feb 2000 |
US |