# US 8,082,480 B2 · Distributed checksum computation

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,082,480 B2
- Document ID: US8082480B2
- Status: Granted
- Kind: B2
- Application number: 11/823,849
- Filed: 2007-06-27
- Published: 2009-01-01
- Granted: 2011-12-20
- Earliest claimed: 2007-06-27
- Assignees: Presagis
- Inventors: Bjorn Engberg
- Web page: https://patentgrep.com/patent/US8082480B2

## CPC

- H03M 13/093: {CRC update after modification of the information word}
- H03M 13/091: {Parallel or block-wise CRC computation}
- H03M 13/6575: {Implementations based on combinatorial logic, e.g. Boolean circuits}
- H04L 1/0061: {Error detection codes}
- H03M: CODING; DECODING; CODE CONVERSION IN GENERAL (using fluidic means F15C4/00; optical analogue/digital converters G02F7/00; coding, decoding or code conversion, specially adapted for particular applications, see the relevant subclasses, e.g. G01D, G01R, G06F, G06T, G09G, G10L, G11B, G11C, H04B, H04L, H04M, H04N; ciphering or deciphering for cryptography or other purposes involving the need for secrecy G09C)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Data is divided into parts and each part provided to a different processor. Each processor processes the provided data part to produce a partial CRC result. The partial CRC results from each of the different processors are XORed to produce a CRC of the data.

## Claims

### Claim 1

A method comprising:
dividing data into parts and providing each part to a memory buffer of a different machine data processor, each data part comprising a string of bits, the string of bits comprising sequences of bits not representing data values separating portions of the string representing data values;
each processor processing a provided data part to produce a partial CRC result; and
xoring partial CRC results from each of the different processors to produce a CRC of the data.

### Claim 2 (depends on 1)

The method of claim 1, wherein each processor processing a provided data part to produce a partial CRC result further comprises:
xoring a plurality of CRCs of bit strings having one or more set bits, where each set bit of the bit strings corresponds to a set bit of the provided data part.

### Claim 3 (depends on 1)

The method of claim 1, wherein each processor processing a provided data part to produce a partial CRC result further comprises:
each processor XOR multiplying a CRC for a bit string having a single set bit with the provided data part.

### Claim 4 (depends on 3)

The method of claim 3, wherein each processor XOR multiplying a CRC for a bit string having a single set bit with the provided data part further comprises:
each processor generating a CRC of upper bits of the result of the XOR multiplying, and XORing the CRC of the upper bits with lower bits of the result of XOR multiplying.

### Claim 5 (depends on 3)

The method of claim 3, wherein each processor XOR multiplying a CRC for a bit string having a single set bit with the provided data part further comprises:
a position of the single set bit in the bit string varying according to a length of a sequence of bits not representing data values between portions of the data part representing data values.

### Claim 6 (depends on 1)

The method of claim 1, wherein each data part comprising a string of bits, the string of bits comprising sequences of bits not representing data values separating portions of the string representing data values further comprises:
each processor XOR multiplying a CRC for a bit string having a single set bit with the provided data part, where the single bit is set in a position that reflects the length of the sequence of bits separating the portions of the string of bits representing data values.

### Claim 7 (depends on 6)

The method of claim 6, wherein each processor XOR multiplying a CRC for a bit string having a single set bit with the provided data part further comprises:
each processor generating a CRC of upper bits of the result of the XOR multiplying, and XORing the CRC of the upper bits with lower bits of the result of XOR multiplying.

### Claim 8 (depends on 6)

The method of claim 6, wherein each processor XOR multiplying a CRC for a bit string having a single set bit with the provided data part further comprises:
a position of the single set bit in the bit string varying according to a length of a sequence of bits not representing data values between portions of the data part representing data values.

### Claim 9 (depends on 1)

The method of claim 1, wherein each processor processing a provided data part to produce a partial CRC result further comprises:
each provided data part comprising a plurality of pixel data.

### Claim 10 (depends on 1)

The method of claim 1, wherein each processor processing a provided data part to produce a partial CRC result further comprises:
each provided part comprising a portion of a distributed data file.

### Claim 11 (depends on 1)

The method of claim 1, wherein each processor processing a provided data part to produce a partial CRC result further comprises:
each processor repeatedly applying a CRC forward operation to produce the partial CRC result.
