ディスクアレイ制御装置及びディスクアレイ制御方法
【課題】 チャネルI/F部及びディスクI/F部と共有メモリあるいはキャッシュメモリ間のチャネルアクセスパスを効率的に使用し、メモリアクセススループット、特にキャッシュメモリへのアクセススループットを高める。
【解決手段】 チャネルI/F部111、又はディスクI/F部112からは、セレクタ部113を介して共有メモリ部114にアクセス可能であり、チャネルI/F部、又はディスクI/F部とセレクタ部113間と、セレクタ部と共有メモリ部間は、夫々アクセスパス0 135、アクセスパス1 136により接続され、セレクタ部は、チャネルI/F部、又はディスクI/F部からの複数の入力ポートと、共有メモリ部への複数の出力ポートを相互に接続する手段と、複数の入力ポートから出力ポートへの接続要求を接続要求が到着した順に格納する手段と、複数の接続要求間の調停を行い、各出力ポートに入力ポートからの接続要求を割当てる調停手段から構成される。
【解決手段】 チャネルI/F部111、又はディスクI/F部112からは、セレクタ部113を介して共有メモリ部114にアクセス可能であり、チャネルI/F部、又はディスクI/F部とセレクタ部113間と、セレクタ部と共有メモリ部間は、夫々アクセスパス0 135、アクセスパス1 136により接続され、セレクタ部は、チャネルI/F部、又はディスクI/F部からの複数の入力ポートと、共有メモリ部への複数の出力ポートを相互に接続する手段と、複数の入力ポートから出力ポートへの接続要求を接続要求が到着した順に格納する手段と、複数の接続要求間の調停を行い、各出力ポートに入力ポートからの接続要求を割当てる調停手段から構成される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データを分割して複数の磁気ディスク装置に格納するディスクアレイ装置の制御装置に関する。
【背景技術】
【0002】
コンピュータの主記憶のI/O性能に比べて、2次記憶装置として用いられる磁気ディスク装置を使ったサブシステムのI/O性能は3〜4桁程度小さく、従来からこの差を縮めること、すなわちサブシステムのI/O性能を向上する努力が各所でなされている。
サブシステムのI/O性能を向上させるための1つの方法として、複数の磁気ディスク装置でサブシステムを構成し、データを分割して複数の磁気ディスク装置に格納する手段、いわゆるディスクアレイと呼ばれるシステムが知られている。
【0003】
例えば、1つの従来技術(以下、従来技術1という)では、図2に示すようにホストコンピュータ101とディスク制御装置2間のデータ転送を実行する複数のチャネルI/F部111と、磁気ディスク装置120とディスク制御装置間2のデータ転送を実行する複数のディスクI/F部112と、磁気ディスク装置120のデータを一時的に格納するキャッシュメモリ部115と、磁気ディスク120のデータ及びディスク制御装置2に関する制御情報を格納する共有メモリ部114を備え、キャッシュメモリ部115および共有メモリ部114は全チャネルI/F部111及びディスクI/F部112からアクセス可能な構成となっている。
この従来技術1では、チャネルI/F部111及びディスクI/F部112と共有メモリ部114、またチャネルI/F部111及びディスクI/F部112とキャッシュメモリ部115間は1:1に接続されている。
【0004】
また、他の従来技術(以下、従来技術2という)では、図3に示すようにホストコンピュータ101とディスク制御装置3間のデータ転送を実行する複数のチャネルI/F部111と、磁気ディスク装置120とディスク制御装置3間のデータ転送を実行する複数のディスクI/F部112と、磁気ディスク装置120のデータを一時的に格納するキャッシュメモリ部115と、磁気ディスク120のデータ及びディスク制御装置2に関する制御情報を格納する共有メモリ部114を備える。
そして、各チャネルI/F部111及びディスクI/F部112と共有メモリ部114間は共有バス130で接続され、各チャネルI/F111部及びディスクI/F部112とキャッシュメモリ部115間は共有バス130により接続されている。
【発明の開示】
【発明が解決しようとする課題】
【0005】
ディスクアレイシステムに対する高性能化要求に対して、これまでは、ディスクアレイ制御装置の大規模化や構成要素の高速化、例えばプロセッサ数やキャッシュ容量の増大、高性能プロセッサの適用、内部バス幅の拡大やバス転送能力の向上などで対応してきた。
しかしながら、前記従来技術2では、内部バスの転送能力がシステムの大規模化および性能向上に追従するのが困難になりつつある。
【0006】
そこで内部バス性能を向上させて高いメモリアクセス性能を得るために、前記従来技術1のように、プロセッサとメモリ間を1:1に接続する方法が考えられる。
この方法によれば、メモリに接続したアクセスパス数に比例して内部バス性能が増加する。
しかしながら、搭載するプロセッサ数の増大に比例して、共有メモリおよびキャッシュメモリに接続するアクセスパス数も増加する。
そのため、内部バス性能を最大限に引き出すために、各プロセッサ−メモリ間のアクセスを効率的に制御する必要がある。
【0007】
本発明の目的は上述の課題を解消し、プロセッサ−メモリ間のアクセスパスを効率的に使用し、メモリアクセススループット、特にキャッシュメモリへのアクセススループットの高いディスクアレイ制御装置を提供することにある。
【課題を解決するための手段】
【0008】
上記目的を達成するため、本発明は、
ホストコンピュータとの1つ以上のインターフェース部と、複数の磁気ディスク装置との1つ以上のインターフェース部と、磁気ディスク装置のデータ及びディスクアレイ制御装置に関する制御情報を格納する物理的に独立した1つ以上の共有メモリ部を有し、前記ホストコンピュータとのインターフェース部、または前記複数の磁気ディスク装置とのインターフェース部からは、セレクタを介して前記共有メモリ部にアクセス可能であり、前記ホストコンピュータとのインターフェース部、または前記複数の磁気ディスク装置とのインターフェース部と前記セレクタ間と、前記セレクタと前記共有メモリ部間はアクセスパスにより接続されているディスクアレイ制御装置であって、
前記セレクタは、前記ホストコンピュータとのインターフェース部、または前記複数の磁気ディスク装置とのインターフェース部からの複数の入力ポートと、
前記共有メモリ部への複数の出力ポートを相互に接続する手段と、
前記複数の入力ポートから出力ポートへの接続要求を前記接続要求が到着した順に格納する手段と、複数の前記接続要求間の調停を行い、各出力ポートに前記入力ポートからの接続要求を割り当てる調停手段を有しており、
前記調停手段は、前記到着順に格納された接続要求の中の先頭の要求が、現在空いている出力ポートへの要求であれば、該要求へ出力ポートを割り当て、前記到着順に格納された接続要求の中の先頭の要求が、現在使用中の出力ポートへの要求であれば、2番目の要求を調べ、2番目の接続要求が、現在空いている出力ポートへの要求であれば、該要求へ出力ポートを割り当て、2番目の接続要求が、現在使用中の出力ポートへの要求であれば、3番目の要求を調べ、それ以降、多くとも現在空いている出力ポートの数に等しい回数だけ、上記出力ポートへの接続要求の調停(割り当て)を繰り返すようにしている。
【0009】
また、前記共有メモリ部は各々物理的に独立した前記共有メモリ部間で二重化されており、前記セレクタから前記二重化された共有メモリ部両方への同時アクセスが発生するようにしている。
【0010】
また、前記共有メモリ部が、磁気ディスク装置のデータを一時的に格納するキャッシュメモリ部と、前記キャッシュメモリ部及び前記ディスクアレイ制御装置に関する制御情報を格納する共有メモリ部に物理的に分割されており、
前記キャッシュメモリ部に繋がるセレクタと、前記共有メモリ部に繋がるセレクタが物理的に独立しており、
前記ホストコンピュータとのインターフェース部、及び前記複数の磁気ディスク装置とのインターフェース部から、前記キャッシュメモリ部、または前記共有メモリ部へのアクセスパスが物理的に独立しており、
少なくとも前記キャッシュメモリ部に繋がるセレクタに前記調停手段を備えるようにしている。
【0011】
また、前記共有メモリ部は各々物理的に独立した前記共有メモリ部間で二重化されており、前記キャッシュメモリ部は各々物理的に独立した前記キャッシュメモリ部間で二重化されており、少なくと前記キャッシュメモリに繋がるセレクタから前記二重化されたキャッシュメモリ部両方への同時アクセスが発生し、少なくとも前記キャッシュメモリに繋がるセレクタに前記調停手段を備えるようにしている。
【0012】
また、前記ホストコンピュータとのインターフェース部、または前記複数の磁気ディスク装置とのインターフェース部から、前記共有メモリ部、または前記キャッシュメモリ部へのアクセスの際に、最初にアドレスとコマンドを連続して送出し、前記共有メモリ部、または前記キャッシュメモリ部までのアクセスパスが確立した後に、データを送出するようにしている。
【発明の効果】
【0013】
本発明によれば、ホストコンピュータとのインターフェース部、または複数の磁気ディスク装置とのインタフェース部と共有メモリ部の間にあるセレクタ部において、ホストコンピュータとのインターフェース部、または複数の磁気ディスク装置とのインタフェース部から共有メモリ部へのアクセス要求を、共有メモリ部へのアクセスパスへ効率よく振り分けることが可能となる。
それによって、ディスクアレイ制御装置のデータ転送のスループットを向上することができる。
【発明を実施するための最良の形態】
【0014】
本発明の実施例について、以下詳細に説明する。
《実施例1》
図1に、本発明の一実施例を示す。
ディスクアレイ制御装置1は、チャネルI/F部111、ディスクI/F部112、セレクタ部113、共有メモリ部114と、アクセスパス0 135、アクセスパス1 136から構成される。
【0015】
図13に示すように、チャネルI/F部111は、ホストコンピュータとの1つのI/F(ホストI/F)51と、1つのマイクロプロセッサ50と、1つの共有メモリアクセス回路52と、共有メモリ部114への1つのアクセスパスI/Fから構成される。
データ書き込み時は、ホストI/F51は、ホストコンピュータ101から送られてきたデータをパケットに分割して共有メモリアクセス回路52へ送出する。共有メモリアクセス回路52は、ホストI/F51から送られてくる複数のパケットを1つのアクセスパスを使用して共有メモリ部114へ送出する。
データ読み出し時は、共有メモリアクセス回路52は、共有メモリ部114から送られてきた複数のパケットをホストI/F51へ送出する。ホストI/F51は、共有メモリアクセス回路52から送られてきた複数のパケットを1つのデータにまとめ、ホストコンピュータ101へ送出する。
マイクロプロセッサ50は、ホストI/F51及び共有メモリアクセス回路52でのデータの送受信を制御する。
ディスクI/F部112は、複数の磁気ディスク装置120との1つのI/F(ドライブI/F)、1つのマイクロプロセッサ、共有メモリ部114への1つのアクセス回路と、共有メモリ部114への1つのアクセスパスI/Fから構成されている。図13に示すホストI/F51をドライブI/Fで置き換えた構成となる。データの書き込みおよび読み出し時には、チャネルI/F部111の説明で述べた処理と少なくとも同様の処理が行われる。
ここで、上記に示した個数は一実施例に過ぎず、上記に限定するものではない。
【0016】
共有メモリ部114は、磁気ディスク装置120へ記録するデータや、そのデータの管理情報及びシステム情報などの管理情報を格納する。
セレクタ部113には、2つのチャネルI/F部111、2つのディスクI/F部112からそれぞれ1本ずつ、計4本のアクセスパス0 135が接続されている。
また、セレクタ部113には、2つの共有メモリ部114へのアクセスパス1 136が1本ずつ、計2本接続されている。
これら1つのセレクタ部113とそれに繋がる2つのチャネルI/F部111及び2つのディスクI/F部112で1つのグループを形成し、セレクタグループ150と呼ぶ。
本実施例では、ディスクアレイ制御装置1が2つのセレクタグループ150を有する。
チャネルI/F部及びディスクI/F部とセレクタ部間のアクセスパスと、セレクタ部と共有メモリ部間のアクセスパスの間には上記のようなパス数の関係があるため、セレクタ部113ではチャネルI/F部111及びディスクI/F部112からの4本のアクセスパス0:135からの要求の内、共有メモリ部114へのアクセスパス1:136の数に相当する2個だけを選択して実行する機能を持つ。
ここで、上記個数は一実施例に過ぎず、個数を上記に限定するものではない。
【0017】
1つのセレクタ部113から共有メモリ部114へ接続されるアクセスパスの数を、チャネルI/F部111及びディスクI/F部112から1つのセレクタ部113に接続されるアクセスパスの数より少なくし、チャネルI/F部111とディスクI/F部112の合計数よりもセレクタ部113の数が少なくなるように上記個数を設定すると、共有メモリ部114それぞれへ接続されるアクセスパス数を削減することができる。
共有メモリ部のLSIピンネック及びパッケージのコネクタネックという問題が生じた場合、上記のようにすることで、LSIのピンネック及びパッケージのコネクタネックを解消することができる。
【0018】
次に、セレクタ部113内部の構成について述べる。
図4は、セレクタ部113内の構成を示している。
セレクタ部113は、チャネルI/F部111、またはディスクI/F部112とのI/Fポート210と、共有メモリ部114とのI/Fポート211と、両者間を互いに接続するセレクタ206と、I/Fポート210及び211で入出力を行う際のデータのエラーチェック部201と、チャネルI/F部111、またはディスクI/F部112から送出されたアドレス、コマンド、及びデータをバッファリングするバッファ202と、チャネルI/F部111、またはディスクI/F部112から送出されたアドレス及びコマンドを解析するアドレス・コマンド(adr、cmd)解析部203と、解析結果を共有メモリ部114とのI/Fポート211への接続要求として、要求の到着順に管理するキュー管理部204と、キュー管理部内に登録された接続要求に基づいてアービトレーションを行い、共有メモリとのI/Fポート211への接続権を決定するアービトレーション部205を有する。
【0019】
共有メモリ部のLSIのピンネック及びパッケージのコネクタネックが生じた場合には、前述のように、チャネルI/F部111、またはディスクI/F部112とのI/Fポート210の数よりも、共有メモリ部114とのI/Fポート211の数を少なくすることで、それらのネックを解消できる。
本実施例では、チャネルI/F部111、またはディスクI/F部112とのI/Fポート210の数を4つ、共有メモリ部114とのI/Fポート211の数を2つとした。
【0020】
図12は、アドレス・コマンド(adr、cmd)解析部203、キュー管理部204、及びアービトレーション部205の詳細構成について示している。
アドレス・コマンド(adr、cmd)解析部203は、チャネルI/F部111、またはディスクI/F部112とのI/Fポート210の数に相当する4つのバッファ220を有し、バッファ内に各I/Fポート210からのアドレス(adr)及びコマンド(cmd)を格納する。
アドレスは長さが4バイトで最初の1バイトに出力ポート番号(port No.)が示されている。
コマンドは長さが4バイトで最初の1バイトにアクセスの種類(読み出し:RD、書き込み:WR、2重読み出し:2R、2重書き込み:2W)が示されている。
ここで、共有メモリ部114が2重化されている場合、2重読み出し及び2重書き込みを行う場合がある。
このような2重アクセス時には、2つのポートを同時に使用するため、両方のポートの使用権を獲得する必要がある。
【0021】
port No.抽出部221では、アドレスから要求ポート番号を取り出す。
本実施例では、port0に“00”、port1に“11”を割り当てた。
cmd種類抽出部222では、コマンドからアクセスの種類を取り出す。
本実施例では、RDに“00”、WRに“01”、2Rに“10”、2Wに“11”を割り当てた。
使用ポート決定部223では、アクセスの種類が2重アクセスでない場合port No.をそのまま出力し、2重アクセスの場合それを示す“01”を出力する。
キュー管理部204では、アドレス・コマンド(adr、cmd)解析部203から出力されたport No.を到着順に管理テーブル224に登録する。
【0022】
アービトレーション部205では、管理テーブル224の先頭から要求port No.を1つ取り出し、バッファ227に格納する。
そして、バッファ226に格納された使用中のport No.とバッファ227内の要求port No.を比較器228で比較する。
port No.が異なる場合、その番号をセレクタ切り替え信号SEL0、SEL1としてセレクタ206へ出力し、キュー管理部204内の順番入替え部225へキューの順番を1つ進めるように指示する。
port No.が等しい場合、順番入替え部225へキューの順番を入れ替えるように指示する。
順番の入れ替え方法については、図6の調停のフローの説明で述べる。
ここで、アドレス、コマンドの長さ、アドレスまたはコマンド内のport No.またはcmd種類がそれぞれ示されている場所、port No.またはcmd種類へのビットの割り当て方は一実施例に過ぎず、上記に限定するものではない。
また、共有メモリ部114が2重化されていない場合、2重アクセスは生じないため、cmd種類抽出部222及び使用port決定部223は必要なくなり、port No.抽出部221の出力をキュー管理部204へ直接入力すればよい。
【0023】
次に、セレクタ部113での処理の手順について述べる。
図5は、チャネルI/F部111、またはディスクI/F部112とのI/Fポート210のうちの1つにおける処理フローを示している。
まず、ステップ301で、チャネルI/F部111、またはディスクI/F部112内の共有メモリアクセス回路からアクセス要求(REQ ON)が来るまで待機する。
アクセス要求が来たら、ステップ302でアドレス(adr)及びコマンド(cmd)を解析する。
ステップ303でアドレス(adr)、コマンド(cmd)にエラーがないかどうかチェックし、エラーがあった場合ステップ315でエラー処理を行い、ステップ301のアクセス要求待機状態に戻る。
エラーがなかった場合、ステップ304で、共有メモリ部114とのI/Fポート211への接続要求として、キューに登録する。
そして、そのキューの内容に基づいてアービトレーションを行う。
ステップ305で、要求した共有メモリ部114とのI/Fポート211が獲得できるまで待機する。
獲得できたら、ステップ306でセレクタ206を切り替えて要求を出したI/Fポート210と獲得したI/Fポート211を接続する。
【0024】
次に、ステップ307で共有メモリ(SM)部114へアクセス要求(REQ ON)を出し、アドレス(adr)とコマンド(cmd)を送出する。
ステップ308で、共有メモリ部114からアクセス承認(ACK ON)が返ってくるまで待機する。
アクセス承認(ACK ON)が返ってきたら、ステップ309でチャネルI/F部111、またはディスクI/F部112内の共有メモリアクセス回路へアクセス承認(ACK ON)を返す。
ステップ310で、データの書き込み時は共有メモリアクセス回路から送られてきたデータを共有メモリ部114へ送信する。
また、データの読み出し時は共有メモリ部114から送られてきたデータを共有メモリアクセス回路へ送信する。
【0025】
その際、ステップ311でエラーのチェックを行う。
エラーを発見した場合、ステップ315でエラー処理を行い、ステップ301のアクセス要求待機状態へ戻る。
エラーが無い場合、ステップ312でステータス(Status)が届くのをチェックし、ステータス(Status)が届くまでデータを送信する。
ステータス(Status)が届いたら、ステップ313で共有メモリ部へ、アクセス承認(ACK ON)を取り下げるよう指示し、ステップ301のアクセス要求待機状態に戻る。
【0026】
次に、ステップ304でのアービトレーション(調停)の方法について述べる。
図6は、調停のフローを示している。
ステップ401で、空いている出力ポートがあるかどうか調べ、空きポートができるまで待つ。
ステップ401で空きポートがあれば、ステップ402でキュー管理部204に到着順に格納された接続要求の中の先頭の要求を調べる。
ステップ403で現在空いている出力ポートへの要求であれば、ステップ404でその要求へ出力ポートを割り当てる。
ステップ403で、キュー管理部204に到着順に格納された接続要求の中の先頭の要求が、現在使用中の出力ポートへの要求であれば、ステップ406でキュー先頭の要求を(空きポート数+1)番目にし、ステップ401へ戻る。
ステップ404で出力ポートを割り当てたら、ステップ405でキューの順番を1つ進め、ステップ401へ戻る。
上記の制御を行うことにより、共有メモリ部側のI/Fポート211を効率よく割り当てることが可能となり、高いスループットのデータ転送を実現できる。
【0027】
また、図9に示すように、共有メモリ部114を各々物理的に独立した共有メモリ部114間で二重化して二重化領域(160)を形成する。すなわち、2個の共有メモリ部114を2重化した場合には各共有メモリ部に同一のデータが書き込まれる。また、各共有メモリ部全体を二重化したり、各共有メモリ部の一部分を二重化したりすることができる。
そして、セレクタ部113から二重化された共有メモリ部114両方への同時アクセス(2重アクセス)が発生するディスクアレイ制御装置4では、図6のステップ402、403においてキュー先頭の要求が2重アクセスかどうかを調べ、2重アクセスの場合、要求される2つのポートが空いていればポートを割り当て、そうでなければステップ406へ進むという処理を行う。
これによって、共有メモリ部114に格納したデータの信頼性を向上させることが可能となる。
また、磁気ディスク装置120に記録するデータの転送時、共有メモリ部114とのI/Fポート211を効率よく割り当てることが可能となり、高いスループットのデータ転送を実現できる。
【0028】
《実施例2》
図1に示すディスクアレイ制御装置の構成を、図10に示すように、共有メモリ部114を、磁気ディスク装置120に記録するデータを一時的に格納するキャッシュメモリ部115と、キャッシュメモリ部115及びディスクアレイ制御装置5に関する制御情報を格納する共有メモリ部114に物理的に分割し、キャッシュメモリ部115に繋がるセレクタ部(CMセレクタ部)123と、共有メモリ部に繋がるセレクタ部(SMセレクタ部)113を物理的に独立させた構成にする。
そして、チャネルI/F部111、及びディスクI/F部112から、キャッシュメモリ部115、または共有メモリ部114へのアクセスパス0 135、アクセスパス1 136を物理的に独立させ、少なくともキャッシュメモリ部115に繋がるセレクタ部(CMセレクタ部)123において、実施例1で述べた調停を行う。これは、共有メモリ部に格納されるのは、キャッシュメモリ部115及びディスクアレイ制御装置5に関する制御情報であり、制御情報のデータ量は少ないので、ポートが使用中となる時間は小さく、すぐにポートは使用可能となるため、調停をしなくても格別の差し障りはないからである。
【0029】
また、図11に示すように、共有メモリ部114、及びキャッシュメモリ部115を各々物理的に独立した共有メモリ部114、及びキャッシュメモリ部115間でそれぞれ二重化して二重化領域(160)を形成し、少なくともキャッシュメモリに繋がるセレクタ部(CMセレクタ部)123から二重化されたキャッシュメモリ部115両方への同時アクセス(2重アクセス)が発生するディスクアレイ制御装置6では、図6のステップ402、403においてキュー先頭の要求が2重アクセスかどうかを調べ、2重アクセスの場合、要求される2つのポートが空いていればポートを割り当て、そうでなければステップ406へ進むという処理を、キャッシュメモリ部に繋がるセレクタ部(CMセレクタ部)123で行う。
これによって、共有メモリ部114に格納したデータの信頼性を向上させることが可能となる。
また、磁気ディスク装置120に記録するデータの転送時、キャッシュメモリ部115とのI/Fポート211を効率よく割り当てることが可能となり、高いスループットのデータ転送を実現できる。
【0030】
《実施例3》
図7は、チャネルI/F部111またはディスクI/F部112内の共有メモリ(SM)アクセス回路から共有メモリ部114へ、またはチャネルI/F部111またはディスクI/F部112内のキャッシュメモリ(CM)アクセス回路からキャッシュメモリ部115へデータの書き込みを行うときの処理の流れを示している。
データの書き込み時は、ステップ501でSMまたはCMアクセス回路からセレクタ部113または123へアクセス要求(REQ)を出し、続けてステップ502、503でアドレス(ADR)、コマンド(CMD)を送出する。
ステップ504、505でセレクタ部113または123において、アービトレーションを行い、セレクタを切り替えて共有メモリ部114またはキャッシュメモリ部115へのポートを割り当てる。
ステップ506で、セレクタ部113または123から共有メモリ部またはキャッシュメモリ部へアクセス要求(REQ)を出し、続けてステップ507、508でアドレス(ADR)、コマンド(CMD)を送出する。
【0031】
ステップ509で、共有メモリ部114またはキャッシュメモリ部115において、アクセスするメモリモジュールの選択を行い、選択後、ステップ510でセレクタ部113または123を経由してSMまたはCMアクセス回路へアクセス承認(ACK ON)を返す。
SMまたはCMアクセス回路はACK ONを受けたら、ステップ511でデータを送出する。
共有メモリ部114またはキャッシュメモリ部115はデータを全て受け取ったら、ステップ512で後処理を行い、ステップ513でセレクタ部113または123を経由してSMまたはCMアクセス回路へステータス(STATUS)を返す。
セレクタ部113または123はSTATUSを受けたら、ステップ514で共有メモリ部114またはキャッシュメモリ部115へ、アクセス承認を取り下げるように指示を出す(ACK OFF)。
SMまたはCMアクセス回路はSTATUSを受けたら、ステップ515でセレクタ部113または123に、アクセス承認を取り下げるように指示を出す(ACK OFF)。
【0032】
図8は、チャネルI/F部111またはディスクI/F部112内の共有メモリアクセス回路へ共有メモリ部114から、またはチャネルI/F部111またはディスクI/F部112内のキャッシュメモリアクセス回路へキャッシュメモリ部115からデータの読み出しを行うときの処理の流れを示している。
データの読み出し時の処理ステップ601〜610までは、データの書き込み時の処理ステップ501〜510までと同じである。
【0033】
その後、共有メモリ部114またはキャッシュメモリ部115において、ステップ611で読み出しの前処理を行う。
ステップ612で、セレクタ部113または123を経由してSMまたはCMアクセス回路へデータを送出する。
データの送出が終了したら、共有メモリ部114またはキャッシュメモリ部115において、ステップ613で後処理を行い、ステップ614でセレクタ部113または123を経由してSMまたはCMアクセス回路へSTATUSを返す。
セレクタ部113または123はSTATUSを受けたら、ステップ615で共有メモリ部114またはキャッシュメモリ部115へ、アクセス承認を取り下げるように指示を出す(ACK OFF)。
SMまたはCMアクセス回路はSTATUSを受けたら、ステップ616でセレクタ部113または123へ、アクセス承認を取り下げるように指示を出す(ACK OFF)。
【0034】
上記のように、チャネルI/F部111、またはディスクI/F部112から、共有メモリ部114またはキャッシュメモリ部115へのアクセスの際に、最初にアドレスとコマンドを連続して送出し、共有メモリ部114、またはキャッシュメモリ部115までのアクセスパスが確立した(ステップ510または610)後データを送出することによって、セレクタ部113または123において、転送データをバッファリングする必要がなくなり、セレクタ部113または123での制御が簡単化され、メモリへのアクセススループットの向上が可能となる。
【図面の簡単な説明】
【0035】
【図1】本発明によるディスクアレイ制御装置の構成を示す図である。
【図2】従来のディスクアレイ制御装置の構成を示す図である。
【図3】従来のディスクアレイ制御装置の構成を示す図である。
【図4】本発明によるディスクアレイ制御装置内のセレクタ部の構成を示す図である。
【図5】セレクタ部での動作フローを示す図である。
【図6】セレクタ部内のアービトレーション部での動作フローを示す図である。
【図7】共有メモリ部またはキャッシュメモリ部へデータの書き込みを行うときのシーケンスを示す図である。
【図8】共有メモリ部またはキャッシュメモリ部からデータの読み出しを行うときのシーケンスを示す図である。
【図9】本発明によるディスクアレイ制御装置の他の構成を示す図である。
【図10】本発明によるディスクアレイ制御装置の他の構成を示す図である。
【図11】本発明によるディスクアレイ制御装置の他の構成を示す図である。
【図12】本発明によるディスクアレイ制御装置内のセレクタ部の部分の詳細構成を示す図である。
【図13】チャネルI/F部の構成を示す図である。
【符号の説明】
【0036】
1、4、5、6 ディスクアレイ制御装置
50 マイクロプロセッサ
51 ホストI/F
52 共有メモリアクセス回路
101 ホストコンピュータ
111 チャネルI/F部
112 ディスクI/F部
113 セレクタ部(SMセレクタ部)
114 共有メモリ部
115 キャッシュメモリ部
120 磁気ディスク装置
123 CMセレクタ部
135 アクセスパス0
136 アクセスパス1
150 セレクタグループ
【技術分野】
【0001】
本発明は、データを分割して複数の磁気ディスク装置に格納するディスクアレイ装置の制御装置に関する。
【背景技術】
【0002】
コンピュータの主記憶のI/O性能に比べて、2次記憶装置として用いられる磁気ディスク装置を使ったサブシステムのI/O性能は3〜4桁程度小さく、従来からこの差を縮めること、すなわちサブシステムのI/O性能を向上する努力が各所でなされている。
サブシステムのI/O性能を向上させるための1つの方法として、複数の磁気ディスク装置でサブシステムを構成し、データを分割して複数の磁気ディスク装置に格納する手段、いわゆるディスクアレイと呼ばれるシステムが知られている。
【0003】
例えば、1つの従来技術(以下、従来技術1という)では、図2に示すようにホストコンピュータ101とディスク制御装置2間のデータ転送を実行する複数のチャネルI/F部111と、磁気ディスク装置120とディスク制御装置間2のデータ転送を実行する複数のディスクI/F部112と、磁気ディスク装置120のデータを一時的に格納するキャッシュメモリ部115と、磁気ディスク120のデータ及びディスク制御装置2に関する制御情報を格納する共有メモリ部114を備え、キャッシュメモリ部115および共有メモリ部114は全チャネルI/F部111及びディスクI/F部112からアクセス可能な構成となっている。
この従来技術1では、チャネルI/F部111及びディスクI/F部112と共有メモリ部114、またチャネルI/F部111及びディスクI/F部112とキャッシュメモリ部115間は1:1に接続されている。
【0004】
また、他の従来技術(以下、従来技術2という)では、図3に示すようにホストコンピュータ101とディスク制御装置3間のデータ転送を実行する複数のチャネルI/F部111と、磁気ディスク装置120とディスク制御装置3間のデータ転送を実行する複数のディスクI/F部112と、磁気ディスク装置120のデータを一時的に格納するキャッシュメモリ部115と、磁気ディスク120のデータ及びディスク制御装置2に関する制御情報を格納する共有メモリ部114を備える。
そして、各チャネルI/F部111及びディスクI/F部112と共有メモリ部114間は共有バス130で接続され、各チャネルI/F111部及びディスクI/F部112とキャッシュメモリ部115間は共有バス130により接続されている。
【発明の開示】
【発明が解決しようとする課題】
【0005】
ディスクアレイシステムに対する高性能化要求に対して、これまでは、ディスクアレイ制御装置の大規模化や構成要素の高速化、例えばプロセッサ数やキャッシュ容量の増大、高性能プロセッサの適用、内部バス幅の拡大やバス転送能力の向上などで対応してきた。
しかしながら、前記従来技術2では、内部バスの転送能力がシステムの大規模化および性能向上に追従するのが困難になりつつある。
【0006】
そこで内部バス性能を向上させて高いメモリアクセス性能を得るために、前記従来技術1のように、プロセッサとメモリ間を1:1に接続する方法が考えられる。
この方法によれば、メモリに接続したアクセスパス数に比例して内部バス性能が増加する。
しかしながら、搭載するプロセッサ数の増大に比例して、共有メモリおよびキャッシュメモリに接続するアクセスパス数も増加する。
そのため、内部バス性能を最大限に引き出すために、各プロセッサ−メモリ間のアクセスを効率的に制御する必要がある。
【0007】
本発明の目的は上述の課題を解消し、プロセッサ−メモリ間のアクセスパスを効率的に使用し、メモリアクセススループット、特にキャッシュメモリへのアクセススループットの高いディスクアレイ制御装置を提供することにある。
【課題を解決するための手段】
【0008】
上記目的を達成するため、本発明は、
ホストコンピュータとの1つ以上のインターフェース部と、複数の磁気ディスク装置との1つ以上のインターフェース部と、磁気ディスク装置のデータ及びディスクアレイ制御装置に関する制御情報を格納する物理的に独立した1つ以上の共有メモリ部を有し、前記ホストコンピュータとのインターフェース部、または前記複数の磁気ディスク装置とのインターフェース部からは、セレクタを介して前記共有メモリ部にアクセス可能であり、前記ホストコンピュータとのインターフェース部、または前記複数の磁気ディスク装置とのインターフェース部と前記セレクタ間と、前記セレクタと前記共有メモリ部間はアクセスパスにより接続されているディスクアレイ制御装置であって、
前記セレクタは、前記ホストコンピュータとのインターフェース部、または前記複数の磁気ディスク装置とのインターフェース部からの複数の入力ポートと、
前記共有メモリ部への複数の出力ポートを相互に接続する手段と、
前記複数の入力ポートから出力ポートへの接続要求を前記接続要求が到着した順に格納する手段と、複数の前記接続要求間の調停を行い、各出力ポートに前記入力ポートからの接続要求を割り当てる調停手段を有しており、
前記調停手段は、前記到着順に格納された接続要求の中の先頭の要求が、現在空いている出力ポートへの要求であれば、該要求へ出力ポートを割り当て、前記到着順に格納された接続要求の中の先頭の要求が、現在使用中の出力ポートへの要求であれば、2番目の要求を調べ、2番目の接続要求が、現在空いている出力ポートへの要求であれば、該要求へ出力ポートを割り当て、2番目の接続要求が、現在使用中の出力ポートへの要求であれば、3番目の要求を調べ、それ以降、多くとも現在空いている出力ポートの数に等しい回数だけ、上記出力ポートへの接続要求の調停(割り当て)を繰り返すようにしている。
【0009】
また、前記共有メモリ部は各々物理的に独立した前記共有メモリ部間で二重化されており、前記セレクタから前記二重化された共有メモリ部両方への同時アクセスが発生するようにしている。
【0010】
また、前記共有メモリ部が、磁気ディスク装置のデータを一時的に格納するキャッシュメモリ部と、前記キャッシュメモリ部及び前記ディスクアレイ制御装置に関する制御情報を格納する共有メモリ部に物理的に分割されており、
前記キャッシュメモリ部に繋がるセレクタと、前記共有メモリ部に繋がるセレクタが物理的に独立しており、
前記ホストコンピュータとのインターフェース部、及び前記複数の磁気ディスク装置とのインターフェース部から、前記キャッシュメモリ部、または前記共有メモリ部へのアクセスパスが物理的に独立しており、
少なくとも前記キャッシュメモリ部に繋がるセレクタに前記調停手段を備えるようにしている。
【0011】
また、前記共有メモリ部は各々物理的に独立した前記共有メモリ部間で二重化されており、前記キャッシュメモリ部は各々物理的に独立した前記キャッシュメモリ部間で二重化されており、少なくと前記キャッシュメモリに繋がるセレクタから前記二重化されたキャッシュメモリ部両方への同時アクセスが発生し、少なくとも前記キャッシュメモリに繋がるセレクタに前記調停手段を備えるようにしている。
【0012】
また、前記ホストコンピュータとのインターフェース部、または前記複数の磁気ディスク装置とのインターフェース部から、前記共有メモリ部、または前記キャッシュメモリ部へのアクセスの際に、最初にアドレスとコマンドを連続して送出し、前記共有メモリ部、または前記キャッシュメモリ部までのアクセスパスが確立した後に、データを送出するようにしている。
【発明の効果】
【0013】
本発明によれば、ホストコンピュータとのインターフェース部、または複数の磁気ディスク装置とのインタフェース部と共有メモリ部の間にあるセレクタ部において、ホストコンピュータとのインターフェース部、または複数の磁気ディスク装置とのインタフェース部から共有メモリ部へのアクセス要求を、共有メモリ部へのアクセスパスへ効率よく振り分けることが可能となる。
それによって、ディスクアレイ制御装置のデータ転送のスループットを向上することができる。
【発明を実施するための最良の形態】
【0014】
本発明の実施例について、以下詳細に説明する。
《実施例1》
図1に、本発明の一実施例を示す。
ディスクアレイ制御装置1は、チャネルI/F部111、ディスクI/F部112、セレクタ部113、共有メモリ部114と、アクセスパス0 135、アクセスパス1 136から構成される。
【0015】
図13に示すように、チャネルI/F部111は、ホストコンピュータとの1つのI/F(ホストI/F)51と、1つのマイクロプロセッサ50と、1つの共有メモリアクセス回路52と、共有メモリ部114への1つのアクセスパスI/Fから構成される。
データ書き込み時は、ホストI/F51は、ホストコンピュータ101から送られてきたデータをパケットに分割して共有メモリアクセス回路52へ送出する。共有メモリアクセス回路52は、ホストI/F51から送られてくる複数のパケットを1つのアクセスパスを使用して共有メモリ部114へ送出する。
データ読み出し時は、共有メモリアクセス回路52は、共有メモリ部114から送られてきた複数のパケットをホストI/F51へ送出する。ホストI/F51は、共有メモリアクセス回路52から送られてきた複数のパケットを1つのデータにまとめ、ホストコンピュータ101へ送出する。
マイクロプロセッサ50は、ホストI/F51及び共有メモリアクセス回路52でのデータの送受信を制御する。
ディスクI/F部112は、複数の磁気ディスク装置120との1つのI/F(ドライブI/F)、1つのマイクロプロセッサ、共有メモリ部114への1つのアクセス回路と、共有メモリ部114への1つのアクセスパスI/Fから構成されている。図13に示すホストI/F51をドライブI/Fで置き換えた構成となる。データの書き込みおよび読み出し時には、チャネルI/F部111の説明で述べた処理と少なくとも同様の処理が行われる。
ここで、上記に示した個数は一実施例に過ぎず、上記に限定するものではない。
【0016】
共有メモリ部114は、磁気ディスク装置120へ記録するデータや、そのデータの管理情報及びシステム情報などの管理情報を格納する。
セレクタ部113には、2つのチャネルI/F部111、2つのディスクI/F部112からそれぞれ1本ずつ、計4本のアクセスパス0 135が接続されている。
また、セレクタ部113には、2つの共有メモリ部114へのアクセスパス1 136が1本ずつ、計2本接続されている。
これら1つのセレクタ部113とそれに繋がる2つのチャネルI/F部111及び2つのディスクI/F部112で1つのグループを形成し、セレクタグループ150と呼ぶ。
本実施例では、ディスクアレイ制御装置1が2つのセレクタグループ150を有する。
チャネルI/F部及びディスクI/F部とセレクタ部間のアクセスパスと、セレクタ部と共有メモリ部間のアクセスパスの間には上記のようなパス数の関係があるため、セレクタ部113ではチャネルI/F部111及びディスクI/F部112からの4本のアクセスパス0:135からの要求の内、共有メモリ部114へのアクセスパス1:136の数に相当する2個だけを選択して実行する機能を持つ。
ここで、上記個数は一実施例に過ぎず、個数を上記に限定するものではない。
【0017】
1つのセレクタ部113から共有メモリ部114へ接続されるアクセスパスの数を、チャネルI/F部111及びディスクI/F部112から1つのセレクタ部113に接続されるアクセスパスの数より少なくし、チャネルI/F部111とディスクI/F部112の合計数よりもセレクタ部113の数が少なくなるように上記個数を設定すると、共有メモリ部114それぞれへ接続されるアクセスパス数を削減することができる。
共有メモリ部のLSIピンネック及びパッケージのコネクタネックという問題が生じた場合、上記のようにすることで、LSIのピンネック及びパッケージのコネクタネックを解消することができる。
【0018】
次に、セレクタ部113内部の構成について述べる。
図4は、セレクタ部113内の構成を示している。
セレクタ部113は、チャネルI/F部111、またはディスクI/F部112とのI/Fポート210と、共有メモリ部114とのI/Fポート211と、両者間を互いに接続するセレクタ206と、I/Fポート210及び211で入出力を行う際のデータのエラーチェック部201と、チャネルI/F部111、またはディスクI/F部112から送出されたアドレス、コマンド、及びデータをバッファリングするバッファ202と、チャネルI/F部111、またはディスクI/F部112から送出されたアドレス及びコマンドを解析するアドレス・コマンド(adr、cmd)解析部203と、解析結果を共有メモリ部114とのI/Fポート211への接続要求として、要求の到着順に管理するキュー管理部204と、キュー管理部内に登録された接続要求に基づいてアービトレーションを行い、共有メモリとのI/Fポート211への接続権を決定するアービトレーション部205を有する。
【0019】
共有メモリ部のLSIのピンネック及びパッケージのコネクタネックが生じた場合には、前述のように、チャネルI/F部111、またはディスクI/F部112とのI/Fポート210の数よりも、共有メモリ部114とのI/Fポート211の数を少なくすることで、それらのネックを解消できる。
本実施例では、チャネルI/F部111、またはディスクI/F部112とのI/Fポート210の数を4つ、共有メモリ部114とのI/Fポート211の数を2つとした。
【0020】
図12は、アドレス・コマンド(adr、cmd)解析部203、キュー管理部204、及びアービトレーション部205の詳細構成について示している。
アドレス・コマンド(adr、cmd)解析部203は、チャネルI/F部111、またはディスクI/F部112とのI/Fポート210の数に相当する4つのバッファ220を有し、バッファ内に各I/Fポート210からのアドレス(adr)及びコマンド(cmd)を格納する。
アドレスは長さが4バイトで最初の1バイトに出力ポート番号(port No.)が示されている。
コマンドは長さが4バイトで最初の1バイトにアクセスの種類(読み出し:RD、書き込み:WR、2重読み出し:2R、2重書き込み:2W)が示されている。
ここで、共有メモリ部114が2重化されている場合、2重読み出し及び2重書き込みを行う場合がある。
このような2重アクセス時には、2つのポートを同時に使用するため、両方のポートの使用権を獲得する必要がある。
【0021】
port No.抽出部221では、アドレスから要求ポート番号を取り出す。
本実施例では、port0に“00”、port1に“11”を割り当てた。
cmd種類抽出部222では、コマンドからアクセスの種類を取り出す。
本実施例では、RDに“00”、WRに“01”、2Rに“10”、2Wに“11”を割り当てた。
使用ポート決定部223では、アクセスの種類が2重アクセスでない場合port No.をそのまま出力し、2重アクセスの場合それを示す“01”を出力する。
キュー管理部204では、アドレス・コマンド(adr、cmd)解析部203から出力されたport No.を到着順に管理テーブル224に登録する。
【0022】
アービトレーション部205では、管理テーブル224の先頭から要求port No.を1つ取り出し、バッファ227に格納する。
そして、バッファ226に格納された使用中のport No.とバッファ227内の要求port No.を比較器228で比較する。
port No.が異なる場合、その番号をセレクタ切り替え信号SEL0、SEL1としてセレクタ206へ出力し、キュー管理部204内の順番入替え部225へキューの順番を1つ進めるように指示する。
port No.が等しい場合、順番入替え部225へキューの順番を入れ替えるように指示する。
順番の入れ替え方法については、図6の調停のフローの説明で述べる。
ここで、アドレス、コマンドの長さ、アドレスまたはコマンド内のport No.またはcmd種類がそれぞれ示されている場所、port No.またはcmd種類へのビットの割り当て方は一実施例に過ぎず、上記に限定するものではない。
また、共有メモリ部114が2重化されていない場合、2重アクセスは生じないため、cmd種類抽出部222及び使用port決定部223は必要なくなり、port No.抽出部221の出力をキュー管理部204へ直接入力すればよい。
【0023】
次に、セレクタ部113での処理の手順について述べる。
図5は、チャネルI/F部111、またはディスクI/F部112とのI/Fポート210のうちの1つにおける処理フローを示している。
まず、ステップ301で、チャネルI/F部111、またはディスクI/F部112内の共有メモリアクセス回路からアクセス要求(REQ ON)が来るまで待機する。
アクセス要求が来たら、ステップ302でアドレス(adr)及びコマンド(cmd)を解析する。
ステップ303でアドレス(adr)、コマンド(cmd)にエラーがないかどうかチェックし、エラーがあった場合ステップ315でエラー処理を行い、ステップ301のアクセス要求待機状態に戻る。
エラーがなかった場合、ステップ304で、共有メモリ部114とのI/Fポート211への接続要求として、キューに登録する。
そして、そのキューの内容に基づいてアービトレーションを行う。
ステップ305で、要求した共有メモリ部114とのI/Fポート211が獲得できるまで待機する。
獲得できたら、ステップ306でセレクタ206を切り替えて要求を出したI/Fポート210と獲得したI/Fポート211を接続する。
【0024】
次に、ステップ307で共有メモリ(SM)部114へアクセス要求(REQ ON)を出し、アドレス(adr)とコマンド(cmd)を送出する。
ステップ308で、共有メモリ部114からアクセス承認(ACK ON)が返ってくるまで待機する。
アクセス承認(ACK ON)が返ってきたら、ステップ309でチャネルI/F部111、またはディスクI/F部112内の共有メモリアクセス回路へアクセス承認(ACK ON)を返す。
ステップ310で、データの書き込み時は共有メモリアクセス回路から送られてきたデータを共有メモリ部114へ送信する。
また、データの読み出し時は共有メモリ部114から送られてきたデータを共有メモリアクセス回路へ送信する。
【0025】
その際、ステップ311でエラーのチェックを行う。
エラーを発見した場合、ステップ315でエラー処理を行い、ステップ301のアクセス要求待機状態へ戻る。
エラーが無い場合、ステップ312でステータス(Status)が届くのをチェックし、ステータス(Status)が届くまでデータを送信する。
ステータス(Status)が届いたら、ステップ313で共有メモリ部へ、アクセス承認(ACK ON)を取り下げるよう指示し、ステップ301のアクセス要求待機状態に戻る。
【0026】
次に、ステップ304でのアービトレーション(調停)の方法について述べる。
図6は、調停のフローを示している。
ステップ401で、空いている出力ポートがあるかどうか調べ、空きポートができるまで待つ。
ステップ401で空きポートがあれば、ステップ402でキュー管理部204に到着順に格納された接続要求の中の先頭の要求を調べる。
ステップ403で現在空いている出力ポートへの要求であれば、ステップ404でその要求へ出力ポートを割り当てる。
ステップ403で、キュー管理部204に到着順に格納された接続要求の中の先頭の要求が、現在使用中の出力ポートへの要求であれば、ステップ406でキュー先頭の要求を(空きポート数+1)番目にし、ステップ401へ戻る。
ステップ404で出力ポートを割り当てたら、ステップ405でキューの順番を1つ進め、ステップ401へ戻る。
上記の制御を行うことにより、共有メモリ部側のI/Fポート211を効率よく割り当てることが可能となり、高いスループットのデータ転送を実現できる。
【0027】
また、図9に示すように、共有メモリ部114を各々物理的に独立した共有メモリ部114間で二重化して二重化領域(160)を形成する。すなわち、2個の共有メモリ部114を2重化した場合には各共有メモリ部に同一のデータが書き込まれる。また、各共有メモリ部全体を二重化したり、各共有メモリ部の一部分を二重化したりすることができる。
そして、セレクタ部113から二重化された共有メモリ部114両方への同時アクセス(2重アクセス)が発生するディスクアレイ制御装置4では、図6のステップ402、403においてキュー先頭の要求が2重アクセスかどうかを調べ、2重アクセスの場合、要求される2つのポートが空いていればポートを割り当て、そうでなければステップ406へ進むという処理を行う。
これによって、共有メモリ部114に格納したデータの信頼性を向上させることが可能となる。
また、磁気ディスク装置120に記録するデータの転送時、共有メモリ部114とのI/Fポート211を効率よく割り当てることが可能となり、高いスループットのデータ転送を実現できる。
【0028】
《実施例2》
図1に示すディスクアレイ制御装置の構成を、図10に示すように、共有メモリ部114を、磁気ディスク装置120に記録するデータを一時的に格納するキャッシュメモリ部115と、キャッシュメモリ部115及びディスクアレイ制御装置5に関する制御情報を格納する共有メモリ部114に物理的に分割し、キャッシュメモリ部115に繋がるセレクタ部(CMセレクタ部)123と、共有メモリ部に繋がるセレクタ部(SMセレクタ部)113を物理的に独立させた構成にする。
そして、チャネルI/F部111、及びディスクI/F部112から、キャッシュメモリ部115、または共有メモリ部114へのアクセスパス0 135、アクセスパス1 136を物理的に独立させ、少なくともキャッシュメモリ部115に繋がるセレクタ部(CMセレクタ部)123において、実施例1で述べた調停を行う。これは、共有メモリ部に格納されるのは、キャッシュメモリ部115及びディスクアレイ制御装置5に関する制御情報であり、制御情報のデータ量は少ないので、ポートが使用中となる時間は小さく、すぐにポートは使用可能となるため、調停をしなくても格別の差し障りはないからである。
【0029】
また、図11に示すように、共有メモリ部114、及びキャッシュメモリ部115を各々物理的に独立した共有メモリ部114、及びキャッシュメモリ部115間でそれぞれ二重化して二重化領域(160)を形成し、少なくともキャッシュメモリに繋がるセレクタ部(CMセレクタ部)123から二重化されたキャッシュメモリ部115両方への同時アクセス(2重アクセス)が発生するディスクアレイ制御装置6では、図6のステップ402、403においてキュー先頭の要求が2重アクセスかどうかを調べ、2重アクセスの場合、要求される2つのポートが空いていればポートを割り当て、そうでなければステップ406へ進むという処理を、キャッシュメモリ部に繋がるセレクタ部(CMセレクタ部)123で行う。
これによって、共有メモリ部114に格納したデータの信頼性を向上させることが可能となる。
また、磁気ディスク装置120に記録するデータの転送時、キャッシュメモリ部115とのI/Fポート211を効率よく割り当てることが可能となり、高いスループットのデータ転送を実現できる。
【0030】
《実施例3》
図7は、チャネルI/F部111またはディスクI/F部112内の共有メモリ(SM)アクセス回路から共有メモリ部114へ、またはチャネルI/F部111またはディスクI/F部112内のキャッシュメモリ(CM)アクセス回路からキャッシュメモリ部115へデータの書き込みを行うときの処理の流れを示している。
データの書き込み時は、ステップ501でSMまたはCMアクセス回路からセレクタ部113または123へアクセス要求(REQ)を出し、続けてステップ502、503でアドレス(ADR)、コマンド(CMD)を送出する。
ステップ504、505でセレクタ部113または123において、アービトレーションを行い、セレクタを切り替えて共有メモリ部114またはキャッシュメモリ部115へのポートを割り当てる。
ステップ506で、セレクタ部113または123から共有メモリ部またはキャッシュメモリ部へアクセス要求(REQ)を出し、続けてステップ507、508でアドレス(ADR)、コマンド(CMD)を送出する。
【0031】
ステップ509で、共有メモリ部114またはキャッシュメモリ部115において、アクセスするメモリモジュールの選択を行い、選択後、ステップ510でセレクタ部113または123を経由してSMまたはCMアクセス回路へアクセス承認(ACK ON)を返す。
SMまたはCMアクセス回路はACK ONを受けたら、ステップ511でデータを送出する。
共有メモリ部114またはキャッシュメモリ部115はデータを全て受け取ったら、ステップ512で後処理を行い、ステップ513でセレクタ部113または123を経由してSMまたはCMアクセス回路へステータス(STATUS)を返す。
セレクタ部113または123はSTATUSを受けたら、ステップ514で共有メモリ部114またはキャッシュメモリ部115へ、アクセス承認を取り下げるように指示を出す(ACK OFF)。
SMまたはCMアクセス回路はSTATUSを受けたら、ステップ515でセレクタ部113または123に、アクセス承認を取り下げるように指示を出す(ACK OFF)。
【0032】
図8は、チャネルI/F部111またはディスクI/F部112内の共有メモリアクセス回路へ共有メモリ部114から、またはチャネルI/F部111またはディスクI/F部112内のキャッシュメモリアクセス回路へキャッシュメモリ部115からデータの読み出しを行うときの処理の流れを示している。
データの読み出し時の処理ステップ601〜610までは、データの書き込み時の処理ステップ501〜510までと同じである。
【0033】
その後、共有メモリ部114またはキャッシュメモリ部115において、ステップ611で読み出しの前処理を行う。
ステップ612で、セレクタ部113または123を経由してSMまたはCMアクセス回路へデータを送出する。
データの送出が終了したら、共有メモリ部114またはキャッシュメモリ部115において、ステップ613で後処理を行い、ステップ614でセレクタ部113または123を経由してSMまたはCMアクセス回路へSTATUSを返す。
セレクタ部113または123はSTATUSを受けたら、ステップ615で共有メモリ部114またはキャッシュメモリ部115へ、アクセス承認を取り下げるように指示を出す(ACK OFF)。
SMまたはCMアクセス回路はSTATUSを受けたら、ステップ616でセレクタ部113または123へ、アクセス承認を取り下げるように指示を出す(ACK OFF)。
【0034】
上記のように、チャネルI/F部111、またはディスクI/F部112から、共有メモリ部114またはキャッシュメモリ部115へのアクセスの際に、最初にアドレスとコマンドを連続して送出し、共有メモリ部114、またはキャッシュメモリ部115までのアクセスパスが確立した(ステップ510または610)後データを送出することによって、セレクタ部113または123において、転送データをバッファリングする必要がなくなり、セレクタ部113または123での制御が簡単化され、メモリへのアクセススループットの向上が可能となる。
【図面の簡単な説明】
【0035】
【図1】本発明によるディスクアレイ制御装置の構成を示す図である。
【図2】従来のディスクアレイ制御装置の構成を示す図である。
【図3】従来のディスクアレイ制御装置の構成を示す図である。
【図4】本発明によるディスクアレイ制御装置内のセレクタ部の構成を示す図である。
【図5】セレクタ部での動作フローを示す図である。
【図6】セレクタ部内のアービトレーション部での動作フローを示す図である。
【図7】共有メモリ部またはキャッシュメモリ部へデータの書き込みを行うときのシーケンスを示す図である。
【図8】共有メモリ部またはキャッシュメモリ部からデータの読み出しを行うときのシーケンスを示す図である。
【図9】本発明によるディスクアレイ制御装置の他の構成を示す図である。
【図10】本発明によるディスクアレイ制御装置の他の構成を示す図である。
【図11】本発明によるディスクアレイ制御装置の他の構成を示す図である。
【図12】本発明によるディスクアレイ制御装置内のセレクタ部の部分の詳細構成を示す図である。
【図13】チャネルI/F部の構成を示す図である。
【符号の説明】
【0036】
1、4、5、6 ディスクアレイ制御装置
50 マイクロプロセッサ
51 ホストI/F
52 共有メモリアクセス回路
101 ホストコンピュータ
111 チャネルI/F部
112 ディスクI/F部
113 セレクタ部(SMセレクタ部)
114 共有メモリ部
115 キャッシュメモリ部
120 磁気ディスク装置
123 CMセレクタ部
135 アクセスパス0
136 アクセスパス1
150 セレクタグループ
【特許請求の範囲】
【請求項1】
信号入力ポートと信号出力ポートを備えたセレクタを有し、上記信号入力ポートには接続要求先のアドレスを含む信号が入力されるディスクアレイの制御方法であって、
上記信号入力ポートに入力された上記信号が接続を要求しているポート番号を調べるステップと、
上記接続を要求されているポート番号を格納し、該ポート番号を接続要求のキューとして管理するステップと、
上記接続を要求されているポートが、空いているか、占有されているかを調べるステップと、
上記接続を要求されているポートが占有されている場合には、該接続要求に対してポートの割り当ては行わずに、上記キューの1番目にある該接続要求を(空いているポートの数+1)番目にずらすステップとを有することを特徴とするディスクアレイ制御方法。
【請求項2】
上記ステップに加えてさらに、
上記接続を要求されているポートが空いている場合には、該ポートを該接続要求に割り当てるステップを有することを特徴とする請求項1記載のディスクアレイ制御方法。
【請求項3】
上記ステップに加えてさらに、
上記接続を要求されているポート番号と、該要求をした入力信号の到着順序をキュー管理テーブルに登録するステップを有することを特徴とする請求項1または2に記載のディスクアレイ制御方法。
【請求項4】
上記ステップに加えてさらに、
上記入力信号が2重化されているかどうかを調べるステップを有することを特徴とする請求項1乃至3のいずれかに記載のディスクアレイ制御方法。
【請求項5】
上記接続を要求されているポートが、空いているか、占有されているかを調べるステップにかえて、
上記接続を要求されている2つのポートが空いているか、占有されているかを調べるステップを有することを特徴とする請求項4記載のディスクアレイ制御方法。
【請求項6】
ホストコンピュータに接続された複数のチャネルインターフェース部と、
ディスク装置に接続された複数のディスクインターフェース部と、
上記複数のチャネルインターフェース部及び上記複数のディスクインターフェース部からアクセス可能であり、上記ディスク装置のデータの少なくとも一部を格納するメモリ部と、
上記複数のチャネルインターフェース部、上記複数のディスクインターフェース部及び上記メモリ部と接続されたセレクタ部を有し、
上記セレクタ部は内部メモリを備え、
さらに上記セレクタ部は、
上記複数のチャネルインターフェース部又は上記複数のディスクインターフェース部のいずれか一方から送信された情報から一の情報を選択し、
上記選択した情報を上記内部メモリに格納し、
上記内部メモリに格納された情報を、上記複数のチャネルインターフェース部及び上記複数のディスクインターフェース部のうち任意のインターフェース部に送信することを特徴とするディスクアレイ制御装置。
【請求項7】
上記メモリ部は、物理的に独立した2つのメモリを有し、
上記セレクタ部からは、上記2つのメモリに同時にアクセスが発生することを特徴とする請求項6記載のディスクアレイ制御装置。
【請求項8】
上記メモリ部に対して、上記チャネルインターフェース部、又は上記ディスクインターフェース部からアクセスがあった場合には、
初めに、アドレスとコマンドが連続して送信され、
上記メモリ部へのアクセスパスが確立したのちに、データが送信されることを特徴とする請求項6記載のディスクアレイ制御装置。
【請求項9】
上記複数のチャネルインターフェース部又は上記複数のディスクインターフェース部のいずれか一方から送信された情報から選択された一の情報は、上記メモリ部に関する制御情報であることを特徴とする請求項6記載のディスクアレイ制御装置。
【請求項10】
ホストコンピュータに接続された複数のチャネルインターフェース部と、
ディスク装置に接続された複数のディスクインターフェース部と、
上記複数のチャネルインターフェース部及び上記複数のディスクインターフェース部からアクセス可能であり、上記ディスク装置のデータの少なくとも一部を格納するメモリ部と、
上記複数のチャネルインターフェース部、上記複数のディスクインターフェース部及び上記メモリ部と接続されたセレクタ部を有し、
上記セレクタ部はバッファを有し、
さらに上記セレクタ部は、
上記複数のチャネルインターフェース部又は上記複数のディスクインターフェース部のいずれか一方から送信された情報から一の情報を選択し、
上記選択した情報を上記バッファに格納し、
上記バッファに格納された情報を、上記複数のチャネルインターフェース部及び上記複数のディスクインターフェース部のうち任意のインターフェース部に送信することを特徴とするディスクアレイ制御装置。
【請求項11】
上記メモリ部に対して、上記チャネルインターフェース部、又は上記ディスクインターフェース部からアクセスがあった場合には、
初めに、アドレスとコマンドが連続して送信され、
その後上記メモリ部へのアクセスパスが確立し、さらに上記メモリ部へのアクセスが終了したことを示す情報が上記メモリ部から返ってきたのちに、上記チャネルインターフェース部、又は上記ディスクインターフェース部から上記メモリ部まで確立された上記アクセスパスを開放することを特徴とする請求項10記載のディスクアレイ制御装置。
【請求項12】
ホストコンピュータに接続された複数のチャネルインターフェース部と、
ディスク装置に接続された複数のディスクインターフェース部と、
上記複数のチャネルインターフェース部及び上記複数のディスクインターフェース部に接続されたセレクタ部を有し、
上記セレクタ部は内部メモリを備え、
さらに上記セレクタ部は、
上記複数のチャネルインターフェース部又は上記複数のディスクインターフェース部のいずれか一方から送信された情報から一の情報を選択し、
上記選択した情報を上記内部メモリに格納し、
上記内部メモリに格納された情報を、上記複数のチャネルインターフェース部及び上記複数のディスクインターフェース部のうち任意のインターフェース部に送信することを特徴とするディスクアレイ制御装置。
【請求項13】
ホストコンピュータに接続された複数のチャネルインターフェース部と、
ディスク装置に接続された複数のディスクインターフェース部と、
上記複数のチャネルインターフェース部及び上記複数のディスクインターフェース部からアクセス可能であり、上記ディスク装置のデータの少なくとも一部を格納するメモリ部と、
上記複数のチャネルインターフェース部、上記複数のディスクインターフェース部及び上記メモリ部と接続されたセレクタ部を備えることを特徴とするディスクアレイ制御装置。
【請求項1】
信号入力ポートと信号出力ポートを備えたセレクタを有し、上記信号入力ポートには接続要求先のアドレスを含む信号が入力されるディスクアレイの制御方法であって、
上記信号入力ポートに入力された上記信号が接続を要求しているポート番号を調べるステップと、
上記接続を要求されているポート番号を格納し、該ポート番号を接続要求のキューとして管理するステップと、
上記接続を要求されているポートが、空いているか、占有されているかを調べるステップと、
上記接続を要求されているポートが占有されている場合には、該接続要求に対してポートの割り当ては行わずに、上記キューの1番目にある該接続要求を(空いているポートの数+1)番目にずらすステップとを有することを特徴とするディスクアレイ制御方法。
【請求項2】
上記ステップに加えてさらに、
上記接続を要求されているポートが空いている場合には、該ポートを該接続要求に割り当てるステップを有することを特徴とする請求項1記載のディスクアレイ制御方法。
【請求項3】
上記ステップに加えてさらに、
上記接続を要求されているポート番号と、該要求をした入力信号の到着順序をキュー管理テーブルに登録するステップを有することを特徴とする請求項1または2に記載のディスクアレイ制御方法。
【請求項4】
上記ステップに加えてさらに、
上記入力信号が2重化されているかどうかを調べるステップを有することを特徴とする請求項1乃至3のいずれかに記載のディスクアレイ制御方法。
【請求項5】
上記接続を要求されているポートが、空いているか、占有されているかを調べるステップにかえて、
上記接続を要求されている2つのポートが空いているか、占有されているかを調べるステップを有することを特徴とする請求項4記載のディスクアレイ制御方法。
【請求項6】
ホストコンピュータに接続された複数のチャネルインターフェース部と、
ディスク装置に接続された複数のディスクインターフェース部と、
上記複数のチャネルインターフェース部及び上記複数のディスクインターフェース部からアクセス可能であり、上記ディスク装置のデータの少なくとも一部を格納するメモリ部と、
上記複数のチャネルインターフェース部、上記複数のディスクインターフェース部及び上記メモリ部と接続されたセレクタ部を有し、
上記セレクタ部は内部メモリを備え、
さらに上記セレクタ部は、
上記複数のチャネルインターフェース部又は上記複数のディスクインターフェース部のいずれか一方から送信された情報から一の情報を選択し、
上記選択した情報を上記内部メモリに格納し、
上記内部メモリに格納された情報を、上記複数のチャネルインターフェース部及び上記複数のディスクインターフェース部のうち任意のインターフェース部に送信することを特徴とするディスクアレイ制御装置。
【請求項7】
上記メモリ部は、物理的に独立した2つのメモリを有し、
上記セレクタ部からは、上記2つのメモリに同時にアクセスが発生することを特徴とする請求項6記載のディスクアレイ制御装置。
【請求項8】
上記メモリ部に対して、上記チャネルインターフェース部、又は上記ディスクインターフェース部からアクセスがあった場合には、
初めに、アドレスとコマンドが連続して送信され、
上記メモリ部へのアクセスパスが確立したのちに、データが送信されることを特徴とする請求項6記載のディスクアレイ制御装置。
【請求項9】
上記複数のチャネルインターフェース部又は上記複数のディスクインターフェース部のいずれか一方から送信された情報から選択された一の情報は、上記メモリ部に関する制御情報であることを特徴とする請求項6記載のディスクアレイ制御装置。
【請求項10】
ホストコンピュータに接続された複数のチャネルインターフェース部と、
ディスク装置に接続された複数のディスクインターフェース部と、
上記複数のチャネルインターフェース部及び上記複数のディスクインターフェース部からアクセス可能であり、上記ディスク装置のデータの少なくとも一部を格納するメモリ部と、
上記複数のチャネルインターフェース部、上記複数のディスクインターフェース部及び上記メモリ部と接続されたセレクタ部を有し、
上記セレクタ部はバッファを有し、
さらに上記セレクタ部は、
上記複数のチャネルインターフェース部又は上記複数のディスクインターフェース部のいずれか一方から送信された情報から一の情報を選択し、
上記選択した情報を上記バッファに格納し、
上記バッファに格納された情報を、上記複数のチャネルインターフェース部及び上記複数のディスクインターフェース部のうち任意のインターフェース部に送信することを特徴とするディスクアレイ制御装置。
【請求項11】
上記メモリ部に対して、上記チャネルインターフェース部、又は上記ディスクインターフェース部からアクセスがあった場合には、
初めに、アドレスとコマンドが連続して送信され、
その後上記メモリ部へのアクセスパスが確立し、さらに上記メモリ部へのアクセスが終了したことを示す情報が上記メモリ部から返ってきたのちに、上記チャネルインターフェース部、又は上記ディスクインターフェース部から上記メモリ部まで確立された上記アクセスパスを開放することを特徴とする請求項10記載のディスクアレイ制御装置。
【請求項12】
ホストコンピュータに接続された複数のチャネルインターフェース部と、
ディスク装置に接続された複数のディスクインターフェース部と、
上記複数のチャネルインターフェース部及び上記複数のディスクインターフェース部に接続されたセレクタ部を有し、
上記セレクタ部は内部メモリを備え、
さらに上記セレクタ部は、
上記複数のチャネルインターフェース部又は上記複数のディスクインターフェース部のいずれか一方から送信された情報から一の情報を選択し、
上記選択した情報を上記内部メモリに格納し、
上記内部メモリに格納された情報を、上記複数のチャネルインターフェース部及び上記複数のディスクインターフェース部のうち任意のインターフェース部に送信することを特徴とするディスクアレイ制御装置。
【請求項13】
ホストコンピュータに接続された複数のチャネルインターフェース部と、
ディスク装置に接続された複数のディスクインターフェース部と、
上記複数のチャネルインターフェース部及び上記複数のディスクインターフェース部からアクセス可能であり、上記ディスク装置のデータの少なくとも一部を格納するメモリ部と、
上記複数のチャネルインターフェース部、上記複数のディスクインターフェース部及び上記メモリ部と接続されたセレクタ部を備えることを特徴とするディスクアレイ制御装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2007−35060(P2007−35060A)
【公開日】平成19年2月8日(2007.2.8)
【国際特許分類】
【出願番号】特願2006−249394(P2006−249394)
【出願日】平成18年9月14日(2006.9.14)
【分割の表示】特願平10−189957の分割
【原出願日】平成10年6月19日(1998.6.19)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
【公開日】平成19年2月8日(2007.2.8)
【国際特許分類】
【出願日】平成18年9月14日(2006.9.14)
【分割の表示】特願平10−189957の分割
【原出願日】平成10年6月19日(1998.6.19)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
[ Back to top ]