Storage control device and method for detecting write errors to storage media
Summary by NHIP
Write error detection via comparison objects
The storage control device detects write errors by comparing data objects generated before and after transferring write data to storage media. A mismatch between the first and second comparison objects triggers re-transfer of the K items from the cache region to the data storage region.
Claim Score by NHIP
Abstract
There are provided a cache region that stores write data from a host device, storage media, a data storage region for the storage media, and a comparison unit. A first comparison object is generated for N items of write data on the cache region and the N items of write data are transferred to the data storage region. Write data is read from a designated address of the data storage region and this write data is written to the storage media. When N items of write data have been read, a second comparison object is generated in respect of the write data. The comparison unit compares the first comparison object and the second comparison object, and if the result of the comparison is a mismatch, the N items of write data on the cache region are again transferred to the data storage region.

Term
Projected expiry 31 January 2028.
- Priority
- Filed
- Granted
- Today
- Projected expiry
16 claims: 3 independent, 13 dependent
- 1A storage control device that receives write data from a host device that transmits the write data constituting data to be written and that writes the write data to storage media, comprising:a storage media device comprising storage media that stores data;a cache region that temporarily stores the write data received from said host device;a storage media adaptor that acquires the write data stored in said cache region from said cache region and transfers said write data that has thus been acquired to said storage media device;and a processor;wherein said storage media adaptor comprises: a data buffer that accumulates write data acquired from said cache region;a first comparison object generating unit that generates a first comparison object in respect of K items of write data when at least K items, where K is an integer of 1 or more, of write data have been accumulated in said data buffer;a first comparison object storage region that stores said first comparison object that was thus generated;and an adaptor transmitter, which is a transmitter that transmits a data frame including said K items of write data to said storage media device;wherein said storage media device comprises: a storage media receiver that is a receiver that receives said data frame from said storage media adaptor;a data storage region that respectively comprises a plurality of sub-regions that store at least one item of write data and addresses for specifying said sub-regions and accumulates in at least one sub-region of said plurality of sub-regions K items of write data contained in said received data frame;an address designating unit that designates the start address for reading from the plurality of addresses of said data storage region;a storage media writing unit that reads write data from the sub-region indicated by said designated address and writes said write data that has thus been read in said storage media;a second comparison object generating unit that, when K items of write data are read from said data storage region, generates a second comparison object in respect of said K items of write data that have thus been read;a second comparison object storage region that stores said second generated comparison object;and a storage media transmitter that is a transmitter that transmits the second comparison object stored in said second comparison object storage region to said storage media adaptor;wherein said storage media adaptor further comprises an adaptor receiver that is a receiver that receives said second comparison object;and a comparator that compares said received second comparison object with said first comparison object stored in said first comparison object storage region;wherein, if, as a result of the comparison performed by said comparator, it is found that said received second comparison object does not match any of the plurality of first comparison objects stored in said first comparison object storage region, said processor causes said storage media adaptor to acquire from said cache region the K items of write data that were previously transmitted, and said adaptor transmitter then retransmits to said storage media device said data frame including said acquired K items of write data.
- 11A storage control method that is executed by a storage control device that receives write data from a host device that transmits write data constituting data to be written and that writes this write data to storage media; wherein said storage control device comprises a storage media storage device provided with storage media; said storage media storage device comprises a data storage region that respectively comprises a plurality of sub-regions that store at least one item of write data and addresses for specifying said sub-regions; and said storage control method comprising the steps of:receiving write data from a host device;writing said received write data in a cache region where write data is temporarily stored;generating a first comparison object in respect of K items of write data, where K is an integer of 1 or more, that are written to said cache region;writing said generated first comparison object to the comparison object storage region;generating a data frame containing said K items of write data and transmitting said generated data frame to a storage media device having storage media;writing the K items of write data included in the data frame received by said storage media device in at least one sub-region of the plurality of sub-regions in said data storage region;designating the start address for reading from the plurality of addresses of said data storage region;reading write data from said sub-region indicated by the designated address and writing said write data that has thus been read to said storage media;generating a second comparison object in respect of said K items of write data that have thus been read, in the case where K items of write data are read from said data storage region;writing said generated second comparison object to a second comparison object storage region;transmitting a second comparison object stored in said second comparison object storage region;comparing said second transmitted comparison object with the first comparison objects stored in said first comparison object storage region;and acquiring the K items of write data that were previously transmitted from said cache region, and retransmitting said data frame including said acquired K items of write data to said storage media device, if the comparison result is that the second comparison object does not match any of the plurality of first comparison objects stored in said first comparison object storage region.
- 12Broadest claimClaim Score 19, narrow(NHIP)A storage control device that receives write data from a host device that transmits the write data constituting data to be written and that writes said write data to storage media, comprising:storage media that stores data;a cache region that temporarily stores the write data received from the host device;a cache acquisition unit that acquires K items of write data, where K is an integer of 1 or more, written to said cache region;a first comparison object generating unit that generates a first comparison object in respect of said K items of write data;a first comparison object storage region that stores said first comparison object that was thus generated;a data storage region that respectively comprises a plurality of sub-regions that store at least one item of write data and addresses for specifying said sub-regions, and stores said K items of write data in at least one sub-region of said plurality of sub-regions;an address designating unit that designates the start address for reading from the plurality of addresses of said data storage region;a storage media writing unit that reads write data from the sub-region indicated by said designated address and writes said write data that has thus been read in said storage media;a second comparison object generating unit that, when K items of write data are read from said data storage region, generates a second comparison object in respect of said K items of write data that have thus been read;and a comparison unit that compares said generated second comparison object with the first comparison object stored in said first comparison object storage region;wherein if, as a result of the comparison by said comparison unit, it is found that said second comparison object matches none of the plurality of first comparison objects stored in said first comparison object storage region, said cache acquisition unit acquires K items of write data from said cache region, and said data storage region stores said acquired K items of write data.
Independent claims3
119 paragraphs in 6 sections, as filed
CROSS-REFERENCE TO PRIOR APPLICATION
p-0002This application relates to and claims priority from Japanese Patent Application No. 2004-322307, filed on Nov. 5, 2004, the entire disclosure of which is incorporated herein by reference.
BACKGROUND OF THE INVENTION
p-00031. Field of the Invention
p-0004The present invention relates to storage control techniques whereby data is written to storage media such as a hard disk and in particular relates to techniques for detecting write errors for the storage media.
p-00052. Description of the Related Art
p-0006For example, storage control devices comprising a storage media device are known. An example of a storage control device of this type is a disk array device in which a plurality of disk devices are arranged. In such a storage control device, for example a data write command or read command (hereinbelow referred to as an IO request) is received from a host device and, in response to this IO request, data is written to the storage media or one or other of reading from the storage media or returning read data to the host device is performed. With a storage control device of this type, by employing for example an LRC (longitudinal redundancy check), matching of the data that is written to the storage media and the data that is read from the storage media can be guaranteed (see for example paragraphs 2 to 4 of Laid-open Japanese Patent Application No. 2000-347815).
SUMMARY OF THE INVENTION
p-0007With the technique described above, occurrence of an error in writing to the storage media can be detected when data is written to the storage media and this data, that had been written, is read. However, in this case, since error-free data is no longer left on the storage control device, error-free data must be restored from the RAID group by recalculating (by for example the technique of employing parity data at RAID level 5). If processing for restoring data is performed, the number of IO requests processed per unit time is decreased. In other words, there is a deterioration in performance of the storage control device.
p-0008One object of the present invention is therefore to avoid this deterioration in performance of the storage control device that results from the need to detect occurrence of errors on writing to the storage media.
p-0009Other objects of the present invention will become apparent from the following description.
p-0010A storage control device according to a first aspect of the present invention (hereinbelow referred to as a “first storage control device”) is a device that receives write data from a host device that transmits the write data i.e. data to be written and that writes the write data to storage media. This storage control device comprises a storage media device comprising storage media that stores data, a cache region that temporarily stores the write data received from the host device, a storage media adaptor that acquires the write data stored in this cache region from the cache region and transfers the write data that has thus been acquired to the storage media device, and a processor. The storage media adaptor comprises a data buffer that accumulates write data acquired from the cache region, a first comparison object generating unit that generates a first comparison object in respect of K items of write data when at least K items (where K is an integer of 1 or more) of write data have been accumulated in the data buffer, a first comparison object storage region that stores the first comparison object that was thus generated, and an adaptor transmitter, which is a transmitter that transmits a data frame including the K items of write data to the storage media device. The storage media device comprises a storage media receiver that is a receiver that receives the data frame from the storage media adaptor, a data storage region that respectively comprises a plurality of sub-regions that store at least one item of write data and addresses for specifying the sub-regions and accumulates in at least one sub-region of this plurality of sub-regions K items of write data contained in the received data frame, an address designating unit that designates the start address for reading from the plurality of addresses of the data storage region, a storage media writing unit that reads write data from the sub-region indicated by the designated address and writes the write data that has thus been read in the storage media, a second comparison object generating unit that, when K items of write data are read from the data storage region, generates a second comparison object in respect of the K items of write data that have thus been read, a second comparison object storage region that stores the generated second comparison object, and a storage media transmitter that is a transmitter that transmits the second comparison object stored in the second comparison object storage region to the storage media adaptor. The storage media adaptor further comprises an adaptor receiver that is a receiver that receives the second comparison object, and a comparator that compares the received second comparison object with the first comparison object stored in the first comparison object storage region. If, as a result of the comparison performed by the comparator, it is found that the received second comparison object does not match any of the plurality of first comparison objects stored in the first comparison object storage region, the processor causes the storage media adaptor to acquire from the cache region the K items of write data that were previously transmitted. The adaptor transmitter then retransmits to the storage media device the data frame including the acquired K items of write data.
p-0011The processor may be for example a microprocessor or may be a service processor provided in the storage control device. The processor may for example be mounted in the storage media adaptor or may be mounted in some other location than the storage media adaptor.
p-0012Any type of storage media may be adopted so long as it is capable of storing data. For example, the storage media may be a hard disk, semiconductor memory or magneto-optical disk. Also, the storage media device, for example in the case where the storage media is a hard disk, may be the hard disk drive itself or may be a device comprising a hard disk drive.
p-0013In a first embodiment of the first storage control device, if, as a result of the comparison by the comparator, it is found that the received second comparison matches any one of the plurality of first comparison objects stored in the first comparison object storage region, the processor then erases the K items of write data corresponding to this first comparison object from the cache region.
p-0014In a second embodiment of the first storage control device, the storage control device in the first embodiment comprises a channel adaptor and a shared storage region. The channel adaptor comprises a first processor, receives the write data from the host device, and writes the write data that has thus been received in the cache region. The shared storage region is a storage region that is accessible by both the channel adaptor and the storage media adaptor. The storage media adaptor comprises a second processor. If, as a result of the comparison performed by the comparator, it is found that the received second comparison object matches any one of the plurality of first comparison objects stored in the first comparison object storage region, the second processor writes information indicating the fact that a match has been achieved (for example information indicating OK or a deletion request for K items of write data corresponding to the matching first comparison object) in the shared storage region. If the first processor detects that such information indicating that a match has been achieved is stored in the shared storage region, the first processor deletes the K items of write data corresponding to this first comparison object from the cache region.
p-0015In a third embodiment of the first storage control device, the first comparison object and the second comparison object are data groups including code for error detection in respect of the K items of write data (for example CRC (cyclic redundancy check) code).
p-0016In a fourth embodiment of the first storage control device, the first comparison object storage region stores first item of identification information for identifying at least one first comparison object from a plurality of first comparison objects. The storage media transmitter transmits at least one second comparison object and a second item of identification information corresponding to the at least one second comparison object to the storage media adaptor. The comparator compares the at least one second comparison object with the at least one first comparison object identified from the first item of identification information matching the second item of identification information.
p-0017In a fifth embodiment of the first storage control device, in the fourth embodiment, the first item of identification information includes a frame number indicating the transmission sequence number of the data frame including the K items of write data corresponding to the first comparison object. The second item of identification information includes the frame number associated with the second comparison object.
p-0018In a sixth embodiment of the first storage control device, the storage media transmitter transmits to the storage media adaptor an information group including a plurality of second comparison objects. The data size of the information group is no more than the data size of the data frame transmitted by the adaptor transmitter.
p-0019In a seventh embodiment of the first storage control device, in the sixth embodiment, the first comparison object storage region stores a first item of identification information for identifying a first comparison object from the plurality of first comparison objects. The storage media transmitter transmits to the storage media adaptor an information group including a plurality of sets of the second comparison object and second item of identification information corresponding to the second comparison object. The comparator compares the second comparison objects contained in the information group with the first comparison object identified from the first item of identification information matching the second item of identification information corresponding to this second comparison object.
p-0020In an eighth embodiment of the first storage control device, the storage media device is a hard disk device. The hard disk device may be a hard disk drive itself or a device comprising a hard disk drive. The hard disk drive may be an ATA drive.
p-0021In a ninth embodiment of the first storage control device, the storage media device is a hard disk device. The hard disk device may be a hard disk drive itself or a device comprising a hard disk drive. The storage control device comprises a high reliability hard disk device and a hard disk device of lower reliability than the high reliability hard disk device. The storage media adaptor is connected with both the high reliability hard disk device and the hard disk device of lower reliability. The high reliability hard disk device may be a high reliability drive itself or a device comprising the high reliability drive. The lower reliability hard disk device may itself be a drive of lower reliability than the high reliability drive or may be a device comprising such a drive. The comparator performs the comparison in the case where the transmission destination of the write data is the lower reliability hard disk device. In other words, in this ninth embodiment, the lower reliability hard disk device for example comprises the second comparison object generating unit, the second comparison object storage region and the storage media transmitter; if the transmission destination of the write data is the lower reliability hard disk device, the storage media adaptor can thus receive the second comparison object.
p-0022A storage control method according to the second aspect of the present invention is a storage control method that is executed by a storage control device that receives write data from a host device that transmits write data i.e. data to be written and that writes this write data to storage media. The storage control device comprises a storage media storage device provided with storage media. The storage media storage device comprises a data storage region that respectively comprises a plurality of sub-regions that store at least one item of write data and addresses for specifying the sub-regions. In this case, the storage control method comprises: a step of receiving write data from a host device; a step of writing the received write data in a cache region where write data is temporarily stored; a step of generating a first comparison object in respect of K items of write data (where K is an integer of 1 or more) that are written to the cache region; a step of writing the generated first comparison object to the comparison object storage region; a step of generating a data frame containing the K items of write data and transmitting the generated data frame to a storage media device having storage media; a step of writing the K items of write data included in the data frame received by the storage media device in at least one sub-region of the plurality of sub-regions in the data storage region; a step of designating the start address for reading from the plurality of addresses of the data storage region; a step of reading write data from the sub-region indicated by the designated address and writing the write data that has thus been read to the storage media; a step of generating a second comparison object in respect of the K items of write data that have thus been read, in the case where K items of write data are read from the data storage region; a step of writing the generated second comparison object to a second comparison object storage region; a step of transmitting a second comparison object stored in the second comparison object storage region; a step of comparing the transmitted second comparison object with the first comparison objects stored in the first comparison object storage region; and a step of, if the comparison result is that the second comparison object does not match any of the plurality of first comparison objects stored in the first comparison object storage region, acquiring the K items of write data that were previously transmitted from the cache region and retransmitting the data frame including the acquired K items of write data to the storage media device.
p-0023A storage control device according to a third aspect of the present invention (hereinbelow referred to as a “third storage control device”) is a storage control device that receives write data from a host device that transmits the write data i.e. data to be written and that writes the write data to storage media. This storage control device comprises storage media that stores data, a cache region that temporarily stores the write data from the host device, a cache acquisition unit that acquires K items of write data (where K is an integer of 1 or more) written to the cache region, a first comparison object generating unit that generates a first comparison object in respect of the K items of write data, a first comparison object storage region that stores the first comparison object that was thus generated, a data storage region that respectively comprises a plurality of sub-regions that store at least one item of write data, and addresses for specifying the sub-regions and stores the K items of write data in at least one sub-region of this plurality of sub-regions, an address designating unit that designates the start address for reading from the plurality of addresses of the data storage region, a storage media writing unit that reads write data from the sub-region indicated by the designated address and writes the write data that has thus been read in the storage media, a second comparison object generating unit that, when K items of write data are read from the data storage region, generates a second comparison object in respect of the K items of write data that have thus been read, and a comparison unit that compares the generated second comparison object with the first comparison object stored in the first comparison object storage region. If, as a result of the comparison by the comparison unit, it is found that the second comparison object matches none of the plurality of first comparison objects stored in the first comparison object storage region, the cache acquisition unit acquires K items of write data from the cache region. The data storage region stores the K items of write data that are thus acquired.
p-0024In a first embodiment of the third storage control device, the third storage control device further comprises a data deletion unit that deletes K items of write data corresponding to the first comparison object from the cache region if, as a result of the comparison performed by the comparison unit, it is found that the received second comparison object matches any one of the plurality of first comparison objects stored in the first comparison object storage region.
p-0025In a second embodiment of the third storage control device, the first comparison object and the second comparison object are data groups including code for error detection in respect of the K items of write data.
p-0026In a third embodiment of the third storage control device, the first comparison object storage region stores first item of identification information for identifying a first comparison object from a plurality of first comparison objects. The third storage control device further comprises a specifying unit for specifying, from the first comparison object storage region, a first item of identification information matching a second item of identification information corresponding to the second comparison object. The comparison unit compares the first comparison object identified from the specified first item of identification information and the second comparison object corresponding to the second item of identification information.
p-0027In a fourth embodiment of the third storage control device, in the third embodiment, the third storage control device further comprises a storage media device comprising the storage media and a data frame transmission unit that generates a data frame including K items of write data in the cache region and transmits this generated data frame to the storage media device. The first item of identification information includes a frame number indicating the transmission sequential number of the data frame including the K items of write data corresponding to the first comparison object. The second item of identification information includes a frame number associated with the second comparison object.
p-0028Of the first storage control device and the third storage control device, in at least the third storage control device, the various units comprised by the storage control device can be realized by software, hardware (computer program) or a combination of these.
BRIEF DESCRIPTION OF THE DRAWINGS
p-0029<figref idrefs="DRAWINGS">FIG. 1</figref> shows an outline of first copy processing performed by a data-processing system according to an embodiment of the present invention and <figref idrefs="DRAWINGS">FIG. 1B</figref> shows an outline of second copy processing performed by this data processing system;
p-0030<figref idrefs="DRAWINGS">FIG. 2</figref> shows an example of the layout of update data <b>4</b>;
p-0031<figref idrefs="DRAWINGS">FIG. 3</figref> shows an example of the layout of write data VOL and JNLVOL and in particular shows an example of the layout represented by update data <b>4</b> shown by way of example in <figref idrefs="DRAWINGS">FIG. 2</figref>;
p-0032<figref idrefs="DRAWINGS">FIG. 4</figref> shows how a plurality of data units are written in a cache region;
p-0033<figref idrefs="DRAWINGS">FIG. 5</figref> shows how a first information set is written in a transmission area;
p-0034<figref idrefs="DRAWINGS">FIG. 6</figref> shows how K data units included in a given data frame are written to a data storage space and how COM included in this data frame is written to the CRC′/COM storage space;
p-0035<figref idrefs="DRAWINGS">FIG. 7</figref> shows how CRC′ generated using K data units read from the data storage space is written to the CRC′/COM storage space;
p-0036<figref idrefs="DRAWINGS">FIG. 8</figref> shows how sets of CRC′ and COM of a prescribed number or more are written to the CRC′/COM storage space;
p-0037<figref idrefs="DRAWINGS">FIG. 9</figref> shows how CRC′ in a return area and CRC in a transmission area are compared;
p-0038<figref idrefs="DRAWINGS">FIG. 10</figref> shows how K data units corresponding to CRC with which matching is obtained as a result of comparison are deleted from the cache memory;
p-0039<figref idrefs="DRAWINGS">FIG. 11</figref> shows how wraparound is performed when the cache region, transmission area, return area, data storage space and CRC′/COM storage space are respectively full;
p-0040<figref idrefs="DRAWINGS">FIG. 12</figref> shows an outline of a first embodiment of the present invention;
p-0041<figref idrefs="DRAWINGS">FIG. 13A</figref> shows an example of the case where a plurality of hard drive devices are FC drives in a practical example of an embodiment of the present invention; <figref idrefs="DRAWINGS">FIG. 13B</figref> shows an example where a plurality of hard disk devices are SATA drives in this practical example; <figref idrefs="DRAWINGS">FIG. 13C</figref> shows an example of the case where in this practical example, a plurality of hard disk devices are SAS drives; and <figref idrefs="DRAWINGS">FIG. 13D</figref> shows an example of the case where, in this practical example, both FC drives and ATA drives are present in the plurality of hard disk devices.
DESCRIPTION OF THE PREFERRED EMBODIMENTS
p-0042An embodiment of the present invention is described below with reference to the drawings.
p-0043<figref idrefs="DRAWINGS">FIG. 12</figref> shows an outline of an embodiment of the present invention.
p-0044A storage control device <b>315</b> is connected with a host device <b>301</b> that transmits write data (hereinbelow abbreviated to “WD”) i.e. data to be written. The storage control device <b>315</b> comprises a host adaptor <b>305</b> constituting an interface device in respect of the host device <b>301</b>, a processor <b>303</b> that controls the operation of the storage control device <b>305</b>, a cache region <b>307</b> that stores write data from a host device <b>301</b>, a storage media device <b>311</b> comprising storage media <b>313</b>, and a storage media adaptor <b>309</b> that transfers the write data on the cache region <b>307</b> to the storage media device <b>311</b>. The storage media device <b>311</b> comprises a data storage region <b>321</b> in which write data that is written to the storage media <b>313</b> is written. In the data storage region <b>321</b>, there are provided a plurality of addresses, respectively corresponding to a plurality of sub-memories. Write data is read from a designated address and the write data that is thus read is written to the storage media <b>313</b>.
p-0045For example, as the storage media <b>313</b>, a hard disk may be employed. As the storage media device <b>311</b>, a hard disk drive itself, or a device comprising a hard disk drive may therefore be employed. The hard disk drive may be a drive of a high reliability type, in which the frequency of occurrence of write errors to the disk is low (for example a drive having a fiber channel interface) or may be a drive of a type of low reliability (for example a drive having an ATA interface) in which the frequency of occurrence of write errors is higher than in the case of the foregoing type of device. Typically, low reliability drives are cheaper, so, when it is desired to keep the cost of the storage control device <b>315</b> low, drives of low reliability will tend to be adopted.
p-0046Specifically, in for example the case of a low reliability drive, write errors to the disk tend to occur more frequently than in the case of a high reliability drive. When write errors to the disk occur, the method may be considered of for example restoring the data by recalculation from the RAID group (by for example the technique of employing parity data in RAID level 5) and rewriting the restored data to the disk. However, when processing to restore the data is executed, the number of IO requests that are processed per unit time is decreased.
p-0047Accordingly, in this embodiment, the performance deterioration of the storage control device <b>315</b> is suppressed by the techniques described below.
p-0048Write data that is transmitted from the host device <b>301</b> is written to the cache region <b>307</b>. The write data on the cache region <b>307</b> is acquired by a cache acquisition unit <b>325</b>. The K items (where K is an integer of 1 or more) of write data that are acquired by the cache acquisition unit <b>325</b> are transmitted from a transmitting and receiving unit <b>323</b> of the storage media adaptor <b>309</b> to the storage media device <b>311</b>. The cache acquisition unit <b>325</b> may be a computer program that is read by the processor <b>303</b>, may be a hardware circuit, or may be a combination of a computer program and hardware.
p-0049The first comparison object generating unit <b>325</b> generates a first comparison object in respect of the K items of write data acquired from the cache region <b>307</b> and writes the first comparison object that has been thus generated to the first comparison object storage region <b>317</b>. For example, the first comparison object generating unit <b>325</b> calculates a CRC (a cyclic redundancy check) using the K items of write data and writes the CRC that has thus been calculated in the first comparison object storage region <b>317</b>.
p-0050The first comparison object and the ID for this first comparison object are recorded in the first comparison object storage region <b>317</b>. For example, the transmitting and receiving unit <b>323</b> generates a data frame including K items of write data and the data frame that is thus generated is transmitted to the storage media device <b>311</b>; however, in this case, the ID includes a frame number indicating the transmission sequential number of the data frame and a WD sub-ID expressing the identity of the write data that was used to create the first comparison object corresponding to this ID. In addition, the ID may include a sequence sub-ID. In this way, it is possible to tell from the ID which WD is included in which data frame of which sequence. The ID may for example be written by the transmitting and receiving unit <b>323</b>.
p-0051The transmitting and receiving unit <b>324</b> of the storage media device <b>311</b> receives a data frame from the storage media adaptor <b>309</b>. The various items of write data in the data frame are stored in the data storage region <b>321</b>.
p-0052An address designating unit <b>335</b> designates an address of the data storage unit <b>321</b>. The address designating unit <b>335</b> can be implemented for example by firmware of the storage media device <b>311</b>. For example a single address of the data storage region <b>321</b> stores a single item of write data.
p-0053The storage media write unit <b>331</b> reads the write data from the designated address and writes the write data that has been thus read in the storage media <b>313</b>. When K items of write data have been sequentially read from the designated address of the data storage region <b>321</b>, the second comparison object generating unit <b>333</b> generates a second comparison object in respect of these K items of write data and writes the second comparison object that has been thus generated in the second comparison object storage region <b>319</b>. This second comparison object may also be a CRC.
p-0054The second comparison object and its ID may be written in the second comparison object storage region <b>319</b>. This ID may for example be written by the transmitting and receiving unit <b>324</b>. This ID may contain for example the frame number of the data frame but need not contain a WD sub-ID expressing which write data was used to create the second comparison object corresponding to this ID (for example a logical block address expressing the location where the WD is stored).
p-0055The transmitting and receiving unit <b>324</b> transmits to the transmitting and receiving unit <b>323</b> a set consisting of the second comparison object and its ID. The set that is thus transmitted may be a single set or a plurality of sets may be transmitted. However, the size of the data that is transmitted from the storage media device <b>311</b> should preferably be smaller than the data size of the data frame that is transmitted from the transmitting and receiving unit <b>323</b>.
p-0056The ID corresponding to the ID contained in the set that is received by the transmitting and receiving unit <b>323</b> is retrieved from the first comparison object storage region <b>317</b>. The first comparison object corresponding to the retrieved ID is thereby specified. The comparison unit <b>327</b> performs a comparison of the first comparison object that has thus been specified and the second comparison object included in the set that has thus been received.
p-0057In for example the case where K=2, as shown in <figref idrefs="DRAWINGS">FIG. 12</figref>, a data frame including write data C and write data D is transmitted and, if the write data C and write data D are read without error from the data storage region <b>321</b>, since the first comparison object and the second comparison object are created using the write data C and write data D, matching can be obtained as a result of the comparison. However, even though a data frame containing write data C and write data D was transmitted, if, due to for example mis-designation of the address, write data B and write data C are erroneously read from the data storage region <b>321</b>, since the second comparison object is created using the write data B and write data C whereas the first comparison object was created using the write data C and write data D, a mismatch will be obtained as the comparison result.
p-0058If a mismatch is obtained as the comparison result, as shown by the single-dotted chain line in <figref idrefs="DRAWINGS">FIG. 12</figref>, write data C and write data D are again acquired by the cache acquisition unit <b>325</b>. Specifically, for example the ID associated with a first comparison object for which no match was obtained specifies the identity of the write data that was used to create this first comparison object; the cache acquisition unit <b>325</b> acquires the specified write data C and D from the cache region <b>307</b>. A data frame including the write data C and D that have thus been acquired is then re-sent from the transmitting and receiving unit <b>323</b>.
p-0059If on the other hand, as shown by the double-dotted chain line in <figref idrefs="DRAWINGS">FIG. 12</figref>, the result of the comparison is that a match is obtained, the data deletion unit <b>341</b> deletes the write data C and D from the cache region <b>307</b>. Specifically, for example the ID associated with the first comparison object for which a match was obtained specifies the identity of the write data that was used to create this first comparison object and the data deletion unit <b>341</b> is thereby enabled to delete these specified write data C and D from the cache region <b>307</b>.
p-0060In this embodiment, the write data that is to be written to the storage media <b>311</b> is left in the storage control device <b>315</b> until it has been detected whether or not this write data has been correctly written to the storage media <b>311</b>; if a write error is detected, this can be dealt with by re-using this write data. Consequently, processing for restoring the write data is unnecessary, so adverse effect on the performance of the storage control device <b>315</b> is avoided.
p-0061Also, in this embodiment, when K items of write data have been written to the storage media <b>313</b>, a second comparison object is generated in respect of these K items of write data. The second comparison object that is thus generated is returned to the transmitting and receiving unit <b>323</b> and a comparison to establish whether or not a write error has been detected is performed. In this way, detection of whether or not a write error has occurred can be performed at a time-point prior to reading of the write data from the storage media <b>313</b> in response to an IO request from the host device <b>301</b>. The set of ID and second comparison object may be immediately returned when this set is written to the second comparison object storage region <b>319</b>, or such sets may be returned when a certain number of sets have been accumulated. In the former case, whether or not a write error has occurred can be detected at an early time-point; in the latter case, the size of blanks that may be generated in the data frame from the transmitting and receiving unit <b>324</b> to the transmitting and receiving unit <b>323</b> can be reduced.
p-0062The above is the description of this embodiment.
p-0063In this embodiment, the various units referred to above such as the first comparison object generating unit <b>325</b> may be computer programs or hardware circuits or may be combinations of computer programs and hardware.
p-0064Also, at least one of the first comparison object generating unit <b>325</b>, first comparison object storage unit <b>317</b> and two comparison unit of <b>327</b> may be provided in the storage media adaptor <b>309</b>, or may be provided in a separate location from the storage media adaptor <b>309</b>.
p-0065Also, at least one of the second comparison object of generating unit <b>333</b> and second comparison object storage unit <b>319</b> may be provided in the storage media device <b>311</b> or may be provided in a separate location from the storage media device <b>311</b>.
p-0066Also, if the storage media device <b>311</b> is itself a hard disk drive or a device comprising such a drive, this hard disk drive may be a high reliability drive (for example a fiber channel drive) or may be a low reliability drive (for example an SAS (Serial Attached SCSI) drive or SATA (Serial ATA) drive). However, a low reliability drive may be more effective since the deterioration of performance of the storage control device <b>315</b> is suppressed if the storage control device <b>315</b> of this embodiment detects and covers write errors to the storage media.
p-0067More specific practical examples of the embodiment described above are described below with reference to the drawings.
PRACTICAL EXAMPLE 1
p-0068<figref idrefs="DRAWINGS">FIG. 1</figref> shows an example of the layout of a storage control device according to a practical example of an embodiment of the present invention.
p-0069A storage control device <b>100</b> is a disk array device such as for example a RAID (redundant array of independent disks). The storage control device <b>100</b> comprises for example a control unit <b>101</b> that controls processing that is performed by the storage control device <b>100</b>, a RAID group <b>210</b> and a service processor (SVP) <b>281</b>. The control unit <b>101</b> comprises for example one or a plurality of disk adapters (hereinbelow termed DKA) <b>120</b>, one or a plurality of channel adaptors (hereinbelow termed CHA) <b>110</b>, cache memory <b>130</b>, shared memory <b>140</b> and a switching control unit <b>270</b>.
p-0070The RAID group <b>210</b> includes a plurality of hard disk devices <b>150</b> and provides redundant storage under RAID, such as for example RAID 1 or RAID 5. Each of the hard disk devices <b>150</b> may be for example a hard disk drive itself or a device comprising a hard disk drive in a canister (not shown). At least one or more logical volume (hereinbelow called VOL) <b>6</b> constituting a logical storage region may be set up on the physical storage region provided by the hard disk devices <b>150</b>. A plurality of items of write data that are transmitted from the host device <b>180</b> may be stored in VOL <b>6</b>.
p-0071The DKAs <b>120</b> control data exchange with the hard disk devices <b>150</b>. The DKAs <b>120</b> are constituted for example as microcomputer systems including for example a microprocessor (hereinbelow abbreviated as MP) <b>120</b>M, ROM and RAM etc. Also, the DKAs <b>120</b> may comprise a controller <b>120</b>D for direct memory access and/or a transfer control unit <b>3</b> that controls transfer of data to the hard disk devices <b>150</b>. A plurality of DKAs <b>120</b> may be provided for example within the storage control device <b>100</b>. The transfer control unit <b>3</b> performs block level data transfer with respect to the hard disk devices <b>150</b> using for example SCSI or iSCSI.
p-0072The CHAs <b>110</b> receive write data from the host device <b>180</b> through a connecting bus <b>190</b>. The connecting bus <b>190</b> may be a communication network or may be a private bus line. Like the DKAs <b>120</b>, the CHAs <b>110</b> may be constituted as microcomputer systems. For example, each CHA <b>110</b> may comprise an MP <b>110</b>M, DMA controller <b>113</b> and transfer control unit <b>111</b>. The DMA controller <b>113</b> comprises an LA addition/deletion unit <b>112</b> that either adds an LA (logical block address) to the write data from the host device <b>180</b> or deletes an LA from the data transmitted to the host device <b>180</b>. Hereinbelow, data obtained by adding other data such as an LA to the write data from the host device <b>180</b> is denoted as a “data unit”.
p-0073The cache memory (hereinbelow sometimes written “CM”) <b>130</b> may be constituted for example of volatile or non-volatile or semiconductor memory. The cache memory <b>130</b> can store write data from the host device <b>180</b> or write data read from VOL <b>6</b>.
p-0074The shared memory (hereinbelow sometimes written “SM”) <b>140</b> may be constituted of for example non-volatile or volatile semiconductor memory. The shared memory <b>140</b> stores for example various types of commands received from the host device <b>180</b> and/or control information employed in controlling the storage control device <b>100</b>. The commands or control information or the like may be redundantly stored by a plurality of shared memories <b>140</b>. It should be noted that the cache memory <b>130</b> and shared memory <b>140</b> may be constituted as respectively separate memories or part of a memory may be employed as a cache memory region while another part of the same memory is employed as a shared memory region.
p-0075The switching control unit <b>270</b> respectively mutually connects the DKAs <b>120</b>, CHAs <b>110</b>, cache memory <b>130</b> and shared memory <b>140</b>. The switching control unit <b>270</b> may comprise for example a very high-speed cross switch or the like.
p-0076The SVP (service processor) <b>281</b> collects and monitors the state of the various units within the storage control device <b>100</b> through for example an internal network (such as for example a LAN) <b>282</b>. The SVP <b>281</b> outputs the internal state information that has been thus collected either directly in the form of raw data or as statistically processed data to an external management terminal (not shown). Examples of information that is capable being collected by the SVP <b>281</b> include device configuration, power alarms, temperature alarms or input/output rate (for example in IOPS units (IO requests/sec)). The system administrator can perform for example alteration of settings of the RAID configuration or blocking of the processing of various types of packages (for example CHAs <b>110</b> or DKAs <b>120</b>) through the SVP <b>281</b> from the management terminal (not shown).
p-0077Next, an example of the processing performed by the storage control device <b>100</b> will be described. The CHAs <b>110</b> receive a write instructions and write data from the host device <b>180</b> through the connecting bus <b>190</b>. The write commands that are received are stored in the shared memory <b>140</b> and the received write data is stored in the cache memory <b>130</b>. The DKAs <b>120</b> reference the shared memory <b>140</b> from time to time. If a DKA <b>120</b> discovers a write command that has not yet been processed that has been stored in the shared memory <b>140</b>, the DKA <b>120</b> reads the right data from the cache memory <b>130</b> in accordance with this write command and performs address conversion etc. The DKA <b>120</b> writes the write data to the hard disk devices <b>150</b> constituting VOL <b>6</b> designated by the write command.
p-0078The case of processing a read command from the host device <b>180</b> will be described. When the CHA <b>110</b> receives a read command from the host device <b>180</b>, the CHA <b>110</b> stores this read command in the shared memory <b>140</b>. When the DKA <b>120</b> discovers an unprocessed read command in the shared memory <b>140</b>, it reads the write data from the hard disk devices <b>150</b> constituting the VOL <b>6</b> designated by this read command. The DKA <b>120</b> stores the write data that has been thus read in the cache memory <b>130</b>. Also, The DKA <b>120</b> reports to the CHA <b>110</b> through the shared memory <b>140</b> that reading of the requested write data has been completed. The CHA <b>110</b> reads the write data from the cache memory <b>130</b> and transmits it to the host device <b>180</b>.
p-0079The above is an example of the construction of a storage control device <b>100</b> according to the present embodiment. Of course, the storage control device <b>100</b> need not be restricted to the construction described above. For example, the storage control device <b>100</b> could be constructed by memory in which control information or write data etc can be stored, an interface device (hereinbelow abbreviated to “I/F”) for the host device <b>180</b>, and an I/F for the hard disk device <b>150</b> and the control unit (for example CPU) that controls for example communication through these I/F in accordance with information in the memory.
p-0080<figref idrefs="DRAWINGS">FIG. 2</figref> shows an example of the construction of a DKA and an example of the construction of a hard disk device.
p-0081The DKA <b>120</b> is connected for example through a fiber channel loop with a hard disk device <b>150</b>. The DKA <b>120</b> may comprise a memory interface <b>1</b>, local memory <b>9</b>, transfer control unit <b>3</b> and comparator <b>13</b>.
p-0082The memory interface <b>1</b> is an interface device for the CM <b>130</b> and/or SM <b>140</b> and performs exchange of information with the CM <b>130</b> or SM <b>140</b>.
p-0083The local memory <b>9</b> can be constructed of for example volatile or non-volatile semiconductor memory. The local memory <b>9</b> comprises a COM/CRC storage region <b>11</b>. A COM/CRC capable region <b>11</b> includes a transmission area <b>11</b>T and return area <b>11</b>R. The transmission area <b>11</b>T records one or a plurality of first information sets including the frame number, CRC, and commands for the hard disk device (hereinbelow denoted by COM). The return area <b>11</b>R records one or a plurality of second information sets comprising the frame number COM and CRC′ included in the return frame <b>43</b>.
p-0084The return frame <b>43</b> is the frame that is transmitted from the hard disk device <b>150</b> to the DKA <b>120</b>. The return frame <b>43</b> includes a command in respect of the DKA <b>120</b> (hereinbelow denoted as COM′), one or a plurality of second information sets (i.e. information sets including the frame number, COM and CRC′), and the CRC in this return frame <b>43</b> (hereinbelow denoted by CRC″).
p-0085A transmission frame <b>41</b> is provided for a return frame <b>43</b>. The transmission frame <b>41</b> is the frame that is transmitted to the hard disk device <b>150</b> from the DKA <b>120</b>. The transmission frame <b>41</b> includes the COM, K data units, and K CRCs that are generated from these data units. A data unit includes write data from the host device <b>180</b> and an LA (LA added by CHA <b>110</b>) in respect of this write data. Also, the data unit may include null data in order to make the data unit of a prescribed size.
p-0086Hereinbelow, if simply CRC is referred to, this indicates a CRC that is generated using K data units transmitted to the hard disk device <b>150</b> from the DKA <b>120</b>. In contrast, if CRC′ is referred to, this denotes a CRC that is generated using K data units that are read from the drive cache memory <b>35</b>, to be described, in the hard disk device <b>150</b>. Also, if CRC″ is referred to, this denotes a CRC in the return frame <b>43</b>.
p-0087The transfer control unit <b>3</b> comprises a frame sequential order management unit <b>5</b> that manages the transmission sequential order of the transmission frames <b>41</b>, a data buffer <b>7</b> having a capacity capable of accumulating at least K data units, a CRC calculation unit <b>15</b> that calculates a CRC from K data units accumulated in the data buffer <b>7</b>, and a COM generating unit <b>17</b> that generates the COM that is included in the transmission frame <b>41</b>. The frame sequential order management unit <b>5</b>, CRC calculation unit <b>15</b> and COM generating unit <b>17</b> may be hardware circuits, computer programs or a combination of these.
p-0088The comparator <b>13</b> is a device that compares the CRC and COM in a given first information set in the transmission area <b>11</b>T and the CRC′ and COM in the second information set in the return area <b>11</b>R corresponding to this given first information set and outputs the result. The comparator <b>13</b> can output the result of the comparison for example to the MP <b>120</b>M.
p-0089A hard disk device <b>150</b> comprises a drive cache memory (hereinbelow abbreviated as drive CM) <b>35</b>, a transfer control unit <b>23</b>, a CRC′ calculation unit <b>21</b>, a disk reader/writer <b>40</b> and a disk <b>150</b>D.
p-0090The drive CM <b>35</b> may be constituted for example by volatile or non-volatile semiconductor memory. The drive CM <b>35</b> comprises a data storage space <b>37</b> and CRC′/COM storage space <b>39</b>. The data storage space <b>37</b> comprises a plurality of sub-spaces for storing one or a plurality of data units and a plurality of addresses for respectively designating the plurality of sub-spaces. The CRC′/COM storage space <b>39</b> comprises a plurality of sub-spaces for storing third information sets including CRC′ and COM and a plurality of addresses for respectively designating the plurality of sub-spaces.
p-0091The transfer control unit <b>23</b> comprises a frame sequential order management unit <b>25</b> that manages the transmission sequential order of the transmission frames <b>41</b>, a data buffer <b>27</b> having a capacity capable of accumulating at least K data units, a memory management unit <b>29</b> that manages the drive CM <b>35</b>, a CRC″ calculation unit <b>31</b> that calculates the CRC″ in the return frame <b>43</b>, and a COM′ generating unit <b>33</b> that generates the COM′ included in the return frame <b>43</b>. The frame sequential order management unit <b>25</b>, CRC″ calculating unit <b>31</b>, memory management unit <b>29</b>, and COM′ generating unit <b>33</b> may be hardware circuits, computer programs or a combination of these. The memory management unit <b>29</b> performs for example designation of the starting address for reading of the data storage space <b>37</b> or monitoring how many unread third information sets have been accumulated in the CRC′/COM storage space <b>39</b>.
p-0092The CRC′ calculating unit <b>21</b> calculates a CRC′ from K data units that have been written to the disk <b>150</b> DB after being read from the drive CM <b>35</b>.
p-0093The disk reader/writer <b>40</b> starts to read data units from the read start address designated in respect of the data storage space <b>37</b> and writes the data units that have been read to the disk <b>150</b>D. When the disk reader/writer <b>40</b> has read a data unit from the read start address, it reads the data unit from the next address. By repeating this process, the disk reader/writer <b>40</b> can write a plurality of data units to the disk <b>150</b>D. The disk reader/writer <b>40</b> comprises for example a head that is positionally aligned on the disk and a position control unit that controls the position of the head.
p-0094<figref idrefs="DRAWINGS">FIG. 3</figref> shows an example of the flow of processing up to where presence/absence of an error in writing to the disk is detected and an example of the flow of processing that is performed in response to the result of this detection. These processing flows are described below with reference to <figref idrefs="DRAWINGS">FIG. 2</figref> and <figref idrefs="DRAWINGS">FIG. 3</figref>. A description is also given of which storage regions are updated in what way in these processing flows, with reference to <figref idrefs="DRAWINGS">FIG. 4</figref> to <figref idrefs="DRAWINGS">FIG. 11</figref> as appropriate. (A) to (F) in <figref idrefs="DRAWINGS">FIG. 2</figref> respectively correspond to (A) to (F) in <figref idrefs="DRAWINGS">FIG. 3</figref>. Also, in <figref idrefs="DRAWINGS">FIG. 4</figref> to <figref idrefs="DRAWINGS">FIG. 11</figref>, a data unit is denoted by “DATA” and the data unit that is contained in the return frame <b>41</b> whose frame number is N is denoted by “DATA (N)”. Also, in <figref idrefs="DRAWINGS">FIG. 4</figref> to <figref idrefs="DRAWINGS">FIG. 11</figref>, the COM that is included in the transmission frame <b>41</b> whose frame number is N is denoted by COM (N), the CRC that is contained in this transmission frame <b>41</b> is denoted by CRC (N) and the CRC′ that is generated from the K data units that should be included in this transmission frame <b>41</b> is denoted by CRC′(N). The reason for saying “that should be included” is that it is possible that K data units other than the K data units that ought to be read out might be read out due to some reason such as erroneous designation of the address in the data storage space <b>37</b>.
p-0095The CHA <b>110</b> generates a data unit by adding an LA to the write data received from the host device <b>180</b>; as shown in <figref idrefs="DRAWINGS">FIG. 4</figref>, the data unit that is thus generated is written to a prescribed cache region <b>131</b> on the CM <b>130</b>. Also, the CHA <b>110</b> writes the write request for writing of this data unit to the disk to a prescribed control information storage region <b>141</b> on the SM <b>140</b>.
p-0096The DKA <b>120</b> detects unprocessed requests by periodically referencing the control information storage region <b>141</b>. If such a request is a read request (NO in step S<b>1</b>), for example the read processing described above is performed; if the request is a write request (YES in S<b>1</b>), execution of processing corresponding to this write request is commenced.
p-0097First of all, the memory interface <b>1</b> of the DKA <b>120</b> acquires a data unit from the cache region <b>131</b> (S<b>2</b>). To this data unit, there are added the command (denoted by “command A” in <figref idrefs="DRAWINGS">FIG. 2</figref>) that is passed between the CM <b>130</b> and DKA <b>120</b> and the CRC (denoted by “CRC: A” in <figref idrefs="DRAWINGS">FIG. 2</figref>). This command and CRC are discarded after being received by the memory interface <b>1</b>. The data unit that is received by the memory interface <b>1</b> is accumulated in the data buffer <b>7</b> of the transfer control unit <b>3</b>.
p-0098When K data units have been accumulated in the data buffer <b>7</b>, the transfer control unit <b>3</b> commences protocol conversion processing (S<b>3</b>) comprising processing to generate a transmission frame <b>41</b> in accordance with the transmission protocol to the hard disk device. For example, when a transmission frame <b>43</b> of frame number <b>0</b> is transmitted, the CRC calculation unit <b>15</b> calculates the CRC (<b>0</b>) from the K data units contained in this transmission frame <b>43</b> and the COM generation unit <b>17</b> generates COM (<b>0</b>) that is contained in this transmission frame <b>43</b> (S<b>4</b>). The CRC (<b>0</b>) that has been thus calculated and the COM (<b>0</b>) that has been generated are stored in the transmission area <b>11</b>T (S<b>5</b>). Also, at this point, for example the frame sequential order management unit <b>5</b> associates the frame number <b>0</b> with the set of CRC (<b>0</b>) and COM (<b>0</b>) in the transmission area <b>11</b>T. Also, for example the MP <b>120</b>M associates an LA group with the set of CRC (<b>0</b>) and COM (<b>0</b>) on the transmission area <b>11</b>T. What is referred to here as an “LA group” is K LAs that are respectively included in the K data units that are employed in the generation of the CRCs in order to make it possible to designate from which K data units the CRCs are to be generated. In <figref idrefs="DRAWINGS">FIG. 4</figref> to <figref idrefs="DRAWINGS">FIG. 11</figref>, the LA group corresponding to CRC (N) is denoted by a “LA (N) group”. This way of writing the frame number <b>0</b>, CRC (<b>0</b>), COM (<b>0</b>) and LA (<b>0</b>) group is shown in <figref idrefs="DRAWINGS">FIG. 5</figref>.
p-0099The transfer control unit <b>3</b> generates a transfer frame <b>41</b> including the COM that has thus been generated (for example COM (<b>0</b>)), the calculated CRC (for example CRC (<b>0</b>)) and the K data units that were employed for calculation of this CRC, and transmits this transmission frame <b>41</b> to the hard disk device <b>150</b> (S<b>6</b>).
p-0100The transfer control unit <b>23</b> of the hard disk device <b>150</b> receives the transfer frame <b>41</b> and respectively stores (S<b>7</b>) the K data units that are contained in the transmission frame <b>41</b> in K sub-spaces in the data storage space <b>37</b>. Also, the transmission control unit <b>23</b> stores the COM in the transmission frame <b>41</b> in the CRC′/COM storage space <b>39</b>. How the K data units and the COM are stored in the drive CM <b>35</b> is shown in <figref idrefs="DRAWINGS">FIG. 6</figref>.
p-0101A write request to the disk <b>150</b>D is then issued (S<b>8</b>). For example, the transmission control unit <b>23</b> issues a write request to the disk reader/writer <b>40</b>. This processing may be performed immediately after S<b>7</b> or may be performed when the memory management unit <b>29</b> concludes that at least a prescribed number of data units have been stored in the data storage space <b>37</b>.
p-0102The read start address in respect of the data storage space <b>37</b> is then designated (S<b>9</b>). This may be for example performed by the memory management unit <b>29</b> in accordance with the firmware of the hard disk device <b>150</b>.
p-0103The disk reader/writer <b>40</b> starts to read K data units sequentially from the read start address designated in respect of the data storage space <b>37</b>. The disk reader/writer <b>40</b> performs processing for alignment of the head and/or processing to rotate the disk (S<b>10</b>) on which the data units are written in accordance with the LA in the data unit at which reading is commenced. Positional location of the head is completed (S<b>13</b>) after the lapse of a given time. A certain time (for example a few seconds) is required for positional location of the head to be completed after commencement of head alignment processing. Accordingly, in order to increase processing speed, the processing of S<b>11</b> and S<b>12</b>, to be described, is performed in parallel with the head positional location processing.
p-0104Specifically, the CRC′ calculating unit <b>21</b> calculates the CRC′ from the K data units that are sequentially read from the read start address designated by the disk reader/writer <b>40</b> (S<b>11</b>). This processing can be performed in a shorter time (for example a few milliseconds) than the time required for the head positional location processing. The CRC′ calculating unit <b>21</b> associates the calculated CRC′ with a COM that has not been associated with a CRC′ on the CRC′/COM storage space <b>39</b> (S<b>12</b> of <figref idrefs="DRAWINGS">FIG. 3</figref>). For example, if the calculated CRC′ is the CRC′(<b>0</b>) calculated using the K data units in the transmission frame <b>41</b> of frame number <b>0</b>, this CRC′(<b>0</b>) is associated with COM (<b>0</b>). <figref idrefs="DRAWINGS">FIG. 7</figref> shows how this is done and how-the read start address is designated.
p-0105After head positional location has been completed, the data units that have been read are written to the disk (S<b>14</b>).
p-0106Since the above processing is performed every time a transmission frame <b>41</b> is received, the data storage space <b>37</b> and the amount of information registered in the CRC′/COM storage space <b>39</b> increase. This is shown in <figref idrefs="DRAWINGS">FIG. 8</figref>.
p-0107The memory management unit <b>29</b> evaluates whether or not a data unit that is read is the final data unit of the data units present in the data storage space <b>37</b> or whether or not more than a prescribed number of CRC′ and COM sets are stored in the CRC′/COM storage space <b>39</b> (S<b>15</b>).
p-0108If, in S<b>15</b>, it is found that the data unit that has been read is the final data unit of the data units present in the data storage space <b>37</b>, writing to the disk is terminated (S<b>16</b>A).
p-0109Also, in S<b>15</b>, if it is found that at least one of the situation that the data unit that has been read is the final data unit and the situation that more than a prescribed number of CRC′ and COM sets have been stored, generation processing and transmission processing of a return frame are performed (S<b>16</b>B). Specifically, for example the COM′ generating unit <b>33</b> generates a COM′ including a return frame <b>43</b>. The transfer control unit <b>23</b> reads a prescribed number (for example X in <figref idrefs="DRAWINGS">FIG. 8</figref>) of CRC′ and COM and prepares a frame number and a prescribed number of information sets including CRC′ and COM (or a number thereof which is less than the prescribed number may be prepared). The CRC″ calculating unit <b>31</b> calculates. CRC″ in respect of the return frame <b>43</b>. The transfer control unit <b>23</b> generates a return frame <b>43</b> including the COM′ that has thus been generated, the prescribed number of information sets that have been prepared, and the CRC″ that has thus been calculated and transmits this return frame <b>43</b> that is thereby generated to the DKA <b>120</b>. It should be noted that, although, in <figref idrefs="DRAWINGS">FIG. 4</figref> to <figref idrefs="DRAWINGS">FIG. 11</figref>, in contrast to the situation in respect of the transmission area <b>11</b>T and return area <b>11</b>R, no frame number is stored in the CRC′/COM storage space <b>39</b>, the frame order management unit <b>25</b> is able to manage which CRC′ and COM correspond to which frame number and the correct frame number can therefore be attached to each CRC′ and COM set in the return frame <b>43</b>. This is the same as in the case of the transmission area <b>11</b>T and return area <b>11</b>R. Of course, a frame number may be associated with the CRC′ and COM set in the CRC′/COM storage space <b>39</b> in the same way as in the case of the transmission area <b>11</b>T and return area <b>11</b>R. For example, every time a transmission frame <b>41</b> is received, the frame sequence management unit <b>25</b> may record the frame number in the CRC′/COM storage space <b>39</b>.
p-0110When the transfer control unit <b>3</b> of the DKA <b>120</b> receives a return frame <b>43</b>, it stores the information set (frame number, CRC′ and COM) in this return frame in the return area <b>11</b>R as a second information set, as described above (S<b>17</b>).
p-0111The comparator <b>13</b> compares (S<b>18</b>) each of the CRC′ and COM that are stored in the return area <b>11</b>R and each of the CRC and COM that are stored in the transmission area <b>11</b>T.
p-0112Specifically, for example the comparator <b>13</b> retrieves first a first information set including a frame number which is the same as the frame number in the second information set in the return area <b>11</b>R and compares the CRC′ and COM in this second information set with the CRC and COM in the first information set which has thus been retrieved and outputs the result of the comparison for example to the MP <b>120</b>M. If X information sets are stored in the return frame <b>43</b>, as shown by way of example in <figref idrefs="DRAWINGS">FIG. 9</figref>, the comparator <b>13</b> performs comparison processing as described above in respect of each of the X CRC′ and COM and in respect of each of the X CRC and COM.
p-0113For example in S<b>9</b>, if a correct address is designated as the read start address in respect of the K data units corresponding to the COM (N) and CRC (N), the K data units corresponding to the COM (N) and CRC (N) are read from the data storage space <b>37</b> and a CRC′(N) is generated from these K data units. Consequently, in this case, the CRC′(N) and COM (N) match the CRC (N) and COM (N). However, if a wrong address is designated as the read start address, K spurious data units (for example K data units that are wholly or partially different from the correct K data units), different from the correct K data units corresponding to the COM (N) and CRC (N) are read from the data storage space <b>37</b> and the CRC′(N) is generated from these spurious K data units. In this case, therefore, the CRC′ (N) and COM (N) do not match the CRC (N) and COM (N). Also, if an error is generated such as occurrence of a mistake in address designation as described above, it is possible for the CRC to be left in the transmission area <b>11</b>T without comparison processing being performed.
p-0114If, as a result of the comparison of S<b>18</b>, a mismatch is obtained, for example the MP <b>120</b>M specifies the K data units that were employed in the calculation of the CRC (N) using the LA (N) group corresponding to the CRC (N) in respect of this mismatch and requests the specified K data units from the cache region <b>131</b> (S<b>19</b>). In this way, the K data units are again sent from the cache region <b>131</b> to the DKA <b>120</b>. It should be noted that, if an unprocessed first information set with a non-continuous frame number is detected in the transmission area <b>11</b>T (for example a first information set including a frame number <b>3</b> when the frame numbers have been <b>3</b>, <b>5</b>, <b>6</b>, . . . ), the processing of S<b>19</b> could be performed also in respect of the CRC in this first information set.
p-0115On the other hand, if, as a result of the comparison of S<b>18</b>, matching was obtained, for example the MP <b>120</b>M specifies K data units employed in the calculation of the CRC (N) using the LA (N) group corresponding to the CRC (N) with which matching was obtained and writes a request (hereinbelow termed a destaging request) for deletion of the specified K data units from the cache region <b>131</b> to the control information storage region <b>141</b> of the SM <b>140</b> (S<b>20</b>). Write processing is thereby terminated (S<b>21</b>). When such a destaging request is detected by the CHA <b>110</b>, the CHA <b>110</b> deletes the specified K data units from the cache region <b>131</b>. This is shown in <figref idrefs="DRAWINGS">FIG. 10</figref>.
p-0116In the above series of processes, if at least one of the cache region <b>131</b>, transmission area <b>11</b>T, return area <b>11</b>R, data storage space <b>37</b> or CRC′/COM storage space <b>39</b> becomes full, as shown by way of example in <figref idrefs="DRAWINGS">FIG. 11</figref>, the oldest information is overwritten by the latest information (wraparound).
p-0117In the embodiments described above, the write data from the host device <b>180</b> remains on the CM <b>130</b> until detection of whether or not there is a write error to the disk has been performed. Consequently, if a write error to the disk has occurred, writing of correct write data to the disk <b>150</b>D can be performed without needing to restore the correct write data by data reading from the disk.
p-0118Also, with the embodiments described above, even if a write error to the disk occurs, it suffices simply to perform processing to write the write data remaining in the CM <b>130</b> again to the disk <b>150</b>D, so performance deterioration of the storage control device <b>100</b> can be suppressed and data writing with high reliability can be provided.
p-0119It should be noted that, in the embodiments described above, the plurality of hard disk devices <b>150</b> provided in the storage control device <b>100</b> could be solely constituted by FC drives (hard disk drives having a fiber channel interface) as shown by way of example in <figref idrefs="DRAWINGS">FIG. 13A</figref>, could be solely constituted by SATA drives as shown by way of example in <figref idrefs="DRAWINGS">FIG. 13B</figref>, could be solely constituted by SAS drives as shown by way of example in <figref idrefs="DRAWINGS">FIG. 13C</figref> or could be constituted by a mixture of FC drives and ATA drives (for example SAS drives or SATA drives) as shown by way of example in <figref idrefs="DRAWINGS">FIG. 13D</figref>. If both FC drives and ATA drives are present, when for example the DKA <b>120</b> is storing data units on a disk, if the storage destination is an ATA drive, performance of processing as shown by way of example in <figref idrefs="DRAWINGS">FIG. 3</figref> may be selected; if the storage destination is an FC drive, non-performance of processing as shown by way of example in <figref idrefs="DRAWINGS">FIG. 3</figref> may be selected. For this selection processing, for example, after YES at S<b>1</b> in <figref idrefs="DRAWINGS">FIG. 3</figref>, the MP <b>120</b>M may refer to the control information on SM <b>140</b> (S<b>499</b>), and may determine whether the storage destination is an FC drive or an ATA drive and may select non-performance of the processing of S<b>2</b> and the following steps in <figref idrefs="DRAWINGS">FIG. 3</figref> if it determines that the drive is an FC drive (S<b>501</b>) and select performance of the processing of S<b>2</b> and the following steps in <figref idrefs="DRAWINGS">FIG. 3</figref> if it determines that the drive is an ATA drive (S<b>502</b>). The control information includes for example the VOL number (or LA) and the correspondence relationship with the type of hard disk drive having this VOL (or LA).
p-0120While preferred modes and embodiments of the present invention have been described above, the present invention is not restricted to these modes and embodiments and could of course be modified in various ways without departing from its gist. For example, instead of the CRC, various types of comparison objects could be adopted such as the hash value of a plurality of data units or compressed data. Also, the value of K need not necessarily be a fixed value but could be a variable value.
Contents6
14 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US11886286B2 | Cited by | United States of America | Search report |
| US10180865B2 | Cited by | United States of America | Applicant |
| US9875151B2 | Cited by | United States of America | Applicant |
| US11669379B2 | Cited by | United States of America | Applicant |
| US8219747B2 | Cited by | United States of America | Search report |
| US9092352B2 | Cited by | United States of America | Applicant |
| US9058115B1 | Cited by | United States of America | Applicant |
| US2010091621A1 | Cited by | United States of America | Pre-grant |
| US10838793B2 | Cited by | United States of America | Applicant |
| US9665430B2 | Cited by | United States of America | Applicant |
| US10095565B2 | Cited by | United States of America | Applicant |
| US8854763B2 | Cited by | United States of America | Applicant |
| US9286933B2 | Cited by | United States of America | Applicant |
| US8854762B2 | Cited by | United States of America | Applicant |
| US11775369B2 | Cited by | United States of America | Applicant |
| US8873187B1 | Cited by | United States of America | Applicant |
| US11340973B2 | Cited by | United States of America | Applicant |
| US8656254B2 | Cited by | United States of America | Applicant |
| US10621023B2 | Cited by | United States of America | Applicant |
| US2022004454A1 | Cited by | United States of America | Search report |
| US10241849B2 | Cited by | United States of America | Applicant |
| US7831888B2 | Cited by | United States of America | Applicant |
| US8539149B2 | Cited by | United States of America | Applicant |
| JP2000347815A | Cites | Japan | Applicant |
| US6681364B1 | Cites | United States of America | Search report |
| US7065702B2 | Cites | United States of America | Search report |
| US7131050B2 | Cites | United States of America | Search report |
| US7372651B2 | Cites | United States of America | Search report |
4 priority claims, no other members on record
Priority claims4
| Document | Office | Kind | Date |
|---|---|---|---|
| 2004322307 | Japan | A | |
| 2004322307 | Japan | A | |
| 2004322307 | – | – | – |
| JP20040322307 | – | – | – |
26 transactions on the USPTO file
Allowed without a rejection on record.
- Non-final rejections
- 0
- Final rejections
- 0
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Expire PatentEXP. | EXP. | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| IFW TSS Processing by Tech Center CompleteTSSCOMP | TSSCOMP | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Application Return from OIPEWROIPE | WROIPE | |
| Application Return TO OIPEROIPE | ROIPE | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Application Is Now CompleteCOMP | COMP | |
| Cleared by OIPE CSRL194 | L194 | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Request for Foreign Priority (Priority Papers May Be Included)RQPR | RQPR | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Initial Exam Team nnIEXX | IEXX |
7 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Lapsed due to failure to pay maintenance feeLapsedFP | FP | |
| Lapse for failure to pay maintenance feesLapsedPATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.)LAPS | LAPS | |
| Information on status: patent discontinuationPATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362STCH | STCH | |
| Maintenance fee reminder mailedREMI | REMI | |
| Fee paymentFPAY | FPAY | |
| Fee payment procedurePAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| AssignmentAS | AS |
Numbers
- Publication, DOCDB
- 7570447
- Publication, EPODOC
- US7570447
- Application
- 11022781
- Application, DOCDB
- 2278104
- Application, EPODOC
- US20040022781
Titles
- English
- Storage control device and method for detecting write errors to storage media
Patent term adjustment
- A delay
- +1,129 daysthe office missed an examination deadline
- Net adjustment
- 1,129 days
Classification
- CPC, 2
- G06F11/1004
- G06F12/0866
- IPC, 1
- H03M13 00
- USPC, 5
- 360053000
- 714758000
- 714763000
- 714776000
- 714807000