(57)【特許請求の範囲】
【請求項１】
マルチコアプロセッサを有する装置に対する一の操作の検出から次の操作の検出までの経過時間帯別の経過時間に基づき算出される、前記経過時間帯別の次の操作の発生頻度を、前記次の操作の検出日時に応じた検出時間帯に対応して、前記経過時間帯別に記憶する記憶手段と、
前記一の操作の検出から前記次の操作の検出までの経過時間と前記次の操作の検出時刻により、前記次の操作の検出時点が含まれる前記検出時間帯に対応する経過時間帯を特定して前記発生頻度を更新する更新手段と、
現在の時刻が含まれる検出時間帯が変化した場合に、前記現在の時刻が含まれる検出時間帯に対応する経過時間帯であって、前記更新手段による更新後の発生頻度が第１特定しきい値以下で、かつ、前記現在の時刻が含まれる検出時間帯が変化する直前の操作から最初に到来する経過時間帯を前記記憶手段から特定する特定手段と、
前記特定手段により特定された経過時間帯経過より後の発生頻度の累計が第２特定しきい値以上になるまでの経過時間帯が所定時間間隔以下である場合に、前記マルチコアプロセッサへ電力を供給する電力供給モードを前記マルチコアプロセッサのうち少なくとも２以上のコアに電力供給する第１の電力供給モードに設定し、前記第２特定しきい値以上になるまでの経過時間帯が前記所定時間間隔より大きい場合に、前記電力供給モードを前記第１の電力供給モードから前記第１の電力供給モードよりも電力供給されるコアの数が少ない第２の電力供給モードに設定する設定手段と、
を備えることを特徴とするマルチコアプロセッサシステム。
【請求項２】
前記設定手段は、
前記一の操作があらたに検出された場合、前記電力供給モードを前記第１の電力供給モードに設定し、前記一の操作があらたに検出されてからの経過時間が前記特定手段によって特定された経過時間帯を経過した場合、前記電力供給モードを前記第２の電力供給モードに設定することを特徴とする請求項１に記載のマルチコアプロセッサシステム。
【請求項３】
マルチコアプロセッサを有する装置に対する着信の検出から操作の検出までの経過時間を時間帯別にした前記操作の発生頻度を記憶する記憶手段と、
前記着信の検出から前記操作の検出までの経過時間により、前記操作の検出時点が含まれる時間帯を特定して前記発生頻度を更新する更新手段と、
前記着信の検出から特定時間の経過時までの前記更新手段による更新後の発生頻度の合計値を算出する算出手段と、
前記算出手段により算出された合計値が特定しきい値以上であるか否かを判断する判断手段と、
前記着信があらたに検出され、かつ前記判断手段により前記合計値が前記特定しきい値以上であると判断された場合、前記マルチコアプロセッサへ電力を供給する電力供給モードを、前記マルチコアプロセッサのうち少なくとも２以上のコアに電力供給する第１の電力供給モードと、前記第１の電力供給モードよりも電力供給されるコアの数が少ない第２の電力供給モードと、のうち、前記第１の電力供給モードに設定し、前記着信があらたに検出され、かつ前記判断手段により前記合計値が前記特定しきい値以上でないと判断された場合、前記電力供給モードを変更しない設定手段と、
を備えることを特徴とするマルチコアプロセッサシステム。
【請求項４】
マルチコアプロセッサのうちの一のコアに、
前記マルチコアプロセッサを有する装置に対する一の操作の検出から次の操作の検出までの経過時間帯別の経過時間に基づき算出される、前記経過時間帯別の次の操作の発生頻度を、前記次の操作の検出日時に応じた検出時間帯に対応して、前記経過時間帯別に記憶する記憶工程と、
前記一の操作の検出から前記次の操作の検出までの経過時間と前記次の操作の検出時刻により、前記次の操作の検出時点が含まれる前記検出時間帯に対応する経過時間帯を特定して前記発生頻度を更新する更新工程と、
現在の時刻が含まれる検出時間帯が変化した場合に、前記現在の時刻が含まれる検出時間帯に対応する経過時間帯であって、前記更新工程による更新後の発生頻度が第１特定しきい値以下で、かつ、前記現在の時刻が含まれる検出時間帯が変化する直前の操作から最初に到来する経過時間帯を前記記憶工程から特定する特定工程と、
前記特定工程により特定された経過時間帯経過より後の発生頻度の累計が第２特定しきい値以上になるまでの経過時間帯が所定時間間隔以下である場合に、電力供給モードを前記マルチコアプロセッサのうち少なくとも２以上のコアに電力供給する第１の電力供給モードに設定し、前記第２特定しきい値以上になるまでの経過時間帯が前記所定時間間隔より大きい場合に、前記電力供給モードを前記第１の電力供給モードから前記第１の電力供給モードよりも電力供給されるコアの数が少ない第２の電力供給モードに設定する設定工程と、
を実行させることを特徴とする制御プログラム。
【請求項５】
マルチコアプロセッサのうちの一のコアが、
前記マルチコアプロセッサを有する装置に対する一の操作の検出から次の操作の検出までの経過時間帯別の経過時間に基づき算出される、前記経過時間帯別の次の操作の発生頻度を、前記次の操作の検出日時に応じた検出時間帯に対応して、前記経過時間帯別に記憶する記憶工程と、
前記一の操作の検出から前記次の操作の検出までの経過時間と前記次の操作の検出時刻により、前記次の操作の検出時点が含まれる前記検出時間帯に対応する経過時間帯を特定して前記発生頻度を更新する更新工程と、
現在の時刻が含まれる検出時間帯が変化した場合に、前記現在の時刻が含まれる検出時間帯に対応する経過時間帯であって、前記更新工程による更新後の発生頻度が第１特定しきい値以下で、かつ、前記現在の時刻が含まれる検出時間帯が変化する直前の操作から最初に到来する経過時間帯を前記記憶工程から特定する特定工程と、
前記特定工程により特定された経過時間帯経過より後の発生頻度の累計が第２特定しきい値以上になるまでの経過時間帯が所定時間間隔以下である場合に、電力供給モードを前記マルチコアプロセッサのうち少なくとも２以上のコアに電力供給する第１の電力供給モードに設定し、前記第２特定しきい値以上になるまでの経過時間帯が前記所定時間間隔より大きい場合に、前記電力供給モードを前記第１の電力供給モードから前記第１の電力供給モードよりも電力供給されるコアの数が少ない第２の電力供給モードに設定する設定工程と、
を実行することを特徴とする制御方法。
【請求項６】
マルチコアプロセッサの第１の処理の実行から第２の処理の実行までの経過時間に対応して、前記第２の処理の発生頻度を記憶する記憶手段と、
前記第２の処理を検出した場合に、前記第１の処理の実行から前記第２の処理の実行までの経過時間に対応して、前記記憶手段に記憶した前記発生頻度を更新する更新手段と、
前記発生頻度が特定しきい値以下である、前記第１の処理の検出から前記第２の処理の検出までの経過時間の最小値を前記記憶手段から特定する特定手段と、
特定した前記経過時間の最小値に基づいて、前記マルチコアプロセッサへ電力を供給する電力供給モードを切り替える設定手段と、
を備えることを特徴とするマルチコアプロセッサシステム。
【請求項７】
複数のプロセッサコアを有するマルチコアプロセッサと前記マルチコアプロセッサに電気的に接続された記憶部とを有するマルチコアプロセッサシステムの制御方法であって、
前記マルチコアプロセッサの第１の処理の実行から第２の処理の実行までの経過時間に対応して、前記第２の処理の発生頻度を前記記憶部に書き込み、
前記第２の処理を検出した場合に、前記第１の処理の実行から前記第２の処理の実行までの経過時間に対応して、前記記憶部に書き込んだ前記発生頻度を更新し、
前記発生頻度が特定しきい値以下である、前記第１の処理の検出から前記第２の処理の検出までの経過時間の最小値を前記記憶部から読み出し、
読み出した前記経過時間の最小値に基づいて、前記マルチコアプロセッサへ電力を供給する電力供給モードを切り替える、
ことを特徴とするマルチコアプロセッサシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電力供給モードの切り替えを制御するマルチコアプロセッサシステム、制御プログラム、および制御方法に関する。
【背景技術】
【０００２】
従来、シングルコアプロセッサシステムにおいて、低消費電力化技術として夜間に動作モードを低消費電力モードとして設定し、低消費電力モード時にはクロックを低い状態で動作させていた。そして、たとえば、プリンタであれば時刻指定印刷のようなプリントジョブを夜間に実行する際には、動作モードを低消費電力モードのままで実行させる技術（以下、「従来技術１」）が知られている（たとえば、下記特許文献１を参照。）。【０００３】
また、従来、マルチコアプロセッサシステムでは、一つのアプリケーションソフトウェアで行う処理を複数に分割して複数のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）で並列に該処理を行うことにより、処理性能を向上させることができる。したがって、該アプリケーションソフトウェアの処理時間を高速化させることができる。【０００４】
また、マルチコアプロセッサシステムでは、ある処理を複数のＣＰＵで並列化処理させた場合、ある処理を１ＣＰＵのみで実行させた場合よりも消費電力が大きい。電力を消費しても性能が求められる場合には、複数のＣＰＵを利用して並列処理を行った方がよい。一方、処理時間の高速化などの処理性能が求められない場合には、複数のＣＰＵを搭載していたとして、あえて利用するＣＰＵの数を減らし、利用しないＣＰＵの電源を落とすことで消費電力量を削減することができる。【０００５】
また、携帯電話では、通話やメールやブラウザといった利用者が自ら起動した処理とは別に、装置のソフトウェアの更新やシステムのセルフチェックのようなバックグラウンドで自動的に起動される処理も実行される。近年では携帯電話システムの複雑化に伴い、該バックグラウンドで自動的に起動される処理の処理量が増加している。しかしながら、該バックグラウンドで実行される処理は急いで処理を行う必要が無いものが多い。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−８６８４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、プリンタの場合と異なり携帯電話では全ての利用者が夜間に装置を利用しないとも限らず、利用者のライフスタイルによっては利用者が夜間頻繁に装置を利用することもある。よって、夜間など固定された時間帯に利用するＣＰＵの数を減らしてしまうと、該時間帯に利用者が操作を頻繁に行った場合、利用者が行いたい処理の性能が低下してしまうという問題点があった。【０００８】
また、日中であっても利用者によっては装置を利用しないこともあるため、日中にＣＰＵの数を常に多い状態で動作させてしまうと、不要な電力を消費してしまう問題点があった。【０００９】
本発明は、上述した従来技術による問題点を解消するため、利用者が行いたい処理の性能を低下させることなく低消費電力化を図ることができるマルチコアプロセッサシステム、制御プログラム、および制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本実施の形態の一観点によれば、マルチコアプロセッサを有する装置に対する一の操作の検出から次の操作の検出までの経過時間を時間帯別にした前記次の操作の発生頻度を記憶する記憶手段と、前記一の操作の検出から前記次の操作の検出までの経過時間により、前記次の操作の検出時点が含まれる時間帯を特定して前記発生頻度を更新する更新手段と、前記更新手段による更新後の発生頻度が特定しきい値以下で、かつ、前記一の操作から最初に到来する時間帯を前記記憶手段から特定する特定手段と、前記更新後の発生頻度に基づいて、前記マルチコアプロセッサへ電力を供給する電力供給モードを切り替える設定手段と、を備えるマルチコアプロセッサシステムが提供される。
【発明の効果】
【００１１】
本マルチコアプロセッサシステム、制御プログラム、および制御方法によれば、利用者が行いたい処理の性能を低下させることなく低消費電力化を図ることができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】本実施の形態にかかるマルチコアプロセッサシステムのハードウェアを示すブロック図である。
【図２】履歴情報２００の一例を示す説明図である。
【図３】操作に関する集計結果群３００の一例を示す説明図である。
【図４】着信後の操作に関する集計結果群４００の一例を示す説明図である。
【図５】学習情報５００の一例を示す説明図である。
【図６】操作に関する解析結果の一例を示す説明図である。
【図７】着信後の操作パターンの集計結果の一例を示す説明図である。
【図８】ＯＳ１２１を示すブロック図である。
【図９】ＯＳ１２１による制御処理手順の一例を示すフローチャートである。
【図１０】図９で示した操作に関する解析処理（ステップＳ９０４）の詳細な説明を示すフローチャート（その１）である。
【図１１】図９で示した操作に関する解析処理（ステップＳ９０４）の詳細な説明を示すフローチャート（その２）である。
【図１２】操作に関する情報の抽出結果の一例を示す説明図である。
【図１３】図９で示した着信後の操作に関する解析処理（ステップＳ９０５）の詳細な説明を示すフローチャート（その１）である。
【図１４】図９で示した着信後の操作に関する解析処理（ステップＳ９０５）の詳細な説明を示すフローチャート（その２）である。
【図１５】図９で示した時間帯変化時の電力供給モード決定処理（ステップＳ９０６）の詳細な説明を示すフローチャートである。
【図１６】図９で示した着信時の電力供給モード決定処理（ステップＳ９０９）の詳細な説明を示すフローチャートである。
【図１７】図９で示した操作時の電力供給モード決定処理（ステップＳ９１０）の詳細な説明を示すフローチャートである。
【図１８】ＯＳ１２１によるΔｔｃ経過時の制御処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下に添付図面を参照して、マルチコアプロセッサシステム、制御プログラム、および制御方法の好適な実施の形態を詳細に説明する。なお、本実施の形態のマルチコアプロセッサシステムにおいて、マルチコアプロセッサとは、コアが複数搭載されたプロセッサである。コアが複数搭載されていれば、複数のコアが搭載された単一のプロセッサでもよく、シングルコアのプロセッサが並列されているプロセッサ群でもよい。なお、本実施の形態では、説明を単純化するため、シングルコアのプロセッサが並列されているプロセッサ群を例に挙げて説明する。
【００１４】
（マルチコアプロセッサシステム）
図１は、本実施の形態にかかるマルチコアプロセッサシステムのハードウェアを示すブロック図である。図１において、携帯電話１０１が有しているマルチコアプロセッサシステム１００は、たとえば、ＣＰＵ１１１〜ＣＰＵ１１４と、電源供給回路１１６と、共有メモリ１１７と、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）  ＩＦ（ＩｎｔｅｒＦａｃｅ）１１８を有している。また、各部は、バス１１５によってそれぞれ接続されている。図１ではマルチコアプロセッサシステムを有する装置の一例として携帯電話１０１を挙げているが、これに限らず、該装置は電子ブックリーダーデバイスなどの携帯情報端末やパーソナルコンピュータであってもよい。
【００１５】
ここで、ＣＰＵ１１１〜ＣＰＵ１１４はそれぞれコアとレジスタとキャッシュとを有している。ＣＰＵ１１１は、マスタＯＳであるＯＳ１２１を実行している。ＯＳ１２１は、アプリケーションソフトウェアの割り当てを制御するスケジューラ１３１を有している。ＣＰＵ１１２〜ＣＰＵ１１４は、スレーブＯＳであるＯＳ１２２〜ＯＳ１２４をそれぞれ実行し、スケジューラ１３１により割り当てられたプロセスを実行する。ＯＳ１２２からＯＳ１２４はそれぞれスケジューラ１３２〜スケジューラ１３４を有している。スケジューラ１３１〜スケジューラ１３４は、各スケジューラが動作するＣＰＵに複数のプロセスが割り当てられた場合、プロセスを切り替える処理を行う。
【００１６】
電源供給回路１１６は各部へ電力（すなわち、電源電圧）を供給する回路である。また、本実施の形態では、マルチコアプロセッサシステム１００はマルチコアプロセッサへ電力を供給する電力供給モードとして第１の電力供給モードと第２の電力供給モードを有している。第１の電力供給モードではマルチコアプロセッサのうち少なくとも２以上のＣＰＵに電力が供給され、第２の電力供給モードでは第１の電力供給モードよりも少ないＣＰＵに電力が供給される。本実施の形態では、第１の電力供給モードではＣＰＵ１１１〜ＣＰＵ１１４のうちすべてのＣＰＵに対して電力が供給され、第２の電力供給モードではＣＰＵ１１１〜ＣＰＵ１１４のうちＣＰＵ１１１に対してのみ電力が供給されることとする。
【００１７】
本実施の形態では、たとえば、ＣＰＵ１１１のレジスタが電力供給モードを示すレジスタを有していることとする。たとえば、電力供給モードを示すレジスタが０の場合、電力供給モードは第１の電力供給モードを示し、電力供給モードを示すレジスタが１であれば、電力供給モードは第２の電力供給モードを示す。そして、たとえば、該電力供給モードを示すレジスタの値が０であれば、電源供給回路１１６はＣＰＵ１１１〜ＣＰＵ１１４のうちすべてのＣＰＵに対して電力を供給する。一方、該電力供給モードを示すレジスタの値が１であれば、電源供給回路１１６はＣＰＵ１１１〜ＣＰＵ１１４のうちＣＰＵ１１１に対してのみ電力を供給する。
【００１８】
第１の電力供給モードにおいて、スケジューラ１３１はプロセスを割り当てるＣＰＵを全ＣＰＵの中から決定する。第２の電力供給モードにおいて、スケジューラ１３１はすべてのプロセスをＣＰＵ１１１に割り当てる。また、電力供給モードが第１の電力供給モードから第２の電力供給モードに切り替わると、スケジューラ１３１がＣＰＵ１１２〜ＣＰＵ１１４に割り当てられているプロセスをＣＰＵ１１１にマイグレーションする。
【００１９】
タイマ１４１は、たとえば、ＣＰＵ１１１上で動作するアプリケーションである。タイマ１４１はＯＳ１２１に起動されると、タイマ１４１は一の操作の検出時刻から後述するΔｔｃの経過時点までを計測する。
【００２０】
Ｉ／Ｏ  ＩＦ１１８は、たとえば、外部装置からの入力や外部装置への出力を制御する。携帯電話１０１では、たとえば、タッチパネルなどの入力装置を有している。マルチコアプロセッサシステム１００では、該入力装置からの入力がＩ／Ｏ  ＩＦ１１８を介してマルチコアプロセッサに通知される。ここで、操作とは、たとえば、携帯電話であれば開閉やタッチパネルのキー操作を示している。キー操作であれば、利用者によりキーが押される都度、ＯＳがＩ／Ｏ  ＩＦ１１８を介して該操作を検出する。また、着信とは、たとえば、メールの受信や電話の着信を示している。また、マルチコアプロセッサシステム１００は、たとえば、図示していないがＩＦを介してインターネットなどのネットワークに接続され、メールの送受信を行っている。
【００２１】
共有メモリ１１７は、たとえば、マルチコアプロセッサに共有されるメモリである。共有メモリ１１７は、たとえば、プロセステーブル１５１と、履歴情報２００と、操作に関する集計結果群３００と、着信後の操作に関する集計結果群４００と、学習情報５００と、ＯＳ１２１〜ＯＳ１２４のブートプログラムなどのプログラムと、を記憶している。共有メモリ１１７は、たとえば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）と、フラッシュＲＯＭなどを有している。
【００２２】
たとえば、ＲＯＭまたはフラッシュＲＯＭは該プログラムなどを記憶し、ＲＡＭはＣＰＵ１１１〜ＣＰＵ１１４のワークエリアとして使用される。共有メモリ１１７に記憶されている該プログラムは、各ＣＰＵにロードされることで、コーディングされている処理を各ＣＰＵに実行させることとなる。本実施の形態では、ＯＳ１２１が電力供給モードを学習情報５００に基づいて切り替える制御プログラムを有していることとする。また、本実施の形態では、ＣＰＵ１１１がＯＳ１２１をロードしてコーディングされている処理を実行するため、該制御プログラムにコーディングされている処理はＣＰＵ１１１が実行する。
【００２３】
プロセステーブル１５１とは、たとえば、各プロセスがどのＣＰＵに割り当てられているか、割り当てられているＣＰＵが該プロセスを実行中であるか否かを示す情報である。各ＣＰＵは、プロセステーブル１５１を読み出して各ＣＰＵのキャッシュに記憶しておく。スケジューラ１３１はプロセスをＣＰＵ１１１〜ＣＰＵ１１４のいずれかに割り当てると、プロセステーブル１５１に該プロセスがどのＣＰＵに割り当てられたかを登録する。
【００２４】
さらに、プロセスの切り替えが発生すると、各ＣＰＵはプロセステーブル１５１にどのプロセスが実行状態になったかを登録する。また、プロセスが完了すると、各ＣＰＵはプロセステーブル１５１から該完了したプロセスの情報を削除する。各ＣＰＵはプロセステーブル１５１を変更すると、各ＣＰＵのキャッシュがスヌープ処理によりプロセステーブル１５１の一貫性を保つ。
【００２５】
図２は、履歴情報２００の一例を示す説明図である。履歴情報２００は検出時刻の項目２０１とイベント種別の項目２０２とを有している。検出時刻の項目２０１ではイベントが検出された時刻が保持されている。イベントとは操作や着信である。種別の項目２０２は検出されたイベントの種別が保持されている。たとえば、検出時刻の項目２０１の値が０時１２分０５秒の場合、種別の項目２０２の値が操作である。すなわち、履歴情報２００では０時１２分０５秒に操作が検出されたことを示している。
【００２６】
図３は、操作に関する集計結果群３００の一例を示す説明図である。操作に関する集計結果群３００の各集計結果は、携帯電話１０１に対する一の操作の検出から次の操作の検出までの経過時間を経過時間帯別にした該次の操作の発生頻度が記憶されている。集計結果３０１を例に挙げると、集計結果３０１は経過時間帯の項目３０２と頻度の項目３０３とを有している。操作に関する集計結果群３００は、０時０分０秒〜５時５９分５９秒の集計結果と６時０分０秒〜１１時５９分５９秒の集計結果とのように時間帯別に分類されている。
【００２７】
ここで、時間帯の一例として、０時０分０秒〜５時５９分５９秒と６時０分０秒〜１１時５９分５９秒とが挙げられているが、これに限らず、他の時刻で時間帯を区切ってもよい。さらに、たとえば、平日や休日ごとに時間帯を区切ってもよいし、曜日ごとに時間帯を区切ってもよい。
【００２８】
また、たとえば、０時０分０秒〜５時５９分５９秒の集計結果には、１日前から５日前までの集計結果が記憶され、あらたに集計結果が記憶される際に最も古い集計結果が削除される。
【００２９】
図４は、着信後の操作に関する集計結果群４００の一例を示す説明図である。着信後の操作に関する集計結果群４００は、携帯電話１０１に対する着信の検出から操作の検出までの経過時間を時間帯別にした該操作の発生頻度が記憶されている。集計結果４０１を例に挙げると、集計結果４０１は、経過時間帯の項目４０２と頻度の項目４０３とを有している。
【００３０】
着信後の操作に関する集計結果群４００は、０時０分０秒〜５時５９分５９秒の集計結果と６時０分０秒〜１１時５９分５９秒の集計結果とのように時間帯別に分類されている。
【００３１】
図５は、学習情報５００の一例を示す説明図である。学習情報５００では、時間帯の項目５０１と、Δｔｃの項目５０２と、Δｔｉの項目５０３と、ｐａの項目５０４と、を有している。時間帯の項目５０１の値には、０時０分０秒〜５時５９分５９秒と、６時０分０秒〜１１時５９分５９秒と、１２時０分０秒〜・・・と、が保持されている。
【００３２】
Δｔｃの項目５０２は時間帯ごとに集計されたΔｔｃが保持され、Δｔｉの項目５０３は時間帯ごとに集計されたΔｔｉが保持され、ｐａの項目５０４では時間帯ごとに集計されたｐａが保持されている。
【００３３】
図６は、操作に関する解析結果の一例を示す説明図である。解析結果６００は、一の操作の検出から次の操作の検出までの経過時間を経過時間帯別にした次の操作が発生する操作確率を示すグラフである。Δｔｃは、解析結果の中で操作確率が特定しきい値（以下、「ＴＨ１」と称する。）以下で、かつ経過時間が０から最初に到来する経過時間帯である。
【００３４】
そして、Δｔｉは、Δｔｃ経過後からの操作確率の累計（ＴＯＴＡＬ）が特定しきい値（以下、「ＴＨ２」と称する。）以上になるまでの経過時間帯である。たとえば、Δｔｃが経過時間帯０〜５秒がΔｔｃとして特定された場合、上述の学習情報５００のΔｔｃの項目５０２の値には５秒が保持されることとする。
【００３５】
解析結果６００では、縦軸が操作確率であり、横軸が前回の操作からの経過時間である。ここでは、解析結果６００の縦軸は操作確率に限らず、たとえば、操作頻度であってもよい。本実施の形態では、操作にはキー操作を含めているため、メールの送信のために利用者はキーを連続して操作する可能性が高い。利用者がメールの送信を行った場合には、解析結果６００のように経過時間が０秒に近いほど操作確率が高くなる。
【００３６】
図７は、着信後の操作パターンの集計結果の一例を示す説明図である。解析結果７００は、着信の検出から操作の検出までの経過時間を経過時間帯別にした該操作が発生する操作確率を示すグラフである。ここで、着信とは、たとえば、電話の着信やメールの受信を示している。
【００３７】
解析結果７００では、縦軸が操作を行う確率であり、横軸が着信からの経過時間である。解析結果７００の縦軸は操作を行う確率であるが、これに限らず、たとえば、解析結果７００の縦軸は操作を行う頻度であってもよい。Δｔｔｈは電力制御を行って効果が得られる最小時間間隔であり、マルチコアプロセッサシステム１００の設計時に決定される値である。ｐａは着信の検出からΔｔｔｈ経過時点までの操作確率の累計である。
【００３８】
本実施の形態では、たとえば、時刻が６時になり、一の時間帯である０時０分０秒〜５時５９分５９秒から次の時間帯である６時０分０秒〜１１時５９分５９秒のように時間帯が変化した場合に、操作に関する解析と着信後の操作に関する解析とが行われる。そして、学習情報５００内のΔｔｃの項目５０２の値とΔｔｉの項目５０３の値とｐａの項目５０４の値とが更新される。
【００３９】
（ＯＳ１２１）
図８は、ＯＳ１２１を示すブロック図である。ＯＳ１２１は、記憶部８０１と、更新部８０２と、特定部８０３と、算出部８０４と、判断部８０５と、設定部８０６と、を有している。ＯＳ１２１はＣＰＵ１１１にロードされて、該ＯＳ１１１にコーディングされている処理をＣＰＵ１１１に実行させるため、各部はＣＰＵ１１１により実行される。
【００４０】
まず、記憶部８０１は、マルチコアプロセッサを有する装置に対する一の操作の検出から次の操作の検出までの経過時間を時間帯別にした次の操作の発生頻度を記憶する。本実施の形態において、該装置とは、たとえば、携帯電話１０１である。
【００４１】
更新部８０２は、一の操作の検出から次の操作の検出までの経過時間により、次の操作の検出時点が含まれる時間帯を特定して記憶部８０１に記憶された発生頻度を更新する。
【００４２】
特定部８０３は、更新部８０２による更新後の発生頻度が特定しきい値（上述のＴＨ１）以下で、かつ、一の操作から最初に到来する時間帯を記憶部８０１から特定する。
【００４３】
設定部８０６は、一の操作があらたに検出された場合、マルチコアプロセッサへ電力を供給する電力供給モードを第１の電力供給モードに設定する。また、設定部８０６は、一の操作があらたに検出されてからの経過時間が特定部８０３によって特定された時間帯を経過した場合、電力供給モードを第１の電力供給モードから第２の電力供給モードに設定する。
【００４４】
また、記憶部８０１は、マルチコアプロセッサを有する携帯電話１０１に対する着信の検出から操作の検出までの経過時間を時間帯別にした操作の発生頻度を記憶する。
【００４５】
そして、更新部８０２は、着信の検出から操作の検出までの経過時間により、操作の検出時点が含まれる時間帯を特定して発生頻度を更新する。
【００４６】
算出部８０４は、着信の検出から特定時間の経過時までの更新部８０２による更新後の発生頻度の合計値を算出する。
【００４７】
判断部８０５は、算出部８０４により算出された合計値が特定しきい値（上述のＴＨ２）以上であるか否かを判断する。
【００４８】
設定部８０６は、着信があらたに検出された場合において、判断部８０５により合計値が特定しきい値以上であると判断された場合、電力供給モードを第１の電力供給モードに設定する。また、設定部８０６は、着信があらたに検出された場合において、判断部８０５により合計値が特定しきい値以上でないと判断された場合、電力供給モードを変更しない。
【００４９】
以上を踏まえて、フローチャートを用いて詳細例を説明する。
【００５０】
（ＯＳ１２１による制御処理手順）
図９は、ＯＳ１２１による制御処理手順の一例を示すフローチャートである。まず、ＯＳ１２１が、着信、操作、または時間帯変化を検出したか否かを判断する（ステップＳ９０１）。ＯＳ１２１が、着信、操作、または時間帯変化を検出していないと判断した場合（ステップＳ９０１：Ｎｏ）、ステップＳ９０１へ戻る。
【００５１】
ＯＳ１２１が、着信、操作、または時間帯変化を検出したと判断した場合（ステップＳ９０１：Ｙｅｓ）、検出時刻を取得し（ステップＳ９０２）、検出したイベントが時間帯変化であるか否かを判断する（ステップＳ９０３）。ＯＳ１２１が、検出したイベントが時間帯変化であると判断した場合（ステップＳ９０３：Ｙｅｓ）、操作に関する解析処理を実行する（ステップＳ９０４）。そして、ＯＳ１２１が、着信後の操作に関する解析処理を実行し（ステップＳ９０５）、時間帯変化時の電力供給モード決定処理を実行する（ステップＳ９０６）。
【００５２】
一方、ＯＳ１２１が、検出したイベントが時間帯変化でないと判断した場合（ステップＳ９０３：Ｎｏ）、検出時刻と検出したイベントとを関連付けて履歴情報に登録する（ステップＳ９０７）。そして、ＯＳ１２１が、検出したイベントが着信か操作かを判断し（ステップＳ９０８）、検出したイベントが着信であると判断した場合（ステップＳ９０８：着信）、着信時の電力供給モード決定処理を実行する（ステップＳ９０９）。
【００５３】
ＯＳ１２１が、検出したイベントが操作であると判断した場合（ステップＳ９０８：操作）、操作時の電力供給モード決定処理を実行する（ステップＳ９１０）。ＯＳ１２１が、ステップＳ９０６、ステップＳ９０９、またはステップＳ９１０のつぎに、ステップＳ９０１に戻る。
【００５４】
図１０および図１１は、図９で示した操作に関する解析処理（ステップＳ９０４）の詳細な説明を示すフローチャートである。まず、ＯＳ１２１が、履歴情報から操作に関する情報を抽出する（ステップＳ１００１）、抽出した操作に関する情報から検出時刻が近い操作間の経過時間を算出する（ステップＳ１００２）。
【００５５】
図１２は、操作に関する情報の抽出結果の一例を示す説明図である。たとえば、時刻が６時になると、時間帯の変化が検出され、履歴情報から０時０分０秒〜５時５９分５９秒の操作に関する情報が抽出される。ＯＳ１２１は、検出時刻に基づいて操作間の経過時間を算出することができる。たとえば、０時１２分０５秒で検出された操作から次の０時１２分３２秒で検出された操作までの経過時間は２７秒である。
【００５６】
図１０に戻って、そして、ＯＳ１２１が、算出した経過時間を経過時間帯別に発生頻度を集計し（ステップＳ１００３）、集計結果を保存する（ステップＳ１００４）。集計結果は、時間帯変化が検出される前の時間帯に分類されて保存される。集計結果の一例については、上述の図３で示している。
【００５７】
ＯＳ１２１が、過去の集計結果から時間帯変化の検出前の時間帯に対応する集計結果を取得し（ステップＳ１００５）、集計した集計結果の全頻度と過去の集計結果の全頻度とを加算して集計結果の合計頻度を算出する（ステップＳ１００６）。つぎに、ＯＳ１２１が、経過時間帯ごとに取得した過去の集計結果の頻度と集計した集計結果の頻度との合計値を算出する（ステップＳ１００７）。
【００５８】
そして、ＯＳ１２１が、経過時間帯ごとに合計値を集計結果の合計頻度で割ることで経過時間帯ごとの操作確率を算出する（ステップＳ１００８）。経過時間帯ごとの操作確率の算出結果をグラフ化した例が図６で示した解析結果である。つぎに、ＯＳ１２１が、操作確率がＴＨ１以下で、かつ経過時間が直前の操作から最初に到来する経過時間帯をΔｔｃとして特定し（ステップＳ１００９）、時間帯変化を検出前の時間帯に対応する学習情報のΔｔｃを更新する（ステップＳ１０１０）。
【００５９】
つぎに、ＯＳ１２１が、経過時間帯ｉ＝Δｔｃの次の経過時間帯とし（ステップＳ１０１１）、ＴＯＴＡＬ＝経過時間帯ｉの利用確率とし（ステップＳ１０１２）、ＴＯＴＡＬ＜ＴＨ２であるか否かを判断する（ステップＳ１０１３）。まず、ＯＳ１２１が、ＴＯＴＡＬ＜ＴＨ２であると判断した場合（ステップＳ１０１３：Ｙｅｓ）、経過時間帯ｉ＝経過時間帯ｉの次の経過時間帯とし（ステップＳ１０１４）、ＴＯＴＡＬ＝ＴＯＴＡＬ＋経過時間帯ｉの利用確率とし（ステップＳ１０１５）、ステップＳ１０１３に戻る。
【００６０】
一方、ＯＳ１２１が、ＴＯＴＡＬ＜ＴＨ２でないと判断した場合（ステップＳ１０１３：Ｎｏ）、Δｔｉ＝経過時間帯ｉとし（ステップＳ１０１６）、時間帯変化を検出前の時間帯に対応する学習情報のΔｔｉの項目の値を更新し（ステップＳ１０１７）、ステップＳ９０５へ移行する。
【００６１】
図１３および図１４は、図９で示した着信後の操作に関する解析処理（ステップＳ９０５）の詳細な説明を示すフローチャートである。まず、ＯＳ１２１が、履歴情報から着信に関する情報と該着信後の次の操作に関する情報を抽出し（ステップＳ１３０１）、着信に関する情報の検出時刻と該着信後の次の操作に関する情報の検出時刻に基づいて経過時間を算出する（ステップＳ１３０２）。
【００６２】
つぎに、ＯＳ１２１が、算出した経過時間を経過時間帯別に発生頻度を集計し（ステップＳ１３０３）、集計結果を保存する（ステップＳ１３０４）。そして、ＯＳ１２１が、過去の集計結果から時間帯変化の検出前の時間帯に対応する集計結果を取得する（ステップＳ１３０５）。ＯＳ１２１が、集計した集計結果の全頻度と過去の集計結果の全頻度とを加算して集計結果の合計頻度を算出する（ステップＳ１３０６）。
【００６３】
そして、ＯＳ１２１が、経過時間帯ごとに取得した過去の集計結果の頻度と集計した集計結果の頻度との合計値を算出する（ステップＳ１３０７）。ＯＳ１２１が、経過時間帯ごとに合計値を集計結果の合計頻度で割ることで経過時間帯ごとの操作確率を算出する（ステップＳ１３０８）。経過時間帯ごとの操作確率の算出結果をグラフ化した例が図７で示した解析結果である。
【００６４】
つぎに、ＯＳ１２１が、経過時間帯ｉ＝着信から最初に到来する経過時間帯とし（ステップＳ１３０９）、ｐａ＝経過時間帯ｉの操作確率とする（ステップＳ１３１０）。さらに、ＯＳ１２１が、経過時間帯ｉ＜Δｔｔｈであるか否かを判断し（ステップＳ１３１１）。まず、ＯＳ１２１が、経過時間帯ｉ＜Δｔｔｈであると判断した場合（ステップＳ１３１１：Ｙｅｓ）、経過時間帯ｉ＝経過時間帯ｉの次の経過時間帯とする（ステップＳＳ１３１２）。つぎに、ＯＳ１２１が、ｐａ＝ｐａ＋経過時間帯ｉの操作確率とし（ステップＳ１３１３）、ステップＳ１３１１へ戻る。
【００６５】
一方、ＯＳ１２１が、経過時間帯ｉ＜Δｔｔｈでないと判断した場合（ステップＳ１３１１：Ｎｏ）、時間帯変化の検出前の時間帯に対応する学習情報のｐａの項目の値を算出したｐａに更新する（ステップＳ１３１４）。そして、ＯＳ１２１が、時間帯変化が検出される前の最後の操作に関する情報のみを残して履歴情報をクリアし（ステップＳ１３１５）、ステップＳ９０６へ移行する。
【００６６】
図１５は、図９で示した時間帯変化時の電力供給モード決定処理（ステップＳ９０６）の詳細な説明を示すフローチャートである。まず、ＯＳ１２１が、検出時刻に対応する時間帯のΔｔｉとΔｔｃとを学習情報から取得する（ステップＳ１５０１）。たとえば、検出時刻が６時０分０秒であると、学習情報５００内の時間帯の項目５０１の値が６時０分０秒〜１１時５９分５９秒であるΔｔｃの項目の値５０２とΔｔｉの項目５０３の値とが取得される。
【００６７】
つぎに、ＯＳ１２１が、Δｔｉ＞Δｔｔｈであるか否かを判断し（ステップＳ１５０２）、Δｔｉ＞Δｔｔｈであると判断した場合（ステップＳ１５０２：Ｙｅｓ）、タイマが動作中か否かを判断する（ステップＳ１５０３）。そして、ＯＳ１２１が、タイマが動作中であると判断した場合（ステップＳ１５０３：Ｙｅｓ）、「Δｔｃ−タイマの値」を算出し（ステップＳ１５０４）、ステップＳ１５０７に移行する。
【００６８】
ステップＳ１５０３において、ＯＳ１２１が、タイマが動作中でないと判断した場合（ステップＳ１５０３：Ｎｏ）、履歴情報から時間帯変化を検出前に検出された操作の検出時刻を取得する（ステップＳ１５０５）。ここで、履歴情報２００には、時間帯変化を検出前の最後に行われた操作のみが記憶されている。そして、ＯＳ１２１が、「Δｔｃ−（取得時刻−検出時刻）」を算出し（ステップＳ１５０６）、ステップＳ１５０７に移行する。
【００６９】
つぎに、ＯＳ１２１が、算出結果≦０であるか否かを判断し（ステップＳ１５０７）、算出結果≦０であると判断した場合（ステップＳ１５０７：Ｙｅｓ）、電力供給モードを第２の電力供給モードに設定する（ステップＳ１５０８）。そして、ＯＳ１２１が、タイマが動作中であるか否かを判断し（ステップＳ１５０９）、タイマが動作中であると判断した場合（ステップＳ１５０９：Ｙｅｓ）、タイマを停止し（ステップＳ１５１０）、ステップＳ９０１へ戻る。
【００７０】
ステップＳ１５０９において、ＯＳ１２１が、タイマが動作中でないと判断した場合（ステップＳ１５０９：Ｎｏ）、ステップＳ９０１へ戻る。一方、ＯＳ１２１が、算出結果≦０でないと判断した場合（ステップＳ１５０７：Ｎｏ）、タイマに算出結果を設定し（ステップＳ１５１１）、タイマが停止中であるか否かを判断する（ステップＳ１５１２）。
【００７１】
ＯＳ１２１が、タイマが停止中であると判断した場合（ステップＳ１５１２：Ｙｅｓ）、タイマを起動し（ステップＳ１５１３）、ステップＳ９０１へ戻る。ＯＳ１２１が、タイマが停止中でないと判断した場合（ステップＳ１５１２：Ｎｏ）、ステップＳ９０１へ戻る。
【００７２】
また、ステップＳ１５０２において、ＯＳ１２１が、Δｔｉ＞Δｔｔｈでないと判断した場合（ステップＳ１５０２：Ｎｏ）、タイマを停止し（ステップＳ１５１４）、電力供給モードが第１の電力供給モードか否かを判断する（ステップＳ１５１５）。具体的には、たとえば、ＯＳ１２１は電力供給モードに関するレジスタを参照することにより、ＯＳ１２１は電力供給モードを特定することができる。ＯＳ１２１が、電力供給モードが第１の電力供給モードでないと判断した場合（ステップＳ１５１５：Ｎｏ）、電力供給モードを第１の電力供給モードに設定し（ステップＳ１５１６）、ステップＳ９０１へ戻る。ＯＳ１２１が、電力供給モードが第１の電力供給モードであると判断した場合（ステップＳ１５１５：Ｙｅｓ）、ステップＳ９０１へ戻る。
【００７３】
図１６は、図９で示した着信時の電力供給モード決定処理（ステップＳ９０９）の詳細な説明を示すフローチャートである。まず、ＯＳ１２１が、電力供給モードが第１の電力供給モードであるか否かを判断する（ステップＳ１６０１）。ＯＳ１２１が、電力供給モードが第１の電力供給モードであると判断した場合（ステップＳ１６０１：Ｙｅｓ）、ステップＳ９０１へ戻る。
【００７４】
一方、ＯＳ１２１が、電力供給モードが第１の電力供給モードでないと判断した場合（ステップＳ１６０１：Ｎｏ）、検出時刻に対応する時間帯のｐａを学習情報から取得する（ステップＳ１６０２）。つぎに、ＯＳ１２１が、ｐａ＞ＴＨ３であるか否かを判断し（ステップＳ１６０３）、ｐａ＞ＴＨ３でないと判断した場合（ステップＳ１６０３：Ｎｏ）、ステップＳ９０１へ戻る。
【００７５】
つぎに、ＯＳ１２１が、ｐａ＞ＴＨ３であると判断した場合（ステップＳ１６０３：Ｙｅｓ）、電力供給モードを第１の電力供給モードに設定し（ステップＳ１６０４）、ΔｔｉとΔｔｃとを学習情報から取得する（ステップＳ１６０５）。そして、ＯＳ１２１が、Δｔｉ＞Δｔｔｈであるか否かを判断し（ステップＳ１６０６）、Δｔｉ＞Δｔｔｈでないと判断した場合（ステップＳ１６０６：Ｎｏ）、ステップＳ９０１へ戻る。
【００７６】
一方、ＯＳ１２１が、Δｔｉ＞Δｔｔｈであると判断した場合（ステップＳ１６０６：Ｙｅｓ）、タイマにΔｔｃを設定し（ステップＳ１６０７）、タイマが停止中であるか否かを判断する（ステップＳ１６０８）。ここで、タイマにΔｔｃを設定するとは、Δｔｃまでの経過をタイマにカウントさせることを示している。
【００７７】
そして、ＯＳ１２１が、タイマが停止中であると判断した場合（ステップＳ１６０８：Ｙｅｓ）、タイマを起動し（ステップＳ１６０９）、ステップＳ９０１へ戻る。また、ＯＳ１２１が、タイマが停止中でないと判断した場合（ステップＳ１６０８：Ｎｏ）、ステップＳ９０１へ戻る。
【００７８】
図１７は、図９で示した操作時の電力供給モード決定処理（ステップＳ９１０）の詳細な説明を示すフローチャートである。まず、ＯＳ１２１が、電力供給モードが第１の電力供給モードであるか否かを判断する（ステップＳ１７０１）。ＯＳ１２１が、電力供給モードが第１の電力供給モードであると判断した場合（ステップＳ１７０１：Ｙｅｓ）、ステップＳ９０１へ戻る。
【００７９】
一方、ＯＳ１２１が、電力供給モードが第１の電力供給モードでないと判断した場合（ステップＳ１７０１：Ｎｏ）、電力供給モードを第１の電力供給モードに設定する（ステップＳ１７０２）。具体的には、たとえば、ＯＳ１２１が電力供給モードに関するレジスタを０に設定することにより、電力供給モードが第１の電力供給モードに設定される。そして、ＯＳ１２１が、学習情報から検出した操作の検出時刻に対応する時間帯のΔｔｉとΔｔｃとを取得し（ステップＳ１７０３）、Δｔｉ＞Δｔｔｈであるか否かを判断する（ステップＳ１７０４）。ＯＳ１２１が、Δｔｉ＞Δｔｔｈであると判断した場合（ステップＳ１７０４：Ｙｅｓ）、タイマにΔｔｃを設定し（ステップＳ１７０５）、タイマが停止中であるか否かを判断する（ステップＳ１７０６）。
【００８０】
そして、ＯＳ１２１が、タイマが停止中であると判断した場合（ステップＳ１７０６：Ｙｅｓ）、タイマを起動し（ステップＳ１７０７）、ステップＳ９０１へ戻る。また、ＯＳ１２１が、タイマが停止中でないと判断した場合（ステップＳ１７０６：Ｎｏ）、ステップＳ９０１へ戻る。ステップＳ１７０４において、ＯＳ１２１が、Δｔｉ＞Δｔｔｈでないと判断した場合（ステップＳ１７０４：Ｎｏ）、ステップＳ９０１へ戻る。
【００８１】
図１８は、ＯＳ１２１によるΔｔｃ経過時の制御処理手順を示すフローチャートである。ＯＳ１２１は、Δｔｃ経過を検出したか否かを判断し（ステップＳ１８０１）、Δｔｃ経過を検出していないと判断した場合（ステップＳ１８０１：Ｎｏ）、ステップＳ１８０１へ戻る。一方、ＯＳ１２１は、Δｔｃ経過を検出したと判断した場合（ステップＳ１８０１：Ｙｅｓ）、電力供給モードを第２の電力供給モードに設定し（ステップＳ１８０２）、ステップＳ１８０１へ戻る。具体的には、たとえば、ＯＳ１２１が電力供給モードに関するレジスタを１に設定することにより、電力供給モードが第２の電力供給モードに設定される。
【００８２】
以上説明したように、マルチコアプロセッサシステム、制御プログラム、および制御方法によれば、ユーザの操作パターンを解析し、電力供給モードを切り替えるタイミングを動的に決定する。これにより、ユーザ操作に関する処理の性能を低下させることなく、低消費電力化を図ることができる。
【００８３】
また、電力供給モードを低消費電力モードである第２の電力供給モードへ切り替えるタイミングを動的に決定することにより、低消費電力化を図ることができる。
【００８４】
また、着信の検出から操作の検出までの経過時間を解析することにより、着信が検出された場合に、着信後に直ぐ操作を行う可能性が高いか否かを動的に判断する。着信後にすぐに操作を行う可能性が高ければ、電力供給モードを低消費電力モードでない第１の電力供給モードに設定する。これにより、ユーザ操作に関する処理の性能を低下させない。
【００８５】
また、着信が検出された場合に、着信後操作を行う可能性が低いと判断された場合に電力供給モードが第２の電力供給モードであれば、第１の電力供給モードに切り替えないことで、低消費電力化を図ることができる。
【符号の説明】
【００８６】
１００  マルチコアプロセッサシステム
１０１  携帯電話
８０１  記憶部
８０２  更新部
８０３  特定部
８０４  算出部
８０５  判断部
８０５  設定部
【図１】
0005459393.tif 000002
【図２】
0005459393.tif 000003
【図３】
0005459393.tif 000004
【図４】
0005459393.tif 000005
【図５】
0005459393.tif 000006
【図６】
0005459393.tif 000007
【図７】
0005459393.tif 000008
【図８】
0005459393.tif 000009
【図９】
0005459393.tif 000010
【図１０】
0005459393.tif 000011
【図１１】
0005459393.tif 000012
【図１２】
0005459393.tif 000013
【図１３】
0005459393.tif 000014
【図１４】
0005459393.tif 000015
【図１５】
0005459393.tif 000016
【図１６】
0005459393.tif 000017
【図１７】
0005459393.tif 000018
【図１８】
0005459393.tif 000019