(57)【要約】【課題】不揮発性メモリにキャッシュデータを退避させるために必要な電力を減少させること。【解決手段】キャッシュデータの退避指示に基づいて、ＣＰＵ１１はキャッシュメモリ１３に保存するキャッシュデータを読み出して圧縮し、当該圧縮キャッシュデータを生成する。また、不揮発性メモリコントローラ１４は、ＣＰＵ１１で生成した圧縮キャッシュデータを不揮発性メモリ１５に書き込む。【選択図】図１
2012164194.tif 000002
【特許請求の範囲】
【請求項１】
電源供給が遮断された場合、キャシュメモリに保存するキャッシュデータを不揮発性メモリに退避させるストレージ制御装置であって、
キャッシュデータの退避指示に基づいて、前記キャッシュメモリに保存するキャッシュデータを読み出して圧縮し、当該圧縮キャッシュデータを生成する第１の制御部と、
前記第１の制御部で生成した圧縮キャッシュデータを不揮発性メモリに書き込む第２の制御部と、
を備えることを特徴とするストレージ制御装置。
【請求項２】
前記第１の制御部は、前記第２の制御部が前記圧縮キャッシュデータを書き込むまでの間に前記キャッシュデータの圧縮を行う、ことを特徴とする請求項１記載のストレージ制御装置。
【請求項３】
前記第１の制御部は、前記第２の制御部を含むように構成されている、ことを特徴とする請求項１又は２記載のストレージ制御装置。
【請求項４】
電源供給が遮断された場合、キャシュメモリに保存するキャッシュデータを不揮発性メモリに退避させるストレージ制御装置のキャッシュデータ退避方法であって、
キャッシュデータの退避指示に基づいて、前記キャッシュメモリに保存するキャッシュデータを読み出すステップと、
前記読み出したキャシュデータを圧縮し、圧縮キャッシュデータを生成するステップと、
前記生成した圧縮キャッシュデータを不揮発性メモリに書き込むステップと、
を有することを特徴とするストレージ制御装置のキャッシュデータ退避方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置及びストレージ制御装置のキャッシュデータ退避方法に関する。
【背景技術】
【０００２】
ストレージ制御装置、例えば、ディスクアレイ装置におけるコントローラは、電源供給が遮断された場合、キャシュデータを保持するためにキャッシュデータを退避する必要がある。キャッシュデータを退避する方法として、不揮発性メモリにキャッシュデータを退避する方法が知れている。
【０００３】
また、キャッシュメモリ及び共有メモリに格納されているデータ、例えば、記憶装置に反映されていないダーティデータを不揮発性メモリに退避するディスクアレイ装置も知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−１９２０２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
電源供給が遮断されたときにキャシュメモリからデータを退避させる場合、キャッシュメモリに格納されている全てのデータ不揮発性メモリに書き込む必要がある。不揮発性メモリにデータを書き込むためにはストレージ制御装置内の２次電池からキャッシュメモリ等の各処理部に電源供給を行うため、全てのデータの書き込みが終了するまでの間、ストレージ制御装置内の２次電池が既述の各処理部への電源供給を維持できるようにする必要がある。
【０００６】
近年、キャッシュメモリの容量は大きくなっているため、キャッシュメモリに格納するデータ量も多くなっている。よって不揮発性メモリに退避するキャッシュデータの量も多くなっており、ストレージ制御装置内の各処理部を動作させるために必要な電力量も大きくなっている。
【０００７】
更に、例えば、キャッシュメモリからキャッシュデータを不揮発性メモリに退避する場合、先ず、キャッシュメモリから最初のキャッシュデータが読み出され、不揮発性メモリに書き込まれる。また、最初のキャッシュデータの不揮発性メモリへ読み出された後、次のキャッシュデータが直ちにキャッシュメモリから読み出されるが、一般的に、不揮発性メモリへデータを書き込む速度はキャッシュメモリからキャッシュデータを読み出す速度より十分遅いので、最初のキャッシュデータの書き込みが終了するまで次に読み出したキャッシュデータは転送されず、転送待ち時間が生じてしまう。
【０００８】
このようにキャッシュデータの転送待ち時間が生じることによって、キャッシュデータを不揮発性メモリに退避するための退避時間が更に長くなっており、ストレージ制御装置内の各処理部を動作させるために必要な電力量も更に大きくなっている。
【０００９】
本発明は、上記事情に鑑みてなされたものであり、その目的は、不揮発性メモリにキャッシュデータを退避させるために必要な電力を減少させることができるストレージ制御装置及びストレージ制御装置のキャッシュデータ退避方法を提供することにある。
【課題を解決するための手段】
【００１０】
本発明は、電源供給が遮断された場合、キャシュメモリに保存するキャッシュデータを不揮発性メモリに退避させるストレージ制御装置であって、キャッシュデータの退避指示に基づいて、キャッシュメモリに保存するキャッシュデータを読み出して圧縮し、当該圧縮キャッシュデータを生成する第１の制御部と、第１の制御部で生成した圧縮キャッシュデータを不揮発性メモリに書き込む第２の制御部と、を備えることを特徴とする。
【００１１】
他の本発明は、電源供給が遮断された場合、キャシュメモリに保存するキャッシュデータを不揮発性メモリに退避させるストレージ制御装置のキャッシュデータ退避方法であって、キャッシュデータの退避指示に基づいて、キャッシュメモリに保存するキャッシュデータを読み出すステップと、読み出したキャシュデータを圧縮し、圧縮キャッシュデータを生成するステップと、生成した圧縮キャッシュデータを不揮発性メモリに書き込むステップと、を有することを特徴とする。
【発明の効果】
【００１２】
本発明によると、不揮発性メモリにキャッシュデータを退避させるために必要な電力を減少させることができるストレージ制御装置及びストレージ制御装置のキャッシュデータ退避方法を提供できる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態に係るストレージ制御装置の構成を示す図である。
【図２】同実施の形態に係るキャッシュデータ退避処理を示すフローチャートである。
【図３】同実施の形態に係る退避処理の動作及び時間を説明するための図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態について図面を参照しながら説明する。
【００１５】
図１は、本発明のストレージ制御装置を適用したディスクアレイコントローラ１の構成を示す図である。ディスクアレイコントローラ１は、例えば、ディスクアレイ装置（図示を省略する。）に設けられ、ホスト装置（図示を省略する。）からのコマンドに基づいて、ディスクアレイ装置へのデータ書き込み制御、又はディスクアレイ装置からのデータ読み出し制御等を行う。
【００１６】
ディスクアレイコントローラ１は、図１に示すように、第１の制御部であるＣＰＵ（Centralprocessing Unit）１１、キャッシュメモリ１３、第２の制御部である不揮発性メモリコントローラ１４、不揮発性メモリ１５、プログラム格納メモリ１６、２次電池１７及び各種通信部２０を有している。
【００１７】
ＣＰＵ１１は、キャッシュメモリ１３、不揮発性メモリコントローラ１４、不揮発性メモリ１５、プログラム格納メモリ１６及び２次電池１７とそれぞれ通信可能に接続されている。ＣＰＵ１１は高速なインタフェースを有しており、各種制御通信部２０を用いてディスクアレイ装置及びホスト装置と通信を行う。
【００１８】
また、ＣＰＵ１１は、キャッシュデータ圧縮部１２を有しており、ＣＰＵ１１は、キャッシュデータの退避指示に基づいて、キャッシュメモリ１３に保存するキャッシュデータを読み出してキャッシュデータ圧縮部１２により圧縮し、圧縮キャッシュデータを生成する。
【００１９】
キャッシュメモリ１３は、揮発性のメモリであり、例えば、高速なＳＤＲＡＭ（シンクロナスＤＲＡＭ）で構成される。キャッシュメモリ１３は、例えば、ディスクアレイ装置への処理に関するキャッシュデータを格納する。
【００２０】
不揮発性メモリコントローラ１４は、ＣＰＵ１１から転送される圧縮キャッシュデータを不揮発性メモリ１５に書き込む。
【００２１】
不揮発性メモリ１５は、不揮発性メモリコントローラ１４から書き込まれた圧縮キャッシュデータを保持する。
【００２２】
プログラム格納メモリ１６は、例えば、ＲＯＭであり、キャッシュメモリ１３に格納されたキャッシュデータを退避するためのキャッシュデータ退避制御プログラムが格納される。キャッシュデータ退避制御プログラムが実行されて実現される処理の詳細は、図２を用いて後述する。
【００２３】
２次電池１７は、充放電可能な電池である。２次電池１７は、ディスクアレイコントローラ１に電源の供給が遮断された場合にキャッシュメモリ１３にキャッシュされたキャッシュデータを不揮発性メモリ１５へ退避するまでの間、ＣＰＵ１１、キャッシュメモリ１３、不揮発性メモリコントローラ１４、不揮発性メモリ１５及びプログラム格納メモリ１６を動作させる電力を供給する。図１における一点鎖線１０は、２次電池１７の電力供給囲を示している。
【００２４】
次に、ディスクアレイコントローラ１への電源供給が断絶した場合に、ＣＰＵ１１が既述のキャッシュデータ退避制御プログラムを実行することにより実現される処理について、図２を参照して説明する。
【００２５】
ＣＰＵ１１がキャッシュデータ退避指示を受信した場合（Ｓ１０１）、ＣＰＵは２次電池１７の放電を開始させる（Ｓ１０２）。これにより、ディスクアレイコントローラ１への電源供給が遮断されても、ＣＰＵ１１、キャッシュメモリ１３、不揮発性メモリコントローラ１４、不揮発性メモリ１５及びプログラム格納メモリ１６は動作する。
【００２６】
ＣＰＵ１１は、プログラム格納メモリ１６からキャッシュデータ退避制御プログラムを読み出し（Ｓ１０３）、キャッシュデータ退避制御プログラムを実行する（Ｓ１０４）。
【００２７】
次に、ＣＰＵ１１は全ての圧縮キャッシュデータが不揮発性メモリ１５に書き込まれたか否かを判断する（Ｓ１０５）。
【００２８】
全ての圧縮キャッシュデータが不揮発性メモリに書き込まれていないと判断した場合（Ｓ１０５：ＮＯ）、ＣＰＵ１１は、キャッシュメモリ１３にキャッシュされているキャッシュデータを１つ読み出す（Ｓ１０６）。
【００２９】
次に、ＣＰＵ１１は、キャッシュメモリ１３から読み出したキャッシュデータをキャッシュデータ圧縮部１２により圧縮し（Ｓ１０７）、圧縮した圧縮キャッシュデータを不揮発性メモリコントローラ１４へ転送する（Ｓ１０８）。
【００３０】
不揮発性メモリコントローラ１４は、ＣＰＵ１１から転送された圧縮キャッシュデータを不揮発性メモリ１５に書き込む（Ｓ１０９）。次にＣＰＵ１１は、既述のステップＳ１０５の処理に戻り、全ての圧縮キャッシュデータを不揮発性メモリ１５に書き込込まれたか否かを判断する。
【００３１】
全ての圧縮キャッシュデータが書き込まれていないと判断した場合（Ｓ１０５：ＮＯ）、既述のステップＳ１０６乃至Ｓ１０９の処理が繰り返される。したがって、キャッシュメモリ１３にキャッシュされている全てのキャッシュデータに対してステップＳ１０６乃至Ｓ１０９の処理が行われる。
【００３２】
一方、全ての圧縮キャッシュデータが不揮発性メモリ１５に書き込まれたと判断した場合（Ｓ１０５：ＹＥＳ）、ＣＰＵ１１は、キャッシュデータ退避制御プログラムの実行を終了し（Ｓ１１０）、２次電池１７の放電を終了させる（Ｓ１１１）。
【００３３】
次に、キャッシュデータＡ乃至Ｃをキャッシュメモリ１３から不揮発性メモリ１５に退避させる場合を例に挙げ、ディスクアレイコントローラ１がキャッシュデータを退避させる動作及び時間について図３を参照して説明する。
【００３４】
ＣＰＵ１１は、キャッシュメモリ１３からキャッシュデータＡを読み出し、キャッシュデータ圧縮部１２によりキャッシュデータＡを圧縮し、圧縮した圧縮キャッシュデータＡを不揮発性メモリコントローラ１４に転送する。
【００３５】
不揮発性メモリコントローラ１４は、ＣＰＵ１１から圧縮キャッシュデータＡが転送されると、当該圧縮キャッシュデータＡを不揮発性メモリ１５へ書き込む。
【００３６】
圧縮キャッシュデータＡの不揮発性メモリコントローラ１４への転送が完了した後、ＣＰＵ１１は直ちにキャシュメモリ１３からキャッシュデータＢを読み出し、キャッシュデータＢをキャッシュデータ圧縮部１２により圧縮する処理を行う。
【００３７】
ここで、不揮発性メモリ１５にデータを書き込む速度はキャッシュメモリ１３からキャッシュデータを読み出す速度より十分遅いため、圧縮キャッシュデータＡの不揮発性メモリ１５への書き込みが終了する前に、キャッシュデータＢの圧縮が完了する。
【００３８】
そして、ＣＰＵ１１は、圧縮キャッシュデータＡの不揮発性メモリ１５へ書き込まれた後、直ちに、圧縮キャッシュデータＢを不揮発性メモリコントローラ１４に転送する。
【００３９】
不揮発性メモリコントローラ１４は、ＣＰＵ１１から圧縮キャッシュデータＢが転送されると、当該圧縮キャッシュデータＢを不揮発性メモリ１５へ書き込む。
【００４０】
圧縮キャッシュデータＢの不揮発性メモリコントローラ１４への転送が完了した後、ＣＰＵ１１は直ちにキャシュメモリ１３からキャッシュデータＣを読み出し、キャッシュデータＣをキャッシュデータ圧縮部１２により圧縮する処理を行う。
【００４１】
以上のように、キャッシュデータＡ乃至Ｃをキャッシュメモリ１３から読み出し、圧縮キャッシュデータＡ乃至Ｃを不揮発性メモリ１５に書き込まれる動作が行われる。
【００４２】
この実施の形態のディスクアレイコントローラ１によると、ＣＰＵ１１内のキャッシュデータ圧縮部１２によりキャッシュメモリ１３から読み出したキャッシュデータを圧縮し、圧縮したキャッシュデータを不揮発性メモリ１５に書き込むため、不揮発性メモリ１５にキャッシュデータを書き込む時間を短くすることができる。
【００４３】
したがって、キャッシュメモリ１３から不揮発性メモリ１５にキャッシュデータを退避させるためにディスクアレイコントローラ１を動作させるために必要な電力を減少させることができる。よって、２次電池１７の蓄電容量を小さくすることができるとともに、２次電池１７のサイズを小さくすることができる。
【００４４】
また、不揮発性メモリ１５にデータを書き込む速度はキャッシュメモリ１３からキャッシュデータを読み出す速度より十分遅いため、図３に示すように、圧縮キャッシュデータの転送待ち時間が生じる。この転送待ち時間を利用して、キャッシュデータ圧縮部１２によりキャッシュデータを圧縮するように構成されているため、キャッシュデータを圧縮するための時間に影響されずに不揮発性メモリ１５への書き込み時間を短縮することができる。
【００４５】
更に、上述の実施の形態では、不揮発性メモリコントローラ１４をＣＰＵ１１とは別構成として説明しているがこれに限るものではなく、例えば既述の不揮発性メモリコントローラ１４をＣＰＵ１１内に設けるように構成しても良い。
【００４６】
より詳細には、例えば、キャッシュメモリ１３からのキャッシュデータの読み出し等の制御をＣＰＵ１１内のＩ／Ｏブロック（例えば、ＤＭＡ）が受け持ちようにした場合、Ｉ／Ｏブロックへキャッシュデータが転送されるとＣＰＵ１１は転送待ち状態になる。この転送待ち状態の間にＣＰＵ１１がキャッシュデータの圧縮を行うように構成する。
【００４７】
このように構成することによって、不揮発性メモリコントローラ１４を動作させる電力を省くことができ、２次電池１７の更なる省電力化を図ることができる。
【００４８】
なお、本発明は上述の実施の形態に限定されるものではなく、その実施に際して様々な変形が可能である。
【００４９】
上記実施の形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００５０】
（付記１）
電源供給が遮断された場合、キャシュメモリに保存するキャッシュデータを不揮発性メモリに退避させるストレージ制御装置であって、
キャッシュデータの退避指示に基づいて、前記キャッシュメモリに保存するキャッシュデータを読み出して圧縮し、当該圧縮キャッシュデータを生成する第１の制御部と、
前記第１の制御部で生成した圧縮キャッシュデータを不揮発性メモリに書き込む第２の制御部と、
を備えることを特徴とするストレージ制御装置。
【００５１】
（付記２）
前記第１の制御部は、前記第２の制御部が前記圧縮キャッシュデータを書き込むまでの間に前記キャッシュデータの圧縮を行う、ことを特徴とする付記１記載のストレージ制御装置。
【００５２】
（付記３）
前記第１の制御部は、前記第２の制御部を含むように構成されている、ことを特徴とする付記１又は２記載のストレージ制御装置。
【００５３】
（付記４）
電源供給が遮断された場合、キャシュメモリに保存するキャッシュデータを不揮発性メモリに退避させるストレージ制御装置のキャッシュデータ退避方法であって、
キャッシュデータの退避指示に基づいて、前記キャッシュメモリに保存するキャッシュデータを読み出すステップと、
前記読み出したキャシュデータを圧縮し、圧縮キャッシュデータを生成するステップと、
前記生成した圧縮キャッシュデータを不揮発性メモリに書き込むステップと、
を有することを特徴とするストレージ制御装置のキャッシュデータ退避方法。
【産業上の利用可能性】
【００５４】
本発明は、電源供給が遮断された場合に、キャシュメモリに格納するキャッシュデータを退避させるストレージ装置等に広く適用可能である。
【符号の説明】
【００５５】
１・・・ディスクアレイコントローラ
１０・・・２次電池の電力供給範囲
１１・・・ＣＰＵ
１２・・・キャッシュデータ圧縮部
１３・・・キャッシュ
１４・・・不揮発性メモリコントローラ
１５・・・不揮発性メモリ
１６・・・プログラム格納メモリ
１７・・・２次電池
【図１】
2012164194.tif 000003
【図２】
2012164194.tif 000004
【図３】
2012164194.tif 000005