Claims
- 1. A method of verifying a CRC code for a data block transferred as a plurality of segmented sub-blocks via a communications medium, said CRC code including a remainder after division by a predetermined polynomial of an operand derived from said data block, said method comprising the steps of:
- deriving a respective partial CRC code for a first received sub-block of data, from a predetermined initializing value and using said predetermined polynomial;
- deriving a respective partial CRC code for each subsequent received sub-block of data, from said predetermined initializing value and using said predetermined polynomial, segmentally independent of any partial CRC code derived from any preceding sub-block of data;
- combining said partial CRC codes to derive a CRC verification value for the data block transferred as a plurality of sub-blocks and which is indicative of whether the data block transferred is consistent with a CRC code which would be derived using said predetermined polynomial for said data block considered as a whole; and
- testing validity of said CRC verification value for the data block transferred.
- 2. The method of claim 1, wherein the step of deriving a respective partial CRC code for a first received sub-block of data and the step of deriving a respective partial CRC code for each subsequent received sub-block of data each include the step of using hardware circuitry dedicated to derivation, and the step of combining said partial CRC codes to derive the CRC verification value for the data block transferred includes the step of using general-purpose hardware circuitry controlled by program instructions to combine the partial CRC codes.
- 3. The method of claim 1, wherein said partial CRC codes are derived by:
- presetting a shift register with said initializing value, said shift register having feedback via exclusive-OR gates from its output to predetermined shift register stages;
- shifting one data sub-block into said shift register; and
- storing the resulting contents of said shift register.
- 4. The method of claim 1, wherein said initializing value is zero.
- 5. The method of claim 1, wherein said CRC verification value is derived by combining the partial CRC code for a second sub-block of data and the partial CRC code for each subsequent sub-block of data with one or more values selected from one or more predetermined tables in accordance with a result of such combining step for a preceding partial CRC code, a value or values for combination with the partial CRC code for the first received sub-block of data being selected from said table or tables in accordance with a predetermined starting value.
- 6. The method of claim 5, wherein there are a plurality of predetermined tables and values are selected from said predetermined tables in accordance with values of respective portions of a result of said combining step for a preceding partial CRC code or of said predetermined starting value.
- 7. The method of claim 6, wherein said partial CRC codes and said table or tables are stored as hexadecimal values, said respective portions are adjacent pairs of hexadecimal digits, and said combining step is performed using bit-wise modulo 2 addition.
- 8. Apparatus for verifying a CRC code for a data block transferred as a plurality of segmented sub-blocks via a communications medium, said CRC code including a remainder after division by a predetermined polynomial of an operand derived from said data block, said apparatus comprising:
- means for deriving a respective partial CRC code for a first received sub-block of data, from a predetermined initializing value and using said predetermined polynomial;
- means for deriving a respective partial CRC code for each subsequent received sub-block of data, from said predetermined initializing value and using said predetermined polynomial, and segmentally independent of any partial CRC code derived from any preceding sub-block of data;
- means for combining said partial CRC codes to derive a CRC verification value for the data block transferred as a plurality of sub-blocks and which is indicative of whether the data block transferred is consistent with a CRC code which would be derived using said predetermined polynomial for said data block considered as a whole; and
- means for testing validity of said CRC verification value for the data block transferred.
- 9. The apparatus of claim 8, comprising hardware circuity dedicated to derivation of said partial CRC codes, and general-purpose hardware circuitry controlled by program instructions for deriving the CRC verification value for the data block transferred.
Priority Claims (1)
Number |
Date |
Country |
Kind |
93300852 |
Feb 1993 |
EPX |
|
Parent Case Info
This is a continuation of application Ser. No. 08/189,319 filed Jan. 31, 1994 now abandoned.
US Referenced Citations (7)
Foreign Referenced Citations (1)
Number |
Date |
Country |
0233075 |
Aug 1987 |
EPX |
Continuations (1)
|
Number |
Date |
Country |
Parent |
189319 |
Jan 1994 |
|