US7477652B2 - Linking cross bar controller - Google Patents

Linking cross bar controller Download PDF

Info

Publication number
US7477652B2
US7477652B2 US11/152,901 US15290105A US7477652B2 US 7477652 B2 US7477652 B2 US 7477652B2 US 15290105 A US15290105 A US 15290105A US 7477652 B2 US7477652 B2 US 7477652B2
Authority
US
United States
Prior art keywords
message
port
crossbar
switch
respective device
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Lifetime, expires
Application number
US11/152,901
Other versions
US20050232288A1 (en
Inventor
Eitan Medina
David Shemla
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Marvell Israel MISL Ltd
Original Assignee
Marvell Israel MISL Ltd
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
Application filed by Marvell Israel MISL Ltd filed Critical Marvell Israel MISL Ltd
Priority to US11/152,901 priority Critical patent/US7477652B2/en
Publication of US20050232288A1 publication Critical patent/US20050232288A1/en
Priority to US12/348,457 priority patent/US7738474B2/en
Application granted granted Critical
Publication of US7477652B2 publication Critical patent/US7477652B2/en
Priority to US12/815,928 priority patent/US8005104B2/en
Adjusted expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • 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/101Packet switching elements characterised by the switching fabric construction using crossbar or matrix
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3018Input queuing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3027Output queuing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/50Overload detection or protection within a single switching element
    • H04L49/501Overload detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/50Overload detection or protection within a single switching element
    • H04L49/505Corrective measures

Definitions

  • the present invention relates to network switches generally and to cross-bars in particular.
  • a network switch creates a network among a plurality of end nodes, such as workstations, and other network switches connected thereto. Each end node is connected to one port of the network. The ports also serve to connect network switches together.
  • Each end node sends packets of data to the network switch which the switch then routes either to another of the end nodes connected thereto or to a network switch to which the destination end node is connected. In the latter case, the receiving network switch routes the packet to the destination end node.
  • Each network switch has to temporarily store the packets of data which it receives from the units (end node or network switch) connected to it while the switch determines how, when and through which port to retransmit the packets.
  • Each packet can be transmitted to only one destination address (a “unicast” packet) or to more than one unit (a “multicast” or “broadcast” packet).
  • the switch typically stores the packet only once and transmits multiple copies of the packet to some (multicast) or all (broadcast) of its ports. Once the packet has been transmitted to all of its destinations, it can be removed from the memory or written over.
  • Switching Ethernet Controllers are network switches that implement the Ethernet switching protocol. According to the protocol, the Ethernet network (cabling and Ethernet ports) operates at 10 Megabits per second. Switches which operate at the desired speed of 10 Megabits per second are known as providing “full-wire” throughput.
  • each SEC in order to optimize through-put time, communication between SECs attempts to utilize the bus as little as possible so that the bus will be available as soon as a SEC wants to utilize it. Therefore, each SEC includes a write-only bus communication unit which transfers the packets out of the SEC by only writing to the bus. Thus, packets enter each SEC by having been written therein from other SECs and not by reading them in, since read operations utilize the bus for significant amounts of time compared to write operations. Having the bus available generally whenever a SEC needs it helps to provide the full-wire throughput.
  • a crossbar for communicating with at least one device comprises N ports.
  • Each one of the N ports comprises a link logic unit to receive messages and data from a respective device, N- 1 output buffers each corresponding to another one of the N- 1 ports and a port arbiter to select one of the N- 1 output buffers to output data to the respective device.
  • the stored data is transferred to the corresponding output buffer of a selected one of the other one of the N ports.
  • the link logic unit determines a type of message from the respective device. If the type of message is a local link message, a port function is performed and the message is not transferred. If the type of message is a switch link message, the message and the data are transferred.
  • the device comprises one of a switch and a second crossbar.
  • the N 1 output buffers comprises a device table register to store a device number if the device comprises the switch.
  • the N 1 output buffers comprises a device table register to store device numbers of devices connected to the second crossbar.
  • the device if the device is unable to receive data, the device provides a message to the link logic unit.
  • the link logic unit signals the arbiter to inhibit communication to the device. If an nth one of the of the N 1 output buffers is at least a predetermined capacity, a signal is sent to the nth one of the port arbiter of the other one of the N 1 ports to inhibit further transmission.
  • FIG. 1 is a block diagram illustration of a network of switching communication controllers, constructed and operative in accordance with a preferred embodiment of the present invention
  • FIG. 2 is a schematic illustration of a switching communication cross bar controller forming part of the network of FIG. 1 ;
  • FIG. 3 is a schematic illustration of a portion of the cross bar of FIG. 2 and an Ethernet switching unit forming part of the switching network of FIG. 1 ;
  • FIG. 4 is a schematic illustration of the switching unit and link connection forming part of the switching network of FIG. 1 ;
  • FIG. 5A is a flow chart illustration of the networking communication in accordance with a preferred embodiment of the present invention.
  • FIG. 5B is a illustration of a local link communication in accordance with switching Ethernet controller network of FIG. 1 ;
  • FIG. 6A is a schematic diagram of an interface bus
  • FIG. 6B is a block illustration of a message architecture used in the interface bus of FIG. 6A ;
  • FIG. 6C is a timing diagram illustration of the activity of the bus during the operations of FIG. 6A ;
  • FIG. 7 is a block diagram illustration of the logical elements of a link message used in the present invention.
  • FIGS. 1 , 2 , 3 and 4 illustrate, in general terms, a cross bar 10 of the present invention and its connection within a network
  • FIG. 1 illustrates a general overview of one or more cross bars 10 connected via one or more individual buses 14 to one or more Ethernet switches 12 . Since each Ethernet switch 12 is connected to the cross-bar 10 via its own individual bus 14 , the cross bar 10 typically provides linking operations, transferring data from switch to switch. The one or more Ethernet switches 12 are typically connected to one or more devices or work stations, not shown in the figures.
  • the network switches 12 interconnect to create a large network or to enlarge an existing network.
  • a plurality of network switches 12 are connected to PCI busses which are connected through PCI-to-PCI bridges.
  • PCI-to-PCI bridges are connected to PCI busses which are connected through PCI-to-PCI bridges.
  • two bus networks can be connected together through the addition of another PCI bus and two PCI-to-PCI bridges.
  • FIGS. 2 , 3 and 4 illustrate the network of FIG. 1 , and specifically cross bar 10 and elements of the associated switches 12 , in some detail.
  • switches 12 along with other similar type elements, have been alphabetized to indicate location or sequence in the network. This numbering is for explanation only.
  • arrows have been added to represent data packet flow; however, for clarity, not every data flow path has been mapped.
  • cross bar 10 comprises a multiplicity of ports 16 where each port 16 comprises a link logic unit 18 , an input FIFO buffer 20 , a plurality of output buffers 22 and a port transmit arbiter 26 .
  • each port 16 comprises a link logic unit 18 , an input FIFO buffer 20 , a plurality of output buffers 22 and a port transmit arbiter 26 .
  • cross bar 10 has four ports 16 ; however, it may comprise any number of ports 16 .
  • Each port 16 and the elements which it comprises, are dedicated to an associated switch 12 or cross bar 10 , and are responsible for all communication with its associated switch 12 or crossbar 10 .
  • the elements which comprise port 16 A are associated with switch 12 A and are responsible for switch 12 A's communication: link logic unit 18 A receives and directs messages and data from switch 12 A, and performs various port functions which will be described in more detail hereinbelow; input FIFO buffer 20 A receives and stores data packets sent from switch 12 A; output buffers 22 at port 16 A receive and store data packets sent to switch 12 A; and, port transmit arbiter 26 A sends messages and data to switch 12 A.
  • Port to port communication is made via point-to-point connection between input buffers 20 and their associated output buffers 22 .
  • input buffer 20 A is connected to output buffers 22 A.
  • Output buffers 22 A are located at ports 16 B, 16 C and 16 D, respectively.
  • Input buffer 20 A transfers data packets via output buffers 22 A to ports 16 B, 16 C and 16 D. Additionally, though not represented in the Figures, input buffer 20 B is connected to output buffers 22 B, located at ports 16 A, 16 C and 16 D, and so on. This point-to-point connection allows simultaneous non-collision data transfers from the input buffers 20 to their dedicated output buffers 22 , and hence simultaneous communication between ports 16 .
  • Link messages are either sent alone or interleaved with data packets. Two major types of link messages are possible; switch link messages to be transferred to another switch, and local link messages indicating the status of the associated switch 12 . Switch link messages transferred with an accompanying data packet contain information concerning the associated data packet.
  • Logic unit 18 reads the first bit of the link message, which identifies the type of link message being transmitted. As an example, if the first bit is set or 1, as an example, then logic unit 18 recognizes the message as a local link message, does not transfer the message, and proceeds to perform port functions which will be described in more detail hereinbelow. If the first bit is not set or is 0, then the logic unit 18 recognizes the link message as being a switch link message and transfers the message and the associated packet to the input buffer 20 .
  • switch 12 A sends a link message and data packet to logic unit 18 A; logic unit 18 A identifies the link message as a switch link message and transfers both the switch link message and the data packet to input buffer 20 A.
  • the input buffer 20 on port 16 transfers the link message and data packet to its associated output buffers 22 located on the other ports 16 on cross bar 10 .
  • input buffer 20 A transfers the message and packet to output buffers 22 A located on ports 16 B, 16 C and 16 D.
  • Each port 16 is identified by a port address, and each device, connected to one of the switches, is identified by its own device address or number.
  • Each output buffer 22 comprises a device table register 24 , coupled thereto.
  • register 24 When port 16 is linked to a switch 12 , register 24 logically holds the device number of a device linked to that specific port 16 .
  • register 24 When port 16 is linked to a cross bar 10 , register 24 logically holds the device numbers of all the devices connected to the cross bar 10 linked to that specific port 16
  • the device number is also logically contained within the switch link message.
  • the packet is first received by the device table register 24 . If the device number data in the switch link message is included in the receiving register 24 , the message and packet is written into the coupled output buffer 22 ; if the device number data in the switch link message is not included in the receiving register 24 , then the register 24 simply ignores the message, and does not receive it.
  • the switch link message and its associated data packet of the previous example are intended for transfer to a device linked to port 16 B.
  • Output buffers 22 A located on ports 16 B, 16 C and 16 D receive the message and the packet.
  • the registers 24 A at ports 16 C and 16 D do not include the device number contained in the switch message, and thus ignore the message.
  • the register 24 A coupled to output buffer 22 A at port 16 B does include the device number, and hence writes the message and packet into output buffer 22 A at port 16 B.
  • Output buffer 22 A at port 16 B then transfers the message and packet to the port transmit arbiter 26 B, which transfers the message and packet via link 14 B to switch 12 B, and onto its eventual destination.
  • switches 12 and their dedicated ports 16 are busier than others. For example, if switch 12 A is excessively busy, the memory in switch 12 A may become too full to receive more data packets. In such a case, the present invention implements flow control which ensures that no data is lost during the temporary backup.
  • switch 12 A if switch 12 A is full, it notifies such to logic unit 18 A. Logic unit 18 A then signals to port transmit arbiter 26 A to cut off the data flow via link 14 A to switch 12 A. As a result, switch 12 A does not receive any more data packets, however, it does continue to send link messages and/or data packets to input buffer 20 A. Once the memory in switch 12 A is cleared, switch 12 A sends a message to logic unit 18 A to re-open up the link 14 A and re-allow data packet transfer to the switch.
  • Each output buffer 22 comprises an almost full threshold 23 , which when crossed, signifies that the output buffer 22 has become almost full and can not receive anymore data packets.
  • each output buffer 22 comprises an almost empty threshold 21 , which when crossed, signifies that output buffer 22 has become almost empty and can again receive data packets.
  • the data is output buffer 22 D crosses almost full threshold 23 .
  • the almost full output buffer 22 D (at port 16 A) sends a message to the port transmit arbiter 26 D (at port 16 D).
  • the message notifies port transmit arbiter 26 D that switch 12 A is almost full and requests that port 16 D stop sending data to switch 12 A.
  • each port transmit arbiter 26 communicates with its associated switch 12 , via link 14 and an associated switch arbiter 28 .
  • port transmit arbiter 26 receives a signal to cut off outgoing data packets, it notifies such to switch arbiter 28 , which partially halts the outward flow of data packets; when port transmit arbiter 26 receives a signal to reopen communication, it notifies such to switch arbiter 28 , which then reopens outward flow.
  • port transmit arbiter 26 D notifies switch arbiter 28 D of switch 12 D (arrow 27 ) to stop transferring data to switch 12 A.
  • Arbiter 28 D stops transfer of data to switch 12 A, however, still transfers data to other switches, as indicated by arrows 25 .
  • each switch 12 has a plurality of Direct Memory Access (DMA) units 30 and associated switch FIFO buffers 32 .
  • DMA 30 is responsible for transfer of data from its associated FIFO buffer 32 .
  • switch arbiter 28 D When port transmit arbiter 26 D notifies arbiter 28 D of switch 12 D to stop sending data packets to switch 12 A, switch arbiter 28 D so indicates to the DMA unit 30 A, DMA unit 30 A stops transferring data from FIFO buffer 32 A to switch 12 A. However, the remaining DMA units 30 remain active, sending data through port 16 D to the other switches 12 .
  • each DMA 30 is linked to an associated switch buffer 32 . Additionally, each DMA 30 is dedicated to one or more different ports 16 . Generally each DMA 30 is dedicated to 2 ports, as example, ports 16 A and 16 D, however, DMA 30 could be dedicated to any number of ports depending on the switch's load.
  • arbiter 28 When arbiter 28 receives a message to close off outflow of data from switch 12 to an almost full port 16 , only the outflow from the DMA 30 associated with the “full” port 16 is cut off. The DMA's 30 associated with the other ports 16 remain active. Consequently, the only affected data flows are those of the associated ports and not the entire outgoing data flow from switch 12 .
  • the flow control system of the present invention allows data flow to continue, and stems only that traffic affected by the backup.
  • FIGS. 5A and 5B illustrating the communication flow in the cross bar 10 among source switch 12 A, port 16 A on cross bar 10 , port 16 B on cross bar 10 and destination switch 12 B, summarizing the flow discussed hereinabove.
  • Switch 12 A transfers (step 110 ) a link message and a data packet to logic unit 18 A.
  • the logic unit 18 A identifies (step 112 ) the link message as a switch link message and writes (step 114 ) the link message and data packet into input buffer 20 A.
  • the input buffer 20 A transfers (step 116 ) the link message and data packet to the registers 24 A at ports 16 B, 16 C and 16 D.
  • the registers 24 A at ports 16 B, 16 C and 16 D receive (step 118 ) the link message and the data packet transferred from switch 12 A.
  • Registers 24 A at ports 16 C and 16 D do not recognize (step 120 ) the device number in the link message and ignore the message and the data packet.
  • the register 24 A at port 16 B recognizes (step 122 ) the device number in the link message, and the link message and data packet are written (step 124 ) into the output buffer 22 A at port 16 B.
  • output buffer 22 A at port 16 B transfers (step 126 ) the data to port transmit arbiter 26 B, which transfers (step 128 ) the message and data via link 14 B to switch 12 B.
  • switch 12 B If switch 12 B becomes full, it transfers (step 130 , FIG. 5B ) a local link message to logic unit 18 B indicating such. Logic unit 18 B indicates (step 132 ) to port transmit arbiter 26 B to stop sending any messages and/or data to switch 12 B. Output buffer 22 A at port 16 B fills up (step 134 ) with temporarily stored unsendable messages and data.
  • switch 12 B When switch 12 B is capable of receiving again, it sends (step 144 ) a local link message to logic unit 18 B indicating that it is now open to receive. Logic unit 18 B indicates (step 146 ) to port transmit arbiter 26 B to reopen inflow to switch 12 B. Output buffer 22 A at port 16 B restarts transmission (step 148 ). When the output buffer 22 A at port 16 B reaches an empty threshold 21 (step 150 ) it notifies such to port transmit arbiter 26 A at port 16 A.
  • Port transmit arbiter 26 A notifies (step 152 ) switch arbiter 28 A at switch 12 A to resume transfer of data to port 16 B.
  • Switch A indicates (step 154 ) to DMA 30 B to resume sending data.
  • Switch buffer 32 B (on switch 12 A and dedicated to port 16 B) resumes (step 156 ) transfer of messages and data to switch 12 B.
  • FIGS. 6A , 6 B, 6 C and 7 describe a preferred embodiment of an interface bus used in the individual bus 14 of the present invention
  • FIG. 6A is schematic diagram of the interface bus
  • FIG. 6B is a message architecture used in the interface bus
  • FIG. 6C is a timing diagram illustration of the activity of the bus during operations.
  • Individual bus 14 is a 17 bit, point-to-point bus and comprises a clock signal 210 , a command bit signal 212 and 16 bits of data signal 214 .
  • the 16 bit data 214 transfers either a 16 bit link message or data packets.
  • FIG. 7 is a block diagram illustration of the logical elements of data bit 214 .
  • each link 14 provides the connection and communication between one cross bar 10 and one switch 12 , and transfers link messages and data packets therebetween.
  • link messages 214 are transferred either alone or accompanied by data packets, and switch link messages transferred with data packets are used to communicate information about the associated data packet.
  • Command bit 212 is a one cycle command word and data bits 214 , depending on the command message, comprises between 0 to 33 cycles of 16 bit data words.
  • command messages signal the commencement or end of a data packet. When not transmitting a command message, command bit 212 transmits an idle signal.
  • signals are constantly being transferred over links 14 , either in the form of commands, idle signals, link messages, or data packets.
  • the timing signal rises to high with the initialization of a command bit 212 , remains at high for the duration of an idle message, sinks from the high signal at the commencement of a link message/data packet and remains at low throughout the duration of the link message/data packet.
  • the rising or sinking state of the command bit indicates whether to anticipate commands or to anticipate message/data.
  • an exemplary protocol for data packet 214 is shown which comprises 16 bits; bit 15 is a link message bit 220 , bits 14 - 11 provide high address bits 222 , bits 10 - 6 indicate a device number 224 , and bits 5 - 0 indicate a message type 226 .
  • the link message bit 220 is either set or not set, and is used to signify either a local link message or a switch link message, respectively.
  • the high address 222 is provided for PCI address mapping and used for communication between switches 12 and PCIs connected to the network.
  • the device number 224 identifies the number of the device designated to receive the link message and/or data packet.
  • the message type 226 as described in U.S. patent application Ser. No. 08/790,155, which is incorporated herein by reference, relays messaging protocol between switches 12 .

Abstract

A crossbar for communicating with at least one device, the crossbar comprises N ports. Each one of the N ports comprises a link logic unit to receive messages and data from a respective device, N-1 output buffers each corresponding to another one of the N-1 ports and a port arbiter to select one of the N-1 output buffers to output data to the respective device. The stored data is transferred to the corresponding output buffer of a selected one of the other one of the N ports.

Description

FIELD OF THE INVENTION
The present invention relates to network switches generally and to cross-bars in particular.
BACKGROUND OF THE INVENTION
A network switch creates a network among a plurality of end nodes, such as workstations, and other network switches connected thereto. Each end node is connected to one port of the network. The ports also serve to connect network switches together.
Each end node sends packets of data to the network switch which the switch then routes either to another of the end nodes connected thereto or to a network switch to which the destination end node is connected. In the latter case, the receiving network switch routes the packet to the destination end node.
Each network switch has to temporarily store the packets of data which it receives from the units (end node or network switch) connected to it while the switch determines how, when and through which port to retransmit the packets. Each packet can be transmitted to only one destination address (a “unicast” packet) or to more than one unit (a “multicast” or “broadcast” packet). For multicast and broadcast packets, the switch typically stores the packet only once and transmits multiple copies of the packet to some (multicast) or all (broadcast) of its ports. Once the packet has been transmitted to all of its destinations, it can be removed from the memory or written over.
Switching Ethernet Controllers (SECs) are network switches that implement the Ethernet switching protocol. According to the protocol, the Ethernet network (cabling and Ethernet ports) operates at 10 Megabits per second. Switches which operate at the desired speed of 10 Megabits per second are known as providing “full-wire” throughput.
In U.S. patent application Ser. No. 08/790,155, filed Jan. 28, 1997, and incorporated herein by reference, in order to optimize through-put time, communication between SECs attempts to utilize the bus as little as possible so that the bus will be available as soon as a SEC wants to utilize it. Therefore, each SEC includes a write-only bus communication unit which transfers the packets out of the SEC by only writing to the bus. Thus, packets enter each SEC by having been written therein from other SECs and not by reading them in, since read operations utilize the bus for significant amounts of time compared to write operations. Having the bus available generally whenever a SEC needs it helps to provide the full-wire throughput.
However, when many SECs write to the same bus, the throughput is limited by the speed of the bus.
SUMMARY OF THE PRESENT INVENTION
A crossbar for communicating with at least one device, the crossbar comprises N ports. Each one of the N ports comprises a link logic unit to receive messages and data from a respective device, N-1 output buffers each corresponding to another one of the N-1 ports and a port arbiter to select one of the N-1 output buffers to output data to the respective device. The stored data is transferred to the corresponding output buffer of a selected one of the other one of the N ports.
In other features, the link logic unit determines a type of message from the respective device. If the type of message is a local link message, a port function is performed and the message is not transferred. If the type of message is a switch link message, the message and the data are transferred. The device comprises one of a switch and a second crossbar. The N1 output buffers comprises a device table register to store a device number if the device comprises the switch. The N1 output buffers comprises a device table register to store device numbers of devices connected to the second crossbar.
In still other features, if the device is unable to receive data, the device provides a message to the link logic unit. The link logic unit signals the arbiter to inhibit communication to the device. If an nth one of the of the N1 output buffers is at least a predetermined capacity, a signal is sent to the nth one of the port arbiter of the other one of the N1 ports to inhibit further transmission.
BRIEF DESCRIPTION OF THE DRAWINGS
The present invention will be understood and appreciated more fully from the following detailed description taken in conjunction with the drawings in which:
FIG. 1 is a block diagram illustration of a network of switching communication controllers, constructed and operative in accordance with a preferred embodiment of the present invention;
FIG. 2 is a schematic illustration of a switching communication cross bar controller forming part of the network of FIG. 1;
FIG. 3 is a schematic illustration of a portion of the cross bar of FIG. 2 and an Ethernet switching unit forming part of the switching network of FIG. 1;
FIG. 4 is a schematic illustration of the switching unit and link connection forming part of the switching network of FIG. 1;
FIG. 5A is a flow chart illustration of the networking communication in accordance with a preferred embodiment of the present invention;
FIG. 5B is a illustration of a local link communication in accordance with switching Ethernet controller network of FIG. 1;
FIG. 6A is a schematic diagram of an interface bus;
FIG. 6B is a block illustration of a message architecture used in the interface bus of FIG. 6A;
FIG. 6C is a timing diagram illustration of the activity of the bus during the operations of FIG. 6A; and
FIG. 7 is a block diagram illustration of the logical elements of a link message used in the present invention;
DETAILED DESCRIPTION OF THE PRESENT INVENTION
Reference is now made to FIGS. 1, 2, 3 and 4 which illustrate, in general terms, a cross bar 10 of the present invention and its connection within a network, wherein FIG. 1 illustrates a general overview of one or more cross bars 10 connected via one or more individual buses 14 to one or more Ethernet switches 12. Since each Ethernet switch 12 is connected to the cross-bar 10 via its own individual bus 14, the cross bar 10 typically provides linking operations, transferring data from switch to switch. The one or more Ethernet switches 12 are typically connected to one or more devices or work stations, not shown in the figures.
As further illustrated in FIG. 1, the network switches 12 interconnect to create a large network or to enlarge an existing network. A plurality of network switches 12 are connected to PCI busses which are connected through PCI-to-PCI bridges. Thus, two bus networks can be connected together through the addition of another PCI bus and two PCI-to-PCI bridges.
FIGS. 2, 3 and 4 illustrate the network of FIG. 1, and specifically cross bar 10 and elements of the associated switches 12, in some detail. In order to facilitate understanding, switches 12, along with other similar type elements, have been alphabetized to indicate location or sequence in the network. This numbering is for explanation only. In addition, in order to facilitate understanding, arrows have been added to represent data packet flow; however, for clarity, not every data flow path has been mapped.
As shown in FIG. 2, cross bar 10 comprises a multiplicity of ports 16 where each port 16 comprises a link logic unit 18, an input FIFO buffer 20, a plurality of output buffers 22 and a port transmit arbiter 26. Typically cross bar 10 has four ports 16; however, it may comprise any number of ports 16.
Each port 16, and the elements which it comprises, are dedicated to an associated switch 12 or cross bar 10, and are responsible for all communication with its associated switch 12 or crossbar 10. As an example, the elements which comprise port 16A are associated with switch 12A and are responsible for switch 12A's communication: link logic unit 18A receives and directs messages and data from switch 12A, and performs various port functions which will be described in more detail hereinbelow; input FIFO buffer 20A receives and stores data packets sent from switch 12A; output buffers 22 at port 16A receive and store data packets sent to switch 12A; and, port transmit arbiter 26A sends messages and data to switch 12A.
Port to port communication is made via point-to-point connection between input buffers 20 and their associated output buffers 22. As an example, and as represented in FIG. 2 by solid lines 25, input buffer 20A is connected to output buffers 22A. Output buffers 22A are located at ports 16B, 16C and 16D, respectively.
Input buffer 20A transfers data packets via output buffers 22A to ports 16B, 16C and 16D. Additionally, though not represented in the Figures, input buffer 20B is connected to output buffers 22B, located at ports 16A, 16C and 16D, and so on. This point-to-point connection allows simultaneous non-collision data transfers from the input buffers 20 to their dedicated output buffers 22, and hence simultaneous communication between ports 16.
Communication starts at switch 12, which writes a link message and/or an accompanying data packet into its associated link logic unit 18. Link messages are either sent alone or interleaved with data packets. Two major types of link messages are possible; switch link messages to be transferred to another switch, and local link messages indicating the status of the associated switch 12. Switch link messages transferred with an accompanying data packet contain information concerning the associated data packet.
Logic unit 18 reads the first bit of the link message, which identifies the type of link message being transmitted. As an example, if the first bit is set or 1, as an example, then logic unit 18 recognizes the message as a local link message, does not transfer the message, and proceeds to perform port functions which will be described in more detail hereinbelow. If the first bit is not set or is 0, then the logic unit 18 recognizes the link message as being a switch link message and transfers the message and the associated packet to the input buffer 20.
As an example, switch 12A sends a link message and data packet to logic unit 18A; logic unit 18A identifies the link message as a switch link message and transfers both the switch link message and the data packet to input buffer 20A.
Via the direct point-to-point connections noted hereinabove, the input buffer 20 on port 16 transfers the link message and data packet to its associated output buffers 22 located on the other ports 16 on cross bar 10. As an example, input buffer 20A transfers the message and packet to output buffers 22A located on ports 16B, 16C and 16D.
Each port 16 is identified by a port address, and each device, connected to one of the switches, is identified by its own device address or number. Each output buffer 22 comprises a device table register 24, coupled thereto. When port 16 is linked to a switch 12, register 24 logically holds the device number of a device linked to that specific port 16. When port 16 is linked to a cross bar 10, register 24 logically holds the device numbers of all the devices connected to the cross bar 10 linked to that specific port 16
The device number is also logically contained within the switch link message. When the switch link message and data packets are received at the port 16, the packet is first received by the device table register 24. If the device number data in the switch link message is included in the receiving register 24, the message and packet is written into the coupled output buffer 22; if the device number data in the switch link message is not included in the receiving register 24, then the register 24 simply ignores the message, and does not receive it.
As an example, the switch link message and its associated data packet of the previous example are intended for transfer to a device linked to port 16B. Output buffers 22A located on ports 16B, 16C and 16D receive the message and the packet. The registers 24A at ports 16C and 16D do not include the device number contained in the switch message, and thus ignore the message. The register 24A coupled to output buffer 22A at port 16B does include the device number, and hence writes the message and packet into output buffer 22A at port 16B. Output buffer 22A at port 16B then transfers the message and packet to the port transmit arbiter 26B, which transfers the message and packet via link 14B to switch 12B, and onto its eventual destination.
It is common that some switches 12 and their dedicated ports 16 are busier than others. For example, if switch 12A is excessively busy, the memory in switch 12A may become too full to receive more data packets. In such a case, the present invention implements flow control which ensures that no data is lost during the temporary backup.
In this situation, if switch 12A is full, it notifies such to logic unit 18A. Logic unit 18A then signals to port transmit arbiter 26A to cut off the data flow via link 14A to switch 12A. As a result, switch 12A does not receive any more data packets, however, it does continue to send link messages and/or data packets to input buffer 20A. Once the memory in switch 12A is cleared, switch 12A sends a message to logic unit 18A to re-open up the link 14A and re-allow data packet transfer to the switch.
While the link 14A to switch 12A is closed, all data packets sent to switch 12A are temporarily stored in the output buffers 22B, 22C, and 22D, located at port 16A. If port 16A continues to be busy, the temporarily stored data messages may backup in one of the output buffers 22 at port 16A, as an example, output buffer 22D at port 16A (FIG. 3).
Each output buffer 22 comprises an almost full threshold 23, which when crossed, signifies that the output buffer 22 has become almost full and can not receive anymore data packets. Similarly, each output buffer 22 comprises an almost empty threshold 21, which when crossed, signifies that output buffer 22 has become almost empty and can again receive data packets.
In accordance with a preferred embodiment of the present invention, and as per the example from above, the data is output buffer 22D crosses almost full threshold 23. As indicated in FIG. 3 by dashed arrows 29, the almost full output buffer 22D (at port 16A) sends a message to the port transmit arbiter 26D (at port 16D). The message notifies port transmit arbiter 26D that switch 12A is almost full and requests that port 16D stop sending data to switch 12A.
Referring now to FIG. 4, each port transmit arbiter 26 communicates with its associated switch 12, via link 14 and an associated switch arbiter 28. When port transmit arbiter 26 receives a signal to cut off outgoing data packets, it notifies such to switch arbiter 28, which partially halts the outward flow of data packets; when port transmit arbiter 26 receives a signal to reopen communication, it notifies such to switch arbiter 28, which then reopens outward flow.
As per the above example, port transmit arbiter 26D notifies switch arbiter 28D of switch 12D (arrow 27) to stop transferring data to switch 12A. Arbiter 28D stops transfer of data to switch 12A, however, still transfers data to other switches, as indicated by arrows 25.
When the temporarily stored data packets at output buffer 22D (at port 16A) have cleared-out, and have crossed the almost empty threshold 21, the output buffer 22D notifies sends a message to bar arbiter 26D (at port 16D) notifying it that switch 12A is almost empty. Port transmit arbiter 26D resumes sending data packets to port 16A.
For the purpose of temporarily storing data packets while cross bar arbiter 26 has halted traffic, and as shown in FIG. 4, each switch 12 has a plurality of Direct Memory Access (DMA) units 30 and associated switch FIFO buffers 32. Each DMA 30 is responsible for transfer of data from its associated FIFO buffer 32.
When port transmit arbiter 26D notifies arbiter 28D of switch 12D to stop sending data packets to switch 12A, switch arbiter 28D so indicates to the DMA unit 30A, DMA unit 30A stops transferring data from FIFO buffer 32A to switch 12A. However, the remaining DMA units 30 remain active, sending data through port 16D to the other switches 12.
While the outgoing data traffic from switch 12 is closed, data packets intended for transfer are temporarily stored in switch buffers 32. As noted above, each DMA 30 is linked to an associated switch buffer 32. Additionally, each DMA 30 is dedicated to one or more different ports 16. Generally each DMA 30 is dedicated to 2 ports, as example, ports 16A and 16D, however, DMA 30 could be dedicated to any number of ports depending on the switch's load.
When arbiter 28 receives a message to close off outflow of data from switch 12 to an almost full port 16, only the outflow from the DMA 30 associated with the “full” port 16 is cut off. The DMA's 30 associated with the other ports 16 remain active. Consequently, the only affected data flows are those of the associated ports and not the entire outgoing data flow from switch 12.
Hence, in contrast to prior art network systems which required a total data flow halt upon collision from backups, the flow control system of the present invention allows data flow to continue, and stems only that traffic affected by the backup.
Reference is now made to FIGS. 5A and 5B illustrating the communication flow in the cross bar 10 among source switch 12A, port 16A on cross bar 10, port 16B on cross bar 10 and destination switch 12B, summarizing the flow discussed hereinabove.
Switch 12A transfers (step 110) a link message and a data packet to logic unit 18A. The logic unit 18A identifies (step 112) the link message as a switch link message and writes (step 114) the link message and data packet into input buffer 20A.
The input buffer 20A transfers (step 116) the link message and data packet to the registers 24A at ports 16B, 16C and 16D. The registers 24A at ports 16B, 16C and 16D receive (step 118) the link message and the data packet transferred from switch 12A. Registers 24A at ports 16C and 16D do not recognize (step 120) the device number in the link message and ignore the message and the data packet. The register 24A at port 16B, recognizes (step 122) the device number in the link message, and the link message and data packet are written (step 124) into the output buffer 22A at port 16B.
If switch 12B is not full, output buffer 22A at port 16B transfers (step 126) the data to port transmit arbiter 26B, which transfers (step 128) the message and data via link 14B to switch 12B.
If switch 12B becomes full, it transfers (step 130, FIG. 5B) a local link message to logic unit 18B indicating such. Logic unit 18B indicates (step 132) to port transmit arbiter 26B to stop sending any messages and/or data to switch 12B. Output buffer 22A at port 16B fills up (step 134) with temporarily stored unsendable messages and data.
When output buffer 22A at port 16B reaches (step 136) almost fullness threshold 23, it notifies (step 138) such to port transmit arbiter 26A at port 16A. Arbiter 26A notifies (step 140) switch arbiter 28A at switch 12A not to send anymore data to port 16B until further notice. Switch 12A indicates (step 142) to its DMA 30B (on switch 12A) to stop sending to switch 12B, and switch buffer 32B (on switch 12A and dedicated to port 16B) temporarily stores (step 143) unsendable messages and data.
When switch 12B is capable of receiving again, it sends (step 144) a local link message to logic unit 18B indicating that it is now open to receive. Logic unit 18B indicates (step 146) to port transmit arbiter 26B to reopen inflow to switch 12B. Output buffer 22A at port 16B restarts transmission (step 148). When the output buffer 22A at port 16B reaches an empty threshold 21 (step 150) it notifies such to port transmit arbiter 26A at port 16A.
Port transmit arbiter 26A notifies (step 152) switch arbiter 28A at switch 12A to resume transfer of data to port 16B. Switch A indicates (step 154) to DMA 30B to resume sending data. Switch buffer 32B (on switch 12A and dedicated to port 16B) resumes (step 156) transfer of messages and data to switch 12B.
Reference is now made to FIGS. 6A, 6B, 6C and 7. FIGS. 6A, 6B and 6C describe a preferred embodiment of an interface bus used in the individual bus 14 of the present invention; FIG. 6A is schematic diagram of the interface bus, FIG. 6B is a message architecture used in the interface bus, and FIG. 6C is a timing diagram illustration of the activity of the bus during operations.
Individual bus 14 is a 17 bit, point-to-point bus and comprises a clock signal 210, a command bit signal 212 and 16 bits of data signal 214. The 16 bit data 214 transfers either a 16 bit link message or data packets. FIG. 7 is a block diagram illustration of the logical elements of data bit 214.
As noted hereinabove, each link 14 provides the connection and communication between one cross bar 10 and one switch 12, and transfers link messages and data packets therebetween. As additionally noted hereinabove, link messages 214 are transferred either alone or accompanied by data packets, and switch link messages transferred with data packets are used to communicate information about the associated data packet.
Clock 210 functions in a manner similar to network clocks known in the art, and as such will not be described in detail herein. Command bit 212 is a one cycle command word and data bits 214, depending on the command message, comprises between 0 to 33 cycles of 16 bit data words. In accordance with a preferred embodiment of the present invention, command messages signal the commencement or end of a data packet. When not transmitting a command message, command bit 212 transmits an idle signal.
Referring now to FIG. 6C, signals are constantly being transferred over links 14, either in the form of commands, idle signals, link messages, or data packets. The timing signal rises to high with the initialization of a command bit 212, remains at high for the duration of an idle message, sinks from the high signal at the commencement of a link message/data packet and remains at low throughout the duration of the link message/data packet. Hence, the rising or sinking state of the command bit indicates whether to anticipate commands or to anticipate message/data.
Referring now to FIG. 7, an exemplary protocol for data packet 214 is shown which comprises 16 bits; bit 15 is a link message bit 220, bits 14-11 provide high address bits 222, bits 10-6 indicate a device number 224, and bits 5-0 indicate a message type 226.
As noted hereinabove, the link message bit 220 is either set or not set, and is used to signify either a local link message or a switch link message, respectively. The high address 222 is provided for PCI address mapping and used for communication between switches 12 and PCIs connected to the network. The device number 224 identifies the number of the device designated to receive the link message and/or data packet. The message type 226, as described in U.S. patent application Ser. No. 08/790,155, which is incorporated herein by reference, relays messaging protocol between switches 12.

Claims (36)

1. A crossbar comprising:
N ports, each one of said N ports comprising:
a link logic unit to receive messages and inbound data from a respective device,
N-1 output buffers corresponding respectively to others of said N ports; and
a port arbiter to select one of said N-1 output buffers to output outbound data to the respective device,
wherein the inbound data is selectively transferred to the corresponding output buffer of a selected one of said others of said N ports.
2. A crossbar according to claim 1, wherein said link logic unit determines a type of message from the respective device.
3. A crossbar according to claim 2, wherein if the type of message is a local link message, a port function is performed and the message is not transferred.
4. A crossbar according to claim 2, wherein if the type of message is a switch link message, the message and the inbound data are transferred.
5. A crossbar according to claim 1, wherein said device comprises one of a switch and a second crossbar.
6. A crossbar according to claim 5, wherein said N-1 output buffers comprises a device table register to store a device number if the device comprises the switch.
7. A crossbar according to claim 5, wherein said N-1 output buffers comprises a device table register to store device numbers of devices connected to the second crossbar.
8. A crossbar according to claim 1,
wherein if the respective device is unable to receive outbound data, the respective device provides a message to said link logic unit, and
wherein said link logic unit signals said arbiter to inhibit communication to the respective device.
9. A crossbar according to claim 1,
wherein if an nth one of said N-1 output buffers is at least a predetermined capacity, a signal is sent to the nth one of said port arbiter of the other one of said N-1 ports to inhibit further transmission.
10. A crossbar according to claim 1, wherein said link logic unit determines a message type of one of said messages.
11. A crossbar according to claim 10, wherein if said message type is a switch link message, said one of said messages and said inbound data are transferred to said selected one of said others of said N ports.
12. A crossbar according to claim 11, wherein if said message type is a local link message, a port function is performed and said one of said messages and said inbound data not transferred.
13. A system comprising a crossbar according to claim 1 and said respective device of one of said N ports, wherein said respective device comprises one of a switch and a second crossbar.
14. A crossbar according to claim 13, wherein said N-1 output buffers of said one of said N ports each comprises a device table register.
15. A crossbar according to claim 14, wherein said device table registers each store device numbers of devices connected to said respective device when said respective device comprises said second crossbar.
16. A crossbar according to claim 15, wherein said device table registers each store a device number of said respective device when said respective device comprises said switch.
17. A system comprising a crossbar according to claim 1 and said respective device of one of said N ports, wherein if said respective device is unable to receive data, said respective device generates a message, and wherein said link logic unit of said one of said N ports sends a signal to said port arbiter of said one of said N ports to inhibit communication to said respective device based on said message.
18. A crossbar according to claim 1, wherein if a kth one of said N-1 output buffers of one of said N ports is filled to at least a predetermined level, a signal is sent to said port arbiter of the kth one of said others of said N ports to inhibit transmission to said one of said N ports.
19. A crossbar comprising:
N port means, each one of said N port means comprising:
link logic means for receiving messages and inbound data from a respective device,
N-1 output buffer means corresponding respectively to others of said N port means; and
port arbiter means for selecting one of said N-1 output buffer means for outputting outbound data to the respective device,
wherein the inbound data is selectively transferred to the corresponding output buffer means of a selected one of said others of said N port means.
20. A crossbar according to claim 19, wherein said link logic means determines a type of message from the respective device.
21. A crossbar according to claim 20, wherein if the type of message is a local link message, a port function is performed and the message is not transferred.
22. A crossbar according to claim 20, wherein if the type of message is a switch link message, the message and the inbound data are transferred.
23. A crossbar according to claim 19, wherein said device comprises one of a switch and a second crossbar.
24. A crossbar according to claim 23, wherein said N-1 output buffer means comprises a device table register means for storing a device number if the device comprises the switch.
25. A crossbar according to claim 23, wherein said N-1 output buffer means comprises a device table register means for storing device numbers of devices connected to the second crossbar.
26. A crossbar according to claim 19,
wherein if the respective device is unable to receive outbound data, the respective device provides a message to said link logic means, and
wherein said link logic means signals said arbiter means to inhibit communication to the respective device.
27. A crossbar according to claim 19,
wherein if an nth one of said N-1 output buffer means is at least a predetermined capacity, a signal is sent to the nth one of said port arbiter means of the other one of said N-1 port means to inhibit further transmission.
28. A crossbar according to claim 19, wherein said link logic means determines a message type of one of said messages.
29. A crossbar according to claim 28, wherein if said message type is a switch link message, said one of said messages and said inbound data are transferred to said selected one of said others of said N port means.
30. A crossbar according to claim 29, wherein if said message type is a local link message, a port function is performed and said one of said messages and said inbound data are not transferred.
31. A system comprising a crossbar according to claim 19 and said respective device of one of said N port means, wherein said respective device comprises one of a switch and a second crossbar.
32. A crossbar according to claim 31, wherein said N-1 output buffer means of said one of said N port means each comprises a device table register.
33. A crossbar according to claim 32, wherein said device table registers each store device numbers of devices connected to said respective device when said respective device comprises said second crossbar.
34. A crossbar according to claim 33, wherein said device table registers each store a device number of said respective device when said respective device comprises said switch.
35. A system comprising a crossbar according to claim 19 and said respective device of one of said N port means, wherein if said respective device is unable to receive data, said respective device generates a message, and wherein said link logic means of said one of said N port means sends a signal to said port arbiter means of said one of said N port means to inhibit communication to said respective device based on said message.
36. A crossbar according to claim 19, wherein if a kth one of said N-1 output buffer means of one of said N port means is filled to at least a predetermined level, a signal is sent to said port arbiter means of the kth one of said others of said N port means to inhibit transmission to said one of said N port means.
US11/152,901 1998-07-08 2005-06-15 Linking cross bar controller Expired - Lifetime US7477652B2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US11/152,901 US7477652B2 (en) 1998-07-08 2005-06-15 Linking cross bar controller
US12/348,457 US7738474B2 (en) 1998-07-08 2009-01-05 Linking cross bar controller
US12/815,928 US8005104B2 (en) 1998-07-08 2010-06-15 Method and apparatus for controlling the flow of packets through a network switch

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IL125273A IL125273A (en) 1998-07-08 1998-07-08 Crossbar network switch
US09/348,865 US6967962B1 (en) 1998-07-08 1999-07-07 Linking crossbar controller
US11/152,901 US7477652B2 (en) 1998-07-08 2005-06-15 Linking cross bar controller

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US09/348,865 Continuation US6967962B1 (en) 1998-07-08 1999-07-07 Linking crossbar controller

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US12/348,457 Continuation US7738474B2 (en) 1998-07-08 2009-01-05 Linking cross bar controller

Publications (2)

Publication Number Publication Date
US20050232288A1 US20050232288A1 (en) 2005-10-20
US7477652B2 true US7477652B2 (en) 2009-01-13

Family

ID=11071724

Family Applications (4)

Application Number Title Priority Date Filing Date
US09/348,865 Expired - Fee Related US6967962B1 (en) 1998-07-08 1999-07-07 Linking crossbar controller
US11/152,901 Expired - Lifetime US7477652B2 (en) 1998-07-08 2005-06-15 Linking cross bar controller
US12/348,457 Expired - Fee Related US7738474B2 (en) 1998-07-08 2009-01-05 Linking cross bar controller
US12/815,928 Expired - Fee Related US8005104B2 (en) 1998-07-08 2010-06-15 Method and apparatus for controlling the flow of packets through a network switch

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US09/348,865 Expired - Fee Related US6967962B1 (en) 1998-07-08 1999-07-07 Linking crossbar controller

Family Applications After (2)

Application Number Title Priority Date Filing Date
US12/348,457 Expired - Fee Related US7738474B2 (en) 1998-07-08 2009-01-05 Linking cross bar controller
US12/815,928 Expired - Fee Related US8005104B2 (en) 1998-07-08 2010-06-15 Method and apparatus for controlling the flow of packets through a network switch

Country Status (2)

Country Link
US (4) US6967962B1 (en)
IL (1) IL125273A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040081184A1 (en) * 2002-06-27 2004-04-29 Tellabs Operations, Inc. Apparatus and method to switch packets using a switch fabric with memory
US20100246595A1 (en) * 1998-07-08 2010-09-30 Eitan Medina Linking cross bar controller

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1192834A1 (en) * 1999-06-17 2002-04-03 Nokia Corporation Multiplexing and demultiplexing method and apparatus
US8601519B1 (en) * 2000-12-28 2013-12-03 At&T Intellectual Property I, L.P. Digital residential entertainment system
US8677423B2 (en) 2000-12-28 2014-03-18 At&T Intellectual Property I, L. P. Digital residential entertainment system
US20050097388A1 (en) * 2003-11-05 2005-05-05 Kris Land Data distributor
US20070280224A1 (en) * 2006-06-05 2007-12-06 Via Technologies System and method for an output independent crossbar
US8996916B2 (en) * 2011-08-16 2015-03-31 Future Dial, Inc. System and method for identifying problems via a monitoring application that repetitively records multiple separate consecutive files listing launched or installed applications
CN104054309A (en) * 2011-11-04 2014-09-17 派克设计公司 Device for efficient use of packet buffering and bandwidth resources at the network edge
JP2015069345A (en) * 2013-09-27 2015-04-13 富士通株式会社 Information processor, data transfer device, and data transfer method

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4922348A (en) 1989-02-10 1990-05-01 American Telephone And Telegraph Company Facsimile service
US5179669A (en) 1988-08-22 1993-01-12 At&T Bell Laboratories Multiprocessor interconnection and access arbitration arrangement
US5923660A (en) 1996-01-31 1999-07-13 Galileo Technologies Ltd. Switching ethernet controller
US6032205A (en) 1997-03-06 2000-02-29 Hitachi, Ltd. Crossbar switch system for always transferring normal messages and selectively transferring broadcast messages from input buffer to output buffer when it has sufficient space respectively
US6157967A (en) 1992-12-17 2000-12-05 Tandem Computer Incorporated Method of data communication flow control in a data processing system using busy/ready commands
US6192422B1 (en) 1997-04-16 2001-02-20 Alcatel Internetworking, Inc. Repeater with flow control device transmitting congestion indication data from output port buffer to associated network node upon port input buffer crossing threshold level
US6205542B1 (en) 1997-12-24 2001-03-20 Intel Corporation Processor pipeline including replay
US6226292B1 (en) 1998-03-19 2001-05-01 3Com Corporation Frame replication in a network switch for multi-port frame forwarding
US6314501B1 (en) 1998-07-23 2001-11-06 Unisys Corporation Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory
US6353618B1 (en) 1998-02-12 2002-03-05 Alcatel Canada Inc. Method and apparatus for controlling traffic flows in a packet-switched network
US6370148B1 (en) 1998-07-06 2002-04-09 International Business Machines Corporation Data communications
US6388993B1 (en) 1997-06-11 2002-05-14 Samsung Electronics Co., Ltd. ATM switch and a method for determining buffer threshold
US6614796B1 (en) 1997-01-23 2003-09-02 Gadzoox Networks, Inc, Fibre channel arbitrated loop bufferless switch circuitry to increase bandwidth without significant increase in cost
US6967962B1 (en) * 1998-07-08 2005-11-22 Marvell Semiconductor Israel Ltd. Linking crossbar controller

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10126419A (en) * 1996-10-23 1998-05-15 Nec Corp Atm exchange system

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5179669A (en) 1988-08-22 1993-01-12 At&T Bell Laboratories Multiprocessor interconnection and access arbitration arrangement
US4922348B1 (en) 1989-02-10 1994-10-11 Bell Telephone Labor Inc Facsimile service
US4922348A (en) 1989-02-10 1990-05-01 American Telephone And Telegraph Company Facsimile service
US6157967A (en) 1992-12-17 2000-12-05 Tandem Computer Incorporated Method of data communication flow control in a data processing system using busy/ready commands
US5923660A (en) 1996-01-31 1999-07-13 Galileo Technologies Ltd. Switching ethernet controller
US6614796B1 (en) 1997-01-23 2003-09-02 Gadzoox Networks, Inc, Fibre channel arbitrated loop bufferless switch circuitry to increase bandwidth without significant increase in cost
US6032205A (en) 1997-03-06 2000-02-29 Hitachi, Ltd. Crossbar switch system for always transferring normal messages and selectively transferring broadcast messages from input buffer to output buffer when it has sufficient space respectively
US6192422B1 (en) 1997-04-16 2001-02-20 Alcatel Internetworking, Inc. Repeater with flow control device transmitting congestion indication data from output port buffer to associated network node upon port input buffer crossing threshold level
US6388993B1 (en) 1997-06-11 2002-05-14 Samsung Electronics Co., Ltd. ATM switch and a method for determining buffer threshold
US6205542B1 (en) 1997-12-24 2001-03-20 Intel Corporation Processor pipeline including replay
US6353618B1 (en) 1998-02-12 2002-03-05 Alcatel Canada Inc. Method and apparatus for controlling traffic flows in a packet-switched network
US6226292B1 (en) 1998-03-19 2001-05-01 3Com Corporation Frame replication in a network switch for multi-port frame forwarding
US6370148B1 (en) 1998-07-06 2002-04-09 International Business Machines Corporation Data communications
US6967962B1 (en) * 1998-07-08 2005-11-22 Marvell Semiconductor Israel Ltd. Linking crossbar controller
US6314501B1 (en) 1998-07-23 2001-11-06 Unisys Corporation Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100246595A1 (en) * 1998-07-08 2010-09-30 Eitan Medina Linking cross bar controller
US8005104B2 (en) 1998-07-08 2011-08-23 Marvell Israel (M.I.S.L.) Ltd. Method and apparatus for controlling the flow of packets through a network switch
US20040081184A1 (en) * 2002-06-27 2004-04-29 Tellabs Operations, Inc. Apparatus and method to switch packets using a switch fabric with memory
US8937964B2 (en) * 2002-06-27 2015-01-20 Tellabs Operations, Inc. Apparatus and method to switch packets using a switch fabric with memory

Also Published As

Publication number Publication date
IL125273A (en) 2006-08-20
US20050232288A1 (en) 2005-10-20
US8005104B2 (en) 2011-08-23
IL125273A0 (en) 1999-03-12
US20100246595A1 (en) 2010-09-30
US6967962B1 (en) 2005-11-22
US20090109989A1 (en) 2009-04-30
US7738474B2 (en) 2010-06-15

Similar Documents

Publication Publication Date Title
US8005104B2 (en) Method and apparatus for controlling the flow of packets through a network switch
US5691984A (en) Compact, adaptable brouting switch
US8032655B2 (en) Configurable switching network interface controller using forwarding engine
US4761780A (en) Enhanced efficiency Batcher-Banyan packet switch
EP0335848B1 (en) Packet data switch for transferring data packets from one or a plurality of incoming data links to one or a plurality of outgoing data links
EP1045558B1 (en) Very wide memory TDM switching system
US6822958B1 (en) Implementation of multicast in an ATM switch
US20140348177A1 (en) Managing flow control buffer
US5436617A (en) Repeaters for digital data networks
US5309426A (en) High performance cascadable simplex switch
KR100307375B1 (en) Lan switch architecture
US6574232B1 (en) Crossbar switch utilizing broadcast buffer and associated broadcast buffer management unit
US20070110052A1 (en) System and method for the static routing of data packet streams in an interconnect network
US5557266A (en) System for cascading data switches in a communication node
US6741589B1 (en) Apparatus and method for storing data segments in a multiple network switch system using a memory pool
JP3152965B2 (en) Packet Autorouting and Multipath Switching Networks for Asynchronous Time Division Multiplexing Packet Switching
KR100708425B1 (en) Apparatus and method for sharing memory using a single ring data bus connection configuration
US6829245B1 (en) Head of line blocking
JP4648402B2 (en) Communication module system comprising an interface module and a communication module
USRE39026E1 (en) Bus protocol
US7254139B2 (en) Data transmission system with multi-memory packet switch
US7075928B1 (en) Detection and recovery from connection failure in an ATM switch
US6819675B2 (en) Self-route multi-memory expandable packet switch with overflow processing means
US6993018B1 (en) Priority signaling for cell switching
US6891843B1 (en) Apparatus and method for sharing memory using extra data path having multiple rings

Legal Events

Date Code Title Description
STCF Information on status: patent grant

Free format text: PATENTED CASE

CC Certificate of correction
FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 12