(57)【特許請求の範囲】
【請求項１】
ディスクアレイ装置内に設けられたキャッシュメモリを制御するキャッシュメモリ制御装置において、
前記キャッシュメモリのアドレス空間を分割して複数の分割アドレス空間とし、それぞれの分割アドレス空間ごとにデータ初期化の完了又は未完了を示す完了フラグを管理する管理テーブルと、
ホストコンピュータ側から出力された転送アドレス及び転送データのうち、当該転送アドレスが含まれる前記分割アドレス空間及びその前記完了フラグを前記管理テーブルから読み出すテーブル制御手段と、
このテーブル制御手段で読み出された完了フラグが未完了を示すとき、当該完了フラグに対応する前記分割アドレス空間の全体にデータが書き込まれるように前記転送アドレス及び前記転送データを変更して前記キャッシュメモリへ出力するように指示するとともに当該完了フラグを完了に書き換えるように指示し、前記テーブル制御手段で読み出された完了フラグが完了を示すとき、前記転送アドレス及び前記転送データをそのまま前記キャッシュメモリへ出力するように指示するバースト制御手段と、
前記完了フラグが未完了を示すときに前記バースト制御手段から出力された指示によって、前記転送アドレスを変換又は生成するアドレス変換手段と、
前記完了フラグが未完了を示すときに前記バースト制御手段から出力された指示によって、前記転送データにパディングデータを付加するパディング手段と、
を備えたことを特徴とするキャッシュメモリ制御装置。
【請求項２】
前記分割アドレス空間は、前記キャッシュメモリのアドレス空間をバースト長で分割したバーストアドレス空間である、
ことを特徴とする請求項１記載のキャッシュメモリ制御装置。
【請求項３】
前記キャッシュメモリがＤＲＡＭから成る、
ことを特徴とする請求項１又は２記載のキャッシュメモリ制御装置。
【請求項４】
ディスクアレイ装置内に設けられたキャッシュメモリを制御するキャッシュメモリ制御方法において、
前記キャッシュメモリのアドレス空間を分割して複数の分割アドレス空間とし、それぞれの分割アドレス空間ごとにデータ初期化の完了又は未完了を示す完了フラグを管理する管理テーブルを用意し、
ホストコンピュータ側から出力された転送アドレス及び転送データのうち、当該転送アドレスが含まれる前記分割アドレス空間及びその前記完了フラグを前記管理テーブルから読み出し、
読み出された前記完了フラグが未完了を示すとき、当該完了フラグに対応する前記分割アドレス空間の全体にデータが書き込まれるように前記転送アドレス及び前記転送データを変更して前記キャッシュメモリへ出力するように指示するとともに当該完了フラグを完了に書き換えるように指示し、
読み出された前記完了フラグが完了を示すとき、前記転送アドレス及び前記転送データをそのまま前記キャッシュメモリへ出力するように指示するし、
前記完了フラグが未完了を示すときに出力された前記指示によって、前記転送アドレスを変換又は生成し、
前記完了フラグが未完了を示すときに出力された前記指示によって、前記転送データにパディングデータを付加する
ことを特徴とするキャッシュメモリ制御方法。
【請求項５】
ディスクアレイ装置内に設けられたキャッシュメモリを制御するキャッシュメモリ制御プログラムにおいて、
前記キャッシュメモリのアドレス空間を分割して複数の分割アドレス空間とし、それぞれの分割アドレス空間ごとにデータ初期化の完了又は未完了を示す完了フラグを管理する管理テーブルを用いるとともに、
ホストコンピュータ側から出力された転送アドレス及び転送データのうち、当該転送アドレスが含まれる前記分割アドレス空間及びその前記完了フラグを前記管理テーブルから読み出すテーブル制御手段、
このテーブル制御手段で読み出された完了フラグが未完了を示すとき、当該完了フラグに対応する前記分割アドレス空間の全体にデータが書き込まれるように前記転送アドレス及び前記転送データを変更して前記キャッシュメモリへ出力するように指示するとともに当該完了フラグを完了に書き換えるように指示し、前記テーブル制御手段で読み出された完了フラグが完了を示すとき、前記転送アドレス及び前記転送データをそのまま前記キャッシュメモリへ出力するように指示するバースト制御手段、
前記完了フラグが未完了を示すときに前記バースト制御手段から出力された指示によって、前記転送アドレスを変換又は生成するアドレス変換手段、並びに、
前記完了フラグが未完了を示すときに前記バースト制御手段から出力された指示によって、前記転送データにパディングデータを付加するパディング手段、
としてコンピュータを機能させることを特徴とするキャッシュメモリ制御プログラム。
【請求項６】
請求項１乃至３のいずれか１項に記載のキャッシュメモリ制御装置を、
備えたことを特徴とするディスクアレイ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスクアレイ装置内のキャッシュメモリを制御するキャッシュメモリ制御装置等に関する。
【背景技術】
【０００２】
ディスクアレイ装置のキャッシュメモリは、安価で大容量である揮発性メモリ（ＤＲＡＭ）が使用されおり、ソフトエラーが発生したときのデータエラー検出及び訂正手段として、一般的に誤り訂正符号ＥＣＣ（Error Checking and Correcting Code）が採用されている。ＥＣＣはハミングコードを用いてデータビットからチェックビットを生成し、データビットとチェックビットをＤＲＡＭに書き込んで、メモリを読み出した時に、読み出したデータビットとチェックビットからシンドロームを生成し、このシンドロームによって１ビットの誤り訂正及び２ビットの誤り検出を行っている。
【０００３】
また、ＤＲＡＭを使用する場合、ＤＲＡＭが機能として備えている、ある決まった数のデータを連続して入出力するバースト転送（バーストライト又はバーストリード）を利用する。バースト転送において、連続して転送する長さ（バースト長）は、ＤＲＡＭへの電源及びクロックが供給された後、ＤＲＡＭのモードレジスタに設定しなければならない。一旦設定すると、再度設定を行うか、又は電源を切断するまで、設定値（バースト長）は保持される。そのため、一般的にＤＲＡＭへのアクセスは常に固定化したバースト長で行っている。
【０００４】
従来技術では、キャッシュメモリにデータ転送する前に、ＤＲＡＭ内部データを確定値とするためのパディングデータとそのＥＣＣを、キャッシュメモリの全領域に書き込むという、キャッシュメモリのデータ初期化処理を行っている。その理由は、この種のディスクアレイ装置のキャッシュメモリは揮発性メモリで構成されているため、誤り訂正符号ＥＣＣを採用したキャッシュメモリにおいて電源投入時のＤＲＡＭ内部データは不確定値となっているため、及び、通常のキャッシュメモリアクセス時にＤＲＡＭに設定したバースト長未満のアクセスが発生するためである。
【０００５】
【特許文献１】特開平１０−２６９１５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
第１の問題点は、電源投入時や障害復旧時など、必ず、キャッシュメモリの初期化処理を実施しなければならないということである。一般的に、ディスクアレイ装置のキャッシュメモリに使用されているＤＲＡＭは、電源投入時にＤＲＡＭ内部が不確定値となっているため、及び、通常のメモリアクセス時にキャッシュメモリのデータ幅に満たないパーシャル転送やＤＲＡＭに設定されているバースト長に満たないデータ転送が発生するため、キャッシュメモリへのデータ転送前にパディングデータとそのＥＣＣをキャッシュメモリ全領域にバーストライトを行う、初期化処理が必要であった。
【０００７】
第２の問題点は、キャッシュメモリの初期化処理は、キャッシュメモリ搭載量に比例し、処理時間が大きくなっているということである。近年、ディスクアレイ装置のキャッシュメモリは大容量化が進んでおり、ＤＲＡＭデータの初期化処理であるキャッシュメモリ全領域へのパディングデータを書き込む処理に多くの時間がかかるため、その処理期間中、物理的に実装された状態であっても、データ転送に使用できない期間が発生している。
【０００８】
そこで、本発明の目的は、キャッシュメモリの初期化処理を行う時間を不要とし、即座にキャッシュメモリへのリード転送又はライト転送を開始できる、キャッシュメモリ制御装置等を提供することにある。
【課題を解決するための手段】
【０００９】
本発明に係るキャッシュメモリ制御装置は、ディスクアレイ装置内に設けられたキャッシュメモリを制御するものであり、管理テーブル、テーブル制御手段及びバースト制御手段を備えている。管理テーブルは、キャッシュメモリのアドレス空間を分割して複数の分割アドレス空間とし、それぞれの分割アドレス空間ごとにデータ初期化の完了又は未完了を示す完了フラグを管理する。テーブル制御手段は、ホストコンピュータ側から出力された転送アドレス及び転送データのうち、当該転送アドレスが含まれる分割アドレス空間及びその完了フラグを管理テーブルから読み出す。バースト制御手段は、テーブル制御手段で読み出された完了フラグが未完了を示すとき、当該完了フラグに対応する分割アドレス空間の全体にデータが書き込まれるように転送アドレス及び転送データを変更（変換、生成等）してキャッシュメモリへ出力するように指示するとともに当該完了フラグを完了に書き換えるように指示し、テーブル制御手段で読み出された完了フラグが完了を示すとき、転送アドレス及び転送データをそのままキャッシュメモリへ出力するように指示する。
【００１０】
本発明に係るキャッシュメモリ制御方法は、本発明に係るキャッシュメモリ制御装置の動作を方法の発明として捉えたものである。本発明に係るキャッシュメモリ制御プログラムは、本発明に係るキャッシュメモリ制御装置の各手段をコンピュータに機能させるためのものである。本発明に係るディスクアレイ装置は、本発明に係るキャッシュメモリ制御装置を備えたものである。
【００１１】
従来技術では、キャッシュメモリのアドレス空間の全領域に対して、データ初期化を行っていた。これに対し、本発明では、そのデータ初期化を行わない代わりに、管理テーブル等を用いる。管理テーブルでは、各分割アドレス空間についてデータ初期化の完了又は未完了を示す、完了フラグを管理する。転送アドレスを含む分割アドレス空間の完了フラグが未完了であれば、その分割アドレス空間に対して転送アドレス及び転送データをそのまま書き込むと、分割アドレス空間の一部に不確定な値のデータ領域が残ることになる。そこで、転送アドレス及び転送データを変更することにより、その分割アドレス空間の全体にデータが書き込まれるようにする。この結果、キャッシュメモリのアドレス空間のデータ初期化が不要になるので、起動時などに直ちにキャッシュメモリへのデータ転送が可能となる。
【００１２】
また、本発明は、次のように構成することもできる。
【００１３】
本発明は、管理テーブル、テーブル制御手段、バースト制御手段、アドレス変換手段、パディング手段等を備える。管理テーブルは、実装されたキャッシュメモリのアドレス空間をＤＲＡＭのバースト長で分割したバーストアドレス空間と、そのバーストアドレス空間単位でＤＲＡＭデータの初期化処理の完了、未完了を示す完了フラグとを管理する。テーブル制御手段は、転送アドレス保持手段で示される転送アドレスから管理テーブルを索引し、転送アドレスに対応したバーストアドレス空間及びその完了フラグの読み出し制御を行う。バースト制御手段は、管理テーブルから読み出した完了フラグと、転送アドレス保持手段、転送レングス保持手段及び転送コマンド保持手段で保持されている転送要求の各情報とを元に、ＤＲＡＭアクセス時のアドレスやデータへの変換、生成を指示する。アドレス変換手段は、バースト制御手段からの指示により、転送アドレス保持手段で示される転送アドレスを、ＤＲＡＭへの転送アドレスに変換、生成する。パディング手段は、転送データ保持手段で示される転送ライトデータにパディングデータの付加を行う。
【００１４】
次に、本発明の作用を説明する。テーブル制御手段は、キャッシュメモリ（ＤＲＡＭ）への転送要求を検出したとき、転送アドレス保持手段内の転送アドレスを元に管理テーブル内のエントリを索引し、転送アドレスが含まれているバーストアドレス空間を検索する。バーストアドレス空間を検出すると、そのバーストアドレス空間に対応する完了フラグを読み出す。バースト制御手段は、管理テーブルから読み出した完了フラグと転送コマンド保持手段内の転送コマンドとを参照し、転送アドレスを含んだバーストアドレス空間の初期化処理が完了しているか否かの判定を行い、転送要求の各情報をＤＲＡＭのバースト長に合わせた転送アドレス／レングス／データに変換、生成するようアドレス変換手段及びパディング手段に対し、指示を行う。バースト制御手段は、完了フラグが初期化未完了であることを示している場合、その初期化未完了であるバーストアドレス空間へのデータライト動作（＝初期化）が完了したら、管理テーブル内のバーストアドレス空間に対応する完了フラグを“未完了”から“完了”に変更するようテーブル制御手段に指示する。
【００１５】
本発明では、キャッシュメモリに転送要求されているアドレスを元に、管理テーブルからそのアドレスを含むバーストアドレス空間の初期化完了又は未完了のステータスを読み出し、初期化が未完了である場合、ＤＲＡＭのバースト長に合わせ込んだアドレス、レングス、及びライトデータを生成し、ＤＲＡＭに転送する。そのため、ディスクアレイ装置の電源投入時やキャッシュメモリの障害復旧時などに、キャッシュメモリの初期化処理を行う時間が不要となるので、即座にキャッシュメモリへのリード転送又はライト転送が可能となる。また、信頼性の高いディスクアレイ装置のメモリアクセス方法を提供することができることに加え、平均復旧時間（MTTR：Mean Time To Repair）の短いディスクアレイ装置のメモリアクセス方法を提供することができる。
【発明の効果】
【００１６】
本発明によれば、ディスクアレイ装置の電源投入時やキャッシュメモリの障害復旧時などに、キャッシュメモリの初期化処理を行う時間が不要となるので、即座にキャッシュメモリへのリード転送又はライト転送が可能となる。
【発明を実施するための最良の形態】
【００１７】
図１は、本発明に係るキャッシュメモリ制御装置の第一実施形態を示すブロック図である。図２は、図１における管理テーブルの一例を示す図表である。以下、これらの図面に基づき説明する。
【００１８】
本実施形態のキャッシュメモリ制御装置１０は、管理テーブル１６、テーブル制御手段１５、バースト制御手段１８、アドレス変換手段１７、パディング手段１９等を備えている。
【００１９】
管理テーブル１６は、実装されたキャッシュメモリのアドレス空間をＤＲＡＭのバースト長で分割したバーストアドレス空間と、そのバーストアドレス空間単位でＤＲＡＭデータの初期化処理の完了又は未完了を示す完了フラグとを管理する。テーブル制御手段１５は、転送アドレス保持手段１１で示される転送アドレスから管理テーブル１６を索引し、転送アドレスに対応したバーストアドレス空間及びその完了フラグの読み出し制御を行う。バースト制御手段１８は、管理テーブル１６から読み出した完了フラグと、転送アドレス保持手段１１、転送レングス保持手段１２及び転送コマンド保持手段１３で保持されている転送要求との各情報を元に、ＤＲＡＭアクセス時のアドレスやデータへの変換又は生成を指示する。アドレス変換手段１７は、バースト制御手段１８からの指示によって、転送アドレス保持手段１１で示される転送アドレスからＤＲＡＭへの転送アドレスに変換又は生成する。パディング手段１９は、転送データ保持手段１４で示される転送ライトデータにパディングデータの付加を行う。
【００２０】
テーブル制御手段１５は、次のように動作する。キャッシュメモリ（ＤＲＡＭ）への転送要求を検出したとき、転送アドレス保持手段１１内の転送アドレスを元に管理テーブル１６内のエントリを索引し、転送アドレスが含まれているバーストアドレス空間を検索する。バーストアドレス空間を検出すると、そのバーストアドレス空間に対応する完了フラグを読み出す。
【００２１】
バースト制御手段１８は、次のように動作する。管理テーブル１６から読み出された完了フラグと転送コマンド保持手段１３内の転送コマンドとを参照し、転送アドレスを含んだバーストアドレス空間の初期化処理が完了しているか判定を行い、転送要求の各情報をＤＲＡＭのバースト長に合わせた転送アドレス／レングス／データに変換又は生成するよう、アドレス変換手段１７及びパディング手段１９に対し指示を行う。また、完了フラグが初期化未完了であることを示している場合、その初期化未完了であるバーストアドレス空間へのデータライト動作（＝初期化）が完了したら、管理テーブル１６内のバーストアドレス空間に対応する完了フラグを“未完了”から“完了”に変更するよう、テーブル制御手段１５に指示する。
【００２２】
次に、キャッシュメモリ制御装置１０の各構成要素について更に詳しく説明する。
【００２３】
転送アドレス保持手段１１、転送レングス保持手段１２、転送コマンド保持手段１３及び転送データ保持手段１４は、それぞれキャッシュメモリへの転送要求の各情報であるアドレス、レングス、コマンド及びデータを保持する。転送アドレス保持手段１１は、データ転送するＤＲＡＭエリアを示すアドレス指定を示す。転送コマンド保持手段１３は、ＤＲＡＭへの転送種類であるリード、ライト等を示す。転送レングス保持手段１２は、転送コマンド保持手段１３で指示されているリード、ライト要求と、転送アドレス保持手段１１で指定されている転送アドレスで指示される転送データとの長さを示す。管理テーブル１６は、実装されているキャッシュメモリ空間をＤＲＡＭのバースト長で分割したバーストアドレス空間と、そのバーストアドレス空間への初期化動作を行ったか否かを示す完了フラグとを管理する。テーブル制御手段１５は、転送要求（転送アドレス等）を検出すると、その転送アドレスから管理テーブル１６を索引し、対応したバーストアドレス空間と完了フラグの読み出しを行う。
【００２４】
バースト制御手段１８は、次のように動作する。管理テーブル１６からの完了フラグの参照と同時に、転送コマンド保持手段１３で保持されている転送コマンドの種別判定を行い、転送要求されている転送アドレスが対象としているアドレス空間のＤＲＡＭデータの初期化が完了しているか否かの判別を行う。その判別結果を元にアドレス変換手段１７及びパディング手段１９に対して、転送要求された各情報をＤＲＡＭのバースト長に合わせた転送アドレス／レングス／データに変換又は生成するよう指示を出す。完了フラグが初期化・未完了を示している時、その未完了であるアドレス空間へのデータライト動作（初期化）が完了すると、管理テーブル１６の該当するバーストアドレス空間に対応する完了フラグを“未完了”から“完了”に変更するよう、テーブル制御手段１５に指示する。
【００２５】
図２に示すように、管理テーブル１６内には、実装されているキャッシュメモリ空間をＤＲＡＭのバースト長で分割したバーストアドレス空間と、そのバーストアドレス空間への初期化（バーストライト）処理を実施したか否かを示す完了フラグとが管理される。完了フラグは、バーストアドレス空間と１対１に対応付けて管理され、対応したバーストアドレス空間に対して、一度でもバーストライト（ＤＲＡＭデータの初期化）が行われれば、“未完了”から“完了”というステータスに変更される。また、電源投入時又は未バーストライト（未初期化）時のバーストアドレス空間の完了フラグは、“未完了”というステータスを示している。なお、原理的に“完了”ステータスから“未完了”ステータスへの変更は行わない。
【００２６】
次に、キャッシュメモリ制御装置１０の全体の動作について更に詳しく説明する。
【００２７】
キャッシュメモリへの転送要求が発生した場合、転送アドレス保持手段１１、転送レングス保持手段１２、転送コマンド保持手段１３及び転送データ保持手段１４は、それぞれキャッシュメモリへの転送要求の各情報であるアドレス、レングス、コマンド及びデータを保持する。
【００２８】
テーブル制御手段１５は、次のように動作する。転送要求を検出したら、転送アドレス保持手段１１内の転送アドレスを元に管理テーブル１６内のエントリを索引し、転送アドレスを包括しているバーストアドレス空間を検索する。そして、転送アドレスを含むバーストアドレス空間を検出した後、そのバーストアドレス空間のエントリから完了フラグを読み出す。
【００２９】
バースト制御手段１８は、次のように動作する。管理テーブル１６から読み出された完了フラグを参照し、完了フラグが“未完了”、かつ転送コマンド保持手段１３内の転送コマンドがライト転送である場合、転送アドレス保持手段１１、転送レングス保持手段１２、転送コマンド保持手段１３及び転送データ保持手段１４内の各情報をＤＲＡＭのバースト長に合わせた転送アドレス／レングス／データに変換又は生成するよう、アドレス変換手段１７及びパディング手段１９に対し指示を行う。転送アドレスは、ＤＲＡＭのバースト長でアドレス境界が決定される。転送レングスは、ＤＲＡＭのバースト長の定数倍になるレングスに伸張及び変換される。同時に、パディング手段１９に対して、伸張されたレングスを満たすよう、転送要求時のライトデータにパディングデータを付加及び変換するようデータパディングの指示を行う。
【００３０】
パディング手段１９は、バースト制御手段１８からの指示で転送要求のライトデータにパディングデータを付加し、バーストレングス分のデータサイズに伸張及び変換する。アドレス変換手段１７も、バースト制御手段１８からの同様の指示で、ＤＲＡＭバースト長で決定したアドレス境界を元にＤＲＡＭアクセス時のアドレスを生成する。各手段で変換又は生成されたアドレス、レングス、データ及びコマンドがＤＲＡＭアクセス情報となり、ＤＲＡＭ（キャッシュメモリ）へのデータ転送が行われる。
【００３１】
バースト制御手段１８は、完了フラグが“未完了”のとき、そのバーストアドレス空間に対するデータ転送（初期化動作）を行った場合、そのバーストアドレス空間に対応した完了フラグを“未完了”から“完了”に変更するよう、テーブル制御手段１５に通知を行う。一方、完了フラグが“完了”を示しているとき、対応するバーストアドレス空間のＤＲＡＭデータ初期化は完了している。そのため、その後、バーストアドレス空間に含まれる転送アドレスの転送要求が発生したとしても、バースト制御手段１８は、アドレス変換やデータパディングは行わず、転送要求されたアドレス、レングス、データでキャッシュメモリへのデータ転送を行う。
【００３２】
図３は、キャッシュメモリ制御装置１０の動作を説明するためのブロック図である。図４は、図３に示す動作において用いられる管理テーブル１６１を示す図表である。以下、キャッシュメモリ制御装置１０の全体の動作についてより具体的に説明する。
【００３３】
図３及び図４は、ＤＲＡＭバースト長が８バイト×４サイクルの３２バイトというＤＲＡＭ設定時に、キャッシュメモリへの転送要求が発生した場合である。このとき、転送アドレスは５１２バイト目、転送レングスは１６バイト、転送コマンドはライトとし、キャッシュメモリのデータ初期化は全領域において実施されていないと仮定する。
【００３４】
キャッシュメモリへの転送要求２０として転送アドレス２１、転送レングス２２及び転送コマンド２３を受け、ライトデータ２４はレングス分である１６バイトを受ける。テーブル制御手段１５は、転送要求２０を受けたことを契機に、転送アドレス２１を元に管理テーブル１６１のエントリを索引する。転送アドレス２１は、５１２バイトアドレスであるため、管理テーブル１６１内のバーストアドレス空間としては、エントリ１のアドレス空間に含まれる。合致したバーストアドレス空間のエントリを元に（エントリ１）、完了フラグを読み出す。キャッシュメモリのデータ初期化は行われていないため、完了フラグは“未完了＝０”になっている。
【００３５】
バースト制御手段１８は、次のように動作する。読み出された完了フラグ、転送コマンド２３、転送アドレス２１、転送レングス２２を参照する。完了フラグが“未完了”かつ転送コマンド２３がライトである場合、転送アドレス２１と転送レングス２２の変換を行うために、アドレス変換手段１７及びパディング手段１９に対し、変換指示を出力する。このとき、ＤＲＡＭのバースト設定に合わせ込むように、アドレス変換手段１７にアドレス変換（今回の例では変換はない）、転送レングス２２を１６バイトから３２バイトに変換させる。また、ライトデータ２４も１６バイトのデータに「３２バイト−１６バイト」分のパディングデータを付加するように、パディング手段１９に指示を出す。これにより、ＤＲＡＭアドレス３１、バーストレングス３２、転送コマンド３３、ライトデータ３４のＤＲＡＭへの転送情報を生成し、ＤＲＡＭへの書き込みを行う。
【００３６】
上述では、管理テーブル１６１の索引した結果、完了フラグは“未完了”として仮定したが、このとき、完了フラグが“完了”であった場合、バースト制御手段１８はアドレス変換手段１７やパディング手段１９に各転送情報の変換は指示しない。したがって、転送要求２０で指示された転送アドレス２１、ライトデータ２４、転送レングス２２は変換されずにＤＲＡＭアクセス情報３０となり、ＤＲＡＭへの書き込み動作が行われる。
【００３７】
このように、本実施形態では、キャッシュメモリへの転送アドレスを参照し、その転送アドレスから管理テーブルを索引し、完了フラグを読み出し後、これを参照して、要求された転送アドレスのバーストアドレス空間のＤＲＡＭデータが初期化されているか否かの判断をし、初期化されていなければ、その転送要求をＤＲＡＭのバースト設定に合わせこむようアドレスやレングスを伸張、変換し、また、ライトデータも伸張したレングスに対して、不足データ数分をパディングし、ＤＲＡＭアクセス情報として準備後、キャッシュメモリ（ＤＲＡＭ）にデータライトすることで、ＤＲＡＭ内データ値が確定していない（未初期化）バーストアドレス空間も通常のライト転送と同時に転送が可能になり、ＤＲＡＭデータの初期化処理が不要となる。
【００３８】
更に、本実施形態では、キャッシュメモリの全領域をＤＲＡＭのバースト長で分割したバーストアドレス空間毎に完了フラグを設けているので、キャッシュメモリの容量に関係なく、ＤＲＡＭデータの初期化処理が必要なくなるので、キャッシュメモリの復旧動作時において、平均復旧時間を短縮できるという効果もある。
【００３９】
なお、本実施形態のテーブル制御手段や管理テーブルは、ハードウェアで構成している例を示したが、ファームウェアなどで管理、制御してもよい。また、アドレス変換手段やパディング手段に関しても、ファームウェアで構成することができる。
【００４０】
図５は、本発明に係るキャッシュメモリ制御方法の一実施形態を示すフローチャートである。以下、この図面に基づき説明する。
【００４１】
本実施形態のキャッシュメモリ制御方法は、キャッシュメモリ制御装置の第一実施形態における動作に相当する。まず、キャッシュメモリのアドレス空間をＤＲＡＭのバースト長で分割して複数のバーストアドレス空間を作成し、それぞれのバーストアドレス空間ごとにデータ初期化の完了又は未完了を示す完了フラグを管理する管理テーブルを用意する（ステップ４１）。続いて、ホストコンピュータ側から出力された転送アドレス及び転送データのうち、当該転送アドレスが含まれるバーストアドレス空間及びその完了フラグを、管理テーブルから読み出す（ステップ４２）。続いて、読み出された完了フラグが未完了を示すとき（ステップ４３）、当該完了フラグに対応するバーストアドレス空間の全体にデータが書き込まれるように転送アドレス及び転送データを変更してキャッシュメモリへ出力するように指示するとともに（ステップ４４）、当該完了フラグを完了に書き換えるように指示する（ステップ４５）。一方、読み出された完了フラグが完了を示すとき（ステップ４３）、転送アドレス及び転送データをそのままキャッシュメモリへ出力するように指示する（ステップ４６）。
【００４２】
従来技術では、キャッシュメモリのアドレス空間の全領域に対して、データ初期化を行っていた。これに対し、本実施形態では、そのデータ初期化を行わない代わりに、管理テーブルを用いる。管理テーブルでは、各バーストアドレス空間についてデータ初期化の完了又は未完了を示す、完了フラグを管理する。転送アドレスを含むバーストアドレス空間の完了フラグが未完了であれば、そのバーストアドレス空間に対して転送アドレス及び転送データをそのまま書き込むと、そのバーストアドレス空間に不確定な値のデータ領域が残ることになる。そこで、転送アドレス及び転送データを変更することにより、そのバーストアドレス空間の全体にデータが書き込まれるようにする。この結果、キャッシュメモリのアドレス空間のデータ初期化が不要になるので、起動時などに直ちにキャッシュメモリへのデータ転送が可能となる。
【００４３】
図６は、本発明に係るキャッシュメモリ制御装置の第二実施形態における管理テーブルを示す図表である。以下、この図面に基づき説明する。
【００４４】
本実施形態では、その基本的構成は第一実施形態と同じであるが、管理テーブル５０について更に工夫している。管理テーブル５０内において、エントリ５１に対し、バーストアドレス空間５２及び完了フラグ５４にリード違反フラグ５３を加えて合計三つの要素を登録している。バーストアドレス空間５２及び完了フラグ５４に関する機能は、第一実施形態と同じである。
【００４５】
テーブル管理手段は、転送要求を検出した際、転送アドレスから管理テーブル５０のエントリ５１を索引し、転送アドレスを含むバーストアドレス空間５２のエントリ５１を検索し、検出したバーストアドレス空間５２に対応した完了フラグ５４を読み出す。このとき、バースト制御手段は、転送コマンドがリード要求であり、かつ、読み出した完了フラグが“未完了”であった場合、キャッシュメモリのＤＲＡＭデータの初期化が完了していない空間（バーストアドレス空間）に対するリード要求が発生したと認識し、リード違反フラグを、“０”から“１”に変更する。
【００４６】
キャッシュメモリ（ＤＲＡＭデータ）に誤り訂正符号ＥＣＣを付加し、エラー訂正／検出をするキャッシュメモリの場合、ＤＲＡＭデータを初期化していないアドレスに対し、リード転送を実行すると、訂正不可能エラーが発生してしまう。そのため、通常のキャッシュメモリ転送では、未初期化のアドレス空間にリード転送を行うことはない。このような初期化が完了していないバーストアドレス空間に対するリード要求は、転送制御ファームウェアに不具合がある場合や制御回路の故障が発生した場合に限られる。
【００４７】
このように、本実施形態では、キャッシュメモリへのリード要求が発生した場合、管理テーブルを索引し、完了フラグを読み出すことで、リード要求されている転送アドレスの対象メモリ空間がＤＲＡＭデータの初期化が完了していない空間（バーストアドレス空間）であるか否かの判定を行う。これにより、制御ファームエリアの不具合や制御回路の故障を早期に検出でき、高い信頼性を得るという効果が得られる。
【００４８】
本発明に係るキャッシュメモリ制御装置の第三実施形態を示すブロック図である。以下、この図面に基づき説明する。ただし、図１と同じ部分は同じ符号を付すことにより説明を省略する。
【００４９】
本実施形態のキャッシュメモリ制御装置６０は、キャッシュメモリへの転送要求である転送コマンドを識別するために、診断コマンド保持手段６１を設けている。診断コマンド保持手段６１は、キャッシュメモリへの転送要求の１つである診断コマンドを検出する機能を有する。診断コマンドとは、通常のリード、ライト転送とは異なり、ＤＲＡＭのソフトエラー発生の有無を試験するためのコマンドであり、通常のリード／ライト転送と混在しながら転送され、キャッシュメモリの予防診断機能として利用されている。
【００５０】
まず、最初に診断コマンド保持手段６１の無い場合において、診断コマンドを受けた際の動作を説明する。診断コマンドの検出と同時に転送アドレスも検出され、それらの診断コマンド要求の各情報を元に、キャッシュメモリ（ＤＲＡＭ）からデータとＥＣＣが読み出され、読み出されたデータとＥＣＣの整合性がチェックされる。読み出されたデータとＥＣＣの整合性チェックで、訂正可能エラーが検出された場合は、読み出したデータ又はＥＣＣの訂正を行い、訂正したデータとＥＣＣを再びキャッシュメモリに書き込む。訂正不可能エラーを検出した場合、再書き込みは行われない。
【００５１】
以上のように、診断コマンドを検出したときの動作は、ＤＲＡＭから一旦データを読み出す必要があるため、診断要求（コマンド）の対象となるアドレス空間のＤＲＡＭは、必ず初期化を完了させておく必要がある。また、診断コマンドの対象となるアドレスは、通常のリード、ライト転送で使用されたか否かに関わらず、診断対象として選ばれる。そのため、ＤＲＡＭデータの初期化転送しか実施されていないアドレス空間に対して、診断コマンドが発行される場合がある。
【００５２】
次に、診断コマンド保持手段６１を採用している場合の動作説明を行う。基本的に転送要求の検出から完了フラグの読み出しまでは、上述した第一実施形態の動作と同様である。バースト制御手段１８は、転送アドレスを含むバーストアドレス空間の完了フラグが読み出されたとき、診断コマンド保持手段６１内に診断コマンドが存在するか否かのチェックを行う。
【００５３】
診断コマンドが存在していた場合、完了フラグの“完了”又は“未完了”のステータスを元にＤＲＡＭへの診断転送を実施する。完了フラグが“完了”を示す場合、診断対象となっている転送アドレスのＤＲＡＭ内データは初期化が既に完了しているため、通常の診断動作（データ及びＥＣＣ読み出し後、整合性チェック）を行う。
【００５４】
一方、完了フラグが“未完了”を示している場合、バースト制御手段１８は、転送アドレス保持手段１１で保持されている転送アドレスをＤＲＡＭバースト長に合わせ込んだ後、一旦ＤＲＡＭにデータをライトする。診断コマンド時、転送要求にはライトデータが付随していない。そのため、パディング手段１９は、ＤＲＡＭのバースト長分のライトデータ（ダミーデータ）を生成し、ライト転送する。バースト制御手段１８は、ダミーデータのライト動作が終了後、すぐに同アドレスのリード転送を行い、直前にライトしたデータとＥＣＣを読み出し、整合性チェックを行う。整合性チェック後の動作は、上述した動作と変わりはない。
【００５５】
このように、本実施形態では、通常のリード、ライトコマンドと診断コマンドの判別を行い、診断コマンド時も管理テーブルを参照し、完了フラグを読み出した後、診断コマンドの対象アドレス空間の初期化状況を認識することで、未初期化のアドレス空間に対しても診断動作が可能になるという効果がある。これは、未初期化のアドレス空間に対し、初期化動作と同時に診断動作を行えるということで、通常のリード、ライト転送と診断転送（コマンド）が混在し、通常のデータ転送を行いながら、並行して、初期化処理が行うことが可能となる。
【００５６】
図８は、本発明に係るディスクアレイ装置の第一実施形態を示すブロック図である。以下、この図面に基づき説明する。
【００５７】
本実施形態のディスクアレイ装置７０は、ホストアダプタ７１、キャッシュメモリコントローラ７２、キャッシュメモリ７３、ディスクアダプタ７４、ハードディスク群７５等から成り、ホストコンピュータ群８０と接続されている。キャッシュメモリコントローラ７２には、前述のキャッシュメモリ制御装置１０が一機能として実装されている。
【００５８】
ディスクアレイ装置７０によれば、キャッシュメモリ制御装置１０を備えたことにより、キャッシュメモリ７３のアドレス空間のデータ初期化が不要になるので、起動時などに直ちにキャッシュメモリ７３へのデータ転送が可能となる。
【００５９】
なお、ディスクアレイ装置７０及びキャッシュメモリコントローラ７２におけるキャッシュメモリ制御装置１０を除く他の機能は、従来技術と同じであるので、説明を省略する。
【図面の簡単な説明】
【００６０】
【図１】本発明に係るキャッシュメモリ制御装置の第一実施形態を示すブロック図である。
【図２】図１のキャッシュメモリ制御装置における管理テーブルの一例を示す図表である。
【図３】図１のキャッシュメモリ制御装置の動作を説明するためのブロック図である。
【図４】図３のキャッシュメモリ制御装置の動作において用いられる管理テーブルを示す図表である。
【図５】本発明に係るキャッシュメモリ制御方法の第一実施形態を示すフローチャートである。
【図６】本発明に係るキャッシュメモリ制御装置の第二実施形態における管理テーブルを示す図表である。
【図７】本発明に係るキャッシュメモリ制御装置の第三実施形態を示すブロック図である。
【図８】本発明に係るディスクアレイ装置の第一実施形態を示すブロック図である。
【符号の説明】
【００６１】
１０，６０  キャッシュメモリ制御装置
１１  転送アドレス保持手段
１２  転送レングス保持手段
１３  転送コマンド保持手段
１４  転送データ保持手段
１５  テーブル制御手段
１６，１６１，５０  管理テーブル
１７  アドレス変換手段
１８  バースト制御手段
１９  パディング手段
２０  転送要求
２１  転送アドレス
２２  転送レングス
２３  転送コマンド
２４  ライトデータ
３０  ＤＲＡＭアクセス情報
３１  ＤＲＡＭアドレス
３２  バーストレングス
３３  転送コマンド
３４  ライトデータ、パディングデータ
５１  エントリ
５２  バーストアドレス空間
５３  リード違反フラグ
５４  完了フラグ
６１  診断コマンド保持手段
７０  ディスクアレイ装置
【図１】
0004572859.tif 000002
【図２】
0004572859.tif 000003
【図３】
0004572859.tif 000004
【図４】
0004572859.tif 000005
【図５】
0004572859.tif 000006
【図６】
0004572859.tif 000007
【図７】
0004572859.tif 000008
【図８】
0004572859.tif 000009