(57)【特許請求の範囲】
【請求項１】
制御モードとして、入力されるタスクの処理を通常通り実行するノーマルモードと、前記タスクの処理が休止され前記ノーマルモードよりも電力消費が少なくされたスリープモードとを有する電子制御装置であって、
入力される前記タスクを、処理の中断が不可能な第１タスクと、処理の中断が可能な第２タスクと、に層別する層別部（３０）と、
前記タスクに係るコンテキストスイッチが格納され、前記スリープモードにおいて記録情報が消失する第１ＲＡＭ（４０）と、
前記タスクに係るコンテキストスイッチが格納され、前記スリープモードにおいて記録情報が消失しない第２ＲＡＭ（５０）と、
前記タスクの処理を実行する処理部（２０）と、
前記層別部および前記処理部を制御する主制御部（１０）と、を備え、
前記ノーマルモードにおいては、
前記主制御部は、前記第１タスクおよび前記第２タスクに係る前記コンテキストスイッチを前記第１ＲＡＭに配置するとともに、前記処理部に対して前記第１タスクおよび前記第２タスクの処理を実行させ、
前記ノーマルモードから前記スリープモードへ移行する場合においては、
前記第１タスクが全て終了したことを条件に前記ノーマルモードから前記スリープモードへ移行するものであり、前記主制御部は、前記コンテキストスイッチとして、前記第２タスクに係る前記コンテキストスイッチのみを前記第２ＲＡＭに退避させ、
前記スリープモードから前記ノーマルモードへ移行する場合においては、
前記主制御部は、前記第２ＲＡＭに退避されたコンテキストスイッチを前記第１ＲＡＭに復帰させるとともに、前記処理部に対して前記第１タスクおよび前記第２タスクの処理を実行させる、
ことを特徴とする電子制御装置。
【請求項２】
前記主制御部は、前記ノーマルモードを維持する最小時間としての最小起動時間を設定し、
前記ノーマルモードにおいて、前記最小起動時間を超えた時間帯に前記第１タスクが実行されていなければ、前記ノーマルモードから前記スリープモードへ強制的に移行させることを特徴とする請求項１に記載の電子制御装置。
【請求項３】
前記主制御部は、定期的に前記ノーマルモードから前記スリープモードへ強制的に移行させることを特徴とする請求項２に記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スリープ機能を備えた電子制御装置に関する。
【背景技術】
【０００２】
車両におけるボデー系製品、例えば室内灯やヘッドライト、パワースライドドア、キーレスエントリーシステムなどは、イグニッションスイッチのオンオフにかかわらず、常時オン状態にある場合が多い。このため、これら部位を制御する電子制御装置はユーザーからの要求に応答できるよう、常時待機している状態でなければならない。近年普及しつつある電気自動車では、バッテリの容量が走行距離に直接反映されるため、電子制御装置には低い消費電力が要求される。
【０００３】
特許文献１には、電子制御装置に相当するＣＰＵの動作状態を第１ステートから電力消費の少ない第２ステートに切り替える、いわゆるスリープ機能を備えたコンピュータシステムが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平７−２００１１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、スリープ機能を備えていても、処理すべきタスクが多岐に亘る場合には、電子制御装置がスリープ機能を実行するタイミングが少なく、スリープ機能が低消費電力に貢献できない虞がある。
【０００６】
上記問題に対しては、所定の条件において電子制御装置を強制的にスリープ状態に移行させるように構成することにより対応することができるが、スリープ状態から復帰する際に、スリープ状態に移行することによって中断したタスクを復帰させる必要がある。
【０００７】
しかしながら、一般的に、スリープ状態ではスリープモードへの移行によって記録情報が消失するＲＡＭ（以降、第１ＲＡＭという）への電源供給が遮断されるので、コンテキストスイッチを保持しておくことができない。このため、スリープ状態からの復帰に際してタスクの再生成および再初期化を実行することになり、処理速度が低下する虞がある。
【０００８】
一方、コンテキストスイッチをスリープモードへの移行によっても記録情報が消失しないＲＡＭ（以降、第２ＲＡＭという）に保持するようにすれば、電源供給の遮断によるコンテキストスイッチの消失の問題は解消できるものの、第２ＲＡＭは、一般的に第１ＲＡＭに較べてアクセス速度が遅く、タスクの処理には適さない。また、全てのコンテキストスイッチを保持するための第２ＲＡＭの容量の確保は、第１ＲＡＭに較べて高コストとなり現実的ではない。
【０００９】
本発明は、上記問題点を鑑みてなされたものであり、スリープ頻度を確保しつつ実用範囲での処理速度を実現可能な電子制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
ここに開示される発明は、上記目的を達成するために以下の技術的手段を採用する。なお、特許請求の範囲およびこの項に記載した括弧内の符号は、ひとつの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、発明の技術的範囲を限定するものではない。
【００１１】
上記目的を達成するために、本発明は、制御モードとして、入力されるタスクの処理を通常通り実行するノーマルモードと、タスクの処理が休止されノーマルモードよりも電力消費が少なくされたスリープモードとを有する電子制御装置であって、入力されるタスクを、処理の中断が不可能な第１タスクと、処理の中断が可能な第２タスクと、に層別する層別部（３０）と、タスクに係るコンテキストスイッチが格納され、スリープモードにおいて記録情報が消失する第１ＲＡＭ（４０）と、スリープモードにおいて記録情報が消失しない第２ＲＡＭ（５０）と、タスクの処理を実行する処理部（２０）と、層別部および処理部を制御する主制御部（１０）と、を備え、ノーマルモードにおいては、主制御部は、第１タスクおよび第２タスクに係るコンテキストスイッチを第１ＲＡＭに配置するとともに、処理部に対して第１タスクおよび第２タスクの処理を実行させ、ノーマルモードからスリープモードへ移行する場合においては、第１タスクが全て終了したことを条件にノーマルモードからスリープモードへ移行するものであり、主制御部は、コンテキストスイッチとして、第２タスクに係るコンテキストスイッチのみを不揮発性メモリに退避させ、スリープモードからノーマルモードへ移行する場合においては、主制御部は、不揮発性メモリに退避されたコンテキストスイッチを第１ＲＡＭに復帰させるとともに、処理部に対して第１タスクおよび第２タスクの処理を実行させる、ことを特徴としている。
【００１２】
これによれば、タスクの処理を行うノーマルモードでは、タスクに係るコンテキストスイッチは第１ＲＡＭに格納されているので、コンテキストスイッチが第２ＲＡＭに格納される場合に較べて処理速度を早くすることができる。
【００１３】
また、ノーマルモードからスリープモードへの移行時には、処理の中断が可能な第２タスクのコンテキストスイッチを第１ＲＡＭから第２ＲＡＭへ退避させるので、第２タスクの処理の完了／未完を考慮することなく、スリープモードに移行することができる。逆に言えば、スリープモードへの移行頻度を確保することができ、電子制御装置の消費電力を低減することができる。さらに、第２ＲＡＭに退避させるタスクは第２タスクのみであるから、第２ＲＡＭの容量の肥大を抑制することができる。
【図面の簡単な説明】
【００１４】
【図１】第１実施形態に係る電子制御装置の概略構成を示すブロック図である。
【図２】タスクの優先度を示す表である。
【図３】電子制御装置の動作を示すタイミングチャートである。
【図４】ノーマルモードにおける動作を示すフローチャートである。
【図５】移行判定タスクにおける動作を示すフローチャートである。
【図６】スリープ移行タスクにおける動作を示すフローチャートである。
【図７】復帰タスクにおける動作を示すフローチャートである。
【図８】第２実施形態に係る電子制御装置の動作を示すタイミングチャートである。
【図９】移行判定タスクにおける動作を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態を図面に基づいて説明する。なお、以下の各図相互において、互いに同一もしくは均等である部分に、同一符号を付与する。
【００１６】
（第１実施形態）
最初に、図１を参照して、本実施形態に係る電子制御装置の概略構成について説明する。
【００１７】
この電子制御装置は、例えば、車両におけるボデー系の部位を制御するボデー系ＥＣＵである。具体的には、例えば、メインボデーＥＣＵ、セキュリティＥＣＵ、リモートセキュリティＥＣＵ、ソナーＥＣＵなどを含む。図１に示すように、電子制御装置１００には、ユーザーあるいはボデーを構成する各部位からのタスクの実行要求が入力され、その要求に対する応答が出力されるようになっている。この出力に基づいて各部位が駆動し、車両が適切な動作を行う。
【００１８】
図１に示すように、本実施形態における電子制御装置１００は、主制御部１０と、処理部２０と、層別部３０と、を備え、さらに記憶装置として、第１ＲＡＭ４０と、第２ＲＡＭ５０とを備えている。
【００１９】
主制御部１０は、後述する処理部２０および層別部３０の動作を制御する部分である。また、主制御部１０は、電子制御装置１００の制御モードの切り替えを行う。本実施形態における電子制御装置１００は、制御モードとして、タスクの処理を実行するノーマルモードと、タスクの処理を休止して消費電力を抑制するスリープモードとを有している。主制御部１０は、所定の条件を以って、ノーマルモードとスリープモードとを相互に切り替えるようになっている。
【００２０】
また、主制御部１０は、後述する層別部３０が層別したタスクに係るコンテキストおよびコンテキストスイッチを第１ＲＡＭ４０あるいは第２ＲＡＭ５０に格納する。
【００２１】
また、主制御部１０は、後述する処理部２０が処理した結果に基づいてボデー系の各部位の制御を決定し、各部位を駆動させる。
【００２２】
処理部２０は、タスクの処理を実行する部分である。処理部２０は、主制御部１０により選択されたタスクについて、第１ＲＡＭ４０に格納されたコンテキストおよびコンテキストスイッチを参照しつつ処理を実行し、結果を主制御部１０に返す。
【００２３】
層別部３０は、入力されたタスクを、途中で処理が中断してはならない第１タスクと、途中で処理が中断されてもよい第２タスクと、に層別する部分である。第１タスクには、イベントの発生時に即時対応が必要な優先度の高いタスクが選定される。一方、第２タスクには、タスク完了期限が設定されていないなど、第１タスクに比べて優先度の低いタスクが選定される。層別部３０は、主制御部１０の要求に応じてタスクの層別を実行する。
【００２４】
第１ＲＡＭ４０は、記憶装置として主制御部１０および処理部２０に通信可能に接続されている。第１ＲＡＭ４０は、入力されたタスクに係るコンテキストおよびコンテキストスイッチが格納されるメモリである。処理部２０は、第１ＲＡＭ４０に格納されたコンテキストおよびコンテキストスイッチを参照して処理を実行する。なお、第１ＲＡＭ４０には、第１タスクおよび第２タスクのいずれのコンテキストおよびコンテキストスイッチも格納され得る。
【００２５】
第２ＲＡＭ５０は、第１ＲＡＭ４０と同様に、記憶装置として主制御部１０および処理部２０に通信可能に接続され、入力されたタスクに係るコンテキストおよびコンテキストスイッチが格納されるメモリである。本実施形態における第２ＲＡＭ５０は、電子制御装置１００がスリープモードのある場合に主に用いられ、第２タスクに係るコンテキストおよびコンテキストスイッチが格納されるようになっている。
【００２６】
次に、図２〜図７を参照して、電子制御装置１００の動作について説明する。
【００２７】
本実施形態における電子制御装置１００は、図２に示すように、処理の優先度が高い順に、復帰タスク、スリープ移行タスク、第１タスク、移行判定タスク、第２タスク、を少なくとも処理する。電子制御装置１００は、優先度が高いタスクを優先して処理するようになっている。具体的には、あるタスクの処理を実行中において、該タスクよりも優先度の高いタスクが割り込んだ場合には、処理の実行順序を優先度の高いタスクの実行に切り替える。
【００２８】
復帰タスクとは、電子制御装置１００が、スリープモードからノーマルモードに復帰する際に実行、処理されるタスクである。
【００２９】
スリープ移行タスクとは、電子制御装置１００が、ノーマルモードからスリープモードに移行する際に実行、処理されるタスクである。
【００３０】
第１タスクとは、途中で処理の中断ができないタスクである。
【００３１】
移行判定タスクとは、電子制御装置１００が、ノーマルモードからスリープモードへ移行可能な状態にあるか否かを判定するためのタスクである。
【００３２】
第２タスクとは、途中で処理を中断しても支障のないタスクである。
【００３３】
次いで、電子制御装置１００の具体的な動作について説明する。
【００３４】
図３に示すように、電子制御装置１００への入力として、途中で処理の中断ができないタスクＴ１Ａと、途中で処理の中断をしても支障のないタスクＴ２Ａとが存在すると仮定する。タスクＴ１Ａは上記した第１タスクに相当し、タスクＴ２Ａは上記した第２タスクに相当する。図３に示すタスクＴ１Ａは、時間軸方向に定期的に実行されるタスクであり、開始と終了を繰り返している。また、タスクＴ２Ａは、一点鎖線で囲まれた時間帯の左端で処理が開始され、右端で処理が終了する。タスクＴ２Ａは、タスクＴ１Ａの割り込みにより、処理の実行と中断を繰り返している。図３に示す斜線部は、各タスクにおいて、処理部２０が記憶装置に格納されたコンテキストおよびコンテキストスイッチにアクセスし、コンテキストスイッチの切り替えに要する時間である。
【００３５】
なお、図３の上段は、本実施形態における電子制御装置１００による動作を例示し、図３の下段は、比較として、途中で処理の中断をしても支障のないタスクＴ２Ａのコンテキストおよびコンテキストスイッチを、常に第２ＲＡＭ５０に格納して処理する場合を例示している。
【００３６】
本実施形態における電子制御装置１００は、ノーマルモード（図３においてはＮと示す）において、図４に示すフローに従って動作する。また、ノーマルモードからスリープモード（図３においてはＳと示す）への移行時において、図５および図６に示すフローに従って動作する。また、スリープモードからノーマルモードへの復帰時において、図７に示すフローに従って動作する。以下、それぞれの動作について詳しく説明する。
【００３７】
＜ノーマルモードにおける動作＞
まず、図４に示すように、ステップＳ４１において、タスクが電子制御装置１００、ひいては層別部３０に入力される。
【００３８】
次いで、ステップＳ４２が実行される。ステップＳ４２は、層別部３０が入力されたタスクを第１タスクと第２タスクとに層別するステップである。主制御部１０は、ステップＳ４１によりタスクが入力されたことをトリガーとして、層別部３０に対してタスクの層別を実施するように要求する。層別部３０はこれに応じてタスクを層別する。本実施形態では、タスクＴ１Ａが第１タスクに分類され、タスクＴ２Ａが第２タスクに分類される。
【００３９】
次いで、ステップＳ４３が実行される。ステップＳ４３は、処理部２０が入力されたタスクを処理するステップである。入力された全てのタスクに係るコンテキストおよびコンテキストスイッチは第１ＲＡＭ４０に格納される。そして、処理部２０は、第１ＲＡＭ４０へアクセスしつつタスクの処理を実行する。基本的には、第１タスクに分類されたタスクが優先して処理される。
【００４０】
次いで、ステップＳ４４が実行される。ステップＳ４４は、主制御部１０が、ノーマルモードからスリープモードへ移行する条件を満たしているか判定するステップである。ステップＳ４４は、図２における移行判定タスクに相当するものであり、ステップＳ４３においてタスクの処理が実行されている間に定期的に割り込んで実行される。移行判定タスクについては、図５を参照して追って詳しく説明する。
【００４１】
＜移行判定タスク＞
ここでは、ノーマルモードからスリープモードへ移行する条件を満たしているか判定するステップ、すなわち、移行判定タスクについて説明する。
【００４２】
図５に示すように、移行判定タスクでは、まずステップＳ５１が実行される。ステップＳ５１は、主制御部１０がタスクの処理状況を判定するステップである。具体的には、タスクＴ１ＡおよびＴ２Ａがともに終了しているか否かを判定するステップである。
【００４３】
例えば、図３に示す時刻ｔ５においては、タスクＴ１ＡおよびタスクＴ２Ａはともに終了しており、ステップＳ５１はＹＥＳ判定となる。ステップＳ５１がＹＥＳ判定のときには移行判定タスクを終了してステップＳ４５へ進む。すなわち、第１タスク、第２タスクともに処理が終了しており、電子制御装置１００はステップＳ４５に示すスリープ移行タスクを起動するステップへ進む。なお、スリープ移行タスクの具体的な動作は追って詳述する。
【００４４】
一方、図３に示す時刻ｔ０においては、第１タスクであるタスクＴ１Ａは終了しており、第２タスクであるタスクＴ２Ａは実行中である。よって、ステップＳ３４はＮＯ判定となり、ステップＳ５２に進む。
【００４５】
ステップＳ５２は、主制御部１０がスリープモードへの移行要求を受けているか否かを判定するステップである。スリープモードへの移行が要求されていない場合、本ステップはＮＯ判定となりステップＳ４３に戻る。すなわち、すでに終了している第１タスクを除くタスクの処理を継続する。すなわち、本実施形態においてはタスクＴ２Ａの処理を継続する。一方、スリープモードへの移行が要求されている場合、本ステップはＹＥＳ判定となり、移行判定タスクを終了してステップＳ５３に進む。スリープモードへの移行指示は、例えば、入力された全てのタスクが終了した状態を検知したときや、定期的にスリープモードへ移行するように設定されているときなどに要求される。本実施形態では、図３における時刻ｔ１においてスリープモードへの移行要求が行われている。
【００４６】
ステップＳ５３は、主制御部１０が、ノーマルモードからスリープモードへ移行するためのタスクを起動するステップである。スリープモードへ移行するためのタスクとは、図２におけるスリープ移行タスクに相当する。スリープ移行タスクについては、図６に示すフローを参照して追って詳しく説明する。
【００４７】
＜ノーマルモードからスリープモードへの移行：スリープ移行タスク＞
ここでは、ノーマルモードからスリープモードへ移行するためのタスク、すなわち、図５に示すスリープ移行タスクについて、図６を参照して説明する。図３では時刻ｔ１において、主制御部１０がスリープモードへの移行要求を受けたと仮定しており、時刻ｔ１においてスリープ移行タスクが開始される。
【００４８】
スリープ移行タスクでは、図６に示すように、まずステップＳ６１が実行される。ステップＳ６１は、主制御部１０が第１タスクの処理が終了しているか否かを判定するステップである。第１タスクの処理が終了していない場合には、本ステップはＮＯ判定となりステップＳ４１に戻って処理を継続する。一方、第１タスクの処理が終了している場合には、本ステップはＹＥＳ判定となりステップＳ６２に進む。スリープモードへの移行は、第１タスクが実行中では行われない。ステップＳ６１は、ステップＳ５３の実行後に第１タスクに相当するタスクの割り込みがあった場合などに誤ってスリープモードに移行することを防止する。
【００４９】
ステップＳ６１がＹＥＳ判定の場合にはステップＳ６２が実行される。ステップＳ６２は、主制御部１０が、第２タスクに分類されたタスクに係るコンテキストおよびコンテキストスイッチを第１ＲＡＭ４０から第２ＲＡＭ５０に退避させるステップである。ノーマルモードにおいては、処理速度確保の目的で、第１タスク、第２タスクともに、コンテキストおよびコンテキストスイッチは第１ＲＡＭ４０に格納されている。スリープモードにおいて第１ＲＡＭ４０への電源供給が停止すると、これらコンテキストおよびコンテキストスイッチが消失してしまう。このため、ステップＳ６２において、第２タスクのコンテキストおよびコンテキストスイッチを第１ＲＡＭ４０から第２ＲＡＭ５０に移動して、消失を回避する。コンテキストおよびコンテキストスイッチの退避は、例えば図３における時刻ｔ１から時刻ｔ２に至る退避時間内に行われる。
【００５０】
なお、第１タスクの処理はすでに終了しているので、第１タスクに係るコンテキストおよびコンテキストスイッチの退避は行われない。
【００５１】
次いで、ステップＳ６３が実行される。ステップＳ６３は、主制御部１０が電子制御装置１００をスリープモードに移行させるステップである。これにより、電子制御装置１００は、タスクの処理が休止され消費電力を抑制されたスリープモードに移行する。
【００５２】
以上記載したように、この電子制御装置１００は、定期的にステップＳ４４、すなわち、移行判定タスクを実行している。図２に示すように、移行判定タスクは、第１タスクよりも優先度が低いので、スリープモードへの移行前に第１タスクに相当するタスクが割り込んだ場合にはスリープモードに移行しないようになっている。
【００５３】
＜スリープモードからノーマルモードへの復帰：復帰タスク＞
図６に示すステップＳ６３の後は、電子制御装置１００がスリープモードで動作するが、所定のタイミングにおいてスリープモードからノーマルモードへ復帰する。以降、スリープモードからノーマルモードへ復帰するためのタスクを復帰タスクと称し、以下に図７に示すフローに従って詳しく説明する。
【００５４】
復帰タスクでは、図７に示すように、まずステップＳ７１が実行される。ステップＳ７１は、主制御部１０がスリープモードからノーマルモードへの復帰の要求を受けたか否かを判定するステップである。ノーマルモードへの復帰要求は、例えば第１タスクに分類されるタスクが入力されたり、定期的な復帰シーケンスが組まれているなどの場合に行われる。主制御部１０が復帰要求を受けている場合、ステップＳ７１はＹＥＳ判定となりステップＳ７２に進む。復帰要求がない場合には、ステップＳ７１を繰り返すことにより要求があるまで待機する。なお、本実施形態では、図３に示す時刻ｔ２において第１タスクに分類されるタスクＴ１Ａが入力され、スリープモードからノーマルモードへの復帰要求がされている。
【００５５】
ステップＳ７２は、主制御部１０が電子制御装置１００をノーマルモードに復帰させるステップである。具体的には、処理部２０、層別部３０、第１ＲＡＭ４０および第２ＲＡＭ５０への電源の再投入と、主制御部１０の停止していた機能の再起動が行われる。
【００５６】
次いで、ステップＳ７３が実行される。ステップＳ７３は、第１タスク、すなわちタスクＴ１Ａのコンテキストおよびコンテキストスイッチを再生成し、再度初期化するステップである。これにより、第１ＲＡＭ４０にタスクＴ１Ａに係るコンテキストおよびコンテキストスイッチが再び格納された状態となる。
【００５７】
次いで、ステップＳ７４が実行される。ステップＳ７４は、ステップＳ６２において第２ＲＡＭ５０に退避させていた第２タスクに係るコンテキストおよびコンテキストスイッチを第１ＲＡＭ４０に移動するステップである。これにより、タスクＴ２Ａに係るコンテキストおよびコンテキストスイッチは、第２ＲＡＭ５０に較べてアクセス速度の速い第１ＲＡＭ４０に復帰される。コンテキストおよびコンテキストスイッチの復帰は、例えば図３における時刻ｔ３から時刻ｔ４に至る復帰時間内に行われる。
【００５８】
復帰タスクを経て電子制御装置１００のノーマルモードへの復帰後、図３の時刻ｔ４以降に示すように、ノーマルモードにおいてタスクＴ１ＡおよびタスクＴ２Ａの処理が実行される。すなわち、ステップＳ４３が実行される。なお、新たなタスクが入力される場合にはステップＳ４１から動作フローが実行される。
【００５９】
以上、電子制御装置１００は、図４〜図７を参照して説明した動作フローを以って、ノーマルモードとスリープモードとの切り替えを行う。なお、図３の下段に示す図は、本実施形態におけるステップＳ６２のような、第２タスクに係るコンテキストおよびコンテキストスイッチの退避、を実行しない場合の動作である。すなわち、第２ＲＡＭ５０の容量を十分確保した上で、第１タスクに係るコンテキストおよびコンテキストスイッチを第１ＲＡＭ４０に格納し、第２タスクに係るコンテキストおよびコンテキストスイッチを第２ＲＡＭ５０に格納し、図６に示すステップＳ６２を実行しないでスリープモードに以降するような構成を示している。
【００６０】
次に、図３を参照して、本実施形態に係る電子制御装置１００の作用効果について説明する。なお、図３下段に示す形態との対比として、本実施形態に係る電子制御装置１００の作用効果を説明する。
【００６１】
この電子制御装置１００は、ノーマルモードでは、第１ＲＡＭ４０に格納されたコンテキストおよびコンテキストスイッチを参照して処理を実行し、スリープモードでは、第２タスクに係るコンテキストおよびコンテキストスイッチの消失を回避する手段として、これらを第２ＲＡＭ５０に退避させる。
【００６２】
第２タスクの処理は第１ＲＡＭ４０が参照されて実行されるから、図３に示すように、第２ＲＡＭ５０が参照される場合に較べて、タスクの処理速度を向上させることができる。これに伴って、第２タスクに分類されるタスク、例えばタスクＴ２Ａの総処理時間を短縮することができ、スリープモードへの移行機会を増加させることができる。この効果は、コンテキストスイッチの切り替え頻度が高い処理が含まれるタスクに有効であり、特に、第２タスクに係るコンテキストスイッチの切り替え回数が、スリープモードに移行する回数よりも大きい場合、スリープモードの総継続時間を長くすることができる。
【００６３】
また、第２ＲＡＭ５０は、一時的にコンテキストおよびコンテキストスイッチが格納されるだけであり、第１タスクのコンテキスは格納されないので、第２ＲＡＭ５０の記憶容量として、必要以上の容量を確保する必要がない。
【００６４】
このように、本実施形態に係る電子制御装置１００を採用すれば、スリープ頻度を確保しつつ実用範囲での処理速度を実現できる。
【００６５】
そして、このような動作を実現するとともに、適切にスリープモードへの移行が可能なように、本実施形態における電子制御装置１００は、その動作に移行判定タスクを有している。移行判定タスクは、第１タスクよりも優先度が低く設定されているので、処理を中断できない第１タスクが実行されている間に電子制御装置１００がスリープモードに移行することを防止している。
【００６６】
（第２実施形態）
第１実施形態に示した例に対して、さらにスリープモードへの移行の頻度を増加させてスリープモードの総継続時間を長くする構成について説明する。
【００６７】
なお、電子制御装置１００の構成要素は第１実施形態と同様であり、本実施形態の電子制御装置１００も、主制御部１０と、処理部２０と、層別部３０と、第１ＲＡＭ４０と、第２ＲＡＭ５０とを備えている。各要素は第１実施形態と同様であるから、その詳しい説明は省略する。なお、本実施形態における主制御部１０は、ノーマルモードを継続する最小の時間である最小起動時間を保持しており、ノーマルモードの継続時間が最小起動時間より短くならないようにノーマルモードとスリープモードとを切り替えるようになっている。
【００６８】
また、電子制御装置１００の動作フローについても、スリープ移行タスクおよび復帰タスクは第１実施形態と同様であるから、その説明を省略する。換言すれば、本実施形態における電子制御装置１００は、ノーマルモードにおける動作に第１実施形態との相違点があるので、その点について図８および図９を参照して詳しく説明する。
【００６９】
図８に示すように、電子制御装置１００への入力として、途中で処理の中断ができないタスクＴ１Ｂ，Ｔ１Ｃと、途中で処理の中断をしても支障のないタスクＴ２Ｂ，Ｔ２Ｃとが存在すると仮定する。
【００７０】
図８に示すタスクＴ１Ｂは、時間軸方向に定期的に実行されるタスクであり、開始と終了を繰り返している。タスクＴ１Ｃは、図８に示す時間に必ず実行されなければならないタスクである。タスクＴ１Ｃの実行中にタスクＴ１Ｂの実行が割り込み処理される場合は、タスクＴ１Ｃの処理が一旦停止するものの、タスクＴ１Ｃは一度のノーマルモード（図８においてはＮと示す）の最中において必ず実行され、スリープモード（図８においてＳと示す）をまたぐことはなく、一点鎖線で囲まれた時間帯の左端で処理が開始され、右端で処理が終了する。
【００７１】
一方、タスクＴ２ＢおよびタスクＴ２Ｃは、一点鎖線で囲まれた時間帯の左端で処理が開始され、右端で処理が終了する。タスクＴ２ＢおよびタスクＴ２Ｃは、タスクＴ１Ｂ，Ｔ１Ｃの割り込みにより、処理の実行と中断を繰り返している。
【００７２】
なお、図８の上段は、本実施形態における電子制御装置１００による動作を例示しており、本実施形態では、時刻ｔ７と時刻ｔ８の時間間隔が最小起動時間と定義している。図８の下段は、比較として、最小起動時間を設定しない場合の動作を例示している。
【００７３】
図９を参照して、本実施形態における電子制御装置１００の動作フローについて具体的に説明する。
【００７４】
なお、本実施形態における電子制御装置１００へのタスクの入力からタスクの処理までのフローは第１実施形態と同様であり、電子制御装置１００は図４に示すフローに従って動作する。本実施形態における電子制御装置１００の動作は、第１実施形態に対して移行判定タスクが相違しているので、移行判定タスクについて図９を参照して以下説明する。
【００７５】
本実施形態における移行判定タスクでは、まずステップＳ９１が実行される。ステップＳ９１は、主制御部１０がタスクの処理状況を判定するステップである。具体的には、タスクＴ１Ｂ，Ｔ１Ｃ，Ｔ２Ｂ，Ｔ２Ｃがともに終了しているか否かを判定するステップである。
【００７６】
タスクＴ１Ｂ，Ｔ１Ｃ，Ｔ２Ｂ，Ｔ２Ｃがともに終了していれば、ステップＳ９１はＹＥＳ判定となり、ステップＳ９３へ進む。ステップＳ９３はノーマルモードからスリープモードへの移行タスクを起動するステップであり、第１実施形態におけるスリープ移行タスクの起動ステップであるステップＳ５３と同様である。
【００７７】
例えば図８における時刻ｔ６，ｔ８，ｔ９，ｔ１０，ｔ１１，ｔ１２においては、第１タスクであるタスクＴ１ＢおよびＴ１Ｃは終了しているものの、第２タスクであるタスクＴ２Ｂ，Ｔ２Ｃの一方は実行中である。よって、ステップＳ９１はＮＯ判定となり、ステップＳ９２に進む。
【００７８】
ステップＳ９２は、主制御部１０が、ノーマルモードの継続時間が予め規定された最小起動時間を超えているか否かを判定するステップである。
【００７９】
例えば、図８に示す時刻ｔ９や時刻ｔ１１では、ノーマルモードの継続時間が最小起動時間以内であるからステップＳ９２はＮＯ判定となり、ステップＳ４３に戻ってタスクの処理を継続する。なお、時刻ｔ９や時刻ｔ１１の前後では第１タスクにあたるタスクＴ１ＢとタスクＴ１Ｃは実行されていないので、第１タスクに比べて処理優先度の低い第２タスクが処理されることになる。
【００８０】
一方、図８に示す時刻ｔ６，ｔ８，ｔ１０，ｔ１２では、ノーマルモードの継続時間が最小起動時間を超過しているからステップＳ９２はＹＥＳ判定となり、ステップＳ９３に進む。
【００８１】
ステップＳ９３は、主制御部１０が、ノーマルモードからスリープモードへ移行するためのタスクを起動するステップである。ステップＳ９３はノーマルモードからスリープモードへの移行タスクを起動するステップであり、第１実施形態におけるスリープ移行タスクの起動ステップであるステップＳ５３と同様である。
【００８２】
なお、本実施形態におけるスリープ移行タスクでは、図６に示すステップＳ６１に相当するステップは、主制御部１０が、第１タスクの処理が終了しているか否かを判定するステップである。第１タスクの処理が終了していない場合には、本ステップはＮＯ判定となりステップＳ４３に戻って処理を継続する。一方、第１タスクの処理が終了している場合には、本ステップはＹＥＳ判定となる。ここでのＹＥＳ判定は、中断できないタスクである第１タスクに分類される全てのタスクの処理が終了しており、且つ、ノーマルモードが最小起動時間以上継続していることを指すので、電子制御装置１００はスリープモードに移行することができる状態にあり、第１実施形態におけるステップＳ６２に相当するステップに進む。具体的には、図８に示す時刻ｔ６，ｔ８，ｔ１０，ｔ１２では、第２タスクにあたるタスクＴ２Ｂ，Ｔ２Ｃが処理の途中であるが、第１タスクの処理は実行されていない。よって、主制御部１０は強制的にステップＳ７７、すなわちスリープ移行タスクを実行する。
【００８３】
以上のように、本実施形態における電子制御装置１００は、処理の中断が許可されない第１タスクの処理が行われていない状態で、且つ、ノーマルモードが最小起動時間より長く継続した状態であれば、強制的にノーマルモードからスリープモードに移行することになるから、最小起動時間を設定しない、図８下段のような動作モードに較べてスリープモードへの移行頻度を増加させることができる。
【００８４】
また、本実施形態のように、第１実施形態に示したように、コンテキストおよびコンテキストスイッチを第２ＲＡＭ５０に退避させる形態と組み合わせることによって、第１実施形態に例示した形態よりも、さらにスリープモードへの移行頻度を増加させてスリープモードの総継続時間を長くすることができる。すなわち、電子制御装置１００の電力消費量を抑制することができる。
【００８５】
（その他の実施形態）
以上、本発明の好ましい実施形態について説明したが、本発明は上記した実施形態になんら制限されることなく、本発明の主旨を逸脱しない範囲において、種々変形して実施することが可能である。
【００８６】
また、上記した各実施形態では、電子制御装置１００として車両のボデー系ＥＣＵの例を記載したが、この例に限定されるものではない。例えば、エンジン制御ＥＣＵやその他のＥＣＵにも適用可能である。また、用途は車両に限定されるものではなく、工業機械や航空機、ロケット等の電子制御装置に適用可能である。
【符号の説明】
【００８７】
１０・・・主制御部，２０・・・処理部，３０・・・層別部，４０・・・第１ＲＡＭ，５０・・・第２ＲＡＭ
【図１】
0006406106.tif 000002
【図２】
0006406106.tif 000003
【図３】
0006406106.tif 000004
【図４】
0006406106.tif 000005
【図５】
0006406106.tif 000006
【図６】
0006406106.tif 000007
【図７】
0006406106.tif 000008
【図８】
0006406106.tif 000009
【図９】
0006406106.tif 000010