(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-22
(45)【発行日】2022-10-03
(54)【発明の名称】情報処理装置
(51)【国際特許分類】
G06F 9/50 20060101AFI20220926BHJP
G06F 1/08 20060101ALI20220926BHJP
【FI】
G06F9/50 120A
G06F1/08 520
G06F1/08 510
(21)【出願番号】P 2018191233
(22)【出願日】2018-10-09
【審査請求日】2021-09-29
(73)【特許権者】
【識別番号】318012780
【氏名又は名称】FCNT株式会社
(74)【代理人】
【識別番号】110002860
【氏名又は名称】特許業務法人秀和特許事務所
(72)【発明者】
【氏名】影沢 正
【審査官】坂庭 剛史
(56)【参考文献】
【文献】特開2012-221406(JP,A)
【文献】米国特許第08621253(US,B1)
【文献】特開2014-182512(JP,A)
【文献】特開2015-043165(JP,A)
【文献】特開2012-150668(JP,A)
【文献】特表2013-509654(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
G06F 1/08
(57)【特許請求の範囲】
【請求項1】
アプリケーションプログラム内の処理単位であるアクティビティの起動処理開始から起動処理終了までの動作時間を前記アクティビティの識別情報と対応付けて記憶する記憶部と、
前記アクティビティの動作時間を測定し、測定した前記動作時間を前記アクティビティの識別情報と対応付けて前記記憶部に記憶させる測定部と、
プロセッサの動作周波数を制御する制御部と、を備え、
前記制御部は、起動されたアクティビティに対応する前記動作時間が前記記憶部に記憶されている場合に、前記動作時間の間における前記プロセッサの動作周波数を上昇させる、
情報処理装置。
【請求項2】
前記制御部が前記プロセッサの動作周波数を上昇させる処理は、前記プロセッサの動作周波数を設定可能な範囲で最大にすることを含む、
請求項1に記載の情報処理装置。
【請求項3】
前記制御部が前記プロセッサの動作周波数を上昇させる処理は、前記プロセッサの最低動作周波数を上昇させることを含む、
請求項1または2に記載の情報処理装置。
【請求項4】
前記測定部は、前記動作時間を測定したアクティビティの識別情報が前記記憶部に記憶されている場合、前記記憶部において前記アクティビティに対応付けられた動作時間を測定した動作時間に更新する、
請求項1から3のいずれか一項に記載の情報処理装置。
【請求項5】
前記記憶部は、さらに、前記プロセッサの処理能力の制御情報を前記アクティビティの負荷毎に記憶し、
前記測定部は、さらに、前記起動処理終了後から前記アクティビティの動作終了までの負荷を測定し、測定した前記負荷を前記アクティビティの識別情報と対応付けて前記記憶部に記憶させ、
前記制御部は、さらに、測定した前記負荷に基づいて前記制御情報を選定し、選定した制御情報にしたがって、前記プロセッサを制御する、
請求項1から4のいずれか一項に記載の情報処理装置。
【請求項6】
前記測定部は、前記プロセッサの動作周波数の増加に対する消費電力の増加の割合が所定値よりも高くなる動作周波数に基づいて、前記負荷を測定する、
請求項5に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置に関する。
【背景技術】
【0002】
アプリケーションプログラムに応じて、または、ユーザによる操作速度に応じてプロセッサの動作周波数を制御する情報処理装置が知られている(例えば、特許文献1、2参照)。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2014-182512号公報
【文献】特開2015-043165号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
アプリケーションプログラムの起動処理が開始されてから起動処理が終了するまでの起動処理時間は、起動時に読み込まれる設定ファイルサイズの増減や、起動時に読み込まれる機能追加プログラム(アドイン)の増減等によって、変動する。また、アプリケーションプログラムによっては、動作中の負荷が常に変動するものや、ゲームのようにシーンが切替わると負荷が急激に変動するものもある。アプリケーションの種類毎やユーザによる操作速度に応じてプロセッサの動作周波数を制御する技術では、起動処理時間の変動や負荷の変動に対して改善の余地がある。
【0005】
開示の技術の1つの側面は、プロセッサの動作周波数をより好適に制御できる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
開示の技術の1つの側面は、次のような情報処理装置によって例示される。本情報処理装置は、アプリケーションプログラム内の処理単位であるアクティビティの起動処理開始から起動処理終了までの動作時間を前記アクティビティの識別情報と対応付けて記憶する記憶部と、前記アクティビティの動作時間を測定し、測定した前記動作時間を前記アクティビティの識別情報と対応付けて前記記憶部に記憶させる測定部と、プロセッサの動作周波数を制御する制御部と、を備え、前記制御部は、起動されたアクティビティに対応する前記動作時間が前記記憶部に記憶されている場合に、前記動作時間の間における前記プロセッサの動作周波数を高める。
【発明の効果】
【0007】
本情報処理装置は、プロセッサの動作周波数をより好適に制御することができる。
【図面の簡単な説明】
【0008】
【
図1】
図1は、第1実施形態に係るスマートフォンの構成の一例を示す図である。
【
図2】
図2は、
図1に例示される各構成要素の情報の授受を模式的に示す図である。
【
図3】
図3は、動作履歴保存域に格納される動作履歴テーブルの一例を示す図である。
【
図4】
図4は、OSの階層構造の一例を示す図である。
【
図5】
図5は、第1実施形態に係るスマートフォンの処理フローの一例を示す図である。
【
図6】
図6は、第1実施形態の効果を例示する図である。
【
図7】
図7は、アクティビティの起動処理時間が長くなった場合の一例を示す図である。
【
図8】
図8は、第2実施形態に係るスマートフォンの構成の一例を示す図である。
【
図9】
図9は、
図8に例示される各構成要素の情報の授受を模式的に示す図である。
【
図10】
図10は、パラメータ保存域に記憶されるガバナー選定テーブルの一例である。
【
図11】
図11は、パラメータ保存域に格納される負荷テーブルの一例を示す図である。
【
図12】
図12は、CPUの消費電力と動作周波数との対応の一例を示すグラフである。
【
図13】
図13は、第2実施形態における、動作履歴保存域に格納される動作履歴テーブルの一例を示す図である。
【
図14】
図14は、ガバナー調整部が生成したヒストグラムの一例を示す図である。
【
図15】
図15は、第2実施形態に係る動作履歴保存処理の一例を示す図である。
【
図16】
図16は、第2実施形態に係るガバナーテーブル選択処理の一例を示す図である。
【発明を実施するための形態】
【0009】
以下、実施形態について説明する。以下に示す実施形態の構成は例示であり、開示の技術は実施形態の構成に限定されない。本実施形態に係る情報処理装置は、例えば、以下の構成を有する。
【0010】
(情報処理装置の構成)
アプリケーションプログラム内の処理単位であるアクティビティの起動処理開始から起動処理終了までの起動処理時間を前記アクティビティの識別情報と対応付けて記憶する記憶部と、
前記アクティビティの起動処理時間を測定し、測定した前記起動処理時間を前記アクティビティの識別情報と対応付けて前記記憶部に記憶させる測定部と、
プロセッサの動作周波数を制御する制御部と、を備え、
前記制御部は、起動されたアクティビティに対応する前記起動処理時間が前記記憶部に記憶されている場合に、前記起動処理時間の間における前記プロセッサの動作周波数を上昇させる、
情報処理装置。
【0011】
プロセッサは、例えば、Central Processing Unit(CPU)、マイクロプロセッサユ
ニット(MPU)、Graphics Processing Unit(GPU)等の演算処理を行う集積回路である。アクティビティとは、例えば、アプリケーションプログラムがグラフィカルユーザーインタフェース(GUI)を有する場合、各ウィンドウ画面の描画開始から次のウィンドウ画面に遷移したり当該ウィンドウ画面が終了されたりするまでが一つのアクティビティとなる。アクティビティの起動処理開始から起動処理終了までの起動処理時間は、アクティビティごとに異なる。プリインストールされているアプリケーションプログラムについては、製品出荷前にあらかじめアクティビティごとの起動処理時間を測定して記憶部に記憶させることも可能であるが、ユーザがインストールするアプリケーションプログラムについてはこのような対応はできない。
【0012】
本実施形態では、起動されたアクティビティの起動処理開始から起動処理終了までの起動処理時間を取得部が取得し、取得した起動処理時間を記憶部に記憶する。制御部は、起動されたアクティビティの前記起動処理時間が記憶部に記憶されている場合、前記起動処理時間におけるプロセッサの動作周波数を上昇させることで、アクティビティの起動処理を短縮することができる。プロセッサの動作周波数を上昇させることは、プロセッサの設定可能な範囲で動作周波数を最大化したり、プロセッサの最低動作周波数を上昇させたりすることを含んでもよい。
【0013】
本実施形態は、次の特徴を有してもよい。前記測定部は、前記動作時間を測定したアクティビティの識別情報が前記記憶部に記憶されている場合、前記記憶部において前記アクティビティに対応付けられた動作時間を測定した動作時間に更新する。このような特徴を有することで、アクティビティの起動処理時間が変動した場合でも、プロセッサの動作周波数を上昇させる期間を変動した起動処理時間に追随させることができる。
【0014】
本実施形態は、次の特徴を有してもよい。前記記憶部は、さらに、前記プロセッサの処理能力の制御情報を前記アクティビティの負荷毎に記憶し、前記測定部は、さらに、前記起動処理終了後から前記アクティビティの動作終了までの負荷を測定し、測定した前記負荷を前記アクティビティの識別情報と対応付けて前記記憶部に記憶させ、前記制御部は、さらに、測定した前記負荷に基づいて前記制御情報を選定し、選定した制御情報にしたがって、前記プロセッサを制御する。
【0015】
制御情報には、例えば、プロセッサの負荷率とプロセッサの動作周波数とが対応付けられており、アクティビティの負荷に応じて複数用意される。制御部は、測定部が測定したアクティビティの負荷に基づいて制御情報を選定する。制御部は、例えば、制御情報において現在のプロセッサの負荷率に対応付けられた動作周波数にプロセッサを設定する。このような処理により、アクティビティの動作時における負荷に応じてプロセッサの動作周波数と消費電力とのバランスを好適に保つことが可能となる。
【0016】
本実施形態は、次の特徴を有してもよい。前記測定部は、前記プロセッサの動作周波数の増加に対する消費電力の増加の割合が所定値よりも高くなる動作周波数に基づいて、前記負荷を測定する。プロセッサの消費電力は、動作周波数の上昇にしたがって線形に増加するのではなく、ある動作周波数において消費電力の増加率は高まる。このような特徴を有することで、プロセッサの動作周波数と諸費電力の特性に応じて制御情報を選定できる。
【0017】
以下、図面を参照して本実施形態についてさらに説明する。
【0018】
<第1実施形態>
図1は、第1実施形態に係るスマートフォンの構成の一例を示す図である。
図2は、
図1に例示される各構成要素の情報の授受を模式的に示す図である。第1実施形態に係るスマートフォン1は、アプリケーションプロセッサ10、記憶部11、クロックコントローラ12、電源制御部13、バッテリ14、通信部15、表示部16および入力部17を備える。
【0019】
記憶部11は、アプリケーションプロセッサ10からアクセスされる記憶部として例示される。記憶部11は、Random Access Memory(RAM)およびRead Only Memory(ROM)を含む。記憶部11は、動作履歴保存域112を含む。記憶部11には、各種のアプリケーションプログラム113およびOperating System(OS)114も記憶される。
【0020】
記憶部11は、各種のプログラムおよび各種のデータを読み書き自在に記録媒体に格納
する補助記憶部を含んでもよい。補助記憶部は外部記憶装置とも呼ばれる。補助記憶部は、例えば、Erasable Programmable ROM(EPROM)、ソリッドステートドライブ(Solid State Drive、SSD)、ハードディスクドライブ(Hard Disk Drive、HDD)等で
ある。また、補助記憶部は、例えば、Compact Disc(CD)ドライブ装置、Digital Versatile Disc(DVD)ドライブ装置、Blu-ray(登録商標)Disc(BD)ドライブ装置等
である。
【0021】
動作履歴保存域112には、アプリケーションプログラム113のアクティビティの起動処理開始から起動処理終了までの負荷をアクティビティごとに記憶する。ここで、アクティビティとはアプリケーションプログラム113の処理単位である。例えば、アプリケーションプログラム113がグラフィカルユーザーインタフェース(GUI)を有する場合、各ウィンドウ画面の描画開始から次のウィンドウ画面に遷移するまでが一つのアクティビティとなる。また、アクティビティがウィンドウ画面の場合、起動処理終了の状態は、ウィンドウ画面の描画が完了した状態である。また、起動処理終了の状態は、アクティビティがユーザ等からの操作指示を受け付けられる状態に遷移した状態であってもよい。
【0022】
図3は、動作履歴保存域に格納される動作履歴テーブルの一例を示す図である。動作履歴保存域112に格納される動作履歴テーブル1121では、「アクティビティ名」と「起動処理時間」とが対応付けられる。「アクティビティ名」には、アクティビティの名称が格納される。なお、「アクティビティ名」に格納される情報は、アクティビティを識別する情報であれば名称に限定されない。「アクティビティ名」には、例えば、アクティビティを一意に識別するID等が格納されてもよい。「起動処理時間」には、アクティビティの起動処理開始から起動処理終了までの処理時間が格納される。動作履歴保存域112は、「記憶部」の一例である。
【0023】
アプリケーションプログラム113は、CPU101によって実行される様々なプログラムである。アプリケーションプログラム113としては、インターネットブラウザ、メールクライアント、Social Networking Service(SNS)クライアント、ゲーム等を挙
げることができる。アプリケーションプログラム113は、ユーザによって起動されると、OS114に起動通知を送信する。また、アプリケーションプログラム113は、ユーザによって終了されると、終了通知をOS114に送信する。
【0024】
OS114は、スマートフォン1の入出力処理、プロセスのスケジュール管理、ハードウェアとソフトウェアとの間のインターフェース等を提供する基本ソフトウェアである。
図4は、OSの階層構造の一例を示す図である。
図4では、CPU101等を示すハードウェアの階層およびOS114上で実行されるアプリケーションプログラム113の階層も例示される。
【0025】
OS114は、カーネル1141とシステムサービス1142とを含む。カーネル1141は、スマートフォン1のハードウェアを抽象化し、アプリケーションプログラム113等のソフトウェアからハードウェア資源を利用可能にする。また、カーネル1141は、プロセスの制御、CPU101の動作周波数の制御等の制御を可能にする。
【0026】
システムサービス1142は、アプリケーションプログラム113の起動処理等を実行する。システムサービス1142は、アプリケーションプログラム113から起動通知を受信すると、当該アプリケーションの起動開始をカーネル1141に通知する。さらに、システムサービス1142は、当該アプリケーションプログラム113の起動処理を開始する。起動処理は、例えば、アプリケーションプログラム113のウィンドウ画面の描画処理を含む。システムサービス1142は、アプリケーションプログラム113の起動処理を完了すると、アプリケーションプログラム113の起動完了を示す完了通知をカーネ
ル1141に送信する。さらに、システムサービス1142は、アプリケーションプログラム113から終了通知を受信すると、当該アプリケーションプログラム113の終了をカーネル1141に通知する。
【0027】
クロックコントローラ12は、CPU101の動作周波数(クロック周波数)の設定を行う。クロックコントローラ12は、周波数制御部105からの指示にしたがって、CPU101の動作周波数を設定する。
【0028】
電源制御部13は、バッテリ14からアプリケーションプロセッサ10に供給する電力を制御する。電源制御部13は、周波数制御部105からの指示にしたがって、アプリケーションプロセッサ10に供給する電力を制御する。バッテリ14は、アプリケーションプロセッサ10を含むスマートフォン1の各部に電力を供給する二次電池である。
【0029】
通信部15は、コンピュータネットワークのインターフェースである。通信部15は、コンピュータネットワークを介して外部の装置と通信を行う。通信部15は、例えば、Network Interface Card(NIC)である。
【0030】
表示部16は、CPU101で処理されるデータや記憶部11に記憶されるデータを出力する出力部である。表示部16は、例えば、Cathode Ray Tube(CRT)ディスプレイ、Liquid Crystal Display(LCD)、Plasma Display Panel(PDP)、Electroluminescence(EL)パネル、有機ELパネル等である。
【0031】
入力部17は、ユーザ等からの操作指示等を受け付ける。入力部17は、例えば、キーボード、ポインティングデバイス、タッチパネル等である。
【0032】
アプリケーションプロセッサ10は、スマートフォン1の各種制御を行う。アプリケーションプロセッサ10は、様々な処理を実行する集積回路を含むSystem on a Chip(SoC)である。集積回路は、Large Scale Integrated circuit(LSI)、Application Specific Integrated Circuit(ASIC)、プログラマブルロジックデバイス(PLD)
を含む。PLDは、例えば、Field-Programmable Gate Array(FPGA)を含む。アプ
リケーションプロセッサ10は、例えば、CPU101、スケジューラ102、ガバナー調整部103、ガバナー制御部104、周波数制御部105および電圧制御部106を含む。
【0033】
CPU101は、マイクロプロセッサユニット(MPU)、プロセッサとも呼ばれる。CPU101は、単一のプロセッサに限定される訳ではなく、マルチプロセッサ構成であってもよい。また、単一のソケットで接続される単一のCPU101がマルチコア構成を有していても良い。CPU101は、例えば、記憶部11に記憶されたアプリケーションプログラム113を実行する。CPU101の動作周波数は、クロックコントローラ12からの指示によって変更される。
【0034】
CPU101は、記憶部11に記憶されたOS114のカーネル1141を実行することで、スケジューラ102、ガバナー調整部103、ガバナー制御部104、周波数制御部105および電圧制御部106として動作する。
【0035】
スケジューラ102は、CPU101が実行する各プロセスのスケジューリングを行う。スケジューリングでは、各プロセスに割り当てるシステム資源の制御が行われる。システム資源は、例えば、CPU101がプロセスを実行するプロセッサ時間、プロセスが通信に使用する通信帯域等である。スケジューリングでは、プロセスごとに優先度が設定されてもよい。スケジューラ102は、この場合、高い優先度が設定されたプロセスに対し
て優先的にシステム資源を割り当てる。
【0036】
ガバナー調整部103は、動作履歴保存域112を参照して、アクティビティの起動処理開始から起動処理終了までの起動処理時間を取得する。ガバナー調整部103は、取得した起動処理時間をガバナー制御部104に通知する。ガバナー調整部103は、「測定部」の一例である。
【0037】
ガバナー制御部104は、ガバナー調整部103から通知された起動処理時間の間、CPU101の周波数を設定可能な範囲で最大のクロック(以下、最大クロックとも称する)にするように周波数制御部105を制御する。この制御では、例えば、ガバナー制御部104から最大クロックが周波数制御部105に通知される。ガバナー制御部104は、「制御部」の一例である。
【0038】
周波数制御部105は、ガバナー制御部104からクロック周波数の指定を受け付ける。周波数制御部105は、指定されたクロック周波数をクロックコントローラ12に通知し、クロックコントローラ12に指定されたクロック周波数を供給させる。
【0039】
電圧制御部106は、電源制御部13が供給する電圧を制御する。電圧制御部106は、バッテリ14の残量を監視してもよい。
【0040】
(処理フロー)
図5は、第1実施形態に係るスマートフォンの処理フローの一例を示す図である。以下、
図5を参照して、第1実施形態に係るスマートフォン1の処理フローの一例について説明する。
【0041】
T1では、ガバナー調整部103は、OS114のシステムサービス1142から起動されたアプリケーションプログラム113のアクティビティ名を取得する。T2では、ガバナー調整部103は、T1で取得したアクティビティ名が動作履歴テーブル1121に格納されているか否かを判定する。格納されている場合(T2でYES)、処理はT3に進められる。格納されていない場合(T2でNO)、処理はT5に進められる。
【0042】
T3では、ガバナー調整部103は、動作履歴テーブル1121において、T1で取得したアクティビティ名に対応付けられた起動処理時間を取得する。T4では、ガバナー調整部103は、T3で取得した起動処理時間をガバナー制御部104に通知する。ガバナー制御部104は、通知された起動処理時間の間、CPU101の動作クロックを最大クロックとするよう周波数制御部105を制御する。周波数制御部105は、クロックコントローラ12を制御して、通知された起動処理時間の間、CPU101の動作クロックを最大クロックに設定させる。
【0043】
T5では、ガバナー調整部103は、T1で起動されたアプリケーションプログラム113の起動処理時間を測定する。起動処理時間の測定は、例えば、システムサービス1142から起動通知が通知されてから完了通知が通知されるまでの時間を測定することで行われる。
【0044】
T6では、ガバナー調整部103は、T1で取得したアクティビティ名とT5で測定した起動処理時間とを対応付けて動作履歴テーブル1121に格納する。既に同名のアクティビティ名が動作履歴テーブル1121に登録済みである場合、当該アクティビティ名に対応付けられた起動処理時間をT5で測定した起動処理時間に更新すればよい。
【0045】
<第1実施形態の作用効果>
図6は、第1実施形態の効果を例示する図である。
図6では、アクティビティの起動時における動作クロックおよび負荷率の変動の一例が示される。
図6の縦軸はCPU101の動作周波数または負荷率を示し、横軸は時間を示す。また、CPU101の設定可能な範囲における最大クロックを「MAX」で示し、CPU101の設定可能な範囲における最小クロックを「MIN」で示す。
図6(A)は、アクティビティの初回起動時の一例を示し、
図6(B)はCPU101が最大クロックで動作する期間をアクティビティの起動処理開始から起動処理終了までに延ばした場合の一例を示す。
図6(A)では、アクティビティの起動処理開始から起動処理完了までの起動処理時間が1000msとなっている。また、
図6(B)では、アクティビティの起動処理開始から起動処理完了までの起動処理時間が900msとなっている。
図6(A)、(B)を比較すると理解できるように、最大クロックで動作する期間を起動処理開始から起動処理終了までに延長することで、アクティビティの起動処理時間を短縮できることがわかる。また、CPU101が最大クロックで動作する期間が起動処理終了までとなっているため、アクティビティが動作中に継続してCPU101を最大クロックで動作させる場合と比較して、CPU101の消費電力増大を抑制できる。
【0046】
第1実施形態では、起動されたアクティビティの起動処理時間が動作履歴テーブル1121に格納されていない場合、アクティビティの起動処理時間を測定し、測定した起動処理時間を動作履歴テーブル1121に格納する。当該アクティビティが次に起動されると、動作履歴テーブル1121に格納された起動処理時間の間、CPU101が最大クロックで動作する。そのため、第1実施形態によれば、起動処理時間が未知であったアクティビティに対しても、起動処理時間を短縮することができる。
【0047】
アクティビティの起動処理時間は、アプリケーションプログラム113の起動処理において読み込むファイルサイズの増減や組み込まれるアドオンの増減等により、変動する。
図7は、アクティビティの起動処理時間が長くなった場合の一例を示す図である。
図7(A)では、起動処理時間が長くなった結果、CPU101が最大クロックで動作する最大クロック動作期間よりもアクティビティの起動処理時間が長くなった場合の一例を示す。また、
図7(B)は、長くなった起動処理時間に応じてCPU101が最大クロックで動作する最大クロック動作時間を延ばした場合の一例を示す。第1実施形態では、動作履歴テーブル1121に起動処理時間が格納済みのアクティビティについても、起動処理時間の測定および動作履歴テーブル1121への格納を行う。そのため、第1実施形態によれば、
図7(A)に例示されるように起動処理時間が変動しても、動作履歴テーブル1121に格納された起動処理時間は、変動した起動処理時間に更新される。そのため、変動した起動処理時間の間、CPU101を最大クロックで動作させることが可能となり、
図7(B)のように起動処理時間を短縮することができる。
【0048】
なお、第1実施形態では、起動処理時間の間におけるCPU101の動作周波数を最大クロックとすることで起動処理時間を短縮したが、起動処理時間の間におけるCPU101の最低動作周波数を上昇させることで起動処理時間を短縮してもよい。
【0049】
<第2実施形態>
第1実施形態では、アクティビティの起動処理の間、CPU101が最大クロックで動作した。第2実施形態では、アクティビティの起動処理が完了した後の負荷の変動に応じて、CPUの動作クロックが設定される。第1実施形態と共通の構成要素については同一の符号を付し、その説明は省略される。以下、図面を参照して、第2実施形態について説明する。
【0050】
図8は、第2実施形態に係るスマートフォンの構成の一例を示す図である。
図9は、
図8に例示される各構成要素の情報の授受を模式的に示す図である。第2実施形態に係るス
マートフォン1aは、パラメータ保存域111、動作履歴保存域112a、ガバナー調整部103aおよびガバナー制御部104aを備える点で、第1実施形態に係るスマートフォン1とは異なる。
【0051】
パラメータ保存域111は、ガバナー制御に用いられる各種パラメータが保存される。
図10は、パラメータ保存域に記憶されるガバナー選定テーブルの一例である。
図10に例示されるガバナー選定テーブル1111は、「ガバナーパラメータ」、「パターン」、「最大周波数」、「最小周波数」および「CPUパラメータ」の各項目を含む。「ガバナーパラメータ」には、負荷毎(
図10の例では、高負荷、中負荷、低負荷)に対応付けられる、最大周波数、最小周波数およびCPUパラメータの組を一意に識別する番号が格納される。「パターン」には、CPU101の負荷の状態を示す状態が格納される。
図10の例では、「パターン」には、「高負荷」、「中負荷」、「低負荷」の何れかが格納される。「最大周波数」には、CPU101を駆動する周波数の最大値が格納される。「最小周波数」には、CPU101を駆動する周波数の最小値が格納される。すなわち、CPU101の周波数は、「最小周波数」に格納された周波数から「最大周波数」に格納された周波数までの間で遷移可能である。「CPUパラメータ」には、CPU101に適用する負荷テーブルを識別するIDが格納される。負荷テーブルについては
図11を参照して後述する。
【0052】
図11は、パラメータ保存域に格納される負荷テーブルの一例を示す図である。負荷テーブル1112は、ガバナー選定テーブル1111に記憶される「パターン」毎に用意される。
図11(A)は、ガバナー選定テーブル1111における「パターン」が「高負荷」の場合に用いられる負荷テーブル1112aの一例である。
図11(B)は、ガバナー選定テーブル1111における「パターン」が「低負荷」の場合に用いられる負荷テーブル1112bの一例である。負荷テーブル1112は、「動作周波数」および「負荷」の各項目を含む。「動作周波数」には、CPU101を動作させるクロック周波数が格納される。「負荷」には、CPU101の負荷率が格納される。負荷率は、例えば、百分率(%)で示される。負荷テーブル1112は、「制御情報」の一例である。
【0053】
第2実施形態において、「高負荷」、「中負荷」、「低負荷」の分類は、CPU101の消費電力を考慮して決定される。CPU101の消費電力は、動作周波数によって異なる。
図12は、CPUの消費電力と動作周波数との対応の一例を示すグラフである。
図12のグラフでは、縦軸がCPU101の消費電力を示し、横軸が動作周波数を示す。
図12を参照すると理解できるように、CPU101の消費電力はCPU101の動作周波数に比例して変化するわけではなく、ある動作周波数を境にして増加の割合が高くなる。本実施形態ではこの境を変化点Rと称し、この変化点Rを考慮して「高負荷」、「中負荷」、「低負荷」の分類が決定される。変化点Rは、スマートフォン1aの設計時等において試験によって定めればよい。
【0054】
動作履歴保存域112aは、アクティビティごとの動作時間と負荷情報とを対応付けて記憶する。
図13は、第2実施形態における、動作履歴保存域に格納される動作履歴テーブルの一例を示す図である。動作履歴テーブル1121aには、「アクティビティ名」、「動作時間」および「負荷情報」が対応付けて格納される。「アクティビティ名」は、動作履歴テーブル1121と同一であるため、説明を省略する。「動作時間」は、アクティビティの起動処理が完了してから、当該アクティビティが終了するまでの時間である。「負荷情報」には、アクティビティの負荷を示す情報が格納される。
図13に例示される「負荷情報」には、アクティビティの負荷を「高負荷」、「中負荷」、「低負荷」の三段階で示した情報が格納される。
【0055】
ガバナー調整部103aは、実行中のアクティビティの動作時間および動作時間中のア
クティビティの負荷を測定する。負荷の測定では、ガバナー調整部103aは、例えば、アクティビティの負荷をCPU101の動作周波数ごとの頻度を示すヒストグラムを生成してもよい。
【0056】
図14は、ガバナー調整部が取得したヒストグラムの一例を示す図である。
図14において、縦軸は実行中のアクティビティ内におけるCPU101の動作周波数の割合を示し、横軸はCPU101の動作周波数を示す。
図14では、0.1GHz間隔で動作周波数の割合が取得されているが、取得する間隔が0.1GHzに限定されるわけではない。CPUの種類によって設定可能な動作周波数は異なるため、ガバナー調整部103aは、CPUに設定可能な動作周波数のそれぞれについて、動作周波数の割合を取得すればよい。
【0057】
ガバナー調整部103aは、生成したヒストグラムに基づいて、アクティビティの負荷を判定する。ガバナー調整部103aは、例えば、生成したヒストグラムにおいて、変化点R未満の範囲でCPU101が動作している頻度が高ければ「低負荷」と判定し、変化点Rを超えた範囲でCPU101が動作している頻度が高ければ「高負荷」と判定し、動作周波数それぞれにおけるCPU101が動作している頻度が同程度であれば「中負荷」と判定してもよい。また、ガバナー調整部103aは、消費電力の低減を目的とする場合と処理速度の向上を目的とする場合とで、「高負荷」、「中負荷」、「低負荷」を判定する基準を変更してもよい。ガバナー調整部103aは、アクティビティの動作時間およびアクティビティの負荷をアクティビティ名と対応付けて動作履歴テーブル1121aに格納する。
【0058】
また、ガバナー調整部103aは、起動処理が完了したアクティビティの「負荷情報」を動作履歴テーブル1121aから取得する。ガバナー調整部103aは、取得した「負荷情報」をガバナー制御部104aに通知する。
【0059】
ガバナー制御部104aは、パラメータ保存域111を参照して、ガバナー調整部103から通知された「負荷情報」に対応するガバナーテーブルを取得する。ガバナー制御部104aは、取得したガバナーテーブルにしたがって、周波数制御部105の制御を行う。
【0060】
(処理フロー)
図15は、第2実施形態に係る動作履歴保存処理の一例を示す図である。
図5と同一の処理には同一の符号を付し、その説明を省略する。以下、
図15を参照して、第2実施形態に係る動作履歴保存処理の一例について説明する。
【0061】
T11では、ガバナー調整部103aは、アクティビティの起動処理終了時刻を取得する。起動処理終了時刻は、すなわち、ユーザが当該アクティビティを操作可能な状態となった時刻ということができる。ガバナー調整部103aは、上述の通り、システムサービス1142からの完了通知によってアクティビティの起動処理終了を検知できる。
【0062】
T12では、ガバナー調整部103aは、CPU101の動作周波数の情報を取得する。動作周波数の情報は、動作周波数と、その動作周波数が継続する時間を対応付けて取得すればよい。ガバナー調整部103aは、例えば、0.8GHzが3秒継続し、1.0GHzが2秒継続し、1.3GHzが5秒継続し、0.9GHzが1秒継続する、といった情報を取得する。取得した情報は、例えば、記憶部11に記憶させればよい。
【0063】
T13では、ガバナー調整部103aは、アクティビティが終了したか否かを判定する。ガバナー調整部103aは、例えば、システムサービス1042から終了通知を通知されることで、アクティビティの終了を検知できる。アクティビティが終了した場合(T1
3でYES)、処理はT14に進められる。アクティビティが終了していない場合(T13でNO)、処理はT12に進められる。
【0064】
T14では、ガバナー調整部103aは、アクティビティの終了時刻を取得する。T15では、ガバナー調整部103aは、T11で取得した起動処理終了時刻とT14で取得したアクティビティ終了時刻とを基に、アクティビティの動作時間を算出する。ガバナー調整部103aは、算出した動作時間と、T12で取得した情報とを基に、CPU101の動作周波数の頻度を示すヒストグラムを生成する。すなわち、ガバナー調整部103aは、動作時間のうち、CPU101がどの動作周波数でどの程度の時間動作していたかを基にヒストグラムを生成すればよい。
【0065】
T16では、ガバナー調整部103aは、生成したヒストグラムを基に、変化点Rを考慮して、アクティビティの負荷を測定する。T17では、ガバナー調整部103aは、T16で決定したアクティビティの負荷とアクティビティ名とを対応付けて、動作履歴テーブル1121aに格納する。
【0066】
図16は、第2実施形態に係るガバナーテーブル選択処理の一例を示す図である。
図5と同一の処理には同一の符号を付し、その説明を省略する。以下、
図16を参照して、第2実施形態に係るガバナーテーブル選択処理の一例について説明する。
【0067】
T21では、ガバナー調整部103aは、T1で取得したアクティビティ名が動作履歴テーブル1121aに格納されているか否かを判定する。格納されている場合(T21でYES)、処理はT22に進められる。格納されていない場合(T21でNO)、処理はT25に進められる。
【0068】
T22では、ガバナー調整部103aは、T1で取得したアクティビティ名に対応付けられた負荷情報を動作履歴テーブル1121aから取得する。ガバナー調整部103aは、取得した負荷情報をガバナー制御部104aに通知する。
【0069】
T23では、ガバナー制御部104aは、T22で通知された負荷情報を基に、パラメータ保存域111を参照して、ガバナーテーブルを選定する。T24では、ガバナー制御部104aは、T23で選定したガバナーテーブルにしたがって、周波数制御部105を制御することで、CPU101に供給されるクロック周波数を制御する。
【0070】
T25では、ガバナー制御部104aは、デフォルトのガバナーテーブルを選定する。デフォルトのガバナーテーブルとして、何れのガバナーテーブルを採用するかはあらかじめ決定しておけばよい。例えば、デフォルトのガバナーテーブルとして、「負荷情報」が「中負荷」のガバナーテーブルを採用してもよい。T26では、
図15を参照して説明した動作履歴保存処理が実行される。
【0071】
<第2実施形態の効果>
第2実施形態では、起動処理完了後のユーザによる操作が可能な状態におけるアクティビティの負荷が測定され、測定された負荷に基づいて、ガバナーテーブルが選定される。ガバナーテーブルは、
図11に例示されるように、アクティビティの負荷に応じて、負荷率と動作周波数とが対応付けられる。すなわち、高負荷のアクティビティが実行されている場合、CPU101の負荷が低いうちにCPU101の動作周波数を上昇させることで、アクティビティの動作速度を改善できる。また、低負荷のアクティビティが実行されている場合、CPU101の負荷がある程度高くなるまではCPU101の動作周波数の上昇を抑制することで、消費電力を低減する。
【0072】
図17は、第2実施形態の効果を例示する図である。
図17では、縦軸がCPU101の動作周波数を示し、横軸が時間を示す。
図17では、時刻tにおいて、低負荷のアクティビティ1から高負荷のアクティビティ2に遷移した状態が例示される。また、
図17において、点線は第2実施形態適用前の動作周波数の遷移を例示し、実線は第2実施形態適用後の動作周波数の遷移を例示する。
図17を参照すると理解できるように、第2実施形態を適用前の方が第2実施形態適用後よりも動作周波数の変動が大きい。すなわち、第2実施形態が適用されることで、低負荷のアクティビティ1における動作周波数を低い状態で遷移させ、高負荷のアクティビティ2における動作周波数を高い状態で遷移させることができる。そのため、第2実施形態によれば、アクティビティの起動完了後におけるアクティビティの動作速度とスマートフォン1aの消費電力とのバランスを好適に保つことができる。
【0073】
第2実施形態では、アプリケーションプログラム113単位ではなく、アプリケーションプログラム113内の処理単位であるアクティビティごとに負荷が測定され、ガバナーテーブルが選定される。そのため、例えば、ゲームプログラムのような、シーン毎における負荷の変動が激しいアプリケーションプログラム113に対しても、各アクティビティに対して好適なガバナーテーブルを適用できる。
【0074】
第2実施形態において、動作履歴テーブル1121aの「負荷情報」に格納される情報として「高負荷」、「中負荷」、「低負荷」の三段階で例示したが、「負荷情報」に格納される情報がこのような情報に限定されるわけではない。「負荷情報」に格納される情報は、例えば、CPU101の負荷率、CPU101の動作クロックのヒストグラム、または、アクティビティの負荷に応じて選定するガバナーパラメータであってもよい。
【0075】
以上では、スマートフォンを用いて各実施形態について説明したが、開示の技術の適用対象がスマートフォンに限定されるわけではない。開示の技術は、ノート型パーソナルコンピュータ、タブレット型コンピュータ、ウェアラブルコンピュータ等の様々なバッテリを搭載した可搬型情報処理装置に対して好適である。
【0076】
以上で開示した実施形態や変形例はそれぞれ組み合わせる事ができる。例えば、第1実施形態と第2実施形態とを組み合わせることで、アクティビティの起動処理中には最大クロックでCPU101を駆動し、起動処理を終えると、アクティビティに適したガバナーテーブルを適用してもよい。このような処理により、アクティビティの起動処理時間を短縮しつつ、アクティビティの動作速度とスマートフォンの消費電力とを好適なバランスに保つことができる。
【0077】
<<コンピュータが読み取り可能な記録媒体>>
コンピュータその他の機械、装置(以下、コンピュータ等)に上記いずれかの機能を実現させる情報処理プログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
【0078】
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、Compact Disc Read Only Memory(CD-ROM)、Compact Disc - Recordable(CD-R)、Compact Disc - ReWriterable(CD-RW)、Digital Versatile Disc(DVD)、ブ
ルーレイディスク(BD)、Digital Audio Tape(DAT)、8mmテープ、フラッシュメモリなどのメモリカード等がある。また、コンピュータ等に固定された記録媒体として
ハードディスクやROM等がある。
【符号の説明】
【0079】
1、1a・・・スマートフォン
10・・・アプリケーションプロセッサ
101・・・CPU
102・・・スケジューラ
103、103a・・・ガバナー調整部
104、104a・・・ガバナー制御部
105・・・周波数制御部
106・・・電圧制御部
11・・・記憶部
111・・・パラメータ保存域
1111・・・ガバナー選定テーブル
112・・・動作履歴保存域
1121、1121a・・・動作履歴テーブル
113・・・アプリケーションプログラム
114・・・OS
1141・・・カーネル
1142・・・システムサービス
12・・・クロックコントローラ
13・・・電源制御部
14・・・バッテリ
15・・・通信部
16・・・表示部
17・・・入力部