(57)【要約】【課題】キャッシュ一致化制御手順を簡略化し、且つデータ転送回路側では内部バスの使用効率を低下させずに当該一致化制御の完了を確認できるようにする。【解決手段】キャッシュコントローラ１２５−１のレジスタＲ１，Ｒ２には、一致化制御の対象となるキャッシュメモリ内の領域が予め設定される。主コントローラ１２５ａは、データ転送回路から転送されたデータをキャッシュメモリ１２４−１に書き込む。このデータの書き込み先がレジスタＲ１，Ｒ２の指定する領域に属している場合、そのデータ及び対応するアドレスがキャッシュ間通信コントローラ１２５ｃにより他のキャッシュコントローラ１２５−２に転送されて、当該コントローラ１２５−２によりキャッシュメモリ１２４−２に書き込まれる。このキャッシュメモリ１２４−２での書き込みが完了すると、その状態がデータ転送回路に通知可能なように、レジスタＲ３内のフラグＦ１２に反映される。【選択図】    図１
2004355039.tif 000002
【特許請求の範囲】
【請求項１】
複数のディスク装置から構成されるディスクアレイと、
前記ディスクアレイを制御する複数のコントロールユニットであって、少なくとも前記ディスクアレイの一部のデータが格納されるキャッシュメモリと、前記キャッシュメモリを制御するキャッシュコントローラと、データの転送に用いられる内部バスと、前記内部バスを介して前記キャッシュコントローラにデータを転送するデータ転送回路とを有する複数のコントロールユニットとを具備し、
前記各コントロールユニット内の前記キャッシュコントローラは、
対応する前記コントロールユニット内の前記キャッシュメモリの領域のうち、当該コントロールユニットに固有の、キャッシュ一致化制御の対象となる領域を指定する一致化領域指定手段と、
前記データ転送回路により転送されたデータを前記対応するコントロールユニット内の前記キャッシュメモリに書き込む制御を行うと共に、当該キャッシュメモリ内のデータの書き込み先が前記一致化領域指定手段により指定される固有の領域に属するか否かを判定する主コントローラと、
前記キャッシュメモリ内のデータの書き込み先が前記固有の領域に属する場合、当該キャッシュメモリに書き込まれるデータを対応するライトアドレスと共に他のコントロールユニットに転送することにより、当該他のコントロールユニット内の前記キャッシュメモリへのデータ書き込みを行わせると共に、このデータ書き込みの完了の通知を当該他のコントロールユニットから受信するキャッシュ間通信コントローラと、
前記キャッシュメモリ内のデータの書き込み先が前記固有の領域に属する場合、当該キャッシュメモリへのデータの書き込みが完了し、且つ当該データの前記他のコントロールユニット内の前記キャッシュメモリへの書き込みの完了の通知を受信した状態でのみ、前記データ転送回路にキャッシュ一致化制御完了を通知することが可能な完了通知回路とを備えている
ことを特徴とするディスクアレイ装置。
【請求項２】
前記各コントロールユニット内の前記キャッシュコントローラは、当該キャッシュコントローラ内の前記主コントローラによる前記キャッシュメモリへのデータの書き込みの完了に応じて、データ書き込み実行中を示す状態からデータ書き込み完了を示す状態に更新される第１のフラグ情報と、前記他のコントロールユニットに対応する第２のフラグ情報であって、当該他のコントロールユニット内の前記キャッシュメモリへのデータ書き込みの完了の通知が前記キャッシュ間通信コントローラにより受信された場合に、当該他のコントロールユニット内の前記キャッシュメモリへのデータ書き込み実行中を示す状態からデータ書き込み完了を示す状態に更新される第２のフラグ情報とを保持するフラグ情報保持手段を含むことを特徴とする請求項１記載のディスクアレイ装置。
【請求項３】
前記完了通知回路は、前記データ転送回路からのキャッシュライト確認要求に応じて、前記フラグ情報保持手段に保持されている前記第１及び第２のフラグ情報で示されるキャッシュライトの状況を当該データ転送回路に通知することを特徴とする請求項２記載のディスクアレイ装置。
【請求項４】
前記完了通知回路は、前記フラグ情報保持手段に保持されている前記第１及び第２のフラグ情報がいずれもデータ書き込み完了を示す状態となった場合に、前記キャッシュ一致化制御完了を前記データ転送回路に通知することを特徴とする請求項２記載のディスクアレイ装置。
【請求項５】
複数のディスク装置から構成されるディスクアレイを制御する複数のコントロールユニットであって、少なくとも前記ディスクアレイの一部のデータが格納されるキャッシュメモリと、前記キャッシュメモリを制御するキャッシュコントローラと、データの転送に用いられる内部バスと、前記内部バスを介して前記キャッシュコントローラにデータを転送するデータ転送回路とを有する複数のコントロールユニットを備えたディスクアレイ装置に適用されるキャッシュ一致化制御方法において、
前記コントロールユニット毎に、当該コントロールユニット内の前記キャッシュメモリの領域のうち、当該コントロールユニットに固有の、キャッシュ一致化制御の対象となる領域を予め指定するステップと、
前記コントロールユニット内のデータ転送回路から内部バスを介して転送されるデータを当該コントロールユニット内のキャッシュメモリに書き込むステップと、
前記キャッシュメモリへのデータの書き込みに際し、そのデータの書き込み先が当該キャッシュメモリに対応する前記コントロールユニットに固有の領域に属するかを判定するステップと、
前記キャッシュメモリへのデータの書き込み先が前記固有の領域に属する場合、当該キャッシュメモリに書き込まれるデータを対応するライトアドレスと共に他のコントロールユニットに転送することにより、当該他のコントロールユニット内のキャッシュメモリへのデータ書き込みを行わせるステップと、
前記データ及びライトアドレスの転送に応じて行われる前記他のコントロールユニット内のキャッシュメモリへのデータ書き込みの完了の通知を当該他のコントロールユニットから受信するステップと、
前記コントロールユニット内のキャッシュメモリへのデータ書き込みの完了と、前記他のコントロールユニット内のキャッシュメモリへのデータ書き込みの完了の通知の受信とをもとに、前記データ転送回路にキャッシュ一致化制御完了を通知するステップと
を具備することを特徴とするディスクアレイ装置に適用されるキャッシュ一致化制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、キャッシュメモリを有し、ディスクアレイを制御する複数のコントロールユニットを備えたディスクアレイ装置に係り、特に当該各コントロールユニット内のキャッシュメモリの一部の領域の内容を一致化させるのに好適なディスクアレイ装置及び同装置に適用されるキャッシュ一致化制御方法に関する。
【０００２】
【従来の技術】
大容量ストレージ装置として、複数のディスク装置から構成されるディスクアレイ（論理ディスク）を備えたディスクアレイ装置が知られている。ディスクアレイ装置は、ディスク装置へのデータの書き込み、ディスク装置からのデータの読み出しを制御するコントロールユニット（ディスクアレイ制御装置）を備えている。コントロールユニットは、ディスク装置のデータの一部を格納するキャッシュメモリと、当該キャッシュメモリを制御するキャッシュコントローラとを含んでいるのが一般的である。キャッシュメモリは、ディスク装置を対象とするデータの読み書きよりも高速にデータの読み書きを制御するために用いられる。また、最近は、コントロールユニットが故障した場合に備えて、コントロールユニットを複数実装し、ディスクアレイ装置としての信頼性を向上させる構成が、多くのディスクアレイ装置で採用されている。
【０００３】
キャッシュメモリには、ディスク装置のデータの一部だけでなく、コントロールユニットの制御情報等も格納される。複数のコントロールユニットが実装されたディスクアレイ装置では、当該複数のコントロールユニットの間でキャッシュメモリの内容のすべて、もしくは一部を同じものにしておくことが必要となる場合がある。このため、あるコントロールユニット内のキャッシュメモリの内容が書き換えられた場合、コントロールユニット間で通信線（バス）を介して通信をし、その書き換えを別のコントロールユニット内のキャッシュメモリに反映させることでキャッシュメモリの内容を同じにする制御、いわゆるキャッシュ一致化制御（コヒーレンス制御）が行われることがある（例えば、特許文献１参照）。各コントロールユニットのキャッシュコントローラは、キャッシュ情報が、自身が有するキャッシュメモリに存在するか、他のコントロールユニット内のキャッシュメモリに存在するか、或いはディスク装置に存在するかを管理する情報（キャッシュメモリ管理情報）を有している。そこで、キャッシュコントローラは、このキャッシュ管理情報をもとに、キャッシュ一致化制御が必要か否かを判定する。
【０００４】
ディスクアレイ装置のコントロールユニットにおけるキャッシュメモリへのデータの書き込みは、データ転送回路（例えば、ホストインタフェース、ディスクインタフェース、或いはＣＰＵ）からキャッシュコントローラに対しての内部バスを介してのライト動作（データ転送動作）として実行される。もし、このライト動作でキャッシュコントローラに転送されたデータのキャッシュ一致化制御が必要な場合、当該キャッシュコントローラによるキャッシュメモリへのデータの書き込み（以下、第１のキャッシュデータ書き込みと称する）と、別のコントロールユニット内のキャッシュコントローラによるキャッシュメモリへのデータの書き込み（以下、第２のキャッシュデータ書き込みと称する）とが行われる。この場合、内部バスを介してのキャッシュコントローラへのライト動作が完了しても、その時点で上記第１及び第２のキャッシュデータ書き込みが完了しているとは限らない。
【０００５】
このため、上記第１及び第２のキャッシュデータ書き込みが完了するまで、データ転送回路（ホストインタフェース、ディスクインタフェース、或いはＣＰＵ）からキャッシュコントローラに対してのライト動作の完了を待たせる必要がある。この場合、内部バスを介してのデータ転送の完了が、当該データ転送に対応する上記第１及び第２のキャッシュデータ書き込みが完了するまで待たされることになり、内部バスの使用効率が悪くなる。そこで従来は、上記第１及び第２のキャッシュデータ書き込みの完了を待たずに、内部バスを介しての対応するライト動作（データ転送）を完了させる制御が多く用いられている。
【０００６】
【特許文献１】
特開２００２−１２３４７９号公報
【０００７】
【発明が解決しようとする課題】
上記したように、複数のコントロールユニットを備えたディスクアレイ装置では、あるコントロールユニット内で内部バスを介してキャッシュコントローラへのライト動作（データ転送）が発生した場合、当該コントロールユニットと別のコントロールユニットとの間でキャッシュメモリの内容を同じにするキャッシュ一致化制御が必要となることがある。そのためにはキャッシュコントローラは、キャッシュ一致化制御が必要か否かを、自身が有するキャッシュ管理情報をもとに判定しなければならない。
【０００８】
さて、上記キャッシュ一致化制御では、ライト動作が発生したコントロールユニット内のキャッシュメモリへの第１のキャッシュデータ書き込みと別のコントロールユニット内のキャッシュメモリへの第２のキャッシュデータ書き込みとが共に完了するまで、上記ライト動作の完了を待たせる第１の方法、または上記第１及び第２のキャッシュデータ書き込みの完了（つまりキャッシュ一致化制御の完了）を待たずに、上記ライト動作を完了せる第２の方法が従来から知られている。
【０００９】
しかし、上記第１の方法では、内部バスの使用効率が悪くなるという問題がある。これに対し、上記第２の方法では、内部バスの使用効率の低下を防止できるものの、内部バスを介してのライト動作を実行した回路（データ転送回路）が、上記第１及び第２のキャッシュデータ書き込みの完了を判断できないという問題がある。
【００１０】
本発明は上記事情を考慮してなされたものでその目的は、キャッシュ一致化制御の手順を簡略化でき、しかもデータ転送側では内部バスの使用効率を低下させることなくキャッシュ一致化制御の完了が確認できるディスクアレイ装置及び同装置に適用されるキャッシュ一致化制御方法を提供することにある。
【００１１】
【課題を解決するための手段】
本発明の１つの観点によれば、複数のディスク装置から構成されるディスクアレイと、このディスクアレイを制御する複数のコントロールユニットであって、少なくとも上記ディスクアレイの一部のデータが格納されるキャッシュメモリと、このキャッシュメモリを制御するキャッシュコントローラと、データの転送に用いられる内部バスと、この内部バスを介して上記キャッシュコントローラにデータを転送するデータ転送回路とを有する複数のコントロールユニットとを備えたディスクアレイ装置が提供される。このディスクアレイ装置において、上記各コントロールユニット内のキャッシュコントローラは、対応するコントロールユニット内のキャッシュメモリの領域のうち、当該コントロールユニットに固有の、キャッシュ一致化制御の対象となる領域を指定する一致化領域指定手段と、上記データ転送回路により転送されたデータを上記対応するコントロールユニット内のキャッシュメモリに書き込む制御を行うと共に、当該キャッシュメモリ内のデータの書き込み先が上記一致化領域指定手段により指定される固有の領域に属するか否かを判定する主コントローラと、上記キャッシュメモリ内のデータの書き込み先が上記固有の領域に属する場合、当該キャッシュメモリに書き込まれるデータを対応するライトアドレスと共に他のコントロールユニットに転送することにより、当該他のコントロールユニット内のキャッシュメモリへのデータ書き込みを行わせると共に、このデータ書き込みの完了の通知を当該他のコントロールユニットから受信するキャッシュ間通信コントローラと、上記キャッシュメモリ内のデータの書き込み先が上記固有の領域に属する場合、当該キャッシュメモリへのデータの書き込みが完了し、且つ当該データの上記他のコントロールユニット内のキャッシュメモリへの書き込みの完了の通知を受信した状態でのみ、上記データ転送回路にキャッシュ一致化制御完了を通知することが可能な完了通知回路とを備えている。
【００１２】
このような構成のディスクアレイ装置においては、キャッシュ一致化制御の対象となるキャッシュメモリ内の領域が、コントロールユニット毎に予め指定される。そして、指定されたキャッシュメモリ内の領域へのデータ書き込み（キャッシュライト）時に限り、そのデータ及び対応するライトアドレスが他のコントロールユニットに転送されて、当該他のコントロールユニット内のキャッシュメモリの同一アドレスに同一データが書き込まれる。これにより、複雑なキャッシュ一致化制御の手順を適用することなく、つまり簡単なキャッシュ一致化制御手順で、各コントローラ内のキャッシュメモリの一部の内容を一致化させることができる。
【００１３】
また、上記構成のディスクアレイ装置においては、上記他のコントロールユニットにデータ及びアドレスを転送して当該他のコントロールユニット内のキャッシュメモリの同一アドレスに同一データを書き込ませた結果、当該データ書き込みの完了の通知を当該他のコントロールユニットから受信した場合に、上記データ転送回路にキャッシュ一致化制御完了を通知することが可能となる。このため、データ転送回路からキャッシュコントローラへのデータ転送が完了した段階で、当該キャッシュコントローラからデータ転送回路にライト動作の完了を通知して内部バスを解放する方式を適用したとしても、データ転送回路はキャッシュ一致化制御の完了を正しく確認することができる。
【００１４】
【発明の実施の形態】
以下、本発明の実施の形態につき図面を参照して説明する。図１は本発明の一実施形態に係るディスクアレイ装置の構成を示すブロック図である。図１に示すように、ディスクアレイ装置１０はホストコンピュータ２０と接続されている。ディスクアレイ装置１０は、ディスクアレイ１１と、複数、例えば２つのコントロールユニット１２−１及び１２−２とから構成される。
【００１５】
ディスクアレイ１１は、複数のディスク装置（以下、ＨＤＤと称する）１１０から構成される。ディスクアレイ１１はホスト装置２０により１つのディスク（ディスク装置）として取り扱われることから、論理ディスクと呼ばれる。各ＨＤＤ１１０は、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）或いはファイバチャネル（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）等のインタフェースバス１３によりコントロールユニット１２−１及び１２−２と接続されている。コントロールユニット１２−１，１２−２は、それぞれ、ホストインタフェース（ホストＩ／Ｆ）１２１−１，１２１−２と、ＨＤＤインタフェース（ＨＤＤ  Ｉ／Ｆ）１２２−１，１２２−２と、ＣＰＵ１２３−１，１２３−２と、キャッシュメモリ１２４−１，１２４−２と、キャッシュコントローラ１２５−１，１２５−２と、内部バス１２６−１，１２６−２とから構成される。
【００１６】
ホストインタフェース１２１−ｉ（ｉは１または２）は、ホストコンピュータ２０とディスクアレイ装置１０内のコントロールユニット１２−ｉとの接続を制御する。即ちホストインタフェース１２１−ｉは、ホストコンピュータ２０とディスクアレイ装置１０内のコントロールユニット１２−ｉとの間のデータ転送（データ転送プロトコル）を制御する。ホストインタフェース１２１−ｉは、ディスクアレイ１１へのデータの書き込み要求をホストコンピュータ２０から受信した場合、当該要求で指定されたデータをキャッシュコントローラ１２５−ｉよりキャッシュメモリ１２４−ｉに書き込ませるために、当該データを内部バス１２６−ｉを介してキャッシュコントローラ１２５−ｉに転送するデータ転送回路としての機能を有する。またホストインタフェース１２１−ｉは、ディスクアレイ１１からのデータの読み出し要求をホストコンピュータ２０から受信した場合、当該要求で指定されたデータをキャッシュメモリ１２４−ｉから読み出してホストコンピュータ２０に送信するすための制御を行う。
【００１７】
ＨＤＤインタフェース１２２−ｉは、ディスクアレイ１１内のＨＤＤ１１０との間のデータ転送を制御する。即ちＨＤＤインタフェース１２２−ｉは、ＨＤＤ１１０へのデータの書き込み、及びＨＤＤ１１０からのデータの読み出しを制御する。ＨＤＤインタフェース１２２−ｉは、ＨＤＤ１１０から読み出されたデータを、キャッシュコントローラ１２５−ｉによりキャッシュメモリ１２４−ｉに書き込ませるために、内部バス１２６−ｉを介してキャッシュコントローラ１２５−ｉに転送するデータ転送回路としての機能を有する。ＣＰＵ１２３−ｉは、コントロールユニット１２−ｉ全体を制御する。ＣＰＵ１２３−ｉは、キャッシュコントローラ１２５−ｉによりキャッシュメモリ１２４−ｉにデータを書き込ませるために、当該データを内部バス１２６−ｉを介してキャッシュコントローラ１２５−ｉに転送するデータ転送回路としての機能を有する。
【００１８】
キャッシュメモリ１２４−ｉは、ディスクアレイ１１内の各ＨＤＤ１１０の一部のデータと、コントロールユニット１２−ｉの制御情報とを格納するのに用いられる。キャッシュコントローラ１２５−ｉは、ホストインタフェース（ホストＩ／Ｆ）１２１−ｉ、ＨＤＤインタフェース（ＨＤＤ  Ｉ／Ｆ）１２２−ｉ、またはＣＰＵ１２３−ｉからの要求に応じて、キャッシュメモリ１２４−ｉにデータを書き込むための制御を行う。キャッシュコントローラ１２５−ｉはまた、キャッシュメモリ１２４−ｉへのデータの書き込みに加えて、必要に応じて、そのデータを別のコントローラのキャッシュメモリに書き込む（転送する）ための制御（キャッシュ一致化制御）も行う。内部バス１２６−ｉは、コントロールユニット１２−ｉ内の、それぞれホストインタフェース１２１−ｉ、ＨＤＤインタフェース１２２−ｉ、ＣＰＵ１２３−ｉ及びキャッシュコントローラ１２５−ｉを相互接続する。内部バス１２６−ｉは、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス等の汎用バスである。
【００１９】
コントロールユニット１２−１及び１２−２内のキャッシュコントローラ１２５−１及び１２５−２は、キャッシュ間通信線１４により相互接続されている。このキャッシュ間通信線１４は、キャッシュコントローラ１２５−１及び１２５−２の間の通信に用いられる。更に具体的に述べるなら、キャッシュ間通信線１４はキャッシュコントローラ１２５−１，１２５−２が同じコントロールユニット１２−１，１２−２内のキャッシュメモリ１２４−１，１２４−２にデータを書き込む際に、そのデータを別のコントロールユニット１２−２，１２−２内のキャッシュメモリ１２４−２，１２４−１に書き込ませるのに用いられる。
【００２０】
図２は、図１中のキャッシュコントローラ１２５−１の構成をキャッシュコントローラ１２５−２と対応させて示すブロック図である。図２に示すように、キャッシュコントローラ１２５−１は、主コントローラ１２５ａと、レジスタ部１２５ｂと、キャッシュ間通信コントローラ１２５ｃとから構成される。
【００２１】
主コントローラ１２５ａは、キャッシュメモリ１２４−１を制御すると共に、キャッシュ間通信コントローラ１２５ｃを介してキャッシュコントローラ１２５−２も制御する。主コントローラ１２５ａは、キャッシュメモリ１２４−１との間で転送されるデータを一時格納するためのデータバッファ１２５ｄを含む。
【００２２】
レジスタ部１２５ｂは、３つのレジスタＲ１，Ｒ２及びＲ３を含む。レジスタＲ１は、キャッシュメモリ１２４−１，１２４−２の領域のうち、キャッシュコントローラ１２５−１によるキャッシュ一致化制御の対象となる領域Ａ１のスタートアドレスＳＡ１を保持するのに用いられる。領域Ａ１は、キャッシュコントローラ１２５−１に予め割り当てられている、当該コントローラ１２５−１に固有の領域である。なお、キャッシュコントローラ１２５−２には、キャッシュメモリ１２４−１，１２４−２の領域のうち、当該コントローラ１２５−２によるキャッシュ一致化制御の対象となる領域Ａ２が予め割り当てられている。レジスタＲ２は、上記領域Ａ１のサイズＳ１を保持するのに用いられる。レジスタＲ３は、キャッシュコントローラ１２５−１及び１２５−２による、それぞれキャッシュメモリ１２４−１及び１２４−２の領域Ａ１へのデータ書き込み中であることを示すフラグＦ１１及びＦ１２を保持するのに用いられる。なお、図では省略されているが、キャッシュコントローラ１２５−２も、キャッシュコントローラ１２５−１内の主コントローラ１２５ａ、レジスタ部１２５ｂ及びキャッシュ間通信コントローラ１２５ｃと同様の構成を有している。即ち、キャッシュコントローラ１２５−２内のレジスタ部には、キャッシュメモリ１２４−１，１２４−２の領域のうち、上記領域Ａ２のスタートアドレスＳＡ２、当該領域Ａ２のサイズＳ２及び、キャッシュコントローラ１２５−１及び１２５−２による、それぞれキャッシュメモリ１２４−１及び１２４−２の領域Ａ２へのデータ書き込み中であるか否かを示すフラグＦ２１及びＦ２２が保持される。
【００２３】
キャッシュ間通信コントローラ１２５ｃは、キャッシュコントローラ１２５−２（内のキャッシュ間通信コントローラ）と通信をすることにより、キャッシュコントローラ１２５−１内の主コントローラ１２５ａによってキャッシュメモリ１２４−１に書き込まれるのと同一のデータをキャッシュコントローラ１２５−２内のキャッシュメモリ１２４−２の同一アドレスに書き込ませる。キャッシュ間通信コントローラ１２５ｃはまた、キャッシュコントローラ１２５−２からキャッシュメモリ１２４−２へのデータ書き込みの完了が通知された場合に、それをレジスタＲ３内のフラグＦ１２に反映させる。キャッシュ間通信コントローラ１２５ｃはまた、キャッシュコントローラ１２５−２（内のキャッシュ間通信コントローラ）からキャッシュメモリ１２４−１へのデータの書き込みが要求されて、その要求されたデータの書き込みを完了した場合、そのデータ書き込み完了を当該キャッシュコントローラ１２５−２（内のキャッシュ間通信コントローラ）に通知する。
【００２４】
図３は、キャッシュメモリ１２４−１，１２４−２内の上記領域Ａ１及びＡ２と開始アドレスＳＡ１及びＳＡ２とサイズＳ１及びＳ２との関係を示す。本実施形態において、キャッシュメモリ１２４−１，１２４−２の領域は２等分して管理される。この２等分された領域の例えば前半部は領域Ａ１として定義され、後半部は領域Ａ２として定義される。つまり、領域Ａ１及びＡ２は重複していない。前記したように、領域Ａ１はキャッシュコントローラ１２５−１によるキャッシュ一致化制御が必要な領域であり、領域Ａ２はキャッシュコントローラ１２５−１によるキャッシュ一致化制御が必要な領域である。図３の例では、ＳＡ２はＳＡ１＋Ｓ１に一致する。また、Ｓ２はＳ１に一致する。
【００２５】
次に、本発明の一実施形態の動作を説明する。まず、コントロールユニット１２−１内のキャッシュコントローラ１２５−１によるキャッシュ一致化制御の対象となる領域の設定処理について、図４のフローチャートを参照して説明する。この領域設定処理は、コントロールユニット１２−１の初期化処理の中で次のように行われる。
【００２６】
コントロールユニット１２−１内のキャッシュコントローラ１２５−１に設けらた主コントローラ１２５ａは、レジスタ部１２５ａ内のレジスタＲ１に、キャッシュメモリ１２４−１及び１２４−２の領域のうち、当該コントローラ１２５−１によるキャッシュ一致化制御の対象となる領域Ａ１の開始アドレスＳＡ１を設定する（ステップ４０１）。次に主コントローラ１２５ａは、レジスタ部１２５ａ内のレジスタＲ２に領域Ａ１のサイズＳ１を設定する（ステップ４０２）。そして主コントローラ１２５ａは、レジスタ部１２５ａ内のレジスタＲ３に、レジスタＲ１，Ｒ２で示される、キャッシュメモリ１２４−１及び１２４−２の領域Ａ１へのデータ書き込みの実行中でない状態を示すフラグＦ１１及びＦ１２（例えばＦ１１＝Ｆ１２＝０）を設定する（ステップ４０３）。コントロールユニット１２−２内のキャッシュコントローラ１２５−２においても同様の領域設定処理が行われる。但し、キャッシュコントローラ１２５−２では、キャッシュメモリ１２４−１及び１２４−２の領域のうち、当該コントローラ１２５−２によるキャッシュ一致化制御の対象となる領域Ａ２の開始アドレスＳＡ２及びサイズＳ２と、キャッシュメモリ１２４−１及び１２４−２の領域Ａ２へのデータ書き込みの実行中でない状態を示すフラグＦ２１及びＦ２２（例えばＦ２１＝Ｆ２２＝０）が設定される。なお、図４に示す領域設定処理の順序は一例であり、上記ステップ４０１〜４０３がどのような順序で実行されても構わない。
【００２７】
次に、ホストコンピュータ２０からディスクアレイ装置１０内のコントロールユニット１２−１に対し、ディスクアレイ１１へのデータの書き込みが要求された場合の、キャッシュ一致化制御を含む動作について、図５のシーケンスチャートを参照して説明する。今、ホストコンピュータ２０からコントロールユニット１２−１内のホストインタフェース１２１−１に対し、ディスクアレイ１１へのデータの書き込みが要求されたものとする。この場合、ホストインタフェース１２１−１は、ホストコンピュータ２０から転送される書き込みデータを内部バス１２６−１を介してキャッシュコントローラ１２５−１に転送するデータ転送（ライト動作）を行う（５０１）。
【００２８】
するとキャッシュコントローラ１２５−１は、ホストインタフェース１２１−１によって内部バス１２６−１を介して転送される、ホストコンピュータ２０からの書き込みデータを、データバッファ１２５ｄに一時格納する（ステップ５０２）。そしてキャッシュコントローラ１２５−１は、ホストインタフェース１２１−１に対してライト動作の完了を内部バス１２６−１を介して通知する（ステップ５０３）。つまりキャッシュコントローラ１２５−１は、ホストコンピュータ２０からの書き込みデータを、データバッファ１２５ｄに一時格納し終えた時点で、ホストインタフェース１２１−１からのライト動作を完了させる。これにより内部バス１２６−１が解放される。
【００２９】
キャッシュコントローラ１２５−１内の主コントローラ１２５ａは、データバッファ１２５ｄに格納された書き込みデータを、同じコントロールユニット１２−１内のキャッシュメモリ１２４−１に書き込むための制御（キャッシュライト制御）を開始する（ステップ５０４）。まず主コントローラ１２５ａは、キャッシュメモリ１２４−１内のデータ書き込み先（キャッシュライトアクセス先）が、キャッシュ一致化制御の対象となる領域Ａ１に属しているかを判定する（ステップ５０５）。この判定は、キャッシュメモリ１２４−１内のライトアクセス先が、レジスタ部１２５ｂ内のレジスタＲ１により示される開始アドレスＳＡ１から始まる、当該レジスタ部１２５ｂ内のレジスタＲ２により示されるサイズの領域Ａ１に入っているかを調べることにより行われる。
【００３０】
もし、レジスタ部１２５ｂ内のレジスタＲ１及Ｒ２で示される領域Ａ１内へのライトアクセスの場合、主コントローラ１２５ａは、レジスタ部１２５ｂ内のレジスタＲ３に保持されているフラグＦ１１及びＦ１２を、キャッシュメモリ１２４−１及び１２４−２へのデータ書き込み（第１及び第２のキャッシュデータ書き込み）の実行中であることを示す“１”に設定する（ステップ５０６）。しかる後に主コントローラ１２５ａは、データバッファ１２５ｄに格納された書き込みデータをキャッシュメモリ１２４−１に書き込むキャッシュライト（第１のキャッシュデータ書き込み）を実行する（ステップ５０７）。同時に主コントローラ１２５ａは、別のコントロールユニット１２−２内のキャッシュコントローラ１２５−２に対し、この書き込みデータ（一致化のためのデータ）を、ライトアクセス先を示すキャッシュメモリアドレス（一致化アドレス）と共に、キャッシュ間通信コントローラ１２５ｃによりキャッシュ間通信線１４を介して転送させる（ステップ５０８）。これによりコントロールユニット１２−２では、キャッシュメモリ１２４−２内の指定領域へのライトアクセス（第２のキャッシュデータ書き込み）がキャッシュコントローラ１２５−２（内の主コントローラ）によって行われる（ステップ５０９）。つまりコントロールユニット１２−１及び１２−２では、キャッシュメモリ１２４−１及び１２４−２内の同一アドレスに同一データを書き込む動作が並行して行われる。
【００３１】
キャッシュコントローラ１２５−２（内の主コントローラ）は、キャッシュ間通信線１４を介して転送されたデータのキャッシュメモリ１２４−２への書き込みを完了すると、データ書き込み完了を、（当該コントローラ１２５−２内のキャッシュ間通信コントローラにより）キャッシュ間通信線１４を介してキャッシュコントローラ１２５−１に通知する。
【００３２】
キャッシュコントローラ１２５−１（内の主コントローラ１２５ａ）は、キャッシュメモリ１２４−１の領域Ａ１内へのデータ書き込みを完了すると、レジスタＲ３に保持されているフラグＦ１１を、データ書き込みの実行中でないことを示す“０”に切り換える（ステップ５１０）。同様に、キャッシュコントローラ１２５−２（内の図示せぬ主コントローラ）は、キャッシュメモリ１２４−２内の領域Ａ１へのデータ書き込みを完了すると、当該コントローラ１２５−２（内の図示せぬキャッシュ間通信コントローラ）からキャッシュ間通信線１４を介して、キャッシュコントローラ１２５−１内のキャッシュ間通信コントローラ１２５ｃにデータ書き込みの完了を通知する（ステップ５１１）。キャッシュ間通信コントローラ１２５ｃは、この完了通知（ステップ５１１）に応じ、キャッシュコントローラ１２５−１内のレジスタＲ３に保持されているフラグＦ１２を、データ書き込みの実行中でないことを示す“０”に切り換える（ステップ５１２）。
【００３３】
このように、ホストインタフェース１２１−１から内部バス１２６−１を介してキャッシュコントローラ１２５−１へのライト動作（データ転送）が行われ、そのライト動作に応じて実行されるコントロールユニット１２−１及び１２−２内のキャッシュメモリ１２４−１及び１２４−２の領域Ａ１へのライト動作（キャッシュライト）がそれぞれ完了した場合、キャッシュコントローラ１２５−１内のレジスタＲ３に保持されているフラグＦ１１及びＦ１２はそれぞれ“０”となる。
【００３４】
ホストインタフェース１２１−１は、自身が実行したライト動作（データ転送）に応じて実行されるキャッシュライトアクセスが完了したか否かを確認したい場合、キャッシュコントローラ１２５−１に対してキャッシュライト完了確認要求を送出する（ステップ５１３）。キャッシュコントローラ１２５−１内の主コントローラ１２５ａは、ホストインタフェース１２１−１からキャッシュライト完了確認要求が送られた場合、レジスタＲ３に保持されているフラグＦ１１及びＦ１２のＯＲ（論理和）をとり、そのＯＲ結果を表すフラグＦ１（＝Ｆ１１＋Ｆ１２）をキャッシュライト完了確認要求元のホストインタフェース１２１−１に通知する（ステップ５１４）。
【００３５】
ホストインタフェース１２１−１は、キャッシュコントローラ１２５−１内の主コントローラ１２５ａから返されたフラグＦ１（＝Ｆ１１＋Ｆ１２）の状態をもとに、自身が実行したライト動作に応じて実行されるキャッシュライトアクセスが完了したか否かを確認する。即ちホストインタフェース１２１−１は、フラグＦ１が“０”であるならばキャッシュライトアクセス完了を確認し、“１”であるならばキャッシュライトアクセス未完了を確認する。
【００３６】
今、キャッシュコントローラ１２５−１内の主コントローラ１２５ａによるキャッシュ一致化制御が行われた際に、ホストインタフェース１２１−１からのキャッシュライト完了確認要求に応じて当該主コントローラ１２５ａからホストインタフェース１２１−１に返されたフラグＦ１が“０”であるものとする。この場合、レジスタＲ１内のフラグＦ１１及びＦ１２は共に“０”であり、したがってキャッシュコントローラ１２５−１及び１２５−２の双方でキャッシュライトアクセスが完了している、つまりキャッシュ一致化制御が完了していることになる。これに対し、ホストインタフェース１２１−１に返されたフラグＦ１が“１”である場合、レジスタＲ１内のフラグＦ１１及びＦ１２の少なくとも一方が“１”であり、したがってキャッシュコントローラ１２５−１及び１２５−２の少なくとも一方ではキャッシュライトアクセスが完了していない、つまりキャッシュ一致化制御が完了していないことになる。
【００３７】
このように本実施形態では、ホストインタフェース１２１−１によるキャッシュコントローラ１２５−１へのライト動作が完了した段階で、キャッシュコントローラ１２５−１からホストインタフェース１２１−１にライト動作完了を通知して内部バス１２６−１を解放することにより、当該内部バス１２６−１の使用効率の低下を防止できる。しかも本実施形態では、ホストインタフェース１２１−１によるキャッシュコントローラ１２５−１へのライト動作が完了した段階で内部バス１２６−１を解放しても、当該ライト動作に伴うキャッシュライトが完了しているか否かをキャッシュコントローラ１２５−１から当該ホストインタフェース１２１−１に通知できる。即ち本実施形態においては、内部バス１２６−１の使用効率の低下を招くことなく、キャッシュコントローラ１２５−１からホストインタフェース１２１−１に対し、キャッシュライトの完了（例えば、キャッシュ一致化制御の完了）を確認するのに必要な情報を通知できる。
【００３８】
次に、上記ステップ５０５で、レジスタ部１２５ｂ内のレジスタＲ１及Ｒ２で示される領域Ａ１とは異なる領域、つまり領域Ａ２へのライトアクセスが判定された場合の動作を説明する。この場合、キャッシュコントローラ１２５−１内の主コントローラ１２５ａは、キャッシュ一致化制御は不要であると判断し、レジスタ部１２５ｂ内のレジスタＲ３に保持されているフラグＦ１１及びＦ１２のうちＦ１１のみを、キャッシュメモリ１２４−１へのデータ書き込みの実行中であることを示す“１”に設定する（ステップ５１５）。このときフラグＦ１２は“０”のままである。次に主コントローラ１２５ａは、データバッファ１２５ｄに格納された書き込みデータをキャッシュコントローラ１２５−１に書き込むキャッシュライトを実行する（ステップ５１６）。主コントローラ１２５ａは、このキャッシュライトを完了すると、レジスタＲ１内のフラグＦ１１を“０”に切り換える（ステップ５１７）。これにより、その後、ホストインタフェース１２１−１からキャッシュコントローラ１２５−１に対してキャッシュライト確認が要求された場合（ステップ５１３）、当該ホストインタフェース１２１−ｉにキャッシュライト完了を示すフラグＦ１＝Ｆ１１＋Ｆ１２＝０が返される（ステップ５１４）。
【００３９】
上記したように実施形態においては、ホストコンピュータ２０からの要求に応じてキャッシュコントローラ１２５−１へのライト動作を行ったホストインタフェース１２１−１は、当該コントローラ１２５−１からライト動作完了通知を受け取った後、当該コントローラ１２５−１に対してキャッシュライト完了確認を要求することにより、キャッシュライトが完了しているか否かを確認できる。但し、キャッシュ一致化制御を必要とするキャッシュライトの完了であるか、或いはキャッシュ一致化制御を必要としないキャッシュライトの完了であるか、つまりキャッシュメモリ１２４−１及び１２４−２の双方へのキャッシュライト（第１及び第２のキャッシュデータ書き込み）の完了（キャッシュ一致化制御の完了）であるか、或いはキャッシュメモリ１２４−１のみへのキャッシュライトの完了であるかは確認できない。
【００４０】
そこで、キャッシュコントローラ１２５−１からホストインタフェース１２１−１へのフラグＦ１の通知に際し、当該フラグＦ１にキャッシュ一致化制御の有無を示すフラグを付加するようにしてもよい。また、ホストインタフェース１２１−１からの要求に応じてフラグＦ１を返す代わりに、キャッシュライト完了時にキャッシュコントローラ１２５−１（内の主コントローラ１２５ａ）からホストインタフェース１２１−１に当該キャッシュライト完了が自動的に通知される構成としてもよい。つまり、フラグＦ１１の方が先に“０”に変化するものとすると、フラグＦ１２が“１”から“０”に変化するタイミングで、割り込み信号を用いた通知方法、或いはそれ以外の通知方法により、キャッシュライトの完了がキャッシュコントローラ１２５−１からホストインタフェース１２１−ｉに通知される構成とすればよい。なお、フラグＦ１１の方が後から“０”に変化する場合がある得るならば、フラグＦ１１及びＦ１２のうち一方が“０”となっている状態で他方が“０”に変化するタイミングで、キャッシュライトの完了がキャッシュコントローラ１２５−１からホストインタフェース１２１−ｉに通知される構成としてもよい。
【００４１】
上記実施形態では、ホストインタフェース１２１−１によるキャッシュメモリ１２４−１へのライト動作（データ転送）に応じてキャッシュ一致化制御が行われる場合を例に説明した。この種のキャッシュ一致化制御は、ＨＤＤインタフェース１２２−１、或いはＣＰＵ１２３−１によるキャッシュメモリ１２４−１へのライト動作（データ転送）の場合にも、キャッシュライトアクセス先が領域Ａ１に属しているならば同様に行われる。
【００４２】
また、内部バス１２６−１を介してのキャッシュコントローラ１２５−１へのライト動作が続く場合を考慮して、アクセス毎に上記Ｆ１１及びＦ１２に相当するフラグを設けるならば、キャッシュライトの完了を、ライト動作を実行した回路にアクセス毎に通知することができる。また、Ｆ１１及びＦ１２として、上記新たなキャッシュライトが開始される毎に例えば１インクリメントされ、キャッシュライトが完了する毎に１デクリメントされるフラグを用い、両フラグが共に“０”となったことをもって、全てのキャッシュライトの完了を判定することも可能である。
【００４３】
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【００４４】
【発明の効果】
以上詳述したように本発明によれば、キャッシュ一致化制御の対象となるキャッシュメモリ内の領域が、コントロールユニット毎に予め指定され、その指定されたキャッシュメモリ内の領域へのデータ書き込み時に限り、そのデータ及び対応するライトアドレスが他のコントロールユニットに転送されて、各コントロールユニット内のキャッシュメモリの一部の内容の一致化が図られるようにしたので、各コントロールユニット内のキャッシュメモリの一部の内容を一致化させるキャッシュ一致化制御の手順を簡略化できる。また、本発明によれば、各コントロールユニット内のキャッシュメモリの同一アドレスに同一データを書き込み終えたこと、つまりキャッシュ一致化制御の完了をデータ転送回路に通知可能なため、データ転送回路からキャッシュコントローラへのデータ転送が完了した段階で、当該キャッシュコントローラからデータ転送回路にライト動作の完了を通知して内部バスを解放する方式、つまり内部バスの使用効率を低下させない方式を適用したとしても、データ転送回路側ではキャッシュ一致化制御の完了を正しく確認できる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係るディスクアレイ装置の構成を示すブロック図。
【図２】図１中のキャッシュコントローラ１２５−１の構成をキャッシュコントローラ１２５−２と対応させて示すブロック図。
【図３】キャッシュメモリ１２４−１，１２４−２内の領域Ａ１及びＡ２と開始アドレスＳＡ１及びＳＡ２とサイズＳ１及びＳ２との関係を示す図。
【図４】同実施形態における領域設定処理を説明するためのフローチャート。
【図５】同実施形態におけるキャッシュ一致化制御を含む動作を説明するためのシーケンスチャート。
【符号の説明】
１０…ディスクアレイ装置、１１…ディスクアレイ、１２−１，１２−２…コントロールユニット、２０…ホストコンピュータ、１１０…ＨＤＤ（ディスク装置）、１２１−１，１２１−２…ホストインタフェース（ホストＩ／Ｆ、データ転送回路）、１２２−１，１２２−２…ＨＤＤインタフェース（ＨＤＤ  Ｉ／Ｆ、データ転送回路）、１２３−１，１２３−２…ＣＰＵ（データ転送回路）、１２４−１，１２４−２…キャッシュメモリ、１２５−１，１２５−２…キャッシュコントローラ、１２５ａ…主コントローラ（完了通知回路）、１２５ｂ…レジスタ部、１２５ｃ…キャッシュ間通信コントローラ、１２５ｄ…データバッファ、１２６−１，１２６−２…内部バス、Ｒ１，Ｒ２…レジスタ（一致化領域指定手段）、Ｒ３…レジスタ（フラグ情報保持手段）。
【図１】
2004355039.tif 000003
【図２】
2004355039.tif 000004
【図３】
2004355039.tif 000005
【図４】
2004355039.tif 000006
【図５】
2004355039.tif 000007