(57)【要約】【課題】ライト・ベリファイ機能を伴うデータのライト時においてもライト性能が低下することがなく、ライト速度を向上させるとともに信頼性を向上させる。【解決手段】上位装置から受信するデータに関する命令が読出命令であるか否かを判断する命令解析部２２と、この命令が読出命令であると判断された場合において、この読出命令が強制アクセス命令であるか否かを判定する強制アクセス判定部２３と、命令が読出命令であり、且つ、強制アクセス命令であると判定された場合に、先読み機能を抑止する先読み抑止部２４とをそなえる。【選択図】図１
2010128887.tif 000002
【特許請求の範囲】
【請求項１】
データを記録可能な記録媒体をそなえ、該記録媒体からの該データの読み出し時に、該記録媒体における読出対象データに後続する所定サイズのデータを先読みデータとして読み出す先読み機能をそなえた記憶装置であって、
上位装置から受信する該データに関する命令を解析し、当該命令が読出命令であるか否かを判断する命令解析部と、
該命令解析部により該命令が該読出命令であると判断された場合において、当該読出命令が該記録媒体に対する強制的なアクセスを伴う強制アクセス命令であるか否かを判定する強制アクセス判定部と、
該命令解析部により該命令が該読出命令であると判断され、且つ、該強制アクセス判定部により該命令が強制アクセス命令であると判定された場合に、該先読み機能を抑止する先読み抑止部とをそなえることを特徴とする、記憶装置。
【請求項２】
該記録媒体における該書込命令にかかるデータの書込位置に関する情報を記憶する書込領域記憶部と、
該命令解析部が、該命令の解析を行なった結果、当該命令が該読出命令であると判断した場合に、該記録媒体における当該読出命令にかかるデータの読出位置に関する情報と、該書込領域記憶部に記憶された前記書込命令にかかるデータの書込位置に関する情報とを比較する比較部と、
該比較部による比較の結果、前記読出命令にかかるデータの読出位置に関する情報と、前記書込領域記憶部に記憶された書込命令にかかるデータの書込位置に関する情報とが一致しない場合に、該強制アクセス判定部による判定を抑止する強制アクセス判定抑止部とをそなえることを特徴とする、請求項１記載の記憶装置。
【請求項３】
データを記録可能な記録媒体をそなえ、該記録媒体からの該データの読み出し時に、該記録媒体における読出対象データに後続する所定サイズのデータを先読みデータとして読み出す先読み機能をそなえた記憶装置と、
該記憶装置に対して書込命令を送信することにより該データの書込制御を行なうとともに、該記憶装置に対して読出命令を送信することにより読出制御を行なう制御部とをそなえた記憶システムであって、
該制御部が、
該書込命令により該記録媒体に該データの書き込みを行なった後に、該記録媒体における当該データの書き込みを行なった領域から当該データを読み出すべく該読出命令を送信する読出命令送信部と、
該読出命令送信部によって送信される該読出命令に対して、当該読出命令が該記録媒体に対する強制的なアクセスを伴う強制アクセス命令（ＦＵＡ；Force Unit Access）であることを示す強制アクセス命令情報を設定する強制アクセス命令情報設定部と、
該記録媒体に書き込んだ該データと該記録媒体から読み出した該データとを比較するデータ比較部とをそなえ、
該記憶装置が、
該制御部から受信する該データに関する命令を解析し、当該命令が該読出命令であるか否かを判断する命令解析部と、
該命令解析部により該命令が該読出命令であると判断された場合において、当該読出命令が該強制アクセス命令であるか否かを判定する強制アクセス判定部と、
該命令解析部により該命令が該読出命令であると判断され、且つ、該強制アクセス判定部により該命令が該強制アクセス命令であると判定された場合に、該先読み機能を抑止する先読み抑止部とをそなえることを特徴とする、記憶システム。
【請求項４】
該記録媒体における該書込命令にかかるデータの書込位置に関する情報を記憶する書込領域記憶部と、
該命令解析部が、該命令の解析を行なった結果、当該命令が該読出命令であると判断した場合に、該記録媒体における当該読出命令にかかるデータの読出位置に関する情報と、該書込領域記憶部に記憶された前記書込命令にかかるデータの書込位置に関する情報とを比較する比較部と、
該比較部による比較の結果、前記読出命令にかかるデータの読出位置に関する情報と、前記書込領域記憶部に記憶された書込命令にかかるデータの書込位置に関する情報とが一致しない場合に、該強制アクセス判定部による判定を抑止する強制アクセス判定抑止部とをそなえることを特徴とする、請求項３記載の記憶システム。
【請求項５】
データを記録可能な記録媒体をそなえ、該記録媒体からの該データの読み出し時に、該記録媒体における読出対象データに後続する所定サイズのデータを先読みデータとして読み出す先読み機能をそなえた記憶装置の制御方法であって、
上位装置から受信する該データに関する命令を解析し、当該命令が読出命令であるか否かを判断する命令解析ステップと、
該命令解析ステップにおいて該命令が該読出命令であると判断された場合において、当該読出命令が該記録媒体に対する強制的なアクセスを伴う強制アクセス命令であるか否かを判定する強制アクセス判定ステップと、
該命令解析ステップにおいて該命令が該読出命令であると判断され、且つ、強制アクセス判定ステップにおいて該命令が該強制アクセス命令であると判定された場合に、該先読み機能を抑止する先読み抑止ステップとをそなえることを特徴とする、制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）装置等の記憶システムにおけるデータの書込処理時の制御技術に関する。
【背景技術】
【０００２】
図５は従来のＲＡＩＤシステムのハードウェア構成を模式的に示す図である。
ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）システムは、ディスク装置の故障等によるデータ損失の防止や、処理性能の向上のために、複数のディスク装置（例えば、ハードディスク装置）を組み合わせて構成されたディスクアレイシステムである。
図５に示す例においては、情報処理装置５０１に接続されたＲＡＩＤシステム５０２が示されており、このＲＡＩＤシステム５０２は、ＲＡＩＤ装置５０３およびディスク装置群５０４をそなえて構成されている。
【０００３】
ディスク装置群５０４は複数のＨＤＤ（Hard disk drive）５０５をそなえて構成されている。ＨＤＤ５０５は、磁性体を塗布した円盤状の記録媒体（図示省略）に磁気ヘッド（図示省略）を用いて情報を記録、または読み出す記憶装置である。
ＲＡＩＤ装置５０３は、これらの複数のＨＤＤ５０５を組み合わせて仮想的な1台のハードディスクとして運用することにより、データの信頼性や利便性を向上させるようになっている。
【０００４】
また、このような従来のＲＡＩＤシステム５０２においては、ＨＤＤ５０５にデータの書き込み（ライト）を実施する際に、ライトしたデータをＨＤＤ５０５から読み出して（リード）、この読み出したデータと元のデータとを比較して、ＨＤＤ５０５に正常にデータの書き込みが行なわれたことを検証・確認するライト・ベリファイ（コンペアリード）機能を備えているものがある（例えば、特許文献１参照）。
【０００５】
このようなライト・ベリファイ機能により、ＲＡＩＤシステム５０２においては、データのライト時にＨＤＤ５０５内に正常にデータの書き込みが行なわれたことを確認することにより、ＨＤＤ５０５に書き込むデータの信頼性を向上させることができる。
従って、ＲＡＩＤシステム５０２においては、情報処理装置５０１からのデータのライト処理時であっても、上述の如きライト・ベリファイ機能が有効な状態においては、ＨＤＤ５０５においてライト処理とリード処理とが交互に行なわれるのである。
【０００６】
また、一般に、ＨＤＤ５０５にはそれぞれキャッシュメモリがそなえられており、情報処理装置５０１からの要求に基づくデータの読み出し時に、読み出し対象のデータがこのキャッシュメモリに残っている場合には、ＨＤＤ５０５は、記録媒体にアクセスしてデータを読み出す代わりに、このキャッシュメモリに格納されているデータを、情報処理装置５０１に対して応答データとして送出するキャッシュ機能もそなえている。このキャッシュ機能により、ＨＤＤ５０５において、記憶媒体へのアクセス回数を低減し、データの読み出し速度を向上させることができるのである（例えば、特許文献２参照）。
【０００７】
また、ＨＤＤ５０５においては、情報処理装置５０１からリード要求が行なわれたデータのロジカル・ブロック・アドレス（ＬＢＡ）に後続するＬＢＡのデータを予め磁気ディスクから読み出してＨＤＤのキャッシュに格納しておく、先読み（read ahead）機能が知られている（例えば、特許文献３参照）。
一般的に、データはある特定のデータの固まりで処理されるので、記録媒体における特定位置のデータを読み込んだ後には、そのデータに後続するデータも続けて読まれることが多い。そこで、先読み機能においては、これらのデータを効率良く処理する為に、リード指示されたデータに加えて、そのデータの格納場所に続く所定サイズの領域（先読み領域）のデータも含めてまとめてリードしてキャッシュに保管しておく。これにより（先読み）、情報処理装置５０１から、先読み領域に格納されているデータに対する読み出し要求が行なわれた場合に、予めキャッシュに格納したキャッシュデータからデータを構築することにより、データの読み出し速度を向上させることができるのである。
【特許文献１】特開２００７−５２５０９号公報
【特許文献２】特開２００７−１１６８７号公報
【特許文献３】特開２００１−１０１０７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、このような従来のＲＡＩＤシステム５０５において、キャッシュ機能が有効になっている状態では、ライト・ベリファイ機能により、ＨＤＤ５０５に対してライト指示を行なった直後に同一場所をリードする場合に、記録媒体からのデータの読み込みが行なわれない。ＨＤＤ５０５は、キャッシュ機能により、そのキャッシュメモリ内に残っているデータをリードデータとしてＲＡＩＤ装置５０３に報告することにより、実際に記録媒体からのデータの読み込みが行なわれないのである。
【０００９】
すなわち、ＨＤＤ５０５に書き込んだデータを、前述したライト・ベリファイ機能により検証しようとしても、ＨＤＤ５０５のキャッシュ機能によって、キャッシュメモリに格納されているデータが応答データとしてＲＡＩＤ装置５０３に送出され、ＨＤＤ５０５に書き込んだデータを正しく検証することができないという課題がある。
これにより、例えば、ＨＤＤ５０５の磁気ヘッドや記録媒体の異常により記録媒体にデータがライトされていないといった不具合を検出することができず、ライト・ベリファイ機能においてデータの信頼性を向上させることができないのである。
【００１０】
なお、ＨＤＤ５０５においては、上述したキャッシュ機能を無効（ＯＦＦ）に設定することにより、必ず記録媒体上のデータを読み込むようにすることも考えられるが、このようにキャッシュ機能を無効にした場合には、情報処理装置５０１からのリード要求に基づく通常のリード処理にもキャッシュ機能を用いることができない。これにより、ＨＤＤ５０５のリード処理の性能が大幅に低下し、ＲＡＩＤシステム５０２におけるリード性能の低下を引き起こしてしまうおそれがある。
【００１１】
また、従来のＲＡＩＤシステム５０２において、上述の如く、ライト・ベリファイ機能を有効としてＨＤＤ５０５にデータの書込を行なう場合には、データの書き込みを行なった後に、そのデータが記憶媒体に正しく記録されたかを検証するためのリードが行なわれる。
しかしながら、このリードは、情報処理装置５０１からのライトデータがＨＤＤ５０５に正常に書き込まれたことを確認するためのリードであるので、実際には、ＨＤＤ５０５においては、このリードされるデータに続く場所に格納されたデータがリードされずに、情報処理装置５０１から送信される次のデータのライトが行なわれる。
【００１２】
従って、従来のＲＡＩＤシステム５０２においては、ライト・ベリファイ機能を有効にしたデータのライト時には、先読み機能によりリードしてキャッシュに保管したデータが用いられることがない。又、この先読みしたデータは無意味なキャッシュデータであるので、ＨＤＤ５０５は、この先読みしたデータを破棄する処理を行なう必要もある。
図６は従来のＲＡＩＤシステムにおけるＨＤＤ５０５に書き込まれるライトデータ６００の構成例を模式的に示す図である。なお、この図６に示す例においては、ライトデータ６００は０〜１９の２０個のブロックをそなえて構成されている。
【００１３】
このようなライトデータ６００をＨＤＤ５０５に書き込む場合には、情報処理装置５０１は、ＲＡＩＤシステム５０２に対して、このライトデータ６００を先行する０〜９の部分（先行ライト部分）と後続する１０〜１９の部分（引き続くライト部分）との２つに分けてライト指示を行なう。
すなわち、情報処理装置５０１は、先行ライト部分０〜９のライト指示をＲＡＩＤ装置５０３に送信した後に、引き続くライト部分１０〜１９のライト指示をＲＡＩＤ装置５０３に送信する。
【００１４】
一方、ＲＡＩＤ装置５０３においては、先行ライト部分０〜９のライト指示をＨＤＤ５０５に与え、更に、ＲＡＩＤ装置５０３は、ライト・ベリファイ機能による先行ライト部分０〜９のリード指示をＨＤＤ５０５に与える。そして、ＲＡＩＤ装置５０３は、ＨＤＤ５０５にライトしたデータと、ＨＤＤ５０５からリードしたデータとを比較し正常性の確認を行なう。
【００１５】
その後、ＲＡＩＤ装置５０３は、引き続くライト部分１０〜１９のライト指示をＨＤＤ５０５に与え、更に、ライト・ベリファイ機能による引き続くライト部分１０〜１９のリード指示をＨＤＤ５０５に与える。そして、ＲＡＩＤ装置５０３は、ＨＤＤ５０５にライトしたデータと、ＨＤＤ５０５からリードしたデータとを比較し正常性を確認する。
ＨＤＤ５０５においては、受信した先行ライト部分０〜９を記憶媒体に記録（ライト）する。そして、ＨＤＤ５０５は、先読み機能により、記憶媒体に記録した先行ライト部分０〜９と、この先行ライト部分０〜９の格納領域に続く所定サイズの先読み領域のデータとを一括してリード（一括リード）する。
【００１６】
ここで、ＨＤＤ５０５は、ＲＡＩＤ装置５０３からの書き込み指示に従い、引き続くライト部分１０〜１９を記録媒体における先行ライト部分０〜９の格納位置に後続する位置に書き込みを行なう。しかしながら、ここで、先読み機能による先読み領域のリードが完了するまで待つ必要があり（リード終了待ち状態）、この間、次のライト処理を行なうことができない。
【００１７】
また、先読み領域のリードが完了しても、その先読み領域のリードの完了時点においては、記録媒体における引き続くライト部分１０〜１９を書き込む位置、すなわち、先行ライト部分０〜９の書込位置に後続する位置が磁気ヘッドとの相対位置を通過してしまっている。これにより、記録媒体が１回転して、引き続くライト部分１０〜１９の書き込み位置が磁気ヘッドとの相対位置に到達するまで待つ必要があり（回転待ち状態）、この間も、次のライト処理を行なうことができない。
【００１８】
このように、従来のＲＡＩＤシステム５０２においては、ＨＤＤ５０５において、ライト・ベリファイ機能を有効にしたデータのライト時には、先読み機能によりリードが行なわれる。これにより、このリードが完了するまでのリード終了待ち時間や回転待ち時間が発生し、これによってライトの処理速度が低下し、ライト性能の低下も引き起こしてしまう。
【００１９】
本件の目的の一つは、このような課題に鑑み創案されたもので、ライト・ベリファイ機能を伴うデータのライト時においてもライト性能が低下することがなく、ライト速度を向上させるとともに信頼性を向上できるようにすることである。
【課題を解決するための手段】
【００２０】
このため、この記憶装置は、録媒体における読出対象データに後続する所定サイズのデータを先読みデータとして読み出す先読み機能をそなえた記憶装置であって、上位装置から受信する該データに関する命令を解析し、当該命令が読出命令であるか否かを判断する命令解析部と、該命令解析部により該命令が該読出命令であると判断された場合において、当該読出命令が該記録媒体に対する強制的なアクセスを伴う強制アクセス命令であるか否かを判定する強制アクセス判定部と、該命令解析部により該命令が該読出命令であると判断され、且つ、該強制アクセス判定部により該命令が強制アクセス命令であると判定された場合に、該先読み機能を抑止する先読み抑止部とをそなえるものである。
【００２１】
また、この記憶システムは、データを記録可能な記録媒体をそなえ、該記録媒体からの該データの読み出し時に、該記録媒体における読出対象データに後続する所定サイズのデータを先読みデータとして読み出す先読み機能をそなえた記憶装置と、該記憶装置に対して書込命令を送信することにより該データの書込制御を行なうとともに、該記憶装置に対して読出命令を送信することにより読出制御を行なう制御部とをそなえた記憶システムであって、該制御部が、該書込命令により該記録媒体に該データの書き込みを行なった後に、該記録媒体における当該データの書き込みを行なった領域から当該データを読み出すべく該読出命令を送信する読出命令送信部と、該読出命令送信部によって送信される該読出命令に対して、当該読出命令が該記録媒体に対する強制的なアクセスを伴う強制アクセス命令（ＦＵＡ；Force Unit Access）であることを示す強制アクセス命令情報を設定する強制アクセス命令情報設定部と、該記録媒体に書き込んだ該データと該記録媒体から読み出した該データとを比較するデータ比較部とをそなえ、該記憶装置が、該制御部から受信する該データに関する命令を解析し、当該命令が該読出命令であるか否かを判断する命令解析部と、該命令解析部により該命令が該読出命令であると判断された場合において、当該読出命令が該強制アクセス命令であるか否かを判定する強制アクセス判定部と、該命令解析部により該命令が該読出命令であると判断され、且つ、該強制アクセス判定部により該命令が該強制アクセス命令であると判定された場合に、該先読み機能を抑止する先読み抑止部とをそなえるものである。
【００２２】
さらに、この制御方法は、データを記録可能な記録媒体をそなえ、該記録媒体からの該データの読み出し時に、該記録媒体における読出対象データに後続する所定サイズのデータを先読みデータとして読み出す先読み機能をそなえた記憶装置の制御方法であって、上位装置から受信する該データに関する命令を解析し、当該命令が読出命令であるか否かを判断する命令解析ステップと、該命令解析ステップにおいて該命令が該読出命令であると判断された場合において、当該読出命令が該記録媒体に対する強制的なアクセスを伴う強制アクセス命令であるか否かを判定する強制アクセス判定ステップと、該命令解析ステップにおいて該命令が該読出命令であると判断され、且つ、強制アクセス判定ステップにおいて該命令が該強制アクセス命令であると判定された場合に、該先読み機能を抑止する先読み抑止ステップとをそなえるものである。
【発明の効果】
【００２３】
開示の記憶装置，記憶システム及び制御方法によれば、以下の少なくともいずれか１つの効果ないし利点が得られる。
（１）強制アクセス命令にかかる読出命令については先読みを行なわないので、書き込みの処理速度が低下することがなく、書き込み性能を向上させることができる。
【００２４】
（２）強制アクセス命令にかかる読出命令以外の読出命令については、先読み機能を抑止しないので、読み出し性能を高く維持することができる。
（３）無意味な先読みデータを破棄する処理を行なう必要がなく効率的である。
【発明を実施するための最良の形態】
【００２５】
以下、図面を参照して本記憶装置，記憶システムおよび制御方法にかかる実施の形態を説明する。
（Ａ）第１実施形態の説明
図１は第１実施形態の一例としてのストレージシステムの構成を模式的に示す図である。
【００２６】
本第１実施形態のストレージシステム１は、図１に示すように、ホスト２に対してＲＡＩＤ（Redundant Arrays of Inexpensive Disks）装置１０を通信可能に接続することにより構成されている。
ホスト２は、ＲＡＩＤ装置１０により提供される論理デバイスに対してデータの書き込みや読み出しを要求（ライト要求，リード要求）する情報処理装置である。なお、この図１においては、ストレージシステム１に１つのホスト２がそなえられている例を示しているが、これに限定されるものではなく、２以上のホスト２がそなえられ、これらの２以上のホスト２がそれぞれＲＡＩＤ装置１０に接続されてもよい。
【００２７】
ＲＡＩＤ装置（ストレージ装置）１０は、ホスト２にチャネルインタフェース１１を介して接続され、ホスト２に対して論理デバイスを提供するものである。このＲＡＩＤ装置１０は、図１に示すように、チャネルインタフェース１１，ＲＡＩＤキャッシュ制御部１２，ＨＤＤ制御部（制御部，上位装置）１３，及びＨＤＤ（Hard disk drive：記憶装置）２０ａ，２０ｂ，２０ｃをそなえて構成されている。
【００２８】
ＨＤＤ２０ａ，２０ｂ，２０ｃは、磁性体を塗布した円盤状の記録媒体３０（詳細は後述）に、磁気ヘッド（図示省略）を用いてデータの書き込みや読み出しを行なう記憶装置であり、ＨＤＤ制御部１３のＨＤＤインタフェース１６を介してそれぞれ通信可能に接続されている。
なお、これらのＨＤＤ２０ａ，２０ｂ，２０ｃは、互いにほぼ同様の構成をそなえており、以下、ＨＤＤを示す符号としては、複数のＨＤＤのうち１つを特定する必要があるときには符号２０ａ，２０ｂ，２０ｃを用いるが、任意のＨＤＤを指すときには符号２０を用いる。又、図１に示す例においては、便宜上、ＨＤＤ２０ａについてのみ、その詳細な構成を図示している。更に、ＨＤＤ２０（２０ａ，２０ｂ，２０ｃ）の構成についての詳細な説明は後述する。
【００２９】
また、本実施形態においては、ＨＤＤ２０は、先読み（read ahead）機能をそなえている。先読み機能は、ホスト２からデータのリード要求が行なわれた場合に、記録媒体３０における、リードを要求されたデータのロジカル・ブロック・アドレス（ＬＢＡ；格納位置）に後続するＬＢＡの所定サイズのデータを、予め記録媒体３０から読み出してキャッシュ領域２５（後述）に格納するものである。なお、この先読み機能は既知の技術であり、その詳細な説明は省略する。
【００３０】
チャネルインタフェース１１は、ＲＡＩＤ装置１０とホスト２とを通信可能に接続するためのインタフェースであり、ＦＣ（Fibre Channel）やＳＣＳＩ（Small Computer System Interface）等の規格に従って構成されている。なお、このチャネルインタフェース１１の規格としては、これらのＦＣ，ＳＣＳＩ等に限定されるものではなく、種々変形して実施することができる。
【００３１】
ＲＡＩＤキャッシュ制御部１２は、ホスト２から送信されたデータ（ライトデータ）やＨＤＤ２０から読み出されて送信されたデータ（リードデータ）を一時的に保持するキャッシュメモリ（図示省略）をそなえている。そして、ＲＡＩＤキャッシュ制御部１２は、このキャッシュメモリへのデータの格納および取り出しを制御するようになっており、例えば、ホスト２から送信される書込命令や読出命令に応じて、これらの制御を行なうようになっている。
【００３２】
ＨＤＤインタフェース１６は、ＨＤＤ制御部１３とＨＤＤ２０とを通信可能に接続するためのインタフェースであり、ＦＣやシリアルＡＴＡ（ＳＡＴＡ：SATA：Serial Advanced Technology Attachment），ＳＡＳ（Serial Attached SCSI）等の規格に基づいて構成されている。なお、このＨＤＤインタフェース１６の規格としては、これらのＦＣ，ＡＴＡ，ＳＡＴＡ等に限定されるものではなく、種々変形して実施することができる。
【００３３】
ＨＤＤ制御部（制御部，上位装置）１３は、ＨＤＤ２０に対してデータの書き込みや読み出しの命令（ライト命令，リード命令）を送信することにより、ＨＤＤ２０の制御を行なうものであり、図１に示すように、ライト制御部１４，リード制御部１５およびＨＤＤインタフェース１６をそなえて構成されている。
リード制御部１５は、ホスト２からのリード要求に基づいて、ＨＤＤ２０からのデータの読み出し（リード）を制御するものであり、ＨＤＤホストリード制御部１５１としての機能をそなえている。
【００３４】
このＨＤＤホストリード制御部１５１は、ホスト２から受信したデータのリード要求に基づいて、そのリード対象のデータが格納されたＨＤＤ２０に対して、ＨＤＤインタフェース１６を介してデータのリード命令（ホストリード命令）を送信するようになっている。又、ＨＤＤホストリード制御部１５１は、このリード命令に応じてＨＤＤ２０から読み出され、ＨＤＤ２０から送信（返信）されたデータ（リードデータ）を、ＨＤＤインタフェース１６を介して受信し、更に、この受信したリードデータをＲＡＩＤキャッシュ制御部１２及びチャネルインタフェース１１を介してホスト２に送信するようになっている。
【００３５】
なお、ＨＤＤホストリード制御部１５１は、ホスト２によるデータのリード要求に基づいてＨＤＤ２０に対してリード命令（ホストリード命令）を送信する場合に、そのリード命令（リードコマンド）におけるＦＵＡ（Force Unit Access）フラグとして“０（ＦＵＡ＝０）”を設定するようになっている。
ここで、ＦＵＡフラグとは、ＨＤＤ２０のリード命令のパラメータのひとつであって、そのリード命令の実行時に、媒体アクセスを強制するかを指定するフラグである。
【００３６】
具体的には、ＨＤＤ２０において、ＨＤＤ制御部１３から送信されたリード命令のＦＵＡフラグが“０（ＦＵＡ＝０）”であるときは、そのリード命令によって指定されるデータが、キャッシュ領域２５（詳細は後述）に格納されている場合には、ＨＤＤ２０は、記録媒体３０（詳細は後述）にアクセスすることなく、キャッシュ領域２５からその格納されているデータを取得し、ホスト２へ送信することを示している。
【００３７】
一方、ＨＤＤ制御部１３から送信されたリード命令のＦＵＡフラグが“１（ＦＵＡ＝１）”であるときは、そのリード命令は必ず記録媒体３０にアクセスしてデータの読み出しを行なうことを示している。ＨＤＤ２０は、リード要求されたデータがキャッシュにヒットしていても、このキャッシュ領域２５に格納されたデータを使用する代わりに、記録媒体３０からリード対象のデータを読み出し（強制アクセス）、ホスト２へ送信するのである。すなわち、ＦＵＡフラグが“１（ＦＵＡ＝１）”のリード命令は、記録媒体３０に対する強制的なアクセスを伴う強制アクセス命令である。
【００３８】
また、ＨＤＤホストリード制御部１５１は、ＨＤＤ２０から読み出されたデータを、ＲＡＩＤキャッシュ制御部１２及びチャネルインタフェース１１を介してホスト２に送信するようになっている。
ライト制御部１４は、ＨＤＤ２０に対するデータの書き込み（ライト）を制御するものであり、ホスト２から送信されるライト要求に従って、データをＨＤＤ２０に書込ませるための制御を行なうようになっている。
【００３９】
また、このライト制御部１４は、ＨＤＤ２０に対して単にデータをライトさせる他、ＨＤＤ２０にデータのライトを実施するに際して、ライトしたデータを読み出（リード）して、この読み出したデータと元のデータ（ライトデータ）とを比較することにより、ＨＤＤ２０内に正常にデータの書き込みが行なわれたことを検証・確認するライト・ベリファイ（コンペアリード）も行なうようになっている。
【００４０】
なお、ＨＤＤ２０にデータのライトを実施するに際してライト・ベリファイを行なうか否かは、例えば、図示しない入力装置を介してオペレータが任意に設定することができるようになっている。
オペレータは、ＨＤＤ２０の信頼性等に合わせて、ライト・ベリファイを行なうか否かを設定したり、又、ライト・ベリファイを行なう頻度等を任意に設定することができる。例えば、ＳＡＴＡ系のＨＤＤ２０については、全てのライト処理においてライト・ベリファイを行ない、比較的信頼性が高いＦＣ系やＳＣＳＩ系のＨＤＤ２０については、所定回数（例えば１６回）に１回の頻度でライト・ベリファイを行なう。このように、ＨＤＤ２０の種類や性能，信頼性，データの重要度等に合わせて、オペレータが任意に設定することができるのである。
【００４１】
すなわち、本ストレージシステム１においては、ライト制御部１４によるライト・ベリファイにより、ライトの正常性確認を行なうことができるようになっている。
また、オペレータによって入力された、ライト・ベリファイを行なうか否かの設定情報やライト・ベリファイの頻度等の設定情報は、ＨＤＤ２０や図示しないメモリ等の所定の記憶領域に保存されるようになっている。
【００４２】
ライト制御部１４は、図１に示すように、ＨＤＤライト制御部１４１，ライトデータコンペア部１４２およびＨＤＤコンペアリード制御部１４３をそなえて構成されている。
ＨＤＤライト制御部１４１は、ＨＤＤ２０に対するデータのライトを制御するものであり、ＨＤＤ２０に対して、ホスト２からライト要求とともに送信されたライトデータとライト命令（ライトコマンド，書込命令）とをＨＤＤ２０に対して送信することにより、ＨＤＤ２０にデータのライトを行なわせるようになっている。
【００４３】
また、ＨＤＤライト制御部（読出命令送信部）１４１は、上述したライト・ベリファイを行なう際には、ライトデータ及びライト命令をＨＤＤ２０に対して送信してＨＤＤ２０の記録媒体３０にデータのライトを行なわせるようになっている。その後、ＨＤＤライト制御部１４１は、ＨＤＤ２０に対して、その直前にライトを行なった領域を指定して、その領域からデータをリードさせるリード命令（読出命令）を送信するようになっている。
【００４４】
なお、以下、ライト・ベリファイを行なうためにＨＤＤライト制御部１４１からＨＤＤ２０に対して送信するリード命令のことを、ホスト２からのリード要求に基づいてリード制御部１５から送信されるリード命令（ホストリード命令）と区別するために、コンペアリード命令という場合がある。
また、ＨＤＤライト制御部（強制アクセス命令情報設定部）１４１は、上述の如きライト・ベリファイにかかるリード命令（コンペアリード命令）に対して、そのコンペアリード命令がＨＤＤ２０の記録媒体３０に対する強制的なアクセスを伴う強制アクセス（ＦＵＡ；Force Unit Access）命令であることを示すフラグ（強制アクセス命令情報：ＦＵＡ＝１）を設定するようになっている。なお、以下、リード命令（コンペアリード命令）がＦＵＡ命令であることを示すフラグ（ＦＵＡ＝１）のことを、単にＦＵＡフラグという場合がある。
【００４５】
すなわち、ＨＤＤライト制御部１４１は、ホスト２からのライト命令について、ライトの正常性確認を行なう場合に、そのリード命令（コンペアリード命令）に対してＦＵＡフラグを有効（ＦＵＡ＝１）に設定するようになっている。
つまり、ＨＤＤ制御部１３においては、ホスト２よりのリード命令によりＨＤＤ２０からリードさせる場合にはＦＵＡフラグを無効とし、ホスト２からのライト命令により、ライトの正常性確認を行なう場合にのみＦＵＡフラグを有効とするようになっている。
【００４６】
ＨＤＤコンペアリード制御部１４３は、ライト制御部１４１によってＨＤＤ２０に対して送信されたコンペアリード命令に対してＨＤＤ２０から読み出されたデータ（ベリファイ・リードデータ）を取得（リード）するものである。又、このＨＤＤコンペアリード制御部１４３によって取得されたベリファイ・リードデータは、ライトデータコンペア部１４２に渡されるようになっている。
【００４７】
なお、ＨＤＤコンペアリード制御部１４３が、ＨＤＤライト制御部１４１によって出力されたコンペアリード命令に対応するデータ（ベリファイ・リードデータ）を取得する手法は、既知の種々の手法を用いて実現することができるものであり、その具体的な説明は省略する。
ライトデータコンペア部（データ比較部）１４２は、ＨＤＤ２０にライトしたデータと、ＨＤＤ２０の記録媒体３０から読み出したデータとを比較するものである。このライトデータコンペア部１４２は、ＲＡＩＤキャッシュ制御部１２のキャッシュに格納されているライトデータと、ＨＤＤコンペアリード１４３によって取得された、そのライトデータに対応するベリファイ・リードデータとが一致するか否かを確認するようになっている。
【００４８】
例えば、ライト制御部１４において、ライト命令に識別情報を設定するとともに、この識別情報を、対応するライトデータや、そのライト命令に対応するコンペアリード命令、更には、このコンペアリード命令に対応するベリファイ・リードデータにそれぞれ付加することにより、相互に対応付けることができる。すなわち、ライト制御部１４は、このように、ライト命令に対して、ライトデータやコンペアリード命令，ベリファイ・リードデータを対応付けて管理する機能もそなえているのである。
【００４９】
そして、ライトデータコンペア部１４２は、上述したライトデータと対応するベリファイ・リードデータとの比較結果（例えば、一致／不一致）を、ホスト２等に送信するようになっている。
ＨＤＤ２０は、ＨＤＤ制御部１３のＨＤＤインタフェース１６と、図示しないインタフェースを介して通信可能に接続されている。このＨＤＤ２０は、図１に示すように、ＨＤＤキャッシュ制御部２１，ＨＤＤライト回路２８，ＨＤＤリード回路２９及び記録媒体（メディア）３０をそなえて構成されている。
【００５０】
記録媒体３０は、データを読出可能に保持（記録）するものであって、本実施形態においては、表面に磁性体を塗布もしくは蒸着した１以上の円盤（プラッタ）により構成され、その表面にデータを記録可能に構成されている。
また、本実施形態においては、記録媒体３０における所定領域（先読みフラグ格納部）には、当該ＨＤＤ２０において前述した先読み機能を有効にするか無効にするかの設定値がフラグ（先読みフラグ）として格納されるようになっている。
【００５１】
ＨＤＤライト回路２８は記録媒体３０における所定位置にデータをライトするものであり、ＨＤＤリード回路２９は記録媒体３０に記録されているデータをリードするものである。そして、これらのＨＤＤライト回路２８及びＨＤＤリード回路２９は、例えば、図示しない磁気ヘッド（ライトヘッド，リードヘッド）をそなえて構成されている。
この磁気ヘッドは、アーム（図示省略）の先端部分に配置され、記録媒体３０に相対した状態で、記録媒体３０上の磁性体を磁化させることによりデータのライトを行なったり、記録媒体３０上の磁化の状態を読み取ることにより、データのリードを行なうものである。又、この磁気ヘッドは、同じく図示しないアクチュエータにより記録媒体３０に対する位置決めが行なわれるようになっている。
【００５２】
ＨＤＤ２０においては、記録媒体３０をモータ（図示省略）により回転させるとともに、アクチュエータにより磁気ヘッドを移動させる。そして、磁気ヘッドにより記録媒体３０上における所定位置の磁性体を磁化させることによりデータのライトを行ない、又、磁気ヘッドにより記録媒体３０上における所定位置の磁化の状態を読み取ることにより、データのリードを行なうようになっている。
【００５３】
なお、これらの記録媒体３０，ＨＤＤライト回路２８及びＨＤＤリード回路２９としての機能は、既知の技術を用いて実現することができるものであり、その詳細な説明は省略する。
ＨＤＤキャッシュ制御部１２は、記録媒体３０へのデータのライトやリードを制御するものであって、図１に示すように、ＭＰＵ（Micro Processing Unit）２０１およびＲＡＭ（Random Access Memory）２０２をそなえて構成されている。
【００５４】
ＲＡＭ２０２は種々のデータやプログラムを一時的に記録する記録装置であって、本第１実施形態においては、図１に示すように、キャッシュ領域２５及び先読み長記憶部２６として機能するようになっている。
キャッシュ領域２５は、記録媒体３０にライトするためにＨＤＤ制御部１３から受信したライトデータや、記録媒体３０からリードされたリードデータおよびベリファイ・リードデータを一時的に格納（キャッシュ）するものである。すなわち、ＲＡＭ２０２はキャッシュメモリとして機能するようになっている。
【００５５】
なお、このキャッシュ領域２５のサイズ（容量）は予め設定されており、又、オペレータ等が、図示しない入力装置等を介してこのキャッシュ領域２５のサイズを任意に設定してもよい。
先読み長記憶部２６は、前述した先読み機能について、先読みするデータのサイズ（ＬＢＡのサイズ）を示す情報を記録する領域であり、後述するライト・リード制御部２４が、先読み機能を実施する際に、この先読み長記憶部２６に記憶されたサイズ（以下、先読み長という場合がある）を参照して、この先読み長に相当するサイズのデータを先読みするようになっている。
【００５６】
また、この先読み長記憶部２６に記憶される先読み長としては、予め規定されたデータサイズが設定されている。又、この先読み長記憶部２６に記憶される先読み長は、後述するライト・リード制御部２４が変更することができるようになっている。更に、この先読み長記憶部２６に記録される先読み長は、オペレータ等が図示しない入力装置を介して任意に設定することもできるようになっている。
【００５７】
なお、このＲＡＭ２０２には、ＭＰＵ２０１が演算処理等を行なう際に、データやプログラムが一時的に展開（格納）される場合もある。
ＭＰＵ２０１は、プログラムを実行することにより種々の演算や制御を行なう制御装置であって、例えば、ＲＡＭ２０２や図示しないＲＯＭ（Read Only Memory）に格納されたプログラムを実行することにより、種々の機能を実現するようになっている。
【００５８】
本実施形態においては、ＭＰＵ２０１は、図１に示すように、コマンド解析部（命令解析部）２２，ＦＵＡ判定部（強制アクセス判定部）２３及びライト・リード制御部（比較部，強制アクセス判定抑止部，先読み抑止部）２４として機能するようになっている。
コマンド解析部２２は、ＨＤＤ制御部１３から受信するデータに関する命令を解析し、その命令がリード命令（読出命令）であるか否かを判断するものである。このコマンド解析部２２は、ＨＤＤ制御部１２からリード命令を受信したことを検出すると、その旨をライト・リード制御部２４に通知するようになっている。
【００５９】
ＦＵＡ判定部２３は、コマンド解析部２２により、受信した命令がリード命令であると判断された場合において、そのリード命令が、記録媒体３０に対する強制的なアクセスを伴うＦＵＡ命令（強制アクセス命令）であるか否かを判定するものである。
具体的には、ＦＵＡ判定部２３は、受信したリード命令におけるＦＵＡフラグの設定値が“０（ＦＵＡ＝０）”であるか“１（ＦＵＡ＝１）”であるかを確認することにより、ＦＵＡ命令であるか否かの判定を行なうようになっている。又、ＦＵＡ判定部２３は、その判定結果をライト・リード制御部２４に通知するようになっている。
【００６０】
ライト・リード制御部２４は、ＨＤＤライト回路２８及びＨＤＤリード回路２９を制御して、記録媒体３０に対するデータのライトやリードを制御するものである。又、ライト・リード制御部２４は、キャッシュ領域２５に格納されたライトデータを、ＨＤＤライト回路２８により記録媒体３０の所定領域にライトさせたり、記録媒体３０の所定領域に記録されたデータをＨＤＤリード回路２９によってリードさせて、キャッシュ領域２５に格納させたりするようになっている。
【００６１】
また、ライト・リード制御部（先読み処理部）２４は、前述した先読み機能を実現するようになっている。前述した先読みフラグ格納部において、先読み機能を有効にする旨のフラグ（例えば“１”）が設定されている場合に、ライト・リード制御部２４は、ＨＤＤ制御部１３からデータのリード命令を受信すると、そのリード命令を処理する。
そして、ライト・リード制御部２４は、記録媒体３０からリード対象データのデータをリードしてキャッシュ領域２５に格納する。又、ライト・リード制御部２４は、そのリード対象データの格納位置（ＬＢＡ）に後続するＬＢＡから先読み長分のデータを、記録媒体３０からリード（プリリード）する。又、ライト・リード制御部２４は、このプリリードした先読み長分のデータをキャッシュ領域２５に格納するのである。
【００６２】
さらに、ライト・リード制御部（先読み抑止部）２４は、受信した命令がコマンド解析部２２によりリード命令であると判断され、且つ、ＦＵＡ判定部２３によりそのリード命令がＦＵＡ命令であると判定された場合に、前述した先読み機能を抑止するようになっている。
具体的には、ライト・リード制御部２４は、例えば、先読み長記憶部２６に記憶されている先読み長を“０”にすることにより実質的に先読みが行なわれないようにしたり、先読み自体を行なわないことにより、先読み機能を抑止するようになっている。
【００６３】
上述の如く構成された本第１実施形態としてのストレージシステムにおけるＨＤＤキャッシュ制御部２１の一例としての処理を、図２に示すフローチャート（ステップＡ１０〜Ａ９０）に従って説明する。
ＨＤＤ２０がＨＤＤインタフェース１６から命令を受信すると、ＨＤＤキャッシュ制御部２１において、コマンド解析部２２が、その受信した命令の解析を行なう（ステップＡ１０；命令解析ステップ）。この解析の結果、受信した命令がライトコマンド（ライト命令）であった場合には（ステップＡ１０の“ライトコマンド”ルート参照）、ライト・リード制御部２４が、ＨＤＤ制御部１３によりライトを指示されたデータ（ライトデータ）をキャッシュ領域２５に格納する（ステップＡ２０）。その後、ライト・リード制御部２４は、このライトデータをＨＤＤライト回路２８を介して記録媒体３０にライトさせ（ステップＡ３０）、処理を終了する。
【００６４】
一方、コマンド解析部２２による解析の結果、受信した命令がリードコマンド（リード命令）であった場合には（ステップＡ１０の“リードコマンド”ルート参照）、ＦＵＡ判定部２３が、そのリード命令におけるＦＵＡフラグの設定値を確認し、このＦＵＡフラグが“１（ＦＵＡ＝１）”であるか否かを確認する（ステップＡ４０；強制アクセス判定ステップ）。
【００６５】
このＦＵＡ判定部２３による判定の結果、ＦＵＡフラグが“０（ＦＵＡ＝０）”であった場合には（ステップＡ４０の“ＦＵＡ＝０”ルート参照）、ライト・リード制御部２４は、そのリード対象のデータと同一のリードデータがキャッシュ領域２５に格納されているか否かを確認する（ステップＡ５０）。
リード対象のデータと同一のリードデータがキャッシュ領域２５に格納されていない場合には（ステップＡ５０の“無し”ルート参照）、ライト・リード制御部２４は、記録媒体３０におけるＨＤＤ制御部１３によってリードを指示された領域（リード領域）をＨＤＤリード回路２９によりリードして、このリードしたリードデータをキャッシュ領域２５に格納する（ステップＡ６０）。
【００６６】
また、ＦＵＡ判定部２３による判定の結果、ＵＦＡフラグが“１（ＦＵＡ＝１）”であった場合にも（ステップＡ４０の“ＦＵＡ＝１”ルート参照）、このステップＡ６０に移行する。
そして、ＦＵＡ判定部２３は、再度、そのリード命令におけるＦＵＡフラグの設定値の確認を行ない、このＦＵＡフラグが“１（ＦＵＡ＝１）”であるか否かを確認する（ステップＡ７０）。
【００６７】
このＦＵＡ判定部２３による判定の結果、ＦＵＡフラグが“０（ＦＵＡ＝０）”であった場合には（ステップＡ７０の“ＦＵＡ＝０”ルート参照）、ライト・リード制御部２４は、記録媒体３０における、ステップＡ６０においてリードを行なったリード領域に続く（後続の）先読み長分の領域のデータをリードする。そして、ライト・リード制御部２４は、そのデータをキャッシュ領域２５に格納する（ステップＡ８０）。すなわち、先読み機能を実行するのである。
【００６８】
そして、ＨＤＤキャッシュ制御部２１（ＭＰＵ２０１）は、ＨＤＤ制御部１３からリード指示された領域のデータ（リード対象のデータ）をキャッシュ領域２５から取り込み、ＨＤＤ制御部１３に送出して（ステップＡ９０）、処理を終了する。
一方、ＦＵＡ判定部２３による判定結果が“１（ＦＵＡ＝１）”であった場合には（ステップＡ７０の“ＦＵＡ＝１”ルート参照）、先読み機能を実行せずに（先読み抑止ステップ）、ステップＡ９０に移行する。
【００６９】
また、リード対象のデータと同一のリードデータがキャッシュ領域２５に格納されている場合には（ステップＡ５０の“有る”ルート参照）、ライト・リード制御部２４は、そのままステップＡ９０に移行する。
次に、上述の如く構成された本第１実施形態としてのストレージシステムにおいて、例えば、図６に例示したような０〜１９の２０個のブロックをそなえて構成されたライトデータをライト・ベリファイを伴うデータのライトをＨＤＤ２０に行なう場合について説明する。
【００７０】
まず、ホスト２は、ＲＡＩＤ装置１０に対して、ライトデータの先行する０〜９の部分（先行ライト部分）と後続する１０〜１９の部分（引き続くライト部分）との２つに分けてライト指示を行なう。
すなわち、ホスト２は、先行ライト部分０〜９のライト指示をＲＡＩＤ装置１０に送信した後に、引き続くライト部分１０〜１９のライト指示（ライト命令）をＲＡＩＤ装置１０に送信する。
【００７１】
ＲＡＩＤ装置１０においては、ＨＤＤ制御部１３のＨＤＤライト制御部１４１が、先行ライト部分０〜９のライト指示をＨＤＤ２０に与える。又、ＨＤＤライト制御部１４１は、更に、ライト・ベリファイ機能による先行ライト部分０〜９のリード指示（リード命令）をＨＤＤ２０に与える。そして、この際、ＨＤＤライト制御部１４１は、このリード命令においてＦＵＡフラグを有効（ＦＵＡ＝１）に設定する。
【００７２】
そして、ＨＤＤ制御部１３においては、ライトデータコンペア部１４２が、先行ライト部分０〜９のライトデータと、ＨＤＤ２０からリードし、ＨＤＤコンペアリード制御部１４３によって取得された先行ライト部分０〜９のデータ（ベリファイ・リードデータ）とを比較し、正常性の確認を行なう。
その後、ＲＡＩＤ装置１０において、ライト制御部１４（ＨＤＤライト制御部１４１）が、引き続くライト部分１０〜１９のライト指示をＨＤＤ２０に与える。更に、ライト制御部１４は、ライト・ベリファイ機能による引き続くライト部分１０〜１９のリード命令を、ＦＵＡフラグを有効（ＦＵＡ＝１）に設定した状態でＨＤＤ２０に与える。
【００７３】
そして、ＨＤＤ制御部１３においては、ライトデータコンペア部１４２が、引き続くライト部分１０〜１９のライトデータと、ＨＤＤ２０からリードし、ＨＤＤコンペアリード制御部１４３によって取得された引き続くライト部分１０〜１９のデータ（ベリファイ・リードデータ）とを比較し、正常性の確認を行なう。
ＨＤＤ２０においては、ライト・リード制御部２４が、ＨＤＤ制御部１３から受信したライト命令に従って、先行ライト部分０〜９を記憶媒体３０にライトする。
【００７４】
そして、ＨＤＤキャッシュ制御部２１においては、ＨＤＤ制御部１３から受信した先行ライト部分０〜９にかかるリード命令について、ＦＵＡ判定部２３により、ＦＵＡフラグが有効（ＦＵＡ＝１）に設定されていることが判定され、ライト・リード制御部２４は、記録媒体３０から、先行ライト部分０〜９のみのリードを行なう。
すなわち、引き続くライト部分１０〜１９については、先読み（一括リード）を行なわずに、次のライトを行なうための準備、例えば、磁気ヘッド（ライトヘッド）をトラックセンタに位置付けする等、を行なう。
【００７５】
ＨＤＤ２０においては、ライト・リード制御部２４が、ＨＤＤ制御部１３から受信したライト命令に従って、引き続くライト部分１０〜１９をＨＤＤライト回路２８により記憶媒体３０にライトさせる。
そして、ＨＤＤキャッシュ制御部２１において、ＨＤＤ制御部１３から受信した引き続くライト部分１０〜１９にかかるリード命令について、ＦＵＡ判定部２３により、ＦＵＡフラグが有効（ＦＵＡ＝１）に設定されていることが判定され、ライト・リード制御部２４は、ＨＤＤリード回路２９により、記録媒体３０から引き続くライト部分１０〜１９のみのリードを行なわせる。
【００７６】
ＨＤＤ２０においては、この引き続くライト部分１０〜１９に後続する領域のデータについては、先読み（一括リード）を行なう代わりに、次のライトを行なうための準備を行なう。
このように、本第１実施形態の一例としてのストレージシステムによれば、ライト・ベリファイを伴うデータのライトをＨＤＤ２０に対して行なう場合に、ライト・ベリファイ機能によるリード命令については先読みを行なわない。これにより、先にライトされたデータのリードが完了するまで後続するデータのライトを待つリード終了待ち時間や、記録媒体３０における書き込み位置が磁気ヘッドに到達するまでの回転待ち時間が生じることがない。従って、ライトの処理速度が低下することがなく、ライト性能を向上させることができる。
【００７７】
すなわち、ＨＤＤ制御部１３において、ＨＤＤライト制御部１４１が、ライト・ベリファイにかかるリード命令（コンペアリード命令）に対してＦＵＡフラグを設定するので、ＨＤＤ２０（ＦＵＡ判定部２３）においては、そのリード命令がライト・ベリファイにかかるコンペアリード命令であることを容易に判定することができ利便性が高い。
ＨＤＤ２０においては、ＨＤＤ制御部１３から受信した命令がリード命令であり、且つ、そのリード命令がＦＵＡ命令である場合には、そのリード命令はコンペア・リード命令であって、次に、リード命令ではなくライト命令がＨＤＤ制御部１３から送信される可能性が高い。
【００７８】
そこで、本ストレージシステムにおいては、ＨＤＤ２０において、ＨＤＤ制御部１３から受信した命令がコマンド解析部２２によりリード命令であると判断され、且つ、ＦＵＡ判定部２３によりそのリード命令がＦＵＡ命令であると判定された場合に、前述した先読み機能を抑止する。これにより、後続するライト命令を迅速に処理することができるのである。
【００７９】
また、この際、先読み機能を抑止するとともに、例えば、磁気ヘッド（ライトヘッド）をトラックセンタに位置付けする等の、次のライトを行なうための準備にとりかかることにより、後続するライト命令をより迅速に処理することができるのである。
さらに、ライト・リード制御部２４が、コマンド解析部２２によるリード命令の解析や、ＦＵＡ判定部２３によるＦＵＡ命令の判定に基づき、受信したリード命令がコンペア・リード命令であって、次にライト命令がＨＤＤ制御部１３から送信されるとの判断を行なうことができる。これにより、効率的に先読み機能の抑止を行なうことができる。
【００８０】
また、ライト・ベリファイを伴うデータのライトをＨＤＤ２０に対して行なう場合に、キャッシュ領域２５において、無意味なキャッシュデータが先読み機能により格納されることがない。これにより、先読みした無意味なキャッシュデータをキャッシュ領域２５から破棄する処理を行なう必要がなく効率的である。
さらに、ホスト２からのリード指示等、ライト・ベリファイ機能によるリード命令以外のリード命令については、リード制御部１５において、ホストリード制御部１５１がそのリード命令のＦＵＡフラグを無効（ＦＵＡ＝０）に設定する。これにより、ＨＤＤ２０のＨＤＤキャッシュ制御部２１において、ＦＵＡ判定部２３によりリード命令のＦＵＡフラグが無効であると判定され、ライト・リード制御部２４が、先読み機能を抑止しない（すなわち、先読み機能を実施する）のでリード性能を高く維持することができる。
【００８１】
（Ｂ）第２実施形態の説明
図３は第２実施形態の一例としてのストレージシステムの構成を模式的に示す図である。
この図３に示すように、第２実施形態のストレージシステム１′は、第１実施形態のＨＤＤ２０のＨＤＤキャッシュ制御部２１に代えてＨＤＤキャッシュ制御部２１′をそなえるものであり、その他の部分は第１実施形態のストレージシステム１と同様に構成されている。
【００８２】
そして、この第２実施形態のストレージシステム１′においては、ＲＡＭ２０２が、キャッシュ領域２５および先読み長記憶部２６として機能する他、更に、ライト領域記憶部２７として機能するようになっている。
なお、図中、既述の符号と同一の符号は同一もしくは略同一の部分を示しているので、その説明は省略する。
【００８３】
ライト領域記憶部（書込領域記憶部）２７は、記録媒体３０におけるライト命令にかかるデータ（ライトデータ）の書込位置に関する情報を記憶するものである。
本第２実施形態にかかるストレージシステム１′においては、ＭＰＵ２１（例えば、ライト・リード制御部２４）が、ライト・リード制御部２４により記録媒体３０に対してライトデータの書き込みを行なう。この際、ＭＰＵ２１は、記録媒体３０における、そのライト命令にかかるライトデータの書き込み位置に関する情報を、このライト領域記憶部２７に書込む（格納する）ようになっている。
【００８４】
そして、以下、この記録媒体３０のライト領域記憶部２７に格納される、ライト命令にかかるライトデータの書き込み位置を示す情報のことを、単にライト位置情報という場合がある。
また、このライト位置情報としては、例えば、ＬＢＡのような、記録媒体３０におけるライトデータの格納位置を具体的に表す情報を用いてもよく、又、例えば、ポインタのような、記録媒体３０におけるライトデータの格納位置を間接的に表す情報を用いてもよい。
【００８５】
すなわち、ライト領域記憶部２７には、記録媒体３０において最後にライトが行なわれた領域（直前のライト領域）を示す情報が格納されるのである。
また、本第２実施形態のストレージシステム１′においては、ライト・リード制御部（比較部）２４は、記録媒体３０からリードデータのリードを行なう際に、記録媒体３０におけるそのリード命令にかかるリードデータの読出位置を取得する。又、この際、ライト・リード制御部２４は、この取得した読出位置と、ライト領域記憶部２７に記憶されたライトデータの書込位置とを比較するようになっている。
【００８６】
本第２実施形態のストレージシステム１′においては、ライト・リード制御部（強制アクセス判定抑止部）２４は、上述したリードデータのリード位置（リード領域）と、ライト領域記憶部２７に記憶された書込命令にかかるデータのライト位置（ライト領域）とが一致しない場合には、そのリード命令はコンペアリード命令ではないことが明らかである。すなわち、これらのリード領域と直前のライト領域とが一致しない場合には、ホスト２からのリード要求に基づくリード命令である可能性が高い。
【００８７】
そこで、ライト・リード制御部２４は、上述したリードデータのリード領域と、ライト領域記憶部２７に記憶された書込命令にかかるデータのライト領域とが一致しない場合に、ＦＵＡ判定部２３によるＦＵＡ命令であるか否かの判定の実行を抑止して、先読み機能を実行するようになっている。
これにより、ＭＰＵ２０１において、ＦＵＡ判定部２３によるＦＵＡフラグが設定されているかの判断処理が省略され、リード命令をより高速に処理することが可能となるのである。
【００８８】
一方、上述したリードデータの読出位置と、ライト領域記憶部２７に記憶されたライトデータの書込位置との比較の結果、リードデータのリード位置（読出位置に関する情報）と、ライト領域記憶部２７に記憶された書込命令にかかるデータのライト位置（書込位置に関する情報）とが一致する場合には、そのリード命令が、コンペアリード命令である可能性が高い。
【００８９】
そこで、本第２実施形態のストレージシステム１′においては、ライト・リード制御部（先読み抑止部）２４は、上述したリードデータのリード位置と、ライト領域記憶部２７に記憶された書込命令にかかるデータのライト位置とが一致する場合にのみ、ＦＵＡ判定部２３によるＦＵＡフラグが設定されているかの判断を行なうようになっている。そして、ＦＵＡ判定部２３による判定の結果、そのリード命令にＦＵＡフラグが設定されている場合には（ＦＵＡ＝１）、先読み機能を抑止するのである。
【００９０】
上述の如く構成された本第２実施形態としてのストレージシステムにおけるＨＤＤキャッシュ制御部２１の処理を、図４に示すフローチャート（ステップＡ１０〜Ａ３０，Ｂ３１，Ａ４０〜Ａ６０，Ｂ６１，Ａ７０〜Ａ９０）に従って説明する。
なお、図中、既述の符号と同一の符号は同一もしくは略同一の処理を行なうステップを示しているので、その詳細な説明は省略する。
【００９１】
本第２実施形態のストレージシステム１′においては、ライト・リード制御部２４は、ライトデータをＨＤＤライト回路２８を介して記録媒体３０にライトさせた後（ステップＡ３０）、そのライト処理を行なった記録媒体３０における位置（ライト領域）を示す情報を、ライト領域記憶部２７に記録してから（ステップＢ３１；書込領域記憶ステップ）、処理を終了する。
【００９２】
また、受信した命令がリード命令であり（ステップＡ１０の“リードコマンド”ルート参照）、ＦＵＡ判定部２３による判定の結果、ＦＵＡフラグが“０（ＦＵＡ＝０）”であり（ステップＡ４０の“ＦＵＡ＝０”ルート参照）、更に、リード対象のデータと同一のリードデータがキャッシュ領域２５に格納されていない場合には（ステップＡ５０の“無し”ルート参照）、ライト・リード制御部２４は、記録媒体３０におけるＨＤＤ制御部１３によって指示された領域（リード領域）のデータをＨＤＤリード回路２９によりリードする。
【００９３】
そして、ライト・リード制御部２４は、このリードしたリードデータをキャッシュ領域２５に格納する。その後（ステップＡ６０）、ライト・リード制御部２４は、そのリード命令に関する記録媒体３０におけるリードデータの読出位置（リード領域）と、ライト領域記憶部２７に記憶されたライトデータの書込位置（ライト領域）とを比較して、これらが一致するか否かを確認する（ステップＢ６１；比較ステップ）。
【００９４】
これらのライト領域とリード領域が一致する場合に（ステップＢ６１のＹＥＳルート参照）、ＦＵＡ判定部２３は、再度、そのリード命令におけるＦＵＡフラグの設定値の確認を行ない、このＦＵＡフラグが“１（ＦＵＡ＝１）”であるか否かを確認する（ステップＡ７０）。
このＦＵＡ判定部２３による判定の結果、ＦＵＡフラグが“０（ＦＵＡ＝０）”であった場合には（ステップＡ７０の“ＦＵＡ＝０”ルート参照）、ライト・リード制御部２４は、記録媒体３０における、ステップＡ６０においてリードを行なったリード領域に続く（後続の）先読み長分の領域のデータをリードする。そして、ライト・リード制御部２４は、そのデータをキャッシュ領域２５に格納する（ステップＡ８０）。すなわち、先読み機能を実行する。
【００９５】
一方、ＦＵＡ判定部２３による判定の結果、ＦＵＡフラグが“１（ＦＵＡ＝１）”であった場合には（ステップＡ７０の“ＦＵＡ＝１”ルート参照）、先読み機能を実行せずに（抑止して）、ステップＡ９０に移行する。
そして、本第２実施形態のストレージシステム１′においては、ライト・リード制御部２４は、ライト領域とリード領域との比較の結果、これらの領域が一致しない場合に（ステップＢ６１のＮＯルート参照）、ステップＡ８０に移行する。これにより、ＦＵＡ判定部２３によるＦＵＡ命令であるか否かの判定の実行を抑止して（強制アクセス判定抑止ステップ）、先読み機能を実行する。
【００９６】
すなわち、ライト・リード制御部２４は、記録媒体３０における、ステップＡ６０においてリードを行なったリード領域に続く（後続の）先読み長分の領域のデータをリードして、そのデータをキャッシュ領域２５に格納した後（ステップＡ８０）、ステップＡ９０に移行する。
このように、本第２実施形態としてのストレージシステム１′によれば、上述した第１実施形態と同様の作用効果を得ることができる。更に、本第２実施形態のストレージシステム１′によれば、リードデータのリード領域と、ライト領域記憶部２７に記憶された書込命令にかかるデータのライト領域とが一致しない場合に、ライト・リード制御部２４が、ＦＵＡ判定部２３によるＦＵＡ命令であるか否かの判定の実行を抑止して先読み機能を実行するようになっている。これにより、ＭＰＵ２０１において、ＦＵＡ判定部２３によるＦＵＡフラグが設定されているかの判断処理を省略することができる。従って、ＭＰＵ２０１の負荷を軽減し、リード命令を高速に処理することが可能となる。
【００９７】
（Ｃ）その他
そして、開示の記憶装置、記憶システム及び制御方法は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、上述した各実施形態においては、ＲＡＭ２０２が上述したキャッシュ領域２５や先読み長記憶部２６，ライト領域記憶部２７としての機能を実現しているが、これに限定されるものではない。例えば、これらのキャッシュ領域２５や先読み長記憶部２６，ライト領域記憶部２７のうち少なくともいずれか1つを、他の記憶装置（メモリ等）で実現してもよい。
【００９８】
また、上述した各実施形態においては、先読みフラグを、ＨＤＤ２０における記録媒体３０に設定する例を示しているが、これに限定されるものではない。例えば、この記録媒体３０以外の場所に設定してもよく、例えば、図示しないＲＡＭ２０２や図示しない不揮発性メモリ等にこの先読みフラグを設定してもよい。
さらに、上述した各実施形態においては、ＲＡＩＤ装置１０において、表面に磁性体を塗布もしくは蒸着した１以上の円盤により構成された記録媒体３０をそなえるＨＤＤ２０をそなえた例について説明しているが、これに限定されるものではない。例えば、記憶媒体３０として、例えば、光磁気ディスクや半導体記憶装置等の他の記録媒体をそなえてもよい。
【００９９】
なお、上述した各実施形態が開示されていれば、開示の記憶装置、記憶システム及び制御方法を当業者によって実施・製造することが可能である。
（Ｄ）付記
（付記１）  データを記録可能な記録媒体をそなえ、該記録媒体からの該データの読み出し時に、該記録媒体における読出対象データに後続する所定サイズのデータを先読みデータとして読み出す先読み機能をそなえた記憶装置であって、
上位装置から受信する該データに関する命令を解析し、当該命令が読出命令であるか否かを判断する命令解析部と、
該命令解析部により該命令が該読出命令であると判断された場合において、当該読出命令が該記録媒体に対する強制的なアクセスを伴う強制アクセス命令であるか否かを判定する強制アクセス判定部と、
該命令解析部により該命令が該読出命令であると判断され、且つ、該強制アクセス判定部により該命令が強制アクセス命令であると判定された場合に、該先読み機能を抑止する先読み抑止部とをそなえることを特徴とする、記憶装置。
【０１００】
（付記２）  該記録媒体における該書込命令にかかるデータの書込位置に関する情報を記憶する書込領域記憶部と、
該命令解析部が、該命令の解析を行なった結果、当該命令が該読出命令であると判断した場合に、該記録媒体における当該読出命令にかかるデータの読出位置に関する情報と、該書込領域記憶部に記憶された前記書込命令にかかるデータの書込位置に関する情報とを比較する比較部と、
該比較部による比較の結果、前記読出命令にかかるデータの読出位置に関する情報と、前記書込領域記憶部に記憶された書込命令にかかるデータの書込位置に関する情報とが一致しない場合に、該強制アクセス判定部による判定を抑止する強制アクセス判定抑止部とをそなえることを特徴とする、付記１記載の記憶装置。
【０１０１】
（付記３）  データを記録可能な記録媒体をそなえ、該記録媒体からの該データの読み出し時に、該記録媒体における読出対象データに後続する所定サイズのデータを先読みデータとして読み出す先読み機能をそなえた記憶装置と、
該記憶装置に対して書込命令を送信することにより該データの書込制御を行なうとともに、該記憶装置に対して読出命令を送信することにより読出制御を行なう制御部とをそなえた記憶システムであって、
該制御部が、
該書込命令により該記録媒体に該データの書き込みを行なった後に、該記録媒体における当該データの書き込みを行なった領域から当該データを読み出すべく該読出命令を送信する読出命令送信部と、
該読出命令送信部によって送信される該読出命令に対して、当該読出命令が該記録媒体に対する強制的なアクセスを伴う強制アクセス命令（ＦＵＡ；Force Unit Access）であることを示す強制アクセス命令情報を設定する強制アクセス命令情報設定部と、
該記録媒体に書き込んだ該データと該記録媒体から読み出した該データとを比較するデータ比較部とをそなえ、
該記憶装置が、
該制御部から受信する該データに関する命令を解析し、当該命令が該読出命令であるか否かを判断する命令解析部と、
該命令解析部により該命令が該読出命令であると判断された場合において、当該読出命令が該強制アクセス命令であるか否かを判定する強制アクセス判定部と、
該命令解析部により該命令が該読出命令であると判断され、且つ、該強制アクセス判定部により該命令が該強制アクセス命令であると判定された場合に、該先読み機能を抑止する先読み抑止部とをそなえることを特徴とする、記憶システム。
【０１０２】
（付記４）  該記録媒体における該書込命令にかかるデータの書込位置に関する情報を記憶する書込領域記憶部と、
該命令解析部が、該命令の解析を行なった結果、当該命令が該読出命令であると判断した場合に、該記録媒体における当該読出命令にかかるデータの読出位置に関する情報と、該書込領域記憶部に記憶された前記書込命令にかかるデータの書込位置に関する情報とを比較する比較部と、
該比較部による比較の結果、前記読出命令にかかるデータの読出位置に関する情報と、前記書込領域記憶部に記憶された書込命令にかかるデータの書込位置に関する情報とが一致しない場合に、該強制アクセス判定部による判定を抑止する強制アクセス判定抑止部とをそなえることを特徴とする、付記３記載の記憶システム。
【０１０３】
（付記５）  データを記録可能な記録媒体をそなえ、該記録媒体からの該データの読み出し時に、該記録媒体における読出対象データに後続する所定サイズのデータを先読みデータとして読み出す先読み機能をそなえた記憶装置の制御方法であって、
上位装置から受信する該データに関する命令を解析し、当該命令が読出命令であるか否かを判断する命令解析ステップと、
該命令解析ステップにおいて該命令が該読出命令であると判断された場合において、当該読出命令が該記録媒体に対する強制的なアクセスを伴う強制アクセス命令であるか否かを判定する強制アクセス判定ステップと、
該命令解析ステップにおいて該命令が該読出命令であると判断され、且つ、強制アクセス判定ステップにおいて該命令が該強制アクセス命令であると判定された場合に、該先読み機能を抑止する先読み抑止ステップとをそなえることを特徴とする、制御方法。
【０１０４】
（付記６）  該記録媒体における該書込命令にかかるデータの書込位置に関する情報を書込領域記憶部に記憶する書込領域記憶ステップと、
該命令解析ステップにおいて、該命令の解析を行なった結果、当該命令が読出命令であると判断した場合に、該記録媒体における当該読出命令にかかるデータの読出位置に関する情報と、該書込領域記憶部に記憶された前記書込命令にかかるデータの書込位置に関する情報とを比較する比較ステップと、
該比較ステップにおける比較の結果、前記読出命令にかかるデータの読出位置に関する情報と、前記書込領域記憶部に記憶された書込命令にかかるデータの書込位置に関する情報とが一致しない場合に、該強制アクセス判定ステップにおける判定を抑止する強制アクセス判定抑止ステップとをそなえることを特徴とする、付記５記載の制御方法。
【産業上の利用可能性】
【０１０５】
先読み機能をそなえた種々の記憶装置における、ライト・ベリファイ機能を伴うデータの書き込みに適用できる。
【図面の簡単な説明】
【０１０６】
【図１】第１実施形態の一例としてのストレージシステムの構成を模式的に示す図である。
【図２】第１実施形態のストレージシステムにおけるＨＤＤキャッシュ制御部の一例としての処理を説明するためのフローチャートである。
【図３】第２実施形態の一例としてのストレージシステムの構成を模式的に示す図である。
【図４】第２実施形態としてのストレージシステムにおけるＨＤＤキャッシュ制御部の一例としての処理を説明するためのフローチャートである。
【図５】従来のＲＡＩＤシステムのハードウェア構成を模式的に示す図である。
【図６】従来のＲＡＩＤシステムにおけるＨＤＤに書き込まれるライトデータの構成例を模式的に示す図である。
【符号の説明】
【０１０７】
１，１′    ストレージシステム
２    ホスト
１０    ＲＡＩＤ装置（記憶システム）
１１    チャネルインタフェース
１２    ＲＡＩＤキャッシュ制御部
１３    ＨＤＤ制御部（制御部，上位装置）
１４    ライト制御部
１５    リード制御部
１６    ＨＤＤインタフェース
２０ａ，２０ｂ，２０ｃ，２０    ＨＤＤ（記憶装置）
２１    ＨＤＤキャッシュ制御部
２２    コマンド解析部（命令解析部）
２３    ＦＵＡ判定部（強制アクセス判定部）
２４    ライト・リード制御部（先読み抑止部，比較部，強制アクセス判定抑止部）
２５    キャッシュ領域
２６    先読み長記憶部
２７    ライト領域記憶部（書込領域記憶部）
２８    ＨＤＤライト回路
２９    ＨＤＤリード回路
３０    記録媒体
１４１    ＨＤＤライト制御部（強制アクセス命令情報設定部）
１４２    ライトデータコンペア部（データ比較部）
１４３    ＨＤＤコンペアリード制御部
２０１    ＭＰＵ
２０２    ＲＡＭ
【図１】
2010128887.tif 000003
【図２】
2010128887.tif 000004
【図３】
2010128887.tif 000005
【図４】
2010128887.tif 000006
【図５】
2010128887.tif 000007
【図６】
2010128887.tif 000008