CN106464427B - 一种数据处理方法和数据发送端以及接收端 - Google Patents

一种数据处理方法和数据发送端以及接收端 Download PDF

Info

Publication number
CN106464427B
CN106464427B CN201580000680.XA CN201580000680A CN106464427B CN 106464427 B CN106464427 B CN 106464427B CN 201580000680 A CN201580000680 A CN 201580000680A CN 106464427 B CN106464427 B CN 106464427B
Authority
CN
China
Prior art keywords
data stream
data
fec
bit width
pcs
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
Application number
CN201580000680.XA
Other languages
English (en)
Other versions
CN106464427A (zh
Inventor
杨文斌
王童童
王心远
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202010238838.XA priority Critical patent/CN111431666B/zh
Publication of CN106464427A publication Critical patent/CN106464427A/zh
Application granted granted Critical
Publication of CN106464427B publication Critical patent/CN106464427B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/04Speed or phase control by synchronisation signals
    • H04L7/048Speed or phase control by synchronisation signals using the properties of error detecting or error correcting codes, e.g. parity as synchronisation signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0658Clock or time synchronisation among packet nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • H04L1/0042Encoding specially adapted to other signal generation operation, e.g. in order to reduce transmit distortions, jitter, or to improve signal shape
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0096Channel splitting in point-to-point links

Abstract

一种数据处理方法和数据发送端以及接收端。其中数据处理方法包括:在第一数据流中插入对多个AM,所述第一数据流为经过物理层编码后进行转码和加扰的数据流,所述第一数据流的传输速率大于等于100GPS;将包括所述AM的第一数据流适配到多路物理编码子层PCS通道上,得到第二数据流;对所述多路PCS通道上的第二数据流进行FEC编码,得到第三数据流;根据并串行与串并行转换器Serdes的输入位宽将所述第三数据流分发到多路物理介质接入子层PMA通道上,以得到多个第四数据流,所述多个第四数据流与所述多路PMA通道一一对应,其中,每个第四数据流包括连续完整至少一个AM,所述至少一个AM是所述多个AM中的AM。

Description

一种数据处理方法和数据发送端以及接收端
本申请要求于2015年4月23日提交中国专利局、申请号为PCT/CN2015/077319、发明名称为“一种数据处理方法和数据发送端以及接收端”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本发明实施例涉及通信领域,尤其涉及一种数据处理方法和数据发送端以及接收端。
背景技术
随着互联网的发展,电信骨干网的流量每年正以50%~80%的速度飞速增长,未来对以太网接口的带宽需求也越来越大。
当前以太网标准提出的架构主要是IEEE 802.3ba,bj,bm等标准中描述的架构,这些架构的物理层都是采用100G的带宽接口进行前向纠错码(Forward Error Correction,FEC)编解码。现有技术中以太网接口架构采用100G的处理带宽,物理编码子层(PhysicalCoding Sublayer,PCS)主要模块有编解码模块,扰码模块和分发模块及对齐字插入模块等,该方案是针对100G的带宽而设计。
在现有技术中以太网的架构中,传输速率采用100G的PCS层的输入数据是协调子层(Reconciliation Sublayer,RS)层的100G以太网介质无关接口(Century GigabitMedia Independent Interface,CGMII)格式的并行数据,输出多路通道的数据,然后将数据分发到物理介质接入子层(Physical Medium Attachment Sublayer,PMA)。PCS层中的接收侧和发送侧主要功能可基于100G标准的延伸。100G发送端首先对数据进行64b/66b编码,然后对数据进行加扰和分发,为了解决通道内对齐和通道间乱序,还需要插入比特位交叉奇偶校验(Bit Interleaved Parity,BIP)码作为对齐标志(Alignment Marker,AM),插入AM后将数据分发到PMA通道,100G接收端首先接收数据,然后进行块对齐锁定、AM锁定对齐,然后通过AM进行通道的重映射,通道重映射完成之后将AM移除,最后完成64b/66b解码。也就是说,在上述现有技术中,100G接收端是通过AM锁定对齐后根据AM完成通道重映射,所以必须保证AM图案的完整才能被接收端识别。
现有以太网架构在适用于100G处理带宽时可以完整的传输AM,但是上述架构的结构单一支持场景有限,无法灵活适配,且不能向高带宽扩展。若以太网接口采用更高的速率(例如400G)就可能出现并串行与串并行转换器(英文名称Serdes)传输带宽不匹配和AM可能不能对齐等问题,尤其是在以太网中引入前向纠错码(FEC,Forward Error Correction)之后,也会打乱原有的AM,使得接收端无法正确识别出AM,也就无法完成通道重映射,出现接收端无法正确解码的问题。
发明内容
本发明实施例提供了一种数据处理方法和数据发送端以及接收端,能够在保证AM不被破坏的情况下传输数据流,数据接收端可以正确解码出AM。
第一方面,本发明实施例提供一种数据处理方法,包括:
在第一数据流中插入对多个齐标志AM,所述第一数据流为经过物理层编码后进行转码和加扰的数据流,所述第一数据流的传输速率大于等于100GPS;
将包括所述AM的第一数据流适配到多路物理编码子层PCS通道上,得到第二数据流;
对所述多路PCS通道上的第二数据流进行前向纠错FEC编码,得到第三数据流;
根据并串行与串并行转换器Serdes的输入位宽将所述第三数据流分发到多路物理介质接入子层PMA通道上,以得到多个第四数据流,所述多个第四数据流与所述多路PMA通道一一对应,其中,每个第四数据流包括连续完整至少一个AM,所述至少一个AM是所述多个AM中的AM。
结合第一方面,在第一方面的第一种可能的实现方式中,所述将包括所述AM的第一数据流分发到多路物理编码子层PCS通道上,包括:
所述第一数据流包括:全数据并行处理块、AM并行处理块,按照全数据并行处理的粒度将所述全数据并行处理块适配到所述多路PCS通道上,按照AM并行处理的粒度将所述AM并行处理块适配到所述多路PCS通道上。
结合第一方面,在第一方面的第二种可能的实现方式中,所述将包括所述AM的第一数据流适配到多路物理编码子层PCS通道上之后,所述对所述多路PCS通道上的第二数据流进行前向纠错FEC编码之前,所述方法还包括:
若AM插入电路的处理位宽和FEC编码电路的处理位宽不相同,对包括所述AM的第一数据流进行位宽转换,转换后的所述第一数据流的位宽与所述FEC编码电路的处理位宽相等。
结合第一方面,在第一方面的第三种可能的实现方式中,所述将包括所述AM的第一数据流适配到多路物理编码子层PCS通道上之后,所述对所述多路PCS通道上的第二数据流进行前向纠错FEC编码之前,所述方法还包括:
将在同一个时钟周期内并行处理的两个码字片段分到两个不同的时钟周期内进行处理并在所述两个不同的时钟周期内插入空数据,所述两个不同的时钟周期内分别包括原拼接在一个时钟周期内的两个码字片段的其中一个码字片段。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述对所述多路PCS通道上的第二数据流进行前向纠错FEC编码,得到第三数据流,包括:
对所述第二数据流中除插入的所述空数据以外的数据进行FEC编码;
在对所述第二数据流进行FEC编码之后,从编码后的所述第二数据流中删除插入的所述空数据,得到所述第三数据流。
结合第一方面的第三种可能或第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述将在同一个时钟周期内并行处理的两个码字片段分到两个不同的时钟周期内进行处理并在所述两个不同的时钟周期内插入空数据,包括:
在同一个时钟周期内并行处理的两个码字片段之间插入占用一个时钟周期的空数据,将原拼接在一个时钟周期内的两个码字片段的其中一个码字片段和一个时钟周期内的一部分空数据分在两个码字片段原拼接时所在的时钟周期内,将原拼接在一个时钟周期内的两个码字片段的另一个码字片段和一个时钟周期的另一部分空数据分在两个码字片段原拼接时所在的时钟周期的下一个时钟周期。
结合第一方面的第三种可能或第四种可能的实现方式,在第一方面的第六种可能的实现方式中,所述将在同一个时钟周期内并行处理的两个码字片段分到两个不同的时钟周期内进行处理并在所述两个不同的时钟周期内插入空数据,包括:
在同一个时钟周期内并行处理的两个码字片段中的前一个码字片段之后插入空数据使得两个码字片段原拼接时所在的时钟周期被填满,对同一个时钟周期内并行处理的两个码字片段中的后一个码字片段向后进行数据移位,并在所述后一个码字片段所在码字的最后一个码字片段之后插入空数据使得所述后一个码字片段所在码字的最后一个码字片段所在的时钟周期被填满。
结合第一方面,在第一方面的第七种可能的实现方式中,所述对所述多路PCS通道上的第二数据流进行前向纠错FEC编码,得到第三数据流,包括:
获取所述第二数据流中在同一个时钟周期内并行处理的两个码字片段,所述两个码字片段包括:第一码字片段和第二码字片段,所述第一码字片段的数据量大于或者等于所述第二码字片段;
将所述第一码字片段通过第一FEC编码电路进行FEC编码,同时将所述第二码字片段通过第二FEC编码电路进行FEC编码,所述第一码字片段和所述第二码字片段分别被所述第一FEC编码电路和所述第二FEC编码电路处理过后生成所述第三数据流,所述第二FEC编码电路和所述第一FEC编码电路使用完全不同的可配置逻辑编码电路,或者所述第二FEC编码电路为所述第一FEC编码电路中处理所述第一码字片段之外剩余的可配置逻辑编码电路通过资源配置操作之后得到的FEC编码电路。
结合第一方面,在第一方面的第八种可能的实现方式中,所述对所述多路PCS通道上的第二数据流进行前向纠错FEC编码,得到第三数据流之后,所述根据并串行与串并行转换器Serdes的输入位宽将所述第三数据流分发到多路物理介质接入子层PMA通道上之前,所述方法还包括:
若AM插入电路的处理位宽和FEC编码电路的处理位宽不相同,对包括所述第三数据流进行位宽转换,转换后的所述第三数据流的位宽与所述AM插入电路的处理位宽相等。
结合第一方面,在第一方面的第九种可能的实现方式中,所述根据并串行与串并行转换器Serdes的输入位宽将所述第三数据流分发到多路物理介质接入子层PMA通道上,包括:
根据所述PCS通道的路数和每个PCS通道上承载单个字符的数据大小确定切片大小,按照所述切片大小对所述第三数据流进行切片,得到切片后的第三数据流,其中,每个切片中包括多个第三数据块;
根据所述第三数据流的位宽、所述Serdes的输入位宽和切片大小确定需要分发的切片个数,从所述切片后的第三数据流中取出与所述切片个数对应的每个切片中的第三数据块,然后将与所述切片个数对应的每个切片位置相同的第三数据块叠加后分发到所述多路PMA通道中的同一路PMA通道上。
结合第一方面的第九种可能的实现方式,在第一方面的第十种可能的实现方式中,所述根据所述PCS通道的路数和每个PCS通道上承载单个字符的数据大小对所述第三数据流进行切片,包括:
所述PCS通道的路数为i,所述每个PCS通道上承载单个字符的数据大小为m,对所述第三数据流切片后每个分片中的第三数据块的大小为i×m,所述第三数据流的位宽为i×m×Integer1,所述Intger1为预置的正整数;
所述根据所述第三数据流的位宽、所述Serdes的输入位宽和切片大小确定切片个数,包括:
所述Serdes的输入位宽为i×m×Integer2,所述切片大小为i×m×IntegerS,则所述Integer1和所述Integer2都是IntegerS的整数倍,所述切片个数为Integer2/IntegerS,所述Intger2为预置的正整数;
所述从所述切片后的第三数据流中取出与所述切片个数对应的每个切片中的第三数据块,然后将与所述切片个数对应的每个切片位置相同的第三数据块叠加后分发到所述多路PMA通道中的同一路PMA通道上,包括:
从每个切片中取出第n个第三数据块,将取出的共Integer2/IntegerS个的第n个第三数据块叠加后分发到第n路的PMA通道上,其中,所述n的取值为为从0到i-1的任何一个值。
第二方面,本发明实施例还提供一种数据处理方法,包括:
从多路物理介质接入子层PMA通道上接收第四数据流,对所述第四数据流进行PMA的解调制,得到PMA解调后的第三数据流;
从所述第三数据流中识别出连续完整的对齐标志AM,根据所述AM对所述第三数据流进行物理编码子层PCS通道的对齐和重映射,得到对齐和重映射后的第三数据流;
对所述对齐和重映射后的第三数据流进行前向纠错FEC解码,得到第二数据流,所述第二数据流包括所述AM;
合并所述PCS通道上通过FEC解码得到的第二数据流,得到包括所述AM的第一数据流;
将包括所述AM的第一数据流中的AM移除,得到数据编码端编码使用的原始第一数据流。
结合第二方面,在第二方面的第一种可能的实现方式中,所述对所述第四数据流进行PMA的解调制,得到PMA解调后的第三数据流,包括:
根据所述第四数据流的位宽、串并行转换器Serdes的输入位宽和切片大小确定需要组合的切片个数,从每一路PMA通道上获取与切片个数对应的每个切片位置相同的第三数据块分别分发到各个PCS通道上,对每个PCS通道上的第三数据块进行合并,得到合并后的第三数据流。
结合第二方面第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述根据所述第四数据流的位宽、所述Serdes的输入位宽和切片大小确定切片个数,从每一路PMA通道上获取与切片个数对应的每个切片位置相同的第三数据块分别分发到各个PCS通道上,对每个PCS通道上的第三数据块进行合并,得到合并后的第三数据流,包括:
所述PCS通道的路数为i,所述每个PCS通道上承载单个字符的数据大小为m,所述第三数据流的位宽为i×m×Integer1,所述Intger1为预置的正整数;
所述Serdes的输入位宽为i×m×Integer2,所述切片大小为i×m×IntegerS,则所述Integer1和所述Integer2都是IntegerS的整数倍,所述切片个数为Integer1/IntegerS,所述Intger2为预置的正整数;
从每一路PMA通道上获取的每个分片中的第三数据块的大小为i×m,从第n路的PMA通道上获取共Integer1/IntegerS个的第n个第三数据块并分别分发到各个PCS通道上,对每个PCS通道上的第三数据块进行合并,得到位宽为i×m×Integer1的第三数据流。
结合第二方面,在第二方面的第三种可能的实现方式中,所述对所述对齐和重映射后的第三数据流进行前向纠错FEC解码之前,所述方法还包括:
若AM移除电路的处理位宽和FEC解码的处理位宽不相同,对所述对齐和重映射后的第三数据流进行位宽转换,转换位宽后的所述第三数据流的位宽与所述FEC解码电路的处理位宽相等。
结合第二方面,在第二方面的第四种可能的实现方式中,所述对所述对齐和重映射后的第三数据流进行前向纠错FEC解码之前,所述方法还包括:
将在同一个时钟周期内并行处理的两个码字片段分到两个不同的时钟周期内进行处理并在所述两个不同的时钟周期内插入空数据,所述两个不同的时钟周期内分别包括原拼接在一个时钟周期内的两个码字片段的其中一个码字片段。
结合第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述对所述对齐和重映射后的第三数据流进行前向纠错FEC解码,得到第二数据流,包括:
对所述对齐和重映射后的第三数据流中除插入的所述空数据以外的数据进行FEC解码;
在对所述第三数据流进行FEC解码之后,从解码后的所述第三数据流中删除插入的所述空数据,得到所述第二数据流。
结合第二方面的第四种可能或第五种可能的实现方式,在第二方面的第六种可能的实现方式中,所述将在同一个时钟周期内并行处理的两个码字片段分到两个不同的时钟周期内进行处理并在所述两个不同的时钟周期内插入空数据,包括:
在同一个时钟周期内并行处理的两个码字片段之间插入占用一个时钟周期的空数据,将原拼接在一个时钟周期内的两个码字片段的其中一个码字片段和一个时钟周期内的一部分空数据分在两个码字片段原拼接时所在的时钟周期内,将原拼接在一个时钟周期内的两个码字片段的另一个码字片段和一个时钟周期的另一部分空数据分在两个码字片段原拼接时所在的时钟周期的下一个时钟周期。
结合第二方面的第四种可能或第五种可能的实现方式,在第二方面的第七种可能的实现方式中,所述将在同一个时钟周期内并行处理的两个码字片段分到两个不同的时钟周期内进行处理并在所述两个不同的时钟周期内插入空数据,包括:
在同一个时钟周期内并行处理的两个码字片段中的前一个码字片段之后插入空数据使得两个码字片段原拼接时所在的时钟周期被填满,对同一个时钟周期内并行处理的两个码字片段中的后一个码字片段向后进行数据移位,并在所述后一个码字片段所在码字的最后一个码字片段之后插入空数据使得所述后一个码字片段所在码字的最后一个码字片段所在的时钟周期被填满。
结合第二方面,在第二方面的第八种可能的实现方式中,所述对所述对齐和重映射后的第三数据流进行前向纠错FEC解码,得到第二数据流,包括:
获取所述第三数据流中在同一个时钟周期内并行处理的两个码字片段,所述两个码字片段包括:第一码字片段和第二码字片段,所述第一码字片段的数据量大于或者等于所述第二码字片段;
将所述第一码字片段通过第一FEC解码电路进行FEC解码,同时将所述第二码字片段通过第二FEC解码电路进行FEC解码,所述第一码字片段和所述第二码字片段分别被所述第一FEC解码电路和所述第二FEC解码电路处理后生成所述第二数据流,所述第二FEC解码电路和所述第一FEC解码电路使用完全不同的可配置逻辑编码电路,或者所述第二FEC解码电路为所述第一FEC解码电路中处理所述第一码字片段之外剩余的可配置逻辑编码电路通过资源配置操作之后得到的FEC解码电路。
结合第二方面,在第二方面的第九种可能的实现方式中,所述将包括所述AM的第一数据流中的AM移除之前,所述方法还包括:
若AM移除电路的处理位宽和FEC解码电路的处理位宽不相同,对包括所述AM的第一数据流进行位宽转换,转换后的所述第一数据流的位宽与所述AM移除电路的位宽相等。
结合第二方面,在第二方面的第十种可能的实现方式中,所述合并所述PCS通道上解码后的第二数据流,得到包括所述AM的第一数据流,包括:
按照全数据并行处理的粒度提取到全数据并行处理块,按照AM并行处理的粒度提取到AM并行处理块,将所述全数据处理块和所述AM并行处理块进行合并,得到包括所述AM的第一数据流。
第三方面,本发明实施例还提供一种数据发送端,包括:
AM插入模块,用于在第一数据流中插入多个对齐标志AM,所述第一数据流为经过物理层编码后进行转码和加扰的数据流,所述第一数据流的传输速率大于等于100GPS;
适配模块,用于将包括所述AM的第一数据流适配到多路物理编码子层PCS通道上,得到第二数据流;
FEC编码模块,用于对所述多路PCS通道上的第二数据流进行前向纠错FEC编码,得到第三数据流;
数据流分发模块,用于根据并串行与串并行转换器Serdes的输入位宽将所述第三数据流分发到多路物理介质接入子层PMA通道上,以得到多个第四数据流,所述多个第四数据流与所述多路PMA通道一一对应,其中,每个第四数据流包括连续完整至少一个AM,所述至少一个AM是所述多个AM中的AM。
结合第三方面,在第三方面的第一种可能的实现方式中,所述适配模块,具体用于所述第一数据流包括:全数据并行处理块、AM并行处理块,按照全数据并行处理的粒度将所述全数据并行处理块适配到所述多路PCS通道上,按照AM并行处理的粒度将所述AM并行处理块适配到所述多路PCS通道上。
结合第三方面,在第三方面的第二种可能的实现方式中,所述数据发送端还包括:位宽变换模块,用于所述适配模块将包括所述AM的第一数据流适配到多路物理编码子层PCS通道上之后,所述FEC编码模块对所述多路PCS通道上的第二数据流进行前向纠错FEC编码之前,若AM插入电路的处理位宽和FEC编码电路的处理位宽不相同,对包括所述AM的第一数据流进行位宽转换,转换后的所述第一数据流的位宽与所述FEC编码电路的处理位宽相等。
结合第三方面,在第三方面的第三种可能的实现方式中,所述数据发送端还包括:提频模块,用于所述适配模块将包括所述AM的第一数据流适配到多路物理编码子层PCS通道上之后,所述FEC编码模块对所述多路PCS通道上的第二数据流进行前向纠错FEC编码之前,将在同一个时钟周期内并行处理的两个码字片段分到两个不同的时钟周期内进行处理并在所述两个不同的时钟周期内插入空数据,所述两个不同的时钟周期内分别包括原拼接在一个时钟周期内的两个码字片段的其中一个码字片段。
结合第三方面的第三种可能的实现方式,在第三方面的第四种可能的实现方式中,所述FEC编码模块,具体用于对所述第二数据流中除插入的所述空数据以外的数据进行FEC编码;在对所述第二数据流进行FEC编码之后,从编码后的所述第二数据流中删除插入的所述空数据,得到所述第三数据流。
结合第三方面的第三种可能或第四种可能的实现方式,在第三方面的第五种可能的实现方式中,所述提频模块,具体用于在同一个时钟周期内并行处理的两个码字片段之间插入占用一个时钟周期的空数据,将原拼接在一个时钟周期内的两个码字片段的其中一个码字片段和一个时钟周期内的一部分空数据分在两个码字片段原拼接时所在的时钟周期内,将原拼接在一个时钟周期内的两个码字片段的另一个码字片段和一个时钟周期的另一部分空数据分在两个码字片段原拼接时所在的时钟周期的下一个时钟周期。
结合第三方面的第三种可能或第四种可能的实现方式,在第三方面的第六种可能的实现方式中,所述提频模块,具体用于在同一个时钟周期内并行处理的两个码字片段中的前一个码字片段之后插入空数据使得两个码字片段原拼接时所在的时钟周期被填满,对同一个时钟周期内并行处理的两个码字片段中的后一个码字片段向后进行数据移位,并在所述后一个码字片段所在码字的最后一个码字片段之后插入空数据使得所述后一个码字片段所在码字的最后一个码字片段所在的时钟周期被填满。
结合第三方面,在第三方面的第七种可能的实现方式中,所述FEC编码模块,具体用于获取所述第二数据流中在同一个时钟周期内并行处理的两个码字片段,所述两个码字片段包括:第一码字片段和第二码字片段,所述第一码字片段的数据量大于或者等于所述第二码字片段;将所述第一码字片段通过第一FEC编码电路进行FEC编码,同时将所述第二码字片段通过第二FEC编码电路进行FEC编码,所述第一码字片段和所述第二码字片段分别被所述第一FEC编码电路和所述第二FEC编码电路处理过后生成所述第三数据流,所述第二FEC编码电路和所述第一FEC编码电路使用完全不同的可配置逻辑编码电路,或者所述第二FEC编码电路为所述第一FEC编码电路中处理所述第一码字片段之外剩余的可配置逻辑编码电路通过资源配置操作之后得到的FEC编码电路。
结合第三方面,在第三方面的第八种可能的实现方式中,所述数据发送端还包括:位宽转换模块,用于所述FEC编码模块对所述多路PCS通道上的第二数据流进行前向纠错FEC编码,得到第三数据流之后,所述PMA分发模块根据并串行与串并行转换器Serdes的输入位宽将所述第三数据流分发到多路物理介质接入子层PMA通道上之前,若AM插入电路的处理位宽和FEC编码电路的处理位宽不相同,对包括所述第三数据流进行位宽转换,转换后的所述第三数据流的位宽与所述AM插入电路的处理位宽相等。
结合第三方面,在第三方面的第九种可能的实现方式中,所述数据流分发模块,具体用于根据所述PCS通道的路数和每个PCS通道上承载单个字符的数据大小确定切片大小,按照所述切片大小对所述第三数据流进行切片,得到切片后的第三数据流,其中,每个切片中包括多个第三数据块;根据所述第三数据流的位宽、所述Serdes的输入位宽和切片大小确定需要分发的切片个数,从所述切片后的第三数据流中取出与所述切片个数对应的每个切片中的第三数据块,然后将与所述切片个数对应的每个切片位置相同的第三数据块叠加后分发到所述多路PMA通道中的同一路PMA通道上。
结合第三方面的第九种可能的实现方式,在第三方面的第十种可能的实现方式中,所述数据流分发模块,具体用于所述PCS通道的路数为i,所述每个PCS通道上承载单个字符的数据大小为m,对所述第三数据流切片后每个分片中的第三数据块的大小为i×m,所述第三数据流的位宽为i×m×Integer1,所述Intger1为预置的正整数;所述Serdes的输入位宽为i×m×Integer2,所述切片大小为i×m×IntegerS,则所述Integer1和所述Integer2都是IntegerS的整数倍,所述切片个数为Integer2/IntegerS,所述Intger2为预置的正整数;从每个切片中取出第n个第三数据块,将取出的共Integer2/IntegerS个的第n个第三数据块叠加后分发到第n路的PMA通道上,其中,所述n的取值为为从0到i-1的任何一个值。
第四方面,本发明实施例还提供一种数据接收端,包括:
PMA解调模块,用于从多路物理介质接入子层PMA通道上接收第四数据流,对所述第四数据流进行PMA的解调制,得到PMA解调后的第三数据流;
AM对齐和重映射模块,用于从所述第三数据流中识别出连续完整的对齐标志AM,根据所述AM对所述第三数据流进行物理编码子层PCS通道的对齐和重映射,得到对齐和重映射后的第三数据流;
FEC解码模块,用于对所述对齐和重映射后的第三数据流进行前向纠错FEC解码,得到第二数据流,所述第二数据流包括所述AM;
适配模块,用于合并所述PCS通道上通过FEC解码得到的第二数据流,得到包括所述AM的第一数据流;
AM移除模块,用于将包括所述AM的第一数据流中的AM移除,得到数据编码端编码使用的原始第一数据流。
结合第四方面,在第四方面的第一种可能的实现方式中,所述PMA解调模块,具体用于根据所述第四数据流的位宽、串并行转换器Serdes的输入位宽和切片大小确定需要组合的切片个数,从每一路PMA通道上获取与切片个数对应的每个切片位置相同的第三数据块分别分发到各个PCS通道上,对每个PCS通道上的第三数据块进行合并,得到合并后的第三数据流。
结合第四方面第一种可能的实现方式,在第四方面的第二种可能的实现方式中,所述PMA解调模块,具体用于所述PCS通道的路数为i,所述每个PCS通道上承载单个字符的数据大小为m,所述第三数据流的位宽为i×m×Integer1,所述Intger1为预置的正整数;所述Serdes的输入位宽为i×m×Integer2,所述切片大小为i×m×IntegerS,则所述Integer1和所述Integer2都是IntegerS的整数倍,所述切片个数为Integer1/IntegerS,所述Intger2为预置的正整数;从每一路PMA通道上获取的每个分片中的第三数据块的大小为i×m,从第n路的PMA通道上获取共Integer1/IntegerS个的第n个第三数据块并分别分发到各个PCS通道上,对每个PCS通道上的第三数据块进行合并,得到位宽为i×m×Integer1的第三数据流。
结合第四方面,在第四方面的第三种可能的实现方式中,所述数据接收端还包括:位宽转换模块,用于所述FEC解码模块对所述对齐和重映射后的第三数据流进行前向纠错FEC解码之前,若AM移除电路的处理位宽和FEC解码的处理位宽不相同,对所述对齐和重映射后的第三数据流进行位宽转换,转换位宽后的所述第三数据流的位宽与所述FEC解码电路的处理位宽相等。
结合第四方面,在第四方面的第四种可能的实现方式中,所述数据接收端还包括:提频模块,用于所述FEC解码模块用于对所述对齐和重映射后的第三数据流进行前向纠错FEC解码之前,将在同一个时钟周期内并行处理的两个码字片段分到两个不同的时钟周期内进行处理并在所述两个不同的时钟周期内插入空数据,所述两个不同的时钟周期内分别包括原拼接在一个时钟周期内的两个码字片段的其中一个码字片段。
结合第四方面的第四种可能的实现方式,在第四方面的第五种可能的实现方式中,所述FEC解码模块,具体用于对所述对齐和重映射后的第三数据流中除插入的所述空数据以外的数据进行FEC解码;在对所述第三数据流进行FEC解码之后,从解码后的所述第三数据流中删除插入的所述空数据,得到所述第二数据流。
结合第四方面的第四种可能或第五种可能的实现方式,在第四方面的第六种可能的实现方式中,所述提频模块,具体用于在同一个时钟周期内并行处理的两个码字片段之间插入占用一个时钟周期的空数据,将原拼接在一个时钟周期内的两个码字片段的其中一个码字片段和一个时钟周期内的一部分空数据分在两个码字片段原拼接时所在的时钟周期内,将原拼接在一个时钟周期内的两个码字片段的另一个码字片段和一个时钟周期的另一部分空数据分在两个码字片段原拼接时所在的时钟周期的下一个时钟周期。
结合第四方面的第四种可能或第五种可能的实现方式,在第四方面的第七种可能的实现方式中,所述提频模块,具体用于在同一个时钟周期内并行处理的两个码字片段中的前一个码字片段之后插入空数据使得两个码字片段原拼接时所在的时钟周期被填满,对同一个时钟周期内并行处理的两个码字片段中的后一个码字片段向后进行数据移位,并在所述后一个码字片段所在码字的最后一个码字片段之后插入空数据使得所述后一个码字片段所在码字的最后一个码字片段所在的时钟周期被填满。
结合第四方面,在第四方面的第八种可能的实现方式中,所述FEC解码模块,具体用于获取所述第三数据流中在同一个时钟周期内并行处理的两个码字片段,所述两个码字片段包括:第一码字片段和第二码字片段,所述第一码字片段的数据量大于或者等于所述第二码字片段;将所述第一码字片段通过第一FEC解码电路进行FEC解码,同时将所述第二码字片段通过第二FEC解码电路进行FEC解码,所述第一码字片段和所述第二码字片段分别被所述第一FEC解码电路和所述第二FEC解码电路处理后生成所述第二数据流,所述第二FEC解码电路和所述第一FEC解码电路使用完全不同的可配置逻辑编码电路,或者所述第二FEC解码电路为所述第一FEC解码电路中处理所述第一码字片段之外剩余的可配置逻辑编码电路通过资源配置操作之后得到的FEC解码电路。
结合第四方面,在第四方面的第九种可能的实现方式中,所述数据接收端还包括:位宽转换模块,用于所述AM移除模块将包括所述AM的第一数据流中的AM移除之前,若AM移除电路的处理位宽和FEC解码电路的处理位宽不相同,对包括所述AM的第一数据流进行位宽转换,转换后的所述第一数据流的位宽与所述AM移除电路的位宽相等。
结合第四方面,在第四方面的第十种可能的实现方式中,所述适配模块,具体用于按照全数据并行处理的粒度提取到全数据并行处理块,按照AM并行处理的粒度提取到AM并行处理块,将所述全数据处理块和所述AM并行处理块进行合并,得到包括所述AM的第一数据流。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例中,在第一数据流中插入对齐标志AM,第一数据流为经过物理层编码后进行转码和加扰的数据流,第一数据流的传输速率大于等于100G,将包括AM的第一数据流适配到多路物理编码子层PCS通道上,得到第二数据流,对多路PCS通道上的第二数据流进行前向纠错FEC编码,得到第三数据流,根据并串行与串并行转换器Serdes的输入位宽将第三数据流分发到多路物理介质接入子层PMA通道上,其中分发到每路PMA通道上的第三数据流包括连续完整的AM。由于本发明中对第三数据流分发到多路PMA通道上,并且每路PMA通道上可保持连续完整的AM,对于数据接收端来说就可以从多路PMA通道中获取到连续完整的AM,可以适用于数据流传输速率很高的场景,避免对AM的破坏。
附图说明
图1为本发明实施例提供的一种数据传输方法的流程方框示意图;
图2-a为本发明实施例提供的一种第一数据流适配到多路PCS通道上的实现方式示意图;
图2-b为本发明实施例提供的另一种第一数据流适配到多路PCS通道上的实现方式示意图;
图3为本发明实施例提供的对第二数据流进行FEC编码的功能模块示意图;
图4-a为本发明实施例提供的一种两个码字片段拼接的一种处理方式示意图;
图4-b为本发明实施例提供的一种两个码字片段拼接的另一种处理方式示意图;
图4-c为本发明实施例提供的一种两个码字片段拼接的另一种处理方式示意图;
图4-d为本发明实施例提供的一种两个码字片段拼接的另一种处理方式示意图;
图4-e为本发明实施例提供的第一FEC编码电路和第二FEC编码电路的一种实现方式示意图;
图4-f为本发明实施例提供的第一FEC编码电路和第二FEC编码电路的另一种实现方式示意图;
图4-g为本发明实施例提供的第一FEC编码电路和第二FEC编码电路的另一种实现方式示意图;
图4-h为本发明实施例提供的第一FEC编码电路和第二FEC编码电路的另一种实现方式示意图;
图5为现有技术中的普通Gearbox的位宽变化示意图;
图6为本发明实施例提供的对第三数据流分发到多路PMA通道上的实现方式示意图;
图7为本发明实施例提供的PCS内各模块的位宽不匹配的处理方式示意图;
图8为本发明实施例提供的另一种数据传输方法的流程方框示意图;
图9为本发明实施例中数据发送端和数据接收端的架构示意图;
图10为本发明实施例提供的变速模块从640变为680的转换示意图;
图11为本发明实施例提供的一种数据发送端的组成结构示意图;
图12为本发明实施例提供的一种数据接收端的组成结构示意图。
具体实施方式
本发明实施例提供了一种数据处理方法和数据发送端以及接收端,能够在保证AM不被破坏的情况下传输数据流,数据接收端可以正确解码出AM。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域的技术人员所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本发明的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
以下分别进行详细说明。
在以太网中引入FEC编解码机制,如果在以太网中引入400G更大带宽标准,整个以太网架构与上一代有很大变化,但是现有的以太网架构只能适用于100G或者更小的带宽,如果按照400G标准,那么在各层模块的灵活适配和减小资源占用及缩短整个系统延时和提高整个系统性能方面无法做到最优,本发明需要重新设置以太网中的架构,尤其是对PCS层需要重新设计,使得整个网络适配更加灵活,比如受到工艺和FEC算法本身码字大小等参数限制,当前架构在平滑过渡到400G的时候会产生很多问题,例如1×400G的FEC需要在16条的通道(英文名称lane)上分发,对于FEC算法可以选择RS FEC,而具体的码型选择可以是RSFEC(544,514,15,10),如果1×400G FEC采用这种FEC算法会存在如下问题:对于400G的带宽,每拍处理的数据位宽必须是16条lane的整数倍,而且每条lane上分发的数据必须是FEC的符号(英文名称symbol)的整倍数,比如当前比较可能的RS FEC算法中symbol大小为10bit,所以每拍的位宽必须是16×10的整数倍,具体有可能的位宽与时钟频率有如下可能:位宽为160比特(英文名称为bit),对应时钟频率为2.5GHz,位宽为320bit,时钟频率为1.25GHz,位宽为480bit,时钟频率为833.33MHz,位宽为640bit,时钟频率为625MHz,位宽为800bit,时钟频率为500MHz,位宽为960bit,时钟频率为416.66MHz等。
如图1所示,本发明实施例提供的一种数据处理方法,包括如下步骤:
101、在第一数据流中插入多个对齐标志(Alignment Marker,AM),第一数据流为经过物理层编码后进行转码和加扰的数据流,第一数据流的传输速率大于等于100GPS。
在本发明实施例中,数据发送端获取到的数据流来自以太网的MAC层的数据格式,到了400G以太网(英文简称CDGMII)接口后转换成相应的CDGMII格式,具体CDGMII接口的数据格式描述如下:CDGMII接口数位位宽为(20×(64+8)),CDGMII接口的格式是20路64bit的数据信息位加8位控制信息指示位,其中8比特控制信息位指示64bit的8个字节的数据代表数据还是控制信息。上述CDGMII数据格式传输到64b/66b编码模块进行编码。具体的64b/66b的编码格式为目前标准中通用的编码方法。
例如,对数据流进行64b/66b编码之后进行转码,转码模块(英文名称为Transcode)的具体格式有256b/257b,512b/513b,256b/258b,512b/514b等等转码方式,本发明不限定具体那一种转码方式。
转码之后的数据流还需要进行加扰,加扰可以按照一定的粒度整体或者部分加扰。可以采用统一的整体加扰,或者与FEC粒度对应的加扰,或者以PC的通道(英文名称lane)为粒度的加扰,同时加扰器的初始化值可以动态配置保证整个系统的性能,经过转码和加扰后的数据流定义为本发明中描述的第一数据流,在第一数据流中包括多个全数据并行处理块,本发明中第一数据流的传输速率为100GPS(英文名称gigabit per second,千兆每秒)或更高。
数据发送端在获取到第一数据流之后,在第一数据流中插入AM,需要说明的是,在第一数据流中插入AM的方式可参阅现有技术,AM的插入放在加扰之后,AM插入格式是转码后的格式,由于接收端需要根据AM进行对齐和重排序操作,所以AM本身不进行加扰操作。
需要说明的是,物理层编码可以是4b/5b编码,8b/10b编码或者64b/66b编码或其它类型的物理层编码执行主体是:物理层电路(简称:PHY)。
102、将包括AM的第一数据流适配到多路PCS通道上,得到第二数据流。
在本发明实施例中,从AM插入电路输出第一数据流之后,数据发送端将包括AM的第一数据流适配到PCS的多路通道上,得到第二数据流,在第二数据流中包括前述AM。
在本发明实施例中,AM插入在第一数据流中之后需要将第一数据流适配到PCS通道上,即需要将插入有AM的第一数据流分发到多路PCS通道上。以AM插入电路的处理位宽用P来表示,以PCS通道具有i路为例,PCS通道分别为PCS通道0、PCS通道1、...、PCS通道i-1,需要将数据大小为P的第一数据流分发到PCS通道0、PCS通道1、...、PCS通道i-1上,以P为640bit、i为16为例,那么第一数据流的640bit需要分发到16个PCS通道上,每个PCS通道上分发到的第一数据流为40bit。
在本发明的一些实施例中,步骤102将包括AM的第一数据流分发到多路物理编码子层PCS通道上,包括:
第一数据流包括:全数据并行处理块、AM并行处理块,按照全数据并行处理的粒度将全数据并行处理块适配到多路PCS通道上,按照AM并行处理的粒度将AM并行处理块适配到多路PCS通道上。
其中,第一数据流在插入AM之前,第一数据流中包括的数据块可以为全数据,在插入AM之后第一数据流为全数据和AM混合的数据流,在对包括AM的第一数据流适配到多路PCS通道上时,对于第一数据流中全数据的数据块和AM块的大小不同的情形,本发明实施例为了把AM均匀的分布到各路PCS通道上,可以对包括AM的第一数据流采用两种不同的粒度来进行适配,具体的,对于第一数据流中的全数据,可以按照全数据并行处理的粒度将全数据并行处理块适配到多路PCS通道上,对于第一数据流中的AM,则按照AM并行处理的粒度将AM并行处理块适配到多路PCS通道上。由于AM是单独分发的,所以可以保证在多路PCS通道上的均匀分布。可以理解的是,若全数据的并行处理粒度和AM并行处理的粒度相同,则可以按照同一种粒度将包括AM的第一数据流适配到多路PCS通道上。
如图2-a所示,为本发明实施例提供的一种第一数据流适配到多路PCS通道上的实现方式示意图,如图2-b所示,为本发明实施例提供的另一种第一数据流适配到多路PCS通道上的实现方式示意图,对第一数据流适配到多路PCS通道上可以通过数据发送端中的适配模块(英文名称为Adaptor)来实现,适配模块的作用是把AM均匀的分部到各自的PCS通道上,适配模块按照并行处理块的处理模式进行处理,并行处理块根据第一数据流中的内容可以划分为两种并行处理块:全数据并行处理块和AM并行处理块。本发明采用两种粒度分别对AM和全数据进行分发处理,区别于现有技术只能按照统一粒度进行分发的分发结构,但是在AM和全数据的并行处理块相同时,本发明的两种粒度也可以是指同一种粒度,如图2-a中,本发明对于全数据并行处理块的处理方法,需要按照PCS通道上的符号(英文名称为Symbol)或者Symbol的整数倍进行轮叫调度(英文名称Round Robin Scheduling)的轮询分发方式进行,全数据并行处理块分别被分发到PCS通道0、PCS通道1、PCS通道2、...、PCS通道i-1上,如图2-b中,本发明对于第一数据流中的AM并行处理块的处理方法,根据AM并行处理的粒度直接将AM分发到各路PCS通道上。同样是采用Round Rorbin的轮询分发方式进行分发,AM并行处理块分别被分发到PCS通道0、PCS通道1、PCS通道2、...、PCS通道i-1上,分发的粒度需要按照各条通道上的AM大小为粒度向各条通道上分发。
在本发明的一些实施例中,步骤102将包括AM的第一数据流适配到多路物理编码子层PCS通道上之后,步骤103对多路PCS通道上的第二数据流进行前向纠错FEC编码之前,本发明实施例提供的数据传输方法还包括如下步骤:
若AM插入电路的处理位宽和FEC编码电路的处理位宽不相同,对包括AM的第一数据流进行位宽转换,转换后的第一数据流的位宽与FEC编码电路的处理位宽相等。
具体的,在第一数据流中插入AM之后,AM插入电路输出的处理位宽用P表示,FEC编码电路的处理位宽用F来表示,所以在P和F不相等的情况下,还需要对第一数据流的位宽进行位宽转换,为了能够适配FEC编码电路的需要,可以将第一数据流的位宽从P转换为F。具体的,位宽转换可以通过设置在数据发送端中的变速(英文名称为Gearbox)模块或切片(英文名称为Slice)模块来实现位宽转换。
举例说明,在将包括AM的第一数据流适配到多路PCS通道上之前,本发明可以根据P和F的位宽匹配情况选择是否采用Gearbox和Slice匹配,本发明在P和F不匹配的时候需要添加Gearbox和Slice配合将第二数据流的数据位宽由P变换到F,为了保证FEC内部的处理简单。
103、对多路PCS通道上的第二数据流进行FEC编码,得到第三数据流。
在本发明实施例中,分发到多路PCS通道上的第二数据流进行FEC编码,对第二数据流的FEC编码过程可参阅现有技术中,FEC编码后得到第三数据流,在第三数据流中包括前述AM。
在本发明实施例中,将第二数据流匹配到FEC编码电路进行处理后,本发明FEC算法选择上可以选择RS FEC或BCH FEC,例外还可以选择如下的FEC算法来完成FEC编码:KR4-RS(528,514,7,10),KP4-RS(544,514,15,10),RS(560,514,23,10),RS(576,514,31,10)等,以及BCH(2858,2570,24),BCH(9193,8192,71)等,本发明架构不限于上述FEC算法。
FEC编解码模块本发明可以采用RS FEC或者BCH FEC,主要根据链路误码特性不同选择采用不同的FEC算法。如下以RS FEC为例描述具体RS FEC包括的具体功能,请参阅如图3所示,为本发明实施例提供的对第二数据流进行FEC编码的功能模块示意图,以RS FEC解码实现结构举例。当前400G的传输速率优选的是RS FEC,本发明就以RS FEC编码实现结构举例。
本发明采用并行化的RS FEC实现结构,包括图3个主要解码模块:校验因子计算模块(即公知的Syndrome)、KES模块、错误位置搜索模块(即公知的Chien)、错误值计算模块(即公知的Forney)。
其中,KES为错误系数迭代求解模块目前比较通用的是BM算法。Chien为错误位置搜索模块。Forney为错误值计算模块,其他次要模块:牛顿恒等式、Error Marking等模块未列出。FEC输入输出并行处理位宽(英文名称Datawidth)用F表示。对于FEC本身参数选择如下,FEC的编码块大小c和FEC的并行度F之间可以是c/F为整数没有余数,即一个FEC编码块大小能够在整数倍个拍内处理完成。也可以有余数即非整数拍处理。FEC的编码块c的大小和Serdes的并行度S之间可以是n/S为整数没有余数,也可以有余数。上述各种实现场景,本发明提供的数据传输方法都可以处理。
在本发明的一些实施例中,步骤102将包括AM的第一数据流适配到多路物理编码子层PCS通道上之后,步骤103对多路PCS通道上的第二数据流进行前向纠错FEC编码之前,本发明实施例提供的数据传输方法还可以包括如下步骤:
步骤A1、将在同一个时钟周期内并行处理的两个码字片段分到两个不同的时钟周期内进行处理并在两个不同的时钟周期内插入空数据(英文名称Idle),两个不同的时钟周期内分别包括原拼接在一个时钟周期内的两个码字片段的其中一个码字片段。
也就是说,本发明实施例中,若FEC编码电路的处理位宽不是PCS通道的位宽整数倍时,就会存在两个不同码字片段拼接在同一个时钟周期内的情况,可以理解的是,一个码字可以有多个片段,一个码字的一个片段占用一个时钟周期,对于一个码字的一个片段没有占满一个时钟周期的情况,就需要与另一个码字的片段共同占满一个时钟周期,这两个不同码字各自的片段拼接在同一个时钟周期内,就会存在码字片段拼接的问题,例如一个时钟周期可以指的是一拍,那么两个不同码字的片段就会产生拼接拍,每个码字占用的拍数都不再是整数拍,对于FEC编码电路,在非整数拍时两个码字的数据就需要在同一拍处理,一拍的两部分不同码字片段数据由于是不同的码字,但又需要并行处理这两个不同码字的片段,就需要再FEC编码电路中使用两个不同部分的逻辑处理资源,否则就会造成处理堵塞。
对于相对复杂的FEC算法,当前和下一代工艺能够支持的最高频率而且比较节省资源的数据带宽和频率,可以是位宽为640bit,时钟频率为625MHz,而RS FEC(544,514,15,10)的码字(英文名称为Codeword)大小是5440bit,而5440/640=8.5拍,这种非整数拍的问题会使得FEC在处理时产生问题:非整数拍整个FEC的解码算法都会增加冗余的逻辑资源来适配这种前后两个Codeword在一拍需要处理的情况。例如,针对Codeword大小为5440比特的FEC编码电路,目前工艺基本确定Serdes位宽为640比特,如果解码也采用此位宽,那么5440/640=8.5,此时就会存在半拍拼接问题,就需要为拼接拍数据单独增加逻辑资源,代价是增加过多的逻辑资源,大约需要增加50%的逻辑资源,其他模块同理不做详述。
如果为了使FEC的位宽能够做到整数拍处理完成,可能又会产生PCS内部各个模块位宽不匹配的问题,针对这些问题本发明给出了在同一个时钟周期内并行处理的两个码字片段分到两个不同的时钟周期内进行处理并在两个不同的时钟周期内插入空数据的解决办法,即将拼接时钟周期内的两个码字片段分到两个不同时钟周期来处理,那么对于一个时钟周期内空白部分就可以填充空数据,由于一个拼接时钟周期填充空数据后就需要两个时钟周期来承载,那么就需要提频,即需要加快对码字的处理速率,也就是采用提频的方式。
在本发明采用步骤A1实现的场景下,步骤103对多路PCS通道上的第二数据流进行前向纠错FEC编码,得到第三数据流,包括:
B1、对第二数据流中除插入的空数据以外的数据进行FEC编码;
B2、在对第二数据流进行FEC编码之后,从编码后的第二数据流中删除插入的空数据,得到第三数据流。
需要说明的是,在采用步骤A1的实现场景下,第二数据流中会被插入空数据,但是这些空数据不需要进行FEC编码,即步骤B1中只对第二数据流中除空数据以外的数据进行FEC编码,对第二数据流进行FEC编码之后,由于编码前在第二数据流中插入有空数据,那么就需要删除掉插入的空数据,此时得到第三数据。其中删除掉空数据的方式也可以描述为挤气泡逻辑。
进一步的,在本发明的一些实施例中,步骤A1将在同一个时钟周期内并行处理的两个码字片段分到两个不同的时钟周期内进行处理并在两个不同的时钟周期内插入空数据,具体可以包括如下步骤:
步骤A11、在同一个时钟周期内并行处理的两个码字片段之间插入占用一个时钟周期的空数据,将原拼接在一个时钟周期内的两个码字片段的其中一个码字片段和一个时钟周期内的一部分空数据分在两个码字片段原拼接时所在的时钟周期内,将原拼接在一个时钟周期内的两个码字片段的另一个码字片段和一个时钟周期的另一部分空数据分在两个码字片段原拼接时所在的时钟周期的下一个时钟周期。
进一步的,在本发明的一些实施例中,步骤A1将在同一个时钟周期内并行处理的两个码字片段分到两个不同的时钟周期内进行处理并在两个不同的时钟周期内插入空数据,具体可以包括如下步骤:
步骤A12、在同一个时钟周期内并行处理的两个码字片段中的前一个码字片段之后插入空数据使得两个码字片段原拼接时所在的时钟周期被填满,对同一个时钟周期内并行处理的两个码字片段中的后一个码字片段向后进行数据移位,并在后一个码字片段所在码字的最后一个码字片段之后插入空数据使得后一个码字片段所在码字的最后一个码字片段所在的时钟周期被填满。
具体的,步骤A11和步骤A12中在同一个时钟周期内并行处理的两个码字片段之间插入一个整时钟周期的空数据,一个整时钟周期的空数据分为两个部分,一部分空数据和一个码字片段拼接,另一个部分和另一个码字片段拼接。请参阅如图4-a所示,为本发明实施例提供的一种两个码字片段拼接的一种处理方式示意图,请参阅如图4-b所示,为本发明实施例提供的一种两个码字片段拼接的另一种处理方式示意图,其中,举例说明如下,RSFEC(544,514,15,10)的FEC算法,输出16条通道的位宽为640比特,因为544*10/640=8.5为非整数拍,存在不同Codeword片段在同一个时钟周期需要处理的问题,本发明针对这种非整数倍的FEC处理的解决方案如下:举例640比特解码位宽,采用提频的方法强制将两部分数据分到两拍中,具体的分拍方式如图4-a和图4-b,图4-a中以码字C1和C2的处理为例,P9个时钟周期内有码字C1的一个片段和码字C2的一个片段,C1和C2组成拼接的时钟周期P9,4-中,将P9中填充空数据,C1和空数据填满P9,在P10中除了C2外填充空数据,提频前两码字共需要17个时钟周期,提频处理后需要18个时钟周期,但码字C1和C2都单独使用一个时钟周期,直接按照FEC编码电路原有的处理逻辑就可以执行,而不会造成堵塞,也无需复制单独的逻辑处理资源。在图4-b中与图4-a不同的是,P9中填充空数据之后,码字C2向后依次移位,对于C2的最后一个片段无法占满时钟周期P18,就在时钟周期P18内填充空数据,使得码字C1和C2都单独使用一个时钟周期,直接按照FEC编码电路原有的处理逻辑就可以执行,而不会造成堵塞,也无需复制单独的逻辑处理资源。图4-a中提频方式的优点是FEC编码处理完成之后的挤气泡逻辑不需要选择器(即MUX)选择直接将空数据去掉,就可以这样就解决了每个时钟周期的并行处理数据不会出现两个Codeword的数据,这样就不需要复制额外的逻辑。
以一个时钟周期为拍为例,图4-a中,FEC编码电路内部处理同一拍出现两个Codeword的情况需要提频,在每一拍的拼接拍插入一整拍的空数据强制将C1的结尾部分和C2的起始部分分在了两拍中,如图4-a所示C1的结尾部分分在P9拍,C2的起始部分分在P10拍,插入整拍空数据的方式在FEC编码之后挤掉气泡空数据的逻辑会比较简单,只需要将空数据直接删除就可以。图4-b中,为本发明的第二种提频方式将数据拼接拍分到不同拍处理,本方式的处理只在C1的结尾部分插入空数据,下一拍的起始就是C2的码字没有第一种方式额外的空数据,但是这就需要增加MUX逻辑进行数据的移位操作。本方式相对于第一种方式插入的空数据更少,所以FEC编码电路的处理所需要提频的频率相对于第一种方式小,但是需要增加MUX数据移位操作。之后FEC编码处理完成之后仍然需要及挤气泡逻辑,而且挤气泡逻辑需要数据移位操作。两种提频方式之后的对应的挤气泡逻辑都是提频处理的逆过程。
本发明的上述方案会使得整个数据速率扩充,后续需要增加挤气泡逻辑。640比特解码位宽,采用提频的方法强制将拼接那一拍的两部分数据分到两拍中,这样可以在不增加资源的情况下处理非整数拍的问题,本实施例大概6%的提频625MHz=>661MHz,但是这样会使得整个数据速率扩充,后续需要增加较小的挤气泡逻辑。将填充的空数据再次挤出来。形成和输出位宽速率匹配的数据格式。
在本发明实施例中,对第二数据流进行FEC编码,FEC编码电路采用end to end的纠错编解码形式,本发明架构支持单个或者多个FEC的编码形式,整个FEC编码电路的处理位宽用F表示,如果有多个子FEC(Integer_f个子FEC),每个子FEC编码电路的处理位宽定义为f,如果只有一个FEC,则这一个FEC编码电路的位宽就是F。需要说明的是,在本发明的前述实施例中,上述提频方法不仅限于此种非整数倍的示例,所有非整数倍的情况都适用,而且不仅仅适用于一个FEC编码的结构也适用于多个FEC编码的情况。同样适用于FEC解码的结构,比如子FEC的数据处理带宽f和Codeword不成倍数关系也适用上述方法。
在本发明的一些实施例中,步骤103对多路PCS通道上的第二数据流进行FEC编码,得到第三数据流,具体包括如下步骤:
获取所述第二数据流中在同一个时钟周期内并行处理的两个码字片段,所述两个码字片段包括:第一码字片段和第二码字片段,所述第一码字片段的数据量大于或者等于所述第二码字片段;
将所述第一码字片段通过第一FEC编码电路进行FEC编码,同时将所述第二码字片段通过第二FEC编码电路进行FEC编码,所述第一码字片段和所述第二码字片段分别被所述第一FEC编码电路和所述第二FEC编码电路处理过后生成所述第三数据流,所述第二FEC编码电路和所述第一FEC编码电路使用完全不同的可配置逻辑编码电路,或者所述第二FEC编码电路为所述第一FEC编码电路中处理所述第一码字片段之外剩余的可配置逻辑编码电路通过资源配置操作之后得到的FEC编码电路。
在本发明实施例中,对于第二数据流中在一个时钟周期内只存在一个码字片段的情形,可以通过第一FEC编码电路进行FEC编码,但是若第一FEC编码电路的处理位宽不能够被一个完整码字的位宽整除时,就会存在两个不同码字片段拼接在同一个时钟周期内的情况,可以理解的是,一个码字可以有多个片段,一个码字的一个片段可以占用一个时钟周期,对于一个码字的一个片段没有占满一个时钟周期的情况,就需要与另一个码字的码字片段共同占满一个时钟周期,这两个不同码字各自的码字片段拼接在同一个时钟周期内,就会存在码字片段拼接的问题。在同一个时钟周期内并行处理的两个码字片段中,第一码字片段为在同一个时钟周期内并行处理的两个码字片段中数据量大或者数据量相等的一个码字片段,第二码字片段为在同一个时钟周期内并行处理的两个码字片段中数据量小或者数据量相等的另一个码字片段。
如图4-c和图4-d所示,为本发明实施例提供的一种两个码字片段拼接的另一种处理方式示意图。其中,在同一个时钟周期内只存在一种码字片段时,该码字片段来自同一个码字,均通过第一FEC编码电路进行FEC编码,但是在同一个时钟周期内存在两个码字片段时,即两个码字片段C1和C2拼接,其中,同一个时钟周期内存在两个码字片段是分别属于不同的码字,例如,第一个码字片段C1属于第一个码字Codeword1,属于前一个码字,第二个码字片段C2属于第二个码字Codeword2,属于后一个码字。例如,图4-c中,在码字拼接的时钟周期内如果C1<C2,C1的数据量小于C2的数据量,以一个时钟周期的拼接拍为例,将拼接拍中的码字片段C2放在第一FEC编码电路进行FEC编码,将拼接拍中的码字片段C1放在第二FEC编码电路进行FEC编码,图4-d中如果拼接拍中C1>=C2,则将拼接拍中的C1放在第一FEC编码电路进行FEC编码,将拼接拍中的C2放在第二FEC编码电路进行FEC编码。其中,图4-c和图4-d中,第二FEC编码电路只用于处理在同一个时钟周期内存在两个码字片段中数据量小或者数据量相等的码字片段,第一FEC编码电路用于处理在同一个时钟周期内存在两个码字片段中数据量大或者数据量相等的码字片段,第一FEC编码电路还用于处理在一个时钟周期内只存在的一个码字片段。
具体的,第一FEC编码电路和第二FEC编码电路的实现方式如下:第二FEC编码电路为独立于第一FEC编码电路的FEC编码电路,或者第二FEC编码电路为第一FEC编码电路中用于数据量大或者数据量相等的一个码字片段进行FEC编码之外剩余的可配置逻辑编码电路通过资源配置操作之后得到的FEC编码电路。也就是说,第二FEC编码电路可以是从第一FEC编码电路中的部分可配置逻辑编码电路进行资源配置操作之后得到,或者第二FEC编码电路也可以是独立于第一FEC编码电路通过直接增加逻辑资源得到。具体的,本发明实施例中资源配置操作可以包括配置参数和寄存器置位以及数据选通等操作,另外资源配置操作还可以根据具体的应用场景确定需要增加其它的操作以实现对可配置逻辑编码电路的资源配置。
接下来对本发明实施例中第一FEC编码电路和第二FEC编码电路的实现方式进行举例说明,如图4-e所示,为本发明实施例提供的第一FEC编码电路和第二FEC编码电路的一种实现方式示意图,图4-e中第二FEC编码电路通过对第一FEC编码电路中的空闲可配置逻辑编码电路进行配置参数和寄存器置位以及数据选通操作之后得到,以基于图3中所示的校验因子计算模块实现第一FEC编码电路和第二FEC编码电路为例,以第一FEC编码电路共有S1、S2、...、S30的FEC编码计算单元为例,图4-e中以S1的FEC编码计算单元为例,S1中共有S1_块0、S1_块1、...、S1_块63,以S1_块0为例,时钟周期1至时钟周期10中输出的数据与Alpha^32或Alpha^0相乘后再加上Alpha^64与数据的相乘结果,得到数据D,经过寄存器(图中用SD来表示)后得到数据Q。时钟周期1、时钟周期2、...、时钟周期10中传输了两个码字,分别为码字1和码字2,码字1中共包括A0、A1、A2、...、A543个数据,码字2中共包括B0、B1、B2、...、B543个数据,在时钟周期9中包括两个码字片段,A512至A543为码字1的一个码字片段,B0至B31为码字2的一个码字片段,这两个码字片段在时钟周期9中拼接,在时钟周期9之前,从时钟周期0至时钟周期8中传输的都是码字1,S1_块0、S1_块1、...、S1_块63全部参与FEC编码运算,即Alpha^0至Alpha^63被选中用于FEC编码运算,图4-e中以黑色实线所指示为例,当出现奇数码字(例如码字1、码字3)时配置此行寄存器参数,在时钟周期9中存在拼接的两个码字片段,Alpha^32至Alpha^63、Alpha^0至Alpha^31被选中用于FEC编码运算,图4-e中以黑色虚线所指示为例,S1_块0、S1_块1、...、S1_块31用于第一FEC编码电路对A512至A543的一个码字片段进行FEC编码,对于时钟周期9,在第一FEC编码电路中从S1_块32、S1_块33、...、S1_块63是空闲的可配置逻辑编码电路,S1_块32、S1_块33、...、S1_块63进行配置参数和寄存器置位以及数据选通操作之后得到可以得到第二FEC编码电路,那么B0至B31的一个码字片段可以由第二FEC编码电路进行FEC编码,时钟周期10中从码字2的B32开始全部为码字2的码字片段,可以由S1_块0、S1_块1、...、S1_块63组成的第一FEC编码电路进行FEC编码。通过此处举例可知,第二FEC编码电路可以由第一FEC编码电路在处理拼接的码字片段时存在空闲的可配置逻辑编码电路得到。
如图4-f所示,为本发明实施例提供的第一FEC编码电路和第二FEC编码电路的另一种实现方式示意图,图4-f中第二FEC编码电路是独立于第一FEC编码电路通过直接增加逻辑资源得到,以基于图3中所示的校验因子计算模块实现第一FEC编码电路和第二FEC编码电路为例,以第一FEC编码电路共有S1、S2、...、S30的FEC编码计算单元为例,图4-f中以S1的FEC编码计算单元为例,S1中共有S1_块0、S1_块1、...、S1_块63,以S1_块0为例,时钟周期1至时钟周期10中输出的数据与Alpha^0相乘后再加上Alpha^64与数据的相乘结果,得到数据D,经过寄存器(图中用SD来表示)后得到数据Q。时钟周期1、时钟周期2、...、时钟周期10中传输了两个码字,分别为码字1和码字2,码字1中共包括A0、A1、A2、...、A543个数据,码字2中共包括B0、B1、B2、...、B543个数据,在时钟周期9中包括两个码字片段,A512至A543为码字1的一个码字片段,B0至B31为码字2的一个码字片段,这两个码字片段在时钟周期9中拼接,在时钟周期9之前,从时钟周期0至时钟周期8中传输的都是码字1,S1_块0、S1_块1、...、S1_块63全部参与FEC编码运算,即Alpha^0至Alpha^63被选中用于FEC编码运算,当出现奇数码字(例如码字1、码字3)时配置此行寄存器参数,在时钟周期9中存在拼接的两个码字片段,Alpha^0至Alpha^31被选中用于FEC编码运算,S1_块0、S1_块1、...、S1_块31用于第一FEC编码电路对A512至A543的一个码字片段进行FEC编码,在第一FEC编码电路之外单独配置第二FEC编码电路,独立配置的第二FEC编码电路中包括:S1_块32、S1_块33、...、S1_块63,那么B0至B31的一个码字片段可以由第二FEC编码电路进行FEC编码,时钟周期10中从码字2的B32开始全部为码字2的码字片段,可以由S1_块0、S1_块1、...、S1_块63组成的第一FEC编码电路进行FEC编码。通过此处举例可知,第二FEC编码电路可以是独立于第一FEC编码电路通过直接增加逻辑资源得到。
需要说明的是,在本发明实施例中,对于在同一个时钟周期内并行处理的两个码字片段,若两个码字片段的数据量相等时,第二FEC编码电路的可配置逻辑编码电路需要达到最大值,此时第二FEC编码电路可以为第一FEC编码电路的可配置逻辑编码电路的50%,当同一个时钟周期内并行处理的两个码字片段之间的数据量差值越大,第二FEC编码电路所需要的可配置逻辑编码电路就越小,例如,具体可以根据非整数拍的两个码字片段的码字比例决定,第二FEC编码电路的可配置逻辑编码电路取能够处理非整数拼接拍中较小码字片段的大小即可。
通过此前说明可知,第二FEC编码电路可以通过单独增加逻辑电路的方式实现,也可以从第一FEC编码电路中的电路更改参数得到,第二FEC编码电路处理FEC编码的非整数拍,可以通过增加非整数拍的可配置逻辑编码电路来处理非整数拍所存在的一拍需要处理两个码字片段的问题,本发明实施例中相当于在第一FEC编码电路之外增加了第二FEC编码电路作为可配置逻辑编码电路,本发明实施例还支持另外一种通过配置第一FEC编码电路中的参数直接在拼接拍将第一FEC编码电路中闲置的可配置逻辑编码电路配置成第二FEC编码电路进行处理非整数拍的问题。
如果采用单独增加第二FEC编码电路的方式,本发明实施例最多只可能增加第一FEC编码电路所需要的可配置逻辑编码电路的一半资源,下面举例描述非整数拍时两个码字片段在同一拍处理的问题,针对码字大小为5440比特的FEC,目前专用集成电路(ASIC,Application Specific Integrated Circuit)的工艺基本确定Serdes位宽为640比特,如果FEC编码也采用此位宽,那么5440/640=8.5,就会存在半拍拼接问题,就需要为拼接拍数据增加第二FEC编码电路,按照编码位宽640bit作为参考,需要增加的第二FEC编码电路的可配置逻辑编码电路为第一FEC编码电路的可配置逻辑编码电路的一半。又一例子如下,如果是现场可编程门阵列(FPGA,Field Programmable Gate Array)处理工艺实现RS FEC(544,514,15,10)FEC算法,Serdes的位宽将是1280比特,如果第一FEC编码电路采用此位宽,那么5440/1280=4.25,这样同样会产生非整数拍的拼接问题,如果应用本发明的第二FEC编码电路的方法为单独增加可配置逻辑编码电路得到,按照编码位宽1280bit作为参考,需要增加的第二FEC编码电路的可配置逻辑编码电路为第一FEC编码电路的可配置逻辑编码电路的四分之一。
如果采用从第一FEC编码电路中的可配置逻辑编码电路来得到第二FEC编码电路,若一个时钟周期内包括两个码字片段,这就需要将寄存器在不同拍进行置位,具体置位规则是在前后两拍的同一个寄存器来自不同的码字片段时寄存器需要置位操作,在非整数拍就可以通过配置参数和寄存器置位以及数据选通操作得到一个第二FEC编码电路,第二FEC编码电路的主体逻辑部分仍然来自第一FEC编码电路的可配置逻辑编码电路,因此也不需要增加额外的可配置逻辑编码电路。如果是采用从第一FEC编码电路中配置参数得到第二FEC编码电路的话,所需要增加的资源量不会超过第一FEC编码电路所需要的可配置逻辑编码电路的10%。
需要说明的是,在本发明前述举例中图4-c和图4-d中均以在同一个时钟周期内码字片段C1和C2的拼接为例,在出现两个码字片段在一个时钟周期内拼接时可以根据C1和C2之间的数据量比例关系从第一FEC编码电路中空闲的可配置逻辑编码电路中单独配置出第二FEC编码电路,也可以根据C1和C2之间的数据量比例关系在第一FEC编码电路之外单独增加第二FEC编码电路,本发明不做具体限定,但是在另一个时钟周期内出现C2和C3两个码字拼接时仍可以根据根据C2和C3之间的数据量比例关系来确定第二FEC编码电路的具体实现,另外在另一个时钟周期内出现C3和C4两个码字拼接时仍可以根据根据C3和C4之间的数据量比例关系来确定第二FEC编码电路的具体实现。需要说明的是,对于通过增加可配置逻辑编码电路的方式得到第二FEC编码电路,需要增加的可配置逻辑编码电路需要取在三个拼接拍(C1:C2、C2:C3、C3:C4)中数据量最小的三个码字片段中的最大值来确定第二FEC解码电路。
如图4-g所示,为本发明实施例提供的第一FEC编码电路和第二FEC编码电路的另一种实现方式示意图,图4-g中第二FEC编码电路通过对第一FEC编码电路中的空闲可配置逻辑编码电路进行配置参数和寄存器置位以及数据选通操作之后得到,以基于图3中所示的校验因子计算模块实现第一FEC编码电路和第二FEC编码电路为例,以第一FEC编码电路共有S1、S2、...、S30的FEC编码计算单元为例,图4-g中以S1的FEC编码计算单元为例,S1中共有S1_块0、S1_块1、...、S1_块127,以S1_块0为例,时钟周期1至时钟周期17中输出的数据与Alpha^32或Alpha^64或Alpha^96或Alpha^0相乘后再加上Alpha^128与数据的相乘结果,得到数据D,经过寄存器(图中用SD来表示)后得到数据Q。时钟周期1、时钟周期2、...、时钟周期17中传输了四个码字,分别为码字1、码字2、码字3和码字4,码字1中共包括A0、A1、A2、...、A543个数据,码字2中共包括B0、B1、B2、...、B543个数据,码字3中共包括C0、C1、C2、...、C543个数据,码字4中共包括D0、D1、D2、...、D543个数据,在时钟周期5、9、13中都包括两个码字片段,以时钟周期5的处理为例,A512至A543为码字1的一个码字片段,B0至B95为码字2的一个码字片段,这两个码字片段在时钟周期5中拼接,在时钟周期5之前,从时钟周期0至时钟周期4中传输的都是码字1,S1_块0、S1_块1、...、S1_块127全部参与FEC编码运算,即Alpha^0至Alpha^63被选中用于FEC编码运算,图4-g中以黑色实线所指示为例,当出现奇数码字(例如码字1、码字3)时配置此行寄存器参数,在时钟周期5中存在拼接的两个码字片段,Alpha^96至Alpha^127、Alpha^0至Alpha^31、Alpha^32至Alpha^63、Alpha^64至Alpha^95被选中用于FEC编码运算,图4-g中以黑色虚线所指示为例,S1_块32、S1_块33、...、S1_块127用于第一FEC编码电路对B0至B95的一个码字片段进行FEC编码,在第一FEC编码电路中从S1_块0、S1_块1、...、S1_块32是空闲的可配置逻辑编码电路,S1_块0、S1_块1、...、S1_块32进行配置参数和寄存器置位以及数据选通操作之后得到可以得到第二FEC编码电路,那么A512至A543的一个码字片段可以由第二FEC编码电路进行FEC编码,时钟周期6中从码字2的B32开始全部为码字2的码字片段,可以由S1_块0、S1_块1、...、S1_块127组成的第一FEC编码电路进行FEC编码。通过此处举例可知,第二FEC编码电路可以由第一FEC编码电路在处理拼接的码字片段时存在空闲的可配置逻辑编码电路得到。
如图4-h所示,为本发明实施例提供的第一FEC编码电路和第二FEC编码电路的另一种实现方式示意图,图4-h中第二FEC编码电路是独立于第一FEC编码电路通过直接增加逻辑资源得到,以基于图3中所示的校验因子计算模块实现第一FEC编码电路和第二FEC编码电路为例,以第一FEC编码电路共有S1、S2、...、S30的FEC编码计算单元为例,图4-h中以S1的FEC编码计算单元为例,S1中共有S1_块0、S1_块1、...、S1_块127,以S1_块0为例,时钟周期1至时钟周期6中输出的数据与Alpha^0相乘后再加上Alpha^a与数据的相乘结果,得到数据D,经过寄存器(图中用SD来表示)后得到数据Q。时钟周期1、时钟周期2、...、时钟周期6中传输了两个码字,分别为码字1和码字2,码字1中共包括A0、A1、A2、...、A543个数据,码字2中共包括B0、B1、B2、...、B543个数据,在时钟周期5中包括两个码字片段,A512至A543为码字1的一个码字片段,B0至B95为码字2的一个码字片段,这两个码字片段在时钟周期5中拼接,在时钟周期5之前,从时钟周期0至时钟周期8中传输的都是码字1,S1_块0、S1_块1、...、S1_块127全部参与FEC编码运算,即Alpha^0至Alpha^127被选中用于FEC编码运算,当出现奇数码字(例如码字1、码字3)时配置此行寄存器参数,在时钟周期5中存在拼接的两个码字片段,Alpha^0至Alpha^31被选中用于FEC编码运算,S1_块0、S1_块1、...、S1_块95用于第一FEC编码电路对B0至B95的一个码字片段进行FEC编码,在第一FEC编码电路之外单独配置第二FEC编码电路,独立配置的第二FEC编码电路中包括:S1_块0、S1_块1、...、S1_块31,那么A512至A543的一个码字片段可以由第二FEC编码电路进行FEC编码,时钟周期6中从码字2的B32开始全部为码字2的码字片段,可以由S1_块0、S1_块1、...、S1_块127组成的第一FEC编码电路进行FEC编码。通过此处举例可知,第二FEC编码电路可以是独立于第一FEC编码电路通过直接增加逻辑资源得到。
在本发明的一些实施例中,步骤103对多路PCS通道上的第二数据流进行前向纠错FEC编码,得到第三数据流之后,步骤104根据并串行与串并行转换器Serdes的输入位宽将第三数据流分发到多路物理介质接入子层PMA通道上之前,本发明实施例提供的数据传输方法还包括如下步骤:
若AM插入电路的处理位宽和FEC编码电路的处理位宽不相同,对包括第三数据流进行位宽转换,转换后的第三数据流的位宽与AM插入电路的处理位宽相等。
具体的,对第二数据流进行FEC编码之后得到第三数据流之后,AM插入电路输出的处理位宽用P表示,FEC编码电路的处理位宽用F来表示,所以在P和F不相等的情况下,还需要对第三数据流的位宽进行位宽转换,为了能够适配FEC编码电路的需要,已经将第一数据流的位宽从P转换为F。那么在完成FEC编码之后,还需要将第三数据流的位宽转换为原来的位宽P,具体的,位宽转换可以通过设置在数据发送端中的变速(英文名称为Gearbox)模块或切片(英文名称为Slice)模块来实现位宽转换。举例说明,在将包括AM的第一数据流适配到多路PCS通道上之前,本发明可以根据P和F的位宽匹配情况选择是否采用Gearbox和Slice匹配,本发明在P和F不匹配的时候需要添加Gearbox和Slice配合将第三数据流的数据位宽由P变换到F,从而可以保证AM的完整性。
104、根据并串行与串并行转换器(英文名称Serdes)的输入位宽将第三数据流分发到多路PMA通道上,以得到多个第四数据流,多个第四数据流与所述多路PMA通道一一对应,其中,每个第四数据流包括连续完整至少一个AM,至少一个AM是多个AM中的AM。
在本发明实施例中,通过FEC编码得到第三数据流之后,由于第三数据流中包括AM,数据发送端需要将第三数据流分发到多路PMA通道上,以得到多个第四数据流,多个第四数据流与所述多路PMA通道一一对应,其中,每个第四数据流包括连续完整至少一个AM,至少一个AM是多个AM中的AM。这就需要对第三数据流进行切片,切片就有可能破坏AM的完整性,这样数据解码端就无法正确检测AM,所以本发明实施例中采用根据Serdes的输入位宽将第三数据流分发的方式,并且分发到每路PMA通道上的第三数据流都包括连续完整的AM,若果每路PMA通道上的第三数据流都包括有连续完整的AM,那么数据接收端就可以进行AM的锁定和检测,找到AM后根据AM进通道的重映射。
其中,所述至少一个AM被包含在分发电路在一个时钟周期内向用于接收所述至少一个AM的PMA通道分发的数据中。所述用于接收所述至少一个AM的PMA通道是所述多路PMA通道中的一个PMA通道。所述分发电路用于将所述第三数据流分发到所述多路PMA通道上。所述分发电路能够在一个时钟周期向所述多路PMA通道中的一个PMA通道分发数据。举例来说,所述分发电路可以以round robin轮循调度的方式向所述多路PMA通道分发所述第三数据流。举例来说,所述第三数据流可以包括多个执行FEC编码的块,所述执行FEC编码的块可以是5280比特的数据块。
需要说明的是,AM为数据块。AM中包含的比特的数量等于第一数据流中的数据块包含的比特的数量的正整数倍。例如,AM是64比特的数据块或者128比特的数据块。另外,AM的数量可以是,在第一数据流中插入多个AM,所述多个AM与所述多路物理编码子层PCS通道一一对应。
需要说明的是,本发明实施例中,以太网架构中引入了FEC编解码,在FEC编码后得到第三数据流,对第三数据流的分发是根据Serdes的输入位宽进行分发的,通过Serdes的输入位宽可以确定应该采用什么样的处理带宽来向多路PMA通道传输数据。数据接收端通过PMA通道可以接收到数据发送端发送的第三数据流。由于本发明中第三数据流向多路PMA通道分发,分发到每路PMA通道的第三数据流中包括的AM都是连续完整的,从而不会破坏AM。
需要说明的是,根据并串行与串并行转换器(英文名称Serdes)的输入位宽将第三数据流分发到多路PMA通道上,以得到多个第四数据流,具体可以是根据并串行与串并行转换器(英文名称Serdes)的输入位宽将第三数据流均匀分发到多路PMA通道上以得到多个第四数据流,其中对第三数据流的均匀分发,可以是多路PMA通道中不同的PMA通道在相同的时间周期(英文名称time period)中接收到的数据的数量(英文名称quantity)相等。
在本发明的一些实施例中,步骤104根据并串行与串并行转换器Serdes的输入位宽将第三数据流分发到多路物理介质接入子层PMA通道上,具体可以包括如下步骤:
D1、根据PCS通道的路数和每个PCS通道上承载单个字符的数据大小确定切片大小,按照切片大小对第三数据流进行切片,得到切片后的第三数据流,其中,每个切片中包括多个第三数据块;
D2、根据第三数据流的位宽、Serdes的输入位宽和切片大小确定需要分发的切片个数,从切片后的第三数据流中取出与切片个数对应的每个切片中的第三数据块,然后将与切片个数对应的每个切片位置相同的第三数据块叠加后分发到多路PMA通道中的同一路PMA通道上。
其中,获取到PCS通道的路数,即有几路的PCS通道上承载有第三数据流,再获取到在每个PCS通道上承载的单个字符的数据大小,为了保证AM的连续完整,对第三数据流的切片采用的切片大小由PCS通道的路数和每个PCS通道上承载的单个字符的数据大小来确定,例如切片大小可以由PCS通道的路数与每个PCS通道上承载的单个字符的数据大小相乘来确定,其中切片大小是对第三数据流切片时采用的切片间隔,即每次需要将多少个数据块切为一个分片,确定分片大小后,就可以依据这个分片大小来对第三数据流进行切片,将第三数据流切片后,每个切片中包括的数据定义为第三数据块。可选的,切片大小可以是PCS通道的路数与每个PCS通道上承载的单个字符的数据大小相乘后的整数倍,这样切到一个分片内的AM都是连续完整的。
将第三数据流切片后,根据第三数据流的位宽、Serdes的输入位宽和切片大小确定需要分发的切片个数,即通过第三数据流的位宽、Serdes的输入位宽和切片大小这三者之间的关系确定出每个需要分发几个切片(即切片个数),计算出切片个数之后,从切片后的第三数据流中取出与切片个数对应的每个切片中的第三数据块,将与切片个数对应的每个切片位置相同的第三数据块叠加后分发到多路PMA通道中的同一路PMA通道上。例如切片个数为3个,那么就取3个切片,从每个切片出取出位置相同的第三数据块分发到某一路PMA通道上,每个切片中位置不同的第三数据块分发到的是不同路PMA通道上,这样可以保证在每个切片中同一位置的第三数据块只在一路PMA通道上,所以各个PMA通道的第三数据流仍包括的是连续完整的AM,对于数据接收端而言,就可以接收到连续完整的AM。
进一步的,在本发明的一些实施例中,步骤D1根据PCS通道的路数和每个PCS通道上承载单个字符的数据大小对第三数据流进行切片,包括:
PCS通道的路数为i,每个PCS通道上承载单个字符的数据大小为m,对第三数据流切片后每个分片中的第三数据块的大小为i×m,第三数据流的位宽为i×m×Integer1,Intger1为预置的正整数;
步骤D2根据第三数据流的位宽、Serdes的输入位宽和切片大小确定切片个数,包括:
Serdes的输入位宽为i×m×Integer2,切片大小为i×m×IntegerS,则Integer 1和Integer2都是IntegerS的整数倍,切片个数为Integer2/IntegerS,Intger2为预置的正整数;
步骤D2从切片后的第三数据流中取出与切片个数对应的每个切片中的第三数据块,然后将与切片个数对应的每个切片位置相同的第三数据块叠加后分发到多路PMA通道中的同一路PMA通道上,包括:
从每个切片中取出第n个第三数据块,将取出的共Integer2/IntegerS个的第n个第三数据块叠加后分发到第n路的PMA通道上,其中,n的取值为为从0到i-1的任何一个值。
在本发明实施例中,经过FEC编码处理之后的第三数据流需要向Serdes传输,如果F和S不匹配,就不能用现有的简单的Gearbox技术,因为这会破坏AM图案的完整性和连续性。
普通Gearbox的情况无法适应各种位宽的匹配过程中AM图案的完整性和连续性,如图5所示,为现有技术中的普通Gearbox的位宽变化示意图,比如当前工艺可能选择的位宽和当前标准定义的AM个数和大小在Gearbox变换的时候就会出现破坏AM图案的完整性和连续性的问题。假设FEC编码后的第三数据流中共有16个AM,分别为AM0、AM1、...、AM15,除了16个AM之外,其余的都是全数据块,如果采用普通的变速模块,那么位宽从640比特变换为480比特之后,每个数据块还是40比特,那么变速后就存在12个通道,原有的AM被切片为AM0_P1、...、AM11_P1、AM12_P1、AM13_P1、...、AM7_P2、AM8_P2、AM9_P2、...全数据块,可以在第三个管道,就出现了AM不连续的问题,AM被破坏,数据接收端无法正常接收。
从图5中可以看出携带AM的图案的信息在进行Gearbox位宽变换时会出现将AM图案破坏的问题,而且无法保证AM图案在每条Lane上的均与分布。但是本发明的切片技术能够很好的保证位宽匹配同时保证AM的图案分布在每条Lane上连续且完整。举例如下,本发明的切片技术保证AM在每条通道上的分布,本发明的切片重分发技术类似于一种位宽变换但是又不同于现在的Gearbox技术,现有技术无法保证AM在各个FEC输出通道上的均匀分布。本发明的切片重分发技术可以有效保证AM的正确性。
前述现有技术为普通的Gearbox解决位宽不匹配,但是由于非整数倍的原因AM无法做到在新的带宽下的均匀分布,也就无法实现AM的对齐功能,影响到接收端的对齐锁定和重排序模块,也就是对端无法恢复数据。
请参阅如图6所示,为本发明实施例提供的对第三数据流分发到多路PMA通道上的实现方式示意图,本发明的切片技术,针对FEC编码后的数据总位宽为F的第三数据流,首先通过Gearbox变换到上图中左侧格式,即第三数据流分成i条通道对应的数据格式,第三数据流的位宽为i*m*Integer1,通过本发明的切片技术将数据切成i×m×IntegerS的数据片后进行叠加,图6中只示意出了三个切片,每个切片中的数据分别用sym1、sym2、sym3来表示,在第1个切片中共有m个sym1,同理第2个切片中共有m个sym2,第3个切片中共有m个sym3,如图6所示的转换,将切片叠加出输出Serdes位宽S=i*m*Integer2。通过上面切片叠加映射出来的Serdes位宽在每条Lane上的图案连续完整的AM图案。Integer1和Integer2都是IntegerS的整数倍,切片个数为Integer2/IntegerS,Intger2为预置的正整数。从每个切片中取出第n个第三数据块,将取出的共Integer2/IntegerS个的第n个第三数据块叠加后分发到第n路的PMA通道上,其中,n的取值为为从0到i-1的任何一个值。图6中分别从第1个切片、第2个切片、第3个切片中取出第1个sym1、第1个sym2、第1个sym3分发到并串行与串并行转换器(Serdes)的接口0上,分别从第1个切片、第2个切片、第3个切片中取出第2个sym1、第2个sym2、第2个sym3分发到并串行与串并行转换器(Serdes)的接口1上,...,分别从第1个切片、第2个切片、第3个切片中取出第i-1个sym1、第i-1个sym2、第i-1个sym3分发到并串行与串并行转换器(Serdes)的接口i-1上。
在本发明实施例中,针对FEC编码输出的F比特位宽(F不等于S)采用Adaptor+Gearbox+Slice,将FEC编码的处理采用整数拍的数据处理格式(但本发明并不强制要求FEC块采用整数拍数据处理格式,即Gearbox和Slice配合使用匹配带宽但是并不要求FEC一定是整数拍或者非整数拍处理),然后用Gearbox将数据转换到输出的Serdes的通道上进行传输,请参阅如图7所示,为本发明实施例提供的PCS内各模块的位宽不匹配的处理方式示意图。
本发明的Gearbox+Slice主要是为了解决位宽不匹配问题,同时为了保证实现简单可以在有Gearbox+Slice的情况下,FEC的位宽应该选择一个整数拍的位宽(但是并不强制要求),FEC不需要提频和挤气泡操作,本实现方式采用能够被FEC的codeword整除的位宽680比特解码位宽,之后输出的解码数据采用Gearbox转换到640bit(16路每路40bit)的输出数据位宽,这样FEC模块(共有5440bit Codeword)的处理采用整数拍的数据处理格式不需要复制FEC的内部处理模块的资源,然后用Gearbox将FEC输出位宽F转换到P,然后采用Slice模块切片将数据位宽匹配到输出Lane上(Serdes位宽S=640=i*d*m=16*4*10或者S=480=i*d*m=16*3*10)进行传输。这样就解决了位宽不匹配的问题,同时FEC编码逻辑不需要增加额外的复制逻辑资源,同时保证了普通Gearbox无法保证AM图案完整性和连续性的问题。
Slice技术可以和Gearbox灵活配合不仅仅限于上述层级关系,Slice也可以放在FEC之前做处理具体根据架构简化需求尤其是位宽情况进行选择适配,而且Slice和Gearbox和提频这几个创新技术是配合实现并不存在强制依赖关系,可以灵活配合简化设计结构,其中Slice+Gearbox主要是为了解决各个模块之间的位宽匹配,提频加挤气泡逻辑主要是为了保证FEC内部在位宽为非整数拍情况下的有效解决方案。
通过以上实施例对本发明的描述可知,在第一数据流中插入对齐标志AM,第一数据流为经过64b/66b编码后进行转码和加扰的数据流,第一数据流的传输速率大于等于100G,将包括AM的第一数据流适配到多路物理编码子层PCS通道上,得到第二数据流,对多路PCS通道上的第二数据流进行前向纠错FEC编码,得到第三数据流,根据并串行与串并行转换器Serdes的输入位宽将第三数据流分发到多路物理介质接入子层PMA通道上,其中分发到每路PMA通道上的第三数据流包括连续完整的AM。由于本发明中对第三数据流分发到多路PMA通道上,并且每路PMA通道上可保持连续完整的AM,对于数据接收端来说就可以从多路PMA通道中获取到连续完整的AM,可以适用于数据流传输速率很高的场景,避免对AM的破坏。
请参阅如图8所示,为本发明实施例从数据接收端提供的数据传输方法,可包括如下步骤:
801、从多路物理介质接入子层PMA通道上接收第四数据流,对第四数据流进行PMA的解调制,得到PMA解调后的第三数据流。多个第四数据流与多路PMA通道一一对应,其中,每个第四数据流包括连续完整至少一个AM,至少一个AM是多个AM中的AM。
在本发明实施例中,数据发送端通过多路PMA发送第四数据流之后,数据接收端可以从多路PMA接收第四数据流,
在本发明的一些实施例中,步骤801对第四数据流进行PMA的解调制,得到PMA解调后的第三数据流,包括:
E1、根据第四数据流的位宽、串并行转换器Serdes的输入位宽和切片大小确定需要组合的切片个数,从每一路PMA通道上获取与切片个数对应的每个切片位置相同的第三数据块分别分发到各个PCS通道上,对每个PCS通道上的第三数据块进行合并,得到合并后的第三数据流。
进一步的,步骤E1根据第四数据流的位宽、Serdes的输入位宽和切片大小确定切片个数,从每一路PMA通道上获取与切片个数对应的每个切片位置相同的第三数据块分别分发到各个PCS通道上,对每个PCS通道上的第三数据块进行合并,得到合并后的第三数据流,包括:
PCS通道的路数为i,每个PCS通道上承载单个字符的数据大小为m,第三数据流的位宽为i×m×Integer1,Intger1为预置的正整数;
Serdes的输入位宽为i×m×Integer2,切片大小为i×m×IntegerS,则Integer1和Integer2都是IntegerS的整数倍,切片个数为Integer1/IntegerS,Intger2为预置的正整数;
从每一路PMA通道上获取的每个分片中的第三数据块的大小为i×m,从第n路的PMA通道上获取共Integer1/IntegerS个的第n个第三数据块并分别分发到各个PCS通道上,对每个PCS通道上的第三数据块进行合并,得到位宽为i×m×Integer1的第三数据流。
需要说明的是,此处实施例中为数据接收端从多路PMA通道中接收第三数据流的过程,该过程与前述实施例中步骤104中数据发送端将第三数据流分发到多路PMA通道上相反的过程,具体描述可以参阅前述实施例中图5的描述。
802、从第三数据流中识别出连续完整的AM,根据AM对第三数据流进行PCS通道的对齐和重映射,得到对齐和重映射后的第三数据流。
在本发明实施例中,数据接收端得到PMA解调后的第三数据流,需要对第三数据流进行PCS通道的对齐和重映射,由前述实施例中数据发送端执行的数据传输方法可知,数据发送端中在多路PMA通道上传输的第三数据流中携带连续完整的AM,故数据接收端可以从第三数据流中识别出连续完整的AM,使用AM进行通道对齐和重映射可参阅现有技术,此处不再赘述。
在本发明的一些实施例中,步骤803对对齐和重映射后的第三数据流进行前向纠错FEC解码之前,本发明提供的数据传输方法还包括如下步骤:
若AM移除电路的处理位宽和FEC解码的处理位宽不相同,对对齐和重映射后的第三数据流进行位宽转换,转换位宽后的第三数据流的位宽与FEC解码电路的处理位宽相等。
具体的,AM移除电路输出的处理位宽用P表示,FEC解码电路的处理位宽用F来表示,所以在P和F不相等的情况下,还需要对第三数据流的位宽进行位宽转换,数据发送端为了不破坏AM图案的连续完整,数据发送端发送的第三数据流的位宽已经转换为P,为了能够适配FEC解码电路的需要,数据接收端需要第三数据流的位宽从P转换为F。那么在完成FEC编码之后,还需要将第三数据流的位宽转换为原来的位宽P,具体的,位宽转换可以通过设置在数据接收端中的变速(英文名称为Gearbox)模块或切片(英文名称为Slice)模块来实现位宽转换。举例说明,本发明可以根据P和F的位宽匹配情况选择是否采用Gearbox和Slice匹配,本发明在P和F不匹配的时候需要添加Gearbox和Slice配合将第三数据流的数据位宽由P变换到F,从而可以保证AM的完整性。
803、对对齐和重映射后的第三数据流进行FEC解码,得到第二数据流,第二数据流包括AM。
在本发明实施例中,对第三数据流进行的FEC解码与前述实施例中对第二数据流进行FEC编码的逆过程,具体实现方式与FEC编码相逆。
在本发明的一些实施例中,步骤803对对齐和重映射后的第三数据流进行前向纠错FEC解码之前,本发明提供的数据传输方法还包括如下步骤:
将在同一个时钟周期内并行处理的两个码字片段分到两个不同的时钟周期内进行处理并在两个不同的时钟周期内插入空数据,两个不同的时钟周期内分别包括原拼接在一个时钟周期内的两个码字片段的其中一个码字片段。
也就是说,本发明实施例中,若FEC解码电路的处理位宽不是PCS通道的位宽整数倍时,就会存在两个不同码字片段拼接在同一个时钟周期内的情况,可以理解的是,一个码字可以有多个片段,一个码字的一个片段占用一个时钟周期,对于一个码字的一个片段没有占满一个时钟周期的情况,就需要与另一个码字的片段共同占满一个时钟周期,这两个不同码字各自的片段拼接在同一个时钟周期内,就会存在码字片段拼接的问题,例如一个时钟周期可以指的是一拍,那么两个不同码字的片段就会产生拼接拍,每个码字占用的拍数都不再是整数拍,对于FEC解码电路,在非整数拍时两个码字的数据就需要在同一拍处理,一拍的两部分不同码字片段数据由于是不同的码字,但又需要并行处理这两个不同码字的片段,就需要再FEC解码电路中使用两个不同部分的逻辑处理资源,否则就会造成处理堵塞。
对于相对复杂的FEC算法,当前和下一代工艺能够支持的最高频率而且比较节省资源的数据带宽和频率,可以是位宽为640bit,时钟频率为625MHz,而RS FEC(544,514,15,10)的码字(英文名称为Codeword)大小是5440bit,而5440/640=8.5拍,这种非整数拍的问题会使得FEC在处理时产生问题:非整数拍整个FEC的解码算法都会增加冗余的逻辑资源来适配这种前后两个Codeword在一拍需要处理的情况。例如,针对Codeword大小为5440比特的FEC编码电路,目前工艺基本确定Serdes位宽为640比特,如果解码也采用此位宽,那么5440/640=8.5,此时就会存在半拍拼接问题,就需要为拼接拍数据单独增加逻辑资源,代价是增加过多的逻辑资源,大约需要增加50%的逻辑资源,其他模块同理不做详述。
在本发明采用提频方式解码拼接时钟周期的实现场景下,步骤803对对齐和重映射后的第三数据流进行前向纠错FEC解码,得到第二数据流,包括:
对对齐和重映射后的第三数据流中除插入的空数据以外的数据进行FEC解码;
在对第三数据流进行FEC解码之后,从解码后的第三数据流中删除插入的空数据,得到第二数据流。
需要说明的是,第三数据流中会被插入空数据,但是这些空数据不需要进行FEC解码,即只对第三数据流中除空数据以外的数据进行FEC解码,对第三数据流进行FEC解码之后,由于解码前在第三数据流中插入有空数据,那么就需要删除掉插入的空数据,此时得到第二数据。其中删除掉空数据的方式也可以描述为挤气泡逻辑。
进一步的,在本发明的一些实施例中,将在同一个时钟周期内并行处理的两个码字片段分到两个不同的时钟周期内进行处理并在两个不同的时钟周期内插入空数据,包括:
在同一个时钟周期内并行处理的两个码字片段之间插入占用一个时钟周期的空数据,将原拼接在一个时钟周期内的两个码字片段的其中一个码字片段和一个时钟周期内的一部分空数据分在两个码字片段原拼接时所在的时钟周期内,将原拼接在一个时钟周期内的两个码字片段的另一个码字片段和一个时钟周期的另一部分空数据分在两个码字片段原拼接时所在的时钟周期的下一个时钟周期。
在本发明的另一些实施例中,将在同一个时钟周期内并行处理的两个码字片段分到两个不同的时钟周期内进行处理并在两个不同的时钟周期内插入空数据,包括:
在同一个时钟周期内并行处理的两个码字片段中的前一个码字片段之后插入空数据使得两个码字片段原拼接时所在的时钟周期被填满,对同一个时钟周期内并行处理的两个码字片段中的后一个码字片段向后进行数据移位,并在后一个码字片段所在码字的最后一个码字片段之后插入空数据使得后一个码字片段所在码字的最后一个码字片段所在的时钟周期被填满。
需要说明的是,前述提频方式的实现过程与前述实施例中图4-a和图4-b描述的提频方式相类似,可参阅前述实施例中的描述。
在本发明的一些实施例中,步骤803对对齐和重映射后的第三数据流进行FEC解码,得到第二数据流,具体包括如下步骤:
获取所述第三数据流中在同一个时钟周期内并行处理的两个码字片段,所述两个码字片段包括:第一码字片段和第二码字片段,所述第一码字片段的数据量大于或者等于所述第二码字片段;
将所述第一码字片段通过第一FEC解码电路进行FEC解码,同时将所述第二码字片段通过第二FEC解码电路进行FEC解码,所述第一码字片段和所述第二码字片段分别被所述第一FEC解码电路和所述第二FEC解码电路处理后生成所述第二数据流,所述第二FEC解码电路和所述第一FEC解码电路使用完全不同的可配置逻辑编码电路,或者所述第二FEC解码电路为所述第一FEC解码电路中处理所述第一码字片段之外剩余的可配置逻辑编码电路通过资源配置操作之后得到的FEC解码电路。
本发明实施例中,对于第三数据流中在一个时钟周期内只存在一个码字片段的情形,可以通过第一FEC解码电路进行FEC解码,但是若第一FEC解码电路的处理位宽不能够被一个完整码字的位宽整除时,就会存在两个不同码字片段拼接在同一个时钟周期内的情况,可以理解的是,一个码字可以有多个片段,一个码字的一个片段可以占用一个时钟周期,对于一个码字的一个片段没有占满一个时钟周期的情况,就需要与另一个码字的片段共同占满一个时钟周期,这两个不同码字各自的片段拼接在同一个时钟周期内,就会存在码字片段拼接的问题。在同一个时钟周期内并行处理的两个码字片段中,第一码字片段为在同一个时钟周期内并行处理的两个码字片段中数据量大或者数据量相等的一个码字片段,第二码字片段为在同一个时钟周期内并行处理的两个码字片段中数据量小或者数据量相等的另一个码字片段。
如图4-c和图4-d所示,为本发明实施例提供的一种两个码字片段拼接的另一种处理方式示意图。其中,在同一个时钟周期内只存在一种码字片段时,该码字片段来自同一个码字,均通过第一FEC解码电路进行解码,但是在同一个时钟周期内存在两个码字片段时,即两个码字片段C1和C2拼接,其中,同一个时钟周期内存在两个码字片段是分别属于不同的码字,例如,第一个码字片段C1属于第一个码字Codeword1,属于前一个码字,第二个码字片段C2属于第二个码字Codeword2,属于后一个码字。例如,图4-c中,在码字拼接的时钟周期内如果C1<C2,C1的数据量小于C2的数据量,以一个时钟周期拼接拍为例,将拼接拍中的C2放在第一FEC解码电路进行FEC解码,将拼接拍中的C1放在第二FEC解码电路进行FEC解码,图4-d中如果在拼接拍C1>=C2,则将拼接拍中的C1放在第一FEC解码电路进行FEC解码,将拼接拍中的C2放在第二FEC解码电路进行FEC解码。其中,图4-c和图4-d中,第二FEC解码电路只用于处理在同一个时钟周期内存在两个码字片段中数据量小或者数据量相等的码字片段,第一FEC解码电路用于处理在同一个时钟周期内存在两个码字片段中数据量大或者数据量相等的码字片段,第一FEC解码电路还用于处理在一个时钟周期内只存在一个码字片段。
具体的,第一FEC解码电路和第二FEC解码电路的实现方式如下:第二FEC解码电路为独立于第一FEC解码电路的FEC解码电路,或者第二FEC解码电路为第一FEC解码电路中用于数据量大或者数据量相等的一个码字片段进行FEC解码之外剩余的可配置逻辑编码电路通过配置参数和寄存器置位以及数据选通操作之后得到的FEC解码电路。也就是说,第二FEC解码电路可以是从第一FEC解码电路中的部分可配置逻辑编码电路进行资源配置操作之后得到,或者第二FEC解码电路也可以是独立于第一FEC解码电路通过直接增加逻辑资源得到。具体的,本发明实施例中资源配置操作可以包括配置参数和寄存器置位以及数据选通等操作,另外资源配置操作还可以根据具体的应用场景确定需要增加其它的操作以实现对可配置逻辑编码电路的资源配置。
需要说明的是,在本发明实施例中,对于在同一个时钟周期内并行处理的两个码字片段,若两个码字片段的数据量相等时,第二FEC解码电路的可配置逻辑编码电路需要达到最大值,此时第二FEC解码电路可以为第一FEC解码电路的可配置逻辑编码电路的50%,当同一个时钟周期内并行处理的两个码字片段之间的数据量差值越大,第二FEC解码电路所需要的可配置逻辑编码电路就越小,例如,具体根据非整数拍的两个码字片段的码字比例决定,第二FEC解码电路的可配置逻辑编码电路取能够处理非整数拼接拍中较小码字片段的大小即可。
通过此前说明可知,第二FEC解码电路可以通过单独增加逻辑电路实现,也可以从第一FEC解码电路中的电路更改参数得到,第二FEC解码电路处理FEC解码非整数拍,可以通过增加非整数拍的处理逻辑来处理非整数拍所存在的一拍需要处理两个码字片段的问题,本发明实施例中相当于在第一FEC解码电路之外增加了第二FEC解码电路作为可配置逻辑编码电路,本发明实施例还支持另外一种通过配置第一FEC解码电路中的参数直接在拼接拍将第一FEC解码电路中闲置的可配置逻辑编码电路配置成第二FEC解码电路进行处理非整数拍的问题。
如果采用单独增加第二FEC解码电路的方式,本发明最多只可能增加原来一半的处理逻辑,下面举例描述非整数拍时两个码字片段在同一拍处理的问题,针对码字大小为5440比特的FEC,目前ASIC的工艺基本确定Serdes位宽为640比特,如果FEC解码也采用此位宽,那么5440/640=8.5,就会存在半拍拼接问题,就需要为拼接拍数据增加第二FEC解码电路,按照解码位宽640bit作为参考,需要增加的第二FEC解码电路的可配置逻辑编码电路为第一FEC解码电路的可配置逻辑编码电路的一半。又一例子如下,如果是FPGA处理工艺实现RS FEC(544,514,15,10)FEC算法,Serdes的位宽将是1280比特,如果第一FEC解码电路采用此位宽,那么5440/1280=4.25,这样同样会产生非整数拍的拼接问题,如果应用本发明的第二FEC解码电路的方法为单独增加可配置逻辑编码电路得到,按照解码位宽1280比特作为参考,需要增加的第二FEC解码电路所需要的可配置逻辑编码电路为第一FEC解码电路的四分之一。
如果采用对第一FEC解码电路中的可配置逻辑编码电路来得到第二FEC解码电路,若一个时钟周期内包括两个码字片段,这就需要将寄存器在不同拍进行置位,具体置位规则是在前后两拍的同一个寄存器来自不同的码字片段时寄存器需要置位操作,在非整数拍就可以通过配置参数和寄存器置位以及数据选通操作得到一个第二FEC解码电路,第二FEC解码电路的主体逻辑部分仍然来自第一FEC解码电路的可配置逻辑编码电路,因此也不需要增加额外的可配置逻辑编码电路。如果是采用从第一FEC解码电路中配置参数得到第二FEC解码电路的话,所需要增加的资源量不会超过第一FEC解码电路所需要的可配置逻辑编码电路的10%。
需要说明的是,在本发明前述举例中图4-c和图4-d中均以在同一个时钟周期内码字片段C1和C2的拼接为例,在出现两个码字片段在一个时钟周期内拼接时可以根据C1和C2之间的数据量比例关系从第一FEC解码电路中空闲的可配置逻辑编码电路中单独配置出第二FEC解码电路,也可以根据C1和C2之间的数据量比例关系在第一FEC解码电路之外单独增加第二FEC解码电路,本发明不做具体限定,但是在另一个时钟周期内出现C2和C3两个码字拼接时仍可以根据根据C2和C3之间的数据量比例关系来确定第二FEC解码电路的具体实现,另外在另一个时钟周期内出现C3和C4两个码字拼接时仍可以根据根据C3和C4之间的数据量比例关系来确定第二FEC解码电路的具体实现。需要说明的是,对于通过增加可配置逻辑编码电路的方式得到第二FEC解码电路,需要增加的可配置逻辑编码电路需要取在三个拼接拍(C1:C2、C2:C3、C3:C4)中数据量最小的三个码字片段中的最大值来确定第二FEC解码电路。
需要说明的是,前述实施例中图4-e、图4-f、图4-g、图4-h中对于第一FEC编码电路和第二FEC编码电路进行了举例说明,在此处实施例中第一FEC解码电路和第二FEC解码电路的实现方式与前述的FEC编码电路的图例相类似,不同点在于可配置逻辑编码电路的实现为FEC解码,与前述的可配置逻辑编码电路为FEC编码不同。
804、合并PCS通道上通过FEC解码得到的第二数据流,得到包括AM的第一数据流。
在本发明实施例中,数据接收端对各路PCS通道上的第三数据流进行FEC解码得到第二数据流,再对各路PCS通道上的第二数据流进行合并,得到包括AM的第一数据流。其中,数据接收端对各路PCS通道上的第二数据流合并的过程与前述实施例中步骤102将第一数据流适配到多路PCS通道上得到第二数据流是相反的两个过程。
在本发明的一些实施例中,步骤804合并PCS通道上解码后的第二数据流,得到包括AM的第一数据流,具体可以包括如下步骤:
按照全数据并行处理的粒度提取到全数据并行处理块,按照AM并行处理的粒度提取到AM并行处理块,将全数据处理块和AM并行处理块进行合并,得到包括AM的第一数据流。
其中,第一数据流在插入AM之前,第一数据流中包括的数据块可以为全数据,在插入AM之后第一数据流为全数据和AM混合的数据流,在对包括AM的第一数据流适配到多路PCS通道上时,对于第一数据流中全数据的数据块和AM块的大小不同的情形,本发明实施例为了把AM均匀的分布到各路PCS通道上,可以对包括AM的第一数据流采用两种不同的粒度来进行适配,具体的,对于第一数据流中的全数据,可以按照全数据并行处理的粒度将全数据并行处理块适配到多路PCS通道上,对于第一数据流中的AM,则按照AM并行处理的粒度将AM并行处理块适配到多路PCS通道上。由于AM是单独分发的,所以可以保证在多路PCS通道上的均匀分布。可以理解的是,若全数据的并行处理粒度和AM并行处理的粒度相同,则可以按照同一种粒度将包括AM的第一数据流适配到多路PCS通道上。数据接收端在合并第二数据流时应该采用与数据发送端相反的方式,分别按照全数据并行处理的粒度、AM并行处理的粒度来合并,从而可以得到包括AM的第一数据流。
805、将包括AM的第一数据流中的AM移除,得到数据编码端编码使用的原始第一数据流。
在使用AM完成通道的对齐和重映射之后,AM的对齐功能已经完成,数据编码端在第一数据流中插入的AM,对于数据接收端需要移除,从而还原出数据编码端编码使用的原始第一数据流。其中,原始第一数据流为数据发送端经过64b/66b编码后进行转码和加扰后得到的数据流,第一数据流的传输速率大于等于100G,例如第一数据流采用400G或者更高传输速率。
需要说明的是,在本发明的一些实施例中,步骤805将包括AM的第一数据流中的AM移除之前,本发明提供的数据传输方法还可以包括如下步骤:
若AM移除电路的处理位宽和FEC解码电路的处理位宽不相同,对包括AM的第一数据流进行位宽转换,转换后的第一数据流的位宽与AM移除电路的位宽相等。
具体的,AM移除电路输出的处理位宽用P表示,FEC解码电路的处理位宽用F来表示,所以在P和F不相等的情况下,还需要对第一数据流的位宽进行位宽转换,为了能够适配FEC解码电路的需要,FEC解码处理后第一数据流的位宽为F,故需要对将位宽从F转换为P,从而AM移除电路就可以对第一数据流中包括的AM进行移除。具体的,位宽转换可以通过设置在数据发送端中的变速(英文名称为Gearbox)模块或切片(英文名称为Slice)模块来实现位宽转换。
通过以上实施例对本发明的描述可知,从多路物理介质接入子层PMA通道上接收第三数据流,对第三数据流进行PMA的解调制,得到PMA解调后的第三数据流,从第三数据流中识别出连续完整的AM,根据AM对第三数据流进行PCS通道的对齐和重映射,得到对齐和重映射后的第三数据流,对对齐和重映射后的第三数据流进行FEC解码,得到第二数据流,第二数据流包括AM,合并PCS通道上通过FEC解码得到的第二数据流,得到包括AM的第一数据流,将包括AM的第一数据流中的AM移除,得到数据编码端编码使用的原始第一数据流。由于本发明中对第三数据流分发到多路PMA通道上,并且每路PMA通道上可保持连续完整的AM,对于数据接收端来说就可以从多路PMA通道中获取到连续完整的AM,可以适用于数据流传输速率很高的场景,避免对AM的破坏。
为便于更好的理解和实施本发明实施例的上述方案,下面举例相应的应用场景来进行具体说明。
请参阅如图9所示,为本发明实施例中数据发送端和数据接收端的架构示意图。图9为本发明的整个数据发送端和数据接收端的整体架构示意图,整个架构主要描述以太网的PHY层(主要是PCS层和PMA层),左侧为数据发送端的主要模块图,右边为数据接收端的主要模块图。
本发明架构的数据发送端的数据来自以太网的MAC层的数据格式,到了CDGMII接口转换成相应的MII接口格式CDGMII格式,具体CDGMII接口的数据格式描述如下:CDGMII接口数位位宽为(20*(64+8)),CDGMII接口的格式是20路64bit的数据信息位加8位控制信息指示位,其中8比特控制信息位指示64bit的8个字节的数据代表数据还是控制信息。上述CDGMII数据格式传输到64b/66b编码模块进行编码。
具体的64b/66b的编码格式为目前标准中通用的编码方法。
64b/66b编码模块之后进行转码,转码模块(英文名称Transcode)的具体格式有256b/257b,512b/513b,256b/258b,512b/514b等等转码方式,本发明不限定具体那一种转码方式。
转码之后的数据由加扰模块进行加扰,加扰可以按照一定的粒度整体或者部分加扰。可以采用统一的整体加扰,或者与FEC粒度对应的加扰,或者以Lane为粒度的加扰。同时加扰器的初始化值可以动态配置保证整个系统的性能。
AM插入模块将AM的插入放在加扰之后,AM插入格式是转码后的格式,由于数据接收端需要根据AM进行对齐和重排序操作,所以AM本身不进行加扰操作。
AM对齐字插入之后由FEC编码模块进行FEC编码,FEC编码模块采用end to end的纠错编解码形式,本发明架构支持单个或者多个FEC的编码形式,上述图中整个FEC的处理位宽用F表示,如果有多个子FEC(Integer_f个子FEC),每个子FEC的处理位宽定义为f,如果只有一个FEC,则这一个FEC的位宽就是F,本发明的方案FEC内部可以根据位宽匹配情况选择提频和挤气泡逻辑进行简化逻辑匹配位宽操作。
编码后的数据根据位宽匹配情况可以选择Gearbox和Slice模块将数据转换到Serdes输出的位宽同时保证AM图案在每条FEC通道上的完整性和连续性,最后由数据发送端的PMA传送模块来发送数据流。
本发明的数据接收端为数据发送端逆操作,首先PMA接收模块将接收到的数据经过PMA层的解调制,解调制之后的数据传到PCS层,首先由AM锁和对齐模块进行AM lock和Deskew操作,识别出各条Lane并进行对齐操作,对齐后的数据由通道重排模块进行LaneReorder重排序操作,FEC解码模块进行解码,AM移除模块进行AM移除,解扰模块进行解扰,反转码模块进行反转码,64b/66b解码模块进行解码,CDGMII接口格式转化等主要模块恢复出以太网MAC层的数据格式。Slice和Gearbox同样是根据位宽匹配情况插入各层模块适配。
图9中为整个PCS(PMA)架构设计,为当前本发明的实现架构,本发明主要关注点在于PCS层的设计,拿接收端来举例也就是图9中的AM移除模块,FEC解码模块,PMA接收模块三个模块。AM移除模块处理带宽用P表示,FEC解码电路的处理位宽为用F表示,Serdes的处理总位宽用S表示,FEC的输出Lane数用i表示,每条Lane上的并行传输Symbol数目用d表示,Symbol的大小用m表示,FEC的Codeword大小用n表示。以数据发送端为例,执行数据的传输过程可以如图7所示,相拟的,数据接收端的数据传输过程可以是图7中的逆过程,详见前述实施例的描述。在本发明实施例中,针对FEC编码输出的F比特位宽(F不等于S)采用Adaptor+Gearbox+Slice,将FEC编码的处理采用整数拍的数据处理格式(但本发明并不强制要求FEC块采用整数拍数据处理格式,即Gearbox和Slice配合使用匹配带宽但是并不要求FEC一定是整数拍或者非整数拍处理),然后用Gearbox将数据转换到输出的Serdes的通道上进行传输,请参阅如图7所示,为本发明实施例提供的PCS内各模块的位宽不匹配的处理方式示意图。
如下PCS内的各模块的位宽进行举例说明,并详细描述在位宽不一致时如何保证AM图案的连续性和完整性。
本发明实施例一:
以FEC的算法选择RS FEC(544,514,30,10)为例,如果整个PCS的处理位宽如果选择如下参数:P=640,F=680,S=480,那么本发明的整个位宽处理如图7所示。
首先需要Adaptor将数据尤其是AM图案分发到16条Lane上,采用两种分发粒度的方式分发,本发明对于全数据帧的处理方法采用64bit的粒度进行分发,如图2-a和图2-b,需要按照数据编码的粒度或者转码的粒度(本实施例为64bit)进行Round Rorbin轮询分发方式进行。
对于数据流中的AM部分Adaptor的分发为根据AM的粒度直接按照AM的粒度分发。同样是采用Round Rorbin的轮询分发方式进行分发。分发的粒度需要按照各条Lane上的AM大小为粒度120比特向各条Lane上分发。
在本发明的一些实施例中,以将包括AM的第一数据流分发到多路物理编码子层PCS通道上为例,包括:
第一数据流包括:全数据并行处理块、AM并行处理块,按照全数据并行处理的粒度将全数据并行处理块适配到多路PCS通道上,按照AM并行处理的粒度将AM并行处理块适配到多路PCS通道上。
其中,第一数据流在插入AM之前,第一数据流中包括的数据块可以为全数据,在插入AM之后第一数据流为全数据和AM混合的数据流,在对包括AM的第一数据流适配到多路PCS通道上时,对于第一数据流中全数据的数据块和AM块的大小不同的情形,本发明实施例为了把AM均匀的分布到各路PCS通道上,可以对包括AM的第一数据流采用两种不同的粒度来进行适配,具体的,对于第一数据流中的全数据,可以按照全数据并行处理的粒度将全数据并行处理块适配到多路PCS通道上,对于第一数据流中的AM,则按照AM并行处理的粒度将AM并行处理块适配到多路PCS通道上。由于AM是单独分发的,所以可以保证在多路PCS通道上的均匀分布。可以理解的是,若全数据的并行处理粒度和AM并行处理的粒度相同,则可以按照同一种粒度将包括AM的第一数据流适配到多路PCS通道上。
如图2-a所示,为本发明实施例提供的一种第一数据流适配到多路PCS通道上的实现方式示意图,如图2-b所示,为本发明实施例提供的另一种第一数据流适配到多路PCS通道上的实现方式示意图,对第一数据流适配到多路PCS通道上可以通过数据发送端中的适配模块(英文名称为Adaptor)来实现,适配模块的作用是把AM均匀的分部到各自的PCS通道上,适配模块按照并行处理块的处理模式进行处理,并行处理块根据第一数据流中的内容可以划分为两种并行处理块:全数据并行处理块和AM并行处理块。本发明采用两种粒度分别对AM和全数据进行分发处理,区别于现有技术只能按照统一粒度进行分发的分发结构,但是在AM和全数据的并行处理块相同时,本发明的两种粒度也可以是指同一种粒度,如图2-a中,本发明对于全数据并行处理块的处理方法,需要按照PCS通道上的符号(英文名称为Symbol)或者Symbol的整数倍进行轮叫调度(英文名称Round Robin Scheduling)的轮询分发方式进行,全数据并行处理块分别被分发到PCS通道0、PCS通道1、PCS通道2、...、PCS通道i-1上,如图2-b中,本发明对于第一数据流中的AM并行处理块的处理方法,根据AM并行处理的粒度直接将AM分发到各路PCS通道上。同样是采用Round Rorbin的轮询分发方式进行分发,AM并行处理块分别被分发到PCS通道0、PCS通道1、PCS通道2、...、PCS通道i-1上,分发的粒度需要按照各条通道上的AM大小为粒度向各条通道上分发。
Adaptor之后本发明可以根据位宽匹配情况选择是否采用Gearbox匹配,本发明在P和F不匹配的时候需要添加Gearbox将数据位宽由P变换到F,为了保证FEC内部的处理简单。
之后需要Gearbox将数据从640变换到680bit进行FEC处理,这个Gearbox为普通的Gearbox变换,请参阅如图10所示,为本发明实施例提供的变速模块从640变为680的转换示意图,变速模块变换前,一个时钟周期内有16个AM,分别为AM0_0、...、AM0_15,变换后一个时钟周期内有18个AM,分别为AM0_0、...、AM0_15、AM1_0、AM1_1,并且在变换前一个时钟周期都为相同的码字,变换后出现AM与全数据拼接的情况。
位宽变换后的数据进入FEC处理,一个Codeword的数据为整数拍544/68=8拍,输出的编码数据位宽为680bit,经过Gearbox转换为640bit数据输出(这个Gearbox为图10中变速模块的反变换),之后需要进行Slice切片处理,如图6所示的切片模块,将数据按照160bit切片,然后3个切片分到各个Lane上的数据块进行叠加输出480bit位宽的Serdes数据,输出的16条Lane上的各个AM图案完整性和连续性不会被破坏。
本发明实施例二:
如果整个PCS的处理位宽如果选择如下参数:P=640,F=640,S=640,以FEC的算法选择RS FEC(544,514,30,10)为例,如果整个PCS的处理位宽选择如下参数:P=640,F=640,S=640,那么本发明的整个位宽处理如下图7所示。
首先需要Adaptor将数据尤其是AM图案分发到16条Lane上,采用两种分发粒度的方式分发,本发明对于全数据帧的处理方法如图2-a和图2-b所示,采用256/257bit的粒度进行分发,需要按照数据编码的粒度或者转码的粒度(本实施例为256/257b)进行RoundRorbin轮询分发方式进行。对于混合帧中的AM部分Adaptor的分发为根据AM的粒度直接按照AM的粒度分发。同样是采用Round Rorbin的轮询分发方式进行分发。分发的粒度需要按照各条Lane上的AM大小为粒度320比特向各条Lane上分发。
Adaptor之后本发明可以根据位宽匹配情况选择是否采用Gearbox匹配,本发明在P和F不匹配的时候需要添加Gearbox将数据位宽由P变换到F,为了保证FEC内部的处理简单。
RS FEC(544,514,15,10)FEC算法,输出16条Lane的位宽为640比特,因为544*10/640=8.5为非整数拍,存在上述图4-a和图4-b中所述的同一拍会出现两个Codeword数据的问题,本发明的解决方案如下:
640比特解码位宽,采用提频的方法强制将两部分数据分到两拍中,这样就解决了每拍的并行处理数据不会出现两个Codeword的数据,这样就不需要复制额外的逻辑,或者采用第二种提频拼接方式,如图4-b,本发明的上述方案会使得整个数据速率扩充,后续需要增加挤气泡逻辑,挤气泡逻辑为上述提频逻辑的逆过程。640比特解码位宽,采用提频的方法强制将拼接那一拍的两部分数据分到两拍中,这样可以在不增加资源的情况下处理非整数拍的问题(本实施例的第一种方式大概需要6%的提频:625MHz=>661MHz),但是这样会使得整个数据速率扩充,后续需要增加对应的挤气泡逻辑。将填充的IDLE再次挤出来。形成和输出位宽速率匹配的数据格式。FEC处理完成后输出到Serdes的并行位宽为640bit。本实施例由于FEC输出位宽和Serdes输出位宽一样所以可以不需要Slice操作。
本发明实施例三:
以FEC的算法选择RS FEC(544,514,30,10)为例,如果整个PCS的处理位宽如果选择如下参数:P=640,F=680,S=640,那么本发明的整个位宽处理如图7所示。
首先需要Adaptor将数据尤其是AM图案分发到16条Lane上,采用两种分发粒度的方式分发,本发明对于全数据帧的处理方法图2-a和图2-b所示,采用64bit的粒度进行分发,需要按照数据编码的粒度或者转码的粒度(本实施例为64bit)进行Round Rorbin轮询分发方式进行。对于混合帧中的AM部分Adaptor的分发为根据AM的粒度直接按照AM的粒度分发。同样是采用Round Rorbin的轮询分发方式进行分发。分发的粒度需要按照各条Lane上的AM大小为粒度120比特向各条Lane上分发。
Adaptor之后本发明可以根据位宽匹配情况选择是否采用Gearbox匹配,本发明在P和F不匹配的时候需要添加Gearbox将数据位宽由P变换到F,为了保证FEC内部的处理简单。
之后需要Gearbox将数据从640变换到680bit进行FEC处理,之后FEC处理为整数拍544/68=8拍,输出的编码数据位宽为680bit,经过Gearbox转换为640bit数据输出,由于经过FEC输出数据经过Gearbox变换到了640bit的输出位宽和Serdes的输出位宽相同,而且输出的16条Lane上的各个AM图案完整性和连续性不会被破坏,所以本实施例就不需要Slice模块。
本发明实施例四:
P=640,F=510,S=480,以FEC的算法选择RS FEC(544,514,30,10)为例,如果整个PCS的处理位宽如果选择如下参数:P=640,F=510,S=480,那么本发明的整个位宽处理图7所示。
首先需要Adaptor将数据尤其是AM图案分发到16条Lane上,采用两种分发粒度的方式分发,本发明对于全数据帧的处理方法图2-a和图2-b所示,采用256/257bit的粒度进行分发,需要按照数据编码的粒度或者转码的粒度(本实施例为256/257b)进行RoundRorbin轮询分发方式进行。对于混合帧中的AM部分Adaptor的分发为根据AM的粒度直接按照AM的粒度分发。同样是采用Round Rorbin的轮询分发方式进行分发。分发的粒度需要按照各条Lane上的AM大小为粒度320比特向各条Lane上分发。
Adaptor之后本发明可以根据位宽匹配情况选择是否采用Gearbox(640to510)匹配,本发明在P和F不匹配的时候需要添加Gearbox将数据位宽由P变换到F,为了保证FEC内部的处理简单。
RS FEC(544,514,15,10)FEC算法,FEC内部并行位宽为510bit,因为544*10/510=10.67为非整数拍,存在上述图4-a和图4-b所述问题,本发明的解决方案如下:510比特解码位宽,采用提频的方法强制将两部分数据分到两拍中,这样就解决了每拍的并行处理数据不会出现两个Codeword的数据,这样就不需要复制额外的逻辑,如图4-a所示为本发明的实现方式,或者提频后数据拼接方式如图4-b所示,本发明的上述方案会使得整个数据速率扩充,后续需要增加挤气泡逻辑。510比特解码位宽,采用提频的方法强制将拼接那一拍的两部分数据分到两拍中,具体提频方式分两种,如图4-a和图4-b所示,这样可以在不增加资源的情况下处理非整数拍的问题,但是这样会使得整个数据速率扩充,后续需要增加较简单的挤气泡逻辑。将填充的IDLE再次挤出来。形成和输出位宽速率匹配的数据格式。输出到Serdes的510bit的并行位宽。
由于FEC输出的编码数据位宽为510bit,需要先经过Gearbox转换为640bit数据输出数据格式,之后需要进行Slice切片处理,将数据按照160bit切片,然后3个切片分到各个Lane上的数据块进行叠加输出480bit位宽的Serdes数据,输出的16条Lane上的各个AM图案完整性和连续性不会被破坏。如图本发明切片Slice技术的图6所示。
本发明实施例五:
如果PCS层中的各模块的处理位宽为P=640,F=480,S=480,以FEC的算法选择RSFEC(544,514,30,10)为例,如果整个PCS的处理位宽如果选择如下参数:P=640,F=480,S=480,那么本发明的整个位宽处理如图7所示。
首先需要Adaptor将数据尤其是AM图案分发到16条Lane上,采用两种分发粒度的方式分发,本发明对于全数据帧的处理方法如图2-a和图2-b所示,采用256/257bit的粒度进行分发,需要按照数据编码的粒度或者转码的粒度(本实施例为256/257b)进行RoundRorbin轮询分发方式进行。对于混合帧中的AM部分Adaptor的分发为根据AM的粒度直接按照AM的粒度分发。同样是采用Round Rorbin的轮询分发方式进行分发。分发的粒度需要按照各条Lane上的AM大小为粒度320比特向各条Lane上分发。
Adaptor之后本发明可以根据位宽匹配情况选择Slice(640to480),进行位宽匹配,由于FEC的处理位宽和Serdes的处理位宽一样,所以本实施例可以在FEC编码之前直接将数据切片转换到480bit对应的数据位宽上,这样就间接保证了Serdes上16条Lane上的AM图案的完整性和连续性,同时后续不需要进行位宽变换操作。
Slice输出数据位宽480bit,进入RS FEC(544,514,15,10)FEC算法处理,FEC内部并行位宽为480bit,因为544*10/480=11.34为非整数拍,存在上述图2所述问题,本发明的解决方案如下:480比特解码位宽,采用提频的方法强制将两部分数据分到两拍中,这样就解决了每拍的并行处理数据不会出现两个Codeword的数据,这样就不需要复制额外的逻辑,如下图所示为本发明的实现方式。
本发明的上述方案会使得整个数据速率扩充,后续需要增加挤气泡逻辑。480比特解码位宽,采用提频的方法强制将拼接那一拍的两部分数据分到两拍中,具体提频方式分两种,如图2-a和图2-b所示,这样可以在不增加资源的情况下处理非整数拍的问题,但是这样会使得整个数据速率扩充,后续需要增加较简单的挤气泡逻辑。将填充的IDLE再次挤出来。形成和输出位宽速率匹配的数据格式。FEC编码之后将IDLE删除,输出480bit位宽的数据,由于之前经过Slice处理所以可以直接输出到Serdes的480bit的并行位宽,AM不受影响。
通过以上实施例对本发明的描述可知,本发明支持不同位宽的匹配,使实现更加灵活而且节省资源。本发明支持不同粒度的分发方式的Adaptor。本发明可以用Slice进行切片处理便于位宽匹配同时保证AM图案的完整性和连续性,解决了非整数倍位宽变换问题。本发明FEC内部支持两种提频方式,在FEC处理为非整数倍的情况下可以有效节省资源。通过Slice和Gearbox的灵活应用可以简化整个方案架构。本发明是一种可以支持不同位宽匹配的以太网架构。本发明是一种可以支持整数倍或者非整数倍FEC处理位宽的架构。本发明是一种支持提频解决非整数倍位宽情况下遇到的资源增大问题。本发明的Slice方法保证AM的完整性同时保证位宽的灵活变化。本发明是一种支持Slice和Gearbox灵活组合的解决方案。本发明是一种支持不同粒度的分发方式保证AM图案的分布。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
为便于更好的实施本发明实施例的上述方案,下面还提供用于实施上述方案的相关装置。
请参阅图11所示,本发明实施例提供的一种数据发送端1100,可以包括:AM插入模块1101、适配模块1102、FEC编码模块1103、数据流分发模块1104,其中,
AM插入模块1101,用于在第一数据流中插入多个对齐标志AM,所述第一数据流为经过物理层编码后进行转码和加扰的数据流,所述第一数据流的传输速率大于等于100G;
适配模块1102,用于将包括所述AM的第一数据流适配到多路物理编码子层PCS通道上,得到第二数据流;
FEC编码模块1103,用于对所述多路PCS通道上的第二数据流进行前向纠错FEC编码,得到第三数据流;
数据流分发模块1104,用于根据并串行与串并行转换器Serdes的输入位宽将所述第三数据流分发到多路物理介质接入子层PMA通道上以得到多个第四数据流,多个第四数据流与所述多路PMA通道一一对应,其中,每个第四数据流包括连续完整至少一个AM,至少一个AM是多个AM中的AM。
在本发明的一些实施例中,AM插入模块具体为AM插入电路,FEC编码模块具体可以为FEC编码电路。
在本发明的一些实施例中,所述适配模块1102,具体用于所述第一数据流包括:全数据并行处理块、AM并行处理块,按照全数据并行处理的粒度将所述全数据并行处理块适配到所述多路PCS通道上,按照AM并行处理的粒度将所述AM并行处理块适配到所述多路PCS通道上。
在本发明的一些实施例中,以包括AM的第一数据流分发到多路物理编码子层PCS通道上为例,包括:
第一数据流包括:全数据并行处理块、AM并行处理块,按照全数据并行处理的粒度将全数据并行处理块适配到多路PCS通道上,按照AM并行处理的粒度将AM并行处理块适配到多路PCS通道上。
其中,第一数据流在插入AM之前,第一数据流中包括的数据块可以为全数据,在插入AM之后第一数据流为全数据和AM混合的数据流,在对包括AM的第一数据流适配到多路PCS通道上时,对于第一数据流中全数据的数据块和AM块的大小不同的情形,本发明实施例为了把AM均匀的分布到各路PCS通道上,可以对包括AM的第一数据流采用两种不同的粒度来进行适配,具体的,对于第一数据流中的全数据,可以按照全数据并行处理的粒度将全数据并行处理块适配到多路PCS通道上,对于第一数据流中的AM,则按照AM并行处理的粒度将AM并行处理块适配到多路PCS通道上。由于AM是单独分发的,所以可以保证在多路PCS通道上的均匀分布。可以理解的是,若全数据的并行处理粒度和AM并行处理的粒度相同,则可以按照同一种粒度将包括AM的第一数据流适配到多路PCS通道上。
如图2-a所示,为本发明实施例提供的一种第一数据流适配到多路PCS通道上的实现方式示意图,如图2-b所示,为本发明实施例提供的另一种第一数据流适配到多路PCS通道上的实现方式示意图,对第一数据流适配到多路PCS通道上可以通过数据发送端中的适配模块(英文名称为Adaptor)来实现,适配模块的作用是把AM均匀的分部到各自的PCS通道上,适配模块按照并行处理块的处理模式进行处理,并行处理块根据第一数据流中的内容可以划分为两种并行处理块:全数据并行处理块和AM并行处理块。本发明采用两种粒度分别对AM和全数据进行分发处理,区别于现有技术只能按照统一粒度进行分发的分发结构,但是在AM和全数据的并行处理块相同时,本发明的两种粒度也可以是指同一种粒度,如图2-a中,本发明对于全数据并行处理块的处理方法,需要按照PCS通道上的符号或者Symbol的整数倍进行轮叫调度的轮询分发方式进行,全数据并行处理块分别被分发到PCS通道0、PCS通道1、PCS通道2、...、PCS通道i-1上,如图2-b中,本发明对于第一数据流中的AM并行处理块的处理方法,根据AM并行处理的粒度直接将AM分发到各路PCS通道上。同样是采用Round Rorbin的轮询分发方式进行分发,AM并行处理块分别被分发到PCS通道0、PCS通道1、PCS通道2、...、PCS通道i-1上,分发的粒度需要按照各条通道上的AM大小为粒度向各条通道上分发。
在本发明的一些实施例中,所述数据发送端还包括:位宽变换模块,用于所述适配模块将包括所述AM的第一数据流适配到多路物理编码子层PCS通道上之后,所述FEC编码模块对所述多路PCS通道上的第二数据流进行前向纠错FEC编码之前,若AM插入电路的处理位宽和FEC编码电路的处理位宽不相同,对包括所述AM的第一数据流进行位宽转换,转换后的所述第一数据流的位宽与所述FEC编码电路的处理位宽相等。
在本发明的一些实施例中,所述数据发送端还包括:提频模块,用于所述适配模块将包括所述AM的第一数据流适配到多路物理编码子层PCS通道上之后,所述FEC编码模块对所述多路PCS通道上的第二数据流进行前向纠错FEC编码之前,将在同一个时钟周期内并行处理的两个码字片段分到两个不同的时钟周期内进行处理并在所述两个不同的时钟周期内插入空数据,所述两个不同的时钟周期内分别包括原拼接在一个时钟周期内的两个码字片段的其中一个码字片段。
在本发明的一些实施例中,所述FEC编码模块,具体用于对所述第二数据流中除插入的所述空数据以外的数据进行FEC编码;在对所述第二数据流进行FEC编码之后,从编码后的所述第二数据流中删除插入的所述空数据,得到所述第三数据流。
在本发明的一些实施例中,所述提频模块,具体用于在同一个时钟周期内并行处理的两个码字片段之间插入占用一个时钟周期的空数据,将原拼接在一个时钟周期内的两个码字片段的其中一个码字片段和一个时钟周期内的一部分空数据分在两个码字片段原拼接时所在的时钟周期内,将原拼接在一个时钟周期内的两个码字片段的另一个码字片段和一个时钟周期的另一部分空数据分在两个码字片段原拼接时所在的时钟周期的下一个时钟周期。
在本发明的一些实施例中,所述提频模块,具体用于在同一个时钟周期内并行处理的两个码字片段中的前一个码字片段之后插入空数据使得两个码字片段原拼接时所在的时钟周期被填满,对同一个时钟周期内并行处理的两个码字片段中的后一个码字片段向后进行数据移位,并在所述后一个码字片段所在码字的最后一个码字片段之后插入空数据使得所述后一个码字片段所在码字的最后一个码字片段所在的时钟周期被填满。
在本发明的一些实施例中,FEC编码模块,具体用于获取所述第二数据流中在同一个时钟周期内并行处理的两个码字片段,所述两个码字片段包括:第一码字片段和第二码字片段,所述第一码字片段的数据量大于或者等于所述第二码字片段;将所述第一码字片段通过第一FEC编码电路进行FEC编码,同时将所述第二码字片段通过第二FEC编码电路进行FEC编码,所述第一码字片段和所述第二码字片段分别被所述第一FEC编码电路和所述第二FEC编码电路处理过后生成所述第三数据流,所述第二FEC编码电路和所述第一FEC编码电路使用完全不同的可配置逻辑编码电路,或者所述第二FEC编码电路为所述第一FEC编码电路中处理所述第一码字片段之外剩余的可配置逻辑编码电路通过资源配置操作之后得到的FEC编码电路。
在本发明的一些实施例中,所述数据发送端还包括:位宽转换模块,用于所述FEC编码模块对所述多路PCS通道上的第二数据流进行前向纠错FEC编码,得到第三数据流之后,所述PMA分发模块根据并串行与串并行转换器Serdes的输入位宽将所述第三数据流分发到多路物理介质接入子层PMA通道上之前,若AM插入电路的处理位宽和FEC编码电路的处理位宽不相同,对包括所述第三数据流进行位宽转换,转换后的所述第三数据流的位宽与所述AM插入电路的处理位宽相等。
在本发明的一些实施例中,所述数据流分发模块,具体用于根据所述PCS通道的路数和每个PCS通道上承载单个字符的数据大小确定切片大小,按照所述切片大小对所述第三数据流进行切片,得到切片后的第三数据流,其中,每个切片中包括多个第三数据块;根据所述第三数据流的位宽、所述Serdes的输入位宽和切片大小确定需要分发的切片个数,从所述切片后的第三数据流中取出与所述切片个数对应的每个切片中的第三数据块,然后将与所述切片个数对应的每个切片位置相同的第三数据块叠加后分发到所述多路PMA通道中的同一路PMA通道上。
在本发明的一些实施例中,所述数据流分发模块,具体用于所述PCS通道的路数为i,所述每个PCS通道上承载单个字符的数据大小为m,对所述第三数据流切片后每个分片中的第三数据块的大小为i×m,所述第三数据流的位宽为i×m×Integer1,所述Intger1为预置的正整数;所述Serdes的输入位宽为i×m×Integer2,所述切片大小为i×m×IntegerS,则所述Integer1和所述Integer2都是IntegerS的整数倍,所述切片个数为Integer2/IntegerS,所述Intger2为预置的正整数;从每个切片中取出第n个第三数据块,将取出的共Integer2/IntegerS个的第n个第三数据块叠加后分发到第n路的PMA通道上,其中,所述n的取值为为从0到i-1的任何一个值。
通过以上实施例对本发明的描述可知,在第一数据流中插入对齐标志AM,第一数据流为经过64b/66b编码后进行转码和加扰的数据流,第一数据流的传输速率大于等于100G,将包括AM的第一数据流适配到多路物理编码子层PCS通道上,得到第二数据流,对多路PCS通道上的第二数据流进行前向纠错FEC编码,得到第三数据流,根据并串行与串并行转换器Serdes的输入位宽将第三数据流分发到多路物理介质接入子层PMA通道上,其中分发到每路PMA通道上的第三数据流包括连续完整的AM。由于本发明中对第三数据流分发到多路PMA通道上,并且每路PMA通道上可保持连续完整的AM,对于数据接收端来说就可以从多路PMA通道中获取到连续完整的AM,可以适用于数据流传输速率很高的场景,避免对AM的破坏。
请参阅图12所示,本发明实施例提供的一种数据接收端1200,可以包括:PMA解调模块1201、AM对齐和重映射模块1202、FEC解码模块1203、适配模块1204、AM移除模块1205,其中,
PMA解调模块1201,用于从多路物理介质接入子层PMA通道上接收第四数据流,对所述第四数据流进行PMA的解调制,得到PMA解调后的第三数据流;
AM对齐和重映射模块1202,用于从所述第三数据流中识别出连续完整的对齐标志AM,根据所述AM对所述第三数据流进行物理编码子层PCS通道的对齐和重映射,得到对齐和重映射后的第三数据流;
FEC解码模块1203,用于对所述对齐和重映射后的第三数据流进行前向纠错FEC解码,得到第二数据流,所述第二数据流包括所述AM;
适配模块1204,用于合并所述PCS通道上通过FEC解码得到的第二数据流,得到包括所述AM的第一数据流;
AM移除模块1205,用于将包括所述AM的第一数据流中的AM移除,得到数据编码端编码使用的原始第一数据流。
在本发明的一些实施例中,所述PMA解调模块,具体用于根据所述第四数据流的位宽、串并行转换器Serdes的输入位宽和切片大小确定需要组合的切片个数,从每一路PMA通道上获取与切片个数对应的每个切片位置相同的第三数据块分别分发到各个PCS通道上,对每个PCS通道上的第三数据块进行合并,得到合并后的第三数据流。
在本发明的一些实施例中,所述PMA解调模块,具体用于所述PCS通道的路数为i,所述每个PCS通道上承载单个字符的数据大小为m,所述第三数据流的位宽为i×m×Integer1,所述Intger1为预置的正整数;所述Serdes的输入位宽为i×m×Integer2,所述切片大小为i×m×IntegerS,则所述Integer1和所述Integer2都是IntegerS的整数倍,所述切片个数为Integer1/IntegerS,所述Intger2为预置的正整数;从每一路PMA通道上获取的每个分片中的第三数据块的大小为i×m,从第n路的PMA通道上获取共Integer1/IntegerS个的第n个第三数据块并分别分发到各个PCS通道上,对每个PCS通道上的第三数据块进行合并,得到位宽为i×m×Integer1的第三数据流。
在本发明的一些实施例中,所述数据接收端还包括:位宽转换模块,用于所述FEC解码模块对所述对齐和重映射后的第三数据流进行前向纠错FEC解码之前,若AM移除电路的处理位宽和FEC解码的处理位宽不相同,对所述对齐和重映射后的第三数据流进行位宽转换,转换位宽后的所述第三数据流的位宽与所述FEC解码电路的处理位宽相等。
在本发明的一些实施例中,所述数据接收端还包括:提频模块,用于所述FEC解码模块用于对所述对齐和重映射后的第三数据流进行前向纠错FEC解码之前,将在同一个时钟周期内并行处理的两个码字片段分到两个不同的时钟周期内进行处理并在所述两个不同的时钟周期内插入空数据,所述两个不同的时钟周期内分别包括原拼接在一个时钟周期内的两个码字片段的其中一个码字片段。
在本发明的一些实施例中,所述FEC解码模块,具体用于对所述对齐和重映射后的第三数据流中除插入的所述空数据以外的数据进行FEC解码;在对所述第三数据流进行FEC解码之后,从解码后的所述第三数据流中删除插入的所述空数据,得到所述第二数据流。
在本发明的一些实施例中,所述提频模块,具体用于在同一个时钟周期内并行处理的两个码字片段之间插入占用一个时钟周期的空数据,将原拼接在一个时钟周期内的两个码字片段的其中一个码字片段和一个时钟周期内的一部分空数据分在两个码字片段原拼接时所在的时钟周期内,将原拼接在一个时钟周期内的两个码字片段的另一个码字片段和一个时钟周期的另一部分空数据分在两个码字片段原拼接时所在的时钟周期的下一个时钟周期。
在本发明的一些实施例中,所述提频模块,具体用于在同一个时钟周期内并行处理的两个码字片段中的前一个码字片段之后插入空数据使得两个码字片段原拼接时所在的时钟周期被填满,对同一个时钟周期内并行处理的两个码字片段中的后一个码字片段向后进行数据移位,并在所述后一个码字片段所在码字的最后一个码字片段之后插入空数据使得所述后一个码字片段所在码字的最后一个码字片段所在的时钟周期被填满。
在本发明的一些实施例中,FEC解码模块,具体用于获取所述第三数据流中在同一个时钟周期内并行处理的两个码字片段,所述两个码字片段包括:第一码字片段和第二码字片段,所述第一码字片段的数据量大于或者等于所述第二码字片段;将所述第一码字片段通过第一FEC解码电路进行FEC解码,同时将所述第二码字片段通过第二FEC解码电路进行FEC解码,所述第一码字片段和所述第二码字片段分别被所述第一FEC解码电路和所述第二FEC解码电路处理后生成所述第二数据流,所述第二FEC解码电路和所述第一FEC解码电路使用完全不同的可配置逻辑编码电路,或者所述第二FEC解码电路为所述第一FEC解码电路中处理所述第一码字片段之外剩余的可配置逻辑编码电路通过资源配置操作之后得到的FEC解码电路。
在本发明的一些实施例中,所述数据接收端还包括:位宽转换模块,用于所述AM移除模块将包括所述AM的第一数据流中的AM移除之前,若AM移除电路的处理位宽和FEC解码电路的处理位宽不相同,对包括所述AM的第一数据流进行位宽转换,转换后的所述第一数据流的位宽与所述AM移除电路的位宽相等。
在本发明的一些实施例中,所述适配模块,具体用于按照全数据并行处理的粒度提取到全数据并行处理块,按照AM并行处理的粒度提取到AM并行处理块,将所述全数据处理块和所述AM并行处理块进行合并,得到包括所述AM的第一数据流。
在本发明的一些实施例中,以将包括AM的第一数据流分发到多路物理编码子层PCS通道上为例,包括:
第一数据流包括:全数据并行处理块、AM并行处理块,按照全数据并行处理的粒度将全数据并行处理块适配到多路PCS通道上,按照AM并行处理的粒度将AM并行处理块适配到多路PCS通道上。
其中,第一数据流在插入AM之前,第一数据流中包括的数据块可以为全数据,在插入AM之后第一数据流为全数据和AM混合的数据流,在对包括AM的第一数据流适配到多路PCS通道上时,对于第一数据流中全数据的数据块和AM块的大小不同的情形,本发明实施例为了把AM均匀的分布到各路PCS通道上,可以对包括AM的第一数据流采用两种不同的粒度来进行适配,具体的,对于第一数据流中的全数据,可以按照全数据并行处理的粒度将全数据并行处理块适配到多路PCS通道上,对于第一数据流中的AM,则按照AM并行处理的粒度将AM并行处理块适配到多路PCS通道上。由于AM是单独分发的,所以可以保证在多路PCS通道上的均匀分布。可以理解的是,若全数据的并行处理粒度和AM并行处理的粒度相同,则可以按照同一种粒度将包括AM的第一数据流适配到多路PCS通道上。
如图2-a所示,为本发明实施例提供的一种第一数据流适配到多路PCS通道上的实现方式示意图,如图2-b所示,为本发明实施例提供的另一种第一数据流适配到多路PCS通道上的实现方式示意图,对第一数据流适配到多路PCS通道上可以通过数据发送端中的适配模块来实现,适配模块的作用是把AM均匀的分部到各自的PCS通道上,适配模块按照并行处理块的处理模式进行处理,并行处理块根据第一数据流中的内容可以划分为两种并行处理块:全数据并行处理块和AM并行处理块。本发明采用两种粒度分别对AM和全数据进行分发处理,区别于现有技术只能按照统一粒度进行分发的分发结构,但是在AM和全数据的并行处理块相同时,本发明的两种粒度也可以是指同一种粒度,如图2-a中,本发明对于全数据并行处理块的处理方法,需要按照PCS通道上的符号或者Symbol的整数倍进行轮叫调度的轮询分发方式进行,全数据并行处理块分别被分发到PCS通道0、PCS通道1、PCS通道2、...、PCS通道i-1上,如图2-b中,本发明对于第一数据流中的AM并行处理块的处理方法,根据AM并行处理的粒度直接将AM分发到各路PCS通道上。同样是采用Round Rorbin的轮询分发方式进行分发,AM并行处理块分别被分发到PCS通道0、PCS通道1、PCS通道2、...、PCS通道i-1上,分发的粒度需要按照各条通道上的AM大小为粒度向各条通道上分发。
通过以上实施例对本发明的描述可知,从多路物理介质接入子层PMA通道上接收第三数据流,对第三数据流进行PMA的解调制,得到PMA解调后的第三数据流,从第三数据流中识别出连续完整的AM,根据AM对第三数据流进行PCS通道的对齐和重映射,得到对齐和重映射后的第三数据流,对对齐和重映射后的第三数据流进行FEC解码,得到第二数据流,第二数据流包括AM,合并PCS通道上通过FEC解码得到的第二数据流,得到包括AM的第一数据流,将包括AM的第一数据流中的AM移除,得到数据编码端编码使用的原始第一数据流。由于本发明中对第三数据流分发到多路PMA通道上,并且每路PMA通道上可保持连续完整的AM,对于数据接收端来说就可以从多路PMA通道中获取到连续完整的AM,可以适用于数据流传输速率很高的场景,避免对AM的破坏。
需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,其带来的技术效果与本发明方法实施例相同,具体内容可参见本发明前述所示的方法实施例中的叙述,此处不再赘述。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
综上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照上述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对上述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (20)

1.一种数据处理方法,其特征在于,包括:
在第一数据流中插入对多个齐标志AM,所述第一数据流为经过物理层编码后进行转码和加扰的数据流,所述第一数据流的传输速率大于等于100GPS;
将包括所述AM的第一数据流适配到多路物理编码子层PCS通道上,得到第二数据流;
对所述多路PCS通道上的第二数据流进行前向纠错FEC编码,得到第三数据流;
根据并串行与串并行转换器Serdes的输入位宽将所述第三数据流分发到多路物理介质接入子层PMA通道上,以得到多个第四数据流,所述多个第四数据流与所述多路PMA通道一一对应,其中,每个第四数据流包括连续完整至少一个AM,所述至少一个AM是所述多个AM中的AM;
所述对所述多路PCS通道上的第二数据流进行前向纠错FEC编码,得到第三数据流之后,所述根据并串行与串并行转换器Serdes的输入位宽将所述第三数据流分发到多路物理介质接入子层PMA通道上之前,所述方法还包括:
若AM插入电路的处理位宽和FEC编码电路的处理位宽不相同,对包括所述第三数据流进行位宽转换,转换后的所述第三数据流的位宽与所述AM插入电路的处理位宽相等;
所述将包括所述AM的第一数据流适配到多路物理编码子层PCS通道上之后,所述对所述多路PCS通道上的第二数据流进行前向纠错FEC编码之前,所述方法还包括:
若AM插入电路的处理位宽和FEC编码电路的处理位宽不相同,对包括所述AM的第一数据流进行位宽转换,转换后的所述第一数据流的位宽与所述FEC编码电路的处理位宽相等。
2.根据权利要求1所述的方法,其特征在于,所述将包括所述AM的第一数据流分发到多路物理编码子层PCS通道上,包括:
所述第一数据流包括:全数据并行处理块、AM并行处理块,按照全数据并行处理的粒度将所述全数据并行处理块适配到所述多路PCS通道上,按照AM并行处理的粒度将所述AM并行处理块适配到所述多路PCS通道上。
3.根据权利要求1所述的方法,其特征在于,所述对所述多路PCS通道上的第二数据流进行前向纠错FEC编码,得到第三数据流,包括:
获取所述第二数据流中在同一个时钟周期内并行处理的两个码字片段,所述两个码字片段包括:第一码字片段和第二码字片段,所述第一码字片段的数据量大于或者等于所述第二码字片段;
将所述第一码字片段通过第一FEC编码电路进行FEC编码,同时将所述第二码字片段通过第二FEC编码电路进行FEC编码,所述第一码字片段和所述第二码字片段分别被所述第一FEC编码电路和所述第二FEC编码电路处理过后生成所述第三数据流,所述第二FEC编码电路和所述第一FEC编码电路使用完全不同的可配置逻辑编码电路,或者所述第二FEC编码电路为所述第一FEC编码电路中处理所述第一码字片段之外剩余的可配置逻辑编码电路通过资源配置操作之后得到的FEC编码电路。
4.根据权利要求1所述的方法,其特征在于,所述根据并串行与串并行转换器Serdes的输入位宽将所述第三数据流分发到多路物理介质接入子层PMA通道上,包括:
根据所述PCS通道的路数和每个PCS通道上承载单个字符的数据大小确定切片大小,按照所述切片大小对所述第三数据流进行切片,得到切片后的第三数据流,其中,每个切片中包括多个第三数据块;
根据所述第三数据流的位宽、所述Serdes的输入位宽和切片大小确定需要分发的切片个数,从所述切片后的第三数据流中取出与所述切片个数对应的每个切片中的第三数据块,然后将与所述切片个数对应的每个切片位置相同的第三数据块叠加后分发到所述多路PMA通道中的同一路PMA通道上。
5.根据权利要求4所述的方法,其特征在于,所述根据所述PCS通道的路数和每个PCS通道上承载单个字符的数据大小对所述第三数据流进行切片,包括:
所述PCS通道的路数为i,所述每个PCS通道上承载单个字符的数据大小为m,对所述第三数据流切片后每个分片中的第三数据块的大小为i×m,所述第三数据流的位宽为i×m×Integer1,所述Intger1为预置的正整数;
所述根据所述第三数据流的位宽、所述Serdes的输入位宽和切片大小确定切片个数,包括:
所述Serdes的输入位宽为i×m×Integer2,所述切片大小为i×m×IntegerS,则所述Integer1和所述Integer2都是IntegerS的整数倍,所述切片个数为Integer2/IntegerS,所述Intger2为预置的正整数;
所述从所述切片后的第三数据流中取出与所述切片个数对应的每个切片中的第三数据块,然后将与所述切片个数对应的每个切片位置相同的第三数据块叠加后分发到所述多路PMA通道中的同一路PMA通道上,包括:
从每个切片中取出第n个第三数据块,将取出的共Integer2/IntegerS个的第n个第三数据块叠加后分发到第n路的PMA通道上,其中,所述n的取值为为从0到i-1的任何一个值。
6.一种数据处理方法,其特征在于,包括:
从多路物理介质接入子层PMA通道上接收第四数据流,对所述第四数据流进行PMA的解调制,得到PMA解调后的第三数据流;
从所述第三数据流中识别出连续完整的对齐标志AM,根据所述AM对所述第三数据流进行物理编码子层PCS通道的对齐和重映射,得到对齐和重映射后的第三数据流;
对所述对齐和重映射后的第三数据流进行前向纠错FEC解码,得到第二数据流,所述第二数据流包括所述AM;
合并所述PCS通道上通过FEC解码得到的第二数据流,得到包括所述AM的第一数据流;
将包括所述AM的第一数据流中的AM移除,得到数据编码端编码使用的原始第一数据流;
所述对所述对齐和重映射后的第三数据流进行前向纠错FEC解码之前,所述方法还包括:
若AM移除电路的处理位宽和FEC解码的处理位宽不相同,对所述对齐和重映射后的第三数据流进行位宽转换,转换位宽后的所述第三数据流的位宽与所述FEC解码电路的处理位宽相等;
所述将包括所述AM的第一数据流中的AM移除之前,所述方法还包括:
若AM移除电路的处理位宽和FEC解码电路的处理位宽不相同,对包括所述AM的第一数据流进行位宽转换,转换后的所述第一数据流的位宽与所述AM移除电路的位宽相等。
7.根据权利要求6所述的方法,其特征在于,所述对所述第四数据流进行PMA的解调制,得到PMA解调后的第三数据流,包括:
根据所述第四数据流的位宽、串并行转换器Serdes的输入位宽和切片大小确定需要组合的切片个数,从每一路PMA通道上获取与切片个数对应的每个切片位置相同的第三数据块分别分发到各个PCS通道上,对每个PCS通道上的第三数据块进行合并,得到合并后的第三数据流。
8.根据权利要求7所述的方法,其特征在于,所述根据所述第四数据流的位宽、所述Serdes的输入位宽和切片大小确定切片个数,从每一路PMA通道上获取与切片个数对应的每个切片位置相同的第三数据块分别分发到各个PCS通道上,对每个PCS通道上的第三数据块进行合并,得到合并后的第三数据流,包括:
所述PCS通道的路数为i,所述每个PCS通道上承载单个字符的数据大小为m,所述第三数据流的位宽为i×m×Integer1,所述Intger1为预置的正整数;
所述Serdes的输入位宽为i×m×Integer2,所述切片大小为i×m×IntegerS,则所述Integer1和所述Integer2都是IntegerS的整数倍,所述切片个数为Integer1/IntegerS,所述Intger2为预置的正整数;
从每一路PMA通道上获取的每个分片中的第三数据块的大小为i×m,从第n路的PMA通道上获取共Integer1/IntegerS个的第n个第三数据块并分别分发到各个PCS通道上,对每个PCS通道上的第三数据块进行合并,得到位宽为i×m×Integer1的第三数据流。
9.根据权利要求6所述的方法,其特征在于,所述对所述对齐和重映射后的第三数据流进行前向纠错FEC解码,得到第二数据流,包括:
获取所述第三数据流中在同一个时钟周期内并行处理的两个码字片段,所述两个码字片段包括:第一码字片段和第二码字片段,所述第一码字片段的数据量大于或者等于所述第二码字片段;
将所述第一码字片段通过第一FEC解码电路进行FEC解码,同时将所述第二码字片段通过第二FEC解码电路进行FEC解码,所述第一码字片段和所述第二码字片段分别被所述第一FEC解码电路和所述第二FEC解码电路处理后生成所述第二数据流,所述第二FEC解码电路和所述第一FEC解码电路使用完全不同的可配置逻辑编码电路,或者所述第二FEC解码电路为所述第一FEC解码电路中处理所述第一码字片段之外剩余的可配置逻辑编码电路通过资源配置操作之后得到的FEC解码电路。
10.根据权利要求6所述的方法,其特征在于,所述合并所述PCS通道上解码后的第二数据流,得到包括所述AM的第一数据流,包括:
按照全数据并行处理的粒度提取到全数据并行处理块,按照AM并行处理的粒度提取到AM并行处理块,将所述全数据处理块和所述AM并行处理块进行合并,得到包括所述AM的第一数据流。
11.一种数据发送端,其特征在于,包括:
AM插入模块,用于在第一数据流中插入多个对齐标志AM,所述第一数据流为经过物理层编码后进行转码和加扰的数据流,所述第一数据流的传输速率大于等于100GPS;
适配模块,用于将包括所述AM的第一数据流适配到多路物理编码子层PCS通道上,得到第二数据流;
FEC编码模块,用于对所述多路PCS通道上的第二数据流进行前向纠错FEC编码,得到第三数据流;
数据流分发模块,用于根据并串行与串并行转换器Serdes的输入位宽将所述第三数据流分发到多路物理介质接入子层PMA通道上,以得到多个第四数据流,所述多个第四数据流与所述多路PMA通道一一对应,其中,每个第四数据流包括连续完整至少一个AM,所述至少一个AM是所述多个AM中的AM;
所述数据发送端还包括:位宽转换模块,用于所述FEC编码模块对所述多路PCS通道上的第二数据流进行前向纠错FEC编码,得到第三数据流之后,所述PMA分发模块根据并串行与串并行转换器Serdes的输入位宽将所述第三数据流分发到多路物理介质接入子层PMA通道上之前,若AM插入电路的处理位宽和FEC编码电路的处理位宽不相同,对包括所述第三数据流进行位宽转换,转换后的所述第三数据流的位宽与所述AM插入电路的处理位宽相等;
所述数据发送端还包括:位宽变换模块,用于所述适配模块将包括所述AM的第一数据流适配到多路物理编码子层PCS通道上之后,所述FEC编码模块对所述多路PCS通道上的第二数据流进行前向纠错FEC编码之前,若AM插入电路的处理位宽和FEC编码电路的处理位宽不相同,对包括所述AM的第一数据流进行位宽转换,转换后的所述第一数据流的位宽与所述FEC编码电路的处理位宽相等。
12.根据权利要求11所述的数据发送端,其特征在于,所述适配模块,具体用于所述第一数据流包括:全数据并行处理块、AM并行处理块,按照全数据并行处理的粒度将所述全数据并行处理块适配到所述多路PCS通道上,按照AM并行处理的粒度将所述AM并行处理块适配到所述多路PCS通道上。
13.根据权利要求11所述的数据发送端,其特征在于,所述FEC编码模块,具体用于获取所述第二数据流中在同一个时钟周期内并行处理的两个码字片段,所述两个码字片段包括:第一码字片段和第二码字片段,所述第一码字片段的数据量大于或者等于所述第二码字片段;将所述第一码字片段通过第一FEC编码电路进行FEC编码,同时将所述第二码字片段通过第二FEC编码电路进行FEC编码,所述第一码字片段和所述第二码字片段分别被所述第一FEC编码电路和所述第二FEC编码电路处理过后生成所述第三数据流,所述第二FEC编码电路和所述第一FEC编码电路使用完全不同的可配置逻辑编码电路,或者所述第二FEC编码电路为所述第一FEC编码电路中处理所述第一码字片段之外剩余的可配置逻辑编码电路通过资源配置操作之后得到的FEC编码电路。
14.根据权利要求11所述的数据发送端,其特征在于,所述数据流分发模块,具体用于根据所述PCS通道的路数和每个PCS通道上承载单个字符的数据大小确定切片大小,按照所述切片大小对所述第三数据流进行切片,得到切片后的第三数据流,其中,每个切片中包括多个第三数据块;根据所述第三数据流的位宽、所述Serdes的输入位宽和切片大小确定需要分发的切片个数,从所述切片后的第三数据流中取出与所述切片个数对应的每个切片中的第三数据块,然后将与所述切片个数对应的每个切片位置相同的第三数据块叠加后分发到所述多路PMA通道中的同一路PMA通道上。
15.根据权利要求14所述的数据发送端,其特征在于,所述数据流分发模块,具体用于所述PCS通道的路数为i,所述每个PCS通道上承载单个字符的数据大小为m,对所述第三数据流切片后每个分片中的第三数据块的大小为i×m,所述第三数据流的位宽为i×m×Integer1,所述Intger1为预置的正整数;所述Serdes的输入位宽为i×m×Integer2,所述切片大小为i×m×IntegerS,则所述Integer1和所述Integer2都是IntegerS的整数倍,所述切片个数为Integer2/IntegerS,所述Intger2为预置的正整数;从每个切片中取出第n个第三数据块,将取出的共Integer2/IntegerS个的第n个第三数据块叠加后分发到第n路的PMA通道上,其中,所述n的取值为为从0到i-1的任何一个值。
16.一种数据接收端,其特征在于,包括:
PMA解调模块,用于从多路物理介质接入子层PMA通道上接收第四数据流,对所述第四数据流进行PMA的解调制,得到PMA解调后的第三数据流;
AM对齐和重映射模块,用于从所述第三数据流中识别出连续完整的对齐标志AM,根据所述AM对所述第三数据流进行物理编码子层PCS通道的对齐和重映射,得到对齐和重映射后的第三数据流;
FEC解码模块,用于对所述对齐和重映射后的第三数据流进行前向纠错FEC解码,得到第二数据流,所述第二数据流包括所述AM;
适配模块,用于合并所述PCS通道上通过FEC解码得到的第二数据流,得到包括所述AM的第一数据流;
AM移除模块,用于将包括所述AM的第一数据流中的AM移除,得到数据编码端编码使用的原始第一数据流;
所述数据接收端还包括:位宽转换模块,用于所述FEC解码模块对所述对齐和重映射后的第三数据流进行前向纠错FEC解码之前,若AM移除电路的处理位宽和FEC解码的处理位宽不相同,对所述对齐和重映射后的第三数据流进行位宽转换,转换位宽后的所述第三数据流的位宽与所述FEC解码电路的处理位宽相等;
所述数据接收端还包括:位宽转换模块,用于所述AM移除模块将包括所述AM的第一数据流中的AM移除之前,若AM移除电路的处理位宽和FEC解码电路的处理位宽不相同,对包括所述AM的第一数据流进行位宽转换,转换后的所述第一数据流的位宽与所述AM移除电路的位宽相等。
17.根据权利要求16所述的数据接收端,其特征在于,所述PMA解调模块,具体用于根据所述第四数据流的位宽、串并行转换器Serdes的输入位宽和切片大小确定需要组合的切片个数,从每一路PMA通道上获取与切片个数对应的每个切片位置相同的第三数据块分别分发到各个PCS通道上,对每个PCS通道上的第三数据块进行合并,得到合并后的第三数据流。
18.根据权利要求16所述的数据接收端,其特征在于,所述PMA解调模块,具体用于所述PCS通道的路数为i,所述每个PCS通道上承载单个字符的数据大小为m,所述第三数据流的位宽为i×m×Integer1,所述Intger1为预置的正整数;所述Serdes的输入位宽为i×m×Integer2,所述切片大小为i×m×IntegerS,则所述Integer1和所述Integer2都是IntegerS的整数倍,所述切片个数为Integer1/IntegerS,所述Intger2为预置的正整数;从每一路PMA通道上获取的每个分片中的第三数据块的大小为i×m,从第n路的PMA通道上获取共Integer1/IntegerS个的第n个第三数据块并分别分发到各个PCS通道上,对每个PCS通道上的第三数据块进行合并,得到位宽为i×m×Integer1的第三数据流。
19.根据权利要求16所述的数据接收端,其特征在于,所述FEC解码模块,具体用于获取所述第三数据流中在同一个时钟周期内并行处理的两个码字片段,所述两个码字片段包括:第一码字片段和第二码字片段,所述第一码字片段的数据量大于或者等于所述第二码字片段;将所述第一码字片段通过第一FEC解码电路进行FEC解码,同时将所述第二码字片段通过第二FEC解码电路进行FEC解码,所述第一码字片段和所述第二码字片段分别被所述第一FEC解码电路和所述第二FEC解码电路处理后生成所述第二数据流,所述第二FEC解码电路和所述第一FEC解码电路使用完全不同的可配置逻辑编码电路,或者所述第二FEC解码电路为所述第一FEC解码电路中处理所述第一码字片段之外剩余的可配置逻辑编码电路通过资源配置操作之后得到的FEC解码电路。
20.根据权利要求16所述的数据接收端,其特征在于,所述适配模块,具体用于按照全数据并行处理的粒度提取到全数据并行处理块,按照AM并行处理的粒度提取到AM并行处理块,将所述全数据处理块和所述AM并行处理块进行合并,得到包括所述AM的第一数据流。
CN201580000680.XA 2015-04-23 2015-07-09 一种数据处理方法和数据发送端以及接收端 Active CN106464427B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010238838.XA CN111431666B (zh) 2015-04-23 2015-07-09 一种数据处理方法和数据发送端以及接收端

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN2015077319 2015-04-23
CNPCT/CN2015/077319 2015-04-23
PCT/CN2015/083693 WO2016169133A1 (zh) 2015-04-23 2015-07-09 一种数据处理方法和数据发送端以及接收端

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202010238838.XA Division CN111431666B (zh) 2015-04-23 2015-07-09 一种数据处理方法和数据发送端以及接收端

Publications (2)

Publication Number Publication Date
CN106464427A CN106464427A (zh) 2017-02-22
CN106464427B true CN106464427B (zh) 2020-04-14

Family

ID=57142887

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202010238838.XA Active CN111431666B (zh) 2015-04-23 2015-07-09 一种数据处理方法和数据发送端以及接收端
CN201580000680.XA Active CN106464427B (zh) 2015-04-23 2015-07-09 一种数据处理方法和数据发送端以及接收端

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202010238838.XA Active CN111431666B (zh) 2015-04-23 2015-07-09 一种数据处理方法和数据发送端以及接收端

Country Status (5)

Country Link
US (2) US10491370B2 (zh)
EP (2) EP3264652B1 (zh)
CN (2) CN111431666B (zh)
ES (1) ES2852748T3 (zh)
WO (1) WO2016169133A1 (zh)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9331714B1 (en) * 2013-04-26 2016-05-03 Altera Corporation Circuit structure and method for high-speed forward error correction
CN106341207A (zh) * 2015-07-06 2017-01-18 华为技术有限公司 一种编码块数据流的发送和接收方法、设备和系统
US20170170927A1 (en) * 2015-12-11 2017-06-15 Broadcom Corporation Network Interface Port Modes
US11032103B2 (en) 2017-03-08 2021-06-08 Credo Technology Group Limited Ethernet link extension method and device
US10212260B2 (en) * 2017-07-19 2019-02-19 Credo Technology Group Limited SerDes architecture with a hidden backchannel protocol
US11101923B2 (en) * 2017-12-27 2021-08-24 Intel Corporation Receiver circuitry for physical coding sublayer
US11153191B2 (en) * 2018-01-19 2021-10-19 Intel Corporation Technologies for timestamping with error correction
CN110875798B (zh) * 2018-09-03 2022-08-02 中国科学院上海高等研究院 一种可扩展式物理编码子层
CN110971388B (zh) * 2018-09-29 2022-02-18 华为技术有限公司 用于在网络设备和远端设备通信的方法、装置及设备
US11265096B2 (en) 2019-05-13 2022-03-01 Intel Corporation High accuracy time stamping for multi-lane ports
EP3996330A4 (en) * 2019-07-27 2022-10-12 Huawei Technologies Co., Ltd. METHOD FOR IMPROVING TRANSMISSION SPEED, PROCESSOR, NETWORK DEVICE, AND NETWORK SYSTEM
CN111082846B (zh) * 2019-11-14 2022-03-11 天津融汇微电子技术有限公司 一种基于serdes的一分四中继器使用方法
CN111162869B (zh) * 2019-12-06 2021-08-03 华为技术有限公司 一种数据流处理方法及装置
US11356122B2 (en) * 2020-03-13 2022-06-07 Marvell Asia Pte Ltd. Systems and methods for interleaved hamming encoding and decoding
US11349704B2 (en) 2020-06-17 2022-05-31 Credo Technology Group Limited Physical layer interface with redundant data paths
US11646959B2 (en) 2020-07-20 2023-05-09 Credo Technology Group Limited Active ethernet cable with broadcasting and multiplexing for data path redundancy
CN112383382B (zh) * 2020-11-02 2022-04-01 普联技术有限公司 一种多空间流数据分配的方法及装置
US11356302B1 (en) 2020-11-30 2022-06-07 Credo Technology Group Limited Equalizer training during link speed negotiation
CN114584333A (zh) * 2020-12-02 2022-06-03 华为技术有限公司 一种数据传输方法、通信装置及通信系统
WO2022155968A1 (zh) * 2021-01-25 2022-07-28 华为技术有限公司 调节链路宽度的方法及装置
CN112925557B (zh) * 2021-01-28 2023-09-05 长沙市到家悠享网络科技有限公司 数据处理装置、方法及计算设备
CN114978412A (zh) * 2021-02-26 2022-08-30 华为技术有限公司 一种数据编码方法、数据译码方法及相关设备
CN115037287B (zh) 2021-03-05 2023-07-28 默升科技集团有限公司 扩频时钟转换器
US11575391B2 (en) 2021-03-18 2023-02-07 Marvell Asia Pte Ltd. Inner FEC encoding systems and methods
CN113099133A (zh) * 2021-03-30 2021-07-09 深圳裹动智驾科技有限公司 串行解串器链路传输高带宽相机数据的方法
US11424968B1 (en) 2021-06-10 2022-08-23 Credo Technology Group Limited Retimer training during link speed negotiation and link training
CN114265624B (zh) * 2022-03-02 2022-06-14 苏州联讯仪器有限公司 一种am码的插入方法、装置及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101640582A (zh) * 2008-07-28 2010-02-03 大唐移动通信设备有限公司 一种数据传输方法、系统及装置
CN103534971A (zh) * 2013-05-17 2014-01-22 华为技术有限公司 一种fec编解码的数据处理方法和相关装置
CN103875205A (zh) * 2013-09-13 2014-06-18 华为技术有限公司 传输数据的方法和装置
CN104426629A (zh) * 2013-08-30 2015-03-18 华为技术有限公司 一种物理层编解码方法及其装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2207315B1 (en) 2009-01-09 2012-03-07 Alcatel Lucent Transmission of parallel data flows on a parallel bus
US8984380B2 (en) * 2011-07-01 2015-03-17 Altera Corporation Method and system for operating a communication circuit configurable to support one or more data rates
US8767762B2 (en) * 2012-06-22 2014-07-01 Texas Instruments Incorporated Physical transceiver gearbox
CN102752211B (zh) * 2012-07-11 2014-12-03 烽火通信科技股份有限公司 自动捕获10g epon报文的定时装置及方法
WO2014071640A1 (zh) * 2012-11-12 2014-05-15 华为技术有限公司 以太数据处理的方法和装置
US9461941B2 (en) * 2013-06-25 2016-10-04 Brocade Communications Systems, Inc. 128 Gigabit fibre channel physical architecture
CN104426631B (zh) * 2013-09-06 2018-03-06 华为技术有限公司 对数据进行处理的方法及装置
US9088403B1 (en) * 2014-03-24 2015-07-21 Applied Micro Circuts Corporation Identification codewords for a rate-adapted version of a data stream
US9602401B2 (en) * 2014-09-22 2017-03-21 Intel Corporation Technologies for high-speed PCS supporting FEC block synchronization with alignment markers
CN104539389B (zh) 2014-12-12 2018-02-02 盛科网络(苏州)有限公司 复用10GBase‑X4与40GBase‑R4 PCS去抖动的装置和方法
US10404402B2 (en) * 2017-09-22 2019-09-03 Cisco Technology, Inc. Security protection of terabit ethernet PCS layer using alignment markers

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101640582A (zh) * 2008-07-28 2010-02-03 大唐移动通信设备有限公司 一种数据传输方法、系统及装置
CN103534971A (zh) * 2013-05-17 2014-01-22 华为技术有限公司 一种fec编解码的数据处理方法和相关装置
CN104426629A (zh) * 2013-08-30 2015-03-18 华为技术有限公司 一种物理层编解码方法及其装置
CN103875205A (zh) * 2013-09-13 2014-06-18 华为技术有限公司 传输数据的方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
802.3bj FEC Overview and Status 400GbE PCS Options;MARK GUSTLIN XILINX;《IEEE DRAFT》;20140724;说明书第6页第2附图,第7页,第9页,第13页 *

Also Published As

Publication number Publication date
EP3264652A4 (en) 2018-04-04
US20200067692A1 (en) 2020-02-27
CN111431666A (zh) 2020-07-17
CN111431666B (zh) 2022-05-31
US20180041332A1 (en) 2018-02-08
WO2016169133A1 (zh) 2016-10-27
ES2852748T3 (es) 2021-09-14
EP3843307A1 (en) 2021-06-30
EP3264652A1 (en) 2018-01-03
US10491370B2 (en) 2019-11-26
US11165556B2 (en) 2021-11-02
EP3264652B1 (en) 2020-12-16
CN106464427A (zh) 2017-02-22

Similar Documents

Publication Publication Date Title
CN106464427B (zh) 一种数据处理方法和数据发送端以及接收端
US11296722B2 (en) Integrated physical coding sublayer and forward error correction in networking applications
US10153989B2 (en) 128 gigabit fibre channel physical architecture
CN107888516B (zh) 一种承载业务的方法、设备和系统
US9235540B1 (en) Flexible high speed forward error correction (FEC) physical medium attachment (PMA) and physical coding sublayer (PCS) connection system
CN114422284B (zh) 一种业务传递方法、设备及存储介质
US20130208771A1 (en) Transcoding scheme techniques
CN111669250B (zh) 数据传输方法、装置及系统
TW202201941A (zh) 接收裝置及接收方法
CN101977092B (zh) 前向纠错映射和去映射技术
CN111385058A (zh) 一种数据传输的方法和装置
CN111162869B (zh) 一种数据流处理方法及装置
JP2017510155A (ja) 制御コードのためのポインタの生成を含む、受信されたシンボルを集約およびエンコーディングするための方法および装置
CN105993179B (zh) 数据处理装置以及数据处理方法
CN108628697B (zh) 一种基于二进制的节点修复方法及系统
WO2023040466A1 (zh) 一种编码方法、译码方法以及相关装置
US11121790B2 (en) Latency reduction in ethernet frames
EP4287533A1 (en) Design method for forward error correction (fec) and related device
WO2016106650A1 (zh) 一种数据处理方法和设备
WO2015084895A1 (en) Optical transceiver and data mapping method using thereof
BR102013007917A2 (pt) Método e aparelho para um controlador de taxa de dados para um esquema de multiplexação de bloco de código

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