(57)【特許請求の範囲】
【請求項１】
不揮発性の第１メモリと、
前記第１メモリに格納されるユーザデータを管理するための管理情報または前記ユーザデータの一部の少なくとも一方がキャッシュデータとして一時的に格納される揮発性の第２メモリと、
ホスト装置からの要求に応じて、前記第２メモリへの電力供給の遮断を伴う低消費電力モードへ移行する場合、前記第２メモリに格納される前記キャッシュデータを前記ホスト装置の第３メモリに書き込むための処理を実行するコントローラと、
を具備し、
前記コントローラは、前記低消費電力モードへ移行する場合、
前記キャッシュデータの中の各データの重要度に基づき、前記キャッシュデータを、第１キャッシュデータと前記第１キャッシュデータよりも重要度の低い第２キャッシュデータとに分け、
前記第２キャッシュデータを前記第１メモリに書き込み、
前記第１キャッシュデータを前記ホスト装置の前記第３メモリに書き込むように前記ホスト装置に要求する、
記憶装置。
【請求項２】
前記コントローラは、データ保護のための誤り検出符号または誤り訂正符号のいずれも付さずに前記第１キャッシュデータを前記ホスト装置に転送する請求項１に記載の記憶装置。
【請求項３】
前記コントローラは、前記第１キャッシュデータを圧縮して前記ホスト装置に転送する請求項１に記載の記憶装置。
【請求項４】
前記コントローラは、前記第１キャッシュデータのサイズが閾値以上の場合、前記第１キャッシュデータの圧縮を行う請求項３に記載の記憶装置。
【請求項５】
前記コントローラは、前記第１キャッシュデータを暗号化して前記ホスト装置に転送する請求項１に記載の記憶装置。
【請求項６】
前記第１キャッシュデータは、前記管理情報または前記ユーザデータの一部の一方を含み、前記第２キャッシュデータは、前記管理情報または前記ユーザデータの一部の他方を含む請求項１に記載の記憶装置。
【請求項７】
前記コントローラは、前記低消費電力モードから復帰する場合、前記ホスト装置の前記第３メモリから前記第１キャッシュデータを読み出して前記第２メモリに書き込むための処理を実行する請求項１に記載の記憶装置。
【請求項８】
前記コントローラは、前記ホスト装置の２以上のメモリの中のいずれか１つを前記第３メモリとして設定する請求項１に記載の記憶装置。
【請求項９】
前記コントローラは、前記第１キャッシュデータの中の重要度の高いデータから前記ホスト装置へ転送し、前記第２キャッシュデータの中の重要度の高いデータから前記第１メモリへ書き込む請求項１に記載の記憶装置。
【請求項１０】
前記コントローラは、前記第１キャッシュデータの前記ホスト装置への転送または前記第２キャッシュデータの前記第１メモリへの書き込みが完了した場合、前記キャッシュデータの退避完了を前記ホスト装置に通知する請求項１に記載の記憶装置。
【請求項１１】
不揮発性の第１メモリと、前記第１メモリに格納されるユーザデータを管理するための管理情報または前記ユーザデータの一部の少なくとも一方がキャッシュデータとして一時的に格納される揮発性の第２メモリとを有し、第３メモリを有するホスト装置と接続される記憶装置のデータ退避方法であって、
前記ホスト装置からの要求に応じて、前記第２メモリへの電力供給の遮断を伴う低消費電力モードへ移行する場合、前記第２メモリに格納される前記キャッシュデータを前記ホスト装置の第３メモリに書き込むための処理を実行することを具備し、
前記処理を実行することは、前記低消費電力モードへ移行する場合、
前記キャッシュデータの中の各データの重要度に基づき、前記キャッシュデータを、第１キャッシュデータと前記第１キャッシュデータよりも重要度の低い第２キャッシュデータとに分けることと、
前記第２キャッシュデータを前記第１メモリに書き込むことと、
前記第１キャッシュデータを前記ホスト装置の前記第３メモリに書き込むように前記ホスト装置に要求することと、
を含むデータ退避方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、記憶装置およびデータ退避方法に関する。
【背景技術】
【０００２】
近年、ＳＳＤ（Solid State Drive）等、不揮発性メモリを搭載する記憶装置が広く普及している。ＳＳＤは、ＮＡＮＤメモリ（フラッシュメモリ）を適用した記憶装置であり、高性能・低電力消費という利点を有することから、ＨＤＤ（Hard Disk Drive）に代わって、ＰＣ（Personal Computer）やサーバ等の様々なコンピュータでメインストレージとして利用され始めている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−４８６７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
コンピュータの多くは、消費電力量を低減するために、例えば一定期間以上使用していないデバイスを低消費電力モードへ移行させるといった省電力機能を有している。ＳＳＤは、ＤＲＡＭ（Dynamic RAM）やＳＲＡＭ（Static RAM）をキャッシュメモリとして使用しながら動作する。そのため、前述のような省電力機能を有するコンピュータで利用されるＳＳＤでは、低消費電力モードへの移行が頻繁に要求されることに伴い、キャッシュメモリ上のデータ（キャッシュデータ）のＮＡＮＤメモリへの退避が頻繁に行われることとなる。
【０００５】
しかし、ＮＡＮＤメモリへのデータ退避は、Write/Erase回数の制約により、信頼性の低下が懸念される。
【０００６】
また、ＮＡＮＤメモリへのデータ退避は、PD(Program Disturb)/RD(Read Disturb)/DR(Data Retention)等の問題に留意する必要がある。PD/RDは、ＮＡＮＤフラッシュのメモリセルに関する現象であって、特定のセルについて書き換えが繰り返されると、場合によっては周囲のセルのしきい電圧が上昇してしまうという現象であり、RDは、特定のセルについて読み出しが繰り返されると、場合によっては周囲のセルのしきい電圧が変化してしまうという現象である。DRは、メモリセルのしきい電圧は時間の経過とともに徐々に下がることから定められるデータ保持期間である。そのため、ＥＣＣ（Error Correcting Code）訂正といった対処が必須となる。Readエラーや訂正エラーが発生すると、退避データの復元が困難または復元の時間が長大になるという問題も存在する。
【０００７】
このようなことから、低消費電力モードへの移行が頻繁に要求される状況下で利用されるＳＳＤにおいては、データ退避や復元の容易性を考慮した対策が必要である。
【０００８】
本発明が解決しようとする課題は、データ退避や復元の容易性を考慮した対策がなされた記憶装置およびデータ退避方法を提供することである。
【課題を解決するための手段】
【０００９】
実施形態によれば、記憶装置は、不揮発性の第１メモリと、揮発性の第２メモリと、コントローラとを具備する。前記第２メモリには、前記第１メモリに格納されるユーザデータを管理するための管理情報または前記ユーザデータの一部の少なくとも一方がキャッシュデータとして一時的に格納される。前記コントローラは、ホスト装置からの要求に応じて、前記第２メモリへの電力供給の遮断を伴う低消費電力モードへ移行する場合、前記第２メモリに格納される前記キャッシュデータを前記ホスト装置の第３メモリに書き込むための処理を実行する。前記コントローラは、前記低消費電力モードへ移行する場合、前記キャッシュデータの中の各データの重要度に基づき、前記キャッシュデータを、第１キャッシュデータと前記第１キャッシュデータよりも重要度の低い第２キャッシュデータとに分け、前記第２キャッシュデータを前記第１メモリに書き込み、前記第１キャッシュデータを前記ホスト装置の前記第３メモリに書き込むように前記ホスト装置に要求する。
【図面の簡単な説明】
【００１０】
【図１】実施形態に係る記憶装置を含むコンピュータシステムの一構成例を示すブロック図。
【図２】同実施形態の記憶装置によって実行されるホスト装置のＤＲＡＭへのデータ退避の概要を説明するためのシーケンスチャート。
【図３】ＥＣＣ・ＣＲＣによるデータ保護を説明するための図。
【図４】同実施形態の記憶装置によって実行されるホスト装置のＤＲＡＭへのデータ退避の処理手順を示すフローチャート。
【図５】同実施形態の記憶装置によって実行されるデータ退避におけるデータを圧縮してホスト装置のＤＲＡＭへ退避する機能を説明するための図。
【図６】同実施形態の記憶装置によって実行されるデータ退避におけるデータを暗号化してホスト装置のＤＲＡＭへ退避する機能を説明するための図。
【図７】同実施形態の記憶装置によって実行されるデータ退避におけるデータをホスト装置のＤＲＡＭとＮＡＮＤメモリとに分けて退避する機能を説明するための図（第１パターン）。
【図８】同実施形態の記憶装置によって実行されるデータ退避におけるデータをホスト装置のＤＲＡＭとＮＡＮＤメモリとに分けて退避する機能を説明するための図（第２パターン）。
【発明を実施するための形態】
【００１１】
以下、図面を参照して、実施形態を説明する。
【００１２】
図１は、一実施形態に係る記憶装置を含むコンピュータシステムの一構成例を示すブロック図である。図１に示すように、このコンピュータシステムは、本実施形態の記憶装置１と、ホスト装置２とで構成される。ホスト装置２は、例えばＰＣやサーバ等のコンピュータである。一方、記憶装置１は、ホスト装置２の例えばメインストレージとして利用されるＳＳＤである。記憶装置１とホスト装置２とは、例えばＰＣＩｅ（PCI Express）規格に準拠したインタフェースにより接続される。ここでは、ＰＣＩｅを想定するが、ＳＡＳ（Serial Attached SCSI）、ＳＡＴＡ（Serial Advanced Technology Attachment）など、他のインタフェースを使用してもよい。記憶装置１は、ホスト装置２に内蔵されるものに限らず、ホスト装置２に外部接続されるものであってもよい。
【００１３】
記憶装置１は、コントローラ１０、ＤＲＡＭ２０、ＮＡＮＤメモリ３０および電源回路４０を備える。図１には示されないが、記憶装置１は、さらにＳＲＡＭを備えていてもよい。
【００１４】
コントローラ１０は、ホスト装置２からのWrite/Read要求を受け付け、ＤＲＡＭ２０をキャッシュメモリとして使用しながら、ホスト装置２から転送されるデータ（ユーザデータ）のＮＡＮＤメモリ３０への書き込みまたはホスト装置２から要求されたデータのＮＡＮＤメモリ３０からの読み出しを行う処理回路である。ＤＲＡＭ２０に格納されるキャッシュデータ２００としては、ユーザデータ２０２のみならず、ホスト装置２が認識する論理ブロックアドレス（ＬＢＡ）空間とＮＡＮＤメモリ３０上の物理記憶位置との対応関係を管理するためのデータ管理情報２０１も存在する。また、コントローラ１０は、ホスト装置２からの要求に応じて、電源回路４０からのＤＲＡＭ２０およびＮＡＮＤメモリ３０への電力供給をオン／オフする機能を備えている。例えば低消費電力モードへの移行がホスト装置２から要求された場合、コントローラ１０は、電源回路４０からのＤＲＡＭ２０およびＮＡＮＤメモリ３０への電力供給をオフする。ここでは、低消費電力モード時における記憶装置１の状態として、ＤＲＡＭ２０およびＮＡＮＤメモリ３０が電源オフとなる状態を想定するが、これに限らず、例えば、さらに、コントローラ１０の機能の一部または全部を停止させてもよい。低消費電力モードにおいては、少なくともＤＲＡＭ２０が電源オフとなる。
【００１５】
コントローラ１０は、複数のＣＰＵ（Central Processing Unit）１１、ホストインタフェース（Ｉ／Ｆ）コントローラ１２、ＤＲＡＭコントローラ１３、ＮＡＮＤコントローラ１４およびＤＭＡ（Direct Memory Access）１５を有している。
【００１６】
複数のＣＰＵ１１は、ホスト装置２からの要求に応えるべく記憶装置１を動作させるための各種処理、例えば、コマンド制御、ＦＴＬ（Flash Translation Layer）処理、ＮＡＮＤ制御などを分散して実行するために設けられるプロセッサ群である。当該複数のＣＰＵ１１の中の少なくとも１つにより、後述するデータ退避制御部１１０の機能が実現される。データ退避制御部１１の機能は、処理回路（ハードウェア）によって実現されてもよいし、例えばＮＡＮＤメモリ３０または図１には示されない他の不揮発性メモリに格納されるファームウェアによって実現されてもよい。
【００１７】
ホストインタフェースコントローラ１２は、ホスト装置２との間の通信を実行する。ＤＲＡＭコントローラ１３は、ＤＲＡＭ２０に対するデータのWrite/Read処理を実行する。ＮＡＮＤコントローラ１４は、ＮＡＮＤメモリ３０に対するデータのWrite/Read処理を実行する。ＤＭＡ１５は、ホストインタフェースコントローラ１２−ＤＲＡＭコントローラ１３間のデータ転送およびＤＲＡＭコントローラ１３−ＮＡＮＤコントローラ１４間のデータ転送を制御する。
【００１８】
一方、ホスト装置２は、（記憶装置１に関する構成として）プロセッサ５１、ＤＲＡＭ５２およびＰＣＩｅコントローラ５３を有している。プロセッサ５１は、ホスト装置２内の各種コンポーネントの動作を制御する。ＤＲＡＭ５２は、ホスト装置２のメインメモリとして使用されるストレージデバイスである。ＰＣＩｅコントローラ５３は、記憶装置１との間の通信、より具体的には、ホストインタフェースコントローラ１２との間の通信を実行する。
【００１９】
ホスト装置２は、種々の省電力機能を有しており、例えば、記憶装置１へのアクセスが一定期間以上途絶えた場合、低消費電力モードへの移行を記憶装置１に要求する。また、ホスト装置２は、自身がスリープ状態に移行する場合も、低消費電力モードへの移行を記憶装置１に要求する。
【００２０】
前述したように、低消費電力モード時の記憶装置１においては、ＤＲＡＭ２０への電力供給がオフされる。従って、低消費電力モードへの移行がホスト装置２から要求された場合、記憶装置１は、ＤＲＡＭ２０に格納されるキャッシュデータ２００を退避する必要がある。キャッシュデータ２００は、ＮＡＮＤメモリ３０に退避されることが一般的である。ＮＡＮＤメモリ３０の特性を勘案すると、低消費電力モードへの移行が頻繁に要求される状況下で利用される記憶装置１においては、データ退避や復元の容易性を考慮した対策が必要である。
【００２１】
そこで、本実施形態の記憶装置１は、低消費電力モードへ移行するにあたり、ＤＲＡＭ２０に格納されるキャッシュデータ２００をホスト装置２のＤＲＡＭ５２に退避するようにした。記憶装置１側からホスト装置２側のＤＲＡＭ５２へのアクセスは、例えばＵＦＳ（Universal Flash Storage）規格のオプション機能であるＵＭＥ（Unified Memory Extension）規格に準拠した手順で実行し得る。データ退避制御部１１０は、このホスト装置２のＤＲＡＭ５２へのデータ退避のための処理を実行する処理部であり、以下、この処理について詳述する。
【００２２】
なお、ここでは、ＤＲＡＭ２０に格納されるキャッシュデータ２００をホスト装置２のＤＲＡＭ５２に退避するタイミングとして、低消費電力モードへの移行時を一例として挙げて説明するが、これに限らず、種々のタイミングを当然に採用し得る。例えば、データが一定量更新されるごとにデータ退避を行い、かつ、突発的な電源遮断時、可能な範囲でデータ退避を行うようにしてもよい。
【００２３】
また、前述したように、記憶装置１は、さらにＳＲＡＭを備えていてもよい。そして、ＳＲＡＭを備えている場合には、ＤＲＡＭ２０に格納されるキャッシュデータ２００だけでなく、ＳＲＡＭに格納されるデータも退避対象としてもよい。
【００２４】
図２は、データ退避制御部１１０によって実行されるホスト装置２のＤＲＡＭ５２へのデータ退避の概要を説明するためのシーケンスチャートである。なお、データ退避制御部１１０は、ＤＲＡＭ２０に格納されるキャッシュデータ２００の退避先として、（記憶装置１内の）ＮＡＮＤメモリ３０またはホスト装置２のＤＲＡＭ５２のいずれかを設定する機能を備えてもよい。記憶装置１側からアクセス可能なストレージデバイスがＤＲＡＭ５２の他にホスト装置２に存在する場合、ホスト装置２の（ＤＲＡＭ５２を含む）複数のストレージデバイスの中からキャッシュデータ２００の退避先を設定できるようにしてもよい。ここでは、ホスト装置２のＤＲＡＭ５２が設定されているものと想定する。退避先の設定は、データ退避制御部１１０が行うことに限定されず、例えば、ホスト装置２が行うようにしてもよい。さらには、データ退避制御部１１０またはホスト装置２が、例えばＮＡＮＤメモリ３０の空き容量や劣化度合い、キャッシュデータ２００のサイズなどにより適応的に決定するようにしてもよい。
【００２５】
低消費電力モードへの移行がホスト装置２から要求された場合（図２のａ１）、データ退避制御部１１０は、まず、ＤＲＡＭ２０に格納されているキャッシュデータ２００の読出しを実行する（図２のａ２）。続いて、データ退避制御部１１０は、ＤＲＡＭ２０から読出したキャッシュデータ２００、つまり退避データのＤＲＡＭ５２への書込みをホスト装置２に対して要求する（図２のａ３）。この際、データ退避制御部１１０は、キャッシュデータ２００の中の各データについて重要度を判定し、重要度の高いデータからホスト装置２に転送するようにしてもよい。この要求に応じて、ホスト装置２は、記憶装置１から転送されてくるデータ、つまり退避データであるキャッシュデータ２００をＤＲＡＭ５２に書込み（図２のａ４）、ＤＲＡＭ５２への書込み完了を記憶装置１に通知する（図２のａ５）。この通知を受けると、データ退避制御部１１０は、電源回路４０からのＮＡＮＤメモリ３０およびＮＡＮＤメモリ３０への電力供給がオフされる低消費電力モードへ記憶装置１を移行させる（図２のａ６）。データ退避制御部１１０は、低消費電力モードへの移行が完了した際、その旨をホスト装置２に通知する（図２のａ７）。
【００２６】
一方、（低消費電力モードからの）通常モードへの復帰がホスト装置２から要求された場合（図２のａ１１）、データ退避制御部１１０は、まず、電源回路４０からのＮＡＮＤメモリ３０およびＮＡＮＤメモリ３０への電力供給がオンとなる通常モードへ記憶装置１を復帰させる（図２のａ１２）。続いて、データ退避制御部１１０は、低消費電力モードへの移行時に書込みを依頼した退避データ、つまりキャッシュデータ２００のＤＲＡＭ５２からの読出しをホスト装置２に対して要求する（図２のａ１３）。この要求に応じて、ホスト装置２は、ＤＲＡＭ５２からのデータ（退避データであるキャッシュデータ２００）の読出しを実行し（図２のａ１４）、当該読出したデータを記憶装置１に返却する（図２のａ１５）。データ退避制御部１１０は、ホスト装置２から返却された退避データ、つまりキャッシュデータ２００をＤＲＡＭ２０に書込んで、低消費電力モードへの移行時の状態にＤＲＡＭ２０を復元する（図２のａ１６）。データ退避制御部１１０は、ＤＲＡＭ２０が低消費電力モードへの移行時の状態に復元されたら、通常モードへの復帰完了をホスト装置２に通知する（図２のａ１７）。
【００２７】
ＮＡＮＤメモリ３０へのデータ退避に代えて、ホスト装置２のＤＲＡＭ５２へのデータ退避を行うことで、本記憶装置１は、ＮＡＮＤメモリ３０を、通常のデータ（ユーザデータ）のWriteに多くが活用されるようにし、これにより、Write/Erase回数を低減して、ＮＡＮＤメモリ３０の劣化を抑止する。
【００２８】
また、ＮＡＮＤメモリ３０と比較して、ホスト装置２のＤＲＡＭ５２は、データ化けが少ないので、ホスト装置２のＤＲＡＭ５２へのデータ退避は、退避データの信頼性を高めることも実現される。
【００２９】
なお、ホスト装置２のＤＲＡＭ５２のデータ化けが少ない点に着目し、データ退避制御部１１０は、ＥＣＣやＣＲＣ（Cyclic Redundancy Check）によるデータ保護のための処理を省いて退避データをホスト装置２のＤＲＡＭ５２へ退避するようにしてもよい。これにより、記憶装置１−ホスト装置２間のデータ転送量を低減し、通常モード−低消費電力モード間の移行時間を低減することができる。または、データ保護の強度を下げることで、例えばＥＣＣのデータ量を少なくして、記憶装置１−ホスト装置２間のデータ転送量を低減し、通常モード−低消費電力モード間の移行時間を低減することも可能である。図３は、ＥＣＣ・ＣＲＣによるデータ保護を説明するための図である。
【００３０】
ＮＡＮＤメモリ３０においては、通常、ＮＡＮＤメモリ３０へのデータ（図３のｂ１）の書込み時、書込み対象のデータからチェック符号（図３のｂ２）が作成され、また、データおよびチェック符号から誤り訂正符号（図３のｂ３）が作成される。ＮＡＮＤメモリ３０には、データ＋チェック符号＋誤り訂正符号が書込まれる。一方、ＮＡＮＤメモリ３０からのデータの読出し時には、当該データ＋チェック符号＋誤り訂正符号が読み出され、データ＋チェック符号＋誤り訂正符号の中の誤りが誤り訂正符号により訂正され、データ＋チェック符号の中の誤りがチェック符号により検出される。
【００３１】
つまり、ＤＲＡＭ２０に格納されるキャッシュデータ２００をＮＡＮＤメモリ３０へ退避する場合には、このようなＥＣＣやＣＲＣによるデータ保護が必要となる。一方、前述したように、ＮＡＮＤメモリ３０と比較して、ホスト装置２のＤＲＡＭ５２は、データ化けが少ないことから、ホスト装置２のＤＲＡＭ５２へのデータ退避を行うにあたって、ＮＡＮＤメモリ３０へのデータ退避では必要であるＥＣＣ・ＣＲＣによる保護を省くことにより、記憶装置１−ホスト装置２間のデータ転送量を低減し、通常モード−低消費電力モード間の移行時間を低減することができる。
【００３２】
図４は、データ退避制御部１１０によって実行されるホスト装置２のＤＲＡＭ５２へのデータ退避の処理手順を示すフローチャートである。
【００３３】
低消費電力モードへの移行時、データ退避制御部１１０は、まず、ＤＲＡＭ２０に格納されるキャッシュデータ２００の退避先として、ＮＡＮＤメモリ３０またはホスト装置２のＤＲＡＭ５２のいずれが設定されているかを調べる（ブロックＡ１）。前述したように、退避先の設定は、データ退避制御部１１０により行われてもよいし、ホスト装置２により行われてもよい。また、例えばＮＡＮＤメモリ３０の空き容量や劣化度合いなどに基づき、データ退避制御部１１０またはホスト装置２により適応的に決定されてもよい。
【００３４】
ホスト装置２のＤＲＡＭ５２が設定されている場合（ブロックＡ１のＹＥＳ）、データ退避制御部１１０は、ＤＲＡＭ２０に格納されるキャッシュデータ２００をホスト装置２のＤＲＡＭ５２に退避する（ブロックＡ２）。一方、ＮＡＮＤメモリ３０が設定されている場合（ブロックＡ１のＮＯ）、データ退避制御部１１０は、ＤＲＡＭ２０に格納されるキャッシュデータ２００をＮＡＮＤメモリ３０に退避する（ブロックＡ３）。
【００３５】
データ退避が完了すると、データ退避制御部１１０は、電源回路４０からのＮＡＮＤメモリ３０およびＮＡＮＤメモリ３０への電力供給がオフされる低消費電力モードへ記憶装置１を移行させる（ブロックＡ４）。そして、データ退避制御部１１０は、低消費電力モードへの移行完了をホスト装置２に通知する（ブロックＡ５）。
【００３６】
このように、本記憶装置１においては、ホスト装置２のＤＲＡＭ５２へのデータ退避という、データ退避や復元の容易性を考慮した対策が実現される。
【００３７】
次に、ホスト装置２のＤＲＡＭ５２へのデータ退避に関してデータ退避制御部１１０が具備し得る種々の機能について説明する。
【００３８】
図５は、ＤＲＡＭ２０に格納されるキャッシュデータ２００を圧縮してホスト装置２のＤＲＡＭ５２に退避する機能を説明するための図である。
【００３９】
記憶装置１−ホスト装置２間のデータ転送レートと、記憶装置１（ＣＰＵ１１群）の処理能力とを勘案して、ホスト装置２のＤＲＡＭ５２へのデータ退避の所要時間短縮が期待できる場合、データ退避制御部１１０は、データを圧縮／伸長する機能（圧縮／伸長処理部１１１）を具備してもよい。または、圧縮／伸長処理部１１１をオンに設定するようにしてもよい。
【００４０】
低消費電力モードへの移行時、データ退避制御部１１０は、ＤＲＡＭ２０からキャッシュデータ２００を読出し、圧縮／伸長処理部１１１により、当該読出したキャッシュデータ２００を圧縮する。データ退避制御部１１０は、圧縮されたキャッシュデータ２００をホスト装置２のＤＲＡＭ５２に退避する。
【００４１】
（低消費電力モードからの）通常モードへの復帰時、データ退避制御部１１０は、圧縮された状態でホスト装置２のＤＲＡＭ５２に退避されているキャッシュデータ２００をホスト装置２から取得し、圧縮／伸長処理部１１１により、当該取得した（圧縮された状態の）キャッシュデータ２００を伸長する。データ退避制御部１１０は、伸長されたキャッシュデータ２００を２０に書込んで、低消費電力モードへの移行時の状態にＤＲＡＭ２０を復元する。
【００４２】
ホスト装置２のＤＲＡＭ５２へのデータ退避を司るデータ退避制御部１１０がデータを圧縮／伸長する機能を具備することにより、記憶装置１内での処理（キャッシュデータ２００の圧縮／伸長）の増加分を吸収し得る条件下において、通常モード−低消費電力モード間の移行時間を低減することができる。
【００４３】
また、データ退避制御部１１０は、キャッシュデータ２００のサイズが例えば予め定められる閾値以上である場合に、キャッシュデータ２００の圧縮を行うようにしてもよい。
【００４４】
図６は、ＤＲＡＭ２０に格納されるキャッシュデータ２００を暗号化してホスト装置２のＤＲＡＭ５２に退避する機能を説明するための図である。
【００４５】
例えば、ユーザデータ２０２を含むキャッシュデータ２００が長期間に渡ってホスト装置２のＤＲＡＭ５２内に存在し続けることが機密保持の観点から好ましくないと考えられる場合、データ退避制御部１１０は、データを暗号化／復号する機能（暗号化／復号処理部１１２）を具備してもよい。または、暗号化／復号処理部１１２をオンに設定するようにしてもよい。
【００４６】
低消費電力モードへの移行時、データ退避制御部１１０は、ＤＲＡＭ２０からキャッシュデータ２００を読出し、暗号化／復号処理部１１２により、当該読出したキャッシュデータ２００を暗号化する。データ退避制御部１１０は、暗号化されたキャッシュデータ２００をホスト装置２のＤＲＡＭ５２に退避する。
【００４７】
（低消費電力モードからの）通常モードへの復帰時、データ退避制御部１１０は、暗号化された状態でホスト装置２のＤＲＡＭ５２に退避されているキャッシュデータ２００をホスト装置２から取得し、暗号化／復号処理部１１２により、当該取得した（暗号化された状態の）キャッシュデータ２００を復号する。データ退避制御部１１０は、復号されたキャッシュデータ２００を２０に書込んで、低消費電力モードへの移行時の状態にＤＲＡＭ２０を復元する。
【００４８】
ホスト装置２のＤＲＡＭ５２へのデータ退避を司るデータ退避制御部１１０がデータを暗号化／復号する機能を具備することにより、データに関するセキュリティを向上させることができる。
【００４９】
ところで、以上の説明では、ＤＲＡＭ２０に格納されているキャッシュデータ２００全体をホスト装置２のＤＲＡＭ５２へ退避する例を示したが、キャッシュデータ２００全体に限らず、キャッシュデータ２００の一部をホスト装置２のＤＲＡＭ５２へ退避することも可能である。つまり、キャッシュデータ２００をホスト装置２のＤＲＡＭ５２とＮＡＮＤメモリ３０とに分けて退避するようにしてもよい。
【００５０】
例えば、前述のように、ユーザデータ２０２を含むキャッシュデータ２００が長期間に渡ってホスト装置２のＤＲＡＭ５２内に存在し続けることが機密保持の観点から好ましくないと考えられる場合、データ退避制御部１１０は、図７に示すように、キャッシュデータ２００中のデータ管理情報２０１のみをホスト装置２のＤＲＡＭ５２に退避し、キャッシュデータ２００中のユーザデータ２０２はＮＡＮＤメモリ３０に退避するようにしてもよい。
【００５１】
逆に、例えば、低消費電力モードから通常モードへ短時間で移行すること、つまり（低消費電力モードからの）通常モードへの復帰の高速化が求められる場合、データ退避制御部１１０は、図８に示すように、キャッシュデータ２００中のデータ管理情報２０１はＮＡＮＤメモリ３０に退避し、キャッシュデータ２００中のユーザデータ２０２のみをホスト装置２のＤＲＡＭ５２に退避するようにしてもよい。データ管理情報２０１をＤＲＡＭ２０上に復元できた時点で、記憶装置１は、キャッシュデータ２００中のユーザデータ２０２に関わるRead要求以外は対応可能な状態となり、通常モードへの復帰完了をホスト装置２に通知することができる。
【００５２】
また、ＮＡＮＤメモリ３０とホスト装置２のＤＲＡＭ５２とへのキャッシュデータ２００の分散については、データの種類で退避先を決定するだけでなく、例えば、ＮＡＮＤメモリ３０の空き容量や劣化度合い、データの重要度などに基づき、各データの退避先を決定するようにしてもよい。
【００５３】
なお、特に、キャッシュデータ２００をホスト装置２のＤＲＡＭ５２とＮＡＮＤメモリ３０とに分けて退避する場合には、データ退避制御部１１０は、キャッシュデータ２００の退避完了をホスト装置２に通知することが好ましい。また、キャッシュデータ２００がホスト装置２のＤＲＡＭ５２のみに退避される場合、コントローラ１０は、キャッシュデータ２００の退避完了を待機することなく、ＮＡＮＤメモリ３０への電力供給を遮断するようにしてもよい。
【００５４】
以上のように、本実施形態の記憶装置１によれば、データ退避や復元の容易性を考慮した対策が実現される。
【００５５】
より具体的には、本実施形態のデータ記憶装置１は、ＮＡＮＤメモリ３０の劣化抑止を図り、退避データの信頼性を高め、通常モード−低消費電力モード間の移行時間を低減することを実現する。
【００５６】
本実施形態に記載された様々な機能の各々は、処理回路によって実現されてもよい。処理回路の例には、中央処理装置（ＣＰＵ）のような、プログラムされたプロセッサが含まれる。このプロセッサは、メモリに格納されたプログラムを実行することによって、記載された機能それぞれを実行する。このプロセッサは、電気回路を含むマイクロプロセッサであってもよい。処理回路の例は、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、マイクロコントローラ、コントローラ、他の電気回路部品も含む。
【００５７】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００５８】
１…記憶装置、２…ホスト装置、１０…コントローラ、１１…ＣＰＵ、１２…ホストインタフェースコントローラ、１３…ＤＲＡＭコントローラ、１４…ＮＡＮＤコントローラ、２０…ＤＲＡＭ、３０…ＮＡＮＤメモリ、４０…電源回路、５１…プロセッサ、５２…ＤＲＡＭ、５３…ＳＡＴＡコントローラ、１１０…データ退避制御部、１１１…圧縮／伸長処理部、１１２…暗号化／復号処理部、２００…キャッシュデータ、２０１…データ管理情報、２０２…ユーザデータ。
【図１】
0006460940.tif 000002
【図２】
0006460940.tif 000003
【図３】
0006460940.tif 000004
【図４】
0006460940.tif 000005
【図５】
0006460940.tif 000006
【図６】
0006460940.tif 000007
【図７】
0006460940.tif 000008
【図８】
0006460940.tif 000009