Claims
- 1. A method for evaluating a data block, the method comprising the computer-implemented steps of:
performing a physical checksum verification on the data block; and verifying whether address data contained within the data block specifies a location in nonvolatile memory where the data block is to be stored.
- 2. The method as recited in claim 1, wherein the physical checksum verification is performed using a specified pattern or number assigned to the data block.
- 3. The method as recited in claim 1, wherein the physical checksum verification is performed using a checksum value determined based upon the data block.
- 4. The method as recited in claim 1, wherein the step of verifying whether address data contained within the data block specifies a location in nonvolatile memory where the data block is to be stored includes comparing the address data contained within the data block to a location in the nonvolatile memory where the operation that stores the data block to nonvolatile memory will store the data block.
- 5. The method as recited in claim 1, further comprising performing a logical check on data contained in the data block.
- 6. A method for storing a data block to a nonvolatile memory, the method comprising the computer-implemented steps of:
performing a physical checksum verification on the data block; after performing the physical checksum verification on the data block, performing a logical check on data contained in the data block; and if both the physical checksum verification and the logical check are successful, then allowing the data block to be stored to the nonvolatile memory.
- 7. The method as recited in claim 6, further comprising storing, in association with the data block, checksum data used in the physical checksum verification to the nonvolatile memory.
- 8. The method as recited in claim 6, further comprising performing a second physical checksum verification on the data block to determine whether data contained in the data block was corrupted after the prior physical checksum verification was performed.
- 9. The method as recited in claim 6, wherein the physical checksum verification is performed using a checksum value calculated based upon the data block.
- 10. The method as recited in claim 6, wherein the physical checksum verification is performed using a specified pattern or number assigned to the data block.
- 11. The method as recited in claim 6, wherein the physical checksum verification and the logical check are performed by a database application program.
- 12. A method for storing a data block to a nonvolatile memory, the method comprising the computer-implemented steps of:
determining whether an operation that will store the data block to the nonvolatile memory will store the data block at a desired storage location that is determined based upon data contained in the data block; and only storing the data block to the nonvolatile memory if the operation that will store the data block to the nonvolatile memory will store the data block at the desired storage location associated with the data block.
- 13. The method as recited in claim 12, wherein the step of determining whether an operation that will store the data block to the nonvolatile memory will store the data block at a desired storage location associated with the data block includes comparing an address where the operation will store the data block to the nonvolatile memory to the desired storage location.
- 14. The method as recited in claim 13, wherein:
the address where the operation will store the data block to the nonvolatile memory is a physical address, the desired storage location is a logical address, and the method further comprises using mapping data to compare the physical address to the logical address.
- 15. The method as recited in claim 14, wherein the step of using mapping data to compare the physical address to the logical address includes:
determining, based upon the logical address and the mapping data, a desired physical address, and comparing the physical address to the desired physical address.
- 16. The method as recited in claim 13, wherein:
the address where the operation will store the data block to the nonvolatile memory is a physical address, the desired storage location is a logical address, and the method further comprises using an algorithm to compare the physical address to the logical address.
- 17. The method as recited in claim 16, wherein the step of using an algorithm to compare the physical address to the logical address includes:
determining, based upon the logical address and the algorithm, a desired physical address, and comparing the physical address to the desired physical address.
- 18. The method as recited in claim 12, further comprising reading the desired storage location from the data block.
- 19. A method for storing a data block to a nonvolatile memory, the method comprising the computer-implemented steps of:
determining whether a location verification check is to be performed for the data block; and if a location verification check is to be performed for the data block, then
determining whether an operation that will store the data block to the nonvolatile memory will store the data block at a desired storage location associated with the data block; and only storing the data block to the nonvolatile memory if the operation that will store the data block to the nonvolatile memory will store the data block at the desired storage location associated with the data block.
- 20. A computer-readable medium for evaluating a data block, the computer-readable medium carrying one or more sequences of one or more instructions which, when executed by one or more processors, cause the one or more processors to perform the steps of:
performing a physical checksum verification on the data block; and verifying whether address data contained within the data block specifies a location in nonvolatile memory where the data block is to be stored.
- 21. The computer-readable medium as recited in claim 20, wherein the physical checksum verification is performed using a specified pattern or number assigned to the data block.
- 22. The computer-readable medium as recited in claim 20, wherein the physical checksum verification is performed using a checksum value determined based upon the data block.
- 23. The computer-readable medium as recited in claim 20, wherein the step of verifying whether address data contained within the data block specifies a location in nonvolatile memory where the data block is to be stored includes comparing the address data contained within the data block to a location in the nonvolatile memory where the operation that stores the data block to nonvolatile memory will store the data block.
- 24. The computer-readable medium as recited in claim 20, further comprising performing a logical check on data contained in the data block.
- 25. A computer-readable medium for storing a data block to a nonvolatile memory, the computer-readable medium carrying one or more sequences of one or more instructions which, when executed by one or more processors, cause the one or more processors to perform the steps of:
performing a physical checksum verification on the data block; after performing the physical checksum verification on the data block, performing a logical check on data contained in the data block; and if both the physical checksum verification and the logical check are successful, then allowing the data block to be stored to the nonvolatile memory.
- 26. The computer-readable medium as recited in claim 25, further comprising storing, in association with the data block, checksum data used in the physical checksum verification to the nonvolatile memory.
- 27. The computer-readable medium as recited in claim 25, further comprising performing a second physical checksum verification on the data block to determine whether data contained in the data block was corrupted after the prior physical checksum verification was performed.
- 28. The computer-readable medium as recited in claim 25, wherein the physical checksum verification is performed using a checksum value calculated based upon the data block.
- 29. The computer-readable medium as recited in claim 25, wherein the physical checksum verification is performed using a specified pattern or number assigned to the data block.
- 30. The computer-readable medium as recited in claim 25, wherein the physical checksum verification and the logical check are performed by a database application program.
- 31. A computer-readable medium for storing a data block to a nonvolatile memory, the computer-readable medium carrying one or more sequences of one or more instructions which, when executed by one or more processors, cause the one or more processors to perform the steps of:
determining whether an operation that will store the data block to the nonvolatile memory will store the data block at a desired storage location that is determined based upon data contained in the data block; and only storing the data block to the nonvolatile memory if the operation that will store the data block to the nonvolatile memory will store the data block at the desired storage location associated with the data block.
- 32. The computer-readable medium as recited in claim 31, wherein the step of determining whether an operation that will store the data block to the nonvolatile memory will store the data block at a desired storage location associated with the data block includes comparing an address where the operation will store the data block to the nonvolatile memory to the desired storage location.
- 33. The computer-readable medium as recited in claim 32, wherein:
the address where the operation will store the data block to the nonvolatile memory is a physical address, the desired storage location is a logical address, and the computer-readable medium further comprises one or more sequences of additional instructions which, when executed by the one or more processors, cause the one or more processors to use mapping data to compare the physical address to the logical address.
- 34. The computer-readable medium as recited in claim 33, wherein the step of using mapping data to compare the physical address to the logical address includes:
determining, based upon the logical address and the mapping data, a desired physical address, and comparing the physical address to the desired physical address.
- 35. The computer-readable medium as recited in claim 32, wherein:
the address where the operation will store the data block to the nonvolatile memory is a physical address, the desired storage location is a logical address, and the computer-readable medium further comprising one or more sequences of additional instructions which, when executed by the one or more processors, cause the one or more processors to use an algorithm to compare the physical address to the logical address.
- 36. The computer-readable medium as recited in claim 35, wherein the step of using an algorithm to compare the physical address to the logical address includes:
determining, based upon the logical address and the algorithm, a desired physical address, and comparing the physical address to the desired physical address.
- 37. The computer-readable medium as recited in claim 31, further comprising reading the desired storage location from the data block.
- 38. A computer-readable medium for storing a data block to a nonvolatile memory, the computer-readable medium carrying one or more sequences of one or more instructions which, when executed by one or more processors, cause the one or more processors to perform the steps of:
determining whether a location verification check is to be performed for the data block; and if a location verification check is to be performed for the data block, then
determining whether an operation that will store the data block to the nonvolatile memory will store the data block at a desired storage location associated with the data block; and only storing the data block to the nonvolatile memory if the operation that will store the data block to the nonvolatile memory will store the data block at the desired storage location associated with the data block.
- 39. An apparatus for evaluating a data block comprising:
a memory; and a verification mechanism configured to:
perform a physical checksum verification on the data block; and verify whether address data contained within the data block specifies a location in nonvolatile memory where the data block is to be stored.
- 40. The apparatus as recited in claim 39, wherein the verification mechanism is further configured to perform the physical checksum verification using a specified pattern or number assigned to the data block.
- 41. The apparatus as recited in claim 39, wherein the verification mechanism is further configured to perform the physical checksum verification using a checksum value determined based upon the data block.
- 42. The apparatus as recited in claim 39, wherein the verification mechanism is further configured to verify whether address data contained within the data block specifies a location in nonvolatile memory where the data block is to be stored by comparing the address data contained within the data block to a location in the nonvolatile memory where the operation that stores the data block to nonvolatile memory will store the data block.
- 43. The apparatus as recited in claim 39, wherein the verification mechanism is further configured to perform a logical check on data contained in the data block.
- 44. An apparatus for storing a data block to a nonvolatile memory comprising:
a memory; and a verification mechanism configured to:
perform a physical checksum verification on the data block; after performing the physical checksum verification on the data block, perform a logical check on data contained in the data block; and if both the physical checksum verification and the logical check are successful, then allow the data block to be stored to the nonvolatile memory.
- 45. The apparatus as recited in claim 44, wherein the verification mechanism is further configured to allow the storing, in association with the data block, of checksum data used in the physical checksum verification to the nonvolatile memory.
- 46. The apparatus as recited in claim 44, wherein the verification mechanism is further configured to perform a second physical checksum verification on the data block to determine whether data contained in the data block was corrupted after the data block was stored to the nonvolatile memory.
- 47. The apparatus as recited in claim 44, wherein the verification mechanism is further configured to perform the physical checksum verification using a checksum value calculated based upon the data block.
- 48. The apparatus as recited in claim 44, wherein the verification mechanism is further configured to perform the physical checksum verification using a specified pattern or number assigned to the data block.
- 49. A storage apparatus comprising:
a nonvolatile memory; and a storage mechanism communicatively coupled to the nonvolatile memory and configured to:
determine whether an operation that will store a data block to the nonvolatile memory will store the data block at a desired storage location that is determined based upon data contained in the data block; and only store the data block to the nonvolatile memory if the operation that will store the data block to the nonvolatile memory will store the data block at the desired storage location associated with the data block.
- 50. The storage apparatus as recited in claim 49, wherein the storage mechanism is further configured to determine whether an operation that will store the data block to the nonvolatile memory will store the data block at a desired storage location associated with the data block by comparing an address where the operation will store the data block to the nonvolatile memory to the desired storage location.
- 51. The storage apparatus as recited in claim 50, wherein:
the address where the operation will store the data block to the nonvolatile memory is a physical address, the desired storage location is a logical address, and the storage mechanism is further configured to use mapping data to compare the physical address to the logical address.
- 52. The storage apparatus as recited in claim 51, wherein the storage mechanism is further configured to use mapping data to compare the physical address to the logical address by:
determining, based upon the logical address and the mapping data, a desired physical address, and comparing the physical address to the desired physical address.
- 53. The storage apparatus as recited in claim 50, wherein:
the address where the operation will store the data block to the nonvolatile memory is a physical address, the desired storage location is a logical address, and the storage mechanism is further configured to use an algorithm to compare the physical address to the logical address.
- 54. The storage apparatus as recited in claim 53, wherein the storage mechanism is further configured to use an algorithm to compare the physical address to the logical address by:
determining, based upon the logical address and the algorithm, a desired physical address, and comparing the physical address to the desired physical address.
- 55. The storage apparatus as recited in claim 49, wherein the storage mechanism is further configured to read the desired storage location from the data block.
- 56. A storage apparatus comprising:
a nonvolatile memory; and a storage mechanism communicatively coupled to the nonvolatile memory and configured to:
determine whether a location verification check is to be performed for a data block; and if a location verification check is to be performed for the data block, then
determine whether an operation that will store the data block to the nonvolatile memory will store the data block at a desired storage location that is determined based upon data contained in the data block; and only storing the data block to the nonvolatile memory if the operation that will store the data block to the nonvolatile memory will store the data block at the desired storage location associated with the data block.
- 57. A storage apparatus configured to upon receipt of a request to store data to a location on a storage medium:
determine whether the data has been corrupted; and validate the location on the storage medium specified in the request against a location specified in the data.
- 58. A storage system comprising:
a computer; and a storage device, wherein the computer is configured to compute and store validation data in a data block that is stored on the storage device, and wherein the storage device is configured to:
validate the data block, and only allow the data block to be stored in the storage device if the validation of the data block is successful.
CLAIM OF PRIORITY
[0001] This application is a continuation-in-part application of and claims priority to U.S. patent application Ser. No. 09/765,680 (Attorney Docket No. 50277-1633) filed by Juan R. Loaiza, Wei-Ming Hu and Jingling William Lee on Jan. 18, 2001 and entitled “Data Integrity Verification Mechanism,” and claims priority to U.S. Provisional Patent Application No. 60/241,959 (Attorney Docket No. 50277-1576) filed by Wei-Ming Hu, Juan R. Loaiza, and Jingling William Lee on Oct. 19, 2000 and entitled “Data Integrity Verification Mechanism,” the contents of which are hereby incorporated by reference in their entirety for all purposes.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60241959 |
Oct 2000 |
US |
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
09765680 |
Jan 2001 |
US |
Child |
10133002 |
Apr 2002 |
US |