(57)【特許請求の範囲】
【請求項１】
ホスト装置から送信されるデータを格納するストレージ装置であって、
前記ホスト装置から送信される前記データの送受信に関するアクセス要求に基づいて、キャッシュメモリ制御部に対して前記データの送受信に関するアクセス命令を送信する複数のプロセッサと、
前記複数のプロセッサにより送信される前記アクセス命令を排他的に前記キャッシュメモリ制御部に送信するアクセス命令送信部と
を備え、
前記アクセス命令送信部は、
応答が必要なアクセス命令を格納する複数の格納部
を備え、
すべての前記格納部に前記応答が必要なアクセス命令が格納されたときに、応答の必要がないアクセス命令のみを前記キャッシュメモリ制御部に送信する
ことを特徴とするストレージ装置。
【請求項２】
前記アクセス命令送信部は、
すべての前記格納部に前記応答が必要なアクセス命令が格納されたときに、ラウンドロビンによって優先順位順に、かつ排他的に、前記応答の必要がないアクセス命令をキャッシュメモリ制御部に送信する
ことを特徴とする請求項１に記載のストレージ装置。
【請求項３】
前記アクセス命令送信部は、
すべての前記格納部に前記応答が必要なアクセス命令が格納されていないときに、ラウンドロビンによって優先順位順に、かつ排他的に、前記応答が必要なアクセス命令及び前記応答の必要がないアクセス命令をキャッシュメモリ制御部に送信する
ことを特徴とする請求項２に記載のストレージ装置。
【請求項４】
前記アクセス命令送信部は、
前記キャッシュメモリ制御部から前記応答が必要なアクセス命令に対応するアクセス完了応答を受信すると、当該応答が必要なアクセス命令を前記格納部から削除する
ことを特徴とする請求項３に記載のストレージ装置。
【請求項５】
前記アクセス命令送信部は、
すべての前記格納部に前記応答が必要なアクセス命令が格納されていたときには、前記格納部からの前記アクセス命令の削除により、前記応答が必要なアクセス命令及び前記応答の必要がないアクセス命令のキャッシュメモリ制御部への送信を再開する
ことを特徴とする請求項４に記載のストレージ装置。
【請求項６】
ホスト装置から送信されるデータを格納するストレージ装置のアクセス命令送信方法であって、
複数のプロセッサが、前記ホスト装置から送信される前記データの送受信に関するアクセス要求に基づいて、キャッシュメモリ制御部に対して前記データの送受信に関するアクセス命令を送信する第１のステップと、
アクセス命令送信部が、前記複数のプロセッサにより送信される前記アクセス命令を排他的に前記キャッシュメモリ制御部に送信する第２のステップと
を備え、
前記第２のステップでは、
応答が必要なアクセス命令を格納する複数の格納部のすべての前記格納部に前記応答が必要なアクセス命令が格納されたときに、応答の必要がないアクセス命令のみを前記キャッシュメモリ制御部に送信する
ことを特徴とするアクセス命令送信方法。
【請求項７】
前記第２のステップでは、
すべての前記格納部に前記応答が必要なアクセス命令が格納されたときに、ラウンドロビンによって優先順位順に、かつ排他的に、前記応答の必要がないアクセス命令をキャッシュメモリ制御部に送信する
ことを特徴とする請求項６に記載のアクセス命令送信方法。
【請求項８】
前記第２のステップでは、
すべての前記格納部に前記応答が必要なアクセス命令が格納されていないときに、ラウンドロビンによって優先順位順に、かつ排他的に、前記応答が必要なアクセス命令及び前記応答の必要がないアクセス命令をキャッシュメモリ制御部に送信する
ことを特徴とする請求項７に記載のアクセス命令送信方法。
【請求項９】
前記第２のステップでは、
前記キャッシュメモリ制御部から前記応答が必要なアクセス命令に対応するアクセス完了応答を受信すると、当該応答が必要なアクセス命令を前記格納部から削除する
ことを特徴とする請求項８に記載のアクセス命令送信方法。
【請求項１０】
前記第２のステップでは、
すべての前記格納部に前記応答が必要なアクセス命令が格納されていたときには、前記格納部からの前記アクセス命令の削除により、前記応答が必要なアクセス命令及び前記応答の必要がないアクセス命令のキャッシュメモリ制御部への送信を再開する
ことを特徴とする請求項９に記載のアクセス命令送信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置及びアクセス命令送信方法に関し、例えば、複数のプロセッサからのアクセスを調停して排他的にアクセスさせるアービタを有するストレージ装置に適用して好適なものである。
【背景技術】
【０００２】
従来、バスに接続された複数のバスマスタ（プロセッサ）がバスを共有して動作する場合、バスマスタは、まずバスの使用権を要求し、バス権を獲得した後、バスを使用していた。バスの使用権は、バスアービタ（アービタ）が管理し、バスアービタは、バスマスタからのバス使用権要求に対し、適切な優先順位でバス使用権を与えるよう構成されている。
【０００３】
このような技術として、バスの使用効率を高めるために、スプリットトランザクションをサポートするバスを持つシステムにおいてバススレーブ側の受信バッファの段数に応じてバスマスタ内のＤＭＡコマンドバッファの段数を最適化することでバスの有効利用を図るようにした例がある（例えば、特許文献１参照）。
【特許文献１】特開平１０−０１１３８７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、複数のプロセッサが共通バスを通じて共通資源メモリにライトアクセスしようとした場合、アービタは、ライトアクセスを調停して排他し、排他処理を実施した後に、共通資源メモリのメモリ制御回路にライトアクセス命令を転送する。
【０００５】
このとき、ライトアクセスが応答を待つライトアクセス（応答待ちライトアクセス）の仕様である場合、アービタは、応答を待つライト命令（応答待ちライト命令）の転送した分を、メモリ制御回路からの応答があるまで、バッファに記憶しておかなければならない。
【０００６】
この結果、アービタは、ある一定以上の応答待ちライト命令を受け付けることができず、この間に応答を待つ必要がないライト命令(応答不要ライトアクセス命令)が受け付けることができるとしても、ライトアクセス命令を調停して排他しているため、当該応答不要ライトアクセス命令を転送することができず、効率的にデータ転送することができないという問題がある。
【０００７】
本発明は以上の点を考慮してなされたもので、効率的にデータ転送を実施してスループットを向上させ得るストレージ装置及びアクセス命令送信方法を提案するものである。
【課題を解決するための手段】
【０００８】
かかる課題を解決するために本発明においては、ホスト装置から送信されるデータを格納するストレージ装置であって、前記ホスト装置から送信される前記データの送受信に関するアクセス要求に基づいて、キャッシュメモリ制御部に対して前記データの送受信に関するアクセス命令を送信する複数のプロセッサと、前記複数のプロセッサにより送信される前記アクセス命令を排他的に前記キャッシュメモリ制御部に送信するアクセス命令送信部とを備え、前記アクセス命令送信部は、応答が必要なアクセス命令を格納する複数の格納部を備え、すべての前記格納部に前記応答が必要なアクセス命令が格納されたときに、応答の必要がないアクセス命令のみを前記キャッシュメモリ制御部に送信する。
【０００９】
また、本発明においては、ホスト装置から送信されるデータを格納するストレージ装置のアクセス命令送信方法であって、複数のプロセッサが、前記ホスト装置から送信される前記データの送受信に関するアクセス要求に基づいて、キャッシュメモリ制御部に対して前記データの送受信に関するアクセス命令を送信する第１のステップと、アクセス命令送信部が、前記複数のプロセッサにより送信される前記アクセス命令を排他的に前記キャッシュメモリ制御部に送信する第２のステップとを備え、前記第２のステップでは、応答が必要なアクセス命令を格納する複数の格納部のすべての前記格納部に前記応答が必要なアクセス命令が格納されたときに、応答の必要がないアクセス命令のみを前記キャッシュメモリ制御部に送信する。
【００１０】
従って、すべての格納部に応答が必要なアクセス命令が格納された場合に、応答の必要がないアクセス命令の転送が停止するのを未然かつ有効に防止し、当該応答の必要がないアクセス命令に対応するデータのみを転送することができる。
【発明の効果】
【００１１】
本発明によれば、効率的にデータ転送を実施してスループットを向上させ得るストレージ装置及びアクセス命令送信方法を実現できる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の一実施の形態を、図面を参照して詳細に説明する。なお、これにより本発明が限定されるものではない。
【００１３】
図１は、本実施の形態によるストレージシステム１の構成を示している。ストレージシステム１は、ホスト装置２及びストレージ装置３がＳＡＮ（Storage Area Network）４を介して接続されることにより構成されている。
【００１４】
ホスト装置２は、ＣＰＵ（Central Processing Unit）、メモリ等の情報処理資源（図示せず）を備えたコンピュータ装置であり、例えば、パーソナルコンピュータや、ワークステーション、メインフレーム等から構成される。また、ホスト装置２は、ＳＡＮ４と接続するためのホストバスアダプタ（FC HBA）（図示せず）を備えて構成される。さらに、ホスト装置２は、キーボード、スイッチやポインティングデバイス、マイクロフォン等の情報入力装置（図示せず）と、モニタディスプレイやスピーカ等の情報出力装置（図示せず）とを備えて構成される。
【００１５】
ＳＡＮ４は、ホスト装置２が提供する記憶資源におけるデータの管理単位であるブロックを単位として、ホスト装置２とストレージ装置３との間で、コマンドやデータ等の授受を行う。この場合、ホスト装置２とストレージ装置３との間で行われる通信プロトコルは、ファイバチャネルプロトコルである。
【００１６】
なお、ホスト装置２とストレージ装置３との間は、必ずしもＳＡＮ４を介して接続する必要はなく、ＬＡＮ等を介して接続するようにしてもよい。例えば、ＬＡＮを介して接続する場合には、例えばＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）に従ってコマンドやデータ等の授受を行う。また、ＬＡＮを介して接続する場合には、ホストバスアダプタに代えて、例えば、ＬＡＮ対応のネットワークカード等を適用することができる。
【００１７】
ストレージ装置３は、データを記憶するための複数のハードディスクドライブ（HDD :Hard Disk Drive）５及び当該ハードディスクドライブ５に対するデータの入出力を制御するストレージコントローラ６を備えて構成される。
【００１８】
ストレージコントローラ６は、複数のチャネル制御部１１、複数のプロセッサ１２が各々接続された複数のＭＰＡ（Microprocessor Adapter）１３、キャッシュメモリ１４が各々接続された複数のキャッシュメモリ制御部１５、エクスパンダ（Expander）１６が各々接続された複数のＨＤＤ制御部１７及び管理装置１８が相互結合部１９を介して接続されることにより構成されている。また、ストレージコントローラ６は、ハードディスクドライブ５とエクスパンダ１６を介して接続されている。
【００１９】
チャネル制御部１１は、例えば、ホスト装置２から受信した要求（例えば、リードアクセス要求やライトアクセス要求）をプロセッサ１３に通知して、プロセッサ１２からの命令（例えば、リードアクセス（読み出し）命令やライトアクセス（書き込み）命令）により、キャッシュメモリ制御部１５及びＨＤＤ制御部１７を介して、ホスト装置２とキャッシュメモリ１４との間のデータの転送を行う。
【００２０】
プロセッサ１２は、ストレージコントローラ６全体を制御し、例えば、チャネル制御から通知された要求を解釈して、チャネル制御部１１、キャッシュメモリ制御部１５及びＨＤＤ制御部１７に命令を通知する。また、プロセッサ１２は、ハードディスクドライブ５に対して、ＲＡＩＤ（Redundant Arrays of Independent Disks）制御を行うことにより、ストレージ装置３の信頼性、可用性及び性能を向上させることができる。
【００２１】
この場合、プロセッサ１２は、ハードディスクドライブ５をＲＡＩＤ方式で運用する。プロセッサ１２は、１又は複数のハードディスクドライブ５により提供される物理的な記憶領域（ＲＡＩＤグループ）上に、１又は複数の論理的なボリューム（以下、これを論理ボリュームと呼ぶ）を設定する。そして、データは、この論理ボリューム内に所定の大きさのブロック（以下、これを論理ブロックと呼ぶ）単位で記憶される。
【００２２】
各論理ボリュームには、それぞれ固有の識別子（以下、これをＬＵ（Logical Unit number）と呼ぶ）が付与される。本実施の形態の場合、データの入出力は、このＬＵと、各論理ブロックにそれぞれ付与されるその論理ブロックに固有の番号（LBA :Logical Block Address）とを組み合わせたものをアドレスとして、当該アドレスを指定して行われる。
【００２３】
また、プロセッサ１２には、例えば、キャッシュメモリ１４の管理情報やストレージ装置３の構成情報等の情報を格納するためのメモリが内蔵されている。また、プロセッサ１２のメモリには、種々の制御プログラムや管理テーブルが格納されている。
【００２４】
ＭＰＡ１３は、複数のプロセッサ１２から転送されるリードアクセス命令又はライトアクセス命令を排他的にキャッシュメモリ１４のキャッシュメモリ制御部１５に転送する。
【００２５】
キャッシュメモリ制御部１５は、キャッシュメモリ１４を制御し、チャネル制御部１１又はＨＤＤ制御部１７から転送されたデータをキャッシュメモリ１４に格納する。キャッシュメモリ１４は、ハードディスクドライブ５に格納されるべきデータやホスト装置２に転送すべきデータを一時的に格納するためのメモリである。
【００２６】
ＨＤＤ制御部１７は、ハードディスクドライブ５を制御し、プロセッサ１２からの命令により、エクスパンダ１６を介して、ハードディスクドライブ５とキャッシュメモリ１４との間のデータの転送を行う。また、ＨＤＤ制御部１７は、ハードディスクドライブ５に対して、ＲＡＩＤ（Redundant Arrays of Independent Disks）制御を行うことにより、ストレージ装置３の信頼性、可用性及び性能を向上させることができる。
【００２７】
管理装置１８は、ストレージ装置３全体の動作を操作する管理端末であり、例えば、ノート型のパーソナルコンピュータから構成される。管理装置１８は、オペレータの操作に応じて各種処理の指令を行う。オペレータは、例えば、管理装置１８を操作してストレージ装置３の各種状態を管理装置１８の表示部に表示させることにより、ストレージ装置３の状態を確認することができる。
【００２８】
図２は、ＭＰＡ１３の構成を示している。ＭＰＡ１３は、転送要求制御部２１、アービタ２２、セレクタ２３、応答待ち制御部２４及びバッファ格納情報制御部２４を備えて構成される。なお、この場合、ＭＰＡ１３は、プロセッサＡ（１２）〜プロセッサＤ（１２）に接続されている。
【００２９】
転送要求制御部２１は、プロセッサＡ〜プロセッサＤから転送されたリードアクセス命令又はライトアクセス命令を解析して、応答待ちありの命令であるか否かを判断し、応答待ちアクセス要求又は応答待ちなしアクセス要求をアービタ２２に転送する。また、転送要求制御部２１は、バッファ格納情報制御部２４からバッファフル信号（後述）が送信されている場合には、その間、応答待ちアクセス要求の転送を停止し、応答待ちなしアクセス要求のみをアービタ２２に転送する。
【００３０】
アービタ２２は、転送要求制御部２１から転送された応答待ちアクセス要求又は応答待ちなしアクセス要求に基づいて、ラウンドロビンによって優先順位順に、かつ排他的に、キャッシュメモリ制御部１５に転送するリードアクセス命令又はライトアクセス命令を、セレクタ２３に指示する。また、アービタ２２は、バッファ格納情報制御部２４からバッファフル信号（後述）が送信されている場合には、その間、応答待ちなしアクセス要求のみに基づいて、ラウンドロビンによって優先順位順に、かつ排他的に、キャッシュメモリ制御部１５に転送するリードアクセス命令又はライトアクセス命令を、セレクタ２３に指示する。
【００３１】
セレクタ２３は、アービタ２２からの転送指示に基づいて、プロセッサＡ〜プロセッサＤから転送されたリードアクセス命令又はライトアクセス命令をキャッシュメモリ制御部１５に転送する。
【００３２】
応答待ち制御部２４は、キャッシュメモリ制御部１５から転送されたリードアクセス完了応答又はライトアクセス完了応答を解析し、完了応答のあったバッファ格納情報制御部２５内の格納部６２のフラグ６２Ｂ（後述）を「１」から「０」に変更するバッファＢＵＳＹクリア信号をバッファ格納情報制御部２５に送信する。なお、この場合、バッファ格納情報制御部２５内の格納部６２のバッファ６２Ａ（後述）にリードアクセス命令又はライトアクセス命令が格納されている場合には、フラグ６２Ｂが「１」となり、リードアクセス命令又はライトアクセス命令が格納されていない場合には、フラグ６２Ｂが「０」となる。
【００３３】
バッファ格納情報制御部２５は、プロセッサＡ〜プロセッサＤから転送されたリードアクセス命令又はライトアクセス命令を当該バッファ格納情報制御部２５内の格納部６２のバッファ６２Ａに格納してフラグ６２Ｂを「０」から「１」に変更する。そして、バッファ格納情報制御部２５は、すべてのバッファ６２Ａにリードアクセス命令又はライトアクセス命令が格納され、すべてのフラグ６２Ｂが「１」に変更されたときに、変更されている間、バッファ６２Ａにリードアクセス命令又はライトアクセス命令を格納することができない旨を通知するバッファフル信号を転送要求制御部２１及びアービタ２２に送信する。
【００３４】
図３は、転送要求制御部２１の構成を示している。転送要求制御部２１は、転送制御シーケンサ３１Ａ〜３１Ｄ、データ解析シーケンサ３２Ａ〜３２Ｄ、ＡＮＤ回路３３Ａ〜３３Ｄ、ＡＮＤ回路３４Ａ〜３４Ｄ及びインバータ３５Ａ〜３５Ｄを備えて構成される。
【００３５】
転送制御シーケンサ３１Ａは、プロセッサＡからリードアクセス命令又はライトアクセス命令を受信すると、当該リードアクセス命令又はライトアクセス命令の転送を要求する転送要求リクエストをＡＮＤ回路３３Ａ及びＡＮＤ回路３４Ａに送信する。
【００３６】
データ解析シーケンサ３２Ａは、プロセッサＡからリードアクセス命令又はライトアクセス命令を受信すると、当該リードアクセス命令又はライトアクセス命令内のコマンドを解析し、応答ありのリードアクセス命令又はライトアクセス命令であるか、応答なしのリードアクセス命令又はライトアクセス命令であるかをチェックする。
【００３７】
そして、データ解析シーケンサ３２Ａは、応答ありのリードアクセス命令又はライトアクセス命令である場合には、応答待ちありである旨の信号をＡＮＤ回路３４Ａに送信し、応答なしのリードアクセス命令又はライトアクセス命令である場合には、応答待ちなしである旨の信号をＡＮＤ回路３３Ａに送信する。
【００３８】
ＡＮＤ回路３３Ａは、転送制御シーケンサ３１Ａから転送要求リクエストを受信すると共に、データ解析シーケンサ３２Ａから応答待ちなしである旨の信号を受信すると、応答待ちなしアクセス要求を応答あり／応答なしラウンドロビンシーケンサ４１及び応答なしラウンドロビンシーケンサ４２に転送する。
【００３９】
ＡＮＤ回路３４Ａは、転送制御シーケンサ３１Ａから転送要求リクエストを受信し、データ解析シーケンサ３２Ａから応答待ちありである旨の信号を受信すると共に、停止回路３５Ａからバッファレディ信号（後述）を受信すると、応答待ちアクセス要求をアービタ２２の応答あり／応答なしラウンドロビンシーケンサ４１に転送する。
【００４０】
インバータ３５Ａは、リードアクセス命令又はライトアクセス命令をまだバッファ６２Ａに格納することができる旨を通知するバッファレディ信号をＡＮＤ回路３４Ａに送信し、バッファ格納情報制御部２５のＡＮＤ回路６３（後述）からバッファフル信号が受信されている間、バッファレディ信号の送信を停止する。これにより、転送要求制御部２１は、リードアクセス命令又はライトアクセス命令をバッファ６２Ａに格納することができない場合には、応答待ちアクセス要求の転送を停止することができる。
【００４１】
転送制御シーケンサ３１Ｂ〜３１Ｄ、データ解析シーケンサ３２Ｂ〜３２Ｄ、ＡＮＤ回路３３Ｂ〜３３Ｄ、ＡＮＤ回路３４Ｂ〜３４Ｄ及びインバータ３５Ｂ〜３５Ｄは、プロセッサＢ〜Ｄからリードアクセス命令又はライトアクセス命令を受信すると、上述の転送制御シーケンサ３１Ａ、データ解析シーケンサ３２Ａ、ＡＮＤ回路３３Ａ、ＡＮＤ回路３４Ａ及びインバータ３５Ａと同様の処理を行う。
【００４２】
図４は、アービタ２２の構成を示している。アービタ２２は、応答あり／応答なしラウンドロビンシーケンサ４１、応答なしラウンドロビンシーケンサ４２及びセレクタ４３を備えて構成される。
【００４３】
応答あり／応答なしラウンドロビンシーケンサ４１は、転送要求制御部２１のＡＮＤ回路３３Ａ〜３３Ｄから転送される応答待ちなしアクセス要求及びＡＮＤ回路３４Ａ〜３４Ｄから転送される応答待ちアクセス要求により、ラウンドロビンによって優先順位順に、かつ排他的に、キャッシュメモリ制御部１５に転送するリードアクセス命令又はライトアクセス命令を決定し、当該転送指示をセレクタ４３に転送する。
【００４４】
応答なしラウンドロビンシーケンサ４２は、転送要求制御部２１のＡＮＤ回路３３Ａ〜３３Ｄから転送される応答待ちなしアクセス要求により、ラウンドロビンによって優先順位順に、かつ排他的に、キャッシュメモリ制御部１５に転送するリードアクセス命令又はライトアクセス命令を決定し、転送指示をセレクタ４３に転送する。
【００４５】
セレクタ４３は、バッファ格納情報制御部２５のＡＮＤ回路６３（後述）からバッファフル信号を受信している間、応答なしラウンドロビンシーケンサ４２から転送される転送指示をセレクタ２３に転送し、当該ＡＮＤ回路６３からバッファフル信号の受信が停止すると、応答あり／応答なしラウンドロビンシーケンサ４１から転送される転送指示をセレクタ２３に転送する。これにより、アービタ２２は、リードアクセス命令又はライトアクセス命令をバッファ６２Ａに格納することができない場合には、応答待ちアクセス要求の転送を再開することができると共に、応答あり／応答なしラウンドロビンシーケンサ４１からの転送指示の転送を停止することができる。
【００４６】
図５は、応答待ち制御部２４の構成を示している。応答待ち制御部２４は、データ解析シーケンサ５１及び応答制御シーケンサ５２を備えて構成される。
【００４７】
データ解析シーケンサ５１は、キャッシュメモリ制御部１５からリードアクセス完了応答又はライトアクセス完了応答を受信すると、当該リードアクセス完了応答又はライトアクセス完了応答内のコマンドを解析し、応答ありのリードアクセス完了応答又はライトアクセス完了応答であるか、応答なしのリードアクセス完了応答又はライトアクセス完了応答であるかをチェックする。
【００４８】
そして、データ解析シーケンサ５１は、応答ありのリードアクセス完了応答又はライトアクセス完了応答である場合には、応答待ちありである旨の信号を応答制御シーケンサ５２に送信する。
【００４９】
応答制御シーケンサ５２は、データ解析シーケンサ５１から送信される応答待ちありである旨の信号を受信すると、当該応答待ちありである旨の信号のリードアクセス完了応答又はライトアクセス完了応答に対応するリードアクセス命令又はライトアクセス命令が格納されている格納部６２にバッファＢＵＳＹクリア信号を送信する。
【００５０】
図６は、バッファ格納情報制御部２５の構成を示している。バッファ格納情報制御部２５は、転送制御シーケンサ６１、格納部６２並びにＡＮＤ回路６３を備えて構成される。また、バッファ格納情報制御部２５は、「０」〜「ｎ」の「ｎ＋１」個の格納部６２を備えている。
【００５１】
転送制御シーケンサ６１は、プロセッサＡ〜プロセッサＤからセレクタ２３を介して転送されたリードアクセス命令又はライトアクセス命令を受信すると、当該リードアクセス命令又はライトアクセス命令を空いている格納部６２のバッファ６２Ａに転送すると共に、リードアクセス命令又はライトアクセス命令が格納された格納部６２のフラグ６２Ｂを「０」から「１」に変更するバッファＢＵＳＹセット信号をフラグ６２Ｂに送信する。
【００５２】
格納部６２は、リードアクセス命令又はライトアクセス命令を格納するバッファ６２Ａ及びバッファ６２Ａにリードアクセス命令又はライトアクセス命令が格納されているか否かを判断するためのフラグ６２Ｂを備えて構成される。格納部６２は、転送制御シーケンサ６１からリードアクセス命令又はライトアクセス命令を受信すると、当該リードアクセス命令又はライトアクセス命令を指定されたバッファ６２Ａに格納し、転送制御シーケンサ６１からバッファＢＵＳＹセット信号を受信すると、リードアクセス命令又はライトアクセス命令が格納された格納部６２のフラグ６２Ｂを「０」から「１」に変更する。
【００５３】
また、格納部６２は、リードアクセス命令又はライトアクセス命令が格納された格納部６２のフラグ６２Ｂを「０」から「１」に変更すると、「１」に変更されている間、リードアクセス命令又はライトアクセス命令がバッファ６２Ａに格納された旨の信号であるバッファＢＵＳＹ信号をＡＮＤ回路６３に送信する。
【００５４】
一方、格納部６２は、応答待ち制御部２４の応答制御シーケンサ５２からバッファＢＵＳＹクリア信号が送信されると、リードアクセス命令又はライトアクセス命令が格納された格納部６２のフラグ６２Ｂを「１」から「０」に変更し、バッファ６２Ａに格納されているリードアクセス命令又はライトアクセス命令を削除する。
【００５５】
また、格納部６２は、リードアクセス命令又はライトアクセス命令が格納された格納部６２のフラグ６２Ｂを「１」から「０」に変更すると、バッファＢＵＳＹ信号のＡＮＤ回路６３への送信を停止する。
【００５６】
ＡＮＤ回路６３は、「０」〜「ｎ」のすべての格納部６２からバッファＢＵＳＹ信号を受信すると、当該すべてのバッファＢＵＳＹ信号が受信されている間、バッファフル信号を転送要求制御部２１及びアービタ２２に送信する。また、ＡＮＤ回路６３は、すべての格納部６２からバッファＢＵＳＹ信号を受信していないときには、バッファフル信号の送信を停止する。
【００５７】
これにより、バッファ格納情報制御部２５は、リードアクセス命令又はライトアクセス命令をバッファ６２Ａに格納することができるようになった場合には、応答あり／応答なしラウンドロビンシーケンサ４１から転送する転送指示を再開することができる。
【００５８】
次に、本実施の形態におけるストレージシステム１のストレージコントローラ６によるアクセス命令転送処理について説明する。
【００５９】
図７は、このストレージシステム１のストレージコントローラ６のアクセス命令転送処理に関する、ストレージコントローラ６のＭＰＡ１３の具体的な処理手順を示したフローチャートの一例である。
【００６０】
ＭＰＡ１３は、プロセッサＡ〜Ｄ（１２）からリードアクセス命令又はライトアクセス命令を受信すると、図７に示すアクセス命令転送処理手順ＲＴ１に従って、データ解析シーケンサ３２Ａ〜３２Ｄにより当該リードアクセス命令又はライトアクセス命令内のコマンドを解析する（ＳＰ１）。
【００６１】
続いて、ＭＰＡ１３は、データ解析シーケンサ３２Ａ〜３２Ｄにより解析したリードアクセス命令又はライトアクセス命令内のコマンドが応答ありのリードアクセス命令又はライトアクセス命令であるか否かをチェックする（ＳＰ２）。
【００６２】
そして、ＭＰＡ１３は、解析したリードアクセス命令又はライトアクセス命令内のコマンドが応答ありのリードアクセス命令又はライトアクセス命令でない場合（ＳＰ２：ＮＯ）には、ステップＳＰ４に進む。
【００６３】
これに対して、ＭＰＡ１３は、解析したリードアクセス命令又はライトアクセス命令内のコマンドが応答ありのリードアクセス命令又はライトアクセス命令である場合（ＳＰ２：ＹＥＳ）には、インバータ３５Ａ〜３５Ｄにより格納部６２のバッファ６２Ａがフルであるか否か、すなわち、インバータ３５Ａ〜３５Ｄにバッファフル信号が送信されているか否かをチェックする（ＳＰ３）。
【００６４】
そして、ＭＰＡ１３は、格納部６２のバッファ６２Ａがフルである場合（ＳＰ３：ＹＥＳ）には、格納部６２のバッファ６２Ａがフルでなくなるのを待機モードで待ち受ける（ＳＰ３）。
【００６５】
これに対して、ＭＰＡ１３は、格納部６２のバッファ６２Ａがフルである格納部６２のバッファ６２Ａがフルでない場合（ＳＰ３：ＮＯ）には、ＡＮＤ回路３３Ａ〜３３Ｄ又はＡＮＤ回路３４Ａ〜３４Ｄにより応答待ちアクセス要求又は応答なしアクセス要求をアービタ２２の応答あり／応答なしラウンドロビンシーケンサ４１及び又は応答なしラウンドロビンシーケンサ４２に転送する（ＳＰ４）。
【００６６】
続いて、ＭＰＡ１３は、応答あり／応答なしラウンドロビンシーケンサ４１及び又は応答なしラウンドロビンシーケンサ４２によりラウンドロビンによって優先順位順に、かつ排他的に、キャッシュメモリ制御部１５に転送するリードアクセス命令又はライトアクセス命令を決定し、セレクタ４３により転送指示をセレクタ２３に転送する（ＳＰ５）。
【００６７】
続いて、ＭＰＡ１３は、転送指示が応答ありのリードアクセス命令又はライトアクセス命令である場合には、セレクタ２３により転送された応答ありのリードアクセス命令又はライトアクセス命令を、転送制御シーケンサ６１により格納部６２のバッファ６２Ａに格納して、フラグ６２Ｂを「０」から「１」に変更する（ＳＰ６）。
【００６８】
続いて、ＭＰＡ１３は、セレクタ２３により転送指示のリードアクセス命令又はライトアクセス命令をキャッシュメモリ制御部１５に転送する（ＳＰ７）。
【００６９】
やがて、ＭＰＡ１３は、この後、この図７に示すアクセス命令転送処理手順ＲＴ１を終了する（ＳＰ８）。
【００７０】
次に、本実施の形態におけるストレージシステム１のストレージコントローラ６によるアクセス完了応答転送処理について説明する。
【００７１】
図８は、このストレージシステム１のストレージコントローラ６のアクセス完了応答転送処理に関する、ストレージコントローラ６のＭＰＡ１３の具体的な処理手順を示したフローチャートの一例である。
【００７２】
ＭＰＡ１３は、キャッシュメモリ制御部１５からリードアクセス完了応答又はライトアクセス完了応答を受信すると、図８に示すアクセス完了応答転送処理手順ＲＴ２に従って、データ解析シーケンサ５１により当該リードアクセス完了応答又はライトアクセス完了応答内のコマンドを解析する（ＳＰ１１）。
【００７３】
続いて、ＭＰＡ１３は、データ解析シーケンサ５１により解析したリードアクセス完了応答又はライトアクセス完了応答内のコマンドが応答ありのリードアクセス完了応答又はライトアクセス完了応答であるか否かをチェックする（ＳＰ１２）。
【００７４】
そして、ＭＰＡ１３は、解析したリードアクセス完了応答又はライトアクセス完了応答内のコマンドが応答ありのリードアクセス完了応答又はライトアクセス完了応答でない場合（ＳＰ１２：ＮＯ）には、ステップＳＰ１４に進む。
【００７５】
これに対して、ＭＰＡ１３は、解析したリードアクセス完了応答又はライトアクセス完了応答内のコマンドが応答ありのリードアクセス完了応答又はライトアクセス完了応答である場合（ＳＰ１２：ＹＥＳ）には、格納部６２によりフラグ６２Ｂを「１」から「０」に変更して、当該リードアクセス完了応答又はライトアクセス完了応答に対応するリードアクセス命令又はライトアクセス命令を、格納されているバッファ６２Ａから削除する（ＳＰ１３）。
【００７６】
続いて、ＭＰＡ１３は、ＡＮＤ回路６３により格納部６２のバッファ６２Ａがフルであったか否か、すなわち、ＡＮＤ回路６３にすべての格納部６２のバッファＢＵＳＹ信号が送信されていたか否かをチェックする（ＳＰ１４）。
【００７７】
そして、ＭＰＡ１３は、格納部６２のバッファ６２Ａがフルでなかった場合（ＳＰ１４：ＮＯ）には、この後、この図８に示すアクセス完了応答転送処理手順ＲＴ２を終了する（ＳＰ１６）。
【００７８】
これに対して、ＭＰＡ１３は、格納部６２のバッファ６２Ａがフルであった場合（ＳＰ１４：ＹＥＳ）には、ＡＮＤ回路６３により送信されているバッファフル信号の送信を停止し（ＳＰ１５）、この後、この図８に示すアクセス完了応答転送処理手順ＲＴ２を終了する（ＳＰ１６）。
【００７９】
なお、ストレージシステム１では、アクセス命令又はアクセス完了応答に基づいて、チャネル制御部１１及びキャッシュメモリ制御部１５間において、リードアクセス命令又はライトアクセス命令のデータの転送が行われるようになされている。
【００８０】
図９は、他の実施の形態によるストレージシステム１の構成を示している。本実施の形態におけるストレージシステム１は、バッファ格納情報制御部２５がバッファフル信号を転送要求制御部２１に送信し、転送要求制御部２１が応答待ちアクセス要求の転送を停止した場合について述べたが、本発明はこれに限らず、図９のように、バッファ格納情報制御部２５がバッファフル信号をアービタ２２にのみ送信し、アービタにより応答待ちアクセス要求の転送を停止するようにしても良く、この他種々の形態に適用することができる。
【００８１】
図１０は、他の実施の形態によるストレージシステム１における転送要求制御部７１の構成を示している。転送要求制御部７１は、例えば、インバータ３５Ａ〜３５Ｄを備えていないことを除いて、本実施の形態による転送要求制御部２１と同様に構成される。
【００８２】
図１１は、他の実施の形態によるストレージシステム１におけるアービタ７２の構成を示している。アービタ７２は、応答あり／応答なしラウンドロビンシーケンサ７３を備えて構成される。応答あり／応答なしラウンドロビンシーケンサ７３は、バッファフル信号の送信の有無に基づいて、転送要求制御部７１のＡＮＤ回路３３Ａ〜３３Ｄから転送される応答待ちなしアクセス要求及びＡＮＤ回路３４Ａ〜３４Ｄから転送される応答待ちアクセス要求により、ラウンドロビンによって優先順位順に、かつ排他的に、キャッシュメモリ制御部１５に転送するリードアクセス命令又はライトアクセス命令を決定し、当該転送指示をセレクタ２３に転送する。
【００８３】
このようにして、ストレージシステム１では、プロセッサＡ〜プロセッサＤから転送されたリードアクセス命令又はライトアクセス命令を当該バッファ格納情報制御部２５内の格納部６２のバッファ６２Ａに格納し、すべてのバッファ６２Ａにリードアクセス命令又はライトアクセス命令が格納されたときに、応答待ちなしのリードアクセス命令又はライトアクセス命令のみをキャッシュメモリ制御部１５に転送する。
【００８４】
従って、すべてのバッファ６２Ａに応答待ちありのリードアクセス命令又はライトアクセス命令が格納された場合に、応答待ちなしのリードアクセス命令又はライトアクセス命令の転送が停止するのを未然かつ有効に防止し、当該応答待ちなしのリードアクセス命令又はライトアクセス命令に対応するデータのみを転送することができる。
【００８５】
なお、本実施の形態においては、リードアクセス命令又はライトアクセス命令を送信した場合について述べたが、本発明はこれに限らず、例えば、この他種々の他のアクセス命令についても適用することができる。
【００８６】
また、本実施例においては、図２のＭＰＡ１３を機能ブロック図として示した場合について述べたが、本発明はこれに限らず、より具体的には、一連の処理を、それぞれの機能を有するハードウェアによって実行することにより、各処理を実施するようにしても良く、ＭＰＡ１３の制御部等が制御プログラムを実行することにより各処理を実行するようにしても良く、この他種々の形態に適用することができる。
【産業上の利用可能性】
【００８７】
本発明は、複数のプロセッサからのアクセスを調停して排他的にアクセスさせるアービタを有するストレージ装置に広く適用することができる。
【図面の簡単な説明】
【００８８】
【図１】本実施の形態によるストレージシステムの概略的な構成を示すブロック図である。
【図２】ＭＰＡの概略的な構成を示すブロック図である。
【図３】転送要求制御部の概略的な構成を示すブロック図である。
【図４】アービタの概略的な構成を示すブロック図である。
【図５】応答待ち制御部の概略的な構成を示すブロック図である。
【図６】バッファ格納情報制御部の概略的な構成を示すブロック図である。
【図７】アクセス命令転送処理手順を示すフローチャートである。
【図８】アクセス完了応答転送処理手順を示すフローチャートである。
【図９】他の実施の形態によるストレージシステムの概略的な構成を示すブロック図である。
【図１０】他の実施の形態による転送要求制御部の概略的な構成を示すブロック図である。
【図１１】他の実施の形態によるアービタの概略的な構成を示すブロック図である。
【符号の説明】
【００８９】
１……ストレージシステム、２……ホスト装置、３……ストレージ装置、４……ＳＡＮ、５……ハードディスクドライブ、６……ストレージコントローラ、１１……チャネル制御部、１２……プロセッサ、１３……ＭＰＡ、１４……キャッシュメモリ、１５……キャッシュメモリ制御部、１７……ＨＤＤ制御部、１８……管理装置、２１、７１……転送要求制御部、２２、７２……アービタ、２３、４３……セレクタ、２４……応答待ち制御部、２５……バッファ格納情報制御部、３１……転送要求シーケンサ、３２、５１……データ解析シーケンサ、３３、３４、６３……ＡＮＤ回路、４１……応答あり／応答なしラウンドロビンシーケンサ、４２……応答なしラウンドロビンシーケンサ、５２……応答制御シーケンサ、６１……転送制御シーケンサ、６２……格納部、６２Ａ……バッファ、６２Ｂ……フラグ
【図１】
0005102917.tif 000002
【図２】
0005102917.tif 000003
【図３】
0005102917.tif 000004
【図４】
0005102917.tif 000005
【図５】
0005102917.tif 000006
【図６】
0005102917.tif 000007
【図７】
0005102917.tif 000008
【図８】
0005102917.tif 000009
【図９】
0005102917.tif 000010
【図１０】
0005102917.tif 000011
【図１１】
0005102917.tif 000012