JP2014509765A - コンテキストアウェアアプリケーション関連の機能をセンサハブにアウトソースするメカニズム - Google Patents

コンテキストアウェアアプリケーション関連の機能をセンサハブにアウトソースするメカニズム Download PDF

Info

Publication number
JP2014509765A
JP2014509765A JP2014502541A JP2014502541A JP2014509765A JP 2014509765 A JP2014509765 A JP 2014509765A JP 2014502541 A JP2014502541 A JP 2014502541A JP 2014502541 A JP2014502541 A JP 2014502541A JP 2014509765 A JP2014509765 A JP 2014509765A
Authority
JP
Japan
Prior art keywords
primitives
sensor hub
processor
hub processor
sensors
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
JP2014502541A
Other languages
English (en)
Other versions
JP5707598B2 (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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of JP2014509765A publication Critical patent/JP2014509765A/ja
Application granted granted Critical
Publication of JP5707598B2 publication Critical patent/JP5707598B2/ja
Active 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • H04W52/0261Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level
    • H04W52/0287Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level changing the clock frequency of a controller in the equipment
    • H04W52/0293Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level changing the clock frequency of a controller in the equipment having a sub-controller with a low clock frequency switching on and off a main controller with a high clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload
    • 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)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • User Interface Of Digital Computer (AREA)
  • Telephone Function (AREA)
  • Testing Or Calibration Of Command Recording Devices (AREA)
  • Stored Programmes (AREA)

Abstract

【解決手段】 コンテキストアウェアアプリケーション関連の処理をセンサハブにアウトソースするメカニズムを説明する。本発明の実施形態に係る方法は、センサハブのセンサハブプロセッサを設定することによって、アプリケーションプロセッサからセンサハブプロセッサへと複数の機能をアウトソースする段階と、センサハブプロセッサに結合されている1以上のセンサを用いて1以上のコンテキストアウェアアプリケーションを実行する段階とを備える。
【選択図】 図1

Description

概してコンピューティングデバイスに関する。具体的には、コンテキストアウェアアプリケーション関連の機能をセンサハブにアウトソースするメカニズムの利用に関する。
コンテキストアウェアソフトウェアアプリケーションは、手持ちコンピューティングデバイスおよびモバイルコンピューティングデバイスにおいてよく利用されるようになっている。コンテキストアウェアアプリケーションによると、コンピューティングがデバイスの利用とは切り離され、つまり、ユーザとデバイスとのやり取りがない場合には電池寿命を改善するべく「デバイスを電源オフにする」という従来の方法が用いられない。このため、新しい算出パラダイムが得られる。これは、ユーザのコンテキストがユーザの日常生活のさまざまな場面(例えば、ユーザの活動、ユーザの位置、ユーザの社会的交流、ユーザの感情状態等)に関連しているためであり、コンテキストアウェアアプリケーションを持つモバイルデバイスは、(ユーザが「デバイスを電源オフにする」場合でも)常にユーザのコンテキストを取得しなければならず、コンピューティングデバイスは動作を継続し、電力消費も継続される。
例えば、歩数計アプリケーションは、歩数計アプリケーションを含むモバイルデバイスがどのように利用されようと関係なく、1日中ユーザの歩数を測定する。歩数計アプリケーションの要件を満足させるべく、さまざまなデバイスセンサ(例えば、加速度計、ジャイロスコープ、コンパス等)が、長期間にわたって(このため、常に電力を消費する)、モバイルデバイスが「電源オフ」になっておりユーザのポケット内にあるはずの場合であっても、ユーザの動き(例えば、歩数)を感知している必要がある。ユーザが電話とやり取りしていない場合には電源オフになる通常の携帯電話とは異なり、コンテキストアウェアアプリケーションを持つモバイルコンピューティングデバイスは、電源オン状態を維持しなければならず、1日中センサデータを常に取得するべく常に利用する必要がある。コンテキストアウェアアプリケーションは、大量の電力を消費し、コンピューティングデバイスのバッテリーは、1日に何度も充電する必要がある。
本発明の実施形態は、本発明を限定ではなく例示するべく、添付図面に図示している。図中では、同様の参照番号は同様の構成要素を示すものとする。図面は以下の通りである。
本発明の一実施形態に係るセンサハブを利用するコンピューティングデバイスを示す図である。 本発明の一実施形態に係るセンサハブハードウェアを持つセンサハブを示す図である。 本発明の一実施形態に係るセンサハブソフトウェアを持つセンサハブの実施形態を示す図である。 本発明の一実施形態に係るセンサハブソフトウェアを持つセンサハブの実施形態を示す図である。 本発明の一実施形態に係るセンサハブにプロセッサのコンテキストアウェアアプリケーション関連の機能をアウトソースする方法を説明するための図である。 本発明の一実施形態に係るコンピューティングシステムを示す図である。
本発明の実施形態は、センサハブにコンテキストアウェアアプリケーション関連の処理をアウトソースするメカニズムを提供する。本発明の実施形態に係る方法は、センサハブのセンサハブプロセッサを設定することによって、複数の機能をアプリケーションプロセッサからセンサハブプロセッサへとアウトソースする段階と、センサハブプロセッサに結合されている1以上のセンサを用いて1以上のコンテキストアウェアアプリケーションを実行する段階とを備える。
一実施形態によると、コンピューティングデバイスのアプリケーションプロセッサがスリープ状態である場合に動作し、複数の機能をアプリケーションプロセッサから、これらの機能をアプリケーションプロセッサで実行する場合よりはるかに低い電力のセンサハブプロセッサへと、オフロードする機能を持つ低電力感知サブシステム(例えば、プロセッサ、センサ、ハードウェアおよびソフトウェアの組み合わせ等)から構成されるセンサハブが提供される。さらに、一実施形態によると、センサハブは、低電力要件を満足させつつ、センサハブを多岐にわたるコンテキスト機能に合わせて設定するために必要な柔軟性を得るための一連の電力効率プリミティブを公開することによって、多岐にわたるコンテキストアウェアアプリケーションをサポートしている。新型のセンサハブは、従来のシステムに関連付けられている従来の電力に関する問題を克服している。従来のシステムでは、コンテキストアウェアアプリケーション関連のセンサをアプリケーションプロセッサに直接接続する必要があり、大量の電力を消費すると共に、電池寿命が大幅に短くなる。
図1は、本発明の一実施形態に係るセンサハブ110を利用するコンピューティングデバイス100を示す図である。コンピューティングデバイス100は、コンピューティングデバイス100の任意のハードウェアまたは物理リソースとユーザとの間のインターフェースとして機能するオペレーティングシステム104を有するモバイルデバイス(例えば、スマートフォン、手持ちデバイス、タブレット、ラップトップ等)を備えるとしてよい。コンピューティングデバイス100はさらに、プロセッサ106と、メモリデバイス102と、ネットワークデバイス、ドライバ等を備えるとしてよい。プロセッサ106は、コンピューティングデバイス100にサービスを提供するべく設けられているアプリケーションプロセッサ(回路)108を有するとしてよい。アプリケーションプロセッサ108は、高度コンテキスト処理等、さまざまなタスクを実行するべく、モバイルインターネットデバイス(MID)対応プロセッサ、例えば、Atom(商標)のプロセッサコアを持つLincroftシステムオンチップ(SOC)に基づいているMoorestown(商標)を含むとしてよい。一実施形態によると、本文献で後述するが、アプリケーションプロセッサ108は、(同様の機能をアプリケーションプロセッサで実行する場合に比べて)利用する電力を大幅に低減するべく、センサハブプロセッサに結合されている複数のセンサを用いて、さまざまなコンテキストアウェアアプリケーション関連の機能(アプリケーションプロセッサによって実行されるもの)を実行するべく、所望または必要に応じて、(センサハブハードウェアおよび/またはセンサハブソフトウェアを用いて)センサハブを設定する権限および機能を与えられるとしてよい。「機械」、「デバイス」、「コンピュータ」および「コンピューティングシステム」といった用語は本文献において同義語として用いられることに留意されたい。
一実施形態によると、コンピューティングデバイス100はさらに、プリミティブとして提供される、センサデータ取得、トリガ、処理、フィルタリング、ストリーミング、格納、転送、キャリブレーション等のさまざまなコンテキストアウェアアプリケーション関連機能を実行するべく、アプリケーションプロセッサ108と通信するハードウェア(アーキテクチャ)112およびソフトウェア(アーキテクチャ)114を有するセンサハブ110を備える。これらの機能は、アプリケーションプロセッサ108からセンサハブ110へとアウトソース、例えば、オフロードされ、コンテキストアウェアアプリケーションの要求が変化しても対応できるよう十分柔軟に実行される。言い換えると、一実施形態によると、プリミティブは、センサハブ110で実行され得るが、プロトコル、例えば、センサハブアプリケーションプログラミングインターフェース(API)を介してアプリケーションプロセッサ108によって設定される。
実生活におけるコンテキストアウェアアプリケーションの例を考えると、コンテキストアウェアアプリケーションは、「ジェスチャ認識」を要求すると、トリガされる。この要求は、インタラクティブアプリケーション(IA)アプリケーションプロセッサ108で実行されているミドルウェアにルーティングされる。その後、ミドルウェアは、例えば、加速度計からデータを取得して、加速度計から動きが検出されればジャイロスコープをトリガして、センサハブ110上でジェスチャスポッティングを実行して、これらの条件が満たされればデータをミドルウェアに送信するよう、センサハブ110を設定する。そして、アプリケーションプロセッサ上のミドルウェアは、データを受信するとアルゴリズム(例えば、隠れマルコフモデル(HMM)アルゴリズム)を実行して、最後のジェスチャ認識を実行して、ユーザが「シェイク」ジェスチャをたった今実行したと判断する。言い換えると、一実施形態では、プリミティブ(例えば、トリガ、取得および処理)は、IAアプリケーションプロセッサ108で実行されるミドルウェアによって設定されるが、センサハブ110のセンサハブソフトウェア114で実施され、アプリケーションプロセッサ108にあるセンサハブAPIを介して公開され、アプリケーションプロセッサ108を介して要求、トリガおよび設定される。これについては、以降の図面を参照しつつ説明する。
本文献で続いて説明するが、センサハブハードウェア112は、コンピューティングデバイス100の電力要件を低減するべくさまざまなコンテキストアウェアアプリケーションに関する機能を実行することを目的としてセンサハブソフトウェア114と協働している複数のセンサ(例えば、3D加速器、ジャイロスコープ、コンパス、気圧計等)に結合されている汎用低電力プロセッサ(例えば、STMicro社のCortex等)を含むとしてよい。
図2は、本発明の一実施形態に係るセンサハブハードウェア112を備えるセンサハブ110を示す図である。一実施形態によると、センサハブ110は、センサハブハードウェア112およびセンサハブソフトウェア114を備える。センサハブハードウェア112は、非常に低い電流(例えば、マイクロアンペアからミリアンペアの範囲)で動作可能であり、処理需要に基づいて動的にスケールアップ可能である汎用低電力センサハブプロセッサ202(例えば、Cortex M3)を含む。一実施形態によると、コンテキストアウェアアプリケーションに関するさまざまなセンサ214−228は、例えば、インターインテグレーテッドサーキット(IC)インターフェース、シリアルペリフェラルインターフェース(SPI)、汎用入出力(GPIO)、ユニバーサルアシンクロナスレシーバ/トランスミッタ(UART)、アナログ型、無線型等、標準のインターフェースを用いてセンサハブプロセッサ202に接続されているので、センサハブハードウェア112内に位置している。さらに、一実施形態によると、センサハブプロセッサ202は、一連のインターフェース(例えば、SPI、ユニバーサルシリアルバス(USB)、GPIO等)を介してアプリケーションプロセッサ108と通信するように接続および位置しており、共有メモリ空間へのアクセスを維持する。また、図示した実施形態では、センサハブプロセッサ202は別のプロセッサとして図示されているが、別の実施形態では、センサハブプロセッサ202はアプリケーションプロセッサ108内のコアプロセッサとして位置しているとしてもよいし、または、さらに別の実施形態では、チップセット(例えば、Atom(商標)チップセット、プラットフォームコントローラハブ(PCH)等)等に位置しているとしてもよい。
一実施形態によると、センサハブプロセッサ202は、センサ214−228とアプリケーションプロセッサ108との間等、処理ヒエラルキー内の中間レベル処理エージェントとして機能する。この中間レベルエージェントによって、アプリケーションプロセッサ108が上記のセンサデータ関連のタスクをセンサハブプロセッサ202にアウトソースできるようにすることで、センサデータのポーリングおよび処理(例えば、センサデータを収集してしきい値と比較)をアプリケーションプロセッサ108が継続的に行う必要性が減る。また、センサハブプロセッサ202は、センサハブプロセッサ202が無くアプリケーションプロセッサ108と直に協働する場合にセンサ214−228が通常実現し得るレベルより高い柔軟性およびプログラミング可能性を実現する。
センサハブプロセッサ202は、コンテキストアウェアアプリケーションの性格および機能に応じて、任意の数で任意の種類のセンサ214−228と協働するべく利用され得ると考えられる。例えば、歩数計アプリケーション等のコンテキストアウェアアプリケーションは、特定のセンサ(例えば、3D加速度計222、3Dジャイロスコープ220等)が必要になるとしてよい。一方で、カメラアプリケーション等の別のコンテキストアウェアアプリケーションは、歩数計アプリケーションが必要としたセンサと全く同じセンサが必要でない場合があり、この逆もまた然りである。幾つかの例として、環境マイクロフォン216とセンサハブプロセッサ202との間でのデータ変換に利用されるコーデック214(例えば、Maxim社のコーデック)に対応付けられている環境マイクロフォン216(例えば、Knowles社の環境マイクロフォン)、3Dコンパス218(例えば、Honeywell社のコンパス)、3Dジャイロスコープ220(例えば、Invense社のジャイロスコープ)、3D加速度計222(例えば、STMicro社の加速度計)、光センサ224(例えば、Intersil社の光センサ)、気圧計226、およびフラッシュ228等が挙げられる。上述した物理センサ214−228に加えて、さまざまな仮想センサがセンサハブプロセッサ202によってサポートされているとしてよい。これらの仮想センサ(例えば、xy方向、z方向、慣性測定による進行方向、ノイズレベル等)は、物理センサ214−228で取得したセンサデータを用いて算出または取得するとしてよい。
図3Aおよび図3Bを参照しつつさらに説明するが、一実施形態によると、センサハブプロセッサ202が、動的または要望に応じて、さまざまな機能または処理を実行する性能を採用するように、アプリケーションプロセッサ108において、任意の数で任意の種類のソフトウェアモジュールをセンサハブソフトウェア114の一部として利用する。ソフトウェアモジュールを介して提供されるこれらの機能は、センサハブプリミティブと呼ばれるとしてよい。一実施形態によると、センサデータ取得、トリガ、処理、フィルタリング、ストリーミング、格納、転送、キャリブレーション等のさまざまなコンテキストアウェアアプリケーション関連機能は、プリミティブとして提供され、アプリケーションプロセッサ108からセンサハブ110へとアウトソース、例えば、オフロードされ、コンテキストアウェアアプリケーションからの要求が変化しても対応できるように十分柔軟に実行される。言い換えると、一実施形態によると、プリミティブはセンサハブ110で実行されるとしてよいが、センサハブAPI等のプロトコルを介してアプリケーションプロセッサ108によって設定される。言い換えると、一実施形態では、プリミティブ(例えば、トリガ、取得、処理、取得、フィルタリング等)は、IAアプリケーションプロセッサ108上で実行されているミドルウェアによって設定されるが、センサハブ110のセンサハブソフトウェア114で実行され、アプリケーションプロセッサ108にあるセンサハブAPIを介して公開され、アプリケーションプロセッサ108を介して要求、トリガおよび設定される。これらについては、以降の図面を参照しつつ説明する。
一実施形態によると、特定のデフォルトプリミティブがセンサハブ110の一部として最初に提供されるとしてよい。例えば、センサハブ110およびアプリケーションプロセッサ108を備えるコンピューティングデバイスの製造時に提供されるとしてよい。しかし、時間が経過すると、特定のプリミティブ(これらの機能または性能に対応するもの)は、センサハブソフトウェア114に追加(またはセンサハブソフトウェア114から削除)されるとしてよい。例えば、新しい機能(例えば、追加機能)を表す新しいプリミティブ(例えば、新しいコンポーネントの追加)をセンサハブソフトウェア114に追加する場合、センサハブソフトウェア114は、アプリケーションプロセッサ108がセンサハブプロセッサ202を動的または需要に応じて(再)設定できるようにして、コンテキストアウェアアプリケーションに関連する今後のトランザクションで利用されるこの新しい機能を採用する。同様に、センサハブプロセッサ202は、対応するプリミティブ(例えば、キャリブレータ)がセンサハブソフトウェア114によって提供されるプリミティブのリストから削除されると、(センサハブソフトウェア114からの支援に応じてアプリケーションプロセッサ108によって)動的または需要に応じて(再)設定されて、特定の機能(例えば、キャリブレーション)を削除するとしてよい。一実施形態によると、動的設定とは、任意の数または任意の組み合わせのプリミティブを動的に実行および終了することを意味する。例えば、データの取得は、加速度計222を用いて開始されて、その後任意のタイミングで停止させるとしてよい。しかし、取得プリミティブ(例えば、図3Bの取得モジュール322)はそのままで、実施されないだけであるとしてもよい(例えば、再度必要になるまでアイドル状態を維持する)。さらに、監視すべきイベントを開始するとしてよいが、例えば、加速度計データが特定のしきい値に到達するか、または、特定のしきい値を超えると、アプリケーションプロセッサ108がアウェイク状態になるか、または、当該イベントを除去するとしてよい。さらに、センサハブ110で実行されているセンサハブソフトウェア114を修正して、新しいプリミティブをAPI(例えば、図3AのセンサハブAPI310)に追加してアプリケーションプロセッサ108が新しく追加されたプリミティブにアクセスして利用できるようにすることによって、センサハブ機能の拡張で、特定のプリミティブを追加または削除するとしてよい。
図3Aおよび図3Bは、本発明の一実施形態に係るセンサハブソフトウェア114を備えるセンサハブ110の実施形態を示す図である。図2を参照しつつ上述したが、複数のプリミティブ(「処理モジュール」、「性能モジュール」、「機能モジュール」等とも呼ばれる)は、アプリケーションプロセッサ108がセンサハブプロセッサ202を設定して関連する機能を採用してさまざまな対応するコンテキストアウェアアプリケーション関連機能を実行できるようにするべく、センサハブソフトウェア114およびセンサハブソフトウェアモジュール304の一部として利用されるとしてよい。
一実施形態によると、コンピューティングデバイス100はさらに、さまざまなコンテキストアウェアアプリケーション関連機能、例えば、センサデータ取得、トリガ、処理、フィルタリング、ストリーミング、格納、転送、キャリブレーション等を実行するべく、アプリケーションプロセッサ108と通信しているハードウェア(アーキテクチャ)112およびソフトウェア(アーキテクチャ)114を有するセンサハブ110を備える。これらの機能は、プリミティブとして提供され認識されているとしてよい。これらの機能は、アプリケーションプロセッサ108からセンサハブ110へと、アウトソース、例えば、オフロードされ、コンテキストアウェアアプリケーションの要求が変化しても対応できるように十分柔軟に実行される。言い換えると、一実施形態では、プリミティブはセンサハブ110で実行されるが、センサハブAPI等のプロトコルを介してアプリケーションプロセッサ108によって設定される。言い換えると、一実施形態では、プリミティブ(例えば、トリガ、取得、処理、取得、フィルタリング等)は、IAアプリケーションプロセッサ108で実行されているミドルウェアによって設定されるが、センサハブ110のセンサハブソフトウェア114で実行され、アプリケーションプロセッサ108にあるセンサハブAPIを介して公開され、アプリケーションプロセッサ108を介して要求、トリガおよび設定される。これについては、以降の図面を参照しつつ説明する。
一実施形態によると、プリミティブを用いるアプリケーションプロセッサ108によるセンサハブプロセッサ202の設定または再設定は、動的に実行されるとしてよい(例えば、プリミティブは、コンテキストアウェアアプリケーションまたはユーザのジェスチャが変化を引き起こす度に、自動的に追加、編集または削除されるとしてよい)し、または、要求に応じて実行されるとしてもよい(例えば、ユーザが、センサハブ110を利用するコンピューティングデバイスでの設定を変更することによってプリミティブの変更を行えるようにする)。
プリミティブに加えて(図3Bを参照しつつさらに説明する)、他のソフトウェア/ハードウェア/ファームウェアコンポーネントも利用する。例えば、センサハブアプリケーションプログラミングインターフェース310(「API」または単に「インターフェース」と呼ぶ)は、IA306に対応付けられているIAドライバ312(コンテンツパーサ314を含む)が、例えば、センサハブプロセッサ202の設定、データの設定等について、センサハブプロセッサ202とやり取りできるようにするとしてよい。ドライバ314は、例えば、推論エンジン(例えば、Skin−Skeleton−Guts(SSG)推論ソフトウェアディベロッパキット(SDK))によって利用され得るか、または、例えば、生センサデータが必要な場合にはアプリケーションおよびサービス316によって直接利用され得るセンサAPI308を公開するべく利用されるとしてよい。一実施形態によると、センサAPI308および/またはセンサハブAPI310は、センサハブソフトウェア114に抽象化を提供する。このため、所定期間にわたってセンサハブソフトウェア114が複数の異なるセンサをサポートする必要がある場合には、各センサドライバが公開しているセンサ機能はセンサAPI308および/またはセンサハブAPI310で抽象化される。このように、例えば、センサ214−228の既存の加速度計を新しい加速度計と交換する場合、既存の加速度計に対応付けられているセンサドライバを単に新しい加速度計に対応付けられているセンサドライバと交換することで、同じ加速度計APIを既存のもの(例えば、データ取得、電力低減等)として公開するには十分である。
さらに、ミドルウェア370は、高レベルでのコンテキストの格納、検索、通知、データの処理等を実現するとしてよく、さらに、他のアプリケーション、サービスおよびコンポーネント316の実装、例えば、推論アルゴリズムの実装、生センサデータの格納(例えば、高データレート)等を実現するとしてよい。同様に、ドライバ312、パーサ314等のさまざまなコンポーネントは、抽象的なセンサハブの詳細を提供し、複数の消費者をサポートし、コンフリクト解決を実行するべく利用され得る。図1を参照しつつ上述した「ジェスチャ認識」の例に戻ると、「ジェスチャ認識」要求がアプリケーションプロセッサ108上で実行されているミドルウェア370にルーティングされると、ミドルウェア370は、例えば、加速度計からデータを取得して、加速度計から動きが検出されればジャイロスコープをトリガして、センサハブ110でジェスチャスポッティングを実行して、これらの条件が満たされればミドルウェア370にデータを送信するよう、センサハブ110を設定する。アプリケーションプロセッサ108上のミドルウェア370はこの後、データを受信すればいつでもアルゴリズム(例えば、HMMアルゴリズム)を実行して、最後のジェスチャ認識を実行して、ユーザがたった今、例えば、「シェイク」ジェスチャを行ったと判断する。ミドルウェア370は、本明細書で図示しているコンポーネントのうち一部、例えば、IA306、センサAPI308、センサハブAPI310、ドライバ312、他のアプリケーション、サービスおよびコンポーネント316、呼受付制御(CAC)アプリケーション352、CACフレームワーク354(例えば、SSGフレームワーク)、推論SDK(例えば、SSG推論SDK)356、CACクライアントAPI358、CACプロバイダAPI360等を含むとしてよい。一方、パーサ314は、ドライバ312に対応付けられているが、センサハブ110で実行されるとしてよい。上述したように、一実施形態によると、センサハブソフトウェアモジュール304を介して提供するプリミティブ(例えば、トリガ、取得、処理、取得、フィルタリング等)は、アプリケーションプロセッサ108上で実行されているミドルウェア370によって設定されるが、センサハブ110のセンサハブソフトウェア114において実施され、アプリケーションプロセッサ108にあるセンサハブAPI310を介して公開され、アプリケーションプロセッサ108を介して要求、トリガおよび設定される。
図3Bを参照すると、さまざまな機能および/または性能に言及する複数のプリミティブ322−338が、ソフトウェアモジュール304として提供されており、センサハブAPI310を介してセンサハブプロセッサ202に対応付けられており、アプリケーションプロセッサ108は、コンテキストアウェアアプリケーションのさまざまな要求および/または要件に基づいて、センサハブプロセッサ202を(再)設定できる。本明細書で図示しているプリミティブ322−338に対応付けられているさまざまな機能は、説明を簡潔かつ分かり易くするべく単に一例として挙げられているが、任意の数の他の機能をプリミティブ322−338のリストに追加し得る(またはプリミティブ322−338のリストから削除し得る)ものと考えられる。
一実施形態によると、センサハブプリミティブ322−338は、範囲および所望のサンプリングレートを設定することに加えて、複数のセンサ212−228のうちいずれを選択してデータを取得するかを決定するべく、取得モジュール322を含む。取得モジュール322はさらに、センサハブプロセッサ202に、不要または非アクティブ状態のセンサ214−228のいずれかを低電力モードに移行させて、電力を節約できるようにする。別のプリミティブは、輸送効率を維持しつつレイテンシを最適化することを目的としてデータをアプリケーションプロセッサ108にストリームするべくセンサハブプロセッサ202の設定を容易にするために用いられるデータ配信モジュール324を含む。データ配信モジュール324またはこのモードは、アプリケーションプロセッサ108がウェイク状態またはアクティブ状態である場合に利用されるとしてよい。これに代えて、ユーザ(例えば、モバイルコンピューティングデバイスのエンドユーザ)が(モバイル)コンピューティングデバイスとやり取りしていない場合には、アプリケーションプロセッサ108はスリープ状態に移行して、バックグラウンドで関連データを収集して格納媒体でデータを蓄積または保持するようにセンサハブプロセッサ202を設定するとしてよい。データ配信モードにおいて、アプリケーションプロセッサ108は、周期的にウェイク状態に移行して、格納媒体から格納されているデータを取得して、コンテキスト認識等の必要なタスクを実行するとしてよい。
別のプリミティブは、一実施形態によると、特定のデータ処理機能をセンサ214−228から取得したセンサデータに適用するようにセンサハブプロセッサ202を設定し易くするべくアプリケーションプロセッサ108をトリガするために用いられる処理モジュール326を含む。これらの処理機能は、柔軟性を高めるべく一連のパラメータを用いて設定可能である(例えば、サンプルの数、スライディングウィンドウ等)。さらに、これらの処理機能は、必要または所望に応じて、プリミティブ調整部338を用いて既存の処理モジュール326を拡張することによって、比較的容易に拡張が可能である。プリミティブ調整部338は、処理モジュール326等の既存モジュールの機能を拡張するべく、または、ソフトウェアプログラミングを介した新しいモジュールを追加するべく用いられる機能拡張モジュールを含む。
一実施形態によると、プリミティブ322−338はさらに、任意の1以上のセンサ214−228からのセンサデータを組み合わせ、特定の条件の発生についてセンサデータを評価するべくデータ処理機能を実行するようにセンサハブプロセッサ202の設定を容易にする条件評価部328を含む。これらの条件は、トリガされると、以下の処理のうち1以上が行われる。
(1) 新しいセンサからの取得をトリガ
(2) データ低減
(3) イベント検出
「新しいセンサからの取得をトリガ」は、センサ214−228を用いて異なるセンサからの取得モジュール322を利用した取得をトリガすると、一部のセンサは他のセンサよりも消費電力が高いので、電力効率が高くなることを意味する。例えば、コンテキストアウェアアプリケーションのジェスチャ認識の場合、加速度計、ジャイロスコープ等の特定のセンサがジェスチャ認識関連のタスクを実行するために必要である。例えば、加速度計から取得したデータは、ユーザの動きを検出するために用いられる。その結果、ジャイロスコープ(通常は、消費電力が10倍(10X)である)からの取得が開始される。一実施形態によると、アプリケーションプロセッサ108の機能はセンサハブプロセッサ202にオフロードまたはアウトソースされて、動作時のレイテンシを低く抑える。これは、当該機能がアプリケーションプロセッサ108にとどまっている場合には、取得がトリガされる度にアプリケーションプロセッサ108をウェイク状態にする必要があるので、不可能である。
「データ低減」および「イベント検出」に関しては、継続的に検出処理を行うので、取得モジュール322を用いて所定量のデータが取得されるが、このデータの大半は意味を持たない場合がある。例えば、ジェスチャ認識または音声認識を考えると、加速度計またはマイクロフォン等のセンサは通常、アプリケーションプロセッサ108をウェイク状態にする必要がない無用なデータを収集したり、無用なデータを受信したりすることがある。ある時点において、ユーザは、ジェスチャを行うか、または、単語を話すとしてよく、ジェスチャー(または音声)が行われた可能性がある(ジェスチャまたは音声が理解可能である必要はない)とセンサハブ110が検出することが出来る場合、センサハブ110はアプリケーションプロセッサ108をウェイク状態に移行させてデータを送信する。言い換えると、一実施形態では、アプリケーションプロセッサ108は、収集されたデータに何らかの意義がある場合に限ってウェイク状態になりデータを受信する。何の意義もない場合には、この処理は、アプリケーションプロセッサ108における処理負荷を低減して、コンピューティングデバイスの消費電力を低減するべくセンサハブ110にアウトソースされて実行される。
例えば、ジェスチャ認識の場合、ジェスチャ認識パイプラインの最初の2つのステージは、演算の負荷が大きくないので、センサハブ110にオフロードすることができる。これらのステージによって、ジェスチャの種類を判断することはできないが、ジェスチャに似た動きがあるか否かを検出することができる。この結果、ジェスチャが実行されていない場合には元のデータの95%以上を落とすので、IA、アプリケーションプロセッサ108をウェイク状態に移行させる頻度が大幅に少なくなる。残りの5%のデータについては、アプリケーションプロセッサ108はウェイク状態に移行するとしてよく、ジェスチャ認識を実行する演算の負荷が非常に大きいステージをIAで実行する。この作業負荷分散方法は、検出、音声認識、スピーカ特定等の複数のインターフェースパイプラインについて、一般化することができる。
プリミティブ304について続けると、仮想センサ330は、生センサデータ(センサ214−228から取得または算出したもの)に対して、高レベルデータ(例えば、コンピューティングデバイスの表面が上を向いているか否か等)を提供するために利用可能なプリミティブとして機能する。一部の仮想センサ330(例えば、向き、進行方向等)は、センサハブ110で効率的に算出可能であり、元のセンサデータが必要でない場合にはデータが大幅に削減される。さらに、これらの仮想センサ330は、特定のイベントをトリガして、アプリケーションプロセッサ108をウェイク状態に移行させるとしてよい。
他のプリミティブ304には、キャリブレータ332、タイムスタンプモジュール334、電力マネージャ336およびプリミティブ調整部338が含まれる。一部のセンサ(例えば、コンパス)は頻繁にキャリブレーションを行う必要があるので、キャリブレータ332は、キャリブレーション機能を適用してさまざまなキャリブレーションタスクを実行してキャリブレーション(または、キャリブレーション済みの)データをアプリケーションプロセッサ108に供給するために用いられるとしてよい。正確なコンテキスト認識を可能とするためにはセンササンプルのタイムスタンプを正確に維持することが重要であるので、タイムスタンプモジュール334は、センサハブの自身の内蔵クロックと共に利用され、時間データをアプリケーションプロセッサ108と周期的に同期させて、コンテキストアウェアアプリケーションに関するさまざまな処理のタイムサンプリングを実行して登録する。時間データは、時間データサンプルと共に送信されるタイムスタンプとして、アプリケーションプロセッサ108と共有されるとしてよい。電力マネージャ336は、センサハブ110における電力の管理を容易にするので、アプリケーションプロセッサ108とは別に自発的に行われる。例えば、電力マネージャ336は、センサハブ110を、(例えば、連続するデータサンプル取得タイミングの間に)低電力状態に切り替えるとしてよい。一方、アプリケーションプロセッサ108は、高電力状態にあるとしてよい。プリミティブ調整部338によれば、新しいプリミティブをセンサハブプリミティブ304のリストにプログラミングすること、および/または、既存のプリミティブ304を(再)プログラミングして特定の機能を追加または削除することが可能である。
図4は、本発明の一実施形態に係るセンサハブにプロセッサのコンテキストアウェアアプリケーション関連の機能をアウトソースする方法を説明するための図である。方法400は、ハードウェア(例えば、回路、専用ロジック、プログラム可能ロジック等)、ソフトウェア(処理デバイスで実行される命令等)、または、これらの組み合わせを含む処理ロジックによって実行されるとしてよい。一実施形態によると、方法400は、図1のセンサハブ110によって実行される。
方法400は、センサハブをコンピューティングデバイス(例えば、モバイルコンピューティングデバイスまたは手持ちコンピューティングデバイス)のアプリケーションプロセッサに対応付けるブロック405で開始される。コンピューティングデバイスは、1以上のコンテキストアウェアアプリケーションをホストしている。一実施形態によると、ブロック410において、コンテキストアウェアアプリケーションに関連する複数のセンサは、センサハブのハードウェアアーキテクチャのセンサハブプロセッサに対応付けられている。一実施形態によると、センサハブは、チップセットのうち、アプリケーションプロセッサが位置しているのと同じコアに位置するとしてもよいし、別のチップセットにディスクリートに設けられるとしてもよい。一実施形態によると、一連のソフトウェアモジュールは、ブロック415において、プリミティブとしてセンサハブのソフトウェアアーキテクチャにプログラミングされ、コンピューティングシステムのアプリケーションプロセッサに供給される。上述したように、プリミティブ(例えば、トリガ、取得および処理)は、アプリケーションプロセッサで実行されているミドルウェアによって設定されるが、センサハブソフトウェアで実施され、アプリケーションプロセッサのセンサハブAPIを介して公開され、アプリケーションプロセッサを介して要求、トリガおよび設定される。一実施形態によると、図3Bを参照しつつ説明したように、センサハブソフトウェアモジュール304によって提供されるように、プリミティブ調整部またはプリミティブ調整モジュールを用いて、プリミティブを後に更新するとしてよい。これらのプリミティブの変更または更新は、任意の数の既存のプリミティブの編集、移動および/または削除、ならびに、任意の数で任意の種類の新しいプリミティブの追加を含むとしてよい。
ブロック420において、これらのプリミティブはアプリケーションプロセッサに提供されて、アプリケーションプロセッサに新しい機能を提供し、コンピューティングシステムのコンテキストアウェアアプリケーションに対応する処理に関するさまざまな機能およびタスクを実行するようにセンサハブプロセッサを設定する。このように、一実施形態によると、通常はアプリケーションプロセッサによって実行される機能または処理は、ブロック425においてセンサハブプロセッサにアウトソースされる。例えば、アプリケーションプロセッサが通常は直接管理するセンサは、一実施形態によると、センサハブプロセッサによって管理されるので、コンテキストアウェアアプリケーションに関するタスクの大半をアプリケーションプロセッサが行わなくて済む。これによって、アプリケーションプロセッサはスリープ状態に移行するので、消費電力が全体的に低減される。
ブロック430において、既存のプリミティブのうちいずれかは更新(例えば、拡張または低減)すべきであるか否か、および/または、任意の新しいプリミティブを追加すべきか否かを判断する。更新および/または追加を行う場合、プリミティブ調整部を用いて、更新および/または追加をブロック435で実行して、ブロック420において、アプリケーションプロセッサによるセンサハブプロセッサの設定を行うようにする。更新および/または追加を行わない場合、ブロック440で終了する。
図5は、本発明の一実施形態に係る、図1のセンサハブ110を利用可能なコンピューティングシステム500を示す図である。図5に示すコンピューティングシステムの例は、
1)少なくとも1つが上述した特徴を含む1以上のプロセッサ501と、
2)メモリコントロールハブ(MCH)502と、
3)システムメモリ503(異なる種類のシステムメモリも存在する、例えば、ダブルデータレートRAM(DDR RAM)、拡張データ出力RAM(EDO RAM)等)と、
4)キャッシュ504と、
5)入出力(I/O)コントロールハブ(ICH)505と、
6)グラフィクスプロセッサ506と、
7)ディスプレイ/スクリーン507(異なる種類のものが存在する、例えば、陰極線管(CRT)、薄膜トランジスタ(TFT)、液晶ディスプレイ(LCD)、DPL等)と、
8)1以上のI/Oデバイス508と
を備える。
1以上のプロセッサ501は、コンピューティングシステムが実現するソフトウェアルーチンを実行するべく、命令を実行する。命令は、データに対して実行される何らかの種類の演算を含むことが多い。データおよび命令は共に、システムメモリ503およびキャッシュ504に格納されている。キャッシュ504は通常、システムメモリ503よりもレイテンシ時間が短い。例えば、キャッシュ504は、プロセッサと同じシリコンチップに集積化されているとしてもよいし、および/または、より高速なスタティックRAM(SRAM)セルで構成されているとしてもよい。一方、システムメモリ503は、より低速のダイナミックRAM(DRAM)セルで構成されているとしてよい。利用頻度が高い命令およびデータをシステムメモリ503ではなくキャッシュ504に格納しようとすることで、コンピューティングシステムの全体的な性能効率が改善する。
システムメモリ503は意図的に、コンピューティングシステム内の他のコンポーネントによって利用可能な構成になっている。例えば、さまざまなインターフェース(例えば、キーボードおよびマウス、プリンタポート、ローカルエリアネットワーク(LAN)ポート、モデムポート等)からコンピューティングシステムで受信したデータ、または、コンピュータシステム(例えば、ハードディスクドライブ)の内部格納要素から取り出したデータは通常、ソフトウェアプログラムの実施に際して1以上のプロセッサ501によって演算を行う前に、システムメモリ503の待ち行列に一時的に入れる。同様に、ソフトウェアプログラムがコンピューティングシステムから外部のエンティティへとコンピューティングシステムインターフェースのうち1つを介して送信する必要があると判断するデータ、または、内部格納要素に格納されるデータは通常、送信または格納の前にシステムメモリ503で一時的に待ち行列に入れられる。
ICH505は、当該データが適切にシステムメモリ503と適切な対応するコンピューティングシステムインターフェースとの間でやり取りされるように処理する(コンピューティングシステムの構成に応じて、内部格納デバイスとのやり取りも処理する)。MCH502は、プロセッサ501、インターフェースおよび内部格納要素からのシステムメモリ503へのアクセス要求が互いに近接したタイミングで発生して競合する場合に、これらの要求を管理する。
また、通常のコンピューティングシステムでは1以上のI/Oデバイス508が実現されている。I/Oデバイスは一般的に、コンピューティングシステム(例えば、ネットワーキングアダプタ)との間でデータ転送を行うか、または、大規模不揮発性ストレージの場合には、コンピューティングシステム(例えば、ハードディスクドライブ)内でデータ転送を行う。ICH505は、自身とI/Oデバイス508との間において、双方向のポイント・ツー・ポイントリンクを持つ。
本発明のさまざまな実施形態の一部は、コンピュータプログラム製品として提供されるとしてよい。コンピュータプログラム製品は、本発明の実施形態に係るプロセスを実行するようコンピュータ(またはその他の電子デバイス)をプログラミングするために用いられるコンピュータプログラム命令を格納しているコンピュータ可読媒体を含むとしてよい。機械可読媒体は、これらに限定されないが、フロッピー(登録商標)ディスケット、光ディスク、コンパクトディスクリードオンリーメモリ(CD−ROM)、および、光磁気ディスク、ROM、RAM、消去可能プログラム可能リードオンリーメモリ(EPROM)、電気的EPROM(EEPROM)、磁気カードまたは光カード、フラッシュメモリ、または、電子命令を格納するのに適した他の種類の媒体/機械可読媒体を含むとしてよい。
上述した説明では、本発明は、具体的な実施形態例を参照しつつ説明した。しかし、上述した説明を、特許請求の範囲に記載した本発明のより広義の意図および範囲から逸脱することなく、さまざまな点で変形および変更し得ることは明らかである。明細書および図面は、本発明を限定するものではなく、例示するものと見なされたい。

Claims (20)

  1. コンピュータで実施される方法であって、
    センサハブのセンサハブプロセッサを設定することによって、アプリケーションプロセッサから前記センサハブプロセッサへと複数の機能をアウトソースする段階と、
    前記センサハブプロセッサに結合されている1以上のセンサを用いて1以上のコンテキストアウェアアプリケーションを実行する段階と
    を備えるコンピュータで実施される方法。
  2. 前記センサハブプロセッサを設定することは、複数のプリミティブに基づいて前記センサハブプロセッサを動的に設定することを含む請求項1に記載のコンピュータで実施される方法。
  3. 前記複数のプリミティブのうち1以上のプリミティブを拡張または縮小するべく前記複数のプリミティブのうち前記1以上のプリミティブを更新する段階をさらに備える請求項2に記載のコンピュータで実施される方法。
  4. 前記複数のプリミティブに1以上のプリミティブを追加するか、または、前記複数のプリミティブのうち1以上のプリミティブを削除する段階をさらに備える請求項3に記載のコンピュータで実施される方法。
  5. 前記センサハブプロセッサを動的に設定することは、前記複数のプリミティブのうち1以上のプリミティブを更新すること、または、1以上のプリミティブを追加することに基づいて行われる請求項2から4のいずれか一項に記載のコンピュータで実施される方法。
  6. アウトソースされた前記複数の機能は、前記センサハブプロセッサによって実行され、
    前記センサハブプロセッサは、前記1以上のセンサの動作を管理し、
    前記1以上のセンサの動作を管理することは、前記アプリケーションプロセッサがスリープ状態の間に、前記1以上のセンサからデータを取得することを含み、
    前記複数の機能は、データの取得、前記1以上のセンサのトリガ、取得した前記データのフィルタリングを含む前記取得したデータの処理、処理した前記データの配信、キャリブレーション、前記取得したデータへの時間サンプリング、および、消費電力を低減することを含む電力の管理のうち1以上を含む請求項1から5のいずれか一項に記載のコンピュータで実施される方法。
  7. 前記動作は、前記1以上のコンテキストアウェアアプリケーションに関連するユーザの動作に基づいている請求項6に記載のコンピュータで実施される方法。
  8. 前記センサハブプロセッサは、一のチップセットまたは複数の別箇のチップセットに設けられている前記アプリケーションプロセッサに結合されている請求項1から7のいずれか一項に記載のコンピュータで実施される方法。
  9. センサハブのセンサハブプロセッサと、
    前記センサハブプロセッサを設定することによってアプリケーションプロセッサから前記センサハブプロセッサへと複数の機能をアウトソースする第1のロジックと、
    前記センサハブプロセッサに結合されている1以上のセンサを用いて1以上のコンテキストアウェアアプリケーションを実行する第2のロジックと
    を備えるシステム。
  10. 前記センサハブプロセッサを設定することは、複数のプリミティブに基づいて前記センサハブプロセッサを動的に設定することを含む請求項9に記載のシステム。
  11. 前記複数のプリミティブのうち1以上のプリミティブを拡張または縮小するべく前記複数のプリミティブのうち前記1以上のプリミティブを更新する第3のロジックをさらに備える請求項10に記載のシステム。
  12. 前記第3のロジックはさらに、前記複数のプリミティブに1以上のプリミティブを追加するか、または、前記複数のプリミティブのうち1以上のプリミティブを削除する請求項11に記載のシステム。
  13. 前記センサハブプロセッサを動的に設定することは、前記複数のプリミティブのうち1以上のプリミティブを更新すること、または、1以上のプリミティブを追加することに基づいて行われる請求項10から12のいずれか一項に記載のシステム。
  14. 前記センサハブプロセッサは、前記1以上のセンサの動作を管理し、
    前記1以上のセンサの動作を管理することは、前記アプリケーションプロセッサがスリープ状態の間に、前記1以上のセンサからデータを取得することを含み、
    前記複数の機能は、データの取得、前記1以上のセンサのトリガ、取得した前記データのフィルタリングを含む前記取得したデータの処理、処理した前記データの配信、キャリブレーション、前記取得したデータへの時間サンプリング、および、消費電力を低減することを含む電力の管理のうち1以上を含む請求項9から13のいずれか一項に記載のシステム。
  15. 前記動作は、前記1以上のコンテキストアウェアアプリケーションに関連するユーザの動作に基づいている請求項14に記載のシステム。
  16. コンピュータに、
    センサハブのセンサハブプロセッサを設定することによって、アプリケーションプロセッサから前記センサハブプロセッサへと複数の機能をアウトソースする手順と、
    前記センサハブプロセッサに結合されている1以上のセンサを用いて1以上のコンテキストアウェアアプリケーションを実行する手順と
    を実行させるためのプログラム。
  17. 前記センサハブプロセッサを設定することは、複数のプリミティブに基づいて前記センサハブプロセッサを動的に設定することを含む請求項16に記載のプログラム。
  18. 前記コンピュータにさらに、前記複数のプリミティブのうち1以上のプリミティブを拡張または縮小するべく前記複数のプリミティブのうち前記1以上のプリミティブを更新する手順を実行させる請求項17に記載のプログラム。
  19. 前記コンピュータにさらに、前記複数のプリミティブに1以上のプリミティブを追加するか、または、前記複数のプリミティブのうち1以上のプリミティブを削除する手順を実行させる請求項18に記載のプログラム。
  20. 前記センサハブプロセッサを動的に設定することは、前記複数のプリミティブのうち1以上のプリミティブを更新すること、または、1以上のプリミティブを追加することに基づいて行われる請求項17から19のいずれか一項に記載のプログラム。
JP2014502541A 2011-04-01 2011-11-21 コンテキストアウェアアプリケーション関連の機能をセンサハブにアウトソースするメカニズム Active JP5707598B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/078,268 2011-04-01
US13/078,268 US20120254878A1 (en) 2011-04-01 2011-04-01 Mechanism for outsourcing context-aware application-related functionalities to a sensor hub
PCT/US2011/061725 WO2012134546A1 (en) 2011-04-01 2011-11-21 Mechanism for outsourcing context-aware application-related functionalities to a sensor hub

Publications (2)

Publication Number Publication Date
JP2014509765A true JP2014509765A (ja) 2014-04-21
JP5707598B2 JP5707598B2 (ja) 2015-04-30

Family

ID=46929065

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014502541A Active JP5707598B2 (ja) 2011-04-01 2011-11-21 コンテキストアウェアアプリケーション関連の機能をセンサハブにアウトソースするメカニズム

Country Status (7)

Country Link
US (1) US20120254878A1 (ja)
EP (1) EP2695056B1 (ja)
JP (1) JP5707598B2 (ja)
KR (1) KR101554085B1 (ja)
CN (1) CN102893257B (ja)
TW (1) TWI547878B (ja)
WO (1) WO2012134546A1 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016081429A (ja) * 2014-10-21 2016-05-16 富士通株式会社 センシング制御プログラム及び携帯端末装置
JP2017010515A (ja) * 2015-06-19 2017-01-12 上海兆芯集成電路有限公司 オンチップセンサハブ、モバイル装置、および、モバイル装置のためのマルチセンサ管理方法
JP2017519284A (ja) * 2014-06-24 2017-07-13 インテル・コーポレーション ファームウェアセンサレイヤ
JP2017520937A (ja) * 2014-05-29 2017-07-27 アップル インコーポレイテッド 常時オンプロセッサを有するシステムオンチップ
US10261894B2 (en) 2014-05-29 2019-04-16 Apple Inc. System on a chip with always-on processor which reconfigures SOC and supports memory-only communication mode
US10571996B2 (en) 2014-05-29 2020-02-25 Apple Inc. System on a chip with fast wake from sleep
US11862173B2 (en) 2013-11-12 2024-01-02 Apple Inc. Always-on audio control for mobile device

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8892162B2 (en) 2011-04-25 2014-11-18 Apple Inc. Vibration sensing system and method for categorizing portable device context and modifying device operation
US8934389B2 (en) * 2012-01-18 2015-01-13 Microsoft Corporation Mechanism for connecting a mobile device to a network
US9191442B2 (en) * 2012-04-03 2015-11-17 Accenture Global Services Limited Adaptive sensor data selection and sampling based on current and future context
US9147057B2 (en) 2012-06-28 2015-09-29 Intel Corporation Techniques for device connections using touch gestures
KR102045511B1 (ko) 2012-07-18 2019-11-15 삼성전자 주식회사 센서 허브를 포함하는 단말기 및 단말기의 제어 방법
US9063731B2 (en) * 2012-08-27 2015-06-23 Samsung Electronics Co., Ltd. Ultra low power apparatus and method to wake up a main processor
US10078900B2 (en) * 2012-09-10 2018-09-18 Intel Corporation Providing support for display articulation-related applications
US9182903B2 (en) 2012-10-30 2015-11-10 Google Technology Holdings LLC Method and apparatus for keyword graphic selection
US9152211B2 (en) 2012-10-30 2015-10-06 Google Technology Holdings LLC Electronic device with enhanced notifications
US9158372B2 (en) 2012-10-30 2015-10-13 Google Technology Holdings LLC Method and apparatus for user interaction data storage
US9063564B2 (en) 2012-10-30 2015-06-23 Google Technology Holdings LLC Method and apparatus for action indication selection
JP6020092B2 (ja) * 2012-11-29 2016-11-02 ソニー株式会社 データ処理装置、データ処理方法、及び、プログラム
KR102179811B1 (ko) 2012-12-03 2020-11-17 엘지전자 주식회사 포터블 디바이스 및 음성 인식 서비스 제공 방법
US9746926B2 (en) 2012-12-26 2017-08-29 Intel Corporation Techniques for gesture-based initiation of inter-device wireless connections
US9541982B2 (en) 2013-01-25 2017-01-10 Wisconsin Alumni Research Foundation Reconfigurable event driven hardware using reservoir computing for monitoring an electronic sensor and waking a processor
US9542347B2 (en) * 2013-03-16 2017-01-10 Intel Corporation Host interface crossbar for sensor hub
US9430414B2 (en) 2013-03-16 2016-08-30 Intel Corporation Bus independent platform for sensor hub peripherals to provide coalescing of multiple reports
CN104102749B (zh) * 2013-04-11 2019-04-23 华为技术有限公司 终端设备
CN103324530A (zh) * 2013-06-08 2013-09-25 广东欧珀移动通信有限公司 手持移动设备的方位传感器调用方法及装置
US9313740B2 (en) * 2013-06-14 2016-04-12 Sony Corporation Power efficient sensor accessory management through sensor subsystem
US20150006616A1 (en) * 2013-06-28 2015-01-01 Broadcom Corporation Host Offloading Architecture
US9710413B2 (en) 2013-06-28 2017-07-18 Stmicroelectronics S.R.L. Integrated data concentrator for multi-sensor MEMS systems
KR20150017897A (ko) * 2013-08-08 2015-02-23 삼성전자주식회사 복수의 프로세서를 이용하여 센서 출력을 처리하는 사용자 기기 및 방법
US9223937B2 (en) * 2013-09-17 2015-12-29 Google Technology Holdings LLC Method and apparatus for extending an authentication timeout period
US20150127300A1 (en) * 2013-11-03 2015-05-07 Microsoft Corporation Sensor Selection Based on Context and Policy
US9436214B2 (en) * 2013-11-12 2016-09-06 Qualcomm Incorporated System and methods of reducing energy consumption by synchronizing sensors
CN103619056B (zh) * 2013-12-02 2018-01-12 华为终端(东莞)有限公司 一种上报传感器数据的方法和终端
US9836637B2 (en) * 2014-01-15 2017-12-05 Google Llc Finger print state integration with non-application processor functions for power savings in an electronic device
CN105117203A (zh) * 2014-04-30 2015-12-02 马维尔国际有限公司 传感器集中控制系统和方法
US9954787B2 (en) 2014-06-23 2018-04-24 Huawei Technologies Co., Ltd. Intelligent terminal power-saving management method and apparatus
US20170102787A1 (en) * 2014-06-28 2017-04-13 Intel Corporation Virtual sensor fusion hub for electronic devices
US9479331B2 (en) 2014-08-20 2016-10-25 Apple Inc. Managing security in a system on a chip (SOC) that powers down a secure processor
US9396070B2 (en) * 2014-09-11 2016-07-19 Qualcomm Incorporated System and method for system-on-a-chip subsystem external access detection and recovery
US10416750B2 (en) * 2014-09-26 2019-09-17 Qualcomm Incorporated Algorithm engine for ultra low-power processing of sensor data
US20180329713A1 (en) * 2014-12-10 2018-11-15 Intel Corporation Fitness sensor with low power attributes in sensor hub
TWI791952B (zh) * 2014-12-18 2023-02-11 日商半導體能源研究所股份有限公司 半導體裝置、感測裝置和電子裝置
US9690361B2 (en) * 2014-12-24 2017-06-27 Intel Corporation Low-power context-aware control for analog frontend
DE102016106939B4 (de) 2015-04-17 2024-05-02 Suunto Oy Eingebettetes Rechengerät
GB2542988B (en) * 2015-04-17 2019-11-13 Suunto Oy Embedded computing device comprising processing units interfaced with a shared information space
FR3037415B1 (fr) * 2015-06-10 2018-07-06 Commissariat A L'energie Atomique Et Aux Energies Alternatives Procede de traitement des mesures d'au moins un capteur electronique loge dans un appareil portable
US10419540B2 (en) 2015-10-05 2019-09-17 Microsoft Technology Licensing, Llc Architecture for internet of things
CN108351670A (zh) * 2015-10-23 2018-07-31 高通股份有限公司 用于使控制器和传感器同步的设备和方法
CN105242770B (zh) * 2015-11-03 2019-07-19 上海斐讯数据通信技术有限公司 一种安卓设备开合盖的实现方法和系统
CN106372491B (zh) * 2015-12-15 2021-03-02 北京智谷睿拓技术服务有限公司 传感器访问权限管理方法和设备
US10433168B2 (en) * 2015-12-22 2019-10-01 Quanta Computer Inc. Method and system for combination wireless and smartcard authorization
US10516651B2 (en) * 2015-12-22 2019-12-24 Intel IP Corporation Securely routing sensor data from sensors to a trusted execution environment (TEE)
US10928372B2 (en) * 2016-01-29 2021-02-23 Ams Sensors Uk Limited Electronic device
KR102514730B1 (ko) * 2016-02-18 2023-03-29 삼성전자주식회사 데이터와 시간 정보를 연관시키는 방법 및 장치
US10270815B1 (en) * 2016-06-07 2019-04-23 Amazon Technologies, Inc. Enabling communications between a controlling device and a network-controlled device via a network-connected device service over a mobile communications network
US10673917B2 (en) * 2016-11-28 2020-06-02 Microsoft Technology Licensing, Llc Pluggable components for augmenting device streams
JP6348163B2 (ja) * 2016-12-15 2018-06-27 ファナック株式会社 制御装置及び制御システム
DE102017204514A1 (de) 2017-03-17 2018-09-20 Robert Bosch Gmbh Verarbeitungssteuerung eines Sensorsystems
CN109388222A (zh) * 2017-08-04 2019-02-26 中兴通讯股份有限公司 省电处理方法、装置及移动终端和计算机可读存储介质
US10571989B2 (en) * 2017-09-07 2020-02-25 Verisilicon Microelectronics (Shanghai) Co., Ltd. Low energy system for sensor data collection and measurement data sample collection method
KR102568686B1 (ko) 2018-02-09 2023-08-23 삼성전자주식회사 컨텍스트 허브를 포함하는 모바일 장치 및 그것의 동작 방법
EP4250114A3 (en) 2018-12-31 2023-11-29 Intel Corporation Methods and apparatus to implement always-on context sensor hubs for processing multiple different types of data inputs
US11073866B2 (en) 2019-01-21 2021-07-27 Samsung Electronics Co., Ltd. Electronic device and method for preventing damage of display
CN111559327B (zh) * 2019-02-14 2022-05-24 华为技术有限公司 一种数据处理方法及对应的装置
US11899845B2 (en) * 2020-08-04 2024-02-13 Samsung Electronics Co., Ltd. Electronic device for recognizing gesture and method for operating the same
KR20220028443A (ko) * 2020-08-28 2022-03-08 삼성전자주식회사 주변장치 인터페이스를 포함하는 장치 및 그것의 동작 방법
CN115515217A (zh) * 2021-06-23 2022-12-23 联发科技(新加坡)私人有限公司 低功耗传感器系统中高精度时间戳打戳与同步方法及装置
US20230025392A1 (en) * 2021-07-21 2023-01-26 Doma Casa, LLC Method and system for a hub device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009091873A1 (en) * 2008-01-18 2009-07-23 Invensense Interfacing application programs and motion sensors of a device
WO2010138605A1 (en) * 2009-05-26 2010-12-02 Qualcomm Incorporated Power management of sensors within a mobile device
WO2010141878A1 (en) * 2009-06-05 2010-12-09 Qualcomm Incorporated Controlling power consumption of a mobile device based on gesture recognition

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7809386B2 (en) 2005-06-29 2010-10-05 Nokia Corporation Local network proxy for a remotely connected mobile device operating in reduced power mode
US20070063850A1 (en) * 2005-09-13 2007-03-22 Devaul Richard W Method and system for proactive telemonitor with real-time activity and physiology classification and diary feature
US7319908B2 (en) * 2005-10-28 2008-01-15 Microsoft Corporation Multi-modal device power/mode management
US20070214374A1 (en) * 2006-03-13 2007-09-13 Mark Hempstead Ultra low power system for sensor network applications
US20070238934A1 (en) * 2006-03-31 2007-10-11 Tarun Viswanathan Dynamically responsive mood sensing environments
KR100861329B1 (ko) * 2007-04-06 2008-10-01 한국과학기술원 상황 모니터링을 지원하는 상황 모니터링 장치 및 상황 모니터링 방법
US20110071759A1 (en) * 2009-09-22 2011-03-24 Texas Instruments Incorporated Performance of a Navigation Receiver Operating in a Power-Save Mode with the Aid of Sensors
US8706172B2 (en) * 2010-10-26 2014-04-22 Miscrosoft Corporation Energy efficient continuous sensing for communications devices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009091873A1 (en) * 2008-01-18 2009-07-23 Invensense Interfacing application programs and motion sensors of a device
WO2010138605A1 (en) * 2009-05-26 2010-12-02 Qualcomm Incorporated Power management of sensors within a mobile device
WO2010141878A1 (en) * 2009-06-05 2010-12-09 Qualcomm Incorporated Controlling power consumption of a mobile device based on gesture recognition

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11862173B2 (en) 2013-11-12 2024-01-02 Apple Inc. Always-on audio control for mobile device
JP2017520937A (ja) * 2014-05-29 2017-07-27 アップル インコーポレイテッド 常時オンプロセッサを有するシステムオンチップ
US10031000B2 (en) 2014-05-29 2018-07-24 Apple Inc. System on a chip with always-on processor
US10261894B2 (en) 2014-05-29 2019-04-16 Apple Inc. System on a chip with always-on processor which reconfigures SOC and supports memory-only communication mode
US10488230B2 (en) 2014-05-29 2019-11-26 Apple Inc. System on a chip with always-on processor
US10571996B2 (en) 2014-05-29 2020-02-25 Apple Inc. System on a chip with fast wake from sleep
US10915160B2 (en) 2014-05-29 2021-02-09 Apple Inc. System on a chip with fast wake from sleep
US11079261B2 (en) 2014-05-29 2021-08-03 Apple Inc. System on a chip with always-on processor
JP2017519284A (ja) * 2014-06-24 2017-07-13 インテル・コーポレーション ファームウェアセンサレイヤ
US10169047B2 (en) 2014-06-24 2019-01-01 Intel Corporation Computing devices, methods, and storage media for a sensor layer and sensor usages in an operating system-absent environment
JP2016081429A (ja) * 2014-10-21 2016-05-16 富士通株式会社 センシング制御プログラム及び携帯端末装置
JP2017010515A (ja) * 2015-06-19 2017-01-12 上海兆芯集成電路有限公司 オンチップセンサハブ、モバイル装置、および、モバイル装置のためのマルチセンサ管理方法

Also Published As

Publication number Publication date
WO2012134546A1 (en) 2012-10-04
KR20130131458A (ko) 2013-12-03
CN102893257A (zh) 2013-01-23
KR101554085B1 (ko) 2015-09-17
CN102893257B (zh) 2016-10-05
JP5707598B2 (ja) 2015-04-30
EP2695056B1 (en) 2017-09-27
EP2695056A1 (en) 2014-02-12
EP2695056A4 (en) 2015-02-18
US20120254878A1 (en) 2012-10-04
TW201243728A (en) 2012-11-01
TWI547878B (zh) 2016-09-01

Similar Documents

Publication Publication Date Title
JP5707598B2 (ja) コンテキストアウェアアプリケーション関連の機能をセンサハブにアウトソースするメカニズム
US11079261B2 (en) System on a chip with always-on processor
US10915160B2 (en) System on a chip with fast wake from sleep
US10261894B2 (en) System on a chip with always-on processor which reconfigures SOC and supports memory-only communication mode
US8706172B2 (en) Energy efficient continuous sensing for communications devices
CN107003948B (zh) 电子设备及用于控制其可共享的高速缓存存储器的方法
CN110678825A (zh) 具有机器学习功能的低功率环境计算系统
US20190188111A1 (en) Methods and apparatus to improve performance data collection of a high performance computing application
KR101603028B1 (ko) 콘텍스트 감지를 위한 방법
JP2014510357A (ja) ポータブルコンピューティングデバイスのマルチコアプロセッサにおける複数のコアへの電力を動的に制御するための方法およびシステム
KR20210123901A (ko) 애플리케이션 기능들을 센서 허브로 전달하기 위한 방법
US11645115B2 (en) Systems, methods and devices for standby power savings
KR20150084849A (ko) 콘텍스트 감지를 위한 방법

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140827

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140902

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141114

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

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150204

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150205

R150 Certificate of patent or registration of utility model

Ref document number: 5707598

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250