Fast copy through controller
AssigneeWestern Digital Technologies, Inc.
InventorsDudy David Avraham, Ran Zamir
Life of this patent
Estimating the term…
Abstract
A method and apparatus for a CTC data copy operation, in that modification, and subsequent encoding only affects a small portion of metadata associated with copied data. By modifying and re-encoding only this small portion of metadata, a small portion of the parity data for the copied data requires updating. In embodiments where there are no errors in the read data to be copied (e.g., from an SLC portion of a NAND), decoding, modification, and encoding, may be done in parallel. Because such a small number of metadata bits are modified, in some embodiments, all possible codewords for the parity bits may be predetermined and combined (e.g., by XOR) to update the metadata parity bits.
Claims20
A data storage device, comprising:
- one or more memory devices;
- and
- a controller configured to perform a method for encoding data, the method comprising:
- receiving data from the one or more memory devices, the data comprising parity check matrix data, and stored data;
- modifying a portion of the parity check matrix data corresponding to metadata associated with the data;
- and
- encoding the stored data with the modified parity check matrix data.
A controller for a data storage device, comprising:
- an I/O to one or more memory devices;
- and
- a processor configured to execute a method for encoding data, the method comprising:
- receiving a request to move a portion of data, the portion of data comprising data and metadata comprising a first variable and a last variable;
- retrieving the portion of data;
- modifying the last variable, wherein modifying the last variable comprises:
- modifying a portion of a parity check matrix corresponding to the last variable, wherein the parity check matrix comprises a plurality of parity bits;
- and
- encoding the modified portion of the parity check matrix corresponding to the last variable;
- and
- writing the portion of data to the one or more memory devices.
A controller for a data storage device, comprising:
- an I/O to one or more memory devices;
- and
- a processor configured to execute a method for encoding data, the method comprising:
- receiving a request to move a portion of data, the portion of data comprising data and metadata comprising a first variable and a last variable;
- retrieving the portion of data;
- modifying the last variable;
- generating a base of codewords for the last variable comprising a plurality of codewords representing at least two variants of the modified last variable;
- choosing at least two of the at least two variants based on the modifying of the last variable;
- and
- writing the portion of data to the one or more memory devices.
A controller for a data storage device, comprising:
- an I/O to one or more memory devices;
- and
- a processor configured to execute a method for encoding data, the method comprising:
- receiving a request to move a portion of data, the portion of data comprising data and metadata comprising a first variable and a last variable;
- retrieving the portion of data;
- modifying the last variable;
- writing the portion of data to the one or more memory devices;
- error checking the portion of data;
- and upon a showing of no errors, performing at least a portion of an encoding and a decoding in parallel.
A system for storing data, comprising:
- one or more memory means;
- and
- a controller coupled to the one or more memory means, the controller configured to carry out a method for encoding data, the method comprising:
- reading a section of data from the one or more memory means, wherein the section of data comprises metadata and data, the metadata comprising a beginning and an end;
- modifying a portion of the metadata contiguous with the end of the metadata;
- and
- writing the section of data to the one or more memory means.
Dependencies are inferred from the claim text.