WO2002045349A1 - Network switch with a parallel shared memory and method of operation - Google Patents

Network switch with a parallel shared memory and method of operation Download PDF

Info

Publication number
WO2002045349A1
WO2002045349A1 PCT/US2001/044499 US0144499W WO0245349A1 WO 2002045349 A1 WO2002045349 A1 WO 2002045349A1 US 0144499 W US0144499 W US 0144499W WO 0245349 A1 WO0245349 A1 WO 0245349A1
Authority
WO
WIPO (PCT)
Prior art keywords
circuit
output
layer
input
cell
Prior art date
Application number
PCT/US2001/044499
Other languages
French (fr)
Other versions
WO2002045349A9 (en
Inventor
Kai-Yeung Siu
Brain Hang Wai Yang
Mizanur M. Rahman
Original Assignee
Sisilk Networks, Inc.
Raza Foundries, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/939,464 external-priority patent/US7072345B2/en
Priority claimed from US09/939,454 external-priority patent/US7420969B2/en
Priority claimed from US09/940,148 external-priority patent/US7046681B2/en
Application filed by Sisilk Networks, Inc., Raza Foundries, Inc. filed Critical Sisilk Networks, Inc.
Priority to AU2002219908A priority Critical patent/AU2002219908A1/en
Publication of WO2002045349A1 publication Critical patent/WO2002045349A1/en
Publication of WO2002045349A9 publication Critical patent/WO2002045349A9/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/104Asynchronous transfer mode [ATM] switching fabrics
    • H04L49/105ATM switching elements
    • H04L49/108ATM switching elements using shared central buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • H04L49/1515Non-blocking multistage, e.g. Clos
    • H04L49/153ATM switching fabrics having parallel switch planes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/201Multicast operation; Broadcast operation
    • H04L49/203ATM switching fabrics with multicast or broadcast capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches
    • H04L49/606Hybrid ATM switches, e.g. ATM&STM, ATM&Frame Relay or ATM&IP
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5651Priority, marking, classes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5665Interaction of ATM with other protocols
    • H04L2012/5667IP over ATM
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5681Buffer or queue management

Definitions

  • This invention relates generally to high bandwidth data communications through computer networks. More particularly, this invention relates to an output queued switch with a parallel shared memory.
  • the invention includes a network switch apparatus with an input layer to receive a data stream containing a set of cells. Each cell includes data and a header to designate a destination device.
  • the input layer includes a set of input layer circuits.
  • a selected input layer circuit of the set of input layer circuits receives the data stream.
  • the selected input layer circuit includes a set of queues corresponding to a set of destination devices.
  • the selected input layer circuit is configured to assign a selected cell from the data stream to a selected queue of the set of queues.
  • the selected queue corresponds to a selected destination device specified by the header of the selected cell.
  • An intermediate layer includes a set of intermediate layer circuits, each intermediate layer circuit has a set of buffers corresponding to the set of destination devices.
  • a selected intermediate layer circuit of the set of intermediate layer circuits receives the selected cell and assigns the selected cell to a selected buffer corresponding to the selected destination device.
  • An output layer includes a set of output layer circuits corresponding to the set of destination devices.
  • a selected output layer circuit of the set of output layer circuits stores the selected cell prior to routing the selected cell to a selected output layer circuit output node.
  • the invention also includes a method of routing network traffic.
  • the method includes receiving a data stream with a set of cells, each cell including data and a header to designate a destination device.
  • a selected cell of the set of cells is assigned to a selected queue of a set of queues within an input layer circuit.
  • the selected cell specifies a selected destination device.
  • the selected queue corresponds to the selected destination device.
  • the selected cell is routed to a selected intermediate layer circuit within a set of intermediate layer circuits.
  • the selected intermediate layer circuit includes a set of buffers corresponding to a set of destination devices.
  • the selected intermediate layer circuit assigns the selected cell to a selected buffer of the set of buffers.
  • the selected buffer corresponds to the selected destination device.
  • the selected cell is then sent to a selected output layer circuit within a set of output layer circuits.
  • the selected output layer circuit corresponds to the selected destination device.
  • the selected output layer circuit stores the selected cell prior to delivering the selected cell to an output node.
  • Advantages of the invention include high speed, versatility, high efficiency and a relatively low chip count. Additionally, the invention includes optional features, such as Quality of Service, fault tolerance and the ability to manage a number of different communication protocols, including Internet Protocol (IP), Time-Division Multiplexed (TDM), Asynchronous Transport Mode (ATM) and others.
  • IP Internet Protocol
  • TDM Time-Division Multiplexed
  • ATM Asynchronous Transport Mode
  • FIGURE 1 illustrates a switch according to an embodiment of the invention.
  • FIGURE 2 illustrates an exemplary data cell that is processed in accordance with an embodiment of the invention.
  • FIGURE 3 illustrates an input layer circuit according to an embodiment of the invention.
  • FIGURE 4 illustrates an intermediate layer circuit according to an embodiment of the invention.
  • FIGURE 5 illustrates an output layer circuit according to an embodiment of the invention.
  • FIGURE 6 illustrates an integrated circuit for use in the switch of Figure 1 according to an embodiment of the invention.
  • FIGURE 7 is a flowchart showing operation of the switch according to an embodiment of the invention.
  • FIGURE 8 is a dataflow diagram showing the operation of an embodiment of the invention.
  • FIGURE 9 is a data diagram showing data cells as sent to the intermediate layers for each master frame according to an embodiment of the invention.
  • FIGURE 10 is a dataflow diagram showing the operation of an embodiment of the invention.
  • FIGURES 11A-11B illustrate an embodiment of the invention using a synchronization technique.
  • FIGURE 12 illustrates an embodiment of the invention wherein the input layer and output layer are distributed across a set of shared modules.
  • Identical reference numbers in the figures refer to identical elements in the drawings. DETAILED DESCRIPTION OF THE INVENTION
  • FIG. 1 depicts a network switch 100 according to an embodiment of the invention.
  • the switch 100 includes an input layer 110 that is configured to receive data at the input ports 112a-l 12n.
  • the data may be in the form of a cell, which is a fixed sized data segment.
  • the data may also be in the form of a packet, which is a variable sized data segment containing many cells.
  • the switch 100 is coupled to line cards in a router.
  • the input ports 112a-l 12n are connected to one or more line cards.
  • the line cards receive packet data from a number of external sources.
  • the input layer 110 is made up of a number of input layer circuits 114a-l 14n.
  • the input layer circuits 114a-l 14n are each respectively coupled to the input ports 112a-l 12n.
  • Each input port 112 receives a serial stream of cells.
  • Figure 2 shows an exemplary cell 210, which includes a header 220 and a payload 230.
  • the header 220 includes attributes of the payload, including the destination port of the switch that the data is intended for and other information.
  • the attributes include packet identification, error correction coding, protocol type (i.e., IP, TDM, ATM), and the like.
  • the attributes include a color, which represents an input layer number and a sequence number. The idea behind the color is to ensure proper alignment of the data cells as they propagate through the switch, as described below.
  • Figure 3 illustrates the internal structure of an exemplary input layer circuit 114.
  • the input layer circuit 114 receives a data packet at its input port 112.
  • a sorting circuit 312 processes the cell header of the data packet by decoding its destination.
  • the sorting circuit 312 may be implemented using conventional techniques.
  • the input layer circuit 114 includes a set of queues 314a-314n. Each queue corresponds to an output destination port. Thus, if there are N output destination ports, N queues are required. Observe that queue 314a corresponds to a first output destination port, queue 314b corresponds to a second output destination port, and so forth. Preferably, each queue 314 holds at least N cells, where N is the number of output destination ports. [0027] As cells are received, the queues 314a-314n are progressively filled.
  • the transposer circuit receives a serial stream of data packets from a queue 314 and transposes the data packets into a set of parallel data packets that are applied to output ports 318a-318n of the input layer circuit 114.
  • the input layer circuit 114 receives a serial stream of input data packets and produces a set of parallel output data packets.
  • Each parallel output data packet originates from a single queue, which is used to store data packets intended for a single destination.
  • the parallel output data packets are distributed across a parallel shared memory, which operates to balance the load of incoming data.
  • the parallel output data packets are distributed across the parallel shared memory in regions of the parallel shared memory intended for a single destination, as demonstrated below.
  • each queue 114 holds 48 data packets.
  • Full queues are serviced in a round robin manner, as tracked by the scheduler 320.
  • the scheduler 320 periodically services non-full queues to avoid unreasonable delays.
  • the data packets from the input layer 110 are delivered, in parallel, to the intermediate layer 120.
  • the intermediate layer 120 is made up of a number of circuits 124a-124n, referred to as intermediate layer circuits.
  • Figure 4 depicts the internal structure of an intermediate layer circuit 124.
  • the circuit 124 includes N input terminals 410a-410n coupled to a sorting circuit 412 that is configured to sort the incoming data cells by destination.
  • the sorting circuit 412 is similar to that of the input layer sorting circuit 312.
  • the intermediate layer circuit 124 also includes N buffers 414a-414n to store the incoming data cells.
  • Each buffer 414 has a corresponding output destination. That is, each buffer 414 stores data packets for a single output port. For example, cells destined for output port 1 are stored in buffer 414a, cells destined for output port 2 are stored in buffer 414b and cells destined for output port N are stored in buffer 414n.
  • the buffers 414a-414n are progressively filled as cells are sorted by the sorting circuit 412. However, the buffers 414a-414n differ from the input layer queues in a number of important ways.
  • a second distinguishing feature between the input layer and the intermediate layer is that the intermediate layer circuits do not have transposer circuits. Transposer circuits are not required since the buffers 414 are coupled to terminals that send cells to the output layer as needed.
  • a third distinguishing feature between the input layer and the intermediate layer is that the input layer circuits have a serial input node and N parallel output nodes, while the intermediate layer circuits have N parallel input nodes and N parallel output nodes.
  • One embodiment of the invention has 48 buffers 414. The scheduler 420 is used to release cells from the buffers 414 as they arrive. There is no communication between the individual intermediate layer circuits 124. Instead, each intermediate layer circuit 124 observes a strict timing protocol, as discussed below.
  • the switch 100 also includes an output layer 130. Like the other layers, the output layer 130 is made up of a number of circuits 134a-134n.
  • Figure 5 depicts the internal structure of an output layer circuit 134.
  • the circuit includes N input terminals 510a-510n coupled to a transposer circuit 512, which is configured to transpose into a serial data stream data cells received on the N input terminals. Since the output circuit 134 can receive N cells in parallel, the transposer circuit 512 transposes the parallel cells into an N-deep queue 514 so that the cells can be transferred to the destination output port 516 in a serial fashion. This is performed at the direction of a circuit scheduler 520.
  • the output port 132a actually comprises a number of sub- ports 132a-l to 132a-L.
  • Each of these sub-ports maybe capable of supporting an output data stream at a particular speed, e.g., OC-48.
  • a higher speed e.g. OC-96
  • two of the sub-ports can be combined.
  • several sub-ports can be combined to communicate with even higher speed devices, e.g., combining four sub- ports to achieve OC-192, or 16 sub-ports to achieve OC-768.
  • scheduler 520 includes a mapping table that maps a queue number to a sub-port number or numbers. While this example is described with reference to output layer chip 134a, each output layer chip can have independent mapping tables supporting this function.
  • Figure 6 shows an exemplary integrated circuit 610 for use in the switch
  • the chip 610 includes input layer logic 620, intermediate layer logic 630 and output layer logic 640.
  • the chip also includes a RAM 650 that is controlled by the enabled logic.
  • the RAM 650 is configured to form queues 314, 414 and 514, as shown above.
  • the circuit 610 may be used to implement an input layer by activating the input module logic 620, while deactivating the intermediate module logic 630 and the output module logic 640.
  • circuit 610 may be used to implement an intermediate layer by activating the intermediate module logic 630, while deactivating the input module logic 620 and the output module logic 640.
  • circuit 610 may be used to implement an output layer by activating the output module logic 640, while deactivating the input module logic 620 and the intermediate module logic 630.
  • this feature allows the invention to be implemented with a single chip architecture.
  • Figure 7 is a flowchart 700 showing operation of the switch 100 according to an embodiment of the invention. An explanation is provided in conjunction with Figure 8, which is a dataflow diagram showing operation of the switch according to an embodiment of the invention.
  • Figure 9 illustrates a data diagram showing data cells as sent to the intermediate layers for each master frame in a round robin technique, as discussed in connection with Figure 7.
  • the first processing step associated with Figure 7 is to receive cells at an input port (step 710).
  • a given port 112a receives cells Cl-CN that are destined for output port 132a.
  • the sorter circuit 312 decodes the cell header and determines that the cells are destined for output port 132a.
  • the sorter circuit 312 stores the cells Cl-CN in the input queue 314a, as shown in Figure 8.
  • the input circuit checks the queues to determine if any of them are full, and as an additional possibility, whether the data in any queue is older than a predetermined threshold. This operation may be performed by the scheduler 320.
  • the cells are transposed, by the transposer 316, into a set of parallel cells.
  • the transposer adds a color attribute to the header as described above.
  • the color attribute includes an input layer number and a sequence number.
  • the input layer number is input layer chip number (arbitrary but unique) in which the inbound information was received, and the sequence number is an incremental number that uniquely identifies the cells Cl-CN that are destined for the same output port.
  • the cells are then routed to the intermediate layer 120 in parallel. This is accomplished, as shown in Figure 8, where the cell Cl is sent to intermediate circuit 124a, the cell C2 is sent to intermediate circuit 124b and the cell CN is sent to intermediate circuit 124n.
  • step 720 the cells are received by the intermediate layer circuits 124a- 124n and each respective sorter circuit 412 decodes the cell headers and determines that the cells are destined for output port 132a.
  • the selector circuit 412 stores the respective cells in the input queue 314a. For example, selector circuit 412a receives and decodes cell Cl and places cell Cl in buffer 414a.
  • the cells are then buffered in parallel as shown in Figure 8 until they make their way to the output terminals 416 of the intermediate circuits. Observe that the cells are now distributed across a set of intermediate circuits 124. However, in each intermediate circuit, they are stored in a buffer 414 corresponding to the output port to which the cells are destined. In this example, the cells are stored in the first buffer of each intermediate circuit 124.
  • the cells Cl-CN are sent to the output layer. Specifically, they are sent to the output circuit 134a because the cells are destined for output port 132a.
  • the cells are received by the output layer circuit 134a. The cells are received in parallel and the transposer circuit 512 transposes the cells and stores them in the N-deep queue 514.
  • the cells Cl-CN are sent out the output port 132a and the switch function is complete.
  • Figure 9 is a data diagram showing data cells as sent to the intermediate layers for each master frame in a round robin technique. In such a technique, all the circuits receive a frame clock in addition to a system clock.
  • circuits are instructed at initialization as to which time slot to use since the assignment of the time slots is arbitrary and can even be assigned based on any identified fault conditions.
  • the round robin technique is an adequate arbitration technique although other techniques may also be used in accordance with the invention.
  • nine cells C1-C9 are processed.
  • input layer circuit 114a receives cells Cl, C2, and C3.
  • the header of each of these cells indicates that each cell should be routed to a first output port 132a.
  • the sorter 312a places the cells in a first queue 314a, which corresponds to the first output port 132a.
  • the input layer circuit 114b receives cells C4, C5, and C6.
  • each of these cells indicates that each cell should be routed to a second output port 132. Accordingly, the sorter 312b places the cells in the second queue 314b, which corresponds to the second output port 132b.
  • the cells C7, C8 and C9 are processed by input layer circuit 114c in an analogous manner.
  • FIG. 10 illustrates cells Cl, C2, and C3 being routed in parallel.
  • Figure 10 also illustrates the remaining cells C4-C9 being routed in parallel to the intermediate layer 120.
  • intermediate layer circuit 124a stores cell Cl destined for the first output port 132a in a first queue 414a.
  • Cell C4, destined for the second output port 132b is stored in the second queue 414b, while cell C7, destined for the third output port 132c is stored in the third queue 414c.
  • the cells stored by intermediate layer circuit 124a were received by three different input layer circuits and will be routed to three different output layer circuits.
  • this example helps illustrate the load balancing operation performed by the intermediate layer 120.
  • Each intermediate layer circuit delivers cells to the output layer 130 as the cells arrive.
  • Figure 10 illustrates that intermediate layer circuit 124a sends cell Cl to output layer circuit 134a, cell C4 is sent to output layer circuit 134b and cell C7 is sent to output layer circuit 134c.
  • intermediate layer circuit 124b sends cell C2 to output layer circuit 134a, cell C5 is sent to output layer circuit 134b and cell C8 is sent to output layer circuit 134c.
  • Each output layer circuit 134 receives cells in parallel and loads them into a queue 514, as shown in Figure 10. Queue 514a of output layer circuit 134a stores the cells Cl, C2 and C3 destined for output port 132a.
  • Queue 514b of output layer circuit 134b stores the cells C4, C5 and C6 destined for output port 132b. Finally, queue 514c of output layer circuit 134c stores the cells C7, C8 and C9 destined for output ports 132c.
  • Backpressure feedback relies upon downstream conditions (e.g., a blocked queue at an output port) to alter a data header of an upstream cell (e.g., the data header for a cell at the input layer 110).
  • the subsequent flow of the upstream cell is then processed in accordance with the downstream information. This technique is more fully appreciated in connection with Figure 12.
  • Figures 11 A-B demonstrate one way to accomplish this by using a synchronization pulse generated by a synchronization controller 800 and delivered to all of the chips comprising the input layer, intermediate layer and output layer. Since the delivery of the synchronization pulse may have some skew among the chips, a guard band is inserted between data envelopes, which represent the valid data.
  • Figure 1 IB demonstrates the data stream 810 with guard bands 812, 816 and 820, and data envelopes 814 and 818. The chips can then discard portions of the guard band while retaining the valid data and while remaining in synchronization with one another.
  • the guard band is about 1200 bytes representing about 5 microseconds.
  • Figure 12 illustrates the switch 100 of the invention in a slightly different form.
  • the input layer circuits 114a-l 14n of the input layer are distributed across a set of port cards 1100a- 1 lOOn.
  • the port cards 1 lOOa-l lOOn also include the output layer circuits 134a-134n.
  • a port card say port card 1100a, has an input layer circuit 114a and a corresponding output layer circuit 134a.
  • Electrical leads 1110 between an input layer circuit 114a and a corresponding output layer circuit 134a allow information to be conveniently passed between the output layer and the input layer.
  • Figure 12 also illustrates a set of prior art line cards 1102a-1102N connected to the port cards 1 lOOa-l lOOn.
  • Each line card 1102 includes an ingress queue 1104 and an egress queue 1106.
  • the circuit topology of Figure 12 allows for the output layer to relay information back to the input layer regarding conditions in the switch 100.
  • the output layer can count the depth of each of its queues and provide a signal to the input layer identifying which of its queues are above a threshold congestion position.
  • This signal can be generated by the scheduler 520 associated with each output layer circuit 134.
  • This back-pressure signal can be handled within the switch.
  • the signal can be received by the scheduler 320 of an input layer circuit 114.
  • the scheduler 320 instructs the sorter 312 to toggle a ready bit in the cell header. In this way, the ready bit can be used to convey inter-layer flow control information.
  • the back-presssure signal can be sent to one or more line cards 1102. In this embodiment, one or more line cards respond to the signal by only releasing high priority data destined for the output port experiencing congestion.
  • the output module 134a can signal all of the intermediate layer circuits 124a-124n to stop sending traffic to the output module 134a. This can be done with a one bit signal applied to the input layer circuit 114a on the same port card 1100a.
  • the input module circuit 114a responds to the one bit signal by de-asserting the ready bit in all cells departing for the intermediate layer circuits 124.
  • the intermediate layer can identify the congested output module by observing which input layer circuit 114a is de-asserting the ready bit. Based upon this information, the intermediate layer stops transmitting cells to the congested output module 134a.
  • the switch of the invention can also be configured to support various levels of quality of service (QoS). Quality of service is a noteworthy aspect of the invention since some forms of data (e.g., voice) frequently take priority over other forms of data (e.g., e-mail).
  • the cell header includes an attribute to assign the cell to a particular priority level. In such a case, a QoS attribute would be present in the header, as shown in Figure 2. If the priority is high, then the cell is processed through the switch 100 in an expeditious manner. One way this can be accomplished is by selecting queues 314 at the input layer 110 that meet a particular threshold.
  • the cells of the queue are released, even if the queue is not full. This expedites the processing of high priority cells. This may not be the most efficient way to handle the cells, but there is a trade-off between handling the high priority cells versus maximizing the performance of the switch. This is particularly true when a majority of the cells are low priority cells. In such a case, the lost performance may be negligible, while the enjoyment of the sound or video quality to the user is maintained.
  • the intermediate layer 120 can count the depth of each of its queues 414 and report to the output layer 130 which of its queues are above a threshold position.
  • the intermediate layer could also report quality of service parameters for the queued data. This can be a factor in generating a back-pressure signal that can be handled at other layers of the switch or sent to the line cards 1102.
  • the line card would respond to the signal by sending only high priority data through the switch destined for the output port experiencing congestion.
  • the architecture of the invention results in fault-tolerant operation.
  • the input layer 110 includes a set of input layer circuits 114
  • the intermediate layer 120 includes a set of intermediate layer circuits 124
  • the output layer 130 includes a set of output layer circuits 134.
  • This architectural redundancy results in distributed processing without a critical central failing point.
  • Fault tolerance is incorporated into the switch using a number of techniques.
  • the line cards can have primary and secondary contacts to the input layer.
  • line card 1102a can be configured to include contacts to input port card 1100a and an adjacent input port card (e.g., input port card 1100b, which is not shown for the sake of simplicity). If one set of contacts fail, the line card transfers data cells to the secondary contact. This feature provides fault tolerance at the input layer 110.
  • the input queues in the input circuits can be reduced (e.g. to N-l) and the failed intermediate layer circuit can thereby be avoided, as previously indicated. Since N is an arbitrary number, the reduction in the available intermediate layer circuits can be handled gracefully by reducing the input queue depth by one on-the-fly without an interruption in packet processing.
  • the output port can be flagged as disabled and the cells are routed to a different output port and the router adjusts its routing functions to accommodate the failure. In each of these cases, the performance is simply degraded and flagged, but does not result in overall switch failure.
  • the examples of the invention provided up to this point have been directed toward unicast packet communication.
  • a unicast packet has one source and one destination.
  • the switch 100 can also be used to implement multicast packet communication. In multicast packet communication, a packet has one source and multiple destinations.
  • Multicast packet communication can be implemented with cell header information.
  • the cell header can include a bit map specifying a set of destinations for a single cell.
  • each intermediate layer circuit 124a is preferably configured to read the cell header for multicast attributes, replicate cells and store them in multiple buffers 414. This operation can be implemented with the sorter 312 and scheduler 320. This causes the replicated cells to be sent to multiple output circuits 134, resulting in a multicast message.
  • each output layer circuit 134 is configured to make copies of multicast cells where required for multiple egress line cards. This operation can be implemented using the sorter 412 and scheduler 420.
  • the switch 100 is also configurable to support Time-Division Multiplexed (TDM) and Asynchronous Transfer Mode (ATM) or other protocol traffic. That is, the switch 100 can be configured to switch and route digital telephony signals, which cannot be delayed (i.e., they must be processed with a very high priority within the switch). For example, in one embodiment of the invention, a particular output layer circuit, say 134a, is devoted to carrying TDM traffic. This output layer circuit has a corresponding dedicated intermediate layer circuit, say 124a, to instantaneously route traffic to the output layer circuit. If the designated output layer circuit and intermediate layer circuits are underutilized, they can be used to carry best efforts traffic. Alternately, the intermediate layer 120 can be time-divided to carry TDM traffic.
  • TDM Time-Division Multiplexed
  • ATM Asynchronous Transfer Mode
  • the intermediate layer 120 operates without timing signals between the individual intermediate layer circuits 124. Instead, the intermediate layer circuits 124 are initialized to a synchronized state.
  • a training sequence is applied to each of the input layer circuits 114. The training sequence arrives within a window of time bounded by a link skew signal and a synchronization skew signal. The intermediate layer 120 then waits until the training sequence is received from the input layer circuits 114.
  • the bias points for the different buffers 414 are then noted and are subsequently utilized as cells are received in normal operation. The bias point data insures that the intermediate layer circuits operate in an identical state.
  • the parallel-shared memory output queue architecture of the invention has a number of benefits.
  • the invention has a large aggregate bandwidth, yet can be implemented with relatively low chip counts, which results in lower cost and power consumption.
  • the relatively simple design of the invention avoids a centralized arbiter mechanism or other type of complicated scheduler.
  • the input layer circuits may be implemented to include a number of queues 314 for each destination port. Each queue can then be assigned a different priority to receive traffic with a corresponding priority.
  • each output layer circuit can include a set of output layer queues associated with different channels and classes of services.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

A network switch includes an input layer (100) to receive a data stream (Fig. 6) with a set of cells. Each cell includes data and a header to designate a destination device. The input layer includes a set of input layer circuits (114). A selected input layer circuit of the set of input layer circuits receives the data stream. The selected input layer circuit includes a set of queues (314) corresponding to a set of destination devices.

Description

NETWORK SWITCH WITH A PARALLEL SHARED MEMORY AND METHOD OF OPERATION
BRIEF DESCRIPTION OF THE INVENTION
[0001] This invention relates generally to high bandwidth data communications through computer networks. More particularly, this invention relates to an output queued switch with a parallel shared memory.
BACKGROUND OF THE INVENTION
[0002] As computer network traffic increases, there are ongoing demands for improved network communication and switching. The advent of optical communication links has accelerated the need for ultra-fast network switching technologies.
[0003] There are many switching fabrics available in the market today that can provide switching bandwidth from 250 Gbps to 512 Gbps. Most of these switching fabrics are crossbar architectures that can scale up to a couple of Tbps. Unfortunately, it is difficult to obtain bandwidths higher than this in view of the complexity associated with a centralized arbitration and scheduling algorithm. Furthermore, implementations of conventional crossbar architectures require relatively large chip counts, resulting in relatively expensive systems. While packet switch techniques have been suggested, proposed designs have not been sufficiently robust to accommodate high-speed requirements.
[0004] In view of the foregoing, it would be highly desirable to provide an improved switching fabric. In particular, it would be highly desirable to provide a switching fabric that is readily scalable with relatively low chip counts to achieve high Tbps speeds. SUMMARY OF THE INVENTION [0005] The invention includes a network switch apparatus with an input layer to receive a data stream containing a set of cells. Each cell includes data and a header to designate a destination device. The input layer includes a set of input layer circuits. A selected input layer circuit of the set of input layer circuits receives the data stream. The selected input layer circuit includes a set of queues corresponding to a set of destination devices. The selected input layer circuit is configured to assign a selected cell from the data stream to a selected queue of the set of queues. The selected queue corresponds to a selected destination device specified by the header of the selected cell. An intermediate layer includes a set of intermediate layer circuits, each intermediate layer circuit has a set of buffers corresponding to the set of destination devices. A selected intermediate layer circuit of the set of intermediate layer circuits receives the selected cell and assigns the selected cell to a selected buffer corresponding to the selected destination device. An output layer includes a set of output layer circuits corresponding to the set of destination devices. A selected output layer circuit of the set of output layer circuits stores the selected cell prior to routing the selected cell to a selected output layer circuit output node.
[0006] The invention also includes a method of routing network traffic. The method includes receiving a data stream with a set of cells, each cell including data and a header to designate a destination device. A selected cell of the set of cells is assigned to a selected queue of a set of queues within an input layer circuit. The selected cell specifies a selected destination device. The selected queue corresponds to the selected destination device. The selected cell is routed to a selected intermediate layer circuit within a set of intermediate layer circuits. The selected intermediate layer circuit includes a set of buffers corresponding to a set of destination devices. The selected intermediate layer circuit assigns the selected cell to a selected buffer of the set of buffers. The selected buffer corresponds to the selected destination device. The selected cell is then sent to a selected output layer circuit within a set of output layer circuits. The selected output layer circuit corresponds to the selected destination device. The selected output layer circuit stores the selected cell prior to delivering the selected cell to an output node.
[0007] Advantages of the invention include high speed, versatility, high efficiency and a relatively low chip count. Additionally, the invention includes optional features, such as Quality of Service, fault tolerance and the ability to manage a number of different communication protocols, including Internet Protocol (IP), Time-Division Multiplexed (TDM), Asynchronous Transport Mode (ATM) and others.
BRIEF DESCRIPTION OF THE FIGURES [0008] The invention is described with reference to the Figures, in which:
[0009] FIGURE 1 illustrates a switch according to an embodiment of the invention.
[0010] FIGURE 2 illustrates an exemplary data cell that is processed in accordance with an embodiment of the invention. [0011] FIGURE 3 illustrates an input layer circuit according to an embodiment of the invention.
[0012] FIGURE 4 illustrates an intermediate layer circuit according to an embodiment of the invention.
[0013] FIGURE 5 illustrates an output layer circuit according to an embodiment of the invention.
[0014] FIGURE 6 illustrates an integrated circuit for use in the switch of Figure 1 according to an embodiment of the invention.
[0015] FIGURE 7 is a flowchart showing operation of the switch according to an embodiment of the invention. [0016] FIGURE 8 is a dataflow diagram showing the operation of an embodiment of the invention.
[0017] FIGURE 9 is a data diagram showing data cells as sent to the intermediate layers for each master frame according to an embodiment of the invention.
[0018] FIGURE 10 is a dataflow diagram showing the operation of an embodiment of the invention.
[0019] FIGURES 11A-11B illustrate an embodiment of the invention using a synchronization technique.
[0020] FIGURE 12 illustrates an embodiment of the invention wherein the input layer and output layer are distributed across a set of shared modules. [0021] Identical reference numbers in the figures refer to identical elements in the drawings. DETAILED DESCRIPTION OF THE INVENTION
[0022] The invention is described with reference to specific architectures and protocols. This description is for illustration and to otherwise demonstrate a mode of practicing the invention. This description is not meant to be limiting. For example, reference is made to Internet Protocol, but any packet protocol is applicable. Moreover, reference is made to chips that contain integrated circuits, while other hybrid or meta- circuits combining those described in chip form are also contemplated. The exemplary embodiment is provided for a switch where N is 48, but could be any other number consistent with switch technology (e.g., 64). [0023] Figure 1 depicts a network switch 100 according to an embodiment of the invention. The switch 100 includes an input layer 110 that is configured to receive data at the input ports 112a-l 12n. The data may be in the form of a cell, which is a fixed sized data segment. The data may also be in the form of a packet, which is a variable sized data segment containing many cells. The switch 100 is coupled to line cards in a router. In particular, the input ports 112a-l 12n are connected to one or more line cards. By way of example, the line cards receive packet data from a number of external sources. The input layer 110 is made up of a number of input layer circuits 114a-l 14n. The input layer circuits 114a-l 14n are each respectively coupled to the input ports 112a-l 12n.
[0024] Each input port 112 receives a serial stream of cells. Figure 2 shows an exemplary cell 210, which includes a header 220 and a payload 230. The header 220 includes attributes of the payload, including the destination port of the switch that the data is intended for and other information. In an exemplary embodiment, the attributes include packet identification, error correction coding, protocol type (i.e., IP, TDM, ATM), and the like. In one aspect of the invention, the attributes include a color, which represents an input layer number and a sequence number. The idea behind the color is to ensure proper alignment of the data cells as they propagate through the switch, as described below. In other aspects of the invention, the attributes include features, such as priority, Quality of Service (QoS), unicast and broadcast, error conditions, and the like. [0025] Figure 3 illustrates the internal structure of an exemplary input layer circuit 114. The input layer circuit 114 receives a data packet at its input port 112. A sorting circuit 312 processes the cell header of the data packet by decoding its destination. The sorting circuit 312 may be implemented using conventional techniques.
[0026] The input layer circuit 114 includes a set of queues 314a-314n. Each queue corresponds to an output destination port. Thus, if there are N output destination ports, N queues are required. Observe that queue 314a corresponds to a first output destination port, queue 314b corresponds to a second output destination port, and so forth. Preferably, each queue 314 holds at least N cells, where N is the number of output destination ports. [0027] As cells are received, the queues 314a-314n are progressively filled.
When a queue is full, the queue is transferred to a transposer circuit 316. The transposer circuit receives a serial stream of data packets from a queue 314 and transposes the data packets into a set of parallel data packets that are applied to output ports 318a-318n of the input layer circuit 114. Observe that the input layer circuit 114 receives a serial stream of input data packets and produces a set of parallel output data packets. Each parallel output data packet originates from a single queue, which is used to store data packets intended for a single destination. As discussed below, the parallel output data packets are distributed across a parallel shared memory, which operates to balance the load of incoming data. The parallel output data packets are distributed across the parallel shared memory in regions of the parallel shared memory intended for a single destination, as demonstrated below.
[0028] In one embodiment of the invention there are 48 separate queues 114, wherein each queue 114 holds 48 data packets. Full queues are serviced in a round robin manner, as tracked by the scheduler 320. Preferably, the scheduler 320 periodically services non-full queues to avoid unreasonable delays.
[0029] Returning to Figure 1, the data packets from the input layer 110 are delivered, in parallel, to the intermediate layer 120. Like the input layer 110, the intermediate layer 120 is made up of a number of circuits 124a-124n, referred to as intermediate layer circuits. [0030] Figure 4 depicts the internal structure of an intermediate layer circuit 124.
The circuit 124 includes N input terminals 410a-410n coupled to a sorting circuit 412 that is configured to sort the incoming data cells by destination. The sorting circuit 412 is similar to that of the input layer sorting circuit 312. The intermediate layer circuit 124 also includes N buffers 414a-414n to store the incoming data cells. Each buffer 414 has a corresponding output destination. That is, each buffer 414 stores data packets for a single output port. For example, cells destined for output port 1 are stored in buffer 414a, cells destined for output port 2 are stored in buffer 414b and cells destined for output port N are stored in buffer 414n. The buffers 414a-414n are progressively filled as cells are sorted by the sorting circuit 412. However, the buffers 414a-414n differ from the input layer queues in a number of important ways.
[0031] First, cells are released from the buffers 414a-414n on a continuous basis. That is, unlike the input layer queue which only releases cells after a queue is filled, the buffers 414 do not wait until they are filled before sending out cells. This ongoing release of cells is not arbitrated or otherwise subject to a centralized control mechanism.
[0032] A second distinguishing feature between the input layer and the intermediate layer is that the intermediate layer circuits do not have transposer circuits. Transposer circuits are not required since the buffers 414 are coupled to terminals that send cells to the output layer as needed.
[0033] A third distinguishing feature between the input layer and the intermediate layer is that the input layer circuits have a serial input node and N parallel output nodes, while the intermediate layer circuits have N parallel input nodes and N parallel output nodes. [0034] One embodiment of the invention has 48 buffers 414. The scheduler 420 is used to release cells from the buffers 414 as they arrive. There is no communication between the individual intermediate layer circuits 124. Instead, each intermediate layer circuit 124 observes a strict timing protocol, as discussed below.
[0035] Returning to Figure 1, the switch 100 also includes an output layer 130. Like the other layers, the output layer 130 is made up of a number of circuits 134a-134n. Figure 5 depicts the internal structure of an output layer circuit 134. The circuit includes N input terminals 510a-510n coupled to a transposer circuit 512, which is configured to transpose into a serial data stream data cells received on the N input terminals. Since the output circuit 134 can receive N cells in parallel, the transposer circuit 512 transposes the parallel cells into an N-deep queue 514 so that the cells can be transferred to the destination output port 516 in a serial fashion. This is performed at the direction of a circuit scheduler 520.
[0036] In some cases, the output port 132a actually comprises a number of sub- ports 132a-l to 132a-L. Each of these sub-ports maybe capable of supporting an output data stream at a particular speed, e.g., OC-48. To deliver data sufficient to meet a higher speed, e.g. OC-96, two of the sub-ports can be combined. Likewise, several sub-ports can be combined to communicate with even higher speed devices, e.g., combining four sub- ports to achieve OC-192, or 16 sub-ports to achieve OC-768. Variations on these speeds and combinations are anticipated, hi order to manage the data and the number of sub- ports, scheduler 520 includes a mapping table that maps a queue number to a sub-port number or numbers. While this example is described with reference to output layer chip 134a, each output layer chip can have independent mapping tables supporting this function. [0037] Figure 6 shows an exemplary integrated circuit 610 for use in the switch
100. Since the architectures of the input layer circuits, intermediate layer circuits and output layer circuits are similar, one aspect of the invention is that the same integrated circuit may be used in each of the layers. The control logic associated with the circuit for that particular layer is enabled and the control logic not associated with the circuit is disabled. The chip 610 includes input layer logic 620, intermediate layer logic 630 and output layer logic 640. The chip also includes a RAM 650 that is controlled by the enabled logic. The RAM 650 is configured to form queues 314, 414 and 514, as shown above. The circuit 610 may be used to implement an input layer by activating the input module logic 620, while deactivating the intermediate module logic 630 and the output module logic 640. Similarly, the circuit 610 may be used to implement an intermediate layer by activating the intermediate module logic 630, while deactivating the input module logic 620 and the output module logic 640. Finally, the circuit 610 may be used to implement an output layer by activating the output module logic 640, while deactivating the input module logic 620 and the intermediate module logic 630. Advantageously, this feature allows the invention to be implemented with a single chip architecture.
[0038] Figure 7 is a flowchart 700 showing operation of the switch 100 according to an embodiment of the invention. An explanation is provided in conjunction with Figure 8, which is a dataflow diagram showing operation of the switch according to an embodiment of the invention. Figure 9 illustrates a data diagram showing data cells as sent to the intermediate layers for each master frame in a round robin technique, as discussed in connection with Figure 7.
[0039] The first processing step associated with Figure 7 is to receive cells at an input port (step 710). For example, a given port 112a receives cells Cl-CN that are destined for output port 132a. In step 712, the sorter circuit 312 decodes the cell header and determines that the cells are destined for output port 132a. The sorter circuit 312 stores the cells Cl-CN in the input queue 314a, as shown in Figure 8. In step 716, the input circuit checks the queues to determine if any of them are full, and as an additional possibility, whether the data in any queue is older than a predetermined threshold. This operation may be performed by the scheduler 320. In the case of a non-full queue that is to be serviced, dummy cells are inserted to fill the queue. When the input circuit determines that the queue 314a is full, processing proceeds to step 718. At step 718, the cells are transposed, by the transposer 316, into a set of parallel cells. In one aspect of the invention, the transposer adds a color attribute to the header as described above. The color attribute includes an input layer number and a sequence number. The input layer number is input layer chip number (arbitrary but unique) in which the inbound information was received, and the sequence number is an incremental number that uniquely identifies the cells Cl-CN that are destined for the same output port. In any event, the cells are then routed to the intermediate layer 120 in parallel. This is accomplished, as shown in Figure 8, where the cell Cl is sent to intermediate circuit 124a, the cell C2 is sent to intermediate circuit 124b and the cell CN is sent to intermediate circuit 124n.
[0040] In step 720, the cells are received by the intermediate layer circuits 124a- 124n and each respective sorter circuit 412 decodes the cell headers and determines that the cells are destined for output port 132a. The selector circuit 412 stores the respective cells in the input queue 314a. For example, selector circuit 412a receives and decodes cell Cl and places cell Cl in buffer 414a. The cells are then buffered in parallel as shown in Figure 8 until they make their way to the output terminals 416 of the intermediate circuits. Observe that the cells are now distributed across a set of intermediate circuits 124. However, in each intermediate circuit, they are stored in a buffer 414 corresponding to the output port to which the cells are destined. In this example, the cells are stored in the first buffer of each intermediate circuit 124.
[0041] In step 722, the cells Cl-CN are sent to the output layer. Specifically, they are sent to the output circuit 134a because the cells are destined for output port 132a. In step 724, the cells are received by the output layer circuit 134a. The cells are received in parallel and the transposer circuit 512 transposes the cells and stores them in the N-deep queue 514. In step 726, the cells Cl-CN are sent out the output port 132a and the switch function is complete. [0042] This procedure continues for the other cells as shown in Figure 9, which is a data diagram showing data cells as sent to the intermediate layers for each master frame in a round robin technique. In such a technique, all the circuits receive a frame clock in addition to a system clock. Additionally, the circuits are instructed at initialization as to which time slot to use since the assignment of the time slots is arbitrary and can even be assigned based on any identified fault conditions. The round robin technique is an adequate arbitration technique although other techniques may also be used in accordance with the invention.
[0043] The operation of the invention is more fully appreciated with an additional example. Figure 10 illustrates a switch 100 with an input layer 110, an intermediate layer 120, and an output layer 130, where each layer 110, 120, and 130 has N=3 circuits. In this example, nine cells (C1-C9) are processed. Observe in Figure 10 that input layer circuit 114a receives cells Cl, C2, and C3. The header of each of these cells indicates that each cell should be routed to a first output port 132a. Accordingly, the sorter 312a places the cells in a first queue 314a, which corresponds to the first output port 132a. In a similar manner, the input layer circuit 114b receives cells C4, C5, and C6. The header of each of these cells indicates that each cell should be routed to a second output port 132. Accordingly, the sorter 312b places the cells in the second queue 314b, which corresponds to the second output port 132b. The cells C7, C8 and C9 are processed by input layer circuit 114c in an analogous manner.
[0044] Once a queue 314 of the input layer circuit is full, in this example when three cells arrive, the cells are distributed in parallel to the intermediate layer, as discussed above in connection with the transposer 316. Figure 10 illustrates cells Cl, C2, and C3 being routed in parallel. Figure 10 also illustrates the remaining cells C4-C9 being routed in parallel to the intermediate layer 120. This results in the intermediate layer 120 storing cells destined for each output port. For example, intermediate layer circuit 124a stores cell Cl destined for the first output port 132a in a first queue 414a. Cell C4, destined for the second output port 132b is stored in the second queue 414b, while cell C7, destined for the third output port 132c is stored in the third queue 414c. The cells stored by intermediate layer circuit 124a were received by three different input layer circuits and will be routed to three different output layer circuits. Thus, this example helps illustrate the load balancing operation performed by the intermediate layer 120.
[0045] Each intermediate layer circuit delivers cells to the output layer 130 as the cells arrive. Thus, Figure 10 illustrates that intermediate layer circuit 124a sends cell Cl to output layer circuit 134a, cell C4 is sent to output layer circuit 134b and cell C7 is sent to output layer circuit 134c. Similarly, intermediate layer circuit 124b sends cell C2 to output layer circuit 134a, cell C5 is sent to output layer circuit 134b and cell C8 is sent to output layer circuit 134c. Each output layer circuit 134 receives cells in parallel and loads them into a queue 514, as shown in Figure 10. Queue 514a of output layer circuit 134a stores the cells Cl, C2 and C3 destined for output port 132a. Queue 514b of output layer circuit 134b stores the cells C4, C5 and C6 destined for output port 132b. Finally, queue 514c of output layer circuit 134c stores the cells C7, C8 and C9 destined for output ports 132c.
[0046] The operation of the invention has now been fully described; attention presently turns to a discussion of various features and benefits associated with the invention. The invention achieves flow control through back-pressure feedback. Backpressure feedback relies upon downstream conditions (e.g., a blocked queue at an output port) to alter a data header of an upstream cell (e.g., the data header for a cell at the input layer 110). The subsequent flow of the upstream cell is then processed in accordance with the downstream information. This technique is more fully appreciated in connection with Figure 12.
[0047] In some cases, it is desirable to synchronize the data among the input layer, intermediate layer and output layer. Figures 11 A-B demonstrate one way to accomplish this by using a synchronization pulse generated by a synchronization controller 800 and delivered to all of the chips comprising the input layer, intermediate layer and output layer. Since the delivery of the synchronization pulse may have some skew among the chips, a guard band is inserted between data envelopes, which represent the valid data. Figure 1 IB demonstrates the data stream 810 with guard bands 812, 816 and 820, and data envelopes 814 and 818. The chips can then discard portions of the guard band while retaining the valid data and while remaining in synchronization with one another. In an exemplary aspect of the invention, the guard band is about 1200 bytes representing about 5 microseconds. [0048] Figure 12 illustrates the switch 100 of the invention in a slightly different form. In Figure 12, the input layer circuits 114a-l 14n of the input layer are distributed across a set of port cards 1100a- 1 lOOn. The port cards 1 lOOa-l lOOn also include the output layer circuits 134a-134n. In this configuration, a port card, say port card 1100a, has an input layer circuit 114a and a corresponding output layer circuit 134a. Electrical leads 1110 between an input layer circuit 114a and a corresponding output layer circuit 134a allow information to be conveniently passed between the output layer and the input layer. [0049] Figure 12 also illustrates a set of prior art line cards 1102a-1102N connected to the port cards 1 lOOa-l lOOn. Each line card 1102 includes an ingress queue 1104 and an egress queue 1106.
[0050] The circuit topology of Figure 12 allows for the output layer to relay information back to the input layer regarding conditions in the switch 100. For example, the output layer can count the depth of each of its queues and provide a signal to the input layer identifying which of its queues are above a threshold congestion position. This signal can be generated by the scheduler 520 associated with each output layer circuit 134. This back-pressure signal can be handled within the switch. For example, the signal can be received by the scheduler 320 of an input layer circuit 114. In this example, the scheduler 320 instructs the sorter 312 to toggle a ready bit in the cell header. In this way, the ready bit can be used to convey inter-layer flow control information. Alternately, the back-presssure signal can be sent to one or more line cards 1102. In this embodiment, one or more line cards respond to the signal by only releasing high priority data destined for the output port experiencing congestion.
[0051] There are many variations on the foregoing technique. For example, when the free cell pointer of output module 134a is running low, the output module 134a can signal all of the intermediate layer circuits 124a-124n to stop sending traffic to the output module 134a. This can be done with a one bit signal applied to the input layer circuit 114a on the same port card 1100a. The input module circuit 114a responds to the one bit signal by de-asserting the ready bit in all cells departing for the intermediate layer circuits 124. The intermediate layer can identify the congested output module by observing which input layer circuit 114a is de-asserting the ready bit. Based upon this information, the intermediate layer stops transmitting cells to the congested output module 134a. [0052] The switch of the invention can also be configured to support various levels of quality of service (QoS). Quality of service is a noteworthy aspect of the invention since some forms of data (e.g., voice) frequently take priority over other forms of data (e.g., e-mail). In one embodiment of the invention, the cell header includes an attribute to assign the cell to a particular priority level. In such a case, a QoS attribute would be present in the header, as shown in Figure 2. If the priority is high, then the cell is processed through the switch 100 in an expeditious manner. One way this can be accomplished is by selecting queues 314 at the input layer 110 that meet a particular threshold. For example, suppose a queue has a number j of high priority cells, in view of this number of high priority cells, the cells of the queue are released, even if the queue is not full. This expedites the processing of high priority cells. This may not be the most efficient way to handle the cells, but there is a trade-off between handling the high priority cells versus maximizing the performance of the switch. This is particularly true when a majority of the cells are low priority cells. In such a case, the lost performance may be negligible, while the enjoyment of the sound or video quality to the user is maintained.
[0053] Other techniques may also be used to implement quality of service provisions. For example, the intermediate layer 120 can count the depth of each of its queues 414 and report to the output layer 130 which of its queues are above a threshold position. The intermediate layer could also report quality of service parameters for the queued data. This can be a factor in generating a back-pressure signal that can be handled at other layers of the switch or sent to the line cards 1102. The line card would respond to the signal by sending only high priority data through the switch destined for the output port experiencing congestion. [0054] The architecture of the invention results in fault-tolerant operation.
Observe that the input layer 110 includes a set of input layer circuits 114, the intermediate layer 120 includes a set of intermediate layer circuits 124, and the output layer 130 includes a set of output layer circuits 134. This architectural redundancy results in distributed processing without a critical central failing point. In the case of the failure of a component of the invention, there is a degradation in performance, but not a catastrophic failure. For example, in the case of the failure of an intermediate layer circuit, there are still N-l intermediate layer circuits available to process traffic. [0055] Fault tolerance is incorporated into the switch using a number of techniques. For example, the line cards can have primary and secondary contacts to the input layer. Referring to Figure 12, line card 1102a can be configured to include contacts to input port card 1100a and an adjacent input port card (e.g., input port card 1100b, which is not shown for the sake of simplicity). If one set of contacts fail, the line card transfers data cells to the secondary contact. This feature provides fault tolerance at the input layer 110. [0056] When the failure is in the intermediate layer 120, the input queues in the input circuits can be reduced (e.g. to N-l) and the failed intermediate layer circuit can thereby be avoided, as previously indicated. Since N is an arbitrary number, the reduction in the available intermediate layer circuits can be handled gracefully by reducing the input queue depth by one on-the-fly without an interruption in packet processing. Finally, when the failure is in the output circuit, the output port can be flagged as disabled and the cells are routed to a different output port and the router adjusts its routing functions to accommodate the failure. In each of these cases, the performance is simply degraded and flagged, but does not result in overall switch failure. [0057] The examples of the invention provided up to this point have been directed toward unicast packet communication. A unicast packet has one source and one destination. The switch 100 can also be used to implement multicast packet communication. In multicast packet communication, a packet has one source and multiple destinations. [0058] Multicast packet communication can be implemented with cell header information. For example, the cell header can include a bit map specifying a set of destinations for a single cell. Preferably, the input layer circuits 114 identify whether an incoming cell is a multicast cell. The input layer circuits 114 would typically assign a relatively low priority to multicast cells. At the intermediate layer 120, each intermediate layer circuit 124a is preferably configured to read the cell header for multicast attributes, replicate cells and store them in multiple buffers 414. This operation can be implemented with the sorter 312 and scheduler 320. This causes the replicated cells to be sent to multiple output circuits 134, resulting in a multicast message. In one embodiment of the invention, each output layer circuit 134 is configured to make copies of multicast cells where required for multiple egress line cards. This operation can be implemented using the sorter 412 and scheduler 420.
[0059] The switch 100 is also configurable to support Time-Division Multiplexed (TDM) and Asynchronous Transfer Mode (ATM) or other protocol traffic. That is, the switch 100 can be configured to switch and route digital telephony signals, which cannot be delayed (i.e., they must be processed with a very high priority within the switch). For example, in one embodiment of the invention, a particular output layer circuit, say 134a, is devoted to carrying TDM traffic. This output layer circuit has a corresponding dedicated intermediate layer circuit, say 124a, to instantaneously route traffic to the output layer circuit. If the designated output layer circuit and intermediate layer circuits are underutilized, they can be used to carry best efforts traffic. Alternately, the intermediate layer 120 can be time-divided to carry TDM traffic.
[0060] In the exemplary embodiment, the intermediate layer 120 operates without timing signals between the individual intermediate layer circuits 124. Instead, the intermediate layer circuits 124 are initialized to a synchronized state. In particular, a training sequence is applied to each of the input layer circuits 114. The training sequence arrives within a window of time bounded by a link skew signal and a synchronization skew signal. The intermediate layer 120 then waits until the training sequence is received from the input layer circuits 114. The bias points for the different buffers 414 are then noted and are subsequently utilized as cells are received in normal operation. The bias point data insures that the intermediate layer circuits operate in an identical state.
[0061] The parallel-shared memory output queue architecture of the invention has a number of benefits. For example, the invention has a large aggregate bandwidth, yet can be implemented with relatively low chip counts, which results in lower cost and power consumption. The relatively simple design of the invention avoids a centralized arbiter mechanism or other type of complicated scheduler.
[0062] Those skilled in the art will recognize any number of variations on the base architecture described in this document. For example, the input layer circuits may be implemented to include a number of queues 314 for each destination port. Each queue can then be assigned a different priority to receive traffic with a corresponding priority. Similarly, each output layer circuit can include a set of output layer queues associated with different channels and classes of services.
[0063] The invention has been described including the best mode known of practicing the invention. Those skilled in the art will recognize that modifications can be make to the invention while remaining within the claims defined below.

Claims

In the claims:
1. A network switch, comprising: an input layer to receive a data stream including a set of cells, each cell including data and a header to designate a destination device, the input layer including a set of input layer circuits, a selected input layer circuit of the set of input layer circuits receiving the data stream, the selected input layer circuit including a set of queues corresponding to a set of destination devices, the selected input layer circuit being configured to assign a selected cell from the data stream to a selected queue of the set of queues, the selected queue corresponding to a selected destination device specified by the header of the selected cell; an intermediate layer including a set of intermediate layer circuits, each intermediate layer circuit including a set of buffers corresponding to the set of destination devices, a selected intermediate layer circuit of the set of intermediate layer circuits receiving the selected cell and assigning the selected cell to a selected buffer corresponding to the selected destination device; and an output layer including a set of output layer circuits corresponding to the set of destination devices, a selected output layer circuit of the set of output layer circuits storing the selected cell prior to routing the selected cell to a selected output layer circuit output node.
2. The network switch of claim 1 , wherein each input layer circuit includes: a sorting circuit to route incoming cells to one of N destinations, each destination of the N destinations having a corresponding queue within the input layer circuit; and a transposer circuit coupled to the N queues and the N output terminals, the transposer circuit being configured to transpose cells stored in the N queues for delivery to the N output terminals.
3. The network switch of claim 1, wherein each intermediate layer circuit includes: a sorting circuit to route incoming cells to the N buffers, the N buffers thereafter delivering the incoming cells to the N intermediate layer circuit output terminals.
4. The network switch of claim 1, wherein each output layer circuit includes: a transposer circuit coupled to the N output layer circuit input terminals, the transposer circuit being configured to transpose data cells received at the N output layer circuit input terminals; and an output layer circuit queue coupled to the transposer circuit and the output layer circuit output port.
5. The network switch of claim 1 , wherein: the output layer includes an output layer circuit configured to generate a back- pressure signal representative of the status of the output layer circuit; and the input layer includes an input layer circuit configured to be responsive to the back-pressure signal by selectively inserting flow control information into a data cell.
6. The network switch of claim 1, further comprising: a synchronization controller coupled to the input layer, intermediate layer and output layer; wherein said data stream includes a cell with a data envelope and a guard band; and wherein the intermediate layer and output layer are configured to selectively discard guard band bits of said guard band and to decode the data envelope.
7. The network switch of claim 1 , wherein: the cell header includes a color attribute and the output layer uses the color attribute to align data cells.
8. The network switch of claim 1 , wherein: the intermediate layer is configured to identify a multicast demand signal in a cell and thereafter replicate the cell to produce a multicast signal.
9. The network switch of claim 1, further comprising: a line card connected to the selected input layer circuit, wherem the selected output layer circuit includes circuitry to generate a flow control warning signal for application to the line card.
10. The network switch of claim 1 wherein the input layer includes circuitry to identify cell priority values within cell headers and the grant such cells priority.
11. The network switch of claim 1 wherein the input layer is operative in a normal mode to deliver data cells to each of the intermediate layer circuits and is alternately operative in a fault mode to deliver cells to a subset of the intermediate layer circuits that remain operative.
12. The network switch of claim 1 wherein the input layer, the intermediate layer, and the output layer are formed on a single semiconductor substrate, the network switch being configurable to enable a first region of the single semiconductor substrate selected from the input layer, the intermediate layer and the output layer, while disabling two regions of the single semiconductor substrate selected from the input layer, the intermediate layer and the output layer.
13. An integrated circuit for use in a network switch, comprising: an input port for receiving inbound data from one or more input terminals; an output port for transmitting outbound data to one or more output terminals; a memory coupled to the input port and the output port, and configured to store inbound data received at the input port; and a module logic circuit coupled to the memory and being enabled to cause the integrated circuit to function as one of an input layer chip, an intermediate layer chip and an output layer chip.
14. The integrated circuit of claim 13, further comprising: a scheduler coupled to the module logic and configured to selectively store data in the memory based at least in part on the integrated circuit function; and a transposer coupled to the memory and selectively configured to transpose the outbound data when the integrated circuit function is an input layer chip and to transpose the inbound data when the integrated circuit function is an output payer chip.
15. The integrated circuit of claim 14, further comprising: a sorter coupled to the memory and selectively configured to sort the inbound data when the integrated circuit function is an input layer chip and to sort the inbound data when the integrated circuit function is an intermediate layer chip.
16. The integrated circuit of claim 13 , wherein: the memory is a buffer memory that includes a plurality of queues; when the integrated circuit function is an input layer chip, the memory includes N queues corresponding to N output terminals; when the integrated circuit function is an intermediate layer chip, the memory includes N buffers positioned between N input terminals and N output terminals; and when the integrated circuit function is an output layer chip, the memory includes an N-deep queue corresponding to N input terminals.
17. The integrated circuit of claim 16, wherein: each input layer circuit includes:
(a) a sorting circuit to route incoming cells to one of N destinations, each destination of the N destinations having a corresponding queue within the input layer circuit; and (b) a transposer circuit coupled to the N queues and the N output terminals, the transposer circuit being configured to transpose cells stored in the N queues for delivery to the N output terminals; each intermediate layer circuit includes:
(a) a sorting circuit to route incoming cells to the N buffers, the N buffers thereafter delivering the incoming cells to the N intermediate layer circuit output terminals; and each output layer circuit includes:
(a) a transposer circuit coupled to the N output layer circuit input terminals, the transposer circuit being configured to transpose data cells received at the N output layer circuit input terminals; and
(b) an output layer circuit queue coupled to the transposer circuit and the output layer circuit output port.
18. A method of routing network traffic comprising the steps of: receiving a data stream with a set of cells, each cell including data and a header to designate a destination device; assigning a selected cell of the set of cells to a selected queue of a set of queues within an input layer circuit, the selected cell specifying a selected destination device, the selected queue corresponding to the selected destination device; routing the selected cell to a selected intermediate layer circuit within a set of intermediate layer circuits, the selected intermediate layer circuit including a set of buffers corresponding to a set of destination devices, the selected intermediate layer circuit assigning the selected cell to a selected buffer of the set of buffers, the selected buffer corresponding to the selected destination device; and sending the selected cell to a selected output layer circuit within a set of output layer circuits, the selected output layer circuit corresponding the selected destination device, the selected output layer circuit storing the selected cell prior to delivering the selected cell to an output node.
19. The method of claim 18, further comprising the step of: transposing the data in a queue of the input layer before routing the data to the intermediate layer.
20. The method of claim 18, wherein the routing step is initiated when the selected queue reaches a specified cell volume level.
21. The method of claim 18, further comprising the step of: duplicating the selected cell when the header specifies that the selected cell is a multicast cell.
22. The method of claim 18, wherein the routing step includes routing the selected cell to a dedicated high priority traffic intermediate layer circuit when the header specifies that the selected cell has a high priority.
23. The method of claim 18, further comprising the steps of: generating a flow control signal at the selected output layer circuit; forming a flow control header signal within a header of an incoming data cell in response to the flow control signal; and processing the incoming data cell through the selected intermediate layer circuit and the selected output layer circuit in accordance with the flow control header signal.
24. The method of claim 18, wherein the routing step includes the step of routing the selected cell to a selected intermediate layer circuit within a subset of intermediate layer circuits that remain operative after one or more intermediate layer circuits within an original set of intermediate layer circuits become inoperative.
25. The method of claim 18, wherein the sending includes sending the selected cell to a selected output layer circuit within a subset of output layer circuits that remain operative after one or more output layer circuits within an original set of output layer circuits become inoperative.
26. The method of claim 18, further comprising the steps of: delivering a synchronization signal to the input layer, intermediate layer and output layer; and selectively discarding guard band bits and decoding the data envelope.
27. The method of claim 18, further comprising the step of: inserting a color attribute into each data cell in the input layer; and aligning the data cells in the output layer based at least in part on color attributes.
PCT/US2001/044499 2000-11-29 2001-11-28 Network switch with a parallel shared memory and method of operation WO2002045349A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2002219908A AU2002219908A1 (en) 2000-11-29 2001-11-28 Network switch with a parallel shared memory and method of operation

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
US25380100P 2000-11-29 2000-11-29
US60/253,801 2000-11-29
US30277501P 2001-07-03 2001-07-03
US60/302,775 2001-07-03
US09/939,464 US7072345B2 (en) 2000-11-29 2001-08-24 Programmable integrated circuit for use in a network switch
US09/939,454 US7420969B2 (en) 2000-11-29 2001-08-24 Network switch with a parallel shared memory
US09/940,148 2001-08-24
US09/939,454 2001-08-24
US09/939,464 2001-08-24
US09/940,148 US7046681B2 (en) 2000-11-29 2001-08-24 Network switch for routing network traffic

Publications (2)

Publication Number Publication Date
WO2002045349A1 true WO2002045349A1 (en) 2002-06-06
WO2002045349A9 WO2002045349A9 (en) 2003-04-24

Family

ID=27540340

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2001/044499 WO2002045349A1 (en) 2000-11-29 2001-11-28 Network switch with a parallel shared memory and method of operation

Country Status (2)

Country Link
AU (1) AU2002219908A1 (en)
WO (1) WO2002045349A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102752196A (en) * 2012-06-19 2012-10-24 中兴通讯股份有限公司 Statistical information transmitting and counting method and device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6067654A (en) * 1990-08-17 2000-05-23 Hitachi, Ltd. ATM switch and control method thereof
US6263053B1 (en) * 1998-11-12 2001-07-17 Ericsson Inc. System and method for processing telephone calls
US6331981B1 (en) * 1997-12-23 2001-12-18 Siemens Aktiengesellschaft Method and network component for switching low bit rate connections between input modules and output modules in a communication network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6067654A (en) * 1990-08-17 2000-05-23 Hitachi, Ltd. ATM switch and control method thereof
US6331981B1 (en) * 1997-12-23 2001-12-18 Siemens Aktiengesellschaft Method and network component for switching low bit rate connections between input modules and output modules in a communication network
US6263053B1 (en) * 1998-11-12 2001-07-17 Ericsson Inc. System and method for processing telephone calls

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102752196A (en) * 2012-06-19 2012-10-24 中兴通讯股份有限公司 Statistical information transmitting and counting method and device

Also Published As

Publication number Publication date
WO2002045349A9 (en) 2003-04-24
AU2002219908A1 (en) 2002-06-11

Similar Documents

Publication Publication Date Title
US7835334B2 (en) Output queued switch with a parallel shared memory, and method of operating same
US7046681B2 (en) Network switch for routing network traffic
US7352694B1 (en) System and method for tolerating data link faults in a packet communications switch fabric
US7221652B1 (en) System and method for tolerating data link faults in communications with a switch fabric
US8190770B2 (en) Segmentation and reassembly of data frames
US6553030B2 (en) Technique for forwarding multi-cast data packets
US7161906B2 (en) Three-stage switch fabric with input device features
US20050207436A1 (en) Switching device based on aggregation of packets
US20020085567A1 (en) Metro switch and method for transporting data configured according to multiple different formats
US20020085565A1 (en) Technique for time division multiplex forwarding of data streams
US20030161303A1 (en) Traffic switching using multi-dimensional packet classification
EP1269697B1 (en) Segmentation and reassembly of data frames
US20020085548A1 (en) Quality of service technique for a data communication network
US7072345B2 (en) Programmable integrated circuit for use in a network switch
US5949778A (en) High performance fault tolerant switching system for multimedia satellite and terrestrial communications switches
US7362754B2 (en) Apparatus and method for maintaining packet sequencing in a parallel router
US20020085507A1 (en) Address learning technique in a data communication network
US20020131412A1 (en) Switch fabric with efficient spatial multicast
US7209453B1 (en) System and method for tolerating control link faults in a packet communications switch fabric
US20020085545A1 (en) Non-blocking virtual switch architecture
US6452926B1 (en) Reliable and robust atm-switch
US7724738B2 (en) Packet-level multicasting
WO2002045349A1 (en) Network switch with a parallel shared memory and method of operation

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PH PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
COP Corrected version of pamphlet

Free format text: PAGES 1/11-11/11, DRAWINGS, REPLACED BY NEW PAGES 1/11-11/11

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP