JP6689873B2 - プロセッサ/コプロセッサ構成に対するデータのオフローディング及びオンローディングのための技術 - Google Patents

プロセッサ/コプロセッサ構成に対するデータのオフローディング及びオンローディングのための技術 Download PDF

Info

Publication number
JP6689873B2
JP6689873B2 JP2017546845A JP2017546845A JP6689873B2 JP 6689873 B2 JP6689873 B2 JP 6689873B2 JP 2017546845 A JP2017546845 A JP 2017546845A JP 2017546845 A JP2017546845 A JP 2017546845A JP 6689873 B2 JP6689873 B2 JP 6689873B2
Authority
JP
Japan
Prior art keywords
coprocessor
task
computing device
determining
offloaded
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
JP2017546845A
Other languages
English (en)
Other versions
JP2018513463A (ja
Inventor
スン,ミーンチウ
プールナチャンドラン,ラジェシュ
ジェイ. ジンマー,ヴィンセント
ジェイ. ジンマー,ヴィンセント
セルヴァラジェ,ゴピナット
ケイ セングプタ,ウッタム
ケイ セングプタ,ウッタム
Original Assignee
インテル コーポレイション
インテル コーポレイション
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 インテル コーポレイション, インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2018513463A publication Critical patent/JP2018513463A/ja
Application granted granted Critical
Publication of JP6689873B2 publication Critical patent/JP6689873B2/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
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • 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/329Power saving characterised by the action undertaken by task scheduling
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Debugging And Monitoring (AREA)
  • Advance Control (AREA)

Description

関連出願の相互参照
本出願は、2015年3月27日に出願された、米国特許出願14/671,077号、題名「プロセッサ/コプロセッサ構成からのデータのオフローディング及びオンローディングのための技術(TECHNOLOGIES FOR OFFLOADING AND ON-LOADING DATA FROM PROCESSOR/COPROCESSOR ARRANGEMENTS)」に対する優先権を主張する。
ラップトップ、スマートフォン、タブレット及びウエアラブルを含むほとんどすべての電子デバイスに、より多くのセンサが追加されるにつれて、センサのデータを処理し、それを有益な情報に変えるためには、より多くの電力(power)が必要となる。加速度計やジャイロスコープなどの複数のセンサから読み出されたデータは、管理するのにさらにより複雑になってきている。近年、電力を食うホストプロセッサ(「アプリケーション」プロセッサとも呼ばれる)やバッテリ電力制限のために、センサハブ(sensor hubs)は、モバイルデバイスやウエアラブル電子機器に進化してきている。ホストプロセッサからそれらのタスクをオフロードし、より長いバッテリ実行時間を可能にするために、センサ融合アルゴリズム(sensor fusion algorithms:センサフュージョンアルゴリズム)を走らせるために、センサハブは使用される。しかしながら、オフローディング技術(offloading technologies)は、消費電力、サイズの制約、バッテリ寿命、及び処理リソースなどの要因によってしばしば影響を受け、それらは、ホストプロセッサのオフローディングの能力及び効率に影響を与えることがある。
本明細書で説明されるコンセプトは、添付図面において、例として、且つ制限のためではなく、説明される。説明の単純さ及び明確さのために、図面において説明され要素は、必ずしも縮尺通りに描かれていない。適切と考えられる場合には、参照ラベルは、対応する要素又は類似する要素を示す図面の間で、繰り返される。
センサハブのオフローディング動作を実行するためのシステムの少なくとも1つの実施形態の単純化したブロック図である。 図1のシステムのコンピューティングデバイスによって確立され得る環境の少なくとも1つの実施形態の単純化したブロック図である。 図1及び図2のコンピューティングデバイスによって実行され得るセンサハブに対するオフローディング動作及びオンローディング動作に関する方法の少なくとも1つの実施形態の単純化した流れ図である。 図3の方法によって決定され得るセンサハブに対する総計したプロセッサワークロードを決定するための方法の少なくとも1つの実施形態の単純化した流れ図である。 図1及び図2のコンピューティングデバイスによって実行され得るセンサハブに対するオフローディング動作及びオンローディング動作に関する別の方法の少なくとも1つの実施形態の単純化された流れ図である。 図5の方法によって判定され决定され得るオフローディング動作及びオンローディング動作において使用されるセンサハブに対する総プロセッサワークロードを統計的に分析するための方法に関する少なくとも1つの実施形態の単純化された流れ図である。
本開示の特定の実施形態が図面において例として示され、本明細書で詳細に説明されるが、本開示の概念は、様々な変更や代替形態を受け入れることができる。しかしながら、本開示の概念を開示される特定の形態に制限する意図は無く、しかし、それどころか、本開示及び添付請求項と調和する変更、均等物、及び代替手段のすべてをカバーする意図であることを理解されたい。
「1つの実施形態(one embodiment)」、「1実施形態(an embodiment)」、「例となる実施形態(an illustrative embodiment)」等への本明細書中での参照は、説明される実施形態が特定の構成要件、構造、又は特徴を含むことがあるが、いかなる実施形態も必ずしも特定の構成要件、構造又は特徴を含むこともあり、又は含まないこともあり得ることを示す。その上、そのような表現は、必ずしも同じ実施形態を指すものではない。さらに、特定の構成要件、構造、又は特徴が1実施形態に関連して説明されるとき、それは当業者の知識内で、明示的に説明されていようがなかろうが他の実施形態に関連してそのような構成要件、構造、又は特徴を生み出せると考える。加えて、「A、B、及びCのうちの少なくとも1つ」という形式におけるリストに含まれる項目は、(A)、(B)、(C)、(A及びB)、(A及びC)、(B及びC)又は(A、B、及びC)を意味することができると理解されたい。同様に、「A、B、又はCのうちの少なくとも1つ」の形式においてリストされた項目は、(A)、(B)、(C)、(A及びB)、(A及びC)、(B及びC)又は(A、B、及びC)を意味することができる。
開示される実施形態は、場合によっては、ハードウェア、ファームウェア、ソフトウェア、又はそれらの有形の具体化された組合せとして実装することができる。開示される実施形態は、1つ以上のプロセッサによって読み取り、実行することができる、1つ以上の非一時的機械読み取り可能(例えば、コンピュータ読み取り可能)記憶媒体によって搬送される命令、又は記憶媒体上に記憶される命令として実装することもできる。機械読み取り可能記憶媒体は、機械によって読み取り可能な形式で情報を記憶し、伝送するための任意の記憶デバイス、メカニズム、又は他の物理的構造として具体化することができる(例えば、揮発性又は不揮発性メモリ、媒体ディスク、又は他の媒体デバイス)。
図面において、いくつかの構造的特徴又は方法の特徴は、特定の構成及び/又は順番で示されることがある。しかしながら、そのような特定の構成及び/又は順序は、必ずしも必要ではない点を理解されたい。むしろ、いくつかの実施形態において、そのような構成要件は、例としての図面に示されたのと異なるやり方及び/又は順序で構成することができる。加えて、特定の図面における構造的構成要件又は方法構成要件の包含は、すべての実施形態においてそのような構成要件が必要であることを暗示するつもりはなく、いくつかの実施形態において、それらを含まないことができ又は他の構成要件と組み合わせることができる。
これから図1を参照して、例となる実施形態において、プロセッサオフローディング(例えば、ホストプロセッサからセンサハブへのタスク/データの移動)、オンローディング(例えばセンサハブからホストプロセッサへのタスク/データの移動)及びセンサマネジメントに関するシステム100が示される。例となるシステム100は、プロセッサ104及びセンサハブ110を含むコンピューティングデバイス102を含む。使用中は、プロセッサ104からセンサハブ110へのオフローディング動作をスケジュールし、及び/又は制御するためにセンサがバッチ処理及びデリバリするようなデバイス動作を、システム100のコンピューティングデバイス102は、動的に学習するように動作する。フィードバックベースの構成を使用して、プロセッサロード時間シリーズ(processor load time series)は、センサハブ110におけるセンサイベントの移動平均(moving average)を使って計算することができる。プロセッサロードが所定のしきい値以下であると推定された場合、プロセッサ(例えば、プロセッサ104)からコプロセッサ(例えば、センサハブコプロセッサ112)へのオフロード処理に対してオフロード決定をすることができる。センサハブ110に対するプロセッサロードが、その後、所定のしきい値を超えたと推定された場合、コプロセッサ(例えば、センサハブコプロセッサ112)は、プロセッサ(例えば、プロセッサ104)にオフロードされるタスクを戻す(又は「オンロードする」)ことができる。双方向のアプリケーションプログラミングインタフェース(API:application programming interface)は、オフロードリクエスト及び/又はオンロードリクエストをサポートするのを助けることができる。
本明細書で開示された例となる任意の技術を使用して、プロセッサ104からセンサハブ110への(及び逆もまた同様に)オフローディングは、センサイベント、センサイベントのバッチ処理、及びデリバリなどのセンサハブ機能に実質的に影響を及ぼすことなく、遂行することができる。センサマネジメントランタイムエンジンは、フィードバックベースのシステムにおいて、オフローディング決定(すなわち、プロセッサ104からセンサハブ110への)をするためにセンサハブ110のバッチ処理及びデリバリの動的リアルタイム学習を実行するように構成することができる。適切な時にオフロードを許可するためにアクティブなセンサハブ環境において、学習が生じ得る。単純なタスク移動(task migration)(例えば、ロードバランシング、スケジューリング)と比較すると、機械学習決定(machine learning decisions)は、センサデータと使用量(usage)に基づいており、オンローディングタスク及びオフローディングタスクに対する双方向の能力をさらに許可する。例えば、タスクは、プロセッサ104からセンサハブ110へオフロードすることができ、プロセッサ104へセンサハブ110からオンロードで戻すことができ、その後、センサハブ110へ再びオフロードして戻すこともできる。
開示した技術は、プロセッシング装置(processing apparatus)(例えば、プロセッサ104)とコプロセッシング装置(coprocessing apparatus)(例えば、センサハブコプロセッサ112)との間でのオフローディング決定及びオンローディング決定を効率的に判定するために活用することができる。オフローディング決定及びオンローディング決定は、スタンドアロンのプロセッシング装置(例えば、プロセッサ104)及びコプロセッシング装置(例えば、センサハブコプロセッサ112)上、又は、プロセッシング装置(例えば、プロセッサ104)及びコプロセッシング装置(例えば、センサハブコプロセッサ112)がネットワークに接続されている構成において、実行することができる。例えば、いくつかのアプリケーションサービス(例えば、グーグルプレイサービス)に対して、動的アルゴリズムオフロードは、リモートで提供され(例えば、リモートサーバから)、更新されたアルゴリズムは、ホストプロセッサ(例えば、プロセッサ104)からの関与が最小限から無いまでで、センサハブ110上で直接実行することができる。その結果、コンテキスト融合アルゴリズム(context fusion algorithms)などのデータは、ファームウェアの更新を必要とせずに更新することができる。それ故に、アプリケーションサービスアルゴリズムが更新された場合、コンピューティングデバイスアプリケーションがサービス中のアルゴリズムにアクセスする又はアルゴリズムを使うとき、アルゴリズムは、センサハブ110に動的にロードされなければならないことを示すコードを使用して、それは、(例えば、リモートサーバによって)マークが付けられるか又はタグ付することができる。例となる実施形態において、アプリケーションソースは、メイン又はオフロードのJava(登録商標)コードを包含することができ、オフロードコードの検出時に、アプリケーション仮想マシン(例えば、Dalvikクラスローダ)は、本明細書で説明される技法のいずれかを使用してデータをオフロードすることができる。
図1のコンピューティングデバイス102は、本明細書に説明される機能を実行する能力がある計算又はコンピュータデバイスの任意のタイプとして具体化することができる。例えば、コンピューティングデバイス102は、制限されることなく、デスクトップコンピュータ、ラップトップコンピューティングデバイス、ホームオートメーションゲートウェイデバイス、サーバコンピュータ、プログラマブルロジックコントローラ、スマート電化製品、家電デバイス、ワイヤレスアクセスポイント、ネットワークスイッチ、ネットワークルータ、モバイルコンピューティングデバイス、モバイルフォン、スマートフォン、タブレットコンピューティングデバイス、パーソナルデジタルアシスタント、ウェアラブルコンピューティングデバイス、及び/又はスタンドアローンデバイスとして又はコンピュータネットワークを経由して、オフローディング/オンローディング能力を備えるように構成された他のタイプのコンピューティングデバイスとして具体化することができる。図1の例となる実施形態において、コンピューティングデバイス102は、プロセッサ104、I/Oサブシステム106、メモリ116,データ記憶デバイス118、及び通信回路120を含む。もちろん、コンピューティングデバイス102は、他の実施形態において、ラップトップコンピュータ(例えば、様々な入力/出力デバイス)で、通常見出されるような、別の又は追加のコンポーネントを含むことができる。追加として、いくつかの実施形態において、1つ以上の例となるコンポーネントは、他のコンポーネントに組み込まれ、又はそうでなければ他のコンポーネントの一部を形成することができる。例えば、メモリ116、又はその一部は、いくつかの実施形態において、プロセッサ104に組み込むことができる。
プロセッサ104は、本明細書で説明した機能を実行する能力がある任意のタイプのプロセッサとして具体化することができる。例えば、プロセッサ104は、シングル又はマルチコア・プロセッサ、デジタルシグナルプロセッサ、マイクロコントローラ、又は他のプロセッサ又は処理/制御回路として具体化することができる。同様に、メモリ116は、本明細書で説明する機能を実行する能力がある揮発性メモリ又は不揮発性メモリ又はデータ記憶装置の任意のタイプ又はいくつかとして具体化することができる。動作中、メモリ116は、オペレーティングシステム、アプリケーション、プログラム、ライブラリ、及びドライバなどのコンピューティングデバイス102の動作の間使用される様々なデータ及びソフトウェアを記憶することができる。例となる実施形態において、メモリ116は、I/Oサブシステム106を経由してプロセッサ104に通信可能に接続され、I/Oサブシステム106は、プロセッサ104、メモリ116、及びコンピューティングデバイス102の他のコンポーネントと入力/出力動作を促進する回路及び/又はコンポーネントとして具体化することができる。例えば、I/Oサブシステム106は、メモリコントローラハブ、入力/出力コントローラハブ、ファームウェアデバイス、通信リンク(すなわち、ポイント・ツー・ポイントリンク、バスリンク、有線、ケーブル、光ガイド、プリント基板配線など)、及び/又は入力/出力動作を促進する他のコンポーネント及びシステムとして具体化されるか、又はそうではなくそれらを含むようにすることができる。いくつかの実施形態において、I/Oサブシステム106は、システム・オン・チップ(SoC)の一部として形成することができ、及びプロセッサ104、センサハブ110、メモリ116、及びコンピューティングデバイス102の他のコンポーネント、単一の集積回路チップ上に組み込むことができる。
周辺デバイス108は、関連するグラフィックス回路と一緒にディスプレイを含むこともでき、いくつかの実施形態において、キーボード、マウス、オーディオ処理回路(例えば、増幅回路及び1つ以上のスピーカを含み)、及び/又は入力/出力デバイス、インタフェースデバイス、及び/又は周辺デバイスをさらに含むことができる。いくつかの実施形態において、メモリ116及び/又はデータ記憶装置118は、その中に記憶した1つ以上のアプリケーションプログラムを有し、プロセッサ104は、1つ以上のアプリケーションプログラムを実行し、対応する図形情報をディスプレイ上に表示するようにディスプレイスクリーンを制御するように動作可能である。もちろん、コンピューティングデバイス102は、他の実施形態において、デジタル装置及び/又はコンピュータにおいて通常見出されるような(例えば、様々な入力/出力デバイス)他の又は追加のコンポーネントを含むことができる。
コンピューティングデバイス102の通信回路120は、1つ以上の通信ネットワーク(例えば、ローカルエリアネットワーク、パーソナルエリアネットワーク、ワイドエリアネットワーク、セルラネットワーク、インターネットなどのグローバルネットワークなどの)を経由して、コンピューティングデバイス102と他のコンピューティングデバイスとの間の通信を可能にする能力のある任意のタイプの通信回路、デバイス、又はそれらの集合として具体化することができる。通信回路120は、任意の1つ以上の通信技術(例えば、ワイヤレス通信又は有線通信)及びそのような通信をもたらす関連するプロトコル(例えば、イーサネット(登録商標)、Wi−Fi(R)、WiMAXなど)を使用するように構成することができる。
コンピューティングデバイス102は、センサハブコプロセッサ112を含み、1つ以上のセンサ114を含み、又はそうでなければ1つ以上のセンサに接続されたセンサハブ110も含む。センサハブコプロセッサ112は、1つ以上の色々なセンサ114からのデータを総計し、処理することを助ける、マイクロプロセッサ、マイクロコントローラユニット、コプロセッサ、デジタルシグナルプロセッサ(DSP)などとして具体化することができる。センサ114は、これらに限定されることなく、ジャイロスコープ、加速度計、グローバルポジショニングシステム(GPS)レシーバ、気圧センサ、温度センサ、磁力計、タッチパネルインタフェース、赤外(IR)検出器などを含むことができる。センサ処理のためのセンサハブコプロセッサ112を使うことによって、プロセッサ104からセンサ関連タスクをオフロードをすることを助け、それ故にバッテリ消費を削減し、及び/又はパフォーマンスの改善を提供する。また、低電力コプロセッサ(例えば、センサハブコプロセッサ112)ハードウェアサポートを使うことによって、アプリケーションプロセッサ104は、センサハブコプロセッサ112がセンサ114のいずれかからセンサデータを収集し、フィルターし、そして処理するスリープ状態にとどまることができる。
コンピューティングデバイス102は、アプリケーション(例えば、メモリ116及び/又はデータ記憶デバイス118から実行されるアプリケーション)に物理センサ114が下部にあるコンピューティングデバイス102へのアクセス権を与えるように構成することができる。いくつかの例となる実施形態において、センサ114からのデータは、センサのハードウェア抽象化レイヤ(HAL)(例えば、「sensors.h」又は同様のAPI定義によって定義される)の実装として定義されるデータ提供型仮想デバイスとして構成することができる。いくつかの例となる実施形態において、センサは、相互に接続されるか及び/又はトランスポートメカニズム(例えば、インターインテグレーテッドサーキット(IC)又はシリアルペリフェラルインタフェース(SPI)など)を経由してセンサハブ110中のセンサハブコプロセッサに接続され、センサデータの低電力モニタリング及び処理を可能とすることができる。消費電力削減のために、センサハブ110は、いくつかの最低限の処理が特定用途向け集積回路(ASIC)において各センサ114によって実行され、さらなる処理は、センサハブコプロセッサ112において実行されるような、階層的でも良い。センサ114の信号は、それらを直ちにレポートする代わりにHALを通してそれらをレポートする前にハードウェアFIFOにおいてセンサイベントを記憶するためにさらに「バッチ処理され(batched)」ても良い。バッチ処理は、センサからの各イベントを受信するためにプロセッサ104がウェークアップすることを防ぐことによって大幅な省電力を可能にする。その代わりに、イベントは、グループ化され(バッチ処理され)、一緒に処理することができる。
センサハブ110は、センサデータ(例えば、センサ114からの)又はセンサハブ110によるセンサデータから抽出されたデータを組合せて、センサハブ110を経由してセンサ114から受信するデータの正確性、信頼性、及び/又は完全性を向上させる。センサハブ110は、直接融合(direct fusion)のために構成することができ、それは、異種の又は同種のセンサ、ソフトセンサ、及びセンサデータの過去の値のセットからセンサデータを融合する。センサハブ110は、間接融合(indirect fusion)のために構成することもでき、それは環境や人間の入力についての演繹的知識のような情報源を使用する。
これから図2を参照して、例となる実施形態における、コンピューティングデバイス102は、動作の間、環境200を確立する。例となる環境200は、アプリケーションプロセッサ104(又は「ホストプロセッサ」)及びセンサハブコプロセッサ112によって確立されるモジュールを含む。図示したように、環境200は、アプリケーションモジュール202,タスクスケジュールモジュール210、センサマネジメントモジュール212、センサプロファイリングモジュール214、及び機械学習モジュール216を含む。環境200の様々なモジュールが、ハードウェア、ファームウェア、ソフトウェア、又はそれらの組合せとして具体化することができる。例えば、環境200の様々なモジュール、ロジック、及び他のコンポーネントは、プロセッサ104、コプロセッサ112、又はコンピューティングデバイス102の他のハードウェアコンポーネントの一部を形成することができ、そうでなければそれらによって確立することができる。そのため、いくつかの実施形態において、環境200の任意の1つ以上のモジュールは、電子デバイスの回路又は集合として具体化することができる(例えば、タスクスケジュール回路、センサマネジメント回路など)。
アプリケーションモジュール202は、アプリケーションプロセッサ104を使用して、アプリケーション仮想マシン(VM)及び1つ以上のアプリケーション206を実行するように構成される。アプリケーションVM204(「プロセスVM」又は「マネージドランタイム環境(MRE)」としても知られる)は、下層のハードウェア又はオペレーティングシステムの詳細を抽象化し、プログラム(例えば、アプリケーション206から)が任意のプラットフォーム上で同じように実行することを許す、プラットフォーム非依存プログラミング環境を提供するように構成することができる。アプリケーションVM204は、コンピューティングデバイス102のオペレーティングシステム(「ホストOS」)内で通常のアプリケーションとして走るように構成することができ、1つ以上のプロセスをサポートすることもできる。いくつかの例となる実施形態において、アプリケーションVM204は、高レベルプログラミング言語に類似する高レベルの抽象性を提供することができ、インタプリタを使用して実行することができる。ジャスト・イン・タイムコンパイラは、パフォーマンスを増加するために使用することができる。例となるアプリケーションVM204は、これらに制限されないが、Dalvik及びDexバイトコードが走るアンドロイドラインタイム(ART)及びそれらのコアジャバアプリケーションライブラリを含む。アプリケーション206は、アプリケーションフレームワーク内で実行できる(例えば、起動、処理、初期化など)ソフトウェアとして具体化することができる。アプリケーションモジュール202及び/又はアプリケーション仮想マシン204は、ミドルウェアを含むこともできる。いくつかの例となる実施形態において、ミドルウェアは、アプリケーション間メッセージングサービス、データ記憶、画面表示、マルチメディア、及びウェブブラウジングなどのサービスを提供するライブラリを含むことができる。ミドルウェアライブラリは、直ぐにサービスを実行できるように機械語にコンパイルすることもできる。
アプリケーションモジュール202は、1つ以上のオフロードされるタスクリクエストをセンサハブ110へ送信し、センサハブ110からオンロードタスクリクエストを受信するように構成することができる。オフロードされるタスクリクエスト(offloaded task request)は、コード、データ、又はセンサハブ110による処理タスクの実行に使用されうる他の情報を含むことができる。いくつかの実施形態において、アプリケーションモジュール202は、例えば、センサハブ110の利用可能性に基づいて追加のオフロードするタスクリクエストをサブミットするか否かを判断するなど、センサハブ110から受信するフィードバックに基づいて自身のタスクオフローディングビヘイビアを適応させることができる。アプリケーションモジュール202及び/又はアプリケーションVM204は、センサハブ110が可能性があるセンサイベント及び/又はセンサイベントトリガを予期すると同時に、タスク又はコードをセンサハブ110にオフロードしない適切なレスポンスを提供することができる。アプリケーションVM204は、センサハブ110の利用可能性及びプラットフォームS0ix状態(「アクティブアイドル(active idle)」電力状態)遷移も検出し、それによって、センサイベントを見逃さないことを保証するためにアプリケーションVM204が、センサハブ110タスク(「タスクレット(tasklets)」)をスケジュールし、上書きすることさえ許可することができる。
コプロセッサ112によって確立される、タスクスケジュールモジュール210は、アプリケーションプロセッサ104からオフロードされるタスクリクエストを受信するように構成される。以下で説明するように、オフロードされるタスクリクエストを受け入れると、タスクスケジュールモジュール210は、センサハブ110(例えば、コプロセッサ112)の処理リソースを使用して、オフロードされるタスクを実行するように構成することができる。いくつかの実施形態において、タスクスケジュールモジュール210は、オフロードされるタスクリクエストが受け入れられなかった場合、タスクオンロードリクエストをアプリケーションプロセッサ104に送信するように構成することができる。
コプロセッサ112によって確立されるセンサマネジメントモジュール212は、コンピューティングデバイス102のセンサ114と関連するセンサデータを受信するように構成される。コプロセッサ112によって確立されるセンサプロファイリングモジュール214は、センサデータに関連するセンサイベント及び/又はタイマイベントを検出するように構成される。センサプロファイリングモジュール214は、イベントに対するリソース使用コスト値を決定するように構成され、それは、イベントに関連する1つ以上のコールバック関数の処理に対するコプロセッサ使用値として具体化することができる。センサプロファイリングモジュール214は、イベントに関連する電力状態遷移コスト値を決定するようにさらに構成され、それは低電力状態からイベントを処理する動作状態にコンピューティングデバイス102の機能ブロックを遷移させることに関連するコストとして具体化することができる。
コプロセッサ112によって確立された、機械学習モジュール216は、イベントの頻度、イベントに関連するリソース使用コスト値、及びイベントに関連する電力状態遷移コスト値の関数として複数のイベントに関連する総コプロセッサロード値を決定するように構成される。総コプロセッサロード値(aggregate coprocessor load value)は、例えば、指数移動平均として決定することができる。機械学習モジュール216は、オフロードされるタスクリクエストに関連するコプロセッサロード値を結合した総コプロセッサロード値に基づいてオフロードされるタスクリクエストを受け入れるか否かを判定するように構成される。いくつかの実施形態において、機械学習モジュール216は、イベントの主成分分析(PCA)を実行し、PCAの計算に基づいて、コンピューティングデバイス102の使用パターンにおける変化が存在するか否かを判定する。機械学習モジュール216は、オフロードされるタスクリクエストが短期間のタスク又は長期間のタスクに関連しているか判定し、オフロードされるタスクが短期間又は長期間かに基づいてオフロードを受け入れるか否かの判定を調整する。これらの機能は、移動平均モジュール218又は主成分分析モジュール220などとして、1つ以上のサブモジュールによって実行することができる。
コプロセッサ112によって確立されるように説明されているが、ある実施形態において、各タスクスケジュールモジュール210、センサマネジメントモジュール212、センサプロファイリングモジュール214、及び/又は機械学習モジュール216の一部又は全部は、アプリケーションプロセッサ104によって確立することができることを理解されたい。例えば、いくつかの実施形態において、タスクスケジューリング及びイベントプロファイリングは、コプロセッサ112によって実行することができ、しかしながら、機械学習計算は、アプリケーションプロセッサ104によって実行することができる。
これから図3を参照して、使用中は、コンピューティングデバイス102は、総プロセッサ(例えば、コプロセッサ112)ワークロードに依存してセンサハブ110へのオフローディング動作を実行させるための方法300を実行することができる。方法300は、ブロック302で始まり、そこでコンピューティングデバイス102のセンサハブコプロセッサ112は、オフロードされるタスクリクエストがアプリケーションプロセッサ104から受信されたか否かを判定する。オフロードされるタスクリクエストが、アプリケーションプロセッサ104がセンサハブ110に実行するようにリクエストした1つ以上のタスク、例えば、タスクレット、センサ融合イベント、又は他のタスクなどを特定する。オフロードされるタスクリクエストが受信されなかった場合、方法300は、ブロック302へ戻り、コプロセッサ112は、通常動作を続ける。オフロードされるタスクリクエストが受信された場合、又はタスクオフロードが、そうでなければ必要な場合、方法300は、ブロック304へ進む。
ブロック304において、コプロセッサ112は、センサハブ110プロセッシング能力、現在のセンサの処理ワークロード、及び近未来のセンサ処理ワークロードに基づいて総ワークロード値(L)を決定する。総ワークロード値Lを計算する1つの方法が、図4と関連して下記で説明される。
ブロック304において総ワークロード値(L)を決定した後、方法300は、ブロック306に進み、そこでコンピューティングデバイス102のコプロセッサ112は、プロセッサ104の総ワークロード値(L)が残存センサハブ110処理能力又はバンド幅未満であるか否かを判定する。例えば、オフロードされるタスクリクエストと関連するワークロード値(例えば、オフロードされるタスクに対する推定ワークロード値)と結合された総ワークロード値(L)は、所定のしきいワークロード値と比較することができる。例となる実施形態において、所定のしきいワークロード値は、コプロセッサ112のプロセッシングコアの数によって近似するか、又はそうでなければ決定することができる。総ワークロード値(L)(オフロードされるタスクリクエストに関連するワークロード値を含む)が残存センサハブ110処理能力未満の場合、方法300は、ブロック310へ進み、そこで、アプリケーション(ホスト)プロセッサ104からセンサハブ110へのオフロードされるタスクリクエストが受け入れられ、オフロードされるタスクは、その後、実行される。タスクをオフロードした後で、方法300は、ブロック302へ戻り、追加のオフロードされるタスクリクエストを処理する。
ブロック306に戻って参照し、総ワークロード値(L)が、残存センサハブ110の処理能力未満ではない場合、方法300は、ブロック308へ進み、そこで、コプロセッサ112は、アプリケーションプロセッサ104にタスクをオンロードするリクエストをする。アプリケーションプロセッサ104は、オンロードタスクリクエストを受信することに応答してタスクを実行することができる。いくつかの実施形態にいて、アプリケーションプロセッサ104は、タスクをオンロードするリクエストを受信することに基づいて将来オフロードされるタスクリクエストを修正することができる。例えば、アプリケーションプロセッサ104によって実行されるマネージドランタイムは、センサハブ110の利用可能性を知り、又はそうでなければそれに適合し、そして、センサイベントを見逃さないように確認するためにオフロードされるタスクをスケジュールすることができる。タスクのオフローディングの後、方法300は、ブロック302に戻り、追加のオフロードされるタスクリクエストを処理する。
これから図4を参照して、使用中は、コンピューティングデバイス102は、センサハブ110の総プロセッサワークロードを計算し、決定するために方法400を実行することができる。例えば、上述の図3に説明された方法300のブロック304に関連して、又は後述の図5に説明される方法500に関連して、方法400を実行することができる。方法400は、ブロック402に始まり、そこで、コンピューティングデバイス102のコプロセッサ112は、センサハブ110によって受信されたセンサデータに関連するセンサイベント及び/又はタイマイベントを検出する。例えば、図3の例となる方法300の目的のため、n種類のセンサイベント又はタイマイベント(Si)があると仮定することができる。いくつかの実施形態において、合成センサイベント(composite sensor event)(例えば、1つ以上のセンサから生成されるイベント又は他のセンサデータから由来するイベント)は、新しいイベントタイプとして扱うことができる。ブロック404において、コプロセッサ112は、センサ/タイマイベントの頻度を決定する。時間tの任意の単位時間での、センサ/タイマイベントの頻度がfである。
ブロック406において、コプロセッサ112は、これらのイベントに関連する各コールバック関数の処理に関連するリソース使用コスト(resource usage cost)を決定する。例えば、コプロセッサ112は、コールバック関数によって使用されるコプロセッサ112サイクル又は他の実行リソースを決定することができる。各イベントSに関連するリソース使用コストは、Liとして表現することができる。ブロック408において、コプロセッサ112は、プロセッサ(例えば、プロセッサ104及び/又はコプロセッサ112)における機能ブロック(例えば、IPブロック)を低電力状態(例えば、D0i3)から動作状態(例えば、D0i0)に実行時で遷移させる電力状態に関連するコスト(Pi)を計算する。
ブロック410において、コプロセッサ112は、総プロセッサロード値Lを計算し、それは、下記のように表現される:
Figure 0006689873
ここで、g(t)は、f(t)の指数移動平均として定義することができ、又は:
Figure 0006689873
ここで、
Figure 0006689873
ここで、Mは、平均を滑らかにするために使用される単位時間の期間を表す。Lを計算した後に、方法400は終了する。結果として生じる総プロセッサロード値Lは、図3及び図5に関連して説明されるオフロードされるタスクリクエストを受け入れるか否かを判定するために使用することができる。
これから図5を参照して、使用中は、コンピューティングデバイス102は、総プロセッサ(例えば、コプロセッサ112)ワークロード及び主成分分析(PCA)計算に依存してセンサハブ110に対するオフローディング動作を実行する方法500を実行することができる。方法500は、ブロック502に始まり、そこで、コンピューティングデバイス102のセンサハブコプロセッサ112は、オフロードされるタスクリクエストが、アプリケーションプロセッサ104から受信されたか否かを判定する。オフロードされるタスクリクエストは、アプリケーションプロセッサ104が、センサハブ110に実行するようにリクエストするタスクレット、センサ融合イベント、又は他のタスクなどの1つ以上のタスクを特定する。オフロードされるタスクリクエストが受信されなかった場合、方法500は、ブロック502に戻り、コプロセッサ112は、通常動作を続ける。オフロードタスクリクエスト(offload task request)が受信され、又はタスクオフロードが別の方法で要求された場合、方法500は、ブロック504へ進む。
ブロック504において、コプロセッサ112は、センサハブ110の処理能力、現在のセンサ処理、及び近未来のセンサ処理ワークロードに基づいて、総ワークロード値(L)を判定する。総ワークロード値Lを計算する1つの方法は、図4と関連して上述のとおりである。ブロック504において総ワークロード値(L)を決定した後、方法500はブロック506へ進み、そこで、コプロセッサ112は、センサイベントデータ上で主成分分析(PCA)を実行する。PCAの計算をすることは、コプロセッサ112が、コンピューティングデバイス102の使用パターンにおける変化に通常は関連するセンサイベントにおける「位相シフト(phase shifts)」を検出することを許す。例えば、さらに以下で説明するように、PCAを計算することは、1つ以上のしきい値を超える固有値における変化を検出することができる。PCAを計算することは、センサデータ分析に特に適したロバストなデータを提供することができる。PCAを計算するための方法の1つの実施形態は、図6に関連して以下で説明される。もちろん、いくつかの実施形態において、コプロセッサ112は、センサハブ110に対するセンサ使用に関する確率モデルを計算する1つ以上の他の技術を使用することができ、プロセッサ104とセンサハブ110の間のタスク及び/又はデータのオンローディング及びオフローディングにおける予測又は判定を行う。
ブロック508において、コンピューティングデバイス102のコプロセッサ112は、オフロードされるタスクリクエストが短期間のリクエスト(short-term request)に関連しているか否かを判定する。コプロセッサ112は、リクエストされたタスクが短期間のリクエストか否かを判定するために任意の適切な基準を使用することができる。例えば、コプロセッサ112は、所定の時間スケール(例えば、分、時、日など)に基づいてリクエストされたタスクが短期間か否かを判定することができる。リクエストが短期間のリクエスト(例えば、それが長期間のリクエストなど)でない場合、方法500は、以下で説明するようにブロック512へ分岐する。リクエストが短期間のリクエストの場合、方法500は、ブロック510へ分岐する。
ブロック510において、コプロセッサ112は、総ワークロード値(L)又は主成分分析の結果に基づいてリクエストされたタスクをオフロードすべきか否かを判定する。総ワークロード値(L)に基づく判定は、図3のブロック306に関連する上述の判定に似ていてもよい。例えば、コプロセッサ112は、総ワークロード値(L)が所定のしきい値より小さい場合又はPCA分析が使用パターンにおける変化がありそうではないことを示している場合、タスクをオフロードすることを決定することができる。コプロセッサ112がリクエストされたタスクをオフロードすると決定した場合、方法500は、ブロック514へ分岐し、そこでは、アプリケーション(ホスト)プロセッサ104からセンサハブ110へのオフロードされるタスクリクエストが受け入れられ、オフロードされるタスクは、その後実行される。タスクのオフロード後、方法500は、ブロック502に戻り、追加のオフロードされるタスクリクエストを処理する。
ブロック510へ戻って参照すると、コプロセッサ112が、タスクをオフロードしないと決定した場合、方法500は、ブロック516へ分岐し、そこで、コプロセッサ112は、タスクをアプリケーションプロセッサ104へオンロードするようにリクエストする。アプリケーションプロセッサ104は、オンロードタスクリクエストの受信に応答してタスクを実行することができる。いくつかの実施形態において、アプリケーションプロセッサ104は、タスクをオンロードするリクエストの受信に基づいて将来のオフロードされるタスクリクエストを修正することができる。例えば、アプリケーションプロセッサ104によって実行されるマネージドランタイムは、センサハブ110の利用可能性を知ることができ、そうでなければセンサハブ110の利用可能性に適合することができ、センサイベントを見逃さないことを確認するためにオフロードされるタスクをスケジュールすることができる。タスクをオンロードした後、方法500は、ブロック502へ戻り、追加のオフロードされるタスクリクエストを処理する。
ブロック508へ戻って参照すると、リクエストが短期間のリクエストではない場合(例えば、長期間のリクエスト)、方法500は、ブロック512へ分岐する。ブロック512において、コプロセッサ112は、総ワークロード値(L)と主成分分析の結果に基づいて、リクエストされたタスクをオフロードするか否かを判定する。総ワークロード値(L)に基づく判定は、図3のブロック306に関連して上述の判定に類似してもよい。例えば、コプロセッサ112は、総ワークロード値(L)が所定のしきい値より小さい場合、及びPCA分析が使用パターンにおける変化がありそうでないことを示す場合に、タスクをオフロードすることを判定することができる。コプロセッサ112は、リクエストされたタスクをオフロードすると判定した場合、方法500は、ブロック514へ分岐し、そこで、オフロードされるタスクリクエストが上述の通り受け入れる。コプロセッサ112が、タスクをオフロードしないと判定した場合、方法500は、ブロック516へ分岐し、そこで、コプロセッサ112は、上述の通り、アプリケーションプロセッサ104へタスクをオフロードすることをリクエストする。
これから図6を参照して、使用中は、コンピューティングデバイス102は、主成分分析(PCA)機械学習アルゴリズムを使用してタスクをオフロードするか否かを判定するために方法600を実行することができる。PCAは、多分相関性のある変数の観測結果のセットを線形な非相関な変数のセット、又は「主成分(principal components)」に変換する、直交変換を使用する統計的な技法である。ある例となる実施形態において、主成分の数は、オリジナルの変数の数より少ないか又は同じであり得る。ある例となる実施形態において、直交変換は、第1の主成分が、最も大きい可能性がある分散(variance)(すなわち、可能性のあるデータにおける大きな変動の主な要因である)を持ち、及び順に続く各成分が、その前の成分(すなわち、無関係な)と直交するという制限の下で可能性のある最も高い分散を持つように定義することができる。主成分は対称な共分散行列(covariance matrix)の固有ベクトル(eigenvectors)であるので、主成分は、直交と見なされる。ある例となる実施形態において、PCAは、固有ベクトルベース多変量解析と同じように動作することができるので、PCA処理は、最もよくデータの中の分散を説明するように集められたネットワークデータの内部構造を明らかにすることができる。多変量データセットが高次元のデータ領域における座標のセットとして提示される場合(例えば、変数毎に1軸など)、PCAは、より有益な情報を提供することができる、より低い次元のデータセットを持つネットワークを供給することができる。
方法600は、上述のように、図5のブロック506と関連して実行することができる。方法600は、ブロック602で始まり、そこで、コプロセッサ112は、センサ/タイマイベント及び関連するデータから興味のある特徴を抽出する。ブロック604において、コプロセッサ112は、抽出された特徴からベクトルを形成する。コプロセッサ112は、ある期間に対する抽出された特徴データを集め、次に、興味のある抽出されたセンサ特徴上で特徴アグリゲーション(feature aggregation)を実行する。コプロセッサ112は、観測(observation)(又は「特徴(feature)」)ベクトルを生成することができる。ブロック604で、ベクトルを形成している間、センサ/タイマイベントに関連するプロセッサのロードは、ある次元のベクトルとして特徴付けることができる。
コプロセッサ112は、ブロック606で、センサ/タイマイベントに対する固有値平均プロセッサロードキー値のペアを生み出す。上述の通り、主成分分析(PCA)は、可能性のある相関変数の観測結果のセットを線形な未修正の変数の値のセット(主成分)に変換するための統計的な手続きである。PCAを使って、コプロセッサ112は、観測ベクトルから主成分を計算し、ある次元にわたるベクトルの変化量を特徴付けることができる。いくつかの例となる実施形態において、平均プロセッサロードの主成分は、結果となる共分散行列の固有ベクトルであり得、オフローディングとオンローディングとの決定しきい値は、主成分からこのようにして計算することができる。プロセッサ112は、内部テーブルにおける固有値平均プロセッサロードキー値のペアに対するモデルエントリとして、各計算された固有値を記録し、保存するように構成することができる。新しいプロセッサロードデータが受信されると、それは、テーブル検索を通して検出される新しい固有値に関連し得る。コプロセッサ112(又はコンピューティングデバイス102の他の適切なコンポーネント)は、ブロック608においてセンサ/タイマイベントを検出し続け、そして、ブロック610で、ブロック606で決定された1つ以上のしきい値を超える固有値の変化を検出することができる。固有値における任意の変化を検出後、方法600は、終了する。PCA計算の結果は、図5に関連して説明されたオフロードされるタスクリクエストを受け入れるか否かを決定するために使用することができる。固有値における変化が1つ以上のしきい値を超えた場合、プロセッサ104からセンサハブ110へのデータ及び/又はタスクをオフロードするためのオフロード(又はオンロード)決定をすることができる。
実例
本明細書で開示された技術の説明に役立つ実例を以下で提供する。技術の実施形態は、以下で説明される実例の任意の1つ以上、及び任意の組合せを含むことができる。
実例1は、コプロセッサタスクオフローディングのためのコンピューティングデバイスを含み、コンピューティングデバイスのコプロセッサによって、コンピューティングデバイスの1つ以上のセンサに関連するセンサデータを受信する、センサマネジメントモジュールと、コプロセッサによって、センサデータに関連する複数のイベントを検出し、コプロセッサによって、イベントに関連するリソース使用コスト値及び電力状態遷移コスト値を決定する、センサプロファイリングモジュールと、コプロセッサによって、コンピューティングデバイスのアプリケーションプロセッサからオフロードされるタスクリクエストを受信する、タスクスケジュールモジュールと、イベントの頻度、イベントに関連するリソース使用コスト値、イベントに関連する電力状態遷移コスト値の関数として、複数のイベントに関連する総コプロセッサロード値を、コプロセッサによって決定し、総コプロセッサロード値とオフロードされるタスクリクエストに関連するコプロセッサロード値とに基づいて、オフロードされるタスクリクエストを受け入れるか否かをコプロセッサによって判定する、機械学習モジュールと、を備える。
実例2は、実例1の構成要件を含み、複数のイベントがセンサイベント又はタイマイベントを含む。
実例3は、実例1及び2のいずれかの構成要件を含み、リソース使用コスト値を決定することが、イベントに関連する1つ以上のコールバック関数の処理に対するコプロセッサ使用値を決定することを含む。
実例4は、実例1〜3のいずれかの構成要件を含み、電力状態遷移コスト値を決定することが、低電力状態からイベントを処理する動作状態へコンピューティングデバイスの機能ブロックを遷移させることに関連するコストを決定することを含む。
実例5は、実例1〜4のいずれかの構成要件を含み、総コプロセッサロード値を決定することが、イベントの頻度と、イベントに関連するリソース使用コスト値と、イベントに関連する電力状態遷移コスト値との関数として、指数移動平均を決定することを含む。
実例6は、実例1〜5のいずれかの構成要件を含み、タスクスケジュールモジュールが、オフロードされるタスクリクエストを受け入れないと判定することに応答して、コプロセッサによってタスクオンロードリクエストをアプリケーションプロセッサにさらに送信する。
実例7は、実例1〜6のいずれかの構成要件を含み、アプリケーションプロセッサによって、コプロセッサからのタスクオンロードリクエストの受信に基づいて、第2タスクオフロードリクエストをコプロセッサに送信するか否かを判定する。
実例8は、実例1〜7のいずれかの構成要件を含み、オフロードされるタスクリクエストを受け入れるか否かを判定することが、コプロセッサの残存処理能力に基づいてオフロードされるタスクリクエストを受け入れるか否かを判定することを含む。
実例9は、実例1〜8のいずれかの構成要件を含み、オフロードされるタスクリクエストを受け入れるか否かを判定することが、総コプロセッサロード値とオフロードされるタスクリクエストに関連するコプロセッサロード値とを所定のしきいコプロセッサロード値と比較することを含む。
実例10は、実例1〜9のいずれかの構成要件を含み、所定のしきいコプロセッサロード値が、コプロセッサのプロセッサコアの数に基づいている。
実例11は、実例1〜10のいずれかの構成要件を含み、機械学習モジュールが、複数のイベントの主成分分析を実行し、主成分分析に基づいて、コンピューティングデバイスの使用パターンにおける変化が存在するか否かを判定し、オフロードされるタスクリクエストを受け入れるか否かを判定することが、コンピューティングデバイスの使用パターンにおける変化が存在するか否かの判定の関数として、オフロードされるタスクリクエストを受け入れるか否かを決定することをさらに含む。
実例12は、実例1〜11のいずれかの構成要件を含み、機械学習モジュールは、オフロードされるタスクリクエストが短期間のタスクに関連しているか否かをコプロセッサによって判定し、オフロードされるタスクリクエストを受け入れるか否かを判定することは、オフロードされるタスクリクエストが、短期間のタスクに関連しているか否かの判定の関数として、オフロードされるタスクリクエストを受け入れるか否かを判定することをさらに含む。
実例13は、実例1〜12のいずれかの構成要件を含み、オフロードされるタスクリクエストが短期間のタスクに関連しているという判定に応答して、オフロードされるタスクを受け入れるか否かを判定することは、(i)総コプロセッサロード値の判定又は(ii)コンピューティングデバイスの使用パターンにおける変化の存在の判定に基づいて、タスクを受け入れるか否かを判定することを含み、オフロードされるタスクリクエストが短期間のタスクに関連していないという判定に応答して、オフロードされるタスクを受け入れるか否かの判定は、(i)総コプロセッサロード値の判定及び(ii)コンピューティングデバイスの使用パターンにおける変化の存在の判定に基づいて、タスクを受け入れるか否かを判定することを含む。
実例14は、コプロセッサタスクオフローディングのための方法を含み、方法は、コンピューティングデバイスの1つ以上のセンサに関連するセンサデータを、コンピューティングデバイスのコプロセッサによって、受信することと、センサデータに関連する複数のイベントを、コプロセッサによって検出することと、イベントに関連するリソース使用コスト値と電力状態遷移コスト値を、コプロセッサによって決定することと、コンピューティングデバイスのアプリケーションプロセッサからオフロードされるタスクリクエストを、コプロセッサによって、受信することと、イベントの頻度と、イベントに関連するリソース使用コスト値と、イベントに関連する電力状態遷移コスト値との関数として、複数のイベントに関連する総コプロセッサロード値を、コプロセッサによって決定することと、総コプロセッサロード値とオフロードされるタスクリクエストに関連するコプロセッサロード値とに基づいてオフロードされるタスクリクエストを受け入れるか否かを、コプロセッサによって、判定することと、を含む。
実例15は、実例14の構成要件を含み、複数のイベントを検出することが、センサイベント又はタイマイベントを検出することを含む。
実例16は、実例14及び15のいずれかの構成要件を含み、リソース使用コスト値を決定することが、イベントに関連する1つ以上のコールバック機能を処理するためのコプロセッサ使用値を決定することを含む。
実例17は、実例14〜16のいずれかの構成要件を含み、電力状態遷移コスト値を決定することが、低電力状態からイベントを処理する動作状態へコンピューティングデバイスの機能ブロックを遷移させることに関連するコストを決定することを含む。
実例18は、実例14〜17のいずれかの構成要件を含み、総コプロセッサロード値を判定することが、イベントの頻度と、イベントに関連するリソース使用コスト値と、イベントに関連する電力状態遷移コスト値との関数として、指数移動平均を決定することを含む。
実例19は、実例14〜18のいずれかの構成要件を含み、オフロードされるタスクリクエストを受け入れないと判定することに応答して、コプロセッサによって、タスクオンロードリクエストをアプリケーションプロセッサに送信することを、さらに含む。
実例20は、実例14〜19のいずれかの構成要件を含み、コプロセッサからタスクオンロードリクエストの受信に基づいて第2タスクオフロードリクエストをコプロセッサに送信するか否かを、アプリケーションプロセッサによって、判定することをさらに含む。
実例21は、実例14〜20のいずれかの構成要件を含み、オフロードされるタスクリクエストを受け入れるか否かを判定することが、コプロセッサの残存処理能力に基づいてオフロードされるタスクリクエストを受け入れるか否かを判定することを含む。
実例22は、実例14〜21のいずれかの構成要件を含み、オフロードされるタスクリクエストを受け入れるか否かを判定することが、総コプロセッサロード値とオフロードされるタスクリクエストに関連するコプロセッサロード値とを所定のしきいコプロセッサロード値と比較することを含む。
実例23は、実例14〜22のいずれかの構成要件を含み、所定のしきいコプロセッサロード値がコプロセッサのプロセッサコアの数に基づく。
実例24は、実例14〜23のいずれかの構成要件を含み、複数のイベントの主成分分析をコプロセッサによって実行することと、主成分分析に基づいて、コンピューティングデバイスの使用パターンにおける変化が存在するか否かをコプロセッサによって判定することと、オフロードされるタスクリクエストを受け入れるか否かを判定することが、コンピューティングデバイスの使用パターンにおける変化が存在するか否かの判定の関数として、オフロードされるタスクリクエストを受けるか否かを判定することをさらに含む。
実例25は、実例14〜24のいずれかの構成要件を含み、オフロードされるタスクリクエストが短期間のタスクに関連しているか否かを、コプロセッサによって判定することをさらに含み、オフロードされるタスクリクエストを受け入れるか否かを判定することが、オフロードされるタスクリクエストが短期間のタスクに関連しているか否かの判定の関数として、オフロードされるタスクリクエストを受け入れるか否かを判定することをさらに含む。
実例26は、実例14〜25のいずれかの構成要件を含み、オフロードされるタスクリクエストが短期間のタスクに関連しているかの判定に応答して、オフロードされるタスクを受け入れるか否かを判定することは、(i)総コプロセッサロード値の判定又は(ii)コンピューティングデバイスの使用パターンにおける変化の存在の判定に基づいて、タスクを受け入れるか否かを判定することを含み、オフロードされるタスクリクエストが短期間のタスクに関連していないという判定に応答して、オフロードされるタスクを受け入れるか否かの判定は、(i)総コプロセッサロード値の判定と(ii)コンピューティングデバイスの使用パターンにおける変化の存在の判定に基づいて、タスクを受け入れるか否かを判定することを含む。
実例27は、プロセッサと、プロセッサによって実行されたときに、コンピューティングデバイスに実例14〜26のいずれかの方法を実行させる、複数の命令をその中に記憶するメモリと、を備えるコンピューティングデバイスを含む。
実例28は、実行されたことに応答して、コンピューティングデバイスに実例14〜26のいずれかの方法を実行させる、その上に記憶された複数の命令を含む、1つ以上の機械読み取り可能記憶媒体を含む。
実例29は、実例14〜26のいずれかの方法を実行するための手段を含む、コンピューティングデバイスを含む。
実例30は、コプロセッサタスクオフローディングのためのコンピューティングデバイスを含み、コンピューティングデバイスは、コンピューティングデバイスの1つ以上のセンサに関連するセンサデータを、コンピューティングデバイスのコプロセッサによって、受信する手段と、センサデータに関連する複数のイベントを、コプロセッサによって検出する手段と、イベントに関連するリソース使用コスト値と電力状態遷移コスト値を、コプロセッサによって決定する手段と、コンピューティングデバイスのアプリケーションプロセッサからオフロードされるタスクリクエストを、コプロセッサによって、受信する手段と、イベントの頻度と、イベントに関連するリソース使用コスト値と、イベントに関連する電力状態遷移コスト値との関数として、複数のイベントに関連する総コプロセッサロード値を、コプロセッサによって決定する手段と、総コプロセッサロード値とオフロードされるタスクリクエストに関連するコプロセッサロード値とに基づいてオフロードされるタスクリクエストを受け入れるか否かを、コプロセッサによって、判定する手段と、を含む。
実例31は、実例30の構成要件を含み、複数のイベントを検出する手段が、センサイベント又はタイマイベントを検出する手段を含む。
実例32は、実例30及び31のいずれかの構成要件を含み、リソース使用コスト値を判定する手段が、イベントに関連する1つ以上のコールバック機能を処理するためのコプロセッサ使用値を判定する手段を含む。
実例33は、実例30〜32のいずれかの構成要件を含み、電力状態遷移コスト値を判定する手段が、コンピューティングデバイスの機能ブロックを低電力状態からイベントを処理する動作状態へ遷移させることに関連するコストを判定する手段を含む。
実例34は、実例30〜33のいずれかの構成要件を含み、総コプロセッサロード値を判定する手段が、イベントの頻度と、イベントに関連するリソース使用コスト値と、イベントに関連する電力状態遷移コスト値との関数として指数移動平均を判定する手段を含む。
実例35は、実例30〜34のいずれかの構成要件を含み、オフロードされるタスクリクエストを受け入れないと判定したことに応答して、コプロセッサによってタスクオンロードリクエストをアプリケーションプロセッサに送信する手段をさらに含む。
実例36は、実例30〜35のいずれかの構成要件を含み、コプロセッサからのタスクオンロードリクエストの受信に基づいて、コプロセッサに第2タスクオフロードリクエストを送信するか否かをアプリケーションプロセッサによって判定する手段をさらに含む。
実例37は、実例30〜36のいずれかの構成要件を含み、オフロードされるタスクリクエストを受け入れるか否かを判定する手段が、コプロセッサの残存処理能力に基づいてオフロードされるタスクリクエストを受け入れるか否かを判定する手段を含む。
実例38は、実例30〜37のいずれかの構成要件を含み、オフロードされるタスクリクエストを受け入れるか否かを判定する手段が、総コプロセッサロード値とオフロードされるタスクリクエストに関連するコプロセッサロード値とを、所定のしきいコプロセッサロード値と比較する手段を備える。
実例39は、実例30〜38のいずれかの構成要件を含み、所定のしきいコプロセッサロード値はコプロセッサのプロセッサコアの数に基づく。
実例40は、実例30〜39のいずれかの構成要件を含み、複数のイベントの主成分分析の実行をコプロセッサによって実行する手段と、主成分分析に基づいて、コンピューティングデバイスの使用パターンにおける変化が存在するか否かをコプロセッサによって判定する手段と、オフロードされるタスクリクエストを受け入れるか否かを判定する手段が、コンピューティングデバイスの使用パターンにおける変化が存在するか否かの判定の関数として、オフロードされるタスクリクエストを受け入れるか否かを決定する手段をさらに含む。
実例41は、実例30〜40のいずれかの構成要件を含み、オフロードされるタスクリクエストが短期間のタスクに関連しているか否かをコプロセッサによって判定する手段を含み、オフロードされるタスクリクエストを受け入れるか否かを判定する手段は、オフロードされるタスクリクエストが、短期間のタスクに関連しているか否かの判定の関数として、オフロードされるタスクリクエストを受け入れるか否かを判定する手段をさらに含む。
実例42は、実例30〜41のいずれかの構成要件を含み、オフロードされるタスクリクエストが短期間のタスクに関連しているという判定に応答して、オフロードされるタスクを受け入れるか否かを判定する手段は、(i)総コプロセッサロード値の判定又は(ii)コンピューティングデバイスの使用パターンにおける変化の存在の判定に基づいて、タスクを受け入れるか否かを判定する手段を含み、オフロードされるタスクリクエストが短期間のタスクに関連していないという判定に応答して、オフロードされるタスクを受け入れるか否かの判定は、(i)総コプロセッサロード値の判定及び(ii)コンピューティングデバイスの使用パターンにおける変化の存在の判定に基づいて、タスクを受け入れるか否かを判定する手段を含む。

Claims (26)

  1. コプロセッサタスクオフローディングのためのコンピューティングデバイスであって、
    前記コンピューティングデバイスのコプロセッサによって、前記コンピューティングデバイスの1つ以上のセンサに関連するセンサデータを受信する、センサマネジメントモジュールと、
    前記コプロセッサによって、前記センサデータに関連する複数のイベントを検出し、前記コプロセッサによって、前記イベントに関連するリソース使用コスト値及び電力状態遷移コスト値を決定する、センサプロファイリングモジュールと、
    前記コプロセッサによって、前記コンピューティングデバイスのアプリケーションプロセッサからオフロードされるタスクリクエストを受信する、タスクスケジュールモジュールと、
    前記イベントの頻度、前記イベントに関連する前記リソース使用コスト値、及び前記イベントに関連する前記電力状態遷移コスト値の関数として、前記複数のイベントに関連する総コプロセッサロード値を、前記コプロセッサによって決定し、前記総コプロセッサロード値と前記オフロードされるタスクリクエストに関連するコプロセッサロード値とに基づいて、前記オフロードされるタスクリクエストを受け入れるか否かを前記コプロセッサによって決定する、機械学習モジュールと、
    を備える、コンピューティングデバイス。
  2. 前記複数のイベントが、センサイベント又はタイマイベントを含む、請求項1に記載のコンピューティングデバイス。
  3. 前記リソース使用コスト値を決定することが、前記イベントに関連する1つ以上のコールバック関数の処理に対するコプロセッサ使用値を決定することを含む、請求項1に記載のコンピューティングデバイス。
  4. 前記電力状態遷移コスト値を決定することが、低電力状態から前記イベントを処理する動作状態へ前記コンピューティングデバイスの機能ブロックを遷移させることに関連するコストを決定することを含む、請求項1に記載のコンピューティングデバイス。
  5. 前記総コプロセッサロード値を決定することが、前記イベントの頻度、前記イベントに関連する前記リソース使用コスト値、及び前記イベントに関連する前記電力状態遷移コスト値の関数として、指数移動平均を決定することを含む、請求項1に記載のコンピューティングデバイス。
  6. 前記タスクスケジュールモジュールが、前記オフロードされるタスクリクエストを受け入れないと決定することに応答して、前記コプロセッサによってタスクオンロードリクエストを前記アプリケーションプロセッサにさらに送信する、請求項1に記載のコンピューティングデバイス。
  7. 前記アプリケーションプロセッサによって、前記コプロセッサからの前記タスクオンロードリクエストの受信に基づいて、第2タスクオフロードリクエストを前記コプロセッサに送信するか否かを決定する、アプリケーションモジュールをさらに含む、請求項6に記載のコンピューティングデバイス。
  8. 前記オフロードされるタスクリクエストを受け入れるか否かを決定することが、前記コプロセッサの残存処理能力に基づいて前記オフロードされるタスクリクエストを受け入れるか否かを決定することを含む、請求項1に記載のコンピューティングデバイス。
  9. 前記オフロードされるタスクリクエストを受け入れるか否かを決定することが、前記総コプロセッサロード値と前記オフロードされるタスクリクエストに関連する前記コプロセッサロード値とを所定のしきいコプロセッサロード値と比較することを含む、請求項1に記載のコンピューティングデバイス。
  10. 前記所定のしきいコプロセッサロード値が、前記コプロセッサのプロセッサコアの数に基づいている、請求項9のコンピューティングデバイス。
  11. 前記機械学習モジュールが、
    前記複数のイベントの主成分分析を実行し、
    前記主成分分析に基づいて、前記コンピューティングデバイスの使用パターンにおける変化が存在するか否かを決定し、
    前記オフロードされるタスクリクエストを受け入れるか否かを決定することが、前記コンピューティングデバイスの使用パターンにおける前記変化が存在するか否かの決定の関数として、前記オフロードされるタスクリクエストを受け入れるか否かを決定することをさらに含む、請求項1乃至10のいずれか一項記載のコンピューティングデバイス。
  12. 前記機械学習モジュールは、
    前記オフロードされるタスクリクエストが短期間のタスクに関連しているか否かを前記コプロセッサによって決定し、
    前記オフロードされるタスクリクエストを受け入れるか否かを決定することは、前記オフロードされるタスクリクエストが、短期間のタスクに関連しているか否かの決定の関数として、前記オフロードされるタスクリクエストを受け入れるか否かを決定することをさらに含む、請求項11に記載のコンピューティングデバイス。
  13. 前記オフロードされるタスクリクエストが短期間のタスクに関連しているという決定に応答して、前記オフロードされるタスクを受け入れるか否かを決定することは、(i)前記総コプロセッサロード値の決定又は(ii)前記コンピューティングデバイスの使用パターンにおける前記変化の存在の決定に基づいて、前記タスクを受け入れるか否かを決定することを含み、
    前記オフロードされるタスクリクエストが短期間のタスクに関連していないという決定に応答して、前記オフロードされるタスクを受け入れるか否かの決定は、(i)前記総コプロセッサロード値の決定及び(ii)前記コンピューティングデバイスの使用パターンにおける前記変化の存在の決定に基づいて、前記タスクを受け入れるか否かを決定することを含む、
    請求項12に記載のコンピューティングデバイス。
  14. コプロセッサタスクオフローディングのための方法であって、
    コンピューティングデバイスの1つ以上のセンサに関連するセンサデータを、前記コンピューティングデバイスのコプロセッサによって、受信することと、
    前記センサデータに関連する複数のイベントを、前記コプロセッサによって検出することと、
    前記イベントに関連するリソース使用コスト値と電力状態遷移コスト値とを、前記コプロセッサによって決定することと、
    前記コンピューティングデバイスのアプリケーションプロセッサからオフロードされるタスクリクエストを、前記コプロセッサによって、受信することと、
    前記イベントの頻度、前記イベントに関連する前記リソース使用コスト値、及び前記イベントに関連する前記電力状態遷移コスト値の関数として、前記複数のイベントに関連する総コプロセッサロード値を、前記コプロセッサによって決定することと、
    前記総コプロセッサロード値と前記オフロードされるタスクリクエストに関連するコプロセッサロード値とに基づいて前記オフロードされるタスクリクエストを受け入れるか否かを、前記コプロセッサによって、決定することと、
    を含む方法。
  15. 前記リソース使用コスト値を決定することが、前記イベントに関連する1つ以上のコールバック関数を処理するためのコプロセッサ使用値を決定することを含む、請求項14に記載の方法。
  16. 前記電力状態遷移コスト値を決定することが、低電力状態から前記イベントを処理する動作状態へ前記コンピューティングデバイスの機能ブロックを遷移させることに関連するコストを決定することを含む、請求項14に記載の方法。
  17. 前記総コプロセッサロード値を決定することが、前記イベントの前記頻度、前記イベントに関連する前記リソース使用コスト値、及び前記イベントに関連する前記電力状態遷移コスト値との関数として、指数移動平均を決定することを含む、請求項14に記載の方法。
  18. 前記オフロードされるタスクリクエストを受け入れないと決定することに応答して、前記コプロセッサによって、タスクオンロードリクエストを前記アプリケーションプロセッサに送信することを、さらに含む、請求項14に記載の方法。
  19. 前記オフロードされるタスクリクエストを受け入れるか否かを決定することが、前記コプロセッサの残存処理能力に基づいて前記オフロードされるタスクリクエストを受け入れるか否かを決定することを含む、請求項14に記載の方法。
  20. 前記複数のイベントの主成分分析を前記コプロセッサによって実行することと、
    前記主成分分析に基づいて、前記コンピューティングデバイスの使用パターンにおける変化が存在するか否かを前記コプロセッサによって決定することと、
    前記オフロードされるタスクリクエストを受け入れるか否かを決定することが、前記コンピューティングデバイスの使用パターンにおける前記変化が存在するか否かの決定の関数として、前記オフロードされるタスクリクエストを受けるか否かを決定することをさらに含む、請求項14に記載の方法。
  21. 前記オフロードされるタスクリクエストが短期間のタスクに関連しているか否かを、前記コプロセッサによって決定することをさらに含み、
    前記オフロードされるタスクリクエストを受け入れるか否かを決定することが、前記オフロードされるタスクリクエストが短期間のタスクに関連しているか否かの決定の関数として、前記オフロードされるタスクリクエストを受け入れるか否かを決定することをさらに含む、請求項20に記載の方法。
  22. 前記オフロードされるタスクリクエストが短期間のタスクに関連しているという決定に応答して、前記オフロードされるタスクを受け入れるか否かを決定することは、(i)前記総コプロセッサロード値の決定又は(ii)前記コンピューティングデバイスの使用パターンにおける前記変化の存在の決定に基づいて、前記タスクを受け入れるか否かを決定することを含み、
    前記オフロードされるタスクリクエストが短期間のタスクに関連していないという決定に応答して、前記オフロードされるタスクを受け入れるか否かの決定は、(i)前記総コプロセッサロード値の決定及び(ii)前記コンピューティングデバイスの使用パターンにおける前記変化の存在の決定に基づいて、前記タスクを受け入れるか否かを決定することを含む、
    請求項21に記載の方法。
  23. プロセッサと、
    前記プロセッサによって実行されたときに、前記コンピューティングデバイスに請求項14乃至22のいずれか一項に記載の方法を実行させる、複数の命令をその中に記憶するメモリと、
    を備える、コンピューティングデバイス。
  24. 実行されたことに応答して、コンピューティングデバイスに請求項14乃至22のいずれか1項に記載の方法を実行させる、その上に記憶された複数の命令を含む、1つ以上の機械読み取り可能記憶媒体。
  25. 請求項14乃至22のいずれか1項に記載の方法を実行するための手段を含む、コンピューティングデバイス。
  26. 実行されたことに応答して、コンピューティングデバイスに請求項14乃至22のいずれか1項に記載の方法を実行させる複数の命令を含む、コンピュータプログラム。
JP2017546845A 2015-03-27 2016-02-25 プロセッサ/コプロセッサ構成に対するデータのオフローディング及びオンローディングのための技術 Expired - Fee Related JP6689873B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/671,077 2015-03-27
US14/671,077 US9626227B2 (en) 2015-03-27 2015-03-27 Technologies for offloading and on-loading data for processor/coprocessor arrangements
PCT/US2016/019582 WO2016160191A1 (en) 2015-03-27 2016-02-25 Technologies for offloading and on-loading data for processor/coprocessor arrangements

Publications (2)

Publication Number Publication Date
JP2018513463A JP2018513463A (ja) 2018-05-24
JP6689873B2 true JP6689873B2 (ja) 2020-04-28

Family

ID=56976552

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017546845A Expired - Fee Related JP6689873B2 (ja) 2015-03-27 2016-02-25 プロセッサ/コプロセッサ構成に対するデータのオフローディング及びオンローディングのための技術

Country Status (5)

Country Link
US (2) US9626227B2 (ja)
EP (1) EP3274827B1 (ja)
JP (1) JP6689873B2 (ja)
CN (1) CN107408062B (ja)
WO (1) WO2016160191A1 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10205769B2 (en) * 2013-05-31 2019-02-12 Itron, Inc. Distributed applications across platforms
US11328344B2 (en) 2013-05-31 2022-05-10 Itron, Inc. Utility application delivery platform
US9342288B2 (en) 2013-05-31 2016-05-17 Itron, Inc. Surfacing cross platform applications
US9766818B2 (en) * 2014-12-31 2017-09-19 Samsung Electronics Co., Ltd. Electronic system with learning mechanism and method of operation thereof
CN107454664B (zh) * 2017-07-28 2020-04-17 维沃移动通信有限公司 一种数据传输方法及移动终端
KR102568686B1 (ko) 2018-02-09 2023-08-23 삼성전자주식회사 컨텍스트 허브를 포함하는 모바일 장치 및 그것의 동작 방법
US11131787B2 (en) 2018-05-28 2021-09-28 Samsung Electronics Co., Ltd. Electromagnetic sensor and mobile device including the same
CN109189572B (zh) * 2018-08-02 2021-06-04 中兴飞流信息科技有限公司 一种资源预估方法及系统、电子设备和存储介质
US10942562B2 (en) 2018-09-28 2021-03-09 Intel Corporation Methods and apparatus to manage operation of variable-state computing devices using artificial intelligence
CN116702849A (zh) * 2018-12-31 2023-09-05 英特尔公司 用于上下文传感器集线器的方法和装置
KR102648102B1 (ko) 2019-01-18 2024-03-18 삼성전자주식회사 전자 장치와 외부 서버 간에 어플리케이션 프로그램에 관한 작업 환경을 제공하는 방법 및 장치
CN111559327B (zh) * 2019-02-14 2022-05-24 华为技术有限公司 一种数据处理方法及对应的装置
JP7046862B2 (ja) 2019-03-28 2022-04-04 株式会社日立製作所 アプリケーション実行装置およびアプリケーション実行方法
CN111984364B (zh) * 2019-05-21 2023-05-26 江苏艾蒂娜互联网科技有限公司 一种面向5g时代的人工智能云平台
US11321144B2 (en) 2019-06-29 2022-05-03 Intel Corporation Method and apparatus for efficiently managing offload work between processing units
US11372711B2 (en) 2019-06-29 2022-06-28 Intel Corporation Apparatus and method for fault handling of an offload transaction
CN112954635B (zh) * 2019-12-10 2022-03-08 安徽大学 无线传感器网络中基于三节点协作的计算任务分配方法
CN113490191B (zh) * 2020-01-14 2024-05-31 荣耀终端有限公司 蓝牙通信方法及其介质和电子设备
BR112022019005A2 (pt) * 2020-03-23 2022-11-01 Apple Inc Estrutura de descoberta de serviços e descarregamento dinâmico para sistemas de rede celular com base em computação de borda
CN112395046B (zh) * 2020-07-30 2021-06-04 上海有孚智数云创数字科技有限公司 虚拟机迁移规划调度方法及其系统与介质
KR102514798B1 (ko) * 2020-12-21 2023-03-29 한국과학기술원 정량적 클라우드 기반의 엣지 컴퓨팅 환경에서 지연 시간을 고려한 IoT 단말의 태스크 오프로딩을 위한 컴퓨터 시스템 및 그의 방법
WO2023098999A1 (en) * 2021-12-02 2023-06-08 Telefonaktiebolaget Lm Ericsson (Publ) Controlling concurrent execution of perception algorithms
WO2024011147A1 (en) * 2022-07-05 2024-01-11 Opteon Corporation Systems and methods for controlling dynamic environments

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7127625B2 (en) * 2003-09-04 2006-10-24 Hewlett-Packard Development Company, L.P. Application management based on power consumption
US8079084B1 (en) * 2007-08-10 2011-12-13 Fortinet, Inc. Virus co-processor instructions and methods for using such
US8479215B2 (en) * 2009-08-18 2013-07-02 International Business Machines Corporation Decentralized load distribution to reduce power and/or cooling costs in an event-driven system
US8886980B2 (en) * 2010-03-29 2014-11-11 Qualcomm Incorporated Power efficient way of operating motion sensors
US8706172B2 (en) * 2010-10-26 2014-04-22 Miscrosoft Corporation Energy efficient continuous sensing for communications devices
US8949637B2 (en) * 2011-03-24 2015-02-03 Intel Corporation Obtaining power profile information with low overhead
US20130055224A1 (en) * 2011-08-25 2013-02-28 Nec Laboratories America, Inc. Optimizing compiler for improving application performance on many-core coprocessors
CN109634198B (zh) * 2011-10-05 2021-06-22 奥普唐公司 用于监视和/或生成动态环境的方法、装置和系统
US9378112B2 (en) * 2012-06-25 2016-06-28 International Business Machines Corporation Predictive alert threshold determination tool
CN103677984B (zh) * 2012-09-20 2016-12-21 中国科学院计算技术研究所 一种物联网计算任务调度系统及其方法
RU2621013C2 (ru) * 2012-12-11 2017-05-30 Интел Корпорейшн Контекстное зондирование для компьютерных устройств
CN104412327B (zh) * 2013-01-02 2019-02-12 默思股份有限公司 内建自测试以及修复装置及方法
US9367357B2 (en) * 2013-01-18 2016-06-14 Nec Corporation Simultaneous scheduling of processes and offloading computation on many-core coprocessors
WO2014119894A1 (en) * 2013-01-29 2014-08-07 Samsung Electronics Co., Ltd. Method of performing function of device and device for performing the method
US20150006616A1 (en) * 2013-06-28 2015-01-01 Broadcom Corporation Host Offloading Architecture
US20150046679A1 (en) * 2013-08-07 2015-02-12 Qualcomm Incorporated Energy-Efficient Run-Time Offloading of Dynamically Generated Code in Heterogenuous Multiprocessor Systems

Also Published As

Publication number Publication date
EP3274827B1 (en) 2020-03-25
EP3274827A4 (en) 2018-12-05
JP2018513463A (ja) 2018-05-24
CN107408062A (zh) 2017-11-28
US20170185457A1 (en) 2017-06-29
US9626227B2 (en) 2017-04-18
CN107408062B (zh) 2021-09-07
US20160283284A1 (en) 2016-09-29
WO2016160191A1 (en) 2016-10-06
US10067805B2 (en) 2018-09-04
EP3274827A1 (en) 2018-01-31

Similar Documents

Publication Publication Date Title
JP6689873B2 (ja) プロセッサ/コプロセッサ構成に対するデータのオフローディング及びオンローディングのための技術
US10922143B2 (en) Systems, methods and devices for determining work placement on processor cores
KR102506605B1 (ko) 고성능 ssd들을 사용하여 롱 테일 레이턴시를 감소시키기 위한 랙-레벨의 스케줄링
US9870255B2 (en) Hardware acceleration wait time awareness in central processing units with multi-thread architectures
US20190026150A1 (en) Fpga acceleration for serverless computing
TWI573075B (zh) 持續及有彈性之工作處理
US20190268278A1 (en) Monitoring data streams and scaling computing resources based on the data streams
US20150039764A1 (en) System, Method and Computer Program Product for Energy-Efficient and Service Level Agreement (SLA)-Based Management of Data Centers for Cloud Computing
US20130275970A1 (en) Interactive search monitoring in a virtual machine environment
CN116569140A (zh) 用于修改集群计算环境的技术
da Silva et al. Self-healing of workflow activity incidents on distributed computing infrastructures
CN109558248B (zh) 一种用于确定面向海洋模式计算的资源分配参数的方法及系统
JP6088531B2 (ja) ローカルサーバーを通じたローカルクライアントアプリケーションのためのイベントサービス
CN116762315A (zh) 利用人工智能自动修复安全问题的技术
US11017050B1 (en) Hybrid quantized decision model framework
US20140344442A1 (en) Adaptive Data Collection
US10114438B2 (en) Dynamic power budgeting in a chassis
US20220100566A1 (en) Metrics-based scheduling for hardware accelerator resources in a service mesh environment
US20230195597A1 (en) Matchmaking-based enhanced debugging for microservices architectures
KR102269271B1 (ko) 오픈 컴퓨팅 언어 기반의 애플리케이션 실행 방법 및 장치
EP3646138A1 (en) Power management of an event-based processing system
Ogden et al. Layercake: Efficient Inference Serving with Cloud and Mobile Resources
Huaijun et al. Research and implementation of mobile cloud computing offloading system based on Docker container
CN117135151B (zh) 一种gpu集群的故障检测方法及gpu集群、电子设备和存储介质
US11977907B2 (en) Hybrid push and pull event source broker for serverless function scaling

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190219

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191029

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191119

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200218

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200408

R150 Certificate of patent or registration of utility model

Ref document number: 6689873

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees