Data integrity management in a data storage device
AssigneeSeagate Technology LLC
InventorJon David Trantham
Life of this patent
Estimating the term…
Abstract
Apparatus and method for data integrity management in a data storage device. In accordance with some embodiments, a controller transfers user data blocks between a host device and a main memory. Each user data block has an associated logical address. A data integrity manager generates and stores a verification code for each user data block in a table structure in a local memory. The data integrity manager uses the verification code to independently verify a most current version of a selected user data block is being retrieved by the controller from the main memory during a host read request.
Claims20
An apparatus comprising:
- a controller circuit which transfers blocks of user data between a host device and a main memory, each block of user data having an associated logical address;
- and
- a data integrity manager circuit which generates and stores a verification code for each block of user data and which uses the verification code to independently verify a most current version of a selected block of user data has been correctly retrieved by the controller circuit from the main memory during execution of a host read request, the verification code for each block of user data generated by the data integrity manager circuit responsive to a user data content of said block and the associated logical address of said block and comprising non-overlapping first and second portions, the first portion of the verification code stored in a table structure in a local memory, the second portion of the verification code stored in the main memory and not in the table structure, the controller circuit transferring, across an interface, the most current version of the selected block to the host device responsive to the independent verification by the data integrity manager circuit.
A method comprising:
- receiving an input block of user data having an associated logical address for storage to a main memory;
- generating a verification code responsive to a user data content of the input user data block and the associated logical address, the verification code having different first and second portions;
- storing the first portion of the verification code in a table structure in a local memory and the second portion of the verification code in the main memory so that the second portion of the verification code is not stored in the table structure in the local memory;
- storing the input user data block in the main memory;
- subsequently receiving a host read request to retrieve the input user data block from the main memory;
- retrieving the verification code from the table structure in the local memory;
- using the retrieved verification code to independently verify a most current version of a selected user data block is being retrieved by a controller circuit from the main memory responsive to the host read request;
- and
- transferring the verified most current version of the selected user data block to complete the host read request.
A data storage device comprising:
- a non-volatile main memory having a selected data storage capacity to accommodate N user data blocks having N corresponding logical block addresses (LBAs) where N is a plural number;
- a controller circuit configured to direct a transfer of selected user data blocks between a host device and the main memory in response to host access requests from the host device;
- a volatile local memory;
- and
- a data integrity manager circuit configured to generate and store verification codes in a table data structure in the local memory, the table data structure arranged into a plural number M lowest level pages with each of the M lowest level pages storing a corresponding verification code for a different sequential subset of the N LBAs, the table structure further arranged into a plural number P parent pages with each of the P parent pages storing the page level verification codes for a different sequential subset of the M lowest level pages, the data integrity manager circuit further configured to retrieve and use the verification codes from the data table structure to independently verify a most current version of a selected block of user data has been correctly retrieved by the controller circuit from the main memory during execution of a host read request.
Dependencies are inferred from the claim text.