CN105210333B - 数据处理方法及装置 - Google Patents

数据处理方法及装置 Download PDF

Info

Publication number
CN105210333B
CN105210333B CN201480024928.1A CN201480024928A CN105210333B CN 105210333 B CN105210333 B CN 105210333B CN 201480024928 A CN201480024928 A CN 201480024928A CN 105210333 B CN105210333 B CN 105210333B
Authority
CN
China
Prior art keywords
data
matrix
data flow
cell
data cell
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
CN201480024928.1A
Other languages
English (en)
Other versions
CN105210333A (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
Publication of CN105210333A publication Critical patent/CN105210333A/zh
Application granted granted Critical
Publication of CN105210333B publication Critical patent/CN105210333B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Error Detection And Correction (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例提供了一种数据处理方法及装置,变换电路接收的M个数据流中每个数据流包括n个数据单元,所述M个数据流对应M×n的矩阵,所述M×n的矩阵中的每个元素是一个数据单元,所述变换电路利用所述M×n的矩阵中的n个M×1的矩阵中的M个数据单元生成N个数据流,生成所述N个数据流具体包括利用所述n个M×1的矩阵中的每个M×1的矩阵生成至少一个数据流,可见,进行数据处理的变换电路在进行从M个数据流到N个数据流的数据处理时,数据处理前的M个数据流对应一个M×n的矩阵。分别对所述M×n的矩阵中的n个M×1的矩阵进行数据处理,从而得到了N个数据流。上述方案中,数据处理比较灵活,有助于满足以太网的发展要求。

Description

数据处理方法及装置
技术领域
本发明涉及通信技术领域,尤其是涉及数据处理方法及装置。
背景技术
随着互联网的发展,电信骨干网的流量每年正以50%-80%的速度飞速增长。2015年的网络流量可能是2010年的网络流量的十倍。未来以太网接口可能会存在400千兆比特以太网(英文:gigabit ethernet,简称:GE)以及1太比特以太网(英文:terabit ethernet,简称:TE)两种规格。
在以太网中,根据需求的不同,存在具有支持不同传输速率或者位宽的传输电路。在以太网总速率一定的前提下,传输电路的单个数据接口所支持的传输速率大小与数据接口个数成反比。比如总速率为400千兆比特(英文:gigabit,简称:G)的以太网中,可以通过16个支持25G速率的数据接口的传输电路A实现,也可以通过8个支持50G速率的数据接口的传输电路B。当传输电路A需要向传输电路B传输数据时,则需要将传输电路A中的16个数据流变换为8个数据流再传输到传输电路B。反之,当传输电路B需要向传输电路A传输数据时,需要将传输电路B中的8个数据流变换为16个数据流再传输到传输电路A。另外,还存在不改变数据流个数的数据处理。比如,传输电路C和传输电路D包括相同个数的数据接口,例如都包含16个支持25G速率的数据接口。在传输电路C向传输电路D传输数据的过程中,数据流中的数据排列顺序发生变化。上述变换统称为数据处理。其中,数据处理前后数据流的个数发生改变的情况下,发生了数据流位宽的变化。上述数据处理也可以被称为位宽变换。经过数据处理后的数据流通过数据传输到达接收设备后,接收设备可以对数据流进行数据处理的反向操作,以便将这些经过数据处理的数据流恢复成未进行过数据处理的数据流。
目前,数据处理可以通过对数据流进行交织或者解交织实现。具体来说,将多个数据流交织成一个数据流。或者,将交织后的一个数据流解交织成多个数据流。如图1所展示的便是一种典型的将两个数据流交织成一个数据流的过程。数据流L1包括6个数据单元,分别是01至06。数据流L2也包括6个数据单元,分别是07至12。通过对L1和L2进行交织,得到一个包括12个数据单元的数据流L3。上述方式可以将传输速率提高一倍。从16个25G速率变换到8个50G速率的数据处理可以通过图1所示的方式实现。
目前通过交织方式的数据处理中,数据处理后的多个数据流的速率必须相同。另外,交织的方式具体为多个数据流交织成一个数据流。目前的数据处理只能支持整数倍系数的数据处理。比如,16个数据流被变换为8个数据流(16为8的整数2倍)。8个数据流被变换为4个数据流(8为4的整数2倍)。或者,通过解交织的方式,4个数据流被变换为8个数据流。上述技术方案中,数据处理前后的数据流个数需要符合特定的约束条件,不灵活。
然而随着以太网的发展,以太网接口的传输速率可能会越来越多。比如,在400G的以太网中,如果通过16个支持25G的速率的数据接口的传输电路A需要和通过10个支持40G的速率的数据接口的传输电路C进行数据传输,目前通过现有技术的数据处理是无法实现的。限定了以太网的发展。
发明内容
本发明解决的技术问题在于提供数据处理方法及装置,用于实现灵活的数据处理,以满足以太网的发展要求。
第一方面,本发明提供了一种数据处理方法,所述方法包括:
变换电路通过M个接收端口接收M个数据流,所述M个数据流中每个数据流包括n个数据单元,所述M个接收端口与所述M个数据流一一对应,所述M个数据流对应M×n的矩阵,所述M×n的矩阵中的每个元素是一个数据单元,所述M×n的矩阵包括M个1×n的矩阵,所述M个1×n的矩阵中每个1×n的矩阵对应1个数据流,所述M个1×n的矩阵与所述M个数据流一一对应,所述M个1×n的矩阵中每个1×n的矩阵中的n个数据单元分别是对应的数据流中的n个数据单元,所述M个1×n的矩阵中每个1×n的矩阵中的n个数据单元中的任意两个数据单元中位于右边的数据单元被所述变换电路接收的时间早于位于左边的数据单元被所述变换电路接收的时间;
所述变换电路分别利用所述M×n的矩阵中的n个M×1的矩阵中的M个数据单元生成N个数据流,生成所述N个数据流具体包括利用所述n个M×1的矩阵中的每个M×1的矩阵生成至少一个数据流;以及
所述变换电路通过N个输出端口发送所述N个数据流,所述N个输出端口与所述N个数据流一一对应,其中M和N都是正整数。
在第一方面的第一种可能的实现方式中,
所述至少一个数据流由M个数据单元组成,所述n个M×1的矩阵中的第i个M×1的矩阵中的M个数据单元与利用所述第i个M×1的矩阵中的M个数据单元生成的至少一个数据流中包含的M个数据单元相同,所述N个数据流中每个数据流包括的数据单元个数相同。
结合第一方面或者第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述N个数据流中每个数据流中相邻的两个数据单元来自不同的码字codeword。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,
所述N个数据流中每个数据流中相邻的两个数据单元是同一个前向纠错FEC电路输出的数据单元,或者
所述N个数据流中每个数据流中相邻的两个数据单元分别是两个FEC电路输出的数据单元。
结合第一方面或者第一方面的第一种或第二种或第三种可能的实现方式,在第四种可能的实现方式中,
所述变换电路利用所述n个M×1的矩阵中的M个数据单元生成所述N个数据流具体包括利用第j个M×1的矩阵中的M个数据单元生成由M个数据单元组成的至少一个数据流,其中,利用第j个M×1的矩阵中的M个数据单元生成由M个数据单元组成的至少一个数据流具体包括:
所述变换电路对X组数据单元进行交织以生成由M个数据单元组成的一个数据流,所述第j个M×1的矩阵中的M个数据单元具体包括所述X组数据单元,每组数据单元中数据单元的数量为M/X,所述X组数据单元中任一组数据单元中数据单元所来自的码字与所述X组数据单元中其他组数据单元中数据单元所来自的码字不同,X为大于1的整数。
结合第一方面或者第一方面的第一种或第二种或第三种可能的实现方式,在第五种可能的实现方式中,
所述变换电路利用所述n个M×1的矩阵中的M个数据单元生成所述N个数据流具体包括利用第j个M×1的矩阵中的M个数据单元生成由M个数据单元组成的至少一个数据流,其中,利用第j个M×1的矩阵中的M个数据单元生成由M个数据单元组成的至少一个数据流具体包括:
所述变换电路对P个集合中每个集合中的Q组数据单元进行交织以生成由M个数据单元组成的P个数据流,所述第j个M×1的矩阵中的M个数据单元与所述P个集合中的所有的数据单元相同,所述P个集合中的每个集合由Q组数据单元组成,所述Q组数据单元中任一组数据单元中数据单元所来自的码字与所述Q组数据单元中其他组数据单元中数据单元所来自的码字不同,每组数据单元中数据单元的数量为M/(P×Q),P和Q都为大于1的整数。
在第一方面的第六种可能的实现方式中,
所述M×n的矩阵中的每个数据单元由k个子数据单元组成,所述至少一个数据流由M×k个子数据单元组成,所述n个M×1的矩阵中的第i个M×1的矩阵中的M×k个子数据单元与利用所述第i个M×1的矩阵中的M×k个子数据单元生成的至少一个数据流中包含的M×k个子数据单元相同,所述N个数据流中每个数据流包括的子数据单元个数相同。
结合第一方面或第一方面的第六种可能的实现方式,在第七种可能的实现方式中,
所述N个数据流中每个数据流中相邻的两个子数据单元来自不同的码字codeword。
结合第一方面的第七种可能的实现方式,在第八种可能的实现方式中,
所述N个数据流中每个数据流中相邻的两个子数据单元分别属于同一个前向纠错FEC电路输出的两个数据单元,或者
所述N个数据流中每个数据流中相邻的两个子数据单元分别来自两个FEC电路。
结合第一方面或第一方面的第六种或第七种或第八种可能的实现方式,在第九种可能的实现方式中,
所述变换电路利用所述n个M×1的矩阵中的M×k个子数据单元生成所述N个数据流具体包括利用第j个M×1的矩阵中的M×k个子数据单元生成由M×k个子数据单元组成的至少一个数据流,其中,利用第j个M×1的矩阵中的M×k个子数据单元生成由M×k个子数据单元组成的至少一个数据流具体包括:
所述变换电路对X组子数据单元进行交织以生成由M×k个子数据单元组成的一个数据流,所述第j个M×1的矩阵中的M×k个子数据单元具体包括所述X组子数据单元,每组子数据单元中子数据单元的数量为(M×k)/X,所述X组子数据单元中任一组子数据单元中子数据单元所来自的码字与所述X组子数据单元中其他组子数据单元中子数据单元所来自的码字不同,X为大于1的整数。
结合第一方面或第一方面的第六种或第七种或第八种可能的实现方式,在第十种可能的实现方式中,
所述变换电路利用所述n个M×1的矩阵中的M×k个子数据单元生成所述N个数据流具体包括利用第j个M×1的矩阵中的M×k个子数据单元生成由M×k个子数据单元组成的至少一个数据流,其中,利用第j个M×1的矩阵中的M×k个子数据单元生成由M×k个子数据单元组成的至少一个数据流具体包括:
所述变换电路对P个集合中每个集合中的Q组子数据单元进行交织以生成由M×k个子数据单元组成的P个数据流,所述第j个M×1的矩阵中的M×k个子数据单元与所述P个集合中的所有的子数据单元相同,所述P个集合中的每个集合由Q组子数据单元组成,所述Q组子数据单元中任一组子数据单元中子数据单元所来自的码字与所述Q组子数据单元中其他组子数据单元中子数据单元所来自的码字不同,每组子数据单元中子数据单元的数量为(M×k)/(P×Q),P和Q都为大于1的整数。
第二方面,本发明提供了一种数据处理装置,所述装置包括:
接收单元,用于通过M个接收端口接收M个数据流,所述M个数据流中每个数据流包括n个数据单元,所述M个接收端口与所述M个数据流一一对应,所述M个数据流对应M×n的矩阵,所述M×n的矩阵中的每个元素是一个数据单元,所述M×n的矩阵包括M个1×n的矩阵,所述M个1×n的矩阵中每个1×n的矩阵对应1个数据流,所述M个1×n的矩阵与所述M个数据流一一对应,所述M个1×n的矩阵中每个1×n的矩阵中的n个数据单元分别是对应的数据流中的n个数据单元,所述M个1×n的矩阵中每个1×n的矩阵中的n个数据单元中的任意两个数据单元中位于右边的数据单元被所述变换电路接收的时间早于位于左边的数据单元被所述变换电路接收的时间;
生成单元,用于分别利用所述M×n的矩阵中的n个M×1的矩阵中的M个数据单元生成N个数据流,生成所述N个数据流具体包括利用所述n个M×1的矩阵中的每个M×1的矩阵生成至少一个数据流;以及
输出单元,用于通过N个输出端口发送所述N个数据流,所述N个输出端口与所述N个数据流一一对应,其中M和N都是正整数。
在第二方面的第一种可能的实现方式中,
所述生成单元生成的至少一个数据流由M个数据单元组成,所述n个M×1的矩阵中的第i个M×1的矩阵中的M个数据单元与利用所述第i个M×1的矩阵中的M个数据单元生成的至少一个数据流中包含的M个数据单元相同,所述N个数据流中每个数据流包括的数据单元个数相同。
结合第二方面或者第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述生成单元生成的所述N个数据流中每个数据流中相邻的两个数据单元来自不同的码字codeword。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,
所述生成单元生成的所述N个数据流中每个数据流中相邻的两个数据单元是同一个前向纠错FEC电路输出的数据单元,或者
所述生成单元生成的所述N个数据流中每个数据流中相邻的两个数据单元分别是两个FEC电路输出的数据单元。
结合第二方面或者第二方面的第一种或第二种或第三种可能的实现方式,在第四种可能的实现方式中,
所述生成单元利用第j个M×1的矩阵中的M个数据单元生成由M个数据单元组成的至少一个数据流,其中,利用第j个M×1的矩阵中的M个数据单元生成由M个数据单元组成的至少一个数据流具体包括:
所述生成单元对X组数据单元进行交织以生成由M个数据单元组成的一个数据流,所述第j个M×1的矩阵中的M个数据单元具体包括所述X组数据单元,每组数据单元中数据单元的数量为M/X,所述X组数据单元中任一组数据单元中数据单元所来自的码字与所述X组数据单元中其他组数据单元中数据单元所来自的码字不同,X为大于1的整数。
结合第二方面或者第二方面的第一种或第二种或第三种可能的实现方式,在第五种可能的实现方式中,
所述生成单元利用第j个M×1的矩阵中的M个数据单元生成由M个数据单元组成的至少一个数据流,其中,利用第j个M×1的矩阵中的M个数据单元生成由M个数据单元组成的至少一个数据流具体包括:
所述生成单元对P个集合中每个集合中的Q组数据单元进行交织以生成由M个数据单元组成的P个数据流,所述第j个M×1的矩阵中的M个数据单元与所述P个集合中的所有的数据单元相同,所述P个集合中的每个集合由Q组数据单元组成,所述Q组数据单元中任一组数据单元中数据单元所来自的码字与所述Q组数据单元中其他组数据单元中数据单元所来自的码字不同,每组数据单元中数据单元的数量为M/(P×Q),P和Q都为大于1的整数。
在第二方面的第六种可能的实现方式中,
所述M×n的矩阵中的每个数据单元由k个子数据单元组成,所述生成单元生成的所述至少一个数据流由M×k个子数据单元组成,所述n个M×1的矩阵中的第i个M×1的矩阵中的M×k个子数据单元与利用所述第i个M×1的矩阵中的M×k个子数据单元生成的至少一个数据流中包含的M×k个子数据单元相同,所述N个数据流中每个数据流包括的子数据单元个数相同。
结合第二方面或第二方面的第六种可能的实现方式,在第七种可能的实现方式中,
所述生成单元生成的所述N个数据流中每个数据流中相邻的两个子数据单元来自不同的码字codeword。
结合第二方面的第七种可能的实现方式,在第八种可能的实现方式中,
所述生成单元生成的所述N个数据流中每个数据流中相邻的两个子数据单元分别属于同一个前向纠错FEC电路输出的两个数据单元,或者
所述生成单元生成的所述N个数据流中每个数据流中相邻的两个子数据单元分别来自两个FEC电路。
结合第二方面或第二方面的第六种或第七种或第八种可能的实现方式,在第九种可能的实现方式中,
所述生成单元利用所述n个M×1的矩阵中的M×k个子数据单元生成所述N个数据流具体包括利用第j个M×1的矩阵中的M×k个子数据单元生成由M×k个子数据单元组成的至少一个数据流,其中,利用第j个M×1的矩阵中的M×k个子数据单元生成由M×k个子数据单元组成的至少一个数据流具体包括:
所述生成单元对X组子数据单元进行交织以生成由M×k个子数据单元组成的一个数据流,所述第j个M×1的矩阵中的M×k个子数据单元具体包括所述X组子数据单元,每组子数据单元中子数据单元的数量为(M×k)/X,所述X组子数据单元中任一组子数据单元中子数据单元所来自的码字与所述X组子数据单元中其他组子数据单元中子数据单元所来自的码字不同,X为大于1的整数。
结合第二方面或第二方面的第六种或第七种或第八种可能的实现方式,在第十种可能的实现方式中,
所述生成单元利用所述n个M×1的矩阵中的M×k个子数据单元生成所述N个数据流具体包括利用第j个M×1的矩阵中的M×k个子数据单元生成由M×k个子数据单元组成的至少一个数据流,其中,利用第j个M×1的矩阵中的M×k个子数据单元生成由M×k个子数据单元组成的至少一个数据流具体包括:
所述生成单元对P个集合中每个集合中的Q组子数据单元进行交织以生成由M×k个子数据单元组成的P个数据流,所述第j个M×1的矩阵中的M×k个子数据单元与所述P个集合中的所有的子数据单元相同,所述P个集合中的每个集合由Q组子数据单元组成,所述Q组子数据单元中任一组子数据单元中子数据单元所来自的码字与所述Q组子数据单元中其他组子数据单元中子数据单元所来自的码字不同,每组子数据单元中子数据单元的数量为(M×k)/(P×Q),P和Q都为大于1的整数。
由上述技术方案可以看出,变换电路在进行从M个到N个的数据处理时,数据处理前的M个数据流对应一个M×n的矩阵。利用其中n个M×1的矩阵中包含的数据单元生成N个数据流,完成数据处理;通过控制所述M个数据流中包含数据单元的个数n的值,由此可以控制最终利用所述M×n的矩阵中数据单元生成的数据流的个数N的值,实现了灵活进行M的整数倍系数以及非整数倍系数的数据处理的功能,满足了以太网的发展要求。
附图说明
图1为现有技术的一种数据交织的示意图;
图2为本发明实施例提供的一种数据处理方法的流程图;
图3为本发明实施例提供的一个M×n的矩阵的示意图;
图4a为本发明实施例提供的一种数据处理的一个示意图;
图4b为本发明实施例提供的一种数据处理的反向操作的一个示意图;
图5a为本发明实施例提供的一种数据处理的一个示意图;
图5b为本发明实施例提供的一种数据处理的反向操作的一个示意图;
图6a为本发明实施例提供的一种数据处理的一个示意图;
图6b为本发明实施例提供的一种数据处理的一个示意图;
图7为本发明实施例提供的一种数据处理装置的装置结构图。
具体实施方式
目前,高速数据传输网络(例如以太网)中,执行数据处理前,数据流的个数一般是固定的。以400G的以太网为例进行说明:在物理编码子层(英文全称为physical codingsublayer,英文缩写为PCS)向物理介质接入子层(英文全称为physical mediumattachment sublayer,英文缩写为PMA)传输数据的阶段,PCS使用4个前向纠错码(英文全称为forward error correction,英文缩写为FEC)模块对数据进行编码并输出编码后的数据流。每个FEC模块输出4个数据流。因此,执行数据处理前的数据流是16个速率为25G的数据流。随后,需要利用这16个25G的数据流进行数据处理。在现有技术中的数据处理中,需要将多个数据流交织成一个数据流。这种数据处理的弊端在于,数据处理后得到的数据流个数只可能是PCS通过多个FEC模块发送的数据流的个数的整数倍系数。比如16个25G数据流被变换为8个50G数据流。或者,16个25G数据流被变换为4个100G数据流。,目前已出现了需要使用40G或者80G传输速率的需求。但是,上述数据处理技术无法实现上述需求。400G以太网的场景中,无法实现将16个25G的数据流变换成10个40G的数据流。或者,无法实现将16个25G的数据流变换成5个80G的数据流。在本发明的实施例中,进行数据处理的变换电路在进行从M个数据流到N个数据流的数据处理时,数据处理前的M个数据流对应一个M×n的矩阵,对所述M×n的矩阵中的n个M×1的矩阵进行数据处理,通过控制所述M个数据流中包含数据单元的个数n的值,由此可以控制最终利用所述M×n的矩阵中数据单元生成的数据流的个数N的值,实现了灵活进行M的整数倍系数以及非整数倍系数的数据处理的功能,满足了以太网当前的发展要求。
而且目前类似于以太网的高速数据传输网络中,在传输链路上进行数据传输过程中产生的误码率是比较高的。说当产生误码时,传输链路上传输的数据流可能会出现连续的多个发生错误的数据单元。如何降低发生错误的数据单元对整个传输网络的影响也是目前需要解决的一个问题。对此,本发明的实施例提供了数据处理的具体实现方式。数据处理后得到的数据流中任意相邻的两个数据单元分别来自于不同的码字(英文:codeword)。如果在传输链路上出现了连续的多个发生错误的数据单元,接收设备可以通过数据处理的反向操作,将传输链路中的连续的多个发生错误的数据单元分布到多个数据流上。提高了整个数据传输系统的纠错能力。
如无相反的说明,本申请中的数据处理是指对M个数据流进行处理以生成N个数据流。本申请中的数据处理的反向操作是指对所述N个数据流进行处理以生成所述M个数据流。也就是说,执行数据处理的反向操作可以恢复数据处理前的所述M个数据流。数据处理具体实现时,可以参考本申请提供实施例。
举例来说,所述数据处理的执行主体可以是变换电路。所述变换电路可以是PHY、PHY芯片(PHY chip)、系统芯片(system chip)或者多端口以太网设备(multi-portEthernet device)中的部件。
所述PHY可以通过FPGA或者ASIC实现。所述PHY可以是网络接口卡(NetworkInterface Card,NIC)中的部件,所述NIC可以是线卡(Line Card)或者PIC(PhysicalInterface Card,物理接口卡)。所述PHY可以包含用于连接到(for interfacing to)MAC的Media-Independent Interface(媒体无关接口,MII)。
所述PHY芯片可以包括多个PHY。所述PHY芯片可以通过FPGA或者ASIC实现。
所述系统芯片可以包括多个MAC以及多个PHY。所述系统芯片可以通过FPGA或者ASIC实现。
所述多端口以太网设备可以是以太网集线器、以太网路由器或者以太网交换机。所述多端口以太网设备包括多个端口,每个端口可以包括系统芯片,所述系统芯片可以包括MAC和PHY。所述多端口以太网设备还可以将多个MAC整合到一个MAC芯片(MAC chip),以及将多个PHY整合到一个PHY芯片。所述多端口以太网设备也可以将多个MAC以及多个PHY整合到一个系统芯片中。
所述数据处理的反向操作的执行主体可以是反向变换电路。所述反向变换电路可以是PHY、PHY chip、system chip或者multi-port Ethernet device中的部件。
另外,所述变换电路生成所述N个数据流后,可以将所述N个数据流发送至第一光模块。所述第一光模块可以对所述N个数据流执行电光转换,从而得到光信号。所述第一光模块可以通过光纤向第二光模块发送所述光信号。所述第二光模块接收到所述光信号后可以通过对所述光信号执行光电转换得到所述N个数据流(电信号)。所述第二光模块可以将所述N个数据流发送至所述反向变换电路。所述反向变换电路可以将所述N个数据流进行处理以生成所述M个数据流。所述变换电路以及所述第一光模块可以是本地多端口以太网设备的部件。所述第二光模块以及所述反向变换电路可以是对端多端口以太网设备的部件。所述本地多端口以太网设备可以通过所述光纤与所述对端多端口以太网设备进行通信。
为了使本技术领域的人员更好地理解本发明实施例的方案,下面结合附图和实施方式对本发明实施例作进一步的详细说明。
实施例一
本实施例将对变换电路如何将接收到的M个数据流对应到M×n的矩阵并进行数据处理得到用于输出的N个数据流进行详细说明,应用场景可以是在电层构架中,也可以在光层构架中,也可以在电层构架与光层构架之间的为实现数据传输进行的数据处理。请参阅图2,其为本发明实施例提供的一种数据处理方法的流程图,所述方法包括:
S201:变换电路通过M个接收端口接收M个数据流。所述M个数据流中每个数据流包括n个数据单元。所述M个接收端口与所述M个数据流一一对应。所述M个数据流对应M×n的矩阵。所述M×n的矩阵中的每个元素是一个数据单元。所述M×n的矩阵包括M个1×n的矩阵。所述M个1×n的矩阵中每个1×n的矩阵对应1个数据流。所述M个1×n的矩阵与所述M个数据流一一对应。所述M个1×n的矩阵中每个1×n的矩阵中的n个数据单元分别是对应的数据流中的n个数据单元。所述M个1×n的矩阵中每个1×n的矩阵中的n个数据单元中的任意两个数据单元中位于右边的数据单元被所述变换电路接收的时间早于位于左边的数据单元被所述变换电路接收的时间。
所述M个数据流是需要进行数据处理数据流。举例来说,所述M个数据流可以是PCS的FEC模块输出的数据流。PCS的FEC模块输出的数据流可以是尚未进行过数据处理的数据流。所述M个数据流也可以是经过数据处理后的数据流。需要注意的是,为了使得方案表达更加清楚明确,S201中使用了矩阵这一数学上的基本概念对所述M个数据流进行描述。
图3为本实施例提供的一个M×n的矩阵的示意图。为了更加直观的体现所述M个数据流对应的所述M×n的矩阵,请参阅图3。所述M个数据流中每一个数据流构成所述M×n的矩阵的一行,每行由n个数据单元组成。也就是说,每行对应一个1×n的矩阵。所述M×n的矩阵包括M个1×n的矩阵。所述M行数据流中每个数据流中的n个数据单元从左到右依次为第一数据单元至第n数据单元。所述M行数据流中每个数据流中的第i数据单元构成了所述M×n的矩阵的第i列(其中i为n中的任意一个值)。每列由M个数据单元组成。也就是说,每列对应一个M×1的矩阵。所述M×n的矩阵包括n个M×1的矩阵。所述M个1×n的矩阵中任一个1×n的矩阵的任意两个相邻数据单元中位于右边的(比如说图3中的数据单元a)比位于左边的(比如说图3中的数据单元b)将先被所述变换电路接收。通过对接收的时间进行限定,限定了根据所述M×n的矩阵的视角,如图3所示,所述M个数据流的流向是从左向右。这样进行限定是为了更清楚的进行描述,并不是限定了本发明实施例所应用的所有场景中的数据流的流向只能是从左到右。
S202:所述变换电路分别利用所述M×n的矩阵中的n个M×1的矩阵中的M个数据单元生成N个数据流。生成所述N个数据流具体包括利用所述n个M×1的矩阵中的每个M×1的矩阵生成至少一个数据流。
S203:所述变换电路通过N个输出端口发送所述N个数据流。所述N个输出端口与所述N个数据流一一对应。其中M和N都是正整数。
在S202中,对所述M个数据流所对应的所述M×n的矩阵,以所述M×n的矩阵中的每个列为对象进行数据处理。也就是说,分别利用n个M×1的矩阵进行数据处理。n是M个数据流中每个数据流中的数据单元的个数。由于n的数值比较灵活,故可以通过上述数据处理实现多种类型的数据处理。M和N均为大于1的整数。例如,M可以等于2、3或者4。例如,N可以等于2、3或者4。M可以大于N。M也可以等于N。M也可以小于N。例如,假设将被进行数据处理处理的M个数据流是16个数据流,通过本实施例的变换方式,进行数据处理后得到数据流的个数N可以是1至16中的任意一个整数,也可以是大于16的整数。
可见,进行数据处理的变换电路在进行从M个数据流到N个数据流的数据处理时,数据处理前的M个数据流对应一个M×n的矩阵。分别对所述M×n的矩阵中的n个M×1的矩阵进行数据处理,从而得到了N个数据流。上述方案中,数据处理比较灵活,有助于满足以太网的发展要求。
实施例二
本实施例将在实施例一的基础上,进一步对所述数据处理具体实现时可能存在的不同粒度的情况以及针对所述数据处理如何解决高速数据传输网络在数据传输过程中误码率较高的问题进行描述。
在进行所述数据处理的过程中,对于不同的应用场景,数据处理后得到的数据流中的粒度可以不同(粒度越高,数据流中的最小单位就越小。粒度越低,数据流中的最小单位就越大)。本发明的实施例主要针对两种的情况进行分析,一种是指数据处理前的数据流和数据处理后的数据流的粒度没有发生变化的情况。另一种是指数据处理前的数据流和数据处理后的数据流的粒度发生了变化的情况。第二种情况下,数据处理后的数据流的粒度可以大于数据处理前的数据流的粒度。
对于数据处理前后数据流的粒度没有发生变化的情况,本发明给出了一个优选的实施例,具体为:
所述利用所述n个M×1的矩阵中的每个M×1的矩阵生成的至少一个数据流由M个数据单元组成。所述n个M×1的矩阵中的第i个M×1的矩阵中的M个数据单元与利用所述第i个M×1的矩阵中的M个数据单元生成的至少一个数据流中包含的M个数据单元相同。所述N个数据流中每个数据流包括的数据单元个数相同。
也就是说,数据处理前后数据流的粒度均相同,均为数据单元。数据单元的大小可以是比特,也可以是符号(Symbol)。
进行上述数据处理时,数据处理后的N个数据流的传输速率均相同。也就是说,每个M×1的矩阵进行数据处理后得到的数据流个数都相同。N个数据流中每个数据流中的数据单元的个数均相同。所述n个M×1的矩阵中任意一个数据单元只能在上述数据处理的过程中被使用一次。举例来说,M为16,M×1的矩阵具体为16×1的矩阵。16×1的矩阵中含有16个数据单元。16个数据单元从上到下分别为U0至U15。如果该16×1的矩阵需要通过数据处理生成两个用于输出的数据流A1和A2(即所述N个数据流中的两个数据流),则该16×1的矩阵中用于生成所述A1的数据单元为8个,例如U0到U7这8个数据单元。用于生成所述A2的数据单元是U8到U15这8个数据单元。而且,U0到U15这16个数据单元中任意一个数据单元也不能同时出现在所述变换电路输出的所述N个数据流中的至少两个数据流(比如说A1和A2)中。另外,U0到U15这16个数据单元中任意一个数据单元也不能多次出现在所述N个数据流中的同一个数据流(比如说A1或A2)中。同时需要注意的是,每个M×1的矩阵进行数据处理后得到的数据流个数都相同。由于需要生成N个数据流,对于所述M×n的矩阵中的所述n个M×1的矩阵,每个所述M×1的矩阵所生成的用于输出的数据流的个数为N/n。n的值需要符合N/n为正整数这一约束条件。
对于数据处理前后数据流的粒度发生变化的情况,尤其是针对数据处理后的数据流的粒度大于数据处理前的数据流的粒度的情况,本发明给出了一个优选的实施例,具体为:
所述M×n的矩阵中的每个数据单元由k个子数据单元组成。所述至少一个数据流由M×k个子数据单元组成。所述n个M×1的矩阵中的第i个M×1的矩阵中的M×k个子数据单元与利用所述第i个M×1的矩阵中的M×k个子数据单元生成的至少一个数据流中包含的M×k个子数据单元相同。所述N个数据流中每个数据流包括的子数据单元个数相同。
比如说,数据处理前的M个数据流的粒度(也就是数据单元)均为符号。举例来说,一个符号的大小可以是10比特。数据处理后得到的N个数据流的粒度(也就是子数据单元)均为比特。在M个数据流对应的所述M×n的矩阵中,将每个数据单元由多个大小为1比特的子数据单元组成(例如一个符号为10比特)。所述n个M×1的矩阵中的任一个M×1的矩阵共包括M×k个子数据单元。进行上述数据处理时,数据处理后的N个数据流的传输速率均相同。每个M×1的矩阵进行数据处理后得到的数据流个数都相同。N个数据流中每个数据流中的子数据单元的个数均相同。所述n个M×1的矩阵中所述M×k个子数据单元中任意一个子数据单元只能在上述数据处理的过程中被使用一次。
下文将对所述数据处理如何解决高速数据传输网络在数据传输过程中误码率较高的问题进行描述,并将结合上述所述数据处理中的至少两种不同的情况进行分析。
目前高速数据传输网络(例如以太网)中,数据传输过程中产生的误码率比较高。如何降低发生错误的数据单元对整个传输网络的影响也是目前需要解决的一个问题。因此,本实施例对实施例一中的N个数据流进行了进一步的限定,对于数据处理前后数据流的粒度没有发生变化的情况,限定为:
所述N个数据流中每个数据流中相邻的两个数据单元来自不同的码字(英文:codeword)。
对于数据处理前后数据流的粒度发生变化的情况(例如数据处理后的数据流的粒度大于数据处理前的数据流的粒度的情况),限定为:
所述N个数据流中每个数据流中相邻的两个子数据单元来自不同的码字codeword。
首先对码字的概念进行简单的介绍。在以太网的场景中,PCS中的FEC模块可以接收码字。FEC模块将码字转换为多个数据单元后,将多个数据单元输出。FEC模块也可以生成码字,并将码字转换为多个数据单元。FEC模块码字转换为多个数据单元后,可以将多个数据单元输出。FEC模块生成一个码字时,该码字只能是同一个FEC模块生成的。也就是说,不可能出现该码字的一部分是一个FEC模块生成的,而该码字的另一部分是另一个FEC模块生成的。另外,FEC模块接收一个码字时,该码字只能是同一个FEC模块接收的。也就是说,不可能出现该码字的一部分是一个FEC模块接收的,而该码字的另一部分是另一个FEC模块接收的。FEC模块对数据单元进行FEC编码后以数据流的形式将数据单元输出。对于不同的FEC算法,码字大小可能不同。比如说在RS-FEC(528,514)算法的场景中,一个码字的大小为5280比特bit。如果一个数据单元的大小为10比特,则一个码字包括528个数据单元。
一个码字所包括的数据单元被FEC模块以一个数据流或者多个数据流的形式输出后,所述FEC模块将继续输出所接收的下一个码字所包括的数据单元。也就是说,一个FEC模块输出的数据流中的数据单元可能均来自同一个码字,也可能分别来自不同的码字。
对于数据处理前后数据流的粒度没有发生变化的情况,下文对所述N个数据流中每个数据流中相邻的两个数据单元来自不同的码字的效果进行阐述。假设数据处理后的数据流不遵循相邻两个数据单元分别来自不同码字。如果数据处理后的数据流进行传输的过程中某一个数据流中出现了连续的多个错误数据单元,那么这些连续的多个错误数据单元有可能均来自于同一个码字。接收设备对传输链路上的数据流进行数据处理的反向操作后,这些均来自同一个码字的连续的多个错误数据单元依然有很大可能位于一个数据流上或来自同一个码字的多个数据流上。因此,接收设备需要根据FEC原理纠正连续的多个错误数据单元。所述接收设备的纠错成功率比较低。
在限定数据处理后的每个数据流中相邻的两个数据单元来自不同的码字的场景中,如果数据处理后的数据流进行传输的过程中某一个数据流出现了连续的多个错误数据单元,那么这些连续的多个错误数据单元是分别来自不同码字的。接收设备对传输链路上的数据流进行数据处理的反向操作后,这些来自不同码字的连续的多个错误数据单元不会位于同一个数据流上,或者不会位于来自同一个码字的多个数据流上。也就是说,传输过程中产生的连续的多个错误数据单元将会被分布到多个来自不同码字的数据流上。因此,进行数据处理的反向操作后错误数据单元的连续性降低。另外,属于一个码字的错误数据单元的数量也减少了。接收设备分别对多个具有较少个数的错误数据单元的数据流进行纠错时,纠错成功率较高。
所述N个数据流中每个数据流中相邻的两个数据单元来自不同的码字可以通过下述两种方式实现:
方式1,所述N个数据流中每个数据流中相邻的两个数据单元是同一个前向纠错FEC电路输出的数据单元。
方式2,所述N个数据流中每个数据流中相邻的两个数据单元分别是两个FEC电路输出的数据单元。
对于数据处理前后数据流的粒度发生变化的情况(例如数据处理后的数据流的粒度大于数据处理前的数据流的粒度),下文对所述N个数据流中每个数据流中相邻的两个子数据单元来自不同的码字的效果进行阐述。和数据处理前后数据流的粒度没有发生变化的情况相似,当限定数据处理后的每个数据流中相邻的两个子数据单元来自不同的码字,如果数据处理后的数据流在传输过程中某一个数据流出现了连续的多个错误子数据单元,那么这些连续的多个错误子数据单元是分别来自不同码字的。接收设备对传输链路上的数据流进行数据处理的反向操作后,这些来自不同码字的连续的多个错误子数据单元将会被分布到来自不同码字的多个数据流上。因此,进行数据处理的反向操作后错误子数据单元的连续性降低。另外,属于一个码字中的错误子数据单元的数量也减少了。接收设备分别对多个具有较少个数的错误子数据单元的数据流进行纠错时,纠错成功率较高。
所述N个数据流中每个数据流中相邻的两个子数据单元来自不同的码字可以通过下述两种方式实现:
方式1,所述N个数据流中每个数据流中相邻的两个子数据单元分别属于同一个前向纠错FEC电路输出的两个数据单元。
方式2,所述N个数据流中每个数据流中相邻的两个子数据单元分别来自两个FEC电路。
图4a为本发明实施例提供的一种数据处理的一个示意图。对于数据处理前后数据流的粒度没有发生变化的情况,为了更加清楚的描述所述N个数据流中每个数据流中相邻的两个数据单元来自不同的码字能够对整个数据传输系统纠错能力起到提高的作用,请参考图4a。在图4a的应用场景中,M=4,N=3,n=3。变换电路400具有4个接收端口,分别接收4个数据流A1、A2、A3和A4。每个数据流包含3个数据单元。这4个数据流对应4×3的矩阵,所述4×3的矩阵中每个元素是一个数据单元。其中数据流A1和A2中的数据单元均来自一个码字。数据流A3和A4中的数据单元均来自另一个码字。
变换电路400a分别利用所述4×3的矩阵中的3个4×1的矩阵中每个4×1的矩阵中的4个数据单元生成3个数据流。每个4×1的矩阵中的4个数据单元被数据处理为由4个数据单元组成的一个数据流。对于4×3的矩阵中位于右侧的4×1的矩阵中的4个数据单元来说,由于生成的一个数据流中相邻的两个数据单元必须来自不同的码字,通过数据处理得到的一个数据流B1中的数据单元的位置可以为如图所示。可见,来自同一个码字的a01和a04被来自另一个码字的b01隔开了,来自同一个码字的b01和b04被来自另一个码字的a04隔开了。而且需要注意的是,图4a中的4个数据流A1、A2、A3和A4可以来自同一个FEC模块。当然,也可以是A1和A2来自一个FEC模块,A3和A4来自另一个FEC模块。
图4a中所示的是利用所述M×n的矩阵中任一个M×1的矩阵生成一个数据流的例子。对于数据处理前后数据流的粒度发生变化的情况(例如数据处理后的数据流的粒度大于数据处理前的数据流的粒度),和如图4a中所示的情况相似。区别只是组成的数据流B1、B2和B3中的最小单位变为构成数据流A1到A4中数据单元的子数据单元。
接下来将在图4a的基础上对于数据处理前后数据流的粒度没有发生变化的情况,对任一个M×1的矩阵通过何种方法生成一个数据流进行进一步的描述。本发明还提供了一种优选的由一个M×1的矩阵中的M个数据单元组成一个数据处理后的数据流的实施例,具体为:
所述变换电路利用所述n个M×1的矩阵中的M个数据单元生成所述N个数据流具体包括利用第j个M×1的矩阵中的M个数据单元生成由M个数据单元组成的至少一个数据流。其中利用第j个M×1的矩阵中的M个数据单元生成由M个数据单元组成的至少一个数据流具体包括:所述变换电路对X组数据单元进行交织以生成由M个数据单元组成的一个数据流。所述第j个M×1的矩阵中的M个数据单元具体包括所述X组数据单元。每组数据单元中数据单元的数量为M/X。所述X组数据单元中任一组数据单元中数据单元所来自的码字与所述X组数据单元中其他组数据单元中数据单元所来自的码字不同。X为大于1的整数。
在图4a中,j所示的位置有一个4×1的矩阵。该4×1的矩阵包括来自同一个码字的a01和a04,以及来自另一个码字的b01和b04。该4×1的矩阵包含上述四个数据单元。在本实施例中X可以为2或4。当X为2时,上述4个数据单元分为2组数据单元。所述2组数据单元中一组数据单元中数据单元所来自的码字与所述2组数据单元中另一组数据单元中数据单元所来自的码字不同。两组数据单元中,一组数据单元由a01和a04组成,另一组数据单元由b01和b04组成。当X为4时,上述4个数据单元分为4组数据单元。也就是每组数据单元只包括一个数据单元。然后,将对这两组数据单元(X=2时)或者四组数据单元(X=4时)进行交织。交织的方式一般是从进行交织的各组取一个数据单元,然后以相同的排列顺序排列。然后再从进行交织的各组取一个数据单元,接着上一次排列继续以相同的排列顺序继续排列。直到排列完各组数据单元中包含的数据单元。这样交织得到的数据流中任意两个相邻的数据单元必然来自不同的码字。
在数据传输网络中,每次从各组取出一个数据单元可以按照一定选取顺序,以便后续对数据流进行操作时可以有效确定出其中数据单元来自哪一个码字或者哪一个FEC模块。比如,当X=2时的两组数据单元中,由a01和a04组成的该组数据单元中a01位于a04的前面。由b01和b04组成的该组数据单元中b01位于b04的前面。进行交织时的选取顺序可以是先选位于前面的a01和b01按顺序进行排列,然后再选取位于后面的a04和b04按相同顺序进行排列。或者,先选取位于后面的数据单元再选取位于前面的数据单元。本发明对如何进行交织不进行限定,只要最终组成用于输出的数据流中任意两个相邻的数据单元来自不同的码字即可。
如图4a所示的从M=4到N=3的数据处理后,还可以对数据处理后的3个数据流进一步进行数据处理。比如执行从M=3到N=1的数据处理。执行从M=3到N=1的数据处理时,可以使用本发明的技术方案进行数据处理。从M=3到N=1的数据处理是整数倍系数的数据处理。因此也可以使用现有技术的数据处理。整数倍系数的数据处理具体可以是,将多个数据流(三个数据流)交织成一个数据流。
对于数据处理前后数据流的粒度发生变化的情况(例如数据处理后的数据流的粒度大于数据处理前的数据流的粒度),对任一个M×1的矩阵通过何种方法生成一个数据流进行进一步的描述。本发明还提供了一种优选的由一个M×1的矩阵中的M×k个子数据单元组成一个数据处理后的数据流的实施例,具体为:
所述变换电路利用所述n个M×1的矩阵中的M×k个子数据单元生成所述N个数据流具体包括利用第j个M×1的矩阵中的M×k个子数据单元生成由M×k个子数据单元组成的至少一个数据流。其中利用第j个M×1的矩阵中的M×k个子数据单元生成由M×k个子数据单元组成的至少一个数据流具体包括:
所述变换电路对X组子数据单元进行交织以生成由M×k个子数据单元组成的一个数据流。所述第j个M×1的矩阵中的M×k个子数据单元具体包括所述X组子数据单元。每组子数据单元中子数据单元的数量为(M×k)/X。所述X组子数据单元中任一组子数据单元中子数据单元所来自的码字与所述X组子数据单元中其他组子数据单元中子数据单元所来自的码字不同。X为大于1的整数。
在图4a中,j所示的位置有一个4×1的矩阵。该4×1的矩阵包括来自同一个码字的a01和a04,以及来自另一个码字的b01和b04。该4×1的矩阵包含上述四个数据单元,每一个数据单元的大小为符号,一个符号大小为10比特为例,即相当于一个数据单元包含有10个子数据单元。在本实施例中X可以为2或4。当X为2时,上述4个数据单元所包括的40个子数据单元分为2组子数据单元,属于同一个数据单元的子数据单元分在同一组子数据单元内。所述2组子数据单元中一组子数据单元中子数据单元所来自的码字与所述2组子数据单元中另一组子数据单元中子数据单元所来自的码字不同。两组子数据单元中,一组子数据单元由a01和a04所包含的共20个子数据单元所组成,另一组子数据单元由b01和b04所包含的共20个子数据单元所组成。当X为4时,上述4个数据单元中包含的40个子数据单元分为4组子数据单元,属于同一个数据单元的子数据单元分在同一组子数据单元内。也就是每组子数据单元只包括一个数据单元所包含的10个子数据单元。然后,将对这两组子数据单元(X=2时)或者四组子数据单元(X=4时)进行交织。交织的方式一般是从进行交织的各组取一个子数据单元,然后以相同的排列顺序排列。然后再从进行交织的各组取一个子数据单元,接着上一次排列继续以相同的排列顺序继续排列。直到排列完各组子数据单元中包含的子数据单元。这样交织得到的数据流中任意两个相邻的子数据单元必然来自不同的码字。
在数据传输网络中,每次从各组取出一个子数据单元可以按照一定选取顺序,以便后续对数据流进行操作时可以有效确定出其中子数据单元来自哪一个码字或者哪一个FEC模块。本发明对如何进行交织不进行限定,只要最终组成用于输出的数据流中任意两个相邻的子数据单元来自不同的码字即可。
目前高速数据传输网络(例如以太网)中,在传输链路上数据传输过程中产生的误码率比较高。传输链路上传输的数据流有可能会出现连续多个发生错误的数据单元。如何降低发生错误的数据单元对整个传输网络的影响也是目前需要解决的一个问题。对此本发明提供了一个优选的实施例。
下文对传输链路上出现连续错误数据单元的这种情况进行具体说明。以图4a为基础,对于数据处理前后数据流的粒度没有发生变化的情况,假设数据流A1到A4是没有被执行数据处理的数据流。A1和A2来自一个FEC模块。A3和A4来自另一个FEC模块。数据流A1到A4被执行如图4a所示的数据处理后得到数据流B1到B3。数据流B1到B3被发送至接收设备。所述接收设备对数据流B1到B3其进行数据处理的反向操作。具体为,使用将数据流A1到A4数据处理到数据流B1到B3数据处理规则对应的反向操作。在图4a的基础上,请参阅图4b。图4b为本发明一种数据处理的反向操作的一个示意图。假设数据流B1在传输过程中B1中的4个数据单元a01、b01、a04和b04均发生了错误(如黑色加粗矩形框)。接收设备400b执行数据处理的反向操作操作后得到的数据流A1到A4。上述4个发生错误的数据单元分别分布在A1到A4中。这4个数据流中不存在连续的发生错误的数据单元,而且属于同一个码字的错误的数据单元个数也减少了。比如说来自同一个码字的数据流A1和A2只具有两个错误的数据单元,而不会出现4个错误的数据单元均分布在自同一个码字的数据流中。这样对A1和A2上进行纠错的FEC模块就只需要面对两个错误的数据单元(一个数据流一个错误数据单元)。所述接收设备400b分别对A1到A4数据流进行纠错的成功率大于对一个包含四个连续的发生错误的数据单元(例如a01、b01、a04和b04)的数据流进行纠错的成功率。
对于数据处理前后数据流的粒度发生变化的情况(例如数据处理后的数据流的粒度大约数据处理前的数据流的粒度),当传输链路上出现连续错误数据单元的这种情况,和数据处理前后数据流的粒度没有发生变化的情况相似,只是传输过程中的数据流B1到B3的粒度均变为子数据单元。在经过数据处理的反向操作后得到的数据流粒度将恢复为所述数据处理前的粒度。对错误数据单元进行纠错的效果和数据处理前后数据流的粒度没有发生变化的情况下对数据处理的反向操作后的数据流中错误数据单元的错误情况相同,这里不再赘述。
接下来对于所述M×n的矩阵中任一个M×1的矩阵生成多个数据流的情况进行描述。以下以任一个M×1的矩阵生成两个数据流为例进行说明。对于数据处理前后数据流的粒度没有发生变化的情况,请参阅图5a。图5a为本发明实施例提供的一种数据处理的一个示意图。在图5a的应用场景中,M=8,N=6,n=3。变换电路500a具有8个接收端口,分别接收8个数据流A1至A8。每个数据流包含3个数据单元。上述8个数据流对应8×3的矩阵。所述8×3的矩阵中每个元素是一个数据单元。其中数据流A1到A4中的数据单元均来自一个码字,数据流A5到A8中的数据单元均来自另一个码字。变换电路500a分别利用所述8×3的矩阵中的3个8×1的矩阵中的数据单元生成6个数据流。每一个8×1的矩阵中的生成由8个数据单元组成的两个数据流。每一个数据流包括4个数据单元。对于8×3的矩阵中位于右侧的8×1的矩阵中的8个数据单元,生成的两个数据流中任一个数据流中相邻的两个数据单元来自不同的码字。通过数据处理得到的两个数据流B1和B2中的数据单元的分布情况可以为如图5a所示。可以看出,来自同一个码字的a01和a04被来自另一个码字的b01隔开了。来自同一个码字的a07和a10被来自另一个码字的b07隔开了。图5a中的8个数据流A1至A8可以来自同一个FEC模块。也可以是A1至A4来自一个FEC模块,A5至A8来自另一个FEC模块。
图5a是所述M×n的矩阵中任一个M×1的矩阵生成两个数据流的示意图。对于数据处理前后数据流的粒度发生变化的情况(例如数据处理后的数据流的粒度大于数据处理前的数据流的粒度),和如图5a中所示的情况相似,区别只是组成的数据流B1到B6中的最小单位变为构成数据流A1到A8中数据单元的子数据单元。
接下来将在图5a的基础上对于数据处理前后数据流的粒度没有发生变化的情况,对任一个M×1的矩阵通过何种方法生成两个数据流进行进一步的描述。本发明还提供了一种优选的由一个M×1的矩阵中的M个数据单元组成两个数据流的实施例,具体为:
所述变换电路利用所述n个M×1的矩阵中的M个数据单元生成所述N个数据流具体包括:利用第j个M×1的矩阵中的M个数据单元生成由M个数据单元组成的至少一个数据流。其中,利用第j个M×1的矩阵中的M个数据单元生成由M个数据单元组成的至少一个数据流具体包括:
所述变换电路对P个集合中每个集合中的Q组数据单元进行交织以生成由M个数据单元组成的P个数据流。所述第j个M×1的矩阵中的M个数据单元与所述P个集合中的所有的数据单元相同。所述P个集合中的每个集合由Q组数据单元组成。所述Q组数据单元中任一组数据单元中数据单元所来自的码字与所述Q组数据单元中其他组数据单元中数据单元所来自的码字不同。每组数据单元中数据单元的数量为M/(P×Q)。P和Q都为大于1的整数。
在图5a中j所述的位置包含一个8×1的矩阵。8×1的矩阵包括来自同一个码字的a01、a04、a07和a10,以及来自另一个码字的b01、b04、b07和b10这8个数据单元。任一个8×1的矩阵生成两个数据流。P=2。数据处理后生成的两个数据流具有相同个数的数据单元。两个集合中每个集合均包括4个数据单元。由于必须满足所述Q组数据单元中任一组数据单元中数据单元所来自的码字与所述Q组数据单元中其他组数据单元中数据单元所来自的码字不同,故每个集合中来自不同码字的数据单元的个数相等。比如来自同一个码字的a01、a04、a07和a10中的任意两个,以及来自另一个码字的b01、b04、b07和b10中的任意两个。在本实施例中,优选的将a01、a04、b01和b04放在一个集合,将a07、a10、b07和b10放在另一个集合中。
这4个数据单元组成Q组数据单元。在本实施例中,Q可以取2或4。以包含a01、a04、b01和b04的集合为例。当Q为2时,上述4个数据单元分为2组数据单元。所述2组数据单元中任一组数据单元中数据单元所来自的码字与所述2组数据单元中其他组数据单元中数据单元所来自的码字不同。这两组数据单元中一组数据单元由a01和a04组成,另一组数据单元由b01和b04组成。当Q为4时,上述4个数据单元分为4组数据单元。每组数据单元均只包括一个数据单元。然后将对这两组数据单元(Q=2时)或者四组数据单元(Q=4时)进行交织。交织的方式在图4a的相关描述中已经说明,这里不再赘述。本发明对如何进行交织不进行限定,只要最终组成用于输出的数据流中任意两个相邻的数据单元来自不同的码字即可。
如图5a所示,从M=8到N=6的数据处理后,还可以对数据处理后的6个数据流进一步进行数据处理。比如从M=6到N=3的数据处理。执行从M=6到N=3的数据处理时,可以使用本发明的技术方案进行数据处理。从M=6到N=3的数据处理是整数倍系数的数据处理,也可以使用现有技术的数据处理。整数倍系数的数据处理具体可以是,将多个数据流(两个数据流)交织成一个数据流。
对于数据处理前后数据流的粒度发生变化的情况(例如数据处理后的数据流的粒度大于数据处理前的数据流的粒度),本发明还提供了一种优选的由一个M×1的矩阵中的M×k个子数据单元组成两个数据流的实施例,具体为:
所述变换电路利用所述n个M×1的矩阵中的M×k个子数据单元生成所述N个数据流具体包括利用第j个M×1的矩阵中的M×k个子数据单元生成由M×k个子数据单元组成的至少一个数据流,其中,利用第j个M×1的矩阵中的M×k个子数据单元生成由M×k个子数据单元组成的至少一个数据流具体包括:
所述变换电路对P个集合中每个集合中的Q组子数据单元进行交织以生成由M×k个子数据单元组成的P个数据流,所述第j个M×1的矩阵中的M×k个子数据单元与所述P个集合中的所有的子数据单元相同,所述P个集合中的每个集合由Q组子数据单元组成,所述Q组子数据单元中任一组子数据单元中子数据单元所来自的码字与所述Q组子数据单元中其他组子数据单元中子数据单元所来自的码字不同,每组子数据单元中子数据单元的数量为(M×k)/(P×Q),P和Q都为大于1的整数。
在图5a中j所述的位置包含一个8×1的矩阵。8×1的矩阵包括来自同一个码字的a01、a04、a07和a10,以及来自另一个码字的b01、b04、b07和b10这8个数据单元。任一个8×1的矩阵生成两个数据流。P=2。每一个数据单元的大小为符号,一个符号大小为10比特为例,即相当于一个数据单元包含有10个子数据单元。上述8个数据单元所包括的80个子数据单元分为两个集合。由于必须满足所述Q组子数据单元中任一组子数据单元中子数据单元所来自的码字与所述Q组子数据单元中其他组子数据单元中子数据单元所来自的码字不同,故每个集合中来自不同码字的子数据单元的个数相等。在本实施例中,优选的将a01、a04、b01和b04所包含的40个子数据单元放在一个集合,将a07、a10、b07和b10所包含的40个子数据单元放在另一个集合中。
每一个集合中的40个子数据单元组成Q组子数据单元。在本实施例中,Q可以取2或4。以包含a01、a04、b01和b04所包含的40个子数据单元的集合为例。当Q为2时,上述40个子数据单元分为2组子数据单元。所述2组子数据单元中任一组子数据单元中子数据单元所来自的码字与所述2组子数据单元中其他组子数据单元中子数据单元所来自的码字不同。这两组子数据单元中一组子数据单元由a01和a04所包含的20个子数据单元组成,另一组子数据单元由b01和b04所包含的20个子数据单元组成。当Q为4时,上述40个子数据单元分为4组子数据单元。每组子数据单元均只包括一个数据单元所包含的10个子数据单元。然后将对这两组子数据单元(Q=2时)或者四组子数据单元(Q=4时)进行交织。交织的方式在图4a的相关描述中已经说明,这里不再赘述。本发明对如何进行交织不进行限定,只要最终组成用于输出的数据流中任意两个相邻的子数据单元来自不同的码字即可。
数据处理后进行数据传输的过程中,传输链路上传输的数据流可能会出现连续多个发生错误的数据单元。对此本发明提供了一种优选的实施例。
下文对传输链路上出现连续错误数据单元的这种情况进行举例说明。以图5a为基础,假设数据流A1到A8是没有被执行过数据处理的数据流。A1到A4来自一个FEC模块。A5到A8来自另一个FEC模块。数据流A1到A8被执行如图5a所示的数据处理后得到数据流B1到B6。数据流B1到B6被发送至接收设备。所述接收设备对数据流B1到B6其进行数据处理的反向操作。具体为,使用将数据流A1到A8数据处理到数据流B1到B6数据处理规则对应的反向操作。在图5a的基础上,请参阅图5b。图5b为本发明实施例提供的一种数据处理的反向操作的一个示意图。假设数据流B1在传输过程中B1中的4个数据单元a01、b01、a04和b04均发生了错误(如黑色加粗矩形框)。接收设备500b执行数据处理的反向操作操作后得到的数据流A1到A8。上述4个发生错误的数据单元分别分布在A1、A2、A5和A6中。这4个数据流中不存在连续的发生错误的数据单元,而且处于同一个码字的错误的数据单元个数也减少了。比如说来自同一个码字的数据流A1和A2只具有两个错误的数据单元,而不会出现4个错误的数据单元均分布在自同一个码字的数据流中。这样对A1和A2上进行纠错的FEC模块就只需要面对两个错误的数据单元(一个数据流一个错误数据单元)。所述接收设备500b分别对A1、A2、A5和A6数据流进行纠错的成功率大于对一个包含四个连续的发生错误的数据单元(例如a01、b01、a04和b04)的数据流进行纠错的成功率。
对于数据处理前后数据流的粒度发生变化的情况(例如数据处理后的数据流的粒度大于数据处理前的数据流的粒度),当传输链路上出现连续错误数据单元的这种情况,和数据处理前后数据流的粒度没有发生变化的情况相似,只是传输过程中的数据流B1到B6的粒度均变为子数据单元,在经过数据处理的反向操作后得到的数据流粒度将恢复为所述数据处理前的粒度。对错误数据单元进行纠错的效果和数据处理前后数据流的粒度没有发生变化的情况下对数据处理的反向操作后的数据流中错误数据单元的错误情况相同,这里不再赘述。
接下来对交织的粒度进行进一步描述。PCS中的FEC模块将接收到的码字转换成数据单元。转换出的数据单元的大小可以为1比特,也可以为符号Symbol。1个Symbol的大小可以是一个或多个比特,比如10比特。目前常用的数据处理一般包括两种方式,一种数据处理的方式是数据处理前和数据处理后的数据流的粒度大小均相同,也就是说,数据处理前后的数据流的最小组成均是数据单元,且数据单元的大小相同,比如说数据处理前的数据流的数据单元大小为符号,数据处理后的数据流的数据单元大小也为符号。另一种数据处理的方式是数据处理前后的数据流的粒度不同,比如说数据处理前的省略的数据单元大小为符号,数据处理后的数据流的最小组成变为组成数据单元的子数据单元,每个子数据单元大小为比特。
下文通过附图对这两种常用的数据处理粒度进行举例说明。对于数据处理前后数据流的粒度发生变化的情况,尤其是针对数据处理后的数据流的粒度比数据处理前的数据流的粒度相比变高了的情况,请参阅图6a,其为本发明实施例提供的一种数据处理的一个示意图。在本图的应用场景中,数据处理后的数据流的粒度为比特,数据处理前的数据流的粒度为符号,每个数据单元由多个子数据单元组成,数据处理后的数据流由子数据单元构成,每个子数据单元大小为比特,每个子数据单元为数据处理前的数据单元所包含的子数据单元。M=4,N=3,n=3。变换电路600a具有4个接收端口。分别接收4个数据流A1、A2、A3和A4。每个数据流包含3个数据单元,每个数据单元的大小为符号。这4个数据流对应4×3的矩阵。所述4×3的矩阵中每个元素是一个符号,每个符号假设包括10个子数据单元,每个子数据单元为1比特。
变换电路600a分别利用所述4×3的矩阵中的3个4×1的矩阵中的数据单元生成3个数据流。在生成数据流的过程中提高了生成后的数据流的粒度,使得生成后的每个数据流的粒度提高为子数据单元。如图6a中所示的B1就是以比特为粒度的数据处理后的数据流。B1由大小为1比特的40个子数据单元构成,其中每一个子数据单元由一个比特组成。
对于数据处理前后数据流的粒度没有发生变化的情况,请参阅图6b,其为本发明实施例提供的一种数据处理的一个示意图。在本图的应用场景中,数据处理的粒度为符号,即数据处理前后的数据流的均由数据单元构成。M=4,N=3,n=3。变换电路600b具有4个接收端口,分别接收4个数据流A1、A2、A3和A4。每个数据流包含3个数据单元,每个数据单元的大小为符号,这4个数据流对应4×3的矩阵。所述4×3的矩阵中每个元素是一个符号。
变换电路600b分别利用所述4×3的矩阵中的3个4×1的矩阵中的数据单元生成3个数据流。如图6b中所示的B1和数据处理前的数据流相同,均由大小为符号的数据单元构成。
电层光层之间的数据处理均需要以符号为粒度。本发明提供的这种以符号为粒度的交织方式的实施例,可以有效的兼容电层和光层之间的数据处理。如果满足数据处理后的数据流中任意两个相邻符号来自不同的码字,则可以有效的简化光层的光模块设计复杂度,实现降低成本的效果。
实施例三
本实施例为对应实施例一和实施例二的装置实施例,请参阅图7,其为本发明实施例提供的一种数据处理装置的装置结构图,所述装置包括:
接收单元701,用于通过M个接收端口接收M个数据流。所述M个数据流中每个数据流包括n个数据单元。所述M个接收端口与所述M个数据流一一对应。所述M个数据流对应M×n的矩阵。所述M×n的矩阵中的每个元素是一个数据单元。所述M×n的矩阵包括M个1×n的矩阵。所述M个1×n的矩阵中每个1×n的矩阵对应1个数据流。所述M个1×n的矩阵与所述M个数据流一一对应。所述M个1×n的矩阵中每个1×n的矩阵中的n个数据单元分别是对应的数据流中的n个数据单元。所述M个1×n的矩阵中每个1×n的矩阵中的n个数据单元中的任意两个数据单元中位于右边的数据单元被所述变换电路接收的时间早于位于左边的数据单元被所述变换电路接收的时间。
所述接收单元701可以具体为接收器。有关所述接收单元的描述请参考实施例一S201中的相关描述,这里不再赘述。
生成单元702,用于分别利用所述M×n的矩阵中的n个M×1的矩阵中的M个数据单元生成N个数据流。生成所述N个数据流具体包括利用所述n个M×1的矩阵中的每个M×1的矩阵生成至少一个数据流。
所述生成单元702可以具体为变换器。有关所述生成单元的描述请参考实施例一S202中的相关描述,这里不再赘述。
输出单元703,用于通过N个输出端口发送所述N个数据流。所述N个输出端口与所述N个数据流一一对应。其中M和N都是正整数。
所述输出单元703可以具体为发送器。有关所述生成单元的描述请参考实施例一S203中的相关描述,这里不再赘述。
需要说明的是,图7中所示的装置可以实施如实施例一和实施例二中的数据处理方法。
对于不同应用场景的需求,数据处理后的数据流的粒度可能会相比数据处理前的数据流的粒度发生变化,所述生成单元702根据数据处理的粒度变化所生成的至少一个数据流可以由数据单元组成也可以由子数据单元组成。有关数据流粒度的描述请参考实施例二中的相关描述,这里不再赘述。
对于数据处理前后数据流的粒度没有发生变化的情况,本发明给出了一个优选的实施例,具体为:
所述生成单元702生成的至少一个数据流由M个数据单元组成。所述n个M×1的矩阵中的第i个M×1的矩阵中的M个数据单元与利用所述第i个M×1的矩阵中的M个数据单元生成的至少一个数据流中包含的M个数据单元相同。所述N个数据流中每个数据流包括的数据单元个数相同。
有关如何利用所述第i个M×1的矩阵中的M个数据单元生成至少一个数据流,以及所述N个数据流中每个数据流的构成请参考实施例二中对应部分的描述,这里不再赘述。
对于数据处理前后数据流的粒度发生变化的情况,尤其是针对数据处理后的数据流的粒度大于数据处理前的数据流的粒度的情况,本发明给出了一个优选的实施例,具体为:
所述M×n的矩阵中的每个数据单元由k个子数据单元组成。所述生成单元702生成的所述至少一个数据流由M×k个子数据单元组成。所述n个M×1的矩阵中的第i个M×1的矩阵中的M×k个子数据单元与利用所述第i个M×1的矩阵中的M×k个子数据单元生成的至少一个数据流中包含的M×k个子数据单元相同。所述N个数据流中每个数据流包括的子数据单元个数相同。
有关如何利用所述第i个M×k的矩阵中的M×k个子数据单元生成至少一个数据流,以及所述N个数据流中每个数据流的构成请参考实施例二中对应部分的描述,这里不再赘述。
目前高速数据传输网络(例如以太网)中,数据传输过程中产生的误码率比较高。如何降低发生错误的数据单元对整个传输网络的影响也是目前需要解决的一个问题。因此,本实施例对所述N个数据流进行了进一步的限定,对于数据处理前后数据流的粒度没有发生变化的情况,限定为:
所述生成单元702生成的所述N个数据流中每个数据流中相邻的两个数据单元来自不同的码字。
对于数据处理前后数据流的粒度发生变化的情况(例如数据处理后的数据流的粒度大于数据处理前的数据流的粒度的情况),限定为:
所述生成单元702生成的所述N个数据流中每个数据流中相邻的两个子数据单元来自不同的码字。
对于码字的概念以及与FEC模块的关系请参考实施例二中相关描述,这里不再赘述。
对于数据处理前后数据流的粒度没有发生变化的情况,所述N个数据流中每个数据流中相邻的两个数据单元来自不同的码字可以通过下述两种方式实现:
方式1,所述生成单元702生成的所述N个数据流中每个数据流中相邻的两个数据单元是同一个前向纠错FEC电路输出的数据单元。
方式2,所述生成单元702生成的所述N个数据流中每个数据流中相邻的两个数据单元分别是两个FEC电路输出的数据单元。
这里请参考如图4a中的相关部分描述。
对于数据处理前后数据流的粒度发生变化的情况(例如数据处理后的数据流的粒度大于数据处理前的数据流的粒度),所述N个数据流中每个数据流中相邻的两个子数据单元来自不同的码字可以通过下述两种方式实现:
方式1,所述生成单元702生成的所述N个数据流中每个数据流中相邻的两个子数据单元分别属于同一个前向纠错FEC电路输出的两个数据单元。
方式2,所述生成单元702生成的所述N个数据流中每个数据流中相邻的两个子数据单元分别来自两个FEC电路。
这里请参考如图4a中的相关部分描述。
接下来将对于数据处理前后数据流的粒度没有发生变化的情况,对任一个M×1的矩阵通过何种方法生成一个数据流进行进一步的描述。本发明实施例还提供了一种优选的生成单元,具体为:
所述生成单元702利用第j个M×1的矩阵中的M个数据单元生成由M个数据单元组成的至少一个数据流。其中,利用第j个M×1的矩阵中的M个数据单元生成由M个数据单元组成的至少一个数据流具体包括:
所述生成单元702对X组数据单元进行交织以生成由M个数据单元组成的一个数据流。所述第j个M×1的矩阵中的M个数据单元具体包括所述X组数据单元。每组数据单元中数据单元的数量为M/X。所述X组数据单元中任一组数据单元中数据单元所来自的码字与所述X组数据单元中其他组数据单元中数据单元所来自的码字不同,X为大于1的整数。
这里请参考如图4a中的相关描述。
对于数据处理前后数据流的粒度发生变化的情况(例如数据处理后的数据流的粒度大于数据处理前的数据流的粒度),对所述生成单元702利用任一个M×1的矩阵通过何种方法生成一个数据流进行进一步的描述。本发明实施例还提供了一种优选的生成单元,具体为:
所述生成单元702利用所述n个M×1的矩阵中的M×k个子数据单元生成所述N个数据流具体包括利用第j个M×1的矩阵中的M×k个子数据单元生成由M×k个子数据单元组成的至少一个数据流。其中,利用第j个M×1的矩阵中的M×k个子数据单元生成由M×k个子数据单元组成的至少一个数据流具体包括:
所述生成单元702对X组子数据单元进行交织以生成由M×k个子数据单元组成的一个数据流。所述第j个M×1的矩阵中的M×k个子数据单元具体包括所述X组子数据单元。每组子数据单元中子数据单元的数量为(M×k)/X。所述X组子数据单元中任一组子数据单元中子数据单元所来自的码字与所述X组子数据单元中其他组子数据单元中子数据单元所来自的码字不同。X为大于1的整数。
这里请参考如图4a中的相关描述。
目前高速数据传输网络(例如以太网)中,在传输链路上数据传输过程中产生的误码率比较高。传输链路上传输的数据流有可能会出现连续多个发生错误的数据单元。如何降低发生错误的数据单元对整个传输网络的影响也是目前需要解决的一个问题。对此本发明提供了一个优选的实施例。
这里请参考如图4b中的相关描述。
接下来对于所述生成单元702利用所述M×n的矩阵中任一个M×1的矩阵生成多个数据流的情况进行描述。以下以所述生成单元702利用任一个M×1的矩阵生成两个数据流为例进行说明。对于数据处理前后数据流的粒度没有发生变化的情况:
所述生成单元702利用第j个M×1的矩阵中的M个数据单元生成由M个数据单元组成的至少一个数据流,其中,利用第j个M×1的矩阵中的M个数据单元生成由M个数据单元组成的至少一个数据流具体包括:
所述生成单元702对P个集合中每个集合中的Q组数据单元进行交织以生成由M个数据单元组成的P个数据流。所述第j个M×1的矩阵中的M个数据单元与所述P个集合中的所有的数据单元相同。所述P个集合中的每个集合由Q组数据单元组成。所述Q组数据单元中任一组数据单元中数据单元所来自的码字与所述Q组数据单元中其他组数据单元中数据单元所来自的码字不同。每组数据单元中数据单元的数量为M/(P×Q)。P和Q都为大于1的整数。
这里请参考如图5a中的相关描述。
对于数据处理前后数据流的粒度发生变化的情况(例如数据处理后的数据流的粒度大于数据处理前的数据流的粒度):
所述生成单元702利用所述n个M×1的矩阵中的M×k个子数据单元生成所述N个数据流具体包括利用第j个M×1的矩阵中的M×k个子数据单元生成由M×k个子数据单元组成的至少一个数据流,其中,利用第j个M×1的矩阵中的M×k个子数据单元生成由M×k个子数据单元组成的至少一个数据流具体包括:
所述生成单元702对P个集合中每个集合中的Q组子数据单元进行交织以生成由M×k个子数据单元组成的P个数据流。所述第j个M×1的矩阵中的M×k个子数据单元与所述P个集合中的所有的子数据单元相同。所述P个集合中的每个集合由Q组子数据单元组成。所述Q组子数据单元中任一组子数据单元中子数据单元所来自的码字与所述Q组子数据单元中其他组子数据单元中子数据单元所来自的码字不同。每组子数据单元中子数据单元的数量为(M×k)/(P×Q)。P和Q都为大于1的整数。
这里请参考如图5a中的相关描述。
数据处理后进行数据传输的过程中,传输链路上传输的数据流可能会出现连续多个发生错误的数据单元。对此本发明提供了一种优选的实施例。请参考如图5b中的相关描述。
接下来对交织的粒度进行进一步描述。以及通过附图对这两种常用的数据处理粒度进行举例说明。具体请参考如图6a和图6b中的相关描述。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如媒体网关等网络通信设备)执行本发明各个实施例或者实施例的某些部分所述的方法。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本发明的优选实施方式,并非用于限定本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (22)

1.一种数据处理方法,其特征在于,包括:
变换电路通过M个接收端口接收M个数据流,所述M个数据流中每个数据流包括n个数据单元,所述M个接收端口与所述M个数据流一一对应,所述M个数据流对应M×n的矩阵,所述M×n的矩阵中的每个元素是一个数据单元,所述M×n的矩阵包括M个1×n的矩阵,所述M个1×n的矩阵中每个1×n的矩阵对应1个数据流,所述M个1×n的矩阵与所述M个数据流一一对应,所述M个1×n的矩阵中每个1×n的矩阵中的n个数据单元分别是对应的数据流中的n个数据单元,所述M个1×n的矩阵中每个1×n的矩阵中的n个数据单元中的任意两个数据单元中位于右边的数据单元被所述变换电路接收的时间早于位于左边的数据单元被所述变换电路接收的时间;
所述变换电路分别利用所述M×n的矩阵中的n个M×1的矩阵中的M个数据单元生成N个数据流,生成所述N个数据流具体包括利用所述n个M×1的矩阵中的每个M×1的矩阵生成至少一个数据流;以及
所述变换电路通过N个输出端口发送所述N个数据流,所述N个输出端口与所述N个数据流一一对应,其中M和N都是正整数。
2.根据权利要求1所述的方法,其特征在于,
所述至少一个数据流由M个数据单元组成,所述n个M×1的矩阵中的第i个M×1的矩阵中的M个数据单元与利用所述第i个M×1的矩阵中的M个数据单元生成的至少一个数据流中包含的M个数据单元相同,所述N个数据流中每个数据流包括的数据单元个数相同。
3.根据权利要求1或2所述的方法,其特征在于,所述N个数据流中每个数据流中相邻的两个数据单元来自不同的码字codeword。
4.根据权利要求3所述的方法,其特征在于,
所述N个数据流中每个数据流中相邻的两个数据单元是同一个前向纠错FEC电路输出的数据单元,或者
所述N个数据流中每个数据流中相邻的两个数据单元分别是两个FEC电路输出的数据单元。
5.根据权利要求1或2所述的方法,其特征在于,
所述变换电路利用所述n个M×1的矩阵中的M个数据单元生成所述N个数据流具体包括利用第j个M×1的矩阵中的M个数据单元生成由M个数据单元组成的至少一个数据流,其中,利用第j个M×1的矩阵中的M个数据单元生成由M个数据单元组成的至少一个数据流具体包括:
所述变换电路对X组数据单元进行交织以生成由M个数据单元组成的一个数据流,所述第j个M×1的矩阵中的M个数据单元具体包括所述X组数据单元,每组数据单元中数据单元的数量为M/X,所述X组数据单元中任一组数据单元中数据单元所来自的码字与所述X组数据单元中其他组数据单元中数据单元所来自的码字不同,X为大于1的整数。
6.根据权利要求1或2所述的方法,其特征在于,
所述变换电路利用所述n个M×1的矩阵中的M个数据单元生成所述N个数据流具体包括利用第j个M×1的矩阵中的M个数据单元生成由M个数据单元组成的至少一个数据流,其中,利用第j个M×1的矩阵中的M个数据单元生成由M个数据单元组成的至少一个数据流具体包括:
所述变换电路对P个集合中每个集合中的Q组数据单元进行交织以生成由M个数据单元组成的P个数据流,所述第j个M×1的矩阵中的M个数据单元与所述P个集合中的所有的数据单元相同,所述P个集合中的每个集合由Q组数据单元组成,所述Q组数据单元中任一组数据单元中数据单元所来自的码字与所述Q组数据单元中其他组数据单元中数据单元所来自的码字不同,每组数据单元中数据单元的数量为M/(P×Q),P和Q都为大于1的整数。
7.根据权利要求1所述的方法,其特征在于,
所述M×n的矩阵中的每个数据单元由k个子数据单元组成,所述至少一个数据流由M×k个子数据单元组成,所述n个M×1的矩阵中的第i个M×1的矩阵中的M×k个子数据单元与利用所述第i个M×1的矩阵中的M×k个子数据单元生成的至少一个数据流中包含的M×k个子数据单元相同,所述N个数据流中每个数据流包括的子数据单元个数相同。
8.根据权利要求1或7所述的方法,其特征在于,所述N个数据流中每个数据流中相邻的两个子数据单元来自不同的码字codeword。
9.根据权利要求8所述的方法,其特征在于,
所述N个数据流中每个数据流中相邻的两个子数据单元分别属于同一个前向纠错FEC电路输出的两个数据单元,或者
所述N个数据流中每个数据流中相邻的两个子数据单元分别来自两个FEC电路。
10.根据权利要求1、7或9所述的方法,其特征在于,
所述变换电路利用所述n个M×1的矩阵中的M×k个子数据单元生成所述N个数据流具体包括利用第j个M×1的矩阵中的M×k个子数据单元生成由M×k个子数据单元组成的至少一个数据流,其中,利用第j个M×1的矩阵中的M×k个子数据单元生成由M×k个子数据单元组成的至少一个数据流具体包括:
所述变换电路对X组子数据单元进行交织以生成由M×k个子数据单元组成的一个数据流,所述第j个M×1的矩阵中的M×k个子数据单元具体包括所述X组子数据单元,每组子数据单元中子数据单元的数量为(M×k)/X,所述X组子数据单元中任一组子数据单元中子数据单元所来自的码字与所述X组子数据单元中其他组子数据单元中子数据单元所来自的码字不同,X为大于1的整数。
11.根据权利要求1、7或9所述的方法,其特征在于,
所述变换电路利用所述n个M×1的矩阵中的M×k个子数据单元生成所述N个数据流具体包括利用第j个M×1的矩阵中的M×k个子数据单元生成由M×k个子数据单元组成的至少一个数据流,其中,利用第j个M×1的矩阵中的M×k个子数据单元生成由M×k个子数据单元组成的至少一个数据流具体包括:
所述变换电路对P个集合中每个集合中的Q组子数据单元进行交织以生成由M×k个子数据单元组成的P个数据流,所述第j个M×1的矩阵中的M×k个子数据单元与所述P个集合中的所有的子数据单元相同,所述P个集合中的每个集合由Q组子数据单元组成,所述Q组子数据单元中任一组子数据单元中子数据单元所来自的码字与所述Q组子数据单元中其他组子数据单元中子数据单元所来自的码字不同,每组子数据单元中子数据单元的数量为(M×k)/(P×Q),P和Q都为大于1的整数。
12.一种数据处理装置,其特征在于,包括:
接收单元,用于通过M个接收端口接收M个数据流,所述M个数据流中每个数据流包括n个数据单元,所述M个接收端口与所述M个数据流一一对应,所述M个数据流对应M×n的矩阵,所述M×n的矩阵中的每个元素是一个数据单元,所述M×n的矩阵包括M个1×n的矩阵,所述M个1×n的矩阵中每个1×n的矩阵对应1个数据流,所述M个1×n的矩阵与所述M个数据流一一对应,所述M个1×n的矩阵中每个1×n的矩阵中的n个数据单元分别是对应的数据流中的n个数据单元,所述M个1×n的矩阵中每个1×n的矩阵中的n个数据单元中的任意两个数据单元中位于右边的数据单元被变换电路接收的时间早于位于左边的数据单元被所述变换电路接收的时间;
生成单元,用于分别利用所述M×n的矩阵中的n个M×1的矩阵中的M个数据单元生成N个数据流,生成所述N个数据流具体包括利用所述n个M×1的矩阵中的每个M×1的矩阵生成至少一个数据流;以及
输出单元,用于通过N个输出端口发送所述N个数据流,所述N个输出端口与所述N个数据流一一对应,其中M和N都是正整数。
13.根据权利要求12所述的装置,其特征在于,
所述生成单元生成的至少一个数据流由M个数据单元组成,所述n个M×1的矩阵中的第i个M×1的矩阵中的M个数据单元与利用所述第i个M×1的矩阵中的M个数据单元生成的至少一个数据流中包含的M个数据单元相同,所述N个数据流中每个数据流包括的数据单元个数相同。
14.根据权利要求12或13所述的装置,其特征在于,
所述生成单元生成的所述N个数据流中每个数据流中相邻的两个数据单元来自不同的码字codeword。
15.根据权利要求14所述的装置,其特征在于,
所述生成单元生成的所述N个数据流中每个数据流中相邻的两个数据单元是同一个前向纠错FEC电路输出的数据单元,或者
所述生成单元生成的所述N个数据流中每个数据流中相邻的两个数据单元分别是两个FEC电路输出的数据单元。
16.根据权利要求12或13所述的装置,其特征在于,
所述生成单元利用第j个M×1的矩阵中的M个数据单元生成由M个数据单元组成的至少一个数据流,其中,利用第j个M×1的矩阵中的M个数据单元生成由M个数据单元组成的至少一个数据流具体包括:
所述生成单元对X组数据单元进行交织以生成由M个数据单元组成的一个数据流,所述第j个M×1的矩阵中的M个数据单元具体包括所述X组数据单元,每组数据单元中数据单元的数量为M/X,所述X组数据单元中任一组数据单元中数据单元所来自的码字与所述X组数据单元中其他组数据单元中数据单元所来自的码字不同,X为大于1的整数。
17.根据权利要求12或13所述的装置,其特征在于,
所述生成单元利用第j个M×1的矩阵中的M个数据单元生成由M个数据单元组成的至少一个数据流,其中,利用第j个M×1的矩阵中的M个数据单元生成由M个数据单元组成的至少一个数据流具体包括:
所述生成单元对P个集合中每个集合中的Q组数据单元进行交织以生成由M个数据单元组成的P个数据流,所述第j个M×1的矩阵中的M个数据单元与所述P个集合中的所有的数据单元相同,所述P个集合中的每个集合由Q组数据单元组成,所述Q组数据单元中任一组数据单元中数据单元所来自的码字与所述Q组数据单元中其他组数据单元中数据单元所来自的码字不同,每组数据单元中数据单元的数量为M/(P×Q),P和Q都为大于1的整数。
18.根据权利要求12所述的装置,其特征在于,
所述M×n的矩阵中的每个数据单元由k个子数据单元组成,所述生成单元生成的所述至少一个数据流由M×k个子数据单元组成,所述n个M×1的矩阵中的第i个M×1的矩阵中的M×k个子数据单元与利用所述第i个M×1的矩阵中的M×k个子数据单元生成的至少一个数据流中包含的M×k个子数据单元相同,所述N个数据流中每个数据流包括的子数据单元个数相同。
19.根据权利要求12或18所述的装置,其特征在于,
所述生成单元生成的所述N个数据流中每个数据流中相邻的两个子数据单元来自不同的码字codeword。
20.根据权利要求19所述的装置,其特征在于,
所述生成单元生成的所述N个数据流中每个数据流中相邻的两个子数据单元分别属于同一个前向纠错FEC电路输出的两个数据单元,或者
所述生成单元生成的所述N个数据流中每个数据流中相邻的两个子数据单元分别来自两个FEC电路。
21.根据权利要求12、18或20所述的装置,其特征在于,
所述生成单元利用所述n个M×1的矩阵中的M×k个子数据单元生成所述N个数据流具体包括利用第j个M×1的矩阵中的M×k个子数据单元生成由M×k个子数据单元组成的至少一个数据流,其中,利用第j个M×1的矩阵中的M×k个子数据单元生成由M×k个子数据单元组成的至少一个数据流具体包括:
所述生成单元对X组子数据单元进行交织以生成由M×k个子数据单元组成的一个数据流,所述第j个M×1的矩阵中的M×k个子数据单元具体包括所述X组子数据单元,每组子数据单元中子数据单元的数量为(M×k)/X,所述X组子数据单元中任一组子数据单元中子数据单元所来自的码字与所述X组子数据单元中其他组子数据单元中子数据单元所来自的码字不同,X为大于1的整数。
22.根据权利要求12、18或20所述的装置,其特征在于,
所述生成单元利用所述n个M×1的矩阵中的M×k个子数据单元生成所述N个数据流具体包括利用第j个M×1的矩阵中的M×k个子数据单元生成由M×k个子数据单元组成的至少一个数据流,其中,利用第j个M×1的矩阵中的M×k个子数据单元生成由M×k个子数据单元组成的至少一个数据流具体包括:
所述生成单元对P个集合中每个集合中的Q组子数据单元进行交织以生成由M×k个子数据单元组成的P个数据流,所述第j个M×1的矩阵中的M×k个子数据单元与所述P个集合中的所有的子数据单元相同,所述P个集合中的每个集合由Q组子数据单元组成,所述Q组子数据单元中任一组子数据单元中子数据单元所来自的码字与所述Q组子数据单元中其他组子数据单元中子数据单元所来自的码字不同,每组子数据单元中子数据单元的数量为(M×k)/(P×Q),P和Q都为大于1的整数。
CN201480024928.1A 2014-05-21 2014-05-21 数据处理方法及装置 Active CN105210333B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/078021 WO2015176252A1 (zh) 2014-05-21 2014-05-21 数据处理方法及装置

Publications (2)

Publication Number Publication Date
CN105210333A CN105210333A (zh) 2015-12-30
CN105210333B true CN105210333B (zh) 2018-05-18

Family

ID=54553207

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480024928.1A Active CN105210333B (zh) 2014-05-21 2014-05-21 数据处理方法及装置

Country Status (2)

Country Link
CN (1) CN105210333B (zh)
WO (1) WO2015176252A1 (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101242189A (zh) * 2007-02-09 2008-08-13 卓胜微电子(上海)有限公司 指针寻址时间解交织方法
CN101854222A (zh) * 2009-03-31 2010-10-06 华为技术有限公司 一种数据处理的方法、通信装置和系统
CN101944972A (zh) * 2010-09-20 2011-01-12 华为技术有限公司 编解码方法、装置以及通信系统
CN102480334A (zh) * 2010-11-24 2012-05-30 中兴通讯股份有限公司 一种速率匹配的方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2427807B (en) * 2004-02-05 2007-10-10 Zakrytoe Aktsionernoe Obschest Method and apparatus to reduce crosstalk in a mimo communication system
CN100525172C (zh) * 2005-07-27 2009-08-05 杭州华三通信技术有限公司 多路物理层接口复用传输装置
CN101692218A (zh) * 2009-09-27 2010-04-07 上海大学 一种数据高速传输方法
US8823568B2 (en) * 2012-09-28 2014-09-02 Intel Corporation Methods and arrangements for high-speed digital-to-analog conversion

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101242189A (zh) * 2007-02-09 2008-08-13 卓胜微电子(上海)有限公司 指针寻址时间解交织方法
CN101854222A (zh) * 2009-03-31 2010-10-06 华为技术有限公司 一种数据处理的方法、通信装置和系统
CN101944972A (zh) * 2010-09-20 2011-01-12 华为技术有限公司 编解码方法、装置以及通信系统
CN102480334A (zh) * 2010-11-24 2012-05-30 中兴通讯股份有限公司 一种速率匹配的方法及装置

Also Published As

Publication number Publication date
WO2015176252A1 (zh) 2015-11-26
CN105210333A (zh) 2015-12-30

Similar Documents

Publication Publication Date Title
CN104426631B (zh) 对数据进行处理的方法及装置
US9800361B2 (en) Flexible ethernet switching systems and methods
US8385346B2 (en) System and method for forming N0GBASE-T
USRE40684E1 (en) Fast cyclic redundancy check (CRC) generation
US20170006360A1 (en) Flexible ethernet chip-to-chip inteface systems and methods
CN108667739A (zh) 拥塞控制方法、装置及系统
CN103905281B (zh) 可互换实现网络控制器与网络终端功能的fc‑ae‑1553总线节点卡
CN106257852A (zh) 用于可变前向纠错的技术
EP2020104B1 (en) Multiple fiber optic gigabit ethernet links channelized over single optical link
CN1623302A (zh) 具有集成以太网交换机接口的atm端口模块
CN207124632U (zh) 一种双千兆电口光纤收发器及应用其的通信系统
CN105009540A (zh) 一种加扰方法及加扰装置
CN108462904B (zh) 基于硬件的保护组倒换方法及光通信设备
CN102316036A (zh) 一种在otn平台上实现ptn功能的方法及装置
CN101192900B (zh) 用于电信级以太网的应用前向纠错机制的通信方法和设备
CN107786299A (zh) 一种发送和接收业务的方法、装置和网络系统
CN107005508A (zh) 数据处理方法和数据处理装置
CN101141345A (zh) 一种以太网业务的汇聚装置及方法
CN101841744A (zh) 百吉比特以太网在光传输网中传输的方法及装置
CN102271018A (zh) 一种基于p-Cycle的网络编码光组播多故障保护方法
CN109698728A (zh) Interlaken接口与FlexE IMP的对接方法、对接设备及存储介质
CN1849767B (zh) 前向纠错映射和去映射技术
CN105210333B (zh) 数据处理方法及装置
US9071373B2 (en) Multiplexed serial media independent interface
Ethernet Implementation agreement

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