【文献】
中里 直人他、演算精度に応じた高性能計算を実現するコンパイラの提案と実装、先進的計算基盤システムシンポジウム SACSIS2008 論文集、日本、2008.06.04発行、Vol.2008 No.5、第149−156頁
【文献】
CPUの高速化技術を使おう PART2 各SIMD命令の特徴、C MAGAZINE、日本、2002.09.01発行、第14巻 第9号、第46−54頁
【発明を実施するための形態】
【0023】
以下、本発明の好適な実施の形態について、添付の図面を参照しつつ、詳細に説明する。ただし、以下の説明において特に断らない限り、方向や向きに関する記述は、当該説明の便宜上、図面に対応するものであり、例えば実施品、製品または権利範囲等を限定するものではない。
【0024】
<1. 実施の形態>
図1は、状態推定システム1を示す図である。状態推定システム1は、1以上のセンサ2と、MPU(Micro-Processing Unit)3と、CPU4とを備えている。
【0025】
なお、以下の説明では、状態推定システム1は、ユーザによって携帯される携帯端末装置(例えば、スマートフォンや携帯電話、PDAなど)に組み込まれるものとして説明する。
【0026】
センサ2は、周囲の環境に関する情報や、動きに関する情報等を検出して、検出情報10を生成する検出装置である。センサ2としては、温度センサや湿度センサ、照度センサ、気圧センサ、接触センサ、加速度センサ、ジャイロセンサ、あるいは、磁気センサ等が想定されるがこれらに限定されるものではない。また、状態推定システム1は、ここに列挙したセンサ類をすべて備えていなければならないものでもない。
【0027】
なお、以下の説明では、当該携帯端末装置を携帯するユーザを対象物とし、状態推定システム1は、当該ユーザの状態(行動)を推定して出力情報12を生成するものとする。したがって、本実施の形態におけるセンサ2は、ユーザの行動を推定するために必要な物理量を検出するために、加速度センサ、ジャイロセンサおよび磁気センサを含むものとして説明する。推定されるユーザの行動としては、歩行状態、静止状態、通話状態、閲覧状態あるいは乗車状態などが想定される。
【0028】
各センサ2は、
図1に示すように、いずれもMPU3と接続されている。そして、各センサ2によって取得された検出情報10は、MPU3に向けて出力される。
【0029】
MPU3は、DSP(Digital Signal Processor)30、RAM31、タイマ32およびインターフェース部33を備えている。
【0030】
DSP30は、RAM31に格納された命令を読み出して、当該命令に従って動作する演算回路である。本実施の形態において、DSP30において実行される命令は、3並列のVLIW(Very Long Instruction Word)に対応するように構成された64ビットのデータとして表現されている。すなわち、DSP30は、1サイクルに3つの実命令を実行することが可能である(詳細後述。)。なお、命令は、図示しないデコーダにより解析されてRAM31に書き込まれているものとする。
【0031】
DSP30は、タイマ32から入力される割り込み信号(以下、「検出タイミング信号」と称する。)に応じて、各センサ2の値を読み込む。すなわち、DSP30は、センサ2によって取得された検出情報10を、インターフェース部33により取得してRAM31に格納する機能を有している。
【0032】
また、RAM31に格納された検出情報10に基づいて対象物の状態を推定し、状態情報11を生成するが、DSP30の詳細については後述する。
【0033】
RAM31は、DSP30のワーキングエリアとして使用される記憶装置であり、様々な情報を記憶するために使用される。例えば、RAM31は、DSP30により求められた状態情報11を記憶する。また、RAM31は、各センサ2から取得された検出情報10も記憶する。
【0034】
なお、
図1では、簡略化してRAM31を1つの構成として図示しているが、通常、RAM31は複数の記憶装置から構成されている。また、
図1では、RAM31から読み出される情報は必ずDSP30を介するように図示しているが、RAM31はCPU4から参照可能な記憶領域(記憶装置)を備えており、CPU4はDSP30を介することなくRAM31から所望の情報を読み出すことができるように構成されている。
【0035】
タイマ32は、周期的(本実施の形態では100[Hz])に検出タイミング信号を生成して、インターフェース部33を介してDSP30に出力する。すでに説明したように、検出タイミング信号を受信すると、DSP30は、各センサの値を読み取ってRAM31に検出情報10として格納する。
【0036】
インターフェース部33は、各センサ2と接続されている。
図1に示すように、センサ2は並列状態または直列状態でMPU3に接続されている。また、インターフェース部33は、CPU4と接続されている。このように、インターフェース部33は、MPU3と、各センサ2やCPU4とを接続する機能を有している。これにより、インターフェース部33は、センサ2により取得された検出情報10を取得するとともに、DSP30により生成された状態情報11をCPU4に向けて出力する機能を有する。
【0037】
このように、MPU3は、センサ2により取得された検出情報10に基づいて状態情報11を生成して、CPU4に向けて出力する機能を有している。すなわち、MPU3は、本発明における状態推定プロセッサに相当するが、詳細は後述する。
【0038】
CPU4は、携帯端末装置におけるメインプロセッサとして機能する。詳細は省略するが、CPU4には、記憶装置、キーやボタンなどの操作部、液晶ディスプレイなどの表示部、音声を出力するスピーカ、音声を電気信号に変換するマイク、外部装置との間で通信を行う通信部などが、適宜接続されている。
【0039】
CPU4は、図示しない記憶装置に格納されているプログラムを読み取りつつ実行して、各種データの演算や制御信号の生成等を行う。これにより、CPU4は、MPU3や携帯端末装置が備える他の構成を制御するとともに、各種データを演算し作成する機能を有している。
【0040】
CPU4は、所定のアプリケーション(例えば、経路案内アプリケーションなど)が起動されたことに応じて、MPU3に対してDSP起動信号を出力する。逆に、所定のアプリケーションを終了するタイミングに応じて、MPU3に対してDSP抑制信号を出力する。また、CPU4は、MPU3から入力される状態情報11に基づいて出力情報12を生成する。さらに、CPU4は、出力情報12を図示しない表示部などに出力することにより、ユーザに出力情報12を提供する。
【0041】
また、CPU4は、CPU通常動作モードと、CPU通常動作モードよりも消費電力の小さいCPU抑制動作モードとを有している。CPU抑制動作モードとは、いわゆるスリープモードなどと呼ばれる動作モードであって、CPU4内の制限された一部の回路のみが稼働している動作モードである。
【0042】
CPU4では、MPU3から出力されるCPU起動信号に応じて、動作モードがCPU抑制動作モードからCPU通常動作モードに切り替わる。また、CPU4では、MPU3から出力されるCPU抑制信号に応じて、動作モードがCPU通常動作モードからCPU抑制動作モードに切り替わる。ただし、MPU3からCPU抑制信号を受信した場合であっても、他のアプリケーション等を実行している場合には、CPU4は抑制動作モードに移行することはない。
【0043】
図2は、DSP30の回路構成を示す概略図である。
図2に示すように、DSP30は、ロード・ストアユニット300、2つのレジスタ301,302、2つの演算論理ユニット303,304、4つの単精度浮動小数点演算器305、および、スイッチング部306を備えている。
【0044】
ロード・ストアユニット300は、RAM31からデータを読み取ってレジスタ301,302に格納したり、レジスタ301,302に格納されているデータをRAM31に格納したりする機能を有する。また、ロード・ストアユニット300は、RAM31から読み出した命令を演算論理ユニット303,304にセットする。さらに、ロード・ストアユニット300は、レジスタ301に格納されている値がポインタ値である場合には、当該ポインタ値に従ってRAM31に格納されているデータを特定し、読み出す機能も有している。
【0045】
レジスタ301,302は、いずれもデータを一時的に記憶する記憶装置である。レジスタ301,302には、RAM31から読み出されたデータや、演算論理ユニット303,304によって求められた値などが格納される。
【0046】
演算論理ユニット303は、ロード・ストアユニット300から入力された命令に従って、レジスタ301に格納されているデータに所定の演算を実行する整数演算器である。演算論理ユニット303により演算された値はレジスタ301に格納される。演算論理ユニット303は、例えば、所望のデータをRAM31から読み出すためのポインタ値を演算するためなどに使用される。
【0047】
演算論理ユニット304は、4つの単精度浮動小数点演算器305を備えたSIMD型演算器として構成されている。演算論理ユニット304は、4つの単精度浮動小数点演算器305のそれぞれにセットされたデータ(すなわち、複数のデータ)に対して、並列的に(1サイクルの間に)、1つの命令を実行することができる。演算論理ユニット304により演算された値は、レジスタ302に格納され、ロード・ストアユニット300によってRAM31に格納される。
【0048】
スイッチング部306は、第1の動作モードと、前記第1の動作モードよりも消費電力の小さい第2の動作モードとの間でDSP30の動作モードを切り替える機能を有する。言い換えれば、DSP30は、動作モードとして、通常動作モードと、通常動作モードよりも消費電力の小さい抑制動作モードとを有している。
【0049】
スイッチング部306は、インターフェース部33から入力されるDSP抑制信号に応じて、DSP30の動作モードを通常動作モードから抑制動作モードに切り替える。DSP抑制信号は、一部または全部のセンサ2やCPU4からの割り込み信号としてインターフェース部33を介して入力される。また、DSP30が自身を抑制動作モードに切り替える場合もある。
【0050】
また、スイッチング部306は、インターフェース部33から入力されるDSP起動信号に応じて、DSP30の動作モードを抑制動作モードから通常動作モードに切り替える。DSP起動信号は、一部または全部のセンサ2やCPU4からの割り込み信号として、インターフェース部33を介して入力される。また、タイマ32からの検出タイミング信号もDSP起動信号として機能する場合がある。
【0051】
なお、
図2では、スイッチング部306の制御対象がロード・ストアユニット300のみであるかのように図示しているが、これは図示の都合上、簡略的に示すものであって、スイッチング部306は、DSP30が備える各構成のうちの必要な構成(回路)について切替制御を行う。
【0052】
以上が状態推定システム1の構成および機能の説明である。次に、DSP30による演算の仕組み(演算アーキテクチャ)について説明する。なお、DSP30は、抑制動作モードではなく、通常動作モードにおいて、検出情報10に対する演算処理(状態情報11を求める処理)を実行する。
【0053】
図3は、DSP30が処理するデータについて示す概念図である。
【0054】
以下では、状態推定システム1が組み込まれた携帯端末装置の動きを観測して、当該携帯端末装置を所持するユーザの行動を推定する場合を例に説明する。
【0055】
図3に示す「A」、「B」、「C」、「D」は、ひとまとまりのデータを示す。例えば、「A」が3軸の加速度センサの出力であれば、「Ax」は加速度のX軸成分の値であり、「Ay」は加速度のY軸成分の値であり、「Az」は加速度のZ軸成分の値である。また、「B」が3軸のジャイロセンサの出力であれば、「Bx」は角速度のX軸成分の値であり、「By」は角速度のY軸成分の値であり、「Bz」は角速度のZ軸成分の値である。また、「C」が3軸の磁気センサの出力であれば、「Cx」は磁気ベクトルのX軸成分の値であり、「Cy」は磁気ベクトルのY軸成分の値であり、「Cz」は磁気ベクトルのZ軸成分の値である。さらに、「D」が3軸のジャイロセンサのバイアスの補正値であれば、「Dx」は角速度のX軸成分の補正値であり、「Dy」は角速度のY軸成分の補正値であり、「Dz」は角速度のZ軸成分の補正値である。
【0056】
なお、ジャイロセンサのバイアスの補正値は、直接、センサ2から得られる検出情報10ではない。ジャイロセンサのバイアスの補正値を求める手法は、従来から提案されている様々な技術を適用することができるため、ここでは具体的な説明を省略する。
【0057】
このように、携帯端末装置の動きを観測して状態を推定する場合には、上記のように、12軸の情報を処理することになるのが一般的である。ただし、例えば、磁気センサの値を採用せずに状態を推定する場合などには9軸となる。すなわち、状態推定のためには、必ずしも12軸の情報を処理することが必須条件となるわけではなく、アプリケーションの要求に応じて適宜変更されるものである。
【0058】
DSP30は、12軸の情報を、α0,α1,α2,α3と、β0,β1,β2,β3と、γ0,γ1,γ2,γ3とに分けて処理する。
【0059】
図4は、12軸の情報を逐次処理する場合と、DSP30が12軸の情報を処理する場合とを比較した図である。なお、
図4では、詳細な演算についての逐一的な説明は省略し、DSP30における特徴が理解しやすいように、あくまでも概念図として処理を示している。
【0060】
逐次処理の場合、
図4の左表に示すように、α0(Ax)のデータに対して、第1サイクルでRAM31からロードし、第2サイクルで次のデータのためにポインタを演算し、第3サイクルで乗算してから、第4サイクルでRAM31に結果をストア(格納)するという流れになる。したがって、12軸の情報すべてについて処理を完了するためには、48サイクルが必要となる。
【0061】
これに対して、DSP30では命令セットが3並列のVLIWに対応している。したがって、DSP30は、1サイクルに3つの実命令を実行することができる。また、すでに説明したように、演算論理ユニット304はSIMD型演算器であり、実行ユニットとして4つの単精度浮動小数点演算器305を備えている。したがって、DSP30は、演算論理ユニット304において、1サイクルで4つのデータに対して1命令(例えば乗算命令)を実行可能である。
【0062】
したがって、
図4の右表に示すように、第1のサイクルでα(α0,α1,α2,α3)を読み込み、第2のサイクルでβ(β0,β1,β2,β3)を読み込みつつ、演算論理ユニット303によってポインタを演算する。また、第3のサイクルでは、γ(γ0,γ1,γ2,γ3)を読み込みつつ、演算論理ユニット303によってポインタを演算し、かつ、演算論理ユニット304によってα(α0,α1,α2,α3)の乗算を実行する。さらに、第4のサイクルでは、α(α0,α1,α2,α3)をRAM31に書き込みつつ、演算論理ユニット303によってポインタを演算し、かつ、演算論理ユニット304によってβ(β0,β1,β2,β3)の乗算を実行する。
【0063】
このように、1回の観測により得られる検出情報10に対して、DSP30では6サイクルで処理を完了することができる。したがって、従来のように、メインCPUで逐次処理する場合に比べて、MPU3(DSP30)の動作周波数を下げることができる。
【0064】
これにより、DSP30は、従来のマイコンに比べて、消費電力を抑制することができる。なお、一般的なマイコンでは、このような処理に80[MHz]程度の動作周波数が必要であるが、本実施の形態におけるDSP30は、7[MHz]程度で処理可能である。
【0065】
また、一般に、浮動小数点演算器は、固定小数点演算器に比べて演算器自体の回路規模が小さいという特徴がある。しかし、汎用のマイコンでは、浮動小数点演算器ではなく、固定小数点演算器が用いられることが多い。これは、浮動小数点演算器による演算では、小数点の位置を決定しなければならず、演算深度が深くなり、このための付加回路が別に必要となるからである。すなわち、結果として、固定小数点演算器を採用した場合の方が、全体としての回路規模が小さくなるという事情があった。
【0066】
しかし、センサ2からの検出情報10を処理して状態を推定するという用途においては、このような付加回路は最小限で済む。したがって、DSP30は、単精度浮動小数点演算器305を採用することにより、固定小数点演算器を採用する場合に比べて、回路規模を小さくすることができる。
【0067】
特に、センサフュージョンに用いられるカルマンフィルタは、パラメータのダイナミックレンジが広いという特性があり、固定小数点演算器を用いて本実施の形態における単精度浮動小数点演算器305(16ビット)と同程度の演算精度を維持するためには、64ビット演算器を準備する必要があり、回路規模が大きくなる。すなわち、DSP30がカルマンフィルタを用いる演算を実行することにより、単精度浮動小数点演算器305を採用する効果がより顕著となる。
【0068】
次に、状態推定システム1におけるセンサ2、MPU3およびCPU4の制御方法について説明する。
【0069】
図5は、MPU3の動作を示す流れ図である。状態推定システム1(携帯端末装置)に電源が投入されると、MPU3は所定の初期設定を実行した後、待機状態となる。なお、待機状態は、通常動作モードまたは抑制動作モードのいずれであってもよい。
【0070】
待機状態において、MPU3は、DSP抑制信号を受信したか(ステップS1)、検出タイミングが到来したか(ステップS5)、DSP起動信号を受信したか(ステップS11)、および、演算タイミングが到来したか(ステップS15)を監視している。
【0071】
待機状態において、DSP抑制信号を受信すると、MPU3は、ステップS1においてYesと判定し、当該DSP抑制信号の送信元を確認する(ステップS2)。
【0072】
当該DSP抑制信号の送信元がCPU4である場合(ステップS2においてYes。)、MPU3は、センサ2を停止する(ステップS3)。そして、スイッチング部306がDSP30の動作モードを
抑制動作モードに切り替える(ステップS4)。
【0073】
このように、ステップS4が実行されると、以後、DSP30は、抑制動作モードとなり、通常動作モードのときに比べて消費電力が抑制される。なお、ステップS4を実行すると、MPU3は待機状態に戻る。
【0074】
DSP抑制信号がCPU4により送信されているならば、状態情報11を必要とするアプリケーションが終了されており、CPU4が、以後、状態情報11を必要としていないとみなせる。このような場合、状態推定システム1は、センサ2によるセンシングを停止させることにより、さらに消費電力を抑制する。
【0075】
なお、ステップS3が実行されたときには、以後、センサ2の出力を読み込む必要はないので、MPU3(スイッチング部306)はタイマ32を停止させてもよい。また、ステップS3において、状態推定システム1(MPU3)は、すべてのセンサ2を停止させるのではなく、状況に応じて取捨選択するように構成してもよい。
【0076】
一方、DSP抑制信号の送信元がCPU4ではない場合(ステップS2においてNo。)、MPU3は、ステップS3をスキップして、ステップS4を実行する。これにより、以後、DSP30は、抑制動作モードとなり、待機状態に戻る。
【0077】
DSP抑制信号がCPU4により送信されていないならば、CPU4は、状態情報11を必要としているとみなせる。したがって、この場合は、センサ2を停止させることなく、センサ2によるセンシングは継続させることが好ましい。
【0078】
なお、DSP抑制信号の送信元がCPU4ではない場合とは、センサ2が送信元となる場合や、DSP30自体が自らを抑制動作モードに切り替えようとする場合などが想定される。
【0079】
待機状態において、検出タイミングが到来すると(ステップS5においてYes。)、タイマ32は検出タイミング信号を割り込み信号としてDSP30に向けて出力する(ステップS6)。これに応じて、MPU3は、各センサ2の出力を読み込む(ステップS7)。これによって、検出情報10がRAM31に格納される。
【0080】
次に、MPU3は、ステップS7において読み込んだセンサ2の出力値と、前回ステップS7が実行されたときに読み込まれたセンサ2の出力値とを比較し、その差分が閾値以下であるか否かを判定する(ステップS8)。
【0081】
当該差分が閾値以下である場合とは、状態における変化が乏しいことを意味している。そこで、ステップS8においてYesの場合、MPU3はこのような状態が所定の期間継続しているか否かをさらに判定する(ステップS9)。
【0082】
ステップS9においてYesの場合(ステップS7において読み込んだセンサ2の出力値と、前回ステップS7が実行されたときに読み込まれたセンサ2の出力値との差分が閾値以下の状態が所定の期間継続している場合)、MPU3は、状態に変化がないことをCPU4に通知する(ステップS10)。そして、ステップS10が実行されると、スイッチング部306は、DSP30を抑制動作モードに移行させる(ステップS4)。
【0083】
このように、状態推定システム1は、センサ2によって取得される検出情報10において、変化の乏しい状態が所定の期間継続している場合には、DSP30を抑制動作モードに切り替えることにより、消費電力を抑制することができる。なお、検出情報10において変化が乏しいか否かは、各センサ2が判断して、検出情報10とともに、MPU3に通知するように構成してもよい。
【0084】
一方、ステップS8またはステップS9のうちのいずれかのステップにおいてNoである場合、MPU3は、ステップS10を実行することなく、待機状態に戻る。
【0085】
待機状態において、DSP起動信号が受信されると(ステップS11においてYes。)、スイッチング部306は、DSP30を通常動作モードに切り替える(ステップS12)。これにより、DSP30は通常動作モードに復帰する。
【0086】
ステップS12が実行されると、MPU3は、センサ2が停止中か否かを判定し(ステップS13)、停止中のセンサ2が存在する場合は当該センサを起動させる(ステップS14)。これにより、停止していたセンサ2が復帰する。なお、ステップS13においてNoの場合、または、ステップS14が実行されると、MPU3は待機状態に戻る。
【0087】
待機状態において、演算タイミングが到来すると(ステップS15においてYes。)、DSP30は、所定の演算を実行してユーザの状態を推定し、状態情報11を生成する(ステップS16)。なお、演算タイミングの到来は、MPU3に専用のタイマを設けて周期的に決定してもよいし、CPU4から状態情報11に対する出力要求があったときに演算タイミングが到来したと判定してもよい。
【0088】
ステップS16が実行されることによって、状態情報11がRAM31に格納される。なお、ステップS15においてYesの場合であって、かつ、DSP30が抑制動作モードである場合には、ステップS16が実行される前に、スイッチング部306がDSP30を通常動作モードに切り替える。
【0089】
そして、ステップS16が実行されると、MPU3(インターフェース部33)は、新たに作成された状態情報11をCPU4に向けて出力する(ステップS17)。
【0090】
ステップS17が実行されることにより、CPU4は、状態情報11を受け取る。したがって、状態情報11を受け取ったCPU4は、当該状態情報11に基づいて出力情報12を作成する。なお、ステップS17を実行するときに、CPU4がCPU抑制動作モードである場合には、MPU3は、ステップS17を実行する前に、CPU起動信号をCPU4に向けて出力する。
【0091】
本実施の形態におけるスイッチング部306は、ステップS17が実行されると、一旦、DSP30を抑制動作モードに切り替える(ステップS18)。
【0092】
このように、MPU3が新たな状態情報11の出力を完了するたびに、スイッチング部306がDSP30を抑制動作モードに移行させる。これにより、さらに消費電力を抑制することができる。
【0093】
ステップS18を実行すると、MPU3は、待機状態に戻る。
【0094】
以上のように、MPU3は、外部のセンサ2により取得された検出情報10を取得するインターフェース部33と、インターフェース部33により取得された検出情報10に基づいて対象物の状態を推定し、状態情報11を生成するDSP30とを備え、DSP30は、1の命令で複数の情報を処理するとともに、単精度浮動小数点演算器305を備えるSIMD型演算に対応した演算論理ユニット304を備え、インターフェース部33は、DSP30により生成された状態情報11を外部のCPU4に向けて出力する。これにより、MPU3は、DSP30の周波数を下げることができるとともに、固定小数点演算器を採用する場合に比べて回路規模を小さくすることができる。したがって、消費電力を抑制することができる。
【0095】
また、DSP30は、検出情報10に対してカルマンフィルタを用いて対象物の状態を推定して状態情報11を生成することにより、固定小数点演算器を備えるプロセッサに比べて、さらに高い効果を奏する。
【0096】
また、DSP30は、検出情報10に基づいて6軸以上、好ましくは9軸以上、さらに好ましくは、12軸以上の情報を並列に処理する。このように、同時に発生する多軸に関する情報を処理することにより、さらに高い効果を奏する。
【0097】
また、MPU3は、通常動作モードと、通常動作モードよりも消費電力の小さい抑制動作モードとの間でDSP30の動作モードを切り替えるスイッチング部306をさらに備え、DSP30は、通常動作モードにおいて状態情報11を生成する。これにより、例えば、状態情報11を作成しない期間において、動作モードを抑制動作モードに切り替えることができ、さらに消費電力を抑制することができる。
【0098】
また、スイッチング部306は、CPU4からの要求に応じて、通常動作モードと抑制動作モードとの間で動作モードを切り替える。これにより、例えば、起動されているアプリケーションに応じてMPU3を働かせることができる。したがって、効率的にMPU3を使用することができる。
【0099】
また、MPU3は、CPU4からの要求(DSP起動信号)に応じて、抑制動作モードから通常動作モードに切り替わったときにセンサ2を起動する。これにより、CPU4が状態情報11を所望するときには、センサ2を起動させておき、検出情報10を取得することができる状態にすることができる。
【0100】
また、スイッチング部306は、センサ2からの検出情報10に応じて、通常動作モードと抑制動作モードとの間でDSP30の動作モードを切り替える。特に、スイッチング部306は、センサ2からの検出情報10における変化が閾値以下となっている状態が所定の時間継続した場合に、抑制動作モードに切り替える。これにより、対象物の状態が定常状態になった可能性が高いときには、消費電力の少ない抑制動作モードとすることにより、消費電力を抑制することができる。
【0101】
また、DSP30が抑制動作モードのときにおいて、センサ2からの検出情報10における変化が閾値より大きい状態となった場合に、センサ2からのDSP起動信号により、スイッチング部306がDSP30を通常動作モードとする。これにより、対象物の状態が変化した可能性が高いときに、DSP30が速やかに通常動作モードに移行して、当該対象物の状態を推定することにより、対象物の状態の変化を速やかにCPU4に通知することができる。
【0102】
<2. 変形例>
以上、本発明の実施の形態について説明してきたが、本発明は上記実施の形態に限定されるものではなく様々な変形が可能である。
【0103】
例えば、上記実施の形態に示した各工程は、あくまでも例示であって、上記に示した順序や内容に限定されるものではない。すなわち、同様の効果が得られるならば、適宜、順序や内容が変更されてもよい。例えば、ステップS7が実行されて新しい検出情報10がRAM31に格納されたときに、ステップS16を実行して状態情報11を作成し、ステップS17を実行して状態情報11を出力してもよい。
【0104】
また、上記実施の形態では、単精度浮動小数点演算器305を採用する例で説明したが、「単精度」に限定されるものではなく、例えば、倍精度浮動小数点演算器であってもよい。
【0105】
また、例えば、DSP30を抑制動作モードから通常動作モードに復帰させるタイミングを決定するタイマをさらに設けてもよい。また、このようなタイマを設けた場合には、当該タイマによりDSP30が通常動作モードに復帰したときにおいて、センサ2からの検出情報10における変化が閾値以下であれば、インターフェース部33は対象物の状態に変化がないことをCPU4に向けて出力し、スイッチング部306はDSP30を抑制動作モードに移行させてもよい。これにより、DSP30による状態情報11の作成を回避することができ、改めて状態情報11を生成する場合に比べて短時間で抑制動作モードに移行できる。特に、CPU4が定期的に状態情報11を要求している場合であって、かつ、状態に変化がない場合には有効である。
【0106】
また、CPU4がCPU抑制動作モードのときであって、かつ、対象物の状態に変化がないとみなせる場合には、当該対象物に状態の変化がないことや状態情報11をインターフェース部33がCPU4に対して出力をすることを禁止してもよい。これにより、無駄にCPU4を起動させることを抑制することができ、さらに消費電力を抑制することができる。
【0107】
また、MPU3がユーザインターフェースを備えており、MPU3に液晶パネルなどが接続される構成であってもよい。
【0108】
また、上記実施の形態では、対象物をユーザとして、ユーザの状態を推定する例で説明した。しかし、対象物はユーザに限定されるものではなく、例えば携帯端末装置(状態推定システム1)であってもよい。この場合、推定される状態とは、姿勢、静止状態あるいは携帯状態(手振りや固定など)などが想定される。