US11082539B2 - System and method for performing interpacket gap repair for lossy protocols - Google Patents
System and method for performing interpacket gap repair for lossy protocols Download PDFInfo
- Publication number
- US11082539B2 US11082539B2 US16/012,980 US201816012980A US11082539B2 US 11082539 B2 US11082539 B2 US 11082539B2 US 201816012980 A US201816012980 A US 201816012980A US 11082539 B2 US11082539 B2 US 11082539B2
- Authority
- US
- United States
- Prior art keywords
- ipg
- idle
- block
- data
- communication protocol
- 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.)
- Active, expires
Links
- 230000008439 repair process Effects 0.000 title claims abstract description 91
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000004891 communication Methods 0.000 claims abstract description 93
- 230000005540 biological transmission Effects 0.000 claims abstract description 42
- 238000003780 insertion Methods 0.000 claims description 18
- 230000037431 insertion Effects 0.000 claims description 18
- 238000013507 mapping Methods 0.000 claims description 15
- 239000003550 marker Substances 0.000 claims 2
- 238000001514 detection method Methods 0.000 claims 1
- 230000008569 process Effects 0.000 description 24
- 239000000872 buffer Substances 0.000 description 20
- 230000006870 function Effects 0.000 description 17
- 230000010076 replication Effects 0.000 description 13
- 230000006978 adaptation Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 238000009432 framing Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000000926 separation method Methods 0.000 description 6
- 238000002296 dynamic light scattering Methods 0.000 description 5
- 229920003258 poly(methylsilmethylene) Polymers 0.000 description 5
- 238000013061 process characterization study Methods 0.000 description 5
- 238000012937 correction Methods 0.000 description 4
- 239000000463 material Substances 0.000 description 4
- 239000007858 starting material Substances 0.000 description 4
- 101100283411 Arabidopsis thaliana GMII gene Proteins 0.000 description 3
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 239000013078 crystal Substances 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006735 deficit Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003116 impacting effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0078—Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
- H04L1/0084—Formats for payload data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0002—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0071—Use of interleaving
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0078—Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
- H04L1/0083—Formatting with frames or packets; Protocol or part of protocol for error control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/22—Traffic shaping
- H04L47/225—Determination of shaping rate, e.g. using a moving window
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/27—Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/29—Flow control; Congestion control using a combination of thresholds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/6245—Modifications to standard FIFO or LIFO
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/324—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
Definitions
- the present disclosure is generally directed toward communication systems and methods and, more specifically, toward Physical Coding Sub-Layer (PCS) protocols.
- PCS Physical Coding Sub-Layer
- IPGs Interpacket Gaps
- MAC transmit-side Media Access Control
- the IEEE Ethernet requires a minimum IPG of 12 bytes to be sent by the transmit MAC.
- the 12 bytes of IPG may be reduced down to a minimum, at the point where the traffic is sent along to the Media Dependent Interface (MDI).
- MDI Media Dependent Interface
- the minimum IPG at the transmit MDI should be approximately 11 bytes.
- the minimum IPG at the transmit MDI should be approximately 9 bytes.
- FIG. 1 is a block diagram depicting a data transmission system in accordance with at least some embodiments of the present disclosure
- FIG. 2 is a block diagram depicting additional details of a data transmission system in accordance with at least some embodiments of the present disclosure
- FIG. 3 is a block diagram depicting additional details of a data transmission system in accordance with at least some embodiments of the present disclosure
- FIG. 4 is a block diagram depicting additional details of a data transmission system in accordance with at least some embodiments of the present disclosure
- FIG. 5 is a block diagram depicting details of a port ASIC in accordance with at least some embodiments of the present disclosure
- FIG. 6 is a block diagram depicting a transmit side of a system interface in accordance with at least some embodiments of the present disclosure
- FIGS. 7A-7C are block diagrams depicting a receive side of a system interface in accordance with at least some embodiments of the present disclosure.
- FIG. 8 is a flow diagram depicting a method of performing IPG repair in accordance with at least some embodiments of the present disclosure.
- the components of the system can be arranged at any location within a distributed network of components without impacting the operation of the system.
- the various links connecting the elements can be wired, traces, or wireless links, or any combination thereof, or any other known or later developed element(s) that is capable of supplying and/or communicating data to and from the connected elements.
- Transmission media used as links can be any suitable carrier for electrical signals, including coaxial cables, copper wire and fiber optics, electrical traces on a PCB, or the like.
- each of the expressions “at least one of A, B and C,” “at least one of A, B, or C,” “one or more of A, B, and C,” “one or more of A, B, or C,” “A, B, and/or C,” and “A, B, or C” means A alone, B alone, C alone, A and B together, A and C together, B and C together, or A, B and C together.
- automated refers to any process or operation done without material human input when the process or operation is performed. However, a process or operation can be automatic, even though performance of the process or operation uses material or immaterial human input, if the input is received before performance of the process or operation. Human input is deemed to be material if such input influences how the process or operation will be performed. Human input that consents to the performance of the process or operation is not deemed to be “material.”
- FIGS. 1-8 various systems and methods for enabling data transmission and protocol compliance will be described. While particular embodiments will be described in connection with facilitating communications using a particular communication protocol (e.g., Ethernet), it should be appreciated that embodiments of the present disclosure are not so limited. For example, the methods and systems described herein may be utilized in connection with any type of communication protocol that defines a minimum IPG or similar packet type.
- a particular communication protocol e.g., Ethernet
- the methods and systems described herein may be utilized in connection with any type of communication protocol that defines a minimum IPG or similar packet type.
- the problem of IPG reduction is often introduced because certain protocols require that Alignment Markers (AMs) are to be periodically inserted into the traffic at fixed spaces or intervals.
- AMs Alignment Markers
- the AMs help to maintain a synchronization between the transmit side and receive side of the system.
- the PCS sometimes requires that an IPG be removed/deleted in proportion to the amount of AMs that are inserted. This IPG removal/deletion can cause a catastrophic event if care is not taken to repair the IPG back to the minimum threshold amount.
- One aspect of the present disclosure is to provide an IPG repair function or circuit on the receive side of a data transmission system.
- the IPG repair function operates on the incoming traffic and ensures that the IPG intervals that violate a defined minimum threshold amount are (i) detected and then (ii) repaired by adding/inserting the amount of IPG that increases the IPG to at least the minimum threshold amount.
- the IPG repair function inserts precisely the amount of IPG needed to increase the IPG back to the minimum threshold amount.
- the IPG repair function detects, for every interval in the traffic, whether the IPG is less than a defined minimum threshold amount. Upon detecting an IPG interval that is less than the defined minimum threshold amount (e.g., less than 9 bytes), the IPG repair function adds or inserts at least one IDLE column (e.g., four idle characters) directly after the detected IPG interval. This insertion of at least one IDLE column repairs the IPG interval to greater than or equal to the defined minimum threshold (e.g., back to at least 9 bytes).
- the defined minimum threshold amount e.g., less than 9 bytes
- One aspect of the present disclosure enables the IPG repair function to perform the repair using a minimal, in-band FIFO buffer.
- Use of an in-band buffer enables the IPG repair function to repair the IPG interval violation immediately upon detecting the violated IPG interval.
- Some advantages that can be realized by using the in-band FIFO buffer include a minimized latency and a reduced FIFO size.
- the FIFO pointer separation distances may be resolved by employing an IPG window function that evaluates the read/write pointers to determine (and to what extent) additional IDLE columns are needed to be added.
- the IPG repair function may utilize a programmable IPG minimum threshold limit to allow the flexibility to support various different types of PCS protocols (whether standard or proprietary).
- the data transmission system 100 is shown to include two communication devices 108 , each of which are connected with a communication network 104 .
- the communication devices 108 may be considered to be communicatively coupled with one another via the communication network 104 .
- the communication devices 108 may be provided as any type of machine or collection of components, some non-limiting examples of a communication device 108 include a mobile phone, a smart phone, a Personal Computer (PC), a laptop, a telephone, a tablet, a server, a switch, or data storage device, etc.
- one or both communication devices 108 may be user devices (e.g., devices that are carried and utilized by a user) having a user interface.
- one or both communication devices 108 may be servers, switches, or other types of machines that are devoid of a robust user interface. Said another way, the communication devices 108 may correspond to any type of machine capable of communicating with another machine via the communication network 104 .
- the communication network 104 may correspond to any type of communication bus, collection of communication devices, combinations thereof, or the like.
- the communication network 104 may correspond to a packet-based communication network.
- the communication network 104 may correspond to an IP-based communication network and may use communication protocols such as the Ethernet protocol. It should be appreciated that the communication network 104 does not necessarily need to be limited to an Ethernet-based communication network, but rather any interconnected collection of computing devices using any type of communication protocol or combination of communication protocols may qualify as the communication network 104 .
- the communication network 104 may utilize wired and/or wireless communication protocols.
- the data transmission system 200 may be provided as part of a communication device 108 , as part of a component of a communication device 108 , or as part of a component within the communication network 104 .
- the system 200 may be provided as part of a networking adaptor within a communication device 108 (e.g., a component of the communication device 108 that enables communications via the network 104 ).
- the system 200 may be provided on a network card or board within a host device.
- the system 200 is configured to facilitate the transfer of data from one communication device 108 to another communication device 108 .
- the system 200 is shown to include a transmitter MAC (TX MAC) 204 , a transmitter PCS (TX PCS) 208 , a receiver PCS (RX PCS) 212 , and a transmitter PHY (TX PHY) 216 .
- the TX MAC 204 is shown to include an RS layer.
- a first data path 220 is shown to connect the TX MAC 204 with the TX PCS 208 .
- the first data path 220 may carry data traffic of a first type.
- the first data path 220 may carry XGMII traffic from the TX MAC 204 to the TX PCS 208 .
- the XGMII traffic flowing on the first data path 220 may have any number of IPG intervals of various sizes ranging from a first threshold value to a second threshold value.
- the XGMII traffic if compliant with IEEE 802.3 standards (e.g., transmit MAC provides a minimum of 12 bytes of IPG) may carry anywhere between 9 bytes and 15 bytes of IPG per IPG interval, as a result of the Deficit Idle Counter (DIC).
- IEEE 802.3 standards e.g., transmit MAC provides a minimum of 12 bytes of IPG
- DIC Deficit Idle Counter
- the TX PCS 208 may process the data traffic received from the TX MAC 204 and perform an AM insertion process on the received data traffic. As part of performing this AM insertion process, the TX PCS 208 may remove one or more IPG columns from an IPG interval. The TX PCS 208 may be required to insert the AM intervals to facilitate port delineation at the receive-side of the communication network 104 . Unfortunately, this process of inserting AMs into the traffic may result in the removal of one or more IPG columns from the traffic. As a non-limiting example, the TX PCS 208 may remove one or more IPG columns from the traffic, which ultimately causes the data stream to violate a minimum threshold amount of IPG for an IPG interval.
- the minimum threshold amount of IPG for any IPG interval may be 9 or more bytes. If an IPG interval in the data traffic received at the first data path 220 only has 9 bytes of IPG to begin with, the TX PCS 208 could conceivably remove four bytes of IPG (e.g., an entire IPG column) leaving the data stream with only 5 bytes of IPG. This may correspond to a violation of a minimum threshold amount of IPG bytes allowed for an IPG interval. Thus, the system interface 224 between the TX PCS 208 and RX PCS 212 may carry data traffic in violation of the minimum threshold amount of IPG per IPG interval. Embodiments of the present disclosure provide an IPG repair function at the receive side of the transmission system to correct this violation.
- an IPG repair function may be provided to correct data traffic between the RX PCS 212 and the TX PHY 216 and/or before the data traffic is put onto the MDI 232 .
- the IPG repair function provided in accordance with at least some embodiments of the present disclosure enables the RX PCS 212 to insert/add one or more IPG columns to accommodate for the previous IPG column removal that was made in connection with AM insertion. Without an IPG repair function, following AM removal, the size of any given IPG interval may possibly fall below the predefined minimum threshold size.
- the system 300 may be similar to system 100 and/or 200 .
- the view of system 300 specifically shows a first port ASIC 304 and second port ASIC 316 in communication with one another via their respective PHYs 308 , 312 and a network interface 328 .
- the network interface 328 may be similar or identical to the MDI 232 shown in FIG. 2 .
- the PHYs 308 , 312 may be similar or identical to the TX PHY 216 shown in FIG. 2 .
- the ASICs 304 , 316 may correspond to MACs, such as MAC 204 , without departing from the scope of the present disclosure.
- FIG. 3 helps to illustrate the various clock domains of a data transmission system 300 and depict further details of the network interface 328 .
- a first system interface 320 is shown between the port ASIC 304 and TX PHY 308 .
- the first system interface 320 may correspond to a USXGMII-M system interface.
- the network interface 328 may correspond to an example of an MDI.
- the network interface 328 may correspond to a copper MDI, although any type of MDI or media interface can be used without departing from the scope of the present disclosure.
- the network interface 328 is shown to include a plurality of signal lines 324 a -N.
- the number N of lines 324 may vary depending upon the communication protocol used within the system 300 .
- Each line 324 may be configured to carry a different signal from a transmission side of the system 300 (e.g., the PHY 308 ) to the receiving side of the system 300 (e.g., the PHY 312 ).
- the PHY 312 is shown to be connected to the port ASIC 316 by another system interface 320 .
- the system interface 320 on the receive side of the system 300 may be similar or identical to the system interface 320 on the transmit side of the system 300 , although such a configuration is not required.
- the transmit side is shown to operate using a first clock domain 332 , which is separate from the second clock domain 336 in which the receive side operates.
- the clock domains 332 , 336 are separated by the network interface clock domain 340 .
- each clock domain may be nearly synchronized with one another, but may be driven by different processors or timing crystals, which may have slightly different timing characteristics from processors or timing crystals in the other clock domains.
- a clock-data recovery (CDR) circuit may be provided on the receiver side of the transmission system.
- AMs may be used to facilitate port delineation for the receiver.
- AMs e.g., AM0, AM1, AM2, AM3
- AM0, AM1, AM2, AM3 may be inserted contiguously as a group at a fixed spacing interval.
- the very first 66-bit encoded/scrambled block following AM3 is assigned to Port0, followed sequentially in ascending order with the remaining blocks of the other ports; then the order is repeated.
- a transmit side set of components 404 and a receive side set of components 408 may each comprise a number of components that facilitate the transmit-processing and receive-processing of data streams in accordance with at least some embodiments of the present disclosure.
- the sets of components 404 , 408 may be provided as part of a PHY 216 , 308 , 312 , as part of an ASIC 304 , 316 , and/or as part of a MAC 204 without departing from the scope of the present disclosure.
- the transmit side set of components 404 is shown to include a number of transmit port MACs 412 . Pairs of transmit port MACs 412 may be connected with a rate adaption circuit 416 , which is configured to remove replication of data packets and perform other known rate-adaptation processes. For instance, data may be replicated to put one port to a slower rate (so that all rates of all ports match for the port MUX and framing circuit 424 ).
- a first of the transmit port MACs 412 may communicate with the rate adaptation circuit 416 using a first protocol (e.g., XGMII) whereas the second of the transmit port MACs 412 may communicate with the rate adaptation circuit 416 using a second protocol (e.g., GMII (10M/100M/1G)).
- the rate adaptation circuit 416 enables a single port 420 to share information with a transmit port MAC 412 using one of several different types of protocols and helps to match the transmit rates of the various ports.
- the transmit side set of components 404 is also shown to include a plurality of port PCSs 420 (e.g., one port PCS for each of the ports 0 thru N ⁇ 1 ).
- the plurality of port PCSs 420 are connected to a common port multiplexer (MUX) and framing circuit 424 .
- the port MUX and framing circuit 424 may be configured to distribute different data packets among the different transmit port PCSs 420 .
- the port MUX and framing circuit 424 may be configured to receive a data stream from a Serializer/Deserializer (SERDES) circuit 428 , which is connected to a receive input 432 .
- SERDES Serializer/Deserializer
- any data stream received at the input 432 may first be processed by the SERDES 428 , then provided to the port MUX and framing circuit 424 . Thereafter, the port MUX and framing circuit 424 distributes the data traffic among the various port PCSs 420 .
- the receive side set of components 408 may be configured to communicate with the transmit side set of components 404 via an auto-negotiate circuit or set of circuits 440 .
- the auto-negotiate circuit or set of circuits 440 may be configured to facilitate synchronization between the rate adaption circuits 416 on the transmit side 404 and rate adaptation circuits 416 on the receive side 408 .
- the various components on the receive side 408 may be similar to those on the transmit side 404 ; however, the connection of components may be reversed with respect to the transmit side 404 .
- the receive port MACs 412 may be provide a data stream to the ports PC Ss 420 via the rate adaptation circuits 416 .
- each rate adaptation circuit 416 may have a pair of receive port MACs 412 connected thereto.
- a first receive port MAC 412 may communicate with the rate adaptation circuit 416 using XGMII whereas the second receive port MAC 412 may communicate with the rate adaptation circuit 416 using GMII (e.g., 10M/100M/1G).
- GMII e.g. 10M/100M/1G
- the port MACs 412 connected to a particular rate adaptation circuit 416 may utilize different protocols for communicating with the rate adaptation circuit 416 without departing from the scope of the present disclosure.
- the various port PCSs 420 may be connected to a common port MUX and framing circuit 424 that combines the various inputs onto the SERDES 428 for the output line 436 .
- the port ASIC 504 may correspond to a transmission port ASIC 504 and may be similar or identical to a port ASIC 304 , 316 and/or a TX MAC 204 without departing from the scope of the present disclosure.
- the transmission port ASIC 504 may include a number of components that facilitate the transmission of data streams in accordance with at least some embodiments of the present disclosure.
- the transmission port ASIC 504 may include a plurality of ports 508 a -N along with a plurality of additional circuits configured to process information from the various ports 508 a -N.
- Each of the ports 508 a -N may be provided with a first transmission (Tx) MAC 512 a and a second Tx MAC 512 b .
- the first Tx MAC 512 a may be directly connected with a replication circuit 520 whereas the second Tx MAC 512 b may be connected with the replication circuit 520 via a mapping circuit 516 .
- the mapping circuit 516 may be configured to map inputs from the second Tx MAC 512 b into a format consistent with the first Tx MAC 512 a .
- the first Tx MAC 512 a may utilize XGMII protocols to communicate with the replication circuit 520 whereas the second Tx MAC 512 b may utilize 10M/100M/1G communication protocols or some other communication protocol different from the first Tx MAC 512 a.
- the mapping circuit 516 enables the mapping of the second protocol to the first protocol. More specifically, the mapping circuit 516 may be configured to perform a protocol mapping that enables the replication circuit 520 to receive data streams from both Tx MACs 512 a , 512 b in a common format (e.g., either the first protocol format or the second protocol format). As a more specific example, the mapping circuit 516 may be configured to perform reference clock conversions, frequency conversions, packet insertion, packet removal, or combinations thereof to map the first protocol to the second protocol within each port 508 a -N.
- a protocol mapping that enables the replication circuit 520 to receive data streams from both Tx MACs 512 a , 512 b in a common format (e.g., either the first protocol format or the second protocol format).
- the mapping circuit 516 may be configured to perform reference clock conversions, frequency conversions, packet insertion, packet removal, or combinations thereof to map the first protocol to the second protocol within each port 508 a -N.
- the replication circuit 520 may be configured to perform data replication on the data streams received from one or both Tx MACs 512 a , 512 b to ensure that data rates of any particular port match the data rates of other ports 508 .
- the replication circuit 520 may reproduce data packets, blocks, bits, or other representations of data from the Tx MACs 512 a , 512 b a predetermined number of times to slow down the data transmission rate as appropriate.
- the replication circuit 520 may reproduce the data anywhere from 10 to 1000 times, depending upon the communication protocol(s) employed.
- the replication circuit 520 provides its output to the PCS layer 524 at each port 508 a -N.
- the PCS layer 524 may encode the data within each port 508 a -N and then send data to the block interleave circuit 528 in batches of a predetermined size (e.g., 64 bits to 66 bits), depending upon the protocol used.
- Each PCS layer 524 of each port 508 a -N provides its output to the block interleave circuit 528 .
- the block interleave circuit 528 interleaves the data received from each of the ports 508 a -N in a round-robin fashion, starting with the first port 508 a , then the second port 508 b , until it reaches the last port 508 N.
- the block interleave circuit 528 After data has been interleaved from the last port 508 N, the block interleave circuit 528 returns back to the first port 508 a to receive the next batch of data therefrom.
- the block interleave circuit 528 enables data from multiple ports (e.g., 2, 4, 6, 8, . . . , etc.) to be transmitted via a single line/wire.
- Such an architecture helps to minimize the size of an IC chip used to enable such data transmission and/or reduce overall hardware costs associated with producing such an IC chip.
- Data from each of the ports 508 a -N is interleaved by the block interleave circuit 528 and then provided to a scrambler circuit 532 , which perform a scrambling operation on all of the received data.
- the scrambler circuit 532 is used to scramble the data and make all of the data from each of the ports 508 a -N appear as if it is originating from a single MAC.
- the scrambled data is provided to an AM insertion circuit 536 .
- the AM insertion process is performed to enable port delineation at the receiving side of the data transmission system.
- the AM insertion circuit 536 manipulates the data stream received from the scrambler circuit 532 by inserting one or more AM intervals.
- AM insertion may occur once every predetermined number of blocks. For instance, AM insertion may occur once every 16400 blocks.
- the AM insertion circuit 536 will insert four (4) AMs, with a spacing of 16400 blocks between each AM.
- the process of inserting one or more AMs into the data stream may result in a removal of one or more IPG columns from an IPG interval.
- the output of the AM insertion circuit 536 is provided to a gearbox circuit 540 , which is configured to appropriately convert the data for eventual transmission over the transmission line 552 in accordance with the data rates defined for the transmission line 552 .
- the gearbox 540 may convert a data stream or collection of data streams having a particular clock frequency and parallel interface of a particular bit-width into a different number of data streams having a different clock frequency and a different bit-width.
- the transmission frequency used for the transmission line 552 (e.g., the MDI 232 ) may vary depending upon the protocol used.
- the output of the gearbox 540 is provided to a transmission buffer 544 , which appropriately buffers the received data until the data is ready for processing by the SERDES 548 .
- the transmission buffer 544 may correspond to any type of known data buffer and may utilize any type of buffer memory.
- the transmission buffer 544 corresponds to a FIFO buffer and operates on a first-in-first-out basis. Of course other types of buffers may be used and any type of buffer memory device can be used for the transmission buffer 544 .
- the SERDES 548 is configured to perform final data serialization processes on the data stream received from the transmission buffer 544 .
- the SERDES 548 may include one or more circuits such as shift register circuits, equalization circuits, amplifier circuits, digital-to-analog converter circuits, analog-to-digital converter circuits, filter circuits, and/or data latches.
- the output of the SERDES 548 is provided to the transmission line 552 for transmission across a communication network 104 .
- the port ASIC 604 may correspond to a receive port ASIC 604 and may be similar or identical to a port ASIC 304 , 316 .
- the receive port ASIC 604 may include a number of components that facilitate receiving and processing of data streams in accordance with at least some embodiments of the present disclosure.
- the receive port ASIC 604 may include a plurality of ports 608 a -N along with a plurality of additional circuits configured to process information for the various ports 608 a -N.
- Each of the ports 608 a -N may be provided with a first receiver (Rx) MAC 612 a and a second Rx MAC 612 b .
- the first Rx MAC 612 a may be directly connected with a de-replication circuit 620 whereas the second Rx MAC 612 b may be connected with the de-replication circuit 620 via a mapping circuit 616 .
- Each port 608 a -N is also shown to include an IPG repair circuit 622 .
- the IPG repair circuit 622 may be configured to perform an IPG repair function to help correct any violations of IPG interval size introduced to the data stream by the AM insertion process.
- the IPG repair circuit 622 is configured to insert one or more IPG columns upon detecting that an IPG interval has violated a minimum threshold amount of IPG columns (e.g., the removal of IPG to accommodate the AM insertion process resulted in a removal of too many IPG columns in violation of the protocol requirements).
- the IPG repair circuit 622 inserts an appropriate number of IPG columns to bring the data stream back into compliance with the communication protocol being employed prior to providing the data stream to the MACs 612 a , 612 b . Additional details of the functionality of the IPG repair circuit 622 will be described in connection with FIGS. 7A-7C and 8 .
- FIG. 6 depicts the IPG repair circuit 622 as being positioned between the PCS layer 624 and de-replication circuit 620 , it should be appreciated that the IPG repair circuit 622 can alternatively be positioned above/behind the de-replication circuit 620 . In other words, the IPG repair circuit 622 may be positioned between the de-replication circuit 620 and the mapping circuit 616 /Rx MACs 612 a , 612 b.
- Certain components of the ports 608 a -N may be similar to similarly-named components of the ports 508 a -N, except that the components of ports 608 a -N are connected in reverse to perform a reverse processing of the ports 508 a -N.
- the mapping circuit 616 maps the communication protocol back to the second protocol whereas the mapping circuit 516 was used to map the communication protocol from the second protocol to the first protocol (consistent with the protocol used by the other MAC).
- the first Rx MAC 612 a may utilize XGMII protocols to communicate with the de-replication circuit 620 whereas the second Rx MAC 612 b may utilize 10M/100M/1G communication protocols or some other communication protocol different from the first Rx MAC 612 a .
- the mapping circuit 616 may map the protocol back to 10M/100M/1G from the XGMII protocol.
- the de-replication circuit 620 may undo the replication of data provided by the replication circuit 520 .
- the PCS layer 624 may decode the encoding that was performed by the PCS layer 524 .
- the ports on the receive side include an IPG repair circuit 622 to help correct any situation where an IPG interval has too few IPG columns (e.g., violates a minimum IPG size threshold).
- functionality of the IPG repair circuit 622 may be incorporated into the PCS 624 and/or data de-replication circuit 620 .
- some combination of the de-replication circuit 620 , the IPG repair circuit 622 , and the PCS 624 may be configured to receive and temporarily store data from the block de-interleave circuit 628 .
- the counter may be utilized to begin counting down and enabling the IPG repair circuit 622 to search for IPG size violations. If a violation of the minimum IPG interval size is detected, then the IPG repair circuit 622 may correct the IPG interval by adding one or more IPG columns back to the IPG interval.
- the IPG repair circuit may ensure that the write/read pointer relationship (i.e. pointer separation) of the FIFO, within, maintains a healthy separation to prevent data corruption. This is achieved by employing an IPG repair window counter that serves to demarcate between the IPG repair of violated IPG intervals and that of the FIFO write/read pointer relationship.
- the IPG window counter is configured to a predefined initial value and decrements by one upon receiving a block of decoded traffic (e.g. XGMII word). While the IPG repair window counter is non-zero, the IPG repair circuits is continuously detecting and correcting any IPG intervals in violation of the minimum IPG threshold.
- the IPG repair circuit advances to the write/read pointer repair mode. While in this mode, it will add as many IDLE columns as necessary to adjust the write/read pointer relationship to a predefined pointer separation value. Once this is achieved, then the IPG repair counter is configured back to the predefined initial value, thereby, causing the IPG repair circuit to repeat the actual repair mode; i.e. continuously detecting and correcting any IPG intervals in violation of the minimum IPG threshold.
- NOTE The removal of the AMs causes a write/read FIFO clock frequency difference, which causes the FIFO's pointers to drift apart from their initial reset separation value.
- IPG repair circuit performs enough IPG repair corrections on N-number of violated IPG intervals, such that the write/read FIFO pointer relationship are in an ideal state; 2) the traffic is such that there are no IPG intervals violating the minimum threshold amount (i.e.
- IPG repair circuit performs enough IPG repair corrections on N-number of violated IPG intervals, however, the write/read pointer repair mode is still required to fix the remaining pointer relationship delta.
- the receive port ASIC 604 is shown to include a SERDES 652 , a gearbox 648 , a receive buffer 644 , a synchronization circuit 640 , a drop AM circuit 636 , a descrambler circuit 632 , and the block de-interleave circuit 628 .
- the data received at the receive line 656 is deserialized (e.g., parallelized) by the SERDES 652 and then provided to the gearbox 648 , which adjusts the so-called “gear ratio” of the data from the receive line 656 to an appropriate speed and number of channels for processing by the other components of the ASIC 604 .
- the gearbox 648 may convert the data back from a 32 bit data stream to a 66 bit data stream (whereas the gearbox 544 converted the data from a 66 bit data stream to a 32 bit data stream).
- the output of the gearbox 648 is provided to the receive buffer 644 , which may be in the form of a FIFO buffer 644 .
- the receive buffer 644 is an asynchronous FIFO buffer that serves as the clock boundary between the network and the receive port ASIC 604 , which is configured to operate using the PCS 624 clock domain rather than the network clock domain.
- the FIFO circuit 644 utilizes the non-scrambled sync header of the encoded/scrambled payload of the received block in order to align to the block boundary.
- the block could be made up of a non-scrambled 2-bit sync header and a scrambled 64-bit payload, resulting is a 66-bit block.
- the periodically inserted AMs are in 66-bit format, but the entire 66-bits of each of the four AMs are not scrambled.
- the synchronization circuit 640 searches for and detects the fixed and periodically inserted AMs and locks to them.
- an AM may include a 2 bit synchronization header having a predetermined format (e.g., a “01” or “10”) that helps to ensure the boundaries of encoded data are properly maintained and to facilitate port delineation.
- the AMs inserted at the transmit side are not encoded at the transmit side and, therefore, provide a quick and effective mechanism for identifying boundaries of data received from different transmit ports 508 a -N (for eventual assignment to corresponding receive ports 608 a -N).
- the drop AM circuit 636 removes those AMs previously inserted by the AM insertion circuit 536 , thereby leaving only the encoded data for further processing.
- the data stream is then de-scrambled by the de-scrambler circuit 632 .
- the de-scrambler circuit 632 applies a reverse algorithm to the scrambling algorithm applied by the scrambler circuit 532 .
- the de-scrambled data is then de-interleaved by the block de-interleaver circuit 628 .
- the block de-interleaver circuit 628 distributes the data from a single stream onto the plurality of ports 608 a -N.
- the data distribution among the ports 608 a -N may occur in a round-robin fashion (following the interleaving process performed at the transmit side) without departing from the scope of the present disclosure.
- Each port 608 a -N receives data from the block de-interleaver circuit 628 and utilizes the PCS layer 624 to decode the data prior to placing the decoded data onto the IPG repair circuit 622 and then the de-replication circuit 620 .
- the data will be provided to the different Rx MACs 612 a , 612 b depending upon which protocol is currently being used at each port 608 a -N.
- each port 608 a -N can support multiple protocols without departing from the scope of the present disclosure.
- the data provided to the appropriate Rx MAC 612 a , 612 b may be similar or identical to the data provided by the corresponding Tx MAC 512 a , 512 b of a corresponding port 508 a -N.
- FIGS. 7A-C and 8 additional details of the operation of the IPG repair circuit 622 will be described in accordance with at least some embodiments of the present disclosure.
- a method 800 of performing an IPG repair function will be described with reference to an illustrative data stream 700 having a plurality of blocks.
- the method 800 begins with the IPG repair circuit 622 performing an analysis of incoming blocks on the data stream 700 (step 804 ).
- the IPG repair circuit 622 determines if an IPG repair window counter has decremented from a predetermined value down to zero (step 808 ). If the IPG repair window counter has lapsed (e.g., the query of step 808 is answered affirmatively), then the IPG repair circuit 622 determines if an IPG interval is detected in a block 712 of the data stream 700 (step 812 ). If not, the method 800 returns to step 804 . If so, the method continues with the IPG repair circuit 622 inserting one or more IDLE column(s) to fix a write/read FIFO pointer separation (step 816 ). The IPG repair circuit 622 then sets an IPG repair window counter back to the initial predefined value (step 820 ).
- the method 800 continues with the IPG repair circuit 622 decrementing the IPG repair window counter by a predetermined value (e.g., one) (step 824 ). Thereafter, the method 800 continues with the IPG repair circuit 622 determining if an IPG interval has been detected (step 828 ). Alternatively or additionally (in step 828 and/or step 812 ), the IPG repair circuit 622 may search for other types of data blocks 712 or columns 716 within the data stream 700 in connection with searching for an IPG interval violation. If no IPG interval or other type of predetermined data block 712 or column 716 is detected, then the method returns to step 804 .
- a predetermined value e.g., one
- each data block 712 may also be represented as a data column 716 .
- a data column 716 may include a plurality of rows 720 a , 720 b , 720 c , 720 c .
- Each different type of data column 716 may have different rows of data.
- XGMII traffic may include four octets per data block 712 .
- four octets may constitute an XGMII interface, which may alternatively be referred to as an XGMII column 716 .
- a starter block “S” includes a starter character “/S/” in the first row 720 a followed by three rows of data “/d/” characters.
- the starter block “Sa” depicts an output of the replication 520 of the starter block “S,” and includes an identifier “aa” in the first row 720 a followed by three rows of data “/d/” characters.
- a data column block “D” includes four rows of data “/d/” characters.
- An idle block “I” includes four idle “/I/” characters.
- a terminate block “T” may be provided in four different variants.
- a terminate block “T” is provided to represent an end of a set of data blocks belonging to a common data set (e.g., a data packet).
- the first terminate column T0 can be used.
- the first terminate column T0 provides no additional data for the data packet represented in the previous data blocks.
- the first terminate column T0 includes a terminate “/T/” character in the first row 720 a followed by three idle “/I/” characters.
- the first terminate column T0 inherently provides three idle “/I/” characters before the preceding idle block will provide an additional four idle “/I/” characters.
- the second terminate column T1 accommodates one additional data character in the first row 720 a and then includes the terminate “/T/” character in the second row 720 b followed by two idle “/I/” Characters.
- the Third Terminate Column T2 accommodates two additional data characters in the first and second rows 720 a , 720 b and then includes the terminate “/T/” character in the third row 720 c followed by one idle “/I/” character.
- the fourth terminate column T3 accommodates three additional data characters in the first three rows 720 a , 720 b , 720 c followed by a terminate “/T/” character in the fourth row 720 d .
- most communication protocols may require that at least two idle blocks follow a terminate block. In other words, an idle block represents an IPG size of 4 bytes (due to the four idle “/I/” characters provided therein).
- each terminate block “T” should be followed by at least two idle blocks (e.g., two IPG columns, which inherently provide eight bytes of idle “/I/” characters). It should be appreciated that an IPG interval may be larger than the minimum (e.g., if no traffic exists for some time between successive packets), but the minimum IPG interval size is used to define a minimum number of IPG columns (or minimum size of IPG as measured in bytes) is not less than a predetermined minimum value.
- the IPG repair circuit 622 if the IPG repair circuit 622 detects an IPG interval 704 at step 828 (or idle block “I” or terminate block “T”), the IPG repair circuit 622 will continue by determining if an IPG violation has been detected within the IPG interval 704 (step 832 ). In particular, if the IPG repair circuit 622 detects that less than a predetermined minimum number of idle characters (or IPG columns) are not present in consecutive blocks or a terminate block “T” is not followed by at least two idle blocks “I” to support the predetermined IPG size, then the IPR repair circuit 622 will begin the process of repairing the data stream 700 to bring the stream 700 back into conformity with the IPG interval requirements (step 836 ).
- one or more idle blocks/columns 708 may be inserted into the data stream 700 to repair the IPG interval 704 that was detected as violating the IPG interval requirements of the communication protocol.
- the terminate block “T” represents the start of the IPG interval.
- the IPG repair function 622 is provided with the ability to insert or add back one or more idle blocks “I” to place the data stream 700 back into compliance with the IPG interval requirements.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
Description
Claims (20)
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/012,980 US11082539B2 (en) | 2018-06-20 | 2018-06-20 | System and method for performing interpacket gap repair for lossy protocols |
DE102019003979.3A DE102019003979B4 (en) | 2018-06-20 | 2019-06-05 | SYSTEM AND METHOD FOR PERFORMING INTERPACKET GAP REPAIR FOR LOSSIVE LOGS |
CN201910524759.2A CN110620809B (en) | 2018-06-20 | 2019-06-18 | System and method for performing inter-packet gap repair for lossy protocols |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/012,980 US11082539B2 (en) | 2018-06-20 | 2018-06-20 | System and method for performing interpacket gap repair for lossy protocols |
Publications (2)
Publication Number | Publication Date |
---|---|
US20190394309A1 US20190394309A1 (en) | 2019-12-26 |
US11082539B2 true US11082539B2 (en) | 2021-08-03 |
Family
ID=68805959
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/012,980 Active 2039-05-06 US11082539B2 (en) | 2018-06-20 | 2018-06-20 | System and method for performing interpacket gap repair for lossy protocols |
Country Status (3)
Country | Link |
---|---|
US (1) | US11082539B2 (en) |
CN (1) | CN110620809B (en) |
DE (1) | DE102019003979B4 (en) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11128742B2 (en) | 2019-03-08 | 2021-09-21 | Microsemi Storage Solutions, Inc. | Method for adapting a constant bit rate client signal into the path layer of a telecom signal |
US11916662B2 (en) | 2021-06-30 | 2024-02-27 | Microchip Technology Inc. | System and method for performing rate adaptation of constant bit rate (CBR) client data with a fixed number of idle blocks for transmission over a metro transport network (MTN) |
US11838111B2 (en) | 2021-06-30 | 2023-12-05 | Microchip Technology Inc. | System and method for performing rate adaptation of constant bit rate (CBR) client data with a variable number of idle blocks for transmission over a metro transport network (MTN) |
US12323334B2 (en) | 2021-06-30 | 2025-06-03 | Microchip Technology Inc. | System and method for performing rate adaptation and multiplexing of constant bit rate (CBR) client data for transmission over a metro transport network (MTN) |
US11736065B2 (en) | 2021-10-07 | 2023-08-22 | Microchip Technology Inc. | Method and apparatus for conveying clock-related information from a timing device |
US12192079B2 (en) | 2021-11-23 | 2025-01-07 | Microchip Technology Inc. | Method and apparatus for carrying constant bit rate (CBR) client signals using CBR carrier streams comprising frames |
US11799626B2 (en) | 2021-11-23 | 2023-10-24 | Microchip Technology Inc. | Method and apparatus for carrying constant bit rate (CBR) client signals |
US20250192976A1 (en) * | 2023-12-08 | 2025-06-12 | Cortina Access, Inc. | Communication device and interpacket gap adjustment method thereof |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4849970A (en) | 1988-05-19 | 1989-07-18 | Advanced Micro Devices, Inc. | Smoothing apparatus for an independently clocked network |
US4878219A (en) | 1988-04-28 | 1989-10-31 | Digital Equipment Corporation | Method and apparatus for nodes in network to avoid shrinkage of an interframe gap |
US6226290B1 (en) * | 1998-04-28 | 2001-05-01 | Nortel Networks Limited | Method and apparatus for adjusting an interpacket gap using a network device in a data communications network |
US6768841B2 (en) * | 2001-03-16 | 2004-07-27 | Metrophotonics Inc. | Integrated optical interleaver/de-interleaver |
US20150016466A1 (en) * | 2013-07-11 | 2015-01-15 | Mediatek Inc. | Network device and method for outputting data to bus with data bus width at each cycle by generating end of packet and start of packet at different cycles |
US20160085479A1 (en) * | 2014-09-22 | 2016-03-24 | Freescale Semiconductor, Inc. | Interface system and method |
US9544237B1 (en) * | 2013-10-23 | 2017-01-10 | Marvell International Ltd. | Method and apparatus for inserting idle bytes in a data stream |
US10038450B1 (en) * | 2015-12-10 | 2018-07-31 | Xilinx, Inc. | Circuits for and methods of transmitting data in an integrated circuit |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7089485B2 (en) * | 2000-02-03 | 2006-08-08 | Agere Systems Inc. | Simple link protocol providing low overhead coding for LAN serial and WDM solutions |
US8649398B2 (en) * | 2011-03-14 | 2014-02-11 | Xilinx, Inc. | Packet network interface apparatus and method |
CN107925557B (en) * | 2015-06-30 | 2020-11-06 | Macom 连接解决有限公司 | Identification codeword for rate-adapted version of data stream |
CN107786299B (en) * | 2016-08-25 | 2021-06-08 | 华为技术有限公司 | A method, device and network system for sending and receiving services |
-
2018
- 2018-06-20 US US16/012,980 patent/US11082539B2/en active Active
-
2019
- 2019-06-05 DE DE102019003979.3A patent/DE102019003979B4/en active Active
- 2019-06-18 CN CN201910524759.2A patent/CN110620809B/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4878219A (en) | 1988-04-28 | 1989-10-31 | Digital Equipment Corporation | Method and apparatus for nodes in network to avoid shrinkage of an interframe gap |
US4849970A (en) | 1988-05-19 | 1989-07-18 | Advanced Micro Devices, Inc. | Smoothing apparatus for an independently clocked network |
US6226290B1 (en) * | 1998-04-28 | 2001-05-01 | Nortel Networks Limited | Method and apparatus for adjusting an interpacket gap using a network device in a data communications network |
US6768841B2 (en) * | 2001-03-16 | 2004-07-27 | Metrophotonics Inc. | Integrated optical interleaver/de-interleaver |
US20150016466A1 (en) * | 2013-07-11 | 2015-01-15 | Mediatek Inc. | Network device and method for outputting data to bus with data bus width at each cycle by generating end of packet and start of packet at different cycles |
US9544237B1 (en) * | 2013-10-23 | 2017-01-10 | Marvell International Ltd. | Method and apparatus for inserting idle bytes in a data stream |
US20160085479A1 (en) * | 2014-09-22 | 2016-03-24 | Freescale Semiconductor, Inc. | Interface system and method |
US10038450B1 (en) * | 2015-12-10 | 2018-07-31 | Xilinx, Inc. | Circuits for and methods of transmitting data in an integrated circuit |
Also Published As
Publication number | Publication date |
---|---|
CN110620809B (en) | 2022-06-10 |
CN110620809A (en) | 2019-12-27 |
DE102019003979A1 (en) | 2019-12-24 |
US20190394309A1 (en) | 2019-12-26 |
DE102019003979B4 (en) | 2022-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11082539B2 (en) | System and method for performing interpacket gap repair for lossy protocols | |
US8990653B2 (en) | Apparatus and method for transmitting and recovering encoded data streams across multiple physical medium attachments | |
EP1388975B1 (en) | System and method for data transition control in a multirate communication system | |
US7581041B1 (en) | Methods and apparatus for high-speed serialized data transfer over network infrastructure using a different protocol | |
EP2975858B1 (en) | Method for processing data in the ethernet, physical layer chip and ethernet device | |
CN107465965B (en) | Optical port implementation method and device and field programmable gate array device | |
US6757348B1 (en) | High-speed coordinated multi-channel elastic buffer | |
EP1388969A2 (en) | System and method for determining on-chip bit error rate (BER) in a communication system | |
US7065101B2 (en) | Modification of bus protocol packet for serial data synchronization | |
US3950616A (en) | Alignment of bytes in a digital data bit stream | |
CN109257139B (en) | Method and device for sending and receiving physical layer data | |
US7362779B1 (en) | Transmission of data frames as a plurality of subframes over a plurality of channels | |
EP0119004A2 (en) | Ring communications system | |
US6868088B2 (en) | Automatic detector of media interface protocol type | |
US6539051B1 (en) | Parallel framer and transport protocol with distributed framing and continuous data | |
US8553785B2 (en) | Apparatus and method for transmitting and recovering encoded data streams across physical medium attachments | |
US10827040B2 (en) | System and method for enabling lossless interpacket gaps for lossy protocols | |
US6882661B1 (en) | System for detection of asynchronous packet rates and maintenance of maximum theoretical packet rate | |
US7251699B1 (en) | Low overhead coding with arbitrary control symbol placement | |
CN106506118B (en) | The method and system that USXGMII multichannel IPG is accurately compensated | |
EP3883150B1 (en) | Time synchronization method and network device | |
Ranjula et al. | Implementation techniques for IEEE 802.3 ba 40Gbps Ethernet Physical Coding Sublayer (PCS) | |
US5781587A (en) | Clock extraction circuit | |
JPS59502009A (en) | Device that receives high-speed data in packet format | |
RU2271612C1 (en) | Data transfer device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CALDWELL, MAURICE D.;HUFF, GARY S.;REEL/FRAME:046139/0523 Effective date: 20180618 Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD., SINGAPORE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CALDWELL, MAURICE D.;HUFF, GARY S.;REEL/FRAME:046139/0523 Effective date: 20180618 |
|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
AS | Assignment |
Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITE Free format text: MERGER;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:047231/0369 Effective date: 20180509 Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED, SINGAPORE Free format text: MERGER;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:047231/0369 Effective date: 20180509 |
|
AS | Assignment |
Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITE Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE OF THE MERGER AND APPLICATION NOS. 13/237,550 AND 16/103,107 FROM THE MERGER PREVIOUSLY RECORDED ON REEL 047231 FRAME 0369. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:048549/0113 Effective date: 20180905 Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED, SINGAPORE Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE OF THE MERGER AND APPLICATION NOS. 13/237,550 AND 16/103,107 FROM THE MERGER PREVIOUSLY RECORDED ON REEL 047231 FRAME 0369. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:048549/0113 Effective date: 20180905 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE AFTER FINAL ACTION FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |