(57)【要約】【課題】  従来、ストレージ装置のデータ転送方法は画一的なものであり、ブロックデータをホストとの間で好適に転送することが難しい場合もあった。【解決手段】  ブロックデータをホストとの間で転送するストレージ装置のデータ転送方法であって、前記ブロックデータからチェックコードを除いた実データだけを一時的に保持して前記ホストとのデータ転送を行う第１のデータ転送処理Ｌ１と、前記実データおよび前記チェックコードをアドレス毎に細分化制御して前記ホストとのデータ転送を行う第２のデータ転送処理Ｌ２と、を備え、前記ストレージ装置の負荷状態に応じて前記第１または第２のデータ転送処理を選択し、該選択された第１または第２のデータ転送処理により前記ホストとのデータ転送を行うように構成する。【選択図】      図４
2007004720.tif 000002
【特許請求の範囲】
【請求項１】
ブロックデータをホストとの間で転送するストレージ装置のデータ転送方法であって、
前記ブロックデータからチェックコードを除いた実データだけを一時的に保持して前記ホストとのデータ転送を行う第１のデータ転送処理と、前記実データおよび前記チェックコードをアドレス毎に細分化制御して前記ホストとのデータ転送を行う第２のデータ転送処理と、を備え、
前記ストレージ装置の負荷状態に応じて前記第１または第２のデータ転送処理を選択し、該選択された第１または第２のデータ転送処理により前記ホストとのデータ転送を行うことを特徴とするストレージ装置のデータ転送方法。
【請求項２】
請求項１に記載のストレージ装置のデータ転送方法において、前記第１または第２のデータ転送処理の選択は、前記ストレージ装置における制御チップの負荷、起動中のデータ転送量、これから起動するデータ転送量、或いは、前記ブロックデータからチェックコードを除いた実データだけを一時的に保持する二次バッファの空き容量に応じて行うことを特徴とするストレージ装置のデータ転送方法。
【請求項３】
ブロックデータをホストとの間で転送するストレージ装置であって、
前記ブロックデータを記憶する記憶手段と、
実データおよびチェックコードを有する前記ブロックデータを一時的に保持する一次バッファと、
前記ブロックデータから前記チェックコードを除いた前記実データだけを一時的に保持する二次バッファと、
前記ホストとの間のインタフェースを制御する制御チップと、
前記二次バッファに保持された前記実データを用いて前記ホストとのデータ転送を行う第１のデータ転送処理、および、前記実データおよび前記チェックコードをアドレス毎に細分化制御して前記ホストとのデータ転送を行う第２のデータ転送処理を、前記ストレージ装置の負荷状態に応じて選択する選択手段と、を備えることを特徴とするストレージ装置。
【請求項４】
請求項３に記載のストレージ装置において、前記選択手段は、前記ストレージ装置における制御チップの負荷、起動中のデータ転送量、これから起動するデータ転送量、或いは、前記二次バッファの空き容量に応じて前記第１または第２のデータ転送処理を選択することを特徴とするストレージ装置。
【請求項５】
ブロックデータをホストとの間で転送する場合、前記ブロックデータからチェックコードを除いた実データだけを一時的に保持して前記ホストとのデータ転送を行う第１のデータ転送処理と、前記実データおよび前記チェックコードをアドレス毎に細分化制御して前記ホストとのデータ転送を行う第２のデータ転送処理と、を備え、
コンピュータに、
前記ストレージ装置の負荷状態に応じて前記第１または第２のデータ転送処理を選択させ、
該選択された第１または第２のデータ転送処理により前記ホストとのデータ転送を行わせることを特徴とするストレージ装置のデータ転送プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置およびストレージ装置のデータ転送方法に関し、特に、実データおよびチェックコードを有するブロックデータをホストとの間で転送するストレージ装置およびストレージ装置のデータ転送方法に関する。
【背景技術】
【０００２】
従来、例えば、ＲＡＩＤ（Redundant Arrays of Independent (Inexpensive） Disks）装置などのストレージ装置は、書き込み処理として、ホストから送信されてきた実データ（ユーザデータ）に対してチェックコードを付加し、そのチェックコードを含めたデータを自ストレージ装置（例えば、ハードディスク装置：ＨＤＤ：Hard Disk Drive）に書き込み、また、読み出し処理として、チェックコードによるチェックを行うと共に、そのチェックコードを除いた実データのみの形式としてホストに転送している。ここで、ブロックデータは、例えば、実データが５１２バイトでチェックコードが８バイトの５２０バイトのブロック長のデータとして構成される。
【０００３】
従来、ブロックデータをストレージ装置とホスト間で転送する方式として、ストレージ装置内でチェックコードによるチェックを行った後、チェックコードを除いた実データだけを一時的に二次バッファに保持してホストとのデータ転送を行う方式が知られている。また、従来、チェックコードを含んだ状態で一次バッファ（キャッシュ）上でチェックコードによるチェックを行った後、保持されたブロックデータから実データのアドレスを細分化してホストとのデータ転送を行う方式も考えられている。
【０００４】
ところで、従来、実データの転送を阻害することなく、データが正常にストレージ装置に書き込まれたかどうかをデータ転送元のホストで知るデータ転送システムとして、ホストとストレージ装置との間に、システムバスを介して、データバッファ，ＣＲＣチェック回路およびブロックＣＲＣコード→ＣＲＣ変換回路を有するホストアダプタと、データバッファおよびブロックＣＲＣコード生成回路を有するメモリアダプタと、を設けるものが知られている（例えば、特許文献１参照）。
【０００５】
【特許文献１】特開２００２−３５１６８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述したように、従来、ブロックデータをストレージ装置とホスト間で転送する方式として、ストレージ装置内でチェックコードによるチェックを行った後、チェックコードを除いた実データだけを一時的に二次バッファに保持してホストとのデータ転送を行う方式が知られており、また、チェックコードを含んだ状態で一次バッファ（キャッシュ）上でチェックコードによるチェックを行った後、保持されたブロックデータから実データのアドレスを細分化してホストとのデータ転送を行う方式が考えられている。
【０００７】
ＦＣ（Fibre Channel）やｉＳＣＳＩ（Internet Small Computer System Interface）などの制御チップに対してデータ転送を指示する場合、転送アドレスとカウントのペアで構成されるデータ転送リストを使用する。このリストに着目すると、ストレージ装置内でチェックコードを除いた実データだけを一時的に二次バッファに保持してホストとのデータ転送を行う方式（第１のデータ転送処理）では、例えば、二次バッファ内のまとまった５１２バイト単位のデータを指定するためにリストの個数が１個となる（転送アドレスとカウントのペアは１ペア）。
【０００８】
一方、チェックコードを含んだ状態で一次バッファに一時的に保持されたブロックデータから実データのアドレスを細分化してホストとのデータ転送を行う方式（第２のデータ転送処理）では、一次バッファ上の５２０バイト単位のデータを５１２バイト単位で細分化指定するためにブロック数と同じ個数必要となる（転送アドレスとカウントのペアは複数ペアであり、その個数は転送ブロック数と同じ）。
【０００９】
ここで、ＦＣは、シリアル転送を行うためのインタフェースの１つでホストとの高速転送および長距離伝送が可能なものであり、また、ｉＳＣＳＩは、ＳＣＳＩコマンド／データをＴＣＰ／ＩＰパケットの伝送フレームの中に包み込み、ＩＰネットワーク経由で送受信するためのプロトコル規格である。
【００１０】
なお、本明細書では、主としてストレージ装置から読み出されたデータをホストへ転送する場合を説明するが、ホストから転送されたデータをストレージ装置へ書き込む場合も同様である。なお、チェックコード周りの動作に関し、読み出しではチェックコードによるチェックを行い、正常ならチェックコードを取り除くのに対して、書き込みではチェックコードを計算して付加するようになっている。
【００１１】
ところで、上述した第１および第２のデータ転送処理は、ＣＰＵの能力および二次バッファのサイズ等といったハードウェア構成によって差異はあるものの、概して以下のような特性がある。
【００１２】
すなわち、第１のデータ転送処理は、大容量のブロックアクセスに対しては有利であるが、二次バッファ１２の容量が少ない場合には該二次バッファが枯渇するおそれがあり、その場合には性能が低下してしまう。一方、第２のデータ転送処理は、小容量のブロックアクセスに対しては有利であるが、制御チップ１１に負担を掛ける傾向がある。なお、第２のデータ転送処理が有利として働く小容量のブロックアクセスとしては、ＣＰＵの能力等に大きく依存するが、例えば、数ＫＢ〜数１０ＫＢ程度のブロックアクセス容量である。
【００１３】
このように、第１のデータ転送処理は、二次バッファ１２の容量が少ない場合には該二次バッファが枯渇して性能の低下を来たすことになり、また、第２のデータ転送処理は、ブロックアクセスの容量が大きくなると制御チップに負担が掛かってやはり性能が低下することになる。すなわち、上述した第１および第２のデータ転送処理には、それぞれ長所および短所があり、どちらか一方のみを採用した場合には必ず短所が存在することになっていた。
【００１４】
さらに、従来、図１に示す第１のデータ転送処理において、例えば、チェックコードの処理を専用のハードウェアで構成して、第１のデータ転送処理を高速化する手法も提案されていた。しかしながら、このようにチェックコードの処理を専用のハードウェアで行うようにした場合、例えば、チェックコードの構成が変わったとき等にはハードウェア自身を変更しなければならず、融通が利かないといった問題がある。
【００１５】
本発明は、上述した従来のストレージ装置のデータ転送技術が有する課題に鑑み、ブロックデータをホストとの間で好適に転送することのできるストレージ装置およびストレージ装置のデータ転送方法の提供を目的とする。
【課題を解決するための手段】
【００１６】
本発明の第１の形態によれば、ブロックデータをホストとの間で転送するストレージ装置のデータ転送方法であって、前記ブロックデータからチェックコードを除いた実データだけを一時的に保持して前記ホストとのデータ転送を行う第１のデータ転送処理と、前記実データおよび前記チェックコードをアドレス毎に細分化制御して前記ホストとのデータ転送を行う第２のデータ転送処理と、を備え、前記ストレージ装置の負荷状態に応じて前記第１または第２のデータ転送処理を選択し、該選択された第１または第２のデータ転送処理により前記ホストとのデータ転送を行うことを特徴とするストレージ装置のデータ転送方法が提供される。
【００１７】
本発明の第２の形態によれば、ブロックデータをホストとの間で転送するストレージ装置であって、前記ブロックデータを記憶する記憶手段と、実データおよびチェックコードを有する前記ブロックデータを一時的に保持する一次バッファと、前記ブロックデータから前記チェックコードを除いた前記実データだけを一時的に保持する二次バッファと、前記ホストとの間のインタフェースを制御する制御チップと、前記二次バッファに保持された前記実データを用いて前記ホストとのデータ転送を行う第１のデータ転送処理、および、前記実データおよび前記チェックコードをアドレス毎に細分化制御して前記ホストとのデータ転送を行う第２のデータ転送処理を、前記ストレージ装置の負荷状態に応じて選択する選択手段と、を備えることを特徴とするストレージ装置が提供される。
【００１８】
本発明の第３の形態によれば、ブロックデータをホストとの間で転送する場合、前記ブロックデータからチェックコードを除いた実データだけを一時的に保持して前記ホストとのデータ転送を行う第１のデータ転送処理と、前記実データおよび前記チェックコードをアドレス毎に細分化制御して前記ホストとのデータ転送を行う第２のデータ転送処理と、を備え、コンピュータに、前記ストレージ装置の負荷状態に応じて前記第１または第２のデータ転送処理を選択させ、該選択された第１または第２のデータ転送処理により前記ホストとのデータ転送を行わせることを特徴とするストレージ装置のデータ転送プログラムが提供される。
【発明の効果】
【００１９】
本発明によれば、ブロックデータをホストとの間で好適に転送することのできるストレージ装置およびストレージ装置のデータ転送方法の提供が可能となる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明に係るストレージ装置およびストレージ装置のデータ転送方法の実施例を、添付図面を参照して詳述する。
【実施例】
【００２１】
図１は本発明に係るストレージ装置の一実施例における第１のデータ転送処理を説明するための図である。図１において、参照符号１はストレージ装置を示し、２はホストを示している。
【００２２】
ストレージ装置１は、制御チップ１１，二次バッファ１２，一次バッファ（キャッシュ）１３およびハードディスク装置１４を備える。制御チップ１１は、例えば、ＦＣやｉＳＣＳＩなどの制御チップであり、この制御チップ１１によりＦＣやｉＳＣＳＩなどのホストインタフェースを介してホスト２との間でデータのやりとりを行う。なお、以下の説明では、主としてストレージ装置１からデータを読み出してホスト２へ転送する場合を説明するが、ホスト２からのデータをストレージ装置１へ書き込む場合も同様である。
【００２３】
一次バッファ１３は、例えば、複数のハードディスク装置（ＨＤＤ：Hard Disk Drive）１４から読み出されたブロックデータを５２０バイト単位で一時的に保持している。ここで、１つのブロックデータは、例えば、５１２バイトの実データと８バイトのチェックコードで構成されている。
【００２４】
二次バッファ１２は、８バイトのチェックコードを除いた５１２バイト化されたデータ（実データのみ）を取り出して保持する。なお、１ブロックのデータサイズ、或いは、１ブロックにおける実データとチェックコードのサイズ等は、上述した構成に限定されるものではなく、様々に変化させることができるのはいうまでもない。
【００２５】
制御チップ１１は、二次バッファ１２から５１２バイト単位のデータをまとめて指定する。具体的に、例えば、二次バッファ１２には、一次バッファ１３に保持されたアドレス＃Ａ〜＃Ｄの５２０バイトのブロックデータのうち各実データ５１２バイトのみを格納する。このとき、チェックコードのチェックとチェックコードの取り除きが行われる。その後、制御チップ１１は、例えば、アドレス＃Ｅと４ブロック分のカウント数（２０４８）を与えることにより、＃Ａ〜＃Ｄの４ブロック分の実データが連続してホストインタフェースを介してホスト２へ転送される。
【００２６】
このように、本実施例のストレージ装置における第１のデータ転送処理は、制御チップ１１に対しては、１行だけのアドレスおよびカウント数の指定により、連続する複数ブロックのデータ（実データ）を読み出すようになっている。
【００２７】
なお、ホスト２から転送されたデータをストレージ装置１へ書き込む場合は、ホスト２からのデータ（実データ）がホストインタフェースおよび制御チップ１１を介してそのまま二次バッファ１２に転送される。このとき、制御チップ１１には１行だけのアドレスおよびカウント指定となる。その後、さらに、二次バッファ１２からの５１２バイト毎の実データに８バイトのチェックコードがそれぞれ付加されて一次バッファ１３に保持される。そして、この５１２バイトの実データおよび８バイトのチェックコードで構成される５２０バイトのブロックデータがハードディスク装置１４に書き込まれる。
【００２８】
このように、ホスト２から転送されたデータをストレージ装置１へ書き込む場合も、前述したストレージ装置１から読み出したデータをホスト２へ転送する場合と同様に、第１のデータ転送処理は、ブロックデータからチェックコードを除いた実データだけを一時的に二次バッファ１２に保持することになる。
【００２９】
図２は本発明に係るストレージ装置の一実施例における第２のデータ転送処理を説明するための図である。
【００３０】
図２と図１との比較から明らかなように、本実施例のストレージ装置における第２のデータ転送処理は、制御チップ１１が一次バッファ１３から直接各アドレスの実データを取り込むようになっている。すなわち、制御チップ１１は、一次バッファ１３に保持されたアドレス＃Ａ〜＃Ｄの５２０バイトのデータからそれぞれ８バイトのチェックデータを取り除き、それぞれアドレス＃Ａ〜＃Ｄおよびカウント数（５１２）を与えることにより、＃Ａ〜＃Ｄの各５１２バイトの実データを順次ホスト２へ転送する。
【００３１】
このように、本実施例のストレージ装置における第２のデータ転送処理では、ブロック数と同じ行数のアドレス指定を行って複数ブロックのデータ（実データ）を読み出すようになっている。
【００３２】
なお、ホスト２から転送されたデータをストレージ装置１へ書き込む場合は、ホスト２からのデータは、ホストインタフェースおよび制御チップ１１を介して５１２バイトの実データと、その後の８バイト分のアドレスをスキップし、順次一次バッファ１３へ格納し、各アドレスの５１２バイトの実データに対応するチェックコードを上記の８バイトスキップしたデータ個所に埋め込んで、５１２バイトの実データおよび８バイトのチェックコードで構成される５２０バイトのブロックデータをハードディスク装置１４に書き込む。
【００３３】
このように、ホスト２から転送されたデータをストレージ装置１へ書き込む場合も、前述したストレージ装置１から読み出したデータをホスト２へ転送する場合と同様に、第２のデータ転送処理は、二次バッファ１２を使用してブロックデータからチェックコードを除いた実データだけを保持することなく、実データおよびチェックコードをアドレス毎に細分化して制御することになる。
【００３４】
ここで、前述したように、第１のデータ転送処理は、大容量のブロックアクセスに対しては有利であるが、二次バッファ１２の容量が少ない場合には該二次バッファが枯渇するおそれがあり、その場合には性能が低下してしまう。また、第２のデータ転送処理は、小容量のブロックアクセスに対しては有利であるが、制御チップ１１に負担を掛ける傾向があり、やはり性能の低下を来たすことになる。
【００３５】
そこで、本発明は、上述した第１のデータ転送処理および第２のデータ転送処理を、ストレージ装置の内部で動的に切り替えることで、両者の長所を生かすと共に短所を補うようにして、ストレージ装置とホストとの間のデータ転送を行うものである。
【００３６】
本発明は、例えば、大容量アクセス時は第１のデータ転送処理を行い、また、小容量アクセス時は第２のデータ転送処理を行うものであり、さらに、ストレージ装置のその時々の状態に応じて、すなわち、現在処理中の全アクセスのブロック量、二次バッファの空き容量（或いは、使用している容量）、さらには、ホストインタフェース制御チップの能力等に応じて、第１のデータ転送処理および第２のデータ転送処理を切り替え、ストレージ装置とホストとの間のデータ転送処理の性能を最大限に発揮させるものである。
【００３７】
図３は本発明に係るストレージ装置の一実施例におけるコアの判断部の処理を概念的に説明するための図である。
【００３８】
図３に示されるように、コアの判断部１００は、例えば、チップの負荷１０１、起動中のデータ転送量１０２、これから起動するデータ転送量１０３および二次バッファの空き容量１０４等のストレージ装置の負荷状態に応じて、前述した第１のデータ転送処理および第２のデータ転送処理のどちらを選択するかを判断する。
【００３９】
すなわち、コアの判断部１００（コア）に対して、実際にデータ転送を実施する直前に、チップの負荷１０１、起動中のデータ転送量１０２、これから起動するデータ転送量１０３および二次バッファの空き容量１０４の４つのパラメータを入力し、これから行う転送が第１のデータ転送処理或いは第２のデータ転送処理のどちらが高速に行えるかを予測し、その結果を出力すると共に、その結果によって判断された転送方法によって生じる新たな各パラメータを現在のパラメータに加算・フィードバックすることで次回の判断にも使用する。そして、転送が終了した時点で、各パラメータ値より減算および再計算等、フィードバックを行う。なお、ストレージ装置のホストインタフェースポートは、１つに限定されず、複数存在する場合もある。このため、上記の各パラメータは、ホストインタフェースポート毎（制御チップポート毎）に管理される。
【００４０】
ここで、コアの判断部１００は、例えば、単に１つのコマンドによるデータ転送量や制御チップの負荷を見るのではなく、連続する複数のコマンドによる総合的なデータ転送量や実際にそれらのコマンドによる制御チップの負荷等に基づいて、第１のデータ転送処理或いは第２のデータ転送処理の選択を行うようになっている。なお、コアの判断部１００に入力するパラメータとしては、上述したチップの負荷１０１、起動中のデータ転送量１０２、これから起動するデータ転送量１０３および二次バッファの空き容量１０４の４つに限定されないのはもちろんである。
【００４１】
図４は本発明に係るストレージ装置における第１および第２のデータ転送処理の切り替えの様子を説明するための図である。なお、図４において、参照符号Ｌ１は図１を参照して説明したような第１の転送処理を示し、また、Ｌ２は図２を参照して説明したような第２の転送処理を示す。
【００４２】
まず、図１を参照して説明した第１のデータ転送処理Ｌ１は、データ転送が二段になっているために、ＣＰＵの能力等に依存するが、例えば、データの容量が数ＫＢ〜数１０ＫＢ、或いは、数１００ＫＢ〜数ＭＢ程度を閾値（一定の基準）として、それよりもブロックアクセス容量が小さいと、第２のデータ転送処理Ｌ２よりも性能が劣る。しかしながら、第１のデータ転送処理Ｌ１は、例えば、上記の閾値を超える大容量のデータ転送においては、安定して性能は伸びることになる。
【００４３】
一方、図２を参照して説明した第２のデータ転送処理Ｌ２は、データ転送が一段であるため、小容量のデータ転送では第１のデータ転送処理Ｌ１に比較して良好な性能を得ることができる。しかしながら、第２のデータ転送処理Ｌ２は、上記の閾値を超える大容量のデータ転送においては、例えば、制御チップの限界が見え始め、アクセスサイズが或る時点以上から（データ転送容量が上記の閾値を超える辺りから）性能が伸びない。
【００４４】
そこで、本発明は、図４から明らかなように、データ容量が所定の閾値よりも小さい領域では第２のデータ転送処理Ｌ２を適用し、且つ、データ容量が所定の閾値よりも大きい領域では第１のデータ転送処理Ｌ１を適用することで、単一方式では得られない性能を引き出すことを可能とするものである。
【００４５】
なお、第１のデータ転送処理および第２のデータ転送処理の選択は、図３を参照して説明したように、例えば、チップの負荷、起動中のデータ転送量、これから起動するデータ転送量および二次バッファの空き容量等、そのときのストレージ装置の状態に応じても動的に行う。これにより、小容量アクセスであっても同時に実行するコマンド数が多い場合等においても制御チップが限界に達してしまったり、或いは、大容量であっても制御チップの能力を引き出すことができずに二次バッファが枯渇してしまうといった問題を回避することが可能となる。
【００４６】
なお、本発明に係るストレージ装置のデータ転送方法は、例えば、ＲＡＩＤ装置等のストレージ装置におけるファームウェア（プログラム）として提供され得る。また、このプログラムは、例えば、フラッシュＥＥＰＲＯＭや他の記録媒体に格納してユーザに提供することも可能である。
【００４７】
（付記１）
ブロックデータをホストとの間で転送するストレージ装置のデータ転送方法であって、
前記ブロックデータからチェックコードを除いた実データだけを一時的に保持して前記ホストとのデータ転送を行う第１のデータ転送処理と、前記実データおよび前記チェックコードをアドレス毎に細分化制御して前記ホストとのデータ転送を行う第２のデータ転送処理と、を備え、
前記ストレージ装置の負荷状態に応じて前記第１または第２のデータ転送処理を選択し、該選択された第１または第２のデータ転送処理により前記ホストとのデータ転送を行うことを特徴とするストレージ装置のデータ転送方法。
【００４８】
（付記２）
付記１に記載のストレージ装置のデータ転送方法において、前記第１または第２のデータ転送処理の選択は、前記ストレージ装置における制御チップの負荷、起動中のデータ転送量、これから起動するデータ転送量、或いは、前記ブロックデータからチェックコードを除いた実データだけを一時的に保持する二次バッファの空き容量に応じて行うことを特徴とするストレージ装置のデータ転送方法。
【００４９】
（付記３）
付記２に記載のストレージ装置のデータ転送方法において、前記第１または第２のデータ転送処理の選択は、前記ストレージ装置における前記制御チップの負荷、前記起動中のデータ転送量、前記これから起動するデータ転送量、或いは、前記二次バッファの空き容量に応じた前記ストレージ装置の負荷状態を示す所定の値を、予め設定した閾値と比較して前記第１または第２のデータ転送処理を選択することを特徴とするストレージ装置のデータ転送方法。
【００５０】
（付記４）
付記３に記載のストレージ装置のデータ転送方法において、前記第１または第２のデータ転送処理の選択は、前記ストレージ装置の負荷状態を示す所定の値が前記予め設定した閾値よりも小さい場合には前記第２のデータ転送処理を選択し、且つ、前記ストレージ装置の負荷状態を示す所定の値が前記予め設定した閾値よりも大きい場合には前記第２のデータ転送処理を選択することを特徴とするストレージ装置のデータ転送方法。
【００５１】
（付記５）
付記１に記載のストレージ装置のデータ転送方法において、前記第１または第２のデータ転送処理の選択は、前記ストレージ装置のホストインタフェースポート毎に行うことを特徴とするストレージ装置のデータ転送方法。
【００５２】
（付記６）
ブロックデータをホストとの間で転送するストレージ装置であって、
前記ブロックデータを記憶する記憶手段と、
実データおよびチェックコードを有する前記ブロックデータを一時的に保持する一次バッファと、
前記ブロックデータから前記チェックコードを除いた前記実データだけを一時的に保持する二次バッファと、
前記ホストとの間のインタフェースを制御する制御チップと、
前記二次バッファに保持された前記実データを用いて前記ホストとのデータ転送を行う第１のデータ転送処理、および、前記実データおよび前記チェックコードをアドレス毎に細分化制御して前記ホストとのデータ転送を行う第２のデータ転送処理を、前記ストレージ装置の負荷状態に応じて選択する選択手段と、を備えることを特徴とするストレージ装置。
【００５３】
（付記７）
付記６に記載のストレージ装置において、前記選択手段は、前記ストレージ装置における制御チップの負荷、起動中のデータ転送量、これから起動するデータ転送量、或いは、前記二次バッファの空き容量に応じて前記第１または第２のデータ転送処理を選択することを特徴とするストレージ装置。
【００５４】
（付記８）
付記７に記載のストレージ装置において、前記選択手段は、前記ストレージ装置における前記制御チップの負荷、前記起動中のデータ転送量、前記これから起動するデータ転送量、或いは、前記二次バッファの空き容量に応じた前記ストレージ装置の負荷状態を示す所定の値を、予め設定された閾値と比較して前記第１または第２のデータ転送処理を選択することを特徴とするストレージ装置。
【００５５】
（付記９）
付記８に記載のストレージ装置において、前記選択手段は、前記ストレージ装置の負荷状態を示す所定の値が前記予め設定した閾値よりも小さい場合には前記第２のデータ転送処理を選択し、且つ、前記ストレージ装置の負荷状態を示す所定の値が前記予め設定した閾値よりも大きい場合には前記第２のデータ転送処理を選択することを特徴とするストレージ装置。
【００５６】
（付記１０）
付記６に記載のストレージ装置において、前記選択手段は、前記ストレージ装置のホストインタフェースポート毎に前記第１または第２のデータ転送処理を選択することを特徴とするストレージ装置。
【００５７】
（付記１１）
ブロックデータをホストとの間で転送する場合、前記ブロックデータからチェックコードを除いた実データだけを一時的に保持して前記ホストとのデータ転送を行う第１のデータ転送処理と、前記実データおよび前記チェックコードをアドレス毎に細分化制御して前記ホストとのデータ転送を行う第２のデータ転送処理と、を備え、
コンピュータに、
前記ストレージ装置の負荷状態に応じて前記第１または第２のデータ転送処理を選択させ、
該選択された第１または第２のデータ転送処理により前記ホストとのデータ転送を行わせることを特徴とするストレージ装置のデータ転送プログラム。
【産業上の利用可能性】
【００５８】
本発明は、実データおよびチェックコードを有するブロックデータをホストとの間で転送する様々なストレージ装置に対して幅広く適用することができる。
【図面の簡単な説明】
【００５９】
【図１】本発明に係るストレージ装置の一実施例における第１のデータ転送処理を説明するための図である。
【図２】本発明に係るストレージ装置の一実施例における第２のデータ転送処理を説明するための図である。
【図３】本発明に係るストレージ装置の一実施例におけるコアの判断部の処理を概念的に説明するための図である。
【図４】本発明に係るストレージ装置における第１および第２のデータ転送処理の切り替えの様子を説明するための図である。
【符号の説明】
【００６０】
１    ストレージ装置
２    ホスト
１１    制御チップ
１２    二次バッファ
１３    一次バッファ（キャッシュ）
１４    ハードディスク装置
１００    コアの判断部
１０１    制御チップの負荷
１０２    起動中のデータ転送量
１０３    これから起動するデータ転送量
１０４    二次バッファの空き容量
Ｌ１    第１のデータ転送処理
Ｌ２    第２のデータ転送処理
【図１】
2007004720.tif 000003
【図２】
2007004720.tif 000004
【図３】
2007004720.tif 000005
【図４】
2007004720.tif 000006