(57)【要約】  センサデータを電力的に効率的に処理するための方法および装置が開示される。一実施形態では、実施される動作は、汎用プロセッサを用いてセンサ融合エンジンおよび周辺コントローラを構成するステップと、汎用プロセッサを低電力スリープモードにするステップと、周辺コントローラを用いて、センサからデータを読み取り、かつデータをコンパニオンメモリに記憶するステップと、センサ融合エンジンを用いてコンパニオンメモリ中のデータを処理するステップと、低電力スリープモードから汎用プロセッサを起動するステップとを含む。
2017529626.tif 000002
【特許請求の範囲】
【請求項１】
センサデータを電力的に効率的に処理するための方法であって、
汎用プロセッサによって、センサ融合エンジンおよび周辺コントローラを構成するステップと、
前記汎用プロセッサを低電力スリープモードにするステップと、
前記周辺コントローラを用いて、センサからデータを読み取り、かつ前記データをコンパニオンメモリに記憶するステップと、
前記センサ融合エンジンを用いて前記コンパニオンメモリ中の前記データを処理するステップと、
前記低電力スリープモードから前記汎用プロセッサを起動するステップと
を備える、方法。
【請求項２】
前記センサ融合エンジンが、センサデータ関連のアルゴリズムのための1つまたは複数のハードウェアマクロを備える、請求項1に記載の方法。
【請求項３】
前記センサデータ関連のアルゴリズムがセンサ融合アルゴリズムを備える、請求項2に記載の方法。
【請求項４】
前記センサ融合エンジンを構成するステップが、前記1つまたは複数のハードウェアマクロの1つを用いてセンサデータ関連のアルゴリズムを実行するように、前記センサ融合エンジンを構成するステップを備える、請求項2に記載の方法。
【請求項５】
前記データが、ポーリングモードまたは割込みモードにおいて前記センサから読み取られる、請求項1に記載の方法。
【請求項６】
前記コンパニオンメモリのサイズが約数十キロバイトである、請求項1に記載の方法。
【請求項７】
前記周辺コントローラを用いて前記センサから前記データを読み取るステップが、常時オンサブシステム(AOSS)によって協調される、請求項1に記載の方法。
【請求項８】
前記汎用プロセッサ、前記センサ融合エンジン、前記コンパニオンメモリ、および前記周辺コントローラが、システムオンチップ(SoC)の低電力アイランド内に位置する、請求項1に記載の方法。
【請求項９】
前記センサ融合エンジンが常時オンサブシステム(AOSS)の一部である、請求項1に記載の方法。
【請求項１０】
汎用プロセッサと、
センサデータ関連のアルゴリズムのための1つまたは複数のハードウェアマクロを備えるセンサ融合エンジンと、
コンパニオンメモリと、
周辺コントローラと
を備える、システムオンチップ(SoC)。
【請求項１１】
前記汎用プロセッサが、前記センサ融合エンジンおよび前記周辺コントローラの構成を提供するように構成され、
前記汎用プロセッサが、低電力スリープモードに入るように構成され、
前記周辺コントローラが、センサからデータを読み取り、かつ前記データを前記コンパニオンメモリに記憶するように構成され、
前記汎用プロセッサが、前記低電力スリープモードから起動するように構成される、請求項10に記載のシステムオンチップ(SoC)。
【請求項１２】
前記センサ融合エンジンが、前記汎用プロセッサに対する数値演算コプロセッサとして動作するように構成される、請求項10に記載のシステムオンチップ(SoC)。
【請求項１３】
前記センサデータ関連のアルゴリズムがセンサ融合アルゴリズムを備える、請求項10に記載のシステムオンチップ(SoC)。
【請求項１４】
前記汎用プロセッサが、前記センサ融合エンジンに、前記1つまたは複数のハードウェアマクロの1つを用いてセンサデータ関連のアルゴリズムを実行させることによって、前記センサ融合エンジンの構成を提供するように構成される、請求項11に記載のシステムオンチップ(SoC)。
【請求項１５】
前記データが、ポーリングモードまたは割込みモードにおいて前記センサから読み取られる、請求項11に記載のシステムオンチップ(SoC)。
【請求項１６】
前記コンパニオンメモリのサイズが約数十キロバイトである、請求項10に記載のシステムオンチップ(SoC)。
【請求項１７】
前記周辺コントローラを用いて前記センサから前記データを読み取ることが、常時オンサブシステム(AOSS)によって協調される、請求項11に記載のシステムオンチップ(SoC)。
【請求項１８】
前記汎用プロセッサ、前記センサ融合エンジン、前記コンパニオンメモリ、および前記周辺コントローラが、前記システムオンチップ(SoC)の低電力アイランド内に位置する、請求項10に記載のシステムオンチップ(SoC)。
【請求項１９】
前記センサ融合エンジンが常時オンサブシステム(AOSS)の一部である、請求項10に記載のシステムオンチップ(SoC)。
【請求項２０】
コードを含む非一時的コンピュータ可読記録媒体であって、前記コードが、プロセッサによって実行されると、前記プロセッサに、
汎用プロセッサを用いて、センサ融合エンジンおよび周辺コントローラを構成させ、
前記汎用プロセッサを低電力スリープモードにさせ、
前記周辺コントローラを用いて、センサからデータを読み取らせ、かつ前記データをコンパニオンメモリへ記憶させ、
前記センサ融合エンジンを用いて前記コンパニオンメモリ中の前記データを処理させ、
前記低電力スリープモードから前記汎用プロセッサを起動させる、非一時的コンピュータ可読記録媒体。
【請求項２１】
前記センサ融合エンジンが、センサデータ関連のアルゴリズムのための1つまたは複数のハードウェアマクロを備える、請求項20に記載の非一時的コンピュータ可読記録媒体。
【請求項２２】
前記センサ融合エンジンを構成するためのコードが、前記1つまたは複数のハードウェアマクロの1つを用いてセンサデータ関連のアルゴリズムを実行するように、前記センサ融合エンジンを構成するためのコードを備える、請求項21に記載の非一時的コンピュータ可読記録媒体。
【請求項２３】
前記データが、ポーリングモードまたは割込みモードにおいて前記センサから読み取られる、請求項20に記載の非一時的コンピュータ可読記録媒体。
【請求項２４】
前記周辺コントローラを用いて前記センサから前記データを読み取ることが、常時オンサブシステム(AOSS)によって協調される、請求項20に記載の非一時的コンピュータ可読記録媒体。
【請求項２５】
センサデータを電力的に効率的に処理するための装置であって、
データを処理するための手段と、
センサデータ関連のアルゴリズムを実行するための手段を含むセンサデータを融合するための手段と、
データを記憶するための手段と、
周辺のコンポーネントを制御するための手段と
を備え、
前記データを処理するための手段が、前記センサデータを融合するための手段および周辺のコンポーネントを制御するための手段の構成を提供するように構成され、
前記データを処理するための手段が、低電力スリープモードに入るように構成され、
前記周辺のコンポーネントを制御するための手段が、センサからデータを読み取り、前記データを記憶するための手段に前記データを記憶するように構成され、
前記データを処理するための手段が、前記低電力スリープモードから起動するように構成される、装置。
【請求項２６】
前記センサデータ関連のアルゴリズムがセンサ融合アルゴリズムを備える、請求項25に記載の装置。
【請求項２７】
前記データを処理するための手段が、前記センサを融合するための手段に、センサデータ関連のアルゴリズムを実行させることによって、前記センサデータを融合するための手段の構成を提供するように構成される、請求項25に記載の装置。
【請求項２８】
前記データを処理するための手段、前記センサデータを融合するための手段、前記データを記憶するための手段、および前記周辺のコンポーネントを制御するための手段が、システムオンチップ(SoC)の低電力アイランド内に位置する、請求項25に記載の装置。
【請求項２９】
前記周辺のコンポーネントを制御するための手段を用いて前記センサから前記データを読み取ることが、常時オンサブシステム(AOSS)によって協調される、請求項25に記載の装置。
【請求項３０】
前記センサデータを融合するための手段が常時オンサブシステム(AOSS)の一部である、請求項25に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本出願は、参照によりその全体が本明細書に組み込まれる、2014年9月26日に出願された米国特許出願第14/498,510号の優先権を主張する。
【０００２】
本明細書で開示される主題は全般に、ハードウェアセンサ融合エンジンを備えるシステムオンチップに関する。
【背景技術】
【０００３】
システムオンチップ(SoC)は、スマートフォンおよびタブレットなどのモバイルデバイスにおいてますます一般的になっている。SoCは、コンピューティングシステムの複数の構成要素を備える集積回路である。たとえば、典型的なSoCは、1つまたは複数のプロセッサコア、グラフィックス処理ユニット(GPU)、メモリコントローラ、およびメモリを含むことがある。一部のSoCは、セルラー通信、Wi-Fi、GPS、およびBluetooth(登録商標)などのための、無線伝送デバイスおよびベースバンド伝送デバイスなどのコンポーネント、ならびに、デジタルシグナルプロセッサ(DSP)も含むことがある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
バッテリーの持続時間を延ばすために、モバイルデバイスにおいて使用されるSoCの電力効率を改善することが望ましい。より具体的には、センサ関連のタスクに対するSoCの電力効率を改善することが重要であり、それは、多くのコンテキストベースのアプリケーションが、継続的に常時オンの状態で複数のセンサからのセンサデータを収集し、処理し、かつ融合する(別個のセンサからのデータを組み合わせて情報を導き出す)ことを要求するからである。汎用プロセッサコアおよび/またはDSPを用いて、常時オンの状態でこれらのセンサ関連のタスクを実行することは、エネルギー的に過度に非効率である。
【課題を解決するための手段】
【０００５】
本明細書で開示される実施形態は、汎用プロセッサを用いてセンサ融合エンジンおよび周辺コントローラを構成するステップと、汎用プロセッサを低電力スリープモードにするステップと、周辺コントローラを用いて、センサからデータを読み取り、データをコンパニオンメモリに記憶するステップと、センサ融合エンジンを用いてコンパニオンメモリ中のデータを処理するステップと、低電力スリープモードから汎用プロセッサを起動するステップとを備える、センサデータを電力的に効率的に処理するための方法を含んでよい。
【０００６】
本明細書で開示される別の実施形態は、汎用プロセッサと、センサデータ関連のアルゴリズムのための1つまたは複数のハードウェアマクロを備えるセンサ融合エンジンと、コンパニオンメモリと、周辺コントローラとを備える、システムオンチップ(SoC)を含んでよい。
【０００７】
本明細書で開示されるさらなる実施形態は、プロセッサによって実行されると、プロセッサに、汎用プロセッサを用いてセンサ融合エンジンおよび周辺コントローラを構成させ、汎用プロセッサを低電力スリープモードにさせ、周辺コントローラを用いて、センサからデータを読み取らせ、データをコンパニオンメモリへ記憶させ、センサ融合エンジンを用いてコンパニオンメモリ中のデータを処理させ、低電力スリープモードから汎用プロセッサを起動させるコードを含む、非一時的コンピュータ可読媒体を含んでよい。
【０００８】
本明細書で開示される追加の実施形態は、データを処理するための手段と、センサデータ関連のアルゴリズムを実行するための手段を含むセンサデータを融合するための手段と、データを記憶するための手段と、周辺のコンポーネントを制御するための手段とを備える、センサデータを電力的に効率的に処理するための装置を含んでよく、データを処理するための手段は、センサデータを融合するための手段および周辺のコンポーネントを制御するための手段の構成を提供するように構成され、データを処理するための手段は、低電力スリープモードに入るように構成され、周辺のコンポーネントを制御するための手段は、センサからデータを読み取り、データを記憶するための手段にデータを記憶するように構成され、データを処理するための手段は、低電力スリープモードから起動するように構成される。
【図面の簡単な説明】
【０００９】
【図１】本開示の態様が実践されることがあるコンピューティングデバイスの実施形態を示す図である。
【図２】例示的なシステムオンチップの概略図である。
【図３】センサ融合エンジンを用いて、センサデータを電力的に効率的に収集して処理するための例示的な方法を示すフローチャートである。
【発明を実施するための形態】
【００１０】
「例示的」または「例」という語は、本明細書では、「例、実例、または例示としての役割を果たすこと」を意味するために使用される。「例示的」または「例」として本明細書で説明されるいずれの態様または実施形態も、必ずしも、他の態様または実施形態に比べて好ましいか、または有利であると解釈されるべきではない。
【００１１】
本明細書において使用されるとき、「コンピューティングシステムまたはデバイス」という用語は、限定はされないが、ラップトップおよびデスクトップコンピュータ、タブレット、スマートフォン、テレビ、家庭電化製品、携帯電話、パーソナルテレビデバイス、携帯情報端末(PDA)、パームトップコンピュータ、ワイヤレス電子メールレシーバ、マルチメディアインターネット対応携帯電話、全地球測位システム(GPS)レシーバ、ワイヤレスゲームコントローラ、車両(たとえば、自動車)に内蔵されるレシーバ、対話型ゲームデバイス、ノートブック、スマートブック、ネットブック、モバイルテレビデバイス、または任意のデータ処理装置を含む、任意の形のプログラマブルコンピュータデバイスを指している。
【００１２】
コンテキストベースのアプリケーションのために適合された例示的なコンピューティングデバイス100が図1に示されている。バス105を介して電気的に結合されることが可能である(または適宜他の方法で通信していてもよい)ハードウェア要素を備える、コンピューティングデバイス100が示されている。ハードウェア要素は、限定はされないが、1つまたは複数の汎用プロセッサおよび/または1つまたは複数の(デジタル信号処理チップ、グラフィックスアクセラレーションプロセッサなどの)専用プロセッサを含む1つまたは複数のプロセッサ110と、限定はされないが、1つまたは複数のセンサ、マウス、キーボード、キーパッド、タッチスクリーン、マイクロフォンなどを含むことが可能である1つもしくは複数の入力デバイス115と、限定はされないが、スピーカー、プリンターなどを含むことが可能である1つまたは複数の出力デバイス120とを含んでよい。
【００１３】
コンピューティングデバイス100はさらに、限定はされないが、ローカル記憶装置および/もしくはネットワークアクセス可能記憶装置を備えることが可能である、かつ/または、限定はされないが、プログラム可能、フラッシュ書換え可能などであることが可能である、ランダムアクセスメモリ("RAM")および/もしくは読取り専用メモリ("ROM")などの、ディスクドライブ、ドライブアレイ、光記憶デバイス、ソリッドステート記憶デバイスを含むことが可能である、1つまたは複数の非一時的記憶デバイス125を含むことがある(かつ/またはそれらと通信していることがある)。そのような記憶デバイスは、限定はされないが、様々なファイルシステム、データベース構造などを含む、任意の適切なデータストアを実装するように構成されてよい。
【００１４】
コンピューティングデバイスは、通信サブシステム130も含んでよく、これは、限定はされないが、モデム、ネットワークカード(ワイヤレスまたは有線)、赤外線通信デバイス、(Bluetooth(登録商標)デバイス、802.11デバイス、Wi-Fiデバイス、WiMaxデバイス、セルラー通信デバイスなどの)ワイヤレス通信デバイスおよび/またはチップセットなどを含むことがある。通信サブシステム130は、ネットワーク、他のコンピューティングデバイス、および/または本明細書で説明される任意の他のデバイスと、データが交換されることを可能にすることがある。一実施形態では、コンピューティングデバイス100はさらに、上で説明されたように、RAMデバイスまたはROMデバイスを含むことが可能であるワーキングメモリ135を備えることがある。コンピューティングデバイスはさらに、バッテリー150を備えることがある。コンピューティングデバイス100は、モバイルデバイスであっても、非モバイルデバイスであってもよく、ワイヤレス接続および/または有線接続を有してもよいことを理解されたい。
【００１５】
本明細書で説明されるように、コンピューティングデバイス100はまた、オペレーティングシステム140、デバイスドライバ、実行可能ライブラリ、および/または、1つまたは複数のアプリケーションプログラム145などの他のコードを含む、ワーキングメモリ135内に現在位置するものとして示されているソフトウェア要素を備えてよく、1つまたは複数のアプリケーションプログラム145は、実施形態によって提供される方法を備えてよく、または、実施形態によって提供される方法を実施し、かつ/もしくは実施形態によって提供されるシステムを構成するように設計されてよい。単に例として、以下で論じられる方法に関して説明される1つまたは複数の手順は、コンピューティングデバイス100(および/またはコンピューティングデバイス100内のプロセッサ110)によって実行可能なコードおよび/または命令として実装されてよく、ある態様では、次いで、そのようなコードおよび/または命令は、説明された方法に従って1つまたは複数の動作を実行するように汎用コンピュータ(または他のデバイス)を構成し、かつ/または適合させるために使用されることが可能である。
【００１６】
これらの命令および/またはコードのセットは、上で説明された記憶デバイス125などの非一時的コンピュータ可読記憶媒体に記憶されることがある。場合によっては、記憶媒体は、システム100などのコンピュータデバイス内に組み込まれることがある。他の実施形態では、記憶媒体は、コンピューティングデバイスとは別個であることがあり(たとえば、コンパクトディスクなどの取外し可能な媒体)、かつ/または、インストールパッケージにおいて提供されることがあり、それによって、記憶媒体は、記憶媒体に記憶された命令/コードを用いて汎用コンピュータをプログラムし、構成し、かつ/または適合させるために使用されることが可能である。これらの命令は、コンピュータ化されたコンピューティングデバイス100によって実行可能である実行可能コードの形をとることがあり、ならびに/または、(たとえば、様々な一般的に入手可能なコンパイラ、インストールプログラム、圧縮/解凍ユーティリティなどのいずれかを使用する)コンピューティングデバイス100上でのコンパイルおよび/またはインストール時に実行可能コードの形態をとる、ソースコードおよび/もしくはインストール可能コードの形をとることがある。
【００１７】
アプリケーションプログラム145は、センサデータまたはセンサデータから導出される情報に依存する、1つまたは複数のコンテキストベースのアプリケーションを含むことがある。
【００１８】
図2は、例示的なSoC200の概略図を示す。SoC200は、汎用プロセッサ210と、ランダムアクセスメモリ(RAM)215と、センサ融合エンジン220と、コンパニオンメモリ225と、周辺コントローラ230と、常時オンサブシステム(AOSS)235とを含むことがある。汎用プロセッサ210、センサ融合エンジン220、コンパニオンメモリ225、および周辺コントローラ230は、内部配線255を介して通信可能に接続されることがある。一実施形態では、コンパニオンメモリ225は、サイズが約数十キロバイトであってよい。別の実施形態では、コンパニオンメモリ225は、サイズが少なくとも約12キロバイトであってよい。RAM215は、汎用プロセッサ210との専用の接続を有してよく、または、内部配線255を介して他のコンポーネントに接続されてよい。一実施形態では、汎用プロセッサ210、RAM215、センサ融合エンジン220、コンパニオンメモリ225、および周辺コントローラ230は、SoC200の低電力アイランド245内に位置することがある。低電力アイランドは、低電力処理のために設計されたSoCの任意の区画である。このアイランドは、固有のメモリ、クロック、PLL、バス、専用の電圧レール、電力管理回路、メモリ、インターフェース、デジタルまたはアナログのブロック、カウンタ、マイクロプロセッサ、およびDSPを含むことがある。別の実施形態では、センサ融合エンジン220、周辺コントローラ230、およびコンパニオンメモリ225が、専用の低電力クロックを供給されることがあるので、データ収集、バッファリング、および/または計算は、システムクロックがオフにされた状態にあり、かつSoC200のための主デジタルレールおよびメモリレールが保持電圧レベルにある、低電力スリープモードにSoC200の他の部分があるときに、行われることがある。言い換えると、この実施形態では、センサ融合エンジン220、周辺コントローラ230、およびコンパニオンメモリ225は、AOSS235によって構成される(図示されない)固有の電圧レールを有してよく、または、保持電圧レベルにおいて動作することが可能であってよい。さらに別の実施形態では、周辺コントローラ230は、ARM Cortex-MプロセッサまたはMIPSプロセッサなどの、専用のプログラム可能低電力プロセッサを用いて実装されることがある。SoC200は、周辺インターフェース240を介して周辺コントローラ230を通じて1つまたは複数のセンサ250と通信していることがある。1つまたは複数のセンサ250の例には、近接センサ、環境光センサ(ALS)、加速度計、ジャイロスコープ、磁力計、気圧センサなどがあってよい。これらの1つまたは複数のセンサ250は、常時オンの状態で動作することがある。センサ250はまた、Bluetooth(登録商標)、Bluetooth(登録商標) LE、または802.11などのプロトコルを使用して、コネクティビティチップを介してワイヤレスに接続されることがある。周辺インターフェース240は、I2C、SPI、UART、またはSLIMbusなどの、適切なインターフェースのいずれかであってよい。AOSS235は、常時オンであり、複数の機能を実行することがある。たとえば、AOSS235は、1つまたは複数の正常な電圧を用いてSoC200のコンポーネントに電力を供給することがあり、データレディ割込み(DRI)信号を、そのような割込み信号が使用されるときに1つまたは複数のセンサ250から受信することがあり、周辺コントローラ230などのSoC200の1つまたは複数のコンポーネントに起動信号を��供することがある。いくつかの実施形態では、センサ融合エンジン220、コンパニオンメモリ225、および周辺コントローラ230は、AOSS235の一部であってよい。他の実施形態では、センサ融合エンジン220、コンパニオンメモリ225、および周辺コントローラ230は、SoCの他の領域の中にあってよい。SoC200は、本開示を不明瞭にしないように図2には示されていない、追加のコンポーネントを含むことがある。
【００１９】
図2に示される要素と図1に示される要素の間には対応関係が存在することがあり、その対応関係が本明細書において説明される。汎用プロセッサ210は、図1に示される1つまたは複数のプロセッサ110の1つであってよい。RAM215は、図1に示されるワーキングメモリ135の一部であってよい。内部配線255、周辺コントローラ230、周辺インターフェース240、およびAOSS235は、図1に示されるバス105の一部であってよい。そして、1つまたは複数のセンサ250は、1つまたは複数の入力デバイス115の一部であってよい。
【００２０】
SoC200は、汎用プロセッサ210と、センサデータ関連のアルゴリズムのための1つまたは複数のハードウェアマクロを備えるセンサ融合エンジン220と、コンパニオンメモリ225と、周辺コントローラ230とを備えることがあり、汎用プロセッサ210は、低電力スリープモードに入る前に、センサ融合エンジン220および周辺コントローラ230を構成することがある。その後、周辺コントローラ230は、センサ250からデータを読み取ることがあり、データをコンパニオンメモリ225に記憶することがあり、最後に、汎用プロセッサ210が低電力スリープモードから起動されることがある。
【００２１】
センサ融合エンジン220は、1つまたは複数のハードウェアマクロがその中に実装されていることがある。ハードウェアマクロは、専用のハードウェア回路を用いてセンサ関連のタスクを実行し、同じタスクを実行する汎用プロセッサおよび/またはDSPよりも少量のエネルギーを消費することがある。センサ関連のタスクのためのいくつかのアルゴリズムが、センサ融合エンジン220内のハードウェアマクロとして実装されることがある。例には、カルマンフィルタ、動き検出アルゴリズム、歩数計アルゴリズム、ナビゲーションアルゴリズム、ジェスチャー関連のアルゴリズム、センサ較正アルゴリズム、医療信号処理アルゴリズム、指紋および/またはタッチアルゴリズム、センサデータ融合アルゴリズムなどがある。このリストは例示的であり、本開示を限定しない。代替的に、センサ融合エンジン220は、超低電力プロセッサであってよい。
【００２２】
センサ融合エンジン220を利用して電力的に効率的にセンサ関連のタスクを実行するための様々な方法が、以下で説明される。たとえば、センサ融合エンジン220は、汎用プロセッサ210および他のコンポーネントがスリープモードへと電力的に落ち込んでいる間、ハードウェアマクロを利用してセンサデータを収集および処理するために、コンパニオンメモリ225および周辺コントローラ230とともにアクティブなままにされてよい。汎用プロセッサ210は、センサデータの処理が完了し、汎用プロセッサ210が他のタスクを実行することを要求されるときにだけ、起動される。代替的な実施形態では、センサ融合エンジン220は、計算的に負荷の大きいセンサ関連のアルゴリズムを実行するタスクを汎用プロセッサ210からオフロードするための、汎用プロセッサ210に対する数値演算コプロセッサとして動作する。センサ融合エンジン220が数値演算コプロセッサとして動作するために設けられるとき、より計算能力が低く、より電力効率が高い可能性のある汎用プロセッサ210が使用されることがある。
【００２３】
図3は、センサ融合エンジン220を用いて、電力的に効率的にセンサデータを収集して処理するための例示的な方法300を示すフローチャートである。ブロック310において、汎用プロセッサ210が、センサ融合エンジン220および周辺コントローラ230を構成する。具体的な構成は、センサデータおよび導き出される情報を要求するアプリケーションに依存する。センサ融合エンジン220は、ハードウェアマクロが埋め込まれた1つまたは複数のアルゴリズムを実行するように構成されることがあるが、周辺コントローラ230は、1つまたは複数のセンサ250の少なくとも1つからセンサデータを読み取るように構成される。ブロック320において、汎用プロセッサ210が、電力を節約するために低電力スリープモードに入る。いくつかの実施形態では、周辺コントローラ230などの他のコンポーネントも、特定のタスクを実行するために起動されるまで、スリープモードに入ってよい。
【００２４】
ブロック330において、周辺コントローラ230は、1つまたは複数のセンサ250からセンサデータを読み取り、読み取られたセンサデータをコンパニオンメモリ225に記憶する。1つまたは複数のセンサ250からセンサデータを読み取るための様々な方法が利用されてよい。たとえば、ポーリングモードでは、周辺コントローラ230は、1つまたは複数のセンサ250に定期的に問い合わせるようにブロック310において構成されてよい。いくつかの実施形態では、センサデータは割込みモードで移送される。すなわち、1つまたは複数のセンサ250の少なくとも1つが、読み取られる準備ができているデータを有するとき、センサがDRI信号をAOSS235に送信する。それに応答して、AOSS235は次いで、適切な電圧レベルを設定し、周辺コントローラ230を起動する。周辺コントローラ230は次いで、周辺インターフェース240を構成し、センサデータを読み取り、センサデータをコンパニオンメモリ225に記憶する。いくつかの他の実施形態では、周辺コントローラ230が、AOSS235の代わりに割込みを処理してよいので、電圧レベルは変化しなくてよい。
【００２５】
ブロック340において、センサ融合エンジン220は、ハードウェアマクロを用いて、コンパニオンメモリ225に記憶されているセンサデータを処理する。処理されたセンサデータ、および/またはセンサデータから導き出された情報はまた、センサ融合エンジン220によってコンパニオンメモリ225に記憶されてよい。いくつかの実施形態では、ブロック330およびブロック340は、時間的に重複することがあり、かつ必要なときに繰り返されることがある。最後に、ブロック350において、センサ融合エンジン220は、すべてのセンサデータの処理が完了して汎用プロセッサ210がさらなるタスクを要求されるときに、汎用プロセッサ210を起動する。
【００２６】
本明細書で説明される方法は、電力的により効率的な、センサデータの処理を可能にする。本明細書で説明されるようなセンサ融合エンジン220を備えるSoC200を特徴とするコンピューティングデバイス100は、様々なコンテキストベースのアプリケーションをサポートしながら、より良好なバッテリーの持続時間を有することがある。
【００２７】
これまでに説明された本開示の態様は、先に説明されたように、コンピューティングデバイス100のプロセッサ101による命令(たとえば、アプリケーション)の実行に関連して実装されてよいことを理解されたい。具体的には、限定はされないが、プロセッサを含むデバイスの回路は、本開示の実施形態による方法またはプロセス(たとえば、図3のプロセス)を実行するために、アプリケーション、プログラム、ルーチンの制御下で、または命令の実行によって動作することがある。たとえば、そのようなプログラムは、(たとえば、メモリおよび/または他の位置に記憶される)ファームウェアまたはソフトウェアにおいて実装されることがあり、デバイスのプロセッサおよび/または他の回路によって実装されることがある。さらに、プロセッサ、マイクロプロセッサ、回路、コントローラなどの用語は、論理、コマンド、命令、ソフトウェア、ファームウェア、機能などを実行することが可能な、任意のタイプの論理または回路を指すことを理解されたい。
【００２８】
本明細書の教示は、様々な装置(たとえば、デバイス)内に組み込まれることがある(たとえば、その中に実装され、またはそれによって実行されることがある)。たとえば、本明細書で教示された1つまたは複数の態様は、一般的なコンピューティングデバイス、デスクトップコンピュータ、モバイルコンピュータ、モバイルデバイス、電話(たとえば、携帯電話)、携帯情報端末、タブレット、ラップトップコンピュータ、タブレット、エンターテインメントデバイス(たとえば、音楽デバイスもしくはビデオデバイス)、ヘッドセット(たとえば、ヘッドフォン、イヤピースなど)、医療デバイス(たとえば、生体センサ、心拍数モニタ、歩数計、EKGデバイスなど)、ユーザI/Oデバイス、コンピュータ、サーバ、point-of-salesデバイス、エンターテインメントデバイス、セットトップボックス、または任意の他の適切なデバイスに組み込まれることがある。
【００２９】
いくつかの態様では、ワイヤレスデバイスは、通信システムのためのアクセスデバイス(たとえばWi-Fiアクセスポイント)を備えることがある。そのようなアクセスデバイスは、たとえば、有線またはワイヤレス通信リンクを介した、トランシーバを通じた別のネットワーク(たとえばインターネットまたはセルラーネットワークなどの広域ネットワーク)への接続を提供することがある。したがって、アクセスデバイスは、別のデバイス(たとえば、Wi-Fi局)が他のネットワークまたは何らかの他の機能にアクセスすることを可能にすることがある。加えて、デバイスの1つまたは両方はポータブルであってもよく、または場合によっては、相対的に非ポータブルであってもよいことを理解されたい。
【００３０】
デバイスがモバイルデバイスまたはワイヤレスデバイスであるとき、それらのデバイスは、任意の適切なワイヤレス通信技術に基づく、またはそうでなければその技術をサポートするワイヤレスネットワークを通じて、1つまたは複数のワイヤレス通信リンクを介して通信することがあることを理解されたい。たとえば、いくつかの態様では、ワイヤレスデバイスおよび他のデバイスは、ワイヤレスネットワークを含むネットワークに関連することがある。いくつかの態様では、ネットワークは、ボディエリアネットワークまたはパーソナルエリアネットワーク(たとえば超広帯域ネットワーク)を備えることがある。いくつかの態様では、ネットワークは、ローカルエリアネットワークまたはワイドエリアネットワークを備えることがある。ワイヤレスデバイスは、様々なワイヤレス通信技術、プロトコル、またはたとえば3G、LTE、LTE Advanced、4G、CDMA、TDMA、OFDM、OFDMA、WiMAX、およびWi-Fiなどの規格のうちの1つまたは複数をサポートし、またはそうでなければ使用することがある。同様に、ワイヤレスデバイスは、様々な対応する変調方式または多重化方式の1つまたは複数をサポートし、またはそうでなければ使用することがある。したがって、ワイヤレスデバイスは、上記または他のワイヤレス通信技術を使用して、1つまたは複数のワイヤレス通信リンクを確立し、その通信リンクを介して通信するための適切なコンポーネント(たとえばエアインターフェース)を含むことがある。たとえば、デバイスは、ワイヤレス媒体を介して通信するのを容易にする様々なコンポーネント(たとえば、信号発生器およびシグナルプロセッサ)を含んでよい、関連するトランスミッタおよびレシーバのコンポーネント(たとえば、トランスミッタおよびレシーバ)を伴うワイヤレストランシーバを備えることがある。したがって、よく知られているように、モバイルワイヤレスデバイスは、他のモバイルデバイス、携帯電話、他の有線およびワイヤレスコンピュータ、インターネットウェブサイトなどとワイヤレスに通信することがある。
【００３１】
様々な異なる技術および技法のいずれかを使用して情報および信号が表されることがあることを、当業者は理解されよう。たとえば、上記の説明全体を通して言及されることがあるデータ、命令、指令、情報、信号、ビット、シンボルおよびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表されることがある。
【００３２】
本明細書で開示される実施形態に関して説明される様々な例示的な論理ブロック、モジュール、エンジン、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装されることがあることを当業者はさらに理解されよう。ハードウェアとソフトウェアとの、この互換性を明確に示すために、様々な例示的なコンポーネント、ブロック、モジュール、エンジン、回路、およびステップが、上では概してそれらの機能に関して説明された。そのような機能がハードウェアとして実装されるか、またはソフトウェアとして実装されるかは、システム全体に課される具体的な適用例および設計制約に依存する。当業者は、説明された機能を具体的な適用例ごとに様々な方法で実装してよいが、そのような実装形態の決定は、本開示の範囲からの逸脱を引き起こすものと解釈されるべきではない。
【００３３】
本明細書において開示される実施形態に関連して説明される様々な例示的な論理ブロック、モジュールおよび回路は、汎用プロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途用集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別のゲートもしくはトランジスタロジック、個別のハードウェアコンポーネント、または本明細書において説明された機能を実行するように設計されたこれらの任意の組合せを用いて、実装または実行されることがある。汎用プロセッサはマイクロプロセッサであってもよいが、代替として、プロセッサは、任意の従来型プロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであってもよい。プロセッサは、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成としても実装されることがある。
【００３４】
本明細書で開示される実施形態に関連して説明される方法またはアルゴリズムのステップは、ハードウェアとして直接的に、プロセッサによって実行されるソフトウェアモジュールとして、または2つの組合せとして具現化されることがある。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野において知られている任意の他の形式の記憶媒体内に存在してよい。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み出し、かつ記憶媒体に情報を書き込むことができるようにプロセッサに結合される。代替として、記憶媒体は、プロセッサと一体であってよい。プロセッサおよび記憶媒体はASIC内に存在してよい。ASICは、ユーザ端末内に存在してよい。代替として、プロセッサおよび記憶媒体は、ユーザ端末内に個別のコンポーネントとして存在してよい。
【００３５】
1つまたは複数の例示的な実施形態では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せにおいて実装されることがある。コンピュータプログラム製品としてソフトウェアに実装される場合、機能またはモジュールは、非一時的コンピュータ可読媒体上の1つまたは複数の命令またはコードとして記憶され、または伝送されてよい。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む、コンピュータ記憶媒体と通信媒体の両方を含むことが可能である。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であってよい。限定ではなく例として、そのような非一時的コンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形態の所望のプログラムコードを搬送もしくは記憶するために使用されコンピュータによってアクセスされることがある任意の他の媒体を備えることが可能である。また、あらゆる接続が、適切にコンピュータ可読媒体と呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)、レーザーディスク(登録商標)、光ディスク、デジタル多用途ディスク(DVD)、フロッピーディスク、およびブルーレイディスクを含み、ディスク(disk)は通常、データを磁気的に再生するが、ディスク(disc)はレーザーを用いてデータを光学的に再生する。上記の組合せも、非一時的コンピュータ可読媒体の範囲内に含まれるべきである。
【００３６】
開示された実施形態のこれまでの説明は、当業者が特許請求される主題を構成または使用できるようにするために提供される。これらの実施形態への様々な修正が当業者には容易に明らかであり、本明細書で定義された一般的な原理は、本開示の趣旨および範囲を逸脱することなく、他の実施形態に適用されてよい。したがって、特許請求される主題は、本明細書で示される実施形態に限定されるものではなく、本明細書で開示される原理および新規の特徴と一致する最も広い範囲が与えられるべきである。
【符号の説明】
【００３７】
100  コンピューティングデバイス
105  バス
110  プロセッサ
115  入力デバイス
120  出力デバイス
125  記憶デバイス
130  通信サブシステム
135  ワーキングメモリ
140  オペレーティングシステム
145  アプリケーションプログラム
150  バッテリー
200  SoC
210  汎用プロセッサ
215  RAM
220  センサ融合エンジン
225  コンパニオンメモリ
230  周辺コントローラ
235  常時オンサブシステム
240  周辺インターフェース
245  低電力アイランド
250  センサ
255  内部配線
300  方法
【図１】
2017529626.tif 000003
【図２】
2017529626.tif 000004
【図３】
2017529626.tif 000005
【手続補正書】
【提出日】平成29年3月28日(2017.3.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
センサデータを電力的に効率的に処理するための方法であって、
汎用プロセッサによって、センサ融合エンジンおよび周辺コントローラを構成するステップと、
前記汎用プロセッサを低電力スリープモードにするステップと、
前記周辺コントローラを用いて、センサからデータを読み取り、かつ前記データをコンパニオンメモリに記憶するステップと、
前記センサ融合エンジンを用いて前記コンパニオンメモリ中の前記データを処理するステップであって、前記センサ融合エンジンがセンサデータ関連のアルゴリズムのための1つまたは複数のハードウェアマクロを備える、ステップと、
前記低電力スリープモードから前記汎用プロセッサを起動するステップであって、前記汎用プロセッサを前記低電力スリープモードにするステップがシステムクロックをオフにするステップを備え、前記センサ融合エンジン、前記周辺コントローラ、および前記コンパニオンメモリが、前記システムクロックとは別の低電力クロックを供給される、ステップと
を備える、方法。
【請求項２】
前記センサデータ関連のアルゴリズムがセンサ融合アルゴリズムを備える、請求項1に記載の方法。
【請求項３】
前記センサ融合エンジンを構成するステップが、前記1つまたは複数のハードウェアマクロの1つを用いてセンサデータ関連のアルゴリズムを実行するように、前記センサ融合エンジンを構成するステップを備える、請求項1に記載の方法。
【請求項４】
前記データが、ポーリングモードまたは割込みモードにおいて前記センサから読み取られる、請求項1に記載の方法。
【請求項５】
前記コンパニオンメモリのサイズが約数十キロバイトである、請求項1に記載の方法。
【請求項６】
前記周辺コントローラを用いて前記センサから前記データを読み取るステップが、常時オンサブシステム(AOSS)によって協調される、請求項1に記載の方法。
【請求項７】
前記汎用プロセッサ、前記センサ融合エンジン、前記コンパニオンメモリ、および前記周辺コントローラが、システムオンチップ(SoC)の低電力アイランド内に位置する、請求項1に記載の方法。
【請求項８】
前記センサ融合エンジンが常時オンサブシステム(AOSS)の一部である、請求項1に記載の方法。
【請求項９】
システムオンチップ(SoC)であって、
汎用プロセッサと、
センサデータ関連のアルゴリズムのための1つまたは複数のハードウェアマクロを備えるセンサ融合エンジンと、
コンパニオンメモリと、
周辺コントローラと
を備え、
前記汎用プロセッサが低電力スリープモードにあるときに、前記SoCのシステムクロックがオフにされ、前記センサ融合エンジン、前記周辺コントローラ、および前記コンパニオンメモリが、前記システムクロックとは別の低電力クロックを供給される、システムオンチップ(SoC)。
【請求項１０】
前記汎用プロセッサが、前記センサ融合エンジンおよび前記周辺コントローラの構成を提供するように構成され、
前記汎用プロセッサが、低電力スリープモードに入るように構成され、
前記周辺コントローラが、センサからデータを読み取り、かつ前記データを前記コンパニオンメモリに記憶するように構成され、
前記汎用プロセッサが、前記低電力スリープモードから起動するように構成される、請求項9に記載のシステムオンチップ(SoC)。
【請求項１１】
前記センサ融合エンジンが、前記汎用プロセッサに対する数値演算コプロセッサとして動作するように構成される、請求項9に記載のシステムオンチップ(SoC)。
【請求項１２】
前記センサデータ関連のアルゴリズムがセンサ融合アルゴリズムを備える、請求項9に記載のシステムオンチップ(SoC)。
【請求項１３】
前記汎用プロセッサが、前記センサ融合エンジンに、前記1つまたは複数のハードウェアマクロの1つを用いてセンサデータ関連のアルゴリズムを実行させることによって、前記センサ融合エンジンの構成を提供するように構成される、請求項10に記載のシステムオンチップ(SoC)。
【請求項１４】
前記データが、ポーリングモードまたは割込みモードにおいて前記センサから読み取られる、請求項10に記載のシステムオンチップ(SoC)。
【請求項１５】
前記コンパニオンメモリのサイズが約数十キロバイトである、請求項9に記載のシステムオンチップ(SoC)。
【請求項１６】
前記周辺コントローラを用いて前記センサから前記データを読み取ることが、常時オンサブシステム(AOSS)によって協調される、請求項10に記載のシステムオンチップ(SoC)。
【請求項１７】
前記汎用プロセッサ、前記センサ融合エンジン、前記コンパニオンメモリ、および前記周辺コントローラが、前記システムオンチップ(SoC)の低電力アイランド内に位置する、請求項9に記載のシステムオンチップ(SoC)。
【請求項１８】
前記センサ融合エンジンが常時オンサブシステム(AOSS)の一部である、請求項9に記載のシステムオンチップ(SoC)。
【請求項１９】
コードを含む非一時的コンピュータ可読記録媒体であって、前記コードが、プロセッサによって実行されると、前記プロセッサに、
汎用プロセッサを用いて、センサ融合エンジンおよび周辺コントローラを構成することと、
前記汎用プロセッサを低電力スリープモードにすることと、
前記周辺コントローラを用いて、センサからデータを読み取ることと、前記データをコンパニオンメモリへ記憶することと、
前記センサ融合エンジンを用いて前記コンパニオンメモリ中の前記データを処理することであって、前記センサ融合エンジンがセンサデータ関連のアルゴリズムのための1つまたは複数のハードウェアマクロを備える、処理することと、
前記低電力スリープモードから前記汎用プロセッサを起動することであって、前記汎用プロセッサを前記低電力スリープモードにすることがシステムクロックをオフにすることを備え、前記センサ融合エンジン、前記周辺コントローラ、および前記コンパニオンメモリが、前記システムクロックとは別の低電力クロックを供給される、起動することと
を行わせる、非一時的コンピュータ可読記録媒体。
【請求項２０】
前記センサ融合エンジンを構成するためのコードが、前記1つまたは複数のハードウェアマクロの1つを用いてセンサデータ関連のアルゴリズムを実行するように、前記センサ融合エンジンを構成するためのコードを備える、請求項19に記載の非一時的コンピュータ可読記録媒体。
【請求項２１】
前記データが、ポーリングモードまたは割込みモードにおいて前記センサから読み取られる、請求項19に記載の非一時的コンピュータ可読記録媒体。
【請求項２２】
前記周辺コントローラを用いて前記センサから前記データを読み取ることが、常時オンサブシステム(AOSS)によって協調される、請求項19に記載の非一時的コンピュータ可読記録媒体。
【請求項２３】
センサデータを電力的に効率的に処理するための装置であって、
データを処理するための手段と、
センサデータ関連のアルゴリズムを実行するためのハードウェアマクロ手段を含むセンサデータを融合するための手段と、
データを記憶するための手段と、
周辺のコンポーネントを制御するための手段と
を備え、
前記データを処理するための手段が、前記センサデータを融合するための手段および周辺のコンポーネントを制御するための手段の構成を提供するように構成され、
前記データを処理するための手段が、低電力スリープモードに入るように構成され、
前記周辺のコンポーネントを制御するための前記手段が、センサからデータを読み取り、前記データを記憶するための手段に前記データを記憶するように構成され、
前記データを処理するための手段が、前記低電力スリープモードから起動するように構成され、
前記データを処理するための手段を前記低電力スリープモードに入るように構成することがシステムクロックをオフにすることを備え、前記センサデータを融合するための手段、前記周辺のコンポーネントを制御するための手段、および前記データを記憶するための手段が、前記システムクロックとは別の低電力クロックを供給される、装置。
【請求項２４】
前記センサデータ関連のアルゴリズムがセンサ融合アルゴリズムを備える、請求項23に記載の装置。
【請求項２５】
前記データを処理するための手段が、前記センサを融合するための手段に、センサデータ関連のアルゴリズムを実行させることによって、前記センサデータを融合するための手段の構成を提供するように構成される、請求項23に記載の装置。
【請求項２６】
前記データを処理するための手段、前記センサデータを融合するための手段、前記データを記憶するための手段、および前記周辺のコンポーネントを制御するための手段が、システムオンチップ(SoC)の低電力アイランド内に位置する、請求項23に記載の装置。
【請求項２７】
前記周辺のコンポーネントを制御するための手段を用いて前記センサから前記データを読み取ることが、常時オンサブシステム(AOSS)によって協調される、請求項23に記載の装置。
【請求項２８】
前記センサデータを融合するための手段が常時オンサブシステム(AOSS)の一部である、請求項23に記載の装置。
【国際調査報告】
2017529626.tif 000006
2017529626.tif 000007
2017529626.tif 000008
2017529626.tif 000009