JP2016081429A - センシング制御プログラム及び携帯端末装置 - Google Patents

センシング制御プログラム及び携帯端末装置 Download PDF

Info

Publication number
JP2016081429A
JP2016081429A JP2014214638A JP2014214638A JP2016081429A JP 2016081429 A JP2016081429 A JP 2016081429A JP 2014214638 A JP2014214638 A JP 2014214638A JP 2014214638 A JP2014214638 A JP 2014214638A JP 2016081429 A JP2016081429 A JP 2016081429A
Authority
JP
Japan
Prior art keywords
processor
event
sensing
evaluation value
candidate
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.)
Granted
Application number
JP2014214638A
Other languages
English (en)
Other versions
JP6365224B2 (ja
Inventor
長谷川 英司
Eiji Hasegawa
英司 長谷川
学 中尾
Manabu Nakao
学 中尾
徹 上和田
Toru Kamiwada
徹 上和田
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 JP2014214638A priority Critical patent/JP6365224B2/ja
Priority to CN201510623193.0A priority patent/CN105528244A/zh
Priority to US14/867,303 priority patent/US9921886B2/en
Publication of JP2016081429A publication Critical patent/JP2016081429A/ja
Application granted granted Critical
Publication of JP6365224B2 publication Critical patent/JP6365224B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • 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

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Telephone Function (AREA)
  • Power Sources (AREA)

Abstract

【課題】オフロード先のプロセッサを適切に選択すること。【解決手段】携帯端末装置10は、アプリケーションプログラムからセンシングのリクエストを受け付け、リクエストを受け付けたセンシングを実現するセンサにより出力されるイベントがアプリケーションプログラムから指定された通知条件を満たすか否かを判定する条件判定を実行させるプロセッサの候補を特定し、プロセッサの候補ごとに、センサが出力するイベントとイベントが発生する頻度とが対応付けられた頻度データのうちリクエストを受け付けたセンシングに対応するイベントの頻度を用いて、条件判定の実行時にプロセッサの候補が消費する電力の評価値を算出し、評価値が最良であるプロセッサの候補を選択する。【選択図】図1

Description

本発明は、センシング制御プログラム及び携帯端末装置に関する。
各種のセンシングを利用するアプリケーションプログラムがスマートフォンに代表される携帯端末装置に搭載されている。かかる携帯端末装置の多機能化に伴って、携帯端末装置に複数のプロセッサが搭載される場合がある。さらに、スマートグラスやスマートウォッチなどのウェアラブルデバイスの発展に伴って、携帯端末装置に搭載されるプロセッサは、ウェアラブルデバイスに搭載されるプロセッサとも接続されることもある。
ここで、携帯端末装置でセンシングが実行される場合、センサによりセンシングされたイベントが所定の通知条件を満たすか否かの条件判定をプロセッサに実行させることによってオフロードを実現する場合がある。すなわち、上記の条件判定によって、通知条件を満たす場合に絞ってアプリケーションプログラムへの通知を実施させる。これによって、アプリケーションプログラムがプロセッサ上で動作する時間を低減し、携帯端末装置の省電力化に寄与することを目指す。
特開2007−172322号公報 特開2010−102540号公報
しかしながら、上記の技術では、携帯端末装置が使用される環境によってオフロード先として適切なプロセッサは異なるので、オフロード先のプロセッサを適切に選択することができない場合がある。
1つの側面では、本発明は、オフロード先のプロセッサを適切に選択できるセンシング制御プログラム及び携帯端末装置を提供することを目的とする。
一態様のセンシング制御プログラムは、コンピュータに、アプリケーションプログラムからセンシングのリクエストを受け付け、前記リクエストを受け付けたセンシングを実現するセンサにより出力されるイベントが前記アプリケーションプログラムから指定された通知条件を満たすか否かを判定する条件判定を実行させるプロセッサの候補を特定し、前記プロセッサの候補ごとに、センサが出力するイベントと前記イベントが発生する頻度とが対応付けられた頻度データのうち前記リクエストを受け付けたセンシングに対応するイベントの頻度を用いて、前記条件判定の実行時に前記プロセッサの候補が消費する電力の評価値を算出し、前記評価値が最良であるプロセッサの候補を選択する処理を実行させる。
オフロード先のプロセッサを適切に選択できる。
図1は、実施例1に係る携帯端末装置の機能的構成を示すブロック図である。 図2は、実施例1に係るミドルウェア実行部の機能的構成を示すブロック図である。 図3は、条件判定に関する消費電力の評価モデルの一例を説明する図である。 図4は、通知条件の一例を示す図である。 図5Aは、プロセッサデータの一例を示す図である。 図5Bは、頻度データの一例を示す図である。 図5Cは、評価値の算出結果の一例を示す図である。 図6Aは、頻度データの一例を示す図である。 図6Bは、評価値の算出結果の一例を示す図である。 図7は、実施例1に係るプロセッサの選択処理の手順を示すフローチャートである。 図8は、実施例1に係る頻度データの更新処理の手順を示すフローチャートである。 図9は、実施例2に係る携帯端末装置の機能的構成を示すブロック図である。 図10は、実施例2に係るミドルウェア実行部の機能的構成を示すブロック図である。 図11は、センシング及び条件判定に関する消費電力の評価モデルの一例を説明する図である。 図12は、動作電力データの一例を示す図である。 図13は、総合評価値の算出結果の一例を示す図である。 図14は、実施例2に係るプロセッサの選択処理の手順を示すフローチャートである。 図15は、実施例1〜実施例3に係るセンシング制御プログラムを実行するコンピュータの一例について説明するための図である。
以下に添付図面を参照して本願に係るセンシング制御プログラム及び携帯端末装置について説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
[携帯端末装置の構成]
まず、本実施例に係る携帯端末装置の機能的構成について説明する。図1は、実施例1に係る携帯端末装置10の機能的構成を示すブロック図である。図1に示す携帯端末装置10は、携帯端末装置10上で動作するアプリケーションプログラムが要求するセンシングを携帯端末装置10の制御下にあるセンサを用いて実行するセンシング制御を実行するものである。
かかるセンシング制御の一環として、携帯端末装置10は、条件判定を実行させるプロセッサの消費電力の評価にセンシングのリクエストに対応するイベントによりプロセッサが動作する頻度を加えてプロセッサを選択する。これによって、携帯端末装置10は、例えば、オフロード先のプロセッサを適切に選択する。ここで言う「オフロード先のプロセッサ」とは、アプリケーションプログラムから指定された通知条件にしたがって条件判定を実行させるプロセッサのことを指す。
一実施形態として、携帯端末装置10は、上記のセンシング制御をAPI(Application Programming Interface)として携帯端末装置10上で動作するアプリケーションプログラム等へ提供するセンシング制御プログラムをミドルウェアとして各種のコンピュータにインストールさせることによって実装できる。かかるセンシング制御プログラムは、パッケージソフトウェアとして提供されることとしてもよいし、オンラインソフトウェアとして提供されることとしてもかまわない。例えば、上記のセンシング制御プログラムは、スマートフォン、携帯電話機やPHS(Personal Handyphone System)などの移動体通信端末のみならず、タブレット端末やスレート端末などを含む携帯端末装置にインストールさせることができる。これによって、携帯端末装置10に上記のセンシング制御を実行させることができる。
なお、ここでは、上記のセンシング制御プログラムがインストールされる装置の一例として、携帯端末装置10を例示して以下の説明を行うが、必ずしもセンシング制御プログラムが携帯端末装置10にインストールされずともよい。例えば、上記のセンシング制御プログラムは、パーソナルコンピュータを始めとする据置き型の端末装置を含む情報処理装置全般にインストールさせることができる。
図1に示すように、携帯端末装置10は、センサ類の一例として、BLE(Bluetooth(登録商標) Low Energy)チップ11aと、歩行センサ11bとを有する。
BLEチップ11aは、他の装置との間でBLEによる通信を実行するチップである。
一側面として、BLEチップ11aは、BLE対応のデバイスをセンシングすることができる。例えば、BLEチップ11aは、BLEチップ11aの通信圏内でBLE対応のデバイスの検出に成功した場合に、イベント「detect」を制御部14へ出力する。また、BLEチップ11aは、検出に成功していたBLE対応のデバイスが消失した場合に、イベント「lost」を制御部14へ出力する。なお、ここでは、近距離無線通信の一例としてBLEを例示したが、他の規格により近距離無線通信が実行されることとしてもかまわない。
歩行センサ11bは、歩行データを採取するセンサである。
一側面として、歩行センサ11bには、3軸の加速度センサなどのモーションセンサを採用できる。例えば、歩行データの一例として、モーションセンサから採取される3軸の加速度データを用いて、歩行や速歩などをセンシングすることができる。さらに、地磁気センサまたはジャイロセンサなどから得られる姿勢成分と併せることによってより高精度な歩行データをセンシングすることもできる。例えば、歩行センサ11bは、歩行の開始が検出された場合にイベント「start」をコプロセッサ12bへ出力する一方で、歩行の停止が検出された場合にイベント「stop」をコプロセッサ12bへ出力するといったセンシングを実現できる。
これらBLEチップ11a及び歩行センサ11bのうち、BLEチップ11aは、制御部14が実行するドライバによって他のデバイスを介在させずに使用される一方で、歩行センサ11bと制御部14が実行するドライバとの間には、コプロセッサ12bが介在する点が異なる。
さらに、携帯端末装置10は、図1に示すように、携帯端末装置10に搭載されるプロセッサの一例として、コプロセッサ12bを有する。
コプロセッサ12bは、後述の制御部14の演算処理を補助するプロセッサである。例えば、図1の例で言えば、歩行センサ11bによるセンシングを制御するマイクロプロセッサ、いわゆるマイコンとして実装される。
一実施形態として、コプロセッサ12bは、歩行センサ11bの制御を実行すると共に、上記の条件判定を実行することができる。例えば、コプロセッサ12bは、歩行センサ11bにより出力されるイベント、BLEチップ11aにより出力されるイベントもしくはこれらの組合せに設定された通知条件にしたがって条件判定を実行する。そして、コプロセッサ12は、上記の通知条件を満たす場合に絞って制御部14で実行されるアプリケーションプログラムへの通知を実行する。これによって、制御部14上でアプリケーションプログラムが動作する時間を低減する。
さらに、携帯端末装置10は、図1に示すように、携帯端末装置10における主記憶装置としての記憶部13と、中央演算装置としての制御部14とを有する。
記憶部13は、制御部14で実行されるOS(Operating System)、ミドルウェア及びアプリケーションプログラムなどの各種プログラムに用いられるデータを記憶する記憶デバイスである。
一実施形態として、記憶部13は、携帯端末装置10における主記憶装置として実装される。例えば、記憶部13には、各種の半導体メモリ素子、例えばRAM(Random Access Memory)、ROM(Read Only Memory)やフラッシュメモリを採用できる。また、記憶部13は、補助記憶装置として実装することもできる。この場合、USB(Universal Serial Bus)メモリやSD(Secure Digital)カードなどのリムーバブルメディアの他、SSD(Solid State Drive)などを採用できる。
制御部14は、各種のプログラムや制御データを格納する内部メモリを有し、これらによって種々の処理を実行するものである。
一実施形態として、制御部14は、中央処理装置、いわゆるCPU(Central Processing Unit)として実装される。以下では、制御部がCPUとして実装される場合を想定し、制御部のことを「CPU」と記載して説明する場合がある。なお、制御部14は、必ずしも中央処理装置として実装されずともよく、MPU(Micro Processing Unit)として実装されることとしてもよい。また、制御部14は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによっても実現できる。
制御部14は、各種のプログラムを実行することによって下記の処理部を仮想的に実現する。例えば、制御部14は、図1に示すように、ドライバ実行部15aと、ドライバ実行部15bと、アプリ実行部16と、ミドルウェア実行部17とを有する。
ドライバ実行部15a及びドライバ実行部15bは、いずれも携帯端末装置10の制御下にあるセンサを制御をするソフトウェア、いわゆるドライバを実行する処理部である。
これらのうち、ドライバ実行部15aは、BLEチップ11aに対応するドライバを実行する一方で、ドライバ実行部15bは、コプロセッサ12bに対応するドライバを実行する。
アプリ実行部16は、各種のアプリケーションプログラムを実行する処理部である。
一側面として、アプリ実行部16は、任意のアプリケーションプログラムを実行することができる。かかるアプリケーションプログラムは、携帯端末装置10にプリインストールされたものであってもよいし、有線または無線により接続される外部装置からダウンロードされたものであってもよいし、リムーバブルメディアから取得されたものであってもかまわない。例えば、アプリ実行部16は、ユーザの操作によってアプリケーションプログラムの起動が指示された場合に当該アプリケーションプログラムを起動させる。また、アプリ実行部16は、バックグラウンドでアプリケーションを動作させることもできる。この場合、アプリケーションプログラムは、携帯端末装置10のメーカまたはアプリケーションプログラムの発行元などによって定められた条件にしたがって携帯端末装置10のユーザから与えられた権限の範囲内で動作する。なお、マルチタスクにより複数のアプリケーションプログラムが並行して実行されることとしてもかまわない。
ここで、アプリケーションプログラムは、ミドルウェア実行部17で実行されるミドルウェアに対し、センシングのリクエストを行う場合がある。例えば、会議システムや広告システムに関するアプリケーションプログラムの場合、アプリケーションプログラムは、所定の表示装置に設置されたBLEビーコンを検知した場合に、携帯端末装置10及び表示装置をBLE通信を介して接続する場面が挙げられる。このような場面では、アプリケーションプログラムは、ミドルウェアに対し、BLEセンシング及び歩行センシングのリクエストと共に、一例として、「歩行停止中にBLEでモニタを検知していたら通知」といった通知条件が通知される場合がある。
ミドルウェア実行部17は、ミドルウェアとして提供されるセンシング制御プログラムを実行する処理部である。
図2は、実施例1に係るミドルウェア実行部17の機能的構成を示すブロック図である。図2に示すように、ミドルウェア実行部17は、受付部17aと、特定部17bと、算出部17cと、選択部17dと、条件判定部17eと、通知部17fと、更新部17gとを有する。
受付部17aは、アプリケーションプログラムから各種の指示を受け付ける処理部である。
一実施形態として、受付部17aは、アプリ実行部16によって実行されるアプリケーションプログラムからセンシング制御プログラムが提供するAPIにしたがってセンシングのリクエストを受け付ける。かかるセンシングのリクエストには、一例として、センシングの種別や通知条件を始め、その他の各種情報、例えばセンシング期間などを含めることができる。このようにしてセンシングのリクエストを受け付けた場合、受付部17aは、通知条件のソースコードを解析する。これによって、条件判定に用いられる各イベントが得られる。
特定部17bは、条件判定を実行させるオフロード先のプロセッサ候補を特定する処理部である。
一実施形態として、特定部17bは、アプリ実行部16が実行するアプリケーションプログラムからセンシングのリクエストを受け付けた場合、当該リクエストに関するセンシングを実現するセンサを特定する。その上で、特定部17bは、先のようにして特定された各センサがイベントの出力先とするプロセッサを特定する。例えば、リクエストがBLEセンシングの場合、BLEチップ11aのイベントの出力先としてCPU14が特定される。また、リクエストが歩行センシングの場合、歩行センサ11bのイベントの出力先としてコプロセッサ12bが特定される。このようにして特定されたプロセッサが1種類である場合、条件判定に用いるイベントを他のプロセッサの中継を介して得ずともよいので、以降の電力の評価を省いて、センサがイベントを出力するプロセッサをそのままオフロード先のプロセッサとして選択させることができる。また、リクエストがBLEセンシング及び歩行センシングの両方の場合、BLEチップ11aのイベントの出力先としてCPU14が特定されると共に、歩行センサ11bのイベントの出力先としてコプロセッサ12bが特定される。このようにして特定されたプロセッサが2種類である場合、いずれのプロセッサを選択するにしても、条件判定に用いるイベントを他のプロセッサの中継を介して得ることになる。この場合、いずれのプロセッサを選択した方が電力の消費が少なくて済むかによって後述の選択部によりオフロード先のプロセッサが選択される。
算出部17cは、オフロード先のプロセッサ候補ごとに、リクエストに関するセンシングを実現するセンサが出力するイベントの頻度を用いて条件判定時にプロセッサ候補のデバイスにより消費する電力の評価値を算出する処理部である。
ここで、一例として、算出部17cは、プロセッサ候補の消費電力を下記の仮定にしたがって評価する。例えば、BLEチップ11aや歩行センサ11bなどのセンサからイベントが出力される度にプロセッサにより条件判定が実施される。このため、プロセッサがイベント発生時に絞って動作すると仮定する。すなわち、プロセッサ候補のプロセッサは、センサからイベントを受け付けた場合にパワーオンし、当該イベントの条件判定を実行した後にスリープ状態に遷移すると仮定する。この場合、消費電力は、次のようにモデル化することによって評価できる。
図3は、条件判定に関する消費電力の評価モデルの一例を説明する図である。図3に示すグラフの縦軸は、消費電力(W)を指し、また、横軸は、時間(t)を指す。図3には、1回あたりの条件判定でプロセッサに消費させる電力量がPp(Wh)として右肩上がりの塗りつぶしにより示されている。図3に示すように、1回あたりの条件判定でプロセッサに消費させる電力量がPpであるとしたとき、この電力量Ppに対し、条件判定に用いるセンシングのイベントが発生する頻度Fsを乗じることによって消費電力を評価できる。すなわち、算出部17cは、算出式「Pp×Fs」によって消費電力を計算する。この計算をリクエストに対応する各イベントにわたって合計し、ΣPp・Fsを求めることにより、プロセッサ候補の消費電力の評価値を算出する。
より具体的には、算出部17cは、プロセッサ候補ごとの消費電力の評価値ΣPp・Fsを求める前段階として、リクエストに対応するイベントごとに評価値を計算する。すなわち、算出部17cは、記憶部13を参照し、プロセッサごとに当該プロセッサが1回あたりの条件判定で消費する電力量Ppを始め、プロセッサのウェイク時間などが対応付けられたプロセッサデータ13aを読み出すと共に、イベントごとに当該イベントが発生する頻度Fsなどが対応付けられた頻度データ13bを読み出す。その上で、算出部17cは、頻度データ13bに含まれるイベントのうち計算対象とするイベントに対応付けられた頻度Fsと、プロセッサデータ13aに含まれる電力量Ppのうちプロセッサ候補のプロセッサに対応付けられた電力量Ppとを乗算することによって計算対象とするイベントの評価値を算出する。このとき、プロセッサ候補がプロセッサ候補以外の他のプロセッサの中継を介して条件判定に用いるイベントを得る場合、イベントの発生に応答して他のプロセッサもスリープ状態から起動することになる。この場合、算出部17cは、当該計算対象とするイベントに関し、プロセッサ候補の消費電力量Pp・Fsに、他のプロセッサの消費電力量Pp´・Fsも加算することによって計算対象とするイベントの評価値を求める。その上で、算出部17cは、各イベントの評価値を合計することによってプロセッサ候補の消費電力の評価値ΣPp・Fsを算出する。
選択部17dは、オフロード先のプロセッサを選択する処理部である。
一実施形態として、選択部17dは、算出部17cによりプロセッサ候補ごとに消費電力の評価値が算出された場合に、消費電力の評価値が最良であるプロセッサ候補を選択する。例えば、上記の例のように、値が低いほど評価が高い評価値が算出される場合、各プロセッサ候補の間で評価値が最小であるプロセッサ候補をオフロード先のプロセッサとして選択する。その後、選択部17dは、選択結果にしたがってアプリケーションプログラムの通知条件をオフロード先のプロセッサに設定する。例えば、CPU14以外のプロセッサが選択された場合、アプリケーションプログラムから受け付けた通知条件のソースコードをドライバ実行部15b等で実行されるドライバにコンパイラさせた上でオフロード先のプロセッサへ出力することもできる。
条件判定部17eは、条件判定を実行する処理部である。
一実施形態として、条件判定部17eは、選択部17dによりCPU14がオフロード先のプロセッサとして選択された場合に、選択部17dにより設定された通知条件にしたがって条件判定を実行する。ここでは、一例として、「歩行停止中にBLEでモニタを検知していたら通知」といった通知条件が設定された場合の条件判定を例示する。この場合、条件判定部17eは、BLEチップ11aによりイベント「detect」が出力された場合にBLEの状態を示す「blestate」の値を「true」に更新する一方で、BLEチップ11aによりイベント「lost」が出力された場合に「blestate」の値を「false」に更新する。また、条件判定部17eは、歩行センサ11bによりイベント「start」が出力された場合に歩行の状態を示す「walkstate」の値を「true」に更新する一方で、歩行センサ11bによりイベント「stop」が出力された場合に「walkstate」の値を「false」に更新する。これらの状態の遷移を管理しつつ、条件判定部17eは、「blestate」の値が「true」であり、かつ「walkstate」の値が「false」である場合に、通知条件を満たすと判定する。なお、通知条件が同一であれば、条件判定部17eで実行される条件判定も、コプロセッサ12bで実行される条件判定も同様の処理が実行されるのは言うまでもない。
通知部17fは、各種の通知を実行する処理部である。
一側面として、通知部17fは、BLEチップ11aまたは歩行センサ11bからイベントが出力された場合に、条件判定部17eにイベントを通知する。また、条件判定部17eまたはコプロセッサ12bの条件判定部により通知条件を満たすと判定された場合に、アプリ実行部16により実行されるアプリケーションプログラムに通知条件を満たす旨の通知を行う。
更新部17gは、頻度データ13bを更新する処理部である。
一実施形態として、更新部17gは、選択部17dによりオフロード先のプロセッサが選択された上でリクエストに対応するセンシングが開始された後に、当該センシングに対応するイベントごとに測定開始時刻を図示しない内部メモリに記録する。そして、更新部17gは、アプリケーションプログラムからセンシングの停止指示を待機する。その後、更新部17gは、アプリケーションプログラムからセンシングの停止指示を受け付けた場合、各イベントの測定終了時刻を内部メモリに記録する。その上で、更新部17gは、測定終了時刻から測定開始時刻を差し引くことによって各イベントの測定期間を算出する。そして、更新部17gは、測定終了時刻及び測定開始時刻で定める測定期間内におけるイベントの発生回数をCPU14内の条件判定部17eまたはそれ以外で条件判定を実行する他のプロセッサから取得する。続いて、更新部17gは、センシングが実行されていたイベントごとに、今回のセンシングで測定された測定期間と、前回までのセンシングで累積された測定期間とを累積加算すると共に、今回のセンシングで測定された発生回数と、前回までのセンシングで累積された発生回数とを累積加算する。そして、更新部17gは、今回のセンシングで測定された発生回数が累積加算された発生回数の累積値を、今回のセンシングで測定された測定期間が累積加算された測定期間の累積値で除算することによって頻度、例えば回/hをイベントごとに計算する。その後、更新部17gは、記憶部13に記憶された頻度データ13bのうち計算が実行されたイベントの頻度を先に計算された頻度に上書き更新する。これによって、イベントが発生する頻度の実測値を頻度データ13bとして採取できる。
なお、ここでは、一例として、頻度データ13bには更新部17gにより頻度の実測値が設定される場合を例示したが、必ずしも実測値であらずともよい。例えば、イベントが実施で頻度が実測されていない場合などには、デフォルト値を代わりに登録しておくこととしてもできる。
なお、携帯端末装置10は、図1に示した機能部以外にも既知のコンピュータが有する各種の機能部を有することとしてもかまわない。例えば、携帯端末装置10がタブレット端末やスレート端末として実装される場合には、入力デバイス、表示デバイスまたは表示かつ入力が可能なデバイスをさらに有することとしてもよい。また、携帯端末装置10が移動体通信端末として実装される場合には、アンテナ、移動体通信網に接続する無線通信部、GPS(Global Positioning System)受信機などの機能部をさらに有していてもかまわない。
[具体例]
次に、図4〜図5を用いて、本実施例に係るセンシング制御の具体例について説明する。図4は、通知条件の一例を示す図である。図5Aは、プロセッサデータ13aの一例を示す図である。図5Bは、頻度データ13bの一例を示す図である。図5Cは、評価値の算出結果の一例を示す図である。なお、図5Bに示した頻度データ13bは、携帯端末装置10が利用者Aに使用された場合に更新部17gによりイベントごとに更新された頻度であり、図5Cの評価値の算出結果は、図5Bに示した頻度データ13bを用いて算出された場合の算出結果であることとする。
ここでは、一例として、アプリケーションプログラムからセンシングのリクエストと共に、図4の上段に示す通知条件のソースコードが受け付けられた場合を想定する。図4に示す1行目のif文の場合、BLEセンサによりイベント「detect」が出力された場合にBLEの状態を示す「blestate」の値を「true」に設定することが定義されている。さらに、図4に示す2行目のif文の場合、BLEセンサによりイベント「lost」が出力された場合にBLEの状態を示す「blestate」の値を「false」に設定することが定義されている。また、図4に示す3行目のif文の場合、歩行センサによりイベント「start」が出力された場合に歩行の状態を示す「walkstate」の値を「true」に設定することが定義されている。さらに、図4に示す4行目のif文の場合、歩行センサによりイベント「stop」が出力された場合に歩行の状態を示す「walkstate」の値を「false」に設定することが定義されている。また、図4に示す5行目のif文の場合、「blestate」の値が「true」であり、かつ「walkstate」の値が「true」でない場合にアプリケーションプログラムへの通知を実行することが定義されている。
このような通知条件がパーズされた場合、図4の下段に示すように、条件判定に用いられるイベントがBLE「detect」、BLE「lost」、歩行「start」、歩行「stop」の4つであることを判別できる。
そして、センシングのリクエストがBLEセンシング及び歩行センシングの両方の場合、BLEチップ11aのイベントの出力先としてCPU14が特定されると共に、歩行センサ11bのイベントの出力先としてコプロセッサ12bが特定される。このため、オフロード先のプロセッサ候補として、CPU14及びコプロセッサ12bが特定されることになる。
(A1)CPU14で条件判定を実行する場合の評価値(利用者A)
プロセッサ候補をCPU14とする場合、次のようにして、各イベントの評価値が算出される。
例えば、イベント「detect」の場合、BLEチップ11aからの出力を他のプロセッサの中継を介さずに受け取ることができる。この場合、図5Aに示したプロセッサデータ13aの電力量のうちCPU14に対応する電力量Pp(=0.3mWh)と、図5Bに示した頻度データ13bの頻度のうちイベント「detect」に対応する頻度Fs(=5回/h)との積であるPp×Fsの計算結果「1.5」がイベント「detect」の評価値として算出される。
さらに、イベント「lost」の場合にも、BLEチップ11aからの出力を他のプロセッサの中継を介さずに受け取ることができる。この場合、図5Aに示したプロセッサデータ13aの電力量のうちCPU14に対応する電力量Pp(=0.3mWh)と、図5Bに示した頻度データ13bの頻度のうちイベント「lost」に対応する頻度Fs(=5回/h)との積であるPp×Fsの計算結果「1.5」がイベント「lost」の評価値として算出される。
一方、イベント「start」の場合、歩行センサ11bからの出力をコプロセッサ12bの中継を介して受け取ることになる。この場合、図5Aに示したプロセッサデータ13aの電力量のうちCPU14に対応する電力量Pp(=0.3mWh)と、図5Bに示した頻度データ13bの頻度のうちイベント「start」に対応する頻度Fs(=30回/h)との積Pp・Fs「9=0.3×30」が算出される。さらに、コプロセッサ12bに対応する電力量Pp´(=0.03mWh)と、図5Bに示した頻度データ13bの頻度のうちイベント「start」に対応する頻度Fs(=30回/h)との積Pp´・Fs「0.9=0.03×30」が算出される。その上で、Pp・Fs及びPp´・Fsの合計「9.9」がイベント「start」の評価値として算出される。
さらに、イベント「stop」の場合にも、歩行センサ11bからの出力をコプロセッサ12bの中継を介して受け取ることになる。この場合、図5Aに示したプロセッサデータ13aの電力量のうちCPU14に対応する電力量Pp(=0.3mWh)と、図5Bに示した頻度データ13bの頻度のうちイベント「start」に対応する頻度Fs(=30回/h)との積Pp・Fs「9=0.3×30」が算出される。さらに、コプロセッサ12bに対応する電力量Pp´(=0.03mWh)と、図5Bに示した頻度データ13bの頻度のうちイベント「start」に対応する頻度Fs(=30回/h)との積Pp´・Fs「0.9=0.03×30」が算出される。その上で、Pp・Fs及びPp´・Fsの合計「9.9」がイベント「start」の評価値として算出される。
このようにして計算された各イベントの評価値の合計が利用者Aのプロセッサ候補「CPU14」の消費電力の評価値として算出される。すなわち、図5Cに示すように、イベント「detect」の評価値「1.5」、イベント「lost」の評価値「1.5」、イベント「start」の評価値「9.9」及びイベント「stop」の評価値「9.9」を合計することによってプロセッサ候補「CPU14」の消費電力の評価値「22.8」が算出される。
(A2)コプロセッサ12bで条件判定を実行する場合の評価値(利用者A)
プロセッサ候補をコプロセッサ12bとする場合、次のようにして、各イベントの評価値が算出される。
例えば、イベント「detect」の場合、BLEチップ11aからの出力をCPU14の中継を介して受け取ることになる。この場合、図5Aに示したプロセッサデータ13aの電力量のうちコプロセッサ12bに対応する電力量Pp(=0.03mWh)と、図5Bに示した頻度データ13bの頻度のうちイベント「detect」に対応する頻度Fs(=5回/h)との積Pp・Fs「0.15=0.03×5」が算出される。さらに、図5Aに示したプロセッサデータ13aの電力量のうちCPU14に対応する電力量Pp´(=0.3mWh)と、図5Bに示した頻度データ13bの頻度のうちイベント「detect」に対応する頻度Fs(=5回/h)との積Pp・Fs「1.5=0.3×5」が算出される。その上で、Pp・Fs及びPp´・Fsの合計「1.65」がイベント「detect」の評価値として算出される。
また、イベント「lost」の場合にも、BLEチップ11aからの出力をCPU14の中継を介して受け取ることになる。この場合、図5Aに示したプロセッサデータ13aの電力量のうちコプロセッサ12bに対応する電力量Pp(=0.03mWh)と、図5Bに示した頻度データ13bの頻度のうちイベント「lost」に対応する頻度Fs(=5回/h)との積Pp・Fs「0.15=0.03×5」が算出される。さらに、図5Aに示したプロセッサデータ13aの電力量のうちCPU14に対応する電力量Pp´(=0.3mWh)と、図5Bに示した頻度データ13bの頻度のうちイベント「lost」に対応する頻度Fs(=5回/h)との積Pp・Fs「1.5=0.3×5」が算出される。その上で、Pp・Fs及びPp´・Fsの合計「1.65」がイベント「lost」の評価値として算出される。
一方、イベント「start」の場合、歩行センサ11bからの出力を他のプロセッサの中継を介さずに受け取ることができる。この場合、コプロセッサ12bに対応する電力量Pp(=0.03mWh)と、図5Bに示した頻度データ13bの頻度のうちイベント「start」に対応する頻度Fs(=30回/h)との積Pp・Fs「0.9=0.03×30」がイベント「start」の評価値として算出される。
さらに、イベント「stop」の場合にも、歩行センサ11bからの出力を他のプロセッサの中継を介さずに受け取ることができる。この場合、コプロセッサ12bに対応する電力量Pp(=0.03mWh)と、図5Bに示した頻度データ13bの頻度のうちイベント「stop」に対応する頻度Fs(=30回/h)との積Pp・Fs「0.9=0.03×30」がイベント「stop」の評価値として算出される。
このようにして計算された各イベントの評価値の合計が利用者Aのプロセッサ候補「コプロセッサ12b」の消費電力の評価値として算出される。すなわち、図5Cに示すように、イベント「detect」の評価値「1.65」、イベント「lost」の評価値「1.65」、イベント「start」の評価値「0.9」及びイベント「stop」の評価値「0.9」を合計することによってプロセッサ候補「コプロセッサ12b」の消費電力の評価値「5.1」が算出される。
(A3)オフロード先のプロセッサの選択結果(利用者A)
以上のように、利用者Aの場合、各プロセッサ候補の消費電力の評価値が算出されると、各プロセッサ候補の間で評価値が最小、すなわち「5.1」であるプロセッサ候補「コプロセッサ12b」がオフロード先のプロセッサとして選択される。このようにオフロード先のプロセッサがCPU14以外のプロセッサである場合、図4の上段に示す通知条件は、バイトコード「40 00 21 ad 32 e2・・・」などに変換した上でコプロセッサ12bに設定することもできる。
(B1)CPU14で条件判定を実行する場合の評価値(利用者B)
図6Aは、頻度データ13bの一例を示す図である。図6Bは、評価値の算出結果の一例を示す図である。なお、図6Aに示した頻度データ13bは、携帯端末装置10が利用者Bに使用された場合に更新部17gによりイベントごとに更新された頻度であり、図6Bの評価値の算出結果は、図6Aに示した頻度データ13bを用いて算出された場合の算出結果であることとする。
プロセッサ候補をCPU14とする場合、次のようにして、各イベントの評価値が算出される。
例えば、イベント「detect」の場合、BLEチップ11aからの出力を他のプロセッサの中継を介さずに受け取ることができる。この場合、図5Aに示したプロセッサデータ13aの電力量のうちCPU14に対応する電力量Pp(=0.3mWh)と、図6Aに示した頻度データ13bの頻度のうちイベント「detect」に対応する頻度Fs(=50回/h)との積であるPp×Fsの計算結果「15」がイベント「detect」の評価値として算出される。
さらに、イベント「lost」の場合にも、BLEチップ11aからの出力を他のプロセッサの中継を介さずに受け取ることができる。この場合、図5Aに示したプロセッサデータ13aの電力量のうちCPU14に対応する電力量Pp(=0.3mWh)と、図6Aに示した頻度データ13bの頻度のうちイベント「lost」に対応する頻度Fs(=50回/h)との積であるPp×Fsの計算結果「15」がイベント「lost」の評価値として算出される。
一方、イベント「start」の場合、歩行センサ11bからの出力をコプロセッサ12bの中継を介して受け取ることになる。この場合、図5Aに示したプロセッサデータ13aの電力量のうちCPU14に対応する電力量Pp(=0.3mWh)と、図6Aに示した頻度データ13bの頻度のうちイベント「start」に対応する頻度Fs(=2回/h)との積Pp・Fs「0.6=0.3×2」が算出される。さらに、コプロセッサ12bに対応する電力量Pp´(=0.03mWh)と、図6Aに示した頻度データ13bの頻度のうちイベント「start」に対応する頻度Fs(=2回/h)との積Pp´・Fs「0.06=0.03×2」が算出される。その上で、Pp・Fs及びPp´・Fsの合計「0.66」がイベント「start」の評価値として算出される。
さらに、イベント「stop」の場合にも、歩行センサ11bからの出力をコプロセッサ12bの中継を介して受け取ることになる。この場合、図5Aに示したプロセッサデータ13aの電力量のうちCPU14に対応する電力量Pp(=0.3mWh)と、図6Aに示した頻度データ13bの頻度のうちイベント「stop」に対応する頻度Fs(=2回/h)との積Pp・Fs「0.6=0.3×2」が算出される。さらに、コプロセッサ12bに対応する電力量Pp´(=0.03mWh)と、図6Aに示した頻度データ13bの頻度のうちイベント「stop」に対応する頻度Fs(=2回/h)との積Pp´・Fs「0.06=0.03×2」が算出される。その上で、Pp・Fs及びPp´・Fsの合計「0.66」がイベント「stop」の評価値として算出される。
このようにして計算された各イベントの評価値の合計が利用者Bのプロセッサ候補「CPU14」の消費電力の評価値として算出される。すなわち、図6Bに示すように、イベント「detect」の評価値「15」、イベント「lost」の評価値「15」、イベント「start」の評価値「0.66」及びイベント「stop」の評価値「0.66」を合計することによってプロセッサ候補「CPU14」の消費電力の評価値「31.32」が算出される。
(B2)コプロセッサ12bで条件判定を実行する場合の評価値(利用者B)
プロセッサ候補をコプロセッサ12bとする場合、次のようにして、各イベントの評価値が算出される。
例えば、イベント「detect」の場合、BLEチップ11aからの出力をCPU14の中継を介して受け取ることになる。この場合、図5Aに示したプロセッサデータ13aの電力量のうちコプロセッサ12bに対応する電力量Pp(=0.03mWh)と、図6Aに示した頻度データ13bの頻度のうちイベント「detect」に対応する頻度Fs(=50回/h)との積Pp・Fs「1.5=0.03×50」が算出される。さらに、図5Aに示したプロセッサデータ13aの電力量のうちCPU14に対応する電力量Pp´(=0.3mWh)と、図6Aに示した頻度データ13bの頻度のうちイベント「detect」に対応する頻度Fs(=50回/h)との積Pp・Fs「15=0.3×50」が算出される。その上で、Pp・Fs及びPp´・Fsの合計「16.5」がイベント「detect」の消費電力量として算出される。
また、イベント「lost」の場合にも、BLEチップ11aからの出力をCPU14の中継を介して受け取ることになる。この場合、図5Aに示したプロセッサデータ13aの電力量のうちコプロセッサ12bに対応する電力量Pp(=0.03mWh)と、図6Aに示した頻度データ13bの頻度のうちイベント「lost」に対応する頻度Fs(=50回/h)との積Pp・Fs「1.5=0.03×50」が算出される。さらに、図5Aに示したプロセッサデータ13aの電力量のうちCPU14に対応する電力量Pp´(=0.3mWh)と、図6Aに示した頻度データ13bの頻度のうちイベント「lost」に対応する頻度Fs(=50回/h)との積Pp・Fs「15=0.3×50」が算出される。その上で、Pp・Fs及びPp´・Fsの合計「16.5」がイベント「lost」の消費電力量として算出される。
一方、イベント「start」の場合、歩行センサ11bからの出力を他のプロセッサの中継を介さずに受け取ることができる。この場合、コプロセッサ12bに対応する電力量Pp(=0.03mWh)と、図6Aに示した頻度データ13bの頻度のうちイベント「start」に対応する頻度Fs(=2回/h)との積Pp・Fs「0.06=0.03×2」がイベント「start」の評価値として算出される。
さらに、イベント「stop」の場合にも、歩行センサ11bからの出力を他のプロセッサの中継を介さずに受け取ることができる。この場合、コプロセッサ12bに対応する電力量Pp(=0.03mWh)と、図6Aに示した頻度データ13bの頻度のうちイベント「stop」に対応する頻度Fs(=2回/h)との積Pp・Fs「0.06=0.03×2」がイベント「stop」の評価値として算出される。
このようにして計算された各イベントの評価値の合計が利用者Bのプロセッサ候補「コプロセッサ12b」の消費電力の評価値として算出される。すなわち、図5Cに示すように、イベント「detect」の評価値「16.5」、イベント「lost」の評価値「16.5」、イベント「start」の評価値「0.06」及びイベント「stop」の評価値「0.06」を合計することによってプロセッサ候補「コプロセッサ12b」の消費電力の評価値「33.12」が算出される。
(B3)オフロード先のプロセッサの選択結果(利用者B)
以上のように、利用者Bの場合、各プロセッサ候補の消費電力の評価値が算出されると、各プロセッサ候補の間で評価値が最小、すなわち「31.32」であるプロセッサ候補「CPU14」がオフロード先のプロセッサとして選択される。
(AB4)まとめ
上述のように、携帯端末装置10が使用される利用者によっては、オフロード先のプロセッサとして選択されるプロセッサに違いが生じる。このように、携帯端末装置が使用される環境が異なる場合でも、オフロード先として条件判定をより少ない消費電力で実行できるプロセッサを選択することができる。したがって、本実施例に係る携帯端末装置10によれば、オフロード先のプロセッサを適切に選択できる。
[処理の流れ]
次に、本実施例に係る携帯端末装置10の処理の流れについて説明する。なお、ここでは、携帯端末装置10によって実行される(1)プロセッサの選択処理を説明してから、携帯端末装置10によって実行される(2)頻度データ13bの更新処理を説明することとする。
(1)プロセッサの選択処理
図7は、実施例1に係るプロセッサの選択処理の手順を示すフローチャートである。この処理は、一例として、アプリ実行部16が実行するアプリケーションプログラムからセンシングのリクエストを受け付けた場合に実行される。
図7に示すように、アプリケーションプログラムからセンシングのリクエストを受け付けると(ステップS101)、受付部17aは、ステップS101でリクエストと共に受け付けた通知条件のソースコードを解析する(ステップS102)。
続いて、特定部17bは、ステップS101で受け付けたリクエストに関するセンシングを実現する各センサがイベントの出力先とするプロセッサから、オフロード先とするプロセッサの候補を特定する(ステップS103)。
その後、算出部17cは、ステップS103で特定されたプロセッサ候補のうちプロセッサ候補を1つ選択する(ステップS104)。続いて、算出部17cは、ステップS102で通知条件から解析された各イベントが発生する頻度を用いて、条件判定時にステップS104で選択されたプロセッサ候補のプロセッサにより消費する電力の評価値を算出する(ステップS105)。
そして、ステップS103で特定された各プロセッサ候補ごとに消費電力の評価値が算出されるまで(ステップS106No)、ステップS104及びステップS105の処理を繰り返し実行する。
その後、ステップS103で特定された各プロセッサ候補ごとに消費電力の評価値が算出されると(ステップS106Yes)、選択部17dは、各プロセッサ候補の間で評価値が最小であるプロセッサ候補をオフロード先のプロセッサとして選択する(ステップS107)。その上で、選択部17dは、ステップS107で選択されたオフロード先のプロセッサに対し、アプリケーションプログラムの通知条件を設定し(ステップS108)、処理を終了する。
これによって、アプリケーションプログラムからリクエストを受け付けたセンシングがセンサにより実行されると共に、イベントの条件判定が実行されることになる。
(2)頻度データの更新処理
図8は、実施例1に係る頻度データの更新処理の手順を示すフローチャートである。この処理は、一例として、選択部17dによりオフロード先のプロセッサが選択された上でリクエストに対応するセンシングが開始された場合に実行される。
図8に示すように、更新部17gは、ステップS101で受け付けたセンシングに対応するイベントごとに測定開始時刻を内部メモリに記録する(ステップS301)。そして、更新部17gは、アプリケーションプログラムからセンシングの停止指示を待機する(ステップS302)。なお、アプリケーションプログラムからセンシングの停止指示を受け付けるまで(ステップS303No)、ステップS302に戻ってセンシングの停止指示を待機する。
その後、アプリケーションプログラムからセンシングの停止指示を受け付けた場合(ステップS303Yes)、更新部17gは、各イベントの測定終了時刻を内部メモリに記録する(ステップS304)。
その上で、更新部17gは、測定終了時刻から測定開始時刻を差し引くことによって各イベントの測定期間を算出する(ステップS305)。そして、更新部17gは、測定終了時刻及び測定開始時刻で定まる測定期間内におけるイベントの発生回数をCPU14内の条件判定部17eまたはそれ以外で条件判定を実行する他のプロセッサから収集する(ステップS306)。
続いて、更新部17gは、センシングが実行されていたイベントごとに、今回のセンシングで測定された測定期間と、前回までのセンシングで累積された測定期間とを累積加算すると共に、今回のセンシングで測定された発生回数と、前回までのセンシングで累積された発生回数とを累積加算する(ステップS307)。
そして、更新部17gは、今回のセンシングで測定された発生回数が累積加算された発生回数の累積値を、今回のセンシングで測定された測定期間が累積加算された測定期間の累積値で除算することによって頻度をイベントごとに計算する(ステップS308)。その後、更新部17gは、記憶部13に記憶された頻度データ13bのうち計算が実行されたイベントの頻度をステップS308で計算された頻度に上書き更新し(ステップS309)、処理を終了する。
なお、図8に示したフローチャートでは、頻度を計算してから処理を終了することとしたが、図8に示す更新処理が実行される度に測定期間および発生回数をイベントごとに追加登録することによって頻度データを生成し、算出部17cにより消費電力の評価値が算出される場合に先に生成された頻度データを参照することにより、各イベントの測定期間および発生回数から頻度を算出することとしてもかまわない。
[効果の一側面]
上述してきたように、本実施例に係る携帯端末装置10は、条件判定を実行させるプロセッサの消費電力の評価にセンシングのリクエストに対応するイベントによりプロセッサが動作する頻度を加えてプロセッサを選択する。したがって、本実施例に係る携帯端末装置10によれば、例えば、オフロード先のプロセッサを適切に選択できる。
さて、上記の実施例1では、オフロード先とするプロセッサ候補の消費電力を評価する場合を例示したが、評価対象とするデバイスはオフロード先とするプロセッサ候補に限定されない。そこで、本実施例では、一例として、アプリケーションプログラムからのリクエストに対応するセンシングを実現するセンサの消費電力をさらに評価する場合について説明する。
[携帯端末装置20の構成]
図9は、実施例2に係る携帯端末装置20の機能的構成を示すブロック図である。図9に示す携帯端末装置20は、図1に示した携帯端末装置10に比べて、コプロセッサ12bが制御下に置くセンサが歩行センサ21b1及びBLEチップ21b2の2つである他、記憶部23が記憶するデータの内容と、ミドルウェア実行部27が実行する処理内容とに相違点がある。なお、以下では、図1に示す機能部と同様の機能を発揮する機能部には同一の符号を付し、その説明を省略することとする。
このようにBLEチップ21b2がコプロセッサ12bの制御下にある場合、同一の内容のセンシングを実現できるBLEセンサが携帯端末装置20内に複数通り存在することになる。本実施例に係る携帯端末装置20では、このような場合でも、他のセンサを用いてセンシングを実行する場合よりも消費電力が少ないセンサを選択することにより、センシングに消費する電力を抑制することを目指す。
図10は、実施例2に係るミドルウェア実行部27の機能的構成を示すブロック図である。図10に示すミドルウェア実行部27は、図2に示したミドルウェア実行部17に比べて、特定部27b及び算出部27cの処理内容に相違点がある。
特定部27bは、図2に示した特定部17bと同様、オフロード先とするプロセッサの候補を特定するが、アプリケーションプログラムからリクエストを受け付けた1または複数のセンシングを実現するセンサまたはドライバの組合せごとにセンシングの実行時に動作させるデバイスをさらに特定する点が異なる。
一実施形態として、特定部27bは、アプリ実行部16が実行するアプリケーションプログラムからセンシングのリクエストを受け付けた場合、当該リクエストに関するセンシングを実現するセンサの組合せを導出する。例えば、特定部27bは、受付部17aがリクエストを受け付けたセンシングを実行可能であるか否かを制御部14で実行中の各ドライバ実行部15a及び15bに問い合わせることによってセンサの組合せを導出する。また、特定部27bは、センシングの種別とセンサの組合せとの対応関係が規定された対応関係テーブルを参照し、リクエストを受け付けたセンシングの種別に対応付けられたセンサの組合せを検索することによってセンサの組合せを導出することとしてもかまわない。このように、特定部27bは、上記の問合せまたは検索のいずれによってもセンサの組合せを導出することができる。このとき、特定部27bは、リクエストを受け付けたセンシングを実現するセンサの組合せが複数通りにわたって存在する場合、全てのセンサの組合せを導出する。なお、ここでは、一例として、センサの組合せを抽出することとしたが、ドライバの組合せを導出することとしてもかまわない。
その後、特定部27bは、センサの組合せのうちセンサの組合せを1つ選択する。続いて、特定部27bは、先に選択されたセンサの組合せからセンシングの実行時に動作させるデバイスを特定する。以下では、センシングの実行時に動作させるデバイスのことを「センシングデバイス」と記載する場合がある。このとき、上記の問合せの場合、センシングの可否とともに、センシングの実行が可能である場合には、センシングデバイスを併せて返信させることとすればよい。また、上記の検索の場合、上記の対応関係テーブルの項目としてセンシングデバイスをさらに対応付けておくこととすればよい。
算出部27cは、図2に示した特定部17bと同様、オフロード先のプロセッサ候補ごとに、条件判定時にプロセッサ候補のデバイスにより消費する電力の評価値を算出するが、センサもしくはドライバの組合せごとにセンシングデバイスがセンシングにより消費する電力をさらに算出する点が異なる。
一実施形態として、算出部27cは、特定部27bによってセンシングデバイスが特定される度に、記憶部23に記憶された動作電力データ23aを参照して、各デバイスがセンシングで消費する電力を評価値として算出する。例えば、動作電力データ23aには、デバイス及び動作電力などの項目が対応付けられたデータを採用できる。これを用いて、算出部27cは、センシングの実行時に動作させる各デバイスに対応する動作電力を検索する。その上で、算出部27cは、各デバイスの動作電力を合計することによって各デバイスがセンシングを実行する場合の消費電力の評価値を算出する。
このようにセンシングデバイスの消費電力が算出されると、算出部27cは、図11に示す評価モデルにしたがってセンシング及び条件判定に消費される電力を評価する。図11は、センシング及び条件判定に関する消費電力の評価モデルの一例を説明する図である。図11に示すグラフの縦軸は、消費電力(W)を指し、また、横軸は、時間(t)を指す。図11には、センシングデバイスにより消費される電力がPs(W)として右肩下がりの塗りつぶしにより示されると共に、1回あたりの条件判定でプロセッサに消費される電力量がPp(Wh)として右肩上がりの塗りつぶしにより示されている。図11に示すように、センシングデバイスは常時パワーオンされているので、条件判定を実行させるプロセッサにより消費させる電力ΣPp・Fsに、センシングデバイスにより消費される電力Ps、例えば総面積の時間平均の消費電力を加算することにより、条件判定で消費される電力に加えてセンシングで消費される電力を評価できる。すなわち、算出部27cは、算出式「ΣPs+ΣPp・Fs」によってセンシング及び条件判定の消費電力の総合評価値を計算する。
これにより、センサの組合せ及びプロセッサ候補のペアごとに総合評価値が算出されることになる。
[具体例]
次に、図12及び図13を用いて、本実施例に係るセンシング制御の具体例について説明する。図12は、動作電力データ23aの一例を示す図である。図13は、総合評価値の算出結果の一例を示す図である。なお、ここでは、図4に示した通知条件がアプリケーションプログラムから受け付けられると共に、図5Aに示したプロセッサデータ13a及び図5Bに示した頻度データ13bが総合評価値の算出に用いられることとする。
例えば、アプリケーションプログラムからBLEセンシング及び歩行センシングのリクエストが受付部17aによって受け付けられた場合、BLEセンシングを実行可能なセンサとして、BLEチップ11aと、BLEチップ21b2とが特定される。さらに、歩行センシングを実行可能なセンサとして、歩行センサ21b1が特定される。
これらのことから、BLEセンシング及び歩行センシングを実現するセンサの組合せとして、下記の(イ)及び(ロ)のセンサの組合せが導出できる。
(イ)BLEチップ11a+歩行センサ21b1の組合せ
(ロ)BLEチップ21b2+歩行センサ21b1の組合せ
このうち、(イ)のセンサの組合せについては、図12に示した動作電力データ23aを参照することによって、BLEチップ11aの動作電力として10mWが取得されると共に、歩行センサ21b1の動作電力として6mWが取得される。したがって、(イ)のセンサの組合せの場合、BLEセンシング及び歩行センシングの実行時における消費電力の評価値が16mW(=10mW+6mW)と算出される。
また、(ロ)のセンサの組合せについては、図12に示した動作電力データ23aを参照することによって、BLEチップ21b2の動作電力として12mWが取得されると共に、歩行センサ21b1の動作電力として6mWが取得される。したがって、(ロ)のセンサの組合せの場合、BLEセンシング及び歩行センシングの実行時における消費電力の評価値が18mW(=12mW+6mW)と算出される。
ここで、上記(イ)のセンサの組合せの場合、BLEチップ11aのイベントの出力先としてCPU14が特定されると共に、歩行センサ21b1のイベントの出力先としてコプロセッサ12bが特定される。このため、オフロード先のプロセッサ候補として、CPU14及びコプロセッサ12bの2つのプロセッサが特定されることになる。
(1)センサの組合せ(イ)+プロセッサ候補「CPU14」
このうち、プロセッサ候補をCPU14とする場合、次のようにして、各イベントの評価値が算出される。すなわち、上記の実施例1で説明したA1と同様に、イベント「detect」の評価値「1.5」、イベント「lost」の評価値「1.5」、イベント「start」の評価値「9.9」及びイベント「stop」の評価値「9.9」を合計することによってプロセッサ候補「CPU14」の消費電力の評価値「22.8」が算出される。その上で、BLEセンシング及び歩行センシングの実行時における消費電力の評価値「16」と、プロセッサ候補「CPU14」の消費電力の評価値「22.8」とを合計することによって、図13に示すように、総合評価値「38.8」を算出することができる。
(2)センサの組合せ(イ)+プロセッサ候補「コプロセッサ12b」
また、プロセッサ候補をコプロセッサ12bとする場合、次のようにして、各イベントの評価値が算出される。すなわち、上記の実施例1で説明したA2と同様に、イベント「detect」の評価値「1.65」、イベント「lost」の評価値「1.65」、イベント「start」の評価値「0.9」及びイベント「stop」の評価値「0.9」を合計することによってプロセッサ候補「コプロセッサ12b」の消費電力の評価値「5.1」が算出される。その上で、BLEセンシング及び歩行センシングの実行時における消費電力の評価値「16」と、プロセッサ候補「コプロセッサ12b」の消費電力の評価値「5.1」とを合計することによって、図13に示すように、総合評価値「21.1」を算出することができる。
(3)センサの組合せ(ロ)+プロセッサ候補「コプロセッサ12b」
一方、上記(ロ)のセンサの組合せの場合、BLEチップ21b2のイベントの出力先としてコプロセッサ12bが特定されると共に、歩行センサ21b1のイベントの出力先としてコプロセッサ12bが特定される。このため、オフロード先のプロセッサ候補として、コプロセッサ12bだけが特定されることになる。この場合、全てのイベントを他のプロセッサの中継を介さずに受け取ることができるので、イベント「detect」の評価値「0.15=0.03×5」、イベント「lost」の評価値「0.15=0.03×5」、イベント「start」の評価値「0.9=0.03×30」及びイベント「stop」の評価値「0.9=0.03×30」を合計することによってプロセッサ候補「コプロセッサ12b」の消費電力の評価値「2.1」が算出される。その上で、BLEセンシング及び歩行センシングの実行時における消費電力の評価値「18」と、プロセッサ候補「コプロセッサ12b」の消費電力の評価値「2.1」とを合計することによって、図13に示すように、総合評価値「20.1」を算出することができる。
(4)オフロード先のプロセッサの選択結果
以上のように、センサの組合せごとにプロセッサ候補別の消費電力の評価値が算出されると、全てのセンサの組合せ及びプロセッサ候補のペアのうち評価値が最小、すなわち「20.1」であるセンサの組合せ(ロ)+プロセッサ候補「コプロセッサ12b」のペアがオフロード先のプロセッサとして選択される。このように、条件判定で消費される電力にセンシングで消費される電力を加えて総合的に評価してオフロード先のプロセッサ及びセンシングデバイスを選択するので、消費電力をより効果的に削減できる。
[処理の流れ]
図14は、実施例2に係るプロセッサの選択処理の手順を示すフローチャートである。この処理は、図7に示したフローチャートと同様に、アプリ実行部16が実行するアプリケーションプログラムからセンシングのリクエストを受け付けた場合に実行される。
図14に示すように、アプリケーションプログラムからセンシングのリクエストを受け付けると(ステップS501)、受付部17aは、ステップS501でリクエストと共に受け付けた通知条件のソースコードを解析する(ステップS502)。
続いて、特定部27bは、ステップS501でリクエストを受け付けたセンシングを実現するセンサの組合せを導出する(ステップS503)。その上で、特定部27bは、ステップS503で導出されたセンサの組合せのうちセンサの組合せを1つ選択する(ステップS504)。そして、特定部27bは、ステップS504で選択されたセンサの組合せからセンシングの実行時に動作させるデバイスを特定する(ステップS505)。
その後、算出部27cは、記憶部23に記憶された動作電力データ23aを参照して、ステップS505で特定された各センシングデバイスの動作電力を合計することにより、ステップS504で選択されたセンサの組合せに関する消費電力の評価値を算出する(ステップS506)。
そして、特定部27bは、ステップS505で特定されたセンシングデバイスがイベントの出力先とするプロセッサから、オフロード先とするプロセッサの候補を特定する(ステップS507)。
その後、算出部27cは、ステップS507で特定されたプロセッサ候補のうちプロセッサ候補を1つ選択する(ステップS508)。続いて、算出部27cは、ステップS502で通知条件から解析された各イベントが発生する頻度を用いて、条件判定時にステップS508で選択されたプロセッサ候補のプロセッサにより消費する電力の評価値を算出する(ステップS509)。
その上で、算出部27cは、ステップS506で算出されたセンサの組合せに関する消費電力の評価値と、ステップS509で算出されたプロセッサ候補の消費電力の評価値とから総合評価値を算出する(ステップS510)。
そして、ステップS507で特定された全てのプロセッサ候補にわたって総合評価値が算出されるまで(ステップS511No)、ステップS508〜ステップS510の処理を繰り返し実行する。
その後、ステップS507で特定された全てのプロセッサ候補にわたって総合評価値が算出されると(ステップS511Yes)、ステップS503で導出された全てのセンサの組合せにわたって各プロセッサ候補ごとに総合評価値が算出されたか否かが判定される(ステップS512)。
そして、ステップS503で導出された全てのセンサの組合せにわたって各プロセッサ候補ごとに総合評価値が算出されるまで(ステップS512No)、ステップS504〜ステップS511の処理を繰り返し実行する。
その後、ステップS503で導出された全てのセンサの組合せにわたって各プロセッサ候補ごとに総合評価値が算出されると(ステップS512Yes)、選択部27dは、全てのセンサの組合せ及びプロセッサ候補のペアのうち評価値が最小であるセンサの組合せ及びプロセッサ候補のペアを選択する(ステップS513)。
その上で、選択部27dは、ステップS513で選択されたオフロード先のプロセッサに対し、アプリケーションプログラムの通知条件を設定すると共に、ステップS513で選択された組合せに含まれるセンサにセンシングを実行する指示を行い(ステップS514)、処理を終了する。
[効果の一側面]
上述してきたように、本実施例に係る携帯端末装置20は、上記の実施例1に係る携帯端末装置10と同様、携帯端末装置20の制御下にある各プロセッサが動作する頻度を消費電力の評価に加えてオフロード先のプロセッサを選択する。したがって、本実施例に係る携帯端末装置20によれば、例えば、オフロード先のプロセッサを適切に選択できる。
さらに、本実施例に係る携帯端末装置20は、条件判定で消費される電力にセンシングで消費される電力を加えて総合的に評価してオフロード先のプロセッサ及びセンシングデバイスを選択する。それ故、本実施例に係る携帯端末装置20によれば、消費電力をより効果的に削減できる。
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
[外部装置の搭載センサの利用]
上記の実施例1〜実施例2では、携帯端末装置10〜20が製品出荷時から搭載するセンサを例示したが、外部装置が搭載するセンサをセンシングに用いることもできる。例えば、スマートグラス、スマートウォッチや指輪ガジェットなどのウェアラブルガジェットを有線または無線によって接続することによって携帯端末装置10〜20の制御下に加えることができる。この場合、ウェアラブルガジェット等の接続または接続解除が検出される度に、図7または図14と図8と同様の処理を携帯端末装置10または携帯端末装置20に実行させることができる。
[頻度データの応用例]
上記の実施例1及び実施例2では、1つのイベントにつき1つの頻度を対応付ける場合を例示したが、適用範囲がこれに限定される訳ではない。例えば、携帯端末装置10または携帯端末装置20は、1つのイベントにつき複数の時間帯別の頻度が対応付けられた頻度データを更新部17gにより生成したり、これを用いて評価値の算出を算出部17cまたは算出部27cに実行させたりすることができる。このように、アプリケーションプログラムからリクエストを受け付けた時間帯に対応する頻度を評価値の算出に用いることにより、評価値の算出精度を向上させることができる。
[電力評価モデルの応用例1]
上記の実施例1及び実施例2では、1回あたりの条件判定でプロセッサに消費させる電力量Ppに対し、条件判定に用いるセンシングのイベントが発生する頻度Fsを乗じることによってオフロード先のプロセッサの消費電力を評価する場合を例示したが、適用範囲はこれに限定されない。
例えば、携帯端末装置10または携帯端末装置20は、通知条件から解析されたイベントごとに当該イベントでプロセッサが動作しない確率P(off)をプロセッサのウェイク時間を用いて算出式「1−頻度×ウェイク時間」と表した上で、いずれのイベントでもプロセッサがウェイクしない組合せ確率ΠP(off)を求める。かかる確率ΠP(off)が求まると、「1−ΠP(off)」により、いずれか1つのイベントによりプロセッサが動作する確率を導出できる。そうすると、いずれか1つのイベントによりプロセッサが動作する頻度Fs´は、「(1−ΠP(off))/ウェイク時間」により算出することができる。このように、いずれか1つのイベントによりプロセッサが動作する確率「1−ΠP(off)」に基づき、いずれか1つのイベントによりプロセッサが動作する頻度Fs´を求めることで、複数のイベントが重複して発生する場合に重複して発生するイベント間で消費電力を重複して計上するのを抑制できる結果、プロセッサ候補の評価値の算出精度をより向上させることができる。
例えば、図4に示した通知条件の下、プロセッサ候補がCPU14である場合、イベント「detect」及びイベント「lost」の発生時には、BLEチップ11aからの出力を他のプロセッサの中継を介さずに受け取ることができる。一方で、イベント「start」及びイベント「stop」の発生時には、歩行センサ11bからの出力をコプロセッサ12bの中継を介して受け取ることになる。
この場合、条件判定でCPU14が消費する電力の評価値Fs´・Ppは、「{1−(1−5×0.002)×(1−5×0.002)×(1−30×0.002)×(1−30×0.002)}×0.3/0.002」により「20」と算出できる。また、条件判定でコプロセッサ12bが消費する電力の評価値Fs´・Ppは、「{1−(1−30×0.0002)×(1−30×0.0002)}×0.03/0.0002」により「1.8」と算出できる。したがって、プロセッサ候補をCPU14とする場合の消費電力の評価値ΣFs´・Ppは、21.8(=20+1.8)と算出できる。これと比べて、上記の実施例1では、プロセッサ候補「CPU14」の消費電力の評価値は「22.8」と算出されていることから、その差「1」の分、プロセッサ候補の評価値の算出精度を向上できていることがわかる。
一方、図4に示した通知条件の下、プロセッサ候補がコプロセッサ12bである場合、イベント「detect」及びイベント「lost」の発生時には、BLEチップ11aからの出力をCPU14の中継を介して受け取ることになる。一方で、イベント「start」及びイベント「stop」の発生時には、歩行センサ11bからの出力を他のプロセッサの中継を介さずに受け取ることができる。
この場合、条件判定でCPU14が消費する電力の評価値Fs´・Ppは、「{1−(1−5×0.002)×(1−5×0.002)}×0.3/0.002」により「3」と算出できる。また、条件判定でコプロセッサ12bが消費する電力の評価値Fs´・Ppは、「{1−(1−30×0.0002)×(1−30×0.0002)×(1−5×0.0002)×(1−5×0.0002)}×0.03/0.0002」により「2」と算出できる。したがって、プロセッサ候補をCPU14とする場合の消費電力の評価値ΣFs´・Ppは、5(=3+2)と算出できる。これと比べて、上記の実施例1では、プロセッサ候補「コプロセッサ12b」の消費電力の評価値は「5.1」と算出されていることから、その差「0.1」の分、プロセッサ候補の評価値の算出精度を向上できていることがわかる。
[電力評価モデルの応用例2]
上記の実施例1及び実施例2では、プロセッサがイベント発生時に絞って動作するとの仮定の下、評価値を算出する場合を例示したが、必ずしも当該仮定に従わずともかまわない。例えば、携帯端末装置10または携帯端末装置20のCPU14上で動作するOSからCPU14のウェイク及びスリープに関する通知を受け付け、これらの通知により、一定の期間に占めるCPU14のウェイク時間の割合もしくは一定の期間に占めるCPU14のスリープ時間の割合を求める。その上で、算出部17cまたは算出部27cは、評価値の算出にCPU14のウェイク時間の割合を乗じることにより、イベント以外の要因でプロセッサが動作する場合にCPU14の動作電力を計上することにより、余計な電力を重複して計上することを抑制できる。
[条件判定の適用範囲]
条件判定としては、図4に示した単純なセンシング状態だけでなく、シーケンス等も利用できる。例えば、適用シーンの一例としては、工場で、手順通りに作業をしているかをチェックする場面が挙げられる。すなわち、各作業場所にBLEビーコンを貼り付け、携帯端末装置で検知できるようにする。この場合には、一例として、通知条件に「歩行停止中に、作業場所の順番が異なっていたら通知する」という条件を設定できる。具体的には、歩行センサで歩行停止中かどうかをセンシングし、BLEチップでセンシングされた作業場所のBLEビーコンが想定した順番と異なるかどうかを判定し、これら両方の条件をANDで満たす場合に、アプリケーションプログラムへ通知する通知条件が指定される。このような通知条件の場合にも、通知条件が解析された場合には、条件判定に用いられるイベントが、図4に示した例と同様、BLE「detect」、BLE「lost」、歩行「start」、歩行「stop」の4つであることを判別できる。このように、条件判定のアルゴリズムによらず、条件判定に用いるイベントを解析することができ、評価値の算出を行うことができることがわかる。
[センシング制御プログラム]
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図15を用いて、上記の実施例と同様の機能を有するセンシング制御プログラムを実行するコンピュータの一例について説明する。
図15は、実施例1〜実施例3に係るセンシング制御プログラムを実行するコンピュータの一例について説明するための図である。図15に示すように、コンピュータ100は、操作部110aと、スピーカ110bと、カメラ110cと、ディスプレイ120と、通信部130とを有する。さらに、このコンピュータ100は、CPU150と、ROM160と、HDD170と、RAM180とを有する。これら110〜180の各部はバス140を介して接続される。
HDD170には、図15に示すように、上記の実施例1〜実施例2で示したミドルウェア実行部と同様の機能を発揮するセンシング制御プログラム170aが予め記憶される。このセンシング制御プログラム170aについては、図2や図10に示した各々の各機能部の各構成要素と同様、適宜統合又は分離してもよい。すなわち、HDD170に格納される各データは、必ずしも全てのデータがHDD170に格納されておらずともよく、処理に用いるデータのみがHDD170に格納されればよい。
そして、CPU150が、センシング制御プログラム170aをHDD170から読み出してRAM180に展開する。これによって、図15に示すように、センシング制御プログラム170aは、センシング制御プロセス180aとして機能する。このセンシング制御プロセス180aは、HDD170から読み出した各種データをRAM180上のセンシング制御プロセス180aに割り当てられた領域に展開し、この展開した各種データに基づいて各種処理を実行する。なお、センシング制御プロセス180aは、図2や図10に示した機能部にて実行される処理、例えば図7、図8または図14に示す処理を含む。また、CPU150上で仮想的に実現される各処理部は、必ずしも全ての処理部がCPU150上で動作せずともよく、処理に用いる処理部のみが仮想的に実現されればよい。
なお、上記のセンシング制御プログラム170aについては、必ずしも最初からHDD170やROM160に記憶させておかずともよい。例えば、コンピュータ100に挿入されるフレキシブルディスク、いわゆるFD、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させる。そして、コンピュータ100がこれらの可搬用の物理媒体から各プログラムを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WANなどを介してコンピュータ100に接続される他のコンピュータまたはサーバ装置などに各プログラムを記憶させておき、コンピュータ100がこれらから各プログラムを取得して実行するようにしてもよい。
10 携帯端末装置
11a BLEチップ
11b 歩行センサ
12b コプロセッサ
13 記憶部
13a プロセッサデータ
13b 頻度データ
14 制御部
15a,15b ドライバ実行部
16 アプリ実行部
17 ミドルウェア実行部
17a 受付部
17b 特定部
17c 算出部
17d 選択部
17e 条件判定部
17f 通知部
17g 更新部

Claims (6)

  1. コンピュータに、
    アプリケーションプログラムからセンシングのリクエストを受け付け、
    前記リクエストを受け付けたセンシングを実現するセンサにより出力されるイベントが前記アプリケーションプログラムから指定された通知条件を満たすか否かを判定する条件判定を実行させるプロセッサの候補を特定し、
    前記プロセッサの候補ごとに、センサが出力するイベントと前記イベントが発生する頻度とが対応付けられた頻度データのうち前記リクエストを受け付けたセンシングに対応するイベントの頻度を用いて、前記条件判定の実行時に前記プロセッサの候補が消費する電力の評価値を算出し、
    前記評価値が最良であるプロセッサの候補を選択する
    処理を実行させることを特徴とするセンシング制御プログラム。
  2. 前記コンピュータに、
    前記センシングが開始されてから終了されるまでの期間と、前記期間でイベントが発生する回数とから定まる頻度をイベントごとに算出し、
    前記頻度データのうち前記算出されたイベントの頻度を更新する処理を実行させることを特徴とする請求項1に記載のセンシング制御プログラム。
  3. 前記特定する処理は、前記リクエストを受け付けたセンシングを実現するセンサの組合せをさらに特定し、
    前記算出する処理は、前記センサの組合せごとに前記センシングの実行時に動作するデバイスで消費される電力の評価値を算出した上で、前記センシングの実行時に動作するデバイスで消費される電力の評価値と、前記条件判定の実行時に前記プロセッサの候補が消費する電力の評価値とから総合の評価値を算出し、
    前記選択する処理は、前記総合の評価値が最良であるセンサの組合せ及びプロセッサの候補のペアを選択することを特徴とする請求項1または2に記載のセンシング制御プログラム。
  4. 前記特定する処理は、前記コンピュータに対する外部装置の接続または接続解除が検出された場合に、前記プロセッサの候補を特定する処理を実行することを特徴とする請求項1、2または3に記載のセンシング制御プログラム。
  5. 前記頻度データは、センサが出力するイベントごとに前記イベントが発生する時間帯別の頻度が対応付けられたデータであることを特徴とする請求項1〜4のいずれか1つに記載のセンシング制御プログラム。
  6. アプリケーションプログラムからセンシングのリクエストを受け付ける受付部と、
    前記リクエストを受け付けたセンシングを実現するセンサにより出力されるイベントが前記アプリケーションプログラムから指定された通知条件を満たすか否かを判定する条件判定を実行させるプロセッサの候補を特定する特定部と、
    前記プロセッサの候補ごとに、センサが出力するイベントと前記イベントが発生する頻度とが対応付けられた頻度データのうち前記リクエストを受け付けたセンシングに対応するイベントの頻度を用いて、前記条件判定の実行時に前記プロセッサの候補が消費する電力の評価値を算出する算出部と、
    前記評価値が最良であるプロセッサの候補を選択する選択部と
    を有することを特徴とする携帯端末装置。
JP2014214638A 2014-10-21 2014-10-21 センシング制御プログラム及び携帯端末装置 Expired - Fee Related JP6365224B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2014214638A JP6365224B2 (ja) 2014-10-21 2014-10-21 センシング制御プログラム及び携帯端末装置
CN201510623193.0A CN105528244A (zh) 2014-10-21 2015-09-25 感测操作控制方法和移动终端装置
US14/867,303 US9921886B2 (en) 2014-10-21 2015-09-28 Sensing operation control method and mobile terminal device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014214638A JP6365224B2 (ja) 2014-10-21 2014-10-21 センシング制御プログラム及び携帯端末装置

Publications (2)

Publication Number Publication Date
JP2016081429A true JP2016081429A (ja) 2016-05-16
JP6365224B2 JP6365224B2 (ja) 2018-08-01

Family

ID=55749030

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014214638A Expired - Fee Related JP6365224B2 (ja) 2014-10-21 2014-10-21 センシング制御プログラム及び携帯端末装置

Country Status (3)

Country Link
US (1) US9921886B2 (ja)
JP (1) JP6365224B2 (ja)
CN (1) CN105528244A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190029298A (ko) * 2017-09-12 2019-03-20 한국과학기술원 모바일 센싱 애플리케이션의 개발 보조 장치, 이를 포함하는 개발 보조 시스템 및 이를 이용하는 개발 보조 방법
WO2019172723A1 (ko) * 2018-03-08 2019-09-12 삼성전자 주식회사 이미지 센서와 연결된 인터페이스 및 복수의 프로세서들간에 연결된 인터페이스를 포함하는 전자 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013186770A (ja) * 2012-03-09 2013-09-19 Hitachi Ltd データ処理装置
WO2013140517A1 (ja) * 2012-03-19 2013-09-26 富士通株式会社 検出装置、通知方法、および通知プログラム
JP2014509765A (ja) * 2011-04-01 2014-04-21 インテル・コーポレーション コンテキストアウェアアプリケーション関連の機能をセンサハブにアウトソースするメカニズム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04318654A (ja) * 1991-02-13 1992-11-10 Hewlett Packard Co <Hp> マイクロプロセッサへの割り込みのリダイレクションシステム
US5574505A (en) * 1995-05-16 1996-11-12 Thomson Multimedia S.A. Method and apparatus for operating a transport stream encoder to produce a stream of packets carrying data representing a plurality of component signals
JP2007172322A (ja) 2005-12-22 2007-07-05 Canon Inc 分散処理型マルチプロセッサシステム、制御方法、マルチプロセッサ割り込み制御装置及びプログラム
ATE519163T1 (de) * 2006-01-04 2011-08-15 Nxp Bv Verfahren und vorrichtung zur interrupt- verteilung in einem multiprozessorsystem
US7769938B2 (en) * 2007-09-06 2010-08-03 Intel Corporation Processor selection for an interrupt identifying a processor cluster
US8024504B2 (en) * 2008-06-26 2011-09-20 Microsoft Corporation Processor interrupt determination
JP5169731B2 (ja) 2008-10-24 2013-03-27 富士通セミコンダクター株式会社 マルチプロセッサシステムlsi
US20150046679A1 (en) * 2013-08-07 2015-02-12 Qualcomm Incorporated Energy-Efficient Run-Time Offloading of Dynamically Generated Code in Heterogenuous Multiprocessor Systems
US9535770B2 (en) * 2014-03-14 2017-01-03 Samsung Electronics Co., Ltd. Electronic system with offloading mechanism and method of operation thereof
JP2015203982A (ja) * 2014-04-14 2015-11-16 株式会社リコー 情報処理装置、情報処理システム、情報処理方法、及びプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014509765A (ja) * 2011-04-01 2014-04-21 インテル・コーポレーション コンテキストアウェアアプリケーション関連の機能をセンサハブにアウトソースするメカニズム
JP2013186770A (ja) * 2012-03-09 2013-09-19 Hitachi Ltd データ処理装置
WO2013140517A1 (ja) * 2012-03-19 2013-09-26 富士通株式会社 検出装置、通知方法、および通知プログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190029298A (ko) * 2017-09-12 2019-03-20 한국과학기술원 모바일 센싱 애플리케이션의 개발 보조 장치, 이를 포함하는 개발 보조 시스템 및 이를 이용하는 개발 보조 방법
KR102045892B1 (ko) 2017-09-12 2019-11-18 한국과학기술원 모바일 센싱 애플리케이션의 개발 보조 장치, 이를 포함하는 개발 보조 시스템 및 이를 이용하는 개발 보조 방법
WO2019172723A1 (ko) * 2018-03-08 2019-09-12 삼성전자 주식회사 이미지 센서와 연결된 인터페이스 및 복수의 프로세서들간에 연결된 인터페이스를 포함하는 전자 장치
US11601590B2 (en) 2018-03-08 2023-03-07 Samsung Electronics Co., Ltd. Interface connected to image sensor and electronic device comprising interfaces connected among plurality of processors

Also Published As

Publication number Publication date
US9921886B2 (en) 2018-03-20
US20160109927A1 (en) 2016-04-21
CN105528244A (zh) 2016-04-27
JP6365224B2 (ja) 2018-08-01

Similar Documents

Publication Publication Date Title
US11323843B2 (en) Efficient geo-fence data transfer and notifications using a time to reach value
US10492025B2 (en) Super geo-fences and virtual fences to improve efficiency of geo-fences
KR102354330B1 (ko) 스마트 디바이스 및 그 동작 방법
US20140302783A1 (en) Detecting interaction among entities via proximity
KR20150140021A (ko) 위치 정보를 제공하기 위한 방법 및 장치
JP2014191667A (ja) 迷子捜索システム、プログラムおよび迷子捜索方法
US11709531B2 (en) Configuration management based on thermal state
KR20160100138A (ko) 사용자의 사용 패턴에 기초하여 배터리 소모를 줄이는 방법 및 이를 위한 장치
JP6365224B2 (ja) センシング制御プログラム及び携帯端末装置
JP6330526B2 (ja) センシング制御プログラム及び携帯端末装置
US11811846B2 (en) Thermal state inference based frequency scaling
US20200288268A1 (en) Electronic device and method for scanning channel to perform location based service
JP2014085228A (ja) 携帯端末装置の制御方法、制御プログラム、携帯端末装置
KR20150008653A (ko) 휴대 단말기의 사용 로그를 활용하는 방법 및 이를 이용한 장치
US11304076B2 (en) Electronic apparatus and method for controlling the electronic apparatus
US9615332B2 (en) Mobile terminal device and method for device network setting
TWI581651B (zh) 無線連接單元之運作管理方法及系統,及相關電腦程式產品
TWI547826B (zh) 電子裝置與穿戴式電子裝置間之通知管理方法及系統,及相關電腦程式產品
JP6107944B2 (ja) 携帯型情報処理装置、情報処理システム、及び情報処理方法
JP6410424B2 (ja) 情報処理プログラム、情報処理装置、情報処理装置の制御方法および情報処理システム
JP2015219146A (ja) 測位装置、測位方法、および測位プログラム
JP2015037234A (ja) 電子機器、通信システム、通信方法およびプログラム
CN116035334A (zh) 智能钥匙链或附件设备、系统和方法
KR20140133380A (ko) 휴대 단말기의 사용 로그를 활용하는 방법 및 이를 이용한 장치
JP2016177340A (ja) 操作システム、操作方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170704

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180320

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180327

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180524

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: 20180605

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180618

R150 Certificate of patent or registration of utility model

Ref document number: 6365224

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees