(57)【特許請求の範囲】
【請求項１】
ホストコンピュータとディスクエンクロージャとの間で送受信されるデータを格納するキャッシュメモリを備え、前記ホストコンピュータと前記キャッシュメモリとが複数のホストコンピュータアダプタによって接続され、前記ディスクエンクロージャと前記キャッシュメモリとが複数のディスクエンクロージャアダプタによって接続された、
ディスクアレイ制御装置において、
前記キャッシュメモリがメモリモジュールと複数のクロスバスイッチとを備え、前記複数のホストコンピュータアダプタと前記複数のクロスバスイッチとが接続され、前記複数のディスクエンクロージャアダプタと前記複数のクロスバスイッチとが接続され、前記複数のクロスバスイッチと前記メモリモジュールとが接続され、
前記ホストコンピュータアダプタは、前記ホストコンピュータから受信した１つのデータを複数のパケットに分割後、前記複数のクロスバスイッチに対してそれぞれパケットを一個ずつ同時に転送し
前記複数のクロスバスイッチは、前記ホストコンピュータアダプタから受信した各パケットを同期を取りつつ、同時に前記メモリモジュールへ転送し、
前記メモリモジュールは、前記複数のクロスバスイッチから同時に受信した複数のパケットを再び１つのデータに合成する、
ことを特徴とするディスクアレイ制御装置。
【請求項２】
ホストコンピュータとディスクエンクロージャとの間で送受信されるデータを格納するキャッシュメモリを備え、前記ホストコンピュータと前記キャッシュメモリとが複数のホストコンピュータアダプタによって接続され、前記ディスクエンクロージャと前記キャッシュメモリとが複数のディスクエンクロージャアダプタによって接続された、
ディスクアレイ制御装置において、
前記キャッシュメモリがメモリモジュールと複数のクロスバスイッチとを備え、前記複数のホストコンピュータアダプタと前記複数のクロスバスイッチとが接続され、前記複数のディスクエンクロージャアダプタと前記複数のクロスバスイッチとが接続され、前記複数のクロスバスイッチと前記メモリモジュールとが接続され、
前記ディスクエンクロージャタアダプタは、前記ディスクエンクロージャから受信した１つのデータを複数のパケットに分割後、前記複数のクロスバスイッチに対してそれぞれパケットを一個ずつ同時に転送し、
前記複数のクロスバスイッチは、前記ディスクエンクロージャアダプタから受信した各パケットを同期を取りつつ、同時に前記メモリモジュールへ転送し、
前記メモリモジュールは、前記複数のクロスバスイッチから同時に受信した複数のパケットを再び１つのデータに合成する、
ことを特徴とするディスクアレイ制御装置。
【請求項３】
前記クロスバスイッチは、前記ホストコンピュータアダプタと前記ディスクエンクロージャアダプタとを直接接続する機能を有する、
請求項１又は２記載のディスクアレイ制御装置。
【請求項４】
前記クロスバスイッチは、前記ホストコンピュータアダプタから出力されたコマンドに従って、前記ホストコンピュータアダプタと前記ディスクエンクロージャアダプタとを直接接続する、
請求項３記載のディスクアレイ制御装置。
【請求項５】
前記複数のクロスバスイッチのうちの一つがマスターとして動作し、残りが前記マスターによって制御されるスレーブとして動作することにより、前記複数のクロスバスイッチが互いに同期してデータを転送する、
請求項１乃至４のいずれかに記載のディスクアレイ制御装置。
【請求項６】
前記クロスバスイッチは、前記ホストコンピュータアダプタ又は前記ディスクエンクロージャアダプタから送信されたデータを一時的に蓄えるバッファメモリを備えた、
請求項１乃至５のいずれかに記載のディスクアレイ制御装置。
【請求項７】
前記ホストコンピュータアダプタ又は前記ディスクエンクロージャアダプタから送信される前記データにはコマンド及びメモリアドレスが含まれ、これらのデータが前記バッファメモリに一括して送信される、
請求項６記載のディスクアレイ制御装置。
【請求項８】
前記キャッシュメモリが複数である、
請求項１乃至７のいずれかに記載のディスクアレイ制御装置。
【請求項９】
前記メモリモジュールが複数である、
請求項１乃至８のいずれかに記載のディスクアレイ制御装置。
【請求項１０】
ホストコンピュータとディスクエンクロージャとの間で送受信されるデータを格納するキャッシュメモリを備え、前記ホストコンピュータと前記キャッシュメモリとが複数のホストコンピュータアダプタによって接続され、前記ディスクエンクロージャと前記キャッシュメモリとが複数のディスクエンクロージャアダプタによって接続された、ディスクアレイ制御装置に使用されるディスクアレイ制御方法において、
メモリモジュールと複数のクロスバスイッチとを前記キャッシュメモリに設け、前記複数のホストコンピュータアダプタと前記複数のクロスバスイッチとを接続し、前記複数のディスクエンクロージャアダプタと前記複数のクロスバスイッチとを接続し、前記複数のクロスバスイッチと前記メモリモジュールとを接続し、
前記ホストコンピュータアダプタによって、前記ホストコンピュータから受信した１つのデータを複数のパケットに分割後、前記複数のクロスバスイッチに対してそれぞれパケットを一個ずつ同時に転送し、
前記複数のクロスバスイッチによって、前記ホストコンピュータアダプタから受信した各パケットを同期を取りつつ、同時に前記メモリモジュールへ転送し、
前記メモリモジュールによって、前記複数のクロスバスイッチから同時に受信した複数のパケットを再び１つのデータに合成する、
ことを特徴とするディスクアレイ制御方法。
【請求項１１】
ホストコンピュータとディスクエンクロージャとの間で送受信されるデータを格納するキャッシュメモリを備え、前記ホストコンピュータと前記キャッシュメモリとが複数のホストコンピュータアダプタによって接続され、前記ディスクエンクロージャと前記キャッシュメモリとが複数のディスクエンクロージャアダプタによって接続された、ディスクアレイ制御装置に使用されるディスクアレイ制御方法において、
メモリモジュールと複数のクロスバスイッチとを前記キャッシュメモリに設け、前記複数のホストコンピュータアダプタと前記複数のクロスバスイッチとを接続し、前記複数のディスクエンクロージャアダプタと前記複数のクロスバスイッチとを接続し、前記複数のクロスバスイッチと前記メモリモジュールとを接続し、
前記ディスクエンクロージャタアダプタによって、前記ディスクエンクロージャから受信した１つのデータを複数のパケットに分割後、前記複数のクロスバスイッチに対してそれぞれパケットを一個ずつ同時に転送し、
前記複数のクロスバスイッチによって、前記ディスクエンクロージャアダプタから受信した各パケットを同期を取りつつ、同時に前記メモリモジュールへ転送し、
前記メモリモジュールによって、前記複数のクロスバスイッチから同時に受信した複数のパケットを再び１つのデータに合成する、
ことを特徴とするディスクアレイ制御方法。
【請求項１２】
前記ホストコンピュータアダプタと前記ディスクエンクロージャアダプタとを前記クロスバスイッチを介して直接接続する、
請求項１０又は１１記載のディスクアレイ制御方法。
【請求項１３】
前記クロスバスイッチは、前記ホストコンピュータアダプタから出力されたコマンドに従って、前記ホストコンピュータアダプタと前記ディスクエンクロージャアダプタとを直接接続する、
請求項１２記載のディスクアレイ制御方法。
【請求項１４】
前記複数のクロスバスイッチのうちの一つをマスターとして動作させ、残りを前記マスターによって制御されるスレーブとして動作させることにより、前記複数のクロスバスイッチを互いに同期させてデータを転送する、
請求項１０乃至１３のいずれかに記載のディスクアレイ制御方法。
【請求項１５】
前記ホストコンピュータアダプタ又は前記ディスクエンクロージャアダプタから送信されたデータを一時的に蓄えるバッファメモリを、前記クロスバスイッチに設けた、
請求項１０乃至１４のいずれかに記載のディスクアレイ制御方法。
【請求項１６】
前記ホストコンピュータアダプタ又は前記ディスクエンクロージャアダプタから送信される前記データにコマンド及びメモリアドレスを含ませ、これらのデータを前記バッファメモリに一括して送信する、
請求項１５記載のディスクアレイ制御方法。
【請求項１７】
前記キャッシュメモリが複数である、
請求項１０乃至１６のいずれかに記載のディスクアレイ制御方法。
【請求項１８】
前記メモリモジュールが複数である、
請求項１０乃至１７のいずれかに記載のディスクアレイ制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ホストコンピュータとディスクエンクロージャとの間で送受信されるデータを格納するキャッシュメモリを備えたディスクアレイ制御装置及びディスクアレイ制御方法に関し、詳しくはデータ転送制御手段に特徴を有するディスクアレイ制御装置及びディスクアレイ制御方法に関する。
【０００２】
【従来の技術】
図１０は、従来のディスクアレイ制御装置を示すブロック図である。以下、この図面に基づき説明する。
【０００３】
ディスクアレイ制御装置５５は、一台のホストコンピュータ５１ごとに接続されデータ転送を実行するホストコンピュータアダプタ５２と、ホストコンピュータ５１及びディスクエンクロージャ５７から転送されたデータ並びにディスクアレイ制御装置５５に対する制御情報を一時的に記憶するキャッシュメモリ５４と、一台のディスクエンクロージャ５７ごとに接続されデータ転送を実行するディスクエンクロージャアダプタ５３とからなる。ホストコンピュータアダプタ５２、ディスクエンクロージャアダプタ５３及びキャッシュメモリ５４は共用バス５６を介して多対多にて接続されており、全てのデータ転送はキャッシュメモリ５４を介在して実行される。
【０００４】
従来のディスクアレイ制御装置５５では、内部の共用バス５６のバス幅拡大及び転送周期を早めることにより、転送能力を向上させてきた。しかしながら、従来の共用バス５６の構造では、ホストコンピュータインタフェース５８及びディスクエンクロージャインタフェース５９の性能向上に追い着かないこと、並びに共用バス５６の構造に起因して信号波形の反射が起こること等によって、ディスクアレイ制御装置５５の高性能化要求に対応することが難しくなってきた。
【０００５】
【発明が解決しようとする課題】
一方、このような従来の課題を解決するものとして、ホストコンピュータとキャッシュメモリとが複数のホストコンピュータアダプタによって接続され、ディスクエンクロージャとキャッシュメモリとが複数のディスクエンクロージャアダプタによって接続されたディスクアレイ制御装置（以下「第二従来例」という。）が、例えば特開２０００−９９２８１号公報に開示されている。この第二従来例によれば、複数のアダプタを介してデータを転送することにより、耐障害性及びスループットの向上が図られる。しかしながら、このような第二従来例でも、スループットの向上に限界があった。
【０００６】
【発明の目的】
そこで、本発明の目的は、更なるスループットの向上を実現できるディスクアレイ制御装置及びディスクアレイ制御方法を実現することにある。
【０００７】
【課題を解決するための手段】
本発明者は、第二従来例においてスループット向上の妨げとなる主な原因を、次の(1)〜(3)のように明らかにした。(1)．必ずキャッシュメモリを介してデータを転送するので、キャッシュメモリのデータ転送速度以上にはスループットを向上できない。(2)．キャッシュメモリに対して複数のアクセスパスを介してデータが転送されるが、それらは各アクセスパスごとに非同期でばらばらに転送される。換言すると、キャッシュメモリに対して複数のアクセスパスを介してデータが転送されるが、バッファメモリを持たないため、書き込み先が重なった場合は再度リトライ動作となる。(3)．複数のアクセスパスの中から、転送先とのアクセスパスを確立し、その後でなければデータを転送できない。
【０００８】
本発明は、このような知見に基づきなされたものである。すなわち、請求項１又は２記載のディスクアレイ制御装置は、ホストコンピュータとディスクエンクロージャとの間で送受信されるデータを格納するキャッシュメモリを備え、ホストコンピュータとキャッシュメモリとが複数のホストコンピュータアダプタによって接続され、ディスクエンクロージャとキャッシュメモリとが複数のディスクエンクロージャアダプタによって接続されたものである。そして、キャッシュメモリがメモリモジュールと複数のクロスバスイッチとを備え、複数のホストコンピュータアダプタと複数のクロスバスイッチとが接続され、複数のディスクエンクロージャアダプタと複数のクロスバスイッチとが接続され、複数のクロスバスイッチとメモリモジュールとが接続されている。
【０００９】
そして、ホストコンピュータアダプタは、ホストコンピュータから受信した１つのデータを複数のパケットに分割後、複数のクロスバスイッチに対してそれぞれパケットを一個ずつ同時に転送し、複数のクロスバスイッチは、ホストコンピュータアダプタから受信した各パケットを同期を取りつつ、同時にメモリモジュールへ転送し、メモリモジュールは、複数のクロスバスイッチから同時に受信した複数のパケットを再び１つのデータに合成する（請求項１）。ディスクエンクロージャタアダプタは、ディスクエンクロージャから受信した１つのデータを複数のパケットに分割後、複数のクロスバスイッチに対してそれぞれパケットを一個ずつ同時に転送し、複数のクロスバスイッチは、ディスクエンクロージャアダプタから受信した各パケットを同期を取りつつ、同時にメモリモジュールへ転送し、メモリモジュールは、複数のクロスバスイッチから同時に受信した複数のパケットを再び１つのデータに合成する（請求項２）。
【００１０】
このように、複数のクロスバスイッチが互いに同期してデータを転送する。そのため、データ転送時の無駄な待ち時間がなくなるので、キャッシュメモリに対するスループットが向上する。しかも、このとき、当該データを複数のパケットに分割後これらを同時に転送して再び合成する。これにより、データ転送速度が向上する。換言すると、１パケットずつ送るよりも数パケットを同時転送した方が効率がよいため、瞬間的なデータ転送速度が上がる。
【００１１】
また、クロスバスイッチは、ホストコンピュータアダプタとディスクエンクロージャアダプタとを直接接続する機能を有している（請求項３）。そのため、キャッシュメモリに対するメモリデータ転送能力に依存せずに、ホストコンピュータとディスクエンクロージャとの間のデータ転送が可能である。
【００１２】
このようなクロスバスイッチは、例えば、ホストコンピュータアダプタから出力されたコマンドに従って、ホストコンピュータアダプタとディスクエンクロージャアダプタとを直接接続するものである（請求項４）。
【００１３】
例えば、複数のクロスバスイッチのうちの一つがマスターとして動作し、残りがマスターによって制御されるスレーブとして動作することにより、複数のクロスバスイッチが互いに同期してデータを転送するものとしてもよい（請求項５）。
【００１４】
請求項６記載のディスクアレイ制御装置におけるクロスバスイッチは、ホストコンピュータアダプタ又はディスクエンクロージャアダプタから送信されたデータを一時的に蓄えるバッファメモリを備えたものである。そのため、転送先のキャッシュアドレスが複数のアクセスパスで重なった場合でも、バッファメモリで緩衝可能であるので、ディスクアレイ制御装置内のスループット低下が抑えられる。また、ホストコンピュータアダプタ又はディスクエンクロージャアダプタから送信されるデータにはコマンド及びメモリアドレスが含まれ、これらのデータが前記バッファメモリに一括して送信されるものとしてもよい（請求項７）。
【００１５】
更に、キャッシュメモリは複数でもよく（請求項８）、メモリモジュールは複数でもよい（請求項９）。
【００１６】
請求項１０又は１１記載のディスクアレイ制御方法は、ホストコンピュータとディスクエンクロージャとの間で送受信されるデータを格納するキャッシュメモリを備え、ホストコンピュータとキャッシュメモリとが複数のホストコンピュータアダプタによって接続され、ディスクエンクロージャとキャッシュメモリとが複数のディスクエンクロージャアダプタによって接続された、ディスクアレイ制御装置に使用されるものである。そして、メモリモジュールと複数のクロスバスイッチとをキャッシュメモリに設け、複数のホストコンピュータアダプタと複数のクロスバスイッチとを接続し、複数のディスクエンクロージャアダプタと複数のクロスバスイッチとを接続し、複数のクロスバスイッチとメモリモジュールとを接続する。
【００１７】
そして、ホストコンピュータアダプタによって、ホストコンピュータから受信した１つのデータを複数のパケットに分割後、複数のクロスバスイッチに対してそれぞれパケットを一個ずつ同時に転送し、複数のクロスバスイッチによって、ホストコンピュータアダプタから受信した各パケットを同期を取りつつ、同時にメモリモジュールへ転送し、メモリモジュールによって、複数のクロスバスイッチから同時に受信した複数のパケットを再び１つのデータに合成する（請求項１０）。ディスクエンクロージャタアダプタによって、ディスクエンクロージャから受信した１つのデータを複数のパケットに分割後、複数のクロスバスイッチに対してそれぞれパケットを一個ずつ同時に転送し、複数のクロスバスイッチによって、ディスクエンクロージャアダプタから受信した各パケットを同期を取りつつ、同時にメモリモジュールへ転送し、メモリモジュールによって、複数のクロスバスイッチから同時に受信した複数のパケットを再び１つのデータに合成する（請求項１１）。
【００１８】
このように、複数のクロスバスイッチを互いに同期させてデータを転送する。そのため、データ転送時の無駄な待ち時間がなくなるので、キャッシュメモリに対するスループットが向上する。しかも、このとき、当該データを複数のパケットに分割後これらを同時に転送して再び合成する。これにより、データ転送速度が向上する。換言すると、１パケットずつ送るよりも数パケットを同時転送した方が効率がよいため、瞬間的なデータ転送速度が上がる。
【００１９】
また、ホストコンピュータアダプタとディスクエンクロージャアダプタとを、クロスバスイッチを介して直接接続する（請求項１２）。そのため、キャッシュメモリに対するメモリデータ転送能力に依存せずに、ホストコンピュータとディスクエンクロージャとの間のデータ転送が可能である。
【００２０】
このようなクロスバスイッチは、例えば、ホストコンピュータアダプタから出力されたコマンドに従って、ホストコンピュータアダプタとディスクエンクロージャアダプタとを直接接続するものである（請求項１３）。
【００２１】
例えば、複数のクロスバスイッチのうちの一つをマスターとして動作させ、残りをマスターによって制御されるスレーブとして動作させることにより、複数のクロスバスイッチを互いに同期させてデータを転送するものとしてもよい（請求項１４）。
【００２２】
請求項１５記載のディスクアレイ制御方法は、ホストコンピュータアダプタ又はディスクエンクロージャアダプタから送信されたデータを一時的に蓄えるバッファメモリを、クロスバスイッチに設けたものである。そのため、転送先のキャッシュアドレスが複数のアクセスパスで重なった場合でも、バッファメモリで緩衝可能であるので、ディスクアレイ制御装置内のスループット低下が抑えられる。また、ホストコンピュータアダプタ又はディスクエンクロージャアダプタから送信されるデータにコマンド及びメモリアドレスを含ませ、これらのデータを前記バッファメモリに一括して送信するものとしてもよい（請求項１６）。
【００２３】
更に、キャッシュメモリは複数でもよく（請求項１７）、メモリモジュールは複数でもよい（請求項１８）。
【００２４】
【発明の実施の形態】
以下、本発明の実施形態を図面に基づき説明する。なお、本発明に係るディスクアレイ制御方法は、本発明に係るディスクアレイ制御装置に使用されるものである。したがって、ディスクアレイ制御装置の実施形態を説明することにより、ディスクアレイ制御方法の実施形態の説明を省略する。
【００２５】
図１は、本発明に係るディスクアレイ制御装置の一実施形態を示すブロック図である。以下、この図面に基づき説明する。
【００２６】
本実施形態のディスクアレイ制御装置１１は、ホストコンピュータ１３とディスクエンクロージャ１４との間で送受信されるデータ（ディスクアレイ制御情報を含む）を格納するキャッシュメモリ１２を有する。そして、ホストコンピュータ１３とキャッシュメモリ１２とが複数のホストコンピュータアダプタ１６によって接続され、ディスクエンクロージャ１４とキャッシュメモリ１２とが複数のディスクエンクロージャアダプタ１７によって接続されている。
【００２７】
また、キャッシュメモリ１２は、メモリモジュール２１と複数のクロスバスイッチ２０とを備えている。そして、ホストコンピュータアダプタ１６のそれぞれと複数のクロスバスイッチ２０とが接続され、ディスクエンクロージャアダプタ１７のそれぞれと複数のクロスバスイッチ２０とが接続され、クロスバスイッチ２０のそれぞれとメモリモジュール２１とが接続されている。
【００２８】
更に詳しく説明すると、ホストコンピュータ１３はホストコンピュータインタフェース１５を介して複数のホストコンピュータアダプタ１６に接続され、ディスクエンクロージャ１４はディスクエンクロージャインタフェース２５を介して複数のディスクエンクロージャアダプタ１７に接続されている。複数のホストコンピュータアダプタ１６及び複数のディスクエンクロージャアダプタ１７は、二個の物理的に独立したキャッシュメモリ１２にＳＸバス１８によって接続されている。複数のクロスバスイッチ２０は、二個の物理的に独立したメモリモジュール２１にＭＸバス２６によって接続されるとともに、クロスバスイッチインタフェース１９を介して互いに同期を取って同時に動作する。また、クロスバスイッチ２０は、内部に二個のクロスバスイッチチャネル２２を有する。
【００２９】
次に、ディスクアレイ制御装置１１の動作の概略について説明する。
【００３０】
一例として、ホストコンピュータ１３からキャッシュメモリ１２へのデータ転送の場合について説明する。まず、ホストコンピュータ１３は、ホストコンピュータインタフェース１５を介してホストコンピュータアダプタ１６に対してデータを転送する。ホストコンピュータ１３からデータを受信したホストコンピュータアダプタ１６は、受信したデータを二個のパケットに分割後、ホストコンピュータアダプタ１６に接続されている二個のクロスバスイッチ２０に対してそれぞれパケットを一個ずつ同時に転送する。ホストコンピュータアダプタ１６から二個のパケットをそれぞれ一個ずつ受信した各々のクロスバスイッチ２０は、クロスバスイッチインタフェース１９を介して同期を取りつつ、分割されたパケットを同時にメモリチャネル２３に対して転送する。最後に、複数のパケットを同時に受信したメモリチャネル２３は、パケットを１つのデータとして再合成し、メモリ２４に書き込む。なお、ディスクエンクロージャ１４からキャッシュメモリ１２へのデータ転送の場合などの、キャッシュメモリ１２を介したアクセスであれば、これと同様な処理が実行される。また、データを複数のパケットに分割後、これらを同時に転送して再び合成することにより、データ転送速度が向上する。換言すると、１パケットずつ送るよりも数パケットを同時転送した方が効率がよいため、瞬間的なデータ転送速度が上がる。
【００３１】
また、ホストコンピュータアダプタ１６及びディスクエンクロージャアダプタ１７のデータ転送モードがシーケンシャルな転送モードの場合は、クロスバスイッチ２０にてホストコンピュータアダプタ１６及びディスクエンクロージャアダプタ１７にＳＸバス１８を直接接続する。これにより、キャッシュメモリ１２を使用せずに、データ転送を行うことができる。
【００３２】
図２は、ディスクアレイ制御装置１１におけるクロスバスイッチ２０の一例を概略的に示すブロック図である。以下、図１及び図２に基づき説明する。
【００３３】
図２では、図１におけるクロスバスイッチ２０を、クロスバスイッチ２０ａ，２０ｂと表わす。クロスバスイッチ２０ａ，２０ｂは、ホストコンピュータアダプタ１６及びディスクエンクロージャアダプタ１７に接続されたＳＸバッファメモリ３１，３２と、メモリモジュール２１に接続されたＭＸバッファメモリ３４，３５と、ＳＸバッファメモリ３１，３２とＭＸバッファメモリ３４，３５とを接続するスイッチ３３と、クロスバスイッチ３７の内部データ転送を制御するバッファメモリ制御回路３６とを備えている。なお、図１におけるクロスバスイッチチャネル２２は、ＳＸバッファメモリ３１，３２とバッファメモリ制御回路３６の一部とからなる。
【００３４】
ＳＸバッファメモリ３１，３２及びＭＸバッファメモリ３４，３５は、それぞれ五つのバッファメモリから構成される。一例として、ホストコンピュータアダプタ１６からメモリモジュール２１に対してライトを行う場合について説明する。ホストコンピュータアダプタ１６からは、リクエストとして「コマンド、アドレス、データ」と一括して転送される。例えば、クロスバスイッチ２０ａにおいてＳＸバッファメモリ３１の五個のバッファメモリのうちの三番目で受信する場合、バッファメモリ制御回路３６は、隣のクロスバスイッチ２０ｂに対しても、三番目のバッファメモリを使用してホストコンピュータアダプタ１６からデータを受信するように指示を出す。バッファメモリ制御回路３６は、当該バッファメモリ内に格納されたデータ転送先に基づいて、ＳＸバッファメモリ３１とＭＸバッファメモリ３４，３５との経路が確定されるようにスイッチ３３を切り換える。ＳＸバッファメモリ３１は、ホストコンピュータアダプタ１６からのリクエストを到着順に最大五個まで格納可能であり、随時転送可能となったリクエストから順にＭＸバス２６へ転送を開始する。ＭＸバス２６へデータを出力するときは、クロスバスイッチ２０ａ又はクロスバスイッチ２０ｂのバッファメモリ制御回路３６の指示に従い、該当するリクエストも当該データに同期させてＭＸバス２６へ出力する。
【００３５】
本実施形態のディスクアレイ制御装置１１によれば、キャッシュメモリ１２に対するアクセスパスが複数存在することになるので、ディスクアレイ制御装置１１内のデータ転送速度が向上する。しかも、クロスバスイッチ２０は、ホストコンピュータアダプタ１６とディスクエンクロージャアダプタ１７とを直接接続する機能を有する。つまり、クロスバスイッチ２０はデータから見れば単なる導線にすぎないので、ホストコンピュータアダプタ１６とディスクエンクロージャアダプタ１７とはキャッシュメモリ１２を介さずに直接接続されることになる。そのため、キャッシュメモリ１２に対するメモリデータ転送能力に依存せずに、ホストコンピュータ１３とディスクエンクロージャ１４との間のデータ転送が可能である。更に、クロスバスイッチ２０が、ホストコンピュータアダプタ１６又はディスクエンクロージャアダプタ１７から送信されたデータを一時的に蓄えるバッファメモリ（すなわちＳＸバッファメモリ３１，３２及びＭＸバッファメモリ３４，３５）を備えている。そのため、転送先のキャッシュアドレスが複数のアクセスパスで重なった場合でも、バッファメモリで緩衝可能であるので、ディスクアレイ制御装置１１内のスループット低下が抑えられる。
【００３６】
以下、図３乃至図９に基づき、ディスクアレイ制御装置１１について更に詳しく説明する。
【００３７】
図３は、ディスクアレイ制御装置１１におけるクロスバスイッチ２０の一例を詳細に示すブロック図である。以下、図２及び図３に基づき説明する。
【００３８】
図２に示すＳＸバッファメモリ３１，３２及びＭＸバッファメモリ３４，３５は、図３に示すリクエスト入力バッファメモリ６０、リクエスト出力バッファメモリ６２、リードデータ入力バッファメモリ６３、リードデータ出力バッファメモリ６５及びライトリプライ入力バッファメモリ６７に対応する。図２に示すスイッチ３３は、図３に示すリクエストクロスバスイッチ７４、ライトリプライクロスバスイッチ７５及びリードデータクロスバスイッチ７６に対応する。図２に示すバッファメモリ制御回路３６は図３に示すリクエストクロスバスイッチ調停／制御回路６１、ライトリプライクロスバスイッチ調停／制御回路６６及びリードデータクロスバスイッチ調停／制御回路６４に対応する。
【００３９】
図４は、ホストコンピュータアダプタ１６又はディスクエンクロージャアダプタ１７からメモリモジュール２１へのデータ書き込み処理を示すフローチャートである。以下、図１、図３及び図４に基づき説明する。
【００４０】
ステップ７０１において、ホストコンピュータアダプタ１６又はディスクエンクロージャアダプタ１７からクロスバスイッチ２０へ、ＡＤＲ（アドレス）、ＣＭＤ（コマンド）及びＤＡＴＡ（データ）が送出される。これらＡＤＲ、ＣＭＤ及びＤＡＴＡは、クロスバスイッチ２０内のリクエスト入力バッファメモリ６０に保持される。これらのＡＤＲ及びＣＭＤに基づき、出力するメモリモジュール２１へのポートが判定され、ステップ７０２で、リクエストクロスバスイッチ調停／制御回路６１へ接続要求が発行される。
【００４１】
同一ポートへの接続要求が複数発生した場合には、リクエストクロスバスイッチ調停／制御回路６１が調停を行う。また、リクエスト入力バッファメモリ６０内に保持されたデータが、送出待ち状態であっても、１つのホストコンピュータアダプタ１６又はディスクエンクロージャアダプタ１７に対して、複数のリクエスト入力バッファメモリ６０が設けられているため、ホストコンピュータアダプタ１６又はディスクエンクロージャアダプタ１７からの次のデータを受け取ることができる。複数のリクエスト入力バッファメモリ６０内に保持されたデータについては、入力順に関わらず、リクエストクロスバスイッチ調停／制御回路６１へ接続要求を出すことができる。
【００４２】
ステップ７０３で調停の結果、メモリチャネル２３へのポート使用権が決定すると、リクエストクロスバスイッチ７４のバス切り替えが行われ、メモリチャネル２３へデータ転送が行われる。ステップ７０７で、メモリチャネル２３は、受信したＡＤＲ及びＣＭＤに基づきアクセスするメモリ２４を決定し、ＤＡＴＡ書き込みを行う。ステップ７０８で、メモリチャルネル２３は、メモリ２４への書き込みアクセスに関する結果ステータス（ＷＳＴＳ）を生成し、書き込み要求元のホストコンピュータアダプタ１６又はディスクエンクロージャアダプタ１７へ返送する。このとき、書き込み要求元のホストコンピュータアダプタ１６又はディスクエンクロージャアダプタ１７に対するエージェント番号をＷＳＴＳに付加し、これを送信する。
【００４３】
図５は、ホストコンピュータアダプタ１６又はディスクエンクロージャアダプタ１７からメモリチャネル２３へのデータ読み出し処理を示すフローチャートである。以下、図１、図３及び図５に基づき説明する。
【００４４】
ステップ８０１において、ホストコンピュータアダプタ１６又はディスクエンクロージャアダプタ１７からクロスバスイッチ２０へ、ＡＤＲ及びＣＭＤが送出される。これらのＡＤＲ及びＣＭＤは、クロスバスイッチ２０内のリクエスト入力バッファメモリ６０に保持される。これらのＡＤＲ及びＣＭＤに基づき、出力するメモリチャネル２３へのポートが判定され、ステップ８０２で、リクエストクロスバスイッチ調停／制御回路６１へ接続要求が発行される。ステップ８０３で調停の結果、目的のリクエスト出力バッファメモリ６２へのバス切り替えが行われると、ステップ８０６でリクエスト入力バッファメモリ６０からリクエスト出力バッファメモリ６２へＡＤＲ及びＣＭＤが送出される。
【００４５】
ステップ８０７で、これらのＡＤＲ及びＣＭＤとリードデータ入力バッファメモリ６３に保持されているＡＤＲ及びＣＭＤとの比較を行い、要求するデータがリードデータ入力バッファメモリ６３に格納されていなければ、メモリチャネル２３へＡＤＲ及びＣＭＤを送出し、データ読み込みの要求を行うとともに、要求元のホストコンピュータアダプタ１６又はディスクエンクロージャアダプタ１７へリトライを促す。リトライを促されたホストコンピュータアダプタ１６又はディスクエンクロージャアダプタ１７は、再度、同一のＡＤＲ及びＣＭＤでアクセス要求を行うか、又は、別のアクセス要求を行うことができる。
【００４６】
ステップ８１０で、メモリチャネル２３は、受信したＡＤＲ及びＣＭＤに基づき、アクセスするメモリモジュール２１を決定し、メモリリード処理を行う。また、このメモリリードアクセスに関する結果ステータス（ＲＳＴＳ）を生成し、ステップ８１２でリードデータ、ステータスの順で、クロスバスイッチ２０のリードデータ入力バッファメモリ６３に送信し、これをリードデータ入力バッファメモリ６３で保持する。このとき、メモリアクセスに使用したＡＤＲ及びＣＭＤも、アクセス情報として保持する。
【００４７】
ステップ８１３で、ホストコンピュータアダプタ１６又はディスクエンクロージャアダプタ１７は、ステップ８０１で送出したＡＤＲ及びＣＭＤと同一のアクセス要求を行う。これらのＡＤＲ及びＣＭＤは、リクエスト入力バッファメモリ６０に保持され、ステップ８０２〜８０６と同様の処理を経て、リクエスト出力バッファメモリ６２に送出される。リクエスト出力バッファメモリ６２にＡＤＲ及びＣＭＤが保持されると、ステップ８１９で再度、これらのＡＤＲ及びＣＭＤとリードデータ入力バッファメモリ６３に保持されるＡＤＲ及びＣＭＤとの比較を行う。
【００４８】
ここで、これらのＡＤＲ及びＣＭＤが一致すると、ステップ８２０で、アクセス要求元のホストコンピュータアダプタ１６又はディスクエンクロージャアダプタ１７に接続されるリードデータ出力バッファメモリ６５とリードデータ入力バッファメモリ６３とを接続するよう、リードデータクロスバスイッチ調停／制御回路６４に対しリクエストを発行する。ステップ８２１でバス使用権を獲得し、ステップ８２２でバス切り替えが行われると、ステップ８２４でリードデータ及びステータスを、要求元のホストコンピュータアダプタ１６又はディスクエンクロージャアダプタ１７に送出する。
【００４９】
図６は、クロスバスイッチの同期転送を説明するためのブロック図である。以下、図１、図３及び図６に基づき説明する。
【００５０】
クロスバスイッチ２０は一つのホストコンピュータアダプタ１６当たり二つ接続されており、各々のクロスバスイッチ２０ａ，２０ｂが同期を取りながらデータ転送を行う。複数のクロスバスイッチ２０ａ，２０ｂ同士が同期動作を行うために、一つのクロスバスイッチ２０ａがマスター、他のクロスバスイッチ２０ｂがスレーブとして動作する。クロスバスイッチ２０ａのＬＳＩピンのマスターイネーブルをＧＮＤ接続することにより、マスターとして動作する。クロスバスイッチ２０ａ，２０ｂのＬＳＩとしての機能はマスターとスレーブとで同じであるが、マスターイネーブル端子がプルアップされると調停回路がディセーブルなる。
【００５１】
次に、ホストコンピュータアダプタ１６からメモリ２４にデータを書き込む場合の動作を説明する。
【００５２】
ホストコンピュータアダプタ１６は、２分割したパケットデータとしてアドレス／コマンド／データを同時にクロスバスイッチ２０ａ，２０ｂへ送出する。リードデータクロスバスイッチ調停／制御回路６４は、ホストコンピュータ１３からのコマンドを確認し、ホストコンピュータ１３からのライトコマンドであれば、どのリクエスト入力バッファメモリ６０にデータを格納するかを決定及び指示する。各クロスバスイッチ２０ａ，２０ｂには、リクエスト入力バッファメモリ６０が三個ずつ二組ある。リードデータクロスバスイッチ調停／制御回路６４は、各リクエスト入力バッファメモリ６０毎にデータ転送先を記憶するテーブルを有し、このテーブルを使用してデータ転送先の制御を行う。
【００５３】
今、ホストコンピュータ１３からアドレス／ライトコマンド／データの順でパケットをクロスバスイッチ２０ａが受信した場合、リードデータクロスバスイッチ調停／制御回路６４は、４ビットの入力バッファ番号を示す制御信号を用いて、データを格納するリクエスト入力バッファメモリ６０についての指示を出す。このときのリクエスト入力バッファメモリ６０を選択する番号は、マスター／スレーブとも同じ番号を用いる。これにより、マスター／スレーブとも同じ番号のリクエスト入力バッファメモリ６０にデータを格納することができる。
【００５４】
データ格納後、リードデータクロスバスイッチ調停／制御回路６４は、リクエスト入力バッファメモリ６０のデータをリクエスト出力バッファメモリ６２を経由してメモリ２４へ転送する。このときのデータ転送経路の決定はリードデータクロスバスイッチ調停／制御回路６４が行い、リクエスト入力バッファメモリ６０とメモリ２４との間のパスが空いている場合、リクエスト入力バッファメモリ６０の番号とメモリモジュール２１の番号とを制御信号に含めて出力し、転送元と転送先とをクロスバスイッチ２０で接続しデータ転送を行う。リードデータクロスバスイッチ調停／制御回路６４は、リクエスト入力バッファメモリ６０毎に調停を実施することから、転送先であるメモリ２４が重ならない限り、複数転送が可能である。
【００５５】
図７は、ホストコンピュータアダプタ１６の一例を示すブロック図である。以下、図１及び図７に基づき、ホストコンピュータアダプタ１６によるシリアル転送判断を説明する。
【００５６】
ホストコンピュータアダプタ１６において、コマンド解読回路８０がホストコンピュータ１３からの転送モードを判断する。ホストコンピュータ１３からのコマンドがシーケンシャルなライトコマンド又はリードコマンドと判断されると、コマンドアドレス変換回路８２は、ホストコンピュータ１３から転送されたデータが直接ディスクエンクロージャアダプタ１４へ転送されるように、コマンド及びアドレスを変更（物理アドレスに変更）する。ホストコンピュータ１３から転送されたデータは、一時的にデータ格納バッファメモリ８１に格納される。アレイコントロール回路８３は、データ格納バッファメモリ８１に格納されている変換されたアドレスに対応するデータを、クロスバスイッチ２０へ送出する。後のプロトコルは、他の場合と同一である。
【００５７】
図８は、ホストコンピュータアダプタ１６からディスクエンクロージャアダプタ１７へのデータ書き込み処理を示すフローチャートである。以下、図１、図３及び図８に基づき説明する。
【００５８】
ステップ９０１で、ホストコンピュータアダプタ１６又はディスクエンクロージャアダプタ１７からクロスバスイッチ２０へ、ＡＤＲ（アドレス）、ＣＭＤ（コマンド）及びＤＡＴＡ（データ）が送出される。これらＡＤＲ、ＣＭＤ及びＤＡＴＡは、クロスバスイッチ２０内のリクエスト入力バッファメモリ６０に保持される。このＡＤＲ及びＣＭＤに基づき、出力するディスクエンクロージャアダプタ１７へのポートが判定され、ステップ９０２で、リクエストクロスバスイッチ調停／制御回路６１へ接続要求が発行される。
【００５９】
同一ポートへの接続要求が複数発生した場合には、リクエストクロスバスイッチ調停／制御回路６１で調停を行う。また、リクエスト入力バッファメモリ６０内に保持されたデータが送出待ち状態であっても、１つのホストコンピュータアダプタ１６又はディスクエンクロージャアダプタ１７に対し、複数のリクエスト入力バッファメモリ６０が設けられているため、ホストコンピュータアダプタ１６又はディスクエンクロージャアダプタ１７からの次のデータを受け取ることができる。これら複数のリクエスト入力バッファメモリ６０内に保持されたデータについては、入力順に関わらずリクエストクロスバスイッチ調停／制御回路６１へ接続要求を出すことができる。
【００６０】
ステップ９０３で調停の結果、メモリチャネル２３へのポート使用権が決定すると、リクエストクロスバスイッチ７４のバス切り替えが行われ、ディスクエンクロージャアダプタ１７へデータ転送が行われる。ステップ９０７で、ディスクエンクロージャアダプタ１７は、受信したＡＤＲ／ＣＭＤに基づき、アクセスするＨＤＤを決定し、ＤＡＴＡ書き込みを行う。ステップ９０８で、ディスクエンクロージャアダプタ１７は、ＨＤＤへの書き込みアクセスに関する結果ステータス（ＷＳＴＳ）を生成し、書き込み要求元のホストコンピュータアダプタ１６へ返送する。このとき、書き込み要求元のホストコンピュータアダプタ１６に対するエージェント番号をＷＳＴＳに付加し、これを送信する。
【００６１】
図９は、ホストコンピュータアダプタ１６からディスクエンクロージャアダプタ１７へのデータ読み出し処理を示すフローチャートである。以下、図１、図３及び図９に基づき説明する。
【００６２】
ステップ１００１で、ホストコンピュータアダプタ１６からクロスバスイッチ２０へＡＤＲ及びＣＭＤが送出される。これらのＡＤＲ及びＣＭＤは、クロスバスイッチ部２０内のリクエスト入力バッファ６０に保持される。これらのＡＤＲ及びＣＭＤに基づき、出力するディスクエンクロージャアダプタ１７へのポートが判定され、ステップ１００２で、リクエストクロスバスイッチ調停／制御回路６１へ接続要求が発行される。ステップ１００３で調停の結果、目的のリクエスト出力バッファメモリ６２へのバス切り替えが行われると、ステップ１００６でリクエスト出力バッファメモリ６２へＡＤＲ及びＣＭＤが送出される。
【００６３】
ステップ１００７で、これらのＡＤＲ及びＣＭＤとリードデータ入力バッファ６３に保持されているＡＤＲ及びＣＭＤとの比較を行い、要求するデータがリードデータ入力バッファ６３に格納されていなければ、メモリチャネル２３へＡＤＲ及びＣＭＤを送出し、データ読み込みの要求を行うとともに、要求元のホストコンピュータアダプタ１６へリトライを促す。リトライを促されたホストコンピュータアダプタ１６は、再度、同一のＡＤＲ及びＣＭＤでアクセス要求を行うか、又は別のアクセス要求を行うことができる。
【００６４】
ステップ１０１０で、ディスクエンクロージャアダプタ１６は、受信したＡＤＲ及びＣＭＤに基づき、アクセスするＨＤＤを決定し、リード処理を行う。また、このリードアクセスに関する結果ステータス（ＲＳＴＳ）を生成し、ステップ１０１２で、リードデータ、ステータスの順で、クロスバスイッチ２０のリードデータ入力バッファメモリ６３へ送信し、リードデータ入力バッファメモリ６３で保持する。このとき、ディスクエンクロージャアダプタ１７へのアクセスに使用したＡＤＲ及びＣＭＤも、アクセス情報として保持する。
【００６５】
ステップ１０１３で、ホストコンピュータアダプタ１６は、ステップ１００１で送出したＡＤＲ及びＣＭＤと同一のアクセス要求を行う。これらＡＤＲ及びＣＭＤはリクエスト入力バッファメモリ６０に保持され、ステップ１００２〜１００６と同様の処理を経て、リクエスト出力バッファメモリ６２に送出される。リクエスト出力バッファメモリ６２にＡＤＲ及びＣＭＤが保持されると、ステップ１０１９で再度、これらのＡＤＲ及びＣＭＤとリードデータ入力バッファメモリ６３に保持されるＡＤＲ及びＣＭＤとの比較を行う。
【００６６】
ここで、ＡＤＲ及びＣＭＤが一致すると、リードデータクロスバスイッチ調停／制御回路６４に対し、リードデータ入力バッファメモリ６３とアクセス要求元のホストコンピュータアダプタ１６に接続されるリードデータ出力バッファメモリ６５との間を接続するようリクエストを発行する。ステップ１０２１でバス使用権を獲得し、ステップ１０２２でバス切り替えが行われると、ステップ１０２４でリードデータ及びステータスを、要求元のホストコンピュータアダプタ１６へ送出する。
【００６７】
【発明の効果】
請求項１又は２記載のディスクアレイ制御装置又は請求項１０又は１１記載のディスクアレイ制御方法によれば、キャッシュメモリがメモリモジュールと複数のクロスバスイッチとを備え、複数のホストコンピュータアダプタと複数のクロスバスイッチとが接続され、複数のディスクエンクロージャアダプタと複数のクロスバスイッチとが接続され、複数のクロスバスイッチとメモリモジュールとが接続され、複数のクロスバスイッチが互いに同期してデータを転送することにより、キャッシュメモリに対するアクセスパスを複数存在させることができるとともに、データ転送時の無駄な待ち時間がなくなるので、キャッシュメモリに対するスループットを向上できる。しかも、このとき、当該データを複数のパケットに分割後これらを同時に転送して再び合成する。これにより、データ転送速度が向上する。換言すると、１パケットずつ送るよりも数パケットを同時転送した方が効率がよいため、瞬間的なデータ転送速度が上がる。
【００６８】
また、ホストコンピュータアダプタとディスクエンクロージャアダプタとを直接接続する機能をクロスバスイッチが有していることにより、キャッシュメモリに対するメモリデータ転送能力に依存せずに、ホストコンピュータとディスクエンクロージャとの間のデータ転送が可能であるので、スループットを向上できる（請求項３，４，１２，１３）。換言すると、ホストコンピュータアダプタとディスクエンクロージャアダプタとの間で、キャッシュメモリのデータ転送速度に関係なくデータ転送が可能である。その理由は、クロスバスイッチを用いることにより、ホストコンピュータアダプタとディスクエンクロージャアダプタとの間で、キャッシュメモリを介さずに直接にデータ転送を実行できるからである。
【００６９】
請求項６記載のディスクアレイ制御装置又は請求項１５記載のディスクアレイ制御方法によれば、ホストコンピュータアダプタ又はディスクエンクロージャアダプタから送信されたデータを一時的に蓄えるバッファメモリをクロスバスイッチが備えていることにより、転送先のキャッシュアドレスが複数のアクセスパスで重なった場合でも、バッファメモリで緩衝可能であるので、スループットを向上できる。
【００７０】
なお、上記請求項を引用するディスクアレイ制御装置も、上記請求項と同等以上の効果を奏する。同様に、上記請求項を引用するディスクアレイ制御方法も、上記請求項と同等以上の効果を奏する。
【図面の簡単な説明】
【図１】本発明に係るディスクアレイ制御装置の一実施形態を示すブロック図である。
【図２】図１のディスクアレイ制御装置におけるクロスバスイッチの一例を示すブロック図である。
【図３】図１のディスクアレイ制御装置におけるクロスバスイッチの一例を詳細に示すブロック図である。
【図４】図１のディスクアレイ制御装置における、ホストコンピュータアダプタ又はディスクエンクロージャアダプタからメモリモジュールへのデータ書き込み処理を示すフローチャートである。
【図５】図１のディスクアレイ制御装置における、ホストコンピュータアダプタ又はディスクエンクロージャアダプタからメモリモジュールへのデータ読み出し処理を示すフローチャートである。
【図６】図１のディスクアレイ制御装置における、クロスバスイッチの同期転送を説明するためのブロック図である。
【図７】図１のディスクアレイ制御装置における、ホストコンピュータアダプタの一例を示すブロック図である。
【図８】図１のディスクアレイ制御装置における、ホストコンピュータアダプタからディスクエンクロージャアダプタへのデータ書き込み処理を示すフローチャートである。
【図９】図１のディスクアレイ制御装置における、ホストコンピュータアダプタからディスクエンクロージャアダプタへのデータ読み出し処理を示すフローチャートである。
【図１０】従来のディスクアレイ制御装置を示すブロック図である。
【符号の説明】
１１  ディスクアレイ制御装置
１２  キャッシュメモリ
１３  ホストコンピュータ
１４  ディスクエンクロージャ
１５  ホストコンピュータインタフェース
１６  ホストコンピュータアダプタ
１７  ディスクエンクロージャアダプタ
１８  ＳＸバス
１９  クロスバスイッチインタフェース
２０，２０ａ，２０ｂ  クロスバスイッチ
２１  メモリモジュール
２２  クロスバスイッチチャネル
２３  メモリチャネル
２４  メモリ
２５  ディスクエンクロージャインタフェース
２６  ＭＸバス
３１，３２  ＳＸバッファメモリ
３３  スイッチ
３４，３５  ＭＸバッファメモリ
３６  バッファメモリ制御回路
【図１】
0003578075.tif 000002
【図２】
0003578075.tif 000003
【図３】
0003578075.tif 000004
【図４】
0003578075.tif 000005
【図５】
0003578075.tif 000006
【図６】
0003578075.tif 000007
【図７】
0003578075.tif 000008
【図８】
0003578075.tif 000009
【図９】
0003578075.tif 000010
【図１０】
0003578075.tif 000011