(57)【要約】【課題】  内部メモリを有する半導体装置にて保持されているデータの品質を保証し、かつ消費電力をさらに低減できるようにする。【解決手段】  記憶装置２に保持しているデータを複写して保持する第１のメモリ５と、第１のメモリに保持されるデータのチェック符号を保持し、データ保持保証電圧以上の電源電圧が常に供給される第２のメモリ６と、チェック符号に基づいて第１のメモリに保持しているデータの誤りを検出するデータ検査部７と、データ誤りが検出されたブロックに対応するデータのみを記憶装置から第１のメモリに複写するリロード部８，９とを備えることで、第１のメモリに保持されるデータの誤りを検出できるようにして、データを保証し、かつ第１のメモリに供給する電源電圧をデータ保持保証電圧より低下させることができるようにする。【選択図】  図１
2006127152.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置に保持しているデータを複写して保持する第１のメモリと、
上記第１のメモリに保持されるデータを任意データ長で分割した各ブロックでの当該データのチェック符号を保持し、データ保持保証電圧以上の電源電圧が供給される第２のメモリと、
上記チェック符号に基づいて、上記第１のメモリに保持しているデータの誤りを検出するデータ検査部と、
上記データ検査部にてデータ誤りが検出されたブロックに対応するデータのみを上記記憶装置から上記第１のメモリに複写するリロード部とを備え、
通常動作とは異なる任意の動作時には、上記第１のメモリにデータ保持保証電圧より低い正の電源電圧を供給することを特徴とする半導体装置。
【請求項２】
上記第１のメモリに保持されるデータをブロック符号化して生成、付加される第１の検査符号を上記チェック符号として上記第２のメモリに保持することを特徴とする請求項１記載の半導体装置。
【請求項３】
上記第１のメモリに保持されるデータをブロック符号化して生成、付加される第１の検査符号を上記第１のメモリに保持するとともに、上記第１のメモリに保持される第１の検査符号をブロック符号化して生成、付加される第２の検査符号を、上記チェック符号として上記第２のメモリに保持することを特徴とする請求項１記載の半導体装置。
【請求項４】
記憶装置に保持しているデータを複写して保持する第１のメモリと、
上記第１のメモリに保持されるデータを任意データ長で分割した各ブロックでの当該データのチェック符号を保持し、データ保持保証電圧以上の電源電圧が供給される第２のメモリと、
上記チェック符号に基づいて上記第１のメモリに保持しているデータの誤りを検出するデータ検査処理、及びデータ誤りが検出されたブロックに対応するデータのみを上記記憶装置から上記第１のメモリに複写するリロード処理を供給されるコンピュータプログラムに従って実行する演算処理部とを備え、
通常動作とは異なる任意の動作時には、上記第１のメモリにデータ保持保証電圧より低い正の電源電圧を供給することを特徴とする半導体装置。
【請求項５】
データを保持し、通常動作とは異なる任意の動作時にはデータ保持保証電圧より低い正の電源電圧が供給される第１のメモリと、
上記第１のメモリに保持されるデータの誤りを検出するためのチェック符号を保持し、データ保持保証電圧以上の電源電圧が供給される第２のメモリとを備えることを特徴とする半導体装置。
【請求項６】
記憶装置に保持している固定データを複写して保持する第１のメモリと、
上記固定データを任意データ長で分割した各ブロックでの当該固定データのチェック符号を保持し、データ保持保証電圧以上の電源電圧が供給される第２のメモリと、
可変データを保持し、上記第１及び第２のメモリとは異なる第３のメモリと、
上記チェック符号に基づいて、上記第１のメモリに保持している固定データの誤りを検出するデータ検査部と、
上記データ検査部にてデータ誤りが検出されたブロックに対応するデータのみを上記記憶装置から上記第１のメモリに複写するリロード部とを備え、
通常動作とは異なる任意の動作時には、上記第３のメモリに保持している可変データを上記記憶装置に複写した後、上記第１及び第３のメモリにデータ保持保証電圧より低い正の電源電圧を供給することを特徴とする半導体装置。
【請求項７】
記憶装置に保持しているデータを複写して保持する第１のメモリと、
上記第１のメモリに保持されるデータのチェック符号を保持し、データ保持保証電圧以上の電源電圧が供給される第２のメモリと、
上記チェック符号に基づいて、上記第１のメモリに保持しているデータの誤りを検出するデータ検査部と、
上記データ検査部での検出結果に応じて、通常動作とは異なる任意の動作時に上記第１のメモリに供給する電源電圧を設定する電圧設定部と、
上記電圧設定部による設定に従って、上記第１のメモリに電源電圧を供給する出力電圧を変更可能な電源供給部とを備えることを特徴とする半導体装置。
【請求項８】
上記電圧設定部は、上記データ検査部での検出結果を基に上記第１のメモリがデータを保持可能な電圧の下限値を取得し、当該取得した下限値を通常動作とは異なる任意の動作時に上記第１のメモリに供給する電源電圧値として設定することを特徴とする請求項７記載の半導体装置。
【請求項９】
上記データ検査部は、上記第１のメモリの一部に設定した判定領域のデータを用い、上記第１のメモリに保持しているデータの誤りの有無を判断することを特徴とする請求項７又は８記載の半導体装置。
【請求項１０】
上記チェック符号は、上記第１のメモリに保持されるデータを任意データ長で分割した各ブロック毎のチェック符号であることを特徴とする請求項７〜９の何れか１項に記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置に関し、詳しくは、通常動作時よりも電力消費量が少ないパワーセーブ動作が可能な内部メモリを有する半導体装置に関する。
【背景技術】
【０００２】
携帯電話機やＰＤＡ（Personal Digital Assistants）等の移動機器は、電池による電力で動作するため、電力消費量は非常に重要な電気的特性の１つである。移動機器内のすべての回路への電源供給を遮断すれば問題はないが、例えば携帯電話機では、ある一定の時間間隔で報知チャネルを取らなければならず、一部の回路は電源供給を遮断することができない。また、例えばＰＤＡ等においても、パワーセーブ動作から通常動作に動作状態を復帰させるときには相応の応答速度が要求される。
【０００３】
例えば、プロセッサ（ＣＰＵ）、及びそのワークメモリとしての揮発性の内部メモリを有する移動機器のマイクロコンピュータは、動作時にはプロセッサのプログラムや、ハードウェア設定用のテーブルデータ等を内部メモリに保持している。このプログラムやテーブルデータ等は、電源投入後のブート動作にて不揮発性の外部メモリから内部メモリに複写される。
【０００４】
そのため、内部メモリへの電源供給を遮断してしまうと、再び動作する際にリブート動作を行いプロセッサのプログラムや、ハードウェア設定用のテーブルデータ等を外部メモリから内部メモリに複写しなければならない。しかし、リブート動作は、多大な時間を要し、また、外部メモリに対するアクセスにより入出力（Ｉ／Ｏ）回路等でも電力が消費されるのでリブート動作に要する電力消費量も無視できない。したがって、リブート動作が発生しないように、内部メモリは常時通電させておかなければならない。
【０００５】
【特許文献１】特開平３−１４４８３８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
また、近年のＬＳＩ等の集積回路は、プロセスの微細化によりゲートリーク及びチャネルリークによるリーク電流量が大幅に増加しており、上述のように回路に常時通電させておくだけであってもリーク電流により電力が大きく消費される。具体的には、近年、リーク電流による電力消費量は、動作時の電力消費量に対して１０％程度になっており無視できない量である。
【０００７】
そこで、リーク電流を減らすために上述のような内部メモリは、通常動作時でないときには供給する電源電圧を低下させ動作させる工夫がなされている。しかしながら、保持したデータを確実に保証できる電圧として内部メモリの仕様で提示されるデータ保持保証電圧（データ保持電源電圧、パワーダウン電源電圧とも言う。）以下に電源電圧を低下させると、内部メモリに保持したデータが保証されないため、電源電圧を低下させる範囲には限界がある。
【０００８】
図１０は、移動機器が有する従来のマイクロコンピュータシステムの構成を示すブロック図である。マイクロコンピュータ５１は、プロセッサ（ＣＰＵ）５３、ローダー５４、及び内部メモリ５５を有する。
【０００９】
プロセッサ５３は、演算処理を実行したりマイクロコンピュータ５１内の各機能部を制御したりする。ローダー５４は、プロセッサ５３からの指示に応じて、マイクロコンピュータ５１の外部に設けられた外部メモリ５２が保持しているデータを読み出し、内部メモリ５５に書き込む（複写する）。
ここで、外部メモリ５２は、プロセッサ５３のプログラム及びテーブルデータ等を保持する不揮発性メモリであり、内部メモリ５５は、プロセッサ５３のワークメモリとしての揮発性メモリである。また、電源装置５６は、内部メモリ５５に電源電圧ＶＭを供給する。
【００１０】
図１０に示したマイクロコンピュータシステムを適用した携帯電話機の動作を、図１１を参照して説明する。図１１は、携帯電話機の間欠動作を示しており、ＴＮは通常動作期間を示し、ＴＳは通常動作時よりも低消費電力で動作するパワーセーブ動作期間を示している。
図１０に示したマイクロコンピュータシステムを有する携帯電話機は、下記処理フローＡ、処理フローＢの何れかの処理フローに従って動作する。
【００１１】
＜処理フローＡ＞
ステップＡ１：電源が投入される（あるいは、異常が検出される）と、プロセッサ５３は、図示しないＲＯＭ等に格納されているブートプログラムを読み込んで実行する。このとき、ローダー５４は、プロセッサ５３からの指示に応じて、外部メモリ５２の固定データ領域ＤＯＡに保持されているプロセッサ５３のプログラム、テーブルデータ等を読み出し、読み出したデータを内部メモリ５５のデータ領域ＤＩＡに書き込む。このようにして、プロセッサ５３のプログラム、及びテーブルデータ等の外部メモリ５２から内部メモリ５５への複写、及びプロセッサ５３による各種初期設定等のブート動作を行う。そしてブート動作が完了すると、プロセッサ５３は内部メモリ５５に保持されたプログラムに従って、動作を開始する。
ステップＡ２：基地局検出、位置登録、着呼確認を行い、着呼がなく発呼もしなければ待受動作を開始する（通常動作）。
ステップＡ３：時刻ｔ11にて内部メモリ５５に供給する電源電圧ＶＭを電圧Ｖ１に低下させる（パワーセーブ動作開始）。ここで、電圧Ｖ１は、内部メモリ５５のデータ保持保証電圧である。
ステップＡ４：時刻ｔ11から期間ＴＳ経過後の時刻ｔ12にて内部メモリ５５に供給する電源電圧ＶＭを電圧Ｖ２にする（パワーセーブ動作終了）。
以降、ステップＡ２〜ステップＡ４を繰り返す。
【００１２】
＜処理フローＢ＞
ステップＢ１：処理フローＡのステップＡ１と同様のブート動作を行う。
ステップＢ２：基地局検出、位置登録、着呼確認を行い、着呼がなく発呼もしなければ待受動作を開始する（通常動作）。
ステップＢ３：内部メモリ５５に保持されているデータのなかで必要なデータを外部メモリ５２等に待避させる。
ステップＢ４：時刻ｔ11にて内部メモリ５５に供給する電源電圧ＶＭを０Ｖにする、すなわち内部メモリ５５への電源供給を遮断する（パワーセーブ動作開始）。
ステップＢ５：時刻ｔ11から期間ＴＳ経過後の時刻ｔ12にて内部メモリ５５に供給する電源電圧ＶＭを電圧Ｖ２にする（パワーセーブ動作終了）。
ステップＢ６：ステップＢ１と同様にしてリブート動作を行う。このとき、プログラム、テーブルデータ等を外部メモリ５２の固定データ領域ＤＯＡから内部メモリ５５のデータ領域ＤＩＡに再び転送する（図１１のＲＤ）。
ステップＢ７：ステップＢ３にて待避させたデータを内部メモリ５５にリロードする（再読み込み、書き込み）。
以降、ステップＢ２〜ステップＢ７を繰り返す。
【００１３】
ここで、携帯電話機においては間欠間隔（図１１に示した期間ＴＳ）が短いので、基本的には処理フローＡで動作させることが考えられるが、処理フローＡ及び処理フローＢには、それぞれ問題点がある。パワーセーブ動作時に内部メモリ５５に供給する電源電圧ＶＭをデータ保持保証電圧Ｖ１にする処理フローＡは、電源電圧ＶＭの低下範囲が限定的であり、データ保持保証電圧Ｖ１までしか低下させることができないので、ある一定範囲でしかリーク電流（消費電力）を減少させることができない。また、パワーセーブ動作時に内部メモリ５５への電源供給を遮断する処理フローＢは、通常動作への復帰時にリブート動作が必須であり、多大な時間及び消費電力を要してしまう。
【００１４】
また、処理フローＡのように通常動作時でないときに電源電圧を低下させるようにする場合には、電源電圧がデータ保持保証電圧を満足するか監視する方法がとられるが、実際には内部メモリはデータ保持保証電圧よりもマージンがあり、そのマージンも製品毎に異なっている。したがって、電源電圧がデータ保持保証電圧以下になったとしても、内部メモリに保持しているデータが必ずしも破壊されるわけではない。しかし、データが破壊されたか否かを検出する手段を備えていないため、電源電圧がデータ保持保証電圧以下になった場合には、実際にはデータが破壊されていなくともすべてのデータが破壊されたとみなして、リロードやリセットの処理を行わなければならなかった。これは消費電力の低減を図るうえで大きな阻害要因になっている。
【００１５】
また、バックアップ電源回路付きＲＡＭのデータ検査方式が上記特許文献１に開示されている。
【００１６】
本発明は、このような事情に鑑みてなされたものであり、内部メモリを有する半導体装置にて保持されているデータの品質を保証し、かつ消費電力をさらに低減できるようにすることを目的とする。
【課題を解決するための手段】
【００１７】
本発明の半導体装置は、記憶装置に保持しているデータを複写して保持する第１のメモリと、第１のメモリに保持されるデータのチェック符号を保持する第２のメモリと、チェック符号に基づいて第１のメモリに保持しているデータの誤りを検出するデータ検査部と、データ誤りが検出されたブロックに対応するデータのみを記憶装置から第１のメモリに複写するリロード部とを備え、第２のメモリにはデータ保持保証電圧以上の電源電圧を常時供給し、第１のメモリには、パワーセーブ動作等の通常動作でないときに、データ保持保証電圧より低い正の電源電圧を供給する。
したがって、データ検査部を設けるとともに第１のメモリに保持されるデータのチェック符号を保証することにより、当該データの誤りを検出することができるので、第１のメモリに保持されるデータの品質を保証しつつ、第１のメモリに供給する電源電圧をデータ保持保証電圧より低下させることが可能になる。さらに、データ誤りが検出された際に、すべてのデータではなく、データ誤りが検出されたブロックに対応するデータのみを記憶装置から第１のメモリに複写することができ、短時間で通常動作状態に復帰させることができるようになる。
【発明の効果】
【００１８】
本発明によれば、電源電圧を低下させる第１のメモリに保持されるデータのチェック符号をデータ保持保証電圧以上の電源電圧が常に供給される第２のメモリに保持するとともに、チェック符号に基づいて第１のメモリに保持しているデータの誤りを検出する。そして、データ誤りの検出結果に応じて、データ誤りが検出されたデータを記憶装置から第１のメモリにリロードし複写する、若しくは通常動作とは異なる動作時に第１のメモリに供給する電源電圧を設定する。これにより、第１のメモリに供給する電源電圧をデータ保持保証電圧より低下させて第１のメモリでのリーク電流を抑制することができるとともに第１のメモリに保持しているデータの誤りが検出可能になり、第１のメモリに保持されているデータの品質を確実に保証し、かつ消費電力を低減することができる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施形態を図面に基づいて説明する。
【００２０】
（第１の実施形態）
図１は、本発明の第１の実施形態による半導体装置を適用したマイクロコンピュータシステムの構成例を示すブロック図である。第１の実施形態におけるマイクロコンピュータシステムは、図１に示すようにマイクロコンピュータ１、外部メモリ２、電源装置９を有する。
【００２１】
マイクロコンピュータ１は、プロセッサ（ＣＰＵ）３、ローダー４、内部メモリ５、チェックビット用メモリ６、データチェック部７、及びアクセス制御部８を有し構成される。
【００２２】
プロセッサ３は、演算処理を実行したりマイクロコンピュータシステム内の各機能部を制御したりする。プロセッサ３は、電源投入時（あるいは、異常検出時）のブート動作では、図示しないＲＯＭ等に格納されたブートプログラムに基づいて動作し、ブート動作完了後の通常動作では、内部メモリ５に保持されたプログラムに基づいて動作する。
ローダー４は、外部メモリ２が保持しているデータを内部メモリ５に複写する。具体的には、ローダー４は、プロセッサ３及びアクセス制御部８から供給されるアドレス情報に基づいて外部メモリ２からデータを読み出し、読み出したデータを内部メモリ５に書き込む。
【００２３】
ここで、外部メモリ２は、例えばフラッシュメモリ、マスクＲＯＭ、ＥＥＰＲＯＭ（Electrically Erasable and Programmable ROM）等の不揮発性メモリで構成される。外部メモリ２は、プロセッサ３のプログラムや、ハードウェア設定用のテーブルデータ等のデータをデータ領域ＤＯＡに保持している。
内部メモリ５は、ＲＡＭ等の揮発性メモリで構成され、プロセッサ３のワークメモリに相当するものである。内部メモリ５は、ブート動作時に外部メモリ２のデータ領域ＤＯＡに保持されているデータが、ローダー４を介してデータ領域ＤＩＡに書き込まれ保持する。
【００２４】
チェックビット用メモリ６は、内部メモリ５に保持されているデータの誤りを検出するためのチェック符号（チェックビット）を格納するメモリである。チェック符号は、内部メモリ５に保持するデータを所定のブロック単位で（所定データ長毎に）ブロック符号化することにより生成、付加される検査符号としての冗長ビットであり、符号化方式としては例えばＣＲＣ（巡回冗長検査）方式がある。なお、チェック符号として偶数パリティ又は奇数パリティを用いても良い。
【００２５】
データチェック部７は、チェックビット用メモリ６に保持されているチェック符号とそれに対応する内部メモリ５に保持されているデータとをそれぞれ読み出し、読み出したデータ及びチェック符号に基づいて内部メモリ５に保持されているデータの誤り検出を行う。また、データチェック部７は、内部メモリ５に保持されているデータの誤りを検出した際には、誤り発生箇所をアクセス制御部８に通知する。
【００２６】
アクセス制御部８は、データチェック部７より通知される誤り発生箇所から誤りのあったデータを外部メモリ２から読み出すためのアドレス情報を判定（生成及び決定）し、ローダー４に供給する。
電源装置９は、出力する電源電圧ＶＭが可変な電源装置であり、内部メモリ５に電源電圧ＶＭを供給する。
【００２７】
次に、動作について図２及び図３に基づいて説明する。
図２は、第１の実施形態におけるマイクロコンピュータシステムの動作概念を示す図である。図２は、マイクロコンピュータシステムにおける通常動作（期間ＴＮ）と、通常動作時よりも消費電力が低いパワーセーブ動作（期間ＴＳ）とが交互に繰り返される間欠動作を示している。例えば、マイクロコンピュータシステムを携帯電話機に適用した場合であれば、通常動作の期間ＴＮは基地局とのデータ授受等を行っている期間に相当する。
【００２８】
図２に示すように、第１の実施形態のマイクロコンピュータシステムにおける間欠動作では、マイクロコンピュータシステムの動作状態を通常動作からパワーセーブ動作に遷移させる時刻ｔ1にて、電源装置９は内部メモリ５に供給する電源電圧ＶＭを電圧Ｖ２から電圧Ｖ１Ｒに変化させる。ここで、電圧Ｖ２は内部メモリ５の通常動作電圧であり、電圧Ｖ１Ｒは、内部メモリ５の仕様として規定されるデータ保持保証電圧Ｖ１より低くかつ０Ｖより高い正の電圧である。
【００２９】
これにより、パワーセーブ動作の期間ＴＳにおいては、内部メモリ５はデータ保持保証電圧Ｖ１より低い電圧Ｖ１Ｒで動作するので、内部メモリ５内でのリーク電流が従来と比較して抑制され消費電力が低減される。なお、チェックビット用メモリ６は、パワーセーブ動作の期間ＴＳにおいても、通常動作の期間ＴＮと同様の電源電圧が供給される。つまり、チェックビット用メモリ６は、マイクロコンピュータシステムの動作状態にかかわらず、常に通常動作電圧が供給される。また、パワーセーブ動作の期間ＴＳにおいて、内部メモリ５及びチェックビット用メモリ６を除くマイクロコンピュータ１が有する各機能部（プロセッサ３、ローダー４、データチェック部７、アクセス制御部８等）は、電源電圧の供給が遮断される（電源電圧は０Ｖである）。
【００３０】
時刻ｔ1から期間ＴＳ経過後の時刻ｔ2にて、マイクロコンピュータシステムの動作状態をパワーセーブ動作から通常動作に復帰させる際、電源装置９は内部メモリ５に供給する電源電圧ＶＭを電圧Ｖ２にする。なお、内部メモリ５及びチェックビット用メモリ６を除くマイクロコンピュータ１が有する各機能部へも再び電源電圧が供給される。
【００３１】
このとき、データチェック部７は、内部メモリ５から所定のブロック単位で１つのブロックのデータを読み出すとともに、チェックビット用メモリ６からそれに対応するチェック符号をそれぞれ読み出してデータの誤り検出を行う（処理ＯＰ１Ａ）。
その結果、データに誤りがあった場合には、データチェック部７から誤り発生箇所がアクセス制御部８に通知され、外部メモリ２での当該データに対応するアドレス情報がローダー４に供給される。ローダー４は、供給されるアドレス情報に従って、誤りがあったデータ（当該データを含むブロック）のみを外部メモリ２から読み出して内部メモリ５に書き込み（リロード）、誤りがあったデータを更新する（処理ＯＰ２Ａ）。続いて、内部メモリ５及びチェックビット用メモリ６から次のブロックのデータ及びそれに対応するチェック符号をそれぞれ読み出す。
【００３２】
一方、データに誤りがなかった場合には、内部メモリ５及びチェックビット用メモリ６から次のブロックのデータ及びそれに対応するチェック符号をそれぞれ読み出す。つまり、パワーセーブ動作から通常動作に復帰する際に、データに誤りがない場合には、外部メモリ２からのリロードは行わない。
以降、同様にして内部メモリ５のデータ領域ＤＩＡに保持されているすべてのデータについて誤り検出を行う。
【００３３】
なお、上述した説明では、ブロック毎にデータの誤り検出を行い（処理ＯＰ１Ａ）、データに誤りがあった場合にはその都度リロードする（処理ＯＰ２Ａ）ようにしているが、データの誤り検出を行って（処理ＯＰ１Ｂ）、誤りがあったデータに対応するアドレス情報をアクセス制御部８等に蓄積しておき（処理ＯＰ２Ｂ）、チェック対象のすべてのデータについて誤り検出が完了した後に誤りがあったデータのみをまとめてリロードする（処理ＯＰ３Ｂ）ようにしても良い。
【００３４】
図３は、第１の実施形態におけるマイクロコンピュータシステムの動作を示すフローチャートである。ここで、上述したようにチェックビット用メモリ６は、マイクロコンピュータシステムの動作状態にかかわらず、常に通常動作電圧が供給されている。
【００３５】
電源が投入されると、プロセッサ３は、図示しないＲＯＭ等に格納されているブートプログラムを読み込んで実行する。このとき、ローダー４は、プロセッサ３からの指示に基づいて、外部メモリ２のデータ領域ＤＯＡからプログラム、テーブルデータ等のデータを読み出し（ステップＳ１）、読み出したデータ及びそれに対応するチェック符号を内部メモリ５のデータ領域ＤＩＡ及びチェックビット用メモリ６に書き込む（ステップＳ２）。
【００３６】
なお、チェックビット用メモリ６に書き込むチェック符号は、外部メモリ２から読み出したデータを用いてデータチェック部７等にて生成するようにしても良いし、予め生成して外部メモリ２に保持しておき、データとともに読み出すようにしても良い。予め生成しデータとともに読み出すようにした場合には、チェック符号の生成ロジックによる処理が不要であり、処理時間を短縮できるとともに消費電力を低減することができる。
【００３７】
このようにして、外部メモリ２のデータ領域ＤＯＡから内部メモリ５のデータ領域ＤＩＡへのデータ複写、及びプロセッサ３による各種初期設定等のブート動作を行う。
プロセッサ３は、ブート動作により内部メモリ５に保持されたプログラムに従って通常動作処理を開始する（ステップＳ３）。
【００３８】
通常動作処理完了後、マイクロコンピュータシステムの動作状態を通常動作からパワーセーブ動作に遷移させる。このとき、電源装置９から内部メモリ５に供給する電源電圧ＶＭを電圧Ｖ１Ｒにする（ステップＳ４）。
所定時間経過後、パワーセーブ動作から通常動作に動作状態を復帰させる。このとき、電源装置９から内部メモリ５に供給する電源電圧ＶＭを電圧Ｖ２にする（ステップＳ５）。
【００３９】
次に、データチェック部７は、内部メモリ５のデータ領域ＤＩＡから所定のブロック単位でデータを読み出すとともに、読み出したデータに対応するチェック符号をチェックビット用メモリ６から読み出す。そして、読み出したデータの誤り検出を行う（ステップＳ６）。
その結果、データチェック部７にてデータに誤りがないと判断された場合（ステップＳ７のＹ）には、ステップＳ３に戻り通常動作処理を行う。
【００４０】
一方、データに誤りがあると判断された場合（ステップＳ７のＮ）には、ステップＳ６にて読み出したデータに対応する外部メモリ２のアドレス情報をアクセス制御部８にて生成する（ステップＳ８）。例えば、ステップＳ６にて読み出したデータが、内部メモリ５にてデータ領域ＤＩＡ内のデータ領域ＤＩＢに保持されているデータであるならば、外部メモリ２にて当該データに対応するデータが保持されているデータ領域ＤＯＡ内のデータ領域ＤＯＢを指定するアドレス情報を生成する。同様に、データ領域ＤＩＡ内のデータ領域ＤＩＣに保持されているデータであるならば、データ領域ＤＯＡ内のデータ領域ＤＯＣを指定するアドレス情報を生成する。
【００４１】
続いて、アドレス情報で指定される外部メモリ２のデータ領域から内部メモリ５の対応するデータ領域にローダー４によりデータをリロードして（ステップＳ９）、ステップＳ３に戻り通常動作処理を行う。
このようにして、マイクロコンピュータシステムにて通常動作とパワーセーブ動作との間欠動作が行われる。
【００４２】
以上、説明したように第１の実施形態によれば、外部メモリ２から内部メモリ５に複写されるデータのブロック単位でのチェック符号をチェックビット用メモリ６に保持する。パワーセーブ動作時には、チェックビット用メモリ６には通常動作と同様の電源電圧を供給し、内部メモリ５にはデータ保持保証電圧Ｖ１より低い正電圧Ｖ１Ｒを電源電圧ＶＭとして供給する。そして、パワーセーブ動作から通常動作に動作状態を遷移させるときには、チェックビット用メモリ６に保持されているチェック符号に基づいて、内部メモリ５が保持しているデータの誤り検出を行い、誤りがあったデータ（ブロック）のみを外部メモリ２から内部メモリ５にリロードする。
【００４３】
これにより、内部メモリ５が保持しているデータの誤りを検出することができるので、内部メモリ５におけるデータ保持に係る要求が緩和されてデータの誤り発生が許され、パワーセーブ動作時に内部メモリ５に供給する電源電圧ＶＭをデータ保持保証電圧Ｖ１より低下させることができる。したがって、内部メモリ５内部におけるリーク電流量等を減少させることができ、消費電力を低減することができる。また、データ誤りがあった場合には、すべてのデータではなく、誤りがあったデータ（ブロック）のみを外部メモリ２から内部メモリ５にリロードすることで、内部メモリ５のデータ品質を保証できるとともに、リブート動作を行うことなく、パワーセーブ動作から通常動作に短い処理時間で遷移することができ、動作状態の遷移に要する消費電力も低減することができる。
【００４４】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。
図４は、本発明の第２の実施形態による半導体装置を適用したマイクロコンピュータシステムの構成例を示すブロック図である。図４において、図１に示したブロック等と同一の機能を有するブロック等には同一の符号を付し、重複する説明は省略する。
第２の実施形態におけるマイクロコンピュータシステムは、マイクロコンピュータ４１、外部メモリ２、電源装置９及び電源装置４４を有する。
【００４５】
マイクロコンピュータ４１は、プロセッサ（ＣＰＵ）３、ローダー４、第１の内部メモリ５、チェックビット用メモリ６、データチェック部７、アクセス制御部８、メモリ制御部４２及び第２の内部メモリ４３を有し構成される。
【００４６】
第１の内部メモリ５及び第２の内部メモリ４３は、プロセッサ３のワークメモリに相当するものであり、ＲＡＭ等の揮発性メモリでそれぞれ構成される。
第１の内部メモリ５は、通常動作時にデータの書き換え（更新）が発生しない固定データを保持するメモリであり、ブート動作にて外部メモリ２のデータ領域ＤＯＡに保持されているプロセッサ３のプログラムや、ハードウェア設定用のテーブルデータ等の固定データがデータ領域ＤＩＡ（内部メモリ５）に書き込まれる。
第２の内部メモリ４３は、通常動作時にデータの書き込み（書き換え）等が行われる可変データを保持する。
【００４７】
内部メモリ５、４３は、電源電圧ＶＭ、ＶＭＡとして通常動作時には電圧Ｖ２、パワーセーブ動作時には電圧Ｖ１Ｒが電源装置９、４４よりそれぞれ供給される。
【００４８】
メモリ制御部４２は、プロセッサ３からの指示に基づいて、第２の内部メモリ４３からデータを読み出して外部メモリ２に書き込んだり、逆に外部メモリ２からデータを読み出して第２の内部メモリ４３に書き込んだりする。したがって、第２の実施形態において外部メモリ２は、例えばフラッシュメモリ、ＥＥＰＲＯＭ等のデータの書き込みが可能な不揮発性メモリで構成される。
【００４９】
以上のように構成した第２の実施形態におけるマイクロコンピュータシステムでは、第２の内部メモリ４３に保持され、ほとんどデータの書き込みが行われない（書き換え頻度が低い）可変データを、通常動作からパワーセーブ動作に動作状態を遷移させる際に第２の内部メモリ４３から外部メモリ２に複写する。これにより、はじめから外部メモリ２に保持されているデータとは異なる可変データを保持している内部メモリ４３でも、パワーセーブ動作時に供給する電源電圧ＶＭＡをデータ保持保証電圧Ｖ１より低くすることができる。これにより、第１の実施形態と同様の効果が得られるとともに、供給する電源電圧を低下させるメモリの割合が増加し、消費電力をさらに低減することができる。なお、第２の実施形態におけるマイクロコンピュータシステムの動作は、内部メモリ４３に関わる処理以外は上述した第１の実施形態と同様である。
【００５０】
なお、上述した第１及び第２の実施形態において、パワーセーブ動作時に内部メモリ５（及び内部メモリ４３）に供給する電圧Ｖ１Ｒは、供給する電源電圧ＶＭ（ＶＭＡ）を低下させることによるパワーセーブ動作期間での消費電力の低減量、保持しているデータの誤り発生率、誤りが発生したデータの外部メモリ２から内部メモリ５へのリロードに係る電力消費量等に応じて適宜決定すれば良い。
【００５１】
また、上述した第１及び第２の実施形態においては、内部メモリ５に保持されるデータのチェック符号を生成する所定のブロック単位を、内部メモリ５に保持しているデータにてデータ誤りがバースト的に発生する大きさ（データ長）等の内部メモリ５の特性に合わせて構成することにより、パワーセーブ動作から通常動作に動作状態を遷移させる際のリロード回数を減少させることができる。したがって、処理時間をさらに短縮することができるとともに、消費電力をさらに低減することができる。また、内部メモリ５の構造及び特性に応じて、データ誤りが連続で発生しやすい単位（例えばワード線方向やビット線方向などの単位）にブロック符号化するブロック単位を合わせても良い。
【００５２】
また、上述した実施形態では、チェックビット用メモリ６には、内部メモリ５に保持するデータをブロック符号化することにより得られたチェック符号を保持するようにしているが、当該チェック符号を内部メモリ５に保持し、当該チェック符号をさらにブロック符号化することにより得られるチェック符号をチェックビット用メモリ６に保持するようにしても良い。これにより、チェックビット用メモリ６のメモリサイズを小さくすることができ、消費電力を削減することができるとともに、回路面積を縮小することができる。
【００５３】
（第３の実施形態）
次に、本発明の第３の実施形態について説明する。
マイクロコンピュータの内部メモリにおいて、保持したデータを保証できるデータ保持可能な電圧の下限値は、プロセスや使用環境（例えば、温度等）に依存する。以下に説明する第３の実施形態は、パワーセーブ動作時に内部メモリに供給する電源電圧を半導体装置の特性に応じて適切に設定できるようにするものである。
【００５４】
図５は、本発明の第３の実施形態による半導体装置を適用したマイクロコンピュータシステムの構成例を示すブロック図である。図５において、図１に示したブロック等と同一の機能を有するブロック等には同一の符号を付し、重複する説明は省略する。第３の実施形態におけるマイクロコンピュータシステムは、図５に示すようにマイクロコンピュータ１Ａ、外部メモリ２、電源装置９、及び電源制御部２１を有する。
【００５５】
マイクロコンピュータ１Ａは、プロセッサ（ＣＰＵ）３、ローダー４、内部メモリ５、チェックビット用メモリ６、データチェック部７Ａ、アクセス制御部８、及び電源制御設定部２０を有し構成される。
【００５６】
データチェック部７Ａは、チェックビット用メモリに保持されているチェック符号とそれに対応する内部メモリ５に保持されているデータとをそれぞれ読み出し、読み出したデータ及びチェック符号に基づいて内部メモリ５に保持されているデータの誤り検出を行う。また、データチェック部７Ａは、データ誤りの検出結果を電源制御設定部２０に通知するとともに、内部メモリ５に保持されているデータの誤りを検出した場合には誤り発生箇所をアクセス制御部８に通知する。
【００５７】
電源制御設定部２０は、データチェック部７Ａより通知されるデータ誤りの検出結果に基づいて、内部メモリ５に供給する電圧値を電源制御部２１に設定する。電源制御部２１は、電源制御設定部２０による設定を基に、出力電圧が可変な電源装置９を制御する。
【００５８】
すなわち、第３の実施形態において、パワーセーブ動作時に電源装置９が内部メモリ５に供給する電源電圧値は、データチェック部７Ａでのデータ誤りの検出結果（データ誤りが発生したか否か）に応じて電源制御設定部２０が電源制御部２１に設定し、この設定に基づいて電源制御部２１が電源装置９の出力電圧を制御する。なお、内部メモリ５に供給する電源電圧の現在の設定値は、電源制御設定部２０が保持している。
【００５９】
したがって、第３の実施形態では、データ誤りの発生状態を基に内部メモリ５においてデータ誤りが生じない（データ保持可能な）電圧の下限値を設定することで、パワーセーブ動作時にマイクロコンピュータ１Ａの特性等に応じた下限の電圧を電源装置９から内部メモリ５に適切に供給でき、内部メモリ５に保持されているデータを保証し、かつ消費電力を低減することが可能となる。
【００６０】
なお、第３の実施形態におけるマイクロコンピュータ１Ａでは、パワーセーブ動作時において、内部メモリ５及び電源制御設定部２０は通常動作時と同様に電源電圧が供給され、内部メモリ５は電源制御設定部２０により設定されるデータ誤りが生じない範囲内での下限の電圧が供給される。また、プロセッサ３、ローダー４、データチェック部７Ａ、アクセス制御部８は、パワーセーブ動作時には電源電圧の供給が遮断される。
【００６１】
次に、動作について図６及び図７に基づいて説明する。
図６は、第３の実施形態におけるマイクロコンピュータシステムの動作を示すフローチャートであり、内部メモリ５においてデータ誤りが生じない電圧の下限値を設定するためのメモリ電圧値設定動作について示している。なお、図６に示す動作は、電源装置９が内部メモリ５に出力する電源電圧の設定値を低い値から、データ誤り検出の結果の応じて徐々に上げるようにするものである。具体的には、データ誤りが検出された場合には内部メモリ５に出力する電源電圧の設定値を再設定して次の段階に上げ、データ誤りが発生しない下限値をパワーセーブ動作時に内部メモリ５に供給する電源電圧とするものである。
【００６２】
メモリ電圧値設定動作を開始すると、まず、ローダー４は、プロセッサ３からの指示に基づいて、外部メモリ２のデータ領域ＤＯＡからプログラム、テーブルデータ等のデータを必要に応じて読み出す。このとき、データチェック部７Ａは、外部メモリ２から読み出したデータを用いて、そのデータに対応するチェックコード（チェック符号）を算出する（ステップＳ２１）。
【００６３】
次に、ステップＳ２１において外部メモリ２から読み出したデータを内部メモリ５のデータ領域ＤＩＡに書き込むとともに、データチェック部７Ａで算出したチェックコードをチェックビット用メモリ６に書き込む（ステップＳ２２）。
なお、データに係るチェックコードを予め算出して外部メモリ２に保持しておき、データとともにチェックコードを読み出して、そのデータ及びチェックコードを内部メモリ５のデータ領域ＤＩＡ及びチェックビット用メモリ６にそれぞれ保存するようにしても良い。この場合には、チェックコードの生成ロジックによる処理が不要であり、処理時間を短縮できるとともに消費電力を低減することができる。
【００６４】
このようにして、外部メモリ２のデータ領域ＤＯＡから内部メモリ５のデータ領域ＤＩＡへのデータの複写を行った後、電源装置９から内部メモリ５に供給する電源電圧（メモリ電圧）を低下させる（ステップＳ２３）。具体的には、内部メモリ５をパワーセーブ状態に遷移させるための電源電圧の設定値を電源制御設定部２０が電源制御部２１に設定し、電源制御部２１が電源装置９を制御する。これにより、電源装置９から内部メモリ５に供給する電源電圧を所定の電圧値に低下させ、内部メモリ５を通常動作状態からパワーセーブ状態に遷移させる。なお、データ複写完了直後の内部メモリ５に供給する電源電圧の設定値は、予め決定し電源制御設定部２０に設定されており、例えば０Ｖ付近の電圧である。
【００６５】
所定時間経過後、電源装置９から内部メモリ５に供給する電源電圧（メモリ電圧）を通常動作状態と同じ電圧値に復帰させ、内部メモリ５を通常動作状態に遷移させる（ステップＳ２４）。
【００６６】
次に、データチェック部７Ａは、内部メモリ５のデータ領域ＤＩＡからデータを読み出し、読み出したデータを用いてチェックコードを算出する（ステップＳ２５）。
続いて、データチェック部７Ａは、ステップＳ２５において内部メモリ５から読み出したデータに対応するチェックコードをチェックビット用メモリ６から読み出し、この読み出したチェックコードとステップＳ２５において算出したチェックコードとを比較する。すなわち、データチェック部７Ａは、ステップＳ２５において内部メモリ５から読み出したデータを基に算出したチェックコードと、このデータに対応するチェックビット用メモリ６に保持されているチェックコードとが一致するか否かを判断することで、内部メモリ５のデータの誤り検出を行う（ステップＳ２６）。
【００６７】
ステップＳ２６でのデータの誤り検出の結果、データチェック部７Ａにてデータに誤りがある、つまりチェックコードが一致しないと判断された場合には（ステップＳ２７のＮｏ）、データチェック部７Ａは、その結果を電源制御設定部２０に通知する。この通知を受けた電源制御設定部２０は、内部メモリ５をパワーセーブ状態にする場合に内部メモリ５に供給する電源電圧の設定値を、現在の設定値よりも１段階高い値に再設定する（ステップＳ２９）。なお、電源制御設定部２０による電源電圧の設定値について各段階の値（（ステップ幅）は任意であり、例えば各段階の設定値を等間隔（一定電位差）としても良いし、各段階の設定値の間隔を段階に応じて変化させるようにしても良い。
【００６８】
そして、ステップＳ２９において電源制御設定部２０が内部メモリ５に供給する電源電圧の設定値を再設定した後、ステップＳ２３に戻り、この設定値に基づき上述したステップＳ２３以降の処理を再び行う。なお図示してはいないが、このステップＳ２３に戻る場合には内部メモリ５に保持されているデータは破壊されている（誤りがある）ので、ステップＳ２３以降の処理を再び行う前に、外部メモリ２からデータを読み出して（リロードして）内部メモリ５に書き込む。
【００６９】
一方、ステップＳ２６でのデータの誤り検出の結果、データチェック部７Ａにてデータに誤りがない、つまりチェックコードが一致すると判断された場合には（ステップＳ２７のＹｅｓ）、データチェック部７Ａは、その結果を電源制御設定部２０に通知する。この通知を受けた電源制御設定部２０は、保持している現在の設定値を内部メモリ５においてデータ誤りが生じない電源電圧の下限値として電源制御部２１に設定する（ステップＳ２８）。
【００７０】
このように図６に示したメモリ電圧値設定動作では、電源装置９から内部メモリ５に供給する電源電圧を０Ｖ付近の電圧に低下させた後に通常動作電圧に復帰させて、データチェック部７Ａにてデータ誤り検出を行う。その結果、データ誤りがある場合には、その旨を電源制御設定部２０に通知して、内部メモリ５に供給する電圧を低下させる際の電圧値を１段階高い値に再設定する。そして、再び内部メモリ５に供給する電源電圧を低下させた後に通常動作電圧に復帰させて、データ誤り検出を行う。データ誤りが生じなくなるまで、内部メモリ５に供給する電圧を低下させる際の電圧値を徐々に上げていきながらこの動作を繰り返し行うことで、内部メモリ５にて電圧を低下させてもデータ誤りが生じない電圧値を得る。
【００７１】
これにより、データチェック部７Ａによるデータ誤り検出の結果を基に、内部メモリ５においてデータを保持可能な電源電圧の下限値が求められ、それを電源装置９から内部メモリ５にパワーセーブ動作時に供給する電源電圧として設定する。したがって、パワーセーブ動作時に内部メモリ５に供給する電源電圧を、データ誤りが生じない下限の電圧値に低下させることができ、内部メモリ５に保持されているデータを確実に保証し、内部メモリ５内部におけるリーク電流量等を減少させ消費電力を低減することができる。
【００７２】
なお、上述した説明においては、内部メモリ５でデータ誤りが発生しない電源電圧の下限値は、電源装置９から内部メモリ５に出力する電源電圧の設定値をデータ誤り検出の結果に応じて低い値から徐々に上げていき設定するようにしている。
しかし、電源装置９から内部メモリ５に出力する電源電圧の設定値をデータ誤り検出の結果に応じて高い値から徐々に下げていき設定するようにしても良く、データ誤りがない場合には内部メモリ５に出力する電源電圧の設定値を現在よりも１つ低い段階のものに再設定することで設定値を徐々に低下させていき、はじめてデータ誤りが検出された設定値の１つ前の設定値を、内部メモリ５でデータ誤りが発生しない電源電圧の下限値とすれば良い。この場合には、内部メモリ５に供給する電源電圧の設定値の初期値は、例えばデータ保持保証電圧Ｖ１とすれば良い。
【００７３】
具体的には、図６に示したフローチャートにおいて、ステップＳ２７での分岐条件を逆にし、ステップＳ２６でのデータの誤り検出の結果、データチェック部７Ａがデータに誤りがない、つまりチェックコードが一致すると判断した場合には、ステップＳ２９にて電源制御設定部２０が、内部メモリ５に供給する電源電圧の設定値を現在の設定値よりも１段階低い値に再設定する。
【００７４】
一方、ステップＳ２６でのデータの誤り検出の結果、データチェック部７Ａがデータに誤りがある、つまりチェックコードが一致しないと判断した場合には、ステップＳ２８にて電源制御設定部２０が、現在の設定値に対して１つ前の設定値（現在の設定値より１段階高い設定値）を内部メモリ５でデータ誤りが生じない電源電圧の下限値として電源制御部２１に設定する。
【００７５】
このようにしても、データチェック部７Ａによるデータ誤り検出の結果を基に、内部メモリ５においてデータ保持可能な電源電圧の下限値が求められ、それを電源装置９から内部メモリ５にパワーセーブ動作時に供給する電源電圧として設定することが可能である。さらに、内部メモリ５に供給する電源電圧の設定値を再設定してデータ誤り検出を行う際に、外部メモリ２から内部メモリ５にデータをリロードする必要がなく、メモリ電圧値設定動作に要する処理量を削減して消費電力を削減することもできる。
【００７６】
図７は、第３の実施形態におけるマイクロコンピュータシステムの間欠動作を示すフローチャートである。図７においては、マイクロコンピュータシステムの動作状態を、通常動作からパワーセーブ動作に遷移させ、さらにパワーセーブ動作から通常動作に復帰させる一連の流れを示している。
【００７７】
なお、上述したようにマイクロコンピュータ１Ａ内のチェックビット用メモリ６及び電源制御設定部２０は、マイクロコンピュータシステムの動作状態にかかわらず、常に通常動作電圧が供給されている。
また、以下の説明では、内部メモリ５の通常動作電圧をＶ２とし、上述したメモリ電圧値設定動作により設定した電圧、すなわち内部メモリ５にてデータ誤りが生じない電源電圧の下限値をＶ１Ｒとする。したがって、電源装置９から内部メモリ５に供給する電源電圧は、通常動作時には電圧Ｖ２が供給され、パワーセーブ動作時には電圧Ｖ１Ｒが供給される。この内部メモリ５に供給する電源電圧は、電源制御設定部２０、電源制御部２１、及び電源装置９により制御する。
【００７８】
まず、データチェック部７Ａは、内部メモリ５のデータ領域ＤＩＡに書き込むデータを用いて、そのデータに対応するチェックコード（チェック符号）を算出する（ステップＳ３１）。次に、内部メモリ５のデータ領域ＤＩＡにデータを書き込むとともに、データチェック部７Ａで算出したチェックコードをチェックビット用メモリ６に書き込む（ステップＳ３２）。
このようにして、内部メモリ５のデータ領域ＤＩＡへのデータの書き込みを行う。
【００７９】
なお、電源投入直後のステップＳ３１、３２では、以下のような動作を行う。
まず、プロセッサ３からの指示に基づいてローダー４は、外部メモリ２のデータ領域ＤＯＡからプログラム、テーブルデータ等のデータを読み出す。このとき、データチェック部７Ａは、外部メモリ２から読み出したデータを用いて、そのデータに対応するチェックコード（チェック符号）を算出する（ステップＳ３１）。次に、ステップＳ３１において外部メモリ２から読み出したデータを内部メモリ５のデータ領域ＤＩＡに書き込むとともに、データチェック部７Ａで算出したチェックコードをチェックビット用メモリ６に書き込む（ステップＳ３２）。なお、データに係るチェックコードを予め算出して外部メモリ２に保持しておき、データとともにチェックコードを読み出して、そのデータ及びチェックコードを内部メモリ５のデータ領域ＤＩＡ及びチェックビット用メモリ６にそれぞれ保存するようにしても良く、チェックコードの生成ロジックによる処理が不要となり、処理時間を短縮できるとともに消費電力を低減することができる。
このようにして、外部メモリ２のデータ領域ＤＯＡから内部メモリ５のデータ領域ＤＩＡへのデータの複写を行う。
【００８０】
上述した処理を行った後、マイクロコンピュータシステムの動作状態を通常動作からパワーセーブ動作に遷移させる。このとき、電源装置９から内部メモリ５に供給する電源電圧（メモリ電圧）を電圧Ｖ２から電圧Ｖ１Ｒに低下させる（ステップＳ３３）。また、このとき、内部メモリ５、チェックビット用メモリ６、及び電源制御設定部２０を除くマイクロコンピュータ１Ａが有する各機能部（プロセッサ３、ローダー４、データチェック部７Ａ、及びアクセス制御部８等）は、電源供給が遮断される。
【００８１】
所定時間経過後、マイクロコンピュータシステムの動作状態をパワーセーブ動作から通常動作に遷移させる。このとき、電源装置９から内部メモリ５に供給する電源電圧（メモリ電圧）を電圧Ｖ１Ｒから通常動作電圧Ｖ２に復帰させる（ステップＳ３４）。また、このときマイクロコンピュータ１Ａが有する各機能部（プロセッサ３、ローダー４、データチェック部７Ａ、及びアクセス制御部８等）にも通常動作電圧が供給される。
【００８２】
次に、データチェック部７Ａは、内部メモリ５のモニタ領域からデータを読み出し、読み出したデータを用いてチェックコードを算出する（ステップＳ３５）。
このモニタ領域は、内部メモリ５にてデータ誤りが生じたか否かを簡易的に判定するためにデータ領域ＤＩＡの一部に予め設定した所定領域である。モニタ領域は、設定変更が可能であり、内部メモリ５内でメモリ（記憶素子）の特性が劣る領域（最も特性が悪い領域）を設定する。例えば、内部メモリ５の電源部から一番遠い領域をモニタ領域に設定しても良いし、内部メモリ５内に特性が劣る領域を任意に作成可能であれば、特性が劣る領域を作成しその領域をモニタ領域に設定すれば良い。
【００８３】
続いて、データチェック部７Ａは、ステップＳ３５において内部メモリ５のモニタ領域から読み出したデータに対応するチェックコードをチェックビット用メモリ６から読み出す。そして、データチェック部７Ａは、この読み出したチェックコードとステップＳ３５において算出したチェックコードとを比較し、データの誤り検出を行う（ステップＳ３６）。
【００８４】
その結果、内部メモリ５におけるモニタ領域のデータに誤りがない、つまりチェックコードが一致するとデータチェック部７Ａにて判断された場合には（ステップＳ３７のＹｅｓ）、内部メモリ５のデータ領域ＤＩＡの全領域においてデータ誤りが生じていないと判断し、通常動作処理を行う。
【００８５】
一方、データの誤り検出の結果、内部メモリ５におけるモニタ領域のデータに誤りがある、つまりチェックコードが一致しないと判断した場合には（ステップＳ３７のＮｏ）、データチェック部７Ａは、内部メモリ５のデータ領域ＤＩＡの全領域からデータを読み出す。さらに、データチェック部７Ａは、読み出したデータを用い、データ領域ＤＩＡの全領域についてチェックコードを算出する（ステップＳ３８）。
【００８６】
データチェック部７Ａは、ステップＳ３８において内部メモリ５から読み出したデータ、すなわち全データ領域ＤＩＡの各データに対応するチェックコードをチェックビット用メモリ６から読み出す。そして、データチェック部７Ａは、この読み出したチェックコードとステップＳ３８において算出したチェックコードとを比較してデータの誤り検出を行い、データ誤りが生じた不良個所を特定する（ステップＳ３９）。
【００８７】
次に、ステップＳ３８においてすべての不良個所を特定した後、特定した不良個所に対応する外部メモリ２のアドレス情報をアクセス制御部８にて生成する。さらに、生成したアドレス情報で指定される外部メモリ２のデータ領域から内部メモリ５の対応するデータ領域にローダー４によりデータをリロードする（ステップＳ４０）。外部メモリ２から内部メモリ５にデータをリロードした後、通常動作処理を行う。
上述した動作を繰り返し行うことで、マイクロコンピュータシステムで通常動作とパワーセーブ動作との間欠動作が行われる。
【００８８】
以上説明したように第３の実施形態によれば、データチェック部７Ａによるデータ誤り検出の結果を基に内部メモリ５においてデータを保持可能な電源電圧の下限値を求め、パワーセーブ動作時には電源装置９から内部メモリ５に供給する電圧を、仕様等で規定されるデータ保持保証電圧よりも低い、内部メモリ５でデータを保持可能な電源電圧の下限値に低下させることができる。これにより、内部メモリ５に保持されているデータを確実に保証しながらも消費電力を低減することができる。また、マイクロコンピュータ１Ａ毎に内部メモリ５でデータを保持可能な電源電圧の下限値を求め、パワーセーブ動作時に内部メモリ５に供給する電圧値として設定することで、マイクロコンピュータ１Ａの特性に応じた電圧値を適切に設定することが可能となる。
【００８９】
また、パワーセーブ動作から通常動作に動作状態を遷移させるとき、内部メモリ５のデータ領域ＤＩＡの一部領域であり、かつ他のデータ領域と比較して特性が劣るモニタ領域のデータ誤り検出を行い、このモニタ領域のデータに誤りがない場合には、全データ領域ＤＩＡのデータ誤りがないと判断し、全データ領域ＤＩＡについてのデータ誤り検出を行わないようにすることで、データチェック処理による処理量を削減して高速化を図ることができる。
【００９０】
また、仮にモニタ領域のデータに誤りがあったとしても、全データ領域ＤＩＡについてデータ誤り検出を行ってデータ誤りが生じた個所を特定し、すべてのデータではなく誤りがあったデータのみを外部メモリ２から内部メモリ５にリロードすることで、リブート動作を行うことなく、パワーセーブ動作から通常動作に短い処理時間で遷移することができ、動作状態の遷移に要する消費電力も低減することができる。また、内部メモリ５のデータも保証できる。
【００９１】
なお、上記図７に示したマイクロコンピュータシステムの間欠動作においては、内部メモリ５に設定したモニタ領域のデータで誤りが生じた場合にのみ、内部メモリ５の全データ領域ＤＩＡについてデータ誤り検出を行うようにしているが、モニタ領域のデータで誤りが生じたか否かにかかわらず適当に全データ領域ＤＩＡについてのデータ誤り検出を行うようにしても良い。このようにする場合には、全データ領域ＤＩＡについてのデータ誤り検出を行う際に、モニタ領域についてのデータ誤り検出は行っても行わなくてもどちらでも良い。
【００９２】
例えば、図８に示すように、モニタ領域のデータで誤りが生じたか否かにかかわらず全データ領域ＤＩＡについてデータ誤り検出を行うタイミングを指定するためのチェック動作指定レジスタ２２をマイクロコンピュータ１Ａ内に設け、チェック動作指定レジスタ２２に従って、パワーセーブ動作から通常動作への遷移の数回に１回は全データ領域ＤＩＡでデータ誤り検出を行う。チェック動作指定レジスタ２２には、常に通常動作電圧を供給する。
【００９３】
ここで、上述したように内部メモリ５にてデータ保持可能な電源電圧の下限値は、使用環境（例えば、温度）等に依存して変化するので、上述したメモリ電圧値設定動作は、電源投入直後のみにかかわらず、動作中にも任意のタイミングで行うことが望ましい。
例えば、電源投入後、所定の時間間隔でメモリ電圧値設定動作を行うようにすれば、パワーセーブ動作時に内部メモリに供給する電圧を随時、使用環境等に応じた適切な電圧に設定することができる。
また、例えば、電源投入時に内部メモリ５に供給する電源電圧の下限値を求め、その後の運用中に内部メモリ５にてデータ誤りが生じた場合には、その都度、パワーセーブ動作時に内部メモリ５に供給する電源電圧を１段階高い値に再設定するようにしても良い。この場合には、非常に簡単な処理のみで、パワーセーブ動作時に内部メモリに供給する電圧を使用環境等に応じた適切な電圧に設定することができる。
【００９４】
なお、上述した各実施形態において、チェックビット用メモリ６は、動作状態に関わらず通常動作電圧を供給するようにしているが、データとして保持しているチェック符号が保証されれば良いので、データ保持保証電圧Ｖ１以上であれば電源電圧は任意である。例えば、パワーセーブ動作時にチェックビット用メモリ６に供給する電源電圧をデータ保持保証電圧Ｖ１とすれば、消費電力をさらに低減することができる。
【００９５】
また、上述した各実施形態においては、データの誤り検出を行い、誤りがあった場合には当該データを外部メモリ２から内部メモリ５にリロードするようにしているが、データチェック部７、７Ａにてデータの誤り検出に加えて誤り訂正を行うようにしても良い。
データの誤り訂正を行うようにする場合には、内部メモリ５に保持されているデータの誤りを検出及び訂正するためのチェック符号として、例えばＢＣＨ（Bose-Chaudhuri-Hocquenghem）方式やＲＳ（Reed-Solomon）方式のような誤り検出訂正符号を用い、チェックビット用メモリ６に保持する。データチェック部７、７Ａは、チェック符号に基づいて内部メモリ５に保持しているデータの誤り検出を行い、誤りがあった場合にはチェック符号に基づいて誤りを訂正する。そして、データの誤りがチェック符号による誤り訂正能力を超えている場合にのみ、当該データを外部メモリ２から内部メモリ５にリロードするようにする。このようにすることで、外部メモリ２から内部メモリ５に複写されるデータに加え、通常動作にて変化するデータについても保証することができるようになる。
【００９６】
また、プロセッサ３のアドレス領域に内部メモリ５が割り振られている（プロセッサ３のバスに内部メモリ５が接続され、アクセス可能である）場合には、上述したローダー４、データチェック部７、７Ａ及びアクセス制御部８にて行う処理、すなわちデータの誤りを検出する（及び訂正する）処理、誤りがあったデータをリロードする処理は、コンピュータプログラムに基づくプロセッサ３によるソフト制御で実行するようにしても良い。このようにした場合には、ローダー４、データチェック部７、７Ａ及びアクセス制御部８を構成する論理回路等を削減することができ、回路規模を小さくすることができる。
【００９７】
次に、上述した各実施形態におけるマイクロコンピュータシステムを携帯電話機に適用した場合の動作例を、図９を参照して説明する。図９は、各実施形態におけるマイクロコンピュータシステムを適用した携帯電話機の間欠動作を示している。
【００９８】
図９（Ａ）において、ＴＮは通常動作期間であり、ＴＳは通常動作時よりも低消費電力で動作するパワーセーブ動作期間である。
また、ＶＭは電源装置９から内部メモリ５に供給される電源電圧であり、通常動作時（期間ＴＮ）には通常動作電圧Ｖ２が供給され、パワーセーブ動作時（期間ＴＳ）には電圧Ｖ１Ｒが供給される。ここで、電圧Ｖ１Ｒは、データ保持保証電圧Ｖ１よりも低く０Ｖより高い電圧値であり、特に第３の実施形態におけるマイクロコンピュータシステムを用いた場合には、内部メモリ５にてデータを保持可能な電源電圧の下限値である。
なお、通常動作時（期間ＴＮ）にはマイクロコンピュータシステムの各機能部は通常動作電圧が供給され、パワーセーブ動作時（期間ＴＳ）にはプロセッサ３、ローダー４、データチェック部７、７Ａ、及びアクセス制御部８は電源供給が遮断される。
【００９９】
各実施形態におけるマイクロコンピュータシステムを適用した携帯電話機は、パワーセーブ動作から通常動作に復帰する場合に、図９（Ｂ）、（Ｃ）に示すように、まずマイクロコンピュータ内のデータチェック部７、７Ａにより内部メモリ５に係るメモリチェックを行う。このメモリチェックでは、内部メモリ５に保持されているデータを用いてチェックコードを算出する。そして、算出したチェックコードと、チェックビット用メモリ６に保持されている当該データに対応するチェックコードとを比較してデータ誤り検出を行う（図３のステップＳ６や、図７のステップＳ３５、Ｓ３６等参照。）。
【０１００】
データ誤り検出の結果、内部メモリ５のデータに誤りがない場合には、図９（Ｂ）に示すように基地局検出、位置登録、着呼確認等の間欠受信処理を行う。そして、間欠受信処理が完了した後、内部メモリ５に書き込むデータを用いてそのデータに係るチェックコードをデータチェック部７、７Ａにて算出し、データ及びチェックコードを内部メモリ５及びチェックビット用メモリ６にそれぞれ書き込む。また、必要に応じて、内部メモリ５に保持されているデータを外部メモリ２等に待避させる。以上の処理がすべて完了した後、通常動作からパワーセーブ動作に遷移する。
【０１０１】
一方、データ誤り検出の結果、内部メモリ５のデータに誤りがあった場合には、図９（Ｃ）に示すように、ローダー４によりデータ誤りが検出された個所のデータを外部メモリ２から内部メモリ５へリロードする（図３のステップＳ８、Ｓ９や、図７のステップＳ３８〜Ｓ４０等参照。）。その後、内部メモリ５のデータに誤りがない場合と同様に、基地局検出、位置登録、着呼確認等の間欠受信処理、並びにチェックコードの算出、チェックビット用メモリ６への書き込み及びデータの内部メモリ５への書き込みを行い、通常動作からパワーセーブ動作に遷移する。
【０１０２】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
本発明の諸態様を付記として以下に示す。
【０１０３】
（付記１）記憶装置に保持しているデータを複写して保持する第１のメモリと、
上記第１のメモリに保持されるデータを任意データ長で分割した各ブロックでの当該データのチェック符号を保持し、データ保持保証電圧以上の電源電圧が供給される第２のメモリと、
上記チェック符号に基づいて、上記第１のメモリに保持しているデータの誤りを検出するデータ検査部と、
上記データ検査部にてデータ誤りが検出されたブロックに対応するデータのみを上記記憶装置から上記第１のメモリに複写するリロード部とを備え、
通常動作とは異なる任意の動作時には、上記第１のメモリにデータ保持保証電圧より低い正の電源電圧を供給することを特徴とする半導体装置。
（付記２）上記チェック符号を予め生成し、上記第１のメモリに複写されるデータとともに上記チェック符号を上記記憶装置に保持していることを特徴とする付記１記載の半導体装置。
（付記３）上記第１のメモリに保持されるデータをブロック符号化して生成、付加される第１の検査符号を上記チェック符号として上記第２のメモリに保持することを特徴とする付記１記載の半導体装置。
（付記４）上記第１の検査符号は、ＣＲＣ方式でのブロック符号化により生成されることを特徴とする付記３記載の半導体装置。
（付記５）上記第１のメモリに保持されるデータをブロック符号化して生成、付加される第１の検査符号を上記第１のメモリに保持するとともに、上記第１のメモリに保持される第１の検査符号をブロック符号化して生成、付加される第２の検査符号を、上記チェック符号として上記第２のメモリに保持することを特徴とする付記１記載の半導体装置。
（付記６）上記データ検査部は、さらに上記チェック符号に基づいて、上記第１のメモリに保持しているデータの誤りを訂正し、
上記リロード部は、上記データ検査部での誤り訂正ができないデータ誤りが検出されたブロックに対応するデータのみを上記記憶装置から上記第１のメモリに複写する付記３記載の半導体装置。
（付記７）上記第１の検査符号は、ＢＣＨ方式でのブロック符号化により生成されることを特徴とする付記６記載の半導体装置。
（付記８）上記第１の検査符号は、ＲＳ方式でのブロック符号化により生成されることを特徴とする付記６記載の半導体装置。
（付記９）上記通常動作とは異なる任意の動作時には、上記第２のメモリに上記データ保持保証電圧に等しい電源電圧を供給することを特徴とする付記１記載の半導体装置。
（付記１０）上記通常動作とは異なる低消費電力動作時には、上記第１のメモリにデータ保持保証電圧より低い正の電源電圧を供給することを特徴とする付記１記載の半導体装置。
（付記１１）上記チェック符号は、偶数パリティ又は奇数パリティであることを特徴とする付記１記載の半導体装置。
（付記１２）上記記憶装置は不揮発性メモリであり、上記第１及び第２のメモリは揮発性メモリであることを特徴とする付記１記載の半導体装置。
（付記１３）記憶装置に保持しているデータを複写して保持する第１のメモリと、
上記第１のメモリに保持されるデータを任意データ長で分割した各ブロックでの当該データのチェック符号を保持し、データ保持保証電圧以上の電源電圧が供給される第２のメモリと、
上記チェック符号に基づいて上記第１のメモリに保持しているデータの誤りを検出するデータ検査処理、及びデータ誤りが検出されたブロックに対応するデータのみを上記記憶装置から上記第１のメモリに複写するリロード処理を供給されるコンピュータプログラムに従って実行する演算処理部とを備え、
通常動作とは異なる任意の動作時には、上記第１のメモリにデータ保持保証電圧より低い正の電源電圧を供給することを特徴とする半導体装置。
（付記１４）データを保持し、通常動作とは異なる任意の動作時にはデータ保持保証電圧より低い正の電源電圧が供給される第１のメモリと、
上記第１のメモリに保持されるデータの誤りを検出するためのチェック符号を保持し、データ保持保証電圧以上の電源電圧が供給される第２のメモリとを備えることを特徴とする半導体装置。
（付記１５）上記第１のメモリに保持されるデータを任意データ長で分割した各ブロックの上記チェック符号を上記第２のメモリに保持することを特徴とする付記１４記載の半導体装置。
（付記１６）データを保持する第１のメモリと、
上記第１のメモリとは異なる、上記第１のメモリに保持されるデータを任意データ長のブロック単位で符号化して得られるチェック符号を保持する第２のメモリとを備えることを特徴とする半導体装置。
（付記１７）上記チェック符号は、誤り検出符号であることを特徴とする付記１６記載の半導体装置。
（付記１８）上記チェック符号は、誤り検出訂正符号であることを特徴とする付記１６記載の半導体装置。
（付記１９）上記第２のメモリは、データ保持保証電圧以上の電源電圧が供給されることを特徴とする付記１６記載の半導体装置。
（付記２０）記憶装置に保持している固定データを複写して保持する第１のメモリと、
上記固定データを任意データ長で分割した各ブロックでの当該固定データのチェック符号を保持し、データ保持保証電圧以上の電源電圧が供給される第２のメモリと、
可変データを保持し、上記第１及び第２のメモリとは異なる第３のメモリと、
上記チェック符号に基づいて、上記第１のメモリに保持している固定データの誤りを検出するデータ検査部と、
上記データ検査部にてデータ誤りが検出されたブロックに対応するデータのみを上記記憶装置から上記第１のメモリに複写するリロード部とを備え、
通常動作とは異なる任意の動作時には、上記第３のメモリに保持している可変データを上記記憶装置に複写した後、上記第１及び第３のメモリにデータ保持保証電圧より低い正の電源電圧を供給することを特徴とする半導体装置。
（付記２１）上記第３のメモリに保持している可変データのうち、更新頻度が低い可変データを上記記憶装置に複写することを特徴とする付記２０記載の半導体装置。
（付記２２）記憶装置に保持しているデータを複写して保持する第１のメモリと、
上記第１のメモリに保持されるデータのチェック符号を保持し、データ保持保証電圧以上の電源電圧が供給される第２のメモリと、
上記チェック符号に基づいて、上記第１のメモリに保持しているデータの誤りを検出するデータ検査部と、
上記データ検査部での検出結果に応じて、通常動作とは異なる任意の動作時に上記第１のメモリに供給する電源電圧を設定する電圧設定部と、
上記電圧設定部による設定に従って、上記第１のメモリに電源電圧を供給する出力電圧を変更可能な電源供給部とを備えることを特徴とする半導体装置。
（付記２３）上記電圧設定部は、上記データ検査部での検出結果を基に上記第１のメモリがデータを保持可能な電圧の下限値を取得し、当該取得した下限値を通常動作とは異なる任意の動作時に上記第１のメモリに供給する電源電圧値として設定することを特徴とする付記２２記載の半導体装置。
（付記２４）上記データ検査部での検出結果を基に、上記電源供給部が上記第１のメモリに供給する電源電圧の値を順次低くし、上記第１のメモリがデータを保持可能な電圧の下限値を取得することを特徴とする付記２２記載の半導体装置。
（付記２５）上記データ検査部での検出結果を基に、上記電源供給部が上記第１のメモリに供給する電源電圧の値を順次高くし、上記第１のメモリがデータを保持可能な電圧の下限値を取得することを特徴とする付記２２記載の半導体装置。
（付記２６）上記データ検査部にてデータ誤りが検出されたデータを上記記憶装置から上記第１のメモリに複写するリロード部をさらに備えることを特徴とする付記２２記載の半導体装置。
（付記２７）上記データ検査部は、上記第１のメモリの一部に設定した判定領域のデータを用い、上記第１のメモリに保持しているデータの誤りの有無を判断することを特徴とする付記２６記載の半導体装置。
（付記２８）上記電源供給部は、上記第１のメモリに電源電圧を供給する電源部と、
上記電圧設定部による設定を基に上記電源部を制御する電源制御部とを備えることを特徴とする付記２２記載の半導体装置。
（付記２９）上記チェック符号は、上記第１のメモリに保持されるデータを任意データ長で分割した各ブロック毎のチェック符号であることを特徴とする付記２２記載の半導体装置。
【図面の簡単な説明】
【０１０４】
【図１】本発明の第１の実施形態による半導体装置を適用したマイクロコンピュータシステムの構成例を示すブロック図である。
【図２】第１の実施形態におけるマイクロコンピュータシステムの動作を示す図である。
【図３】第１の実施形態におけるマイクロコンピュータシステムの動作を示すフローチャートである。
【図４】本発明の第２の実施形態による半導体装置を適用したマイクロコンピュータシステムの構成例を示すブロック図である。
【図５】本発明の第３の実施形態による半導体装置を適用したマイクロコンピュータシステムの構成例を示すブロック図である。
【図６】第３の実施形態におけるマイクロコンピュータシステムのメモリ電圧値設定動作を示すフローチャートである。
【図７】第３の実施形態におけるマイクロコンピュータシステムの間欠動作を示すフローチャートである。
【図８】本発明の第３の実施形態による半導体装置を適用したマイクロコンピュータシステムの他の構成例を示すブロック図である。
【図９】本発明の各実施形態におけるマイクロコンピュータシステムを適用した携帯電話機の動作例を示す図である。
【図１０】従来のマイクロコンピュータシステムの構成を示すブロック図である。
【図１１】従来のマイクロコンピュータシステムの動作を示す図である。
【符号の説明】
【０１０５】
１、１Ａ、４１  マイクロコンピュータ
２  外部メモリ
３  プロセッサ
４  ローダー
５、４３  内部メモリ
６  チェックビット用メモリ
７、７Ａ  データチェック部
８  アクセス制御部
９、４４  電源装置
２０  電源制御設定部
２１  電源制御部
２２  チェック動作指定レジスタ
４２  メモリ制御部
【図１】
2006127152.tif 000003
【図２】
2006127152.tif 000004
【図３】
2006127152.tif 000005
【図４】
2006127152.tif 000006
【図５】
2006127152.tif 000007
【図６】
2006127152.tif 000008
【図７】
2006127152.tif 000009
【図８】
2006127152.tif 000010
【図９】
2006127152.tif 000011
【図１０】
2006127152.tif 000012
【図１１】
2006127152.tif 000013