(57)【特許請求の範囲】
【請求項１】
複数のディスクドライブを含むディスクデバイスを用いて構成されるＲＡＩＤセットを少なくとも一つ有し、ホストに接続される制御装置であって、
前記ホストに対して一つのインタフェースを介して接続され、ポートごとに一つの論理デバイスを接続可能なプロトコルにて、前記ホストとの間でデータの授受を行う手段と、
前記プロトコルで規定される複数のポートを仮想的に設定する手段と、
前記ＲＡＩＤセットを、複数の論理デバイスに分割する手段と、
前記複数の論理デバイスのそれぞれを、前記仮想的に設定された複数のポートのそれぞれに接続する手段と、
を備え、
前記プロトコルは、ＡＨＣＩプロトコルである制御装置。
【請求項２】
請求項１に記載の制御装置であって、
前記ＲＡＩＤセットを、複数の論理デバイスに分割する手段は、少なくともシステムデータを格納する領域に対応した論理デバイスと、ユーザデータを格納する領域に対応した論理デバイスとを設定する。
【請求項３】
請求項１または２に記載の制御装置であって、
前記ＲＡＩＤセットを、複数の論理デバイスに分割する手段は、少なくとも一つの論理デバイスが２ＴｉＢ以下となるようＲＡＩＤセットを設定する。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）セットに接続される制御装置に関する。
【背景技術】
【０００２】
近年では多くのオペレーティングシステムがＡＨＣＩ（Advanced Host Controller Interface）に対応している。ＡＣＨＩは、インテル社が中心となって策定した、ＳＡＴＡ（Serial Advanced Technology Attachment）ホストバスアダプタのインタフェース仕様であり、ＳＡＴＡのポートごとに一つの論理デバイスを接続可能な仕様になっている機器が多い。
【０００３】
また従来より、一つのホストバスアダプタに対して複数のドライブを接続したい要望があり、この要望に応えるため、ポートマルチプライヤと呼ばれる規格が考えられてきた。ポートマルチプライヤでは、１つのポートに複数のデバイスを接続し、各デバイスに対して、スイッチングを行いつつコマンドを発行する。このようなポートマルチプライヤに対応したチップセットとして、非特許文献１に開示のものが知られている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】"Marvell 88SE92xx-Product-Brief"（Marvell 88SE9220/9230/9235のデータシート），Marvellセミコンダクタ・インク
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ポートマルチプライヤでは、ポートに接続される個々のハードディスクドライブ等をＲＡＩＤに構成したものとすることはできるものの、一つのＲＡＩＤセットを複数の論理デバイス（それぞれが互いに異なるＬＵＮ（Logical Unit Number）で識別されるデバイス）に分割して、個々のディスクとしてホストに認識させることができない。このため、上記従来例では、２TiB超の容量を有するＲＡＩＤセットを２TiB以下の論理デバイスに分割して、２TiB以下のデバイスのみを識別可能なシステムに接続することができない。また従来例では、ＲＡＩＤセットを複数の論理デバイスに分割して、一つの論理デバイスにＯＳ等システムを格納し、他の論理デバイスにユーザデータを格納する、といったようにシステム領域とユーザ領域とを異なる論理デバイスに分けて管理することができない。また従来のポートマルチプライヤを用いる方法では、複数の論理デバイスに分割して個々のディスクとしてホストに認識させつつ、全体としてはＲＡＩＤシステムとなっていることで信頼性を向上する、ということもできなかった。つまり、ホスト側が認識できるデバイスの構成を柔軟に設定できないという問題点があった。
【０００６】
本発明は上記実情に鑑みて為されたもので、ホスト側から認識されるデバイスの構成を柔軟に設定できる管理装置を提供することをその目的の一つとする。
【課題を解決するための手段】
【０００７】
上記従来例の問題点を解決する本発明は、少なくとも一つのＲＡＩＤセットを含むディスクデバイスと、ホストとに接続される制御装置であって、前記ホストに対して一つのインタフェースを介して接続され、ポートごとに一つの論理デバイスを接続可能なプロトコルにて、前記ホストとの間でデータの授受を行う手段と、前記プロトコルで規定される複数のポートを仮想的に設定する手段と、前記ディスクデバイスに含まれるＲＡＩＤセットに複数の論理デバイスを設定する手段と、複数の論理デバイスのそれぞれを、前記仮想的に設定された複数のポートのそれぞれに接続する手段と、を備えることとしたものである。
【０００８】
このように構成したことで、ホストからは複数の論理デバイスが物理的に接続されているかのような状態をエミュレートでき、デバイスの構成を柔軟にできる。
【０００９】
またここで前記プロトコルは、ＡＨＣＩプロトコルであってもよい。さらに、前記ＲＡＩＤセットに複数の論理デバイスを設定する手段は、少なくともシステムデータを格納する領域に対応した論理デバイスと、ユーザデータを格納する領域に対応した論理デバイスとを設定してもよい。また、前記ＲＡＩＤセットに複数の論理デバイスを設定する手段は、少なくとも一つの論理デバイスが２ＴｉＢ以下となるようＲＡＩＤセットを設定してもよい。
【発明の効果】
【００１０】
本発明によると、デバイスの構成を柔軟にできる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態に係る制御装置を含むストレージシステムの構成例を表すブロック図である。
【図２】本発明の実施の形態に係る制御装置のコントローラの構成例を表すブロック図である。
【図３】本発明の実施の形態に係る制御装置のコントローラのもう一つの構成例を表すブロック図である。
【図４】本発明の実施の形態に係る制御装置に接続される論理デバイスの構成例を表す説明図である。
【発明を実施するための形態】
【００１２】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る制御装置１０は、図１に例示するように、例えばパーソナルコンピュータ（ＰＣ）等のホスト側装置１と、記憶装置２とに接続されている。
【００１３】
記憶装置２は、インタフェース部２１と、デバイスコントローラ２２と、複数のストレージディスクデバイス２３-1，２３-2…（以下、それぞれを区別する必要がないときには、単にストレージディスクデバイス２３と呼ぶ）とを含んで構成されている。ここでストレージディスクデバイス２３は、ハードディスクドライブ（ＨＤＤ）等である。
【００１４】
また制御装置１０は、図２に例示するように、ＡＨＣＩ（Advanced Host Controller Interface）コントローラ１１、第１インタフェース部１４、及び第２インタフェース部１５を含んで構成される。このＡＨＣＩコントローラ１１はＦＰＧＡ（Field Programmable Gate Array）等のプログラム可能なデバイスにより実現される。このＡＨＣＩコントローラ１１は、機能的には、データ処理部３１と、バスマスタ部３２と、複数の仮想ポート部３３ａ，３３ｂ…とを含んで構成される。この制御装置１０の各部の動作は後に述べる。
【００１５】
記憶装置２のインタフェース部２１は、複数のインタフェース２１０ａ，２１０ｂ…（以下、それぞれを区別する必要がないときには、単にインタフェース２１０と呼ぶ）を含んで構成される。これら複数のインタフェース２１０ａ，２１０ｂ…は、制御装置１０の第２インタフェース部１５に接続される。
【００１６】
このインタフェース部２１の各インタフェース２１０は、制御装置１０からコマンドを受け入れる。また、このインタフェース２１０は、ストレージディスクデバイス２３にデータを書き込むべき旨の指示（データ書き込み指示、すなわちライトコマンド）を受け入れたときには、書き込みの対象となるデータ（書き込み対象データ）を、制御装置１０から取得してデバイスコントローラ２２に出力する。
【００１７】
またインタフェース２１０は、データを読み出すべき旨の指示（データ読み出し指示、すなわちリードコマンド）を受けたときには、デバイスコントローラ２２から出力の対象となるデータを受け入れて、制御装置１０に対して当該データを出力する。
【００１８】
デバイスコントローラ２２は、キャッシュメモリを備え、インタフェース部２１を介してストレージディスクデバイス２３に書き込むべき書き込み対象データとライトコマンドとを受け入れて、このキャッシュメモリに記録し、以下、当該書き込み対象データをストレージディスクデバイス２３に記録する動作を行う。またこのデバイスコントローラ２２は、インタフェース部２１を介して読み出しのコマンドを受け入れたときには、ストレージディスクデバイス２３側から読み出しの対象となるデータを読み出して、インタフェース部２１に出力する。
【００１９】
本実施の形態のある例では、このデバイスコントローラ２２がＲＡＩＤ（Redundant Arrays of Inexpensive Disks）コントローラとして機能する。この例では複数のＨＤＤで構成されるストレージディスクデバイス２３がＲＡＩＤアレイとして動作する。図では、複数台のＨＤＤでＲＡＩＤアレイを構成するストレージディスクデバイス２３を一つのディスクとして図示している。本実施の形態の以下の説明ではデバイスコントローラ２２がＲＡＩＤコントローラとして機能するものとして説明するが、本実施の形態は、ストレージディスクデバイス２３をＲＡＩＤアレイとする場合に限られない。
【００２０】
また、本実施の形態では、このデバイスコントローラ２２は、例えばバスを介してインタフェース部２１に接続されており、また、デバイスコントローラ２２は、ホスト側装置１から制御装置１０を介して論理デバイス設定用の設定値の入力を受けて、当該入力された設定値に従い、ＲＡＩＤアレイに、複数の論理デバイス２４ａ，２４ｂ…（以下、それぞれを区別する必要がないときには、単に論理デバイス２４と呼ぶ）を設定する。そしてデバイスコントローラ２２は、ＲＡＩＤアレイに設定した各論理デバイス２４ａ，２４ｂをそれぞれ、いずれかのインタフェース２１０ａ，２１０ｂ…に論理的に接続する。ここで論理デバイス設定用の設定値には、例えば、論理デバイス２４の数などの値が含まれている。
【００２１】
具体的にこの論理デバイス２４の設定のように、ホスト側装置１からのシステム全体に関する設定は、次の例のように行うことができる。ホスト側装置１の指示に従い、ＡＨＣＩコントローラ１１で保持する論理デバイス設定用のレジスタの値が書き換えられると、ＡＨＣＩコントローラ１１は、制御装置１０の任意の（例えば「０」番の）仮想ポートを通じて論理デバイス設定用の設定値を送出する。記憶装置２側では、受け入れた指示がシステム全体に関する設定であり、論理デバイス設定の指示であることから、当該指示に従ってＲＡＩＤアレイが論理デバイスに分割される。
【００２２】
また、この設定は、記憶装置２が備える、管理用の通信ポート（イーサネット（登録商標）ポート等、不図示）や、操作パネル（不図示）等からの指示により行われてもよい。
【００２３】
これにより各論理デバイス２４は、対応するインタフェース２１０を介してデータの書き込み／読み出しが可能となる。このようなデバイスコントローラ２２の動作については、広く知られた方法が採用できるので、ここでの詳しい説明を省略する。
【００２４】
制御装置１０の第１インタフェース部１４は、例えばＰＣＩｅ（Peripheral Component Interconnect express）インタフェースであり、ホスト側装置１に接続されている。また第２インタフェース部１５は、複数のインタフェースユニット１５０ａ，１５０ｂ…を有してなる。この第２インタフェース部１５の各インタフェースユニット１５０ａ，１５０ｂ…は、それぞれＦＩＦＯ（First-In First-Out）メモリを備え、記憶装置２のインタフェース部２１の複数のインタフェース２１０ａ，２１０ｂ…にそれぞれ接続されている。ここではインタフェースユニット１５０ａが、インタフェース２１０ａに接続され、インタフェースユニット１５０ｂが、インタフェース２１０ｂに接続され…というように、末尾の符号が一致するインタフェースユニット１５０とインタフェース２１０とが互いに接続されているものとする。
【００２５】
本実施の形態では、このインタフェースユニット１５０は、ＡＨＣＩコントローラ１１から受け入れたコマンドを、記憶装置２の、インタフェースユニット１５０に接続されたインタフェース２１０に出力する。また、このインタフェースユニット１５０は、ＡＨＣＩコントローラ１１から書き込み対象データを受け入れると、この書き込み対象データをＦＩＦＯメモリ内に格納する。インタフェースユニット１５０に接続されたインタフェース２１０は、書き込み対象データを取得する際には、このＦＩＦＯメモリから読み出して取得することとなる。
【００２６】
またこのインタフェースユニット１５０は、記憶装置２のインタフェース２１０から読み出し対象データを受け入れると、ＦＩＦＯメモリに格納する。ＡＨＣＩコントローラ１１はＦＩＦＯメモリから当該データを取得することとなる。
【００２７】
制御装置１０のＡＨＣＩコントローラ１１は、既に述べたように、機能的にはデータ処理部３１と、バスマスタ部３２と、複数の仮想ポート部３３ａ，３３ｂ…とを含んで構成され、ポートごとに一つの論理デバイスを接続可能なプロトコル（ここではＡＨＣＩプロトコルとする）にて、ホスト側装置１との間でデータを授受する。
【００２８】
またこのＡＨＣＩコントローラ１１は、プロトコルで規定されるポートを仮想的に、第２インタフェース部１５のインタフェースユニット１５０の数だけ複数設定する。つまり、このＡＨＣＩコントローラ１１は、第２インタフェース部１５のインタフェースユニット１５０のそれぞれに対応する、複数のポートのハードウェアを具備している状態をエミュレートする。これによりＡＨＣＩコントローラ１１は、機能的に、複数の仮想的なポート部（以下、ポート部３３ａ，３３ｂ…とする）を備えているように動作することとなる。
【００２９】
これによりＡＨＣＩコントローラ１１は、仮想ポート部３３ａ，３３ｂ…がそれぞれ、第２インタフェース部１５のインタフェースユニット１５０ａ，１５０ｂ…を介して記憶装置２のインタフェース２１０ａ，２１０ｂ…のいずれかに接続されている状態となるようエミュレートする。
【００３０】
ここでは仮想ポート部３３ａは、インタフェースユニット１５０ａを介してインタフェース２１０ａに接続され、仮想ポート部３３ｂは、インタフェースユニット１５０ｂを介してインタフェース２１０ｂに接続され…というように、末尾の符号が一致する仮想ポート部３３とインタフェース２１０とが接続されているものとする。
【００３１】
データ処理部３１は、初期化時（電源投入時等）に、仮想ポート部３３ａ，３３ｂ…のそれぞれを介して接続された論理デバイス２４に対して、互いに異なるＬＵＮ（Logical Unit Number）を割り当てる。これによりホスト側装置１では、制御装置１０のＡＨＣＩコントローラ１１内にある仮想ポート部３３ａ，３３ｂ…を、それぞれ一つずつのデバイスと認識することとなる。
【００３２】
またこのデータ処理部３１は、データの書き込み指示（ライトコマンド）と、書き込みの対象となるデータとを、第１インタフェース部１４を介してホスト側装置１から受け入れる。
【００３３】
具体的に、本実施の形態の例でホスト側装置１がデータの書き込みを指示する場合、ホスト側装置１でホスト側装置１のメモリ（以下、区別のためホストメモリと呼ぶ）に書き込み指示（ライトコマンド）と、書き込み対象データとを格納する。
【００３４】
そこでホスト側装置１にて書き込み先として選択されたデバイスに対応する仮想ポート部３３にライトコマンドがある旨の設定を行う。この設定は、ホスト側装置１が仮想ポート部３３が備えるレジスタの所定のビットをセットするとともに、ライトコマンドと、書き込み対象データとが格納されているホストメモリ上のアドレスを特定する情報を書き込むことにより実行される。
【００３５】
バスマスタ部３２は、いずれかの仮想ポート部３３にライトコマンドがある旨の設定が行われると、当該設定に関連付けられたホストメモリ上のアドレスを用いて、ホストメモリから読み出したライトコマンドと書き込み対象データとを、当該設定が行われた仮想ポート部３３を介して対応するインタフェースユニット１５０へ出力する。
【００３６】
このライトコマンドには、書き込みの対象となるデータを格納するべき対象論理デバイス内の、書き込みの対象となるデータを格納するべき論理セクタを特定する情報が含まれる。
【００３７】
また、このデータ処理部３１は、データの読み出し指示（リードコマンド）を、第１インタフェース部１４を介してホスト側装置１から受け入れる。この場合もホスト側装置１でホストメモリにリードコマンドを格納し、読み出しの対象となるデータを格納している論理デバイスに対応する仮想ポート部３３にリードコマンドがある旨の設定（具体的には仮想ポート部３３が備えるレジスタの所定のビットをセットする動作）を行う。
【００３８】
そしてバスマスタ部３２が、いずれかの仮想ポート部３３にリードコマンドがある旨の設定が行われると、当該設定に従って（当該設定として書き込まれたホストメモリ上のアドレスを特定する情報を用いて）、ホストメモリからリードコマンドを読み出し、当該設定が行われた仮想ポート部３３を介して対応するインタフェースユニット１５０へ出力する。
【００３９】
このリードコマンドには、読み出しの対象となるデータを格納している対象論理デバイス内で、読み出しの対象となるデータが格納されている論理セクタを特定する情報を含む。
【００４０】
つまりここではリードコマンドが、当該リードコマンドがある旨の設定がされた仮想ポート部３３に接続されているインタフェースユニット１５０を介して出力される。そしてデータ処理部３１は、リードコマンドの出力先となった論理デバイス２４から読み出されたデータを、対応するインタフェースユニット１５０を介して受け入れ、ＡＨＣＩプロトコルにて、ホスト側装置１に対して当該データを出力する。なお、ここまでの説明では、ＡＨＣＩコントローラ１１が、書き込み対象データや、読み出されたデータを、仮想ポート部３３を介して授受することとしていたが、書き込み対象データや、読み出されたデータについては、ＡＨＣＩコントローラ１１のバスマスタ部３２が、コマンドの出力先となった仮想ポート３３に対応するインタフェースユニット１５０のＦＩＦＯメモリとの間で直接読み書きするようにしてもよい。
【００４１】
このように本実施の形態の制御装置１０は、ホスト側装置１に対しては一つのインタフェースである第１インタフェース部１４（ＰＣＩｅインタフェース）を介して接続される。そしてこの制御装置１０はＡＨＣＩプロトコルによるデータの授受を行うが、内部的に複数のポートをエミュレートしている。エミュレートされた各ポートは、それぞれＦＩＦＯメモリを介して記憶装置２が備える複数のインタフェースユニット２１０に接続され、各インタフェース２１０を介して互いに異なる論理デバイスが接続された状態となっている。
【００４２】
これによりホスト側装置１は、ＡＨＣＩプロトコルが動作する装置間であれば、特殊なドライバソフトウエア等を用いることなく、記憶装置２がたとえ１つのストレージディスクデバイスを複数の論理デバイスに分割したものであった場合でも、複数の物理デバイスが接続された状態として認識することとなる。
【００４３】
［動作］
本実施の形態の制御装置１０は、以上の構成を備えており、次のように動作する。以下の例では、記憶装置２のストレージディスクデバイス２３がＲＡＩＤアレイとして構成されているものとし、図４に例示するように、当該ＲＡＩＤアレイが、２つの論理デバイス２４ａ，２４ｂに分割されているものとする。またここで、論理デバイス２４ａのディスクサイズは２ＴｉＢ以下とする。
【００４４】
またこの例では記憶装置２のデバイスコントローラ２２は、インタフェース部２１に対してバスを介して接続されており、論理的に、論理デバイス２４ａがインタフェース２１０ａに接続されているものとし、論理デバイス２４ｂがインタフェース２１０ｂに接続されているものとして動作する。
【００４５】
本実施の形態の一例では、制御装置１０の各部と、記憶装置２のインタフェース部２１と、デバイスコントローラ２２とが同一の基板上に形成される。そして制御装置１０の第２インタフェース部１５のインタフェースユニット１５０ａ，１５０ｂは、それぞれ対応する記憶装置２のインタフェース２１０ａ，２１０ｂに対して配線等により接続される。
【００４６】
また制御部１０のＡＨＣＩコントローラ１１は、ＦＰＧＡ等のプログラム可能なデバイスであり、データ処理部３１、バスマスタ部３２としての動作を行うとともに、複数の仮想ポートのハードウェアを具備している状態をエミュレートする。以下では、インタフェースユニット１５０ａ，１５０ｂに対応して、２つの仮想ポート部３３ａ，３３ｂを有している状態をエミュレートするものとする。
【００４７】
ＡＨＣＩコントローラ１１は、初期化時（電源投入時等）に、データ処理部３１の機能として、仮想ポート部３３ａ，３３ｂのそれぞれを介して接続された論理デバイス２４ａ，２４ｂに対して、互いに異なるＬＵＮを割り当てる。
【００４８】
この後、ＡＨＣＩコントローラ１１は、ライトコマンドと書き込みの対象となるデータとがある旨の設定が仮想ポート部３３に、ホスト側装置１から行われると、当該ライトコマンドと書き込みの対象となるデータとを、第１インタフェース部１４を介してホスト側装置１から取り込む。そしてＡＨＣＩコントローラ１１は、このライトコマンドを、当該ライトコマンドがある旨の設定がされていた仮想ポート部３３を介して出力する。
【００４９】
またデータ処理部３１は、データの読み出し指示であるリードコマンドを、第１インタフェース部１４を介してホスト側装置１から受け入れると、このリードコマンドを、当該リードコマンドがある旨の設定がされていた仮想ポート部３３を介して出力する。
【００５０】
つまり本実施の形態では、ホスト側装置１は、ＡＨＣＩプロトコルを用いたデータの授受を制御装置１０との間で行う。そしてホスト側装置１は、制御装置１０を介して、２つの異なるＬＵＮで識別される論理デバイス２４ａ，２４ｂが、ハードウェア的に接続されていると認識することとなる。
【００５１】
ここで、ホスト側装置１上で動作するオペレーティングシステムが、２ＴｉＢ以下の起動ボリューム（オペレーティングシステムを格納したボリューム）でなければ起動できないとしても、論理デバイス２４ａのディスクサイズが２ＴｉＢ以下に設定されているので、論理デバイス２４ａにオペレーティングシステムの起動イメージ等のシステムデータを格納しておけば、ＲＡＩＤアレイ全体のディスクサイズが２ＴｉＢを超えていても、当該オペレーティングシステムを起動できるようになる。
【００５２】
またこのとき、システムデータを記録した論理デバイス２４ａとは異なる論理デバイス２４ｂにユーザデータを格納するようにしておけば、オペレーティングシステムの移行等がユーザデータに関わりなく行うことができるようになり、利便性が向上する。
【００５３】
このように本実施の形態の制御装置１０と記憶装置２によれば、ホスト側装置１は、ＡＨＣＩプロトコルが動作する装置間であれば、特殊なドライバソフトウエア等を用いることなく、記憶装置２がたとえ１つのストレージディスクデバイスを複数の論理デバイスに分割したものであった場合でも、複数の物理デバイスが接続された状態として認識することとなる。また、記憶装置２のストレージディスクデバイス２３はＲＡＩＤアレイに限定されないが、ＲＡＩＤアレイとすれば、ＲＡＩＤアレイとしない場合に比べ、論理デバイスの信頼性（対障害性等）を向上できる。
【００５４】
［変形例］
また本実施の形態の別の例では、制御装置１０が、図３に例示するように、ＡＨＣＩコントローラ１１、第１インタフェース部１４、及び第２インタフェース部１５′を含んで構成され、また記憶装置２のインタフェース２１０が、メモリと、ＦＩＦＯメモリとを含んで構成される。
【００５５】
この例では、第２インタフェース部１５′に含まれる各インタフェースユニット１５０′がそれぞれメモリを備える。またこの例でも、ＡＨＣＩコントローラ１１のバスマスタ部３２が、いずれかの仮想ポート部３３にライトコマンドがある旨の設定が行われると、当該設定に関連付けられたホストメモリ上のアドレスを用いて、ホストメモリからライトコマンドと書き込み対象データとを読み出し、当該設定が行われた仮想ポート部３３を介して対応するインタフェースユニット１５０′へ出力する。
【００５６】
このようにインタフェースユニット１５０′は、バスマスタ部３２から仮想ポート部３３を介してライトコマンドと書き込み対象データとを受け入れると、これらライトコマンドと書き込み対象データとをメモリに格納し、インタフェース２１０に対して出力する。
【００５７】
インタフェースユニット１５０′に接続されたインタフェース２１０は、インタフェースユニット１５０′からライトコマンドと書き込み対象データとを受け入れると、ライトコマンドをメモリに、書き込み対象データをＦＩＦＯメモリに格納する。
【００５８】
以下、デバイスコントローラ２２は、インタフェース部２１を介してストレージディスクデバイス２３に書き込むための書き込み対象データとライトコマンドとを受け入れて、当該書き込み対象データをストレージディスクデバイス２３に記録する動作を行う。
【００５９】
同様に、ＡＨＣＩコントローラ１１のバスマスタ部３２が、いずれかの仮想ポート部３３にリードコマンドがある旨の設定が行われると、当該設定に関連付けられたホストメモリ上のアドレスを用いて、ホストメモリからリードコマンドを読み出し、当該設定が行われた仮想ポート部３３を介して対応するインタフェースユニット１５０′へ出力する。
【００６０】
そしてバスマスタ部３２からリードコマンドを受け入れたインタフェースユニット１５０′は、当該リードコマンドをメモリに格納し、インタフェース２１０に対して出力する。
【００６１】
インタフェースユニット１５０′に接続されたインタフェース２１０は、インタフェースユニット１５０′からリードコマンドを受け入れると、当該リードコマンドをメモリに格納する。デバイスコントローラ２２は、インタフェース部２１を介してリードコマンドを受け入れ、ストレージディスクデバイス２３側から読み出しの対象となるデータを読み出して、インタフェース部２１に出力する。
【００６２】
読み出されたデータを受け入れたインタフェース部２１のインタフェース２１０は、当該データをＦＩＦＯメモリに格納し、接続されているインタフェースユニット１５０′に出力する。この場合、インタフェースユニット１５０′は、当該データをＡＨＣＩコントローラ１１に出力し、ＡＨＣＩコントローラ１１のバスマスタ部３２が、リードコマンドの出力先となった論理デバイス２４から読み出されたデータを受け入れて、ＡＨＣＩプロトコルにて、ホスト側装置１に対して当該データを出力する。
【００６３】
この例において、インタフェースユニット１５０′と、インタフェース２１０との間でのデータやコマンドの授受の方式は、特に限定されない。一例としては、インタフェースユニット１５０′がＳＡＴＡホストコントローラとしての動作をエミュレートし、インタフェース２１０がＳＡＴＡデバイスコントローラとしての動作をエミュレートすることとしてもよい。この場合、インタフェース２１０は、制御装置１０から受け入れた、ＳＡＴＡデバイスコントローラ宛のデータである書き込み対象データやコマンドを、ＳＡＴＡデバイスコントローラの出力データとしてデバイスコントローラ２２に出力することとしてもよい。このときには、インタフェース２１０は、デバイスコントローラ２２から出力の対象となるデータをＳＡＴＡデバイスコントローラ宛のデータとして受け入れて、制御装置１０に対して当該データを出力することとなる。
【００６４】
また本実施の形態で、インタフェースユニット１５０′とインタフェース２１０とがそれぞれＳＡＴＡホストコントローラ、ＳＡＴＡデバイスコントローラとしての機能をエミュレートする必要は必ずしもなく、より軽量な処理にてコマンドやデータの授受を行ってもよい。
【００６５】
この例のように、制御装置１０の第２インタフェース部１５のインタフェースユニット１５０′と、記憶装置２のインタフェース部２１のインタフェース２１０とがそれぞれＳＡＴＡホストコントローラ、ＳＡＴＡデバイスコントローラとしての機能をエミュレートしない場合には、データ自体はＳＡＴＡのプロトコル変換がされないため、データの授受の効率はＳＡＴＡプロトコルへ変換する場合に比べて向上する。
【００６６】
さらに図２の例のように、ＦＩＦＯメモリを用いたインタフェースユニット１５０による例では、コマンドやデータの授受においてプロトコル変換が行われず、更に図３の例に比べてメモリへの保存処理の回数が削減されるので、データの授受の効率はより向上される。
【００６７】
また本実施の形態の制御装置１０と記憶装置２によれば、ホスト側装置１は、ＡＨＣＩプロトコルが動作する装置間であれば、特殊なドライバソフトウエア等を用いることなく、記憶装置２がたとえ１つのストレージディスクデバイスを複数の論理デバイスに分割したものであった場合でも、複数の物理デバイスが接続された状態として認識することとなる。また、記憶装置２のストレージディスクデバイス２３はＲＡＩＤアレイに限定されないが、ＲＡＩＤアレイとすれば、ＲＡＩＤアレイとしない場合に比べ、論理デバイスの信頼性（対障害性等）を向上できる。
【符号の説明】
【００６８】
１  ホスト側装置、２  記憶装置、１０  制御装置、１１  ＡＨＣＩコントローラ、１４  第１インタフェース部、１５  第２インタフェース部、２１  インタフェース部、２２  デバイスコントローラ、２３  ストレージディスクデバイス、２４  論理デバイス、３１  データ処理部、３２  バスマスタ部、３３  仮想ポート部、１５０，１５０′  インタフェースユニット、２１０  インタフェース。
【図１】
0006734058.tif 000002
【図２】
0006734058.tif 000003
【図３】
0006734058.tif 000004
【図４】
0006734058.tif 000005