CN104426629B - 一种物理层编解码方法及其装置 - Google Patents
一种物理层编解码方法及其装置 Download PDFInfo
- Publication number
- CN104426629B CN104426629B CN201310390805.7A CN201310390805A CN104426629B CN 104426629 B CN104426629 B CN 104426629B CN 201310390805 A CN201310390805 A CN 201310390805A CN 104426629 B CN104426629 B CN 104426629B
- Authority
- CN
- China
- Prior art keywords
- block
- code block
- code
- numerical value
- bit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/1515—Reed-Solomon codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/63—Joint error correction and other techniques
- H03M13/6312—Error control coding in combination with data compression
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Probability & Statistics with Applications (AREA)
- Pure & Applied Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Computer Security & Cryptography (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请公开了一种物理层编解码方法及其装置,包括:接收输入的MII控制码块和第一256比特待编码码块;根据MII控制码块确定第一256比特待编码码块中的控制码块,对确定出的控制码块进行压缩;根据MII控制码块确定物理层编码格式、同步域数值、块类型域的层级以及块类型域的数值;根据确定出的物理层编码格式,将压缩后的待编码码块映射为物理层数据格式的数据,向所述数据中添加同步域,添加的同步域的数值为确定出的同步域数值,根据块类型域的层级在通过压缩获得的空间内添加块类型域,以得到编码结果,添加的块类型域的数值为所述确定出的块类型域的数值。本申请可用以满足RS‑FEC算法需要。
Description
技术领域
本发明涉及通信领域的编解码技术,尤其涉及一种物理层编解码方法及其装置。
背景技术
100G以太网物理层从上至下包括PCS(Physical Coding Sublayer,物理编码子层)、PMA(Physical Medium Attachment,物理介质连接)子层和PMD(Physical MediaDependent,物理介质相关)子层。其中,PCS位于MAC(Media Access Control,媒体接入控制)层的RS(Reconciliation Sublayer,协调子层)和PMA子层之间。PCS和上层RS/MAC子层的接口由XGMII(XG Media Independence Interface,媒体无关接口,其中,对于100G以太网,用“CGMII”表示100G)提供。PCS用于将一条以太网MAC功能映射到编码和物理层信号系统的功能上去。目前100G以太网标准802.3ba中规定PCS编码采用64B/66B编码。
64B/66B编码用于将XGMII传输的8个8比特(8-bit)数据和1个8比特控制信号进行各个字符的编码映射,产生块净荷(Block Payload)、同步域(sync header)和块类型域(Block Type Field),并将三者按照某种格式生成66比特块(Block)并行输出。其中,块类型域(Block Type Field)用来保证64比特块之间的汉明距离不小于4。
图1为现有802.3ba标准中给出的64B/66B编码的码字转换格式表。其中,Dn表示8比特的数据块,Cn表示控制块(编码前为8比特,编码后为7比特),O0表示Order sequence(命令序列)指示,Tn表示数据包包尾Terminate的位置。可以看出,64比特的全数据块(即其中不包含控制码块,可表示为data blocks)无法压缩,64比特的非全数据块(即其中包含有控制块,可表示为control blocks)可压缩为56比特,剩下的8比特作为Block Type Field空间来保证控制信息如Terminate(结束)、Start(开始)、Order sequence(命令序列)、Control(控制)等64比特码块之间的汉明距离不小于4。
随着400G以太网标准的提出,由于采用高速接口及高阶调制等技术,因此采用更高增益的RS-FEC(Reed-Solomon Forward Error Correction,里得所罗门前向纠错)方案成为未来的发展趋势,但是64B/66B编码方法不能满足RS-FEC算法的需要。
发明内容
本发明实施例提供了一种物理层编解码方法及其装置,用以满足RS-FEC算法需要。
第一方面,提供一种编码方法,包括:
接收输入的媒体无关接口MII控制码块和第一256比特待编码码块;
根据所述MII控制码块确定所述第一256比特待编码码块中的控制码块,对确定出的控制码块进行压缩,以得到压缩后的待编码码块;
根据所述MII控制码块确定物理层编码格式、同步域数值、块类型域的层级以及所述块类型域的数值;
根据确定出的物理层编码格式,将所述压缩后的待编码码块映射为物理层数据格式的数据,向所述数据中添加同步域,所述添加的同步域的数值为所述确定出的同步域数值,根据所述块类型域的层级在通过压缩获得的空间内添加块类型域,以得到编码结果,所述添加的块类型域的数值为所述确定出的块类型域的数值。
结合第一方面,在第一种可能的实现方式中,所述第一256比特待编码码块包括4路64比特待编码码块,所述MII控制码块包括4路8比特MII控制 码块,所述4路8比特MII控制码块与所述4路64比特待编码码块一一对应;
所述根据所述MII控制码块确定所述第一256比特待编码码块中的控制码块,对确定出的控制码块进行压缩,包括:
分别对4路64比特待编码码块中的每一路待编码码块,执行以下步骤:
根据对应的8比特MII控制码块,确定64比特待编码码块中的控制码块;
若64比特待编码码块中包含8个8比特控制码块,则将每8比特控制码块压缩为7比特控制码块;和/或,
若64比特待编码码块中包含有terminate码字、sequence码字或sfd码字,则将64比特待编码码块压缩为56比特的码块。
结合第一方面或者第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述根据所述MII控制码块确定同步域数值,包括:
根据所述MII控制码块确定出所述第一256比特待编码码块中包含控制码块后,确定所述同步域数值为第一数值;
所述方法还包括:若根据所述MII控制码块确定出所述第一256比特待编码码块中不包含控制码块,则确定所述同步域数值为第二数值,所述第二数值与所述第一数值不同。
结合第一方面或者第一方面的第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述根据所述MII控制码块确定块类型域的层级以及所述块类型域的数值,包括:
若根据所述MII控制码块确定出所述第一256比特待编码码块中包含N个64比特控制码块,所述N为小于3的正整数,则确定采用一级块类型域;
确定所述一级块类型域中第一级块类型域的数值,所述第一级块类型域的数值与接收的第二256比特待编码码块对应的第一级块类型域的数值不同,所述第二256比特待编码码块包含Y个64比特控制码块,所述Y为小于3的正整数,所述Y个64比特控制码块与所述N个64比特控制码块的类型不同,或者位置不同,或者类型相同的控制码块的位置不同。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,若根据所述MII控制码块确定出所述第一256比特待编码码块中包含N个64比特控制码块,则确定采用一级块类型域,包括:
若所述第一256比特待编码码块中包含1个终止类型的64比特控制码块Terminateblock和3个64比特数据码块,则根据所述Terminate block中的Terminate码字的位置,确定所述一级块类型域中第一级块类型域的数值。
结合第一方面或者第一方面的第一种或第二种可能的实现方式,在第五种可能的实现方式中,所述根据所述MII控制码块确定块类型域的层级以及所述块类型域的数值,包括:
若根据所述MII控制码块确定出所述第一256比特待编码码块中包含M个64比特控制码块,所述M为大于2且小于5的正整数,则确定采用两级块类型域;
确定所述两级块类型域中第一级块类型域的数值,所述第一级块类型域的数值与接收的第三256比特待编码码块对应的第一级块类型域的数值相同,且与接收到的第四256比特待编码码块对应的第一级块类型域的数值不同;所述第三256比特待编码码块包含X个64比特控制码块,所述X为大于2且小于5的正整数,所述第四256比特待编码码块包含Z个64比特控制码块,所述Z为小于3的正整数;
确定所述两级块类型域中第二级块类型域的数值,所述第二级块类型域的数值与接收的第五256比特待编码码块对应的第二级块类型域的数值不同,所述第五256比特待编码码块包含Q个64比特控制码块,所述Q为大于2且小于5的正整数,所述Q个64比特控制码块与所述M个64比特控制码块的类型不同,或者位置不同,或者类型相同的控制码块的位置不同,所述第五256比特待编码码块对应的第一级块类型域的数值与所述第一256比特待编码码块对应的第一级块类型域的数值相同。
结合第一方面的第三种、第四种或第五种可能的实现方式,在第六种可能 的实现方式中,还包括:
若根据所述MII控制码块确定出所述第一256比特待编码码块中包含至少2个64比特控制码块,且其中一个控制码块为Terminate block,则根据所述Terminate block中的Terminate码字的位置,确定出指示域数值,并在通过压缩获得的空间内添加指示域,所述添加的指示域的数值为所述确定出的指示域数值,所述添加的指示域的数值用于标识Terminate block中的Terminate码字的位置。
结合第一方、第一方面的第二种至第五种可能的实现方式中的一种,在第七种可能的实现方式中,所述同步域宽度为N比特,N≥1。
第二方面,提供一种编码器,包括:
预编码模块,用于接收输入的媒体无关接口MII控制码块和第一256比特待编码码块,根据所述MII控制码块确定所述第一256比特待编码码块中的控制码块,对确定出的控制码块进行压缩,以得到压缩后的待编码码块;
编码模块,用于根据所述MII控制码块确定物理层编码格式、同步域数值、块类型域的层级以及所述块类型域的数值,根据确定出的物理层编码格式,将所述预编码模块输出的所述压缩后的待编码码块映射为物理层数据格式的数据,向所述数据中添加同步域,所述添加的同步域的数值为所述确定出的同步域数值,根据块类型域的层级在所述预编码模块通过压缩获得的空间内添加块类型域,以得到编码结果,所述添加的块类型域的数值为所述确定出的块类型域数值。
结合第二方面,在第一种可能的实现方式中,所述第一256比特待编码码块包括4路64比特待编码码块,所述MII控制码块包括4路8比特MII控制码块,所述4路8比特MII控制码块与所述4路64比特待编码码块一一对应;
所述预编码模块包括4个预编码单元,每个所述编码单元分别对4路64比特待编码码块中的每一路待编码码块,执行以下步骤:
根据对应的8比特MII控制码块,确定64比特待编码码块中的控制码块; 若64比特待编码码块中包含8个8比特控制码块,则将每8比特控制码块压缩为7比特控制码块,和/或,若64比特待编码码块中包含有terminate码字、sequence码字或sfd码字,则将64比特待编码码块压缩为56比特的码块。
结合第二方面,在第二种可能的实现方式中,所述编码模块具体用于,若根据所述MII控制码块确定出所述第一256比特待编码码块中包含控制码块,则确定所述同步域数值为第一数值,若根据所述MII控制码块确定出所述第一256比特待编码码块中不包含控制码块,则确定所述同步域数值为第二数值,所述第二数值与所述第一数值不同。
结合第二方面,在第三种可能的实现方式中,所述编码模块具体用于,若根据所述MII控制码块确定出所述第一256比特待编码码块中包含N个64比特控制码块,所述N为小于3的正整数,则确定采用一级块类型域;确定所述一级块类型域中第一级块类型域的数值,所述第一级块类型域的数值与接收的第二256比特待编码码块对应的第一级块类型域的数值不同,所述第二256比特待编码码块包含Y个64比特控制码块,所述Y为小于3的正整数,所述Y个64比特控制码块与所述N个64比特控制码块的类型不同,或者位置不同,或者类型相同的控制码块的位置不同。
结合第二方面,在第四种可能的实现方式中,所述编码模块具体用于,若所述第一256比特待编码码块中包含1个终止类型的64比特控制码块Terminate block和3个64比特数据码块,则根据所述Terminate block中的Terminate码字的位置,确定所述一级块类型域中第一级块类型域的数值。
结合第二方面或者第二方面的第一种可能的实现方式,在第五种可能的实现方式中,所述编码模块具体用于,若根据所述MII控制码块确定出所述第一256比特待编码码块中包含M个64比特控制码块,所述M为大于2且小于5的正整数,则确定采用两级块类型域;确定所述两级块类型域中第一级块类型域的数值,所述第一级块类型域的数值与接收的第三256比特待编码码块对应的第一级块类型域的数值相同,且与接收到的第四256比特待编码码块对应的 第一级块类型域的数值不同,所述第三256比特待编码码块包含X个64比特控制码块,所述X为大于2且小于5的正整数,所述第四256比特待编码码块包含Z个64比特控制码块,所述Z为小于3的正整数;确定所述两级块类型域中第二级块类型域的数值,所述第二级块类型域的数值与接收的第五256比特待编码码块对应的第二级块类型域的数值不同,所述第五256比特待编码码块包含Q个64比特控制码块,所述Q为大于2且小于5的正整数,所述Q个64比特控制码块与所述M个64比特控制码块的类型不同,或者位置不同,或者类型相同的控制码块的位置不同,所述第五256比特待编码码块对应的第一级块类型域的数值与所述第一256比特待编码码块对应的第一级块类型域的数值相同。
结合第二方面的第三种至第五种可能的实现方式中的一种,在第六种可能的实现方式中,所述编码模块还用于,若根据所述MII控制码块确定出所述第一256比特待编码码块中包含至少2个64比特控制码块,且其中一个控制码块为Terminate block,则根据Terminate block中的Terminate码字的位置,确定出指示域数值,并在所述预编码模块通过压缩获得的空间内添加指示域,所述添加的指示域的数值为所述确定出的指示域数值,所述添加的指示域数值用于标识Terminate block中的Terminate码字的位置。
结合第二方面、第二方面的第一种至第五种可能的实现方式中的一种,在第七种可能的实现方式中,所述同步域宽度为N比特,N≥1。
第三方面,提供一种解码方法,包括:
接收第一待解码码块;
根据所述第一待解码码块的同步域数值、块类型域层级以及所述块类型域的数值,确定所述第一待解码码块的物理层数据格式;
根据所述第一待解码码块的物理层数据格式,获取所述第一待解码码块中的控制码块和数据码块,并生成媒体无关MII控制码块;
将获取到的控制码块进行解压缩;
将解压缩后的控制码块和获取到的数据码块输出为256比特码块,并输出所述MII控制码块。
结合第三方面,在第一种可能的实现方式中,所述根据所述第一待解码码块的同步域数值、块类型域层级以及所述块类型域的数值,确定所述第一待解码码块的物理层数据格式,包括:
若所述第一待解码码块的同步域数值为第一数值,则确定所述第一待解码码块中包含控制码块;
所述方法还包括:
接收第三待解码码块;
根据所述第三待解码码块的同步域数值、块类型域层级以及所述块类型域的数值,确定所述第三待解码码块的物理层数据格式,根据所述第三待解码码块的物理层数据格式,获取所述第三待解码码块中的数据码块;
所述根据所述第三待解码码块的同步域数值、块类型域层级以及所述块类型域的数值,确定所述第三待解码码块的物理层数据格式,包括:
若所述第三待解码码块的同步域数值为第二数值,则确定所述第三待解码码块中不包含控制码块,所述第二数值与所述第一数值不同。
结合第三方面,在第二种可能的实现方式中,所述根据所述第一待解码码块的同步域数值、块类型域层级以及所述块类型域的数值,确定所述第一待解码码块的物理层数据格式,包括:
若根据所述第一待解码码块的同步域数值确定出所述第一待解码码块中包含控制码块,则根据所述第一待解码码块的一级块类型域的数值确定出所述第一待解码码块的块类型域层级;
若确定出所述第一待解码码块的块类型域的层级为一级,则确定出所述第一待解码码块中包含N个64比特控制码块,所述N为小于3的正整数;
若确定出所述第一待解码码块的块类型域的层级至少为两级,则确定出所述第一待解码码块中包含M个64比特控制码块,所述M为大于2并且小于5 的正整数。
结合第三方面的第二种可能的实现方式,在第三种可能的实现方式中,所述根据所述第一待解码码块的同步域数值、块类型域层级以及所述块类型域的数值,确定所述第一待解码码块的物理层数据格式,还包括:
若确定出所述第一待解码码块的块类型域的层级为一级,并根据确定出的一级块类型域的数值确定出所述第一待解码码块中的64比特控制码块中存在Terminate block,则根据所述确定出的一级块类型域的数值确定Terminate block中的Terminate码字的位置。
结合第三方面,在第四种可能的实现方式中,若根据确定出的所述第一待解码码块的物理层数据格式,确定出所述第一待解码码块中还包含指示域,则还包括:
根据所述指示域的数值,确定所述第一待解码码块中Terminate block控制码块中的Terminate码字的位置。
结合第三方面,在第五种可能的实现方式中,所述将所述第一待解码码块中的控制码块进行解压缩,包括:
将所述第一待解码码块分为4路第二待解码码块,分别对所述4路第二待解码码块执行以下步骤:若第二待解码码块中包含8个7比特控制码块,则将每7比特控制码块解压缩为8比特控制码块;若第二待解码码块中包含有Terminate码字、sequence码字或sfd码字,则将所述第二待解码码块解压缩为64比特码块。
结合第三方面、第三方面的第一种至第五种可能的实现方式中的一种,在第六种可能的实现方式中,所述同步域宽度为N比特,N≥1。
第三方面,提供一种解码器,包括:
解码模块,用于接收第一待解码码块,根据所述第一待解码码块的同步域数值、块类型域层级以及所述块类型域的数值,确定所述第一待解码码块的物理层数据格式,根据所述第一待解码码块的物理层数据格式,获取所述第一待 解码码块中的控制码块和数据码块,并生成媒体无关MII控制码块;
解压缩模块,用于将所述解码模块获取到的控制码块进行解压缩,将解压缩后的控制码块和所述解码模块获取到的数据码块输出为256比特码块,并输出所述解码码块生成的所述MII控制码块。
结合第四方面,在第一种可能的实现方式中,所述解码模块具体用于,若所述第一待解码码块的同步域数值为第一数值,则确定所述待解码码块中包含控制码块;
所述解码模块还用于,接收第三待解码码块,根据所述第三待解码码块的同步域数值、块类型域层级以及所述块类型域的数值,确定所述第三待解码码块的物理层数据格式,根据所述第三待解码码块的物理层数据格式,获取所述第三待解码码块中的数据码块,若所述第三待解码码块的同步域数值为第二数值,则确定所述第三待解码码块中不包含控制码块,所述第二数值与所述第一数值不同。
结合第四方面,在第二种可能的实现方式中,所述解码模块具体用于,若根据所述第一待解码码块的同步域数值确定出所述第一待解码码块中包含控制码块,则根据所述第一待解码码块的一级块类型域的数值确定出所述第一待解码码块的块类型域层级;若确定出所述第一待解码码块的块类型域的层级为一级,则确定出所述第一待解码码块中包含N个64比特控制码块,所述N为小于3的正整数;若确定出所述第一待解码码块的块类型域的层级至少为两级,则确定出所述第一待解码码块中包含M个64比特控制码块,所述M为大于2并且小于5的正整数。
结合第四方面的第二种可能的实现方式,在第三种可能的实现方式中,所述解码模块还具体用于,若确定出所述第一待解码码块的块类型域的层级为一级,并根据确定出的一级块类型域的数值确定出所述第一待解码码块中的64比特控制码块中存在Terminateblock,则根据所述确定出的一级块类型域的数值确定Terminate block中的terminate码字的位置。
结合第四方面,在第四种可能的实现方式中,所述解码模块具体用于,若根据确定出的所述第一待解码码块的物理层数据格式,确定出所述第一待解码码块中还包含指示域,则根据所述指示域的数值,确定所述第一待解码码块中Terminate block控制码块中的Terminate码字的位置。
结合第四方面,在第五种可能的实现方式中,所述解压缩模块包括4个解压缩单元,所述解压缩模块将所述第一待解码码块分为4路第二待解码码块,每个所述解压缩单元分别对所述4路第二待解码码块执行以下步骤:
若第二待解码码块中包含8个7比特控制码块,则将每7比特控制码块解压缩为8比特控制码块;若第二待解码码块中包含有Terminate码字、sequence码字或sfd码字,则将所述第二待解码码块解压缩为64比特码块。
第五方面,提供一种装置,该装置可以是以下装置之一:
PHY,所述PHY可以通过FPGA或者ASIC实现。所述PHY可以是网络接口卡(NetworkInterface Card,NIC)中的部件,所述NIC可以是线卡(Line Card)或者PIC(PhysicalInterface Card,物理接口卡)。所述PHY可以包含用于连接到(for interfacing to)MAC的Media-Independent Interface(媒体无关接口,MII);
PHY芯片(PHY chip),所述PHY芯片可以包括多个PHY。所述PHY芯片可以通过FPGA或者ASIC实现;
系统芯片(system chip),所述系统芯片可以包括多个MAC以及多个PHY;所述系统芯片可以通过FPGA或者ASIC实现;
多端口以太网设备(multi-port Ethernet device),所述多端口以太网设备可以是以太网集线器、以太网路由器或者以太网交换机。所述多端口以太网设备包括多个端口,每个端口可以包括系统芯片,所述系统芯片可以包括MAC和PHY。所述多端口以太网设备还可以将多个MAC整合到一个MAC芯片(MACchip),以及将多个PHY整合到一个PHY芯片。所述多端口以太网设备也可以将多个MAC以及多个PHY整合到一个系统芯片中;
该装置能够执行第一方面或者第一方面中的任意一种可能的实现方式所提供的方法。
第六方面,提供一种装置,该装置可以是以下装置之一:
PHY,所述PHY可以通过FPGA或者ASIC实现。所述PHY可以是网络接口卡(NetworkInterface Card,NIC)中的部件,所述NIC可以是线卡(Line Card)或者PIC(PhysicalInterface Card,物理接口卡)。所述PHY可以包含用于连接到(for interfacing to)MAC的Media-Independent Interface(媒体无关接口,MII);
PHY芯片(PHY chip),所述PHY芯片可以包括多个PHY。所述PHY芯片可以通过FPGA或者ASIC实现;
系统芯片(system chip),所述系统芯片可以包括多个MAC以及多个PHY;所述系统芯片可以通过FPGA或者ASIC实现;
多端口以太网设备(multi-port Ethernet device),所述多端口以太网设备可以是以太网集线器、以太网路由器或者以太网交换机。所述多端口以太网设备包括多个端口,每个端口可以包括系统芯片,所述系统芯片可以包括MAC和PHY。所述多端口以太网设备还可以将多个MAC整合到一个MAC芯片(MACchip),以及将多个PHY整合到一个PHY芯片。所述多端口以太网设备也可以将多个MAC以及多个PHY整合到一个系统芯片中;
该装置能够执行第三方面或者第三方面中的任意一种可能的实现方式所提供的方法。
本发明的上述实施例中,在编码时,根据MII控制码块确定物理层编码格式、同步域数值、块类型域的层级以及块类型域的数值,根据确定出的物理层编码格式将预编码后的待编码码块映射为物理层数据格式,从而实现将对256比特码块进行编码。可以看出,本发明实施例通过利用256比特码块可压缩空间,保证256比特待编码码块间的汉明距离不小于4,并可为RS-FEC算法提供足够的校验和空间。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有802.3ba标准中给出的64B/66B编码的码字转换格式表;
图2A和图2B为现有64B/66B编码加上256B/257B转码方案的示意图;
图3为本发明实施例提供的编码原理示意图;
图4为本发明实施例提供的256B/257B编码格式表;
图5为本发明实施例提供的256B/258B编码格式表;
图6为本发明实施例的应用架构示意图;
图7为本发明实施例提供的编码器的结构示意图;
图8为本发明实施例提供的编码流程示意图;
图9为本发明实施例提供的一种通用状态跳转示意图;
图10为本发明实施例提供的256B/257B编码方案的状态机示意图之一;
图11为本发明实施例提供的256B/257B编码方案的状态机示意图之二;
图12为本发明实施例提供的256B/258B编码方案的状态机示意图;
图13为本发明实施例提供的256B/258B编码方案的MTTFPA指标示意图;
图14为本发明实施例提供的解码器的结构示意图;
图15为本发明实施例提供的解码流程示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做 出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
由于64B/66B不再适应未来高增益的FEC(Forward Error Correction,前向纠错)的需求,因此目前有一种延伸的演进方案,即64B/66B编码加上256B/257B转码的方案。在该方案中,对于256比特的全数据模式,其转码方案如图2A所示,其中,DB表示64比特的DataBlock(数据码块),“01”是同步头指示信息,表示随后64比特的Block为数据码块。图2A所示的全数据的256B/257B的转码方案为:将4个66比特码块的前两比特同步头指示信息“01”压缩出来,然后用1比特“1”代表一个257比特全数据码块。对于256比特的非全数据模式,其转码方案如图2B所示,其中CB表示56比特的Control Block(控制码块),“10”是同步头指示信息,表示随后56比特的Block为控制码块。图2B所示的非全数据的256B/257B的转码方案中,转码时同样压缩4个66比特码块的前两比特同步头指示信息,用1比特“0”代表一个257比特的非全数据码块(control blocks),然后将第一个64比特控制码块的Block Type Field的8比特空间的前4比特保留,后4比特用来作为4个64比特码块是数据还是控制码块的指示位,比如图2B中4个64比特的码块均为控制码块,故编码为“0000”。
以上64B/66B编码加上256B/257B转码的方案,只是一种格式转化,并不是实际的直接编解码方案,必须同时需要64B/66B编解码来实现相应的功能,因此该转发方案会增加额外的延时,以及增加额外的资源占用及功耗。
针对采用更高增益的RS-FEC方案的需求,本发明实施例提供了一种应用于物理层中PCS的直接编解码的方案,该编解码方案可包括256B/257B编解码方案或256B/258B编解码方案。下面对本发明实施例提供的编解码方案进行详细描述。
本发明实施例中的256B/257B编码是指:PCS的编码器将MII(Media IndependenceInterface,媒体无关接口)传输的4路64比特待编码码块进行码字的编码映射,产生块净荷(Block Payload)、同步域(sync header)和块类型 域(Block Type Field),并将三者按照某种格式生成257比特码块(Block)并行输出;256B/257B解码是指:将输入的包含了块净荷(Block Payload)、同步域(sync header)和块类型域(Block Type Field)257比特码块进行码字的解码映射,得到4*64比特的码块(MII_TXD),并通过MII输出。其中,根据256B/257B编码后的257比特码块中所包含的56比特控制码块的数量,编码后的257比特码块中可能包含一级类型域(Block Type Field),也能包含多级类型域(Block Type Field),用来保证各256比特码块之间的汉明距离不小于4。256B/258B编/解码的过程与此类似。
编码效率和Block Type空间的大小存在矛盾,在本实施例中的体现就是:BlockType空间限制了码字的多少。比如经过推算,在8比特的空间内寻找最小4比特汉明距离的Block Type(即寻找能够保证汉明距离不小于4的一组码字),可以找到很多组码字,但是每组内最多只有16个码字,表1中列出了其中有16个码字的一组。
表1:8比特空间内保证汉明距离不小于4的组合
8’h1E | 8’hE1 | 8’h4B | 8’hB4 |
8’h78 | 8’h87 | 8’hD2 | 8’h2D |
8’h00 | 8’h33 | 8’h55 | 8’h66 |
8’h99 | 8’hAA | 8’hCC | 8’hFF |
采用256比特编码,所有码字的组合情况超过了16种,因此8比特的BlockType空间无法保证所有256比特码块之间的汉明距离。
为了解决当前编解码效率和Block Type码字空间的矛盾,本发明实施例提供的编解码方案中,根据各个256比特码块可压缩空间来进行不同码字空间的压缩技术,实现分级分码块的不同空间的压缩来达到灵活的编码方案,编码过程中保证256比特编码码块间的汉明距离不小于4。
具体实施时,举例来说,一方面,在编码后的256比特码块中采用一定的空间(即同步域)对256比特的全数据码块(data blocks)和256比特的非全 数据码块(controlblocks)进行区分;另一方面,在编码后的256比特码块中,采用Block Type Field(该BlockType Field称为第一级Block Type Field)作为Block Type空间,来保证与其它256比特码块的汉明距离。由于Block Type空间对码字数量的限制作用,不可能用不同的Block TypeField唯一标识所有的编码格式,因此,对于可以压缩得到更多空间的256比特码块,比如包含两个或两个以上的64比特控制码块的256比特码块,可以采用相同的第一级Block TypeField值,来保证与其它不同的第一级Block Type Field值对应的256码块间的汉明距离,在这些具有相同第一级Block Type Field值的256码块内部,再采用额外的Block TypeField(该Block Type Field称为第二级Block Type Field)作为Block Type空间,来保证这些具有相同第一级Block Type Field值的256比特码块间的汉明距离。如有必要,还可以进一步利用压缩出来的空间作为第三级Block Type Field,甚至更多级的Block TypeField以保证256比特码块的汉明距离。压缩出的空间也可以作为保留空间使用。
可选地,进一步的,对于一些比较特殊的码块,比如64比特的T block(Terminateblock,终止块),可以利用Block Type Field或者利用额外的指示域来进行码块内部各码字(比如,7比特控制码字和/或8比特数据码字)的区分。以64比特T block为例,T block中包含一个8比特的Terminate码字,在编码时还要指示出该Terminate码字在T block中的位置。为解决该问题,本发明实施例采用了以下方法:
(1)如果256比特码块中仅包含1个64比特的T block,其余为64比特的数据码块,则可以利用第一级Block Type Field值来标识Terminate码字在该64比特T block中的位置。具体的,在设计编码格式表时,对于包含1个64比特的T block和3个64比特数据块的256比特码块,根据Terminate码字在T block码块中的不同位置,设置不同的第一级BlockType Field值,从而一方面利用该Block Type Field值来保证与其它256比特码块的汉明距离,另一方面利用该Block Type Field值来标识Terminate码字在T block中的位置;
(2)如果256比特码块中包含1个64比特的T block以及一个或一个以上的其它64比特的控制码块,则可以利用这些控制码块压缩出的空间作为额外的指示域来指示Terminate码字在该64比特T block中的位置。
基于以上编码的原理,如图3所示,在编码格式表中,syna和synb为同步域的两种取值,用于对全数据码块(data blocks)和非全数据码块(control blocks)进行区分。其中,syna用于对全数据码块(data blocks)进行标识,synb用于对非全数据码块(controlblocks)进行标识。同步域可以是1比特或更多比特,同步域的比特数量可以根据具体的架构、算法及性能要求进行设置和调整,本发明实施例对此不作限制。
图3中的type0~typea为第一级Block Type Field的取值,typeA~typeD为第二级Block Type Field的取值。其中,由于Block Type空间对码字数量的限制作用,无法用不同的Block Type Field值唯一标识一种编码格式,因此,对于包含3个或4个64比特控制码块(Control block)的256比特码块,采用相同的第一级Block Type Field值(如图中的typea),再用256比特码块内部压缩得到的空间作为第二级Block Type Field,通过第二级Block Type Field的不同取值(如图中的typeA、typeB、typeC、typeD)来区分这些具有相同第一级Block Type Field的256码块。type0~typea的码字空间(即第一级Block TypeField的比特数量)或typeA~typeD的码字空间(即第二级Block Type Field的比特数量),优选为8比特,当然也可以根据具体情况来设置比特数,比如可以少于或多于8比特。
图3中斜线填充的控制码块表示特殊码块,比如T block,需要额外的指示域(图中的typeT)来指示8比特的Terminate码字在T block中的位置。Terminate码字的不同位置所对应的typeT取值有所不同,比如typeT=0x00,表示Terminate码字处于T block的第一个字节(一个64比特T block按照8比特一组,划分为8个字节组),typeT=0x11,表示Terminate码字处于T block的最后一个字节。该指示域的比特数优选为8比特,当然也可以根据实际需要来 设置该指示域的比特数量。
所有编码类型的空间(包括第一级Block Type Field、第二级Block Type Field,以及指示域)都是从64比特的控制码块中,如S block(start block,开始块)、T block或Cblock(Control block,控制块),压缩出来的。对于从控制码块压缩出来的比特,除了用于上述第一级Block Type Field、第二级Block Type Field、指示域以外,如果有剩余比特,则该剩余比特可作为预留比特域(如图3中所示的Res域)。进一步的,根据需要,Res域也可以作为第三级或者第四级的Block Type Field使用。
图3中的第一级Block Type Field的取值(如图中的type0~typea)、第二级BlockType Field的取值(如图中的typeA~typeD)仅为示意,在实际应用中,可选取表1所示的数值。
需要说明的是,上述图3所示的编码格式仅为一种示例,依据上述编码原理所得到的编码格式表,均应在本发明的保护范围之内。
基于上述编码原理,图4示出了本发明实施例提供的256B/257B编码格式表。其中,同步域的比特数为1比特、Block Type Field域的比特数为8比特、指示域的比特数为8比特。
如图4所示,同步域取值为“0”时表示256比特码块为全数据码块(data blocks),取值为“1”时表示256比特码块为非全数据码块(control blocks)。
对于包含有1个64比特T block和3个64比特DATA block(数据码块)的256比特码块,用不同的第一级Block Type Field值(type0~type7)进行区分,该第一级Block TypeField值,还可以同时标识T block中的8比特Terminate码字的位置。如图4所示,第一级Block Type Field取值为type0时表示Terminate码字位于T block中的第一个字节,第一级Block Type Field取值为type1时表示Terminate码字位于第二个字节,以此类推。
对于包含有1个64比特T block,以及2个或2个以上64比特的其它控制码块(如Sblock、C block)的256比特码块,采用相同的第一级Block Type Field值(typed),且与上述type0~type7的取值不同。在这些256比特码块的内部,再利用控制码块压缩出的空间设置第二级Block Type Field域,通过不同的第二级Block Type Field的取值(如图中的typeA~typeE)来区分。同理,对于包含有4个64比特C block或包含有4个64比特O block的256比特码块,也可以将第一级Block Type Field值设置为typed,再在该256比特码块内部,利用控制码块压缩出的空间设置第二级Block Type Field,通过不同的第二级BlockType Field的取值(如图中的typeF、typeG)。
此外,对于包含有1个64比特T block,以及1个或1个以上64比特的其它控制码块(如S block、C block)的256比特码块,还要根据T block中的8比特Terminate码字的位置,在该256比特码块中设置指示域,用不同的指示域取值(如图中的typeT)标识Terminate码字的位置。
图4中的type0~type7、typeA~typeE可从表1中选取,以保证汉明距离不小于4。
图4中为了简化Order sequence的状态个数,保证Order sequence按照256比特对齐,不会影响整体设计的可实现性(比如AM(Alignment Marker,对齐标记)的插入等问题),当然简化设计的方式不限于上述方式。
通过图4所示的256B/257B编码格式表可以看出,第一级Block Type Field值(type0~type9、typea~typec)所对应的13种256比特码块之间可以保证汉明距离不小于4,第一级Block Type Field值typed对应的7种256比特码块与上述13种256比特码块之间可以保证汉明距离不小于4;第一级Block Type Field值typed对应的7种256比特码块之间,通过不同的第二级Block Type Field值(typeA~typeG)可以保持最少4比特汉明距离;通过指示域,64比特T block内的不同Terminate位置保证汉明距离不小于4。这样本发明实施例就可以保证各256比特码块之间的汉明距离不小于4。
图4中Block Type Field以及指示域的取值可参考表1。表2示出了一种BlockType Field和指示域的取值表,表2仅为一种示例,并不构成对本发明的 限制。
表2:Block Type Field和指示域的取值
基于以上编码原理,图5示出了本发明实施例提供的256B/258B编码格式表。其中,Block Type Field域和指示域的比特数均为8比特,与图4所示的256B/257B编码格式表中的相同,同步域的比特数为2比特,比图4所示的256B/257B编码格式表中的多一个比特。图5所示的256B/258B编码格式表,基本与图4所示的256B/257B编码格式表相同,图5中BlockType Field以及指示域的取值也可参考表1取值,在此不再详述。
根据上述编码原理,在设置编码格式表时,可根据以下规则来设置Block TypeField的取值。
对于包含有1个或2个64比特控制码块的256比特码块,可以用一个层级的BlockType Field(即第一级Block Type Field)来保证这些256比特码块间的汉明距离,可根据所包含的64比特控制码块的类型或者位置来确定第一级Block Type Field的取值。以第一256比特码块和第二256比特码块均包含1个或2个64比特控制码块为例,在以下几种情况下,第一256比特码块和第二256比特码块的第一级块类型域的取值不同:
情况1:第一256比特码块中的64比特控制码块的类型,与第二256比特码块中的控制码块的类型不同。比如图4中的第11行和第12行所示的257比 特码块中,均包含2个64比特的DATA Block和2个控制码块,但由于控制码块的类型不完全相同(第11行中的2个控制码块为T block和S block,第12行中的2个控制码块为T block和C block),因此第一级Block Type Field的取值不同,即分别为type9和typea。
情况2:第一256比特码块中的64比特控制码块的位置,与第二256比特码块中的控制码块的位置不同。比如图4中的第11行和第13行所示的257比特码块中,均包含2个64比特的DATA Block和2个类型相同的控制码块,但由于DATA Block和控制码块的排列位置不同,因此第一级Block Type Field的取值不同,即分别为type9和typeb。
情况3:第一256比特码块中的64比特控制码块的类型,与第二256比特码块中的控制码块的类型相同但位置不同。比如,第一256比特码块中依次包含2个64比特DATA Block、1个S block、1个C block,第二256比特码块中依次包含2个64比特DATA Block、1个Cblock、1个S block,则第一256比特码块和第二256比特码块的第一级级Block Type Field的取值不同。
对于包含有3个或4个64比特控制码块的256比特码块,可以用两个层级的BlockType Field(即第一级Block Type Field和第二级Block Type Field)。在确定两级BlockType Field中的第一级Block Type Field的取值时,可将所有包含3个或4个64比特控制码块的256比特码块的第一级Block Type Field的取值设置为相同的值,但与包含1个或2个64比特控制码块的256比特码块的第一级Block Type Field的取值不同。比如图4中第15~21行所示的257比特码块中的第一级Block Type Field的取值相同,但与第2~14行所示的任意257比特码块的第一级Block Type Field的取值不同。
在确定两级Block Type Field中的第二级Block Type Field的取值时,可根据所包含的64比特控制码块的类型或者位置来确定第二级Block Type Field的取值。以第三256比特码块和第四256比特码块均包含3个或4个64比特控制码块为例,在以下几种情况下,第三256比特码块和第四256比特码块的第 一级块类型域的取值不同:
情况1:第三256比特码块中的64比特控制码块的类型,与第四256比特码块中的控制码块的类型不同。比如图4中的第15行和第16行所示的257比特码块中,均包含1个64比特的DATA Block和3个控制码块,但由于控制码块的类型不完全相同,因此第二级Block TypeField的取值不同,即分别为typeA和typeB。
情况2:第三256比特码块中的64比特控制码块的位置,与第四256比特码块中的控制码块的位置不同。比如图4中的第16行和第17行所示的257比特码块中,均包含1个64比特的DATA Block和3个控制码块,但由于DATA Block和控制码块的排列位置不同,因此第二级Block Type Field的取值不同,即分别为typeB和typeC。
情况3:第三256比特码块中的64比特控制码块的类型,与第四256比特码块中的控制码块的类型相同但位置不同。比如,第三256比特码块中依次包含1个64比特DATA Block、2个C block、1个S block,第四256比特码块中依次包含1个64比特DATA Block、1个Cblock、1个S block、1个C Block,则第三256比特码块和第四256比特码块的第二级BlockType Field的取值不同。
本发明实施例提供的编码方案(如256B/257B编解码方案和256B/258B编解码方案),可以应用于高速以太网,比如下一代400G以太网。图6示出了采用本发明实施例提供的编解码方案的下一代400G以太网的架构。
如图6所示,PCS中的编码器通过MII接收到数据后,按照本发明实施例提供的编码方式(如256B/257B编码或256B/258B编码)进行编码,编码器将编码后的数据输出给FEC模块,FEC模块插入FEC校验序列,并将数据输出给加扰模块,加扰模块对数据进行加扰处理,并将数据输出给数据分发模块;数据分发模块对数据进行分发处理;之后,周期性插入AM,并进行FEC-Symbol复用。
下面结合图7和图8,描述本发明实施例提供的编码器和编码流程,结合图9和图10,描述本发明实施例提供的解码器和解码流程。
参见图7,为本发明实施例提供的编码器的结构示意图,该编码器可由逻辑电路实现,用于执行本发明上述实施例提供的直接编码功能。
如图7所示,该编码器700可包括:预编码模块71、编码模块72,进一步的还可包括状态机编码模块73。
预编码模块71可根据输入的MII控制码块(以下简称为MII_TXC)对输入的256比特待编码码块(以下简称为MII_TXD)进行预编码,将预编码后的待编码码块和MII_TXC输出给编码模块72;其中,若256比特MII_TXD中包含控制码块,则对所包含的控制码块进行压缩;
编码模块72可根据预编码模块71输出给编码模块72的MII_TXC(MII_TXC也可直接输入到编码模块72)以及本发明实施例提供的编码格式表(如图3、图4或图5),确定物理层编码格式、同步域数值、Block Type Field(块类型域)的层级以及Block Type Field的数值,根据确定出的物理层编码格式将预编码模块71输出的预编码后(即解压缩后)的MII_TXD映射为物理层数据格式的数据,添加同步域,所添加的同步域的数值为之前确定出的同步域数值,根据Block Type Field的层级在预编码模块71压缩出的空间内添加Block TypeField,所添加的Block Type Field的数值为之前确定出的Block TypeField数值,并输出编码结果给状态机编码模块73;
状态机编码模块73,用于将编码模块72输出的编码结果编码为以太网数据包并输出。
从MII输入到预编码模块71的MII_TXC为4路8比特的MII_TXC,从MII输入到预编码模块71的MII_TXD为4路64比特的MII_TXD,且8比特MII_TXC和64比特MII_TXD一一对应,8比特MII_TXC用于指示对应的64比特MII_TXD中每组8比特码码块是数据码块还是控制码块。相应的,预编码模块71中可包含4个预编码单元701,以分别对这4路8比特MII_TXC和 64比特MII_TXD进行预编码处理。
下面结合图8,对上述编码器700的编码过程进行详细描述。
参见图8,为本发明实施例提供的编码方法的流程示意图,如图所示,该方法可包括:
步骤801:编码器700中的预编码模块71根据输入的MII_TXC对输入的256比特MII_TXD进行预编码。其中,若256比特MII_TXD中包含控制码块,则对其中所包含的控制码块进行压缩。
具体实施时,预编码模块71中的每一个预编码单元701,可根据4路8比特MII_TXC中的一路8比特MII_TXC,对相应的64比特MII_TXD进行预编码处理。预编码处理可包括:若64比特MII_TXD中包含8比特控制码块,则将该8比特控制码块压缩为7比特控制码块,即,每8个比特可以压缩出1个比特,64比特码块可压缩为56比特码块外加8比特的空间,该8比特空间在后续编码码块中进行相应的映射或者保留。对于64比特的全数据码块(datablocks)则保持该64比特码块不变。具体实施时,可参照表3进行控制码块的压缩。
表364比特内控制码字与压缩后的56比特码字的转换表
控制码类型 | 输入控制信息格式 | 预编码处理后格式 |
error | 8’hfe | 7’h1e |
idle | 8’h00 | 7’h07 |
terminate | 8’hfd | 完全压缩出8bit空间 |
sequence | 8’h9c | 完全压缩出8bit空间 |
sfd | 8’hfb | 完全压缩出8bit空间 |
根据表3,控制码块通过将8比特的控制信息压缩为7比特信息,压缩出1比特空间。如果64比特码块中有terminate、sequence或sfd等控制码字,则可以直接压缩出8bit空间。
步骤802:编码器700中的编码模块72,根据MII_TXC确定物理层编码格式、同步域数值、Block Type Field的层级以及各层级Block Type Field的数值,根据确定出的物理层编码格式将预编码后的待编码码块映射为物理层数据格式的数据,添加同步域,该同步域的数值为确定出的同步域数值,根据BlockType Field的层级在预编码模块71压缩出的空间内添加Block Type Field,该Block Type Field的数值为确定出的Block Type Field数值,得到编码结果。
具体实施时,编码模块72确定同步域数值时,若根据32比特的MII_TXC确定出256比特的MII_TXD包含控制码块,则确定同步域数值为第一数值,若根据32比特的MII_TXC确定出256比特的MII_TXD为全数据码块(data blocks),则确定同步域数值为第二数值,比如,对应于前述的256B/257B编码方式,同步域为1比特,当256比特的MII_TXD为全数据码块(data blocks)时,将同步域数值确定为“0”,否则将同步域数值确定为“1”;对应于前述的256B/258B编码方式,同步域为2比特,当256比特的MII_TXD为全数据码块(data blocks)时,将同步域数值确定为“01”,否则将同步域数值确定为“10”。
举例来说,编码模块72在确定Block Type Field层级以及Block Type Field数值时,若根据32比特MII_TXC确定出256比特MII_TXD中包含3个或3个以上的64比特控制码块,则确定采用两级Block Type Field,其中,所有包含3个或3个以上64比特控制码块的MII_TXD的第一级Block Type Field数值相同,第二级Block Type Field数值可根据控制码块和数据码块(载包含数据码块的情况下)的类型和/或位置来设置,具体同前所述。又举例来说,编码模块72在确定Block Type Field层级以及Block Type Field数值时,若根据32比特MII_TXC确定出256比特MII_TXD中包含2个或2个以下64比特控制码块,则确定采用一级Block Type Field,该Block Type Field的数值可根据控制码块和数据码块(载包含数据码块的情况下)的类型和/或位置来设置,具体同前所述。其中,若256比特MII_TXD中包含1个64比特Terminate block和3个64比特数据码块,则根据Terminate block中的Terminate码字的位置,确 定第一级块类型域数值。
可选地,进一步的,编码模块72若根据MII_TXC确定出MII_TXC中包含至少2个64比特控制码块,且其中一个控制码块为Terminate block,则根据Terminate block中的Terminate码字的位置,确定出指示域数值,并在预编码模块71压缩出的空间内添加指示域以及在该指示域中添加确定出的指示域数值;其中,该指示域数值用于标识Terminateblock中的Terminate码字的位置。
进一步的,为了得到以太网数据包,上述步骤802后,图8示出的方法还可以包括以下步骤:
步骤803:编码器700的状态机编码模块73将编码模块72输出的编码结果编码为以太网数据包并输出。
为了保证具有一定顺序的数据编码之后的数据边界正确性,本发明实施例采用了一定的sequence(顺序)状态机,对顺序数据的编码块进行状态机的编码处理。具体实施时,状态机编码模块73可将编码模块72输出的编码结果,经过状态机的跳转顺序进行进一步编码,以便编码为以太网数据包。
以太网中的数据包的结构通常为:包头s/包数据dddddd/包尾t/帧间隙ccccc/下一个包的包头s......。不按照正确包顺序的码块都会被编为错误的码字,这样编码就能达到一定的检错能力,尤其针对包边界处码块类型频繁变化的码块有较强的错误发现能力。根据上述以太网数据包结构,举例来说,图9示出了一种通用的状态机编码状态跳转示意图。
通过图9所示的状态跳转可以输出符合格式要求的以太网数据包,比如:
在Data状态下时,若输入Data码字,则输出该Data码字,从而在以太网数据包中的包数据字段顺序写入Data码字,并保持当前Data状态;若输入Terminate码字,则表明达到包尾,则输出该Terminate码字,从而在以太网数据包中顺序写入Terminate码字,并跳转到Control状态;
随后,在Control状态下,若输入control码字,则输出该control码字,从而在上一个包尾后顺序写入该control码字作为帧间隙数据;若再次输入control 码字,则输出该control码字,从而继续在帧间位置顺序写入control码字;若输入sop码字,则输出该control码字作为下一个数据包的包头,从而在帧间数据之后开始一个新的数据包。
另外,在Data状态下,若输入error码字或sop码字或control码字,则不符合以太网数据包的格式要求(Data之后不能直接跟随下一个包头或帧间隙),因而跳转到Error状态;同理,在Control状态下,若输入error码字或data码字或terminate码字,则不符合以太网数据包格式要求,因而跳转到Error状态。
根据以上状态跳转原理,针对前述的256B/257B编码方案,其编码状态机可如图10所示。所有条件选择从第1个64比特码块和第4个64比特块中选取,这样就有如下跳转条件:D、D/T、S/D、D/S、D/C、D/E、T/D、T/S、T/E、T/C、C、E、C/E、E/C,其中D代表Data,T代表Terminate码字,S代表Sop码字,C代表Control码字,E代码Error码字。另外,所有包括Errors的状态可以认为是Error。
仅包含T0~T7码字之一的256比特码块对应的是同一个状态:D/T。图10中虚线箭头所代表的Default跳转条件是指其他所有不是实线箭头所示的跳转条件,状态机就会自动跳转到E状态(即Error状态)。
进一步的,可以在图10的基础上进行状态的合并和简化。如图11所示,图中状态C表示跳转到此状态后可以根据条件编码为控制字,S表示跳转到此状态可以根据条件编码为包头Sop,D表示跳转到此状态可以根据条件编码为数据,T表示跳转到此状态可以根据条件编码为包尾Terminate,E表示跳转到此状态可以编码为错误字。S状态和D状态可以根据情况进一步合并,同时本简化状态机可以根据实际需求加入初始态Init。
根据以上状态跳转原理,针对前述的256B/257B编码方案,其编码状态机可如图12所示。256B/258B编码方案由于数据和控制信息之间采用了2比特的同步域进行区分,所以在状态机跳转图12中可以看出各个编码码字之间的汉明距离不小于2。
通过以上描述可以看出,本发明实施例提供的256B/257B编码方案或者256B/258B编码方案,可以有效降低时延。本发明实施例提供的编码方案的压缩编码空间可以很好的适应当今的主流RS-FEC算法的结构,通过保证256B/257B编码或256B/258B编码所有控制码字之间的汉明距离,保证CRC32的检错能力,满足网络MTTFPA(Mean Time To False PacketAcceptance,失效包接收平均时间)指标。另外,本发明实施例提供的编码状态机设计优化。
本发明实施例提供的256B/257B编码方案,在误码率为10^-12的情况下,MTTFPA可以达到1000年。根据公式推算,本发明实施例提供的256B/258B编码方案的MTTFPA指标可以达到现在以太网的要求,在误码率为10^-12的情况下,网络MTTFPA时间达到了10^17年。图13示出了256B/257B编码方案的MTTFPA指标示意图。
参见图14,为本发明实施例提供的解码器的结构示意图,该解码器可由逻辑电路实现,用于执行图5中PCS的解码功能。
如图14所示,该解码器1400可包括:解码模块141和解压缩模块142。
解码模块141接收待解码码块后,根据该待解码码块的同步域数值、BlockTypeField(块类型域)层级以及Block Type Field数值,确定该待解码码块的物理层数据格式,根据该待解码码块的物理层数据格式,获取该待解码码块中的控制码块和数据码块(在包含控制码块和数据码块的情况下),并生成MII控制码块(以下简称为MII_TXC);
解压缩模块142可根据解码模块141获取到的控制码块,将该控制码块进行解压缩,将解压缩后的控制码块和解码模块获取到的该待解码码块中的数据码块输出为256比特码块(以下简称为MII_TXD),并输出该MII_TXD和解码模块141生成的MII_TXC。
从MII输出的MII_TXC为4路8比特的MII_TXC,从MII输出的MII_TXD为4路64比特的MII_TXD,且8比特MII_TXC和64比特MII_TXD一一对应。因此在进行解压缩后输出解压缩后的数据时,可由解压缩模块142中的4 个解压缩单元1421对其中的每一路数据进行解压缩和输出处理。
下面结合图15,对上述编码器1400的编码过程进行详细描述。
参见图15,为本发明实施例提供的解码流程示意图,如图所示,该流程可包括:
步骤1501:解码器1400的解码模块141接收待解码码块,根据该待解码码块的同步域数值、Block Type Field层级以及Block Type Field数值,确定该待解码码块的物理层数据格式,根据所述待解码码块的物理层数据格式,获取该待解码码块中的控制码块和数据码块(在包含控制码块和数据码块的情况下),并生成MII_TXC。
举例来说,具体实施例时,若确定出该待解码码块的同步域数值为第一数值,则确定该待解码码块中包含控制码块,若解码模块141确定出该待解码码块的同步域数值为第二数值,则确定该待解码码块为全数据码块。比如,对于前述的256B/257B编解码方案,同步域数值为0时,表示对应的257比特码块中包含4个64比特数据码块,即为全数据码块(datablocks),同步域数值为1时,表示对应的257比特码块中存在控制码块;对于前述的256B/258B编解码方案,同步域数值为01时,表示对应的257比特码块中包含4个64比特数据码块,即为全数据码块(data blocks),同步域数值为10时,表示对应的257比特码块中存在控制码块。其中,同前所述,本发明实施例对同步域的比特数不作限制。
可选地,进一步的,在确定出257比特码块中存在控制码块后,解码模块141可根据该待解码码块的第一级Block Type Field数值确定出该待解码码块的Block Type Field层级,比如在获取该待解码码块中的第一级块类型域数值后,通过与图3、图4或图5所示的编码格式表中的Block Type Field数值进行比较,可以确定出该待编码码块的物理层数据格式。若通过上述步骤确定出该待解码码块中包含一级Block Type Field,则确定出该待解码码块中包含2个或2个以下控制码块;若确定出该待解码码块中包含至少两级BlockType Field,则确定 出该待解码码块中包含3个或3个以上控制码块。
可选地,进一步的,若确定出该待解码码块中包含一级Block Type Field,并根据该Block Type Field数值确定出该待解码码块中的控制码块中存在Terminate block,则解码模块141可根据该块类型数值确定Terminate block中的terminate码字的位置。
进一步的,若解码模块141根据该待解码码块的物理层数据格式,确定出该待解码码块中还包含指示域,则还可根据该指示域的数值,确定该待解码码块中Terminate block控制码块中的Terminate码字的位置。
步骤1502:解码器1400的解压缩模块142将该待解码码块中的控制码块进行解压缩,将解压缩后的控制码块和该待解码码块中的数据码块输出为256比特码块(MII_TXD),并从MII输出该MII_TXD和步骤1501中确定出的MII_TXC。
具体实施时,解压缩模块142将该待解码码块分为4路待解码码块,解压缩模块142中的每个解压缩单元1421,对待解码码块中4路待解码码块中的每一路进行解压缩;其中,若待解码码块中包含8个7比特控制码块,则将每7比特控制码块解压缩为8比特控制码块;若待解码码块中包含有terminate码字、sequence码字或sfd码字,则解压缩出8比特空间。
需要说明的是,本发明的上述实施例中虽然主要以256B/257B直接编解码和256B/258B直接编解码为例描述,但本发明的保护范围并不限制于此,比如,基于本发明实施例的上述编解码原理,当使用4比特作为同步域时,其编解码方案可称为256B/260B编解码方案。
本发明的上述实施例中,在编码时,根据MII控制码块确定物理层编码格式、同步域数值、块类型域的层级以及块类型域的数值,根据确定出的物理层编码格式将预编码后的待编码码块映射为物理层数据格式,从而实现将对256比特码块进行编码。可以看出,本发明实施例通过利用256比特码块可压缩空间,保证256比特待编码码块间的汉明距离不小于4,并可为RS-FEC算法提 供足够的校验和空间。
基于相同的技术构思,本发明实施例还提供了能够实现上述编码方法的装置,该装置可以是以下装置中的一种:
PHY,所述PHY可以通过FPGA或者ASIC实现。所述PHY可以是网络接口卡(NetworkInterface Card,NIC)中的部件,所述NIC可以是线卡(Line Card)或者PIC(PhysicalInterface Card,物理接口卡)。所述PHY可以包含用于连接到(for interfacing to)MAC的Media-Independent Interface(媒体无关接口,MII);
PHY芯片(PHY chip),所述PHY芯片可以包括多个PHY。所述PHY芯片可以通过FPGA或者ASIC实现;
系统芯片(system chip),所述系统芯片可以包括多个MAC以及多个PHY;所述系统芯片可以通过FPGA或者ASIC实现;
多端口以太网设备(multi-port Ethernet device),所述多端口以太网设备可以是以太网集线器、以太网路由器或者以太网交换机。所述多端口以太网设备包括多个端口,每个端口可以包括系统芯片,所述系统芯片可以包括MAC和PHY。所述多端口以太网设备还可以将多个MAC整合到一个MAC芯片(MACchip),以及将多个PHY整合到一个PHY芯片。所述多端口以太网设备也可以将多个MAC以及多个PHY整合到一个系统芯片中。
该装置能够执行本发明上述实施例提供的编码方法,具体实现方式在此不再赘述。
基于相同的技术构思,本发明实施例还提供了能够实现上述解码方法的装置,该装置可以是以下装置中的一种:
PHY,所述PHY可以通过FPGA或者ASIC实现。所述PHY可以是网络接口卡(NetworkInterface Card,NIC)中的部件,所述NIC可以是线卡(Line Card)或者PIC(PhysicalInterface Card,物理接口卡)。所述PHY可以包含用于连接到(for interfacing to)MAC的Media-Independent Interface(媒体无关接 口,MII);
PHY芯片(PHY chip),所述PHY芯片可以包括多个PHY。所述PHY芯片可以通过FPGA或者ASIC实现;
系统芯片(system chip),所述系统芯片可以包括多个MAC以及多个PHY;所述系统芯片可以通过FPGA或者ASIC实现;
多端口以太网设备(multi-port Ethernet device),所述多端口以太网设备可以是以太网集线器、以太网路由器或者以太网交换机。所述多端口以太网设备包括多个端口,每个端口可以包括系统芯片,所述系统芯片可以包括MAC和PHY。所述多端口以太网设备还可以将多个MAC整合到一个MAC芯片(MACchip),以及将多个PHY整合到一个PHY芯片。所述多端口以太网设备也可以将多个MAC以及多个PHY整合到一个系统芯片中。
该装置能够执行本发明上述实施例提供的解码方法,具体实现方式在此不再赘述。
综上所述,本发明的上述实施例在物理层编码时,根据MII控制码块确定物理层编码格式、同步域数值、块类型域的层级以及各层级块类型域的数值,根据确定出的物理层编码格式将预编码后的待编码码块映射为物理层数据格式,从而实现将对256比特码块进行编码。由于根据256比特码块可压缩空间,进行多层级的块类型划分,从而在编码过程中保证各个256比特待编码码块间的汉明距离不小于4,并可为RS-FEC前向纠错算法提供足够的校验和空间。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器,使得通过该计算机或其他可编程数据处理设备的处理器执行的指令可实现流程图中的一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图的一个流程或多个流程和/或方框图的一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (38)
1.一种编码方法,其特征在于,包括:
接收输入的媒体无关接口MII控制码块和第一256比特待编码码块;
根据所述MII控制码块确定所述第一256比特待编码码块中的控制码块,对确定出的控制码块进行压缩,以得到压缩后的待编码码块;
根据所述MII控制码块确定物理层编码格式、同步域数值、块类型域的层级以及所述块类型域的数值;
根据确定出的物理层编码格式,将所述压缩后的待编码码块映射为物理层数据格式的数据,向所述数据中添加同步域,所述添加的同步域的数值为所述确定出的同步域数值,根据所述块类型域的层级在通过压缩获得的空间内添加块类型域,以得到编码结果,所述添加的块类型域的数值为所述确定出的块类型域的数值。
2.如权利要求1所述的方法,其特征在于,所述第一256比特待编码码块包括4路64比特待编码码块,所述MII控制码块包括4路8比特MII控制码块,所述4路8比特MII控制码块与所述4路64比特待编码码块一一对应;
所述根据所述MII控制码块确定所述第一256比特待编码码块中的控制码块,对确定出的控制码块进行压缩,包括:
分别对4路64比特待编码码块中的每一路待编码码块,执行以下步骤:
根据对应的8比特MII控制码块,确定64比特待编码码块中的控制码块;
若64比特待编码码块中包含8个8比特控制码块,则将每8比特控制码块压缩为7比特控制码块;和/或,
若64比特待编码码块中包含有terminate码字、sequence码字或sfd码字,则将64比特待编码码块压缩为56比特的码块。
3.如权利要求1或2所述的方法,其特征在于,所述根据所述MII控制码块确定同步域数值,包括:
根据所述MII控制码块确定出所述第一256比特待编码码块中包含控制码块后,确定所述同步域数值为第一数值;
所述方法还包括:若根据所述MII控制码块确定出所述第一256比特待编码码块中不包含控制码块,则确定所述同步域数值为第二数值,所述第二数值与所述第一数值不同。
4.如权利要求3所述的方法,其特征在于,所述根据所述MII控制码块确定块类型域的层级以及所述块类型域的数值,包括:
若根据所述MII控制码块确定出所述第一256比特待编码码块中包含N个64比特控制码块,所述N为小于3的正整数,则确定采用一级块类型域;
确定所述一级块类型域中第一级块类型域的数值,所述第一级块类型域的数值与接收的第二256比特待编码码块对应的第一级块类型域的数值不同,所述第二256比特待编码码块包含Y个64比特控制码块,所述Y为小于3的正整数,所述Y个64比特控制码块与所述N个64比特控制码块的类型不同,或者位置不同,或者类型相同的控制码块的位置不同。
5.如权利要求4所述的方法,其特征在于,若根据所述MII控制码块确定出所述第一256比特待编码码块中包含N个64比特控制码块,则确定采用一级块类型域,包括:
若所述第一256比特待编码码块中包含1个终止类型的64比特控制码块Terminateblock和3个64比特数据码块,则根据所述Terminate block中的Terminate码字的位置,确定所述一级块类型域中第一级块类型域的数值。
6.如权利要求1或2所述的方法,其特征在于,所述根据所述MII控制码块确定块类型域的层级以及所述块类型域的数值,包括:
若根据所述MII控制码块确定出所述第一256比特待编码码块中包含N个64比特控制码块,所述N为小于3的正整数,则确定采用一级块类型域;
确定所述一级块类型域中第一级块类型域的数值,所述第一级块类型域的数值与接收的第二256比特待编码码块对应的第一级块类型域的数值不同,所述第二256比特待编码码块包含Y个64比特控制码块,所述Y为小于3的正整数,所述Y个64比特控制码块与所述N个64比特控制码块的类型不同,或者位置不同,或者类型相同的控制码块的位置不同。
7.如权利要求6所述的方法,其特征在于,若根据所述MII控制码块确定出所述第一256比特待编码码块中包含N个64比特控制码块,则确定采用一级块类型域,包括:
若所述第一256比特待编码码块中包含1个终止类型的64比特控制码块Terminateblock和3个64比特数据码块,则根据所述Terminate block中的Terminate码字的位置,确定所述一级块类型域中第一级块类型域的数值。
8.如权利要求3所述的方法,其特征在于,所述根据所述MII控制码块确定块类型域的层级以及所述块类型域的数值,包括:
若根据所述MII控制码块确定出所述第一256比特待编码码块中包含M个64比特控制码块,所述M为大于2且小于5的正整数,则确定采用两级块类型域;
确定所述两级块类型域中第一级块类型域的数值,所述第一级块类型域的数值与接收的第三256比特待编码码块对应的第一级块类型域的数值相同,且与接收到的第四256比特待编码码块对应的第一级块类型域的数值不同;所述第三256比特待编码码块包含X个64比特控制码块,所述X为大于2且小于5的正整数,所述第四256比特待编码码块包含Z个64比特控制码块,所述Z为小于3的正整数;
确定所述两级块类型域中第二级块类型域的数值,所述第二级块类型域的数值与接收的第五256比特待编码码块对应的第二级块类型域的数值不同,所述第五256比特待编码码块包含Q个64比特控制码块,所述Q为大于2且小于5的正整数,所述Q个64比特控制码块与所述M个64比特控制码块的类型不同,或者位置不同,或者类型相同的控制码块的位置不同,所述第五256比特待编码码块对应的第一级块类型域的数值与所述第一256比特待编码码块对应的第一级块类型域的数值相同。
9.如权利要求1或2所述的方法,其特征在于,所述根据所述MII控制码块确定块类型域的层级以及所述块类型域的数值,包括:
若根据所述MII控制码块确定出所述第一256比特待编码码块中包含M个64比特控制码块,所述M为大于2且小于5的正整数,则确定采用两级块类型域;
确定所述两级块类型域中第一级块类型域的数值,所述第一级块类型域的数值与接收的第三256比特待编码码块对应的第一级块类型域的数值相同,且与接收到的第四256比特待编码码块对应的第一级块类型域的数值不同;所述第三256比特待编码码块包含X个64比特控制码块,所述X为大于2且小于5的正整数,所述第四256比特待编码码块包含Z个64比特控制码块,所述Z为小于3的正整数;
确定所述两级块类型域中第二级块类型域的数值,所述第二级块类型域的数值与接收的第五256比特待编码码块对应的第二级块类型域的数值不同,所述第五256比特待编码码块包含Q个64比特控制码块,所述Q为大于2且小于5的正整数,所述Q个64比特控制码块与所述M个64比特控制码块的类型不同,或者位置不同,或者类型相同的控制码块的位置不同,所述第五256比特待编码码块对应的第一级块类型域的数值与所述第一256比特待编码码块对应的第一级块类型域的数值相同。
10.如权利要求4所述的方法,其特征在于,还包括:
若根据所述MII控制码块确定出所述第一256比特待编码码块中包含至少2个64比特控制码块,且其中一个控制码块为Terminate block,则根据所述Terminate block中的Terminate码字的位置,确定出指示域数值,并在通过压缩获得的空间内添加指示域,所述添加的指示域的数值为所述确定出的指示域数值,所述添加的指示域的数值用于标识Terminate block中的Terminate码字的位置。
11.如权利要求5所述的方法,其特征在于,还包括:
若根据所述MII控制码块确定出所述第一256比特待编码码块中包含至少2个64比特控制码块,且其中一个控制码块为Terminate block,则根据所述Terminate block中的Terminate码字的位置,确定出指示域数值,并在通过压缩获得的空间内添加指示域,所述添加的指示域的数值为所述确定出的指示域数值,所述添加的指示域的数值用于标识Terminate block中的Terminate码字的位置。
12.如权利要求6所述的方法,其特征在于,还包括:
若根据所述MII控制码块确定出所述第一256比特待编码码块中包含至少2个64比特控制码块,且其中一个控制码块为Terminate block,则根据所述Terminate block中的Terminate码字的位置,确定出指示域数值,并在通过压缩获得的空间内添加指示域,所述添加的指示域的数值为所述确定出的指示域数值,所述添加的指示域的数值用于标识Terminate block中的Terminate码字的位置。
13.如权利要求7所述的方法,其特征在于,还包括:
若根据所述MII控制码块确定出所述第一256比特待编码码块中包含至少2个64比特控制码块,且其中一个控制码块为Terminate block,则根据所述Terminate block中的Terminate码字的位置,确定出指示域数值,并在通过压缩获得的空间内添加指示域,所述添加的指示域的数值为所述确定出的指示域数值,所述添加的指示域的数值用于标识Terminate block中的Terminate码字的位置。
14.如权利要求8所述的方法,其特征在于,还包括:
若根据所述MII控制码块确定出所述第一256比特待编码码块中包含至少2个64比特控制码块,且其中一个控制码块为Terminate block,则根据所述Terminate block中的Terminate码字的位置,确定出指示域数值,并在通过压缩获得的空间内添加指示域,所述添加的指示域的数值为所述确定出的指示域数值,所述添加的指示域的数值用于标识Terminate block中的Terminate码字的位置。
15.如权利要求9所述的方法,其特征在于,还包括:
若根据所述MII控制码块确定出所述第一256比特待编码码块中包含至少2个64比特控制码块,且其中一个控制码块为Terminate block,则根据所述Terminate block中的Terminate码字的位置,确定出指示域数值,并在通过压缩获得的空间内添加指示域,所述添加的指示域的数值为所述确定出的指示域数值,所述添加的指示域的数值用于标识Terminate block中的Terminate码字的位置。
16.如权利要求1或2所述的方法,其特征在于,所述同步域宽度为N比特,N≥1。
17.一种编码器,其特征在于,包括:
预编码模块,用于接收输入的媒体无关接口MII控制码块和第一256比特待编码码块,根据所述MII控制码块确定所述第一256比特待编码码块中的控制码块,对确定出的控制码块进行压缩,以得到压缩后的待编码码块;
编码模块,用于根据所述MII控制码块确定物理层编码格式、同步域数值、块类型域的层级以及所述块类型域的数值,根据确定出的物理层编码格式,将所述预编码模块输出的所述压缩后的待编码码块映射为物理层数据格式的数据,向所述数据中添加同步域,所述添加的同步域的数值为所述确定出的同步域数值,根据块类型域的层级在所述预编码模块通过压缩获得的空间内添加块类型域,以得到编码结果,所述添加的块类型域的数值为所述确定出的块类型域数值。
18.如权利要求17所述的编码器,其特征在于,所述第一256比特待编码码块包括4路64比特待编码码块,所述MII控制码块包括4路8比特MII控制码块,所述4路8比特MII控制码块与所述4路64比特待编码码块一一对应;
所述预编码模块包括4个预编码单元,每个所述编码单元分别对4路64比特待编码码块中的每一路待编码码块,执行以下步骤:
根据对应的8比特MII控制码块,确定64比特待编码码块中的控制码块;若64比特待编码码块中包含8个8比特控制码块,则将每8比特控制码块压缩为7比特控制码块,和/或,若64比特待编码码块中包含有terminate码字、sequence码字或sfd码字,则将64比特待编码码块压缩为56比特的码块。
19.如权利要求17所述的编码器,其特征在于,所述编码模块具体用于,若根据所述MII控制码块确定出所述第一256比特待编码码块中包含控制码块,则确定所述同步域数值为第一数值,若根据所述MII控制码块确定出所述第一256比特待编码码块中不包含控制码块,则确定所述同步域数值为第二数值,所述第二数值与所述第一数值不同。
20.如权利要求17所述的编码器,其特征在于,所述编码模块具体用于,若根据所述MII控制码块确定出所述第一256比特待编码码块中包含N个64比特控制码块,所述N为小于3的正整数,则确定采用一级块类型域;确定所述一级块类型域中第一级块类型域的数值,所述第一级块类型域的数值与接收的第二256比特待编码码块对应的第一级块类型域的数值不同,所述第二256比特待编码码块包含Y个64比特控制码块,所述Y为小于3的正整数,所述Y个64比特控制码块与所述N个64比特控制码块的类型不同,或者位置不同,或者类型相同的控制码块的位置不同。
21.如权利要求20所述的编码器,其特征在于,所述编码模块具体用于,若所述第一256比特待编码码块中包含1个终止类型的64比特控制码块Terminate block和3个64比特数据码块,则根据所述Terminate block中的Terminate码字的位置,确定所述一级块类型域中第一级块类型域的数值。
22.如权利要求17或18所述的编码器,其特征在于,所述编码模块具体用于,若根据所述MII控制码块确定出所述第一256比特待编码码块中包含M个64比特控制码块,所述M为大于2且小于5的正整数,则确定采用两级块类型域;确定所述两级块类型域中第一级块类型域的数值,所述第一级块类型域的数值与接收的第三256比特待编码码块对应的第一级块类型域的数值相同,且与接收到的第四256比特待编码码块对应的第一级块类型域的数值不同,所述第三256比特待编码码块包含X个64比特控制码块,所述X为大于2且小于5的正整数,所述第四256比特待编码码块包含Z个64比特控制码块,所述Z为小于3的正整数;确定所述两级块类型域中第二级块类型域的数值,所述第二级块类型域的数值与接收的第五256比特待编码码块对应的第二级块类型域的数值不同,所述第五256比特待编码码块包含Q个64比特控制码块,所述Q为大于2且小于5的正整数,所述Q个64比特控制码块与所述M个64比特控制码块的类型不同,或者位置不同,或者类型相同的控制码块的位置不同,所述第五256比特待编码码块对应的第一级块类型域的数值与所述第一256比特待编码码块对应的第一级块类型域的数值相同。
23.如权利要求20-21中任一项所述的编码器,其特征在于,所述编码模块还用于,若根据所述MII控制码块确定出所述第一256比特待编码码块中包含至少2个64比特控制码块,且其中一个控制码块为Terminate block,则根据Terminate block中的Terminate码字的位置,确定出指示域数值,并在所述预编码模块通过压缩获得的空间内添加指示域,所述添加的指示域的数值为所述确定出的指示域数值,所述添加的指示域数值用于标识Terminate block中的Terminate码字的位置。
24.如权利要求22所述的编码器,其特征在于,所述编码模块还用于,若根据所述MII控制码块确定出所述第一256比特待编码码块中包含至少2个64比特控制码块,且其中一个控制码块为Terminate block,则根据Terminate block中的Terminate码字的位置,确定出指示域数值,并在所述预编码模块通过压缩获得的空间内添加指示域,所述添加的指示域的数值为所述确定出的指示域数值,所述添加的指示域数值用于标识Terminate block中的Terminate码字的位置。
25.如权利要求17-21中任一项所述的编码器,其特征在于,所述同步域宽度为N比特,N≥1。
26.一种解码方法,其特征在于,包括:
接收第一待解码码块;
根据所述第一待解码码块的同步域数值、块类型域层级以及所述块类型域的数值,确定所述第一待解码码块的物理层数据格式;
根据所述第一待解码码块的物理层数据格式,获取所述第一待解码码块中的控制码块和数据码块,并生成媒体无关MII控制码块;
将获取到的控制码块进行解压缩;
将解压缩后的控制码块和获取到的数据码块输出为256比特码块,并输出所述MII控制码块。
27.如权利要求26所述的方法,其特征在于,所述根据所述第一待解码码块的同步域数值、块类型域层级以及所述块类型域的数值,确定所述第一待解码码块的物理层数据格式,包括:
若所述第一待解码码块的同步域数值为第一数值,则确定所述第一待解码码块中包含控制码块;
所述方法还包括:
接收第三待解码码块;
根据所述第三待解码码块的同步域数值、块类型域层级以及所述块类型域的数值,确定所述第三待解码码块的物理层数据格式,根据所述第三待解码码块的物理层数据格式,获取所述第三待解码码块中的数据码块;
所述根据所述第三待解码码块的同步域数值、块类型域层级以及所述块类型域的数值,确定所述第三待解码码块的物理层数据格式,包括:
若所述第三待解码码块的同步域数值为第二数值,则确定所述第三待解码码块中不包含控制码块,所述第二数值与所述第一数值不同。
28.如权利要求26所述的方法,其特征在于,所述根据所述第一待解码码块的同步域数值、块类型域层级以及所述块类型域的数值,确定所述第一待解码码块的物理层数据格式,包括:
若根据所述第一待解码码块的同步域数值确定出所述第一待解码码块中包含控制码块,则根据所述第一待解码码块的一级块类型域的数值确定出所述第一待解码码块的块类型域层级;
若确定出所述第一待解码码块的块类型域的层级为一级,则确定出所述第一待解码码块中包含N个64比特控制码块,所述N为小于3的正整数;
若确定出所述第一待解码码块的块类型域的层级至少为两级,则确定出所述第一待解码码块中包含M个64比特控制码块,所述M为大于2并且小于5的正整数。
29.如权利要求28所述的方法,其特征在于,所述根据所述第一待解码码块的同步域数值、块类型域层级以及所述块类型域的数值,确定所述第一待解码码块的物理层数据格式,还包括:
若确定出所述第一待解码码块的块类型域的层级为一级,并根据确定出的一级块类型域的数值确定出所述第一待解码码块中的64比特控制码块中存在Terminate block,则根据所述确定出的一级块类型域的数值确定Terminate block中的Terminate码字的位置。
30.如权利要求26所述的方法,其特征在于,若根据确定出的所述第一待解码码块的物理层数据格式,确定出所述第一待解码码块中还包含指示域,则还包括:
根据所述指示域的数值,确定所述第一待解码码块中Terminate block控制码块中的Terminate码字的位置。
31.如权利要求26所述的方法,其特征在于,所述将所述第一待解码码块中的控制码块进行解压缩,包括:
将所述第一待解码码块分为4路第二待解码码块,分别对所述4路第二待解码码块执行以下步骤:若第二待解码码块中包含8个7比特控制码块,则将每7比特控制码块解压缩为8比特控制码块;若第二待解码码块中包含有Terminate码字、sequence码字或sfd码字,则将所述第二待解码码块解压缩为64比特码块。
32.如权利要求26-31中任一项所述的方法,其特征在于,所述同步域宽度为N比特,N≥1。
33.一种解码器,其特征在于,包括:
解码模块,用于接收第一待解码码块,根据所述第一待解码码块的同步域数值、块类型域层级以及所述块类型域的数值,确定所述第一待解码码块的物理层数据格式,根据所述第一待解码码块的物理层数据格式,获取所述第一待解码码块中的控制码块和数据码块,并生成媒体无关MII控制码块;
解压缩模块,用于将所述解码模块获取到的控制码块进行解压缩,将解压缩后的控制码块和所述解码模块获取到的数据码块输出为256比特码块,并输出所述解码码块生成的所述MII控制码块。
34.如权利要求33所述的解码器,其特征在于,所述解码模块具体用于,若所述第一待解码码块的同步域数值为第一数值,则确定所述待解码码块中包含控制码块;
所述解码模块还用于,接收第三待解码码块,根据所述第三待解码码块的同步域数值、块类型域层级以及所述块类型域的数值,确定所述第三待解码码块的物理层数据格式,根据所述第三待解码码块的物理层数据格式,获取所述第三待解码码块中的数据码块,若所述第三待解码码块的同步域数值为第二数值,则确定所述第三待解码码块中不包含控制码块,所述第二数值与所述第一数值不同。
35.如权利要求33所述的解码器,其特征在于,所述解码模块具体用于,若根据所述第一待解码码块的同步域数值确定出所述第一待解码码块中包含控制码块,则根据所述第一待解码码块的一级块类型域的数值确定出所述第一待解码码块的块类型域层级;若确定出所述第一待解码码块的块类型域的层级为一级,则确定出所述第一待解码码块中包含N个64比特控制码块,所述N为小于3的正整数;若确定出所述第一待解码码块的块类型域的层级至少为两级,则确定出所述第一待解码码块中包含M个64比特控制码块,所述M为大于2并且小于5的正整数。
36.如权利要求35所述的解码器,其特征在于,所述解码模块还具体用于,若确定出所述第一待解码码块的块类型域的层级为一级,并根据确定出的一级块类型域的数值确定出所述第一待解码码块中的64比特控制码块中存在Terminate block,则根据所述确定出的一级块类型域的数值确定Terminate block中的terminate码字的位置。
37.如权利要求33所述的解码器,其特征在于,所述解码模块具体用于,若根据确定出的所述第一待解码码块的物理层数据格式,确定出所述第一待解码码块中还包含指示域,则根据所述指示域的数值,确定所述第一待解码码块中Terminate block控制码块中的Terminate码字的位置。
38.如权利要求33所述的解码器,其特征在于,所述解压缩模块包括4个解压缩单元,所述解压缩模块将所述第一待解码码块分为4路第二待解码码块,每个所述解压缩单元分别对所述4路第二待解码码块执行以下步骤:
若第二待解码码块中包含8个7比特控制码块,则将每7比特控制码块解压缩为8比特控制码块;若第二待解码码块中包含有Terminate码字、sequence码字或sfd码字,则将所述第二待解码码块解压缩为64比特码块。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310390805.7A CN104426629B (zh) | 2013-08-30 | 2013-08-30 | 一种物理层编解码方法及其装置 |
EP14840055.9A EP3041157B1 (en) | 2013-08-30 | 2014-07-07 | Physical layer coding/decoding method and apparatus thereof |
PCT/CN2014/081722 WO2015027755A1 (zh) | 2013-08-30 | 2014-07-07 | 一种物理层编解码方法及其装置 |
US15/055,947 US9467165B2 (en) | 2013-08-30 | 2016-02-29 | Physical layer encoding and decoding method and apparatuses thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310390805.7A CN104426629B (zh) | 2013-08-30 | 2013-08-30 | 一种物理层编解码方法及其装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104426629A CN104426629A (zh) | 2015-03-18 |
CN104426629B true CN104426629B (zh) | 2017-08-04 |
Family
ID=52585518
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310390805.7A Active CN104426629B (zh) | 2013-08-30 | 2013-08-30 | 一种物理层编解码方法及其装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9467165B2 (zh) |
EP (1) | EP3041157B1 (zh) |
CN (1) | CN104426629B (zh) |
WO (1) | WO2015027755A1 (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10372527B2 (en) | 2013-07-15 | 2019-08-06 | Intel Corporation | Method of encoding data |
CN110380957B (zh) * | 2015-03-30 | 2022-05-24 | 华为技术有限公司 | 数据处理方法及装置 |
CN111431666B (zh) * | 2015-04-23 | 2022-05-31 | 华为技术有限公司 | 一种数据处理方法和数据发送端以及接收端 |
CN106341207A (zh) * | 2015-07-06 | 2017-01-18 | 华为技术有限公司 | 一种编码块数据流的发送和接收方法、设备和系统 |
ES2779598T3 (es) * | 2016-11-18 | 2020-08-18 | Mercury Mission Systems Int Sa | Interfaz de red segura |
CN108347292A (zh) * | 2017-01-22 | 2018-07-31 | 深圳市中兴微电子技术有限公司 | 一种物理编码子层的数据编解码方法和装置 |
CN110890936B (zh) | 2018-09-07 | 2021-12-14 | 华为技术有限公司 | 一种码块生成方法、接收方法和装置 |
US11082367B2 (en) * | 2019-05-10 | 2021-08-03 | Ciena Corporation | FlexE frame format using 256b/257b block encoding |
CN112118073B (zh) | 2019-06-19 | 2022-04-22 | 华为技术有限公司 | 一种数据处理方法、光传输设备及数字处理芯片 |
CN113381836B (zh) * | 2020-02-25 | 2023-03-24 | 华为技术有限公司 | 一种线路编码方法及装置 |
CN115694728A (zh) * | 2020-09-18 | 2023-02-03 | 华为技术有限公司 | 一种线路编码方法及装置 |
TW202333460A (zh) * | 2022-01-05 | 2023-08-16 | 大陸商華為技術有限公司 | 編碼方法、解碼方法、裝置、設備、系統及可讀儲存介質 |
CN117375630B (zh) * | 2023-12-07 | 2024-03-05 | 国网山东省电力公司莱芜供电公司 | 一种针对带电作业预警系统的监控数据压缩方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101610134A (zh) * | 2009-07-10 | 2009-12-23 | 中兴通讯股份有限公司 | 64b/66b编解码装置及实现64b/66b编解码的方法 |
CN103259610A (zh) * | 2012-02-15 | 2013-08-21 | 华为技术有限公司 | 基于重复编码传输数据的方法、装置及系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6650638B1 (en) | 2000-03-06 | 2003-11-18 | Agilent Technologies, Inc. | Decoding method and decoder for 64b/66b coded packetized serial data |
US7302631B2 (en) * | 2004-07-16 | 2007-11-27 | Rambus Inc. | Low overhead coding techniques |
US7487426B2 (en) * | 2005-10-17 | 2009-02-03 | Enigma Semiconductor, Inc. | 64b/66b coding apparatus and method |
US7627023B1 (en) * | 2005-11-01 | 2009-12-01 | Marvell International Ltd. | 64/66 encoder |
US7676733B2 (en) * | 2006-01-04 | 2010-03-09 | Intel Corporation | Techniques to perform forward error correction for an electrical backplane |
CN102497251A (zh) * | 2011-12-08 | 2012-06-13 | 北京交通大学 | 一种无线mesh网中自适应调制编码方法 |
-
2013
- 2013-08-30 CN CN201310390805.7A patent/CN104426629B/zh active Active
-
2014
- 2014-07-07 WO PCT/CN2014/081722 patent/WO2015027755A1/zh active Application Filing
- 2014-07-07 EP EP14840055.9A patent/EP3041157B1/en active Active
-
2016
- 2016-02-29 US US15/055,947 patent/US9467165B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101610134A (zh) * | 2009-07-10 | 2009-12-23 | 中兴通讯股份有限公司 | 64b/66b编解码装置及实现64b/66b编解码的方法 |
CN103259610A (zh) * | 2012-02-15 | 2013-08-21 | 华为技术有限公司 | 基于重复编码传输数据的方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104426629A (zh) | 2015-03-18 |
EP3041157A8 (en) | 2017-01-04 |
WO2015027755A1 (zh) | 2015-03-05 |
US20160182084A1 (en) | 2016-06-23 |
EP3041157B1 (en) | 2021-09-08 |
EP3041157A4 (en) | 2017-05-17 |
US9467165B2 (en) | 2016-10-11 |
EP3041157A1 (en) | 2016-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104426629B (zh) | 一种物理层编解码方法及其装置 | |
CN1154285C (zh) | 灵活的通信差错保护方法 | |
CN102164025A (zh) | 基于重复编码和信道极化的编码器及其编译码方法 | |
US8051355B2 (en) | Multilevel low density parity-check coded modulation | |
CN105264778A (zh) | 一种crc计算方法及装置 | |
WO2020177596A1 (zh) | 数据传输方法、装置及系统 | |
US9037940B2 (en) | Method and system for encoding for 100G-KR networking | |
US20120060070A1 (en) | Modulation - forward error correction (mfec) codes and methods of constructing and utilizing the same | |
WO2016074226A1 (zh) | 基于ofmda的wlan系统中的交织处理方法和设备 | |
WO2007108471A1 (ja) | 変調装置、復調装置、および変調方法 | |
CN102089985B (zh) | 在移动通信系统中使用CTC(卷积的Turbo码)编码器发送数据的装置和方法 | |
US20220052785A1 (en) | Data sending and receiving method and device | |
WO2022088709A1 (zh) | 一种以太网的编码方法及装置 | |
CN102868482B (zh) | 多级编码调制方法及装置 | |
CN114337686A (zh) | 极化码的编码及译码方法和装置、信息传输系统 | |
US8479082B2 (en) | Packet error correction in networks | |
WO2016141551A1 (zh) | 交织处理方法和设备 | |
CN101848055A (zh) | 一种数据修正方法和装置 | |
TW202320493A (zh) | 具有可伸縮字長的轉態編碼器及轉態編碼方法 | |
CN116015538A (zh) | 一种基于Polar码的非正交多址接入通信方法 | |
US20140146835A1 (en) | 64b/66b codec for ethernet applications | |
CN1182657C (zh) | 用于降低乘积码译码所需存储量和复杂度的方法 | |
CN1964200B (zh) | 一种线性码扩展编码及解码方法以及数据传输方法及装置 | |
JP2023519407A (ja) | データ通信のためのコーディング方法および装置 | |
WO2023029880A1 (zh) | 一种数据交织方法及数据交织装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |