Highly parallel and scalable cyclic redundancy check
AssigneeInfinera Corporation
InventorAshok Jain
Life of this patent
Estimating the term…
Abstract
Techniques for calculation of CRC values for very large Ethernet packets in a quick manner are disclosed. Portions of CRC values are calculated each frame and are combined to arrive at a final CRC value for the frame. The CRC values for each frame are also combined to arrive at the final value for the packet. The use of the zero-wheeling function allows for each CRC value calculation to be a calculation of a limited set of data (e.g., one chunk of a frame), which allows such calculations to be completed quickly.
Claims20
A method for determining a final cyclic redundancy check (“CRC”) value of a multi-frame packet, the method comprising:
- generating a first CRC value for a first frame of the multi-frame packet;
- converting the first CRC value to a first zero-wheeled CRC value;
- generating a second CRC value for a second frame of the multi-frame packet;
- and
- outputting the final CRC value for the multi-frame packet that is based on the first zero-wheeled CRC value and the second CRC value.
A cyclic redundancy check (“CRC”) circuit for determining a CRC of a multi-frame packet, comprising:
- a first stage configured to:
- generate a first CRC value for a first frame of the multi-frame packet, and
- generate a second CRC value for a second frame of the multi-frame packet;
- and
- a second stage configured to:
- convert the first CRC value to a first zero-wheeled CRC value,
- wherein the final CRC value for the multi-frame packet is based on the first zero-wheeled CRC value and the second CRC value.
A non-transitory computer-readable medium that, when executed by a processor, causes the processor to perform a method for determining a final cyclic redundancy check (“CRC”) value of a multi-frame packet, the method comprising:
- generating a first CRC value for a first frame of the multi-frame packet;
- converting the first CRC value to a first zero-wheeled CRC value;
- generating a second CRC value for a second frame of the multi-frame packet;
- and
- outputting the final CRC value for the multi-frame packet that is based on the first zero-wheeled CRC value and the second CRC value.
Dependencies are inferred from the claim text.