(57)【要約】【課題】省電力モード又は通常モードへの移行時間を短縮できる情報処理装置を提供すること。【解決手段】第１と第２の動作モードとを有する情報処理装置２００において、不揮発性の記憶手段１５、２３と、揮発性メモリ１２が退避対象又は非退避対象のいずれかの属性を持つデータのうち退避対象データを記憶した場合に、退避対象データのデータ識別情報と該データのアドレスが対応づけられたテーブル３６を作成するアドレステーブル作成手段３５と、第１から第２の動作モードに移行する際、テーブルに登録された退避対象データのアドレスをテーブルから読み出し、揮発性メモリのアドレスから読み出した退避対象データを記憶手段に退避するデータ退避手段３１と、第２の動作モードから第１の動作モードに移行する際、記憶手段に記憶されている退避対象データをアドレステーブルに登録されている揮発性メモリのアドレスに復帰させるデータ復帰手段３３と、を有する。【選択図】図１
2012173919.tif 000002
【特許請求の範囲】
【請求項１】
揮発性メモリに電力が供給される第１の動作モードと、揮発性メモリへの電力供給が遮断される第２の動作モードと、を有する情報処理装置において、
不揮発性の記憶手段と、
前記揮発性メモリが退避対象又は非退避対象のいずれかの属性を持つデータのうち退避対象データを記憶した場合、前記退避対象データのデータ識別情報と該データのアドレスが対応づけられたデータテーブルを作成するアドレステーブル作成手段と、
前記第１の動作モードから前記第２の動作モードに移行する際、前記データテーブルに登録された前記退避対象データのアドレスを前記データテーブルから読み出し、前記揮発性メモリのアドレスから読み出した前記退避対象データを前記記憶手段に退避するデータ退避手段と、
前記第２の動作モードから前記第１の動作モードに移行する際、前記記憶手段に記憶されている前記退避対象データを、前記アドレステーブルに登録されている前記揮発性メモリのアドレスに復帰させるデータ復帰手段と、
を有する情報処理装置。
【請求項２】
前記データテーブルには前記退避対象データの優先順位が登録されており、
前記データ退避手段は、優先順位の高い順に前記データテーブルに登録された前記退避対象データを前記記憶手段に記憶させ、
前記データ復帰手段は、前記記憶手段への記憶順に前記退避対象データを前記揮発性メモリに復帰させる、
請求項１記載の情報処理装置。
【請求項３】
前記データテーブルには前記退避対象データの優先順位が登録されており、
前記データ退避手段は、優先順位の低い順に前記データテーブルに登録された前記退避対象データを前記記憶手段に記憶させ、
前記データ復帰手段は、前記記憶手段に遅く記憶された順に前記退避対象データを前記揮発性メモリに復帰させる、
請求項１記載の情報処理装置。
【請求項４】
揮発性メモリに電力が供給される第１の動作モードと、揮発性メモリへの電力供給が遮断される第２の動作モードと、を有する情報処理装置において、
不揮発性の記憶手段と、
前記揮発性メモリが退避対象又は非退避対象のいずれかの属性を持つデータのうち退避対象データを前記揮発性メモリの第１領域に、前記非退避対象データを前記揮発性メモリの第２領域に、それぞれ記憶するデータストア手段と、
前記第１の動作モードから前記第２の動作モードに移行する際、前記第１領域の全体を前記記憶手段に記憶させるデータ退避手段と、
前記第２の動作モードから前記第１の動作モードに移行する際、前記記憶手段に記憶されている前記第１領域の全体のデータを前記揮発性メモリの前記第１領域に復帰させるデータ復帰手段と、
を有する情報処理装置。
【請求項５】
前記データ退避手段は、前記揮発性メモリのアドレス順に前記第１領域の全体のデータを前記記憶手段に記憶させ、
前記データ復帰手段は、前記記憶手段のアドレス順に前記第１領域の全体のデータを前記揮発性メモリの前記第１領域に復帰させる、
ことを特徴とする請求項４記載の情報処理装置。
【請求項６】
前記退避対象データは、前記第２の動作モードから前記第１の動作モードに移行した後、プログラムが使用するデータである、
ことを特徴とする請求項１〜５いずれか１項記載の情報処理装置。
【請求項７】
前記揮発性メモリは、ＲＡＭ又はＣＰＵのレジスタである、ことを特徴とする請求項１〜６いずれか１項記載の情報処理装置。
【請求項８】
請求項１〜７いずれか１項記載の情報処理装置と周辺回路を搭載した車両用電子制御ユニット。
【請求項９】
揮発性メモリに電力が供給される第１の動作モードと、揮発性メモリへの電力供給が遮断される第２の動作モードと、を有する情報処理装置のデータ記憶方法において、
アドレステーブル作成手段が、前記揮発性メモリが退避対象又は非退避対象のいずれかの属性を持つデータのうち退避対象データを記憶した場合に、前記退避対象データのデータ識別情報と該データのアドレスが対応づけられたデータテーブルを作成するステップと、
データ退避手段が、前記第１の動作モードから前記第２の動作モードに移行する際、前記データテーブルに登録された前記退避対象データのアドレスを前記データテーブルから読み出し、前記揮発性メモリのアドレスから読み出した前記退避対象データを不揮発性の記憶手段に退避するステップと、
データ復帰手段が、前記第２の動作モードから前記第１の動作モードに移行する際、前記記憶手段に記憶されている前記退避対象データを、前記アドレステーブルに登録されている前記揮発性メモリのアドレスに復帰させるステップと、
を有するデータ記憶方法。
【請求項１０】
揮発性メモリに電力が供給される第１の動作モードと、揮発性メモリへの電力供給が遮断される第２の動作モードと、を有する情報処理装置のデータ記憶方法において、
データストア手段が、前記揮発性メモリが退避対象又は非退避対象のいずれかの属性を持つデータのうち退避対象データを前記揮発性メモリの第１領域に、前記非退避対象データを前記揮発性メモリの第２領域に、それぞれ記憶するステップと、
データ退避手段が、前記第１の動作モードから前記第２の動作モードに移行する際、前記第１領域の全体を不揮発性の記憶手段に記憶させるステップと、
データ復帰手段が、前記第２の動作モードから前記第１の動作モードに移行する際、前記記憶手段に記憶されている前記第１領域の全体のデータを前記揮発性メモリの前記第１領域に復帰させるステップと、
を有するデータ記憶方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、省電力モードを備えた情報処理装置に関し、特に、揮発性メモリから不揮発メモリにデータを退避する情報処理装置等に関する。
【背景技術】
【０００２】
消費電力を低減するため、マイコンに電源オフ状態とは別に省電力モードが用意されていることがある。省電力モードでは、マイコンのＲＡＭに記憶されたデータが不揮発メモリに退避される。通常モードへの復帰時、ＣＰＵが不揮発メモリからＲＡＭにデータを再度書き込むことで、アプリケーションやＯＳのファイルを不揮発メモリから読み出す通常起動よりも、起動時間を短縮することができる。
【０００３】
しかし、省電力モードから通常モードへ復帰するまでの起動時間は短いほど好ましい場合が多く、起動時間をさらに短縮することが望まれている（例えば、特許文献１参照。）。特許文献１には、揮発性メモリ内のデータを不揮発性メモリに退避させる省電力モードと、揮発性メモリ内のデータを揮発性メモリ内で保持させた状態を省電力モードとする、２つの省電力モードをマイコンに用意しておことで、省電力モードから通常モードへの復帰の迅速性と、電力の消費の抑制とをユーザが選択可能とする電子機器が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２８７４９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に開示された電子機器は、揮発性メモリ内のデータを不揮発性メモリに退避させる省電力モードにおいて、省電力モード又は通常モードへの移行時間が長期化するという問題がある。すなわち、マイコンが省電力モードから通常モードへ復帰する際に、不揮発メモリの全データを必要とすることは少なく、省電力モードに移行する前の状態に復帰するには不揮発メモリの一部のデータがあれば十分な場合がある。したがって、引用文献１の電子機器は、通常モードから省電力モードへの移行時と省電力モードモードから通常モードへの移行時の両方で、不必要なデータを退避・復帰するため、省電力モード又は通常モードへの移行時間が長期化していた。
【０００６】
本発明は、上記課題に鑑み、省電力モード又は通常モードへの移行時間を短縮できる情報処理装置を提供することをも目的とする。
【課題を解決するための手段】
【０００７】
上記課題に鑑み、本発明は、揮発性メモリに電力が供給される第１の動作モードと、揮発性メモリへの電力供給が遮断される第２の動作モードと、を有する情報処理装置において、不揮発性の記憶手段と、前記揮発性メモリが退避対象又は非退避対象のいずれかの属性を持つデータのうち退避対象データを記憶した場合に、前記退避対象データのデータ識別情報と該データのアドレスが対応づけられたデータテーブルを作成するアドレステーブル作成手段と、前記第１の動作モードから前記第２の動作モードに移行する際、前記データテーブルに登録された前記退避対象データのアドレスを前記データテーブルから読み出し、前記揮発性メモリのアドレスから読み出した前記退避対象データを前記記憶手段に退避するデータ退避手段と、前記第２の動作モードから前記第１の動作モードに移行する際、前記記憶手段に記憶されている前記退避対象データを、前記アドレステーブルに登録されている前記揮発性メモリのアドレスに復帰させるデータ復帰手段と、を有する。
【発明の効果】
【０００８】
省電力モード又は通常モードへの移行時間を短縮できる情報処理装置を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】データ退避方法の概略を説明する図の一例である。
【図２】ＥＣＵの概略構成図の一例である。
【図３】ＥＣＵの機能ブロック図の一例である。
【図４】レジスタの退避・復帰におけるＥＣＵの機能ブロック図の一例である。
【図５】アドレステーブル作成手段がデータアドレスを作成する手順を示すフローチャート図の一例である。
【図６】データ退避手段がスリープ時にデータを退避する手順を示すフローチャート図の一例である。
【図７】データ復帰手段がＷａｋｅＵｐ時にデータをＲＡＭに退避する手順を示すフローチャート図の一例である。
【図８】ＥＣＵの機能ブロック図の一例である（実施例２）。
【図９】データ退避手段がデータを退避する手順、データ復帰手段がデータを復帰する手順をフローチャート図の一例である。
【図１０】ＥＣＵの機能ブロック図の一例である（実施例３）。
【図１１】レジスタの退避・復帰におけるＥＣＵの機能ブロック図の一例である（実施例３）。
【図１２】データ退避手段がデータを退避する手順を示すフローチャート図の一例である。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態について実施例を挙げて図面を参照しながら説明する。
【実施例１】
【００１１】
図１は、本実施例のデータ退避方法の概略を説明する図の一例である。
図１（ａ）に示すように、ＣＰＵ（実際にはアプリケーションプログラム）１１は、ＲＡＭ１２に、復帰後に使用されるデータを書き込むと、該データのアドレスをデータアドレステーブル３６に登録する。図では、復帰後に使用されるデータとしてVal_CとVal_EがＲＡＭ１２に書き込まれているので、データアドレステーブル３６にはVal_CとVal_Eが書き込まれたアドレスが登録されている。
【００１２】
図１（ｂ）は、不揮発メモリへの退避を説明する図である。マイコンが省電力モードモードに移行する際、ＣＰＵ１１はデータアドレステーブル３６を参照して、復帰後に使用されるデータのＲＡＭ１２におけるアドレスを特定する。そして、ＣＰＵ１１はデータアドレステーブル３６に登録されたアドレスに記憶されているRAM１２のデータを不揮発メモリ１５，２３に退避する。
【００１３】
データアドレステーブル３６に登録されているデータは、マイコンが全て省電力モードから通常モードに復帰した後に使用するデータなので、ＣＰＵ１１はデータアドレステーブル３６に登録されている全てのデータを不揮発メモリ１５，２３に退避（記憶）させる。
【００１４】
このように、省電力モードへの移行時に、省電力モードからの復帰後に使用されるデータのみを退避することで、省電力モードへの移行時間を短縮でき、かつ、省電力モードから通常モードへの移行時間を短縮できる。また、従来はＲＡＭ１２と同程度の不揮発メモリが必要であったが、本実施例では退避するデータを少なくするので不揮発メモリの容量を低減できる。
【００１５】
なお、省電力モードとしては、スリープモード、スタンバイモード、又は、ハイバネーションモードなどのモード名が知られているが、一般に、スリープモードとハイバネーションモードはデータを不揮発メモリ１５，２３に退避し、スタンバイモードはＲＡＭ１２からデータを退避しないモードである（ＲＡＭ１２のリフレッシュのための電力を消費してしまう）。本実施例の省電力モードは、こういったモード名に関係なく、揮発性メモリから不揮発メモリに退避対象のデータを退避するモードであればよい。
【００１６】
また、通常モードとはプログラムが動作可能なモードであり、通常モードの中でさらに動作周波数が可変である等、消費電力の異なるモードがあってもよい。なお、マイコンが省電力モードから通常モードへ移行することをＷａｋｅＵｐと呼ぶ場合がある。
【００１７】
〔構成〕
図２は、ＥＣＵの概略構成図の一例を示す。ＥＣＵ（Electronic  Contorol  Unit）１００はマイコン２００とその他の回路とを有し、その他の回路は主に電源ＩＣ２１、入出力Ｉ／Ｆ２２、不揮発メモリ２３、監視回路２４、及び、クロック生成器２５である。
【００１８】
また、マイコン２００はＣＰＵ１１、ＲＡＭ１２、ＲＯＭ１３、ＩＮＴＣ（割込みコントローラ）１４、不揮発メモリ１５、ＤＭＡＣ１６、及び、ブリッジ１７を有する。ＣＰＵ１１は、例えばＲＯＭ１３に記憶されたプログラムを実行しＲＡＭ１２にデータを書き込み、またＲＡＭ１２に書き込まれたデータを読み出して演算結果を生成したり、他のＥＣＵと通信するための通信情報を生成する。ＲＡＭ１２はこのようなプログラムの作業メモリとなり、各種のデータが一時的に記憶される。
【００１９】
ＲＯＭ１３にはプログラムが予め記憶されている。また、プログラムはＥＣＵ１００に特有の処理を行うものの他、データの退避・復帰を行うためのプログラムが含まれているが、区別せずに図示している。ＩＮＴＣ１４は、入出力Ｉ／Ｆ２２、不図示のタイマ、又は、他のＥＣＵ等からの割込み要因を調停して、ＣＰＵ１１に割込み要求する。不揮発メモリ１５は、フラッシュメモリなどのＥＥＰＲＯＭであり省電力モード移行時にデータの退避に使用される。ＤＭＡＣ１６は、入出力Ｉ／Ｆ２２からの要求を受け付けて入出力Ｉ／Ｆ２２からＲＡＭ１２の指定アドレスにデータを転送し、また、ＣＰＵ１１からの要求を受け付けてＲＡＭ１２の指定アドレスから入出力Ｉ／Ｆ２２にデータを転送する。ブリッジ１７は、マイコン内のバス１８とマイコン２００外のバス２６の周波数の違いや電圧の違いを吸収してバス同士を接続する。
【００２０】
電源ＩＣ２１は、不図示のバッテリ又はＩＧ電源（どちらを電源とするかはＥＣＵによって異なる）から電力供給を受けてマイコン駆動用の電圧・電流を生成する。ＩＧオン（メインリレーオン）時は、ＥＣＵ内の全ての回路を通常モードで動作させるために必要な大容量の電圧・電流を生成し、ＩＧオフ（メインリレーオフ）時は、マイコン２００や他の回路の一部を省電力モードに保持するために必要な最小限の電圧・電流を生成する。電源ＩＣ２１は、通常モードと省電力モードにおいて、予めそれぞれに決められた回路に電力を供給する。
【００２１】
入出力Ｉ／Ｆ２２にはマイコン２００が演算に用いる信号を検出する各種のセンサ、マイコン２００が制御するアクチュエータやアクチュエータのドライバ回路、ＣＡＮ（Controller  Area  Network）通信等が接続されている。不揮発メモリ２３は、フラッシュメモリなどのＥＥＰＲＯＭであり省電力モード移行時にデータの退避に使用される。ＥＣＵによっては、不揮発メモリ１５と不揮発メモリ２３はどちらか一方のみが搭載されることがある。
【００２２】
監視回路２４は、異常を検出するためのウォッチドックタイマ、異常時にマイコン２００をリセットして再起動させるためのリセット回路等を有する。クロック生成器２５はマイコン２００に同期用のクロックを供給する。クロック生成器２５は、省電力モードになると、クロックを停止するか通常モードよりも低速にし、また、ＣＰＵ（又は一部）等、通常モードに復帰するための移行条件の成立を検出するための回路以外へのクロック供給を停止して消費電力を抑制する。
【００２３】
図３は、マイコン２００の機能ブロック図の一例を示す。マイコン２００は、アドレステーブル作成手段３５、データ退避手段３１、データ復帰手段３３、移行判定手段３４、及び、データ保持手段３２を有する。データ保持手段３２は、図２の不揮発メモリ１５又は不揮発メモリ２３が対応する。アドレステーブル作成手段３５、移行判定手段３４、データ復帰手段３３及びデータ退避手段３１は、ＣＰＵ１１がプログラムを実行することで実現される。
【００２４】
＜データアドレステーブル＞
データアドレステーブル３６はデータ名と、そのデータのＲＡＭ１２における格納アドレスを対応づけたデータ構造を有する。ＣＰＵ１１が実行するプログラムには、後述するように、データアドレステーブル３６に格納アドレスを登録すべきデータ名が記述されている。これにより、データアドレステーブル３６には、省電力モードへの復帰後に使用されるデータのみの格納アドレスが登録される。
【００２５】
省電力モードへの復帰後に使用されるデータとは、何らかのイベントの発生時に更新されるステータスやモードなどを表すデータ、更新の頻度が低いデータ、処理の途中であるがWakeUp後に再度、最初の処理から実行される仕組みをもっていないデータなどである。具体例としては、ボディＥＣＵがＲＡＭ１２に記憶するドアが解錠状態又は施錠状態のいずれであるかを示すステータスデータ、他のＥＣＵ１００へ送信するためＲＡＭ１２に準備されているがまだ送信が完了指定なデータなどが挙げられる。
【００２６】
一方、省電力モードへの復帰後に使用されないデータとは、時間の経過と共に最新値が頻繁かつ自動的に更新されるデータ、過去の時点における古い値には意味のないデータなどである。具体例としては、現在の走行速度データ、現在のエンジン回転数データ、等が挙げられる。
【００２７】
なお、データ名は、プログラム（コンパイルされている）に記述されている変数名、又は、変数を識別するための識別情報である。このため、以下ではデータ名と変数名を同じ意味で用いる場合がある。
【００２８】
アドレステーブル作成手段３５は図３のようなデータアドレステーブル３６を作成する。プログラムが変数や固定値をＲＡＭ１２に書き込む場合、コンパイラにより生成されたST（ストア）命令やPUSH命令等のーモニックが実行されることでＲＡＭ１２にアクセスする。よって、これらの命令が実行されることはＲＡＭ１２にデータが書き込まれることになる。ST命令に対しアクセスされるＲＡＭ１２のアドレス、PUSH命令に対しアクセスされるＲＡＭ（スタック）１２のアドレスは、それぞれの命令の実行時の所定のレジスタに格納されている。また、ＲＡＭ１２に書き込まれるデータは変数名を経由して、ST命令やPUSH命令のオペランドのレジスタに記憶されている。
【００２９】
これらを利用して、アドレステーブル作成手段３５は、データの記憶先のアドレスが書き込まれたレジスタの内容をデータアドレステーブル３６に登録する。より具体的には、開発者等がソースコードを記述する際にはプログラムにST命令やPUSH命令が現れないので、例えばコンパイラを利用する。すなわち、開発者等はコンパイラに以下のような記述を加える。
(i) スリープ時に退避すべきデータのリストの生成、及び、データアドレステーブルの領域を確保する命令を生成する記述
(ii) ST命令やPUSH命令を検出すると、オペランドのレジスタに記憶された変数が、退避すべきデータのリストに登録されている否かを判定するための命令を生成する記述
(iii) 退避すべきデータの場合、ST命令やPUSH命令の実行時のレジスタの内容をデータアドレステーブルに登録する命令を生成する記述
コンパイラが上記記述に対応した処理を実行すると、ＥＣＵ１００が実行するプログラムにアドレステーブル作成手段３５が生成される。例えば、PUSH命令が検出され、変数Val_Cが退避すべきデータの場合、アドレステーブル作成手段３５は以下のようになる。なお書式は一例であり適宜省略している。
【００３０】
PUSH  Gr1        ;Val_C（データ内容）が記憶されたGr1をＲＡＭに記憶
…                  ;命令で使用された“Val_C”という変数名をGr1に記憶
LD  Gr2,  tbl_C    ;tbl_C 番地のVal_CをGr2に読み出す
CPL  Gr1,Gr2      ;Gr1（Val_C）とGr2（tbl_C 番地のVal_C）を比較
JZE  EQ1          ;一致したらEQ1へジャンプ  
…                  ;同様にtbl_E番地以下のVal_E等と比較
EQ1  mov  Gr3,  SP    ;スタックポインタレジスタの中身をGr3にコピー
ST  Gr3，tbl_C_V  ;Gr3の内容をtbl_C_V番地に記憶
JMP  XX          ;元の実行箇所に戻る           
EQ2  mov  Gr3,  SP    ;スタックポインタレジスタの中身をGr3にコピー
ST  Gr3，tbl_E_V  ;Gr3の内容をtbl_E_V番地に記憶
JMP  XX          ;元の実行箇所に移動
tbl_C    DC  ‘Val_C’  ;tbl_C番地にデータ名Val_Cを設定
tbl_C_V  DS  １      ;次の番地に変数Val_Cの領域を確保（ex.4バイト）
tbl_E    DC  ‘Val_E’  ;tbl_E番地にデータ名Val_Eを設定
tbl_E_V  DS  １      ;次の番地に変数Val_Eの領域を確保（ex.4バイト）
このような処理により、tbl_C番地のデータ名に対応づけてtbl_C_V番地に格納アドレスが記憶される。よって、同じ変数が何度もＲＡＭ１２に書き込まれても、データ退避手段３１はtbl_C_V番地に記憶されている最新のデータを特定できる。
【００３１】
なお、ソースコード中にアセンブラ（ニーモニック）を記述できるインラインアセンブラに対応したソースコードで開発者がプログラムを記述する場合、コンパイラを利用することなく、開発者が上記のアドレステーブル作成手段３５のニーモニックを記述できる。
【００３２】
次に、移行判定手段３４について説明する。移行判定手段３４は、通常モードから省電力モードへの移行条件の成立を検出して、データの退避をデータ退避手段３１に指示する。省電力モードから通常モードへの移行条件の成立は、何らかの割り込みであることが多いので、移行判定手段３４はこのような割り込みの検出手段又はデータ復帰手段３１を起動する手段である。
【００３３】
通常モードから省電力モードへの移行条件は、ＥＣＵ１００によって様々であるが、例えば、乗員がＩＧオフに操作したこと、ＩＧオフ後、定められた終了処理（アクチュエータを安全に停止させる処理、ＥＣＵハードのアクセスを適切に終了させる処理等）が終了したこと、監視対象の通信線の所定時間の平均電圧が閾値未満であったこと（つまりそのＥＣＵが使用されていない）、等である。
【００３４】
省電力モードから通常モードへの移行条件もＥＣＵ１００によって様々であるが、例えば、乗員がＩＧオンに操作したこと、監視対象の通信線の所定時間の平均電圧が閾値以上であったこと、ユーザ操作が検出されたこと等である。これらの移行条件の成立は、例えば、ＣＰＵ１１への割り込み又はマイコン２００のＷＡＫＥ端子にウェイクアップ信号が入力されることで検出される。
【００３５】
移行判定手段３４が省電力モードに移行すると判定すると、データ退避手段３１はＲＡＭ１２に記憶されているデータの退避を開始する。データ退避手段３１は、データアドレステーブル３６に記憶されているデータ名を例えばデータアドレステーブル３６の登録順に決定し、データ名に対応づけられた格納アドレスを読み出す。そして、データ退避手段３１はＲＡＭ１２のアドレスからデータ内容を読み出し、データ名とデータ内容を対応づけてデータ保持手段３２に退避する（記憶する）。これにより、ＥＣＵ１００が通常モード時にＲＡＭ１２に記憶したデータを退避させることができる。
【００３６】
また、データ退避手段３１はデータアドレステーブル３６に登録されている全てのデータをデータ保持手段３２に退避すると、データアドレステーブル３６をＲＡＭ１２からデータ保持手段３２に退避する。これにより、データ復帰手段３３がＷａｋｅＵｐ時にデータアドレステーブル３６を利用できる。最終的に、データ退避手段３１は省電力モードへ移行するＳｌｅｅｐ命令を実行して、省電力モードに移行する。
【００３７】
通常モードへの移行条件が成立すると、例えば、割り込みハンドラにより指定される予め定められたアドレスの命令、又は、省電力モードに移行する直前に実行された命令（例えば、省電力モードへ移行するＳｌｅｅｐ命令）の次の命令、をＣＰＵ１１が実行する。これにより復帰処理が開始される。
【００３８】
データ復帰手段３３はデータ保持手段３２に退避されているデータの復帰を開始する。データ復帰手段３３は、データアドレステーブル３６をデータ保持手段３２からＲＡＭ１２に移動し、データ保持手段３２のデータ名とデータ内容を例えばアドレス順に読み出す。そして、データアドレステーブル３６の同じデータ名の格納アドレスを参照して、ＲＡＭ１２のそのアドレスにデータ内容を書き込む。データ復帰手段３３はデータ保持手段３２に退避されている全てのデータ内容をＲＡＭ１２に書き込む。これにより、ＲＡＭ１２には復帰後に使用されるデータが省電力モード前とＲＡＭ１２の同じアドレスに復帰されたことになる。
【００３９】
なお、復帰後に使用されないデータはＲＡＭ１２に書き込まれないので、これらのデータが記憶されていたＲＡＭ１２のアドレスのデータは不定であるが、マイコン２００が実行するプログラムはこのデータを使用しないので不都合はない。しかし、プログラムがアクセスしても想定外の演算が行われないように、データ復帰手段３３はデータが存在しないことを示すＮＵＬＬ値を、復帰に不要なデータとしてＲＡＭ１２に書き込んでよい。こうすることで、プログラムが復帰後に使用しないと思われていたデータを読み出しても、マイコン２００が想定外の動作をすることを防止できる（プログラムはデータが正しいか否かを例えば、データがある範囲に入ることをチェックする。）。
【００４０】
データ復帰手段３３はデータ保持手段３２に退避されている全てのデータをＲＡＭ１２に書き込むと、ＲＯＭ１３におけるプログラムの例えば先頭アドレス、又は、下記のレジスタ内容を利用してデータ退避手段３１が退避を開始する直前に実行されていた命令の次の命令をプログラムカウンタにセットする。これにより、ＣＰＵ１１はマイコン２００に特有の機能を提供するためのプログラムの実行を開始する。
【００４１】
〔レジスタのデータについて〕
ＣＰＵ１１へ電力が供給されない省電力モードでは、ＣＰＵ１１のレジスタに記憶されたデータもＲＡＭ１２のデータと同様に退避することが好ましい。本実施例のＥＣＵ１００は、レジスタのデータもＲＡＭ１２のデータと同様に退避・復帰することができる。
【００４２】
図４は、レジスタの退避・復帰におけるＥＣＵ１００の機能ブロック図の一例を示す。図４において図３と同一部の説明は省略する。図４ではマイコン２００にＣＰＵ１１とＣＰＵ１１が有するレジスタGr0〜Gr4が図示されている。この他、プログラムカウンタレジスタ、スタックポインタレジスタ、フラグレジスタ等は省略した。
【００４３】
また、データアドレステーブル３６はレジスタ名のリストである。データ退避手段３１がレジスタの内容を退避する場合、レジスタ名が分かればアドレス（どのレジスタか）は特定されるので、格納アドレスは不要になる。よって、データアドレステーブル３６には、復帰後に使用されるデータが記憶されうるレジスタ名をリストアップしておけばよい。レジスタ名は、例えばプログラムに記述されているレジスタ名、又は、識別するための識別情報である。したがって、図４のデータアドレステーブル３６は、図３の場合のようにアドレステーブル作成手段３５が作成する必要のない静的なテーブルであり、不揮発メモリ１５，２３に予め記憶されている。
【００４４】
図４のデータ退避手段３１はＲＡＭ１２のデータを退避する場合と同様に、レジスタのデータを退避でき、データ復帰手段３３はＲＡＭ１２のデータを退避する場合と同様にレジスタのデータを復帰させることができる。
【００４５】
〔動作手順〕
図５は、アドレステーブル作成手段３５がデータアドレスを作成する手順を示すフローチャート図の一例である。図５の手順は、プログラムがＲＡＭ１２に対し書込処理を行うとスタートする。
【００４６】
まず、プログラムがST命令やPUSH命令のようにＲＡＭ１２にデータを書き込む処理を実行する（Ｓ１０）。
【００４７】
すると、アドレステーブル作成手段３５は、通常モードへの復帰後にプログラムが使用するデータが書き込まれたか否かを判定する（Ｓ２０）。通常モードへの復帰後にプログラムが使用するデータが書き込まれた場合（Ｓ２０のＹｅｓ）、データが書き込まれたＲＡＭ１２のアドレスをデータ名に対応づけてデータアドレステーブル３６に登録する（Ｓ３０）。なお、データアドレステーブルにデータ名を登録しなくても、データアドレステーブルの決まったアドレスに決まったデータの格納アドレスを登録すればよい。
【００４８】
アドレステーブル作成手段３５は、通常モードへの復帰後にプログラムが使用するデータでないデータが書き込まれた場合（Ｓ２０のＮｏ）、何もせずに処理を終了する。
【００４９】
図６は、データ退避手段３１がスリープ時にデータを退避する手順を示すフローチャート図の一例である。図６の手順は移行判定手段３４が省電力モードに移行すると決定するとスタートする。
【００５０】
まず、データ退避手段３１は、Nに初期値“１”を設定する（Ｓ１１０）。そして、データ退避手段３１はデータアドレステーブル３６のＮ行目から順番に参照して、格納アドレスを読み出す（Ｓ１２０）。
【００５１】
データ退避手段３１は、Ｎ行目の格納アドレスに有効なアドレス値が登録されているか否かを判定する（Ｓ１３０）。有効なアドレス値とは“0000h”などの初期値でなく、アドレステーブル作成手段３５がデータアドレステーブル３６にデータと格納アドレスを対応づけて登録したことで記憶されたアドレス値である。つまり、ＥＣＵ１００に特有のプログラムはＲＡＭ１２をいったん初期化するので、アドレステーブル作成手段３５が格納アドレスを登録しなければ、データアドレステーブルの各データの格納アドレスが記憶される領域には“0000h”などの初期値が登録されたままだからである。データ退避手段３１にはこの具体的な初期値が登録されているので、有効なアドレス値が登録されているか否かを容易に判定できる。
【００５２】
有効なアドレス値が登録されている場合、データ退避手段３１は有効と判定されたＲＡＭ１２のアドレスからデータを読み出し、データ名と対応づけてデータ保持手段３２に退避する（Ｓ１４０）。
【００５３】
次に、データ退避手段３１はデータアドレステーブル３６の最終行まで処理したか否かを判定し（Ｓ１５０）、最終行まで処理していなければＮをインクリメントして(Ｓ１６０)、ステップＳ１２０からの処理を繰り返す。最終行まで処理すると図６の処理を終了する。最終行に到達したことは、Nが予め定めた値に到達したこと、又は、データアドレステーブル３６の最終行に登録される値（例えば、FFFFｈ）を検出したことにより判定される。なお、レジスタについても同様に処理できる。
【００５４】
図７は、データ復帰手段３３がＷａｋｅＵｐ時にデータをＲＡＭ１２に復帰させる手順を示すフローチャート図の一例である。図７の手順は、例えばＣＰＵ１１への割り込み又はマイコン２００のＷＡＫＥ端子にウェイクアップ信号が入力されるとスタートする。
【００５５】
まず、データ復帰手段３３は、不揮発メモリ１５，２３に記憶されていたデータアドレステーブル３６をＲＡＭ１２にコピーする（Ｓ２１０）。これによりデータアドレステーブル３６を参照可能になる。
【００５６】
次に、データ復帰手段３３は、Ｍに初期値“１”を設定する（Ｓ２２０）。そして、データ復帰手段３３はデータ保持手段３２のＭ番目のデータを読み出す（Ｓ２３０）。
【００５７】
次に、データ復帰手段３３は同じデータ名のデータをデータアドレステーブル３６にて特定し、そのデータが退避前に記憶されていたＲＡＭ１２の格納アドレスを読み出す（Ｓ２４０）。データ復帰手段３３はデータ保持手段３２のＭ番目のデータ内容を読み出し、Ｓ２４０で特定したＲＡＭ１２のアドレスに復帰する（Ｓ２５０）。
【００５８】
次に、データ復帰手段３３はデータ保持手段３２の最終行まで処理したか否かを判定し（Ｓ２６０）、最終行まで処理していなければＭをインクリメントして(Ｓ２７０)、ステップＳ２３０からの処理を繰り返す。最終行に到達したことは、データ保持手段３２の最終行に登録される値（例えば、FFFFｈ）を検出したことにより判定される。なお、レジスタについても同様に処理できる。
【００５９】
以上説明したように、本実施例のＥＣＵ１００は、省電力モードへの移行時に、省電力モードからの復帰後に使用されるデータのみを退避することで、省電力モードへの移行時間を短縮でき、かつ、通常モードへの移行時間を短縮できる。
【実施例２】
【００６０】
本実施例ではデータアドレステーブル３６を用いることなく省電力モードへの移行と通常モードへの復帰が可能なＥＣＵ１００について説明する。
【００６１】
図８（ａ）は、本実施例のＥＣＵ１００の機能ブロック図の一例を示す。図8（ａ）において図３と同一部には同一の符号を付しその説明は省略する。本実施例ではデータアドレステーブル３６を作成する必要がないのでアドレステーブル作成手段３５が存在しないが、代わりにデータストア手段３７を有する。データストア手段３７は復帰後に使用されるデータか否かに応じてＲＡＭ１２におけるデータの記憶先を振り分ける。
【００６２】
さらに、本実施例ではプログラムが、ＲＡＭ１２を予め復帰後に使用されるデータが記憶される領域（以下、領域Ｂという）と復帰に不要なデータが記憶される領域（以下、領域Ａという）の２つの領域に区分する。図では、アドレスのXXXXhからYYYYｈの直前までが領域Ｂ、YYYYhからZZZZｈの直前までが領域Ａである。
【００６３】
一般には、開発者がソースコードでマイコン２００に特有の機能を提供するプログラムを記述する際、全てのデータをＲＡＭ１２のどのアドレスに記憶するかを指定することは少ない（一部のデータに対しＲＡＭ１２のどのアドレスに記憶するかを意識することはあっても）。そこで、実施例１と同様にコンパイラを利用する。すなわち、開発者等はコンパイラに以下のような記述を加える。
（i）スリープ時に退避すべきデータのリストの生成、及び、２つの領域を確保する記述
（ii）ST命令やPUSH命令を検出すると、オペランドのレジスタに記憶された変数が、退避すべきデータのリストに登録されている否かを判定するための命令を生成する記述
（iii）退避すべきデータの場合は領域Ｂに、退避すべきデータでない場合は領域Ａに、それぞれデータを退避する命令を生成する記述
すなわち、コンパイラは、例えば「PUSH  Gr1（Val_Cが入ったGr1をＲＡＭに記憶）」が検出されると、オブジェクトコードに記述する前に、データVal_Cが復帰に必要か否かを判定する命令、必要である場合、領域Ｂに記憶する命令を生成する。このような記憶先の振り分けの実現にはいくつか方法があるが、例えば、領域ＡとＢのそれぞれの先頭アドレスを起点に各データを記憶する方法、ポインタを２つ用意し、領域Ａ、Ｂのアドレスをそれぞれに指示させる方法、等がある。
【００６４】
こうすることで、プログラムはＲＡＭ１２におけるデータの記憶先を、復帰後に使用されるデータは領域Ｂに、復帰後に使用されないデータは領域Ａに振り分けて記憶することができる。本実施例では、復帰後に使用されるデータであっても領域Ｂ内におけるアドレスを特定する必要はない。退避時には領域Ｂのデータをデータ保持手段３２に退避し、復帰時にはデータ保持手段３２のデータを領域Ｂに記憶すればよいからである。
【００６５】
このようにしてプログラムに搭載された、データを２つの領域Ａ、Ｂに振り分ける機能を図ではデータストア手段３７として記載した。データストア手段３７は、プログラムが実行された際に２つの領域Ａ、Ｂにデータを振り分ける。
【００６６】
本実施例のデータ退避手段３１及びデータ復帰手段３３には、領域Ｂのアドレス（YYYYhからZZZZｈの直前まで）が予め登録されている。したがって、データ退避手段３１及びデータ復帰手段３３はデータアドレステーブル３６を参照することなく、データを退避・復帰することができる。
【００６７】
すなわち、データ復帰手段３３は、省電力モードへの移行時に、アドレスYYYYhからZZZZｈの直前までのデータを機械的にデータ保持手段３２に退避する。機械的にとは、ＲＡＭ１２におけるデータの順番（アドレス）どおりに、データ保持手段３２に記憶することを意味する。データ復帰手段３３にとって、データ保持手段３２のどのアドレスにＲＡＭ１２のアドレスYYYYhからZZZZｈのデータが退避されているかは既知なので、ＷａｋｅＵｐ時に、データ保持手段３２に退避されているＲＡＭ１２のアドレスYYYYhからZZZZｈの直前までのデータを、ＲＡＭ１２のアドレスYYYYhからZZZZｈの直前までに機械的に復帰すればよい。
【００６８】
〔レジスタのデータについて〕
図８（ｂ）は、レジスタの退避・復帰におけるＥＣＵ１００の機能ブロック図の一例を示す。図８（ｂ）において図４と同一部の説明は省略する。レジスタの場合、復帰後に使用されるデータか否かに応じてレジスタを使い分けることも不可能ではないが、実施例１と同様に、復帰後に使用されるデータが記憶されうるレジスタ名をリストアップしておくことで、データアドレステーブル３６を不要にするという効果が得られる。この場合、記憶先のレジスタを振り分けないのでデータストア手段３７も不要である。データ退避手段３１には、復帰後に使用されるデータが記憶されうるレジスタ名が記述されているので、そのレジスタのデータを退避すればよい。一方、データ保持手段３２又はデータ復帰手段３３には復帰対象のレジスタ名が必要になる。
【００６９】
したがって、本実施例のデータ退避手段３１は、省電力モードへの移行時に、予めデータ退避手段３１にとって既知のレジスタGr1,Gr4のデータをデータ保持手段３２にレジスタ名と対応づけて退避する。レジスタ名がなくても、データ保持手段３２のどのアドレスにどのレジスタのデータが記憶されているかは固定である。データ復帰手段３３にとって、データ保持手段３２のどのアドレスにレジスタGr1,Gr4のデータが退避されているかは既知なので、ＷａｋｅＵｐ時、データ保持手段３２に退避されているGr1、Gr4のレジスタのデータを、レジスタGr1,Gr4に機械的に復帰すればよい。
【００７０】
なお、復帰後に使用されるデータか否かに応じてレジスタを使い分ける場合、例えば、開発者等が、復帰後に使用されるデータは所定の汎用レジスタＧr1,Ｇr4を、復帰後に使用されないデータは汎用レジスタＧr0、Ｇr2、Gr3を用いて各種の演算を行うようにコンパイラを記述しておけば、プログラムはデータが復帰に必要か否かに応じて汎用レジスタを使い分けることができる。この場合は、データ保持手段３２のレジスタ名も不要になる。
【００７１】
〔動作手順〕
図９（ａ）は、データ退避手段３１がデータを退避する手順を示すフローチャート図の一例である。図９の手順は移行判定手段３４が省電力モードに移行すると決定するとスタートする。
【００７２】
まず、データ退避手段３１は、Ｋに初期値“０”を設定する（Ｓ３１０）。そして、データ退避手段３１はＲＡＭ１２の領域Ｂの先頭アドレス＋ｋのデータを読み出す（Ｓ３２０）。
【００７３】
データ退避手段３１は読み出したデータをアドレス順にデータ保持手段３２に退避する（Ｓ３３０）。
【００７４】
次に、データ退避手段３１は領域Ｂのデータを全て退避したか否かを判定し（Ｓ３４０）、全て退避していなければＫをインクリメントして(Ｓ３５０)、ステップＳ３２０からの処理を繰り返す。領域Ｂのデータを全て退避すると図９（ａ）の処理を終了する。なお、領域Ｂは固定なのでデータ退避手段３１は最後のアドレス（ZZZZhの手前）に到達したことで、領域Ｂのデータを全て退避したと判定できる。
【００７５】
図９（ｂ）は、データ復帰手段３３がＷａｋｅＵｐ時にデータをＲＡＭ１２に復帰する手順を示すフローチャート図の一例である。
【００７６】
まず、データ復帰手段３３は、Kに初期値“０”を設定する（Ｓ４１０）。そして、データ復帰手段３３はデータ保持手段３２の先頭アドレス＋ｋのデータを読み出す（Ｓ４２０）。
【００７７】
そして、データ復帰手段３３はＲＡＭ１２の領域Ｂの先頭アドレス＋ｋにデータを復帰する（Ｓ４３０）。先頭アドレスは例えばＹＹＹＹｈであり、データ復帰手段３３にとって既知である。
【００７８】
次に、データ復帰手段３３はデータ保持手段３２のデータを全て復帰したか否かを判定し（Ｓ４４０）、全て復帰していなければＫをインクリメントして(Ｓ４５０)、ステップＳ４２０からの処理を繰り返す。データ保持手段３２のデータを全て退避すると図９（ｂ）の処理を終了する。なお、領域Ｂのサイズが固定なのでデータ保持手段３２の最後のデータもアドレスから容易に特定できる。レジスタについても同様に処理できる。
【００７９】
以上説明したように、本実施例のＥＣＵ１００は、データアドレステーブル３６を用いることなく、省電力モードへの移行時間を短縮でき、かつ、通常モードへの移行時間を短縮できる。
【実施例３】
【００８０】
実施例１では復帰後に使用される各データの優先順位については考慮しなかったが、復帰後に使用される各データ間でも復帰後に早期に読み出されるデータとそうでないデータがある。そこで、本実施例では、データの優先順位を考慮して通常モードへの復帰時に、優先順位の高いデータから先にＲＡＭ１２に書き込むＥＣＵ１００について説明する。
【００８１】
図１０は、ＥＣＵ１００の機能ブロック図の一例を示す。図１０において図４と同一部の説明は省略する。本実施例では、データアドレステーブル３６が実施例１と異なっている。本実施例のデータアドレステーブル３６は属性情報のフィールドが登録されている。属性情報は数値であり、数値が小さいほどデータの優先順位が高いことを表す。
【００８２】
本実施例のデータアドレステーブル３６の生成について説明する。データの優先順位は固定であるので、例えば開発者等は、省電力モードからの復帰後に早期にアクセスされるデータを調査し、早期にアクセスされるデータほど優先順位が高いとして小さい属性情報を付与する。スリープからの復帰後にアクセスされるデータが不定のプログラムが実装されたＥＣＵ１００の場合、例えば、アクセス頻度が高いデータほど優先順位を高くする。また、例えば、プログラムの最初の方に使用されるデータほど優先順位を高くすることもできる。なお、全てのデータに優先順位を付与する必要はなく、上位の１０〜２０程度（又は１０〜５０％程度）に優先順位を付与しておけば、残りのデータの属性情報が同じでも、復帰後に早期に読み出されるデータを早期にＲＡＭ１２に書き込むという効果は十分に得られる。
【００８３】
優先順位とデータの対応は固定なので、実施例１のデータアドレステーブル３６に属性情報を追加する。この他のコンパイラの記述やデータの記憶方法は実施例１と同様である。
tbl_C    DC  ‘Val_C’          ;tbl_C番地にデータ名Val_Cを設定
tbl_C_A  DC    0000          ;tbl_C_A番地に属性情報を設定
tbl_C_V   DS  １              ;次の番地に変数Val_Cの領域を確保（ex.4バイト）
tbl_E    DC  ‘Val_E’          ;tbl_E番地にデータ名Val_Eを設定
tbl_E_A   DC  0001            ;tbl_E_A番地に属性情報を設定
tbl_E_V   DS  １              ;次の番地に変数Val_Eの領域を確保（ex.4バイト）
そして、データ退避手段３１は、省電力モードへの移行時、データアドレステーブル３６を参照して属性情報の小さいデータから順番に、データ保持手段３２に退避する。これにより、データ復帰手段３３は属性情報の小さいデータから順番にデータ保持手段３２からデータを読み出すことができる。
【００８４】
データ復帰手段３３は、優先順位の高いデータ（属性情報の小さいデータ）からＲＡＭ１２に復帰したいので、データ保持手段３２から属性情報の小さいデータから先に取り出すことが好ましい。このため、本実施例のデータ保持手段３２はキュー構造（ＦＩＦＯ）のデータ構造を有する。これにより、データ復帰手段３３は先に退避されたデータから順番にＲＡＭ１２に復帰させることができる。
【００８５】
本実施例のＥＣＵ１００は、ＷａｋｅＵｐ中（つまり、データ保持手段３２のデータがまだ全てＲＡＭ１２に書き込まれていない状態）に、ＥＣＵ１００がプログラムを実行できるようになるため、実施例１，２と比べても復帰時間を短縮できる。一般には１つのＣＰＵ１１が時分割に復帰処理とマイコン特有の処理であるプログラムを実行することは少ないが、ＣＰＵ１１がマルチコア型の場合やＥＣＵ１００が複数のＣＰＵコアを有している場合、１つのＣＰＵコアが復帰処理を実行しながら、他方のＣＰＵコアがプログラムを実行することができる。
【００８６】
〔データ保持手段の変形例〕
データ保持手段３２はキュー構造として説明したが、データ保持手段３２はスタック構造でもよい。スタック構造は、後に記憶されたデータから先に取り出されるデータ構造である（FIFO）。データ復帰手段３３が優先順位の高いデータから先に取り出すためには、データ退避手段３１が優先順位の低いデータから先にデータ保持手段３２に退避すればよい。すなわち、データ退避手段３１は、省電力モードへの移行時、データアドレステーブル３６を参照して、属性情報の大きいデータから順番に、データ保持手段３２に退避する。これにより、データ復帰手段３３は属性情報の小さいデータから順番にスタック構造のデータ保持手段３２からデータを読み出すことができる。
【００８７】
〔レジスタのデータについて〕
図１１は、レジスタの退避・復帰におけるＥＣＵ１００の機能ブロック図の一例を示す。図１１において図１０と同一部の説明は省略する。図１１ではマイコン２００にＣＰＵ１１とＣＰＵ１１が有するレジスタGr0〜Gr4が図示されている。
【００８８】
また、データアドレステーブル３６は、属性情報とレジスタ名を対応づけたデータ構造を有する。属性情報の意味は、図１０のデータアドレステーブル３６と同じであり、属性情報が小さいほど優先順位が高くなっている。したがって、データ退避手段３１は、省電力モードへの移行時、データアドレステーブル３６を参照して属性情報の小さいレジスタ名のデータから順番に、レジスタ名に対応づけてデータ保持手段３２に退避する。これにより、データ復帰手段３３は属性情報の小さいレジスタ名のデータから順番にキュー構造のデータ保持手段３２から読み出すことができる。
【００８９】
〔動作手順〕
図１２は、ＥＣＵ１００がデータを退避及び復帰する手順を示すフローチャート図の一例である。
【００９０】
まず、データ退避手段３１は、データアドレステーブル３６の最も小さい属性情報をMinに設定する（Ｓ５１０）。すなわち、最も優先順位が高いデータの属性情報をMinに設定する。
【００９１】
次に、データ退避手段３１は、属性情報がＭｉｎのデータの格納アドレスを、データアドレステーブル３６を参照して決定する（Ｓ５２０）。
【００９２】
データ退避手段３１は、Ｓ５２０で決定したデータに有効なアドレス値が対応づけられているか否かを判定する（Ｓ５３０）。判定方法は実施例１と同様である。
【００９３】
有効なアドレス値が登録されている場合、データ退避手段３１は有効と判定されたＲＡＭ１２のアドレスからデータを読み出し、データ名に対応づけてデータ保持手段３２に退避する（Ｓ５４０）。
【００９４】
次に、データ退避手段３１はデータアドレステーブル３６の属性情報を参照して、Ｍｉｎ以上の属性情報があるか否かを判定する（Ｓ５５０）。Ｍｉｎ以上の属性情報があることは同等以下の優先順位のデータがあることになるので、データ退避手段３１はＭｉｎに、現在のＭｉｎ以上の属性情報のうち最も小さい属性情報を設定する（Ｓ５６０）。Ｍｉｎ以上の属性情報がない場合、図１２の処理は終了する。こうすることで、キュー構造のデータ保持手段３２には優先順位の高いデータから先に記憶されたことになる。
【００９５】
データの復帰の際、データ復帰手段３３はデータ保持手段３２に記憶された順番が古いデータから順に読み出せばよい。よって、データ復帰手段３３がＷａｋｅＵｐ時にデータをＲＡＭ１２に復帰する手順は図７と同様になるので図は省略する。
【００９６】
以上説明したように、本実施例のＥＣＵ１００は実施例１の効果に加え、優先順位の高いデータから先に復帰するので、実施例１よりもさらに、通常モードへの移行時間を短縮できる。
【符号の説明】
【００９７】
１１        ＣＰＵ
１２        ＲＡＭ
１５，２３  不揮発メモリ
３１        データ退避手段
３２        データ保持手段
３３        データ復帰手段
３４        移行判定手段
３５        アドレステーブル作成手段
３６        データアドレステーブル
３７        データストア手段
１００      ＥＣＵ
２００      マイコン
【図１】
2012173919.tif 000003
【図２】
2012173919.tif 000004
【図３】
2012173919.tif 000005
【図４】
2012173919.tif 000006
【図５】
2012173919.tif 000007
【図６】
2012173919.tif 000008
【図７】
2012173919.tif 000009
【図８】
2012173919.tif 000010
【図９】
2012173919.tif 000011
【図１０】
2012173919.tif 000012
【図１１】
2012173919.tif 000013
【図１２】
2012173919.tif 000014