초록
▼
Methods, circuits, architectures, and systems for error detection in transmitted data. The method generally includes the steps of (a) performing an error checking calculation on the transmitted data and appended error checking code; (b) determining the calculated error checking code state; and (c) if it has a predetermined state, indicating that there is no error in the transmitted data. The circuitry generally comprises (1) an error checking code calculation circuit configured to calculate error checking code on the transmitted data and the appended err...
Methods, circuits, architectures, and systems for error detection in transmitted data. The method generally includes the steps of (a) performing an error checking calculation on the transmitted data and appended error checking code; (b) determining the calculated error checking code state; and (c) if it has a predetermined state, indicating that there is no error in the transmitted data. The circuitry generally comprises (1) an error checking code calculation circuit configured to calculate error checking code on the transmitted data and the appended error checking code; (2) a vector selector configured to select one of a plurality of error checking vectors; and (3) a logic circuit configured to determine the calculated error checking code state and, if it has a predetermined state, indicate that there is no error in the transmitted data. The software generally includes a set of instructions configured to implement or carry out the present method. The architectures and/or systems generally include those that embody one or more of the inventive concepts disclosed herein. In the present invention, an error checking calculation is performed on error checking code transmitted with the data. If the transmitted data and error checking code are error-free, the error checking calculation gives a result having a known and/or predetermined state. This technique enables one to confirm or determine that the data transmission was error-free without use of or need for a wide, complicated comparator, thereby reducing the chip area dedicated to error detection, increasing the utilization efficiency of the circuitry on the chip, and reducing power consumption.
대표
청구항
▼
What is claimed is: 1. A method of determining or confirming an error in transmitted data, comprising the steps of: a) receiving said transmitted data and then partitioning said received data into at least one data line and a last line, each of said at least one data line and said last line having a first fixed length, and the last line containing appended error checking code calculated on said transmitted data; b) when said partitioned received data has a remainder, said remainder having any length less than said first fixed length and greater than zer...
What is claimed is: 1. A method of determining or confirming an error in transmitted data, comprising the steps of: a) receiving said transmitted data and then partitioning said received data into at least one data line and a last line, each of said at least one data line and said last line having a first fixed length, and the last line containing appended error checking code calculated on said transmitted data; b) when said partitioned received data has a remainder, said remainder having any length less than said first fixed length and greater than zero, appending a pad vector to said remainder, the pad vector having a length sufficient to form a first data line with said first fixed length when the pad vector is appended to said remainder; c) performing an error checking calculation on said first line, said at least one data line and any data in said last line to generate an error checking vector; d) iterating the error checking calculation on said appended error checking code using said error checking vector to provide a calculated error checking result; e) determining a state of said calculated error checking result; and f) if said calculated error checking result has a predetermined state, indicating that there is no error in said transmitted data. 2. The method of claim 1, wherein said one or more data lines each comprise a plurality of data blocks, each data block having a second fixed length, said second fixed length being an integer divisor of said first fixed length, and said appended error checking code has a third length comprising an integer multiple of said second fixed length, said integer multiple being the same as or less than said integer divisor. 3. The method of claim 1, wherein said first fixed length comprises 2m bits, where m is an integer of from 6 to 10. 4. The method of claim 1, wherein said step of performing an error checking calculation comprises checking each of said first line, said at least one data line and said last line with common error checking circuitry. 5. The method of claim 1, wherein said predetermined state is selected from the group consisting of all zeros and all ones. 6. The method of claim 1, wherein if said calculated error checking result does not have said predetermined state, indicating that there is an error in said transmitted data. 7. The method of claim 1, wherein said appended error checking code has a length of p bits, where p is an integer of from 8 to 128. 8. The method of claim 7, wherein p is 8, 16, 32, 64 or 128. 9. The method of claim 1, wherein performing said error checking calculation on said first line, said at least one data line and any data in said last line comprises a plurality of cyclic redundancy check (CRC) calculations. 10. The method of claim 9, wherein said appended error checking code comprises a CRC calculation result on said transmitted data. 11. The method of claim 9, wherein iterating the error checking calculation on said appended error checking code comprises a CRC calculation on said appended error checking code. 12. A computer-readable medium containing a set of instructions which, when executed by a signal processing device configured to execute computer-readable instructions, is configured to cause a receiver circuit to perform the method of claim 1. 13. The computer-readable medium of claim 12, wherein said transmitted error checking code has a length of p bits, where p is an integer of from 8 to 128. 14. The computer-readable medium of claim 12, wherein said fixed length comprises 2m bits, where m is an integer of from 6 to 10. 15. The computer-readable medium of claim 12, wherein said error checking calculations comprise cyclic redundancy check (CRC) calculations. 16. The computer-readable medium of claim 12, wherein said predetermined state is selected from the group consisting of all zeros and all ones. 17. The computer-readable medium of claim 12, wherein said set of instructions further comprises an instruction to indicate that there is an error in said transmitted data if said calculated error checking result does not have said predetermined state. 18. The computer-readable medium of claim 12, wherein said set of instructions further comprises an instruction to select the pad vector from a set of padding vectors. 19. The computer-readable medium of claim 18, wherein said pad vector is a zero-pad vector. 20. The computer-readable medium of claim 12, wherein said set of instructions further comprises an instruction to determine a length of said remainder. 21. The computer-readable medium of claim 20, wherein said pad vector is selected in response to information comprising said length of said remainder. 22. A circuit for determining a data transmission error and/or checking a data transmission error determination, comprising: a) a data partitioning circuit configured to receive transmitted data and an appended error checking code calculated on said transmitted data, and then partition said transmitted data and said appended error checking code into at least one data line having a first fixed length and a last line comprising said appended error checking code and having said first fixed length; b) an error checking code calculation circuit configured to perform error checking calculations on a first data line, said at least one data line and any data in said last line to generate an error checking vector, and iterate the error checking calculation on said appended error checking code using said error checking vector to provide a calculated error checking result; c) a vector selector configured to insert a pad vector to said first data line when said partitioned transmitted data and appended error checking code comprises a remainder, said remainder having any length less than said first fixed length and greater than zero, and select one of a plurality of error checking vectors, said plurality of error checking vectors comprising an initial vector and an error checking code feedback vector, the pad vector having a length providing said first data line with said first fixed length when appended to said remainder; and d) a logic circuit configured to determine a state of said calculated error checking result and, if said calculated error checking result has a predetermined state, indicate that there is no error in said transmitted data. 23. The circuit of claim 22, wherein said pad vector comprises a zero-pad vector. 24. The circuit of claim 22, wherein said set of pad vectors comprises a plurality of zero-pad vectors, each having a unique length. 25. The circuit of claim 22, wherein said first fixed length is 2m bits, where m is an integer of from 6 to 10. 26. The circuit of claim 22, wherein said transmitted data comprises a packet or frame. 27. The circuit of claim 22, wherein said error checking code calculation circuit comprises a cyclic redundancy checking (CRC) circuit. 28. The circuit of claim 22, wherein said predetermined state comprises a block of digital bits, where each bit in the block has the same digital value. 29. The circuit of claim 22, wherein said logic circuit further comprises a demultiplexer configured to output transmitted data error checking code calculated on said transmitted data or said state of said calculated error checking code, depending on a control signal state. 30. The circuit of claim 22, further comprising a storage circuit configured to store said set of pad vectors. 31. The circuit of claim 30, wherein said storage circuit comprises a hash table or a look-up table. 32. The circuit of claim 22, further comprising a remainder logic circuit configured to generate a remainder information signal having a state corresponding to a length of said remainder. 33. The circuit of claim 32, wherein said vector selector selects said one of said pad vectors in response to said remainder information signal. 34. A receiver, comprising: a) the circuit of claim 22; b) a processor in communication with said circuit, configured to process said transmitted data; and c) a clock recovery circuit configured to recover a clock signal from serial transmitted data received by said receiver. 35. The receiver of claim 34, embodied on a single integrated circuit. 36. The receiver of claim 34, wherein said data partitioning circuit comprises a deserializer configured to convert serial digital data into parallel digital data for processing by said error checking code calculation circuit. 37. The receiver of claim 34, wherein said transmitted data comprises a packet or frame. 38. The receiver of claim 37, wherein said processor is further configured to assemble (i) non-data information from said packet or frame and (ii) at least part of said transmitted data. 39. The receiver of claim 38, further comprising a decoder configured to decode at least part of said non-data information. 40. A system for transferring data on or across a network, comprising: a) the receiver of claim 34; b) at least one transmitter in communication with said receiver, said transmitter being configured to transmit said transmitted data to said receiver; and c) at least one receiver port in communication with said receiver for receiving said transmitted data. 41. The system of claim 40, further comprising a control bus configured to transmit an indicator signal from said receiver to said transmitter, said indicator signal indicating whether there is an error in said transmitted data. 42. The system of claim 40, wherein said error checking code calculation circuit comprises a cyclic redundancy checking (CRC) circuit. 43. The system of claim 42, wherein said transmitter further comprises (i) a CRC generator configured to generate CRC information from said transmitted data and (ii) a transmitter processor configured to append said CRC information to said transmitted data. 44. A network, comprising: a) a plurality of the systems of claim 40, in communication with each other; and b) a plurality of storage or communications devices, each of said storage or communications devices being in communication with one of said systems. 45. The network of claim 44, wherein said plurality of storage or communications devices comprises a plurality of storage devices. 46. A circuit for determining a data transmission error and/or confirming an error determination, comprising: a) means for receiving and then partitioning said transmitted data and said appended error checking code into (i) at least one data line having a first fixed length, and (ii) a last line comprising said appended error checking code and having said first fixed length; b) means for performing error checking calculations on a first data line, said at least one data line and any data in said last line to generate an error checking vector, and iterating the error checking calculation on said appended error checking code using said error checking vector to provide a calculated error checking result; c) means for selecting one of a plurality of error checking vectors, said plurality of error checking vectors comprising an initial vector, an error checking code feedback vector, and a pad vector; d) means of inserting said pad vector to said first data line when said partitioned transmitted data and said appended error checking code comprises a remainder, said remainder having any length less than said first fixed length and greater than zero, said pad vector having a length providing said first data line with said first fixed length when appended to said remainder; and e) means for determining a state of said calculated error checking result and, if said calculated error checking result has a predetermined state, indicating that there is no error in said transmitted data. 47. The circuit of claim 46, wherein said pad vector comprises a zero-pad vector. 48. The circuit of claim 46, wherein said set of pad vectors comprises a plurality of zero-pad vectors, each having a unique length. 49. The circuit of claim 46, further comprising a means for storing said set of pad vectors. 50. The circuit of claim 46, wherein said fixed length is 2m bits, where m is an integer of from 6 to 10. 51. The circuit of claim 46, wherein said transmitted data comprises a packet or frame. 52. The circuit of claim 46, wherein said means for calculating error checking code comprises a cyclic redundancy checking (CRC) circuit. 53. The circuit of claim 46, wherein said predetermined state comprises a block of digital bits, where each bit in the block has the same digital value. 54. The circuit of claim 46, wherein said means for determining and indicating further comprises a means for outputting (i) error checking code calculated on said transmitted data by said means for calculating or (ii) said state of said calculated error checking code. 55. The circuit of claim 46, further comprising a means for generating a remainder information signal having a state corresponding to a length of said remainder. 56. The circuit of claim 55, wherein said means for selecting selects said one of said pad vectors in response to said remainder information signal. 57. A receiver, comprising: a) the circuit of claim 46; b) a means for processing in communication with said circuit, configured to process said transmitted data; and c) a means for recovering a clock signal from serial data received by said receiver. 58. The receiver of claim 57, embodied on a single integrated circuit. 59. The receiver of claim 57, further comprising a means for dividing said recovered clock. 60. The receiver of claim 57, wherein said means for calculating error checking code comprises a means for calculating cyclic redundancy code. 61. The receiver of claim 57, wherein said transmitted data comprises a packet or frame. 62. The receiver of claim 61, wherein said means for processing comprises a means for assembling (i) non-data information from said packet or frame and (ii) said transmitted data. 63. The receiver of claim 62, further comprising a means for decoding at least part of said non-data information. 64. A system for transferring data on or across a network, comprising: a) the receiver of claim 57; b) a means for transmitting said transmitted data and said appended error checking code to said receiver; and c) at least one means for receiving said transmitted data and said appended error checking code, said means for receiving being in communication with said receiver. 65. The system of claim 64, wherein said means for transmitting further comprises (i) a second means for calculating error checking code on said transmitted data and (ii) a means for appending said error checking code to said transmitted data. 66. The system of claim 64, wherein said receiver further comprises a means for generating an indicator signal in response to at least one of (i) an error in said transmitted data and/or said appended error checking code and (ii) no error in said transmitted data and/or said appended error checking code detected by said means for calculating. 67. A network, comprising: a) a plurality of the systems of claim 64, in communication with each other; and b) a plurality of means for storing or means for communicating data, each of said means for storing or means for communicating data being in communication with at least one of said systems. 68. The network of claim 67, wherein said plurality of means for storing or means for communicating data comprises a plurality of means for storing.