(57)【特許請求の範囲】
【請求項１】
キャッシュデータを格納するメモリと、
不揮発性であり、前記キャッシュデータの全てを格納可能な容量を有する不揮発性メモリと、
前記メモリに格納された前記キャッシュデータをバックアップする場合に、前記メモリに格納された前記キャッシュデータを読み出し、読み出したキャッシュデータを前記不揮発性メモリに書き込む演算部と、を備え、
前記メモリは、前記演算部が前記キャッシュデータを前記不揮発性メモリに書き込みを行っている間は、セルフリフレッシュモードで動作し、
圧縮された状態のプログラムを格納するプログラム用不揮発性メモリをさらに備え、
前記メモリは、前記演算部が前記キャッシュデータを前記メモリから読み出し前記不揮発性メモリに書き込むためのプログラムを格納し、
前記演算部は、前記メモリに格納された前記キャッシュデータをバックアップする場合に、前記メモリに格納されている前記プログラムを、展開された状態で前記プログラム用不揮発性メモリに書き込み、前記プログラム用不揮発性メモリから、展開された状態で書き込まれた前記プログラムを読み出すことによって当該プログラムを実行することを特徴とする、バックアップ制御装置。
【請求項２】
前記プログラム用不揮発性メモリは、前記演算部が動作するためのプログラムを圧縮された状態で予め格納しているプログラム格納用のメモリであることを特徴とする、請求項１に記載のバックアップ制御装置。
【請求項３】
キャッシュデータを格納するメモリと、不揮発性であり、前記キャッシュデータの全てを格納可能な容量を有する不揮発性メモリと、を備えるバックアップ制御装置が、前記メモリに格納された前記キャッシュデータをバックアップする場合に、前記メモリに格納された前記キャッシュデータを読み出すステップと、
前記バックアップ制御装置が、前記メモリから読み出したキャッシュデータを前記不揮発性メモリに書き込むステップと、
前記バックアップ制御装置が、前記キャッシュデータを前記不揮発性メモリに書き込みを行っている間は、前記メモリをセルフリフレッシュモードで動作させるステップと、
を備え、
前記バックアップ制御装置が、プログラム用不揮発性メモリをさらに備え、
前記メモリが、前記不揮発性メモリに書き込むステップによって前記キャッシュデータを前記メモリから読み出し前記不揮発性メモリに書き込むためのプログラムを格納し、
前記不揮発性メモリに書き込むステップによって、前記メモリに格納された前記キャッシュデータをバックアップする場合に、前記メモリに格納されている前記プログラムを、展開された状態で前記プログラム用不揮発性メモリに書き込み、前記プログラム用不揮発性メモリから、展開された状態で書き込まれた前記プログラムを読み出すことによって当該プログラムを実行するバックアップ制御方法。
【請求項４】
キャッシュデータを格納するメモリと、不揮発性であり、前記キャッシュデータの全てを格納可能な容量を有する不揮発性メモリと、を備えるコンピュータに対し、
前記メモリに格納された前記キャッシュデータをバックアップする場合に、前記メモリに格納された前記キャッシュデータを読み出すステップと、
前記メモリから読み出したキャッシュデータを前記不揮発性メモリに書き込むステップと、
前記キャッシュデータを前記不揮発性メモリに書き込みを行っている間は、前記メモリをセルフリフレッシュモードで動作させるステップと、
を実行させ、
前記コンピュータがプログラム用不揮発性メモリをさらに備え、
前記メモリが、前記不揮発性メモリに書き込むステップによって前記キャッシュデータを前記メモリから読み出し前記不揮発性メモリに書き込むためのプログラムを格納し、
前記不揮発性メモリに書き込むステップによって、前記メモリに格納された前記キャッシュデータをバックアップする場合に、前記メモリに格納されている前記プログラムを、展開された状態で前記プログラム用不揮発性メモリに書き込み、前記プログラム用不揮発性メモリから、展開された状態で書き込まれた前記プログラムを読み出すことによって当該プログラムを実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、揮発性メモリに記録されたデータをバックアップする技術に関する。
【背景技術】
【０００２】
ディスクアレイ装置では、主電源による電力供給が途絶えた状態でもキャッシュデータを保持する必要がある。そのために、いくつかのバックアップ技術が提案されている。ＲＡＭ（Random Access Memory）デバイス保持方式では、補助電源からメモリに給電し、リフレッシュ動作を継続することによってキャッシュデータを保持する。また、不揮発性デバイス書き込み方式では、不揮発性デバイスにキャッシュデータを書き込むことによってキャッシュデータを保持する（特許文献１参照）。
【０００３】
図５は、本発明に関連する不揮発性デバイス書き込み方式によりバックアップを行うディスクアレイコントローラＲ１の構成を表す概略ブロック図である。図６は、ディスクアレイコントローラＲ１の処理の流れを表すフローチャートである。ディスクアレイコントローラＲ１の演算部Ｒ１０５は、バックアップ移行指示を受けると、二次電池Ｒ１０４に放電を開始させる。また、演算部Ｒ１０５は、メモリＲ１０１に記憶されている転送プログラムを実行する。そして、演算部Ｒ１０５は、転送プログラムに応じて、メモリＲ１０１からキャッシュデータを読み出し、不揮発性メモリＲ１０２に書き込む。
【０００４】
図７は、ディスクアレイコントローラＲ１の処理の概略を表す図である。演算部Ｒ１０５が不揮発性メモリＲ１０２に書き込み処理を行っている間、演算部Ｒ１０５によるメモリＲ１０１へのアクセスが無い時間は、メモリＲ１０１はアイドルモードとなっている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平８−１６１２３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記の不揮発性デバイス書き込み方式には、以下のような問題があった。一般的に、不揮発性メモリＲ１０２への書き込み処理には、揮発性のメモリＲ１０１からの読み出し処理に比べて、より多くの時間を要してしまう。その間は、メモリＲ１０１へ給電してキャッシュデータを保持する必要がある。また、演算部Ｒ１０５が実行する転送プログラムはメモリＲ１０１に格納されている。そのため、演算部Ｒ１０５が転送プログラムに従って動くためには、演算部Ｒ１０５が不揮発性メモリＲ１０２に書き込み処理を行っている間も、メモリＲ１０１を通常動作させておく必要があった。以上のことから、メモリＲ１０１の動作のために、多くの電力を要することとなり、二次電池Ｒ１０４の容量を大きくしておく必要があった。
【０００７】
上記事情に鑑み、本発明は、より少ない消費電力によって、不揮発性デバイス書き込み方式によるバックアップ処理を可能とする技術を提供することを目的としている。
【課題を解決するための手段】
【０００８】
本発明の一態様は、バックアップ制御装置であって、キャッシュデータを格納するメモリと、不揮発性であり、前記キャッシュデータの全てを格納可能な容量を有する不揮発性メモリと、前記メモリに格納された前記キャッシュデータをバックアップする場合に、前記メモリに格納された前記キャッシュデータを読み出し、読み出したキャッシュデータを前記不揮発性メモリに書き込む演算部と、を備え、前記メモリは、前記演算部が前記キャッシュデータを前記不揮発性メモリに書き込みを行っている間は、セルフリフレッシュモードで動作し、圧縮された状態のプログラムを格納するプログラム用不揮発性メモリをさらに備え、前記メモリは、前記演算部が前記キャッシュデータを前記メモリから読み出し前記不揮発性メモリに書き込むためのプログラムを格納し、前記演算部は、前記メモリに格納された前記キャッシュデータをバックアップする場合に、前記メモリに格納されている前記プログラムを、展開された状態で前記プログラム用不揮発性メモリに書き込み、前記プログラム用不揮発性メモリから、展開された状態で書き込まれた前記プログラムを読み出すことによって当該プログラムを実行することを特徴とする。
【０００９】
本発明の一態様は、バックアップ制御方法であって、キャッシュデータを格納するメモリと、不揮発性であり、前記キャッシュデータの全てを格納可能な容量を有する不揮発性メモリと、を備えるバックアップ制御装置が、前記メモリに格納された前記キャッシュデータをバックアップする場合に、前記メモリに格納された前記キャッシュデータを読み出すステップと、前記バックアップ制御装置が、前記メモリから読み出したキャッシュデータを前記不揮発性メモリに書き込むステップと、前記バックアップ制御装置が、前記キャッシュデータを前記不揮発性メモリに書き込みを行っている間は、前記メモリをセルフリフレッシュモードで動作させるステップと、を備え、前記バックアップ制御装置が、プログラム用不揮発性メモリをさらに備え、前記メモリが、前記不揮発性メモリに書き込むステップによって前記キャッシュデータを前記メモリから読み出し前記不揮発性メモリに書き込むためのプログラムを格納し、前記不揮発性メモリに書き込むステップによって、前記メモリに格納された前記キャッシュデータをバックアップする場合に、前記メモリに格納されている前記プログラムを、展開された状態で前記プログラム用不揮発性メモリに書き込み、前記プログラム用不揮発性メモリから、展開された状態で書き込まれた前記プログラムを読み出すことによって当該プログラムを実行する。
【００１０】
本発明の一態様は、キャッシュデータを格納するメモリと、不揮発性であり、前記キャッシュデータの全てを格納可能な容量を有する不揮発性メモリと、を備えるコンピュータに対し、前記メモリに格納された前記キャッシュデータをバックアップする場合に、前記メモリに格納された前記キャッシュデータを読み出すステップと、前記メモリから読み出したキャッシュデータを前記不揮発性メモリに書き込むステップと、前記キャッシュデータを前記不揮発性メモリに書き込みを行っている間は、前記メモリをセルフリフレッシュモードで動作させるステップと、を実行させ、前記コンピュータがプログラム用不揮発性メモリをさらに備え、前記メモリが、前記不揮発性メモリに書き込むステップによって前記キャッシュデータを前記メモリから読み出し前記不揮発性メモリに書き込むためのプログラムを格納し、前記不揮発性メモリに書き込むステップによって、前記メモリに格納された前記キャッシュデータをバックアップする場合に、前記メモリに格納されている前記プログラムを、展開された状態で前記プログラム用不揮発性メモリに書き込み、前記プログラム用不揮発性メモリから、展開された状態で書き込まれた前記プログラムを読み出すことによって当該プログラムを実行させるためのコンピュータプログラムである。
【発明の効果】
【００１１】
本発明により、より少ない消費電力によって、不揮発性デバイス書き込み方式によるバックアップ処理が可能となる。
【図面の簡単な説明】
【００１２】
【図１】ディスクアレイコントローラのシステム構成を表すシステム構成図である。
【図２】ディスクアレイコントローラの処理の流れを表すフローチャートである。
【図３】メモリ及び不揮発性メモリの状態遷移の概略を表す図である。
【図４】バックアップ制御装置のシステム構成を表すシステム構成図である。
【図５】本発明に関連する不揮発性デバイス書き込み方式によりバックアップを行うディスクアレイコントローラの構成を表す概略ブロック図である。
【図６】本発明に関連するディスクアレイコントローラの処理の流れを表すフローチャートである。
【図７】本発明に関連するディスクアレイコントローラの処理の概略を表す図である。
【発明を実施するための形態】
【００１３】
図１は、ディスクアレイコントローラ１のシステム構成を表すシステム構成図である。ディスクアレイコントローラ１は、ディスクアレイ（Disk Array）を制御する装置である。ディスクアレイとは、複数のハードディスクを用いた装置であり、例えばＲＡＩＤ（Redundant Arrays of Inexpensive Disks）やＪＢＯＤ（Just a Bunch Of Disks）等の装置である。
【００１４】
ディスクアレイコントローラ１は、メモリ１０１、不揮発性メモリ１０２、プログラム格納メモリ１０３、補助電源部１０４、演算部１０５、機能部２０１を備える。図１には、３以上の機能部２０１が図示されるが、機能部２０１は１つ又は２つであっても良く、その数は特に限定されない。
【００１５】
ディスクアレイコントローラ１には、不図示の主電源部から電力が供給される。主電源部は、ディスクアレイコントローラ１の一部として構成されても良いし、ディスクアレイコントローラ１の外部装置として構成されても良い。主電源部が電力の供給を正常に行っている間は、ディスクアレイコントローラ１の各部は、主電源部によって供給される電力によって動作する。一方、主電源部が電力の供給を正常に行えない場合は、図１の補助電源部供給範囲として破線の矩形に囲まれる各部は、補助電源部１０４によって供給される電力によって動作する。具体的には、メモリ１０１、不揮発性メモリ１０２、プログラム格納メモリ１０３、補助電源部１０４、演算部１０５が、補助電源部供給範囲に含まれる。そして、ディスクアレイコントローラ１は、補助電源部１０４によって供給される電力によって動作している間に、不揮発性デバイス書き込み方式によりバックアップを行い、メモリ１０１に格納されているキャッシュデータを不揮発性メモリ１０２に格納する。
【００１６】
メモリ１０１は、揮発性メモリ装置を用いて構成され、例えばＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）を用いて構成される。メモリ１０１は、ディスクアレイコントローラ１が制御する対象となるディスクアレイのキャッシュデータと、ディスクアレイを制御するための制御プログラムとを格納する。
【００１７】
不揮発性メモリ１０２は、不揮発性メモリ装置を用いて構成され、電力が供給されない状態となってもデータを保持し続ける。不揮発性メモリ１０２は、主電源部が電力の供給を正常に行えない場合に、演算部１０５によって書き込まれるキャッシュデータを格納する。不揮発性メモリ１０２は、少なくとも、メモリ１０１に格納されているキャッシュデータの全てを格納するための容量を備えている。
【００１８】
プログラム格納メモリ１０３は、不揮発性メモリ装置を用いて構成され、電力が供給されない状態となってもデータを保持し続ける。プログラム格納メモリ１０３は、ディスクアレイを制御するための制御プログラムを格納している。制御プログラムは、転送プログラムを含んでいる。転送プログラムとは、主電源部が電力の供給を正常に行えない場合に、演算部１０５がメモリ１０１に格納されているキャッシュデータを不揮発性メモリ１０２に転送してバックアップを行うためのプログラムである。プログラム格納メモリ１０３は、上記の各プログラムを予め格納している際に、圧縮された状態で格納しておくように構成されても良い。
【００１９】
補助電源部１０４は、電力を要する装置に対して電力を供給するための装置であり、例えば充放電可能な電池（二次電池）を用いて構成される。補助電源部１０４は、主電源部が電力の供給を正常に行えない場合に、補助電源部供給範囲に含まれる各部に電力を供給する。
【００２０】
演算部１０５は、例えばＣＰＵ（Central Processing Unit）等のプロセッサ装置を用いて構成される。演算部１０５は、メモリ１０１、不揮発性メモリ１０２、プログラム格納メモリ１０３、補助電源部１０４に対して通信手段を有する。演算部１０５は、プログラム格納メモリ１０３に格納されている制御プログラムに基づいて動作し、ディスクアレイコントローラ１に備えられる各部を制御することによって、ディスクアレイコントローラ１としての動作を実現する。また、演算部１０５は、主電源部が電力の供給を正常に行えない場合には、転送プログラムを実行することによって、メモリ１０１に格納されるキャッシュデータを不揮発性メモリ１０２に転送する処理を行う。
【００２１】
機能部２０１は、通信機能を有する装置（通信部）や、主電源部の動作を監視する装置（主電源監視部）や、外部装置とのインタフェースとして動作する装置（インタフェース部）など、ディスクアレイコントローラ１に必要となる各種装置を表す。各機能部２０１は、互いに同じ装置であっても良いし、互いに異なる装置であっても良い。
【００２２】
図２は、ディスクアレイコントローラ１の処理の流れを表すフローチャートである。上述したように、主電源部が電力の供給を正常に行っている間は、ディスクアレイコントローラ１の各部は主電源部によって供給される電力によって動作する。一方、主電源部が電力の供給を正常に行えなくなると、機能部２０１（主電源監視部）が異常の発生を検出し、バックアップ移行指示を演算部１０５に通知する。この場合、演算部１０５は、バックアップ移行指示を受ける（ステップＳ１０１）。また、主電源監視部が電力の供給を正常に行えなくなると、補助電源部１０４は放電を開始し、補助電源部供給範囲内の各部に対して電力の供給を始める（ステップＳ１０２）。補助電源部１０４が放電を開始するきっかけは、機能部２０１（主電源監視部）からのバックアップ移行指示の受信であっても良いし、演算部１０５からの放電開始指示の受信であっても良いし、その他であっても良い。
【００２３】
演算部１０５は、バックアップ移行指示を受けると、メモリ１０１から、展開された状態の転送プログラムを読み出す（ステップＳ１０３）。演算部１０５は、メモリ１０１から読み出された転送プログラムを、展開された状態で（圧縮されていない状態で）プログラム格納メモリ１０３に書き込む（ステップＳ１０４）。そして、演算部１０５は、プログラム格納メモリ１０３に展開された状態で書き込まれた転送プログラムを実行する（ステップＳ１０５）。このとき、演算部１０５は、転送プログラムをメモリ１０１に書き込むことなく、プログラム格納メモリ１０３に格納された転送プログラムを参照することによって、転送プログラムを実行する。
【００２４】
転送プログラムを実行すると、演算部１０５は、メモリ１０１に格納されているキャッシュデータの全てを不揮発性メモリ１０２に書き込んだか否か判定する（ステップＳ１０６）。メモリ１０１に格納されているキャッシュデータのうち、不揮発性メモリ１０２に書き込まれていないデータが残っている場合（ステップＳ１０６−ＮＯ）、演算部１０５は、メモリ１０１から新たなキャッシュデータを読み出す（ステップＳ１０７）。新たなキャッシュデータとは、未だ不揮発性メモリ１０２に書き込まれていないキャッシュデータである。
【００２５】
次に、演算部１０５は、メモリ１０１に対し、セルフリフレッシュモードに移行することを指示する（ステップＳ１０８）。メモリ１０１は、セルフリフレッシュモードに移行することの指示を受けると、セルフリフレッシュモードの状態に移行する。セルフリフレッシュモードとは、メモリ１０１が、外部からのアクセスによらず、自身のリフレッシュカウンタを用いて自動的にリフレッシュ動作を実行するモードである。メモリ１０１がセルフリフレッシュモードの状態で消費する電力は、通常時にメモリ１０１が消費する電力よりも小さい。
【００２６】
次に、演算部１０５は、メモリ１０１から読み出したキャッシュデータを、不揮発性メモリ１０２に書き込む（ステップＳ１０９）。演算部１０５は、不揮発性メモリ１０２に書き込む処理が完了すると、メモリ１０１に対しセルフリフレッシュモードを解除することを指示する（ステップＳ１１０）。メモリ１０１は、セルフリフレッシュモードを解除することの指示を受けると、セルフリフレッシュモードを解除し、通常の状態に移行する。この後、演算部１０５は、ステップＳ１０６の処理に戻る。
【００２７】
ステップＳ１０６の処理において、メモリ１０１に格納されているキャッシュデータのうち、不揮発性メモリ１０２に書き込まれていないデータが残っていない場合（ステップＳ１０６−ＹＥＳ）、演算部１０５は、それまで実行していた転送プログラムを完了する（ステップＳ１１１）。そして、演算部１０５は、補助電源部１０４に対し放電を終了するように指示する。この指示を受けて、補助電源部１０４は放電を終了する（ステップＳ１１２）。
【００２８】
図３は、メモリ１０１及び不揮発性メモリ１０２の状態遷移の概略を表す図である。図３において、メモリの段にある“Ｒ”の文字を含む矩形は、演算部１０５によるキャッシュデータの読み込み処理が行われている状態を表す。バックアップが開始されると、まず演算部１０５はメモリ１０１からキャッシュデータを読み出す。その後、演算部１０５は、メモリ１０１をセルフリフレッシュモードの状態にし、不揮発性メモリ１０２にキャッシュデータの書き込みを行う。図３から明らかなように、演算部１０５がメモリ１０１からキャッシュデータを読み出す処理に要する時間は、演算部１０５が不揮発性メモリ１０２にキャッシュデータを書き込む処理に要する時間に比べて非常に短い。そのため、ディスクアレイコントローラ１は、演算部１０５が不揮発性メモリ１０２にキャッシュデータを書き込む処理を行っている間、メモリ１０１をセルフリフレッシュモードとすることによって、この間のメモリ１０１における消費電力を削減することが可能となる。したがって、バックアップ処理に要する消費電力の総量を削減できるため、補助電源部１０４に用いられる二次電池の低価格化や小型化を実現できる。また、同様の理由により、補助電源部１０４に用いられる二次電池の選択の幅を広げることが可能となる。
【００２９】
＜変形例＞
ディスクアレイコントローラ１が備えるメモリ１０１、不揮発性メモリ１０２、プログラム格納メモリ１０３、補助電源部１０４、演算部１０５を、バックアップ制御装置１０として構成しても良い。図４は、バックアップ制御装置１０のシステム構成を表すシステム構成図である。バックアップ制御装置１０は、キャッシュデータのバックアップを必要とする装置であれば、ディスクアレイに拘わらずどのような装置に備えられても良い。このように構成されたバックアップ制御装置１０は、上記のディスクアレイコントローラ１と同様の効果を奏する。
【００３０】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【００３１】
１…ディスクアレイコントローラ，  １０…バックアップ制御装置，  １０１…メモリ，  １０２…不揮発性メモリ，  １０３…プログラム格納メモリ，  １０４…補助電源部，  １０５…演算部，  ２０１…機能部
【図１】
0005471570.tif 000002
【図２】
0005471570.tif 000003
【図３】
0005471570.tif 000004
【図４】
0005471570.tif 000005
【図５】
0005471570.tif 000006
【図６】
0005471570.tif 000007
【図７】
0005471570.tif 000008