(57)【特許請求の範囲】
【請求項１】
クロック信号に従って動作するＣＰＵと、
不揮発性メモリを含む複数のメモリブロックと、
前記複数のメモリブロックに接続された内部電圧発生回路と、
前記複数のメモリブロックに接続された入出力回路と、
前記内部電圧発生回路、前記入出力回路、および前記複数のメモリブロックの各々に対応して設けられ、電源との接続をＯＮ／ＯＦＦするスイッチと、
前記スイッチのＯＮ／ＯＦＦを制御するデータセットを格納する電源制御データレジスタと、
前記電源制御データレジスタにデータセットを設定する電源制御データ管理回路と、を備え、
前記電源制御データ管理回路は、前記ＣＰＵへ入力されるクロック信号がＯＦＦとなると、前記内部電圧発生回路に接続されたスイッチをＯＮにし、前記複数のメモリブロックに接続されたスイッチをＯＦＦにして当該複数のメモリブロックへの電力供給を停止する第１のデータセットを生成して前記電源制御データレジスタに設定する情報処理装置。
【請求項２】
前記ＣＰＵから最後にアクセスされたメモリブロックに接続された前記スイッチをＯＮにする第２のデータセットを格納する電源制御データ履歴レジスタを更に有し、
前記電源制御データ管理回路は、前記ＣＰＵへ入力されるクロック信号がＯＦＦとなったことに基づいて前記電源制御データレジスタに前記第１のデータセットを設定した後に、前記ＣＰＵへ入力されるクロック信号がＯＮとなると、前記電源制御データ履歴レジスタに記憶された前記第２のデータセットを前記電源制御データレジスタに設定する請求項１に記載の情報処理装置。
【請求項３】
前記第２のデータセットは、前記電源制御データ管理回路が前記ＣＰＵからのアクセス対象アドレスを取得した場合に、前記複数のメモリブロックの内、アクセス対象アドレスのメモリが含まれるメモリブロックに接続された前記スイッチをＯＮにして他の少なくとも１つのメモリブロックに接続された前記スイッチをＯＦＦにするデータセットであって、前記電源制御データレジスタおよび前記電源制御データ履歴レジスタに設定される請求項２に記載の情報処理装置。
【請求項４】
前記第２のデータセットは、前記電源制御データ管理回路が前記ＣＰＵからのアクセス対象アドレスを取得した場合に、前記複数のメモリブロックの内、アクセス対象アドレスのメモリが含まれるメモリブロックに接続された前記スイッチと、前回アクセスされたメモリブロックに接続された前記スイッチをＯＮにして他のメモリブロックに接続された前記スイッチをＯＦＦにするデータセットであって、前記電源制御データレジスタおよび前記電源制御データ履歴レジスタに設定される請求項２または３に記載の情報処理装置。
【請求項５】
前記第２のデータセットは、前記電源制御データ管理回路が前記ＣＰＵからのアクセス対象アドレスを取得した場合に、前記複数のメモリブロックの内、アクセス対象アドレスのメモリが含まれるメモリブロックに接続された前記スイッチと、最後にアクセスされてから所定の時間経過前のメモリブロックに接続された前記スイッチをＯＮにして他のメモリブロックに接続された前記スイッチをＯＦＦにするデータセットであって、前記電源制御データレジスタおよび前記電源制御データ履歴レジスタに設定される請求項２または３に記載の情報処理装置。
【請求項６】
前記電源制御データ管理回路は、前記ＣＰＵへ入力されるクロック信号がＯＦＦとなった後に所定の時間が経過すると、前記内部電圧発生回路に接続されたスイッチと前記複数のメモリブロックに接続されたスイッチをＯＦＦにする第３のデータセットを生成し、前記電源制御データレジスタに設定する請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記電源制御データ管理回路は、前記ＣＰＵへ入力されるクロック信号がＯＦＦとなった後に所定の時間が経過したことに応じて、前記内部電圧発生回路に接続されたスイッチと前記複数のメモリブロックに接続されたスイッチをＯＦＦにする第３のデータセットを前記電源制御データレジスタに設定した後に、前記ＣＰＵへ入力されるクロック信号がＯＮとなると、前記内部電圧発生回路に接続されたスイッチをＯＮにする第４のデータセットを生成して前記電源制御データレジスタに設定する請求項６に記載の情報処理装置。
【請求項８】
前記ＣＰＵからアクセスされる頻度が高いメモリブロックに接続された前記スイッチをＯＮにして他の少なくとも１つのメモリブロックに接続された前記スイッチをＯＦＦにする第５のデータセットを格納する電源制御データ履歴レジスタを更に有し、
前記電源制御データ管理回路は、前記ＣＰＵへ入力されるクロック信号がＯＦＦとなったことに基づいて前記電源制御データレジスタに第１のデータセットを設定した後に、前記ＣＰＵへ入力されるクロック信号がＯＮとなると、前記電源制御データ履歴レジスタに記憶された前記第５のデータセットを前記電源制御データレジスタに設定する請求項１に記載の情報処理装置。
【請求項９】
前記第１のデータセットは、前記内部電圧発生回路に接続されたスイッチをＯＮにし、前記複数のメモリブロックに接続されたスイッチをＯＦＦにするとともに、前記入出力回路に接続されたスイッチをＯＮにする請求項１乃至８のいずれか１項に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は情報処理装置に関する。
【背景技術】
【０００２】
情報処理システムは、一般的にプロセッサコア、キャッシュメモリ、メインメモリを含む。キャッシュメモリはＳＲＡＭ（Static Random Access Memory）、メインメモリはＤＲＡＭ（Dynamic Random Access Memory）で構成される。ＳＲＡＭとＤＲＡＭは、共にデータの保持に電源を必要とする揮発性のメモリである。また、ＳＲＡＭはデータセルのリーク電流が大きく、ＤＲＡＭはデータ保持のために再書込み（リフレッシュ）動作が必要であり、どちらも消費電力が大きいという課題がある。
【０００３】
そこで、情報処理システムが演算を行っている状態（以下では、動作モードと称する）と行っていない状態（以下では、待機モードと称する）の内、待機モード時には、プロセッサコアからキャッシュメモリへのアクセスが無いことから、キャッシュメモリを構成するＳＲＡＭの電源電圧をデータ保持可能な最低の電圧まで下げる、またはＳＲＡＭ内のデータをメインメモリへ退避させてからＳＲＡＭの電源を遮断するといった低消費電力化の方法が採用されている。
【０００４】
また、更なる情報処理システムの低消費電力化の方法として、動作モードに着目した方法が提案されている。例えば、複数のメモリアレイを備えた不揮発性メモリを含む情報処理装置において、メモリアレイ毎に電力供給を制御し、プロセッサがメモリアレイへのアクセス時にアクセス対象となるメモリアレイについての電源供給のオン／オフを制御することによって、アクセス対象でないメモリアレイに対する電源供給を遮断することで低消費電力化を実現する方法がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−２１１１５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、プロセッサがメモリアレイへのアクセスするときに、実際にアクセス対象のメモリがアクセス可能となるまでに次のような工程が必要となる。アクセス対象となるメモリアレイに対して電力供給がされているかどうかを確認する工程、電力供給がされていなければそのメモリアレイに対して電力を供給し、他のメモリアレイに対する電力供給を遮断する工程、電力を供給した不揮発性メモリの安定化を待つ工程が必要となる。不揮発性メモリに電力を供給してから不揮発性メモリが安定化してアクセス可能となるまでには時間がかかる。特に、不揮発性メモリに含まれる電圧発生回路の安定化には数１０〜数１００μｓの時間がかかる。そこで、メモリを低消費電力化しながらも、高速なアクセスを可能とすることが望まれていた。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明の実施形態による情報処理装置は、クロック信号に従って動作するＣＰＵと、不揮発性メモリを含む複数のメモリブロックと、前記複数のメモリブロックに接続された内部電圧発生回路と、前記複数のメモリブロックに接続された入出力回路と、前記内部電圧発生回路、前記入出力回路、および前記複数のメモリブロックの各々に対応して設けられ、電源との接続をＯＮ／ＯＦＦするスイッチと、前記スイッチのＯＮ／ＯＦＦを制御するデータセットを格納する電源制御データレジスタと、前記電源制御データレジスタにデータセットを設定する電源制御データ管理回路と、前記電源制御データ管理回路は、前記ＣＰＵへ入力されるクロック信号がＯＦＦとなると、前記内部電圧発生回路に接続されたスイッチをＯＮにし、前記複数のメモリブロックに接続されたスイッチをＯＦＦにする第１のデータセットを生成して前記電源制御データレジスタに設定することを特徴としている。
【図面の簡単な説明】
【０００８】
【図１】本発明の第１の実施形態に係る情報処理装置のブロック図。
【図２】本発明の第１の実施形態に係る情報処理装置のキャッシュに含まれるスイッチの図。
【図３】本発明の第１の実施形態に係る情報処理装置の電源供給制御の様子を示す図。
【図４】本発明の第１の実施形態に係る情報処理装置に含まれる電源制御データ管理回路の図。
【図５】本発明の第１の実施形態に係る情報処理装置の状態遷移図。
【図６】本発明の第１の実施形態に係る情報処理装置の電源制御データ管理回路の処理フローチャート。
【図７】本発明の第１の実施形態に係る情報処理装置の電源制御データ管理回路の処理フローチャート。
【図８】本発明の第１の実施形態に係る情報処理装置の電源制御データ管理回路の処理フローチャート。
【図９】本発明の第１の実施形態に係る情報処理装置の電源制御データ管理回路の処理フローチャート。
【図１０】本発明の第１の実施形態に係る情報処理装置の電源制御データ管理回路の処理フローチャート。
【図１１】本発明の第２の実施形態に係る情報処理装置の電源供給制御の様子を示す図。
【図１２】本発明の第２の実施形態に係る情報処理装置に含まれる電源制御データ管理回路の図。
【図１３】本発明の第２の実施形態に係る情報処理装置の電源制御データ管理回路の処理フローチャート。
【図１４】本発明の第３の実施形態に係る情報処理装置の電源供給制御の様子を示す図。
【図１５】本発明の第３の実施形態に係る情報処理装置に含まれる電源制御データ管理回路の図。
【図１６】本発明の第３の実施形態に係る情報処理装置の電源制御データ管理回路の処理フローチャート。
【図１７】本発明の第４の実施形態に係る情報処理装置に含まれる電源制御データ管理回路の図。
【図１８】本発明の第５の実施形態に係る情報処理装置に含まれる電源制御データ管理回路の図。
【発明を実施するための形態】
【０００９】
（第１の実施形態）
以下、本発明の実施形態について図面を参照して説明する。図１は本実施形態に係る情報処理装置のブロック図である。本実施形態に係る情報処理装置は、例えば、ＰＣや携帯電話など情報機器のプロセッサである。
【００１０】
情報処理装置１は、キャッシュ１０、メモリ電源電圧２０、キャッシュメモリ電源制御回路３０、キャッシュメモリ制御回路４０、ＣＰＵ５０、ＣＰＵ電源制御回路６０を有する。ここでのキャッシュ１０は、不揮発性メモリによって構成する。不揮発性メモリとしては、不揮発性を有するメモリであれば良く、例えば、ＭＲＡＭ（Megnetoresistive Random Access Memory）、ＰＲＡＭ（Phase change RAM）、ＲｅＲＡＭ（Resistance Random Access Memory）、ＦｅＲＡＭ（Ferroelectric Random Access Memory）、イオン伝導性を利用したＲＡＭなどを用いることができる。
【００１１】
メモリ電源電圧２０は、キャッシュ１０に電力を供給する。ＣＰＵ５０は、ＣＰＵコアクロック信号にもとづいてキャッシュ１０に格納されているデータを用いた演算を行う。ＣＰＵコア電源制御回路６０は、ＣＰＵ５０の状態を判断し、ＣＰＵ５０の状態に応じた制御（スリープ制御、ウェイクアップ制御など）を行うためのステート情報信号をＣＰＵ５０に入力する。キャッシュメモリ制御回路４０は、ＣＰＵ５０の演算に従って、キャッシュ１０へのアクセス（データの読み込み・書き込み）を制御する。キャッシュメモリ電源制御回路３０は、キャッシュメモリ制御回路４０の制御に従い、キャッシュメモリ制御回路４０がアクセスする対象となるキャッシュ１０のメモリブロックを判定し、キャッシュのメモリブロック毎に電力供給を制御する。キャッシュメモリ電源制御回路３０の詳細な動作については、後述する。
【００１２】
キャッシュ１０は、複数のメモリブロック１１、入出力回路１２、内部電圧発生回路１３を有する。図１では、４つのメモリブロックがある場合を例とし、各メモリブロックをメモリブロックＡ〜メモリブロックＤと表記する。各メモリブロック１１は、１つまたは複数のメモリアレイに対応していても良いし、メモリアレイを更に細分化したメモリ領域に対応していても良い。入出力回路１２は、キャッシュメモリ制御回路４０の制御に応じて、メモリブロック１１の指定されたアドレスからデータを読み出したり、メモリブロック１１へデータを書き出したりする。
【００１３】
メモリブロック１１は、対応する内部電圧発生回路１３に接続されている。内部電圧発生回路１３は、図示しないポンプ回路を有し、書き込み時の高電圧としてのプログラム電圧や読み出し電圧などをキャッシュメモリ制御回路４０の制御に従ってメモリブロック１１へ供給する。
【００１４】
メモリ電源電圧２０とキャッシュ１０の各構成要素は、キャッシュメモリ電源制御回路３０のスイッチ３２を介して接続されている。各スイッチ３２は、例えば図２に示すように、電源制御データレジスタ３１に格納されたデータに基づいて、メモリ電源電圧２０とキャッシュ１０の各構成要素（メモリブロック１１、入出力回路１２、電圧発生回路１３）との接続をオン／オフする。
【００１５】
電源制御データレジスタ３１は、キャッシュ１０のメモリブロック１１、入出力回路１２、電圧発生回路１３への電源供給をオン／オフする各スイッチ３２を制御するためのデータを電源制御データ管理回路３３から取得し、そのデータを格納する。
【００１６】
図２に示すように、メモリブロック１１のそれぞれ（Ａ〜Ｄ）は、異なるスイッチ３２によってメモリ電源電圧２０との接続が制御される。このため、メモリブロック１１毎に電力供給を行うか停止するかを制御することができる。
【００１７】
さらに、メモリブロック１１の電力供給を制御するスイッチとは異なるスイッチを用いて入出力回路１２とメモリ電源電圧２０との接続や内部電圧発生回路１３とメモリ電源電圧２０との接続が制御される。これによって、メモリブロック１１とは独立して入出力回路１２、内部電圧発生回路１３への電力供給を制御することができる。
【００１８】
図３は、情報処理装置１によるメモリブロック１１の電源供給制御の様子を示す図である。本実施形態に係る情報処理装置１は、メモリブロックＡ〜Ｄのいずれかにアクセスが発生することをアクセスエリア管理部３０が判定すると、当該メモリブロックに対する電力供給を開始し、次のメモリブロックへのアクセスが発生するまで、そのメモリブロックに対する電力供給を維持する。
【００１９】
例えば、図３では、メモリブロックＡにアクセスが発生すると、状態（２）のようにメモリブロックＡへ電力が供給される。なお、図３では、電力が供給されるメモリブロックを網掛けして表現している。そして、メモリブロックＡへのアクセスが完了した後も状態（３）のようにメモリブロックＡへの電力供給を継続する。その後、メモリブロックＤへのアクセスが発生すると、状態（４）のようにメモリブロックＡへの電力供給を停止し、メモリブロックＤへの電力供給を開始する。
【００２０】
また、本実施形態に係る情報処理装置１は、ＣＰＵ電源制御回路６０がＣＰＵ５０の処理が完了したことを判断し、ＣＰＵコアクロック信号をオフにするための信号（ステート信号）を出力した場合に、キャッシュメモリ電源制御回路３０にもそのステート信号が入力され、キャッシュメモリ電源制御回路３０は、全てのメモリブロック１１への電力供給を停止するよう電源制御データレジスタ３１のデータを制御する。
【００２１】
例えば、図３の状態（５）のように、メモリブロックＤへのアクセスが完了して一定時間経過前まではメモリブロックＤへの電力供給が継続される。その後、メモリブロックＤへのアクセスが完了してから一定時間が経過したことをＣＰＵ電源制御回路６０が判断すると、ＣＰＵ５０に対してステート信号を出力し、ＣＰＵコアクロック信号をオフにしてＣＰＵ５０を待機モードにするとともに、状態（６）のように全てのメモリブロック１１への電力供給を停止する。そして、ＣＰＵ５０に入力されるＣＰＵコアクロック信号が起動状態になりＣＰＵ５０が動作モードとなると、状態（７）のように、前回アクセスしたメモリブロックＤへの電力供給を開始する。
【００２２】
そして、ＣＰＵ５０が動作モードとなったことに基づいて前回アクセスしたメモリブロックへの電力供給を開始した後に、電源制御データ管理回路３３にてＣＰＵ５０から指示されたアクセス対象のアドレスがどのメモリブロックに属するのか判定し、アクセス対象のアドレスが属するメモリブロックへの電力供給を開始する。このとき、ＣＰＵ５０が動作モードとなったことに基づいて電力供給を開始したメモリブロックと、電源制御データ管理回路３３にて判定されたメモリブロックとが同じであると、電源制御データ管理回路３３にてメモリブロック判定後に、当該メモリブロックへの電力供給を開始する工程を行わなくて良い。そのため、ＣＰＵ５０が動作モードとなった後に、メモリブロックへアクセスするまでの処理時間を短くできる可能性がある。
【００２３】
不揮発性メモリを備えた情報処理装置１は、演算処理が行われていない時間が１ｍｓｅｃ以下の短時間であってもメモリブロックへの電源を遮断することによって、超低消費電力な情報処理を実現することができる。そのため、ユーザが１つのアプリケーションを継続的に使用している場合であっても、演算処理が行われていないと判断されて、ＣＰＵ５０を待機モードにする（全てのメモリブロックへの電源遮断する）状態と動作モードに復帰する（いずれかメモリブロックへの電源を供給する）状態を繰り返すことが想定される。このように全メモリブロックへの電源遮断の前後で同じアプリケーションが使用されている状況では、ＣＰＵ５０からアクセスが要求されるメモリブロックが変化しないことが多いと考えられる。そのため、ＣＰＵ５０が待機モードとなった後に、動作モードに復帰した場合、最後にアクセスされたメモリブロックに対して電力供給を開始することは有効である。
【００２４】
また、ＣＰＵ５０が動作モードに復帰したときに電力供給が開始される最後にアクセスされたメモリブロックと、電源制御データ管理回路３３にて判定されるＣＰＵ５０から要求されたアクセス先のアドレスが含まれるメモリブロックが異なった場合には、電源制御データ管理回路３３によって判定されたメモリブロックへの電力供給を開始する。このような場合であっても、本実施形態を適用しない場合（ＣＰＵ５０が動作モードに復帰したときに最後にアクセスされたメモリブロックに電力を供給しない場合）と同等の時間でメモリブロックへのアクセスを開始することができる。
【００２５】
次に、図４および図５を用いて、図３に示したようなメモリブロックへの電力供給制御を行うための情報処理装置１の処理について説明する。
【００２６】
図４は、上述の機能を実現するための電源制御データ管理回路３３の構成を示すブロック図である。本実施形態に係る電源制御データ管理回路３３は、アクセスエリア判定回路３３１、電源制御データ履歴レジスタ３３２、セレクタ３３３を有する。アクセスエリア判定回路３３１は、ＣＰＵ５０がキャッシュメモリ制御回路４０を介してキャッシュ１０へアクセスする際のアドレスを受け取り、キャッシュメモリ電源制御回路３０内の各スイッチ３２を制御するためのデータセットを電源制御データレジスタ３１へ設定することができる。電源制御データ履歴レジスタ３３２は、アクセスエリア判定回路３３１にて生成されたデータセットを記憶する。セレクタ３３３は、ＣＰＵ電源制御回路６０から出力される信号に基づき、アクセスエリア判定回路３３１から出力されるデータと電源制御データ履歴レジスタ３３２から出力されるデータのいずれかを選択し、選択したデータを電源制御データレジスタ３１へ格納する。
【００２７】
図５は、上述のメモリブロックの電力供給制御を実現する場合の情報処理装置１の状態遷移を示す図である。情報処理装置１の状態には、アクセス処理状態、アクセス後処理状態、スタンバイ処理状態、アクティブ処理状態、スリープ処理状態、ウェイクアップ処理状態がある。
【００２８】
図５のアクセス処理状態は、ＣＰＵ５０からキャッシュ１０への書き込みまたは読み出しアクセスが発生した場合の処理状態である。図６にアクセス処理状態のときのアクセスエリア判定回路３３１の動作を示す。
【００２９】
アクセス処理状態のとき、アクセスエリア判定回路３３１は、まずキャッシュメモリ制御回路４０から、ＣＰＵ５０によって指定されるアクセス対象のキャッシュのアドレスを取得する（Ｓ１１）。そして、アクセスエリア判定回路３３１は、そのアドレスが属するメモリブロック（アクセス対象のメモリブロックと称する）を判定する（Ｓ１２）。このアクセス対象のメモリブロックに電力が供給されていなければ（Ｓ１３のＮｏ）、アクセス対象のメモリブロックの電力供給を開始し、他のメモリブロックへの電力供給を停止するように設定するデータセットを生成し（Ｓ１４）、生成したデータセットを電源制御データレジスタ３１と電源制御データ履歴レジスタ３３２に設定する（Ｓ１５、Ｓ１６）。これによって、アクセス対象のメモリブロックへの電力供給が開始され、ＣＰＵ５０からメモリブロック１１へのアクセスが開始される。すなわち、デコーダ・ドライバによって信号がデコードされて、アクセス対象ビットへのアクセスが実施される。
【００３０】
なお、ステップＳ１３で、アクセス対象のメモリブロックに電力が供給されている場合（Ｓ１３のＹｅｓ）、電源制御データレジスタ３１に記憶されたデータセットの変更を行わない。そのため、直ちにＣＰＵ５０からメモリブロック１１へのアクセスが開始される。
【００３１】
アクセス処理状態の場合に、ＣＰＵ５０が指定するアクセス対象のアドレスへのアクセスが完了すると、アクセス後処理状態へ移行する。アクセス後処理の状態では、ＣＰＵ５０が演算処理を行う。そして、ＣＰＵ５０にて実行される演算処理が終了すると、ＣＰＵ電源制御回路６０がそれを判断し、ＣＰＵ５０に対してＣＰＵコアクロック信号をＯＦＦにするためのステート情報信号を出力し、ＣＰＵコアクロック信号がＯＦＦとなる。アクセス後処理状態のときにＣＰＵ５０からキャッシュ１０へのアクセス要求が発生した場合には、アクセス処理状態に移行する。
【００３２】
アクセス後処理状態において、ＣＰＵコアクロック信号がＯＦＦとなってから図示しないタイマを用いて一定時間ｔ１が経過したことを判断した場合には、スタンバイ処理状態へ移行する。図７に、スタンバイ処理状態のときのアクセスエリア判定回路３３１の動作を示す。
【００３３】
ＣＰＵコアクロック信号がＯＦＦとなってから一定時間が経過すると、アクセスエリア判定回路３３１は、キャッシュ１０の構成要素の内、内部電圧発生回路１３と入出力回路１２以外の構成要素（メモリブロック１１など）に対する電力供給を停止するように設定するデータセットを生成し（Ｓ２１）、生成したデータセットを電源制御データレジスタ３１に設定する（Ｓ２２）。この電源制御データレジスタ３１に設定されたデータセットに基づいてスイッチ３２のＯＮ／ＯＦＦが切り換えられる。そのため、スタンバイ処理状態では、キャッシュ１０内の内部電圧発生回路１３と入出力回路１２には電力が供給され、それ以外の回路には電力供給が停止された状態となる。
【００３４】
スタンバイ処理状態において、ＣＰＵ電源制御回路６０のステート情報信号に従って、ＣＰＵコアクロック信号がＯＮになった場合、アクティブ処理状態に移行する。図８にアクティブ処理状態のときの電源制御データ管理回路３３の動作を示す。
【００３５】
電源制御データ管理回路３３は、ＣＰＵコアクロック信号がＯＮになったことを示すステート信号を受け取ると、セレクタ３３３によって電源制御データ履歴レジスタ３３２に記憶されているデータセットを取得し（Ｓ３１）、そのデータセットを電源制御データレジスタ３１に設定する（Ｓ３２）。電源制御データ履歴レジスタ３３２に記憶されているデータセットは、アクセス処理状態のときに設定されたデータセット（図７のステップＳ１６参照）である。つまり、ＣＰＵコアクロック信号がＯＦＦになった後にＯＮされると、最後にアクセスされたメモリブロックに電力を供給するデータセットを電源制御データレジスタ３１に設定することができる。
【００３６】
アクティブ処理状態において、ＣＰＵ５０からキャッシュ１０へのアクセスが発生すると、アクセス処理状態に移行する。この場合、電源制御データ管理回路３３にて図６のステップＳ１４が完了する前までに、アクティブ処理状態において電源制御データレジスタに設定したデータセットに基づいてメモリブロック１１の電源制御が行われている。
【００３７】
一方、スタンバイ処理状態において、一定時間ｔ２が経過した場合、スリープ処理状態に移行する。つまり、ＣＰＵコアクロック信号がＯＦＦとなってからｔ１＋ｔ２時間が経過すると、スリープ処理状態となる。図９に、スリープ処理状態のときの電源制御データ管理回路３３の動作を示す。
【００３８】
ＣＰＵコアクロック信号がＯＦＦとなってからｔ１＋ｔ２時間が経過すると、電源制御データ管理回路３３は、キャッシュ１０の全ての構成要素への電力供給を停止するためのデータセットを生成し（Ｓ４１）、このデータセットを電源制御データレジスタ３１に設定する。これによって、スタンバイ処理状態では入出力回路１２と内部電圧発生回路１３に対して電力が供給されているが、スリープ処理状態では入出力回路１２と内部電圧発生回路１３に対する電力供給も停止される。
【００３９】
内部電圧発生回路１３は、電力が供給されてから回路の安定化までに数十〜数百μｓ程度の時間を要する。そのため、内部電圧発生回路１３の電源を遮断すると、次にアクセスが発生したときのアクセスまでの処理時間が長くなる。そこで、上述のように、スタンバイ処理状態においては、内部電圧発生回路１３への電力供給を継続することにより、頻繁に内部電圧発生回路１３への電源が遮断されることを防ぐことが出来る。また、入出力回路１２に電源が供給されていると、アクセス先のメモリブロック１１への電源供給が開始されていなくても、キャッシュメモリ制御回路４０から入出力回路１２へアクセス先のアドレスをラッチしておくことができる。そのため、入出力回路１２の電源を遮断しないことによって、キャッシュ１０へのアクセスを早めることができる。
【００４０】
一方、ＣＰＵコアクロック信号がＯＦＦとなってからｔ１＋ｔ２時間が経過すると、キャッシュ１０へのアクセスがしばらく発生しないと考えられるため、入出力回路１２と内部電圧発生回路１３への電力供給も停止することによって、消費電力をより一層削減することができる。
【００４１】
なお、本実施形態では、スタンバイ処理状態において、入出力回路１２と内部電圧発生回路１３への電源供給を遮断しないとしたが、メモリブロック１１と入出力回路１２への電源供給は遮断し、内部電圧発生回路１３への電源供給は遮断しないよう制御しても良い。
【００４２】
スリープ処理状態において、ＣＰＵ電源制御回路６０のステート情報信号に従って、ＣＰＵコアクロック信号がＯＮになった場合、ウェイクアップ処理状態に移行する。図１０に、ウェイクアップ処理状態のときの電源制御データ管理回路３３の動作を示す。
【００４３】
キャッシュ１０の全ての構成要素への電力供給が停止されている状態で、ＣＰＵコアクロック信号がＯＮとなると、アクセスエリア判定回路３３１は、まず、入出力回路１２および内部電圧発生回路１３への電力を供給するためのデータセットを生成し（Ｓ５１）、作成したデータセットを電源制御データレジスタ３２に設定する（Ｓ５２）。前述のように、内部電圧発生回路１３は回路の安定に時間がかかるため、最初に内部電圧発生回路１３への電力供給を開始することによって、アクセス可能となるまでの時間をできるだけ短くする。
【００４４】
そして、ＣＰＵコアクロック信号がＯＮされるまでのスリープ時間が一定時間ｔ３以上であるか否かを判断し、スリープ時間がｔ３よりも短ければ（Ｓ５３のＮｏ）、電源制御データ履歴レジスタ３２に記憶されているデータセットを取得し（Ｓ５４）、そのデータセットを電源制御データレジスタ３１に設定する（Ｓ５５）。
【００４５】
ＣＰＵコアクロック信号がＯＮされるまでのスリープ時間がｔ３以上である場合には、前回のアクセス処理状態の時とは異なるアプリケーションが実行されている場合等、最後にアクセスされたメモリブロックとは異なるメモリブロックにアクセスが発生する可能性が高いと考えられるため、ステップＳ５４、ステップＳ５５の処理は行わない。
【００４６】
ウェイクアップ処理状態において、ＣＰＵ５０からキャッシュ１０へのアクセスが発生すると、アクセス処理状態に移行する。
【００４７】
以上のように、最後にアクセスしたメモリブロックへの電源供給を行い、他のメモリブロックへの電源供給を停止するようなデータセットを電源制御データ履歴レジスタ３３２に格納しておき、ＣＰＵコアクロック信号がＯＦＦになった後に再度ＯＮになった場合、電源制御データ履歴レジスタ３３２に格納されたデータセットを電源制御データレジスタ３１に格納することによって、ＣＰＵコアクロック信号ＯＮ後にＣＰＵ５０からキャッシュ１０へのアクセス開始に必要な時間（平均的な時間）を短くすることが可能となる。
【００４８】
（第２の実施形態）
図１１は、本実施形態に係る情報処理装置によるメモリブロック１１の電源供給制御の様子を示す図である。第１の実施形態に係る情報処理装置では、キャッシュ１０に含まれるメモリブロックの内、コア５０からアクセスが要求されたアドレスを含むメモリブロックに対して電源を供給し、他のメモリブロックに対する電源は遮断する。それに対して、本実施形態に係る情報処理装置では、コア５０からキャッシュ１０へのアクセスが要求されたとき、アクセス要求で指定されたアドレスを含むメモリブロックと、１〜ｎ回前のアクセス要求で指定されたアドレスを含むメモリブロックとに対する電源を供給する。図１１は、ｎ＝１である場合、すなわち、コア５０から今回アクセスが要求されたアドレスを含むメモリブロックと、前回アクセスが要求されたアドレスを含むメモリブロックに対する電源を供給する様子を示す図である。
【００４９】
例えば、図１１では、メモリブロックＡにアクセスが発生すると、状態（２）のようにメモリブロックＡと、前回アクセスが発生したメモリブロックＣへ電力が供給される。そして、次にメモリブロックＤにアクセスが発生すると、状態（４）のように、メモリブロックＤと、前回アクセスが発生したメモリブロックＡへ電力が供給される。また、状態（７）のように、ＣＰＵコアクロック信号がＯＦＦとなって全メモリブロックへの電源が遮断された後にＣＰＵコアクロック信号がＯＮとなった場合には、ＣＰＵコアクロック信号がＯＦＦとなる前に電源を供給していたメモリブロックへ電源を供給する。
【００５０】
図１１に示すようなメモリブロックへの電力供給制御を行うためには、電源制御データ管理回路を図１２のように構成する。なお、電源制御データ管理回路以外のブロックは図１と同様であるため、説明を省略する。
【００５１】
第２の実施形態に係る情報処理装置の電源制御データ管理回路３３ａは、アクセスエリア判定回路３３１、電源制御データ履歴レジスタ３３２、セレクタ３３３の他に、判定データ履歴レジスタ３３４を含む。判定データ履歴レジスタ３３４は、１〜ｎ回前にアクセスされたメモリブロックを記憶する。判定データ履歴レジスタ３３４へ格納されるデータの形式は限定されず、１〜ｎ回前にアクセスされたメモリブロックが判別できるデータであれば良い。
【００５２】
図１３は、アクセス処理状態における電源制御データ管理回路３３ａの処理を示すフローチャートである。図１３では、図６と同じステップは同じ記号を付し、詳細な説明を省略する。
【００５３】
アクセスエリア判定回路３３１がアクセス対象アドレスの含まれるメモリブロックを判定し、そのメモリブロックの電源が遮断されている場合（Ｓ１３のＮｏ）、アクセスエリア判定回路３３１は、判定データ履歴レジスタに格納されているデータを取得する（Ｓ２０１）。そして、アクセスエリア判定回路３３１は、ステップＳ１２にて判定されたアクセス対象のメモリブロックと、ステップＳ２０１で取得した１〜ｎ回前にアクセスされたメモリブロックのデータを使用して、アクセス対象のメモリブロックおよび１〜ｎ回前にアクセスされたメモリブロックに対して電源を供給し、他のメモリブロックへの電源を遮断するためのデータセットを生成する（Ｓ２０２）。生成されたデータセットは、電源制御データレジスタ３１、電源制御データ履歴レジスタ３３２にセットされる（Ｓ１５、Ｓ１６）。そして、アクセスエリア判定回路３３１は、ステップＳ１２にて判定されたメモリブロックを１回前にアクセスされたメモリブロックとなるように、判定データ履歴レジスタ３３４のデータを更新する（Ｓ２０３）。
【００５４】
本実施形態に係る情報処理装置の、スタンバイ処理状態、アクティブ処理状態、スリープ処理状態、ウェイクアップ処理状態の処理は第１の実施形態にて説明した処理と同様である。このような処理によって、図１１に示すようなメモリブロックへの電力供給制御を行うことができる。このような電力供給制御によると、第１の実施形態と比較して消費電力削減効果は下がるが、ＣＰＵ５０からアクセスが発生した場合にアクセス対象のメモリブロックの電源供給が既に行われている可能性が高くなり、平均的な処理動作速度が速くなる。
【００５５】
（第３の実施形態）
図１４は、本実施形態に係る情報処理装置によるメモリブロック１１の電源供給制御の様子を示す図である。第１の実施形態に係る情報処理装置では、最後にアクセスされた時刻からの経過時間が所定の時間以内のメモリブロックに対する電源を供給し、他のメモリブロックに対する電源供給は遮断する。
【００５６】
例えば、図１４では、状態（２）のようにメモリブロックＡとＣに対して電源が供給されている状態で、メモリブロックＣに対して最後にアクセスされた時刻から所定の時間が経過すると、状態（３）のようにメモリブロックＣに対する電源供給を遮断し、メモリブロックＡに対して電源供給を継続する。
【００５７】
図１４に示すようなメモリブロックへの電力供給制御を行うためには、電源制御データ管理回路を図１５のように構成する。なお、電源制御データ管理回路以外のブロックは図１と同様であるため、説明を省略する。
【００５８】
本実施形態に係る電源制御データ管理回路３３ｂは、第２の実施形態にて説明した電源制御データ管理回路３３ａにて説明した構成要件に加えて、計時回路３３５を有する。電源制御データ管理回路３３ｂの判定データ履歴レジスタ３３４は、例えばキャッシュ１０に含まれる各メモリブロックに対応して１ビットのフラグを設ける。判定データ履歴レジスタ３３４のフラグの初期値は、「０」とする。
【００５９】
図１６は、電源制御データ管理回路３３ｂの処理を示すフローチャートである。図１６では、図１３と同じステップは同じ記号を付し、詳細な説明を省略する。
【００６０】
アクセスエリア判定回路３３１は、アクセス対象のメモリブロックを判定し、アクセス対象のメモリブロックと判定データ履歴レジスタ３３４にてフラグが「１」に設定されているメモリブロックを示すデータを取得する（Ｓ３０１）。そして、アクセス対象のメモリブロックと、判定データ履歴レジスタ３３４にてフラグが「１」に設定されているメモリブロックに電源を供給し、他のメモリブロックへの電源供給を遮断するようなデータセットを生成する（Ｓ２０２）。生成されたデータセットは、電源制御データレジスタ３１、電源制御データ履歴レジスタ３３２にセットされる（Ｓ１５、Ｓ１６）。そして、ステップＳ１２にて判定されたメモリブロックに対応する判定データ履歴レジスタ３３４のフラグを「１」に変更する（Ｓ３０２）。
【００６１】
計時回路３３５は、判定データ履歴レジスタ３３４の各フラグが「１」に変更された時刻から所定の時間が経過すると、当該フラグを「０」に変更する。
【００６２】
このような処理によって、メモリブロック毎に最後にアクセスされてからの経過時間を管理し、最後にアクセスされてから経過時間の短いメモリブロックに対して電源を供給することができる。
【００６３】
（第４の実施形態）
ＣＰＵコアクロック信号がＯＦＦ後にＯＮされた場合に電源を供給するメモリブロックは、アクセス頻度が高いメモリブロックであっても良い。図１７は、本実施形態に係る情報処理装置の電源制御データ管理回路３３ｃの構成を示すブロック図である。電源制御データ管理回路３３ｃ以外のブロックは図１と同様である。
【００６４】
電源制御データ管理回路３３ｃは、アクセスエリア判定回路３３１、電源制御データ履歴レジスタ３３２、セレクタ３３３、頻度管理回路３３６を有する。電源制御データ管理回路３３ｃの電源制御データ履歴レジスタ３３２は、例えばキャッシュ１０に含まれる各構成要件（メモリブロック１１、入出力回路１２、内部電圧発生回路１３）に対応して１ビットのフラグを設ける。電源制御データ履歴レジスタ３３２のフラグの初期値は、「０」とする。
【００６５】
頻度管理回路３３６は、アクセスエリア判定回路３３１によって、アクセス先のメモリブロックが判定される度に、メモリブロックのアクセス頻度を表すデータを更新する。アクセス頻度は、所定の時間内で各メモリブロックにアクセスされた回数であっても良いし、所定のアクセス回数の内、各メモリブロックにアクセスされた回数であっても良い。
【００６６】
このように、頻度管理回路３３６によってアクセス頻度が高いと判断されたメモリブロックに対応する電源制御データ履歴レジスタ３３２のフラグを「１」にすることによって、ＣＰＵコアクロック信号がＯＦＦ後にＯＮされた場合に、電源制御データ履歴レジスタ３３２のデータに基づいてアクセス頻度の高いメモリブロックに電源供給をいち早く行うことができる。
【００６７】
（第５の実施形態）
キャッシュ１０にデータを書き込む際、所定のアプリケーションで必要とされるデータを同じメモリブロック１１に書き込んでも良い。そして、図１８に示すように、アプリケーションとデータが書き込まれるメモリブロックとの対応関係を示すデータを格納する対応データレジスタ３３７を設けておくことで、ＣＰＵ５０からアクセス要求が発生したときに、ＣＰＵ５０で実行されているアプリケーションに応じたメモリブロック１１に対して電源を供給することができる。
【００６８】
このような実施形態の構成をとることで、メモリを低消費電力化しながらも、高速なアクセスを可能とする情報処理装置を提供することができる。
【００６９】
なお、上記実施形態に限定されることはなく、本発明の要旨を逸脱しない範囲において、適宜変更しても良い。例えば、上述の実施形態では、ＣＰＵ内のキャッシュのメモリブロックおよび電圧発生回路の電源制御が行われるとして説明したが、ＣＰＵおよび不揮発性メモリから成るメインメモリを有する情報処理装置を構成し、ＣＰＵ外に設けられたメインメモリのメモリブロックおよび電圧発生回路の電源制御を行っても良い。メインメモリの電源制御であっても、キャッシュの電源制御と同様の処理によって実現することができる。また、例えば、第１〜第５の実施形態を２つ以上組み合わせても良い。
【符号の説明】
【００７０】
１…情報処理装置、  １０…キャッシュ、  １１…メモリブロック、１２…入出力回路、  １３…内部電圧発生回路、  ２０…メモリ電源電圧、  ３０…キャッシュメモリ電源制御回路、  ３１…電源制御データレジスタ、  ３２…スイッチ、  ３３…電源制御データ管理回路、  ４０…キャッシュメモリ制御回路、  ５０…ＣＰＵ、  ６０…ＣＰＵ電源制御回路、  ３３１…アクセスエリア判定回路、  ３３２…電源制御データ履歴レジスタ、  ３３３…セレクタ、  ３３４…判定データ履歴レジスタ、  ３３５…計時回路、  ３３６…頻度管理回路、  ３３７…対応データレジスタ
【図１】
0005653315.tif 000002
【図２】
0005653315.tif 000003
【図３】
0005653315.tif 000004
【図４】
0005653315.tif 000005
【図５】
0005653315.tif 000006
【図６】
0005653315.tif 000007
【図７】
0005653315.tif 000008
【図８】
0005653315.tif 000009
【図９】
0005653315.tif 000010
【図１０】
0005653315.tif 000011
【図１１】
0005653315.tif 000012
【図１２】
0005653315.tif 000013
【図１３】
0005653315.tif 000014
【図１４】
0005653315.tif 000015
【図１５】
0005653315.tif 000016
【図１６】
0005653315.tif 000017
【図１７】
0005653315.tif 000018
【図１８】
0005653315.tif 000019