(57)【要約】  本発明は、不揮発性記憶部にデータを書き込むことによる消費エネルギーを削減することができるようにする半導体装置に関する。書込制御回路３４は、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２が記憶するデータと同一のデータを記憶する。書込制御回路３４は、スレーブラッチ３２に保持されているデータをＭＴＪ素子ＭＴＪ１、ＭＴＪ２に記憶させるストア時に、内部に記憶されているデータとスレーブラッチ３２が保持するデータとを比較して、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２への書込みを行うか否かを制御する。書込制御回路３４は、内部に記憶されているデータと、スレーブラッチ３２が保持するデータとが一致する場合は、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２にデータの書き込ませない制御を行う。
2016208407.tif 000002
【特許請求の範囲】
【請求項１】
フリップフロップと、
前記フリップフロップが保持するデータを記憶する不揮発性記憶部と、
自装置に対する電源電圧またはグランド電圧の供給が遮断される場合に、前記不揮発性記憶部に記憶されているデータと前記フリップフロップが保持するデータとが同一でない場合は、前記フリップフロップが保持するデータを前記不揮発性記憶部に書き込ませる制御を行い、前記不揮発性記憶部に記憶されているデータと前記フリップフロップに保持されているデータとが同一の場合は、前記フリップフロップが保持するデータを前記不揮発性記憶部に書き込ませない制御を行う書込制御部と、
を備えた半導体装置。
【請求項２】
前記書込制御部は、前記不揮発性記憶部に記憶されているデータを記憶し、記憶している当該データと、前記フリップフロップが保持するデータとを比較した比較結果に基づいて前記制御を行う、
請求項１に記載の半導体装置。
【請求項３】
前記フリップフロップと前記不揮発性記憶部との間の接続及び切断を切り替える第１スイッチ素子をさらに備え、
前記書込制御部は、前記書き込ませる制御を行う場合は、前記第１スイッチ素子により前記フリップフロップと前記不揮発性記憶部との間を接続させ、前記書き込ませない制御を行う場合は、前記第１スイッチ素子により前記フリップフロップと前記不揮発性記憶部との間を切断させる制御を行う、
請求項１または請求項２に記載の半導体装置。
【請求項４】
自装置に対する電源電圧またはグランド電圧の供給が遮断された後に当該供給が再開された場合は、前記不揮発性記憶部に書き込まれたデータを復元させるために外部から入力される復元制御信号に応じて、前記不揮発性記憶部に書き込まれたデータを復元する復元部をさらに備えた、
請求項１から請求項３のいずれか１項に記載の半導体装置。
【請求項５】
前記復元部は、前記復元制御信号に応じて前記フリップフロップと前記不揮発性記憶部との間の接続及び切断を切り替える第２スイッチ素子を備えた、
請求項４に記載の半導体装置。
【請求項６】
前記不揮発性記憶部は、磁気トンネル接合素子である、
請求項１から請求項５のいずれか１項に記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置に関する。
【背景技術】
【０００２】
一般的に、半導体集積回路（ＬＳＩ：Large Scale Integration circuit）の消費電力を低下させる技術として、半導体チップ内部の回路（内部回路）に供給する電源電圧を遮断し、内部回路をいわゆるスリープ状態にするパワーゲーティングと呼ばれる技術が知られている。パワーゲーティングに関する技術として、電源電圧の供給を遮断することにより内部状態や内部データが消失することを防止するための技術がある。例えば、特許文献１には、揮発性レジスタ及び不揮発性レジスタを設け、電源電圧の供給を遮断する場合に、揮発性レジスタから不揮発性レジスタにデータを退避させ、電源電圧の供給を再開する場合に、不揮発性レジスタから揮発性レジスタにデータを復元する技術が記載されている。【０００３】
このように電源電圧の供給を遮断する場合に、内部状態や内部データを記憶させる不揮発性記憶部として例えば、特許文献２には、ＭＴＪ（Magnetic Tunnel Junction：磁気トンネル接合）素子を用いた不揮発性フリップフロップ回路が記載されている。【０００４】
図１１には、不揮発性記憶部としてＭＴＪ素子を用いた従来の不揮発性フリップフロップ回路の回路図の一例を示す。図１１に示した不揮発性フリップフロップ回路１０１６は、マスターラッチ１０３０、スレーブラッチ１０３２、ＰＭＯＳトランジスタＰ５、６、及びＭＴＪ素子ＭＴＪ１、ＭＴＪ２を備える。マスターラッチ１０３０は、インバータＩＶ１、ＩＶ２、ＮＡＮＤ（Not And）回路ＮＡＮＤ１、及びトランスファーゲートＴＧ１〜ＴＧ３を備える。また、スレーブラッチ１０３２は、インバータＩＶ５、ＩＶ６、ＰＭＯＳトランジスタＰ７、ＮＡＮＤ回路ＮＡＮＤ２、及びトランスファーゲートＴＧ４を備える。トランスファーゲートＴＧ１〜ＴＧ４は、クロック信号ＣＬＫがインバータＩＶ１０により反転されたクロック信号ＣＢと、インバータＩＶ１０の出力がインバータＩＶ１１により反転されたクロック信号Ｃ（クロック信号ＣＬＫと同じ論理値）とにより制御される。【０００５】
図１１に示した従来の不揮発性フリップフロップ回路１０１６では、パワーゲーティングにより電源電圧の供給を遮断する場合に、制御信号ＳＲの論理値を「０」にし、制御信号ＳＲがゲートに印加されるＰＭＯＳトランジスタＰ５〜Ｐ７をオン状態にさせる。そして、制御信号ＣＴＲＬの論理値として「１」及び「０」を順次与えることにより、スレーブラッチ１０３２が保持している１ビットの情報をＭＴＪ素子ＭＴＪ１、ＭＴＪ２に書き込むことができる。パワーゲーティング終了後は、電源電圧の供給を再開させ、制御信号ＳＲの論理値を「０」にし、ＰＭＯＳトランジスタＰ５〜Ｐ７をオン状態にすることにより、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２の抵抗値の差を利用して、上記書き込みを行った際の内部回路状態をスレーブラッチ１０３２に復元させることができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１４−２２５２５１号公報
【特許文献２】特開２０１５−３５６５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
図１１に示した不揮発性フリップフロップ回路１０１６では、電源電圧の供給が遮断された後も、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２にデータを保持し続けることが可能である（不揮発化）。これにより、パワーゲーティングを行い不揮発性フリップフロップ回路１０１６や出力信号Ｑによって駆動する内部回路をスリープ状態にすることにより、消費されるエネルギーを抑制することができる。さらに、パワーゲーティングを行う前後で内部回路の状態や内部データを保持することが可能となる。【０００８】
しかしながら、図１１に示したような従来の不揮発性フリップフロップ回路１０１６では、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２にデータを書き込む場合に多大なエネルギーが消費されるという問題点がある。【０００９】
すなわち、不揮発性フリップフロップ回路１０１６がパワーゲーティング時に保持しているデータをＭＴＪ素子ＭＴＪ１、ＭＴＪ２に記憶させるためには、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２に比較的大きな電流を流す必要がある。ＭＴＪ素子ＭＴＪ１、ＭＴＪ２に流す電流が大きいと、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２の書き込み時の消費エネルギーが大きくなる。パワーゲーティングを行っている期間（スリープ期間）が比較的短い場合には、電源電圧の供給を遮断しているにもかかわらず、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２の書き込みエネルギーのオーバーヘッドによって消費エネルギーがかえって増えてしまう場合がある。また、スリープ期間が比較的長い場合でも、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２の書き込みエネルギーが大きいと、パワーゲーティングにより削減可能な消費エネルギーが少なくなってしまうという問題点がある。【００１０】
本発明は上記問題点を解決するためになされたものであり、不揮発性記憶部にデータを書き込むことによる消費エネルギーを削減することができる半導体装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の第１の態様は、半導体装置であって、フリップフロップと、前記フリップフロップが保持するデータを記憶する不揮発性記憶部と、自装置に対する電源電圧またはグランド電圧の供給が遮断される場合に、前記不揮発性記憶部に記憶されているデータと前記フリップフロップが保持するデータとが同一でない場合は、前記フリップフロップが保持するデータを前記不揮発性記憶部に書き込ませる制御を行い、前記不揮発性記憶部に記憶されているデータと前記フリップフロップに保持されているデータとが同一の場合は、前記フリップフロップが保持するデータを前記不揮発性記憶部に書き込ませない制御を行う書込制御部と、を備える。【００１２】
また、本発明の第２の態様は、上記第１の態様において、前記書込制御部は、前記不揮発性記憶部に記憶されているデータを記憶し、記憶している当該データと、前記フリップフロップが保持するデータとを比較した比較結果に基づいて前記制御を行う。【００１３】
また、本発明の第３の態様は、上記第１の態様または第２の態様において、前記フリップフロップと前記不揮発性記憶部との間の接続及び切断を切り替える第１スイッチ素子をさらに備え、前記書込制御部は、前記書き込ませる制御を行う場合は、前記第１スイッチ素子により前記フリップフロップと前記不揮発性記憶部との間を接続させ、前記書き込ませない制御を行う場合は、前記第１スイッチ素子により前記フリップフロップと前記不揮発性記憶部との間を切断させる制御を行う。【００１４】
また、本発明の第４の態様は、上記第１の態様から第３の態様のいずれか１態様において、自装置に対する電源電圧またはグランド電圧の供給が遮断された後に当該供給が再開された場合は、前記不揮発性記憶部に書き込まれたデータを復元させるために外部から入力される復元制御信号に応じて、前記不揮発性記憶部に書き込まれたデータを復元する復元部をさらに備える。【００１５】
また、本発明の第５の態様は、上記第１の態様から第４の態様のいずれか１態様において、前記復元部は、前記復元制御信号に応じて前記フリップフロップと前記不揮発性記憶部との間の接続及び切断を切り替える第２スイッチ素子を備える。【００１６】
また、本発明の第６の態様は、上記第１の態様から第５の態様のいずれか１態様において前記不揮発性記憶部は、磁気トンネル接合素子である。
【発明の効果】
【００１７】
本発明によれば、不揮発性記憶部にデータを書き込むことによる消費エネルギーを削減することができる、という効果が得られる。
【図面の簡単な説明】
【００１８】
【図１】第１の実施形態の半導体装置の一例を示すブロック図である。
【図２】第１の実施形態の不揮発性フリップフロップ回路の回路図である。
【図３】第１の実施形態に係るＭＴＪ素子の層構成及び動作を説明するための概略断面図である。
【図４】第１の実施形態に係るＭＴＪ素子の動作の説明に関する電圧対抵抗値のグラフである。
【図５】第１実施形態の不揮発性フリップフロップ回路における入力信号Ｄの論理値が「１」の場合の制御シーケンスを表すタイムチャートである。
【図６】第１実施形態の不揮発性フリップフロップ回路における入力信号Ｄの論理値が「０」の場合の制御シーケンスを表すタイムチャートである。
【図７】第２の実施形態の不揮発性フリップフロップ回路の回路図である。
【図８】第３の実施形態の不揮発性フリップフロップ回路の回路図である。
【図９】第３実施形態の不揮発性フリップフロップ回路における入力信号Ｄの論理値が「１」の場合の制御シーケンスを表すタイムチャートである。
【図１０】第４の実施形態の不揮発性フリップフロップ回路の回路図である。
【図１１】従来の不揮発性フリップフロップ回路の回路図である。
【発明を実施するための形態】
【００１９】
以下、図面を参照して本発明に係る実施形態の例を説明する。なお、各図面において同一機能を有する部分には同一符号が付されており、重複する説明は適宜、省略する。
【００２０】
［第１の実施形態］
まず、本実施形態の半導体集積回路の構成について説明する。図１は、本実施形態の半導体集積回路１０の一例を示すブロック図である。
【００２１】
本実施形態の半導体集積回路１０は、スリープ制御回路１２、パワースイッチ１４、不揮発性フリップフロップ回路１６、及び内部回路１８を備えている。
【００２２】
本実施形態の半導体集積回路１０は、内部回路１８等に供給する電源電圧ＶＤＤＶを遮断し、いわゆるスリープ状態にすることにより、消費電力を抑制する機能を有する。
【００２３】
スリープ制御回路１２は、上記スリープ状態（電源電圧ＶＤＤＶの供給状態）を制御する機能を有している。本実施形態のスリープ制御回路１２は、スリープ制御信号ＰＳ＿ＥＮをパワースイッチ１４へ出力する。また、スリープ制御回路１２は、詳細を後述する制御信号Ｓａｖｅ、ＳＲ１、ＳＲ２、及びＣＴＲＬを不揮発性フリップフロップ回路１６へ出力する。
【００２４】
パワースイッチ１４は、スリープ制御信号ＰＳ＿ＥＮに応じて電源電圧ＶＤＤＶの供給を遮断する機能を有する。図２に示すように本実施形態のパワースイッチ１４は、具体例としてＰＭＯＳトランジスタＰ１０を用いている。ＰＭＯＳトランジスタＰ１０のゲートはスリープ制御回路１２に接続されており、スリープ制御回路１２からスリープ制御信号ＰＳ＿ＥＮが入力される。
【００２５】
ＰＭＯＳトランジスタＰ１０のソースは電源電圧ＶＤＤを供給する電源線に接続され、ドレインは電源電圧ＶＤＤＶを供給する電源線に接続されている。本実施形態の半導体集積回路１０では、スリープ状態に移行しない回路は電源電圧ＶＤＤにより駆動する。一方、スリープ状態に移行する回路は電源電圧ＶＤＤＶにより駆動する。なお、本実施形態では、スリープ制御回路１２の制御により、パワーゲーティングが行われスリープ状態に移行することができる回路領域（電源電圧ＶＤＤＶで駆動する領域）を「ＰＧ（パワーゲーティング）領域」という。
【００２６】
具体的には、通常の動作を行う通常状態では、スリープ制御回路１２からパワースイッチ１４へ論理値が「０」（Ｌｏｗレベル）のスリープ制御信号ＰＳ＿ＥＮが出力される。これにより、パワースイッチ１４のＰＭＯＳトランジスタＰ１０はオン状態となり、電源電圧ＶＤＤＶが供給される。一方、パワーゲーティング時のスリープ状態では、スリープ制御回路１２からパワースイッチ１４へ論理値が「１」（Ｈｉｇｈレベル）のスリープ制御信号ＰＳ＿ＥＮが出力される。これにより、パワースイッチ１４のＰＭＯＳトランジスタＰ１０はオフ状態となり、電源電圧ＶＤＤＶの供給が遮断され、電源電圧ＶＤＤＶにより駆動するＰＧ領域の回路の駆動が停止し、スリープ状態となる。
【００２７】
内部回路１８は特に限定されるものではなく、ユーザ等の要求に応じた機能を有する回路であればよい。なお、内部回路１８は、複数の機能（回路）を含んでいてもよい。また、内部回路１８は、電源電圧ＶＤＤにより駆動する回路及び電源電圧ＶＤＤＶにより駆動する回路（ＰＧ領域）の両者を含んでいてもよいし、一方の回路のみであってもよい。
【００２８】
本発明の半導体装置として機能する不揮発性フリップフロップ回路１６は、入力信号Ｄを保持（ラッチ）して、入力信号Ｄに応じた（同じ論理値（レベル）の）出力信号Ｑを出力する機能を有する。本実施形態の不揮発性フリップフロップ回路１６は、ＰＧ領域であり、電源電圧ＶＤＤＶにより駆動する。
【００２９】
図２には、本実施形態の不揮発性フリップフロップ回路１６の回路図を示す。図２に示すように、本実施形態の不揮発性フリップフロップ回路１６は、Ｄ型フリップフロップであるマスターラッチ３０及びスレーブラッチ３２と、書込制御回路３４と、を備える。
【００３０】
マスターラッチ３０は、不揮発性フリップフロップ回路１６の外部から入力された入力信号Ｄをクロック信号ＣＬＫに応じたタイミングで取り込んで保持する機能を有する。
【００３１】
マスターラッチ３０は、インバータＩＶ１〜ＩＶ３、及びトランスファーゲートＴＧ１〜ＴＧ３を備える。インバータＩＶ１には不揮発性フリップフロップ回路１６の外部から入力信号Ｄが入力される。
【００３２】
トランスファーゲートＴＧ１〜ＴＧ３は、クロック信号ＣＬＫによりオン（ＯＮ）及びオフ（ＯＦＦ）が制御される。なお、トランスファーゲートＴＧ１と、トランスファーゲートＴＧ２及びＴＧ３とでは、クロック信号ＣＬＫによりオン、オフするタイミングが逆になっている。
【００３３】
スレーブラッチ３２は、マスターラッチ３０から出力されたデータをクロック信号ＣＬＫに応じたタイミングで取り込んで保持し、入力信号Ｄと同じ論理値の出力信号Ｑを不揮発性フリップフロップ回路１６の外部に出力する機能を有する。
【００３４】
スレーブラッチ３２は、インバータＩＶ４〜ＩＶ６、トランスファーゲートＴＧ４、及びＮＭＯＳトランジスタＮ７を備える。トランスファーゲートＴＧ４は、クロック信号ＣＬＫによりオン及びオフが制御される。また、ＮＭＯＳトランジスタＮ７は、制御信号ＳＲ１によりオン及びオフが制御される。トランスファーゲートＴＧ１及びＴＧ４は、クロック信号ＣＬＫによりオン、オフするタイミングが同一になっている。
【００３５】
スレーブラッチ３２のインバータＩＶ６からは、出力信号Ｑが不揮発性フリップフロップ回路１６の外部（内部回路１８）に出力される。
【００３６】
本実施形態のマスターラッチ３０及びスレーブラッチ３２によるフリップフロップ動作について説明する。
【００３７】
クロック信号ＣＬＫの論理値が「１」から「０」になると、トランスファーゲートＴＧ１、ＴＧ４はオン状態、トランスファーゲートＴＧ２、ＴＧ３はオフ状態になる。これにより、マスターラッチ３０では入力信号Ｄが取り込まれ、スレーブラッチ３２ではクロック信号ＣＬＫの論理値が「０」になる前に取り込んだ信号が保持される。
【００３８】
次にクロック信号ＣＬＫの論理値が「０」から「１」になると、トランスファーゲートＴＧ１、ＴＧ４はオフ状態、トランスファーゲートＴＧ２、ＴＧ３はオン状態になる。これにより、マスターラッチ３０では、クロック信号ＣＬＫの論理値が「１」になる前に取り込んだ信号が保持され、スレーブラッチ３２ではマスターラッチ３０のトランスファーゲートＴＧ３から出力された信号が取り込まれ、取り込まれた信号と同じ論理値の出力信号ＱがインバータＩＶ６から出力される。
【００３９】
本実施形態の書込制御回路３４は、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２に書き込んだデータと同一のデータを一時的に保持し、該データと、現在スレーブラッチ３２に保持されているデータとの比較を行う。そして書込制御回路３４は、比較結果に基づいてＭＴＪ素子ＭＴＪ１、ＭＴＪ２にスレーブラッチ３２に保持されているデータの書き込みを行うか否かを制御する。書込制御回路３４は、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２に記憶されているデータと、スレーブラッチ３２に保持されているデータとが一致する場合は、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２にデータの書き込みを行わない制御を行う。
【００４０】
具体的には、本実施形態の書込制御回路３４は、図２に示すようにインバータＩＶ８、ＩＶ９、トランスファーゲートＴＧ５、ＴＧ６、各々２入力のＮＥＯＲ（Not Exclusive OR）回路ＮＥＯＲ１、及びＮＯＲ（Not OR）回路ＮＯＲ１を備えている。
【００４１】
トランスファーゲートＴＧ５の入力端子はスレーブラッチ３２のインバータＩＶ４の入力端子（マスターラッチ３０のトランスファーゲートＴＧ３の出力端子）に接続されている。また、トランスファーゲートＴＧ５の出力端子は、インバータＩＶ８の入力端子及びトランスファーゲートＴＧ６の出力端子に接続されている。インバータＩＶ９の出力端子はトランスファーゲートＴＧ６の入力端子に接続されている。トランスファーゲートＴＧ５、ＴＧ６は制御信号Ｓａｖｅによりオン及びオフが制御される。なお、トランスファーゲートＴＧ５と、トランスファーゲートＴＧ６とでは、制御信号Ｓａｖｅによりオン、オフするタイミングが逆になっている。
【００４２】
ＮＥＯＲ回路ＮＥＯＲ１の一方の入力端子には、インバータＩＶ８の出力端子及びインバータＩＶ９の入力端子が接続されている。また、ＮＥＯＲ回路ＮＥＯＲ１の他方の入力端子には、スレーブラッチ３２のインバータＩＶ４の出力端子（インバータＩＶ６の入力端子）が接続されている。
【００４３】
ＮＯＲ回路ＮＯＲ１の一方の入力端子には制御信号ＳＲ２が入力される。また、他方の入力端子には、ＮＥＯＲ回路ＮＥＯＲ１の出力端子が接続されている。ＮＯＲ回路ＮＯＲ１からは出力信号ｓｅｌｅｃｔＷが出力される。
【００４４】
さらに、図２に示すように本実施形態の不揮発性フリップフロップ回路１６は、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２、及びＮＭＯＳトランジスタＮ１〜Ｎ６を備える。なお、ＮＭＯＳトランジスタＮ２、Ｎ３が本発明の第１スイッチ素子の一例であり、ＮＭＯＳトランジスタＮ１、Ｎ４が本発明の復元部及び第２スイッチ素子の一例である。また、ＮＭＯＳトランジスタＮ１、Ｎ４に入力される制御信号ＳＲ２が本発明の復元制御信号の一例である。
【００４５】
ここで、本発明の不揮発性記憶部の一例であるＭＴＪ素子ＭＴＪ１、ＭＴＪ２について説明する。図３には、本実施形態に係るＭＴＪ素子ＭＴＪ１、ＭＴＪ２の層構成及び動作を説明するための概略断面図を示す。また、図４には、本実施形態に係るＭＴＪ素子ＭＴＪ１、ＭＴＪ２の動作の説明に関する電圧対抵抗値のグラフを示す。図３に示すようにＭＴＪ素子は、磁性を有し磁気の方向が変化する自由層（Free layer)２０と、磁性を有し磁気の方向が一定のＳＡＦ（Synthetic anti-ferromagnetic）のピン層（Pinned layer)２３と、の間にトンネルバリア層（Tunnel barrier layer）２２を有する。ピン層２３は、固定層（Reference layer）２４を有している。また、ＭＴＪ素子は、下地層（Under layer）２６、及び下部電極（Bottom electrode）２８を有する。
【００４６】
ＭＴＪ素子は、図４に示すようにＭＴＪ素子に印加する電圧の大きさに応じて抵抗値が変化する。そのため、自由層２０からピン層２３へ向かう方向に電流を流すと、自由層２０の磁化方向がピン層２３と同一になってＭＴＪ素子は低抵抗となり、論理値が「０」のデータを記憶した状態となる。一方、ピン層２３から自由層２０へ向かう方向に電流を流すと、自由層２０の磁化方向がピン層２３と反対になってＭＴＪ素子は高抵抗となり、論理値が「１」のデータを記憶した状態となる。
【００４７】
ＭＴＪ素子に記憶されたデータ（情報）は、電源電圧ＶＤＤＶの供給が遮断されても保持される。そのため本実施形態の不揮発性フリップフロップ回路１６は、パワーゲーティングを行う場合、電源電圧ＶＤＤＶが遮断されてスリープ状態に移行する前に、スレーブラッチ３２が保持しているデータをＭＴＪ素子ＭＴＪ１、ＭＴＪ２に書き込んで記憶させる。また、不揮発性フリップフロップ回路１６は、スリープ状態から復帰する場合は、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２に書き込まれているデータをスレーブラッチ３２へ読み出して復元する。
【００４８】
なお、本実施形態では、スレーブラッチ３２が保持しているデータをＭＴＪ素子ＭＴＪ１、ＭＴＪ２に記憶させる動作を「ストア」という。また、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２からデータを読み出しスレーブラッチ３２に復元させる動作を「リストア」という。
【００４９】
本実施形態のＭＴＪ素子ＭＴＪ１、ＭＴＪ２は、自由層２０側が制御信号ＣＴＲＬが流れる制御信号線に接続されている。ＭＴＪ素子ＭＴＪ１のピン層２３側はＮＭＯＳトランジスタＮ５の一端（ソース）に接続されており、ＭＴＪ素子ＭＴＪ２のピン層２３側はＮＭＯＳトランジスタＮ６の一端（ソース）に接続されている。
【００５０】
ＮＭＯＳトランジスタＮ５は一端（ソース）がＭＴＪ素子ＭＴＪ１に接続されており、他端（ドレイン）がＮＭＯＳトランジスタＮ１、Ｎ２の一端（ソース）に接続されている。一方、ＮＭＯＳトランジスタＮ６は一端（ソース）がＭＴＪ素子ＭＴＪ２に接続されており、他端（ドレイン）がＮＭＯＳトランジスタＮ３、Ｎ４の一端（ソース）に接続されている。ＮＭＯＳトランジスタＮ５、Ｎ６は、制御信号ＳＲ１によりオン及びオフが制御される。
【００５１】
ＮＭＯＳトランジスタＮ１、Ｎ２は他端（ドレイン）がスレーブラッチ３２（インバータＩＶ４の入力端子）に接続されている。また、ＮＭＯＳトランジスタＮ３、Ｎ４は他端（ドレイン）がスレーブラッチ３２（インバータＩＶ４の出力端子）に接続されている。ＮＭＯＳトランジスタＮ１、Ｎ４は、制御信号ＳＲ２によりオン及びオフが制御される。また、ＮＭＯＳトランジスタＮ２、Ｎ３は、書込制御回路３４から出力される出力信号ｓｅｌｅｃｔＷによりオン及びオフが制御される。
【００５２】
次に、本実施形態の不揮発性フリップフロップ回路１６の動作について説明する。図５には、本実施形態の不揮発性フリップフロップ回路１６の制御シーケンスを表すタイムチャートを示す。なお、図５では、論理値が「１」（Ｈｉｇｈレベル）の入力信号Ｄを不揮発性フリップフロップ回路１６が取り込んで保持する場合を示している。
【００５３】
まず、Ｉｎｉｔｉａｌ（初期）ステートにおいて、スリープ制御回路１２から不揮発性フリップフロップ回路１６に入力される制御信号ＳＲ２の論理値は「１」である。一方、制御信号ＳＲ１の論理値を「０」から「１」へ変化させ、制御信号ＳＲ１の論理値が「１」である期間に制御信号ＣＴＲＬの論理値を「０」から「１」へ、さらに「１」から「０」へと変化させることにより、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２を初期化する。ＭＴＪ素子ＭＴＪ１、ＭＴＪ２を初期化した後、再び制御信号ＳＲ１の論理値を「０」にする。さらに、制御信号Ｓａｖｅの論理値を「１」にして書込制御回路３４内に記憶されているデータを初期化した後、再び制御信号Ｓａｖｅの論理値を「０」にする。
【００５４】
次に、マスターラッチ３０及びスレーブラッチ３２に入力信号Ｄを取り込むＡｃｔｉｖｅステートに移行する。図５に示したＡｃｔｉｖｅ１ステートでは、制御信号ＳＲ１及び制御信号Ｓａｖｅの論理値を「０」にする。制御信号ＳＲ１の論理値が「０」のため、ＮＭＯＳトランジスタＮ７はオフ状態である。また、制御信号Ｓａｖｅの論理値が「０」のため、トランスファーゲートＴＧ５はオフ状態であり、トランスファーゲートＴＧ６はオン状態である。
【００５５】
この状態でクロック信号ＣＬＫをトグルさせることにより、マスターラッチ３０及びスレーブラッチ３２は通常のフリップフロップと同様の動作を行い、上述したように入力信号Ｄを取り込んで保持する。
【００５６】
次に、パワーゲーティングを行う場合には、まずスレーブラッチ３２に保持されているデータをＭＴＪ素子ＭＴＪ１、ＭＴＪ２にストアする。この動作を行うのがＳｔｏｒｅステートである。Ｓｔｏｒｅステートでは、制御信号ＳＲ１の論理値を「１」、制御信号ＳＲ２の論理値を「０」に設定する。Ｓｔｏｒｅステートでは、動作として以下の２つの場合が生ずる。
【００５７】
１つ目は、図５においてＳｔｏｒｅ１と記された場合であり、書込制御回路３４内に記憶されているデータ（ＭＴＪ素子ＭＴＪ１、ＭＴＪ２に記憶されているデータ）と、スレーブラッチ３２内に保持されているデータとが異なる場合の動作である。
【００５８】
ＮＥＯＲ回路ＮＥＯＲ１の一方の入力端子にはインバータＩＶ８から書込制御回路３４内に記憶されているデータが入力される。また、ＮＥＯＲ回路ＮＥＯＲ１の他方の入力端子にはインバータＩＶ４からスレーブラッチ３２内に保持されているデータが入力される。ＮＥＯＲ回路ＮＥＯＲ１は、入力される２つのデータのレベルが一致しない場合は論理値が「０」の信号を出力する。そのため、ＮＯＲ回路ＮＯＲ１の一方の入力端子には論理値が「０」の制御信号ＳＲ２が入力され、他方の入力端子にはＮＥＯＲ回路ＮＥＯＲ１から論理値が「０」の信号が入力される。従って、ＮＯＲ回路ＮＯＲ１から出力される出力信号ｓｅｌｅｃｔＷの論理値は「１」になる。
【００５９】
出力信号ｓｅｌｅｃｔＷの論理値が「１」であるため、ＮＭＯＳトランジスタＮ２、Ｎ３がオン状態になる。制御信号ＳＲ１の論理値が「１」であり、ＮＭＯＳトランジスタＮ５〜Ｎ７がオン状態であるので、制御信号ＣＴＲＬの論理値を「０」から「１」へ、さらに「１」から「０」へと変化させることにより、スレーブラッチ３２とＭＴＪ素子ＭＴＪ１、ＭＴＪ２との間で電流が流れ、スレーブラッチ３２に保持されているデータがＭＴＪ素子ＭＴＪ１、ＭＴＪ２に書き込まれる。この場合に、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２に電流が流れるため、書き込みエネルギーが消費される。
【００６０】
これに対し、Ｓｔｏｒｅステートの２つ目は、図５においてＳｒｏｒｅ２と記された場合であり、書込制御回路３４内に記憶されているデータと、スレーブラッチ３２内に保持されているデータとが同一である場合の動作である。
【００６１】
ＮＥＯＲ回路ＮＥＯＲ１は、入力される２つのデータのレベルが一致する場合は論理値が「１」の信号を出力する。そのため、この場合はＮＯＲ回路ＮＯＲ１の一方の入力端子には論理値が「０」の制御信号ＳＲ２が入力され、他方の入力端子にはＮＥＯＲ回路ＮＥＯＲ１から論理値が「１」の信号が入力される。従って、ＮＯＲ回路ＮＯＲ１から出力される出力信号ｓｅｌｅｃｔＷの論理値は「０」になる。
【００６２】
出力信号ｓｅｌｅｃｔＷの論理値が「０」であるため、ＮＭＯＳトランジスタＮ２、Ｎ３がオフ状態になる。ＮＭＯＳトランジスタＮ１、Ｎ４もオフ状態であるため、ＮＭＯＳトランジスタＮ５、Ｎ６がオン状態であっても、スレーブラッチ３２とＭＴＪ素子ＭＴＪ１、ＭＴＪ２との間には電流経路は生成されず、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２にデータは書き込まれない。このとき、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２には電流が流れないため、書き込みエネルギーは消費されない。
【００６３】
Ｓｔｏｒｅステートでの動作を行った後、Ｓｌｅｅｐステートに移行する。Ｓｌｅｅｐステートでは、スリープ制御信号ＰＳ＿ＥＮの論理値を「１」に設定することにより、パワースイッチ１４のＰＭＯＳトランジスタＰ１０をオフ状態にし、ＰＧ領域の電源電圧（電源電圧ＶＤＤＶ）の供給を遮断する。電源電圧の遮断中は、ＰＧ領域の回路内部の電荷はリークによって放電するため、スレーブラッチ３２内の各ノードの電圧が０Ｖになる。そのため、出力信号Ｑの論理値は、図５に示すように「１」から「０」へ徐々に変化する。
【００６４】
また、Ｓｌｅｅｐステートでは、制御信号ＳＲ１の論理値が「０」であるため、ＮＭＯＳトランジスタＮ５、Ｎ６はオフ状態である。
【００６５】
次に、Ｓｌｅｅｐステートを終了し、通常動作に復帰するためにリストアを行う。この動作を行うのがＲｅｓｔｏｒｅ（図５のＲｅｓｔｏｒｅ１、Ｒｅｓｔｏｒｅ２）ステートである。Ｒｅｓｔｏｒｅステートでは、スリープ制御信号ＰＳ＿ＥＮの論理値を「１」から「０」にし、また、制御信号ＳＲ１の論理値を「０」から「１」にし、制御信号ＳＲ２の論理値を「１」に保つ。
【００６６】
この場合、スリープ制御信号ＰＳ＿ＥＮの論理値が「０」になるため、パワースイッチ１４のＰＭＯＳトランジスタＰ１０がオン状態になり、ＰＧ領域に対して電源電圧ＶＤＤＶの供給が再開される。また、制御信号ＳＲ１の論理値が「１」になるため、ＮＭＯＳトランジスタＮ５〜Ｎ７がオン状態になる。さらに、制御信号ＳＲ２の論理値が「１」であるため、ＮＭＯＳトランジスタＮ１、Ｎ４がオン状態になる。そのため、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２に記憶されているデータがスレーブラッチ３２に書き込まれる。これによって、電源電圧ＶＤＤＶの遮断前にスレーブラッチ３２に保持されていたデータが復元できる。
【００６７】
また、Ｒｅｓｔｏｒｅステートでは、スレーブラッチ３２へのデータの復元が完了したタイミングで、制御信号ＳＲ１の論理値を「１」から「０」にし、制御信号Ｓａｖｅの論理値を「０」から「１」にする。制御信号ＳＲ１の論理値が「０」になるため、ＮＭＯＳトランジスタＮ５〜Ｎ７がオフ状態になる。また、制御信号Ｓａｖｅの論理値が「１」になるため、トランスファーゲートＴＧ５はオン状態になり、トランスファーゲートＴＧ６はオフ状態になる。そのため、スレーブラッチ３２へ復元したデータと同一のデータが、書込制御回路３４内に記憶される。
【００６８】
以上の動作により、本実施形態の不揮発性フリップフロップ回路１６では、リストアにおいて、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２に記憶されている最新のデータが、常に書込制御回路３４内に記憶される。このため、その後マスターラッチ３０及びスレーブラッチ３２によるフリップフロップの通常動作（Ａｃｔｉｖｅステート）を続け、再びストアを行う場合にも、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２に記憶されているデータを、書込制御回路３４内に記憶されているデータによって代替することができる。
【００６９】
書込制御回路３４は、ストア時に、内部に記憶されているデータとスレーブラッチ３２が保持するデータとを比較して、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２への書き込みを行うか否かを切り替えることができる。書込制御回路３４には、内部に記憶されているデータと、スレーブラッチ３２が保持するデータとが一致する場合は、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２にデータの書き込みを行わないよう制御する。従って、本実施形態の不揮発性フリップフロップ回路１６は、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２への無駄な書き込み動作を抑制することができ、無駄な書き込みエネルギーの消費を抑えることができる。
【００７０】
なお、上記では、論理値が「１」の入力信号Ｄを取り込んで保持する場合の不揮発性フリップフロップ回路１６の動作について図５を参照して詳細に説明したが、論理値が「０」の入力信号Ｄを保持する場合の不揮発性フリップフロップ回路１６の動作も同様である。図６には、入力信号Ｄの論理値が「０」の場合の本実施形態の不揮発性フリップフロップ回路１６の制御シーケンスを表すタイムチャートを示す。
【００７１】
図６に示すように、Ａｃｔｉｖｅ１ステートでは、クロック信号ＣＬＫをトグルさせることにより、マスターラッチ３０及びスレーブラッチ３２は通常のフリップフロップと同様の動作を行い、上述したように入力信号Ｄを取り込んで保持する。入力信号Ｄの論理値が「０」であるため、図６に示した場合では、出力信号「Ｑ」の論理値も「０」になり、Ｓｔｏｒｅステート以降も「０」を維持する。また、出力信号Ｑの論理値が「０」の場合は、論理値が「１」である場合（図５参照）と異なり、Ｓｌｅｅｐステートでも論理値が変化することなく「０」のままである。
【００７２】
論理値が「０」の入力信号Ｄを保持する場合は、上述のように出力信号Ｑの論理が異なる他は、図６に示すように不揮発性フリップフロップ回路１６の動作、スリープ制御回路１２から出力される各種制御信号の状態やパワースイッチ１４の動作について、図５を参照して上述したものと同様であるため、ここでの詳細な説明を省略する。
【００７３】
このように本実施形態の半導体集積回路１０（不揮発性フリップフロップ回路１６）では、入力信号Ｄの論理値に係わらず、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２への無駄な書き込み動作を抑制することができる。
［第２の実施形態］
本実施形態の不揮発性フリップフロップ回路１６は、ＮＭＯＳトランジスタＮ１〜Ｎ６、ＮＥＯＲ回路ＮＥＯＲ１、及びＮＯＲ回路ＮＯＲ１の配置が第１の実施形態の不揮発性フリップフロップ回路１６と異なっている。なお、不揮発性フリップフロップ回路１６のその他の構成や半導体集積回路１０全体の構成は、第１の実施形態と同様のため、同様の部分については説明を省略する。
【００７４】
図７には、本実施形態の不揮発性フリップフロップ回路の回路図を示す。図７に示すように、ＮＭＯＳトランジスタＮ５、Ｎ６をスレーブラッチ３２側に接続し、ＮＭＯＳトランジスタＮ１〜Ｎ４をＭＴＪ素子ＭＴＪ１、ＭＴＪ２側に接続している。
【００７５】
具体的には、ＮＭＯＳトランジスタＮ５は他端（ドレイン）がスレーブラッチ３２（インバータＩＶ４の入力端子）に接続されている。また、ＮＭＯＳトランジスタＮ６は他端（ドレイン）がスレーブラッチ３２（インバータＩＶ４の出力端子）に接続されている。第１の実施形態と同様にＮＭＯＳトランジスタＮ５、Ｎ６は、制御信号ＳＲ１によりオン及びオフが制御される。
【００７６】
ＮＭＯＳトランジスタＮ１、Ｎ２は他端（ドレイン）がＮＭＯＳトランジスタＮ５の一端（ソース）に接続されており、一端（ソース）がＭＴＪ素子ＭＴＪ１に接続されている。一方、ＮＭＯＳトランジスタＮ３、Ｎ４は他端（ドレイン）がＮＭＯＳトランジスタＮ６の一端（ソース）に接続されており、一端（ソース）がＭＴＪ素子ＭＴＪ２に接続されている。第１の実施形態と同様にＮＭＯＳトランジスタＮ１、Ｎ４は、制御信号ＳＲ２によりオン及びオフが制御される。また、ＮＭＯＳトランジスタＮ２、Ｎ３は、書込制御回路３４から出力される出力信号ｓｅｌｅｃｔＷによりオン及びオフが制御される。
【００７７】
また、本実施形態の不揮発性フリップフロップ回路１６は、書込制御回路３４に備えられているＮＥＯＲ回路ＮＥＯＲ１及びＮＯＲ回路ＮＯＲ１の配置が異なっている。
【００７８】
図７に示すようにＮＯＲ回路ＮＯＲ１の一方の入力端子には制御信号ＳＲ２が入力される。また、他方の入力端子には、インバータＩＶ４の出力が入力される。また、ＮＥＯＲ回路ＮＥＯＲ１の一方の入力端子には、インバータＩＶ８の出力が入力され、他方の入力端子には、ＮＯＲ回路ＮＯＲ１の出力が入力される。ＮＥＯＲ回路ＮＥＯＲ１からは出力信号ｓｅｌｅｃｔＷが出力される。
【００７９】
本実施形態の不揮発性フリップフロップ回路１６の動作について説明する。
【００８０】
第１の実施形態において上述したＳｔｏｒｅステートにおいてＮＯＲ回路ＮＯＲ１は、制御信号ＳＲ２の論理値が「０」であるため、インバータＩＶ４の出力信号の論理値を反転した信号を出力する。そのため、ＮＥＯＲ回路ＮＥＯＲ１に入力される二つの信号は、書込制御回路３４に記憶されているデータと、スレーブラッチ３２が保持するデータとが一致している場合は論理値が異なり、両データが一致していない場合は論理値が同一になる。
【００８１】
ＮＥＯＲ回路ＮＥＯＲ１から出力される出力信号ｓｅｌｅｃｔＷは、書込制御回路３４に記憶されているデータと、スレーブラッチ３２が保持するデータとが一致している場合は論理値が「０」になり、一致していない場合は論理値が「１」になる。このように書込制御回路３４は、第１の実施形態で上述したＳｔｏｒｅステートと同様に出力信号ｓｅｌｅｃｔＷを出力する。
【００８２】
従って、第１の実施形態で説明した制御シーケンス（図２、６参照）と同様に動作させることにより、第１の実施形態の不揮発性フリップフロップ回路１６と同様の機能を実現できる。
［第３の実施形態］
本実施形態では、上記各実施形態の不揮発性フリップフロップ回路１６で用いていたＮＭＯＳトランジスタＮ１〜Ｎ７に代わりＰＭＯＳトランジスタを用いる場合について説明する。なお、上記各実施形態の不揮発性フリップフロップ回路１６及び半導体集積回路１０と同様の構成及び動作については説明を省略する。
【００８３】
図８には、本実施形態の不揮発性フリップフロップ回路の回路図を示す。図８に示すように、本実施形態の不揮発性フリップフロップ回路１１６は、上記各実施形態の不揮発性フリップフロップ回路１６におけるＮＭＯＳトランジスタＮ１〜Ｎ７に代わり、ＰＭＯＳトランジスタＰ１〜Ｐ７を備えている。なお、ＰＭＯＳトランジスタＰ２、Ｐ３が本発明の第１スイッチ素子の一例であり、ＰＭＯＳトランジスタＰ１、Ｐ４が本発明の復元部及び第２スイッチ素子の一例である。また、ＰＭＯＳトランジスタＰ１、Ｐ４に入力される制御信号ＳＲ２が本発明の復元制御信号の一例である。
【００８４】
そのため、本実施形態の半導体集積回路１１０では、パワースイッチ１１４も上記各実施形態のパワースイッチ１４と異なっている。本実施形態のパワースイッチ１１４は、図８に示すように具体例としてＮＭＯＳトランジスタＮ１０を用いている。ＮＭＯＳトランジスタＮ１０のゲートにはスリープ制御回路１２から出力されるスリープ制御信号ＰＳ＿ＥＮと論理値が反転した反転信号が入力される。
【００８５】
通常状態では、論理値が「１」の信号（スリープ制御信号ＰＳ＿ＥＮの反転信号）が入力されてＮＭＯＳトランジスタＮ１０がオン状態となり、ＶＧＮＤ電圧がＧＮＤ電圧に引き下げられる（ＶＧＮＤ＞ＧＮＤ）。一方、パワーゲーティングを行う場合には、論理値が「０」の信号（スリープ制御信号ＰＳ＿ＥＮの反転信号）が入力されてＮＭＯＳトランジスタＮ１０がオフ状態になり、ＰＧ領域に供給されるＧＮＤ電圧がＶＧＮＤ電圧に切り替わる。すなわち、通常状態（ＮＭＯＳトランジスタＮ１０がオン状態）の場合は、ＰＧ領域にはグランドとしてＧＮＤ電圧が供給される。一方、パワーゲーティングを行う場合（ＮＭＯＳトランジスタＮ１０がオフ状態）には、ＧＮＤ電圧の供給が遮断され、グランドがＶＧＮＤ電圧になる。この場合、ＶＧＮＤ＞ＧＮＤであり、グランドの電位が高くなったことにより、ＰＧ領域の回路の駆動が停止し、スリープ状態となる。
【００８６】
また、本実施形態の不揮発性フリップフロップ回路１１６では、ＰＭＯＳトランジスタＰ１〜Ｐ７を用いたことに応じて、書込制御回路１３４が備える論理回路も上記各実施形態と異なっている。
【００８７】
図８に示すように本実施形態の書込制御回路１３４は、論理回路としてＮＥＯＲ回路ＮＥＯＲ１及びＯＲ（OR）回路ＯＲ１を備える。
【００８８】
ＮＥＯＲ回路ＮＥＯＲ１の一方の入力端子にはインバータＩＶ８の出力が入力される。また、他方の入力端子にはインバータＩＶ４の出力が入力される。また、ＯＲ回路ＯＲ１の一方の入力端子には制御信号ＳＲ２の論理値を反転した反転信号が入力され、他方の入力端子にはＮＥＯＲ回路ＮＥＯＲ１の出力が入力される。ＯＲ回路ＯＲ１からは出力信号ｓｅｌｅｃｔＷが出力される。
【００８９】
次に、本実施形態の不揮発性フリップフロップ回路１１６の動作について説明する。図９には、本実施形態の不揮発性フリップフロップ回路１１６の制御シーケンスを表すタイムチャートを示す。なお、図９では、論理値が「１」の入力信号Ｄを不揮発性フリップフロップ回路１１６が取り込んで保持する場合を示している。
【００９０】
まず、Ｉｎｉｔｉａｌ（初期）ステートにおいて、スリープ制御回路１２から不揮発性フリップフロップ回路１１６に入力される制御信号ＳＲ２の論理値は「０」である。一方、制御信号ＳＲ１の論理値を「１」から「０」へ変化させ、制御信号ＳＲ１の論理値が「０」である期間に制御信号ＣＴＲＬの論理値を「１」から「０」へ、さらに「０」から「１」へと変化させることにより、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２を初期化する。ＭＴＪ素子ＭＴＪ１、ＭＴＪ２を初期化した後、再び制御信号ＳＲ１の論理値を「１」にする。さらに、制御信号Ｓａｖｅの論理値を「１」にして書込制御回路１３４内に記憶されているデータを初期化した後、再び制御信号Ｓａｖｅの論理値を「０」にする。
【００９１】
次に、マスターラッチ３０及びスレーブラッチ３２に入力信号Ｄを取り込むＡｃｔｉｖｅステートに移行する。図９に示したＡｃｔｉｖｅ１ステートでは、制御信号ＳＲ１の論理値を「１」に、制御信号Ｓａｖｅの論理値を「０」にする。制御信号ＳＲ１の論理値が「１」のため、ＰＭＯＳトランジスタＰ７はオフ状態である。また、制御信号Ｓａｖｅの論理値が「０」のため、トランスファーゲートＴＧ５はオフ状態であり、トランスファーゲートＴＧ６はオン状態である。
【００９２】
この状態でクロック信号ＣＬＫをトグルさせることにより、マスターラッチ３０及びスレーブラッチ３２は通常のフリップフロップと同様の動作を行い上述したように入力信号Ｄを取り込んで保持する。
【００９３】
次に、パワーゲーティングを行う場合には、まずスレーブラッチ３２に保持されているデータをＭＴＪ素子ＭＴＪ１、ＭＴＪ２にストアする。Ｓｔｏｒｅステートでは、制御信号ＳＲ１の論理値を「０」、制御信号ＳＲ２の論理値を「１」に設定する。
【００９４】
まず、書込制御回路３４内に記憶されているデータ（ＭＴＪ素子ＭＴＪ１、ＭＴＪ２に記憶されているデータ）と、スレーブラッチ３２内に保持されているデータとが異なる場合のＳｔｏｒｅ１ステートについて説明する。
【００９５】
ＮＥＯＲ回路ＮＥＯＲ１の一方の入力端子にはインバータＩＶ８から書込制御回路１３４内に記憶されているデータが入力される。また、ＮＥＯＲ回路ＮＥＯＲ１の他方の入力端子には、インバータＩＶ４からスレーブラッチ３２内に保持されているデータが入力される。ＮＥＯＲ回路ＮＥＯＲ１は、入力される２つのデータのレベルが一致しない場合は論理値が「０」の信号を出力する。
【００９６】
制御信号ＳＲ２の論理値が「１」であるため、ＯＲ回路ＯＲ１の一方の入力端子には制御信号ＳＲ２を反転した論理値が「０」の信号が入力され、他方の入力端子にはＮＥＯＲ回路ＮＥＯＲ１から論理値が「０」の信号が入力される。従って、ＯＲ回路ＯＲ１から出力される出力信号ｓｅｌｅｃｔＷの論理値は「０」になる。
【００９７】
出力信号ｓｅｌｅｃｔＷの論理値が「０」であるため、ＰＭＯＳトランジスタＰ２、Ｐ３がオン状態になる。制御信号ＳＲ１の論理値が「０」であり、ＰＭＯＳトランジスタＰ５〜Ｐ７がオン状態であるので、制御信号ＣＴＲＬの論理値を「１」から「０」へ、さらに「０」から「１」へと変化させることにより、スレーブラッチ３２とＭＴＪ素子ＭＴＪ１、ＭＴＪ２との間で電流が流れ、スレーブラッチ３２に保持されているデータがＭＴＪ素子ＭＴＪ１、ＭＴＪ２に書き込まれる。この場合に、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２に電流が流れるため、書き込みエネルギーが消費される。
【００９８】
これに対して、書込制御回路３４内に記憶されているデータと、スレーブラッチ３２内に保持されているデータとが同一である場合の動作であるＳｒｏｒｅ２ステートについて説明する。
【００９９】
ＮＥＯＲ回路ＮＥＯＲ１は、入力される２つのデータのレベルが一致する場合は論理値が「１」の信号を出力する。そのため、ＯＲ回路ＯＲ１の一方の入力端子には制御信号ＳＲ２を反転した論理値が「０」の信号が入力され、他方の入力端子にはＮＥＯＲ回路ＮＥＯＲ１から論理値が「１」の信号が入力される。従って、ＯＲ回路ＯＲ１から出力される出力信号ｓｅｌｅｃｔＷの論理値は「１」になる。
【０１００】
出力信号ｓｅｌｅｃｔＷの論理値が「１」であるため、ＰＭＯＳトランジスタＰ２、Ｐ３がオフ状態になる。ＰＭＯＳトランジスタＰ１、Ｐ４もオフ状態であるため、ＰＭＯＳトランジスタＰ５、Ｐ６がオン状態であっても、スレーブラッチ３２とＭＴＪ素子ＭＴＪ１、ＭＴＪ２との間には電流経路は生成されず、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２にデータは書き込まれない。このとき、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２には電流が流れないため、書き込みエネルギーは消費されない。
【０１０１】
Ｓｔｏｒｅステートでの動作を行った後、Ｓｌｅｅｐステートに移行する。Ｓｌｅｅｐステートでは、スリープ制御信号ＰＳ＿ＥＮの論理値を「１」に設定することにより、その反転信号により制御されるパワースイッチ１１４のＮＭＯＳトランジスタＮ１０をオフ状態にし、ＰＧ領域へのＧＮＤ電圧の供給を遮断する。ＧＮＤ電圧の遮断中は、ＰＧ領域の回路内部のすべてのノードは、電源電圧ＶＤＤからのリークによって充電されるため、スレーブラッチ３２内の各ノードの電圧が電源電圧ＶＤＤと同一になる。
【０１０２】
また、Ｓｌｅｅｐステートでは、制御信号ＳＲ１の論理値が「１」であるため、ＰＭＯＳトランジスタＰ５、Ｐ６はオフ状態である。
【０１０３】
次に、Ｓｌｅｅｐステートを終了し、通常動作に復帰するためにリストアを行う。Ｒｅｓｔｏｒｅステートでは、スリープ制御信号ＰＳ＿ＥＮの論理値を「１」から「０」にし、また、制御信号ＳＲ１の論理値を「１」から「０」にし、制御信号ＳＲ２の論理値を「０」に保つ。
【０１０４】
パワースイッチ１４のＮＭＯＳトランジスタＮ１０がオン状態になり、ＰＧ領域に対してＧＮＤ電圧の供給が再開され、グランドの電位がＶＧＮＤ電圧からＧＮＤ電圧に引き下げられる。また、制御信号ＳＲ１の論理値が「０」になるため、ＰＭＯＳトランジスタＰ５〜Ｐ７がオン状態になる。さらに、制御信号ＳＲ２の論理値が「０」であるため、ＰＭＯＳトランジスタＰ１、Ｐ４がオン状態になる。そのため、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２に記憶されているデータがスレーブラッチ３２に書き込まれる。これによって、ＧＮＤ電圧（グランド電圧）の遮断前にスレーブラッチ３２に保持されていたデータが復元できる。
【０１０５】
また、Ｒｅｓｔｏｒｅステートでは、スレーブラッチ３２へのデータの復元が完了したタイミングで、制御信号ＳＲ１の論理値を「０」から「１」にし、制御信号Ｓａｖｅの論理値を「０」から「１」にする。制御信号ＳＲ１の論理値が「１」になるため、ＰＭＯＳトランジスタＰ５〜Ｐ７がオフ状態になる。また、制御信号Ｓａｖｅの論理値が「１」になるため、トランスファーゲートＴＧ５はオン状態になり、トランスファーゲートＴＧ６はオフ状態になる。そのため、スレーブラッチ３２へ復元したデータと同一のデータが、書込制御回路３４内に記憶される。
【０１０６】
このように、本実施形態の不揮発性フリップフロップ回路１１６も、上記各実施形態の不揮発性フリップフロップ回路１６と同様の機能を実現できる。従って、本実施形態の不揮発性フリップフロップ回路１１６も、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２への無駄な書き込み動作を抑制することができ、無駄な書き込みエネルギーの消費を抑えることができる。
［第４の実施形態］
本実施形態の不揮発性フリップフロップ回路１１６は、ＰＭＯＳトランジスタＰ１〜Ｐ６の配置、及び書込制御回路１３４の論理回路が第３の実施形態の不揮発性フリップフロップ回路１１６と異なっている。不揮発性フリップフロップ回路１１６のその他の構成や半導体集積回路１１０全体の構成は、上記各実施形態と同様のため、同様の部分については説明を省略する。
【０１０７】
図１０には、本実施形態の不揮発性フリップフロップ回路の回路図を示す。図１０に示すように、ＰＭＯＳトランジスタＰ５、Ｐ６をスレーブラッチ３２側に接続し、ＰＭＯＳトランジスタＰ１〜Ｐ４をＭＴＪ素子ＭＴＪ１、ＭＴＪ２側に接続している。
【０１０８】
具体的には、ＰＭＯＳトランジスタＰ５は一端（ソース）がスレーブラッチ３２（インバータＩＶ４の入力）に接続されている。また、ＰＭＯＳトランジスタＰ６は一端（ソース）がスレーブラッチ３２（インバータＩＶ４の出力）に接続されている。第３の実施形態と同様にＰＭＯＳトランジスタＰ５、Ｐ６は、制御信号ＳＲ１によりオン及びオフが制御される。
【０１０９】
ＰＭＯＳトランジスタＰ１、Ｐ２は一端（ソース）がＰＭＯＳトランジスタＰ５の他端（ドレイン）に接続されており、他端（ドレイン）がＭＴＪ素子ＭＴＪ１に接続されている。一方、ＰＭＯＳトランジスタＰ３、Ｐ４は一端（ソース）がＰＭＯＳトランジスタＰ６の他端（ドレイン）に接続されており、他端（ドレイン）がＭＴＪ素子ＭＴＪ２に接続されている。第３の実施形態と同様にＰＭＯＳトランジスタＰ１、Ｐ４は、制御信号ＳＲ２によりオン及びオフが制御される。また、ＰＭＯＳトランジスタＰ２、Ｐ３は、書込制御回路１３４から出力される出力信号ｓｅｌｅｃｔＷによりオン及びオフが制御される。
【０１１０】
また、本実施形態の書込制御回路１３４は、図１０に示すように論理回路としてＮＯＲ回路ＮＯＲ１及びＥＯＲ（Exclusive OR）回路ＥＯＲ１を備えている。
【０１１１】
ＮＯＲ回路ＮＯＲ１の一方の入力端子には制御信号ＳＲ２の論理値が反転した反転信号が入力される。また、他方の入力端子には、インバータＩＶ４の出力が入力される。また、ＥＯＲ回路ＥＯＲ１の一方の入力端子には、インバータＩＶ８の出力が入力され、他方の入力端子には、ＮＯＲ回路ＮＯＲ１の出力が入力される。ＥＯＲ回路ＥＯＲ１からは出力信号ｓｅｌｅｃｔＷが出力される。
【０１１２】
本実施形態の不揮発性フリップフロップ回路１１６の動作について説明する。
【０１１３】
第３の実施形態において上述したＳｔｏｒｅステートにおいてＮＯＲ回路ＮＯＲ１は、制御信号ＳＲ２の論理値が「１」であり反転信号の論理値が「０」であるため、インバータＩＶ４の出力信号の論理値を反転した信号を出力する。そのため、ＥＯＲ回路ＥＯＲ１に入力される二つの信号は、書込制御回路１３４に記憶されているデータと、スレーブラッチ３２が保持するデータとが一致している場合は論理値が異なり、両データが一致していない場合は論理値が同じになる。
【０１１４】
ＥＯＲ回路ＥＯＲ１から出力される出力信号ｓｅｌｅｃｔＷは、書込制御回路１３４に記憶されているデータと、スレーブラッチ３２が保持するデータとが一致している場合は論理値が「１」になり、一致していない場合は論理値が「０」になる。このように書込制御回路１３４は、第３の実施形態で上述したＳｔｏｒｅステートと同様に出力信号ｓｅｌｅｃｔＷを出力する。
【０１１５】
従って、第３の実施形態で説明した制御シーケンス（図９参照）と同様に動作させることにより、第３の実施形態の不揮発性フリップフロップ回路１１６と同様の機能を実現できる。
【０１１６】
以上説明したように、上記各実施形態の不揮発性フリップフロップ回路１６（１１６）は、マスターラッチ３０、スレーブラッチ３２、書込制御回路３４（１３４）、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２、及びＮＭＯＳトランジスタＮ１〜Ｎ６（ＰＭＯＳトランジスタＰ１〜Ｐ６）を備える。
【０１１７】
書込制御回路３４（１３４）は、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２と同一のデータを一時的に記憶し、パワーゲーティングにより電源電力が遮断される場合（ストア）に、記憶しているデータとスレーブラッチ３２が保持するデータとの比較を行って、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２にデータを書き込むか否かを制御する。書込制御回路３４は出力信号ｓｅｌｅｃｔＷにより、記憶しているデータとスレーブラッチ３２が保持するデータとが一致しない場合は、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２にデータを書き込ませ、一致する場合は、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２にデータを書き込ませない制御を行う。
【０１１８】
上記各実施形態のＮＭＯＳトランジスタＮ２、Ｎ３（ＰＭＯＳトランジスタＰ２、Ｐ３）は、スレーブラッチ３２とＭＴＪ素子ＭＴＪ１、ＭＴＪ２との間の電流経路に設けられ、書込制御回路３４（１３４）から出力される出力信号ｓｅｌｅｃｔＷにより、オン及びオフが制御される。
【０１１９】
書込制御回路３４（１３４）は、記憶しているデータとスレーブラッチ３２が保持するデータとが一致する場合は、出力信号ｓｅｌｅｃｔＷによりＮＭＯＳトランジスタＮ２、Ｎ３（ＰＭＯＳトランジスタＰ２、Ｐ３）がオフ状態となり、スレーブラッチ３２とＭＴＪ素子ＭＴＪ１、ＭＴＪ２との間に電流経路が形成されない。これにより、スレーブラッチ３２が保持するデータはＭＴＪ素子ＭＴＪ１、ＭＴＪ２に書き込まれない。
【０１２０】
また、記憶しているデータとスレーブラッチ３２が保持するデータとが一致しない場合は、出力信号ｓｅｌｅｃｔＷによりＮＭＯＳトランジスタＮ２、Ｎ３（ＰＭＯＳトランジスタＰ２、Ｐ３）がオン状態となり、スレーブラッチ３２とＭＴＪ素子ＭＴＪ１、ＭＴＪ２との間に電流経路が形成される。これにより、スレーブラッチ３２が保持するデータがＭＴＪ素子ＭＴＪ１、ＭＴＪ２に書き込まれる。
【０１２１】
パワーゲーティングを行う場合、従来の不揮発性フリップフロップ回路（図１１の不揮発性フリップフロップ回路１０１６参照）では、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２の状態に関係なく書き込み電流を流してしまう。つまり、従来の不揮発性フリップフロップ回路では、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２が記憶しているデータとこれから書き込もうするデータとが同じ論理値の場合には、あえて書込みを行う必要がないにもかかわらず、書き込みを行おうとして電流を流してしまう。従来の不揮発性フリップフロップ回路では、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２が記憶しているデータに応じて書き込みを制御する技術がないため、無駄な書き込みエネルギーを生じてしまう場合があった。
【０１２２】
これに対して上記各実施形態の不揮発性フリップフロップ回路１６（１１６）では、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２が記憶するデータとスレーブラッチ３２が保持するデータとが一致する場合は、スレーブラッチ３２とＭＴＪ素子ＭＴＪ１、ＭＴＪ２との間に電流経路が形成されず電流が流れない。
【０１２３】
従って、上記各実施形態の不揮発性フリップフロップ回路１６（１１６）は、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２にデータを書き込むことによる消費エネルギーを削減することができる。
【０１２４】
上記各実施形態の不揮発性フリップフロップ回路１６（１１６）では、書込制御回路３４（１３４）を設けたことによりエネルギーが消費される。しかしながら、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２にデータを書き込むのに要する消費エネルギーは、書込制御回路３４（１３４）による消費エネルギーよりもオーダが異なる程大きい。そのため、上記各実施形態の不揮発性フリップフロップ回路１６（１１６）のように書込制御回路３４（１３４）を設けても、従来の不揮発性フリップフロップ回路に比べて、消費エネルギーを大幅に削減することができる。
【０１２５】
なお、上記各実施形態では半導体集積回路１０（１１０）が１つの不揮発性フリップフロップ回路１６（１１６）を備えた場合について説明したが、不揮発性フリップフロップ回路１６（１１６）の数は限定されるものではない。不揮発性フリップフロップ回路１６（１１６）は、１ビットのデータを記憶するものであるため、記憶させるデータのビット数に応じた数の不揮発性フリップフロップ回路１６（１１６）を備えればよい。
【０１２６】
半導体集積回路１０（１１０）が複数の不揮発性フリップフロップ回路１６（１１６）を備え、各々に保持されているデータの論理値として「１」と「０」とがそれぞれ５０％の確率だとした場合、新たにＭＴＪ素子ＭＴＪ１、ＭＴＪ２に書き込まなければならない不揮発性フリップフロップ回路１６（１１６）の個数は全体の半分であると考えられる。この場合、書き込みエネルギーを従来の不揮発性フリップフロップ回路の１/２に抑えることが可能である。
【０１２７】
なお、上記各実施形態では、書込制御回路３４（１３４）によりＭＴＪ素子ＭＴＪ１、ＭＴＪ２にスレーブラッチ３２が保持するデータを書き込む制御を行う場合について説明した。しかしながら、書込制御回路３４（１３４）に代えて、ソフトウエアを用いて、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２にデータを書き込む制御を行うようにしてもよい。この場合、例えば、ＣＰＵ（Central Processing Unit）等を備えた制御部を設け、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２が記憶するデータを予め取得して一時記憶しておく、またはストア時に取得し、当該データと、スレーブラッチ３２が保持するデータとを比較して、両データが一致するか否かに応じた論理値の出力信号ｓｅｌｅｃｔＷを制御部から出力すればよい。
【０１２８】
また、上記各実施形態では、不揮発性記憶部の一例としてＭＴＪ素子ＭＴＪ１、ＭＴＪ２を用いた場合について説明したがこれに限らない。パワースイッチ１４（１１４）により電源電圧（グランド電圧）の供給の遮断後も、記憶しているデータが消えない（不揮発性）記憶部であれば特に限定されない。
【０１２９】
また、上記各実施形態で説明した半導体集積回路１０（１１０）、不揮発性フリップフロップ回路１６（１１６）等の構成及び動作等は一例であり、本発明の主旨を逸脱しない範囲内において状況に応じて変更可能であることは言うまでもない。
【符号の説明】
【０１３０】
１０、１１０  半導体集積回路
１４、１１４  パワースイッチ
１６、１１６  不揮発性フリップフロップ回路
３０  マスターラッチ
３２  スレーブラッチ
３４、１３４  書込制御回路
ＭＪ１、ＭＪ２  ＭＴＪ素子
Ｎ１〜Ｎ７、Ｎ１０  ＮＭＯＳトランジスタ
Ｐ１〜Ｐ７、Ｐ１０  ＰＭＯＳトランジスタ
【図１】
2016208407.tif 000003
【図２】
2016208407.tif 000004
【図３】
2016208407.tif 000005
【図４】
2016208407.tif 000006
【図５】
2016208407.tif 000007
【図６】
2016208407.tif 000008
【図７】
2016208407.tif 000009
【図８】
2016208407.tif 000010
【図９】
2016208407.tif 000011
【図１０】
2016208407.tif 000012
【図１１】
2016208407.tif 000013
【国際調査報告】
2016208407.tif 000014
2016208407.tif 000015
2016208407.tif 000016
2016208407.tif 000017