This disclosure relates to lane bitrates in multi- and single-lane networking.
High speed data networks form part of the backbone of what has become indispensable worldwide data connectivity. Within the data networks, data coding and encapsulation may be used to transport data from a source to a destination. Improvements in network throughput, including improvements in networking modes to support increase throughput, will further enhance performance of data networks.
The discussion below makes reference to network interface ports and network interface port modes. The network interface ports (e.g., Ethernet ports) may support one or more lanes for multi-lane and single lane network interface port modes. The lanes may support virtually any lane speed (e.g., lane data rate), for example 10 Gb/s, 20 Gb/s, 50 Gb/s, or other lane speeds. In some cases parameters specified for a network interface port mode may be selected based on the number of lanes used in the network interface port mode and the lane speed of the lanes used in the network interface port mode.
The various network interface port modes may be used in conjunction with various networking standards including IEEE 802.3ba, IEEE 802.3bj, IEEE 802.3bm, IEEE 802.3bs, IEEE 802.3by, or other IEEE 802.3 family standards.
Selection of networking mode parameters may be based on lane speed and number of lanes per network interface port. Additionally or alternatively, networking mode parameters may be selected to address issues of interoperability with legacy systems, e.g., backward compatibility. For example, in some cases, 25 Gbaud PAM4 line coding may be selected to facilitate interoperability among 25 Gb/s lane coding schemes and 50 Gb/s line coding schemes.
In
In some implementations, the transceivers circuitry 138 may include network coding circuitry 170 to support selection and support of network interface port modes.
The user interface 109 and the input/output interface circuitry 106 may include and/or support one or more of a graphical user interface (GUI), touch sensitive display, voice or facial recognition inputs, buttons, switches, speakers and other user interface elements. Additional examples of the input/output interface circuitry 106 supported and/or provided can include one or more of microphones, video and still image cameras, headset and microphone input/output jacks, Universal Serial Bus (USB) connectors, memory card slots, and other types of inputs. The input/output interface circuitry 106 may further include and/or support magnetic or optical media interfaces (e.g., a CDROM or DVD drive), serial and parallel bus interfaces, and keyboard and mouse interfaces.
The system circuitry 104 may include hardware that may execute logical instructions to carry out the processing noted below. The system circuitry 104 may be implemented, for example, with one or more systems on a chip (SoC), application specific integrated circuits (ASIC), discrete analog and digital circuits, and other circuitry. The system circuitry 104 is part of the implementation of any desired functionality in the node 100. In that regard, the system circuitry 104 may include circuitry that facilitates phantom mode transmission over paired conductor media.
The system circuitry 104 may include one or more processors 120 and memories 122. The memory 122 and storage devices 114, 116, 118 store, for example, control instructions 124 and an operating system 126. The processor 120 executes the control instructions 124 and the operating system 126 to carry out any of the described functionality for the node 100. The control parameters 128 provide and specify configuration and operating options for the control instructions 124, operating system 126, and other functionality of the example node 100.
The network coding circuitry 170 may specify multiple port parameters for a given network interface port mode. For example, the network coding circuitry may specify a network interface port data rate, a number of physical lanes, a number or logical lanes (e.g., physical coding sublayer (PCS) lanes, virtual lanes, forward error correction (FEC) lanes, or other logical lanes), a logical lane type (e.g., PCS, virtual, FEC, or other lane types, FEC types (e.g., Reed-Soloman (RS), RS-544, RS-528, Base-R (which may use a cyclic fire code), or other FEC types), a baud rate (e.g., 26.6 Gbaud, 25.8 Gbaud, or other baud rates), a physical signaling scheme (e.g., four-level pulse amplitude modulation (PAM4), or other signaling schemes), RS FEC architecture or other parameters.
Table 1 shows example network interface port modes individually designated by a mode number in the last column.
The example network interface port modes shown in Table 1 may be used to support 50 Gb/s lane speeds. However, other lane speeds may be used. For example, example network interface port modes 9 and 11 may be used with 25 Gb/s lane speeds and multiple physical lanes. Hence, conversion between 50 Gb/s lane speeds and 25 Gb/s lane speeds for network interface ports using modes 9 or 11 may be accomplished via multiplexing/demultiplexing circuitry. Multiplexing circuitry may join multiple (e.g., two) 25 Gb/s lanes into a 50 Gb/s lane.
Conversely, demultiplexing circuitry may divide a 50 Gb/s lane into multiple 25 Gb/s lanes. Similarly, multiplexing/demultiplexing circuitry may convert network interface ports of a first data rate into ports of second data rate by combining or dividing the lanes of the network interface ports. In an example scenario, a bit-mux gearbox may be implemented as the multiplexing/demultiplexing circuitry. Gearboxes may alter physical lane data rates by “gearing” down or up lane speeds through demultiplexing or multiplexing operations.
Table 1 makes reference to logical architecture types A, B, C, and D. The Tx/Rx logic and error correction coding discussed below in
The encoding instructions 212 operate according to the encoding parameters 224 to perform the error code insertion, alignment marker insertion, encoding, transcoding, and scrambling described below. All of the encoding parameters 224 may vary on a dynamic basis to suit pre-configured or dynamic configuration goals of the NITC 200. For example, the encoding parameters 224 may be changed dynamically by the network encoding logic 203 to increase compatibility with a legacy system when the legacy system is brought online. However, the network encoding circuitry 203 may return the parameters to a non-legacy state when the legacy system is brought offline. The network encoding circuitry 203 may communicate status and other information to other logic in the node 100 to be used in subsequent processing stages.
The encoding parameters 224 may include alignment marker definitions 226. The decoding parameters may further include error correction (EC) encoding parameters 278, and symbol/block definitions 230.
The NIRC 250 includes network reception ports 252 (e.g., Ethernet ports or other network interface ports) and network decoding circuitry 253. The network decoding circuitry 253 may be implemented in hardware, software, or both. Additionally or alternatively, the network decoding circuitry 253 may include a processor 254 and a memory 256. The memory 256 may store decoding instructions 262 (e.g., program instructions) for execution by the processor 254. The network decoding circuitry 203 may implement the techniques described below for reception, including the reception aspects described below in connection with
In various implementations, the NITC 200 and NIRC may be implemented as unified-duplex network interface circuity (NIC), with two-way network interface ports, and network coding circuitry (e.g., 170) to handle transmission and reception operations.
The decoding instructions 262 operate according to the decoding parameters 274 to perform the decoding, error code decoding, deskewing, descrambling, transcoding, and reordering described below. The decoding parameters 274 may include synchronization information 276, such as match thresholds, deskew information, alignment marker definitions, and lock criteria. The decoding parameters may further include EC decoding parameters 278 and symbol/block definitions 280. All of the decoding parameters 274 may vary on a dynamic basis to suit pre-configured or dynamic configuration goals of the NIRC 250. The network decoding circuitry 253 may communicate status and other information to other logic in the node 100 to be used in subsequent processing stages.
The logic 300 may insert alignment markers (AM) (318) for the virtual lanes and/or physical lanes. The logic 300 may distribute (320) the data among the physical lanes, e.g., in blocks defined by the alignment markers.
In the Rx stack 330, incoming data on the physical lanes may be demultiplexed (332) by the logic 300. The logic 300 may lock to the alignment markers (334) to deskew the logical lanes (336). The logic 300 may reorder the data in accord with the alignment markers (338), e.g., to mitigate the effect of out-of-order logical or physical lane data transmission. The logic 300 may apply descrambling (340) and decode (342) the data from the virtual lanes. The logic 300 may send the data may to the MAC layer (344).
In some cases, the layering showing the Tx stack 310 and the Rx stack 330 may show the layering on the physical lane lines. For example, the AM insertion (318) occurs below (in the stack) or after (in time) the scrambling (316). Accordingly, the AM blocks may not necessarily be exposed to scrambling. This layering may be implemented architecturally, e.g., by inserting the AM blocks after scrambling or may be implemented logically, e.g., inserting the AM blocks ahead of the scrambling but marking the AM blocks to be skipped during scrambling. Other such architectural/logical inversions may be implemented with other layers in the Tx and Rx stacks 310, 330. Further, the architectural/logical inversions may be implemented with the other example Tx/Rx logic 400, 500, 600 discussed below.
Moving to
In the Rx stack 430, incoming data on the physical lanes may be demultiplexed (432) by the logic 400. The logic 400 may lock to the alignment markers (434) to deskew the logical lanes (436). The logic 400 may reorder the data (438). The logic 400 may perform EC decoding (439) to remove the EC lanes. The logic 400 may apply descrambling (440). The logic 400 may transcode (441) the data back to the original data rate. The logic 400 may decode (442) the data from the virtual lanes. The logic 400 may send the data may to the MAC layer (444).
Moving to
Moving on to
The methods, devices, processing, circuitry, and logic described above may be implemented in many different ways and in many different combinations of hardware and software. For example, all or parts of the implementations may be circuitry that includes an instruction processor, such as a Central Processing Unit (CPU), microcontroller, or a microprocessor; or as an Application Specific Integrated Circuit (ASIC), Programmable Logic Device (PLD), or Field Programmable Gate Array (FPGA); or as circuitry that includes discrete logic or other circuit components, including analog circuit components, digital circuit components or both; or any combination thereof. The circuitry may include discrete interconnected hardware components or may be combined on a single integrated circuit die, distributed among multiple integrated circuit dies, or implemented in a Multiple Chip Module (MCM) of multiple integrated circuit dies in a common package, as examples.
Accordingly, the circuitry may store or access instructions for execution, or may implement its functionality in hardware alone. The instructions may be stored in a tangible storage medium that is other than a transitory signal, such as a flash memory, a Random Access Memory (RAM), a Read Only Memory (ROM), an Erasable Programmable Read Only Memory (EPROM); or on a magnetic or optical disc, such as a Compact Disc Read Only Memory (CDROM), Hard Disk Drive (HDD), or other magnetic or optical disk; or in or on another machine-readable medium. A product, such as a computer program product, may include a storage medium and instructions stored in or on the medium, and the instructions when executed by the circuitry in a device may cause the device to implement any of the processing described above or illustrated in the drawings.
The implementations may be distributed. For instance, the circuitry may include multiple distinct system components, such as multiple processors and memories, and may span multiple distributed processing systems. Parameters, databases, and other data structures may be separately stored and managed, may be incorporated into a single memory or database, may be logically and physically organized in many different ways, and may be implemented in many different ways. Example implementations include linked lists, program variables, hash tables, arrays, records (e.g., database records), objects, and implicit storage mechanisms. Instructions may form parts (e.g., subroutines or other code sections) of a single program, may form multiple separate programs, may be distributed across multiple memories and processors, and may be implemented in many different ways. Example implementations include stand-alone programs, and as part of a library, such as a shared library like a Dynamic Link Library (DLL). The library, for example, may contain shared data and one or more shared programs that include instructions that perform any of the processing described above or illustrated in the drawings, when executed by the circuitry.
Various implementations have been specifically described. However, many other implementations are also possible.
This application claims priority to provisional application serial number 62/266,560, filed Dec. 11, 2015, Attorney Docket No. 14528.01145, titled Multi-Lane Networking Port Modes; and provisional application serial number 62/426,115, filed Nov. 23, 2016, Attorney Docket No. 14528.01166, titled Network Interface Port Modes; each of which being entirely incorporated by reference.
Number | Date | Country | |
---|---|---|---|
62426115 | Nov 2016 | US | |
62266560 | Dec 2015 | US |