【国等の委託研究の成果に係る記載事項】(出願人による申告)平成23年度、独立行政法人新エネルギー・産業技術総合開発機構委託研究「ノーマリーオフコンピューティング基盤技術開発」、産業技術力強化法第19条の適用を受ける特許出願
【文献】
宇佐見公良、橋田達徳,細粒度パワーゲーティングにおける損益分岐時間の温度依存性モデルと温度適応型制御,電子情報通信学会技術研究報告 VLD,VLSI設計技術,日本,一般社団法人電子情報通信学会,2010年 5月12日,Vol.110, No.36,第73頁−第78頁
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0014】
1.実施の形態の概要
先ず、本願において開示される代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【0015】
〔1〕(タスク管理情報に基づいて算出したハードウェアリソースの待機時間と損益分岐時間とを比較することにより、各ハードウェアリソースのスタンバイモードへの遷移を決定するデータ処理装置)
本願の代表的な実施の形態に係るデータ処理装置は、
図1に示されるように、少なくとも1つのスタンバイモードを有する複数のハードウェアリソース(3、4_1、4_2)と、所定の前記ハードウェアリソースを用いて実現されるタスクの実行と前記ハードウェアリソースの動作状態の制御を行うための制御部(1)を有する。前記データ処理装置は更に、前記制御部からの指示に応じて、各ハードウェアリソースに対する電源(VIN_1〜VIN_n)の供給を制御する電源部(2)を有する。前記制御部は、前記タスクを実行するタイミングを決定するための情報(TMI、TMIA)に基づいて前記タスクの実行予定時刻のスケジューリングを行うとともに、前記スケジューリングの結果に基づいて前記ハードウェアリソースが次の前記タスクの実行に利用されるまでの待機時間(Tw)を算出する。更に、前記制御部は、算出した前記待機時間と予め設定された当該ハードウェアリソースの前記スタンバイモードによる損益分岐時間(Tbe1〜Tbe5)とを比較することによって、当該ハードウェアリソースをスタンバイモードに遷移させるか否かを、前記ハードウェアリソース毎に決定する。
【0016】
これによれば、消費電力の削減効果が得られる場合に、スタンバイモードに移行するように夫々のハードウェアリソースが制御することができるので、従来のように、ハードウェアリソースが動作不要な状態になったことを条件としてスタンバイモードに移行させるような単純な制御手法に比べて、データ処理装置全体の消費電力を効果的に削減することができる。
【0017】
〔2〕(タスク管理情報に基づくスケジューリング及び待機時間の算出)
項1のデータ処理装置において、前記タスクを実行するタイミングを決定するための情報は、前記タスクを実行する周期(Tc)と、前記タスクの実行時間(Ton)と、前記タスクの実行に用いられる前記ハードウェアリソースを指示するリソース情報(Rs)と、を含む。前記制御部は、前記タスクを実行する周期に基づいてタスクの実行予定時刻をスケジューリングする。前記制御部は更に、前記リソース情報で指示された所定のハードウェアリソースを使用する所定のタスクの実行完了時刻と前記所定のハードウェアリソースを使用し前記所定のタスクの次に実行されるタスクの実行予定時刻との差分に基づいて前記所定のハードウェアリソースの前記待機時間を算出する。前記実行完了時刻は、前記所定のハードウェアリソースを使用するタスクの実行開始時刻に前記タスクの実行時間を加算することで算出される。
【0018】
これによれば、タスクの実行予定時刻をスケジューリングすることが容易となるとともに、ハードウェアリソース毎の待機時間を容易に算出することが可能となる。
【0019】
〔3〕(待機時間とBETの比較結果に基づくスタンバイモードの選択)
項2のデータ処理装置は、前記複数のハードウェアリソースとして、電源の供給が遮断されない第1スタンバイモード(STB1、STB2)と電源の供給が遮断される第2スタンバイモード(STB3)とを有するデバイスを含む。前記デバイスの前記損益分岐時間として、前記第1スタンバイモードによる第1損益分岐時間(Tbe1,Tbe2)と前記第2スタンバイモードによる第2損益分岐時間(Tbe3)とを含む。前記第2損益分岐時間は、前記第1損益分岐時間よりも大きくされる。前記制御部は、前記デバイスをスタンバイモードに遷移させるとき、前記算出した前記デバイスの待機時間(Tw)が前記第1損益分岐時間より大きく前記第2損益分岐時間より小さい場合に、前記デバイスを前記第1スタンバイモードに遷移させる。一方、前記算出した前記デバイスの待機時間が前記第2損益分岐時間より大きい場合に、前記制御部は、前記デバイスを前記第2スタンバイモードに遷移させる。
【0020】
これによれば、デバイスの待機時間に応じて最適なスタンバイモードを選択するから、当該デバイスの消費電力を効果的に削減することができ、データ処理システム全体の更なる省電力化に資する。
【0021】
〔4〕(マイクロコントローラ)
項3のデータ処理装置において、前記デバイスは、マイクロコントローラである。
【0022】
〔5〕(スケジューリングされたタスクを待機時間が長くなるようにリスケジュールする)
項2乃至4の何れかのデータ処理装置において、前記制御部は、前記スケジューリングされた所要のタスクの実行開始予定時刻と、その次に実行予定のタスクの実行開始予定時刻との時間間隔が短くなるように、前記所要のタスクの実行予定時刻を所定の時間範囲内で変更可能にされる。
【0023】
これによれば、タスクとタスクの実行間隔が短くなるようにスケジューリング結果が見直されるから、ハードウェアリソースの待機時間をより長くすることができる。これにより、各ハードウェアリソースの状態遷移回数を減らすことで遷移に伴うエネルギーオーバーヘッドを削減し、さらにスタンバイ状態にしておくことができる期間が長くなるので、消費電力の更なる削減が期待できる。特に、電源を遮断するスタンバイモードと電源を遮断しないスタンバイモードを有するデバイス(マイコン等)を含むデータ処理装置の場合、待機時間が長くなることで電源が遮断されるスタンバイモードに遷移する確率が高くなるので、更なる電力の削減が期待できる。
【0024】
〔6〕(リスケジューリングの詳細)
項5のデータ処理装置において、前記タスクを実行するタイミングを決定するための情報は、前記タスクを実行すべき周期に対してずらすことが可能な時間を示す猶予時間(Tex)の情報を、更に含む。前記制御部は、スケジューリングされた前記所要のタスクの実行開始予定時刻を基点として前記猶予時間の範囲内に、前記その次に実行予定のタスクの実行がスケジューリングされている場合に、前記所要のタスクに連続して前記その次に実行予定のタスクが実行されるように、前記所要のタスクの実行予定時刻を変更する。
【0025】
これによれば、周期的なタスクの実行を維持しつつ、ハードウェアリソースの待機時間を長くすることが可能となる。
【0026】
〔7〕(温度毎の損益分岐時間BET)
項2乃至6の何れかのデータ処理装置において、前記スタンバイモードによる損益分岐時間が温度情報に対応して複数(HWI_TL、HWI_TM、HWI_TH)設定される。前記制御部は、入力され
た温度情報に基づいて何れか一つの前記損益分岐時間を選択し、選択した前記損益分岐時間を用いて、前記ハードウェアリソースをスタンバイモードに遷移させるか否かの決定を行う。
【0027】
一般に、電源遮断による損益分岐時間は温度によって変化することが知られている。そこで、本データ処理装置のように温度に応じて損益分岐時間を変更することで、より正確に最適なスタンバイモードを選択することができ、温度によらず、データ処理装置の消費電力を効果的に削減することが可能となる。
【0028】
〔8〕(LDOの回路電流)
項3乃至7の何れかのデータ処理装置において、前記電源部は、前記ハードウェアリソースに電源電圧を供給するためのレギュレータ回路(20_1〜20_n)を夫々のハードウェアリソースに対応させて複数有する。前記制御部は、前記ハードウェアリソースをスタンバイモードに遷移させるとき、当該ハードウェアリソースに対応する前記レギュレータ回路の回路電流(IBS)が小さくなるように制御する。
【0029】
これによれば、データ処理装置全体の消費電力を更に削減することが可能となる。
【0030】
〔9〕(スタンバイモード毎にLDOの回路電流を変化させる)
項8のデータ処理装置において、前記制御部は、前記デバイスを前記第2スタンバイモードに遷移させる場合に、前記デバイスに対応する前記レギュレータ回路の動作電流を遮断するように制御する。一方、前記制御部は、前記マイクロコントローラを前記第1スタンバイモードに遷移させる場合に、前記デバイスに対応する前記レギュレータ回路の動作電流が通常時よりも小さくなるように制御する。
【0031】
これによれば、マイクロコントローラに電源を供給するレギュレータ回路に要求される応答性を担保しつつ、消費電力を効果的に抑えることができる。
【0032】
〔10〕(タスクの実行間隔を変更する)
項4乃至9の何れかのデータ処理装置において、前記タスクとして、前記マイクロコントローラが外部から周期的にデータを受信する第1タスク(タスクA又はB)を含む。前記マイクロコントローラは、前記第1タスクの実行によって所要のタイミングで受信したデータとそれ以前のタイミングで受信したデータとの変化量を算出し、その変化量が所定の閾値を超えない場合に、前記第1タスクの実行周期が長くなるように、前記タスクを実行するタイミングを決定するための情報を更新する。
【0033】
これによれば、前記第1タスクの実行間隔が長くなるので、第1タスクの実行に利用されるハードウェアリソース(マイクロコントローラ等)の待機時間をより長くすることが可能となり、更なる消費電力の削減が期待できる。
【0034】
〔11〕(スケジューリングされたタスクを待機時間が長くなるようにリスケジュールするデータ処理システム)
本願の代表的な別の実施の形態に係るデータ処理装置(100)は、少なくとも1つのスタンバイモードを有する複数のハードウェアリソース(3、4_1、4_2)と、所定の前記ハードウェアリソースを用いて実現されるタスクの実行と前記ハードウェアリソースの動作状態の制御を行うための制御部(1)と、を有する。前記データ処理装置は更に、前記制御部からの指示に応じて、各ハードウェアリソースに対する電源の供給を制御する電源部(2)と、を有する。前記制御部は、前記タスクを実行するタイミングを決定するための情報(TMIA)に基づいて、前記タスクの実行予定時刻のスケジューリングを行うとともに、前記スケジューリングの結果に基づいて、所定の前記ハードウェアリソースに対する電源の供給を指示するとともに当該ハードウェアリソースに対して前記タスクの実行を指示する。前記制御部は、前記スケジューリングを行うとき、所要のタスクの実行開始予定時刻と、その次に実行予定のタスクの実行開始予定時刻との時間間隔が短くなるように、前記所要のタスクの実行予定時刻を所定の時間範囲内で変更可能にされる。
【0035】
これによれば、タスクとタスクの実行間隔が短くなるようにスケジューリング結果を見直すことが可能となるから、ハードウェアリソースの待機時間をより長くすることができる。これにより、例えばハードウェアリソースの待機中に当該ハードウェアリソースをスタンバイモードに移行させるという制御を行うことにより、消費電力の更なる削減が期待できる。
【0036】
〔12〕(リスケジューリングの詳細)
項11のデータ処理装置において、前記タスクを実行するタイミングを決定するための情報は、前記タスクを実行する周期(Tc)と、前記タスクの実行時間(Ton)と、前記タスクの実行に用いられる前記ハードウェアリソースを指示する情報(Rs)と、前記タスクを実行すべき周期に対してずらすことが可能な時間を示す猶予時間(Tex)とを、含む。前記制御部は、前記タスクを実行する周期に基づいてタスクの実行予定時刻をスケジューリングする。前記制御部は更に、前記スケジューリングされた所定のタスクの実行開始予定時刻を基点として、前記猶予時間の範囲内に別のタスクの実行がスケジューリングされている場合に、前記所定のタスクに連続して前記別のタスクが実行されるように、前記所定のタスクの実行予定時刻を変更する。
【0037】
これによれば、タスクの実行予定時刻をスケジューリングすることが容易となるとともに、周期的なタスクの実行を維持しつつ、ハードウェアリソースの待機時間を長くするように、スケジューリング結果を見直すことが容易となる。
【0038】
〔13〕(待機時間と損益分岐時間との比較結果に基づいて各ハードウェアリソースのスタンバイモードへの遷移を決定)
項11又は12のデータ処理装置において、前記制御部は、前記スケジューリングの結果に基づいて前記ハードウェアリソースが次の前記タスクの実行に利用されるまでの待機時間を算出する。前記制御部は更に、算出した前記待機時間と予め設定された当該ハードウェアリソースの前記スタンバイモードによる損益分岐時間とを比較することによって、当該ハードウェアリソースをスタンバイモードに遷移させるか否かを、前記ハードウェアリソース毎に決定する。
【0039】
これによれば、消費電力の削減効果が得られる場合に、スタンバイモードに移行するように夫々のハードウェアリソースが制御することができるので、従来のように、ハードウェアリソースが動作不要な状態になったことを条件としてスタンバイモードに移行させるような単純な制御手法に比べて、データ処理装置全体の消費電力を効果的に削減することができる。
【0040】
〔14〕(待機時間の算出)
項13のデータ処理装置において、前記制御部は、前記リソース情報で指示された所定のハードウェアリソースを使用する所定のタスクの実行完了時刻と前記所定のハードウェアリソースを使用し前記所定のタスクの次に実行されるタスクの実行予定時刻との差分に基づいて前記所定のハードウェアリソースの前記待機時間を算出する。前記実行完了時刻は、前記所定のハードウェアリソースを使用するタスクの実行開始時刻に前記タスクの実行時間を加算することで算出される。
【0041】
これによれば、ハードウェアリソース毎の待機時間を容易に算出することが可能となる。
【0042】
〔15〕(待機時間とBETの比較結果に基づくスタンバイモードの選択)
項14のデータ処理装置は、前記ハードウェアリソースとして、電源の供給が遮断されない第1スタンバイモード(STB1、STB2)と電源の供給が遮断される第2スタンバイモード(STB3)とを有するマイクロコントローラを含む。前記マイクロコントローラの前記損益分岐時間として、前記第1スタンバイモードによる第1損益分岐時間(Tbe1,Tbe2)と前記第2スタンバイモードによる第2損益分岐時間(Tbe3)とを含む。前記第2損益分岐時間は、前記第1損益分岐時間よりも大きくされる。前記制御部は、前記マイクロコントローラをスタンバイモードに遷移させるとき、前記算出した前記マイクロコントローラの待機時間(Tw)が前記第1損益分岐時間より大きく前記第2損益分岐時間より小さい場合に、前記マイクロコントローラを前記第1スタンバイモードに遷移させる。一方、前記算出した前記マイクロコントローラの待機時間が前記第2損益分岐時間より大きい場合に、前記制御部は、前記マイクロコントローラを前記第2スタンバイモードに遷移させる。
【0043】
これによれば、マイクロコントローラの待機時間に応じて最適なスタンバイモードを選択するから、当該デバイスの消費電力を効果的に削減することができ、データ処理システム全体の更なる省電力化に資する。
【0044】
〔16〕(温度毎の損益分岐時間BET)
項14又は15のデータ処理装置において、前記スタンバイモードによる損益分岐時間が温度情報に対応して複数(HWI_TL、HWI_TM、HWI_TH)設定される。前記制御部は、入力された前記温度情報に基づいて何れか一つの前記損益分岐時間を選択し、選択した前記損益分岐時間を用いて、前記ハードウェアリソースをスタンバイモードに遷移させるか否かの決定を行う。
【0045】
これによれば、より正確に最適なスタンバイモードを選択することができ、温度によらず、データ処理装置の消費電力を効果的に削減することが可能となる。
【0046】
〔17〕(LDOの回路電流)
項15又は16の何れかのデータ処理装置において、前記電源部は、前記ハードウェアリソースに電源電圧を供給するためのレギュレータ回路(20_1〜20_n)を夫々のハードウェアリソースに対応させて複数有する。前記制御部は、前記ハードウェアリソースをスタンバイモードに遷移させるとき、当該ハードウェアリソースに対応する前記レギュレータ回路の回路電流が小さくなるように制御する。
【0047】
これによれば、データ処理装置全体の消費電力を更に削減することが可能となる。
【0048】
〔18〕(スタンバイモード毎にLDOの回路電流を変化させる)
項15のデータ処理装置において、前記制御部は、前記マイクロコントローラを前記第1スタンバイモードに遷移させる場合に、前記マイクロコントローラに対応する前記レギュレータ回路の動作電流を遮断するように制御する。一方、前記制御部は、前記マイクロコントローラを前記第2スタンバイモードに遷移させる場合に、前記マイクロコントローラに対応する前記レギュレータ回路の動作電流が通常時よりも小さくなるように制御する。
【0049】
これによれば、マイクロコントローラに電源を供給するレギュレータ回路に要求される応答性を担保しつつ、消費電力を効果的に抑えることができる。
【0050】
〔19〕(タスクの実行間隔を変更)
項13乃至16の何れかのデータ処理装置は、前記タスクとして、前記マイクロコントローラが外部から周期的にデータを受信する第1タスク(タスクA又はB)を含む。前記マイクロコントローラは、前記第1タスクの実行によって所要のタイミングで受信したデータとそれ以前のタイミングで受信したデータとの変化量を算出し、その変化量が所定の閾値を超えない場合に、前記第1タスクの実行周期が長くなるように、前記タスクを実行するタイミングを決定するための情報を更新する。
【0051】
これによれば、前記第1タスクの実行間隔が長くなるので、第1タスクの実行に利用されるハードウェアリソース(マイクロコントローラ等)の待機時間をより長くすることが可能となり、更なる消費電力の削減が期待できる。
【0052】
2.実施の形態の詳細
実施の形態について更に詳述する。なお、発明を実施するための形態を説明するための全図において、同一の機能を有する要素には同一の符号を付して、その繰り返しの説明を省略する。
【0053】
≪実施の形態1≫
図2は、実施の形態1に係るデータ処理装置の構成を例示する図である。
【0054】
同図に示されるデータ処理装置100は、例えば、複数のハードウェアリソースを用いて各種のタスクを実行することにより、所望の機能を実現する。データ処理装置100は、例えば一つのセンサシステムを構成し、単数又は複数のセンサによって検出された情報に基づいて各種の演算を行うことにより、各種データの生成や各種の機器の制御を行う。データ処理装置100は、例えば電池又はエネルギーハーベスティング技術による電力供給に基づいて動作可能にされるセンサシステムであって、より省電力での動作が要求される。
【0055】
具体的に、データ処理装置100は、複数のハードウェアリソースとしてのマイクロコントローラ(MCU)3及びセンサ部4_1、4_2と、電源部(PW_CNT)2と、制御部(CNT_UNT)1と、を含んで構成される。なお、
図1には、代表的に上記3つのハードウェアリソースが例示されているが、これらの他に、例えば、外付けメモリ(RAM)や無線IC等のハードウェアリソースをデータ処理装置が備えても良い。また、データ処理装置100が備えるセンサ部の個数に特に制限はない。
【0056】
センサ部4_1は、例えば、外部から入力された情報を電気信号に変換するセンサ装置(SNSR)40_1と、センサ装置40_1によって変換されたアナログ信号を増幅して出力する増幅器(AMP)41_1と、を含んで構成される。増幅器41_1によって増幅されたアナログ信号は、MCU3に供給される。同様に、センサ部4_2は、センサ装置40_2と増幅器41_2とを含んで構成される。特に制限されないが、例えば、センサ装置40_1は温度を計測し、センサ装置40_2は湿度を計測する。
【0057】
MCU3は、センサ部40_1、40_2から供給されたアナログ信号をA/D変換器によってデジタル信号に変換し、MCU内部の演算処理部(CPU)が前記デジタル信号に基づいて各種の演算処理を行う。その演算処理の結果は、各種の情報データ及び機器を制御するための制御データとして、外部に出力可能にされる。例えば、MCU3がセンサ装置40_1、40_2の検出結果を温度データ及び湿度データとして無線IC(図示せず)に供給する。そして、無線ICがアンテナを介して無線通信を行うことにより、温度データ及び湿度データが外部のサーバー等のホストシステムに送信される。
【0058】
電源部2は、制御部1からの指示に応じて、夫々のハードウェアリソースに対する電源供給を制御する。電源部2は、例えば電池又はエネルギーハーベスティング技術によって供給された外部電圧に基づいて、所望の電圧を生成するLDO(Low Drop Out)やスイッチングレギュレータ等の複数のレギュレータ回路を含んで構成される。例えば、電源部2は、各種のLDOやスイッチングレギュレータコントローラ等が公知のCMOS集積回路の製造技術によって1個の単結晶シリコンのような半導体基板に形成された電源ICと、キャパシタやインダクタ等の複数の電子部品とが接続された電子回路によって実現される。電源部2は、夫々のハードウェアリソースに対して、別個に、電源供給の制御が可能にされる。具体的には、電源部2は、夫々のハードウェアリソースに対応して設けられた複数のレギュレータ回路(LDO)20_1〜20_n(nは2以上の整数)を備え、夫々のレギュレータ回路が対応するハードウェアリソースに対する電源の供給や遮断を制御する。
【0059】
ハードウェアリソースとしてのセンサ部4_1、4_2、及びMCU3は、動作モードとして、通常動作モードと、少なくとも1つのスタンバイモードとを有する。
【0060】
図3は、各ハードウェアリソースの動作モードを例示する図である。同図の(a)に示されるように、センサ部4_1は、例えば、電源が供給される非スタンバイモード(通常動作モード)と、電源の供給が遮断されるスタンバイモードSTBの2つの動作モードを有する。また、同図の(b)に示されるように、センサ部4_2は、センサ部4_1と同様に、電源が供給される非スタンバイモード(通常動作モード)と、電源の供給が遮断されるスタンバイモードSTBの2つの動作モードを有する。MCU3は、通常動作モードと複数のスタンバイモードを有する。具体的には、
図3の(c)に示されるように、MCU3は、非スタンバイモード(通常動作モード)と3つのスタンバイモードSTB1、STB2、及びSTB3を動作モードとして有する。なお、本実施の形態ではMCU3が3つのスタンバイモードを有する場合を例に説明するが、スタンバイモードの数に特に制限はない。スタンバイモードSTB1は、例えばMCU3のクロック周波数を通常動作モードよりも低くする動作モードであり、スタンバイモードSTB2は、例えばMCU3のクロック周波数と電源電圧を通常動作モードよりも低くする動作モードであり、スタンバイモードSTB3は、例えばMCU3の電源供給を遮断する動作モードである。省電力効果は、スタンバイモードSTB1よりもスタンバイモードSTB2の方が大きく、スタンバイモードSTB2よりもスタンバイモードSTB3の方が大きい。
【0061】
夫々のハードウェアリソースが何れの動作モードで動作するかは、制御部1が各ハードウェアリソースの待機時間とスタンバイモードによる損益分岐時間BETを比較することによって決定される。例えば、
図3の(a)に示されるように、センサ部4_1は、待機時間Twが損益分岐時間Tbe4以上である場合に、スタンバイモードに遷移するように制御される。同様にセンサ部4_2は、
図3の(b)に示されるように、待機時間Twが損益分岐時間Tbe5以上である場合に、スタンバイモードに遷移するように制御される。更に、MCU3は、
図3の(c)に示されるように、待機時間Twが損益分岐時間Tbe1よりも大きい場合にスタンバイモードに遷移するように制御される。この場合において、待機時間Twが損益分岐時間Tbe1より大きく損益分岐時間Tbe2より小さい場合には、MCU3はスタンバイモードSTB1に遷移するように制御され、待機時間Twが損益分岐時間Tbe2より大きく損益分岐時間Tbe3より小さい場合には、MCU3はスタンバイモードSTB2に遷移するように制御される。更に、待機時間Twが損益分岐時間Tbe3より大きい場合には、MCU3はスタンバイモードSTB3に遷移するように制御される。
【0062】
次に、制御部1について詳細に説明する。
【0063】
制御部1は、所定のハードウェアリソースを用いて実現されるタスクの実行とハードウェアリソースの動作状態の制御を行う。具体的には、制御部1は、タスクを実行するタイミングを決定するための情報に基づいて、タスクの実行予定時刻のスケジューリングを行う。制御部1は、そのスケジューリングの結果に従って、所定のハードウェアリソースに対する電源の供給を電源部2に指示するとともに当該ハードウェアリソースに対してタスクの実行を指示する。更に、制御部1は、スケジューリングの結果に基づいて、ハードウェアリソースが次のタスクの実行に利用されるまでの待機時間を算出し、算出した待機時間と予め設定された当該ハードウェアリソースのスタンバイモードによる損益分岐時間とを比較することによって、当該ハードウェアリソースをスタンバイモードに遷移させるか否かを、ハードウェアリソース毎に決定する。以下、制御部1による動作内容について具体的に説明する。なお、本実施の形態では、制御部1が電源部2の内部(電源ICの内部)に形成される場合を例に説明する。
【0064】
図4は、制御部1の内部構成を例示する図である。同図に示されるように、制御部1は、演算制御部(ATC_CNT_UNT)10と、通信部(CMM_UNT)11と、タイマ部(TMR_CNTR)12と、記憶部(MRY_UNT)13〜15と、を含んで構成される。
【0065】
通信部11は、外部装置と通信を行うための機能部であり、例えば、シリアル通信制御部(SRL_CMM)110と、割り込み通信部(INTC)111とを含む。シリアル通信制御部110は、外部装置とシリアル通信を行うための機能部である。例えば、制御部1は、シリアル通信制御部110を介してMCU3とシリアル通信を行う。割り込み通信部111は、演算制御部10からの割り込み要求に応じてMCU3に対する割り込み信号SINT_Oを生成するとともに、MCU3やその他のハードウェアリソースからの割り込み信号SINT_Iに応じて、演算制御部10に対して外部割り込み要求を発行する。
【0066】
タイマ部12は、所定のクロック信号(図示せず)をカウントすることにより計時を行うタイマカウンタである。タイマ部12は、例えば演算制御部10によってカウント動作の開始が指示されたらクロック信号のカウント動作を開始する。そして、演算制御部10によって設定された指定値とカウント動作によるカウント値とが一致したら、その旨を演算制御部10に通知する。
【0067】
演算制御部10は、タスクのスケジューリングやタスクを実行させるためのシーケンス制御、及び各ハードウェアリソースの動作モードの変更等に関する各種の演算処理や統括的な制御を行うための機能部である。演算制御部10は、例えば、専用のハードウェアロジックによって実現されても良いし、CPUやDSP等のプログラム処理装置がプログラムを実行することによって実現されても良く、特に制限されない。演算制御部10による具体的な制御内容については、後述する。
【0068】
記憶部13〜15は、演算制御部10によるタスクのスケジューリングやシーケンス制御、及び各ハードウェアリソースの動作モードの変更等の制御のための各種の情報を格納する。記憶部13〜15は、例えば、データを記憶するための記憶領域を有するレジスタやメモリによって実現される。
【0069】
記憶部13は、タスクを実行するタイミングを決定するための情報(以下、「タスク管理情報」と称する。)TMIを格納する。
図5にタスク管理情報の一例を示す。同図に示されるように、タスク管理情報TMIは、タスクの実行周期Tc、タスクの実行時間Ton、タスク実行の繰り返し回数Rc、及び使用するハードウェアリソースの情報Rsを含む。夫々の情報は、データ処理装置100で実行可能なタスクの種類毎にまとめられる。タスクの実行周期Tcは、タスクを定期的に実行する周期を示す情報である。タスクの実行時間Tonは、タスクが実行されてから終了するまでに要する時間を示す情報である。タスク実行の繰り返し回数Rcは、周期的に実行するタスクを何回行うかを示す情報である。使用するハードウェアリソースの情報Rsは、そのタスクを実行するのに必要なハードウェアリソースを指示する情報である。本実施の形態では、MCU3をハードウェアリソース番号“0”で表し、センサ部4_1をハードウェアリソース番号“1”で表し、センサ部4_2をハードウェアリソース番号“2”で表す。ここで、例えば、タスクAを“センサ部4_1の検出結果をMCU3に取り込む処理”とし、タスクBを“センサ部4_2の検出結果をMCU3に取り込む処理”とする。この場合、
図5のタスク管理情報TMIは、“タスクAはセンサ部4_1とMCU3とを用いて50ms毎に繰り返し実行される処理であって、その処理時間が1msとされる”ことを示し、“タスクBはセンサ部4_2とMCU3とを用いて55ms毎に繰り返し実行される処理であって、その処理時間が2msとされる”ことを示している。これらの情報は、例えばパワーオンリセット解除後の初期化時等において、MCU3とのシリアル通信を介して記憶部13に設定される。
【0070】
記憶部14は、ハードウェアリソースの情報(以下、「ハードウェア情報」と称する。)HWIを格納する。
図6にハードウェア情報の一例を示す。同図に示されるように、ハードウェア情報
HWIは、各ハードウェアリソースのスタンバイモード毎の損益分岐時間の情報を含む。前述したように、電源遮断等のスタンバイモードに遷移することによるオーバーヘッドよりもスタンバイモードに遷移することによる消費電力の削減量が大きくなる臨界点の時間を損益分岐時間BETと称する。詳細は後述するが、本実施の形態によるデータ処理装置100では、ハードウェアリソースの待機時間が損益分岐時間BETよりも大きいと判断される場合に、ハードウェアリソースを所定のスタンバイモードに遷移させる制御を行う。
【0071】
図6に示されるように、MCU3のハードウェア情報として、スタンバイモードSTB1の損益分岐時間Tbe1の情報、スタンバイモードSTB2の損益分岐時間Tbe2の情報、及びスタンバイモードSTB3の損益分岐時間Tbe3の情報が含まれる。また、センサ部4_1のハードウェア情報としてスタンバイモードSTBの損益分岐時間Tbe4の情報が、センサ部4_2のハードウェア情報としてスタンバイモードSTBの損益分岐時間Tbe5の情報が夫々含まれる。これらの情報は、例えばパワーオンリセット解除後の初期化時等において、MCU3とのシリアル通信を介して記憶部14に設定される。なお、同図に示される各損益分岐時間の値はあくまで一例であり、損益分岐時間として種々の値が設定可能である。
【0072】
記憶部15は、タスクの実行予定及び実行状況を管理するための情報(以下、「キューリスト」と称する。)QUE_LSTが格納される。キューリストQUE_LSTは、タスクの種類毎に生成されたリストを含む。
図7に、キューリストの一例を示す。例えば、同図に示されるように、キューリストQUE_LSTは、タスクAのリスト31_0とタスクBのリスト31_1を含む。夫々のリスト31_
0、31_
1には、タスクID(TASK ID)、タスクの実行状態(Status)、実行予定時刻(Scheduled time)、及び使用されるハードウェアリソース(Resource[2:0])等の情報が格納される。ここで、タスクIDは、同一種類のタスクの中で、実行すべき順番に応じて付与されるタスクの識別情報である。タスクの実行状態の情報は、タスクIDが付与されたタスクの状態を示すものである。タスクの実行状態の情報について、“Exe”はそのタスクが実行中であることを示し、“Ready”は、そのタスクが“Exe”状態の他のタスクの実行が完了したら続けて実行可能な状態であることを示し、“Wait”はそのタスクが待機中であることを示す。実行予定時刻の情報は、タスクIDが付与されたタスクが実行される予定時刻を示すものである。使用されるハードウェアリソースの情報は、タスクIDが付与されたタスクで必要となるハードウェアリソースを示すものである。特に制限されないが、使用されるハードウェアリソースの情報は、
図7に示されるように、各桁が夫々のハードウェアリソースに対応しており、例えば、同図の右端の桁がMCU3を表し、真ん中の桁がセンサ部4_1を表し、左端の桁がセンサ部4_2を表す。桁の値が“1”の場合には、その桁に対応するハードウェアリソースがそのタスクの実行に利用されることを表し、桁の値が“0”の場合には、その桁に対応するハードウェアリソースがそのタスクの実行に利用されないことを示す。例えば、
図7のリスト31_0は、タスクA_1、A_2の実行により、MCU3及びセンサ部4_1が使用され、センサ部4_2が使用されないことが示されている。同様に、
図7のリスト31_1は、タスクB_1、B_2の実行により、MCU3及びセンサ部4_2が使用され、センサ部4_1が使用されないことが示されている。なお、
図7に記された具体的な数値等は、あくまで一例である。
【0073】
次に、演算制御部10による制御シーケンスについて、
図8及び
図9を用いて説明する。
【0074】
図8は、実施の形態1に係るタスクのスケジューリングと動作モードの決定の流れの一例を示す図である。
図9は、実施の形態1に係るデータ処理装置におけるキューリストの更新の様子を示す図である。例えば、実施の形態1に係るキューリストは、
図8のフローに従って、
図9の(a)、
図9の(b)、
図9の(c)、
図9の(d)の順に更新される。
【0075】
図8において、先ず、電源投入後のパワーオンリセット等の解除後にタスク管理情報TMI及びハードウェア情報HWIが記憶部13、14に初期設定されると、演算制御部10は、タスク管理情報TMIに基づいてキューリストを作成し、キューリストにおける全ての種類のタスクの先頭タスクの実行状態を“Ready”にする(S101)。なお、その他のタスクは、“Wait”状態にされる。ここでは、
図9の(a)に示されるキューリストが作成されたとする。
【0076】
次に、演算制御部10は、“Ready”状態のタスクのうち最も優先度の高いタスクを実行させ、当該タスクの実行状態を“Exe”にする(S102)。本実施の形態では、タスクの優先度は、例えば、タスクの実行周期が短い順に決定されるものとする。ここでは、
図9の(a)のキューリストにおけるタスクA_1の実行状態が“Exe”にされ、
図9の(b)のようにキューリストが更新されたとする。タスクの実行は、演算制御部10が、キューリストにおいて“使用するハードウェアリソース”の情報で指定されたハードウェアに対する電源の供給を電源部2に指示するとともに、当該ハードウェアリソースに対して起動トリガ(割り込み信号等)を発行することによって実現される。例えば、
図9の(b)の場合、演算制御部10は、MCU3とセンサ部4_1に対する電源供給と動作開始の指示を行う。
【0077】
次に、演算制御部10は、キューリストにおける“Exe”状態のタスクと同一種類のタスクの実行予定時刻を設定する(S103)。具体的には、演算制御部10は、タスク管理情報TMIにおけるタスクの実行周期Tcに基づいて、タスクの実行予定時刻を設定する。例えば、
図9の(b)には、実行中のタスクA_1と同一種類のタスクA_2の実行予定時刻として“50ms”が設定された場合が示されている。
【0078】
次に、演算制御部10は、キューリストにおいて“Ready”状態の他のタスクが存在するか否かを判定する(S104)。“Ready”状態の他のタスクが存在する場合には、演算制御部10は、“Ready”状態のタスクのうち最も優先度の高いタスクを選択し、選択したタスクの実行予定時刻を設定する(S105)。具体的には、演算制御部10は、その時に実行されているタスクの実行予定時刻からそのタスクの実行時間分だけずらした時刻を、選択したタスクの実行予定時刻とする。例えば、
図9の(b)には、実行中のタスクA_1の実行開始時刻(0ms)からタスクA_1の実行時間(1ms)だけ経過した時刻“1ms”を“Ready”状態のタスクB_1の実行予定時刻として設定した場合が示されている。一方、ステップS104において、“Ready”状態の他のタスクが存在しない場合には、演算制御部10は、“Wait”状態のタスクのうち最も実行予定時刻の早いタスクを選択し、選択したタスクの実行予定時刻をタイマ部12に設定する(S106)。例えば、
図9(c)のように、“Ready”状態の他のタスクがない場合には、“Wait”状態のタスクA_2、B_2のうち実行予定時刻の最も早いタスクA_2の実行予定時刻(50ms)をタイマ部12にセットとする。以上の処理により、タスクがキューリストにスケジューリングされる。
【0079】
次に、演算制御部10は、スケジューリング結果に基づいて、各ハードウェアリソースの待機時間の算出を行う。先ず、演算制御部10は、現在実行中のタスク(“Exe”状態のタスク)で使用されているハードウェアリソースの何れか一つを選択し、選択されたハードウェアリソースを利用する次のタスクを探索する(S107)。具体的には、現在実行中のタスクと同一種類のタスクの中で最も実行予定時刻の早いタスク、又は現在実行中のタスクと異なる種類のタスクの中で最も実行予定時刻の早いタスクが選択される。次に、演算制御部10は、ハードウェアリソースの待機時間を算出する(S108)。具体的には、現在実行されているタスクの実行予定時刻に当該タスクの実行時間を加算することで、現在実行されているタスクの終了予定時刻を算出する。次に、算出した終了予定時刻と、ステップS107で選択されたタスクの実行予定時刻との差分を算出し、算出した差時間をステップS107で選択したハードウェアリソースの待機時間とする。演算制御部10は、ステップS108で算出した所定のハードウェアリソースの待機時間と、当該ハードウェアリソースの各スタンバイモードに係る損益分岐時間BETとを比較し、次に遷移させるべき動作モードを決定する(S109)。演算制御部10は、全てのハードウェアリソースの動作モードが決定するまで、上記S107〜S109の処理を繰り返す。
【0080】
演算制御部10は、“Exe”状態のタスクの実行が終了したら、各ハードウェアリソースに対して、ステップ
S109で決定した動作モードに遷移させる(S110)。具体的には、所定のハードウェアリソースをスタンバイモードに遷移させる場合、演算制御部10は、当該ハードウェアに対する電源遮断や電源電圧の低下等を電源部2に指示するとともに、当該ハードウェアリソースに対して割り込み信号等を発行してスタンバイモードに移行することを通知する。その後、演算制御部10は、キューリストを参照し、他に“Ready”状態のタスクがあるか否かを判断する(S111)。他に“Ready”状態のタスクがある場合には、ステップS102に戻り、上記の処理を繰り返し実行する(S102〜S110)。他に“Ready”状態のタスクがない場合には、演算処理部10は、起動時刻をタイマ部12にセットし、待機状態に入る(S112)。例えば、
図9の(d)のように、全てのタスクが“Wait”状態となったら、次のタスクの実行予定時刻(例えば、タスクA_2の実行予定時刻50ms)になるまで、演算処理部10は待機状態となる。その後、ステップS112で設定した起動時刻になったら、演算処理部10はタイマ部12からの通知に応じて待機状態から復帰し、ステップS102から処理を再開する。
【0081】
ここで、上記ステップS107〜S109による各ハードウェアリソースの待機時間の算出と動作モードの決定に係る処理について、
図9の(b)、(c)を用いて具体的に説明する。
【0082】
図9の(b)のスケジューリング結果における各ハードウェアリソースの動作モードの決定手順は以下である。
図9の(b)に示されるように、実行中のタスクA_1で使用されているハードウェアリソースは、センサ部4_1とMCU3である。センサ部4_1は、タスクA_2でのみ使用が予定されていることから、演算処理部10は、ステップS107において、センサ部4_1の使用を予定している次のタスクとして“タスクA_2”を選択する。一方、MCU3は、タスクA_2とタスクB_1で使用が予定されており、タスクA_2よりもタスクB_1の方が実行予定時刻が早いことから、演算処理部10は、ステップS107において、MCU3の使用を予定している次のタスクとして“タスクB_1”を選択する。次に、演算制御部10は、ステップS108において、センサ部4_1とMCU3の待機時間を夫々算出する。センサ部4_1の待機時間を算出する場合、演算制御部10が、現在実行中のタスクA_1の実行予定時刻(0ms)とタスクA_1の実行時間(1ms)とを加算することで、タスクA_1の終了予定時刻(1ms)を算出する。そして、演算制御部10は、算出したタスクA_1の終了予定時刻(1ms)と、ステップS107で選択したタスクA_2の実行予定時刻(50ms)との差(49ms)を算出し、その差をセンサ部4_1の待機時間(49ms)とする。また、MCU3の待機時間を算出する場合、演算制御部10は、先ほど算出したタスクA_1の終了予定時刻(1ms)と、ステップS107で選択したタスクB_1の実行予定時刻(1ms)との差(0ms)を算出し、その差をセンサ部4_1の待機時間(0ms)とする。次に、演算制御部10は、ステップS108において、算出した待機時間と損益分岐時間とを比較する。この場合、センサ部4_1の待機時間(49ms)が損益分岐時間Tbe4(10ms)より大きいので、演算制御部10は、タスクA_1の終了後にセンサ部4_1をスタンバイモードに遷移させることを決定する。一方、MCU3の待機時間(0ms)であり、MCU3はタスクA_1の後に連続してタスクB_1で使用されるため、演算制御部10は、MCU3をスタンバイモードに遷移させず、通常動作モードでの動作を継続させることを決定する。
【0083】
図9の(c)のスケジューリング結果における各ハードウェアリソースの動作モードの決定手順は以下である。
図9の(c)に示されるように、実行中のタスクB_1で使用されているハードウェアリソースは、センサ部4_2とMCU3である。センサ部4_2は、タスクB_2でのみ使用が予定されていることから、演算処理部10は、ステップS107において、センサ部4_2の使用を予定している次のタスクとして“タスクB_2”を選択する。一方、MCU3は、タスクA_2とタスクB_2で使用が予定されており、タスクB_2よりもタスクA_2の方が実行予定時刻が早いことから、演算処理部10は、ステップS107において、MCU3の使用を予定している次のタスクとして“タスクA_2”を選択する。次に、演算制御部10は、ステップS108において、センサ部4_2とMCU3の待機時間を夫々算出する。センサ部4_2の待機時間を算出する場合、演算制御部10が、現在実行中のタスクB_1の実行予定時刻(1ms)とタスクB_1の実行時間(2ms)とを加算することで、タスクB_1の終了予定時刻(3ms)を算出する。そして、演算制御部10は、算出したタスクB_1の終了予定時刻(3ms)と、ステップS107で選択したタスクB_2の実行予定時刻(56ms)との差(53ms)を算出し、その差をセンサ部4_2の待機時間(53ms)とする。また、MCU3の待機時間を算出する場合、演算制御部10は、先ほど算出したタスクB_1の終了予定時刻(3ms)と、ステップS107で選択したタスクA_2の実行予定時刻(50ms)との差(47ms)を算出し、その差をMCU3の待機時間(47ms)とする。次に、演算制御部10は、算出した待機時間と損益分岐時間とを比較する。この場合、センサ部4_2の待機時間(53ms)が損益分岐時間Tbe5(10ms)より大きいので、演算制御部10は、タスクB_1の終了後にセンサ部4_2をスタンバイモードに遷移させることを決定する。一方、MCU3の待機時間(47ms)が損益分岐時間Tbe3(29ms)より大きいので、演算制御部10は、タスクB_1の終了後にMCU3をスタンバイモードSTB3(電源遮断)に遷移させることを決定する。
【0084】
以上の手順で各ハードウェアリソースの待機時間が算出され、各ハードウェアリソースの動作モードが決定される。
【0085】
次に、制御部10とMUC3との間の通信について説明する。
【0086】
MCU3は、演算制御部10の内部に設けられたタスク/モードレジスタ(TASK/MODE_REG)16を参照することにより、次に実行すべきタスクの種類や次に遷移すべき動作モード等を把握する。タスク/モードレジスタ16を利用した制御部10とMUC3との間の通信手順について、
図10を用いて具体的に説明する。
【0087】
図10は、MCU3の動作モードを変更するときの制御部10と
MCU3間の通信の流れを示す図である。なお、同図に記されたステップ番号は、前述した
図8のフロー図のステップ番号に対応する。
【0088】
先ず、ステップS101において、演算制御部10は、キューリストにおける全ての先頭タスクの実行状態を“Ready”にした後、実行させるタスクを示す値をタスク/モードレジスタ16に設定する。ここでは、タスクA_1が実行されるものとし、タスク/モードレジスタ16にはタスクA_1を示す値が設定される。
【0089】
演算制御部10は、ステップS102において、実行させるタスクで使用されるMCU3及びセンサ部4_1に対する
電源供給開始を電源部2に指示するとともに、MCU3に対して割り込み信号SINT_Oを発行してタスクの実行を指示する。MCU3は、電源部2からの電源供給と割り込み信号SINT_Oに応じて待機状態から復帰すると、先ず、タスク/モードレジスタ16に設定された情報を読み出す。そして、MCU3は、タスク/モードレジスタ16で指示されたタスクA_1を実行する。この間、演算制御部10は、上述したステップS103〜S110の処理を行うことで、タスクのスケジューリングと各ハードウェアリソースの待機時間に基づく動作モードの決定を行う。ここでは、MCU3の次に遷移すべき動作モードとしてスタンバイモードSTB2が選択されたとする。
【0090】
タスクの実行が完了すると、MCU3が演算制御部10に対して割り込み信号SINT_Iを発行する。割り込み信号SINT_Iを受けた演算制御部10は、タスク/モードレジスタ16にスタンバイモードSTB2を指示する値を設定する。そして、演算制御部10は、MCU3に対して割り込み信号SINT_Oを発行することでMCU3の動作モードが変更されることを通知する。割り込み信号SINT_Oを受けたMCU3は、シリアル通信により、タスク/モードレジスタ16の値を読み出す。そして、MCU3はスタンバイモードSTB2に遷移する前に、必要に応じて、各種のレジスタに設定されたデータ等を不揮発性のメモリ等に退避させる等の準備処理を行う。MCU3は、上記準備処理が完了したら、演算制御部10に対して割り込み信号SINC_Iを発行する。割り込み信号SINC_Iを受けた演算制御部10は、ステップS110において、電源部2に対し、MCU
3の電源供給状態を変化させることを指示する。これにより、MCU3は、スタンバイモードSTB2で動作する。
【0091】
図11に、実施の形態1に係るデータ処理装置におけるタスクのスケジューリング結果とMCU3の動作モードの遷移状態の一例を示す。前述したように、タスクAの実行周期Tcは50ms、実行時間Tonは1msであり、タスクBの実行周期Tcは55ms、実行時間Tonは1msである。また、前述したように、
MCU3はタスクAとタスクBの双方で使用される。なお、同
図において、“1”はスタンバイモードSTB1を表し、“2”はスタンバイモードSTB2を表し、“3”はスタンバイモードSTB3を表し、斜線部は通常動作モード(非スタンバイモード)を表す。
【0092】
同図に示されるように、タスクB_1の実行が完了してからタスクA_2が実行されるまでの期間におけるMCU3の待機時間は“47ms”であり、MCU3のスタンバイモードSTB3の損益分岐時間Tbe3(29ms)よりも大きい。そのため、当該期間において、MCU3はスタンバイモードSTB3に遷移し、電源供給が遮断される。また、タスクA_2の実行が完了してからタスクB_2が実行されるまで期間におけるMCU3の待機時間は“5ms”であり、MCU3のスタンバイモードSTB1の損益分岐時間Tbe1(2ms)より大きいが、スタンバイモードSTB2の損益分岐時間Tbe2(11ms)よりも小さい。そのため、当該期間において、MCU3は、スタンバイモードSTB1に遷移する。このように、
MCU3の待機時間に応じて最適なスタンバイモードが動的に選択される。
【0093】
以上、実施の形態1に係るデータ処理装置によれば、十分な消費電力の削減効果が得られるように、夫々のハードウェアリソースの待機時間とスタンバイモードによる損益分岐時間BETとを比較することで、ハードウェアリソース毎に最適なスタンバイモードを決定するから、データ処理装置の消費電力を削減することができる。特に、複数のスタンバイモードを有するデバイス(マイクロコントローラ等)を含むデータ処理装置の消費電力を効果的に削減する手法として、特に有効である。また、本データ処理装置によれば、従来のように、ハードウェアリソースが動作不要な状態になったことを条件としてスタンバイモードに移行させるような単純な制御手法に比べて、データ処理装置全体の消費電力を効果的に削減することができる。また、タスク管理情報TMIを用いることで、タスクのスケジューリングが容易となるとともに、ハードウェアリソースの待機時間を容易に算出することが可能となる。
【0094】
≪実施の形態2≫
実施の形態2に係るデータ処理装置は、実施の形態1に係るデータ処理装置の機能に加え、ハードウェアリソースの待機時間が長くなるように、一旦スケジューリングされたタスクの実行予定時刻を変更(リスケジュール)する機能を備える。
【0095】
実施の形態2に係るデータ処理装置は、実施の形態1に係るデータ処理装置10と主なハードウェア構成は同様であり、記憶部13に格納されるタスク管理情報及び記憶部15に格納されるキューリストのデータ構造が相異する。
【0096】
図12は、実施の形態2に係るタスク管理情報の一例を示す図である。同図に示されるタスク管理情報TMIAは、実施の形態1に係るタスク管理情報TMIに加えて、猶予時間Texの情報を更に含む。猶予時間Texとは、タスクを実行すべき周期に対してずらすことが可能な時間を示す情報である。例えば、
図12に示されるように、タスクAの実行周期Tcが50ms、猶予時間TexがTc/4(12.5ms)である場合、時刻0msにおいて実行されたタスクA_1の次に実行されるタスクA_2の実行予定時刻を、“50ms+12.5ms”の範囲内に設定することができる。
【0097】
図13は、実施の形態2に係るキューリストの一例を示す図である。同図に示されるキューリストQUE_LSTAは、実施の形態1に係るキューリストQUE_LSTと同様に、タスクの種類毎にリスト32_0、32_1が作成される。キューリストQUE_LSTAは、夫々のリスト32_0、32_1には、実施の形態1に係るリスト31_0、31_1の情報に加えて、“変更後の実行予定時刻(Rescheduled time)”を示す情報が含まれる。スケジューリングされた実行予定時刻(Scheduled time)が変更された場合に、変更後の実行予定時刻の情報がキューリストに書き込まれる。
【0098】
図14は、実施の形態2に係るタスクのスケジューリングと動作モードの決定の流れの一例を示す図である。
図15は、実施の形態2に係るデータ処理装置におけるキューリストの更新の様子を示す図である。例えば、実施の形態2に係るキューリストは、
図14のフローに従って、
図15の(a)、
図15の(b)、
図15の(c)、
図15の(d)の順に更新される。
【0099】
図14に示されるフロー図は、ステップS106の処理の代わりにステップS201〜S203の処理を含む点で
図8のフロー図と相異する。なお、
図8のフロー図と同一の処理ステップについては、同一の符号を付して、その詳細な説明を省略する。
【0100】
先ず、電源投入後のパワーオンリセット等の解除後にタスク管理情報
TMIA及びハードウェア情報HWIが記憶部13、14に初期設定されると、演算制御部10は、タスク管理情報TMIAに基づいてキューリストを作成し、キューリストにおける全ての種類のタスクの先頭タスクの実行状態を“Ready”にする(S101)。なお、その他のタスクは、“Wait”状態にされる。ここでは、
図15の(a)に示されるキューリストが作成されたとする。
【0101】
次に、演算制御部10は、“Ready”状態のタスクのうち最も優先度の高いタスクを実行させるとともに当該タスクの実行状態を“Exe”にする(S102)。そして、演算制御部10は、キューリストにおける“Exe”状態のタスクと同一種類のタスクの実行予定時刻を設定する(S103)。ここでは、
図15の(a)のキューリストにおけるタスクA_1の実行状態が“Exe”にされ、
図15の(b)のように、実行中のタスクA_1と同一種類のタスクA_2の実行予定時刻として“50ms”が設定されたとする。
【0102】
次に、演算制御部10は、キューリストにおいて“Ready”状態の他のタスクが存在するか否かを判定する(S104)。“Ready”状態の他のタスクが存在する場合には、演算制御部10は、“Ready”状態のタスクのうち最も優先度の高いタスクを選択し、選択したタスクの実行予定時刻を設定する(S105)。例えば、
図15の(b)には、実行中のタスクA_1の実行開始時刻(0ms)からタスクA_1の実行時間(1ms)だけ経過した時刻“1ms”を“Ready”状態のタスクB_1の実行予定時刻として設定した場合が示されている。その後の処理も、前述の
図8のフロー図と同様の手順で進められる(S107〜S112)。
【0103】
一方、ステップS104において、“Ready”状態の他のタスクが存在しない場合、演算制御部10は、“Wait”状態のタスクのうち最も実行予定時刻の早いタスクを選択する(S201)。そして、演算制御部10は、ステップS201で選択したタスクの実行開始予定時刻を基点とした猶予時間Texの範囲内に、実行が予定されている別のタスクがあるか否かを判別する(S202)。猶予時間Texの範囲内に実行予定の別のタスクがスケジューリングされている場合には、ステップS201で選択した“Wait”状態のタスクと前記別のタスクとの時間間隔が短くなるように、ステップS201で選択した“Wait”状態のタスクの実行予定時刻を変更する(S203)。なお、“Wait”状態のタスクが複数ある場合には、ステップS202、S203を繰り返し実行し、できる限りまとめてタスクを実行できるよう再調整する。一方、猶予時間Texの範囲内に実行が予定されている別のタスクが存在しない場合、又はステップS202で実行予定時刻の変更が完了した場合には、ステップS107に移行し、実施の形態1と同様の処理手順で各ハードウェアリソースの動作モードが決定される(S107〜S112)。
【0104】
ここで、上記ステップS201〜S203によるタスクの実行予定時刻の変更に係る処理について、
図15の(c)を用いて具体的に説明する。
【0105】
図15の(c)のスケジューリング結果におけるタスクの実行予定時刻の変更の手順は以下である。
図15の(c)に示されるように、“Wait”状態のタスクは、タスクA_2、タスクB_2、及びタスクA_3であり、夫々の実行開始予定時刻は、“50ms”、“56ms”、及び“未定”である。ステップS201において、演算処理部10は、“Wait”状態のタスクA_2、A_3、B_2のうち最も実行予定時刻の早い“タスクA_2”を選択する。次に、演算処理部10は、ステップ202において、選択されたタスクA_2の実行開始予定時刻から猶予時間Texの範囲内に、実行が予定されている別のタスクがあるか否かを判断する。具体的には、演算処理部10は、選択されたタスクA_2の実行予定時刻(50ms)にタスクAの猶予時間Tex(Tc/4=12.5ms)を加算した時刻(62.5ms)までに、別のタスクがあるか否かを判断する。
図15の(c)の場合、時刻62.5msまでの間にタスクB_2(実行予定時刻56ms)の実行が予定されているため、演算制御部10は、猶予時間内に別のタスクがあると判断する。次に、演算処理部10は、タスクA_2とタスクB_2との時間間隔が短くなるようにタスクA_2の実行予定時刻を変更する。具体的には、タスクA_2とタスクB_2が連続して実行されるようにタスクA_2の実行予定時刻を変更する。例えば、
図15の(c)に示されるように、タスクB_2の実行予定時刻が“56ms”であり、タスクA_2の実行時間が“1ms”であることから、タスクA_2とタスクB_2が連続実行されるように、タスクA_2の実行予定時刻を“50ms”から“55ms”に変更する。これにより、実行中のタスクB_1の終了予定時刻からタスクA_2の実行予定時刻までの時間間隔が長くなる。
【0106】
図16に、実施の形態2に係るタスクのスケジューリング結果とMCU3の動作モードの遷移状態の一例を示す。前述したように、タスクAの実行周期Tcは50ms、実行時間Tonは1ms、猶予時間TexはTc/4(=12.5ms)であり、タスクBの実行周期Tcは55ms、実行時間Tonは1ms、猶予時間TexはTc/2(=27.5ms)である。また、前述したように、
MCU3はタスクAとタスクBの双方で使用される。なお、同
図において、“1”はスタンバイモードSTB1を表し、“2”はスタンバイモードSTB2を表し、“3”はスタンバイモードSTB3を表し、斜線部は通常動作モード(非スタンバイモード)を表す。
【0107】
図16に示されるように、前述した制御部1によるスケジューリングの変更により、タスクB_1の実行中にタスクA_2の実行予定時刻が“50ms”から“55ms”に変更される。これにより、タスクB_1が完了してからタスクA_2が実行されるまでのMCU3の待機時間が、“47ms”(
図11参照)から52msに増加する。すなわち、MCU3の電源が遮断される期間(スタンバイモードSTB3で動作する期間)が長くなる。同様に、タスクA_3の実行予定時刻が変更されることにより、タスクB_2が完了してからタスクA_3が実行されるまでのMCU3の待機時間が“42ms”(
図11参照)から“52ms”に増加し、MCU3の電源が遮断される期間が長くなる。更に、タスクA_5以降では、同様の原理でタスクB_5の実行予定時刻が変更されることにより、タスクA_5が完了してからタスクB_5が実行されるまでの待機時間が“20ms”(
図11参照)から“47ms”に増加し、MCU3の電源が遮断される期間が長くなる。
【0108】
このように、実施の形態2に係るデータ処理装置によれば、タスクとタスクの実行間隔が短くなるようにスケジューリング結果が見直されるから、ハードウェアリソースの待機時間をより長くすることができる。これにより、各ハードウェアリソースをスタンバイ状態にしておくことができる期間が長くなるので、データ処理装置の消費電力を更に削減することができる。特に、本実施の形態のように、電源を遮断するスタンバイモードと電源を遮断しないスタンバイモードを有するデバイス(マイコン等)を含むデータ処理装置の場合、待機時間が長くなることで電源が遮断されるスタンバイモードに遷移する確率が高くなるので、更なる電力の削減が期待できる。
【0109】
≪実施の形態3≫
実施の形態3に係るデータ処理装置は、実施の形態1に係るデータ処理装置の機能に加え、スタンバイモードに応じて電源部2のレギュレータ回路の回路電流を変更する機能を備える。
【0110】
図17は、実施の形態3に係るデータ処理装置におけるレギュレータ回路20_nの内部構成を例示する図である。同図に示されるように、各ハードウェアリソースに電源を供給するレギュレータ回路20_nは、差動増幅器DAMPと、出力ドライバとしてのMOSトランジスタPDとを含んで構成される。差動増幅器DAMPが出力電圧VIN_nが一定になるようにMOSトランジスタPDのゲート電圧を制御することで、安定した電源電圧がハードウェアリソースに供給される。
【0111】
図18は、レギュレータ回路における差動増幅器DAMPの差動増幅段の回路構成を例示する図である。同図に示されるように、実施の形態3に係るデータ処理装置では、差動増幅器DAMPの差動増幅段のバイアス電流(例えばテイル電流)IBSが、電源供給先のハードウェアリソースの動作モードに応じて可変にされる。例えば、MCU3に電源電圧を供給するレギュレータ回路20_nの場合、MCU3がスタンバイモードで動作する場合には、バイアス電流IBSが通常動作モード時よりも小さくされる。例えば、MCU3が第1、第2スタンバイモードSTB1、STB2(電源供給あり)に遷移する場合には、バイアス電流IBSを通常動作モード時よりも小さくする。スタンバイモードSTB1、STB2では、通常動作モード時よりも高い電流のソース能力が要求されないことから、差動増幅器DAMPのバイアス電流を減らしてレギュレータ回路の応答性を下げたとしても、十分に対応することができる。一方、MCU3がスタンバイモードSTB3(電源遮断)に遷移する場合には、バイアス電流IBSを“0(ゼロ)”にして、レギュレータ回路20_nの差動増幅器DAMPの回路電流を遮断する。なお、センサ部4_1、4_2に電源を供給するレギュレータ回路20_1、20_2についても同様に、センサ部4_1の動作モードに応じてバイアス電流IBSが変更される。
【0112】
以上のように、ハードウェアリソースの動作モードに応じて電源部2のレギュレータ回路の回路電流を変化させることにより、レギュレータ回路に要求される応答性を担保しつつ、データ処理装置の消費電流を更に削減することが可能となる。
【0113】
≪実施の形態4≫
実施の形態4に係るデータ処理装置は、実施の形態1に係るデータ処理装置の機能に加え、温度に応じて損益分岐時間BETを変更する機能を備える。具体的には、制御部1がハードウェア情報HWIを複数有し、外部から入力された温度情報に基づいて何れかのハードウェア情報を選択し、選択したハードウェア情報の損益分岐時間を用いて各ハードウェアリソースの動作モードを決定する。
【0114】
図19に、実施の形態4に係るデータ処理装置を例示する。同図に示されるデータ処理装置は、MCU3の内部に温度センサ
6を有する。制御部1は、温度センサ
6によって検出された温度情報を入力する。なお、本実施の形態では温度センサ
6をMCU3の内部に設けた場合を例示しているが、データ処理装置100の内部であれば、温度センサ
6の設置場所は特に限定されない。
【0115】
図20は、実施の形態4に係るハードウェア情報を例示する図である。同図に示されるように、制御部1の記憶部14には、複数のハードウェア情報HWI_TM、HWI_TH、HWI_TLが格納される。夫々のハードウェア情報は温度に対応して設けられる。例えば、温度範囲が−40度から0度に対応するハードウェア情報HWI_TL、温度範囲が0度から40度に対応するハードウェア情報HWI_TM、温度範囲が40度から80度に対応するハードウェア情報HWI_TH等のように、温度範囲に対応したハードウェア情報が記憶部14に格納される。例えば、制御部1は、温度センサ5による温度情報を定期的に受信し、当該温度情報に基づいて、記憶部14に格納されたハードウェア情報の何れかを選択する。例えば、温度センサ5によるセンス結果が“25度”であった場合、制御部1は温度範囲が0度から40度に対応するハードウェア情報HWI_TMの損益分岐時間の情報を利用して、前述した待機時間Twとの比較を行い、各ハードウェアリソースの動作モードを決定する。なお、その他の制御内容については、実施の形態1と同様である。
【0116】
前述したように、一般に、スタンバイモードによる損益分岐時間BETは温度によって変化することが知られている。そこで、実施の形態4に係るデータ処理装置のように温度に応じて損益分岐時間を変更することで、より正確に最適なスタンバイモードを選択することができ、温度によらず、データ処理装置の消費電力を効果的に削減することが可能となる。
【0117】
≪実施の形態5≫
実施の形態5に係るデータ処理装置は、実施の形態1に係るデータ処理装置の機能に加えて、タスクの実行結果に基づいてタスクの実行周期を変更する機能を備える。
【0118】
例えば、“センサ部4_1の検出結果をMCU3に取り込む処理”である“タスクA”を、50ms毎に、データ処理装置100が実行する場合を考える。この場合、MCU3は、50ms毎にセンサ部4_1の検出結果を受信する。MCU3は、タスクA_nで受信したセンサ部4_1の検出結果と、タスクA_nより以前に実行されたタスク(例えば、直前のタスクA_n−1)によるセンサ部4_1の検出結果とを比較し、センサ部4_1の検出結果がどの程度変化したかを計算する。センサ部4_1の検出結果の変化量が所定の閾値を超えない場合には、MCU3は、タスクAの実行周期が長くなるように、タスクAの実行周期Tcの値を更新する。具体的には、MCU3は、制御部1の記憶部13にアクセスし、そこに格納されたタスク管理情報TMIにおけるタスクAの実行周期Tcを初期値の“50ms”よりも大きい値(例えば“60ms”)に変更する。
【0119】
これによれば、定期的なタスクの実行によって得られる結果(データ)があまり変化しない場合には、タスクの実行周期が長くなるようにタスクの実行スケジュールが見直されるので、そのタスクで使用されるハードウェアリソース(上記の例の場合、MCU3及びセンサ部4_1)の待機時間を長くすることができる。
【0120】
以上のように、実施の形態5に係るデータ処理装置によれば、タスクの実行周期を見直すことで、ハードウェアリソースの待機時間を長くすることができるので、更なる電力の削減が期待できる。
【0121】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【0122】
例えば、実施の形態3乃至5のデータ処理装置の構成及び機能を、実施の形態1に係るデータ処理装置に適用する場合を例示したが、上記の機能及び構成を実施の形態2に係るデータ処理装置に適用することも可能である。
【0123】
データ処理装置100がセンサシステムである場合を例示したが、これに限られず、例えばバッテリ駆動される携帯端末等のその他のシステムにも適用することができる。
【0124】
また、前述したように、制御部1の設置場所は電源ICの内部に限られないが、制御部1は他のハードウェアリソースがスタンバイ状態である場合であっても起動している必要があることから、システムの仕様上、電源の遮断が行われる機会の少ない電源ICやリアルタイムクロック(RTC)IC等の内部に制御部1を形成することが好ましいが、MCU3の内部に設けることも、制御部1だけで単独のICとして形成することも可能である。
【0125】
また、複数のスタンバイモード(STB1、STB2、STB3)を有するデバイスとして、MCU3を例示したが、これに限られず、複数のスタンバイモードを有するデバイスあれば、DSPやメモリモジュール、アナログIC等であっても良い。
【0126】
また、電源部2におけるレギュレータ回路20_1〜20_nがLDOである場合を例示したが、ハードウェアリソースに供給すべき電圧値の変更やハードウェアリソースに対する電源電圧の遮断等の制御ができる構成であれば、LDOに限られず、スイッチングレギュレータやチャージポンプ電源等の別の電源回路であっても良い。