模块化且可扩展的循环冗余校验计算电路制造技术

技术编号:12393452 阅读:84 留言:0更新日期:2015-11-26 01:05
本发明专利技术揭示用于执行循环冗余校验的装置以及方法。例如,装置(100)具有用于将数据字分解成多个路径的分解器(105)。所述装置还具有多个循环冗余校验单元(110A-110N)。所述单元中的每个单元用于处理所述路径中的相应一个路径。另外,所述单元(110A-110N)中的每个单元包含用于输出在所述单元内结束的数据包的循环冗余校验值的第一输出端口(113A-113N),以及用于输出在所述单元内起始或持续的数据包的循环冗余校验值的第二输出端口(112A-112N)。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术大体上涉及用于对高数据速率下的数据包执行循环冗余校验计算的装置(例如,现场可编程门阵列等集成电路)以及方法。
技术介绍
循环冗余码(CRCs)广泛应用于电信和网络中以确保数据完整性。例如,用附加的CRC-32码(32位CRC码)传输每个以太网数据包。已经使用移位寄存器串联地实施用于执行循环冗余检验的电路。然而,此方法不足以跟上现行的数据速率。另外,虽然对于多达100Gb/s的数据速率存在若干CRC电路设计,但是这些设计通常包括使用相对狭窄的数据总线,其具有不超过512位的输入宽度。
技术实现思路
在一个实施例中,揭示一种用于执行循环冗余校验的装置。例如,所述装置包括用于将数据字分解成多个路径的分解器。所述装置还包括多个循环冗余校验单元。所述单元中的每个单元用于处理所述路径中的相应一个路径。另外,所述单元中的每个单元包括用于输出在所述单元内结束的数据包的循环冗余校验值的第一输出端口以及用于输出在所述单元内起始或持续的数据包的循环冗余校验值的第二输出端口。在各种实施例中:通过多个循环冗余校验单元处理的数据包的大小是路径中的每个路径的至少路径大小;所述装置进一步包括至少一个合并器,其用于合并在多个循环冗余校验单元中的第一单元内起始或持续的数据包的第一循环冗余校验值与在多个循环冗余校验单元中的第二单元内结束的数据包的第二循环冗余校验值;所述至少一个合并器用于对第一循环冗余校验值和第二循环冗余校验值执行异或运算;在多个循环冗余校验单元中的第一单元内起始或持续的数据包和在多个循环冗余校验单元中的第二单元内结束的数据包是同一数据包;所述装置进一步包括至少一个校验电路,其用于校验通过多个循环冗余校验单元中的至少两个单元处理的至少一个数据包是否在多个循环冗余校验单元中的所述至少两个单元之间连续;当在与所述两个单元中的第一单元相关联的第一路径中存在数据包起始信号或数据包在第一路径中持续时,以及当在与所述两个单元中的第二单元相关联的第二路径中存在数据包结束信号时,校验电路确定数据包在所述两个单元之间连续;循环冗余校验单元中的每个单元进一步包括用于将路径中的一个路径分解成多个通路的分解器以及用于计算多个通路中的相应一个通路的位的部分循环冗余校验值的循环冗余校验模块;M个循环冗余校验单元中的每个单元进一步包括选择模块,其用于选择循环冗余校验值以用于作为在循环冗余校验单元内结束的数据包的循环冗余校验值来输出;选择单元用于根据通路中的一个通路中的数据包结束信号或若在所述通路中的任何通路中不存在数据包结束信号则根据默认条件选择中间循环冗余校验值,以用于作为在循环冗余校验单元内结束的数据包的循环冗余校验值来输出;循环冗余校验单元中的每个单元进一步包括选择模块,其用于选择循环冗余校验值以用于作为在循环冗余校验单元内起始或持续的数据包的循环冗余校验值来输出;所述选择模块用于根据通路中的一个通路中的数据包起始信号或若在所述通路中的任何通路中不存在数据包起始信号则根据默认条件选择循环冗余校验值,以用于作为在循环冗余校验单元内起始或持续的数据包的循环冗余校验值来输出;循环冗余校验单元中的每个单元进一步包括至少一个合并器,其用于合并来自至少第一循环冗余校验模块的部分循环冗余校验值与来自至少第二循环冗余校验模块的部分循环冗余校验值,以输出与第二循环冗余校验模块相关联的通路中的相应一个通路的循环冗余校验值;循环冗余校验单元中的每个单元进一步包括至少一个推进单元,其用于根据在至少一个推进单元的通路与目的地通路之间的位的数目对至少一个部分循环冗余校验值进行位推进;所述装置进一步包括用于接收来自前一数据字的累计循环冗余校验值的输入端口和/或用于输出累计循环冗余校验值以用于下一数据字的输出端口 ;所述装置进一步包括至少一个合并器,其用于合并累计循环冗余校验值与在循环冗余校验单元中的至少一个单元内结束的数据包的至少一个循环冗余校验值;所述装置进一步包括至少一个推进单元,其用于根据在至少一个推进单元的路径与目的地路径之间的位的数目对至少一个部分循环冗余校验值进行位推进;所述装置进一步包括至少一个展开单元,其用于根据在数据包的结尾与通路的结尾之间或在数据包的结尾与路径的结尾之间的空位数展开至少一个循环冗余校验值。在另一实施例中,揭示用于执行循环冗余校验的另一装置。例如,所述装置包括用于处理数据字的多个循环冗余校验单元。在一个实施例中,所述循环冗余校验单元中的每个单元用于处理数据字的一部分且用于输出相应循环冗余校验值。所述装置还包含选择单元,其用于选择多个相应循环冗余校验值以用于作为相应多个数据包的最终循环冗余校验值来输出。数据字大于最小数据包大小。在另一实施例中,揭示一种用于执行循环冗余校验的方法。例如,所述方法包括将数据字分解成多个路径以及处理所述路径中的每个路径。在一个实施例中,对于所述路径中的每个路径,所述处理包括计算在路径内结束的数据包的循环冗余校验值以及计算在路径内起始或持续的数据包的循环冗余校验值。【附图说明】附图示出根据本专利技术的一个或多个方面的示例性实施例;然而,附图不应被视作限制所示出的实施例的揭示内容,而是仅用于说明和理解。图1示出了 CRC电路/装置实施方案的方块图;图2示出了 CRC单元的方块图;图3示出了 CRC单元的替代实施例的方块图;图4示出了在路径上和/或通过CRC单元处理的位的示例性情境的时序图;图5示出了用于校验数据包是否在两个CRC单元之间连续的校验电路的方块图;图6示出了在路径上和/或通过CRC单元处理的位的其它示例性情境的时序图;图7示出了用于执行循环冗余校验的方法的方块图;以及图8示出了适用于执行本文中所描述的功能的通用计算机或计算装置的高阶方块图。【具体实施方式】本专利技术大体上涉及用于执行循环冗余校验的装置以及方法。例如,本专利技术可以在集成电路(IC)内实施,例如,可编程逻辑装置(PLD)、专用1C、现场可编程门阵列(FPGA)等,从而对在高位速率下以及在宽数据总线上接收到的数据包执行循环冗余校验运算。本专利技术的实施例可以使用具有包含1024位以及超过1024位的输入宽度的宽数据总线支持超过100Gb/S的数据传输速率,例如,从400Gb/s往上。电路架构是模块化且可扩展的,从而允许提供资源性能的权衡。循环冗余码(CRC)广泛应用于电信和网络以及许多其它应用中以确保数据完整性。例如,用也称为帧校验序列(FCS)的附加的CRC-32码(32位CRC码)传输以太网数据包。已经使用移位寄存器串联地实施用于执行循环冗余检验的电路。然而,此方法不足以跟上现行的数据速率。另外,虽然对于多达100Gb/S的数据速率存在若干CRC电路设计,但是这些设计通常包括使用具有不超过512位的输入宽度/字长的相对狭窄的数据总线。这限制了未来的吞吐量扩展,因为变得更难以获得时脉频率的显著提高。为了实现更高的吞吐量,例如400Gb/s,可以使用更宽的数据总线,例如,CRC电路可用来处理每时钟周期超过1024位的更宽的数据总线。然而,因为网络数据包/以太网帧的最小大小是512位,所以在此宽数据总线上可以同时呈现多个数据包。数据包可以在数据总线内的任何位置处起始和结束。因此,随着每字的数据包的数目增加,由此考虑到不同数据包位置来说本文档来自技高网...

【技术保护点】
一种装置,其包括:分解器,其用于将数据字分解成多个路径;多个循环冗余校验单元,其中所述循环冗余校验单元中的每个循环冗余校验单元用于处理所述路径中的相应一个路径,其中所述循环冗余校验单元中的每个循环冗余校验单元包括:第一输出端口,其用于输出在所述循环冗余校验单元内结束的数据包的循环冗余校验值;以及第二输出端口,其用于输出在所述循环冗余校验单元内起始或持续的数据包的循环冗余校验值。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:蒋蔚荣高登·J·布莱诺马克·B·卡尔森
申请(专利权)人:吉林克斯公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1