CN116455516A - 编码方法、解码方法、装置、设备、***及可读存储介质 - Google Patents
编码方法、解码方法、装置、设备、***及可读存储介质 Download PDFInfo
- Publication number
- CN116455516A CN116455516A CN202210114840.5A CN202210114840A CN116455516A CN 116455516 A CN116455516 A CN 116455516A CN 202210114840 A CN202210114840 A CN 202210114840A CN 116455516 A CN116455516 A CN 116455516A
- Authority
- CN
- China
- Prior art keywords
- block
- group
- code stream
- blocks
- code
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 167
- 238000004891 communication Methods 0.000 claims abstract description 26
- 238000001514 detection method Methods 0.000 claims description 68
- 238000012545 processing Methods 0.000 claims description 66
- 238000012937 correction Methods 0.000 claims description 47
- 238000004590 computer program Methods 0.000 claims description 17
- 230000008569 process Effects 0.000 description 27
- 230000005540 biological transmission Effects 0.000 description 24
- 230000006870 function Effects 0.000 description 21
- 230000014509 gene expression Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 16
- 230000003287 optical effect Effects 0.000 description 10
- 239000000945 filler Substances 0.000 description 9
- 230000004044 response Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000004744 fabric Substances 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000004549 pulsed laser deposition Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 102100027157 Butyrophilin subfamily 2 member A1 Human genes 0.000 description 1
- 102100027156 Butyrophilin subfamily 2 member A2 Human genes 0.000 description 1
- 102100027154 Butyrophilin subfamily 3 member A3 Human genes 0.000 description 1
- 101000984926 Homo sapiens Butyrophilin subfamily 2 member A1 Proteins 0.000 description 1
- 101000984925 Homo sapiens Butyrophilin subfamily 2 member A2 Proteins 0.000 description 1
- 101000984916 Homo sapiens Butyrophilin subfamily 3 member A3 Proteins 0.000 description 1
- 101000920748 Homo sapiens General transcription and DNA repair factor IIH helicase subunit XPB Proteins 0.000 description 1
- 101000666405 Homo sapiens General transcription factor IIH subunit 1 Proteins 0.000 description 1
- 101000655398 Homo sapiens General transcription factor IIH subunit 2 Proteins 0.000 description 1
- 101000655391 Homo sapiens General transcription factor IIH subunit 3 Proteins 0.000 description 1
- 101000933542 Homo sapiens Transcription factor BTF3 Proteins 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- RGNPBRKPHBKNKX-UHFFFAOYSA-N hexaflumuron Chemical compound C1=C(Cl)C(OC(F)(F)C(F)F)=C(Cl)C=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F RGNPBRKPHBKNKX-UHFFFAOYSA-N 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
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/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
- H04L1/0058—Block-coded modulation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
Abstract
本申请公开了一种编码方法、解码方法、装置、设备、***及可读存储介质,属于通信技术领域。编码方法包括:获取包括控制块和数据块的2n组码流块,n为大于1的整数;对2n组码流块进行第一编码得到目标码块,目标码块包括基于2n组码流块的控制块确定的类型和基于2n组码流块的控制块和数据块确定的数据单元。解码方法包括:获取目标码块,根据目标码块的类型和数据单元对目标码块进行第一解码得到2n组码流块,各组码流块包括基于类型和数据单元得到的控制块和数据块。
Description
本申请要求于2022年1月5日提交的申请号为202210005434.5、发明名称为“一种编码方法、装置和芯片”的中国专利申请的优先权,其全部内容通过引用结合在本申请实施例中。
技术领域
本申请涉及通信技术领域,尤其涉及一种编码方法、解码方法、装置、设备、***及可读存储介质。
背景技术
随着通信技术的发展,通过以太网进行报文传输的方式也越来越完善。在传输报文的过程中,来自媒体访问控制(media access control,MAC)层的报文按照固定长度被切分成块,并行进入介质无关接口(media independent interface,MII)。例如,报文被切分成块后并行进入800吉比特(gigabit,G)MII,该800GMII表示传输MAC速率为800吉比特/秒(gigabit per second,Gb/s)的MII。通过MII传输至物理编码子层(physical codingsublayer,PCS)。PCS从MII接收到的码流块包括数据块(transmit data,TXD)和控制块(transmit control,TXC)。其中,TXC和TXD是由来自MAC层的报文流内容经过适配子层(reconciliation sublayer,RS)处理得到的。TXC是控制字,用于标识TXD中对应字节的内容是控制信号还是数据信号,其中控制信号包括报文的开始、终结、错误、空闲等信息。PCS根据TXC/TXD内容进行编码,减少开销,同时可以提供必需的同步、保护功能。
相关技术中,PCS对来自MII的各组码流块进行64比特(bit,B)/66B编码,编码得到66bit码块,该66bit码块为数据码块或控制码块,若为控制码块,该66bit码块包括具备4bit汉明距离保护的字段。当采用高速物理链路进行数据传输时,将每四个66bit码块转码为一个长度为257bit的256B/257B编码的码块,对257bit码块进行前向纠错(forwarderror correction,FEC)编码,传输FEC编码得到的FEC码字。
当存在不可纠正的FEC码字时,由于该FEC码字中误码的数量较多且位置不固定,66bit码块中具备汉明距离保护的字段无法保证误码的可靠识别;又由于可以通过FEC标错来实现误码的可靠识别,因此误码识别无需通过66bit码块中具备汉明距离保护的字段实现。在此基础上,又由于PCS中绝大多数处理是基于257bit码块进行的,因此64B/66B编码过程不再必要。若保留64B/66B编码过程,随之而来的转码过程将带来不必要的时延、功耗和芯片面积占用。
发明内容
本申请提出一种编码方法、解码方法、装置、设备、***及可读存储介质,用于提高编解码效率。
第一方面,提供了一种编码方法,所述方法包括:获取2n组码流块,任一组码流块包括控制块和数据块,所述n为大于1的整数;对所述2n组码流块进行第一编码,得到目标码块,所述目标码块包括基于所述2n组码流块的控制块确定的类型和基于所述2n组码流块的控制块和数据块确定的数据单元。
由于对包括控制块和数据块的2n组码流块进行第一编码能够得到目标码块,而不必对2n组码流块中的每组码流块进行64B/66B编码得到2n个66比特码块,再对2n个66比特码块进行转码得到目标码块,编码效率得以提高,编码过程所带来的时延、功耗和芯片面积占用都得以降低。
在一种可能的实现方式中,所述类型用于指示所述目标码块为数据码块;所述数据单元基于所述2n组码流块的顺序对所述2n组码流块的数据块进行所述第一编码得到。
在一种可能的实现方式中,所述类型用于指示所述目标码块为控制码块;所述数据单元包括类型指示和码块内容,所述码块内容基于所述2n组码流块的控制块和数据块确定的顺序对所述2n组码流块的数据块进行所述第一编码得到,所述类型指示基于所述2n组码流块的控制块得到,所述类型指示用于指示各组码流块的类型。
在一种可能的实现方式中,所述目标码块为错误码块,所述错误码块中包括用于标识错误的数据。由于本申请的编码方法能够对不同类型的码流块进行第一编码以得到目标码块,该方法的适用性较广。
在一种可能的实现方式中,所述目标码块基于错误检测结果对所述2n组码流块进行处理得到,所述错误检测结果基于所述2n组码流块的控制块和数据块得到。通过对存在错误的码流块进行处理,再得到目标码块,使得后续进行数据传输时存在错误的数据能够与正确的数据区分开来,保证数据的可靠性。
在一种可能的实现方式中,所述错误检测结果包括所述2n组码流块的内容顺序错误或内容错误,所述目标码块基于所述2n组码流块中内容顺序正确且内容正确的码流块以及错误块进行所述第一编码得到,所述错误块基于所述2n组码流块中内容顺序错误或内容错误的码流块得到。
在一种可能的实现方式中,所述控制块包括m比特,所述数据块包括8m比特,所述m为正整数。
在一种可能的实现方式中,所述n的取值为2,所述m的取值为8,所述目标码块为257比特。
在一种可能的实现方式中,所述2n组码流块均来自介质无关接口MII。
在一种可能的实现方式中,所述得到目标码块之后,还包括:按照FEC码型对所述目标码块进行第二编码,得到第一数据;发送所述第一数据。通过按照FEC码型对目标码块进行第二编码得到第一数据,使得接收端能够对接收的第一数据进行纠错,保证数据传输的准确性。
第二方面,提供了一种解码方法,所述方法包括:获取目标码块,所述目标码块包括类型和数据单元;根据所述目标码块的类型和数据单元,对所述目标码块进行第一解码,得到2n组码流块,任一组码流块包括基于所述类型和所述数据单元得到的控制块和数据块,所述n为大于1的整数。
由于对目标码块进行第一解码能够得到包括控制块和数据块的2n组码流块,而不必对目标码块进行转码得到2n个66比特码块,再对2n个66比特码块进行解码得到2n组码流块,解码效率得以提高,解码过程所带来的时延、功耗和芯片面积占用都得以降低。
在一种可能的实现方式中,所述类型用于指示所述目标码块为数据码块;所述2n组码流块中的第i组码流块包括的数据块是基于对所述数据单元中与所述第i组码流块对应的8m长度的内容进行所述第一解码得到的,所述m为正整数,所述i为大于等于1且小于等于2n的整数或者所述i为大于等于0且小于等于2n-1的整数。
在一种可能的实现方式中,所述类型用于指示所述目标码块为控制码块,所述数据单元包括类型指示和码块内容,所述类型指示包括2n个比特,所述2n个比特中的1个比特用于指示所述2n组码流块中与所述比特对应的一组码流块的类型,所述码块内容包括2n个比特组;
所述2n组码流块中的第i组码流块包括的控制块是基于所述类型、所述类型指示中与所述第i组码流块对应的比特和所述码块内容中与所述第i组码流块对应的比特组得到的,所述i为大于等于1且小于等于2n的整数或者所述i为大于等于0且小于等于2n-1的整数;
所述2n组码流块中的第i组码流块包括的数据块是基于所述类型指示中与所述第i组码流块对应的比特对所述码块内容中与所述第i组码流块对应的比特组进行所述第一解码得到的。
在一种可能的实现方式中,所述2n个比特组包括第一比特组和2n-1个第二比特组,所述第一比特组包括的比特数量和所述第二比特组包括的比特数量不相同。
在一种可能的实现方式中,所述数据单元包括类型指示,所述类型和所述类型指示用于指示所述目标码块为错误码块;所述2n组码流块中每组码流块包括的控制块为第一值,所述2n组码流块中每组码流块包括的数据块为第二值,所述第一值和所述第二值用于指示所述码流块为错误码流块。
由于本申请的解码方法能够对不同类型的目标码块进行第一解码以得到2n组码流块,该方法的适用性较广。
在一种可能的实现方式中,所述获取目标码块,包括:接收第二数据,所述第二数据是基于采用前向纠错FEC码型编码的第一数据获得的;对所述第二数据进行第二解码获取所述目标码块,所述第二解码为纠错处理。
在一种可能的实现方式中,所述目标码块是对所述第二数据进行纠错但未成功纠错所获得的错误码块。由于目标码块是对第二数据进行纠错但未能成功纠错,进而对FEC码字中的码块进行标错后所获得的码块,接收端能够确定基于目标码块得到的数据为错误数据,保证数据的准确性。
在一种可能的实现方式中,所述获取目标码块,包括:接收第二数据,所述第二数据是基于采用前向纠错FEC码型编码的第一数据获得的;对所述第二数据进行第二解码获取所述目标码块,所述第二解码为检错但不纠错处理。
在一种可能的实现方式中,所述目标码块是从所述第二数据检出错误但不纠错所获得的错误码块。
针对本申请提供的解码方法,第二解码操作可以是对码字进行纠错,或者仅检错但不纠错。在第二解码过程中对码字进行纠错的情况下,当判定无法对当前码字进行纠错时(例如错误个数超出纠错能力),需要对该码字中所有的码块进行标错;或者当在第二解码过程中对码字只进行检错但不纠错的情况下,对于检出错误的码字,需要对该码字中所有的码块进行标错。
在一种可能的实现方式中,所述2n组码流块根据错误检测结果以及所述目标码块的类型和数据单元对所述目标码块进行第一解码得到,所述错误检测结果基于所述目标码块的类型和数据单元得到。通过对存在错误的目标码块进行处理,使得接收端能够区分错误数据和正确数据,保证数据的可靠性。
在一种可能的实现方式中,所述错误检测结果包括所述目标码块的内容顺序错误或内容错误,所述2n组码流块根据第二码块的类型和数据单元对所述第二码块进行第一解码得到,所述第二码块是对所述目标码块进行转换得到的且与所述目标码块比特数相同的码块。
在一种可能的实现方式中,所述错误检测结果包括所述目标码块的内容顺序错误或内容错误,所述2n组码流块基于对2n组第一码流块进行转换得到,所述2n组第一码流块基于所述目标码块的类型和数据单元对所述目标码块进行第一解码得到。
在一种可能的实现方式中,所述控制块包括m比特,所述数据块包括8m比特,所述m为正整数。
在一种可能的实现方式中,所述n的取值为2,所述m的取值为8,所述目标码块为257比特。
在一种可能的实现方式中,所述2n组码流块均为介质无关接口MII格式。
第三方面,提供了一种编码装置,所述装置包括:
获取模块,用于获取2n组码流块,任一组码流块包括控制块和数据块,所述n为大于1的整数;
第一编码模块,用于对所述2n组码流块进行第一编码,得到目标码块,所述目标码块包括基于所述2n组码流块的控制块确定的类型和基于所述2n组码流块的控制块和数据块确定的数据单元。
在一种可能的实现方式中,所述类型用于指示所述目标码块为数据码块;所述数据单元基于所述2n组码流块的控制块和数据块确定的顺序对所述2n组码流块的数据块进行所述第一编码得到。
在一种可能的实现方式中,所述类型用于指示所述目标码块为控制码块;所述数据单元包括类型指示和码块内容,所述码块内容基于所述2n组码流块的控制块和数据块确定的顺序对所述2n组码流块的数据块进行所述第一编码得到,所述类型指示基于所述2n组码流块的控制块得到,所述类型指示用于指示各组码流块的类型。
在一种可能的实现方式中,所述目标码块为错误码块,所述错误码块中包括用于标识错误的数据。
在一种可能的实现方式中,所述目标码块基于错误检测结果对所述2n组码流块进行处理得到,所述错误检测结果基于所述2n组码流块的控制块和数据块得到。
在一种可能的实现方式中,所述错误检测结果包括所述2n组码流块的内容顺序错误或内容错误,所述目标码块基于所述2n组码流块中内容顺序正确且内容正确的码流块以及错误块进行所述第一编码得到,所述错误块基于所述2n组码流块中内容顺序错误或内容错误的码流块得到。
在一种可能的实现方式中,所述控制块包括m比特,所述数据块包括8m比特,所述m为正整数。
在一种可能的实现方式中,所述n的取值为2,所述m的取值为8,所述目标码块为257比特。
在一种可能的实现方式中,所述2n组码流块均来自介质无关接口MII。
在一种可能的实现方式中,该装置还包括:
第二编码模块,用于按照前向纠错FEC码型对所述目标码块进行第二编码,得到第一数据;发送模块,用于发送所述第一数据。
第四方面,提供了一种解码装置,所述装置包括:
获取模块,用于获取目标码块,所述目标码块包括类型和数据单元;
解码模块,用于根据所述目标码块的类型和数据单元,对所述目标码块进行第一解码,得到2n组码流块,任一组码流块包括基于所述类型和所述数据单元得到的控制块和数据块,所述n为大于1的整数。
在一种可能的实现方式中,所述类型用于指示所述目标码块为数据码块;所述2n组码流块中的第i组码流块包括的数据块是基于对所述数据单元中与所述第i组码流块对应的8m长度的内容进行所述第一解码得到的,所述m为正整数,所述i为大于等于1且小于等于2n的整数或者所述i为大于等于0且小于等于2n-1的整数。
在一种可能的实现方式中,所述类型用于指示所述目标码块为控制码块;所述数据单元包括类型指示和码块内容,所述类型指示包括2n个比特,所述2n个比特中的1个比特用于指示所述2n组码流块中与所述比特对应的一组码流块的类型,所述码块内容包括2n个比特组;所述2n组码流块中的第i组码流块包括的控制块是基于所述类型、所述类型指示中与所述第i组码流块对应的比特和所述码块内容中与所述第i组码流块对应的比特组得到的,所述i为大于等于1且小于等于2n的整数或者所述i为大于等于0且小于等于2n-1的整数;所述2n组码流块中的第i组码流块包括的数据块是基于所述类型指示中与所述第i组码流块对应的比特对所述码块内容中与所述第i组码流块对应的比特组进行所述第一解码得到的。
在一种可能的实现方式中,所述2n个比特组包括第一比特组和2n-1个第二比特组,所述第一比特组包括的比特数量和所述第二比特组包括的比特数量不相同。
在一种可能的实现方式中,所述数据单元包括类型指示,所述类型和所述类型指示用于指示所述目标码块为错误码块;所述2n组码流块中每组码流块包括的控制块为第一值,所述2n组码流块中每组码流块包括的数据块为第二值,所述第一值和所述第二值用于指示所述码流块为错误码流块。
在一种可能的实现方式中,所述获取模块,用于接收第二数据,所述第二数据是基于采用前向纠错FEC码型编码的第一数据获得的;对所述第二数据进行第二解码获取所述目标码块,所述第二解码为纠错处理。
在一种可能的实现方式中,所述目标码块是对所述第二数据进行纠错但未成功纠错所获得的码块。
在一种可能的实现方式中,所述获取模块,用于接收第二数据,所述第二数据是基于采用前向纠错FEC码型编码的第一数据获得的;对所述第二数据进行第二解码获取所述目标码块,所述第二解码为检错但不纠错处理。
在一种可能的实现方式中,所述目标码块是从所述第二数据检出错误但不纠错所获得的错误码块。
在一种可能的实现方式中,所述2n组码流块根据错误检测结果以及所述目标码块的类型和数据单元对所述目标码块进行所述第一解码得到,所述错误检测结果基于所述目标码块的类型和数据单元得到。
在一种可能的实现方式中,所述错误检测结果包括所述目标码块的内容顺序错误或内容错误,所述2n组码流块根据第二码块的类型和数据单元对所述第二码块进行所述第一解码得到,所述第二码块是对所述目标码块进行转换得到的且与所述目标码块比特数相同的码块。
在一种可能的实现方式中,所述错误检测结果包括所述目标码块的内容顺序错误或内容错误,所述2n组码流块基于对2n组第一码流块进行转换得到,所述2n组第一码流块基于所述目标码块的类型和数据单元对所述目标码块进行所述第一解码得到。
在一种可能的实现方式中,所述控制块包括m比特,所述数据块包括8m比特,所述m为正整数。
在一种可能的实现方式中,所述n的取值为2,所述m的取值为8,所述目标码块为257比特。
在一种可能的实现方式中,所述2n组码流块均为介质无关接口MII格式。
第五方面,提供了一种网络设备,包括处理器,处理器与存储器耦合,存储器中存储有至少一条程序指令或代码,至少一条程序指令或代码由处理器加载并执行,以使网络设备实现第一方面中任一的编码方法,或者实现第二方面中任一的解码方法。
第六方面,提供了一种计算机可读存储介质,存储介质中存储有至少一条程序指令或代码,程序指令或代码由处理器加载并执行时以使计算机实现第一方面中任一的编码方法,或者实现第二方面中任一的解码方法。
第七方面,提供了一种通信***,所述***包括第一网络设备和第二网络设备,所述第一网络设备用于执行第一方面中任一的编码方法,所述第二网络设备用于执行第二方面中任一的解码方法。
第八方面,提供了另一种通信装置,该装置包括:收发器、存储器和处理器。其中,该收发器、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制收发器接收信号,并控制收发器发送信号,并且当该处理器执行该存储器存储的指令时,使得该处理器执行第一方面中任一的编码方法,或者执行第二方面中任一的解码方法。
示例性地,所述处理器为一个或多个,所述存储器为一个或多个。
示例性地,所述存储器可以与所述处理器集成在一起,或者所述存储器与处理器分离设置。
在具体实现过程中,存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(read only memory,ROM),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请对存储器的类型以及存储器与处理器的设置方式不做限定。
第九方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码被计算机运行时,使得所述计算机执行第一方面中任一的编码方法,或者执行第二方面中任一的解码方法。
第十方面,提供了一种芯片,包括处理器,用于从存储器中调用并运行所述存储器中存储的指令,使得安装有所述芯片的通信设备执行第一方面中任一的编码方法,或者执行第二方面中任一的解码方法。
第十一方面,提供另一种芯片,包括:输入接口、输出接口、处理器和存储器,所述输入接口、输出接口、所述处理器以及所述存储器之间通过内部连接通路相连,所述处理器用于执行所述存储器中的代码,当所述代码被执行时,所述处理器用于执行第一方面中任一的编码方法,或者执行第二方面中任一的解码方法。
附图说明
图1是本申请实施例提供的一种编码方法和解码方法的实施环境示意图;
图2是本申请实施例提供的一种编码方法的流程图;
图3是本申请实施例提供的一种得到目标码块的过程示意图;
图4是本申请实施例提供的一种目标码块的结构示意图;
图5是本申请实施例提供的另一种目标码块的结构示意图;
图6是本申请实施例提供的另一种目标码块的结构示意图;
图7是本申请实施例提供的一种解码方法的流程图;
图8是本申请实施例提供的一种编码装置的结构示意图;
图9是本申请实施例提供的一种解码装置的结构示意图;
图10是本申请实施例提供的一种网络设备的结构示意图;
图11是本申请实施例提供的另一种网络设备的结构示意图;
图12是本申请实施例提供的另一种网络设备的结构示意图。
具体实施方式
本申请的实施方式部分使用的术语仅用于对本申请的实施例进行解释,而非旨在限定本申请。下面结合附图,对本申请的实施例进行描述。
以太网作为一种局域网技术,应用范围越来越广。100吉比特以太网(gigabitethernet,GE)以来,采用单通道25Gb/s的传输速率进行数据传输。为了能够纠正接收的数据中的误码,物理层引入了FEC编码,进而传输编码得到的FEC码字。例如采用100G通道进行数据传输时,发送端可以采用里德-所罗门(Reed-Solomon,RS)(528,514)对原始数据进行FEC编码,编码得到的一个RS码字块包括5140比特的有效载荷和140比特的校验码。由于校验码的存在,对于在相同时间内传输相同有效载荷所需要的传输速率而言,传输FEC码字所需的传输速率高于传输原始数据所需的传输速率。
为了降低传输FEC码字所需的传输速率,以太网标准上采用了转码,以通过降低FEC编码前的码块的开销来实现降低传输FEC码字所需的传输速率。例如,将每四个64B/66B编码的码块转码为一个256B/257B编码的码块。由于一个257比特码块的开销低于四个66比特码块的开销,从而传输基于257比特码块得到的FEC码字所需的传输速率相对较低。在采用100G通道进行数据传输时,传输基于转码后的码块得到的FEC码字所需的传输速率为103.125Gb/s,该传输速率与传输未进行FEC编码的66比特码块所需的传输速率相同。
接收端在获取到FEC码字之后,可以对FEC码字进行纠错。由于误码的识别可以通过FEC标错来实现,且PCS中绝大多数处理是基于257比特码块进行的,因此,64B/66B编码过程和相应的转码过程将产生不必要的时延、功耗和芯片面积占用。
对此,本申请实施例提供了一种数据传输方法,以解决上述问题。在本申请实施例中,对包括控制块和数据块的2n(n为大于1的整数)组码流块进行第一编码得到目标码块,而不必对2n组码流块中的每组码流块进行64B/66B编码,再对2n个66比特码块进行转码得到目标码块。由此,编码效率得以提高,编码过程所带来的时延、功耗和芯片面积占用都得以降低。
本申请实施例提供的方法在对目标码块进行第一解码时,可直接对目标码块进行第一解码得到包括控制块和数据块的2n组码流块,而无需对目标码块进行转码得到2n个66比特码块,再对2n个66比特码块进行解码得到2n组码流块。由此,解码效率得以提高,解码过程所带来的时延、功耗和芯片面积占用都得以降低。
本申请实施例提供的编码方法和解码方法可适用于当前的以太接口或者其他需要传输数据的场景下。以图1所示的实施场景为例,该实施场景包括多个芯片,各个芯片之间能够进行信息的交互,实现数据传输。示例性地,第一网络设备101中设置有芯片102,第二网络设备103中设置有芯片104,芯片102和芯片104均支持FEC编码和FEC解码,第一网络设备101和第二网络设备103之间的信道105能够传输FEC编码的数据。则芯片102可以对2n组码流块进行第一编码得到目标码块,对目标码块按照第一FEC码型进行第二编码得到第一数据,并通过信道105将第一数据发送给芯片104。示例性地,第一数据在信道105中传输时可能会出现误码,将接收到的数据称为第二数据。芯片104在接收到第二数据后,可以采用第一FEC码型对第二数据进行第二解码得到目标码块,对目标码块进行第一解码得到2n组码流块。其中,n为大于1的整数,第一FEC码型包括但不限于RS码、博斯-乔赫里-霍克文黑姆(Bose-Chaudhuri-Hocquenghem,BCH)码、汉明码(Hamming code)、扩展BCH码(extended-BCH code)、扩展汉明码(extended-Hamming code)、法尔(fire)码、涡轮(turbo)码、涡轮乘积码(turbo product code,TPC)、阶梯(staircase)码以及低密度奇偶校验(low-densityparity-check,LDPC)码中的任一种或者多种的级联组合。
可以理解的是,如图1所示的实施场景可以包括多个网络设备,各个网络设备可以包括至少一个芯片,图1中仅以两个网络设备,各个网络设备包括一个芯片为例进行说明。
结合图1所示的实施场景,本申请实施例提供的编码方法如图2所示。示例性地,本申请实施例提供的编码方法由图1中的芯片102执行,该方法包括但不限于步骤201和步骤202。
步骤201,获取2n组码流块,任一组码流块包括控制块和数据块,n为大于1的整数。
在一种可能的实现方式中,2n组码流块均来自MII。关于基于MII获取2n组码流块的方式,本申请实施例对此不加以限定。例如,MII可以采用电气与电子工程师协会(theInstitute of Electrical and Electronics Engineers,IEEE)802.3标准,比如IEEE802.3-2018以及其他版本的IEEE802.3标准定义的MII,获取2n组码流块。示例性地,n的取值为2,也即获取四组码流块。
示例性地,对于2n组码流块中的任一组码流块,该任一组码流块的控制块包括m比特,该任一组码流块的数据块包括8m比特,m为正整数。其中,8m表示m的8倍,也可表示为8*m。示例性地,m的取值为8,也即对于任一组码流块而言,该任一组码流块的控制块包括8比特,该任一组码流块的数据块包括64比特。在一种可能的实现方式中,控制块包括的m比特均为控制比特,也即控制块包括m个控制比特;数据块包括的8m比特均为数据,也即数据块包括的8m比特数据。
示例性地,将包括8个控制比特的控制块表示为TXC<7:0>,将包括64比特数据的数据块表示为TXD<63:0>,控制块和数据块的各个比特的顺序均为由最高有效位(mostsignificant bit,MSB)至最低有效位(least significant bit,LSB)。
步骤202,对2n组码流块进行第一编码,得到目标码块,目标码块包括基于2n组码流块的控制块确定的类型和基于2n组码流块的控制块和数据块确定的数据单元。
示例性地,各组码流块的控制块均为8比特,数据块均为64比特,对四组码流块进行第一编码得到一个257比特的目标码块。本申请实施例以n=2为例进行说明,n为其他值时,可以对每四组码流块执行该第一编码过程,得到多个目标码块。例如,n=3,也即获取到八组码流块,可以对前四组码流块进行第一编码得到一个目标码块,对后四组码流块进行第一编码得到一个目标码块。
在一种可能的实现方式中,对2n组码流块进行第一编码,得到目标码块包括但不限于如下编码方式一和编码方式二。
编码方式一,基于2n组码流块的控制块确定目标码块的类型为数据码块;基于2n组码流块的顺序对2n组码流块的数据块进行第一编码,得到数据单元;基于类型和数据单元,得到目标码块。
示例性地,对于采用编码方式一得到的目标码块,类型用于指示目标码块为数据码块;数据单元基于2n组码流块的顺序对2n组码流块的数据块进行第一编码得到。
在一种可能的实现方式中,在2n组码流块的控制块均为第一指定值的情况下,确定目标码块的类型为数据码块,第一指定值用于指示码流块的类型为数据码流块。例如,以各组码流块的控制块均为表示为TXC<7:0>,第一指定值为0x00为例进行说明,在各组码流块的TXC<7:0>均为0x00的情况下,各组码流块的类型均为数据码流块。
在一种可能的实现方式中,基于2n组码流块的顺序对2n组码流块的数据块进行第一编码,得到数据单元,包括:基于2n组码流块的顺序,分别将2n组码流块的数据块包括的比特作为数据单元的比特,以得到数据单元。
示例性地,以j表示四组码流块的序号,j=0,1,2或3。TXD_j<63:0>表示第j组码流块的数据块,tx_coded<256:0>表示目标码块,其中,tx_coded<0>表示目标码块的类型,tx_coded<(64j+64):(64j+1)>表示目标码块的第(64j+64)比特至第(64j+1)比特,则tx_coded<256:0>的各个比特如下方表达式1和表达式2所示:
tx_coded<0>=1 (表达式1)
tx_coded<(64j+64):(64j+1)>=TXD_j<63:0>,j=0,1,2或3 (表达式2)
在表达式1中,tx_coded<0>=1表示类型为数据码块,在表达式2中,tx_coded<(64j+64):(64j+1)>=TXD_j<63:0>表示分别将各组码流块的数据块的多个比特作为数据单元的多个比特。
例如,当j=0时,tx_coded<64:1>=TXD_0<63:0>,表示将第0组码流块的数据块的第63比特至第0比特分别作为目标码块的第64比特至第1比特。当j=1时,tx_coded<128:65>=TXD_1<63:0>,表示将第1组码流块的数据块的第63比特至第0比特分别作为目标码块的第128比特至第65比特。当j=2时,tx_coded<192:129>=TXD_2<63:0>,表示将第2组码流块的数据块的第63比特至第0比特分别作为目标码块的第192比特至第129比特。当j=3时,tx_coded<256:193>=TXD_3<63:0>,表示将第3组码流块的数据块的第63比特至第0比特分别作为目标码块的第256比特至第193比特。
示例性地,图3示出了一种得到目标码块的过程示意图。如图3所示,对于获取到的四组码流块,各组码流块的控制块均表示为TXC<7:0>,数据块均表示为TXD<63:0>。该四组码流块的TXC<7:0>均为0x00,则目标码块的类型为数据码块。示例性地,目标码块的类型对应目标码块的第0比特,将第0比特赋值为1表示类型为数据码块。关于将第0比特赋值以表示类型为数据码块的方式,本申请实施例不加以限定。基于四组码流块的顺序,分别将四组码流块的数据块的多个比特作为数据单元的多个比特,以得到数据单元。从而,基于类型和数据单元能够得到目标比特。
示例性地,得到的目标码块的结构如图4所示,目标码块的第0比特用于表示目标码块的类型,第0比特赋值为1用于表示目标码块的类型为数据码块。目标码块的第1比特至第256比特用于表示目标码块的数据单元,其中,D0表示第0组码流块的数据块的64比特,D1表示第1组码流块的数据块的64比特,D2表示第2组码流块的数据块的64比特,D3表示第3组码流块的数据块的64比特。
编码方式二,基于2n组码流块的控制块确定目标码块的类型为控制码块;基于2n组码流块的控制块,获取2n组码流块的标识值,标识值用于指示码流块的类型;将2n组码流块的标识值作为类型指示;基于2n组码流块的控制块和数据块确定的顺序对2n组码流块的数据块进行第一编码,得到码块内容;基于类型和数据单元,得到目标码块,其中,数据单元包括类型指示和码块内容。
示例性地,对于采用编码方式二得到的目标码块包括类型和数据单元。其中,类型用于指示目标码块为控制码块;数据单元包括类型指示和码块内容,码块内容基于2n组码流块的控制块和数据块确定的顺序对2n组码流块的数据块进行第一编码得到,类型指示基于2n组码流块的控制块得到,类型指示用于指示各组码流块的类型。示例性地,2n组码流块的控制块和数据块确定的顺序为2n组码流块的接收顺序。
在一种可能的实现方式中,2n组码流块中的至少一组码流块的控制块为第二指定值,通过该第二指定值可确定目标码块的类型为控制码块。第二指定值用于指示码流块的类型为控制码流块,第二指定值与上述第一指定值不同。也就是说,在2n组码流块中的至少一组码流块的类型为控制码流块的情况下,目标码块的类型为控制码块。例如,以各组码流块的控制块均为表示为TXC<7:0>,第一指定值为0x00为例,在各组码流块中的一组码流块的TXC<7:0>不为0x00的情况下,目标码块为控制码块。
示例性地,对于2n组码流块中的一组码流块,在该组码流块的类型为数据码流块的情况下,该组码流块的标识值为第三指定值,在该组码流块的类型为控制码流块的情况下,该组码流块的标识值为第四指定值。例如,第三指定值为1,第四指定值为0。示例性地,将2n组码流块的标识值作为类型指示,包括:按照2n组码流块的控制块和数据块确定的顺序,将2n组码流块的标识值分别作为类型指示的各个比特,以得到类型指示。
示例性地,基于2n组码流块的控制块和数据块确定的顺序对2n组码流块的数据块进行第一编码,得到码块内容,包括:基于2n组码流块的控制块和数据块确定的顺序对2n组码流块的数据块进行第一编码,得到各组码流块经第一编码后的内容,将各组码流块经第一编码后的内容作为码块内容。
在一种可能的实现方式中,对于2n组码流块中类型为数据码流块(TXC<7:0>=0x00)的一组码流块,该组码流块经第一编码后的内容为该组码流块的数据块的内容。对于2n组码流块中类型为控制码流块的一组码流块,根据该组码流块的控制块和数据块的情况,该组码流块经第一编码后的内容包括但不限于如下情况A1至情况A11。
情况A1,控制块为0x01,数据块的第7比特至第0比特为0xFB,其中LSB为先发送的比特。
示例性地,针对情况A1,该数据块包括1个控制字节和7个数据字节,其中,数据字节也称为八位组(octet)。在该组码流块是第一组控制码流块的情况下,该组码流块经第一编码后的内容为60比特,前4比特为类型域(block type field,BTF)部分,该BTF部分为0x8。在该组码流块不是第一组控制码流块的情况下,该组码流块经第一编码后的内容为64比特,前8比特为BTF部分,该BTF部分为0x78。无论是上述哪种情况,其余56比特为数据块包括的7个数据字节的各个比特。
情况A2,控制块为0xFF,数据块的第(k+7)比特至第k比特为0x06,0x07或0xFE中的至少一种,k=0,1,2,3,4,5,6或7,其中LSB为先发送的比特。
示例性地,针对情况A2,该数据块包括8个控制字节。在该组码流块是第一组控制码流块的情况下,该组码流块经第一编码后的内容为60比特,前4比特为BTF部分,该BTF部分为0xE。在该组码流块不是第一组控制码流块的情况下,该组码流块经第一编码后的内容为64比特,前8比特为BTF部分,该BTF部分为0x1E。无论上述哪种情况,其余56比特为数据块包括的8个控制字节的第0比特置第6比特。
情况A3,控制块为0x01,数据块的第7比特至第0比特为0x9C,其中LSB为先发送的比特。
示例性地,针对情况A3,该数据块包括1个控制字节和7个数据字节。在该组码流块是第一组控制码流块的情况下,该组码流块经第一编码后的内容为60比特,前4比特为BTF部分,该BTF部分为0xB。在该组码流块不是第一组控制码流块的情况下,该组码流块经第一编码后的内容为64比特,前8比特为BTF部分,该BTF部分为0x4B。无论上述哪种情况,BTF部分后的24比特为数据块的第31比特至第8比特。数据字节后的4比特为O码(O code),O code可以根据IEEE802.3标准得到。示例性的,其余28比特为多个第一填充比特,其中,多个第一填充比特可以基于数据块的数据字节得到,或者多个第一填充比特均为0。
情况A4,控制块为0xFF,数据块的第7比特至第0比特为0xFD,其中LSB为先发送的比特。
示例性地,针对情况A4,该数据块包括8个控制字节。在该组码流块是第一组控制码流块的情况下,该组码流块经第一编码后的内容为60比特,前4比特为BTF部分,该BTF部分为0x7。在该组码流块不是第一组控制码流块的情况下,该组码流块经第一编码后的内容为64比特,前8比特为BTF部分,该BTF部分为0x87。无论上述哪种情况,BTF部分后的7比特均为0,其余49比特为数据块包括的后7个控制字节的第6比特至第0比特。
情况A5,控制块为0xFE,数据块的第15比特至第8比特为0xFD,其中LSB为先发送的比特。
示例性地,针对情况A5,该数据块包括1个数据字节和7个控制字节。在该组码流块是第一组控制码流块的情况下,该组码流块经第一编码后的内容为60比特,前4比特为BTF部分,该BTF部分为0x9。在该组码流块不是第一组控制码流块的情况下,该组码流块经第一编码后的内容为64比特,前8比特为BTF部分,该BTF部分为0x99。无论上述哪种情况,BTF部分后的8比特为数据块包括的数据字节的各个比特,数据字节后的6比特均为0,其余42比特为数据块包括的后6个控制字节的第6比特至第0比特。
情况A6,控制块为0xFC,数据块的第23比特至第16比特为0xFD,其中,LSB为先发送的比特。
示例性地,针对情况A6,该数据块包括2个数据字节和6个控制字节。在该组码流块是第一组控制码流块的情况下,该组码流块经第一编码后的内容为60比特,前4比特为BTF部分,该BTF部分为0xA。在该组码流块不是第一组控制码流块的情况下,该组码流块经第一编码后的内容为64比特,前8比特为BTF部分,该BTF部分为0xAA。无论上述哪种情况,BTF部分后的16比特为数据块包括的2个数据字节的各个比特,数据字节后的5比特均为0,其余35比特为数据块包括的后5个控制字节的第6比特至第0比特。
情况A7,控制块为0xF8,数据块的第31比特至第24比特为0xFD,其中,LSB为先发送的比特。
示例性地,针对情况A7,该数据块包括3个数据字节和5个控制字节。在该组码流块是第一组控制码流块的情况下,该组码流块经第一编码后的内容为60比特,前4比特为BTF部分,该BTF部分为0x4。在该组码流块不是第一组控制码流块的情况下,该组码流块经第一编码后的内容为64比特,前8比特为BTF部分,该BTF部分为0xB4。无论上述哪种情况,BTF部分后的28比特为数据块包括的3个数据字节的各个比特,数据字节后的4比特均为0,其余28比特为数据块包括的后4个控制字节的第6比特至第0比特。
情况A8,控制块为0xF0,数据块的第39比特至第32比特为0xFD,其中,LSB为先发送的比特。
示例性地,针对情况A8,该数据块包括4个数据字节和4个控制字节。在该组码流块是第一组控制码流块的情况下,该组码流块经第一编码后的内容为60比特,前4比特为BTF部分,该BTF部分为0xC。在该组码流块不是第一组控制码流块的情况下,该组码流块经第一编码后的内容为64比特,前8比特为BTF部分,该BTF部分为0xCC。无论上述哪种情况,BTF部分后的32比特为数据块包括的4个数据字节的各个比特,数据字节后的3比特均为0,其余21比特为数据块包括的后3个控制字节的第6比特至第0比特。
情况A9,控制块为0xE0,数据块的第47比特至第40比特为0xFD,其中,LSB为先发送的比特。
示例性地,针对情况A9,该数据块包括5个数据字节和3个控制字节。在该组码流块是第一组控制码流块的情况下,该组码流块经第一编码后的内容为60比特,前4比特为BTF部分,该BTF部分为0x2。在该组码流块不是第一组控制码流块的情况下,该组码流块经第一编码后的内容为64比特,前8比特为BTF部分,该BTF部分为0xD2。无论上述哪种情况,BTF部分后的32比特为数据块包括的5个数据字节的各个比特,数据字节后的2比特均为0,其余12比特为数据块包括的后2个控制字节的第6比特至第0比特。
情况A10,控制块为0xC0,数据块的第55比特至第48比特为0xFD,其中,LSB为先发送的比特。
示例性地,针对情况A10,该数据块包括6个数据字节和2个控制字节。在该组码流块是第一组控制码流块的情况下,该组码流块经第一编码后的内容为60比特,前4比特为BTF部分,该BTF部分为0x1。在该组码流块不是第一组控制码流块的情况下,该组码流块经第一编码后的内容为64比特,前8比特为BTF部分,该BTF部分为0xE1。无论上述哪种情况,BTF部分后的48比特为数据块包括的6个数据字节的各个比特,数据字节后的1比特为0,其余7比特为数据块包括的最后1个控制字节的第6比特至第0比特。
情况A11,控制块为0x80,数据块的第63比特至第56比特为0xFD,其中,LSB为先发送的比特。
示例性地,针对情况A11,该数据块包括7个数据字节和1个控制字节。在该组码流块是第一组控制码流块的情况下,该组码流块经第一编码后的内容为60比特,前4比特为BTF部分,该BTF部分为0xF。在该组码流块不是第一组控制码流块的情况下,该组码流块经第一编码后的内容为64比特,前8比特为BTF部分,该BTF部分为0xFF。无论上述哪种情况,其余56比特为数据块包括的7个数据字节的各个比特。
由此,基于2n组码流块的控制块和数据块确定的顺序,将2n组码流块经第一编码后的内容作为码块内容。从而,基于类型、类型指示和码块内容能够得到目标码块。
示例性地,j表示四组码流块的序号,j=0,1,2或3。TXC_j<7:0>表示第j组码流块的控制块,tx_payload<251:0>表示四组码流块经第一编码后的内容,tx_coded<256:0>表示目标码块,其中,tx_coded<0>表示目标码块的类型,tx_coded<j+1>表示目标码块的类型指示,tx_coded<256:5>表示目标码块的码块内容,则tx_coded<256:0>的各个比特如下方表达式3至表达式5所示:
tx_coded<0>=0 (表达式3)
tx_coded<256:5>=tx_payload<251:0> (表达式5)
在表达式3中,tx_coded<0>=0表示类型为控制码块。在表达式4中,当TXC_j<7:0>不为0x00时,该j值对应的目标码块的比特为0,当TXC_j<7:0>为0x00时,该j值对应的目标码块的比特为1。在表达式5中,tx_coded<256:5>=tx_payload<251:0>表示分别将四组码流块经第一编码后的内容的多个比特作为码块内容的多个比特。
示例性地,目标码块的结构如图5所示,图5中的0至3分别表示四组码流块的序号。图5左侧表示获取的四组码流块的类型,C表示控制码流块,D表示数据码流块。图5右侧为对应不同情况得到的目标码块的结构,其中,b表示比特,例如1b表示1比特,4b表示4比特。示例性地,图5中的情况1对应四组码流块的类型均为控制码流块,第一编码得到的目标码块的第0比特为0,第4比特至第1比特均为0;第8比特至第5比特表示为f_0,对应第0组码流块经第一编码后的内容中的BTF部分,第64比特至第9比特对应第0组码流块经第一编码后的内容中的其余内容,也即C0;第72比特至第65比特表示为BTF1,对应第1组码流块经第一编码后的内容中的BTF部分,第128比特至第73比特对应第1组码流块经第一编码后的内容中的其余内容,也即C1;第136比特至第129比特表示为BTF2,对应第2组码流块经第一编码后的内容中的BTF部分,第192比特至第137比特对应第2组码流块经第一编码后的内容中的其余内容,也即C2;第200比特至第193比特表示为BTF3,对应第3组码流块经第一编码后的内容中的BTF部分,第256比特至第201比特对应第四组码流块经第一编码后的内容中的其余内容,也即C3。图5中的其余情况与上述情况1原理相同,例如,对于情况2,目标码块的第68比特至第5比特表示为D0,对应第0组码流块经第一编码后的内容,第72比特至第69比特表示为f_1,对应第1组码流块经第一编码后的内容中的BTF部分,第128比特至第73比特对应第1组码流块经第一编码后的内容中的其余内容,也即C1,此处不再对图5中的其他情况进行赘述。
在一种可能的实现方式中,目标码块为错误码块,错误码块中包括用于标识错误的数据。示例性地,当2n组码流块中的一组码流块不属于数据码流块,也不属于上述情况A1至情况A11中的任一种情况时,确定目标码块为错误码块;基于2n组码流块的控制块,获取2n组码流块的类型,基于2n组码流块的类型得到目标码流块的类型指示,类型和类型指示作为错误码块中用于标识错误的数据。例如,目标码块的第0比特对应类型,第1比特至第4比特对应类型指示,将第0比特赋值为0,第1比特至第4比特均赋值为1。
示例性地,目标码块为错误码块时,目标码块的结构如图6所示。图6左侧表示获取的四组码流块的类型,E表示错误码流块。图6右侧为目标码块的结构。目标码块的第0比特为0,第1比特至第4比特均为1,第5比特至第64比特对应基于第一组码流块得到的填充内容,第65比特至第128比特对应基于第二组码流块得到的填充内容,第129比特至第192比特对应基于第三组码流块得到的填充内容,第193比特至第256比特对应基于第四组码流块得到的填充内容。示例性地,填充内容的各个比特均为0。示例性地,将基于第一组码流块得到的填充内容表示为E0,将基于第二组码流块得到的填充内容表示为E1,将基于第三组码流块得到的填充内容表示为E2,将基于第四组码流块得到的填充内容表示为E3。
由于本申请实施例提供的编码方法能够对不同类型的码流块进行第一编码,以得到目标码块,该方法的适用性较广。
在一种可能的实现方式中,对2n组码流块进行第一编码,得到目标码块,包括:基于2n组码流块的控制块和数据块得到错误检测结果;基于错误检测结果对2n组码流块进行处理,对处理后的2n组码流块进行第一编码,得到目标码块。也就是说,目标码块基于错误检测结果对2n组码流块进行处理得到,错误检测结果基于2n组码流块的控制块和数据块得到。
示例性地,基于2n组码流块的控制块和数据块得到错误检测结果,包括:基于2n组码流块的控制块和数据块得到2n组码流块的内容和内容顺序,基于2n组码流块的内容和内容顺序得到错误检测结果。例如,当2n组码流块的内容顺序为第一错误情况集合中的至少一种情况时,该2n组码流块的内容顺序错误,当2n组码流块的内容顺序不为第一错误情况集合中的任一种情况时,该2n组码流块的内容顺序正确。又例如,当2n组码流块的内容为第二错误情况集合中的至少一种情况时,该2n组码流块的内容错误,当2n组码流块的内容不为第二错误情况集合中的任一种情况时,该2n组码流块的内容正确。
在一种可能的实现方式中,以相邻的两组码流块为例进行说明,第一错误情况集合包括但不限于如下4种情况:
(1)在前一组码流块包括起始控制字(/S/)的情况下,后一组码流块包括除数据字节以外的其他内容。
(2)在前一组码流块仅包括数据字节的情况下,后一组码流块包括除数据字节或终止控制字(/T/)以外的其他内容。
(3)在前一组码流块包括终止控制字的情况下,后一组码流块包括除空闲控制字(/I/)或序列有序集控制字(/O/)以外的其他内容。
(4)在前一组码流块包括空闲控制字或序列有序集控制字的情况下,后一组码流块包括数据字节或终止控制字。
在一种可能的实现方式中,以一组码流块为例进行说明,第二错误情况集合包括但不限于如下4种情况:
(1)对于包括起始控制字的码流块,起始控制字后为除数据字节以外的其他内容。
(2)对于包括数据字节的码流块,数据字节后为除数据字节或终止控制字以外的其他内容。
(3)对于包括终止控制字的码流块,终止控制字后为除空闲控制字或序列有序集控制字以外的其他内容。
(4)对于包括空闲控制字或序列有序集控制字的码流块,空闲控制字或序列有序集控制字后为数据字节或终止控制字。
示例性地,错误检测结果包括2n组码流块的内容顺序错误或内容错误,基于2n组码流块中内容顺序错误或内容错误的码流块得到错误块,对2n组码流块中内容顺序正确且内容正确的码流块及错误块进行第一编码得到目标码块。也即,在错误检测结果包括2n组码流块的内容顺序错误或内容错误的情况下,目标码块基于2n组码流块中内容顺序正确且内容正确的码流块以及错误块进行第一编码得到,错误块基于2n组码流块中内容顺序错误或内容错误的码流块得到。示例性地,错误块包括错误控制字(error control character)。
在一种可能的实现方式中,对于内容顺序错误或内容错误的码流块,将该码流块的内容转换为错误控制字,以得到错误块。例如,内容顺序错误或内容错误的码流块为第一组码流块,将该码流块的内容转换为第一错误控制字,该第一错误控制字为60比特,前4比特为0xE,之后每7比特为0x1E。又例如,内容顺序错误或内容错误的码流块为第二组码流块、第三组码流块或第四组码流块中的至少一个,将该码流块的内容转换为第二错误控制字,该第二错误控制字为64比特,前8比特为0x1E,之后每7比特为0x1E。
示例性地,对2n组码流块中内容顺序正确且内容顺序的码流块及错误块进行第一编码得到目标码块,包括:确定目标码块的类型为控制码块;获取2n组码流块的标识值,标识值用于指示码流块的类型,将2n组码流块的标识值作为类型指示;基于2n组码流块的控制块和数据块确定的顺序对错误块和2n组码流块中内容顺序正确且内容正确的码流块的数据块进行第一编码,得到码块内容。
例如,基于2n组码流块的控制块和数据块确定的顺序,对2n组码流块中内容顺序正确且内容正确的码流块的数据块进行第一编码,得到内容顺序正确且内容正确的码流块经第一编码后的内容,基于内容顺序正确且内容正确的码流块经第一编码后的内容和错误块得到目标码块。关于对内容顺序正确且内容正确的码流块的数据块进行第一编码的方式,请参照前文中对类型为数据码流块的码流块和类型为控制码流块的码流块进行第一编码的相关内容,此处不再赘述。
示例性地,在2n组码流块中的各组码流块均为内容顺序错误或内容错误的码流块的情况下,基于2n组码流块得到2n个错误块,对该2n个错误块进行第一编码得到目标码块,该目标码块为错误码块。
通过对存在错误的码流块进行处理,使得后续进行数据传输时存在错误的数据能够与正确的数据区分开来,保证数据的可靠性。
示例性地,得到目标码块之后,该方法还包括:按照FEC码型对目标码块进行第二编码,得到第一数据;发送第一数据。关于按照FEC码型对目标码块进行第二编码的方式,本申请实施例不加以限定。通过按照FEC码型对目标码块进行第二编码得到第一数据,使得接收端能够对接收的第一数据进行纠错,保证数据传输的准确性。
本申请实施例提供的编码方法,对包括控制块和数据块的2n组码流块进行第一编码得到目标码块,而不必对2n组码流块中的每组码流块进行64B/66B编码得到2n个66比特码块,再对2n个66比特码块进行转码得到目标码块。由此,编码效率得以提高,编码过程所带来的时延、功耗和芯片面积占用都得以降低。
上述介绍了本申请实施例提供的编码方法,下面介绍本申请实施例提供的解码方法。结合图1所示的实施场景,本申请实施例提供的解码方法如图7所示。示例性地,本申请实施例提供的解码方法由图1中的芯片104执行,该方法包括但不限步骤701和步骤702。
步骤701,获取目标码块,目标码块包括类型和数据单元。
示例性地,结合图1的实施场景,芯片102通过信道105向芯片104发送采用FEC码型编码的第一数据,在数据传输的过程中第一数据中可能会出现误码,将该出现误码的数据称为第二数据,芯片104通过信道105接收到该第二数据。
在一种可能的实现方式中,获取目标码块,包括但不限于如下方式A和方式B。
方式A,接收第二数据,第二数据是基于采用FEC码型编码的第一数据获得的;对第二数据进行第二解码获得目标码块,该第二解码为纠错处理。
示例性地,目标码块是对第二数据进行纠错但未成功纠错所获得的错误码块。例如,对第二数据进行第二解码获取目标码块,包括:按照该FEC码型对第二数据进行处理得到第一码字,对该第一码字进行纠错处理,基于纠错处理的结果获取目标码块。
示例性地,芯片104具有FEC解码器的功能,当FEC解码器判定误码的个数超出该FEC解码器的纠错能力时,也就是说,当FEC解码器判定无法对第一码字进行纠错时,标记该第一码字中所有的码块为错误码块。从而,在纠错处理的结果为标记第一码字中所有的码块为错误码块的情况下,获取的目标码块为错误码块。
示例性地,在纠错处理的结果为对第一码字纠错成功的情况下,将基于纠错后的第一码字得到的码块作为获取的目标码块,基于纠错后的第一码字得到的码块为纠错成功的码块。
方式B,接收第二数据,第二数据是基于采用前向纠错FEC码型编码的第一数据获得的;对第二数据进行第二解码获取目标码块,第二解码为检错但不纠错处理。
示例性地,目标码块是从第二数据检出错误但不纠错所获得的错误码块。例如,对第二数据进行第二解码获取目标码块,包括:按照该FEC码型对第二数据进行处理得到第一码字,对第一码字进行仅检错但不纠错(bypass correction)处理;基于检错但不纠错处理的结果获取目标码块。
示例性地,芯片104具有FEC解码器的功能,当FEC解码器检测到第一码字中存在错误时,标记该第一码字中所有的码块为错误码块。从而,在检错但不纠错处理的结果为标记第一码字中所有的码块为错误码块的情况下,获取的目标码块为错误码块。
示例性地,在检错但不纠错处理的结果为第一码字无错误的情况下,将基于第一码字得到的码块作为获取的目标码块,基于第一码字得到的码块为无错误的码块。
示例性地,基于目标码块执行的帧校验序列(frame check sequence,FCS)帧校验失败。例如,目标码块为257比特,前5比特为01111,其余252比特包括但不限于如下三种情况:(1)前4比特为0x1,其余比特中每8比特为0x1E;(2)前248比特中每8比特为0x1E,最后4比特为0x1;(3)各个比特均为0。
步骤702,根据目标码块的类型和数据单元,对目标码块进行第一解码,得到2n组码流块,任一组码流块包括基于类型和数据单元得到的控制块和数据块,n为大于1的整数。
示例性地,目标码块为257比特,各组码流块的控制块均为8比特,数据块均为64比特。以对一个目标码块进行第一解码得到四组码流块(n=2)为例进行说明,当获取到多个目标码块时,可以对各个目标码块分别执行该第一解码过程,以得到2n组码流块。例如,当获取到两个目标码块时,可以对该两个码块分别进行第一解码得到四组码流块,也即,对两个目标码块进行第一解码得到八组码流块。
在一种可能的实现方式中,根据目标码块的类型和数据单元,对目标码块进行第一解码,得到2n组码流块,包括但不限于如下解码方式一至解码方式三。
解码方式一,基于目标码块的类型,确定目标码块的类型为数据码块,目标码块的数据单元包括2n个8m长度的内容,m为正整数;基于目标码块的类型得到2n组码流块的控制块,对数据单元包括的2n个8m长度的内容分别进行第一解码,得到2n组码流块的数据块。
示例性地,在类型用于指示目标码块为数据码块的情况下,采用解码方式一对目标码块进行第一解码得到2n组码流块。该2n组码流块中的第i组码流块包括的数据块是基于对数据单元中与该第i组码流块对应的8m长度的内容进行第一解码得到的,i为大于等于1且小于等于2n的整数或者i为大于等于0且小于等于2n-1的整数。
在一种可能的实现方式中,目标码块的类型为1用于指示目标码块为数据码块,目标码块的数据单元包括四个8m长度的内容,一个8m长度的内容对应一组码流块。示例性地,8m长度为64比特。将四组码流块的控制块均置为0x00,将四个64比特的内容分别作为四组码流块的数据块的内容。
示例性地,j表示四组码流块的序号,j=0,1,2或3。RXC_j<7:0>表示第j组码流块的控制块,RXD_j<63:0>表示第j组码流块的数据块,rx_coded<256:0>表示目标码块,其中,rx_coded<0>表示目标码块的类型,rx_coded<(64j+64):(64j+1)>表示目标码块的第(64j+64)比特至第(64j+1)比特,则RXC_j<7:0>和RXD_j<63:0>的内容如下方表达式6和表达式7所示:
RXC_j<7:0>=0x00,j=0,1,2或3 (表达式6)
RXD_j<63:0>=rx_coded<(64j+64):(64j+1)>,j=0,1,2或3 (表达式7)
在表达式6中,RXC_j<7:0>=0x00表示各组码流块的控制块均为0x00,在表达式7中,RXD_j<63:0>=rx_coded<(64j+64):(64j+1)>表示将数据单元的每64比特作为一组码流块的数据块的64比特。
例如,当j=0时,RXD_0<63:0>=rx_coded<64:1>,表示将目标码块的第64比特至第1比特分别作为第0组码流块的数据块的第63比特至第0比特。当j=1时,RXD_1<63:0>=rx_coded<128:65>,表示将目标码块的第128比特至第65比特分别作为第1组码流块的数据块的第63比特至第0比特。当j=2时,RXD_2<63:0>=rx_coded<192:129>,表示将目标码块的第192比特至第129比特分别作为第2组码流块的数据块的第63比特至第0比特。当j=3时,RXD_3<63:0>=rx_coded<256:193>,表示将目标码块的第256比特至第193比特分别作为第3组码流块的数据块的第63比特至第0比特。
解码方式二,基于目标码块的类型,确定目标码块的类型为控制码块,目标码块的数据单元包括类型指示和码块内容,类型指示包括2n个比特,所述2n个比特中的1个比特用于指示2n组码流块中与该比特对应的一组码流块的类型,码块内容包括2n个比特组;基于类型、类型指示中与2n组码流块对应的比特和码块内容中与2n组码流块对应的比特组得到2n组码流块的控制块,基于类型指示中与2n组码流块对应的比特对码块内容中与2n组码流块对应的比特组进行第一解码得到2n组码流块的数据块。
示例性地,在类型用于指示目标码块为控制码块的情况下,采用解码方式二对目标码块进行第一解码得到2n组码流块。该2n组码流块中的第i组码流块包括的控制块是基于类型、类型指示中与第i组码流块对应的比特和码块内容中与第i组码流块对应的比特组得到的,i为大于等于1且小于等于2n的整数或者i为大于等于0且小于等于2n-1的整数;该2n组码流块中的第i组码流块包括的数据块是基于类型指示中与第i组码流块对应的比特对码块内容中与第i组码流块对应的比特组进行第一解码得到的。示例性地,比特组为多个比特的集合。
示例性地,当类型指示中的一个比特为1时,基于该比特得到的码流块的类型为数据码流块;当类型指示中的一个比特为0时,基于该比特得到的码流块的类型为控制码流块。
在一种可能的实现方式中,2n个比特组包括第一比特组和2n-1个第二比特组,第一比特组包括的比特数量和第二比特组包括的比特数量不相同。示例性地,类型指示的一个比特对应码块内容的一个比特组。例如,以图5示出的目标码块的结构为例进行说明。对于情况1,类型指示包括四个比特,码块内容包括四个比特组。其中,类型指示的第一个比特对应第一比特组,第一比特组为目标码块的第5比特至第64比特;类型指示的第二个比特对应一个第二比特组,该第二个比特对应的第二比特组为目标码块的第65比特至第128比特;类型指示的第三个比特对应一个第二比特组,该第三个比特对应的第二比特组为目标码块的第129比特至第192比特;类型指示的第四个比特对应一个第二比特组,该第四个比特对应的第二比特组为目标码块的第193比特至第256比特。对于情况2,类型指示包括四个比特,码块内容包括四个比特组。其中,类型指示的第一个比特对应一个第二比特组,该第一个比特对应的第二比特组为目标码块的第5比特至第67比特;类型指示的第二个比特对应第一比特组,第一比特组为目标码块的第68比特至第128比特;类型指示的第三个比特对应一个第二比特组,该第三个比特对应的第二比特组为目标码块的第129比特至第192比特;类型指示的第四个比特对应一个第二比特组,该第四个比特对应的第二比特组为目标码块的第193比特至第256比特。其余情况与上述情况1和情况2的原理相同,此处不再赘述。
在一种可能的实现方式中,对于类型指示的一个比特,在该比特为1的情况下,基于类型、该比特和该比特对应的比特组得到的码流块的控制块为0x00,基于该比特对该比特对应的比特组进行第一解码得到的码流块的数据块的内容为比特组的内容。在该比特为0的情况下,根据该比特的位置和该比特对应的比特组的情况,得到的码流块的控制块和数据块包括但不限于如下情况B1至B11。
情况B1,该比特为第一个为0的比特,该比特对应的比特组的前4比特为BTF部分,该BTF部分为0x8;或者该比特不为第一个为0的比特,该比特对应的比特组的前8比特为BTF部分,该BTF部分为0x78。
示例性地,针对情况B1,该比特对应的比特组的BTF部分之后包括7个数据字节。码流块的控制块为0x01,码流块的数据块为64比特。数据块的第7比特至第0比特为0xFB,其余56比特分别为该比特对应的比特组的7个数据字节的各个比特。其中,LSB为先发送的比特。
情况B2,该比特为第一个为0的比特,该比特对应的比特组的前4比特为BTF部分,该BTF部分为0xE;或者该比特不为第一个为0的比特,该比特对应的比特组的前8比特为BTF部分,该BTF部分为0x1E。
示例性地,针对情况B2,该比特对应的比特组的BTF部分之后包括8个控制比特组,每个控制比特组包括7比特。码流块的控制块为0xFF,码流块的数据块为64比特。数据块的64比特基于8个控制比特组得到,其中,数据块的每8比特基于一个控制比特组。关于基于各个控制比特组得到数据块的各个比特的方式,本申请实施例对此不加以限定,例如,根据IEEE802.3标准得到。示例性地,数据块的第(k+7)比特至第k比特为0x06,0x07或0xFE中的至少一种,k=0,1,2,3,4,5,6或7。其中,LSB为先发送的比特。
情况B3,该比特为第一个为0的比特,该比特对应的比特组的前4比特为BTF部分,该BTF部分为0xB;或者该比特不为第一个为0的比特,该比特对应的比特组的前8比特为BTF部分,该BTF部分为0x4B。
示例性地,针对情况B3,该比特对应的比特组的BTF部分之后包括3个数据字节,1个4比特的O码和多个第一填充比特。码流块的控制块为0x01,码流块的数据块为64比特。数据块的第7比特至第0比特为0x9C,数据块的第31比特至第8比特为3个数据字节的各个比特,其余32比特基于多个第一填充比特得到。其中,LSB为先发送的比特。关于基于多个第一填充比特得到其余32比特的方式,本申请实施例对此不加以限定。
情况B4,该比特为第一个为0的比特,该比特对应的比特组的前4比特为BTF部分,该BTF部分为0x7;或者该比特不为第一个为0的比特,该比特对应的比特组的前8比特为BTF部分,该BTF部分为0x87。
示例性地,针对情况B4,该比特对应的比特组的BTF部分之后包括1个7比特的终止控制字和7个控制比特组,每个控制比特组包括7比特。码流块的控制块为0xFF,码流块的数据块为64比特。数据块的第7比特至第0比特为0xFD,其余56比特基于7个控制比特组得到,其中,其余56比特中的每8比特基于一个控制比特组得到。其中,LSB为先发送的比特。
情况B5,该比特为第一个为0的比特,该比特对应的比特组的前4比特为BTF部分,该BTF部分为0x9;或者该比特不为第一个为0的比特,该比特对应的比特组的前8比特为BTF部分,该BTF部分为0x99。
示例性地,针对情况B5,该比特对应的比特组的BTF部分之后包括1个数据字节,1个6比特的终止控制字和6个控制比特组,每个控制比特组包括7比特。码流块的控制块为0xFE,码流块的数据块为64比特。数据块的第7比特至第0比特为数据字节的各个比特,数据块的第15比特至第8比特为0xFD,其余48比特基于6个控制比特组得到,其中,其余48比特中的每8比特基于一个控制比特组得到。其中,LSB为先发送的比特。
情况B6,该比特为第一个为0的比特,该比特对应的比特组的前4比特为BTF部分,该BTF部分为0xA;或者该比特不为第一个为0的比特,该比特对应的比特组的前8比特为BTF部分,该BTF部分为0xAA。
示例性地,针对情况B6,该比特对应的比特组的BTF部分之后包括2个数据字节,1个5比特的终止控制字和5个控制比特组,每个控制比特组包括7比特。码流块的控制块为0xFC,码流块的数据块为64比特。数据块的第15比特至第0比特基于2个数据字节的各个比特得到,数据块的第23比特至第16比特为0xFD,其余40比特基于5个控制比特组得到,其中,其余40比特中的每8比特基于一个控制比特组得到。其中,LSB为先发送的比特。
情况B7,该比特为第一个为0的比特,该比特对应的比特组的前4比特为BTF部分,该BTF部分为0x4;或者该比特不为第一个为0的比特,该比特对应的比特组的前8比特为BTF部分,该BTF部分为0xB4。
示例性地,针对情况B7,该比特对应的比特组的BTF部分之后包括3个数据字节,1个4比特的终止控制字和4个控制比特组,每个控制比特组包括7比特。码流块的控制块为0xF8,码流块的数据块为64比特。数据块的第23比特至第0比特基于3个数据字节的各个比特得到,数据块的第31比特至第24比特为0xFD,其余32比特基于4个控制比特组得到,其中,其余32比特中的每8比特基于一个控制比特组得到。其中,LSB为先发送的比特。
情况B8,该比特为第一个为0的比特,该比特对应的比特组的前4比特为BTF部分,该BTF部分为0xC;或者该比特不为第一个为0的比特,该比特对应的比特组的前8比特为BTF部分,该BTF部分为0xCC。
示例性地,针对情况B8,该比特对应的比特组的BTF部分之后包括4个数据字节,1个3比特的终止控制字和3个控制比特组,每个控制比特组包括7比特。码流块的控制块为0xF0,码流块的数据块为64比特。数据块的第31比特至第0比特基于4个数据字节的各个比特得到,数据块的第39比特至第32比特为0xFD,其余24比特基于3个控制比特组得到,其中,其余24比特中的每8比特基于一个控制比特组得到。其中,LSB为先发送的比特。
情况B9,该比特为第一个为0的比特,该比特对应的比特组的前4比特为BTF部分,该BTF部分为0x2;或者该比特不为第一个为0的比特,该比特对应的比特组的前8比特为BTF部分,该BTF部分为0xD2。
示例性地,针对情况B9,该比特对应的比特组的BTF部分之后包括5个数据字节,1个2比特的终止控制字和2个控制比特组,每个控制比特组包括7比特。码流块的控制块为0xE0,码流块的数据块为64比特。数据块的第39比特至第0比特基于5个数据字节的各个比特得到,数据块的第47比特至第40比特为0xFD,其余16比特基于2个控制比特组得到,其中,其余16比特中的每8比特基于一个控制比特组。其中,LSB为先发送的比特。
情况B10,该比特为第一个为0的比特,该比特对应的比特组的前4比特为BTF部分,该BTF部分为0x1;或者该比特不为第一个为0的比特,该比特对应的比特组的前8比特为BTF部分,该BTF部分为0xE1。
示例性地,针对情况B10,该比特对应的比特组的BTF部分之后包括6个数据字节,1个1比特的终止控制字和1个7比特的控制比特组。码流块的控制块为0xC0,码流块的数据块为64比特。数据块的第47比特至第0比特基于6个数据字节的各个比特得到,数据块的第55比特至第48比特为0xFD,其余8比特基于控制比特组得到。其中,LSB为先发送的比特。
情况B11,该比特为第一个为0的比特,该比特对应的比特组的前4比特为BTF部分,该BTF部分为0xF;或者该比特不为第一个为0的比特,该比特对应的比特组的前8比特为BTF部分,该BTF部分为0xFF。
示例性地,针对情况B11,该比特对应的比特组的BTF部分之后包括7个数据字节。码流块的控制块为0x80,码流块的数据块为64比特。数据块的第55比特至第0比特基于7个数据字节的各个比特得到,数据块的第63比特至第56比特为0xFD。其中,LSB为先发送的比特。
在一些实施例中,基于类型、类型指示中与2n组码流块对应的比特和码块内容中与2n组码流块对应的比特组得到2n组码流块的控制块,基于类型指示中与2n组码流块对应的比特对码块内容中与2n组码流块对应的比特组进行第一解码得到2n组码流块的数据块,包括:基于2n个比特组获取2n个64比特的第三比特组,基于类型、类型指示中与2n组码流块对应的比特和2n个第三比特组得到2n组码流块的控制块,基于类型指示中与2n组码流块对应的比特对2n个第三比特组进行第一解码得到2n组码流块的数据块。
示例性地,对于第一个为0的比特,该比特对应的比特组包括4比特BTF部分,基于该4比特BTF部分获取8比特BTF部分,得到第三比特组。例如,基于该4比特BTF部分查询IEEE802.3标准,以获取8比特BTF部分,或者基于4比特BTF部分查询4比特BTF部分和8比特BTF部分的对应表,以获取8比特BTF部分。
在查询成功的情况下,也即IEEE802.3标准中包括该4比特BTF部分对应的8比特BTF部分,或者对应表中包括该4比特BTF部分对应的8比特BTF部分,将该8比特BTF部分作为获取到的8比特BTF部分。在查询失败的情况下,也即IEEE802.3标准中不包括该4比特BTF部分对应的8比特BTF部分,或者对应表中不包括该4比特BTF部分对应的8比特BTF部分,标记该4比特BTF部分以获取8比特BTF部分。关于标记4比特BTF部分的方式,本申请实施例不加以限定,例如将4比特BTF部分作为第3比特至第0比特,将第7比特至第4比特均置为0。示例性地,在查询失败的情况下,基于该第三比特组得到的码流块的控制块为0xFF,数据块为0xFEFEFEFE。
在另一些实施例中,对于第一个为0的比特,基于类型、该比特和该比特对应的比特组得到码流块的控制块,基于该比特对该比特对应的比特组进行第一解码得到码流块的数据块,包括:基于该比特对应的比特组包括的4比特BTF部分查询8比特BTF部分,在查询失败的情况下,将码流块的控制块置为0xFF,将码流块的数据块置为0xFEFEFEFE。关于基于4比特BTF部分查询8比特BTF部分的方式,与上述相关内容中的查询方式原理相同,此处不再赘述。
解码方式三,基于目标码块的类型和数据单元,确定目标码块的类型为错误码块;得到2n组码流块的控制块和数据块,2n组码流块均为错误码流块。
示例性地,数据单元包括类型指示,类型和类型指示用于指示目标码块为错误码块;2n组码流块中每组码流块包括的控制块为第一值,2n组码流块中每组码流块包括的数据块为第二值,第一值和第二值用于指示码流块为错误码流块。例如,目标码块的类型为0,类型指示为1111,该目标码块为错误码块,则经第一解码得到的2n组码流块中每组码流块包括的控制块为0xFF,2n组码流块中每组码流块包括的数据块均为0xFEFEFEFE。
由于本申请实施例提供的解码方法能够对不同类型的目标码块进行第一解码,以得到2n组码流块,该方法的适用性较广。
在一种可能的实现方式中,根据目标码块的类型和数据单元,对目标码块进行第一解码,得到2n组码流块,包括:基于目标码块的类型和数据单元得到错误检测结果;根据错误检测结果以及目标码块的类型和数据单元对目标码块进行第一解码,得到2n组码流块。也就是说,2n组码流块根据错误检测结果以及目标码块的类型和数据单元对目标码块进行第一解码得到,错误检测结果基于目标码块的类型和数据单元得到。
示例性地,基于目标码块的类型和数据单元得到错误检测结果,包括:基于目标码块的类型和数据单元得到目标码块的内容和内容顺序,基于目标码块的内容和内容顺序得到错误检测结果。例如,当目标码块的内容顺序为第三错误情况集合中的至少一种情况时,该目标码块的内容顺序错误,当目标码块的内容顺序不为第三错误情况集合中的任一种情况时,该目标码块的内容顺序正确。又例如,当目标码块的内容为第四错误情况集合中的至少一种情况时,该目标码块的内容错误,当目标码块的内容不为第四错误情况集合中的任一种情况时,该目标码块的内容正确。
在一种可能的实现方式中,以目标码块为控制码块,该目标码块包括四个比特组为例进行说明,对于相邻的两个比特组,第三错误情况集合包括但不限于如下4种情况:
(1)在前一个比特组包括起始控制字(/S/)的情况下,后一个比特组包括除数据字节以外的其他内容。
(2)在前一个比特组仅包括数据字节的情况下,后一个比特组包括除数据字节或终止控制字(/T/)以外的其他内容。
(3)在前一个比特组包括终止控制字的情况下,后一个比特组包括除空闲控制字(/I/)或序列有序集控制字(/O/)以外的其他内容。
(4)在前一个比特组包括空闲控制字或序列有序集控制字的情况下,后一个比特组包括数据字节或终止控制字。
本申请实施例中的控制字的具体含义和取值可参考具体参考IEEE802.3-2018,本申请实施例不再赘述。
在一种可能的实现方式中,以一个比特组为例进行说明,第四错误情况集合包括但不限于如下4种情况:
(1)对于包括起始控制字的比特组,起始控制字后为除数据字节以外的其他内容。
(2)对于包括数据字节的比特组,数据字节后为除数据字节或终止控制字以外的其他内容。
(3)对于包括终止控制字的比特组,终止控制字后为除空闲控制字或序列有序集控制字以外的其他内容。
(4)对于包括空闲控制字或序列有序集控制字的比特组,空闲控制字或序列有序集控制字后为数据字节或终止控制字。
在一种可能的实现方式中,错误检测结果包括目标码块的内容顺序错误或内容错误,根据错误检测结果以及目标码块的类型和数据单元对目标码块进行第一解码,得到2n组码流块,包括:对目标码块进行转换得到第二码块,根据第二码块的类型和数据单元对第二码块进行第一解码得到2n组码流块。也即,2n组码流块根据第二码块的类型和数据单元对第二码块进行第一解码得到,第二码块是对目标码块进行转换得到的且与目标码块比特数相同的码块。
示例性地,对目标码块进行转换得到第二码块,包括:对于目标码块中内容顺序错误或内容错误的比特组,将该内容顺序错误或内容错误的比特组转换为错误控制字;基于该错误控制字和目标码块中内容顺序正确且内容正确的比特组,得到第二码块。例如,将第一比特组转换为第一错误控制字,该第一比特组是内容顺序错误或内容错误的比特组。又例如,将第二比特组转换为第二错误控制字,该第二比特组是内容顺序错误或内容错误的比特组。在一种可能的实现方式中,转换得到的第二码块为控制码块,可以采用解码方式二对该第二码块进行第一解码。
在另一种可能的实现方式中,错误检测结果包括目标码块的内容顺序错误或内容错误,根据错误检测结果以及目标码块的类型和数据单元对目标码块进行第一解码,得到2n组码流块,包括:基于目标码块的类型和数据单元对目标码块进行第一解码得到2n组第一码流块,对2n组第一码流块进行转换得到2n组码流块。也就是说,2n组码流块基于对2n组第一码流块进行转换得到,2n组第一码流块基于目标码块的类型和数据单元对目标码块进行第一解码得到。
示例性地,对2n组第一码流块进行转换得到2n组码流块,包括:对于2n组第一码流块中基于内容顺序错误或内容错误的比特组得到的码流块,将该码流块转换为错误码流块。例如,错误码流块的控制块为0xFF,数据块为0xFEFEFEFE。通过对存在错误的目标码块进行处理,使得接收端能够区分错误数据和正确数据,保证数据的可靠性。
本申请实施例提供的解码方法,对目标码块进行第一解码得到包括控制块和数据块的2n组码流块,而不必对目标码块进行转码得到2n个66比特码块,再对2n个66比特码块进行解码得到2n组码流块。由此,解码效率得以提高,解码过程所带来的时延、功耗和芯片面积占用都得以降低。
以上介绍了本申请实施例提供的编码方法,与上述方法对应,本申请实施例还提供了编码装置。图8是本申请实施例提供的一种编码装置的结构示意图,该装置应用于第一网络设备,该第一网络设备为上述图1所示实施例中的第一网络设备。基于图8所示的如下多个模块,该图8所示的编码装置能够执行第一网络设备所执行的全部或部分操作。应理解到,该装置可以包括比所示模块更多的附加模块或者省略其中所示的一部分模块,本申请实施例对此并不进行限制。如图8所示,该装置包括:
获取模块801,用于获取2n组码流块,任一组码流块包括控制块和数据块,n为大于1的整数;
第一编码模块802,用于对2n组码流块进行第一编码,得到目标码块,目标码块包括基于2n组码流块的控制块确定的类型和基于2n组码流块的控制块和数据块确定的数据单元。
在一种可能的实现方式中,类型用于指示目标码块为数据码块;数据单元基于2n组码流块的顺序对2n组码流块的数据块进行第一编码得到。
在一种可能的实现方式中,类型用于指示目标码块为控制码块;数据单元包括类型指示和码块内容,码块内容基于2n组码流块的控制块和数据块确定的顺序对2n组码流块的数据块进行第一编码得到,类型指示基于2n组码流块的控制块得到,类型指示用于指示各组码流块的类型。
在一种可能的实现方式中,目标码块为错误码块,错误码块中包括用于标识错误的数据。
在一种可能的实现方式中,目标码块基于错误检测结果对2n组码流块进行处理得到,错误检测结果基于2n组码流块的控制块和数据块得到。
在一种可能的实现方式中,错误检测结果包括2n组码流块的内容顺序错误或内容错误,目标码块基于2n组码流块中内容顺序正确且内容正确的码流块以及错误块进行第一编码得到,错误块基于2n组码流块中内容顺序错误或内容错误的码流块得到。
在一种可能的实现方式中,控制块包括m比特,数据块包括8m比特,m为正整数。
在一种可能的实现方式中,n的取值为2,m的取值为8,目标码块为257比特。
在一种可能的实现方式中,2n组码流块均来自介质无关接口MII。
在一种可能的实现方式中,该装置还包括:第二编码模块803,用于按照前向纠错FEC码型对目标码块进行第二编码,得到第一数据;发送模块804,用于发送第一数据。
本申请实施例提供的编码装置,对包括控制块和数据块的2n组码流块进行第一编码得到目标码块,而不必对2n组码流块中的每组码流块进行64B/66B编码得到2n个66比特码块,再对2n个66比特码块进行转码得到目标码块。由此,编码效率得以提高,编码过程所带来的时延、功耗和芯片面积占用都得以降低。
以上介绍了本申请实施例提供的解码方法,与上述方法对应,本申请实施例还提供了解码装置。图9是本申请实施例提供的一种解码装置的结构示意图,该装置可应用于第二网络设备,该第二网络设备为上述图1所示实施例中的第二网络设备。基于图9所示的如下多个模块,该图9所示的解码装置能够执行第二网络设备所执行的全部或部分操作。应理解到,该装置可以包括比所示模块更多的附加模块或者省略其中所示的一部分模块,本申请实施例对此并不进行限制。如图9所示,该装置包括:
获取模块901,用于获取目标码块,目标码块包括类型和数据单元;
解码模块902,用于根据目标码块的类型和数据单元,对目标码块进行第一解码,得到2n组码流块,任一组码流块包括基于类型和数据单元得到的控制块和数据块,n为大于1的整数。
在一种可能的实现方式中,类型用于指示目标码块为数据码块;2n组码流块中的第i组码流块包括的数据块是基于对数据单元中与第i组码流块对应的8m长度的内容进行第一解码得到的,m为正整数,i为大于等于1且小于等于2n的整数或者i为大于等于0且小于等于2n-1的整数。
在一种可能的实现方式中,类型用于指示目标码块为控制码块,数据单元包括类型指示和码块内容,类型指示包括2n个比特,2n个比特中的1个比特用于指示2n组码流块中与比特对应的一组码流块的类型,码块内容包括2n个比特组;2n组码流块中的第i组码流块包括的控制块是基于类型、类型指示中与第i组码流块对应的比特和码块内容中与第i组码流块对应的比特组得到的,i为大于等于1且小于等于2n的整数或者i为大于等于0且小于等于2n-1的整数;2n组码流块中的第i组码流块包括的数据块是基于类型指示中与第i组码流块对应的比特对码块内容中与第i组码流块对应的比特组进行第一解码得到的。
在一种可能的实现方式中,2n个比特组包括第一比特组和2n-1个第二比特组,第一比特组包括的比特数量和第二比特组包括的比特数量不相同。
在一种可能的实现方式中,数据单元包括类型指示,类型和类型指示用于指示目标码块为错误码块;2n组码流块中每组码流块包括的控制块为第一值,2n组码流块中每组码流块包括的数据块为第二值,第一值和第二值用于指示码流块为错误码流块。
在一种可能的实现方式中,获取模块,用于接收第二数据,第二数据是基于采用前向纠错FEC码型编码的第一数据获得的;对第二数据进行第二解码获取目标码块,第二解码为纠错处理。
在一种可能的实现方式中,目标码块是对第二数据进行纠错但未成功纠错所获得的码块。
在一种可能的实现方式中,获取模块901,用于接收第二数据,第二数据是基于采用前向纠错FEC码型编码的第一数据获得的;对第二数据进行第二解码获取目标码块,第二解码为检错但不纠错处理。
在一种可能的实现方式中,目标码块是从第二数据检出错误但不纠错所获得的码块。
在一种可能的实现方式中,2n组码流块根据错误检测结果以及目标码块的类型和数据单元对目标码块进行第一解码得到,错误检测结果基于目标码块的类型和数据单元得到。
在一种可能的实现方式中,错误检测结果包括目标码块的内容顺序错误或内容错误,2n组码流块根据第二码块的类型和数据单元对第二码块进行第一解码得到,第二码块是对目标码块进行转换得到的且与目标码块比特数相同的码块。
在一种可能的实现方式中,错误检测结果包括目标码块的内容顺序错误或内容错误,2n组码流块基于对2n组第一码流块进行转换得到,2n组第一码流块基于目标码块的类型和数据单元对目标码块进行第一解码得到。
在一种可能的实现方式中,控制块包括m比特,数据块包括8m比特,m为正整数。
在一种可能的实现方式中,n的取值为2,m的取值为8,目标码块为257比特。
在一种可能的实现方式中,2n组码流块均为介质无关接口MII格式。
本申请实施例提供的解码装置,对目标码块进行第一解码得到包括控制块和数据块的2n组码流块,而不必对目标码块进行转码得到2n个66比特码块,再对2n个66比特码块进行解码得到2n组码流块。由此,解码效率得以提高,解码过程所带来的时延、功耗和芯片面积占用都得以降低。
应理解的是,上述图8和图9提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述实施例中的设备的具体硬件结构如图10所示的网络设备1500,包括收发器1501、处理器1502和存储器1503。收发器1501、处理器1502和存储器1503之间通过总线1504连接。其中,收发器1501用于接收报文和发送报文,存储器1503用于存放指令或程序代码,处理器1502用于调用存储器1503中的指令或程序代码使得设备执行上述方法实施例中第一网络设备或第二网络设备的相关处理步骤。在具体实施例中,本申请实施例的网络设备1500可对应于上述各个方法实施例中的第一网络设备或第二网络设备,网络设备1500中的处理器1502读取存储器1503中的指令或程序代码,使图10所示的网络设备1500能够执行第一网络设备或第二网络设备所执行的全部或部分操作。
网络设备1500还可以对应于上述图8和图9所示的装置,例如,图8和图9中所涉及的获取模块801和获取模块901相当于收发器1501,编码模块802和解码模块902处理器1502。
参见图11,图11示出了本申请一个示例性实施例提供的网络设备2000的结构示意图。图11所示的网络设备2000用于执行上述图2所示的编码方法所涉及的操作和图7所示的解码方法所涉及的操作。该网络设备2000例如是交换机、路由器等。
如图11所示,网络设备2000包括至少一个处理器2001、存储器2003以及至少一个通信接口2004。
处理器2001例如是通用中央处理器(central processing unit,CPU)、数字信号处理器(digital signal processor,DSP)、网络处理器(network processer,NP)、图形处理器(graphics processing unit,GPU)、神经网络处理器(neural-network processingunits,NPU)、数据处理单元(data processing unit,DPU)、微处理器或者一个或多个用于实现本申请方案的集成电路。例如,处理器2001包括专用集成电路(application-specificintegrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。PLD例如是复杂可编程逻辑器件(complex programmable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。其可以实现或执行结合本发明实施例公开内容所描述的各种逻辑方框、模块和电路。所述处理器也可以是实现计算功能的组合,例如包括一个或多个微处理器组合,DSP和微处理器的组合等等。
可选的,网络设备2000还包括总线。总线用于在网络设备2000的各组件之间传送信息。总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。图11中网络设备2000的各组件之间除了采用总线连接,还可采用其他方式连接,本发明实施例不对各组件的连接方式进行限定。
存储器2003例如是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,又如是随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,又如是电可擦可编程只读存储器(electrically erasable programmable read-only Memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器2003例如是独立存在,并通过总线与处理器2001相连接。存储器2003也可以和处理器2001集成在一起。
通信接口2004使用任何收发器一类的装置,用于与其它设备或通信网络通信,通信网络可以为以太网、无线接入网(RAN)或无线局域网(wireless local area networks,WLAN)等。通信接口2004可以包括有线通信接口,还可以包括无线通信接口。具体的,通信接口2004可以为以太(ethernet)接口、快速以太(fast ethernet,FE)接口、千兆以太(gigabit ethernet,GE)接口,异步传输模式(asynchronous transfer mode,ATM)接口,无线局域网(wireless local area networks,WLAN)接口,蜂窝网络通信接口或其组合。以太网接口可以是光接口,电接口或其组合。在本申请实施例中,通信接口2004可以用于网络设备2000与其他设备进行通信。
在具体实现中,作为一种实施例,处理器2001可以包括一个或多个CPU,如图11中所示的CPU0和CPU1。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,网络设备2000可以包括多个处理器,如图11中所示的处理器2001和处理器2005。这些处理器中的每一个可以是一个单核处理器(single-CPU),也可以是一个多核处理器(multi-CPU)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,网络设备2000还可以包括输出设备和输入设备。输出设备和处理器2001通信,可以以多种方式来显示信息。例如,输出设备可以是液晶显示器(liquid crystal display,LCD)、发光二级管(light emitting diode,LED)显示设备、阴极射线管(cathode ray tube,CRT)显示设备或投影仪(projector)等。输入设备和处理器2001通信,可以以多种方式接收用户的输入。例如,输入设备可以是鼠标、键盘、触摸屏设备或传感设备等。
在一些实施例中,存储器2003用于存储执行本申请方案的程序代码2010,处理器2001可以执行存储器2003中存储的程序代码2010。也即是,网络设备2000可以通过处理器2001以及存储器2003中的程序代码2010,来实现方法实施例提供的编码方法或解码方法。程序代码2010中可以包括一个或多个软件模块。可选地,处理器2001自身也可以存储执行本申请方案的程序代码或指令。
在具体实施例中,本申请实施例的网络设备2000可对应于上述各个方法实施例中的第一网络设备或第二网络设备,网络设备2000中的处理器2001读取存储器2003中的程序代码2010或处理器2001自身存储的程序代码或指令,使图11所示的网络设备2000能够执行第一网络设备或第二网络设备所执行的全部或部分操作。
网络设备2000还可以对应于上述图8和图9所示的装置,图8和图9所示的装置中的每个功能模块采用网络设备2000的软件实现。换句话说,图8和图9所示的装置包括的功能模块为网络设备2000的处理器2001读取存储器2003中存储的程序代码2010后生成的。例如,图8和图9中所涉及的获取模块801和获取模块901相当于通信接口2004,编码模块802和解码模块902相当于处理器2001和/或处理器2005。
其中,图2和图7所示的方法的各步骤通过网络设备2000的处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤,为避免重复,这里不再详细描述。
参见图12,图12示出了本申请另一个示例性实施例提供的网络设备2100的结构示意图。图12所示的网络设备2100用于执行上述图2和图7所示的方法所涉及的全部或部分操作。该网络设备2100例如是交换机、路由器等,该网络设备2100可以由一般性的总线体系结构来实现。
如图12所示,网络设备2100包括:主控板2110和接口板2130。
主控板也称为主处理单元(main processing unit,MPU)或路由处理卡(routeprocessor card),主控板2110用于对网络设备2100中各个组件的控制和管理,包括路由计算、设备管理、设备维护、协议处理功能。主控板2110包括:中央处理器2111和存储器2112。
接口板2130也称为线路接口单元卡(line processing unit,LPU)、线卡(linecard)或业务板。接口板2130用于提供各种业务接口并实现数据包的转发。业务接口包括而不限于以太网接口、POS(packet over SONET/SDH)接口等,以太网接口例如是灵活以太网业务接口(flexible ethernet clients,FlexE Clients)。接口板2130包括:中央处理器2131网络处理器2132、转发表项存储器2134和物理接口卡(physical interface card,PIC)2133。
接口板2130上的中央处理器2131用于对接口板2130进行控制管理并与主控板2110上的中央处理器2111进行通信。
网络处理器2132用于实现报文的发送处理。网络处理器2132的形态可以是转发芯片。转发芯片可以是网络处理器(network processor,NP)。在一些实施例中,转发芯片可以通过专用集成电路(application-specific integrated circuit,ASIC)或现场可编程门阵列(field programmable gate array,FPGA)实现。具体而言,网络处理器2132用于基于转发表项存储器2134保存的转发表转发接收到的报文,如果报文的目的地址为网络设备2100的地址,则将该报文上送至CPU(如中央处理器2131)处理;如果报文的目的地址不是网络设备2100的地址,则根据该目的地址从转发表中查找到该目的地址对应的下一跳和出接口,将该报文转发到该目的地址对应的出接口。其中,上行报文的处理可以包括:报文入接口的处理,转发表查找;下行报文的处理可以包括:转发表查找等等。在一些实施例中,中央处理器也可执行转发芯片的功能,比如基于通用CPU实现软件转发,从而接口板中不需要转发芯片。
物理接口卡2133用于实现物理层的对接功能,原始的流量由此进入接口板2130,以及处理后的报文从该物理接口卡2133发出。物理接口卡2133也称为子卡,可安装在接口板2130上,负责将光电信号转换为报文并对报文进行合法性检查后转发给网络处理器2132处理。在一些实施例中,中央处理器2131也可执行网络处理器2132的功能,比如基于通用CPU实现软件转发,从而物理接口卡2133中不需要网络处理器2132。
可选地,网络设备2100包括多个接口板,例如网络设备2100还包括接口板2140,接口板2140包括:中央处理器2141、网络处理器2142、转发表项存储器2144和物理接口卡2143。接口板2140中各部件的功能和实现方式与接口板2130相同或相似,在此不再赘述。
可选地,网络设备2100还包括交换网板2120。交换网板2120也可以称为交换网板单元(switch fabric unit,SFU)。在网络设备有多个接口板的情况下,交换网板2120用于完成各接口板之间的数据交换。例如,接口板2130和接口板2140之间可以通过交换网板2120通信。
主控板2110和接口板耦合。例如。主控板2110、接口板2130和接口板2140,以及交换网板2120之间通过***总线与***背板相连实现互通。在一种可能的实现方式中,主控板2110和接口板2130及接口板2140之间建立进程间通信协议(inter-processcommunication,IPC)通道,主控板2110和接口板2130及接口板2140之间通过IPC通道进行通信。
在逻辑上,网络设备2100包括控制面和转发面,控制面包括主控板2110和中央处理器2111,转发面包括执行转发的各个组件,比如转发表项存储器2134、物理接口卡2133和网络处理器2132。控制面执行路由器、生成转发表、处理信令和协议报文、配置与维护网络设备的状态等功能,控制面将生成的转发表下发给转发面,在转发面,网络处理器2132基于控制面下发的转发表对物理接口卡2133收到的报文查表转发。控制面下发的转发表可以保存在转发表项存储器2134中。在有些实施例中,控制面和转发面可以完全分离,不在同一网络设备上。
值得说明的是,主控板可能有一块或多块,有多块的时候可以包括主用主控板和备用主控板。接口板可能有一块或多块,网络设备的数据处理能力越强,提供的接口板越多。接口板上的物理接口卡也可以有一块或多块。交换网板可能没有,也可能有一块或多块,有多块的时候可以共同实现负荷分担冗余备份。在集中式转发架构下,网络设备可以不需要交换网板,接口板承担整个***的业务数据的处理功能。在分布式转发架构下,网络设备可以有至少一块交换网板,通过交换网板实现多块接口板之间的数据交换,提供大容量的数据交换和处理能力。所以,分布式架构的网络设备的数据接入和处理能力要大于集中式架构的网络设备。可选地,网络设备的形态也可以是只有一块板卡,即没有交换网板,接口板和主控板的功能集成在该一块板卡上,此时接口板上的中央处理器和主控板上的中央处理器在该一块板卡上可以合并为一个中央处理器,执行两者叠加后的功能,这种形态网络设备的数据交换和处理能力较低(例如,低端交换机或路由器等网络设备)。具体采用哪种架构,取决于具体的组网部署场景,此处不做任何限定。
在具体实施例中,网络设备2100对应于上述图8和图9所示的装置。在一些实施例中,图8和图9所示的装置中的获取模块801和获取模块901相当于网络设备2100中的物理接口卡2133或物理接口卡2143。图8和图9所示的装置中的编码模块802和解码模块902相当于网络设备2100中的中央处理器2111、网络处理器2132和网络处理器2142中的至少一个。
基于上述图10、图11及图12所示的网络设备,本申请实施例还提供了一种通信***,该***包括:第一网络设备及第二网络设备。可选的,第一网络设备为图10所示的网络设备1500或图11所示的网络设备2000或图12所示的网络设备2100,第二网络设备为图10所示的网络设备1500或图11所示的网络设备2000或图12所示的网络设备2100。
第一网络设备及第二网络设备所执行的方法可参见上述图1、图2和图7所示实施例的相关描述,此处不再加以赘述。
应理解的是,上述处理器可以是中央处理器(central processing unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(advanced RISC machines,ARM)架构的处理器。
进一步地,在一种可选的实施例中,上述存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。
该存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用。例如,静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic random access memory,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data dateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。
还提供了一种计算机可读存储介质,存储介质中存储有至少一条程序指令或代码,所述程序指令或代码由处理器加载并执行时以使计算机实现图2中的编码方法或者图7中的解码方法。
本申请提供了一种计算机程序(产品),当计算机程序被计算机执行时,可以使得处理器或计算机执行上述方法实施例中对应的各个步骤和/或流程。
提供了一种芯片,包括处理器,用于从存储器中调用并运行所述存储器中存储的指令,使得安装有所述芯片的通信设备执行上述各方面中的方法。
提供另一种芯片,包括:输入接口、输出接口、处理器和存储器,所述输入接口、输出接口、所述处理器以及所述存储器之间通过内部连接通路相连,所述处理器用于执行所述存储器中的代码,当所述代码被执行时,处理器用于执行上述各方面中的方法。
还提供了一种设备,该设备包括上述芯片。可选地,该设备为网络设备。示例性地,该设备为路由器或交换机或服务器。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solidstate disk,SSD)等。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请的保护范围之内。
本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和模块,能够以软件、硬件、固件或者其任意组合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机程序指令。作为示例,本申请实施例的方法可以在机器可执行指令的上下文中被描述,机器可执行指令诸如包括在目标的真实或者虚拟处理器上的器件中执行的程序模块中。一般而言,程序模块包括例程、程序、库、对象、类、组件、数据结构等,其执行特定的任务或者实现特定的抽象数据结构。在各实施例中,程序模块的功能可以在所描述的程序模块之间合并或者分割。用于程序模块的机器可执行指令可以在本地或者分布式设备内执行。在分布式设备中,程序模块可以位于本地和远程存储介质二者中。
用于实现本申请实施例的方法的计算机程序代码可以用一种或多种编程语言编写。这些计算机程序代码可以提供给通用计算机、专用计算机或其他可编程的数据处理装置的处理器,使得程序代码在被计算机或其他可编程的数据处理装置执行的时候,引起在流程图和/或框图中规定的功能/操作被实施。程序代码可以完全在计算机上、部分在计算机上、作为独立的软件包、部分在计算机上且部分在远程计算机上或完全在远程计算机或服务器上执行。
在本申请实施例的上下文中,计算机程序代码或者相关数据可以由任意适当载体承载,以使得设备、装置或者处理器能够执行上文描述的各种处理和操作。载体的示例包括信号、计算机可读介质等等。
信号的示例可以包括电、光、无线电、声音或其它形式的传播信号,诸如载波、红外信号等。
机器可读介质可以是包含或存储用于或有关于指令执行***、装置或设备的程序的任何有形介质。机器可读介质可以是机器可读信号介质或机器可读存储介质。机器可读介质可以包括但不限于电子的、磁的、光学的、电磁的、红外的或半导体***、装置或设备,或其任意合适的组合。机器可读存储介质的更详细示例包括带有一根或多根导线的电气连接、便携式计算机磁盘、硬盘、随机存储存取器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光存储设备、磁存储设备,或其任意合适的组合。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的***、设备和模块的具体工作过程,可以参见前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、设备或模块的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
该作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以是两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
该集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例中方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。还应理解,尽管以下描述使用术语第一、第二等来描述各种元素,但这些元素不应受术语的限制。这些术语只是用于将一元素与另一元素区别分开。例如,在不脱离各种所述示例的范围的情况下,第一网络设备可以被称为第二网络设备,并且类似地,第二网络设备可以被称为第一网络设备。第一网络设备和第二网络设备都可以是任一类型的网络设备,并且在某些情况下,可以是单独且不同的网络设备。
还应理解,在本申请的各个实施例中,各个过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本申请中术语“至少一个”的含义是指一个或多个,本申请中术语“多个”的含义是指两个或两个以上,例如,多个第二报文是指两个或两个以上的第二报文。本文中术语“***”和“网络”经常可互换使用。
应理解,在本文中对各种所述示例的描述中所使用的术语只是为了描述特定示例,而并非旨在进行限制。如在对各种所述示例的描述和所附权利要求书中所使用的那样,单数形式“一个(“a”,“an”)”和“该”旨在也包括复数形式,除非上下文另外明确地指示。
还应理解,术语“包括”(也称“includes”、“including”、“comprises”和/或“comprising”)当在本说明书中使用时指定存在所陈述的特征、整数、步骤、操作、元素、和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元素、部件、和/或其分组。
还应理解,术语“若”和“如果”可被解释为意指“当...时”(“when”或“upon”)或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“若确定...”或“若检测到[所陈述的条件或事件]”可被解释为意指“在确定...时”或“响应于确定...”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
还应理解,说明书通篇中提到的“一个实施例”、“一实施例”、“一种可能的实现方式”意味着与实施例或实现方式有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”、“一种可能的实现方式”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
Claims (56)
1.一种编码方法,其特征在于,所述方法包括:
获取2n组码流块,任一组码流块包括控制块和数据块,所述n为大于1的整数;
对所述2n组码流块进行第一编码,得到目标码块,所述目标码块包括基于所述2n组码流块的控制块确定的类型和基于所述2n组码流块的控制块和数据块确定的数据单元。
2.根据权利要求1所述的方法,其特征在于,所述类型用于指示所述目标码块为数据码块;
所述数据单元基于所述2n组码流块的顺序对所述2n组码流块的数据块进行所述第一编码得到。
3.根据权利要求1所述的方法,其特征在于,所述类型用于指示所述目标码块为控制码块;
所述数据单元包括类型指示和码块内容,所述码块内容基于所述2n组码流块的控制块和数据块确定的顺序对所述2n组码流块的数据块进行所述第一编码得到,所述类型指示基于所述2n组码流块的控制块得到,所述类型指示用于指示各组码流块的类型。
4.根据权利要求3所述的方法,其特征在于,所述目标码块为错误码块,所述错误码块中包括用于标识错误的数据。
5.根据权利要求1-4任一所述的方法,其特征在于,所述目标码块基于错误检测结果对所述2n组码流块进行处理得到,所述错误检测结果基于所述2n组码流块的控制块和数据块得到。
6.根据权利要求5所述的方法,其特征在于,所述错误检测结果包括所述2n组码流块的内容顺序错误或内容错误,所述目标码块基于所述2n组码流块中内容顺序正确且内容正确的码流块以及错误块进行所述第一编码得到,所述错误块基于所述2n组码流块中内容顺序错误或内容错误的码流块得到。
7.根据权利要求1-6任一所述的方法,其特征在于,所述控制块包括m比特,所述数据块包括8m比特,所述m为正整数。
8.根据权利要求7所述的方法,其特征在于,所述n的取值为2,所述m的取值为8,所述目标码块为257比特。
9.根据权利要求1-8任一所述的方法,其特征在于,所述2n组码流块均来自介质无关接口MII。
10.根据权利要求1-9任一所述的方法,其特征在于,所述得到目标码块之后,还包括:
按照前向纠错FEC码型对所述目标码块进行第二编码,得到第一数据;
发送所述第一数据。
11.一种解码方法,其特征在于,所述方法包括:
获取目标码块,所述目标码块包括类型和数据单元;
根据所述目标码块的类型和数据单元,对所述目标码块进行第一解码,得到2n组码流块,任一组码流块包括基于所述类型和所述数据单元得到的控制块和数据块,所述n为大于1的整数。
12.根据权利要求11所述的方法,其特征在于,所述类型用于指示所述目标码块为数据码块;
所述2n组码流块中的第i组码流块包括的数据块是基于对所述数据单元中与所述第i组码流块对应的8m长度的内容进行所述第一解码得到的,所述m为正整数,所述i为大于等于1且小于等于2n的整数或者所述i为大于等于0且小于等于2n-1的整数。
13.根据权利要求11所述的方法,其特征在于,所述类型用于指示所述目标码块为控制码块,所述数据单元包括类型指示和码块内容,所述类型指示包括2n个比特,所述2n个比特中的1个比特用于指示所述2n组码流块中与所述比特对应的一组码流块的类型,所述码块内容包括2n个比特组;
所述2n组码流块中的第i组码流块包括的控制块是基于所述类型、所述类型指示中与所述第i组码流块对应的比特和所述码块内容中与所述第i组码流块对应的比特组得到的,所述i为大于等于1且小于等于2n的整数或者所述i为大于等于0且小于等于2n-1的整数;
所述2n组码流块中的第i组码流块包括的数据块是基于所述类型指示中与所述第i组码流块对应的比特对所述码块内容中与所述第i组码流块对应的比特组进行所述第一解码得到的。
14.根据权利要求13所述的方法,其特征在于,所述2n个比特组包括第一比特组和2n-1个第二比特组,所述第一比特组包括的比特数量和所述第二比特组包括的比特数量不相同。
15.根据权利要求11所述的方法,其特征在于,所述数据单元包括类型指示,所述类型和所述类型指示用于指示所述目标码块为错误码块;
所述2n组码流块中每组码流块包括的控制块为第一值,所述2n组码流块中每组码流块包括的数据块为第二值,所述第一值和所述第二值用于指示所述码流块为错误码流块。
16.根据权利要求11-15任一所述的方法,其特征在于,所述获取目标码块,包括:
接收第二数据,所述第二数据是基于采用前向纠错FEC码型编码的第一数据获得的;
对所述第二数据进行第二解码获取所述目标码块,所述第二解码为纠错处理。
17.根据权利要求16所述的方法,其特征在于,所述目标码块是对所述第二数据进行纠错但未成功纠错所获得的错误码块。
18.根据权利要求11-15任一所述的方法,其特征在于,所述获取目标码块,包括:
接收第二数据,所述第二数据是基于采用前向纠错FEC码型编码的第一数据获得的;
对所述第二数据进行第二解码获取所述目标码块,所述第二解码为检错但不纠错处理。
19.根据权利要求18所述的方法,其特征在于,所述目标码块是从所述第二数据检出错误但不纠错所获得的错误码块。
20.根据权利要求11-15任一所述的方法,其特征在于,所述2n组码流块根据错误检测结果以及所述目标码块的类型和数据单元对所述目标码块进行所述第一解码得到,所述错误检测结果基于所述目标码块的类型和数据单元得到。
21.根据权利要求20所述的方法,其特征在于,所述错误检测结果包括所述目标码块的内容顺序错误或内容错误,所述2n组码流块根据第二码块的类型和数据单元对所述第二码块进行所述第一解码得到,所述第二码块是对所述目标码块进行转换得到的且与所述目标码块比特数相同的码块。
22.根据权利要求20所述的方法,其特征在于,所述错误检测结果包括所述目标码块的内容顺序错误或内容错误,所述2n组码流块基于对2n组第一码流块进行转换得到,所述2n组第一码流块基于所述目标码块的类型和数据单元对所述目标码块进行所述第一解码得到。
23.根据权利要求11-22任一所述的方法,其特征在于,所述控制块包括m比特,所述数据块包括8m比特,所述m为正整数。
24.根据权利要求23所述的方法,其特征在于,所述n的取值为2,所述m的取值为8,所述目标码块为257比特。
25.根据权利要求11-24任一所述的方法,其特征在于,所述2n组码流块均为介质无关接口MII格式。
26.一种编码装置,其特征在于,所述装置包括:
获取模块,用于获取2n组码流块,任一组码流块包括控制块和数据块,所述n为大于1的整数;
第一编码模块,用于对所述2n组码流块进行第一编码,得到目标码块,所述目标码块包括基于所述2n组码流块的控制块确定的类型和基于所述2n组码流块的控制块和数据块确定的数据单元。
27.根据权利要求26所述的装置,其特征在于,所述类型用于指示所述目标码块为数据码块;所述数据单元基于所述2n组码流块的顺序对所述2n组码流块的数据块进行所述第一编码得到。
28.根据权利要求26所述的装置,其特征在于,所述类型用于指示所述目标码块为控制码块;所述数据单元包括类型指示和码块内容,所述码块内容基于所述2n组码流块的控制块和数据块确定的顺序对所述2n组码流块的数据块进行所述第一编码得到,所述类型指示基于所述2n组码流块的控制块得到,所述类型指示用于指示各组码流块的类型。
29.根据权利要求28所述的装置,其特征在于,所述目标码块为错误码块,所述错误码块中包括用于标识错误的数据。
30.根据权利要求26-29任一所述的装置,其特征在于,所述目标码块基于错误检测结果对所述2n组码流块进行处理得到,所述错误检测结果基于所述2n组码流块的控制块和数据块得到。
31.根据权利要求30所述的装置,其特征在于,所述错误检测结果包括所述2n组码流块的内容顺序错误或内容错误,所述目标码块基于所述2n组码流块中内容顺序正确且内容正确的码流块以及错误块进行所述第一编码得到,所述错误块基于所述2n组码流块中内容顺序错误或内容错误的码流块得到。
32.根据权利要求26-31任一所述的装置,其特征在于,所述控制块包括m比特,所述数据块包括8m比特,所述m为正整数。
33.根据权利要求31所述的装置,其特征在于,所述n的取值为2,所述m的取值为8,所述目标码块为257比特。
34.根据权利要求26-33任一所述的装置,其特征在于,所述2n组码流块均来自介质无关接口MII。
35.根据权利要求26-34任一所述的装置,其特征在于,所述装置还包括:
第二编码模块,用于按照前向纠错FEC码型对所述目标码块进行第二编码,得到第一数据;
发送模块,用于发送所述第一数据。
36.一种解码装置,其特征在于,所述装置包括:
获取模块,用于获取目标码块,所述目标码块包括类型和数据单元;
解码模块,用于根据所述目标码块的类型和数据单元,对所述目标码块进行第一解码,得到2n组码流块,任一组码流块包括基于所述类型和所述数据单元得到的控制块和数据块,所述n为大于1的整数。
37.根据权利要求36所述的装置,其特征在于,所述类型用于指示所述目标码块为数据码块;所述2n组码流块中的第i组码流块包括的数据块是基于对所述数据单元中与所述第i组码流块对应的8m长度的内容进行所述第一解码得到的,所述m为正整数,所述i为大于等于1且小于等于2n的整数或者所述i为大于等于0且小于等于2n-1的整数。
38.根据权利要求36所述的装置,其特征在于,所述类型用于指示所述目标码块为控制码块,所述数据单元包括类型指示和码块内容,所述类型指示包括2n个比特,所述2n个比特中的1个比特用于指示所述2n组码流块中与所述比特对应的一组码流块的类型,所述码块内容包括2n个比特组;所述2n组码流块中的第i组码流块包括的控制块是基于所述类型、所述类型指示中与所述第i组码流块对应的比特和所述码块内容中与所述第i组码流块对应的比特组得到的,所述i为大于等于1且小于等于2n的整数或者所述i为大于等于0且小于等于2n-1的整数;所述2n组码流块中的第i组码流块包括的数据块是基于所述类型指示中与所述第i组码流块对应的比特对所述码块内容中与所述第i组码流块对应的比特组进行所述第一解码得到的。
39.根据权利要求38所述的装置,其特征在于,所述2n个比特组包括第一比特组和2n-1个第二比特组,所述第一比特组包括的比特数量和所述第二比特组包括的比特数量不相同。
40.根据权利要求36所述的装置,其特征在于,所述数据单元包括类型指示,所述类型和所述类型指示用于指示所述目标码块为错误码块;所述2n组码流块中每组码流块包括的控制块为第一值,所述2n组码流块中每组码流块包括的数据块为第二值,所述第一值和所述第二值用于指示所述码流块为错误码流块。
41.根据权利要求36-40任一所述的装置,其特征在于,所述获取模块,用于接收第二数据,所述第二数据是基于采用前向纠错FEC码型编码的第一数据获得的;对所述第二数据进行第二解码获取所述目标码块,所述第二解码为纠错处理。
42.根据权利要求41所述的装置,其特征在于,所述目标码块是对所述第二数据进行纠错但未成功纠错所获得的错误码块。
43.根据权利要求36-40任一所述的装置,其特征在于,所述获取模块,用于接收第二数据,所述第二数据是基于采用前向纠错FEC码型编码的第一数据获得的;对所述第二数据进行第二解码获取所述目标码块,所述第二解码为检错但不纠错处理。
44.根据权利要求43所述的装置,其特征在于,所述目标码块是从所述第二数据检出错误但不纠错所获得的错误码块。
45.根据权利要求36-40任一所述的装置,其特征在于,所述2n组码流块根据错误检测结果以及所述目标码块的类型和数据单元对所述目标码块进行所述第一解码得到,所述错误检测结果基于所述目标码块的类型和数据单元得到。
46.根据权利要求45所述的装置,其特征在于,所述错误检测结果包括所述目标码块的内容顺序错误或内容错误,所述2n组码流块根据第二码块的类型和数据单元对所述第二码块进行所述第一解码得到,所述第二码块是对所述目标码块进行转换得到的且与所述目标码块比特数相同的码块。
47.根据权利要求45所述的装置,其特征在于,所述错误检测结果包括所述目标码块的内容顺序错误或内容错误,所述2n组码流块基于对2n组第一码流块进行转换得到,所述2n组第一码流块基于所述目标码块的类型和数据单元对所述目标码块进行所述第一解码得到。
48.根据权利要求36-47任一所述的装置,其特征在于,所述控制块包括m比特,所述数据块包括8m比特,所述m为正整数。
49.根据权利要求48所述的装置,其特征在于,所述n的取值为2,所述m的取值为8,所述目标码块为257比特。
50.根据权利要求36-49任一所述的装置,其特征在于,所述2n组码流块均为介质无关接口MII格式。
51.一种网络设备,其特征在于,所述网络设备包括:处理器,所述处理器与存储器耦合,所述存储器中存储有至少一条程序指令或代码,所述至少一条程序指令或代码由所述处理器加载并执行,以使所述网络设备实现如权利要求1-25中任一所述的方法。
52.一种通信***,其特征在于,所述***包括第一网络设备和第二网络设备,所述第一网络设备用于执行如权利要求1-10中任一所述的方法,所述第二网络设备用于执行如权利要求11-25中任一所述的方法。
53.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条程序指令或代码,所述程序指令或代码由处理器加载并执行时以使计算机实现如权利要求1-25中任一所述的方法。
54.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序代码,当所述计算机程序代码被计算机运行时,使得所述计算机实现如权利要求1-25中任一所述的方法。
55.一种芯片,其特征在于,所述芯片包括处理器,所述处理器用于从存储器中调用并运行所述存储器中存储的指令,使得安装有所述芯片的通信设备执行如权利要求1-25中任一所述的方法。
56.一种芯片,其特征在于,所述芯片包括:输入接口、输出接口、处理器和存储器,所述输入接口、所述输出接口、所述处理器以及所述存储器之间通过内部连接通路相连,所述处理器用于执行所述存储器中的代码,当所述代码被执行时,所述处理器用于执行如权利要求1-25中任一所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW111145792A TW202333459A (zh) | 2022-01-05 | 2022-11-30 | 編碼方法、解碼方法、裝置、設備、系統及可讀儲存介質 |
PCT/CN2022/142363 WO2023131004A1 (zh) | 2022-01-05 | 2022-12-27 | 编码方法、解码方法、装置、设备、***及可读存储介质 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2022100054345 | 2022-01-05 | ||
CN202210005434 | 2022-01-05 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116455516A true CN116455516A (zh) | 2023-07-18 |
Family
ID=87129002
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210114840.5A Pending CN116455516A (zh) | 2022-01-05 | 2022-01-30 | 编码方法、解码方法、装置、设备、***及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116455516A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117361042A (zh) * | 2023-10-30 | 2024-01-09 | 中国人民解放军陆军工程大学 | 一种城市地下物资运输***及其工作方法 |
-
2022
- 2022-01-30 CN CN202210114840.5A patent/CN116455516A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117361042A (zh) * | 2023-10-30 | 2024-01-09 | 中国人民解放军陆军工程大学 | 一种城市地下物资运输***及其工作方法 |
CN117361042B (zh) * | 2023-10-30 | 2024-04-02 | 中国人民解放军陆军工程大学 | 一种城市地下物资运输***及其工作方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20070133397A1 (en) | Smart mechanism for multi-client bidirectional optical channel protection scheme | |
CN109428690B (zh) | 以太网络的连线方法及以太网络装置 | |
CN116455516A (zh) | 编码方法、解码方法、装置、设备、***及可读存储介质 | |
US11251905B2 (en) | Method for receiving code block stream, method for transmitting code block stream, and communications apparatus | |
WO2023116229A1 (zh) | 生成、处理以太帧的方法、装置、设备、***及存储介质 | |
US11868209B2 (en) | Method and system for sequencing data checks in a packet | |
WO2023131004A1 (zh) | 编码方法、解码方法、装置、设备、***及可读存储介质 | |
CN112291077A (zh) | 改善传输速率的方法、装置、处理器、网络设备和*** | |
US20220149988A1 (en) | Method for Adjusting Transmission Rate, Processor, Network Device, and Network System | |
WO2023131003A1 (zh) | 编码方法、解码方法、装置、设备、***及可读存储介质 | |
US20080267281A1 (en) | Method, device and network element for decoding an information word from a coded word | |
WO2022001166A1 (zh) | 接口、电子设备和通信*** | |
CN116455517A (zh) | 编码方法、解码方法、装置、设备、***及可读存储介质 | |
KR102498937B1 (ko) | 코드 블록 스트림 수신 방법, 코드 블록 스트림 송신 방법 및 통신 장치 | |
WO2024148984A1 (zh) | 传输数据的方法、装置、设备、***及存储介质 | |
JP7346662B2 (ja) | データ送信方法および転送デバイス | |
WO2024148983A1 (zh) | 对齐标志的搜索方法、装置、***及计算机可读存储介质 | |
WO2024001874A1 (zh) | 模式协商方法、装置、设备、***及计算机可读存储介质 | |
CN117675101A (zh) | 数据传输方法、装置、***及计算机可读存储介质 | |
CN118041488A (zh) | 数据传输方法、装置、***及计算机可读存储介质 | |
CN116073944A (zh) | 数据传输的方法、装置、设备、***及可读存储介质 | |
CN116112452A (zh) | 报文传输方法及通信装置 | |
CN115706622A (zh) | 数据传输的方法、装置、设备、***及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |