# US 5,706,298 A · Method and apparatus for calculating the longitudinal redundancy check in a mixed stream channel

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

- Number: US 5,706,298 A
- Document ID: US5706298A
- Status: Granted
- Kind: A
- Application number: 08/556,109
- Filed: 1995-11-09
- Granted: 1998-01-06
- Earliest claimed: 1995-11-09
- Assignees: EMC Corporation
- Inventors: Miklos A. Sandorfi
- Web page: https://patentgrep.com/patent/US5706298A

## CPC

- G06F 11/10: Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F 11/1076: {Parity data used in redundant arrays of independent storages, e.g. in RAID systems}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

The invention relates to a method and apparatus for checking data integrity in a data communications system in which plural data streams can be intermixed and wherein the data streams have a frame transmission format in which the frame is different than the logical block length of the data stream components. The integrity of the transmission process is checked without requiring system processor involvement, unless errors are detected. A first incoming data stream, composed of logical blocks, is received; and a running longitudinal redundancy check is calculated. If the data stream is interrupted at other than the end of a block, the intermediate value of the LRC is stored in a context storage associated only with that data stream. When the data stream continues, and this may occur after other data streams have been received, the intermediate value of the LRC is recalled from the context storage and the running longitudinal redundancy check calculation is continued. The storage and calculation steps continue each time the data stream is interrupted other than at a logical termination of a logical block for the data stream. The communications process is particularly applicable to mass storage subsystems in which the data streams are directed to and from the storage media.

## Claims

### Claim 1

A method for checking data integrity in a data communications system in which plural data streams can be intermixed comprising the steps of:
(a) receiving a first incoming data stream,
(b) determining a running longitudinal redundancy check for said received data stream as it is being received,
(c) storing an intermediate value of said longitudinal redundancy check, if said stream is interrupted at other than a logical termination of said stream, in a context storage associated only with said stream,
(d) recognizing a continuation of said interrupted data stream,
(e) recalling said intermediate value from said context storage associated with said interrupted data stream,
(f) continuing to determine said running longitudinal redundancy check for said received data stream using said recalled intermediate value, and
(g) repeating steps (c), (d), (e), and (f) if said received data stream is interrupted prior to said logical termination of said stream.

### Claim 2 (depends on 1)

The method of claim 1 wherein
said received data stream comprises a sequence of data blocks and the end of each data block is said logical termination of said data stream.

### Claim 3 (depends on 2)

The method of claim 2 wherein
said communications system uses a fibre channel protocol having a sequence of frames, and each frame consisting of a group of blocks, and comprising the step of
terminating a data stream from a first source at the end of a frame, and
wherein said storing step occurs if said data stream is terminated at other than the end of a block of said frame.

### Claim 4 (depends on 3)

The method of claim 3 wherein said determining step comprises the step of
EXCLUSIVE-OR'ing successive groups of data from said data stream.

### Claim 5 (depends on 3)

The method of claim 3 wherein said storing step further includes
storing with said intermediate value in said context storage, the number of frame words remaining in said frame, the number of words per block, and the number of words remaining to fill the current block.

### Claim 6 (depends on 3)

The method of claim 3 further comprising the steps of
comparing a determined longitudinal redundancy check at the end of the data stream with a previously determined longitudinal redundancy check for said data stream.

### Claim 7

A method for checking data integrity in a fibre channel communications system in which plural data streams can be intermixed, each data stream having a sequence of data blocks and wherein communications of a complete data block is a logical termination of the data stream, said method comprising the steps of:
(a) receiving a first incoming data stream,
(b) determining a running longitudinal redundancy check for said received data stream as it is being received,
(c) storing an intermediate value of said longitudinal redundancy check, if said stream is interrupted at a frame boundary which is not a said logical termination of said stream, in a context storage associated only with said stream,
(d) storing with said intermediate value in said context storage, the number of frame words remaining in said frame, the number of words per block, and the number of words remaining to fill the current block,
(e) recognizing a continuation of said interrupted data stream,
(f) recalling said intermediate value from said context storage associated with said interrupted data stream,
(g) continuing to determine said running longitudinal redundancy check for said received data stream using said recalled intermediate redundancy value, and
(h) repeating steps (c), (d), (e), (f), and (g), if said received data stream is interrupted prior to a said logical termination of said stream.

### Claim 8

Apparatus for checking data integrity in a data communication system in which plural data streams can be intermixed comprising
a data receiver for receiving a first incoming data stream,
a data processor for determining a running longitudinal redundancy check for said received data stream as it is being received,
a context storage associated with each said data stream for storing an intermediate value of said longitudinal redundancy check each time said stream is interrupted at other than a logical termination of said stream,
said data processor recognizing each continuation of said interrupted data stream, and recalling said intermediate value from said context storage associated with said interrupted data stream, and
said data processor determining said running longitudinal redundancy check for said continued received data stream using the last recalled intermediate value.

### Claim 9 (depends on 8)

The apparatus of claim 8 wherein
said received data stream comprises a sequence of data blocks and each complete data block is said logical termination of said data stream.

### Claim 10 (depends on 9)

The apparatus of claim 9 wherein
said communication system includes a fibre channel protocol having a sequence of frames, and each frame consists of a group of blocks, and comprising
a processor for terminating a data stream from a first source at the end of a frame, and
wherein said storage stores said intermediate value if said data stream terminates at other than the end of a block of a frame.

### Claim 11 (depends on 10)

The apparatus of claim 10 wherein said data processor further comprises
an EXCLUSIVE-OR circuit for EXCLUSIVE-OR'ing successive groups of data from said data stream to generate said longitudinal redundancy code.

### Claim 12 (depends on 10)

The apparatus of claim 10 wherein said storage further comprises
means for storing with said intermediate value, the number of frame words remaining in said frame, the number of words per block, and the number of words remaining to fill the current block.

### Claim 13 (depends on 10)

The apparatus of claim 10 further comprising
said processor comparing a determined longitudinal redundancy check at the end each block of the data stream with a previously determined longitudinal redundancy check for said block of said data stream.

### Claim 14

Apparatus for checking data integrity in a fibre channel data communications system in which plural data streams can be intermixed, said channel operating according to a fibre channel protocol having a sequence of frames, and each frame consisting of a group of blocks, comprising
a data receiver for receiving a first incoming data stream,
a data processor for determining a running longitudinal redundancy check for said received data stream as it is being received, said processor having an EXCLUSIVE-OR circuit for EXCLUSIVE-OR'ing successive groups of data from said data stream to generate said longitudinal redundancy check,
a context storage associated only with said stream for storing an intermediate value of said longitudinal redundancy check each time said stream is interrupted prior to a logical termination of said stream, said storage storing with said intermediate value, the number of frame words remaining in said frame, the number of words per block, and the number of words remaining to fill a current block,
said data processor recognizing each continuation of said interrupted data stream, and recalling said intermediate value from said context storage associated with said interrupted data stream, and
said data processor determining said running longitudinal redundancy check for said continued received data stream using the last recalled intermediate value.
