CN112073148A - 快速循环冗余校验码生成 - Google Patents
快速循环冗余校验码生成 Download PDFInfo
- Publication number
- CN112073148A CN112073148A CN202010469784.8A CN202010469784A CN112073148A CN 112073148 A CN112073148 A CN 112073148A CN 202010469784 A CN202010469784 A CN 202010469784A CN 112073148 A CN112073148 A CN 112073148A
- Authority
- CN
- China
- Prior art keywords
- partial
- polynomial
- crc
- polynomials
- crc code
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
- H03M13/091—Parallel or block-wise CRC computation
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/157—Polynomial evaluation, i.e. determination of a polynomial sum at a given value
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Error Detection And Correction (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开的实施例涉及快速循环冗余校验码生成。提供了用于快速循环冗余校验码生成的系统和方法。例如,一种方法包括:将比特序列表示为基为2的伽罗瓦域上的多项式;将多项式分成多个部分多项式,其中,多项式等于部分多项式的和;同时生成针对部分多项式中的每个部分多项式的相应的部分CRC码;根据多项式中的相应的部分多项式的位置来对每个部分CRC码进行加权;以及对经加权的部分CRC码求和。
Description
背景技术
所公开的技术总体上涉及数据通信网络,并且更具体地,一些实施例涉及在这样的网络中校验数据中的错误。
附图说明
根据一个或多个各种实施例,参考以下附图详细描述本公开。附图仅出于图示的目的被提供并且仅仅描绘典型或示例实施例。
图1图示了可以为诸如企业、教育机构、政府部门、医疗机构的组织或其他组织实现的网络配置的一个示例。
图2图示了网络字节顺序中的以太网数据分组与消息多项式项和系数之间的关系。
图3图示了根据所公开的技术的一个实施例的使用叠加原理的CRC生成器的实施例。
图4图示了根据一个实施例的用于为生成器多项式生成H变换矩阵的技术。
图5图示了根据所公开的技术的一个实施例的CRC码生成器和校验器。
图6是根据所公开的技术的实施例的用于为比特序列生成CRC码的示例计算组件或设备的框图。
图7描绘了本文描述的实施例可以被实现在其中的示例计算机系统的框图。
附图不是穷举的并且不将本公开限制于所公开的精确形式。
具体实施方式
在诸如数据通信网络的系统中,数据可以在传输、存储等期间被损坏。该数据可以包括在网络设备之间交换的消息、以及在网络设备内使用的内部值,例如包括由网络交换机、路由器等采用的内部参数。用于检测损坏数据的一种常见技术是对循环冗余校验(CRC)码的使用。当数据被传输、存储等时,第一CRC码针对数据被计算。稍后,当数据被接收、取回等时,第二CRC码针对数据被计算。如果第一CRC码和第二CRC码不匹配,那么数据被认为损坏。
在一些情形中,CRC码生成使用线性反馈移位寄存器(LFSR)来实现。这些实现遭受若干限制。数据通信网络中的高速网络交换机和路由器可以以多个兆兆位每秒操作,并且采用运行极高时钟速率的极宽内部接口。但是LFSR实现限制内部接口宽度和/或时钟速率,因为它们随接口宽度而缩放。此外,LFSR实现维持表示消息的所有先前处理的字节的CRC码的状态。因此,当消息的仅仅几个字节被修改时,不能修补CRC码而不在整个消息上再生新的CRC码。该再生过程消耗相当大的内部处理带宽。
所公开的技术的实施例提供使用叠加原理的CRC码生成和校验实现。这些实施例允许超大规模集成电路(VLSI)设计者克服以上关于LFSR实现描述的问题。这些实施例允许修补消息的片段以及CRC码修补而不针对整个消息再生CRC码。这些实施例还提供固定逻辑树深度,而不管内部数据路径宽度如何,并且因此支持更宽的数据总线。
所公开的技术更好地支持高速网络交换机和路由器,其可以依靠宽内部数据路径来实现多个兆兆位每秒速度,并且提供部分地修改消息并修补CRC而非必须在整个消息上再生CRC的能力。此外,所公开的实施例提供支持在每个功能之间添加流水线阶段的功能,由此减少流水线阶段之间的逻辑水平的数量,进一步改进性能。
在详细描述所公开的系统和方法的实施例之前,有用的是描述示例网络安装,利用其这些系统和方法可以被实现在各种应用中。图1图示了可以为诸如企业、教育机构、政府部门、医疗机构的组织或其他组织实现的网络配置100的一个示例。该示意图图示了利用具有多个用户(或至少多个客户端设备110)以及可能多个物理或地理站点102、132、142的组织实现的配置的示例。网络配置100可以包括与网络120通信的主站点102。网络配置100还可以包括与网络120通信的一个或多个远程站点132、142。
主站点102可以包括主网络(未示出),其可以例如是办公室网络、家庭网络或其他网络安装。主站点102网络可以是私有网络,诸如可以包括安全和访问控制以限制对私有网络的授权用户的访问的网络。授权用户可以包括例如在主站点102处的公司的员工、房子的居民、企业的客户等。
在图示的示例中,主站点102包括与网络120通信的控制器104。控制器104可以提供针对主站点102与网络120的通信,但是其可以不是针对主站点102与网络120的唯一通信点。单个控制器104被图示,但是主站点可以包括多个控制器和/或与网络120的多个通信点。在一些实施例中,控制器104通过路由器(未图示)与网络120通信。在其他实施例中,控制器104将路由器功能性提供到主站点102中的设备。
控制器104可以可操作以配置并管理网络设备,诸如在主站点102处,并且还可以管理在远程站点132、142处的网络设备。控制器104可以可操作以配置和/或管理被连接到网络的交换机、路由器、接入点和/或客户端设备。控制器104本身可以是接入点或提供接入点的功能性。
控制器104可以与一个或多个交换机108和/或无线接入点(Ap)106a-c通信。交换机108和无线AP 106a-c提供到各种客户端设备110a-j的网络连接性。使用到交换机108或AP 106a-c的连接,客户端设备110a-j可以访问网络资源,包括(主站点102)网络和网络120上的其他设备。
客户端设备的示例可以包括:台式计算机、膝上型计算机、服务器、web服务器、认证服务器、认证-授权-计费(AAA)服务器、域名系统(DNS)服务器、动态主机配置协议(DHCP)服务器、互联网协议(IP)服务器、虚拟私有网络(VPN)服务器、网络策略服务器、大型主机、平板计算机、电子阅读器、上网本计算机、电视和类似的监视器(例如,智能TV)、内容接收器、机顶盒、个人数字助理(PDA)、移动电话、智能电话、智能终端、哑终端、虚拟终端、视频游戏控制台、虚拟助理、物联网(IOT)设备、等等。
在主站点102内,交换机108被包括作为到在主站点102中针对有线客户端设备110i-j建立的网络的接入点的一个示例。客户端设备110i-j可以连接到交换机108并穿过交换机108,可以能够访问网络配置100内的其他设备。客户端设备110i-j还可以能够通过交换机108访问网络120。客户端设备110i-j可以通过有线112连接与交换机108通信。在图示的示例中,交换机108通过有线112连接与控制器104通信,但是该连接也可以是无线的。
无线AP 106a-c被包括为到在主站点102中针对客户端设备110a-h建立的网络的接入点的另一示例。AP 106a-c中的每个可以是被配置为向无线客户端设备110a-h提供无线网络连接性的硬件、软件和/或固件的组合。在图示的示例中,AP 106a-c可以由控制器104管理和配置。AP 106a-c与控制器104和通过连接112(其可以是有线接口或无线接口)的网络通信。
网络配置100可以包括一个或多个远程站点132。远程站点132可以位于与主站点102不同的物理或地理位置中。在一些情况下,远程站点132可以与主站点102处于相同地理位置中,或者可能相同建筑物中,但是缺少到位于主站点102内的网络的直接连接。代替地,远程站点132可以利用通过不同网络(例如,网络120)的连接。远程站点132(诸如图1中图示的远程站点)可以例如是卫星办公室、建筑物中的另一层或套间等。远程站点132可以包括用于与网络120通信的网关设备134。网关设备134可以是路由器、数模调制解调器、电缆调制解调器、数字订户线(DSL)调制解调器、或被配置为与网络120通信的某个其他网络设备。远程站点132还可以包括通过有线或无线连接与网关设备134通信的交换机138和/或AP136。交换机138和AP 136提供各种客户端设备140a-d到网络的连接性。
在各种实施例中,远程站点132可以与主站点102直接通信,使得在远程站点132处的客户端设备140a-d访问在主站点102处的网络资源,如同这些客户端设备140a-d位于主站点102处。在这样的实施例中,远程站点132由在主站点102处的控制器104管理,并且控制器104提供实现远程站点132与主站点102的通信的必要的连接性、安全性和可访问性。一旦连接到主站点102,远程站点132可以用作由主站点102提供的私有网络的一部分。
在各种实施例中,网络配置100可以包括一个或多个较小的远程站点102,其仅包括用于与网络120和无线AP 146(各种客户端设备150a-b通过其访问网络129)通信的网关设备144。这样的远程站点142可以表示例如个体员工的家中或临时远程办公室。远程站点142还可以与主站点102通信,使得在远程站点142处的客户端设备150a-d访问在主站点102处的网络资源,如同这些客户端设备150a-d位于主站点102处。远程站点142可以由在主站点102处的控制器104管理以使该透明度成为可能。一旦连接到主站点102,远程站点142可以用作由主站点102提供的私有网络的一部分。
网络120可以是公共网络或私有网络,诸如互联网,或者其他通信网络,以允许各种站点102、130至142之间的连接性以及到服务器160a-b的接入。网络120可以包括第三方电信线,诸如电话线、广播同轴电缆、光纤电缆、卫星通信、蜂窝通信等。网络120可以包括任何数量的中间网络设备,诸如交换机、路由器、网关、服务器和/或控制器,其不直接是网络配置100的一部分,而且促进网络配置100的各个部分之间以及网络配置100与其他网络连接实体之间的通信。网络120可以包括各种内容服务器160a-b。内容服务器160a-b可以包括多媒体可下载和/或流式内容(包括音频、视频、图形和/或文本内容、或其任何组合)的各种提供方。内容服务器160a-b的示例包括例如web服务器、流式无线电和视频提供方、以及电缆和卫星电视提供方。客户端设备110a-j、140a-d、150a-b可以请求并访问由内容服务器160a-b提供的多媒体内容。
现在详细描述所公开的技术的实施例。随后的讨论和示例中的一些采用IEEE-CRC32多项式,其常常被使用在高速以太网交换机和路由器中。然而,所公开的技术不限于该多项式,并且因此可以与其他CRC多项式一起采用。
所公开的技术利用叠加原理。也称为叠加属性的叠加原理对所有线性系统成立,由两个或更多个刺激(stimuli)引起的响应是将已经由每个刺激单独引起的响应的和。例如,如果输入A产生响应X并且输入B产生响应Y,则输入A+B产生响应X+Y。该属性允许以多项式表示的比特串(诸如消息)被分解成更小的更可管理的部分消息。部分CRC码可以针对每个部分消息被生成。部分CRC码可以被求和以提供最终CRC码。由于叠加原理,最终CRC码与在整个消息上生成的CRC码相同。该技术可以与任何CRC生成器多项式一起使用。
CRC计算基于基(base)为2的伽罗瓦(Galois)域上的多项式除法,其将多项式系数约束为值1或0。受CRC码保护的所传输的消息由多项式T(x)表示。CRC码是从将原始消息M(x)除以CRC多项式G(x)得出的余数R(x)。
T(x)=M(x)*Xr+R(x)
R(x)=M(x)*Xr Mod G(x)
图2图示了网络字节顺序中的以太网数据分组与消息多项式项和系数之间的关系。以太网分组以多项式形式被表示为n个比特的序列。每个比特(一或零)变成与分组中的比特位置相关的项的系数a。消息多项式M(x)除以CRC多项式G(x)以产生CRC多项式余数R(x),其被添加到消息M(x)。
消息M(x)可以被分解成由k个部分多项式表示的k个部分消息。
P0(x)=a7?X7 a6?X6 a5?X5 a4?X4 a3?X3 a2?X2 a1?X1 a0?X0
P1(x)=a15?X15 a14?X14 a13?X13 a12?X12 a11?X11 a10?X10 a9?X9 a8?X8
...
Pk(x)=a8k+7?X8k+7a8k+6?X8k+6a8k+5?X8k+5a8k+4?X8k+4
+a8k+3?X8k+3a8k+2?X8k+2a8k+1?X8k+1a8k?X8k
这些较小加权的多项式可以被求和以表示M(x)。
M(x)=Pk(x)+Pk-1(x)+....+P3(x)+P2(x)+P1(x)+P0(x)
该符号将在下面用于描述在部分消息上计算消息CRC。
叠加原理规定,对于所有线性系统,系统响应可以被表示为其各部分的和。叠加原理的示例是傅里叶级数。在CRC计算的上下文中,叠加原理认为CRC结果是部分CRC结果的和。
根据所公开的技术的实施例,消息多项式M(x)被分解成一组部分多项式P(x)。针对部分多项式P(x)中的每个生成部分CRC码。部分CRC码被加在GF(2)上。在GF(2)上的加法可以被实现为使用逻辑门的简单XOR运算。
消息多项式M(x)可以被表示为多个部分多项式的和。在该示例中,每个部分多项式表示数据的字节,并且因此具有八个项。
Mk(x)=Pk(x)+0+....+0+0+0+0
Mk-1(x)=0+Pk-1(x)+....+0+0+0+0
...
M3(x)=0+0+L+P3(x)+0+0+0
M2(x)=0+0+L+0+P2(x)+0+0
M1(x)=0+0+L+0+0+P1(x)+0
M0(x)=0+0+L+0+0+0+P0(x)
注意,消息多项式M(x)可以被表示为部分多项式的和。
因此,消息CRC是部分多项式的部分CRC码的和。
R(x)=Rk(x)+Rk-1(x)+L+R3(x)+R2(x)+R1(x)+R0(x)
因此,消息CRC码可以通过对从原始消息的分解生成的部分CRC码求和来生成。
图3图示了根据所公开的技术的一个实施例的使用叠加原理的CRC生成器的实施例。该技术支持任何大小并且具有任何任意CRC生成器多项式的部分消息。在该实施例中,每个部分消息的CRC码可以在部分消息的8比特宽片段(segment)上被分段(piecewise)地计算。然而,8比特的任何整数倍可以以类似的方式来处理。
参考图3,在Bn-1-B0处示出了n个部分消息。每个部分消息可以以多项式格式来表示。图3的示例使用n个部分消息的消息大小。
如在CRC处所示出的,针对每个部分消息生成部分CRC码。部分CRC码在图3中被示出为rn-1(x)-r0(x)。任何大小的CRC生成器多项式可以被使用。例如,IEEE-CRC32生成器多项式可以被使用。IEEE_CRC32 CRC的生成纯粹是组合的,并且可以被实现为简单XOR树。
每个部分CRC码然后针对其在消息中的数值位置进行加权,如在H8*(n-1)-H0处所示出的。加权函数在数学上等同于将尾部零附加到分段多项式,并且可以被实现为变换,其在本文中被称为下面描述的H变换。经加权的部分CRC码在图3中被示出为Rn-1(x)-R0(x)。n-1个部分CRC结果可以使用简单XOR树在GF(2)上求和以产生针对部分消息的部分CRC码。部分CRC码在图3中被示出为R(x)。
从图3,清楚的是,增加并行处理的字节的数量不会明显改变最坏情况逻辑路径。部分CRC码被同时生成。
H变换是r×r二元变换矩阵,其中,r是生成器多项式的幂。当且仅当在LSFR实现中寄存器比特J馈给寄存器比特I时,元素Hi,j=1。图4图示了根据一个实施例的使用逻辑门来为生成器多项式G(x)=x3+x+1生成H变换矩阵的技术,其中,r=3。逻辑门可以被实现在电路装置中。参考图4,该技术可以使用三个D型触发器FF1、FF2和FF3以及两个异或门XOR1、XOR2来实现。在图4的示例中,门XOR2接收触发器FF3的Q输出和消息多项式M(x)的系数a,其中前导比特在第一个。触发器FF3的D输入接收触发器FF2的Q输出。触发器FF2的D输入接收门XOR1的输出。门XOR1接收触发器FF1的Q输出和门XOR2的输出。触发器FF1的D输入接收门XOR2的输出。
使用标准矩阵符号,图4中图示的H变换由以下给出:
后续H变换矩阵可以通过乘以H来生成。例如,H2=H1*H1,H4=H2*H2,以此类推。H变换矩阵H0简单地是单位矩阵。
消息很少由整数数量的部分消息组成。因此,消息多项式M(x)很少由整数数量的部分多项式P(x)组成。在一些实施例中,前导或尾部字节可以从部分消息被移除,通常分别是第一个部分消息或最后一个部分消息。在一些实施例中,叠加原理可以用于从部分消息移除前导或尾部字节,如下面所描述的。
在一些实施例中,前导字节可以通过移除具有最大权重的一个或多个部分多项式(在本文中也被称为“前导部分多项式”)来移除,由此排除那些部分多项式的贡献。例如,考虑从CRC计算移除下面图示的前导字节Pk(x)和Pk-1(x)。
Mk(x)=Pk(x)+0+....+0+0+0+0
Mk-1(x)=0+Pk-1(x)+....+0+0+0+0
M3(x)=0+0+L+P3(x)+0+0+0
M2(x)=0+0+L+0+P2(x)+0+0
M1(x)=0+0+L+0+0+P1(x)+0
M0(x)=0+0+L+0+0+0+P0(x)
来自CRC码中的字节Pk(x)和Pk-1(x)的CRC贡献可以通过使来自每个分段多项式的对应部分CRC结果归零来移除。
R(x)=Rk(0)+Rk-1(0)+L+R3(x)+R2(x)+R1(x)+R0(x)
在GF(2)上对零求和不改变结果。
该操作可以通过驱动馈给图3中图示的逻辑的那些前导字节上的零来实现。由于CRC功能纯粹是组合的而没有初始状态,因此针对零输入的输出也归零。H变换是关于零的简单乘法函数,因此结果归零,并且所有零的XOR不对最终CRC结果添加任何贡献。
在一些实施例中,部分消息的尾部字节可以通过排除它们的部分多项式(在本文中也被称为“尾部部分多项式”)的贡献来移除。考虑以部分多项式格式的具有尾部零的消息M(x)。
M0(x)=Pk(x)+Pk-1(x)+....+P3(x)+P2(x)+0+0
部分多项式P1(x)和P0(x)一起表示消息的16个尾部零(系数)。尾部零可以通过将消息除以X提升到要移除的零的数量(在该示例中为X16)从消息M(x)被移除。部分多项式P1(0)和P0(0)各自均包含八个零系数。
在H变换是在数学上等效于将尾部零添加到部分CRC结果的情况下,G变换是在数学上等效于移除部分CRC结果上的尾部零。G矩阵和H矩阵是数学上的逆矩阵。
在将CRC结果乘以H16等效于添加16个尾部零的情况下,将CRC结果乘以G16等效于移除16个尾部零。假定实现一般限于有限部分消息长度,则可能生成移除确定数量的尾部零需要的所有可能的G矩阵变换。
图5图示了根据所公开的技术的一个实施例的CRC码生成器和校验器。该CRC码生成器和校验器支持IEEE_CRC32多项式和CRC格式。类似的实施例可以用于支持其他CRC多项式。CRC码生成器可以使用逻辑门来实现。逻辑门可以被实现为电路装置。
图5的实施例可以使用叠加原理来在定时为以1Gbps时钟周期运行的160字节和256字节内部数据路径两者上生成并校验CRC码,并且可以使用一个或多个160字节和256字节部分消息支持高达16K字节的总消息大小。该实施例支持移除前导和尾部部分消息字节两者。
参考图5,该系统可以包括两个IEEE 802.3格式转换电路502a、502b。IEEE 802.3标准要求帧CRC码被附加到以最高有效比特开始的分组。CRC码的内部表示以简单比特向量格式——crc[31:0],并且可以被变换成如下IEEE格式:
IEEE_CRC32[31:0]=~{crc[24:32],crc[12:23],crc[8:11],crc[0:7]}
为了模仿LFSR实施例的初始CRC状态,第一个部分消息的CRC输入值可以是0xFFFF_FFFF。格式转化块502a、502b在矩阵和IEEE 802.3格式与系统使用的内部格式之间转换。在使用其他格式的实施例中,IEEE 802.3格式转换电路502可以被省略。
系统可以包括n个CRC基础生成器电路504(0)至504(n-1)以生成部分CRC码。每个CRC基础生成器电路504针对部分消息的每个字节以权重零计算分段CRC码。最多,CRC基础生成器增加五个2输入XOR逻辑水平。
系统可以包括n+1个H变换电路506(0)至506(n)以使部分CRC码移位。每个H变换电路506针对其在部分消息中的位置对每个部分CRC码加权。H矩阵可以是选择256个权重之一的恒定函数。权重可以使用脚本来预先计算。该技术被容易地扩展到任何任意数量的权重。
该系统包括XOR树516来对所移位的部分CRC码求和。XOR树516可以将所有经加权的部分CRC码连同经加权的先前CRC一起组合成下一CRC值,其可以表示多字分组的最终CRC码或中间LFSR状态。结果可以被存储在存储装置510中。针对16K字节的总支持消息大小,中间CRC码(crc_out)可以被存储并传递到逻辑作为关于下一部分消息的crc_in。在最后一个部分消息上,crc_out可以被附加到整个消息以用于传输。格式化逻辑502b确保CRC码是IEEE_CRC32所要求的格式。
该系统可以包括从最后一个部分消息移除尾部字节的G矩阵变换电路508。由于可以从部分字移除任何数量的任意字节,因此该电路可以消耗可测量的量的定时预算,其被估计为最多十个2输入XOR逻辑水平或O(log2(64))复杂度。
逻辑水平的数量可以通过一种或多种技术被减少。尾部字节移除可以在更大的数量上被量化,例如诸如4字节或32字节组。可以从最后一个字移除的字节的数量可以有界限。两个选项都经由商业编译优化可用并且试图使rm_lsb高比特或低比特为恒定值。
该系统可以包括CRC码正确性校验器电路514。CRC码正确性校验器电路514验证CRC码。在IEEE 802.3CRC多项式的示例中,正确性意味着在(包括所有部分消息的)整个消息和消息CRC码上的最终CRC码计算等于预定终止值32’hC7_04_DD_7B。变量crc_is_correct可以在处理最后一个部分消息期间被断言。使用不同CRC多项式的实施例可以采用不同终止值。
该系统可以包括字节有效生成器电路512。字节有效生成器电路512可以用于确定部分消息的哪些前导字节将从CRC计算被移除。该实施例可以仅移除第一部分消息中的前导字节。可以通过将部分CRC码结果驱动到全部0来截断前导字节,其不会更改其他字节上的部分CRC的XOR树结果。
图6是根据所公开的技术的实施例的用于为比特序列生成CRC码的示例计算组件或设备600的框图。计算组件600可以例如是服务器计算机、控制器、或能够处理数据的任何其他类似的计算组件。在图6的示例实现中,计算组件600包括硬件处理器602、以及机器可读存储介质604。
硬件处理器602可以是一个或多个中央处理单元(CPU)、基于半导体的微处理器、和/或适合于被存储在机器可读存储介质604中的指令的取回和执行的其他硬件设备。硬件处理器602可以对诸如指令606-614的指令进行取指、译码和执行,以控制用于进行各项工作的过程或操作。作为取回和执行指令的备选或除了取回和执行指令之外,硬件处理器602可以包括一个或多个电子电路,所述一个或多个电子电路包括用于执行一个或多个指令606-614的功能性的电子组件,诸如现场可编程门阵列(FPGA)、专用集成电路(ASIC)、或其他电子电路。
诸如机器可读存储介质604的机器可读存储介质可以是包含或存储可执行指令的任何电子、磁性、光学或其他物理存储设备。因此,机器可读存储介质604可以例如为随机存取存储器(RAM)、非易失性RAM(NVRAM)、电可擦可编程只读存储器(EEPROM)、存储设备、光盘等。在一些实施例中,机器可读存储介质604可以是非瞬态存储介质,其中,术语“非瞬态”不包含瞬态传播信号。如下面详细描述的,机器可读存储介质604可以被编码有可执行指令,例如指令606-614。
硬件处理器602可以执行将比特序列表示为基为2的伽罗瓦域上的多项式的指令606。硬件处理器602可以执行将多项式分成多个部分多项式的指令608,其中,多项式等于部分多项式的和。例如,该表示和划分可以如以上关于图2所讨论的那样。
硬件处理器602可以执行同时生成针对部分多项式中的每个部分多项式的相应的部分CRC码的指令610。即,部分CRC码基本上同时地被并行地生成。参考图5,生成部分CRC码可以由CRC基础电路504执行。
再次参考图6,硬件处理器602可以执行根据多项式中的相应的部分多项式的位置来对每个部分CRC码进行加权的指令612。参考图5,部分CRC码可以由H变换电路来加权,例如,如以上所描述的。
硬件处理器602可以执行对经加权的部分CRC码求和的指令614。参考图5,该和可以通过XOR树516来获得,例如,如以上所描述的。
图7描绘了本文描述的实施例可以被实现在其中的示例计算机系统700的框图。计算机系统700包括总线702或用于传送信息的其他通信机制、与总线702耦合的用于处理信息的一个或多个硬件处理器704。(多个)硬件处理器704可以例如为一个或多个通用微处理器。
计算机系统700还包括主存储器706,诸如随机存取存储器(RAM)、高速缓存和/或其他动态存储设备,其被耦合到总线702以用于存储要由处理器704执行的信息和指令。主存储器706还可以用于在要由处理器704执行的指令的执行期间存储临时变量或其他中间信息。这样的指令在被存储在处理器704可访问的存储介质中时将计算机系统700变成专用机器,该专用机器被定制为执行指令中所指定的操作。
计算机系统700还包括被耦合到总线702以存储用于处理器704的静态信息和指令的只读存储器(ROM)708或其他静态存储设备。诸如磁盘、光盘或USB拇指驱动器(闪速驱动器)等的存储设备710被提供和耦合到总线702以用于存储信息和指令。
计算机系统700可以经由总线702被耦合到用于向计算机用户显示信息的显示器712,诸如液晶显示器(LCD)(或触摸屏)。包括字母数字和其他键的输入设备714被耦合到总线702以用于将信息和命令选择传送到处理器704。任何类型的用户输入设备是用于将方向信息和命令选择传送到处理器704并且用于控制显示器712上的光标移动的光标控件716,诸如鼠标、跟踪球或光标方向键。在一些实施例中,与光标控件相同的方向信息和命令选择可以在没有光标的情况下经由接收触摸屏上的触摸来实现。
计算系统700可以包括用户接口模块,其用以实现可以在大容量存储设备中被存储为由(多个)计算设备执行的可执行软件代码的GUI。该模块和其他模块可以包括例如诸如软件组件、面向对象软件组件、类组件和任务组件的组件、过程、函数、属性、流程、子例程、程序代码片段、驱动程序、固件、微代码、电路装置、数据、数据库、数据结构、表、数组以及变量。
总体上,如本文中所使用的词语“组件”、“引擎”、“系统”、“数据库”、“数据存储库”等可以是指以硬件或固件体现的逻辑,或者以诸如例如Java、C或C++的编程语言编写的可能具有入口和出口点的软件指令的汇集。软件组件可以被编译和链接成可执行程序、被安装在动态链接库中或者可以以诸如例如BASIC、Perl或Python的解释性编程语言编写。将认识到,软件组件可以从其他组件或从它们本身可调用,和/或可以响应于所检测到的事件或中断而被调用。被配置用于在计算设备上执行的软件组件可以被提供在诸如压缩盘、数字视频盘、闪速驱动器、磁盘或任何其他有形介质的计算机可读介质上或者被提供为数字下载(并且可以最初以在执行之前要求安装、解压缩或解密的压缩或可安装格式被存储)。这样的软件代码可以被部分或完全地存储在执行计算设备的存储器设备上以供计算设备执行。软件指令可以被嵌入诸如EPROM的固件中。还将认识到,硬件组件可以包括连接的逻辑单元,诸如门和触发器,和/或可以包括可编程单元,诸如可编程门阵列或处理器。
计算机系统700可以使用定制硬接线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑(其结合计算机系统使计算机系统700成为专用机器或将其编程为专用机器)来实现本文中描述的技术。根据一个实施例,本文中的技术可以由计算机系统700响应于(多个)处理器704执行包含于主存储器706中的一个或多个指令的一个或多个序列而被执行。这样的指令可以从诸如存储设备710的另一存储介质被读入主存储器706中。对包含于主存储器706中的指令的序列的执行引起(多个)处理器704执行本文中描述的过程步骤。在备选实施例中,硬接线电路装置可以代替各软件指令或与各软件指令组合使用。
如本文中所使用的术语“非瞬态介质”和类似的术语是指存储数据和/或使机器以特定方式操作的指令的任何介质。这样的非瞬态介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘或磁盘,诸如存储设备710。易失性介质包括动态存储器,诸如主存储器706。非瞬态介质的常见形式包括例如软盘、柔性盘、硬盘、固态驱动器、磁带、或任何其他磁性数据存储介质、CD-ROM、任何其他光学数据存储介质、具有孔的样式的任何物理介质、RAM、PROM、以及EPROM、FLASH-EPROM、NVRAM、任何其他存储器芯片或磁带盒、以及它们的网络版本。
非瞬态介质不同于传输介质但是可以结合传输介质使用。传输介质参与在非瞬态介质之间传递信息。例如,传输介质包括同轴电缆、铜线和光纤,包括了包括总线702的线。传输介质还可以采取声波或光波的形式,诸如在无线电波和红外数据通信期间生成的那些。
计算机系统700还包括耦合到总线702的通信接口718。网络接口718提供耦合到被连接到一个或多个本地网络的一个或多个网络链路的双向数据通信。例如,通信接口718可以是集成服务数字网络(ISDN)卡、电缆调制解调器、卫星调制解调器或用以提供到对应类型的电话线的数据通信连接的调制解调器。作为另一示例,网络接口718可以是提供到可兼容LAN(或用于与WAN通信的WAN组件)的数据通信连接的局域网(LAN)卡。还可以实现无线链路。在任何这样的实现中,网络接口718发送和接收承载表示各种类型的信息的数字数据流的电信号、电磁信号或光信号。
网络链路通常提供通过一个或多个网络到其他数据设备的数据通信。例如,网络链路可以提供通过本地网络到主机计算机或到由互联网服务提供方(ISP)操作的数据设备的连接。ISP转而提供通过万维分组数据通信网络(现在通常被称为“互联网”)的数据通信服务。本地网络和互联网两者都使用承载数字数据流的电信号、电磁信号或光信号。通过各种网络的信号和网络链路上并且通过通信接口718的信号(其将数字数据承载到计算机系统700和承载来自该计算机系统的数字数据)是传输介质的示例形式。
计算机系统700可以通过(多个)网络、网络链接以及通信接口718发送消息和接收数据,包括程序代码。在互联网示例中,服务器可以通过互联网、ISP、局域网以及通信接口718传输针对应用程序的请求代码。
所接收的代码可以在其被接收时由处理器704执行,和/或被存储在存储设备710或其他非易失性存储装置中以供稍后执行。
前面章节中描述的过程、方法和算法中的每个可以被体现于由包括计算机硬件的一个或多个计算机系统或计算机处理器执行的代码组件中并且完全或部分地由其自动化。一个或多个计算机系统或计算机处理器也可以操作以支持在“云计算”环境中或作为“软件即服务”(SaaS)的相关操作的执行。过程和算法可以部分地或整体地被实现在专用电路装置中。以上描述的各种特征和过程可以独立于彼此使用,或者可以按各种方式来组合。不同的组合和子组合旨在落入本公开的范围内,并且某些方法或过程块可以在一些实现中被省略。本文中描述的方法和过程也不限于任何特定序列,并且与其相关的块或状态可以以合适的其他序列被执行,或者可以并行地或以某种其他方式被执行。块或状态可以被添加到所公开的示例实施例或从所公开的示例实施例移除。操作或过程中的某些的执行可以被分布在不仅驻存在单个机器内而且跨许多机器部署的计算机系统或计算机处理器之中。
如本文中所使用的,电路可以利用硬件、软件或其组合的任何形式来实现。例如,一个或多个处理器、控制器、ASIC、PLA、PAL、CPLD、FPGA、逻辑组件、软件例程或其他机制可以被实现以组成电路。在实现中,本文中描述的各种电路可以被实现为分立电路或者所描述的功能和特征可以部分地或完全地共享在一个或多个电路之中。即使各种特征或功能性元件可以被单独地描述或要求保护为分离的电路,但是这些特征和功能性可以共享在一个或多个常见电路之中,并且这样的描述不应要求或暗示分离的电路被要求来实现这样的特征或功能性。在电路整体或部分使用软件来实现的情况下,这样的软件可以被实现以与能够执行相对于其描述的功能性的计算或处理系统(诸如计算机系统600)一起操作。
如本文中所使用的,术语“或”可以在包容性或排他性意义上被解释。此外,单数的资源、操作或结构的描述不应被阅读为排除复数。诸如“能够(can)”、“可以(could)”、“可能(might)”或“可以(may)”等的条件性语言一般旨在传达某些实施例包括而其他实施例不包括某些特征、元件和/或步骤,除非另行明确陈述或否则在所使用的上下文内理解。
除非另行明确陈述,否则本文档中使用的术语和短语以及其变型应当被理解为开放式的而非限制性的。诸如“常规”、“传统”、“普通”、“标准”、“已知”以及类似含义的术语的形容词不应当被理解为将所描述的项限制于给定时间段或在给定时间可用的项,而是相反应当被阅读为包含现在或在未来的任何时间可以可用或已知的常规、传统、普通或标准技术。在一些情况下诸如“一个或多个”、“至少”、“但不限于”或其他类似短语的扩宽词语和短语的存在不应被阅读为意指更窄的情况在这样的扩宽短语可能不存在的情况下被期望或要求。
Claims (20)
1.一种用于针对比特序列生成循环冗余校验(CRC)码的装置,所述装置包括:
第一组逻辑门,其被配置为将所述比特序列表示为基为2的伽罗瓦域上的多项式;
第二组逻辑门,其被配置为将所述多项式分成多个部分多项式,其中所述多项式等于所述部分多项式的和;
第三组逻辑门,其被配置为同时生成针对所述部分多项式中的每个部分多项式的相应的部分CRC码;
第四组逻辑门,其被配置为根据所述多项式中的所述相应的部分多项式的位置来对每个部分CRC码进行加权;以及
第五组逻辑门,其被配置为对经加权的部分CRC码求和。
2.根据权利要求1所述的装置,其中所述第三组逻辑门包括:
第六组逻辑门,其被配置为将所述部分多项式除以CRC多项式,并且获得所述除的余数。
3.根据权利要求1所述的装置,其中所述第四组逻辑门被配置为将所述部分多项式乘以相应的权重矩阵。
4.根据权利要求1所述的装置,还包括:
第六组逻辑门,其被配置为通过使对应于前导部分多项式的所述经加权的部分CRC码归零来从所述CRC码排除所述前导部分多项式的贡献。
5.根据权利要求1所述的装置,还包括:
第六组逻辑门,其被配置为通过将所述经加权的部分CRC码的和乘以变换矩阵来从所述CRC码排除尾部部分多项式的贡献。
6.根据权利要求1所述的装置,其中:
所述比特序列表示数据分组;并且
所述装置还包括第六组逻辑门,所述第六组逻辑门被配置为将所述CRC码附加到所述数据分组。
7.根据权利要求1所述的装置,还包括:
第六组逻辑门,其被配置为将所述CRC码转换为IEEE 802.3CRC码格式。
8.一种系统,包括:
硬件处理器;以及
非瞬态机器可读存储介质,其被编码有由所述硬件处理器可执行以执行用于针对比特序列生成循环冗余校验(CRC)码的操作的指令,所述操作包括:
将所述比特序列表示为基为2的伽罗瓦域上的多项式;
将所述多项式分成多个部分多项式,其中所述多项式等于所述部分多项式的和;
同时生成针对所述部分多项式中的每个部分多项式的相应的部分CRC码;
根据所述多项式中的所述相应的部分多项式的位置来对每个部分CRC码进行加权;以及
对经加权的部分CRC码求和。
9.根据权利要求8所述的系统,其中生成针对所述部分多项式中的每个部分多项式的所述相应的部分CRC码包括:
将所述部分多项式除以CRC多项式;以及
获取所述除的余数。
10.根据权利要求8所述的系统,其中根据所述多项式中的所述相应的部分多项式的位置来对每个部分CRC码进行加权包括:
将所述部分多项式乘以相应的权重矩阵。
11.根据权利要求8所述的系统,所述操作还包括:
从所述CRC码排除前导部分多项式的贡献,包括在所述求和之前使对应于所述前导部分多项式的所述经加权的部分CRC码归零。
12.根据权利要求8所述的系统,所述操作还包括:
将所述经加权的部分CRC码的和乘以变换矩阵来从所述CRC码排除尾部部分多项式的贡献。
13.根据权利要求8所述的系统,其中:
所述比特序列表示数据分组;并且
所述装置还包括将所述CRC码附加到所述数据分组。
14.根据权利要求8所述的系统,还包括:
将所述CRC码转换为IEEE 802.3CRC码格式。
15.一种用于针对比特序列生成循环冗余校验(CRC)码的方法,所述方法包括:
将所述比特序列表示为基为2的伽罗瓦域上的多项式;
将所述多项式分成多个部分多项式,其中所述多项式等于所述部分多项式的和;
同时生成针对所述部分多项式中的每个部分多项式的相应的部分CRC码;
根据所述多项式中的所述相应的部分多项式的位置来对每个部分CRC码进行加权;以及
对经加权的部分CRC码求和。
16.根据权利要求15所述的方法,其中生成针对所述部分多项式中的每个部分多项式的所述相应的部分CRC码包括:
将所述部分多项式除以CRC多项式;以及
获得所述除的余数。
17.根据权利要求15所述的方法,其中根据所述多项式中的所述相应的部分多项式的位置来对每个部分CRC码进行加权包括:
将所述部分多项式乘以相应的权重矩阵。
18.根据权利要求15所述的方法,还包括:
在所述求和之前使对应于一个或多个前导部分多项式的所述经加权的部分CRC码归零,以从所述CRC码排除所述一个或多个前导部分多项式的贡献。
19.根据权利要求15所述的方法,还包括:
将所述经加权的部分CRC码的和乘以变换矩阵来从所述CRC码排除一个或多个尾部部分多项式的贡献。
20.根据权利要求15所述的方法,其中:
所述比特序列表示数据分组;并且
所述方法还包括将所述CRC码附加到所述数据分组。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/436,101 US11018694B2 (en) | 2019-06-10 | 2019-06-10 | Fast cyclic redundancy check code generation |
US16/436,101 | 2019-06-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112073148A true CN112073148A (zh) | 2020-12-11 |
CN112073148B CN112073148B (zh) | 2022-04-19 |
Family
ID=73459785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010469784.8A Active CN112073148B (zh) | 2019-06-10 | 2020-05-28 | 用于生成循环冗余校验码的网络交换机和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11018694B2 (zh) |
CN (1) | CN112073148B (zh) |
DE (1) | DE102020113883A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117952324A (zh) * | 2024-03-26 | 2024-04-30 | 深圳市智慧企业服务有限公司 | 一种基于冗余信息的政务数据管理方法及相关装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IL267619A (en) * | 2019-06-24 | 2019-08-29 | Michael Ratiner | Method and system for securing electronic devices |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1633749A (zh) * | 2002-02-15 | 2005-06-29 | 英特尔公司 | 获得循环冗余码 |
US7631251B2 (en) * | 2005-02-16 | 2009-12-08 | Hewlett-Packard Development Company, L.P. | Method and apparatus for calculating checksums |
CN101902228A (zh) * | 2009-05-25 | 2010-12-01 | 中兴通讯股份有限公司 | 快速循环冗余校验编码方法及装置 |
CN102799495A (zh) * | 2011-05-25 | 2012-11-28 | 英飞凌科技股份有限公司 | 用于生成校验和的装置 |
US9154163B2 (en) * | 2007-06-27 | 2015-10-06 | Blackarrow, Inc. | Distributed checksum computation |
CN105162470A (zh) * | 2015-07-29 | 2015-12-16 | 中工科安科技有限公司 | 一种编码器信号数字化安全传输装置及其传输方法 |
CN105162551A (zh) * | 2015-07-29 | 2015-12-16 | 中工科安科技有限公司 | 一种针对编码器信号处理的crc安全校验码的计算方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7185266B2 (en) | 2003-02-12 | 2007-02-27 | Alacritech, Inc. | Network interface device for error detection using partial CRCS of variable length message portions |
US6678767B1 (en) * | 2000-10-06 | 2004-01-13 | Broadcom Corp | Bus sampling on one edge of a clock signal and driving on another edge |
US6904558B2 (en) | 2002-02-22 | 2005-06-07 | Agilent Technologies, Inc. | Methods for computing the CRC of a message from the incremental CRCs of composite sub-messages |
US7627802B2 (en) | 2006-08-15 | 2009-12-01 | Samsung Electronics Co., Ltd. | Efficient parallel cyclic redundancy check calculation using modulo-2 multiplications |
US8543888B2 (en) * | 2009-06-09 | 2013-09-24 | Microchip Technology Incorporated | Programmable cyclic redundancy check CRC unit |
US8468439B2 (en) | 2011-06-02 | 2013-06-18 | Nexus Technology, Inc. | Speed-optimized computation of cyclic redundancy check codes |
JP6657634B2 (ja) * | 2015-07-24 | 2020-03-04 | ソニー株式会社 | 符号化装置、メモリシステム、通信システムおよび符号化方法 |
-
2019
- 2019-06-10 US US16/436,101 patent/US11018694B2/en active Active
-
2020
- 2020-05-25 DE DE102020113883.0A patent/DE102020113883A1/de active Pending
- 2020-05-28 CN CN202010469784.8A patent/CN112073148B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1633749A (zh) * | 2002-02-15 | 2005-06-29 | 英特尔公司 | 获得循环冗余码 |
US7631251B2 (en) * | 2005-02-16 | 2009-12-08 | Hewlett-Packard Development Company, L.P. | Method and apparatus for calculating checksums |
US9154163B2 (en) * | 2007-06-27 | 2015-10-06 | Blackarrow, Inc. | Distributed checksum computation |
CN101902228A (zh) * | 2009-05-25 | 2010-12-01 | 中兴通讯股份有限公司 | 快速循环冗余校验编码方法及装置 |
CN102799495A (zh) * | 2011-05-25 | 2012-11-28 | 英飞凌科技股份有限公司 | 用于生成校验和的装置 |
CN105162470A (zh) * | 2015-07-29 | 2015-12-16 | 中工科安科技有限公司 | 一种编码器信号数字化安全传输装置及其传输方法 |
CN105162551A (zh) * | 2015-07-29 | 2015-12-16 | 中工科安科技有限公司 | 一种针对编码器信号处理的crc安全校验码的计算方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117952324A (zh) * | 2024-03-26 | 2024-04-30 | 深圳市智慧企业服务有限公司 | 一种基于冗余信息的政务数据管理方法及相关装置 |
CN117952324B (zh) * | 2024-03-26 | 2024-05-28 | 深圳市智慧企业服务有限公司 | 一种基于冗余信息的政务数据管理方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
US11018694B2 (en) | 2021-05-25 |
US20200389183A1 (en) | 2020-12-10 |
DE102020113883A1 (de) | 2020-12-10 |
CN112073148B (zh) | 2022-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10613776B2 (en) | Appyling multiple hash functions to generate multiple masked keys in a secure slice implementation | |
US10372357B2 (en) | Securely recovering stored data in a dispersed storage network | |
JP6381546B2 (ja) | 多バイト・フレームのパイプライン化圧縮のための方法、符号化データ・ストリームへの高帯域圧縮のための装置、およびコンピュータ・プログラム製品 | |
CN112073148B (zh) | 用于生成循环冗余校验码的网络交换机和方法 | |
US10255135B2 (en) | Method and apparatus for non-interactive information dispersal | |
US11356485B2 (en) | Pre-signed URLs with custom policies for data access in an object storage system | |
US11489624B2 (en) | Error correction in network packets using lookup tables | |
WO2020222049A1 (en) | Secure data storage based on obfuscation by distribution | |
TW202001920A (zh) | 在資料儲存系統中用於改善資料回復之方法及裝置 | |
US11341328B2 (en) | Dynamic grammar augmentation for editing multiple network switch configuration files as a single file | |
CN108270508B (zh) | 一种循环冗余校验crc实现方法、装置及网络设备 | |
US20140006897A1 (en) | Correction of structured burst errors in data | |
CN110704232B (zh) | 一种分布式系统中失效节点的修复方法、装置和设备 | |
WO2021258974A1 (zh) | 数据调制方法、装置、设备和存储介质 | |
US20100306621A1 (en) | Encoding and decoding data | |
US11245914B2 (en) | Method and system for hybrid video coding | |
KR101874537B1 (ko) | 극 부호의 병렬 복호화 방법 및 장치 | |
JP2020524930A (ja) | 短縮レイテンシ誤り訂正復号 | |
CN101848055A (zh) | 一种数据修正方法和装置 | |
US20070136416A1 (en) | Method and system for testing audio server | |
GB2378102A (en) | Cyclic redundancy code generator | |
Zhang et al. | Goal‐oriented design of optimal degree distribution for LT codes | |
US11677419B2 (en) | Cyclic redundancy check, CRC, decoding using the inverse CRC generator polynomial | |
US20100125769A1 (en) | Parity-check-code decoder and recording controller | |
KR20200046938A (ko) | 고속직렬인터페이스용 송수신 오류 정정기법이 포함된 오버헤드최소화 코딩 기법과 하드웨어 구현 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |