(57)【要約】 【課題】電力効率を向上させることが可能な情報処理装置、半導体チップ、情報処理方法およびプログラムを提供する。【解決手段】実施形態の情報処理装置は、データ取得部とデータ保存制御部とを備える。データ取得部は、センサにより検出されたデータを取得する。データ保存制御部は、データ取得部がデータを取得する間隔を示すサンプリング間隔が閾値以下の場合は、データ取得部が取得したデータを揮発性の第１メモリに保存し、サンプリング間隔が閾値を超える場合は、データ取得部が取得したデータと、第１メモリに保存されたデータとを不揮発性の第２メモリに保存する制御を行う。【選択図】図３
2015176158.tif 000002
【特許請求の範囲】
【請求項１】
センサにより検出されたデータを取得するデータ取得部と、
前記データ取得部が前記データを取得する間隔を示すサンプリング間隔が閾値以下の場合は、前記データ取得部が取得した前記データを揮発性の第１メモリに保存し、前記サンプリング間隔が前記閾値を超える場合は、前記データ取得部が取得した前記データと、前記第１メモリに保存されている前記データとを不揮発性の第２メモリに保存する制御を行うデータ保存制御部と、を備える、
情報処理装置。
【請求項２】
前記データ取得部が取得した前記データに応じて、前記サンプリング間隔を設定する設定部をさらに備える、
請求項１に記載の情報処理装置。
【請求項３】
前記データ取得部が前記データを取得するたびに、そのときの時刻を取得する時刻取得部と、
前記時刻取得部が取得した最新の時刻と、その直前の時刻との差分から前記サンプリング間隔を算出する算出部と、をさらに備える、
請求項１に記載の情報処理装置。
【請求項４】
前記サンプリング間隔を変更する命令を受信する受信部と、
前記受信部で受信した前記命令に応じて、前記サンプリング間隔を設定する設定部と、をさらに備える、
請求項１に記載の情報処理装置。
【請求項５】
センサにより検出されたデータを取得するデータ取得部と、
前記データ取得部が前記データを取得する間隔を示すサンプリング間隔が閾値以下の場合は、前記データ取得部が取得した前記データを揮発性の第１メモリに保存し、前記サンプリング間隔が前記閾値を超える場合は、前記データ取得部が取得した前記データと、前記第１メモリに保存された前記データとを不揮発性の第２メモリに保存する制御を行うデータ保存制御部と、を備える、
半導体チップ。
【請求項６】
センサにより検出されたデータを取得するデータ取得ステップと、
前記データ取得ステップが前記データを取得する間隔を示すサンプリング間隔が閾値以下の場合は、前記データ取得ステップが取得した前記データを揮発性の第１メモリに保存し、前記サンプリング間隔が前記閾値を超える場合は、前記データ取得ステップが取得した前記データと、前記第１メモリに保存された前記データとを不揮発性の第２メモリに保存する制御を行うデータ保存制御ステップと、を含む、
情報処理方法。
【請求項７】
コンピュータを、
センサにより検出されたデータを取得するデータ取得手段と、
前記データ取得手段が前記データを取得する間隔を示すサンプリング間隔が閾値以下の場合は、前記データ取得手段が取得した前記データを揮発性の第１メモリに保存し、前記サンプリング間隔が前記閾値を超える場合は、前記データ取得手段が取得した前記データと、前記第１メモリに保存された前記データとを不揮発性の第２メモリに保存する制御を行うデータ保存制御手段として機能させる、
プログラム。
【請求項８】
センサにより検出されたデータを取得するデータ取得部と、
次に遷移する省電力モードが、揮発性の第１メモリが前記データを保持可能な状態を示す第１省電力モードの場合は、前記データ取得部が取得した前記データを前記第１メモリに保存し、次に遷移する省電力モードが、前記第１メモリが前記データを保持できない状態を示す第２省電力モードの場合は、前記データ取得部が取得したデータと、前記第１メモリに保存されている前記データとを不揮発性の第２メモリに保存する制御を行うデータ保存制御部と、を備える、
情報処理装置。
【請求項９】
センサにより検出されたデータを取得するデータ取得部と、
次に遷移する省電力モードが、揮発性の第１メモリが前記データを保持可能な状態を示す第１省電力モードの場合は、前記データ取得部が取得した前記データを前記第１メモリに保存し、次に遷移する省電力モードが、前記第１メモリが前記データを保持できない状態を示す第２省電力モードの場合は、前記データ取得部が取得したデータと、前記第１メモリに保存されている前記データとを不揮発性の第２メモリに保存する制御を行うデータ保存制御部と、を備える、
半導体チップ。
【請求項１０】
センサにより検出されたデータを取得するデータ取得ステップと、
次に遷移する省電力モードが、揮発性の第１メモリが前記データを保持可能な状態を示す第１省電力モードの場合は、前記データ取得ステップが取得した前記データを前記第１メモリに保存し、次に遷移する省電力モードが、前記第１メモリが前記データを保持できない状態を示す第２省電力モードの場合は、前記データ取得ステップが取得したデータと、前記第１メモリに保存されている前記データとを不揮発性の第２メモリに保存する制御を行うデータ保存制御ステップと、を含む、
情報処理方法。
【請求項１１】
コンピュータを、
センサにより検出されたデータを取得するデータ取得手段と、
次に遷移する省電力モードが、揮発性の第１メモリが前記データを保持可能な状態を示す第１省電力モードの場合は、前記データ取得手段が取得した前記データを前記第１メモリに保存し、次に遷移する省電力モードが、前記第１メモリが前記データを保持できない状態を示す第２省電力モードの場合は、前記データ取得手段が取得したデータと、前記第１メモリに保存されている前記データとを不揮発性の第２メモリに保存する制御を行うデータ保存制御手段として機能させる、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、情報処理装置、半導体チップ、情報処理方法およびプログラムに関する。
【背景技術】
【０００２】
従来、センサにより検出された温度、湿度、加速度などを示すデータを処理する計算機が知られている。また、センサでデータを取得する間隔を示すサンプリング間隔は、相対的に長い場合と短い場合とがあり、状況に応じてサンプリング間隔を変化させる技術が従来から知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−２３４６２２号公報
【特許文献２】特許第５０１３２７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来は、センサにより検出されたデータを失わないように、当該データを不揮発性のメモリに保存することが多い。その際、センサからデータを取得するたびに、その取得したデータを不揮発性のメモリに書き込んでいては、細かい粒度の書き込みが多く発生する。
【課題を解決するための手段】
【０００５】
実施形態の情報処理装置は、データ取得部とデータ保存制御部とを備える。データ取得部は、センサにより検出されたデータを取得する。データ保存制御部は、データ取得部がデータを取得する間隔を示すサンプリング間隔が閾値以下の場合は、データ取得部が取得したデータを揮発性の第１メモリに保存し、サンプリング間隔が閾値を超える場合は、データ取得部が取得したデータと、第１メモリに保存されたデータとを不揮発性の第２メモリに保存する制御を行う。
【図面の簡単な説明】
【０００６】
【図１】第１実施形態のセンサ付き端末の構成の一例を示す図。
【図２】第１実施形態のＰＭＩＣの構成の一例を示す図。
【図３】第１実施形態のプログラムの構成の一例を示す図。
【図４】第１実施形態のプログラムによる処理の一例を示す図。
【図５】第１実施形態の具体例を説明するための図。
【図６】第２実施形態のプログラムの構成の一例を示す図。
【図７】第２実施形態のプログラムによる処理の一例を示す図。
【図８】第２実施形態の具体例を説明するための図。
【図９】第３実施形態のプログラムの構成の一例を示す図。
【図１０】第３実施形態のサンプリング間隔変更命令の受信の仕方を示す図。
【図１１】第３実施形態のプログラムによる処理の一例を示す図。
【図１２】第３実施形態のプログラムによる処理の一例を示す図。
【発明を実施するための形態】
【０００７】
以下、添付図面を参照しながら、本発明に係る情報処理装置、半導体チップ、情報処理方法およびプログラムの実施形態を詳細に説明する。
【０００８】
（第１実施形態）
図１は、本実施形態のセンサ付き端末１のハードウェア構成の一例を示す図である。図１に示すように、センサ付き端末１は、マイコン１００と、電源装置２００と、ＰＭＩＣ３００と、１以上（図１の例では３つ）のセンサデバイス４００と、不揮発メモリ５００と、ネットワークデバイス６００とを備えるが、この構成に限定されるものではない。この例では、センサデバイス４００は、請求項の「センサ」に対応していると考えることができる。また、センサ付き端末１は、図１の破線（１）で示すように装置外部の電源装置２００を利用する形態でもよい。さらに、センサ付き端末１は、図１の破線（２）で示すように装置外部のセンサデバイス４００のデータを処理する形態でもよい。また、図示は省略するが、不揮発メモリ５００やネットワークデバイス６００として、装置外部のデバイスを用いる形態でもよい。
【０００９】
まず、マイコン１００について説明する。マイコン１００は、センサデバイス４００により検出されたデータの計算処理や端末全体の制御などを行う。図１の例では、マイコン１００は、内部モジュールとして、プロセッサコア１０１、揮発性のメモリであるＳＲＡＭ１０２、不揮発性のメモリであるフラッシュメモリ（フラッシュメモリに限られずＦｅＲＡＭやＭＲＡＭなどの不揮発性のメモリであってもよい）１０３、内部モジュール間のデータの送受信を行うバス１０４、タイマ１０５、各センサデバイス４００とのデータ送受信に用いられるＩ２Ｃ、ＳＰＩ、ＵＡＲＴ、ＧＰＩＯなどのシリアルバスコントローラ１０６、不揮発メモリ５００を制御する外部メモリコントローラ１０７、ネットワークデバイス６００を制御するネットワークコントローラ１０８、Ａ／Ｄコンバータ１０９、コンパレータ１１０、割込みコントローラ１１１などを有する。なお、これらのうちの一部が内蔵されない形態であってもよい。例えば本実施形態においては、コンパレータ１１０が内蔵されない構成であってもよい。
【００１０】
なお、本実施形態では、マイコン１００は、複数の半導体素子（半導体部品）が１枚のシリコンダイに集積された１チップのＩＣ（半導体集積回路）で構成されているが、これに限られるものではなく、例えばマイコン１００を構成する複数の半導体部品が、複数のシリコンダイに分散される形態であってもよい。
【００１１】
マイコン１００は、消費電力を抑えるための省電力モードを備えている。この例では、プロセッサコア１０１の状態として、命令（プログラム）を実行するラン状態と、タイマ１０５などからの割込みを待っているアイドル状態（何も命令を実行しない状態）とがあり、アイドル状態の場合は、省電力モードに遷移することで消費電力を抑えることができる。省電力モードには、プロセッサコア１０１がＷＦＩ（Ｗａｉｔ  Ｆｏｒ  Ｉｎｔｅｒｒｕｐｔ命令）を実行することで遷移する。省電力モードとしては、複数種類のモードがあり、より多くの機能を停止させることにより消費電力を小さくすることができる。例えば、プロセッサコア１０１へのクロック供給を停止して消費電力を抑えるＳＬＥＥＰモードや、更に消費電力を抑えるためにプロセッサコア１０１を停止させたり、内蔵のＳＲＡＭ１０２への電力供給を停止したり、電圧を低く抑えたりするなどし、割込みにて復帰できる最低限の機能のみを有効にしておくことで消費電力を低く抑えるＤＥＥＰ  ＳＬＥＥＰモードなどがある。ＷＦＩ命令を実行した際に遷移する省電力モードの指定は、プロセッサコア１０１が、専用の制御レジスタ（不図示）に対して、対応する値を設定することで行う。また、省電力モードからの復帰（命令を実行可能な状態への復帰）は、割込みコントローラ１１１が、割込み信号（割込み処理の実行を要求する信号であると考えることもできる）を受信した際に行われる。
【００１２】
割込み信号は、例えば、タイマ１０５、Ａ／Ｄコンバータ１０９、コンパレータ１１０、シリアルバスコントローラ１０６などが生成し、割込みコントローラ１１１に送る。タイマ１０５は、設定した時刻に到達すると割込み信号を生成することができる。Ａ／Ｄコンバータ１０９は、例えば入力されたアナログデータのデジタルデータへの変換が終了した時点で割込み信号を生成することができる。コンパレータ１１０は、入力された値が閾値よりも大きい場合、または小さい場合に割込み信号を生成することができる。シリアルバスコントローラ１０６は、入力された値が指定した値(ＨＩＧＨもしくはＬＯＷ)の場合、もしくは、指定した値に変更された場合(ＨＩＧＨからＬＯＷに変わった場合、またはＬＯＥからＨＩＧＨに変わった場合)に割込み信号を生成することができる。
【００１３】
割込みコントローラ１１１は、受信した割込み信号に対応する割込みベクタを内部のレジスタに設定し、プロセッサコア１０１に対して、割込みの発生を通知する。この通知を受けたプロセッサコア１０１は、省電力モードから復帰し、割込みコントローラ１１１のレジスタを参照して割込みベクタの値を取得し、取得した割込みベクタに対応する割込みハンドラ（プログラム）を実行する。なお、マイコン１００は、割込みハンドラの実行を終了すると、自動的に省電力モードに遷移する形態であってもよい。
【００１４】
次に、電源装置２００について説明する。電源装置２００としては、例えば、アルカリマンガン電池などの一次電池やニッケル水素電池などの二次電池、または、エナジーハーベスト装置などの発電装置と蓄電装置の組合せなど、さまざまな種類のものを用いることができる。エナジーハーベスト装置の一例としては、光エネルギーを利用する太陽電池や、熱エネルギーや振動エネルギーを利用する環境発電装置などが挙げられる。エナジーハーベスト装置の発電する電力のみではセンサ付き端末１の動作のピーク時の消費電力を得ることができない場合には、消費電力が少ない間に余剰電力を蓄電装置に蓄電しておき、ピーク時の電力を賄うこともできる。このような電力の利用方法をピークアシストとも呼ぶ。蓄電装置としては、電気２重層キャパシタやリチウムイオンキャパシタなどの大容量キャパシタ、又はリチウムイオン電池などのバッテリなどを用いることができる。なお、蓄電装置として、大容量キャパシタ及びバッテリの両方を組み合わせて用いてもよい。またＡＣ電源が利用できる場合は、電池の代わりにＡＣ電源を利用してもよい。
【００１５】
次に、ＰＭＩＣ（Power  Management  IC）３００について説明する。ＰＭＩＣ３００は、電源装置２００から供給される電力を、マイコン１００、センサデバイス４００、不揮発メモリ５００、ネットワークデバイス６００などの各部の必要な電圧に変換して各部に供給する。図２は、ＰＭＩＣ３００の構成の一例を示す図である。ＰＭＩＣ３００は、複数のスイッチングレギュレータやリニアレギュレータなどの様々な方式のレギュレータを１つ以上内蔵しており、電源装置２００から供給される電圧を、それぞれの電源ライン毎の電圧に変換する。ＰＭＩＣ３００は、電源ライン毎に設定すべき出力電圧を示す情報を格納する制御レジスタを内蔵しており、それぞれの電源ラインのレギュレータの出力電圧は、対応する制御レジスタで設定することができる。また、ＰＭＩＣ３００は、マイコン１００から、センサ付き端末１（またはマイコン１００）のモード（状態）を知らせるためのＳＴＢＹ信号を受信した際の各電源ラインのレギュレータの出力電圧および電力供給のＯＮ／ＯＦＦを示す情報も格納することができる。この設定により、例えばマイコン１００がＤＥＥＰ  ＳＬＥＥＰモードであることをＳＴＢＹ信号でＰＭＩＣ３００に伝えると、ＰＭＩＣ３００は各電源ラインの出力電圧を指定した電圧に変更したり、あるいは電源供給を停止したりすることができる。
【００１６】
マイコン１００とＰＭＩＣ３００はＩ２ＣやＳＰＩなどのシリアルバスで接続されており、マイコン１００からシリアルバスを介してＰＭＩＣ３００内の制御レジスタに値を設定することができる。なお、ＰＭＩＣ３００として、１チップに集積された半導体部品を用いる代わりに、複数のＤＣ／ＤＣコンバータ（チップまたはモジュール）を組み合わせて用いても良い。また、ＰＭＩＣ３００の一部あるいは全部の機能がマイコン１００に内蔵されている場合もある。すなわち、マイコン１００内にＤＣ／ＤＣコンバータやレギュレータを内蔵し、マイコン１００の内部で電源供給のＯＮ／ＯＦＦや電圧の変更を行う形態であってもよい。この場合、ＰＭＩＣ３００の一部あるいは全部の機能を内蔵したマイコン１００が、１チップのＩＣで構成されてもよい。
【００１７】
次に、センサデバイス４００について説明する。センサデバイス４００としては、様々な種類のセンサを利用できる。例えば、ヘルスケア向けのセンサ付き端末１に利用されるセンサデバイス４００としては、様々なバイタルデータ（生体データ）を取得するために、脈拍センサ、温度センサ、湿度センサ、加速度センサなどが用いられることが多い。また、インフラ向けのセンサ付き端末１に利用されるセンサデバイス４００としては、温度センサ、加速度センサ、地磁気センサ、圧力センサ、傾斜センサなどが用いられることが多い。また、上記以外の種類のセンサが用いられることもある。
【００１８】
これらのセンサデバイス４００は、検出した物理データを電圧値に変換してマイコン１００へ出力することができる。そして、マイコン１００は、センサデバイス４００から出力された電圧値をＡ／Ｄコンバータ１０９を用いてデジタルデータに変換し、その変換したデジタルデータを取得する（読み取る）。この例では、Ａ／Ｄコンバータ１０９によって変換されたデジタルデータが、センサデバイス４００により検出されたデータ（以下の説明では、「センサデータ」と称する場合がある）であると捉えることもできる。
【００１９】
また、マイコン１００は、コンパレータ１１０を用いて、センサデバイス４００によって検出されたデータが閾値を越えているか、または、閾値未満になっているかを識別することもできる。この例では、コンパレータ１１０に入力されるアナログの電圧信号（センサデバイス４００が検出した物理データに応じた電圧信号）が、センサデバイス４００により検出されたセンサデータであると捉えることもできるし、アナログの電圧信号をＡ／Ｄ変換して得られたデジタルデータが、センサデバイス４００により検出されたセンサデータであると捉えることもできる。
【００２０】
また、センサデバイス４００によっては、抵抗値、電流値、静電容量として物理データを出力するものもあり、そうしたセンサデバイス４００から出力された物理データは、電圧への変換回路を用いて電圧値に変換してから取得することができる。
【００２１】
また、センサデバイス４００の中には、Ｉ２Ｃ、ＳＰＩ、ＧＰＩＯなどのシリアルバスコントローラ１０６に対応しているものもある。これらのセンサデバイス４００は、検出したデータをセンサデバイス４００内部でデジタルデータに変換し、変換したデジタルデータをシリアルバスコントローラ１０６へ出力する。マイコン１００は、シリアルバスコントローラ１０６を介して（経由して）、センサデバイス４００により検出されたデータ（デジタルデータ）を取得することができる。
【００２２】
次に、不揮発メモリ５００について説明する。不揮発メモリ５００は、各種のデータ（例えばセンサデータなど）を記憶するために使用する。不揮発メモリ５００は、例えばＮＡＮＤフラッシュメモリ、ＮＯＲフラッシュメモリ、ＦｅＲＡＭ、ＲｅＲＡＭ、ＭＲＡＭ、ＰＣＭなどの様々な不揮発性のメモリで構成され得るが、これらのデバイスに限定されるものではなく、不揮発メモリ５００の構成は任意である。なお、図１の例では、不揮発メモリ５００はマイコン１００の外部に設けられる構成を例に挙げているが、これに限らず、不揮発メモリ５００はマイコン１００の内部に設けられる構成としてもよい。
【００２３】
次に、ネットワークデバイス６００について説明する。ネットワークデバイス（コミュニケーションデバイス）６００としては、例えばＥｔｈｅｒｎｅｔ（登録商標）などの有線ＬＡＮデバイス、８０２．１１ａ／８０２．１１ｂ／８０２．１１ｇ／８０２．１１ｎ／８０２．１１ａｃなどの伝送規格の無線ＬＡＮデバイス、近距離無線通信のＢｌｕｅｔооｔｈ、Ｚｉｇｂｅｅ（登録商標）、ＴｒａｎｓｆｅｒＪｅｔ、など、様々な通信方式のものを用いることができる。
【００２４】
ここで、本実施形態の消費電力削減方式は、センサ付き端末１内のセンサデバイス４００が検出（センシング）したデータの取得、保存やマイコン１００の省電力モードの制御を行うためのプログラムにより実現される。このプログラムは、マイコン１００に内蔵されているフラッシュメモリ１０３などの不揮発性のメモリに記憶されており、プロセッサコア１０１に電源が投入された際や、プロセッサコア１０１がリセットされた際に、プロセッサコア１０１がフラッシュメモリ１０３からプログラムを読み込み、実行を開始する。このプログラムは、アプリケーションの中に含まれている場合もあれば、オペレーティング・システム（ＯＳ）の中に含まれている場合もある。
【００２５】
図３は、本実施形態において、プロセッサコア１０１が実行するプログラムの構成例を示す模式図である。プログラムは、タイマ１０５による割込みを発生させる時刻（タイマ１０５が割込み信号を生成する時刻であると考えることもできる）を設定するタイマ設定部１２０と、タイマ１０５による割込みが発生したときに実行する処理であるタイマ割込みハンドラ１４０とを含む。
【００２６】
プロセッサコア１０１が、タイマ設定部１２０に対応するプログラム（タイマ設定部１２０の機能を実現するためのプログラム）を実行することにより、タイマ設定部１２０の機能が実現される。タイマ設定部１２０は、後述のデータ取得部１４１が取得したセンサデータに応じて、サンプリング間隔を設定する機能も有する。具体的な内容については、後述する。この例では、タイマ設定部１２０は、請求項の「設定部」に対応していると考えることができる。
【００２７】
また、プロセッサコア１０１が、タイマ割込みハンドラ１４０を実行することにより、データ取得部１４１、データ保存制御部１４２および省電力モード設定部１４３の各々の機能が実現される。
【００２８】
データ取得部１４１は、センサデバイス４００からセンサデータを取得する。データ取得部１４１は、Ｉ２Ｃ、ＳＰＩ、ＧＰＩＯなどのシリアルバスコントローラ１０６経由でセンサデータを取得してもよいし、Ａ／Ｄコンバータ１０９で変換されたデジタルデータを取得することでセンサデータを取得することもできる。
【００２９】
データ保存制御部１４２は、データ取得部１４１がセンサデータを取得する間隔を示すサンプリング間隔が閾値以下の場合は、データ取得部１４１が取得したセンサデータを、マイコン１００に内蔵されたＳＲＡＭ１０２に保存し、サンプリング間隔が閾値を超える場合は、データ取得部１４１が取得したセンサデータと、その時点でＳＲＡＭ１０２に保存されているセンサデータとをまとめて不揮発メモリ５００に保存する制御を行う。具体的な内容については後述する。
【００３０】
この例では、マイコン１００に内蔵されているＳＲＡＭ１０２は請求項の「第１メモリ」に対応し、不揮発メモリ５００は請求項の「第２メモリ」に対応していると考えることができるが、これに限られるものではない。例えばデータ保存制御部１４２は、サンプリング間隔が閾値を超える場合は、データ取得部１４１が取得したセンサデータと、ＳＲＡＭ１０２に保存されているセンサデータとをまとめたデータのうちの少なくとも一部を、マイコン１００に内蔵されたフラッシュメモリ１０３に保存する制御を行う形態であってもよい。この場合、マイコン１００に内蔵されたフラッシュメモリ１０３が請求項の「第２メモリ」に対応していると考えることもできる。
【００３１】
省電力モード設定部１４３は、マイコン１００の省電力モードを設定する。この具体的な内容については後述する。
【００３２】
次に、図４を用いて、フラッシュメモリ１０３に格納された上記プログラムによる処理の一例を説明する。図４は、上記プログラムによる処理の一例を示すフローチャートである。タイマ１０５による割込みを発生させる時刻（タイマ設定部１２０により設定された時刻）に到達し、タイマ１０５による割込みが発生すると、マイコン１００は省電力モードから復帰し、プロセッサコア１０１はタイマ割込みハンドラ１４０の実行を開始する。図４に示すように、まずデータ取得部１４１がセンサデータを取得する（ステップＳ１）。
【００３３】
データ取得部１４１は、必要に応じて、取得したセンサデータのノイズ除去などを行った後に、取得したセンサデータがサンプリング間隔を短くする条件に合致しているか否かを判断する（ステップＳ２）。
【００３４】
このサンプリング間隔を短くする条件としては、センサ付き端末１の用途に応じて様々な条件が考えられる。例えば、ヘルスケア分野において、活動中のデータを頻繁に取得する場合は、加速度センサによって検出されたセンサデータの値が閾値を上回る場合はサンプリング間隔を短くする条件に合致し、閾値以下の場合は条件に合致しないという設定にすることもできる。つまり、センサデータの値が閾値を上回ることを、サンプリング間隔を短くする条件として設定することもできる。また、例えば就寝中のデータを取得する場合は、加速度センサによって検出されたセンサデータの値が閾値以下の場合はサンプリング間隔を短くする条件に合致し、閾値を上回る場合はサンプリング間隔を短くする条件に合致しないという設定にすることもできる。つまり、上記とは逆に、センサデータの値が閾値以下であることを、サンプリング間隔を短くする条件として設定することもできる。
【００３５】
また、例えばインフラ分野において、振動が大きい場合にデータを頻繁に取得する場合は、振動計によって検出されたセンサデータの値が閾値を上回る場合はサンプリング間隔を短くする条件に合致し、閾値以下の場合は条件に合致しないという設定にすることもできる。つまり、センサデータの値が閾値を上回ることを、サンプリング間隔を短くする条件として設定することもできる。また、複数のセンサデバイス４００によって検出されたセンサデータを利用する形態も想定され、例えば雨天時の状況を重点的に調べたい場合などは、湿度センサによって検出されたセンサデータの値が閾値を上回り、かつ、加速度センサによって検出されたセンサデータの値が閾値を上回る場合はサンプリング間隔を短くする条件に合致し、何れか一方が閾値以下の場合はサンプリング間隔を短くする条件に合致しないという設定にすることもできる。また、例えば、取得したセンサデータだけでなく、これまで取得したセンサデータの統計情報を元にサンプリング間隔を短くする条件に合致しているか否かを判断する形態であってもよい。
【００３６】
このように、サンプリング間隔を短くするか否かの条件は、センサデバイス４００の種類やアプリケーションによって様々な条件が想定される。また、この例では、データ取得部１４１が、取得したセンサデータがサンプリング間隔を短くする条件に合致しているか否かを判断しているが、これに限らず、例えばデータ取得部１４１により取得されたセンサデータがサンプリング間隔を短くする条件に合致するか否かを判断する機能が、データ取得部１４１とは別に設けられる形態であってもよい。要するに、プロセッサコア１０１がタイマ割込みハンドラ１４０を実行することにより、データ取得部１４１により取得されたセンサデータがサンプリング間隔を短くする条件に合致するか否かを判断する機能が実現される形態であればよい。
【００３７】
上述のステップＳ２において、取得したセンサデータがサンプリング間隔を短くする条件に合致する場合（ステップＳ２：Ｙｅｓ）、データ保存制御部１４２は、ステップＳ１で取得したセンサデータを、内蔵のＳＲＡＭ１０２に保存できるかどうかを確認する（ステップＳ３）。取得したセンサデータをＳＲＡＭ１０２に保存できるかどうかの確認とは、例えば、既にＳＲＡＭ１０２に書き込まれているデータ量がＳＲＡＭ１０２のデータ容量に達しており、追加のデータを書き込めない場合は、取得したセンサデータを保存できないと判断し、逆にまだ十分な容量がある場合は、取得したセンサデータを保存できると判断する処理のことである。ＳＲＡＭ１０２に保存できる場合（ステップＳ３：Ｙｅｓ）、データ保存制御部１４２は、ステップＳ１で取得したセンサデータをＳＲＡＭ１０２に保存する制御を行う（ステップＳ４）。
【００３８】
一方、上述のステップＳ３において、ＳＲＡＭ１０２に保存できない場合（ステップＳ３：Ｎｏ）、データ保存制御部１４２は、ステップＳ１で取得したセンサデータと、その時点でＳＲＡＭ１０２に保存されているセンサデータとを不揮発メモリ５００に保存する制御を行う（ステップＳ５）。そして、データ保存制御部１４２は、ＳＲＡＭ１０２内のセンサデータを全て消去する（ステップＳ６）。
【００３９】
上述のステップＳ４または上述のステップＳ６の後、省電力モード設定部１４３は、ＳＲＡＭ１０２に保存されたデータ（センサデータを含む）が失われないレベルの省電力モードに設定する制御を行う（ステップＳ７）。そして、タイマ設定部１２０は、サンプリング間隔が短くなるようにタイマ１０５による割込みを発生させる時刻を設定する（ステップＳ８）。ここでのサンプリング間隔を短く設定するということは、すなわち、ステップＳ１３で設定するサンプリング間隔よりも短いという意味である。そして、プロセッサコア１０１は、ステップＳ７で設定された省電力モードに遷移するためのＷＦＩ命令を実行して、省電力モードに遷移する（ステップＳ９）。
【００４０】
一方、上述のステップＳ２において、取得したセンサデータがサンプリング間隔を短くする条件に合致しない場合（ステップＳ２：Ｎｏ）、データ保存制御部１４２は、ステップＳ１で取得したセンサデータと、その時点でＳＲＡＭ１０２に保存されているセンサデータとをまとめて不揮発メモリ５００に保存する制御を行う（ステップＳ１０）。なお、ＳＲＡＭ１０２内にセンサデータが保存されていない場合は、データ保存制御部１４２は、ステップＳ１で取得したセンサデータのみを、不揮発メモリ５００に保存する制御を行う。
【００４１】
そして、データ保存制御部１４２は、ＳＲＡＭ１０２内のセンサデータを消去する（ステップＳ１１）。次に、省電力モード設定部１４３は、より消費電力が少ない省電力モード、例えばＳＲＡＭ１０２がデータを保持できないレベルの省電力モードに設定する制御を行う（ステップＳ１２）。そして、タイマ設定部１２０は、サンプリング間隔が長くなるようにタイマ１０５による割込みを発生させる時刻を設定する（ステップＳ１３）。ここでのサンプリング間隔を長く設定するということは、すなわち、ステップＳ８で設定するサンプリング間隔よりも長いという意味である。つまり、タイマ設定部１２０は、データ取得部１４１が取得したセンサデータに応じて、サンプリング間隔を設定していると考えることができる。そして、プロセッサコア１０１は、ステップＳ１２で設定された省電力モードに遷移するためのＷＦＩ命令を実行して、省電力モードに遷移する（ステップＳ１４）。なお、この例では、データ取得部１４１がセンサデータを取得する間隔を示すサンプリング間隔が閾値以下の場合は、次に遷移する省電力モードが、ＳＲＡＭ１０２がデータを保持可能な状態を示す第１省電力モードであり、サンプリング間隔が閾値を上回る場合は、次に遷移する省電力モードが、ＳＲＡＭ１０２がデータを保持できない状態を示す第２省電力モードであると考えることもできる。そして、データ保存制御部１４２は、次に遷移する省電力モードが第１省電力モードの場合は、データ取得部１４１が取得したセンサデータをＳＲＡＭ１０２に保存し、次に遷移する省電力モードが第２省電力モードの場合は、データ取得部１４１が取得したセンサデータと、ＳＲＡＭ１０２に保存されているセンサデータとを不揮発性のフラッシュメモリ１０３に保存する制御を行っていると考えることもできる。
【００４２】
以上の処理の流れを、実例を示す図５を用いて説明する。図５の例では、横軸が時刻を示しており、縦軸が取得したセンサデータの値を示している。図５に示すように、時刻ｔ１にてデータ取得部１４１がセンサデータを取得する。図５の例では、取得したセンサデータの値が閾値を示すＶｔｈｒよりも大きい場合はサンプリング間隔を短くする条件に合致するものとする。この例では、サンプリング間隔を長くした場合のサンプリング間隔の時間長をＬ１、サンプリング間隔を短くした場合のサンプリング間隔の時間長をＬ２とする。
【００４３】
時刻ｔ１で取得したセンサデータはＶｔｈｒよりも小さく、サンプリング間隔を短くする条件に合致しないので、データ保存制御部１４２は、時刻ｔ１で取得したデータを不揮発メモリ５００に保存する制御を行う。そして、省電力モード設定部１４３は、より消費電力が少ない省電力モード、例えばＳＲＡＭ１０２がデータを保持できないレベルの省電力モードに設定する制御を行い、タイマ設定部１２０は、時刻ｔ１から時間長Ｌ１が経過した後の時刻ｔ２を、次のタイマ１０５による割込みを発生させる時刻として設定する。そして、プロセッサコア１０１は、省電力モード設定部１４３が設定した省電力モードに遷移するためのＷＦＩ命令を実行して、省電力モードに遷移する。
【００４４】
続いて、時刻ｔ２に到達し、タイマ１０５による割込みが発生すると、マイコン１００は省電力モードから復帰する。そして、プロセッサコア１０１はタイマ割込みハンドラ１４０の実行を開始し、データ取得部１４１がセンサデータを取得する。図５の例では、時刻ｔ２で取得したセンサデータもＶｔｈｒよりも小さく、サンプリング間隔を短くする条件に合致しないので、時刻ｔ１と同様の処理が行われる。
【００４５】
続いて、時刻ｔ２から時間長Ｌ１が経過した後の時刻ｔ３に到達すると、再びタイマ１０５による割込みが発生し、マイコン１００は省電力モードから復帰する。そして、プロセッサコア１０１はタイマ割込みハンドラ１４０の実行を開始し、データ取得部１４１がセンサデータを取得する。図５の例では、時刻ｔ３で取得したセンサデータは、Ｖｔｈｒよりも大きいので、サンプリング間隔を短くする条件に合致する。そのため、データ保存制御部１４２は、時刻ｔ３で取得したデータをＳＲＡＭ１０２に保存する制御を行う。そして、省電力モード設定部１４３は、ＳＲＡＭ１０２に保存されたデータが失われないレベルの省電力モードに設定する制御を行い、タイマ設定部１２０は、時刻ｔ３から時間長Ｌ２が経過した後の時刻ｔ４を、次のタイマ１０５による割込みを発生させる時刻として設定する。そして、プロセッサコア１０１は、省電力モード設定部１４３が設定した省電力モードに遷移するためのＷＦＩ命令を実行して、省電力モードに遷移する。
【００４６】
図５の例では、時刻ｔ５までのセンサデータはＶｔｈｒを超えているため、同様の処理を時刻ｔ５まで繰り返す。続いて、時刻ｔ６に到達し、タイマ１０５による割込みが発生すると、マイコン１００は省電力モードから復帰する。そして、プロセッサコア１０１はタイマ割込みハンドラ１４０の実行を開始し、データ取得部１４１がセンサデータを取得する。図５の例では、時刻ｔ６で取得したセンサデータはＶｔｈｒよりも小さく、サンプリング間隔を短く設定する条件に合致しない。そのため、データ保存制御部１４２は、ＳＲＡＭ１０２に保存されているセンサデータ（時刻ｔ３から時刻ｔ６まで取得したセンサデータ）、および、時刻ｔ６で取得したセンサデータをまとめて不揮発メモリ５００に保存する（書き込む）制御を行う。そして、省電力モード設定部１４３は、より消費電力が少ない省電力モード、例えばＳＲＡＭ１０２がデータを保持できないレベルの省電力モードに設定する制御を行い、タイマ設定部１２０は、時刻ｔ６から時間長Ｌ１が経過した後の時刻ｔ７を、次のタイマ１０５による割込みを発生させる時刻として設定する。そして、プロセッサコア１０１は、省電力モード設定部１４３が設定した省電力モードに遷移するためのＷＦＩ命令を実行して、省電力モードに遷移するという具合である。
【００４７】
以上に説明したように、本実施形態では、センサデータを取得する間隔を示すサンプリング間隔が閾値以下の場合（サンプリング間隔を短くする条件に合致する場合）は、データ取得部１４１が取得したセンサデータをＳＲＡＭ１０２に保存し、サンプリング間隔が閾値を超える場合（サンプリング間隔を短くする条件に合致しない場合）は、データ取得部１４１が取得したセンサデータと、その時点でＳＲＡＭ１０２に保存されているセンサデータとをまとめて不揮発メモリ５００に保存する制御を行う。これにより、サンプリング期間が短い場合に、不揮発メモリ５００に対する細かい粒度の書き込みが頻発することを抑制しつつ、サンプリング期間が長くなった場合に、センサデータをまとめて書き込むことができ、かつ、ＳＲＡＭ１０２のデータが保存できないレベルのより電力消費の少ない省電力モードにマイコン１００を遷移させることができるので、電力効率を向上させることができるという有利な効果を達成できる。
【００４８】
（第２実施形態）
次に、第２実施形態について説明する。第２実施形態では、センサデバイス４００の出力をマイコン１００のコンパレータ１１０で検出し、コンパレータ１１０による割込みが発生したときに実行する処理（コンパレータ割込みハンドラによる処理）によってセンサデータを取得する。コンパレータ１１０は、マイコン１００が内蔵するデバイスの一つであり、アナログ信号（センサデバイス４００が検出した物理データに応じた電圧信号）が予め設定された電圧を超えた場合もしくは下回った場合に、割込みを発生することができる。第１実施形態が、マイコン１００側がタイマ割込みにより主体的にセンサデータを取得していたのに対し、第２実施形態では、センサデバイス４００側がマイコン１００のコンパレータ１１０を利用してマイコン１００を省電力モードから復帰させてマイコン１００にセンサデータを読み取らせているため、センサデバイス４００側がデータの読み取りの契機になっている。以下、第２実施形態の具体的な内容を説明する。なお、上述の第１実施形態と共通する部分については適宜に説明を省略する。
【００４９】
図６は、本実施形態において、プロセッサコア１０１が実行するプログラムの構成例を示す模式図である。プログラムは、コンパレータ１１０からの割込み信号を受信（コンパレータ１１０による割込みが発生）したときに実行する処理を命令するコンパレータ割込みハンドラ１５０を含む。プロセッサコア１０１が、コンパレータ割込みハンドラ１５０を実行することにより、データ取得部１５１、データ保存制御部１５２、時刻取得部１５３、算出部１５４、省電力モード設定部１５５の各々の機能が実現される。
【００５０】
データ取得部１５１、データ保存制御部１５２、省電力モード設定部１５５の機能は、上述の第１実施形態と同様であるので、詳細な説明は省略する。時刻取得部１５３は、データ取得部１５１がセンサデータを取得するたびに、そのときの時刻（現在時刻）を取得し、取得した時刻を、ＳＲＡＭ１０２または不揮発メモリ５００に書き込む。この例では、ＳＲＡＭ１０２または不揮発メモリ５００に保持される時刻は、時刻取得部１５３による時刻の書き込みが行われるたびに更新されていく。以下の説明では、ＳＲＡＭ１０２または不揮発メモリ５００に保持された最新の時刻を、「最終データ取得時刻」と称する場合がある。
【００５１】
算出部１５４は、時刻取得部１５３が取得した最新の時刻と、その直前の時刻との差分からサンプリング間隔を算出する。本実施形態では、算出部１５４は、時刻取得部１５３が時刻を取得するたびに、その取得した時刻（最新の時刻）と、その時点でＳＲＡＭ１０２または不揮発メモリ５００に保持されている最終データ取得時刻（取得した時刻が書き込まれる直前の最終データ取得時刻）との差分から、サンプリング間隔を算出することができる。
【００５２】
次に、図７を用いて、上記プログラムによる処理の一例を説明する。図７は、上記プログラムによる処理の一例を示すフローチャートである。コンパレータ１１０が閾値以上のセンサデータを検出して割込みを発生させると、マイコン１００は省電力モードから復帰し、プロセッサコア１０１はコンパレータ割込みハンドラ１５０の実行を開始する。まず図７に示すように、データ取得部１５１がセンサデータを取得する（ステップＳ２１）。センサデータとしては、コンパレータ１１０が検出した値を用いてもよいし、Ａ／Ｄコンバータ１０９でデジタルデータに変換されたデータを用いてもよいし、シリアルバスコントローラ１０６経由で取得したデータを用いてもよい。そして、時刻取得部１５３は、現在時刻（データ取得部１５１がセンサデータを取得した時刻であると捉えることもできる）を取得する（ステップＳ２２）。
【００５３】
次に、算出部１５４は、ステップＳ２２で取得した現在時刻と、最終データ取得時刻との差分からサンプリング間隔を算出する（ステップＳ２３）。このとき、ＳＲＡＭ１０２内に最終データ取得時刻が保存されている場合は、ステップＳ２２で取得した現在時刻と、ＳＲＡＭ１０２内の最終データ保存時刻との差分をサンプリング間隔として求め、不揮発メモリ５００内に最終データ取得時刻が保存されている場合は、ステップＳ２２で取得した現在時刻と、ＳＲＡＭ１０２内の最終データ保存時刻との差分をサンプリング間隔として求める。また、初回のデータ取得時などのＳＲＡＭ１０２および不揮発メモリ５００の何れにも最終データ保存時刻が保存されていない場合は、差分（サンプリング間隔）をゼロとする。
【００５４】
そして、データ保存制御部１５２は、ステップＳ２３で算出したサンプリング間隔が閾値以下であるか否かを確認する（ステップＳ２４）。サンプリング間隔が閾値以下の場合（ステップＳ２４：Ｙｅｓ）、データ保存制御部１５２は、ステップＳ２１で取得したセンサデータと、ステップＳ２２で取得した現在時刻とを、内蔵のＳＲＡＭ１０２に保存できるかどうかを確認する（ステップＳ２５）。ＳＲＡＭ１０２に保存できる場合（ステップＳ２５：Ｙｅｓ）、データ保存制御部１５２は、ステップＳ２１で取得したセンサデータをＳＲＡＭ１０２に保存するとともに、ステップＳ２２で取得した現在時刻を最終データ取得時刻としてＳＲＡＭ１０２に保存する制御を行う（ステップＳ２６）。
【００５５】
一方、上述のステップＳ２５において、ＳＲＡＭ１０２に保存できない場合（ステップＳ２５：Ｎｏ）、データ保存制御部１５２は、ステップＳ２１で取得したセンサデータと、その時点でＳＲＡＭ１０２に保存されているセンサデータを不揮発メモリ５００に保存するとともに、ステップＳ２２で取得した現在時刻を最終データ取得時刻として不揮発メモリ５００に保存する制御を行う（ステップＳ２７）。そして、データ保存制御部１５２は、ＳＲＡＭ１０２内のデータ（センサデータ、最終データ取得時刻等）を消去する（ステップＳ２８）。
【００５６】
上述のステップＳ２６または上述のステップＳ２８の後、省電力モード設定部１５５は、ＳＲＡＭ１０２に保存されたデータが失われないレベルの省電力モードに設定する制御を行う（ステップＳ２９）。そして、プロセッサコア１０１は、ステップＳ２９で設定された省電力モードに遷移するためのＷＦＩ命令を実行して、省電力モードに遷移する（ステップＳ３０）。
【００５７】
一方、上述のステップＳ２４において、サンプリング間隔が閾値を上回る場合（ステップＳ２４：Ｎｏ）、データ保存制御部１５２は、ステップＳ２１で取得したセンサデータと、その時点でＳＲＡＭ１０２に保持されているセンサデータとをまとめて不揮発メモリ５００に保存するとともに、ステップＳ２２で取得した現在時刻を最終データ取得時刻として不揮発メモリ５００に保存する制御を行う（ステップＳ３１）。そして、データ保存制御部１５２は、ＳＲＡＭ１０２内のデータを消去する（ステップＳ３２）。次に、省電力モード設定部１５５は、より消費電力が少ない省電力モード、例えばＳＲＡＭ１０２がデータを保持できないレベルの省電力モードに設定する制御を行う（ステップＳ３３）。そして、プロセッサコア１０１は、ステップＳ３３で設定された省電力モードに遷移するためのＷＦＩ命令を実行して、省電力モードに遷移する（ステップＳ３４）。
【００５８】
以上の処理の流れを、実例を示す図８を用いて説明する。図８の例では、横軸が時刻を示しており、縦軸が取得したセンサデータ（この例ではコンパレータ１１０に入力されるアナログの電圧信号）の値を示している。図８の例では、コンパレータ１１０は、任意のタイミングでセンサデバイス４００からのセンサデータを取得し、取得したセンサデータの値が閾値を示すＶｃｍｐよりも大きい場合は割込み信号を生成する。図８の例では、時刻ｔ１にてコンパレータ１１０に入力されたセンサデータは閾値Ｖｃｍｐよりも大きいので、コンパレータ１１０による割込みが発生し、マイコン１００は省電力モードから復帰する。そして、プロセッサコア１０１はコンパレータ割込みハンドラ１５０の実行を開始し、データ取得部１５１が時刻ｔ１のセンサデータを取得し、時刻取得部１５３が現在時刻ｔ１を取得する。
【００５９】
次に、算出部１５４は、時刻取得部１５３が取得した現在時刻ｔ１と、最終データ取得時刻との差分を求めるが、初期状態においてはＳＲＡＭ１０２および不揮発メモリ５００の何れにも最終データ取得時刻は保存されていないので、差分（サンプリング間隔）をゼロとする。この場合、サンプリング間隔は閾値以下であるため、データ保存制御部１５２は、ＳＲＡＭ１０２にデータを書き込めるだけの十分な容量があるかをチェックし、十分な容量があることから、時刻ｔ１で取得したセンサデータをＳＲＡＭ１０２に保存するとともに、現在時刻ｔ１を最終データ取得時刻としてＳＲＡＭ１０２に保存する制御を行う。そして、省電力モード設定部１５５は、ＳＲＡＭ１０２に保存されたデータが失われないレベルの省電力モードに設定する制御を行い、プロセッサコア１０１は、省電力モード設定部１５５が設定した省電力モードに遷移するためのＷＦＩ命令を実行して、省電力モードに遷移する。
【００６０】
続いて、時刻ｔ２にて、Ｖｃｍｐよりも大きい値を示すセンサデータがコンパレータ１１０に入力され、コンパレータ１１０による割込みが発生し、マイコン１００は省電力モードから復帰する。そして、プロセッサコア１０１はコンパレータ割込みハンドラ１５０の実行を開始し、データ取得部１５１が時刻ｔ２のセンサデータを取得し、時刻取得部１５３が現在時刻ｔ２を取得する。次に、算出部１５４は、時刻取得部１５３が取得した現在時刻ｔ２と、最終データ取得時刻ｔ１との差分（Ｌ１１）をサンプリング間隔として求める。ここで、Ｌｔｈｒをサンプリング間隔が長いか短いかを判定するための閾値とし、Ｌ１１はＬｔｈｒよりも長いとする。したがって、データ保存制御部１５２は、サンプリング間隔が長い（閾値を上回る）と判定することができる。この場合、データ保存制御部１５２は、ＳＲＡＭ１０２に保存されているセンサデータ（時刻ｔ１で取得したセンサデータ）と、時刻ｔ２で取得したセンサデータとをまとめて不揮発メモリ５００に保存するとともに、現在時刻ｔ２を最終データ取得時刻として不揮発メモリ５００に保存する制御を行う。そして、ＳＲＡＭ１０２内のデータを消去する。
【００６１】
続いて、省電力モード設定部１５５は、より消費電力が少ない省電力モード、例えばＳＲＡＭ１０２がデータを保持できないレベルの省電力モードに設定する制御を行い、プロセッサコア１０１は、省電力モード設定部１５５が設定した省電力モードに遷移するためのＷＦＩ命令を実行して、省電力モードに遷移する。なお、図８の例では、時刻ｔ３においても時刻ｔ２と同様の処理が行われる。
【００６２】
次に、時刻ｔ４にて、Ｖｃｍｐよりも大きい値を示すセンサデータがコンパレータ１１０に入力され、コンパレータ１１０による割込みが発生し、マイコン１００は省電力モードから復帰する。そして、プロセッサコア１０１はコンパレータ割込みハンドラ１５０の実行を開始し、データ取得部１５１が時刻ｔ４のセンサデータを取得し、時刻取得部１５３が現在時刻ｔ４を取得する。次に、算出部１５４は、現在時刻ｔ４と、最終データ取得時刻ｔ３との差分（Ｌ２２）をサンプリング間隔として求める。ここで、Ｌ２２はＬｔｈｒ以下であるとする。したがって、データ保存制御部１５２は、サンプリング間隔が短い（閾値以下である）と判定することができる。この場合、サンプリング間隔が短く、かつ、ＳＲＡＭ１０２の容量が十分に残っているので、データ保存制御部１５２は、時刻ｔ４で取得したセンサデータをＳＲＡＭ１０２に保存するとともに、現在時刻ｔ４を最終データ取得時刻としてＳＲＡＭ１０２に保存する制御を行う。そして、省電力モード設定部１５５は、ＳＲＡＭ１０２に保存されたデータが失われないレベルの省電力モードに設定する制御を行い、プロセッサコア１０１は、省電力モード設定部１５５が設定した省電力モードに遷移するためのＷＦＩ命令を実行して、省電力モードに遷移する。図８の例では、時刻ｔ５まで、時刻ｔ４と同様の処理が行われる（つまり、時刻ｔ５までは、サンプリング間隔がＬｔｈｒ以下である）。
【００６３】
次に、時刻ｔ６にて、Ｖｃｍｐよりも大きい値を示すセンサデータがコンパレータ１１０に入力され、コンパレータ１１０による割込みが発生し、マイコン１００は省電力モードから復帰する。そして、プロセッサコア１０１はコンパレータ割込みハンドラ１５０の実行を開始し、データ取得部１５１が時刻ｔ６のセンサデータを取得し、時刻取得部１５３が現在時刻ｔ６を取得する。次に、算出部１５４は、現在時刻ｔ６と、最終データ取得時刻ｔ５との差分をサンプリング間隔として求める。この場合の差分はＬｔｈｒよりも長いとする。したがって、データ保存制御部１５２は、サンプリング間隔が長い（閾値を上回る）と判定することができる。この場合、データ保存制御部１５２は、ＳＲＡＭ１０２に保存されているセンサデータ（時刻ｔ４から時刻５にわたって取得したセンサデータ）と、時刻ｔ６で取得したセンサデータとをまとめて不揮発メモリ５００に保存するとともに、現在時刻ｔ６を最終データ取得時刻として不揮発メモリ５００に保存する制御を行う。そして、ＳＲＡＭ１０２内のデータを消去する。続いて、省電力モード設定部１５５は、より消費電力が少ない省電力モード、例えばＳＲＡＭ１０２がデータを保持できないレベルの省電力モードに設定する制御を行い、プロセッサコア１０１は、省電力モード設定部１５５が設定した省電力モードに遷移するためのＷＦＩ命令を実行して、省電力モードに遷移する。
【００６４】
なお、本実施形態では、コンパレータ１１０が、コンパレータ１１０に入力されるデータが閾値を超えるか否かを検出するセンサデバイス４００と、センサデータを取得するセンサバイス４００とが同一であったが、これらは異なるセンサデバイス４００であってもよい。例えば、温度センサによって検出される値が閾値以上の場合のみ、加速度センサによって検出された値（センサデータに該当）を取得する（読み取る）場合は、温度センサによって検出される値が閾値以上の場合をコンパレータ１１０で検出し、コンパレータ１１０による割込み処理にて加速度センサの値を取得する形態であってもよい。
【００６５】
本実施形態においても、サンプリング間隔が閾値以下の場合は、データ取得部１５１が取得したセンサデータをＳＲＡＭ１０２に保存し、サンプリング間隔が閾値を超える場合は、データ取得部１５１が取得したセンサデータと、その時点でＳＲＡＭ１０２に保存されているセンサデータとをまとめて不揮発メモリ５００に保存する制御を行うので、上述の第１実施形態と同様、電力効率を向上させることができるという有利な効果を達成できる。
【００６６】
なお、第２実施形態はコンパレータ１１０を用いてマイコン１００を省電力モードから復帰させていたが、これに限らず、コンパレータ１１０以外の方法を用いてもよい。例えば、Ｉ２ＣやＳＰＩやＧＰＩＯを用いてセンサデータを渡すことのできるセンサデバイスの中には、検出したセンサデータが設定した閾値を越えた場合や下回った場合に、Ｉ２ＣやＳＰＩやＧＰＩＯの割込みを用いてマイコン１００を省電力モードから復帰させることができるものもある。その場合は、コンパレータ１１０ではなく、Ｉ２ＣやＳＰＩやＧＰＩＯを用いて実現できるが、この場合は、マイコン１００がＩ２ＣやＤＰＩやＧＰＩＯの割込みにより復帰可能でなければならない。
【００６７】
（第３実施形態）
次に、第３実施形態について説明する。第３実施形態では、サンプリング間隔を変更する命令を受信し、その受信した命令に応じてサンプリング間隔を設定する。以下、第３実施形態の具体的な内容を説明する。なお、上述の第１実施形態と共通する部分については適宜に説明を省略する。
【００６８】
図９は、本実施形態において、プロセッサコア１０１が実行するプログラムの構成例を示す模式図である。上述の第１実施形態のプログラム（図３）との違いは、サンプリング間隔を変更する命令（以下の説明では、「サンプリング間隔変更命令」と称する場合がある）を受信するサンプリング間隔変更命令受信部１４５を含む点と、タイマ設定部１２１は、サンプリング間隔変更命令受信部１４５で受信したサンプリング間隔変更命令に応じて、サンプリング間隔を設定する機能をさらに有する点である。この例では、サンプリング間隔変更命令受信部１４５は請求項の「受信部」に対応し、タイマ設定部１２１は請求項の「設定部」に対応していると考えることができる。
【００６９】
サンプリング間隔変更命令は、例えば図１０（Ａ）に示すように、ネットワーク経由で別の計算機７００から送信される場合が想定される。この場合、例えばセンサネットワーク上の異なるセンサ付き端末が、本実施形態のセンサ付き端末１に対してサンプリング間隔変更命令を送信することもできる。例えば、複数のセンサ付き端末がネットワークを形成しており、一のセンサ付き端末のサンプリング間隔が短くなったのに合わせて、近隣のセンサ付き端末に対してサンプリング間隔を短くする変更命令を送信するというのを繰り返し、徐々にサンプリング間隔を短くする命令がセンサネットワーク上のセンサ付き端末に伝搬する場合などが想定される。また、制御用サーバ計算機から、センサ付き端末に対してサンプリング間隔変更命令を送信する場合もある。このとき、全てのセンサ付き端末に対して、制御用サーバ計算機からのサンプリング間隔変更命令が一斉に送信されてもよい。また、例えば一部のセンサ付き端末に対して、制御用サーバ計算機からのサンプリング間隔変更命令が送信され、残りのセンサ付き端末に対しては、既にサンプリング間隔変更命令を受信したセンサ付き端末から、その受信したサンプリング間隔変更命令を伝搬させる形態であってもよい。
【００７０】
また、サンプリング間隔変更命令は、例えば図１０（Ｂ）に示すように、センサ付き端末１内の異なるプログラム（サンプリング間隔変更命令受信部１４５を含むプログラムとは異なるプログラム）のサンプリング間隔変更命令送信部７１０から送信される場合も想定される。例えばプログラムＡにて湿度センサを監視しておき、閾値以上になった場合に、プログラムＡに含まれるサンプリング間隔変更命令送信部７１０が、プログラムＢ（サンプリング間隔変更命令受信部１４５を含むプログラム）に対してサンプリング間隔変更命令を送信し、それに合わせて、プログラムＢが、加速度センサからセンサデータを取得するサンプリング間隔を設定する（例えば短くする）こともできる。
【００７１】
さらに、サンプリング間隔変更命令は、例えば図１０（Ｃ）に示すように、サンプリング間隔変更命令受信部１４５を含むプログラムと同一プログラム内のサンプリング間隔変更命令送信部７２０から送信される場合も想定される。なお、サンプリング間隔変更命令には、サンプリング間隔の値が記述されていてもよいし、サンプリング間隔の値を示すＩＤが記述されていてもよい。ＩＤが記述されている場合は、タイマ設定部１２１、もしくは、サンプリング間隔変更命令受信部１４５にてサンプリング間隔の値とＩＤとの対応関係を示すテーブルが保持されている。
【００７２】
図１１は、サンプリング間隔変更命令を受信した場合の処理の一例を示すフローチャートである。サンプリング間隔変更命令受信部１４５がサンプリング間隔変更命令を受信すると（ステップＳ４１）、タイマ設定部１２１は、受信したサンプリング間隔変更命令に応じて、サンプリング間隔を設定（管理しているサンプリング間隔の値を変更）する（ステップＳ４２）。例えばサンプリング間隔変更命令の中にサンプリング間隔の値が含まれている場合は、その値を設定する。また、例えばサンプリング間隔を示すＩＤの場合、テーブル等を参照して当該ＩＤに対応するサンプリング間隔を示す値を取得し、その値を設定する。設定されたサンプリング間隔の値は、例えばレジスタ（不図示）に格納される。
【００７３】
図１２は、タイマ１０５による割込みが発生してからの処理の一例を示すフローチャートである。基本的には図４のフローと同様であり、まず、データ取得部１４１がセンサデータを取得する（ステップＳ５１）。次に、データ取得部１４１は、サンプリング間隔が短い設定になっているかどうかを確認する（ステップＳ５２）。例えばデータ取得部１４１は、タイマ設定部１２１により設定されたサンプリング間隔を示す値が格納されたレジスタを参照して、当該レジスタに格納された値が閾値以下の場合は、サンプリング間隔が短い設定であると判断することもできる。
【００７４】
サンプリング間隔が短い設定の場合（ステップＳ５２：Ｙｅｓ）、つまり、サンプリング間隔が閾値以下の場合は、ステップＳ５３〜ステップＳ５７の処理が行われる。ステップＳ５３〜ステップＳ５７の処理は、図４に示すステップＳ３〜ステップＳ７の処理と同様である。そして、ステップＳ５７の後、タイマ設定部１２１は、サンプリング間隔が短くなるようにタイマ１０５による割込みを発生させる時刻を設定し（ステップＳ５８）、プロセッサコア１０１は、ステップＳ５７で設定された省電力モードに遷移するためのＷＦＩ命令を実行して、省電力モードに遷移する（ステップＳ５９）。
【００７５】
一方、サンプリング間隔が短い設定ではない場合（ステップＳ５２：Ｎｏ）、つまり、サンプリング間隔が閾値を上回る場合は、ステップＳ６０〜ステップＳ６２の処理が行われる。ステップＳ６０〜ステップＳ６２の処理は、図４に示すステップＳ１０〜ステップＳ１２の処理と同様である。そして、ステップＳ６２の後、タイマ設定部１２１は、サンプリング間隔が長くなるようにタイマ１０５による割込みを発生させる時刻を設定し（ステップＳ６３）、プロセッサコア１０１は、ステップＳ６２で設定された省電力モードに遷移するためのＷＦＩ命令を実行して、省電力モードに遷移する（ステップＳ６４）。
【００７６】
本実施形態においても、サンプリング間隔が閾値以下の場合は、データ取得部１４１が取得したセンサデータをＳＲＡＭ１０２に保存し、サンプリング間隔が閾値を超える場合は、データ取得部１４１が取得したセンサデータと、その時点でＳＲＡＭ１０２に保存されているセンサデータとをまとめて不揮発メモリ５００に保存する制御を行うので、上述の第１実施形態と同様、電力効率を向上させることができるという有利な効果を達成できる。
【００７７】
ここで、本発明の実施形態が利用される場面例や効果例について説明する。従来、センサにより検出された温度、湿度、加速度などを示すデータを処理する計算機であるセンサ付き端末（センサノードとも呼ばれる）が知られている。センサ付き端末の利用形態としては、センサ付き端末単体でデータを取得し、センサ付き端末が備えているディスプレイで検出したデータを表示して利用する形態や、センサ付き端末からＰＣやサーバなどにアップロードして使用する形態や、複数のセンサ付き端末が協調しながらデータ取得を行い、末端のノードや中継サーバなどから中央のＰＣやサーバなどにアップロードして使用する形態などがある。センサ付き端末は、取得するデータの種類に応じたセンサを備えており、一つのセンサ付き端末が複数のセンサを備えていることも多い。
【００７８】
センサ付き端末は、様々な分野で利用されており、例えばヘルスケアの分野では、腕時計型、皮膚に接着させるパッチ型、腰に装着するポシェット型など様々なタイプのセンサ付き端末があり、例えば脈拍、体温、歩数、姿勢、寝返り回数などを求める元となるデータを取得するのに用いられる。
【００７９】
また、インフラ設備の分野では、例えば道路、橋、トンネルなどの構造物の状況把握や崖、山林、河川などの自然災害の発生が想定される箇所における振動や温度などの様々なデータを取得するのに用いられる。例えば、振動情報や温度情報を取得するために、構造物の主要箇所にセンサ付き端末を設置し、構造物の振動や温度などのデータを取得し、取得したデータを元に構造物の経年劣化や補修時期などを計算するために用いられる場合もあるし、崖や山林の傾斜データから崩落の有無や予兆、河川の水量データから危険水量への到達予測の計算などに用いられる場合もある。
【００８０】
例えばヘルスケア向けに利用されるセンサ付き端末は、人体に装着して利用されるため、バッテリで動作するのが基本であり、装着時の違和感を抑えるためには、バッテリのサイズは小さい方が望ましい。また、充電の煩わしさを緩和するためには、一回の充電での使用時間が長い方が望ましいため、省電力化が非常に重要である。
【００８１】
また、例えばインフラ設備向けに利用されるセンサ付き端末は、設置箇所が多かったり、普段あまり人が立ち入らない箇所に設置したりするので、設置コストや設置後のメンテナンスコストを抑えるためにも、バッテリで動作するものが多い。また、バッテリの交換回数や充電回数を抑えるためにも、省電力化が強く求められている。
【００８２】
ここで、センサ付き端末は、常時データを取得するものもあれば、一定のサンプリング間隔でデータを取得するものもある。サンプリング間隔は、固定間隔のものもあれば、状況に応じて間隔が変化するものも多く、本発明は、サンプリング間隔が状況に応じて変化するものに関するものである。
【００８３】
例えば、ヘルスケア向けに利用されるセンサ付き端末にて歩数や姿勢など、人の動作に関するデータを取得する場合は、人が大きく動いている際のサンプリング間隔を短くして細かく計測し、寝ているときなどの人の動きが少ない場合はサンプリング間隔を長くすることで荒く計測しても欲しいデータは十分に取得できる。また、体温を示すデータを取得する場合なども、寝ている際の体温の変化は少ないため、サンプリング間隔を長くし、起きている際のサンプリング間隔を短くすることができる。このようにして取得したいデータの種類と状況に応じてサンプリング間隔を変化させて無駄なデータ取得を抑えることで消費電力やデータサイズを小さくすることができる。
【００８４】
また、インフラ設備向けのセンサ付き端末にて構造物の振動を計測する場合も、微弱な振動は構造物に与える影響は小さいため、閾値以下の振動はサンプリング間隔を長く設定するが、閾値を上回る振動は影響が大きいため、詳細な解析を行うためにサンプリング間隔を短く設定することができる。また、橋や道路などにて、自動車などが通過中の振動の影響を重点的に調べたい場合などは、センサ付き端末とは別のセンサにて自動車が通過したことを検出し、自動車が通過中はサンプリング間隔を短くして詳細な観測を行い、自動車が通過中でない場合はサンプリング間隔を長く設定することで、負荷を抑えることもできる。
【００８５】
また、複数のセンサ付き端末がネットワークを形成しており、近隣のノードからの信号によりサンプリング間隔を変更する場合もある。
【００８６】
このようにセンサ付き端末がデータを取得する間隔を示すサンプリング間隔は、相対的に長い場合と短い場合とがあり、状況に応じてサンプリング間隔を変化させる技術が従来から知られている。
【００８７】
これらのセンサ付き端末は、バッテリで動作することが多く、バッテリに蓄電されている電力が失われてもセンサにより検出されたデータを失わないように、当該データを不揮発性のメモリに保存することが多い。その際、センサからデータを取得するたびに、その取得したデータを不揮発性のメモリに書き込んでいては、細かい粒度の書き込みが多く発生する。
【００８８】
ここで、例えばＮＡＮＤフラッシュメモリ、ＮＯＲフラッシュメモリ、ＦｅＲＡＭ、ＲｅＲＡＭ、ＭＲＡＭ、ＰＣＭなどの様々な不揮発メモリは、細かいサイズのデータの書き込みを何度も行うより、大きなサイズのデータにまとめて書き込むことで、書き込み回数を減らした方が、単位書き込みサイズ辺りの電力効率が良くなる。
【００８９】
しかしながら、従来技術では、サンプリング期間が短い場合でも、不揮発性のメモリに対して細かい粒度の書き込みが頻発してしまい、電力効率が悪化するという問題がある。このような場合などで、本発明の実施形態を用いることによって、電力効率を向上させることができる。
【００９０】
以上、本発明の実施形態を説明したが、上述の各実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。また、上述の各実施形態は適宜に組み合わせることも可能である。
【００９１】
上述の各実施形態においては、マイコン１００が請求項の「情報処理装置」に対応していると考えることもできるし、センサ付き端末１が請求項の「情報処理装置」に対応していると考えることもできる。
【００９２】
また、上述した１チップのＩＣ（半導体集積回路）で構成されるマイコン１００は、請求項の「半導体チップ」に対応していると考えることができる。また、例えばマイコン１００と、ＰＭＩＣ３００、１以上のセンサデバイス４００、不揮発メモリ５００およびネットワークデバイス６００のうちの少なくとも１つとを、１つのシリコンダイに集積して１チップのＩＣで構成することもできる。例えばマイコン１００と、１以上のセンサデバイス４００と、不揮発メモリ５００とを１チップのＩＣで構成することもできるし、マイコン１００と１以上のセンサデバイス４００とを１チップのＩＣで構成することもできるし、マイコン１００と不揮発メモリ５００とを１チップのＩＣで構成することもできる。このように構成される１チップのＩＣが請求項の「半導体チップ」に対応していると考えることもできる。
【００９３】
また、上述のプロセッサコア１０１が実行するプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、上述のプロセッサコア１０１が実行するプログラムを、インターネット等のネットワーク経由で提供または配布するようにしてもよい。また、上述のプロセッサコア１０１が実行するプログラムを、ＲＯＭ等に予め組み込んで提供するようにしてもよい。
【符号の説明】
【００９４】
１      センサ付き端末
１００  マイコン
１０１  プロセッサコア
１０２  ＳＲＡＭ
１２０  タイマ設定部
１２１  タイマ設定部
１４０  タイマ割込みハンドラ
１４１  データ取得部
１４２  データ保存制御部
１４３  省電力モード設定部
１４５  サンプリング間隔変更命令受信部
１５０  コンパレータ割込みハンドラ
１５１  データ取得部
１５２  データ保存制御部
１５３  時刻取得部
１５４  算出部
１５５  省電力モード設定部
２００  電源装置
３００  ＰＭＩＣ
４００  センサデバイス
５００  不揮発メモリ
６００  ネットワークデバイス
【図１】
2015176158.tif 000003
【図２】
2015176158.tif 000004
【図３】
2015176158.tif 000005
【図４】
2015176158.tif 000006
【図５】
2015176158.tif 000007
【図６】
2015176158.tif 000008
【図７】
2015176158.tif 000009
【図８】
2015176158.tif 000010
【図９】
2015176158.tif 000011
【図１０】
2015176158.tif 000012
【図１１】
2015176158.tif 000013
【図１２】
2015176158.tif 000014