(57)【特許請求の範囲】
【請求項１】
アナログフロントエンド（ＡＦＥ）を動作させる方法であって、
前記ＡＦＥに結合された複数のセンサのうち１つを選択することと、
前記センサから入力センサデータを受信することと、
前記入力センサデータに基づいて前記センサについての特徴を計算することであって、前記特徴は、前記センサの動作状態を示し、前記特徴は、前記センサに対する前記ＡＦＥの選択された動作条件情報を表す、ことと、
前記の計算された特徴に基づいて、前記センサに対する前記ＡＦＥの複数の別個の動作状態のうち１つを判定することと、
前記ＡＦＥの動作を動的に調整して、前記の判定された動作状態に基づいて前記センサとインターフェースすることであって、前記ＡＦＥが前記センサから前記入力センサデータを如何にして受信するかを制御する前記ＡＦＥの構成を制御することを含む、ことと、
を含む方法。
【請求項２】
前記特徴を計算することは、
少なくとも信号平均、信号標準偏差、及び実際のパワーを計算すること
をさらに含む、請求項１に記載の方法。
【請求項３】
前記特徴を計算することは、
ある時間ウィンドウについてデータを蓄積することにより特徴を計算すること
をさらに含む、請求項１乃至２のうちいずれか１項に記載の方法。
【請求項４】
前記時間ウィンドウについてデータを蓄積することは、
互いに重なっている複数の時間ウィンドウのうちの時間ウィンドウと、連続した重なっていない時間ウィンドウとの双方についてデータを蓄積すること
をさらに含む、請求項３に記載の方法。
【請求項５】
前記複数の別個の動作状態のうち１つを判定することは、
記憶された計算された特徴に基づいて決定木を横断することにより、動作条件情報を前記複数の別個の動作状態のうち１つに分類すること
を含む、請求項１乃至４のうちいずれか１項に記載の方法。
【請求項６】
前記動作条件情報を分類することは、
計算された動作条件情報に基づいて複数の決定木の間で切り替えること
を含む、請求項５に記載の方法。
【請求項７】
前記センサは複数のセンサのうちの１つであり、前記入力センサデータを受信することは、複数のセンサから入力センサデータを受信することを含み、
前記複数の別個の動作状態のうち１つを判定することは、前記複数のセンサからの前記入力センサデータに基づいて判定することを含む、
請求項１乃至６のうちいずれか１項に記載の方法。
【請求項８】
前記ＡＦＥの前記構成を制御することは、
前記センサに関して前記ＡＦＥのサンプリング分解能の設定を動的に変更すること
を含む、請求項１乃至７のうちいずれか１項に記載の方法。
【請求項９】
前記ＡＦＥの前記構成を制御することは、
前記センサに関して前記ＡＦＥの帯域幅の設定を動的に変更すること
を含む、請求項１乃至８のうちいずれか１項に記載の方法。
【請求項１０】
前記ＡＦＥの前記構成を制御することは、
前記センサとインターフェースするときに前記ＡＦＥのハードウェアコンポーネントを選択的に有効にし、無効にすること
を含む、請求項１乃至９のうちいずれか１項に記載の方法。
【請求項１１】
前記ＡＦＥの前記構成を制御することは、
前記センサとインターフェースすることにおいて前記ＡＦＥの高精度コンポーネントと低精度カウンターパートコンポーネントとの間で動的に切り替えること
を含む、請求項１乃至１０のうちいずれか１項に記載の方法。
【請求項１２】
前記ＡＦＥの前記構成を制御することは、
前記センサとインターフェースすることにおいて前記ＡＦＥの高パワーコンポーネントと低パワーカウンターパートコンポーネントとの間で動的に切り替えること
を含む、請求項１乃至１１のうちいずれか１項に記載の方法。
【請求項１３】
複数のセンサから複数の処理されていない入力センサデータを受信する複数のハードウェア入力インターフェースと、
前記複数のセンサのうち１つを選択し、前記の選択されたセンサの入力センサデータを処理するアナログ処理ハードウェアと、
前記入力センサデータに基づいて前記センサについての特徴を計算することであって、前記特徴は前記センサの動作状態を示し、前記特徴は前記センサに対する前記アナログ処理ハードウェアの選択された動作条件情報を表し、前記の計算された特徴に基づいて前記センサに対する前記アナログ処理ハードウェアの複数の別個の動作状態のうち１つを判定し、前記アナログ処理ハードウェアの動作を動的に調整して前記の判定された動作状態に基づいて前記センサとインターフェースすることであって、前記アナログ処理ハードウェアが前記センサから前記入力センサデータを如何にして受信するかを制御する前記アナログ処理ハードウェアの構成を制御することを含むプロセッサと、
を備えたフロントエンド回路。
【請求項１４】
前記プロセッサが前記特徴を計算することは、前記プロセッサが、ある時間ウィンドウについてデータを蓄積すること、又は、少なくとも信号平均、信号標準偏差、及び実際のパワーを計算すること、のうち１つ以上を実行することをさらに含む、請求項１３に記載のフロントエンド回路。
【請求項１５】
前記プロセッサが前記特徴を計算することは、前記プロセッサがある時間ウィンドウについてデータを蓄積することをさらに含む、請求項１３に記載のフロントエンド回路。
【請求項１６】
前記プロセッサは、互いに重なっている複数の時間ウィンドウのうちの時間ウィンドウと、連続した重なっていない時間ウィンドウとの双方についてデータを蓄積する、請求項１５に記載のフロントエンド回路。
【請求項１７】
前記プロセッサが、
記憶された計算された特徴に基づいて決定木を横断することにより、動作条件情報を前記複数の別個の動作状態のうち１つに分類すること
をさらに含む請求項１３に記載のフロントエンド回路。
【請求項１８】
前記プロセッサが前記動作条件情報を分類することは、前記プロセッサが、計算された動作条件情報に基づいて複数の決定木の間で切り替えることを含む、請求項１７に記載のフロントエンド回路。
【請求項１９】
前記センサは複数のセンサのうちの１つであり、前記複数のハードウェア入力インターフェースは複数のセンサから前記入力センサデータを受信し、
前記プロセッサは、前記複数のセンサからの入力センサデータに基づいて前記複数の別個の動作状態のうち１つを判定する、
請求項１３に記載のフロントエンド回路。
【請求項２０】
前記プロセッサは、前記センサに関して前記アナログ処理ハードウェアのサンプリング分解能の設定を動的に変更すること、前記センサに関して前記アナログ処理ハードウェアの帯域幅の設定を動的に変更すること、前記センサとインターフェースするときに前記アナログ処理ハードウェアのハードウェアコンポーネントを選択的に有効にし、無効にすること、前記センサとインターフェースすることにおいて前記アナログ処理ハードウェアの高精度コンポーネントと低精度カウンターパートコンポーネントとの間で動的に切り替えること、又は、前記センサとインターフェースすることにおいて前記アナログ処理ハードウェアの高パワーコンポーネントと低パワーカウンターパートコンポーネントとの間で動的に切り替えること、のうち１つ以上を含む前記アナログ処理ハードウェアの前記構成を制御する、請求項１３に記載のフロントエンド回路。
【請求項２１】
複数のセンサから複数の処理されていない入力センサデータを受信する複数のハードウェア入力インターフェースと、
前記複数のセンサのうち１つを選択し、前記の選択されたセンサの入力センサデータを処理するアナログ処理ハードウェアと、
前記入力センサデータに基づいて前記センサの特徴を計算することであって、前記特徴は前記センサの動作状態を示し、前記特徴は前記センサに対する前記アナログ処理ハードウェアの選択された動作条件情報を表し、前記の計算された特徴に基づいて前記センサに対する前記アナログ処理ハードウェアの複数の別個の動作状態のうち１つを判定し、前記アナログ処理ハードウェアの動作を動的に調整して前記の判定された動作状態に基づいて前記センサとインターフェースすることであって、前記アナログ処理ハードウェアが前記センサから前記入力センサデータを如何にして受信するかを制御する前記アナログ処理ハードウェアの構成を制御することを含むプロセッサと、
を備えたフロントエンド回路と、
前記フロントエンド回路において受信されるデータに基づいて表示を生成するように構成されたタッチスクリーンディスプレイと、
を備えたシステム。
【請求項２２】
コンピューティングデバイスに、請求項１乃至１２のうちいずれか１項に記載の方法に従ってアナログフロントエンド（ＡＦＥ）の動作を実行させるコンピュータプログラム。
【請求項２３】
請求項１乃至１２のうちいずれか１項に記載の方法に従ってアナログフロントエンド（ＡＦＥ）を動作させる装置。
【請求項２４】
請求項２２に記載のコンピュータプログラムを記憶したコンピュータ読取可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、概してＩ／Ｏインターフェースに関し、より詳細には、動的に構成可能なアナログフロントエンド回路のコンテキスト認識制御に関する。
【０００２】
著作権通知／許可
本特許文献の開示の部分が、著作権保護を受ける材料を含むことがある。著作権者は、特許文献又は特許開示が特許商標庁の特許ファイル又は記録に出現する限り、該特許文献又は特許開示の任意の者による複製に対する反論を有さないが、そうでない場合、何であれすべての著作権を留保する。著作権通知は、下記に説明される及び添付図面内のすべてのデータに、並びに下記に説明されるいかなるソフトウェアにも適用される：Copyright(c)  2014,  Intel  Corporation,  All  Rights  Reserved。
【背景技術】
【０００３】
モバイルデバイスの数、及びこれらデバイスにより提供される機能性の範囲は、かなり増加してきている。モバイルデバイスには、スマートフォン、ウェアラブルデバイス、例えば拡張現実ヘッドセット若しくは同様のデバイス、腕時計、又は他のウェアラブルデバイスなど、並びにハンドヘルドコンピューティングデバイス、リーディングデバイス、及び／又はゲーミングデバイスなどのデバイスが含まれることがある。こうしたモバイルデバイスは、センサ又は環境検出機器（一般に、本明細書においてセンサと呼ばれる）の数の増加によって、向上したユーザのインターフェーシングと増加した機能性とを提供する。多くのセンサは、アナログ出力（可変電圧及び／又は可変電流の出力）を生成し、アナログ出力は、最初、該アナログ出力がデジタル処理コンポーネント（マイクロコントローラ、デジタルシグナルプロセッサ、又は他の処理デバイス）により処理され得る前に、デジタル形式にコンバートされなければならない。センサの例には、モーションセンサ、加速度計、温度センサ、ジャイロスコープ、ロケーションセンサ、光検出器、音／雑音検出器、又は他のセンサを含むことができる。
【０００４】
センサの多くは、ユーザがデバイスの「常時オン（always-on）」を期待するモバイルデバイスに組み入れられる。ゆえに、デバイスは、遅延なしか又はエンドユーザに知覚できない遅延かでモーションを追跡し又は環境、動き、若しくは他の条件の変化に応答するように設計されることがある。センサを有するデバイスの常時オン動作は、従来、アナログ信号の対応する常時オンの増幅とセンサ入力のアナログツーデジタルコンバージョンとにより達成されている。しかしながら、こうした常時オン動作は電力を要する。より多くのセンサ及びより多くのインターフェースを現代のデバイスに統合するために、フォームファクタを減少させることが必要とされる。しかしながら、フォームファクタが減少するとき、その電子コンポーネントは、本質的により小さい利得を有するより小さい特徴（features）で作成される。こうしたコンポーネントは、センサに関する適切な信号増幅を提供するために、より過酷に駆動されなければならない。
【０００５】
さらに、すべてのセンサがＡＦＥからの同じ性能を必要とするわけではない。いくつかのセンサは、適切な入力信号を作り出すのに、コンポーネントのうちあるブロックがアクティブであることを要しない。あるセンサは、他のセンサよりもより高い帯域幅及び／又はより高い利得及び／又はより高いサンプリングレートを要する。しかしながら、従来の連結されたＡＦＥは、最悪ケースの入力に対して動作を提供するように構成され、かつ／あるいは汎用目的用途について構成され、現代のウェアラブル又はモバイルデバイスに対してかなり多くの電力を消費する（例えば、１ｍＷパワーバジェットを上回る）。連結がＡＦＥにおいて試行されている範囲で、従来の解決策は、かなりのパワーペナルティなしでは、多数の同時記録されるセンサに対してスケーラブルでない。
【図面の簡単な説明】
【０００６】
下記の説明は、本発明の実施形態の実装の例として与えられる例示を有する図の議論を含む。図面は、限定としてではなく例として理解されるべきである。本明細書において用いられるとき、１つ以上の「実施形態」に対する参照は、本発明の少なくとも１つの実装に含まれる特定の特徴、構造、及び／又は特性を説明するものとして理解されるべきである。ゆえに、本明細書に出現する「一実施形態において」又は「代替的な一実施形態において」などの表現は、本発明の様々な実施形態及び実装を説明し、必ずしもすべて同じ実施形態を参照しない。しかしながら、上記実施形態及び実装はまた、必ずしも相互排他的ではない。
【図１】ホスト上に動的プログラマブルＡＦＥを有するシステムの一実施形態のブロック図であり、ＡＦＥは、センサ入力に対するＡＦＥの判定された動作条件に基づいて調整される。
【図２】入力特徴の特徴算出及び／又は分類に基づいて調整される動的プログラマブルＡＦＥ回路を有するシステムの一実施形態のブロック図である。
【図３】多重化された動的プログラマブルアナログフロントエンド回路を有するシステムの一実施形態のブロック図である。
【図４】ＡＦＥ制御システムの動作の一実施形態の表現である。
【図５】グラフィカルな観点及びロジカルな観点に従った特徴算出の一実施形態の表現である。
【図６Ａ】動的プログラマブルＡＦＥを動作させる処理の一実施形態のフロー図である。
【図６Ｂ】動的プログラマブルＡＦＥの動作状態を判定する処理の一実施形態のフロー図である。
【図６Ｃ】動的プログラマブルＡＦＥの分類を判定する処理の一実施形態のフロー図である。
【図７】動的プログラマブルＡＦＥが実装され得るコンピューティングシステムの一実施形態のブロック図である。
【図８】動的プログラマブルＡＦＥが実装され得るモバイルデバイスの一実施形態のブロック図である。
【発明を実施するための形態】
【０００７】
特定の詳細及び実装の説明が下記に続く。説明は、下記に説明される実施形態のうちいくつか又はすべてを表し得る図面の説明を含み、本明細書に提示される発明概念の他の潜在的な実施形態又は実装を論じる。
【０００８】
本明細書に説明されるとおり、システムが、判定された（determined）動作状態に基づいて、動的プログラマブルアナログフロントエンド（ＡＦＥ）インターフェースの動作構成を制御する。ＡＦＥは、複数の異なるセンサとインターフェースする（interface）ハードウェアと、複数のセンサのうち１つ以上からの入力データを選択することができるアナログ処理ハードウェアとを含む。アナログ処理ハードウェアは、入力センサデータ（例えば、生のセンサデータ）から特徴を計算するプリプロセッサに結合され、上記特徴は、センサに対するＡＦＥの選択された動作条件情報を表す。プリプロセッサは、センサ入力データに基づいて、複数の別個の動作状態のうちいずれの１つにＡＦＥがあるかを判定する。プリプロセッサは、計算された特徴と分類エンジンとに基づいて、上記判定を行うことができる。プリプロセッサは、ＡＦＥの構成を動的に調整して、判定された動作状態に基づいてＡＦＥが如何にしてセンサとインターフェースするかを調整することができる。
【０００９】
一実施形態において、ＡＦＥは、センサを、センサハブ及び／又はマイクロコントローラ、アプリケーションプロセッサ、又は他のプロセッサにインターフェースする。ＡＦＥは、生のセンサデータを受信し、この生センサデータは、処理されていないデータを参照する。ＡＦＥは、インターフェースすることについてのある数の構成次元（dimensions）のうち任意のものを制御することができ、このことには、これらに限られないが、振幅、帯域幅、サンプリングレート、分解能、使用される増幅器の数及びタイプ、及び／又はＡＦＥの構成に基づく他のパラメータを制御することが含まれる。ＡＦＥは、ＡＦＥの設定を制御して、構成次元のうち任意の１つ以上に影響を与えることができる。各々が、オン又はオフであるように制御され、かつ／あるいは複数の異なる設定のうちの１つに設定されることができる。
【００１０】
一実施形態において、プリプロセッサは、１つ以上のフィルタを含み、及び／又は構成設定をとおしてフィルタを適用して、プライマリプロセッサ又はアプリケーションプロセッサに対して関心のない信号又は信号の部分を破棄し、あるいは無視する。ゆえに、プリプロセッサは、該プリプロセッサがプライマリプロセッサの作業負荷を低減させることを可能にする入力信号の特徴及び分類を生成することができる。一実施形態において、プリプロセッサ内のＡＦＥコントローラ又は制御ロジックが、ＡＦＥ構成を連続的に更新してセンサデータの品質を向上させ又は最適化すると同時に、さらに、サンプリング効率のために冗長なサンプルを最小化することができる。「最適化する」及び「最小化する」などの表現は相対的な用語であり、必ずしも絶対的な最適化又は最大化若しくは最小化が達成されることを意味するのではないことが理解されるであろう。むしろ、最適化及び最小化は、センサ入力の直近の履歴に基づいて現在の条件に対して最良適合であるレベルを達成することを参照し、上記には、システムの構成及び動作、並びに所与の時間制約内で利用可能な処理パワー（power）の量が含まれる。ゆえに、最適化又は最小化は、システムアーキテクチャに組み込まれた許容度内に制約され得る。
【００１１】
ＡＦＥ制御は、１つ以上の制御信号を提供して、ＡＦＥに、一度に複数の接続されたセンサのうち１つを選択させることができる。一実施形態において、ＡＦＥ制御により提供される制御は、各コンポーネントの構成を設定するＡＦＥのコンポーネントに対するデジタルシグナリングである。各センサについて、ＡＦＥ制御は、特定のセンサに対する動作条件に従ってＡＦＥを構成することができる。各センサに対するこうした構成はオフラインで学習され、ＡＦＥ制御は適切な設定又は種々の動作条件を適用するように構成されることができる。ＡＦＥ制御は、それから、選択されたセンサとインターフェースする間、ＡＦＥの動作条件に関する情報を示す特徴を計算することができる。計算される情報に基づいて、ＡＦＥ制御は、動作状態を判定し、センサに対する特定の動作状態についてＡＦＥインターフェースを構成することができる。ゆえに、プリプロセッサ又はＡＦＥ制御は、より低いパワー消費のために再構成可能ＡＦＥを制御し及び調節するコンテキスト認識（context-aware）であるように見なされることができる。一実施形態において、ＡＦＥ制御は、１つ以上のセンサ、例えば、所与の動作状態において冗長な情報を提供するセンサからの入力を、選択的に閉鎖することができる。ＡＦＥ制御は、センサからのデータがプライマリプロセッサに対して有用な情報であり得ると示唆する別の動作条件を該ＡＦＥ制御が検出するまで、センサからのセンサデータの無視を継続することができる。センサ入力を完全に閉鎖することに代わって、ＡＦＥ制御は、センサをサンプリングする周波数を単に低減させてもよい。他のバリエーションが可能である。
【００１２】
一実施形態において、センサは、ユーザ状態又は環境条件を示す。プリプロセッサは、センサのリアルタイム分類、又はセンサにより示されるユーザ状態若しくは環境条件に基づいて、センサ信号を選択的にサンプリングし、増幅することができる。一実施形態において、ＡＦＥ制御は、判定されたユーザ状態又は動作状態に基づいてＡＦＥのサンプリングレート及び／又は正確度（分解能）を調節して、電力（power）を節約する。サンプリングレート又は周波数、増幅係数、及びＡＦＥに対する電力供給を制御することにより、デバイスにより必要とされる正味のオン時間及び電力が低減される。一実施形態において、ＡＦＥ制御により計算され又は判定される特徴は、リアルタイム入力データから抽出される、計算的に安価な統計的特徴である。一実施形態において、こうした特徴は、これらに限られないが、信号平均、パワー（power）、及び標準偏差を含むことができる。一実施形態において、ＡＦＥ制御は、所定のパラメータに基づいて、センサの現在の動作状態を分類する。例えば、ＡＦＥ制御は、訓練され、又はその他の方法でプリプログラムされて、入力データを特定の動作条件を示すとして解釈することができる。
【００１３】
一実施形態において、特徴又はパラメータの判定及び／又は正確な分類のために生センサデータから抽出すべき有意な統計的特徴の選択は、機械学習手法を用いてオフラインで実行される。ＡＦＥ制御は、１つ以上の計算エンジンを含んで、リアルタイム特徴抽出及び／又は分類を実行することができる。一実施形態において、計算エンジンはハードウェアエンジンであり得、上記判定を制御するパラメータはプログラム可能及び調節可能であり得る。一実施形態において、こうしたパラメータは、任意の時間に動的に変更されることができる。上記パラメータは機械学習手法によって設定されることができ、該学習手法はオンライン及び／又はオフライン機械学習であり得る。
【００１４】
図１は、ホスト上に動的プログラマブルＡＦＥを有するシステムの一実施形態のブロック図であり、ＡＦＥは、センサ入力に対するＡＦＥの判定された動作条件に基づいて調整される。システム１００は、センサが入力を生成するシステムの一例であり得、上記入力は、ホスト１２０により表されるコンピューティングコアによって使用される。ホスト１２０は、センサ入力に応答して特定の動作を実行する。一実施形態において、ホスト１２０は、センサ入力に応答して人間のユーザとインターフェースすることができる。一実施形態において、ホスト１２０はシステムオンチップ（ＳｏＣ）である。一実施形態において、ホスト１２０はプロセッサ又は中央処理ユニットである。ＳｏＣはプロセッサ又は処理ユニットと他のコンポーネントとを含むことが理解されるであろう。ＳｏＣは、複数の要素が一緒に統合された単一のチップであり得、あるいは複数のチップが一緒に組み立てられた単一のパッケージ（より一般に、マルチチップパッケージ（ＭＣＰ）と呼ばれる）であり得る。
【００１５】
ＳｏＣとして有するか又はプロセッサかに関わらず、ホスト１２０はコンピューティングデバイスのコンピューティングコアであり、コンピューティングデバイスは、ウェアラブルデバイス、センサフィードバックユニット、又はセンサ入力をとる他のシステムであり得る。一実施形態において、ホスト１２０は、モノのインターネット（ＩｏＴ）を可能にするパッケージの一部であり、これにおいてデバイスは、ネットワーク化され、相互接続されることができる。ホスト１２０はプロセッサ１２４を含み、プロセッサ１２４はＣＰＵ（中央処理ユニット）又は他のプライマリプロセッサであり得る。一実施形態において、プロセッサ１２４はマルチコアデバイスの１つ又は複数のコアである。一実施形態において、プロセッサ１２４はアプリケーション固有（application-specific）プロセッサである。一実施形態において、プロセッサ１２４は汎用目的プロセッサである。プロセッサ１２４は、ホスト１２０のホストオペレーティングシステムを実行し、ホスト１２０の全体的動作を制御するハードウェア制御ロジックを一般に含む。プロセッサ１２４は、ホスト１２０の全体的動作を制御するソフトウェア制御ロジックをさらに実行することができる。プロセッサ１２４は、ＡＦＥ１２２に直接結合されてもよく、あるいはセンサハブ又は比較可能回路を介してＡＦＥ１２２に結合されてもよい。プロセッサ１２４は、センサ１１０から集められたデータに基づいて動作を実行し、ゆえに、センサデータを使用するコンポーネントであると言われることがある。
【００１６】
一実施形態において、ホスト１２０はメモリ１２６を含み、メモリ１２６は、ホスト１２０に対してローカルのメモリ記憶リソースを表す。ローカルメモリリソースは、プロセッサ１２４により直接アドレス可能なメモリリソースを示し、キャッシュメモリ及び／又はメインメモリリソースを示すことがある。一実施形態において、メモリ１２６は、プロセッサ１２４と同じ集積回路に直接、又は同じパッケージ内に統合されることができる（例えば、オンチップキャッシュ）。一実施形態において、メモリ１２６は、プロセッサ１２４を含む物理パッケージの外部にある。一実施形態において、メモリ１２６は揮発メモリリソースを含む。一実施形態において、メモリ１２６は不揮発メモリリソースを含む。不揮発メモリは、メモリに対してパワーが中断される場合でさえ、状態を維持するメモリである。揮発メモリは、メモリに対してパワーが中断される場合、その状態が不定であるメモリである。メモリ１２６は、一般にデータ及びコードを記憶して、プロセッサ１２４の動作の実行をサポートする。
【００１７】
ホスト１２０はＡＦＥ１２２を含み、ＡＦＥ１２２は、本明細書に説明される任意の実施形態に従うフロントエンド回路である。ＡＦＥ１２２は、ホスト１２０をセンサ１１０にインターフェースする。一実施形態において、ＡＦＥ１２２はディスクリート（discrete）回路である（例えば、プロセッサ１２４とは別々のサブストレート及び／又はＰＣＢ（印刷回路板）を有する）。一実施形態において、ＡＦＥ１２２は、統合されるコンポーネントとディスクリートコンポーネントとの組み合わせとして実装することができる（例えば、プリプロセッサを統合し、他の要素をディスクリートコンポーネントとして実装する）。ゆえに、ＡＦＥ１２２は、統合されたコンポーネント設計として実装されてもよく、かつ／あるいは市販の又は特化されたディスクリートコンポーネントから組み立てられてもよい。
【００１８】
ＡＦＥ１２２は、電圧モード及び／又は電流モード入力を含むことができる。電圧モードセンサ入力は、可変の又はアナログの電圧を提供してセンサデータを表す。電流モードセンサ入力は、可変の又はアナログの電流を提供してセンサデータを表す。一実施形態において、ＡＦＥ１２２は、センサ１１０からの入力を多重化し（multiplexes）て、フロントエンドを実装するのに必要とされるアナログ回路の量を低減させる。ＡＦＥ１２２は動的に構成可能であり、このことは、フロントエンド回路がその動作及びアナログ入力のサンプリングを調整して動作の効率を向上させることを可能にする。ＡＦＥ１２２は、プリプロセッサ（具体的に図示されない）を含んで、アナログ入力要素に対するフィードバック（具体的に図示されない）を生成して、該要素の動作を動的に調整する。ゆえに、ＡＦＥ１２２は、実行時に動作を変更して、センサ１１０とのインターフェースの効率を向上させることができる。
【００１９】
センサ１１０は、ホスト１２０にデータを提供する。データには、環境データ（モーション、温度、周辺光、又は他のデータ）、バイオメトリックデータ（心拍、脈拍、肌メトリクス、指紋、光学スキャン情報、又は他のバイオメトリック情報）、又は条件及び／又はユーザに関して検出される他のデータを含むことができる。センサ１１０は、アナログ出力を生成する少なくとも１つのコンポーネントを含む。一実施形態において、センサ１１０の１つ以上が、センサパッケージ内にアナログインターフェース回路を含む。こうしたローカルアナログインターフェース回路により提供される処理のレベルは、最低限であってもよく、あるいはより有意であってもよい（例えば、デジタル出力を提供する）。センサ１１０の例には、加速度計、モーションセンサ、ジャイロスコープ、温度センサ、ロケーションセンサ、光検出器、音／雑音検出器、又は他のセンサを含むことができる。
【００２０】
すべてのセンサ１１０が同じタイミングサイクル上で動作するわけではないことが理解されるであろう。各センサ１１０は、異なる動作周波数、及び／又は、該センサ１１０がホスト１２０にデータを提供する異なるサイクル（及び、ホスト１２０がデータを読み出すべきであるサイクル）を有することができる。典型的に、ホスト１２０のコンポーネントの動作周波数は、センサの周波数よりも大分より高い周波数で動作させる（例えば、センサは、１ｋＨｚより小さい周波数で動作することがあり、ホスト１２０のコンポーネントは、プロセッサについてＭＨｚの、いくつかのサンプリングコンポーネントについて数十乃至数百ｋＨｚのレンジにおいて動作する）。
【００２１】
システム１００は、アナログフロントエンド回路をＡＦＥ回路１２２と連結する。一実施形態において、ＡＦＥ１２２は、センサ１１０からのセンサ入力を連結してプロセッサ１２４に提供するスタンドアロンコンポーネント又はセンサハブである。一実施形態において、ＡＦＥ１２２は、ＡＦＥ１２２と並列に動作することができるセンサハブ（具体的に図示されない）に結合する。一実施形態において、ＡＦＥ１２２は、プロセッサ１２４の一部、又は、ＳｏＣ又はマルチチップパッケージの回路又はコンポーネントである。ＡＦＥ１２２は、複数のセンサ１１０がセンサパッケージそれ自体の中に最低限のアナログフロントエンドを有してか又は可能性としてアナログフロントエンドなしかで動作することを可能にする。一実施形態において、センサ１１０上のアナログフロントエンドは、ＡＦＥ１２２とインターフェースするようにバイパスされる（bypassed）ことができる。センサ１１０上のわずかな又は最低限のフロントエンドは、寄生（parasitics）が出力信号を圧倒するのを防止するために、いくつかのアナログインターフェーシング、例えば容量性回路及び／又は増幅器などを依然として必要とする。一実施形態において、ＡＦＥ１２２は、センサ１１０から、処理されていないアナログ信号を受信する。処理されていないものは、わずかな又は最低限のフロントエンドを有するセンサからのアナログ信号である任意のアナログ出力を示すことができる。ゆえに、処理されていない信号は、寄生が信号を圧倒するのを防止するように増幅され及び／又は容量的にフィルタされた信号を依然として含むことができる。処理されていないものは、ＡＦＥ１２２が信号のサンプリング、デジタル化、及び処理を制御することができるところに提供される信号を示す。
【００２２】
ＡＦＥ１２２は、センサ１１０からのアナログ信号をデジタル信号にコンバートする処理コンポーネントを含む。一実施形態において、ＡＦＥ１２２は、データをメインプロセッサ１２４に送信する前にデジタル信号データに対して動作を実行する処理ロジック（例えば、プリプロセッサ）を含む。処理ロジックは、センサ１１０からの入力に基づいてＡＦＥ動作を構成するＡＦＥ制御ロジックを含むことができる。一実施形態において、処理ロジック及びＡＦＥ制御ロジックは、プロセッサ１２４の一部であり得、アプリケーション固有プロセッサ、アプリケーション固有スレッド、又はアプリケーション固有コアにデータを提供する前に、信号に対して演算を実行する。
【００２３】
ＡＦＥ制御ロジックは、センサ入力の中で選択し、選択されたセンサ入力から特徴を抽出し、計算する。センサ入力データから計算され得るいくつかの特徴、又は数ダース若しくは百を超えるほど多くの異なる特徴が存在し得る。特徴には、データ（例えば、測定されたデータ）から直接検出可能な、及び／又はデータ（例えば、計算されたデータ）から間接的に判定可能な、任意タイプの特徴を含むことができる。一実施形態において、ＡＦＥ制御ロジックは、合計した特徴のサブセットから選択し、上記サブセットは、抽出され得る特徴の合計数より大幅により小さい可能性がある。選択された数の特徴に基づいて、ＡＦＥ制御ロジックは、ＡＦＥの動作状態を判定し、ＡＦＥの構成を設定する。
【００２４】
一実施形態において、ＡＦＥ制御ロジックは特徴のうち１つ以上を記憶する。ＡＦＥ制御ロジックは、記憶された特徴に基づいて動作状態を判定することができる。一実施形態において、ＡＦＥ制御ロジックは特徴を分類し、この分類は、動作状態を判定するのに使用することができる。ＡＦＥ制御ロジックは、判定された動作状態に基づいて、ＡＦＥ動作を制御することができる。ＡＦＥ１２２の動作を制御することには、サンプリング又はセンサとのインターフェーシングの他の態様のためのパラメータを設定することを含むことができる。パラメータの設定は、特定の選択されたセンサについてであり得る（例えば、次回に特定のセンサがサンプリングされるよう選択されたときに使用するための構成を設定することができる）。パラメータの設定は、さらに又は別法として、異なるセンサ、例えば、選択されたセンサに対して補足的又は冗長的なデータを提供するセンサなどについてであり得る。
【００２５】
図２は、入力特徴の特徴算出及び／又は分類に基づいて調整される動的プログラマブルＡＦＥ回路を有するシステムの一実施形態のブロック図である。システム２００は、コンピューティングコアにより使用される入力をセンサが生成するシステムの一例であり得、図１のシステム１００に従うシステムの一例であり得る。システム２００は複数のセンサ２１０を含み、センサ２１０は、アプリケーションプロセッサ２８０により使用されるアナログデータを生成する。一実施形態において、システム２００は、１つ以上のマルチプレクサ（multiplexers）（ｍｕｘ）２２０を含んで、センサ２１０の中から選択する。一実施形態において、マルチプレクサ２２０は、電圧モードセンサのための電圧モード入力を含む。一実施形態において、マルチプレクサ２２０は、電流モードセンサのための電流モード入力を含む。センサの数は、潜在的に数ダースのセンサを含め、任意の数にスケーリングされることができる。
【００２６】
マルチプレクサ２２０は、センサ２１０のうち１つを選択する。Ｍｕｘ２２０は、選択されたセンサからの信号をＡＦＥ２３０に渡す。ＡＦＥ２３０は、信号増幅及びデジタルコンバージョンのためのコンポーネント、例えば、増幅器、フィルタ（例えば、ローパスアンチエイリアシングフィルタ）、及びアナログツーデジタルコンバータ（ＡＤＣ）などを含む。一実施形態において、ＡＦＥ２３０は、信号をオーバーサンプリングして（oversamples）（例えば、デジタルローパスフィルタ動作）、統計的特徴を抽出するためにデータを送信する前に雑音を低減させる。システム２００はＡＦＥ制御２４０を含み、ＡＦＥ制御２４０は、本明細書に説明される任意の実施形態に従いＡＦＥを制御するロジックを表す。ＡＦＥ制御２４０は、ＡＦＥ２３０からデータを受信し、このデータから特徴を抽出し、ＡＦＥ制御により判定される動作状態に基づいてＡＦＥの動的プログラム可能性（programmability）を制御する方法を判定する。
【００２７】
一実施形態において、ＡＦＥ制御２４０は、入力センサデータからの特徴を生成し又は抽出する特徴エンジン２５０を含む。一実施形態において、ＡＦＥ制御２４０は、入力センサデータからの特徴を分類する分類エンジン２６０を含む。ＡＦＥ制御２４０は、センサ２１０からのセンサ入力をスケジュールするスケジューリング／データハンドリングエンジン２７０と、スケジュールに従いセンサを選択し、ＡＦＥ２３０の設定を制御するための制御信号を生成する制御ｍｕｘ２２０とを含む。一実施形態において、エンジン２７０の動作のいくつかは、特徴エンジン２５０の一部と見なされ得る。一実施形態において、エンジン２７０の動作のいくつかは、分類エンジン２６０の一部と見なされ得る。各エンジン２５０、２６０、２７０は、ハードウェア処理リソースにより実行される。ハードウェアは、各エンジンに関連付けられた動作を実行するためのファームウェア及び／又は他のコードによる動作について構成されることができる。ハードウェアは、３つのエンジンすべてを実行する同一のハードウェアであってもよく、あるいはエンジンのうち１つ以上のための別々のハードウェアであってもよい。
【００２８】
特徴エンジン２５０は特徴生成ブロック２５２を有して例示され、特徴生成ブロック２５２は、入力センサデータからの特徴を抽出し又は判定するロジック（例えば、ハードウェアロジック、又は、ソフトウェアロジックを用いて構成されたハードウェアプロセッサ）を表す。一実施形態において、特徴生成は、プログラム可能なウィンドウサイズとウィンドウ間の重なりとに基づいて特徴を生成する。こうした実装の一例が、図５に提供される。特徴生成２５２は、算出を実行する前に選択されたセンサからデータを収集し、それから、データサンプルの１つ以上のウィンドウに対して演算することができる。一実施形態において、特徴生成２５２は、ウィンドウサイズを埋めるのに十分なデータを記憶し、データのウィンドウから特徴を生成する。上記で言及されたのと同様に、任意数の特徴がデータから生成される／抽出されることができる。典型的には、リアルタイム設定において合理的に抽出されることができるよりも、より多くの特徴が存在することになる。ゆえに、特徴生成２５２は、重要な特徴を選択し、個別のセンサについて最も有用と判定された特徴のみ生成することができる。各センサの重要な特徴は、管理者構成及び／又は機械学習によって判定されることができる。特徴生成２５２は、エンジン２７０内に特徴を記憶することができる。特徴生成２５２は、収集されたデータ又はサンプルをＡＦＥ制御２４０内のキャッシュに記憶することができる。
【００２９】
一実施形態において、特徴生成２５２は、必要とされる分類の正確度、又は動作状態を判定するのに必要とされる正確度に依存して、特徴を抽出する。特徴生成２５２は、ＡＦＥ２３０とインターフェースするセンサ２１０のタイプに基づいて特徴をさらに生成することができる。一実施形態において、動作状態の判定は、簡素な活動／不活動検出（又は、同様に、入力がアプリケーションプロセッサに対して興味深いか又は興味深くないかの２値の判定）であり得る。上記の場合、特徴生成２５２は、３つの特徴の平均、標準偏差、及びパワーを生成することができる。これら特徴に基づいて、ＡＦＥ制御２４０は、上記検出に対する動作状態を正確に分類し、あるいは判定することができる。こうした簡素な実装は、より簡素な及びよりパワー効率の良いアーキテクチャを提供する。一実施形態において、他の実装が、特徴を使用してのより複雑なコンテキスト処理、例えば、ＦＦＴ（高速フーリエ変換）又はウェーブレット変換及び／又はその他などを利用する。上記特徴の生成及び使用は、より多くのパワーを犠牲にする可能性がある。特徴生成２５２は、特定の実装にどんな特徴が必要とされるとしても生成して、動作状態の正確な判定を提供することができる。
【００３０】
特徴生成２５２は、計算的に安価な及び再使用可能な算出ロジックブロックを有する特徴を生成することができる。ゆえに、ロジック要素の同じブロックが、異なる特徴を計算するのに使用される可能性がある。一実施形態において、特徴生成２５２は、可変ウィンドウサイズを実装してデータを収集し、異なるウィンドウからの特徴を計算する。一実施形態において、特徴生成２５２は、再使用可能ロジックブロックを用いて計算を実行した後、メモリリソースを再使用することにより、最小限のメモリ要件でウィンドウツーウィンドウの重なりを実装する。
【００３１】
一実施形態において、分類エンジン２６０は、センサから受信されたデータを分類し、このことは、特徴エンジン２５０により生成され及び記憶された特徴に基づくことができる。一実施形態において、特徴エンジン２５０は、分類エンジン２６０が使用するよりも、より多くの特徴を生成する。一実施形態において、分類は、１つ以上の特徴に基づく。分類エンジン２６０は、分類ブロック２６２を有するとして例示され、分類ブロック２６２は、センサデータの特徴を分類することに関連した計算を実行する。分類エンジン２６０の動作は必ずしも特徴エンジン２５０の動作のタイミングに結び付けられないことが理解されるであろう。ゆえに、例えば、特徴エンジン２５０は、複数の異なるセンサ２１０から同じ特徴を生成し、この特徴をエンジン２７０に記憶することができる。分類２６２は、それから、１つのセンサから又は複数の異なるセンサからの判定された同じ特徴に対して分類を実行することができる。分類２６２は、１つ又は複数のセンサからの複数の特徴に基づいて分類をさらに実行することができる。一実施形態において、分類２６２は、異なるセンサからの異なる特徴を用いて解析を実行することができる。ゆえに、分類２６２は、１つのセンサのみからの特徴の解析、又は複数のセンサからの特徴の組み合わせを用いた解析を実行することができる。
【００３２】
一実施形態において、分類は、動作状態を判定するメカニズムであり得る。一実施形態において、簡素なルックアップ判定が、算出された特徴に基づく動作状態を識別することができる。一実施形態において、分類は、上記の簡素なルックアップ判定を含むように見なされることができる。一実施形態において、分類２６２は、二分決定木を用いて分類を実行する。図４に示される一例は、４つの異なる状態を可能にする。しかしながら、ＡＦＥ制御２４０は、より多数の状態を可能にするようスケーラブルであることが理解されるであろう。
【００３３】
一実施形態において、分類２６２は、複数の異なる分類木を含む。複数の異なる分類木を採用することにより、分類２６２は、意思決定の正確度及びモジュール性を向上させることができる。異なる分類木が使用される一実装において、上記異なる木は、分類のための異なる任意の深さ（これは、メモリ使用法により制約されることになる）を有することができる。分類エンジン２６０はオフラインで訓練されて、どのパラメータ又は特徴を使用すべきかと、木が如何にして構成され得るかとを判定することができる。二分決定木において、各々の葉は活動状態レベルを保持し、入力条件の異なるセットに対応することができる。一実施形態において、決定木は、特徴閾値によりナビゲートされることができ、分類２６２が特徴閾値と比較した特徴値に基づいて各枝を下降する（work  down）ことを可能にする。閾値は、様々な分裂基準及び入力の組み合わせをテストして一般化誤差を最小化することにより、オフラインで判定されることができる。向上した予測の正確度が、より大きいパワー節約を結果としてもたらすことが理解されるであろう。なぜならば、より低い精度のセンサデータが使用され得るとき、ＡＦＥ制御２４０はＡＦＥ２３０のサンプリングレート及び／又は他のパラメータを低減させることができるからである。一実施形態において、特徴生成２５２は時間ドメインの特徴を生成し、分類２６２は該特徴を分類の基礎にする。時間ドメインの特徴のみの使用は、より簡素な及びよりメモリ効率の良い設計を結果としてもたらす可能性がある。一実施形態において、特徴生成２５２は周波数ドメイン手法に関連した特徴を生成し、分類２６２は該特徴を分類の基礎にする。
【００３４】
一実施形態において、分類エンジン２６０は複数の異なる分類木を含み、該複数の異なる分類木は異なるレベルの複雑さを有することができる。とり得る最も簡素な木の追求は、最もパワー効率の良い動作を結果としてもたらす可能性があることが理解されるであろう。しかしながら、端部ケースは、より低い複雑度の木では、正確に分類されない可能性がある。一実施形態において、分類２６２はツリーホップする（tree  hop）ことができ、これは、ある分類木から別のものへホップすることを示す。木をホップするトリガは、特定の入力特徴又はアイドル時間に基づいて設定されることができ、あるいはアプリケーションプロセッサ２８０を介して手動で設定されることができる。ゆえに、ＡＦＥ制御２４０がある特徴ケースを検出するとき、ＡＦＥ制御２４０は、多くの端部ケースを予期し、より複雑な分類木を分類エンジン２６０に使用させることができる。さらに又は別法として、アプリケーションプロセッサ２８０は、より複雑な決定木にツリーホップすることでより正確に分類される可能性がある特別なケースの予期を、信号伝達することができる。ゆえに、一実施形態において、分類２６２は、デフォルトケースとして利用可能な最も簡素な分類木を表し、検出された入力に基づいて、及び／又はアプリケーションプロセッサ２８０からの信号伝達に基づいて、より複雑な決定アルゴリズムに変更されることができる。ツリーホッピングの使用は、さらに、アイドル状態において費やされる時間の量を監視することによってシステム２００の利益になる可能性があり、システムが特定の状態にとどめられるのを防止することができる。一実施形態において、分類エンジン２６０は１つ以上のタイマを含み、ある閾量の時間について連続的に同じ動作状態が分類されるかを判定する。上記閾値時間が達せられる場合、分類２６２は、端部ケースの検出の失敗に起因して単にとどめられることに代わり、異なる木（例えば、より複雑な木）にホップして、現在の動作状態が正確であることを検証することができる。
【００３５】
エンジン２７０は、分類結果を使用して、センサ２１０のサンプリングレート及び／又はＡＦＥ２３０の特定構成のための他の設定を判定することができる。エンジン２７０は、制御信号又は他の信号を生成して、ＡＦＥ２３０の構成を設定することができる。ゆえに、ＡＦＥ制御２４０は、センサ入力に基づいて、リアルタイムで、動的にＡＦＥ２３０の構成及び動作を制御することができる。リアルタイム動作は、入力が生成されるときの該入力に応答した連続的な監視及び連続的に動的な動作を示すことが理解されるであろう。リアルタイムは、入力に対する応答における遅延がほとんどないことから全くないことを暗に示す。
【００３６】
一実施形態において、エンジン２７０は、アプリケーションプロセッサ２８０により構成の間にロードされる１つ以上のテーブルを使用する。上記テーブルは、起動時に１回か、又はアプリケーションプロセッサ２８０による評価に基づいて動的に、ロードされることができる。エンジン２７０は、１つ以上のテーブルに基づいてセンササンプリングをスケジュールすることができる。一実施形態において、テーブルはレジスタファイルとして実装され、各分類についてＡＦＥ２３０のすべてのコンポーネントのための構成情報を保持することができる。ゆえに、一実施形態において、エンジン２７０は、ルックアップテーブル（ＬＵＴ）メカニズムに基づいてスケジュールすることができる。エンジン２７０は、センサごと及び分類ごとにＡＦＥ２３０を構成することができる。一実施形態において、ＡＦＥ２３０内のＡＤＣが、専らスケジュールテーブルに基づいてトリガされることができる。スケジューリング衝突が生じるとき（例えば、複数のセンサ２１０の各々についての複数の異なる状態を有することが、ＡＦＥ２３０のサンプルを予めスケジュールすることを防げる）、ＡＦＥ２３０は、該ＡＦＥがビジーでないとき、実行されるべき入力を順番にキューに入れる。上記スケジューリングは、スケジュールされたサンプリング時間と実際のサンプリング時間との間の最小限の遅延で、中断のない動作を可能にする。
【００３７】
エンジン２７０は、ＡＦＥ２３０の複数の異なるパラメータのうち任意のもののための制御を含むことができ、ＡＦＥ制御２４０が複数の方法のうち任意のものでＡＦＥ２３０の動作を動的に調整することを可能にする。制御の例には、これらに限られないが、サンプリングレートを制御すること、ＡＦＥ２３０内の回路又はロジックブロック全体を有効にし及び無効にすること、ＡＤＣのサンプリング分解能を制御すること、帯域幅を制御すること、利得を制御すること、高パワー及びより低いパワーのコンポーネント間で切り替えること（例えば、増幅器）、高精度及びより低い精度のコンポーネント間で切り替えること（例えば、増幅器）、低周波雑音向上のためにチョッパーをオン又はオフにすること、又は他の制御、あるいは組み合わせが含まれる。
【００３８】
一実施形態において、分類エンジン２６０は、特徴生成２５２がエンジン２７０に特徴を記憶するたび、分類２６２の動作をトリガする。ゆえに、特徴がリフレッシュされるたび、分類２６２は分類をリフレッシュすることができる。分類をリフレッシュすることで、ＡＦＥ２３０の状態をリフレッシュすることができる。一実施形態において、分類２６２は、ただ単一センサについての動作状態だけでなく、システム２００の全体についての動作状態を判定する。システム２００の動作状態を判定するために、分類２６２は、複数のセンサ２１０からの入力を使用することが理解されるであろう。
【００３９】
いずれにしても限定でなく例示として提供される１つの簡素な例として、システム２００がウェアラブル活動感知デバイスに組み入れられることを考える。活動感知デバイスに係る人間のユーザは、１日をとおして、より活動的であるのとあまり活動的でないのとを行ったり来たりすることになる。こうした一実装において、デバイスが運動活動を追跡することを意図すると仮定して、心拍が単体で運動を示すことができる。しかしながら、加速度計データとの組み合わせでの心拍データ及び／又は他のバイオメトリックセンサデータが判定されて、運動を示してもよい。心拍センサ及び加速度計から生成される特徴に応答して、システム２００に、活動的な運動の動作状態を判定させることができる。活動的な運動が始まったと判定することに応答して、エンジン２７０は、判定された動作状態に基づいて心拍センサ（例えば、ＥＣＧ）のサンプリングレート及びＡＤＣ正確度を増加させることができる。とり得る例は、本明細書に列挙し又は示唆するには多過ぎることが理解されるであろう。
【００４０】
一実施形態において、エンジン２７０は、すべてのセンサ２１０の現在の活動状態を記憶する。一実施形態において、エンジン２７０は、現在の活動状態情報及び／又はセンサデータをアプリケーションプロセッサ２８０に選択的に送信する。アプリケーションプロセッサ２８０は、システム２００が組み入れられているコンピューティングデバイスのプライマリプロセッサを表す。プロセッサは、該プロセッサが特定のアプリケーションに関する計算のための構成又はプログラミング及び専用の時間ブロックを含むとき、アプリケーションプロセッサと呼ばれることがある。ゆえに、アプリケーションプロセッサ２８０は、センサ入力データの消費者とみなされることができ、データに基づいて動作を実行する。
【００４１】
一実施形態において、エンジン２７０は、スケジューリングのための過密緩和（decongestion）アルゴリズムを含み、この過密緩和アルゴリズムは、衝突が予期される場合について実装することができる。例えば、センサ２１０をいつサンプリングすべきかをスケジュールするとき、エンジン２７０は、理想の実行時間でなく、実行時にサンプリングすべき次の時間を書き込むことができる。ゆえに、エンジン２７０は、適切な（１つ以上の）時間オフセットを当然に（naturally）置くことにより、次回のサンプリングにおける衝突を回避することができる。一実施形態において、エンジン２７０は、特定のセンサ２７０をオンにし及びオフにし、あるいは特定のセンサ２１０のサンプリングを単にスケジュールし及びスケジュールしないことができる。上記の場合、エンジン２７０は、センサ２１０のターンオン及び安定化時間のための構成情報を含むことができる。実際のセンサが無効にされる場合、エンジン２７０は、制御信号を個々のセンサに送信して、システム２００における全体的なシステムパワー使用を向上させることができる。
【００４２】
図３は、多重化された動的プログラマブルアナログフロントエンド回路を有するシステムの一実施形態のブロック図である。システム３００は、図１のシステム１００に従ったシステム又は図２のシステム２００に従ったシステムの一例であり得る。システム３００はフロントエンド３２０を含み、フロントエンド３２０はＡＦＥの一例であり得る。システム２００において、マルチプレクサはＡＦＥの外側にあるとして例示されたが、これに対してフロントエンド３２０は、多重化されたアナログ入力を含む。フロントエンド３２０は、関連付けられたプロセッサ３８０に結合され、プロセッサ３８０は、アナログ入力からのデータを最終的に使用して、コンピューティングデバイスの動作を制御する。プロセッサ３８０は、コンピューティングデバイスのプライマリプロセッサ若しくはホストプロセッサ、又はプライマリプロセッサと並列に実行するペリフェラルプロセッサであり得る。フロントエンド３２０内の処理要素は、本明細書に説明される任意の実施形態に従うＡＦＥの処理コンポーネントの例であり得る。
【００４３】
一実施形態において、システム３００は１つ以上のセンサ３１２を含み、センサ３１２は電圧モードアナログ出力を生成する。一実施形態において、システム３００は１つ以上のセンサ３１４を含み、センサ３１４は電流モードアナログ出力を生成する。電圧モード入力は、シングルエンド（single-ended）又はディファレンシャル（differential）であり得る。フロントエンド３２０は、電圧モード入力回路３２２において電圧モードセンサ３１２から入力を受信する。フロントエンド３２０は、電流モード入力回路３２４において電流モードセンサ３１４から入力を受信する。入力３２２及び３２４は、センサ信号を受信するピン又はコネクタ及び信号線を表す。一実施形態において、フロントエンド３２０は多重化されたＡＦＥであり、複数のセンサが同じアナログ回路（例えば、アナログ増幅器及びデータコンバータ）を共有し、このことは面積及びパワーを節約することができる。ゆえに、入力３２２及び３２４は、それぞれのマルチプレクサ３３２（電圧モード）及び３３４（電流モード）にアナログ入力を提供する。
【００４４】
一実施形態において、マルチプレクサ３３２は、増幅器３４２による増幅のために、センサ３１２からの特定のアナログ入力を選択することができる。一実施形態において、増幅器３４２はプログラマブル利得増幅器（ＰＧＡ）であり、ＰＧＡは、入ってくる電圧信号の大きさを増大するのに使用することができる。一実施形態において、電流モードマルチプレクサ３３４は、増幅器３４４による増幅のために、センサ３１４からの特定のアナログ入力を選択することができる。一実施形態において、増幅器３４４はトランスインピーダンス増幅器（ＴＩＡ）であり、ＴＩＡは、入ってくる電流の大きさに基づいて可変の電圧出力を提供する。ゆえに、増幅器３４２及び３４４の双方が出力電圧を生成することができる。
【００４５】
増幅器３４２及び３４４は、その電圧出力を１つ以上のアナログツーデジタルコンバータ（ＡＤＣ）３５６に提供する。一実施形態において、フロントエンド３２０は、マルチプレクサ３５２又は他の選択ロジックを含んで、増幅器からの出力信号を１つ以上のＡＤＣに配線する（route）。一実施形態において、フロントエンド３２０はフィルタ３５４を含んで、ＡＤＣの前にフィルタ段階を提供する。フィルタ３５４は、ローパスアンチエイリアシングフィルタ及び／又は他のより複雑なフィルタコンポーネントを含むことができる。一実施形態において、フィルタ３５４は、プリプロセッサ３７０による解析に応答して調節又は調整することができる調整可能な挙動を含む。フィルタ３５４は、ＡＤＣ３５６がサンプリングすることになる入力のタイプに基づいて調整可能であり得る。ＡＤＣ３５６はアナログツーデジタルコンバージョン段階を表し、この段階は複数の異なるデバイスを含むことができる。さらに、電圧モード入力３２２及び／又は電流モード入力３２４は、マルチプレクサ３３２及び／又は３３４が可能であるとき、複数の異なるデバイスへ細分され得ることが理解されるであろう。ＡＤＣ３５６はアナログ信号をデジタル表現にコンバートする。ＡＤＣ３５６によりコンバートされる、増幅された信号は、典型的にセンサによる連続的な出力であるものの、別個のサンプルである。ゆえに、ＡＤＣ３５６は、サンプルのデジタル表現を作成するか又はデジタルサンプルを生成すると言うことができる。
【００４６】
一実施形態において、ＡＤＣ３５６は、バス３６０を介して（１つ以上の）デジタル出力をプリプロセッサ３７０に渡す。一実施形態において、プリプロセッサ３７０は複数のデジタル信号処理（ＤＳＰ）ブロックを含む。一実施形態において、プリプロセッサ３７０は、共通のセンサタイプについて合わせられた複数のＤＳＰユニットであるか又は該ＤＳＰユニットを含み、さらに、他の（例えば、将来の）センサタイプとインターフェースするようにカスタマイズできる動的プログラマブルＤＳＰユニットを含む。バス３６０は、複数の異なる回路コンポーネントとインターフェースする信号線の、任意の１つ以上のグループを表す。バス３６０は、典型的にサブストレート上に配線され、これにおいて、フロントエンド３２０は、サブストレート上に（又は、サブストレート内に）配設された様々なコンポーネントに対して処理される。一実施形態において、プリプロセッサ３７０は初期解析を実行して、センサデータサンプルの品質を判定し、かつ／あるいは、注目に値する事象が発生したか又は発生しているかどうか（例えば、データが、プロセッサ３８０に動作を実行するよう求めることになる何らかを示すかどうか）を判定することができる。ゆえに、上記前処理は、プロセッサ３８０（又は、センサハブ、マイクロコントローラ、マイクロプロセッサ、ＤＳＰ、又は他の処理コンポーネント）が関連センサデータが受信されるまでスリープすることを可能にすることができる。
【００４７】
一実施形態において、プリプロセッサ３７０は、入ってくるデータの品質及び実用性を評価するハードワイヤードアルゴリズム及び／又はプログラマブルユニットの集合を含む。一実施形態において、プリプロセッサ３７０は、プロセッサ３８０の一部であるが別個のパワー供給を有する、混合された処理ブロックである。プロセッサ３８０はアプリケーション固有プロセッサであり得る。初期処理又は前処理に基づいて、プリプロセッサ３７０は、フロントエンド３２０のアナログコンポーネントにフィードバックを提供する。ゆえに、プリプロセッサ３７０はアナログコンポーネントの動的実行時制御を提供し、このことはコンポーネントの動作の効率を向上させる可能性がある。システム３００に例示されるとおり、制御信号３６２は、バス３６０からアナログコンポーネントにフィードバックする。一実施形態において、プリプロセッサ３７０は、マルチプレクサ（３３２、３３４、３５２）、増幅器（３４２、３４４）、及び／又はＡＤＣ３５４のうち１つ以上のための制御信号３６２を生成することができる。制御信号３６２は、上述されたように、アナログコンポーネントのサンプリングレート、帯域幅、利得、又は他の動作パラメータを調整することができる。
【００４８】
プリプロセッサ３７０は、フィルタ３７２及びＡＦＥ制御３７４を含むように例示されている。フィルタ３７２は、入力のデジタルサンプルの前処理を可能にする、プリプロセッサ３７０内の機能性を表す。フィルタ３７２は、任意の１つ以上の処理能力を含むことができ、上記処理能力は、例えば、これらに限られないが、デジタルフィルタリング、雑音除去、離散フーリエ変換（ＤＦＴ）フィルタ、入ってくる信号におけるピークの検出、例えば周波数パルス若しくは信号強度ピークなど、又はその他などである。ＡＦＥ制御３７４は、フィードバック又は制御信号を生成してアナログコンポーネントのサンプリング動作を制御するための、プリプロセッサ３７０内の機能性を表す。
【００４９】
ＡＦＥ制御３７４は、フィードバック制御信号を生成して、センサとの間でのフロントエンド３２０のサンプリング及びインターフェーシング動作を制御することができる。ＡＦＥ制御３７４は、下記の制御信号のうち任意の１つ以上を生成することができる。一実施形態において、ＡＦＥ制御３７４は、プリプロセッサ３７０が増幅器利得制御信号を生成することを可能にする。増幅器利得は、増幅器又はＡＤＣの振幅レンジのフルスイングを利用しないスイングを用いて、信号の利得を上方に調整することができる。反対に、レールに行き当たる信号について、利得制御信号は利得を下方に調整することができる。一実施形態において、ＡＦＥ制御３７４は、プリプロセッサ３７０が増幅器帯域幅制御信号を生成することを可能にする。増幅器帯域幅制御信号は、増幅器３４２及び／又は３４４の帯域幅と利得とにおけるトレードオフの動作を調整することができる。一実施形態において、ＡＦＥ制御３７４は、プリプロセッサ３７０が制御信号を生成して、マルチプレクサ３３２、３３４、及び／又は３５２からの特定の入力を選択することを可能にする。一実施形態において、ＡＦＥ制御３７４は、プリプロセッサ３７０が制御信号を生成して、例えばサンプリングされるべき入力のタイプに基づいて動作を調整することなどにより、フィルタ３５４のフィルタリングを調整することを可能にする。一実施形態において、ＡＦＥ制御３７４は、プリプロセッサ３７０が制御信号を生成して、ＡＤＣ３５６のサンプリングレートを調整し、及び／又はＡＤＣ３５６により生成される出力信号の分解能のビット数を調整する（例えば、ＡＤＣが１２ビットの分解能を生成することができるとき、８ビットの分解能のみ出力する）ことを可能にする。一実施形態において、ＡＦＥ制御３７４は、プリプロセッサ３７０が制御信号を生成して、アナログコンポーネントにスリープさせ又は低パワー状態に入らせることを可能にする。一実施形態において、ＡＦＥ制御３７４は、プリプロセッサ３７０が制御信号を生成して、アナログコンポーネントに低パワー状態から起こさせること、例えば、特定の条件（例えば、特定の入力、閾値より大きいか若しくはより小さい入力、入力の変化、又は他の条件）での起動などを可能する。一実施形態において、制御３７４は、プリプロセッサ３７０が制御信号を生成して、フロントエンド３２０が使用することになる増幅段階の数を制御することを可能にする。例えば、増幅器３４２及び／又は３４４は多段増幅器であり得、（１つ以上の）制御信号３６２が、単一段増幅器から多段増幅器の一方又は双方の増幅器の動作を切り替えることができる。説明されている例は単に例示的であり、ＡＦＥ制御３７４は上記例のうち選択されたもの及び／又は具体的に説明されていない制御信号を生成できることが理解されるであろう。
【００５０】
一実施形態において、ＡＦＥ制御３７４はメモリ３７６を含む。一実施形態において、ＡＦＥ制御３７４はロジック３７８を含み、ロジック３７８は、ＡＦＥ制御３７４がセンサからの入力データから特徴を生成することを可能にする。ロジック３７８により生成される特徴に基づいて、ＡＦＥ制御３７４は制御信号３６２を生成して、本明細書に説明される任意の実施形態に従うフロントエンド３２０の動作を制御する。ＡＦＥ制御３７４は、生成された特徴を解析することによってフロントエンド３２０の動作状態を判定することに応答して、制御信号を生成する。メモリ３７６は、ＡＦＥコントローラに対してローカルのメモリデバイスを表す。ＡＦＥ制御３７４は、フロントエンド３２０の動作状態の解析及び判定における使用のために、生成された特徴をメモリ３７６に記憶する。
【００５１】
一実施形態において、フロントエンド３２０は、増幅の必要なく直接入れられる（fed  directly  through）ことが可能な信号とインターフェースする。ＡＤＣ３５４は電流モード信号をデジタル出力にコンバートすることができない場合があり、ゆえに、ＴＩＡ３４４をバイパスする（bypass）ことは可能でない場合があることが理解されるであろう。しかしながら、電圧モード信号について、一実施形態において、１つ以上の制御信号３６２がマルチプレクサ３５２を制御して、直接マルチプレクサ３５２へ（又は、システム構成に依存してＡＤＣ３５４へ）、ＰＧＡ３４２をバイパスすることができる。プリプロセッサ３７０は、制御信号３６２を生成して、入力信号が増幅器をバイパスするか否かを制御することができる。
【００５２】
一実施形態において、プリプロセッサ３７０は制御信号３６２を生成して、フロントエンド３２０のアナログコンポーネントに、明確な信号を提供するのに必要な最小限の利得及び最小限のパワーを使用させる。一実施形態において、プリプロセッサ３７０は、センサの相関に基づいて入力をフィルタし、制御することができる。例えば、ぴったり同じデータを生成することはなく、しかしある状況におけるそのデータは重複し得る２つのセンサを考える。一実施形態において、プリプロセッサ３７０は、センサ間のデータの相関に基づいて入力をフィルタし、かつ／あるいはスキップすることができる。こうしたロジックがプリプロセッサ３７０に組み込まれ、かつ／あるいはプリプロセッサ３７０のプログラマブル要素にプログラムされることができる。
【００５３】
フロントエンド３２０が、各々の説明されるコンポーネントについて単一のブロックで例示されているが、例示され及び説明されるアナログフロントエンドコンポーネントのうち１つ以上について、複数あり得ることが理解されるであろう。ゆえに、複数の入力３２２及び／又は３２４に結合される多くのセンサ３１０が存在する可能性がある。複数の入力は、１つ以上のマルチプレクサ３３２及び／又は３３４に信号入力を提供することができる。１つ以上のマルチプレクサ３３２及び／又は３３４は、１つ以上の増幅器３４２及び／又は３４４に入力を提供することができる。１つ以上の増幅器３４２及び／又は３４４は１つ以上のマルチプレクサ３５２に信号を提供することができ、マルチプレクサ３５２は同様に１つ以上のフィルタ３５４に信号を提供することができる。１つ以上のフィルタ３５４は１つ以上のＡＤＣ３５６に信号を提供することができ、ＡＤＣ３５６はプリプロセッサ３７０のために入力をサンプリングする。ゆえに、フロントエンド３２０内に必ずしもコンポーネントの１対１関係が存在するわけではなく、１つのコンポーネントについて複数が、別のコンポーネントについて１つが存在する可能性がある。
【００５４】
図４は、ＡＦＥ制御システムの動作の一実施形態の表現である。図表４００は、本明細書に説明される任意の実施形態に従う、ＡＦＥ制御ロジックの論理的動作についての３つの異なる表現を含む。例えば、図表４００の例示は、図３のＡＦＥ制御３７０又は図２のＡＦＥ制御２４０により実装されるものの例であり得る。簡潔さのため、図表４００は、特徴及び３つの異なる閾値のみを仮定する。しかしながら、図表４００の表現は、大幅に多くの特徴及び閾値を許容するよう広げられてもよい。ＡＦＥ制御において使用される決定木アーキテクチャを採用するシステムの１つのテストが、７つの特徴を採用した。実装は、より多くの又はより少ない特徴でスケーリングするであろう。
【００５５】
図表４００は決定木４１０を例示し、決定木４１０は、分類に使用される木の一例であり得る。ゆえに、決定木４１０はさらに、分類木の一例として参照されてもよい。決定木４１０は、計算された分散が閾値Ｔ１を下回るかどうかの判定を例示する。分散が閾値Ｔ１を下回る場合、ＹＥＳ枝であり、決定木４１０を横断するＡＦＥ制御ロジックは、平均が閾値Ｔ２を下回るかを判定する。平均がＴ２を下回る場合、ＹＥＳ枝であり、決定木４１０を横断するＡＦＥ制御ロジックは、動作状態が状態Ｓ１であると判定する。平均がＴ２を上回る場合、ＮＯ枝であり、決定木４１０を横断するＡＦＥ制御ロジックは、動作状態が状態Ｓ２であると判定する。分散判定に戻って、分散がＴ１より大きい場合、ＮＯ枝であり、決定木４１０を横断するＡＦＥ制御ロジックは、平均が閾値Ｔ３を下回るかを判定する。平均がＴ３を下回る場合、ＹＥＳ枝であり、決定木４１０を横断するＡＦＥ制御ロジックは、動作状態が状態Ｓ３であると判定する。平均がＴ３を上回る場合、ＮＯ枝であり、決定木４１０を横断するＡＦＥ制御ロジックは、動作状態が状態Ｓ４であると判定する。
【００５６】
一実施形態において、ＡＦＥ制御は、決定木４１０をレジスタファイルとして実装する。レジスタファイルとして、ＡＦＥ制御ロジックは、決定を行うのに使用される関連した特徴及び１つ以上の閾値を記憶することができる。制御ロジックは、前の決定に基づく移動すべき次のノードと、移動すべき該ノードのアドレスとをさらに記憶することができる。決定木４１０のアーキテクチャは、「左の子」をＹＥＳ枝として、「右の子」をＮＯ枝として有することが観察されるであろう。左の子は、図表４００において決定ノードの左下に対するとしてグラフィカルに表現される子ノードを示し、右の子は、決定ノードの右下に対する子ノードである。ゆえに、Ｍｅａｎ＜Ｔ２は、Ｖａｒ＜Ｔ１の左の子であり、Ｓ１は、Ｍｅａｎ＜Ｔ２の左の子であり、Ｓ３は、Ｍｅａｎ＜Ｔ３の左の子である。他の子ノードは、右の子ノードである。一実施形態において、決定木４１０に例示されるようなアーキテクチャは、実際の実装においてメモリを節約することができる。例えば、ＡＦＥ制御ロジックは、左の子のアドレスのみ記憶することができ、該アドレスは、特徴が閾値より小さい場合の宛先である。特徴が閾値より大きい場合、ＡＦＥ制御ロジックは、左の子の記憶されたメモリロケーションより１つ大きいロケーションにアクセスするように構成されることができる。
【００５７】
決定木４１０は、図表４００に関連付けられたシステムにおいてシステムが動作状態Ｓ１、Ｓ２、Ｓ３、又はＳ４にあるかどうかを判定することができる必ずしも唯一の決定木ではないことが理解されるであろう。上記で説明されたことと同様に、システムは、ツリーホッピングを可能にして決定木４１０から別の決定木（図示されない）にジャンプすることができ、別の決定木は、さらなる及び／又は異なる特徴を含むことができる。別の決定木は、さらに又は別法として、さらなる及び／又は異なる閾値を含んでもよい。こうした追加的な決定木は、決定木４１０よりもさらに複雑であり得、端部ケースの判定において有用であり得る。
【００５８】
ハードウェア状態テーブル４２０は、決定木の実装のためのテーブルの一表現であり得、該決定木には、決定木４１０が含まれてもよい。一実施形態において、テーブル４２０は、状態情報を有して予めロードされるルックアップテーブル（ＬＵＴ）である。決定木４１０は２つの特徴（分散と平均）のみ含むことに対し、テーブル４２０は第３の特定されていない特徴及びさらなる閾値Ｔ４のためのエントリを含むことが観察されるであろう。一実施形態において、決定木４１０以外の決定木が、特徴３及び閾値Ｔ４のための次元を含む。一実施形態において、ＡＦＥ制御内のスケジューリング及びデータハンドリングブロックが特徴を記憶し、この特徴は、それから、システムのために学習された所定閾値に基づいて分類されることができる。分類では、決定木４１０を横断することなどにより、動作状態を判定することができる。
【００５９】
閾値は、特徴値が閾値のレンジの種々の次元内であるかどうかに基づいて、決定木が動作状態を選択することを可能にする。グラフ４３０は、動作状態の２次元ビューを例示する。動作状態は２次元において存在し、なぜならば、動作状態を判定するのに使用される特徴が２つのみだからである。グラフ４３０は、さらなる特徴及びさらなる閾値に関して状態を例示する場合、より複雑である（割増しの（extra）次元性を含む）ことになる。図表４００は、センサデータから計算される特徴からの動作状態の判定が、統計的特徴を生成することと該特徴に基づいてセンサ（又は、システム全体）の状態を分類することとをとおしてセンサデータの次元性を低減させることによって達成され得ることを例示している。
【００６０】
テーブル４２０内に識別される動作状態又は活動状態のうち１つを判定することに基づいて、図表４００に従って実行するＡＦＥ制御ロジックは、ＡＦＥのサンプリングレート及び／又は他の属性を調整して、パワー消費を最小化すると同時に動作を向上させることができる。例えば、処理すべき重要な情報が存在しないとき（例えば、活動追跡デバイスについて、ユーザが座っており、眠っており、又はその他の仕方で活動的でない場合）、高いサンプリングレートにおいて及び高い正確度でサンプリングする必要はない。しかしながら、入力センサデータから抽出された特徴が、関心のある事象が発生しており該事象がアプリケーションプロセッサに送信されるべきであると示すとき、ＡＦＥ制御は、サンプリングレート、正確度、及び／又は他のパラメータをより高いレベルに増加させることができ、上記より高いレベルは、アプリケーションに依存することになる。分類は、さらに、複数のセンサからの入力に基づくことができ、センサ情報を融合することをとおしてより高い正確度につなげることができる。別法として、パワー大量消費（power  hungry）センサが、情報を融合して同じコンテキストを抽出することにより、より少なくサンプリングされてもよく、あるいは、その他の方法では不可能であろうコンテキストに関する推論が行われてもよい。
【００６１】
動作状態の分類又は選択は、１つ以上のセンサのためのコンテキストを拡大することができる。例えば、システムは、いくつかのかなり簡素な例を挙げると、慣性センサについてより具体的なアクション（例えば、歩くこと、走ること、座ること）にコンテキストを拡大し、あるいは大気質センサについてコンテキストを屋内対屋外、又は汚染物質に晒されている対晒されていないに拡大することができる。上記の場合におけるコンテキストは、システム内で検出可能である動作状態の数を示すことができる。特定の実装において、２つのレベルのコンテキスト（例えば、興味深い／興味深くない）で十分であり得る。他の実装において、各センサについてより多くのレベルのコンテキスト（例えば、４レベル又はそれ以上）が提供されてもよい。
【００６２】
図５は、グラフィカルな観点及び論理的な観点に従う特徴算出の一実施形態の表現である。システム５００は、本明細書に説明される任意の実施形態に従いＡＦＥ制御により実行することができる特徴算出動作を例示する。例えば、図２の特徴エンジン２５０及び／又は図３のＡＦＥ制御ロジック３７８が、システム５００に例示されるものと同様の算出を実装することができる。
【００６３】
特徴の計算又はその他の方法での抽出は、メモリリソースを必要とする可能性があることが理解されるであろう。特徴を計算するのに使用されるデータ、及び／又は計算された特徴自体は、少なくとも一時的に記憶される必要があり得る。しかしながら、大幅な量のメモリを使用することは、特徴抽出についてのサイズ、コスト、及びパワー消費を増大させる可能性がある。典型的に、メモリ使用の量はシステム制約である。システム５００は、使用されるメモリの量をさらに管理する特徴判定を例示する。ゆえに、システム５００は履歴を保つものとして例示され、ただし少量の履歴である。システム５００は、例示を目的として、特定の特徴（すなわち、平均、分散、及びパワー）の使用を例示する。しかしながら、例示される同じ手法を用いて、任意数の異なる特徴が入力センサデータから算出できることが理解されるであろう。
【００６４】
信号５１０は、シミュレーションデータから生成されるとおり、３つの異なる信号からの生データを表す。信号５１０は、時間ドメインにおけるセンサ入力信号を表す。システム５００の例示において、どの信号データがいずれの異なる信号を参照するかの仕様は、検出できない可能性がある。しかしながら、信号の上記仕様は、異なるセンサからの任意数の異なる信号がすべて異なって見えることを所与として、必ずしも重要でない。重要なポイントは、複数センサ入力信号データとある時間にわたり変動するデータとを特徴判定のために解析できることである。
【００６５】
一実施形態において、ＡＦＥ制御は、データのウィンドウサイズを使用して特徴を判定する。ウィンドウ１、２、及び３は同じサイズのものであり、異なる時点におけるデータを測定する。一実施形態において、例示されるように、特徴判定は、重なったウィンドウを採用することができる。ウィンドウ２がウィンドウ１の途中で始まり、ウィンドウ３がウィンドウ２の途中で始まることが観察されるであろう（実際、ウィンドウ３は、ウィンドウ１が完結するとすぐに始まる）。一実施形態において、ウィンドウは、図示されるものより多く重なることができる。一実施形態において、ウィンドウは、図示されるものより少なく重なることができる。ウィンドウがより多く重なる一実装において、ウィンドウ１、２、及び３が同じ時間にアクティブであるいくらかの時間期間が存在することになる。ウィンドウがより少なく重なる一実装において、ウィンドウ１は完結しておりウィンドウ２は始まっており、しかしウィンドウ３はまだアクティブでなく又はまだ開始されていないいくらかの時間期間が存在することになる。ウィンドウを重ねることは、端部ケースデータを失うことを防止する可能性がある。
【００６６】
各ウィンドウにおいて、特徴生成エンジンは、信号パワーの和（Σｘ）と信号パワーの二乗の和（Σｘ２）とを計算する。一実施形態において、特徴生成エンジンは、ウィンドウサイズ全体にわたり和を計算する。一実施形態において、特徴生成エンジンは、ウィンドウのサブセットにわたり和を計算する。メモリ５２０が、所与のウィンドウについて算出される和及び二乗和を記憶する。データのウィンドウを記憶した後、ロジック５３０が、データからの特徴を計算し、あるいは抽出する。
【００６７】
平均は、サンプルの和に依存する。パワー及び標準偏差（分散）は、サンプルの和及び二乗和に依存する。ゆえに、一実施形態において、平均、パワー、及び分散が、使用される特徴である場合、特徴生成エンジンは、メモリ５２０に保持された、蓄積された和及び二乗和結果のみから特徴を計算することができる。一実施形態において、ロジック５３０は、各ウィンドウについて、重なっていない領域と重なっている領域とについて、２つの結果を別々に算出する。一実施形態において、ロジック５３０は、ウィンドウサイズがフルになると、ウィンドウについての累積的な和及び二乗和から特徴を算出する。一実施形態において、前のウィンドウについて記憶されたデータが上書きされる。ゆえに、一実施形態において、特徴生成エンジンは、プログラム可能なウィンドウサイズ及び重なりを用いて、センサごとに４つのバッファ（重なっていない和と、重なっていない二乗の和と、重なっている和と、重なっていない二乗の和とについて、各々１つ）を用いて、（図示された３つの特徴を仮定して）すべての必要な特徴を抽出することができる。
【００６８】
一実施形態において、ロジック５３０は、３つの再使用可能計算ブロック、すなわち、加算、二乗、二乗根を含む。システム５００の例において、システムは、これらブロックを１回インスタンス化し、種々の特徴を生成すると同時にブロックの共有をスケジュールすることができる。こうした一実装は、パワー及び面積を節約することができる。こうした一実装は、一実施形態において、次のデータサンプルが入って来る（例えば、いくらかの数のクロックサイクル後の）前に特徴生成が完了される必要がないという事実を活用することができる。
【００６９】
例示されるとおり、一実施形態において、ロジック５３０は、平均（例えば、信号平均）、分散（例えば、信号標準偏差）、及びパワー（例えば、実際のパワー（real  power））を下記のとおり計算することができる。簡潔さを目的として、異なる破線を有する線が、様々な特徴を計算するのに使用されるロジックのフローを例示する。例えば、ロジック５３０は、一点鎖線の論理フローに沿って平均を、破線の論理フローに沿って分散を、及び実線の論理フローに沿ってパワーを計算する。したがって、ロジック５３０は、Ｎ個のサンプルにわたる和を平均することによって平均を計算し、二乗の和から和を引いた差をＮ個のサンプルにわたり平均し、この平均結果の二乗根をとることによって分散を計算し、Ｎ個のサンプルにわたる二乗の和を平均し、この平均結果の二乗根をとることによってパワーを計算する。
【００７０】
図６Ａは、動的プログラマブルＡＦＥを動作させる処理の一実施形態のフロー図である。処理６００は、入力信号の特徴を判定すること（determining）と上記特徴に基づいて動作状態を判定することとによって動的プログラマブルＡＦＥを動作させることを説明する。一実施形態において、ＡＦＥ回路は、プロセッサ、処理ユニット、システムオンチップ、又は複数のセンサデバイスとインターフェースする他のシステムの一部である。具体的に、ＡＦＥは、アナログ出力を生成するセンサとインターフェースする。
【００７１】
一実施形態において、ＡＦＥは、アナログ入力を確認するよう判定する（６０２）。一実施形態において、ＡＦＥは、センサ入力データを要求するシステムレベルプロセッサの要求においてアナログ入力を確認する。一実施形態において、ＡＦＥは、アナログ入力を連続的に監視し、スケジューリングアルゴリズムに従いアナログ入力をサンプリングするよう複数のセンサデバイスの中から連続的に選択する。一実施形態において、ＡＦＥは、１つ以上のタイマ又はスケジューリングメカニズムに従ったスケジュールで入力を繰り返して（cycling）いずれのセンサをいつサンプリングするかの記録をつけることにより、半連続的にセンサを監視する。外部プロセッサからの要求によるか、又は内部ルーチンからのスケジュール又は判定によるかにかかわらず、ＡＦＥは、トリガに基づいてアナログ入力を受信し、あるいはアナログ入力をサンプリングするということができる。トリガは、アナログ入力をサンプリングするための要求、タイマ値、又は処理判定であり得る。
【００７２】
ＡＦＥは、ＡＦＥ制御により設定されるとおり、制御設定をアナログ回路コンポーネントに適用する（６０４）。一実施形態において、ＡＦＥは、各々の異なる入力について、異なる制御設定を提供する。ゆえに、ＡＦＥは、サンプリングされるべき各々の異なるアナログ入力について、サンプリング動作を動的に調整することができる。ＡＦＥは、ＡＦＥ制御により判定される動作状態に基づいて、現在の設定をアナログ回路コンポーネントに適用する。一実施形態において、ＡＦＥは多重化される。ゆえに、設定の一部として、又は他の設定との関連で、ＡＦＥは、複数の異なるアナログ入力信号のうち１つをサンプリングするようにアナログマルチプレクサを設定することができる（６０６）。
【００７３】
一実施形態において、プリプロセッサ又は他のＡＦＥ制御ロジックが、入力信号を処理し、入力センサデータから特徴を計算する。計算された特徴は、センサ入力信号に基づくＡＦＥの動作条件情報を表す（６０８）。ゆえに、各々の異なるセンサは、ＡＦＥの異なる動作条件に対応することができる。ＡＦＥ制御の特徴生成エンジンは、計算された特徴を記憶し、分類エンジン又は動作状態判定エンジンは、記憶された計算された特徴に基づいてＡＦＥの動作状態を判定する（６１０）。一実施形態において、動作状態は各センサに特有である。一実施形態において、分類エンジンは、複数のセンサからの特徴に基づいて動作状態を判定する。
【００７４】
一実施形態において、ＡＦＥ制御は、プライマリプロセッサ又はアプリケーションプロセッサにデータを送信する前にデータに対する予備解析を実行するプリプロセッサであり、あるいは該プリプロセッサの一部である。ゆえに、プリプロセッサは、データをアプリケーションプロセッサに選択的に送信することができる（６１２）。一実施形態において、上記前処理段階は、動作状態に基づいて、入力データが重要データを表すかどうかを判定する。何が重要データであるかに関する判定は、センサごとに、及び実装ごとに変動することが理解されるであろう。ＡＦＥ制御は、ＡＦＥ構成の１つ以上のパラメータを選択的に調整して、そのインターフェース動作を上記の判定された動作状態に基づいて調整する（６１４）。例えば、ＡＦＥ制御は、１つ以上の制御信号を生成して、ＡＦＥの品質又は精度若しくは分解能に関連した１つ以上の設定を調整し、サンプリング精度、帯域幅、分解能、パワー、及び／又は何らかの他の調整を調整することができる。
【００７５】
図６Ｂは、動作状態に基づいて動的プログラマブルＡＦＥを調整する処理の一実施形態のフロー図である。処理６２０は、例えば図６Ａの６１４において説明されるものなどの、ＡＦＥ構成の選択的変更を説明する。ＡＦＥ制御ロジックは、計算された特徴に基づいて動作状態を判定する（６２２）。特徴の計算は、データの記憶を実行することと記憶されたデータに対する算出を実行することとによって行われる。一実施形態において、ＡＦＥ制御は、ＡＦＥのどの設定が上記の判定された動作状態に対応するかを判定する（６２４）。一実施形態において、ＡＦＥ制御は、上記の判定を、ＬＵＴ又は他の記憶された情報に対する参照によって行うことができる。
【００７６】
設定が何であるべきかに基づいて、ＡＦＥ制御は、いずれかの設定が変更される必要があるかどうかを判定することができる。一実施形態において、ＡＦＥ制御は、該ＡＦＥ制御が異なる動作状態を判定するたび、ＡＦＥ設定を変更する。ＡＦＥ制御がＡＦＥ設定を変更するよう判定する場合（６２６）、ＹＥＳ枝であり、ＡＦＥ制御は、ＡＦＥが如何にして入力センサデータを受信するかを変更する１つ以上の制御設定を動的に調整する（６２８）。ＡＦＥ制御は、それから、データをアプリケーションプロセッサに選択的に送信することができる（６３０）。ＡＦＥ制御が、ＡＦＥ設定を変更しないよう判定する場合（６２６）、ＮＯ枝であり、ＡＦＥ制御は、データをアプリケーションプロセッサに選択的に送信することができる（６３０）。ＡＦＥ制御は、動作状態判定に基づいてＡＦＥ設定を調整すべきかどうかを判定することを連続的にループすることができる。一実施形態において、ＡＦＥ設定を変更する処理は、動作状態が変わるたびにトリガされる。
【００７７】
図６Ｃは、動的プログラマブルＡＦＥの分類を判定する処理の一実施形態のフロー図である。処理６４０は、例えば図６Ａの６１２において説明されたものなどの、動作状態の分類を説明する。一実施形態において、ＡＦＥ制御は、計算された特徴について使用すべき分類木を識別する（６４２）。ＡＦＥ制御分類エンジンが、特徴生成エンジンにより記憶された特徴にアクセスすることができる。ＡＦＥ制御は、それから、選択された分類木を横断して動作状態を判定することができる（６４４）。
【００７８】
一実施形態において、ＡＦＥ制御は（分類エンジンを介して）、特徴履歴に基づいて、異なる分類木が使用されるべきかを判定することができる（６４６）。一実施形態において、上記判定が行われて、ある時間期間について同じ動作状態が選択される場合にツリーホップする。ＡＦＥ制御が異なる分類木を使用するよう判定する場合（６４８）、ＹＥＳ枝であり、ＡＦＥ制御は、動作状態及び／又は計算された特徴に基づいて異なる木を設定することができる（６５０）。ＡＦＥ制御は、それから、分類に基づいて動作状態を設定することができる（６５２）。ＡＦＥ制御が異なる木を使用しないよう判定する場合（６４８）、ＮＯ枝であり、ＡＦＥ制御は、分類に基づいて動作状態を設定し（６５２）、新たに計算された特徴について動作状態を判定することをループし続けることができる。
【００７９】
図７は、動的プログラマブルＡＦＥが実装され得るコンピューティングシステムの一実施形態のブロック図である。システム７００は、本明細書に説明される任意の実施形態に従うコンピューティングデバイスを表し、ラップトップコンピュータ、デスクトップコンピュータ、サーバ、ゲーミング若しくはエンターテインメント制御システム、スキャナ、コピー機、プリンタ、ルーティング若しくはスイッチングデバイス、又は他の電子デバイスであり得る。システム７００はプロセッサ７２０を含み、プロセッサ７２０は、システム７００の処理、動作管理、及び命令の実行を提供する。プロセッサ７２０には、任意タイプのマイクロプロセッサ、中央処理ユニット（ＣＰＵ）、処理コア、又はシステム７００のための処理を提供する他の処理ハードウェアを含むことができる。プロセッサ７２０は、システム７００の全体的動作を制御し、１つ以上のプログラマブル汎用目的若しくは特別目的マイクロプロセッサ、デジタルシグナルプロセッサ（ＤＳＰ）、プログラマブルコントローラ、特定用途向け集積回路（ＡＳＩＣ）、プログラマブルロジックデバイス（ＰＬＤ）、若しくは同様のもの、又はこうしたデバイスの組み合わせであり得、あるいは上記を含むことができる。
【００８０】
メモリサブシステム７３０はシステム７００のメインメモリを表し、プロセッサ７２０により実行されるコード、又はルーチンの実行に使用されるデータ値の、一時記憶を提供する。メモリサブシステム７３０は１つ以上のメモリデバイスを含むことができ、例えば、読取専用メモリ（ＲＯＭ）、フラッシュメモリ、ランダムアクセスメモリ（ＲＡＭ）の１つ以上の種類、若しくは他のメモリデバイス、又はこうしたデバイスの組み合わせなどである。メモリサブシステム７３０は、中でも、システム７００における命令の実行のためのソフトウェアプラットフォームを提供するオペレーティングシステム（ＯＳ）７３６を記憶し、ホストする。さらに、他の命令７３８が記憶され、メモリサブシステム７３０から実行されて、システム７００のロジック及び処理を提供する。ＯＳ７３６及び命令７３８はプロセッサ７２０により実行される。メモリサブシステム７３０はメモリデバイス７３２を含み、メモリデバイス７３２はデータ、命令、プログラム、又は他のアイテムを記憶する。一実施形態において、メモリサブシステムはメモリコントローラ７３４を含み、メモリコントローラ７３４は、メモリデバイス７３２に対するコマンドを生成し及び発行するメモリコントローラである。メモリコントローラ７３４はプロセッサ７２０の物理的一部であり得ることが理解されるであろう。
【００８１】
プロセッサ７２０及びメモリサブシステム７３０は、バス／バスシステム７１０に結合される。バス７１０は、任意の１つ以上の別々の物理バス、通信線／インターフェース、及び／又はポイントツーポイント接続を表す抽象化であり、適切なブリッジ、アダプタ、及び／又はコントローラにより接続される。したがって、バス７１０は、例えば、システムバス、ペリフェラルコンポーネントインターコネクト（ＰＣＩ）バス、ハイパートランスポート又は業界標準アーキテクチャ（ＩＳＡ）バス、スモールコンピュータシステムインターフェース（ＳＣＳＩ）バス、ユニバーサルシリアルバス（ＵＳＢ）、又は電気電子技術者協会（ＩＥＥＥ）標準１３９４バス（“Ｆｉｒｅｗｉｒｅ”と一般に呼ばれる）のうち１つ以上を含むことができる。バス７１０のバスは、ネットワークインターフェース７５０内のインターフェースにさらに対応することができる。
【００８２】
システム７００は、バス７１０に結合された１つ以上の入力／出力（Ｉ／Ｏ）インターフェース７４０、ネットワークインターフェース７５０、１つ以上の内部大容量記憶デバイス７６０、及びペリフェラルインターフェース７７０をさらに含む。Ｉ／Ｏインターフェース７４０は、ユーザがシステム７００とインターフェースするための１つ以上のインターフェースコンポーネントを含むことができる（例えば、ビデオ、オーディオ、及び／又は英数字インターフェーシング）。一実施形態において、Ｉ／Ｏインターフェース７４０は、ユーザがシステム７００とインターフェースするための視覚的及び／又は触覚的表示及び／又は視覚的知覚可能出力を提供するコンポーネントを含む。一実施形態において、ディスプレイには、ユーザに出力を提供することとユーザから入力を受け取ることとの双方をなすタッチスクリーンデバイスが含まれる。一実施形態において、ディスプレイには、ユーザに出力を提供する高精細（ＨＤ）ディスプレイが含まれる。高精細は、約１００ＰＰＩ（ピクセルパーインチ）又はより大きい画素密度を有する表示を示すことができ、例えばフルＨＤ（例えば、１０８０ｐ）、ｒｅｔｉｎａディスプレイ、４Ｋ（超高精細又はＵＨＤ）、又はその他などのフォーマットを含むことができる。
【００８３】
ネットワークインターフェース７５０は、システム７００に、１つ以上のネットワークを通じてリモートデバイス（例えば、サーバ、他のコンピューティングデバイス）と通信する能力を提供する。ネットワークインターフェース７５０には、イーサネット（登録商標）アダプタ、無線相互接続コンポーネント、ＵＳＢ（ユニバーサルシリアルバス）、又は他の有線若しくは無線標準に基づく若しくは独自のインターフェースを含むことができる。記憶装置７６０は、大量のデータを不揮発な仕方で記憶する任意の従来型媒体であり得、あるいは該媒体を含むことができ、例えば、１つ以上の磁気、ソリッドステート、若しくは光学ベースのディスク、又は組み合わせなどである。記憶装置７６０は、コード又は命令及びデータ７６２を永続的な状態で保持する（すなわち、値は、システム７００に対するパワーの中断にかかわらず保有される）。記憶装置７６０は、「メモリ」であると一般にみなされ得るが、メモリ７３０は、プロセッサ７２０に命令を提供する実行又は動作メモリである。記憶装置７６０が不揮発であることに対し、メモリ７３０は揮発メモリを含むことができる（すなわち、システム７００に対してパワーが中断される場合、データの値又は状態が不定である）。
【００８４】
ペリフェラルインターフェース７７０は、具体的に上述されていない任意のハードウェアインターフェースを含むことができる。ペリフェラルは、システム７００に従属的に接続するデバイスを一般に示す。従属的接続は、動作が実行され、ユーザが対話するソフトウェア及び／又はハードウェアプラットフォームを、システム７００が提供する接続である。
【００８５】
一実施形態において、プロセッサ７２０はＡＦＥ７２２を含み、ＡＦＥ７２２は、本明細書に説明される任意の実施形態に従うフロントエンド回路である。ＡＦＥ７２２は、プロセッサ７２０を複数のセンサ７２４にインターフェースし、これは、例えば、Ｉ／Ｏインターフェース７４０及び／又はペリフェラルインターフェース７７０を介して接続され得る。一実施形態において、センサ７２４が、システム７００に直接図示されていないインターフェースを介して接続される。ＡＦＥ７２２は動的に構成可能であり、このことは、フロントエンド回路がその動作を、判定された動作状態に基づいて調整することを可能にする。ＡＦＥ７２２はＡＦＥ制御（詳細に図示されていない）を含み、ＡＦＥ制御は、入力センサデータから特徴を生成し、生成された特徴から動作状態を判定する。動作状態に基づいて、ＡＦＥ制御はＡＦＥの動作を調整して、インターフェースを向上させ、パワーを節約する。
【００８６】
図８は、動的プログラマブルＡＦＥが実装され得るモバイルデバイスの一実施形態のブロック図である。デバイス８００はモバイルコンピューティングデバイスを表し、例えば、コンピューティングタブレット、モバイルフォン若しくはスマートフォン、無線対応ｅリーダ、ウェアラブルコンピューティングデバイス、又は他のモバイルデバイスなどである。コンポーネントのうちいくらかが概して図示され、上記デバイスの全コンポーネントがデバイス８００内に示されているわけではないことが理解されるであろう。
【００８７】
デバイス８００はプロセッサ８１０を含み、プロセッサ８１０は、デバイス８００の主な処理動作を実行する。プロセッサ８１０は１つ以上の物理デバイスを含むことができ、例えば、マイクロプロセッサ、アプリケーションプロセッサ、マイクロコントローラ、プログラマブルロジックデバイス、又は他の処理手段などである。プロセッサ８１０により実行される処理動作には、アプリケーション及び／又はデバイス機能が実行される動作プラットフォーム又はオペレーティングシステムの、実行が含まれる。処理動作には、人間のユーザとの又は他のデバイスとのＩ／Ｏ（入力／出力）に関連した動作、パワー管理に関連した動作、及び／又はデバイス８００を別のデバイスに接続することに関連した動作が含まれる。処理動作は、オーディオＩ／Ｏ及び／又はディスプレイＩ／Ｏに関連した動作をさらに含むことができる。
【００８８】
一実施形態において、デバイス８００はオーディオサブシステム８２０を含み、オーディオサブシステム８２０は、コンピューティングデバイスにオーディオ機能を提供することに関連付けられたハードウェア（例えば、オーディオハードウェア及びオーディオ回路）及びソフトウェア（例えば、ドライバ、コーデック）コンポーネントを表す。オーディオ機能には、スピーカー及び／又はヘッドフォン出力と、マイクロフォン入力とを含むことができる。上記機能のためのデバイスが、デバイス８００に組み入れられ、あるいはデバイス８００に接続されることができる。一実施形態において、ユーザが、プロセッサ８１０により受け取られ及び処理されるオーディオコマンドを提供することによって、デバイス８００と対話する。
【００８９】
ディスプレイサブシステム８３０は、ユーザがコンピューティングデバイスと対話するための視覚的及び／又は触覚的表示及び／又は視覚的知覚可能出力を提供するハードウェア（例えば、ディスプレイデバイス）及びソフトウェア（例えば、ドライバ）コンポーネントを表す。ディスプレイサブシステム８３０はディスプレイインターフェース８３２を含み、ディスプレイインターフェース８３２は、ユーザに表示を提供するのに使用される特定の画面又はハードウェアデバイスを含む。一実施形態において、ディスプレイインターフェース８３２は、プロセッサ８１０とは別々のロジックを含んで、表示に関連した少なくともいくつかの処理を実行する。一実施形態において、ディスプレイサブシステム８３０は、ユーザに出力を提供することとユーザから入力を受け取ることとの双方をなすタッチスクリーンデバイスを含む。一実施形態において、ディスプレイサブシステム８３０は、ユーザに出力を提供する高精細（ＨＤ）ディスプレイを含む。高精細は、約１００ＰＰＩ（ピクセルパーインチ）又はより大きいの画素密度を有するディスプレイを示すことができ、例えばフルＨＤ（例えば、１０８０ｐ）、ｒｅｔｉｎａディスプレイ、４Ｋ（超高精細又はＵＨＤ）、又はその他などのフォーマットを含むことができる。
【００９０】
Ｉ／Ｏコントローラ８４０は、ユーザとのインタラクションに関連したハードウェアデバイス及びソフトウェアコンポーネントを表す。Ｉ／Ｏコントローラ８４０は、オーディオサブシステム８２０及び／又はディスプレイサブシステム８３０の一部であるハードウェアを管理するよう動作することができる。さらに、Ｉ／Ｏコントローラ８４０は、ユーザがシステムと対話できるための、デバイス８００に接続するさらなるデバイスのための接続ポイントを例示する。例えば、デバイス８００に取り付けることができるデバイスには、マイクロフォンデバイス、スピーカー若しくはステレオシステム、ビデオシステム若しくは他の表示デバイス、キーボード若しくはキーパッドデバイス、又は特定アプリケーションとの使用のための他のＩ／Ｏデバイス、例えばカードリーダ若しくは他のデバイスなどを含むことができる。
【００９１】
上述されたとおり、Ｉ／Ｏコントローラ８４０は、オーディオサブシステム８２０及び／又はディスプレイサブシステム８３０と相互作用することができる。例えば、マイクロフォン又は他のオーディオデバイスをとおした入力が、デバイス８００の１つ以上のアプリケーション又は機能のための入力又はコマンドを提供することができる。さらに、オーディオ出力が、ディスプレイ出力に代わって又は追加で提供されてもよい。別の例において、ディスプレイサブシステムがタッチスクリーンを含む場合、ディスプレイデバイスはさらに入力デバイスとして作用し、このことはＩ／Ｏコントローラ８４０によって少なくとも部分的に管理されることができる。デバイス８００上にさらなるボタン又はスイッチがさらに存在して、Ｉ／Ｏコントローラ８４０により管理されるＩ／Ｏ機能を提供することができる。
【００９２】
一実施形態において、Ｉ／Ｏコントローラ８４０はデバイスを管理し、該デバイスは、例えば、加速度計、カメラ、光センサ若しくは他の環境センサ、ジャイロスコープ、グローバルポジショニングシステム（ＧＰＳ）、又はデバイス８００内に含むことができる他のハードウェアなどである。入力は、直接のユーザインタラクションの一部であってもよく、さらに、システムの動作（例えば、雑音についてフィルタすること、明るさ検出について表示を調整すること、カメラについてフラッシュを適用すること、又は他の特徴）に影響を与えるようにシステムに環境入力を提供することができる。一実施形態において、デバイス８００はパワー管理８５０を含み、パワー管理８５０は、バッテリパワー使用、バッテリの充電、及びパワー節約動作に関連した特徴を管理する。
【００９３】
メモリサブシステム８６０は、デバイス８００に情報を記憶する（１つ以上の）メモリデバイス８６２を含む。メモリサブシステム８６０は、不揮発性（メモリデバイスに対するパワーが中断された場合に状態が変化しない）及び／又は揮発性（メモリデバイスに対するパワーが中断された場合に状態が不定になる）のメモリデバイスを含むことができる。メモリ８６０は、アプリケーションデータ、ユーザデータ、音楽、写真、文書、又は他のデータと、システム８００のアプリケーション及び機能の実行に関連したシステムデータ（長期的か又は一時的かにかかわらない）とを記憶することができる。一実施形態において、メモリサブシステム８６０はメモリコントローラ８６４を含む（メモリコントローラ８６４は、さらにシステム８００の制御の一部とみなされることができ、潜在的にプロセッサ８１０の一部とみなされることができる）。メモリコントローラ８６４はスケジューラを含んで、メモリデバイス８６２に対するコマンドを生成し、発行する。
【００９４】
コネクティビティ８７０は、ハードウェアデバイス（例えば、無線及び／又は有線のコネクタ及び通信ハードウェア）とソフトウェアコンポーネント（例えば、ドライバ、プロトコルスタック）とを含んで、デバイス８００が外部のデバイスと通信することを可能にする。外部のデバイスは、別々のデバイス、例えば他のコンピューティングデバイス、無線アクセスポイント又は基地局など、及び、ペリフェラル、例えばヘッドセット、プリンタ、又は他のデバイスなどであり得る。
【００９５】
コネクティビティ８７０は、複数の異なるタイプの接続性を含むことができる。一般化するために、デバイス８００は、セルラーコネクティビティ８７２及び無線コネクティビティ８７４を用いて例示される。セルラーコネクティビティ８７２は、無線キャリアにより提供されるセルラーネットワーク接続性を一般に示し、上記無線キャリアは、例えば、ＧＳＭ（登録商標）（グローバルシステムフォーモバイルコミュニケーション（global  system  for  mobile  communications））若しくはバリエーション若しくは派生、ＣＤＭＡ（符号分割多元接続）若しくはバリエーション若しくは派生、ＴＤＭ（時分割多重）若しくはバリエーション若しくは派生、ＬＴＥ（登録商標）（ロングタームエボリューション、「４Ｇ」とも呼ばれる）、又は他のセルラーサービス標準を介して提供されるものなどである。無線コネクティビティ８７４は、セルラーでない無線接続性を示し、パーソナルエリアネットワーク（例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）など）、ローカルエリアネットワーク（例えば、ＷｉＦｉ（登録商標）など）、及び／又はワイドエリアネットワーク（例えば、ＷｉＭａｘ（登録商標）など）、又は他の無線通信を含むことができる。無線通信は、非固体媒体をとおした変調電磁放射の使用によるデータの転送を示す。有線通信は、固体通信媒体をとおして発生する。
【００９６】
ペリフェラル接続８８０は、ハードウェアインターフェース及びコネクタ並びにソフトウェアコンポーネント（例えば、ドライバ、プロトコルスタック）を含んで、ペリフェラル接続を行う。デバイス８００は、他のコンピューティングデバイスに対するペリフェラルデバイス（“ｔｏ”８８２）であることとデバイス８００に接続されたペリフェラルデバイス（“ｆｒｏｍ”８８４）を有することとの双方あり得ることが理解されるであろう。デバイス８００は、デバイス８００上のコンテンツを管理すること（例えば、ダウンロードすること及び／又はアップロードすること、変更すること、同期すること）などの目的で他のコンピューティングデバイスに接続する「ドッキング」コネクタを一般に有する。さらに、ドッキングコネクタは、デバイス８００が例えばオーディオビジュアル又は他のシステムに対するコンテンツ出力を制御することを可能にする特定のペリフェラルに、デバイス８００が接続することを可能にすることができる。
【００９７】
独自のドッキングコネクタ又は他の独自の接続ハードウェアに追加で、デバイス８００は、一般的な又は標準ベースのコネクタを介して、ペリフェラル接続８８０を行うことができる。一般的タイプには、ユニバーサルシリアルバス（ＵＳＢ）コネクタ（これには、ある数の異なるハードウェアインターフェースのうち任意のものを含むことができる）、ミニディスプレイポート（MiniDisplayPort）（ＭＤＰ）、高精細マルチメディアインターフェース（High  Definition  Multimedia  Interface）（ＨＤＭＩ（登録商標））、Ｆｉｒｅｗｉｒｅ、又は他のタイプを含むディスプレイポートを含むことができる。
【００９８】
一実施形態において、プロセッサ８１０はＡＦＥ８１２を含み、ＡＦＥ８１２は、本明細書に説明される任意の実施形態に従うフロントエンド回路である。ＡＦＥ８１２は、プロセッサ８１０を複数のセンサ（詳細に図示されていないが、Ｉ／Ｏコントローラ８４０を介して接続され得る）にインターフェースする。ＡＦＥ８１２は動的に構成可能であり、このことは、フロントエンド回路がその動作を、判定された状態に基づいて調整することを可能にする。ＡＦＥ８１２はＡＦＥ制御（詳細に図示されていない）を含み、ＡＦＥ制御は、入力センサデータから特徴を生成し、生成された特徴から動作状態を判定する。動作状態に基づいて、ＡＦＥ制御はＡＦＥの動作を調整して、インターフェースを向上させ、パワーを節約する。
【００９９】
一態様において、アナログフロントエンド（ＡＦＥ）を動作させる方法が、上記ＡＦＥに結合された複数のセンサのうち１つを選択することと、上記センサから入力センサデータを受信することと、上記入力センサデータに基づいて上記センサについての特徴を計算することであって、上記特徴は、上記センサに対する上記ＡＦＥの選択された動作条件情報を表す、ことと、上記の計算された特徴に基づいて、上記センサに対する上記ＡＦＥの複数の別個の動作状態のうち１つを判定することと、上記ＡＦＥの動作を動的に調整して、上記の判定された動作状態に基づいて上記センサとインターフェースすることであって、上記ＡＦＥが上記センサから上記入力センサデータを如何にして受信するかを制御する上記ＡＦＥの構成を制御することを含む、ことと、を含む。
【０１００】
一実施形態において、特徴を計算することは、少なくとも信号平均値、信号標準偏差、及び実際のパワーを計算することをさらに含む。一実施形態において、特徴を計算することは、ある時間ウィンドウについてデータを蓄積することにより特徴を計算することをさらに含む。一実施形態において、上記時間ウィンドウについてデータを蓄積することは、重なっている時間ウィンドウと連続した重なっていない時間ウィンドウとの双方についてデータを蓄積することをさらに含む。一実施形態において、複数の別個の動作状態のうち１つを判定することは、記憶された計算された特徴に基づいて決定木を横断することにより、動作条件情報を上記複数の別個の動作状態に分類することを含む。一実施形態において、上記動作条件情報を分類することは、計算された動作条件情報に基づいて複数の決定木のうち１つの間で切り替えること（switching  among）を含む。一実施形態において、上記センサは複数のセンサのうちの１つであり、上記入力センサデータを受信することは、複数のセンサから入力センサデータを受信することを含み、上記複数の別個の動作状態のうち１つを判定することは、上記複数のセンサからの上記入力センサデータに基づいて判定することを含む。一実施形態において、上記ＡＦＥの上記構成を制御することは、上記センサに関して上記ＡＦＥのサンプリング分解能の設定を動的に変更することを含む。一実施形態において、上記ＡＦＥの上記構成を制御することは、上記センサに関して上記ＡＦＥの帯域幅の設定を動的に変更することを含む。一実施形態において、上記ＡＦＥの上記構成を制御することは、上記センサとインターフェースするときに上記ＡＦＥのハードウェアコンポーネントを選択的に有効にし、無効にすることを含む。一実施形態において、上記ＡＦＥの上記構成を制御することは、上記センサとインターフェースすることにおいて上記ＡＦＥの高精度コンポーネントと低精度カウンターパート（counterpart）コンポーネントとの間で動的に切り替えることを含む。一実施形態において、上記ＡＦＥの上記構成を制御することは、上記センサとインターフェースすることにおいて上記ＡＦＥの高パワーコンポーネントと低パワーカウンターパートコンポーネントとの間で動的に切り替えることを含む。
【０１０１】
一態様において、フロントエンド回路が、複数のセンサから複数の処理されていない入力センサデータを受信する複数のハードウェア入力インターフェースと、上記複数のセンサのうち１つを選択し、上記の選択されたセンサの入力センサデータを処理するアナログ処理ハードウェアと、上記入力センサデータに基づいて上記センサについての特徴を計算することであって、上記特徴は上記センサに対する上記アナログ処理ハードウェアの選択された動作条件情報を表し、上記の計算された特徴に基づいて上記センサに対する上記アナログ処理ハードウェアの複数の別個の動作状態のうち１つを判定し、上記アナログ処理ハードウェアの動作を動的に調整して上記の判定された動作状態に基づいて上記センサとインターフェースすることであって、上記アナログ処理ハードウェアが上記センサから上記入力センサデータを如何にして受信するかを制御する上記アナログ処理ハードウェアの構成を制御することを含むプロセッサと、を備える。
【０１０２】
一実施形態において、上記プロセッサが特徴を計算することは、上記プロセッサが、ある時間ウィンドウについてデータを蓄積すること、又は、少なくとも信号平均、信号標準偏差、及び実際のパワーを計算すること、のうち１つ以上を実行することをさらに含む。一実施形態において、上記プロセッサが特徴を計算することは、上記プロセッサがある時間ウィンドウについてデータを蓄積することをさらに含む。一実施形態において、上記プロセッサは、重なっている時間ウィンドウと連続した重なっていない時間ウィンドウとの双方についてデータを蓄積する。一実施形態において、上記プロセッサが、記憶された計算された特徴に基づいて決定木を横断することにより、動作条件情報を複数の別個の動作状態に分類することをさらに含む。一実施形態において、上記プロセッサが上記動作条件情報を分類することは、上記プロセッサが、計算された動作条件情報に基づいて複数の決定木のうち１つの間で切り替えることを含む。一実施形態において、上記センサは複数のセンサのうちの１つであり、上記複数のハードウェア入力インターフェースは複数のセンサから上記入力センサデータを受信し、上記プロセッサは、上記複数のセンサからの入力センサデータに基づいて上記複数の別個の動作状態のうち１つを判定する。一実施形態において、上記プロセッサは、上記センサに関して上記アナログ処理ハードウェアのサンプリング分解能の設定を動的に変更することを含む上記アナログ処理ハードウェアの上記構成を制御する。一実施形態において、上記プロセッサは、上記センサに関して上記アナログ処理ハードウェアの帯域幅の設定を動的に変更することを含む上記アナログ処理ハードウェアの上記構成を制御する。一実施形態において、上記プロセッサは、上記センサとインターフェースするときに上記アナログ処理ハードウェアのハードウェアコンポーネントを選択的に有効にし、無効にすることを含む上記アナログ処理ハードウェアの上記構成を制御する。一実施形態において、上記プロセッサは、上記センサとインターフェースすることにおいて上記アナログ処理ハードウェアの高精度コンポーネントと低精度カウンターパートコンポーネントとの間で動的に切り替えることを含む上記アナログ処理ハードウェアの上記構成を制御する。一実施形態において、上記プロセッサは、上記センサとインターフェースすることにおいて上記アナログ処理ハードウェアの高パワーコンポーネントと低パワーカウンターパートコンポーネントとの間で動的に切り替えることを含む上記アナログ処理ハードウェアの上記構成を制御する。
【０１０３】
一態様において、システムが、複数のセンサから複数の処理されていない入力センサデータを受信する複数のハードウェア入力インターフェースと、上記複数のセンサのうち１つを選択し、上記の選択されたセンサの入力センサデータを処理するアナログ処理ハードウェアと、上記入力センサデータに基づいて上記センサの特徴を計算することであって、上記特徴は上記センサに対する上記アナログ処理ハードウェアの選択された動作条件情報を表し、上記の計算された特徴に基づいて上記センサに対する上記アナログ処理ハードウェアの複数の別個の動作状態のうち１つを判定し、上記アナログ処理ハードウェアの動作を動的に調整して上記の判定された動作状態に基づいて上記センサとインターフェースすることであって、上記アナログ処理ハードウェアが上記センサから上記入力センサデータを如何にして受信するかを制御する上記アナログ処理ハードウェアの構成を制御することを含むプロセッサと、を備えたフロントエンド回路と、上記フロントエンド回路において受信されるデータに基づいて表示を生成するように構成されたタッチスクリーンディスプレイと、を含む。フロントエンド回路に関して説明された任意の実施形態が、上記システムにさらに適用されてよい。
【０１０４】
一態様において、コンテンツを記憶させたコンピュータ読取可能記憶媒体を含む製造品であって、上記コンテンツはアクセスされると、コンピューティングデバイスにアナログフロントエンド（ＡＦＥ）の動作を実行させ、上記動作は、上記ＡＦＥに結合された複数のセンサのうち１つを選択することと、上記センサから入力センサデータを受信することと、上記入力センサデータに基づいて上記センサについての特徴を計算することであって、上記特徴は、上記センサに対する上記ＡＦＥの選択された動作条件情報を表す、ことと、上記の計算された特徴に基づいて、上記センサに対する上記ＡＦＥの複数の別個の動作状態のうち１つを判定することと、上記ＡＦＥの動作を動的に調整して、上記の判定された動作状態に基づいて上記センサとインターフェースすることであって、上記ＡＦＥが上記センサから上記入力センサデータを如何にして受信するかを制御する上記ＡＦＥの構成を制御することを含む、ことと、を含む。ＡＦＥのための方法に関して説明された任意の実施形態が、上記製造品にさらに適用されてよい。
【０１０５】
一態様において、アナログフロントエンド（ＡＦＥ）を動作させる装置が、上記ＡＦＥに結合された複数のセンサのうち１つを選択する手段と、上記センサから入力センサデータを受信する手段と、上記入力センサデータに基づいて上記センサについての特徴を計算する手段であって、上記特徴は、上記センサに対する上記ＡＦＥの選択された動作条件情報を表す、手段と、上記の計算された特徴に基づいて、上記センサに対する上記ＡＦＥの複数の別個の動作状態のうち１つを判定する手段と、上記ＡＦＥの動作を動的に調整して、上記の判定された動作状態に基づいて上記センサとインターフェースする手段であって、上記ＡＦＥが上記センサから上記入力センサデータを如何にして受信するかを制御する上記ＡＦＥの構成を制御することを含む、手段と、を含む。ＡＦＥのための方法に関して説明された任意の実施形態が、上記装置にさらに適用されてよい。
【０１０６】
本明細書に例示されるフロー図は、様々な処理アクションのシーケンスの例を提供する。フロー図は、ソフトウェア又はファームウェアルーチンにより実行される動作と物理的動作とを示すことがある。一実施形態において、フロー図は、有限状態機械（ＦＳＭ）の状態を例示することができ、ＦＳＭは、ハードウェア及び／又はソフトウェアにおいて実装することができる。特定のシーケンス又は順序において図示されるが、別段指定されない限り、アクションの順序は修正することができる。ゆえに、例示される実施形態は単に一例として理解されるべきであり、処理は異なる順序において実行することができ、いくつかのアクションは並列に実行することができる。さらに、１つ以上のアクションが様々な実施形態において省略されてもよく、ゆえに、あらゆる実施形態においてすべてのアクションが必要とされるわけではない。他の処理フローがあり得る。コンポーネントは、動作を実行し又は別のコンポーネントと相互作用するように構成することができる。コンポーネントは、ハードウェア手段によってか若しくはソフトウェア手段によってか又は組み合わせで構成することができる。コンポーネントは、回路又はインターコネクトデバイスを介して提供される物理接続をとおして構成することができる。
【０１０７】
様々な動作又は機能が本明細書に説明される範囲で、上記動作又は機能は、ソフトウェアコード、命令、構成、及び／又はデータとして説明され、あるいは定義されることがある。そのコンテンツは、直接実行可能（「オブジェクト」又は「実行ファイル」形式）、ソースコード、又は差分コード（「デルタ」又は「パッチ」コード）であり得る。本明細書に説明される実施形態のソフトウェアコンテンツは、コンテンツが記憶された製造品を介して、又は通信インターフェースを介してデータを送信する通信インターフェースを動作させる方法を介して、提供することができる。マシン読取可能記憶媒体が、説明された機能又は動作をマシンに実行させることができ、上記記憶媒体には、マシン（例えば、コンピューティングデバイス、電子システム等）によりアクセス可能な形式で情報を記憶する任意のメカニズムが含まれ、例えば、記録可能／記録不能媒体（例えば、読取専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイス等）などである。通信インターフェースには、別のデバイスに通信するようにハードワイヤード、無線、光学等の媒体のうち任意のものにインターフェースする任意のメカニズムが含まれ、例えば、メモリバスインターフェース、プロセッサバスインターフェース、インターネット接続、ディスクコントローラ等である。通信インターフェースは、ソフトウェアコンテンツを記述したデータ信号を提供するために通信インターフェースを準備するように、構成パラメータを提供すること及び／又は信号を送信することにより構成することができる。通信インターフェースは、通信インターフェースに送信される１つ以上のコマンド又は信号を介してアクセスすることができる。
【０１０８】
本明細書に説明される様々なコンポーネントは、説明された動作又は機能を実行する手段であり得る。本明細書に説明される各コンポーネントには、ソフトウェア、ハードウェア、又はこれらの組み合わせが含まれる。コンポーネントは、ソフトウェアモジュール、ハードウェアモジュール、特別目的ハードウェア（例えば、アプリケーション固有ハードウェア、特定用途向け集積回路（ＡＳＩＣ）、デジタルシグナルプロセッサ（ＤＳＰ）等）、組み込みコントローラ、ハードワイヤード回路等として実装することができる。
【０１０９】
本明細書に説明されたことに加えて、本発明の開示された実施形態及び実装に対してその範囲から逸脱することなく様々な修正を行うことができる。したがって、本明細書における解説及び例は、限定的な意味でなく例示とみなされるべきである。本発明の範囲は、下記に続く請求項に対する参照によって専ら計られるべきである。
【図１】
0006746583.tif 000002
【図２】
0006746583.tif 000003
【図３】
0006746583.tif 000004
【図４】
0006746583.tif 000005
【図５】
0006746583.tif 000006
【図６Ａ】
0006746583.tif 000007
【図６Ｂ】
0006746583.tif 000008
【図６Ｃ】
0006746583.tif 000009
【図７】
0006746583.tif 000010
【図８】
0006746583.tif 000011