(57)【要約】【課題】  記憶メディアへの書込みにエラーが生じたことを検出するために記憶制御装置の性能が劣化してしまうことを抑える。【解決手段】  ホスト装置（３０１）からのライトデータを記憶するキャッシュ領域（３０７）と、記憶メディア（３１３）と、記憶メディアのためのデータ記憶域（３２１）と、比較部（３２７）とが備えられる。キャッシュ領域（３０７）上のＮ個のライトデータについて第一比較対象が生成され、Ｎ個のライトデータがデータ記憶域（３２１）に転送される。データ記憶域の指定されたアドレスからライトデータが読み出され、そのライトデータが記憶メディアに書かれる。Ｎ個のライトデータが読み出された場合、それらについての第二比較対象が生成される。第一比較対象と第二比較対象との比較が、比較部により行われ、その比較の結果が不適合の場合、キャッシュ領域上のＮ個のライトデータが再びデータ記憶域に転送される。【選択図】図１２
2006134064.tif 000002
【特許請求の範囲】
【請求項１】
書込み対象のデータであるライトデータを送信するホスト装置から前記ライトデータを受信し記憶メディアに書き込む記憶制御装置において、
データを記憶する記憶メディアを備えた記憶メディア装置と、
前記ホスト装置から受信したライトデータを一時的に記憶するキャッシュ領域と、
前記キャッシュ領域に記憶されたライトデータを前記キャッシュ領域から取得し、前記取得したライトデータを前記記憶メディア装置に転送する記憶メディアアダプタと、
プロセッサと
を備え、
前記記憶メディアアダプタは、
前記キャッシュ領域からライトデータを取得されたライトデータを蓄積するデータバッファと、
前記データバッファに少なくともＫ個（Ｋは一以上の整数）のライトデータが蓄積された場合に、前記Ｋ個のライトデータについての第一の比較対象を生成する第一比較対象生成部と、
前記生成された第一比較対象を記憶する第一比較対象記憶域と、
前記Ｋ個のライトデータを含んだデータフレームを前記記憶メディア装置に送信する送信機であるアダプタ送信機と
を備え、
前記記憶メディア装置は、
前記記憶メディアアダプタから前記データフレームを受信する受信機である記憶メディア受信機と、
少なくとも一つのライトデータを記憶するサブ領域と、前記サブ領域を特定するためのアドレスとをそれぞれ複数個有し、前記受信されたデータフレームに含まれているＫ個のライトデータを、前記複数のサブ領域のうちの少なくとも一つのサブ領域に蓄積するデータ記憶域と、
前記データ記憶域の複数のアドレスから読み出し開始のアドレスを指定するアドレス指定するアドレス指定部と、
前記指定されたアドレスが表すサブ領域からライトデータを読出し、前記読み出されたライトデータを前記記憶メディアに書き込む記憶メディア書込み部と、
Ｋ個のライトデータが前記データ記憶域から読み出される場合に、前記読み出されるＫ個のライトデータについての第二の比較対象を生成する第二比較対象生成部と、
前記生成された第二比較対象を記憶する第二比較対象記憶域と、
前記第二比較対象記憶域に記憶された第二比較対象を前記記憶メディアアダプタに送信する送信機である記憶メディア送信機と
を備え、
前記記憶メディアアダプタが、更に、
前記第二比較対象を受信する受信機であるアダプタ受信機と、
前記受信された第二比較対象と、前記第一比較対象記憶域に記憶されている第一比較対象とを比較する比較機と
を備え、
前記プロセッサが、前記比較機による比較の結果、前記第一比較対象記憶域に記憶されている複数の第一比較対象のうちのどの第一比較対象にも前記受信された第二比較対象が適合しない場合、過去に送信されたＫ個のライトデータを前記キャッシュ領域から前記記憶メディアアダプタに取得させ、
前記アダプタ送信機が、前記取得されたＫ個のライトデータを含んだ前記データフレームを前記記憶メディア装置に再送する、
記憶制御装置。
【請求項２】
前記プロセッサが、前記比較機による比較の結果、前記第一比較対象記憶域に記憶されている複数の第一比較対象のうちのいずれか一つの第一比較対象に前記受信された第二比較対象が適合した場合、その第一比較対象に対応したＫ個のライトデータを前記キャッシュ領域から消去する、
請求項１記載の記憶制御装置。
【請求項３】
前記記憶制御装置が、
第一のプロセッサを有し、前記ライトデータをホスト装置から受信し、前記受信したライトデータを前記キャッシュ領域に書き込むチャネルアダプタと、
前記チャネルアダプタと前記記憶メディアアダプタの両方がアクセス可能な記憶域である共有記憶域と
を更に備え、
前記記憶メディアアダプタが、第二のプロセッサを有し、
前記第二のプロセッサが、前記比較機による比較の結果、前記第一比較対象記憶域に記憶されている複数の第一比較対象のうちのいずれか一つの第一比較対象に前記受信された第二比較対象が適合した場合、適合したことを表す情報を前記共有記憶域に書き込み、
前記第一のプロセッサが、前記共有記憶域に前記適合したことを表す情報が記憶されていることを検出した場合に、その第一比較対象に対応したＫ個のライトデータを前記キャッシュ領域から消去する、
請求項２記載の記憶制御装置。
【請求項４】
前記第一比較対象及び前記第二比較対象は、前記Ｋ個のライトデータについてのエラー検出用のコードを含んだデータ群である、
請求項１記載の記憶制御装置。
【請求項５】
前記第一比較対象記憶域は、複数の第一比較対象の中から少なくとも一つの第一比較対象を識別するための第一の識別情報を記憶し、
前記記憶メディア送信機は、少なくとも一つの第二比較対象と、前記少なくとも一つの第二比較対象に対応した第二の識別情報とを前記記憶メディアアダプタに送信し、
前記比較機は、前記少なくとも一つの第二比較対象と、前記第二の識別情報に適合する第一の識別情報から識別される少なくとも一つの第一比較対象とを比較する、
請求項１記載の記憶制御装置。
【請求項６】
前記第一の識別情報は、前記第一の比較対象に対応したＫ個のライトデータを含むデータフレームの送信順番を表したフレーム番号を含み、
前記第二の識別情報は、前記第二の比較対象に対応付けられたフレーム番号を含む、
請求項５記載の記憶制御装置。
【請求項７】
前記記憶メディア送信機は、複数の第二比較対象を含んだ情報群を前記記憶メディアアダプタに送信し、
前記情報群のデータサイズは、前記アダプタ送信機が送信する前記データフレームのデータサイズ以下である、
請求項１記載の記憶制御装置。
【請求項８】
前記第一比較対象記憶域は、複数の第一比較対象の中から第一比較対象を識別するための第一の識別情報を記憶し、
前記記憶メディア送信機は、第二比較対象と、前記第二比較対象に対応した第二の識別情報とのセットを複数個含んだ前記情報群を前記記憶メディアアダプタに送信し、
前記比較機は、前記情報群に含まれている各第二比較対象と、その第二比較対象に対応した第二識別情報に適合する第一の識別情報から識別される第一比較対象とを比較する、
請求項７記載の記憶制御装置。
【請求項９】
前記記憶メディア装置は、ハードディスク装置であり、
前記ハードディスク装置は、ハードディスクドライブそれ自体又はハードディスクドライブを備えた装置であり、
前記ハードディスクドライブが、ＡＴＡドライブである、
請求項１記載の記憶制御装置。
【請求項１０】
前記記憶メディア装置は、ハードディスク装置であり、
前記ハードディスク装置は、ハードディスクドライブそれ自体又はハードディスクドライブを備えた装置であり、
前記記憶制御装置が、高信頼性のハードディスク装置と、それよりも低信頼性のハードディスク装置を備え、
前記記憶メディアアダプタが、前記高信頼性のハードディスク装置と、前記低信頼性のハードディスク装置の両方に接続されており、
前記高信頼性のハードディスク装置は、高信頼性のドライブそれ自体又はそれを備えた装置であり、
前記低信頼性のハードディスク装置は、前記高信頼性のドライブよりも低信頼性のドライブそれ自体又はそのドライブを備えた装置であり、
前記比較機が、ライトデータの送信先が低信頼性のハードディスク装置の場合に、前記比較を行う、
請求項１記載の記憶制御装置。
【請求項１１】
書込み対象のデータであるライトデータを送信するホスト装置から前記ライトデータを受信し記憶メディアに書き込む記憶制御装置が実行する記憶制御方法において、
前記記憶制御装置は、記憶メディアを有する記憶メディア記憶装置を備え、
前記記憶メディア記憶装置は、少なくとも一つのライトデータを記憶するサブ領域と、前記サブ領域を特定するためのアドレスとをそれぞれ複数個有するデータ記憶域を有し、
前記記憶制御方法は、
ホスト装置からライトデータを受信するステップと、
ライトデータを一時的に記憶するキャッシュ領域に前記受信したライトデータを書き込むステップと、
前記キャッシュ領域に書き込まれているＫ個（Ｋは一以上の整数）のライトデータについての第一の比較対象を生成するステップと、
前記生成された第一比較対象を第一比較対象記憶域に書き込むステップと、
前記Ｋ個のライトデータを含んだデータフレームを生成し、前記生成されたデータフレームを、記憶メディアを有する記憶メディア装置に送信するステップと、
前記記憶メディア装置が受信したデータフレームに含まれているＫ個のライトデータを、前記データ記憶域における複数のサブ領域のうちの少なくとも一つのサブ領域に書き込むステップと、
前記データ記憶域の複数のアドレスから読み出し開始のアドレスを指定するステップと、
前記指定されたアドレスが表すサブ領域からライトデータを読出し、前記読み出されたライトデータを前記記憶メディアに書き込むステップと、
Ｋ個のライトデータが前記データ記憶域から読み出される場合に、前記読み出されるＫ個のライトデータについての第二の比較対象を生成するステップと、
前記生成された第二比較対象を第二比較対象記憶域に書き込むステップと、
前記第二比較対象記憶域に記憶された第二比較対象を送信するステップと、
前記送信された第二比較対象と、前記第一比較対象記憶域に記憶されている第一比較対象とを比較するステップと、
比較の結果、前記第一比較対象記憶域に記憶されている複数の第一比較対象のうちのどの第一比較対象にも前記第二比較対象が適合しない場合、過去に送信されたＫ個のライトデータを前記キャッシュ領域から取得し、前記取得されたＫ個のライトデータを含んだ前記データフレームを前記記憶メディア装置に再送するステップと
を有する記憶制御方法。
【請求項１２】
書込み対象のデータであるライトデータを送信するホスト装置から前記ライトデータを受信し記憶メディアに書き込む記憶制御装置において、
データを記憶する記憶メディアと、
ホスト装置からのライトデータを一時的に記憶するキャッシュ領域と、
前記キャッシュ領域に書き込まれているＫ個（Ｋは一以上の整数）のライトデータを取得するキャッシュ取得部と、
前記Ｋ個のライトデータについての第一の比較対象を生成する第一比較対象生成部と、
前記生成された第一比較対象を記憶する前記第一比較対象記憶域と、
少なくとも一つのライトデータを記憶するサブ領域と、前記サブ領域を特定するためのアドレスとをそれぞれ複数個有し、前記Ｋ個のライトデータを、前記複数のサブ領域のうちの少なくとも一つのサブ領域に記憶するデータ記憶域と、
前記データ記憶域の複数のアドレスから読み出し開始のアドレスを指定するアドレス指定部と、
前記指定されたアドレスが表すサブ領域からライトデータを読出し、前記読み出されたライトデータを前記記憶メディアに書き込む記憶メディア書込み部と、
Ｋ個のライトデータが前記データ記憶域から読み出される場合に、前記読み出されるＫ個のライトデータについての第二の比較対象を生成する第二比較対象生成部と、
前記生成された第二比較対象と、前記第一比較対象記憶域に記憶されている第一比較対象とを比較する比較部と
を備え、
前記比較部による比較の結果、前記第一比較対象記憶域に記憶されている複数の第一比較対象のうちのどの第一比較対象にも前記第二比較対象が適合しない場合、前記キャッシュ取得部が、Ｋ個のライトデータを前記キャッシュ領域から取得し、
前記データ記憶域が、前記取得されたＫ個のライトデータを記憶する、
記憶制御装置。
【請求項１３】
前記比較部による比較の結果、前記第一比較対象記憶域に記憶されている複数の第一比較対象のうちのいずれか一つの第一比較対象に前記受信された第二比較対象が適合した場合、その第一比較対象に対応したＫ個のライトデータを前記キャッシュ領域から消去するデータ消去部を更に備える、
請求項１２記載の記憶制御装置。
【請求項１４】
前記第一比較対象及び前記第二比較対象は、前記Ｋ個のライトデータについてのエラー検出用のコードを含んだデータ群である、
請求項１２記載の記憶制御装置。
【請求項１５】
前記第一比較対象記憶域が、複数の第一比較対象の中から第一比較対象を識別するための第一の識別情報を記憶し、
前記記憶制御装置が、第二比較対象に対応した第二の識別情報に適合する第一の識別情報を前記第一比較対象記憶域から特定する特定部を更に備え、
前記比較部が、前記特定された第一の識別情報から識別される第一比較対象と、前記第二の識別情報に対応した第二比較対象とを比較する、
請求項１２記載の記憶制御装置。
【請求項１６】
前記記憶メディアを備える記憶メディア装置と、
前記キャッシュ領域におけるＫ個のライトデータを含んだデータフレームを生成し、前記生成されたデータフレームを前記記憶メディア装置に送信するデータフレーム送信部と
を更に備え、
前記第一の識別情報は、前記第一の比較対象に対応したＫ個のライトデータを含むデータフレームの送信順番を表したフレーム番号を含み、
前記第二の識別情報は、前記第二の比較対象に対応付けられたフレーム番号を含む、
請求項１５記載の記憶制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードディスク等の記憶メディアへデータを書き込む記憶制御技術に関し、特に、記憶メディアへの書込みエラーを検出するための技術に関わる。
【背景技術】
【０００２】
例えば、記憶メディア装置を備える記憶制御装置が知られている。この種の記憶制御装置として、例えば、配列された複数のディスク装置を備えるディスクアレイ装置がある。この種の記憶制御装置は、例えば、ホスト装置から、データのライト命令或いはリード命令を受信し（以下、ＩＯ要求）、そのＩＯ要求に応答して、記憶メディアにデータを書き込むか、或いは、記憶メディアからデータを読み出し、読み出したデータをホスト装置に返送するかのいずれかを行う。この種の記憶制御装置では、例えば、ＬＲＣ（Longitudinal Redundancy Check）を採用することで、記憶メディアに書き込まれるデータと、その記憶メディアから読み出されたデータとの整合性を保証することができる（例えば特許文献１の段落２乃至４）。
【０００３】
【特許文献１】特開２０００−３４７８１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記の技術によれば、記憶メディアへの書込みにエラーが生じていることは、記憶メディアにデータが書込まれ、その書き込まれたデータが読み出された場合に、検出することができる。しかし、その場合には、エラーの無いデータは記憶制御装置に残っていないので、RAIDグループからの再計算により（例えば、RAIDレベル５におけるパリティデータを用いる手法により）、エラーの無いデータを復元する必要が生じる。データを復元するための処理を実行する場合には、単位時間あたりに処理されるＩＯ要求の数が減ってしまう。換言すれば、記憶制御装置の性能劣化が伴ってしまう。
【０００５】
従って、本発明の一つの目的は、記憶メディアへの書込みにエラーが生じたことを検出するために記憶制御装置の性能が劣化してしまうことを抑えられるようにすることにある。
【０００６】
本発明の他の目的は、後述の説明から明らかになるであろう。
【課題を解決するための手段】
【０００７】
本発明の第一の側面に従う記憶制御装置（以下、第一の記憶制御装置）は、書込み対象のデータであるライトデータを送信するホスト装置から前記ライトデータを受信し記憶メディアに書き込む装置である。その記憶制御装置は、データを記憶する記憶メディアを備えた記憶メディア装置と、前記ホスト装置から受信したライトデータを一時的に記憶するキャッシュ領域と、前記キャッシュ領域に記憶されたライトデータを前記キャッシュ領域から取得し、前記取得したライトデータを前記記憶メディア装置に転送する記憶メディアアダプタと、プロセッサとを備える。前記記憶メディアアダプタは、前記キャッシュ領域からライトデータを取得されたライトデータを蓄積するデータバッファと、前記データバッファに少なくともＫ個（Ｋは一以上の整数）のライトデータが蓄積された場合に、前記Ｋ個のライトデータについての第一の比較対象を生成する第一比較対象生成部と、前記生成された第一比較対象を記憶する第一比較対象記憶域と、前記Ｋ個のライトデータを含んだデータフレームを前記記憶メディア装置に送信する送信機であるアダプタ送信機とを備える。前記記憶メディア装置は、前記記憶メディアアダプタから前記データフレームを受信する受信機である記憶メディア受信機と、少なくとも一つのライトデータを記憶するサブ領域と、前記サブ領域を特定するためのアドレスとをそれぞれ複数個有し、前記受信されたデータフレームに含まれているＫ個のライトデータを、前記複数のサブ領域のうちの少なくとも一つのサブ領域に蓄積するデータ記憶域と、前記データ記憶域の複数のアドレスから読み出し開始のアドレスを指定するアドレス指定するアドレス指定部と、前記指定されたアドレスが表すサブ領域からライトデータを読出し、前記読み出されたライトデータを前記記憶メディアに書き込む記憶メディア書込み部と、Ｋ個のライトデータが前記データ記憶域から読み出される場合に、前記読み出されるＫ個のライトデータについての第二の比較対象を生成する第二比較対象生成部と、前記生成された第二比較対象を記憶する第二比較対象記憶域と、前記第二比較対象記憶域に記憶された第二比較対象を前記記憶メディアアダプタに送信する送信機である記憶メディア送信機とを備える。前記記憶メディアアダプタが、更に、前記第二比較対象を受信する受信機であるアダプタ受信機と、前記受信された第二比較対象と前記第一比較対象記憶域に記憶されている第一比較対象とを比較する比較機とを備える。前記プロセッサが、前記比較機による比較の結果、前記第一比較対象記憶域に記憶されている複数の第一比較対象のうちのどの第一比較対象にも前記受信された第二比較対象が適合しない場合、過去に送信されたＫ個のライトデータを前記キャッシュ領域から前記記憶メディアアダプタに取得させる。前記アダプタ送信機が、前記取得されたＫ個のライトデータを含んだ前記データフレームを前記記憶メディア装置に再送する。
【０００８】
前記プロセッサは、例えば、マイクロプロセッサであっても良いし、記憶制御装置に備えられるサービスプロセッサであってもよい。前記プロセッサは、例えば、記憶メディアアダプタに搭載されていても良いし、記憶メディアアダプタとは別の場所に搭載されていてもよい。
【０００９】
記憶メディアは、データを記憶することができるメディアであればどのようなものでも採用することができる。例えば、記憶メディアは、ハードディスク、半導体メモリ、或いは光磁気ディスクであってもよい。また、記憶メディア装置は、例えば、記憶メディアがハードディスクの場合には、ハードディスクドライブそれ自体であっても良いし、ハードディスクドライブを備えた装置であっても良い。
【００１０】
第一の記憶制御装置の第一の実施態様では、前記プロセッサが、前記比較機による比較の結果、前記第一比較対象記憶域に記憶されている複数の第一比較対象のうちのいずれか一つの第一比較対象に前記受信された第二比較対象が適合した場合、その第一比較対象に対応したＫ個のライトデータを前記キャッシュ領域から消去する。
【００１１】
第一の記憶制御装置の第二の実施態様では、前記第一の実施態様において、前記記憶制御装置が、チャネルアダプタと、共有記憶域とを備える。チャネルアダプタは、第一のプロセッサを有し、前記ライトデータをホスト装置から受信し、前記受信したライトデータを前記キャッシュ領域に書き込む。共有記憶域は、前記チャネルアダプタと前記記憶メディアアダプタの両方がアクセス可能な記憶域である。前記記憶メディアアダプタが、第二のプロセッサを有する。前記第二のプロセッサが、前記比較機による比較の結果、前記第一比較対象記憶域に記憶されている複数の第一比較対象のうちのいずれか一つの第一比較対象に前記受信された第二比較対象が適合した場合、適合したことを表す情報（例えば、ＯＫを表す情報、或いは、適合した第一比較対象に対応したＫ個のライトデータの削除要求）を前記共有記憶域に書き込む。前記第一のプロセッサが、前記共有記憶域に前記適合したことを表す情報が記憶されていることを検出した場合に、その第一比較対象に対応したＫ個のライトデータを前記キャッシュ領域から消去する。
【００１２】
第一の記憶制御装置の第三の実施態様では、前記第一比較対象及び前記第二比較対象は、前記Ｋ個のライトデータについてのエラー検出用のコード（例えばＣＲＣ（Cyclic Redundancy Check））を含んだデータ群である。
【００１３】
第一の記憶制御装置の第四の実施態様では、前記第一比較対象記憶域は、複数の第一比較対象の中から少なくとも一つの第一比較対象を識別するための第一の識別情報を記憶する。前記記憶メディア送信機は、少なくとも一つの第二比較対象と、前記少なくとも一つの第二比較対象に対応した第二の識別情報とを前記記憶メディアアダプタに送信する。前記比較機は、前記少なくとも一つの第二比較対象と、前記第二の識別情報に適合する第一の識別情報から識別される少なくとも一つの第一比較対象とを比較する。
【００１４】
第一の記憶制御装置の第五の実施態様では、前記第四の実施態様において、前記第一の識別情報は、前記第一の比較対象に対応したＫ個のライトデータを含むデータフレームの送信順番を表したフレーム番号を含む。前記第二の識別情報は、前記第二の比較対象に対応付けられたフレーム番号を含む。
【００１５】
第一の記憶制御装置の第六の実施態様では、前記記憶メディア送信機は、複数の第二比較対象を含んだ情報群を前記記憶メディアアダプタに送信する。前記情報群のデータサイズは、前記アダプタ送信機が送信する前記データフレームのデータサイズ以下である。
【００１６】
第一の記憶制御装置の第七の実施態様では、前記第六の実施態様において、前記第一比較対象記憶域は、複数の第一比較対象の中から第一比較対象を識別するための第一の識別情報を記憶する。前記記憶メディア送信機は、第二比較対象と前記第二比較対象に対応した第二の識別情報とのセットを複数個含んだ前記情報群を前記記憶メディアアダプタに送信する。前記比較機は、前記情報群に含まれている各第二比較対象と、その第二比較対象に対応した第二識別情報に適合する第一の識別情報から識別される第一比較対象とを比較する。
【００１７】
第一の記憶制御装置の第八の実施態様では、前記記憶メディア装置は、ハードディスク装置である。前記ハードディスク装置は、ハードディスクドライブそれ自体又はハードディスクドライブを備えた装置である。前記ハードディスクドライブが、ＡＴＡドライブである。
【００１８】
第一の記憶制御装置の第九の実施態様では、前記記憶メディア装置は、ハードディスク装置である。前記ハードディスク装置は、ハードディスクドライブそれ自体又はハードディスクドライブを備えた装置である。前記記憶制御装置が、高信頼性のハードディスク装置と、それよりも低信頼性のハードディスク装置を備える。前記記憶メディアアダプタが、前記高信頼性のハードディスク装置と、前記低信頼性のハードディスク装置の両方に接続されている。前記高信頼性のハードディスク装置は、高信頼性のドライブそれ自体又はそれを備えた装置である。前記低信頼性のハードディスク装置は、前記高信頼性のドライブよりも低信頼性のドライブそれ自体又はそのドライブを備えた装置である。前記比較機が、ライトデータの送信先が低信頼性のハードディスク装置の場合に、前記比較を行う。換言すれば、例えば、この第九の実施態様では、低信頼性のハードディスク装置が、前記第二比較対象生成部と、前記第二比較対象記憶域と、前記記憶メディア送信機とを備え、それにより、前記記憶メディアアダプタは、ライトデータの送信先が低信頼性のハードディスク装置の場合に、第二比較対象を受信することができる。
【００１９】
本発明の第二の側面に従う記憶制御方法は、書込み対象のデータであるライトデータを送信するホスト装置から前記ライトデータを受信し記憶メディアに書き込む記憶制御装置が実行する記憶制御方法である。前記記憶制御装置は、記憶メディアを有する記憶メディア記憶装置を備える。前記記憶メディア記憶装置は、少なくとも一つのライトデータを記憶するサブ領域と、前記サブ領域を特定するためのアドレスとをそれぞれ複数個有するデータ記憶域を有する。この場合、前記記憶制御方法は、ホスト装置からライトデータを受信するステップと、ライトデータを一時的に記憶するキャッシュ領域に前記受信したライトデータを書き込むステップと、前記キャッシュ領域に書き込まれているＫ個（Ｋは一以上の整数）のライトデータについての第一の比較対象を生成するステップと、前記生成された第一比較対象を第一比較対象記憶域に書き込むステップと、前記Ｋ個のライトデータを含んだデータフレームを生成し、前記生成されたデータフレームを、記憶メディアを有する記憶メディア装置に送信するステップと、前記記憶メディア装置が受信したデータフレームに含まれているＫ個のライトデータを、前記データ記憶域における複数のサブ領域のうちの少なくとも一つのサブ領域に書き込むステップと、前記データ記憶域の複数のアドレスから読み出し開始のアドレスを指定するステップと、前記指定されたアドレスが表すサブ領域からライトデータを読出し、前記読み出されたライトデータを前記記憶メディアに書き込むステップと、Ｋ個のライトデータが前記データ記憶域から読み出される場合に、前記読み出されるＫ個のライトデータについての第二の比較対象を生成するステップと、前記生成された第二比較対象を第二比較対象記憶域に書き込むステップと、前記第二比較対象記憶域に記憶された第二比較対象を送信するステップと、前記送信された第二比較対象と、前記第一比較対象記憶域に記憶されている第一比較対象とを比較するステップと、比較の結果、前記第一比較対象記憶域に記憶されている複数の第一比較対象のうちのどの第一比較対象にも前記第二比較対象が適合しない場合、過去に送信されたＫ個のライトデータを前記キャッシュ領域から取得し、前記取得されたＫ個のライトデータを含んだ前記データフレームを前記記憶メディア装置に再送するステップとを有する。
【００２０】
本発明の第三の側面に従う記憶制御装置（以下、第三の記憶制御装置）は、書込み対象のデータであるライトデータを送信するホスト装置から前記ライトデータを受信し記憶メディアに書き込む記憶制御装置である。その記憶制御装置は、データを記憶する記憶メディアと、ホスト装置からのライトデータを一時的に記憶するキャッシュ領域と、前記キャッシュ領域に書き込まれているＫ個（Ｋは一以上の整数）のライトデータを取得するキャッシュ取得部と、前記Ｋ個のライトデータについての第一の比較対象を生成する第一比較対象生成部と、前記生成された第一比較対象を記憶する前記第一比較対象記憶域と、少なくとも一つのライトデータを記憶するサブ領域と、前記サブ領域を特定するためのアドレスとをそれぞれ複数個有し、前記Ｋ個のライトデータを、前記複数のサブ領域のうちの少なくとも一つのサブ領域に記憶するデータ記憶域と、前記データ記憶域の複数のアドレスから読み出し開始のアドレスを指定するアドレス指定部と、前記指定されたアドレスが表すサブ領域からライトデータを読出し、前記読み出されたライトデータを前記記憶メディアに書き込む記憶メディア書込み部と、Ｋ個のライトデータが前記データ記憶域から読み出される場合に、前記読み出されるＫ個のライトデータについての第二の比較対象を生成する第二比較対象生成部と、前記生成された第二比較対象と、前記第一比較対象記憶域に記憶されている第一比較対象とを比較する比較部とを備える。前記比較部による比較の結果、前記第一比較対象記憶域に記憶されている複数の第一比較対象のうちのどの第一比較対象にも前記第二比較対象が適合しない場合、前記キャッシュ取得部が、Ｋ個のライトデータを前記キャッシュ領域から取得する。前記データ記憶域が、前記取得されたＫ個のライトデータを記憶する。
【００２１】
第三の記憶制御装置の第一の実施態様では、第三記憶制御装置は、前記比較部による比較の結果、前記第一比較対象記憶域に記憶されている複数の第一比較対象のうちのいずれか一つの第一比較対象に前記受信された第二比較対象が適合した場合、その第一比較対象に対応したＫ個のライトデータを前記キャッシュ領域から消去するデータ消去部を更に備える。
【００２２】
第三の記憶制御装置の第二の実施態様では、前記第一比較対象及び前記第二比較対象は、前記Ｋ個のライトデータについてのエラー検出用のコードを含んだデータ群である。
【００２３】
第三の記憶制御装置の第三の実施態様では、前記第一比較対象記憶域が、複数の第一比較対象の中から第一比較対象を識別するための第一の識別情報を記憶する。前記第三の記憶制御装置が、第二比較対象に対応した第二の識別情報に適合する第一の識別情報を前記第一比較対象記憶域から特定する特定部を更に備える。前記比較部が、前記特定された第一の識別情報から識別される第一比較対象と、前記第二の識別情報に対応した第二比較対象とを比較する。
【００２４】
第三の記憶制御装置の第四の実施態様では、前記第三の実施態様において、第三の記憶制御装置は、前記記憶メディアを備える記憶メディア装置と、前記キャッシュ領域におけるＫ個のライトデータを含んだデータフレームを生成し、前記生成されたデータフレームを前記記憶メディア装置に送信するデータフレーム送信部とを更に備える。前記第一の識別情報は、前記第一の比較対象に対応したＫ個のライトデータを含むデータフレームの送信順番を表したフレーム番号を含む。前記第二の識別情報は、前記第二の比較対象に対応付けられたフレーム番号を含む。
【００２５】
前記第一の記憶制御装置と前記第三の記憶制御装置とのうち、少なくとも第三の記憶制御装置において、記憶制御装置が備える各部は、ハードウェア、ソフトウェア（コンピュータプログラム）、或いはそれらの組み合わせによって実現することができる。
【発明の効果】
【００２６】
本発明によれば、記憶メディアへの書込みにエラーが生じたことを検出するために記憶制御装置の性能が劣化してしまうことを抑えることができる。
【発明を実施するための最良の形態】
【００２７】
以下、図面を参照して、本発明の一実施形態を説明する。
【００２８】
図１２は、本発明の一実施形態の概要を示す。
【００２９】
書込み対象であるライトデータ（以下、「ＷＤ」と略記する場合あり）を送信するホスト装置３０１に、記憶制御装置３１５が接続されている。記憶制御装置３０５は、ホスト装置３０１に対するインターフェース装置であるホストアダプタ３０５と、記憶制御装置３０５の動作を制御するプロセッサ３０３と、ホスト装置３０１からのライトデータを記憶するキャッシュ領域３０７と、記憶メディア３１３を備えた記憶メディア装置３１１と、キャッシュ領域３０７上のライトデータを記憶メディア装置３１１に転送する記憶メディアアダプタ３０９とを備える。記憶メディア装置３１１には、記憶メディア３１３に書かれるライトデータが書かれるデータ記憶域３２１が備えられる。データ記憶域３２１には、複数のサブ記憶にそれぞれ対応した複数のアドレスがあり、指定されたアドレスからライトデータが読み出され、読み出されたライトデータが記憶メディア３１３に書かれる。
【００３０】
例えば、記憶メディア３１３としては、ハードディスクを採用することができ、それ故、記憶メディア装置３１１としては、ハードディスクドライブそれ自体か、或いは、ハードディスクドライブを備えた装置を採用することができる。ハードディスクドライブには、ディスクへの書込みエラーの発生頻度が低い高信頼性のタイプのドライブと（例えば、ファイバチャネルインターフェースを有するドライブ）、そのタイプのドライブよりも書き込みエラーの発生頻度が高い低信頼性のタイプのドライブ（例えば、ＡＴＡインターフェースを有するドライブ）とがある。一般に、低信頼性のドライブの方が安価であるので、記憶制御装置３１５のコストを抑えたい場合には、低信頼性のドライブの方が採用されやすい。
【００３１】
具体的には、例えば、低信頼性のドライブでは、ディスクへの書込みエラーが、高信頼性のドライブよりも発生しやすい。ディスクへの書込みエラーが発生した場合には、例えば、RAIDグループからの再計算により（例えば、RAIDレベル５におけるパリティデータを用いる手法により）、データを復元し、復元されたデータをディスクへ再度書き込む方法が考えられる。しかし、データを復元するための処理を実行する場合には、単位時間あたりに処理されるＩＯ要求の数が減ってしまう。
【００３２】
そこで、本実施形態では、以下に説明する工夫により、記憶制御装置３１５の性能劣化が抑えられる。
【００３３】
ホスト装置３０１から送信されたライトデータは、キャッシュ領域３０７に書き込まれる。キャッシュ領域３０７上のライトデータは、キャッシュ取得部３２５によって取得される。キャッシュ取得部３２５によって取得されたＫ個（Ｋは一以上の整数）のライトデータは、記憶メディアアダプタ３０９の送受信部３２３から記憶メディア装置３１１に送信される。キャッシュ取得部３２５は、プロセッサ３０３に読み込まれるコンピュータプログラムであってもよいし、ハードウェア回路であってもよいし、コンピュータプログラムとハードウェアとの組み合わせであってもよい。
【００３４】
キャッシュ領域３０７から取得されたＫ個のライトデータについて、第一比較対象生成部３２５が、第一比較対象を生成し、生成された第一比較対象を第一比較対象記憶域３１７に書き込む。例えば、第一比較対象生成部３２５は、Ｋ個のライトデータを用いてＣＲＣ（Cyclic Redundancy Check）を計算し、計算されたＣＲＣを、第一比較対象記憶域３１７に書き込む。
【００３５】
第一比較対象記憶域３１７には、第一比較対象と共にその第一比較対象のためのＩＤが記録される。例えば、送受信部３２３により、Ｋ個のライトデータを含んだデータフレームが生成され、生成されたデータフレームが記憶メディア装置３１１に送信されるが、その場合、ＩＤには、データフレームの送信順番を表すフレーム番号と、そのＩＤに対応した第一比較対象がどのライトデータに基づいて作成されたかを表すＷＤサブＩＤとが含まれる。ＩＤには、更に、シーケンスサブＩＤが含まれてもよい。これにより、ＩＤから、どのシーケンスのどのデータフレームにどのＷＤが含まれているかを、特定することができる。ＩＤは、例えば、送受信部３２３によって書き込まれても良い。
【００３６】
記憶メディア装置３１１の送受信部３２４が、データフレームを記憶メディアアダプタ３０９から受ける。データフレーム内の各ライトデータは、データ記憶域３２１に格納される。
【００３７】
アドレス指定部３３５が、データ記憶域３２１のアドレスを指定する。アドレス指定部３３５は、例えば、記憶メディア装置３１１のファームウェアにより実現することができる。なお、例えば、データ記憶域３２１の一つのアドレスには、一つのライトデータが格納される。
【００３８】
記憶メディア書込み部３３１が、指定されたアドレスからライトデータを読み出していき、読み出されたライトデータを記憶メディア３１３に書き込む。データ記憶域３２１の指定されたアドレスからＫ個のライトデータが順次読み出される場合、第二比較対象生成部３３３が、それらＫ個のライトデータについての第二比較対象を生成し、生成された第二比較対象を第二比較対象記憶域３１９に書き込む。この第二比較対象も、ＣＲＣとすることができる。
【００３９】
第二比較対象記憶域３１９には、第二比較対象と共に、それのＩＤが書き込まれても良い。このＩＤは、例えば、送受信部３２４により書き込まれても良い。このＩＤには、例えば、データフレームのフレーム番号が含まれていればよく、このＩＤに対応した第二比較対象がどのライトデータに基づいて作成されたかを表すＷＤサブＩＤ（例えば、ＷＤが格納される場所を表す論理ブロックアドレス）まで含まれていなくてもよい。
【００４０】
送受信部３２４は、第二比較対象とそれのＩＤとのセットを、送受信部３２３に送信する。送信されるセットは、一個でも複数個でもよいが、記憶メディア装置３１１から送信されるデータのサイズは、送受信部３２３から送信されるデータフレームのデーサイズよりも小さい方が好ましいと考えられる。
【００４１】
送受信部３２３が受信したセットに含まれているＩＤに対応したＩＤが、第一比較対象記憶域３１７から検索される。それにより、検索されたＩＤに対応した第一比較対象が特定される。比較部３２７は、特定された第一比較対象と、上記受信したセットに含まれている第二比較対象との比較を行う。
【００４２】
ここで、例えば、図１２に示すように、Ｋ＝２の場合において、ライトデータＣ及びライトデータＤが含まれたデータフレームが送信され、且つ、ライトデータＣ及びライトデータＤが間違いなくデータ記憶域３２１から読み出されたならば、第一比較対象も第二比較対象も、ライトデータＣ及びライトデータＤに基づいて作成されたものなので、比較の結果として、適合を得ることができる。しかし、ライトデータＣ及びライトデータＤが含まれたデータフレームが送信されたにも関わらず、アドレスの指定ミス等により、誤って、データ記憶域３２１からライトデータＢ及びライトデータＣが読み出されたならば、第一比較対象はライトデータＣ及びライトデータＤに基づいて作成されたものであるの対し、第二比較対象はライトデータＢ及びライトデータＣに基づいて作成されたものとなるので、比較の結果として、不適合が得られてしまう。
【００４３】
比較の結果として不適合が得られた場合、図１２に一点鎖線で示すように、キャッシュ取得部３２５が、再度、ライトデータＣ及びライトデータＤを取得する。具体的には、例えば、適合が得られなかった第一比較対象に対応付けられているＩＤから、その第一比較対象がどのライトデータに基づいて作成されたものであるかが特定され、キャッシュ取得部３２５は、特定されたライトデータＣ及びＤをキャッシュ領域３０７から取得される。この場合には、その取得されたライトデータＣ及びＤを含んだデータフレームが送受信部３２３から再送される。
【００４４】
一方、比較の結果として、適合が得られた場合、図１２に二点鎖線で示すように、データ削除部３４１が、ライトデータＣ及びＤをキャッシュ領域３０７から消去する。具体的には、例えば、適合が得られた第一比較対象に対応付けられているＩＤから、その第一比較対象がどのライトデータに基づいて作成されたものであるかが特定され、データ削除部３４１は、特定されたライトデータＣ及びＤをキャッシュ領域３０７から消去する。
【００４５】
この実施形態によれば、記憶メディア３１１に正しくライトデータが書き込まれたか否かが検出されるまで、記憶制御装置３１５に、記憶メディア３１１に書き込まれるべきライトデータが残っており、書込みエラーが検出された場合には、そのライトデータを再度使用すれば済む。このため、ライトデータの復元のための処理が不要になるので、記憶制御装置３１５の性能劣化が抑えられる。
【００４６】
また、この実施形態によれば、記憶メディア３１３にＫ個のライトデータが書き込まれる際に、それらＫ個のライトデータについての第二比較対象が生成される。生成された第二比較対象が、送受信部３２３に返送され、書込みエラーの有無の検出のための比較が行われる。これにより、ホスト装置３０１からのＩＯ要求に応答してライトデータを記憶メディア３１３から読み出すよりも前の時点で、書込みエラーの有無の検出を行うことができる。なお、ＩＤと第二比較対象とのセットは、第二比較対象記憶域３１９に書かれたときに直ぐに、返送されても良いし、或る程度の数が溜まったときに複数のセットが返送されてもよい。前者であれば、書込みエラーの有無が早い時点で検出することができ、後者であれば、送受信部３２４から送受信部３２３へのデータフレームに生じ得る空きのサイズを小さくすることができる。
【００４７】
以上が、本実施形態についての説明である。
【００４８】
なお、この実施形態では、第一比較対象生成部３２５等の上記各部は、コンピュータプログラムであってもよいし、ハードウェア回路であってもよいし、コンピュータプログラムとハードウェアとの組み合わせであってもよい。
【００４９】
また、第一比較対象生成部３２５、第一比較対象記憶域３１７及び比較部３２７の少なくとも一つは、記憶メディアアダプタ３０９に備えられてもよいし、記憶メディアアダプタ３０９とは別の場所に備えられても良い。
【００５０】
また、第二比較対象生成部３３３及び第二比較対象記憶域３１９の少なくとも一方は、記憶メディア装置３１１に備えられても良いし、記憶メディア装置３１１とは別の場所に備えられても良い。
【００５１】
また、記憶メディア装置３１１が、ハードディスクドライブそれ自体或いはそのドライブを備えた装置である場合には、そのハードディスクドライブは、高信頼性のドライブ（例えばファイバチャネルドライブ）であっても、低信頼性のドライブ（例えば、ＳＡＳ（Serial Attached SCSI）ドライブ或いはＳＡＴＡ（Serial ATA）ドライブ）であっても良い。しかし、本実施形態に係る記憶制御装置３１５は、記憶メディアへの書込みエラーが検出されてそれをカバーする場合、記憶制御装置３１５の性能の劣化を抑えられるので、低信頼性のドライブにより有効であると考えられる。
【００５２】
以下、図面を参照して、上述した実施形態についてのより具体的な実施例を説明する。
【実施例１】
【００５３】
図１は、本発明の一実施形態の一実施例に係る記憶制御装置の構成例を示す。
【００５４】
記憶制御装置１００は、例えばRAID（Redundant Array of Independent Disks）のようなディスクアレイ装置である。記憶制御装置１００は、例えば、記憶制御装置１００が行う処理を制御する制御部１０１と、RAIDグループ２１０と、サービスプロセッサ（SVP）２８１とを備える。制御部１０１は、例えば、一又は複数のディスクアダプタ（以下、ＤＫＡ）１２０と、一又は複数のチャネルアダプタ（以下、ＣＨＡ）１１０と、キャッシュメモリ１３０と、共有メモリ１４０と、スイッチング制御部２７０とを備える。
【００５５】
RAIDグループ２１０は、複数のハードディスク装置１５０を含んでおり、例えば、RAID１やRAID５等のRAIDに基づく冗長記憶を提供する。各ハードディスク装置１５０は、例えば、ハードディスクドライブそれ自体であってもよいし、キャニスタ（図示せず）内にハードディスクドライブを備えた装置であってもよい。各ハードディスク装置１５０が提供する物理的な記憶領域上には、論理的な記憶領域である論理ボリューム（以下、ＶＯＬ）６を少なくとも一つ以上設定可能である。ＶＯＬ６には、ホスト装置１８０から送信される複数のライトデータが記憶することができる。
【００５６】
各ＤＫＡ１２０は、各ハードディスク装置１５０との間のデータ授受を制御するものである。各ＤＫＡ１２０は、例えば、マイクロプロセッサ（以下、ＭＰ）１２０Ｍ、ROM、RAM等を含んだマイクロコンピュータシステムとして構成される。また、各ＤＫＡ１２０は、ダイレクトメモリアクセスのためのコントローラ１２０Ｄや、ハードディスク装置１５０へのデータ転送を制御する転送制御部３を備えることもできる。ＤＫＡ１２０は、例えば、記憶制御装置１００内に複数設けられる。転送制御部３は、例えば、SCSIやiSCSI等に基づいて、ハードディスク装置１５０との間でブロックレベルのデータ転送を行う。
【００５７】
各ＣＨＡ１１０は、接続パス１９０を介して、ホスト装置１８０からライトデータを受信する。接続パス１９０は、通信ネットワークであっても良いし、専用のパスラインであっても良い。各ＣＨＡ１１０は、ＤＫＡ１２０と同様に、マイクロコンピュータシステムとして構成可能である。例えば、各ＣＨＡ１１０は、ＭＰ１１０Ｍや、ＤＭＡコントローラ１１３や、転送制御部１１１を備える。ＤＭＡコントローラ１１３は、ホスト装置１８０からのライトデータにＬＡ（論理ブロックアドレス）を付加したり、ホスト装置１８０へ送信すするデータからＬＡを除去したりするＬＡ付加／削除部１１２を備える。以下、ホスト装置１８０からのライトデータにＬＡ等の別のデータが付加されたものを、「データユニット」と表記する。
【００５８】
キャッシュメモリ（以下、「ＣＭ」と記載する場合あり）１３０は、例えば、揮発または不揮発の半導体メモリから構成することができる。キャッシュメモリ１３０は、ホスト装置１８０からのライトデータや、ＶＯＬ６から読み出されたライトデータを記憶することができる。
【００５９】
共有メモリ（以下、「ＳＭ」と記載する場合あり）１４０は、例えば、不揮発または揮発の半導体メモリから構成することができる。共有メモリ１４０は、例えば、ホスト装置１８０から受信した各種コマンドや、記憶制御装置１００の制御に使用する制御情報等を記憶する。コマンドや制御情報等は、複数の共有メモリ１４０によって、冗長記憶されてもよい。なお、キャッシュメモリ１３０と共有メモリ１４０とは、それぞれ別々のメモリとして構成することもできるし、あるいは、メモリの一部をキャッシュメモリ領域として使用し、同一のメモリの別の一部を共有メモリ領域として使用することもできる。
【００６０】
スイッチング制御部２７０は、各ＤＫＡ１２０と、各ＣＨＡ１１０と、キャッシュメモリ１３０と、共有メモリ１４０とを、それぞれ相互に接続するものである。スイッチング制御部２７０は、例えば、超高速クロスバスイッチ等から構成することができる。
【００６１】
ＳＶＰ（Service Processor）２８１は、例えば内部ネットワーク（例えばＬＡＮ）２８２を介して、記憶制御装置１００内の各部の状態を収集し監視する。SVP２８１は、収集した内部状態の情報を生データのままで、あるいは、統計処理したデータとして、外部の管理端末（不図示）に出力する。ＳＶＰ２８１が収集可能な情報としては、例えば、装置構成、電源アラーム、温度アラーム、入出力速度（例えば単位はＩＯＰＳ（ＩＯ要求数／秒））等が挙げられる。システム管理者は、管理端末（図示せず）からＳＶＰ２８１を介して、RAID構成の設定変更や、各種パッケージ（例えば、ＣＨＡ１１０やＤＫＡ１２０）の閉塞処理等を行うことができる。
【００６２】
次に、記憶制御装置１００が行う処理の一例について説明する。ＣＨＡ１１０は、接続パス１９０を介して、ホスト装置１８０からライト命令及びライトデータを受信する。受信されたライト命令は共有メモリ１４０に記憶され、受信されたライトデータはキャッシュメモリ１３０に記憶される。ＤＫＡ１２０は、共有メモリ１４０を随時参照している。ＤＫＡ１２０は、共有メモリ１４０に記憶されている未処理のライト命令を発見すると、このライト命令に従って、キャッシュメモリ１３０からライトデータを読み出し、アドレス変換等を行う。ＤＫＡ１２０は、ライト命令によって指定されたＶＯＬ６を構成する各ハードディスク装置１５０に、ライトデータを書き込む。
【００６３】
ホスト装置１８０からのリード命令を処理する場合を説明する。ＣＨＡ１１０は、ホスト装置１８０からリード命令を受信すると、このリード命令を共有メモリ１４０に記憶させる。ＤＫＡ１２０は、共有メモリ１４０内で未処理のリード命令を発見すると、このリード命令によって指定されたＶＯＬ６を構成する各ハードディスク装置１５０からライトデータを読み出す。ＤＫＡ１２０は、読み出したライトデータをキャッシュメモリ１３０に記憶させる。また、ＤＫＡ１２０は、要求されたライトデータの読出しが完了した旨を、共有メモリ１４０を介して、ＣＨＡ１１０に通知する。ＣＨＡ１１０は、キャッシュメモリ１３０からライトデータを読み込み、ホスト装置１８０に送信する。
【００６４】
以上が、本実施例における記憶制御装置１００の構成例である。なお、言うまでも無いが、記憶制御装置１００は、上述した構成に限定する必要は無い。例えば、記憶制御装置１００は、制御情報やライトデータ等を記憶することができるメモリと、ホスト装置１８０に対するインターフェース装置（以下、「Ｉ／Ｆ」と略記）と、ハードディスク装置１５０に対するＩ／Ｆと、メモリ上の情報に基づきそれらのＩ／Ｆを介した通信等を制御する制御部（例えばＣＰＵ）とにより構成されてもよい。
【００６５】
図２は、ＤＫＡの構成例とハードディスク装置の構成例とを示す。
【００６６】
ＤＫＡ１２０は、例えば、ファイバチャネルループを介して、ハードディスク装置１５０に接続される。ＤＫＡ１２０は、メモリインターフェース１と、ローカルメモリ９と、転送制御部３と、比較器１３とを備える。
【００６７】
メモリインターフェース１は、ＣＭ１３０やＳＭ１４０に対するインターフェース装置であり、ＣＭ１３０やＳＭ１４０との間で情報の授受を行う。
【００６８】
ローカルメモリ９は、例えば、揮発または不揮発の半導体メモリから構成することができる。ローカルメモリ９は、ＣＯＭ／ＣＲＣ格納領域１１を有する。ＣＯＭ／ＣＲＣ可能領域１１には、送信エリア１１Ｔと、返信エリア１１Ｒとが存在する。送信エリア１１Ｔには、フレーム番号と、ＣＲＣと、ハードディスク装置に対するコマンド（以下、「ＣＯＭ」と表記）とを含んだ第一の情報セットが一又は複数個記録される。返信エリア１１Ｒには、返信フレーム４３に含まれているフレーム番号、ＣＯＭ及びＣＲＣ´の第二の情報セットが、一又は複数個記録される。
【００６９】
ここで、返信フレーム４３とは、ハードディスク装置１５０からＤＫＡ１２０に送信されるフレームのことである。返信フレーム４３には、ＤＫＡ１２０に対するコマンド（以下、「ＣＯＭ´」と表記）と、一又は複数の第二情報セット（すなわち、フレーム番号、ＣＯＭ及びＣＲＣ´を含んだ情報セット）と、この返信フレーム４３におけるＣＲＣ（以下、これを「ＣＲＣ´´」と表記）とが含まれている。
【００７０】
返信フレーム４３に対し、送信フレーム４１が存在する。送信フレーム４１は、ＤＫＡ１２０からハードディスク装置１５０に送信されるフレームである。送信フレーム４１には、ＣＯＭと、Ｋ個のデータユニットと、Ｋ個のデータユニットに基づいて生成されたＣＲＣとが含まれている。データユニットには、ホスト装置１８０からのライトデータと、そのライトデータについてのＬＡ（ＣＨＡ１１０において付加されたＬＡ）とが含まれる。また、データユニットには、データユニットを所定サイズにするためのヌルデータを含めることもできる。
【００７１】
以下、単に「ＣＲＣ」と言う場合には、ＤＫＡ１２０からハードディスク装置１５０に送信されるＫ個のデータユニットに基づいて生成されたＣＲＣを表すものとする。それに対し、「ＣＲＣ´」と言う場合には、ハードディスク装置１５０における後述のドライブキャッシュメモリ３５から読み出されたＫ個のデータユニットに基づいて生成されたＣＲＣを表すものとする。また、「ＣＲＣ´´」と言う場合には、返信フレーム４３におけるＣＲＣを表すものとする。
【００７２】
転送制御部３は、送信フレーム４１の送信順序を管理するフレーム順序管理部５と、少なくともＫ個のデータユニットを蓄積することができる容量を有したデータバッファ７と、データバッファ７に蓄積されたＫ個のデータユニットに基づいてＣＲＣを計算するＣＲＣ計算部１５と、送信フレーム４１に含められるＣＯＭを生成するＣＯＭ生成部１７とを備える。フレーム順序管理部５、ＣＲＣ計算部１５及びＣＯＭ生成部１７は、ハードウェア回路、コンピュータプログラム及びそれらの組み合わせであってもよい。
【００７３】
比較器１３は、送信エリア１１Ｔにおける或る第一情報セット中のＣＲＣ及びＣＯＭと、その或る第一情報セットに対応した、返信エリア１１Ｒにおける第二情報セット中のＣＲＣ´及びＣＯＭとを比較し、比較の結果を出力する装置である。比較器１３は、比較の結果を例えばＭＰ１２０Ｍに出力することができる。
【００７４】
ハードディスク装置１５０は、ドライブキャッシュメモリ（以下、ドライブＣＭ）３５と、転送制御部２３と、ＣＲＣ´計算部２１と、ディスクリーダライタ４０と、ディスク１５０Ｄとを備える。
【００７５】
ドライブＣＭ３５は、例えば、揮発または不揮発の半導体メモリから構成することができる。ドライブＣＭ３５は、データ格納空間３７と、ＣＲＣ´／ＣＯＭ格納空間３９とを有する。データ格納空間３７は、一又は複数のデータユニットを記憶するための複数のサブ空間と、複数のサブ空間をそれぞれ特定するための複数のアドレスとを有する。ＣＲＣ´／ＣＯＭ格納空間３９は、ＣＲＣ´とＣＯＭとを含んだ第三の情報セットを記憶するための複数のサブ空間と、複数のサブ空間をそれぞれ特定するための複数のアドレスとを有する。
【００７６】
転送制御部２３は、送信フレーム４１の送信順序を管理するフレーム順序管理部２５と、少なくともＫ個のデータユニットを蓄積することができる容量を有したデータバッファ２７と、ドライブＣＭ３５を管理するメモリ管理部２９と、返信フレーム４３におけるＣＲＣ´´を計算するＣＲＣ´´計算部３１と、返信フレーム４３に含められるＣＯＭ´を生成するＣＯＭ´生成部３３とを備える。フレーム順序管理部２５、ＣＲＣ´´計算部３１、メモリ管理部２９、及びＣＯＭ´生成部３３は、ハードウェア回路、コンピュータプログラム及びそれらの組み合わせであってもよい。メモリ管理部２９は、データ格納空間３７に対して読出し開始のアドレスを指定したり、ＣＲＣ´／ＣＯＭ格納空間３９に未読の第三情報セットがどれだけ蓄積されたかを監視したり等を行う。
【００７７】
ＣＲＣ´計算部２１は、ドライブＣＭ３５から読み出されてディスク１５０Ｄに書き込まれるＫ個のデータユニットに基づくＣＲＣ´を計算する。
【００７８】
ディスクリーダライタ４０は、データ格納空間３７に対して指定された読出し開始アドレスからデータユニットを読み出し始め、読み出したデータユニットをディスク１５０Ｄに書き込む。ディスクリーダライタ４０は、読み出し開始アドレスからデータユニットを読んだ場合には、次のアドレスからデータユニットを読む。これを繰り返すことによって、ディスクリーダライタ４０は、複数個のデータユニットをディスク１５０Ｄに書き込むことができる。ディスクリーダライタ４０は、例えば、ディスク上に位置合わせされるヘッドや、ヘッドの位置を制御する位置制御部を備えた装置である。
【００７９】
図３は、ディスクへの書込みエラーの有無が検出されるまでの処理の流れの一例と、その検出結果に応じて行われる処理の流れの一例とを示す。以下、図２及び図３を参照して、それらの処理の流れを説明する。また、適宜、図４乃至図１１を参照して、それらの処理の流れにおいてどの記憶域がどのように更新されるかも説明する。なお、図２に記載の（Ａ）乃至（Ｆ）は、図３に記載の（Ａ）乃至（Ｆ）にそれぞれ対応する。また、図４乃至図１１において、データユニットは、「ＤＡＴＡ」と表記され、且つ、フレーム番号がＮである送信フレーム４１に含められるデータユニットは、「ＤＡＴＡ（Ｎ）」と表記される。また、図４乃至図１１において、フレーム番号がＮである送信フレーム４１に含められるＣＯＭは、「ＣＯＭ（Ｎ）」と表記され、その送信フレーム４１に含められるＣＲＣは、「ＣＲＣ（Ｎ）」と表記され、その送信フレーム４１に含められていたはずのＫ個のデータユニットに基づいて生成されたＣＲＣ´は「ＣＲＣ´（Ｎ）」と表記される。ここで、「含められていたはずの」としたのは、データ格納空間３７に対してアドレス指定ミスがあった等の理由により、本来読み出されるはずのＫ個のデータユニットとは別のＫ個のデータユニットが読み出されてしまうことがあり得るからである。
【００８０】
ＣＨＡ１１０が、ホスト装置１８０から受信したライトデータにＬＡを付加してデータユニットを生成し、生成したデータユニットを、図４に示すように、ＣＭ１３０上の所定のキャッシュ領域１３１に書く。また、ＣＨＡ１１０が、そのデータユニットをディスクに書き込むことの書込み要求を、ＳＭ１４０上の所定の制御情報格納域１４１に書く。
【００８１】
ＤＫＡ１２０は、定期的に制御情報格納域１４１を参照し、未処理の要求を検出し、その要求が読み出し要求の場合には（ステップＳ１でＮＯ）、例えば前述した読み出し処理を行い、書込み要求である場合には（Ｓ１でＹＥＳ）、その書込み要求に応答した処理の実行を開始する。
【００８２】
まず、ＤＫＡ１２０のメモリインターフェース１が、キャッシュ領域１３１からデータユニットを取得する（Ｓ２）。そのデータユニットには、ＣＭ１３０とＤＫＡ１２０間のコマンド（図２では「コマンドＡ」と表記）及びＣＲＣ（図２では「ＣＲＣ：Ａ」と表記）が付加されている。これらのコマンド及びＣＲＣは、メモリインターフェース１の受信後に、外される。メモリインターフェース１が受信したデータユニットは、転送制御部３のデータバッファ７に蓄積される。
【００８３】
Ｋ個のデータユニットがデータバッファ７に蓄積されたならば、転送制御部３が、プロトコル変換処理として、ハードディスク装置への送信プロトコルに従う送信フレーム４１の生成処理を開始する（Ｓ３）。例えば、フレーム番号０の送信フレーム４３が送信される場合、ＣＲＣ計算部１５が、その送信フレーム４３に含められるＫ個のデータユニットに基づいてＣＲＣ（０）を計算し、ＣＯＭ生成部１７が、その送信フレーム４３に含めるＣＯＭ（０）を生成する（Ｓ４）。計算されたＣＲＣ（０）及び生成されたＣＯＭ（０）は、送信エリア１１Ｔに格納される（Ｓ５）。また、その際、例えばフレーム順序管理部５によって、送信エリア１１Ｔ上で、ＣＲＣ（０）及びＣＯＭ（０）のセットにフレーム番号０が対応付けられる。また、例えばＭＰ１２０Ｍによって、送信エリア１１Ｔ上で、ＣＲＣ（０）及びＣＯＭ（０）のセットにＬＡ群が対応付けられる。ここで言う「ＬＡ群」とは、ＣＲＣがどのＫ個のデータユニットに基づいて生成されたかを特定可能にするために、ＣＲＣの生成に使用されたＫのデータユニットにそれぞれ含まれているＫ個のＬＡを言う。図４乃至図１１では、ＣＲＣ（Ｎ）に対応したＬＡ群を「ＬＡ（Ｎ）群」と表記される。このように、フレーム番号０、ＣＲＣ（０）、ＣＯＭ（０）及びＬＡ（０）群が書かれた様子は、図５に示される。
【００８４】
転送制御部３は、生成されたＣＯＭ（例えばＣＯＭ（０））と、計算されたＣＲＣ（例えばＣＲＣ（０））と、そのＣＲＣの計算に使用されたＫ個のデータユニットとを含んだ送信フレーム４１を生成し、その送信フレーム４１をハードディスク装置１５０に送信する（Ｓ６）。
【００８５】
ハードディスク装置１５０の転送制御部２３が、送信フレーム４１を受信し、その送信フレーム４１に含まれているＫ個のデータユニットを、データ格納空間３７におけるＫ個のサブ空間にそれぞれ格納する（Ｓ７）。また、転送制御部２３は、送信フレーム４１内のＣＯＭを、ＣＲＣ´／ＣＯＭ格納空間３９に格納する。Ｋ個のデータユニットとＣＯＭとがドライブＣＭ３５に格納された様子を図６に示す。
【００８６】
ディスク１５０Ｄへの書込み要求が発行される（Ｓ８）。例えば、転送制御部２３が、ディスクリーダライタ４０に対し、その書込み要求を発行する。この処理は、Ｓ７の後に直ちに行われても良いし、メモリ管理部２９によって、データ格納空間３７に所定個数以上のデータユニットが格納されたと判断された場合に行われても良い。
【００８７】
データ格納空間３７に対して読み出し開始アドレスが指定される（Ｓ９）。これは、例えば、メモリ管理部２９が、ハードディスク装置１５０のファームウェアにより行うことができる。
【００８８】
ディスクリーダライタ４０は、データ格納空間３７に対して指定された読出し開始アドレスから順次Ｋ個のデータユニットを読み出し始める。ディスクリーダライタ４０は、読み始めたデータユニット内のＬＡに基づいて、ヘッドの位置あわせ処理や、データユニットが書かれるディスクの回転処理を行う（Ｓ１０）。或る時間をかけて、ヘッドの位置決めが完了する（Ｓ１３）。ヘッドの位置あわせ処理が開始されてヘッドの位置決めが完了するまで、或る程度の時間（例えば数秒）かかる。そこで、処理速度の向上のために、ヘッドの位置決め処理に並行して、後述のＳ１１及びＳ１２の処理が行われる。
【００８９】
すなわち、ＣＲＣ´計算部２１が、ディスクリーダライタ４０により指定された読み出し開始アドレスから順次読み出されるＫ個のデータユニットに基づいてＣＲＣ´を計算する（Ｓ１１）。この処理は、ヘッド位置決め処理に要する時間よりも短い時間（例えば数ミリ秒）で行うことができる。ＣＲＣ´計算部２１は、計算したＣＲＣ´を、ＣＲＣ´／ＣＯＭ格納空間３９上で、ＣＲＣ´が対応付けられていないＣＯＭに対応付ける（図３のＳ１２）。例えば、計算されたＣＲＣ´が、フレーム番号０の送信フレーム４１内のＫ個のデータユニットに基づいて計算されたＣＲＣ´（０）の場合には、そのＣＲＣ´（０）は、ＣＯＭ（０）に対応付けられる。その様子と、読み出し開始アドレスが指定された様子とを、図７に示す。
【００９０】
ヘッドの位置決め完了後、読み出されたデータユニットがディスクへ書き込まれる（Ｓ１４）。
【００９１】
送信フレーム４１が受信される都度に、上述した処理が行われるので、データ格納空間３７及びＣＲＣ´／ＣＯＭ格納空間３９に登録される情報の量が増える。その様子を、図８に示す。
【００９２】
メモリ管理部２９によって、読み出されたデータユニットがデータ格納空間３７に存在するデータユニットで最終のものであるか、或いは、所定個数以上のＣＲＣ´及びＣＯＭのセットがＣＲＣ´／ＣＯＭ格納空間３９に格納されたか否かが判断される（Ｓ１５）。
【００９３】
Ｓ１５において、読み出されたデータユニットがデータ格納空間３７に存在するデータユニットで最終のものである場合には、ディスクへの書込みが完了する（Ｓ１６Ａ）。
【００９４】
また、Ｓ１５において、読み出されたデータユニットが最終のものであることと、所定個数以上のＣＲＣ´及びＣＯＭのセットが格納されたこととの少なくとも一方が判断された場合には、返信フレームの生成処理及び送信処理が行われる（Ｓ１６Ｂ）。具体的には、例えば、ＣＯＭ´生成部３３が、返信フレーム４３に含めるＣＯＭ´を生成する。転送制御部２３が、所定個数（例えば図８ではＸ個）のＣＲＣ´及びＣＯＭを読み出し、フレーム番号、ＣＲＣ´及びＣＯＭを含んだ情報セットを所定個数準備する（所定個数未満であってもよい）。ＣＲＣ´´計算部３１が、返信フレーム４３についてのＣＲＣ´´を計算する。転送制御部２３が、生成されたＣＯＭ´と、準備された所定個数の情報セットと、計算されたＣＲＣ´´とを含んだ返信フレーム４３を生成し、生成された返信フレーム４３をＤＫＡ１２０に送信する。なお、図４乃至図１１では、ＣＲＣ´／ＣＯＭ格納空間３９には、送信エリア１１Ｔ及び返信エリア１１Ｒとは異なり、フレーム番号が格納されないが、どのＣＲＣ´及びＣＯＭがどのフレーム番号に対応しているかは、フレーム順序管理部２５により管理することができ、それにより、返信フレーム４３において、各ＣＲＣ´ＣＯＭのセットに対して正しいフレーム番号を付加することができる。これは、送信エリア１１Ｔ及び返信エリア１１Ｒについても同様である。もちろん、ＣＲＣ´／ＣＯＭ格納空間３９に、送信エリア１１Ｔ及び返信エリア１１Ｒと同様に、フレーム番号がＣＲＣ´及びＣＯＭのセットに対応付けられても良い。例えば、送信フレーム４１を受信する都度に、フレーム順序管理部２５が、フレーム番号をＣＲＣ´／ＣＯＭ格納空間３９に記録しても良い。
【００９５】
ＤＫＡ１２０の転送制御部３は、返信フレーム４３を受信した場合、その返信フレーム内の情報セット（フレーム番号、ＣＲＣ´及びＣＯＭ）を、前述した第二情報セットとして返信エリア１１Ｒに格納する（Ｓ１７）。
【００９６】
比較機１３が、返信エリア１１Ｒに格納された各ＣＲＣ´及びＣＯＭと、送信エリア１１Ｔに格納されている各ＣＲＣ及びＣＯＭとを比較する（Ｓ１８）。具体的には、例えば、比較機１３は、返信エリア１１Ｒにおける第二情報セット中のフレーム番号と同じフレーム番号を含んだ第一情報セットを探し、その第二情報セット内のＣＲＣ´及びＣＯＭと、探し出された第一情報セット内のＣＲＣ及びＣＯＭとを比較し、比較の結果を、例えばＭＰ１２０Ｍに出力する。返信フレーム４３内にＸ個の情報セットが格納されていた場合には、図９に例示するように、比較機１３は、Ｘ個のＣＲＣ´及びＣＯＭの各々と、Ｘ個のＣＲＣ及びＣＯＭの各々とについて、上記のような比較処理を行う。
【００９７】
例えば、Ｓ９において、ＣＯＭ（Ｎ）及びＣＲＣ（Ｎ）に対応したＫ個のデータユニットについて、読み出し開始アドレスとして正しいアドレスが指定された場合には、ＣＯＭ（Ｎ）及びＣＲＣ（Ｎ）に対応したＫ個のデータユニットがデータ格納空間３７から読み出され、そのＫ個のデータユニットに基づいてＣＲＣ´（Ｎ）が生成される。故に、この場合には、ＣＲＣ´（Ｎ）及びＣＯＭ（Ｎ）と、ＣＲＣ（Ｎ）及びＣＯＭ（Ｎ）とは整合する。しかし、読み出し開始アドレスとして誤ったアドレスが指定された場合には、ＣＯＭ（Ｎ）及びＣＲＣ（Ｎ）に対応した正しいＫ個のデータユニットとは別の誤ったＫ個のデータユニット（例えば、正しいＫ個のデータユニットとは全部又は一部が異なるＫ個のデータユニット）がデータ格納空間３７から読み出され、その誤ったＫ個のデータユニットに基づいてＣＲＣ´（Ｎ）が生成されてしまう。故に、この場合には、ＣＲＣ´（Ｎ）及びＣＯＭ（Ｎ）と、ＣＲＣ（Ｎ）及びＣＯＭ（Ｎ）とは不整合となる。また、上記のようにアドレス指定にミスが生じた等のエラーが発生した場合には、比較処理が行われないまま送信エリア１１Ｔに残ってしまうＣＲＣも存在する可能性がある。
【００９８】
Ｓ１８の比較の結果、不整合が得られた場合には、例えば、ＭＰ１２０Ｍが、その不整合についてのＣＲＣ（Ｎ）に対応したＬＡ（Ｎ）群を用いて、ＣＲＣ（Ｎ）の計算に使用されたＫ個のデータユニットを特定し、特定されたＫ個のデータユニットをキャッシュ領域１３１に要求する（Ｓ１９）。これにより、そのＫ個のデータユニットが再度キャッシュ領域１３１からＤＫＡ１２０に送られる。なお、Ｓ１９の処理は、例えば、ＭＰ１２０Ｍが、送信エリア１１Ｔに、フレーム番号が連続していない未処理の第一情報セットを検出した場合に、その第一情報セット（例えば、フレーム番号が３，５，６，…となっていた場合には、フレーム番号３を含んだ第一情報セット）内のＣＲＣについても、行うことができる。
【００９９】
一方、Ｓ１８の比較の結果、整合が得られた場合には、例えば、ＭＰ１２０Ｍが、整合が得られたＣＲＣ（Ｎ）に対応したＬＡ（Ｎ）群を用いて、ＣＲＣ（Ｎ）の計算に使用されたＫ個のデータユニットを特定し、特定されたＫ個のデータユニットをキャッシュ領域１３１から削除することの要求（以下、デステージ要求）を、ＳＭ１４０の制御情報格納域１４１に書く（Ｓ２０）。これによりライト処理が終了する（Ｓ２１）。なお、そのデステージ要求がＣＨＡ１１０によって検出された場合、ＣＨＡ１１０が、上記特定されたＫ個のデータユニットをキャッシュ領域１３１から消去する。その様子を図１０に示す。
【０１００】
以上の一連の処理において、もし、キャッシュ領域１３１、送信エリア１１Ｔ、返信エリア１１Ｒ、データ格納空間３７及びＣＲＣ´／ＣＯＭ格納空間３９の少なくとも一つにおいて、満杯になってしまった場合には、図１１に例示するように、最も古い情報に最新の情報が上書きされる（ラップラウンド）。
【０１０１】
以上、上述した実施例によれば、ディスクへの書込みエラーの有無が検出されるまで、ＣＭ１３０に、ホスト装置１８０からのライトデータが残っている。このため、ディスクへの書込みエラーが生じた場合に、ディスクからのデータ読み出しを行って、正しいライトデータを復元するといったことを行うことなく、正しいライトデータをディスク１５０Ｄに書き込むことを行うことができる。
【０１０２】
また、上述した実施例によれば、たとえディスクへの書込みエラーが生じても、ＣＭ１３０に残っているライトデータを再度ディスク１５０Ｄに書き込むという処理を行えばよいので、記憶制御装置１００の性能劣化を抑えつつ、信頼性の高いデータの書込みを提供することができる。
【０１０３】
なお、上述した実施例では、記憶制御装置１００に備えられる複数のハードディスク装置１５０は、図１３Ａに例示するように、ＦＣドライブ（ファイバチャネルインターフェースを有するハードディスクドライブ）のみであっても良いし、図１３Ｂに例示するように、ＳＡＴＡドライブのみであっても良いし、図１３Ｃに例示するように、ＳＡＳドライブのみであっても良いし、図１３Ｄに例示するように、ＦＣドライブとＡＴＡドライブ（例えばＳＡＳドライブ又はＳＡＴＡドライブ）との混在であっても良い。ＦＣドライブとＡＴＡドライブとが混在する場合、例えば、ＤＫＡ１２０は、データユニットをディスクに格納する場合、その格納先がＡＴＡドライブの場合、図３に例示した処理を行うことを選択し、その格納先がＦＣドライブの場合には、図３に例示した処理を行わないことを選択しても良い。この選択処理は、例えば、ＭＰ１２０Ｍが、図３のＳ１でＹＥＳの後に、ＳＭ１４０上の制御情報を参照し（Ｓ４９９）、格納先がＦＣドライブかＡＴＡドライブかを判定し（Ｓ５００）、ＦＣドライブであると判定された場合には、図３のＳ２以降の処理を行わないことを選択し（Ｓ５０１）、ＡＴＡドライブであると判定された場合には、図３のＳ２以降の処理を行うことを選択することができる（Ｓ５０２）。制御情報には、例えば、ＶＯＬの番号（或いはＬＡ）と、そのＶＯＬ（又はＬＡ）を有するハードディスクドライブの種類との対応関係が記述されている。
【０１０４】
以上、本発明の好適な実施形態及び実施例を説明したが、本発明は、それらの実施形態及び実施例に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、ＣＲＣに代えて、複数のデータユニットのハッシュ値や圧縮データなど、別種の比較対象が採用されてもよい。また、Ｋの値は、固定値であっても良いし、可変値であってもよい。
【図面の簡単な説明】
【０１０５】
【図１】図１Ａは、本発明の一実施形態に係るデータ処理システムが行う第一の複製処理の概要を示す。図１Ｂは、そのデータ処理システムが行う第二の複製処理の概要を示す。
【図２】図２は、更新データ４の構成例を示す。
【図３】図３は、ライトデータＶＯＬ及びＪＮＬＶＯＬの構成例であって、特に、図２に例示した更新データ４が表す構成例を示す。
【図４】図４は、キャッシュ領域に複数のデータユニットが書かれた様子を示す。
【図５】図５は、送信エリアに第一の情報セットが書かれた様子を示す。
【図６】図６は、或るデータフレームに含まれているＫ個のデータユニットがデータ格納空間に書かれた様子と、そのデータフレームに含まれているＣＯＭがＣＲＣ´／ＣＯＭ格納空間に書かれた様子とを示す。
【図７】図７は、データ格納空間から読み出されたＫ個のデータユニットに基づいて生成されたＣＲＣ´がＣＲＣ´／ＣＯＭ格納空間に書かれた様子を示す。
【図８】図８は、所定個数以上のＣＲＣ´及びＣＯＭのセットがＣＲＣ´／ＣＯＭ格納空間に書かれた様子を示す。
【図９】図９は、返信エリア内の各ＣＲＣ´と送信エリア内の各ＣＲＣとが比較される様子を示す。
【図１０】図１０は、比較の結果として適合が得られたＣＲＣに対応するＫ個のデータユニットがキャッシュメモリから消去された様子を示す。
【図１１】図１１は、キャッシュ領域、送信エリア、返信エリア、データ格納空間及びＣＲＣ´／ＣＯＭ格納空間がそれぞれ満杯になった場合に行われるラップラウンドの様子を示す。
【図１２】図１２は、本発明の一実施形態の概要を示す。
【図１３】図１３Ａは、本発明の一実施形態の一実施例において、複数のハードディスク装置がＦＣドライブである場合の例を示す。図１３Ｂは、その実施例において、複数のハードディスク装置がＳＡＴＡドライブである場合の例を示す。図１３Ｃは、その実施例において、複数のハードディスク装置がＳＡＳドライブである場合の例を示す。図１３Ｄは、その実施例において、複数のハードディスク装置にＦＣドライブとＡＴＡドライブとが混在する場合の例を示す。
【符号の説明】
【０１０６】
３０１…ホスト装置、３０３…プロセッサ、３０５…ホストアダプタ、３０７…キャッシュ領域、３０９…記憶メディアアダプタ、３１１…記憶メディア装置、３１３…記憶メディア、３１５…記憶制御装置、３１７…第一比較対象記憶域、３１９…第二比較対象記憶域、３２１…データ記憶域、３２３…送受信部、３２４…送受信部、３２５…キャッシュ取得部、３２７…比較部、３３１…記憶メディア書込み部、３３３…第二比較対象生成部、３４１…データ削除部
【図１】
2006134064.tif 000003
【図２】
2006134064.tif 000004
【図３】
2006134064.tif 000005
【図４】
2006134064.tif 000006
【図５】
2006134064.tif 000007
【図６】
2006134064.tif 000008
【図７】
2006134064.tif 000009
【図８】
2006134064.tif 000010
【図９】
2006134064.tif 000011
【図１０】
2006134064.tif 000012
【図１１】
2006134064.tif 000013
【図１２】
2006134064.tif 000014
【図１３】
2006134064.tif 000015