(57)【要約】【課題】一対の不揮発性の記憶部により１ビットのデータを記憶する場合に、動作不良となる確率を低下することができる半導体装置を提供する。【解決手段】フリップフロップ部が保持する１ビットのデータを記憶する一対の不揮発性記憶部と、不揮発性記憶部に記憶されているデータとフリップフロップ部が保持するデータとが同一ではない場合は、フリップフロップ部が保持するデータを不揮発性記憶部に書き込ませる制御を行うバルーン部と、一対の不揮発性記憶部の一方の一端と、バルーン部の一端とを接続する第１のトランジスタと、一対の不揮発性記憶部の他方の一端と、バルーン部の他端とを接続し、第１のトランジスタと異なるサイズの第２のトランジスタと、を備えた半導体装置。【選択図】図２
2019050068.tif 000002
【特許請求の範囲】
【請求項１】
フリップフロップ部が保持する１ビットのデータを記憶する一対の不揮発性記憶部と、
前記不揮発性記憶部に記憶されているデータと前記フリップフロップ部が保持するデータとが同一ではない場合は、前記フリップフロップ部が保持するデータを前記不揮発性記憶部に書き込ませる制御を行うバルーン部と、
前記一対の不揮発性記憶部の一方の一端と、前記バルーン部の一端とを接続する第１のトランジスタと、
前記一対の不揮発性記憶部の他方の一端と、前記バルーン部の他端とを接続し、前記第１のトランジスタと異なるサイズの第２のトランジスタと、
を備えた半導体装置。
【請求項２】
前記第１のトランジスタと前記第２のトランジスタとは、コンダクタンスが異なる、
請求項１に記載の半導体装置。
【請求項３】
前記バルーン部は、前記不揮発性記憶部に記憶されているデータと前記フリップフロップ部に保持されているデータとが同一である場合は、前記フリップフロップ部が保持するデータを前記不揮発性記憶部に書き込ませるのを禁止する制御を行う、
請求項１または請求項２に記載の半導体装置。
【請求項４】
前記第１のトランジスタのサイズは、前記第２のトランジスタのサイズの１．５倍以上、２倍以下である、
請求項１から請求項３のいずれか１項に記載の半導体装置。
【請求項５】
前記第２のトランジスタのサイズは、前記第１のトランジスタのサイズの１．５倍以上、２倍以下である、
請求項１から請求項３のいずれか１項に記載の半導体装置。
【請求項６】
前記不揮発性記憶部は、磁気トンネル接合素子である、
請求項１から請求項５のいずれか１項に記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置に関する。
【背景技術】
【０００２】
一般的に、半導体集積回路（ＬＳＩ：Large Scale Integration circuit）の消費電力を削減する技術として、半導体チップ内部の回路（内部回路）に供給する電源電圧を遮断し、内部回路をいわゆるスリープ状態にするパワーゲーティングと呼ばれる技術が知られている。
【０００３】
当該技術に関連して電源電圧の供給を遮断することにより内部状態や内部データが消失することを防止するための技術が知られている。例えば、電源電圧の供給を遮断する前に、揮発性の記憶部が保持するデータを不揮発性の記憶部に書き込む技術が記載されている。この技術では、電源電圧の供給を再開する場合に、不揮発性の記憶部から揮発性の記憶部にデータを復元する。この種の技術として、例えば、非特許文献１及び２には、不揮発性の記憶部の一例として、一対のＭＴＪ（Magnetic Tunnel Junction：磁気トンネル接合）素子を用いた技術が開示されている。このＭＴＪ素子は、高抵抗状態とすることにより、「０」の状態のデータを記憶した状態とし、低抵抗状態とすることにより、「１」の状態のデータを記憶した状態とすることができる。
【０００４】
非特許文献１及び２に開示されている技術では、一対のＭＴＪ素子に記憶されているデータの状態を「１，０」または「０，１」とすることにより、揮発性の記憶部であるフリップフロップ部に記憶されている１ビットのデータを記憶する。
【０００５】
非特許文献１及び２に開示されている技術では、一対のＭＴＪ素子の抵抗差に応じて記憶されているデータを読み出すため、１ビットのデータを記憶するためにＭＴＪ素子を１つしか備えず、微小な抵抗値を読み取る場合に比べて、記憶されているデータの読み出し動作の安定性が優れている。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】S. Yamamoto, Y. Shuto and S. Sugahara, “Nonvolatile Delay Flip-flop using Spin-transistor Architecture with Spin Transfer Torque MTJs for Power-gating Systems,” Electronics Letters, Vol. 47 No. 18, Sept. 2011.
【非特許文献２】宇佐美, 工藤, 平賀, 屋上,“ストア／リストア動作のロバスト性を向上させたMTJ 利用不揮発性フリップフロップ回路” 応用物理学会春季学術講演会, 19p-P4-5,Mar. 2016.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記非特許文献１及び２に開示されている技術では、上記のように、記憶されるデータの状態は一方が「０」で他方が「１」、または一方が「０」で他方が「１」となることを前提としている。しかしながら、ＭＴＪ素子の製造ばらつきや、動作時の電源電圧の変動が生じた場合等において、一対のＭＴＪ素子に記憶されるデータの状態が同一になる、すなわち、記憶されるデータが共に「０」となる場合や、共に「１」となる場合がある。
【０００８】
すなわち、一対のＭＴＪ素子に記憶されているデータの組合せとしては、「０，０」、「０，１」、「１，０」、及び「１，１」の４つの状態が起こり得る。しかしながら、上記非特許文献１及び２に開示されている技術では、一対のＭＴＪ素子に記憶されるデータの状態が同一である場合、動作不良とみなされる。
【０００９】
例えば、一対のＭＴＪ素子により論理値が「０」であるデータを記憶するための正しいＭＴＪ素子のデータの状態が「０，１」である場合、上記４つの状態が等確率で生じるとするならば、論理値が「０」であるデータが記憶されるべきある時点において、一対のＭＴＪ素子に記憶されているデータの状態が正しい状態となる確率は１／４となる。換言すると、動作不良となる確率は３／４におよぶことになる。
【００１０】
また、また同様に、一対のＭＴＪ素子により論理値が「１」であるデータを記憶するための正しいＭＴＪ素子のデータの状態が「１，０」である場合、論理値が「１」であるデータが記憶されるべきある時点において、一対のＭＴＪ素子に記憶されているデータの状態が正しい状態となる確率は１／４となり、動作不良となる確率は３／４となる。
【００１１】
このように、従来の技術では、一対の不揮発性記憶部により１ビットのデータを記憶する場合、動作不良となる確率が高くなる場合があるという問題があった。
【００１２】
本開示は上記問題点を解決するためになされたものであり、一対の不揮発性の記憶部により１ビットのデータを記憶する場合に、動作不良となる確率を低下することができる半導体装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本開示の技術の第１の態様は、フリップフロップ部が保持する１ビットのデータを記憶する一対の不揮発性記憶部と、前記不揮発性記憶部に記憶されているデータと前記フリップフロップ部が保持するデータとが同一ではない場合は、前記フリップフロップ部が保持するデータを前記不揮発性記憶部に書き込ませる制御を行うバルーン部と、前記一対の不揮発性記憶部の一方の一端と、前記バルーン部の一端とを接続する第１のトランジスタと、前記一対の不揮発性記憶部の他方の一端と、前記バルーン部の他端とを接続し、前記第１のトランジスタと異なるサイズの第２のトランジスタと、を備える。
【００１４】
また、本開示の技術の第２の態様は、上記第１の態様の半導体装置において、前記第１のトランジスタと前記第２のトランジスタとは、コンダクタンスが異なる。
【００１５】
また、本開示の技術の第３の態様は、上記第１の態様または第２の態様の半導体装置において、前記バルーン部は、前記不揮発性記憶部に記憶されているデータと前記フリップフロップ部に保持されているデータとが同一である場合は、前記フリップフロップ部が保持するデータを前記不揮発性記憶部に書き込ませるのを禁止する制御を行う。
【００１６】
また、本開示の技術の第４の態様は、上記第１の態様からは第３の態様のいずれか１態様の半導体装置において、前記第１のトランジスタのサイズは、前記第２のトランジスタのサイズの１．５倍以上、２倍以下である。
【００１７】
また、本開示の技術の第５の態様は、上記第１の態様から第３の態様のいずれか１態様の半導体装置において、前記第２のトランジスタのサイズは、前記第１のトランジスタのサイズの１．５倍以上、２倍以下である。
【００１８】
また、本開示の技術の第６の態様は、上記第１の態様から第５の態様のいずれか１態様の半導体装置において、前記不揮発性記憶部は、磁気トンネル接合素子である。
【発明の効果】
【００１９】
本開示によれば、一対の不揮発性の記憶部により１ビットのデータを記憶する場合に、動作不良となる確率を低下することが可能となる。
【図面の簡単な説明】
【００２０】
【図１】実施形態の半導体装置の一例を示すブロック図である。
【図２】実施形態の不揮発性フリップフロップ回路の一例の回路図である。
【図３】実施形態の半導体集積回路の制御による不揮発性フリップフロップ回路の動作の流れの一例を表すフローチャートである。
【図４】実施形態の不揮発性フリップフロップ回路の他の例の回路図である。
【発明を実施するための形態】
【００２１】
以下、図面を参照して本発明に係る実施形態の例を説明する。なお、各図面において同一機能を有する部分には同一符号が付されており、重複する説明は適宜、省略する。
【００２２】
まず、本実施形態の半導体集積回路の構成について説明する。図１は、本実施形態の半導体集積回路１０の一例を示すブロック図である。また、図２には、本実施形態の不揮発性フリップフロップ回路１６の一例の回路図を示す。
【００２３】
本実施形態の半導体集積回路１０は、制御回路１２、パワースイッチ１４、不揮発性フリップフロップ回路１６、及び内部回路１８を備えている。
【００２４】
本実施形態の半導体集積回路１０は、内部回路１８等のグランドの電位（以下、「グランド電圧」という）を、ＧＮＤ電圧から、ＶＧＮＤ電圧に引き上げる（ＶＧＮＤ＞ＧＮＤ）ことで、いわゆるスリープ状態にすることにより、消費電力を抑制する機能を有する。
【００２５】
制御回路１２は、上記スリープ状態（グランド電圧を、ＶＧＮＤ電圧に引き上げた状態）を制御する機能を有している。本実施形態の制御回路１２は、スリープ制御信号ＰＳ＿ＥＮをパワースイッチ１４へ出力する。また、制御回路１２は、詳細を後述する制御信号Ｓａｖｅ、ＳＲ１、ＳＲ２、ＲＢ、及びＣＴＲＬと、ＬＰＧ（Local Power Gating）信号（以下、「信号ＬＰＧ」という）とを不揮発性フリップフロップ回路１６へ出力する。
【００２６】
図２に示した一例のように、本実施形態のパワースイッチ１４は、ＮＭＯＳトランジスタＴＲ７を用いている。ＮＭＯＳトランジスタＴＲ７のゲートには制御回路１２から出力されるスリープ制御信号ＰＳ＿ＥＮが入力される。
【００２７】
ＮＭＯＳトランジスタＴＲ７のソースはＧＮＤ電圧を供給する電源線に接続され、ドレインはＶＧＮＤ電圧を供給する電源線に接続されている。本実施形態の半導体集積回路１０では、スリープ状態に移行しない回路のグランド電圧はＧＮＤ電圧を維持する。一方、スリープ状態に移行する回路はグランド電圧がＧＮＤ電圧と、ＶＧＮＤ電圧とで切り替わる。なお、本実施形態では、制御回路１２の制御により、パワーゲーティングが行われスリープ状態に移行することができる回路領域（グランド電圧が切り替わる領域）を「ＰＧ（パワーゲーティング）領域」という。
【００２８】
具体的には、通常の動作を行う通常状態では、論理値が「１」のスリープ制御信号ＰＳ＿ＥＮが入力されてＮＭＯＳトランジスタＴＲ７がオン状態となり、グランド電圧がＶＧＮＤ電圧からＧＮＤ電圧に引き下げられる。一方、パワーゲーティングを行う場合には、論理値が「０」のスリープ制御信号ＰＳ＿ＥＮが入力されてＮＭＯＳトランジスタＴＲ７がオフ状態になり、ＰＧ領域のグランド電圧がＧＮＤ電圧からＶＧＮＤ電圧に引き上げられる。すなわち、通常状態（ＮＭＯＳトランジスタＴＲ７がオン状態）の場合は、ＰＧ領域のグランド電圧がＧＮＤ電圧となる。一方、パワーゲーティングを行う（ＮＭＯＳトランジスタＴＲ７がオフ状態）場合は、グランド電圧がＧＮＤ電圧からＶＧＮＤ電圧に切り替わる。この場合、ＶＧＮＤ＞ＧＮＤであり、グランド電圧が高くなったことにより、ＰＧ領域の回路の駆動が停止し、スリープ状態となる。
【００２９】
内部回路１８は特に限定されるものではなく、ユーザ等の要求に応じた機能を有する回路であればよい。なお、内部回路１８は、複数の機能（回路）を含んでいてもよい。また、内部回路１８は、グランド電圧がＧＮＤ電圧を維持する回路及びＧＮＤ電圧とＶＧＮＤ電圧とで切り替わる回路（ＰＧ領域）の両者を含んでいてもよいし、一方の回路のみであってもよい。
【００３０】
不揮発性フリップフロップ回路１６は、入力信号Ｄを保持（ラッチ）して、入力信号Ｄに応じた（同じ論理値（レベル）の）出力信号Ｑを出力する機能を有する。本実施形態の不揮発性フリップフロップ回路１６は、ＰＧ領域であり、グランド電圧がＧＮＤ電圧とＶＧＮＤ電圧とで切り替わる。
【００３１】
図２に示すように、本実施形態の不揮発性フリップフロップ回路１６は、Ｄ型フリップフロップであるマスターラッチ３４及びスレーブラッチ３０と、バルーン部３２と、を備える。
【００３２】
マスターラッチ３４は、不揮発性フリップフロップ回路１６の外部から入力された入力信号Ｄをクロック信号ＣＬＫに応じたタイミングで取り込んで保持する機能を有する。
【００３３】
マスターラッチ３４は、インバータＩＶ６、ＩＶ７、トランスファーゲートＴＧ１〜ＴＧ３、及びＮＡＮＤ回路ＮＡＮＤ１を備える。インバータＩＶ６には不揮発性フリップフロップ回路１６の外部から入力信号Ｄが入力される。
【００３４】
トランスファーゲートＴＧ１〜ＴＧ３は、クロック信号ＣＬＫによりオン（ＯＮ）及びオフ（ＯＦＦ）が制御される。具体的には、トランスファーゲートＴＧ１〜ＴＧ３は、クロック信号ＣＬＫがインバータＩＶ９により反転されたクロック信号ＣＢと、インバータＩＶ９の出力がインバータＩＶ１０により反転されたクロック信号Ｃ（クロック信号ＣＬＫと同じ論理値）とにより制御される。なお、トランスファーゲートＴＧ１と、トランスファーゲートＴＧ２及びＴＧ３とでは、クロック信号ＣＬＫによりオン、オフするタイミングが逆になっている。
【００３５】
ＮＡＮＤ回路ＮＡＮＤ１には非同期リセット信号である制御信号ＲＢが供給され、制御信号ＲＢの論理値を「０」に設定すると、マスターラッチ３４内に記憶されているデータの論理値が初期化される。また、ＮＡＮＤ回路ＮＡＮＤ１には、インバータＩＶ７から出力された信号が入力されるため、制御信号ＲＢの論理値を「１」に設定すると、インバータＩＶ７から出力された信号の反転信号が出力される。
【００３６】
一方、スレーブラッチ３０は、マスターラッチ３４から出力されたデータをクロック信号ＣＬＫに応じたタイミングで取り込んで保持し、入力信号Ｄと同じ論理値の出力信号Ｑを不揮発性フリップフロップ回路１６の外部に出力する機能を有する。本実施形態のスレーブラッチ３０が、本開示のフリップフロップ部の一例である。
【００３７】
スレーブラッチ３０は、ＮＡＮＤ回路ＮＡＮＤ２、インバータＩＶ３、及びトランスファーゲートＴＧ４、ＴＧ５を備える。
【００３８】
ＮＡＮＤ回路ＮＡＮＤ２には制御信号ＲＢが供給される。制御信号ＲＢの論理値を「０」に設定すると、スレーブラッチ３０内に記憶されているデータの論理値が「０」に初期化される。
【００３９】
インバータＩＶ３の入力はＮＡＮＤ回路ＮＡＮＤ２の出力に接続されており、出力は
【００４０】
トランスファーゲートＴＧ４の一端に接続されている。トランスファーゲートＴＧ４は、一端がインバータＩＶ３に接続され、かつ他端がトランスファーゲートＴＧ５の一端に接続されており、クロック信号ＣＬＫによりオン及びオフが制御される。また、トランスファーゲートＴＧ５は、一端がトランスファーゲートＴＧ４の他端に接続され、かつ他端がＮＡＮＤ回路ＮＡＮＤ２の入力に接続されており、制御信号Ｓａｖｅによりオン及びオフが制御され、制御信号Ｓａｖｅの論理値が「０」の場合にオン状態になる。
【００４１】
本実施形態のマスターラッチ３４及びスレーブラッチ３０によるフリップフロップ動作について説明する。
【００４２】
クロック信号ＣＬＫの論理値が「１」から「０」になると、トランスファーゲートＴＧ１、ＴＧ４はオン状態、トランスファーゲートＴＧ２、ＴＧ３はオフ状態になる。これにより、マスターラッチ３４では入力信号Ｄが取り込まれ、スレーブラッチ３０ではクロック信号ＣＬＫの論理値が「０」になる前に取り込んだ信号が保持される。
【００４３】
次にクロック信号ＣＬＫの論理値が「０」から「１」になると、トランスファーゲートＴＧ１、ＴＧ４はオフ状態、トランスファーゲートＴＧ２、ＴＧ３はオン状態になる。これにより、マスターラッチ３４では、クロック信号ＣＬＫの論理値が「１」になる前に取り込んだ信号が保持され、スレーブラッチ３０ではマスターラッチ３４のトランスファーゲートＴＧ３から出力された信号が取り込まれ、取り込まれた信号と同じ論理値の出力信号ＱがインバータＩＶ８から出力される。
【００４４】
本実施形態のバルーン部３２は、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２に書き込んだデータと同一のデータを一時的に保持し、該データと、現在スレーブラッチ３０に保持されているデータとの比較を行う。そしてバルーン部３２は、比較結果に基づいてＭＴＪ素子ＭＴＪ１、ＭＴＪ２にスレーブラッチ３０に保持されているデータの書き込みを行うか否かを制御する。バルーン部３２は、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２に記憶されているデータと、スレーブラッチ３０に保持されているデータとが一致する場合は、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２にデータの書き込みを禁止する（書込を行わない）制御を行う。
【００４５】
具体的には、本実施形態のバルーン部３２は、図２に示すようにインバータＩＶ４、ＩＶ５、トランスファーゲートＴＧ６、ＮＭＯＳトランジスタＴＲ５、６及びＸＯＲ回路ＸＯＲ１を備えている。
【００４６】
トランスファーゲートＴＧ６の一方の端子はスレーブラッチ３０のＮＡＮＤ回路ＮＡＮＤ２の入力端子（マスターラッチ３４のトランスファーゲートＴＧ３の端子）に接続されている。また、トランスファーゲートＴＧ６の他方の端子は、インバータＩＶ４の入力端子及びインバータＩＶ５の出力端子に接続されている。トランスファーゲートＴＧ６は制御信号Ｓａｖｅによりオン及びオフが制御され、制御信号Ｓａｖｅの論理値が「１」の場合にオン状態になる。
【００４７】
ＮＭＯＳトランジスタＴＲ５は、一端がインバータＩＶ４の電源に接続され、他端がＶＧＮＤ電圧を供給する電源電圧線に接続（以下、単に「ＶＧＡＮＤ電圧に接続という）されている。また、ＮＭＯＳトランジスタＴＲ６は、一端がインバータＩＶ５の電源に接続され、他端がＶＧＮＤ電圧に接続されている。ＮＭＯＳトランジスタＴＲ５、ＴＲ６は、信号ＬＰＧによりオン及びオフが制御される。従って、本実施形態のバルーン部３２のインバータＩＶ４、ＩＶ５は、信号ＬＰＧの論理値が「０」になるとＶＧＮＤ電圧から切り離される。
【００４８】
ＸＯＲ回路ＸＯＲ１の一方の入力端子には、インバータＩＶ４の出力端子及びインバータＩＶ５の入力端子が接続されている。また、ＸＯＲ回路ＸＯＲ１の他方の入力端子には、スレーブラッチ３０のＮＡＮＤ回路ＮＡＮＤ２の出力端子（インバータＩＶ３の入力端子）が接続されている。ＸＯＲ回路ＸＯＲ１からは出力信号ＣＭＰ＿ＯＵＴが出力される。
【００４９】
さらに、図２に示すように本実施形態の不揮発性フリップフロップ回路１６は、ＮＭＯＳトランジスタＴＲ１〜ＴＲ４、インバータＩＶ１、ＩＶ２、及び一対のＭＴＪ素子としてＭＴＪ素子ＭＴＪ１、ＭＴＪ２を備える。
【００５０】
ＭＴＪ素子ＭＴＪ１、ＭＴＪ２は、印加される電圧の大きさに応じて抵抗値が変化する。自由層ｆからピン層ｐへ向かう方向に電流を流すと、自由層ｆの磁化方向がピン層ｐと同一になってＭＴＪ素子は低抵抗となり、記憶されているデータの状態が「１」となる。一方、ピン層ｐから自由層ｆへ向かう方向に電流を流すと、自由層ｆの磁化方向がピン層ｐと反対になってＭＴＪ素子は高抵抗となり、記憶されているデータの状態が「０」となる。
【００５１】
ＭＴＪ素子ＭＴＪ１、ＭＴＪ２に記憶されたデータは、グランド電圧がＶＧＮＤ電圧に切り替わった後も保持される。そのため本実施形態の不揮発性フリップフロップ回路１６は、パワーゲーティングを行う場合、スリープ状態に移行する前に、スレーブラッチ３０が保持しているデータをＭＴＪ素子ＭＴＪ１、ＭＴＪ２に書き込んで記憶させる。また、不揮発性フリップフロップ回路１６は、スリープ状態から復帰する場合は、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２に書き込まれているデータをスレーブラッチ３０へ読み出して復元する。
【００５２】
なお、本実施形態では、スレーブラッチ３０が保持しているデータをＭＴＪ素子ＭＴＪ１、ＭＴＪ２に記憶させる動作を「ストア」という。また、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２からデータを読み出しスレーブラッチ３０に復元させる動作を「リストア」という。
【００５３】
本実施形態のＭＴＪ素子ＭＴＪ１、ＭＴＪ２は、ピン層ｐ側が制御信号ＣＴＲＬが流れる制御信号線に接続されている。ＭＴＪ素子ＭＴＪ１の自由層ｆ側はＮＭＯＳトランジスタＴＲ１、ＴＲ３の一端（ソース）に接続されている。また、ＭＴＪ素子ＭＴＪ２の自由層ｆ側はＰＭＯＳトランジスタＴＲ２、ＴＲ４（ソース）の一端に接続されている。
【００５４】
ＮＭＯＳトランジスタＴＲ１は一端（ソース）がＭＴＪ素子ＭＴＪ１に接続されており、他端（ドレイン）がインバータＩＶ２の出力に接続されている。インバータＩＶ２の入力は、ノードＮ２（ＮＡＮＤ回路ＮＡＮＤ２の出力）及びインバータＩＶ３の入力に接続されている。一方、ＮＭＯＳトランジスタＴＲ２は一端（ソース）がＭＴＪ素子ＭＴＪ２に接続されており、他端（ドレイン）がインバータＩＶ１の出力に接続されている。インバータＩＶ１の入力は、トランスファーゲートＴＧ４の他端及びトランスファーゲートＴＧ５の一端に接続されている。ＮＭＯＳトランジスタＴＲ１、ＴＲ２は、制御信号ＳＲ２によりオン及びオフが制御される。
【００５５】
また、ＮＭＯＳトランジスタＴＲ３は一端（ソース）がＭＴＪ素子ＭＴＪ１に接続されており、他端（ドレイン）がバルーン部３２に接続されている。一方、ＮＭＯＳトランジスタＴＲ４は一端（ソース）がＭＴＪ素子ＭＴＪ２に接続されており、他端（ドレイン）がバルーン部３２（ＸＯＲ回路ＸＯＲ１の入力）に接続されている。ＮＭＯＳトランジスタＴＲ３、ＴＲ４は、制御信号ＳＲ１によりオン及びオフが制御される。本実施形態のＮＭＯＳトランジスタＴＲ３、ＴＲ４の各々が、本開示の第１のトランジスタ及び第２のトランジスタの一例である。
【００５６】
本実施形態のＮＭＯＳトランジスタＴＲ１、ＴＲ２は、同様の構造かつ、同様のサイズのトランジスタである。一方、ＮＭＯＳトランジスタＴＲ３、ＴＲ４は、同様の構造であるが、サイズが異なるトランジスタである。一例として、本実施形態では、ＮＭＯＳトランジスタＴＲ３の方がＮＭＯＳトランジスタＴＲ４よりもサイズが大きいトランジスタを用いている。
【００５７】
次に、本実施形態の不揮発性フリップフロップ回路１６の動作について説明する。図３には、本実施形態の半導体集積回路１０の制御による不揮発性フリップフロップ回路１６の動作の流れの一例を表すフローチャートを示す。図３に示すように、本実施形態の不揮発性フリップフロップ回路１６は、制御回路１２の制御に応じた、アクティブ、ストア、ベリファイ、リトライ、スリープ、及びリストアの６つの動作モードを有する。
【００５８】
まず、不揮発性フリップフロップ回路１６は、アクティブ動作を行う。
【００５９】
図３に示すように、ステップＳ１００では、制御回路１２は、パワースイッチ１４をオン状態にし、不揮発性フリップフロップ回路１６のグランド電圧をＧＮＤ電圧に切り替える。アクティブ動作では、クロック信号ＣＬＫにより制御される通常動作（フリップフロップ動作）を行う。
【００６０】
次に、不揮発性フリップフロップ回路１６は、ストア動作を行う。
【００６１】
そのため、次のステップＳ１０２では、制御回路１２は、クロック信号ＣＬＫのトグルを停止し、クロック信号ＣＬＫの論理値を「０」に維持する。また、制御回路１２は、制御信号ＳＲ１、ＳＲ２の論理値を「０」にする。これにより、ＮＭＯＳトランジスタＴＲ１〜ＴＲ４はオン状態となる。さらに、制御回路１２は、信号ＬＰＧの論理値を「１」から「０」に変化させる。これにより、ＮＭＯＳトランジスタＴＲ５、ＴＲ６はオン状態となり、インバータＩＶ４、ＩＶ５がＶＧＮＤ電圧と電気的に接続される。
【００６２】
この状態では、ＧＮＤ電圧を供給する電源線への電流経路が遮断されるため、ノードＮ１１及びノードＮ１２共に、高電位（論理値「１」）となる。
【００６３】
この後、信号ＬＰＧの論理値を再び「１」に変化させると、ＭＴＪ素子ＭＴＪ１とＭＴＪ２との抵抗値の差、及びＮＭＯＳトランジスタＴＲ３とＮＭＯＳトランジスタＴＲ４とのコンダクタンスの差に応じて、ノードＮ１１及びノードＮ１２の電位が決定し、ＭＴＪ素子ＭＴＪ１及びＭＴＪ２に記憶されているデータが、バルーン部３２に読み出される。
【００６４】
この際、ＭＴＪ素子ＭＴＪ１の抵抗値と、ＭＴＪ素子ＭＴＪ２の抵抗値とが異なっている場合、バルーン部３２には、抵抗値の差に応じた論理値のデータが読み出される。すなわち、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２に記憶されているデータの状態が、「１，０」または「０，１」の場合、バルーン部３２には、各状態に対応する論理値のデータが読み出される。
【００６５】
一方、本実施形態の不揮発性フリップフロップ回路１６では、ＭＴＪ素子ＭＴＪ１の抵抗値と、ＭＴＪ素子ＭＴＪ２の抵抗値とが同じ場合、バルーン部３２には、ＮＭＯＳトランジスタＴＲ３のコンダクタンスと、ＮＭＯＳトランジスタＴＲ４のコンダクタンスとの差に応じた論理値のデータが読み出されることになる。すなわち、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２に記憶されているデータの状態が、「０，０」または「１，１」の場合、本実施形態では、ＮＭＯＳトランジスタＴＲ３の方がＮＭＯＳトランジスタＴＲ４よりもコンダクタンスが大きいため、ノードＮ１１の電位が「１」になり、ノードＮ１２の電位が「０」になる。従って、バルーン部３２には、論理値が「１」のデータが読み出された状態となる。
【００６６】
なお、ＮＭＯＳトランジスタＴＲ３のコンダクタンスと、ＮＭＯＳトランジスタＴＲ４のコンダクタンスとの差は、トランジスタのサイズの差に対応する。ＮＭＯＳトランジスタＴＲ３、ＴＲ４のサイズの差は、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２の抵抗値やトランジスタの製造ばらつきも考慮したシミュレーション結果によれば、一方のトランジスタのサイズが他方のトランジスタのサイズよりも１．５倍以上、２倍以下であることが好ましい。
【００６７】
次のステップＳ１０４で、制御回路１２は、バルーン部３２に記憶されているデータとスレーブラッチ３０に保持されているデータとの比較を行う。バルーン部３２に記憶されているデータの論理値とスレーブラッチ３０に記憶されているデータの論理値とが一致する場合、ノードＮ１の電位とノードＮ２との電位が同一となるため、ＸＯＲ回路ＸＯＲ１から出力される出力信号ＣＭＰ＿ＯＵＴの論理値は「０」になる。なお、本実施形態において電位が「同一」とは、誤差は無視して、同一とみなせることをいう。一方、両者の論理値が一致しない場合、ノードＮ１の電位とノードＮ２の電位とが異なるため、ＸＯＲ回路ＸＯＲ１から出力される出力信号ＣＭＰ＿ＯＵＴの論理値は「１」になる。
【００６８】
次のステップＳ１０６で制御回路１２は、出力信号ＣＭＰ＿ＯＵＴの論理値が「１」であるか否かを判定する。出力信号ＣＭＰ＿ＯＵＴの論理値が「１」である場合、ステップＳ１０６の判定が肯定判定となり、ステップＳ１０８へ移行する。
【００６９】
ステップＳ１０８では、制御回路１２は、制御信号ＳＲ２の論理値を「１」にし、ＮＭＯＳトランジスタＴＲ１、ＴＲ２をオン状態にして、スレーブラッチ３０に保持されているデータをＭＴＪ素子ＭＴＪ１、ＭＴＪ２に書き込む。
【００７０】
一方、出力信号ＣＭＰ＿ＯＵＴの論理値が「０」である場合、ステップＳ１０６の判定が否定となり、ステップＳ１１０に移行する。この際、制御信号ＳＲ２の論理値は「０」のままであるため、ＮＭＯＳトランジスタＴＲ１、ＴＲ２はオフ状態であり、スレーブラッチ３０に保持されているデータは、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２に書き込まれない。
【００７１】
このように、本実施形態の不揮発性フリップフロップ回路１６では、スレーブラッチ３０に記憶されているデータの論理値とバルーン部３２に記憶されているデータの論理値とが異なる場合のみ、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２にデータの書き込みを行う動作（Conditional Write：条件付き書込）が実現できる。従って、本実施形態の不揮発性フリップフロップ回路１６によれば、不要な書き込みエネルギーの消費を抑制することができる。
【００７２】
不揮発性フリップフロップ回路１６は、このようにしてストア動作が終了すると、次にベリファイ動作を行う。以下では、説明の便宜上、一例として、スレーブラッチ３０に記憶されているデータの論理値が「１」であり、このデータを上記ステップＳ１０２〜Ｓ１０８の処理によりストアした場合について説明する。なお、上記の条件付き書込を行ったことにより、論理値が「１」のデータをストアした場合は、バルーン部３２に記憶されているデータの論理値は「０」となっている。
【００７３】
次のステップＳ１１０では、制御回路１２は、制御信号ＣＴＲＬの論理値を「１」にし、制御信号ＳＲ１の論理値を「０」にし、かつ制御信号Ｓａｖｅの論理値を「０」にした状態で信号ＬＰＧの論理値を「０」にする。これにより、トランスファーゲートＴＧ６はオフ状態になる。また、ＮＭＯＳトランジスタＴＲ５、ＴＲ６がオフ状態になるため、バルーン部３２のインバータＩＶ４、ＩＶ５がＶＧＮＤ電圧から電気的に切り離される。従って、ノードＮ１１とノードＮ１２とが導通し、共に高電位（「１」）になる。
【００７４】
次のステップＳ１１２で制御回路１２は、信号ＬＰＧの論理値を「１」に変化させると、上記ステップＳ１０２と同様に、ＭＴＪ素子ＭＴＪ１とＭＴＪ２との抵抗値の差、及びＮＭＯＳトランジスタＴＲ３とＮＭＯＳトランジスタＴＲ４とのコンダクタンスの差に応じて、ノードＮ１１及びノードＮ１２の電位が決定し、ＭＴＪ素子ＭＴＪ１及びＭＴＪ２に記憶されているデータが、バルーン部３２に読み出される。
【００７５】
なお、この際、上記ステップＳ１０２において上述したように、ＭＴＪ素子ＭＴＪ１の抵抗値と、ＭＴＪ素子ＭＴＪ２の抵抗値とが同じ場合であっても正常にリストアできる。
【００７６】
ここで、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２への書込が正常に行われているばあい、または、両者の抵抗値が同一である場合、ノードＮ１１の電位は「１」となり、ノードＮ１２の電位は「０」となる。また、スレーブラッチ３０のノードＮ２の電位は「０」である。従って、出力信号ＣＭＰ＿ＯＵＴの論理値は「０」となる。
【００７７】
そのため、ストア動作直後に行ったベリファイ動作において出力信号ＣＭＰ＿ＯＵＴの論理値が「０」である場合、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２への書込が正しく行われていることがわかる。
【００７８】
そこで、次のステップＳ１１４で制御回路１２は、出力信号ＣＭＰ＿ＯＵＴの論理値が「０」であるか否かを判定する。出力信号ＣＭＰ＿ＯＵＴの論理値が「０」の場合、すなわち正常にＭＴＪ素子ＭＴＪ１、ＭＴＪ２への書き込みが行われた場合、ステップＳ１１４の判定が肯定判定となり、ステップＳ１２８のスリープ動作へ移行する。
【００７９】
一方、出力信号ＣＭＰ＿ＯＵＴの論理値が「０」ではない（「１」である）場合、すなわち正常にＭＴＪ素子ＭＴＪ１、ＭＴＪ２への書き込みが行われなかった場合、ステップＳ１１４の判定が否定判定となり、ステップＳ１１６へ移行する。
【００８０】
ステップＳ１１６で制御回路１２は、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２へのデータの書込を容易にするための所定の制御処理を行う。
【００８１】
リトライ動作において、制御回路１２が、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２へのデータの書込を行いやすくするための所定の制御処理としては、特に限定されないが、例えば、以下の制御処理が挙げられる。なお、リトライ動作を開始した直後は、ステップＳ１１６を省略してステップＳ１１８へ以降してもよい。
【００８２】
例えば、全体の電源電圧を高くすることにより、各トランジスタを動作しやすく（書き込みしやすく）する制御処理が挙げられる。
【００８３】
また例えば、既に、リトライ動作（後述のステップＳ１１６の動作）を行った後の場合、制御信号ＳＲ２のパルス幅を長くして、ＮＭＯＳトランジスタＴＲ１、ＴＲ２のオン時間を長くすることにより、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２にデータを書き込む書込時間を長くしてもよい。なお、この場合、予め、書込に適した時間を複数通り用意しておき、制御回路１２は、短い時間から順次適用することにより、書込時間を長くしていくようにしてもよい。
【００８４】
また例えば、既に、リトライ動作（後述のステップＳ１１８の動作）を行った後の場合、ＮＭＯＳトランジスタＴＲ１、ＴＲ２の閾値電圧を変化させ、ＮＭＯＳトランジスタＴＲ１、ＴＲ２をオン状態にし易くしてもよい。
【００８５】
また例えば、既に、リトライ動作（後述のステップＳ１１８の動作）を行った後の場合、制御信号ＳＲ２の振幅電圧を高くすることにより、ＮＭＯＳトランジスタＴＲ１、ＴＲ２をオン状態にし易くしてもよい。
【００８６】
また例えば、ＣＴＲＬ信号の電圧を高く（電圧パルス幅を大きく）してもよい。
【００８７】
なお、パルス幅やオン時間等を変更した場合、一定期間（一定時間、一定書込回数等）有効とするようにしてもよいし、書込が完了した際に毎度リセットするようにしてもよい。
【００８８】
このように本実施形態の不揮発性フリップフロップ回路１６によれば、確認結果に応じて、正しいデータを再びＭＴＪ素子ＭＴＪ１、ＭＴＪ２に書き込む際は、データを書き込み易くするための所定の制御処理を行うが、消費電力が少ない状態から徐々に、消費電力が大きな状態に変更していく。例えば、制御信号ＳＲ２のパルス幅を長くして、ＮＭＯＳトランジスタＴＲ１、ＴＲ２のオン時間を長くすることにより、データを書き込みやすくする場合、オン時間を少しづつ長くしながら、データの再書き込みを行う。そのため、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２に正しくデータを書き込むのに要する電力を最小に近づけることができ、消費電力を抑制することができる。
【００８９】
次のステップＳ１１８で制御回路１２は、制御信号ＳＲ２の論理値を「１」にする。これにより、ＮＭＯＳトランジスタＴＲ１、ＴＲ２がオン状態になるため、インバータＩＶ１、ＩＶ２を介して、スレーブラッチ３０に記憶されているデータがＭＴＪ素子ＭＴＪ１、ＭＴＪ２に書き込まれる。この、スレーブラッチ３０に記憶されているデータが、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２にストアすべき、正しいデータである。
【００９０】
ステップＳ１１８の動作の後、ステップＳ１１０に戻り、再度、不揮発性フリップフロップ回路１６によるベリファイ動作が行われる。
【００９１】
このように、本実施形態の不揮発性フリップフロップ回路１６では、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２に正しくデータが書き込まれるまで、ベリファイ動作とリトライ動作とを繰り返す。
【００９２】
一方、上述したように、ベリファイ動作により、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２にデータが正しく書き込まれていると判定された場合（ステップＳ１１４で肯定判定）、ステップＳ１２０のスリープ動作へ移行する。
【００９３】
スリープ動作では、制御回路１２は、スリープ制御信号ＰＳ＿ＥＮの論理値を「０」に
【００９４】
して、パワースイッチ１４をオフ状態にする。これにより、不揮発性フリップフロップ回路１６のグランド電位がＧＮＤ電圧からＶＧＮＤ電圧に切り替わり、回路を流れるリーク電流がカットされる。
【００９５】
スリープ状態から復帰する場合、ステップＳ１２２に移行し、リストア動作を行う。リストア動作のステップＳ１２２では、まず、制御回路１は、スリープ制御信号ＰＳ＿ＥＮの論理値を「１」にして、パワースイッチ１４をオン状態にする。これにより、不揮発性フリップフロップ回路１６のグランド電位がＶＧＮＤ電圧からＧＮＤ電圧に切り替わる。
【００９６】
また、制御回路１２は、制御信号ＳＲ１、ＳＲ２の論理値を「０」にして、ＮＭＯＳトランジスタＴＲ１〜ＴＲ４をオン状態にする。さらに、この状態で信号ＬＰＧの論理値を「１」から「０」に変化させ、さらに「１」に変化させることで、上記ステップＳ１１２と同様に、ＭＴＪ素子ＭＴＪ１及びＭＴＪ２に記憶されているデータが、バルーン部３２に読み出される。
【００９７】
次のステップＳ１２４で制御回路１２は、制御信号Ｓａｖｅの論理値を「０」から「１」に変化させ、さらに「１」に変化させる。制御信号Ｓａｖｅの論理値が「１」になると、トランスファーゲートＴＧ５がオフ状態に、トランスファーゲートＴＧ６がオン状態になる。一方、制御信号Ｓａｖｅの論理値が「０」になると、トランスファーゲートＴＧ５がオン状態に、トランスファーゲートＴＧ６がオフ状態になる。これにより、バルーン部３２に記憶されているデータがスレーブラッチ３０に読み出される。
【００９８】
この後、不揮発性フリップフロップ回路１６は、ステップＳ１００に戻り、アクティブ動作を再開する。
【００９９】
以上説明したように、本実施形態の不揮発性フリップフロップ回路１６は、スレーブラッチ３０が保持する１ビットのデータを記憶する一対のＭＴＪ素子ＭＴＪ１、ＭＴＪ２と、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２に記憶されているデータとスレーブラッチ３０が保持するデータとが同一ではない場合は、スレーブラッチ３０が保持するデータをＭＴＪ素子ＭＴＪ１、ＭＴＪ２とに書き込ませる制御を行うバルーン部３２と、一対のＭＴＪ素子ＭＴＪ１、ＭＴＪ２の一方の一端と、バルーン部３２の一端とを接続するＮＭＯＳトランジスタとＴＲ３と、一対のＭＴＪ素子ＭＴＪ１、ＭＴＪ２の他方の一端と、バルーン部３２の他端とを接続し、ＮＭＯＳトランジスタとＴＲ３と異なるサイズのＮＭＯＳトランジスタとＴＲ４と、を備える。
【０１００】
本実施形態の不揮発性フリップフロップ回路１６では、ＭＴＪ素子の製造ばらつきや、動作時の電源電圧の変動が生じた場合等において、一対のＭＴＪ素子ＭＴＪ１、ＭＴＪ２に記憶されるデータの状態が同一になる、すなわち、記憶されるデータが共に「０」となる場合や、共に「１」となる場合がある。
【０１０１】
このような場合、従来の不揮発性フリップフロップ回路では、動作不良となってしまう。
【０１０２】
一方、本実施形態では、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２に記憶されるデータが共に「０」となる場合、及び共に「１」となる場合であっても、ＮＭＯＳトランジスタＴＲ３のコンダクタンスと、ＮＭＯＳトランジスタＴＲ４のコンダクタンスとの差に応じて、ノードＮ１１及びノードＮ１２の電位が決定し、ＭＴＪ素子ＭＴＪ１及びＭＴＪ２に記憶されているデータが、バルーン部３２に読み出される。従って、動作不良とならず、正常に動作することができる。
【０１０３】
従って、本実施形態の不揮発性フリップフロップ回路１６によれば、一対の不揮発性の記憶部により１ビットのデータを記憶する場合に、動作不良となる確率を低下することができる。
【０１０４】
また、本実施形態の不揮発性フリップフロップ回路１６のバルーン部３２は、ＭＴＪ素子ＭＴＪ１、ＭＴＪ２に記憶されているデータとスレーブラッチ３０に保持されているデータとが同一である場合は、スレーブラッチ３０が保持するデータをＭＴＪ素子ＭＴＪ１、ＭＴＪ２とに書き込ませるのを禁止する制御を行う。
【０１０５】
従って、本実施形態の不揮発性フリップフロップ回路１６によれば、不要な書込を抑制することができるため、消費電力を抑制することができる。
【０１０６】
なお、図４に一例を示した不揮発性フリップフロップ回路１６のように、図２に示した不揮発性フリップフロップ回路１６のバルーン部３２が備えていたインバータＩＶ５に替わり、ＮＡＮＤ回路ＮＡＮＤ３を備えていてもよい。図４に示した不揮発性フリップフロップ回路１６のＮＡＮＤ回路ＮＡＮＤ３には制御信号ＲＢが供給される。図４に示した不揮発性フリップフロップ回路１６においても、上記図２に示した不揮発性フリップフロップ回路１６と同様に動作することはいうまでもない。
【０１０７】
また、上記実施形態では、ＮＭＯＳトランジスタＴＲ３のほうが、ＮＭＯＳトランジスタＴＲ４よりもサイズが大きい態様について説明したが、ＮＭＯＳトランジスタＴＲ４のほうが、ＮＭＯＳトランジスタＴＲ３よりもサイズが大きい態様であってもよい。
【０１０８】
また、上記実施形態では半導体集積回路１０が１つの不揮発性フリップフロップ回路１６を備えた場合について説明したが、不揮発性フリップフロップ回路１６の数は限定されるものではない。不揮発性フリップフロップ回路１６は、１ビットのデータを記憶するものであるため、半導体集積回路１０は、記憶させるデータのビット数に応じた数の不揮発性フリップフロップ回路１６を備えればよい。
【０１０９】
また、上記実施形態では、不揮発性記憶部の一例としてＭＴＪ素子ＭＴＪ１、ＭＴＪ２を用いた場合について説明したがこれに限らない。パワースイッチ１４によりグランド電圧の供給の遮断（ＶＧＮＤ電圧に切り替わった）後も、記憶しているデータが消えない（不揮発性）記憶部であれば特に限定されない。
【０１１０】
また、上記実施形態で説明した半導体集積回路１０、不揮発性フリップフロップ回路１６等の構成及び動作等は一例であり、本発明の主旨を逸脱しない範囲内において状況に応じて変更可能であることは言うまでもない。
【符号の説明】
【０１１１】
１０  半導体集積回路
１２  制御回路
１４  パワースイッチ
１６  不揮発性フリップフロップ回路
３０  スレーブラッチ
３２  バルーン部
３４  マスターラッチ
ＩＶ１〜ＩＶ１０  インバータ
ＭＴＪ１、ＭＴＪ２  ＭＴＪ素子
Ｎ１〜Ｎ４、Ｎ１１、Ｎ１２  ノード
ＮＡＮＤ１〜ＮＡＮＤ３  ＮＡＮＤ回路
ＴＧ１〜ＴＧ６  トランスファーゲート
ＴＲ１〜ＴＲ７  ＮＭＯＳトランジスタ
ＸＯＲ１  ＸＯＲ回路
【図１】
2019050068.tif 000003
【図２】
2019050068.tif 000004
【図３】
2019050068.tif 000005
【図４】
2019050068.tif 000006