(57)【要約】【課題】比較的少ない記憶容量で高速にスリープモードから復帰可能な電子制御装置を提供する。【解決手段】情報処理装置および記憶媒体を備え、スリープモード、およびウェイクモードの何れかの動作モードで動作する電子制御装置であって、情報処理装置は、（Ａ）電子制御装置の動作モードがウェイクモードである間、電子制御装置の動作モードがウェイクモードに変更される際に読み出される要退避データを揮発性メモリ上の予め定められた連続したアドレス領域へ書き込み、（Ｂ）電子制御装置の動作モードがウェイクモードからスリープモードへ切り替えられる際、連続したアドレス領域に記憶された要退避データを不揮発性メモリに一時的に退避し、（Ｃ）電子制御装置の動作モードがスリープモードからウェイクモードへ切り替えられる際、不揮発性メモリに退避された要退避データを連続したアドレス領域へ書き込むことを特徴とする。【選択図】図３
2011158967.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置および記憶媒体を備え、当該情報処理装置および記憶媒体への電力供給が停止されて低電力で動作するスリープモード、および当該情報処理装置および記憶媒体へ電力が供給されて通常の動作を行うウェイクモードの何れかの動作モードで動作する電子制御装置であって、
前記記憶媒体は、揮発性メモリおよび不揮発性メモリを含み、
前記情報処理装置は、
（Ａ）前記電子制御装置の動作モードがウェイクモードである間、前記電子制御装置の動作モードがウェイクモードに変更される際に読み出される要退避データを前記揮発性メモリ上の予め定められた連続したアドレス領域へ書き込み、
（Ｂ）前記電子制御装置の動作モードが前記ウェイクモードから前記スリープモードへ切り替えられる際、前記連続したアドレス領域に記憶された前記要退避データを前記不揮発性メモリに一時的に退避し、
（Ｃ）前記電子制御装置の動作モードが前記スリープモードから前記ウェイクモードへ切り替えられる際、前記不揮発性メモリに退避された前記要退避データを前記連続したアドレス領域へ書き込むことを特徴とする、電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子制御装置に関し、より特定的には、省電力モード（所謂、スリープモード）で動作可能な電子制御装置に関する。
【背景技術】
【０００２】
従来、ＥＣＵ等のコンピュータ装置において、処理動作を行わない状態が継続した場合に待機電力の消費を低減するべく、電力供給を部分的にオフ状態にした所謂スリープモードへ動作のモードを自動的に移行可能なコンピュータ装置が開発されている。
【０００３】
上記のようなコンピュータ装置の一例が、特許文献１に開示されている。特許文献１に開示される情報処理装置は、上記のようなスリープモードに移行する際に、可変設定されたメインメモリ領域の内容を不揮発性の記憶媒体に一旦退避する。その後、電力供給を受けてスリープモードから復帰する際には、退避されたメモリの内容をロードすることによりスリープモードから復帰する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−３０５４６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１に開示されるような情報処理装置において、スリープモードに移行する際に退避すべきデータの記憶領域（アドレス）がメモリ上で散在している場合、当該退避すべきデータのアドレスを指定するデータ量が巨大になってしまう。すなわち、退避すべきデータのアドレスを指定するデータを予め記憶しておくＲＯＭ等の記憶媒体に要する記憶領域が膨大になるおそれがあった。
【０００６】
本発明は上記の課題を鑑みて成されたものであり、比較的少ない記憶容量で高速にスリープモードから復帰可能な電子制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の課題を解決するため、本願は以下の構成を採用した。すなわち、第１の発明は、情報処理装置および記憶媒体を備え、当該情報処理装置および記憶媒体への電力供給が停止されて低電力で動作するスリープモード、および当該情報処理装置および記憶媒体へ電力が供給されて通常の動作を行うウェイクモードの何れかの動作モードで動作する電子制御装置であって、記憶媒体は、揮発性メモリおよび不揮発性メモリを含み、情報処理装置は、（Ａ）電子制御装置の動作モードがウェイクモードである間、電子制御装置の動作モードがウェイクモードに変更される際に読み出される要退避データを揮発性メモリ上の予め定められた連続したアドレス領域へ書き込み、（Ｂ）電子制御装置の動作モードがウェイクモードからスリープモードへ切り替えられる際、連続したアドレス領域に記憶された要退避データを不揮発性メモリに一時的に退避し、（Ｃ）電子制御装置の動作モードがスリープモードからウェイクモードへ切り替えられる際、不揮発性メモリに退避された要退避データを連続したアドレス領域へ書き込むことを特徴とする、電子制御装置である。
【発明の効果】
【０００８】
第１の発明によれば、高速にスリープモードから復帰可能な電子制御装置を比較的少ない記憶容量で構成することができる。具体的には、スリープモードから復帰する際に必要なデータが予め定められた連続したアドレス領域に格納されるため、当該アドレスを指定するデータのサイズを比較的小さくすることが可能である。したがって、当該アドレスを指定するデータを記憶する記憶媒体の容量を小さくすることが可能である。また、スリープモードへ移行する際に、スリープモードから復帰する際に必要なデータが一旦退避されるため、当該退避されたデータを読み出すことにより高速且つ容易にスリープモードからウェイクモードへ復帰することができる。
【図面の簡単な説明】
【０００９】
【図１】電子制御装置１の構成を示すブロック図の一例
【図２】電子制御装置１が実行する動作モード切替処理の詳細を示すフローチャートの一例
【図３】動作モードの変更に応じてデータが退避および復帰する様子を示すイメージ図
【図４】各処理データを記憶するＲＡＭ２０のアドレスの割り振りを最適化する方法を示すフローチャートの一例
【図５】各処理データに割り当てられるＲＡＭ２０のアドレスが最適化される様子を示すイメージ図
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態に係る電子制御装置１について説明する。電子制御装置１は、典型的には車両に搭載され、当該車両に搭載されるデバイスを制御するＥＣＵ（Electronic Control Unit）である。先ず、図１を参照して電子制御装置１の構成について説明する。なお、図１は、電子制御装置１の構成を示すブロック図の一例である。図１に示すように。電子制御装置１は、ＣＰＵ１０、ＲＡＭ２０、ＲＯＭ３０、データフラッシュメモリ４０、およびトランシーバ回路５０を備える。なお、電子制御装置１は、外部の電源装置１００から電力供給を受けるものとする。電源装置１００は、典型的には車両に搭載されるバッテリー装置である。
【００１１】
電子制御装置１は、スリープモードまたはウェイクモードの何れかの動作モードで動作する。スリープモードは、ＣＰＵ１０、ＲＡＭ２０、ＲＯＭ３０、およびデータフラッシュメモリ４０への電力供給を停止し、低電力で動作する動作モードである。一方、ウェイクモードは、ＣＰＵ１０、ＲＡＭ２０、ＲＯＭ３０、およびデータフラッシュメモリ４０へ電力を供給し、ＲＯＭ等に記憶されたプログラムに基づいた処理を実行する動作モードである。
【００１２】
ＣＰＵ１０は、所謂、Central  Processing  Unitであり、情報処理装置である。ＣＰＵ１０は、データを一時的に保持するレジスタ１１を備える。ＣＰＵ１０は、電力供給を受けている場合、他のＥＣＵ等、外部デバイス（図示せず）からの入力信号、およびＲＯＭ３０等に記憶されたプログラムに応じて情報処理を実行し、当該処理の結果を外部デバイスへ出力する。このような情報処理を実行する際、ＣＰＵ１０は、レジスタ１１、ＲＡＭ２０、およびフラッシュメモリ４０の間でデータの読み出しおよび書き込む処理を行う。レジスタ１１は、ＣＰＵ１０に搭載され、上述のプログラムの実行の際に各種数値データを一時的に保持する揮発性の記憶装置である。
【００１３】
ＲＡＭ２０は、所謂、Random Access Memoryであり、揮発性を有する読み書き自在な記憶媒体である。ＲＡＭ２０の記憶領域は、要退避アドレス２１、および退避不要アドレス２２に区分される。要退避アドレス２１は、スリープモードからウェイクモードへ復帰する際にＣＰＵ１０によってデータの読み出しが行われるデータが格納されるアドレス領域である。一方、退避不要アドレス２２は、スリープモードからウェイクモードへ復帰する際にＣＰＵ１０からデータの書き込みが行われるデータが格納されるアドレス領域である。
【００１４】
ＲＯＭ３０は、所謂、Read Only Memoryであり、不揮発性を有する読み込み専用の記憶媒体である。ＲＯＭ３０は、ＣＰＵ１０を動作させるためのプログラムオブジェクトが予め記憶される。また、ＲＯＭ３０は、ＲＡＭ２０における要退避アドレス２１を確認するためのデータとして退避アドレステーブルが予め記憶される。
【００１５】
データフラッシュメモリ４０は、不揮発性を有する読み書き自在な記憶媒体である。データフラッシュメモリ４０は、電子制御装置１がスリープモードへ移行する際に、要退避アドレス２１に格納されたデータ、およびレジスタ１１に格納されたデータを一時的に記憶するための記憶媒体である。
【００１６】
トランシーバ回路５０は、ＣＰＵ１０、ＲＡＭ２０、ＲＯＭ３０、およびデータフラッシュメモリ４０への電力供給状態を外部デバイスからのウェイク信号に応じて切り替える電気回路である。ウェイク信号は、電子制御装置１の動作モードをウェイクモードとすることを指示する信号である。ウェイク信号は、例えば、電子制御装置１とデータを通信することにより協調して動作する他の制御装置（図示せず）から出力される。トランシーバ回路５０は、スリープモードへの移行を許可することを示すスリープ許可信号をＣＰＵ１０から受信した場合に、ＣＰＵ１０、ＲＡＭ２０、ＲＯＭ３０、およびデータフラッシュメモリ４０への電力供給を停止する。そして、トランシーバ回路５０は、ウェイク信号を受信した場合にＣＰＵ１０、ＲＡＭ２０、ＲＯＭ３０、およびデータフラッシュメモリ４０への電力供給を再開する。なお、電子制御装置１において、トランシーバ回路５０は、上述のトランシーバ回路５０が実行する処理を実行可能なマイクロコンピュータなどのデバイスによって代替されても良い。
【００１７】
次いで、図２を参照して、電子制御装置１が実行する動作モード切替処理について説明する。図２は、電子制御装置１が実行する動作モード切替処理の詳細を示すフローチャートの一例である。
【００１８】
先ず、トランシーバ回路５０において電子制御装置１がスリープモードであるか否かが判定される（ステップＳ１）。電子制御装置１がスリープモードである場合（ステップＳ１でＹｅｓ）、トランシーバ回路５０において外部装置からウェイク信号を受信したか否か判定される（ステップＳ７）。一方、電子制御装置１がウェイクモードである場合（ステップＳ１でＮｏ）、ＣＰＵ１０においてスリープモードへ移行可能であるか否か判定される（ステップＳ２）。具体的には、ＣＰＵ１０は、例えば、外部デバイスとのデータの送受信やその要求が所定時間発生していない場合や、外部デバイスからスリープモードへ移行する指示信号を受信した場合などにスリープモードへ移行可能と判定する。
【００１９】
スリープモードへ移行可能であると判定した場合（ステップＳ２でＹｅｓ）、ＣＰＵ１０は、ＲＯＭ３０に記憶された退避アドレステーブルに基づいて要退避アドレスを確認する（ステップＳ３）。そして、ＣＰＵ１０は、確認した要退避アドレス上のデータ、およびレジスタ１１の内容をデータフラッシュメモリ４０へコピーして一時的に退避する（ステップＳ４）。更に、ＣＰＵ１０は、データ退避フラグをオンに設定する（ステップＳ５）。データ退避フラグは、当該フラグがオン状態である場合に、スリープモードへ移行する直前にデータフラッシュメモリへデータが退避されたことを示すフラグデータである。データ退避フラグのオン／オフ状態はフラッシュメモリ４０に記憶される。上述データ退避フラグの設定が完了すると、スリープモードへの移行が実行される（ステップＳ６）。具体的には、ＣＰＵ１０がスリープ許可信号をトランシーバ回路５０へ送信し、トランシーバ回路５０がＣＰＵ１０、ＲＡＭ２０、ＲＯＭ３０、およびデータフラッシュメモリ４０への電力供給を停止する。
【００２０】
上述の通り、電子制御装置１がスリープモードである場合（ステップＳ１でＹｅｓ）、トランシーバ回路５０において外部装置からウェイク信号を受信したか否か判定される（ステップＳ７）。そして、ウェイク信号を受信していない場合（ステップＳ７でＮｏ）、ウェイク信号を受信するまで上述ステップＳ１の処理が繰り返し実行される。一方、トランシーバ回路５０がウェイク信号を受信した場合（ステップＳ７でＹｅｓ）、トランシーバ回路５０はＣＰＵ１０、ＲＡＭ２０、ＲＯＭ３０、およびデータフラッシュメモリ４０への電力供給を開始する（ステップＳ８）。次いで、ＣＰＵ１０は、データフラッシュメモリ４０に記憶されたデータ退避フラグがオン状態に設定されているか否か判定する（ステップＳ９）。そして、データフラッシュメモリ４０に記憶されたデータ退避フラグがオン状態に設定されていると判定した場合（ステップＳ９でＹｅｓ）、ＣＰＵ１０は、ＲＯＭ３０に記憶された退避アドレステーブルに基づいて要退避アドレスを確認する（ステップＳ１０）。そして、ＣＰＵ１０は、データフラッシュメモリ４０に退避されていたデータを確認した要退避アドレスへ格納する（ステップＳ１１）。さらに、ステップＳ１１の処理において、ＣＰＵ１０は、データフラッシュメモリ４０に退避されていたレジスタ１１の情報をレジスタ１１へ格納する。
【００２１】
ＣＰＵ１０は、上述ステップＳ１０およびステップＳ１１の処理において予め退避していたデータの復帰を完了すると、データ退避フラグをオフに設定する（ステップＳ１２）。ステップＳ１２の処理を完了すると、ＣＰＵ１０は、ウェイクモードでの動作を実行する（ステップＳ１４）。ウェイクモード開始後は、ＲＯＭ３０に記憶されたプログラムを実行しつつ上述の処理がステップＳ１から繰り返し実行される。
【００２２】
なお、電力供給が開始された際に、データ退避フラグがオフであると判定された場合（ステップＳ９でＮｏ）、正常なスリープモードへの移行処理（ステップＳ３からステップＳ５）が実行されることなく、ＣＰＵ１０、ＲＡＭ２０、ＲＯＭ３０、およびデータフラッシュメモリ４０への電力供給が停止された後、再度電源が投入されたと考えられる。例えば、電子制御装置１が電源装置１００から取り外され、再度接続された場合などである。このような場合は、スリープ前のデータがデータフラッシュメモリ４０に予め記憶されていないため、通常の起動処理が実行された後（ステップＳ１３）、ウェイクモードでの動作が開始される（ステップＳ１４）。
【００２３】
次いで、図３を参照して、上述した処理によって要退避アドレスに記憶されたデータが退避および復帰される様子について説明する。なお、図３は、動作モードの変更に応じてデータが退避および復帰する様子を示すイメージ図である。
【００２４】
先ず、電子制御装置１がウェイクモードで動作中であり、スリープモードへ移行する直前の状態を想定する。当該状態において、例えば、レジスタ１１のベースレジスタＢＸには０００１の値が、レジスタ１１のカウンタレジスタＣＸには００１０の値が各々格納されている。また、要退避アドレス２１のうちアドレス0x0001にはデータとしてＤＡＴ１が、アドレス0x0002にはデータとしてＤＡＴ２が各々格納されている。また、退避不要アドレス２２のアドレス0x000aにはデータとしてＤＡＴ３が、アドレス0x000bにはデータとしてＤＡＴ４が各々格納されている。
【００２５】
次いで、電子制御装置１が上述ウェイクモードの状態からスリープモードへ移行する場合、ＣＰＵ１０は、上述ステップＳ３からステップＳ５の処理によって、ベースレジスタＢＸの値およびカウンタレジスタＣＸの値をデータフラッシュメモリ４０に退避する。同様に、ＣＰＵ１０は、要退避アドレス２１に記憶されていたＤＡＴ１、およびＤＡＴ２をデータフラッシュメモリ４０へ退避する。その後、ステップＳ６の処理によってＣＰＵ１０、ＲＡＭ２０、ＲＯＭ３０、およびデータフラッシュメモリ４０への電力供給が停止され、レジスタ１１、およびＲＡＭ２０の記憶領域が解放される。
【００２６】
次いで、電子制御装置１が上述スリープモードからウェイクモードへ移行する場合、ＣＰＵ１０は、上述ステップＳ１０からステップＳ１１の処理によって、データフラッシュメモリ４０に退避されていたベースレジスタＢＸの値０００１、およびカウンタレジスタＣＸの値００１０を、各々対応するレジスタアドレスに格納する。同様に、ＣＰＵ１０は、データフラッシュメモリ４０に退避されていたデータＤＡＴ１、およびデータＤＡＴ２を、各々対応する要退避アドレス２１のアドレス0x0001およびアドレス0x0002に格納する。
【００２７】
上記の通り、本発明に係る電子制御装置１によれば、スリープモードへ移行する際にスリープモードからウェイクモードへ復帰するために必要なデータが一旦データフラッシュメモリ４０に退避される。したがって、電子制御装置１は、予め退避されたデータをレジスタ１１やＲＡＭ２０に読み込むことにより高速且つ容易にスリープモードからウェイクモードへ復帰することができる。
【００２８】
ここで、ＲＡＭ２０における要退避アドレス２１のアドレス、すなわち要退避アドレスは、連続したアドレス範囲として予め定められていることが望ましい。要退避アドレスが連続したアドレス範囲として予め定められている場合、要退避アドレスがＲＡＭ２０において散在している場合に比べて、ＲＯＭ３０に記憶される退避アドレステーブルのファイルサイズを小さくすることができるためである。
【００２９】
このように要退避アドレスを連続したアドレス範囲とするためには、予めＣＰＵ１０が実行するプログラムにおいて用いられる各データ（以下、処理データと呼称する）と、当該各データに各々対応するＲＡＭ２０のアドレスの割り当てを最適化しておくことが必要である。具体的には、ＲＡＭ２０において、処理データのうちウェイクモードへ復帰する際に読み出し処理が行われるデータを格納するアドレスが連続するよう、当該アドレスを予め割り当てる必要がある。以下、処理データに対応するＲＡＭ２０のアドレスの割り当てを最適化したプログラムを作成する方法について説明する。
【００３０】
図４は、各処理データを記憶するＲＡＭ２０のアドレスの割り当てを最適化する方法を示すフローチャートの一例である。
【００３１】
先ず、図４のステップＡ１において、ＣＰＵ１０が実行するプログラムの設計者は、従来通りＣＰＵ１０に実行させるプログラムのソースコードを作成し、コンパイルする。上記ステップＡ１の処理によって、各処理データには対応するＲＡＭ２０のアドレスが暫定的に割り当てられる。例えば、図５に示すように、処理データとしてデータＤＡＴ１、データＤＡＴ２、データＤＡＴ３、およびデータＤＡＴ４が存在する場合、各データに対してアドレス0x000a、アドレス0x0002、アドレス0x0001、およびアドレス0x000bが割り当てられる。なお、図５は、各処理データに割り当てられるＲＡＭ２０のアドレスが最適化される様子を示すイメージ図である。
【００３２】
次いで、図４のステップＡ２において、設計者は、ステップＡ１において作成したプログラムのソースを静的解析する。このような静的解析によって、設計者は、ウェイクモード移行時に読み出し処理されている処理データを特定する。例えば、図５においては、データＤＡＴ１およびデータＤＡＴ２がウェイクモード移行時に読み出し処理されている処理データであることが特定されている。
【００３３】
次いで、図４のステップＡ３において、設計者は、ステップＡ２において特定した処理データに対して連続したアドレスを割り当てるように、上述プログラムのソースコードを再度コンパイルする。このような処理によれば、例えば、図５においては、データＤＡＴ１、データＤＡＴ２、データＤＡＴ３、およびデータＤＡＴ４の各データに対してアドレス0x0001、アドレス0x0002、アドレス0x000a、およびアドレス0x000bが各々割り当てられる。すなわち、ウェイクモード移行時に読み出し処理されている処理データについては、要退避アドレスとしてアドレス0x0001およびアドレス0x0002の連続したアドレス領域が割り当てられる。
【００３４】
次いで、図４のステップＡ４において、設計者は、必要なファイルデータをＲＯＭ３０に書き込む。具体的には、ステップＡ３においてウェイクモード移行時に読み出し処理されている処理データに対して割り当てたアドレスを要退避アドレスとして特定し、当該要退避アドレスを示す退避データテーブルをファイルデータとして作成する。そして、ステップＡ３におけるコンパイルにより生成されたプログラムの実行ファイルデータと、退避データテーブルのファイルデータをＲＯＭ３０に書き込む。
【００３５】
以上のように図４に示したプログラムの作成方法によれば、如何様なプログラムについても、処理データに対応するＲＡＭ２０のアドレスの割り当てを容易に最適化することができる。また、このような方法により生成されたプログラムによれば、退避アドレステーブルを記憶するＲＯＭ３０に要する記憶容量を比較的小さくすることが可能である。すなわち、電子制御装置１を安価なハードウェアや、小型のハードウェアで構成することが可能である。
【００３６】
また、図４に示したステップＡ１からステップＡ４の処理は、各ステップにおいて個別に設計者が実行しても構わないし、一連の処理をコンピュータ等により連続して自動的に実行しても構わない。
【００３７】
なお、上記実施形態においては、電子制御装置１が、車両に搭載されるＥＣＵとして使用される例について説明したが、本発明の適用対象は車両に搭載されるＥＣＵに限定されるものではない。すなわち、本発明に係る電子制御装置１は、マイクロコンピュータ等としてあらゆる電子制御機器について適用可能である。本発明に係る電子制御装置１は、消費電力を低減しつつ必要とする記憶容量を従来に比べ低減することができるため、特に、バッテリー等の容量の限られた電力源により駆動される比較的小型の携帯装置の制御装置に適用すると好適である。
【産業上の利用可能性】
【００３８】
本発明に係る電子制御装置は、比較的少ない記憶容量で高速にスリープモードから復帰可能な電子制御装置などとして有用である。
【符号の説明】
【００３９】
１      電子制御装置
１０    ＣＰＵ
１１    レジスタ
２０    ＲＡＭ
２１    要退避アドレス
２２    退避不要アドレス
３０    ＲＯＭ
４０    データフラッシュメモリ
５０    トランシーバ回路
１００  電源装置
【図１】
2011158967.tif 000003
【図２】
2011158967.tif 000004
【図３】
2011158967.tif 000005
【図４】
2011158967.tif 000006
【図５】
2011158967.tif 000007