US20220263774A1 - Hyperscale switch and method for data packet network switching - Google Patents
Hyperscale switch and method for data packet network switching Download PDFInfo
- Publication number
- US20220263774A1 US20220263774A1 US17/558,162 US202117558162A US2022263774A1 US 20220263774 A1 US20220263774 A1 US 20220263774A1 US 202117558162 A US202117558162 A US 202117558162A US 2022263774 A1 US2022263774 A1 US 2022263774A1
- Authority
- US
- United States
- Prior art keywords
- semiconductor
- point
- switch
- data packet
- destination
- 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.)
- Abandoned
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/101—Packet switching elements characterised by the switching fabric construction using crossbar or matrix
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/66—Layer 2 routing, e.g. in Ethernet based MAN's
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
Definitions
- the present disclosure relates in general to data packet switched network systems, and more particularly, to a data packet switch management architecture for use in a data center network environment.
- Cloud computing or processing via “the cloud,” represents the delivery of on-demand computing resources over a network configuration such as the internet on a pay-for-use basis.
- Cloud computing is typically implemented via one or more data centers.
- a data center is a centralized location rendered with computing resources and crucial telecommunications, including servers, storage systems, databases, devices, access networks, software and applications.
- IT information technology
- data centers are increasing worldwide in both size and number. Over 8.6 million data centers are estimated worldwide, with such numbers expected to double every few years. Current projections of the cost to power these data centers is approximately $60 billion per year, amounting to about 8% of current global electricity production.
- Hyperscale data centers which house such massive computing infrastructures not only consume massive amounts of energy but also discharge significant pollutants into the atmosphere each year, including but not limited to hundreds of millions of tons of carbon dioxide (CO 2 ). Additional problems associated with hyperscale data centers include thermal heating and cooling requirements for ensuring proper device and system operations, increased capital costs and expenditures for diesel generators, battery backups, power conversion, cooling, and the like. Further still, size and processing limitations associated with semiconductor (e.g. silicon) electronic elements or devices, and the need for enhanced processing speed and concomitant increase in utilization of and cost for electricity contribute to the need for new technical solutions.
- semiconductor e.g. silicon
- Networked storage systems and remote computing systems can be included in high-density installations, such as rack-mounted environments.
- various physical limitations are being reached. These limitations include density limitations based on the underlying storage technology as well as computing density limitations based on the various physical space requirements for network interconnects, in addition to significant space requirements for environmental climate control systems.
- a non-Clos network data packet switch apparatus for communicating data packets from a first switch-connected peripheral device, to a second switch-connected peripheral device.
- the apparatus comprises a plurality of semiconductor crossbar switch elements disposed within a chassis and having a plurality of associated external I/O ports for connecting with corresponding peripheral devices for transceiving data packets, and a plurality of associated internal I/O ports.
- a point-to-point electrical mesh interconnect defines a direct electrical connection between one internal I/O port of each semiconductor cross bar switch element, and one internal I/O port of each other semiconductor cross bar switch element.
- a control processor is configured to maintain a lookup table mapping of peripheral device connections with corresponding external I/O ports associated with the plurality of semiconductor crossbar switch elements.
- Each semiconductor crossbar switch element is configured to: responsive to detection of a data packet on one of its external I/O ports, determine a destination semiconductor crossbar switch element for the data packet and a destination external I/O port of the destination semiconductor crossbar switch element, according to the lookup table mapping and based on an address header of the data packet. On the condition that the destination semiconductor crossbar switch element is different from the semiconductor crossbar switch element that detected the data packet on one of its external I/O ports, that element outputs the data packet and an indicator of the destination external I/O port, onto one of its internal I/O ports that is connected to the destination semiconductor crossbar switch element via the point-to-point electrical mesh interconnect. If the destination semiconductor crossbar switch element is the same as the source element according to the lookup table, the source element outputs the data packet onto its own destination external I/O port according to the lookup table.
- Each semiconductor crossbar switch element is further responsive to receipt of a data packet and an indicator of a destination external I/O port on one of its internal I/O ports for outputting the data packet, without the indicator, onto the external I/O port identified by the indicator, to the second switch-connected peripheral device, whereby the routing of data packets from the first switch-connected peripheral device, to the second switch-connected peripheral device traverses only at most two semiconductor crossbar switch elements.
- the semiconductor crossbar switch element comprises at least one integrated circuit.
- the at least one integrated circuit may be one of an ASIC and an FPGA.
- the point-to-point electrical mesh interconnect may be comprised of at least one multi-layer stack of electrically interconnected printed circuit boards.
- the at least one multi-layer stack of electrically interconnected printed circuit boards may be silicon-free.
- the stack of silicon-free electrically interconnected printed circuit boards may be via-free.
- Each semiconductor crossbar switch element is configurable for one of 10 Gb, 25 Gb, 40 Gb, 50 Gb, and 100 Gb signal line processing.
- the point-to-point electrical mesh interconnect may be comprised of a plurality of discrete internal network transmission lines or wires.
- the point-to-point electrical mesh interconnect may be embodied as twinax or coaxial cables.
- the point-to-point electrical mesh interconnect may be embodied as a fiber optic PCB design other than electrical/copper PCB.
- the embodiment can include modulation schemes to increase transmission line capacity for network traffic such as PAM or PSK or QAM modulations.
- the address header is one of a MAC address header and an IP address header.
- the lookup table stores MAC addresses or IP addresses corresponding to connected peripheral devices.
- the network is an Ethernet network.
- further processing includes performing virtual output queuing on the data packet transfers from ingress to egress of each of the semiconductor crossbar switch elements as part of the crossbar packet transfer scheduler.
- MAC or IP address headers within a lookup table are obtained and mapping updates are made to map peripheral device connections with corresponding external I/O ports associated with the plurality of semiconductor crossbar switch elements.
- a master lookup table may contain the MAC or IP address headers of the peripheral devices connected with corresponding external I/O ports associated with the plurality of semiconductor crossbar switch elements and periodically update corresponding local lookup tables for access by each of the semiconductor crossbar switch elements.
- a non-Clos network data packet switch method comprises receiving, at an external I/O port of a first network semiconductor switch element electrically connected to a peripheral device, network traffic data packet to be forwarded to a second peripheral device connected to an external I/O port of one of a plurality of network semiconductor crossbar switch elements; determining, at the first network semiconductor crossbar switch element, a destination external I/O port on which the network traffic data packet is to be forwarded, according to a lookup table mapping peripheral device connections with corresponding external I/O ports of the plurality of network semiconductor crossbar switch elements, and according to an address header corresponding to the destination peripheral device connected to the network; prepending to the network traffic data packet an indicator of the destination external I/O port of the second network semiconductor switch element; and forwarding the network traffic data packet to the second network semiconductor switch element, via a direct point-to-point electrical mesh interconnect which defines a direct electrical connection between one internal I/O port of each semiconductor cross bar switch element, and one internal I/O port of each other semiconductor cross bar switch element.
- the method further comprises receiving by the second network semiconductor crossbar switch element, at its internal I/O port connected to the first network semiconductor crossbar switch element via the direct point-to-point electrical mesh interconnect, the prepended network traffic data packet; and outputting by the second network semiconductor crossbar switch element the network traffic data packet onto the destination external I/O port to the second switch-connected peripheral device, whereby the routing of data packets from the first switch-connected peripheral device, to the second switch-connected peripheral device traverses only at most two semiconductor crossbar switch elements.
- a non-Clos data network switch system for communicating data packets from a first switch-connected peripheral device, to a second switch-connected peripheral device, comprises: a chassis; a plurality of line cards housed within the chassis and having I/O terminals for transceiving data packets; a plurality of semiconductor crossbar switch elements, each having external I/O ports in electrical communication with I/O terminals of corresponding ones of the plurality of line cards housed within the chassis, for routing data packets between switch-connected peripheral devices; a control processor configured to maintain a lookup table mapping peripheral device connections with corresponding external I/O ports associated with the plurality of semiconductor crossbar switch elements; wherein each semiconductor crossbar switch element comprises a forwarding processor configured to access the lookup table in response to a data packet received at a given external I/O port of the semiconductor cross bar switch element, and route the data packet according to the lookup table and an address header of the data packet, onto another one of the external I/O ports corresponding to a destination one of the plurality of semiconductor switch
- a network switching apparatus for communicating data packets from a first switch-connected peripheral device, to a second switch-connected peripheral device, comprises a chassis containing a plurality of line cards with each line card interconnected via a direct point-to-point mesh interconnect pattern or network.
- a control processor is configured to maintain a lookup table mapping peripheral device connections with corresponding I/O ports associated with the plurality of line cards.
- On each line card a crossbar switching element is configured to enable electrical connection of any one of the line card I/O ports through the direct point-to-point electrical mesh interconnect pattern which connects each of the plurality of line cards with every other one of the line cards, to a corresponding destination port on one of the plurality of line access cards.
- the switching connection is made in response to detection of a data packet on an ingress I/O port of a given line card.
- the data packet is routed or forwarded over the direct point-to-point electrical mesh interconnect pattern according to the lookup table mapping based on a destination address header of the data packet, whereby transmission of packets between input and output ports of any two line cards and respective cross bar switch elements occurs in only two hops.
- each switching element has a direct electrical connection to every other switching element, and egress transmission lines output from any switching element are communicated via the electrical mesh interconnect at select differential pair connections for switching purposes, with the final port destination prepended to the data packet transmitted from the switching element so that no further processing or route determination is required on the electrical mesh, and the downstream line card and switching element.
- the ingress receive lines on the switching element e.g. corresponding to the destination port or destination peripheral device
- differential pairs or alternative electrical/optical transmission styles/geometries may be implemented.
- a hyperscale switch is implemented within a plurality of silicon switching elements, at least one per line card arranged within a rack mount or chassis, each silicon switching element including a routing and forwarding engine for use with a network address identifier such as a media access control (MAC) network address received in a data packet at an I/O port, for transmission to a destination I/O port connected to a peripheral device, wherein an electrical mesh interconnect network architecture provides direct point-to-point connections with each of the corresponding I/O ports on each silicon switching element, within an Ethernet packet routing network configuration.
- MAC media access control
- the hyperscale switch is implemented with a hypervisor to create and run one or more virtual machines and/or virtualized workloads in accordance with a select network operating system.
- the network operating system may be an open source network operating system such as Openflow, or a full stack (closed) system installed with applications running natively in the operating system.
- the direct point-to-point mesh electrical interconnect pattern or network is implemented as a printed circuit backplane comprising multi-gigabit transmission lines with direct point-to-point electrical connections.
- the printed circuit backplane electrical interconnect network is achieved such that the backplane of the device is silicon-free.
- each silicon switching element is configured as an application specific integrated circuit (ASIC) or Field programmable gate array (FPGA) device (e.g. chip) and the printed circuit backplane comprising multi-gigabit copper transmission lines provide direct point-to-point electrical connections with the integrated circuit (IC) chip I/O connections (or system on a chip or SoC) on each of the respective line cards.
- ASIC application specific integrated circuit
- FPGA Field programmable gate array
- the network switching platform may be configured as a data center LAN mesh architecture embodiment so as to condense networking and provide a gateway for data services while enabling data center expansion of its network virtualization presence.
- the network switch platform is designed for versatility in multiple data center networking applications, either as a standalone high capacity switch or access, end of row, core, or interconnection switch accommodating 10/40/100G optical transceivers with migration capacity.
- Embodiments of the present disclosure include a network data packet switch comprising a chassis housing a plurality of line cards having I/O ports thereon for connecting to peripheral devices.
- Each line card includes one or more silicon switching elements such as ASICs or FPGAs having I/O ports for connecting with every other switching element through a printed circuit backplane or p-spine architecture of point-to-point direct electrical interconnections between each of the switching elements (and hence line cards) within the chassis.
- Each silicon switching element contains therein a forwarding and routing engine for routing data packets according to a packet address header such as a MAC header via the printed circuit backplane of point-to-point direct electrical interconnections from a source peripheral device connected to the network switch, to a destination peripheral device. The forwarding and routing is performed within the transmitting ASIC or FPGA (or SoC) according to a lookup table containing routing information stored thereon.
- embodiments of the present disclosure provide for a line card with silicon switching element having a forwarding engine co-located on the line card with routing functionality, whereby communications and routing into/out of the line card and silicon switching element via the point-to-point direct electrical interconnection mesh backplane provides reduced serializer/deserializer (SERDES) components and I/O gateway tolls that increase switch speed or throughput speed, while reducing power and I/O component requirements.
- SERDES serializer/deserializer
- each line card is configured in a non-Clos packet switching network and includes a plurality of integrated circuits which define a fabric cross bar implementation, wherein each integrated circuit on each line card has a direct (i.e. point-to-point) electrical connection via a printed circuit board backplane, with every other integrated circuit on every line card connected via the printed circuit backplane structure.
- each line card is configured in a non-Clos packet switching network and includes a plurality of field programmable gate array (FPGA) components which define a fabric cross bar implementation, wherein each FPGA on each line card has a direct (i.e. point-to-point) electrical connection via a silicon-free printed circuit board backplane, with every other FPGA on every line card connected via the silicon-free printed circuit backplane structure.
- FPGA field programmable gate array
- the FPGA may be replaced and/or integrated with components including one or more processor cores, microprocessors or microcontrollers, DSPs, graphics processor (GPU), on chip memory, hardware accelerators, peripheral device functionality such as Ethernet and PCIE controllers, and the like, for implementation as a system on a chip (SoC) in connection with communication via the direct point-to-point electrical interconnect structure.
- processor cores microprocessors or microcontrollers
- DSPs graphics processor
- GPU graphics processor
- hardware accelerators such as Ethernet and PCIE controllers, and the like
- SoC system on a chip
- the architecture of the direct (i.e. point-to-point) electrical connection interconnect structure connecting each of the semiconductor cross bar switch elements having integrated within each semiconductor cross bar switch element MAC, data packet routing and disposition, FIFO output queuing and congestion management processing, VLAN, VXLAN, and VOQ functionality may be implemented as a virtual switch for execution on a high performance computer server to provide for virtual segmentation, securitization, and reconfiguration.
- FIGS. 1A and 1B are simplified schematic diagrams of tiered network switch architectures according to the prior art.
- FIG. 1C is a simplified schematic diagram of a non-Clos network data packet switch architecture according to an embodiment of the present disclosure.
- FIG. 2 is a more detailed schematic diagram of a network data packet switch architecture according to an embodiment of the present disclosure.
- FIGS. 2A, 2B, 2C, and 2D illustrate exemplary partial and cutaway views showing components of a network data packet switch architecture according to an embodiment of the present disclosure.
- FIG. 3 is an exemplary illustration of components of a semiconductor crossbar switch element embodied as an FPGA architecture disposed on a line card with I/O interconnects to a printed circuit backplane of point-to-point direct electrical interconnections between different semiconductor switch elements for implementing the data packet network switching functionality according to an embodiment of the disclosure.
- FIG. 4 is a more detailed illustration of FIG. 3 , depicting transmit (egress) signal lines out of a semiconductor switch element to interconnections on the printed circuit backplane for data packet transmission to a destination device for implementing the network switch functionality according to an embodiment of the disclosure.
- FIG. 4A is a more detailed illustration of FIG. 3 , depicting receive (ingress) signal lines out from the printed circuit backplane to a receiving (ingress) semiconductor switch element for data packet reception at a destination device for implementing the network switch functionality according to an embodiment of the disclosure.
- FIG. 5 is a schematic diagram illustrating components of switch flow module processing associated with a semiconductor switch element embodied as an FPGA architecture for controlling the network data packet transfer from source to destination peripheral devices according to an embodiment of the disclosure.
- FIG. 6A-6B is a process flow illustrating a method of sending a data packet through a network switch with semiconductor switch elements and point-to-point electrical mesh interconnect according to an embodiment of the present disclosure.
- FIG. 6C is an exemplary illustration showing fields of a lookup and routing table for processing the data packet transfer from source to destination according to an embodiment of the present disclosure.
- FIG. 7A is an exemplary illustration of the point-to-point electrical mesh interconnect structure for providing direct connection between integrated circuits on a plurality of line cards for data packet transfer according to an embodiment of the present disclosure.
- FIG. 7B is an exemplary illustration of the point-to-point electrical mesh interconnect structure showing select signal communication lines for providing direct connection between semiconductor switch elements disposed on line cards for data packet transfer according to an embodiment of the present disclosure.
- a switch fabric may include a card modular platform.
- a card modular platform typically comprises a backplane and multiple switch fabric modules and/or other types of boards, such as servers, routers, telco line cards, storage cards and so on, contained within a single unit, such as a chassis or shelf, for example, that permits data packet switching between a plurality of network nodes, thereby forming the switch fabric between the network nodes.
- FIG. 1A illustrates a switch interconnect in the form of a Clos network 100 according to the prior art.
- Clos network 100 includes packet switches having uplink ports that are coupled to uplink ports of other packet switches.
- the packet switches also include downlink ports that may be coupled to hardware resources or peripheral devices (labeled as servers A through H). Such peripheral devices may be implemented not only as servers but as network interfaces, processors, storage area network interfaces, hosts, and so on.
- the Clos network switching architecture of the prior art may implement a Clos or folded Clos network having a leaf and spine with fabric module architecture as shown in FIG. 1A .
- Each leaf server or line card device of FIG. 1A is represented as element 110 (shown as 110 a - 110 d ) and the spine with fabric module is represented as element 120 (shown as 120 a - 120 d ).
- the servers are connected to leaf switches (such as top of rack or TOR switches) with each leaf switch connected to all spine switches.
- each peripheral device or server is at least three physical hops away from every other peripheral device, as the processing requires data packet routing from a source peripheral device (e.g. server A) to a destination peripheral device (e.g. server E) through a 3 hop leaf and spine network (e.g. 110 a , 120 b , and 110 c ) to reach its destination.
- the structure may be further expanded to a multi-stage (e.g. 5-stage CLOS) by dividing the topology into clusters and adding an additional spine layer (also referred to as a super-spine layer).
- an additional semiconductor device operative as a staging module for assessment in the route for packet forwarding fabric requires each device to be 5 hops away from one another. As each hop through a semiconductor device suffers from dissipating power (work) through resistance and loss of throughput speed traversing through the semiconductor, such a system exhibits several disadvantageous features. Aspects of the present disclosure integrate the crossbar switching functionality, the forwarding and routing, virtual output queuing, VLAN, and control plane integration within a semiconductor FPGA device, integrated circuit, or SoC, which may be implemented on a line card, in order to achieve the advantages discussed herein.
- FIG. 1B shows another CLOS switching embodiment, including Multi-Chassis Link Aggregation Group (MLAG or MCLAG). Servers may be can be connected to two different leaf 110 ′ or TOR 101 switches in order to have redundancy and load balancing capability.
- the prior art CLOS architecture embodiment of FIG. 1B may utilize both OSI layer 2 (L2) packet switching as well as layer 3 (L3) routing, where packets are sent to a specific next-hop IP address, based on a destination IP address.
- FIG. 1B shows a CLOS topology using Layer 3 routing for spine 120 ′ to leaf 110 ′ connections and multiple TOR as well as leaf switch instantiations. Similar to the routing requirements of FIG. 1A , the CLOS architecture of FIG.
- 1B also requires multiple hops through additional semiconductor devices in the routing of a data packet for traversing the data packet switch network in order to transfer packets from one peripheral device (e.g. server A) to another peripheral device (e.g. server C).
- Each hop through a semiconductor suffers from dissipating power through the resistance physics of semiconductors and loss of throughput speed traversing through the semiconductor.
- embodiments of the present disclosure provide a non-Clos network implemented as a collapsed or flattened (e.g. linear) form of network element architecture and data packet switching, which reduces the number of hops between I/O devices, while increasing the speed and reducing the power requirements for a given switching operation.
- a non-Clos network implemented as a collapsed or flattened (e.g. linear) form of network element architecture and data packet switching, which reduces the number of hops between I/O devices, while increasing the speed and reducing the power requirements for a given switching operation.
- embodiments of the present disclosure integrate within a single semiconductor switch element multiple functionalities which serve to reduce power dissipation, increase switch speed, and maintain industry standard form factor within a data network architecture.
- embodiments of the present disclosure integrate previously disparate functionalities onto or within a single semiconductor switch element to provide forwarding and routing engine and crossbar switching functionality, virtual output queuing (VOQ), and VLAN functionality within a non-Clos mesh network data packet switch.
- VOQ virtual output queuing
- a chassis which houses multiple line cards or line card blades, where each line card has a faceplate with slots configured to receive a peripheral device connection.
- Each line card may contain a semiconductor crossbar switching element implemented as an integrated circuit or FPGA or system on a chip and configured to route data packets through a direct point-to-point electrical mesh interconnect.
- the electrical mesh interconnect directly connects I/O ports on each of the semiconductor crossbar switching elements with every other semiconductor crossbar switching element, whereby data packet routing is accomplished according to an address header on the received data packet and a lookup table of peripheral device connections associated with the semiconductor crossbar switching element, to thereby enable a 2 hop packet switch network.
- the network may be implemented as a hyperscale or compound switch.
- card configurations e.g. horizontal, vertical, or combinations thereof
- the term “hop” represents a single physical hop that includes a direct physical connection between two devices in a system.
- a single physical hop can be defined as a traversing or routing of a data packet which traverses through an integrated circuit (e.g. an FPGA, microchip, ASIC, or other programmable or reprogrammable chip device) and any one set of its transceivers or serializer/deserializer (SERDES) device input(s) to its SERDES device output(s) on a switching element.
- an integrated circuit e.g. an FPGA, microchip, ASIC, or other programmable or reprogrammable chip device
- SERDES serializer/deserializer
- Exemplary embodiments of the present disclosure may implement a network data packet switch comprising line cards configured within a chassis and each having disposed thereon (or associated therewith) a semiconductor crossbar switch element connected with every other semiconductor crossbar switch element with fabric module via a direct point-to-point electrical mesh interconnect backplane structure.
- the backplane structure may be semiconductor or silicon-free.
- the direct point-to-point electrical mesh interconnect backplane structure may be implemented as a printed circuit electrical mesh interconnect.
- the direct point-to-point electrical mesh interconnect backplane structure may be implemented as a plurality of discrete wires (e.g. micro wires or nano wires).
- embodiments of the present disclosure provide for a semiconductor crossbar switch element having a forwarding engine co-located on a line card with routing functionality whereby communications and routing into/out of the switch element (and hence line card) via a direct point-to-point electrical mesh interconnect provides reduced SERDES and I/O gateway tolls that increase switching throughput or decrease switch latency, while reducing power and I/O component requirements.
- each switch element includes one or more ASICs or field programmable gate array (FPGA) components which together with the direct point-to-point electrical mesh interconnect define a fabric cross bar implementation.
- FPGA field programmable gate array
- Each switch element is associated with a line card, and each FPGA on each line card has a direct (i.e. point-to-point) electrical connection (via the silicon-free printed circuit board backplane) with every other FPGA on the corresponding line card.
- semiconductor crossbar switch elements 1004 (data network packet switches) labeled as L1-L5 are configured in a flattened architecture so that data packet communication between resources (e.g. peripheral devices identified as server A-server K) is accomplished with a reduced number of hops.
- each semiconductor switch element e.g. L1
- has a plurality of associated external I/O ports e.g. 1004 a ) for connecting with corresponding peripheral devices (e.g. server A) for transceiving data packets.
- Each semiconductor switch element also has a plurality of associated internal I/O ports 1004 b .
- a point-to-point electrical mesh interconnect 1003 defines a direct electrical connection between one internal I/O port of each semiconductor cross bar switch element, and one internal I/O port of each other semiconductor cross bar switch element.
- a control processor 1005 is configured to maintain a lookup table (LUT) 1006 mapping of peripheral device connections with corresponding external I/O ports associated with the plurality of semiconductor crossbar switch elements.
- semiconductor crossbar switch element L1 determines a destination switch element (e.g. L5) for the data packet and a destination external I/O port of the destination semiconductor crossbar switch element (e.g.
- the destination semiconductor crossbar switch element On the condition that the destination semiconductor crossbar switch element is different from the semiconductor crossbar switch element that detected the data packet on one of its external I/O ports, that element outputs the data packet and an indicator of the destination external I/O port, onto one of its internal I/O ports that is connected to the destination semiconductor crossbar switch element via the point-to-point electrical mesh interconnect (e.g. 1003 a ). If the destination semiconductor crossbar switch element is the same as the source element according to the lookup table (e.g. data packet communication between server A and server B), the source element (e.g. L1) outputs the data packet onto its own destination external I/O port (e.g.
- the matrix configuration of semiconductor crossbar switch element connections to one another through the point-to-point electrical mesh interconnect, and the re-direct I/O connection when the point-to-point electrical mesh interconnect is not utilized (for same destination board/same destination semiconductor switch element I/O), provides for a system with less power dissipation, increased throughput speeds, and reduced cooling energy requirements.
- each semiconductor crossbar switch element (e.g. L5) is further responsive to receipt of a data packet and an indicator of the destination external I/O port at one of its internal I/O ports.
- the ingress semiconductor element receives and outputs the data packet, without the indicator, onto the external I/O port identified by the indicator (e.g. 1004 c ), to the second switch-connected peripheral device (e.g. server K).
- the second switch-connected peripheral device e.g. server K
- the architecture of the present disclosure implements data packet switching with reduced hops and increases the routing speed or throughput within the system, reduces the power required by traversing less transceiver or SERDES I/O chips, and results in less heat being produced, thereby achieving substantially reduced electrical power consumption and associated heat (thermal output).
- the data packets may comprise a stream of data units (e.g., data packets, data cells, a portion of a data packet, a portion of a data cell, a header portion of the data packet, a payload portion of the data packet, etc.) from a peripheral processing device (devices A-K).
- the data packet stream forwarded from the first switching element L1 connected to the peripheral processing device A and destined to the peripheral processing device K has prepended onto it an indicator of the destination I/O port for processing through the second crossbar switch element L5 via the direct electrical mesh interconnect 1003 a.
- Each data packet delivered to and detected by an external I/O port of a semiconductor crossbar switch element includes a header comprising an identifier of the source peripheral processing device (e.g., an Internet Protocol (IP) address or a medium access control (MAC) address of the peripheral processing device), and an identifier of the destination peripheral processing device (e.g., an IP address or a MAC address of the peripheral processing device).
- IP Internet Protocol
- MAC medium access control
- the egress semiconductor crossbar switch element strips off the destination address (e.g. the destination MAC address) and uses this address as an index to lookup table 1006 .
- the lookup table contains entries mapping each of the semiconductor crossbar switch elements with I/O ports according to the point-to-point connectivity of electrical mesh interconnect to the internal I/O ports of each switch element, and each of the external I/O connections to each of the known peripheral devices.
- the lookup table mapping provides the particular destination (ingress) semiconductor cross bar switch element and corresponding external I/O port of that destination element that connects to the destination peripheral device.
- the egress semiconductor crossbar switch element then activates a corresponding one of its internal I/O ports that connects, via the point-to-point electrical mesh interconnect, to the corresponding (ingress) destination switch element that is connected to the destination peripheral device.
- the egress semiconductor switch element also prepends to the data packet the corresponding external I/O port of the destination semiconductor switch element device to which the data packet is to be forwarded onto, based on the lookup table mapping.
- the internal I/O port activated at the egress semiconductor crossbar switch element transfers the data packet with the destination external I/O port identifier, over the direct electrical connection mesh interconnect, to an internal I/O port of the destination (ingress) semiconductor switch element.
- This destination semiconductor switch element reads the data packet header containing the prepended information of the external I/O port, discards any extraneous header data, and routes the data packet through this switch and onto that port which is directly connected to the destination peripheral device for receipt by that device.
- apparatus 200 for communicating data packets from a first switch-connected peripheral device (e.g. device A of FIG. 1C ), to a second switch-connected peripheral device (e.g. device K of FIG. 1C ) within an Ethernet architecture.
- apparatus 200 illustrates a modular architecture wherein a plurality of circuit boards or line cards 220 a , 220 b , . . . 220 n , are housed within chassis 210 .
- the line cards may be implemented as modular circuit boards, each having a faceplate with I/O ports or slots for connection with peripheral devices for transceiving data packets. It is understood that various types of serial links may be utilized for connection therewith, such as Peripheral Components Interconnect/PCIe, by way of non-limiting example.
- the I/O communications between peripheral devices may be implemented as one or more of 10 Gb, 25 Gb, 40 Gb, 50 Gb, 100 Gb and/or other relative data rate signal line processing.
- the integrated fabric module 215 includes each of the semiconductor crossbar switch elements 225 a , 225 b , . . .
- a control plane For each semiconductor crossbar switch element associated with a given line card, a control plane includes a control micro-processor and CPU memory in communication with a master controller 240 and address routing table (e.g. via a separate Ethernet connection) for receiving routing table entries and updates for transfer into each of the semiconductor switch elements. Once received in each of the switch elements (e.g. FPGAs), each routing table gets populated into the forwarding engine for each of the switch flow modules in each of the FPGAs.
- the switch elements e.g. FPGAs
- FIGS. 2A-2D illustrate an exemplary embodiment of the schematic structures illustrated in FIG. 1C and FIG. 2 .
- like reference numerals are used to indicate like parts.
- a plurality of rack mounted modular line cards 220 a , 220 b , . . . , 220 n may be removably inserted into a corresponding slot or cavity within the chassis.
- 16 line cards i.e. 220 1 , . . . , 220 16
- other configurations may be implemented.
- each line card has disposed thereon a semiconductor crossbar switch element in the form of an FPGA.
- Each FPGA is connected to every other FPGA on a separate line card, via a vertical backplane point-to-point electrical mesh interconnect 230 .
- the on board FPGA chips have internal I/O ports connected in point-to-point fashion via a silicon-free printed circuit board trace interconnect backplane.
- a motherboard 240 containing a master computer processing unit (CPU) and lookup/routing tables provides control and communications via a control plane with each of the FPGAs ( FIG. 3 ) disposed on line cards 220 .
- Power is provided via a power control board 250 containing a power supply and accompanying electronic circuits and is configured at the basis of the chassis.
- the power supply module may include, for example, a 12 V power supply, AC/DC module, and distribution module for supplying power to the system.
- a fan assembly 260 is mounted at a back end of the chassis and includes a series of fans positioned relative to the line cards and backplane structures so as to provide optimal cooling to the unit.
- the illustrated embodiment includes a series of I/O ports on its faceplate for receiving, and outputting signals through the line card with integrated fabric structure in a manner that reduces the number of hops, increases speed and reduces power consumption.
- the point-to-point electrical mesh interconnect may be implemented as a plurality of vertically oriented printed circuit boards with trace connections electrically connected to each of the FPGA's internal I/Os on each line card via appropriate connector modules 232 , 234 according to the desired I/O port speed for the particular switch elements.
- connectors such as those manufactured by Molex may used to provide 64 transmission line differential pairs within a given connector module (e.g. 10 Gb transmission).
- FIG. 2D shows a more detailed view of an exemplary line card useful for implementing an embodiment of the present disclosure.
- line card 220 may be implemented in a standard 1U (1.75 inch height) configuration.
- faceplate slots 222 are configured to receive peripheral device connections via a standard pluggable interface for communicating data packets over the network interface.
- Connectors 224 operate to convey the I/O data packets directly from each of the faceplate terminals (lines not shown in FIG. 2D ) to corresponding external I/O ports (not shown in FIG. 2D ) of the semiconductor crossbar switch element disposed on circuit board 223 of line card 220 .
- circuit board 221 provides direct I/O connections from the faceplate to board 223 via connectors 224 , but is effectively available for utilization for other processing and/or networking functionality.
- a control processor is configured to maintain a lookup table mapping peripheral device connections with corresponding I/O ports associated with the plurality of line cards.
- a crossbar switching element e.g. L1, L2, . . .
- the crossbar switching element is adapted to enable electrical connection of any one of the line card I/O ports through direct point-to-point electrical mesh interconnect pattern ( 1003 ) which connects each of the plurality of line cards with every other one of the line cards, to a corresponding destination port on one of the plurality of line access cards, in response to detection of a data packet on an ingress I/O port of a given line card, and according to the lookup table mapping based on an address header of the data packet.
- direct point-to-point electrical mesh interconnect pattern 1003
- the control plane includes a control micro-processor and CPU memory in communication with the motherboard on each line card for transfer of routing table entries into each of the FPGAs.
- the routing table gets populated into the forwarding engine for each of the switch flow modules ( FIG. 5 ) in each of the FPGAs.
- Each SFM has the forwarding engine which uses that table.
- each SFM may have its own table. The logic that accesses that table is represented as the forwarding engine.
- FIG. 3 is illustrative of the components of each of the semiconductor cross-bar switch elements labeled generally as 225 ( FIG. 2 ) and disposed on a circuit board such as a line card 200 ( FIG. 2 ) according to an exemplary embodiment of the disclosure.
- FIGS. 4 and 4A illustrate more detailed representations of element 225 disposed on a line card 200 , including an illustration of exemplary signal paths among components and particular Tx/Rx communications within the fabric.
- each semiconductor crossbar switch element includes a field programmable gate array (FPGA) 225222 disposed on a circuit board implemented as a line card.
- FPGA field programmable gate array
- three FPGAs 22522 a , 22522 b , and 22522 c are disposed on each line card and implemented as routing and forwarding engine in order to route the data packet signals (e.g. 48 lines of one or more of 10 Gb, 25 Gb, 40 Gb, 50 Gb, 100 Gb).
- Each FPGA has its external I/O ports 22530 directly connected to corresponding terminals of connectors 224 .
- Internal I/O ports 22520 are connected with every other FPGA on every other line card via a direct (i.e. point-to-point) electrical mesh interconnect through connectors 232 , 234 .
- T/R transceiver
- the forwarding engine By enveloping the functionality of the forwarding engine, crossbar switch, control plane, and point-to-point electrical mesh interconnect within an integrated fabric of the semiconductor crossbar switch element, the number of chip traversals needed to forward a packet from one peripheral device to another is reduced. Hence, the power costs corresponding to the number of serial/parallel/serial conversions or SERDES traversals, are advantageously reduced through the present architecture and processing. More particularly, as the routing and forwarding engine along with the switching functionality is all performed within the semiconductor switching element (e.g. silicon FPGA) and data packets communicated between egress and ingress FPGAs through the point-to-point electrical mesh interconnect, significant power reduction is realized.
- the semiconductor switching element e.g. silicon FPGA
- Each FPGA has associated packet buffering functionality for regulating network traffic and mitigating network congestion and which may be implemented as one or more DDR memory units 22550 .
- Clock (CLK) sources 22560 associated with each of the FPGAs are configured to control timing and routing of data packets, processes, and control mechanisms throughout the chip.
- the vertical backplane electrical mesh interconnect structure is configured as having a maximum of 72 differential pairs of signals (Tx/Rx).
- Each semiconductor switch element associated with each line card has 3 FPGAs per line card.
- 48 FPGA chips may be accessed within the chassis such that, for 72 differential pairs, the pathways traversing the various connectors, for each handling 50 Gbe, corresponds to 4 TB per connector.
- the communications paths between peripheral devices are non-optical within the apparatus. Only at the control plane where QFSP/FSP optical processing occurs, which processing is not part of the data packet forwarding path.
- each of the printed circuit boards is via-free, with each board having multiple layers or laminates for processing the various Tx/Rx signal paths.
- data packets enter the line card with address data content and each packet is addressed by tables controlled and updated by the motherboard to one of the 48 outputs on the chip.
- Transmission is fanned out on all three modules while reception (over the mesh interconnect) is provided on a subset of FPGA modules for a given line card.
- the switch element 225 is configured to perform all of the routing and disposition on the chip such that the forwarding engine and routing engine is co-located within the switch element on the corresponding line card 220 .
- ultimate point-to-point connection and routing over the electrical mesh interconnect provides an essentially wired communication path which reduces the SERDES requirements for each differential pair entering/exiting the transceiver face of the line card.
- the circuit board or line card is composed of multiple different routing layers of separate transmit and receive layers.
- the electrical mesh interconnect embodied in one or more printed circuit boards contains corresponding multiple laminate layers for signal transmit and receive functionality.
- FIG. 4 illustrates operation of the switch element in connection with the point-to-point electrical mesh interconnect showing select signal line connections 22535 (internal I/O ports) for activation and forwarding of data packets on the egress side of FPGA 22522 c . Also illustrated are switch element I/O signal line connections 22537 (external I/O ports) to select terminals 224 for connection with the peripheral devices for each of FPGAs 22522 a - c.
- FIG. 4A illustrates operation of the switch element in connection with the point-to-point electrical mesh interconnect showing select signal line connections 22536 (internal I/O ports) for receiving data packets at the ingress side of each FPGA 22522 a - c . Also illustrated are switch element I/O signal line connections 22538 (external I/O ports) to select terminals 224 for connection with the peripheral devices for each of FPGAs 22522 a - c.
- FIG. 7A is an exemplary illustration of the point-to-point electrical mesh interconnect structure for providing direct connection between integrated circuits on a plurality of line cards for data packet transfer according to an embodiment of the present disclosure.
- Each terminal connection provides a separate routing path for a differential pair connection associated with 16 line cards/switch elements.
- FIG. 7B is an exemplary illustration of the point-to-point electrical mesh interconnect structure showing select signal communication lines 22 for providing direct connection between semiconductor switch elements disposed on line cards for data packet transfer according to an embodiment of the present disclosure.
- select connector paths for the differential pairs are fixedly established between internal I/O terminals according to FPGA I/O arrangement and line card identification.
- the connection within a given layer of the mesh interconnect shows signal path connectivity between line cards 1 , and 14 , 15 , and 16 , by way of non-limiting example.
- a control plane on each switch element associated with each line card comprises an internal Ethernet network in communication with the motherboard for communicating independently with each line card/switch element. Communication is accomplished by the control plane sending to each of the line cards their routing table(s) to establish each line card's configuration as to where to send data packets on the network.
- a plurality of QSFP ports e.g. 2 bidirectional QSFP ports from mother board to each line card—2 per line card
- n 16 QSFP control signals and 16 line cards within the system in order to provide point-to-point control via the Ethernet within the system.
- modulation schemes such as PAM-4, QAM, QPSK may be implemented within the system as is understood by one of ordinary skill in the art.
- a processor such as an Intel Pentium or Xilinx processor or other such microprocessor device is configured on the control plane for controlling the routing through the network.
- the control plane operates to constantly read source device addresses (e.g. source MAC address) for devices to add to and/or update the table of connections within the system.
- each port is numbered and associated with line card, FPGA, and point-to-point fabric electrical interconnect and is known a priori.
- MAC addresses are required to decay at periodic intervals (e.g. 5 sec.), in order that a new device may connect to the network (or an existing device may be maintained), the control plane is constantly responsive to such device broadcasts and reads, updates, and downloads from its master table within the management plane, the mapping table in order to provide refreshed look up tables for each of the semiconductor switch elements associated with each line card. Accordingly, the system learns via the source MAC address of each peripheral device its relative location on the network and based on a received destination MAC address, operates to obtain the destination location (e.g.
- the system is operable to index down into the payload in order to retrieve the address (e.g. VXLAN processing).
- the semiconductor crossbar switch element forwards the data packet along with the requisite destination output port number via the electrical mesh interconnect, thereby consolidating the forwarding engine into the switching engine.
- an embodiment of the present disclosure provides for an internal network such as an Ethernet network linking the motherboard or master control to all of the line cards in the chassis.
- a second internal Ethernet network is disposed on each line card and links all of the FPGAs on each line card to the control microprocessor (e.g. 22500 ).
- the master lookup table is populated (at the motherboard) and updated with requisite peripheral device connections and flow control is provided to each of the lookup tables on each of the N line cards via N separate parallel Ethernet channels to enable simultaneous writes/updates of the respective tables on each line card.
- the microprocessor on each line card then sends out the updated tables to each FPGA to enable routing.
- the microprocessor on each chip may be an ARM processor operable to execute at a 10G line rate to enable efficient table access and updates (e.g. 3.33 GHz).
- the master controller CPU on the motherboard through the network operating system writes the look up tables onto each of the line card/semiconductor switch elements and calls a device driver to modify a programmable chip.
- FIG. 5 shows an exemplary internal FPGA architecture of a hyper scale switch slice (HSS) according to an embodiment of the present disclosure.
- HSS hyper scale switch slice
- the HSS diagram effectively equates to a single FPGA, with 2 or, in the present embodiment, 3 FPGAs in a line card.
- 16 line cards are provided in a hyper scale switch chassis and dependent upon the line card capability as a 10/25/40/100G Ethernet functionality.
- a plurality of Switch Flow Modules (SFM) e.g. 58
- SFM Switch Flow Modules
- Other numbers of instantiations may be required for different rate switching (e.g. 40 Gb).
- the SFM contains the ingress/egress FIFO, Routing Lookup Table and sequencers.
- the SFM is triggered and commences packet transfers in reaction to the Ethernet MAC core control signals emanating from the core microprocessor (e.g. Xilinx Ethernet Core) on the I/O side indicating reception of a packet.
- the core microprocessor e.g. Xilinx Ethernet Core
- An additional way that triggers will occur are for packets that come in via the transceiver to cause the sequencer/scheduler to initiate a request to transfer to the appropriate egress port via a cut through flow.
- the appropriate port is determined from the router lookup table and hash function to reduce the address space.
- the egress stage of the SFM grants requests through an arbiter that resolves simultaneous requests from multiple SFMs.
- a User Interface AXI Bus manages the router and lookup tables. Quality of Service (QoS) prioritization is implemented in accordance with Ethernet rules.
- QoS Quality of Service
- overflow processing is provided so as to divert packets that cannot be forwarded due to contention to a buffer for subsequent processing.
- FIG. 6 in conjunction with FIG. 5 , there is disclosed a process flow illustrating steps for sending a data packet through a semiconductor crossbar switch element and electrical mesh interconnect according to an embodiment of the present disclosure.
- the direct connect SFMs each have direct connections to the electrical mesh network 230 for packet transport.
- each of the I/O SFMs of each FPGA can accept requests from both direct connect SFM modules as well as I/O SFM modules of the FPGA.
- Direct connect SFM modules are configured so as not to be able to send requests to other direct connect SFMS.
- each FPGA's SFM digital logic circuit modules and functionality and behavior may be implemented in hardware description language (HDL) useful in describing the structure and behavior of those modules depicted in FIG. 5 .
- HDL hardware description language
- a data packet is received at SERDES 1 and communicated to MAC processing module 10 which provides up-chip or down-chip processing (depending on ingress/egress flow) ( FIG. 6 block 610 ).
- Sequencer module 20 operates to strip off the MAC source address and destination address from the incoming packet ( FIG. 6 block 620 ).
- the source address is utilized by the system for learning (e.g. MAC learning) to determine what devices are connected to the network at particular ports and update the master table and corresponding downstream tables for each of the line cards.
- learning e.g. MAC learning
- the system forwards to the microprocessor for delivery to the motherboard for formulation into each of the lookup tables.
- the destination address is used as an index into the lookup table (LUT) 30 on SFM A in order to determine the output port to route the packet to.
- FIG. 6C is an example showing a LUT wherein an 11 bit field is stored, including 4 bits for line card identification (e.g. line card 1 - 16 ), 2 bits for FPGA identification on the line card (e.g. FPGA 1 - 3 ), and 5 bits of I/O in order to map to 32 different I/O ports.
- a 2 bit field identifying whether the packet at that particular FPGA is to be routed via the direct electrical mesh interconnect structure or whether the routing pathway is merely internal to the particular FPGA and/or line card associated with that FPGA (and therefore not sent via the electrical mesh fabric interconnect) may also be provided. Under such condition (i.e. 11 (PSP)) the route path would not pass via the direct electrical mesh interconnect structure (e.g. source and destination on one of the FPGA's on the same line card).
- PGP direct electrical mesh interconnect structure
- the sequencer module utilizes the MAC address as an index to find the mapping location and raise a request (module 40 ) to a corresponding SFM (e.g. SFM B) that is connected to the determined line card and the determined FPGA on the line card, in order to route the data packet to the appropriate destination ( FIG. 6 block 630 ).
- Arbiter module 50 receives the request from I/O SFM A (as well as any other SFM requesting packet transfer) and selects the particular request for processing ( FIG. 6 block 640 ).
- the packet is transported via the cross-bar multiplexer (MUX) arrangement 60 - 65 for downstream processing ( FIG. 6 block 650 ).
- MUX cross-bar multiplexer
- the queued data packet in buffer 70 is transferred via MUX units 60 , 65 to the egress FIFO (e.g. module 68 ) on direct connect SFM B.
- the SFMs 601 - 632 are configured to accept both 10G and 40G pathways via their respective egress FIFO queues ( 68 , 69 ) which are prioritized according to the quality of service (QOS) processing module 71 and QOS FIFO queue module 72 ( FIG. 6 block 660 ).
- QOS quality of service
- the QOS module interacts with the VLAN processing to select and sequence via MUX 74 packets among the different process flows (e.g.
- MUX 74 performs priority swap or selection according to the priority of service whereby packets and their priorities are linked according to the queues (i.e. next in line processing) 72 and staging FIFO (e.g. I/O FIFO) 76 .
- the FIFO operates to enable different data rates (10G/40G) to proceed through the FPGA by means of skewing/de-skewing the data rates by via input to the FIFO at a first rate and output from the FIFO at a different rate, as is understood by one of ordinary skill.
- the sequencer 580 receives the packet and correlates the port number prepended on the packet in port number queue 582 with the packet number staging and routing of the packet to the destination port address ( FIG. 6 block 680 ).
- request processing and communication onto the particular port associated with the FPGA via the particular SFM is made through the crossbar (e.g.
- flow 585 which proceeds through the respective SFM ( 501 - 526 ) to the output port (e.g. flow 586 ) for receipt by the port connected peripheral destination device ( FIG. 6 block 690 ).
- flow arrows identified as AA, BB, and CC represent data packet flows through the crossbar (e.g. at 22 GB rate), with flow arrows identified as AA being at a rate of about 22 GB, and arrows BB and CC representing data packet rates of 10 GB and 40 GB rates, respectively.
- the FPGA architecture further includes overflow processing SFMs (e.g. 6 instantiations) to alleviate throughput bottlenecks.
- SFMs e.g. 6 instantiations
- a request is made to deposit the overflow packets to an external repository 804 via flow 802 .
- Overflow packets may be retrieved from DDR (e.g. DDR4) FIFO 804 via flow 806 .
- processing proceeds to the next packet in the queue for a request. Processing of that next packet then proceeds as outlined hereinabove. In the event that the request is granted and processing of that next packet proceeds to its destination port, then a new request is made for the previously denied packet. Otherwise, in the event of a second denial, processing proceeds to the next packet in the queue for a request. As the denial of service request provides for multiple (e.g. three deep) sequential packet requests, if the third packet in line gets denied, processing reverts back to the first packet for making a new request.
- a non-Clos data network switching apparatus for communicating data packets from a first switch-connected peripheral device, to a second switch-connected peripheral device, the apparatus comprising a chassis; a plurality of line cards housed within the chassis and having I/O ports for transceiving data packets; a control processor configured to maintain a lookup table mapping peripheral device connections with corresponding I/O ports associated with the plurality of line cards, a crossbar switching element on each line card, the crossbar switching element configured to enable electrical connection of any one of the line card I/O ports through direct point-to-point electrical mesh interconnect pattern which connects each of the plurality of line cards with every other one of the line cards, to a corresponding destination port on one of the plurality of line access cards, in response to detection of a data packet on an ingress I/O port of a given line card, and according to the lookup table mapping based on an address header of the data packet, whereby transmission of packets between input and output ports of any two line cards and respective cross bar switch elements occurs
- embodiments are provided by way of example only, and other embodiments for implementing the systems and methods described herein may be contemplated by one of skill in the pertinent art without departing from the intended scope of this disclosure.
- embodiments disclose a data packet network architecture, apparatus, device, and/or method that implements the semiconductor crossbar switch element onto or associated with a given line card, such configuration is not essential to the practice of the disclosure, as such switch elements may be implemented in or onto other substrates, such as a backplane (or midplane), by way of non-limiting example.
- embodiments of the present disclosure illustrate a printed circuit electrical mesh interconnect, and connected in an interleaved backplane structure (relative to the line card/switch element configuration) such configuration is an advantageous embodiment but is not essential to the practice of the disclosure, as such electrical mesh interconnect may be implemented via other means, such as direct wire connection with no backplane or printed circuit board), and/or via other non-backplane structure (e.g. on a line card).
- discrete wires such as micro coaxial or twinaxial cables, twisted pairs, or other direct electrical wire connections may be made with the internal I/O ports of each of the FPGAs through connectors and micro wire cables such as those provided for high speed interconnects. Modification may be made for pigtails for cable ready applications.
- implementation of the present disclosure may be made to virtual switches within a data center or other segmented software-controlled data packet switching circuit.
- the form of a plurality of semiconductor crossbar switch elements interconnected via a direct point-to-point electrical mesh interconnect with integrated switching, forwarding and routing functionality embedded into each crossbar switch may be substituted for the prior art (e.g. Clos network) implementations, in order to reduce hops, decrease power dissipation and usage, and enable execution on a high performance computer server to provide for virtual segmentation, securitization, and reconfiguration.
- the semiconductor crossbar switch elements may be configured as virtual switches within a virtual machine (VM) for providing routing using MAC address header and lookup table mapping of configuration elements.
- VM virtual machine
- the present disclosure enables OSI layer 2 or layer 3 switching for redirecting data message traffic, using the destination Media Access Control (MAC) address and logical sublayers to establish initial connection, parse the output data into data frames, and address receipt acknowledgments and/or queue processing when data arrives successfully or alternatively, processing is denied.
- MAC Media Access Control
- processing systems described herein may include memory containing data, which may include instructions, the instructions when executed by a processor or multiple processors, cause the steps of a method for performing the operations set forth herein.
- inventive subject matter may be referred to herein, individually and/or collectively, by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any single invention or inventive concept if more than one is in fact disclosed.
- inventive concept merely for convenience and without intending to voluntarily limit the scope of this application to any single invention or inventive concept if more than one is in fact disclosed.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
A hyperscale switch is implemented with a plurality of semiconductor crossbar switching elements connected to one another according to a direct point-to-point electrical mesh interconnect for transceiving data packets between peripheral devices connected to the switch and utilizing a lookup table and network device addressing for reduced switching power.
Description
- This application is a continuation application of co-pending U.S. patent application Ser. No. 16/853,496 entitled “HYPERSCALE SWITCH AND METHOD FOR DATA PACKET NETWORK SWITCHING” filed on Apr. 20, 2020, which is a continuation of U.S. patent application Ser. No. 16/357,226 filed on Mar. 18, 2019, which issued as U.S. Pat. No. 10,630,606 entitled “System, Method, and Architecture for Data Center Network Switching”, the entire contents of all of which are incorporated herein by reference for all purposes.
- The present disclosure relates in general to data packet switched network systems, and more particularly, to a data packet switch management architecture for use in a data center network environment.
- Cloud computing or processing via “the cloud,” represents the delivery of on-demand computing resources over a network configuration such as the internet on a pay-for-use basis. Cloud computing is typically implemented via one or more data centers. A data center is a centralized location rendered with computing resources and crucial telecommunications, including servers, storage systems, databases, devices, access networks, software and applications. With the explosive growth of information technology (IT) and applications requiring heightened security, reliability, and efficient and fast processing times, data centers are increasing worldwide in both size and number. Over 8.6 million data centers are estimated worldwide, with such numbers expected to double every few years. Current projections of the cost to power these data centers is approximately $60 billion per year, amounting to about 8% of current global electricity production. Hyperscale data centers which house such massive computing infrastructures not only consume massive amounts of energy but also discharge significant pollutants into the atmosphere each year, including but not limited to hundreds of millions of tons of carbon dioxide (CO2). Additional problems associated with hyperscale data centers include thermal heating and cooling requirements for ensuring proper device and system operations, increased capital costs and expenditures for diesel generators, battery backups, power conversion, cooling, and the like. Further still, size and processing limitations associated with semiconductor (e.g. silicon) electronic elements or devices, and the need for enhanced processing speed and concomitant increase in utilization of and cost for electricity contribute to the need for new technical solutions.
- Networked storage systems and remote computing systems can be included in high-density installations, such as rack-mounted environments. However, as the densities of networked storage systems and remote computing systems increase, various physical limitations are being reached. These limitations include density limitations based on the underlying storage technology as well as computing density limitations based on the various physical space requirements for network interconnects, in addition to significant space requirements for environmental climate control systems.
- In addition to the above, these bulk storage systems traditionally have been limited in the number of devices that can be included per host. This can be problematic in storage environments where higher capacity, redundancy, and reliability are desired. These shortcomings may be especially pronounced with the increasing data storage and retrieval needs in networked, cloud, and enterprise environments. Still further, power dissipation in a switch is directly proportional to the number of switch hops needed to traverse integrated circuit devices (and serializers/deserializers or SERDES) for transferring data packets from a source or ingress port of a network connected first peripheral device, to a destination or egress port of a network connected second peripheral device. Thus, power requirements and power usage/consumption within network data packet switches represent significant technological as well as environmental challenges.
- Alternative systems, devices, architectures, apparatuses, and methods for overcoming one or more of the above identified shortcomings is desired.
- Systems, devices, architectures, apparatuses, methods and computer programs are presented for implementing a network switching apparatus for communicating data packets from a first switch-connected peripheral device, to a second switch-connected peripheral device. It should be appreciated that embodiments of the present disclosure may be implemented in numerous ways, as will be understood by one of ordinary skill in the art, and in accordance with such methods, apparatuses, systems, devices, computer programs, and architectures. Several embodiments are described below.
- In one embodiment of the present disclosure, a non-Clos network data packet switch apparatus for communicating data packets from a first switch-connected peripheral device, to a second switch-connected peripheral device. The apparatus comprises a plurality of semiconductor crossbar switch elements disposed within a chassis and having a plurality of associated external I/O ports for connecting with corresponding peripheral devices for transceiving data packets, and a plurality of associated internal I/O ports. A point-to-point electrical mesh interconnect defines a direct electrical connection between one internal I/O port of each semiconductor cross bar switch element, and one internal I/O port of each other semiconductor cross bar switch element. A control processor is configured to maintain a lookup table mapping of peripheral device connections with corresponding external I/O ports associated with the plurality of semiconductor crossbar switch elements. Each semiconductor crossbar switch element is configured to: responsive to detection of a data packet on one of its external I/O ports, determine a destination semiconductor crossbar switch element for the data packet and a destination external I/O port of the destination semiconductor crossbar switch element, according to the lookup table mapping and based on an address header of the data packet. On the condition that the destination semiconductor crossbar switch element is different from the semiconductor crossbar switch element that detected the data packet on one of its external I/O ports, that element outputs the data packet and an indicator of the destination external I/O port, onto one of its internal I/O ports that is connected to the destination semiconductor crossbar switch element via the point-to-point electrical mesh interconnect. If the destination semiconductor crossbar switch element is the same as the source element according to the lookup table, the source element outputs the data packet onto its own destination external I/O port according to the lookup table.
- Each semiconductor crossbar switch element is further responsive to receipt of a data packet and an indicator of a destination external I/O port on one of its internal I/O ports for outputting the data packet, without the indicator, onto the external I/O port identified by the indicator, to the second switch-connected peripheral device, whereby the routing of data packets from the first switch-connected peripheral device, to the second switch-connected peripheral device traverses only at most two semiconductor crossbar switch elements.
- The semiconductor crossbar switch element comprises at least one integrated circuit. The at least one integrated circuit may be one of an ASIC and an FPGA.
- The point-to-point electrical mesh interconnect may be comprised of at least one multi-layer stack of electrically interconnected printed circuit boards. In an embodiment, the at least one multi-layer stack of electrically interconnected printed circuit boards may be silicon-free. In an embodiment, the stack of silicon-free electrically interconnected printed circuit boards may be via-free. Each semiconductor crossbar switch element is configurable for one of 10 Gb, 25 Gb, 40 Gb, 50 Gb, and 100 Gb signal line processing.
- In an embodiment, the point-to-point electrical mesh interconnect may be comprised of a plurality of discrete internal network transmission lines or wires. In an embodiment, the point-to-point electrical mesh interconnect may be embodied as twinax or coaxial cables. In an embodiment, the point-to-point electrical mesh interconnect may be embodied as a fiber optic PCB design other than electrical/copper PCB. In addition, the embodiment can include modulation schemes to increase transmission line capacity for network traffic such as PAM or PSK or QAM modulations.
- In an embodiment, the address header is one of a MAC address header and an IP address header.
- In an embodiment, the lookup table stores MAC addresses or IP addresses corresponding to connected peripheral devices.
- In an embodiment, the network is an Ethernet network.
- In an embodiment, further processing includes performing virtual output queuing on the data packet transfers from ingress to egress of each of the semiconductor crossbar switch elements as part of the crossbar packet transfer scheduler.
- In an embodiment, MAC or IP address headers within a lookup table are obtained and mapping updates are made to map peripheral device connections with corresponding external I/O ports associated with the plurality of semiconductor crossbar switch elements. A master lookup table may contain the MAC or IP address headers of the peripheral devices connected with corresponding external I/O ports associated with the plurality of semiconductor crossbar switch elements and periodically update corresponding local lookup tables for access by each of the semiconductor crossbar switch elements.
- In an embodiment, a non-Clos network data packet switch method comprises receiving, at an external I/O port of a first network semiconductor switch element electrically connected to a peripheral device, network traffic data packet to be forwarded to a second peripheral device connected to an external I/O port of one of a plurality of network semiconductor crossbar switch elements; determining, at the first network semiconductor crossbar switch element, a destination external I/O port on which the network traffic data packet is to be forwarded, according to a lookup table mapping peripheral device connections with corresponding external I/O ports of the plurality of network semiconductor crossbar switch elements, and according to an address header corresponding to the destination peripheral device connected to the network; prepending to the network traffic data packet an indicator of the destination external I/O port of the second network semiconductor switch element; and forwarding the network traffic data packet to the second network semiconductor switch element, via a direct point-to-point electrical mesh interconnect which defines a direct electrical connection between one internal I/O port of each semiconductor cross bar switch element, and one internal I/O port of each other semiconductor cross bar switch element. The method further comprises receiving by the second network semiconductor crossbar switch element, at its internal I/O port connected to the first network semiconductor crossbar switch element via the direct point-to-point electrical mesh interconnect, the prepended network traffic data packet; and outputting by the second network semiconductor crossbar switch element the network traffic data packet onto the destination external I/O port to the second switch-connected peripheral device, whereby the routing of data packets from the first switch-connected peripheral device, to the second switch-connected peripheral device traverses only at most two semiconductor crossbar switch elements.
- In an embodiment, a non-Clos data network switch system for communicating data packets from a first switch-connected peripheral device, to a second switch-connected peripheral device, comprises: a chassis; a plurality of line cards housed within the chassis and having I/O terminals for transceiving data packets; a plurality of semiconductor crossbar switch elements, each having external I/O ports in electrical communication with I/O terminals of corresponding ones of the plurality of line cards housed within the chassis, for routing data packets between switch-connected peripheral devices; a control processor configured to maintain a lookup table mapping peripheral device connections with corresponding external I/O ports associated with the plurality of semiconductor crossbar switch elements; wherein each semiconductor crossbar switch element comprises a forwarding processor configured to access the lookup table in response to a data packet received at a given external I/O port of the semiconductor cross bar switch element, and route the data packet according to the lookup table and an address header of the data packet, onto another one of the external I/O ports corresponding to a destination one of the plurality of semiconductor switch elements, via a direct point-to-point electrical mesh interconnect directly connecting each of the plurality of semiconductor crossbar switch elements with every other one of the semiconductor crossbar switch elements; whereby the routing of data packets from the first switch-connected peripheral device, to the second switch-connected peripheral device traverses only at most two semiconductor crossbar switch elements associated with the line access cards.
- In one embodiment of the present disclosure, a network switching apparatus for communicating data packets from a first switch-connected peripheral device, to a second switch-connected peripheral device, comprises a chassis containing a plurality of line cards with each line card interconnected via a direct point-to-point mesh interconnect pattern or network. A control processor is configured to maintain a lookup table mapping peripheral device connections with corresponding I/O ports associated with the plurality of line cards. On each line card a crossbar switching element is configured to enable electrical connection of any one of the line card I/O ports through the direct point-to-point electrical mesh interconnect pattern which connects each of the plurality of line cards with every other one of the line cards, to a corresponding destination port on one of the plurality of line access cards. The switching connection is made in response to detection of a data packet on an ingress I/O port of a given line card. Through the switching element on the line card, the data packet is routed or forwarded over the direct point-to-point electrical mesh interconnect pattern according to the lookup table mapping based on a destination address header of the data packet, whereby transmission of packets between input and output ports of any two line cards and respective cross bar switch elements occurs in only two hops. In a particular embodiment, each switching element has a direct electrical connection to every other switching element, and egress transmission lines output from any switching element are communicated via the electrical mesh interconnect at select differential pair connections for switching purposes, with the final port destination prepended to the data packet transmitted from the switching element so that no further processing or route determination is required on the electrical mesh, and the downstream line card and switching element. The ingress receive lines on the switching element (e.g. corresponding to the destination port or destination peripheral device) receive directly the data packet and pass through to the destination peripheral port and device. In an embodiment, differential pairs or alternative electrical/optical transmission styles/geometries may be implemented.
- According to the architecture of the present disclosure, reduction in the number of physical hops among line cards or integrated circuits on the line cards significantly reduces electrical power consumption and significantly increases speed, in addition to enhancing thermal efficiency and reducing cooling and power requirements of a network packet switch.
- In one embodiment of the present disclosure, a hyperscale switch is implemented within a plurality of silicon switching elements, at least one per line card arranged within a rack mount or chassis, each silicon switching element including a routing and forwarding engine for use with a network address identifier such as a media access control (MAC) network address received in a data packet at an I/O port, for transmission to a destination I/O port connected to a peripheral device, wherein an electrical mesh interconnect network architecture provides direct point-to-point connections with each of the corresponding I/O ports on each silicon switching element, within an Ethernet packet routing network configuration.
- In another embodiment, the hyperscale switch is implemented with a hypervisor to create and run one or more virtual machines and/or virtualized workloads in accordance with a select network operating system. In one embodiment, the network operating system may be an open source network operating system such as Openflow, or a full stack (closed) system installed with applications running natively in the operating system.
- In one embodiment, the direct point-to-point mesh electrical interconnect pattern or network is implemented as a printed circuit backplane comprising multi-gigabit transmission lines with direct point-to-point electrical connections.
- In one embodiment, the printed circuit backplane electrical interconnect network is achieved such that the backplane of the device is silicon-free.
- In one embodiment, each silicon switching element is configured as an application specific integrated circuit (ASIC) or Field programmable gate array (FPGA) device (e.g. chip) and the printed circuit backplane comprising multi-gigabit copper transmission lines provide direct point-to-point electrical connections with the integrated circuit (IC) chip I/O connections (or system on a chip or SoC) on each of the respective line cards.
- In an embodiment, the network switching platform may be configured as a data center LAN mesh architecture embodiment so as to condense networking and provide a gateway for data services while enabling data center expansion of its network virtualization presence.
- In an embodiment, the network switch platform is designed for versatility in multiple data center networking applications, either as a standalone high capacity switch or access, end of row, core, or interconnection switch accommodating 10/40/100G optical transceivers with migration capacity.
- Embodiments of the present disclosure include a network data packet switch comprising a chassis housing a plurality of line cards having I/O ports thereon for connecting to peripheral devices. Each line card includes one or more silicon switching elements such as ASICs or FPGAs having I/O ports for connecting with every other switching element through a printed circuit backplane or p-spine architecture of point-to-point direct electrical interconnections between each of the switching elements (and hence line cards) within the chassis. Each silicon switching element contains therein a forwarding and routing engine for routing data packets according to a packet address header such as a MAC header via the printed circuit backplane of point-to-point direct electrical interconnections from a source peripheral device connected to the network switch, to a destination peripheral device. The forwarding and routing is performed within the transmitting ASIC or FPGA (or SoC) according to a lookup table containing routing information stored thereon.
- In distinction to conventional leaf and spine network architectures, embodiments of the present disclosure provide for a line card with silicon switching element having a forwarding engine co-located on the line card with routing functionality, whereby communications and routing into/out of the line card and silicon switching element via the point-to-point direct electrical interconnection mesh backplane provides reduced serializer/deserializer (SERDES) components and I/O gateway tolls that increase switch speed or throughput speed, while reducing power and I/O component requirements.
- In an embodiment of the present disclosure, each line card is configured in a non-Clos packet switching network and includes a plurality of integrated circuits which define a fabric cross bar implementation, wherein each integrated circuit on each line card has a direct (i.e. point-to-point) electrical connection via a printed circuit board backplane, with every other integrated circuit on every line card connected via the printed circuit backplane structure.
- In an embodiment of the present disclosure, each line card is configured in a non-Clos packet switching network and includes a plurality of field programmable gate array (FPGA) components which define a fabric cross bar implementation, wherein each FPGA on each line card has a direct (i.e. point-to-point) electrical connection via a silicon-free printed circuit board backplane, with every other FPGA on every line card connected via the silicon-free printed circuit backplane structure.
- In an embodiment, the FPGA may be replaced and/or integrated with components including one or more processor cores, microprocessors or microcontrollers, DSPs, graphics processor (GPU), on chip memory, hardware accelerators, peripheral device functionality such as Ethernet and PCIE controllers, and the like, for implementation as a system on a chip (SoC) in connection with communication via the direct point-to-point electrical interconnect structure.
- In an embodiment, the architecture of the direct (i.e. point-to-point) electrical connection interconnect structure connecting each of the semiconductor cross bar switch elements having integrated within each semiconductor cross bar switch element MAC, data packet routing and disposition, FIFO output queuing and congestion management processing, VLAN, VXLAN, and VOQ functionality, may be implemented as a virtual switch for execution on a high performance computer server to provide for virtual segmentation, securitization, and reconfiguration.
-
FIGS. 1A and 1B are simplified schematic diagrams of tiered network switch architectures according to the prior art. -
FIG. 1C is a simplified schematic diagram of a non-Clos network data packet switch architecture according to an embodiment of the present disclosure. -
FIG. 2 is a more detailed schematic diagram of a network data packet switch architecture according to an embodiment of the present disclosure. -
FIGS. 2A, 2B, 2C, and 2D illustrate exemplary partial and cutaway views showing components of a network data packet switch architecture according to an embodiment of the present disclosure. -
FIG. 3 is an exemplary illustration of components of a semiconductor crossbar switch element embodied as an FPGA architecture disposed on a line card with I/O interconnects to a printed circuit backplane of point-to-point direct electrical interconnections between different semiconductor switch elements for implementing the data packet network switching functionality according to an embodiment of the disclosure. -
FIG. 4 is a more detailed illustration ofFIG. 3 , depicting transmit (egress) signal lines out of a semiconductor switch element to interconnections on the printed circuit backplane for data packet transmission to a destination device for implementing the network switch functionality according to an embodiment of the disclosure. -
FIG. 4A is a more detailed illustration ofFIG. 3 , depicting receive (ingress) signal lines out from the printed circuit backplane to a receiving (ingress) semiconductor switch element for data packet reception at a destination device for implementing the network switch functionality according to an embodiment of the disclosure. -
FIG. 5 is a schematic diagram illustrating components of switch flow module processing associated with a semiconductor switch element embodied as an FPGA architecture for controlling the network data packet transfer from source to destination peripheral devices according to an embodiment of the disclosure. -
FIG. 6A-6B is a process flow illustrating a method of sending a data packet through a network switch with semiconductor switch elements and point-to-point electrical mesh interconnect according to an embodiment of the present disclosure. -
FIG. 6C is an exemplary illustration showing fields of a lookup and routing table for processing the data packet transfer from source to destination according to an embodiment of the present disclosure. -
FIG. 7A is an exemplary illustration of the point-to-point electrical mesh interconnect structure for providing direct connection between integrated circuits on a plurality of line cards for data packet transfer according to an embodiment of the present disclosure. -
FIG. 7B is an exemplary illustration of the point-to-point electrical mesh interconnect structure showing select signal communication lines for providing direct connection between semiconductor switch elements disposed on line cards for data packet transfer according to an embodiment of the present disclosure. - It is to be understood that the figures and descriptions of the present invention have been simplified to illustrate elements that are relevant for a clear understanding of the present invention, while eliminating, for purposes of clarity, many other elements found in network switches and packet switching systems. However, because such elements are well known in the art, and because they do not facilitate a better understanding of the present invention, a discussion of such elements is not provided herein. The disclosure herein is directed to all such variations and modifications known to those skilled in the art.
- In the following detailed description, reference is made to the accompanying drawings that show, by way of illustration, specific embodiments in which the invention may be practiced. It is to be understood that the various embodiments of the invention, although different, are not necessarily mutually exclusive. Furthermore, a particular feature, structure, or characteristic described herein in connection with one embodiment may be implemented within other embodiments without departing from the scope of the invention. In addition, it is to be understood that the location or arrangement of individual elements within each disclosed embodiment may be modified without departing from the scope of the invention. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is defined only by the appended claims, appropriately interpreted, along with the full range of equivalents to which the claims are entitled. In the drawings, like numerals refer to the same or similar functionality throughout several views.
- Although data packet switching networks may take on a number of forms, in one such form a switch fabric may include a card modular platform. A card modular platform typically comprises a backplane and multiple switch fabric modules and/or other types of boards, such as servers, routers, telco line cards, storage cards and so on, contained within a single unit, such as a chassis or shelf, for example, that permits data packet switching between a plurality of network nodes, thereby forming the switch fabric between the network nodes.
-
FIG. 1A illustrates a switch interconnect in the form of aClos network 100 according to the prior art. In general,Clos network 100 includes packet switches having uplink ports that are coupled to uplink ports of other packet switches. The packet switches also include downlink ports that may be coupled to hardware resources or peripheral devices (labeled as servers A through H). Such peripheral devices may be implemented not only as servers but as network interfaces, processors, storage area network interfaces, hosts, and so on. The Clos network switching architecture of the prior art may implement a Clos or folded Clos network having a leaf and spine with fabric module architecture as shown inFIG. 1A . Each leaf server or line card device ofFIG. 1A is represented as element 110 (shown as 110 a-110 d) and the spine with fabric module is represented as element 120 (shown as 120 a-120 d). - The servers are connected to leaf switches (such as top of rack or TOR switches) with each leaf switch connected to all spine switches. As shown, each peripheral device or server is at least three physical hops away from every other peripheral device, as the processing requires data packet routing from a source peripheral device (e.g. server A) to a destination peripheral device (e.g. server E) through a 3 hop leaf and spine network (e.g. 110 a, 120 b, and 110 c) to reach its destination. The structure may be further expanded to a multi-stage (e.g. 5-stage CLOS) by dividing the topology into clusters and adding an additional spine layer (also referred to as a super-spine layer). Considering the Clos crossbar fabric, and current art implementations, an additional semiconductor device operative as a staging module for assessment in the route for packet forwarding fabric requires each device to be 5 hops away from one another. As each hop through a semiconductor device suffers from dissipating power (work) through resistance and loss of throughput speed traversing through the semiconductor, such a system exhibits several disadvantageous features. Aspects of the present disclosure integrate the crossbar switching functionality, the forwarding and routing, virtual output queuing, VLAN, and control plane integration within a semiconductor FPGA device, integrated circuit, or SoC, which may be implemented on a line card, in order to achieve the advantages discussed herein.
-
FIG. 1B shows another CLOS switching embodiment, including Multi-Chassis Link Aggregation Group (MLAG or MCLAG). Servers may be can be connected to twodifferent leaf 110′ orTOR 101 switches in order to have redundancy and load balancing capability. The prior art CLOS architecture embodiment ofFIG. 1B may utilize both OSI layer 2 (L2) packet switching as well as layer 3 (L3) routing, where packets are sent to a specific next-hop IP address, based on a destination IP address.FIG. 1B shows a CLOStopology using Layer 3 routing forspine 120′ toleaf 110′ connections and multiple TOR as well as leaf switch instantiations. Similar to the routing requirements ofFIG. 1A , the CLOS architecture ofFIG. 1B also requires multiple hops through additional semiconductor devices in the routing of a data packet for traversing the data packet switch network in order to transfer packets from one peripheral device (e.g. server A) to another peripheral device (e.g. server C). Each hop through a semiconductor suffers from dissipating power through the resistance physics of semiconductors and loss of throughput speed traversing through the semiconductor. - In contrast to conventional leaf server and spine server network architectures such as those shown in
FIGS. 1A and 1B , wherein a multi-tier Clos architecture is implemented which requires multiple hops (3 or greater) to switch data packets from a given input port of a connected device (e.g. server A) to a given output port of a connected device (e.g. server B), embodiments of the present disclosure provide a non-Clos network implemented as a collapsed or flattened (e.g. linear) form of network element architecture and data packet switching, which reduces the number of hops between I/O devices, while increasing the speed and reducing the power requirements for a given switching operation. Moreover, embodiments of the present disclosure integrate within a single semiconductor switch element multiple functionalities which serve to reduce power dissipation, increase switch speed, and maintain industry standard form factor within a data network architecture. Embodiments of the present disclosure integrate previously disparate functionalities onto or within a single semiconductor switch element to provide forwarding and routing engine and crossbar switching functionality, virtual output queuing (VOQ), and VLAN functionality within a non-Clos mesh network data packet switch. - In one exemplary embodiment, there is disclosed a chassis which houses multiple line cards or line card blades, where each line card has a faceplate with slots configured to receive a peripheral device connection. Each line card may contain a semiconductor crossbar switching element implemented as an integrated circuit or FPGA or system on a chip and configured to route data packets through a direct point-to-point electrical mesh interconnect. The electrical mesh interconnect directly connects I/O ports on each of the semiconductor crossbar switching elements with every other semiconductor crossbar switching element, whereby data packet routing is accomplished according to an address header on the received data packet and a lookup table of peripheral device connections associated with the semiconductor crossbar switching element, to thereby enable a 2 hop packet switch network. The network may be implemented as a hyperscale or compound switch.
- Embodiments of the present disclosure may be implemented within a chassis using rack mount line cards, or may be implemented using blades and various form factors, with particular card configurations (e.g. horizontal, vertical, or combinations thereof), as well as different card/I/O numbers (e.g. N=2, 4, 8, 16, 24, 32, etc. —although powers of 2 are not required and the numbers maybe be any positive integer).
- As used herein in embodiments of the present disclosure, the term “hop” represents a single physical hop that includes a direct physical connection between two devices in a system. Similarly stated, a single physical hop can be defined as a traversing or routing of a data packet which traverses through an integrated circuit (e.g. an FPGA, microchip, ASIC, or other programmable or reprogrammable chip device) and any one set of its transceivers or serializer/deserializer (SERDES) device input(s) to its SERDES device output(s) on a switching element.
- Exemplary embodiments of the present disclosure may implement a network data packet switch comprising line cards configured within a chassis and each having disposed thereon (or associated therewith) a semiconductor crossbar switch element connected with every other semiconductor crossbar switch element with fabric module via a direct point-to-point electrical mesh interconnect backplane structure. In an embodiment, the backplane structure may be semiconductor or silicon-free. In a particular embodiment, the direct point-to-point electrical mesh interconnect backplane structure may be implemented as a printed circuit electrical mesh interconnect. In another particular embodiment, the direct point-to-point electrical mesh interconnect backplane structure may be implemented as a plurality of discrete wires (e.g. micro wires or nano wires).
- In further distinction to conventional leaf and spine network architectures, embodiments of the present disclosure provide for a semiconductor crossbar switch element having a forwarding engine co-located on a line card with routing functionality whereby communications and routing into/out of the switch element (and hence line card) via a direct point-to-point electrical mesh interconnect provides reduced SERDES and I/O gateway tolls that increase switching throughput or decrease switch latency, while reducing power and I/O component requirements.
- According to a further implementation of the present disclosure, each switch element includes one or more ASICs or field programmable gate array (FPGA) components which together with the direct point-to-point electrical mesh interconnect define a fabric cross bar implementation. Each switch element is associated with a line card, and each FPGA on each line card has a direct (i.e. point-to-point) electrical connection (via the silicon-free printed circuit board backplane) with every other FPGA on the corresponding line card.
- Referring now to
FIG. 1C , there is shown a simplified schematic diagram of a non-Clos network data packetnetwork switch architecture 1000 according to an embodiment of the present disclosure. As shown therein, semiconductor crossbar switch elements 1004 (data network packet switches) labeled as L1-L5 are configured in a flattened architecture so that data packet communication between resources (e.g. peripheral devices identified as server A-server K) is accomplished with a reduced number of hops. More particularly, each semiconductor switch element (e.g. L1) has a plurality of associated external I/O ports (e.g. 1004 a) for connecting with corresponding peripheral devices (e.g. server A) for transceiving data packets. Each semiconductor switch element also has a plurality of associated internal I/O ports 1004 b. A point-to-pointelectrical mesh interconnect 1003 defines a direct electrical connection between one internal I/O port of each semiconductor cross bar switch element, and one internal I/O port of each other semiconductor cross bar switch element. Acontrol processor 1005 is configured to maintain a lookup table (LUT) 1006 mapping of peripheral device connections with corresponding external I/O ports associated with the plurality of semiconductor crossbar switch elements. In response to detection of a data packet on one of its external I/O ports, semiconductor crossbar switch element L1 determines a destination switch element (e.g. L5) for the data packet and a destination external I/O port of the destination semiconductor crossbar switch element (e.g. 1004 c), according to the lookup table mapping (LUT) and based on an address header of the data packet. On the condition that the destination semiconductor crossbar switch element is different from the semiconductor crossbar switch element that detected the data packet on one of its external I/O ports, that element outputs the data packet and an indicator of the destination external I/O port, onto one of its internal I/O ports that is connected to the destination semiconductor crossbar switch element via the point-to-point electrical mesh interconnect (e.g. 1003 a). If the destination semiconductor crossbar switch element is the same as the source element according to the lookup table (e.g. data packet communication between server A and server B), the source element (e.g. L1) outputs the data packet onto its own destination external I/O port (e.g. 1004 d) according to the lookup table mapping (without traversing the mesh interconnect). In this manner, the matrix configuration of semiconductor crossbar switch element connections to one another through the point-to-point electrical mesh interconnect, and the re-direct I/O connection when the point-to-point electrical mesh interconnect is not utilized (for same destination board/same destination semiconductor switch element I/O), provides for a system with less power dissipation, increased throughput speeds, and reduced cooling energy requirements. - On the receive or destination (ingress) side, each semiconductor crossbar switch element (e.g. L5) is further responsive to receipt of a data packet and an indicator of the destination external I/O port at one of its internal I/O ports. In response, the ingress semiconductor element receives and outputs the data packet, without the indicator, onto the external I/O port identified by the indicator (e.g. 1004 c), to the second switch-connected peripheral device (e.g. server K). In this manner, the routing of data packets from the first switch-connected peripheral device, to the second switch-connected peripheral device traverses a minimum number (only at most two) of semiconductor crossbar switch elements or two hops.
- In comparison to the multi-tier and multi-hop leaf and spine with fabric module architecture of
FIGS. 1A and 1B , the architecture of the present disclosure implements data packet switching with reduced hops and increases the routing speed or throughput within the system, reduces the power required by traversing less transceiver or SERDES I/O chips, and results in less heat being produced, thereby achieving substantially reduced electrical power consumption and associated heat (thermal output). - The data packets may comprise a stream of data units (e.g., data packets, data cells, a portion of a data packet, a portion of a data cell, a header portion of the data packet, a payload portion of the data packet, etc.) from a peripheral processing device (devices A-K). The data packet stream forwarded from the first switching element L1 connected to the peripheral processing device A and destined to the peripheral processing device K has prepended onto it an indicator of the destination I/O port for processing through the second crossbar switch element L5 via the direct
electrical mesh interconnect 1003 a. - Each data packet delivered to and detected by an external I/O port of a semiconductor crossbar switch element includes a header comprising an identifier of the source peripheral processing device (e.g., an Internet Protocol (IP) address or a medium access control (MAC) address of the peripheral processing device), and an identifier of the destination peripheral processing device (e.g., an IP address or a MAC address of the peripheral processing device). The egress semiconductor crossbar switch element strips off the destination address (e.g. the destination MAC address) and uses this address as an index to lookup table 1006. The lookup table contains entries mapping each of the semiconductor crossbar switch elements with I/O ports according to the point-to-point connectivity of electrical mesh interconnect to the internal I/O ports of each switch element, and each of the external I/O connections to each of the known peripheral devices. The lookup table mapping provides the particular destination (ingress) semiconductor cross bar switch element and corresponding external I/O port of that destination element that connects to the destination peripheral device. The egress semiconductor crossbar switch element then activates a corresponding one of its internal I/O ports that connects, via the point-to-point electrical mesh interconnect, to the corresponding (ingress) destination switch element that is connected to the destination peripheral device.
- The egress semiconductor switch element also prepends to the data packet the corresponding external I/O port of the destination semiconductor switch element device to which the data packet is to be forwarded onto, based on the lookup table mapping. The internal I/O port activated at the egress semiconductor crossbar switch element transfers the data packet with the destination external I/O port identifier, over the direct electrical connection mesh interconnect, to an internal I/O port of the destination (ingress) semiconductor switch element. This destination semiconductor switch element reads the data packet header containing the prepended information of the external I/O port, discards any extraneous header data, and routes the data packet through this switch and onto that port which is directly connected to the destination peripheral device for receipt by that device.
- In this manner, only at most two semiconductor switch elements are traversed in any data packet switching between any two switch connected peripheral devices.
- Referring now to
FIG. 2 , in connection withFIG. 1C , there is provided an exemplary embodiment of a non-Clos datanetwork switching apparatus 200 for communicating data packets from a first switch-connected peripheral device (e.g. device A ofFIG. 1C ), to a second switch-connected peripheral device (e.g. device K ofFIG. 1C ) within an Ethernet architecture. In the non-limiting embodiment disclosed herein,apparatus 200 illustrates a modular architecture wherein a plurality of circuit boards orline cards chassis 210. The line cards may be implemented as modular circuit boards, each having a faceplate with I/O ports or slots for connection with peripheral devices for transceiving data packets. It is understood that various types of serial links may be utilized for connection therewith, such as Peripheral Components Interconnect/PCIe, by way of non-limiting example. The I/O communications between peripheral devices may be implemented as one or more of 10 Gb, 25 Gb, 40 Gb, 50 Gb, 100 Gb and/or other relative data rate signal line processing. As shown inFIG. 2 , theintegrated fabric module 215 according to the present disclosure includes each of the semiconductorcrossbar switch elements electrical mesh interconnect 230. - For each semiconductor crossbar switch element associated with a given line card, a control plane includes a control micro-processor and CPU memory in communication with a
master controller 240 and address routing table (e.g. via a separate Ethernet connection) for receiving routing table entries and updates for transfer into each of the semiconductor switch elements. Once received in each of the switch elements (e.g. FPGAs), each routing table gets populated into the forwarding engine for each of the switch flow modules in each of the FPGAs. -
FIGS. 2A-2D illustrate an exemplary embodiment of the schematic structures illustrated inFIG. 1C andFIG. 2 . With respect toFIGS. 2 and 2A-2D , like reference numerals are used to indicate like parts. As shown, a plurality of rack mountedmodular line cards - Various cutaway views of the
network switch implementation 200 having achassis 210 housing a plurality of removable line cards with integrated fabric module are depicted inFIGS. 2A, 2B, 2C, and 2D . In this exemplary embodiment, each line card has disposed thereon a semiconductor crossbar switch element in the form of an FPGA. Each FPGA is connected to every other FPGA on a separate line card, via a vertical backplane point-to-pointelectrical mesh interconnect 230. In an embodiment, the on board FPGA chips have internal I/O ports connected in point-to-point fashion via a silicon-free printed circuit board trace interconnect backplane. Amotherboard 240 containing a master computer processing unit (CPU) and lookup/routing tables provides control and communications via a control plane with each of the FPGAs (FIG. 3 ) disposed online cards 220. Power is provided via apower control board 250 containing a power supply and accompanying electronic circuits and is configured at the basis of the chassis. The power supply module may include, for example, a 12 V power supply, AC/DC module, and distribution module for supplying power to the system. Afan assembly 260 is mounted at a back end of the chassis and includes a series of fans positioned relative to the line cards and backplane structures so as to provide optimal cooling to the unit. The illustrated embodiment includes a series of I/O ports on its faceplate for receiving, and outputting signals through the line card with integrated fabric structure in a manner that reduces the number of hops, increases speed and reduces power consumption. - In the illustrated embodiment of
FIGS. 2A-2D , the point-to-point electrical mesh interconnect may be implemented as a plurality of vertically oriented printed circuit boards with trace connections electrically connected to each of the FPGA's internal I/Os on each line card viaappropriate connector modules -
FIG. 2D shows a more detailed view of an exemplary line card useful for implementing an embodiment of the present disclosure. As shown,line card 220 may be implemented in a standard 1U (1.75 inch height) configuration. In the particular implementation illustrated,faceplate slots 222 are configured to receive peripheral device connections via a standard pluggable interface for communicating data packets over the network interface.Connectors 224 operate to convey the I/O data packets directly from each of the faceplate terminals (lines not shown inFIG. 2D ) to corresponding external I/O ports (not shown inFIG. 2D ) of the semiconductor crossbar switch element disposed oncircuit board 223 ofline card 220. In the illustrated embodiment,circuit board 221 provides direct I/O connections from the faceplate to board 223 viaconnectors 224, but is effectively available for utilization for other processing and/or networking functionality. - As described herein, a control processor is configured to maintain a lookup table mapping peripheral device connections with corresponding I/O ports associated with the plurality of line cards. A crossbar switching element (e.g. L1, L2, . . . ) is configured on each line card, where the crossbar switching element is adapted to enable electrical connection of any one of the line card I/O ports through direct point-to-point electrical mesh interconnect pattern (1003) which connects each of the plurality of line cards with every other one of the line cards, to a corresponding destination port on one of the plurality of line access cards, in response to detection of a data packet on an ingress I/O port of a given line card, and according to the lookup table mapping based on an address header of the data packet. In this manner, transmission of data packets between input and output ports of any two line cards and respective cross bar switch elements from source to destination occurs in only two hops.
- The control plane includes a control micro-processor and CPU memory in communication with the motherboard on each line card for transfer of routing table entries into each of the FPGAs. Once received in each of the FPGAs, the routing table gets populated into the forwarding engine for each of the switch flow modules (
FIG. 5 ) in each of the FPGAs. Each SFM has the forwarding engine which uses that table. In an embodiment, each SFM may have its own table. The logic that accesses that table is represented as the forwarding engine. -
FIG. 3 is illustrative of the components of each of the semiconductor cross-bar switch elements labeled generally as 225 (FIG. 2 ) and disposed on a circuit board such as a line card 200 (FIG. 2 ) according to an exemplary embodiment of the disclosure.FIGS. 4 and 4A illustrate more detailed representations ofelement 225 disposed on aline card 200, including an illustration of exemplary signal paths among components and particular Tx/Rx communications within the fabric. Referring toFIGS. 3, 4, and 4A , each semiconductor crossbar switch element includes a field programmable gate array (FPGA) 225222 disposed on a circuit board implemented as a line card. In the exemplary embodiment ofFIG. 3 , threeFPGAs O ports 22530 directly connected to corresponding terminals ofconnectors 224. Internal I/O ports 22520 are connected with every other FPGA on every other line card via a direct (i.e. point-to-point) electrical mesh interconnect throughconnectors FIG. 3 are coupled to the other FPGAs on every other line card via a semiconductor-free or silicon-free printed circuit board backplane comprising 6 vertical printed circuit boards 230 (FIG. 2A-C ) andcorresponding connectors - Each FPGA has associated packet buffering functionality for regulating network traffic and mitigating network congestion and which may be implemented as one or more DDR memory units 22550. Clock (CLK)
sources 22560 associated with each of the FPGAs are configured to control timing and routing of data packets, processes, and control mechanisms throughout the chip. - In the embodiment illustrated in
FIGS. 2A-2D , the vertical backplane electrical mesh interconnect structure is configured as having a maximum of 72 differential pairs of signals (Tx/Rx). Each semiconductor switch element associated with each line card has 3 FPGAs per line card. Thus, 48 FPGA chips may be accessed within the chassis such that, for 72 differential pairs, the pathways traversing the various connectors, for each handling 50 Gbe, corresponds to 4 TB per connector. Further, according to embodiments of the present disclosure, the communications paths between peripheral devices are non-optical within the apparatus. Only at the control plane where QFSP/FSP optical processing occurs, which processing is not part of the data packet forwarding path. In an embodiment, each of the printed circuit boards is via-free, with each board having multiple layers or laminates for processing the various Tx/Rx signal paths. - In an embodiment of the present disclosure, data packets enter the line card with address data content and each packet is addressed by tables controlled and updated by the motherboard to one of the 48 outputs on the chip. Transmission is fanned out on all three modules while reception (over the mesh interconnect) is provided on a subset of FPGA modules for a given line card.
- In an embodiment of the disclosure, the
switch element 225 is configured to perform all of the routing and disposition on the chip such that the forwarding engine and routing engine is co-located within the switch element on thecorresponding line card 220. In this manner, ultimate point-to-point connection and routing over the electrical mesh interconnect provides an essentially wired communication path which reduces the SERDES requirements for each differential pair entering/exiting the transceiver face of the line card. In the exemplary embodiment, the circuit board or line card is composed of multiple different routing layers of separate transmit and receive layers. Similarly, in one embodiment, the electrical mesh interconnect embodied in one or more printed circuit boards contains corresponding multiple laminate layers for signal transmit and receive functionality. -
FIG. 4 illustrates operation of the switch element in connection with the point-to-point electrical mesh interconnect showing select signal line connections 22535 (internal I/O ports) for activation and forwarding of data packets on the egress side ofFPGA 22522 c. Also illustrated are switch element I/O signal line connections 22537 (external I/O ports) to selectterminals 224 for connection with the peripheral devices for each of FPGAs 22522 a-c. -
FIG. 4A illustrates operation of the switch element in connection with the point-to-point electrical mesh interconnect showing select signal line connections 22536 (internal I/O ports) for receiving data packets at the ingress side of each FPGA 22522 a-c. Also illustrated are switch element I/O signal line connections 22538 (external I/O ports) to selectterminals 224 for connection with the peripheral devices for each of FPGAs 22522 a-c. -
FIG. 7A is an exemplary illustration of the point-to-point electrical mesh interconnect structure for providing direct connection between integrated circuits on a plurality of line cards for data packet transfer according to an embodiment of the present disclosure. Each terminal connection provides a separate routing path for a differential pair connection associated with 16 line cards/switch elements. -
FIG. 7B is an exemplary illustration of the point-to-point electrical mesh interconnect structure showing selectsignal communication lines 22 for providing direct connection between semiconductor switch elements disposed on line cards for data packet transfer according to an embodiment of the present disclosure. As can be seen, select connector paths for the differential pairs are fixedly established between internal I/O terminals according to FPGA I/O arrangement and line card identification. As shown, the connection within a given layer of the mesh interconnect shows signal path connectivity betweenline cards - Referring again to
FIGS. 2-4 , in an embodiment of the disclosure a control plane on each switch element associated with each line card comprises an internal Ethernet network in communication with the motherboard for communicating independently with each line card/switch element. Communication is accomplished by the control plane sending to each of the line cards their routing table(s) to establish each line card's configuration as to where to send data packets on the network. In an embodiment, a plurality of QSFP ports (e.g. 2 bidirectional QSFP ports from mother board to each line card—2 per line card) provides for n=16 QSFP control signals and 16 line cards within the system in order to provide point-to-point control via the Ethernet within the system. It is understood that other numbers of line cards and/or control signal may be implemented, such as n=4, n=16, or n=32 line cards, by way of non-limiting example. Furthermore, modulation schemes such as PAM-4, QAM, QPSK may be implemented within the system as is understood by one of ordinary skill in the art. A processor such as an Intel Pentium or Xilinx processor or other such microprocessor device is configured on the control plane for controlling the routing through the network. The control plane operates to constantly read source device addresses (e.g. source MAC address) for devices to add to and/or update the table of connections within the system. As will be understood, for each FPGA, each port is numbered and associated with line card, FPGA, and point-to-point fabric electrical interconnect and is known a priori. Because MAC addresses are required to decay at periodic intervals (e.g. 5 sec.), in order that a new device may connect to the network (or an existing device may be maintained), the control plane is constantly responsive to such device broadcasts and reads, updates, and downloads from its master table within the management plane, the mapping table in order to provide refreshed look up tables for each of the semiconductor switch elements associated with each line card. Accordingly, the system learns via the source MAC address of each peripheral device its relative location on the network and based on a received destination MAC address, operates to obtain the destination location (e.g. line card number, FPGA number, output port) connected thereto and provide the requisite output port for transferring the data packet. Depending on the type bits received, the system is operable to index down into the payload in order to retrieve the address (e.g. VXLAN processing). Once the process is complete and the LUT provides the destination output port, the semiconductor crossbar switch element forwards the data packet along with the requisite destination output port number via the electrical mesh interconnect, thereby consolidating the forwarding engine into the switching engine. - As discussed hereinabove, an embodiment of the present disclosure provides for an internal network such as an Ethernet network linking the motherboard or master control to all of the line cards in the chassis. A second internal Ethernet network is disposed on each line card and links all of the FPGAs on each line card to the control microprocessor (e.g. 22500). Thus, the master lookup table is populated (at the motherboard) and updated with requisite peripheral device connections and flow control is provided to each of the lookup tables on each of the N line cards via N separate parallel Ethernet channels to enable simultaneous writes/updates of the respective tables on each line card. The microprocessor on each line card then sends out the updated tables to each FPGA to enable routing. In an embodiment, the microprocessor on each chip may be an ARM processor operable to execute at a 10G line rate to enable efficient table access and updates (e.g. 3.33 GHz). In an embodiment, the master controller CPU on the motherboard through the network operating system writes the look up tables onto each of the line card/semiconductor switch elements and calls a device driver to modify a programmable chip.
- The block diagram of
FIG. 5 shows an exemplary internal FPGA architecture of a hyper scale switch slice (HSS) according to an embodiment of the present disclosure. The HSS diagram effectively equates to a single FPGA, with 2 or, in the present embodiment, 3 FPGAs in a line card. As discussed above, in an exemplary embodiment, 16 line cards are provided in a hyper scale switch chassis and dependent upon the line card capability as a 10/25/40/100G Ethernet functionality. In an exemplary embodiment, a plurality of Switch Flow Modules (SFM) (e.g. 58) are provided for a 10 Gb switch element with integrated fabric. Other numbers of instantiations may be required for different rate switching (e.g. 40 Gb). The SFM contains the ingress/egress FIFO, Routing Lookup Table and sequencers. The SFM is triggered and commences packet transfers in reaction to the Ethernet MAC core control signals emanating from the core microprocessor (e.g. Xilinx Ethernet Core) on the I/O side indicating reception of a packet. An additional way that triggers will occur are for packets that come in via the transceiver to cause the sequencer/scheduler to initiate a request to transfer to the appropriate egress port via a cut through flow. The appropriate port is determined from the router lookup table and hash function to reduce the address space. The egress stage of the SFM grants requests through an arbiter that resolves simultaneous requests from multiple SFMs. A User Interface AXI Bus manages the router and lookup tables. Quality of Service (QoS) prioritization is implemented in accordance with Ethernet rules. - Referring again to
FIG. 3 in conjunction withFIG. 5 , overflow processing (DDR) is provided so as to divert packets that cannot be forwarded due to contention to a buffer for subsequent processing. In addition, the integrated semiconductor switch and fabric according to an embodiment of the present disclosure comprises a plurality of n layers or laminates (e.g. n=16) to facilitate the volume of signal connections and direct point-to-point connections within the system. - Referring now to
FIG. 6 in conjunction withFIG. 5 , there is disclosed a process flow illustrating steps for sending a data packet through a semiconductor crossbar switch element and electrical mesh interconnect according to an embodiment of the present disclosure. - In an exemplary embodiment, the FPGA architecture of
FIG. 5 is embodied as a set of N (e.g. N=26) switch flow software modules or components (SFMs) designated as I/O SFMs (labeled 501, 502, . . . , 526), and M (e.g. M=32) SFMs designated as direct connect SFMs (labeled 601, 602, . . . , 632). The direct connect SFMs each have direct connections to theelectrical mesh network 230 for packet transport. In an embodiment, each of the I/O SFMs of each FPGA can accept requests from both direct connect SFM modules as well as I/O SFM modules of the FPGA. Direct connect SFM modules are configured so as not to be able to send requests to other direct connect SFMS. In an embodiment, each FPGA's SFM digital logic circuit modules and functionality and behavior may be implemented in hardware description language (HDL) useful in describing the structure and behavior of those modules depicted inFIG. 5 . - Within the FPGA architecture shown in
FIG. 5 , a data packet is received atSERDES 1 and communicated toMAC processing module 10 which provides up-chip or down-chip processing (depending on ingress/egress flow) (FIG. 6 block 610).Processing module 10 operates to decrease/increase the packet bit number by N bits (e.g. N=2 from/to 66 bits to/from 64 bits) to address parity as part of the input/output processing and timing or re-timing functionality associated with the switch flow modules ofFIG. 5 . In this manner, communication channel noise is mitigated by stripping off 2 bits upon entry into the SFM and adding 2 bits upon exit. - Processing proceeds to SFM sequencer module 20 (e.g. VLAN processing) within the SFM FPGA architecture. Sequencer module 20 (e.g. of SFM A) operates to strip off the MAC source address and destination address from the incoming packet (
FIG. 6 block 620). The source address is utilized by the system for learning (e.g. MAC learning) to determine what devices are connected to the network at particular ports and update the master table and corresponding downstream tables for each of the line cards. On the condition that a device address is not in the lookup table, the system forwards to the microprocessor for delivery to the motherboard for formulation into each of the lookup tables. The destination address is used as an index into the lookup table (LUT) 30 on SFM A in order to determine the output port to route the packet to. This may be implemented via random access memory (RAM) or other on chip storage media.FIG. 6C is an example showing a LUT wherein an 11 bit field is stored, including 4 bits for line card identification (e.g. line card 1-16), 2 bits for FPGA identification on the line card (e.g. FPGA 1-3), and 5 bits of I/O in order to map to 32 different I/O ports. A 2 bit field identifying whether the packet at that particular FPGA is to be routed via the direct electrical mesh interconnect structure or whether the routing pathway is merely internal to the particular FPGA and/or line card associated with that FPGA (and therefore not sent via the electrical mesh fabric interconnect) may also be provided. Under such condition (i.e. 11 (PSP)) the route path would not pass via the direct electrical mesh interconnect structure (e.g. source and destination on one of the FPGA's on the same line card). - Referring again to
FIG. 5 in conjunction withFIG. 6 , the sequencer module utilizes the MAC address as an index to find the mapping location and raise a request (module 40) to a corresponding SFM (e.g. SFM B) that is connected to the determined line card and the determined FPGA on the line card, in order to route the data packet to the appropriate destination (FIG. 6 block 630). Arbiter module 50 (SFM B) receives the request from I/O SFM A (as well as any other SFM requesting packet transfer) and selects the particular request for processing (FIG. 6 block 640). Upon grant of the request, the packet is transported via the cross-bar multiplexer (MUX) arrangement 60-65 for downstream processing (FIG. 6 block 650). - Upon grant of the request, the queued data packet in buffer 70 (ingress FIFO) is transferred via
MUX units processing module 71 and QOS FIFO queue module 72 (FIG. 6 block 660). The QOS module interacts with the VLAN processing to select and sequence viaMUX 74 packets among the different process flows (e.g. 10G, 40G) according to priority requirements to transmit the packets in the FIFOs (along with the prepended I/O port number) out onto the electrical mesh interconnect 230 (FIG. 6 block 670). It is to be understood thatMUX 74 performs priority swap or selection according to the priority of service whereby packets and their priorities are linked according to the queues (i.e. next in line processing) 72 and staging FIFO (e.g. I/O FIFO) 76. - In one embodiment, the FIFO operates to enable different data rates (10G/40G) to proceed through the FPGA by means of skewing/de-skewing the data rates by via input to the FIFO at a first rate and output from the FIFO at a different rate, as is understood by one of ordinary skill.
- Still referring to
FIG. 5 , in conjunction withFIG. 6 , once the data packet exits the initial FPGA at SERDES 4 (flow 560), it traverses theelectrical mesh interconnect 230 which routes the packet to the destination FPGA. As shown inFIG. 5 , at the destination FPGA, the sequencer 580 (via flow 570) receives the packet and correlates the port number prepended on the packet inport number queue 582 with the packet number staging and routing of the packet to the destination port address (FIG. 6 block 680). As previously described, request processing and communication onto the particular port associated with the FPGA via the particular SFM is made through the crossbar (e.g. flow 585) which proceeds through the respective SFM (501-526) to the output port (e.g. flow 586) for receipt by the port connected peripheral destination device (FIG. 6 block 690). As shown, flow arrows identified as AA, BB, and CC represent data packet flows through the crossbar (e.g. at 22 GB rate), with flow arrows identified as AA being at a rate of about 22 GB, and arrows BB and CC representing data packet rates of 10 GB and 40 GB rates, respectively. - The FPGA architecture further includes overflow processing SFMs (e.g. 6 instantiations) to alleviate throughput bottlenecks. As shown, in the event of a significant blockage of data flow, a request is made to deposit the overflow packets to an
external repository 804 viaflow 802. Overflow packets may be retrieved from DDR (e.g. DDR4)FIFO 804 viaflow 806. - In one embodiment, in the event that the packet request is denied, processing proceeds to the next packet in the queue for a request. Processing of that next packet then proceeds as outlined hereinabove. In the event that the request is granted and processing of that next packet proceeds to its destination port, then a new request is made for the previously denied packet. Otherwise, in the event of a second denial, processing proceeds to the next packet in the queue for a request. As the denial of service request provides for multiple (e.g. three deep) sequential packet requests, if the third packet in line gets denied, processing reverts back to the first packet for making a new request.
- Thus, there is disclosed a non-Clos data network switching apparatus for communicating data packets from a first switch-connected peripheral device, to a second switch-connected peripheral device, the apparatus comprising a chassis; a plurality of line cards housed within the chassis and having I/O ports for transceiving data packets; a control processor configured to maintain a lookup table mapping peripheral device connections with corresponding I/O ports associated with the plurality of line cards, a crossbar switching element on each line card, the crossbar switching element configured to enable electrical connection of any one of the line card I/O ports through direct point-to-point electrical mesh interconnect pattern which connects each of the plurality of line cards with every other one of the line cards, to a corresponding destination port on one of the plurality of line access cards, in response to detection of a data packet on an ingress I/O port of a given line card, and according to the lookup table mapping based on an address header of the data packet, whereby transmission of packets between input and output ports of any two line cards and respective cross bar switch elements occurs in only two hops.
- The embodiments are provided by way of example only, and other embodiments for implementing the systems and methods described herein may be contemplated by one of skill in the pertinent art without departing from the intended scope of this disclosure. For example, although embodiments disclose a data packet network architecture, apparatus, device, and/or method that implements the semiconductor crossbar switch element onto or associated with a given line card, such configuration is not essential to the practice of the disclosure, as such switch elements may be implemented in or onto other substrates, such as a backplane (or midplane), by way of non-limiting example. Further, although embodiments of the present disclosure illustrate a printed circuit electrical mesh interconnect, and connected in an interleaved backplane structure (relative to the line card/switch element configuration) such configuration is an advantageous embodiment but is not essential to the practice of the disclosure, as such electrical mesh interconnect may be implemented via other means, such as direct wire connection with no backplane or printed circuit board), and/or via other non-backplane structure (e.g. on a line card). In an embodiment, discrete wires such as micro coaxial or twinaxial cables, twisted pairs, or other direct electrical wire connections may be made with the internal I/O ports of each of the FPGAs through connectors and micro wire cables such as those provided for high speed interconnects. Modification may be made for pigtails for cable ready applications.
- Still further, implementation of the present disclosure may be made to virtual switches within a data center or other segmented software-controlled data packet switching circuit. In such virtual data packet switched systems, the form of a plurality of semiconductor crossbar switch elements interconnected via a direct point-to-point electrical mesh interconnect with integrated switching, forwarding and routing functionality embedded into each crossbar switch, may be substituted for the prior art (e.g. Clos network) implementations, in order to reduce hops, decrease power dissipation and usage, and enable execution on a high performance computer server to provide for virtual segmentation, securitization, and reconfiguration. The semiconductor crossbar switch elements may be configured as virtual switches within a virtual machine (VM) for providing routing using MAC address header and lookup table mapping of configuration elements. As overlay network clients or VMs, require gateways to provide routing functionality, the present disclosure enables
OSI layer 2 orlayer 3 switching for redirecting data message traffic, using the destination Media Access Control (MAC) address and logical sublayers to establish initial connection, parse the output data into data frames, and address receipt acknowledgments and/or queue processing when data arrives successfully or alternatively, processing is denied. - By way of further example, processing systems described herein may include memory containing data, which may include instructions, the instructions when executed by a processor or multiple processors, cause the steps of a method for performing the operations set forth herein.
- While the foregoing invention has been described with reference to the above-described embodiments, various additional modifications and changes can be made without departing from the spirit of the invention. Accordingly, all such modifications and changes are considered to be within the scope of the appended claims. Accordingly, the specification and the drawings are to be regarded in an illustrative rather than a restrictive sense. The accompanying drawings that form a part hereof, show by way of illustration, and not of limitation, specific embodiments in which the subject matter may be practiced. The embodiments illustrated are described in sufficient detail to enable those skilled in the art to practice the teachings disclosed herein. Other embodiments may be utilized and derived therefrom, such that structural and logical substitutions and changes may be made without departing from the scope of this disclosure. This Detailed Description, therefore, is not to be taken in a limiting sense, and the scope of various embodiments is defined only by the appended claims, along with the full range of equivalents to which such claims are entitled.
- Such embodiments of the inventive subject matter may be referred to herein, individually and/or collectively, by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any single invention or inventive concept if more than one is in fact disclosed. Thus, although specific embodiments have been illustrated and described herein, it should be appreciated that any arrangement calculated to achieve the same purpose may be substituted for the specific embodiments shown. This disclosure is intended to cover any and all adaptations of variations of various embodiments. Combinations of the above embodiments, and other embodiments not specifically described herein, will be apparent to those of skill in the art upon reviewing the above description.
Claims (16)
1. A non-Clos network data packet switch comprising:
a plurality of semiconductor crossbar switch elements connected to one another according to a direct point-to-point electrical mesh interconnect;
wherein data packets from a first peripheral device connected to one of said semiconductor crossbar switch elements are communicated to a second peripheral device connected to another one of said semiconductor crossbar switch elements via said direct point-to-point electrical mesh interconnect according to a lookup table and network device addressing for reduced switching power.
2. The switch of claim 1 , wherein the lookup table includes a mapping of peripheral device connections with corresponding I/O ports associated with said plurality of semiconductor switch elements according to the point to point connectivity of the electrical mesh interconnect to corresponding I/O ports of each semiconductor switch element.
3. The switch of claim 2 , wherein a destination semiconductor crossbar switch element and destination I/O port is determined according to the lookup table mapping using said data indicative of the destination address as an index to the lookup table.
4. The switch according to claim 1 , wherein each of the plurality of semiconductor switch elements includes a control plane having a processor and memory in communication with a master controller and address routing table for receiving routing table entries and updates for transfer into each of the semiconductor switch elements.
5. The switch of claim 1 , wherein each of said plurality of semiconductor switch elements includes at least one field programmable gate array (FPGA).
6. The switch of claim 1 , wherein the point-to-point electrical mesh interconnect is comprised of at least one multi-layer stack of electrically interconnected printed circuit boards.
7. The switch of claim 6 , wherein the at least one multi-layer stack of electrically interconnected printed circuit boards is silicon-free.
8. The switch of claim 1 , wherein said data packets comprise header information including data indicative of a source address of the source peripheral device and of a destination address of the destination peripheral device.
9. The switch of claim 8 , wherein the header information includes one of a MAC address and an IP address, and wherein the lookup table stores one of MAC addresses and IP addresses corresponding to connected peripheral devices.
10. The switch of claim 1 , wherein one or more of said semiconductor switch elements is configurable for one of 10 Gb, 25 Gb, 40 Gb, 50 Gb, and 100 Gb signal line processing.
11. A method of communicating data packets in a non-Clos data packet switching network, comprising:
connecting a plurality of semiconductor crossbar switch elements to one another according to a direct point-to-point electrical mesh interconnect; and
transferring data packets from a first peripheral device connected to one of said semiconductor crossbar switch elements to a second peripheral device connected to another one of said semiconductor crossbar switch elements via said direct point-to-point electrical mesh interconnect, according to a lookup table and network device addressing;
wherein said lookup table includes mapping of each of the plurality of semiconductor switch elements I/O ports to another one of said plurality of semiconductor switch elements I/O ports, according to the point to point connectivity of the electrical mesh interconnect.
12. The method of claim 11 , wherein said mapping of values in said lookup table is performed according to a hash function.
13. The method of claim 11 , wherein the data packets are transferred from the first peripheral to the second peripheral device by said first semiconductor crossbar switch element prepending an indicator of the destination I/O port of the second semiconductor crossbar switch element and outputting the data packet and said indicator onto said direct point-to-point electrical mesh interconnect for transfer to said second semiconductor crossbar switch element.
14. The method of claim 13 , further comprising discarding header data prior to said output of the data packet onto the second semiconductor switch element destination I/O port identified.
15. The method of claim 11 , further comprising diverting packets to a buffer for subsequent processing when said packets cannot be forwarded due to contention within one of said semiconductor switch elements.
16. The method of claim 11 , further comprising, on the condition that a device address is not in the lookup table, forwarding said device address for updating into a master table.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/558,162 US20220263774A1 (en) | 2019-03-18 | 2021-12-21 | Hyperscale switch and method for data packet network switching |
US17/567,090 US20220321498A1 (en) | 2019-03-18 | 2021-12-31 | Hyperscale switch element (hss) for data center network switching |
US17/567,094 US20220321499A1 (en) | 2019-03-18 | 2021-12-31 | Switch flow module on an integrated circuit for aggregation in data center network switching |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/357,226 US10630606B1 (en) | 2019-03-18 | 2019-03-18 | System, method and architecture for data center network switching |
US16/853,496 US11206225B2 (en) | 2019-03-18 | 2020-04-20 | Hyperscale switch and method for data packet network switching |
US17/558,162 US20220263774A1 (en) | 2019-03-18 | 2021-12-21 | Hyperscale switch and method for data packet network switching |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/853,496 Continuation US11206225B2 (en) | 2019-03-18 | 2020-04-20 | Hyperscale switch and method for data packet network switching |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/567,094 Continuation-In-Part US20220321499A1 (en) | 2019-03-18 | 2021-12-31 | Switch flow module on an integrated circuit for aggregation in data center network switching |
US17/567,090 Continuation-In-Part US20220321498A1 (en) | 2019-03-18 | 2021-12-31 | Hyperscale switch element (hss) for data center network switching |
Publications (1)
Publication Number | Publication Date |
---|---|
US20220263774A1 true US20220263774A1 (en) | 2022-08-18 |
Family
ID=70285076
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/357,226 Expired - Fee Related US10630606B1 (en) | 2019-03-18 | 2019-03-18 | System, method and architecture for data center network switching |
US16/853,496 Active 2039-05-08 US11206225B2 (en) | 2019-03-18 | 2020-04-20 | Hyperscale switch and method for data packet network switching |
US17/558,162 Abandoned US20220263774A1 (en) | 2019-03-18 | 2021-12-21 | Hyperscale switch and method for data packet network switching |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/357,226 Expired - Fee Related US10630606B1 (en) | 2019-03-18 | 2019-03-18 | System, method and architecture for data center network switching |
US16/853,496 Active 2039-05-08 US11206225B2 (en) | 2019-03-18 | 2020-04-20 | Hyperscale switch and method for data packet network switching |
Country Status (4)
Country | Link |
---|---|
US (3) | US10630606B1 (en) |
EP (1) | EP3942762A1 (en) |
CN (1) | CN113841364A (en) |
WO (1) | WO2020190314A1 (en) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113424148A (en) | 2019-03-15 | 2021-09-21 | 英特尔公司 | Multi-sharded memory management for detecting cross-sharded access, providing multi-sharded inferential scaling, and providing optimal page migration |
US11018973B2 (en) * | 2019-05-31 | 2021-05-25 | Microsoft Technology Licensing, Llc | Distributed sonic fabric chassis |
US11147181B2 (en) * | 2019-09-26 | 2021-10-12 | Rockwell Automation Technologies, Inc. | Distributed modular input/output (I/O) system with redundant ethernet backplane networks for improved fault tolerance |
DE102020203113A1 (en) * | 2020-03-11 | 2021-09-16 | Siemens Healthcare Gmbh | Packet-based multicast communication system |
US12001365B2 (en) * | 2020-07-07 | 2024-06-04 | Apple Inc. | Scatter and gather streaming data through a circular FIFO |
US11596066B1 (en) * | 2022-03-22 | 2023-02-28 | Thintronics. Inc. | Materials for printed circuit boards |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5425026A (en) * | 1993-01-05 | 1995-06-13 | Nec Corporation | Multi-protocol packet switching network |
US20030081598A1 (en) * | 2001-10-30 | 2003-05-01 | Bresniker Kirk M. | Method and apparatus for using adaptive switches for providing connections to point-to-point interconnection fabrics |
US7391786B1 (en) * | 2002-11-27 | 2008-06-24 | Cisco Technology, Inc. | Centralized memory based packet switching system and method |
US20120127998A1 (en) * | 2010-06-28 | 2012-05-24 | Avaya Inc. | Network switch port aggregation |
US20130346628A1 (en) * | 2012-06-21 | 2013-12-26 | Rodney S. Canion | Dynamically assigned mac addresses for devices in a computing system |
US20150180718A1 (en) * | 2011-10-06 | 2015-06-25 | International Business Machines Corporation | Partitioning a network switch into multiple switching domains |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8223633B2 (en) * | 2008-10-03 | 2012-07-17 | Brocade Communications Systems, Inc. | Port trunking at a fabric boundary |
US8289977B2 (en) * | 2009-06-10 | 2012-10-16 | International Business Machines Corporation | Two-layer switch apparatus avoiding first layer inter-switch traffic in steering packets through the apparatus |
US8300650B2 (en) * | 2009-06-16 | 2012-10-30 | New Jersey Institute Of Technology | Configuring a three-stage Clos-network packet switch |
US8675673B2 (en) * | 2009-07-29 | 2014-03-18 | New Jersey Institute Of Technology | Forwarding cells of partitioned data through a three-stage Clos-network packet switch with memory at each stage |
CN102238072B (en) * | 2010-05-06 | 2015-03-25 | 中兴通讯股份有限公司 | Method for dynamically selecting routing and CLOS (Charles Clos) switching network system |
US9042405B1 (en) * | 2010-06-02 | 2015-05-26 | Marvell Israel (M.I.S.L) Ltd. | Interface mapping in a centralized packet processor for a network |
US8588224B2 (en) * | 2011-05-14 | 2013-11-19 | International Business Machines Corporation | Priority based flow control in a distributed fabric protocol (DFP) switching network architecture |
WO2013006154A1 (en) | 2011-07-01 | 2013-01-10 | Hewlett-Packard Development Company L.P. | Traffic forwarding in a point multi-point link aggregation using a link selector data table |
US9225549B2 (en) | 2012-08-06 | 2015-12-29 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Multi-chassis link aggregation in a distributed virtual bridge |
US10341263B2 (en) | 2012-12-10 | 2019-07-02 | University Of Central Florida Research Foundation, Inc. | System and method for routing network frames between virtual machines |
US9282033B2 (en) * | 2013-08-06 | 2016-03-08 | Cisco Technology, Inc. | Intelligent handling of virtual machine mobility in large data center environments |
CN104980373B (en) * | 2014-04-04 | 2018-06-19 | 上海宽带技术及应用工程研究中心 | A kind of system and method for controlling server and its application |
EP4394614A2 (en) | 2014-08-13 | 2024-07-03 | Arista Networks, Inc. | Apparatus and method for low latency switching |
US9985912B1 (en) * | 2015-09-30 | 2018-05-29 | Juniper Networks, Inc. | Shared memory switch fabric system and method |
CN108809847B (en) * | 2017-05-05 | 2021-11-19 | 华为技术有限公司 | Method, device and network system for realizing load balance |
CN107689931B (en) * | 2017-09-27 | 2021-05-14 | 广州海格通信集团股份有限公司 | System and method for realizing Ethernet switching function based on domestic FPGA |
-
2019
- 2019-03-18 US US16/357,226 patent/US10630606B1/en not_active Expired - Fee Related
- 2019-06-20 CN CN201980096470.3A patent/CN113841364A/en active Pending
- 2019-06-20 WO PCT/US2019/038238 patent/WO2020190314A1/en unknown
- 2019-06-20 EP EP19919914.2A patent/EP3942762A1/en not_active Withdrawn
-
2020
- 2020-04-20 US US16/853,496 patent/US11206225B2/en active Active
-
2021
- 2021-12-21 US US17/558,162 patent/US20220263774A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5425026A (en) * | 1993-01-05 | 1995-06-13 | Nec Corporation | Multi-protocol packet switching network |
US20030081598A1 (en) * | 2001-10-30 | 2003-05-01 | Bresniker Kirk M. | Method and apparatus for using adaptive switches for providing connections to point-to-point interconnection fabrics |
US7391786B1 (en) * | 2002-11-27 | 2008-06-24 | Cisco Technology, Inc. | Centralized memory based packet switching system and method |
US20120127998A1 (en) * | 2010-06-28 | 2012-05-24 | Avaya Inc. | Network switch port aggregation |
US20150180718A1 (en) * | 2011-10-06 | 2015-06-25 | International Business Machines Corporation | Partitioning a network switch into multiple switching domains |
US20130346628A1 (en) * | 2012-06-21 | 2013-12-26 | Rodney S. Canion | Dynamically assigned mac addresses for devices in a computing system |
Also Published As
Publication number | Publication date |
---|---|
CN113841364A (en) | 2021-12-24 |
US11206225B2 (en) | 2021-12-21 |
EP3942762A1 (en) | 2022-01-26 |
US10630606B1 (en) | 2020-04-21 |
WO2020190314A1 (en) | 2020-09-24 |
US20200314025A1 (en) | 2020-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11206225B2 (en) | Hyperscale switch and method for data packet network switching | |
US11601359B2 (en) | Resilient network communication using selective multipath packet flow spraying | |
US11469922B2 (en) | Data center network with multiplexed communication of data packets across servers | |
US20230388222A1 (en) | Data center network with packet spraying | |
US7221652B1 (en) | System and method for tolerating data link faults in communications with a switch fabric | |
US10033585B2 (en) | Methods and apparatus related to a switch fabric system having a multi-hop distributed control plane and a single-hop data plane | |
US7352694B1 (en) | System and method for tolerating data link faults in a packet communications switch fabric | |
JP3872342B2 (en) | Device for network and scalable network processor | |
US10114792B2 (en) | Low latency remote direct memory access for microservers | |
WO2019045928A1 (en) | Technologies for managing a latency-efficient pipeline through a network interface controller | |
JP3807980B2 (en) | Network processor processing complex and method | |
JP3817477B2 (en) | VLSI network processor and method | |
EP2003823B1 (en) | Autonegotiation over an interface for which no autonegotiation standard exists | |
US20020118640A1 (en) | Dynamic selection of lowest latency path in a network switch | |
US20220321499A1 (en) | Switch flow module on an integrated circuit for aggregation in data center network switching | |
US9479459B2 (en) | Method for controlling large distributed fabric-based switch using virtual switches and virtual controllers | |
WO2010090838A2 (en) | Reducing cabling complexity in large-scale networks | |
US20050013311A1 (en) | Switching device with asymmetric port speeds | |
Zilberman et al. | Stardust: Divide and conquer in the data center network | |
US20220321498A1 (en) | Hyperscale switch element (hss) for data center network switching | |
Hermsmeyer et al. | Towards 100G packet processing: Challenges and technologies | |
US20220038391A1 (en) | Programmatically configured switches and distributed buffering across fabric interconnect | |
US11070474B1 (en) | Selective load balancing for spraying over fabric paths | |
Nakagawa et al. | A single-chip, 10-gigabit ethernet switch LSI for energy-efficient blade servers | |
CN111628936B (en) | Port configurable router design method based on wide-port heterogeneous tile and router |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: BRIGHTWAYS CORPORATION, PENNSYLVANIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:DIFERDINANDO, STEPHEN;REEL/FRAME:059826/0149 Effective date: 20200605 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |