(57)【要約】【課題】データ処理の移行を容易に行うことができるデータ処理システム及びデータ処理方法を提供する。【解決手段】データ処理システム１は、入力データに対する第１の処理を実行する第１のデータ処理装置２と、第１のデータ処理装置２から第１の処理を移行して実行する第２のデータ処理装置３とを備え、第２のデータ処理装置３は、第１のデータ処理装置２から第１の処理を移行する場合、第１のデータ処理装置２へ入力される入力データをスヌープする。【選択図】図３
2018101256.tif 000002
【特許請求の範囲】
【請求項１】
入力データに対する第１の処理を実行する第１のデータ処理装置と、
前記第１のデータ処理装置から前記第１の処理を移行して実行する第２のデータ処理装置と、
を備え、
前記第２のデータ処理装置は、前記第１の処理を移行する場合、前記第１のデータ処理装置へ入力される前記入力データをスヌープする、
データ処理システム。
【請求項２】
前記第１のデータ処理装置と前記第２のデータ処理装置は、処理能力及び消費電力が異なっている、
請求項１に記載のデータ処理システム。
【請求項３】
前記第２のデータ処理装置は、前記第１のデータ処理装置よりも処理能力及び消費電力が高く、
前記第１のデータ処理装置よりも高い処理能力が必要となった場合、第２のデータ処理装置は前記第１の処理を移行する、
請求項２に記載のデータ処理システム。
【請求項４】
前記第１の処理は、前記入力データをサンプリングする処理であり、
前記入力データに基づき、所定のサンプリングレートよりも高いサンプリングレートが必要となった場合、第２のデータ処理装置は前記第１の処理を移行する、
請求項３に記載のデータ処理システム。
【請求項５】
前記第１の処理が必要とする入力データの数が増加した場合、第２のデータ処理装置は前記第１の処理を移行する、
請求項３に記載のデータ処理システム。
【請求項６】
第１のデータ処理装置の負荷が上昇した場合、第２のデータ処理装置は前記第１の処理を移行する、
請求項３に記載のデータ処理システム。
【請求項７】
前記第２のデータ処理装置は、前記第１のデータ処理装置よりも処理能力及び消費電力が低く、
前記前記第１のデータ処理装置よりも低い消費電力による処理が可能となった場合、第２のデータ処理装置は前記第１の処理を移行する、
請求項２に記載のデータ処理システム。
【請求項８】
前記第１の処理は、前記入力データをサンプリングする処理であり、
前記入力データに基づき、所定のサンプリングレートよりも低いサンプリングレートで処理が可能となった場合、第２のデータ処理装置は前記第１の処理を移行する、
請求項７に記載のデータ処理システム。
【請求項９】
前記第１の処理が必要とする入力データの数が減少した場合、第２のデータ処理装置は前記第１の処理を移行する、
請求項７に記載のデータ処理システム。
【請求項１０】
第１のデータ処理装置の負荷が低下した場合、第２のデータ処理装置は前記第１の処理を移行する、
請求項７に記載のデータ処理システム。
【請求項１１】
前記第１のデータ処理装置は、複数の前記第１の処理を実行し、
前記第２のデータ処理装置は、前記複数の第１の処理のうち選択された処理を前記第１のデータ処理装置から移行する、
請求項１に記載のデータ処理システム。
【請求項１２】
前記入力データは、センサから入力されるセンシングデータである、
請求項１に記載のデータ処理システム。
【請求項１３】
前記第１及び第２のデータ処理装置は、前記センサと共通接続されており、
前記第２のデータ処理装置は、  前記第１のデータ処理装置が前記センサから取得するセンシングデータをスヌープする、
請求項１２に記載のデータ処理システム。
【請求項１４】
第１の半導体装置と第２の半導体装置を備え、
前記第１の半導体装置は、入力データに対する第１の処理を実行する第１の処理部を備え、
前記第２の半導体装置は、
前記第１の半導体装置へ入力される前記入力データをスヌープするスヌープ部と、
前記スヌープした入力データに基づき、前記第１の半導体装置から前記第１の処理を移行して実行する第２の処理部と、を備える、
データ処理システム。
【請求項１５】
第１のデータ処理装置と第２のデータ処理装置とを備えたデータ処理システムにおけるデータ処理方法であって、
前記第１のデータ処理装置は、入力データに対する第１の処理を実行し、
前記第２のデータ処理装置は、
前記第１のデータ処理装置へ入力される前記入力データをスヌープし、
前記スヌープした入力データに基づき、前記第１のデータ処理装置から前記第１の処理を移行して実行する、
データ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システム及びデータ処理方法に関し、例えば、第１及び第２のデータ処理装置を備えるデータ処理システム及びデータ処理方法に関する。
【背景技術】
【０００２】
近年、ＩｏＴ（Internet of Things）のように、様々な物がインターネット等と通信を行うシステムが普及し始めている。例えば、スマートフォンやタブレットに限らず、時計や活動量計など、生活の様々な場面でセンシングデバイスが使われている。センシングデバイスによってセンシングされたデータは、Ｂｌｕｅｔｏｏｔｈ（登録商標）等の通信機能を使ってセンシングデバイスからスマートフォン等へ送信され、さらに、インターネット上のサーバやクラウド等にて処理される。
【０００３】
ＩｏＴのようなシステムでは、クラウドよりもデバイス側で処理を行うエッジコンピューティングが注目されている。このため、デバイスや搭載される半導体装置の性能向上や低消費電力化が求められている。関連する技術として、例えば、特許文献１や非特許文献１が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−２８０３７８号公報
【非特許文献】
【０００５】
【非特許文献１】ＡＲＭ社、“big.LITTLE処理”、［online］、インターネット〈URL：http://www.arm.com/ja/products/processors/technologies/biglittleprocessing.php〉
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１や非特許文献１のような関連する技術では、性能向上や低消費電力化のために複数のデータ処理装置（例えば半導体装置）を用いてデータ処理を行おうとすると、データ処理装置間におけるデータ処理の移行が困難であることを、本発明者は見出した。
【０００７】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
一実施の形態によれば、第１のデータ処理装置と第２のデータ処理装置とを備えている。第１のデータ処理装置は、入力データに対する第１の処理を実行する。第２のデータ処理装置は、第１のデータ処理装置から第１の処理を移行して実行し、第１の処理を移行する場合、第１のデータ処理装置へ入力される入力データをスヌープする。
【発明の効果】
【０００９】
前記一実施の形態によれば、データ処理の移行を容易に行うことができる。
【図面の簡単な説明】
【００１０】
【図１】参考例１の半導体装置の構成を示す構成図である。
【図２】参考例２のデータ処理システムの構成を示す構成図である。
【図３】実施の形態に係るデータ処理システムの構成例を示す構成図である。
【図４】実施の形態に係るデータ処理システムの他の構成例を示す構成図である。
【図５】実施の形態１に係るセンシングシステムの構成例を示す構成図である。
【図６】実施の形態１に係るセンシングデバイスのハードウェア構成例を示す構成図である。
【図７】実施の形態１に係るセンシングデバイスの機能構成例を示す構成図である。
【図８】実施の形態１に係るセンシングデバイスの動作例を示すフローチャート図である。
【図９】実施の形態１に係るセンシングデバイスの動作を説明するための説明図である。
【図１０】実施の形態１に係るセンシングデバイスの動作を説明するための説明図である。
【図１１】実施の形態２に係るセンシングデバイスの機能構成例を示す構成図である。
【図１２】実施の形態２に係るセンシングデバイスの動作例を示すフローチャート図である。
【図１３】実施の形態３に係るセンシングデバイスの動作を説明するための説明図である。
【発明を実施するための形態】
【００１１】
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、ＣＰＵ、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１２】
（実施の形態に至る検討）
高精度なセンシングアプリケーション(例えば、スポーツセンシング等)においては、実世界での現象をより詳細に把握する必要があるため、センシングデータの高レートでのサンプリングや、高い精度でのセンシングが必要であり、取り扱うデータが膨大となる。そのデータを全て、限られた通信帯域の中で外部に送信し、サーバやクラウドで処理することは、リアルタイム性に欠ける。そこで、実世界からのセンシングデータを受ける部分のなるべく近くに設置された処理装置の高性能化を行い、基本的にこの装置でデータ処理を行い、必要最小限のデータをクラウドに送信することが必要となる。
【００１３】
一方、このようなシーンでセンシングアプリケーションを使用するためには、使用する際の動作に影響を与えないために、センシングデバイスを小型かつ軽量とする必要があり、そのためには、バッテリが小さいことが必要となる。また、センシングアプリケーションにおいては、長時間使用する必要があるため、小型のバッテリで長時間使用する必要があり、システムの低消費電力が重要である。
【００１４】
そのため、センシングデバイスを構成する半導体装置において、高い処理能力と、低い消費電力を両立させなければならない。
【００１５】
その要求に対し、これまで、特許文献１や非特許文献１のような関連する技術が適用されてきた。これらの関連する技術では、高い処理能力と低い消費電力に対応するため、同一の半導体装置（半導体チップ）内において、性能と消費電力の異なる複数のＣＰＵ（処理装置）を用いている。例えば、これらの関連する技術では、閾値の異なるトランジスタを使用することも可能である。
【００１６】
図１は、関連する技術を適用した参考例１の半導体装置の構成を示している。図１に示すように、参考例１の半導体装置９００は、ＣＰＵ９０１及び９０２、キャッシュメモリ９０３及び９０４、共有メモリ９０５を備えている。ＣＰＵ９０１は、キャッシュメモリ９０３及び内部バス９０６を介して共有メモリ９０５に接続され、ＣＰＵ９０２は、キャッシュメモリ９０４及び内部バス９０６を介して共有メモリ９０５に接続されている。例えば、内部バスのビット幅は６４ビットであり、高速なアクセスが可能である。関連する半導体装置９００では、ＣＰＵ９０１とＣＰＵ９０２における性能と消費電力に差を設けて、最適なＣＰＵでデータ処理を実行することで、高い処理能力と低い消費電力を図ることができる。
【００１７】
しかし、参考例１の半導体装置９００では、複数のＣＰＵ（処理装置）を同一の半導体装置（半導体チップ）に実装するため、同じプロセスで半導体装置を製造しなくてはならず、低電力化には限界があるという問題がある。すなわち、高い処理性能を追求すると、リーク電流の大きいプロセスやトランジスタを使わなければならず、そのため消費電力が大きくなる。一方、リーク電流の小さいプロセスやトランジスタを使用した場合、処理能力を高くすることはできない。
【００１８】
そこで、上記問題を解決するため、複数のＣＰＵ（処理装置）を異なるプロセスで別の半導体装置へ実装する例が考えられる。図２は、そのような実装を適用した参考例２のデータ処理システムの構成を示している。図２に示すように、参考例２のデータ処理システム９１０は、ＣＰＵ９２１を含むＭＣＵ９２０、ＣＰＵ９３１を含むＭＣＵ９３０を備えており、ＣＰＵ９２１とＣＰＵ９３１は外部バス９１１を介して接続されている。例えば、ＣＰＵ９２１は、高い処理能力、かつ、高い消費電力で動作し、ＣＰＵ９３１は、低い処理能力、かつ、低い消費電力で動作する。
【００１９】
すなわち、参考例２では、異なるプロセスを使用することで、高い処理能力が必要な場合は、リーク電流の大きなプロセスのＣＰＵ９２１（処理装置）を使用する。一方、高い処理能力を必要としない場合は、リーク電流の小さなプロセスのＣＰＵ９３１（処理装置）を使用して、消費電力を下げるとともに、ＣＰＵ９２１（処理装置）の電源を遮断して、さらなる消費電力の低下を実現する。
【００２０】
しかしながら、参考例２のように実装をした場合、複数のＣＰＵ（処理装置）間でのタスクの連携、引継ぎが問題となる。つまり、参考例１の図１に示すように、同一の半導体装置内に複数のＣＰＵ（処理装置）を搭載していた場合は、帯域の広い内部バスで複数のＣＰＵ（処理装置）を接続させることが可能であり、タスクの連携、引継ぎは容易であった。ところが、参考例２では、ＣＰＵ（処理装置）は別の半導体装置に実装されているために、半導体装置のＩＯピン数の制約により、帯域の広いバスで接続することは不可能である。半導体装置外部との通信帯域は、バス幅や動作周波数の違いにより、半導体装置内部に比べ、１／１００以下となることもある。そのため、狭い通信路を用いたタスクの連携、引継ぎを実施しなければならない。もちろん、時間を掛ければ、タスクの切替（移行）は可能であるが、それでは、システムの求めるリアルタイム性は実現できない。
【００２１】
（実施の形態の概要）
上記問題を解決するため、以下の実施の形態ではデータスヌープ技術を適用する。
【００２２】
図３は、実施の形態に係るデータ処理システムの概要構成を示している。図３に示すように、実施の形態に係るデータ処理システム１は、データ処理装置２及び３を備えている。データ処理装置（第１のデータ処理装置、例えばＭＣＵ等の半導体装置）２は、入力データに対する処理（第１の処理、例えばタスク）を実行し、データ処理装置（第２のデータ処理装置）３は、入力データに対する処理をデータ処理装置２から移行して（引き継いで）実行する。さらに、データ処理装置３は、データ処理装置２から処理を移行する場合、データ処理装置２へ入力される入力データをスヌープすることを主要な特徴としている。
【００２３】
また、実施の形態に係るデータ処理システムを、図４のような構成により実現してもよい。図４の例では、データ処理システム１０は、半導体装置２０及び３０を備えている。半導体装置（第１の半導体装置）２０は、入力データに対する処理（第１の処理）を実行する処理部（例えばＣＰＵ）２１を備えている。半導体装置（第２の半導体装置）３０は、処理部（例えばＣＰＵ）３１とスヌープ部３２を備えている。スヌープ部３２は、半導体装置２０へ入力される入力データをスヌープし、処理部３１は、スヌープ部３２がスヌープした入力データに基づき、入力データに対する処理を半導体装置２０から移行して（引き継いで）実行する。例えば、半導体装置２０及び３０は、データ処理を実行するためのプロセッサとメモリ（揮発性メモリ、及び、不揮発性メモリ）を備えたＭＣＵでもよい。
【００２４】
このように、一方のデータ処理装置で他方のデータ処理装置のデータをスヌープすることにより、異なるデータ処理装置（半導体装置）でデータ処理を実行する場合でも、データ処理（タスク）の引継ぎ（連携）を容易に行うことができる。例えば、データ処理装置の処理能力と消費電力に差を設けることで、高い処理能力と、長い待機時間を両立でき、適用するアプリケーションが広がる。
【００２５】
（実施の形態１）
以下、図面を参照して実施の形態１について説明する。
【００２６】
＜システムの構成＞
実施の形態１に係るシステムとして、ここではセンシングシステムについて説明する。なお、センシングシステムは、デバイスに複数のＭＣＵ（半導体装置）を備えたシステムの一例であり、その他のシステムに本実施の形態を適用してもよい。
【００２７】
図５は、本実施の形態に係るセンシングシステムの一例を示している。図５に示すように、本実施の形態に係るセンシングシステム４００は、センシングデバイス１００と端末装置３００を備えている。センシングデバイス１００と端末装置３００は、例えばＢｌｕｅｔｏｏｔｈにより無線通信可能であるが、その他の方式により無線通信を行ってもよいし、任意の方式で有線通信を行ってもよい。
【００２８】
センシングデバイス１００は、例えばスマートウォッチなどの時計や活動量計であり、センシングしたデータを端末装置３００へ無線送信する無線通信装置である。センシングデバイス１００は、主な構成として、ＭＣＵ１１０及び１２０、センサ１３０、電源回路１４０を備えている。
【００２９】
センサ１３０は、センシングデバイスが必要とする情報を検出し、センシングデータを生成して、生成したデータをＭＣＵ１１０及び１２０へ出力する。例えば、センサ１３０は、加速度、角速度、地磁気を検出するセンサであるが、その他のセンサでもよい。例えば、温度、湿度、気圧、脈拍、圧力、光、音、煙、カメラ、赤外線、キーボード、マウス等のセンサであってもよく、これら任意のセンサの検出結果に応じて、後述のようにＭＣＵのタスクを移行してもよい。
【００３０】
ＭＣＵ（マイクロコンピュータ）１１０及び１２０は、センサ１３０が生成したセンシングデータを処理するデータ処理装置である。ＭＣＵ１１０及び１２０は、ＣＰＵ（プロセッサ）とメモリを備えた半導体装置である。また、いずれかのＭＣＵが端末装置３００と通信を行う。例えば、ＭＣＵ１１０が、端末装置とＢｌｕｅｔｏｏｔｈにより無線通信を行う。ＭＣＵ１１０は、ＭＣＵ１１０またはＭＣＵ１２０が処理したセンシングデータを端末装置３００へ送信する。
【００３１】
電源回路１４０は、例えば充電可能な電池であり、ＭＣＵ１１０及びＭＣＵ１３０へ電源を供給する。一方のＭＣＵの制御によって、電源回路１４０からの電源供給が制御され、他方のＭＣＵの電源をオン／オフする。
【００３２】
端末装置３００は、例えばスマートフォン、タブレット、ＰＣ（パーソナルコンピュータ）などであり、センシングデバイス１００からセンシングデータを受信し、データ処理を行うデータ処理端末（無線通信装置）である。端末装置３００は、センシングデータを処理し、さらにインターネット上のサーバやクラウドへ送信してもよい。
【００３３】
＜センシングデバイスのハードウェア構成＞
図６は、図５に示した本実施の形態に係るセンシングデバイス１００のハードウェアの構成例を示している。
【００３４】
図６に示すように、本実施の形態に係るセンシングデバイス１００は、ＭＣＵ（以下システムＭＣＵと呼ぶ）１１０、ＭＣＵ（以下アクセラレーションＭＣＵと呼ぶ）１２０、センサ（以下９Ｄセンサと呼ぶ）１３０、ＢＬＥ（Bluetooth Low Energy）アンテナ１５０を備えている。
【００３５】
なお、本実施の形態では、センシングデバイスは、１つのシステムＭＣＵと、１つのアクセラレーションＭＣＵを備えているが、これに限らず、１つのシステムＭＣＵと、複数のアクセラレーションＭＣＵを備えていてもよい。システムＭＣＵからアクセラレーションＭＣＵへタスクを移行する場合、１つのアクセラレーションＭＣＵで処理しきれないと判断した場合、起動するアクセラレーションＭＣＵの数を増やすことで、対応してもよい。複数のアクセラレーションＭＣＵの起動方法は、後述する１つのアクセラレーションＭＣＵの起動方法と同様である。
【００３６】
システムＭＣＵ（第１のＭＣＵ）１１０は、１３０ｎｍの製造プロセスにより製造され、（ＣＰＵ１１４の）最大動作周波数は３２ＭＨｚである。システムＭＣＵ１１０のスタンバイ時の消費電流は、０．２０μＡと極めて小さい。アクセラレーションＭＣＵ（第２のＭＣＵ）１２０は、４０ｎｍの製造プロセスにより製造され、（ＣＰＵ１２４の）最大動作周波数は２００ＭＨｚである。すなわち、製造プロセスと動作周波数の違いから、システムＭＣＵ１１０は、アクセラレーションＭＣＵ１２０よりも低い処理能力、かつ、低い消費電力という特徴があり、アクセラレーションＭＣＵ１２０は、システムＭＣＵ１１０よりも高い処理能力、かつ、高い消費電力という特徴がある。
【００３７】
システムＭＣＵ１１０とアクセラレーションＭＣＵ１２０は、性能に違いがあるものの基本的に同様な構成であり、同じデータ処理を実行可能である。例えば、システムＭＣＵ１１０とアクセラレーションＭＣＵ１２０は、同じ命令セットアーキテクチャのＭＣＵである。この場合、同じソフトウェアが使用できるため、タスク移行は容易となる。なお、システムＭＣＵ１１０とアクセラレーションＭＣＵ１２０を異なる命令セットアーキテクチャで構成してもよい。例えば、ＭＣＵ１１０（ＣＰＵ１１４）を単純な命令セットを実行するＲＩＳＣ（Reduce Instruction Set Computer）とし、ＭＣＵ１２０（ＣＰＵ１２４）を複雑な命令セットを実行するＣＩＣＳ（Complex Instruction Set Computer）としてもよい。この場合、高い処理能力と、長い待機時間を効果的に両立させることができる。
【００３８】
システムＭＣＵ１１０及びアクセラレーションＭＣＵ１２０は、それぞれ、不揮発性メモリ１１１及び１２１、揮発性メモリ１１２及び１２２、電力制御回路（パワーマネージメントユニット）１１３及び１２３、ＣＰＵ１１４及び１２４、割込制御回路（ＭＣＵ間割込）１１５及び１２５、ＵＡＲＴ（Universal Asynchronous Receiver Transmitter）インターフェース回路１１６及び１２６、Ｉ２Ｃインターフェース回路１１７及び１２７、タイマ１１８及び１２８を備えている。システムＭＣＵ１１０は、さらにＢＬＥ ＲＦ回路１１９を備えている。システムＭＣＵ１１０内の各構成は、内部バス１１０ａを介して接続され、アクセラレーションＭＣＵ１２０内の各構成は、内部バス１２０ａを介して接続されている。
【００３９】
揮発性メモリ１１２及び１２２は、ＣＰＵ１１４及び１２４で実行される演算のための中間データ等を格納する。揮発性メモリ１１２及び１２２は、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）等であり、電源オフにより記憶データが失われるメモリである。このため、ＭＣＵの電源オフ（あるいはスタンバイ）時に中間データ等を保持することができない。
【００４０】
不揮発性メモリ１１１及び１２１は、ＣＰＵ１１４及び１２４が実行するプログラムの命令コードや、センシングアプリケーションプログラムで使用する各種データやパラメータ（サンプリングのトリガや間隔等）の情報等を格納する。不揮発性メモリ１１１及び１２１は、フラッシュメモリ等であり、電源オフ（あるいはスタンバイ）により記憶データを失わないメモリである。このため、ＭＣＵの電源オフ時でも命令コードやパラメータ等を保持することができる。
【００４１】
ＣＰＵ１１４及び１２４は、システムＭＣＵ１１０及びアクセラレーションＭＣＵ１２０内の動作を制御する制御部である。ＣＰＵ１１４及び１２４は、不揮発性メモリ１１１及び１２１に格納された命令コードやパラメータ等に基づき、揮発性メモリ１１２及び１２２に中間データを格納しつつ、センシングアプリケーション（データ処理）を実行する。
【００４２】
電力制御回路１１３及び１２３は、ＣＰＵ１１４及び１２４からの指示に従って電源回路１４０からの電源供給を制御し、システムＭＣＵ１１０またはアクセラレーションＭＣＵ１２０の電源をオン／オフする。割込制御回路１１５及び１２５は、割込バス１０２を介して互いに接続されており、ＣＰＵ１１４及び１２４間の割込みを制御する。
【００４３】
ＵＡＲＴインターフェース回路１１６及び１２６は、ＵＡＲＴバス１０３を介して互いに接続されており、ＭＣＵ間（ＣＰＵ間）のデータ入出力を可能とする。Ｉ２Ｃインターフェース回路１１７及び１２７は、Ｉ２Ｃバス１０１を介して９Ｄセンサ１３０と接続され、Ｉ２Ｃインターフェース回路１１７及び１２７と９Ｄセンサ１３０間のデータ入出力を可能とする。
【００４４】
タイマ１１８及び１２８は、ＣＰＵ１１４及び１２４からの指示に従って動作するタイマである。例えば、タイマ１１８及び１２８は、センシングアプリケーションがセンサからセンシングデータを取得する間隔をカウントする。ＢＬＥ ＲＦ回路１１９は、ＢＬＥアンテナ１５０と接続され、ＢＬＥ規格にしたがって端末装置３００等と無線通信を行う。通信方式としてＢＬＥを使用することで、低消費電力で無線通信を行うことができる。センシングデバイス１００で処理されたデータは、ＢＬＥアンテナ１５０を介して（アクセラレーションＭＣＵ１２０のデータはシステムＭＣＵ１１０経由で）、端末装置３００（ＰＣ、スマートフォン、タブレット等）へ送信され、さらに端末装置３００で処理される。
【００４５】
９Ｄセンサ１３０は、加速度センサ１３１、角速度センサ１３２、地磁気センサ１３３、Ｉ２Ｃインターフェース回路１３４を備えている。加速度センサ１３１、角速度センサ１３２、地磁気センサ１３３は、それぞれ３軸（ＸＹＺ軸）方向に対する加速度、角速度、地磁気を検出する。このため、９Ｄセンサ１３０のセンシングデータは、３軸分の加速度データ、３軸分の角速度データ、３軸分の地磁気データの９種類のデータを含んでいる。加速度センサ１３１、角速度センサ１３２、地磁気センサ１３３は、例えば、センシングデータとしてデジタル信号を出力するデジタルセンサであるが、アナログ信号を出力するアナログセンサでもよい。Ｉ２Ｃインターフェース回路１３４は、Ｉ２Ｃバス１０１を介してシステムＭＣＵ１１０とアクセラレーションＭＣＵ１２０の両方に接続されている。Ｉ２Ｃインターフェース回路１３４は、システムＭＣＵ１１０またはアクセラレーションＭＣＵ１２０からの要求にしたがって、加速度センサ１３１、角速度センサ１３２または地磁気センサ１３３のいずれか、または全部のセンシングデータをＩ２Ｃバス１０１へ出力する。
【００４６】
＜ＭＣＵの機能ブロック構成＞
図７は、図６に示した本実施の形態に係るシステムＭＣＵ１１０及びアクセラレーションＭＣＵ１２０の機能ブロックの構成例を示している。なお、各ブロックは、図６のハードウェアで実現してもよいし、ソフトウェアをハードウェアで実行することで実現されてもよい。図７は、本実施の形態を実現するための機能ブロックの一例であり、後述の動作が可能であれば、その他の機能ブロックで構成されてもよい。
【００４７】
図７に示すように、システムＭＣＵ１１０及びアクセラレーションＭＣＵ１２０は、それぞれ、実行データ記憶部２０１及び２２１、中間データ記憶部２０２及び２２２、タスク２０５及び２２５、タスク管理部２０６及び２２６、センサ入出力部２０７、ＭＣＵ間入出力部２０８及び２２８を備えている。システムＭＣＵ１１０は、さらにタスク移行判断部２０４、無線通信部２１１を備えている。アクセラレーションＭＣＵ１２０は、さらにスヌープ部２３０を備えている。
【００４８】
実行データ記憶部２０１及び２２１は、命令コードやパラメータ等、データ処理の実行に必要な実行データを記憶する記憶部であり、例えば、不揮発性メモリ１１１及び１２１に相当する。中間データ記憶部２０２及び２２２は、アプリケーションの演算で使用される中間データを記憶する記憶部であり、例えば、揮発性メモリ１１２及び１２２に相当する。
【００４９】
タスク２０５及び２２５は、それぞれアプリケーション（センシングアプリケーションプログラム）２０９及び２２９を実行する処理部であり、例えば、ＣＰＵ１１４及び１２４がプログラムを実行することで実現される。なお、本実施の形態では、センシングアプリケーションを実行する例について説明するが、その他、２つのＭＣＵが入力データを処理し、処理されたデータを出力するアプリケーションでもよい。また、本実施の形態ではアプリケーションによるデータ処理の単位を、タスクとして説明するが、その他、プロセスやスレッドを単位としてデータ処理を実行してもよい。タスク管理部２０６及び２２６は、それぞれタスク２０５及び２２５の実行や移行を制御する管理部（制御部）であり、例えば、ＣＰＵ１１４及び１２４がプログラムを実行することで実現される。システムＭＣＵ１１２０のタスク管理部２０６は、タスク移行判断部２０４の判断結果に応じて、タスク２０５の移行を制御する。
【００５０】
センサ入出力部２０７及び２２７は、それぞれ９Ｄセンサ１３０との間でセンシングデータの入出力を行う入出力部であり、例えば、Ｉ２Ｃインターフェース回路１１７及び１２７に相当する。ＭＣＵ間入出力部２０８及び２２８は、ＭＣＵ間でデータの入出力を行う入出力部であり、例えば、ＵＡＲＴインターフェース回路１１６及び１２６に相当する。
【００５１】
タスク移行判断部２０４は、ＭＣＵ間でタスク移行を行うか否か判断する判断部であり、例えば、ＣＰＵ１１４及び１２４がプログラムを実行することで実現される。本実施の形態では、システムＭＣＵ１１０からアクセラレーションＭＣＵ１２０へのタスクの移行を判断する。無線通信部２１１は、タスク２０５やタスク２２５の処理結果を端末装置３００へ無線送信する通信であり、例えば、ＢＬＥ ＲＦ回路１１９に相当する。
【００５２】
スヌープ部２３０は、タスクの移行時、９Ｄセンサ１３０からシステムＭＣＵ１１０へ出力されるセンシングデータをスヌープする。例えば、ＣＰＵ１２４がプログラムを実行することで実現される。
【００５３】
＜タスク移行動作＞
センシングアプリケーションにおいては、動作時間に比べて待機時間が長い。このため、スタンバイ時、あるいは、ＣＰＵでの処理が軽い場合は、アクセラレーションＭＣＵ１２０の電源をオフにして、システムＭＣＵ１１０のみで動作をさせることにより、消費電力を低下させる。一方、ＣＰＵでの重い処理が必要になった場合には、アクセラレーションＭＣＵ１２０の電源をオンにして、システムＭＣＵ１１０からアクセラレーションＭＣＵへ処理を移行させる。
【００５４】
図８は、システムＭＣＵ１１０からアクセラレーションＭＣＵ１２０へのタスク移行動作を示すフローチャートである。
【００５５】
本実施の形態では、システムＭＣＵ１１０がタスク移行を主導するため、まず、システムＭＣＵ１１０（例えばタスク移行判断部２０４）は、タスク移行のトリガがあるか否か判定する（Ｓ１００）。このタスク移行のトリガは、センシングアプリケーションが判断してもよい。具体例としては、９Ｄセンサ１３０から入力データを定期的に取得し、取得した入力データ（加速度データ等）に基づいて、センシングデバイス１００が静止状態から動作状態へ移行したことを認識した場合、または、センシングデバイス１００が低速移動から高速移動へ移行したことを認識し、サンプリングレートを上げる（所定のサンプリングレートよりも高いサンプリングレート）必要があると判断した場合、などが挙げられる。
【００５６】
なお、その他の条件をタスク移行のトリガとしてもよい。例えば、使用するセンサの増加をトリガとしてもよい。具体的には、加速度センサ１３１のみを用いていた状態から、加速度センサ１３１、角速度センサ１３２、地磁気センサ１３３の全てを使用するとアプリケーションが判断した場合、タスクをシステムＭＣＵ１１０からアクセラレーションＭＣＵ１２０へ移行させる。また、ＣＰＵのワークロード（負荷）をトリガとしてもよい。具体的には、システムＭＣＵ１１０のＣＰＵ１１４のワークロードを定期的に計測し、一定のレベル（例えば、８０％）以上となった場合、タスクをシステムＭＣＵ１１０からアクセラレーションＭＣＵ１２０へ移行させてもよい。さらに、温度センサを備え、温度センサからの入力をトリガとしてもよい。具体的には、システムＭＣＵ１１０の温度を定期的に計測し、一定のレベル（例えば、３０℃）以上となった場合、タスクをシステムＭＣＵ１１０からアクセラレーションＭＣＵ１２０へ移行してもよい。すなわち、例えば、高い処理能力が必要となった場合にタスクを移行すると判断する。これにより処理等に応じて高い性能で処理を行うことができる。
【００５７】
タスク移行のトリガがない（移行条件を満たさない）場合、システムＭＣＵ１１０は、タスク移行のトリガの判定を繰り返す。また、タスク移行のトリガがある（移行条件を満たす）場合、システムＭＣＵ１１０（例えばタスク管理部２０６）は、アクセラレーションＭＣＵ１２０へ割込を入れ、アクセラレーションＭＣＵ１２０を起動する（Ｓ１０１）。そうすると、アクセラレーションＭＣＵ１２０（例えばスヌープ部２３０）は、システムＭＣＵ１１０へ入力されるセンシングデータをスヌーピングし、アクセラレーションＭＣＵ１２０（中間データ記憶部２２２）の中間データの有効化を開始する（Ｓ１０２）。
【００５８】
次に、アクセラレーションＭＣＵ１２０（例えばタスク管理部２２６）は、スヌーピングの結果、全ての中間データの有効化が完了したか否か判定する（Ｓ１０３）。全ての中間データの有効化が完了していない場合、アクセラレーションＭＣＵ１２０は、全ての中間データの有効化が完了するまでスヌーピングを続ける。
【００５９】
全ての中間データの有効化が完了した場合、アクセラレーションＭＣＵ１２０（例えばタスク管理部２２６）は、システムＭＣＵ１１０へ割込を入れ、システムＭＣＵ１１０（例えばタスク管理部２０６）は実行されていた処理（タスク２０５）を中止する（Ｓ１０４）。さらに、アクセラレーションＭＣＵ１２０は、単独での処理（タスク２２５）を開始する（Ｓ１０５）。
【００６０】
図９は、システムＭＣＵ１１０からアクセラレーションＭＣＵ１２０へのタスク移行動作を模式的に示しており、図１０は、タスク移行時のデータスヌーピング動作を示している。
【００６１】
図９では、ステップ１において、負荷が低い状態であるため、アクセラレーションＭＣＵ１２０は電源オフ、システムＭＣＵ１１０はアクティブ状態である。そして、システムＭＣＵ１１０がタスクの移行を判断すると、システムＭＣＵ１１０からアクセラレーションＭＣＵ１２０へ割込を入れ、アクセラレーションＭＣＵ１２０を起動する。
【００６２】
アクセラレーションＭＣＵ１２０の起動直後は、揮発性メモリ（ＳＲＡＭ）１２２に保持されるべき中間データ及びキャッシュデータは無効であるため、システムＭＣＵ１１０の処理を引き継ぐことはできない。そこで、ステップ２において、システムＭＣＵ１１０からアクセラレーションＭＣＵ１２０へ処理を引き継ぐために、データスヌープを行う。
【００６３】
例えば、図１０に示すように、システムＭＣＵ１１０及びアクセラレーションＭＣＵ１２０は、Ｉ２Ｃ制御線１０１ａ及びＩ２Ｃデータ線１０１ｂを介して、９Ｄセンサ１３０に接続されている。Ｉ２Ｃバスに接続された２つのＭＣＵのうち、システムＭＣＵ１１０側からのみＩ２Ｃ制御線１０１ａに対して命令を発行し、アクセラレーションＭＣＵ１２０は命令を発行しない。そうすると、９Ｄセンサ１３０は、Ｉ２Ｃデータ線１０１ｂにセンシングデータを出力する。システムＭＣＵ１１０は、サンプリングレートにしたがった間隔で、命令を発行し、９Ｄセンサ１３０はこの間隔でセンシングデータを出力する。この間隔で出力されるＩ２Ｃデータ線１０１ｂ上のセンシングデータを、システムＭＣＵ１１０が受取るのと同時に、アクセラレーションＭＣＵ１２０でも受取る(スヌープする)。つまり、アクセラレーションＭＣＵ１２０は、システムＭＣＵ１１０と同じサンプリングレートの間隔で、Ｉ２Ｃデータ線１０１ｂを監視し、システムＭＣＵ１１０と同じサンプリングデータを取得する。このスヌーピングでは、アクセラレーションＭＣＵ１２０起動後、数回のサンプリングの間は、システムＭＣＵ１１０でデータ処理を継続する。その間、アクセラレーションＭＣＵ１２０は、センシングデータをスヌープして、システムＭＣＵ１１０と同じデータ処理を行うことで中間データを有効化する。
【００６４】
このスヌーピングにより全ての中間データが有効になったとアクセラレーションＭＣＵ１２０が判断すると、図９のステップ３のように、アクセラレーションＭＣＵ１２０はシステムＭＣＵ１１０へ割込を入れ、システムＭＣＵ１１０側での処理を終了させるとともに、アクセラレーションＭＣＵ１２０単独での処理を開始する。システムＭＣＵ１１０での処理が不要な場合は、システムＭＣＵ１１０をスタンバイ状態とすることができる。
【００６５】
＜本実施の形態の効果＞
以上のように、本実施の形態では、システムＭＣＵでの処理を中断することなく、アクセラレーションＭＣＵの中間データを有効化できる。そのため、スムーズな（絶え間ない、連続的な）処理の引継ぎが可能となる。
また、センシングアプリケーションにデータスヌープ技術を適用することで、所定の期間にタスクの移行を完了することができる。センシングアプリケーションの特徴として、以下を挙げることができる。
・データの流れが一方的である。具体的には、センサから入力されてデータはＭＣＵで処理され、その結果は通信機能を使用して、外部に出力される。そのため、センサからのリードデータのみをスヌープすれば、ＭＣＵ内の中間データを有効化できる。
・有限回の定期的なスヌープで中間データを有効化できる。具体的には、センシングアプリケーションで使用するフィルタ処理の場合、数回程度のサンプリングでデータのセットが完了するため、少ないデータ量で、すなわち、短い移行時間でタスクの移行が完了できる。
【００６６】
このように、本実施の形態では、センシングアプリケーションの特徴である、数回のセンシングデータの取得で、中間データを作成可能であるという点に着目し、その特徴を用いることで、少ないデータ帯域でも数回のセンシングデータのスヌープで、タスクの引継ぎが可能となる。
【００６７】
（実施の形態２）
以下、図面を参照して実施の形態２について説明する。上記実施の形態１では、システムＭＣＵからアクセラレーションＭＣＵへタスク移行を行う例について説明したが、実施の形態２では、アクセラレーションＭＣＵからシステムＭＣＵへタスク移行を行う例について説明する。なお、本実施の形態に係るセンシングデバイスのハードウェア構成は、実施の形態１と同様である。
【００６８】
図１１は、本実施の形態に係るシステムＭＣＵ１１０及びアクセラレーションＭＣＵ１２０の機能ブロックの構成例を示している。本実施の形態では、システムＭＣＵ１１０は、実施の形態１の構成に加えて、スヌープ部２１０を備えており、アクセラレーションＭＣＵ１２０は、実施の形態１の構成に加えて、タスク移行判断部２２４を備えている。
【００６９】
すなわち、本実施の形態では、アクセラレーションＭＣＵ１２０からシステムＭＣＵ１１０へのタスク移行を実現するため、アクセラレーションＭＣＵ１２０のタスク移行判断部２２４は、システムＭＣＵ１１０のタスク移行判断部２０４と同様に、ＭＣＵ間でタスク移行を行うか否か判断する。また、システムＭＣＵ１１０のスヌープ部２１０は、アクセラレーションＭＣＵ１２０のスヌープ部２３０と同様に、タスクの移行時、９Ｄセンサ１３０からアクセラレーションＭＣＵ１２０へ出力されるセンシングデータをスヌープする。
【００７０】
図１２は、アクセラレーションＭＣＵ１２０からシステムＭＣＵ１１０へのタスク移行動作を示すフローチャートである。
【００７１】
本実施の形態では、アクセラレーションＭＣＵ１２０がタスク移行を主導するため、まず、アクセラレーションＭＣＵ１２０は、タスク移行のトリガがあるか否か判定する（Ｓ１１０）。このタスク移行のトリガは、実施の形態１と同様にアプリケーションが判断してもよい。具体的には、９Ｄセンサ１３０からの入力情報により、センシングデバイス１００が動作状態から静止状態へ移行したことを認識した場合、または、センシングデバイス１００が高速移動から低速移動へ移行したことを認識し、サンプリングレートを下げ（所定のサンプリングレートよりも低いサンプリングレート）、消費電力を下げられると判断した場合、などが挙げられる。また、実施の形態１と同様に、使用するセンサの減少をトリガとしてもよいし、ＣＰＵのワークロードの低下をトリガとしてもよい。すなわち、例えば低い消費電力（低い処理能力）による処理が可能となった場合にタスクを移行すると判断する。これにより処理等に応じて低い消費電力で処理を行うことができる。
【００７２】
アクセラレーションＭＣＵ１２０がタスクの移行を判断すると、アクセラレーションＭＣＵ１２０からシステムＭＣＵ１１０へ割込を入れ、システムＭＣＵ１１０を起動する（Ｓ１１１）。そうすると、実施の形態１と同様に、アクセラレーションＭＣＵ１２０からシステムＭＣＵ１１０へ処理を引き継ぐために、システムＭＣＵ１１０は、アクセラレーションＭＣＵ１２０のデータをスヌーピングし、システムＭＣＵ１１０の中間データの有効化を開始する（Ｓ１１２）。
【００７３】
次に、全ての中間データが有効になったとシステムＭＣＵ１１０が判断すると、システムＭＣＵ１１０はアクセラレーションＭＣＵ１２０へ割込を入れ、アクセラレーションＭＣＵ１２０側での処理を中止する（Ｓ１１４）。さらに、システムＭＣＵ１１０は、アクセラレーションＭＣＵ１２０の電源をオフにするとともに、システムＭＣＵ１１０単独での処理を開始する（Ｓ１１５）。
【００７４】
以上のように、実施の形態１のタスク移行方法をアクセラレーションＭＣＵからシステムＭＣＵへのタスク移行に適用した場合でも、実施の形態１と同様にタスク移行を容易に行うことができる。また、アクセラレーションＭＣＵで処理を行っている場合に、状況に応じてシステムＭＣＵへタスクを移行し、アクセラレーションＭＣＵの電源をオフすることで、消費電力を低減することができる。
【００７５】
（実施の形態３）
以下、図面を参照して実施の形態３について説明する。上記実施の形態１では、システムＭＣＵで動作している１つのタスクをアクセラレーションＭＣＵへ移行させる例について説明したが、本実施の形態では、システムＭＣＵで動作している２つのタスクのうち、１つのタスクをアクセラレーションＭＣＵへ移行させる例について説明する。なお、実施の形態２のように、アクセラレーションＭＣＵからシステムＭＣＵへタスク移行する場合にも同様に本実施の形態を適用可能である。
【００７６】
ハードウェア構成や機能ブロック構成、基本的なタスク移行動作は実施の形態１と同様である。すなわち、移行対象となるタスクに関する動作は、実施の形態１と同じであり、一方、移行対象とならないタスクに関しては、タスク移行を行わず、システムＭＣＵ上でそのまま動作し続ける。
【００７７】
図１３は、本実施の形態に係るタスク移行動作の一例を示している。図１３では、ステップ１のタスク移行前において、システムＭＣＵ１１０で２つのタスクＡ及びＢを実行している。次に、ステップ２のタスク移行時、システムＭＣＵ１１０からアクセラレーションＭＣＵ１２０へタスクＡのみを移行する。例えば、タスク移行のトリガとして、負荷などに基づいて、一部のタスクを移行するかどうか判断する。次に、ステップ３のタスク移行完了後は、アクセラレーションＭＣＵ１２０でタスクＡのみを実行し、システムＭＣＵ１１０でタスクＢのみを実行する。
【００７８】
このように、タスク移行時に一部のタスク（処理）のみを移行することで、ＭＣＵの性能やタスクの処理に応じて、必要なタスクのみを移行でき、最適にタスク移行を行うことができる。
【００７９】
また、上述したプログラム（アプリケーション）は、様々なタイプの非一時的なコンピュータ可読媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００８０】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【００８１】
１、１０  データ処理システム
２、３    データ処理装置
２０、３０  半導体装置
２１、３１  処理部
３２      スヌープ部
１００    センシングデバイス
１０１    Ｉ２Ｃバス
１０１ａ  Ｉ２Ｃ制御線
１０１ｂ  Ｉ２Ｃデータ線
１０２    割込バス
１０３    ＵＡＲＴバス
１１０    ＭＣＵ（システムＭＣＵ）
１１０ａ、１２０ａ  内部バス
１１１、１２１  不揮発性メモリ
１１２、１２２  揮発性メモリ
１１３、１２３  電力制御回路
１１４、１２４  ＣＰＵ
１１５、１２５  割込制御回路
１１６、１２６  ＵＡＲＴインターフェース回路
１１７、１２７  Ｉ２Ｃインターフェース回路
１１８、１２８  タイマ
１１９    ＢＬＥ ＲＦ回路
１２０    ＭＣＵ（アクセラレーションＭＣＵ）
１３０    センサ（９Ｄセンサ）
１３１    加速度センサ
１３２    角速度センサ
１３３    地磁気センサ
１３４    Ｉ２Ｃインターフェース回路
１４０    電源回路
１５０    ＢＬＥアンテナ
２０１、２２１  実行データ記憶部
２０２、２２２  中間データ記憶部
２０４、２２４  タスク移行判断部
２０５、２２５  タスク
２０６、２２６  タスク管理部
２０７、２２７  センサ入出力部
２０８、２２８  ＭＣＵ間入出力部
２０９、２２９  アプリケーション
２１０、２３０  スヌープ部
２１１    無線通信部
３００    端末装置
４００    センシングシステム
【図１】
2018101256.tif 000003
【図２】
2018101256.tif 000004
【図３】
2018101256.tif 000005
【図４】
2018101256.tif 000006
【図５】
2018101256.tif 000007
【図６】
2018101256.tif 000008
【図７】
2018101256.tif 000009
【図８】
2018101256.tif 000010
【図９】
2018101256.tif 000011
【図１０】
2018101256.tif 000012
【図１１】
2018101256.tif 000013
【図１２】
2018101256.tif 000014
【図１３】
2018101256.tif 000015