(57)【要約】【課題】対象物の状態を観測する技術において、より一層、消費電力を抑制する技術を提供する。【解決手段】外部のセンサに接続されたＭＰＵに、当該外部のセンサにより取得された検出情報１０を取得するインターフェース部３３と、インターフェース部３３により取得された検出情報１０に基づいて対象物の状態を推定し、状態情報１１を生成するＤＳＰ３０とを設ける。また、ＤＳＰ３０には、１の命令で複数の情報を処理するとともに、単精度浮動小数点演算器３０５を備えるＳＩＭＤ型演算に対応した演算論理ユニット３０４を設ける。そして、インターフェース部３３は、ＤＳＰ３０により生成された状態情報１１を外部のメインプロセッサに向けて出力する。【選択図】図２
2015194842.tif 000002
【特許請求の範囲】
【請求項１】
外部の検出装置により取得された検出情報を取得するインターフェース手段と、
前記インターフェース手段により取得された検出情報に基づいて対象物の状態を推定し、状態情報を生成する演算手段と、
を備え、
前記演算手段は、１の命令で複数の情報を処理するとともに、単精度浮動小数点演算器を備えるＳＩＭＤ型演算処理手段を備え、
前記インターフェース手段は、前記演算手段により生成された状態情報を外部のコンピュータに向けて出力する状態推定プロセッサ。
【請求項２】
請求項１に記載の状態推定プロセッサであって、
前記演算手段は、前記検出情報に対してカルマンフィルタを用いて前記対象物の状態を推定して状態情報を生成する状態推定プロセッサ。
【請求項３】
請求項１または２に記載の状態推定プロセッサであって、
前記演算手段は、前記検出情報に基づいて６軸以上の情報を並列に処理する状態推定プロセッサ。
【請求項４】
請求項３に記載の状態推定プロセッサであって、
前記演算手段は、前記検出情報に基づいて９軸以上の情報を並列に処理する状態推定プロセッサ。
【請求項５】
請求項４に記載の状態推定プロセッサであって、
前記演算手段は、前記検出情報に基づいて１２軸以上の情報を並列に処理する状態推定プロセッサ。
【請求項６】
請求項１ないし５のいずれかに記載の状態推定プロセッサであって、
第１の動作モードと前記第１の動作モードよりも消費電力の小さい第２の動作モードとの間で前記演算手段の動作モードを切り替える切替手段をさらに備え、
前記演算手段は、前記第１の動作モードにおいて前記状態情報を生成する状態推定プロセッサ。
【請求項７】
検出情報を取得する検出装置と、
前記検出装置に接続される状態推定プロセッサと、
第１の動作モードと前記第１の動作モードよりも消費電力の小さい第２の動作モードとを有し、前記第１の動作モードにおいて前記状態推定プロセッサにより生成された状態情報に基づいて出力情報を生成するメインプロセッサと、
を備え、
前記状態推定プロセッサは、
前記検出装置により取得された検出情報を取得するインターフェース手段と、
前記インターフェース手段により取得された検出情報に基づいて対象物の状態を推定し、状態情報を生成する演算手段と、
を備え、
前記演算手段は、１の命令で複数の情報を処理するとともに、単精度浮動小数点演算器を備えるＳＩＭＤ型演算処理手段を備え、
前記インターフェース手段は、前記演算手段により生成された状態情報を前記メインプロセッサに向けて出力し、
前記メインプロセッサは、前記インターフェース手段から状態情報が入力されるタイミングに応じて、前記第１の動作モードに移行する状態推定システム。
【請求項８】
請求項７に記載の状態推定システムであって、
前記状態推定プロセッサは、第３の動作モードと前記第３の動作モードよりも消費電力の小さい第４の動作モードとの間で前記演算手段の動作モードを切り替える切替手段をさらに備える状態推定システム。
【請求項９】
請求項８に記載の状態推定システムであって、
前記切替手段は、前記メインプロセッサからの要求に応じて、前記第３の動作モードと前記第４の動作モードとの間で動作モードを切り替える状態推定システム。
【請求項１０】
請求項９に記載の状態推定システムであって、
前記状態推定プロセッサは、前記メインプロセッサからの要求に応じて、前記第４の動作モードから前記第３の動作モードに切り替わったときに前記検出装置を起動する状態推定システム。
【請求項１１】
請求項８または９に記載の状態推定システムであって、
前記切替手段は、前記検出装置からの検出情報に応じて、前記第３の動作モードと前記第４の動作モードとの間で前記演算手段の動作モードを切り替える状態推定システム。
【請求項１２】
請求項１１に記載の状態推定システムであって、
前記切替手段は、前記センサからの検出情報における変化が閾値以下となっている状態が所定の時間継続した場合に、前記第４の動作モードに切り替える状態推定システム。
【請求項１３】
請求項１２に記載の状態推定システムであって、
前記演算手段を前記第４の動作モードから前記第３の動作モードに復帰させるタイミングを決定するタイマをさらに備え、
前記タイマにより前記演算手段が前記第３の動作モードに復帰したときに、前記検出装置からの検出情報における変化が閾値以下であれば、前記インターフェース手段は前記対象物の状態に変化がないことを前記メインプロセッサに向けて出力し、前記切替手段は演算手段を第４の動作モードに移行させる状態推定システム。
【請求項１４】
請求項１３に記載の状態推定システムであって、
前記メインプロセッサが前記第２の動作モードのときにおいて、前記インターフェース手段は、前記対象物の状態に変化がないことを前記メインプロセッサに出力することを禁止される状態推定システム。
【請求項１５】
請求項１１ないし１４のいずれかに記載の状態推定システムであって、
前記演算手段が前記第４の動作モードのときにおいて、前記検出装置からの検出情報における変化が閾値より大きい状態となった場合に、前記切替手段が前記演算手段を前記第３の動作モードとする状態推定システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、端末装置などにおいて対象物の状態を推定する技術に関する。より詳細には、対象物の状態を推定するときの端末装置の消費電力を抑制する技術に関する。
【背景技術】
【０００２】
従来より、人に携帯される端末装置にセンサを設けて、当該センサによって検出された値に基づいて当該端末装置を携帯する人の行動状態や当該端末装置の状態などを推定する技術が知られている。このような技術の応用分野として、例えば、ＰＤＲ（Pedestrian Dead Reckoning）などが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４２４３６８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところが、対象物の状態を推定しつつ、何らかのアクションを起こすアプリケーションにおいては、常時、対象物を観測し続ける必要がある。したがって、状態を推定するための基礎となる観測値を検出するセンサは、常時、稼働し続けなければならないという事情がある。そして、センサによって常時取得される観測値を処理するプロセッサも、休むことなく稼働し続けなければならず、消費電力が増大するという問題があった。特に、携帯される端末装置においては、電源が充電池に限られることから、消費電力の抑制に対する要請は高いものがある。
【０００５】
本発明は、上記課題に鑑みてなされたものであり、対象物の状態を観測する技術において、より一層、消費電力を抑制する技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記の課題を解決するため、請求項１の発明は、状態推定プロセッサであって、外部の検出装置により取得された検出情報を取得するインターフェース手段と、前記インターフェース手段により取得された検出情報に基づいて対象物の状態を推定し、状態情報を生成する演算手段とを備え、前記演算手段は、１の命令で複数の情報を処理するとともに、単精度浮動小数点演算器を備えるＳＩＭＤ型演算処理手段を備え、前記インターフェース手段は、前記演算手段により生成された状態情報を外部のコンピュータに向けて出力する。
【０００７】
また、請求項２の発明は、請求項１の発明に係る状態推定プロセッサであって、前記演算手段は、前記検出情報に対してカルマンフィルタを用いて前記対象物の状態を推定して状態情報を生成する。
【０００８】
また、請求項３の発明は、請求項１または２の発明に係る状態推定プロセッサであって、前記演算手段は、前記検出情報に基づいて６軸以上の情報を並列に処理する。
【０００９】
また、請求項４の発明は、請求項３の発明に係る状態推定プロセッサであって、前記演算手段は、前記検出情報に基づいて９軸以上の情報を並列に処理する。
【００１０】
また、請求項５の発明は、請求項４の発明に係る状態推定プロセッサであって、前記演算手段は、前記検出情報に基づいて１２軸以上の情報を並列に処理する。
【００１１】
また、請求項６の発明は、請求項１ないし５のいずれかの発明に係る状態推定プロセッサであって、第１の動作モードと前記第１の動作モードよりも消費電力の小さい第２の動作モードとの間で前記演算手段の動作モードを切り替える切替手段をさらに備え、前記演算手段は、前記第１の動作モードにおいて前記状態情報を生成する。
【００１２】
また、請求項７の発明は、状態推定システムであって、検出情報を取得する検出装置と、前記検出装置に接続される状態推定プロセッサと、第１の動作モードと前記第１の動作モードよりも消費電力の小さい第２の動作モードとを有し、前記第１の動作モードにおいて前記状態推定プロセッサにより生成された状態情報に基づいて出力情報を生成するメインプロセッサとを備え、前記状態推定プロセッサは、前記検出装置により取得された検出情報を取得するインターフェース手段と、前記インターフェース手段により取得された検出情報に基づいて対象物の状態を推定し、状態情報を生成する演算手段とを備え、前記演算手段は、１の命令で複数の情報を処理するとともに、単精度浮動小数点演算器を備えるＳＩＭＤ型演算処理手段を備え、前記インターフェース手段は、前記演算手段により生成された状態情報を前記メインプロセッサに向けて出力し、前記メインプロセッサは、前記インターフェース手段から状態情報が入力されるタイミングに応じて、前記第１の動作モードに移行する。
【００１３】
また、請求項８の発明は、請求項７の発明に係る状態推定システムであって、前記状態推定プロセッサは、第３の動作モードと前記第３の動作モードよりも消費電力の小さい第４の動作モードとの間で前記演算手段の動作モードを切り替える切替手段をさらに備える。
【００１４】
また、請求項９の発明は、請求項８の発明に係る状態推定システムであって、前記切替手段は、前記メインプロセッサからの要求に応じて、前記第３の動作モードと前記第４の動作モードとの間で動作モードを切り替える。
【００１５】
また、請求項１０の発明は、請求項９の発明に係る状態推定システムであって、前記状態推定プロセッサは、前記メインプロセッサからの要求に応じて、前記第４の動作モードから前記第３の動作モードに切り替わったときに前記検出装置を起動する。
【００１６】
また、請求項１１の発明は、請求項８または９の発明に係る状態推定システムであって、前記切替手段は、前記検出装置からの検出情報に応じて、前記第３の動作モードと前記第４の動作モードとの間で前記演算手段の動作モードを切り替える。
【００１７】
また、請求項１２の発明は、請求項１１の発明に係る状態推定システムであって、前記切替手段は、前記センサからの検出情報における変化が閾値以下となっている状態が所定の時間継続した場合に、前記第４の動作モードに切り替える。
【００１８】
また、請求項１３の発明は、請求項１２の発明に係る状態推定システムであって、前記演算手段を前記第４の動作モードから前記第３の動作モードに復帰させるタイミングを決定するタイマをさらに備え、前記タイマにより前記演算手段が前記第３の動作モードに復帰したときに、前記検出装置からの検出情報における変化が閾値以下であれば、前記インターフェース手段は前記対象物の状態に変化がないことを前記メインプロセッサに向けて出力し、前記切替手段は演算手段を第４の動作モードに移行させる。
【００１９】
また、請求項１４の発明は、請求項１３の発明に係る状態推定システムであって、前記メインプロセッサが前記第２の動作モードのときにおいて、前記インターフェース手段は、前記対象物の状態に変化がないことを前記メインプロセッサに出力することを禁止される。
【００２０】
また、請求項１５の発明は、請求項１１ないし１４のいずれかの発明に係る状態推定システムであって、前記演算手段が前記第４の動作モードのときにおいて、前記検出装置からの検出情報における変化が閾値より大きい状態となった場合に、前記切替手段が前記演算手段を前記第３の動作モードとする。
【発明の効果】
【００２１】
請求項１ないし１５の発明は、インターフェース手段により取得された検出情報に基づいて対象物の状態を推定し、状態情報を生成する演算手段を備え、演算手段は、１の命令で複数の情報を処理するとともに、単精度浮動小数点演算器を備えるＳＩＭＤ型演算処理手段を備え、インターフェース手段は、演算手段により生成された状態情報を外部のコンピュータに向けて出力する。これにより、消費電力を抑制することができる。
【図面の簡単な説明】
【００２２】
【図１】状態推定システムを示す図である。
【図２】ＤＳＰの回路構成を示す概略図である。
【図３】ＤＳＰが処理するデータについて示す概念図である。
【図４】１２軸の情報を逐次処理する場合と、ＤＳＰが１２軸の情報を処理する場合とを比較した図である。
【図５】ＭＰＵの動作を示す流れ図である。
【発明を実施するための形態】
【００２３】
以下、本発明の好適な実施の形態について、添付の図面を参照しつつ、詳細に説明する。ただし、以下の説明において特に断らない限り、方向や向きに関する記述は、当該説明の便宜上、図面に対応するものであり、例えば実施品、製品または権利範囲等を限定するものではない。
【００２４】
＜１．  実施の形態＞
図１は、状態推定システム１を示す図である。状態推定システム１は、１以上のセンサ２と、ＭＰＵ（Micro-Processing Unit）３と、ＣＰＵ４とを備えている。
【００２５】
なお、以下の説明では、状態推定システム１は、ユーザによって携帯される携帯端末装置（例えば、スマートフォンや携帯電話、ＰＤＡなど）に組み込まれるものとして説明する。
【００２６】
センサ２は、周囲の環境に関する情報や、動きに関する情報等を検出して、検出情報１０を生成する検出装置である。センサ２としては、温度センサや湿度センサ、照度センサ、気圧センサ、接触センサ、加速度センサ、ジャイロセンサ、あるいは、磁気センサ等が想定されるがこれらに限定されるものではない。また、状態推定システム１は、ここに列挙したセンサ類をすべて備えていなければならないものでもない。
【００２７】
なお、以下の説明では、当該携帯端末装置を携帯するユーザを対象物とし、状態推定システム１は、当該ユーザの状態（行動）を推定して出力情報１２を生成するものとする。したがって、本実施の形態におけるセンサ２は、ユーザの行動を推定するために必要な物理量を検出するために、加速度センサ、ジャイロセンサおよび磁気センサを含むものとして説明する。推定されるユーザの行動としては、歩行状態、静止状態、通話状態、閲覧状態あるいは乗車状態などが想定される。
【００２８】
各センサ２は、図１に示すように、いずれもＭＰＵ３と接続されている。そして、各センサ２によって取得された検出情報１０は、ＭＰＵ３に向けて出力される。
【００２９】
ＭＰＵ３は、ＤＳＰ（Digital Signal Processor）３０、ＲＡＭ３１、タイマ３２およびインターフェース部３３を備えている。
【００３０】
ＤＳＰ３０は、ＲＡＭ３１に格納された命令を読み出して、当該命令に従って動作する演算回路である。本実施の形態において、ＤＳＰ３０において実行される命令は、３並列のＶＬＩＷ（Very Long Instruction Word）に対応するように構成された６４ビットのデータとして表現されている。すなわち、ＤＳＰ３０は、１サイクルに３つの実命令を実行することが可能である（詳細後述。）。なお、命令は、図示しないデコーダにより解析されてＲＡＭ３１に書き込まれているものとする。
【００３１】
ＤＳＰ３０は、タイマ３２から入力される割り込み信号（以下、「検出タイミング信号」と称する。）に応じて、各センサ２の値を読み込む。すなわち、ＤＳＰ３０は、センサ２によって取得された検出情報１０を、インターフェース部３３により取得してＲＡＭ３１に格納する機能を有している。
【００３２】
また、ＲＡＭ３１に格納された検出情報１０に基づいて対象物の状態を推定し、状態情報１１を生成するが、ＤＳＰ３０の詳細については後述する。
【００３３】
ＲＡＭ３１は、ＤＳＰ３０のワーキングエリアとして使用される記憶装置であり、様々な情報を記憶するために使用される。例えば、ＲＡＭ３１は、ＤＳＰ３０により求められた状態情報１１を記憶する。また、ＲＡＭ３１は、各センサ２から取得された検出情報１０も記憶する。
【００３４】
なお、図１では、簡略化してＲＡＭ３１を１つの構成として図示しているが、通常、ＲＡＭ３１は複数の記憶装置から構成されている。また、図１では、ＲＡＭ３１から読み出される情報は必ずＤＳＰ３０を介するように図示しているが、ＲＡＭ３１はＣＰＵ４から参照可能な記憶領域（記憶装置）を備えており、ＣＰＵ４はＤＳＰ３０を介することなくＲＡＭ３１から所望の情報を読み出すことができるように構成されている。
【００３５】
タイマ３２は、周期的（本実施の形態では１００［Ｈｚ］）に検出タイミング信号を生成して、インターフェース部３３を介してＤＳＰ３０に出力する。すでに説明したように、検出タイミング信号を受信すると、ＤＳＰ３０は、各センサの値を読み取ってＲＡＭ３１に検出情報１０として格納する。
【００３６】
インターフェース部３３は、各センサ２と接続されている。図１に示すように、センサ２は並列状態または直列状態でＭＰＵ３に接続されている。また、インターフェース部３３は、ＣＰＵ４と接続されている。このように、インターフェース部３３は、ＭＰＵ３と、各センサ２やＣＰＵ４とを接続する機能を有している。これにより、インターフェース部３３は、センサ２により取得された検出情報１０を取得するとともに、ＤＳＰ３０により生成された状態情報１１をＣＰＵ４に向けて出力する機能を有する。
【００３７】
このように、ＭＰＵ３は、センサ２により取得された検出情報１０に基づいて状態情報１１を生成して、ＣＰＵ４に向けて出力する機能を有している。すなわち、ＭＰＵ３は、本発明における状態推定プロセッサに相当するが、詳細は後述する。
【００３８】
ＣＰＵ４は、携帯端末装置におけるメインプロセッサとして機能する。詳細は省略するが、ＣＰＵ４には、記憶装置、キーやボタンなどの操作部、液晶ディスプレイなどの表示部、音声を出力するスピーカ、音声を電気信号に変換するマイク、外部装置との間で通信を行う通信部などが、適宜接続されている。
【００３９】
ＣＰＵ４は、図示しない記憶装置に格納されているプログラムを読み取りつつ実行して、各種データの演算や制御信号の生成等を行う。これにより、ＣＰＵ４は、ＭＰＵ３や携帯端末装置が備える他の構成を制御するとともに、各種データを演算し作成する機能を有している。
【００４０】
ＣＰＵ４は、所定のアプリケーション（例えば、経路案内アプリケーションなど）が起動されたことに応じて、ＭＰＵ３に対してＤＳＰ起動信号を出力する。逆に、所定のアプリケーションを終了するタイミングに応じて、ＭＰＵ３に対してＤＳＰ抑制信号を出力する。また、ＣＰＵ４は、ＭＰＵ３から入力される状態情報１１に基づいて出力情報１２を生成する。さらに、ＣＰＵ４は、出力情報１２を図示しない表示部などに出力することにより、ユーザに出力情報１２を提供する。
【００４１】
また、ＣＰＵ４は、ＣＰＵ通常動作モードと、ＣＰＵ通常動作モードよりも消費電力の小さいＣＰＵ抑制動作モードとを有している。ＣＰＵ抑制動作モードとは、いわゆるスリープモードなどと呼ばれる動作モードであって、ＣＰＵ４内の制限された一部の回路のみが稼働している動作モードである。
【００４２】
ＣＰＵ４では、ＭＰＵ３から出力されるＣＰＵ起動信号に応じて、動作モードがＣＰＵ抑制動作モードからＣＰＵ通常動作モードに切り替わる。また、ＣＰＵ４では、ＭＰＵ３から出力されるＣＰＵ抑制信号に応じて、動作モードがＣＰＵ通常動作モードからＣＰＵ抑制動作モードに切り替わる。ただし、ＭＰＵ３からＣＰＵ抑制信号を受信した場合であっても、他のアプリケーション等を実行している場合には、ＣＰＵ４は抑制動作モードに移行することはない。
【００４３】
図２は、ＤＳＰ３０の回路構成を示す概略図である。図２に示すように、ＤＳＰ３０は、ロード・ストアユニット３００、２つのレジスタ３０１，３０２、２つの演算論理ユニット３０３，３０４、４つの単精度浮動小数点演算器３０５、および、スイッチング部３０６を備えている。
【００４４】
ロード・ストアユニット３００は、ＲＡＭ３１からデータを読み取ってレジスタ３０１，３０２に格納したり、レジスタ３０１，３０２に格納されているデータをＲＡＭ３１に格納したりする機能を有する。また、ロード・ストアユニット３００は、ＲＡＭ３１から読み出した命令を演算論理ユニット３０３，３０４にセットする。さらに、ロード・ストアユニット３００は、レジスタ３０１に格納されている値がポインタ値である場合には、当該ポインタ値に従ってＲＡＭ３１に格納されているデータを特定し、読み出す機能も有している。
【００４５】
レジスタ３０１，３０２は、いずれもデータを一時的に記憶する記憶装置である。レジスタ３０１，３０２には、ＲＡＭ３１から読み出されたデータや、演算論理ユニット３０３，３０４によって求められた値などが格納される。
【００４６】
演算論理ユニット３０３は、ロード・ストアユニット３００から入力された命令に従って、レジスタ３０１に格納されているデータに所定の演算を実行する整数演算器である。演算論理ユニット３０３により演算された値はレジスタ３０１に格納される。演算論理ユニット３０３は、例えば、所望のデータをＲＡＭ３１から読み出すためのポインタ値を演算するためなどに使用される。
【００４７】
演算論理ユニット３０４は、４つの単精度浮動小数点演算器３０５を備えたＳＩＭＤ型演算器として構成されている。演算論理ユニット３０４は、４つの単精度浮動小数点演算器３０５のそれぞれにセットされたデータ（すなわち、複数のデータ）に対して、並列的に（１サイクルの間に）、１つの命令を実行することができる。演算論理ユニット３０４により演算された値は、レジスタ３０２に格納され、ロード・ストアユニット３００によってＲＡＭ３１に格納される。
【００４８】
スイッチング部３０６は、第１の動作モードと、前記第１の動作モードよりも消費電力の小さい第２の動作モードとの間でＤＳＰ３０の動作モードを切り替える機能を有する。言い換えれば、ＤＳＰ３０は、動作モードとして、通常動作モードと、通常動作モードよりも消費電力の小さい抑制動作モードとを有している。
【００４９】
スイッチング部３０６は、インターフェース部３３から入力されるＤＳＰ抑制信号に応じて、ＤＳＰ３０の動作モードを通常動作モードから抑制動作モードに切り替える。ＤＳＰ抑制信号は、一部または全部のセンサ２やＣＰＵ４からの割り込み信号としてインターフェース部３３を介して入力される。また、ＤＳＰ３０が自身を抑制動作モードに切り替える場合もある。
【００５０】
また、スイッチング部３０６は、インターフェース部３３から入力されるＤＳＰ起動信号に応じて、ＤＳＰ３０の動作モードを抑制動作モードから通常動作モードに切り替える。ＤＳＰ起動信号は、一部または全部のセンサ２やＣＰＵ４からの割り込み信号として、インターフェース部３３を介して入力される。また、タイマ３２からの検出タイミング信号もＤＳＰ起動信号として機能する場合がある。
【００５１】
なお、図１では、スイッチング部３０６の制御対象がロード・ストアユニット３００のみであるかのように図示しているが、これは図示の都合上、簡略的に示すものであって、スイッチング部３０６は、ＤＳＰ３０が備える各構成のうちの必要な構成（回路）について切替制御を行う。
【００５２】
以上が状態推定システム１の構成および機能の説明である。次に、ＤＳＰ３０による演算の仕組み（演算アーキテクチャ）について説明する。なお、ＤＳＰ３０は、抑制動作モードではなく、通常動作モードにおいて、検出情報１０に対する演算処理（状態情報１１を求める処理）を実行する。
【００５３】
図３は、ＤＳＰ３０が処理するデータについて示す概念図である。
【００５４】
以下では、状態推定システム１が組み込まれた携帯端末装置の動きを観測して、当該携帯端末装置を所持するユーザの行動を推定する場合を例に説明する。
【００５５】
図３に示す「Ａ」、「Ｂ」、「Ｃ」、「Ｄ」は、ひとまとまりのデータを示す。例えば、「Ａ」が３軸の加速度センサの出力であれば、「Ａｘ」は加速度のＸ軸成分の値であり、「Ａｙ」は加速度のＹ軸成分の値であり、「Ａｚ」は加速度のＺ軸成分の値である。また、「Ｂ」が３軸のジャイロセンサの出力であれば、「Ｂｘ」は角速度のＸ軸成分の値であり、「Ｂｙ」は角速度のＹ軸成分の値であり、「Ｂｚ」は角速度のＺ軸成分の値である。また、「Ｃ」が３軸の磁気センサの出力であれば、「Ｃｘ」は磁気ベクトルのＸ軸成分の値であり、「Ｃｙ」は磁気ベクトルのＹ軸成分の値であり、「Ｃｚ」は磁気ベクトルのＺ軸成分の値である。さらに、「Ｄ」が３軸のジャイロセンサのバイアスの補正値であれば、「Ｄｘ」は角速度のＸ軸成分の補正値であり、「Ｄｙ」は角速度のＹ軸成分の補正値であり、「Ｄｚ」は角速度のＺ軸成分の補正値である。
【００５６】
なお、ジャイロセンサのバイアスの補正値は、直接、センサ２から得られる検出情報１０ではない。ジャイロセンサのバイアスの補正値を求める手法は、従来から提案されている様々な技術を適用することができるため、ここでは具体的な説明を省略する。
【００５７】
このように、携帯端末装置の動きを観測して状態を推定する場合には、上記のように、１２軸の情報を処理することになるのが一般的である。ただし、例えば、磁気センサの値を採用せずに状態を推定する場合などには９軸となる。すなわち、状態推定のためには、必ずしも１２軸の情報を処理することが必須条件となるわけではなく、アプリケーションの要求に応じて適宜変更されるものである。
【００５８】
ＤＳＰ３０は、１２軸の情報を、α０，α１，α２，α３と、β０，β１，β２，β３と、γ０，γ１，γ２，γ３とに分けて処理する。
【００５９】
図４は、１２軸の情報を逐次処理する場合と、ＤＳＰ３０が１２軸の情報を処理する場合とを比較した図である。なお、図４では、詳細な演算についての逐一的な説明は省略し、ＤＳＰ３０における特徴が理解しやすいように、あくまでも概念図として処理を示している。
【００６０】
逐次処理の場合、図４の左表に示すように、α０（Ａｘ）のデータに対して、第１サイクルでＲＡＭ３１からロードし、第２サイクルで次のデータのためにポインタを演算し、第３サイクルで乗算してから、第４サイクルでＲＡＭ３１に結果をストア（格納）するという流れになる。したがって、１２軸の情報すべてについて処理を完了するためには、４８サイクルが必要となる。
【００６１】
これに対して、ＤＳＰ３０では命令セットが３並列のＶＬＩＷに対応している。したがって、ＤＳＰ３０は、１サイクルに３つの実命令を実行することができる。また、すでに説明したように、演算論理ユニット３０４はＳＩＭＤ型演算器であり、実行ユニットとして４つの単精度浮動小数点演算器３０５を備えている。したがって、ＤＳＰ３０は、演算論理ユニット３０４において、１サイクルで４つのデータに対して１命令（例えば乗算命令）を実行可能である。
【００６２】
したがって、図４の右表に示すように、第１のサイクルでα（α０，α１，α２，α３）を読み込み、第２のサイクルでβ（β０，β１，β２，β３）を読み込みつつ、演算論理ユニット３０３によってポインタを演算する。また、第３のサイクルでは、γ（γ０，γ１，γ２，γ３）を読み込みつつ、演算論理ユニット３０３によってポインタを演算し、かつ、演算論理ユニット３０４によってα（α０，α１，α２，α３）の乗算を実行する。さらに、第４のサイクルでは、α（α０，α１，α２，α３）をＲＡＭ３１に書き込みつつ、演算論理ユニット３０３によってポインタを演算し、かつ、演算論理ユニット３０４によってβ（β０，β１，β２，β３）の乗算を実行する。
【００６３】
このように、１回の観測により得られる検出情報１０に対して、ＤＳＰ３０では６サイクルで処理を完了することができる。したがって、従来のように、メインＣＰＵで逐次処理する場合に比べて、ＭＰＵ３（ＤＳＰ３０）の動作周波数を下げることができる。
【００６４】
これにより、ＤＳＰ３０は、従来のマイコンに比べて、消費電力を抑制することができる。なお、一般的なマイコンでは、このような処理に８０［ＭＨｚ］程度の動作周波数が必要であるが、本実施の形態におけるＤＳＰ３０は、７［ＭＨｚ］程度で処理可能である。
【００６５】
また、一般に、浮動小数点演算器は、固定小数点演算器に比べて演算器自体の回路規模が小さいという特徴がある。しかし、汎用のマイコンでは、浮動小数点演算器ではなく、固定小数点演算器が用いられることが多い。これは、浮動小数点演算器による演算では、小数点の位置を決定しなければならず、演算深度が深くなり、このための付加回路が別に必要となるからである。すなわち、結果として、固定小数点演算器を採用した場合の方が、全体としての回路規模が小さくなるという事情があった。
【００６６】
しかし、センサ２からの検出情報１０を処理して状態を推定するという用途においては、このような付加回路は最小限で済む。したがって、ＤＳＰ３０は、単精度浮動小数点演算器３０５を採用することにより、固定小数点演算器を採用する場合に比べて、回路規模を小さくすることができる。
【００６７】
特に、センサフュージョンに用いられるカルマンフィルタは、パラメータのダイナミックレンジが広いという特性があり、固定小数点演算器を用いて本実施の形態における単精度浮動小数点演算器３０５（１６ビット）と同程度の演算精度を維持するためには、６４ビット演算器を準備する必要があり、回路規模が大きくなる。すなわち、ＤＳＰ３０がカルマンフィルタを用いる演算を実行することにより、単精度浮動小数点演算器３０５を採用する効果がより顕著となる。
【００６８】
次に、状態推定システム１におけるセンサ２、ＭＰＵ３およびＣＰＵ４の制御方法について説明する。
【００６９】
図５は、ＭＰＵ３の動作を示す流れ図である。状態推定システム１（携帯端末装置）に電源が投入されると、ＭＰＵ３は所定の初期設定を実行した後、待機状態となる。なお、待機状態は、通常動作モードまたは抑制動作モードのいずれであってもよい。
【００７０】
待機状態において、ＭＰＵ３は、ＤＳＰ抑制信号を受信したか（ステップＳ１）、検出タイミングが到来したか（ステップＳ５）、ＤＳＰ起動信号を受信したか（ステップＳ１１）、および、演算タイミングが到来したか（ステップＳ１５）を監視している。
【００７１】
待機状態において、ＤＳＰ抑制信号を受信すると、ＭＰＵ３は、ステップＳ１においてＹｅｓと判定し、当該ＤＳＰ抑制信号の送信元を確認する（ステップＳ２）。
【００７２】
当該ＤＳＰ抑制信号の送信元がＣＰＵ４である場合（ステップＳ２においてＹｅｓ。）、ＭＰＵ３は、センサ２を停止する（ステップＳ３）。そして、スイッチング部３０６がＤＳＰ３０の動作モードをＤＳＰ抑制モードに切り替える（ステップＳ４）。
【００７３】
このように、ステップＳ４が実行されると、以後、ＤＳＰ３０は、抑制動作モードとなり、通常動作モードのときに比べて消費電力が抑制される。なお、ステップＳ４を実行すると、ＭＰＵ３は待機状態に戻る。
【００７４】
ＤＳＰ抑制信号がＣＰＵ４により送信されているならば、状態情報１１を必要とするアプリケーションが終了されており、ＣＰＵ４が、以後、状態情報１１を必要としていないとみなせる。このような場合、状態推定システム１は、センサ２によるセンシングを停止させることにより、さらに消費電力を抑制する。
【００７５】
なお、ステップＳ３が実行されたときには、以後、センサ２の出力を読み込む必要はないので、ＭＰＵ３（スイッチング部３０６）はタイマ３２を停止させてもよい。また、ステップＳ３において、状態推定システム１（ＭＰＵ３）は、すべてのセンサ２を停止させるのではなく、状況に応じて取捨選択するように構成してもよい。
【００７６】
一方、ＤＳＰ抑制信号の送信元がＣＰＵ４ではない場合（ステップＳ２においてＮｏ。）、ＭＰＵ３は、ステップＳ３をスキップして、ステップＳ４を実行する。これにより、以後、ＤＳＰ３０は、抑制動作モードとなり、待機状態に戻る。
【００７７】
ＤＳＰ抑制信号がＣＰＵ４により送信されていないならば、ＣＰＵ４は、状態情報１１を必要としているとみなせる。したがって、この場合は、センサ２を停止させることなく、センサ２によるセンシングは継続させることが好ましい。
【００７８】
なお、ＤＳＰ抑制信号の送信元がＣＰＵ４ではない場合とは、センサ２が送信元となる場合や、ＤＳＰ３０自体が自らを抑制動作モードに切り替えようとする場合などが想定される。
【００７９】
待機状態において、検出タイミングが到来すると（ステップＳ５においてＹｅｓ。）、タイマ３２は検出タイミング信号を割り込み信号としてＤＳＰ３０に向けて出力する（ステップＳ６）。これに応じて、ＭＰＵ３は、各センサ２の出力を読み込む（ステップＳ７）。これによって、検出情報１０がＲＡＭ３１に格納される。
【００８０】
次に、ＭＰＵ３は、ステップＳ７において読み込んだセンサ２の出力値と、前回ステップＳ７が実行されたときに読み込まれたセンサ２の出力値とを比較し、その差分が閾値以下であるか否かを判定する（ステップＳ８）。
【００８１】
当該差分が閾値以下である場合とは、状態における変化が乏しいことを意味している。そこで、ステップＳ８においてＹｅｓの場合、ＭＰＵ３はこのような状態が所定の期間継続しているか否かをさらに判定する（ステップＳ９）。
【００８２】
ステップＳ９においてＹｅｓの場合（ステップＳ７において読み込んだセンサ２の出力値と、前回ステップＳ７が実行されたときに読み込まれたセンサ２の出力値との差分が閾値以下の状態が所定の期間継続している場合）、ＭＰＵ３は、状態に変化がないことをＣＰＵ４に通知する（ステップＳ１０）。そして、ステップＳ１０が実行されると、スイッチング部３０６は、ＤＳＰ３０を抑制動作モードに移行させる（ステップＳ４）。
【００８３】
このように、状態推定システム１は、センサ２によって取得される検出情報１０において、変化の乏しい状態が所定の期間継続している場合には、ＤＳＰ３０を抑制動作モードに切り替えることにより、消費電力を抑制することができる。なお、検出情報１０において変化が乏しいか否かは、各センサ２が判断して、検出情報１０とともに、ＭＰＵ３に通知するように構成してもよい。
【００８４】
一方、ステップＳ８またはステップＳ９のうちのいずれかのステップにおいてＮｏである場合、ＭＰＵ３は、ステップＳ１０を実行することなく、待機状態に戻る。
【００８５】
待機状態において、ＤＳＰ起動信号が受信されると（ステップＳ１１においてＹｅｓ。）、スイッチング部３０６は、ＤＳＰ３０を通常動作モードに切り替える（ステップＳ１２）。これにより、ＤＳＰ３０は通常動作モードに復帰する。
【００８６】
ステップＳ１２が実行されると、ＭＰＵ３は、センサ２が停止中か否かを判定し（ステップＳ１３）、停止中のセンサ２が存在する場合は当該センサを起動させる（ステップＳ１４）。これにより、停止していたセンサ２が復帰する。なお、ステップＳ１３においてＮｏの場合、または、ステップＳ１４が実行されると、ＭＰＵ３は待機状態に戻る。
【００８７】
待機状態において、演算タイミングが到来すると（ステップＳ１５においてＹｅｓ。）、ＤＳＰ３０は、所定の演算を実行してユーザの状態を推定し、状態情報１１を生成する（ステップＳ１６）。なお、演算タイミングの到来は、ＭＰＵ３に専用のタイマを設けて周期的に決定してもよいし、ＣＰＵ４から状態情報１１に対する出力要求があったときに演算タイミングが到来したと判定してもよい。
【００８８】
ステップＳ１６が実行されることによって、状態情報１１がＲＡＭ３１に格納される。なお、ステップＳ１５においてＹｅｓの場合であって、かつ、ＤＳＰ３０が抑制動作モードである場合には、ステップＳ１６が実行される前に、スイッチング部３０６がＤＳＰ３０を通常動作モードに切り替える。
【００８９】
そして、ステップＳ１６が実行されると、ＭＰＵ３（インターフェース部３３）は、新たに作成された状態情報１１をＣＰＵ４に向けて出力する（ステップＳ１７）。
【００９０】
ステップＳ１７が実行されることにより、ＣＰＵ４は、状態情報１１を受け取る。したがって、状態情報１１を受け取ったＣＰＵ４は、当該状態情報１１に基づいて出力情報１２を作成する。なお、ステップＳ１７を実行するときに、ＣＰＵ４がＣＰＵ抑制動作モードである場合には、ＭＰＵ３は、ステップＳ１７を実行する前に、ＣＰＵ起動信号をＣＰＵ４に向けて出力する。
【００９１】
本実施の形態におけるスイッチング部３０６は、ステップＳ１７が実行されると、一旦、ＤＳＰ３０を抑制動作モードに切り替える（ステップＳ１８）。
【００９２】
このように、ＭＰＵ３が新たな状態情報１１の出力を完了するたびに、スイッチング部３０６がＤＳＰ３０を抑制動作モードに移行させる。これにより、さらに消費電力を抑制することができる。
【００９３】
ステップＳ１８を実行すると、ＭＰＵ３は、待機状態に戻る。
【００９４】
以上のように、ＭＰＵ３は、外部のセンサ２により取得された検出情報１０を取得するインターフェース部３３と、インターフェース部３３により取得された検出情報１０に基づいて対象物の状態を推定し、状態情報１１を生成するＤＳＰ３０とを備え、ＤＳＰ３０は、１の命令で複数の情報を処理するとともに、単精度浮動小数点演算器３０５を備えるＳＩＭＤ型演算に対応した演算論理ユニット３０４を備え、インターフェース部３３は、ＤＳＰ３０により生成された状態情報１１を外部のＣＰＵ４に向けて出力する。これにより、ＭＰＵ３は、ＤＳＰ３０の周波数を下げることができるとともに、固定小数点演算器を採用する場合に比べて回路規模を小さくすることができる。したがって、消費電力を抑制することができる。
【００９５】
また、ＤＳＰ３０は、検出情報１０に対してカルマンフィルタを用いて対象物の状態を推定して状態情報１１を生成することにより、固定小数点演算器を備えるプロセッサに比べて、さらに高い効果を奏する。
【００９６】
また、ＤＳＰ３０は、検出情報１０に基づいて６軸以上、好ましくは９軸以上、さらに好ましくは、１２軸以上の情報を並列に処理する。このように、同時に発生する多軸に関する情報を処理することにより、さらに高い効果を奏する。
【００９７】
また、ＭＰＵ３は、通常動作モードと、通常動作モードよりも消費電力の小さい抑制動作モードとの間でＤＳＰ３０の動作モードを切り替えるスイッチング部３０６をさらに備え、ＤＳＰ３０は、通常動作モードにおいて状態情報１１を生成する。これにより、例えば、状態情報１１を作成しない期間において、動作モードを抑制動作モードに切り替えることができ、さらに消費電力を抑制することができる。
【００９８】
また、スイッチング部３０６は、ＣＰＵ４からの要求に応じて、通常動作モードと抑制動作モードとの間で動作モードを切り替える。これにより、例えば、起動されているアプリケーションに応じてＭＰＵ３を働かせることができる。したがって、効率的にＭＰＵ３を使用することができる。
【００９９】
また、ＭＰＵ３は、ＣＰＵ４からの要求（ＤＳＰ起動信号）に応じて、抑制動作モードから通常動作モードに切り替わったときにセンサ２を起動する。これにより、ＣＰＵ４が状態情報１１を所望するときには、センサ２を起動させておき、検出情報１０を取得することができる状態にすることができる。
【０１００】
また、スイッチング部３０６は、センサ２からの検出情報１０に応じて、通常動作モードと抑制動作モードとの間でＤＳＰ３０の動作モードを切り替える。特に、スイッチング部３０６は、センサ２からの検出情報１０における変化が閾値以下となっている状態が所定の時間継続した場合に、抑制動作モードに切り替える。これにより、対象物の状態が定常状態になった可能性が高いときには、消費電力の少ない抑制動作モードとすることにより、消費電力を抑制することができる。
【０１０１】
また、ＤＳＰ３０が抑制動作モードのときにおいて、センサ２からの検出情報１０における変化が閾値より大きい状態となった場合に、センサ２からのＤＳＰ起動信号により、スイッチング部３０６がＤＳＰ３０を通常動作モードとする。これにより、対象物の状態が変化した可能性が高いときに、ＤＳＰ３０が速やかに通常動作モードに移行して、当該対象物の状態を推定することにより、対象物の状態の変化を速やかにＣＰＵ４に通知することができる。
【０１０２】
＜２．  変形例＞
以上、本発明の実施の形態について説明してきたが、本発明は上記実施の形態に限定されるものではなく様々な変形が可能である。
【０１０３】
例えば、上記実施の形態に示した各工程は、あくまでも例示であって、上記に示した順序や内容に限定されるものではない。すなわち、同様の効果が得られるならば、適宜、順序や内容が変更されてもよい。例えば、ステップＳ７が実行されて新しい検出情報１０がＲＡＭ３１に格納されたときに、ステップＳ１６を実行して状態情報１１を作成し、ステップＳ１７を実行して状態情報１１を出力してもよい。
【０１０４】
また、上記実施の形態では、単精度浮動小数点演算器３０５を採用する例で説明したが、「単精度」に限定されるものではなく、例えば、倍精度浮動小数点演算器であってもよい。
【０１０５】
また、例えば、ＤＳＰ３０を抑制動作モードから通常動作モードに復帰させるタイミングを決定するタイマをさらに設けてもよい。また、このようなタイマを設けた場合には、当該タイマによりＤＳＰ３０が通常動作モードに復帰したときにおいて、センサ２からの検出情報１０における変化が閾値以下であれば、インターフェース部３３は対象物の状態に変化がないことをＣＰＵ４に向けて出力し、スイッチング部３０６はＤＳＰ３０を抑制動作モードに移行させてもよい。これにより、ＤＳＰ３０による状態情報１１の作成を回避することができ、改めて状態情報１１を生成する場合に比べて短時間で抑制動作モードに移行できる。特に、ＣＰＵ４が定期的に状態情報１１を要求している場合であって、かつ、状態に変化がない場合には有効である。
【０１０６】
また、ＣＰＵ４がＣＰＵ抑制動作モードのときであって、かつ、対象物の状態に変化がないとみなせる場合には、当該対象物に状態の変化がないことや状態情報１１をインターフェース部３３がＣＰＵ４に対して出力をすることを禁止してもよい。これにより、無駄にＣＰＵ４を起動させることを抑制することができ、さらに消費電力を抑制することができる。
【０１０７】
また、ＭＰＵ３がユーザインターフェースを備えており、ＭＰＵ３に液晶パネルなどが接続される構成であってもよい。
【０１０８】
また、上記実施の形態では、対象物をユーザとして、ユーザの状態を推定する例で説明した。しかし、対象物はユーザに限定されるものではなく、例えば携帯端末装置（状態推定システム１）であってもよい。この場合、推定される状態とは、姿勢、静止状態あるいは携帯状態（手振りや固定など）などが想定される。
【符号の説明】
【０１０９】
１  状態推定システム
１０  検出情報
１１  状態情報
１２  出力情報
２  センサ
３  ＭＰＵ
３０  ＤＳＰ
３１  ＲＡＭ
３２  タイマ
３３  インターフェース部
３００  ロード・ストアユニット
３０１，３０２  レジスタ
３０３  演算論理ユニット
３０３，３０４  演算論理ユニット
３０５  単精度浮動小数点演算器
３０６  スイッチング部
４  ＣＰＵ
【図１】
2015194842.tif 000003
【図２】
2015194842.tif 000004
【図３】
2015194842.tif 000005
【図４】
2015194842.tif 000006
【図５】
2015194842.tif 000007