JP6252333B2 - 装置 - Google Patents

装置 Download PDF

Info

Publication number
JP6252333B2
JP6252333B2 JP2014086923A JP2014086923A JP6252333B2 JP 6252333 B2 JP6252333 B2 JP 6252333B2 JP 2014086923 A JP2014086923 A JP 2014086923A JP 2014086923 A JP2014086923 A JP 2014086923A JP 6252333 B2 JP6252333 B2 JP 6252333B2
Authority
JP
Japan
Prior art keywords
power consumption
application
access
hardware
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2014086923A
Other languages
English (en)
Other versions
JP2015207128A (ja
Inventor
史生 ▲高▼瀬
史生 ▲高▼瀬
隆俊 中村
隆俊 中村
藤井 賢一
賢一 藤井
直貴 塩谷
直貴 塩谷
清隆 澤永
清隆 澤永
嘉伸 芳賀
嘉伸 芳賀
雅博 張間
雅博 張間
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014086923A priority Critical patent/JP6252333B2/ja
Publication of JP2015207128A publication Critical patent/JP2015207128A/ja
Application granted granted Critical
Publication of JP6252333B2 publication Critical patent/JP6252333B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Power Sources (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、消費電力を測定する装置に関する。
従来、端末の消費電力の分析において、メソッドごとの消費電力を算出する技術が知られている(たとえば、下記特許文献1参照。)。また、ユーザ端末がWEBシステムとの間のセッションに用いるセッションIDを生成する技術が知られている(たとえば、下記特許文献2参照。)。
特開2012−190447号公報 特開2013−235484号公報
しかしながら、上述した従来技術では、複数のアプリケーションソフトウェアが利用する周辺ハードウェアや共通システム処理において発生した消費電力がいずれのアプリケーションソフトウェアによるものか判別することが困難である。このため、アプリケーションソフトウェア単位の消費電力を精度よく測定することができないという問題がある。
1つの側面では、本発明は、アプリケーションソフトウェア単位の消費電力を精度よく測定することができる装置を提供することを目的とする。
上述した課題を解決し、目的を達成するため、本発明の一側面によれば、同一の周辺ハードウェアへアクセス可能な複数のアプリケーションソフトウェアを実行する実行部と、前記実行部により実行される前記アプリケーションソフトウェアのうちの測定対象のアプリケーションソフトウェアによる所定単位の各処理のうちの前記周辺ハードウェアへのアクセスに対して、前記測定対象のアプリケーションソフトウェアと対応付けた識別情報を付与し、付与した前記識別情報に基づいて、前記周辺ハードウェアへのアクセスのうちの前記測定対象のアプリケーションソフトウェアによるアクセスを検出し、検出した前記アクセスに応じた消費電力に基づいて、前記測定対象のアプリケーションソフトウェアのアプリケーションソフトウェア単位の消費電力を算出する測定部と、を備える装置が提案される。
また、本発明の別の側面によれば、同一の共通システム処理へアクセス可能な複数のアプリケーションソフトウェアを実行する実行部と、前記実行部により実行される前記アプリケーションソフトウェアのうちの測定対象のアプリケーションソフトウェアによる所定単位の各処理のうちの前記共通システム処理へのアクセスに対して、前記測定対象のアプリケーションソフトウェアと対応付けた識別情報を付与し、付与した前記識別情報に基づいて、前記共通システム処理へのアクセスのうちの前記測定対象のアプリケーションソフトウェアによるアクセスを検出し、検出した前記アクセスに応じた消費電力に基づいて、前記測定対象のアプリケーションソフトウェアのアプリケーションソフトウェア単位の消費電力を算出する測定部と、を備える装置が提案される。
本発明の一側面によれば、アプリケーションソフトウェア単位の消費電力を精度よく測定することができるという効果を奏する。
図1Aは、実施の形態1にかかる装置の一例を示す図である。 図1Bは、図1Aに示した装置における信号の流れの一例を示す図である。 図1Cは、実施の形態1にかかる装置の変形例を示す図である。 図1Dは、図1Cに示した装置における信号の流れの一例を示す図である。 図2は、実施の形態2にかかる端末の一例を示す図である。 図3Aは、ソフト消費電力測定システムを適用した端末の構成の一例を示す図である。 図3Bは、図3Aに示した端末の構成における信号の流れの一例を示す図である。 図4は、測定対象の各消費電力の一例を示す図である。 図5は、セッション管理テーブルの一例を示す図である。 図6は、アプリ処理動作時間格納テーブルの一例を示す図である。 図7は、セッション処理動作時間格納テーブルの一例を示す図である。 図8は、セッションのハードウェアアクセス情報管理テーブルの一例を示す図である。 図9は、ハードウェア動作情報管理テーブルの一例を示す図である。 図10は、アプリCPU消費電力格納テーブルの一例を示す図である。 図11は、セッションCPU消費電力格納テーブルの一例を示す図である。 図12は、セッションのハードウェア消費電力格納テーブルの一例を示す図である。 図13は、ハードウェア制御消費電力基準値格納テーブルの一例を示す図である。 図14は、動作ハードウェア消費電力基準値格納テーブルの一例を示す図である。 図15は、アプリ動作開始時の処理の一例を示すフローチャートである。 図16は、システム共通処理の実行の一例を示すフローチャートである。 図17は、アプリの消費電力の算出処理の一例を示すフローチャートである。
以下に図面を参照して、本発明にかかる装置の実施の形態を詳細に説明する。
(実施の形態1)
(実施の形態1にかかる装置)
図1Aは、実施の形態1にかかる装置の一例を示す図である。図1Bは、図1Aに示した装置における信号の流れの一例を示す図である。図1A,図1Bに示すように、実施の形態1にかかる装置100は、実行部110と、測定部120と、を備える情報処理装置である。
実行部110は、同一の周辺ハードウェア101へアクセス可能な複数のアプリケーションソフトウェア(以下、「アプリ」と称する。)を実行する。図1A,図1Bに示す例では、実行部110は、同一の周辺ハードウェア101へアクセスするアプリ111,112を実行する。
実行部110は、たとえばCPU(Central Processing Unit:中央処理装置)などのプロセッサである。周辺ハードウェア101は、たとえば、装置100の内部または外部の各ハードウェアのうちの、実行部110に対応するハードウェア(たとえばCPU)と異なるハードウェアである。周辺ハードウェア101へのアクセスは、後述する共通システム処理を介したアクセスであってもよいし、共通システム処理を介さないアクセスであってもよい。
測定部120は、実行部110によって実行されるアプリ111,112のうちの少なくともいずれかのアプリ単位の消費電力を測定する。ここでは、アプリ111,112のうちのアプリ111のアプリ単位の消費電力を測定する場合について説明する。
この場合に、測定部120は、実行部110により実行される測定対象のアプリ111による所定単位の各処理のうちの周辺ハードウェア101へのアクセスに対して識別情報(ID)を生成して付与する。この識別情報は所定単位の各処理ごとにユニークなものである。また、測定部120は、付与した識別情報をアプリ111と対応付けて記憶する。なお、測定部120は、周辺ハードウェア101へのアクセスに限らず、アプリ111による所定単位の各処理について識別情報を付与してもよい。所定単位は、一例としてはトランザクション単位とすることができる。
また、測定部120は、周辺ハードウェア101への各アクセスを監視し、周辺ハードウェア101への各アクセスのうちのアプリ111によるアクセスを検出する。このとき、測定部120は、アプリ111と対応付けた識別情報を用いることで、周辺ハードウェア101への各アクセスのうちのアプリ111によるアクセスを検出することができる。そして、測定部120は、検出したアプリ111によるアクセスに応じた消費電力に基づいて、アプリ111のアプリ単位の消費電力を算出する。
このように、実施の形態1によれば、周辺ハードウェアへのアクセスに対してアプリと対応付けた識別情報を付与することで、各アクセスがいずれのアプリによるものかが判別可能になる。これにより、アプリ単位の消費電力を精度よく測定することができる。
<実行部における消費電力の導出>
たとえば、測定部120は、検出したアプリ111によるアクセスに応じた実行部110における消費電力を導出し、導出した消費電力に基づくアプリ111の消費電力を算出してもよい。検出したアプリ111によるアクセスに応じた実行部110における消費電力は、たとえば、周辺ハードウェア101へのアクセスによる実行部110における所定の消費電力を示す消費電力情報に基づいて導出することができる。消費電力情報は、たとえば装置100のメモリに記憶しておくことができる。
<周辺ハードウェアにおける消費電力の導出>
また、測定部120は、検出したアプリ111によるアクセスに応じた周辺ハードウェア101における消費電力を導出し、導出した消費電力に基づくアプリ111の消費電力を算出してもよい。検出したアプリ111によるアクセスに応じた周辺ハードウェア101における消費電力は、たとえば、周辺ハードウェア101へのアクセスによる周辺ハードウェア101における所定の消費電力を示す消費電力情報に基づいて導出することができる。消費電力情報は、たとえば装置100のメモリに記憶しておくことができる。
この場合に、たとえば、測定部120は、検出したアプリ111によるアクセスによって動作を開始した周辺ハードウェア101が、検出したアプリ111によるアクセスとは異なる処理によって停止するまでの動作時間を検出する。検出したアプリ111によるアクセスとは異なる処理は、アプリ111による別の処理であってもよいし、アプリ112による処理であってもよいし、アプリ111,112と異なるソフトウェア(たとえばオペレーティングシステム)による処理であってもよい。
測定部120は、検出した周辺ハードウェア101の動作時間と、周辺ハードウェア101の動作時間あたりの消費電力を示す消費電力情報と、に基づいて、検出したアプリ111によるアクセスに応じた周辺ハードウェア101における消費電力を導出する。これにより、検出したアプリ111によるアクセスによって開始した周辺ハードウェア101の動作が継続する場合でも、検出したアプリ111によるアクセスに応じた周辺ハードウェア101における消費電力を導出することができる。
たとえば、測定部120は、検出したアプリ111によるアクセスによって動作を開始した周辺ハードウェア101と、このアクセスを識別する識別情報と、を対応付ける対応情報を生成する。これにより、測定部120は、生成した対応情報に基づいて、検出したアプリ111によるアクセスによって動作を開始した周辺ハードウェア101の動作時間を検出することが可能になる。
(実施の形態1にかかる装置の変形例)
図1Cは、実施の形態1にかかる装置の変形例を示す図である。図1Dは、図1Cに示した装置における信号の流れの一例を示す図である。図1C,図1Dにおいて、図1A,図1Bに示した部分と同様の部分については同一の符号を付して説明を省略する。
実行部110は、同一の共通システム処理102へアクセス可能な複数のアプリを実行する。図1C,図1Dに示す例では、実行部110は、同一の共通システム処理102へアクセスするアプリ111,112を実行する。共通システム処理102は、たとえば共通システム処理102によって実行される処理である。共通システム処理102は、たとえば、装置100の各アプリから呼出可能な関数などのサブルーチンである。
測定部120は、実行部110により実行される測定対象のアプリ111による所定単位の各処理のうちの共通システム処理102へのアクセスを識別する識別情報(ID)を付与する。また、測定部120は、付与した識別情報をアプリ111と対応付けて記憶する。なお、測定部120は、共通システム処理102へのアクセスに限らず、アプリ111による所定単位の各処理について識別情報を付与してもよい。所定単位は、一例としてはトランザクション単位とすることができる。
また、測定部120は、共通システム処理102への各アクセスを監視し、共通システム処理102への各アクセスのうちのアプリ111によるアクセスを検出する。このとき、測定部120は、アプリ111と対応付けた識別情報を用いることで、共通システム処理102への各アクセスのうちのアプリ111によるアクセスを検出することができる。そして、測定部120は、検出したアプリ111によるアクセスに応じた消費電力に基づいて、アプリ111のアプリ単位の消費電力を算出する。
このように、実施の形態1によれば、周辺ハードウェアではなく共通システム処理へのアクセスに対してアプリと対応付けた識別情報を付与することで、各アクセスがいずれのアプリによるものかを判別可能にしてもよい。これにより、アプリ単位の消費電力を精度よく測定することができる。
また、図1A〜図1Dに示した構成を組み合わせてもよい。この場合に、たとえば、測定部120は、実行部110により実行される測定対象のアプリ111による所定単位の各処理のうちの周辺ハードウェア101および共通システム処理102への各アクセスを識別する識別情報を付与する。
また、測定部120は、周辺ハードウェア101および共通システム処理102への各アクセスを監視し、周辺ハードウェア101および共通システム処理102への各アクセスのうちのアプリ111によるアクセスを検出する。このとき、測定部120は、アプリ111と対応付けた識別情報を用いることで、周辺ハードウェア101および共通システム処理102への各アクセスのうちのアプリ111によるアクセスを検出することができる。そして、測定部120は、検出したアプリ111によるアクセスに応じた消費電力に基づいて、アプリ111のアプリ単位の消費電力を算出する。
(実施の形態2)
(実施の形態2にかかる端末)
図2は、実施の形態2にかかる端末の一例を示す図である。図2に示すように、実施の形態2にかかる端末200は、CPU210と、メモリ220と、周辺ハードウェア230と、を備える。端末200は、たとえば携帯電話などの通信端末である。
図1A〜図1Dに示した装置100は、たとえば端末200に適用することができる。この場合に、図1A〜図1Dに示した実行部110は、たとえばCPU210によって実現することができる。また、図1A〜図1Dに示した測定部120は、たとえばCPU210によって実現することができる。
図1A,図1Bに示した周辺ハードウェア101は、たとえば周辺ハードウェア230によって実現することができる。また、図1C,図1Dに示した共通システム処理102は、たとえばメモリ220のソフトウェア221に含まれ、アプリ222〜224によって呼び出される共通システム処理によって実現することができる。
CPU210は、端末200の全体の制御を司る。また、CPU210は、メモリ220にロードされた各アプリを実行する。図2に示す例では、CPU210は、CPUコア211,212を備えるデュアルコアCPUである。ただし、CPU210におけるCPUコアの数は、1つでもよいし、3つ以上であってもよい。
メモリ220は、CPU210のワークエリアとして使用される。端末200を動作させる各種のプログラムは、メモリ220にロードされてCPU210によって実行される。ソフトウェア221は、メモリ220にロードされるプログラムに対応するソフトウェアである。図2に示す例では、ソフトウェア221にはそれぞれ異なるアプリ222〜224が含まれる。
周辺ハードウェア230は、CPU210によって制御される各種のハードウェアである。図2に示す例では、周辺ハードウェア230には、LCD231と、カメラ232と、GPS233と、センサ234と、LED235と、USB236と、無線通信I/F237と、不揮発メモリ238と、バッテリ239と、が含まれる。
LCD231(Liquid Crystal Display:液晶ディスプレイ)は、ユーザに対して各種の情報を表示するディスプレイである。アプリ222〜224によるLCD231へのアクセスには、たとえば、LCD231の電源のオン/オフの制御や、LCD231による情報表示の制御などが含まれる。また、LCD231がタッチパネルである場合は、アプリ222〜224によるLCD231へのアクセスには、たとえば、LCD231に対するユーザによるタッチの状態を示す情報の取得などが含まれる。
カメラ232は、レンズおよび撮像素子を含み撮影を行うデジタルカメラである。アプリ222〜224によるカメラ232へのアクセスには、たとえば、カメラ232による撮影の制御や、撮影によって得られた画像データの取得などが含まれる。
GPS233(Global Positioning System:全地球測位システム)は、GPS衛星を利用して端末200を特定するユニットである。アプリ222〜224によるGPS233へのアクセスには、たとえば、GPS233に対する測定指示や、測定結果の取得などが含まれる。
センサ234は、輝度、温度、加速度などの各種の測定を行うセンサである。アプリ222〜224によるセンサ234へのアクセスには、たとえば、センサ234に対する測定指示や、測定結果の取得などが含まれる。
LED235(Light Emitting Diode:発光ダイオード)は、発光によりユーザへの通知などを行う発光部である。アプリ222〜224によるLED235へのアクセスには、たとえば、LED235に対する発光指示などが含まれる。
USB236(Universal Serial Bus)は、端末200に対して各種の周辺機器を接続するためのシリアルバスである。アプリ222〜224によるUSB236へのアクセスには、たとえば、USB236の電源のオン/オフの制御や、USB236の通信の制御などが含まれる。
無線通信I/F237は、無線通信を行う通信インタフェースである。無線通信I/F237には、たとえば、3G(3rd Generation:第3世代移動通信システム)やLTE(Long Term Evolution)による無線通信を行うインタフェースが含まれる。また、無線通信I/F237には、Wi−Fi(Wireless−Fidelity)やBluetoothなどの無線通信を行うインタフェースが含まれていてもよい(Wi−FiおよびBluetoothは登録商標)。アプリ222〜224による無線通信I/F237へのアクセスには、たとえば、無線通信I/F237の電源のオン/オフの制御や、無線通信I/F237の通信の制御などが含まれる。
不揮発メモリ238は、メモリ220にロードされてCPU210によって実行されるプログラムや各種のデータが記憶されるメモリである。アプリ222〜224による不揮発メモリ238へのアクセスには、たとえば、不揮発メモリ238に対する電源のオン/オフの制御や、不揮発メモリ238における情報の入出力などが含まれる。
バッテリ239は、端末200の各部に電源を供給するバッテリである。たとえば、バッテリ239は、CPU210からの制御によって、バッテリ残量を測定し、測定結果をCPU210へ通知する機能を有する。アプリ222〜224によるバッテリ239へのアクセスには、たとえば、バッテリ239が供給する電源の電圧制御や、バッテリ239からのバッテリ残量の測定結果の取得などが含まれる。
(ソフト消費電力測定システムを適用した端末の構成)
図3Aは、ソフト消費電力測定システムを適用した端末の構成の一例を示す図である。図3Bは、図3Aに示した端末の構成における信号の流れの一例を示す図である。図3A,図3Bにおいて、図2に示した部分と同様の部分については同一の符号を付して説明を省略する。
図3A,図3Bに示すように、端末200は、周辺ハードウェア230と、ソフトウェア実行部310と、セッション管理部320と、処理履歴管理部330と、消費電力算出部340と、アプリ消費電力出力部350と、を備える。
ソフトウェア実行部310、セッション管理部320、処理履歴管理部330、消費電力算出部340、アプリ消費電力出力部350は、たとえばメモリ220に読み込まれ、CPU210により実行されるソフトウェア処理によって実現することができる。
図1A〜図1Dに示した実行部110は、たとえばソフトウェア実行部310によって実現することができる。図1A〜図1Dに示した測定部120は、たとえばセッション管理部320、処理履歴管理部330および消費電力算出部340によって実現することができる。図1C,図1Dに示した共通システム処理102は、たとえばソフトウェア実行部310のシステム共通処理部312によって実行される処理である。
<ソフトウェア実行部>
ソフトウェア実行部310は、複数のアプリのソフトウェア処理を実行する。ここでは、ソフトウェア実行部310によって実行される複数のアプリのそれぞれを消費電力の測定対象とする場合について説明する。ソフトウェア実行部310は、アプリ部311と、システム共通処理部312と、を備える。
アプリ部311は、複数のアプリ(たとえば図2に示したアプリ222〜224)を実行する。以下、アプリ部311が実行するアプリのシステム共通処理部312を利用する所定単位の処理(たとえばトランザクション処理)をセッションと称する。システム共通処理部312を利用する処理には、周辺ハードウェア230を利用する処理も含まれる。
システム共通処理部312は、アプリ部311によって実行される個々のアプリから共通で利用される、標準ライブラリなどのシステム共通処理を実行する。たとえば、システム共通処理には、汎用的な演算(たとえば算術演算、関係演算、論理演算など)を行う処理が含まれる。
また、システム共通処理には、周辺ハードウェア230へアクセスする処理が含まれる。また、システム共通処理には、周辺ハードウェア230にアクセスして周辺ハードウェア230の動作を開始させる処理や、周辺ハードウェア230にアクセスして周辺ハードウェア230の動作を停止させる処理が含まれる。
アプリ部311は、実行するアプリにおいて、システム共通処理部312を利用するセッションが発生するごとにユニークなセッションIDを生成し、生成したセッションIDを付与してシステム共通処理部312のシステム処理を呼び出す。そして、システム共通処理部312は、生成したIDを、セッションが発生したアプリを示すアプリIDとともにセッション管理部320へ通知する。
<セッション管理部>
セッション管理部320は、セッション管理テーブルを管理する。セッション管理テーブルは、ソフトウェア実行部310から通知されるセッションIDとアプリIDとの対応情報である(たとえば図5参照)。
<処理履歴管理部>
処理履歴管理部330は、ソフトウェア実行部310における各処理の履歴を管理する。処理履歴管理部330は、アプリ処理動作時間管理部331と、セッション処理動作時間管理部332と、ハードウェアアクセス管理部333と、ハードウェア動作時間管理部334と、を備える。
アプリ処理動作時間管理部331は、アプリ部311における各アプリの実行を監視し、アプリ部311のアプリごとの処理動作時間を示すアプリ処理動作時間格納テーブル(たとえば図6参照)を管理する。
セッション処理動作時間管理部332は、システム共通処理部312の各セッションを監視し、システム共通処理部312のセッションごとの処理動作時間を示すセッション処理動作時間格納テーブル(たとえば図7参照)を管理する。
ハードウェアアクセス管理部333は、システム共通処理部312の各セッションを監視し、システム共通処理部312による周辺ハードウェア230へのアクセス履歴を示すハードウェアアクセス情報管理テーブル(たとえば図8参照)を管理する。
ハードウェア動作時間管理部334は、システム共通処理部312のセッションを監視し、アクセスによって電力を消費し続ける周辺ハードウェア230の動作時間を示すハードウェア動作情報管理テーブル(たとえば図9参照)を管理する。
<消費電力算出部>
消費電力算出部340は、セッション管理部320および処理履歴管理部330によって管理される各テーブルに基づいて、ソフトウェア実行部310における個々のアプリの消費電力を算出する。消費電力算出部340は、CPU消費電力算出部341と、ハードウェア消費電力算出部342と、アプリ消費電力算出部343と、を備える。
CPU消費電力算出部341は、アプリ処理動作時間管理部331のアプリ処理動作時間格納テーブルに基づいて、アプリごとに生じるCPU消費電力(たとえば図10参照)を算出する。CPU消費電力は、たとえばアプリ部311(CPU210)における消費電力である。たとえば、CPU消費電力算出部341は、アプリごとに、アプリ処理動作時間格納テーブルが示すアプリ処理動作時間に所定の単位消費電力を乗じることでCPU消費電力を算出する。CPU消費電力算出部341は、算出したアプリごとのCPU消費電力をアプリ消費電力算出部343へ出力する。
また、CPU消費電力算出部341は、セッション処理動作時間管理部332のセッション処理動作時間格納テーブルに基づいて、セッションごとに生じるCPU消費電力(たとえば図11参照)を算出する。たとえば、CPU消費電力算出部341は、セッションごとに、セッション処理動作時間格納テーブルが示すセッション処理動作時間に所定の単位消費電力を乗じることでCPU消費電力を算出する。CPU消費電力算出部341は、算出したセッションごとのCPU消費電力をアプリ消費電力算出部343へ出力する。
ハードウェア消費電力算出部342は、ハードウェアアクセス管理部333のハードウェアアクセス情報管理テーブルに基づいて、周辺ハードウェア230へのアクセスで生じる消費電力を算出する。また、ハードウェア消費電力算出部342は、ハードウェア動作時間管理部334のハードウェア動作情報管理テーブルに基づいて、周辺ハードウェア230へのアクセスによって動作を開始した周辺ハードウェア230の動作時間に応じた消費電力を算出する。ハードウェア消費電力算出部342は、算出した各消費電力をセッションごとにアプリ消費電力算出部343へ出力する。
アプリ消費電力算出部343は、アプリIDごとに、CPU消費電力算出部341から出力された各消費電力と、ハードウェア消費電力算出部342から出力された各消費電力と、の合計値を算出する。このとき、アプリ消費電力算出部343は、セッション管理部320のセッション管理テーブルが示すセッションIDとアプリIDとの対応情報を用いることで、セッションIDごとの消費電力からアプリIDごとの消費電力を求めることができる。アプリ消費電力算出部343は、算出したアプリIDごとの消費電力の合計値を、アプリごとの消費電力としてアプリ消費電力出力部350へ出力する。
<アプリ消費電力出力部>
アプリ消費電力出力部350は、アプリ消費電力算出部343から出力されたアプリごとの消費電力を出力する。アプリ消費電力出力部350による消費電力の出力先は、ユーザであってもよいし、ソフトウェア実行部310において実行され、各アプリの消費電力に基づく処理を行うアプリであってもよい。
(測定対象の各消費電力)
図4は、測定対象の各消費電力の一例を示す図である。図4において、図2に示した部分と同様の部分については同一の符号を付して説明を省略する。図4に示すアプリ411,412は、メモリ220にロードされてCPU210によって実行される各アプリである。システム共通処理420は、アプリ411,412によって呼び出される共通の処理である。実施の形態2にかかる測定方法による測定対象には、たとえば図4に示すパターン401〜408がある。
パターン401は、アプリ411が単独で動作するパターンである。パターン402は、アプリ412が単独で動作するパターンである。パターン401,402においては、アプリの単独動作分のCPU消費電力が生じる。
パターン403〜405は、アプリ411が動作中にシステム共通処理420を呼び出すパターンである。パターン406,407は、アプリ412が動作中にシステム共通処理420を呼び出すパターンである。パターン403〜407においては、それぞれトランザクション単位で生成されたセッションIDを利用してアクセスが区別される。また、パターン403〜407においては、それぞれのセッションのシステム共通処理の動作時間分のCPU消費電力が追加で生じる。
また、パターン404〜407は、システム共通処理420の動作中に周辺ハードウェア230にアクセスするパターンを示しており、それぞれトランザクション単位で生成されたセッションIDを利用してアクセスが区別される。パターン404〜407においては、それぞれのセッションのハードウェアアクセスに応じたハードウェア消費電力が追加で生じる。
また、パターン405は、周辺ハードウェア230にアクセスした際に、パターン408に示すハードウェアトランザクション処理を開始している場合を示している。また、パターン407は、周辺ハードウェア230にアクセスした際に、パターン408に示すハードウェアトランザクション処理を終了している場合をそれぞれ示している。パターン405,407においては、ハードウェアトランザクション処理動作分のハードウェア消費電力が追加で生じる。実施の形態2においては、パターン408についての消費電力を、パターン408の処理を開始したパターン405の消費電力として扱う。
また、実施の形態2にかかる測定方法による測定対象には、パターン401〜408に限らず、たとえば、アプリ411があるセッションで開始させた周辺ハードウェア230の動作を、アプリ411の別のセッションで停止させるパターンが含まれていてもよい。このパターンの周辺ハードウェア230の動作時間に応じた消費電力については、アプリ411の消費電力として扱う。
(セッション管理テーブル)
図5は、セッション管理テーブルの一例を示す図である。セッション管理部320には、たとえば図5に示すセッション管理テーブル500が記憶される。セッション管理テーブル500は、アプリIDとセッションIDとの対応情報が格納されるテーブルである。セッション管理部320は、アプリ部311から通知されるアプリIDとセッションIDに基づいてセッション管理テーブル500を管理する。
上述したように、セッションはアプリの所定単位の各処理であるため、1つのアプリに対して複数発生する。このため、図5に示すように、セッション管理テーブル500において、同一のアプリID(「10」)に複数のセッションID(「100010」,「100012」)が含まれる場合がある。
(アプリ処理動作時間格納テーブル)
図6は、アプリ処理動作時間格納テーブルの一例を示す図である。アプリ処理動作時間管理部331には、たとえば図6に示すアプリ処理動作時間格納テーブル600が記憶される。アプリ処理動作時間格納テーブル600は、アプリIDごとにアプリ処理動作時間が格納されるテーブルである。アプリ処理動作時間管理部331は、アプリ部311における各アプリの実行を監視し、アプリ部311のアプリごとの処理動作時間を測定することによりアプリ処理動作時間格納テーブル600を管理する。
(セッション処理動作時間格納テーブル)
図7は、セッション処理動作時間格納テーブルの一例を示す図である。セッション処理動作時間管理部332には、たとえば図7に示すセッション処理動作時間格納テーブル700が記憶される。セッション処理動作時間格納テーブル700は、セッションIDごとに、セッション処理動作時間が格納されるテーブルである。セッション処理動作時間管理部332は、システム共通処理部312の各セッションを監視し、システム共通処理部312のセッションごとの処理動作時間を測定することによりセッション処理動作時間格納テーブル700を管理する。
(セッションのハードウェアアクセス情報管理テーブル)
図8は、セッションのハードウェアアクセス情報管理テーブルの一例を示す図である。ハードウェアアクセス管理部333には、たとえば図8に示すハードウェアアクセス情報管理テーブル800が記憶される。ハードウェアアクセス情報管理テーブル800は、セッションIDごとに、ハード処理IDと、制御パラメータ(係数)と、を含むテーブルである。ハード処理IDは、セッションIDが示すセッションによるアクセス処理の種類を示すIDである。制御パラメータは、ハード処理IDが示すアクセス処理に応じて設定された係数である。
ハードウェアアクセス管理部333は、システム共通処理部312の各セッションを監視し、システム共通処理部312による周辺ハードウェア230へのアクセス履歴を生成することによりハードウェアアクセス情報管理テーブル800を管理する。
(ハードウェア動作情報管理テーブル)
図9は、ハードウェア動作情報管理テーブルの一例を示す図である。ハードウェア動作時間管理部334には、たとえば図9に示すハードウェア動作情報管理テーブル900が記憶される。ハードウェア動作情報管理テーブル900は、セッションIDごとに、動作ハードIDと、制御パラメータ(係数)と、開始時刻と、動作時間と、を含むハードウェア動作情報が格納されるテーブルである。
動作ハードIDは、セッションIDが示すセッションによるアクセスで動作を開始した周辺ハードウェアを示す識別情報である。制御パラメータは、動作ハードIDが示す周辺ハードウェアに応じて設定された係数である。開始時刻は、セッションIDが示すセッションによるアクセスで動作を開始した周辺ハードウェアの動作の開始時刻であって、たとえばセッションIDが示すセッションの発生時刻である。
動作時間は、セッションIDが示すセッションによるアクセスで動作を開始した周辺ハードウェアの動作時間であって、たとえば、開始時刻と、別のセッションによってこの周辺ハードウェアの動作が停止した時刻(または現在時刻)との差分である。セッションIDが示すセッションによるアクセスで動作を開始した周辺ハードウェアが停止していない場合は、動作時間には「動作中」が格納される。
ハードウェア動作時間管理部334は、システム共通処理部312のセッションを監視し、アクセスによって電力を消費し続ける周辺ハードウェア230の動作時間を測定することでハードウェア動作情報管理テーブル900を管理する。
ハードウェア動作情報管理テーブル900は、動作を開始した周辺ハードウェア101とセッションIDとを対応付ける対応情報を含む。
(アプリCPU消費電力格納テーブル)
図10は、アプリCPU消費電力格納テーブルの一例を示す図である。CPU消費電力算出部341は、アプリCPU消費電力の算出結果をたとえば図10に示すアプリCPU消費電力格納テーブル1000に格納する。アプリCPU消費電力格納テーブル1000は、アプリIDごとのCPU消費電力[μWh]を示す。
(セッションCPU消費電力格納テーブル)
図11は、セッションCPU消費電力格納テーブルの一例を示す図である。CPU消費電力算出部341は、セッションCPU消費電力の算出結果をたとえば図11に示すセッションCPU消費電力格納テーブル1100に格納する。セッションCPU消費電力格納テーブル1100は、セッションIDごとのCPU消費電力[μWh]を示す。
(セッションのハードウェア消費電力格納テーブル)
図12は、セッションのハードウェア消費電力格納テーブルの一例を示す図である。ハードウェア消費電力算出部342は、ハードウェア消費電力の算出結果をたとえば図12に示すハードウェア消費電力格納テーブル1200に格納する。ハードウェア消費電力格納テーブル1200は、セッションIDごとのハードウェア消費電力[μWh]を示す。
(ハードウェア制御消費電力基準値格納テーブル)
図13は、ハードウェア制御消費電力基準値格納テーブルの一例を示す図である。端末200のメモリ(たとえばメモリ220や不揮発メモリ238)には、たとえば図13に示すハードウェア制御消費電力基準値格納テーブル1300が予め記憶されている。ハードウェア制御消費電力基準値格納テーブル1300は、ハード処理IDごとに、ハード処理IDが示すアクセス処理を実行した場合の一回あたりの消費電力(消費電力基準値)[μW]を示す。
ハードウェア消費電力算出部342は、ハードウェアアクセス情報管理テーブル800(図8参照)が示すハードウェアアクセス情報とハードウェア制御消費電力基準値格納テーブル1300とを用いて、ハード制御分のハードウェア消費電力を算出する。ハード制御分のハードウェア消費電力の算出については後述する(たとえば図17参照)。
(動作ハードウェア消費電力基準値格納テーブル)
図14は、動作ハードウェア消費電力基準値格納テーブルの一例を示す図である。端末200のメモリ(たとえばメモリ220や不揮発メモリ238)たとえば図14に示す動作ハードウェア消費電力基準値格納テーブル1400が予め記憶されている。動作ハードウェア消費電力基準値格納テーブル1400は、動作ハードIDごとに、動作ハードIDが示す周辺ハードウェアが動作した場合の単位時間あたりの消費電力(消費電力基準値)[μW/s]を示す。
ハードウェア消費電力算出部342は、ハードウェア動作情報管理テーブル900(図9参照)が示すハードウェア動作情報と動作ハードウェア消費電力基準値格納テーブル1400とを用いて、動作ハード分のハードウェア消費電力を算出する。動作ハード分のハードウェア消費電力の算出については後述する(たとえば図17参照)。
(アプリ動作開始時の処理)
図15は、アプリ動作開始時の処理の一例を示すフローチャートである。端末200は、消費電力の測定モード中(たとえば図17参照)にアプリの動作を開始する場合(アプリ動作開始時)に、たとえば図15に示す各ステップを実行する。図15に示す各ステップは、たとえばアプリ部311、セッション管理部320およびアプリ処理動作時間管理部331によって実行される。まず、端末200は、動作を開始する対象アプリのアプリIDを生成する(ステップS1501)。
つぎに、端末200は、対象アプリの処理を所定単位だけ実行する(ステップS1502)。この所定単位は、一例としては、トランザクション単位や、アプリからアプリ部311に制御が戻るまでの処理単位である。なお、ステップS1502の処理においてシステム共通処理の呼出があった場合は、システム共通処理はステップS1502においては実行されず、後述のステップS1507〜S1509において実行される。
つぎに、端末200は、ステップS1502の処理にかかった時間によって、対象アプリのアプリ処理動作時間を加算する(ステップS1503)。たとえば、端末200は、アプリ処理動作時間格納テーブル600(図6参照)における対象アプリに対応するアプリ処理動作時間に、ステップS1502の処理にかかった時間を加算する。
つぎに、端末200は、割り込み処理などで対象アプリの処理を中断するか否かを判断する(ステップS1504)。割り込み処理は、たとえばオペレーティングシステムのCPU制御などによって発生する。
ステップS1504において、対象アプリの処理を中断すると判断した場合(ステップS1504:Yes)は、端末200は、ステップS1505へ移行する。すなわち、端末200は、対象アプリの処理を再開するか否かを判断し(ステップS1505)、対象アプリの処理を再開すると判断するまで待つ(ステップS1505:Noのループ)。これにより、対象アプリの処理が中断した状態となる。対象アプリの処理を再開すると判断すると(ステップS1505:Yes)、端末200は、ステップS1502へ戻る。
ステップS1504において、対象アプリの処理を中断しないと判断した場合(ステップS1504:No)は、端末200は、ステップS1502の処理においてシステム共通処理の呼出があったか否かを判断する(ステップS1506)。システム共通処理の呼出がなかった場合(ステップS1506:No)は、端末200は、ステップS1510へ移行する。
ステップS1506において、システム共通処理の呼出があった場合(ステップS1506:Yes)は、端末200は、呼出があったシステム共通処理の呼出(アクセス)に対してセッションIDを生成する(ステップS1507)。これによりセッションが確立される。つぎに、端末200は、ステップS1507によって生成したセッションIDを、ステップS1501によって生成したアプリIDと対応付けてセッション管理テーブル500(図5参照)に登録する(ステップS1508)。
つぎに、端末200は、ステップS1502において呼出があったシステム共通処理を、システムIDを付与して実行する(ステップS1509)。ステップS1509において、端末200は、ステップS1507によって生成したセッションIDを付与して(たとえば呼出パラメータに含めて)システム共通処理を呼び出すことでシステム共通処理を実行する。システム共通処理の実行については後述する(たとえば図16参照)。
つぎに、端末200は、対象アプリの処理を継続するか否かを判断する(ステップS1510)。ステップS1510の判断は、たとえば対象アプリの処理がすべて終了したか否かや、対象アプリの処理の終了がユーザやオペレーティングシステムなどから指示されたか否かによって判断することができる。対象アプリの処理を継続すると判断した場合(ステップS1510:Yes)は、端末200は、ステップS1502へ戻る。
ステップS1510において、対象アプリの処理を継続しないと判断した場合(ステップS1510:No)は、端末200は、一連の処理を終了する。
(システム共通処理の実行)
図16は、システム共通処理の実行の一例を示すフローチャートである。端末200は、図15に示したステップS1509において、システム共通処理として、たとえば図16に示す各ステップを実行する。
図16に示す各ステップは、たとえばシステム共通処理部312、セッション処理動作時間管理部332、ハードウェアアクセス管理部333およびハードウェア動作時間管理部334によって実行される。また、図16に示す各ステップにおいては、呼出時に付与されたセッションIDを用いて対象セッションを維持することができる。
まず、端末200は、対象セッションのシステム共通処理を所定単位だけ実行する(ステップS1601)。この所定単位は、一例としては、トランザクション単位や、アプリからシステム共通処理部312に制御が戻るまでの処理単位である。
つぎに、端末200は、ステップS1601の処理にかかった時間によって、対象セッションのセッション処理動作時間を加算する(ステップS1602)。たとえば、端末200は、セッション処理動作時間格納テーブル700(図7参照)における対象セッションIDに対応するセッション処理動作時間に、ステップS1601の処理にかかった時間を加算する。
つぎに、端末200は、対象セッションの処理を割り込み処理などで中断するか否かを判断する(ステップS1603)。対象セッションの処理を中断すると判断した場合(ステップS1603:Yes)は、端末200は、対象セッションの処理を再開するか否かを判断し(ステップS1604)、対象セッションの処理を再開すると判断するまで待つ(ステップS1604:Noのループ)。これにより、対象セッションの処理が中断した状態となる。対象セッションの処理を再開すると判断すると(ステップS1604:Yes)、端末200は、ステップS1601へ戻る。
ステップS1603において、対象セッションの処理を中断しないと判断した場合(ステップS1603:No)は、端末200は、ステップS1601の処理において周辺ハードウェアの制御があったか否かを判断する(ステップS1605)。周辺ハードウェアの制御がなかった場合(ステップS1605:No)は、端末200は、ステップS1611へ移行する。
ステップS1605において、周辺ハードウェアの制御があった場合(ステップS1605:Yes)は、端末200は、ハードウェアアクセス情報管理テーブル800(図8参照)にハードウェアアクセス情報を保存する(ステップS1606)。ハードウェアアクセス情報には、たとえば、対象セッションのセッションIDと、セッションIDおよびハードウェアアクセス制御によって決まるハード処理IDと、ハードウェアアクセス制御の種類によって決まる制御パラメータと、が含まれる。
つぎに、端末200は、ステップS1601の処理において、周辺ハードウェアの動作の開始または終了の制御があったか否かを判断する(ステップS1607)。周辺ハードウェアの動作の開始の制御は、たとえば、周辺ハードウェアの起動(電源供給開始)などであり、周辺ハードウェアの継続動作が開始されるものである。周辺ハードウェアの動作の終了の制御は、たとえば、動作中の周辺ハードウェアへの電力供給の停止などであり、継続していた周辺ハードウェアの動作を停止させるものである。
ステップS1607において、周辺ハードウェアの動作の開始の制御も終了の制御もなかった場合(ステップS1607:No)は、端末200は、ステップS1611へ移行する。周辺ハードウェアの動作の開始または終了の制御があった場合(ステップS1607:Yes)は、端末200は、ステップS1601の処理にあったのが開始の制御であったか否かを判断する(ステップS1608)。
ステップS1608において、開始の制御であった場合(ステップS1608:Yes)は、端末200は、ハードウェア動作情報をハードウェア動作情報管理テーブル900(図9参照)に追加し(ステップS1609)、ステップS1611へ移行する。ハードウェア動作情報には、対象セッションのセッションIDと、動作ハードIDと、制御パラメータと、開始時刻と、が含まれる。動作ハードIDは、セッションIDおよびハードウェア動作によって決まるIDである。制御パラメータは、ハードウェア制御時の設定パラメータによって決まる係数である。開始時刻は、現在時刻(たとえばステップS1609における時刻)である。
ステップS1608において、開始の制御ではなく終了の制御である場合(ステップS1608:No)は、端末200は、ハードウェア動作情報管理テーブル900(図9参照)における対象ハードの動作時間を更新する(ステップS1610)。たとえば、端末200は、ハードウェア動作情報管理テーブル900のうちの対象セッションに対応する開始時刻と現在時刻から算出した動作時間によって、ハードウェア動作情報管理テーブル900のうちの対象セッションに対応する動作時間を更新する。
つぎに、端末200は、対象セッションの処理を継続するか否かを判断する(ステップS1611)。ステップS1611の判断は、たとえば対象セッションの処理がすべて終了したか否かや、対象セッションの呼出元のアプリの処理の終了がユーザやオペレーティングシステムなどから指示されたか否かによって判断することができる。
ステップS1611において、対象セッションの処理を継続すると判断した場合(ステップS1611:Yes)は、端末200は、ステップS1601へ戻る。対象セッションの処理を継続しないと判断した場合(ステップS1611:No)は、端末200は、一連の処理を終了する。
(アプリの消費電力の算出処理)
図17は、アプリの消費電力の算出処理の一例を示すフローチャートである。端末200は、アプリの消費電力の算出処理として、たとえば図17に示す各ステップを実行する。図17に示す各ステップは、たとえば消費電力算出部340およびアプリ消費電力出力部350によって実行される。まず、端末200は、消費電力の測定モードへ移行する(ステップS1701)。これにより、アプリ部311におけるアプリの動作開始時に図15に示した各ステップが実行されるようになる。
つぎに、端末200は、ステップS1701によって移行した測定モードを終了するか否かを判断し(ステップS1702)、測定モードを終了すると判断するまで待つ(ステップS1702:Noのループ)。ステップS1702の判断は、たとえばステップS1701から所定時間が経過したか否かによって判断することができる。測定モードを終了すると判断した場合(ステップS1702:Yes)は、端末200は、測定モードを解除する(ステップS1703)。
つぎに、端末200は、ハードウェア動作情報管理テーブル900(図9参照)を参照し、動作中の周辺ハードウェアの動作時間を更新する(ステップS1704)。たとえば、ハードウェア動作情報管理テーブル900は、ハードウェア動作情報管理テーブル900のうちの動作時間が「動作中」となっているセッションIDについて、開始時刻から現在時刻までの経過時間を動作時間として記録する。
つぎに、端末200は、アプリ処理動作時間に応じたCPU消費電力を算出する(ステップS1705)。ステップS1705において、端末200は、たとえば下記(1)式によってアプリごとのCPU消費電力を算出する。
アプリのCPU消費電力=アプリ処理動作時間×単位消費電力 …(1)
上記(1)式において、アプリ処理動作時間は、アプリ処理動作時間格納テーブル600(図6参照)における対象アプリのアプリ処理動作時間である。単位消費電力は、CPU210の処理時間あたりの消費電力であって、たとえば予め端末200のメモリに記憶されている。端末200は、算出したアプリごとのCPU消費電力をアプリCPU消費電力格納テーブル1000(図10参照)に格納する。
また、ステップS1705において、端末200は、たとえば下記(2)式によってセッションごとのCPU消費電力を算出する。
セッションのCPU消費電力=セッション処理動作時間×単位消費電力 …(2)
上記(2)式において、セッション処理動作時間は、セッション処理動作時間格納テーブル700(図7参照)における対象セッションのセッション処理動作時間である。単位消費電力は、たとえば上記(1)式の単位消費電力と同じである。端末200は、算出したセッションごとのCPU消費電力をセッションCPU消費電力格納テーブル1100(図11参照)に格納する。
つぎに、端末200は、ハードウェア消費電力を算出する(ステップS1706)。ステップS1706において、端末200は、たとえば下記(3)式によってハード制御分のハードウェア消費電力を算出することができる。
ハードウェア消費電力(ハード制御分)=
ハードウェア制御消費電力基準値×制御パラメータ …(3)
上記(3)式において、ハードウェア制御消費電力基準値は、ハードウェア制御消費電力基準値格納テーブル1300(図13参照)における、対象のハード処理IDに対応する消費電力基準値である。対象のハード処理IDは、ハードウェアアクセス情報管理テーブル800(図8参照)における、対象セッションに対応するハード処理IDである。
上記(3)式の制御パラメータは、ハードウェアアクセス情報管理テーブル800(図8参照)における、対象セッションに対応する制御パラメータである。このように、ハード処理ごとに設定された制御パラメータを用いることで、ハードウェア制御時の設定パラメータによりハードウェアアクセスおよびハードウェア動作で生じる消費電力が異なっていても、これらの消費電力を精度よく算出することができる。
また、ステップS1706において、端末200は、たとえば下記(4)式によって動作ハード分のハードウェア消費電力を算出することができる。
ハードウェア消費電力(動作ハード分)=
動作ハードウェア消費電力基準値×制御パラメータ×動作時間 …(4)
上記(4)式において、動作ハードウェア消費電力基準値は、動作ハードウェア消費電力基準値格納テーブル1400(図14参照)における、対象の動作ハードIDに対応する消費電力基準値である。対象の動作ハードIDは、ハードウェア動作情報管理テーブル900(図9参照)における、対象セッションに対応する動作ハードIDである。
上記(4)式の制御パラメータは、ハードウェア動作情報管理テーブル900(図9参照)における、対象セッションに対応する制御パラメータである。このように、動作ハードIDごとに設定された制御パラメータを用いることで、ハードウェア制御時の設定パラメータによりハードウェアアクセスおよびハードウェア動作で生じる消費電力が異なっていても、これらの消費電力を精度よく算出することができる。
端末200は、ステップS1706による各算出結果をハードウェア消費電力格納テーブル1200(図12参照)に格納する。
つぎに、端末200は、後述のステップS1712によって、消費電力の測定対象のすべてのアプリについて消費電力を出力済みか否かを判断する(ステップS1707)。すべてのアプリについて消費電力を出力済みでない場合(ステップS1707:No)は、端末200は、測定対象のアプリのうちの消費電力を出力済みでないアプリについて、ステップS1708〜S1712の各ステップを実行する。
まず、端末200は、アプリCPU消費電力格納テーブル1000(図10参照)から、対象アプリのCPU消費電力を取得する(ステップS1708)。つぎに、端末200は、セッション管理テーブル500(図5参照)から、対象アプリが生成したセッションの一覧(セッションIDの一覧)を取得する(ステップS1709)。
つぎに、端末200は、ステップS1709によって取得した一覧の各セッションのCPU消費電力を、セッションCPU消費電力格納テーブル1100(図11参照)から取得する(ステップS1710)。つぎに、端末200は、ステップS1709によって取得した一覧の各セッションのハードウェア消費電力をハードウェア消費電力格納テーブル1200(図12参照)から取得する(ステップS1711)。
つぎに、端末200は、ステップS1708,S1710,S1711によって取得した各消費電力の合計を対象アプリの消費電力として出力し(ステップS1712)、対象アプリについての処理を終了し、ステップS1707へ戻る。
ステップS1707において、すべてのアプリについて消費電力を出力済みである場合(ステップS1707:Yes)は、端末200は、一連の処理を終了する。
このように、実施の形態2によれば、システム共通処理や周辺ハードウェアへのアクセスに対してアプリと対応付けたセッションIDを生成することで、各アクセスがいずれのアプリによるものかを判別可能にすることができる。これにより、アプリ単位の消費電力を精度よく測定することができる。
図1A〜図1Dに示した装置100を端末200に適用する場合について説明したが、実行部110は端末200に限らず、複数のアプリを実行する各種のコンピュータに適用することができる。
以上説明したように、装置によれば、アプリケーションソフトウェア単位の消費電力を精度よく測定することができる。
たとえば、従来、端末の動作中の消費電力を求める場合は、対象となるアプリ単位のCPU占有率に基づくCPU動作時間を消費電力としていた。ここで、他のアプリと共有するシステム共通処理については、どのアプリにも属さないシステムの動作時間として1つにまとめて求められている。
また、CPU以外の周辺ハードウェアへのアクセスで生じる消費電力は測定結果に含められない場合がある。また、このような消費電力を測定結果に含めるとしても、たとえば、周辺ハードウェアへアクセスを行うシステム共通処理へのアクセス回数やデータ量などのパラメータに基づいて平均化したアクセス量が消費電力として算出されている。一方、周辺ハードウェアへのアクセスで実際に生じる消費電力は、周辺ハードウェア仕様に基づいて計算するか、電力測定機器を用いて実測することにより求められている。
近年、端末の多機能化が進むにつれ、他のアプリと共有するシステム共通処理を利用する割合が高くなっている。このため、このシステム共通処理をシステムの動作として1つにまとめてCPU占有率に含めてしまうと、システム以外の個々のアプリのCPU占有率は、全体的に低くなり、かつ有効な情報ではなくなってきている。また、CPU以外の周辺ハードウェアへのアクセスで生じる消費電力の割合が多く、CPU占有率のみでは実際に消費する電力より低く算出されてしまう。
また、システム共通処理の中では、システムの状態に合わせて省電力制御を行いながら消費電力が最適となるよう周辺ハードウェアへアクセスが行われる。このため、周辺ハードウェアへのアクセスで生じる消費電力を測定結果に含めるとしても、アクセス回数やデータ量などのパラメータ情報に基づいて算出するだけでは、実際の消費電力からの誤差が出る場合がある。
また、システム共通処理へのアクセスの中で完結しない電源オンや電圧設定変更といったアクセス後に消費し続ける周辺ハードウェアの電力を算出することができなかった。また、周辺ハードウェアへのアクセスで実際に生じる消費電力は、周辺ハードウェア側の仕様または電力測定機器で求めることしかできなかった。このため、どのアプリが周辺ハードウェアへアクセスして電力を消費しているかソフトウェア処理と関連付けて求めることができなかった。
これに対して、上述した各実施の形態によれば、これらの周辺ハードウェアやシステム共通処理についても、アプリ単位の消費電力を精度よく測定することができる。これにより、たとえば、端末で複数のアプリが動作中の状態において、個々のアプリがCPUやCPU以外の周辺ハードウェアをアクセスすることで消費する電力を詳しく得て分析することができる。また、電力を多く消費しているアプリの特定や個々のアプリがバッテリをどれだけ消費しているかといった情報を求めることも可能となる。
なお、本実施の形態で説明した測定方法は、たとえば、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布されてもよい。
また、上述したアプリには、周辺ハードウェアへアクセスし電力を消費するきっかけを与える処理であれば、アプリケーションとして形成されていない、特定の割り込みハンドラなどが含まれていてもよい。
上述した各実施の形態に関し、さらに以下の付記を開示する。
(付記1)同一の周辺ハードウェアへアクセス可能な複数のアプリケーションソフトウェアを実行する実行部と、
前記実行部により実行される前記アプリケーションソフトウェアのうち測定対象のアプリケーションソフトウェアによる所定単位の各処理のうちの前記周辺ハードウェアへのアクセスに対して、前記測定対象のアプリケーションソフトウェアと対応付けた識別情報を付与し、
付与した前記識別情報に基づいて、前記周辺ハードウェアへのアクセスのうちの前記測定対象のアプリケーションソフトウェアによるアクセスを検出し、
検出した前記アクセスに応じた消費電力に基づいて、前記測定対象のアプリケーションソフトウェアのアプリケーションソフトウェア単位の消費電力を算出する測定部と、
を備えることを特徴とする装置。
(付記2)前記測定部は、
検出した前記アクセスに応じた前記実行部における消費電力を、前記周辺ハードウェアへのアクセスによる前記実行部における所定の消費電力を示す消費電力情報に基づいて導出し、
導出した前記消費電力に基づいて前記測定対象のアプリケーションソフトウェアの消費電力を算出することを特徴とする付記1に記載の装置。
(付記3)前記測定部は、
検出した前記アクセスに応じた前記周辺ハードウェアにおける消費電力を、前記周辺ハードウェアへのアクセスによる前記周辺ハードウェアにおける所定の消費電力を示す消費電力情報に基づいて導出し、
導出した前記消費電力に基づいて前記測定対象のアプリケーションソフトウェアの消費電力を算出することを特徴とする付記1または2に記載の装置。
(付記4)前記測定部は、
検出した前記アクセスによって動作を開始した前記周辺ハードウェアが、検出した前記アクセスとは異なる処理によって停止するまでの動作時間を検出し、
検出した前記動作時間と、前記周辺ハードウェアの動作時間あたりの消費電力を示す前記消費電力情報と、に基づいて、検出した前記アクセスに応じた前記周辺ハードウェアにおける消費電力を導出し、
導出した前記消費電力に基づいて前記測定対象のアプリケーションソフトウェアの消費電力を算出することを特徴とする付記3に記載の装置。
(付記5)前記測定部は、
検出した前記アクセスによって動作を開始した前記周辺ハードウェアと前記識別情報とを対応付ける対応情報を生成し、
生成した前記対応情報に基づいて前記動作時間を検出することを特徴とする付記4に記載の装置。
(付記6)前記複数のアプリケーションソフトウェアは同一の共通システム処理へアクセスし、
前記測定部は、
前記測定対象のアプリケーションソフトウェアによる所定単位の各処理のうちの前記周辺ハードウェアおよび前記共通システム処理への各アクセスに対して、前記測定対象のアプリケーションソフトウェアと対応付けた識別情報を付与し、
付与した前記識別情報に基づいて、前記周辺ハードウェアおよび前記共通システム処理への各アクセスのうちの前記測定対象のアプリケーションソフトウェアによるアクセスを検出し、
検出した前記アクセスに応じた消費電力に基づいて、前記測定対象のアプリケーションソフトウェアのアプリケーションソフトウェア単位の消費電力を算出することを特徴とする付記1〜5のいずれか一つに記載の装置。
(付記7)前記測定部は、前記測定対象のアプリケーションソフトウェアによる処理時間に応じた消費電力と、検出した前記アクセスに応じた消費電力と、の合計に基づいて前記測定対象のアプリケーションソフトウェアのアプリケーションソフトウェア単位の消費電力を算出することを特徴とする付記1〜6のいずれか一つに記載の装置。
(付記8)前記所定単位は、トランザクション単位であることを特徴とする付記1〜7のいずれか一つに記載の装置。
(付記9)同一の共通システム処理へアクセス可能な複数のアプリケーションソフトウェアを実行する実行部と、
前記実行部により実行される前記アプリケーションソフトウェアのうち測定対象のアプリケーションソフトウェアによる所定単位の各処理のうちの前記共通システム処理へのアクセスに対して、前記測定対象のアプリケーションソフトウェアと対応付けた識別情報を付与し、
付与した前記識別情報に基づいて、前記共通システム処理へのアクセスのうちの前記測定対象のアプリケーションソフトウェアによるアクセスを検出し、
検出した前記アクセスに応じた消費電力に基づいて、前記測定対象のアプリケーションソフトウェアのアプリケーションソフトウェア単位の消費電力を算出する測定部と、
を備えることを特徴とする装置。
100 装置
101,230 周辺ハードウェア
102 共通システム処理
110 実行部
111,112,222〜224,411,412 アプリ
120 測定部
200 端末
210 CPU
211,212 CPUコア
220 メモリ
221 ソフトウェア
231 LCD
232 カメラ
233 GPS
234 センサ
235 LED
236 USB
237 無線通信I/F
238 不揮発メモリ
239 バッテリ
310 ソフトウェア実行部
311 アプリ部
312 システム共通処理部
320 セッション管理部
330 処理履歴管理部
331 アプリ処理動作時間管理部
332 セッション処理動作時間管理部
333 ハードウェアアクセス管理部
334 ハードウェア動作時間管理部
340 消費電力算出部
341 CPU消費電力算出部
342 ハードウェア消費電力算出部
343 アプリ消費電力算出部
350 アプリ消費電力出力部
401〜408 パターン
420 システム共通処理
500 セッション管理テーブル
600 アプリ処理動作時間格納テーブル
700 セッション処理動作時間格納テーブル
800 ハードウェアアクセス情報管理テーブル
900 ハードウェア動作情報管理テーブル
1000 アプリCPU消費電力格納テーブル
1100 セッションCPU消費電力格納テーブル
1200 ハードウェア消費電力格納テーブル
1300 ハードウェア制御消費電力基準値格納テーブル
1400 動作ハードウェア消費電力基準値格納テーブル

Claims (5)

  1. 同一の周辺ハードウェアへアクセス可能な複数のアプリケーションソフトウェアを実行する実行部と、
    前記実行部により実行される前記アプリケーションソフトウェアのうち測定対象のアプリケーションソフトウェアによる所定単位の各処理のうちの前記周辺ハードウェアへのアクセスに対して、前記測定対象のアプリケーションソフトウェアと対応付けた識別情報を付与し、
    付与した前記識別情報に基づいて、前記周辺ハードウェアへのアクセスのうちの前記測定対象のアプリケーションソフトウェアによるアクセスを検出し、
    検出した前記アクセスに応じた消費電力に基づいて、前記測定対象のアプリケーションソフトウェアのアプリケーションソフトウェア単位の消費電力を算出する測定部と、
    を備えることを特徴とする装置。
  2. 前記測定部は、
    検出した前記アクセスに応じた前記実行部における消費電力を、前記周辺ハードウェアへのアクセスによる前記実行部における所定の消費電力を示す消費電力情報に基づいて導出し、
    導出した前記消費電力に基づいて前記測定対象のアプリケーションソフトウェアの消費電力を算出することを特徴とする請求項1に記載の装置。
  3. 前記測定部は、
    検出した前記アクセスに応じた前記周辺ハードウェアにおける消費電力を、前記周辺ハードウェアへのアクセスによる前記周辺ハードウェアにおける所定の消費電力を示す消費電力情報に基づいて導出し、
    導出した前記消費電力に基づいて前記測定対象のアプリケーションソフトウェアの消費電力を算出することを特徴とする請求項1または2に記載の装置。
  4. 前記測定部は、
    検出した前記アクセスによって動作を開始した前記周辺ハードウェアが、検出した前記アクセスとは異なる処理によって停止するまでの動作時間を検出し、
    検出した前記動作時間と、前記周辺ハードウェアの動作時間あたりの消費電力を示す前記消費電力情報と、に基づいて、検出した前記アクセスに応じた前記周辺ハードウェアにおける消費電力を導出し、
    導出した前記消費電力に基づいて前記測定対象のアプリケーションソフトウェアの消費電力を算出することを特徴とする請求項3に記載の装置。
  5. 同一の共通システム処理へアクセス可能な複数のアプリケーションソフトウェアを実行する実行部と、
    前記実行部により実行される前記アプリケーションソフトウェアのうち測定対象のアプリケーションソフトウェアによる所定単位の各処理のうちの前記共通システム処理へのアクセスに対して、前記測定対象のアプリケーションソフトウェアと対応付けた識別情報を付与し、
    付与した前記識別情報に基づいて、前記共通システム処理へのアクセスのうちの前記測定対象のアプリケーションソフトウェアによるアクセスを検出し、
    検出した前記アクセスに応じた消費電力に基づいて、前記測定対象のアプリケーションソフトウェアのアプリケーションソフトウェア単位の消費電力を算出する測定部と、
    を備えることを特徴とする装置。
JP2014086923A 2014-04-18 2014-04-18 装置 Expired - Fee Related JP6252333B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014086923A JP6252333B2 (ja) 2014-04-18 2014-04-18 装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014086923A JP6252333B2 (ja) 2014-04-18 2014-04-18 装置

Publications (2)

Publication Number Publication Date
JP2015207128A JP2015207128A (ja) 2015-11-19
JP6252333B2 true JP6252333B2 (ja) 2017-12-27

Family

ID=54603889

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014086923A Expired - Fee Related JP6252333B2 (ja) 2014-04-18 2014-04-18 装置

Country Status (1)

Country Link
JP (1) JP6252333B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9978695B1 (en) 2011-01-27 2018-05-22 Amkor Technology, Inc. Semiconductor device including leadframe with a combination of leads and lands and method
US10090228B1 (en) 2012-03-06 2018-10-02 Amkor Technology, Inc. Semiconductor device with leadframe configured to facilitate reduced burr formation
US10811341B2 (en) 2009-01-05 2020-10-20 Amkor Technology Singapore Holding Pte Ltd. Semiconductor device with through-mold via

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6518614B2 (ja) * 2016-03-22 2019-05-22 Kddi株式会社 電子機器、電子機器の動作の特定方法及びプログラム
JP2023127631A (ja) * 2022-03-02 2023-09-14 株式会社日立製作所 消費電力推定装置、消費電力推定システム及び消費電力推定方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009075965A (ja) * 2007-09-21 2009-04-09 Fujitsu Microelectronics Ltd ソフトウェア開発方法及びソフトウェア開発装置
JP2012063917A (ja) * 2010-09-15 2012-03-29 Ntt Docomo Inc アプリケーションの消費電力を評価する装置、配信サーバ及び方法
JP5787259B2 (ja) * 2011-02-23 2015-09-30 株式会社Nttドコモ 消費電力分析システムおよびアプリケーション開発ツール
JP5880962B2 (ja) * 2012-06-12 2016-03-09 ソニー株式会社 電子装置、計算方法、プログラム、および情報処理装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10811341B2 (en) 2009-01-05 2020-10-20 Amkor Technology Singapore Holding Pte Ltd. Semiconductor device with through-mold via
US11869829B2 (en) 2009-01-05 2024-01-09 Amkor Technology Singapore Holding Pte. Ltd. Semiconductor device with through-mold via
US9978695B1 (en) 2011-01-27 2018-05-22 Amkor Technology, Inc. Semiconductor device including leadframe with a combination of leads and lands and method
US10090228B1 (en) 2012-03-06 2018-10-02 Amkor Technology, Inc. Semiconductor device with leadframe configured to facilitate reduced burr formation

Also Published As

Publication number Publication date
JP2015207128A (ja) 2015-11-19

Similar Documents

Publication Publication Date Title
JP6252333B2 (ja) 装置
JP6216880B2 (ja) アプリケーションの電力効率を決定して表示する方法及びその端末機
US9304886B2 (en) Associating energy consumption with a virtual machine
US8621477B2 (en) Real-time monitoring of job resource consumption and prediction of resource deficiency based on future availability
CN106772091B (zh) 电池容量值的更新方法、装置及终端
US8595525B2 (en) On-chip thermal management techniques using inter-processor time dependent power density data for indentification of thermal aggressors
US20080307248A1 (en) Cpu Clock Control Device, Cpu Clock Control Method, Cpu Clock Control Program, Recording Medium, and Transmission Medium
JP5915406B2 (ja) 携帯端末装置の制御方法、制御プログラム及び携帯端末装置
US20130132759A1 (en) Computer component power-consumption database
KR101868307B1 (ko) 작업부하 검출에 기초한 컴퓨팅 디바이스에서의 열 관리
JP5773065B2 (ja) スケジューリングプログラム、マルチコアプロセッサシステム、およびスケジューリング方法
US20160077571A1 (en) Heuristic Processor Power Management in Operating Systems
KR20160145199A (ko) 사용자 존재 검출에 기초한 가변 터치 스크린 주사율
US20150067700A1 (en) Method and apparatus for performing task scheduling in terminal
Mercati et al. A linux-governor based dynamic reliability manager for android mobile devices
JP2019527867A (ja) モバイルデバイス上でのエネルギー効率のためのウェイクロックアウェアシステム全体のジョブスケジューリング
US20160117199A1 (en) Computing system with thermal mechanism and method of operation thereof
US10423201B2 (en) Method and apparatus for demand estimation for energy management of client systems
JP2017151656A (ja) 並列処理装置、電力係数算出プログラムおよび電力係数算出方法
CN103430146A (zh) 计算系统中的任务控制
US10275007B2 (en) Performance management for a multiple-CPU platform
US9465646B2 (en) Detection apparatus, notification method, and computer product
WO2013126499A1 (en) System and method for managing electrical current in a portable computing device
Mercati et al. User-centric joint power and thermal management for smartphones
JP2019213142A (ja) 情報処理装置、プロセッサ、及び光ファイバー検査方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170110

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171031

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171113

R150 Certificate of patent or registration of utility model

Ref document number: 6252333

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees