JP3940701B2 - ディスクアレイ装置及び同装置に適用されるキャッシュ一致化制御方法 - Google Patents
ディスクアレイ装置及び同装置に適用されるキャッシュ一致化制御方法 Download PDFInfo
- Publication number
- JP3940701B2 JP3940701B2 JP2003148230A JP2003148230A JP3940701B2 JP 3940701 B2 JP3940701 B2 JP 3940701B2 JP 2003148230 A JP2003148230 A JP 2003148230A JP 2003148230 A JP2003148230 A JP 2003148230A JP 3940701 B2 JP3940701 B2 JP 3940701B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- data
- controller
- completion
- write
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Description
【発明の属する技術分野】
本発明は、キャッシュメモリを有し、ディスクアレイを制御する複数のコントロールユニットを備えたディスクアレイ装置に係り、特に当該各コントロールユニット内のキャッシュメモリの一部の領域の内容を一致化させるのに好適なディスクアレイ装置及び同装置に適用されるキャッシュ一致化制御方法に関する。
【0002】
【従来の技術】
大容量ストレージ装置として、複数のディスク装置から構成されるディスクアレイ(論理ディスク)を備えたディスクアレイ装置が知られている。ディスクアレイ装置は、ディスク装置へのデータの書き込み、ディスク装置からのデータの読み出しを制御するコントロールユニット(ディスクアレイ制御装置)を備えている。コントロールユニットは、ディスク装置のデータの一部を格納するキャッシュメモリと、当該キャッシュメモリを制御するキャッシュコントローラとを含んでいるのが一般的である。キャッシュメモリは、ディスク装置を対象とするデータの読み書きよりも高速にデータの読み書きを制御するために用いられる。また、最近は、コントロールユニットが故障した場合に備えて、コントロールユニットを複数実装し、ディスクアレイ装置としての信頼性を向上させる構成が、多くのディスクアレイ装置で採用されている。
【0003】
キャッシュメモリには、ディスク装置のデータの一部だけでなく、コントロールユニットの制御情報等も格納される。複数のコントロールユニットが実装されたディスクアレイ装置では、当該複数のコントロールユニットの間でキャッシュメモリの内容のすべて、もしくは一部を同じものにしておくことが必要となる場合がある。このため、あるコントロールユニット内のキャッシュメモリの内容が書き換えられた場合、コントロールユニット間で通信線(バス)を介して通信をし、その書き換えを別のコントロールユニット内のキャッシュメモリに反映させることでキャッシュメモリの内容を同じにする制御、いわゆるキャッシュ一致化制御(コヒーレンス制御)が行われることがある(例えば、特許文献1参照)。各コントロールユニットのキャッシュコントローラは、キャッシュ情報が、自身が有するキャッシュメモリに存在するか、他のコントロールユニット内のキャッシュメモリに存在するか、或いはディスク装置に存在するかを管理する情報(キャッシュメモリ管理情報)を有している。そこで、キャッシュコントローラは、このキャッシュ管理情報をもとに、キャッシュ一致化制御が必要か否かを判定する。
【0004】
ディスクアレイ装置のコントロールユニットにおけるキャッシュメモリへのデータの書き込みは、データ転送回路(例えば、ホストインタフェース、ディスクインタフェース、或いはCPU)からキャッシュコントローラに対しての内部バスを介してのライト動作(データ転送動作)として実行される。もし、このライト動作でキャッシュコントローラに転送されたデータのキャッシュ一致化制御が必要な場合、当該キャッシュコントローラによるキャッシュメモリへのデータの書き込み(以下、第1のキャッシュデータ書き込みと称する)と、別のコントロールユニット内のキャッシュコントローラによるキャッシュメモリへのデータの書き込み(以下、第2のキャッシュデータ書き込みと称する)とが行われる。この場合、内部バスを介してのキャッシュコントローラへのライト動作が完了しても、その時点で上記第1及び第2のキャッシュデータ書き込みが完了しているとは限らない。
【0005】
このため、上記第1及び第2のキャッシュデータ書き込みが完了するまで、データ転送回路(ホストインタフェース、ディスクインタフェース、或いはCPU)からキャッシュコントローラに対してのライト動作の完了を待たせる必要がある。この場合、内部バスを介してのデータ転送の完了が、当該データ転送に対応する上記第1及び第2のキャッシュデータ書き込みが完了するまで待たされることになり、内部バスの使用効率が悪くなる。そこで従来は、上記第1及び第2のキャッシュデータ書き込みの完了を待たずに、内部バスを介しての対応するライト動作(データ転送)を完了させる制御が多く用いられている。
【0006】
【特許文献1】
特開2002−123479号公報
【0007】
【発明が解決しようとする課題】
上記したように、複数のコントロールユニットを備えたディスクアレイ装置では、あるコントロールユニット内で内部バスを介してキャッシュコントローラへのライト動作(データ転送)が発生した場合、当該コントロールユニットと別のコントロールユニットとの間でキャッシュメモリの内容を同じにするキャッシュ一致化制御が必要となることがある。そのためにはキャッシュコントローラは、キャッシュ一致化制御が必要か否かを、自身が有するキャッシュ管理情報をもとに判定しなければならない。
【0008】
さて、上記キャッシュ一致化制御では、ライト動作が発生したコントロールユニット内のキャッシュメモリへの第1のキャッシュデータ書き込みと別のコントロールユニット内のキャッシュメモリへの第2のキャッシュデータ書き込みとが共に完了するまで、上記ライト動作の完了を待たせる第1の方法、または上記第1及び第2のキャッシュデータ書き込みの完了(つまりキャッシュ一致化制御の完了)を待たずに、上記ライト動作を完了せる第2の方法が従来から知られている。
【0009】
しかし、上記第1の方法では、内部バスの使用効率が悪くなるという問題がある。これに対し、上記第2の方法では、内部バスの使用効率の低下を防止できるものの、内部バスを介してのライト動作を実行した回路(データ転送回路)が、上記第1及び第2のキャッシュデータ書き込みの完了を判断できないという問題がある。
【0010】
本発明は上記事情を考慮してなされたものでその目的は、キャッシュ一致化制御の手順を簡略化でき、しかもデータ転送側では内部バスの使用効率を低下させることなくキャッシュ一致化制御の完了が確認できるディスクアレイ装置及び同装置に適用されるキャッシュ一致化制御方法を提供することにある。
【0011】
【課題を解決するための手段】
本発明の1つの観点によれば、複数のディスク装置から構成されるディスクアレイと、このディスクアレイを制御する複数のコントロールユニットであって、少なくとも上記ディスクアレイの一部のデータが格納されるキャッシュメモリと、このキャッシュメモリを制御するキャッシュコントローラと、データの転送に用いられる内部バスと、この内部バスを介して上記キャッシュコントローラにデータを転送するデータ転送回路とを有する複数のコントロールユニットとを備えたディスクアレイ装置が提供される。このディスクアレイ装置において、上記各コントロールユニット内のキャッシュコントローラは、対応するコントロールユニット内のキャッシュメモリの領域のうち、当該コントロールユニットに固有の、キャッシュ一致化制御の対象となる領域を指定する一致化領域指定手段と、上記データ転送回路により転送されたデータを上記対応するコントロールユニット内のキャッシュメモリに書き込む制御を行うと共に、当該キャッシュメモリ内のデータの書き込み先が上記一致化領域指定手段により指定される固有の領域に属するか否かを判定する主コントローラと、上記キャッシュメモリ内のデータの書き込み先が上記固有の領域に属する場合、当該キャッシュメモリに書き込まれるデータを対応するライトアドレスと共に他のコントロールユニットに転送することにより、当該他のコントロールユニット内のキャッシュメモリへのデータ書き込みを行わせると共に、このデータ書き込みの完了の通知を当該他のコントロールユニットから受信するキャッシュ間通信コントローラと、上記キャッシュメモリ内のデータの書き込み先が上記固有の領域に属する場合、当該キャッシュメモリへのデータの書き込みが完了し、且つ当該データの上記他のコントロールユニット内のキャッシュメモリへの書き込みの完了の通知を受信した状態でのみ、上記データ転送回路にキャッシュ一致化制御完了を通知することが可能な完了通知回路とを備えている。
【0012】
このような構成のディスクアレイ装置においては、キャッシュ一致化制御の対象となるキャッシュメモリ内の領域が、コントロールユニット毎に予め指定される。そして、指定されたキャッシュメモリ内の領域へのデータ書き込み(キャッシュライト)時に限り、そのデータ及び対応するライトアドレスが他のコントロールユニットに転送されて、当該他のコントロールユニット内のキャッシュメモリの同一アドレスに同一データが書き込まれる。これにより、複雑なキャッシュ一致化制御の手順を適用することなく、つまり簡単なキャッシュ一致化制御手順で、各コントローラ内のキャッシュメモリの一部の内容を一致化させることができる。
【0013】
また、上記構成のディスクアレイ装置においては、上記他のコントロールユニットにデータ及びアドレスを転送して当該他のコントロールユニット内のキャッシュメモリの同一アドレスに同一データを書き込ませた結果、当該データ書き込みの完了の通知を当該他のコントロールユニットから受信した場合に、上記データ転送回路にキャッシュ一致化制御完了を通知することが可能となる。このため、データ転送回路からキャッシュコントローラへのデータ転送が完了した段階で、当該キャッシュコントローラからデータ転送回路にライト動作の完了を通知して内部バスを解放する方式を適用したとしても、データ転送回路はキャッシュ一致化制御の完了を正しく確認することができる。
【0014】
【発明の実施の形態】
以下、本発明の実施の形態につき図面を参照して説明する。図1は本発明の一実施形態に係るディスクアレイ装置の構成を示すブロック図である。図1に示すように、ディスクアレイ装置10はホストコンピュータ20と接続されている。ディスクアレイ装置10は、ディスクアレイ11と、複数、例えば2つのコントロールユニット12-1及び12-2とから構成される。
【0015】
ディスクアレイ11は、複数のディスク装置(以下、HDDと称する)110から構成される。ディスクアレイ11はホスト装置20により1つのディスク(ディスク装置)として取り扱われることから、論理ディスクと呼ばれる。各HDD110は、SCSI(Small Computer System Interface)或いはファイバチャネル(Fibre Channel)等のインタフェースバス13によりコントロールユニット12-1及び12-2と接続されている。コントロールユニット12-1,12-2は、それぞれ、ホストインタフェース(ホストI/F)121-1,121-2と、HDDインタフェース(HDD I/F)122-1,122-2と、CPU123-1,123-2と、キャッシュメモリ124-1,124-2と、キャッシュコントローラ125-1,125-2と、内部バス126-1,126-2とから構成される。
【0016】
ホストインタフェース121-i(iは1または2)は、ホストコンピュータ20とディスクアレイ装置10内のコントロールユニット12-iとの接続を制御する。即ちホストインタフェース121-iは、ホストコンピュータ20とディスクアレイ装置10内のコントロールユニット12-iとの間のデータ転送(データ転送プロトコル)を制御する。ホストインタフェース121-iは、ディスクアレイ11へのデータの書き込み要求をホストコンピュータ20から受信した場合、当該要求で指定されたデータをキャッシュコントローラ125-iよりキャッシュメモリ124-iに書き込ませるために、当該データを内部バス126-iを介してキャッシュコントローラ125-iに転送するデータ転送回路としての機能を有する。またホストインタフェース121-iは、ディスクアレイ11からのデータの読み出し要求をホストコンピュータ20から受信した場合、当該要求で指定されたデータをキャッシュメモリ124-iから読み出してホストコンピュータ20に送信するすための制御を行う。
【0017】
HDDインタフェース122-iは、ディスクアレイ11内のHDD110との間のデータ転送を制御する。即ちHDDインタフェース122-iは、HDD110へのデータの書き込み、及びHDD110からのデータの読み出しを制御する。HDDインタフェース122-iは、HDD110から読み出されたデータを、キャッシュコントローラ125-iによりキャッシュメモリ124-iに書き込ませるために、内部バス126-iを介してキャッシュコントローラ125-iに転送するデータ転送回路としての機能を有する。CPU123-iは、コントロールユニット12-i全体を制御する。CPU123-iは、キャッシュコントローラ125-iによりキャッシュメモリ124-iにデータを書き込ませるために、当該データを内部バス126-iを介してキャッシュコントローラ125-iに転送するデータ転送回路としての機能を有する。
【0018】
キャッシュメモリ124-iは、ディスクアレイ11内の各HDD110の一部のデータと、コントロールユニット12-iの制御情報とを格納するのに用いられる。キャッシュコントローラ125-iは、ホストインタフェース(ホストI/F)121-i、HDDインタフェース(HDD I/F)122-i、またはCPU123-iからの要求に応じて、キャッシュメモリ124-iにデータを書き込むための制御を行う。キャッシュコントローラ125-iはまた、キャッシュメモリ124-iへのデータの書き込みに加えて、必要に応じて、そのデータを別のコントローラのキャッシュメモリに書き込む(転送する)ための制御(キャッシュ一致化制御)も行う。内部バス126-iは、コントロールユニット12-i内の、それぞれホストインタフェース121-i、HDDインタフェース122-i、CPU123-i及びキャッシュコントローラ125-iを相互接続する。内部バス126-iは、PCI(Peripheral Component Interconnect)バス等の汎用バスである。
【0019】
コントロールユニット12-1及び12-2内のキャッシュコントローラ125-1及び125-2は、キャッシュ間通信線14により相互接続されている。このキャッシュ間通信線14は、キャッシュコントローラ125-1及び125-2の間の通信に用いられる。更に具体的に述べるなら、キャッシュ間通信線14はキャッシュコントローラ125-1,125-2が同じコントロールユニット12-1,12-2内のキャッシュメモリ124-1,124-2にデータを書き込む際に、そのデータを別のコントロールユニット12-2,12-2内のキャッシュメモリ124-2,124-1に書き込ませるのに用いられる。
【0020】
図2は、図1中のキャッシュコントローラ125-1の構成をキャッシュコントローラ125-2と対応させて示すブロック図である。図2に示すように、キャッシュコントローラ125-1は、主コントローラ125aと、レジスタ部125bと、キャッシュ間通信コントローラ125cとから構成される。
【0021】
主コントローラ125aは、キャッシュメモリ124-1を制御すると共に、キャッシュ間通信コントローラ125cを介してキャッシュコントローラ125-2も制御する。主コントローラ125aは、キャッシュメモリ124-1との間で転送されるデータを一時格納するためのデータバッファ125dを含む。
【0022】
レジスタ部125bは、3つのレジスタR1,R2及びR3を含む。レジスタR1は、キャッシュメモリ124-1,124-2の領域のうち、キャッシュコントローラ125-1によるキャッシュ一致化制御の対象となる領域A1のスタートアドレスSA1を保持するのに用いられる。領域A1は、キャッシュコントローラ125-1に予め割り当てられている、当該コントローラ125-1に固有の領域である。なお、キャッシュコントローラ125-2には、キャッシュメモリ124-1,124-2の領域のうち、当該コントローラ125-2によるキャッシュ一致化制御の対象となる領域A2が予め割り当てられている。レジスタR2は、上記領域A1のサイズS1を保持するのに用いられる。レジスタR3は、キャッシュコントローラ125-1及び125-2による、それぞれキャッシュメモリ124-1及び124-2の領域A1へのデータ書き込み中であることを示すフラグF11及びF12を保持するのに用いられる。なお、図では省略されているが、キャッシュコントローラ125-2も、キャッシュコントローラ125-1内の主コントローラ125a、レジスタ部125b及びキャッシュ間通信コントローラ125cと同様の構成を有している。即ち、キャッシュコントローラ125-2内のレジスタ部には、キャッシュメモリ124-1,124-2の領域のうち、上記領域A2のスタートアドレスSA2、当該領域A2のサイズS2及び、キャッシュコントローラ125-1及び125-2による、それぞれキャッシュメモリ124-1及び124-2の領域A2へのデータ書き込み中であるか否かを示すフラグF21及びF22が保持される。
【0023】
キャッシュ間通信コントローラ125cは、キャッシュコントローラ125-2(内のキャッシュ間通信コントローラ)と通信をすることにより、キャッシュコントローラ125-1内の主コントローラ125aによってキャッシュメモリ124-1に書き込まれるのと同一のデータをキャッシュコントローラ125-2内のキャッシュメモリ124-2の同一アドレスに書き込ませる。キャッシュ間通信コントローラ125cはまた、キャッシュコントローラ125-2からキャッシュメモリ124-2へのデータ書き込みの完了が通知された場合に、それをレジスタR3内のフラグF12に反映させる。キャッシュ間通信コントローラ125cはまた、キャッシュコントローラ125-2(内のキャッシュ間通信コントローラ)からキャッシュメモリ124-1へのデータの書き込みが要求されて、その要求されたデータの書き込みを完了した場合、そのデータ書き込み完了を当該キャッシュコントローラ125-2(内のキャッシュ間通信コントローラ)に通知する。
【0024】
図3は、キャッシュメモリ124-1,124-2内の上記領域A1及びA2と開始アドレスSA1及びSA2とサイズS1及びS2との関係を示す。本実施形態において、キャッシュメモリ124-1,124-2の領域は2等分して管理される。この2等分された領域の例えば前半部は領域A1として定義され、後半部は領域A2として定義される。つまり、領域A1及びA2は重複していない。前記したように、領域A1はキャッシュコントローラ125-1によるキャッシュ一致化制御が必要な領域であり、領域A2はキャッシュコントローラ125-1によるキャッシュ一致化制御が必要な領域である。図3の例では、SA2はSA1+S1に一致する。また、S2はS1に一致する。
【0025】
次に、本発明の一実施形態の動作を説明する。まず、コントロールユニット12-1内のキャッシュコントローラ125-1によるキャッシュ一致化制御の対象となる領域の設定処理について、図4のフローチャートを参照して説明する。この領域設定処理は、コントロールユニット12-1の初期化処理の中で次のように行われる。
【0026】
コントロールユニット12-1内のキャッシュコントローラ125-1に設けらた主コントローラ125aは、レジスタ部125a内のレジスタR1に、キャッシュメモリ124-1及び124-2の領域のうち、当該コントローラ125-1によるキャッシュ一致化制御の対象となる領域A1の開始アドレスSA1を設定する(ステップ401)。次に主コントローラ125aは、レジスタ部125a内のレジスタR2に領域A1のサイズS1を設定する(ステップ402)。そして主コントローラ125aは、レジスタ部125a内のレジスタR3に、レジスタR1,R2で示される、キャッシュメモリ124-1及び124-2の領域A1へのデータ書き込みの実行中でない状態を示すフラグF11及びF12(例えばF11=F12=0)を設定する(ステップ403)。コントロールユニット12-2内のキャッシュコントローラ125-2においても同様の領域設定処理が行われる。但し、キャッシュコントローラ125-2では、キャッシュメモリ124-1及び124-2の領域のうち、当該コントローラ125-2によるキャッシュ一致化制御の対象となる領域A2の開始アドレスSA2及びサイズS2と、キャッシュメモリ124-1及び124-2の領域A2へのデータ書き込みの実行中でない状態を示すフラグF21及びF22(例えばF21=F22=0)が設定される。なお、図4に示す領域設定処理の順序は一例であり、上記ステップ401〜403がどのような順序で実行されても構わない。
【0027】
次に、ホストコンピュータ20からディスクアレイ装置10内のコントロールユニット12-1に対し、ディスクアレイ11へのデータの書き込みが要求された場合の、キャッシュ一致化制御を含む動作について、図5のシーケンスチャートを参照して説明する。今、ホストコンピュータ20からコントロールユニット12-1内のホストインタフェース121-1に対し、ディスクアレイ11へのデータの書き込みが要求されたものとする。この場合、ホストインタフェース121-1は、ホストコンピュータ20から転送される書き込みデータを内部バス126-1を介してキャッシュコントローラ125-1に転送するデータ転送(ライト動作)を行う(501)。
【0028】
するとキャッシュコントローラ125-1は、ホストインタフェース121-1によって内部バス126-1を介して転送される、ホストコンピュータ20からの書き込みデータを、データバッファ125dに一時格納する(ステップ502)。そしてキャッシュコントローラ125-1は、ホストインタフェース121-1に対してライト動作の完了を内部バス126-1を介して通知する(ステップ503)。つまりキャッシュコントローラ125-1は、ホストコンピュータ20からの書き込みデータを、データバッファ125dに一時格納し終えた時点で、ホストインタフェース121-1からのライト動作を完了させる。これにより内部バス126-1が解放される。
【0029】
キャッシュコントローラ125-1内の主コントローラ125aは、データバッファ125dに格納された書き込みデータを、同じコントロールユニット12-1内のキャッシュメモリ124-1に書き込むための制御(キャッシュライト制御)を開始する(ステップ504)。まず主コントローラ125aは、キャッシュメモリ124-1内のデータ書き込み先(キャッシュライトアクセス先)が、キャッシュ一致化制御の対象となる領域A1に属しているかを判定する(ステップ505)。この判定は、キャッシュメモリ124-1内のライトアクセス先が、レジスタ部125b内のレジスタR1により示される開始アドレスSA1から始まる、当該レジスタ部125b内のレジスタR2により示されるサイズの領域A1に入っているかを調べることにより行われる。
【0030】
もし、レジスタ部125b内のレジスタR1及R2で示される領域A1内へのライトアクセスの場合、主コントローラ125aは、レジスタ部125b内のレジスタR3に保持されているフラグF11及びF12を、キャッシュメモリ124-1及び124-2へのデータ書き込み(第1及び第2のキャッシュデータ書き込み)の実行中であることを示す“1”に設定する(ステップ506)。しかる後に主コントローラ125aは、データバッファ125dに格納された書き込みデータをキャッシュメモリ124-1に書き込むキャッシュライト(第1のキャッシュデータ書き込み)を実行する(ステップ507)。同時に主コントローラ125aは、別のコントロールユニット12-2内のキャッシュコントローラ125-2に対し、この書き込みデータ(一致化のためのデータ)を、ライトアクセス先を示すキャッシュメモリアドレス(一致化アドレス)と共に、キャッシュ間通信コントローラ125cによりキャッシュ間通信線14を介して転送させる(ステップ508)。これによりコントロールユニット12-2では、キャッシュメモリ124-2内の指定領域へのライトアクセス(第2のキャッシュデータ書き込み)がキャッシュコントローラ125-2(内の主コントローラ)によって行われる(ステップ509)。つまりコントロールユニット12-1及び12-2では、キャッシュメモリ124-1及び124-2内の同一アドレスに同一データを書き込む動作が並行して行われる。
【0031】
キャッシュコントローラ125-2(内の主コントローラ)は、キャッシュ間通信線14を介して転送されたデータのキャッシュメモリ124-2への書き込みを完了すると、データ書き込み完了を、(当該コントローラ125-2内のキャッシュ間通信コントローラにより)キャッシュ間通信線14を介してキャッシュコントローラ125-1に通知する。
【0032】
キャッシュコントローラ125-1(内の主コントローラ125a)は、キャッシュメモリ124-1の領域A1内へのデータ書き込みを完了すると、レジスタR3に保持されているフラグF11を、データ書き込みの実行中でないことを示す“0”に切り換える(ステップ510)。同様に、キャッシュコントローラ125-2(内の図示せぬ主コントローラ)は、キャッシュメモリ124-2内の領域A1へのデータ書き込みを完了すると、当該コントローラ125-2(内の図示せぬキャッシュ間通信コントローラ)からキャッシュ間通信線14を介して、キャッシュコントローラ125-1内のキャッシュ間通信コントローラ125cにデータ書き込みの完了を通知する(ステップ511)。キャッシュ間通信コントローラ125cは、この完了通知(ステップ511)に応じ、キャッシュコントローラ125-1内のレジスタR3に保持されているフラグF12を、データ書き込みの実行中でないことを示す“0”に切り換える(ステップ512)。
【0033】
このように、ホストインタフェース121-1から内部バス126-1を介してキャッシュコントローラ125-1へのライト動作(データ転送)が行われ、そのライト動作に応じて実行されるコントロールユニット12-1及び12-2内のキャッシュメモリ124-1及び124-2の領域A1へのライト動作(キャッシュライト)がそれぞれ完了した場合、キャッシュコントローラ125-1内のレジスタR3に保持されているフラグF11及びF12はそれぞれ“0”となる。
【0034】
ホストインタフェース121-1は、自身が実行したライト動作(データ転送)に応じて実行されるキャッシュライトアクセスが完了したか否かを確認したい場合、キャッシュコントローラ125-1に対してキャッシュライト完了確認要求を送出する(ステップ513)。キャッシュコントローラ125-1内の主コントローラ125aは、ホストインタフェース121-1からキャッシュライト完了確認要求が送られた場合、レジスタR3に保持されているフラグF11及びF12のOR(論理和)をとり、そのOR結果を表すフラグF1(=F11+F12)をキャッシュライト完了確認要求元のホストインタフェース121-1に通知する(ステップ514)。
【0035】
ホストインタフェース121-1は、キャッシュコントローラ125-1内の主コントローラ125aから返されたフラグF1(=F11+F12)の状態をもとに、自身が実行したライト動作に応じて実行されるキャッシュライトアクセスが完了したか否かを確認する。即ちホストインタフェース121-1は、フラグF1が“0”であるならばキャッシュライトアクセス完了を確認し、“1”であるならばキャッシュライトアクセス未完了を確認する。
【0036】
今、キャッシュコントローラ125-1内の主コントローラ125aによるキャッシュ一致化制御が行われた際に、ホストインタフェース121-1からのキャッシュライト完了確認要求に応じて当該主コントローラ125aからホストインタフェース121-1に返されたフラグF1が“0”であるものとする。この場合、レジスタR1内のフラグF11及びF12は共に“0”であり、したがってキャッシュコントローラ125-1及び125-2の双方でキャッシュライトアクセスが完了している、つまりキャッシュ一致化制御が完了していることになる。これに対し、ホストインタフェース121-1に返されたフラグF1が“1”である場合、レジスタR1内のフラグF11及びF12の少なくとも一方が“1”であり、したがってキャッシュコントローラ125-1及び125-2の少なくとも一方ではキャッシュライトアクセスが完了していない、つまりキャッシュ一致化制御が完了していないことになる。
【0037】
このように本実施形態では、ホストインタフェース121-1によるキャッシュコントローラ125-1へのライト動作が完了した段階で、キャッシュコントローラ125-1からホストインタフェース121-1にライト動作完了を通知して内部バス126-1を解放することにより、当該内部バス126-1の使用効率の低下を防止できる。しかも本実施形態では、ホストインタフェース121-1によるキャッシュコントローラ125-1へのライト動作が完了した段階で内部バス126-1を解放しても、当該ライト動作に伴うキャッシュライトが完了しているか否かをキャッシュコントローラ125-1から当該ホストインタフェース121-1に通知できる。即ち本実施形態においては、内部バス126-1の使用効率の低下を招くことなく、キャッシュコントローラ125-1からホストインタフェース121-1に対し、キャッシュライトの完了(例えば、キャッシュ一致化制御の完了)を確認するのに必要な情報を通知できる。
【0038】
次に、上記ステップ505で、レジスタ部125b内のレジスタR1及R2で示される領域A1とは異なる領域、つまり領域A2へのライトアクセスが判定された場合の動作を説明する。この場合、キャッシュコントローラ125-1内の主コントローラ125aは、キャッシュ一致化制御は不要であると判断し、レジスタ部125b内のレジスタR3に保持されているフラグF11及びF12のうちF11のみを、キャッシュメモリ124-1へのデータ書き込みの実行中であることを示す“1”に設定する(ステップ515)。このときフラグF12は“0”のままである。次に主コントローラ125aは、データバッファ125dに格納された書き込みデータをキャッシュコントローラ125-1に書き込むキャッシュライトを実行する(ステップ516)。主コントローラ125aは、このキャッシュライトを完了すると、レジスタR1内のフラグF11を“0”に切り換える(ステップ517)。これにより、その後、ホストインタフェース121-1からキャッシュコントローラ125-1に対してキャッシュライト確認が要求された場合(ステップ513)、当該ホストインタフェース121-iにキャッシュライト完了を示すフラグF1=F11+F12=0が返される(ステップ514)。
【0039】
上記したように実施形態においては、ホストコンピュータ20からの要求に応じてキャッシュコントローラ125-1へのライト動作を行ったホストインタフェース121-1は、当該コントローラ125-1からライト動作完了通知を受け取った後、当該コントローラ125-1に対してキャッシュライト完了確認を要求することにより、キャッシュライトが完了しているか否かを確認できる。但し、キャッシュ一致化制御を必要とするキャッシュライトの完了であるか、或いはキャッシュ一致化制御を必要としないキャッシュライトの完了であるか、つまりキャッシュメモリ124-1及び124-2の双方へのキャッシュライト(第1及び第2のキャッシュデータ書き込み)の完了(キャッシュ一致化制御の完了)であるか、或いはキャッシュメモリ124-1のみへのキャッシュライトの完了であるかは確認できない。
【0040】
そこで、キャッシュコントローラ125-1からホストインタフェース121-1へのフラグF1の通知に際し、当該フラグF1にキャッシュ一致化制御の有無を示すフラグを付加するようにしてもよい。また、ホストインタフェース121-1からの要求に応じてフラグF1を返す代わりに、キャッシュライト完了時にキャッシュコントローラ125-1(内の主コントローラ125a)からホストインタフェース121-1に当該キャッシュライト完了が自動的に通知される構成としてもよい。つまり、フラグF11の方が先に“0”に変化するものとすると、フラグF12が“1”から“0”に変化するタイミングで、割り込み信号を用いた通知方法、或いはそれ以外の通知方法により、キャッシュライトの完了がキャッシュコントローラ125-1からホストインタフェース121-iに通知される構成とすればよい。なお、フラグF11の方が後から“0”に変化する場合がある得るならば、フラグF11及びF12のうち一方が“0”となっている状態で他方が“0”に変化するタイミングで、キャッシュライトの完了がキャッシュコントローラ125-1からホストインタフェース121-iに通知される構成としてもよい。
【0041】
上記実施形態では、ホストインタフェース121-1によるキャッシュメモリ124-1へのライト動作(データ転送)に応じてキャッシュ一致化制御が行われる場合を例に説明した。この種のキャッシュ一致化制御は、HDDインタフェース122-1、或いはCPU123-1によるキャッシュメモリ124-1へのライト動作(データ転送)の場合にも、キャッシュライトアクセス先が領域A1に属しているならば同様に行われる。
【0042】
また、内部バス126-1を介してのキャッシュコントローラ125-1へのライト動作が続く場合を考慮して、アクセス毎に上記F11及びF12に相当するフラグを設けるならば、キャッシュライトの完了を、ライト動作を実行した回路にアクセス毎に通知することができる。また、F11及びF12として、上記新たなキャッシュライトが開始される毎に例えば1インクリメントされ、キャッシュライトが完了する毎に1デクリメントされるフラグを用い、両フラグが共に“0”となったことをもって、全てのキャッシュライトの完了を判定することも可能である。
【0043】
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【0044】
【発明の効果】
以上詳述したように本発明によれば、キャッシュ一致化制御の対象となるキャッシュメモリ内の領域が、コントロールユニット毎に予め指定され、その指定されたキャッシュメモリ内の領域へのデータ書き込み時に限り、そのデータ及び対応するライトアドレスが他のコントロールユニットに転送されて、各コントロールユニット内のキャッシュメモリの一部の内容の一致化が図られるようにしたので、各コントロールユニット内のキャッシュメモリの一部の内容を一致化させるキャッシュ一致化制御の手順を簡略化できる。また、本発明によれば、各コントロールユニット内のキャッシュメモリの同一アドレスに同一データを書き込み終えたこと、つまりキャッシュ一致化制御の完了をデータ転送回路に通知可能なため、データ転送回路からキャッシュコントローラへのデータ転送が完了した段階で、当該キャッシュコントローラからデータ転送回路にライト動作の完了を通知して内部バスを解放する方式、つまり内部バスの使用効率を低下させない方式を適用したとしても、データ転送回路側ではキャッシュ一致化制御の完了を正しく確認できる。
【図面の簡単な説明】
【図1】 本発明の一実施形態に係るディスクアレイ装置の構成を示すブロック図。
【図2】 図1中のキャッシュコントローラ125-1の構成をキャッシュコントローラ125-2と対応させて示すブロック図。
【図3】 キャッシュメモリ124-1,124-2内の領域A1及びA2と開始アドレスSA1及びSA2とサイズS1及びS2との関係を示す図。
【図4】 同実施形態における領域設定処理を説明するためのフローチャート。
【図5】 同実施形態におけるキャッシュ一致化制御を含む動作を説明するためのシーケンスチャート。
【符号の説明】
10…ディスクアレイ装置、11…ディスクアレイ、12-1,12-2…コントロールユニット、20…ホストコンピュータ、110…HDD(ディスク装置)、121-1,121-2…ホストインタフェース(ホストI/F、データ転送回路)、122-1,122-2…HDDインタフェース(HDD I/F、データ転送回路)、123-1,123-2…CPU(データ転送回路)、124-1,124-2…キャッシュメモリ、125-1,125-2…キャッシュコントローラ、125a…主コントローラ(完了通知回路)、125b…レジスタ部、125c…キャッシュ間通信コントローラ、125d…データバッファ、126-1,126-2…内部バス、R1,R2…レジスタ(一致化領域指定手段)、R3…レジスタ(フラグ情報保持手段)。
Claims (5)
- 複数のディスク装置から構成されるディスクアレイと、
前記ディスクアレイを制御する複数のコントロールユニットであって、少なくとも前記ディスクアレイの一部のデータが格納されるキャッシュメモリと、前記キャッシュメモリを制御するキャッシュコントローラと、データの転送に用いられる内部バスと、前記内部バスを介して前記キャッシュコントローラに書き込みデータを転送するデータ転送回路とを有する複数のコントロールユニットとを具備し、
前記各コントロールユニット内の前記キャッシュコントローラは、
前記データ転送回路により前記キャッシュコントローラに転送された書き込みデータを一時格納するためのデータバッファと、
前記データ転送回路から前記キャッシュコントローラへの書き込みデータの転送が完了し、当該キャッシュコントローラに転送された書き込みデータが前記データバッファに一時格納された段階で、前記データ転送回路にライト動作の完了を通知することにより、前記キャッシュコントローラに対応する前記コントロールユニット内の前記内部バスを解放するライト動作完了通知手段と、
前記データバッファに一時格納されたデータを前記対応するコントロールユニット内の前記キャッシュメモリに書き込む制御を行う主コントローラと、
前記キャッシュメモリに書き込まれるデータを対応するキャッシュメモリアドレスと共に他のコントロールユニットに転送することにより、当該他のコントロールユニット内の前記キャッシュメモリへのデータ書き込みを行わせると共に、このデータ書き込みの完了の通知を当該他のコントロールユニットから受信するキャッシュ間通信コントローラと、
前記キャッシュメモリへのデータの書き込みが完了し、且つ当該データの前記他のコントロールユニット内の前記キャッシュメモリへの書き込みの完了の通知を前記キャッシュコントローラが受信した段階で、前記データ転送回路にキャッシュ一致化制御の完了を通知することが可能な完了通知回路とを備えている
ことを特徴とするディスクアレイ装置。 - 前記各コントロールユニット内の前記キャッシュコントローラは、当該キャッシュコントローラ内の前記主コントローラによる前記キャッシュメモリへのデータの書き込みの完了に応じて、データ書き込み実行中を示す状態からデータ書き込み完了を示す状態に更新される第1のフラグ情報と、前記他のコントロールユニットに対応する第2のフラグ情報であって、当該他のコントロールユニット内の前記キャッシュメモリへのデータ書き込みの完了の通知が前記キャッシュ間通信コントローラにより受信された場合に、当該他のコントロールユニット内の前記キャッシュメモリへのデータ書き込み実行中を示す状態からデータ書き込み完了を示す状態に更新される第2のフラグ情報とを保持するフラグ情報保持手段を含むことを特徴とする請求項1記載のディスクアレイ装置。
- 前記完了通知回路は、前記データ転送回路からのキャッシュライト確認要求に応じて、前記フラグ情報保持手段に保持されている前記第1及び第2のフラグ情報で示されるキャッシュライトの状況を当該データ転送回路に通知することを特徴とする請求項2記載のディスクアレイ装置。
- 前記完了通知回路は、前記フラグ情報保持手段に保持されている前記第1及び第2のフラグ情報がいずれもデータ書き込み完了を示す状態となった場合に、前記キャッシュ一致化制御完了を前記データ転送回路に通知することを特徴とする請求項2記載のディスクアレイ装置。
- 複数のディスク装置から構成されるディスクアレイを制御する複数のコントロールユニットであって、少なくとも前記ディスクアレイの一部のデータが格納されるキャッシュメモリと、前記キャッシュメモリを制御するキャッシュコントローラと、データの転送に用いられる内部バスと、前記内部バスを介して前記キャッシュコントローラに書き込みデータを転送するデータ転送回路とを有する複数のコントロールユニットを備えたディスクアレイ装置に適用されるキャッシュ一致化制御方法において、
前記コントロールユニット内の前記データ転送回路から前記内部バスを介して当該コントロールユニット内の前記キャッシュコントローラに転送された書き込みデータを当該キャッシュコントローラ内のデータバッファに当該キャッシュコントローラが一時格納するステップと、
前記データ転送回路から前記キャッシュコントローラへの書き込みデータの転送が完了し、当該キャッシュコントローラに転送された書き込みデータが前記データバッファに一時格納された段階で、当該キャッシュコントローラが前記データ転送回路にライト動作の完了を通知することにより、当該キャッシュコントローラに対応する前記コントロールユニット内の前記内部バスを解放するステップと、
前記データバッファに一時格納されたデータを、前記ライト動作の完了の通知後に前記キャッシュコントローラが当該キャッシュコントローラに対応する前記コントロールユニット内のキャッシュメモリに書き込むステップと、
前記キャッシュコントローラによって前記キャッシュメモリに書き込まれるデータを当該キャッシュコントローラが対応するキャッシュメモリアドレスと共に他のコントロールユニットに転送することにより、当該他のコントロールユニット内の前記キャッシュメモリへのデータ書き込みを行わせるステップと、
前記キャッシュコントローラからの前記データ及びキャッシュメモリアドレスの転送に応じて行われる前記他のコントロールユニット内の前記キャッシュメモリへのデータ書き込みの完了の通知を当該データ書き込みを行わせた前記キャッシュコントローラが当該他のコントロールユニットから受信するステップと、
前記キャッシュコントローラによる前記キャッシュメモリへのデータの書き込みが完了し、且つ当該データの前記他のコントロールユニット内の前記キャッシュメモリへの書き込みの完了の通知を前記キャッシュコントローラが受信したことに基づき、前記キャッシュコントローラが前記データ転送回路にキャッシュ一致化制御の完了を通知するステップと
を具備することを特徴とするディスクアレイ装置に適用されるキャッシュ一致化制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003148230A JP3940701B2 (ja) | 2003-05-26 | 2003-05-26 | ディスクアレイ装置及び同装置に適用されるキャッシュ一致化制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003148230A JP3940701B2 (ja) | 2003-05-26 | 2003-05-26 | ディスクアレイ装置及び同装置に適用されるキャッシュ一致化制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004355039A JP2004355039A (ja) | 2004-12-16 |
JP3940701B2 true JP3940701B2 (ja) | 2007-07-04 |
Family
ID=34044719
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003148230A Expired - Fee Related JP3940701B2 (ja) | 2003-05-26 | 2003-05-26 | ディスクアレイ装置及び同装置に適用されるキャッシュ一致化制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3940701B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4862841B2 (ja) * | 2008-02-25 | 2012-01-25 | 日本電気株式会社 | ストレージ装置とシステムと方法並びにプログラム |
JP5811544B2 (ja) * | 2011-02-21 | 2015-11-11 | 日本電気株式会社 | 集積装置、情報処理システム、および、処理方法 |
-
2003
- 2003-05-26 JP JP2003148230A patent/JP3940701B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004355039A (ja) | 2004-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
USRE49875E1 (en) | Memory system having high data transfer efficiency and host controller | |
US11500797B2 (en) | Computer memory expansion device and method of operation | |
US20110202708A1 (en) | Integrating A Flash Cache Into Large Storage Systems | |
JP3690295B2 (ja) | ディスクアレイ制御装置 | |
JP3266470B2 (ja) | 強制順序で行う要求毎ライト・スルー・キャッシュを有するデータ処理システム | |
JP3027843B2 (ja) | バススヌ−プ方法 | |
TW200400436A (en) | Method, apparatus, and computer program product for migrating data subject to access by input/output devices | |
JP2003345520A (ja) | ディスクアレイ・システム及びディスクアレイ・システムにおけるキャッシュ制御方法 | |
JP3940701B2 (ja) | ディスクアレイ装置及び同装置に適用されるキャッシュ一致化制御方法 | |
US7080198B1 (en) | Method for snooping RAID 1 write transactions by a storage device | |
JPH11232213A (ja) | 入出力装置におけるデータ転送方式 | |
JP4076316B2 (ja) | 不揮発性キャッシュメモリを用いたデータ書き込みシステム | |
US6988166B1 (en) | Method for snooping raid 1 read transactions by a storage device | |
JP4357708B2 (ja) | ディスクアレイ装置 | |
JPH10283302A (ja) | 複数のプロセッサに接続されたバスにデータを供給する方法およびシステム | |
JP3162459B2 (ja) | データ処理装置 | |
JPH0916474A (ja) | 入出力制御装置及び方法 | |
JP3515495B2 (ja) | ディスク制御装置及びその制御方法 | |
JP2005025371A (ja) | ディスクアレイ装置及びデータ書き込み制御方法 | |
JP4030951B2 (ja) | データ二重化装置及び方法 | |
JPH11237959A (ja) | 多重書き込み記憶装置 | |
JPH0793215A (ja) | 半導体記憶装置 | |
JP3299147B2 (ja) | キャッシュ制御回路 | |
JP2001229074A (ja) | メモリ制御装置と情報処理装置及びメモリ制御チップ | |
JPS59135684A (ja) | バツフアメモリ間のデ−タバイパス方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070104 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070116 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070315 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070327 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070402 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100406 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110406 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130406 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140406 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |