図1において、本発明を実施した不揮発性フリップフロップ装置10は、マスタラッチ部11とスレーブラッチ部12とを有するBISER構造のマスタ−スレーブ型フリップフロップ回路である。この不揮発性フリップフロップ装置10では、スレーブラッチ部12を不揮発性として構成しており、スレーブラッチ部12が不揮発性ラッチ装置に相当する。なお、以下では、データ「1」が信号レベルのH(High)レベルであり、データ「0」が信号レベルのL(Low)レベルであるとして説明する。
不揮発性フリップフロップ装置10は、制御部14からのクロック(CLK)、ストア信号(WCK)、リストア信号(/RE)を受けて動作する。制御部14は、通常動作では、クロック信号を周期的にHレベルとLレベルとに変化させる。また、詳細を後述するように、ストア信号、リストア信号は、スレーブラッチ部12においてデータのストア、リストアを行うためのものである。制御部14は、ストアの際にストア信号をアクテイブ(Hレベル)とし、リストアの際にリストア信号をアクテイブ(Lレベル)とする。例えばストアは、不揮発性フリップフロップ装置10の電源供給端への電源電圧VDDが遮断(オフ)とされる直前に行われ、リストアは電源復帰時に行われる。制御部14は、不揮発性フリップフロップ装置10の電源を制御する。
マスタラッチ部11は、一対のマスタラッチ回路15、16と、遅延回路DE1と、Cエレメント回路18と、ウィークキーパ回路19とを備えている。マスタラッチ回路15は、それらの入力端に1ビットデータ(「1」または「0」)である入力データDが入力され、クロックに応じて入力データDをラッチ(保持)する。また、マスタラッチ回路16は、その入力端に遅延回路DE1を介して入力データDが入力され、クロックに応じて入力データDをラッチする。
遅延回路DE1は、所定の遅延時間だけ入力データDを遅延させてマスタラッチ回路16に入力する。マスタラッチ回路16は、その動作は上記マスタラッチ回路16と同じであるが、遅延回路DE1を介して入力データDが入力される分だけ遅れて入力データDをラッチする。これにより、マスタラッチ回路15、16がSET(Single Event Transient)によるパルス(以下、SETパルスという)をそれぞれラッチすることがないようにしている。
なお、SETとは、ソフトエラーの一種であり、高エネルギー粒子が組み合わせ回路に衝突してパルスを発生させる現象である。また、ソフトエラーとしては、この他に高エネルギー粒子がフリップフロップ回路やSRAMが保持しているデータを直接に反転させるSEU(Single Event Upset)や、同時に複数のSRAM等のデータが反転するMCU(Multiple Cell Upset)等がある。
Cエレメント回路18とウィークキーパ回路19は、入力される複数のデータが「1」または「0」のいずれか一方に揃ったときのみ、出力するデータを入力されたデータに応じて変化させるものであり、入力される複数のデータが揃っていない場合には、出力をそれまでのデータに保持する回路である。
Cエレメント回路18は、PMOSのFET(Field effect transistor)であるトランジスタM1、M2と、NMOSのFETであるトランジスタM3、M4とから構成されている。このCエレメント回路18は、電源電圧VDDを供給する電源供給端とグランドとの間に、電源供給端側からトランジスタM1、M2、M3、M4をその順番で直列に接続してある。トランジスタM1、M3のゲートには、マスタラッチ回路15の出力端が、トランジスタM2、M4のゲートには、マスタラッチ回路16の出力端がそれぞれ接続され、トランジスタM2、M3のドレイン同士の接続点n1がスレーブラッチ部12の入力として接続されている。
このように接続されたCエレメント回路18は、マスタラッチ回路15、16が同じデータを出力しているときにだけ、トランジスタM1、M2がオンしM3、M4がオフし、またはトランジスタM1、M2がオフしM3、M4がオンして、そのデータを反転したデータXDを接続点n1から出力する。一方、マスタラッチ回路15、16から異なるデータが出力されているときには、Cエレメント回路18は、トランジスタM1、M3またはトランジスタM2、M4のいずれか一方がオフとなるためデータを出力せず、接続点n1をハイインピーダンスにする。
ウィークキーパ回路19は、接続点n1がハイインピーダンスである場合に、そのハイインピーダンスとなる直前のデータにデータXDを固定する。このウィークキーパ回路19は、互いに入力端と出力端とが接続された、すなわちクロスカップルされたインバータ19a、19bから構成され、双安定マルチバイブレータ(以下、単にマルチバイブレータという)を形成する。インバータ19aの入力端が接続点n1に接続されている。ウィークキーパ回路19は、接続点n1から出力されているデータXDを保持し、接続点n1がハイインピーダンスとなった場合に、接続点n1の電位を保持しているデータXDに応じたものにする。これにより、接続点n1がハイインピーダンスとなった場合に、そのハイインピーダンスとなる前までのデータXDが継続してスレーブラッチ部12に入力される。
上記のCエレメント回路18とウィークキーパ回路19とにより、マスタラッチ回路15、16の一方のラッチしたデータが反転してもエラーにならないようにしている。すなわち、反転したデータをマスキングしている。このように構成されたマスタラッチ部11は、結果的に一対のマスタラッチ回路15、16が保持しているデータとウィークキーパ回路19が保持しているデータのうち2個以上のデータが一致する当該データを出力することに相当する。なお、このような効果は、詳細を後述するスレーブラッチ部12と同様である。
図2に示すように、スレーブラッチ部12は、一対のスレーブラッチ回路21、22、遅延回路DE2、Cエレメント回路23、ウィークキーパ回路24、不揮発性記憶部(以下、単に記憶部という)25〜27、ストア回路28、リストア回路29等で構成される。
スレーブラッチ回路21は、NMOSのFETであるトランジスタM11、M12と、インバータ21a〜21cで構成されている。トランスファゲートであるトランジスタM11は、そのドレインがマスタラッチ部11に接続されてデータXDが入力される。第1のインバータとしてのインバータ21a、21bは、互いに入力端と出力端とが接続されてクロスカップルされており、マルチバイブレータMV1を形成している。
マルチバイブレータMV1は、インバータ21aの入力端とインバータ21bの出力端とが接続された接続点na1にトランジスタM11を介してデータXDが入力される。また、インバータ21bの入力端とインバータ21aの出力端とが接続された接続点nb1にインバータ21cとトランジスタM12とを介してデータXDを反転したデータXDbが入力される。マルチバイブレータMV1は、接続点nb1がスレーブラッチ回路21の出力端とされて後段のインバータ31に接続されている。
スレーブラッチ回路22は、スレーブラッチ回路21と同様な構成であり、トランジスタM13、M14、インバータ22a〜22cを備えている。インバータ22a、22bは、クロスカップルされてマルチバイブレータMV2を形成している。マルチバイブレータMV2は、インバータ22aの入力端とインバータ22bの出力端とが接続された接続点na2にトランジスタM13を介してデータXDが入力される。また、インバータ22bの入力端とインバータ22aの出力端とが接続された接続点nb2に、インバータ22cとトランジスタM14とを介してデータXDbが入力される。
スレーブラッチ回路21、22は、マスタラッチ回路15、16と同様に、クロックに応じてデータXDをラッチする。すなわち、スレーブラッチ回路21、22は、クロックがHレベルからLレベルに変化すると、その変化直前のデータXDをマルチバイブレータMV1、MV2に保持して、保持したデータXDを反転したデータXDbを出力する。なお、スレーブラッチ回路21、22は、クロックがHレベルの間では、入力されているデータXDを反転したデータXDbを出力する。
遅延回路DE2は、所定の遅延時間だけデータXDを遅延させてスレーブラッチ回路22に入力する。この遅延回路DE2によって、スレーブラッチ回路21、22が同一のSETパルスを同時にラッチすることがないようにしている。なお、遅延回路DE2による遅延時間は、クロックの同一の立ち上がりでスレーブラッチ回路21、22がそれぞれデータXDをラッチすることができる程度の極めて短い時間である。遅延回路DE1による遅延時間についても同様である。
スレーブラッチ回路21の出力は、インバータ31を介してCエレメント回路23に入力され、スレーブラッチ回路22の出力は、インバータ32を介してCエレメント回路23に入力される。なお、インバータ31を含めてスレーブラッチ回路21とし、インバータ32を含めてスレーブラッチ回路22としてもよい。
Cエレメント回路23は、PMOSのFETであるトランジスタM16〜M18と、NMOSのFETであるトランジスタM19〜M21とから構成されている。Cエレメント回路23は、電源供給端とグランドとの間に、電源供給端側からトランジスタM16、M17、・・・M21をその順番で直列に接続してある。Cエレメント回路23は、トランジスタM18、M19のドレイン同士の接続点n2がウィークキーパ回路24に接続されるとともに、スレーブラッチ部12の出力端とされている。
トランジスタM17、M19のゲートには、インバータ31の出力端が、トランジスタM18、M20のゲートには、インバータ32の出力端がそれぞれ接続されている。また、トランジスタM16は、そのゲートにストア信号が入力され、トランジスタM21は、そのゲートにストア信号をインバータ33で反転した信号(/WCK)が入力される。
上記のように接続されたCエレメント回路23は、ストア信号が非アクテイブ(Lレベル)となっている場合、前述のマスタラッチ部11のCエレメント回路18と同様に、スレーブラッチ回路21、22が同じデータを出力しているときにだけ、スレーブラッチ回路21、22が出力しているデータ(「1」または「0」)を接続点n2から出力データQとして出力する。この出力データQは、スレーブラッチ部12の出力、すなわち不揮発性フリップフロップ装置10の出力となる。また、スレーブラッチ回路21、22から異なるデータが出力されているときには、Cエレメント回路23は、トランジスタM17、M18またはトランジスタM19、M20のいずれか一方がオフとなるため、出力データQを出力せず、接続点n2をハイインピーダンスにする。
さらに、ストア信号がアクテイブ(Hレベル)となっている場合には、Cエレメント回路23は、トランジスタM16、M21がそれぞれオフになるため、スレーブラッチ回路21、22が出力するデータの異同にかかわらず、接続点n2がハイインピーダンスになる。これにより、後述するストア中にウィークキーパ回路24の保持したデータが変化することを防止している。
ウィークキーパ回路24は、トランジスタM24、M25で構成されるインバータ35と、トランジスタM26、M27で構成されたインバータ36とで構成されている。トランジスタM24、M26は、PMOSのFETであり、トランジスタM25、M27は、NMOSのFETである。
インバータ35のトランジスタM24は、ソースが電源供給端に接続され、トランジスタM25は、ソースがMTJ素子J30、トランジスタM36を介してグランドされ、トランジスタM24、M25のドレイン同士が接続されている。また、インバータ36のトランジスタM26は、ソースが電源供給端に接続され、トランジスタM27は、ソースがMTJ素子J31、トランジスタM36を介してグランドされ、トランジスタM26、M27のドレイン同士が接続されている。この例では、トランジスタM24のソースがインバータ35の正側電源端でありトランジスタM25のソースがインバータ35の負側電源端になる。トランジスタM26のソースがインバータ36の正側電源端でありトランジスタM27のソースがインバータ36の負側電源端になる。
第2のインバータとしての上記インバータ35、36は、クロスカップルされて、マルチバイブレータを形成している。すなわち、インバータ35の入力端であるトランジスタM24、M25のドレイン同士の接続点na3とインバータ36の出力端であるトランジスタM26、M27の各ゲートとが接続され、インバータ36の入力端であるトランジスタM26、M27のドレイン同士の接続点nb3とインバータ35の出力端であるトランジスタM24、M25の各ゲートとが接続されている。
上記のように構成されたウィークキーパ回路24は、通常動作時では、接続点n2から出力されている出力データQを保持し、接続点n2がハイインピーダンスとなった場合に、接続点n2の電位を保持している出力データQに応じたものにする。これにより、接続点n2がハイインピーダンスとなった場合に、そのハイインピーダンスとなる前までの出力データQを継続して不揮発性フリップフロップ装置10から出力する。
上記のCエレメント回路23とウィークキーパ回路24とにより、スレーブラッチ回路21、22の一方のラッチしたデータが反転してもエラーにならないようにしている。
スレーブラッチ部12では、スレーブラッチ回路21に記憶部25が、スレーブラッチ回路22に記憶部26が接続されており、ウィークキーパ回路24には記憶部27が接続されている。記憶部25〜27は、それが接続された回路が保持するデータを不揮発的に記憶するものである。
記憶部25は、2個のMTJ(Magnetic Tunnel Junction)素子J10、J11とから構成されている。記憶部26、27についても、MTJ素子J20、J21と、MTJ素子J30、J31とから構成されている。MTJ素子J10、J11、J20、J21、J30、J31の構成は同じであるので、以下、MTJ素子J10を例に説明する。なお、この例では記憶部25、26が第1不揮発性記憶部であり、記憶部27が第2不揮発性記憶部である。また、記憶部25、26を構成するMTJ素子J10、J11、J20、J21が第1のMTJ素子であり、記憶部27を構成するMTJ素子J20、J21が第2のMTJ素子である。
図3において、MTJ素子J10は、磁壁移動型のものであり、自由磁性層L1と自由磁性層L1上に形成された絶縁体層L2と、絶縁体層L2の上に形成された固定磁性層L3とを有している。また、MTJ素子J10は、固定磁性層L3の上面に第1端子P1が設けられ、自由磁性層L1の下面の長手方向の両端に下部端子である第2端子P2と第3端子P3が設けられており、3端子型のものである。
固定磁性層L3は、磁化方向が一方向に固定されている。例えば、図4(A)、(C)に示すように、固定磁性層L3は、右方向(第2端子P2から第3端子P3に向かう方向)に磁化方向が固定されている。自由磁性層L1は、その右側に磁化方向が右方向の磁区があり、左側に磁化方向が左向の磁区がある。図4(A)のように、これら各磁区の境界領域である磁壁Wmが自由磁性層L1の中央より左側(以下、単に左側という)にある磁化状態が、固定磁性層L3と自由磁性層L1との磁化が平行な平行状態であり、図4(C)のように、磁壁Wmが自由磁性層L1の中央よりも左側(以下、単に右側という)にある磁化状態が、固定磁性層L3と自由磁性層L1との磁化が逆向きの反平行状態である。
MTJ素子J10は、平行状態の場合に、第1端子P1と下部端子(第2、第3端子P2、P3)との間の電気抵抗が低い低抵抗状態であり、磁化方向が反平行状態の場合、第1端子P1と下部端子との間の電気抵抗が高い高抵抗状態である。この例では、平行状態(低抵抗状態)を1ビットデータの「0」に、反平行状態(高抵抗状態)を1ビットデータの「1」に対応させている。なお、低抵抗状態における低抵抗と高い高抵抗状態の高抵抗とは相対的な高低である。また、例えば、MTJ素子J10は、平行状態が第1磁化状態であり、反平行状態が第2磁化状態である。
磁壁Wmは、自由磁性層L1に流す電流の向きと反対方向に移動する。このため、例えば、図4(A)に示すように、磁壁Wmが自由磁性層L1の左側にある状態で、図4(B)に示すように、第3端子P3から第2端子P2方向(左方向)に流れる電流Iw1を流した場合、図4(C)に示すように、磁壁Wmは右側に移動して、MTJ素子J10は高抵抗状態になる。また、図4(C)に示すように、磁壁Wmが自由磁性層L1の右側にある状態で、図4(D)に示すように、第2端子P2から第3端子P3方向(右方向)に流れる電流Iw0を流した場合、図4(A)に示すように、磁壁Wmは左側に移動して、MTJ素子J10は低抵抗状態になる。このようにして、MTJ素子J10は、向きの異なる電流Iw0,Iw1によって、データ「0」または「1」を記憶させることができる。なお、第2、第3端子P2、P3間の電流を停止しても磁化状態が維持され、データを不揮発的に記憶できる。
なお、上記では、自由磁性層L1、固定磁性層L3の磁化方向を左右方向としたが、各層に垂直な方向でもよい。各記憶部25〜27において、固定磁性層の磁化方向が互いに逆向きの一対のMTJ素子を用いることもできる。
MTJ素子J10は、磁化反転、すなわち平行状態と反平行状態との相互に切り替えは確率的に生じ、磁化反転に必要な書込電流(臨界電流)を流す必要がある。図5に示すように、臨界電流を流す時間(τP)を長くすることで、磁化反転の確率Pwは高くなり100%に近づけることができる。なお、確率が完全に100%になるわけではないので、極めて低い確率であるが磁化反転が失敗する書込エラーとなる場合がある。
図2に示すように、記憶部25では、MTJ素子J10の第1端子P1が接続点nb1に接続されており、MTJ素子J11の第1端子P1が接続点na1に接続されている。また、記憶部26についても、同様であり、MTJ素子J20の第1端子P1が接続点nb2に接続されており、MTJ素子J21の第1端子P1が接続点na2に接続されている。記憶部27では、MTJ素子J30の第1端子P1がトランジスタM25のソースに接続され、MTJ素子J31の第1端子P1がトランジスタM27のソースに接続されている。
MTJ素子J10、J11、J20、J21、J30、J31は、それらの第2端子P2と第3端子P3とを用いて、書込電流を流す経路を形成する配線40により直列に接続されて、ストア回路28に接続されている。具体的には、ストア回路28からMTJ素子J10の第2端子P2―MTJ素子J10の第3端子P3―MTJ素子J11の第3端子P3―MTJ素子J11の第2端子P2―MTJ素子J20の第2端子P2―MTJ素子J20の第3端子P3―MTJ素子J21の第3端子P3―MTJ素子J21の第2端子P2―MTJ素子J31の第3端子P3―MTJ素子J31の第2端子P2―MTJ素子J30の第2端子P2―MTJ素子J30の第3端子P3を経てストア回路28に戻るように配線40によって接続されている。同一のMTJ素子の第2端子P2と第3端子P3との間の接続は、自由磁性層L1によるものである。
上記のように接続することによって、各記憶部25〜27のそれぞれにおいては、それを構成する一対のMTJ素子の固定磁性層L3の磁化方向と第2端子P2と第3端子P3との間に流れる向きとの関係を互い逆にしてある。すなわち、配線40に流れる同一方向の書込電流は、一対のMTJ素子の一方に対しては電流Iw0となり他方に対しては電流Iw1となる。
ストア回路28は、出力データQ、すなわちウィークキーパ回路24が保持しているデータに応じた内容を記憶部25〜27にストア(記憶)するためのものであり、出力データQが「1」である場合と「0」である場合とで互いに逆向きの書込電流Ia、Ibのいずか一方を配線40に流す。書込電流Iaは、ストア回路28からMTJ素子J10、MTJ素子J11等を経てストア回路28に戻る向きの電流である。一方の書込電流Ibは、ストア回路28からMTJ素子J30からMTJ素子J31等を経てストア回路28に戻る向きの電流である。
ストア回路28は、4個のトランジスタM31〜M34と、NOR回路41、42とを有する。トランジスタM31〜M34としては、NMOSのFETが用いられている。トランジスタM31、M32と、トランジスタM33、M34とは、それぞれ電源供給端とグランドとの間に直列に接続されている。トランジスタM31、M32のソースとドレインとの接続点は、MTJ素子J30の第3端子P3に接続され、トランジスタM33、M34のソースとドレインとの接続点は、MTJ素子J10の第2端子P2に接続されている。また、トランジスタM31、M34の各ゲートは、それぞれNOR回路42の出力端に接続され、トランジスタM32、M33の各ゲートは、それぞれNOR回路41の出力端に接続されている。このように接続されたトランジスタM31〜M34は、Hブリッジを形成しており、配線40に向きの異なる書込電流Ia、Ibのいずか一方を流す。
NOR回路41、42は、それぞれ一方の入力端にインバータ33を介してストア信号を反転した信号が入力される。NOR回路41は、他方の入力端にウィークキーパ回路24の接続点na3が接続されて出力データQが入力され、NOR回路42は、他方の入力端にウィークキーパ回路24の接続点nb3が接続されて出力データQが反転されて入力される。これにより、ストア回路28は、ストア信号がアクテイブ(Hレベル)であるときに、出力データQが「0」である場合には、書込電流Iaを配線40に流し、出力データQが「1」である場合には、書込電流Ibを配線40に流す。
トランジスタM36は、配線40をグランドするためのグランド用トランジスタであり、NMOSのFETが用いられている。このトランジスタM36は、ドレインが配線40に接続され、ソースがグランドされている。トランジスタM36のゲートには、インバータ33を介してストア信号を反転した信号が入力される。これにより、トランジスタM36は、ストア時以外の期間で配線40をグランドする。トランジスタM36は、リストアの際にもオンとなるので、後述するようにリストア回路29の一部にもなっている。
リストア回路29は、リストアの際に、記憶部27に記憶されたデータをウィークキーパ回路24にリストア(復元)、すなわち記憶部27のMTJ素子J30,J31の磁化状態で定まる1ビットデータをウィークキーパ回路24に保持させる回路である。リストア回路29は、PMOSのFETのトランジスタM37と、前述のトランジスタM36とで構成されている。トランジスタM37は、そのソースとドレインの一方がトランジスタM24、M25のゲートに、他方がトランジスタM26、M27のゲートにそれぞれ接続されている。トランジスタM37は、リストア時にはリストア信号がアクテイブ(Lレベル)になることに応答してオンになり、トランジスタM24〜M27の各ゲートを互いに接続する。すなわち、インバータ35、36の入力端同士を短絡する。トランジスタM37は、オンとなってから所定の時間の経過後にリストア信号が非アクテイブ(Hレベル)になることに応答してオフになる。
記憶部25、26からスレーブラッチ回路21、22へのデータの復元は、制御部14が電源復帰時にクロックを停止するとともに、ストア信号を非アクテイブによりトランジスタM36をオンとして、MTJ素子J10、J11、J20、J21の第2、第3端子P2、P3をグランドすることによって行う。したがって、制御部14は、リストアの際に、記憶部25、26のMTJ素子J10,J11、MTJ素子J20、J21の磁化状態で定まる「1」または「0」の1ビットデータをスレーブラッチ回路21、22に保持させるリストア回路である。
以下にスレーブラッチ部12における通常動作と、ストア及びそれに続くリストアとを順番に説明する。通常動作の場合、制御部14は、ストア信号(WCK)を非アクテイブ(Lレベル)、リストア信号(/RE)を非アクテイブ(Hレベル)として、所定の周期でクロックを出力する。
ストア信号がLレベルであるので、NOR回路41、42のそれぞれの一方の入力端がインバータ33によってHレベルとなる。これによって、NOR回路41、42の出力がLレベルとなり、トランジスタM31〜M34がそれぞれオフとなる。この結果、ストア回路28は、配線40に対して書込電流Ia、Ibのいずれをも流さない非動作状態になる。
また、インバータ33によって、トランジスタM36のゲートがHレベルとなるため、オンとなったトランジスタM36により配線40がグランドされた状態になる。さらに、Hレベルのリストア信号によりトランジスタM37がオフとなり、ウィークキーパ回路24のインバータ35、36がクロスカップルされた状態になり、ウィークキーパとして機能する。
クロックに同期して、マスタラッチ部11からデータXDがスレーブラッチ部12に入力される。マスタラッチ部11への入力データDに対応するデータXDは、その入力データDを反転したものになる。したがって、例えば、「1」のマスタラッチ部11への入力データDに対応して「0」のデータXDがスレーブラッチ部12に入力され、「0」のマスタラッチ部11への入力データDに対応して「1」のデータXDがスレーブラッチ部12に入力される。なお、マスタラッチ部11の動作は、これまでのBISER型のフリップフロップ装置のマスタラッチと同じである。
スレーブラッチ回路21では、クロックがHレベルとなっているときにトランジスタM11、M12がオンになる。このトランジスタM11、M12がオンとなっている間に、マルチバイブレータMV1にデータXDが入力され、クロックがLレベルとなってトランジスタM11、M12がオフになると入力中のデータXDがマルチバイブレータMV1に保持される。
このとき、マルチバイブレータMV1では、接続点na1、接続点nb1の電位がデータXDに応じたものになる。例えばデータXDが「1」であれば、接続点na1はHレベルに、また接続点nb1はLレベルに維持される。一方、データXDが「0」であれば、接続点na1はLレベルに、接続点nb2はHレベルに維持される。
スレーブラッチ回路22には、遅延回路DE2による遅延により、スレーブラッチ回路21への入力から僅かに遅れてデータXDが入力される。そして、クロックに応答してトランジスタM13、M14がオンになっている間に、マルチバイブレータMV2にデータXDが入力され、トランジスタM13、M14がオフになることによって、入力中のデータXDがマルチバイブレータMV2に保持される。このとき、マルチバイブレータMV2の各接続点na2、nb2の電位は、接続点na1、接続点nb1の電位と同じである。
スレーブラッチ回路21、22は、マルチバイブレータMV1、MV2にデータXDが入力されている間では、データXDを反転したデータXDbが出力され、トランジスタM11〜M14がオフとなった後には、保持したデータXDを反転したデータXDbが出力される。そして、これらスレーブラッチ回路21、22からの各データXDbは、それぞれ対応するインバータ31、32を介して反転されて、Cエレメント回路23に入力される。
例えば、マスタラッチ部11からのデータXDが「1」をラッチした場合、各スレーブラッチ回路21、22からはそれぞれデータ「0」が出力される。インバータ31、32から出力されるデータをそれぞれデータS0、S1とすると、データS0、S1はいずれも「1」となり、これらがCエレメント回路23に入力される。この結果、Cエレメント回路23を構成するトランジスタM16〜M21のうち、トランジスタM17、M18は、データS0、S1によってそれぞれオフとなり、トランジスタM19、M20は、データS0、S1によってそれぞれオンとなる。また、ストア信号がLレベルであるため、トランジスタM16、M21がそれぞれオンになっている。この結果、Cエレメント回路23の接続点n2がグランド(プルダウン)され、Cエレメント回路23からLレベルすなわちデータ「0」が出力される。
一方、マスタラッチ部11からのデータXDが「0」であった場合には、各スレーブラッチ回路21、22からはそれぞれデータ「1」が出力されるから、インバータ31、32から出力されるデータS0、S1はいずれも「0」となる。この結果、Cエレメント回路23を構成するトランジスタM16〜M21のうち、トランジスタM17、M18は、データS0、S1によってそれぞれオンとなり、トランジスタM19、M20は、データS0、S1によってそれぞれオフとなる。また、この場合にも、ストア信号がLレベルであるため、トランジスタM16、M21がそれぞれオンになっている。この結果、Cエレメント回路23の接続点n2が電源供給端に接続(プルアップ)され、Cエレメント回路23からHレベルすなわちデータ「1」が出力される。
上記のCエレメント回路23から出力されたデータは、スレーブラッチ部12の出力データQとして出力されるとともに、ウィークキーパ回路24に入力されることにより、そのウィークキーパ回路24に保持される。例えば、Cエレメント回路23からデータ「1」が出力されている場合には、接続点na3がHレベル、接続点nb3がLレベルにそれぞれ保持された状態になる。逆に、Cエレメント回路23からデータ「0」が出力されている場合には、接続点na3がLレベル、接続点nb3がHレベルにそれぞれ保持された状態になる。
スレーブラッチ部12から出力データQの出力後、マスタラッチ部11からのデータXDが「1」から「0」へ、また「0」から「1」に変化すれば、上記と同様な手順で各部が動作してCエレメント回路23から出力されるデータも変化する。そして、その変化に応じて出力データQ及びウィークキーパ回路24に保持されるデータも変化する。
ところで、ソフトエラーが発生した場合、例えば、クロックが立ち上がるときに、スレーブラッチ部12にSETパルスが入力された場合、スレーブラッチ回路21とスレーブラッチ回路22とでは、SETパルスについても相互の入力タイミングがずれるため、そのSETパルスをラッチして、ラッチしたデータが反転してしまうのは、スレーブラッチ回路21とスレーブラッチ回路22のいずれか一方だけにとどまる。また、SEUによって、既にラッチしているデータが反転してしまうのも、スレーブラッチ回路21とスレーブラッチ回路22のいずれか一方だけにとどまる。
以下、上記のようなソフトエラーが発生した場合について、スレーブラッチ回路22のラッチしているデータが「1」から「0」に反転した場合を例に説明する。なお、この場合、ソフトエラーが発生していなければ、スレーブラッチ回路21、22は、いずれもデータ「1」をラッチしてデータ「0」を出力する。また、Cエレメント回路23からは、データ「0」が出力され、これが出力データQとしてスレーブラッチ部12から出力されているとともに、ウィークキーパ回路24はデータ「0」を保持している。
上記のようなソフトエラーが生じると、スレーブラッチ回路22から出力されるデータが「1」から「0」に変化する。そして、インバータ32からのデータS1が「0」から「1」に変化する。このため、それまでオフであったトランジスタM20がオンとなり、オンであったトランジスタM18がオフとなる。また、このときに、トランジスタM19は、継続してオフとなっている。したがって、トランジスタM18がオフとなる結果、接続点n2は、電源供給端にもグランドにも接続されていないハイインピーダンスになる。
接続点n2がハイインピーダンスになる直前までは、ウィークキーパ回路24は、Cエレメント回路23からのデータ「0」が入力されており、上述のように、そのデータ「0」を保持した状態にあり接続点na3はLレベルである。そして、ウィークキーパ回路24は、接続点n2がハイインピーダンスになってもデータの保持状態を維持する。結果として、ウィークキーパ回路24の接続点na3のLレベル、すなわちウィークキーパ回路24が保持しているデータ「0」が出力データQとして出力され、出力データQは「0」に維持されソフトエラーの影響を受けない。
なお、ウィークキーパ回路24が保持しているデータは、それがソフトエラーで反転することも考えられるが。この場合、Cエレメント回路23からの出力が入力されていることによって、その反転は直に修正される正常なデータを保持した状態に維持される。
次にストア及びリストアについて説明する。ストアは、前述のように電源電圧VDDを遮断する直前に行われる。制御部14は、ストアのために、クロック(CLK)を停止してから、ストア信号(WCK)をアクテイブ(Hレベル)とする。なお、リストア信号(/RE)は、非アクテイブが維持される。
Hレベルのストア信号は、インバータ33を介してLレベルとなり、これがNOR回路41、42のそれぞれの一方の入力端に入力される。一方で、出力データQ、すなわちウィークキーパ回路24が保持しているデータに応じて、接続点na3,nb3のいずれか一方がHレベル、他方がLレベルとなっている。そして、NOR回路41、42の各々の他方の入力端には、このウィークキーパ回路24の接続点na3,nb3が接続されているから、NOR回路41、42の一方の出力がHレベルとなり、他方の出力がLレベルになる。
例えば、出力データQが「1」になっている場合には、ウィークキーパ回路24が保持しているデータが「1」であるので、接続点na3がHレベル、接続点nb3がLレベルになっている。このため、NOR回路41の出力がLレベル、NOR回路42の出力がHレベルとなる。これにより、トランジスタM31、M34がオン、トランジスタM32、M33がオフとなって、配線40に書込電流Ibが流れる。
書込電流Ibは、ストア回路28からMTJ素子J30−MTJ素子J31−MTJ素子J21−MTJ素子J20−MTJ素子J11−MTJ素子J10を経てストア回路28に戻る向きに流れる。そして、このときに書込電流Ibは、MTJ素子J11、J21、J31では、第2端子P2から自由磁性層L1を通って第3端子P3に向かう方向、すなわち電流Iw0として流れる。このため、MTJ素子J11、J21、J31は、それぞれ低抵抗状態になり、データ「0」が記憶される。また、書込電流Ibは、MTJ素子J10、J20、J30では、第3端子P3から自由磁性層L1を通って第2端子P2に向かう方向、すなわち電流Iw1として流れる。このため、MTJ素子J10、J20、J30は、それぞれ高抵抗状態になり、データ「1」が記憶される。
この後、制御部14は、ストア信号をLレベルとして非アクテイブにしてから、電源供給端への電源電圧VDDを遮断する。
制御部14は、電源電圧VDDの遮断後、電源電圧VDDの供給を再開する際には、リストアのために、リストア信号をアクテイブ(Lレベル)にしてから、電源電圧VDDの供給を開始する。リストア信号は、一定時間の経過後に非アクテイブ(Hレベル)にされる。なお、リストア時には、クロックの停止を維持するとともに、ストア信号を非アクテイブに維持する。ストア信号が非アクテイブ(Lレベル)であるため、トランジスタM36がオンとなり、配線40を介して、各MTJ素子の第2、第3端子P2、P3がグランドされた状態になる。
ウィークキーパ回路24及び記憶部27については、リストア信号がLレベルとなることで、トランジスタM37がオンとなって、トランジスタM24〜M27のゲートが接続された状態になる。電源電圧VDDの供給が開始されると、上記のように各MTJ素子の第2、第3端子P2、P3がグランドされているから、トランジスタM25とトランジスタM27のソースに、それぞれMTJ素子J30、J31を介して電流が流れる。上述のストア動作によってMTJ素子J30は高抵抗状態とされ、MTJ素子J31は低抵抗状態となっているから、MTJ素子J30によりもMTJ素子J31の抵抗値が低い。このため、トランジスタM25のソース電位よりもトランジスタM27のソース電位が低くなる。トランジスタM25とトランジスタM27は、ゲート同士が接続されているから、トランジスタM25に対して、ソース電位が低いトランジスタM27のゲートーソース間電圧が大きくなり、ドレインーソース間抵抗が低くなる。
この状態で、リストア信号が非アクテイブに応答してトランジスタM37がオフとなることによって、トランジスタM24、M25のゲートと、トランジスタM26、M27のゲートとが切り離される。上記のようにトランジスタM25に対してトランジスタM27のドレインーソース間抵抗が低いので、接続点na3の電位よりも接続点nb3の電位が低い。そして、このように相対的に電位の低い接続点nb3がトランジスタM24、M25のゲートに接続され、電位の高い接続点na3がトランジスタM26、M27のゲートに接続されているから、インバータ35、36の相互の正帰還作用により、接続点na3はHレベルの電位まで上がり、接続点nb3はLレベルの電位まで下がる。この結果、リストア前と同じく、接続点na3がHレベル、接続点nb3がLレベルに維持され、ウィークキーパ回路24としてはデータ「1」を保持した状態になる。
図6に示すように、スレーブラッチ回路21及び記憶部25については、トランジスタM36、配線40を介してMTJ素子J10、J11の第2、第3端子P2、P3がそれぞれグランドされた状態になる。このようにMTJ素子J10、J11の第2、第3端子P2、P3がグランドされると、インバータ21aを構成するトランジスタM41、M42及びインバータ21bを構成するトランジスタM43、M44のうちトランジスタM41、M43にそれぞれドレイン電流が流れる。一方、上述のストアによってMTJ素子J10が高抵抗状態とされ、MTJ素子J11が低抵抗状態となっているから、相対的にMTJ素子J10よりもMTJ素子J11の抵抗が低い。このため、接続点na1は、接続点nb1の電位よりも低い。電源電圧VDDが上昇するのにしたがって、接続点na1、nb1の電位は高くなるが、接続点na1は、接続点nb1の電位よりも低い。
接続点nb1の電位の上昇により、トランジスタM44のドレインーソース間が導通した状態になると、接続点na1の電位は、低下して最終的に0VすなわちLレベルになる。また、これにともないトランジスタM43はオフになる。一方、接続点na1の電位が0Vになることにより、トランジスタM41がオンになって、接続点nb1の電位が電源電圧VDDすなわちHレベルになる。この結果、リストア前と同じく、接続点na1がLレベル、接続点nb1がHレベルに保持される。すなわち、スレーブラッチ回路21としては、データ「0」を保持した状態になる。
スレーブラッチ回路22及び記憶部26についても、上記スレーブラッチ回路21及び記憶部25の場合と同様であり、リストア前と同じく、接続点na2がLレベル、接続点nb2がHレベルであり、スレーブラッチ回路22としてデータ「0」を保持した状態になる。
上記のようにストアの際の出力データQが「1」である場合、ウィークキーパ回路24が保持しているデータは「1」である。また、その出力データQのとなるデータXDの本来の値は「0」である。そして、この場合には、ソフトエラー等によってラッチしたデータが反転していなければ、スレーブラッチ回路21、22は、データ「0」をラッチしている。したがって、リストア動作後に、スレーブラッチ回路21、22、ウィークキーパ回路24は、リストア動作によってストア前の状態に復元される。
一方、ストア時の出力データQが「0」である場合には、ウィークキーパ回路24が保持しているデータが「0」になっているから、接続点na3がLレベル、接続点nb3がHレベルになっている。このため、NOR回路41の出力がHレベル、NOR回路42の出力がLレベルとなる。これにより、トランジスタM32、M33がオン、トランジスタM31、M34がオフとなって、配線40に書込電流Iaが流れる。
書込電流Iaは、ストア回路28からMTJ素子J10−MTJ素子J11−MTJ素子J20−MTJ素子J21−MTJ素子J31−MTJ素子J30を経てストア回路28に戻る向きに流れる。そして、このときに書込電流Iaは、MTJ素子J10、J20、J30では、第2端子P2から自由磁性層L1を通って第3端子P3に向かう方向の電流Iw0として流れる。このため、MTJ素子J10、J20、J30は、それぞれ低抵抗状態になり、データ「0」が記憶される。また、書込電流Iaは、MTJ素子J11、J21、J31では、第3端子P3から自由磁性層L1を通って第2端子P2に向かう方向の電流Iw1として流れる。このため、MTJ素子J11、J21、J31は、それぞれ高抵抗状態になり、データ「1」が書き込まれる。
出力データQが「0」であるときのストア後に行われるリストアは、上記と同様な手順で行われる。この場合、各MTJ素子J10、J11、J20、J21、J30、J31に書き込まれているデータが、出力データQが「1」であるときのストア後とは逆である。したがって、ウィークキーパ回路24の接続点na3がLレベル、接続点nb3がHレベルとなり、ウィークキーパ回路24としてはデータ「0」を保持した状態になる。また、接続点na1がHレベル、接続点nb1がLレベルになり、スレーブラッチ回路21としてはデータ「1」を保持した状態になる。同様に、スレーブラッチ回路22としてデータ「1」を保持した状態になる。
上記のようにストアの際の出力データQが「0」である場合、ウィークキーパ回路24が保持しているデータは「0」である。また、その出力データQのとなるデータXDの本来の値は「1」である。そして、この場合には、ソフトエラー等によってラッチしたデータが反転していなければ、スレーブラッチ回路21、22は、それぞれデータ「1」をラッチしている。したがって、リストア後に、スレーブラッチ回路21、22、ウィークキーパ回路24は、リストア動作によってストア前の状態に復元される。
ところで、ストア時に、ソフトエラーによってスレーブラッチ回路21、22の一方のデータが反転している可能性がある。しかしながら、この不揮発性フリップフロップ装置10のストアでは、上述のように出力データQに応じて、ウィークキーパ回路24に保持されたデータを各記憶部25、26に書き込んでいるため、スレーブラッチ回路21、22の一方のデータが反転しても、ソフトエラーによって反転していないデータが各記憶部25、26に記憶される。そして、リストアによって各記憶部25、26に記憶されデータが対応するスレーブラッチ回路21、22に復元される。
したがって、ストア及びその後のリストアによって、データが正しく訂正(コレクション)され、スレーブラッチ回路21、22が正常なデータをラッチした状態になる。これにより、反転して誤ったデータをそのまま復元する場合に比べて、スレーブラッチ回路21、22がラッチしているデータが同時に反転する確率が低くなり、スレーブラッチ部12及び不揮発性フリップフロップ装置10のエラー耐性が高くなる。
例えば、電源電圧が不安定であって電源遮断と復帰が頻繁になるような、振動や熱、光等の微小なエネルギーを電力に変換するエネルギーハーベスティング技術(環境発電技術)を用いた演算装置等に不揮発性フリップフロップ装置10を用いることは、ストア、リストアが頻繁に行われることから有用である。
また、MTJ素子J10、J11、J20、J21、J30、J31にデータを書き込む際には、MTJ素子J10、J11、J20、J21、J30、J31を配線40上に接続し、1つの電流経路に書込電流IaまたはIbを流す構成としているので、MTJ素子1個ごと、あるいは記憶部25〜27ごとに書込電流を流す場合よりも小さい書込エネルギーで6個のMTJ素子J10、J11、J20、J21、J30、J31にデータを書き込むことができる。換言すれば、同一の書込エネルギーであれば、MTJ素子1個ごとあるいは記憶部25〜27ごとに書込電流を流す場合よりも、MTJ素子の書込エラーの発生確率を低くすることができる。
3端子型のMTJ素子は、第2、第3端子間に書込電流を流すことにより書き込みを行うため、書込抵抗(第2、第3端子間の電気抵抗)が数十Ω程度と小さく、第2端子と第3端子とを用いて複数のMTJ素子を直列に接続し、同一の書込電流で複数のMTJ素子に同時に書き込みをすることができる。これにより、上記のように複数のMTJ素子に対する同一の書込電流での書き込みによる書込エネルギーの低減効果が得られる。一方、2端子型のMTJ素子は、書込抵抗(2端子間の電気抵抗)が数kΩと大きいため、複数のMTJ素子に対する同一の書込電流による書き込みが困難である。
図7は、上記不揮発性フリップフロップ装置10において、ストア及びその後のリストアによってデータが訂正されることを確認した動作波形を示している。シミュレーションでは、一対のスレーブラッチ回路21、22のうちスレーブラッチ回路21がSETパルスによって正常なデータではなく反転したデータをラッチした状態を意図的に作り出し、ストアを行ってから電源を遮断し、電源の復帰時にリストアを行うようにした。
電源遮断前では、スレーブラッチ回路21、22の後段のインバータ31、32から出力されるデータS0、S1のうち、スレーブラッチ回路22に対応したデータS1は、正常な「0」になっているのに対して、スレーブラッチ回路21に対応したデータS0は、反転した「1」になっている。この状態において、出力データQは「1」になっている。これは、Cエレメント回路23とウィークキーパ回路24によって、スレーブラッチ回路21がラッチしているデータがマスキングされ、ウィークキーパ回路24がそれまでの正常な出力データQを維持するためである。
電源が復帰すると、スレーブラッチ回路21、22に対応したデータS0、S1がともに「0」を出力しており、スレーブラッチ回路21の保持するデータが正常な「1」に訂正されていることがわかる。もちろん、出力データQも正常な「1」となっている。
以下、信頼性をシミュレーションした結果について説明する。本例の不揮発性フリップフロップ装置10のスレーブラッチ部12とともに、参考例の不揮発性フリップフロップ装置におけるスレーブラッチ部12A(図8参照)と、従来例としての図15に示す不揮発性フリップフロップ装置90のスレーブラッチ回路92と不揮発性記憶回路93からなるスレーブラッチ部とをあわせて評価した結果を示す。
シミュレーションでは、本例、参考例、従来例の各スレーブラッチ部を65nmCMOS/MTJ技術を用いて作製したものとした。また、MTJ素子は、いずれも高抵抗状態における抵抗値が24kΩ、低抵抗状態における抵抗値が18kΩ、書込抵抗(第2端子P2と第3端子P3との間の抵抗)が75Ω、臨界電流が100μAである。また、ストア時には、MTJ素子のそれぞれに200μAの書込電流を流すものとした。さらに、電源電圧VDDは、1.0Vとした。
図8に参考例のスレーブラッチ部12Aを示す。参考例の不揮発性フリップフロップ装置は、本例の不揮発性フリップフロップ装置10と同じBISER構造のマスタ−スレーブ型フリップフロップ回路である。この参考例の不揮発性フリップフロップ装置は、スレーブラッチ部12Aが、各スレーブラッチ回路とウィークキーパ回路とのそれぞれにストア回路及びリストア回路を設けている点と、各記憶部が対応するスレーブラッチ回路、ウィークキーパ回路に保持または入力されるデータを記憶する点で本例の不揮発性フリップフロップ装置10と異なっている他は同じ構成である。このため、参考例の不揮発性フリップフロップ装置のマスタラッチ部の図示及びその詳細な説明を省略する。また、以下の説明では、スレーブラッチ部12の部材と実質的に同じ部材には同一の符号を付して、その詳細な説明を省略する。
スレーブラッチ部12Aは、第1回路部51、第2回路部52、Cエレメント回路23、ウィークキーパ回路24、記憶部27、ストア回路28A、リストア回路29、トランジスタM36A等で構成されている。ストア回路28Aは、ストアの際に、出力データQに応じた内容を記憶部27にストアするためのものであり、出力データQが「1」である場合と「0」である場合とで互いに逆向きの書込電流を配線40Aを介してMTJ素子J30,J31にだけ流す。ストア回路28Aの構成は、不揮発性フリップフロップ装置10のストア回路28の構成と同じであり、ストア回路28のトランジスタM31〜M34、NOR回路41、42に対応したトランジスタM31A〜M34A、NOR回路41A、42Aから構成されている。トランジスタM36Aは、ストア信号を反転した信号(WCKb)がゲートに入力され、通常動作及びリストアの際にオンとなって、MTJ素子J30,J31の各々の第2、第3端子P2、P3をグランドする。
第1回路部51は、スレーブラッチ回路21B、記憶部25B、ストア回路28B、リストア回路29B、トランジスタM36Bで構成されている。スレーブラッチ回路21Bは、スレーブラッチ回路21と同じ構成である。記憶部25Bは、MTJ素子J10の第1端子P1が接続点na1に、MTJ素子J11の第1端子P1が接続点nb1にそれぞれ接続されている。また、この記憶部25BのMTJ素子J10、J11は、記憶部27のMTJ素子J30、J31と同様な接続であり、それらの第2端子P2同士が接続されている。
ストア回路28Bは、ストアの際に、スレーブラッチ回路21Bに入力されているデータXDに応じた内容を記憶部25Bにストアするためのものであり、データXDが「1」である場合と「0」である場合とで互いに逆向きの書込電流を配線40Bを介してMTJ素子J10,J11にだけ流す。このストア回路28Bの構成は、ストア回路28Aの構成と同じであり、ストア回路28AのトランジスタM31A〜M34A、NOR回路41A、42Aに対応したトランジスタM31B〜M34B、NOR回路41B、42Bから構成されている。トランジスタM36Bは、トランジスタM36Aと同様にストア信号を反転した信号の入力でオンとなりMTJ素子J10,J11の各々の第2、第3端子P2、P3をグランドする。リストア回路29BのトランジスタM37Bは、トランジスタM37と同様に、記憶部25Bに記憶されているデータをスレーブラッチ回路21Bに復元するリストアの際に、リストア信号(/RE)がアクテイブになることによってオンとなり、インバータ21a、21bの入力端同士を接続する。
第2回路部52は、第1回路部51と同じ構成であるので、その構成の図示及びその詳細な説明を省略する。この第2回路部52には、データXDが遅延回路DE2で遅延されて入力される。
図9、図10は、本例、参考例、従来例の各スレーブラッチ部の書込エラー耐性を示すグラフである。図9のグラフの横軸は、MTJ素子の書込時間、すなわち書込電流を流している時間(単位:ナノ秒)を示しており、縦軸はリストアエラー発生確率を示している。リストアエラーは、リストアの結果として誤った出力データQが出力される確率を示している。また、図10のグラフの横軸は、書込エネルギー、すなわち各記憶部にデータを記憶させるのに必要なエネルギー(単位:pJ)を示しており、縦軸はリストアエラー発生確率を示している。なお、図9、図10のグラフは、いずれもソフトエラーがないことを前提としている。
図9、図10では、線A1、A2が本例のものであり、線B1、B2が参考例のスレーブラッチ部12A(以下、単に参考例という)のものである。また、線C1、C2が従来例のスレーブラッチ部(以下、単に従来例という)のものである。
図9のグラフに示されるように、本例、参考例、従来例のいずれにおいても、書込時間が長くなるほど、リストアエラー発生確率が低下する傾向を示す。しかしながら、同一の書込時間に対するリストアエラー発生確率は、従来例に比べて本例及び参考例は低い。これは、本例及び参考例では、書込エラーが発生しても、Cエレメント回路23とウィークキーパ回路24とによって、そのデータがマスキングされるためである。
また、本例と参考例とでは、同じ書込時間であればリストアエラー発生確率が同じになる。しかしながら、図10に示すように、本例は、書込エネルギーに対するリストアエラー発生率は、参考例に比べて低い。これは、本例は、各記憶部25〜27に対して共通の書込電流(Ia、Ib)を流しているのに対して、参考例は、記憶部ごとに書込電流を流しており、3倍の書込電流が必要なためである。この違いにより、本例は、同一の書込エネルギーで、参考例に対して10−9倍もリストアエラーの発生確率を低くすることができることがわかる。
図11、図12は、ソフトエラーの発生を考慮した場合の書込エネルギーとリストアエラー発生確率との関係を示している。図11は、ソフトエラー発生確率を10−6とし、図12は、ソフトエラー発生確率を10−3としたものである。図11、図12では、線A3、A4が本例のものであり、線B3、B4が参考例のものである。また、線C3、C4は従来例のものである。
図10に示されるソフトエラーが発生しないことを前提とした場合に比べて、ソフトエラー発生確率を考慮した場合では、参考例及び従来例のリストアエラー発生確率が、ソフトエラー発生確率分だけ高くなる。これに対して、本例では、ソフトエラーの影響が見られず、ソフトエラーの発生を考慮してもリストアエラーが悪化することがない。この違いにより、本例は、同一のリストアエラーの発生確率に対する書込エネルギーを、ソフトエラー発生確率が10−6の場合では参考例の1/3にすることができ、ソフトエラーの発生確率が10−3の場合では参考例の1/4にすることができる。
図13、図14のグラフは、1日当たりのストア/リストアの回数とFIT(Failure In Time:単位時間当たりの平均故障発生件数)との関係を示している。図13、図14のグラフの縦軸は、109時間当たりの平均故障発生件数であり、横軸は1日当たりのストア/リストアの回数を示している。ストア/リストアの回数は、ストア信号をアクテイブとするストアから、この後の電源遮断、電源復帰、リストアまでの一連の動作を1回とした回数である。なお、図13、図14のいずれの場合も、書込エネルギーは、1.59pJとし、図13では、ソフトエラーの発生確率を10−6とし、図14では、ソフトエラーの発生確率を10−3としている。図13、図14では、線A5、A6が本例のものであり、線B5、B6が参考例のものである。また、線C5、C6は従来例のものである。
本例、参考例、及び従来例のいずれにおいても、1日当たりのストア/リストアの回数が増大すると、FITも増大する傾向を示すが、本例は、参考例及び従来例に比べて、FITが約10−16倍と非常に小さいことがわかる。
次の表1は、本例と参考例とを比較したものである。本例は、参考例に対してMTJ素子の個数が同じであるが、トランジスタの個数が参考例では77素子であるのに対して本例では56素子と少ない。これにより、本例では、スレーブラッチ部12の面積を31%縮小することができる。また、書込配線本数が、参考例では3本であるのに対して、本例では1本と少ないため、書込エネルギーが参考例に対して65%低減される。ソフトエラー耐性は、参考例では1ビットマスキングしかできないのに対して、本例では1ビットコレクション(訂正)が可能であり、これにより、FITを4桁低減することができる。
なお、表1中の書込エネルギーは、書込時間を7.95(ナノ秒)とした場合の値である。また、FITは、ソフトエラーの発生確率を10−6とし、1日当たりのストア/リストアの回数を1万回とした場合で、本例では書込エネルギーを1.59pJとし、参考例では書込エネルギーを4.77pJとしたときの値である。遅延時間は、スレーブラッチ部へのデータXDの入力からスレーブラッチ部から出力データQが出力されるまでの時間であり、ダイナミック消費電力は、クロック周波数を1GHzとした場合の値である。
上記実施形態では、2つのスリーブラッチ回路の場合を例に説明したが、スレーブラッチ回路が3以上であってもよい。また、各スレーブラッチ回路がラッチしているデータが同時に反転する確率を低くする観点からは、各記憶部のそれぞれにストア回路を設けたり、各スレーブラッチ回路の各記憶部に共通なストア回路とウィークキーパ回路の記憶部にストア回路とを設けたりしてもよい。この場合においても、各ストア回路は、出力データQに応じた内容を各記憶部に記憶させるようにMTJ素子に書込電流を流す。
また、マスタスレーブ型のフリップフロップ装置のスレーブラッチ部を不揮発性とした例について説明したが、このスレーブラッチ部を各種の不揮発性ラッチ装置として利用することもできる。
さらに、上記実施形態では、3端子型のMTJ素子として磁壁移動型のものを用いているが、3端子型のMTJ素子は、これに限定されない。例えば、3端子型のMTJ素子として、スピン軌道トルク磁化反転方式のものを用いてもよい。このスピン軌道トルク磁化反転方式を用いた3端子型のMTJ素子は、スピン軌道トルクの相互作用が大きい例えばタンタル等の重金属でなるチャネル層の上に、磁化方向が反転可能な記録層、障壁層(絶縁層)、磁化方向が固定された参照層が積層され、第1端子が参照層に、第2、第3端子がチャネル層にそれぞれ設けられた構成である。そして、第2、第3端子を通してチャネル層に流す書込電流の向きにより参照層に対する記録層の磁化方向を平行、反平行状態のいずれかにする。このMTJ素子においても、第1端子と第2、第3端子との間の電気抵抗は、平行状態の場合と反平行状態の場合とで異なったものになる。