(57)【要約】【課題】主記憶装置の消費電力を低減させることができるようにする。【解決手段】判定部は、第一の主記憶装置より高消費電力である第二の主記憶装置が休止可能か否かを判定する。電源管理部は、判定部において第二の主記憶装置が休止可能であると判定された場合、複数のCPUコアの少なくとも一つと第二の主記憶装置への電源の供給を抑制する。本技術は、例えば、低消費電力な第一の主記憶装置と、それより高消費電力である第二の主記憶装置とを制御するメモリ制御装置に適用できる。【選択図】図１
2013222321.tif 000002
【特許請求の範囲】
【請求項１】
複数のCPUコアのメモリデバイスとしての、低消費電力の主記憶装置である第一の主記憶装置と、それより高消費電力である第二の主記憶装置のうち、前記第二の主記憶装置が休止可能か否かを判定する判定部と、
前記判定部において前記第二の主記憶装置が休止可能であると判定された場合、前記複数のCPUコアの少なくとも一つと、前記第二の主記憶装置への電源の供給を抑制する電源管理部と
を備えるメモリ制御装置。
【請求項２】
前記複数のCPUコアは、高消費電力のCPUコアと、低消費電力のCPUコアを含み、
前記電源管理部は、前記判定部において前記第二の主記憶装置が休止可能であると判定された場合、前記高消費電力のCPUコアと、前記第二の主記憶装置への電源の供給を停止する
請求項１に記載のメモリ制御装置。
【請求項３】
前記複数のCPUコアは、高消費電力のCPUコアと、低消費電力のCPUコアを含み、
前記電源管理部は、前記判定部において前記第二の主記憶装置が休止可能ではないと判定された場合、前記低消費電力のCPUコアへの電源の供給を停止する
請求項１に記載のメモリ制御装置。
【請求項４】
前記複数のCPUコアは同一性能のCPUコアであり、
前記電源管理部は、前記判定部において前記第二の主記憶装置が休止可能であると判定された場合、前記第一の主記憶装置の使用量の少ない前記CPUコアと、前記第二の主記憶装置への電源の供給を停止する
請求項１に記載のメモリ制御装置。
【請求項５】
前記第二の主記憶装置への電源の供給が停止され、前記第二の主記憶装置に書き込まれていたデータが退避された場合に、その退避されたデータを前記第一の主記憶装置に書き込む先読み部をさらに備える
請求項１に記載のメモリ制御装置。
【請求項６】
複数のCPUコアのメモリデバイスとしての、低消費電力の主記憶装置である第一の主記憶装置と、それより高消費電力である第二の主記憶装置とを制御するメモリ制御装置が、
前記第二の主記憶装置が休止可能か否かを判定し、
前記第二の主記憶装置が休止可能であると判定された場合、前記複数のCPUコアの少なくとも一つと前記第二の主記憶装置への電源の供給を抑制する
ステップを含むメモリ制御方法。
【請求項７】
コンピュータに、
複数のCPUコアのメモリデバイスとしての、低消費電力の主記憶装置である第一の主記憶装置と、それより高消費電力である第二の主記憶装置のうち、前記第二の主記憶装置が休止可能か否かを判定し、
前記第二の主記憶装置が休止可能であると判定された場合、複数のCPUコアの少なくとも一つと前記第二の主記憶装置への電源の供給を抑制する
処理を実行させるためのプログラム。
【請求項８】
複数のCPUコアと、
第一の主記憶装置、及び、前記第一の主記憶装置よりも消費電力の高い第二の主記憶装置と、
前記第一及び第二の主記憶装置を制御するメモリ制御部と
を備え、
前記メモリ制御部は、
前記第二の主記憶装置が休止可能か否かを判定する判定部と、
前記判定部において前記第二の主記憶装置が休止可能であると判定された場合、前記複数のCPUコアの少なくとも一つと、前記第二の主記憶装置への電源の供給を抑制する電源管理部と
を備える
情報処理装置。
【請求項９】
前記複数のCPUコアは、高消費電力のCPUコアと、低消費電力のCPUコアを含み、
前記電源管理部は、前記判定部において前記第二の主記憶装置が休止可能であると判定された場合、前記高消費電力のCPUコアと、前記第二の主記憶装置への電源の供給を停止する
請求項８に記載の情報処理装置。
【請求項１０】
前記複数のCPUコアは、高消費電力のCPUコアと、低消費電力のCPUコアを含み、
前記電源管理部は、前記判定部において前記第二の主記憶装置が休止可能ではないと判定された場合、前記低消費電力のCPUコアへの電源の供給を停止する
請求項８に記載の情報処理装置。
【請求項１１】
前記複数のCPUコアは同一性能のCPUコアであり、
前記電源管理部は、前記判定部において前記第二の主記憶装置が休止可能であると判定された場合、前記第一の主記憶装置の使用量の少ない前記CPUコアと、前記第二の主記憶装置への電源の供給を停止する
請求項８に記載の情報処理装置。
【請求項１２】
前記第二の主記憶装置への電源の供給が停止され、前記第二の主記憶装置に書き込まれていたデータが退避された場合に、その退避されたデータを前記第一の主記憶装置に書き込む先読み部をさらに備える
請求項８に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、メモリ制御装置、メモリ制御方法、情報処理装置、およびプログラムに関し、特に、主記憶装置の消費電力を低減させることができるようにするメモリ制御装置、メモリ制御方法、情報処理装置、およびプログラムに関する。
【背景技術】
【０００２】
複数のCPUコアで構成されるマルチコアプロセッサにおいて、特定のCPUコアにタスクを割り当てないようにしてアイドル状態にすることで、システム全体としての消費電力を抑える技術が提案されている（例えば、特許文献１参照）。
【０００３】
また、省電力なCPUコアと、ハイパフォーマンスなCPUコアとからなるマルチコア構成のシステムにおいて、システムの負荷状態に応じて、省電力CPUコアと、ハイパフォーマンスCPUコアの動作を切り替えて動作させるようにしたものがある（例えば、非特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−７０６６１号公報
【非特許文献】
【０００５】
【非特許文献１】ＡＲＭ社ホームページ、[平成２４年４月２日検索]、インターネット＜URL:http://www.arm.com/ja/products/processors/technologies/bigLITTLEprocessing.php＞
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来の技術では、主記憶装置（メインメモリ）の電力については考慮されていないため、負荷状態によらず主記憶装置には一定の電力が供給され続ける。したがって、主記憶装置に対して不要に電力を供給している可能性がある。
【０００７】
本技術は、このような状況に鑑みてなされたものであり、主記憶装置の消費電力を低減させることができるようにするものである。
【課題を解決するための手段】
【０００８】
本技術の第一の側面のメモリ制御装置は、複数のCPUコアのメモリデバイスとしての、低消費電力の主記憶装置である第一の主記憶装置と、それより高消費電力である第二の主記憶装置のうち、前記第二の主記憶装置が休止可能か否かを判定する判定部と、前記判定部において前記第二の主記憶装置が休止可能であると判定された場合、前記複数のCPUコアの少なくとも一つと、前記第二の主記憶装置への電源の供給を抑制する電源管理部とを備える。
【０００９】
本技術の第一の側面のメモリ制御方法は、複数のCPUコアのメモリデバイスとしての、低消費電力の主記憶装置である第一の主記憶装置と、それより高消費電力である第二の主記憶装置とを制御するメモリ制御装置が、前記第二の主記憶装置が休止可能か否かを判定し、前記第二の主記憶装置が休止可能であると判定された場合、前記複数のCPUコアの少なくとも一つと前記第二の主記憶装置への電源の供給を抑制するステップを含む。
【００１０】
本技術の第一の側面のプログラムは、コンピュータに、複数のCPUコアのメモリデバイスとしての、低消費電力の主記憶装置である第一の主記憶装置と、それより高消費電力である第二の主記憶装置のうち、前記第二の主記憶装置が休止可能か否かを判定し、前記第二の主記憶装置が休止可能であると判定された場合、複数のCPUコアの少なくとも一つと前記第二の主記憶装置への電源の供給を抑制する処理を実行させるためのものである。
【００１１】
本技術の第一の側面においては、複数のCPUコアのメモリデバイスとしての、低消費電力の主記憶装置である第一の主記憶装置と、それより高消費電力である第二の主記憶装置のうち、前記第二の主記憶装置が休止可能か否かが判定され、前記第二の主記憶装置が休止可能であると判定された場合、複数のCPUコアの少なくとも一つと前記第二の主記憶装置への電源の供給が抑制される。
【００１２】
なお、プログラムは、伝送媒体を介して伝送することにより、又は、記録媒体に記録して、提供することができる。
【００１３】
本技術の第二の側面の情報処理装置は、複数のCPUコアと、第一の主記憶装置、及び、前記第一の主記憶装置よりも消費電力の高い第二の主記憶装置と、前記第一及び第二の主記憶装置を制御するメモリ制御部とを備え、前記メモリ制御部は、前記第二の主記憶装置が休止可能か否かを判定する判定部と、前記判定部において前記第二の主記憶装置が休止可能であると判定された場合、前記複数のCPUコアの少なくとも一つと、前記第二の主記憶装置への電源の供給を抑制する電源管理部とを備える。
【００１４】
本技術の第二の側面においては、メモリ制御部において、第二の主記憶装置が休止可能か否かが判定され、前記第二の主記憶装置が休止可能であると判定された場合、複数のCPUコアの少なくとも一つと前記第二の主記憶装置への電源の供給が抑制される。
【００１５】
メモリ制御装置および情報処理装置のそれぞれは、独立した装置であっても良いし、１つの装置を構成している内部ブロックまたはモジュールであっても良い。
【発明の効果】
【００１６】
本技術の第一及び第二の側面によれば、主記憶装置の消費電力を低減させることができる。
【図面の簡単な説明】
【００１７】
【図１】本技術が適用されたメモリ制御装置の主要部の構成を示すブロック図である。
【図２】メモリ制御装置によるメモリ制御処理を説明するフローチャートである。
【図３】メモリ制御装置の第１の実施の形態の構成例を示すブロック図である。
【図４】第１の実施の形態における省電力モードと通常電力モードの動作状態の違いを示す図である。
【図５】第１の実施の形態のメモリ制御処理を説明するフローチャートである。
【図６】メモリ制御装置の第２の実施の形態の構成例を示すブロック図である。
【図７】第２の実施の形態における省電力モードと通常電力モードの動作状態の違いを示す図である。
【図８】第２の実施の形態のメモリ制御処理を説明するフローチャートである。
【図９】図１のメモリ制御装置の変形例を示すブロック図である。
【図１０】本技術が適用されたコンピュータの一実施の形態の構成例を示すブロック図である。
【発明を実施するための形態】
【００１８】
以下、本技術を実施するための形態（以下、実施の形態という）について説明する。なお、説明は以下の順序で行う。
１．本技術が適用されたメモリ制御装置の概要
２．メモリ制御装置の第１の実施の形態
３．メモリ制御装置の第２の実施の形態
４．変形例
【００１９】
＜１．メモリ制御装置の概要＞
［メモリ制御装置の主要構成例］
初めに、図１と図２を参照して、本技術が適用されたメモリ制御装置の概要について説明する。
【００２０】
図１は、本技術が適用されたメモリ制御装置の主要部の構成を示すブロック図である。
【００２１】
本技術が適用されるメモリ制御装置１は、複数のCPU（Central Processing Unit）コア１１と、複数の主記憶装置１２を備える情報処理装置の主記憶装置１２を制御する。ここで、情報処理装置は、例えば、スマートフォン、タブレット端末などの携帯端末、パーソナルコンピュータ、携帯型のオーディオプレーヤ、デジタルビデオカメラ、ハードディスクレコーダなどの電子機器である。
【００２２】
メモリ制御装置１は、図１に示されるように、メモリ領域使用者判定部１３と電源管理部１４を少なくとも有する。情報処理装置が備えるCPUコア１１と主記憶装置１２の個数は、２以上であればよく、特に限定されないが、本実施の形態では、最も単純な例として、メモリ制御装置１が、２つのCPUコア１１Aと１１B、および、２つの主記憶装置１２Aと１２Bを制御する例について説明する。
【００２３】
CPUコア１１Aおよび１１Bのそれぞれは、ソフトウエア（プログラム）を実行する処理部である。CPUコア１１Aおよび１１Bは、後述するように、同一のCPUコアで構成されている場合もあれば、高性能だが高消費電力なCPUコアと低消費電力なCPUコアのように、異なる種類・性質のCPUコアで構成されている場合もある。
【００２４】
これに対して、２つの主記憶装置１２は、高消費電力主記憶装置１２Aと低消費電力主記憶装置１２Bとで構成されている。すなわち、高消費電力主記憶装置１２Aは、バイトアクセス可能で高消費電力なメモリデバイスであり、低消費電力主記憶装置１２Bは、バイトアクセス可能で、高消費電力主記憶装置１２Aよりも低消費電力なメモリデバイスである。高消費電力主記憶装置１２Aは、例えば、DRAM（Dynamic Random Access Memory）などの揮発性メモリで構成され、低消費電力主記憶装置１２Bは、例えば、MRAM（Magnetoresistive Random Access Memory ）などの不揮発性メモリで構成される。
【００２５】
メモリ領域使用者判定部１３は、高消費電力主記憶装置１２Aおよび低消費電力主記憶装置１２B（のメモリ領域）が、どのCPUコア１１（CPUコア１１A，CPUコア１１B）に使用されているか、または、使用されていないかを判定し、判定結果を電源管理部１４に通知する。なお、メモリ領域使用者判定部１３には、CPUコア１１が全部で何個あるかなどのCPUコア１１についての情報が予め与えられている。
【００２６】
電源管理部１４は、CPUコア１１Aおよび１１B、並びに、高消費電力主記憶装置１２Aおよび低消費電力主記憶装置１２Bの電源のオン、オフなど、電源の供給を制御する。
【００２７】
［メモリ制御処理の処理フロー］
図２のフローチャートを参照して、メモリ制御装置１によるメモリ制御処理について説明する。
【００２８】
初めに、ステップＳ１において、メモリ領域使用者判定部１３は、高消費電力主記憶装置１２Aが休止可能であるか否かを判定する。例えば、メモリ領域使用者判定部１３は、高消費電力主記憶装置１２Aの全ての領域が未使用である場合、高消費電力主記憶装置１２Aが休止可能であると判定する。また例えば、CPUコア１１で実行されているタスク（プロセス）が高消費電力主記憶装置１２Aの一部の領域を使用しているが、そのタスクの状態がしばらくのあいだ動作しないような“スリープ”状態である場合、メモリ領域使用者判定部１３は、高消費電力主記憶装置１２Aが休止可能であると判定する。
【００２９】
ステップＳ１で、高消費電力主記憶装置１２Aが休止可能であると判定された場合、処理はステップＳ２に進み、メモリ制御装置１は、主記憶装置１２の動作モードを省電力モードに移行する省電力モード移行処理を実行する。
【００３０】
ステップＳ２の省電力モード移行処理は、次のステップＳ２−１ないしＳ２−３の３つのステップで構成される。
【００３１】
ステップＳ２−１において、メモリ領域使用者判定部１３は、省電力モードへの移行を電源管理部１４に通知する。省電力モードへの移行が通知された電源管理部１４は、ステップＳ２−２において、高消費電力主記憶装置１２Aの電源をオフする。そして、さらに、電源管理部１４は、ステップＳ２−３において、高消費電力主記憶装置１２Aに関連するデバイスの電源をオフする。高消費電力主記憶装置１２Aに関連するデバイスとは、例えば、高消費電力主記憶装置１２AのみにアクセスするCPUコア１１や、高消費電力主記憶装置１２Aに関連付けて電源をオフすることが規定されているデバイスなどである。
【００３２】
ステップＳ２−１ないしＳ２−３が終了すると、処理はステップＳ１に戻る。
【００３３】
一方、ステップＳ１で、高消費電力主記憶装置１２Aが休止可能ではないと判定された場合、処理はステップＳ３に進み、メモリ制御装置１は、主記憶装置１２の動作モードを通常電力モードに移行する通常電力モード移行処理を実行する。
【００３４】
ステップＳ３の通常電力モード移行処理は、次のステップＳ３−１ないしＳ３−３の３つのステップで構成される。
【００３５】
ステップＳ３−１において、メモリ領域使用者判定部１３は、通常電力モードへの移行を電源管理部１４に通知する。通常電力モードへの移行が通知された電源管理部１４は、ステップＳ３−２において、高消費電力主記憶装置１２Aの電源をオンする。さらに、電源管理部１４は、ステップＳ３−３において、高消費電力主記憶装置１２Aに関連するデバイスの電源をオンする。すなわち、電源管理部１４は、上述したステップＳ２−３でオフにしたデバイスの電源をオンに戻す。
【００３６】
ステップＳ３−１ないしＳ３−３が終了すると、処理はステップＳ１に戻る。
【００３７】
なお、主記憶装置１２の現在の動作モードが、移行しようとする動作モードに既になっている場合には、移行処理の実行は省略される。
【００３８】
以上のように、メモリ制御装置１のメモリ制御処理によれば、高消費電力主記憶装置１２Aが休止可能かどうかを判定し、休止可能と判定した場合、高消費電力主記憶装置１２Aの電源がオフされる。これにより、主記憶装置１２全体としての消費電力を低減することができる。
【００３９】
以下、メモリ制御装置１の詳細な実施の形態について説明する。
【００４０】
＜２．メモリ制御装置の第１の実施の形態＞
図３は、メモリ制御装置１の第１の実施の形態の構成例を示すブロック図である。
【００４１】
第１の実施の形態では、２つのCPUコア１１が、高性能CPUコア１１Aと低消費電力CPUコア１１Bの組合せの構成とされている。また、高消費電力主記憶装置１２AがDRAMで構成され、低消費電力主記憶装置１２BがMRAMで構成されている。以下、高消費電力主記憶装置１２AをDRAM１２Aと記述し、低消費電力主記憶装置１２BをMRAM１２Bと記述する。また、図３では、プロセス管理部１５とメモリ管理部１６が新たに追加されている。
【００４２】
高性能CPUコア１１Aは、処理能力が高く、高性能であるが、消費電力が比較的大きいCPUコアである。低消費電力CPUコア１１Bは、処理能力は高性能CPUコア１１Aと比べて劣るが、消費電力が高性能CPUコア１１Aより低いという特徴を有するCPUコアである。
【００４３】
DRAM１２Aは、揮発性メモリの一種であり、記憶の保持に電力を必要とするため、比較的高消費電力の主記憶装置である。一方、MRAM１２Bは、不揮発性メモリの一種であり、記憶の保持に電力を必要としないため、揮発性メモリより低消費電力であるという性質を有する。
【００４４】
プロセス管理部１５は、プロセスのCPUコア１１への割り当てを制御（管理）する。すなわち、プロセス管理部１５は、実行させるプロセスを、高性能CPUコア１１Aまたは低消費電力CPUコア１１Bのどちらで実行させるかを制御する。プロセスには、処理負荷に応じて高負荷プロセスと低負荷プロセスとがあり、高負荷プロセスは、高性能CPUコア１１Aのみで実行可能であり、低負荷プロセスは、高性能CPUコア１１Aと低消費電力CPUコア１１Bのいずれでも実行可能である。
【００４５】
プロセスが高負荷プロセスであるか、または、低負荷プロセスであるかの属性は、例えば、プロセスに対して作成時点に予め決定しておいて、各プロセスが起動時に自分の属性を明示して起動し、プロセス管理部１５は、起動時に明示された属性に基づいて認識することができる。例えば、アプリケーションの作成時点に、GUI(Graphical User Interface)を持つアプリケーションは高負荷プロセス、GUIを持たないアプリケーションは低負荷プロセスとして属性を決定し、明示して起動させるようにすることができる。
【００４６】
また、起動時に属性の明示がない場合には、プロセス管理部１５は次のようにして高負荷プロセスと低負荷プロセスとを判定することができる。例えば、プロセスを実行するための基本ソフトウエアであるOS（Operating System）起動直後は、サービス系の低負荷状態で常駐するアプリケーションが起動する場合が多い。そこで、OS起動から一定時間以内に起動されたアプリケーションは低負荷プロセス、それ以降に起動されたアプリケーションは高負荷プロセスとして識別することができる。
【００４７】
あるいは、各プロセスを、最初の起動から規定回数のうちは低負荷プロセスとして認識し、そのプロセスが起動しているときのシステム全体の負荷との関係を学習して、プロセスの属性を付与し、付与された属性を用いて認識するようにしてもよい。
【００４８】
プロセス管理部１５は、実行中のプロセスを示すプロセス動作情報をメモリ領域使用者判定部１３に供給する。なお、プロセス管理部１５はOSのカーネルが実行する一機能に相当し、プロセス動作情報は、OSのカーネルによって、OSの管理情報としてMRAM１２Bに書き込まれる。メモリ領域使用者判定部１３は、プロセス管理部１５がMRAM１２Bに書き込んだプロセス動作情報を確認することにより、プロセス動作情報が、プロセス管理部１５からメモリ領域使用者判定部１３に供給される。メモリ領域使用者判定部１３に供給されるプロセス動作情報には、そのプロセスの属性も含まれる。
【００４９】
メモリ管理部１６は、各プロセスに割り当てるメモリ領域を管理する。具体的には、メモリ管理部１６は、低負荷プロセスのためのメモリ領域はMRAM１２Bに割り当て、高負荷プロセスのためのメモリ領域はDRAM１２Aに割り当てられるように制御する。
【００５０】
図４は、第１の実施の形態における省電力モードと通常電力モードの動作状態の違いを示す図である。
【００５１】
通常電力モードでは、高性能CPUコア１１Aが動作し、低消費電力CPUコア１１Bは動作しない。また、メモリデバイスについては、通常電力モードでは、低消費電力なMRAM１２Bと、高消費電力なDRAM１２Aの両方が動作する。DRAM１２Aには、高負荷プロセスによって利用されるデータが記憶される。
【００５２】
一方、省電力モードでは、低消費電力CPUコア１１Bが動作し、高性能CPUコア１１Aは動作しない。また、メモリデバイスについては、低消費電力なMRAM１２Bは動作するが、高消費電力なDRAM１２Aは動作しない。OS起動直後は、省電力モードで動作するものとし、カーネルや、起動から一定時間以内に実行される低負荷プロセス（アプリケーションプログラム）は、MRAM１２Bに記憶される。
【００５３】
以上のように、省電力モードと通常電力モードでは、高性能CPUコア１１Aと低消費電力CPUコア１１Bの動作が切り替わる。また、高消費電力なDRAM１２Aを使用するかどうかが、省電力モードと通常電力モードで異なる。
【００５４】
［第１の実施の形態のメモリ制御処理の処理フロー］
図５のフローチャートを参照して、第１の実施の形態のメモリ制御処理について説明する。
【００５５】
ステップＳ１１において、プロセス管理部１５は、実行中のプロセスを示すプロセス動作情報をメモリ領域使用者判定部１３に供給し、メモリ領域使用者判定部１３は、供給されたプロセス動作情報に基づいて、動作中のプロセスを確認する。
【００５６】
ステップＳ１２において、メモリ領域使用者判定部１３は、高負荷プロセスが動作しているかを判定する。プロセス（タスク）の状態には、所定の動作を実行中であることを示す“処理中”、終了に向けた処理の途中であることを示す“終了処理中”、スリープ状態であることを示す“スリープ”などがある。メモリ領域使用者判定部１３は、“処理中”の状態の高負荷プロセスがなければ、高負荷プロセスは動作していないと判定する。
【００５７】
ステップＳ１２で、高負荷プロセスが動作していないと判定された場合、処理はステップＳ１３に進み、ステップＳ１３ないしステップＳ１８の省電力モード移行処理が実行される。
【００５８】
すなわち、ステップＳ１３において、メモリ領域使用者判定部１３は、省電力モードへの移行を電源管理部１４に通知する。
【００５９】
ステップＳ１４において、省電力モードへの移行が通知された電源管理部１４は、低消費電力CPUコア１１Bの電源をオンにして初期化し、ステップＳ１５において、省電力モードへの移行をメモリ管理部１６に通知する。
【００６０】
ステップＳ１６において、メモリ管理部１６は、DRAM１２Aを解放する。具体的には、メモリ管理部１６は、新規割り当て要求に対して使用するメモリ領域からDRAM１２Aを除外する。また、メモリ管理部１６は、DRAM１２Aに“スリープ”状態の高負荷プロセスによって後で使用されるデータが残っている場合には、そのデータをHDDなどの外部記憶装置に退避する処理を行う。
【００６１】
ステップＳ１７において、電源管理部１４は、解放の処理が終了したDRAM１２Aの電源をオフにし、ステップＳ１８において、高性能CPUコア１１Aの電源をオフにする。
【００６２】
ステップＳ１８の処理が終了すると、処理はステップＳ１１に戻る。
【００６３】
一方、ステップＳ１２で、高負荷プロセスが動作していると判定された場合、処理はステップＳ１９に進み、ステップＳ１９ないしステップＳ２４の通常電力モード移行処理が実行される。
【００６４】
すなわち、ステップＳ１９において、メモリ領域使用者判定部１３は、通常電力モードへの移行を電源管理部１４に通知する。
【００６５】
ステップＳ２０において、通常電力モードへの移行が通知された電源管理部１４は、高性能CPUコア１１Aの電源をオンにして、高性能CPUコア１１Aを初期化する。
【００６６】
そして、ステップＳ２１において、電源管理部１４は、DRAM１２Aの電源をオンにして、DRAM１２Aを初期化し、ステップＳ２２において、通常電力モードへの移行をメモリ管理部１６に通知する。
【００６７】
通常電力モードへの移行が通知されたメモリ管理部１６は、ステップＳ２３において、DRAM１２Aのデータを復元する。具体的には、メモリ管理部１６は、新規割り当て要求に対して使用するメモリ領域にDRAM１２Aを追加するとともに、上述したステップＳ１６で外部記憶装置に退避させたデータがあれば、その退避させたデータを元の領域に書き込む処理を行う。なお、退避させたデータを復元するタイミングは、そのデータが必要となったときでもよい。
【００６８】
ステップＳ２４において、電源管理部１４は、低消費電力CPUコア１１Bの電源をオフにする。
【００６９】
ステップＳ２４の処理が終了すると、処理はステップＳ１１に戻る。
【００７０】
以上のメモリ制御処理を実行することにより、図４を参照して説明したように、高性能CPUコア１１AとDRAM１２AおよびMRAM１２Bが動作する通常電力モードと、低消費電力CPUコア１１BとMRAM１２Bのみが動作する省電力モードを切り替えて動作させることができる。省電力モードでは、CPUコア１１だけでなく、DRAM１２Aを停止させて、低消費電力のMRAM１２Bのみを使用するように制御するので、消費電力を低減させることができる。
【００７１】
＜３．メモリ制御装置の第２の実施の形態＞
図６は、メモリ制御装置１の第２の実施の形態の構成例を示すブロック図である。
【００７２】
第２の実施の形態において、上述した第１の実施の形態と対応する部分については同一の符号を付してあり、重複する部分の説明は適宜省略する。
【００７３】
第２の実施の形態では、上述した第１の実施の形態と比較すると、２つのCPUコア１１が、同一性能のものとされている点が異なる。第２の実施の形態では、同一性能の２つのCPUコア１１を、図６に示されるように、第１CPUコア１１Aおよび第２CPUコア１１Bと記述する。
【００７４】
プロセス管理部１５は、実行させるプロセスを、第１CPUコア１１Aまたは第２CPUコア１１Bのどちらで実行させるかを制御（管理）する。第２の実施の形態では、第１の実施の形態のように処理負荷などの条件による割り当ての規則はない。以下では、第１CPUコア１１Aに割り当てられたプロセスの集まりを、プロセス群１といい、第２CPUコア１１Bに割り当てられたプロセスの集まりを、プロセス群２という。プロセス管理部１５は、実行中のプロセスを示すプロセス動作情報をメモリ領域使用者判定部１３に供給する。
【００７５】
また、第２の実施の形態では、２つのCPUコア１１の負荷状態を監視して電源管理部１４に通知するシステム負荷監視部１７が新たに追加されている。システム負荷監視部１７は、各CPUコア１１の負荷状態として、各CPUコア１１の使用率を監視し、２つのCPUコア１１のトータルの使用率が予め定めた所定値以下となった場合に、省電力モードへの移行を電源管理部１４に通知する。一方、CPUコア１１のトータルの使用率が所定値より大きい場合には、システム負荷監視部１７は、通常電力モードへの移行を電源管理部１４に通知する。
【００７６】
電源管理部１４は、システム負荷監視部１７からの通知に基づいて、省電力モードと通常電力モードとを切り替える。電源管理部１４は、省電力モードと通常電力モードとを切り替えた場合、動作モードの移行をメモリ領域使用者判定部１３、プロセス管理部１５、およびメモリ管理部１６に通知する。また、電源管理部１４は、省電力モードに移行する際に、電源をオフするCPUコア１１を、メモリ領域使用者判定部１３から供給されるCPUオフ通知に基づいて決定し、決定されたCPUコア１１の電源をオフする。
【００７７】
メモリ領域使用者判定部１３は、プロセス管理部１５からのプロセス動作情報に基づいて、DRAM１２AおよびMRAM１２Bのそれぞれの領域を使用しているプロセスを判定する。そして、メモリ領域使用者判定部１３は、電源管理部１４から、省電力モードに移行する旨の通知が供給された場合、MRAM１２Bの使用量の少ないCPUコア１１を特定し、その結果をCPUオフ通知として、電源管理部１４に供給する。電源管理部１４は、CPUオフ通知に基づいて、MRAM１２Bの使用量の少ないCPUコア１１を、電源をオフするCPU１１に決定し、電源をオフする。
【００７８】
図７は、第２の実施の形態における省電力モードと通常電力モードの動作状態の違いを示す図である。
【００７９】
通常電力モードでは、全てのCPUコア１１と主記憶装置１２が動作する。すなわち、第１CPUコア１１Aおよび第２CPUコア１１Bと、DRAM１２AとMRAM１２Bが動作する。
【００８０】
これに対して、省電力モードでは、MRAM１２Bと、第１CPUコア１１Aおよび第２CPUコア１１Bのいずれか一方のみが動作する。ここで、省電力モードに移行する際、第１CPUコア１１Aおよび第２CPUコア１１Bのどちらの電源をオフするかは、上述したように、MRAM１２Bの使用量に基づいて決定される。例えば、DRAM１２AとMRAM１２Bの使用状態が、図７の通常電力モードとして示されている状態である場合、動作を継続するMRAM１２Bのメモリ領域のなかで、使用量が少ないのは、第２CPUコア１１Bであるので、第２CPUコア１１Bの電源がオフされる。図７の省電力モードの状態は、図７の通常電力モードから省電力モードに移行したときの状態を示している。
【００８１】
以上のように、第２の実施の形態では、省電力モードと通常電力モードでは、動作するCPUコア１１の個数と、高消費電力なDRAM１２Aを使用するかどうかが異なる。
【００８２】
［第２の実施の形態のメモリ制御処理の処理フロー］
図８のフローチャートを参照して、第２の実施の形態のメモリ制御処理について説明する。
【００８３】
ステップＳ４１において、システム負荷監視部１７は、CPUコア１１の負荷状態、具体的には、CPUコア１１のトータルの使用率を確認する。そして、ステップＳ４２において、システム負荷監視部１７は、CPUコア１１の負荷状態が高負荷状態であるかを判定する。
【００８４】
ステップＳ４２で、CPUコア１１の負荷状態が高負荷状態ではないと判定された場合、処理はステップＳ４３に進み、ステップＳ４３ないしステップＳ４８の省電力モード移行処理が実行される。
【００８５】
すなわち、ステップＳ４３において、システム負荷監視部１７は、省電力モードへの移行を電源管理部１４に通知し、電源管理部１４は、省電力モードへの移行をメモリ領域使用者判定部１３に通知する。
【００８６】
ステップＳ４４において、省電力モードへの移行が通知されたメモリ領域使用者判定部１３は、２つのCPUコア１１のうち、MRAM１２Bの使用量の少ないCPUコア１１を特定し、その結果を、CPUオフ通知として、電源管理部１４に供給する。
【００８７】
ステップＳ４５において、電源管理部１４は、省電力モードへの移行をプロセス管理部１５に通知し、MRAM１２Bの使用量の少ないCPUコア１１で動作しているプロセス（群）を移動させる。プロセス管理部１５は、MRAM１２Bの使用量の少ないCPUコア１１で動作しているプロセス（群）を、他方のCPUコア１１に移動させる。より具体的には、プロセス管理部１５は、移動させるプロセスを停止させ、次に実行するときに、他方のCPUコア１１にプロセスが割り当てられるように制御する。
【００８８】
ステップＳ４６において、電源管理部１４は、移動させたプロセスが動作していたCPUコア１１（以下、適宜、移動元CPUコア１１という。）の電源をオフにする。図７に示した例では、電源管理部１４は、移動元CPUコア１１として、第２CPUコア１１Bの電源がオフされる。
【００８９】
ステップＳ４７において、電源管理部１４は、省電力モードへの移行をメモリ管理部１６に通知する。
【００９０】
ステップＳ４８において、メモリ管理部１６は、DRAM１２Aを解放する。具体的には、メモリ管理部１６は、新規割り当て要求に対して使用するメモリ領域からDRAM１２Aを除外するとともに、DRAM１２Aに、後で使用されるデータが残っている場合には、そのデータをHDDなどの外部記憶装置に退避する処理を行う。
【００９１】
ステップＳ４９において、電源管理部１４は、解放の処理が終了したDRAM１２Aの電源をオフにする。
【００９２】
ステップＳ４９の処理が終了すると、処理はステップＳ４１に戻る。
【００９３】
一方、ステップＳ４２で、CPUコア１１の負荷状態が高負荷状態であると判定された場合、処理はステップＳ５０に進み、ステップＳ５０ないしステップＳ５５の通常電力モード移行処理が実行される。
【００９４】
すなわち、ステップＳ５０において、システム負荷監視部１７は、通常電力モードへの移行を電源管理部１４に通知する。
【００９５】
ステップＳ５１において、通常電力モードへの移行が通知された電源管理部１４は、電源オフさせていたCPUコア１１の電源をオンにして、初期化する。
【００９６】
そして、ステップＳ５２において、電源管理部１４は、DRAM１２Aの電源をオンにして、DRAM１２Aを初期化し、ステップＳ５３において、通常電力モードへの移行をプロセス管理部１５とメモリ管理部１６に通知する。
【００９７】
ステップＳ５４において、通常電力モードへの移行が通知されたメモリ管理部１６は、DRAM１２Aのデータを復元する。具体的には、メモリ管理部１６は、新規割り当て要求に対して使用する領域にDRAM１２Aを追加するとともに、上述したステップＳ４８で外部記憶装置に退避させたデータがあれば、その退避させたデータを元の領域に書き込む処理を行う。
【００９８】
ステップＳ５５において、通常電力モードへの移行が通知されたプロセス管理部１５は、上述したステップＳ４５で移動させたプロセス群を、移動元CPUコア１１に戻す。
【００９９】
ステップＳ５５の処理が終了すると、処理はステップＳ４１に戻る。
【０１００】
以上のメモリ制御処理を実行することにより、図７を参照して説明したように、全てのCPUコア１１と主記憶装置１２が動作する通常電力モードと、１つのCPUコア１１とMRAM１２Bのみが動作する省電力モードを切り替えて動作させることができる。省電力モードでは、CPUコア１１だけでなく、DRAM１２Aを停止させて、低消費電力のMRAM１２Bのみを使用するように制御するので、消費電力を低減させることができる。
【０１０１】
＜４．変形例＞
図９は、図１のメモリ制御装置１の変形例を示すブロック図である。
【０１０２】
図９では、図１のメモリ制御装置１に対して、データ先読み部１８が新たに追加されている。
【０１０３】
データ先読み部１８は、省電力モードへ移行した際に、外部記憶装置に退避させたデータのうち、すぐに必要となるデータを予測して（先読みして）、低消費電力主記憶装置１２Bに書き込む処理を実行する。これにより、外部記憶装置に退避させたデータが必要となったとき、データの読み込み待ちの発生を少なくすることができ、処理を高速化することができる。データの先読みには、既存の先読み技術を利用することができる。
【０１０４】
なお、低消費電力主記憶装置１２Bの空き領域に余裕がある場合には、データ先読み部１８は、省電力モードへ移行した際に、高消費電力主記憶装置１２Aに記憶されていたデータ全てを、低消費電力主記憶装置１２Bに移動させるようにしてもよい。
【０１０５】
以上説明したように、複数のCPUコア１１と、高消費電力な主記憶装置１２と低消費電力な主記憶装置１２の少なくとも２つの主記憶装置１２を備える情報処理装置において、メモリ制御装置１は、通常電力モードの他に、省電力モードを設定することができる。省電力モードでは、少なくとも一つのCPUコア１１を非稼働にする非稼働モードに連動して、高消費電力な主記憶装置１２を、電源の供給を抑制（停止）することができるので、情報処理装置全体の消費電力を低減させることができる。
【０１０６】
なお、上述した実施の形態では、省電力モードにおいて、高消費電力主記憶装置１２A（DRAM１２A）の電源をオフする例について説明した。しかしながら、高消費電力主記憶装置１２A（DRAM１２A）が、例えば、サスペンドモードなど、電源オフ以外に、通常モードよりも消費電力を抑えたモードを有している場合には、そのようなモード（電力抑制モード）にするのでもよい。すなわち、メモリ制御装置１の省電力モードには、サスペンドモードなどのような、電源の供給停止（電源オフ）以外の、通常モードよりも消費電力を抑えたモードも含まれる。
【０１０７】
また、上述した実施の形態では、CPUコア１１と主記憶装置１２を制御するブロックを、それぞれの機能に応じて、メモリ領域使用者判定部１３、電源管理部１４、プロセス管理部１５、およびメモリ管理部１６のように分けて説明した。しかし、これらの４つのブロックは、１つないし３つに統合された処理ブロック、モジュール、またはプログラムとして実行されてもよい。
【０１０８】
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
【０１０９】
［コンピュータの構成例］
図１０は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
【０１１０】
コンピュータにおいて、CPU（Central Processing Unit）１０１，ROM（Read Only Memory）１０２，RAM（Random Access Memory）１０３は、バス１０４により相互に接続されている。
【０１１１】
バス１０４には、さらに、入出力インタフェース１０５が接続されている。入出力インタフェース１０５には、入力部１０６、出力部１０７、記憶部１０８、通信部１０９、及びドライブ１１０が接続されている。
【０１１２】
入力部１０６は、キーボード、マウス、マイクロホンなどよりなる。出力部１０７は、ディスプレイ、スピーカなどよりなる。記憶部１０８は、ハードディスクや不揮発性のメモリなどよりなる。通信部１０９は、ネットワークインタフェースなどよりなる。ドライブ１１０は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブル記録媒体１１１を駆動する。
【０１１３】
以上のように構成されるコンピュータでは、CPU１０１が、例えば、記憶部１０８に記憶されているプログラムを、入出力インタフェース１０５及びバス１０４を介して、RAM１０３にロードして実行することにより、上述した一連の処理が行われる。
【０１１４】
例えば、プロセス管理部１５は、OSのスケジュール管理を行う一モジュール、メモリ管理部１６は、OSのメモリ管理を行う一モジュール、メモリ領域使用者判定部１３は、上述したメモリ領域使用者判定を行うOSの一モジュールとして構成することができる。
【０１１５】
コンピュータでは、プログラムは、リムーバブル記録媒体１１１をドライブ１１０に装着することにより、入出力インタフェース１０５を介して、記憶部１０８にインストールすることができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して、通信部１０９で受信し、記憶部１０８にインストールすることができる。その他、プログラムは、ROM１０２や記憶部１０８に、あらかじめインストールしておくことができる。
【０１１６】
上述した実施の形態では、CPUコア１１と主記憶装置１２を制御するブロックを、それぞれの機能に応じて、メモリ領域使用者判定部１３、電源管理部１４、プロセス管理部１５、およびメモリ管理部１６のように分けて説明した。しかし、これらの２つないし４つが結合され、１つの処理ブロック、モジュール、プログラムにより実行されるものでもよい。
【０１１７】
なお、本明細書において、フローチャートに記述されたステップは、記載された順序に沿って時系列的に行われる場合はもちろん、必ずしも時系列的に処理されなくとも、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで実行されてもよい。
【０１１８】
本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【０１１９】
なお、本技術は以下のような構成も取ることができる。
（１）
複数のCPUコアのメモリデバイスとしての、低消費電力の主記憶装置である第一の主記憶装置と、それより高消費電力である第二の主記憶装置のうち、前記第二の主記憶装置が休止可能か否かを判定する判定部と、
前記判定部において前記第二の主記憶装置が休止可能であると判定された場合、前記複数のCPUコアの少なくとも一つと、前記第二の主記憶装置への電源の供給を抑制する電源管理部と
を備えるメモリ制御装置。
（２）
前記複数のCPUコアは、高消費電力のCPUコアと、低消費電力のCPUコアを含み、
前記電源管理部は、前記判定部において前記第二の主記憶装置が休止可能であると判定された場合、前記高消費電力のCPUコアと、前記第二の主記憶装置への電源の供給を停止する
前記（１）に記載のメモリ制御装置。
（３）
前記複数のCPUコアは、高消費電力のCPUコアと、低消費電力のCPUコアを含み、
前記電源管理部は、前記判定部において前記第二の主記憶装置が休止可能ではないと判定された場合、前記低消費電力のCPUコアへの電源の供給を停止する
前記（１）または（２）に記載のメモリ制御装置。
（４）
前記複数のCPUコアは同一性能のCPUコアであり、
前記電源管理部は、前記判定部において前記第二の主記憶装置が休止可能であると判定された場合、前記第一の主記憶装置の使用量の少ない前記CPUコアと、前記第二の主記憶装置への電源の供給を停止する
前記（１）に記載のメモリ制御装置。
（５）
前記第二の主記憶装置への電源の供給が停止され、前記第二の主記憶装置に書き込まれていたデータが退避された場合に、その退避されたデータを前記第一の主記憶装置に書き込む先読み部をさらに備える
前記（１）ないし（４）のいずれかに記載のメモリ制御装置。
（６）
複数のCPUコアのメモリデバイスとしての、低消費電力の主記憶装置である第一の主記憶装置と、それより高消費電力である第二の主記憶装置とを制御するメモリ制御装置が、
前記第二の主記憶装置が休止可能か否かを判定し、
前記第二の主記憶装置が休止可能であると判定された場合、前記複数のCPUコアの少なくとも一つと前記第二の主記憶装置への電源の供給を抑制する
ステップを含むメモリ制御方法。
（７）
コンピュータに、
複数のCPUコアのメモリデバイスとしての、低消費電力の主記憶装置である第一の主記憶装置と、それより高消費電力である第二の主記憶装置のうち、前記第二の主記憶装置が休止可能か否かを判定し、
前記第二の主記憶装置が休止可能であると判定された場合、複数のCPUコアの少なくとも一つと前記第二の主記憶装置への電源の供給を抑制する
処理を実行させるためのプログラム。
（８）
複数のCPUコアと、
第一の主記憶装置、及び、前記第一の主記憶装置よりも消費電力の高い第二の主記憶装置と、
前記第一及び第二の主記憶装置を制御するメモリ制御部と
を備え、
前記メモリ制御部は、
前記第二の主記憶装置が休止可能か否かを判定する判定部と、
前記判定部において前記第二の主記憶装置が休止可能であると判定された場合、前記複数のCPUコアの少なくとも一つと、前記第二の主記憶装置への電源の供給を抑制する電源管理部と
を備える
情報処理装置。
（９）
前記複数のCPUコアは、高消費電力のCPUコアと、低消費電力のCPUコアを含み、
前記電源管理部は、前記判定部において前記第二の主記憶装置が休止可能であると判定された場合、前記高消費電力のCPUコアと、前記第二の主記憶装置への電源の供給を停止する
前記（８）に記載の情報処理装置。
（１０）
前記複数のCPUコアは、高消費電力のCPUコアと、低消費電力のCPUコアを含み、
前記電源管理部は、前記判定部において前記第二の主記憶装置が休止可能ではないと判定された場合、前記低消費電力のCPUコアへの電源の供給を停止する
前記（８）または（９）に記載の情報処理装置。
（１１）
前記複数のCPUコアは同一性能のCPUコアであり、
前記電源管理部は、前記判定部において前記第二の主記憶装置が休止可能であると判定された場合、前記第一の主記憶装置の使用量の少ない前記CPUコアと、前記第二の主記憶装置への電源の供給を停止する
前記（１０）に記載の情報処理装置。
（１２）
前記第二の主記憶装置への電源の供給が停止され、前記第二の主記憶装置に書き込まれていたデータが退避された場合に、その退避されたデータを前記第一の主記憶装置に書き込む先読み部をさらに備える
前記（８）ないし（１１）のいずれかに記載の情報処理装置。
【符号の説明】
【０１２０】
１  メモリ制御装置，  １１  CPUコア，  １２  主記憶装置，  １３  メモリ領域使用者判定部，  １４  電源管理部，  １５  プロセス管理部，  １６  メモリ管理部
【図１】
2013222321.tif 000003
【図２】
2013222321.tif 000004
【図３】
2013222321.tif 000005
【図４】
2013222321.tif 000006
【図５】
2013222321.tif 000007
【図６】
2013222321.tif 000008
【図７】
2013222321.tif 000009
【図８】
2013222321.tif 000010
【図９】
2013222321.tif 000011
【図１０】
2013222321.tif 000012