数据链路层高性能容错的方法

文档序号:9869845阅读:485来源:国知局
数据链路层高性能容错的方法
【技术领域】
[0001]本发明涉及一种用于PCIE数据链路层高性能容错的方法。
【背景技术】
[0002]PCIE是用于互连诸如计算和通信平台应用中外围设备的第三代高性能I/O总线。数据链路层位于PCIE主控核的中间层,主要功能是链路管理和保证数据的传输的可靠性和完整性。数据链路层使用容错和重传机制保证数据传送的完整性和一致性。目前PCIE数据链路层的容错性很低,只能检错,不能纠错。根据目前PCIE的研究现状得知,为了降低数据在数据链路中传输的误码率,PCIE运用循环冗余校验CRC进行检错,CRC是一种在数据通信中应用很广泛的差错控制编码,具有较强的检错能力。下面详细介绍CRC在数据链路层的检错过程。
[0003]数据链路层的发送端接收来自事务层的数据TLP,在发送TLP之前,先将TLP进行封装,加上序列号前缀和CRC后缀,CRC后缀是根据TLP数据包的内容,运用CRC算法生成的校验码。将封装好的TLP副本存放在重发缓冲区中,同时将该TLP发送出去。数据链路层的接收端从物理层接收TLP,此时该TLP中含有序列号前缀和CRC后缀,接收到TLP后,根据TLP数据包中除CRC字段以外的数据,用跟发送端同样的CRC算法,计算得到期望CRC值,将期望CRC值跟TLP携带的CRC进行比较,若匹配,则说明CRC校验正确,继续进行其他的检查。若不匹配,CRC校验错误,说明数据传输过程中发生链路错误,则向发送端回复NAK数据链路层数据包(DLLP),发送端对收到的NAKDLLP所对应的全部TLP,都会进行重发操作,以保证每个TLP数据包能够传输正确。
[0004]PCIE数据链路层的现有容错技术仅能够检查数据在链路传输过程中发生的错误,但不能对其纠正。同时,由于不能纠错,所有发生链路传输错误的数据包都要重发,不仅增加了链路传输的负担,也降低了数据传输的效率,造成带宽和时间的浪费。

【发明内容】

[0005]本发明的目的在于克服上述不足,提供一种用于PCIE数据链路层高性能容错的方法,能够增加链路的容错性,同时可以节省带宽和时间,提高链路传输的效率。
[0006]本发明的目的是这样实现的:一种用于PCIE数据链路层高性能容错的方法,在PCIE原有的CRC检错基础上,加入ECC实时纠错和自修复功能,在检出错误的同时能够对其进行纠正,并且计算速度很快。
【具体实施方式】
[0007]其进一步的技术方案为:具体步骤如下:
[0008]I)在数据链路层发送端加上ECC编码电路,编码电路负责编码,生成TLP数据包的初始的ECC校验码;
[0009]2)在接收端电路结构中加入ECC解码电路,解码电路负责生成新的ECC校验码,并将新的ECC校验码与数据所携带的初始的ECC校验码进行异或检错和纠错;
[0010]3)当解码电路检测到错误但是不能对其纠正(超过编码算法的纠错范围)时,会生成
[0011]—个错误发生标识信号,以表明有不可纠正的错误产生,则根据ACK/NAK协议对不可纠正的错包进行重发;
[0012]4)在数据链路层发送端接收来自事务层的TLP数据包后,根据协议内容进行封装,在现有容错技术(加入CRC冗余循环校验码)的基础上,本发明由ECC编码电路生成ECC校验码,等完整的TLP接收完毕后将ECC校验码加在数据包的包尾;
[0013]5)在数据链路层的接收端,接收来自物理层的TLP数据,对收到的TLP数据包进行检错,先进行CRC校验,若CRC校验无误,则说明无链路传输错误,则不需要进行ECC纠错。若CRC校验错误,则进行ECC纠错。目前常用的ECC编码是汉明码,可以纠错一位,检错2位,若有多位错误为,不可纠正的,则给出错误标识信号,以便通知发送端对出错的TLP进行重发。
[0014]所述ECC校验纠错是基于汉明编解码方法,每512字节的数据块将生成3个字节长度的ECC校验码。
[0015]与现有技术相比,本发明的有益效果是:
[0016]本发明提高了 PCIE数据链路的容错性能,能够实现纠错功能,通过在现有的数据链路的容错技术基础上,加入ECC实时纠错和自修复功能,使得原来只能检错,不能纠错的容错系统,能够实现纠错功能,从而增强链路的容错性。
【主权项】
1.一种用于PCIE数据链路层高性能容错的方法,其特征在于:在PCIE原有的CRC检错基础上,加入ECC实时纠错和自修复功能,在检出错误的同时能够对其进行纠正,并且提高计算速度。2.根据权利要求1所述一种用于PCIE数据链路层高性能容错的方法,其特征在于具体步骤如下: 1)在数据链路层的发送端加上ECC编码电路,ECC编码电路负责编码,生成TLP数据包的初始ECC校验码; 2)在上述数据链路层的接收端电路结构中加入ECC解码电路,ECC解码电路负责生成新的ECC校验码,并将新的ECC校验码与数据所携带的初始ECC校验码进行异或检错和纠错; 3)当ECC解码电路检测到错误但是不能对其纠正时,会生成一个错误发生标识信号,以表明有不可纠正的错误产生,则根据ACK/NAK协议对不可纠正的错包进行重发; 4)在数据链路层的发送端接收来自事务层的TLP数据包后,根据协议内容进行封装,在现有容错技术的基础上,由ECC编码电路生成ECC校验码,等完整的TLP接收完毕后将ECC校验码加在数据包的包尾; 5)在数据链路层的接收端接收来自物理层的TLP数据包,对收到的TLP数据包进行检错,先进行CRC校验,若CRC校验无误,则说明无链路传输错误,则不需要进行ECC纠错,若CRC校验错误,则进行ECC纠错。3.根据权利要求2所述一种用于PCIE数据链路层高性能容错的方法,其特征在于:所述ECC校验纠错是基于汉明编解码方法,每512字节的数据块将生成3个字节长度的ECC校验码。
【专利摘要】本发明涉及一种用于PCIE数据链路层高性能容错的方法,在PCIE原有的CRC检错基础上,加入错误检测和纠正(ECC,Error?Checking?and?Correcting)码实时纠错和自修复功能,在检出错误的同时能够对其进行纠正,并且计算速度很快。
【IPC分类】H04L1/00
【公开号】CN105634652
【申请号】CN201410582963
【发明人】李 东
【申请人】青岛金讯网络工程有限公司
【公开日】2016年6月1日
【申请日】2014年10月27日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1