Claims
- 1. A method implemented by a data processor, the method comprising:
generating a plurality of preliminary CRC codes in response to specified data; and synthesizing a CRC code for the specified data, in response to the plurality of preliminary CRC codes.
- 2. The method of claim 1 wherein generating a plurality of preliminary CRC codes comprises generating at least two preliminary CRC codes independently of one another.
- 3. The method of claim 1 wherein synthesizing a CRC code for the specified data comprises at least one addition step.
- 4. The method of claim 1 wherein generating a plurality of preliminary CRC codes comprises generating at least two preliminary CRC codes each being associated with and being generated in response to a respective portion of the specified data.
- 5. The method of claim 4 wherein generating a plurality of preliminary CRC codes further comprises generating at least one of the at least two preliminary CRC codes at least partially concurrently with generating at least one other of the at least two preliminary CRC codes.
- 6. The method of claim 4 wherein generating a t least two preliminary CRC codes comprises generating at least one of the at least two preliminary CRC codes independent of portions of the at least two portions not associated with the at least one of the at least two preliminary CRC codes.
- 7. The method of claim 6 wherein generating a plurality of preliminary CRC codes further comprises generating at least one of the at least two preliminary CRC codes at least partially concurrently with generating at least one other of the at least two preliminary CRC codes.
- 8. The method of claim 4 wherein partitioning the specified data into at least two portions comprises partitioning the specified data into at least two portions that do not overlap one another.
- 9. The method of claim 8 wherein generating a plurality of preliminary CRC codes further comprises generating at least one of the at least two preliminary CRC codes at least partially concurrently with generating at least one other of the at least two preliminary CRC codes.
- 10. The method of claim 8 wherein generating at least two preliminary CRC codes comprises generating at least one of the at least two preliminary CRC codes independent of portions of the at least two portions not associated with the at least one of the at least two preliminary CRC codes.
- 11. The method of claim 10 wherein generating a plurality of preliminary CRC codes further comprises generating at least one of the at least two preliminary CRC codes at least partially concurrently with generating at least one other of the at least two preliminary CRC codes.
- 12. The method of claim 4 wherein generating at least two preliminary CRC codes further comprises generating at least one of the at least two preliminary CRC codes in response to the associated portion and data indicative of the position of the portions within the specified data.
- 13. The method of claim 12 wherein the specified data comprises N bits including an LSB bit 0, an MSB bit N−1, and wherein partitioning the specified data comprises partitioning the specified data such that a jth portion has an LSB that is a bit startj of the specified data, the bit startj being positioned between the LSB and the MSB of the specified data, and wherein generating the CRC code associated with the jth portion comprises generating data indicative of a CRC code for a polynomial xstartj.
- 14. The method of claim 13 wherein generating the CRC code associated with the jth portion comprises generating a product of a CRC code for the jth portion and the CRC code for the polynomial xstartj.
- 15. The method of claim 14 wherein generating the CRC code associated with the jth portion comprises generating a product of a remainder for the jth portion and a remainder for the polynomial xstartj.
- 16. The method of claim 14 wherein the product is indicative of a polynomial arithmetic product of the remainder for the jth portion and the remainder for the polynomial xstartj.
- 17. The method of claim 1 wherein generating a plurality of preliminary CRC codes comprises generating at least one of the plurality preliminary CRC codes at least partially concurrently with generating at least one other of the plurality of preliminary CRC codes.
- 18. The method of claim 1 wherein generating a plurality of preliminary CRC codes comprises:
partitioning the specified data into a plurality of portions; and generating a plurality of preliminary CRC codes each being associated with and being generated in response to a respective one of the plurality of portions.
- 19. The method of claim 18 wherein generating a plurality of preliminary CRC codes comprises generating each one of the plurality of preliminary CRC codes independent of all of the plurality of portions not associated with that one of the plurality of preliminary CRC codes.
- 20. The method of claim 19 wherein generating a plurality of preliminary CRC codes further comprises generating each of the plurality of preliminary CRC codes at least partially concurrently with generating at least one other of the plurality of preliminary CRC codes.
- 21. The method of claim 18 wherein generating a plurality of preliminary CRC codes further comprises generating at least one of the plurality of preliminary CRC codes at least partially concurrently with generating at least one other of the plurality of preliminary CRC codes.
- 22. The method of claim 18 wherein generating each one of the plurality of preliminary CRC codes comprises generating a CRC remainder for the associated one of the plurality of portions.
- 23. The method of claim 18 wherein generating the CRC code for the specified data further comprises generating data indicative of a summation of the plurality of preliminary CRC codes.
- 24. The method of claim 23 wherein generating the CRC code for the specified data further comprises generating data indicative of a remainder for the data indicative of the summation.
- 25. The method of claim 18 wherein the specified data comprises N bits including an LSB bit 0, an MSB bit N−1, and wherein partitioning the specified data comprises partitioning the specified data into k portions, portion j of the plurality of portions having an LSB comprising bit startj of the specified data, where startj is greater than or equal to 0 and less than or equal to N−1, and generating the plurality of preliminary CRC codes comprises generating, for each of portion 1 through k−1, data indicative of a CRC code for a polynomial xstartj.
- 26. The method of claim 25 wherein generating each one of the plurality of preliminary CRC codes comprises generating data indicative of a product of a CRC code for the associated portion and a CRC code for the polynomial xstart.
- 27. The method of claim 26 wherein generating each one of the plurality of preliminary CRC codes comprises generating data indicative of a product of a remainder for the associated portion and a remainder for the polynomial xstart.
- 28. The method of claim 27 wherein generating the CRC code for the specified data further comprises generating data indicative of a summation of the plurality of preliminary CRC codes.
- 29. The method of claim 28 wherein generating the CRC code for the specified data further comprises generating data indicative of a remainder for the data indicative of the summation.
- 30. The method of claim 1 wherein generating the CRC code for the specified data comprises generating data indicative of a CRC remainder for the specified data.
- 31. A data processor comprising:
means for generating a plurality of preliminary CRC codes in response to specified data; and means for synthesizing a CRC code for the specified data, in response to the plurality of preliminary CRC codes.
- 32. The data processor of claim 31 wherein the means for generating a plurality of preliminary CRC codes comprises:
means for partitioning the specified data into at least two portions; means for generating at least two preliminary CRC codes each being associated with and being generated in response to a respective one of the at least two portions.
- 33. The data processor of claim 32 wherein the means for partitioning the specified data into at least two portions comprises means for partitioning the specified data into at least two portions that do not overlap one another.
- 34. The data processor of claim 32 wherein the means for generating at least two preliminary CRC codes comprises means for generating at least one of the at least two preliminary CRC codes independent of portions of the at least two portions of the specified data not associated with the at least one of the at least two preliminary CRC codes.
- 35. The data processor of claim 32 wherein the means for generating a plurality of preliminary CRC codes further comprises means for generating at least one of the at least two preliminary CRC codes at least partially concurrently with generating at least one other of the at least two preliminary CRC codes.
- 36. The data processor of claim 34 wherein the means for generating a plurality of preliminary CRC codes further comprises means for generating at least one of the at least two preliminary CRC codes at least partially concurrently with generating at least one other of the at least two preliminary CRC codes.
- 37. A data processor that generates a plurality of preliminary CRC codes in response to specified data, and synthesizes a CRC code for the specified data, in response to the plurality of preliminary CRC codes.
- 38. The data processor of claim 37 wherein the data processor partitions the specified data into at least two portions, and generates at least two preliminary CRC codes each being associated with and being generated in response to a respective one of the at least two portions.
- 39. The data processor of claim 38 wherein the data processor partitions the specified data into at least two portions that do not overlap one another.
- 40. The data processor of claim 38 wherein the data processor generates at least one of the at least two preliminary CRC codes independent of portions of the at least two portions of the specified data not associated with the at least one of the at least two preliminary CRC codes.
- 41. The data processor of claim 38 wherein the data processor generates at least one of the at least two preliminary CRC codes at least partially concurrently with generating at least one other of the at least two preliminary CRC codes.
- 42. The data processor of claim 40 wherein the data processor generates at least one of the at least two preliminary CRC codes at least partially concurrently with generating at least one other of the at least two preliminary CRC codes.
- 43. An information system comprising at least one data processor that generates a plurality of preliminary CRC codes in response to specified data, and synthesizes a CRC code for the specified data in response to the plurality of preliminary CRC codes.
- 44. The information system of claim 43 wherein the data processor partitions the specified data into at least two portions, and generates at least two preliminary CRC codes each being associated with and being generated in response to a respective one of the at least two portions.
- 45. The information system of claim 44 wherein the data processor partitions the specified data into at least two portions that do not overlap one another.
- 46. The information system of claim 44 wherein the data processor generates at least one of the at least two preliminary CRC codes independent of portions of the at least two portions of the specified data not associated with the at least one of the at least two preliminary CRC codes.
- 47. The information system of claim 44 wherein the data processor generates at least one of the at least two preliminary CRC codes at least partially concurrently with generating at least one other of the at least two preliminary CRC codes.
- 48. The information system of claim 44 wherein the data processor generates at least one of the at least two preliminary CRC codes at least partially concurrently with generating at least one other of the at least two preliminary CRC codes.
- 49. A product comprising:
a computer readable media; and information stored on the computer readable media to cause a computer to carry out a method for generating a CRC code for specified data, the method comprising generating a plurality of preliminary CRC codes in response to the specified data, and synthesizing a CRC code for the specified data, in response to the plurality of preliminary CRC codes.
- 50. The product of claim 49 wherein generating a plurality of preliminary CRC codes comprises:
partitioning the specified data into at least two portions; generating at least two preliminary CRC codes each being associated with and being generated in response to a respective one of the at least two portions.
- 51. The product of claim 50 wherein partitioning the specified data into at least two portions comprises partitioning the specified data into at least two portions that do not overlap one another.
- 52. The product of claim 50 wherein generating at least two preliminary CRC codes comprises generating at least one of the at least two preliminary CRC codes independent of portions of the at least two portions of the specified data not associated with the at least one of the at least two preliminary CRC codes.
- 53. The product of claim 50 wherein generating a plurality of preliminary CRC codes further comprises generating at least one of the at least two preliminary CRC codes at least partially concurrently with generating at least one other of the at least two preliminary CRC codes.
- 54. The product of claim 52 wherein generating a plurality of preliminary CRC codes further comprises generating at least one of the at least two preliminary CRC codes at least partially concurrently with generating at least one other of the at least two preliminary CRC codes.
- 55. A communication signal comprising:
information to cause a computer to carry out a method for generating a CRC code for specified data, the method comprising generating a plurality of preliminary CRC codes in response to the specified data, and synthesizing a CRC code for the specified data, in response to the plurality of preliminary CRC codes.
- 56. The communication signal of claim 55 wherein generating a plurality of preliminary CRC codes comprises:
partitioning the specified data into at least two portions; generating at least two preliminary CRC codes each being associated with and being generated in response to a respective one of the at least two portions.
- 57. The communication signal of claim 56 wherein partitioning the specified data into at least two portions comprises partitioning the specified data into at least two portions that do not overlap one another.
- 58. The communication signal of claim 56 wherein generating at least two preliminary CRC codes comprises generating at least one of the at least two preliminary CRC codes independent of portions of the at least two portions of the specified data not associated with the at least one of the at least two preliminary CRC codes.
- 59. The communication signal of claim 56 wherein generating a plurality of preliminary CRC codes further comprises generating at least one of the at least two preliminary CRC codes at least partially concurrently with generating at least one other of the at least two preliminary CRC codes.
- 60. The communication signal of claim 58 wherein generating a plurality of preliminary CRC codes further comprises generating at least one of the at least two preliminary CRC codes at least partially concurrently with generating at least one other of the at least two preliminary CRC codes.
- 61. The method of claim 17 wherein generating a plurality of preliminary CRC codes comprises generating at least one of the plurality preliminary CRC codes at least partially concurrently with generating at least one other of the plurality of preliminary CRC codes by supplying an instruction pipeline.
- 62. A method implemented by a data processor, the method comprising:
generating a plurality of preliminary remainder based codes in response to specified data; and synthesizing a remainder based code for the specified data, in response to the plurality of preliminary remainder based codes.
- 63. The method of claim 62 wherein generating a plurality of preliminary remainder based codes comprises generating at least two preliminary remainder based codes each being associated with and being generated in response to a respective portion of the specified data.
- 64. The method of claim 63 wherein generating a plurality of preliminary remainder based codes further comprises generating at least one of the at least two preliminary remainder based codes at least partially concurrently with generating at least one other of the at least two preliminary remainder based codes.
- 65. The method of claim 63 wherein generating at least two preliminary remainder based codes comprises generating at least one of the at least two preliminary remainder based codes independent of portions of the at least two portions not associated with the at least one of the at least two preliminary remainder based codes.
- 66. The method of claim 63 wherein partitioning the specified data into at least two portions comprises partitioning the specified data into at least two portions that do not overlap one another.
- 67. The method of claim 65 wherein generating a plurality of preliminary remainder based codes further comprises generating at least one of the at least two preliminary remainder based codes at least partially concurrently with generating at least one other of the at least two preliminary remainder based codes.
- 68. The method of claim 63 wherein generating a plurality of preliminary remainder based codes comprises generating at least one of the plurality preliminary remainder based codes at least partially concurrently with generating at least one other of the plurality of preliminary remainder based codes by supplying an instruction pipeline.
- 69. A data processor comprising:
means for generating a plurality of preliminary remainder based codes in response to specified data; and means for synthesizing a remainder based code for the specified data, in response to the plurality of preliminary remainder based codes.
- 70. The data processor of claim 69 wherein the means for generating a plurality of preliminary remainder based codes comprises:
means for partitioning the specified data into at least two portions; means for generating at least two preliminary remainder based codes each being associated with and being generated in response to a respective one of the at least two portions.
- 71. The data processor of claim 70 wherein the means for partitioning the specified data into at least two portions comprises means for partitioning the specified data into at least two portions that do not overlap one another.
- 72. The data processor of claim 70 wherein the means for generating at least two preliminary remainder based codes comprises means for generating at least one of the at least two preliminary remainder based codes independent of portions of the at least two portions of the specified data not associated with the at least one of the at least two preliminary remainder based codes.
- 73. The data processor of claim 70 wherein the means for generating a plurality of preliminary remainder based codes further comprises means for generating at least one of the at least two preliminary remainder based codes at least partially concurrently with generating at least one other of the at least two preliminary remainder based codes.
- 74. The data processor of claim 72 wherein the means for generating a plurality of preliminary remainder based codes further comprises means for generating at least one of the at least two preliminary remainder based codes at least partially concurrently with generating at least one other of the at least two preliminary remainder based codes.
- 75. A data processor that generates a plurality of preliminary remainder based codes in response to specified data, and synthesizes a remainder based code for the specified data, in response to the plurality of preliminary remainder based codes.
- 76. The data processor of claim 75 wherein the data processor partitions the specified data into at least two portions, and generates at least two preliminary remainder based codes each being associated with and being generated in response to a respective one of the at least two portions.
- 77. The data processor of claim 76 wherein the data processor partitions the specified data into at least two portions that do not overlap one another.
- 78. The data processor of claim 76 wherein the data processor generates at least one of the at least two preliminary remainder based codes independent of portions of the at least two portions of the specified data not associated with the at least one of the at least two preliminary remainder based codes.
- 79. The data processor of claim 76 wherein the data processor generates at least one of the at least two preliminary remainder based codes at least partially concurrently with generating at least one other of the at least two preliminary remainder based codes.
- 80. The data processor of claim 78 wherein the data processor generates at least one of the at least two preliminary remainder based codes at least partially concurrently with generating at least one other of the at least two preliminary remainder based codes.
- 81. An information system comprising at least one data processor that generates a plurality of preliminary remainder based codes in response to specified data, and synthesizes a remainder based code for the specified data in response to the plurality of preliminary remainder based codes.
- 82. The information system of claim 81 wherein the data processor partitions the specified data into at least two portions, and generates at least two preliminary remainder based codes each being associated with and being generated in response to a respective one of the at least two portions.
- 83. The information system of claim 82 wherein the data processor partitions the specified data into at least two portions that do not overlap one another.
- 84. The information system of claim 83 wherein the data processor generates at least one of the at least two preliminary remainder based codes independent of portions of the at least two portions of the specified data not associated with the at least one of the at least two preliminary remainder based codes.
- 85. The information system of claim 84 wherein the data processor generates at least one of the at least two preliminary remainder based codes at least partially concurrently with generating at least one other of the at least two preliminary remainder based codes.
- 86. The information system of claim 85 wherein the data processor generates at least one of the at least two preliminary remainder based codes at least partially concurrently with generating at least one other of the at least two preliminary remainder based codes.
- 87. A product comprising:
a computer readable media; and information stored on the computer readable media to cause a computer to carry out a method for generating a remainder based code for specified data, the method comprising generating a plurality of preliminary remainder based codes in response to the specified data, and synthesizing a remainder based code for the specified data, in response to the plurality of preliminary remainder based codes.
- 88. The product of claim 87 wherein generating a plurality of preliminary remainder based codes comprises:
partitioning the specified data into at least two portions; generating at least two preliminary remainder based codes each being associated with and being generated in response to a respective one of the at least two portions.
- 89. The product of claim 88 wherein partitioning the specified data into at least two portions comprises partitioning the specified data into at least two portions that do not overlap one another.
- 90. The product of claim 88 wherein generating at least two preliminary remainder based codes comprises generating at least one of the at least two preliminary remainder based codes independent of portions of the at least two portions of the specified data not associated with the at least one of the at least two preliminary remainder based codes.
- 91. The product of claim 88 wherein generating a plurality of preliminary remainder based codes further comprises generating at least one of the at least two preliminary remainder based codes at least partially concurrently with generating at least one other of the at least two preliminary remainder based codes.
- 92. The product of claim 90 wherein generating a plurality of preliminary remainder based codes further comprises generating at least one of the at least two preliminary remainder based codes at least partially concurrently with generating at least one other of the at least two preliminary remainder based codes.
- 93. A communication signal comprising:
information to cause a computer to carry out a method for generating a remainder based code for specified data, the method comprising generating a plurality of preliminary remainder based codes in response to the specified data, and synthesizing a remainder based code for the specified data, in response to the plurality of preliminary remainder based codes.
- 94. The communication signal of claim 93 wherein generating a plurality of preliminary remainder based codes comprises:
partitioning the specified data into at least two portions; generating at least two preliminary remainder based codes each being associated with and being generated in response to a respective one of the at least two portions.
- 95. The communication signal of claim 94 wherein partitioning the specified data into at least two portions comprises partitioning the specified data into at least two portions that do not overlap one another.
- 96. The communication signal of claim 94 wherein generating at least two preliminary remainder based codes comprises generating at least one of the at least two preliminary remainder based codes independent of portions of the at least two portions of the specified data not associated with the at least one of the at least two preliminary remainder based codes.
- 97. The communication signal of claim 94 wherein generating a plurality of preliminary remainder based codes further comprises generating at least one of the at least two preliminary remainder based codes at least partially concurrently with generating at least one other of the at least two preliminary remainder based codes.
- 98. The communication signal of claim 96 wherein generating a plurality of preliminary remainder based codes further comprises generating at least one of the at least two preliminary remainder based codes at least partially concurrently with generating at least one other of the at least two preliminary remainder based codes.
PRIORITY CLAIM
[0001] This application claims priority under 35 USC section 119(e) of provisional application No. 60/183,197, filed on Feb. 17, 2000, entitled “Method and Apparatus for Rapidly Generating CRC Block Codes”.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60183197 |
Feb 2000 |
US |