(57)【特許請求の範囲】
【請求項１】
ホストコンピュータとのインターフェースを有する複数のチャネルインターフェース部と、
磁気ディスク装置とのインターフェースを有する複数のディスクインターフェース部と、
複数のキャッシュメモリ部と、
複数の共有メモリ部と、
前記複数のチャネルインターフェース部、前記複数のディスクインターフェース部及び前記複数のキャッシュメモリ部に選択的に接続可能な複数のセレクタと、
前記複数のチャネルインターフェース部が実装されるチャネルインターフェースパッケージと、
前記複数のディスクインターフェース部が実装されるディスクインターフェースパッケージと、
前記複数のキャッシュメモリ部及び前記複数の共有メモリ部が実装されるメモリパッケージと、
前記複数のセレクタの１つが実装される複数のセレクタパッケージと、
前記チャネルインターフェースパッケージ、前記ディスクインターフェースパッケージ、前記メモリパッケージ及び前記複数のセレクタパッケージが実装されるプラッタと、
前記プラッタに設けられ、前記チャネルインターフェースパッケージ及び前記セレクタパッケージ間、並びに、前記ディスクインターフェースパッケージ及び前記セレクタパッケージ間をそれぞれ接続するデータ転送用の第１の配線と、
前記プラッタに設けられ、前記セレクタパッケージ及び前記メモリパッケージ内の前記キャッシュメモリ部間を接続するデータ転送用の第２の配線と、
前記プラッタに設けられ、前記チャネルインターフェースパッケージ及び前記メモリパッケージ内の前記共有メモリ部間をそれぞれ接続する制御情報転送用の第３の配線と
を備え、
前記複数のセレクタパッケージは、前記プラッタの両端に実装された
ことを特徴とするディスクアレイ制御装置。
【請求項２】
複数の磁気ディスク装置及びディスクアレイ制御装置を備えるディスクアレイシステムであって、
前記ディスクアレイ制御装置は、
ホストコンピュータに接続可能なインターフェースを有する複数のチャネルインターフェース部と、
前記複数の磁気ディスク装置に接続可能なインターフェースを有する複数のディスクインターフェース部と、
複数のキャッシュメモリ部と、
複数の共有メモリ部と、
前記複数のチャネルインターフェース部、前記複数のディスクインターフェース部及び前記複数のキャッシュメモリ部に選択的に接続可能な複数のセレクタと、
前記複数のチャネルインターフェース部が実装されるチャネルインターフェースパッケージと、
前記複数のディスクインターフェース部が実装されるディスクインターフェースパッケージと、
前記複数のキャッシュメモリ部及び複数の共有メモリ部が実装されるメモリパッケージと、
前記複数のセレクタの１つが実装される複数のセレクタパッケージと、
前記チャネルインターフェースパッケージ、前記ディスクインターフェースパッケージ、前記メモリパッケージ及び前記複数のセレクタパッケージが実装されるプラッタと、
前記プラッタに設けられ、前記チャネルインターフェースパッケージ及び前記セレクタパッケージ間、並びに、前記ディスクインターフェースパッケージ及び前記セレクタパッケージ間をそれぞれ接続するデータ転送用の第１の配線と、
前記プラッタに設けられ、前記セレクタパッケージ及び前記メモリパッケージ間を接続するデータ転送用の第２の配線と、
前記プラッタに設けられ、前記チャネルインターフェースパッケージ及び前記メモリパッケージ内の前記共有メモリ部間をそれぞれ接続する制御情報転送用の第３の配線と
を備え、
前記複数のセレクタパッケージは、前記プラッタの両端に実装された
ことを特徴とするディスクアレイシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを複数の磁気ディスク装置に格納するディスクアレイ装置及びこれを用いたディスクアレイシステムに関する。
【背景技術】
【０００２】
半導体記憶装置を記憶媒体とするコンピュータの主記憶のＩ／Ｏ性能に比べて、磁気ディスクを記憶媒体とするディスクサブシステム（以下「サブシステム」という。）のＩ／Ｏ性能は３〜４桁程度小さく、従来からこの差を縮めること、すなわちサブシステムのＩ／Ｏ性能を向上させる努力がなされている。サブシステムのＩ／Ｏ性能を向上させるための１つの方法として、複数の磁気ディスク装置でサブシステムを構成し、データを複数の磁気ディスク装置に格納する、いわゆるディスクアレイと呼ばれるシステムが知られている。
【０００３】
図２は、従来のディスクアレイの構成を示す。ホストコンピュータ５０とディスクアレイ制御装置２との間のデータ転送を実行する複数のチャネルＩＦ部１１と、磁気ディスク装置２０とディスクアレイ制御装置２間のデータ転送を実行する複数のディスクＩＦ部１２と、磁気ディスク装置２０のデータを一時的に格納するキャッシュメモリ部１４と、ディスクアレイ制御装置２に関する制御情報（例えば、チャネルＩＦ部及びディスクＩＦ部とキャッシュメモリ部１４との間のデータ転送制御に関する情報）を格納する共有メモリ部１５とを備え、キャッシュメモリ部１４および共有メモリ部１５は全てのチャネルＩＦ部１１及びディスクＩＦ部１２からアクセス可能な構成となっている。このディスクアレイでは、チャネルＩＦ部１１及びディスクＩＦ部１２と共有メモリ部１５との間、及び、チャネルＩＦ部１１及びディスクＩＦ部１２とキャッシュメモリ部１４との間は１対１に接続される。以下、このような接続形態をスター接続と呼ぶ。
【０００４】
チャネルＩＦ部１１は、ホストコンピュータ５０と接続するためのインターフェース及びホストコンピュータ５０に対する入出力を制御するマイクロプロセッサ（図示せず）を有している。また、ディスクＩＦ部１２は、磁気ディスク装置２０と接続するためのインターフェース及び磁気ディスク装置２０に対する入出力を制御するマイクロプロセッサ（図示せず）を有している。また、ディスクＩＦ１２部は、RAID機能の実行も行う。
【０００５】
図３は、他の従来のディスクアレイの構成を示す。ホストコンピュータ５０とディスクアレイ制御装置３間のデータ転送を実行する複数のチャネルＩＦ部１１と、磁気ディスク装置２０とディスクアレイ制御装置３間のデータ転送を実行する複数のディスクＩＦ部１２と、磁気ディスク装置２０のデータを一時的に格納するキャッシュメモリ部１４と、ディスクアレイ制御装置３に関する制御情報（例えば、チャネルＩＦ部及びディスクＩＦ部とキャッシュメモリ部１４との間のデータ転送制御に関する情報）を格納する共有メモリ部１５を備え、各チャネルＩＦ部１１及びディスクＩＦ部１２と共有メモリ部１５間は共有バス１３０で接続され、各チャネルＩＦ１１部及びディスクＩＦ部１２とキャッシュメモリ部１４間は共有バス１３１で接続される。以下、このような接続形態を共有バス接続形式と呼ぶ。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ディスクアレイのアーキテクチャーをスケーラブルなものとするには、ディスク制御装置に接続するディスク容量（論理ボリューム数）に応じ、ディスクＩＦ部を増設し、また、必要なホストコンピュータとのチャネル数に応じて、ディスクアレイ制御装置内のチャネルＩＦ部を増設する必要がある。しかし、第３図に示した共有バス接続形式のディスクアレイ制御装置では、一旦実装した共有バスの転送能力をチャネルＩＦ部、ディスクＩＦ部の増設に応じて変更することはできないので、チャネルＩＦ部、ディスクＩＦ部の増設に柔軟に対応することが困難である。
【０００７】
また、第３図に示した共有バス接続形式のディスクアレイ制御装置では、ホストコンピュータとディスクアレイ制御装置との間のデータ転送を実行するチャネルＩＦ部に設けられたホストコンピュータに対する入出力を制御するマイクロプロセッサ、及び磁気ディスク装置とディスクアレイ制御装置との間のデータ転送を実行するディスクＩＦ部に設けられた磁気ディスク装置に対する入出力を制御するマイクロプロセッサに高性能なプロセッサを使用した場合に、これらのプロセッサの性能に比べて、共有バスの転送能力がボトルネックになり、プロセッサの高速化に追従することが困難となる。
【０００８】
さらに、第３図に示した共有バス接続形式では、共有バスに接続された複数のチャネルＩＦ部（または複数のディスクＩＦ部）の何れかのチャネルＩＦ部（またはディスクＩＦ部）に障害が発生した場合に、障害の発生したチャネルＩＦ部（またはディスクＩＦ部）を特定することが困難である。
【０００９】
一方、第２図に示したスター接続形式のディスクアレイ制御装置では、共有メモリ部またはキャッシュメモリ部に接続したアクセスパス数に比例して内部パス性能が増加させることができるので、チャネルＩＦ部、ディスクＩＦ部の増設、または使用するプロセッサの性能に応じて、内部パス性能を増加させることが可能である。また、チャネルＩＦ部及びディスクＩＦ部とキャッシュメモリ部との間、チャネルＩＦ部及びディスクＩＦ部と共有メモリ部との間がスター接続されているため、障害の発生したチャネルＩＦ部（またはディスクＩＦ部）を特定することも容易である。
【００１０】
スター接続形式のディスクアレイ制御装置では、搭載されるチャネルＩＦ部またはディスクＩＦ部の数を増やした場合、チャネルＩＦ部及びディスクＩＦ部とキャッシュメモリ部との間、及びチャネルＩＦ部及びディスクＩＦ部と共有メモリとの間のアクセスパス数も増えることになる。また、ホストコンピュータとディスクアレイ制御装置との間の接続にファイバチャネル等の高速チャネルの採用等により、ディスクアレイ制御装置に要求されるスループットはさらに増大する方向にあり、このスループットの向上の要求を満たすためには、チャネルＩＦ部及びディスクＩＦ部とキャッシュメモリ部との間、及びチャネルＩＦ部及びディスクＩＦ部と共有メモリとの間のアクセスパス数を増やし、内部パス性能を向上させることが必要となる。
【００１１】
しかし、キャッシュメモリに格納される１つのデータのデータ量は、共有メモリに格納される１つの制御情報のデータ量よりもかなり大きい。一例を挙げれば、メインフレームに接続されるディスク制御装置では、キャッシュメモリに格納される１つのデータは数Ｋバイト程度（例えば２Ｋバイト）であるのに対し、共有メモリに格納される１つの制御情報は数バイト程度（例えば４バイト）である。また、オープン系のホストコンピュータに接続されるディスク制御装置では、キャッシュメモリに格納される１つのデータは数十バイト程度（例えば６４バイト）であるのに対し、共有メモリに格納される１つの制御情報は数バイト程度（例えば４バイト）である。したがって、チャネルＩＦ部及びディスクＩＦ部とキャッシュメモリ部との間で転送されるデータ量は、チャネルＩＦ部及びディスクＩＦ部と共有メモリ部との間で転送されるデータ量に比べ、かなり多いので、チャネルＩＦ部及びディスクＩＦ部とキャッシュメモリ部との間のアクセスバスのデータ幅は、チャネルＩＦ部及びディスクＩＦ部と共有メモリ部との間のアクセスパスのデータ幅より広くとる必要がある。例えば、前者のアクセスパスは、１６ビット幅のバスで構成され、後者は、４ビット幅のバスで構成される。そのため、チャネルＩＦ部及びディスクＩＦ部とキャッシュメモリ部との間のアクセスパスの本数を増やすと、それらのアクセスパスを接続するキャッシュメモリ部のＬＳＩのピン数が不足するという問題が生じる。また、ディスクアレイ制御装置のホストコンピュータへの応答時間を短くするためには、共有メモリ部に格納された制御情報へのアクセス時間をできるだけ短くすることも必要である。
【００１２】
そこで、本発明の目的は、キャッシュメモリ及び共有メモリに格納されるデータの特性及びこれらのメモリへのアクセス特性を考慮した、スループットの高く、ディスクアレイ制御装置、及びそれを用いたサブシステムを提供することにある。
【００１３】
より具体的には、本発明の目的は、チャネルＩＦ部及びディスクＩＦ部とキャッシュメモリ部との間のアクセスパスはスループットが高く、チャネルＩＦ部及びディスクＩＦ部と共有メモリとの間のアクセスパスはスループットが高く、かつアクセス時間が短いディスクアレイ制御装置、及びそれを用いたサブシステムを提供することにある。
【課題を解決するための手段】
【００１４】
上記目的は、ホストコンピュータとのインターフェースを有する複数のチャネルインターフェース部と、磁気ディスク装置とのインターフェースを有する複数のディスクインターフェース部と、前記磁気ディスク装置に対しリード／ライトされるデータを一時的に格納するキャッシュメモリ部と、チャネルインターフェース部及びディスクインターフェース部と前記キャッシュメモリ部との間のデータ転送に関する制御情報を格納する共有メモリ部とを有し、各チャネルインターフェース部は、前記ホストコンピュータとのインターフェースと前記キャッシュメモリ部との間のデータ転送を実行し、各ディスクインターフェース部は、前記磁気ディスク装置とのインターフェースと前記キャッシュメモリ部との間のデータ転送を実行するディスクアレイ制御装置において、前記複数のチャネルインターフェース部及び前記複数のディスクインターフェース部と前記キャッシュメモリ部との間の接続形式が、前記複数のチャネルインターフェース部及び前記複数のディスクインターフェース部と前記共有メモリ部との間の接続形式と異なることを特徴とするディスクアレイ制御装置により達成される。
【００１５】
好ましくは、前記複数のチャネルインターフェース部及び前記複数のディスクインターフェース部と前記キャッシュメモリ部との間はセレクタ部を介して接続し、前記複数のチャネルインターフェース部及び前記複数のディスクインターフェース部と前記共有メモリ部との間は、それぞれセレクタ部を介せず直接接続する。
【００１６】
また、好ましくは、前記複数のチャネルインターフェース部及び前記複数のディスクインターフェース部と前記キャッシュメモリ部との間はセレクタ部を介して接続し、前記複数のチャネルインターフェース部、前記複数のディスクインターフェース部、及び前記共有メモリ部は共有バスに接続する。
【００１７】
また、好ましくは、前記複数のチャネルインターフェース部及び前記複数のディスクインターフェース部と前記キャッシュメモリ部との間はスイッチを用いた相互結合網によって接続し、前記複数のチャネルインターフェース部及び前記複数のディスクインターフェース部と前記共有メモリ部との間はそれぞれ直接接続する。
【００１８】
その他、本願が開示する課題、及びその解決方法は、発明の実施形態の欄及び図面により明らかにされる。
【発明の効果】
【００１９】
本発明によれば、チャネルＩＦ部、ディスクＩＦ部−キャッシュメモリ間のアクセスパスについてはスループットを高くできる。また、チャネルＩＦ部、ディスクＩＦ部−共有メモリ間のアクセスパスについてはスループットを高くでき、かつアクセス時間を短くできる。これによって、スループットが高く、かつ応答時間の短いディスクアレイ制御装置を提供することが可能となる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施例を図面を用いて説明する。
【実施例１】
【００２１】
図１に、本発明の一実施例を示す。
【００２２】
ディスクアレイ制御装置１は、ホストコンピュータ５０との２つのインターフェース部（チャネルＩＦ部）１１と、磁気ディスク装置２０との２つのインターフェース部（ディスクＩＦ部）１２と、２つのセレクタ部１３と、２つのキャッシュメモリ部１４と、２つの共有メモリ部１５と、アクセスパス０：１３５と、アクセスパス１：１３６と、アクセスパス２：１３７とを有する。
【００２３】
チャネルＩＦ部１１は、ホストコンピュータ５０との２つのＩＦ（ホストＩＦ）１０２と、ホストコンピュータ５０に対する入出力を制御する２つのマイクロプロセッサ１０１と、キャッシュメモリ部１４へのアクセスを制御するアクセス制御部（ＣＭアクセス制御部）１０４と、共有メモリ部１５へのアクセスを制御するアクセス制御部（ＳＭアクセス制御部）１０５とを有し、ホストコンピュータ５０とキャッシュメモリ部１４間のデータ転送、及びマイクロプロセッサ１０１と共有メモリ部１５間の制御情報の転送を実行する。マイクロプロセッサ１０１及びホストＩＦ１０２は内部バス１０６によって接続され、ＣＭアクセス制御部１０４は２つのホストＩＦ１０２に直接接続されている。また、ＳＭアクセス制御部１０５は２つのマイクロプロセッサ１０１に直接接続されている。
【００２４】
ディスクＩＦ部１２は、磁気ディスク装置２０との２つのＩＦ（ドライブＩＦ）１０３と、磁気ディスク装置２０に対する入出力を制御する２つのマイクロプロセッサ１０１と、キャッシュメモリ部１４への１つのアクセス制御部（ＣＭアクセス制御部）１０４と、共有メモリ部１５への１つのアクセス制御部（ＳＭアクセス制御部）１０５を有し、磁気ディスク装置２０とキャッシュメモリ部１４間のデータ転送、及びマイクロプロセッサ１０１と共有メモリ部１５間の制御情報の転送を実行する。マイクロプロセッサ１０１及びドライブＩＦ１０３は内部バス１０６によって接続され、ＣＭアクセス制御部１０４は２つのドライブＩＦ１０３に直接接続されている。また、ＳＭアクセス制御部１０５は２つのマイクロプロセッサ１０１に直接接続されている。ディスクＩＦ部はRAID機能の実行も行う。
【００２５】
キャッシュメモリ部１４は、キャッシュメモリ（ＣＭ）コントローラ１０７とメモリモジュール１０９を有し、磁気ディスク装置２０へ記録するデータを一時的に格納する。
【００２６】
共有メモリ部１５は、共有メモリ（ＳＭ）コントローラ１０８とメモリモジュール１０９とを有し、ディスクアレイ制御装置１の制御情報（例えば、チャネルＩＦ部及びディスクＩＦ部とキャッシュメモリ部１４との間のデータ転送制御に関する情報）等を格納する。
【００２７】
ＣＭアクセス制御部１０４には２本のアクセスパス０：１３５を接続し、それらを２つの異なるセレクタ部１３にそれぞれ接続する。セレクタ部１３には２本のアクセスパス１：１３６を接続し、それらを２つの異なるＣＭコントローラ１０７にそれぞれ接続する。したがってＣＭコントローラ１０７には、２つのセレクタ部から１本ずつ、計２本のアクセスパス１：１３６が接続される。こうすることにより、１つのＣＭアクセス制御部１０４から１つのＣＭコントローラ１０７へのアクセスルートが２つとなる。これにより、１つのアクセスパスまたはセレクタ部１３に障害が発生した場合でも、もう１つのアクセスルートによりキャッシュメモリ部１４へアクセスすることが可能となるため、耐障害性を向上させることができる。
【００２８】
ＳＭアクセス制御部１０５には２本のアクセスパス２：１３７を接続し、そのアクセスパス２：１３７を２つの異なるＳＭコントローラにそれぞれ接続する。したがって、ＳＭコントローラ１０８には、２つのチャネルＩＦ部１１及び２つのディスクＩＦ部１２から１本ずつ、計４本のアクセスパス２：１３７が接続される。本実施例では、１つのＳＭアクセス制御部１０５と１つのＳＭコントローラ１０８の間には１本のアクセスパス２：１３７を接続したが、このアクセスパス２：１３７を２本に増やすことにより、１つのＳＭアクセス制御部１０５から１つのＳＭコントローラ１０８へのアクセスルートが２つとなるため、耐障害性を向上させることができる。
【００２９】
セレクタ部１３には、２つのチャネルＩＦ部１１と、２つのディスクＩＦ部１２からそれぞれ１本ずつ、計４本のアクセスパス０：１３５が接続される。また、セレクタ部１３には、２つのキャッシュメモリ部１４へのアクセスパス１：１３６が１本ずつ、計２本接続される。
【００３０】
アクセスパス０：１３５とアクセスパス１：１３６の間に上記のようなパス数の関係があるため、セレクタ部１３ではチャネルＩＦ部１１及びディスクＩＦ部１２からの４本のアクセスパス０：１３５からの要求の内、キャッシュメモリ部１４へのアクセスパス１：１３６の数に相当する２個だけを選択して実行する機能を持つ。
【００３１】
本実施例の大きな特徴は、チャネルＩＦ部１１及びディスクＩＦ部１２とキャッシュメモリ部１４との間の接続形式と、チャネルＩＦ部１１及びディスクＩＦ部１２と共有メモリ部１５との間の接続形式とが異なる点にある。このような構成にした理由を図１及び図２を用いて説明する。
【００３２】
図２に示したスター接続形式のディスクアレイ制御装置２では、ディスクアレイ制御装置２に搭載されるチャネルＩＦ部１１またはディスクＩＦ部１２の数を増やした場合、チャネルＩＦ部１１及びディスクＩＦ部１２とキャッシュメモリ部１４との間、及びチャネルＩＦ部１１及びディスクＩＦ部１２と共有メモリ部１５との間のアクセスパス数も増えることになる。また、スター接続形式のディスクアレイ制御装置２において、スループットを向上させるためには、チャネルＩＦ部１１及びディスクＩＦ部１２とキャッシュメモリ部１４との間、及びチャネルＩＦ部１１及びディスクＩＦ部１２と共有メモリ部１５との間のアクセスパス数を増やし、内部パス性能を向上させることが有効である。
【００３３】
しかし、キャッシュメモリ部１４に格納される１つのデータのデータ量は、共有メモリ部１５に格納される１つの制御情報のデータ量よりもかなり大きい。一例を挙げれば、メインフレームに接続されるディスク制御装置では、キャッシュメモリ部１４に格納される１つのデータは数Ｋバイト程度（例えば２Ｋバイト）であるのに対し、共有メモリ部１５に格納される１つの制御情報は数バイト程度（例えば４バイト）である。また、オープン系のホストコンピュータに接続されるディスク制御装置では、キャッシュメモリ部１４に格納される１つのデータは数十バイト程度（例えば６４バイト）であるのに対し、共有メモリ部１５に格納される１つの制御情報は数バイト程度（例えば４バイト）である。したがって、チャネルＩＦ部１１及びディスクＩＦ部１２とキャッシュメモリ部１４との間で転送されるデータ量は、チャネルＩＦ部１１及びディスクＩＦ部１２と共有メモリ部１５との間で転送されるデータ量に比べかなり多いので、チャネルＩＦ部１１及びディスクＩＦ部１２とキャッシュメモリ部１４との間のアクセスバスのデータ幅は、チャネルＩＦ部１１及びディスクＩＦ部１２と共有メモリ部１５との間のアクセスパスのデータ幅より広くとる必要がある。例えば、前者のアクセスパスは１６ビット幅のバスで構成され、後者は、８ビット幅のバスで構成される。そのため、チャネルＩＦ部１１及びディスクＩＦ部１２とキャッシュメモリ部１４との間のアクセスパス本数を増やすと、キャッシュメモリ部１４内のキャッシュメモリコントローラ（図２ではキャッシュメモリコントローラを図示していない）のＬＳＩのピン数不足、またはキャッシュメモリ部１４を実装するパッケージにおいてコネクタのピン数不足という問題が生じる。そこで、本実施例では、図１に示すように、チャネルＩＦ部１１及びディスクＩＦ部１２とキャッシュメモリ部１４との間をセレクタ部１３を介して接続することにより、キャッシュメモリ部１４に直接接続されるアクセスパス数を削減している。
【００３４】
一方、上述したように、共有メモリ部１３へ格納する１つの制御情報のデータ長はキャッシュメモリ部１４に格納する１つのデータのデータ長に比べかなり小さいので、チャネルＩＦ部１１及びディスクＩＦ部１２と共有メモリ部１５との間のアクセスパスのデータ幅は、チャネルＩＦ部１１及びディスクＩＦ部１２とキャッシュメモリ部１４との間のアクセスパスのデータ幅の半分以下とすることが可能である。したがって、共有メモリ部１５へのアクセスパス数を増やしても共有メモリ部内の共有メモリメモリコントローラ（図２では共有メモリコントローラを図示していない）のＬＳＩのピン数不足等の問題が生じることは少ない。
【００３５】
また、ディスクアレイ制御装置１のホストコンピュータ５０への応答時間を短くするためには、共有メモリ部１５に格納される制御情報へのアクセス時間をできるだけ短くする必要もある。しかし、図１に示したＣＭアクセス制御部１０４とＣＭコントローラ１０７間のように、ＳＭアクセス制御部１０５とＳＭコントローラ１０８との間をセレクタ部を介して接続すると、セレクタ部での処理のオーバーヘッドにより、共有メモリ部１５に格納される制御情報へのアクセス時間を短くすることができない。
【００３６】
そこで、本実施例では、チャネルＩＦ部１１及びディスクＩＦ部１２と共有メモリ部１５との間をセレクタ部を介さず直接接続することにより、チャネルＩＦ部１１及びディスクＩＦ部１２と共有メモリ部１５間に複数のアクセスパスを設け、スループットを向上させる一方、セレクタ部での処理オーバーヘッドをなくし、チャネルＩＦ部１１、及びディスクＩＦ部１２から共有メモリ部１５へのアクセス時間を短縮にしている。
【００３７】
なお、本実施例では、耐障害性の向上という観点から、セレクタ部１３、キャッシュメモリ部１４、及び共有メモリ部１５をそれぞれ二重化しているが、これらを二重化しなくても、上述の効果を得られることは言うまでもない。
【００３８】
図４は、ＣＭアクセス制御部１０４内の構成を示している。ＣＭアクセス制御部１０４は、セレクタ３０２と、アドレス、コマンド、データを一時格納するパケットバッファ３０３と、セレクタ部１３に繋がるアクセスパス０：１３５とのパスＩＦ３０１と、データのエラーチェック部３００と、データ転送制御部３１０を有する。セレクタ３０２の２つのポートはデータ線２１０でホストＩＦ１０２あるいはドライブＩＦ１０３に接続される。また、セレクタ３０２の他の２つのポートはパスＩＦ３０１に接続される。パスＩＦ３０１はアクセスパス０：１３５でセレクタ部１３に接続される。データ転送制御部３１０は、制御線１：２１１でホストＩＦ１０２あるいはドライブＩＦ１０３に接続され、制御線２：２１２でセレクタ部１３内のデータ転送制御部３１５に接続される。また、データ転送制御部３１０は、アービタ３０８によりホストＩＦ１０２あるいはドライブＩＦ１０３からのアクセス要求のアービトレーションを行い、セレクタ３０２の切り替えを行う。
【００３９】
図６は、セレクタ部１３内の構成を示している。セレクタ部１３は、チャネルＩＦ部１１及びディスクＩＦ部１２に繋がるアクセスパス０：１３５との４つのパスＩＦ３０１と、ＣＭコントローラ１０７に繋がるアクセスパス１：１３６との２つのパスＩＦ３０１と、両者間を互いに接続するセレクタ３０６と、パケットバッファ３０３と、データのエラーチェック部３００と、ＣＭアクセス制御部１０４から送出されたアドレス及びコマンドを解析するアドレス・コマンド（ａｄｒ、ｃｍｄ）解析部３０５と、データ転送制御部３１５を有する。データ転送制御部３１５は、制御線２：２１２でＣＭアクセス制御部１０４内のデータ転送制御部３１０に接続され、制御線３：２１３でＣＭコントローラ１０７内のデータ転送制御部３１５に接続される。また、データ転送制御部３１５は、アービタ３０８により、ａｄｒ、ｃｍｄ解析部３０５で解析した４本のアクセスパス０：１３５からのアクセス要求のアービトレーションを行い、セレクタ３０６の切り替えを行う。パケットバッファ３０３は、アクセスパス０：１３５側のパスとアクセスパス１：１３６側のパスでデータ転送速度に差がある場合、速度差を吸収するために、転送するデータの一部または全部をバッファリングする。
【００４０】
ａｄｒ、ｃｍｄ解析部３０５は、アドレス及びコマンドを格納するバッファと、ａｄｒ抽出部と、ｃｍｄ抽出部を有する（図示していない）。ａｄｒ、ｃｍｄ解析部３０５では、ＣＭアクセス制御部１０４に接続される４本のアクセスパス０：１３５それぞれに１つずつ割り当てられたバッファに、アドレス、コマンドを格納する。ａｄｒ抽出部及びｃｍｄ抽出部では、アクセスするＣＭコントローラ１０７とアクセスの種類を割り出し、データ転送制御部３１５内のアービタ３０８へ送出する。
【００４１】
図７は、キャッシュメモリ部１４内の構成を示している。キャッシュメモリ部１４は、ＣＭコントローラ１０７とメモリモジュール１０９を有する。ＣＭコントローラ１０７は、セレクタ部１３に繋がるアクセスパス１：１３６との２つのパスＩＦ３０１と、セレクタ３０４と、データを一時格納するパケットバッファ３０３と、データのエラーチェック部３００と、メモリモジュール１０９へのアクセスを制御するメモリ制御部３０７と、ＣＭアクセス制御部１０４から送出されたアドレス及びコマンドを解析するａｄｒ、ｃｍｄ解析部３０５と、データ転送制御部３１５を有する。データ転送制御部３１５は、制御線３：２１３でセレクタ部１３内のデータ転送制御部３１５に接続される。また、データ転送制御部３１５は、アービタ３０８により、ａｄｒ、ｃｍｄ解析部３０５で解析した２本のアクセスパス１：１３６からのアクセス要求のアービトレーションを行い、セレクタ３０４の切り替えを行う。
【００４２】
ａｄｒ、ｃｍｄ解析部３０５は、バッファと、ａｄｒ抽出部と、ｃｍｄ抽出部を有する（図示していない）。ａｄｒ、ｃｍｄ解析部３０５では、ＣＭコントローラ１０７に接続される２本のアクセスパス１：１３６それぞれに１つずつ割り当てられたバッファに、アドレス、コマンドを格納する。ａｄｒ抽出部及びｃｍｄ抽出部では、アクセスするメモリのアドレスとアクセスの種類を割り出し、メモリ制御部３０７へ送出する。また、２本のアクセスパス１：１３６からのアクセス要求をデータ転送制御部３１５内のアービタ３０８へ送出する。
【００４３】
次に、キャッシュメモリ部１４へのアクセス時の手順について述べる。キャッシュメモリ部１４へアクセスする場合、マイクロプロセッサ１０１は、ホストＩＦ１０２あるいはドライブＩＦ１０３へ、キャッシュメモリ部１４へのアクセス開始を指示する。
【００４４】
アクセス開始の指示を受けたホストＩＦ１０２あるいはドライブＩＦ１０３は、制御線１：２１１によりＣＭアクセス制御部１０４内のデータ転送制御部３１０へアクセス開始を示す信号を送出する。それとともに、データ線２１０を通してアドレス、コマンド、データ（データの書き込み時のみ）を送出する。
【００４５】
ＣＭアクセス制御部１０４は、データ線２１０を通して送られてきたアドレス、コマンド、データ（データの書き込み時のみ）をパケットバッファ３０３に格納する。データ転送制御部３１０はアービトレーションを行ってパスＩＦ３０１の使用権を決定し、セレクタ３０２を切り替える。
【００４６】
図９は、キャッシュメモリ部１４へデータを書き込む場合の、ＣＭアクセス制御部１０４からＣＭコントローラ１０７へのアクセスの流れを示している。ＣＭアクセス制御部１０４内のデータ転送制御部３１０は、アービトレーションによってアクセスパス０：１３５の使用権が決定されると、制御線２：２１２によってセレクタ部１３内のデータ転送制御部３１５へアクセス開始を示す信号（ＲＥＱ）を出す（ステップ５０１）。続いて、アドレス及びコマンドを送出する（ステップ５０２）。
【００４７】
セレクタ部１３内のデータ転送制御部３１５は、ＣＭアクセス制御部１０４からＲＥＱ信号を受け取ると、次にアクセスパス０：１３５を通して送られてくるアドレス及びコマンドを受信し、ａｄｒ、ｃｍｄ解析部３０５で解析したアクセス要求に基づいてアービトレーションを行う（ステップ５０３）。アービトレーションの結果、アクセスパス１：１３６への接続権を得たら、データ転送制御部３１５はセレクタ３０６を切り替える（ステップ５０４）とともに、制御線２：２１２により、ＣＭアクセス制御部１０４内のデータ転送制御部３１０へ、アクセスパス１：１３６への接続権が得られたことを示す信号（ＡＣＫ）を返す（ステップ５０５）。次にデータ転送制御部３１５は、制御線３：２１３によってＣＭコントローラ１０７内のデータ転送制御部３１５へアクセス開始を示す信号（ＲＥＱ）を出す（ステップ５０６）。続いて、アドレス及びコマンドを送出する（ステップ５０７）。
【００４８】
ＣＭアクセス制御部１０４はＡＣＫ信号を受けると、パケットバッファ３０３からデータを読み出し、セレクタ３０２、パスＩＦ３０１を介してアクセスパス０：１３５へ送出する。セレクタ部１３は、アクセスパス０：１３５を通して送られてきたデータを、パスＩＦ３０１及びセレクタ３０６を介してアクセスパス１：１３６へ送出する（ステップ５０９）。
【００４９】
ＣＭコントローラ１０７内のデータ転送制御部３１５は、制御線３：２１３によってＲＥＱ信号を受け取ると、次にアクセスパス１：１３６を通して送られてくるアドレス及びコマンドを受信し、ａｄｒ、ｃｍｄ解析部３０５で解析したアクセス要求に基づいてアービトレーションを行い（ステップ５０８）、セレクタ３０４を切り替える。アクセスパス１：１３６を通して送られてくるデータはパケットバッファ３０３に格納する。アービトレーションの結果、メモリモジュール１０９へのアクセス権を得たら、メモリの制御情報をメモリ制御部３０７へ送出し、メモリアクセスのための前処理を行う（ステップ５１０）。次に、パケットバッファ３０３からデータを読み出し、セレクタ３０４を介してメモリモジュール１０９へ書き込む（ステップ５１１）。
【００５０】
メモリモジュール１０９へのアクセスが終了すると、メモリアクセスの後処理を行い、データ転送制御部３１５においてアクセス状況を示すステータス（ＳＴＡＴＵＳ）を生成する（ステップ５１２）。次に、ステータスをセレクタ部１３を介してＣＭアクセス制御部１０４へ送出する（ステップ５１３）。セレクタ部１３内のデータ転送制御部３１５はステータスを受け取ると、ＣＭコントローラ１０７へのＲＥＱ信号をオフする（ステップ５１４）。ＣＭアクセス制御部１０４内のデータ転送制御部３１０はステータスを受け取ると、セレクタ部１３へのＲＥＱ信号をオフする（ステップ５１５）。セレクタ部１３内のデータ転送制御部３１５はＣＭアクセス制御部１０４からのＲＥＱ信号のオフを確認すると、ＣＭアクセス制御部１０４へのＡＣＫ信号をオフする（ステップ５１６）。
【００５１】
ＣＭアクセス制御部１０４内のデータ転送制御部３１０はステータスを受け取ると、制御線１：２１１により、ホストＩＦ１０２あるいはドライブＩＦ１０３へキャッシュメモリ部１４へのアクセスの終了を報告する。
【００５２】
キャッシュメモリ部１４からデータを読み出す場合の、ＣＭアクセス制御部１０４からＣＭコントローラ１０７へのアクセスの流れは、ステップ５０１から５０８までとステップ５１２以降は、データの書き込みの場合と同じである。
【００５３】
ここでＣＭアクセス制御部１０４は、ステップ５０５でＡＣＫ信号を受けると、データの受信待ち状態に入る。
【００５４】
ステップ５０８でメモリアクセス権を得ると、ＣＭコントローラ１０７はメモリモジュール１０９からデータを読み出し、セレクタ３０４、パスＩＦ３０１を介してアクセスパス１：１３６にデータを送出する。
【００５５】
セレクタ部１３は、アクセスパス１：１３６を通してデータを受信すると、パスＩＦ３０１及びセレクタ３０６を介してアクセスパス０：１３５にデータを送出する。
【００５６】
ＣＭアクセス制御部１０４は、アクセスパス０：１３５を通してデータを受信すると、セレクタ３０２、データ線２１０を介してホストＩＦ１０２あるいはドライブＩＦ１０３へデータを送出する。
【００５７】
図５は、ＳＭアクセス制御部１０５内の構成を示している。ＳＭアクセス制御部１０４は、セレクタ３０２と、アドレス、コマンド、データを一時格納するパケットバッファ３０３と、ＳＭコントローラ１０８に繋がるアクセスパス２：１３７とのパスＩＦ３０１と、データのエラーチェック部３００と、データ転送制御部３１０を有する。セレクタ３０２の２つのポートはデータ線２２０でマイクロプロセッサ１０１に接続される。また、セレクタ３０２の他の２つのポートはパスＩＦ３０１に接続される。パスＩＦ３０１はアクセスパス２：１３７でＳＭコントローラ１０８に接続される。データ転送制御部３１０は、制御線５：２２１でマイクロプロセッサ１０１に接続され、制御線６：２２２でＳＭコントローラ１０８内のデータ転送制御部３１５に接続される。また、データ転送制御部３１０は、アービタ３０８によりマイクロプロセッサ１０１からのアクセス要求のアービトレーションを行い、セレクタ３０２の切り替えを行う。
【００５８】
図８は、共有メモリ部１５内の構成を示している。共有メモリ部１５は、ＳＭコントローラ１０８とメモリモジュール１０９を有する。ＳＭコントローラ１０８は、ＳＭアクセス制御部１０５に繋がるアクセスパス２：１３７との４つのパスＩＦ３０１と、セレクタ３０９と、データを一時格納するパケットバッファ３０３と、データのエラーチェック部３００と、メモリモジュール１０９へのアクセスを制御するメモリ制御部３０７と、ＳＭアクセス制御部１０５から送出されたアドレス及びコマンドを解析するａｄｒ、ｃｍｄ解析部３０５と、データ転送制御部３１５を有する。データ転送制御部３１５は、制御線６：２２２でＳＭアクセス制御部１０５内のデータ転送制御部３１０に接続される。また、データ転送制御部３１５は、アービタ３０８により、ａｄｒ、ｃｍｄ解析部３０５で解析した４本のアクセスパス２：１３７からのアクセス要求のアービトレーションを行い、セレクタ３０９の切り替えを行う。
【００５９】
ａｄｒ、ｃｍｄ解析部３０５は、バッファと、ａｄｒ抽出部と、ｃｍｄ抽出部を有する（図示していない）。ａｄｒ、ｃｍｄ解析部３０５では、ＳＭコントローラ１０８に接続される４本のアクセスパス２：１３７それぞれに１つずつ割り当てられたバッファに、アドレス、コマンドを格納する。ａｄｒ抽出部及びｃｍｄ抽出部では、アクセスするメモリのアドレスとアクセスの種類を割り出し、メモリ制御部３０７へ送出する。また、４本のアクセスパス２：１３７からのアクセス要求をデータ転送制御部３１５内のアービタ３０８へ送出する。
【００６０】
次に、共有メモリ部１５へのアクセス時の手順について述べる。共有メモリ部１５へアクセスする場合、マイクロプロセッサ１０１は、制御線５：２２１によりＳＭアクセス制御部１０５内のデータ転送制御部３１０へアクセス開始を示す信号を送出する。それとともに、データ線２２０を通してアドレス、コマンド、データ（データの書き込み時のみ）を送出する。
【００６１】
ＳＭアクセス制御部１０５は、データ線２２０を通して送られてきたアドレス、コマンド、データ（データの書き込み時のみ）をパケットバッファ３０３に格納する。データ転送制御部３１０はアービトレーションを行ってパスＩＦ３０１の使用権を決定し、セレクタ３０２を切り替える。
【００６２】
図１０は、共有メモリ部１５へデータを書き込む場合の、ＳＭアクセス制御部１０５からＳＭコントローラ１０８へのアクセスの流れを示している。ＳＭアクセス制御部１０５内のデータ転送制御部３１０は、アービトレーションによってアクセスパス２：１３７の使用権が決定されると、制御線６：２２２によってＳＭコントローラ１０８へアクセス開始を示す信号（ＲＥＱ）を出す（ステップ６０１）。続いて、アドレス、コマンド、及びデータを連続して送出する（ステップ６０２）。
【００６３】
ＳＭコントローラ１０８内のデータ転送制御部３１５は、制御線６：２２２によってＲＥＱ信号を受け取ると、次にアクセスパス２：１３７を通して送られてくるアドレス、コマンド、及びデータを受信する。アドレスとコマンドは、ａｄｒ、ｃｍｄ解析部３０５で解析し、アクセス要求に基づいてアービトレーションを行い（ステップ６０３）、セレクタ３０９を切り替える。データはパケットバッファ３０３に格納する。アービトレーションの結果、メモリモジュール１０９へのアクセス権を得たら、メモリの制御情報をメモリ制御部３０７へ送出し、メモリアクセスのための前処理を行う（ステップ６０４）。次に、パケットバッファ３０３からデータを読み出し、セレクタ３０９を介してメモリモジュール１０９へ書き込む（ステップ６０５）。
【００６４】
メモリモジュール１０９へのアクセスが終了すると、メモリアクセスの後処理を行い、データ転送制御部３１５においてアクセス状況を示すステータス（ＳＴＡＴＵＳ）を生成する（ステップ６０６）。次に、ステータスをＳＭアクセス制御部１０５へ送出する（ステップ６０７）。ＳＭアクセス制御部１０５内のデータ転送制御部３１０はステータスを受け取ると、ＳＭコントローラ１０８へのＲＥＱ信号をオフする（ステップ６０８）。
【００６５】
ＳＭアクセス制御部１０５内のデータ転送制御部３１０はステータスを受け取ると、制御線５：２２１により、マイクロプロセッサ１０１へ共有メモリ部１５へのアクセスの終了を報告する。
【００６６】
共有メモリ部１５からデータを読み出す場合のＳＭアクセス制御部１０５からＳＭコントローラ１０８へのアクセスの流れは、ステップ６０１から６０４までとステップ６０６以降は、データの書き込みの場合と同じである。
【００６７】
ステップ６０４でメモリアクセスの前処理を行った後、ＳＭコントローラ１０８はメモリモジュール１０９からデータを読み出し、セレクタ３０９、パスＩＦ３０１を介してアクセスパス２：１３７にデータを送出する。
【００６８】
ＳＭアクセス制御部１０５は、アクセスパス２：１３７を通してデータを受信すると、セレクタ３０２、データ線２２０を介してマイクロプロセッサ１０１へデータを送出する。
【００６９】
本実施例のディスクアレイ制御装置１では、ホストコンピュータ５０とのチャネルを２つ有するチャネルＩＦ部１２を複数搭載しており、それらのチャネルをそれぞれ異なるホストコンピュータに接続することが可能である。そうした場合、ホストコンピュータに接続した各チャネルからの要求全てを並列に処理する必要がある。
【００７０】
ところでディスクアレイ制御装置１では、ホストコンピュータ５０へデータを読み出す場合、磁気ディスク装置２０に格納されたデータをディスクＩＦ部１２を介してキャッシュメモリ部１４へ書き込み、そのデータをキャッシュメモリ部１４から読み出して、チャネルＩＦ部１１を介してホストコンピュータ５０へ送る。またホストコンピュータ５０からディスクアレイ制御装置１へデータを書き込む場合は、ホストコンピュータ５０からチャネルＩＦ部１２へ送られてきたデータをキャッシュメモリ部１４へ書き込み、そのデータをキャッシュメモリ部１４から読み出して、ディスクＩＦ部１２を介して磁気ディスク装置２０に書き込む。さらにデータのパリティを生成して磁気ディスク装置２０に書き込むため、ディスクＩＦ部１２とキャッシュメモリ部１４間でさらに２〜３回のアクセスが行われる。
【００７１】
したがって、ホストコンピュータに接続した各チャネルからの要求全てを並列に処理するためには、チャネルＩＦ部１１及びディスクＩＦ部１２とキャッシュメモリ部１４間のスループットをホストコンピュータ５０とチャネルＩＦ部１１間の最大のスループットの２倍以上にしなければならない。
【００７２】
本実施例では、ＣＭアクセス制御部１０４とＣＭコントローラ１０７間のアクセスパスの帯域幅、及びＣＭコントローラ１０７とメモリモジュール１０９間の全帯域幅を、チャネルＩＦ部１１とホストコンピュータ５０間の最大の帯域幅の２倍以上に設定する。これにより、全チャネルＩＦ部１１を並列に動作させることが可能となる。
【００７３】
本実施例によれば、チャネルＩＦ部１１及びディスクＩＦ部１２とキャッシュメモリ部１４間のスループットを高くすること、チャネルＩＦ部１１及びディスクＩＦ部１２と共有メモリ部１５間のスループットを高く、且つアクセス時間を短くすることの両方が可能となる。これによって、スループットが高く、且つ応答時間の短いディスクアレイ制御装置を提供できる。
【００７４】
ここで、図１５に示すように、チャネルＩＦ部１１及びディスクＩＦ部１２とキャッシュメモリ部１４間をスイッチ（ＳＷ）１６を用いた相互結合網１４０で接続する。この場合にも、図１に示したセレクタ部１３を介して接続した構成と同様に、キャッシュメモリ部１４へ複数のアクセスパスを設けることができるため、スループットを高めることが可能となる。
【００７５】
また図１６に示すように、 １つのＣＭアクセス制御部１０４へ接続されるアクセスパス０：１３５の本数を図１の構成の倍の４本に増やしたディスクアレイ制御装置１においても、本実施例を実施する上で問題はない。ホストＩＦ及びドライブＩＦとして、今後はファイバチャネル等のスループットが１００ＭＢ／ｓ以上の高速ＩＦが使用されることが多くなると考えられる。チャネルＩＦ部１１及びディスクＩＦ部１２でのスループットのバランスを考えると、１つのＣＭアクセス制御部１０４に繋がる全アクセスパス０：１３５のスループットは、チャネルＩＦ部１１内の全ホストＩＦ１０２、またはディスクＩＦ部１２内の全ドライブＩＦ１０３のスループットと同等以上にする必要がある。上記のようにファイバチャネル等の高速ＩＦを使用する場合は、図１６に示すように、１つのＣＭアクセス制御部１０４に繋がるアクセスパス０：１３５の本数を増やすことで、アクセスパス０：１３５のスループットをホストＩＦ１０２あるいはドライブＩＦ１０３のスループット以上にすることができる。
【００７６】
なお、図１５及び図１６のディスクアレイ制御装置では、耐障害性の向上という観点から、セレクタ部１３、キャッシュメモリ部１４、及び共有メモリ部１５をそれぞれ二重化しているが、これらを二重化しなくても、上述の効果を得られることは言うまでもない。
【実施例２】
【００７７】
図１において、２つのキャッシュメモリ部１４間で、メモリ領域の全部または、一部を二重化し、キャッシュメモリ部１４へのデータの書き込み時に二重化した２つの領域に同じデータを書き込むことにより、データの信頼性を上げることが可能となる。
【００７８】
二重化した２つのキャッシュメモリ部１４へデータを書き込む場合の手順は以下のようになる。
【００７９】
アクセス開始の指示を受けたホストＩＦ１０２あるいはドライブＩＦ１０３は、制御線１：２１１によりＣＭアクセス制御部１０４内のデータ転送制御部３１０へアクセス開始を示す信号を送出する。それとともに、データ線２１０を通して２つのアドレス、コマンドと、１つのデータを送出する。
【００８０】
ＣＭアクセス制御部１０４は、データ線２１０を通して送られてきた２つのアドレス、コマンドと、１つのデータをパケットバッファ３０３に格納する。データ転送制御部３１０はアービトレーションを行ってパスＩＦ３０１の使用権を決定し、セレクタ３０２を切り替える。
【００８１】
図１１は、二重化した２つのキャッシュメモリ部１４へデータを書き込む場合の、ＣＭアクセス制御部１０４から２つのＣＭコントローラａ、ｂ：１０７へのアクセスの流れを示している。ＣＭアクセス制御部１０４内のデータ転送制御部３１０は、アービトレーションによってアクセスパス０：１３５の使用権が決定されると、制御線２：２１２によってセレクタ部１３内のデータ転送制御部３１５へアクセス開始を示す信号（ＲＥＱ）を出す（ステップ７０１）。続いて、アドレス及びコマンドを２つ連続して送出する（ステップ７０２）。
【００８２】
セレクタ部１３内のデータ転送制御部３１５は、ＣＭアクセス制御部１０４からＲＥＱ信号を受け取ると、次にアクセスパス０：１３５を通して送られてくるアドレス及びコマンドを受信し、ａｄｒ、ｃｍｄ解析部３０５で解析したアクセス要求に基づいてアービトレーションを行う（ステップ７０３）。アービトレーションの結果、ＣＭコントローラａ、ｂ：１０７への２本のアクセスパス１：１３６への接続権の両方を得たら、データ転送制御部３１５はセレクタ３０６を切り替える（ステップ７０４）とともに、制御線２：２１２により、ＣＭアクセス制御部１０４内のデータ転送制御部３１０へ、ＣＭコントローラａ、ｂ：１０７への接続権が得られたことを示す信号（ＡＣＫ）を返す（ステップ７０５）。次にデータ転送制御部３１５は、制御線３：２１３によって２つのＣＭコントローラ１０７内のデータ転送制御部３１５へアクセス開始を示す信号（ＲＥＱ）を出す（ステップ７０６ａ、７０６ｂ）。続いて、ＣＭコントローラａ、ｂ：１０７へアドレス及びコマンドを１つずつ送出する（ステップ７０７ａ、７０７ｂ）。
【００８３】
ＣＭアクセス制御部１０４はＡＣＫ信号を受けると、パケットバッファ３０３からデータを読み出し、セレクタ３０２、パスＩＦ３０１を介してアクセスパス０：１３５へ送出する（ステップ７０９）。セレクタ部１３は、アクセスパス０：１３５を通して送られてきた１つのデータを、パスＩＦ３０１及びセレクタ３０６を介して２つのアクセスパス１：１３６の両方へ送出する（ステップ７０９ａ、７０９ｂ）。
【００８４】
ＣＭコントローラａ、ｂ：１０７内のデータ転送制御部３１５は、制御線３：２１３によってＲＥＱ信号を受け取ると、次にアクセスパス１：１３６を通して送られてくるアドレス及びコマンドを受信し、ａｄｒ、ｃｍｄ解析部３０５で解析したアクセス要求に基づいてアービトレーションを行い（ステップ７０８ａ、７０８ｂ）、セレクタ３０４を切り替える。アクセスパス１：１３６を通して送られてくるデータはパケットバッファ３０３に格納する。アービトレーションの結果、メモリモジュール１０９へのアクセス権を得たら、メモリの制御情報をメモリ制御部３０７へ送出し、メモリアクセスのための前処理を行う（ステップ７１０ａ、７１０ｂ）。次に、パケットバッファ３０３からデータを読み出し、セレクタ３０４を介してメモリモジュール１０９へ書き込む（ステップ７１１ａ、７１１ｂ）。
【００８５】
メモリモジュール１０９へのアクセスが終了すると、メモリアクセスの後処理を行い、データ転送制御部３１５においてアクセス状況を示すステータス（ＳＴＡＴＵＳ）を生成する（ステップ７１２ａ、７１２ｂ）。次に、ステータスをセレクタ部１３を介してＣＭアクセス制御部１０４へ送出する（ステップ７１３ａ、７１３ｂ）。セレクタ部１３内のデータ転送制御部３１５はステータスを受け取ると、ＣＭコントローラａ、ｂ：１０７へのＲＥＱ信号をそれぞれオフする（ステップ７１４ａ、７１４ｂ）。また、セレクタ部１３はＣＭコントローラａ、ｂ：１０７の両方からステータスを受け取ったら、それらを続けてＣＭアクセス制御部へ送出する（ステップ７１３）。ＣＭアクセス制御部１０４内のデータ転送制御部３１０は２つのステータスを受け取ると、セレクタ部１３へのＲＥＱ信号をオフする（ステップ７１５）。セレクタ部１３内のデータ転送制御部３１５はＣＭアクセス制御部１０４からのＲＥＱ信号のオフを確認すると、ＣＭアクセス制御部１０４へのＡＣＫ信号をオフする（ステップ７１６）。
【００８６】
ＣＭアクセス制御部１０４内のデータ転送制御部３１０はステータスを受け取ると、制御線１：２１１により、ホストＩＦ１０２あるいはドライブＩＦ１０３へキャッシュメモリ部１４へのアクセスの終了を報告する。
【００８７】
上記のように二重化したキャッシュメモリ部１４にデータを二重に書き込む場合、二重に書き込むデータの一方のデータの書き込み処理を行っている間に、もう一方のデータが他のアクセスパスからの書き込み要求によって書き換えられるのを防ぐ必要がある。本実施例では、共有メモリ部１５にキャッシュメモリ部１４のディレクトリを格納し、キャッシュメモリ部１４にアクセスする前に必ず、共有メモリ部１５に格納したディレクトリにアクセス中を示すビットを立てる。これにより、キャッシュメモリ部１４内の同じアドレスには同時に１つのアクセス要求しか発行されないため、二重に書き込むデータの一方のデータの書き込み処理を行っている間に、もう一方のデータが他のアクセスパスからの書き込み要求によって書き換えられるのを防ぐことができる。
【実施例３】
【００８８】
ディスクアレイ制御装置１では、キャッシュメモリ部１４を複数設けた場合、あるキャッシュメモリ部１４から別のキャッシュメモリ部１４へデータをコピーする機能が要求される。この機能は、以下に述べる手順で実現できる。
【００８９】
アクセス開始の指示を受けたホストＩＦ１０２あるいはドライブＩＦ１０３は、制御線１：２１１によりＣＭアクセス制御部１０４内のデータ転送制御部３１０へアクセス開始を示す信号を送出する。それとともに、データ線２１０を通して２つのアドレス、コマンドを送出する。２つのうちの１つのアドレス及びコマンドは、コピー元のアドレスとリードコマンドで、もう１つのアドレス及びコマンドはコピー先のアドレスとライトコマンドである。ここでは、ＣＭコントローラａ：１０７をコピー元、ＣＭコントローラｂをコピー先として説明する。
【００９０】
ＣＭアクセス制御部１０４は、データ線２１０を通して送られてきた２つのアドレス、コマンドをパケットバッファ３０３に格納する。データ転送制御部３１０はアービトレーションを行ってパスＩＦ３０１の使用権を決定し、セレクタ３０２を切り替える。
【００９１】
図１２は、２つのキャッシュメモリ部間でデータをコピーする場合の、ＣＭアクセス制御部１０４からＣＭコントローラａ、ｂ：１０７へのアクセスの流れを示している。ＣＭアクセス制御部１０４内のデータ転送制御部３１０は、アービトレーションによってアクセスパス０：１３５の使用権が決定されると、制御線２：２１２によってセレクタ部１３内のデータ転送制御部３１５へアクセス開始を示す信号（ＲＥＱ）を出す（ステップ８０１）。続いて、アドレス及びコマンドを２つ連続して送出する（ステップ８０２）。
【００９２】
セレクタ部１３内のデータ転送制御部３１５は、ＣＭアクセス制御部１０４からＲＥＱ信号を受け取ると、次にアクセスパス０：１３５を通して送られてくるアドレス及びコマンドを受信し、ａｄｒ、ｃｍｄ解析部３０５で解析したアクセス要求に基づいてアービトレーションを行う（ステップ８０３）。アービトレーションの結果、ＣＭコントローラａ、ｂ：１０７への２つのアクセスパス１：１３６への接続権の両方を得たら、データ転送制御部３１５はセレクタ３０６を切り替える（ステップ８０４）とともに、制御線２：２１２により、ＣＭアクセス制御部１０４内のデータ転送制御部３１０へ、ＣＭコントローラａ、ｂ：１０７両方への接続権が得られたことを示す信号（ＡＣＫ）を返す（ステップ８０５）。次にデータ転送制御部３１５は、制御線３：２１３によってＣＭコントローラａ、ｂ：１０７内のデータ転送制御部３１５へアクセス開始を示す信号（ＲＥＱ）を出す（ステップ８０６ａ、８０６ｂ）。続いて、ＣＭコントローラａ、ｂ：１０７へそれぞれのアドレス及びコマンドを送出する（ステップ８０７ａ、８０７ｂ）。
【００９３】
ＣＭアクセス制御部１０４はＡＣＫ信号を受けると、アクセスの終了を知らせるステータスの受信待ち状態に入る。
【００９４】
コピー元のＣＭコントローラａ：１０７内のデータ転送制御部３１５は、制御線３：２１３によってＲＥＱ信号を受け取ると、次にアクセスパス１：１３６を通して送られてくるアドレス及びコマンドを受信し、ａｄｒ、ｃｍｄ解析部３０５で解析したアクセス要求に基づいてアービトレーションを行い（ステップ８０８）、セレクタ３０４を切り替える。アービトレーションの結果、メモリモジュール１０９へのアクセス権を得たら、メモリの制御情報をメモリ制御部３０７へ送出し、メモリアクセスのための前処理を行う（ステップ８０９）。次に、メモリモジュール１０９からデータを読み出し（ステップ８１０）、セレクタ３０４を介してアクセスパス１：１３６へ送出する（ステップ８１１ａ）。
【００９５】
セレクタ部１３は、アクセスパス１：１３６を通してＣＭコントローラａ：１０７から送られてきたデータをＣＭコントローラｂに繋がるアクセスパス１：１３６へ送出する。（ステップ８１１ｂ）。
【００９６】
ＣＭコントローラｂ：１０７内のデータ転送制御部３１５は、制御線３：２１３によってＲＥＱ信号を受け取ると、次にアクセスパス１：１３６を通して送られてくるアドレス及びコマンドを受信し、ａｄｒ、ｃｍｄ解析部３０５で解析する。その後、データを受信し始めるのを待って、メモリアクセスのアービトレーションに参加する（ステップ８１２）。アクセスパス１：１３６を通して送られてくるデータはパケットバッファ３０３に格納する。アービトレーションの結果、メモリモジュール１０９へのアクセス権を得たら、メモリの制御情報をメモリ制御部３０７へ送出し、メモリアクセスのための前処理を行う（ステップ８１３）。次に、パケットバッファ３０３からデータを読み出し、セレクタ３０４を介してメモリモジュール１０９へ書き込む（ステップ８１４）。
【００９７】
ＣＭコントローラａ、ｂ：１０７は、それぞれＣＭメモリモジュール１０９へのアクセスが終了すると、メモリアクセスの後処理を行い、データ転送制御部３１５においてアクセス状況を示すステータス（ＳＴＡＴＵＳ）を生成する（ステップ８１５、８１８）。次に、ステータスをセレクタ部１３へ送出する（ステップ８１６、８１９）。
【００９８】
セレクタ部１３内のデータ転送制御部３１５はステータスを受け取ると、ＣＭコントローラａ、ｂ：１０７へのＲＥＱ信号をそれぞれオフする（ステップ８１７、８２１）。また、セレクタ部１３は２つのＣＭコントローラａ、ｂ：１０７の両方からステータスを受け取ったら、それらを続けてＣＭアクセス制御部へ送出する（ステップ８２０）。ＣＭアクセス制御部１０４内のデータ転送制御部３１０は２つのステータスを受け取ると、セレクタ部１３へのＲＥＱ信号をオフする（ステップ８２２）。セレクタ部１３内のデータ転送制御部３１５はＣＭアクセス制御部１０４からのＲＥＱ信号のオフを確認すると、ＣＭアクセス制御部１０４へのＡＣＫ信号をオフする（ステップ８２３）。
【００９９】
ＣＭアクセス制御部１０４内のデータ転送制御部３１０はステータスを受け取ると、制御線１：２１１により、ホストＩＦ１０２あるいはドライブＩＦ１０３へキャッシュメモリ部１４へのアクセスの終了を報告する。
【０１００】
ディスクアレイ制御装置１ではまた、１つのキャッシュメモリ部１４内のあるアドレスから別のアドレスへデータをコピーする機能も要求される。
【０１０１】
この機能は、図９で示したデータの書き込み時の手順において、ステップ５１１のメモリモジュール１０９へのライトアクセスの代わりに、メモリモジュール１０９からデータを読み出してＣＭコントローラ１０７内のパケットバッファ３０３に格納し、続けてそのデータをメモリモジュール１０９へ書き込むという処理を行うことによって実現できる。
【実施例４】
【０１０２】
図１において、２つの共有メモリ部１５間で、メモリ領域の全部または、一部を二重化し、共有メモリ部１５へのデータの書き込み時に二重化した２つの領域に同じデータを書き込むことにより、データの信頼性を上げることが可能となる。
【０１０３】
二重化した２つの共有メモリ部１５へデータを書き込む場合の手順は、以下のようになる。
【０１０４】
マイクロプロセッサ１０１は、制御線５：２２１によりＳＭアクセス制御部１０５内のデータ転送制御部３１０へアクセス開始を示す信号を送出する。それとともに、データ線２２０を通して２つのアドレス、コマンドと、１つのデータを送出する。
【０１０５】
ＳＭアクセス制御部１０５は、データ線２２０を通して送られてきた２つのアドレス、コマンドと、１つのデータをパケットバッファ３０３に格納する。データ転送制御部３１０はアービトレーションを行ってパスＩＦ３０１の使用権を決定し、セレクタ３０２を切り替える。
【０１０６】
図１３は、二重化した２つの共有メモリ部１５へデータを書き込む場合の、ＳＭアクセス制御部１０５から２つのＳＭコントローラ１０８へのアクセスの流れを示している。２つの共有メモリ部を二重化する場合、一方をマスタ、もう一方をスレーブに設定する。ＳＭアクセス制御部１０５内のデータ転送制御部３１０は、アービトレーションによって、まずマスタ側のＳＭコントローラ１０８へのアクセスパス２：１３７の使用権を決定し、制御線６：２２２によってマスタ側のＳＭコントローラ１０８内のデータ転送制御部３１５へアクセス開始を示す信号（ＲＥＱ）を出す（ステップ９０１）。続いて、アドレス、コマンド、及びデータを連続して送出する（ステップ９０２）。
【０１０７】
マスタ側のＳＭコントローラ１０８内のデータ転送制御部３１５は、制御線６：２２２によってＲＥＱ信号を受け取ると、次にアクセスパス２：１３７を通して送られてくるアドレス、コマンド、及びデータを受信し、ａｄｒ、ｃｍｄ解析部３０５で解析したアクセス要求に基づいてアービトレーションを行い（ステップ９０３）、セレクタ３０９を切り替える。データはパケットバッファ３０３に格納する。アービトレーションの結果、メモリモジュール１０９へのアクセス権を得たら、メモリの制御情報をメモリ制御部３０７へ送出し、メモリアクセスのための前処理を行う（ステップ９０４）。次に、パケットバッファ３０３からデータを読み出し、セレクタ３０９を介してメモリモジュール１０９へ書き込む（ステップ９０５）。
【０１０８】
メモリモジュール１０９へのアクセスが終了すると、メモリアクセスの後処理を行い、データ転送制御部３１５においてアクセス状況を示すステータス（ＳＴＡＴＵＳ）を生成する（ステップ９０６）。次に、ステータスをＳＭアクセス制御部１０５へ送出する（ステップ９０７）。
【０１０９】
ＳＭアクセス制御部１０５はステータスを受け取ったら、マスタ側のＳＭコントローラ１０８へのアクセスパス２：１３７の使用権を開放せずに、アービトレーションによって、スレーブ側のＳＭコントローラ１０８へのアクセスパス２：１３７の使用権を決定する。その後のスレーブ側のＳＭコントローラ１０８へのアクセス手順（ステップ９０８〜９１４）は、マスタ側のＳＭコントローラ１０８へのアクセス手順（ステップ９０１〜９０７）と同様である。
【０１１０】
ＳＭアクセス制御部１０５内のデータ転送制御部３１０はスレーブ側のＳＭコントローラ１０８からステータスを受け取ると、マスタ側とスレーブ側両方のＳＭコントローラ１０８へのＲＥＱ信号をオフする（ステップ７１５ａ、７１５ｂ）。
【０１１１】
二重化した共有メモリ部１５にデータを二重に書き込む場合、上記のように共有メモリ部１５をマスタとスレーブに分け、マスタ側、スレーブ側の順でデータを書き込み、スレーブ側へのデータの書き込みが終わるまで両方のアクセスパス２：１３７を開放しない。これによりデータを書き込む順番が保証され、二重に書き込むデータの一方のデータの書き込み処理を行っている間に、もう一方のデータが他のアクセスパスからの書き込み要求によって書き換えられるのを防ぐことができる。
【０１１２】
ＳＭアクセス制御部１０５内のデータ転送制御部３１０はステータスを受け取ると、制御線５：２２１により、マイクロプロセッサ１０１へ共有メモリ部１５へのアクセスの終了を報告する。
【実施例５】
【０１１３】
図１４に、実施例１のディスクアレイ制御装置１のチャネルＩＦ部１１、ディスクＩＦ部１２、セレクタ部１３、キャッシュメモリ部１４、共有メモリ部１５を実装するときの構成を示す。
【０１１４】
チャネルＩＦ部１１、ディスクＩＦ部１２、セレクタ部１３、キャッシュメモリ部１４、共有メモリ部１５は、それぞれ独立したパッケージ（ＰＫ）、すなわち、チャネルＩＦＰＫ１、ディスクＩＦＰＫ２、セレクタＰＫ３、メモリＰＫ４にそれぞれ実装する。異なるキャッシュメモリ部１４は、異なるパッケージ上に実装する。また、異なる共有メモリ部１５も、異なるパッケージ上に実装する。１つのキャッシュメモリ部１４と１つの共有メモリ部１５は同一のパッケージ上に実装しても問題ない。図１４では、１つのキャッシュメモリ部１４と１つの共有メモリ部１５を同一のメモリＰＫ４上に実装した例を示している。
【０１１５】
チャネルＩＦＰＫ１、ディスクＩＦＰＫ２、セレクタＰＫ３、メモリＰＫ４は、プラッタ５上に実装し、それを筐体に搭載する。
【０１１６】
ここで、各ＰＫをプラッタ５に実装するときには、セレクタＰＫ３を中心付近より外側、好ましくはプラッタの両端に配置することが重要となる。このような配置により、各ＰＫ間を結ぶ線をプラッタ５上に配線する際、プラッタ５全体にわたって配線の密度を均一にでき、プラッタ上の配線を容易になる。
【０１１７】
本実施例では、セレクタ部１３をセレクタＰＫ３に実装して、プラッタ５の両端に配置するとした。しかし、セレクタ部１３をパッケージに実装せず、プラッタの両端に直接実装しても問題ない。
【実施例６】
【０１１８】
図１に示す実施例１のディスクアレイ制御装置１において、ＳＭアクセス制御部１０５とＳＭコントローラ１０８間をアクセスパス２：１３７で接続する代わりに、図７に示すように、２本の共有バス１３０を介して接続する。ＳＭアクセス制御部１０５からは、２本の共有バス１３０それぞれに１本ずつ接続パスを設ける。また、ＳＭコントローラ１０８からも、２本の共有バス１３０それぞれに１本ずつ接続パスを設ける。ＳＭアクセス制御部１０５及びＳＭコントローラ１０８は、それぞれ２つのアービタを有している。２つのアービタはそれぞれ２本の共有バスのアービトレーション用のアービタである。ＳＭアクセス制御部１０５からＳＭコントローラ１０８へのアクセスの際は、複数のアービタの内の１つがマスタとなり、共有バス１３０の使用権のアービトレーションを行う。そして、使用権を得たＳＭアクセス制御部１０５がＳＭコントローラ１０８にアクセスを行う。また、アービタをＳＭアクセス制御部１０５及びＳＭコントローラ１０８内に設ける代わりに、独立した回路として共有バス１３０に直接接続しても問題ない。
【０１１９】
共有バス接続では、バスのデータ幅を広げることによりデータ転送速度を上げることが可能であり、共有メモリ部１５へのアクセス時間を短縮可能である。
【０１２０】
上述したように、図１におけるアクセスパス２：１３７のデータ幅は、アクセスパス０：１３５のデータ幅よりも２倍以上小さくすることができるので、図１のようにチャネルＩＦ部１１及びディスクＩＦ部１２と共有メモリ部１５との間をスター接続（１対１接続）しても、共有メモリ部を実装するLSIのピンネックの問題が生じるケースは少ない。とはいえ、アクセスパス２：１３７の本数が増え過ぎてアクセスパス２：１３７を実装できないという問題が生じる可能性もある。そうした場合、本実施例の共有バス接続が有効となる。
【０１２１】
なお、本実施例では、耐障害性の向上という観点から、セレクタ部１３、キャッシュメモリ部１４、及び共有メモリ部１５をそれぞれ二重化しているが、これらを二重化しなくても、上述の効果を得られることは言うまでもない。
【図面の簡単な説明】
【０１２２】
【図１】本発明によるディスクアレイ制御装置の構成を示す図。
【図２】従来のディスクアレイ制御装置の構成を示す図。
【図３】従来のディスクアレイ制御装置の他の構成を示す図。
【図４】本発明によるディスクアレイ制御装置内のＣＭアクセス制御部の構成を示す図。
【図５】本発明によるディスクアレイ制御装置内のＳＭアクセス制御部の構成を示す図。
【図６】本発明によるディスクアレイ制御装置内のセレクタ部の構成を示す図。
【図７】本発明によるディスクアレイ制御装置内のキャッシュメモリ部の構成を示す図。
【図８】本発明によるディスクアレイ制御装置内の共有メモリ部の構成を示す図。
【図９】キャッシュメモリ部へのデータの書き込み時の手順を示す図。
【図１０】共有メモリ部へのデータの書き込み時の手順を示す図。
【図１１】二重化した２つのキャッシュメモリ部へデータを二重に書き込む時の手順を示す図。
【図１２】１つのキャッシュメモリ部から別のキャッシュメモリ部へデータをコピーする時の手順を示す図。
【図１３】二重化した２つの共有メモリ部へデータを二重に書き込む時の手順を示す図。
【図１４】本発明によるディスクアレイ制御装置内の実装の構成を示す図。
【図１５】本発明によるディスクアレイ制御装置内の他の構成を示す図。
【図１６】本発明によるディスクアレイ制御装置内の他の構成を示す図。
【図１７】本発明によるディスクアレイ制御装置の構成を示す図。
【符号の説明】
【０１２３】
１…ディスクアレイ制御装置、１１…チャネルＩＦ部、１２…ディスクＩＦ部、１３…セレクタ部、１４…キャッシュメモリ部、１５…共有メモリ部、２０…磁気ディスク装置、５０…ホストコンピュータ、１０１…マイクロプロセッサ、１０２…ホストＩＦ、１０３…ドライブＩＦ、１０４…ＣＭアクセス制御部、１０５…ＳＭアクセス制御部、１０６…内部バス、１０７…ＣＭコントローラ、１０８…ＳＭコントローラ、１０９…メモリモジュール、１３５…アクセスパス０、１３６…アクセスパス１、１３７…アクセスパス２。
【図１】
0004662565.tif 000002
【図２】
0004662565.tif 000003
【図３】
0004662565.tif 000004
【図４】
0004662565.tif 000005
【図５】
0004662565.tif 000006
【図６】
0004662565.tif 000007
【図７】
0004662565.tif 000008
【図８】
0004662565.tif 000009
【図９】
0004662565.tif 000010
【図１０】
0004662565.tif 000011
【図１１】
0004662565.tif 000012
【図１２】
0004662565.tif 000013
【図１３】
0004662565.tif 000014
【図１４】
0004662565.tif 000015
【図１５】
0004662565.tif 000016
【図１６】
0004662565.tif 000017
【図１７】
0004662565.tif 000018