(57)【要約】  小容量の不揮発性メモリ４を大容量の不揮発性メモリ５より先に待機モードから実行モードへ切り替えることで、低消費電力状態から処理再開までに要する時間を短縮し、外部からの入力データ（割込みの発生）に対する応答時間を短縮させる。
2011033626.tif 000002
【特許請求の範囲】
【請求項１】
第１のプログラムを記憶し、第１の消費電力で動作中は読み出し及び書き込みを受け付け、前記第１の消費電力よりも小さい第２の消費電力で動作中は記憶を保持する第１のメモリと、
第２のプログラム又はデータを記憶し、第３の消費電力で動作中は読み出し及び書き込みを受け付け、前記第３の消費電力よりも小さい第４の消費電力で動作中は記憶を保持する第２のメモリと、
再開指示の受信に伴い、前記第１のプログラム又は前記第２のプログラムを第５の消費電力で実行し、一時中断指示の受信に伴い、前記第５の消費電力より小さい第６の消費電力で前記第１のプログラム又は前記第２のプログラムの実行を停止するプロセッサと、
前記プロセッサへの入力信号の変化の検出に伴い、前記第１のメモリを前記第１の消費電力で動作させ、前記プロセッサへ前記再開指示を送信し、前記プロセッサによる前記第１のプログラム又は前記第２のプログラムの実行完了に伴い、前記第１のメモリを前記第２の消費電力で動作させ、前記プロセッサへ前記一時中断指示を送信する第１の電力制御回路と、
前記プロセッサによる前記第２のプログラムの実行前、又は前記プロセッサによる前記データの読み出し前、又は前記プロセッサによる前記データの書き込み前に、前記第２のメモリを前記第３の消費電力で動作させる第２の電力制御回路と、
を備えるコンピュータシステム。
【請求項２】
前記第１の電力制御回路が前記第１のメモリを前記第１の消費電力で動作させてから、前記第１のメモリが前記プロセッサからの読み出し及び書き込みを受け付けることができるようになるまでに要する時間は、前記第２の電力制御回路が前記第２のメモリを前記第３の消費電力で動作させてから、前記第２のメモリが前記プロセッサからの読み出し及び書き込みを受け付けることができるようになるまでに要する時間より短いことを特徴とする請求項１に記載のコンピュータシステム。
【請求項３】
前記第２のメモリは前記第１のメモリより容量が大きいことを特徴とする請求項２に記載のコンピュータシステム。
【請求項４】
前記第２の電力制御回路は、前記プロセッサによる前記第２のプログラムの実行完了、又は前記プロセッサによる前記データの読み出し完了、又は前記プロセッサによる前記データの書き込み完了に伴い、前記第２のメモリを前記第４の消費電力で動作させることを特徴とする請求項３に記載のコンピュータシステム。
【請求項５】
前記プロセッサは、前記第２の電力制御回路が前記第２のメモリを前記第４の消費電力で動作させる場合、所定時間後に割込みが発生するよう設定を行い、
前記第１の電力制御回路は、前記割込みの発生に基づいて、前記第１のメモリを前記第１の消費電力で動作させ、前記プロセッサへ前記再開指示を送信することを特徴とする請求項４に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムに関するものである。
【背景技術】
【０００２】
コンピュータシステムは、処理を行うプロセッサ、データやプログラムを記憶する主記憶用メモリ、データの入出力を行う入出力ポート等から構成される。多くのコンピュータシステムでは、入力データ待ちの状態のようにプロセッサで実行すべき処理がない場合には、消費電力の少ない待機モードに切り替わる。待機モードのコンピュータシステムに対して、割り込み等の手段により外部からの入力データの発生を知らせると、コンピュータシステムは実行モードに切り替わり、処理を再開する。【０００３】
待機モードのコンピュータシステムは、回路の動作を停止させる、又は回路を動かす動作クロック周波数を低くする、又は回路に供給する電源電圧を低くする、又は回路への電源供給を停止する等により、消費電力を削減する。但し、待機モードから実行モードへ切り替わって処理を再開するときに必要なデータは、待機モードにおいて記憶されている必要がある。【０００４】
そのため、例えば、待機モードへの切り替わり時に、処理の再開に必要なデータを、揮発性のレジスタや主記憶用メモリ（例えばＤＲＡＭ）からフラッシュメモリやＨＤＤのような不揮発性記憶装置に書き出すことが行われている（例えば特許文献１参照）。この手法では、待機モード中に、レジスタや主記憶用メモリ等への電源供給を停止できるので、消費電力を低減できる。しかし、待機モードから実行モードへの切り替え時に、不揮発性記憶装置からレジスタや主記憶用メモリへデータを書き戻す必要があるため、処理再開に時間がかかるという問題があった。【０００５】
また、ＭＲＡＭやＦｅＲＡＭのような高速ランダムアクセス可能な不揮発性のメモリを主記憶用メモリに用いる手法が知られている。この手法では、待機モード中に主記憶用メモリへの電源供給を停止しても、処理再開に必要なデータが消去されないため、消費電力を低減できる。しかし、不揮発性メモリの容量が大きくなると、不揮発性メモリの立ち上げに要する時間や、メモリセルの周辺回路の安定化に要する時間が長くなり、待機モードから実行モードに切り替えた後、実際に処理再開が可能になるまでに時間がかかるという問題があった。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−３６２４２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、低消費電力状態から処理再開までに要する時間を短縮できるコンピュータシステムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一態様によるコンピュータシステムは、第１のプログラムを記憶し、第１の消費電力で動作中は読み出し及び書き込みを受け付け、前記第１の消費電力よりも小さい第２の消費電力で動作中は記憶を保持する第１のメモリと、第２のプログラム又はデータを記憶し、第３の消費電力で動作中は読み出し及び書き込みを受け付け、前記第３の消費電力よりも小さい第４の消費電力で動作中は記憶を保持する第２のメモリと、再開指示の受信に伴い、前記第１のプログラム又は前記第２のプログラムを第５の消費電力で実行し、一時中断指示の受信に伴い、前記第５の消費電力より小さい第６の消費電力で前記第１のプログラム又は前記第２のプログラムの実行を停止するプロセッサと、前記プロセッサへの入力信号の変化の検出に伴い、前記第１のメモリを前記第１の消費電力で動作させ、前記プロセッサへ前記再開指示を送信し、前記プロセッサによる前記第１のプログラム又は前記第２のプログラムの実行完了に伴い、前記第１のメモリを前記第２の消費電力で動作させ、前記プロセッサへ前記一時中断指示を送信する第１の電力制御回路と、前記プロセッサによる前記第２のプログラムの実行前、又は前記プロセッサによる前記データの読み出し前、又は前記プロセッサによる前記データの書き込み前に、前記第２のメモリを前記第３の消費電力で動作させる第２の電力制御回路と、を備えるものである。
【発明の効果】
【０００９】
本発明によれば、低消費電力状態から処理再開までに要する時間を短縮できる。
【図面の簡単な説明】
【００１０】
【図１】実施形態に係るコンピュータシステムの概略構成図。
【図２】コンピュータシステムの状態遷移図。
【図３】プロセッサの動作を説明するフローチャート。
【図４】実施形態に係るワンチップマイコンの概略構成図。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態を図面に基づいて説明する。  
図１に本発明の実施形態に係るコンピュータシステムの概略構成を示す。コンピュータシステムは、プロセッサ１、第１電力制御回路２、第２電力制御回路３、第１不揮発性メモリ４、第２不揮発性メモリ５、入力ポート１０、及び出力ポート１１を備える。
【００１２】
プロセッサ１は、入力ポート１０を介して外部からの入力データを受け取る。プロセッサ１は、第１不揮発性メモリ４及び／又は第２不揮発性メモリ５に記憶されているプログラムを実行して入力データを処理する。プロセッサ１は、出力ポート１１を介して外部へデータを出力することができる。プロセッサ１は、所望の時刻に割込みを発生するようにタイマー設定を行うことができる。
【００１３】
プロセッサ１が第１不揮発性メモリ４及び／又は第２不揮発性メモリ５に記憶されているプログラムを実行している状態を、プロセッサ１の実行モードという。プロセッサ１が入力ポート１０の入力データの変化による割込みやタイマー割込みを低消費電力状態で待っている状態を、プロセッサ１の待機モードという。
【００１４】
待機モードのプロセッサ１の消費電力は、実行モードのプロセッサ１の消費電力よりも小さい。プロセッサ１の待機モードでは、プロセッサ１の動作周波数を低くしたり、又はプロセッサ１の動作電圧を低くしたり、又はプロセッサ１の回路の動作を停止したり、又はプロセッサ１の回路全体あるいは回路の一部への電源供給を停止したりすることで、消費電力を低減できる。
【００１５】
現在の多くのプロセッサは電力制御回路を内蔵しており、処理の状況に合わせて、動作周波数を変更したり、動作電圧を変更したり、部分的に回路の動作を停止したり、部分的に回路への電源供給を停止したりすることで、消費電力を削減することができる。
【００１６】
多くのプロセッサでは、プロセッサ内の電力制御用のレジスタにあらかじめ決められているデータを書き込むと、電力制御回路がプロセッサを低消費電力状態にすることができる。低消費電力状態において、低速でプログラムを実行できるプロセッサや、プログラムの実行を停止するプロセッサがある。
【００１７】
低消費電力状態において低速でプログラムを実行できるプロセッサでは、プロセッサ内の電力制御用のレジスタに予め決められたデータを書き込むと、電力制御回路がプロセッサを消費電力が大きい状態にすることができる。
【００１８】
低消費電力状態でプログラムの実行を停止するプロセッサでは、外部からの割込みやタイマー割込み等を電力制御回路が監視しており、電力制御回路が割込みの発生を検出すると、消費電力が大きいプログラム実行状態にすることができる。
【００１９】
このような既存のプロセッサをプロセッサ１に使用する場合は、プログラム実行状態を実行モード、低消費電力状態を待機モードに対応させる。後述の第１電力制御回路２の機能の中で、プロセッサ１を実行モードと待機モードの間で切り替える機能は、プロセッサに内蔵されている電力制御回路の機能を使って実現することができる。
【００２０】
第１不揮発性メモリ４は、プロセッサ１が外部からの割込みを受け付けた時に処理する内容を定めたプログラム（割込み処理ルーチン）を記憶する。また、第１不揮発性メモリ４に、ネットワークプロトコルの処理プログラムを記憶させてもよい。
【００２１】
第１不揮発性メモリ４が、記憶しているプログラムやデータをプロセッサ１から読み書きできる状態を、第１不揮発性メモリ４の実行モードという。第１不揮発性メモリ４が、記憶しているプログラムやデータをプロセッサ１から読み書きできず、記憶しているプログラムやデータを低消費電力で保持している状態を、第１不揮発性メモリ４の待機モードという。待機モードの第１不揮発性メモリ４の消費電力は、実行モードの第１不揮発性メモリ４の消費電力よりも小さい。
【００２２】
第１不揮発性メモリ４には、小容量のＭＲＡＭやＦｅＲＡＭ等の高速にランダムアクセス可能な不揮発性メモリを用いる。また、第１不揮発性メモリ４には、低消費電力ＳＲＡＭを用いてもよい。第１不揮発性メモリ４は、第２不揮発性メモリ５よりも容量が小さい。容量が小さいメモリは、回路規模が小さいので、回路の状態が変化した時に、回路全体が安定に動作可能になるまでの時間が短い。
【００２３】
また、第１不揮発性メモリ４を待機モードから実行モードに切り替えるのに必要な時間は、第２不揮発性メモリ５を待機モードから実行モードに切り替えるのに必要な時間よりも短い。
【００２４】
第１不揮発性メモリ４にＭＲＡＭやＦｅＲＡＭ等の高速にランダムアクセス可能な不揮発性メモリを使用する場合は、使用するメモリに対する電源供給をオン／オフする回路を後述の第１電力制御回路２の中に設け、第１電力制御回路２が第１不揮発性メモリ４への電源供給をオンすることによって第１不揮発性メモリ４を待機モードから実行モードへ切り替え、電源供給をオフにすることによって第１不揮発性メモリ４を実行モードから待機モードへ切り替えることができる。
【００２５】
低消費電力ＳＲＡＭは、通常に読み書きできる状態の他に、読み書きは出来ないが、通常よりも小さな消費電力で記憶データを保持し続けるスタンバイ状態を有する。第１不揮発性メモリ４に低消費電力ＳＲＡＭを用いる場合には、後述の第１電力制御回路２が低消費電力ＳＲＡＭに対してスタンバイ状態になることを指示する信号を送ることで、第１不揮発性メモリ４を実行モードから待機モードへ切り替える。また、第１電力制御回路２が低消費電力ＳＲＡＭに対してスタンバイ状態の解除を指示する信号を送ることで、第１不揮発性メモリ４を待機モードから実行モードへ切り替える。
【００２６】
第１不揮発性メモリ４に、スタンバイ状態を有するＭＲＡＭやＦｅＲＡＭを用いる場合は、低消費電力ＳＲＡＭと同様に、スタンバイ状態にすることで待機モードへの切り替えを行うことができる。
【００２７】
第１不揮発性メモリ４にスタンバイ状態を有するメモリを用いる場合は、待機モードでも小さな電力を消費する。本実施形態では、第１不揮発性メモリ４は第２不揮発性メモリ５よりも容量が小さいので、待機モード中の消費電力を少なくする効果がある。
【００２８】
第２不揮発性メモリ５は、プロセッサ１が実行するプログラム及び／又はプロセッサ１がアクセスするデータ等を記憶する。第２不揮発性メモリ５が、記憶しているプログラムやデータをプロセッサ１から読み書きできる状態を、第２不揮発性メモリ５の実行モードという。第２不揮発性メモリ５が、記憶しているプログラムやデータをプロセッサ１から読み書きできず、記憶しているプログラムやデータを低消費電力で保持している状態を、第２不揮発性メモリ５の待機モードという。待機モードの第２不揮発性メモリ５の消費電力は、実行モードの第２不揮発性メモリ５の消費電力よりも小さい。
【００２９】
第２不揮発性メモリ５には、第１不揮発性メモリ４と同様に、ＭＲＡＭやＦｅＲＡＭ等を用いる。第２不揮発性メモリ５の実行モードと待機モードの切り替えは、第１不揮発性メモリ４と同様である。
【００３０】
第１電力制御回路２は、プロセッサ１及び第１不揮発性メモリ４を、それぞれ実行モードにするか待機モードにするかを制御する。第１電力制御回路２は、入力ポート１０を介して外部からプロセッサ１へ入力される入力信号を監視し、入力信号の変化（割込み）を検知することができる。第１電力制御回路２は、入力ポート１０の入力データの変化による割込みやタイマー割込みによって、プロセッサ１が実行すべき処理が発生したと判断した場合、プロセッサ１を実行モードに切り替える。また、第１電力制御回路２は、プロセッサ１が実行すべき処理がない場合、プロセッサ１を低消費電力の待機モードに切り替える。
【００３１】
第１電力制御回路２は、プロセッサ１を実行モードに切り替える時、第１不揮発性メモリ４も実行モードに切り替え、第１不揮発性メモリ４をプロセッサ１からの読み書きが可能な状態にする。また、第１電力制御回路２は、プロセッサ１を待機モードに切り替える時、第１不揮発性メモリ４も待機モードに切り替え、第１不揮発性メモリ４をプロセッサ１からの読み書きが不可能な状態にする。第１不揮発性メモリ４は、待機モードに切り替えられても、データを記憶し続けることができる。
【００３２】
第１電力制御回路２がプロセッサ１と第１不揮発性メモリ４を待機モードから実行モードに切り替える時、プロセッサ１が待機モードから実行モードに切り替わってプログラムの実行を開始するまでの時間と、第１不揮発性メモリ４が待機モードから実行モードに切り替わってプロセッサ１から読み出しや書き込みが可能になるまでの時間は、必ずしも同じではない。そのため、プロセッサ１が第１不揮発性メモリ４よりも早く実行モードに切り替わる場合には、プロセッサ１は第１不揮発性メモリ４が実行モードに切り替わるのを待つようにすることもできる。
【００３３】
また、第１不揮発性メモリ４がプロセッサ１より早く実行モードになるように、第１電力制御回路２がプロセッサ１を待機モードから実行モードに切り替えるタイミングと、第１不揮発性メモリ４を待機モードから実行モードに切り替えるタイミングをずらすようにしてもよい。
【００３４】
第２電力制御回路３は、第２不揮発性メモリ５を実行モードにするか待機モードにするかを制御する。プロセッサ１は、第２電力制御回路３に対して、第２不揮発性メモリ５を待機モードから実行モードへ切り替えること又は実行モードから待機モードへ切り替えることを指示することができる。第２電力制御回路３は、プロセッサ１からの指示に基づいて、第２不揮発性メモリ５の実行モードから待機モードへ切り替え又は待機モードから実行モードへの切り替えを行う。
【００３５】
第２電力制御回路３が第２不揮発性メモリ５を待機モードから実行モードへ切り替えると、第２不揮発性メモリ５は、プロセッサ１からの読み書きが可能な状態になる。また、第２電力制御回路３が、第２不揮発性メモリ５を実行モードから待機モードへ切り替えると、第２不揮発性メモリ５は、プロセッサ１からの読み書きが不可能な状態になる。第２不揮発性メモリ５は、待機モードへ切り替えられても、データを記憶し続けることができる。
【００３６】
図２を用いてプロセッサ１、第１不揮発性メモリ４、及び第２不揮発性メモリ５の状態遷移を説明する。図２において、プロセッサ１、第１不揮発性メモリ４、及び第２不揮発性メモリ５のブロックは、実行モードであれば実線、待機モードであれば破線で描かれている。
【００３７】
図２（ａ）は、プロセッサ１が実行すべき処理がない場合のコンピュータシステムの状態を示す。この場合、プロセッサ１、第１不揮発性メモリ４、及び第２不揮発性メモリ５は待機モードとなっており、コンピュータシステム全体としての消費電力は小さくなっている。
【００３８】
図２（ｂ）に示すように、外部から新しい入力データが与えられ、割込み要因が発生すると、第１電力制御回路２が割込み要因発生を検知する。第１電力制御回路２は割込み要因発生の検知に伴い、割込みを処理するために、プロセッサ１へ再開指示を送信し、プロセッサ１を待機モードから実行モードに切り替える。また、第１電力制御回路２は、第１不揮発性メモリ４を待機モードから実行モードに切り替える。第１不揮発性メモリ４は小容量であるため、待機モードから実行モードへ速やかに切り替わる。
【００３９】
再開指示を受信して実行モードになったプロセッサ１は、割込みの処理が、第１不揮発性メモリ４に記憶されているプログラム又はデータのみで行えるか、又は第２不揮発性メモリ５に記憶されているプログラム又はデータが必要かを判断する。
【００４０】
割込みの処理が第１不揮発性メモリ４に記憶されているプログラム又はデータのみで行える場合は、プロセッサ１は第１不揮発性メモリ４からプログラムを読み出して実行し、割込み処理を完了させる。割込み処理の完了後、第１電力制御回路２は、プロセッサ１へ一時中断指示を送信し、プロセッサ１を実行モードから待機モードへ切り替える。また、第１電力制御回路２は、第１不揮発性メモリ４を実行モードから待機モードへ切り替える。これにより、図２（ａ）に示す低消費電力状態に戻る。
【００４１】
割込みの処理に第２不揮発性メモリ５に記憶されているプログラム又はデータが必要な場合は、プロセッサ１は第２電力制御回路３に対して第２不揮発性メモリ５を待機モードから実行モードへ切り替えるよう指示する。第２電力制御回路３はプロセッサ１からの指示に基づいて第２不揮発性メモリ５を待機モードから実行モードに切り替える。
【００４２】
第２不揮発性メモリ５は第１不揮発性メモリ４よりも容量が大きいため、待機モードから実行モードへの切り替えに要する時間が長い。プロセッサ１は、第１不揮発性メモリ４に記憶されているプログラム又はデータのみで実行できる処理がある場合、第２不揮発性メモリ５のモード切り替え中に、当該処理を実行する。
【００４３】
この処理の実行後、図２（ｃ）に示すように、第２不揮発性メモリ５が実行モードになっていれば、プロセッサ１は、第２不揮発性メモリ５に記憶されているプログラム又はデータを使って、割込み処理を完了させる。割込み処理の完了後、第１電力制御回路２は、プロセッサ１へ一時中断指示を送信し、プロセッサ１を実行モードから待機モードへ切り替える。また、第１電力制御回路２は、第１不揮発性メモリ４を実行モードから待機モードへ切り替える。また、第２電力制御回路３は、第２不揮発性メモリ５を実行モードから待機モードに切り替える。第２電力制御回路３が、第２不揮発性メモリ５のモード切り替えを行うのは、割込み処理を完了したプロセッサ１からの指示に基づくものでもよいし、プロセッサ１及び第１不揮発性メモリ４の状態を監視し、プロセッサ１及び第１不揮発性メモリ４の待機モードへの切り替わりに基づくものでもよい。これにより、コンピュータシステムは、図２（ａ）に示す低消費電力状態に戻る。
【００４４】
一方、第２不揮発性メモリ５の容量が極めて大きい場合、第１不揮発性メモリ４に記憶されているプログラム又はデータのみで実行できる処理が終了しても、第２不揮発性メモリ５は未だ待機モードから実行モードへ切り替わっていないことがある。この場合、第２不揮発性メモリ５のモード切り替えを待つ間、図２（ｄ）に示すように、プロセッサ１及び第１不揮発性メモリ４を待機モードにしておくことで、消費電力を低減できる。
【００４５】
従って、第２不揮発性メモリ５の容量が極めて大きい場合、プロセッサ１は、第２電力制御回路３に対して第２不揮発性メモリ５を待機モードから実行モードへ切り替えるよう指示すると共に、第２不揮発性メモリ５が実行モードへ切り替わる時刻に割込みが発生するようにタイマーを設定する。このタイマー割込みが発生すると、プロセッサ１が割込みを検出し、第１電力制御回路２がプロセッサ１へ再開指示を送信して、プロセッサ１を待機モードから実行モードへ切り替える。また、第１電力制御回路２は、第１不揮発性メモリ４を待機モードから実行モードへ切り替える。タイマーの設定時刻は、第２不揮発性メモリ５の容量から想定されるモード切り替えに要する時間から決定される。
【００４６】
このように、本実施形態に係るコンピュータシステムは、待機モードから実行モードへの切り替わりが早い小容量の第１不揮発性メモリ４及び切り替わりに時間がかかる大容量の第２不揮発性メモリ５を備え、簡易な処理は第１不揮発性メモリ４に記憶されているプログラム又はデータを用いて実行する。第２不揮発性メモリ５のモード切り替えを行う必要がないため、低消費電力状態（図２（ａ）の状態）からの処理再開に要する時間を短縮できる。
【００４７】
また、第２不揮発性メモリ５に記憶されているプログラム又はデータが必要な処理を実行する場合は、第２不揮発性メモリ５のモード切り替えと並行して、第１不揮発性メモリ４に記憶されているプログラム又はデータを用いた簡易な処理を実行できるため、効率良く処理を進めることができる。
【００４８】
次に、割込みが発生した時のプロセッサ１の動作を図３に示すフローチャートを用いて説明する。通常、プロセッサ１上で実行するプログラムは、オペレーティングシステム（ＯＳ）によって管理される。ＯＳは実行可能な処理を管理するレディキューと、割込み等のイベント待ちで実行できない処理を管理するウェイトキューを有する。
【００４９】
（ステップＳ１０１）発生した割込みが、第２不揮発性メモリ５が実行モードになったことを知らせるタイマー割込みであるか否かが判定される。タイマー割込みの場合はステップＳ１０２に進み、タイマー割込みでない（外部からの割込みである）場合はステップＳ１０３に進む。
【００５０】
（ステップＳ１０２）第２不揮発性メモリ５が実行モードになることを待っている処理が、ウェイトキューから取り出され、レディキューに入れられる。
【００５１】
（ステップＳ１０３）発生した割込みに対応する処理に、第２不揮発性メモリ５に記憶されているプログラム又はデータが必要であるか否かが判定される。必要な場合はステップＳ１０５へ進み、必要でない場合はステップＳ１０４へ進む。
【００５２】
（ステップＳ１０４）発生した割込みに対応する処理がレディキューに入れられる。
【００５３】
（ステップＳ１０５）プロセッサ１が、第２不揮発性メモリ５を実行モードにするよう第２電力制御回路３に指示する。
【００５４】
（ステップＳ１０６）プロセッサ１が、第２不揮発性メモリ５が実行モードになった時に割込みが発生するようタイマーを設定する。
【００５５】
（ステップＳ１０７）発生した割込みに対応する処理を第２不揮発性メモリ５が実行モードになることを待つ状態にして、ウェイトキューに入れる。
【００５６】
（ステップＳ１０８）レディキューに実行可能な処理があるか否か判定される。ある場合はステップＳ１０９へ進み、ない場合はステップＳ１１０へ進む。
【００５７】
（ステップＳ１０９）レディキューから優先度の高い順に処理が取り出されて実行される。
【００５８】
（ステップＳ１１０）プロセッサ１及び第１不揮発性メモリ４が待機モードに切り替えられ、新たな割込みの発生を待つ。
【００５９】
なお、ステップＳ１０９の最中にステップＳ１０６でタイマー設定した割込みが発生した場合、ステップＳ１０７においてウェイトキューに入れられた処理がレディキューに移される。そして全ての処理が終了すると、ステップＳ１１０においてプロセッサ１、第１不揮発性メモリ４、及び第２不揮発性メモリ５が待機モードに切り替えられる。
【００６０】
本実施形態では、発生した割込みに対応する処理が、小容量の第１不揮発性メモリ４に記憶されているプログラム又はデータのみで実行できる場合は、大容量の第２不揮発性メモリ５のモード切り替えを行わずに、低消費電力状態から速やかに処理を再開することができる。また、第２不揮発性メモリ５のモード切り替え中にプロセッサ１及び第１不揮発性メモリ４を待機モードにすることができるので、コンピュータシステム全体としての消費電力をさらに低減することができる。
【００６１】
このように、本実施形態に係るコンピュータシステムは、小容量の不揮発性メモリを大容量の不揮発性メモリより先に待機モードから実行モードへ切り替えることで、低消費電力状態から処理再開までに要する時間を短縮できる。
【００６２】
図４に示すように、上記実施形態に係るコンピュータシステムは、ワンチップマイコン２０、外付けの電力制御回路３０、及び外付けの不揮発性メモリ４０の組み合わせに適用することができる。ワンチップマイコン２０は、プロセッサ２１と、プログラムの実行に用いるためのメモリ２３と、入力ポート２４、出力ポート２５及び２６を内蔵している。また、ワンチップマイコン２０は、プログラムを実行する実行モードと、低消費電力で待機する待機モードを有する。ワンチップマイコン２０に内蔵されるメモリ２３のデータは、待機モード中も失われないように保持される。実行モードと待機モードの切り替えは、ワンチップマイコン２０に内蔵される電力制御回路２２で制御される。
【００６３】
図１と図４とを比較すると、プロセッサ１がプロセッサ２１に対応する。同様に、第１電力制御回路２が電力制御回路２２、第１不揮発性メモリ４がメモリ２３、第２電力制御回路３が電力制御回路３０、第２不揮発性メモリ５が不揮発性メモリ４０にそれぞれ対応する。プロセッサ２１が、出力ポート２６を介して、電力制御回路３０に対して、不揮発性メモリ４０を実行モード又は待機モードに切り替えることを指示する。不揮発性メモリ４０がＭＲＡＭやＦｅＲＡＭの場合、電力制御回路３０は、待機モード時は不揮発性メモリ４０の電源を遮断する。このように、上記実施形態に係るコンピュータシステムをワンチップマイコン２０及びその外付け回路に適用しても、上記実施形態と同様の効果を得ることができる。
【００６４】
上記実施形態では、第２電力制御回路３は常に電力が供給されている状態であったが、図２（ａ）、（ｂ）に示す第２不揮発性メモリ５が待機モードである状態では、第２電力制御回路３への電力供給を停止し、消費電力をさらに低減するようにしてもよい。第２電力制御回路３への電力供給の制御は例えば第１電力制御回路２により行われる。
【００６５】
上記実施形態において、第１不揮発性メモリ４に、小さい電池を内蔵し、バッテリーバックアップ機能を有するＳＲＡＭを用いてもよい。
【００６６】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【産業上の利用可能性】
【００６７】
本発明は、ＭＲＡＭやＦｅＲＡＭのような高速ランダムアクセス可能な不揮発性メモリを主記憶用メモリに用いるコンピュータシステムにおいて、低消費電力の待機モードから実行モードへの切り替えを高速化することで、外部からの入力データ（割込みの発生）に対する応答時間を短縮させる分野に産業上の利用可能性がある。
【符号の説明】
【００６８】
１  プロセッサ
２  第１電力制御回路
３  第２電力制御回路
４  第１不揮発性メモリ
５  第２不揮発性メモリ
【図１】
2011033626.tif 000003
【図２】
2011033626.tif 000004
【図３】
2011033626.tif 000005
【図４】
2011033626.tif 000006
【手続補正書】
【提出日】平成23年12月2日(2011.12.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１のプログラムを記憶し、第１の消費電力で動作中は読み出し及び書き込みを受け付け、前記第１の消費電力よりも小さい第２の消費電力で動作中は記憶を保持する第１のメモリと、
第２のプログラム又はデータを記憶し、第３の消費電力で動作中は読み出し及び書き込みを受け付け、前記第３の消費電力よりも小さい第４の消費電力で動作中は記憶を保持する第２のメモリと、
再開指示の受信に伴い、前記第１のプログラム又は前記第２のプログラムを第５の消費電力で実行し、一時中断指示の受信に伴い、前記第５の消費電力より小さい第６の消費電力で前記第１のプログラム又は前記第２のプログラムの実行を停止するプロセッサと、
前記プロセッサへの入力信号の変化の検出に伴い、前記第１のメモリを前記第１の消費電力で動作させ、前記プロセッサへ前記再開指示を送信し、前記プロセッサによる前記第１のプログラム又は前記第２のプログラムの実行完了に伴い、前記第１のメモリを前記第２の消費電力で動作させ、前記プロセッサへ前記一時中断指示を送信する第１の電力制御回路と、
前記プロセッサによる前記第２のプログラムの実行前、又は前記プロセッサによる前記データの読み出し前、又は前記プロセッサによる前記データの書き込み前に、前記第２のメモリを前記第３の消費電力で動作させる第２の電力制御回路と、
を備えるコンピュータシステム。
【請求項２】
前記第１の電力制御回路が前記第１のメモリを前記第１の消費電力で動作させてから、前記第１のメモリが前記プロセッサからの読み出し及び書き込みを受け付けることができるようになるまでに要する時間は、前記第２の電力制御回路が前記第２のメモリを前記第３の消費電力で動作させてから、前記第２のメモリが前記プロセッサからの読み出し及び書き込みを受け付けることができるようになるまでに要する時間より短いことを特徴とする請求項１に記載のコンピュータシステム。
【請求項３】
前記第２のメモリは前記第１のメモリより容量が大きいことを特徴とする請求項２に記載のコンピュータシステム。
【請求項４】
前記第２の電力制御回路は、前記プロセッサによる前記第２のプログラムの実行完了、又は前記プロセッサによる前記データの読み出し完了、又は前記プロセッサによる前記データの書き込み完了に伴い、前記第２のメモリを前記第４の消費電力で動作させることを特徴とする請求項３に記載のコンピュータシステム。
【請求項５】
前記プロセッサは、前記第２の電力制御回路が前記第２のメモリを前記第３の消費電力で動作させる場合、所定時間後に割込みが発生するよう設定を行い、
前記第１の電力制御回路は、前記割込みの発生に基づいて、前記第１のメモリを前記第１の消費電力で動作させ、前記プロセッサへ前記再開指示を送信することを特徴とする請求項４に記載のコンピュータシステム。
【国際調査報告】
2011033626.tif 000007
2011033626.tif 000008
2011033626.tif 000009