Inventors:
Yu Kwong Ng - Los Altos CA
Assignee:
Cisco Technology, Inc. - San Jose CA
International Classification:
H03M 1315
Abstract:
Methods and apparatus are disclosed for generating and checking CRC values using a multi-byte CRC generator on a variable number of bytes. These methods and apparatus could used in an unlimited number of applications and environments, such as part of computer or communications device (e. g. , router or switch). A CRC generator is used to calculate a preliminary CRC value on a block of information. This CRC generator may be a balanced XOR tree or some other implementation, which calculates the preliminary CRC value on groups of n bytes of data at a time, where n is typically some value such as 2, 4, 8, 16, 32, 64 etc. For example, when data is transferred over a 512 wide bit bus, typically the value of n would be 64 (i. e. , 512 bits divided by 8 bits per byte). Because the number of bytes in the data block may not be an even multiple of the value of n, one or more bytes of value zero may be appended to the data block to make it an even multiple, with the preliminary CRC calculated on the entire appended data block.