← Back to Patent Explorer
EP0226353A2 Expired / Lapsed EP ⏱️ 0.0 years remaining

CRC calculation apparatus

Assignee: Advanced Micro Devices Inc
•
Filing: 1986-11-25
•
Granted: —
•
Expires: 2006-11-25
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract There is disclosed herein a CRC calcualtion circuit which can calculate CRC checkbits on 8 bits of raw input data per cycle of a group clock. The calculation apparatus uses 8 rows of shifting links with the inputs of each row coupled to the data outputs of the preceding row. Each shifting link shifts its input bit one bit position toward the most significant bit, and selected shifting links perform an exclusive-OR operaiton between their input bits and the output of an input exclusive-OR gate which exclusive-OR's (84) one input bit with one of the bits in the most significant group of the checksum register (30). A group wide output (70) bus is used to access the final checkbits from the checksum register (34) by disabling the array of shifting links during the output cycles so that the groups of CRC data can be shifted into position through the array one group per each cycle of the group clock. Preset logic for forcing all logic 1's into the data inputs of the first row of shifting links is provided such the machine can be preset during the first clock cycle of the CRC calculation. Several differenct architectures are disclosed for allowing separate calculation of CRC bits on a header packet and a data packet where the CRC bits on the data packet may be calculated on the data alone or the data plus the header and the CRC bits for the header. Logic for allowing CRC calculation to be performed on all groups of a message while excluding some selected number of bits in the first group is also disclosed.

Inventors

  • 👤 Sunil P. Joshi
  • 👤 Venkatraman Iyer

Bibliographic Details

Application Number —
Jurisdiction EP
Data Source google_patents
Last Synchronized 2026-11-08 09:52
CPC Classifications
H; H03; H03M; H03M13/00; H03M13/03; H03M13/05; H03M13/09; H03M13/091

Claims Analysis

Total Claims: 18
Claim 1
Independent Claim 234 words
An apparatus for generating a plurality of groups of CRC data and presenting them one group at a time in synchronism with a group clock on a CRC output bus having a number of conductors equal to the number of bits in one group comprising: means for storing a plurality of groups of CRC bits presented at a data input and having a data output for each said CRC bit; a CRC output bus having one conductor coupled to said data output for each CRC bit in the highest order CRC group; a calculation means having a data outputs coupled to said data inputs of said means for storing and having data inputs coupled to said data outputs of said means for storing and having a raw data input, said calculation means for accepting input data from said means for storing and raw input data at said raw data input and for dividing said raw iaput data by a predetermined binary number and for storing the remainder of said division in said means for storing as said CRC check bits;; and shifting means coupled to said means for storing for outputting said groups of CRC data on said CRC output bus one group at a time by shifting said CRC groups one group at a time in synchronization with said group clock signal into the highest order group position of said means for storing.
Claim 2
Independent Claim 234 words
An apparatus for generating a plurality of groups of CRC data and presenting them one group at a time in synchronism with a group clock on a CRC output bus having a number of conductors equal to the number of bits in one group comprising: means for storing a plurality of groups of CRC bits presented at a data input and having a data output for each said CRC bit; a CRC output bus having one conductor coupled to said data output for each CRC bit in the highest order CRC group; a calculation means having a data outputs coupled to said data inputs of said means for storing and having data inputs coupled to said data outputs of said means for storing and having a raw data input, said calculation means for accepting input data from said means for storing and raw input data at said raw data input and for dividing said raw iaput data by a predetermined binary number and for storing the remainder of said division in said means for storing as said CRC check bits;; and shifting means coupled to said means for storing for outputting said groups of CRC data on said CRC output bus one group at a time by shifting said CRC groups one group at a time in synchronization with said group clock signal into the highest order group position of said means for storing.
Claim 3
Dependent Claim 38 words
An apparatus as defined in claim 1 wherein said calculation means accepts input data one group at a time in synchronization with said group clock and simultaneously calculates CRC bits using all bits of the input data group.
Claim 4
Dependent Claim 162 words
An apparatus as defined in claim 2 wherein said claculation means includes a plurality of rows of shifting links, each shifting link having an input and an output, with one said row for each input data bit, and wherein each shifting link row has its inputs coupled to the outputs of the next least significant shifting links in the previous row except for the least significant shifting link in each row which has its input coupled to the output of the most significant shifting link in the preceding row and except for the first row which has its inputs coupled to said data outputs of said means for storing as if it were a preceding row of shifting links, and wherein the last row of shifting links has its data outputs coupled to said data inputs of said means for storing and wherein predetermined shifting links are gates which perform an exclusive-OR logical operation between their input bits and a predetermined signal.
Claim 5
Dependent Claim 60 words
An apparatus as defined in claim 3 wherein there is a predetermined signal for each said row of said shifting links and each said predetermined signal is generated by an input gate corresponding to that particular row which performs a predetermined logical operation between a predetermined one of said CRC bits and a data bit from said input data group.
Claim 6
Dependent Claim 111 words
An apparatus as defined in claim 4 wherein the input gate corresponding to the first row is a gate which performs an exclusive-OR logical operation between the most significant CRC bit stored in said means for storing and the first data bit which would arrive if the data were input in serial fashion, and wherein the input gate corresponding to the second row is a gate which performs an exclusive-OR operation between the next most significant CRC bit stored in said means for storing and the second bit which would arrive if said input date were input in a serial fashion and so on for each row of said shifting links.
Claim 7
Dependent Claim 122 words
The apparatus of claim 5 wherein said shifting means is a plurality of AND gates, one for each row of said shifting links, each AND gate having one input coupled to the output of the exclusive-OR gate for a particular row and having its output coupled to one of the inputs of the exclusive-OR gates in the particular corresponding row of shifting links and each AND gate having another input for coupling to a source of a SHIFT not signal indicating when no CRC calculation is to be performed and only a shift of said CRC bits in said means for storing is to be performed, said shift being by one group toward the most significant group in said means for storing.
Claim 8
Dependent Claim 109 words
An appratus as defined in claim 1 further comprising a multiplexer having a plurality of data inputs each data input having a plurality of conductors coupled to the date outputs of one of said CRC groups stored in said means for storing, said multiplexer having one data output having the number of conductors equal to the number of bits in one group of CRC bits, and said multiplexer having an input for receiving a group select signal indicating which CRC group to select and means for coupling the input of said multiplexer coupled to the outputs upon which the selected CRC group resides to the output of said multiplexer.
Claim 9
Independent Claim 247 words
An apparatus for generating a plurality of CRC groups and for outputting said CRC groups one at a time in response to a group clock signal onto a bus having a number of conductors equal to the number of bits in one group comprising: means for storing said CRC groups said storing means having a plurality of date inputs, a plurality of data outputs, and a group clock input; a CRC output bus coupled to the data outputs of the highest order group of CRC bits stored in said means for storing; a signal generation means for simultaneously performing an exclusive-OR logical operation on each bit in said highest order group of CRC bits stored in said means for storing with one bit of a group of input data and for simultaneously performing a logical AND operation between each result of the above defined exclusive-OR operations and SHIFT not signal and for generating resultant signals; and means for shifting said CRC bits in said means for storing toward the most significant CRC bit by a number of places equal to the number of bits in said group of input data and for performing an exclusive-OR logical operation between predetermined bits being shifted during predetermined shifts and the resultant signals of predetermined ones of said logical AND operations when said SHIFT not signal is in a predetermined logic state but for only shifting without any exclusive-OR operations when said SHIFT not signal is in the opposite logic state.
Claim 10
Independent Claim 247 words
An apparatus for generating a plurality of CRC groups and for outputting said CRC groups one at a time in response to a group clock signal onto a bus having a number of conductors equal to the number of bits in one group comprising: means for storing said CRC groups said storing means having a plurality of date inputs, a plurality of data outputs, and a group clock input; a CRC output bus coupled to the data outputs of the highest order group of CRC bits stored in said means for storing; a signal generation means for simultaneously performing an exclusive-OR logical operation on each bit in said highest order group of CRC bits stored in said means for storing with one bit of a group of input data and for simultaneously performing a logical AND operation between each result of the above defined exclusive-OR operations and SHIFT not signal and for generating resultant signals; and means for shifting said CRC bits in said means for storing toward the most significant CRC bit by a number of places equal to the number of bits in said group of input data and for performing an exclusive-OR logical operation between predetermined bits being shifted during predetermined shifts and the resultant signals of predetermined ones of said logical AND operations when said SHIFT not signal is in a predetermined logic state but for only shifting without any exclusive-OR operations when said SHIFT not signal is in the opposite logic state.
Claim 11
Dependent Claim 167 words
An apparatus as defined in claim 8 wherein said means for shifting is comprised of an array of shifting links arranged into rows and columns with the first row having inputs couypled to said data outputs of said means for storing and having outputs where the output of each shifting link in the first row is coupled to the input of the next most significant shifting link in the next row except for the most significant shifting link in the first row which has its output coupled to the input of the least significant shifting link in the second row and wherein said second row of shifting links is coupled between said first and third rows in a like fashion as said first row was coupled between said means for storing and said second row and so on for each row, and wherein selected ones of said shifting links are exclusive-OR gates which exclusive-OR their data inputs with said resultant signals generated by said signal generation means.
Claim 12
Dependent Claim 213 words
An apparatus as defined in claim 9 wherein said signal generation means is comprised of a plurality of exclusive-OR gates and a plurality of AND gates wherein said resultant signal for said first row is generated by an exclusive-OR gate having an input coupled to the data output of the most signicicant CRC bit stored in said means for storing and having input for receiving the first bit of said input data group which would arrive if the input data arrived in serial format, the output of said exclusive-OR gate being coupled to one input of an AND gate which has another input for coupling to a source of said SHIFT not signal and which has an output coupled to an input of each exclusive-OR gate in said first row, and said resultant signal for said second row being generated by a similar gating structure as is used to generate the resultant signal for said first row except that the exclusive-OR gate has one input coupled to the second most significant CRC bit data output from said means for storing and a second input for receiving the second bit which would arrive if the input data were input in serial fashion, and so on for generation of the resultant signals for each row.
Claim 13
Dependent Claim 49 words
An apparatus as defined in claim 10 wherein said means for shifting causes shifting of the CRC bits by the number of places equal to the number of bits in one group when said SHIFT not signal is in the logic zero state and said group clock signal occurs.
Claim 14
Independent Claim 500 words
An apparatus for generating a plurality of groups of CRC check bits in synchronization with a group clock signal and for presenting said CRC check bits at a CRC output at a rate of one group of CRC check bits per each group clock cycle through a bus having the same number of conductors as there are bits in a group comprising: a CRC checksum register having a plurality of memory cells arranged to store a plurality of groups of CRC data, each said group comprised of a plurality of CRC bits, and each memory cell having a data input, a data output and a group clock input for coupling to said group clock signal, each said memory cell for storing the data at said data input upon receipt of said group clock signal at said group clock input and for presenting said stored data at said data output; a CRC output bus coupled to said data outputs of the memory cells storing the CRC bits of the highest order group of said CRC data; a plurality of data input exclusive-OR gates, each having one input for coupling to one bit of an input data group and each having one data input coupled to said data output of one of said memory cells coupled to said CRC data output bus and each having a data output; an AND gate for each said data input exclusive-OR gate, said AND gate having a data output and each said AND gate having one input coupled to said data output of one of said data input exclusive-OR gates and each said AND gate having another input for coupling to a SHIFT not signal indicating when a straight shift without any other logical operation is to occur; a plurality of shifting links arranged into an array comprised of a number of rows equal to the number of said data input exclusive-OR gates and a number of columns equal to the number of bits in said CRC data and with each shifting link having an input and an output, said first row having its inputs coupled to the data outputs of said memory cells and said last row having its data outputs coupled to the data inputs of said memory cells, each row of shifting links comprised of a plurality of logical operators, one in each column, each logical operator for performing a shift of the bit in that logical operator's column to the next higher order bit position in the next row, selected logical operators in each row also performing an exclusive-OR operation on their incoming bits with the bit from the output of said AND gate coupled to the data output of said data input exclusive-OR gate corresponding to that row, where the data input exclusive-OR gate coupled to the most significant CRC bit corresponds to the first row and the data input exclusive-OR gate coupled to the next most significant CRC bit corresponds to the second row and so on for each row.
Claim 15
Independent Claim 500 words
An apparatus for generating a plurality of groups of CRC check bits in synchronization with a group clock signal and for presenting said CRC check bits at a CRC output at a rate of one group of CRC check bits per each group clock cycle through a bus having the same number of conductors as there are bits in a group comprising: a CRC checksum register having a plurality of memory cells arranged to store a plurality of groups of CRC data, each said group comprised of a plurality of CRC bits, and each memory cell having a data input, a data output and a group clock input for coupling to said group clock signal, each said memory cell for storing the data at said data input upon receipt of said group clock signal at said group clock input and for presenting said stored data at said data output; a CRC output bus coupled to said data outputs of the memory cells storing the CRC bits of the highest order group of said CRC data; a plurality of data input exclusive-OR gates, each having one input for coupling to one bit of an input data group and each having one data input coupled to said data output of one of said memory cells coupled to said CRC data output bus and each having a data output; an AND gate for each said data input exclusive-OR gate, said AND gate having a data output and each said AND gate having one input coupled to said data output of one of said data input exclusive-OR gates and each said AND gate having another input for coupling to a SHIFT not signal indicating when a straight shift without any other logical operation is to occur; a plurality of shifting links arranged into an array comprised of a number of rows equal to the number of said data input exclusive-OR gates and a number of columns equal to the number of bits in said CRC data and with each shifting link having an input and an output, said first row having its inputs coupled to the data outputs of said memory cells and said last row having its data outputs coupled to the data inputs of said memory cells, each row of shifting links comprised of a plurality of logical operators, one in each column, each logical operator for performing a shift of the bit in that logical operator's column to the next higher order bit position in the next row, selected logical operators in each row also performing an exclusive-OR operation on their incoming bits with the bit from the output of said AND gate coupled to the data output of said data input exclusive-OR gate corresponding to that row, where the data input exclusive-OR gate coupled to the most significant CRC bit corresponds to the first row and the data input exclusive-OR gate coupled to the next most significant CRC bit corresponds to the second row and so on for each row.
Claim 16
Independent Claim 162 words
A method of outputting a plurality of groups of CRC check bits one group at a time on an output bus which is only wide enough to carry one group at a time away from an apparatus for calculating CRC bits using a CRC checksum register and a calculation means comprising the steps of: calculating the CRC check bits using said calculation means and storing them in said checksum register; outputting the highest order group of CRC check bits on said output bus; shifting the second most significant group of CRC check bits into the position in said CRC checksum register formally occupied by the highest order group of CRC check bits while simultaneously shifting all lower order groups one group toward the most significant bit position; outputting the second most significant group of CRC check bits on said output bus; and continuing said shifting and outputting steps until all groups of CRC check bits have been output on said output bus.
Claim 17
Independent Claim 162 words
A method of outputting a plurality of groups of CRC check bits one group at a time on an output bus which is only wide enough to carry one group at a time away from an apparatus for calculating CRC bits using a CRC checksum register and a calculation means comprising the steps of: calculating the CRC check bits using said calculation means and storing them in said checksum register; outputting the highest order group of CRC check bits on said output bus; shifting the second most significant group of CRC check bits into the position in said CRC checksum register formally occupied by the highest order group of CRC check bits while simultaneously shifting all lower order groups one group toward the most significant bit position; outputting the second most significant group of CRC check bits on said output bus; and continuing said shifting and outputting steps until all groups of CRC check bits have been output on said output bus.
Claim 18
Dependent Claim 225 words
The method of claim 13 wherein said calculation means is an array of rows of shifting links having the number of rows equal to the number of bits in a group and a number of columns equal to the number of CRC bits in said CRC checksum register and wherein each said row of shifting links shifts its input data one bit position toward the most significant bit position and supplies the shifted data to the next row except that the first row receives its data from the CRC checksum register and the last row outputs its data to the CRC checksum register and except that the most significant bit position shifting link in each row supplies its output to the least significant bit position shifting link of the next row and wherein selected shifting links are exclusive-OR gates and wherein the steps of shifting the groups of CRC data one group toward the most significant bit position includes the step of rendering each exclusive-OR gate in each row transparent by forcing a logic zero at one input of each exclusive-OR gate in each said row such that data from said CRC checksum register ripples unchanged through all rows of the shifting links and is re-input to the CRC checksum register on the next group clock cycle shifted one group toward the most significant bit.

References Cited (Backward Citations)

No citation records indexed.

USPTO Annuity & Maintenance Windows

Maintenance schedule is calculated for granted US utility patents.

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag