(57)【特許請求の範囲】
【請求項１】
上位装置に接続されたチャネルＩ／Ｆ制御回路、データの流れを切り替えるデータパススイッチを有するチャネル制御ユニットと、
ディスクドライブ、前記ディスクドライブを制御するディスク制御回路、前記データパススイッチと前記ディスク制御回路の間に介在する不揮発性キャッシュメモリを有するディスク制御ユニットと、を備えたディスク制御装置であって、
前記ディスクドライブと前記ディスク制御回路と前記不揮発性キャッシュメモリを有するディスク制御ユニットは複数個設けられ、
各ディスク制御ユニット内の前記不揮発性キャッシュメモリ、前記ディスク制御回路は、それぞれ一対となってペアを構成するとともに、前記不揮発性キャッシュメモリと前記ディスク制御回路は互いにたすき掛け接続され、
各ディスク制御ユニット内の前記一対の不揮発性キャッシュメモリは、前記たすき掛け接続によって各ディスク制御ユニット内の各ディスクドライブに接続可能であるとともに、各ディスク制御ユニット内に一対が設けられて分散配置されており、
前記分散配置された前記不揮発性キャッシュメモリの容量は、前記ディスクドライブの容量に応じて変更可能であり、
前記チャネル制御ユニットは、複数のチャネルＩ／Ｆ制御回路と複数のデータパススイッチを備え、各データパススイッチの出力は、複数個設けられたディスク制御ユニットの前記不揮発性キャッシュメモリのすべてに接続される
ことを特徴とするディスク制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、多数のディスクドライブを有するディスクドライブユニットと、チャネル制御Ｉ／Ｆ回路、キャッシュメモリ、キャッシュメモリアクセスパス及びディスク制御回路を有する制御回路と、を備えたディスク制御装置に関し、特にディスク制御装置におけるキャッシュメモリの配置構成に関する。
【０００２】
【従来の技術】
図６は従来のディスク制御装置を示す図である。図６において、１はチャネル制御Ｉ／Ｆ回路、２は不揮発キャッシュメモリ、３は揮発キャッシュメモリ、４はチャネルＩ／Ｆ、５はキャッシュメモリアクセスパス（１）、６はキャッシュメモリアクセスパス（２）、７はディスク制御回路、８はディスクドライブ、１０はディスクドライブユニット、をそれぞれ表す。ディスク制御装置とは、図６で点線の上段枠の制御装置と、下段枠のディスクドライブユニットとを含めた全体構成を云う。
【０００３】
従来のディスク制御装置では揮発キャッシュメモリ３と電源障害に備え不揮発に構成された不揮発キャッシュメモリ２を持ち、二重系として使用していた。この場合、ディスク制御装置の対ホストＣＰＵに対するパスや、ディスクドライブ８の数が増加した場合、全データアクセスにおいて２つの揮発キャッシュメモリ３と不揮発キャッシュメモリ２にアクセスが集中するため、制御装置（図６の点線上段枠の構成）の性能におけるボトルネックとなる。
【０００４】
【発明が解決しようとする課題】
今後、ディスク制御装置当たりの容量の増加、高機能化により、制御を行うディスクドライブの数が多くなり、またディスク制御装置のホストに対するパス数が増加すると考えられる。このようなディスク制御装置を従来の方法で構成した場合、キャッシュメモリへのアクセスが更に一層集中し、キャッシュメモリが制御装置の制御にとってボトルネックとなる。
【０００５】
本発明の目的は、キャッシュメモリを分散配置して高スループット化を可能とし、不揮発性キャッシュメモリの容量を最適化してディスク制御装置の性能改善を図ることにある。
【０００６】
【課題を解決するために手段】
前記課題を解決するために、本発明は次のような構成を採用する。
上位装置に接続されたチャネルＩ／Ｆ制御回路、データの流れを切り替えるデータパススイッチを有するチャネル制御ユニットと、
ディスクドライブ、前記ディスクドライブを制御するディスク制御回路、前記データパススイッチと前記ディスク制御回路の間に介在する不揮発性キャッシュメモリを有するディスク制御ユニットと、を備えたディスク制御装置であって、
前記ディスクドライブと前記ディスク制御回路と前記不揮発性キャッシュメモリを有するディスク制御ユニットは複数個設けられ、
各ディスク制御ユニット内の前記不揮発性キャッシュメモリ、前記ディスク制御回路は、それぞれ一対となってペアを構成するとともに、前記不揮発性キャッシュメモリと前記ディスク制御回路は互いにたすき掛け接続され、
各ディスク制御ユニット内の前記一対の不揮発性キャッシュメモリは、前記たすき掛け接続によって各ディスク制御ユニット内の各ディスクドライブに接続可能であるとともに、各ディスク制御ユニット内に一対が設けられて分散配置されており、
前記分散配置された前記不揮発性キャッシュメモリの容量は、前記ディスクドライブの容量に応じて変更可能であり、
前記チャネル制御ユニットは、複数のチャネルＩ／Ｆ制御回路と複数のデータパススイッチを備え、各データパススイッチの出力は、複数個設けられたディスク制御ユニットの前記不揮発性キャッシュメモリのすべてに接続されるディスク制御装置。
【００１１】
【発明の実施の形態】
本発明の実施形態に係るディスク制御装置について、図１〜図５を参照しながら以下説明する。図１は本発明の実施形態に係る分散配置不揮発キャッシュメモリを用いたディスク制御装置の全体構成を示す図である。
【００１２】
図１において、ディスク制御装置は、大きく、チャネル制御ユニット１２とディスク制御ユニット９の２つのユニットより構成されている。チャネル制御ユニット１２は、複数のチャネルＩ／Ｆ制御回路１、データパススイッチ１１より構成され、ディスク制御ユニット９はペアとなる分散配置不揮発キャッシュメモリ１３、ディスク制御回路７、及びディスクドライブ８（単一のディスクドライブの他に、複数のディスクドライブからならドライブグループを含む）より構成されている。
【００１３】
図１のチャネルＩ／Ｆ制御回路１は対ホストＣＰＵ（ディスク制御装置の上位装置であり、不図示である）に接続され、チャネルＩ／Ｆ４のプロトコル制御、データ変換、データ転送を行う。データパススイッチ１１は、これに接続されているチャネルＩ／Ｆ制御回路１、分散配置不揮発キャッシュメモリ１３へのデータ流れの経路を切り替える役割を果たすものである。
【００１４】
分散配置不揮発キャッシュメモリ１３はディスクドライブ８からデータをリードした際にこの分散配置不揮発キャッシュメモリ１３にデータを格納しておき、２回目以降に同じデータに対するリード（Ｒｅａｄ）に対してはディスクドライブ８からデータをリードするのではなく、分散配置不揮発キャッシュメモリ１３からリードすることにより高速化をはかる目的に用いる。
【００１５】
ライト（Ｗｒｉｔｅ）時はこの分散配置不揮発キャッシュメモリ１３の２つにデータがライトされた時点でホストに対して完了を返す制御を行うことにより高速化がおこなえる。分散配置不揮発キャッシュメモリ１３に書かれたデータはディスク制御回路７によりディスクドライブ８にデータが保存される。
【００１６】
分散配置不揮発キャッシュメモリ１３に不揮発メモリ素子を使用するため、万一デイスクドライブ８にデータを書込む前に停電等が発生した場合でも分散配置不揮発キャッシュメモリ１３のデータは保持される。また、分散配置不揮発キャッシュメモリ１３は容量を可変化することが可能であり、ディスクドライブ８の容量により最適化することによって性能を向上させることも可能である。
【００１７】
ディスク制御回路７はディスクドライブ８に接続されており、ディスクドライブ８の制御を行うのに用いる。ディスク制御回路７は分散配置不揮発キャッシュメモリ１３と相互にペアで接続されており、これにより万一の障害発生時にも交代パスを使用することにより、ディスクドライブ８へのアクセスが可能である。また、通常時は２パスを有効に使用することで高速化の機能もはたす。ディスクドライブ８はデータを格納するのに使用され、ディスクドライブ８へのアクセスパスは高速化、高信頼化のために２つの経路を有する。
【００１８】
このように、本実施形態を示す図１の構成は、ディスクドライブ毎に又はディスクドライブユニット（ディスクドライブグループ）毎に不揮発性キャッシュメモリを設けてアクセスの集中を防ぎ、更に、不揮発性キャッシュメモリをペア（一対）で設けることによって障害発生時の対策を図っているものである。
【００１９】
図２はホストＣＰＵからのリードコマンド実行時のデータフローを示した図である。チャネルＩ／Ｆ制御回路１にデータリードコマンドがホストＣＰＵから入った場合について説明する。まずチャネルＩ／Ｆ制御回路１でホストＣＰＵからのコマンドを認識する。その結果リードコマンドであることがわかる。その後、リード要求がどのディスクドライブ８に対するものか判別し、データパススイッチ１１を切替え、チャネルＩ／Ｆ制御回路１と分散配置不揮発キャッシュメモリ１３を結合状態にする。
【００２０】
次に、目的のデータがキャッシュメモリ上にあるかの判定をおこなう。この判定はディスク制御回路７により行なう。この結果、データフロー１４のように対象データが分散配置不揮発キャッシュメモリ１３上にあると判定した場合には分散配置不揮発キャッシュメモリ１３よりチャネル制御Ｉ／Ｆ回路１にデータをデータパススイッチ１１を通じて転送し、読み出しチャネルＩ／Ｆ制御回路１がホストＣＰＵにデータを転送し、リードコマンドが終了する。
【００２１】
仮に、アクセス対象データが分散配置不揮発キャッシュメモリ１３上に無い場合は、データフロー１５のようにディスク制御回路７経由でディスクドライブ８のリードを行い、データをデータパススイッチ１１を通じて転送して読み出す。この際、同時にデータを分散配置不揮発キャッシュメモリ１３にライトする。これにより２回目以降のデータリードに対しアクセスの高速化をはかることができる。
【００２２】
図３はＣＰＵからのライトコマンド実行時のデータフローを示した図である。チャネルＩ／Ｆ制御回路１にデータライトコマンドがＣＰＵから入った場合について説明する。まずチャネルＩ／Ｆ制御回路１でホストＣＰＵからのコマンドを認識する。この結果ライトコマンドであることがわかる。この後ライト対象がどのディスクドライブかを判別し、データパススイッチ１１を切り替え、チャネルＩ／Ｆ制御回路１と分散配置不揮発キャッシュメモリ１３を結合状態とする。
【００２３】
チャネルＩ／Ｆ制御回路１からのデータをデータフロー１６のように同時に分散配置不揮発キャッシュメモリ１３に転送する。このときデータフロー１７のようにライトデータをペアとなる分散揮発キャッシュメモリ１９上にも２重ライトする。これによりディスクドライブ８に転送完了前に停電や分散揮発キャッシュメモリ１３に障害が発生した場合でもペアとなる分散揮発キャッシュメモリ１９にデータがライトされているため、データを失うことが回避可能である。この後にディスク制御回路７にも転送され、ディスクドライブ８に転送される。これによりディスクにデータを書き込む。
【００２４】
次に、停電が発生した場合の動作について説明する。まず、チャネルＩ／Ｆ制御回路１がデータを受け取り、分散配置不揮発キャッシュメモリ１３に転送完了時点でチャネルＩ／Ｆ制御回路１はＣＰＵに対しコマンド完了を返す。このためＣＰＵではデータ書き込みが完了したと判断することになる。しかしこの時点ではディスク制御装置内にデータが在り、まだディスクドライブ８に書き込まれていない状態にある。このとき停電が発生してもデータは不揮発キャッシュメモリ１３にライトされているためデータは保持されている。この後電源が復旧した時に、未書き込みのデータが分散配置不揮発キャッシュメモリ１３上に存在するかの確認を行い、ディスク制御装置内のデータをディスクドライブ８への書き込みが再開される。この時、図３に示すデータフロー１８のように分散配置不揮発キャッシュメモリ１３からのデータをディスク制御７がディスクドライブ８に書込む。
【００２５】
図４は２つのホストＣＰＵからの同一ディスクグループのリードコマンド実行時のデータフローを示した図である。まず第一のチャネルＩ／Ｆ制御回路１にデータリードコマンドがホストＣＰＵから入った場合について説明する。まずチャネルＩ／Ｆ制御回路１でホストＣＰＵからのコマンドを認識する。その結果リードコマンドであることがわかる。その後、リード要求がどのディスクドライブ８に対するものか判別し、データパススイッチ１１を切替え、チャネルＩ／Ｆ制御回路１と分散不揮発キャッシュメモリ１３を結合状態にする。
【００２６】
次に、目的のデータがキャッシュメモリ上にあるかの判定をおこなう。この判定はディスク制御回路７により行なう。この結果データフロー２０のように対象データが分散不揮発キャッシュメモリ１３上にあると判定した場合には、分散不揮発キャッシュメモリよりチャネル制御回路１にデータをデータパススイッチ１１を通じて転送し読み出しチャネルＩ／Ｆ制御回路１がホストＣＰＵにデータを転送し、リードコマンドが終了する。
【００２７】
仮に、アクセス対象データが分散キャッシュメモリ１３上に無い場合は、データフロー２１のようにディスク制御回路７経由でディスクドライブ８のリードを行い、データをデータパススイッチ１１を通じて転送し読み出す。この際、同時にデータを分散キャッシュメモリ１３にライトする。これにより２回目以降のデータリードに対しアクセスの高速化をはかる。
【００２８】
次に、第二のチャネルＩ／Ｆ制御回路２２にデータリードコマンドがホストＣＰＵから入った場合について説明する。まずチャネルＩ／Ｆ制御回路２２でホストＣＰＵからのコマンドを認識する。その結果リードコマンドであることがわかる。その後、リード要求がどのディスクドライブ８に対するものか判別し、データパススイッチ１１を切替え、チャネルＩ／Ｆ制御回路２２と分散不揮発キャッシュメモリ２３を結合状態にする。
【００２９】
次に、目的のデータがキャッシュメモリ上にあるかの判定をおこなう。この判定はディスク制御回路２６により行なう。この結果データフロー２４のように対象データが分散キャッシュメモリ２３上にあると判定した場合には、当該キャッシュメモリ２３よりチャネル制御回路１にデータをデータパススイッチ１１を通じて転送し読み出しチャネルＩ／Ｆ制御回路１がホストＣＰＵにデータを転送し、リードコマンドが終了する。もしアクセス対象データが分散キャッシュメモリ２３上に無い場合は、第一で使用していないもう一方のディスク制御回路２６経由でデータフロー２５のように、ディスクドライブ８のリードを行い、データをデータパススイッチ１１を通じて転送し読み出す。この際、同時にデータを分散キャッシュメモリ２３にライトする。これにより第一のコマンドの時と同じく２回目以降のデータリードに対しアクセスの高速化をはかる。
【００３０】
なお、図４では２つのホストＣＰＵから同一ディスクグループの同一ディスクに逐次的にリードした状況を示しているが、同一ディスクグループへの異なるディスクへの同時的なリードについても同様に可能である。
【００３１】
図５は４つのホストＣＰＵから同一ディスクグループに２つのリードコマンドを実行時のデータフロー、前記ディスクグループと異なるディスクグループにリードコマンドとライトコマンドを実行時のデータフローを示す図である。２つのホストＣＰＵからの同一ディスクグループのリードコマンド実行時は、図４の実施形態における説明と同様に、データフロ−２０、２１、２４、２５になる。ここでは異なるディスクグループに対する２つのリードコマンドとライトコマンド実行時について説明する。
【００３２】
まず、第３のチャネルＩ／Ｆ制御回路３１にデータリードコマンドがホストＣＰＵから入った場合について説明する。まずチャネルＩ／Ｆ制御回路３１でホストＣＰＵからのコマンドを認識する。その結果リードコマンドであることがわかる。その後、リード要求がどのディスクドライブ３４に対するものか判別し、もう１つのデータパススイッチ３３を切替え、チャネルＩ／Ｆ制御回路３１と分散配置不揮発キャッシュメモリ３５を結合状態にする。次に目的のデータがキャッシュメモリ上にあるかの判定をおこなう。この判定はディスク制御回路３７により行なう。
【００３３】
この結果、データフロー２７のように対象データが分散不揮発キャッシュメモリ３５上にあると判定した場合には当該キャッシュメモリ３５よりチャネル制御回路３１にデータをデータパススイッチ３３を通じて転送し読み出しチャネルＩ／Ｆ制御回路３１がホストＣＰＵにデータを転送し、リードコマンドが終了する。もし、アクセス対象データが分散キャッシュメモリ３５上が無い場合は、データフロー２８のようにディスク制御回路３７経由でディスクドライブ３４のリードを行い、データをデータパススイッチ３３を通じて転送し読み出す。この際、同時にデータを分散キャッシュメモリ３５にライトする。これにより２回目以降のデータリードに対しアクセスを高速化をはかる。
【００３４】
次に、第４のチャネルＩ／Ｆ制御回路３２にデータライトコマンドがホストＣＰＵから入った場合について説明する。まずチャネルＩ／Ｆ制御回路３２でホストＣＰＵからのコマンドを認識する。その結果ライトコマンドであることがわかる。その後、ライト要求がどのディスクドライブ３４に対するものか判別し、データパススイッチ３３を切替え、チャネルＩ／Ｆ制御回路３２と分散不揮発キャッシュメモリ３６を結合状態にする。
【００３５】
チャネルＩ／Ｆ制御回路３２からのデータをデータフロー２９のように同時に分散配置不揮発キャッシュメモリ３６に転送する。このときデータフロー３０のようにライトデータをペアとなる分散揮発キャッシュメモリ３５上に２重ライトする。この後にディスク制御回路３８にも転送され、ディスクドライブ３４に転送される。これによりディスクにデータを書き込む。上記のような複数のアクセスが発生した場合でも分散配置不揮発キャッシュメモリとディスク制御回路をペアでもつことによりアクセス要求を分散して処理することにより性能を向上できる。
【００３６】
以上説明したように、本発明の実施形態は、次のような構成、機能乃至作用を奏するものを含むものである。即ち、従来のディスク制御装置ではキャッシュメモリは集中管理されておりキャッシュメモリにアクセスが集中することがある。これがボトルネックとなりキャッシュメモリ性能により装置性能が制限をうけてしまう。このような課題に対処するため、本発明では複数のアクセスが同時刻に出来るようにキャッシュメモリを分散配置することによりボトルネックを解消し装置性能の向上をはかる。
【００３７】
この分散配置キャッシュメモリは不揮発にすることで万一電源切断等が発生した場合でもデータが保持される。分散配置キャッシュメモリの構成を２重化し、相互に接続することにより１つのパスが故障してももう１つのパスからアクセスが可能なため稼動率の向上が可能である。
【００３８】
分散配置キャッシュメモリはディスク制御回路配下のドライブグループごとのデータをもつことにより、キャッシュヒットの確率も高くなる。また、分散配置キャッシュメモリ容量をドライブグループごとに容量を可変化とすることが可能である。これはドライブに書込まれているデータの内容、容量に応じてキャッシュメモリを最適量とすることで少ないメモリ量で装置性能を改善できる。
【００３９】
分散配置キャッシュメモリをディスク制御回路に直結することによりドライブグループごとのデータを個々に管理できるためキャッシュヒット、ミス判定が集中型に比べて分割されるため、判定テーブルの範囲が狭くなりアクセスを高速に行え、リード／ライト性能を向上することが可能となる。
【００４０】
また、今後ディスク制御装置当たりの容量の増加、高機能化により、制御を行うディスクドライブの数が多くなり、また装置のホストに対するパスが増加すると考えられる。これらに対応するために増設単位をディスク制御ユニットごとに増設することで自由に装置スループットを改善することが可能となる。これにより多チャネル、多ドライブ化の対応時に１つのキャッシュに集中することなく高いスループットをもたらすことが出来る。また分散するキャッシュメモリに不揮発メモリ素子を使用することで実装的にも有利で、またバッテリ等のバックアップ回路も不要となり低価格で構成可能である。
【００４１】
【発明の効果】
本発明によれば、多チャネルパス化、多ディスクドライブ化のディスク制御装置の構成をキャッシュメモリを分散配置することで、高スループット化が可能となり、不揮発キャッシュメモリの容量を最適化することで、装置性能を改善することができ低価格で高性能なディスク制御装置を構成することが可能となる。
【図面の簡単な説明】
【図１】本発明の実施形態に係る分散配置不揮発キャッシュメモリを用いたディスク制御装置の全体構成を示す図である。
【図２】ホストＣＰＵからのリードコマンド実行時のデータフローを示す図である。
【図３】ホストＣＰＵからのライトコマンド実行時のデータフローを示す図である。
【図４】２つのホストＣＰＵからの同一ディスクグループのリードコマンド実行時のデータフローを示す図である。
【図５】４つのホストＣＰＵから同一ディスクグループに２つのリードコマンドを実行時のデータフロー、前記ディスクグループと異なるディスクグループにリードコマンドとライトコマンドを実行時のデータフローを示す図である。
【図６】従来技術におけるディスク制御装置を示す図である。
【符号の説明】
１  チャネル制御Ｉ／Ｆ回路
２  不揮発キャッシュメモリ
３  揮発キャッシュメモリ
４  チャネルＩ／Ｆ
５  キャッシュメモリアクセスパス（１）
６  キャッシュメモリアクセスパス（２）
７  ディスク制御回路
８  ディスクドライブ
９  ディスク制御ユニット
１０  ディスクドライブユニット
１１  データパススイッチ
１２  チャネル制御ユニット
１３  分散配置不揮発キャッシュメモリ
１４  データフロー（１）
１５  データフロー（２）
１６  データフロー（３）
１７  データフロー（４）
１８  データフロー（５）
１９  分散配置不揮発キャッシュメモリ（１）
２０  データフロー（６）
２１  データフロー（７）
２２  チャネル制御Ｉ／Ｆ回路（１）
２３  分散配置不揮発キャッシュメモリ（２）
２４  データフロー（８）
２５  データフロー（９）
２６  ディスク制御回路（１）
２７  データフロー（１０）
２８  データフロー（１１）
２９  データフロー（１２）
３０  データフロー（１３）
３１  チャネル制御Ｉ／Ｆ回路（２）
３２  チャネル制御Ｉ／Ｆ回路（３）
３３  データパススイッチ（１）
３４  ディスクドライブ（１）
３５  分散配置不揮発キャッシュメモリ（３）
３６  分散配置不揮発キャッシュメモリ（４）
３７  ディスク制御回路（２）
３８  ディスク制御回路（３）
【図１】
0004104324.tif 000002
【図２】
0004104324.tif 000003
【図３】
0004104324.tif 000004
【図４】
0004104324.tif 000005
【図５】
0004104324.tif 000006
【図６】
0004104324.tif 000007