(57)【要約】【課題】レジスタに記憶されたデータを高速に退避させることが可能な半導体装置を提供する。【解決手段】半導体装置は、命令に応じて転送される演算データやアドレス情報を保持するためのレジスタ群を備える。各レジスタは、複数ビットのデータを格納するために各ビット毎に、記憶するデータに応じて、第１および第２の記憶ノードを互いに異なる電位レベルにそれぞれ設定するためのフリップフロップ回路と、フリップフロップ回路に対応して設けられ、フリップフロップ回路で記憶するデータを退避／復帰させるための不揮発性記憶素子とを含む。【選択図】図５
2014002819.tif 000002
【特許請求の範囲】
【請求項１】
命令に応じて転送される演算データやアドレス情報を保持するためのレジスタ群を備え、
各レジスタは、複数ビットのデータを格納するために各ビット毎に、
記憶するデータに応じて、第１および第２の記憶ノードを互いに異なる電位レベルにそれぞれ設定するためのフリップフロップ回路と、
前記フリップフロップ回路に対応して設けられ、前記フリップフロップ回路で記憶するデータを退避／復帰させるための不揮発性記憶素子とを含み、
各レジスタは、各ビット共通に設けられる電圧供給配線と、
前記データを退避／復帰させる際に前記電圧供給配線の電圧を設定する転送制御回路とをさらに含み、
前記不揮発性記憶素子は、前記電圧供給配線と前記第１および第２の記憶ノードとの間にそれぞれ設けられ、前記電圧供給配線と前記第１および第２の記憶ノードとの間の電位差に従って互いに相補の不揮発的なデータ記憶を実行する第１および第２の記憶素子を有し、
前記フリップフロップ回路は、
内部ノードと第１の電圧との間に設けられ、ゲートが前記フリップフロップ回路の動作を制御する制御信号の入力を受ける第１のトランジスタと、
第２の電圧と前記第１の記憶ノードとの間に設けられ、ゲートが前記第２の記憶ノードと電気的に結合される第２のトランジスタと、
前記内部ノードと前記第１の記憶ノードとの間に設けられ、ゲートが前記第２の記憶ノードと電気的に結合される第３のトランジスタと、
前記第２の電圧と前記第２の記憶ノードとの間に設けられ、ゲートが前記第１の記憶ノードと電気的に結合される第４のトランジスタと、
前記内部ノードと前記第２の記憶ノードとの間に設けられ、ゲートが前記第１の記憶ノードと電気的に結合される第５のトランジスタとを有する、半導体装置。
【請求項２】
前記転送制御回路は、電源電圧の低下に従って前記電圧供給配線を前記第１および第２の電圧の間の第３の電圧に設定して、前記フリップフロップ回路の前記第１および第２の記憶ノードと前記電圧供給配線との間のそれぞれの電位差に従って前記第１および第２の記憶素子にデータ記憶させる、請求項１記載の半導体装置。
【請求項３】
前記転送制御回路は、割り込み命令あるいはサブルーチン命令の入力に従って前記電圧供給配線を前記第１および第２の電圧の間の第３の電圧に設定して、前記フリップフロップ回路の前記第１および第２の記憶ノードと前記電圧供給配線との間のそれぞれの電位差に従って前記第１および第２の記憶素子にデータ記憶させる、請求項１記載の半導体装置。
【請求項４】
前記割り込み命令あるいはサブルーチン命令は、前記レジスタ群の全ての前記転送制御回路に一括して入力される、請求項３記載の半導体装置。
【請求項５】
前記割り込み命令あるいはサブルーチン命令は、前記レジスタ群のうちの指定されたレジスタの前記転送制御回路に入力される、請求項３記載の半導体装置。
【請求項６】
前記第１および第２の記憶素子は、電界方向の向きに応じて強誘電体が分極反転する強誘電体膜、通過電流に応じて抵抗値が変化する磁気抵抗素子、あるいは電圧差の向きに応じて抵抗値が変化する抵抗変化素子のいずれか１つに相当する、請求項１〜５のいずれかに記載の半導体装置。
【請求項７】
ＣＰＵ内に設けられ、命令に応じて内部データバスを通じて転送される演算データやアドレス情報を保持するためのレジスタを備え、
前記レジスタは、各々が１ビットデータを格納する複数のレジスタユニットを含み、
各レジスタユニットは、
記憶するデータに応じて、第１および第２の記憶ノードを互いに異なる電位レベルにそれぞれ設定するためのフリップフロップ回路と、
前記フリップフロップ回路に対応して設けられ、前記フリップフロップ回路で記憶するデータを退避／復帰させるための不揮発性記憶素子とを含み、
レジスタは、
前記複数のレジスタユニットに共通に設けられる電圧供給配線と、
前記データを退避／復帰させる際に前記電圧供給配線の電圧を設定する転送制御回路とをさらに含み、
前記各レジスタユニットの不揮発性記憶素子は、前記電圧供給配線と前記第１および第２の記憶ノードとの間にそれぞれ設けられ、前記電圧供給配線と前記第１および第２の記憶ノードとの間の電位差に従って互いに相補の不揮発的なデータ記憶を実行する第１および第２の記憶素子を有し、
前記フリップフロップ回路は、
２つのインバータが相互接続されたラッチ部と
前記ラッチ部と接地電位の間に接続され、データを復帰させる際に、前記ラッチ部の保持動作を制御する制御信号の入力を受ける制御回路を有する、半導体装置。
【請求項８】
前記制御回路は、内部ノードと第１の電圧との間に設けられ、ゲートが前記制御信号の入力を受ける第１のトランジスタを有し、
前記ラッチ部は、
第２の電圧と前記第１の記憶ノードとの間に設けられ、ゲートが前記第２の記憶ノードと電気的に結合される第２のトランジスタと、
前記内部ノードと前記第１の記憶ノードとの間に設けられ、ゲートが前記第２の記憶ノードと電気的に結合される第３のトランジスタと、
前記第２の電圧と前記第２の記憶ノードとの間に設けられ、ゲートが前記第１の記憶ノードと電気的に結合される第４のトランジスタと、
前記内部ノードと前記第２の記憶ノードとの間に設けられ、ゲートが前記第１の記憶ノードと電気的に結合される第５のトランジスタとを有する、請求項７記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置に関し、例えば汎用レジスタを備えた半導体装置に関する。
【背景技術】
【０００２】
一般に、マイコン装置では、電源電圧が基準電圧よりも低下すると、ＲＡＭ（Random Access Memory）等の揮発性メモリ内のデータを保護するために、そのデータを不揮発性メモリに退避させる必要がある。この点で、速やかにデータ退避できるように特開２００９−８６９０８号公報においては、電源電圧が基準電圧よりも低下したことが検出されると、ＣＰＵ（Central Processing Unit）とは別のＤＭＡ転送手段を用いて揮発性メモリから不揮発性メモリに退避させる方式が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−８６９０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一方で、ＣＰＵ内部には、ＣＰＵ内部の演算処理等で用いられる複数のデータを記憶するレジスタが複数設けられており、当該レジスタのデータも保護する必要があるが、ＣＰＵ外部の装置を用いてデータ転送（データ退避）させるとＣＰＵ外部の装置との連携を図る必要が有り、消費電力や転送時間の面で不利である。
【０００５】
上記のような問題を解決するためになされたものであって、レジスタに記憶されたデータを高速に退避させることが可能な半導体装置を提供する。
【０００６】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
一実施例によれば、半導体装置は、命令に応じて転送される演算データやアドレス情報を保持するためのレジスタ群を備える。各レジスタは、複数ビットのデータを格納するために各ビット毎に、記憶するデータに応じて、第１および第２の記憶ノードを互いに異なる電位レベルにそれぞれ設定するためのフリップフロップ回路と、フリップフロップ回路に対応して設けられ、フリップフロップ回路で記憶するデータを退避／復帰させるための不揮発性記憶素子とを含む。各レジスタは、各ビット共通に設けられる電圧供給配線と、データを退避／復帰させる際に電圧供給配線の電圧を設定する転送制御回路とをさらに含む。不揮発性記憶素子は、電圧供給配線と第１および第２の記憶ノードとの間にそれぞれ設けられ、電圧供給配線と第１および第２の記憶ノードとの間の電位差に従って互いに相補の不揮発的なデータ記憶を実行する第１および第２の記憶素子を有する。フリップフロップ回路は、内部ノードと第１の電圧との間に設けられ、ゲートがフリップフロップ回路の動作を制御する制御信号の入力を受ける第１のトランジスタと、第２の電圧と第１の記憶ノードとの間に設けられ、ゲートが第２の記憶ノードと電気的に結合される第２のトランジスタと、内部ノードと第１の記憶ノードとの間に設けられ、ゲートが第２の記憶ノードと電気的に結合される第３のトランジスタと、第２の電圧と第２の記憶ノードとの間に設けられ、ゲートが第１の記憶ノードと電気的に結合される第４のトランジスタと、内部ノードと第２の記憶ノードとの間に設けられ、ゲートが第１の記憶ノードと電気的に結合される第５のトランジスタとを有する。
【発明の効果】
【０００８】
一実施例によれば、半導体装置は、レジスタに記憶されたデータを高速に退避させることが可能である。
【図面の簡単な説明】
【０００９】
【図１】本実施の形態１に従うマイコン１の概略構成を説明する図である。
【図２】本実施の形態１に従う中央演算処理装置（ＣＰＵ）１０の内部構成の概略を説明する図である。
【図３】本実施の形態１に従うレジスタファイル３６の内部構成を説明する図である。
【図４】本実施の形態１に従う専用レジスタ３８の内部構成を説明する図である。
【図５】本実施の形態１に従うＣＰＵ内部のレジスタの構成の概略を説明する図である。
【図６】本実施の形態１に従う汎用レジスタ群とパワーマネジメント制御部４との関係を説明する概略図である。
【図７】本実施の形態１に従う汎用レジスタ群の配置構成を説明する図である。
【図８】本実施の形態１に従う汎用レジスタ３７の構成を説明する図である。
【図９】本実施の形態１に従う汎用レジスタ３７の１ビットのデータを記憶する構成の一部を説明する図である。
【図１０】本実施の形態１に従う汎用レジスタ３７の動作について説明するタイミングチャート図である。
【図１１】本実施の形態１に従う汎用レジスタ３７の動作について説明する別のタイミングチャート図である。
【図１２】本実施の形態２に従うＣＰＵの割り込み処理の概念について説明する図である。
【図１３】本実施の形態２に従うＣＰＵの割り込み処理のフローについて説明する図である。
【図１４】本実施の形態２に従うＣＰＵにおけるサブルーチン命令の実行処理のフローについて説明する図である。
【図１５】本実施の形態２に従う汎用レジスタ群とパワーマネジメント制御部４との関係を説明する概略図である。
【図１６】本実施の形態２に従う汎用レジスタ群の配置構成を説明する図である。
【図１７】本実施の形態２に従う汎用レジスタ３７＃の構成を説明する図である。
【図１８】本実施の形態２に従う汎用レジスタ３７＃の１ビットのデータを記憶する構成の一部を説明する図である。
【図１９】本実施の形態２に従う汎用レジスタ３７の動作について説明するタイミングチャート図である。
【図２０】本実施の形態２に従う汎用レジスタ３７＃の動作について説明する別のタイミングチャート図である。
【図２１】本実施の形態２の変形例に従う汎用レジスタ群とパワーマネジメント制御部４との関係を説明する概略図である。
【図２２】本実施の形態２の変形例に従う割り込み制御における汎用レジスタ群に対する命令の一例を説明する図である。
【図２３】本実施の形態に従う記憶素子の構成を説明する図である。
【図２４】本実施の形態に従う別の記憶素子の構成を説明する図である。
【図２５】本実施の形態に従うさらに別の記憶素子の構成を説明する図である。
【発明を実施するための形態】
【００１０】
本実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付し、その説明は繰り返さない。
【００１１】
（実施の形態１）
図１は、本実施の形態１に従うマイコン１の概略構成を説明する図である。
【００１２】
図１を参照して、マイコン１は、中央演算処理装置（ＣＰＵ）１０と、ＣＰＵと接続される命令バスＣＢと、アドレスバスＡＢと、データバスＤＢと、これら各バスとそれぞれ接続される記録媒体（ＲＯＭ６（Read Only Memory）、ＲＡＭ８）や、外部機器との間でデータ授受するための入出力ポート１４等を含む。また、命令バスＣＢを介してＣＰＵ１０と接続され外部カウント入力に従ってカウントするタイマ１２やＣＰＵ１０に対して割り込み制御するための割り込み制御部１６も設けられる。また、ＣＰＵ１０の動作を規定するためのクロック信号を発振して入力するためのクロック発振制御部２や、マイコン１の電源ＯＮ／ＯＦＦに伴う電源電圧を管理するためのパワーマネジメント制御部４も設けられる。なお、本例においては、一例としてアドレスバスやデータバスのバス幅は３２ビットである場合が示されている。
【００１３】
図２は、本実施の形態１に従う中央演算処理装置（ＣＰＵ）１０の内部構成の概略を説明する図である。
【００１４】
図２を参照して、中央演算処理装置（ＣＰＵ）１０は、命令デコーダ２０、命令シーケンサ２２、制御信号パイプライン２４、例外処理２６や、データの授受をするための各種のバス（内部命令バスＩＣＢ、内部アドレスバスＩＡＢ、内部データバスＩＤＢ、内部バスＩＢ、内部制御命令バスＩＯＢ）を含む。
【００１５】
命令デコーダ２０は、命令バスＣＢを介して入力される命令をデコードしてデコード結果を出力する。命令シーケンサ２２は、命令デコーダ２０より出力されたデコード結果に基づいて、入力された命令に応じた処理動作に係る実行制御を行う。
【００１６】
制御信号パイプライン２４は、命令シーケンサ２２からの信号等に基づいて、ＣＰＵ１０にて所定の処理動作を行うための制御信号を生成し内部命令バスＩＣＢを介して出力する。また、内部アドレスバスＩＡＢおよび内部データバスＩＤＢは、アドレスバスＡＢやデータバスＤＢとそれぞれ接続されており、制御信号パイプライン２４からの制御信号に基づいてＣＰＵ１０内の各機能部が動作することにより、入力される命令に応じた処理動作等が実現される。また、ＣＰＵ１０は、命令に係る処理をパイプライン動作で行うように構成されており、制御信号パイプライン２４は、パイプライン動作により処理が実行されるよう制御信号を出力する。
【００１７】
例外処理２６は、入力される割り込み信号により割り込みが発生した（割り込み要求を検出した）場合に、その割り込み処理を行うために、通常動作において実行中の処理に係る情報を一時的に退避させる。また、例外処理２６は、割り込み処理終了後には退避させた各情報を必要に応じて戻して通常動作に復帰させる。
【００１８】
また、ＣＰＵ１０は、制御信号パイプライン２４からの制御信号に応じて動作し、データを用いた各種演算処理を行う乗算器２８、ＡＬＵ（Arithmetic and Logic Unit：算術論理演算器）３０、パラレルシフタ３２、レジスタ制御に係るバイパス３４、レジスタファイル３６をさらに含む。レジスタファイル３６は，データを保持するレジスタ（メモリ回路ブロック）である。レジスタには，各種演算結果やアドレス情報等を保持する汎用レジスタと、特殊な用途に使用する専用レジスタの２種類が設けられる。
【００１９】
図３は、本実施の形態１に従うレジスタファイル３６の内部構成を説明する図である。
図３を参照して、本例においては、レジスタファイル３６は、複数の汎用レジスタ３７と、専用レジスタ３８とを含む。本例においては、ＣＰＵ１０内部の汎用レジスタ３７（Ｒ０〜Ｒ１５）が１６個設けられている場合が示されている。それぞれの汎用レジスタは、一例として３２ビット構成である。
【００２０】
汎用レジスタ３７（Ｒ０〜Ｒ１５）は、各種のバス（内部命令バスＩＣＢ、内部アドレスバスＩＡＢ、内部データバスＩＤＢ、内部バスＩＢ、内部制御命令バスＩＯＢ）と接続されＣＰＵ１０に接続される種々の記憶媒体（例えば、ＲＯＭ６、ＲＡＭ８）等から、ＣＰＵ１０が必要とするデータを転送してもらい格納する。または、汎用レジスタ３７のデータはＣＰＵ１０の命令により、必要に応じて同じく種々の記憶媒体へ格納される。
【００２１】
図４は、本実施の形態１に従う専用レジスタ３８の内部構成を説明する図である。
図４を参照して、専用レジスタ３８は、プログラムカウンタ３８Ａ（ＰＣ）、プログラムステータスレジスタ３８Ｂ（ＰＳＷ）、リターンポインタ３８Ｃ（ＲＰ）を含む。これらのレジスタも上記汎用レジスタと同様に各種のバス（内部命令バスＩＣＢ、内部アドレスバスＩＡＢ、内部データバスＩＤＢ、内部バスＩＢ、内部制御命令バスＩＯＢ）と接続される。
【００２２】
プログラムカウンタ３８Ａは、メモリに格納されたプログラムを順次実行するため，実行中のプログラムのアドレスを格納する目的で使用する。分岐系以外の命令を実行した場合，この値がインクリメントされ，次の命令の実行に移る。
【００２３】
プログラムステータスレジスタ３８Ｂは、割り込み命令の実行の状況や割り込みレベルを保持したりする。
【００２４】
リターンポインタ３８Ｃは，ＣＡＬＬ命令の実行後の戻りアドレスを保証するためにＣＡＬＬ命令実行時のプログラムカウンタ３８Ａの値を保持するレジスタである。
【００２５】
ＣＡＬＬ命令の実行によりプログラムカウンタ３８Ａ（ＰＣ＋２）の値がリターンポインタ３８Ｃ（ＲＰ）へ格納され、リターン命令（ＲＥＴ命令）で復帰したときにＣＡＬＬ命令の次の命令から実行されることになる。
【００２６】
また、専用レジスタ３８は、システムが使用するシステムスタックポインタ３８Ｄ（ＳＳＰ）や、ユーザーが利用できるユーザスタックポインタ３８Ｅ（ＵＳＰ）をさらに含む。
【００２７】
図５は、本実施の形態１に従うＣＰＵ内部のレジスタの構成の概略を説明する図である。
【００２８】
図５を参照して、レジスタは、各々が１ビットのデータを格納する複数のレジスタユニットを含む。
【００２９】
複数ビット（ｂｉｔ０〜３１）のデータにそれぞれ対応して複数のレジスタユニットＲＵ０〜ＲＵ３１（総称してレジスタユニットＲＵとも称する）が設けられた場合が示されている。
【００３０】
各レジスタユニットＲＵは、記憶するデータに応じて、ビット線ＢＬ，／ＢＬの電位レベルを互いに異なる状態にそれぞれ設定するためのフリップフロップ回路と、フリップフロップ回路に対応してビット線ＢＬ，／ＢＬと接続され、フリップフロップ回路で記憶するデータを退避／復帰させるための不揮発性記憶素子とを含む。フリップフロップ回路は、２つのインバータで形成され、ラッチ状態を形成している。ここで、不揮発性記憶素子は、各レジスタユニットＲＵ毎に相補に不揮発的なデータ記憶を実行する２つの記憶素子を有する。本例においては、各レジスタユニットＲＵ毎に、ビット線ＢＬ，／ＢＬに対してそれぞれ記憶素子が設けられている場合が示されている。
【００３１】
当該構成とすることにより、ＣＰＵ内部のレジスタのデータを不揮発性記憶素子に記憶することが可能となる。不揮発性記憶素子は、電源を切っても不揮発的にその値を記憶できる記憶素子である。
【００３２】
したがって、例えば、フリップフロップ回路のラッチ自体は電源を切る（電源ＯＦＦ）とデータは失われるが、電源を切る前にラッチ状態のデータを不揮発性記憶素子へ格納（データ記憶）しておけば、次回電源を投入した時（電源ＯＮ）に不揮発性記憶素子からデータをフリップフロップ回路へロードすれば、電源を切る前の状態へ高速に戻すことが可能となる。また、電源電圧が基準電圧よりも低下した場合に、レジスタのデータを速やかにデータ退避させる必要があるが、ＣＰＵ外部のメモリに時間をかけて格納するのではなく、当該不揮発性記憶素子へ格納することにより速やかにデータ退避させることが可能となる。また、電源電圧が正常となった場合にも当該不揮発性記憶素子からデータをフリップフロップ回路へロードさせることにより高速に元の状態に戻すことが可能となる。
【００３３】
仮に、外部のメモリ等を用いてデータ退避させる場合、複数の汎用レジスタのデータを一度に退避させることはできず、１つずつデータを退避させるためかなりの時間を要することになる。また、データ復帰させる場合にも同様の外部のメモリ等を用いる場合にはかなりの時間を要することになる。
【００３４】
また、消費電力の点でもＣＰＵを動作させる時間が短いので低減することが可能である。また、電源がオン（ＯＮ）・オフ（ＯＦＦ）されるたびに、毎回ＣＰＵ外部のメモリに時間をかけて格納（ストア）や読み出し（ロード）をさせる必要が無くなりＣＰＵの動作を簡易かつ、効率化させることが可能である。
【００３５】
このような動作は、ＣＰＵが間欠動作する場合に有効に利用することが可能である。例えば人感センサにおいては、人通りが少ない道に設置されて、人を検知するたびに照明機器制御用のマイコンに電源が入り、照明を点灯させ、人が検知されなくなると、照明を消してマイコンの電源を切るといった動作が行われる。当該構成を用いることにより、毎回人を検知するたびにマイコンを初期起動させる必要がなく、ＣＰＵ内部の不揮発性記憶素子に記憶されたデータを用いて、すばやく照明を点灯等させることが可能である。
【００３６】
以下、本実施の形態１に従うレジスタの構成等の詳細について説明する。
図６は、本実施の形態１に従う汎用レジスタ群とパワーマネジメント制御部４との関係を説明する概略図である。
【００３７】
図６を参照して、本例においては、パワーマネジメント制御部４から汎用レジスタ群を制御する制御信号が出力される場合が示されている。
【００３８】
具体的には、パワーマネジメント制御部４は、ＣＰＵ１０に対してマイコン１の電源ＯＮ／ＯＦＦに連動した電源ＯＮ連動制御信号および電源ＯＦＦ連動制御信号を出力する。なお、パワーマネジメント制御部４は、マイコン１に供給される電源電圧も監視し、電源電圧の電圧レベルに応じても電源ＯＮ／ＯＦＦ連動制御信号を出力する。具体的には、パワーマネジメント制御部４は、電源電圧が基準電圧よりも低下すると電源ＯＦＦ連動制御信号を出力する。また、再び電源電圧が基準電圧以上となった場合には電源ＯＮ連動制御信号を出力する。
【００３９】
当該電源ＯＮ／ＯＦＦ連動制御信号は、それぞれ汎用レジスタ群（Ｒ０〜Ｒ１５）に供給可能に設けられている。なお、本例においては、汎用レジスタ群にのみ当該制御信号が入力される場合について説明するが、特に汎用レジスタ３７に限られず、専用レジスタ３８にも同様の信号が入力される構成とすることも当然に可能である。
【００４０】
図７は、本実施の形態１に従う汎用レジスタ群の配置構成を説明する図である。
図７を参照して、ここでは、汎用レジスタ群として複数の汎用レジスタ３７（Ｒ０〜Ｒ１５）が設けられ、各々の汎用レジスタの構成が同様の構成として設けられている。そして、各汎用レジスタ３７（Ｒ０〜Ｒ１５）のそれぞれに対して電源ＯＮ／ＯＦＦ連動制御信号が入力される。各汎用レジスタ３７は、複数のレジスタユニットＲＵ０〜ＲＵ３１を有し、本例においては、一例として３２ビットのデータを格納可能に設けられている。当該配置構成に示されるように各汎用レジスタ３７の構成が同様の構成であるためレイアウトが容易である。
【００４１】
図８は、本実施の形態１に従う汎用レジスタ３７の構成を説明する図である。
図８を参照して、汎用レジスタ３７は、複数ビット（ｂｉｔ０〜３１）のデータを格納するために複数のレジスタユニットＲＵ０〜ＲＵ３１を有し、各レジスタユニットＲＵ毎に、フリップフロップ回路と、フリップフロップ回路で記憶するデータを退避／復帰させるための不揮発性記憶素子（ＮＶ０〜ＮＶ３１）とが設けられる。各レジスタユニットＲＵの構成は同様の構成である。
【００４２】
各レジスタユニットＲＵに含まれるそれぞれのフリップフロップ回路は、内部バス等のバス線と接続されて、必要に応じて転送される演算データやアドレス情報等のデータを記憶する。
【００４３】
本例においては、各レジスタユニットＲＵ毎に共通にインバータＩＶ０を介して電源ＯＮ連動制御信号が入力される。また、各レジスタユニットＲＵ共通に電圧供給配線ＶＬが不揮発性記憶素子に対して設けられ、当該電圧供給配線ＶＬの電圧レベルを設定するための転送制御回路３９が設けられる。
【００４４】
図９は、本実施の形態１に従う汎用レジスタ３７の１ビットのデータを記憶する構成の一部を説明する図である。
【００４５】
図９を参照して、フリップフロップ回路を構成するＰチャネルＭＯＳトランジスタＰＴ１，ＰＴ２と、ＮチャネルＭＯＳトランジスタＮＴ１〜ＮＴ３とが設けられる。ＰチャネルＭＯＳトランジスタＰＴ１とＮチャネルＭＯＳトランジスタＮＴ１とは電源電圧ＶＤＤとノードＮＦとの間に接続され、そのゲートは記憶ノードＮＤと接続される。記憶ノードＮＤはビット線ＢＬと接続される。
【００４６】
ＰチャネルＭＯＳトランジスタＰＴ２とＮチャネルＭＯＳトランジスタＮＴ２とは電源電圧ＶＤＤとノードＮＦとの間に接続され、そのゲートは記憶ノードＮＥと接続される。記憶ノードＮＤはビット線ＢＬと接続される。ＮチャネルＭＯＳトランジスタＮＴ３は、ノードＮＦと接地電圧ＧＮＤとの間に接続され、そのゲートは、インバータＩＶ０を介して電源ＯＮ連動制御信号（制御信号ＳＯＮとも称する）の入力を受ける。
【００４７】
ＰチャネルＭＯＳトランジスタＰＴ１とＮチャネルＭＯＳトランジスタＮＴ１との接続ノードは、記憶ノードＮＤと接続される。また、ＰチャネルＭＯＳトランジスタＰＴ２とＮチャネルＭＯＳトランジスタＮＴ２との接続ノードは、記憶ノードＮＤと接続される。当該構成によりラッチが形成される。なお、ここでは、省略されているがビット線ＢＬは、内部バス等と電気的に接続されており、内部バス等から転送される演算データやアドレス情報等のデータを当該フリップフロップ回路でラッチすることが可能である。
【００４８】
また、不揮発性記憶素子として抵抗素子ＲＥ１，ＲＥ２が電圧供給配線ＶＬとビット線ＢＬ，／ＢＬとの間にそれぞれ設けられる。
【００４９】
また、電圧供給配線の電圧レベルを設定する転送制御回路３９が設けられる。
転送制御回路３９は、電源電圧ＶＤＤと電圧供給配線ＶＬとの間に設けられたＰチャネルＭＯＳトランジスタＰＴ３と、電源電圧ＶＤＤ／２と電圧供給配線ＶＬとの間に設けられたＮチャネルＭＯＳトランジスタＮＴ４とを含む。
【００５０】
ＰチャネルＭＯＳトランジスタＰＴ３のゲートは、遅延段ＩＶＧおよびインバータＩＶ０を介して電源ＯＮ連動制御信号の入力を受ける。
【００５１】
また、ＮチャネルＭＯＳトランジスタＮＴ４は、電源ＯＦＦ連動制御信号（制御信号ＳＯＦＦとも称する）の入力を受ける。
【００５２】
なお、電源電圧ＶＤＤあるいは電源電圧ＶＤＤ／２は、マイコン１の外部から供給される電源電圧を受けて、降圧回路等により内部で生成された内部電源電圧である。
【００５３】
図１０は、本実施の形態１に従う汎用レジスタ３７の動作について説明するタイミングチャート図である。
【００５４】
図１０を参照して、まず、マイコン１について電源ＯＦＦされた場合のデータ退避の動作について説明する。
【００５５】
なお、ここでは、フリップフロップ回路でデータがラッチされているものとする。具体的には、記憶ノードＮＤ，ＮＥは、「Ｌ」レベル（０Ｖ）および「Ｈ」レベル（２Ｖ）にラッチされているものとする。
【００５６】
電源ＯＦＦされた場合に、パワーマネジメント制御部４は、時刻Ｔ１において電源ＯＦＦ連動制御信号（制御信号ＳＯＦＦ）を「Ｈ」レベル（２Ｖ）に設定して出力する。初期状態は「Ｌ」レベルである。
【００５７】
制御信号ＳＯＦＦ（「Ｈ」レベル）の入力に従い転送制御回路３９のＮチャネルＭＯＳトランジスタＮＴ４がオンする。これにより電圧供給配線ＶＬの電圧レベルが１Ｖに設定される（ノードＮＣ）。
【００５８】
ここで、記憶ノードＮＤは「Ｌ」レベル（０Ｖ）であり、記憶ノードＮＥは「Ｈ」レベル（２Ｖ）であるため、当該記憶ノードのそれぞれと電圧供給配線ＶＬ（１Ｖ）との間に電位差が生じる。
【００５９】
本例の場合には、当該電位差に従って記憶ノードＮＤ側において、電圧供給配線ＶＬから抵抗素子ＲＥ１への方向に対して電流が供給される。また、当該電位差に従って記憶ノードＮＥ側において、抵抗素子ＲＥ２から電圧供給配線ＶＬへの方向に対して電流が供給される。すなわち、抵抗素子ＲＥ１，ＲＥ２において、互いを流れる電流の向きは逆向きである。
【００６０】
本例においては、一例として、抵抗素子ＲＥ１，ＲＥ２は、スピン注入方式のトンネル磁気抵抗素子であり、流れる電流の向きに従って抵抗値が変化する。具体的には、抵抗素子ＲＥ１は低抵抗値（Ｒｍｉｎ）となり、抵抗素子ＲＥ２は高抵抗値（Ｒｍａｘ）に遷移する。
【００６１】
これによりフリップフロップ回路でラッチされたデータを不揮発性記憶素子に対してデータ記憶させることが可能である。
【００６２】
なお、電源電圧ＶＤＤは、時刻の経過に従って０Ｖに遷移する。
なお、本例においては、マイコン１について電源ＯＦＦされた場合の動作について説明したが、電源電圧が基準電圧よりも低下した場合についても同様にパワーマネジメント制御部４から制御信号ＳＯＦＦが出力されて同様の動作が実行される。
【００６３】
これらの一連の動作は、各汎用レジスタ３７（Ｒ０〜Ｒ１５）の各ｂｉｔ０〜３１に対して並列的に行われるので、短時間で電源オフ直前の状態をフリップフロップ回路から不揮発性記憶素子へ格納させることが可能である。
【００６４】
図１１は、本実施の形態１に従う汎用レジスタ３７の動作について説明する別のタイミングチャート図である。
【００６５】
図１１を参照して、マイコン１について電源ＯＮされた場合のデータ復帰の動作について説明する。
【００６６】
なお、ここでは、不揮発性記憶素子にデータが記憶されているものとする。具体的には、抵抗素子ＲＥ１，ＲＥ２は、それぞれ低抵抗値（Ｒｍｉｎ）、高抵抗値（Ｒｍａｘ）に設定されているものとする。
【００６７】
電源ＯＮに伴い電源電圧ＶＤＤの電圧レベルが上昇し、パワーマネジメント制御部４は、時刻Ｔ２において電源ＯＮ連動制御信号（制御信号ＳＯＮ）を「Ｈ」レベル（２Ｖ）に設定して出力する。
【００６８】
制御信号ＳＯＮ（「Ｈ」レベル）の入力に従いノードＮＡの電圧レベルが０Ｖとなる。これによりＮチャネルＭＯＳトランジスタＮＴ３がオフする。
【００６９】
次に、制御信号ＳＯＮ（「Ｈ」レベル）の反転信号（「Ｌ」レベル）が遅延してＰチャネルＭＯＳトランジスタＰＴ３のゲートに入力される。これにより、転送制御回路３９のＰチャネルＭＯＳトランジスタＰＴ３がオンし電圧供給配線ＶＬは電源電圧ＶＤＤ（２Ｖ）に設定される。
【００７０】
ここで、電圧供給配線ＶＬは、抵抗素子ＲＥ１，ＲＥ２と接続され、それぞれ低抵抗値（Ｒｍｉｎ）、高抵抗値（Ｒｍａｘ）に設定されているため記憶ノードＮＤ，ＮＥは、抵抗素子ＲＥ１，ＲＥ２の抵抗値に従って互いに電位差が生じ始める。そして、記憶ノードＮＤは「Ｌ」レベル（０Ｖ）、記憶ノードＮＥは「Ｈ」レベル（２Ｖ）に遷移してフリップフロップ回路においてラッチ状態となる。すなわち、不揮発性記憶素子でデータ記憶していたデータをロードして図１０でフリップフロップ回路においてラッチされていたデータに復帰させることが可能となる。
【００７１】
なお、本例においては、マイコン１について電源ＯＮされた場合の動作について説明したが、電源電圧が低下した後、再び基準電圧以上となった場合についても同様にパワーマネジメント制御部４から制御信号ＳＯＮが出力されて同様の動作が実行される。
【００７２】
これらの一連の動作は、各汎用レジスタ３７（Ｒ０〜Ｒ１５）の各ｂｉｔ０〜３１に対して並列的に行われるので、短時間で不揮発性記憶素子に記憶されたデータをフリップフロップ回路にロードして電源オフ直前の状態へ復帰させることが可能である。
【００７３】
（実施の形態２）
上記においては、マイコンの電源をオン・オフ等する場合に、汎用レジスタのデータを一括して汎用レジスタ内部の不揮発性記憶素子を用いてデータ退避およびデータ復帰させる場合について説明した。同様に、割り込み命令や、サブルーチン命令を実行する場合についても同様に適用する構成について説明する。
【００７４】
図１２は、本実施の形態２に従うＣＰＵの割り込み処理の概念について説明する図である。
【００７５】
図１２を参照して、進行中のプログラムに対して、外部からの割り込み要求を受けたとき、マイコンが割り込みを受け付けられる状態の場合に、実行しているプログラムを一時中断して他のプログラムを実行する。そして、他のプログラムが処理された後、進行中のプログラムに復帰する。
【００７６】
図１３は、本実施の形態２に従うＣＰＵの割り込み処理のフローについて説明する図である。
【００７７】
図１３を参照して、メイン処理において進行中のプログラムに対して割り込み要求信号を受け付けた場合にメイン処理は中断し、割り込み処理が開始される（ステップＳ２）。具体的には、割り込み制御部１６からの割り込み要求信号がＣＰＵ１０に入力されると現在進行中のプログラムを一時中断し、割り込み時に行うプログラムへ切り換え実行される。
【００７８】
次に、割り込み処理が開始されると、ＰＵＳＨ命令に従ってＣＰＵ内部のレジスタのデータが退避される（ステップＳ４）。具体的には、割り込み制御部１６から命令バスを経由して割り込み要求信号がＣＰＵ１０に入力された場合、ＣＰＵ１０内部の命令デコーダ２０に入る。そして、次に命令シーケンサ２２で処理されて内部命令ユニットに分解される。そして、制御信号パイプライン２４でクロック単位での順次処理に変えられて、内部のハードウェアが制御される。例えば、割り込み処理に係る汎用レジスタが指定されてデータを退避させる命令であるＰＵＳＨ命令が内部命令バスを介して与えられる。そして、汎用レジスタのデータが退避される。
【００７９】
そして、次に、割り込み処理用のプログラム（割り込み受付命令）の実行処理が行われる（ステップＳ６）。
【００８０】
割り込み処理用のプログラムの実行処理が終了後、ＰＯＰ命令に従って退避したＣＰＵ内部のレジスタのデータが復帰される（ステップＳ８）。具体的には、実行処理が完了した場合に、割り込み制御部１６から命令バスを経由して復帰命令がＣＰＵ１０に入力される。ＣＰＵ１０内部の命令デコーダでデコード処理された後、命令シーケンサ２２、制御信号パイプライン２４で処理されて、例えば、復帰させる汎用レジスタが指定されてデータを復帰させる命令であるＰＯＰ命令が内部命令バスを介して与えられる。そして、汎用レジスタのデータが復帰される。
【００８１】
そして、割り込み処理から復帰する（ステップＳ１０）。
これにより、中断していたメイン処理が再開される。
【００８２】
次に、サブルーチン命令の実行処理について説明する。
図１４は、本実施の形態２に従うＣＰＵにおけるサブルーチン命令の実行処理のフローについて説明する図である。
【００８３】
図１４を参照して、サブルーチン命令の実行も図１３で説明した割り込み処理と同様である。
【００８４】
具体的には、メイン処理において、サブルーチン分岐命令が入ると、サブルーチン処理が開始される（ステップＳ１２）。
【００８５】
次に、サブルーチン処理が開始されると、ＰＵＳＨ命令に従ってＣＰＵ内部のレジスタのデータが退避される（ステップＳ１４）。
【００８６】
そして、サブルーチン処理用のプログラムの実行処理が行われる（ステップＳ１６）。
サブルーチン処理用のプログラムが終了後、ＰＯＰ命令に従って退避したＣＰＵ内部のレジスタのデータが復帰される（ステップＳ１８）。
【００８７】
そして、サブルーチン処理から復帰する（ステップＳ２０）。
そして、中断していたメイン処理が再開される。
【００８８】
本実施の形態２においては、割り込み処理あるいはサブルーチン処理の際のＰＵＳＨ命令あるいはＰＯＰ命令に従ってレジスタ内部の不揮発性記憶素子を用いてデータ退避あるいはデータ復帰させる方式について説明する。
【００８９】
図１５は、本実施の形態２に従う汎用レジスタ群とパワーマネジメント制御部４との関係を説明する概略図である。
【００９０】
図１５を参照して、本例においては、図６で説明したのと同様に、パワーマネジメント制御部４から汎用レジスタ群を制御する制御信号が出力される。
【００９１】
また、汎用レジスタ群として複数の汎用レジスタ３７と置換される複数の汎用レジスタ３７＃（Ｒ０〜Ｒ１５）が設けられている場合が示されている。
【００９２】
そして、パワーマネジメント制御部４から出力される電源ＯＮ／ＯＦＦ連動制御信号は、それぞれ汎用レジスタ３７＃（Ｒ０〜Ｒ１５）に入力される。
【００９３】
また、内部命令バス等と接続されるＯＲ回路ＯＲ０が設けられて、各汎用レジスタ３７＃に対して入力されるＰＯＰ命令信号を受けて、ＯＲ論理演算結果をＰＯＰ命令制御信号として各汎用レジスタ３７＃に入力する。
【００９４】
また、内部命令バス等と接続されるＯＲ回路ＯＲ１が設けられて、各汎用レジスタ３７＃に対して入力されるＰＵＳＨ命令信号を受けて、ＯＲ論理演算結果をＰＵＳＨ命令制御信号として各汎用レジスタ３７＃に入力する。
【００９５】
一般に、内部命令バスを介して与えられるＰＵＳＨ命令やＰＯＰ命令は汎用レジスタ番号（Ｒ０〜Ｒ１５）を指定した形態で発せられるため、本例においては、ＯＲ回路ＯＲ０，ＯＲ１を用いてＯＲ論理演算結果を出力する方式としている。これにより、いずれの汎用レジスタを指定するＰＯＰ命令あるいはＰＵＳＨ命令が与えられた場合であっても、すべての汎用レジスタ３７＃に対して共通にＰＯＰ命令制御信号あるいはＰＵＳＨ命令制御信号が入力される。
【００９６】
図１６は、本実施の形態２に従う汎用レジスタ群の配置構成を説明する図である。
図１６を参照して、ここでは、汎用レジスタ群として複数の汎用レジスタ３７＃（Ｒ０〜Ｒ１５）が設けられ、各々の汎用レジスタの構成が同様の構成として設けられている。そして、各汎用レジスタ３７＃（Ｒ０〜Ｒ１５）のそれぞれに対して電源ＯＮ／ＯＦＦ連動制御信号およびＰＯＰ命令制御信号、ＰＵＳＨ命令制御信号が入力される。各汎用レジスタ３７＃は、本例においては、一例として３２ビットのデータを格納可能に設けられている。当該配置構成に示されるように各汎用レジスタ３７＃の構成が同様の構成であるためレイアウトが容易である。
【００９７】
図１７は、本実施の形態２に従う汎用レジスタ３７＃の構成を説明する図である。
図１７を参照して、汎用レジスタ３７＃は、複数ビット（ｂｉｔ０〜３１）のデータを格納するために複数のレジスタユニットＲＵ０〜ＲＵ３１を有し、各レジスタユニットＲＵ毎に、フリップフロップ回路と、フリップフロップ回路で記憶するデータを退避／復帰させるための不揮発性記憶素子（ＮＶ０〜ＮＶ３１）とが設けられる。各レジスタユニットＲＵの構成は同様の構成である。基本的には、汎用レジスタ３７と同様の構成であり、転送制御回路３９を転送制御回路３９＃に置換した点と、インバータＩＶ０をＮＯＲ回路ＮＯＲ３に置換した点とが異なる。その他の部分については同様である。
【００９８】
それぞれのフリップフロップ回路は、内部バス等のバス線と接続されて、必要に応じて転送される演算データやアドレス情報等のデータを記憶する。
【００９９】
図１８は、本実施の形態２に従う汎用レジスタ３７＃の１ビットのデータを記憶する構成の一部を説明する図である。
【０１００】
図１８を参照して、図９の構成と比較して、転送制御回路３９＃は、転送制御回路３９と比較してさらにＯＲ回路ＯＲ３を設けた点が異なる。
【０１０１】
ＯＲ回路ＯＲ３は、電源ＯＦＦ連動制御信号（制御信号ＳＯＦＦ）とＰＵＳＨ命令制御信号（制御信号ＳＰＵとも称する）とのＯＲ論理演算結果をＮチャネルＭＯＳトランジスタＮＴ４のゲートに出力する。その他の構成については同様であるのでその詳細な説明は繰り返さない。
【０１０２】
また、ＮＯＲ回路ＮＯＲ０は、電源ＯＮ連動制御信号（制御信号ＳＯＮ）とＰＯＰ命令制御信号（制御信号ＳＰＯとも称する）とのＮＯＲ論理演算結果をＮチャネルＭＯＳトランジスタＮＴ３のゲートに出力する。その他の構成については同様であるのでその詳細な説明は繰り返さない。
【０１０３】
図１９は、本実施の形態２に従う汎用レジスタ３７の動作について説明するタイミングチャート図である。
【０１０４】
図１９を参照して、まず、マイコン１について割り込み処理を実行する場合のデータ退避の動作について説明する。
【０１０５】
なお、ここでは、フリップフロップ回路でデータがラッチされているものとする。具体的には、記憶ノードＮＤ，ＮＥは、「Ｌ」レベル（０Ｖ）および「Ｈ」レベル（２Ｖ）にラッチされているものとする。
【０１０６】
割り込み要求信号を受け付けて割り込み処理が開始された場合に、ＰＵＳＨ命令が割り込みに係る汎用レジスタ３７＃を指定して内部命令バスを介して出力される。これにより時刻Ｔ３において、ＯＲ回路ＯＲ１はＰＵＳＨ命令を受けて、ＰＵＳＨ命令制御信号（制御信号ＳＰＵ）を「Ｈ」レベル（２Ｖ）に設定して出力する。
【０１０７】
制御信号ＳＰＵ（「Ｈ」レベル）の入力に従い転送制御回路３９＃のＯＲ回路ＯＲ３の出力が「Ｈ」レベルとなり、ＮチャネルＭＯＳトランジスタＮＴ４がオンする。これにより電圧供給配線ＶＬの電圧レベルが１Ｖに設定される（ノードＮＣ）。
【０１０８】
ここで、記憶ノードＮＤは「Ｌ」レベル（０Ｖ）であり、記憶ノードＮＥは「Ｈ」レベル（２Ｖ）であるため、当該記憶ノードのそれぞれと電圧供給配線ＶＬ（１Ｖ）との間に電位差が生じる。
【０１０９】
本例の場合には、当該電位差に従って記憶ノードＮＤ側において、電圧供給配線ＶＬから抵抗素子ＲＥ１への方向に対して電流が供給される。また、当該電位差に従って記憶ノードＮＥ側において、抵抗素子ＲＥ２から電圧供給配線ＶＬへの方向に対して電流が供給される。すなわち、抵抗素子ＲＥ１，ＲＥ２において、互いを流れる電流の向きは逆向きである。
【０１１０】
本例においては、一例として、抵抗素子ＲＥ１，ＲＥ２は、スピン注入方式のトンネル磁気抵抗素子であり、流れる電流の向きに従って抵抗値が変化する。具体的には、抵抗素子ＲＥ１は低抵抗値（Ｒｍｉｎ）となり、抵抗素子ＲＥ２は高抵抗値（Ｒｍａｘ）に遷移する。
【０１１１】
これによりフリップフロップ回路でラッチされたデータを不揮発性記憶素子に対してデータ記憶させることが可能である。
【０１１２】
これらの一連の動作は、各汎用レジスタ３７＃（Ｒ０〜Ｒ１５）の各ｂｉｔ０〜３１に対して並列的に行われるので、すべての汎用レジスタについて割り込み命令実行中は使用可能となる。したがって、割り込み命令の逐次処理中に、追加で使う汎用レジスタがある場合であってもＰＵＳＨ命令を追加で出力する必要がなく、そのまま割り込み処理を実行することが可能であるため高速に割り込み処理を実行することが可能である。
【０１１３】
なお、本例においては、割り込み処理について説明しているが、サブルーチン処理についても同様である。
【０１１４】
図２０は、本実施の形態２に従う汎用レジスタ３７＃の動作について説明する別のタイミングチャート図である。
【０１１５】
図２０を参照して、マイコン１について割り込み処理後のデータ復帰の動作について説明する。
【０１１６】
なお、ここでは、不揮発性記憶素子にデータが記憶されているものとする。具体的には、抵抗素子ＲＥ１，ＲＥ２は、それぞれ低抵抗値（Ｒｍｉｎ）、高抵抗値（Ｒｍａｘ）に設定されているものとする。
【０１１７】
割り込み処理終了後、ＰＯＰ命令が割り込みに係る汎用レジスタ３７＃を指定して内部命令バスを介して出力される。これにより時刻Ｔ４において、ＯＲ回路ＯＲ０はＰＯＰ命令を受けて、ＰＯＰ命令制御信号（制御信号ＳＰＯ）を「Ｈ」レベル（２Ｖ）に設定して出力する。
【０１１８】
制御信号ＳＰＯ（「Ｈ」レベル）の入力に従いＮＯＲ回路ＮＯＲ０の出力が「Ｌ」レベルとなり、ノードＮＡの電圧レベルが０Ｖとなる。これによりＮチャネルＭＯＳトランジスタＮＴ３がオフする。
【０１１９】
次に、制御信号ＳＰＯ（「Ｈ」レベル）の反転信号（「Ｌ」レベル）が遅延してＰチャネルＭＯＳトランジスタＰＴ３のゲートに入力される。これにより、転送制御回路３９＃のＰチャネルＭＯＳトランジスタＰＴ３がオンし電圧供給配線ＶＬは電源電圧ＶＤＤ（２Ｖ）に設定される。
【０１２０】
ここで、電圧供給配線ＶＬは、抵抗素子ＲＥ１，ＲＥ２と接続され、それぞれ低抵抗値（Ｒｍｉｎ）、高抵抗値（Ｒｍａｘ）に設定されているため記憶ノードＮＤ，ＮＥは、抵抗素子ＲＥ１，ＲＥ２の抵抗値に従って互いに電位差が生じ始める。そして、記憶ノードＮＤは「Ｌ」レベル（０Ｖ）、記憶ノードＮＥは「Ｈ」レベル（２Ｖ）に遷移してフリップフロップ回路においてラッチ状態となる。すなわち、不揮発性記憶素子でデータ記憶していたデータをロードしてフリップフロップ回路においてラッチされていたデータに復帰させることが可能となる。
【０１２１】
なお、本例においては、割り込み処理について説明しているが、サブルーチン処理についても同様である。
【０１２２】
なお、電源ＯＮ／ＯＦＦ連動制御信号が入力された場合の動作については、実施の形態１で説明したのと同様であるのでその詳細な説明は繰り返さない。
【０１２３】
（実施の形態２の変形例）
上記においては、汎用レジスタ群に対して一括してＰＯＰ命令制御信号およびＰＵＳＨ命令制御信号が入力される構成について説明したが、個別に制御する構成とすることも可能である。
【０１２４】
図２１は、本実施の形態２の変形例に従う汎用レジスタ群とパワーマネジメント制御部４との関係を説明する概略図である。
【０１２５】
図２１を参照して、図１５の構成と比較して、本例においては、ＯＲ回路ＯＲ０，ＯＲ１を除くとともに、汎用レジスタ３７＃に対して、指定されたＰＯＰ命令あるいはＰＵＳＨ命令が直接入力される構成である点が異なる。その他の構成については上記の実施の形態２で説明したのと同様であるのでその詳細な説明は繰り返さない。
【０１２６】
図２２は、本実施の形態２の変形例に従う割り込み制御における汎用レジスタ群に対する命令の一例を説明する図である。
【０１２７】
図２２を参照して、本例においては、割り込み命令中に、ＰＵＳＨ命令およびＰＯＰ命令が各３回入力された場合が示されている。つまり、割り込み命令では汎用レジスタを３個だけ使用した場合が示されている。
【０１２８】
使用する汎用レジスタを指定してＰＵＳＨ命令およびＰＯＰ命令に従い、指定された汎用レジスタ３７＃内部のフリップフロップ回路と不揮発性記憶素子との間で、データの転送が行われる。
【０１２９】
当該方式により、必要最小限の汎用レジスタの処理のみ実行するため不揮発性記憶素子への書き込み、読み出しにかかる消費電力を実施の形態２よりも低減することが可能である。
【０１３０】
（その他の構成）
図２３は、本実施の形態に従う記憶素子の構成を説明する図である。
【０１３１】
図２３を参照して、上記で説明した磁性体記憶素子（トンネル磁気抵抗素子）の構造が示されている。トンネル磁気抵抗素子は、２つの固定層ＦＫ，ＦＭと、その間に挟まれた自由層ＦＬとから構成され、上部の固定層ＦＫと上部電極ＵＭ、下部の固定層ＦＭと下部電極ＤＭとが接続されている。トンネル磁気抵抗素子の上下の電位差に基づく通過する電流方向に従って、高抵抗値Ｒｍａｘ、低抵抗値Ｒｍｉｎの２状態に設定することが可能である。記憶に利用する原理は、一般的な磁性体メモリの書き込み方式であるスピン注入方式を用いることが可能である。
【０１３２】
図２４は、本実施の形態に従う別の記憶素子の構成を説明する図である。
図２４を参照して、別の記憶素子として、抵抗変化型記憶素子の構造が示されている。抵抗変化型記憶素子は、チタン層ＴＭと、酸化ハフニウム層ＨＭとから構成され、上部のチタン層ＴＭと上部電極ＵＭ、下部に酸化ハフニウム層ＨＭと下部電極ＤＭとが接続されている。抵抗変化型記憶素子の上下の電界のかかる方向で、抵抗体に酸化もしくは還元が起こり、抵抗の大小が生じて、この状態を記憶することが可能である。記憶に利用する原理は、一般的な抵抗変化型メモリ（ＲｅＲＡＭ）の書き込み原理を用いることが可能であり、抵抗体の酸化・還元による抵抗値の変化を利用することができる。
【０１３３】
図２５は、本実施の形態に従うさらに別の記憶素子の構成を説明する図である。
図２５を参照して、さらに別の記憶素子として、強誘電体メモリの記憶素子を用いることも可能である。本例においては、強誘電体素子Ｃ０，Ｃ１がプレート線ＰＬとビット線ＢＬ，／ＢＬとの間にそれぞれ設けられている場合が示されている。各強誘電体素子の上下電極は、Ｐｔ／ＴｉＮ等で形成される。また、上下電極の間にチタン酸ジルコン酸鉛膜（ＰＺＴ）等の材料で形成される強誘電体膜が設けられる。上下電極間の電界方向の向きに応じて強誘電体膜の結晶構造が分極反転し、その状態を記憶することが可能である。記憶に利用する原理は、一般的な強誘電体メモリ（ＦｅＲＡＭ）の書き込み原理を用いることが可能であり、強誘電体膜のヒステリシスを利用し正負の自発分極の変化を利用することができる。
【０１３４】
また、記憶素子として相変化メモリであるＯＵＭ（Ovonic Unified Memory）を利用することも可能である。
【０１３５】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は、実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【０１３６】
１  マイコン、２  クロック発振制御部、４  パワーマネジメント制御部、６  ＲＯＭ、８  ＲＡＭ、１０  ＣＰＵ、１２  タイマ、１６  割り込み制御部、２０  命令デコーダ、２２  命令シーケンサ、２４  制御信号パイプライン、２６  例外処理、２８  乗算器、３２  パラレルシフタ、３４  バイパス、３６  レジスタファイル、３７  汎用レジスタ、３８  専用レジスタ、３８Ａ  プログラムカウンタ、３８Ｂ  プログラムステータスレジスタ、３８Ｃ  リターンポインタ、３８Ｄ  システムスタックポインタ、３８Ｅ  ユーザスタックポインタ、３９  転送制御回路。
【図１】
2014002819.tif 000003
【図２】
2014002819.tif 000004
【図３】
2014002819.tif 000005
【図４】
2014002819.tif 000006
【図５】
2014002819.tif 000007
【図６】
2014002819.tif 000008
【図７】
2014002819.tif 000009
【図８】
2014002819.tif 000010
【図９】
2014002819.tif 000011
【図１０】
2014002819.tif 000012
【図１１】
2014002819.tif 000013
【図１２】
2014002819.tif 000014
【図１３】
2014002819.tif 000015
【図１４】
2014002819.tif 000016
【図１５】
2014002819.tif 000017
【図１６】
2014002819.tif 000018
【図１７】
2014002819.tif 000019
【図１８】
2014002819.tif 000020
【図１９】
2014002819.tif 000021
【図２０】
2014002819.tif 000022
【図２１】
2014002819.tif 000023
【図２２】
2014002819.tif 000024
【図２３】
2014002819.tif 000025
【図２４】
2014002819.tif 000026
【図２５】
2014002819.tif 000027