(57)【要約】  ハブは、異なる周期的位置決定間隔を有する様々な異なるクライアント関するデータリクエストにサービスを提供することができる。センサハブは、タイマで指定した値を検出し、指定した値によって各クライアントが関連するカウントを調整する。調整は、実装によって、インクリメント又はデクリメントのいずれでも良い。いずれかのカウントに対する調整により、クライアントに関連したカウントがクライアントに関連する周期的位置決定間隔に達した場合、センサハブは、そのクライアントに通知する。それぞれの周期的位置決定リクエスト間隔に達していないカウントに対して、センサハブは、タイマに対する次の指定の値の間、繰り返す。
2018503276.tif 000002
【特許請求の範囲】
【請求項１】
周期的位置決定リクエストを管理する方法であって、
タイマが指定された周期でインクリメントされたことを検出することと、
複数のクライアントのそれぞれに関連するカウントを前記指定された周期で調整することであって、前記複数のクライアントは、異なる周期的位置決定リクエスト間隔のそれぞれで、前記クライアントのそれぞれにデータを提供するセンサハブプロセッサと共に前記異なる周期的位置決定リクエスト間隔を有し、
前記調整することが、前記関連するクライアントに対して前記周期的位置決定リクエスト間隔のそれぞれにいずれかのカウントが達するようにすることを決定することと、
カウントが前記周期的位置決定リクエスト間隔に達したいずれかのクライアントに通知することと、を含む、方法。
【請求項２】
前記指定された周期は、すべての異なる周期的位置決定リクエスト間隔の最大公約数を含む、請求項１に記載の方法。
【請求項３】
次の反復に対して前記指定された周期を再計算することをさらに含む、請求項１又は２に記載の方法。
【請求項４】
前記指定された周期を再計算することが、前記周期的位置決定リクエスト間隔のそれぞれに達していないすべてのカウントに対して、そのそれぞれの周期的位置決定リクエスト間隔に対する最小の差を持つカウントを決定することと、前記決定された最小の差に前記指定された周期をリセットすることとを含む、請求項３に記載の方法。
【請求項５】
前記指定された周期によって前記カウントを調整することが、前記カウントをデクリメントすることを含み、前記周期的位置決定リクエスト間隔のそれぞれに達するいずれかのカウントを調整することを決定することが、前記デクリメントがいずれかのカウントをゼロにすることを判定することを含む、請求項１乃至４のいずれか１項に記載の方法。
【請求項６】
ゼロに達していないすべてのカウントに対する最小値のカウントを決定することと、
前記指定された周期を前記決定した最小値のカウントにリセットすることと、をさらに含む請求項５に記載の方法。
【請求項７】
前記クライアントに通知することが、前記クライアントに位置情報を提供することを含む、請求項１乃至６のいずれか１項記載の方法。
【請求項８】
カウントが前記周期的位置決定リクエスト間隔に達したすべてのクライアントに対して前記カウントをリセットすることをさらに含む、請求項１乃至７のいずれか１項に記載の方法。
【請求項９】
周期的位置決定リクエストを管理するフロントエンドインタフェース回路であって、
複数のクライアントに接続するためのハードウェアＩ／Ｏ（入力／出力）コネクタであって、前記複数のクライアントは、異なる周期的位置決定リクエスト間隔を有し、
タイマと、
前記異なる周期的位置決定リクエスト間隔のそれぞれにおいて前記クライアントのそれぞれにデータを提供するプロセッサであって、前記プロセッサは、前記タイマが指定された周期をインクリメントしたときを検出し、前記指定された周期によって前記複数のクライアントのそれぞれと関連するカウントをデクリメントし、カウントがゼロに達したいずれかのクライアントに通知することと、
を含む、フロントエンドインタフェース回路。
【請求項１０】
前記指定された周期は、すべての異なる周期的位置決定リクエスト間隔の最大公約数を含む、請求項９に記載のフロントエンドインタフェース回路。
【請求項１１】
前記プロセッサが、次の繰り返しに対する前記指定された周期を再計算することを含む、請求項９又は１０に記載のフロントエンドインタフェース回路。
【請求項１２】
前記プロセッサは、前記周期的位置決定リクエスト間隔のそれぞれに達していないすべてのカウントに対して、そのそれぞれの周期的位置決定リクエスト間隔に対する最小の差を有するカウントを決定し、前記指定された周期を前記決定された最小の差にリセットすることを含む、前記指定された周期を再計算する、請求項１１に記載のフロントエンドインタフェース回路。
【請求項１３】
前記プロセッサが、ゼロに達していないすべてのカウントに対して最小値のカウントを決定し、前記指定された周期を前記決定された最小値のカウントにリセットすることをさらに含む、請求項９乃至１２のいずれか１項に記載のフロントエンドインタフェース回路。
【請求項１４】
前記プロセッサは、前記クライアントに位置情報を提供する請求項９乃至１３のいずれか１項に記載のフロントエンドインタフェース回路。
【請求項１５】
前記プロセッサが、カウントがゼロに達したすべてのクライアントに対して前記カウントをリセットすることを含む、請求項９乃至１４のいずれか１項に記載のフロントエンドインタフェース回路。
【請求項１６】
複数の異なる周期的位置決定リクエストを管理する電子デバイスであって、前記電子デバイスは、
フロントエンドインタフェース回路と
前記フロントエンドインタフェース回路からアクセスされるデータに基づいて表示を生成するように接続されたタッチスクリーンディスプレイと、
を含み、
前記フロントエンドインタフェース回路は、
複数のクライアントに接続されたハードウェアＩ／Ｏ（入力／出力）コネクタであって、前記複数のクライアントは異なる位置周期的決定リクエスト間隔を有するものであり、
タイマと、
前記異なる周期的位置決定リクエスト間隔のそれぞれにおいて前記クライアントのそれぞれにデータを提供するセンサプロセッサであって、前記センサプロセッサは、前記タイマが指定された周期をインクリメントしたときを検出し、前記指定された周期によって前記複数のクライアントのそれぞれと関連するカウントを調整し、前記調整が、いずれかのカウントを前記関連したクライアントに対してそれぞれの周期的位置決定リクエスト間隔に達するようにしたこと決定し、カウントが前記周期的位置決定リクエスト間隔のそれぞれに達したいずれのクライアントに通知する、を含む、電子デバイス。
【請求項１７】
前記指定された周期は、すべての異なる周期的位置決定リクエスト間隔の最大公約数を含む、請求項１６に記載の電子デバイス。
【請求項１８】
前記センサプロセッサは、各繰り返しに対して前記指定された周期をさらに計算する、請求項１６乃至１７のいずれか１項に記載の電子デバイス。
【請求項１９】
前記センサプロセッサは、前記周期的位置決定リクエスト間隔のそれぞれに達していないすべてのカウントに対して、そのそれぞれの周期的位置決定リクエスト間隔に対する最小の差を持つカウントを決定し、及び前記指定された周期を前記決定された最小の差にリセットすることを含む、前記指定された周期を計算する、請求項１８に記載の電子デバイス。
【請求項２０】
前記センサプロセッサは、前記指定された周期で各カウントをデクリメントし、前記デクリメントがいずれかのカウントをゼロに達しさせることを決定する、請求項１６乃至１９のいずれか１項に記載の電子デバイス。
【請求項２１】
前記センサプロセッサは、前記クライアントに位置情報を提供する、請求項１６乃至２０のいずれか１項に記載の電子デバイス。
【請求項２２】
前記センサプロセッサが、カウントがゼロに達したすべてのクライアントに対して前記カウントをリセットすることをさらに含む、請求項１６乃至２１のいずれか１項に記載の電子デバイス。
【請求項２３】
実行されたときに、請求項１乃至８のいずれか１項に従って周期的位置決定リクエストを管理する方法を実行するコンピュータプログラム。
【請求項２４】
請求項１乃至８のいずれか１項に従って方法を実行する動作を実行する手段を含む、周期的位置決定リクエストを管理する装置。
【請求項２５】
コンテンツを記憶するコンピュータ読取可能記憶媒体であって、前記コンテンツが実行されときに、請求項１乃至８のいずれか１項に従って周期的位置決定リクエストを管理する方法を実行するコンピュータ読取可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、一般にセンサクライアンに対するサービスに関連し、より具体的には、異なる周期的位置決定リクエスト（different  periodic  fix  requests）を有するクライアントへデータを提供する可変間隔タイミング（variable  interval  timing）に関する。
【０００２】
著作権表示／許諾
この特許書類の開示の部分は、著作権の保護に従うマテリアルを含み得る。著作権の保有者は、特許商標庁にある特許出願又は記録として、特許資料及び特許開示を誰でもコピーすることに対して異議はないが、他の点ではどんなものであれすべての著作権は留保する。著作権表示は、以下で説明され、添付図面中のすべてのデータ及び以下で説明する任意のソフトウェアに適用される。Ｃｏｐｙｒｉｇｈｔ  （Ｃ）  ２０１４、Ｉｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎ，Ａｌｌ  Ｒｉｇｈｔｓ  Ｒｅｓｅｒｖｅｄ．
【背景技術】
【０００３】
複数の異なるタイプのデバイスは、ＷｉＦｉ、ＧＮＳＳ（全地球的航法衛星システム）、又はその他、又は他のセンササービスなどの位置ベースコア（location  based  cores）から単一の位置決定の又は周期的位置決定のリクエストを出すことができる。単一の位置決定リクエストは、位置に対する単一のリクエストを生成する。周期的位置決定リクエストは、周期的に位置情報を受信するために登録した位置サービスクライアントに対して永続的なリクエストを提供する。複数のクライアント（multiple  clients）は、いつでも位置フレームワークに接続することができる。しかしながら、複数のクライアントは、それぞれ、異なる最小間隔で位置サービスに要求する異なる周期的位置決定リクエストをすることができる。情報の送信が余りに頻繁であると位置サービスフレームワーク上の負荷が増加し、追加のバンド幅及び追加の電力を消費することがあり得る。情報の送信が余り頻繁でないと、クライアントに対して登録された周期的位置決定リクエストに違反することになり得る。しかしながら、現在の位置フレームワークは、異なる周期的位置決定間隔を効率的に管理していない。複数のクライアントが異なる時間間隔で周期的位置決定をリクエストしたとき、一連の通知は、センサ又はサービスフレームワークに合理的にプログラムすることができない。加えて、異なる要求（すなわち、異なる間隔）で異なるクライアントのグループに接続することによるシステムの変更は、センサ又はフレームワークからの全く異なる一連の応答という結果になり得る。従来のフレームワークの実装では、最も小さい間隔でリクエストするクライアントと関連する間隔ですべてのクライアントにデータを送る。それ故に、従来のフレームワークの実装では、異なる周期的位置決定リクエストに非効率的に対処している。
【図面の簡単な説明】
【０００４】
以下の説明は、本発明の実施形態の実装の実例によって与えられる説明を有する図面の検討を含む。図面は、実例として理解されるべきであり、制限として理解されるべきではない。本明細書で使用したように、１つ以上の「実施形態（embodiments）」に対する参照は、本発明の少なくとも１つの実装において含まれる特定の特徴、構造、及び／又は特性を説明するものであると理解されるべきである。それ故に、本明細書に現れる「１つの実施形態において」又は「別の実施形態において」などのフレーズは、本発明の様々な実施形態及び実装を説明し、必ずしも同じ実施形態をすべて参照する訳ではない。しかしながら、それらは、必ずしも相互に排他的である必要もない。
【０００５】
【図１】異なる周期的位置決定リクエストを有する複数のクライアントに接続されたハブを持つシステムの実施形態のブロック図である。
【図２】複数のクライアントに対して異なる周期的位置決定リクエストを管理するタイミングエンジンを含むハブを有するシステムの実施形態のブロック図である。
【図３】異なる周期的位置決定の間隔の最大公約数（highest  common  factor）による異なる周期的位置決定リクエストを管理する表の実施形態のブロック図である。
【図４】異なる周期的位置決定を持つクライアントに対するスライドウィンドウによる異なる周期的位置決定リクエストを管理する表の実施形態のブロック図である。
【図５】複数の異なるクライアントに対する異なる周期的位置決定を管理するための擬似コードの実施形態を表す図である。
【図６】複数の異なるクライアントに対する異なる周期的位置決定を管理するためのプロセスの実施形態の流れ図である。
【図７】複数の異なるクライアントが実装され得るための異なる周期的位置決定を管理するコンピューティングシステムの実施形態のブロック図である。
【図８】複数の異なるクライアントが実装され得るための異なる周期的位置決定を管理するモバイルデバイスの実施形態のブロック図である。
【０００６】
以下のいくらかの詳細及び実装の説明は、図の説明を含み、以下で説明される実施形態のいくつか又はすべて、及び本明細書で説明される発明の概念の他の潜在的な実施形態又は実装を検討することを表現することができる。
【発明を実施するための形態】
【０００７】
本明細書で説明されるように、ハブ（hub）又は他のサービスフレームワーク（service  framework）は、異なる周期的位置決定間隔を持つ様々な異なるクライアントに対してデータリクエストにサービスを提供する。ハブは、タイマで指定された値を検出し、指定された値で各クライアントに関連するカウントを調整する。調整は、実装によって、インクリメント（increment）又はデクリメント（decrement）のいずれかであり得る。任意のカウントへの調整が、クライアントに関連するカウントがクライアントに関連する周期的位置決定間隔に達しさせる場合、ハブはクライアントに通知する。それぞれの固定周期的リクエスト間隔（fixed  periodic  request  interval）に達していないカウントに対しては、ハブは、タイマの次の指定された値に対して反復する。
【０００８】
図１は、異なる周期的位置決定リクエストを有する複数のクライアントに接続されたセンサハブを持つシステムの実施形態のブロック図である。システム１００は、複数のクライアントにデータを提供するハブを持つデータサービスシステムを表す。システム１００は、複数の異なるクライアント１３０とインタフェースするセンサハブ又は他のハブを表すハブ１１０を含む。ハブ１１０は、Ｉ／Ｏインタフェース１１２を経由してクライアント１３０とインタフェースする。Ｉ／Ｏ１１２は、有線及び／又は無線のインタフェースを含むことができる。典型的には位置サービスに対するインタフェースは無線である。それ故に、Ｉ／Ｏ１１２は、クライアント１３０とリクエスト及びデータを交換するハードウェア及びソフトウェアを含むことができる。
【０００９】
ハブ１１０は、システム１００における第１の又はメインのプロセッサ又はマイクロコントローラを表すプロセッサ１１４を含む。プロセッサ１１４は、ハブ１１０の実行を制御し、クライアント１３０の異なる周期的位置決定リクエスト間隔を管理するための計算を含む動作を実行する。プロセッサ１１４は、シングルコア又はマルチコアのプロセッサであり得る。１つの実施形態において、プロセッサ１１４は、組み込みプロセッサであり、ハブ１１０は、センサデバイスにおけるプラットフォームである。１つの実施形態において、プロセッサ１１４は、コンピューティングシステムの中央処理装置（ＣＰＵ）であるか又はその一部である。１つの実施形態において、ハブ１１０は、キャッシュ１１６を含み、キャッシュはプロセッサ１１４にローカルなメモリリソースを表し、プロセッサ１１４は、その中に動作を実行するためのコード及び／又はデータを一時的に記憶することができる。１つの実施形態において、システム１００は、外部メモリ１４０を含むことができ、外部メモリは、システムメモリ又はメインメモリなどのハブ１１０の外部にあるメモリリソースを表す。プロセッサ１１４は、メモリバスを介してメモリ１４０にアクセスすることができる。
【００１０】
１つの実施形態において、ハブ１１０は、センサハブ又はセンサである。センサは、複数の登録されたクライアント１３０に対してデータサービスを提供する。センサは、環境データ（位置、動き、温度、周辺光、又は他のデータ）、生体測定データ（心拍数、脈拍、皮膚測定、指紋、光学スキャン情報、又は他の生体情報）、又は状態及び／又はユーザに関して検出された他のデータなどのデータを提供することができる。サービスフレームワーク１２０は、クライアント１３０とのインタフェースを管理するハードウェア及び／又はソフトウェアを表す。クライアント１３０は、ハブ１１０によって提供されるデータサービスを受信するためにサービスフレームワーク１２０に登録する。サービスフレームワーク１２０は、クライアント１３０に送信する情報を生成することができる１つ以上のセンサを含む。
【００１１】
１つの実施形態において、ハブ１１０は、１つ以上のタイマ１１８を含み、タイマは、プロセッサ１１４の一部又はハブ１１０の別の部分であり得る。タイマ１１８は、時間の経過を記録する（秒又は分などの特定の期間、又はサイクル数などの相対な期間のいずれであろうと）システム１００における計数機構を表す。タイマ１１８は、既知の周波数のクロック又は発振器のクロック周期の数に基づいて動作する。ハブ１１０は、タイマ１１８に対して指定した周期を設定することができる。典型的には、タイマ１１８は、ゼロからカウントアップする。１つの実施形態において、タイマ１１８がある時間又はある数の繰り返しを数えたときを特定する割り込み又は他の表示機構の１つ以上を持つように、プロセッサ１１４を構成することができる。プロセッサ１１４は、表示に関する指定された期間を設定することができる。
【００１２】
１つの実施形態において、プロセッサ１１４は、少なくとも１つの各クライアント１３０に関連する複数のカウント１２２を管理する。カウント１２２は、各クライアント１３０に関する周期的位置決定間隔に対するタイマ１１８による表示としてどのぐらい時間が経過したかを追跡することに関連するカウントを表す。それ故に、例えば、各クライアント１３０は、関連するカウントを持つことができ、そのプロセッサ１１４は、それぞれのクライアントにデータを送るときを決定し続ける。
【００１３】
一般にシステム１００は、プロセッサ１１４及びタイマ１１８を経由して、各クライアント１３０に対して周期的位置決定間隔までカウントアップし、又は各クライアント１３０に対して周期的位置決定間隔からゼロまでカウントダウンすることができることが理解される。周期的位置決定間隔までのカウントアップに関して、各クライアントに対するカウントに加えて、ハブ１１０が、タイマのカウントと比較するしきい値又は間隔を維持することもできることを理解されたい。周期的位置決定リクエストを管理するためにプロセッサ１１４によって実行されるソフトウェアプログラムを生成する視点から、各クライアント１３０の周期的位置決定間隔からゼロまでカウントダウンする方がより扱いやすいことがあり得る。そのようなプログラムの擬似コードの実例は、図５において下記の通り提供される。
【００１４】
ハブ１１０は、サービスフレームワーク１２０へのクライアントの登録に基づいて各クライアント１３０に対して間隔を設定することができる。各クライアントに対する間隔を適切に処理することに加えて、クライアント１３０は動的にシステムに入ったり、出たりすることができ、ハブ１１０は、それでも、クライアントの間隔を適切に処理することを理解されたい。それ故に、新しいクラインがその間隔と登録されている限り、動作において中断なく、異なる周期的位置決定間隔を持つ新しいクライアント１３０をシステム１００に追加することができる。同様に、既存のクライアント１３０は、動作において中断することなく、システム１００から取り除くこともできる。いずれの場合でも、プロセッサ１１４は、各個別のクライアント１３０の要求に従ってリクエストに対してサービスを継続することができる。
【００１５】
図２は、複数のクライアントに対する異なる周期的位置決定リクエストを管理するタイミングエンジンを含むセンサハブを有するシステムの実施形態のブロック図である。システム２００は、図１のシステム１００の１実施例であり得る。システム２００は、センササービスシステムを表す。システム２００は、複数のクライアント２３０を含み、クライアントは、位置サービスなどのデータサービスをリクエストするコンピューティングデバイス又はコンシューマデバイスの任意のタイプを表す。システム２００は、センサ２１０を含み、センサはデータを生成し、そのデータに対するリクエストにサービスするコンピューティングデバイス又はセンサデバイスを表す。センサ２１０は、複数のクライアント２３０がセンサ２１０にリクエストを送信するという意味でハブと見なすことができる。クライアント２３０は、センサ２１０によって提供されるデータの繰り返される通知を受信するためにセンサ２１０に登録することができる。
【００１６】
１つの実施形態において、センサ２１０はフロントエンド２１２を含む。フロントエンド２１２は、クライアント２３０とインタフェースするハードウェアコンポーネント及びソフトウェアコンポーネントを表す。１つの実施形態において、フロントエンド２１２は、クライアント２３０とワイヤレスに通信するワイヤレスハードウェアを動作させるハードウェア及びファームウェアを含む。フロントエンド２１２は、別の回路と統合された回路の中の統合コンポーネントとして及び／又はディスクリート回路として、実装することができる。例えば、１つの実施形態において、フロントエンド２１２は、プロセッサ２１４が配置されたダイ又は基板上に統合することもできる。１つの実施形態において、フロントエンド２１２は、ディスクリート回路である（例えば、プロセッサ２１４から分離された基板及び／又はＰＣＢ（プリント回路基板）と共に）。１つの実施形態において、フロントエンド２１２は、統合コンポーネント及びディスクリートコンポーネントの組合せとして実装することもできる。  
【００１７】
センサ２１０は、プロセッサ２１４を含み、プロセッサは、任意のタイプのマイクロプロセッサ、組み込みプロセッサ、コントローラ、及び／又はセンサ２１０の実行を命令することができる他の処理ユニットを表す。プロセッサ２１４は、リアルタイムＯＳなどのオペレーティングシステム（ＯＳ）やアプリケーションとして実行することができる。アプリケーションは、オペレーティングシステムによって制御されるソフトウェア環境で実行されるプログラム又はプロセスであり得る。１つの実施形態において、プロセッサ２１４は、タイミングエンジン２２０の要素を実行する。タイミングエンジン２２０は、センサ２１０に複数の異なるクライアント２３０からの異なる周期的位置決定リクエストを管理できるようにするハードウェアコンポーネント及び／又はソフトウェアコンポーネントを表す。
【００１８】
センサ２１０は、メモリ２１６を含み、メモリは、センサ２１０にアクセス可能なメモリリソースを表す。メモリ２１６は、揮発性及び／又は不揮発性メモリを含むことができる。揮発性メモリは、電力がメモリデバイスに対して遮断されたときにその状態（そして、その結果としてメモリ媒体に記憶されたデータも）が確定できない記憶装置を指し、不揮発性メモリは、電力がメモリデバイスに対して遮断されたときに状態を保持する記憶装置を指す。１つの実施形態において、センサ２１０は、位置サービス２１８を含み、位置サービスは、センサ２１０にクライアント２３０のために位置データを生成することを可能にする１つ以上のセンサユニット及び／又は他のハードウェア及びソフトウェアを表す。
【００１９】
１つの実施形態において、タイミングエンジン２２０は、タイマインタフェース２２２を含み、タイマインタフェースは、センサ２１０にタイマ（システム２００では明確に説明していない）をモニタすることを可能にする処理ロジックを表す。タイマは、指定の値を開始し、又はタイマインタフェース２２２を経由して指定の値までのカウントを開始することができる。タイマインタフェース２２２は、プロセッサ２１４にタイマをモニタし、指定の時間をカウントしたときを検出することができるようにする。１つの実施形態において、タイミングエンジン２２０は、カウント制御２２４を含み、カウント制御は、センサ２１０にクライアント２３０に対するカウントを管理することができるようにする処理ロジックを表す。カウント制御２２４は、各異なるクライアント２３０に対してカウントを生成し、保持し、カウントに基づいて及びタイマの繰り返しに基づいて、センサ２１０に対して特定のクライアント２３０に通知する又はクライアントにデータを送信する時間であることを決定させることができる。カウント制御２２４は、センサ２１０を異なるクライアント２３０に対して異なるリクエスト間隔を管理できるようにする処理ロジックを表す。図３及び図４及びその説明は、カウント制御２２４が動作できる異なる方法の実例を提供する。
【００２０】
図３は、異なる周期的位置決定の間隔の最大公約数に従った異なる周期的位置決定リクエストを管理する表の実施形態のブロック図である。表３００は、複数のクライアントに対する周期的位置決定リクエストに対する異なる間隔を管理する実施形態の一例を説明する。表３００は、図１のシステム１００又は図２のシステム２００などの本明細書で説明されるシステムの任意の実施形態の実例を説明することができる。説明の目的で、クライアント３０２は間隔６を持ち、クライアント３０４は間隔９を持ち、そしてクライアント３０６は間隔１５を持つと見なす。明確にラベルは付けていないが、６、９及び１５は、秒又は任意の他の時間単位であることができる。６、９及び１５は、最大公約数３を共有することが理解される。この例は、いかに最大公約数を使用することができるかを説明するために選択された。ある実施形態において、最大公約数は１であり、その場合、繰り返し（iteration：反復）の各期間は、１時間単位（１秒など）になる。
【００２１】
説明する１つの実施形態において、センサシステムはその関連する間隔（それぞれ６、９、及び１５）からゼロに各クライアント３０２、３０４、３０６に対するカウントをデクリメントする。代替案としては、システムは、ゼロから関連する間隔へカウントをインクリメントすることができ、それは、より複雑なプログラミングを含むことがあり、しかし、同様の方法で動作することができる。別の代替手段としては、システムは、間隔にオフセットをプラス又はマイナスした値に対してインクリメント又はデクリメントすることもできる。ゼロから又はゼロへ、又はオフセットから又はオフセットへ（ゼロへの正規化）にかかわらず、システムは、各クライアントに対する間隔が経過したときを決定するために各クライアントに対するカウントをモニタする。説明の目的で、１６回の繰り返しが、説明されている。実際のシステムでは、システムは、任意の１つ以上のクライアントがセンサ３０８に登録している限り、永久に続けることができる。
【００２２】
システムに対する開始点を考えると、繰り返しが０のときは、タイマ上の時間（絶対時間、又は相対時間であり得る）はゼロである。すべての繰り返しが３回として周期が説明されている。表３００に対する周期は、クライアント３０２、３０４、及び３０６の間隔に対する最大公約数である。繰り返しが０のとき、クライアント３０２に対するカウントは６で、クライアント３０４に対するカウントは９で、そしてクライアント３０６に対するカウントは１５である。１つの実施形態において、各カウントは、次の繰り返しに対して又は３という指定の値にタイマが達したことをプロセッサが決定したときに、３ずつデクリメントされる。それ故に、プロセッサは、インクリメントされたタイマの量、又は指定の期間によって各カウントをデクリメントする。繰り返しが１のとき、カウントは、その結果、クライアント３０２、３０４、及び３０６に対してそれぞれ３、６、そして１２である。それ故に、それぞれの間隔は、繰り返しが１のときは、いずれのクライアントに対しても達していない。
【００２３】
タイマは次の３に対して時間６までカウントし、そして、プロセッサは、各クライアントカウントを３つデクリメントする。一旦、カウントが再度デクリメントされたら、クライアント３０２に対するカウントはゼロになり、一方、クライアント３０４と３０６に対するカウントはそれぞれ、３と９になる。プロセッサは、クライアント３０２に対するカウントが、クライアントに対するカウントがクライアント３０２に対する間隔に達したことを示すことを決定する。１つの実施形態において、プロセッサは、クライアント３０２に対するカウントをリセットし、カウントが再びクライアント間隔にデクリメントされるようにする。１つの実施形態において、センサ３０８は、クライアント３０２に対する通知を生成する。通知は、クライアントにデータを送るためのセンサによるサービスであり得る。
【００２４】
センサプロセッサがクライアントに対するクライアントカウントをデクリメントし、リセットし続けることが表３００から気付くことができる。クライアントに対するカウントが間隔時間を通過したことを示すとき、センサ３０８は、間隔が達したクライアントに通知を提供する。例えば、クライアント３０２に対する間隔には、２、４、６、８、１０、１２、そして１４回の繰り返しで達する。クライアント３０４に対する間隔には、３、６、９、１２、そして１５回の繰り返しで達する。クライアント３０６に対する間隔には、５、１０、そして１５回の繰り返しで達する。  
【００２５】
図４は、異なる周期を持つクライアントに対するスライドウィンドウ（sliding  window）による異なる周期的位置決定リクエストを管理する表の実施形態のブロック図である。表４００は、スライドウィンドウを持つ複数のクライアントに対する周期的位置決定リクエストに対する異なる間隔を管理する１つの実施形態の実例を説明する。表４００は、図１のシステム１００又は図２のシステム２００などの本明細書で説明されるシステムの任意の実施形態に関する実例を説明することができる。表４００の説明を提示するセンサ４１０によって実行されるアルゴリズムは、センサシステムにおいて複雑な間隔パターンに対しても非常に単純さを許す。クライアントがシステムに登録し、そしてシステムから抜け出ることを仮定しても、センサ４１０に対するプロセッサは、すべてのクライアントの間隔を管理するこができる。
【００２６】
説明の目的で、クライアント４０２が間隔５を有し、クライアント４０４が間隔７を有し、クライアント４０６が間隔１５を有し、そして、クライアント４０８が間隔２１を有すると考える。関連する間隔に対して１より大きい公約数が無いことに気付くことができる。しかしながら、スライドウィンドウがあれば、センサプロセッサは、最大公約数を使わない。明確に名前をつけていないが、間隔は、秒などの任意の時間単位で表現することができる。
【００２７】
１つの実施形態において、プロセッサは、その関連する間隔と共にすべてのクライアント４０２、４０４、４０６、そして４０８に対するリストを作成する。１つの実施形態において、プロセッサは、すべてのカウントの中でその間隔に最も近いカウントを決定する。そのような時間は、スライドウィンドウ、又はＴｍｉｎ（最小時間）に対する周期として参照することができる。例えば、繰り返し０回において、クライアント４０２は、自身の間隔５に基づく関連するカウント５を有し、クライアント４０４は、自身の間隔に基づく関連するカウント７を有し、クライアント４０６は、自身の間隔に基づく関連するカウント１５を有し、そして、クライアント４０８は、自身の間隔に基づく関連するカウント２１を有する。説明した１つの実施形態において、センサシステムは、自身の関連する間隔からゼロまで各クライアントのカウントをデクリメントする。代案として、システムは、ゼロから関連する間隔にカウントをインクリメントすることができ、それは、より複雑なプログラミングを含むことがあり、しかし、同様の方法で動作することができる。別の代替手段としては、システムは、間隔にオフセットをプラス又はマイナスした値までインクリメント又はデクリメントできる。ゼロから又はゼロまで、又はオフセットから又はオフセットまで（ゼロに規格化して）にかかわらず、システムは、各クライアントの間隔が経過したときを決定するために各クライアントに対するカウントをモニタする。説明の目的のため、１６回の繰り返しが説明されている。実際のシステムでは、システムは、任意の１つ以上のクライアントがセンサ４１０に登録されている限り、システムは永久に続ける。
【００２８】
クライアント４０２に対するカウントが自身の間隔から５つ異なる値なので、プロセッサは、繰り返し０回で、それぞれの間隔に最も近いカウントがクライアント４０２に対するカウントであると決定する。それ故に、繰り返し０回の間隔は、５である。タイマが指定された間隔５をカウントした後、プロセッサは、各クライアントに対するカウントを再計算する。繰り返し１回において、プロセッサは、クライアント４０２のカウントを５つデクリメントし、カウントはゼロになる。クライアント４０４、４０６、そして４０８に対するカウントは、それぞれ２、１０、そして１６になる。１つの実施形態において、クライアント４０２に対するカウントがゼロになるので、プロセッサは、そのカウントを５にリセットする。センサ４１０は、クライアント４０２に通知する。プロセッサは、達しようとする自身の間隔又は所定のしきい値（又はＴｍｉｎ）に最も近いカウントが２であると決定する。それ故に、繰り返し１回に対する間隔は、２にセットされる。
【００２９】
プロセッサは、タイマが２をカウントしたときを検出する。繰り返し２回に対する時間は７であり、それは前の２つの指定された期間の合計であり、それは、プロセッサがタイマを検出したときであることに気付くことができる。繰り返し２回で、プロセッサは、前の周期又はタイマがカウントした合計によって各クライアントカウントをデクリメントする。それ故に、クライアント４０２、４０４、４０６、そして４０８に対するカウントは、それぞれ、３、０、８、そして１４になる。１つの実施形態において、プロセッサは、クライアント４０４に対するカウントを７にリセットし、クライアント４０４に通知する。プロセッサは、自身のそれぞれの間隔に最も近いカウントがクライアント４０２に対するカウントで３であると決定する。それ故に、プロセッサは、周期を３にセットする。
【００３０】
タイマは、３をカウントした後（タイム＝７からタイム＝１０まで）、プロセッサは、変化を検知し、クライアントに対するカウントを再計算する。繰り返し３回で、クライアント４０２に対するカウントは０になり、そして、クライアント４０４、４０６、及び４０８に対するカウントは、それぞれ、４、５、及び１１になる。センサ４１０は、クライアント４０２に通知する。１つの実施形態において、プロセッサは、周期を４にリセットし、クライアント４０２のカウントを５にリセットする。繰り返し４回で、クライアント４０４に対するカウントは、０に達し、最も低いカウント又はそれぞれの間隔に最も近いカウントは、クライアント４０２及びクライアント４０６の両方に対するカウントで、両方とも１である。１つの実施形態において、プロセッサは、周期を１に設定し、タイマに再びカウントを開始させる。繰り返し５回で、クライアント４０２及び４０６の両方に対するカウントがそれぞれの間隔に達し、センサ４１０は、両方のクライアントに通知することができる。
【００３１】
センサシステムの動作は、表４００の他の詳細に従って同様のやり方で続けられる。公約数アプローチ又はタイマのカウント毎に再計算するアプローチとは異なり、センサシステムは、クライアントカウントがそれぞれの間隔に達するまで、各繰り返しをカウントすることをタイマに許すことに気付くことができる。それ故に、センサシステムは、通知するクライアントがいるときだけ再計算する。各繰り返しに対する指定の周期は、それに対する前の繰り返しと同じ又は異なることができる。指定された周期が最も低い間隔（表４００では５）より高くはならず、しかし、１と最も低い間隔との間の任意の値となることができる。
【００３２】
図５は、異なる周期的位置決定を持つクライアントを管理する擬似コード（pseudocode）の実施形態の説明である。コード５００は、スライドウィンドウを持つ異なる周期的位置決定間隔を管理するアルゴリズムに関するロジックを表す。コード５００は、図１のシステム１００又は図２のシステム２００によって実行されるロジックの１つの実例であり得る。図４の表４００は、実行されたコード５００に起因する動作の実例を表すことができる。コード５００は、擬似コード表現であって、そして、それ故に、任意のコード言語でソフトウェアにおいて実装することができ、及び／又は専用のロジックによってハードウェアにおいて実装することができる。１つの実施形態において、プログラマブルロジックアレイは、コード５００を実行するようにプログラム可能であり得る。
【００３３】
１つの実施形態において、コード５００の流れは、以下の通りである。行５０２において、コード５００は、すべてのクライアントの配列又はリストを作成し、そこで変数、ＮＵＭ＿ＣＬＩＥＮＴＳが、登録されたクライアントの数であることが理解される。１つの実施形態において、コード５００において示されていない他のロジックは、クライアントの追加又は削除及びクライアント変数の数の更新に責任を持つことができる。１つの実施形態において、配列は、各クライアントについての情報を有する構造体の配列であり得る。実例の目的で、コード５００において、クライアント配列は、各クライアントの間隔時間を示すものとして理解することができる。行５０４において、コードは、各クライアントに対する残り時間の配列又はリストを作成する。残り時間リストは、各クライアントに対するクライアントカウントとして指すことができる。それ故に、配列は、タイマによってカウントされる量によってデクリメントされるカウントである実装を前提とし、したがって、クライアント間隔に達するまで残っている時間を示す。明確に説明していないが、システムは、各クライアントに対する初期カウント又はクライアント間隔を指定する情報を含む。
【００３４】
行５０６で、コードは、様々なクライアントに対する周期的位置決定間隔を管理するループに入る。行５２６で、クライアントがセンサシステムに申し込んでいる間、ループは永久に続けることができる。行５０８で、１つの実施形態において、コードは、様々なクライアントに対するカウントを示す、ＲｅｍａｉｎｉｎｇＴｉｍｅ配列におけるすべての値の最小値に等しい、Ｔｍｉｎ値を計算する。１つの実施形態において、コード５００は、Ｔｍｉｎの周期に対するタイマカウントを有する。行５１０で、コード５００は、時間Ｔｍｉｎでセンサデータをリクエストするためのコール方法を説明する。ＲｅｑｕｅｓｔＳｅｎｓｏｒＤａｔａＱは、独立変数として示された期間にセンサデータを取得するコール方法を表す。それ故に、センサシステムは、Ｔｍｉｎの指定の期間が経過したとき、現在のセンサ情報を持つことができる。
【００３５】
行５１２で、１つの実施形態において、コード５００は、ＲｅｍｉａｎｉｎｇＴｉｍｅ配列中の値又はカウントを更新するループに入る。１つの実施形態において、ＲｅｍａｉｎｉｎｇＴｉｍｅ配列における各ｉエントリに対して、コードは、以下を実行することができる。行５１４で、コードは、現在の周期、Ｔｍｉｎによって各クライアントに対するカウントをデクリメントする。行５１６で、コードは、クライアントカウント（ＲｅｍａｉｎｉｎｇＴｉｍｅ配列のエントリ）のいずれかがゼロに等しいときを決定する。上述の議論から分かるように、ゼロまでカウントをデクリメントすることは、クライアントに対する間隔が経過したことを決定する１つの方法であることが理解できる。クライアントに対する間隔が経過した場合、１つの実施形態において、コードは、特定のクライアントに対する間隔に対する残りの時間をリセットする。
【００３６】
それ故に、行５１８で、コードは、Ｃｌｉｅｎｔｓ配列内の対応するクライアントに対して指定された間隔時間にＲｅｍａｉｎｉｎｇＴｉｍｅ配列内のエントリをセットすることができる。行５２０で、コード５００は、処理、ＳｅｎｄＮｏｔｉｆｉｃａｔｉｏｎＱを実行することができ、この処理は、処理の独立変数に示されたクライアントへ通知を送信するか又はデータを送信する。行５２０で独立変数は、（Ｃｌｉｅｎｔｓ［ｉ］）として示され、それは、行５２０の目的で、行５１８でクライアントと関連した間隔の代わりに、クライアント自身の識別（identification）を指すことが理解できる。行５２２で、行５１６で始まったループが終わる。行５２４で、行５１２で始まったｆｏｒループが終わる。それ故に、コード５００は、指定された周期をリセットし、各クライアントに対するカウントを調整するロジックを再び通じて繰り返すことができる。
【００３７】
図６は、異なる周期的位置決定を持つクライアントを管理するプロセスの実施形態の流れ図である。プロセス６００は、スライドウィンドウを使うプロセスとスライドウィンドウを使わないプロセスの両方を一般的に示すことを意図する。１つの実施形態において、異なる周期的位置決定間隔を有する複数のクライアントをセンサシステムに登録する（６０２）。複数のクライアントは同じ周期的位置決定間隔を持つことができ、説明した動作は、それでも有効であることが理解できる。１つの実施形態において、センサシステムに関する処理ロジック又はプロセッサは、各クライアントに対する間隔を示すデータを含むクライアントのリストを生成する（６０４）。様々な動作を実行するセンサシステムへの以下での言及は、説明した動作を実行するセンサシステムのプロセッサ又は他の処理ロジックを指すことができる。説明は、簡単のために動作を実行するセンサシステムに言及し、どのコンポーネント又は要素が動作を実行するかを限定する目的はない。
【００３８】
１つの実施形態において、センサシステムは指定した周期に対してタイマを設定し、タイマを開始する（６０６）。タイマは、指定した周期に達するまでカウントし又は繰り返す。センサシステムは、タイマが指定した周期に達したことを決定する（６０８）。周期に達してない場合、いいえに分岐し（６１０）、タイマはカウントを継続する（６０８）。周期に達したとき、はいに分岐し（６１０）、センサシステムは指定された周期によって各クライアントのカウントを調整する（６１２）。１つの実施形態において、センサシステムは、指定した周期に等しい量によって各カウントをデクリメントする。１つの実施形態において、センサシステムは、実装により、指定した周期によって各カウントをインクリメントすることができる。
【００３９】
１つの実施形態において、センサシステムは、関連するクライアントに対して調整したカウントのいずれかが間隔に達した場合を決定する（６１４）。再び、センサシステムは、各カウントを関連する間隔に設定し、次に、カウントがゼロになったとき、カウントが間隔に達したことを決定する。間隔に達していないいずれかのクライアントカウントに対して、いいえに分岐し（６１６）、センサシステムは、タイマカウントを持ち続け、その結果、クライアントのカウントを調整する。間隔に達したいずれのクライアントに対しても、はいへ分岐し（６１６）、センサシステムは、関連するクライアントへ通知する（６１８）。１つの実施形態において、センサシステムは、間隔に達した各クライアントに対してクライアントカウントをリセットする（６２０）。代案として、各クライアントに対するカウントは、間隔に達した各時間に対して単にモニタすることができる。
【００４０】
１つの実施形態において、センサシステムは、スライドウィンドウを持つクライアントカウントを管理する。スライドウィンドウが使われない場合、センサシステムは、各クライアントに対してカウントを調整した後、次の繰り返しに対してタイマをリセットするために戻ることができる（６０６）。スライドウィンドウがある、１つの実施形態において、センサシステムは、それぞれのクライアントと関連する間隔に最も近いクライアントカウントを特定することができる（６２２）。センサシステムは、それぞれの間隔に最も近いと決定されたカウントの値に等しい値に指定した周期をリセットする。指定した周期を間隔に最も近い値にリセットした後、センサシステムは、指定した周期と等しくなるようにタイマをリセットすることができる（６０６）。クライアントが登録したままである間は、センサシステムは、タイマに対して指定した周期を通して繰り返す（iterate：反復する）ことを続けることができる。
【００４１】
図７は、異なる周期的位置決定を持つクライアントを管理するコンピューティングシステムを実装することができる実施形態のブロック図である。システム７００は、本明細書で説明される任意の実施形態に従うコンピューティングデバイスを表し、それは、ラップトップコンピュータ、デスクトップコンピュータ、サーバ、ゲーム又はエンタテインメントコントロールシステム、スキャナ、コピー機、プリンタ、ルーティング又はスイッチングデバイス、センサデバイス、リクエストサービスデバイス、又は他の電子デバイスであり得る。システム７００は、プロセッサ７２０を含み、プロセッサは、システム７００ための処理、動作管理、及び命令の実行を提供する。プロセッサ７２０は、マイクロプロセッサ、中央処理装置（ＣＰＵ）、プロセッシングコア、又はシステム７００のために処理を提供する他の処理ハードウェアの任意のタイプを含むことができる。プロセッサ７２０は、システム７００の全体的な動作を管理し、プログラマブル汎用又は特定用途マイクロプロセッサ、デジタルシグナルプロセッサ（ＤＰＳｓ）、プログラマブルコントローラ、特定用途向け集積回路（ＡＳＩＣｓ）、プログラマブルロジックデバイス（ＰＬＤｓ）、又はなど、又はそのようなデバイスの組合せであり、又はそれらの１つ以上を含むことができる。
【００４２】
メモリサブシステム７３０は、システム７００のメインメモリを表し、プロセッサ７２０によって実行されるコード、又はルーチンを実行するのに使用されるデータ値に対して一時的な記憶を提供する。メモリサブシステム７３０は、リードオンリメモリ（ＲＯＭ）、フラッシュメモリ、１つ以上の様々なランダムアクセスメモリ（ＲＡＭ）、又は他のメモリデバイス、又はそのようなデバイスの組合せなどの１つ以上のメモリデバイスを含むことができる。メモリサブシステム７３０は、とりわけ、オペレーティングシステム（ＯＳ）７３７を記憶し、ホストすることによって、システム７００内の命令の実行に対するソフトウェアプラットフォームを提供する。加えて、他の命令７３８は、メモリサブシステム７３０から記憶され、実行され、システム７００のロジック及び処理を提供する。ＯＳ７３７及び命令７３８は、プロセッサ７２０によって実行される。メモリサブシステム７３０は、データ、命令、プログラム、又は他のアイテムを記憶するメモリデバイス７３２を含む。１つの実施形態において、メモリサブシステムは、メモリコントローラ７３４を含み、メモリコントローラは、メモリデバイス７３２に対してコマンドを生成し、発行するメモリコントローラである。メモリコントローラ７３４は、プロセッサ７２０の物理的な一部であり得ることが理解できる。
【００４３】
プロセッサ７２０及びメモリサブシステム７３０は、バス／バスシステム７１０に接続される。バス７１０は、適切なブリッジ、アダプタ、及び／又はコントローラにより接続された、別個の物理バス、通信ライン／インタフェース、及び／又はポイントツーポイント接続の１つ以上を表す抽象概念である。したがって、バス７１０は、例えば、システムバス、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）バス、ＨｙｐｅｒＴｒａｎｓｐｏｒｔ又は業界標準アーキテクチャ（ＩＳＡ）バス、スモールコンピュータシステムインタフェース（ＳＣＳＩ）バス、ユニバーサルシリアルバス（ＵＳＢ）、又は電気電子技術者協会（ＩＥＥＥ）標準規格１３９４バス（一般に「ファイヤワイヤ」として参照される）の１つ以上を含むことができる。バス７１０のバスは、ネットワークインタフェース７５０のインタフェースにも対応することができる。
【００４４】
システム７００は、１つ以上の入力／出力（Ｉ／Ｏ）インタフェース７４０、ネットワークインタフェース７５０、１つ以上の内部大容量記憶デバイス７６０、バス７１０に接続された周辺機器インタフェース７７０も含む。Ｉ／Ｏインタフェース７４０は、ユーザがそれを介してシステム７００と相互作用する１つ以上のインタフェースコンポーネントを含むことができる（例えば、ビデオ、オーディオ、及び／又は英数字のインタフェースなど）。１つの実施形態において、Ｉ／Ｏインタフェース７４０は、ユーザに出力を提供する高解像度（ＨＤ）ディスプレイを含むことができる。高解像度ディスプレイは、約１００ＰＰＩ（pixels  per  inch：１インチ当たりのピクセル）又はそれを超えるピクセル密度を有するディスプレイを指すことができ、フルＨＤ（例えば、１０８０ｐ）、レティナディスプレイ、４Ｋ（超高解像度又はＵＨＤ）、又はその他のフォーマットを含むことができる。高解像度は、ピクセルディスプレイと同等な表示品質を持つ投影型ディスプレイ（例えば、ヘッドマウントディスプレイ）を指すこともできる。ネットワークインタフェース７５０は、１つ以上のネットワークを介して、リモートデバイス（例えば、サーバ、他のコンピューティングデバイス）と通信する能力をシステム７００に提供する。ネットワークインタフェース７５０は、イーサネット（登録商標）アダプタ、ワイヤレス相互接続コンポーネント、ＵＳＢ（ユニバーサルシリアルバス）、又は他の有線又はワイヤレスの規格に基づく又はプロプライエタリなインタフェースを含むことができる。
【００４５】
記憶装置７６０は、磁気、半導体、又は光ベースのディスク、又はそれらの組合せの１つ以上などの不揮発性の方法で大量のデータを記憶するための従来の媒体であり、又は従来の媒体を含むことができる。記憶装置７６０は、持続的な状態でコード又は命令及びデータ７６２を保持する（すなわち、システム７００の電源が遮断されても値は保持される）。記憶装置７６０は、一般的に「メモリ」と考えることができ、メモリ７３０は、命令をプロセッサ７２０に提供する実行する又は動作するメモリである。記憶装置７６０が不揮発性であるのに対し、メモリ７３０は、揮発性メモリを含むことができる（すなわち、システム７００への電力が遮断された場合、データの値又は状態は、確定できない）。
【００４６】
周辺機器インタフェース７７０は、特に上述されていない任意のハードウェアインタフェースを含むことができる。周辺機器は、一般にシステム７００に依存して接続される装置を一般に指す。従属する接続（dependent  connection）は、動作が実行され、ユーザと相互作用をするソフトウェア及び／又はハードウェアプラットフォームを提供するシステム７００の１つである。
【００４７】
１つの実施形態において、システム７００は、クライアント制御７８０を含み、それは、システム７００に本明細書で説明した任意の実施形態に従う異なる周期的位置決定を持つ複数のクライアントにサービスできるようにする。１つの実施形態において、クライアント制御７８０は、各クライアントと関連するクライアントカウントを管理する。クライアント制御は、各カウントを管理し、各クライアントに対して間隔が経過したときを決定することができる。クライアントに対する間隔に達したとき、システム７００は、クライアントに通知することができる。
【００４８】
図８は、異なる周期的位置決定を有するクライアントの管理が実装され得るモバイルデバイスの実施形態のブロック図である。デバイス８００は、コンピューティングタブレット、携帯電話又はスマートフォン、ワイヤレス使用可能ｅリーダ、ウェアラブルコンピューティングデバイス、又は他のモバイルデバイスなどのモバイルコンピューティングデバイスを表す。コンポーネントのいくつかは、一般的に示されているが、そのようなデバイスのすべてのコンポーネントはデバイス８００中に示されていないことが理解できる。
【００４９】
デバイス８００は、プロセッサ８１０を含み、プロセッサは、デバイス８００の主要な処理動作を実行する。プロセッサ８１０は、マイクロプロセッサ、アプリケーションプロセッサ、マイクロコントローラ、プログラマブルロジックデバイス、又は他の処理手段などの１つ以上の物理的デバイスを含むことができる。プロセッサ８１０によって実行される処理動作は、アプリケーション及び／又はデバイス機能が実行されるオペレーティングプラットフォーム又はオペレーティングシステムの実行を含む。処理動作は、ユーザ又は他をデバイスとのＩ／Ｏ（入力／出力）に関連する動作、電源管理に関連する動作、及び／又はデバイス８００の他のデバイスへの接続に関連する動作を含む。処理動作は、オーディオＩ／Ｏ及び／又はディスプレイＩ／Ｏに関連する動作も含むことができる。
【００５０】
１つの実施形態において、デバイス８００は、オーディオサブシステム８２０を含み、オーディオサブシステム８２０は、コンピュータデバイスにオーディオ機能を提供することに関連するハードウェアコンポーネント（例えば、オーディオハードウェア及びオーディオ回路）及びソフトウェアコンポーネント（例えば、ドライバ、コーデック）を表す。オーディオ機能は、スピーカ及び／又はヘッドフォン出力、マイクロフォン入力を含むことができる。そのような機能に関するデバイスは、デバイス８００の中に統合したり、デバイス８００に接続したりすることができる。１つの実施形態において、プロセッサ８１０によって受信され、処理されるオーディオコマンドを提供することによってユーザはデバイス８００と相互作用する。  
【００５１】
ディスプレイサブシステム８３０は、ユーザに対して視覚的及び／又は触覚的な提示を提供することによってコンピューティングデバイスと相互作用するハードウェアコンポーネント（例えば、ディスプレイデバイス）及びソフトウェアコンポーネント（例えば、ドライバ）を表す。ディスプレイサブシステム８３０は、ディスプレイインタフェース８３２を含み、それは、ユーザに表示を提供するために使用される特定のスクリーン又はハードウェアデバイスを含む。１つの実施形態において、ディスプレイインタフェース８３２は、プロセッサ８１０から分離されたロジックを含み、ディスプレイに関連する少なくともいくつかの処理を実行する。１つの実施形態において、ディスプレイサブシステム８３０は、ユーザに出力と入力の両方を提供するタッチスクリーンデバイスを含む。１つの実施形態において、ディスプレイサブシステム８３０は、ユーザに出力を提供する高解像度（ＨＤ）ディスプレイを含む。高解像度は、約１００ＰＰＩ（pixels  per  inch：１インチ当たりのピクセル）又はそれを超えるピクセル密度を有するディスプレイを指すことができ、フルＨＤ（例えば、１０８０ｐ）、レティナディスプレイ、４Ｋ（超高解像度又はＵＨＤ）、又はその他などのフォーマットを含むことができる。
【００５２】
Ｉ／Ｏコントローラ８４０は、ユーザとの相互作用に関連するハードウェアデバイス及びソフトウェアコンポーネントを表す。Ｉ／Ｏコントローラ８４０は、オーディオサブシステム８２０及び／又はディスプレイサブシステム８３０の一部であるハードウェアを管理するように動作することができる。追加的に、Ｉ／Ｏコントローラ８４０は、それを介してユーザがシステムと相互作用することができるデバイス８００に接続された追加のデバイスに対する接続点（connection  point）を説明する。例えば、デバイス８００に接続することができるデバイスは、マイクロフォンデバイス、スピーカ又はステレオシステム、ビデオシステム又は他の表示デバイス、キーボード又はキーパッドデバイス、又はカードリーダ又は他のデバイスなどのユーザに対する特定のアプリケーションとの他のＩ／Ｏデバイスを含むことができる。
【００５３】
上述の通り、Ｉ／Ｏコントローラ８４０は、オーディオサブシステム８２０及び／又はディスプレイサブシステム８３０と相互作用することができる。例えば、マイクロフォン又は他のオーディオデバイスを介した入力は、デバイス８００のアプリケーション又は機能の１つ以上に対して入力又はコマンドを提供することができる。追加的に、オーディオ出力は、ディスプレイ出力に代えて又は追加として提供することができる。別の実例において、ディスプレイサブシステムがタッチスクリーンを含んでいる場合、ディスプレイデバイスは、入力デバイスとして動作することもでき、それは、Ｉ／Ｏコントローラ８４０によって少なくとも部分的に管理することができる。Ｉ／Ｏコントローラ８４０によって管理されるＩ／Ｏ機能を提供するためにデバイス８００上に追加のボタン又はスイッチがある場合もある。
【００５４】
１つの実施形態において、Ｉ／Ｏコントローラ８４０は、加速度計、カメラ、光センサ又は他の環境センサ、ジャイロスコープ、グローバルポジショニングシステム（ＧＰＳ）、又はデバイス８００に含むことができる他のハードウェアなどのデバイスを管理する。入力は、直接ユーザ相互作用の一部であり得ると同様にその動作に影響を与えるシステムへの環境入力（ノイズのフィルタリング、明るさ検出に対するディスプレイの調整、カメラに対するフラッシュの適用、又は他の特徴）も提供することができる。１つの実施形態において、デバイス８００は、バッテリ電源使用、バッテリの充電、及び省電力動作に関連する機能を管理する電源管理８５０を含む。
【００５５】
メモリサブシステム８６０は、デバイス８００に情報を記憶するためのメモリデバイス８６２を含む。メモリサブシステム８６０は、不揮発性（メモリデバイスへの電力が遮断した場合、状態が変わらない）及び／又は揮発性（メモリデバイスへの電力が遮断した場合、状態が確定できない）メモリデバイスを含むことができる。メモリ８６０は、アプリケーションデータ、ユーザデータ、音楽、写真、ドキュメント、又は他のデータと同様にシステム８００のアプリケーション及び機能の実行に関連するシステムデータ（長期間か一時的かのいずれにしても）を含むことができる。１つの実施形態において、メモリサブシステム８６０は、メモリコントローラ８６４（システム８００の制御の一部とも考えることができ、プロセッサ８１０の一部とも潜在的に考えることもできる）を含む。メモリコントローラ８６４は、メモリデバイス８６２に対してコマンドを生成し、発行するスケジューラを含む。
【００５６】
接続性（connectivity）８７０は、デバイス８００に外部デバイスとの通信を可能にするハードウェアデバイス（例えば、無線及び／又は有線コネクタ及び通信ハードウェア）及びソフトウェアコンポーネント（例えば、ドライバ、プロトコルスタック）を含む。外部デバイスは、他のコンピューティングデバイス、ワイヤレスアクセスポイント又は基地局と同様にヘッドセット、プリンタ、又は他のデバイスなどの周辺機器などの別個のデバイスであり得る。
【００５７】
接続性８７０は、複数の異なるタイプの接続性を含むことができる。一般化するために、デバイス８００は、セルラ接続性８７２及びワイヤレス接続性８７４と共に説明してある。セルラ接続性８７２は、ＧＳＭ（登録商標）（モバイル通信のためのグローバルシステム）又は変形又は派生物、ＣＤＭＡ（符号分割多重アクセス）又は変形又は派生物、ＴＤＭ（時分割多重化）又は変形又は派生物、ＬＴＥ（ロングタームエボリューション−「４Ｇ」としても指される）、又は他のセルラサービス標準を経由して提供されるなどのワイヤレスキャリアによって提供されるセルラネットワーク接続性を一般に指す。ワイヤレス接続性８７４は、セルラではないワイヤレス接続性を指し、パーソナルアリアネットワーク（Ｂｌｕｅｔｏｏｔｈ（登録商標）などの）、ローカルエリアネットワーク（ＷｉＦｉなどの）、及び／又はワイドアリアネットワーク（ＷｉＭａｘなどの）、又は他のワイヤレス通信を含むことができる。ワイヤレス通信は、非固体媒体を通して変調された電磁気放射の使用を通したデータの送信を指す。有線通信は、固体通信媒体を介して起こる。
【００５８】
周辺機器接続８８０は、ハードウェアインタフェース及びコネクタと同様に周辺機器接続を構成するソフトウェアコンポーネント（例えば、ドライバ、プロトコルスタックなど）を含む。デバイス８００は、他のコンピューティングデバイスに対する周辺機器デバイス（「他のデバイスへ（ｔｏ）」８８２）と同様に周辺機器デバイス（「他のデバイスから（ｆｒｏｍ）」８８４）をデバイス８００に接続する、の両方であり得ることが理解できる。デバイス８００は、デバイス８００上のコンテンツを管理する（例えば、ダウンロード、及び／又はアップロード、変更、同期）などの目的で、他のコンピューティングデバイスに接続するための「ドッキング（docking）」コネクタを通常有する。追加として、ドッキングコネクタは、デバイス８００に例えば、オーディオビジュアル又は他のシステムへコンテンツ出力を制御することを許すある周辺機器にデバイス８００が接続することを許すことができる。
【００５９】
プロプライエタリなドッキングコネクタ又はプロプライエタリな接続ハードウェアに加えて、デバイス８００は、共通の又は標準規格ベースのコネクタ経由で周辺機器接続８８０を可能にする。共通タイプは、ユニバーサルシリアルバス（ＵＳＢ）コネクタ（異なるハードウェアインタフェースの多くのいずれかを含むことができる）、ＭｉｎｉＤｉｓｐｌａｙＰｏｒｔ（ＭＤＰ）を含むＤｉｓｐｌａｙＰｏｒｔ、ハイディフィニションマルチメディアインタフェース（ＨＤＭＩ（登録商標））、Ｆｉｒｅｗｉｒｅ、又は他のタイプを含む。
【００６０】
１つの実施形態において、システム８００は、クライアント制御８４２を含み、クライアント制御８４２は、システム８００が本明細書で説明した任意の実施形態に従って異なる周期の位置決定を持つ複数のクライアントにサービスすることができるようにする。１つの実施形態において、クライアント制御８４２は、各クライアントと関連するクライアントカウントを管理する。クライアント制御は、各カウントを管理し、各クライアントに対して間隔が経過したときを決定する。各クライアントの間隔に達したとき、システム８００は、クライアントに通知する。
【００６１】
１つの態様において、周期的位置決定リクエストを管理する方法であって、タイマが指定された周期でインクリメントされたことを検出することと、複数のクライアントのそれぞれに関連するカウントを前記指定された周期で調整することであって、前記複数のクライアントは、前記異なる周期的位置決定リクエスト間隔のそれぞれで、前記クライアントのそれぞれにデータを提供するセンサハブプロセッサと共に異なる周期的位置決定リクエスト間隔を有し、前記調整することが、前記関連するクライアントに対して前記周期的位置決定リクエスト間隔のそれぞれにいずれかのカウントが達するようにすることを決定することと、カウントが前記周期的位置決定リクエスト間隔に達したいずれかのクライアントに通知することと、を含む、方法。
【００６２】
１つの実施形態において、前記指定された周期は、すべての異なる周期的位置決定リクエスト間隔の最大公約数を含む。１つの実施形態において、次の反復に対して前記指定された周期を再計算することをさらに含む。１つの実施形態において、前記指定された周期を再計算することが、前記周期的位置決定リクエスト間隔のそれぞれに達していないすべてのカウントに対して、そのそれぞれの周期的位置決定リクエスト間隔に対する最小の差を持つカウントを決定することと、前記決定された最小の差に前記指定された周期をリセットすることとを含む。１つの実施形態において、前記指定された周期によって前記カウントを調整することが、前記カウントをデクリメントすることを含み、前記周期的位置決定リクエスト間隔のそれぞれに達するいずれかのカウントを調整することを決定することが、前記デクリメントがいずれかのカウントをゼロにすることを判定することを含む。１つの実施形態において、ゼロに達していないすべてのカウントに対する最小値のカウントを決定することと、前記指定された周期を前記決定した最小値のカウントにリセットすることとをさらに含む。１つの実施形態において、前記クライアントに通知することが、前記クライアントに位置情報を提供することを含む。１つの実施形態において、カウントが前記周期的位置決定リクエスト間隔に達したすべてのクライアントに対して前記カウントをリセットすることをさらに含む。
【００６３】
１つの態様において、周期的位置決定リクエストを管理するフロントエンドインタフェース回路であって、複数のクライアントに接続するためのハードウェアＩ／Ｏ（入力／出力）コネクタであって、前記複数のクライアントは、異なる周期的位置決定リクエスト間隔を有し、タイマと、前記異なる周期的位置決定リクエスト間隔のそれぞれにおいて前記クライアントのそれぞれにデータを提供するプロセッサであって、前記プロセッサは、前記タイマが指定された周期をインクリメントしたときを検出し、前記指定された周期によって前記複数のクライアントのそれぞれと関連するカウントをデクリメントし、カウントがゼロに達したいずれかのクライアントに通知することとを含む。
【００６４】
１つの実施形態において、前記指定された周期は、すべての異なる周期的位置決定リクエスト間隔の最大公約数を含む。１つの実施形態において、前記プロセッサが、次の繰り返しに対する前記指定された周期を再計算することを含む。１つの実施形態において、前記プロセッサは、前記周期的位置決定リクエスト間隔のそれぞれに達していないすべてのカウントに対して、そのそれぞれの周期的位置決定リクエスト間隔に対する最小の差を有するカウントを決定し、前記指定された周期を前記決定された最小の差にリセットすることを含む。１つの実施形態において、前記プロセッサが、ゼロに達していないすべてのカウントに対して最小値のカウントを決定し、前記指定された周期を前記決定された最小値のカウントにリセットすることをさらに含む。１つの実施形態において、前記プロセッサは、前記クライアントに位置情報を提供する。１つの実施形態いおいて、前記プロセッサが、カウントがゼロに達したすべてのクライアントに対して前記カウントをリセットすることを含む。
【００６５】
１つの態様において、複数の異なる周期的位置決定リクエストを管理する電子デバイスであって、前記電子デバイスは、フロントエンドインタフェース回路と前記フロントエンドインタフェース回路からアクセスされるデータに基づいて表示を生成するように接続されたタッチスクリーンディスプレイとを含み、前記フロントエンドインタフェース回路は、複数のクライアントに接続されたハードウェアＩ／Ｏ（入力／出力）コネクタであって、前記複数のクライアントは異なる位置周期的決定リクエスト間隔を有するものであり、タイマと、前記異なる周期的位置決定リクエスト間隔のそれぞれにおいて前記クライアントのそれぞれにデータを提供するセンサプロセッサであって、前記センサプロセッサは、前記タイマが指定された周期をインクリメントしたときを検出し、前記指定された周期によって前記複数のクライアントのそれぞれと関連するカウントを調整し、前記調整が、いずれかのカウントを前記関連したクライアントに対してそれぞれの周期的位置決定リクエスト間隔に達するようにしたこと決定し、カウントが前記周期的位置決定リクエスト間隔のそれぞれに達したいずれのクライアントに通知するを含む。
【００６６】
１つの実施形態において、前記指定された周期は、すべての異なる周期的位置決定リクエスト間隔の最大公約数を含む。１つの実施形態において、前記センサプロセッサは、各繰り返しに対して前記指定された周期をさらに計算する。１つの実施形態において、前記センサプロセッサは、前記周期的位置決定リクエスト間隔のそれぞれに達していないすべてのカウントに対して、そのそれぞれの周期的位置決定リクエスト間隔に対する最小の差を持つカウントを決定し、及び前記指定された周期を前記決定された最小の差にリセットすることを含む、前記指定された周期を計算する。１つの実施形態において、前記センサプロセッサは、前記指定された周期で各カウントをデクリメントし、前記デクリメントがいずれかのカウントをゼロに達しさせることを決定する。１つの実施形態において、前記センサプロセッサは、前記クライアントに位置情報を提供する。１つの実施形態において、前記センサプロセッサが、カウントがゼロに達したすべてのクライアントに対して前記カウントをリセットすることをさらに含む。
【００６７】
１つの態様において、コンテンツをその中に記憶したコンピュータ読取可能記憶媒体を含む製品であって、実行されたときに周期的位置決定リクエストを管理する動作を実行し、タイマが指定された周期でインクリメントされたことを検出することと、複数のクライアントのそれぞれに関連するカウントを前記指定された周期で調整することであって、前記複数のクライアントは、前記異なる周期的位置決定リクエスト間隔のそれぞれで、前記クライアントのそれぞれにデータを提供するセンサハブプロセッサと共に異なる周期的位置決定リクエスト間隔を有し、前記調整することが、前記関連するクライアントに対して前記周期的位置決定リクエスト間隔のそれぞれにいずれかのカウントが達するようにすることを決定することと、カウントが前記周期的位置決定リクエスト間隔に達したいずれかのクライアントに通知することとを含む。１つの実施形態において、前記指定された周期は、すべての異なる周期的位置決定リクエスト間隔の最大公約数を含む。１つの実施形態において、次の反復に対して前記指定された周期を再計算することをさらに含む。１つの実施形態において、前記指定された周期を再計算することが、前記周期的位置決定リクエスト間隔のそれぞれに達していないすべてのカウントに対して、そのそれぞれの周期的位置決定リクエスト間隔に対する最小の差を持つカウントを決定することと、前記決定された最小の差に前記指定された周期をリセットすることとを含む。１つの実施形態において、前記指定された周期によって前記カウントを調整することが、前記カウントをデクリメントすることを含み、前記周期的位置決定リクエスト間隔のそれぞれに達するいずれかのカウントを調整することを決定することが、前記デクリメントがいずれかのカウントをゼロにすることを判定することを含む。１つの実施形態において、ゼロに達していないすべてのカウントに対する最小値のカウントを決定することと、前記指定された周期を前記決定した最小値のカウントにリセットすることとをさらに含む。１つの実施形態において、前記クライアントに通知することが、前記クライアントに位置情報を提供することを含む。１つの実施形態において、カウントが前記周期的位置決定リクエスト間隔に達したすべてのクライアントに対して前記カウントをリセットすることをさらに含む。
【００６８】
１つの態様において、周期的位置決定リクエストを管理する装置であって、タイマが指定された周期でインクリメントされたことを検出する手段と、複数のクライアントのそれぞれに関連するカウントを前記指定された周期で調整する手段であって、前記複数のクライアントは、前記異なる周期的位置決定リクエスト間隔のそれぞれで、前記クライアントのそれぞれにデータを提供するセンサハブプロセッサと共に異なる周期的位置決定リクエスト間隔を有し、前記調整する手段が、前記関連するクライアントに対して前記周期的位置決定リクエスト間隔のそれぞれにいずれかのカウントが達するようにすることを決定する手段と、カウントが前記周期的位置決定リクエスト間隔に達したいずれかのクライアントに通知する手段とを含む。
【００６９】
１つの実施形態において、前記指定された周期は、すべての異なる周期的位置決定リクエスト間隔の最大公約数を含む。１つの実施形態において、前記プロセッサが、次の繰り返しに対する前記指定された周期を再計算する手段を含む。１つの実施形態において、前記指定された周期を再計算する手段は、前記周期的位置決定リクエスト間隔のそれぞれに達していないすべてのカウントに対して、そのそれぞれの周期的位置決定リクエスト間隔に対する最小の差を有するカウントを決定し、前記指定された周期を前記決定された最小の差にリセットすることを含む。１つの実施形態において、前記指定された周期によって前記カウントを調整する手段が、前記カウントをデクリメントする手段を含み、前記周期的位置決定リクエスト間隔のそれぞれに達するいずれかのカウントを調整することを決定する手段が、前記デクリメントがいずれかのカウントをゼロにすることを判定する手段を含む。１つの実施形態において、ゼロに達していないすべてのカウントに対して最小値のカウントを決定し、前記指定された周期を前記決定された最小値のカウントにリセットする手段をさらに含む。１つの実施形態において、前記クライアントに通知する手段が、前記クライアントに位置情報を提供する手段を含む。１つの実施形態において、カウントが前記周期的位置決定リクエスト間隔に達したすべてのクライアントに対して前記カウントをリセットする手段をさらに含む。
【００７０】
本明細書で説明した流れ図は、様々なプロセス活動のシーケンスの実例を提供する。流れ図は、ソフトウェア又はファームウェアルーチン、及び物理的動作によって実行される動作を示すことができる。１つの実施形態において、流れ図は、有限状態機械（ＦＳＭ）の状態を説明することができ、ＦＳＭは、ハードウェア及び／又はソフトウェアにおいて実装することができる。特定のシーケンス又は順序で示されていても、特別の定めがない限り、動作の順番は変更可能である。それ故に、説明した実施形態は、実例としてのみ理解されるべきであり、プロセスは、異なる順序で実行することができ、いくつかのアクションは、平行して実行することができる。追加として、１つ以上のアクションは、様々な実施形態において省略することができ、それ故に、すべての実施形態において必ずしもすべてのアクションが必要ではない。他の処理の流れも可能である。
【００７１】
様々な動作又は機能が本明細書で説明される範囲で、それらは、ソフトウェアコード、命令、構成、及び／又はデータとして説明され、定義されることができる。コンテンツは、そのまま実行ファイル（「オブジェクト」又は「実行可能な」形式）、ソースコード、又は異なるコード（「デルタ」又は「パッチ」コード）であり得る。本明細書で説明した実施形態のソフトウェアコンテンツは、その中にコンテンツが記憶された製造品を経由して、又は通信インタフェースを経由してデータを送信する通信インタフェースの動作方法を経由して、提供することができる。機械読取可能記憶媒体は、機械に説明した機能又は動作を実行するようにし、記録可能／非記録可能媒体（例えば、リードオンリメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイスなどの）など機械（例えば、コンピューティングデバイス、電子システムなど）によってアクセス可能なフォームで情報を記憶する任意のメカニズムを含む。通信インタフェースは、メモリバスインタフェース、プロセッサバスインタフェース、インターネット接続、ディスクコントローラなどの他のデバイスと通信するハードワイヤード、ワイヤレス、光学や媒体などのいずれかとインタフェースする任意のメカニズムを含む。通信インタフェースは、ソフトウェアコンテンツを表現するデータ信号を提供する通信インタフェースを準備するために構成パラメータを提供し及び／又は信号を送信することによって構成することができる。通信インタフェースは、通信インタフェースに送られる１つ以上のコマンド又は信号を経由して、アクセスすることができる。
【００７２】
本明細書で説明される様々なコンポーネントは、説明した動作又は機能を実行するための手段であり得る。本明細書で説明した各コンポーネントは、ソフトウェア、ハードウェア、又はそれらの組合せを含む。コンポーネントは、ソフトウェアモジュール、ハードウェアモジュール、特定用途ハードウェア（例えば、特定用途ハードウェア、特定用途向け集積回路（ＡＳＩＣ）、デジタルシグナルプロセッサ（ＤＳＰ）など）、組み込みコントローラ、ハードワイヤード回路などとして、実装することができる。
【００７３】
本明細書で説明したことに加えて、様々な変更は本範囲を逸脱することなく本発明の開示した実施形態及び実装に対して行うことができる。したがって、本明細書での説明及び実例は、説明に役に立つものとして解釈され、限定的な意味で解釈されるべきではない。本発明の範囲は、以下の請求項を参照のみして判定されるべきである。
【図１】
2018503276.tif 000003
【図２】
2018503276.tif 000004
【図３】
2018503276.tif 000005
【図４】
2018503276.tif 000006
【図５】
2018503276.tif 000007
【図６】
2018503276.tif 000008
【図７】
2018503276.tif 000009
【図８】
2018503276.tif 000010
【国際調査報告】
2018503276.tif 000011
2018503276.tif 000012
2018503276.tif 000013