JP2023538989A - コンピューティングシステムにおけるウェイクパターンを動的にスケジュールする方法、システム、製造物品、及び装置 - Google Patents
コンピューティングシステムにおけるウェイクパターンを動的にスケジュールする方法、システム、製造物品、及び装置 Download PDFInfo
- Publication number
- JP2023538989A JP2023538989A JP2022572376A JP2022572376A JP2023538989A JP 2023538989 A JP2023538989 A JP 2023538989A JP 2022572376 A JP2022572376 A JP 2022572376A JP 2022572376 A JP2022572376 A JP 2022572376A JP 2023538989 A JP2023538989 A JP 2023538989A
- Authority
- JP
- Japan
- Prior art keywords
- time
- state
- context
- period
- controller
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000004519 manufacturing process Methods 0.000 title abstract description 10
- 238000005259 measurement Methods 0.000 claims abstract description 106
- 238000012549 training Methods 0.000 claims abstract description 99
- 230000000694 effects Effects 0.000 claims description 41
- 230000033001 locomotion Effects 0.000 claims description 33
- 238000003860 storage Methods 0.000 claims description 29
- 230000004044 response Effects 0.000 claims description 12
- 230000000875 corresponding effect Effects 0.000 description 40
- 230000007704 transition Effects 0.000 description 37
- 230000006399 behavior Effects 0.000 description 26
- 239000013598 vector Substances 0.000 description 21
- 238000010801 machine learning Methods 0.000 description 18
- 230000015654 memory Effects 0.000 description 18
- 230000008569 process Effects 0.000 description 15
- 238000013473 artificial intelligence Methods 0.000 description 10
- 230000009471 action Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 238000009826 distribution Methods 0.000 description 8
- 239000000284 extract Substances 0.000 description 7
- 230000004043 responsiveness Effects 0.000 description 6
- 238000013135 deep learning Methods 0.000 description 5
- 230000001934 delay Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 5
- 230000001133 acceleration Effects 0.000 description 4
- 230000004913 activation Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 230000002596 correlated effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 230000000737 periodic effect Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000001143 conditioned effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000002372 labelling Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 238000002604 ultrasonography Methods 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 230000009474 immediate action Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000003647 oxidation Effects 0.000 description 1
- 238000007254 oxidation reaction Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000002618 waking effect Effects 0.000 description 1
- 239000010926 waste battery Substances 0.000 description 1
- 230000003442 weekly effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/16—Constructional details or arrangements
- G06F1/1613—Constructional details or arrangements for portable computers
- G06F1/1633—Constructional details or arrangements of portable computers not specific to the type of enclosures covered by groups G06F1/1615 - G06F1/1626
- G06F1/1684—Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675
- G06F1/1694—Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675 the I/O peripheral being a single or a set of motion sensors for pointer control or gesture input obtained by sensing movements of the portable computer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3215—Monitoring of peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3231—Monitoring the presence, absence or movement of users
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/25—Fusion techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/26—Discovering frequent patterns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W52/00—Power management, e.g. TPC [Transmission Power Control], power saving or power classes
- H04W52/02—Power saving arrangements
- H04W52/0209—Power saving arrangements in terminal devices
- H04W52/0251—Power saving arrangements in terminal devices using monitoring of local events, e.g. events related to user activity
- H04W52/0254—Power saving arrangements in terminal devices using monitoring of local events, e.g. events related to user activity detecting a user operation or a tactile contact or a motion of the device
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
コンピューティングシステムにおけるウェイクパターンを動的にスケジュールする方法、装置、システム、及び製造物品が開示されている。例示的な装置は、第1の時間に収集されたセンサ測定値に基づいてデバイスのコンテキストを決定するデバイス状態コントローラと、デバイスのコンテキストにオペレーティングシステムの状態を関連付けるアソシエータであって、状態は、第1の時間の後の第2の時間に取得される、アソシエータと、関連付けに基づいて予測モデルを生成する訓練コントローラであって、予測モデルは、コンテキストに基づいてオペレーティングシステムの状態がアクティブになる第3の時間を予測する、訓練コントローラと、第3の時間より前にウェイクイベントをトリガすることによって、デバイスの電力消費を低減するスケジュールコントローラであって、ウェイクイベントは、デバイスに非アクティブ状態を脱出する準備をさせる、スケジュールコントローラと、を含む。
Description
本開示は、概して、コンピューティングシステムに関し、より詳細には、コンピューティングシステムにおけるウェイクパターンを動的にスケジュールする方法、システム、製造物品、及び装置に関する。
機械学習(ML)、深層学習(DL)、及び/又は他の人工機械駆動論理を含む人工知能(AI)は、機械(例えば、コンピュータ、論理回路など)が、モデルを処理して、入力データを処理して、訓練プロセスを介してモデルによって以前に学習されたパターン及び/又は関連付けに基づいて出力を生成することを可能にする。例えば、モデルは、データで訓練され、パターン及び/又は関連付けを認識し、入力データを処理するときにそのようなパターン及び/又は関連付けに従い、他の入力が認識されたパターン及び/又は関連付けと一致する出力をもたらすようにしてもよい。
数字は、縮尺どおりではない。一般に、同一の参照番号は、図面及び添付の書面による説明の全体にわたって使用され、同一又は類似の部分を指す。
記述子「第1」、「第2」、「第3」などは、本明細書において、別々に参照され得る複数の要素又は構成要素を識別するときに使用される。使用のコンテキストに基づいて別段の特定又は理解がなされない限り、このような記述子は、リスト内の優先順位、物理的順序又は配列、又は時間順序のいかなる意味を与えることを意図するものではなく、開示された例を理解しやすくするために、複数の要素又は構成要素を別々に参照するためのラベルとして使用されているにすぎない。いくつかの例において、記述子「第1」が、詳細な説明において要素を参照するために使用されてもよいが、同じ要素が、「第2」又は「第3」などの異なる記述子を用いて請求項において参照されることがある。このような場合、このような記述子は、単に複数の要素又は構成要素を参照しやすくするために使用されているにすぎないと理解されたい。
今日のパーソナルコンピューティングデバイスは、全日バッテリ寿命、ほぼゼロ待機応答性、及びすばらしい性能の実世界のユーザ体験を提供することが期待されている。コンピューティングシステム(例えば、パーソナルコンピューティングデバイスのシステム)は、様々なクラスのユーザ(例えば、ゲーマー、ホームユーザ、学生など)のニーズを満たすように設計されている。このようなシステムは、異なる性能目標を達成するために、ハードウェア(HW)及び/又はソフトウェア(SW)のトレードオフを提供する。例えば、システムは、オペレーティングシステム(OS)を含んで、OSが実行されるコンピューティングデバイスのアクティブ状態と非アクティブ状態の間で異なる性能目標を達成することがある。このような性能目標は、システムが非アクティブ状態(例えば、スタンバイモード)にあるときに、システムの低消費電力を達成することである。
いくつかの例では、OSがスタンバイモードにあるときに、システムのウェイク期間をスケジュールする特徴が実装されている。本明細書で使用される場合、「ウェイク」期間は、OSがシステムのハードウェア及びソフトウェア構成要素に電力を供給する(例えば、アクティブ化する)時間である。このようなウェイク期間は、ユーザがシステムをアクティブ化(例えば、オンにする)したときにシステム(例えば、パーソナルコンピューティングデバイス)の準備が整っており、最新の状態となるように、ネットワークへの接続性を維持する、電子メール(例えば、最近受信された電子メール)を同期する、カレンダーを更新することなどを行うために、OSをスリープモード(例えば、スタンバイモード、非アクティブモードなど)から周期的に「ウェイクアップ」(例えば、アクティブ化)するスタンバイ特徴によって実現され得る。
スタンバイ特徴は、ユーザがシステムをスリープ状態に入るときに開始される(例えば、ユーザが電源ボタンを押すか、蓋を閉じるか、アイドリング状態にするか、スタートメニューの電源ボタンから「スリープ」を選択する)。スタンバイ特徴が開始されるときに、アプリケーション及びシステムソフトウェアは低電力動作に移行する。スタンバイ特徴の性能目標は、バッテリ寿命を最適化するために、低電力消費を維持しながら、アクティブ化のためのシステムのレディネスを可能にすることである。
しかしながら、スタンバイ特徴は、本明細書においてスタンバイモードと呼ばれ、バッテリ寿命と応答性(例えば、システム準備)との間のバランスであるウェイク期間スケジュールを有さない。例えば、スタンバイモードは、予め決定された(例えば、20分、30分など)ウェイク期間スケジュールを実装することがあり、OSがスタンバイ中である予め決定された時間(例えば、30分)ごとに、OSは、システムをウェイクするためのウィイク通知をトリガする。このような例では、ウェイク通知をトリガする間の予め決定された時間は、システムの応答性を低下させることを犠牲にしてバッテリ寿命を節約するのに役立つように比較的長い。代替的には、バッテリ寿命を犠牲にして応答性を上昇させるために、ウェイク通知をトリガする間の予め決定された時間は比較的短くてもよい。
したがって、このような固定されたウェイク期間スケジュールは、非効率的である。例えば、ウェイク通知は、予め決定された各時間に必ずしも必要とされない。ユーザは、システムを長期間(例えば、日、週、時、オフィス及び/又は自宅までの運転しているとき、昼食又は夕食中など)使用していないかもしれない。このような条件における不必要なウェイク通知は、バッテリ電力を浪費し、環境(例えば、デバイスがバッグ、車の中など)によってはシステムハードウェアを過熱させる可能性がある。別の例では、固定ウェイク期間スケジュールにおけるシステムの応答性能は望ましくない。例えば、システムのユーザは、次のウェイク通知の直前にシステムをオンにする(例えば、システムをアクティブにする)ことがあり、このことは、OSのスタンバイ特徴によって提供される所望のレディネス及び/又は瞬時オンの経験をユーザに提供しない。
本明細書に開示されている例は、システムがスタンバイモードにあるときに、バッテリ寿命とシステムの応答性とのバランスをとる動的ウェイク期間スケジュールの決定と生成を可能にする。本明細書に開示されている例は、センサ測定を通してユーザの日々のルーチンを分析し、動的ウェイク期間スケジュールを生成し、そのルーチンをOS状態(例えば、アクティブ又は非アクティブ)と相関させる。本明細書に開示されている例は、任意の数のセンサタイプを有する異なるセンサからセンサ測定値を取得し、センサ測定値に基づいてシステムのコンテキスト及び/又は条件(condition)を決定し、更にこれらの条件をOS状態(例えば、アクティブ又は非アクティブ)に関連付ける統合センサハブ(ISH、Integrated Sensor Hub)を含む。
そのようなコンテキスト及び/又は条件は、状態コンテキスト及びイベントコンテキストと呼ばれることがある。本明細書で使用される場合、状態コンテキストは、ユーザ行動及びデバイス条件に対応する条件である。例えば、状態コンテキストは、ユーザ活動(例えば、ユーザが歩いている、走っている、自転車に乗っている、車両内にいる、そわそわしている、不明など)、デバイスの動き、デバイス及びユーザの位置などであり得る。本明細書で使用される場合、イベントコンテキストは、デバイスの状態の瞬時の移行に対応する条件である。例えば、イベントコンテキストは、配置移行(例えば、デバイスがバッグから取り出されている、デバイスがバッグ内に配置されているなど)であり得る。本明細書に開示された例では、デバイスのコンテキストとOS状態との間の相関により、本明細書に開示された例は、どのルーチン(例えば、コンテキスト、条件など)が、どのOS状態に対応し、さらに、どのルーチンが、週のどの日時に実行されるかを学習することができる。
本明細書に開示されている例は、動的ウェイク期間スケジュールを生成するための人工知能を実装する。機械学習(ML)、深層学習(DL)、及び/又は他の人工機械駆動論理を含む人工知能(AI)は、機械(例えば、システム、コンピュータ、論理回路など)が、モデルを処理して、入力データを処理して、訓練プロセスを介してモデルによって以前に学習されたパターン及び/又は関連付けに基づいて出力を生成することを可能にする。例えば、モデルは、データで訓練され、パターン及び/又は関連付けを認識し、入力データを処理するときにそのようなパターン及び/又は関連付けに従い、他の入力が認識されたパターン及び/又は関連付けと一致する出力をもたらすようにしてもよい。
多くの異なるタイプの機械学習モデル及び/又は機械学習アーキテクチャが存在する。本明細書に開示されている例では、ニューラルネットワークモデルが使用される。ニューラルネットワークモデルを使用することにより、デバイスの過去及び将来のコンテキスト及び/又は条件に基づいたオペレーティングシステム(OS)状態の予測が可能になる。一般に、本明細書に開示されている例示的なアプローチにおいて使用するのに好適な機械学習モデル/アーキテクチャは、単純ベイズ分類器(Naive Bayes Classifier)である。しかしながら、他のタイプの機械学習モデル、例えば、長短期記憶(LSTM、Long/Short Term Memory)モデル、再帰型ニューラルネットワーク(RNN、Recurrent Neural Network)などが追加又は代替的に使用され得る。
一般に、ML/AIシステムを実装するには、少なくとも2つのフェーズ、すなわち、学習/訓練フェーズと推論フェーズを伴う。学習/訓練フェーズでは、訓練アルゴリズムが、例えば訓練データに基づくパターン及び/又は関連付けに従って動作するようにモデルを訓練するために使用される。一般に、モデルは、入力データを出力データに変換するために、モデル内の一連のノード及び接続を通してなどして、入力データがどのように出力データに変換されるかをガイドする内部パラメータを含む。追加的に、学習がどのように実行されるか(例えば、学習速度、機械学習モデルで使用される層の数など)を制御するために、ハイパーパラメータが訓練プロセスの一部として使用される。ハイパーパラメータは、訓練プロセスを開始する前に決定される訓練パラメータとして定義される。
ML/AIモデルの種類及び/又は期待される出力に基づいて、様々なタイプの訓練が実行され得る。例えば、教師付き訓練は、モデル誤差を低減するML/AIモデルのためのパラメータを選択する(例えば、選択パラメータの組み合わせを繰り返すことによって)ために、入力及び対応する期待(例えば、ラベル付き)出力を使用する。本明細書で使用される場合、ラベル付けは、機械学習モデルの期待される出力(例えば、分類、期待される出力値など)を指す。代替的には、(例えば、ディープラーニング、機械学習のサブセットなどで使用される)教師なし訓練は、(例えば、期待(ラベル付き)出力の恩恵なしで)ML/AIモデルのためのパラメータを選択するために入力からパターンを推論することを伴う。
本明細書に開示された例において、ML/AIモデルは、単純ベイズを使用して訓練される。しかしながら、任意の他の訓練アルゴリズムが、追加的又は代替的に使用されてもよい。本明細書に開示されている例では、ユーザ行動パターンが決定されるまで訓練が実行される。本明細書に開示されている例では、コンピューティングデバイス(例えば、ローカル)で訓練が実行される。学習がどのように実行されるかを制御するハイパーパラメータ(例えば、学習速度、機械学習モデルで使用される数の層など)を使用して実行される。いくつかの例では、再訓練が実行されてもよい。そのような再訓練は、以前に決定されたものからは異常、及び/又は異なるユーザ及びデバイスのルーチン及び/又は行動を示すセンサ測定に応答して実行されてもよい。
訓練は、訓練データを使用して実行される。本明細書に開示されている例では、訓練データは、ローカルに生成されたデータに由来する。教師付き訓練が使用されるため、訓練データはラベル付けされる。ラベル付けは、アソシエータによって訓練データに適用される。いくつかの例では、訓練データは、例えば、ヒストリカルコンテキストデータ(例えば、システムの状態及びイベントコンテキストを決定するために分析されたセンサデータ)を将来のOS状態に関連付けることを使用して前処理されて、システムのどのコンテキストがシステムのどのOS状態に対応するかを学習する。
訓練が完了すると、モデルは、モデルにおいて定義されたノードのネットワーク及び接続に基づいて、入力を処理し、出力を提供する実行可能なコンストラクトとして使用するために展開される。モデルは、ISHに記憶される。次いで、このモデルは、ISHの予測コントローラによって実行されてもよい。
訓練されると、展開されたモデルは、データを処理する推論フェーズで動作されてもよい。推論フェーズでは、分析されるデータ(例えば、ライブデータ)がモデルに入力され、モデルが実行されて出力が作成される。この推論フェーズは、訓練から学習したことに基づいて出力を生成する(例えば、学習したパターン及び/又は関連付けを実データに適用するモデルを実行することによって)AI「思考」と考えることができる。いくつかの例では、機械学習モデルへの入力として使用される前に、入力データは前処理を受ける。さらに、いくつかの例では、出力データは、出力を有用な結果(例えば、データの表示、機械によって実行される命令など)に変換するために、AIモデルによって生成された後に後処理を受けてもよい。
いくつかの例では、展開されたモデルの出力は、捕捉され、フィードバックとして提供されてもよい。フィードバックを分析することにより、展開されたモデルの正解率が決定されてもよい。展開されたモデルの正解率が閾値又は他の基準未満であることをフィードバックが示す場合、更新されたモデルの訓練は、フィードバック及び更新された訓練データセット、ハイパーパラメータなどを使用してトリガされて、更新された展開されたモデルを生成することができる。
図1Aは、動的ウェイク期間スケジュールを生成する例示的なデバイスのブロック図を示す。例示的なデバイス100は、例示的なセンサハブ102、例示的なセンサ104、及び例示的なホスト106を含む。例示的なセンサ104は、例示的な第1のセンサ(加速度計)108、例示的な第2のセンサ(ジャイロスコープ)110、例示的な第3のセンサ(近接)112、例示的な第4のセンサ(周囲光)114、例示的な第5のセンサ(Wi-Fi)116、例示的な第6のセンサ(視覚センサ)118、例示的な第7のセンサ(レーダセンサ)120、及び例示的な第8のセンサ(超音波センサ)122を含む。例示的なセンサハブ102は、例示的なデバイスイベントコントローラ124、例示的なデバイス状態コントローラ126、例示的なバッファ128、例示的なタイマ130、例示的なアソシエータ132、例示的な訓練コントローラ134、例示的な予測コントローラ136、例示的なスケジュールコントローラ138、及び例示的なウェイクタイマ140を含む。例示的なホスト106は、例示的なスタンバイ管理システム142を含む。
図1Aでは、例示的なデバイス100は、コンピューティングシステムである。例えば、コンピューティングシステムは、ラップトップ、タブレット、携帯電話、及び/又は他のタイプのパーソナルコンピューティングシステムなどのパーソナルコンピューティングシステムであってもよい。追加的及び/又は代替的に、デバイス100は、ワークステーション、ミニコンピュータなどであってもよい。
図1Aでは、例示的なセンサハブ102は、任意の数の異なるセンサ測定値を統合して、ホスト106に対する動的ウェイクスケジュールを決定する制御センタである。例示的なセンサハブ102は、プロセッサ(例えば、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、コプロセッサなど)によって実装される。追加的及び/又は代替的に、例示的なセンサハブ102は、エッジデバイス(例えば、外部デバイス)及び/又はクラウドデバイス(例えば、サーバ、仮想化デバイスなど)によって実装されてもよい。いくつかの例では、センサハブ102は、ホスト106から処理タスクをオフロードし、デバイス100の改善された性能、及びデバイス100内の最適電力分配を提供する。
図1Aでは、例示的なセンサ104は、デバイス100の内部及び外部環境を監視する例示的なデバイス100のセンサである。いくつかの例では、センサ104は、デバイス100内/上に設置される。例えば、デバイス100は、任意の数のセンサを含むように設計及び製造されてもよい。例示的なセンサ104は、8つのセンサを含むものとして示されているが、例示的なデバイス100は、示されていない追加の及び/又は代替のセンサを含むことができる。追加的に、例示的なデバイス100は、同じタイプの複数のセンサを含むことができる。
例示的なセンサ104は、デバイス100の加速度を測定する例示的な加速度計108を含む。例えば、加速度計108は、デバイスが携帯可能であり、異なる位置から移動されるときに、デバイス100の動きを測定する。いくつかの例では、デバイス100がラップトップであるときに、加速度計108は、ラップトップの開閉の間の蓋(例えば、クラムシェルの上蓋及び/又は下蓋)の加速度を測定することができる。加速度は、重力加速度(g)で測定される。いくつかの例では、アクセラレータ108によって出力される測定値は、追加のセンサ測定値と併せて使用され、事象及び状態のコンテキストを決定する。
例示的なセンサ104は、デバイス100の回転及び角運動を測定する例示的なジャイロスコープ110を含む。例えば、ジャイロスコープ110は、携帯電話又はラップトップの傾斜を測定する。回転及び角運動は、毎秒度(°/秒)又は毎秒ラジアン(RPS)で測定される。いくつかの例では、ジャイロスコープ110によって出力される測定値は、状態コンテキストを決定するために追加のセンサ測定値と併せて使用される。
例示的なセンサ104は、デバイス100近傍の物体の存在を検出する例示的な近接センサ112を含む。例えば、近接センサ112は、ユーザが存在するとき(例えば、デバイス100を使用して)、デバイス100がバッグ内に位置付けられるときなどを検出することができる。近接度はボルト(v)で測定され、これは、ミリメートル(mm)での距離に対応する。いくつかの例では、近接センサ112によって出力される測定値は、状態及びイベントコンテキストを決定するために追加の測定値と併せて使用される。
例示的なセンサ104は、デバイス100の外部環境の光の品質及び強度を検出する例示的な周辺光センサ114を含む。例えば、周辺光センサ114は、デバイス100が配置される位置の輝度又は暗さを決定するために使用される。周囲光は、周囲光に比例するボルト(v)で測定される。いくつかの例では、周辺光センサ114によって出力される測定値は、イベントコンテキストを決定するために追加のセンサ測定値と併せて使用される。
例示的なセンサ104の例は、Wi-Fi及び/又はWi-Fi信号強度の存在に対応する情報を提供するWi-Fiセンサ116を含む。例えば、Wi-Fiセンサ116は、デバイス100にWi-Fiが存在するかどうかを示すバイナリ測定値(例えば、1及び0など)を出力することができる。いくつかの例では、Wi-Fiデータ、デバイス100の将来の使用の確立に寄与するかもしれない。例えば、デバイス100が最初はWi-Fiに接続されていないが、次いで、最初は弱い特定のWi-Fi信号に移行する(例えば、接続性が弱い)とする。このような例では、Wi-Fi信号は時間の経過とともに強度が増加し得る。ヒストリカル観察は、ユーザが通勤中に列車、バスにいる場合に、ユーザルーチンの識別をサポートしてもよい。弱いWi-Fi信号は、ユーザが自分の机にほとんど到着したことを示してもよい。例示的なWi-Fiセンサ116は、状態コンテキストを決定するために追加のセンサ測定と併せて使用されてもよい。
例示的なセンサ104は、デバイス100の環境の外部画像を捕捉する例示的な視覚センサ118を含む。例えば、視覚センサ118はカメラであってもよい。いくつかの例では、視覚センサ118は、デバイス100の近傍の物体を識別することができる。いくつかの例では、視覚センサ118によって出力される測定値は、イベント及び状態コンテキストを決定するために追加の測定値と併せて使用される。
例示的なセンサ104は、デバイス100の周囲の物体及び動きを検出する例示的なレーダセンサ120を含む。例えば、レーダセンサ120は、無線波を使用して、物体の大きさ、位置、及びデバイス100への近接度を決定する。物体検出は、メートル(m)で測定される。いくつかの例では、レーダセンサ120によって出力される測定値は、イベントコンテキストを決定するために追加のセンサ測定値と併せて使用される。
例示的なセンサ104は、物体までの距離を決定するためにソナーを使用する例示的な超音波センサ122を含む。例えば、超音波センサ122は、デバイス100からのユーザの距離を決定することができる。距離は、メートル(m)で測定される。いくつかの例では、超音波センサ122によって出力される測定値は、イベントコンテキストを決定するために追加のセンサ測定値と併せて使用される。
図1Aにおいて、例示的なセンサ104は、例示的なセンサハブ102に接続されている。いくつかの例では、センサ104とセンサハブ102との間の接続は、ハードワイヤードである。追加的及び/又は代替的に、センサ104とセンサハブ102との間の接続は、無線である。例えば、センサ104は、センサハブ102の位置とは異なるデバイス100上の様々な位置に位置してもよく、従って、任意のタイプの無線通信を介してセンサハブ102に測定値を無線で出力してもよい。
図1Aでは、例示的なセンサハブ102は、センサ104から(例えば、無線又はハードワイヤードで)測定値を取得し、イベント及び状態コンテキストの決定を実行する例示的なデバイスイベントコントローラ124及び例示的なデバイス状態コントローラ126を含む。
例示的なデバイス状態コントローラ126は、センサ104の測定値に基づいてデバイス100の状態コンテキストを決定する。例えば、デバイス状態コントローラ126は、センサ104における複数のセンサタイプからの測定値に基づいて、ユーザ活動データ144、蓋モードデータ146、位置データ148、及びデバイス動きデータ150を決定する。ユーザ活動データ144、蓋モードデータ146、位置データ148、及びデバイス動きデータ150は、センサハブ102が、ユーザがデバイス100をアクティブ化する意図を推論することを可能にするように決定される。
例えば、デバイス状態コントローラ126は、加速度計108から測定値を収集及び分析することによって、ユーザ活動データ144を決定する。ユーザ活動データ144は、ユーザが(例えば、デバイス100が近くにある状態で)行っていることに対応する。例えば、デバイス状態コントローラ126は、ユーザが歩いているか、車両内にいるか、自転車に乗っているかなどを決定する。
例示的なデバイス状態コントローラ126は、加速度計108から測定値を収集及び分析することによって、蓋モードデータ146を決定する。蓋モードデータ146は、デバイス100がどのような姿勢になっているかに対応する。例えば、デバイス100がクラムシェル(例えば、ラップトップ)である場合、加速度計108は、蓋が完全に開いているか、完全に閉じているか、又は部分的に開いている/部分的に閉じていると決定するために使用することができる。デバイス100がタブレットである場合、デバイス状態コントローラ126は、タブレットの上側の蓋が上を向いているタブレットモードのような追加の蓋モード146を決定してもよい。
例示的なデバイス状態コントローラ126は、Wi-Fi116、ジャイロスコープ110、及び加速度計108から測定値を収集及び分析することによって、デバイス100の位置データ148を決定する。位置データ148は、デバイス100の位置及びデバイス100のユーザに対応する。例えば、デバイス状態コントローラ126は、デバイス100が自宅にあるか、仕事のために歩いているか、オフィスにいるかなどを決定する。
例示的なデバイス状態コントローラ126は、加速度計108及びジャイロスコープ110から測定値を収集及び分析することによって、デバイス100のデバイス動きデータ150を決定する。デバイス動きデータ150は、デバイス100の動き状態に対応する。例えば、デバイス状態コントローラ126は、デバイスが静止しているか、又は移動しているかを決定する。
例示的なデバイス状態コントローラ126は、上述の4つの状態コンテキストを決定することに限定されない。例えば、デバイス状態コントローラ126は、センサハブ102がデバイス100のユーザ意図を推論することを可能にする、及び/又は支援する追加の状態コンテキストを決定するために、センサ104のいずれか1つを操作することができる。例えば、デバイス状態コントローラ126は、デバイス100が典型的にユーザによって使用及び使用されない時間(例えば、日、時、分、秒など)を決定することができる。図1Aの例示的なデバイス状態コントローラ126は、決定するための手段を実装してもよい。決定手段は、少なくとも1つのプロセッサを含むハードウェアである。
図1Aでは、例示的なデバイスイベントコントローラ124は、センサ104の測定値に基づいてデバイス100のイベントコンテキストを決定する。例えば、デバイスイベントコントローラ124は、センサ104の複数のセンサタイプからの測定値に基づいて、配置移行152及びユーザ存在移行154を決定する。配置移行152及びユーザ存在移行154は、センサハブ102が、ウェイクトリガの可能なオーバーライドのためにユーザによって取られる任意の即時アクションにアクセスすることを可能にするように決定される。
例示的なデバイスイベントコントローラ124は、加速度計108、近接センサ112、及び周辺光センサ114からのセンサ測定値を収集及び分析することに基づいてデバイス100の配置移行152を決定する。配置移行152は、デバイス100の位置間の移行に対応する。例えば、デバイスイベントコントローラ124は、デバイス100が閉鎖領域(例えば、バッグ)から開放領域(例えば、デスク上)へ移動されるときに、配置移行152を開始、更新などをしてもよい。いくつかの例では、配置移行152は、バッグが位置間を移行するとき、及びどのタイプの移行が発生するかをスケジュールコントローラ138に通知するデータである。いくつかの例では、デバイスイベントコントローラ152は、配置移行152がスケジュールコントローラ138に提供されるときを制御する。例えば、デバイスイベントコントローラ152は、センサ測定値が配置移行を示すときに更新される、配置移行に対応するフラグ、インジケータなどをセットしてもよい。
例示的なデバイスイベントコントローラ124は、近接センサ112、周囲光センサ114、視覚センサ118、レーダセンサ120、及び/又は超音波センサ122からセンサ測定値を収集及び分析することに基づいて、ユーザ存在移行154を決定する。ユーザ存在移行154は、ユーザがデバイス100の近傍の位置とデバイス100から離れた位置との間で移行したかどうかに対応する。例えば、デバイス100とユーザとの間の閾値距離が、ユーザがデバイス100の近傍にいるかどうかを定義してもよい。閾値距離は、腕の長さ、センサ104(例えば、近接センサ112、レーダセンサ120、及び/又は超音波センサ122)がユーザを検出することができる範囲などに対応してもよい。いくつかの例では、デバイスイベントコントローラ124は、ユーザが現在存在している、デバイス100から離れる方向に最近移動してしまったなどをセンサ測定値が示すときに更新される、ユーザ存在移行154に対応するフラグ、インジケータなどを含む。図1Aの例示的なデバイスイベントコントローラ124は、決定するための手段を実装してもよい。決定手段は、少なくとも1つのプロセッサを含むハードウェアである。
図1Aでは、例示的なセンサハブ102は、デバイスイベントコントローラ124、デバイス状態コントローラ126、バッファ128、タイマ130、アソシエータ132、訓練コントローラ134、予測コントローラ136、スケジュールコントローラ138、ウェイクタイマ140、及びスタンバイ管理システム142間のフローラインを示す。実線のフローラインは、センサハブ102で発生する学習フェーズを表す。例えば、バッファ128、タイマ130、アソシエータ132、及び訓練コントローラ134によって実行される動作は、予測モデルを訓練するための学習及び/又は訓練フェーズにおいて発生する。点線フローラインは、センサハブ102で発生する推論フェーズを表す。例えば、予測コントローラ136、スケジュールコントローラ138、及びウェイクタイマ140によって実行される動作は、推論及び/又は予測フェーズにおいて発生する。
図1Aでは、例示的なセンサハブ102は、デバイス状態コントローラ126によって生成された状態コンテキストを記憶する例示的なバッファ128を含む。例えば、バッファ128は、ユーザ活動データ144、蓋モードデータ146、位置データ148、デバイス動きデータ150などを記憶する。いくつかの例では、バッファ128は、デバイス状態コントローラ126が更新されたコンテキストを決定するときに、更新された状態コンテキストを取得する。いくつかの例では、バッファ128は、複数のラッチ、キャッシュ、及び/又は任意の他のタイプの一時的な記憶デバイスによって実装される。いくつかの例では、バッファ128は、ヒストリカル状態コンテキストを記憶する。例えば、状態コンテキストは、それらがデバイス100の以前/過去の状態に対応するときに、ヒストリカルであるとみなされる。図1Aの例示的なバッファ128は、記憶するための手段を実装してもよい。記憶手段は、少なくとも1つのプロセッサを含むハードウェアである。
図1Aでは、例示的なセンサハブ102は、例示的なバッファ128に例示的なアソシエータ132に状態コンテキストを解放及び/又は提供するように通知する例示的なタイマ130を含む。例えば、タイマ130は、状態コンテキストを取得するバッファ128と、状態コンテキストを取得するアソシエータ132との間の期間を遅延させる。このような例では、状態コンテキストは、それらが関連付けられている後の時間で取り出された時に、ヒストリカルであるとみなすことができる。例えば、状態コンテキストは、それらが発生した日時に関連付けられる(例えば、ユーザ活動データ144は、月曜の朝の6:00にデバイス100のユーザが自転車に乗っていたことを示す)。例示的なタイマ130は、遅延(例えば、予め決定された時間)閾値が満たされるときに、状態コンテキスト及びそれらに関連付けられた時間をアソシエータ132に送信するように例示的なバッファ128に通知する。
図1Aでは、例示的なセンサハブ102は、状態コンテキストをOS状態と関連付ける及び/又は関連付けるための例示的なアソシエータ132を含む。例示的なアソシエータ132は、例示的なバッファ128から状態コンテキストが提供される、及び/又は取得し、例示的なスタンバイ管理システム142からOS状態を取得してもよい。例示的なアソシエータ132は、時間フレームにわたってヒストグラムを生成することによって、状態コンテキストとOS状態とを相関させる。例えば、アソシエータ132は、24時間、1週間などの期間にわたって、デバイス100の状態コンテキスト及びOS状態を収集及び関連付けする。1つ以上のヒストグラムの例が図1Bに示される。
図1Bを参照すると、例示的なアソシエータ132によって生成された例示的なヒストグラムが示されている。ヒストグラムは、条件付きコンテキスト(例えば、状態コンテキスト)OS状態の分布、及び2つのもの(例えば、条件付きOS状態)間の時間フレーム(例えば、24時間、1週間など)にわたる関連付けを反映するように生成され得る。図1Bの例は、例示的な状態コンテキストヒストグラム160、例示的なOS状態ヒストグラム162、及び例示的な関連付けヒストグラム164を含む。
例示的なアソシエータ132は、ある期間(例えば、24時間)にわたって収集される任意の数の状態コンテキストを表す例示的な状態コンテキストヒストグラム160を生成する。例えば、x軸は、状態コンテキストが収集される時間間隔(例えば、分、時など)を示す。いくつかの例では、x軸は、状態コンテキストがデバイス状態コントローラ126によって収集される時間tの反復を示す。例えば、状態コンテキストヒストグラム160のx軸によって示されるように、デバイス状態コントローラ126は、時間t、t+1、t+2、t+3、t+4、及びt+nでの状態コンテキストデータを収集し、nは、将来の時間ビンを表す。例示的な状態コンテキストヒストグラム160では、y軸は状態コンテキスト分布データの頻度を表す。例えば、各頻度レベルは、あるタイプの状態コンテキストデータの状態の発生回数(例えば、状態コンテキストデータのタイプが、ユーザ活動データ144であり、状態は、歩いているであり、ユーザが歩いていたことの発生回数は、特定の時間ビンにわたって10回である)に対応し得る。いくつかの例では、アソシエータ132は、各タイプの状態コンテキストデータ(例えば、ユーザ活動データ144、蓋モードデータ146、位置データ148、デバイス動きデータ150、及び/又はデバイス状態コントローラ126によって決定される任意の他のタイプの状態データ)を表すある数の状態コンテキストヒストグラム160を生成する。いくつかの例では、アソシエータ132は、期間毎(例えば、24時間)に状態コンテキストヒストグラム160を更新し(例えば、調整し)、及び/又は期間毎(例えば、24時間)に新しい状態コンテキストヒストグラム160を生成する。
例示的なアソシエータ132は、期間(例えば、24時間)にわたって収集されたオペレーティングシステムの状態を表す例示的なOS状態ヒストグラム162(histosstate)を生成する。例示的なOS状態ヒストグラムは、OS状態分布を表し、y軸は、収集された各OS状態の頻度(例えば、OS状態がアクティブ及び/又は非アクティブ状態にある発生回数)を示し、x軸は、OS状態が収集される時間間隔(例えば、分、時など)を示す。例えば、OS状態ヒストグラム162のy軸は、OS状態の頻度レベルを示し、頻度レベルは、オペレーティングシステムのステータスの発生回数に対応し得る(例えば、ステータスはアクティブであり、OSがアクティブである発生回数は、特定の時間ビンにわたって15回である)。いくつかの例では、x軸は、OS状態がアソシエータ132によって収集される時間t+Tpの反復を示す。例えば、OS状態ヒストグラム162のx軸によって示されるように、デバイス状態コントローラ126は、時間t+Tp、(t+1)+Tp、(t+2)+Tp、(t+3)+Tp、(t+4)+Tp、及び(t+n)+Tpでの状態コンテキストデータを収集し、nは、将来の時間ビンを表す。時間ビン幅は予測の時間粒度を決定し、これは、主に応答性とメモリリソース間のバランスをとる。いくつかの例では、アソシエータ132は、期間毎(例えば、24時間)にOS状態ヒストグラム162を更新し(例えば、調整し)、及び/又は期間毎(例えば、24時間)に新しいOS状態ヒストグラム162を生成する。
例示的なアソシエータ132は、期間にわたって状態コンテキストデータとOS状態との間の関連付けを表す例示的な関連付けヒストグラム164を生成する。例えば、アソシエータ132は、状態コンテキストヒストグラム160とOS状態ヒストグラム162とを組み合わせて、関連付けヒストグラム164を生成する。例示的な関連付けヒストグラム164は、状態コンテキストデータ(例えば、ユーザ活動データ144)対OS状態(例えば、アクティブ及び非アクティブ)の条件付き分布を表し、y軸は、各OS状態の下の各時間間隔(例えば、分、時など)に入るユーザ活動データ144の各状態の発生頻度を示し、x軸は、状態コンテキスト及びOS状態が収集され、関連付けられる(例えば、相関、関連、リンク、接続など)時間間隔(例えば、分、時など)を示す。例えば、y軸は、ユーザ活動データ144及びOS状態(例えば、時間tで歩いておりかつ時間t+Tpで非アクティブであり、時間t+2で座っておりかつ時間(t+2)+Tpでアクティブであり、時間t+4で車両に乗っておりかつ時間(t+4)+Tpで非アクティブであり、時間t+nで自転車に乗っておりかつ時間(t+n)+Tpで非アクティブであるなど)を表すある数の頻度ポイントを含んでもよい。例示的なアソシエータ132は、各状態コンテキストタイプ(例えば、蓋モードデータ146対OS状態、位置データ148対OS状態、デバイス動きデータ150対OS状態など)に対して関連付けヒストグラム164を生成してもよい。例えば、histactivity-vs-osstateは、時間t+TpでのOS状態によって条件付けられた時間tでのユーザ活動データ144の条件付き分布を表す関連付けヒストグラム164である。さらに別の例では、histlidmode-vs-osstateは、時間t+TpでのOS状態によって条件付けされた時間tでの蓋モードデータ146の状態の条件付き分布を表す関連付けヒストグラム164である。追加的及び/又は代替的に、アソシエータ132は、時間フレーム(例えば、1日、週、月、年など)にわたる状態コンテキスト及び対応するOS状態の組み合わせを表す単一の関連付けヒストグラム164を生成してもよい。いくつかの例では、アソシエータ132は、平日(例えば、月曜~金曜)に対応する関連付けヒストグラム164及び週末(例えば、土曜~日曜)に対応する関連付けヒストグラム164を生成してもよい。例えば、仕事スケジュール、自由時間、趣味等により、平日と週末で利用者の行動が異なることがある。
図1Aの例示的なアソシエータ132は、関連付けるための手段を実装してもよい。関連付け手段は、少なくとも1つのプロセッサを含むハードウェアである。
図1Aの例を参照すると、例示的なセンサハブ102は、例示的なデバイス100のユーザに対してパーソナライズされた予測モデルを段階的に学習し構築する例示的な訓練コントローラ134を含む。例示的な訓練コントローラ134は、例示的なアソシエータ132から情報を取得し、毎日、毎週、毎月、及び/又は毎年のユーザ行動パターンを識別する。例えば、訓練コントローラ134は、以前に関連付けられた状態コンテキスト及びOS状態などのユーザ行動に基づいて、OS状態の将来の状態を識別する。例示的な訓練コントローラ134は、決定された及び/又は識別されたユーザ行動パターンに基づいて予測モデルを生成する。生成されると、例示的な訓練コントローラ134は、予測モデルを公表する。このようにして、推論フェーズの例示的な予測コントローラ136は、将来のリアルタイム予測のために予測モデルにアクセスし、利用することができる。例示的な訓練コントローラ134は、図2に関連して以下にさらに詳細に記載される。図1Aの例示的な訓練コントローラ134は、生成するための手段を実装してもよい。生成手段は、少なくとも1つのプロセッサを含むハードウェアである。
図1Aでは、例示的なセンサハブ102は、ユーザが将来の時間でのデバイス100を使用する確率を予測(例えば、推定)する例示的な予測コントローラ136を含む。例えば、予測コントローラ136は、デバイス状態コントローラ126及び発行済み予測モデルからの情報に基づいて、OS状態がいつアクティブになるかを決定する。例示的な予測コントローラ136は、リアルタイムで動作し、これは、予測コントローラ136が、デバイス状態コントローラ126から現在の(例えば、最新の)状態コンテキストを取得し、そのコンテキストに基づいてOS状態を予測することを意味する。いくつかの例では、予測コントローラ136の出力は、ユーザが時間tでOSをアクティブ化する予定であること、しばらくの間OS状態をアクティブ化しない予定であることなどの表示及び/又は通知である。例示的な予測コントローラ136の出力は、例示的なスケジュールコントローラ138に提供される。例示的な予測コントローラ136は、図3に関連して以下にさらに詳細に記載される。図1Aの例示的な予測コントローラ136は、生成するための手段を実装してもよい。生成手段は、少なくとも1つのプロセッサを含むハードウェアである。図1Aでは、例示的なセンサハブ102は、予測コントローラ136の出力及び例示的なデバイスイベントコントローラ124からのイベントコンテキストに基づいて、動的ウェイク期間(例えば、スタンバイ管理システム142がホスト106のハードウェア及びソフトウェア構成要素に電力を供給する(例えば、アクティブにする)時間)を決定する例示的なスケジュールコントローラ138を含む。いくつかの例では、スケジュールコントローラ138は、デバイス100がアクティブになる前に、デバイス100に非アクティブ状態を脱出する準備をさせるウェイクイベントを開始することによって、デバイス100の電力消費を低減する。例えば、ウェイクイベントは、スタンバイ管理システム142に、電力消費を可能な限り少なくしながらデバイスを更新させて、スリープ状態(例えば、非アクティブ状態)からホスト106を完全にブート(例えば、アクティブに)するのに必要とされる最小電力を促進する。動的ウェイク期間(Tw)は、ユーザがデバイス100を使用する尤度(likelihood)とイベントコンテキストの組み合わせに基づいて決定される。ウェイク期間Twは、デバイス100の外部環境に基づいて変化し得るので、動的である。例示的なスケジュールコントローラ138は、イベントコンテキストを考慮して、OS状態に相関し得るデバイス100の任意の即時の移行を決定する。例えば、デバイス100がバッグから取り出されたことを示す配置移行152は、スケジュールコントローラ138に、OS状態がアクティブ化される可能性が高いことを通知する。いくつかの例では、スケジュールコントローラ138は、イベントコンテキストに基づいて予測コントローラ136の出力を無効にする。例えば、予測コントローラ136は、デバイス100が次の10分間アクティブ化されないことを示す表示を出力するが、デバイスイベントコントローラ124は、ユーザがデバイス100に接近したばかりであると決定する。このような例では、スケジュールコントローラ138は、イベントコンテキストにより、10分待つのではなく、ウェイク期間が迅速に発生するようにスケジュールする。図1Aでは、例示的なセンサハブ102は、ウェイク期間Twに基づいてウェイクイベントをトリガする例示的なウェイクタイマ140を含む。本明細書で使用される場合、ウェイクイベントは、スタンバイ管理システム142にホスト106のスリープ状態(例えば、非アクティブ、アイドルなど)を作業状態に移行させるイベントである。例示的なウェイクタイマ140は、ホスト106がウェイクする時間を指定する待機可能なタイマオブジェクトであってもよい。待機可能なタイマオブジェクトは、指定された時間(例えば、ウェイク期間Tw)が到着したときに状態が「シグナルされた」にセットされる同期オブジェクトである。例えば、ウェイクタイマ140は、スケジュールコントローラ138から「所定の時間」(例えば、ウェイク期間Tw)が提供される手動リセット、同期、又は周期タイマである。ウェイクタイマ140は、ウェイク期間Twが満了したときに、待機動作を完了する(例えば、待機条件が満たされると、トリガを送信する)。タイマがシグナルされるときに、ホスト106(例えば、プロセッサ)は、関連付けられた命令を処理するために実行しなければならない。
図1Aでは、例示的なセンサハブ102は、例示的なウェイクタイマ140がウェイクイベントをトリガしたときに、OS、及び/又はより一般的には、例示的なホスト106を非アクティブ状態からアクティブ状態に移行させるスタンバイ管理システム142を含む。例示的なスタンバイ管理システム142は、例示的なウェイクタイマ140によって開始される。例示的なスタンバイ管理システム142は、(受信した電子メールを同期する)電子メールアプリケーション、(イベントを更新する)カレンダーアプリケーション、(OSへの更新を同期する)スキャナなど、ホスト106の特定のアプリケーションを「ウェイクアップ」する動作を含む。このようにして、ユーザに、迅速に使用するために準備されたデバイス100が提供される。例示的なスタンバイ管理システム142は、センサハブ102及び例示的なホスト106に通信的に結合される。
例示的なセンサハブ102の提示的な訓練動作が以下に記載される。例示的なセンサ104は、例示的なデバイス100の外部環境を監視する。例示的なセンサ104は、デバイス100の外部環境を監視した結果に基づいて測定値を収集し、決定する。例示的なセンサ104は、例示的なデバイスイベントコントローラ124及び例示的なデバイス状態コントローラ126にセンサ測定を提供する。例示的なデバイス状態コントローラ126は、ユーザ活動データ144、蓋モードデータ146、位置データ148、及びデバイス動きデータ150の状態を決定する。
例えば、デバイス状態コントローラ126は、例示的な加速度計108からの測定値に基づいて、ユーザが歩いているか、走っているか、車両を用いて移動しているか、自転車に乗っているかなど(例えば、ユーザ活動データ144)を決定する。例えば、デバイス状態コントローラ126は、活動認識を利用して、加速度計データ(例えば、例示的な加速度計108から抽出され、センサハブ102のメモリに記憶されたデータ)から抽出された時間及び周波数領域の特徴を使用して分類問題を解くことに基づいて、ユーザ活動データ144を決定することができる。例示的なデバイス状態コントローラ126は、例示的な加速度計108からの測定値に基づいて、デバイス100の蓋が開いているか、閉じているか、クラムシェルであるかなど(例えば、蓋モードデータ146)を決定する。例えば、デバイス状態コントローラ126は、デバイス100がラップトップ又はタブレットである場合、ヒンジ角度を決定することに基づいて蓋モードデータ146を検出することができる。例えば、デバイス状態コントローラ126は、ヒンジ角度を決定するために蓋の各パネル上に配置された2つの加速度計から加速度計データを抽出することができる。
例示的なデバイス状態コントローラ126は、例示的なWi-Fi116、例示的なジャイロスコープ110、及び/又は全地球測位システム(GPS) (図示せず)からの測定値に基づいて、デバイス100が自宅、オフィス、道路など(例えば、位置データ148)にあるかを決定する。例えば、デバイス状態コントローラ126は、GPSが不正確な測定値を生成しているときに、歩行者自律航法(PDR、Pedestrian Dead Reckonig)を実装することができる。例えば、PDRは、経過時間にわたる速度及びコースの推定値を使用して、デバイス100の現在位置を決定する。例示的なデバイス状態コントローラ126は、加速度計108からの測定に基づいて、デバイス100が静止しているか、動いているかなど(例えば、装置の動きデータ150)を決定する。例えば、デバイス状態コントローラ126は、加速度計データから抽出された動き強度を監視することによってデバイス動き状態を検出することができる。
例示的なデバイス状態コントローラ126は、状態コンテキストの状態を例示的なバッファ128に出力する。例示的なバッファ128は、対応するタイムスタンプを有する状態コンテキストを記憶する。例えば、バッファ128は、タイムスタンプtを有する状態コンテキストを記憶する。タイムスタンプtは、状態コンテキストが発生する時間(例えば、センサ104が状態コンテキストに対応する測定値を収集した時間)に対応する。例示的なバッファ128は、ある期間(例えば、閾値期間、予め決定された期間など)にわたって状態コンテキストを記憶する。例示的なタイマ130は、バッファ128が時間tの状態コンテキストを記憶する期間を決定する。例えば、タイマ130は、バッファ128が状態コンテキストを追い出すのを遅らせる遅延として作用する。遅延の長さ(例えば、バッファ128が状態コンテキストを記憶する期間)は、ユーザアクションとOS状態がアクティブ化する時間との間の最大予測可能時間(Tp)によって決定される。最大予測可能時間Tpは、予測効率(例えば、デバイス100を準備し、準備が整えるための効率的な時間)と関連付けの有効性との間のバランスに基づいて決定される。関連付けの有効性は、OS状態と状態コンテキストの関連性に関係する。例えば、状態コンテキストは、短期間に発生するOS状態により関連性がある(より多くの相関がある)。
時間t後の期間が満たされるときに、例示的なバッファ128は、例示的なアソシエータ132に状態コンテキストを提供する。例えば、バッファ128は、時間t+Tpでアソシエータ132に状態コンテキストを提供する。状態コンテキストを取得することに応答して、例示的なアソシエータ132は、例示的なスタンバイ管理システム142にOS状態を問い合わせる。例えば、アソシエータ132は、時間t+Tpでのホスト106のOS状態を例示的なスタンバイ管理システム142に問い合わせる。別の例では、例示バッファ128は、時間tで状態コンテキストを取得した直後に、状態コンテキストを除去し、それらを例示的なアソシエータ132に割り当てる。このような例では、タイマ130は、アソシエータ132が状態コンテキストを取得したときに開始され、最大予測時間Tpにわたってアソシエータ132が待機管理システム142に問い合わせるのを遅らせる。例えば、アソシエータ132は、時間tで状態コンテキストを取得し、待機管理システム142からOS状態を取り出すために、最大予測可能期間Tp待機する。
例示的なアソシエータ132は、状態コンテキストをOS状態に関連付ける。例えば、アソシエータ132は、状態コンテキストの各々及び/又は状態コンテキストの組み合わせを、状態コンテキストの後の最大予測可能時間Tpで発生したOS状態と相関させる。
いくつかの例では、アソシエータ132は、1つ以上のヒストグラム(例えば、状態コンテキストヒストグラム160、OS状態ヒストグラム162、及び/又は関連付けヒストグラム164)を生成するために、相関をメモリに記憶する。例えば、メモリは、ユーザ行動パターン期間(例えば、1日、1週間など)にわたってアソシエータ132によって決定される相関を記憶する。アソシエータ132は、状態コンテキストヒストグラム160、OS状態ヒストグラム162、及び関連付けヒストグラム164を生成する。例えば、アソシエータ132は、ユーザ行動パターン期間にわたるOS状態の頻度及びユーザ活動データ144に対応する関連付けヒストグラム164、ユーザ行動パターン期間にわたるOS状態の頻度及び蓋モードデータ146に対応する関連付けヒストグラム164、ユーザ行動パターン期間にわたるOS状態の頻度及び位置データ148に対応する関連付けヒストグラム164、ユーザ行動パターン期間にわたるOS状態の頻度及びデバイス動きデータ150に対応する関連付けヒストグラム164、及び/又は、ユーザ行動パターン期間にわたるOS状態及び状態コンテキストの組み合わせに対応する関連付けヒストグラム164を生成する。
いくつかの例では、アソシエータ132は、複数のユーザ行動パターン期間に対応するヒストグラムを構築及び/又は生成する。例えば、第1のユーザ行動パターン期間は、月曜~金曜の就業週に対応し、第2のユーザ行動パターン期間は、土曜~日曜の週末に対応する。第1のユーザ行動パターン期間と第2のユーザ行動パターン期間は、ユーザが1週間で異なるルーチンを有し得るので、異なることがある。したがって、例示的な訓練コントローラ134には、ユーザの行動の正確な表現が提供され、ユーザの行動の正確な表現を含む異なる期間について異なるヒストグラムを生成することが有益である。
例示的な訓練コントローラ134は、例示的なアソシエータ132から関連付け及び/又はヒストグラムを取得し、確率を予測する予測モデルを訓練する。例えば、訓練コントローラ134は、ユーザが時間t+Tpでデバイス100を使用するかどうか、及び/又は現在の状態コンテキストが与えられたユーザが時間t+Tpでデバイス100を使用するかどうかを予測する。いくつかの例では、訓練コントローラ134は、確率の尤度を出力する予測モデルを訓練するものである。例えば、訓練コントローラ134は、時間t+TpでのOS状態が与えられた時間tにおける状態コンテキストを観察する尤度を出力する。例えば、予測モデルは、OS状態が時間t+Tpで非アクティブに等しいときに、ユーザ活動データ144が「自転車に乗っている」と等しくなる尤度を決定する。例示的な訓練コントローラ134は、図2に関連して以下にさらに詳細に記載される。
予測モデルによって生成される許容可能な誤差が満たされると例示的な訓練コントローラ134が決定するときに、例示的な訓練コントローラ134は、予測モデルを発行する。いくつかの例では、訓練コントローラ134は、ユーザの行動に関する新しい情報(例えば、状態コンテキスト、更新されたヒストグラムなど)が受信されるときに、モデルを周期的に更新し、再発行する。いくつかの例では、訓練動作は、許容可能な誤差が満たされるときに終了する。
図2を参照すると、予測モデルを生成する、図1の例示的な訓練コントローラのブロック図が示されている。例示的な訓練コントローラ134は、例示的な特徴抽出器202、例示的なモデル訓練器204、例示的なモデル更新器206、及び例示的なモデル生成器208を含む。
図2では、例示的な訓練コントローラ134は、例示的なアソシエータ132から関連付けデータを取り出すための問い合わせに基づいて特徴ベクトルを生成する特徴抽出器202を含む。例示的な特徴抽出器202は、訓練コントローラ134の訓練フェーズを容易にするために有益かつ非冗長である特徴ベクトル(例えば、ヒストグラム160、162、164における特徴を代表する)の導出値を生成するか、そうでなければ構築する。本明細書で使用される場合、特徴ベクトルは、何らかの状態コンテキスト、デバイス状態、測定パラメータ、時間などを表す特徴のn次元配列(例えば、ベクトル)である。例えば、特徴は、ユーザ活動データ144、蓋モードデータ146、位置データ148、デバイス動きデータ150などのデバイス100の状態コンテキストとすることができる。例示的な特徴抽出器202は、入力データ(例えば、アソシエータ132からのヒストグラム160、162、164)を、元の入力データを十分な完全性と正確率で記述しつつ、処理のためのより管理可能なグループ(例えば、特徴)に低減する。図2の示された例では、特徴抽出器202は、ユーザ行動パターンに対応するヒストグラムデータにおける特徴を識別する。特徴抽出器202によって提供される特徴データは、以前のユーザ行動に基づいてデバイス100の将来のOS状態を検出するためにモデルを訓練する際にモデル訓練器204を促進する。例えば、図1Aのアソシエータ132は、24時間全体にわたるデバイス100の状態コンテキスト及びOS状態に基づいてユーザ行動パターンを検出する。例示的な特徴抽出器202は、ユーザ行動パターンの条件ベクトルを抽出し、条件ベクトルをモデル訓練器404に提供する。条件ベクトルは、将来の時間でOSの状態が非アクティブとアクティブの間で移行させる特定の条件を表してもよい。例えば、条件ベクトルは、ユーザが座っているとき、デバイス100の蓋が開いているときに、OS状態がアクティブであることを示すことができる。他の例では、条件ベクトルは、ユーザがオフィスに位置し、時間が12:00pmであるときに、OS状態が30分以内にアクティブになることを示すことができる。条件ベクトルは、イベントコンテキストのように、デバイスの移行を即座に示すものではない。例えば、条件ベクトルは、時間tで発生する状態コンテキストと時間t+Tpで発生するOS状態(例えば、状態コンテキストの後の期間)との間の関連付けであるが、イベントコンテキストは、OSの即時アクティブ化又はOSの非アクティブ化を引き起こし得るデバイス100の即座の移行である。例示的な特徴抽出器202は、関連付けデータ(例えば、関連付けヒストグラム164)の特徴を抽出した後、特徴ベクトルを出力する。
図2では、例示的な訓練コントローラ134は、例示的な特徴抽出器202の出力特徴ベクトルに基づいて予測モデルを訓練する例示的なモデル訓練器204を含む。例示的なモデル訓練器204は、複数の関連付けデータを受信し、予測を生成し、その予測に基づいてモデルを出力する訓練モードにおいて動作する。例示的なモデル訓練器204は、モデルを生成するために、OS状態の予め決定された条件に対応する特徴ベクトルを受信する。例えば、訓練モード中、OS状態は既に決定されており、条件は、ヒストグラムのパターン(例えば、状態コンテキストヒストグラム160、OS状態ヒストグラム162、及び/又は、関連付けヒストグラム164)によって既に定義され、訓練コントローラ134に提供されるデータは、学習に好適であるようにする。例えば、モデル訓練器204は、状態コンテキスト及びOS状態の特徴を示す特徴ベクトルを受信し、状態コンテキスト及び結果として生じるOS状態における、状態コンテキスを将来のOSにマッピングするパターンを識別し、これらのパターンを捕捉するモデルを出力する。
いくつかの例では、モデル訓練器204は、将来のOS状態に関する出力確率及び予測を生成する単純ベイズ機能を実装する。単純化及び説明のために、ユーザ活動データ144及び蓋モードデータ146の2つのタイプの状態コンテキストのみが、単純ベイズ機能に関連して記載される。しかしながら、例示的なモデル訓練器204は、訓練のために各状態コンテキストタイプを利用してもよい。単純ベイズの関数では、異なるタイプの確率が推論される。例えば、モデル訓練器204は、事前確率、事後確率、及び尤度確率を決定してもよい。事前確率は、ランダムな事象又は不確実な命題などのパラメータθに対応し、事前確率は、任意の関連する証拠がp(θ)とみなされる前にパラメータに関して決定される条件なしの確率である。例えば、モデル訓練器204は、ユーザが時間t+Tp(例えば、OSがアクティブ状態)でデバイス100を使用する事前確率(P(O=active))を決定し、OS状態は、パラメータであり、確率は、OS状態がアクティブである時間である。この事前確率(P(O=active))は、OS状態ヒストグラム162(histosstate)から直接推定することができる。
事後確率は、証拠Xが与えられたパラメータθの確率(p(θ|X))である。例えば、モデル訓練器204は、時間tでの現在のコンテキスト状態(A:活動データ144及びL:蓋モードデータ146)が与えられたユーザが時間t+Tpでデバイス100を使用する事後確率P(O=active|A,L)を決定する。事後確率は、例示的なモデル訓練器204が予測することを学習する目標確率である。
尤度確率は、パラメータθが与えられた証拠Xの確率(p(θ|X))である。例えば、モデル訓練器204は、時間t+TpでのOS状態が与えられた時間tでのユーザ活動データ144の状態の尤度確率(P(A|O=active),P(A|O=inactive))を決定する。例示的なモデル訓練器204は、例示的な関連付けヒストグラム164(例えば、histactivity-vs-osstate)のうちの1つから、ユーザ活動データ144の状態の尤度確率(P(A|O=active),P(A|O=inactive))を直接推定することができる。別の例では、モデル訓練器204は、時間t+TpでのOS状態を与えられた時間tでの蓋モードデータ146の状態の尤度確率(P(L|O=active),P(L|O=inactive))を決定する。例示的なモデル訓練器204は、例示的な関連性ヒストグラム164(例えば、histlidmode-vs-osstate)のうちの1つから、蓋モードデータ146の状態の尤度確率(P(L|O=active),P(L|O=inactive))を直接推定することができる。
例示的なモデル訓練器204は、以下の例示的な式1を利用して、事後確率(P(O=active|A,L))を学習及び/又は他の方法で決定する。式1では、P(A,L)は、時間tでのユーザ活動データ144の状態(A)及び蓋モードデータ146の状態(L)の予測された事前確率に対応し、P(A,L|O=active)は、時間t+TpでのOS状態がアクティブであることが与えられた、時間tでのユーザ活動データ144の状態(A)及び蓋モードデータ146の状態(L)の尤度確率に対応する。
いくつかの例では、モデル訓練器204は、以下の例示的な式2を利用して、時間t+TpでのOS状態がアクティブであることが与えられた、時間tでのユーザ活動データ144の状態(A)及び蓋モードデータ146の状態(L)の尤度確率を決定する。
例示的なモデル訓練器204は、関連付けデータが与えられた事後確率を決定するモデルを訓練する。例示的なモデル訓練器204は、出力モデルを例示的な予測コントローラ136に提供して、意図されたOS状態が未知である新しい状態コンテキストに対する予測を生成するのを支援する。
図2では、例示的な訓練コントローラ134は、モデル訓練器204から受信されたモデルを新しい及び/又は更新されたものとしてフラグを立てる例示的なモデル更新器206を含む。例えば、モデル更新器206は、モデル訓練器204から、平日の状態コンテキストに対応するOS状態を検出する予測アルゴリズムを提供するモデルを受信することができる。例示的なモデル更新器406は、このタイプのモデルが新しいものであると決定し、それを新しいものとしてタグ付けする。代替的には、例示的なモデル更新器206は、このタイプのモデルが以前に生成されたていると決定し、更新されたものとして最も最近に生成されたモデルにフラグを立てる。例示的なモデル更新器206は、例示的なモデル生成器08に新しい及び/又は更新されたモデルを提供する。
図2では、例示的な訓練コントローラ134は、発行のためのモデルを生成する例示的なモデル生成器208を含む。例えば、図2のモデル生成器208は、モデル更新器206から、新しいモデル及び/又は更新されたモデルが訓練されたことの通知を受信してもよく、モデル生成器208は、モデルがファイルとして保存及び/又は記憶され得るようにモデルが発行されるファイルを作成してもよい。いくつかの例では、モデル生成器208は、モデルが変換及び発行される準備が整ったことの通知を予測コントローラ136に提供する。
図3を参照すると、図1Aの例示的な予測コントローラ136のブロック図が、リアルタイム(例えば、デバイス100が動作している時間及び/又は動作していない時間)で将来のOS状態の予測を生成するように示されている。例示的な予測コントローラ136は、例示的な特徴抽出器302と、例示的な推論生成器304と、例示的なOS状態検出器306とを含む。例示的な予測コントローラ136は、例示的なデバイス状態コントローラ126及び例示的な訓練コントローラ134と通信して、例示的なデバイス100のOS状態の検出を促進する。
図3では、例示的な予測コントローラ136は、生状態コンテキストの特徴を抽出し、かつ特徴ベクトルを生成して例示的な推論生成器304に提供する例示的な特徴抽出器302を含む。例えば、特徴抽出器302は、図2の特徴抽出器202と同様の方法で動作する。しかしながら、いくつかの例では、図3の特徴抽出器302は、関連付けデータが、後の期間でOS状態を図1Aのスタンバイ管理システム142に問い合わせることを必要とするので、関連付けデータの特徴を抽出せず、予測コントローラ136が、代わりに、待機するよりも後の時間でOS状態を予測及び/又は推測する。例示的な特徴抽出器302は、将来のOS状態にまだ関連付けられていない状態コンテキストのデータを抽出する。例えば、特徴抽出器302は、デバイス状態コントローラ126から状態コンテキストを受信し、状態コンテキストの特徴が、それぞれのOS状態に対応する可能な条件に合致することを決定してもよい。
図3では、例示的な訓練コントローラ136は、例示的な特徴抽出器302によって提供された特徴ベクトルに基づいて予測を生成する例示的なモデル推論生成器304を含む。例えば、推論生成器304は、図1及び図2の訓練コントローラ134によって訓練され、生成され、又は他の方法で発行されるモデルを利用することによって、OS状態が将来の時間に開始され、非アクティブ化されるなどの尤度を示す確率値を生成してもよい。例えば、デバイス状態コントローラ126は、デバイス100の外部環境のセンサデータ及び測定値を取り出してもよく、推論生成器304は、外部環境の状態コンテキストに基づいた訓練モデルを利用して、状態コンテキスト及び可能なOS状態の相関を決定し、OS状態が近い将来変化する予定である尤度を示す確率を出力する。例示的な推論生成器304は、例示的な訓練コントローラ134によって(例えば、周期的に)更新される。例示的な推論生成器304によって生成された予測値は、例示的なOS状態検出器306に提供される。
図3では、例示的な予測コントローラ136は、将来のOS状態が推論生成器304によって検出されたかどうかを決定する例示的なOS状態検出器306を含む。例えば、OS状態検出器306は、推論生成器304から、OS状態が変化する予定である尤度を示す確率値を受信する。例示的なOS状態検出器306は、確率値が将来のOS状態を十分に示すものであると決定した場合、フラグを生成する(例えば、ビットを1にセットし、ビットを0にクリアし、予測時間で「OS状態が検出された」値を記憶するなど)。例示的な予測コントローラ306は、図1Aの例示的なスケジュールコントローラ138にフラグを提供し、例示的なスケジュールコントローラ138に、OS状態がユーザによって開始されようとしていること、及び/又はユーザによって開始されようとしていないことを通知する。
図1Aの例示的なセンサハブ102に戻ると、例示的な訓練コントローラ134が発行されたモデルを例示的な予測コントローラ136に出力するときに、センサハブ102は推論動作に入る。例示的な予測コントローラ136は、例示的なデバイス状態コントローラ126から状態コンテキストを取得し、状態コンテキストから作製された予測に基づいてOS状態フラグを生成する。
スケジュールコントローラ138は、OS状態フラグを取得し、出力OS状態フラグに基づいてウェイク期間Twを生成する。いくつかの例では、スケジュールコントローラ138は、OS状態フラグが受信されたときに、デバイスイベントコントローラ124にイベントコンテキストを問い合わせる。例えば、スケジュールコントローラ138は、デバイスイベントコントローラ124からの配置移行152及び/又はユーザ存在移行154を要求する。問い合わせに応答して、例示的なデバイスイベントコントローラ124は、例示的なセンサ104からの測定及びデータに基づいて、配置移行152及びユーザ存在移行154を決定する。
例えば、デバイスイベントコントローラ124は、例示的な加速度計108、例示的な近接センサ112、及び/又は例示的な周囲光センサ114からの測定値に基づいて、デバイス100がバッグから取り外されているか、バッグ内に置かれているか、テーブル上に配置されているかなど(例えば、配置移行154)を決定する。例えば、デバイスイベントコントローラ124は、バッグ内とバッグ外の移動間の移行によって引き起こされる運動、光、及び近接性の変化を監視する。別の例では、デバイスイベントコントローラ124は、近接センサ112、視覚センサ118、レーダセンサ120、及び/又は超音波センサ122からの測定に基づいて、ユーザがデバイス100に近づいているか、デバイス100から離れる方向に移動しているか、デバイス100に位置しているか(例えば、ユーザ存在移行154)を決定する。例えば、デバイスイベントコントローラ124は、オブジェクト検出及び認識方法を利用して、長距離及び/又は短距離のユーザ存在を検出する。
例示的なスケジュールコントローラ138は、例示的なデバイスイベントコントローラ124からイベントコンテキストを取得し、イベントコンテキストとOS状態フラグとの組み合わせに基づいてウェイク期間Twを決定する。例えば、スケジュールコントローラ138は、OS状態フラグに基づいて、OS状態が30分以内にアクティブ化されることを決定してもよい。このような例では、スケジュールコントローラ138は、予測されたアクティブ化時間の5分前のウェイクトリガが有益であり得ることを決定してもよい。したがって、スケジュールコントローラ138は、ウェイク期間Twを25分にセットしてもよい。しかし、このような例では、移行が発生したことをイベントコンテキストが示す場合、例示的なスケジュールコントローラ138は、移行に基づいてウェイク期間Twを生成してもよい。例えば、ユーザが存在するときに、スケジュールコントローラ138は、25分のウェイク期間Twを無効にし、スタンバイ管理システム142へのウェイクトリガを即座に開始してもよい。このような例では、ユーザの存在は、ユーザがデバイス100を即座にアクティブ化する意図を示すので、スケジュールコントローラ138は、デバイス100をタイムリーに準備を整えさせる(例えば、電子メール、更新、カレンダーなどを同期させるためのアプリケーションをウェイクする)ように作用する。
スケジュールコントローラ138の例がウェイク期間Twをセットするときに、スケジュールコントローラ138は、例示的なウェイクタイマ140を開始する。例えば、ウェイクタイマ140は、ウェイク期間Twが完了するのを待機する(例えば、アクションを実行するのを25分待機する)。例示的なウェイクタイマ140がウェイク期間Twを完了すると、例示的なウェイクタイマ140は、例示的なスタンバイ管理システム142にウェイクイベントトリガを送信する。例示的なスタンバイ管理システム142は、例示的なデバイス100の同期、更新、準備のために、例示的なホスト106のハードウェア構成要素に十分な電力を供給するために、ウェイクモードに入る。
例示的なセンサハブ102の推論動作の例は、デバイス100の寿命にわたって連続的に繰り返される。推論動作は、例示的な予測コントローラ136が例示的な訓練コントローラ134から更新されたモデル及び/又は新しいモデルを取得するときに、周期的に及び/又は非周期的に更新される。時間の経過と共に、例示的な訓練コントローラ134がユーザの行動パターンを学習するにつれて、推論フェーズの精度は増加する。
図1Aのセンサハブ102を実装する例示的な方式が図1~図3に示されているが、図1~図3に示された要素、プロセス及び/又はデバイスのうちの1つ以上は、任意の他の方法で組み合わせ、分割、再配置、省略、除去及び/又は実装されてもよい。さらに、例示的なデバイスイベントコントローラ124、例示的なデバイス状態コントローラ126、例示的なバッファ128、例示的なタイマ130、例示的なアソシエータ132、例示的な訓練コントローラ134、例示的な予測コントローラ136、例示的なスケジュールコントローラ138、例示的なウェイクタイマ140、例示的な特徴抽出器202、例示的なモデル訓練器204、例示的なモデル更新器206、例示的なモデル生成器208、例示的な特徴抽出器302、例示的な推論生成器304、例示的なOS状態検出器306、及び/又はより一般的には、図1Aの例示的なセンサハブ102は、ハードウェア、ソフトウェア、ファームウェア、及び/又はハードウェア、ソフトウェア及び/又はファームウェアの任意の組み合わせによって実装されてもよい。したがって、例えば、例示的なデバイスイベントコントローラ124、例示的なデバイス状態コントローラ126、例示的なバッファ128、例示的なタイマ130、例示的なアソシエータ132、例示的な訓練コントローラ134、例示的な予測コントローラ136、例示的なスケジュールコントローラ138、例示的なウェイクタイマ140、例示的な特徴抽出器202、例示的なモデル訓練器204、例示的なモデル更新器206、例示的なモデル生成器208、例示的な特徴抽出器302、例示的な推論生成器304、例示的なOS状態検出器306、及び/又はより一般的には、図1Aの例示的なセンサハブ102のうちのいずれかは、1つ以上のアナログ又はデジタル回路、論理回路、プログラマブルプロセッサ、プログラマブルコントローラ、グラフィックス処理ユニット(GPU)、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、プログラマブル論理デバイス(PLD)及び/又はフィールドプログラマブル論理デバイス(FPLD)によって実装することができる。純粋にソフトウェア及び/又はファームウェアの実装をカバーするために本特許の装置又はシステムの請求項のいずれかを読むときに、例示的なデバイスイベントコントローラ124、例示的なデバイス状態コントローラ126、例示的なバッファ128、例示的なタイマ130、例示的なアソシエータ132、例示的な訓練コントローラ134、例示的な予測コントローラ136、例示的なスケジュールコントローラ138、例示的なウェイクタイマ140、例示的な特徴抽出器202、例示的なモデル訓練器204、例示的なモデル更新器206、例示的なモデル生成器208、例示的な特徴抽出器302、例示的な推論生成器304、及び/又は例示的なOS状態検出器306のうちの少なくとも1つは、ソフトウェア及び/又はファームウェアを含むメモリ、デジタル多用途ディスク(DVD)、コンパクトディスク(CD)、ブルーレイディスクなどの非一時的なコンピュータ可読記憶デバイス又は記憶ディスクを含むように、ここに明示的に定義される。さらに、図1Aの例示的なセンサハブ102は、図1~図3に示されたものに加えて、又はそれらの代わりに、1つ以上の要素、プロセス及び/又はデバイスを含んでもよく、及び/又は示された要素、プロセス及びデバイスのいずれか又は全てのうちの1つ以上を含んでもよい。本明細書で使用される場合、「通信している」という語句は、その変形を含めて、1つ以上の中間構成要素を介した直接通信及び/又は間接通信を包含し、直接的な物理的(例えば、有線)通信及び/又は常時通信を必要とせず、むしろ、周期的な間隔、スケジューリングされた間隔、非周期的な間隔、及び/又は1回限りのイベントにおける選択的通信を含む。
図1~図3のセンサハブ102を実装するための、例示的なハードウェアロジック、機械読取り可能命令、ハードウェア実施状態マシン、及び/又はそれらの任意の組み合わせを表すフローチャートが図4及び図5に示される。機械可読命令は、コンピュータプロセッサ及び/又はプロセッサ回路、例えば図6に関連して後述する例示的なプロセッサプラットフォーム600に示されるプロセッサ612による実行のための実行可能プログラムの1つ以上の実行可能プログラム又は一部分であってもよい。プログラムは、CD-ROM、フロッピーディスク、ハードドライブ、DVD、ブルーレイディスク、又はプロセッサ612に関連付けられたメモリなどの非一時的コンピュータ可読記憶媒体に記憶されたソフトウェアで実現されてもよいが、代替的に、プログラム全体及び/又はその一部分は、プロセッサ612以外のデバイスによって実行され、及び/又はファームウェア又は専用ハードウェアで実現されてもよい。さらに、例示的なプログラムは、図4及び図5に示すフローチャートを参照して記載されるが、例示的なセンサハブ102を実装する多くの他の方法が代替的に使用されてもよい。例えば、ブロックの実行順序を変更することができ、及び/又は説明したブロックのいくつかを変更、削除、又は組み合わせることができる。追加的又は代替的に、ブロックのいずれか又は全部は、ソフトウェア又はファームウェアを実行することなく対応する動作を実行するように構造化された1つ以上のハードウェア回路(例えば、離散及び/又は集積アナログ及び/又はデジタル回路、FPGA、ASIC、比較器、演算増幅器(op-amp)、論理回路など)によって実装されてもよい。プロセッサ回路は、異なるネットワーク位置に分配されていてもよく、及び/又は1つ以上のデバイス(例えば、単一機械のマルチコアプロセッサ、サーバラックに分配された複数のプロセッサなど)にローカルに分配されていてもよい。
本明細書で説明される機械可読命令は、圧縮フォーマット、暗号化フォーマット、フラグメント化フォーマット、コンパイルされたフォーマット、実行可能フォーマット、パッケージされたフォーマットなどのうちの1つ以上で記憶されてもよい。本明細書で説明される機械可読命令は、データ、又は機械実行可能な命令を作成、製造、及び/又は生成するために利用され得るデータ構造(例えば、命令の部分、コード、コードの表現など)として記憶されてもよい。例えば、機械可読命令は、フラグメント化され、ネットワーク又はネットワークの集合(例えば、クラウド、エッジデバイスなど)の同じ又は異なる位置に配置された1つ以上の記憶デバイス及び/又は計算デバイス(例えば、サーバ)に記憶されてもよい。機械可読命令は、コンピューティングデバイス及び/又は他の機械によって直接可読、解釈可能、及び/又は実行可能にするために、インストール、修正、適応、更新、組み合わせ、補足、設定、復号、解凍、アンパッキング、分配、再割り当て、コンパイルなどの1つ以上を必要としてもよい。例えば、機械可読命令は、個別に圧縮され、暗号化され、別々の計算デバイスに記憶される複数の部分に記憶されてもよく、この部分は、復号化され、解凍され、組み合わされたときに、一緒に本明細書に説明されたようなプログラムを形成することができる1つ以上の機能を実装する実行可能命令のセットを形成する。
別の例では、機械可読命令は、それらがプロセッサ回路によって読み出され得る状態で記憶されてもよいが、特定の計算デバイス又は他のデバイス上で命令を実行するために、ライブラリ(例えば、ダイナミックリンクライブラリ(DLL))、ソフトウェア開発キット(SDK)、アプリケーションプログラミングインターフェース(API)などの追加を必要としてもよい。別の例では、機械可読命令(例えば、記憶された設定、データ入力、記録されたネットワークアドレスなど)が、機械可読命令及び/又は対応するプログラムが、全体的に又は部分的に実行され得る前に、設定される必要があってもよい。したがって、本明細書で使用される機械可読媒体は、機械可読命令及び/又はプログラムを、機械可読命令及び/又はプログラムの特定のフォーマット又は状態にかかわらず、静止時又は輸送中に記憶されるか、又はそうでないときに含むことができる。
本明細書で説明される機械可読命令は、過去、現在、又は将来の命令言語、スクリプト言語、プログラミング言語などによって表すことができる。例えば、機械可読命令は、C、C++、Java、C#、Perl、Python、JavaScript、HTML(HyperText Markup Language)、SQL(Structured Query Language)、Swiftなどの言語のいずれかを使用して表わされてもよい。
上述したように、図4及び図5の例示的なプロセスは、ハードディスクドライブ、フラッシュメモリ、リードオンリーメモリ、コンパクトディスク、デジタル多用途ディスク、キャッシュ、ランダムアクセスメモリ、及び/又は任意の他の記憶デバイスもしくは記憶ディスクのような非一時的なコンピュータ及び/又は機械可読媒体に記憶された実行可能な命令(例えば、コンピュータ及び/又は機械可読命令)を使用して実装されてもよく、これらの記憶デバイス又は記憶ディスクには、情報が任意の持続時間(例えば、長期間、永久、短時間、短い瞬間、一時的にバッファ、及び/又は情報のキャッシュ)記憶される。本明細書で使用される場合、用語の非一時的コンピュータ可読媒体は、任意のタイプのコンピュータ可読記憶デバイス及び/又は記憶ディスクを含み、伝搬信号を排除し、伝送媒体を排除するように明確に定義される。
本明細書では、「含む(including)」及び「備える(comprising)」(及びそのすべての形式及び時制)は、オープンエンドの用語であるように使用される。したがって、請求項が「含む(include)」又は「備える(comprise)」(例えば、comprises、includes、comprising、including、havingなど)の任意の形式をプリアンブルとして、又は任意の種類のクレーム記載内で用いる場合、対応するクレーム又は記載の範囲外に該当することなく、追加の要素、用語などが存在してもよいと理解されるべきである。本明細書において使用される場合、例えば、請求項のプリアンブルにおける移行句として「少なくとも」という語句が使用されるときに、それは、「含む」及び「備える」という語句がオープンエンドであるのと同様に、オープンエンドである。「及び/又は」という用語は、例えば、A、B、及び/又はCなどの形式で使用されるときに、A、B、Cの任意の組み合せ又はサブセットを指し、例えば、(1)A単独、(2)B単独、(3)C単独、(4)AとB、(5)AとC、(6)BとC、及び(7)AとBとCである。構造、構成要素、項目、対象及び/又は物品を記載するコンテキストにおいて使用される場合、「A及びBのうちの少なくとも1つ」という語句は、(1)少なくとも1つのA、(2)少なくとも1つのB、及び(3)少なくとも1つのAと少なくとも1つのBのうちのいずれかを含む実装を指すことが意図される。同様に、本明細書において、構造、構成要素、アイテム、オブジェクト、及び/又は物品を説明する文脈で使用される場合、「A又はBの少なくとも1つ」という語句は、(1)少なくとも1つのA、(2)少なくとも1つのB、及び(3)少なくとも1つのA及び少なくとも1つのBのいずれかを含む実装を指すことを意図している。本明細書において、プロセス、命令、アクション、活動、及び/又はステップの性能又は実行を説明する文脈で使用されるように、「A及びBの少なくとも1つ」という語句は、(1)少なくとも1つのA、(2)少なくとも1つのB、及び(3)少なくとも1つのAと少なくとも1つのBのいずれかを含む実装を指すことを意図している。同様に、本明細書において、プロセス、命令、アクション、活動、及び/又はステップの実行又は実行を記述する文脈で使用されるように、「A又はBのうちの少なくとも1つ」という語句は、(1)少なくとも1つのA、(2)少なくとも1つのB、及び(3)少なくとも1つのAと少なくとも1つのBのいずれかを含む実装を指すことを意図している。
本明細書において使用される場合、単数形の参照(例えば、「a」、「an」、「第1」、「第2」など)は、複数を除外しない。本明細書において使用される場合、「a」又は「an」エンティティは、そのエンティティのうちの1つ以上を指す。「a」(又は「an」)、「1つ以上」、及び「少なくとも1つ」という用語は、本明細書において互換的に使用することができる。さらに、個々に列挙されているが、複数の手段、要素、又は方法アクションは、例えば、単一のユニット又はプロセッサによって実装されてもよい。さらに、個々の特徴は、異なる例又は請求項に含まれてもよいが、これらは、組み合わされ得るものであり、異なる例又は請求項に含まれることは、特徴の組み合わせが実行不可能及び/又は有利であることを示唆しない。
図4は、(例えば、状態コンテキストに基づいて)図1Aの例示的なデバイス100の将来のOS状態を予測する1つ以上のモデルを訓練する、図1Aの例示的なセンサハブ102の例示的な訓練動作400を示す。ブロック402において、図1Aの例示的なデバイス状態コントローラ126は、センサデータを収集する。例えば、デバイス状態コントローラ126は、図1Aの例示的なセンサ104から測定値及び情報を取得する。
例示的なデバイス状態コントローラ126は、(例えば、第1、第2、第3、及び第4の)時間tで状態コンテキストを決定する(ブロック404)。例えば、デバイス状態コントローラ126は、センサ104から取得された測定値に基づいて、時間tでのユーザ活動データ144、時間tでの蓋モードデータ146、時間tでの位置データ148、及び時間tでのデバイス動きデータ150を決定する。例示的なデバイス状態コントローラ126は、状態コンテキストをヒストリコンテキストとしてバッファ128に記憶する(ブロック406)。例えば、バッファ128に記憶された任意のデータは、後の期間(Tp)で利用及び/又は取り出され、かくして、データをヒストリカルにする。
例示的なタイマ130は、Tp秒遅延させる(ブロック408)。例えば、タイマ130は、最大予測可能時間Tpにカウントし、最大予測可能時間は、図1Aのアソシエータ132が状態コンテキストを取得するのを遅延させる。次いで、例示的なアソシエータ132は、状態コンテキストを取得する(ブロック410)。例えば、アソシエータ132が、タイマ130が遅延を完了したことに応答して、バッファ128に状態コンテキストを問い合わせるか、又はバッファ128が、タイマ130が遅延を完了したことに応答して、状態コンテキストを解放する。
例示的なアソシエータ132は、時間t+Tpでのオペレーティングシステム状態を取得する(ブロック412)。例えば、アソシエータ132は、オペレーティングシステムの状態(例えば、アクティブ、非アクティブなど)をホスト106及び/又はスタンバイ管理システム142に問い合わせる。時間t+TpでのOS状態を取得すると、例示的なアソシエータ132は、時間tで収集されたヒストリコンテキストにOS状態を関連付ける(ブロック414)。例えば、アソシエータ132は、時間tの状態コンテキストが時間t+TpでのOS状態に対応することを示す条件(condition)を記憶する。そのような例では、アソシエータ132は、条件を表す1つ以上のヒストグラム(例えば、160、162、164)を生成し、ヒストグラム(例えば、160、162、164)を例示的な訓練コントローラ134に出力する。
例示的な訓練コントローラ134は、関連付けデータに基づいて将来のOS状態を予測するモデルを訓練する(ブロック414)。例えば、訓練コントローラ134は、状態コンテキスト及び将来のOS状態に対応するヒストグラム(例えば、関連付けデータ)から特徴を抽出して、特徴ベクトルを生成し、次いで、特徴ベクトルにおいて識別されるパターンを表すモデルを訓練及び/又は構築する。いくつかの例では、訓練コントローラ134及び/又はより具体的には、モデル訓練器204は、状態コンテキストを考慮した将来のOS状態の事後確率を決定するために状態コンテキストを利用する。例えば、訓練コントローラ134は、将来のOS状態の事後確率を決定するために、上記の式1~3を利用する。いくつかの例では、確率はユーザ行動のパターンに対応する。例えば、パターンは、1つ以上の期間(例えば、24時間、5日、7日など)にわたるユーザ行動パターンに対応する。例えば、パターンは、ユーザが一日のうちの何時にOSをアクティブにする、ユーザがデバイス100を使用しているときと使用していないときでユーザが何をしているのか、デバイス100がアクティブにされるときと非アクティブにされるときでどこに位置しているかなどを表す。
訓練コントローラ134の例は、モデルの訓練を継続するかどうかを決定する(ブロック418)。例えば、訓練コントローラ134は、十分なエラーが達成されたか(例えば、しきい値エラーメトリックが満たされる)どうか、新しい関連付けデータを取得する必要があるかどうかなどを決定する。いくつかの例では、訓練コントローラ134は、将来のOS状態の事後確率を生成し、その確率がOSの既知の状態と一致するかどうかを決定する。例えば、訓練コントローラ134は、事後確率が既知の状態からの許容可能なエラーの内にある場合に、一致を決定する。例示的な訓練コントローラ134が、訓練が継続されるべきであると決定する場合(例えば、ブロック418が値YESを返す)、制御は、ブロック402に戻る。
例示的な訓練コントローラ134が、訓練が継続されるべきではないと決定する場合(例えば、ブロック418が値NOを返す)、例示的な訓練コントローラは、予測モデルを生成する(ブロック420)。例えば、図2のモデル生成器208は、モデル更新器206から、新しいモデル及び/又は更新されたモデルが訓練されたことの通知を受信することができ、モデル生成器208は予測モデルを含むファイルを作成してもよい。
例示的な訓練コントローラ134は、予測モデルを発行する(ブロック422)。例えば、モデル生成器208は、予測モデルがファイルとして保存及び/又は記憶され得るように、予測モデルが発行されるファイルを作成する。いくつかの例では、モデル生成器208は、1つ以上のモデルが変換及び発行される準備が整ったことの通知を予測コントローラ136に提供する。
例示的な訓練動作400は、モデルが発行されたときに終了するが、予測モデルが新しい関連付けデータから新たに識別されたパターンで更新されるときに繰り返されてもよい。
図5を参照すると、例示的な推論演算500は、OS状態をリアルタイムで予測し、予測に基づいて適切なウェイク期間を生成するように示されている。ブロック502において、例示的なデバイス状態コントローラ126は、第1のセットのセンサデータを収集する。例えば、デバイス状態コントローラ126は、状態コンテキスト(例えば、ユーザ活動データ144、蓋モードデータ146、位置データ148、及びデバイス動きデータ150)に対応するセンサ104から測定値を収集する。
例示的なデバイス状態コントローラ126は、第1のセットのセンサデータに基づいてデバイス100の(例えば、第1、第2、第3、及び第4の)状態コンテキストを決定する(ブロック504)。例えば、デバイス状態コントローラ126は、複数のセンサ測定値に基づいて、ユーザ活動データ144の状態、蓋モードデータ146の状態、デバイス位置データ148の状態、及びデバイス動きデータ150の状態を識別する。例示的なデバイス状態コントローラ126は、状態コンテキストを例示的な予測コントローラ136に出力する。
例示的な予測コントローラ136は、状態コンテキストに基づいてオペレーティングシステム状態の確率を決定する(ブロック506)。例えば、予測コントローラ136は、予測モデルを利用して、状態コンテキストに基づいて将来のOS状態を識別する。このような例では、図3の特徴抽出器302は、状態コンテキストから特徴を抽出して、条件を示す特徴ベクトルを生成し、図3の推論生成器304は、特徴ベクトルに基づいて特定の時間にOS状態がアクティブ及び/又は非アクティブである尤度を生成する。
例示的な予測コントローラ136は、予測モデルを発行する(ブロック510)。例えば、予測コントローラ136は、尤度及び確率を図1Aのスケジュールコントローラ138に提供する。例示的なスケジュールコントローラ138は、例示的なデバイスイベントコントローラ124を開始する(ブロック512)。例えば、スケジュールコントローラ138は、予測を取得することに応答して、例示的なデバイスイベントコントローラ124を開始する。例として、デバイスイベントコントローラ124は、第2のセットのセンサデータを収集する(ブロック514)。例えば、デバイスイベントコントローラ124は、デバイス100の環境のイベント及び/又は移行に対応するセンサ104から測定値を収集する。
例示的なデバイスイベントコントローラ124は、第2のセットのセンサデータに基づいて、(例えば、第1及び第2の)イベントコンテキストを決定する(ブロック516)。例えば、デバイスイベントコントローラ124は、第2のセットのセンサデータに基づいて、ユーザ存在152のステータス及び配置移行154のステータスを決定する。第2のセットのセンサデータは、例示的なセンサ104のうちの任意のものであり得る。例示的なデバイスイベントコントローラ124は、イベントコンテキストを出力する(ブロック518)。例えば、デバイスイベントコントローラ124は、ユーザ存在152及び配置移行154の現在のステータスをスケジュールコントローラ138に提供する。
例示的なスケジュールコントローラ138は、予測及びイベントコンテキストに基づいてウェイク期間を決定する(ブロック520)。例えば、スケジュールコントローラ138は、予測及びイベントコンテキストに基づいてウェイクイベントをトリガするために、現在の時間からの時間の長さを決定する。このような例では、スケジュールコントローラ138は、予測を分析して、OS状態が所定の時間内にユーザによってアクティブ化されるかどうかを決定し、追加的にイベントコンテキストを分析して、予測の無効化が発生するかどうかを決定する。スケジュールコントローラ138は、ウェイク期間Twをセットし、図1Aのウェイクタイマ140にウェイク期間Twを開始(例えば、セット)するように通知する。
例示的なウェイクタイマ140は、ウェイク期間に基づいてウェイクイベントをトリガする(ブロック522)。例えば、ウェイクタイマ140は、ウェイク期間Twによって示される時間に、図1Aの待機管理システム142にウェイクイベントを送信する。ウェイクイベントにより、例示的なスタンバイ管理システム142は、ユーザによる使用のためにデバイス100に準備を整えさせるために十分な電力をホスト106に供給する。
例示的なセンサハブ102及び/又はより具体的には、例示的な予測コントローラ136は、動作を継続するかどうかを決定する(ブロック524)。例えば、予測コントローラ136は、新しいセンサ読み取り値が提供されるかどうか、デバイス状態コントローラ126が新しい状態コンテキストを生成したかどうかなどを決定する。例示的な予測コントローラ136が、動作が継続されるべきであると決定する場合(例えば、ブロック524が値YESを返す)、制御は、ブロック502に戻る。例示的な予測コントローラ136が、動作が継続されるべきであると決定する場合(例えば、ブロック524が値NOを返す)、制御は、ブロック500に戻る。例示的な推論動作500は、新しい予測モデルが取得されたとき、新しいセンサ読み取り値が取得されたとき、新しい状態コンテキストが生成されたときなどに繰り返されてもよい。
図6は、図1~図3のセンサハブ102を実装するために、図4及び図5の命令を実行するように構造化された例示的なプロセッサプラットフォーム600のブロック図である。プロセッサプラットフォーム600は、例えば、サーバ、パーソナルコンピュータ、ワークステーション、自己学習マシン(例えば、ニューラルネットワーク)、モバイルデバイス(例えば、携帯電話、スマートフォン、iPad(登録商標)のようなタブレット)、インターネットアプライアンス、ゲームコンソール、又は任意の他のタイプのコンピューティングデバイスとすることができる。
示された例のプロセッサプラットフォーム600は、プロセッサ612を含む。示された例のプロセッサ612は、ハードウェアである。例えば、プロセッサ612は、1つ以上の集積回路、論理回路、マイクロプロセッサ、GPU、DSP、又は任意の所望のファミリー又は製造業者のコントローラによって実装することができる。ハードウェアプロセッサは、半導体ベース(例えば、シリコンベース)デバイスであってもよい。この例では、プロセッサは、例示的なセンサハブ102、例示的なホスト106、例示的なデバイスイベントコントローラ124、例示的なデバイス状態コントローラ126、例示的なバッファ128、例示的なタイマ130、例示的なアソシエータ132、例示的な訓練コントローラ134、例示的な予測コントローラ136、例示的なスケジュールコントローラ138、例示的なウェイクタイマ140、及び例示的なスタンバイ管理システム142を実装する。
示された例のプロセッサ612は、ローカルメモリ613(例えば、キャッシュ)を含む。示された例のプロセッサ612は、バス618を介して、揮発性メモリ614及び不揮発性メモリ616を含むメインメモリと通信している。揮発性メモリ614は、SDRAM(Synchronous Dynamic Random Access Memory)、DRAM(Dynamic Random Access Memory)、RDRAM(登録商標)(RAMBUS(登録商標)Dynamic Random Access Memory)、及び/又は任意の他のタイプのランダムアクセスメモリデバイスによって実装されてもよい。不揮発性メモリ616は、フラッシュメモリ及び/又は任意の他の所望のタイプのメモリデバイスによって実装されてもよい。メインメモリ614、616へのアクセスは、メモリコントローラによって制御される。
示された例のプロセッサプラットフォーム600は、インターフェース回路620も含む。インターフェース回路620は、Ethernet(登録商標)インターフェース、ユニバーサルシリアルバス(USB)、Bluetooth(登録商標)インターフェース、近接場通信(NFC)インターフェース、及び/又はPCIエクスプレスインターフェースなど、任意のタイプのインターフェース規格によって実装されてもよい。
示された例では、1つ以上の入力デバイス622が、インターフェース回路620に接続される。入力デバイス622は、ユーザがデータ及び/又はコマンドをプロセッサ612に入力することを可能にする。入力デバイスは、例えば、オーディオセンサ、マイクロホン、カメラ(スチル又はビデオ)、キーボード、ボタン、マウス、タッチスクリーン、トラックパッド、トラックボール、アイソポイント、音声認識システム、例示的な加速度計108、例示的なジャイロスコープ110、例示的な近接センサ112、例示的な周囲光114、例示的なWi-Fi(登録商標)116、例示的な視覚センサ118、例示的なレーダセンサ120、及び/又は例示的な超音波センサ122によって実装することができる。
また、1つ以上の出力デバイス624はまた、示される例のインターフェース回路620に接続される。出力デバイス624は、例えば、ディスプレイデバイス(例えば、発光ダイオード(LED)、有機発光ダイオード(OLED)、液晶ディスプレイ(LCD)、陰極線管ディスプレイ(CRT)、インプレイススイッチング(IPS)ディスプレイ、タッチスクリーンなど)によって実装され得る。したがって、示された例のインターフェース回路620は、典型的には、グラフィックドライバカード、グラフィックドライバチップ、及び/又はグラフィックドライバプロセッサを含む。
示された例のインターフェース回路620は、ネットワーク626を介して外部マシン(例えば、任意の種類の計算デバイス)とデータの交換を容易にするために、送信機、受信機、トランシーバ、モデム、住宅ゲートウェイ、無線アクセスポイント、及び/又はネットワークインターフェースなどの通信デバイスも含む。通信は、例えば、イーサネット接続、デジタル加入者回線(DSL)接続、電話回線接続、同軸ケーブルシステム、衛星システム、ラインオブサイト無線システム、セルラー電話システムなどを介することができる。
示された例のプロセッサプラットフォーム600は、ソフトウェア及び/又はデータを記憶するための1つ以上の大容量記憶デバイス628も含む。そのような大容量記憶デバイス628の例は、フロッピーディスクドライブ、ハードドライブディスク、コンパクトディスクドライブ、ブルーレイディスクドライブ、RAID(redundant array of independent disks)、及びデジタル多用途ディスク(DVD)ドライブを含む。
図4及び/又は図5の機械実行可能命令632は、大容量記憶デバイス628内、揮発性メモリ614内、不揮発性メモリ616内、及び/又はCD又はDVDなどのリムーバブル非一時的なコンピュータ可読記憶媒体に記憶されてもよい。
前述から、状態及びイベントのコンテキストに基づいて、ユーザのためにデバイスをウェイクし、準備を整えるための異なる時間を決定する例示的な方法、装置、システム、及び製造物品が開示されていると理解されるであろう。本明細書に開示されている開示された方法、装置、システム、及び製造物品は、電力消費を節約する努力の中でコンピューティングデバイスにアクティブ化させる不必要なウェイクイベントを低減することによって、コンピューティングデバイスを使用する効率を改善する。したがって、開示された方法、装置、及び製造物品は、コンピュータの機能における1つ以上の改善を目的とする。
コンピューティングシステムにおけるウェイクパターンを動的にスケジュールするための例示的な方法、装置、システム、及び製造物品が本明細書に開示される。さらなる例及びそれらの組み合わせは、以下を含む。
例1は、第1の時間に収集されたセンサ測定値に基づいてデバイスのコンテキストを決定するデバイス状態コントローラと、デバイスのコンテキストにオペレーティングシステムの状態を関連付けるアソシエータであって、状態は、第1の時間の後の第2の時間に取得される、アソシエータと、関連付けに基づいて予測モデルを生成する訓練コントローラであって、予測モデルは、コンテキストに基づいてオペレーティングシステムの状態がアクティブになる第3の時間を予測する、訓練コントローラと、第3の時間より前にウェイクイベントをトリガすることによって、デバイスの電力消費を低減するスケジュールコントローラであって、ウェイクイベントは、デバイスに非アクティブ状態を脱出する準備をさせる、スケジュールコントローラと、を含む、装置を含む。
例2は、例1の装置を含み、デバイス状態コントローラは、センサ測定値に基づくデバイスの蓋モードに対応するセンサ測定値、センサ測定値に基づくデバイスの位置、及びセンサ測定値に基づくデバイスの動きに基づいて、デバイスのユーザの活動を決定する。
例3は、例1の装置を含み、コンテキストを予め決定された期間にわたって記憶するバッファをさらに含み、予め決定された期間は、最大予測可能時間に対応する。
例4は、例3の装置を含み、最大予測可能時間は、センサ測定値の第1の時間とオペレーティングシステムの状態の第2の時間との間の期間に対応する。
例5は、例1の装置を含み、アソシエータは、ある期間にわたる第1の時間ビンにおけるコンテキストの頻度に対応する第1のヒストグラム、期間にわたる第2の時間ビンにおけるオペレーティングシステムの状態の頻度に対応する第2のヒストグラム、及び期間全体にわたる第1の時間ビンにおけるコンテキストの頻度と第2の時間ビンにおけるオペレーティングシステムの状態の頻度との間の関連性に対応する第3のヒストグラムを生成する。
例6は、例5の装置を含み、訓練コントローラは、第1のヒストグラム、第2のヒストグラム、及び第3のヒストグラムから、期間全体にわたるオペレーティングシステムの非アクティブ状態及びアクティブ状態に関する予測を導出する。
例7は、例1の装置を含み、アソシエータは、コンテキストを取得することに応答して、オペレーティングシステムの状態をスタンバイ管理システムに問い合わせ、問い合わせは、コンテキストの第1の時間の後の予め決定された期間に発生する。
例8は、命令を含む少なくとも1つの非一時的なコンピュータ可読記憶媒体であって、命令は、実行されるときに、1つ以上のプロセッサに、少なくとも、第1の時間に収集されたセンサ測定値に基づいてデバイスのコンテキストを決定することと、デバイスのコンテキストにオペレーティングシステムの状態を関連付けることであって、状態は、第1の時間の後の第2の時間に取得される、ことと、関連付けに基づいて予測モデルを生成することであって、予測モデルは、コンテキストに基づいてオペレーティングシステムの状態がアクティブになる第3の時間を予測する、ことと、第3の時間より前にウェイクイベントをトリガすることによって、デバイスの電力消費を低減することであって、ウェイクイベントは、デバイスに非アクティブ状態を脱出する準備をさせる、ことと、を行わせる、非一時的なコンピュータ可読記憶媒体を含む。
例9は、例8に記載の非一時的なコンピュータ可読記憶媒体を含み、命令は、実行されるときに、1つ以上のプロセッサに、センサ測定値に基づくデバイスの蓋モードに対応するセンサ測定値、センサ測定値に基づくデバイスの位置、及びセンサ測定値に基づくデバイスの動きに基づいて、デバイスのユーザの活動を決定することを行わせる。
例10は、例8に記載の非一時的なコンピュータ可読記憶媒体を含み、命令は、実行されるときに、1つ以上のプロセッサに、コンテキストを予め決定された期間にわたって記憶することであって、予め決定された期間は、最大予測可能時間に対応する、ことを行わせる。
例11は、例8に記載の非一時的なコンピュータ可読記憶媒体を含み、命令は、実行されるときに、1つ以上のプロセッサに、ある期間にわたる第1の時間ビンにおけるコンテキストの頻度に対応する第1のヒストグラム、期間にわたる第2の時間ビンにおけるオペレーティングシステムの状態の頻度に対応する第2のヒストグラム、及び期間全体にわたる第1の時間ビンにおけるコンテキストの頻度と第2の時間ビンにおけるオペレーティングシステムの状態の頻度との間の関連性に対応する第3のヒストグラムを生成することを行わせる。
例12は、例11に記載の非一時的なコンピュータ可読記憶媒体を含み、命令は、実行されるときに、1つ以上のプロセッサに、第1のヒストグラム、第2のヒストグラム、及び第3のヒストグラムから、期間全体にわたるオペレーティングシステムの非アクティブ状態及びアクティブ状態に関する予測を導出することを行わせる。
例13は、例8に記載の非一時的なコンピュータ可読記憶媒体を含み、命令は、実行されるときに、1つ以上のプロセッサに、コンテキストを取得することに応答して、オペレーティングシステムの状態をスタンバイ管理システムに問い合わせることであって、問い合わせは、コンテキストの第1の時間の後の予め決定された期間に発生する、ことを行わせる。
例14は、第1の時間に収集されたセンサ測定値に基づいてデバイスのコンテキストを決定することと、デバイスのコンテキストにオペレーティングシステムの状態を関連付けることであって、状態は、第1の時間の後の第2の時間に取得される、ことと、関連付けに基づいて予測モデルを生成することであって、予測モデルは、コンテキストに基づいてオペレーティングシステムの状態がアクティブになる第3の時間を予測する、ことと、第3の時間より前にウェイクイベントをトリガすることによって、デバイスの電力消費を低減することであって、ウェイクイベントは、デバイスに非アクティブ状態を脱出する準備をさせる、ことと、を含む、方法を含む。
例15は、例14に記載の方法を含み、センサ測定値に基づく前記デバイスの蓋モードに対応するセンサ測定値、センサ測定値に基づくデバイスの位置、及びセンサ測定値に基づくデバイスの動きに基づいて、デバイスのユーザの活動を決定することを更に含む。
例16は、例14に記載の方法を含み、コンテキストを予め決定された期間にわたって記憶することであって、予め決定された期間は、最大予測可能時間に対応する、ことを更に含む。
例17は、例16に記載の方法を含み、最大予測可能時間は、センサ測定値の第1の時間とオペレーティングシステムの状態の第2の時間との間の期間に対応する。
例18は、例14に記載の方法を含み、ある期間にわたる第1の時間ビンにおけるコンテキストの頻度に対応する第1のヒストグラム、期間にわたる第2の時間ビンにおけるオペレーティングシステムの状態の頻度に対応する第2のヒストグラム、及び期間全体にわたる第1の時間ビンにおけるコンテキストの頻度と第2の時間ビンにおけるオペレーティングシステムの状態の頻度との間の関連性に対応する第3のヒストグラムを生成することを更に含む。
例19は、例18に記載の方法を含み、第1のヒストグラム、第2のヒストグラム、及び第3のヒストグラムから、期間全体にわたるオペレーティングシステムの非アクティブ状態及びアクティブ状態に関する予測を導出することを更に含む。
例20は、例14に記載の方法を含み、コンテキストを取得することに応答して、オペレーティングシステムの状態をスタンバイ管理システムに問い合わせることであって、問い合わせは、コンテキストの第1の時間の後の予め決定された期間に発生する、ことを更に含む。
例21は、第1の時間に収集されたセンサ測定値に基づいてデバイスのコンテキストを決定するための手段と、コンテキストにオペレーティングシステムの状態を関連付けるための手段であって、状態は、第1の時間の後の第2の時間に取得される、手段と、関連付けに基づいて予測モデルを生成するための手段であって、予測モデルは、コンテキストに基づいてオペレーティングシステムの状態がアクティブになる第3の時間を予測する、手段と、第3の時間より前にウェイクイベントをトリガすることによって、デバイスの電力消費を低減するようにスケジュールするための手段であって、ウェイクイベントは、デバイスに非アクティブ状態を脱出する準備をさせる、手段と、を含む、装置を含む。
例22は、例21に記載の装置を含み、決定するための手段は、センサ測定値に基づくデバイスの蓋モードに対応するセンサ測定値、センサ測定値に基づくデバイスの位置、及びセンサ測定値に基づくデバイスの動きに基づいて、デバイスのユーザの活動を決定する。
例23は、例21に記載の装置を含み、コンテキストを予め決定された期間にわたって記憶するための手段をさらに含み、予め決定された期間は、最大予測可能時間に対応する。
例24は、例23に記載の装置を含み、記憶するための手段は、センサ測定値の第1の時間とオペレーティングシステムの状態の第2の時間との間の期間を決定して、最大予測可能時間を決定する。
例25は、例21に記載の装置を含み、関連付けるための手段は、ある期間にわたる第1の時間ビンにおけるコンテキストの頻度に対応する第1のヒストグラム、期間にわたる第2の時間ビンにおけるオペレーティングシステムの状態の頻度に対応する第2のヒストグラム、及び期間全体にわたる第1の時間ビンにおけるコンテキストの頻度と第2の時間ビンにおけるオペレーティングシステムの状態の頻度との間の関連付けに対応する第3のヒストグラムを生成する。
例26は、例25に記載の装置を含み、生成するための手段は、第1のヒストグラム、第2のヒストグラム、及び第3のヒストグラムから、期間全体にわたるオペレーティングシステムの非アクティブ状態及びアクティブ状態に関する予測を導出する。
実施例27は、予測コントローラであって、訓練されたモデルを利用して、状態コンテキストに基づいてオペレーティングシステムのアクティブ状態の確率を決定することと、前記確率に基づいて将来のユーザの意図を予測することと、を行う予測コントローラと、前記予測並びに第1のイベントコンテキスト及び第2のイベントコンテキストに基づいて、前記オペレーティングシステムをアクティブにするウェイク期間を決定するスケジュールコントローラと、を含む、装置を含む。
例28は、例27に記載の装置であって、デバイス状態コントローラであって、前記オペレーティングシステムを実装するデバイスの外部環境に対応するセンサ測定値を収集することと、前記センサ測定値に基づいてユーザ活動データを決定することと、前記センサ測定値に基づいて蓋モードを決定することと、前記センサ測定値に基づいて前記デバイスの位置を決定することと、前記センサ測定値に基づいてデバイス動きデータを決定することと、を行うデバイス状態コントローラを更に含む。
例29は、例27に記載の装置を含み、スケジュールコントローラは、オペレーティングシステムを実装するデバイスのイベント移行に対応する第1のイベントコンテキスト及び第2のイベントコンテキストを取得することと、第1のイベントコンテキスト又は第2のイベントコンテキストのうちの少なくとも1つがオペレーティングシステムのインスタントアクティベーションを示すと決定することと、即時のウェイク期間を生成するために将来のユーザ意図の予測を無効にすることと、を行う。
例30は、例27に記載の装置を含み、ウェイク期間を取得し、かつウェイク期間にウェイクイベントを開始して、オペレーティングシステムにアクティブ動作を準備させるウェイクタイマを更に含む。
例31は、例30に記載の装置を含み、ウェイクタイマは、ウェイク期間が終了したときに待機動作を完了する。
例32は、例27に記載の装置を含み、予測コントローラは、オペレーティングシステムの状態の条件に対応するコンテキストの特徴を抽出することと、状態コンテキストの特徴を表す特徴ベクトルを生成することと、訓練されたモデルに特徴ベクトルを入力して、オペレーティングシステムの状態が将来の時間に開始される第1の尤度、オペレーティングシステムの状態が将来の時間に停止される第2の尤度、及びオペレーティングシステムの状態が将来の時間で変化しない第3の尤度を生成することと、を行う。
所定の例示的な方法、装置、及び製造物品が本明細書に開示されているが、本特許の範囲はこれらに限定されない。反対に、この特許は、この特許の特許請求の範囲内にあるすべての方法、装置、及び製造物品をカバーする。
以下の特許請求の範囲は、この参照により、この発明を実施する形態に組み込まれ、各請求項はそれ自体が、本開示の別個の実施形態として位置する。
Claims (25)
- 第1の時間に収集されたセンサ測定値に基づいてデバイスのコンテキストを決定するデバイス状態コントローラと、
前記デバイスの前記コンテキストにオペレーティングシステムの状態を関連付けるアソシエータであって、前記状態は、前記第1の時間の後の第2の時間に取得される、アソシエータと、
前記関連付けに基づいて予測モデルを生成する訓練コントローラであって、前記予測モデルは、前記コンテキストに基づいて前記オペレーティングシステムの前記状態がアクティブになる第3の時間を予測する、訓練コントローラと、
前記第3の時間より前にウェイクイベントをトリガすることによって、前記デバイスの電力消費を低減するスケジュールコントローラであって、前記ウェイクイベントは、前記デバイスに非アクティブ状態を脱出する準備をさせる、スケジュールコントローラと、を含む、装置。 - 前記デバイス状態コントローラは、前記センサ測定値に基づく前記デバイスの蓋モードに対応するセンサ測定値、前記センサ測定値に基づく前記デバイスの位置、及び前記センサ測定値に基づく前記デバイスの動きに基づいて、前記デバイスのユーザの活動を決定する、請求項1に記載の装置。
- 前記コンテキストを予め決定された期間にわたって記憶するバッファをさらに含み、前記予め決定された期間は、最大予測可能時間に対応する、請求項1に記載の装置。
- 前記最大予測可能時間は、前記センサ測定値の前記第1の時間と前記オペレーティングシステムの前記状態の前記第2の時間との間の期間に対応する、請求項1~3のいずれか一項に記載の装置。
- 前記アソシエータは、ある期間にわたる第1の時間ビンにおける前記コンテキストの頻度に対応する第1のヒストグラム、前記期間にわたる第2の時間ビンにおける前記オペレーティングシステムの前記状態の頻度に対応する第2のヒストグラム、及び前記期間全体にわたる前記第1の時間ビンにおける前記コンテキストの頻度と前記第2の時間ビンにおける前記オペレーティングシステムの前記状態の頻度との間の関連付けに対応する第3のヒストグラムを生成する、請求項1に記載の装置。
- 前記訓練コントローラは、前記第1のヒストグラム、前記第2のヒストグラム、及び前記第3のヒストグラムから、前記期間全体にわたる前記オペレーティングシステムの非アクティブ状態及びアクティブ状態に関する予測を導出する、請求項1~5のいずれか一項に記載の装置。
- 前記アソシエータは、前記コンテキストを取得することに応答して、前記オペレーティングシステムの前記状態をスタンバイ管理システムに問い合わせ、前記問い合わせは、前記コンテキストの前記第1の時間の後の予め決定された期間に発生する、請求項1に記載の装置。
- 命令を含む少なくとも1つのコンピュータ可読記憶媒体であって、前記命令は、実行されるときに、1つ以上のプロセッサに、少なくとも、
第1の時間に収集されたセンサ測定値に基づいてデバイスのコンテキストを決定することと、
前記デバイスの前記コンテキストにオペレーティングシステムの状態を関連付けることであって、前記状態は、前記第1の時間の後の第2の時間に取得される、ことと、
前記関連付けに基づいて予測モデルを生成することであって、前記予測モデルは、前記コンテキストに基づいて前記オペレーティングシステムの前記状態がアクティブになる第3の時間を予測する、ことと、
前記第3の時間より前にウェイクイベントをトリガすることによって、前記デバイスの電力消費を低減することであって、前記ウェイクイベントは、前記デバイスに非アクティブ状態を脱出する準備をさせる、ことと、を行わせる、コンピュータ可読記憶媒体。 - 前記命令は、実行されるときに、前記1つ以上のプロセッサに、前記センサ測定値に基づく前記デバイスの蓋モードに対応するセンサ測定値、前記センサ測定値に基づく前記デバイスの位置、及び前記センサ測定値に基づく前記デバイスの動きに基づいて、前記デバイスのユーザの活動を決定することを行わせる、請求項8に記載のコンピュータ可読記憶媒体。
- 前記命令は、実行されるときに、前記1つ以上のプロセッサに、前記コンテキストを予め決定された期間にわたって記憶することであって、前記予め決定された期間は、最大予測可能時間に対応する、ことを行わせる、請求項8に記載のコンピュータ可読記憶媒体。
- 前記命令は、実行されるときに、前記1つ以上のプロセッサに、ある期間にわたる第1の時間ビンにおける前記コンテキストの頻度に対応する第1のヒストグラム、前記期間にわたる第2の時間ビンにおける前記オペレーティングシステムの前記状態の頻度に対応する第2のヒストグラム、及び前記期間全体にわたる前記第1の時間ビンにおける前記コンテキストの頻度と前記第2の時間ビンにおける前記オペレーティングシステムの前記状態の頻度との間の関連付けに対応する第3のヒストグラムを生成することを行わせる、請求項8に記載のコンピュータ可読記憶媒体。
- 前記命令は、実行されるときに、前記1つ以上のプロセッサに、前記第1のヒストグラム、前記第2のヒストグラム、及び前記第3のヒストグラムから、前記期間全体にわたる前記オペレーティングシステムの非アクティブ状態及びアクティブ状態に関する予測を導出することを行わせる、請求項8~11のいずれか一項に記載のコンピュータ可読記憶媒体。
- 前記命令は、実行されるときに、前記1つ以上のプロセッサに、前記コンテキストを取得することに応答して、前記オペレーティングシステムの前記状態をスタンバイ管理システムに問い合わせることであって、前記問い合わせは、前記コンテキストの前記第1の時間の後の予め決定された期間に発生する、ことを行わせる、請求項8に記載のコンピュータ可読記憶媒体。
- 第1の時間に収集されたセンサ測定値に基づいてデバイスのコンテキストを決定することと、
前記デバイスの前記コンテキストにオペレーティングシステムの状態を関連付けることであって、前記状態は、前記第1の時間の後の第2の時間に取得される、ことと、
前記関連付けに基づいて予測モデルを生成することであって、前記予測モデルは、前記コンテキストに基づいて前記オペレーティングシステムの前記状態がアクティブになる第3の時間を予測する、ことと、
前記第3の時間より前にウェイクイベントをトリガすることによって、前記デバイスの電力消費を低減することであって、前記ウェイクイベントは、前記デバイスに非アクティブ状態を脱出する準備をさせる、ことと、を含む、方法。 - 前記センサ測定値に基づく前記デバイスの蓋モードに対応するセンサ測定値、前記センサ測定値に基づく前記デバイスの位置、及び前記センサ測定値に基づく前記デバイスの動きに基づいて、前記デバイスのユーザの活動を決定することを更に含む、請求項14に記載の方法。
- 前記コンテキストを予め決定された期間にわたって記憶することであって、前記予め決定された期間は、最大予測可能時間に対応する、ことを更に含む、請求項14に記載の方法。
- 前記最大予測可能時間は、前記センサ測定値の前記第1の時間と前記オペレーティングシステムの前記状態の前記第2の時間との間の期間に対応する、請求項14~16のいずれか一項に記載の方法。
- ある期間にわたる第1の時間ビンにおける前記コンテキストの頻度に対応する第1のヒストグラム、前記期間にわたる第2の時間ビンにおける前記オペレーティングシステムの前記状態の頻度に対応する第2のヒストグラム、及び前記期間全体にわたる前記第1の時間ビンにおける前記コンテキストの頻度と前記第2の時間ビンにおける前記オペレーティングシステムの前記状態の頻度との間の関連付けに対応する第3のヒストグラムを生成することを更に含む、請求項14に記載の方法。
- 前記第1のヒストグラム、前記第2のヒストグラム、及び前記第3のヒストグラムから、前記期間全体にわたる前記オペレーティングシステムの非アクティブ状態及びアクティブ状態に関する予測を導出することを更に含む、請求項14~18のいずれか一項に記載の方法。
- 前記コンテキストを取得することに応答して、前記オペレーティングシステムの前記状態をスタンバイ管理システムに問い合わせることであって、前記問い合わせは、前記コンテキストの前記第1の時間の後の予め決定された期間に発生する、ことを更に含む、請求項14に記載の方法。
- 第1の時間に収集されたセンサ測定値に基づいてデバイスのコンテキストを決定するための手段と、
前記コンテキストにオペレーティングシステムの状態を関連付けるための手段であって、前記状態は、前記第1の時間の後の第2の時間に取得される、手段と、
前記関連付けに基づいて予測モデルを生成するための手段であって、前記予測モデルは、前記コンテキストに基づいて前記オペレーティングシステムの前記状態がアクティブになる第3の時間を予測する、手段と、
前記第3の時間より前にウェイクイベントをトリガすることによって、前記デバイスの電力消費を低減するようにスケジュールするための手段であって、前記ウェイクイベントは、前記デバイスに非アクティブ状態を脱出する準備をさせる、手段と、を含む、装置。 - 前記決定するための手段は、前記センサ測定値に基づく前記デバイスの蓋モードに対応するセンサ測定値、前記センサ測定値に基づく前記デバイスの位置、及び前記センサ測定値に基づく前記デバイスの動きに基づいて、前記デバイスのユーザの活動を決定する、請求項21に記載の装置。
- 前記コンテキストを予め決定された期間にわたって記憶するための手段であって、前記予め決定された期間は、最大予測可能時間に対応する、手段を更に含む、請求項21に記載の装置。
- 前記記憶するための手段は、前記センサ測定値の前記第1の時間と前記オペレーティングシステムの前記状態の前記第2の時間との間の期間を決定して、最大予測可能時間を決定する、請求項21~23のいずれか一項に記載の装置。
- 前記関連付けるための手段は、ある期間にわたる第1の時間ビンにおける前記コンテキストの頻度に対応する第1のヒストグラム、前記期間にわたる第2の時間ビンにおける前記オペレーティングシステムの前記状態の頻度に対応する第2のヒストグラム、及び前記期間全体にわたる前記第1の時間ビンにおける前記コンテキストの頻度と前記第2の時間ビンにおける前記オペレーティングシステムの前記状態の頻度との間の関連性に対応する第3のヒストグラムを生成する、請求項21に記載の装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/098326 WO2021258395A1 (en) | 2020-06-26 | 2020-06-26 | Methods, systems, articles of manufacture, and apparatus to dynamically schedule a wake pattern in a computing system |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023538989A true JP2023538989A (ja) | 2023-09-13 |
Family
ID=79282760
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022572376A Pending JP2023538989A (ja) | 2020-06-26 | 2020-06-26 | コンピューティングシステムにおけるウェイクパターンを動的にスケジュールする方法、システム、製造物品、及び装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20230205307A1 (ja) |
EP (1) | EP4172720A4 (ja) |
JP (1) | JP2023538989A (ja) |
KR (1) | KR20230027000A (ja) |
CN (1) | CN115698901A (ja) |
WO (1) | WO2021258395A1 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11379016B2 (en) | 2019-05-23 | 2022-07-05 | Intel Corporation | Methods and apparatus to operate closed-lid portable computers |
US11543873B2 (en) | 2019-09-27 | 2023-01-03 | Intel Corporation | Wake-on-touch display screen devices and related methods |
US11733761B2 (en) | 2019-11-11 | 2023-08-22 | Intel Corporation | Methods and apparatus to manage power and performance of computing devices based on user presence |
US11809535B2 (en) | 2019-12-23 | 2023-11-07 | Intel Corporation | Systems and methods for multi-modal user device authentication |
US11360528B2 (en) | 2019-12-27 | 2022-06-14 | Intel Corporation | Apparatus and methods for thermal management of electronic user devices based on user activity |
WO2024054386A1 (en) * | 2022-09-06 | 2024-03-14 | Apple Inc. | Sensor-based display power control systems and methods |
CN117667606A (zh) * | 2024-02-02 | 2024-03-08 | 山东省计算中心(国家超级计算济南中心) | 基于用户行为的高性能计算集群能耗预测方法及系统 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8468377B2 (en) * | 2008-10-22 | 2013-06-18 | Microsoft Corporation | Conserving power using predictive modelling and signaling |
US20140344599A1 (en) * | 2013-05-15 | 2014-11-20 | Advanced Micro Devices, Inc. | Method and System for Power Management |
US9785447B2 (en) * | 2014-06-27 | 2017-10-10 | Intel Corporation | System standby emulation with fast resume |
US10139897B2 (en) * | 2014-11-10 | 2018-11-27 | Novi Security, Inc. | Power-optimized image capture and push |
US9846471B1 (en) * | 2015-02-12 | 2017-12-19 | Marvell International Ltd. | Systems and methods for power management in devices |
US20170039480A1 (en) * | 2015-08-06 | 2017-02-09 | Microsoft Technology Licensing, Llc | Workout Pattern Detection |
KR102568686B1 (ko) * | 2018-02-09 | 2023-08-23 | 삼성전자주식회사 | 컨텍스트 허브를 포함하는 모바일 장치 및 그것의 동작 방법 |
EP3756087A4 (en) * | 2018-06-05 | 2021-04-21 | Samsung Electronics Co., Ltd. | PASSIVE WAKE-UP PROCESSES AND SYSTEMS OF A USER INTERACTION DEVICE |
-
2020
- 2020-06-26 EP EP20941909.2A patent/EP4172720A4/en active Pending
- 2020-06-26 KR KR1020227041472A patent/KR20230027000A/ko unknown
- 2020-06-26 CN CN202080101145.4A patent/CN115698901A/zh active Pending
- 2020-06-26 WO PCT/CN2020/098326 patent/WO2021258395A1/en unknown
- 2020-06-26 JP JP2022572376A patent/JP2023538989A/ja active Pending
- 2020-06-26 US US17/928,595 patent/US20230205307A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230205307A1 (en) | 2023-06-29 |
EP4172720A1 (en) | 2023-05-03 |
KR20230027000A (ko) | 2023-02-27 |
CN115698901A (zh) | 2023-02-03 |
EP4172720A4 (en) | 2024-03-27 |
WO2021258395A1 (en) | 2021-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2023538989A (ja) | コンピューティングシステムにおけるウェイクパターンを動的にスケジュールする方法、システム、製造物品、及び装置 | |
US10219222B2 (en) | Adjusting mobile device state based on user intentions and/or identity | |
US10267661B2 (en) | Energy efficient mobile context collection | |
US20210350286A1 (en) | Passive visit detection | |
US11562297B2 (en) | Automated input-data monitoring to dynamically adapt machine-learning techniques | |
US9124981B2 (en) | Systems and methods for classification of audio environments | |
KR101531449B1 (ko) | 센서의 호출을 제어하기 위한 방법 및 장치 | |
US8731537B2 (en) | Wireless communication devices in which operating context is used to reduce operating cost and methods for operating same | |
JP2021532487A (ja) | 不注意運転予測システム | |
Pendão et al. | Energy consumption in personal mobile devices sensing applications | |
EP3026650B1 (en) | Pressure-based parking detection system | |
AU2015252057B2 (en) | Adjusting mobile device state based on user intentions and/or identity | |
US20210383672A1 (en) | Out of range tracking device detection | |
US20210141987A1 (en) | Method for adapting configuration parameters for an electronic device and an electronic device | |
WO2023168334A1 (en) | Data retention in image-based localization at scale | |
Monna | MY-AIR Project: Study on Semantic Location and Activity Recognition Algorithms for iOS Systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230621 |