Claims
- 1. A method of verifying data transferred between a host computer system and a disc drive system along a data path, the method comprising:
calculating a first error detection value, the error detection value relating to both an identification tag and associated data; transferring the data and the first error detection value along the data path; generating a second error detection value using the transferred data and the identification tag; and comparing the second error detection value to the first error detection value received with the data to determine validity of the data.
- 2. A method of verifying data as defined in claim 1 wherein the first and second error detection values are cyclic redundancy check values.
- 3. A method as defined in claim 1 wherein the first and second error detection values are calculated using the same predetermined cyclic redundancy check algorithm.
- 4. A method of verifying data as defined in claim 3 further comprising:
transferring a request to transfer the data wherein the request indicates the location of the data, the request further including identification information related to the identification tag.
- 5. A method of verifying data as defined in claim 4 further comprising determining a control tag value based on the received identification information.
- 6. A method of verifying data as defined in claim 5 wherein the request to transfer information relates to a write command.
- 7. A method of verifying data as defined in claim 6 further comprising:
prior to calculating the first error detection value, storing the identification tag and the associated data in a first buffer on a host computer system, wherein the first buffer is a user buffer; and wherein the act of storing the data into the first buffer is performed by a file system module.
- 8. A method of verifying data as defined in claim 6 wherein the act of storing the data into the first buffer is performed by an application module.
- 9. A method of verifying data as defined in claim 3 wherein the act of storing the data into the first buffer further comprises:
dividing the first buffer into a plurality of sectors; storing data into the sectors; and maintaining a table of sectors, identification tags and error detection values, the table indicating the association between such sectors, identification tags and error detection values, and wherein each subsequent identification tag is an incremented value of the previous identification tag.
- 10. A method of verifying data as defined in claim 9 wherein the act of recalculating further comprises:
determining control tag values for each sector based on information received in the request to transfer; and using each of the control tag values in recalculating the second error detection values.
- 11. A method of verifying data as defined in claim 10 wherein the first buffer is a user buffer located on the host computer system, the request to transfer information relates to a write command, the act of storing the data is performed by a file system module, and wherein the method further comprises:
upon receiving the data and associated tag information, inserting a logical block address value into each data sector; calculating a cyclic redundancy check value for the sector with the logical block address; storing the cyclic redundancy check value onto a storage medium with the data such that the logical block address can be evaluated at a later time.
- 12. A method of verifying data as defined in claim 1 wherein the first buffer is a disc drive buffer located on the disc drive system.
- 13. A method of verifying data as defined in claim 12 wherein the request to transfer relates to a read request conducted by the host computer system to the disc drive system.
- 14. A computer program product readable by a computer and encoding instructions for executing the method recited in claim 3.
- 15. A computer program product readable by a computer and encoding instructions for executing the method recited in claim 11.
- 16. A storage system for storing data onto a storage medium comprising:
a host computer system having a user buffer; a disc drive system having the storage medium; a data path connected to the host computer system and the disc drive system to provide the transfer of information between the host computer system and disc drive system; a first buffer for storing abstract data to be transferred along the data path; a second buffer for storing abstract data received along the data path; a storage module for storing one or more identification tags in the first buffer, each tag associated with a portion of abstract data; a first calculation module for calculating a first error detection value related to an identification tag and the associated portion of abstract data for the identification tag; a second calculation module for recalculating a second error detection value related to the received abstract data and a received identification tag; and a comparison module for comparing the first and second error detection values.
- 17. A storage system as defined in claim 16 wherein the information being transferred along the data path is transferred in response to a request to transfer, the request to transfer having information related to an identification tag value, and wherein one or more control values are generated based on the information received in the request to transfer, the control values representing identification tag values for use in recalculating the error detection values.
- 18. A storage system as defined in claim 17 wherein the first buffer is a user buffer located on the host computer system, the request to transfer information relates to a write command, and wherein the error detection values relate to cyclic redundancy check values.
- 19. A storage system of verifying data as defined in claim 18 wherein the storage module is a file system module.
- 20. A storage system as defined in claim 19 wherein the first buffer is divided into a plurality of sectors for storing abstract data and the storage module appends cyclic redundancy check values to the end of each sector, wherein each subsequent cyclic redundancy check uses an identification tag that is a function of an incremented value of the previous identification tag and wherein the comparison module compares each cyclic redundancy check value with a recalculated cyclic redundancy check value, the recalculated cyclic redundancy check values using control values related to the incremented identification tag values.
- 21. A storage system method of verifying data as defined in claim 20 wherein the first buffer is a user buffer located on the host computer system, the request to transfer information relates to a write command, the storage module is a file system module on the host computer system, the second buffer is located on the disc drive system, the storage system further comprising:
a receive module located on the disc drive system for receiving the data and associated tag information, the receive module also inserts a logical block address value into each data sector; a calculation module for calculating a cyclic redundancy check value for the sector with the logical block address; an access module for storing the cyclic redundancy check value onto a storage medium with the data such that the logical block address can be evaluated at a later time.
- 22. A storage system as defined in claim 17 wherein the first buffer is a disc drive buffer located on the disc drive system.
- 23. A storage system as defined in claim 22 wherein the request to transfer relates to a read request conducted by the host computer system to the disc drive system.
- 24. A data storage system for storing abstract data, the data storage system comprising:
a means for calculating error detection values related to tag information and abstract data; and a means for evaluating error detection information to verify the abstract data.
- 25. A data storage system as defined in claim 24 further comprising:
a means for transferring the abstract data to a storage buffer, wherein the error detection value is transferred with the abstract data; a means for transferring the tag information, wherein the tag information is transferred independently from the abstract data; and a means for recalculating the error detection information using the abstract data and the tag information.
- 26. A data storage system as defined in claim 25 wherein the means for evaluating tag information compares the error detection information received with the abstract data to the recalculated error detection value to verify the abstract data.
RELATED APPLICATION
[0001] This application is a continuation-in-part of U.S. patent application Ser. No. 10/086,918, titled METHOD AND SYSTEM FOR DATA PATH VERIFICATION, which was filed on Feb. 28, 2002. This application also claims priority of U.S. Provisional Application Serial No. 60/325,340, titled DATA PATH VERIFICATION IMPLEMENTED IN THE STORAGE DEVICE, filed Sep. 27, 2001, which is incorporated herein by reference. This application further claims priority of U.S. Provisional Application Serial No. 60/349,953, titled DATA PATH VERIFICATION IMPLEMENTED IN THE STORAGE DEVICE IMPROVEMENT, filed Jan. 17, 2002, which is incorporated herein by reference.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60325340 |
Sep 2001 |
US |
|
60349953 |
Jan 2002 |
US |
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
10086918 |
Feb 2002 |
US |
Child |
10184757 |
Jun 2002 |
US |