Claims
- 1. A method for maintaining cell arrival time synchronization between a port module and plural switch fabric slices, where links between the port module and the switch fabric slices are of varying lengths, comprising:
receiving, at the port module, a grant from a switch fabric slice; transmitting a cell from the port module to the switch fabric slice in response to the grant; and delaying said cell transmission by a delay amount based on a link round trip delay (RTD) value for the corresponding link between the port module and the switch fabric slice, to cause the cell to arrive at the switch fabric slice a predetermined number of cell times after issuance of the grant, independent of link length.
- 2. The method of claim 1, wherein the delay amount is based on a difference between the RTD and the predetermined number of cell times.
- 3. The method of claim 1, further comprising:
determining, at each switch fabric slice, a round trip delay (RTD) value for each link by determining a phase difference between a transmitted frame and a received frame.
- 4. The method of claim 3, further comprising:
forwarding the determined link RTD values from the respective switch fabric slices to the port module.
- 5. The method of claim 1, further comprising:
synchronizing transmissions of cells from the switch fabric slices.
- 6. The method of claim 5, wherein synchronizing transmissions of cells comprises:
distributing a low-speed frame clock from a common source to each switch fabric slice; encapsulating groups of cells into variable-size frames; at the switch fabric slices, aligning boundaries of variable-size transmit frames with the frame clock by dynamically modifying sizes of the frames; and transmitting the aligned frames.
- 7. The method of claim 6, wherein a frame comprises a variable-size frame header and a fixed-size data payload.
- 8. The method of claim 7, wherein the variable-size frame header comprises a variable-size component, followed by a fixed-size component, the method further comprising:
using the fixed-sized component to identify, at port module and switch fabric slice receivers, beginning of the data payload.
- 9. The method of claim 7, further comprising:
at the port module, aligning a boundary of a transmit frame with a frame received from a corresponding switch fabric slice.
- 10. The method of claim 7, further comprising:
scrambling the data payload.
- 11. The method of claim 10, wherein scrambling is performed by a frame synchronous scrambler.
- 12. The method of claim 1, each switch fabric slice having a local clock, the method further comprising:
clearing, upon initialization of a link, an elastic buffer, each switch fabric slice receiver containing an elastic buffer large enough to hold at least one full cell; and reading data out of an elastic buffer when
a) the elastic buffer contains at least a predetermined amount of data, and b) the switch fabric's local clock indicates beginning of a transmit cell boundary.
- 13. The method of claim 12, further comprising:
determining, at each switch fabric slice, a round trip delay (RTD) value for each link by determining a phase difference between a transmitted frame and a received frame after reading out of the corresponding elastic buffer.
- 14. The method of claim 12, wherein the predetermined number of data bytes is chosen to prevent underflow of the elastic buffer in the presence of worst case timing jitter.
- 15. The method of claim 1, further comprising:
operating the port module from a local clock independent of switch fabric clocks.
- 16. The method of claim 1, at least one port module to switch fabric link spanning a distance of at least one hundred meters.
- 17. A method for maintaining cell order in a system having multiple switch fabric slices connected to multiple port modules, comprising, at each port module:
maintaining a separate input queue for each destination; storing arriving cells into the input queues, in arrival order and according to destination; maintaining an output queue; serving grants received from the switch fabric slices by removing cells from the corresponding input queues and transmitting the removed cells to the corresponding switch fabric slices, grants received during a particular cell time being served prior to grants received during a later cell time, and within a single cell time, grants being served over links in a predetermined order; and storing, in the output queue, all cells arriving from the switch fabric slices during a particular cell time prior to storing cells arriving during a later cell time, and within a single cell time, storing cells in the predetermined order according to links on which the cells arrived.
- 18. The method of claim 17, further comprising:
assigning to each switch fabric module a unique number; and assigning to each link the same number as the switch fabric to which it connects.
- 19. The method of claim 18, wherein the unique numbers are assigned sequentially.
- 20. The method of claim 17, wherein the port modules and switch fabric slices operate from independent clocks.
- 21. The method of claim 17, at least one port module to switch fabric link spanning a distance greater than one hundred meters.
- 22. A switching system, comprising:
plural switch fabric slices; and plural port modules connected to the switch fabric slices via links of varying lengths, each port module transmitting a cell to a switch fabric slice in response to a grant received from the switch fabric slice, said transmission being delayed by a delay amount based on a link round trip delay (RTD) value for the corresponding link between the port module and the switch fabric slice, to cause the cell to arrive at the switch fabric slice at a predetermined number of cell times after issuance of the grant, independent of link length.
- 23. The system of claim 22, wherein the delay amount is based on a difference between the RTD and the predetermined number of cell times.
- 24. The system of claim 22, each switch fabric slice determining a round trip delay (RTD) value for each link based on a phase difference between a transmitted frame and a received frame.
- 25. The system of claim 24, wherein the determined link RTD values are forwarded from the respective switch fabric slices to the port module.
- 26. The system of claim 22, the switch fabric slices synchronizing transmissions of cells.
- 27. The system of claim 26, the switch fabric slices synchronizing transmissions of cells by distributing a low-speed frame clock from a common source to each switch fabric slice, encapsulating groups of cells into variable-size frames, aligning boundaries of variable-size transmit frames with the frame clock by dynamically modifying sizes of the frames and transmitting the aligned frames.
- 28. The system of claim 27, wherein a frame comprises a variable-size frame header and a fixed-size data payload.
- 29. The system of claim 28, wherein the variable-size frame header comprises a variable-size component, followed by a fixed-size component, the fixed-sized component being used to identify, at port module and switch fabric slice receivers, beginning of the data payload.
- 30. The system of claim 28, the port module further aligning a boundary of a transmit frame with a frame received from a corresponding switch fabric slice.
- 31. The system of claim 28, further comprising:
a scrambler which scrambles the data payload.
- 32. The system of claim 31, wherein the scrambler is a frame synchronous scrambler.
- 33. The system of claim 22, each switch fabric slice comprising:
a local clock; and an elastic buffer large enough to hold at least one full cell, data being read out of the elastic buffer when
a) the elastic buffer contains at least a predetermined amount of data, and b) the switch fabric's local clock indicates beginning of a transmit cell boundary.
- 34. The system of claim 33, each switch fabric slice determining a round trip delay (RTD) value for each link by determining a phase difference between a transmitted frame and a received frame after reading out of the corresponding elastic buffer.
- 35. The system of claim 33, wherein the predetermined number of data bytes is chosen to prevent underflow of the elastic buffer in the presence of worst case timing jitter.
- 36. The system of claim 22, the port module operating from a local clock independent of switch fabric clocks.
- 37. The system of claim 22, at least one port module to switch fabric link spanning a distance greater than one hundred meters.
- 38. A switching system comprising:
multiple switch fabric slices; and multiple port modules connected to the switch fabric slices, each port module comprising:
plural input queues corresponding to plural destinations, arriving cells being stored into the input queues in arrival order and according to destination, and an output queue, grants received from the switch fabric slices being serviced by removing cells from the corresponding input queues and transmitting the removed cells to the corresponding switch fabric slices, grants received during a particular cell time being served prior to grants received during a later cell time, and within a single cell time, grants being served over links in a predetermined order; and all cells arriving from the switch fabric slices during a particular cell time being stored in the output queue prior to cells arriving during a later cell time, and within a single cell time, cells being stored in the predetermined order according to links on which the cells arrived.
- 39. The system of claim 38, each switch fabric module being assigned a unique number, the same number being assigned to a link to which the switch fabric connects.
- 40. The system of claim 39, the unique numbers being assigned sequentially.
- 41. The system of claim 38, wherein the port modules and switch fabric slices operate from independent clocks.
- 42. The system of claim 38, at least one port module to switch fabric link spanning a distance greater than one hundred meters.
- 43. A system for maintaining cell arrival time synchronization between a port module and plural switch fabric slices, where links between the port module and the switch fabric slices are of varying lengths, comprising:
means for receiving, at the port module, a grant from a switch fabric slice; means for transmitting a cell from the port module to the switch fabric slice in response to the grant; and means for delaying said cell transmission by a delay amount based on a link round trip delay (RTD) value for the corresponding link between the port module and the switch fabric slice, to cause the cell to arrive at the switch fabric slice a predetermined number of cell times after issuance of the grant, independent of link length.
- 44. A system for maintaining cell order in a system having multiple switch fabric slices connected to multiple port modules, comprising, at each port module:
separate input queue means for each destination; means for storing arriving cells into the input queue means, in arrival order and according to destination; output queue means; means for serving grants received from the switch fabric slices during a particular cell time prior to serving grants received a later cell time, and within a single cell time, serving grants over links in a predetermined order; and means for storing, in the output queue means, all cells arriving from the switch fabric slices during a particular cell time prior to storing cells arriving during a later cell time, and within a single cell time, storing cells in the predetermined order according to links on which the cells arrived.
RELATED APPLICATION(S)
[0001] This application claims the benefit of U.S. Provisional Application No. 60/387,394, filed Jun. 10, 2002 for “Large Capacity Switching System,” by Gopal Meempat, G. Ramamurthy, William J. Dally and Martin Braff. The entire teachings of the above application are incorporated herein by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60387394 |
Jun 2002 |
US |