Method of insuring data integrity with a data randomizer
AssigneeMaxtor Corporation
InventorJeffrey L. Whaley
Life of this patent
Estimating the term…
Abstract
A data storage system is disclosed that is capable of performing a double check on data read from a storage media to determine whether the data is the data desired by a requesting host computer. If the data is not the desired data, the system discards the data before it reaches the host. The data storage system uses a randomizer unit having a variable initialization value. The initialization value is based upon the address of the data storage location being accessed by the host. If the initialization value used to read a piece of data is different than the value used to write the data, uncorrectable data errors result and the data is discarded.
Claims24
A method for transferring data to a storage medium, comprising:
- providing a storage medium having a plurality of storage locations, wherein each storage location is capable of storing at least one data segment;
- receiving a first data segment to be stored in a predetermined storage location of said storage medium;
- changing said first data segment to a different, second data segment using a randomization process, based upon a variable initial value, said variable initial value being the same for both writing to and reading from said predetermined storage location;
- and
- writing said second data segment to said predetermined data storage location of said storage medium.
A data storage system, comprising:
- a storage medium having a plurality of storage locations, wherein each storage location is capable of storing at least one data segment;
- means for writing data segments to said plurality of storage locations;
- error detection encoding means for encoding said data segments before said data segments are written to said plurality of storage locations;
- means for reading a first data segment from said storage medium in response to a request from a host to read a data segment from a predetermined storage location of said storage medium;
- means for determining whether said first data segment is the data segment desired by said host;
- and
- means for transferring said first data segment to said host when said first data segment is determined to be said data segment desired by said host;
- wherein said means for determining does not require the use of any overhead on said storage medium;
- wherein said means for determining includes a data randomizer operative for receiving an input data segment, converting said input data segment into a different data segment having the same length as said first data segment, and outputting said converted data segment;
- said data randomizer including an input for a variable initial value, wherein said initial value determines how said data randomizer will convert said input data segment, said variable initial value being the same for both writing to and reading from said predetermined storage location.
A data storage system, comprising:
- a data storage medium having a plurality of data storage locations;
- data transfer means for transferring a data segment between a predetermined data storage location on said data storage medium and an exterior environment in response to a request from said exterior environment;
- randomizer means for operating upon said data segment while said data segment is being transferred between said predetermined data storage location and said exterior environment, wherein said randomizer means is operative for changing the content of said data segment without changing the length of said data segment, said content change being dependent upon a variable initialization value received at an input of said randomizer means, said variable initialization value being the same for both writing to and reading from said predetermined data storage location;
- and
- means for providing said variable initialization value to said randomizer means.
A data storage system, comprising:
- a data storage disk having a plurality of concentric tracks, wherein each track includes a plurality of data storage locations, each data storage location having a unique address and being capable of storing at least one data block;
- means for receiving a data block from a host for storage in a predetermined data storage location on said disk;
- means for encoding said data block received from said host using an error correctional code (ECC);
- first randomizer means for randomizing said data block, after it has been encoded, based on the address of said predetermined data storage location;
- means for writing said data block to said predetermined data storage location after said data block has been randomized;
- means for reading said data block from said predetermined data storage location in response to a request from said host;
- second randomizer means for derandomizing said data block, after said data block has been read, based on the address of said predetermined data storage location, said first randomizer means and said second randomizer means including an initial value that is the same for both writing to and reading from said predetermined data storage location;
- means for detecting/correcting errors in said data block using said ECC after said data block has been derandomized;
- and
- means for delivering said data block to said host when said data block contains no errors;
- wherein said data block is not delivered to said host if it contains uncorrectable error.
A method for transferring data to a storage medium, comprising:
- providing a storage medium having a plurality of storage locations, wherein each storage location is capable of storing at least one data segment;
- receiving a first data segment to be stored in a predetermined storage location of said storage medium;
- changing said first data segment to a different, second data segment using a randomization process, based upon a variable initial value which is based upon an address of said predetermined storage location;
- and
- writing said second data segment to said predetermined data storage location of said storage medium.
A data storage system, comprising:
- a storage medium having a plurality of storage locations, wherein each storage location is capable of storing at least one data segment;
- means for writing data segments to said plurality of storage locations;
- error detection encoding means for encoding said data segments before said data segments are written to said plurality of storage locations;
- means for reading a first data segment from said storage medium in response to a request from a host to read a data segment from a predetermined storage location of said storage medium;
- means for determining whether said first data segment is the data segment desired by said host;
- and
- means for transferring said first data segment to said host when said first data segment is determined to be said data segment desired by said host;
- wherein said means for determining does not require the use of any overhead on said storage medium;
- wherein said means for determining includes a data randomizer operative for receiving an input data segment, converting said input data segment into a different data segment having the same length as said first data segment, and outputting said converted data segment;
- said data randomizer including an input for a variable initial value, wherein said initial value determines how said data randomizer will convert said input data segment;
- wherein said means for determining further including means for providing said initial value to said data randomizer input and wherein said means for providing determines said initial value based on the address of the predetermined storage location.
A data storage system, comprising:
- a data storage disk having a plurality of concentric tracks, wherein each track includes a plurality of data storage locations, each data storage location having a unique address and being capable of storing at least one data block;
- means for receiving a data block from a host for storage in a predetermined data storage location on said disk;
- means for encoding said data block received from said host using an error correctional code (ECC);
- first randomizer means for randomizing said data block, after it has been encoded, based on the address of said predetermined data storage location;
- means for writing said data block to said predetermined data storage location after said data block has been randomized;
- means for reading said data block from said predetermined data storage location in response to a request from said host;
- second randomizer means for derandomizing said data block, after said data block has been read, based on the address of said predetermined data storage location;
- means for detecting/correcting errors in said data block using said ECC after said data block has been derandomized;
- and
- means for delivering said data block to said host when said data block contains no errors;
- wherein said data block is not delivered to said host if it contains uncorrectable error.
Dependencies are inferred from the claim text.