Unit, method and program for detecting imprecise data
AssigneeInternational Business Machines Corporation
InventorsYoshihiko Terashita, Tohru Sumiyoshi, Hiroyuki Miyoshi
Life of this patent
Estimating the term…
Loading patent…
AssigneeInternational Business Machines Corporation
InventorsYoshihiko Terashita, Tohru Sumiyoshi, Hiroyuki Miyoshi
Estimating the term…
When data are transferred to a cache from disk drives, through a back end I/F unit, a redundant code verifier of a data path controller compares write-history information (a Destaging Counter (DC) value) embedded in a redundant code of the data with a DC value embedded in a redundant code of a corresponding parity, thereby verifying whether the data are imprecise. In addition, in a case where the data are updated, the redundant code verifier makes a similar verification when old data to be used for creating a parity are read. When the data are not imprecise, a redundant code generator of the data path controller adds to new data and the parity a redundant code into which a new DC value has been embedded. When the data are imprecise, a controller informs a host of an occurrence of a problem through a front end I/F unit.
A method to detect imprecise data, comprising:
A device for detecting a data error in a memory, comprising:
A computer program product comprising a computer useable medium including a computer readable program, wherein the computer readable program, comprises:
A controller for a data storage system that comprises a plurality of data storage disks comprising a data storage memory and a cache, wherein the data storage memory includes a user data area and a redundant code area, said controller comprising a first interface for coupling to the data storage memory and a second interface for coupling to a host, said controller comprising redundant code verifier circuitry, responsive to data being transferred to the cache from the data storage memory to compare a Primary Destaging Counter value, indicative of write-history information, that is contained in a redundant code of the data with a Secondary Destaging Counter value that is generated by an XOR operation on a Primary Destaging Counter and contained in a redundant code of corresponding data integrity data, wherein the Secondary Destaging Counter value is stored outside of the user data area in the redundant code area, to thereby verify whether the data being transferred is in error;
Dependencies are inferred from the claim text.
Drawings are temporarily unavailable. Open the PDF at USPTO
From the US filing history. Foreign family members aren’t listed.
Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's: parity data used in redundant arrays of…
Indexing scheme relating to G06F11/1076: addressing errors, i.e. silent errors in RAID, e.g. sector slipping and addressing errors
Indexing scheme relating to G06F11/1076: metadata, i.e. metadata associated with RAID systems with parity
Computing and data processing
About 6 months of term left · ends 25 Apr 2027 (estimated)
The exemplary embodiments of this invention relate to a unit for detecting an imprecise data generated, for example, by an error in an address where data are written into a memory device.
A problem that a storage sub-system returns imprecise data to a host system in reply to READ command causes not only loss of user data but also serious failure such as system failure. For this reason, in general, the storage sub-system avoids the problem that the imprecise data is returned to the host system by adding redundant data such as parity, ECC (Error Correcting Code) and CRC (Cyclic Redundancy Check) code to each data and checking the redundant data upon reading each data.
For example, a middle range or upper class RAID (Redundant Array of Inexpensive Disks) sub-system may add 8 to 16 bytes of redundant code to a sector of data of 512 bytes, which is a minimum unit of the user data upon writing (destaging) from a cache to a disk drive. Then, this redundant code is checked upon reading (staging) from the disk drive to the cache. In this way, error detection is performed in a data path after a backend interface of a RAID controller. Incidentally, in this case, the redundant code is data calculated uniquely out of the sector data of 512 bytes, and a code based on LRC (Longitudinal Redundancy Check), CRC (Cyclical Redundancy Check) or the like is generally used.
The foregoing and other aspects of these teachings are made more evident in the following Detailed Description of the Preferred Embodiments, when read in conjunction with the attached Drawing Figures, wherein:
FIG. 1 is diagram showing a first example of arrangement of user data, parity data and DC value according to an embodiment of the present invention.
FIG. 2 is a diagram showing a second example of arrangement of user data, parity data and DC value according to the embodiment of the present invention.
Hereinafter, the exemplary embodiments of this invention will be described in detail with reference to the accompanying drawings (hereinafter, referred to as “aspect of embodiment”). An aspect of this embodiment is that the present invention is applied to a disk array system which performs data protection by use of parity such as RAID5. In the disk array system like this, a plurality of sector data (hereinafter referred to as “user data”) obtained by partitioning data transmitted from a host system by a sector size and a sector data (hereinafter referred to as “parity data”) to detect imprecise user data and restore it are stored in a plurality of disks in a distributed manner. Moreover, in a sector where the user data are stored (hereinafter referred to as “data sector”), an area where redundant codes to check validity of the user data are stored is concomitantly provided, and in a sector where parity data are stored (hereinafter referred to as “parity sector”), an area where redundant codes to check validity of the parity data are stored is concomitantly provided.
According to the embodiment of the present invention, by paying attention to such a configuration of the disk array system, write-history information to be updated in conjunction with updating of the user data are provided in a redundant code area of the data sector where the user data are stored, and in a redundant code area of the parity sector where the parity data for the user data are stored. Here, as the write-history information, any kind of information may be adopted, while a counter to be increased by one upon updating of the user data is adopted in the aspect of the embodiment. In this case, since the write-history information can be grasped as the counter to show a number of destaging of the user data, such a counter is referred to as a DC (Destaging Counter), and a value set to the DC is referred to as a DC value hereinafter.
Next, with reference to FIGS. 1 and 2, arrangement of user data, parity data, DC value and the like in a configuration of RAID assumed in the aspect of the embodiment will be described in detail. Note that in the aspect of the embodiment, for convenience sake, the DC which is provided in the redundant code area of the data sector is referred to as a DDC (Data DC) and a value which is set to the DDC is referred to as a DDC value.