CN110519004A - 一种编码方法及相关设备 - Google Patents

一种编码方法及相关设备 Download PDF

Info

Publication number
CN110519004A
CN110519004A CN201810490240.2A CN201810490240A CN110519004A CN 110519004 A CN110519004 A CN 110519004A CN 201810490240 A CN201810490240 A CN 201810490240A CN 110519004 A CN110519004 A CN 110519004A
Authority
CN
China
Prior art keywords
code block
encoded
source code
code
fec
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.)
Granted
Application number
CN201810490240.2A
Other languages
English (en)
Other versions
CN110519004B (zh
Inventor
陆玉春
马林
李亮
李永耀
沈胜宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201810490240.2A priority Critical patent/CN110519004B/zh
Priority to EP19806958.5A priority patent/EP3817253A4/en
Priority to PCT/CN2019/087728 priority patent/WO2019223673A1/zh
Publication of CN110519004A publication Critical patent/CN110519004A/zh
Priority to US17/100,394 priority patent/US11539461B2/en
Application granted granted Critical
Publication of CN110519004B publication Critical patent/CN110519004B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • H04L1/0042Encoding specially adapted to other signal generation operation, e.g. in order to reduce transmit distortions, jitter, or to improve signal shape
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • H04L1/0058Block-coded modulation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0071Use of interleaving
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/20Arrangements for detecting or preventing errors in the information received using signal quality detector
    • H04L1/203Details of error rate determination, e.g. BER, FER or WER

Abstract

本申请实施例公开了一种编码方法及相关设备,包括:接收长度为L的待编码的码块,其中,所述L为正整数;对所述待编码的码块进行编码得到前向纠错码FEC,其中,所述FEC码的有效信息长度K为所述L的最大质因数的整数倍,所述FEC码的总长度N为所述FEC码的纠错能力T的2倍与所述K之和。采用本申请实施例,可以保证FEC码字满足低时延和高增益的要求。

Description

一种编码方法及相关设备
技术领域
本申请涉及网络技术领域,尤其涉及一种编码方法及相关设备。
背景技术
随着信息技术的发展,用户对信息的需求量越来越大,日益增长的信息需求使得互联接口的速率不断提升。例如外部设备互联(Peripheral Component InterconnectExpress,PCIE),一种高速串行计算机扩展总线标准,接口速率从PCIE1.0时代开始,先后经历了2.5GT/s、5GT/s、8GT/s,再到最新发布的PCIE4.0的16GT/s。未来PCIE还将向32GT/s、56GT/s演进,传输速率的越来越高,链路的损耗也越来越大。另外,随着速率及处理能力的提升,中央处理器(Central Processing Unit,CPU)、图形处理器(Graphics ProcessingUnit,GPU)和现场可编程门阵列(Field-Programmable Gate Array,FPGA)等芯片的封装尺寸也变得越来越大,封装损耗也越来越高,且优化困难。在56G时代,即使不考虑主板走线,单纯由两端芯片的封装带来的损耗已经非常接近串行器和解串器(Serializer/Deserializer,SerDes)的驱动能力,因此必然需要引入前向纠错码(Forward ErrorCorrection,FEC)来对链路的损耗进行补偿,进而支持更大的链路损耗。但是,现有的技术方案中的FEC码字无法满足低时延和高增益的要求。
发明内容
本申请实施例提供一种编码方法及相关设备,通过FEC编码得到的FEC码字可以满足低时延和高增益的要求。
第一方面,本申请实施例提供了一种编码方法,包括:
首先接收长度为L的待编码的码块,其中,L为正整数;然后对待编码的码块进行编码得到前向纠错码FEC,其中,FEC码的有效信息长度K为L的最大质因数的整数倍,FEC码的总长度N为FEC码的纠错能力T的2倍与K之和。
实施本申请实施例,可以编码得到低开销的短码,满足低时延的要求,也可以编码得到纠错能力强的长码,满足高增益的要求。因此通过FEC编码得到的FEC码字可以满足低时延和高增益的要求。
在一种可能的设计中,FEC码中每个符号所包含的比特数为M,其中,M为满足(2M-1)>=N的最小偶数。
在另一种可能的设计中,在基于128B/130B编码方式进行编码得到源码块之后,可以通过两条路径向下传输:第一条路径为非转码路径,直接将源码块传输到扰码器进行扰码;第二条路径为转码路径,对源码块进行转码得到待编码的码块,然后再进行扰码。其中,转码路径包括两条子路径,子路径1是128B/132B转码路径,子路径2为256B/257B或256B/258B转码路径。
在另一种可能的设计中,对源码块进行转码得到待编码的码块。
在另一种可能的设计中,转码器可以接收单个编码器输出的单个源码块进行转码,也可以接收多个不同编码器输出的多个源码块进行转码。
在另一种可能的设计中,在单个源码块上添加至少一个比特的同步头信息得到待编码的码块,同步头信息用于指示源码块的数据类型。通过在每帧源码块的前面添加额外至少一个比特的帧头保护,从而有效降低帧头出错的概率。
在另一种可能的设计中,删除多个源码块中每个源码块的同步头数据得到剩余有效信息;将所述多个源码块中的所述剩余有效信息组合生成所述待编码的码块。
在另一种可能的设计中,首先将每个源码块的剩余有效信息划分为两个子码块;然后将多个源码块的两个子码块中的第一个子码块组合生成待编码的码块的前部分,在待编码的码块的前部分的前面添加比特数据;最后,将多个源码块的两个子码块中的第二个子码块组合生成待编码的码块的后部分。
在另一种可能的设计中,当多个源码块全部为数据码块时,在待编码的码块的前部分的前面添加至少一个比特的同步头信息,同步头信息用于指示多个源码块全部为数据码块。
在另一种可能的设计中,当多个源码块包含有控制码块时,在待编码的码块的前部分的前面添加至少一个比特的同步头信息,并在同步头信息后添加多个比特的热码,同步头信息用于指示多个源码块包含有控制码块,热码用于指示每个源码块的数据类型;删除待编码的码块的前部分中第一个控制码块中第一个字节中的多个比特。
在另一种可能的设计中,当多个源码块包含有无效的源码块时,在待编码的码块的前部分的前面添加至少一个比特的同步头信息,并在同步头信息后添加多个比特的热码,热码用于指示多个源码块中包含有至少一个无效的源码块;同时删除待编码的码块的前部分中第一个源码块中第一个字节中的多个比特。
通过以上可选方式,可以实现对128B/130B编码器输出的源码块进行128B/132B转码处理,对128B/130B编码器输出的源码块进行256B/257B转码处理,以及对128B/130B编码器输出的源码块进行256B/258B转码处理,或对其他类型的编码方式进行相应的转码处理。包括如下有益效果:
通过对128B/130B编码器输出的源码块进行128B/132B转码处理,在每帧源码块的前面添加额外至少一个比特的帧头保护,从而有效降低帧头出错的概率。
通过对128B/130B编码器输出的源码块进行256B/257B转码处理,可以将编码开销从1.5625%压缩到0.4%,从而为FEC编码提供了更高的编码开销空间。同时256B/257B转码方式也可以对接以太标准。另外,本实施例中给出的转码后的帧格式,转码操作只针对源码块(130比特码块)中的第一个子码块。对于链路数量大于等于2的应用场景,2个130比特的源码块从两个不同的128B/130B编码器获取。由于在数据传输过程中,首先传输两个130比特的源码块的第一个子码块(64比特),因此转码后的帧格式有利于在第一个时钟周期内完成转码所需的操作,从而有效降低转码带来的时延。
通过对128B/130B编码器输出的源码块进行256B/258B转码处理,可以将编码开销从1.5625%压缩到0.8%,从而为FEC编码提供了更高的编码开销空间。另外,本实施例中给出的转码后的帧格式,转码操作只针对源码块(130比特码块)中的第一个子码块。对于链路数量大于等于2的应用场景,2个130比特的源码块从两个不同的128B/130B编码器获取。由于在数据传输过程中,首先传输两个130比特的源码快的第一个子码块(64比特),因此转码后的帧格式有利于在第一个时钟周期内完成转码所需的操作,从而有效降低转码带来的时延。
在另一种可能的设计中,可以删除多个源码块中每个源码块的同步头数据得到剩余有效信息;将多个源码块中剩余有效信息组合生成一个长码块;在长码块的前面添加比特数据得到待编码的码块。最后删除长码块中第一个控制码块中第一个字节中的多个比特。本申请实施例中的转码帧格式不需要对源码块进行切分,直接以整个130比特的源码块进行转码操作,可以为转码操作提供帧格式参考。
在另一种可能的设计中,当多个源码块全部为数据码块时,在长码块的前面添加至少一个比特的同步头信息,同步头信息用于指示多个源码块全部为数据码块。
在另一种可能的设计中,当多个源码块包含有控制码块时,在长码块的前面添加至少一个比特的同步头信息,并在同步头信息后添加多个比特的热码,同步头信息用于指示多个源码块包含有控制码块,热码用于指示每个源码块的数据类型,同时删除待编码的码块的前部分中第一个控制码块中第一个字节中的多个比特。
在另一种可能的设计中,当多个源码块包含有无效的源码块时,在长码块的前面添加至少一个比特的同步头信息,并在同步头信息后添加多个比特的热码,热码用于指示多个源码块中包含有至少一个无效的源码块,同时删除多个待编码的码块中第一个源码块中第一个字节中的多个比特。
在另一种可能的设计中,首先对源码块进行转码得到待编码的码块,然后按照质因数分解方法进行FEC码字的设计,并对待编码的码块进行编码得到FEC码。
在另一种可能的设计中,基于128B/130B编码方式进行编码得到源码块。
在另一种可能的设计中,在基于128B/130B编码方式进行编码得到源码块之后,可以通过转码方式或非转码方式得到不同的待编码的码块,其中,本申请实施例优选的转码方式包括256B/258B转码方式或128B/132B转码方式。
在另一种可能的设计中,当L=258时,N=192,K=172,T=10,M=8;或N=184,K=172,T=6,M=8;或N=96,K=86,T=5,M=8。
在另一种可能的设计中,当L=132时,N=136,K=132,T=2,M=8;或N=144,K=132,T=6,M=8;或N=152,K=132,T=10,M=8;或N=72,K=66,T=3,M=8。
在另一种可能的设计中,当L=130时,N=136,K=130,T=3,M=8;或N=144,K=130,T=7,M=8;或N=152,K=130,T=11,M=8。
在另一种可能的设计中,对于长距离、损耗高、时延要求低的应用场景,可以优先选择RS(272,258,T=7)或RS(544,514,T=15)等长码。而对于短距离、损耗低、时延要求高的应用场景,可以优先选择RS(144,132,T=6)、RS(144,130,T=7)、RS(192,172,T=10)或RS(72,66,T=3)等短码。
在另一种可能的设计中,将FEC码分发到多条物理层链路上进行发送。
在另一种可能的设计中,可以将FEC码以符号为单位依次分发到多条物理层链路中,每条链路依次分发一个符号,当所有物理层链路都分发一个符号后,重新开始新一轮分发。其中,每条物理层链路中分发的FEC码的符号数为FEC码的码字总符号数与多条物理层链路的数量的比值。该方式应用于将一个FEC编码器输出单个FEC码字分发到不同的物理层链路的应用场景,为多链路传输场景提供数据分发方案。
另一种可能的设计中,可以将多个FEC码以符号为单位交织处理并映射到变速箱中,其中,变速箱的列数为多条物理层链路的条数。然后将变速箱中的FEC码依次分发到多条物理层链路中。该方式应用于将多个FEC编码器输出多个FEC码字分发到不同的物理层链路的应用场景,为多链路传输场景提供数据分发方案。
在另一种可能的设计中,可以在对待编码的码块进行编码得到FEC码之后,在FEC码中添加多个比特的空比特。通过添加空比特,可以使FEC码中符号数量与物理层链路的数量相匹配,这样可以使得向多条物理层链路分发FEC码的过程中简化变速箱的设计,起到优化作用。
第二方面,本申请实施例提供了一种编码装置,该编码装置被配置为实现上述第一方面中FEC编码器所执行的方法和功能,由硬件/软件实现,其硬件/软件包括与上述功能相应的单元。
第三方面,本申请提供了一种编码设备,包括:处理器、存储器和通信总线,其中,通信总线用于实现处理器和存储器之间连接通信,处理器执行存储器中存储的程序用于实现上述第一方面提供的一种编码处理方法中的步骤。
在一个可能的设计中,本申请提供的编码设备可以包含用于执行上述方法设计中编码装置行为相对应的模块。模块可以是软件和/或是硬件。
第四方面,本申请提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面的方法。
第五方面,本申请提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面的方法。
附图说明
图1是本申请实施例提供的一种CCIX标准系统的架构示意图;
图2是本申请实施例提供了一种400GE以太网标准的结构示意图;
图3本申请实施例提供了一种物理层编码架构的结构示意图;
图4是本申请实施例提供的一种高速接口物理层编码系统的结构示意图;
图5是申请实施例提供的一种FEC编码方法的流程示意图;
图6是本申请实施例提供的一种编码方法的流程示意图;
图7是本申请实施例提供的一种1帧130比特的源码块转码的示意图;
图8是本申请实施例提供的一种130比特的源码块与257比特的待编码的码块的映射关系示意图;
图9是本申请实施例提供的一种2帧130比特的源码块转码的示意图;
图10是本申请实施例提供的一种130比特的源码块与258比特的待编码的码块的映射关系示意图;
图11是本申请实施例提供的另一种2帧130比特的源码块转码的示意图;
图12是本申请实施例提供的又一种2帧130比特的源码块转码的示意图;
图13是本申请实施例提供的又一种2帧130比特的源码块转码的示意图;
图14是本申请实施例提供的一种FEC码分发的示意图;
图15是本申请实施例提供的另一种FEC码分发的示意图;
图16是本申请实施例提供的又一种FEC码分发的示意图;
图17是本申请实施例提供的又一种FEC码分发的示意图;
图18是本申请实施例提供的一种编码装置的结构示意图;
图19是本申请实施例提供的一种编码设备的结构示意图。
具体实施方式
下面结合本申请实施例中的附图对本申请实施例进行描述。
请参见图1,图1是本申请实施例提供的一种加速器缓存一致性互联(CacheCoherent Interconnect for Accelerators,CCIX)标准系统的架构示意图,该CCIX标准系统为依附于PCIE架构的一种互联方式。在该CCIX标准系统中,从上至下依次包括应用层及以上各层、CCIX协议层、CCIX链路层、CCIX传输层、PCIE传输层、PCIE数据链路层和CCIX物理层,其中,CCIX物理层包含逻辑子层(Logical Sub-Block)和电子子层(Electrical Sub-Block)两个子层。
对于PCIE、CCIX架构,当接口速率提升时,存在链路损耗的问题,针对PCIE、CCIX的应用场景,互联距离本身较短,系统对时延的要求较高。在提升接口速率并引入FEC之后,若FEC的时延较高,则在相同时间内可传输的数据总量增长有限。因此对引入FEC后的FEC本身的时延提出了较高要求。在现有技术方案中,提供了如下FEC的设计方案。
请参考图2,图2是本申请实施例提供了一种400GE以太网标准的结构示意图。该示意图的右侧部分为物理层中的物理编码子层(Physical Coding Sublayer,PCS)对应的详细框图。该标准方案中在物理层中首先采用64B/66B编码方式进行编码,然后采用256B/257B转码方式进行转码。在该转码方案的基础上,提供了基于257比特码块长度设计的FEC码字KP4-RS(544,514)。其中,RS为里德所罗门(Reed-Solomon)码字。但是,在400GE以太网接口标准中使用的RS(544,514)码字的解码时延达到百纳秒左右,时延较大,不适合应用于时延要求较高的应用场景。
请参考图3,图3本申请实施例提供了一种物理层编码架构的结构示意图。该物理层编码架构为串行小型计算机系统接口(Serial Attached SCSI 4,SAS-4)标准对应的物理层编码架构。链路速率可以达到22.5Gbps,在物理层引入FEC进行链路损耗补偿。该SAS标准首先采用8B/10B编码方式进行编码,然后采用128B/130B编码方式再进行编码,最后进行FEC编码。在FEC码字选择上,SAS-4选择与130比特码块长度相对应的RS(30,26)。虽然SAS-4采用的128B/130B的编码方式与CCIX、PCIE3.0及以上标准相同,但是SAS-4所选FEC码字的净编码增益(Net Coding Gain,NCG)只有3.46dB,远低于KP4-RS(544,514)的增益水平,因此该FEC码字无法应用到链路损耗较大的应用场景。
综上所述,现有的CCIX、PCIE架构中没有FEC,随着CCIX、PCIE速率提升(比如56Gbps或更高速率),链路损耗增大,需要引入FEC进行增益补偿。CCIX、PCIE为时延高敏感性型系统,引入FEC后对FEC的解码时延提出较高的要求,另外CCIX、PCIE提升接口速率引入FEC后,对FEC的增益要求接近KP4,现有的技术方案中的FEC码字不能同时满足低时延和高增益的要求。针对上述技术问题,本申请实施例提供了如下解决方案。
如图4所示,图4是本申请实施例提供的一种高速接口物理层编码系统的结构示意图。本申请的主要应用场景是CCIX及PCIE,图4是该场景下的整体系统的架构示意图,其中左侧为CCIX/PCIE的整体架构,该架构中包括应用层及以上各层、CCIX协议层、CCIX链路层、CCIX传输层、PCIE传输层、PCIE数据链路层和CCIX物理层。其中,物理层包含逻辑子层和电子子层两个子层。本申请实施例是针对该架构中的物理层中的逻辑子层部分提出的编码方法。右侧为在逻辑子层部分中高速接口物理层编码方法的示意图。在发送侧,从上至下主要包括:编码、转码、扰码、FEC编码和发送等步骤。而在接收侧,从下至上主要包括接收、FEC解码、解扰码、反转码和链路重排序等步骤。由于发送侧和接收侧原理相同,本申请实施例仅以发送侧的编码方法进行描述。
针对上述系统中FEC编码,本申请实施例提供了一种FEC编码方法,如图5所示,图5是申请实施例提供的一种FEC编码方法的流程示意图。包括:
S501,接收长度为L的待编码的码块,所述L为正整数。其中,L的单位为比特,接收到待编码的码块的个数可以为1个或多个,多个可以为整数个或非整数个,待编码的码块的的个数可以由编码得到的FEC码的有效信息长度确定。例如,当待编码的码块为256B/258B的码块时,L=258比特,当待编码的码块为128B/132B的码块时,L=132比特。
S502,对所述待编码的码块进行编码得到前向纠错码FEC,其中,所述FEC码的有效信息长度K为所述L的最大质因数的整数倍,所述FEC码的总长度N为所述FEC码的纠错能力T的2倍与所述K之和。所述FEC码中每个符号所包含的比特数M由所述N确定,其中,M可以为满足(2M-1)>=N的正整数。可选的,M也可以为满足(2M-1)>=N的最小偶数。FEC码字以符号为单位,K为FEC码的有效信息长度,N为FEC码的总长度,即N表示经过FEC编码器后输出的符号总数,T表示FEC码能纠错的符号数,M为每个符号中包含的比特数。以里德所罗门(Reed-Solomon,RS)码为例,其表示方式为RS(N,K,T,M),例如RS(N,K,T,M)为RS(544,514,15,10),该FEC码的总长度N为544个符号,有效信息长度K为514个符号,纠错能力T为15个符号,每个符号中所包含的比特数为10。本申请实施例中的FEC码也可以称为FEC码字。
实施本申请实施例,可以编码得到低开销的短码,满足低时延的要求,也可以编码得到纠错能力强的长码,满足高增益的要求。因此通过FEC编码得到的FEC码字可以满足低时延和高增益的要求。
例如,针对128B/130B编码方案,FEC编码器接收到长度L=130比特的待编码的码块,将130进行质因数分解,130=13*5*2。以其中最大的质因数P=13为基,对FEC码中的有效信息长度K进行设计,选取K为P的整数倍,即K=a*13,其中a=1、2、3……,纠错能力T=1、2、3……。FEC码的总长度N=K+2T。在FEC码中,M可以由N确定,M可以为满足(2M-1)>=N条件的最小偶数,例如6、8、10、……,以RS(144,130,T=7)为例,M优选值为8。
需要说明的是,本申请实施例结合128B/130B编码方案,提供了相应的FEC码字设计方法,为CCIX和PCIE提供了在128B/130B编码场景下的码字选择。根据质因数分解方法,对编码后的码块长度130进行质因数分解,利用最大的质因数为基进行码字设计,可以简化FEC收帧过程中的变速箱(Gearbox)设计。
请参考图6,图6是本申请实施例提供的一种编码方法的流程示意图。本申请实施例是结合上述实施例中FEC编码,对物理层编码进行整体描述,该物理层编码是示例性的,该编码方法也可以用在其它地方,本申请实施例中的编码方法至少包括如下步骤:
S601,基于128B/130B编码方式进行编码得到所述源码块。
具体实现中,如图4所示,在物理层包括编码器#0、编码器#1、……、编码器#P等多个不同的128/130编码器,物理层首先接收数据链路层(Data Link Layer,DLL)下发的数据,将接收到的数据按照字节(每个字节包括8比特)为一组,每次分发到不同的编码器中。例如,从DLL层依次接收到字节0、字节1、字节2、字节3、……等等,在进行链路分发时,将接收到的字节依次分发到不同的链路上去,每条链路对应一个编码器,字节0—>链路0(对应编码器#0),因此字节0分发到编码器#0。字节1—>链路1(对应编码器#1),因此字节1分发到编码器#1。当每条链路接到128比特信息后,添加2比特同步头信息,生成130比特的码块。其中,不同的编码器可以输出不同的源码块。本申请实施例所涉及的编码器主要基于128B/130B编码方式进行编码,也可以采用其他编码方式进行编码。
需要说明的是,在基于128B/130B编码方式进行编码得到所述源码块之后,可以通过两条路径向下传输:第一条路径为非转码路径(No Transcode,NTC),跳转到S603,直接将源码块传输到扰码器进行扰码;第二条路径为转码路径(Transcode,TC),跳转到S602,对源码块进行转码得到待编码的码块,然后再进行扰码。其中,转码路径包括两条子路径,子路径1是对单个源码块进行转码,子路径2是对多个源码块进行转码。例如,子路径1从单个128B/130B编码器接收到1帧130比特的源码块,经过128B/132B转码器生成132比特的待编码的码块。子路径2从不同的128B/130B编码器接收到2帧130比特的源码块,输入到256B/257B或256B/258B转码器中,生成一个257比特或258比特的待编码的码块。
S602,对源码块进行转码得到所述待编码的码块。
具体实现中,转码器可以接收单个编码器输出的单个源码块进行转码,也可以接收多个不同编码器输出的多个源码块进行转码。转码方式包括以下几种可选方式:
第一种可选方式,可以在单个源码块上添加至少一个比特的同步头信息得到所述待编码的码块,所述同步头信息用于指示所述源码块的数据类型。通过在每帧源码块的前面添加额外至少一个比特的帧头保护,从而有效降低帧头出错的概率。
例如,如图7所示,图7是本申请实施例提供的一种1帧130比特的源码块转码的示意图。从单个128B/130B编码器接收1帧130比特的源码块,对该源码块进行128B/132B转码操作。首先保留130比特的源码块的格式,然后在130比特的源码块的基础上,在前面添加2比特的同步头信息,例如H0H1表示2比特的同步头信息,其中,比特H0为最低有效位(LeastSignificant Bit,LSB),比特H1为最高有效位(Most Significant Bit,MSB)。然后转码为132比特的待编码的码块。其中,当接收到的源码块的数据类型为数据码块(Data Block)时,添加2比特同步头信息,如H0H1=01;当接收到的源码块的数据类型为控制码块(OrderedSet Block)时,添加的2比特同步头信息,如H0H1=10;当接收到的源码块的数据类型为无效同步头(Invalid Header)时,添加的2比特同步头信息,如H0H1=00。其中,添加的同步头信息与源码块自身的同步头数据可以相同。
第二种可选的方式,可以首先删除多个源码块中每个源码块的同步头数据得到剩余有效信息,将所述多个源码块中的所述剩余有效信息组合生成所述待编码的码块,其中,剩余有效信息为除去同步头数据后的码块。进一步的,可以将所述每个源码块的所述剩余有效信息划分为两个子码块;然后将所述多个源码块的所述两个子码块中的第一个子码块组合生成所述待编码的码块的前部分,在所述待编码的码块的前部分的前面添加比特数据,该比特数据可以包括同步头信息或热码。其中,当所述多个源码块全部为数据码块时,在所述待编码的码块的前部分的所述前面添加至少一个比特的同步头信息,所述同步头信息用于指示所述多个源码块全部为数据码块。当所述多个源码块包含有控制码块时,在所述待编码的码块的前部分的所述前面添加至少一个比特的同步头信息,并在所述同步头信息后添加多个比特的热码,所述同步头信息用于指示所述多个源码块包含有所述控制码块,所述热码用于指示所述每个源码块的数据类型;删除所述待编码的码块的前部分中第一个所述控制码块中第一个字节中的多个比特。最后,将所述多个源码块的所述两个子码块中的第二个子码块组合生成所述待编码的码块的后部分。
需要说明的是,可以将每个源码块中的剩余有效信息划分为X个子码块,X可以为3、4、5等正整数。然后将第1个源码块中的第1个子码块、第2个源码块的第1个子码块、……、以及第Y个源码块中的第1个子码块组合生成待编码的码块的第一个部分;将第1个源码块中的第2个子码块、第2个源码块的第2个子码块、……、以及第Y个源码块中的第2个子码块组合生成待编码的码块的第二个部分;将第1个源码块中的第3个子码块、第2个源码块的第3个子码块、……、以及第Y个源码块中的第3个子码块组合生成待编码的码块的第三个部分等等,其他按照上述相同的方法进行转码,Y为正整数。
例如,如图8所示,图8是本申请实施例提供的一种130比特的源码块与257比特的待编码的码块的映射关系示意图。对于存在多个128B/130B编码器的系统来说,可以从两个不同的128B/130B编码器接收2帧130比特的源码块,对该2帧130比特的源码块进行256B/257B转码操作,进而得到257比特待编码的码块。
又如图9所示,图9是本申请实施例提供的一种2帧130比特的源码块转码的示意图。从两个不同的128B/130B编码器中接收源码块,假设数据传输的位宽为64比特,删除130比特源码块中的2比特同步头数据,剩余有效信息的长度为128比特,将其分成两个64比特的子码块。如图9中的(All Data Block)所示,第一帧源码块D0划分为D00和D01,第二帧源码块D1划分为D10和D11,将第一帧源码块D0中的第一个子码块D00和第二帧源码块D1中的第一个子码块D10组合生成待编码的码块的前部分(D00和D10),由于接收到的2帧数据全部为数据码块(Data Block),可以在待编码的码块的前部分的前面添加1个比特的同步头信息(如1),同时将第一帧源码块D0中的第一个子码块D01和第二帧源码块D1中的第一个子码块D11组合生成待编码的码块的后部分(D01和D11),最后组合生成257比特的待编码的码块。又如图9中(Ordered Set Block+Data Block)所示,第一帧源码块为控制码块,第二帧源码块为数据码块,第一帧源码块O0划分为O00和O01,第二帧源码块D1划分为D10和D11,将第一帧源码块O0中的第一个子码块O00和第二帧源码块D1中的第一个子码块D10组合生成待编码的码块的前部分(O00和D10),由于接收到的2帧数据包括控制码块和数据码块,可以在待编码的码块的前部分的前面添加1个比特的同步头信息(如0),同时在同步头信息后面添加2比特的热码(如01),用于标记接收到的2帧数据的数据类型,其中,0表示控制码块,1表示数据码块。并且,相应地删除待编码的码块的前部分中第一个控制码块中的第一个字节中的两个比特,其中,该第一个字节用于指示控制码块的类型,该删除的两个比特可以为第一个控制码块中第一个字节中最高位的两个比特,也可以为第一个控制码块中第一个字节中最低位的两个比特。另外,将第一帧源码块O0中的第一个子码块O01和第二帧源码块D1中的第一个子码块D11组合生成待编码的码块的后部分(O01和D11),最后生成257比特的待编码的码块。其他含有控制码块类型的组合相类似,此处不再赘述。如果某个源码块中包含有无效的同步头信息(如00),此源码块为无效的源码块。如图9中(Invalid Header+DataBlock)所示,第一帧源码块为无效的源码块,第二帧源码块为数据码块,第一帧源码块O0划分为O00和O01,第二帧源码块D1划分为D10和D11,将第一帧源码块O0中的第一个子码块O00和第二帧源码块D1中的第一个子码块D10组合生成待编码的码块的前部分(O00和D10),由于接收到的2帧数据包括有无效的源码块,可以在待编码的码块的前部分的前面添加1个比特的同步头信息(如0),同时在同步头信息后面添加2比特的热码(如11),用于标记接收到的2帧源码块中含有无效的源码块。相应地,可以删除待编码的码块的前部分中第一个源码块中的第一个字节中的两个比特,其中,该删除的两个比特可以为第一个源码块中第一个字节中最高位的两个比特,也可以为第一个源码块中第一个字节中最低位的两个比特。另外,将第一帧源码块O0中的第一个子码块O01和第二帧源码块D1中的第一个子码块D11组合生成待编码的码块的后部分(O01和D11),最后生成257比特的待编码的码块。
需要说明的是,通过对128B/130B编码器输出的源码块进行256B/257B转码处理,将编码开销从1.5625%压缩到0.4%,从而为FEC编码提供了更高的编码开销空间。同时256B/257B转码方式也可以对接以太标准。另外,本实施例中给出的转码后的帧格式,转码操作只针对源码块(130比特码块)中的第一个子码块。对于链路数量大于等于2的应用场景,2个130比特的源码块从两个不同的128B/130B编码器获取。由于在数据传输过程中,首先传输两个130比特的源码块的第一个子码块(64比特),因此转码后的帧格式有利于在第一个时钟周期内完成转码所需的操作,从而有效降低转码带来的时延。
例如,如图10所示,图10是本申请实施例提供的一种130比特的源码块与258比特的待编码的码块的映射关系示意图。对于存在多个128B/130B编码器的系统来说,可以从两个不同的128B/130B编码器接收2帧130比特的源码块,对该2帧130比特的源码块进行256B/258B转码操作,进而得到258比特待编码的码块。
又如图11所示,图11是本申请实施例提供的一种2帧130比特的源码块转码的示意图。从两个不同的128B/130B编码器中接收源码块,假设数据传输的位宽为64比特,删除130比特源码块中的2比特同步头数据,剩余有效信息的长度为128比特,将其分成两个64比特的子码块。如图11中的(All Data Block)所示,第一帧源码块D0划分为D00和D01,第二帧源码块D1划分为D10和D11,将第一帧源码块D0中的第一个子码块D00和第二帧源码块D1中的第一个子码块D10组合生成待编码的码块的前部分(D00和D10),由于接收到的2帧数据全部为数据码块(Data Block),可以在待编码的码块的前部分的前面添加2个比特的同步头信息(如01),同时将第一帧源码块D0中的第一个子码块D01和第二帧源码块D1中的第一个子码块D11组合生成待编码的码块的后部分(D01和D11),最后生成258比特的待编码的码块。又如图11中(Ordered Set Block+Data Block)所示,第一帧源码块为控制码块,第二帧源码块为数据码块,第一帧源码块O0划分为O00和O01,第二帧源码块D1划分为D10和D11,将第一帧源码块O0中的第一个子码块O00和第二帧源码块D1中的第一个子码块D10组合生成待编码的码块的前部分(O00和D10),由于接收到的2帧数据包括控制码块和数据码块,可以在待编码的码块的前部分的前面添加2个比特的同步头信息(如10),同时在同步头信息后面添加2比特的热码(如01),用于标记接收到的2帧数据的数据类型,其中,0表示控制码块,1表示数据码块。相应地,可以删除待编码的码块的前部分中第一个控制码块中的第一个字节中的两个比特,其中,该第一个字节用于指示控制码块的类型,该删除的两个比特可以为第一个控制码块中第一个字节中最高位的两个比特,也可以为第一个控制码块中第一个字节中最低位的两个比特。另外,将第一帧源码块O0中的第一个子码块O01和第二帧源码块D1中的第一个子码块D11组合生成待编码的码块的后部分(O01和D11),最后生成258比特的待编码的码块。其他含有控制码块类型的组合相类似,此处不再赘述。如果某个源码块中包含有无效的同步头信息(如00),此源码块为无效的源码块,如图11中(Invalid Header+DataBlock)所示,第一帧源码块为无效的源码块,第二帧源码块为数据码块,第一帧源码块O0划分为O00和O01,第二帧源码块D1划分为D10和D11,将第一帧源码块O0中的第一个子码块O00和第二帧源码块D1中的第一个子码块D10组合生成待编码的码块的前部分(O00和D10),由于接收到的2帧数据包括有无效的源码块,可以在待编码的码块的前部分的前面添加2个比特的同步头信息(如10),同时在同步头信息后面添加2比特的热码(如11),用于标记接收到的2帧源码块中含有无效的源码块。相应地,可以删除待编码的码块的前部分中第一个源码块中的第一个字节中的两个比特,其中,该删除的两个比特可以为第一个源码块中第一个字节中最高位的两个比特,也可以为第一个源码块中第一个字节中最低位的两个比特。另外,将第一帧源码块O0中的第一个子码块O01和第二帧源码块D1中的第一个子码块D11组合生成待编码的码块的后部分(O01和D11),最后生成258比特的待编码的码块。
需要说明的是,通过对128B/130B编码器输出的源码块进行256B/258B转码处理,将编码开销从1.5625%压缩到0.8%,从而为FEC编码提供了更高的编码开销空间。另外,本实施例中给出的转码后的帧格式,转码操作只针对源码块(130比特码块)中的第一个子码块。对于链路数量大于等于2的应用场景,2个130比特的源码块从两个不同的128B/130B编码器获取。由于在数据传输过程中,首先传输两个130比特的源码快的第一个子码块(64比特),因此转码后的帧格式有利于在第一个时钟周期内完成转码所需的操作,从而有效降低转码带来的时延。
第三种可选的方式,可以首先删除多个源码块中每个源码块的同步头数据得到剩余有效信息;其次将所述多个源码块中所述剩余有效信息组合生成一个长码块;然后,在所述长码块的前面添加比特数据得到所述待编码的码块,该比特数据可以包括同步头信息或热码。其中,当所述多个源码块全部为数据码块时,在所述长码块的所述前面添加至少一个比特的同步头信息,所述同步头信息用于指示所述多个源码块全部为数据码块。当所述多个源码块包含有控制码块时,在所述长码块的前面添加至少一个比特的同步头信息,并在所述同步头信息后添加多个比特的热码,所述同步头信息用于指示所述多个源码块包含有所述控制码块,所述热码用于指示所述每个源码块的数据类型;最后,删除所述长码块中第一个所述控制码块中第一个字节中的多个比特。
如图12所示,图12是本申请实施例提供的另一种2帧130比特的源码块转码的示意图。首先从两个不同的128B/130B编码器接收2帧130比特的源码块,删除每帧130比特的源码块中的同步头数据,每帧包括2个比特同步头数据,删除后得到2帧128比特的剩余有效信息。然后将128比特的剩余有效信息组成一个256比特的长码块。如图12中的(All DataBlock)所示,删除源码块D_0和D_1中的同步头数据01,将源码块D_0和D_1中剩余有效信息组合生成一个长码块,并且在该长码块的前面添加1比特的同步头信息(如1),表示2帧源码块全部为数据码块,最后生成257比特的待编码的码块。又如图12中(Ordered Set Block+Data Block)所示,删除源码块O_0同步头数据10和D_1中的同步头数据01,将源码块O_0和D_1中剩余有效信息组合生成一个长码块,并且在该长码块的前面添加1比特的同步头信息(如0),表示2帧源码块包含有控制码块。同时在同步头信息后面添加2比特的热码(如01),用于标记接收到的2帧数据的数据类型,其中,0表示控制码块,1表示数据码块。并且,删除长码块中第一个控制码块中的第一个字节中的两个比特,其中,该第一个字节用于指示控制码块的类型,该删除的两个比特可以为第一个控制码块中第一个字节中最高位的两个比特,也可以为第一个控制码块中第一个字节中最低位的两个比特。最后生成257比特的待编码的码块。其他含有控制码块类型的组合相类似,此处不再赘述。如果某个源码块中包含有无效的同步头信息时(如00),此源码块为无效的源码块。如图12中(Invalid Header+DataBlock)所示,第一帧源码块为无效的源码块,第二帧源码块为数据码块,删除源码块O_0中无效的同步头数据00和D_1中的同步头数据01,将源码块O_0和D_1中剩余有效信息组合生成一个长码块,由于接收到的2帧源码块中含有无效的源码块,可以在该长码块的前面添加1比特的同步头信息(如0),同时在同步头信息后面添加2比特的热码(如11),用于标记接收到的2帧数据中含有无效的源码块。并且,删除长码块中第一个源码块中的第一个字节中的两个比特,该删除的两个比特可以为第一个源码块中第一个字节中最高位的两个比特,也可以为第一个源码块中第一个字节中最低位的两个比特。最后生成257比特的待编码的码块。
如图13所示,图13是本申请实施例提供的又一种2帧130比特的源码块转码的示意图。首先从两个不同的128B/130B编码器接收2帧130比特的源码块,删除每帧130比特的源码块中的同步头数据,每帧包括2个比特同步头数据,删除后得到2帧128比特的剩余有效信息。然后将128比特的剩余有效信息组成一个256比特的长码块。如图13中的(All DataBlock)所示,删除源码块D_0和D_1中的同步头数据01,将源码块D_0和D_1中剩余有效信息组合生成一个长码块,并且在该长码块的前面添加2比特的同步头信息(如01),表示2帧源码块全部为数据码块,最后生成258比特的待编码的码块。又如图13中(Ordered Set Block+Data Block)所示,删除源码块O_0同步头数据10和D_1中的同步头数据01,将源码块O_0和D_1中剩余有效信息组合生成一个长码块,并且在该长码块的前面添加2比特的同步头信息(如10),表示2帧源码块包含有控制码块。同时在同步头信息后面添加2比特的热码(如01),用于标记接收到的2帧数据的数据类型,其中,0表示控制码块,1表示数据码块。并且,删除长码块中第一个控制码块中的第一个字节中的两个比特,其中,该第一个字节用于指示控制码块的类型,该删除的两个比特可以为第一个控制码块中第一个字节中最高位的两个比特,也可以为第一个控制码块中第一个字节中最低位的两个比特。最后生成258比特的待编码的码块。其他含有控制码块类型的组合相类似,此处不再赘述。如果某个源码块中包含有无效的同步头信息时(如00),此源码块为无效的源码块。如图13中(Invalid Header+DataBlock)所示,第一帧源码块为无效的源码块,第二帧源码块为数据码块,删除源码块O_0中无效的同步头数据00和D_1中的同步头数据01,将源码块O_0和D_1中剩余有效信息组合生成一个长码块,由于接收到的2帧源码块中含有无效的源码块,可以在该长码块的前面添加2比特的同步头信息(如10),同时在同步头信息后面添加2比特的热码(如11),用于标记接收到的2帧数据中含有无效的源码块。并且,删除长码块中第一个源码块中的第一个字节中的两个比特,该删除的两个比特可以为第一个源码块中第一个字节中最高位的两个比特,也可以为第一个源码块中第一个字节中最低位的两个比特。最后生成258比特的待编码的码块。
需要说明的是,相对于前一实施例的转码方式,本申请实施例中的转码帧格式不需要对源码块进行切分,直接以整个130比特的源码块进行转码操作,可以为转码操作提供帧格式参考。
需要说明的是,本申请实施例中的以上转码方法可以作为独立方法来实施,例如,通过256B/258B转码方式进行转码得到258比特的码块,或者通过128B/132B转码方式进行转码得到132比特的码块。
S603,对所述待编码的码块进行扰码。
S604,对所述待编码的码块进行编码得到前向纠错码FEC。
具体实现中,可以首先对源码块进行转码得到待编码的码块,然后按照质因数分解方法进行FEC码字的设计,并对待编码的码块进行编码得到FEC码。其中,质因数分解方法可以参考上一实施例中图5所涉及的步骤,本步骤不再赘述。
需要说明的是,在基于128B/130B编码方式进行编码得到源码块之后,可以通过转码方式或非转码方式得到不同的待编码的码块,其中,本申请实施例优选的转码方式包括256B/258B转码方式或128B/132B转码方式。在对不同的待编码的码块进行编码之后,可以得到不同的码字,本申请实施例优选的码字包括:当通过所述256B/258B转码方式对所述源码块进行转码得到待编码的码块时,通过编码得到的FEC码的码字包括:N=192,K=172,T=10,M=8;或N=184,K=172,T=6,M=8;或N=96,K=86,T=5,M=8。当通过所述128B/132B转码方式对所述源码块进行转码时,通过编码得到的FEC码的码字包括:N=136,K=132,T=2,M=8;或N=144,K=132,T=6,M=8;或N=152,K=132,T=10,M=8;或N=72,K=66,T=3,M=8。当待编码的码块为130比特的码块时,通过编码得到的FEC码的码字包括:N=136,K=130,T=3,M=8;或N=144,K=130,T=7,M=8;或N=152,K=130,T=11,M=8。可以理解的是,上述码字是示例性的,还可以编码得到其它码字,此处不做限定。
另外,对于长距离、损耗高、时延要求低的应用场景,可以优先选择RS(272,258,T=7)或RS(544,514,T=15)等长码。而对于短距离、损耗低、时延要求高的应用场景,可以优先选择RS(144,132,T=6)、RS(144,130,T=7)、RS(192,172,T=10)或RS(72,66,T=3)等短码。
S605,将所述FEC码分发到多条物理层链路上进行发送。
具体实现中,可以将FEC码以符号为单位依次分发到多条物理层链路中,每条链路依次分发一个符号,当所有物理层链路都分发一个符号后,重新开始新一轮分发。例如,对于x16链路,符号0分发到链路0中,符号1分发到链路1中,符号2分发到链路2中,依次类推,符号15分发到链路15中。此时所有物理层链路完成一次分发,然后开始新一轮FEC码分发,即符号16分发到链路0中,符号17分发到链路1中,依次类推。其中,每条物理层链路中分发的FEC码的符号总数为FEC码的码字总符号数与多条物理层链路的数量的比值。该方式应用于将一个FEC编码器输出单个FEC码字分发到不同的物理层链路的应用场景,为多链路传输场景提供数据分发方案。
例如,如图14所示,图14是本申请实施例提供的一种FEC码分发的示意图。对于RS(144,130,M=8),x16条物理层链路,FEC码的码字总符号数为144。按照x16物理层链路,每条物理层链路每次发送一个符号(M=8比特),16条链路每次发送16符号。此处以二维数组的形式对FEC码在多条物理层链路中的分发映射进行说明,该二维数组在实际系统中不存在。将FEC码按照每行16个符号的形式映射到二维数组中,生成一个9*16的二维数组。其中,二维数组的行数为FEC码的码字总符号数与多条物理层链路的条数的比值,即144/16=9。然后将二维数组中的FEC码按照列分发到16条物理层链路中,二维数组共16列,每列对应一条物理层链路,进而完成FEC码映射到物理层链路中。对于x8物理层链路,可以将FEC映射到18*8的二维数组中,每行8个符号,然后将二维数组中的FEC码映射到8条物理层链路中。对于x4、x2、x1链路的映射关系可以按照相同规律进行类推。
例如,如图15所示,图15是本申请实施例提供的另一种FEC码分发的示意图。对于RS(192,172,M=8),x16条物理层链路。该FEC码共有192个符号,,可以将FEC映射到16条物理层链路上进行发送,192/16=12,因此无需设计变速箱即可完成FEC码映射到16条物理层链路中。对于x8、x4、x2、x1物理层链路,映射规则可依次类推。
又如图16所示,图16是本申请实施例提供的又一种FEC码分发的示意图。对于RS(192,172,M=8),其中,FEC码的有效信息长度为172*8=1376比特。以256B/258B转码方式为例,在进行FEC编码时,需要从258比特的源码块中收集有效信息比特。由于因此需要收集个258比特的源码块组成RS(192,172,M=8)编码所需的信息比特数,也就是收集个258比特的源码块进行编码到3个RS(192,172,M=8)的FEC码字中,从而实现FEC码字与源码块的对齐。图16仅给出了3个RS(192,172,M=8)码字中第一个FEC码字与物理层链路的映射关系。对于x8、x4、x2、x1物理层链路,映射规则可依次类推。
可选的,可以将多个FEC码以符号为单位交织处理并映射到变速箱中,其中,变速箱的列数为多条物理层链路的条数。然后将变速箱中的FEC码依次分发到不同的物理层链路中。该方式应用于将多个FEC编码器输出多个FEC码分发到不同的物理层链路的应用场景,为多链路传输场景提供数据分发方案。
在本申请实施例中,以二维数组的形式对多个FEC码在多条物理层链路的映射关系进行说明,该二维数组在实际系统中不存在。可以将FEC码映射到一个二维数组中,其中,二维数组的列数为多条物理层链路的条数与多个FEC码的数量的比值,二维数组的行数为FEC码的码字总符号数与二维数组的列数的比值;然后将多个二维数组中的FEC码进行交织处理并映射到变速箱中,变速箱的列数为多条物理层链路的条数,变速箱的行数为二维数组的行数;最后按照列将变速箱中的FEC码映射到多条物理层链路上进行发送。
例如,如图16所示,图16是本申请实施例提供的又一种FEC码分发的示意图。对于RS(72,66,M=8),x16物理层链路。首先将待编码的码块分发到两个FEC编码器中,经过两个FEC编码器进行编码得到的FEC码向下交织分发到16条物理层链路上。其中,FEC码的总长度为72个符号,每个FEC符号包含M个比特(此处M=8)。按照x16物理层链路,每条物理层链路每次发送一个符号,16条物理层链路每次发送16个符号。由于72/16=4.5非整数,因此单个FEC码无法完全映射到16条物理层链路中,在这种场景下,需要根据FEC码的总长度和物理层链路的数量的比值设计变速箱(Gearbox)。本申请实施例中,72/16=4.5,小数部分为0.5(1/0.5=2),为了实现FEC码与传输链路的匹配,需要设计一个1:2的变速箱来对应两个FEC编码器。首先将两个FEC编码器中的数据按照每行8个符号(每行的符号数量为链路数量除以FEC编码器的数量)、共9行的方式映射到两个二维数组中,然后将这两个二维数组中的FEC码进行交织处理并映射到变速箱中,映射后的变速箱数组尺寸为9行16列。如RS(72,66,M=8)Codec0中的第0行(行编号从0开始编号)和第1行的FEC映射到变速箱中的第0行中,而RS(72,66,M=8)Codec1中的第0行和第1行的FEC映射到变速箱中的第1行中。最后按照列将变速箱中的FEC码分发到16条物理层链路中。
如图17所示,图17是本申请实施例提供的又一种FEC码分发的示意图,对于RS(72,66,M=8),x8物理层链路,由于72/8=9为整数,单个FEC码可以完全映射到8条物理层链路中,无需设计变速箱。对于x4、x2、x1物理层链路来说,可以利用相同的规则进行类推。
可选的,可以在对待编码的码块进行编码得到FEC码之后,在FEC码中添加多个比特的空比特。通过添加空比特,可以使FEC码中符号数量与物理层链路的数量相匹配,这样可以使得向多条物理层链路分发FEC码的过程中简化变速箱的设计,起到优化作用。
例如,对于RS(271,257,M=10),x4物理层链路,无法直接将该FEC码按照符号形式直接映射到4条物理层链路中。可以在271个FEC符号的基础上添加1个符号(1*10=10比特),添加后的FEC码的总长度N为272个FEC符号,从而在RS(271,257,M=10)基础上通过添加空比特得到272个FEC符号,272/4=68,因此可以直接映射x4链路中。
上述详细阐述了本申请实施例的方法,下面提供了本申请实施例的装置。
请参见图18,图18是本申请实施例提供的一种编码装置的结构示意图,该编码装置可以包括接收模块1801、编码模块1802、转码模块1803和分发模块1804,其中,各个模块的详细描述如下。
接收模块1801,用于接收长度为L的待编码的码块,其中,所述L为正整数;
编码模块1802,用于对所述待编码的码块进行编码得到前向纠错码FEC,其中,所述FEC码的有效信息长度K为所述L的最大质因数的整数倍,所述FEC码的总长度N为所述FEC码的纠错能力T的2倍与所述K之和。
其中,所述FEC码中每个符号所包含的比特数为M,所述M为满足(2M-1)>=N的最小偶数。
可选的,转码模块1803还用于对源码块进行转码得到所述待编码的码块。
可选的,转码模块1803,还用于在单个源码块上添加至少一个比特的同步头信息得到所述待编码的码块,所述同步头信息用于指示所述源码块的数据类型。
可选的,转码模块1803,还用于删除多个源码块中每个源码块的同步头数据得到剩余有效信息;将所述多个源码块中的所述剩余有效信息组合生成所述待编码的码块。
可选的,转码模块1803,还用于将所述每个源码块的所述剩余有效信息划分为两个子码块;将所述多个源码块的所述两个子码块中的第一个子码块组合生成所述待编码的码块的前部分,在所述待编码的码块的前部分的前面添加比特数据;将所述多个源码块的所述两个子码块中的第二个子码块组合生成所述待编码的码块的后部分。
可选的,转码模块1803,还用于当所述多个源码块全部为数据码块时,在所述待编码的码块的前部分的前面添加至少一个比特的同步头信息,所述同步头信息用于指示所述多个源码块全部为数据码块。
可选的,转码模块1803,还用于当所述多个源码块包含有控制码块时,在所述待编码的码块的前部分的前面添加至少一个比特的同步头信息,并在所述同步头信息后添加多个比特的热码,所述同步头信息用于指示所述多个源码块包含有所述控制码块,所述热码用于指示所述每个源码块的数据类型;删除所述待编码的码块的前部分中第一个所述控制码块中第一个字节中的多个比特。
可选的,转码模块1803还用于删除多个源码块中每个源码块的同步头数据得到剩余有效信息;将所述多个源码块中所述剩余有效信息组合生成一个长码块;在所述长码块的前面添加比特数据生成得到所述待编码的码块。
可选的,转码模块1803,还用于当所述多个源码块全部为数据码块时,在所述长码块的前面添加至少一个比特的同步头信息,所述同步头信息用于指示所述多个源码块全部为数据码块。
可选的,转码模块1803,还用于当所述多个源码块包含有控制码块时,在所述长码块的前面添加至少一个比特的同步头信息,并在所述同步头信息后添加多个比特的热码,所述同步头信息用于指示所述多个源码块包含有所述控制码块,所述热码用于指示所述每个源码块的数据类型;删除所述长码块中第一个所述控制码块中第一个字节中的多个比特。
可选的,编码模块1802,还用于基于128B/130B编码方式进行编码得到所述源码块。
可选的,转码模块1804,还用于通过256B/258B转码方式或128B/132B转码方式对所述源码块进行转码得到所述待编码的码块。
其中,当L=258时,N=192,K=172,T=10,M=8;或N=184,K=172,T=6,M=8;或N=96,K=86,T=5,M=8。
其中,当L=132时,N=136,K=132,T=2,M=8;或N=144,K=132,T=6,M=8;或N=152,K=132,T=10,M=8;或N=72,K=66,T=3,M=8。
其中,当L=130时,N=136,K=130,T=3,M=8;或N=144,K=130,T=7,M=8;或N=152,K=130,T=11,M=8。
可选的,分发模块1804,还用于将所述FEC码分发到多条物理层链路上进行发送。
需要说明的是,各个模块的实现还可以对应参照图5和图6所示的方法实施例的相应描述,执行上述实施例中编码器、转码器和FEC编码器所执行的方法和功能。
请继续参考图19,图19是本申请提出的一种编码设备的结构示意图。如图19所示,该编码设备可以包括:至少一个处理器1901,至少一个通信接口1902,至少一个存储器1903和至少一个通信总线1904。
其中,处理器1901可以是中央处理器单元,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。通信总线1904可以是外设部件互连标准PCI总线或扩展工业标准结构EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图19中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信总线1904用于实现这些组件之间的连接通信。其中,本申请实施例中设备的通信接口1902用于与其他节点设备进行信令或数据的通信。存储器1903可以包括易失性存储器,例如非挥发性动态随机存取内存(Nonvolatile Random Access Memory,NVRAM)、相变化随机存取内存(Phase Change RAM,PRAM)、磁阻式随机存取内存(Magetoresistive RAM,MRAM)等,还可以包括非易失性存储器,例如至少一个磁盘存储器件、电子可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、闪存器件,例如反或闪存(NOR flash memory)或是反及闪存(NAND flash memory)、半导体器件,例如固态硬盘(Solid State Disk,SSD)等。存储器1903可选的还可以是至少一个位于远离前述处理器1901的存储装置。存储器1903中可选的还可以存储一组程序代码,且处理器1901可选的还可以执行存储器1903中所执行的程序。
接收长度为L的待编码的码块,其中,所述L为正整数;
对所述待编码的码块进行编码得到前向纠错码FEC,其中,所述FEC码的有效信息长度K为所述L的最大质因数的整数倍,所述FEC码的总长度N为所述FEC码的纠错能力T的2倍与所述K之和。
其中,所述FEC码中每个符号所包含的比特数M,所述M为满足(2M-1)>=N的最小偶数。
可选的,处理器1901还用于执行如下操作:
对源码块进行转码得到所述待编码的码块。
可选的,处理器1901还用于执行如下操作:
在单个源码块上添加至少一个比特的同步头信息得到所述待编码的码块,所述同步头信息用于指示所述源码块的数据类型。
可选的,处理器1901还用于执行如下操作:
删除多个源码块中每个源码块的同步头数据得到剩余有效信息;
将所述多个源码块中的所述剩余有效信息组合生成所述待编码的码块。
可选的,处理器1901还用于执行如下操作:
将所述每个源码块的所述剩余有效信息划分为两个子码块;
将所述多个源码块的所述两个子码块中的第一个子码块组合生成所述待编码的码块的前部分,在所述待编码的码块的前部分的前面添加比特数据;
将所述多个源码块的所述两个子码块中的第二个子码块组合生成所述待编码的码块的后部分。
可选的,处理器1901还用于执行如下操作:
当所述多个源码块全部为数据码块时,在所述待编码的码块的前部分的前面添加至少一个比特的同步头信息,所述同步头信息用于指示所述多个源码块全部为数据码块。
可选的,处理器1901还用于执行如下操作:
当所述多个源码块包含有控制码块时,在所述待编码的码块的前部分的前面添加至少一个比特的同步头信息,并在所述同步头信息后添加多个比特的热码,所述同步头信息用于指示所述多个源码块包含有所述控制码块,所述热码用于指示所述每个源码块的数据类型;
删除所述待编码的码块的前部分中第一个所述控制码块中第一个字节中的多个比特。
可选的,处理器1901还用于执行如下操作:
删除多个源码块中每个源码块的同步头数据得到剩余有效信息;
将所述多个源码块中所述剩余有效信息组合生成一个长码块;
在所述长码块的前面添加比特数据生成得到所述待编码的码块。
可选的,处理器1901还用于执行如下操作:
当所述多个源码块全部为数据码块时,在所述长码块的前面添加至少一个比特的同步头信息,所述同步头信息用于指示所述多个源码块全部为数据码块。
可选的,处理器1901还用于执行如下操作:
当所述多个源码块包含有控制码块时,在所述长码块的前面添加至少一个比特的同步头信息,并在所述同步头信息后添加多个比特的热码,所述同步头信息用于指示所述多个源码块包含有所述控制码块,所述热码用于指示所述每个源码块的数据类型;
删除所述长码块中第一个所述控制码块中第一个字节中的多个比特。
可选的,处理器1901还用于执行如下操作:
基于128B/130B编码方式进行编码得到所述源码块。
可选的,处理器1901还用于执行如下操作:
通过256B/258B转码方式或128B/132B转码方式对所述源码块进行转码得到所述待编码的码块。
其中,当L=258时,N=192,K=172,T=10,M=8;或N=184,K=172,T=6,M=8;或N=96,K=86,T=5,M=8。
其中,当L=132时,N=136,K=132,T=2,M=8;或N=144,K=132,T=6,M=8;或N=152,K=132,T=10,M=8;或N=72,K=66,T=3,M=8。
其中,当L=130时,N=136,K=130,T=3,M=8;或N=144,K=130,T=7,M=8;或N=152,K=130,T=11,M=8。
可选的,处理器1901还用于执行如下操作:
将所述FEC码分发到多条物理层链路上进行发送。
进一步的,处理器还可以与存储器和通信接口相配合,执行上述申请实施例中上述实施例中编码器、转码器和FEC编码器的操作。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (26)

1.一种编码方法,其特征在于,所述方法包括:
接收长度为L的待编码的码块,其中,所述L为正整数;
对所述待编码的码块进行编码得到前向纠错码FEC,其中,所述FEC码的有效信息长度K为所述L的最大质因数的整数倍,所述FEC码的总长度N为所述FEC码的纠错能力T的2倍与所述K之和。
2.如权利要求1所述的方法,其特征在于,所述FEC码中每个符号所包含的比特数为M,其中,所述M为满足(2M-1)>=N的最小偶数。
3.如权利要求1或2所述的方法,其特征在于,所述对所述待编码的码块进行编码得到前向纠错码FEC码之前,还包括:
对源码块进行转码得到所述待编码的码块。
4.如权利要求3所述的方法,其特征在于,所述对源码块进行转码得到所述待编码的码块包括:
删除多个源码块中每个源码块的同步头数据得到剩余有效信息;
将所述多个源码块中的所述剩余有效信息组合生成所述待编码的码块。
5.如权利要求4所述的方法,其特征在于,所述将所述多个源码块中的所述剩余有效信息组合生成所述待编码的码块包括:
将所述每个源码块的所述剩余有效信息划分为两个子码块;
将所述多个源码块的所述两个子码块中的第一个子码块组合生成所述待编码的码块的前部分,在所述待编码的码块的前部分的前面添加比特数据;
将所述多个源码块的所述两个子码块中的第二个子码块组合生成所述待编码的码块的后部分。
6.如权利要求5所述的方法,其特征在于,所述在所述待编码的码块的前部分的前面添加比特数据包括:
当所述多个源码块全部为数据码块时,在所述待编码的码块的前部分的前面添加至少一个比特的同步头信息,所述同步头信息用于指示所述多个源码块全部为数据码块。
7.如权利要求5所述的方法,其特征在于,所述在所述待编码的码块的前部分的前面添加比特数据包括:
当所述多个源码块包含有控制码块时,在所述待编码的码块的前部分的前面添加至少一个比特的同步头信息,并在所述同步头信息后添加多个比特的热码,所述同步头信息用于指示所述多个源码块包含有所述控制码块,所述热码用于指示所述每个源码块的数据类型;
删除所述待编码的码块的前部分中第一个所述控制码块中第一个字节中的多个比特。
8.如权利要求3-7任一项所述的方法,其特征在于,所述对源码块进行转码得到所述待编码的码块之前,还包括:
基于128B/130B编码方式进行编码得到所述源码块。
9.如权利要求3-8任一项所述的方法,其特征在于,所述对源码块进行转码得到所述待编码的码块包括:
通过256B/258B转码方式或128B/132B转码方式对所述源码块进行转码得到所述待编码的码块。
10.如权利要求1-9任一项所述的方法,其特征在于,当L=258时,N=192,K=172,T=10,M=8;或N=184,K=172,T=6,M=8;或N=96,K=86,T=5,M=8。
11.如权利要求1-9任一项所述的方法,其特征在于,当L=132时,N=136,K=132,T=2,M=8;或N=144,K=132,T=6,M=8;或N=152,K=132,T=10,M=8;或N=72,K=66,T=3,M=8。
12.如权利要求1-9任一项所述的方法,其特征在于,当L=130时,N=136,K=130,T=3,M=8;或N=144,K=130,T=7,M=8;或N=152,K=130,T=11,M=8。
13.如权利要求1-12任一项所述的方法,其特征在于,所述对所述待编码的码块进行编码得到前向纠错码FEC码之后,还包括:
将所述FEC码分发到多条物理层链路上进行发送。
14.一种编码装置,其特征在于,所述装置包括:
接收模块,用于接收长度为L的待编码的码块,其中,所述L为正整数;
编码模块,用于对所述待编码的码块进行编码得到前向纠错码FEC,其中,所述FEC码的有效信息长度K为所述L的最大质因数的整数倍,所述FEC码的总长度N为所述FEC码的纠错能力T的2倍与所述K之和,所述FEC码中每个符号所包含的比特数M由所述N确定。
15.如权利要求14所述的装置,其特征在于,所述FEC码中每个符号所包含的比特数为M,其中,所述M为满足(2M-1)>=N的最小偶数。
16.如权利要求14或15所述的装置,其特征在于,所述装置还包括:
转码模块,用于对源码块进行转码得到所述待编码的码块。
17.如权利要求16所述的装置,其特征在于,
所述转码模块,还用于删除多个源码块中每个源码块的同步头数据得到剩余有效信息;将所述多个源码块中的所述剩余有效信息组合生成所述待编码的码块。
18.如权利要求17所述的装置,其特征在于,
所述转码模块,还用于删除多个源码块中每个源码块的同步头数据得到剩余有效信息;将所述每个源码块的所述剩余有效信息划分为两个子码块;将所述多个源码块的所述两个子码块中的第一个子码块组合生成所述待编码的码块的前部分,在所述待编码的码块的前部分的前面添加比特数据;将所述多个源码块的所述两个子码块中的第二个子码块组合生成所述待编码的码块的后部分。
19.如权利要求18所述的装置,其特征在于,
所述转码模块,还用于当所述多个源码块全部为数据码块时,在所述待编码的码块的前部分的前面添加至少一个比特的同步头信息,所述同步头信息用于指示所述多个源码块全部为数据码块。
20.如权利要求18所述的装置,其特征在于,
所述转码模块,还用于当所述多个源码块包含有控制码块时,在所述待编码的码块的前部分的前面添加至少一个比特的同步头信息,并在所述同步头信息后添加多个比特的热码,所述同步头信息用于指示所述多个源码块包含有所述控制码块,所述热码用于指示所述每个源码块的数据类型;删除所述待编码的码块的前部分中第一个所述控制码块中第一个字节中的多个比特。
21.如权利要求16-20任一项所述的装置,其特征在于,
所述编码模块,还用于基于128B/130B编码方式进行编码得到所述源码块。
22.如权利要求16-21任一项所述的装置,其特征在于,
所述转码模块,还用于通过256B/258B转码方式或128B/132B转码方式对所述源码块进行转码得到所述待编码的码块。
23.如权利要求14-22任一项所述的装置,其特征在于,当L=258时,N=192,K=172,T=10,M=8;或N=184,K=172,T=6,M=8;或N=96,K=86,T=5,M=8。
24.如权利要求14-22任一项所述的装置,其特征在于,当L=132时,N=136,K=132,T=2,M=8;或N=144,K=132,T=6,M=8;或N=152,K=132,T=10,M=8;或N=72,K=66,T=3,M=8。
25.如权利要求14-22任一项所述的装置,其特征在于,当L=130时,N=136,K=130,T=3,M=8;或N=144,K=130,T=7,M=8;或N=152,K=130,T=11,M=8。
26.如权利要求14-25任一项所述的装置,其特征在于,所述装置还包括:
分发模块,用于将所述FEC码分发到多条物理层链路上进行发送。
CN201810490240.2A 2018-05-21 2018-05-21 一种编码方法及相关设备 Active CN110519004B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201810490240.2A CN110519004B (zh) 2018-05-21 2018-05-21 一种编码方法及相关设备
EP19806958.5A EP3817253A4 (en) 2018-05-21 2019-05-21 CODING METHOD AND ASSOCIATED DEVICE
PCT/CN2019/087728 WO2019223673A1 (zh) 2018-05-21 2019-05-21 一种编码方法及相关设备
US17/100,394 US11539461B2 (en) 2018-05-21 2020-11-20 Encoding method and related device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810490240.2A CN110519004B (zh) 2018-05-21 2018-05-21 一种编码方法及相关设备

Publications (2)

Publication Number Publication Date
CN110519004A true CN110519004A (zh) 2019-11-29
CN110519004B CN110519004B (zh) 2021-12-14

Family

ID=68616223

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810490240.2A Active CN110519004B (zh) 2018-05-21 2018-05-21 一种编码方法及相关设备

Country Status (4)

Country Link
US (1) US11539461B2 (zh)
EP (1) EP3817253A4 (zh)
CN (1) CN110519004B (zh)
WO (1) WO2019223673A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113938247A (zh) * 2020-07-14 2022-01-14 中国移动通信有限公司研究院 一种码块处理方法、节点及介质
CN114079535A (zh) * 2020-08-20 2022-02-22 腾讯科技(深圳)有限公司 转码方法、装置、介质和电子设备

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11477049B2 (en) * 2018-08-02 2022-10-18 Xilinx, Inc. Logical transport over a fixed PCIE physical transport network

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6981194B1 (en) * 2001-11-15 2005-12-27 Network Appliance, Inc. Method and apparatus for encoding error correction data
EP1583263B1 (en) * 2004-03-31 2006-10-11 Lucent Technologies Inc. Method and apparatus for PMD/PDL/PDG mitigation
US20080205636A1 (en) * 2007-02-28 2008-08-28 Motorola, Inc. Method and apparatus for encoding and decoding data
CN101267210A (zh) * 2007-03-12 2008-09-17 华为技术有限公司 数据编译码和收发方法及装置
CN101529775A (zh) * 2006-11-03 2009-09-09 国际商业机器公司 与64b/66b加扰兼容的多链路传输的前向纠错编码
CN101656593A (zh) * 2009-09-15 2010-02-24 中国人民解放军国防科学技术大学 前向纠错编码方法、前向纠错译码方法及其装置
CN101877620A (zh) * 2009-04-30 2010-11-03 华为技术有限公司 前向纠错方法、装置和系统
US20100313093A1 (en) * 2009-06-04 2010-12-09 Canon Kabushiki Kaisha Error-correction data generation apparatus and generation method
CN102215402A (zh) * 2010-04-09 2011-10-12 索尼公司 信息处理设备、方法和程序
US20120266051A1 (en) * 2011-04-13 2012-10-18 Cortina Systems, Inc. Staircase forward error correction coding
CN102891731A (zh) * 2006-08-11 2013-01-23 华为技术有限公司 64b66b编码系统的前向纠错
US20140380132A1 (en) * 2013-06-25 2014-12-25 Adee O. Ran Increasing communication safety by preventing false packet acceptance in high-speed links
WO2015133288A1 (ja) * 2014-03-04 2015-09-11 三菱電機株式会社 Fecフレーム処理装置およびfecフレーム処理方法
US20160261443A1 (en) * 2008-04-04 2016-09-08 Entropic Communications, Llc Method for efficient packet framing in a communication network
US20180123733A1 (en) * 2016-10-28 2018-05-03 Globalfoundries Inc. Ethernet physical layer device having an integrated physical coding and forward error correction sub-layers

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8255779B2 (en) * 2009-05-13 2012-08-28 Applied Micro Circuits Corporation System and method for accelerated forward error correction (FEC) synchronization
US8689089B2 (en) * 2011-01-06 2014-04-01 Broadcom Corporation Method and system for encoding for 100G-KR networking
US9344146B2 (en) * 2013-03-11 2016-05-17 Intel Corporation De-correlating training pattern sequences between lanes in high-speed multi-lane links and interconnects
US10164733B2 (en) * 2014-06-30 2018-12-25 International Business Machines Corporation Integrated physical coding sublayer and forward error correction in networking applications
US10585837B2 (en) * 2017-10-17 2020-03-10 Megachips Technology America Corporation Data transmission method and data transmission system
US11249837B2 (en) * 2019-03-01 2022-02-15 Intel Corporation Flit-based parallel-forward error correction and parity

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6981194B1 (en) * 2001-11-15 2005-12-27 Network Appliance, Inc. Method and apparatus for encoding error correction data
EP1583263B1 (en) * 2004-03-31 2006-10-11 Lucent Technologies Inc. Method and apparatus for PMD/PDL/PDG mitigation
CN102891731A (zh) * 2006-08-11 2013-01-23 华为技术有限公司 64b66b编码系统的前向纠错
CN101529775A (zh) * 2006-11-03 2009-09-09 国际商业机器公司 与64b/66b加扰兼容的多链路传输的前向纠错编码
US20080205636A1 (en) * 2007-02-28 2008-08-28 Motorola, Inc. Method and apparatus for encoding and decoding data
CN101267210A (zh) * 2007-03-12 2008-09-17 华为技术有限公司 数据编译码和收发方法及装置
US20160261443A1 (en) * 2008-04-04 2016-09-08 Entropic Communications, Llc Method for efficient packet framing in a communication network
CN101877620A (zh) * 2009-04-30 2010-11-03 华为技术有限公司 前向纠错方法、装置和系统
US20100313093A1 (en) * 2009-06-04 2010-12-09 Canon Kabushiki Kaisha Error-correction data generation apparatus and generation method
CN101656593A (zh) * 2009-09-15 2010-02-24 中国人民解放军国防科学技术大学 前向纠错编码方法、前向纠错译码方法及其装置
CN102215402A (zh) * 2010-04-09 2011-10-12 索尼公司 信息处理设备、方法和程序
US20120266051A1 (en) * 2011-04-13 2012-10-18 Cortina Systems, Inc. Staircase forward error correction coding
US20140380132A1 (en) * 2013-06-25 2014-12-25 Adee O. Ran Increasing communication safety by preventing false packet acceptance in high-speed links
WO2015133288A1 (ja) * 2014-03-04 2015-09-11 三菱電機株式会社 Fecフレーム処理装置およびfecフレーム処理方法
US20180123733A1 (en) * 2016-10-28 2018-05-03 Globalfoundries Inc. Ethernet physical layer device having an integrated physical coding and forward error correction sub-layers

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113938247A (zh) * 2020-07-14 2022-01-14 中国移动通信有限公司研究院 一种码块处理方法、节点及介质
CN114079535A (zh) * 2020-08-20 2022-02-22 腾讯科技(深圳)有限公司 转码方法、装置、介质和电子设备
WO2022037424A1 (zh) * 2020-08-20 2022-02-24 腾讯科技(深圳)有限公司 转码方法、装置、介质和电子设备
CN114079535B (zh) * 2020-08-20 2023-02-17 腾讯科技(深圳)有限公司 转码方法、装置、介质和电子设备
US11855775B2 (en) 2020-08-20 2023-12-26 Tencent Technology (Shenzhen) Company Limited Transcoding method and apparatus, medium, and electronic device

Also Published As

Publication number Publication date
WO2019223673A1 (zh) 2019-11-28
US11539461B2 (en) 2022-12-27
US20210075540A1 (en) 2021-03-11
CN110519004B (zh) 2021-12-14
EP3817253A4 (en) 2021-06-23
EP3817253A1 (en) 2021-05-05

Similar Documents

Publication Publication Date Title
Sridhara et al. Coding for reliable on-chip buses: A class of fundamental bounds and practical codes
KR101689998B1 (ko) 고성능 인터커넥트 링크 계층
CN110519004A (zh) 一种编码方法及相关设备
US20080092023A1 (en) Parallel convolutional encoder
CN102469272B (zh) 图像输出装置、图像处理装置及其方法和图像拾取装置
KR20140014174A (ko) 개략적 시그널링 코드들을 이용한 잡음 탄력적, 핀-효율적 및 저전력 통신을 위한 방법들 및 시스템들
CN101902228B (zh) 快速循环冗余校验编码方法及装置
US8843810B2 (en) Method and apparatus for performing a CRC check
US8738990B2 (en) Cyclic redundancy check generation via distributed time multiplexed linear feedback shift registers
CN109889205A (zh) 编码方法及系统、解码方法及系统、编解码方法及系统
CN109891843A (zh) 用于可编程逻辑器件的时钟恢复和数据恢复
CN105703782A (zh) 一种递增移位矩阵构建方法、网络编码方法及系统
KR20060058792A (ko) 저밀도 패리티 검사 코드의 부호화 장치 및 방법
CN106603082A (zh) 通用型高速ldpc码编码方法及编码器
CN102096610B (zh) 利用纠错码和同步信息的数据行存储及传输
CN107306140A (zh) 一种gel码字结构编码和译码的方法、装置及相关设备
WO2020133010A1 (zh) 数据处理方法及矩阵存储器
CN108628698B (zh) 计算crc编码的方法和装置
TWI520528B (zh) 增壓碼
WO2019033950A1 (zh) 数据处理的方法和相关装置
CN105302764B (zh) 模式选择平衡编码互连
CN109347489A (zh) 一种用于通信的基于图形处理器的bch码并行译码方法
CN102594371B (zh) 一种Turbo编码交织处理的方法及装置
JP2021525976A (ja) 階段符号復号方法及び階段符号復号装置
GB2563418A (en) Polar encoder, communication unit, integrated circuit and method therefor

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant