(57)【要約】 【課題】  キャッシュメモリのデフラグを実行して停電時に通電すべきキャッシュメモリモジュールを少なくするとともに、バッテリ容量に応じて段階的にハードディスク装置へ必要なデータを待避させることにより、バッテリ電源の消耗を抑えて保持期間を延伸させるとともに停電復旧時のキャッシュデータ再構成を迅速に行えるようにする。【解決手段】  １以上のハードディスク装置と、上位装置からの書き込みデータおよび前記ハードディスク装置からの読み出しデータが登録される複数のキャッシュメモリモジュールと、外部電源の障害時に代わって電力を供給するバッテリ電源とを備える磁気ディスク装置において、前記キャッシュメモリモジュールのデフラグメントおよび／またはキャッシュデータの並べ替えを行ってキャッシュデータを集中化するとともに、前記バッテリ電源での駆動時にバックアップ対象データのないキャッシュメモリモジュールへの電力供給を停止する。【選択図】  図１
2006172355.tif 000002
【特許請求の範囲】
【請求項１】
１以上のハードディスク装置と、上位装置からの書き込みデータおよび前記ハードディスク装置からの読み出しデータが登録される複数のキャッシュメモリモジュールと、外部電源の障害時に代わって電力を供給するバッテリ電源とを備える磁気ディスク装置において、前記キャッシュメモリモジュールのデフラグメントおよび／またはキャッシュデータの並べ替えを行ってキャッシュデータを集中化するとともに、前記バッテリ電源での駆動時にバックアップ対象データのないキャッシュメモリモジュールへの電力供給を停止することを特徴とする磁気ディスク装置。
【請求項２】
請求項１に記載の磁気ディスク装置において、前記バッテリ電源での駆動時に前記バッテリ電源の残量が所定以下となった場合に、前記ハードディスクの１台を駆動してバックアップ対象データを書き込むことを特徴とする磁気ディスク装置。
【請求項３】
請求項２に記載の磁気ディスク装置において、前記バックアップ対象データは、少なくとも書き込みキャッシュデータと書き込みキャッシュ制御情報を含み、好ましくはさらに読み出しキャッシュ制御情報を含むことを特徴とする磁気ディスク装置。
【請求項４】
１以上のハードディスクと、上位装置からの書き込みデータおよび前記ハードディスク装置からの読み出しデータが登録される複数のキャッシュメモリモジュールと、外部電源の障害時に代わって電力を供給するバッテリ電源とを備える磁気ディスク装置の制御方法であって、前記キャッシュメモリモジュールのデフラグおよび／または並べ替えを行ってキャッシュデータを集中化し、前記バッテリ電源での駆動時にバックアップ対象データのないキャッシュメモリモジュールへの電力供給を停止することを特徴とする磁気ディスク装置の制御方法。
【請求項５】
請求項４に記載の方法において、前記キャッシュメモリモジュールのデフラグおよび／または並べ替えは、前記キャッシュメモリモジュールへのアクセスがないときに実行されることを特徴とする磁気ディスク装置の制御方法。
【請求項６】
請求項４または５に記載の方法において、前記バッテリ電源での駆動時にその残量が所定の第１の値以下となった場合に、前記キャッシュメモリモジュールから読み出しキャッシュデータを削除するステップを含むことを特徴とする磁気ディスク装置の制御方法。
【請求項７】
請求項６に記載の方法において、前記読み出しキャッシュデータの削除は、先にキャッシングされたものから削除されることを特徴とする磁気ディスク装置の生業方法。
【請求項８】
請求項４乃至７のいずれかに記載の方法において、前記バッテリ電源での駆動時にその残量が所定の第２の値以下となった場合に、前記キャッシュメモリモジュールから、読み出しキャッシュデータに加え読み出しキャッシュ制御情報を削除するステップを含むことを特徴とする磁気ディスク装置の制御方法。
【請求項９】
請求項８に記載の方法において、前記読み出しキャッシュ制御情報を削除するステップは、前記ハードディスクの１つに電力を供給して前記読み出しキャッシュ制御情報を書き込んでから削除することを特徴とする磁気ディスク装置の制御方法。
【請求項１０】
請求項４乃至９に記載の方法において、前記バッテリ電源での駆動時にその残量が所定の第３の値以下となった場合に、書き込みキャッシュデータおよび書き込みキャッシュ制御情報を前記ハードディスクに書き込むことを特徴とする磁気ディスク装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、磁気ディスク装置およびその制御方法に関し、特に、障害による外部電源遮断時にキャッシュメモリ内のデータ種別やバッテリ残量に合わせた制御を行うことによりキャッシュデータを保護しつつバッテリ電源の電力消費を低減させる技術に関する。
【背景技術】
【０００２】
例えばディスクアレイ装置等の磁気ディスク装置はキャッシュメモリを備えており、データ書き込み時には書き込みデータを一旦キャッシュメモリに取り込んでから磁気ディスクへの書き込みを行い、データ読み出し時には読み出しデータをキャッシュメモリに保存しておき、次に同じデータへの読み出し要求を受けた場合の高速アクセスを可能としている。キャッシュメモリは揮発性であり、電源が遮断された場合には保持しているデータが消去されてしまうため、この種の装置ではバックアップ電源を備えて予期せぬ電源遮断時などにキャッシュメモリの内容を保持するようにしている。
【０００３】
この磁気ディスク装置の構成を図６に示す。この装置は複数のハードディスク装置１００−１〜１００−ｎをＲＡＩＤ方式で制御しており、ＨＤＤ制御回路１０７と、外部商用電源（図示せず）に接続された外部電源回路１２０と、上位回路１０１と、バッテリ回路１０２と、電源制御回路１０３と、複数のキャッシュメモリ１０５−１〜１０５−ｎとを備えている。外部電力が供給されている通常状態において、各要素には外部電源回路１２０から得た電力が供給される。障害により外部電源回路１２０からの供給電力が途絶えると、電源制御回路１０３はキャッシュメモリ１０５−１〜１０５−ｎへの電源ラインをバッテリ回路１０２へと切り替え、すべてのキャッシュメモリ１０５の内容を保持するよう構成されている。
【０００４】
このため、キャッシュメモリの数が多いとバッテリ回路１０２の消耗が早く、長時間のキャッシュデータの保持が難しいという問題があった。換言すれば、多数のキャッシュメモリの内容を長時間保持しようとするとバッテリ回路１０２を大容量化する必要があった。
【０００５】
また、停電時にバッテリ電源を用いてキャッシュメモリの内容をハードディスク装置に書き込み、その内容を後で復旧できるようにした装置がある（例えば、特許文献１）。この種のディスクアレイ装置の構成を図７に示す。本図に示すように、この装置ではハードディスク装置２００−１〜２００−ｎも電源制御回路２０３に接続されており、障害により外部電源回路２２０からの電力供給が途絶えたときにキャッシュメモリ内のデータをハードディスク装置２００−１〜２００−ｎに書き込む。しかしながら、ＲＡＩＤ方式でハードディスク装置２００−１〜２００−ｎにキャッシュメモリ２０５−１〜２０５−ｎ内のデータを書き込む構成では、すべてのハードディスク装置２００−１〜２００−ｎを駆動する必要があるためバッテリ電力の消費が激しくなるという問題がある。また、外部電源からの電力供給が再開されたときにハードディスク装置２００−１〜２００−ｎから必要なデータを読み出してキャッシュメモリの状態を停電前と同じ状態に戻す必要があるため、停電時間が短くてもキャッシュメモリの内容の復旧に時間がかかってしまうという問題もある。
【０００６】
また、この特許文献１の実施例では、ライトキャッシュとリードキャッシュで書き込むメモリモジュールを分けており、停電時にはライトキャッシュデータを書き込むモジュールのみをバックアップ対象として通電する一方、リードキャッシュデータのメモリモジュールへの電源供給を遮断し、バッテリ電源の電力消費を抑えることが開示されている。また、別の文献では、停電時にキャッシュメモリのデータをバックアップディスクへ書き込み待避する際、一部のハードディスクのみを使用するようにして、非バックアップディスクの電力供給を停止させることで補助電源の電力消費を抑える提案がなされている（例えば、特許文献２）。
【０００７】
【特許文献１】特開２００４−７８９６３号公報
【特許文献２】特開平１１−３２７８１１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上記特許文献１のように、停電時にバックアップ対象データの存在するメモリモジュールだけにバックアップ電力を供給することでバックアップ電源の消耗を抑えることができる。しかしながら、バックアップの必要なデータの量は少ないが、そのデータがフラグメント化されて複数のキャッシュメモリモジュールに点在しているような場合は、これら総てのキャッシュメモリにバックアップ電力を供給する必要があり、バックアップ電源の消耗が抑えられないという問題がある。
【０００９】
また、外部電源からの電力が停止したときにリードキャッシュが破棄されてしまうため、例えば停電が短時間で復旧した場合にもリードキャッシュがない状態となりその後の読み出し動作に時間がかかるという不都合も生ずる。
【００１０】
本発明は、キャッシュメモリへのアクセスがないときには常にデフラグメントを実行して保持すべきキャッシュメモリを少なくするとともに、バッテリ容量に応じてハードディスク装置へ必要なデータを待避させることにより、バッテリ電源の消耗を抑えて保持期間を延伸させるとともに停電復旧時のキャッシュメモリ再構成を迅速に行えるようにした磁気ディスク装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、１以上のハードディスクと、上位装置からの書き込みデータおよび前記ハードディスク装置からの読み出しデータが登録される複数のキャッシュメモリモジュールと、外部電源の障害時に代わって電力を供給するバッテリ電源とを備える磁気ディスク装置の制御方法において、前記キャッシュメモリモジュールのデフラグおよび／または並べ替えを行ってキャッシュデータを集中化し、前記バッテリ電源での駆動時にバックアップ対象データのないキャッシュメモリモジュールへの電力供給を停止することを最も主要な特徴とする。
【００１２】
前記キャッシュメモリモジュールのデフラグおよび／または並べ替えは、前記キャッシュメモリモジュールへのアクセスがないときに実行されることが有効である。
【００１３】
実施例において、前記バッテリ電源での駆動時にその残量が所定の第１の値以下となった場合に、前記キャッシュメモリモジュールから読み出しキャッシュデータを古い方から削除するステップを含むことが有効である。
【００１４】
また、前記バッテリ電源での駆動時にその残量が所定の第２の値以下となった場合に、前記キャッシュメモリモジュールから、読み出しキャッシュデータに加え読み出しキャッシュ制御情報を削除するステップを含むことが有効である。
【００１５】
この場合、前記読み出しキャッシュ制御情報を削除するステップは、前記ハードディスクの１つに電力を供給して前記読み出しキャッシュ制御情報を書き込んでから前記キャッシュメモリモジュールから削除することが有効である。
【００１６】
また、前記バッテリ電源での駆動時にその残量が所定の第３の値以下となった場合に、書き込みキャッシュデータおよび書き込みキャッシュ制御情報を前記ハードディスクに書き込むことが有効である。
【発明の効果】
【００１７】
複数のキャッシュメモリモジュールを備える環境において、デフラグおよび並べ替えにより使用するキャッシュメモリモジュールの数を可能な限り減らすことにより、停電時にデータを保持させるためにバッテリ電源を投入すべきモジュールの数を減らすことができる。不要なモジュールへの電力供給を停止させることにより、停電時にバッテリ電源の消耗を可能な限り減らして電源バックアップ期間を長期化することができる。このデフラグおよび並べ替えは、キャッシュメモリへのアクセスがないときは常に行うようにすると、不意の停電にもデフラグの時間をかけることなく迅速に電力節約を図ることができる。
【００１８】
また、読み出しキャッシュデータは消去されても装置動作に問題は生じないため、外部電力の停止が継続する場合にはこれを削除してキャッシュメモリモジュールの電源を切るようにすると、バッテリ電源の消耗をさらに抑えることができる。なお、この場合に読み出しキャッシュ制御情報をハードディスク装置に待避させておけば、ハードディスクから読み出しキャッシュデータが復旧可能となり、外部電力復旧時にキャッシュデータを復旧させることができる。
【００１９】
さらに外部電力の停止が継続した場合、書き込みキャッシュデータおよび書き込みキャッシュ制御情報を前記ハードディスクに待避させるようにすれば、復旧後に支障が生じるのを確実に回避することができる。
【発明を実施するための最良の形態】
【００２０】
本発明を実施するための最良の実施形態について、図面を参照しながら以下に詳細に説明する。
【００２１】
図１は、本発明に係る磁気ディスク装置の構成を示すブロック図である。図１に示すように、磁気ディスク装置は複数のハードディスク装置１０−１、１０−２・・・１０−ｎをＲＡＩＤ方式で制御しており、ＨＤＤ制御回路７と、外部商用電源に接続された外部電源回路２０と、上位回路１と、バッテリ回路２と、電源制御回路３と、複数のキャッシュメモリモジュール５−１〜５−ｎと、これらキャッシュメモリモジュール５および第１のハードディスク装置１０−１への電力供給やキャッシュデータの待避を制御する制御部４とを備え、上位装置２１に接続されている。
【００２２】
上位回路１は上位装置２１との通信を行い、上位装置２１から送られてくる書き込みデータを制御回路４に送付し、また制御回路４から読み出しデータを受け取って上位装置２１に送出する。また外部電源回路２０からの電力を、電源制御回路３および２番目以降のハードディスク装置１０−２〜１０−ｎに供給する。この上位回路１は通常動作時には外部電源回路２０からの電力で動作するが、外部電源回路２０からの電力供給が停止した場合は電源制御回路３を介して供給されるバッテリ電源２によって内部の必要な一部の回路のみが動作し、上位装置２１に外部電源が切断された旨を連絡する。
【００２３】
バッテリ回路２は蓄電池などで構成されており、通常動作時には外部電源により充電され、停電時には電源制御回路３を経由して必要な要素に電力を供給する。電源制御回路３は、上位回路１からの外部電力とバッテリ回路２からのバッテリ電力との切替を行い、バッテリ回路２の充電状態を管理するとともに放電時のバッテリ残量を検出して、制御回路４や上位回路１に通知する回路である。通常動作時には、上位回路１を経由した外部電源回路２０からの供給電力を、制御回路４、各キャッシュメモリモジュール５−１〜５−ｎ、ＨＤＤ制御回路７、１番目のハードディスク装置１０−１などに供給し、バッテリ回路２を充電する。外部電源回路２０からの供給電力が閾値以下となると制御部４に通知し、制御部４の指令により電源供給元をバッテリ回路２に切り替えて上記要素にバッテリ電力を供給する。
【００２４】
ハードディスク装置１０−１〜１０−ｎは、ＨＤＤ制御回路７によりＲＡＩＤ制御される磁気ディスクドライブであり、通常動作時には通常のディスクアレイ動作を行ってデータの読み書きを実行する。上述のように、ハードディスク装置１０のうち２番目以降のハードディスク装置１０−２〜１０−ｎは上位回路１からの外部供給電力で駆動され、外部電源の障害時には電力供給が絶たれ動作を停止する。これに対し、１番目のハードディスク装置１０−１は電源制御回路３から電力を受けており、停電時にもバッテリ回路２の電力で動作し得るよう構成されている。このハードディスク装置１０−１にはキャッシュデータ待避領域８が確保されており、必要に応じて停電時にこのハードディスク装置１０−１を起動してこの領域８に必要なキャッシュデータを書き込むことができる。
【００２５】
キャッシュメモリモジュール５−１〜５−ｎは揮発性のメモリ回路であり、制御部４の制御下で、上位回路１から送られる書き込みキャッシュデータや書き込みキャッシュ制御情報、ＨＤＤ制御回路７からの読み出しキャッシュデータや読み出しキャッシュ制御情報を保持する。ここで、書き込みキャッシュ制御情報とはキャッシングしている書き込みアドレスなどの制御情報であり、読み出しキャッシュ制御情報とは先読みキャッシュする予定のアドレスや現在キャッシングしているアドレスなどの制御情報などである。これらのキャッシュメモリモジュール５−１〜５−ｎは、それぞれ個別に電源制御回路３から電力供給を受けており、個別に電源オン／オフの制御が可能である。電源制御回路３は、外部電源の障害時にバッテリ回路２の電力をキャッシュメモリ５に供給する。
【００２６】
制御回路４は、キャッシュメモリ５およびハードディスク装置１０の動作を管理し、外部電源の障害時に電源制御回路３を制御して必要な要素への電力供給元をバッテリ回路２に切り替える。この制御回路４は電源制御回路３を介して外部電源回路２０からの電力供給状況を監視しており、外部電源回路２０が停止したときにはバッテリ回路２からの供給電力に切り替えるよう電源制御回路３へ指示を出し、以降にバッテリ回路２の状況や残量を監視する。また、外部電力が供給されている通常動作時は、キャッシュメモリ５の状態を監視し、キャッシュメモリ５のデフラグ、データ書き込み、読み出し、並べ替えを行い、またＨＤＤ制御部７に対し書き込み／読み出しデータの送受信を行う。外部電源回路２０からの電力供給が停止すると、バッテリ回路２の残量に応じてバッテリ電力の供給先を決定し、キャッシュメモリ５のデフラグ、データ書き込み、読み出し、並べ替えを行い、必要に応じてハードディスク装置１０−１にキャッシュデータを書き込み、また外部電源回路２０の復旧時にキャッシュデータの復旧を行う。
【００２７】
制御回路４の機能を具体的に説明する。通常動作時は、制御回路４は上位回路１から送られる書き込みデータを書き込みキャッシュデータとしてキャッシュメモリモジュール５−１〜５−ｎへ書き込み、必要な段階でキャッシュメモリ５から書き込みキャッシュデータを読み出してＨＤＤ制御回路７に送出し、当該書き込みキャッシュデータをキャッシュメモリ上から削除する。また上位装置２１からのデータ読み出し命令に応じて、ＨＤＤ制御回路７を介してハードディスク１０−１〜１０−ｎからデータを読み出し、読み出しキャッシュデータとしてキャッシュメモリ５−１〜５−ｎへ書き込み、必要な段階でこれらの読み出しキャッシュデータをキャッシュメモリ５から読み出して上位回路１に送出する。この動作は従来の書き込み／読み出し動作と同様であり、詳細な説明は省略するが、例えば読み出し命令を受けたときに該当するデータが既にキャッシュメモリ５にあればハードディスク装置１０から読み出すことなく当該キャッシュデータを上位回路１へ送出し、またハードディスク装置１０に書き込まれていない書き込みキャッシュデータのアドレスへ更なる書き込み命令を受けたときには該当する書き込みキャッシュデータを更新するようにしてデータアクセスの高速性を実現する。
【００２８】
本発明において、制御回路４は常時キャッシュメモリ５におけるキャッシュデータの配置を監視し、キャッシュメモリ５へのアクセスがないとき、キャッシュデータのデフラグおよび並べ替えを行い、使用しているメモリ領域の集中化を図っている。このデフラグおよび並べ替えは、キャッシュメモリ５のアドレスの前の方から、（１）書き込みキャッシュ制御情報、（２）書き込みキャッシュデータ、（３）読み出しキャッシュ制御情報、（４）読み出しキャッシュデータの順に配置され、さらに読み出しキャッシュデータについては新しくキャッシングされたものから古いものへと順に配置される。本実施例では、外部電源回路２０が停止した場合にもバッテリ電源２の電力を用いてこのデフラグおよび並べ替えが行われる。デフラグメント処理によりキャッシュ領域内でアドレスの前の方にキャッシュデータが集中化され、キャッシュ領域の後半部分に空き領域が生じることになる。
【００２９】
外部電源回路２０からの電力供給が停止した場合、制御回路４はキャッシュデータ保持のためキャッシュメモリ５にバッテリ電力を供給させるが、第１の段階として、キャッシュメモリ５を参照し電力供給不要なキャッシュメモリモジュールがあれば当該モジュールへの電力供給を停止するよう電源制御回路３に通知する。上記のように複数のキャッシュメモリモジュール５−１〜５−ｎを備える環境において、デフラグおよび並べ替えによりアドレスの前の方にデータが集中し後側に空きがある場合、データのないアドレス後側部分のメモリモジュールは通電させる必要がなく、このようなメモリモジュールへの電力供給を停止することでバッテリ回路２の消耗を軽減させ、停電時のデータ保持期間を延伸することができる。
【００３０】
この第１段階の途中で外部電力が復旧すれば電源制御回路３から制御回路４へ通知され、制御部４は上位回路１を介して外部電源回路２０からの電力を使用するよう電源制御回路３に指示を出す。これにより装置は停電前と何ら変わらない状態で通常動作を継続することができる。
【００３１】
停電が続き、バッテリ回路２のバッテリ残量がある閾値より少なくなった場合、制御回路４は第２の段階として、キャッシュメモリ５上の読み出しキャッシュデータを古いものから削除し、不要となったキャッシュメモリモジュールがあれば電力供給を停止するよう指示を出す。上述のように、デフラグ及び並べ替えによりキャッシュメモリモジュール５−１〜５−ｎにおいてアドレスの後側に古い読み出しキャッシュデータが配置されるため、制御手段４が読み出しキャッシュ制御情報を参照して古い読み出しキャッシュデータを削除すると、キャッシュメモリ５の後側がさらに空くことになる。これによりキャッシュメモリ５においてこのキャッシュデータが書き込まれていたキャッシュメモリモジュールへの通電が不要となるため、この電力を遮断することによりバッテリ回路２の消耗を軽減することができる。なお、古い読み出しキャッシュデータの削除は、キャッシュメモリ５への書き込みから所定期間経たものをすべて削除するようにしてもよいし、例えば前記閾値からバッテリ残量が５％減るごとにキャッシュメモリ容量の１０％分を削除するというように、段階的に行うようにしてもよい。また、古い読み出しキャッシュデータを電気的に削除してからこれが格納されていたキャッシュメモリモジュールの電源を切るのではなく、制御部４が読み出しキャッシュ制御情報を参照して、古い読み出しキャッシュデータが登録されているキャッシュメモリモジュールの電源をそのまま切るよう指示を出してもよい。電源を切ると当該キャッシュメモリモジュールが保持している読み出しキャッシュデータは消去されるため、当該キャッシュデータを削除してからキャッシュメモリモジュールの電源を切断するのと同じ結果となる。この場合の制御もバッテリ残量に応じて段階的にキャッシュメモリモジュールの電源を１つずつ切るようにしてもよい。
【００３２】
この第２段階の途中で外部電力が復旧した場合、制御部４は読み出しキャッシュ制御情報を参照し、削除された読み出しキャッシュデータの復旧を指示する。すなわち、読み出しキャッシュ制御情報にはキャッシングしていた読み出しデータのアドレス等が登録されているため、これに基づき該当データをハードディスク装置１０から読み出してキャッシュメモリ５に再び格納する。これによりキャッシュメモリ５の登録内容を停電前の状態に復旧することができる。
【００３３】
さらに電源障害が続いてバッテリ残量が少なくなった場合、制御部４は第３段階として、読み出しキャッシュデータのすべてを削除し、不要となったキャッシュメモリモジュールの電源を切るよう電源制御回路３に指示を出す。これにより通電させるキャッシュメモリモジュールが減りバッテリ電源の消耗が抑えられる。なお、この処理は上記第２段階の行程を継続した結果のものであってもよいし、第２段階の処理とは別個に、バッテリ残量がある閾値以下となったら優先的に割り込み実行するようにしてもよい。
【００３４】
さらに電源障害が続いてバッテリ残量が少なくなった場合、制御部４は第４段階として、読み出しキャッシュ制御情報をハードディスクに待避させてからキャッシュメモリ５から削除し、不要となったキャッシュメモリモジュールの通電を停止するよう電源制御回路３に指示する。すなわち、制御部４はＨＤＤ制御回路７および１番目のハードディスク装置１０−１に電力を供給させて起動し、キャッシュメモリ５から読み出しキャッシュ制御情報を読み出して、ハードディスク装置１０−１のキャッシュデータ待避領域８に書き込むようＨＤＤ制御部７に送出し、書き込み終了後にハードディスク装置１０−１、ＨＤＤ制御部７、および他に必要なデータが格納されていなければ読み出しキャッシュ制御情報が格納されていたキャッシュメモリモジュールへの電源供給を停止させる。なお、この場合は後に復旧できるように読み出しキャッシュ制御情報を待避させた旨を記憶しておく。
【００３５】
この第４段階の途中で外部電源が復旧した場合、制御部４はハードディスク装置１０−１に待避させた読み出しキャッシュ制御情報を読み出してキャッシュメモリ上に登録し、さらにこの読み出しキャッシュ制御情報に基づいて読み出しキャッシュデータをハードディスク装置１０−１〜１０−５から読み出し、キャッシュメモリ上に復元する。これにより停電前と同じ状態を復元することができる。
【００３６】
なお、他の実施例では読み出しキャッシュ制御情報をハードディスク装置１０−１に待避させずにキャッシュメモリ上から削除するようにしてもよい。実際、読み出しキャッシュデータはデータ読み出し処理を高速化させるためのものであり、なければないでハードディスクから読み出せばよいため、復旧できなくてもシステムエラー等が生じるものではない。読み出しキャッシュ制御情報をそのまま削除する構成とすると、ハードディスク装置に待避させるための電力が不要となり、バッテリ電源の消耗を抑えることができる。
【００３７】
さらに電源障害が続いてバッテリ残量が少なくなった場合、制御部４は第５段階として、キャッシュメモリ上の書き込みキャッシュデータおよび書き込みキャッシュ制御情報をハードディスク装置１０−１に待避させ、その旨を記憶する。すなわち、ＨＤＤ制御回路７およびハードディスク装置１０−１に電力を供給させて起動し、キャッシュメモリ５から書き込みキャッシュデータおよび書き込みキャッシュ制御情報を読み出し、ハードディスク装置１０−１のキャッシュデータ待避領域８に書き込むようＨＤＤ制御部７に送出し、書き込み終了後にハードディスク装置１０−１、ＨＤＤ制御部７への電源供給を停止させる。上記の読み出しキャッシュデータとは異なり、書き込みキャッシュデータおよび制御情報はデータ書き込み途中のキャッシュデータであり消去されると不整合が生じるため、これらについてはすべてハードディスクに待避させるようにしている。この場合にもハードディスク装置１０−１のみを駆動してキャッシュデータ待避領域８に待避させるようにしているため、すべてのハードディスク装置１０−１〜１０−ｎを起動して書き込むより消費電力が少なくてすむ。したがって、バッテリ電源によるバックアップ時間を延伸してデータ保持性能を向上させることができる。
【００３８】
この後に外部電源が復旧した場合、制御部４はハードディスク装置１０−１のキャッシュデータ待避領域８に待避させた書き込みキャッシュ制御情報、書き込みキャッシュデータ、読み出しキャッシュ制御情報を読み出してキャッシュメモリ上に登録する。また、上記第４段階と同様に読み出しキャッシュ制御情報に基づいて読み出しキャッシュデータをハードディスク装置１０−１〜１０−５から読み出し、キャッシュメモリ上に復元する。これにより停電前と同じ状態を復元することができる。なお、第５段階の途中で外部電源が復旧した場合は、書き込みキャッシュデータおよび制御情報はキャッシュメモリ５上に残っている状態であるため、読み出しキャッシュ制御情報のみを読み出して読み出しキャッシュデータを復元すれば足りる。データ復旧後は、ハードディスク装置１０−１のキャッシュデータ待避領域８の内容を消去する。
【実施例１】
【００３９】
図２〜図５を用いて、この磁気ディスク装置の具体的な動作を説明する。図２はキャッシュメモリ５の登録内容を示す図であり、図３〜図５は磁気ディスク装置の動作を説明するフローチャートである。前提として、外部電源から電力供給を受けている通常動作時、電源制御回路３は制御回路４、キャッシュメモリ５、ＨＤＤ制御回路７、１番目のハードディスク装置１０−１に対し、上位回路１を経由した外部電源回路２０からの電力を供給している。また、外部電力でバッテリ回路２を充電し、充電状態や外部電源回路２０の状態を制御回路４に通知している。２番目以降のハードディスク装置１０−２〜１０−ｎは上位回路１からの電力供給を受け動作している。
【００４０】
制御回路４は上位回路１から伝達されるリード／ライト命令に対し通常のキャッシュ動作を行うとともに、キャッシュメモリ５へのアクセスがないときには、キャッシュメモリ５のデフラグメントおよび並べ替えを行う。図２（ａ）に示すように、通常のキャッシュ動作においてキャッシュデータはキャッシュメモリ５の全域にフラグメント（断片）化されて格納されており、これをデフラグおよび並べ替えすることによって、図２（ｂ）に示す状態となる。本実施例では５つのキャッシュメモリモジュール５−１〜５−５を備えており、アドレスの前の方から、書き込みキャッシュ制御情報、書き込みキャッシュデータ、読み出しキャッシュ制御情報、読み出しキャッシュデータの順に配置され、さらに読み出しキャッシュデータは新しく登録されたものが前側に配置されている。
【００４１】
図３に示すように、制御回路４は電源制御回路３からの信号を受け、外部電源回路２０の状態を常時監視している（ステップＳ１）。外部電源２０が停止すると（ステップＳ２）、電源制御回路３は制御回路４に外部電源回路２０が停止したことを連絡し、電力供給元をバッテリ回路２に切り替え、上位回路１、制御回路４、キャッシュメモリ５−１〜５−ｎに供給する。また、制御回路４は上位回路１を介して外部電源回路２０が停止したことを上位装置２１に連絡し（ステップＳ３）、その後、上位回路１への電力供給を停止させる。この状態でハードディスク装置１０−１〜１０−ｎ、ＨＤＤ制御装置７への電力供給は停止している。なお、このときも制御回路４はキャッシュメモリ５のデフラグおよび並べ替えを行い、データを最小数のキャッシュメモリモジュール上に集中させる。
【００４２】
デフラグ終了後、制御部４はキャッシュメモリ５を参照して、キャッシュデータがなく電力供給が不要となったキャッシュメモリモジュールがないかを確認し（ステップＳ４）、ある場合に当該モジュールへの電力供給を停止させ（ステップＳ５）、その旨を不揮発記憶する。図２（ｂ）に示す例では、デフラグおよび並べ替えによりキャッシュメモリモジュール５−５が空となっており、このモジュール５−５の電力供給が切断される。これにより、キャッシュメモリモジュール５−１〜５−５すべての電力供給を継続するよりもバッテリ電力を節約でき、データ保持期間を長期化することができる。
【００４３】
このとき外部電源回路２０が復旧すると（ステップＳ６）、電源制御回路３はバッテリ回路２から外部電源回路２０からの供給電力に切り替え、上位回路１、制御回路４、キャッシュメモリ５、ＨＤＤ制御回路７、ハードディスク装置１０−１などに電力を供給する。またハードディスク装置１０−２〜１０−ｎも上位回路１から電力を得て復旧する。このときキャッシュメモリ５の内容は停電前の状態を保っているため、磁気ディスク装置は即時に停電前の状態に復旧することができる。停電が復旧しない場合は工程Ａへと進む。
【００４４】
図４に示すように、停電時に制御回路４は電源制御回路３から通知されるバッテリ残量を監視し、停電が復旧せずバッテリ残量がある閾値以下となったら（ステップＳ１１）、キャッシュメモリ５を参照して古い読み出しキャッシュデータを削除し、不要となったキャッシュメモリモジュールへの電力供給を停止させる（ステップＳ１２〜Ｓ１３）。図２（ｃ）に示すように、読み出しキャッシュデータはアドレスの前側から新しい順に配置されており、後側の古い読み出しキャッシュデータを削除するとキャッシュメモリモジュール５−４が空くため、このモジュール５−４への電力供給を停止させ、その旨を不揮発記憶する。外部電力が復旧しない場合は読み出しキャッシュデータがすべて無くなるまでこの工程を段階的に繰り返す（ステップＳ１３）。この状態を図２（ｄ）に示す。読み出しキャッシュデータがすべて無くなったら工程Ｂへと進む。この段階で外部電源回路２０が復旧すると、電源制御回路３は電力供給元を外部電源回路２０に切り替え、制御回路４は、必要に応じてキャッシュメモリ５に残っている読み出しキャッシュ制御情報を基に読み出しキャッシュデータをハードディスク装置１０−１〜１０−ｎから読み出してキャッシュメモリ５に登録する（ステップＳ１４）。この場合、最後にアクセスを受けてから長時間経ったキャッシュデータはもう再アクセスが見込まれないものとして、復旧しないようにしてもよい。このようにしてキャッシュデータを復旧したら通常動作へ復帰する（Ｃ：図３ステップＳ１へ）。
【００４５】
さらに図５に示すように、外部電力が復旧せず（ステップＳ２１）、バッテリ残量がさらに少なくなったら（ステップＳ２２）、制御部４はＨＤＤ制御回路７およびハードディスク装置１０−１に電源を投入し、読み出しキャッシュ制御情報をハードディスク装置１０−１へ待避させてからキャッシュメモリ５上から削除し、不要となったメモリモジュールへの電源供給を停止させ、その旨を不揮発記憶する（ステップＳ２３）。この状態が図２（ｅ）である。この後に外部電力が復旧した場合（ステップＳ２４）、待避させた読み出し制御情報をハードディスク装置１０−１から読み出し（ステップＳ２７）、これに基づいて読み出しキャッシュ情報を復旧させる（Ｄ：図４ステップＳ１５へ）。
【００４６】
また、読み出しキャッシュ制御情報をハードディスクに待避させずに削除する実施例の場合、外部電力が復旧しても読み出しキャッシュデータは復旧できなくなるが、書き込みキャッシュデータおよび書き込みキャッシュ制御情報はキャッシュメモリ５上に置かれているので、特に問題なく動作を再開することができる。
【００４７】
さらに停電が継続し（ステップＳ２４）、バッテリ残量がさらに少なくなると（ステップＳ２５）、制御回路４は電源制御回路３を介してＨＤＤ制御回路７およびハードディスク装置１０−１の電源を投入し、書き込みキャッシュデータおよび書き込みキャッシュ制御情報をハードディスク装置１０−１のキャッシュデータ待避領域８に待避させ、その旨を不揮発記憶する（ステップＳ２６）。これにより、バッテリ残量がなくなってすべてのキャッシュメモリモジュールの電源が切れた場合でも、電源復旧時に書き込みキャッシュデータおよび制御情報をハードディスク装置１０−１から読み出してキャッシュメモリ５上に置くことにより、特に問題なく動作を再開することができる。
【００４８】
このように、フラグメント化されたキャッシュメモリ内のキャッシュデータや制御情報をデフラグメントおよび並べ替えにより集中させ、必要最小限のメモリモジュールへのみ電源を供給することでバッテリ回路によるデータ保持時間の長期化を図り、また外部電力障害の継続時間（すなわちバッテリ残量）に応じて、極力キャッシュメモリ内のデータを残すようにすることで、外部電力復旧時のキャッシュメモリ内容の復旧時間を短縮することができる。
【００４９】
以上に本発明の一実施例を詳細に説明したが、本発明は上記実施例に限られるものではなく、他の様々な実施例として実現することができる。例えば図２ではメモリモジュールを５つ備える装置について説明しているが、キャッシュメモリモジュールの数は４以下でも６以上でもよい。また、ハードディスク装置の数も１以上であれば任意に構成することができる。また、実施例のデフラグメント処理ではキャッシュメモリのアドレスの前側にキャッシュデータを集中化させているが、これは前側である必要はなく、制御部４が把握する限りにおいて任意のモジュールに集中させるようにしてもよい。
【産業上の利用可能性】
【００５０】
本発明に係る磁気ディスク装置およびその制御方法は、外部電力が障害により停止した場合にキャッシュメモリの内容保持の長期化および復旧時間の短縮を実現するものであり、大容量記憶装置やインターネットサーバなどのコンピュータ産業に好適に利用することができる。
【図面の簡単な説明】
【００５１】
【図１】本発明の実施形態に係る磁気ディスク装置の構成を示す図である。
【図２】キャッシュメモリの内容イメージを示す図である。
【図３】磁気ディスク装置の動作を説明するフローチャートである。
【図４】磁気ディスク装置の動作を説明するフローチャートである。
【図５】磁気ディスク装置の動作を説明するフローチャートである。
【図６】従来の磁気ディスク装置の構成を示す図である。
【図７】従来の磁気ディスク装置の構成を示す図である。
【符号の説明】
【００５２】
１      上位回路
２      バッテリ回路
３      電源制御回路
４      制御回路
５−１〜５−ｎ      キャッシュメモリ
７      ＨＤＤ制御回路
１０−１〜１０−ｎ    ハードディスク装置
２０    外部電源回路
２１    上位装置
【図１】
2006172355.tif 000003
【図２】
2006172355.tif 000004
【図３】
2006172355.tif 000005
【図４】
2006172355.tif 000006
【図５】
2006172355.tif 000007
【図６】
2006172355.tif 000008
【図７】
2006172355.tif 000009