(57)【要約】 【課題】消費電力を低減することが可能なメモリシステムとその省電力制御方法を提供する。【解決手段】第１のＣＰＵ22は、インターフェース部21を介してホスト30から供給されるリクエストが一定期間無い場合、インターフェース部21を省電力状態に設定する。記憶部11は、データを記憶する。第２のＣＰＵ23は、少なくともイベントに従って記憶部11を制御し、イベントが一定期間無い場合、記憶部11を省電力状態に設定する。第１のＣＰＵ22は、インターフェース部21が省電力状態において、ホスト30からリクエストを受けた場合、割り込みにより第２のＣＰＵ23へ通知し、第２のＣＰＵ23は、割り込みを検知した場合、記憶部11を省電力状態から通常動作状態に復帰させる。【選択図】図１
2013196112.tif 000002
【特許請求の範囲】
【請求項１】
ホストとのインターフェース部と、
前記インターフェース部を介して前記ホストから供給されるリクエストが一定期間無い場合、前記インターフェース部を省電力状態に設定する第１のＣＰＵと、
データを記憶する記憶部と、
少なくともイベントに従って前記記憶部を制御し、前記イベントが一定期間無い場合、前記記憶部を省電力状態に設定する第２のＣＰＵと、
前記第１のＣＰＵは、前記インターフェース部が省電力状態において、前記ホストからリクエストを受けた場合、割り込みにより前記第２のＣＰＵへ通知し、前記第２のＣＰＵは、前記割り込みを検知した場合、前記記憶部を省電力状態から通常動作状態に復帰させることを特徴とするメモリシステム。
【請求項２】
前記第２のＣＰＵは、前記記憶部が省電力状態から通常動作状態に復帰した場合、割り込みにより、前記第１のＣＰＵに復帰したことを通知することを特徴とする請求項１記載のメモリシステム。
【請求項３】
前記第１のＣＰＵは、前記インターフェース部が省電力状態において、前記ホストから前記リクエストを受けた場合、前記インターフェース部を省電力状態から通常動作状態に復帰させることを特徴とする請求項２記載のメモリシステム。
【請求項４】
前記インターフェース部及び前記記憶部が省電力状態において、イベントが発生した場合、前記第２のＣＰＵは、前記記憶部を省電力状態から通常動作状態に復帰させることを特徴とする請求項１記載のメモリシステム。
【請求項５】
前記インターフェース部及び前記記憶部が省電力状態において、前記第１のＣＰＵがリクエストを受けた場合、前記第１のＣＰＵは、前記リクエストが前記記憶部に対するものか否かを判別し、前記記憶部に対するものではない場合、前記インターフェース部を省電力状態から通常動作状態に復帰させることを特徴とする請求項１記載のメモリシステム。
【請求項６】
ホストから供給されるリクエストが一定期間無い場合、第１のＣＰＵにより、インターフェース部を省電力状態に設定し、
第２のＣＰＵにより、少なくともイベントに従って記憶部を制御し、前記イベントが一定期間無い場合、前記記憶部を省電力状態に設定し、
前記第１のＣＰＵは、前記インターフェース部が省電力状態において、前記ホストからリクエストを受けた場合、割り込みにより前記第２のＣＰＵへ通知し、前記第２のＣＰＵは、前記割り込みを検知した場合、前記記憶部を省電力状態から通常動作状態に復帰させることを特徴とするメモリシステムの省電力制御方法。
【請求項７】
前記第２のＣＰＵは、前記記憶部が省電力状態から通常動作状態に復帰した場合、割り込みにより、前記第１のＣＰＵに復帰したことを通知することを特徴とする請求項６記載のメモリシステムの省電力制御方法。
【請求項８】
前記第１のＣＰＵは、前記インターフェース部が省電力状態において、前記ホストから前記リクエストを受けた場合、前記インターフェース部を省電力状態から通常動作状態に復帰させることを特徴とする請求項７記載のメモリシステムの省電力制御方法。
【請求項９】
前記インターフェース部及び前記記憶部が省電力状態において、イベントが発生した場合、前記第２のＣＰＵは、前記記憶部を省電力状態から通常動作状態に復帰させることを特徴とする請求項６記載のメモリシステムの省電力制御方法。
【請求項１０】
前記インターフェース部及び前記記憶部が省電力状態において、前記第１のＣＰＵがリクエストを受けた場合、前記第１のＣＰＵは、前記リクエストが前記記憶部に対するものか否かを判別し、前記記憶部に対するものではない場合、前記インターフェース部を省電力状態から通常動作状態に復帰させることを特徴とする請求項６記載のメモリシステムの省電力制御方法。
【請求項１１】
前記イベントは、コンパクション処理を含むことを特徴とする請求項１記載のメモリシステム。
【請求項１２】
前記イベントは、リフレッシュ処理を含むことを特徴とする請求項１記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、例えばＮＡＮＤフラッシュメモリを用いたメモリシステムとその省電力制御方法に関する。
【背景技術】
【０００２】
ＮＡＮＤフラッシュメモリを用いたメモリシステムとして例えばＳＳＤ（Solid-State Drive）が開発されている。このようなメモリシステムは、システム内において、実行すべき処理が無い場合、各ハードウェアの設定を切り替えたり、クロック信号の供給を制限したりして消費電力を削減している。以下、この消費電力を削減する処理を省電力処理と呼ぶ。
【０００３】
従来、省電力処理は、全てのハードウェアを一度に制御していた。この処理は、単純であるが、例えば省電力状態において、実行すべき処理が生じた場合、処理動作に必要のないハードウェアも省電力状態から通常動作状態に復帰させており、消費電力を十分に低減することが困難であった。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１８１０１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本実施形態は、消費電力を低減することが可能なメモリシステムとその省電力制御方法を提供しようとするものである。
【課題を解決するための手段】
【０００６】
本実施形態のメモリシステムは、ホストとのインターフェース部と、前記インターフェース部を介して前記ホストから供給されるリクエストが一定期間無い場合、前記インターフェース部を省電力状態に設定する第１のＣＰＵと、データを記憶する記憶部と、少なくともイベントに従って前記記憶部を制御し、前記イベントが一定期間無い場合、前記記憶部を省電力状態に設定する第２のＣＰＵと、前記第１のＣＰＵは、前記インターフェース部が省電力状態において、前記ホストからリクエストを受けた場合、割り込みにより前記第２のＣＰＵへ通知し、前記第２のＣＰＵは、前記割り込みを検知した場合、前記記憶部を省電力状態から通常動作状態に復帰させることを特徴とする。
【図面の簡単な説明】
【０００７】
【図１】本実施形態を概略的に示す構成図。
【図２】図１に示す第１、第２のＣＰＵを概略的に示す構成図。
【図３】第１の動作モードを説明するために示す図。
【図４】第２の動作モードを説明するために示す図。
【図５】第３の動作モードを説明するために示す図。
【図６】第１の動作モードを説明するために示すフローチャート。
【図７】第２の動作モードを説明するために示すフローチャート。
【図８】第３の動作モードを説明するために示すフローチャート。
【発明を実施するための形態】
【０００８】
一般に、省電力処理は、ファームウェアがホストからの要求（以下、リクエストと称す）が無いこと、及び／又はシステム内で実行すべき仕事（以下、イベントと称す）が無いことを検知して実行される。省電力処理は、対象となるハードウェアの設定を変更し、対象となるハードウェアへのクロック信号の供給を制限した後、ファームウェア自身も割り込み待ち状態に入る。その後、リクエスト、又はイベントが発生した場合、ファームウェアは割り込みにより、リクエスト、又はイベントが発生したことを検知し、対象のハードウェアの設定変更を元に戻し、クロック信号の供給を再開して通常動作状態に復帰させる。
【０００９】
しかし、上記一般的な省電力処理は、対象となる全てのハードウェアを省電力状態から通常状態へ復帰する場合、全てのハードウェアの設定、及びクロック信号の供給を一度に制御していた。この制御は単純であるが、必要のないハードウェアまで、省電力状態から通常動作状態に復帰させることになり消費電力の削減効率が良くなかった。
【００１０】
そこで、本実施形態は、コントローラに搭載された２つのＣＰＵコアを用いて、高効率の省電力制御を可能としている。
【００１１】
（実施形態）
以下、図面を参照して、実施の形態について説明する。
【００１２】
図１は、本実施形態が適用されるメモリシステム、例えばＳＳＤの構成を示している。
【００１３】
図１において、ＳＳＤ１０は、ＮＡＮＤフラッシュメモリ１１とコントローラ２０により構成されている。
【００１４】
ＮＡＮＤフラッシュメモリ１１は、コントローラ２０の動作を制御するためのファームウェアや各種のユーザデータを格納する。
【００１５】
コントローラ２０は、ＳＡＴＡＣ（（Serial AT Attachment規格によるインターフェース仕様）のController）２１、第１のＣＰＵ２２、第２のＣＰＵ２３、ＮＡＮＤＣ（NAND Controller）２４、ＳＲＡＭ２５、第１のＲＯＭ２６、第２のＲＯＭ２７、ＣＬＫ（Clock 信号）発振器２８、バス２９により構成されている。ＳＡＴＡＣ２１、第１、第２のＣＰＵ２２、２３、ＮＡＮＤＣ２４、ＳＲＡＭ２５は、バス２９に接続されている。第１のＲＯＭ２６は、第１のＣＰＵ２２に接続され、第２のＲＯＭ２７は、第２のＣＰＵ２３に接続されている。ＣＬＫ発振器２８は、例えばＳＡＴＡＣ２１、第１、第２のＣＰＵ２２，２３、ＮＡＮＤＣ２４、バス２９に接続されている。
【００１６】
第１、第２のＲＯＭ２６、２７は、例えば第１、第２のＣＰＵ２２、２３により使用されるＩＰＬ（Initial Program loader）をそれぞれ格納している。起動時、第１、第２のＣＰＵ２２、２３は、これらＩＰＬによりＮＡＮＤフラッシュメモリ１１から、制御プログラム、リクエスト（コマンド）を処理するリクエスト処理モジュール、ハードウェアを初期化する初期化処理モジュール、省電力処理を行うモジュールなどのファームウェアが読み出される。これらファームウェアは、図２に示すように、第１、第２のＣＰＵ２２、２３のＴＣＭ（Tightly Connected Memory）にロードされる。第１、第２のＣＰＵ２２、２３は、これらファームウェアに基づき、お互いに通信しながら独立に動作可能とされている。
【００１７】
ＳＡＴＡＣ２１は、ホスト３０に接続されている。ＳＡＴＡＣ２１は、図示せぬＳＡＴＡインターフェースを含み、ホスト３０から供給されるリクエスト（コマンド）や、データ、アドレスなどを受ける。また、ＳＡＴＡＣ２１は、ＮＡＮＤフラッシュメモリ１１から読み出されたデータやステータス信号等をホスト３０に供給する。
【００１８】
第１のＣＰＵ２２は、フロントエンドプロセッサとしての機能を有し、ファームウェアに基づき、ＳＡＴＡＣ２１から供給されるリクエストを解析する。このリクエストが例えばＮＡＮＤフラッシュメモリ１１のアクセスに関するものである場合、第１のＣＰＵ２２は、そのリクエストを第２のＣＰＵ２３に供給する。
【００１９】
また、リクエストとしては、ＮＡＮＤフラッシュメモリ１１のアクセス以外に関するものがある。例えばＴＣＭのアクセスや、ＳＲＡＭ２５に格納されたデータをホストに転送するリクエストある。この場合、第１のＣＰＵ２２は、そのリクエストに従って、ＴＣＭやＳＲＡＭ２５に保持されたデータを、ＳＡＴＡＣ２１を介してホスト３０に転送する。
【００２０】
さらに、第１のＣＰＵ２２は、ホスト３０からＳＡＴＡＣ２１を介して供給されるリクエストが、例えば一定時間の間ない場合、省電力処理を実行し、ＳＡＴＡＣ２１を省電力状態とする。省電力処理の具体的な動作については後述する。
【００２１】
一方、第２のＣＰＵ２３は、バックエンドプロセッサとしての機能を有し、ファームウェアに基づき、ＮＡＮＤＣ２４を介してＮＡＮＤフラッシュメモリ１１をアクセスする。すなわち、第２のＣＰＵ２３は、第１のＣＰＵ２２から供給されるリクエストをＮＡＮＤＣ２４に供給する。ＮＡＮＤＣ２４は、リクエストに従って、ＮＡＮＤフラッシュメモリ１１をアクセスする。
【００２２】
ＮＡＮＤＣ２４は、リクエストが例えばデータの書き込みである場合、ＮＡＮＤフラッシュメモリ１１にホスト３０から供給されたデータを指定されたアドレスに書き込む。また、リクエストが例えばデータの読み出しである場合、ＮＡＮＤＣ２４は、ＮＡＮＤフラッシュメモリ１１の指定されたアドレスからデータを読み出し、このデータを例えばＳＲＡＭ２５に転送する。
【００２３】
また、第２のＣＰＵ２３は、種々のイベントを処理する。このイベントとしては、例えば一定期間毎に実行されるチップの温度の測定や、例えばＮＡＮＤＣ２４によるＮＡＮＤフラッシュメモリ１１内に生じた無効データ（同一アドレスへの書き込み（データ更新）に伴い無効化されたデータ）が増加した場合に、有効データを新規の空きブロックへコピーすることで、有効データを含まなくなったコピー元ブロックを空きブロックとして再利用する所謂コンパクション処理がある。
【００２４】
このようなＳＳＤ１０の内部で発生するイベントは、ホスト３０から要求される処理に対する応答速度の劣化を抑制するため、例えば、ホスト３０からのアクセスが所定期間無いことを検知して実行される。この場合ＳＳＤ１０は、ハードウェアまたはファームウェアで構成されるタイマーを備えていてもよい。コンパクションは、ＳＳＤ１０内部において所定数以上の空きブロックが生成された段階で終了させてもよい。また、ＳＳＤ１０の内部で発生するイベントとして、各ブロックのデータを定期的に読み出して誤りビット数を監視し（パトロール）、誤りビット数が閾値を超えたら別のブロックへデータを書き直す、所謂リフレッシュ処理を実行してもよい。
【００２５】
さらに、第２のＣＰＵ２３は、例えば一定時間の間、第１のＣＰＵ２２からのリクエストが無い場合、又は、一定時間の間イベントが無い場合、省電力処理を実行し、ＮＡＮＤＣ２４及びＮＡＮＤフラッシュメモリ１１を省電力状態とする。
【００２６】
ＳＲＡＭ２５は、第１、第２のＣＰＵ２２、２３の例えばワークメモリやバッファとして使用される。第１、第２のＣＰＵ２２、２３が実行するファームウェアの少なくとも一部がＳＲＡＭ２５に展開されていてもよい。
【００２７】
ＣＬＫ発振器２８は、第１、第２のＣＰＵ２２、２３の制御に基づき、クロック信号を発生し、このクロック信号を例えばＳＡＴＡＣ２１、第１、第２のＣＰＵ２２、２３、ＮＡＮＤＣ２４に供給する。第１、第２のＣＰＵ２２、２３は、図２に示すように、例えばＣＬＫ発振器２８の動作を管理するクロック管理部をファームウェアとして有しており、このクロック管理部の制御に基づきＣＬＫ発振器２８が動作する。すなわち、このクロック管理部は、後述するように、通常の動作状態、及び省電力状態において、ＣＬＫ発振器２８の発振、又は停止、或いは発振周波数の変更、及びクロック信号の供給先を制御する。
【００２８】
図２は、第１、第２のＣＰＵ２２、２３の概略構成を示している。第１、第２のＣＰＵ２２、２３は、ＲＡＭにより構成されたＴＣＭを有している。このＴＣＭ内には、前述したように、ＮＡＮＤフラッシュメモリ１１から読み出された各種のファームウェアＦＷが格納されるとともに、各種の変数が格納される。
【００２９】
ホスト３０から、発行されたリクエストが、例えば第１のＣＰＵ２２のＴＣＭに記憶された変数を読み出すものである場合、第１のＣＰＵ２２のＴＣＭから指定された変数が読み出され、ＳＡＴＡＣ２１を介してホスト３０に転送される。
【００３０】
上記構成において、図３乃至図８を参照して動作について説明する。
【００３１】
（第１の動作モード）
図３及び図６は、本実施形態の第１の動作モードを示している。
【００３２】
図３及び図６は、通常動作状態において、ホスト３０から例えばＮＡＮＤフラッシュメモリ１１のデータを読み出すリクエストが発行された場合の動作、及び、リクエスト処理が終了して省電力状態となり、この省電力状態において、ホスト３０からＮＡＮＤフラッシュメモリ１１をアクセスするリクエストに基づき、省電力状態から通常動作状態に復帰する場合の動作を示している。
【００３３】
この場合、図３に示すように、ＳＡＴＡＣ２１、第１のＣＰＵ２２、第２のＣＰＵ２３、ＮＡＮＤＣ２４、ＮＡＮＤフラッシュメモリ１１の全てを通常の動作状態とする必要がある。
【００３４】
尚、図３、図４、図５において、破線は、リクエスト、又はイベントの流れ、及びＮＡＮＤフラッシュメモリ１１から読み出されたデータや、第１のＣＰＵ２２から読み出されたデータの流れを示している。
【００３５】
図６に示すように、第１のＣＰＵ２２は、ホスト３０から供給されるリクエストを解析し、リクエストに従った処理を実行する（Ｓ１１）。例えばホスト３０から発行されたリクエストが、ＮＡＮＤフラッシュメモリ１１からデータを読み出すリクエストである場合、リクエストが第２のＣＰＵ２３に供給される。
【００３６】
第２のＣＰＵ２３は、第１のＣＰＵ２２から供給されるリクエストに従った処理、又はイベントに従った処理を実行する（Ｓ２１）。この場合、ホスト３０から発行されたリクエストが、ＮＡＮＤフラッシュメモリ１１からデータを読み出すリクエストであるため、ＮＡＮＤＣ２４を介してＮＡＮＤフラッシュメモリ１１の指定されたアドレスからデータが読み出され、この読み出されたデータがＮＡＮＤＣ２４、バス２９を介してＳＲＡＭ２５に供給される。このＳＲＡＭ２５に格納されたデータは、ＳＡＴＡＣ２１を介して読み出され、ホスト３０に転送される。
【００３７】
第１のＣＰＵ２２は、上記リクエスト処理が実行された後、次のリクエストがあるかどうかを判別する（Ｓ１２）。この結果、次のリクエストがある場合は、リクエスト処理が実行される（Ｓ１１）。
【００３８】
また、リクエストが無い場合、ＳＡＴＡＣ２１が省電力状態に設定される。すなわち、先ず、ＳＡＴＡＣ２１の一部の機能を除き、電源供給が停止される。具体的には、例えばリクエストを受け付ける回路以外の回路への電源供給が停止される。（Ｓ１３）。
【００３９】
さらに、ＣＬＫ発振器２８からＳＡＴＡＣ２１へのクロック信号の供給が制限される（Ｓ１４）。すなわち、ＣＬＫ発振器２８は、クロック管理部の制御に基づき、ＳＡＴＡＣ２１のリクエストを受け付ける回路以外の回路へのクロック信号の供給を停止する。さらに、リクエストを受け付ける回路に供給されるクロック信号の周波数が低下される。
【００４０】
このように、省電力状態において、ＳＡＴＡＣ２１は、リクエストを受け付ける回路のみが動作状態とされ、その他の回路領域は休止状態とされる。
【００４１】
さらに、この省電力状態において、第１のＣＰＵ２２に供給されるクロック信号の周波数も低下される。この状態において、第１のＣＰＵ２２は、ホスト３０からリクエストが発行されることを待つ待機状態となる（Ｓ１５）。
【００４２】
一方、第２のＣＰＵ２３において、上記リクエスト処理が実行された後、次のリクエスト又はイベントがあるかどうかが判別される（Ｓ２２）。この結果、リクエスト又はイベントがある場合は、リクエスト又はイベントの処理が実行される（Ｓ２２）。
【００４３】
また、リクエスト又はイベントが無い場合、ＮＡＮＤＣ２４とＮＡＮＤフラッシュメモリ１１が省電力状態に設定される。すなわち、先ず、ＮＡＮＤＣ２４とＮＡＮＤフラッシュメモリ１１への電源供給が停止される（Ｓ２３）。
【００４４】
さらに、ＣＬＫ発振器２８からＮＡＮＤＣ２４、及びＮＡＮＤフラッシュメモリ１１へのクロック信号の供給が制限される（Ｓ２４）。すなわち、ＣＬＫ発振器２８は、クロック管理部の制御に基づき、ＮＡＮＤＣ２４、及びＮＡＮＤフラッシュメモリ１１へのクロック信号の供給を停止する。
【００４５】
さらに、この省電力状態において、第２のＣＰＵ２３に供給されるクロック信号の周波数も低下される。この状態において、第２のＣＰＵ２３は、イベントが発生されるか、第１のＣＰＵ２２から復帰通知が発生されることを待つ待機状態となる（Ｓ２５）。
【００４６】
上記のように、第１、第２のＣＰＵ２２、２３が待機状態（Ｓ１５、Ｓ２５）において、ホスト３０からリクエストが発行されると、ＳＡＴＡＣ２１を介してリクエストが第１のＣＰＵ２２に供給される。
【００４７】
第１のＣＰＵ２２は、そのリクエストを判別し、そのリクエストがＮＡＮＤフラッシュメモリ１１のアクセスに関するものである場合、第２のＣＰＵ２３に割り込みにより、復帰を通知する（Ｓ１６）。
【００４８】
この後、第１のＣＰＵ２２は、第２のＣＰＵ２３から出力され、第２のＣＰＵ２３が省電力状態から通常動作状態に復帰したことを示す復帰完了通知を待つ待機状態となる（Ｓ１７）。
【００４９】
第２のＣＰＵ２３は、第１のＣＰＵ２２から復帰通知を受けると、ＣＬＫ発振器２８にＮＡＮＤＣ２４及びＮＡＮＤフラッシュメモリ１１へのクロック信号の供給を指示する（Ｓ２６）。
【００５０】
さらに、第２のＣＰＵ２３は、ＮＡＮＤＣ２４及びＮＡＮＤフラッシュメモリ１１に電源を供給し、ＮＡＮＤＣ２４及びＮＡＮＤフラッシュメモリ１１を通常動作状態に設定する（Ｓ２７）。
【００５１】
この後、第２のＣＰＵ２３は、割り込みにより、第１のＣＰＵ２２に、ＮＡＮＤＣ２４及びＮＡＮＤフラッシュメモリ１１の復帰が完了したことを示す復帰完了通知を送る（Ｓ２８）。
【００５２】
第１のＣＰＵ２２は、復帰完了通知の待機状態において（Ｓ１７）、第２のＣＰＵ２３からの復帰完了通知を受けると、ＣＬＫ発振器２８にＳＡＴＡＣ２１へのクロック信号の供給を指示する（Ｓ１８）。さらに、第１のＣＰＵ２２は、ＳＡＴＡＣ２１に電源を供給し、ＳＡＴＡＣ２１を省電力状態から通常動作状態に設定する（Ｓ１９）。
【００５３】
このようにして、ＳＡＴＡＣ２１、第１のＣＰＵ２２、第２のＣＰＵ２３、ＮＡＮＤＣ２４、ＮＡＮＤフラッシュメモリ１１が省電力状態から通常動作状態に復帰される。
【００５４】
上記第１の動作モードによれば、ＳＡＴＡＣ２１、第１のＣＰＵ２２、第２のＣＰＵ２３、ＮＡＮＤＣ２４、ＮＡＮＤフラッシュメモリ１１が省電力状態である場合において、ホスト３０により発行されたリクエストがＮＡＮＤフラッシュメモリ１１のアクセスに関するものである場合、先ず、第１のＣＰＵ２２から第２のＣＰＵ２３に割り込みにより復帰通知が供給される。第２のＣＰＵ２３は、この復帰通知に基づき、ＮＡＮＤＣ２４、ＮＡＮＤフラッシュメモリ１１を省電力状態から通常動作状態に復帰させ、さらに、復帰完了通知を割り込みにより第１のＣＰＵ２２に供給する。第１のＣＰＵ２２は、この復帰完了通知に基づき、ＳＡＴＡＣ２１、第１のＣＰＵ２２を省電力状態から通常動作状態に復帰させている。このため、リクエストを処理するために必要なハードウェアを省電力状態から通常動作状態に速やかに復帰させることが可能である。
【００５５】
（第２の動作モード）
図４及び図７は、本実施形態の第２の動作モードを示すものであり、第１の動作モードと同一部分には同一符合を付し説明は省略する。
【００５６】
図４及び図７は、例えばＳＡＴＡＣ２１、第１のＣＰＵ２２、第２のＣＰＵ２３、ＮＡＮＤＣ２４、ＮＡＮＤフラッシュメモリ１１が省電力状態である場合において、ＳＳＤ１０の内部で発生したイベントにより、ＮＡＮＤＣ２４、ＮＡＮＤフラッシュメモリ１１が省電力状態から通常動作状態に復帰する場合の動作示している。
【００５７】
この場合、図４に示すように、ＳＡＴＡＣ２１、及び第１のＣＰＵ２２は、通常動作状態に復帰させる必要はなく、第２のＣＰＵ２３、ＮＡＮＤＣ２４、ＮＡＮＤフラッシュメモリ１１を通常動作状態に復帰させればよい。
【００５８】
すなわち、図７に示すように、ＳＡＴＡＣ２１、第１のＣＰＵ２２が省電力状態である場合において、第１のＣＰＵ２２は、リクエストが発行されることを待つ待機状態となっている（Ｓ１５）。
【００５９】
また、ＮＡＮＤＣ２４、ＮＡＮＤフラッシュメモリ１１が省電力状態である場合、第２のＣＰＵ２３は、第１のＣＰＵ２２から復帰通知が供給されるか（Ｓ２５）、イベントが発生されるかを待つ待機状態となっている（Ｓ２５−１）。
【００６０】
この状態において、例えば時間のカウント、又は温度測定、ＮＡＮＤフラッシュメモリ１１のコンパクション処理などのイベントが発生した場合、第２のＣＰＵ２３のファームウェアにより、そのイベントの割り込みが受け付けられる（Ｓ２５−１、ＹＥＳ）。
【００６１】
この場合、第２のＣＰＵ２３は、ＣＬＫ発振器２８にＮＡＮＤＣ２４及びＮＡＮＤフラッシュメモリ１１へのクロック信号の供給を指示する（Ｓ２６）。
【００６２】
さらに、第２のＣＰＵ２３は、ＮＡＮＤＣ２４及びＮＡＮＤフラッシュメモリ１１に電源を供給し、ＮＡＮＤＣ２４及びＮＡＮＤフラッシュメモリ１１を通常動作状態に設定する（Ｓ２７）。
【００６３】
このとき、第１のＣＰＵは、イベントの発生を知る必要がないため、第１のＣＰＵに、ＮＡＮＤＣ２４及びＮＡＮＤフラッシュメモリ１１が通常動作状態に復帰したことを示す復帰完了通知は供給されない。このため、ＳＡＴＡＣ２１、第１のＣＰＵ２１は、省電力状態のままに保持される。
【００６４】
尚、第１のＣＰＵ２２のファームウェアは、ホスト３０から供給されるリクエスト以外を受け付けないように設定されている。
【００６５】
上記のように、ＮＡＮＤＣ２４及びＮＡＮＤフラッシュメモリ１１が通常動作状態に復帰された状態において、時刻のカウント、又は温度測定、ＮＡＮＤフラッシュメモリ１１のコンパクション処理などのイベント処理が実行される（Ｓ２１）。このイベント処理が終了した後、次のリクエスト又はイベントが無い場合（Ｓ２２）、前述したように、ＮＡＮＤＣ２４、ＮＡＮＤフラッシュメモリ１１は省電力状態に設定される（Ｓ２３、Ｓ２４）。
【００６６】
上記第２の動作モードによれば、第２のＣＰＵ２３、ＮＡＮＤＣ２４及びＮＡＮＤフラッシュメモリ１１が省電力状態において、イベントが発生した場合、第２のＣＰＵ２３、ＮＡＮＤＣ２４及びＮＡＮＤフラッシュメモリ１１が通常状態に復帰されてイベントが処理される。この際、第１のＣＰＵ２２に、ＮＡＮＤＣ２４及びＮＡＮＤフラッシュメモリ１１が通常動作状態に復帰したことを示す復帰完了が通知されない。すなわち、上記イベント処理は、第２のＣＰＵ２３により処理され、ＳＡＴＡＣ２１、第１のＣＰＵ２２の処理は不要である。このため、ＳＡＴＡＣ２１、第１のＣＰＵ２１は、省電力状態のままに保持される。したがって、イベントの処理に必要なハードウェアのみを通常動作状態に復帰させるため、無駄な電力を削減でき、消費電力を低減することが可能である。
【００６７】
（第３の動作モード）
図５及び図８は、本実施形態の第３の動作モードを示すものであり、第１、第２の動作モードと同一部分には同一符合を付し説明は省略する。
【００６８】
図５及び図８は、例えばＳＡＴＡＣ２１、第１のＣＰＵ２２、第２のＣＰＵ２３、ＮＡＮＤＣ２４、ＮＡＮＤフラッシュメモリ１１が省電力状態において、ホスト３０から供給されたリクエストが、ＮＡＮＤＣ２４、ＮＡＮＤフラッシュメモリ１１の動作を必要としない場合の動作を示している。このリクエストは、例えば第１のＣＰＵ２２に設けられたＴＣＭ内の変数の読み出し、或いは、ＳＲＡＭ２５に保持されたデータをホスト３０に転送するリクエストである。
【００６９】
この場合、図５に示すように、第２のＣＰＵ２３、ＮＡＮＤＣ２４、ＮＡＮＤフラッシュメモリ１１を通常動作状態に復帰させる必要はなく、ＳＡＴＡＣ２１、及び第１のＣＰＵ２２を通常動作状態に復帰させればよい。
【００７０】
すなわち、図８に示すように、ＳＡＴＡＣ２１、第１のＣＰＵ２２が省電力状態の場合、第１のＣＰＵ２２は、リクエストが発行されることを待つ待機状態となっている（Ｓ１５）。
【００７１】
また、ＮＡＮＤＣ２４、ＮＡＮＤフラッシュメモリ１１が省電力状態の場合、第２のＣＰＵ２３は、第１のＣＰＵ２２から復帰通知が供給されるか（Ｓ２５）、イベントが発生されるかを待つ待機状態となっている（Ｓ２５−１）。
【００７２】
この状態において、ホスト３０からリクエストが発行された場合（Ｓ１５、ＹＥＳ）、第１のＣＰＵ２２のファームウェアによりリクエストが解析され、このリクエストがＮＡＮＤフラッシュメモリ１１のアクセスを必要とするかどうかが判別される（Ｓ３１）。この判別の結果、ＮＡＮＤフラッシュメモリ１１のアクセスを必要とする場合は、前述した第１の動作モードと同様の動作が実行される（Ｓ１６〜Ｓ１９）。
【００７３】
一方、リクエストがＮＡＮＤフラッシュメモリ１１のアクセスを必要としない場合、第２のＣＰＵ２３へ復帰通知を行うことなく、ＳＡＴＡＣ２１が省電力状態から通常動作状態に復帰される。
【００７４】
すなわち、第１のＣＰＵ２２は、ＣＬＫ発振器２８にＳＡＴＡＣ２１へのクロック信号の供給を指示する（Ｓ１８）。
【００７５】
さらに、第１のＣＰＵ２２は、ＳＡＴＡＣ２１に電源を供給し、ＳＡＴＡＣ２１を省電力状態から通常動作状態に設定する（Ｓ１９）。
【００７６】
このように、ＳＡＴＡＣ２１が省電力状態から通常動作状態に復帰された状態において、リクエスト処理が実行され、例えば第１のＣＰＵ２２内のＴＣＭに格納された変数、又は、ＳＲＡＭ２５に格納されたデータが読み出され、ＳＡＴＡＣ２１を介してホスト３０に転送される（Ｓ１１）。
【００７７】
上記リクエスト処理が完了し、次のリクエストが無い場合（Ｓ１２）、ＳＡＴＡＣ２１、第１のＣＰＵ２２は、前述した省電力状態に設定される（Ｓ１３，Ｓ１４）。
【００７８】
上記第３の動作モードによれば、ＳＡＴＡＣ２１、第１のＣＰＵ２２、第２のＣＰＵ２３、ＮＡＮＤＣ２４、ＮＡＮＤフラッシュメモリ１１が省電力状態において、ホスト３０から供給されたリクエストが、ＮＡＮＤＣ２４、ＮＡＮＤフラッシュメモリ１１の動作を必要としない場合、第２のＣＰＵ２３に復帰通知を行わず、第２のＣＰＵ２３、ＮＡＮＤＣ２４、ＮＡＮＤフラッシュメモリ１１を省電力状態としたまま、ＳＡＴＡＣ２１、第１のＣＰＵ２２を省電力状態から通常動作状態に復帰させてリクエストを処理している。このため、無駄な電力消費を削減して、消費電力の低減を図ることが可能である。
【００７９】
尚、上記実施形態は、コントローラ２０が第１、第２のＣＰＵ２２、２３を有する場合につい説明した。しかし、これに限定されるものではなく、コントローラ２０が３つ以上のＣＰＵコアを有する場合においても、リクエスト、又はイベントの処理に必要のないハードウェアを省電力状態から復帰させないことにより、消費電力を低減することが可能である。
【００８０】
その他、本発明は上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【００８１】
１０…ＳＳＤ、１１…ＮＡＮＤフラッシュメモリ、２０…コントローラ、２１…ＳＡＴＡＣ、２２…第１のＣＰＵ、２３…第２のＣＰＵ、２４…ＮＡＮＤＣ、２８…ＣＬＫ発振器、３０…ホスト。
【図１】
2013196112.tif 000003
【図２】
2013196112.tif 000004
【図３】
2013196112.tif 000005
【図４】
2013196112.tif 000006
【図５】
2013196112.tif 000007
【図６】
2013196112.tif 000008
【図７】
2013196112.tif 000009
【図８】
2013196112.tif 000010