WO2023004717A1 - 一种解码方法及装置 - Google Patents
一种解码方法及装置 Download PDFInfo
- Publication number
- WO2023004717A1 WO2023004717A1 PCT/CN2021/109382 CN2021109382W WO2023004717A1 WO 2023004717 A1 WO2023004717 A1 WO 2023004717A1 CN 2021109382 W CN2021109382 W CN 2021109382W WO 2023004717 A1 WO2023004717 A1 WO 2023004717A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- decoding
- decoded
- code block
- code
- block
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 219
- 238000001514 detection method Methods 0.000 claims abstract description 66
- 238000012545 processing Methods 0.000 claims abstract description 62
- 230000015654 memory Effects 0.000 claims description 28
- 238000004590 computer program Methods 0.000 claims description 27
- 230000008569 process Effects 0.000 abstract description 28
- 238000010586 diagram Methods 0.000 description 31
- 238000012546 transfer Methods 0.000 description 15
- 230000003111 delayed effect Effects 0.000 description 14
- 230000005540 biological transmission Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000547 structure data Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 238000003079 width control 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/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0036—Systems modifying transmission characteristics according to link quality, e.g. power backoff arrangements specific to the receiver
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- 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/0015—Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L25/00—Baseband systems
- H04L25/38—Synchronous or start-stop systems, e.g. for Baudot code
- H04L25/40—Transmitting circuits; Receiving circuits
- H04L25/49—Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems
- H04L25/4906—Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems using binary codes
- H04L25/4908—Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems using binary codes using mBnB codes
Definitions
- the present application relates to the field of communication technologies, and in particular to a decoding method and device.
- the Ethernet physical layer includes a physical coding sublayer (PCS), a physical medium attachment (PMA) sublayer, and a physical media dependent (PMD) sublayer.
- PCS is located between the coordination sublayer (reconciliation sublayer, RS) and the PMA sublayer of the media access control (media access control, MAC) layer.
- RS coordination sublayer
- MAC media access control
- PCS is used to map an Ethernet MAC flow to the encoding and physical layer signaling system.
- the current 10G-400G standard defined by the IEEE802.3 protocol and the 800G private standard all stipulate that the PCS code adopts 64b/66b code.
- MII media independence interface
- 64b/66b encoding is used to encode and map 8 8-bit (8-bit) data and 1 8-bit control signal transmitted by MII to generate block payload (block Payload), sync header (sync header) and block type field (block type field), and generate a 66-bit block (block) for parallel output according to the specified format.
- the IEEE protocol stipulates that the state jump when 64b/66b decodes a 66-bit block (block) needs to refer to the attributes of the next 66-bit block (block), so all decoding operations need to be completed within one clock cycle (that is, a single shot). Under low bus width and advanced technology, it is usually possible to complete the state transition of all 66-bit blocks within one clock cycle, but under large bus width or low technology, if it is completed within one clock cycle All state transitions of 66-bit blocks (blocks) have a large implementation timing risk.
- Embodiments of the present application provide a decoding method and device, which are used to be compatible with requirements of different bus bit widths or different processes on the timing of physical coding sublayer decoding, thereby improving system compatibility and flexibility.
- a decoder in a first aspect, includes:
- a type detection module configured to detect the types of N code blocks to be decoded, the N code blocks to be decoded are arranged in order, and N is an integer greater than or equal to 1;
- a decoding and prediction module configured to decode the N code blocks to be decoded according to the types of the N code blocks to be decoded, to obtain decoding results of the N code blocks to be decoded; and, to obtain the N code blocks to be decoded A predictive decoding method for at least one code block in the code blocks to be decoded;
- a state judgment module configured to select a decoding method from the predictive decoding methods of each code block in the at least one code block
- An output processing module configured to update the decoding result according to the decoding method, obtain and output the media-independent interface information corresponding to the N code blocks to be decoded;
- the decoder also includes a delay device for delaying the received data for at least one clock cycle before outputting, wherein:
- the type detection module sends the types of the N code blocks to be decoded to the decoding and prediction module through the delay device; or, the decoding and prediction module sends the predictive decoding method through the delay device to the state judgment module, and send the decoding results of the N code blocks to be decoded to the output processing module; or, the state judgment module sends the decoding method to the output through the delay device processing module.
- the above-mentioned decoder can be applied to physical layer decoding, for example, it can be used for PCS 64b/66b decoding.
- the delay device is set in the decoder so that the data is delayed by at least one clock cycle to output, and the splitting of the clock cycle is realized, so that the operation that needs to be performed in one clock cycle is split into two or two It can be executed in more than one clock cycle, which can be compatible with the timing requirements of different bus bit widths or different processes for the decoding of the physical coding sublayer, thereby improving system flexibility.
- the state judgment module is specifically configured to: according to the type of the first code block to be decoded and the type of the next code block of the first code block to be decoded, from the first Select one of the predictive decoding modes of the code block to be decoded, wherein the first code block to be decoded is any code block in the at least one code block.
- a decoding method corresponds to a state in the FSM, and in a given FSM state, there may be multiple FSM state jumps according to different jump conditions, and the jump conditions are based on the state to be decoded
- the type of the code block (including the type of the input code block to be decoded in the FSM state, further including the type of the next code block of the code block to be decoded).
- the first code block to be decoded in a given FSM state (that is, the decoding mode of the previous code block to be decoded of the first code block to be decoded), according to the type and The type of the next code block of the first code block to be decoded can determine the jump condition under the FSM state, so it can be determined that the only FSM state to jump to (that is to say from the first code block to be decoded) Select one of the multiple predictive decoding modes of the block), so as to jump to the FSM state to decode the first decoding code block.
- the output processing module is specifically configured to: if the decoding method used by the decoding and prediction module for the first code block to be decoded is the same as that used by the state judgment module from the first code block to be decoded The decoding mode selected in the predictive decoding mode of the decoded code block is different, then the decoding of the first code block to be decoded is performed according to the decoding mode selected by the state judgment module from the predictive decoding mode of the first code block to be decoded The results are updated; wherein, the first code block to be decoded is any code block in the at least one code block.
- the output processing module is specifically configured to: if the decoding method selected from the predictive decoding methods of the first code block to be decoded is the decoding method used in an error state, the A decoding result of a code block to be decoded is updated to an error code; wherein, the first code block to be decoded is any code block in the at least one code block.
- the output processing module is specifically configured to: if the decoding mode selected from the predicted code block mode of the first code block to be decoded is the decoding mode used in the low power consumption state, the The decoding result of the first code block to be decoded is updated as a low power consumption control code; wherein, the first code block to be decoded is any code block in the at least one code block.
- the output processing module corrects the decoding result obtained by the early decoding according to the state judgment result output by the state judgment module, so as to ensure the correctness of the output decoding result.
- the type detection module includes N type detection submodules, and the N type detection submodules correspond to the N code blocks to be decoded one by one;
- the decoding and prediction module includes N decoding sub-modules and N prediction sub-modules, the N decoding sub-modules correspond to the N code blocks to be decoded one-to-one, and the N prediction sub-modules correspond to the N code blocks to be decoded one-to-one Correspondence;
- the output processing module includes N output processing sub-modules, and the N output processing sub-modules are in one-to-one correspondence with the N code blocks to be decoded.
- the N type detection sub-modules run in parallel
- the N decoding sub-modules run in parallel
- the N prediction sub-modules run in parallel
- the N output processing modules run in parallel.
- N type detection sub-modules run in parallel
- N decoding sub-modules run in parallel
- N prediction sub-modules run in parallel
- N output processing modules run in parallel
- the code block to be decoded is a 66-bit block descrambled by the physical coding sublayer PCS, the 66-bit block includes a 2-bit synchronization header and a 64-bit payload, and the 64-bit effective
- the payload includes 8-bit block type information and 56-bit data;
- the media-independent interface information includes 64-bit XGMII/XXVGMII interface data and 8-bit XGMII/XXVGMII interface control information.
- a decoding method comprising:
- N is an integer greater than or equal to 1
- decoding the N code blocks to be decoded according to the types of the N code blocks to be decoded, to obtain the N code blocks to be decoded The decoding result of the block, and obtain the predictive decoding mode of at least one code block in the N code blocks to be decoded; select a decoding mode from the predictive decoding mode of each code block in the at least one code block; according to The decoding method selected in the decoding method updates the decoding result, obtains and outputs the media-independent interface information corresponding to the N code blocks to be decoded; wherein, the method further includes at least one of the following operations: The types of the N decoded code blocks are delayed for at least one clock cycle and output; the predictive decoding method and the decoding results of the N code blocks to be decoded are delayed for at least one clock cycle and output; the at least one code block is output The decoding mode selected in the predictive decoding mode of each code block in is
- the obtaining the predictive decoding method of at least one of the N code blocks to be decoded includes: according to the type of the first code block to be decoded and the first code block to be decoded The type of the next code block, select a decoding method from the predictive decoding method of the first code block to be decoded, wherein the first code block to be decoded is any code in the at least one code block piece.
- the updating the decoding result according to the decoding method selected from the prediction decoding method of each code block in the at least one code block includes: if the decoding and prediction module is The decoding method used by the first code block to be decoded is different from the decoding method selected by the state judgment module from the predictive decoding methods of the first code block to be decoded, then according to the state judgment module from the first code block to be decoded
- the decoding method selected in the predictive decoding method of decoding the code block updates the decoding result of the first code block to be decoded; wherein, the first code block to be decoded is any code block in the at least one code block .
- the updating of the decoding result by selecting a decoding method from the predictive decoding methods of each code block in the partial code blocks includes: if the first code block to be decoded If the decoding method selected in the predictive decoding method is the decoding method used in the error state, the decoding result of the first code block to be decoded is updated to an error code; wherein, the first code block to be decoded is the at least Any code block in a code block.
- the updating of the decoding result by selecting a decoding method from the predictive decoding methods of each code block in the partial code blocks includes: if the first code block to be decoded The decoding mode selected in the predicted code block mode is the decoding mode used in the low power consumption state, then update the decoding result of the first code block to be decoded to a low power consumption control code; wherein, the first code block to be decoded The code block is any code block in the at least one code block.
- the code block to be decoded is a 66-bit block descrambled by the physical coding sublayer PCS, the 66-bit block includes a 2-bit synchronization header and a 64-bit payload, and the 64-bit effective
- the payload includes 8-bit block type information and 56-bit data;
- the media-independent interface information includes 64-bit XGMII/XXVGMII interface data and 8-bit XGMII/XXVGMII interface control information.
- an electronic device in a third aspect, includes: one or more processors; one or more memories; wherein, one or more computer programs are stored in the one or more memories, and the one or more The or multiple computer programs include instructions, which, when executed by the one or more processors, cause the electronic device to perform the method as described in any one of the above second aspects.
- a computer-readable storage medium includes a computer program, and when the computer program runs on an electronic device, the computer executes the computer program described in any one of the above-mentioned second aspects. Methods.
- a chip in a fifth aspect, includes: one or more processors; one or more memories; wherein, one or more computer programs are stored in the one or more memories, and the one or more A plurality of computer programs comprising instructions which, when executed by the one or more processors, cause the chip to perform the method as described in any one of the above second aspects.
- a computer program product is provided.
- the computer program product When the computer program product is invoked by a computer, the computer executes the method described in any one of the above-mentioned second aspects.
- FIG. 1 is a schematic diagram of a communication system according to an embodiment of the present application.
- FIG. 2 is a schematic diagram of an open system interconnection model according to an embodiment of the present application.
- FIG. 3 is a schematic structural diagram of a network device according to an embodiment of the present application.
- Fig. 4 is the schematic diagram of the PCS 64b/66b encoding and decoding in the embodiment of the present application;
- FIG. 5 is a schematic diagram of the 66b coding block in the embodiment of the present application.
- Figure 6 is the 64b/66b encoding table used by XGMII/XXVGMII of 10G/25GBASE-R in the embodiment of the present application;
- FIG. 7 is a 64b/66b encoding state diagram in the embodiment of the present application.
- FIG. 8 is a schematic diagram of a decoding process of a traditional 64b/66b block
- FIG. 9 is a schematic diagram of a decoding principle applied to a physical coding sublayer in an embodiment of the present application.
- FIG. 10 is a schematic structural diagram of a 64b/66b decoder provided in an embodiment of the present application.
- FIG. 11 is a schematic structural diagram of a decoder suitable for 64b/66b encoding provided by the embodiment of the present application.
- FIG. 12 is a schematic diagram of a decoding process provided by an embodiment of the present application.
- FIG. 13 is a schematic structural diagram of an electronic device provided by an embodiment of the present application.
- the communication system 100 includes a network device (e.g., a switch or router) 110(a) coupled to a plurality of network devices 110(b) and 110(c) via respective data links (or physical channels) 120 ).
- Network devices 110(b) and 110(c) may exchange data with switch/router 110(a) over respective data links 120.
- Network devices 110(b) and 110(c) may be any suitable network-capable devices including, for example, computers, switches, routers, hubs, gateways, access points, and the like.
- the network devices 110(b) and 110(c) may include any electronic device capable of connecting to a wired or wireless network, including, for example, a mobile phone, a personal digital assistant (PDA), a set-top box, or a game console.
- PDA personal digital assistant
- router/switch 110(a), network devices 110(b) and 110(c), and data link 120 are merely exemplary components of a network, as the network may further include any number of suitable devices to form a relatively Larger networks including, for example, local area networks (LANs), wide area networks (WANs), wireless LANs (WLANs), and/or can be connected to the Internet.
- LANs local area networks
- WANs wide area networks
- WLANs wireless LANs
- Data link 120 may be any suitable physical medium channel including, for example, coaxial cable, fiber optics, and/or unshielded/shielded twisted-pair wire.
- Network devices 110(a)-110(c) may communicate with each other using Ethernet technology as described in the IEEE 802.3 family of standards.
- FIG. 2 there is a block diagram of an open system interconnection (OSI) model 200 ( a , b ) of network devices 110 ( a ) and 110 ( b ) or 110 ( c ) in FIG. 1 .
- the OSI model 200 (a, b) is divided into 7 logical layers, including from top to bottom: application layer 211 (a, b), presentation layer 212 (a, b), session layer 213 (a, b), transmission Layer 214(a,b), Network Layer 215(a,b), Data Link Layer 216(a,b), Physical Layer 217(a,b).
- OSI model 200(a,b) may be used to represent network devices 110(a) and 110(b)/110(c), but it should be noted that other suitable models may be used to represent Ethernet network equipment.
- the physical layer 217(a,b) provides electrical and physical specifications for interactions between the network device 110 and the data link 120, including things like pin layout and signal voltages.
- Data link layer 216(a,b) provides functional and/or procedural provisions for data transfer between network devices 110(a) and 110(b)/110(c), such as addressing and Channel access control mechanism.
- the data link layer 216(a, b) has two sublayers, which include a logical link control (logical link control, LLC) layer and a MAC layer from top to bottom.
- logical link control, LLC logical link control
- MAC layer MAC layer from top to bottom.
- the data link layer 216(a,b) is also referred to as the MAC layer in the subsequent description herein.
- MII Media Independent Interface
- XGMII is defined as a 10Gbit interface from the MAC to the physical layer
- XXVGMII is defined as a 25Gbit interface from the MAC to the physical layer
- the network device 300 may be one of the network devices 110 ( a ), 110 ( b ), and 110 ( c ) in FIGS. 1 and 2 .
- Network device 300 includes processor 310 , memory 320 and Ethernet transceiver 330 coupled to one or more physical channels 120 .
- Ethernet transceiver 330 is shown in FIG. 3 as being included in PHY 350, for other embodiments, transceiver 330 may be a separate device or an integrated circuit.
- Memory 320 may be any suitable memory element or device including, for example, EEPROM or flash memory.
- Processor 310 may be any suitable processor capable of executing the scripts or instructions of one or more software programs stored, for example, in memory 320 .
- the network device 300 may also include what is known as a cache memory that stores frequently used instructions and/or data.
- the network device 300 includes a physical layer device (PHY) 350 and a MAC layer device (or MAC device) 340 .
- PHY 350 and MAC device 340 include MII 360-1 and 360-2, respectively, for sending signals between the two devices via signal path 370.
- the MAC device 340 may be any device or integrated circuit that implements MAC layer functions, and may be an independent device or integrated into the network device 300 .
- the PHY 350 may be any device or integrated circuit that implements the functions of the physical layer, and may be an independent device or may be integrated into the network device 300 .
- both PHY 350 and MAC device 340 may be implemented in an integrated circuit mounted on a circuit board, and signal path 370 may be implemented as a trace on the circuit board.
- processor 310 processes the data according to the top layers of the OSI model and then sends PHY 350 sends data.
- the PHY 350 encodes the data from the MII (such as using 64b/66b encoding), scrambles and other operations, and then sends the data to the physical channel 120 via the transceiver 330 .
- the transceiver 330 of the network device 300 receives the data from the physical channel 120 through the network, the PHY 350 descrambles and decodes the data and sends it to the MAC device 340 via the MII.
- FIG. 4 it is a schematic diagram of a 64b/66b codec adopted in the embodiment of the present application.
- the MAC layer sends data (TXD ⁇ 31:0>) and control signals (TDC ⁇ 3:0>) to PCS via XGMII/XXVGMII, further A clock signal (TX_CLK) can also be sent, wherein the clock signal is not required to be sent, and it is not necessary to send a clock signal to the PCS when the MAC layer and the PCS use the same clock signal.
- TX_CLK clock signal
- PCS forms two data (TXD ⁇ 31:0>) into eight 8-bit width data (TXD ⁇ 63:0>), and two control signals (TDC ⁇ 3:0>) into one 8-bit width Control signal (TXC ⁇ 7:0>), and 64b/66b encoding of 64-bit data (TXD ⁇ 63:0>) and 8-bit control signal (TXC ⁇ 7:0>) to obtain a 66-bit block (block ), and then perform operations such as scrambling (scramble) and bit width conversion (gear box) on the 66-bit block, and then send it to the downstream module of PCS transmission (PCS trasmit) for encapsulation and other operations.
- PCS trasmit PCS transmission
- PCS trasmit can be PMA, Reed-Solomon forward error correction (Reed-Solomon forward error correction, RS-FEC) module or WIS (wan interface sunlayer) sublayer, depending on the application Scenes.
- RS-FEC Reed-Solomon forward error correction
- WIS wan interface sunlayer
- PCS receives data from PMA or RS-FEC module or WIS sublayer, and performs error checking and synchronization header detection on the received data, if the received data conforms to the basic coding rules ( basic encoding rule, BER), the PCS descrambles the received data, decodes 64b/66b, and finally generates 64-bit received data (RXD ⁇ 63:0>) and 8-bit received control signal (RXC ⁇ 7:0>), and split into two data (RXD ⁇ 31:0>) and two control signals (RXD ⁇ 3:0>), sent to the MAC layer via MII.
- basic coding rules basic encoding rule, BER
- FIG. 5 it is a schematic diagram of an encoded 66-bit block (block) in the embodiment of the present application.
- Block is the basic processing unit of PCS and consists of 66 bits.
- the PCS maps MII (including, for example, XGMII/XXVGMII) structure data (TXD ⁇ 63:0> and TXC ⁇ 7:0>) into a 66-bit block (tx_coded ⁇ 65:0>) based on the 64b/66b coding scheme.
- MII including, for example, XGMII/XXVGMII
- the synchronization header (2 bits) of the 66-bit block (tx_coded ⁇ 65:0>) is used to detect the boundary of the block during the PCS synchronization process on the receiving side, so that the receiving side can achieve block alignment on the PHY bit stream.
- Each rectangle in Fig. 5 represents one bit of data.
- the bit data with a smaller index value is first transmitted on the physical link.
- 64b/66b encoding ensures that there is enough randomness in the physical layer (PHY) bitstream to allow proper clock recovery in the receive direction. 64b/66b encoding also preserves the possibility of detecting any single or multiple bit errors that may occur during transmission and reception of information.
- PHY physical layer
- 10G/25G PCS supports the control words defined in XGMII/XXVGMII (the control words defined in XGMII and XXVGMII are the same).
- the representation of the control word is the control code.
- PCS uses TXC on XGMII/XXVGMII to distinguish whether the corresponding byte is a control code or a data byte. If TXC is set, the corresponding 8-bit data is the control code. For example, if TXC ⁇ 0> is set, the first byte ⁇ 7:0> in TXD ⁇ 63:0> is the control code.
- the PCS defines a symbol for each value of the control code, as shown in Table 1 for example.
- the /LI/ character is transmitted when the PCS receives a Low Power (LPI) control character (0x06) from the MII.
- LPI Low Power
- the LPI control character /LI/ is sent continuously instead of the control character /I/.
- the start control character /S/ indicates the start of a packet. /S/ is only valid for the first or fifth byte in MII TXD ⁇ 63:0>. Receipt of /S/ on any other byte of MII TXD ⁇ 63:0> indicates an error.
- /T/ The termination control character /T/ indicates the end of the packet. Due to the different packet lengths, /T/ can appear on any byte in MII TXD ⁇ 63:0>.
- Ordered sets are used to extend the ability to send control and status information over the link, such as remote fault and local fault status.
- a sequence ordered_set consists of a special control character /Q/ and three data bytes.
- Ordered sets (ordered_set) always start from the first or fifth byte of the MII (including, for example, XGMII/XXVGMII).
- a signal ordered_set consists of a special control character /Fsig/ followed by three data bytes.
- the control symbol /Q/ is equal to the control symbol /O/. Receipt of /Q/ on any other byte of TXD other than specified above indicates an error.
- the error control character /E/ is generated whenever /E/ is detected from the MII. /E/ is also generated when the PCS detects an error from the MII. /E/ Allows PCS to send detected errors.
- the 64b/66b encoder receives data TXD ⁇ 63:0> and control signal TXC ⁇ 7:0> from XGMII/XXVGMII, and generates a 66-bit block (block) by looking up the coding table.
- FIG. 6 shows a 64b/66b encoding table used by XGMII/XXVGMII of 10GBASE-R/25GBASE-R.
- the first column represents the transmission data from XGMII/XXVGMII.
- the second column (tx_coded) is a 66-bit block, and its encoded result consists of a synchronization header (SYNC) column and a block payload (block payload) column.
- the first two bits of the 66-bit block are the synchronization header (SYNC).
- the value of the sync header is displayed as a binary value.
- the value of the sync header is "01" and "10".
- "01” means that the following 64 bits are all data
- "10” means that the following 64 bits are control information or a mixture of data and control information.
- the 8 bits next to the sync header are the block type field, and the next 56 bits are control information or data or a mixture of the two.
- a block payload in a 66-bit block, data codes are marked as D 0 to D 7 , and one data code is 8 bits.
- the control characters /I/, /LI/ and /E/ are labeled C 0 to C 7 .
- the control characters /Q/ or /Fsig/ are marked O 0 or O 4 because they are valid only on the first or fifth octet of an XGMII/XXVGMII transmission.
- control character /S/ is marked as S 0 or S 4 , since two transmit TXD ⁇ 31:0>s are used to create one TXD ⁇ 63:0>, the value of the block type field implicitly encodes /S / as the first or fifth character of a block.
- the control characters /T/ are marked as T 0 to T 7 , and the position of /T/ in the block is implicitly encoded in the block type field, when a block containing /T/ is followed by a control block that does not contain /T/ and /E/ , the packet effectively ends.
- the subscript in the label in the above encoding table indicates the position of the character in the 8 bytes in the XGMII/XXVGMII transmission.
- the leftmost bit (bit) is transmitted first.
- the contents of the block type field, data octets, and control codes are shown as hexadecimal values.
- PCS 64b/66b decoding is the inverse of encoding.
- the definitions of data and control characters (or control codes) are the same as the encoding, and you can refer to the encoding scheme shown in the PCS transmission section.
- PCS can perform 64b/66b decoding according to 64b/66b decoding finite state machine (finite state machine, FSM) and encoding tables (such as Table 1 and Figure 6) to recover the original data bytes from the descrambled input block stream .
- FSM finite state machine
- encoding tables such as Table 1 and Figure 6
- the 64b/66b decoding state machine or decoding state diagram is used to define the rules followed by the 64b/66b encoding and decoding, and according to the rules, Ethernet data packets that meet the format requirements can be output.
- FIG. 7 shows a 64b/66b decoding state diagram in the embodiment of the present application.
- the descrambled vector rx_coded ⁇ 65:0> is demarcated successfully, or the vector rx_coded ⁇ 65:0> is not a high bit error, or is currently in reset or test mode, then enter the RX_INIT state (also known as the initial state). After entering the RX_INIT state, initialize the 72-bit vector rx_raw ⁇ 71:0> to be transmitted to XGMII/XXVGMII, so that the vector contains two local fault ordered sets ordered_set.
- the input vector rx_coded ⁇ 65:0> belongs to the S type, it indicates that the vector contains the start control character /S/, then transfer to the RX_D state (also called the data state);
- the input vector rx_coded ⁇ 65:0> belongs to the C type, it indicates that the vector is a control code block that does not contain the start control character /S/, then transfer to the RX_C (also called the control state) state;
- the input vector rx_coded ⁇ 65:0> belongs to one of the E, D, T, LI types, it will enter the RX_E state (also called the error state).
- the vector rx_coded ⁇ 65:0> may belong to one of the following types:
- Type C The value of the synchronization header is binary 10, and one of the following conditions is met:
- the value of the block type field is 0x1E, including 8 valid control characters except /E/; if the EEE or LPI encoding function is supported, 0 or 4 of them are /LI/;
- the value of the block type field is 0x2D or 0x4B, including valid O codes and 4 valid control characters;
- the value of the block type field is 0x55, which contains 2 valid O codes.
- Type LI For the EEE or LPI encoding function, support the LI type, where the value of the synchronization header in the vector is binary 10, the value of the block type field is 0x1E, and contains 8 control characters 0x06(/LI/) .
- Type S the value of the synchronization header is binary 10, and one of the following conditions is met:
- the value of the block type field is 0x33, and contains 4 valid control characters
- the block type field has a value of 0x66 and contains valid O codes
- Type T The value of the synchronization header is binary 10, and one of the following conditions is met:
- the value of the block type field is 0x87, 0x99, 0xAA, 0xB4, 0xCC, 0xD2, 0xE1 or 0xFF, and all control characters are valid.
- Type D the value of the synchronization header included in the vector is 01 in binary.
- a valid control character was specified in the transport section. If the block type is E, the block is an invalid block. An apparently invalid block satisfies at least one of the following properties:
- the value of the sync header is binary 00 or 11;
- the value of the block type field is an invalid value (a value not included in the coding table);
- the value of the block type field is 0x1E, and the 8 control characters are /E/.
- the input vector rx_coded ⁇ 65:0> belongs to the D type, indicating that the vector is a data code block, then maintain the current state, decode the vector rx_coded ⁇ 65:0>, and update the vector rx_raw ⁇ 71:0> with the decoding result;
- the input vector rx_coded ⁇ 65:0> is of T type and the next vector is of S, C or LI type, indicating that the current input vector contains the termination control character /T/, and the block type of the subsequent vector is correct, then transfer to the RX_T state ( can also be called the end state);
- the input vector rx_coded ⁇ 65:0> is of T type and the next vector is of E, D or T type, indicating that the current input vector contains the termination control character /T/, and the block type of the subsequent vector is incorrect, then transfer to the RX_E state ;or, if the input vector rx_coded ⁇ 65:0> is of type E, C, S, or LI, go to RX_E state.
- the input vector rx_coded ⁇ 65:0> belongs to the LI type, it is transferred to the RX_LI state (also called a low power consumption state);
- the input vector rx_coded ⁇ 65:0> belongs to the C type, keep the current state, decode the current vector rx_coded ⁇ 65:0>, and update the vector rx_raw ⁇ 71:0> with the decoding result;
- the decoding process may be stopped immediately, and two local fault ordered sets are continuously transmitted on the XGMII/XXVGMII of the Ethernet PHY.
- the decoding process of the N 66-bit blocks has a serial structure, and the decoding process of one 66-bit block may include block type prediction, decoding according to the block type, and output processing of the decoding result.
- the FSM state jump judgment for N 66-bit blocks (block) in one clock cycle and the timing risk of decoding the N 66-bit blocks are relatively low, but in large If the bus bit width is low or in a low process, there will be a greater risk of implementation timing.
- the embodiment of the present application provides a decoding method and a device capable of implementing the method.
- the decoding operation of N blocks in one clock cycle is divided into two or more clock cycles Further, the decoding operations of the N blocks are processed in parallel within at least one clock cycle, so that timing can be guaranteed, compatibility with different processes or different bus bit widths, and system compatibility and flexibility are improved.
- the embodiment of the present application can be applied to the implementation of 64b/66b decoding, and can also be applied to the implementation of other types of decoding.
- the embodiment of the present application may be implemented in a physical layer (PHY), for example, may be implemented in a PCS sublayer.
- PHY physical layer
- FIG. 9 it is a schematic diagram of the principle of decoding implementation provided by the embodiment of the present application.
- the principle of decoding implementation can be applied to the physical layer, for example, it can be applied to the PCS 64b/66b decoding process.
- a code block to be decoded (for example, including a 66-bit block), its decoding process may include operations such as type detection, decoding, state prediction, state judgment, and output processing.
- the type detection operation includes detecting the type of the code block to be decoded
- the decoding operation includes decoding the code block to be decoded according to the type of the code block to be decoded
- the state prediction operation includes the next code block to be decoded for the current code block to be decoded Block, predict all possible decoding methods (referred to as predictive decoding methods in the embodiment of this application)
- the state judgment operation includes selecting a decoding method from the predictive decoding methods for the code block to be decoded
- the output processing operation includes selecting a decoding method for the code block to be decoded
- the decoding mode selected in the predictive decoding mode of the code block updates the decoding result of the code block, and outputs the media-independent interface information (for example, including media-independent interface data and media-independent interface control information) corresponding to the code block to be decoded.
- media-independent interface information for example, including media-independent interface data and media-independent interface control information
- a delay device may be set in the decoder, which is used to delay the received data for at least one clock cycle before outputting it.
- the result of the type detection can be output by delaying one or more clock cycles through a delay device.
- the decoding result may be delayed by one or more clock cycles through the delay device, and the output predicted by the decoding method may be delayed by one or more clock cycles through the delay device.
- the predictive decoding mode may delay output by one or more clock cycles through a delay device.
- the delay device may be a register.
- the register may be, for example, a D flip-flop, and when the D flip-flop is triggered by a trigger signal (such as a clock signal), it outputs the stored data.
- the "register” mentioned in the embodiment of this application can be a register or a register group composed of at least two registers, which mainly depends on the data bandwidth and register bit width. For example, if the output data is 8 bits, Then one 8-bit register or two 4-bit registers can be set.
- a delay device can be set at at least one of the above-mentioned first position, second position, and third position, so that at the position where the delay device is set, the output of the previous stage operation is delayed by at least Sent to the next stage operation after one clock cycle.
- the time delay can be realized by setting a delay device at at least one of the first position, the second position, and the third position.
- a register is inserted at the first position (the box containing a triangle in FIG. 9 represents the register), so that the output data of the type detection operation is delayed by at least one clock cycle through the register, and then output to the decoding operation and the state prediction operation, As input data for decoding operations and state prediction operations.
- the embodiment of the present application inserts a delay between adjacent operations, so that the data is delayed by at least one clock cycle, and the splitting of the clock cycle is realized, thereby splitting the operations that need to be executed within one clock cycle It can be executed within two or more clock cycles, and thus can be compatible with the requirements of different bus bit widths or different processes for the decoding and implementation timing of the physical coding sublayer, thereby improving system flexibility.
- the decoding method provided in the embodiment of the present application can be applied to the PCS 64b/66b decoding process, and can also be applied to a similar decoding process implemented on the physical sub-layer.
- FIG. 10 shows the structure of a decoder provided by the embodiment of the present application.
- FIG. 10 it is a schematic structural diagram of a decoder provided by an embodiment of the present application.
- the decoder can be realized by hardware, such as by a field programmable gate array (field programmable gate array, FPGA) or other integrated circuits.
- the decoder can also be realized by software, and can also be realized by a combination of software and hardware. The application embodiment does not limit this.
- a decoder 1000 provided by the embodiment of the present application may include a type detection module 1010 , a decoding and prediction module 1020 , a state judgment module 1030 and an output processing module 1040 .
- the decoding and prediction module 1020 is configured to decode the N code blocks to be decoded according to the types of the N code blocks to be decoded, to obtain decoding results of the N code blocks to be decoded; and, to obtain the N code blocks to be decoded
- the predictive decoding mode of at least one code block in is configured to select a decoding method from the predictive decoding methods of each code block in the at least one code block.
- the output processing module 1040 is configured to update the decoding result according to the decoding method, obtain and output the media-independent interface information corresponding to the N code blocks to be decoded.
- the decoding and prediction module 1020 uses the decoding mode and state judgment module 1030 for the first code block to be decoded from the first The decoding method selected in the predictive decoding method of the code block to be decoded is different, then the output processing module 1040 decodes the first code block to be decoded according to the decoding method selected from the predictive decoding method of the first code block to be decoded by the state judgment module 1030 The results are updated.
- the decoding result of the first code block to be decoded is updated to is the error code.
- the decoding mode selected by the output processing module 1040 from the predicted code block modes of the first code block to be decoded is the decoding mode used in the low power consumption state, then the decoding mode of the first code block to be decoded The result is updated as a low power control code.
- the decoder 1000 also includes a delay device (a block containing a triangle in FIG. 10 represents a delay device), which is used to delay the received data for at least one clock cycle before outputting it.
- the type detection module 1010 may send the types of the N code blocks to be decoded (ie, type detection results) to the decoding and prediction module 1020 through the delay device.
- the decoding and prediction module 1020 may send the prediction decoding method (ie prediction result) to the state decision module 1030 through a delay device, and send the decoding results of the N code blocks to be decoded to the output processing module 1040 .
- the state judgment module 1030 may send a decoding method (ie, the judgment result) selected from the predictive decoding methods to the output processing module 1040 through a delay device.
- the type detection module 1010 can output the type detection result to the decoding and prediction module 1020 through the first-level register, and the decoding and prediction module 1020 can output the prediction result to the state judgment module 1030 through the first-level register, and through the two-level register
- the decoding result is output to the output processing module 1040, and the state judgment module 1030 outputs the judgment result to the processing module 1040 through the first-level register.
- the predictive decoding method of a code block to be decoded can be understood as: based on a decoding finite state machine (FSM), in an FSM state, the input code block to be decoded may jump to an FSM state. There may be one or more FSM states that may be jumped to, and each FSM state corresponds to a decoding method. In this way, these possible jumping FSM states correspond to the predictive decoding mode of the code block to be decoded.
- FSM decoding finite state machine
- the decoding FSM of 64b/66b in the decoding FSM of 64b/66b, in the RX_D state, for the currently input code block to be decoded, according to the three jump conditions in the RX_D state, it may jump to one of the three FSM states state, the code block to be decoded is decoded, and the three decoding modes corresponding to the three FSM states are the predictive decoding modes of the code block to be decoded.
- the current code block to be decoded is code block i
- the decoding FSM is currently in state 1. If it can only jump from state 1 to state 2, then for code block i+1 (that is, code block i For the next code block of i+1), the decoding method that can be used is unique (that is, the decoding method corresponding to state 2), so it is not necessary to predict the decoding method of the code block i+1 to be decoded, of course, it is also possible to use
- the decoding mode corresponding to state 2 is determined as the predictive decoding mode of the decoded code block i+1.
- the state judgment module 1030 may be specifically configured to: according to the type of the first code block to be decoded (the first code block to be decoded is any code block in the above at least one code block) and the first code block to be decoded The type of the next code block of the block, and select a decoding method from the predictive decoding methods of the first code block to be decoded.
- a decoding method corresponds to a state in the FSM, and in a given FSM state, there may be multiple FSM state jump situations according to different jump conditions, and the jump conditions depend on the type of the code block to be decoded ( Including the type of the code block to be decoded input in the FSM state, further including the type of the next code block of the code block to be decoded).
- the first code block to be decoded in a given FSM state (that is, the decoding mode of the previous code block to be decoded of the first code block to be decoded), according to the type and The type of the next code block of the first code block to be decoded can determine the jump condition under the FSM state, so it can be determined that the only FSM state to jump to (that is, from the first code block to be decoded) Select one of the multiple predictive decoding modes), so as to jump to the FSM state to decode the first decoding code block.
- the decoding and prediction module 1020 can decode N code blocks in advance, and when decoding a code block, it depends on the type of the code block, which may lead to decoding errors (because in some cases, When decoding a code block, not only the type of the code block, but also the type of the next code block is required to determine which decoding method to use), so the decoding result may be inaccurate (that is, the decoding method used may be Inaccurate).
- the decoding method of the code block to be decoded is predicted by the decoding and prediction module 1020, and then a certain decoding method is selected through the state decision module 1030, so that when the decoding method used in the decoding and prediction module 1020 of the code block to be decoded is the same as
- the output processing module 1040 updates the decoding result of the code block to be decoded according to the decoding method determined in the state decision module 1030, so as to ensure the accuracy of decoding.
- the decoder provided by the above-mentioned embodiments can delay the output data of at least one module in the type detection module 1010, the decoding and prediction module 1020, and the state judgment module 1030 to the next-level module through a delay device (such as a register), so that The data is delayed by at least one clock cycle to realize the splitting of the clock cycle, so that the decoding operation that needs to be executed in one clock cycle is split into two or more clock cycles, which is compatible with different bus bit widths or Different technologies have requirements on the timing of physical coding sub-layer decoding to improve system flexibility.
- a delay device such as a register
- the type detection module 1010 includes N type detection sub-modules, and the N type detection sub-modules correspond to the N code blocks to be decoded one-to-one, that is, one type detection sub-module
- the sub-module is used to decode a code block to be decoded
- the decoding and prediction module 1020 includes N decoding and prediction sub-modules, and the N decoding and prediction sub-modules are in one-to-one correspondence with the N code blocks to be decoded, that is, a decoding and prediction module
- the prediction sub-module is used to decode a code block to be decoded, and perform type prediction on the next code block to be decoded of the code block to be decoded
- the output processing module 1040 includes N output processing sub-modules, and the N output processing sub-modules
- the modules are in one-to-one correspondence with the N code blocks to be decoded, that is, one output processing sub-module is
- the decoder 1000 includes N decodings, and each decoding is used to process a code block to be decoded.
- Each decoding includes a type detection submodule, a decoding and prediction submodule, and an output processing submodule.
- the N decodings can be Share a status judgment module 1030 .
- the N type detection sub-modules run in parallel
- the N decoding sub-modules run in parallel
- the N prediction sub-modules run in parallel
- the N output processing modules run in parallel
- the decoding and prediction sub-module may include a decoding sub-module and a prediction sub-module to respectively implement a decoding operation and a type prediction operation.
- FIG. 11 shows a decoder structure and input and output diagrams suitable for 64b/66b encoding.
- the 2-bit sync header block0[1:0] and the 8-bit block type field block0[9:2] in the 66-bit block block0 after PCS descrambling are input to the type detection sub-module 0 in the type detection module 1010 . If the value of the synchronization header is "01", the type detection sub-module 0 determines that block0 is a data code block, and if the value of the synchronization header is "10", the type detection sub-module 0 determines that block0 is a control code block, otherwise, it determines that block0 is encoded mistake.
- block0 is a control code block
- the block type of block0 can be determined by looking up the 64b/66b encoding table (for example, as shown in Figure 6), and the block type of block0 can indicate the format of block0.
- the block type of block0 may be one of types C, LI, S, T, D, and E.
- the type information of block0 detected by type detection sub-module 0 is sent to decoding sub-module 0 and prediction sub-module 0 after being delayed by one clock cycle by the register.
- the type detection methods of other code blocks to be decoded are similar.
- Decoding sub-module 0 obtains the type detection result of block0 output by type detection sub-module 0 and the 56-bit data block[65:10] in block0, by checking the 64b/66b encoding table (for example, as shown in Figure 6), the 56-bit data block [65:10] Decoded into 64-bit data rx_coded0 of the corresponding format.
- the decoding result (that is, the 64-bit data rx_coded0) is sent to the output processing sub-module 0 after being delayed by two clock cycles through two-stage registers.
- the decoding methods of other code blocks to be decoded are similar.
- the decoding submodule 0 may also generate 8-bit control information according to the block type of block0, and the value of each bit in the control information is used to indicate whether the corresponding 8-bit byte in rx_coded0 is data or a control code.
- the decoding sub-module 0 can output the 64-bit data rx_coded0 and the generated 8-bit control information to the output processing sub-module 0 as a decoding result. Further, the decoding sub-module 0 may also send the indication information of the decoding mode adopted by block0 to the output processing sub-module 0.
- the prediction sub-module 0 obtains the type detection result of block0 output by the type detection sub-module 0, according to the 64b/66b encoding and decoding rules (such as the 64b/66b decoding state diagram, as shown in Figure 7), according to the block type of block0 and the corresponding The FSM state (that is, the state the FSM state machine is in when decoding block0) predicts which FSM state or states it is possible to jump to to decode the next 66-bit block block1.
- the 64b/66b encoding and decoding rules such as the 64b/66b decoding state diagram, as shown in Figure 7
- the prediction result of the prediction sub-module 0 may include a block index (such as the index of block0 and/or block1) and indication information of all possible decoding modes (ie, FSM states) that may be used for decoding block1 obtained through prediction.
- a block index such as the index of block0 and/or block1
- indication information of all possible decoding modes ie, FSM states
- the decoding mode prediction method of other code blocks to be decoded is similar.
- the type of each code block in block0 ⁇ blockN-1 can be sent to the state judgment module 1030 by the type detection module 1010, or can be sent to the state judgment module 1030 by the corresponding prediction sub-module, for example, the prediction sub-module 0 can send The type of block0 is sent to the state judgment module 1030, and the prediction sub-module 1 can send the type of block1 to the state judgment module 1030, and so on.
- the state decision module 1030 is used to select a decoding method from the predictive decoding methods of each code block based on the 64b/66b decoding state diagram (as shown in FIG. 7 ) according to the type of the code block, and obtain a judgment result.
- the decision result is delayed by the register for one clock cycle and sent to the corresponding output processing sub-module.
- the predictive decoding method of block1 received by the state decision module 1030 from the prediction sub-module 0 includes: the decoding method corresponding to RX_D, the decoding method corresponding to RX_T and the decoding method corresponding to RX_E, and the type of block1 received from the prediction sub-module 1 If it is type D, then according to the decoding state diagram shown in FIG.
- the decision information output by the state decision module 1030 may include: indication information of the selected decoding mode, and may further include an index of a code block.
- the output processing module 1040 After the output processing module 1040 receives the judgment result from the state judgment module 1030, if it judges that for a certain code block, the decoding method adopted by the corresponding decoding sub-module is different from the decoding method selected by the state judgment module 1030, then the The decoding method selected by the decision module 1030 updates the decoding result of the code block.
- the output processing sub-module 1 does not need to The decoding result of block1 is updated; for another example, for block1, if the decoding mode selected by the state judgment module 1030 is the decoding mode corresponding to RX_E (that is, the decoding mode used in the error state), then due to the decoding mode and the decoding submodule 1
- the output processing sub-module 1 updates the decoding result of block1 according to the decoding method corresponding to RX_E, that is, the 8 characters of XGMII/XXVGMII RXD ⁇ 63:0> corresponding to block1 Sections are all updated to the error control character /E/; for another example, for block5, if the decoding mode selected by the state judgment module 1030 is the
- the output processing module 1040 generates corresponding 64-bit XGMII/XXVGMII interface data and 8-bit XGMII/XXVGMII interface control information according to the decoding results of N code blocks, and outputs them to the XGMII/XXVGMII interface.
- the decoder 1000 provided in the embodiment of the present application can be applied to a time-division architecture, and can also be applied to a space-division architecture.
- N code blocks to be decoded are input to the type detection module 1010 at the same clock cycle.
- the type detection module 1010 detects the types of the N code blocks to be decoded at the same clock cycle, and the type detection results of the N code blocks to be decoded are input to the decoding and prediction module 1020 at the same clock cycle.
- the decoding and prediction module 1020 decodes the N code blocks to be decoded and performs decoding mode prediction operations in the same clock cycle.
- the predictive decoding modes and type detection results of the N code blocks to be decoded are input to the state decision module 1030 at the same clock cycle. Since the state judgment module 1030 can obtain the predictive decoding modes and type detection results of the N code blocks to be decoded in one clock cycle, it can select one decoding mode from the predictive decoding modes of the corresponding code blocks in one clock cycle.
- FIG. 11 shows a decoder structure and input and output diagrams suitable for 64b/66b encoding.
- the state decision module 1030 receives the types of N 66-bit blocks (block0-blockN-1) output by the N type detection sub-modules within one clock cycle, and receives the predictive decoding mode of block0-blockN-1.
- the state judgment module 1030 selects one decoding type from the predictive decoding types of block0 to blockN-1 according to the output of N type detection sub-modules and the output of N prediction sub-modules within one clock cycle.
- N code blocks to be decoded are sequentially input to the type detection module 1010 according to clock cycles.
- the type detection module 1010 performs type detection on the received code blocks to be decoded, and the type detection results of the N code blocks to be decoded are sequentially input to the decoding and prediction module 1020 according to clock cycles.
- the decoding and prediction module 1020 sequentially performs decoding operation and decoding mode prediction operation on the code block to be decoded.
- the predictive decoding modes and type detection results of the N code blocks to be decoded are sequentially input to the state decision module 1030 according to clock cycles.
- the state decision module 1030 can first buffer the received type prediction results and predictive decoding methods of the code blocks to be decoded , after obtaining the type detection results and predictive decoding modes of the N code blocks to be decoded, select a decoding mode from the predictive decoding modes of the corresponding code blocks.
- Fig. 11 shows the decoder structure and input and output diagrams suitable for 64b/66b encoding.
- the state judgment module 1030 sequentially receives the types of N 66-bit blocks (block0-blockN-1) output by N type detection sub-modules within clock cycle 0 to clock cycle N-1, and receives the output of N prediction sub-modules The predictive decoding method of each code block.
- the state decision module 1030 caches the received type detection results and predictive decoding methods, and after obtaining the type prediction results and predictive decoding methods of N code blocks, selects one of the predictive decoding methods from block0 to blockN-1 respectively.
- the delay device when the delay device is only provided at any two of the above-mentioned first position, second position and third position, or only at any one of the above-mentioned first position, second position and third position
- the structure of the corresponding decoder can be derived by referring to the decoding principle shown in FIG. 9 and the decoder structure shown in FIG. 10 above, and will not be described separately in the embodiments of the present application.
- any two positions of the above-mentioned first position, second position, and third position can be Set the delay device on the top or any position, and it will not affect the functions of the above modules.
- FIG. 12 it is a schematic flowchart of a decoding method provided by an embodiment of the present application. This process can be realized by the above-mentioned decoder. Optionally, the above process is applicable to decoding 64b/66b encoded code blocks. As shown, the process may include the following steps:
- S1200 Detect types of N code blocks to be decoded, where N is an integer greater than or equal to 1.
- the operation of detecting the types of the N code blocks to be decoded is performed in parallel.
- S1202 Decode the N code blocks to be decoded according to the types of the N code blocks to be decoded, to obtain the decoding results of the N code blocks to be decoded; and obtain at least one code block of the N code blocks to be decoded Predictive decoding method.
- the operation of decoding the N code blocks to be decoded according to the types of the N code blocks to be decoded is performed in parallel; the operation of obtaining the predictive decoding mode of at least one code block among the N code blocks to be decoded is performed by Execute in parallel.
- S1204 Select a decoding mode from the predictive decoding modes of each code block in the at least one code block.
- the operation of S1200 can be completed within the same clock cycle, and the operation of S1202 can be completed within the same clock cycle, so that in S1204, the type of each code block and the predictive decoding can be obtained within the same clock cycle mode, so that the operation of S1204 can be completed within this clock cycle.
- This approach can be applied to space-separated architectures.
- the N code blocks to be decoded are sequentially detected according to the clock cycle, for example, the type detection is performed on block0 in the first clock cycle, and the type detection is performed on block1 in the second clock cycle, so that By analogy, correspondingly, the type detection results of each code block are sequentially output according to the clock cycle.
- each code block is sequentially subjected to decoding operation and decoding mode prediction operation, and the decoding results and prediction results are sequentially output.
- the received predictive decoding mode of each code block and the types of the N code blocks to be decoded can be cached first, and then after the types and predictive decoding modes of the N code blocks are obtained from the cache, according to the cached information from A decoding method is selected from the predictive decoding methods corresponding to the code block to be decoded.
- This approach can be applied to time-division architectures.
- S1206 Update the decoding result according to the decoding mode, and obtain and output the media-independent interface information corresponding to the N code blocks to be decoded.
- any one of the N code blocks to be decoded is referred to as a first code block to be decoded.
- the decoding method selected from the predictive decoding methods of the first code block to be decoded is the decoding method used in the error state, update the decoding result of the first code block to be decoded as an error or, if one of the decoding methods selected from the predicted code block methods of the first code block to be decoded is the decoding method used in the low power consumption state, update the decoding result of the first code block to be decoded to low power
- the decoding method selected from the predictive decoding method of the first code block to be decoded is the same as the decoding method adopted for the first code block to be decoded in S1202, there is no need to update the code block of the first code block to be decoded Decode the result.
- S1201 Delaying the types of the N decoded code blocks (that is, the processing results of S1200) for at least one clock cycle, and outputting after delaying for at least one clock cycle;
- S1203 Delay the predictive decoding mode and the decoding results of the N code blocks to be decoded (that is, the processing results of S1202) after at least one clock cycle;
- S1205 Select a decoding method (that is, the processing result of S1204) from the predictive decoding methods of each code block in at least one code block, and output it after delaying at least one clock cycle.
- the above-mentioned decoding principle provided by the embodiment of the present application can also be applied to the encoding process, that is, the encoding operation of the physical encoding sublayer is divided into two or more clock cycles to be compatible with different bus bit widths or different processes for physical
- the coding sublayer codes to realize timing requirements, thereby improving system compatibility and flexibility.
- the embodiment of the present application also provides an electronic device, which may have a structure as shown in FIG. 13 , the electronic device has computing capabilities, and can implement the method flow provided in the embodiment of the present application.
- the electronic device 1300 shown in FIG. 13 may include at least one processor 1302, and the at least one processor 1302 is used to be coupled with a memory, read and execute instructions in the memory to implement the method provided in the embodiment of the present application.
- the electronic device may further include a communication interface 1301, configured to support the electronic device in receiving or sending signaling or data.
- the communication interface 1301 in the electronic device can be used to realize interaction with other electronic devices.
- the processor 1302 may be configured to enable the electronic device to execute the steps in the method shown in FIG. 12 .
- the electronic device may also include a memory 1304, in which computer programs and instructions are stored, and the memory 1304 may be coupled with the processor 1302 and/or the communication interface 1301, for supporting the processor 1302 to call the computer program in the memory 1304 , instructions to implement the steps involved in the method provided by the embodiment of the present application; in addition, the memory 1304 can also be used to store the data involved in the method embodiment of the present application, for example, to store the data necessary to support the communication interface 1301 to realize interaction, The instruction, and/or, is used to store configuration information necessary for the electronic device to execute the method described in the embodiment of the present application.
- the embodiment of the present application also provides a computer-readable storage medium on which some instructions are stored. When these instructions are called and executed by the computer, the computer can complete the above-mentioned method embodiment and method implementation. methods involved in any one possible design of the example.
- the computer-readable storage medium is not limited, for example, it may be RAM (random-access memory, random access memory), ROM (read-only memory, read-only memory), etc.
- the present application also provides a computer program product, which can complete the method involved in the method embodiment and any possible design of the above method embodiment when the computer program product is invoked and executed by a computer.
- the present application also provides a chip, which may include a processor and an interface circuit, for completing the above method embodiment and any possible implementation of the method embodiment.
- a chip which may include a processor and an interface circuit, for completing the above method embodiment and any possible implementation of the method embodiment.
- “coupled” means that two parts are joined to each other directly or indirectly, this joint may be fixed or movable, and this joint may allow flowing fluids, electricity, electrical signals or other types of signals between the two communication between components.
- the processor in the embodiments of the present application may be a central processing unit (Central Processing Unit, CPU), and may also be other general-purpose processors, digital signal processors (Digital Signal Processor, DSP), application specific integrated circuits (Application Specific Integrated Circuit, ASIC), Field Programmable Gate Array (Field Programmable Gate Array, FPGA) or other programmable logic devices, transistor logic devices, hardware components or any combination thereof.
- a general-purpose processor can be a microprocessor, or any conventional processor.
- the method steps in the embodiments of the present application may be implemented by means of hardware, or may be implemented by means of a processor executing software instructions.
- Software instructions can be composed of corresponding software modules, and software modules can be stored in random access memory, flash memory, read-only memory, programmable read-only memory, erasable programmable read-only memory, electrically erasable programmable read-only Memory, registers, hard disk, removable hard disk, CD-ROM or any other form of storage medium known in the art.
- An exemplary storage medium is coupled to the processor such the processor can read information from, and write information to, the storage medium.
- the storage medium may also be a component of the processor.
- the processor and storage medium can be located in the ASIC.
- the ASIC can be located in the base station or the terminal.
- the processor and the storage medium may also exist in the base station or the terminal as discrete components.
- all or part of them may be implemented by software, hardware, firmware or any combination thereof.
- software When implemented using software, it may be implemented in whole or in part in the form of a computer program product.
- the computer program product comprises one or more computer programs or instructions. When the computer program or instructions are loaded and executed on the computer, the processes or functions described in the embodiments of the present application are executed in whole or in part.
- the computer may be a general purpose computer, a special purpose computer, a computer network, a base station, user equipment or other programmable devices.
- the computer program or instructions may be stored in or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer program or instructions may be downloaded from a website, computer, A server or data center transmits to another website site, computer, server or data center by wired or wireless means.
- the computer-readable storage medium may be any available medium that can be accessed by a computer, or a data storage device such as a server or a data center integrating one or more available media.
- the available medium may be a magnetic medium, such as a floppy disk, a hard disk, or a magnetic tape; it may also be an optical medium, such as a digital video disk; and it may also be a semiconductor medium, such as a solid state disk.
- the computer readable storage medium may be a volatile or a nonvolatile storage medium, or may include both volatile and nonvolatile types of storage media.
- “at least one” means one or more, and “multiple” means two or more.
- “And/or” describes the association relationship of associated objects, indicating that there may be three types of relationships, for example, A and/or B, which can mean: A exists alone, A and B exist simultaneously, and B exists alone, where A, B can be singular or plural.
- the character “/” generally indicates that the contextual objects are an “or” relationship; in the formulas of this application, the character “/” indicates that the contextual objects are a "division” Relationship.
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Description
Claims (18)
- 一种解码器,其特征在于,所述解码器包括:类型检测模块,用于检测N个待解码码块的类型,所述N个待解码码块顺序排列,N为大于或等于1的整数;解码及预测模块,用于根据所述N个待解码码块的类型对所述N个待解码码块进行解码,得到所述N个待解码码块的解码结果;以及,获得所述N个待解码码块中至少一个码块的预测解码方式;状态判决模块,用于从所述至少一个码块中每个码块的预测解码方式中选取一种解码方式;输出处理模块,用于根据所述解码方式更新所述解码结果,得到并输出所述N个待解码码块对应的介质无关接口信息;所述解码器还包括延迟设备,用于将接收的数据延迟至少一个时钟周期后输出,其中:所述类型检测模块通过所述延迟设备将所述N个待解码码块的类型发送至所述解码及预测模块;或者,所述解码及预测模块通过所述延迟设备将所述预测解码方式发送至所述状态判决模块,以及将所述N个待解码码块的解码结果发送给所述输出处理模块;或者,所述状态判决模块通过所述延迟设备将所述解码方式发送至所述输出处理模块。
- 如权利要求1所述的解码器,其特征在于,所述状态判决模块,具体用于:根据第一待解码码块的类型以及所述第一待解码码块的下一个码块的类型,从所述第一待解码码块的预测解码方式中选择一种解码方式,其中,所述第一待解码码块为所述至少一个码块中的任一码块。
- 如权利要求1或2所述的解码器,其特征在于,所述输出处理模块,具体用于:若所述解码及预测模块对第一待解码码块所使用的解码方式与所述状态判决模块从所述第一待解码码块的预测解码方式中选择的解码方式不同,则根据所述状态判决模块从所述第一待解码码块的预测解码方式中选择的解码方式对所述第一待解码码块的解码结果进行更新;其中,所述第一待解码码块为所述至少一个码块中的任一码块。
- 如权利要求1-3任一项所述的解码器,其特征在于,所述输出处理模块,具体用于:若从第一待解码码块的预测解码方式中选取的解码方式为错误状态下使用的解码方式,则将所述第一待解码码块的解码结果更新为错误码;其中,所述第一待解码码块为所述至少一个码块中的任一码块。
- 如权利要求1-3任一项所述的解码器,其特征在于,所述输出处理模块,具体用于:若从第一待解码码块的预测码块方式中选取的解码方式为低功耗状态下使用的解码方式,则将所述第一待解码码块的解码结果更新为低功耗控制码;其中,所述第一待解码码块为所述至少一个码块中的任一码块。
- 如权利要求1-5任一项所述的解码器,其特征在于,所述类型检测模块包括N个类型检测子模块,所述N个类型检测子模块与所述N个待解码码块一一对应;所述解码及预测模块包括N个解码子模块和N个预测子模块,所述N个解码子模块与所述N个待解码码块一一对应,所述N个预测子模块与所述N个待解码码块一一对应;所述输出处理模块包括N个输出处理子模块,所述N个输出处理子模块与所述N个待解码码块一一对应。
- 如权利要求6所述的解码器,其特征在于,所述N个类型检测子模块并行地运行,所述N个解码子模块并行地运行,所述N个预测子模块并行地运行,所述N个输出处理模块并行地运行。
- 如权利要求1-7任一项所述的解码器,其特征在于,所述待解码码块为物理编码子层PCS解扰后的66比特块,所述66比特块包括2比特同步头以及64比特有效负载,所述64比特有效负载包括8比特块类型信息以及56比特数据;所述介质无关接口信息包括64比特XGMII/XXVGMII接口数据以及8比特XGMII/XXVGMII接口控制信息。
- 一种解码方法,其特征在于,所述方法包括:检测N个待解码码块的类型,N为大于或等于1的整数;根据所述N个待解码码块的类型对所述N个待解码码块进行解码,得到所述N个待解码码块的解码结果;以及,获得所述N个待解码码块中至少一个码块的预测解码方式;从所述至少一个码块中每个码块的预测解码方式中选取一种解码方式;根据所述解码方式更新所述解码结果,得到并输出所述N个待解码码块对应的介质无关接口信息;其中,所述方法还包括以下操作中的至少一项:将所述N个解码码块的类型延迟至少一个时钟周期后输出;将所述预测解码方式以及所述N个待解码码块的解码结果延迟至少一个时钟周期后输出;将从所述至少一个码块中每个码块的预测解码方式中选取的解码方式延迟至少一个时钟周期后输出。
- 如权利要求9所述的方法,其特征在于,所述获得所述N个待解码码块中至少一个码块的预测解码方式,包括:根据第一待解码码块的类型以及所述第一待解码码块的下一个码块的类型,从所述第一待解码码块的预测解码方式中选择一种解码方式,其中,所述第一待解码码块为所述至少一个码块中的任一码块。
- 如权利要求9或10所述的方法,其特征在于,所述根据从所述至少一个码块中每个码块的预测解码方式中选取的解码方式,更新所述解码结果,包括:若所述解码及预测模块对第一待解码码块所使用的解码方式与所述状态判决模块从所述第一待解码码块的预测解码方式中选择的解码方式不同,则根据所述状态判决模块从所述第一待解码码块的预测解码方式中选择的解码方式对所述第一待解码码块的解码结果进行更新;其中,所述第一待解码码块为所述至少一个码块中的任一码块。
- 如权利要求9-11任一项所述的方法,其特征在于,所述根据从所述部分码块中每个码块的预测解码方式中选取一种解码方式,更新所述解码结果,包括:若从第一待解码码块的预测解码方式中选取的解码方式为错误状态下使用的解码方式,则将所述第一待解码码块的解码结果更新为错误码;其中,所述第一待解码码块为所述至少一个码块中的任一码块。
- 如权利要求9-11任一项所述的方法,其特征在于,所述根据从所述部分码块中每个码块的预测解码方式中选取一种解码方式,更新所述解码结果,包括:若从第一待解码码块的预测码块方式中选取的解码方式为低功耗状态下使用的解码方式,则将所述第一待解码码块的解码结果更新为低功耗控制码;其中,所述第一待解码 码块为所述至少一个码块中的任一码块。
- 如权利要求9-13任一项所述的方法,其特征在于,所述待解码码块为物理编码子层PCS解扰后的66比特块,所述66比特块包括2比特同步头以及64比特有效负载,所述64比特有效负载包括8比特块类型信息以及56比特数据;所述介质无关接口信息包括64比特XGMII/XXVGMII接口数据以及8比特XGMII/XXVGMII接口控制信息。
- 一种电子设备,其特征在于,所述电子设备包括:一个或多个处理器;一个或多个存储器;其中,所述一个或多个存储器存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器执行时,使得所述电子设备执行如权利要求9-14任一项所述的方法。
- 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机程序,当计算机程序在电子设备上运行时,使得所述计算机执行如权利要求9-14任一项所述的方法。
- 一种芯片,其特征在于,所述电子设备包括:一个或多个处理器;一个或多个存储器;其中,所述一个或多个存储器存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器执行时,使得所述芯片执行如权利要求9-14任一项所述的方法。
- 一种计算机程序产品,其特征在于,所述计算机程序产品在被计算机调用时,使得所述计算机执行如权利要求9-14任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202180100685.5A CN117693909A (zh) | 2021-07-29 | 2021-07-29 | 一种解码方法及装置 |
EP21951320.7A EP4369638A4 (en) | 2021-07-29 | 2021-07-29 | DECODING METHOD AND APPARATUS |
PCT/CN2021/109382 WO2023004717A1 (zh) | 2021-07-29 | 2021-07-29 | 一种解码方法及装置 |
US18/424,339 US20240171304A1 (en) | 2021-07-29 | 2024-01-26 | Decoding method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2021/109382 WO2023004717A1 (zh) | 2021-07-29 | 2021-07-29 | 一种解码方法及装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US18/424,339 Continuation US20240171304A1 (en) | 2021-07-29 | 2024-01-26 | Decoding method and apparatus |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023004717A1 true WO2023004717A1 (zh) | 2023-02-02 |
Family
ID=85086033
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2021/109382 WO2023004717A1 (zh) | 2021-07-29 | 2021-07-29 | 一种解码方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240171304A1 (zh) |
EP (1) | EP4369638A4 (zh) |
CN (1) | CN117693909A (zh) |
WO (1) | WO2023004717A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2025051207A1 (zh) * | 2023-09-06 | 2025-03-13 | 华为技术有限公司 | 编码方法、装置、系统及芯片 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070098081A1 (en) * | 2005-11-02 | 2007-05-03 | Broadcom Corporation | AVC I_PCM data handling and inverse transform in a video decoder |
CN101547010A (zh) * | 2008-03-24 | 2009-09-30 | 华为技术有限公司 | 编码解码系统、方法及装置 |
CN101610134A (zh) * | 2009-07-10 | 2009-12-23 | 中兴通讯股份有限公司 | 64b/66b编解码装置及实现64b/66b编解码的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5509438B2 (ja) * | 2010-03-03 | 2014-06-04 | 株式会社日立製作所 | データ転送装置及びデータ転送システム |
-
2021
- 2021-07-29 EP EP21951320.7A patent/EP4369638A4/en active Pending
- 2021-07-29 WO PCT/CN2021/109382 patent/WO2023004717A1/zh active Application Filing
- 2021-07-29 CN CN202180100685.5A patent/CN117693909A/zh active Pending
-
2024
- 2024-01-26 US US18/424,339 patent/US20240171304A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070098081A1 (en) * | 2005-11-02 | 2007-05-03 | Broadcom Corporation | AVC I_PCM data handling and inverse transform in a video decoder |
CN101547010A (zh) * | 2008-03-24 | 2009-09-30 | 华为技术有限公司 | 编码解码系统、方法及装置 |
CN101610134A (zh) * | 2009-07-10 | 2009-12-23 | 中兴通讯股份有限公司 | 64b/66b编解码装置及实现64b/66b编解码的方法 |
Non-Patent Citations (1)
Title |
---|
See also references of EP4369638A4 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2025051207A1 (zh) * | 2023-09-06 | 2025-03-13 | 华为技术有限公司 | 编码方法、装置、系统及芯片 |
Also Published As
Publication number | Publication date |
---|---|
CN117693909A (zh) | 2024-03-12 |
EP4369638A1 (en) | 2024-05-15 |
EP4369638A4 (en) | 2024-10-16 |
US20240171304A1 (en) | 2024-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9912442B2 (en) | Techniques to perform forward error correction for an electrical backplane | |
US6088827A (en) | 1000BASE-T packetized trellis coder | |
US20100229067A1 (en) | Cable Interconnection Techniques | |
US7573896B2 (en) | Method and apparatus for generic interface, packet cut-through, overbooking, queue concatenation, and logical identification priority for a system packet interface device | |
WO2021047228A1 (zh) | 一种通信方法、设备及存储介质 | |
WO2023004717A1 (zh) | 一种解码方法及装置 | |
US8145982B2 (en) | Method and system for redundancy-based decoding of voice content in a wireless LAN system | |
US5881074A (en) | 1000base-t packetized trellis coder | |
US9425913B2 (en) | Multi-port serial media independent interface | |
CN114257334A (zh) | 一种数据编码方法、数据解码方法及通信装置 | |
US8145973B2 (en) | Data processing apparatus and method, and program | |
EP2201740B1 (en) | High speed packet processing in a wireless network | |
US8325723B1 (en) | Method and apparatus for dynamic traffic management with packet classification | |
JP2021533656A (ja) | コードブロックストリームの受信方法、コードブロックストリームの送信方法、および通信装置 | |
US6938198B1 (en) | Method and system for accelerating ethernet checksums | |
JP2024546209A (ja) | 符号化方法、復号化方法、装置、機器、システム、および可読記憶媒体 | |
CN112543080B (zh) | 误码率检测的方法和装置 | |
WO2021169184A1 (zh) | 一种线路编码方法及装置 | |
WO2023016265A1 (zh) | 一种数据编码方法、数据译码方法及相关设备 | |
JP7346662B2 (ja) | データ送信方法および転送デバイス | |
US20240373154A1 (en) | Auto negotiation over optics | |
WO2023040466A1 (zh) | 一种编码方法、译码方法以及相关装置 | |
Vidya | FPGA based IP Core for High Performance Ethernet Frames | |
JP2006287655A (ja) | 通信装置 |
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: 21951320 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 202180100685.5 Country of ref document: CN |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2021951320 Country of ref document: EP |
|
ENP | Entry into the national phase |
Ref document number: 2021951320 Country of ref document: EP Effective date: 20240205 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |