WO2016172765A1 - A system for multiplexing a plurality of payloads and a method for multiplexing a plurality of payloads - Google Patents
A system for multiplexing a plurality of payloads and a method for multiplexing a plurality of payloads Download PDFInfo
- Publication number
- WO2016172765A1 WO2016172765A1 PCT/AU2016/050298 AU2016050298W WO2016172765A1 WO 2016172765 A1 WO2016172765 A1 WO 2016172765A1 AU 2016050298 W AU2016050298 W AU 2016050298W WO 2016172765 A1 WO2016172765 A1 WO 2016172765A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- block
- line encoded
- data streams
- payloads
- block sequences
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/24—Time-division multiplex systems in which the allocation is indicated by an address the different channels being transmitted sequentially
- H04J3/247—ATM or packet multiplexing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/407—Bus networks with decentralised control
- H04L12/413—Bus networks with decentralised control with random access, e.g. carrier-sense multiple-access with collision detection (CSMA-CD)
Definitions
- the disclosure herein generally relates to a system for multiplexing a plurality of payloads and a method for multiplexing a plurality of payloads.
- a plurality of payloads carried by a plurality of data streams are multiplexed onto a single output data stream.
- Each of the plurality of payloads may be, for example, an Ethernet payload, a InfiniBand payload, a FiberChannel payload, a Fire Wire payload, a PCIe payload, or generally any suitable payload.
- a payload may be, for example, a frame, a packet, a datagram, a segment, a cell or generally any suitable type of data package.
- Each of the plurality of data streams may be carried on respective network cables or wireless channels, for example.
- Each of the plurality of network cables or wireless channels may be, for example, connected to a networking device in the form of a network switch or router.
- the networking devices may perform a series of steps to multiplex the plurality of payloads.
- the networking device retrieves from a data stream a plurality of blocks that carry a payload.
- the networking device may decode Ethernet blocks (for example 64b/66b Ethernet blocks) from a data stream, and communicate the decoded blocks to a MAC and reconciliation sub-layer via a XGMII or XAUI interface for further processing.
- Block encoding is used in a physical layer to ensure that there are sufficient transitions (between l 's and 0's, for example) in the data stream to facilitate clock extraction, and to maintain a fixed DC bias (usually a 0 DC bias) to allow for AC coupling.
- Block encoding is used in many communication protocols including 1G and 10G
- Ethernet and Fire Wire.
- the payload is extracted from the blocks.
- the payload destination address is determined by reading it from the extracted payload.
- the networking device selects the output channel for the payload using the extracted destination address.
- the payload is then coded into another plurality of blocks for transmission by a transmitter on the selected output channel.
- steps are repeated for each of the plurality of payloads carried by the plurality of data streams.
- steps performed by the networking device to multiplex the plurality of data streams may be too inefficient in some application, especially for applications requiring low latency, examples of which include but are not limited to the trading of financial instruments and supercomputing.
- the method comprises the step of receiving a plurality of line encoded data streams.
- the method comprises the step of retrieving from the plurality of line encoded data streams a plurality of block sequences.
- the plurality of block sequences carry the plurality of payloads.
- the method comprises the step of transmitting a line encoded output data stream having incorporated therein the plurality of block sequences retrieved from the plurality of line encoded data streams.
- the multiplexing is, consequently, performed at the block level, not higher levels as for prior art networking devices.
- the blocks are multiplexed directly rather than being decoded or converted to another form.
- the payload need not be extracted, and an address may not be extracted from within the payload. This may improve latency and/or reduce electronic complexity. Reduced latency may be desirable for applications including but not limited to financial trading and supercomputing.
- the step of receiving the plurality of line encoded data streams comprises the step of a plurality of receivers receiving the plurality of line encoded data streams.
- the plurality of line encoded data streams may be received via a plurality of network cables.
- the plurality of line encoded data streams may be received via a network.
- the step of retrieving from the plurality of line encoded data streams the plurality of block sequences carrying the plurality of payloads may comprise the step of the plurality of receivers retrieving the plurality of block sequences carrying the plurality of payloads from the plurality of line encoded data streams.
- the plurality of receivers may regenerate the plurality of line encoded data streams.
- the step of retrieving from the plurality of line encoded data streams the plurality of block sequences may comprise the step of the plurality of receivers performing a serial-to-parallel conversion on each of the plurality of block sequences.
- the step of retrieving from the plurality of line encoded data streams the plurality of block sequences may comprise the step of the plurality of receivers performing a block alignment operation on each of the plurality of block sequences.
- the plurality of receivers may descramble each of the plurality of block sequences.
- the network may comprise at least one of a personal area network, a local area network (LAN), a campus area network (CAN), a metropolitan area network (MAN), and a wide area network (WAN, for example, the Internet).
- LAN local area network
- CAN campus area network
- MAN metropolitan area network
- WAN wide area network
- the step of transmitting the line encoded output data stream comprises the step of a transmitter transmitting the line encoded output data stream.
- the step of transmitting the line encoded output data stream may comprise the step of the line encoded output data stream being communicated over a network cable in communication with the transmitter.
- the step of the transmitter transmitting the line encoded output data stream comprises the step of the line encoded output data stream being communicated over the network.
- the plurality of block sequences carrying the plurality of payloads so retrieved may be communicated to the transmitter.
- An embodiment comprises the step of generating the line encoded output data stream having incorporated therein the plurality of block sequences retrieved from the plurality of line encoded data streams.
- An embodiment comprises the step of detecting the plurality of block sequences by detecting at least one of a start-of-payload block and an end-of-payload block for each block sequence of the plurality of block sequences.
- the plurality of block sequences so identified may be stored in a plurality of memories. Each of the plurality of memories may be paired with one of the plurality of line encoded data streams.
- the plurality of memories may comprise a plurality of first-in-first-out buffers (FIFOs). The order in which the plurality of block sequences are communicated from the plurality of memories may be scheduled.
- An embodiment comprises the step of controlling an inter-payload spacing on the line encoded output data stream.
- An embodiment comprises the step of generating a plurality of detection signals each indicating one of the start and an end of a respective block sequence of the plurality of block sequences.
- the order in which the plurality of block sequences are communicated from the plurality of memories may be scheduled using the plurality of detection signals. Retrieval of each block sequence of the plurality of block sequences from the plurality of memories may be scheduled in the order that the respective detection signals are received.
- An embodiment comprises the step of communicating the plurality of block sequences to a transmitter.
- the transmitter may generate the line encoded output data stream having incorporated therein the plurality of block sequences retrieved from the plurality of line encoded data streams.
- An embodiment comprises the step of the line encoded output data stream being communicated over a network cable in communication with the transmitter.
- An embodiment comprises the step of the line encoded output data stream being communicated over the network.
- the line encoded output data stream may comprise an output block stream comprising the plurality of block sequences retrieved from the plurality of line encoded data streams and a plurality of control blocks disposed between the plurality of block sequences.
- each of the plurality of block sequences incorporated into the line encoded output data stream are scrambled.
- An embodiment comprises the step of shaping the line encoded output data stream.
- An embodiment comprises the step of shaping the power spectrum of the line encoded output data stream.
- bit rate of each of the plurality of line encoded data streams is the same as the bit rate of the line encoded output data stream.
- the plurality of block sequences comprises at least one of a plurality of 64b/66b encoded blocks, a plurality of 64b/67b encoded blocks, a plurality of 6b/8b encoded blocks, a plurality of 8b/10b encoded blocks, a plurality of 128b/132b encoded blocks, a plurality of 128b/132b encoded blocks, and a plurality of Hamming encoded blocks.
- the plurality of payloads comprise at least one of a plurality of Ethernet payloads, a plurality of InfiniBand payloads, a plurality of FiberChannel payloads, a plurality of FireWire payloads and a plurality of PCIe payloads.
- the plurality of line encoded data streams are a plurality of block encoded data streams.
- the line encoded output data stream is a block encoded output data stream.
- each of the plurality of payloads of the plurality of line encoded data streams has a rate selected from the group comprising 100 Mb/s, 1 Gb/s, 25 Gb/s, 50 Gb/s, and 100 Gb/s.
- the plurality of blocks incorporated in the line encoded output data stream may carry the plurality of payloads at a rate selected from the group comprising 100 Mb/s, 1 Gb/s, 25 Gb/s, 50 Gb/s, and 100 Gb/s.
- any one or more of the steps described above are performed by a logic device.
- the logic device may be at least one of a complex programmable logic device (CPD), a field programmable gate array (FPGA) and an application specific integrated circuit (ASIC).
- CPD complex programmable logic device
- FPGA field programmable gate array
- ASIC application specific integrated circuit
- the step of aborting transmission of the other payload comprises
- the abort block may be, for example, one of an end-of-packet block and an error-indicating block.
- the plurality of line encoded data streams may be communicated to the CPD, FPGA or ASIC via a crosspoint switch.
- Disclosed herein is a system for multiplexing a plurality of payloads.
- the system comprises a plurality of receivers for receiving a plurality of line encoded data streams.
- the system is configured to retrieve from the plurality of line encoded data streams a plurality of block sequences.
- the plurality of block sequences carry the plurality of payloads.
- the system comprises a transmitter configured to transit a line encoded output data stream having incorporated therein the plurality of block sequences retrieved from the plurality of line encoded data streams.
- the plurality of receivers are configured to connect to a plurality of network cables that in use communicate the plurality of line encoded data streams.
- the transmitter is configured to connect to another network cable that in use communicates the output data stream.
- the plurality of receivers comprises a plurality of PHYs.
- the plurality of PHYs may be configured to regenerate the plurality of line encoded data streams.
- the plurality of PHYs may be configured to convert the plurality of block sequences from serial form to parallel form.
- the plurality of PHYs may be configured to align blocks of each of the plurality of block sequences.
- the plurality of PHYs may be configured to descramble each of the plurality of block sequences.
- An embodiment comprises communication circuitry configured to multiplex the plurality of block sequences and communicate the plurality of block sequences so multiplexed from the plurality of receivers to the transmitter.
- the communication circuitry is at least in part within a logic device.
- the logic device may comprise at least one of a complex programmable logic device (CPD), a field programmable gate array (FPGA), and an Application Specific Integrated Circuit (ASIC).
- CPD complex programmable logic device
- FPGA field programmable gate array
- ASIC Application Specific Integrated Circuit
- An embodiment comprises a block sequence detector configured to detect the plurality of block sequences by determining at least one of a start-of-payload block and an end-of-payload block for each block sequence of the plurality of block sequences, and generate a plurality of detection signals each indicating at least one of a start-of-payload block and an end-of-payload block for each of the plurality of block sequences.
- a plurality of memories may be in communication with the block sequence detector. Each of the plurality of memories may be paired with one of the plurality of line encoded data streams.
- the plurality of memories may comprise a plurality of first-in-first-out buffers (FIFOs).
- An embodiment may comprise a scheduler configured to receive the plurality of detection signals and to schedule communication of the plurality of block sequences from the plurality of memories using the plurality of detection signals.
- the scheduler may be configured to schedule communication of the plurality of block sequences from the plurality of memories in the order that a respective detection signal of the plurality of detection signals are received.
- the scheduler may cause a switch to communicate the plurality of block sequences from the plurality of memories in the order in which a respective detection signal of the plurality of detection signals are received.
- the scheduler may cause the switch to communicate the plurality of block sequences from the plurality of memories to the transmitter.
- the scheduler may control an inter- payload spacing on the line encoded output data stream by scheduling the time for
- the transmitter is configured to generate an output block stream comprising the plurality of block sequences retrieved from the plurality of line encoded data streams and a plurality of control blocks between the plurality of block sequences.
- the transmitter is configured to scramble each of the plurality of block sequences incorporated into the line encoded output data stream.
- the transmitter is configured to shape the line encoded output data stream.
- the transmitter may be configured to shape the power spectrum of the line encoded output data stream.
- each of the plurality of receivers and the transmitter have the same bit rate.
- the plurality of block sequences comprise at least one of a plurality of 64b/66b encoded blocks, a plurality of 64b/67b encoded blocks, a plurality of 6b/8b encoded blocks, a plurality of 8b/10b encoded blocks, a plurality of 128b/132b encoded blocks, a plurality of 128b/132b encoded blocks, and a plurality of Hamming encoded blocks.
- the plurality of payloads comprise at least one of a plurality of Ethernet payloads, a plurality of InfiniBand payloads, a plurality of Fiber Channel payloads, a plurality of FireWire payloads and a plurality of PCIe payloads.
- the plurality of line encoded data stream are a plurality of block encoded data streams.
- the line encoded output data stream is a block encoded output data stream.
- each of the plurality of payloads of the plurality of line encoded data streams has a rate selected from the group comprising 100 Mb/s, 1 Gb/s, 25 Gb/s, 50 Gb/s, and 100 Gb/s.
- the plurality of blocks incorporated in the line encoded output data stream may carry the plurality of payloads at a rate selected from the group comprising 100 Mb/s, 1 Gb/s, 25 Gb/s, 50 Gb/s, and 100 Gb/s.
- An embodiment comprises at least one of a complex programmable logic device, a field programmable gate array (FPGA) and an application specific integrated circuit (ASIC).
- FPGA field programmable gate array
- ASIC application specific integrated circuit
- the block sequence detector is configured to receive from the plurality of line encoded data streams another block sequence carrying another payload and the scheduler is configured to cause the transmitter to commence transmission of the other payload, the block sequence detector is configured to determine if the transmission of the other payload should be aborted using information in the other block sequence and if so determined cause the
- the block sequence detector may be configured to determine if the transmission of the other payload should be aborted using information in the other block sequence and if so determined abort the transmission of the other payload by causing incorporation in the output data stream of an abort block.
- the abort block may be one of an end- of-packet block and an error-indicating block.
- An embodiment comprises a crosspoint switch in communication with the plurality of receivers and the CPD, FPGA or ASIC.
- Figure 1 shows an embodiment of a system for multiplexing a plurality of payloads.
- Figure 2 shows a table showing the 64b/66b blocking code structure defined by the standard IEEE 802.3.
- Figure 3 shows a schematic diagram of an example configuration of a FPGA.
- Figure 4 is a table of an example of an augmented 64b/66b block code structure.
- Figures 5 and 6 show other embodiments of a system for multiplexing a plurality of payloads.
- Figure 1 shows an embodiment of a system for multiplexing a plurality of payloads, the system being generally indicated by the numeral 10.
- the system 10 comprises a plurality of receivers 18, 29 for receiving a plurality of line encoded data streams.
- the system is configured to retrieve from the plurality of line encoded data streams a plurality of block sequences.
- the plurality of block sequences carry the plurality of payloads.
- the system comprises a transmitter 34 configured to transmit a line encoded output data stream having incorporated therein the plurality of block sequences retrieved from the plurality of line encoded data streams.
- the system may generally be used in any multiplexing application where low latency is required, for example in cluster computing and supercomputing applications.
- the plurality of line encoded data streams may be generated by financial instrument transaction ordering computers, for example.
- the transmitter may, for example, be in communication with a machine in the form of a server, for example.
- the server may, for example, be in a stock exchange and be configured to execute orders for the buying and selling of financial instruments carried on the plurality of line encoded data streams.
- the plurality of line encoded data streams are a plurality of block encoded data streams (which comprise the plurality of block sequences).
- the plurality of blocks are each a 64b/66b encoded block.
- Figure 2 shows a table showing the 64b/66b blocking code structure defined by the standard IEEE 802.3.
- the first byte of 8 bytes in each row 50 - 64 is a block type field showing a block type code in hexadecimal notation.
- Row 50 is the structure of an idle block (where each of the 7 bit C fields is 0000000 in binary);
- Row 52 is the structure of a start-of-packet block wherein the last three bytes are
- Row 54 is the structure of a link status block
- Row 55 is the structure of another start-of-packet block wherein the last seven bytes are payload;
- Row 57 is the structure of a end-of-packet block wherein none of the bytes are payload; and • Row 58 is the structure of another end-of-packet block wherein the second byte is payload;
- any suitable type of blocks may be used, for example any of 64b/67b blocks, 6b/8b blocks, 8b/10b blocks, 128b/132b blocks, 128b/132b encoded blocks, and Hamming encoded blocks.
- the block encoding provides a mechanism for indicating that the block contains the start and/or end of a payload.
- the line encoded output data stream is a block encoded output data stream.
- the payloads generally, but not necessarily, comprise, for example, a payload header, and another payload.
- the payloads may also have a trailer.
- Communications may be structured in accordance with the Open Systems Interconnection (OSI) Model, in which each payload may be itself another packet of another layer of the OSI model.
- OSI Open Systems Interconnection
- the plurality of payloads in this embodiment comprise an Ethernet packet.
- the Ethernet packet may, for example, have an internet protocol (IP) packet.
- IP internet protocol
- the IP packet payload may comprise a TCP or UDP packet (or "segment"). This layered structure may continue to the Application layer.
- This embodiment of the system 10 has a multilayer printed circuit board 12 having components mounted thereto which generally, but not necessarily, are connected to each other by conductive pathways, which may comprise, for example, tracks, signal traces, strip lines and/or micro strip lines, and wires, as appropriate.
- the printed circuit board 12 is housed by a rack mountable enclosure having dimensions of 1 rack unit, although any suitable enclosure may be used or not used as desired.
- the printed circuit board has various surface mounted and/or through hole components mounted thereto.
- a mains supply 14 may be mounted to the printed circuit board 12, the main supply in use producing a relatively low voltage, such as 12, 24 or 48 volts as suitable, from a relatively high voltage source, for example, a 110 V or 240V electricity grid.
- a DC regulator in the form of a switched mode power supply module 15 mounted to the printed circuit board 12 that receives the low voltage output from the mains supply 14 and powers two or more active conductive rails integral to the circuit board 12.
- the mains supply and DC regulator may be mounted within the enclosure separate from the printed circuit board 12.
- At least one fan 16 may be mounted to the circuit board 12 or alternatively the enclosure. The at least one fan may provide airflow across the multilayer printed circuit board to extract waste heat.
- the printed circuit board 12 may also have mounted thereto a management unit 19 comprising, in this but not necessarily all embodiments, an ARM processor (or alternatively an Intel ATOM or PENTIUM processor, for example) communicating with serial and/or Ethernet interfaces 23 for receiving instructions via an Ethernet (or other) management network or other source, for example.
- the management unit 19 may also control active indicia 25 in the form of LED status lights mounted at the front of the enclosure.
- the embodiment of the system 10 of figure 1 has a plurality of ports, for example ports 17, 27.
- the plurality of ports 17, 27 are configured to connect to a plurality of network cables that in use conduct the plurality of line encoded data streams.
- Each of the plurality of ports is associated with one of the plurality of line encoded data streams.
- the transmitter 34 is also configured to connect to another network cable that in use communicates the output data stream.
- the system may be part of a network in the form of, for example, a PAN, LAN, MAN, WAN or generally any suitable form of network.
- the plurality of ports 17, 27 provide an electrical to electrical interface, for example supporting BASE-T Ethernet or direct attached copper cables.
- the plurality of ports are configured to accept a network cable in the form of an optical network cable, specifically each of the plurality of ports are configured to receive two LC connectors terminating respective optical fibre cables that click into the port, but any suitable connectors (FC, SC for example) may be used.
- the plurality of ports 17, 27 and port 31 have an enhanced small form factor pluggable (SFP+) transceiver.
- SFP+ small form factor pluggable
- any suitable transceiver may be used, for example any of gigabit interface converter (GBIC), small form factor plugable (SFP), 10 gigabit small form factor pluggable (XFP), 10 Gigabit Media Independent Interface (XAUI ), C form-factor pluggable (CFP), quad small form- factor pluggable (QSFP), CXP specified by the Infiniband Trade Association, and a Thunderbolt transceiver.
- the plurality of ports may alternatively be configured to receive an electrical network cable in the form of, for example, a copper network cable.
- the transceivers may be housed in enclosures in the form of SFP cages fixed to the printed circuit board 12.
- the cages provide an electrical connection between electrical contacts on the transceivers and the conductive tracks.
- the cages may also act as Faraday cages to reduce electromagnetic interference, and extract heat from the transceiver.
- the transceivers may be mounted directly to the printed circuit board.
- the plurality of ports 17, 27 generate electrical signals from the received optical signals, and subsequently communicate the electrical signals to the printed circuit board 12.
- the ports may support an Ethernet protocol, for example gigabit Ethernet, and receive and/or transmit Ethernet packets, but other embodiments may have transceivers that support Fibre Channel, FireWire, PCIe, USB or any other suitable protocol or standard.
- the plurality of payloads may comprise at least one of a plurality of Ethernet payloads, a plurality of InfiniBand payloads, a plurality of FiberChannel payloads, a plurality of FireWire payloads and a plurality of PCIe payloads.
- the ports may be each configured for line encoded data streams carrying information having a rate selected from the group comprising 100 Mb/s, 1 Gb/s, 25 Gb/s, 50 Gb/s, and 100 Gb/s, for example, however generally any suitable rate may be selected.
- the line encoded output data stream and the plurality of line encoded data streams each carry information at a rate selected from the group comprising 100 Mb, 1 Gb, 25 Gb, 50 Gb, and 100 Gb.
- the actual line rate of the block encoded data is higher than these numbers.
- the line rates are higher than the information rate because of block encoding overhead.
- the plurality of line encoded data streams and the line encoded output data stream have the same rate.
- the system may receive a plurality of line encoded data streams at one bit rate and transmit the line encoded output data stream at another protocol rate.
- the conductive tracks 22 (which may comprise a plurality of micro-striplines, for example), provides a conduit for communications between the ports 17, 27, 31 and a logic device 24.
- the logic device 24 comprises a field programmable gate array (FPGA).
- the logic device may be any suitable logic device, for example an application-specific integrated circuit (ASIC) and/or a complex programmable logic device (CPLD). Some embodiments comprise more than one logic device.
- the field programmable array 24 may have any suitable architecture.
- the FPGA architecture comprises an array of configurable logic blocks, I/O leads or pins, and routing channels.
- the logic blocks comprises of logical cells that may comprise of, for example, a look up table, a full adder, and a D-type flip flop. Clock signals may be routed through special purpose dedicated clock networks within the FPGA in
- the FPGA 24 may also include higher-level functionality including embedded multipliers, generic digital signal processing blocks, embedded processors, high-speed I/O logic for communication with components external of the FPGA (for example), and embedded memories that may be used by buffers.
- the reference clock 33 has a frequency of 156.25 MHz, but generally any other suitable frequency may be used as appropriate, for example 125 MHz or a multiple of 156.25 MHz.
- the internal structure of the FPGA is configured to form a plurality of modules.
- the modules are initially specified, for example, using a hardware description language, examples of which include VHDL and VERILOG.
- the functionality to be implemented on the FPGA is described in a hardware description language. The description is compiled, synthesized and mapped to the FPGA using appropriate EDA tools to a configuration file that, when loaded or programmed into the FPGA, causes the FPGA to implement the functionality described.
- FIG. 3 shows a schematic diagram of an example configuration of the FPGA 24 having a plurality of modules therein connected with a plurality of busses.
- the electrical signal 70 generated by an o/e converter at port 17 (or straight off the line in the case of the data stream being transmitted over a copper network cable) is received by a PHY in the form of a receive (Rx) PHY 72 on the FPGA 24.
- Rx PHY 72 there is a plurality of clock and data recovery (CDR) devices electrically disposed between the plurality of ports and the FPGA 24.
- the CDR devices may be incorporated in the FPGA 24.
- the Rx PHY 72 comprises circuitry that implements physical layer functions.
- a Rx PHY is in communication with a MAC, however this embodiment has no MAC on the FPGA 24 because the payloads are processed below the MAC layer.
- the electrical signal 74 generated by another o/e converter at port 27 is received by another Rx PHY 76.
- Embodiments may have 2, 3, 16, 32, 64 or generally any number of ports and PHYs.
- the plurality of PHYs are configured to: • convert the plurality of block sequences from serial form to parallel form;
- the plurality of PHYs are configured to regenerate the plurality of line encoded data streams. Another embodiment, however, does not regenerate the plurality of line encoded data streams.
- each of the Rx PHYs 72, 74 is the plurality of block sequences in parallel form, in proper alignment, and descrambled from their line encoded form.
- each block of the plurality of block sequences is a 64b/66b block.
- the FPGA 24 has communication circuitry 78 that is configured to receive from the plurality of receivers via buses 80, 82 the plurality of block sequences, multiplex the plurality of block sequences, and then communicate the plurality of block sequences so multiplexed to the transmitter 34 via bus 84.
- the transmitter 34 is in the form of an o/e converter and is part of port 31.
- Port 31 also has a receiver 35 in the form of an e/o converter, which together with the transmitter 34 provides bidirectional communication.
- port 31 provides electrical to electrical interfaces, for example supporting BASE-T Ethernet or direct attach copper cables.
- Port 34 comprises a transceiver as described above with respect to the plurality of ports 17, 27.
- the Rx PHYs 72, 76 are in communication with a block sequence detector 86 on the FPGA 24.
- the block sequence detector 86 receives the plurality of block sequences from the plurality of Rx PHYs 72, 76.
- the block sequence detector is configured to detect the plurality of block sequences by determining at least one of a start-of-payload (SOP) block and an end-of-payload (EOP) block for each block sequence of the plurality of block sequences.
- SOP start-of-payload
- EOP end-of-payload
- the block sequence detector 86 determines the header (sync and block type field) of each block of the plurality of block sequences to determine whether each block is a start-of-payload block, an end-of-payload block, or a data block.
- the block sequence detector also generates a plurality of detection signals each indicating at least one of a start-of-payload block and an end-of-payload block for each of the plurality of block sequences.
- the block sequence detector 86 comprises a plurality of sub modules 98, 100 for respective Rx PHYs.
- a plurality of memories 88, 90 on the FPGA 24 are in communication with the block sequence detector 86. While the block sequence detector 86 is in this embodiment in series with the plurality of memories 88, 90, it may alternatively be in parallel with them or generally disposed any suitable way. Each of the plurality of memories is paired with one of the plurality of line encoded data streams and the associated port. The block sequence detector generates a plurality of word sequences that are subsequently sent to the memories 88, 90. Each word of the plurality of word sequences comprises a block of a respective block sequence of the plurality of block sequences. The words are, in this but not all embodiments, longer than a block.
- the bit positions in the plurality of word sequences not occupied by blocks of the plurality of block sequences are signalling bits for signalling.
- the signalling bits may signal, for example, that the word comprises one of a start-of-payload block and an end-of-payload block (i.e. are detection signals).
- the SOP and EOP control blocks only need to be identified once in the FPGA, reducing processing and hence may further reduce latency.
- Figure 4 shows an example of an augmented block code structure.
- the augmentation includes words comprising additional bit positions to the block sequence.
- the additional bit positions include a bit that indicates if the associated block is a control block (CTL), if the block is an Start of Packet block (SOP), if the SOP occurs in the middle of the block (SOP1), if the packet is an End of Packet block (EOP) and a binary representation of the number of data bytes in the EOP block (EOP POS).
- CTL control block
- SOP Start of Packet block
- SOP1 Start of Packet block
- EOP End of Packet block
- EOP POS binary representation of the number of data bytes in the EOP block
- the plurality of memories 88, 90 comprise a plurality of first-in-first-out buffers (FIFOs),.
- the memories 88, 90 are configured for storing words generated by the block sequence detector.
- the memories 88, 90 are configured to receive a trigger signal and in response read out a word comprising a block of the plurality of block sequences.
- the trigger signal for a block of a payload may be received while the block's payload is still being received. This technique may not be employed, however, when a payload is received while another is being transmitted.
- Another embodiment has a store-and-forward approach.
- the trigger is received as soon as a block is received, but in the case significant jitter on one or both of the receive clock (the Rx PHY's clock) and the transmit clock (the Tx PHY's clock) the trigger may be delayed to ensure data is guaranteed to be available on the output of the FIFO when required.
- each Rx PHY 74, 76 has a respective Rx PHY clock from which they receive a Rx PHY clock signal.
- the Tx PHY 106 also has a respective Tx PHY clock from which it receives a Tx PHY clock signal.
- the boundary between a domain of any one of the Rx PHY clocks and the Tx PHY clock is at the plurality of memories 88,89. The plurality of memories minimise the amount of circuitry required for crossing clock domains.
- a scheduler 92 configured to receive the plurality of detection signals and to schedule communication of the plurality of block sequences from the plurality of memories using the plurality of detection signals.
- the scheduler 92 maintains its own scheduler queue 102 indicating the order of transmission.
- the scheduler 92 ensures that the each block sequence is completely read out (a SOP block, at least one data block, and an EOP block).
- the scheduler 92 then reads the scheduler queue to determine which memory 88,90 to source the next packet from.
- the scheduler 92 may execute another algorithm to determine which port has priority.
- the algorithm may be a round robin algorithm or arbitrarily give one of the ports priority. Random port selection may also be used.
- Alternative embodiments may have the memories communicate with the scheduler when the next block to be read out is an EOP block, or the block detector communicates to the scheduler how many blocks are in each of the plurality of block sequences.
- Data busses 94, 95 communicate the plurality of detection signals from the block sequence detector 86 to the scheduler 92.
- words from the block detector 86 are communicated to the scheduler 92, the detection signal being incorporated therein as described above.
- the scheduler 92 is configured to schedule communication of the plurality of block sequences from the plurality of memories 88, 90 in the order that a respective detection signal of the plurality of detection signals is received.
- the scheduler 92 causes a switch 94 in the form of a multi-way switch to communicate the plurality of block sequences from the plurality of memories in the order in which a respective detection signal of the plurality of detection signals are received.
- the scheduler 92 causes the switch to communicate the plurality of block sequences from the plurality of memories 88, 90 to the transmitter 34. It does this by sending memory selection information indicative of which memory the switch should address via bus 96.
- the scheduler 92 also sends a trigger signal via conduit 87, 89 to the memories 88, 90 indicating that they should read out a stored block.
- the scheduler 92 also controls an inter-payload spacing on the line encoded output data stream by scheduling the send time for each trigger signal.
- the transmitter comprises a control block generator 104 configured to receive the plurality of block sequences from the switch 94.
- the control block generator 104 transmits the plurality of block sequences to a PHY in the form of a transmit (Tx) PHY 106, and a plurality of control blocks, for example idle blocks, in spaces between the plurality of block sequences.
- the control blocks may alternatively be link state or other in band control information.
- the Tx PHY 106 is configured to scramble each of the plurality of block sequences incorporated into the line encoded output data stream.
- the Tx PHY 106 is also configured, in this but not all embodiments, to shape the line encoded output data stream, and/or shaping the power spectrum of the line encoded output data stream.
- the system 10 is configured to filter out blocks carrying payloads and satisfying a condition, however not all embodiments are able to filter out blocks carrying payloads.
- the block sequence detector 86 may receive from the plurality of line encoded data streams another block sequence carrying another payload and the scheduler 92 is configured to cause the transmitter 106 to commence transmission of the other payload.
- the block sequence detector 86 is configured to determine if the transmission of the other payload by the transmitter 106 should be aborted using information that the block sequence detector 86 retrieved from the other block sequence. If it is determined that transmission of the other payload should be aborted, for example if it satisfies a condition, the block sequence detector causes the transmission of the other payload to be aborted.
- the information in the other block sequence may be, for example, a source and/or destination address, for example a MAC or IP address, or generally any suitable address (an
- present embodiments may enhance network security and have the function of a firewall that controls network traffic on an applied rule set.
- the rule set may be, for example, filtering on the basis of addresses as described above, the detection of an abort code or generally any suitable rule. It will be appreciated however, that the filtering is occurring at level 1 of the OSI Model of the network. Consequently, the payload is not unpacked from a block sequence, inspected, then packed onto a new block sequence which reduces the latency addition of the present embodiments.
- Figure 5 shows another embodiment of a system for multiplexing a plurality of payloads, the system being generally indicated by the numeral 200. Parts that are identical or similar to those of the system 10 of figure 1 are similarly numbered.
- the system 200 has all the functions of the system 10 and functions that are additional to system 10.
- the system 200 has communications circuitry 205, which operate similarly or identically to the communications circuitry 78 of system 10 and to which the above disclosure with respect to communications circuitry 78 apply.
- the communications circuitry is, in this embodiment, configured as a 15: 1 multiplexer (15 inputs and 1 output).
- the communications circuitry 205 is incorporated into a logic device in the form of an FPGA 24.
- the system 200 has a crosspoint switch 206 in communication with a plurality of ports (e.g. port 212) and the logic device 24.
- the communications circuitry 205 is configured to receive from a plurality of receivers (e.g. receiver 210) of the plurality of ports
- the cross point switch 206 via the cross point switch 206 a plurality of block sequences, multiplex the plurality of block sequences, and then communicate the plurality of block sequences so multiplexed via the crosspoint switch 206 to a transmitter 214 of a port in the form of a service port 216.
- the crosspoint switch 206 is also configured to broadcast the signals received on the receiver 218 associated with the port 216.
- the plurality of ports e.g. 212
- the service port 216 may be in communication with a trading engine located at, for example, a financial market.
- Figure 6 shows still another embodiment of a system for multiplexing a plurality of payloads, the system being generally indicated by the numeral 300. Parts that are identical or similar to those of the system 10 of figure 1 are similarly numbered.
- the system 300 has all the functions of the system 10 and functions that are additional to system 10.
- the system 300 has a plurality of communications circuitry modules 202, 204, which each operate similarly or identically to the communications circuitry 78 of system 10 and to which the above disclosure with respect to communications circuitry 78 apply.
- Each of the plurality of communications circuitry modules is, in this embodiment, configured as a 7: 1 multiplexer.
- the plurality of communications circuitry modules 202, 204 are incorporated into a logic device in the form of an FPGA 24.
- the system 300 has a crosspoint switch 206 in communication with a plurality of ports (e.g. port 312) and the logic device 24.
- Each of the communications circuitry modules 202 and 204 are each configured to receive from the plurality of receivers (e.g. receiver 310) of the plurality of ports
- the cross point switch 206 via the cross point switch 206 the plurality of block sequences, multiplex the plurality of block sequences, and then communicate the plurality of block sequences so multiplexed via the crosspoint switch 206 to a transmitter (e.g. transmitter 314) of a service port 316.
- the crosspoint switch 206 is also configured to broadcast the signals received on the receiver associated with the transmitter port.
- the plurality of ports e.g. 312
- the port in the form of a service port 316 may be in communication with a trading engine located at, for example, a financial market.
- the system 300 may communicate with two trading engines because it has two communication circuitry modules.
- the systems 200 and 300 have a plurality of clock and data recovery modules 208 in
- the logic device 24 (in this example in the form of a FPGA) of either one of the systems 200, 300 may be configured to have any of, for example: a 15: 1 multiplexer, two 7: 1 multiplexers; a 31 : 1 multiplexer; a 24: 1 multiplexer and a 8: 1 multiplexer; two 16: 1
- the cross point switch is generally suitably configured for the chosen multiplexer configuration.
- Using a FPGA enables the system to be reconfigured at will.
- Payloads may be filtered from the plurality of line encoded data streams to enhance network security, for example, while adding relatively little latency to payloads processed by embodiments.
- the plurality of line encoded data streams may be wirelessly received (for example via Wi-Fi or generally any suitable protocol), and the line encoded output data stream may be wirelessly transmitted (for example via Wi-Fi or generally any suitable protocol).
- the present embodiments are, therefore, to be considered in all respects as illustrative and not restrictive.
- Prior art, if any, described herein is not to be taken as an admission that the prior art forms part of the common general knowledge in any jurisdiction.
Abstract
Description
Claims
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU2015901549 | 2015-04-30 | ||
AU2015901549A AU2015901549A0 (en) | 2015-04-30 | A system for multiplexing a plurality of payloads and a method for multiplexing a plurality of payloads |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2016172765A1 true WO2016172765A1 (en) | 2016-11-03 |
Family
ID=57197929
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/AU2016/050298 WO2016172765A1 (en) | 2015-04-30 | 2016-04-28 | A system for multiplexing a plurality of payloads and a method for multiplexing a plurality of payloads |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2016172765A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3726758A4 (en) * | 2017-12-29 | 2021-02-17 | Huawei Technologies Co., Ltd. | Data transmission method, communication apparatus, and storage medium |
US11888586B2 (en) | 2021-07-27 | 2024-01-30 | Orthogone Technologies Inc. | Low latency network device and method for treating received serial data |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030185251A1 (en) * | 2002-03-28 | 2003-10-02 | Nec Corporation | Multiplex transmission system capable of using ordinary network packets to transmit a plurality of 8B/10B bit streams |
US7308006B1 (en) * | 2000-02-11 | 2007-12-11 | Lucent Technologies Inc. | Propagation and detection of faults in a multiplexed communication system |
US20100103954A1 (en) * | 2008-10-27 | 2010-04-29 | Cisco Technology, Inc. | Multiple Infiniband Ports Within A Higher Data Rate Port Using Multiplexing |
US20120027020A1 (en) * | 2009-03-26 | 2012-02-02 | Nec Corporation | Multiplexing transmission system, multiplexing apparatus, demultiplexing apparatus and a multiplexing transmission system |
-
2016
- 2016-04-28 WO PCT/AU2016/050298 patent/WO2016172765A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7308006B1 (en) * | 2000-02-11 | 2007-12-11 | Lucent Technologies Inc. | Propagation and detection of faults in a multiplexed communication system |
US20030185251A1 (en) * | 2002-03-28 | 2003-10-02 | Nec Corporation | Multiplex transmission system capable of using ordinary network packets to transmit a plurality of 8B/10B bit streams |
US20100103954A1 (en) * | 2008-10-27 | 2010-04-29 | Cisco Technology, Inc. | Multiple Infiniband Ports Within A Higher Data Rate Port Using Multiplexing |
US20120027020A1 (en) * | 2009-03-26 | 2012-02-02 | Nec Corporation | Multiplexing transmission system, multiplexing apparatus, demultiplexing apparatus and a multiplexing transmission system |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3726758A4 (en) * | 2017-12-29 | 2021-02-17 | Huawei Technologies Co., Ltd. | Data transmission method, communication apparatus, and storage medium |
JP2021508214A (en) * | 2017-12-29 | 2021-02-25 | 華為技術有限公司Huawei Technologies Co.,Ltd. | Data transmission methods, communication equipment, and storage media |
JP7026802B2 (en) | 2017-12-29 | 2022-02-28 | 華為技術有限公司 | Data transmission methods, communication equipment, and storage media |
US11316545B2 (en) | 2017-12-29 | 2022-04-26 | Huawei Technologies Co., Ltd. | Data transmission method, communications device, and storage medium |
US11888586B2 (en) | 2021-07-27 | 2024-01-30 | Orthogone Technologies Inc. | Low latency network device and method for treating received serial data |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10623335B2 (en) | Network device and a method for networking | |
JP6254267B2 (en) | Reconfigurable and variable rate shared multitransponder architecture for flexible Ethernet based optical networks | |
US7020729B2 (en) | Protocol independent data transmission interface | |
EP2609697B1 (en) | Scalable high speed gigabit active bundle link and tester | |
JP5111591B2 (en) | Method and apparatus for multiple gigabit ethernet architecture | |
US9077452B2 (en) | QSFP+ to SFP+ form-factor adapter with signal conditioning | |
US5854840A (en) | Data transmission protocol method and apparatus | |
JP6192803B2 (en) | Method, apparatus and system for data scheduling and exchange | |
CN104869176B (en) | Use multiple ethernet ports and port type in shared data path | |
US20100014566A1 (en) | Method and apparatus for a 10gbase-t small form factor pluggable (sfp+) module | |
US20130104012A1 (en) | Bit Error Rate Impact Reduction | |
EP3565201A1 (en) | Wired communications device and method for operating a wired communications device | |
CN109951750A (en) | Data processing method and system based on mono- layer of cross architecture of FlexE | |
WO2016172765A1 (en) | A system for multiplexing a plurality of payloads and a method for multiplexing a plurality of payloads | |
EP3565202A1 (en) | Wired communications device and method for operating a wired communications device | |
WO2018173459A1 (en) | Communication device and signal relay method | |
EP3335320B1 (en) | A system and a method for a line encoded data stream | |
CN106713149A (en) | Daughter card of router and wire clamp board | |
US20130101076A1 (en) | Polarity Detection | |
Haas | The IEEE 1355 Standard. Developments, performance and application in high energy physics | |
US7590135B2 (en) | Methods and apparatus to perform security related operations on received signals | |
US7139288B2 (en) | Protocol-independent packet delineation for backplane architecture | |
AU2014100942B4 (en) | A network device and a method for networking | |
Sheynin et al. | High-rate serial interconnections for embedded and distributed systems with power and resource constraints | |
Nishimura et al. | A network switch using optical interconnection for high performance parallel computing using PCs: High-density implementation of high-speed signals for a one-chip electronic switch with optical interconnections |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 16785686 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 16785686 Country of ref document: EP Kind code of ref document: A1 |
|
32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205 DATED 10/04/2018) |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 16785686 Country of ref document: EP Kind code of ref document: A1 |