(57)【要約】【課題】ユーザの使用状況に応じて適切に消費電力を低減することが可能な電子機器を提供する。【解決手段】省電力モードを有する電子機器は、電子機器の動作を制御するプロセッサと、個別に停止状態にすることが可能に構成され、プロセッサが利用可能な複数のメモリとを含む。プロセッサは、プロセッサの処理負荷に基づいて、複数のメモリのうち所定の数のメモリを停止状態にすることで省電力モードに移行させる。プロセッサは、省電力モードにおいて、電子機器の一部の動作を制限するスタンバイ状態と電子機器の動作を通常制御するアクティブ状態とを有し、スタンバイ状態またはアクティブ状態に関わらず、所定の数のメモリの停止状態を維持する。【選択図】図１
2014186478.tif 000002
【特許請求の範囲】
【請求項１】
省電力モードを有する電子機器であって、
前記電子機器の動作を制御するプロセッサと、
個別に停止状態にすることが可能に構成され、前記プロセッサが利用可能な複数のメモリとを備え、
前記プロセッサは、前記プロセッサの処理負荷に基づいて、前記複数のメモリのうち所定の数のメモリを停止状態にすることで前記省電力モードに移行させ、
前記プロセッサは、前記省電力モードにおいて、前記電子機器の一部の動作を制限するスタンバイ状態と前記電子機器の動作を通常制御するアクティブ状態とを有し、前記スタンバイ状態または前記アクティブ状態に関わらず、前記所定の数のメモリの前記停止状態を維持する、電子機器。
【請求項２】
前記複数のメモリを制御するメモリコントローラをさらに備え、
前記プロセッサは、前記プロセッサの処理負荷が第１の閾値未満であると判断した場合に、前記メモリコントローラの状態に基づいて、前記所定の数のメモリを停止状態にすることで前記省電力モードに移行させる、請求項１に記載の電子機器。
【請求項３】
前記プロセッサは、前記メモリコントローラのステータスレジスタに基づいて、前記メモリコントローラが前記複数のメモリにアクセスしていない状態を示すアイドル状態であると判断すると、前記所定の数のメモリを前記停止状態にすることで前記省電力モードに移行させる、請求項２に記載の電子機器。
【請求項４】
省電力モードを有する電子機器であって、
少なくともいずれか一方が前記電子機器の動作を制御する、第１のプロセッサおよび前記第１のプロセッサよりも消費電力の小さい第２のプロセッサと、
個別に停止状態にすることが可能に構成され、前記第１および第２のプロセッサが利用可能な複数のメモリとを備え、
前記第１のプロセッサは、前記複数のメモリを利用する前記第１のプロセッサの処理負荷が第１の閾値未満になったと判断した場合に、前記第１のプロセッサの代わりに前記第２のプロセッサに前記電子機器の動作を制御させるための起動情報を前記第２のプロセッサに送信し、
前記第２のプロセッサは、前記第１のプロセッサから前記起動情報を受信すると前記電子機器の動作制御を開始し、所定の条件に基づいて、前記複数のメモリのうち所定の数のメモリを停止状態にすることで前記省電力モードに移行させ、
前記第２のプロセッサは、前記省電力モードにおいて、前記電子機器の一部の動作を制限するスタンバイ状態と前記電子機器の動作を通常制御するアクティブ状態とを有し、前記スタンバイ状態または前記アクティブ状態に関わらず、前記所定の数のメモリの前記停止状態を維持する、電子機器。
【請求項５】
前記第２のプロセッサは、前記第２のプロセッサの処理負荷が第２の閾値以上になったと判断した場合に、前記第２のプロセッサの代わりに前記第１のプロセッサに前記電子機器の動作を制御させるための起動情報を前記第１のプロセッサに送信し、
前記第１のプロセッサは、前記第２のプロセッサから前記起動情報を受信すると前記電子機器の動作制御を開始し、前記所定の数のメモリを前記停止状態から通常状態に復帰させる、請求項４に記載の電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、省電力モードを有する電子機器に関する。
【背景技術】
【０００２】
従来、携帯電話、携帯ゲーム機、携帯音楽再生機などの持ち運び可能な携帯端末装置が普及している。これらの携帯端末装置は、高性能化が進んでおり、複数のアプリケーションを高速で実行するために大容量のＳＤＲＡＭ（Synchronous  Dynamic  Random  Access  Memory）が搭載されている。ＳＤＲＡＭは、携帯端末装置に含まれる他のデバイスと比較して、消費電力が大きい。そのため、ＳＤＲＡＭの省電力化（携帯端末装置の省電力化）を図るための技術として、ＳＤＲＡＭのディープパワーダウン（ＤＰＤ）モードを利用する技術が知られている。
【０００３】
例えば、特開２０１２−８８９０６号公報（特許文献１）には、メモリを停止した省電力モードを有する電子機器が開示されている。電子機器は、個別に停止状態にすることが可能な第１および第２のメモリと、第１のメモリへの制御信号と第２のメモリへの制御信号を入れ替えるメモリ制御部と、省電力モードへ移行するとき、第２のメモリを停止状態へ移行させ、該第２のメモリが通常状態に復帰することが可能な停止状態となった後、第１のメモリを停止状態へ移行させ、それと共に、メモリ制御部に、第１のメモリへの制御信号と第２のメモリへの制御信号を入れ替えさせる中央制御部とを有する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−８８９０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、ユーザが携帯端末装置に含まれるアプリケーションを使用する場合、ゲームなどのように携帯端末装置のプロセッサの処理負荷が大きいアプリケーションを利用する状況もあれば、そうでない状況もある。プロセッサの処理負荷が小さいアプリケーションを利用する状況では、プロセッサの処理能力およびメモリ容量が比較的小さくてもユーザが体感するパフォーマンス低下が小さい。そのため、当該状況においては、プロセッサおよびメモリで消費される電力をできるだけ低減させることが望ましい。
【０００６】
本発明は、上記のような問題点を解決するためになされたものであって、ユーザの使用状況に応じて適切に消費電力を低減することが可能な電子機器を提供することを目的とする。
【課題を解決するための手段】
【０００７】
ある実施の形態に従うと、省電力モードを有する電子機器が提供される。電子機器は、電子機器の動作を制御するプロセッサと、個別に停止状態にすることが可能に構成され、プロセッサが利用可能な複数のメモリとを含む。プロセッサは、プロセッサの処理負荷に基づいて、複数のメモリのうち所定の数のメモリを停止状態にすることで省電力モードに移行させる。プロセッサは、省電力モードにおいて、電子機器の一部の動作を制限するスタンバイ状態と電子機器の動作を通常制御するアクティブ状態とを有し、スタンバイ状態またはアクティブ状態に関わらず、所定の数のメモリの停止状態を維持する。
【発明の効果】
【０００８】
ユーザの使用状況に応じて適切に消費電力を低減することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１に従う電子機器のハードウェア構成を示す模式図である。
【図２】実施の形態１に従う電子機器が有する複数の動作状態を説明するための概念図である。
【図３】実施の形態１に従う電子機器が有する動作状態Ａの他の例を説明するための概念図である。
【図４】実施の形態１に従う電子機器の動作状態Ａ（省電力モード）での消費電力の低減効果について説明するためのタイミング図である。
【図５】実施の形態１に従う電子機器の動作状態の遷移を説明するためのタイミング図である。
【図６】実施の形態１に従う電子機器の動作状態の遷移を説明するための別のタイミング図である。
【図７】実施の形態１に従う電子機器のＳＤＲＡＭ容量の制御処理を示すフローチャートである。
【図８】実施の形態２に従う電子機器のハードウェア構成を示す模式図である。
【図９】実施の形態２に従う電子機器が有する複数の動作状態を説明するための概念図である。
【図１０】実施の形態２に従う電子機器の動作状態Ａ１（省電力モード）での消費電力の低減効果について説明するためのタイミング図である。
【図１１】実施の形態２に従う電子機器の動作状態の遷移を説明するためのタイミング図である。
【図１２】実施の形態２に従う電子機器の動作状態の遷移を説明するための別のタイミング図である。
【図１３】実施の形態２に従う電子機器のＳＤＲＡＭ容量の制御処理を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００１１】
［実施の形態１］
＜ハードウェア構成＞
図１は、実施の形態１に従う電子機器１００のハードウェア構成を示す模式図である。以下の説明では、電子機器１００がスマートフォンである場合について説明する。ただし、電子機器１００は、種類を問わず任意の装置として実現できる。例えば、電子機器１００は、タブレット端末装置、ＰＤＡ（Personal  Digital  Assistance）、ノートＰＣ（Personal  Computer）などとして実現することもできる。
【００１２】
図１を参照して、電子機器１００は、主たる構成要素として、マルチコアプロセッサ（以下、単に「マルチコア」とも称する。）１０と、不揮発性メモリ３０と、入力装置４０と、コントローラ５０Ａ，５０Ｂ（以下、単に「コントローラ５０」とも総称する。）と、ＳＤＲＡＭ６０Ａ，６０Ｂ，６０Ｃ，６０Ｄ（以下「ＳＤＲＡＭ６０」とも総称する。）と、通信インターフェイス（Ｉ／Ｆ）７０と、ディスプレイ８０とを含む。
【００１３】
マルチコア１０は、複数のコア（ＣＰＵ（Central  Processing  Unit））１１〜１４を有している。マルチコア１０は、コア１１〜１４の少なくとも１つ以上のコアにより、電子機器１００の各部の動作を制御する。マルチコア１０は、高速な周波数で動作するが（情報処理能力が高い）、消費電力が大きいコアが４つ搭載されているマルチコアプロセッサである。以下では、説明の容易化のため、少なくともコア１１はアクティブコアであるものとする。なお、アクティブコアとは、少なくともある特定の時点に命令を実行している、あるいは実行するために利用可能なコアである。
【００１４】
マルチコア１０は、不揮発性メモリ３０に格納されたプログラムおよびＳＤＲＡＭ６０に格納されたデータを読み出して実行することで、電子機器１００の各部の動作を制御する。マルチコア１０は、当該プログラムを実行することによって、後述する電子機器１００の処理（ステップ）の各々を実現する。また、マルチコア１０は、ＣＰＵ動作周波数およびアクティブコア数を制御するために、一定の周期でコア１１,１２,１３,１４の動作周波数および使用率をモニタして、マルチコア１０全体の動作周波数およびアクティブコア数を管理している。
【００１５】
不揮発性メモリ３０は、フラッシュメモリ、ハードディスクなどによって実現される。不揮発性メモリ３０は、マルチコア１０によって実行されるプログラム、またはマルチコア１０によって利用されるデータなどを記憶する。
【００１６】
入力装置４０は、電子機器１００に対する操作入力を受け付ける。入力装置４０は、例えば、キーボード、ボタン、マウスなどによって実現される。また、入力装置４０は、タッチパネルとして実現されていてもよい。
【００１７】
コントローラ５０は、各々のＳＤＲＡＭ６０を制御する。典型的には、コントローラ５０は、ＳＤＲＡＭ６０に格納されたデータの読み出し、データの書き込み、リフレッシュ動作などを制御する。
【００１８】
ＳＤＲＡＭ６０Ａ〜６０Ｄは、マルチコア１０がアプリケーションを実行するときに利用する揮発性メモリである。ＳＤＲＡＭ６０は、例えば、ＤＤＲ（Double-Data-Rate）Ｍｏｂｉｌｅ ＲＡＭである。ＳＤＲＡＭ６０は、マルチコア１０の指示に基づいて、個別にＤＰＤ状態に移行可能に構成されている。ＳＤＲＡＭ６０は、ＤＰＤモードに移行すると、リフレッシュ動作を行なわないため、格納されているデータを保持することができないが、消費電力を大幅に抑えることができる。
【００１９】
通信インターフェイス（Ｉ／Ｆ）７０は、電子機器１００と外部装置との間で各種データをやり取りするための通信インターフェイスである。なお、通信方式としては、例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）、無線ＬＡＮ（Local  Area  Network）などによる無線通信であってもよいし、ＵＳＢ（Universal  Serial  Bus）などを利用した有線通信であってもよい。電子機器１００は、通信インターフェイス７０を介して移動体通信網に接続し無線通信のための信号の送受信を行なってもよい。これにより、電子機器１００は、例えば、第３世代移動通信システム（３Ｇ）、ＬＴＥ（Long  Term  Evolution）などの移動体通信網を介して通信装置との通信が可能となる。
【００２０】
ディスプレイ８０は、マルチコア１０からの信号に基づいて、表示画面に画像、テキスト、その他の情報を表示する。なお、電子機器１００は、マイク、スピーカ、カメラ、メモリインターフェイスなどの周辺回路を有していてもよい。
【００２１】
＜動作状態＞
図２は、実施の形態１に従う電子機器１００が有する複数の動作状態を説明するための概念図である。なお、図２では、説明の容易化のため、マルチコア１０、コントローラ５０、およびＳＤＲＡＭ６０についてのみ図示している。また、各々のＳＤＲＡＭ６０の容量は、１ＧＢであるとする。
【００２２】
図２（ａ）に示される電子機器１００の動作状態は、コア１１，１２をアクティブコアとするマルチコア１０が、コントローラ５０Ａを介してＳＤＲＡＭ６０Ａを利用し、コントローラ５０Ｂを介してＳＤＲＡＭ６０Ｃを利用するとともに、電子機器１００の動作を制御している状態である（以下「動作状態Ａ」とも称する。）。動作状態Ａでは、ＳＤＲＡＭ６０Ｂ，６０Ｄは、ＤＰＤモード状態（停止状態）に移行している。そのため、マルチコア１０は、２ＧＢ分のメモリ容量を利用できる状態である。
【００２３】
図２（ｂ）に示される電子機器１００の動作状態は、コア１１〜１３をアクティブコアとするマルチコア１０が、コントローラ５０Ａを介してＳＤＲＡＭ６０Ａ，６０Ｂを利用し、コントローラ５０Ｂを介してＳＤＲＡＭ６０Ｃ，６０Ｄを利用するとともに、電子機器１００の動作を制御している状態である（以下「動作状態Ｂ」とも称する。）。動作状態Ｂでは、ＤＰＤモード状態（以下、「ＤＰＤ状態」とも称する。）に移行しているＳＤＲＡＭ６０は存在しない。そのため、マルチコア１０は、ＳＤＲＡＭ６０全て（４ＧＢのメモリ容量）を利用することができる。
【００２４】
図２（ｃ）に示される電子機器１００の動作状態は、コア１１，１２をアクティブコアとするマルチコア１０が、コントローラ５０Ａを介してＳＤＲＡＭ６０Ａ，６０Ｂを利用し、コントローラ５０Ｂを介してＳＤＲＡＭ６０Ｃ，６０Ｄを利用するとともに、電子機器１００の全体の動作を制御している状態である（以下「動作状態Ｃ」とも称する。）。動作状態Ｃでは、動作状態Ｂと同様にＤＰＤ状態に移行しているＳＤＲＡＭ６０は存在しない。そのため、マルチコア１０は、ＳＤＲＡＭ６０全て（４ＧＢのメモリ容量）を利用することができる。
【００２５】
以上から、動作状態Ａ〜Ｃのうち、電子機器１００の消費電力が最も小さい動作状態は、最もアクティブコアが少なく、かつ２ＧＢ分のＳＤＲＡＭ６０を利用可能（残りの２ＧＢはＤＰＤ状態）な動作状態Ａとなる。すなわち、動作状態Ａは、電子機器１００における省電力モード状態である。また、電子機器１００の消費電力が最も大きい動作状態は、マルチコア１０が４ＧＢ分のＳＤＲＡＭ６０を利用可能（ＤＰＤ状態のＳＤＲＡＭ６０はなし）な動作状態Ｂである。なお、動作状態Ｃでの電子機器１００の消費電力は、動作状態Ｂでの当該消費電力よりも小さく、動作状態Ａでの当該消費電力よりも大きい。
【００２６】
詳細は後述するが、電子機器１００は、マルチコア１０の処理負荷などに応じて上記の複数の動作状態を変更するように構成されている。例えば、プロセッサの処理負荷が大きいアプリケーションを利用する場合には、高い情報処理能力を必要とするため、コアの使用率および動作周波数が高く、利用可能なメモリ容量が大きい（４ＧＢ）動作状態Ｂとなる。また、プロセッサの処理負荷が小さいアプリケーションを利用する場合には、コアの使用率および動作周波数が低く、利用可能なメモリ容量が小さい（２ＧＢ）動作状態Ａとなる。動作状態Ｃは、所定の条件に基づいて動作状態Ｂから動作状態Ａに移行する際の仲介的な役割を果たす動作状態である。
【００２７】
なお、動作状態Ａは、マルチコア１０が２ＧＢ分のＳＤＲＡＭ６０を利用可能な状態であればよく、図２（ａ）に示されるような例に限られない。例えば、動作状態Ａは、以下の図３に示されるような形態であってもよい。
【００２８】
図３は、実施の形態１に従う電子機器１００が有する動作状態Ａの他の例を説明するための概念図である。図３を参照して、動作状態Ａは、マルチコア１０がコントローラ５０Ａを介してＳＤＲＡＭ６０Ａ，６０Ｂを利用し、電子機器１００の全体の動作を制御する場合（図３（ａ））であってもよいし、マルチコア１０がコントローラ５０Ｂを介してＳＤＲＡＭ６０Ｃ，６０Ｄを利用し、電子機器１００の全体の動作を制御する場合（図３（ｂ））であってもよい。
【００２９】
＜消費電力の低減効果＞
図４は、実施の形態１に従う電子機器１００の動作状態Ａ（省電力モード）での消費電力の低減効果について説明するためのタイミング図である。具体的には、図４（ａ）は、比較例に従う電子機器のマルチコアの動作、メモリ容量、および消費電力の変化を時系列で示す図である。図４（ｂ）は、実施の形態１に従う電子機器１００のマルチコア１０の動作、メモリ容量、および消費電力の変化を時系列で示す図である。なお、比較例に従うマルチコアの性能と、マルチコア１０の性能とは同様であるとする。
【００３０】
ここで、比較例に従うマルチコア、およびマルチコア１０は、電子機器の一部の動作を制限するスタンバイ状態と電子機器の動作を通常制御するアクティブ状態とを有する。スタンバイ状態では、これらのマルチコアは、電子機器を構成する全ての機能を制御する必要がない。例えば、スタンバイ状態では、電子機器１００は、マルチコア１０を含むＳＯＣ（System  on  Chip）内の不要なｂｌｏｃｋの電源をオフ、およびクロックゲート処理を行なう。そのため、スタンバイ状態における電子機器１００の消費電流（数ｍＡ）は、アクティブ状態の当該消費電流（数１００ｍＡ）と比較して大幅に低減される。
【００３１】
図４（ａ）を参照すると、比較例に従うマルチコアは、スタンバイ状態とアクティブ状態とを切り替えるごとにメモリ容量を変化させていることがわかる。すなわち、比較例に従うマルチコアは、アクティブ状態のときには４ＧＢ分のメモリを利用し、スタンバイ状態のときには２ＧＢ分のメモリを利用するとともに、残りの２ＧＢ分のメモリをＤＰＤ状態に移行させている。
【００３２】
これに対して、図４（ｂ）を参照すると、実施の形態１に従うマルチコア１０は、省電力モード（動作状態Ａ）においては、スタンバイ状態またはアクティブ状態に関わらず、２ＧＢ分のメモリを利用し、残りの２ＧＢ分のメモリのＤＰＤ状態を維持している。そのため、マルチコア１０に対して、比較例に従うマルチコアは、スタンバイ状態からアクティブ状態になるときに、メモリ容量の切り替えに必要な時間Ｔ１だけ処理時間が長くなる。同様に、マルチコア１０に対して、比較例に従うマルチコアは、アクティブ状態からスタンバイ状態になるときに、メモリ容量の切り替えに必要な時間Ｔ２だけ処理時間が長くなる。したがって、マルチコア１０は、比較例に従うマルチコアよりもＴ１＋Ｔ２の処理時間分の消費電流を低減することができる。
【００３３】
ここで、スマートフォンなどの電子機器においては、２〜３秒ごとに基地局などと通信を行なっている。そのため、ユーザが一定時間、何も操作を行なわずにマルチコアがスタンバイ状態になったとしても、基地局などとの通信によりすぐにアクティブ状態に復帰する。すなわち、マルチコアは、スタンバイ状態およびアクティブ状態を頻繁に繰り返すことになる。そのため、スタンバイ状態／アクティブ状態が切り替わるごとに、メモリ容量を切り替える比較例に従うマルチコアを搭載する電子機器に比べて、スタンバイ状態またはアクティブ状態に関わらずメモリ容量を切り替えないマルチコア１０を搭載する電子機器１００は、全体として消費電力を低減することができる。
【００３４】
なお、マルチコア１０においても、動作状態Ｂと動作状態Ａとの間で遷移するときにメモリ容量を切り替えるものの、ユーザが意図的に行なわない限りスタンバイ状態から、いきなり高パフォーマンスの動作状態Ｂに遷移することはない。少なくとも基地局などとの通信によりスタンバイ状態から動作状態Ｂに遷移することはない。そのため、電子機器１００は、比較例に従うマルチコアを搭載した電子機器と比較して、低消費電力化を実現することができる。
【００３５】
また、実施の形態１に従う電子機器１００は、動作状態Ａでは、マルチコア１０がアクティブ状態であっても、利用可能なメモリ容量は２ＧＢ（残りの２ＧＢはＤＰＤ状態）となる。しかし、動作状態Ａは、そもそもプロセッサの処理能力が求められない状況での動作状態であるため、アクティブ状態またはスタンバイ状態に関わらずメモリ容量を２ＧＢに維持することによるデメリット（ユーザが体感するパフォーマンスの低下）は小さく、消費電力を低減できるメリットの方が大きい。
【００３６】
＜動作状態の遷移＞
図５は、実施の形態１に従う電子機器１００の動作状態の遷移を説明するためのタイミング図である。図５を参照して、電子機器１００が動作状態Ａから動作状態Ｂに遷移する場面について説明する。動作状態Ａにおいて、電子機器１００は、マルチコア１０の処理負荷が所定の閾値Ａ以上（例えば、コア１１の使用率が７０％以上、かつ動作周波数が９００ＭＨｚ以上）になった場合には、高パフォーマンスの動作状態Ｂに遷移を開始する。具体的には、マルチコア１０は、コア１３をアクティブにしてアクティブコアの数を３つに増やして処理能力を増大させる（アクティブコアの数を４つにする場合であってもよい）。そして、マルチコア１０は、ＤＰＤ状態に移行している２ＧＢ分のＳＤＲＡＭ６０を通常状態に復帰させる。電子機器１００は、マルチコア１０が４ＧＢ分のＳＤＲＡＭ６０を利用する動作状態Ｂに遷移する。なお、動作状態Ａから動作状態Ｂへの遷移過程において、マルチコア１０が２ＧＢ分のＳＤＲＡＭ６０を利用し、電子機器１００の動作制御を行なう動作状態Ｄが一時的に生じる。
【００３７】
次に、電子機器１００が動作状態Ｂから動作状態Ａに遷移する場面について説明する。動作状態Ｂにおいて、電子機器１００は、マルチコア１０の処理負荷が所定の閾値Ｂ未満（例えば、コア１１の使用率が７０％未満、動作周波数が９００ＭＨｚ未満）になった場合には、低パフォーマンスの動作状態Ａに遷移を開始する。具体的には、マルチコア１０は、コア１３を非アクティブにしてアクティブコアの数を２つに減らす（アクティブコアの数を１つ（コア１１のみ）にする場合であってもよい。）このとき、電子機器１００は、動作状態Ｂから動作状態Ｃに遷移する。
【００３８】
そして、マルチコア１０は、所定の条件を満たすと、利用可能な４ＧＢ分のＳＤＲＡＭ６０のうち２ＧＢ分のＳＤＲＡＭ６０をＤＰＤ状態に移行させる。具体的には、マルチコア１０は、自身の処理負荷が所定の閾値Ｃ未満（例えば、アクティブなコア１１，１２の使用率が７０％未満、かつ動作周波数が９００ＭＨｚ未満）と判断した場合に、コントローラ５０の状態に基づいて、２ＧＢ分のＳＤＲＡＭ６０をＤＰＤ状態に移行させる。詳細には、マルチコア１０は、自身の処理負荷が閾値Ｃ未満と判断した場合であって、かつ、コントローラ５０のステータスレジスタに基づいてコントローラ５０がＳＤＲＡＭ６０にアクセスしていないアイドル状態であると判断した場合に、２ＧＢ分のＳＤＲＡＭ６０をＤＰＤ状態に移行させる。このようにして、電子機器１００は、動作状態Ｃから、マルチコア１０が２ＧＢ分のＳＤＲＡＭ６０を利用し電子機器１００の動作制御を行なう動作状態Ａに遷移する。
【００３９】
次に、実施の形態１に従う電子機器１００の動作状態の別の遷移例について説明する。
図６は、実施の形態１に従う電子機器１００の動作状態の遷移を説明するための別のタイミング図である。図６を参照して、電子機器１００が動作状態Ａから動作状態Ｂに遷移する場面、動作状態Ｂから動作状態Ｃに遷移する場面については、図５の例と同様であるためその詳細な説明は繰り返さない。
【００４０】
図６に示されるように、動作状態Ｃから動作状態Ａに遷移する場面において、図５のタイミング図と比較して動作状態Ｃの期間が長いことがわかる。つまり、２ＧＢ分のＳＤＲＡＭ６０をＤＰＤ状態に移行させる処理を開始してから、当該処理が完了するまでの時間が長い。これは、マルチコア１０が、自身を含む全てのバスマスタの処理負荷を確認し、これらの処理負荷が所定の閾値未満であった場合に、２ＧＢ分のＳＤＲＡＭ６０をＤＰＤ状態への移行させるためである。
【００４１】
具体的には、マルチコア１０は、自身を含む他の全てのバスマスタの処理負荷が、各々のバスマスタに対して最適化された所定の閾値未満であると判断した場合に、コントローラ５０の状態に基づいて、２ＧＢ分のＳＤＲＡＭ６０をＤＰＤ状態に移行させる。詳細には、マルチコア１０は、（１）マルチコア１０の処理負荷が閾値Ｃ未満であること、（２）他のバスマスタの各々の処理負荷が、各々のバスマスタに対して設定された閾値Ｃｘ未満であること、の（１）および（２）の条件を満たすか否かを判断する。そして、マルチコア１０は、（１）および（２）の条件を満たし、かつ、コントローラ５０のステータスレジスタに基づいて、コントローラ５０がアイドル状態であると判断した場合に、２ＧＢ分のＳＤＲＡＭ６０をＤＰＤ状態に移行させる。このようにして、電子機器１００は、動作状態Ｃから動作状態Ａに遷移する。バスマスタは、例えば、電子機器１００に搭載されたモデムなどの通信インターフェイス７０である。なお、バスマスタは、ＧＰＵ（Graphics  Processing  Unit）であってもよい。
【００４２】
＜処理手順＞
図７は、実施の形態１に従う電子機器１００のＳＤＲＡＭ容量の制御処理を示すフローチャートである。以下の各ステップは、基本的に、マルチコア１０が不揮発性メモリ３０に格納されたプログラムを実行することによって実現される。
【００４３】
図７を参照して、電子機器１００は、動作状態Ａを維持しているときに（ステップＳ１０２）、マルチコア１０の処理負荷が所定の閾値Ａ以上か否かを判断する（ステップＳ１０４）。具体的には、マルチコア１０は、コアの使用率、コアの動作周波数、アクティブなコアの数の少なくともいずれかに基づいて当該判断を行なう。例えば、マルチコア１０は、コア１１の使用率が７０％以上、かつコア１１の動作周波数が９００ＭＨｚ、かつアクティブなコアの数が２つ以上（例えば、コア１１，１２がアクティブ）である場合に、当該処理負荷が閾値Ａ以上であると判断する。
【００４４】
マルチコア１０の処理負荷が閾値Ａ以上でない場合には（ステップＳ１０４においてＮＯ）、電子機器１００は、ステップＳ１０２からの処理を繰り返す。すなわち、電子機器１００は、動作状態Ａを維持する。これに対して、当該処理負荷が閾値Ａ以上である場合には（ステップＳ１０４においてＹＥＳ）、電子機器１００は、動作状態Ａから動作状態Ｂに遷移する（ステップＳ１０６）。具体的には、マルチコア１０は、アクティブコアの数を増やすとともに、ＤＰＤ状態の２ＧＢ分のＳＤＲＡＭ６０を通常状態に復帰させる。
【００４５】
次に、電子機器１００は、マルチコア１０の処理負荷が所定の閾値Ｂ未満か否かを判断する（ステップＳ１０８）。具体的には、マルチコア１０が、コアの使用率、コアの動作周波数、アクティブなコアの数の少なくともいずれかに基づいて当該判断を行なう。例えば、マルチコア１０は、コア１１の使用率が７０％未満、かつコア１１の動作周波数が９００ＭＨｚ、かつコア１１以外のアクティブコアの数が１つ以下である場合に、処理負荷が閾値Ｂ未満であると判断する。
【００４６】
マルチコア１０の処理負荷が閾値Ｂ未満ではない場合には（ステップＳ１０８においてＮＯ）、電子機器１００は、ステップＳ１０６の処理を繰り返す。すなわち、電子機器１００は、動作状態Ｂを維持する。これに対して、当該処理負荷が閾値Ｂ未満である場合には（ステップＳ１０８においてＹＥＳ）、電子機器１００は、動作状態Ｂから動作状態Ｃに遷移する（ステップＳ１１０）。具体的には、マルチコア１０は、例えば、コア１３を非アクティブにしてアクティブコアの数を２つに減らす。なお、マルチコア１０は、アクティブコアの数が１つになるようにしてもよい。
【００４７】
次に、電子機器１００は、マルチコア１０の処理負荷が所定の閾値Ｃ未満であるか否かを判断する（ステップＳ１１２）。具体的には、マルチコア１０は、アクティブコアの使用率および／または動作周波数に基づいて、当該判断を行なう。例えば、マルチコア１０は、アクティブコアの使用率が７０％未満、かつアクティブコアの動作周波数が９００ＭＨｚ未満である場合に処理負荷が閾値Ｃ未満であると判断する。
【００４８】
マルチコア１０の処理負荷が閾値Ｃ未満ではない場合には（ステップＳ１１２においてＮＯ）、電子機器１００は、ステップＳ１１０の処理を繰り返す。すなわち、電子機器１００は、動作状態Ｃを維持する。これに対して、当該処理負荷が閾値Ｃ未満である場合には（ステップＳ１１２においてＹＥＳ）、コントローラ５０のＲｅａｄ／Ｗｒｉｔｅバッファの使用率が所定の閾値Ｄ未満か否かを判断する（ステップＳ１１４）。具体的には、マルチコア１０は、コントローラ５０を監視して、当該バッファの使用率が２５％未満である状態が一定時間以上続くか否かを判断する。
【００４９】
当該バッファの使用率が閾値Ｄ未満ではない場合には（ステップＳ１１４においてＮＯ）、電子機器１００は、ステップＳ１１０の処理を繰り返す。すなわち、電子機器１００は、動作状態Ｃを維持する。これに対して、当該バッファの使用率が閾値Ｄ未満である場合には（ステップＳ１１４においてＹＥＳ）、電子機器１００は、ステップＳ１１６の処理に進む。上記のステップＳ１１２，Ｓ１１４の処理は、マルチコア１０がＳＤＲＡＭ６０へのアクセス要求が頻繁に起こらないタイミングを探すための処理である。
【００５０】
次に、電子機器１００は、コントローラ５０がアイドル状態か否かを判断する（ステップＳ１１６）。具体的には、マルチコア１０は、コントローラ５０のステータスレジスタを確認して、コントローラ５０がＳＤＲＡＭ６０へのＲｅａｄ／Ｗｒｉｔｅアクセスがない状態であるか否かを判断する。ステップＳ１１６の処理は、マルチコア１０がＳＤＲＡＭ６０をＤＰＤ状態に移行させるためのコマンド（以下「ＤＰＤコマンド」とも称する。）を当該ＳＤＲＡＭ６０に発行するためのタイミングを探すための処理である。
【００５１】
コントローラ５０がアイドル状態ではない場合には（ステップＳ１１６においてＮＯ）、電子機器１００は、ステップＳ１１６の処理を繰り返す。なお、上述したように、マルチコア１０は、一定の周期でコア１１，１２，１３，１４の動作周波数および使用率をモニタして、マルチコア１０全体の動作周波数およびアクティブコア数を管理している。具体的には、マルチコア１０は、ステップＳ１１０からステップＳ１１６の処理の間においても、常時コア１１、１２、１３、１４の動作周波数および使用率をモニタし、コア１１，１２，１３，１４の動作周波数およびアクティブコア数の制御を行なっている。そのため、たとえば、ステップＳ１１０からステップＳ１１６で”ＹＥＳ”の処理を行なうまでの間に、マルチコア１０の負荷が、閾値Ｂ以上になった場合には、電子機器１００は、再び動作状態Ｂ（ステップＳ１０６）に戻るものとする。
【００５２】
これに対して、コントローラ５０がアイドル状態である場合には（ステップＳ１１６においてＹＥＳ）、電子機器１００は、動作状態Ｃから動作状態Ａに遷移する（ステップＳ１１８）。具体的には、マルチコア１０は、コントローラ５０がアイドル状態中に、２ＧＢ分のＳＤＲＡＭ６０に対してＤＰＤコマンドを発行し、当該ＳＤＲＡＭ６０をＤＰＤ状態に移行させる。
【００５３】
次に、電子機器１００は、スタンバイ状態に移行する条件が成立したか否かを判断する（ステップＳ１２０）。具体的には、マルチコア１０は、一定時間内に入力装置４０を介してユーザからの指示を受け付けたか否かを判断する。マルチコア１０は、当該指示を一定時間内に受け付けていない場合にはスタンバイ状態に移行し、当該指示を一定時間内に受け付けた場合にはスタンバイ状態に移行しない。
【００５４】
当該条件が成立しない場合には（ステップＳ１２０においてＮＯ）、電子機器１００は、ステップＳ１２０の処理を繰り返す。これに対して、当該条件が成立した場合には（ステップＳ１２０においてＹＥＳ）、電子機器１００（マルチコア１０）は、スタンバイ状態に移行する（ステップＳ１２２）。
【００５５】
次に、電子機器１００は、スタンバイ状態を解除するか否かを判断する（ステップＳ１２４）。具体的には、マルチコア１０は、スタンバイ状態を解除する割り込みを検出したか否かを判断する。マルチコア１０は、当該割り込みを検出した場合にはスタンバイ状態を解除し、当該割り込みを検出していない場合にはスタンバイ状態を解除しない。割り込みの検出とは、例えば、通信回線網からの着信の検出やユーザによるキー操作を検出などである。
【００５６】
スタンバイ状態を解除しない場合には（ステップＳ１２４においてＮＯ）、電子機器１００は、ステップＳ１２４の処理を繰り返す。すなわち、電子機器１００（マルチコア１０）は、スタンバイ状態を維持する。これに対して、スタンバイ状態を解除する場合には（ステップＳ１２４においてＹＥＳ）、電子機器１００は、ステップＳ１０２からの処理を繰り返す。
【００５７】
上記では、ステップＳ１１２において、マルチコア１０の処理負荷が所定の閾値Ｃ未満か否かについて判断する場合について説明した。しかしながら、電子機器１００がマルチコア１０以外のバスマスタを含む構成である場合には、電子機器１００は、マルチコア１０を含む全てのバスマスタの処理負荷を考慮してもよい。具体的には、ステップＳ１１２に代えて、マルチコア１０は、（１）自身の処理負荷が閾値Ｃ未満であること、（２）他のバスマスタの各々の処理負荷が、各々のバスマスタに対して設定された閾値Ｃｘ未満であること、の（１）および（２）の条件を満たすか否かを判断する場合であってもよい。（１）および（２）の条件を満たす場合には、電子機器１００は、ステップＳ１１４の処理に進む。また、（１）および（２）の条件を満たさない場合には、電子機器１００は、ステップＳ１１２の処理を繰り返す。
【００５８】
［実施の形態２］
＜ハードウェア構成＞
図８は、実施の形態２に従う電子機器２００のハードウェア構成を示す模式図である。電子機器２００のハードウェア構成は、実施の形態１に従う電子機器１００のハードウェア構成にマルチコア２０を追加したものである。したがって、電子機器１００のハードウェア構成と同様の部分についてはその詳細な説明は繰り返さない。
【００５９】
マルチコア２０は、複数のコア２１〜２４を有している。具体的には、マルチコア２０は、マルチコア１０に搭載されているコア１１〜１４よりも低速な周波数でしか動作できないが（情報処理能力が低い）、コア１１〜１４よりも消費電力が小さいコアが４つ（コア２１〜２４）搭載されているマルチコアプロセッサである。マルチコア１０およびマルチコア２０は、個別に情報処理可能に構成されており、少なくともいずれか一方で電子機器２００の各部の動作を制御する。すなわち、マルチコア２０は、マルチコア１０と同様に、不揮発性メモリ３０、入力装置４０、コントローラ５０、ＳＤＲＡＭ６０、通信インターフェイス７０、およびディスプレイ８０を制御することができる。以下では、説明の容易化のため、少なくともコア２１はアクティブコアであるものとする。また、マルチコア２０は、ＣＰＵ動作周波数およびアクティブコア数の制御をするために、一定の周期でコア２１、２２、２３、２４の動作周波数および使用率をモニタして、マルチコア２０全体の動作周波数およびアクティブコア数を管理している。
【００６０】
＜動作状態＞
図９は、実施の形態２に従う電子機器２００が有する複数の動作状態を説明するための概念図である。なお、図９では、説明の容易化のため、マルチコア１０、マルチコア２０、コントローラ５０、およびＳＤＲＡＭ６０についてのみ図示している。また、各々のＳＤＲＡＭ６０の容量は、１ＧＢであるとする。
【００６１】
図９（ａ）に示される電子機器２００の動作状態は、マルチコア２０が、コントローラ５０Ａを介してＳＤＲＡＭ６０Ａを利用し、コントローラ５０Ｂを介してＳＤＲＡＭ６０Ｃを利用するとともに、電子機器２００の動作を制御している状態である（以下「動作状態Ａ１」とも称する。）。動作状態Ａ１では、ＳＤＲＡＭ６０Ｂ，６０Ｄは、ＤＰＤ状態に移行しているため、マルチコア２０は、２ＧＢ分のメモリ容量を利用できる。
【００６２】
図９（ｂ）に示される電子機器２００の動作状態は、マルチコア１０が、コントローラ５０Ａを介してＳＤＲＡＭ６０Ａ，６０Ｂを利用し、コントローラ５０Ｂを介してＳＤＲＡＭ６０Ｃ，６０Ｄを利用するとともに、電子機器２００の動作を制御している状態である（以下「動作状態Ｂ１」とも称する。）。動作状態Ｂ１では、ＤＰＤモード状態に移行しているＳＤＲＡＭ６０は存在しない。そのため、マルチコア１０は、ＳＤＲＡＭ６０全て（４ＧＢのメモリ容量）を利用することができる。
【００６３】
図９（ｃ）に示される電子機器２００の動作状態は、マルチコア２０が、コントローラ５０Ａを介してＳＤＲＡＭ６０Ａ，６０Ｂを利用し、コントローラ５０Ｂを介してＳＤＲＡＭ６０Ｃ，６０Ｄを利用するとともに、電子機器２００の全体の動作を制御している状態である（以下「動作状態Ｃ１」とも称する。）。動作状態Ｃ１では、動作状態Ｂ１と同様にＤＰＤ状態に移行しているＳＤＲＡＭ６０は存在しない。そのため、マルチコア２０は、ＳＤＲＡＭ６０全て（４ＧＢのメモリ容量）を利用することができる。
【００６４】
以上から、動作状態Ａ１〜Ｃ１のうち、電子機器２００の消費電力が最も小さい動作状態は、マルチコア１０よりも消費電力の小さいマルチコア２０が２ＧＢ分のＳＤＲＡＭ６０を利用可能（残りの２ＧＢはＤＰＤ状態）な動作状態Ａ１となる。すなわち、動作状態Ａ１は、電子機器２００における省電力モード状態である。また、電子機器２００の消費電力が最も大きい動作状態は、消費電力の大きいマルチコア１０が４ＧＢ分のＳＤＲＡＭ６０を利用可能（ＤＰＤ状態のＳＤＲＡＭ６０はなし）な動作状態Ｂ１となる。なお、動作状態Ｃ１での電子機器２００の消費電力は、動作状態Ｂ１での当該消費電力よりも小さく、動作状態Ａ１での当該消費電力よりも大きい。
【００６５】
電子機器２００は、マルチコア１０およびマルチコア２０の処理負荷などに応じて上記の複数の動作状態を変更するように構成されている。例えば、プロセッサの処理負荷が大きいアプリケーションを利用する場合には、消費電力は大きいが情報処理能力は最も高い動作状態Ｂ１となり、プロセッサの処理負荷が小さいアプリケーションを利用する場合には、消費電力が最も小さい動作状態Ａ１となる。動作状態Ｃ１は、所定の条件に基づいて動作状態Ｂ１から動作状態Ａ１に移行する際の仲介的な役割を果たす動作状態である。
【００６６】
なお、動作状態Ａ１は、マルチコア２０が２ＧＢ分のＳＤＲＡＭ６０を利用可能な状態であればよく、図９（ａ）に示されるような例に限られない。例えば、動作状態Ａ１は、マルチコア２０がコントローラ５０Ａを介してＳＤＲＡＭ６０Ａ，６０Ｂを利用し、電子機器２００の全体の動作を制御する場合であってもよいし、マルチコア２０がコントローラ５０Ｂを介してＳＤＲＡＭ６０Ｃ，６０Ｄを利用し、電子機器２００の全体の動作を制御する場合であってもよい。
【００６７】
＜消費電力の低減効果＞
図１０は、実施の形態２に従う電子機器２００の動作状態Ａ１（省電力モード）での消費電力の低減効果について説明するためのタイミング図である。具体的には、図１０（ａ）は、比較例に従う電子機器のマルチコアの動作、メモリ容量の変化、および消費電力の変化を時系列で示す図である。図１０（ｂ）は、実施の形態２に従う電子機器２００のマルチコア２０の動作、メモリ容量の変化、および消費電力の変化を時系列で示す図である。なお、比較例に従うマルチコアの性能と、マルチコア２０の性能とは同様であるとする。基本的には、動作状態Ａ１での消費電力の低減効果は、実施の形態１において説明した動作状態Ａでの消費電力の低減効果と同様に考えることができる。
【００６８】
図１０（ａ）を参照すると、比較例に従うマルチコアは、スタンバイ状態とアクティブ状態とを切り替えるごとにメモリ容量を変化させていることがわかる。すなわち、比較例に従うマルチコアは、アクティブ状態のときには４ＧＢ分のメモリを利用し、スタンバイ状態のときには２ＧＢ分のメモリを利用するとともに、残りの２ＧＢ分のメモリをＤＰＤ状態に移行させている。
【００６９】
これに対して、図１０（ｂ）を参照すると、実施の形態２に従うマルチコア２０は、省電力モード（動作状態Ａ１）において、スタンバイ状態またはアクティブ状態に関わらず、２ＧＢ分のメモリを利用し、残りの２ＧＢ分のメモリのＤＰＤ状態を維持している。そのため、実施の形態２に従うマルチコア２０の方が、比較例に従うマルチコアよりもＴ１＋Ｔ２の処理時間分の消費電流を低減することができる。
【００７０】
上述したように、スマートフォンなどの電子機器においては、２〜３秒ごとに基地局などと通信を行なっていることから、マルチコアがスタンバイ状態およびアクティブ状態を頻繁に繰り返すことになる。そのため、スタンバイ状態／アクティブ状態が切り替わるごとに、メモリ容量を切り替える比較例に従うマルチコアの電子機器に比べて、スタンバイ状態またはアクティブ状態に関わらずメモリ容量を切り替えないマルチコア２０を搭載した電子機器２００は、全体として消費電力を低減することができる。
【００７１】
なお、電子機器２００においても、動作状態Ａ１と動作状態Ｂ１との間で遷移するときに、メモリ容量を切り替えるものの、ユーザが意図的に行なわない限りスタンバイ状態から動作状態Ｂ１に遷移することはない。少なくとも基地局との通信によりスタンバイ状態から動作状態Ｂ１に遷移することはない。そのため、電子機器２００は、比較例に従うマルチコアを搭載した電子機器と比較して、低消費電力化を実現することが可能となる。
【００７２】
上記のように、電子機器２００は、動作状態Ａ１では、マルチコア２０がアクティブ状態であっても、利用可能なメモリ容量は２ＧＢとなる。動作状態Ａ１は、プロセッサの処理能力が求められない状況での動作状態であるため、アクティブ状態またはスタンバイ状態に関わらずメモリ容量を２ＧＢに維持することによるデメリットは小さく、消費電力を低減できるメリットの方が大きい。
【００７３】
＜動作状態の遷移＞
図１１は、実施の形態２に従う電子機器２００の動作状態の遷移を説明するためのタイミング図である。図１１を参照して、電子機器２００が動作状態Ａ１から動作状態Ｂ１に遷移する場面について説明する。動作状態Ａ１において、電子機器２００は、マルチコア２０の処理負荷が所定の閾値Ａ１以上（例えば、コア２１〜２４が最大周波数で動作し、コア２１の使用率が９０％以上）になった場合には、高パフォーマンスの動作状態Ｂ１に遷移を開始する。具体的には、マルチコア２０は、電子機器２００の動作制御をマルチコア１０に切り替える。プロセッサの切り替え方法の一例としては、big.Littleシステムなどで種類の異なるプロセッサの切替に用いられるTask Migration機能などが挙げられる。詳細には、マルチコア２０は、マルチコア２０の代わりにマルチコア１０に電子機器２００の動作を制御させるための起動情報をマルチコア１０に送信することでマルチコア１０を起動する。当該起動情報を受信したマルチコア１０が起動すると、マルチコア２０はプロセッサ状態を２次キャッシュに完全に保存する。そして、マルチコア１０が当該プロセッサ状態を読み込んで状態を復帰させ、マルチコア２０が実行中であった処理を継続する。このとき、マルチコア１０および２０の両方の２次キャッシュは、同一性が保たれるようにコピーが行なわれ、同一性が保たれたのち、マルチコア２０は、キャッシュをクリアして、自身の電源をＯＦＦにする。
【００７４】
そして、マルチコア１０は、電子機器２００の動作制御を開始し、ＤＰＤ状態に移行している２ＧＢ分のＳＤＲＡＭ６０を通常状態に復帰させる。すなわち、電子機器２００は、マルチコア１０が４ＧＢ分のＳＤＲＡＭ６０を利用し、電子機器２００の動作を制御する動作状態Ｂ１に遷移する。なお、動作状態Ａ１から動作状態Ｂ１への遷移過程において、マルチコア１０が２ＧＢ分のＳＤＲＡＭ６０を利用し、電子機器２００の動作制御を行なう動作状態Ｄ１が一時的に生じる。
【００７５】
次に、電子機器２００が動作状態Ｂ１から動作状態Ａ１に遷移する場面について説明する。動作状態Ｂ１において、電子機器２００は、マルチコア１０の処理負荷が所定の閾値Ｂ１未満（例えば、アクティブコアがコア１１のみであり、コア１１が最低周波数で動作し、コア１１の使用率が２０％未満）になった場合には、低パフォーマンスの動作状態Ａ１に遷移を開始する。上述した切替方法によって、電子機器２００の動作制御は、マルチコア１０からマルチコア２０に切り替わる。マルチコア２０は、電子機器２００の動作制御を開始し、動作状態Ｂ１から動作状態Ｃ１に遷移する。
【００７６】
そして、マルチコア２０は、所定の条件を満たすと、利用可能な４ＧＢ分のＳＤＲＡＭ６０のうち２ＧＢ分のＳＤＲＡＭ６０をＤＰＤ状態に移行させる。例えば、マルチコア２０は、自身の処理負荷が所定の閾値Ｃ１未満（例えば、コア２１が低速周波数で動作し、コア２１の使用率が９０％未満、かつコア２１以外のアクティブコアが１つ以下である）と判断した場合に、コントローラ５０の状態に基づいて、２ＧＢ分のＳＤＲＡＭ６０をＤＰＤ状態に移行させる。詳細には、マルチコア２０は、自身の処理負荷が閾値Ｃ１未満と判断した場合であって、かつ、コントローラ５０のステータスレジスタに基づいて、コントローラ５０がアイドル状態であると判断した場合に、２ＧＢ分のＳＤＲＡＭ６０をＤＰＤ状態に移行させる。このように、電子機器２００は、動作状態Ｃ１から、動作状態Ａ１に遷移する。
【００７７】
次に、実施の形態２に従う電子機器２００の動作状態の別の遷移例について説明する。図１２は、実施の形態２に従う電子機器２００の動作状態の遷移を説明するための別のタイミング図である。図１２を参照して、電子機器２００が動作状態Ａ１から動作状態Ｂ１に遷移する場面、動作状態Ｂ１から動作状態Ｃ１に遷移する場面については、図１１の例と同様であるためその詳細な説明は繰り返さない。
【００７８】
図１２に示されるように、動作状態Ｃ１から動作状態Ａ１に遷移する場面において、図１１のタイミング図と比較して、２ＧＢ分のＳＤＲＡＭ６０をＤＰＤ状態に移行させる処理を開始してから、当該処理が完了するまでの時間が長い。これは、マルチコア２０が、自身を含む全てのバスマスタの処理負荷を確認するためである。
【００７９】
具体的には、マルチコア２０は、自身を含む他の全てのバスマスタの処理負荷が、各々のバスマスタに対して最適化された所定の閾値未満であると判断した場合に、コントローラ５０の状態に基づいて、２ＧＢ分のＳＤＲＡＭ６０をＤＰＤ状態に移行させる。詳細には、マルチコア２０は、（１）マルチコア２０の処理負荷が閾値Ｃ１未満であること、（２）他のバスマスタの各々の処理負荷が各々のバスマスタに用意された閾値Ｃ１ｘ未満であること、の（１）および（２）の条件を満たすか否かを判断する。そして、マルチコア２０は、（１）および（２）の条件を満たし、かつ、コントローラ５０のステータスレジスタに基づいて、コントローラ５０がアイドル状態であると判断した場合に、２ＧＢ分のＳＤＲＡＭ６０をＤＰＤ状態に移行させる。このようにして、電子機器２００は、動作状態Ｃ１から動作状態Ａ１に遷移する。
【００８０】
＜処理手順＞
図１３は、実施の形態２に従う電子機器２００のＳＤＲＡＭ容量の制御処理を示すフローチャートである。以下の各ステップは、基本的に、マルチコア１０およびマルチコア２０が不揮発性メモリ３０に格納されたプログラムを実行することによって実現される。
【００８１】
図１３を参照して、電子機器２００は、動作状態Ａ１を維持しているときに（ステップＳ２０２）、マルチコア２０の処理負荷が所定の閾値Ａ１以上か否かを判断する（ステップＳ２０４）。具体的には、マルチコア２０が、アクティブコアの数、コア２１〜２４の使用率、および動作周波数の少なくともいずれかに基づいて、当該判断を行なう。例えば、マルチコア２０は、コア２１の使用率が９０％以上、かつコア２１〜２４が動作可能な最大の周波数で動作している場合に、処理負荷が閾値Ａ１以上であると判断する。
【００８２】
マルチコア２０の処理負荷が閾値Ａ１以上ではない場合には（ステップＳ２０４においてＮＯ）、電子機器２００は、ステップＳ２０２からの処理を繰り返す。これに対して、当該処理負荷が閾値Ａ１以上である場合には（ステップＳ２０４においてＹＥＳ）、電子機器２００は、動作状態Ａ１から動作状態Ｂ１に遷移する（ステップＳ２０６）。具体的には、上述した切替方法によって、電子機器２００の動作制御は、マルチコア２０からマルチコア１０に切り替わり、マルチコア１０は、電子機器２００の動作制御を開始し、ＤＰＤ状態に移行している２ＧＢ分のＳＤＲＡＭ６０を通常状態に復帰させる。
【００８３】
次に、電子機器２００は、マルチコア１０の処理負荷が所定の閾値Ｂ１未満か否かを判断する（ステップＳ２０８）。具体的には、マルチコア１０が、アクティブコアの数、コア１１〜１４の使用率、および動作周波数の少なくともいずれかに基づいて、当該判断を行なう。例えば、マルチコア１０は、コア１１のみが動作し、コア１１の使用率が２０％未満、かつ、コア１１の動作周波数が動作可能な最低の周波数で動作している場合に、処理負荷が閾値Ｂ１未満であると判断する。
【００８４】
マルチコア１０の処理負荷が閾値Ｂ１未満ではない場合には（ステップＳ２０８においてＮＯ）、電子機器２００は、ステップＳ２０６からの処理を繰り返す。これに対して、当該処理負荷が閾値Ｂ１未満である場合には（ステップＳ２０８においてＹＥＳ）、電子機器２００は、動作状態Ｂ１から動作状態Ｃ１に遷移する（ステップＳ２１０）。具体的には、上述した切替方法によって、電子機器２００の動作制御は、マルチコア１０からマルチコア２０に切り替わる。
【００８５】
次に、電子機器２００は、マルチコア２０の処理負荷が所定の閾値Ｃ１未満であるか否かを判断する（ステップＳ２１２）。具体的には、マルチコア２０は、アクティブコアの数、コア２１〜２４の使用率、およびコア２１〜２４の動作周波数の少なくともいずれかに基づいて、当該判断を行なう。例えば、マルチコア２０は、コア２１が最低周波数で動作し、コア２１の使用率が９０％未満で、コア２１以外のアクティブコアが１つ以下であるか否かを判断する。
【００８６】
マルチコア２０の処理負荷が閾値Ｃ１未満ではない場合には（ステップＳ２１２においてＮＯ）、電子機器２００は、ステップＳ２１０からの処理を繰り返す。これに対して、当該処理負荷が閾値Ｃ１未満である場合には（ステップＳ２１２においてＹＥＳ）、コントローラ５０のＲｅａｄ／Ｗｒｉｔｅバッファの使用率が所定の閾値Ｄ１未満か否かを判断する（ステップＳ２１４）。具体的には、マルチコア２０は、コントローラ５０を監視して、当該バッファの使用率が２５％未満である状態が一定時間以上続くか否かを判断する。
【００８７】
当該バッファの使用率が閾値Ｄ１未満ではない場合には（ステップＳ２１４においてＮＯ）、電子機器２００は、ステップＳ２１０からの処理を繰り返す。これに対して、当該バッファの使用率が閾値Ｄ１未満である場合には（ステップＳ２１４においてＹＥＳ）、電子機器２００は、ステップＳ２１６の処理に進む。上記のステップＳ２１２およびステップＳ２１４の処理は、マルチコア２０がＳＤＲＡＭ６０へのアクセス要求が頻繁に起こらないタイミングを探すための処理である。
【００８８】
マルチコア２０が実行するステップＳ２１６〜Ｓ２２４の処理は、マルチコア１０が実行するステップＳ１１６〜Ｓ１２４の処理（図７）と主体が異なるだけで基本的には同様の処理である。そのため、以下簡単に説明する。
【００８９】
電子機器２００（マルチコア２０）は、コントローラ５０のステータスレジスタを確認して、コントローラ５０がアイドル状態か否かを判断する（ステップＳ２１６）。コントローラ５０がアイドル状態ではない場合には（ステップＳ２１６においてＮＯ）、電子機器２００は、ステップＳ２１６の処理を繰り返す。なお、上述したように、マルチコア２０は、一定の周期でコア２１，２２，２３，２４の動作周波数および使用率をモニタして、マルチコア２０全体の動作周波数およびアクティブコア数を管理している。具体的には、マルチコア２０は、ステップＳ２１０からステップＳ２１６の処理の間においても、常時コア２１，２２，２３，２４の動作周波数および使用率をモニタし、コア２１，２２，２３，２４の動作周波数およびアクティブコア数の制御を行なっている。そのため、たとえば、ステップＳ２１０からＳ２１６で”ＹＥＳ”の処理を行なうまでの間に、マルチコア２０の負荷が、閾値Ａ１以上になった場合は、電子機器２００は、再び、マルチコア１０において動作制御が行なわれる動作状態Ｂ１（ステップＳ２０６）へ戻るものとする。
【００９０】
これに対して、アイドル状態である場合には（ステップＳ２１６においてＹＥＳ）、電子機器２００は、動作状態Ｃ１から動作状態Ａ１に遷移する（ステップＳ２１８）。続いて、電子機器２００は、スタンバイ条件が成立したか否かを判断する（ステップＳ２２０）。スタンバイ条件が成立しない場合には（ステップＳ２２０においてＮＯ）、電子機器２００は、ステップＳ２２０からの処理を繰り返す。これに対して、スタンバイ状態が成立した場合には（ステップＳ２２０においてＹＥＳ）、電子機器２００は、スタンバイ状態に移行する（ステップＳ２２２）。続いて、電子機器２００は、スタンバイ状態を解除するか否かを判断する（ステップＳ２２４）。スタンバイ状態を解除しない場合には（ステップＳ２２４においてＮＯ）、電子機器２００は、ステップＳ２２４からの処理を繰り返す。これに対して、スタンバイ状態を解除する場合には（ステップＳ２２４においてＹＥＳ）、電子機器２００は、ステップＳ２０２からの処理を繰り返す。
【００９１】
上記において、実施の形態１と同様に、電子機器２００は、マルチコア２０を含む全てのバスマスタの処理負荷を考慮してもよい。この場合、ステップＳ２１２に代えて、マルチコア２０は、（１）マルチコア２０の処理負荷が閾値Ｃ１未満であること、（２）他のバスマスタの各々の処理負荷が各々のバスマスタに用意された閾値Ｃ１ｘ未満であること、の（１）および（２）の条件を満たすか否かを判断してもよい。当該条件を満たす場合には、電子機器１００は、ステップＳ２１４の処理に進む。また、当該条件を満たさない場合には、電子機器１００は、ステップＳ２１２の処理を繰り返す。
【００９２】
［その他の実施の形態］
本実施形態では、複数のＳＤＲＡＭの容量が全て１ＧＢである場合について説明したが、これに限られない。例えば、各々のＳＤＲＡＭの容量が互いに異なる場合であってもよいし、その個数も２つ以上であれば４つに限られない。
【００９３】
本実施形態では、２つのＳＤＲＡＭコントローラにそれぞれ２つのＳＤＲＡＭが接続されている場合について説明したがこれに限られない。例えば、１つのＳＤＲＡＭコントローラに全てのＳＤＲＡＭが接続されている場合であってもよいし、１つのＳＤＲＡＭコントローラに１つのＳＤＲＡＭが接続されている場合であってもよい。
【００９４】
本実施形態では、全体のメモリ容量のうち半分のメモリ容量をＤＰＤ状態に移行させる場合について説明したがこれに限られない。例えば、４ＧＢ分のメモリ容量のうち１ＧＢ分のメモリ容量、あるいは３ＧＢ分のメモリ容量をＤＰＤ状態に移行させてもよい。すなわち、複数のＳＤＲＡＭのうち所定の数のＳＤＲＡＭをＤＰＤ状態に移行させる場合であればよい。
【００９５】
本実施形態では、電子機器がマルチコアプロセッサを搭載している場合について説明したが、シングルコアプロセッサであってもよい。この場合、上述した閾値の判断基準においてアクティブコア数は考慮されず、シングルコアの使用率および／または動作周波数が判断基準となる。なお、上述した閾値は、本例に限られずユーザあるいは開発者によって適切な範囲で任意に定めることができる。
【００９６】
本実施形態では、ＳＤＲＡＭの停止状態がＤＰＤ状態である場合について説明したが、当該停止状態は、パーシャルリフレッシュ状態であってもよい。
【００９７】
なお、コンピュータを機能させて、上述したフローチャートで説明したような制御を実行させるプログラムを提供することもできる。このようなプログラムは、コンピュータに付属するフレキシブルディスク、ＣＤ−ＲＯＭ、ＲＯＭ、ＲＡＭおよびメモリカードなどの一時的でないコンピュータ読取り可能な記録媒体にて記録させて、プログラム製品として提供することもできる。あるいは、コンピュータに内蔵するハードディスクなどの記録媒体にて記録させて、プログラムを提供することもできる。また、ネットワークを介したダウンロードによって、プログラムを提供することもできる。
【００９８】
プログラムは、コンピュータのオペレーティングシステム（ＯＳ）の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずＯＳと協働して処理が実行される。このようなモジュールを含まないプログラムも、本実施の形態にかかるプログラムに含まれ得る。
【００９９】
また、本実施の形態に従うプログラムは他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本実施の形態にかかるプログラムに含まれ得る。
【０１００】
＜実施の形態の効果＞
本実施の形態によると、プロセッサの処理負荷に応じて、利用するプロセッサあるいはメモリ容量が適宜変更される。すなわち、本実施の形態に従う電子機器は、プロセッサの処理負荷が小さく、プロセッサの処理能力およびメモリ容量が比較的小さくてもユーザが体感するパフォーマンス低下が小さい場合には、消費電力をできるだけ削減し、プロセッサの処理負荷が大きい場合には、プロセッサの処理能力およびメモリ容量を最大限に生かすように動作する。そのため、本実施の形態に従う電子機器は、ユーザの使用状況に応じて適切に消費電力を低減することが可能となる。
【０１０１】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１０２】
１０，２０  マルチコアプロセッサ、３０  不揮発性メモリ、４０  入力装置、５０Ａ，５０Ｂ  ＳＤＲＡＭコントローラ、６０Ａ，６０Ｂ，６０Ｃ，６０Ｄ  ＳＤＲＡＭ、７０  通信インターフェイス、８０  ディスプレイ、１００，２００  電子機器。
【図１】
2014186478.tif 000003
【図２】
2014186478.tif 000004
【図３】
2014186478.tif 000005
【図４】
2014186478.tif 000006
【図５】
2014186478.tif 000007
【図６】
2014186478.tif 000008
【図７】
2014186478.tif 000009
【図８】
2014186478.tif 000010
【図９】
2014186478.tif 000011
【図１０】
2014186478.tif 000012
【図１１】
2014186478.tif 000013
【図１２】
2014186478.tif 000014
【図１３】
2014186478.tif 000015