(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-31
(45)【発行日】2023-11-09
(54)【発明の名称】不揮発性論理回路
(51)【国際特許分類】
G11C 11/16 20060101AFI20231101BHJP
H03K 19/20 20060101ALI20231101BHJP
G11C 11/54 20060101ALN20231101BHJP
【FI】
G11C11/16 200
H03K19/20
G11C11/54
(21)【出願番号】P 2020562967
(86)(22)【出願日】2019-11-28
(86)【国際出願番号】 JP2019046590
(87)【国際公開番号】W WO2020137341
(87)【国際公開日】2020-07-02
【審査請求日】2022-11-15
(31)【優先権主張番号】P 2018241191
(32)【優先日】2018-12-25
(33)【優先権主張国・地域又は機関】JP
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成28年度、国立研究開発法人科学技術振興機構、研究成果展開事業 産学共創プラットフォーム共同研究推進プログラム、産業技術力強化法第17条の適用を受ける特許出願
(73)【特許権者】
【識別番号】504157024
【氏名又は名称】国立大学法人東北大学
(74)【代理人】
【識別番号】110002675
【氏名又は名称】弁理士法人ドライト国際特許事務所
(72)【発明者】
【氏名】夏井 雅典
(72)【発明者】
【氏名】羽生 貴弘
(72)【発明者】
【氏名】遠藤 哲郎
【審査官】後藤 彰
(56)【参考文献】
【文献】特開2015-170378(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G11C 11/16
H03K 19/20
(57)【特許請求の範囲】
【請求項1】
一対の抵抗変化型記憶素子を有する記憶部と、
前記記憶部に接続され、入力信号と、前記一対の抵抗変化型記憶素子の抵抗に対応する論理値とに基づく演算を実行する演算部と、
前記一対の抵抗変化型記憶素子の抵抗が相補状態にあるか非相補状態にあるかを判別する判別回路と、
前記演算部及び前記判別回路に接続され、前記演算部による演算結果に対応する信号又は前記判別回路による判別結果に対応する信号を出力する出力回路と、
を備える不揮発性論理回路。
【請求項2】
前記一対の抵抗変化型記憶素子の抵抗が相補状態にあるとき、
前記演算部は、前記入力信号と、相補状態に対応する論理値とを用いた演算を実行し、
前記出力回路は、前記演算部による演算結果に対応する信号を出力する、請求項1に記載の不揮発性論理回路。
【請求項3】
前記一対の抵抗変化型記憶素子の抵抗が非相補状態にあるとき、
前記出力回路は、前記一対の抵抗変化型記憶素子の抵抗が非相補状態にあることを示す信号を出力する、請求項1又は2に記載の不揮発性論理回路。
【請求項4】
前記一対の抵抗変化型記憶素子の抵抗が非相補状態にあるとき、
前記演算部は、前記入力信号と、非相補状態に対応する論理値とを用いた演算を実行し、
前記出力回路は、前記演算部による演算結果に対応する信号を出力する、請求項1又は2に記載の不揮発性論理回路。
【請求項5】
前記出力回路は、前記一対の抵抗変化型記憶素子の抵抗に応じて電位が変化する一対のノードを有し、
前記判別回路は、前記一対のノードの電位を検知して、前記一対の抵抗変化型記憶素子の抵抗が相補状態にあるか非相補状態にあるかを判別する、請求項1~4の何れか1項に記載の不揮発性論理回路。
【請求項6】
前記一対の抵抗変化型記憶素子の抵抗が非相補状態にあるとき、
前記判別回路は、前記一対のノードの電位が閾値よりも下がると、当該一対のノードをチャージさせる、請求項5に記載の不揮発性論理回路。
【請求項7】
前記一対の抵抗変化型記憶素子の各々は磁気トンネル接合素子である、請求項1~6の何れか1項に記載の不揮発性論理回路。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、不揮発性論理回路に関する。
【背景技術】
【0002】
ビッグデータの活用とともに人工知能(AI)技術又は深層学習(Deep Learning)技術の開発は急速に進んでおり、画像認識、音声認識、文章生成、ゲームに至るまで、様々な分野に適用されている。しかしながら、その応用範囲を広げるためには、膨大な計算及びハードウェアコストの問題を解決する必要がある。これらのコストを削減するための技術として、近年、量子化が注目されている。これは、通常浮動小数点又は固定小数点表現の数値を対象とした乗算及び加算といったディープニューラルネットワーク(DNN)における主要な処理を、量子化された数値を対象としたより省コストな演算に置き換え、計算コストの削減を図るものである。特に、3値表現を用いる3値化ニューラルネットワーク(Ternary Neural Network:TNN)は、ニューラルネットワークにおける積和演算を論理演算に置き換えられ、且つ十分な認識性能が得られることが示されており、ハードウェア化における有効な技術として特に注目されている。
【0003】
また、近年、抵抗変化型記憶素子として磁気トンネル接合素子(MTJ素子)を有する不揮発性論理回路が提案されている。従来の不揮発性論理回路は、一対のMTJ素子の相補状態((低抵抗、高抵抗)及び(高抵抗、低抵抗))に論理値(“0”及び“1”)を割り当てることで1ビットの情報を表現している(例えば、非特許文献1参照)。
【先行技術文献】
【非特許文献】
【0004】
【文献】W. Zhao, et al., “High speed, high stability and low power sensing amplifier for MTJ/CMOS hybrid logic circuits,” IEEE Transactions on Magnetics, Vol. 45, No. 10, pp. 3784-3787, 2009.
【文献】Rajendra Bishnoi et al., “Read disturb fault detection in STT-MRAM,” in Proceedings of International Test Conference (ITC), IEEE, pp. 1-7, 2014.
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来の不揮発性論理回路では、一対のMTJ素子の相補状態のみが用いられ、非相補状態((低抵抗、低抵抗)又は(高抵抗、高抵抗))は、動作の不安定性などの理由により、利用されていなかった。そのため、従来の不揮発性論理回路を用いて3値表現(例えば、-1、0、+1)をとるTNNを構築する場合、4つのMTJ素子によって3値情報(2ビット)を表現する必要があり、回路規模が大きく且つ冗長になるという問題が生じる。
【0006】
また、MTJ素子を有する不揮発性論理回路に関連して、近年、誤り検出機構が提案されている。例えば、非特許文献2には、Spin Transfer Torque Magnetic Random Access Memory(STT-MRAM)におけるリードディスターブ(read disturb)を検出する回路(Fig. 5)が開示されている。非特許文献2の回路では、1つのMTJ素子に対し、当該MTJ素子が取り得る値の中間の抵抗値を有するリファレンス抵抗と、当該MTJ素子の抵抗とリファレンス抵抗とを比較する比較回路及び制御回路が最低限必要となるため、オーバーヘッドが大きい。非特許文献2の回路を2つ組み合わせると、一対のMTJ素子が相補状態にあるか非相補状態にあるかを判別することが可能にはなるものの、回路規模が一層大きくなってしまうという問題が生じる。
【0007】
本発明は、上記課題に鑑みてなされたものであり、一対の抵抗変化型記憶素子の非相補状態を利用することで、回路規模を大きくすることなく機能の高度化を実現する不揮発性論理回路を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明の実施形態に係る不揮発性論理回路は、一対の抵抗変化型記憶素子を有する記憶部と、前記記憶部に接続され、入力信号と、前記一対の抵抗変化型記憶素子の抵抗に対応する論理値とに基づく演算を実行する演算部と、前記一対の抵抗変化型記憶素子の抵抗が相補状態にあるか非相補状態にあるかを判別する判別回路と、前記演算部及び前記判別回路に接続され、前記演算部による演算結果に対応する信号又は前記判別回路による判別結果に対応する信号を出力する出力回路と、を備える。
【発明の効果】
【0009】
本発明によれば、一対の抵抗変化型記憶素子の抵抗が相補状態にあるか非相補状態にあるかを判別し、判別結果に対応する信号を出力可能としたことにより、回路規模を大きくすることなく機能の高度化を実現することができる。
【図面の簡単な説明】
【0010】
【
図1】本発明の実施形態に係る不揮発性論理回路の機能ブロック図である。
【
図2A】不揮発性論理回路の記憶部を構成する各MTJ素子の構造を示す模式図である。
【
図2B】MTJ素子のスイッチングを説明する模式図である。
【
図2C】MTJ素子の電流-抵抗特性を表すグラフである。
【
図3】本実施形態の不揮発性論理回路により実行される処理を示すフローチャートである。
【
図4】本実施形態の不揮発性論理回路の構成を示す図である。
【
図5】
図4の不揮発性論理回路の一例として、XNOR演算をする不揮発性論理回路の構成を示す図である。
【
図6】一対のMTJ素子が相補状態にあるときの不揮発性論理回路の動作波形を示す図である。
【
図7】一対のMTJ素子が非相補状態にあるときの不揮発性論理回路の動作波形を示す図である。
【
図8A】一対のMTJ素子が相補状態にあるときのプリチャージ期間における不揮発性論理回路の動作を説明する図である。
【
図8B】一対のMTJ素子が相補状態にあるときのプリチャージ期間における不揮発性論理回路の動作を説明する図である。
【
図8C】一対のMTJ素子が相補状態にあるときの評価期間における不揮発性論理回路の動作を説明する図である。
【
図8D】一対のMTJ素子が相補状態にあるときの評価期間における不揮発性論理回路の動作を説明する図である。
【
図9】一対のMTJ素子が非相補状態であるときの不揮発性論理回路の動作を説明する図である。
【
図10】本実施形態の実施例1に係る演算装置の構成を示すブロック図である。
【
図11】実施例1の演算装置を構成する各不揮発性論理回路で実行される演算に関わる信号を説明する模式図である。
【
図12】
図11の各信号に対する情報の割り当てを示す表である。
【
図13】実施例1の演算装置を構成する各不揮発性論理回路での演算機能を示す真理値表である。
【
図14】本実施形態の実施例2に係る誤り検出装置の構成を示すブロック図である。
【発明を実施するための形態】
【0011】
以下、図面を参照して本発明の実施形態を説明する。図面全体を通して、同一又は同様の構成要素には同一の符号を付している。
【0012】
まず、本発明の実施形態に係る不揮発性論理回路10の構成について説明する。
図1に、不揮発性論理回路10の機能ブロック図を示す。不揮発性論理回路10は、不揮発性のロジックインメモリ(logic-in-memory)回路であり、
図1に示すように、演算回路1と、出力回路2と、判別回路3と、を備える。
【0013】
演算回路1は、ロジック部としての演算部11と、一対の抵抗変化型記憶素子を有するメモリとしての記憶部12と、を備える。記憶部12は、一対の抵抗変化型記憶素子として、一対の磁気トンネル接合素子(MTJ素子)M1及びM2を有する。
【0014】
演算部11は、記憶部12に接続され、入力信号(in1及びin2)と、MTJ素子M1及びM2の抵抗(相補状態、非相補状態)に対応する論理値とに基づく演算を実行する。ここで、相補状態とは、一対のMTJ素子M1及びM2の抵抗が、それぞれ、(低抵抗、高抵抗)又は(高抵抗、低抵抗)であることを表し、非相補状態とは、一対のMTJ素子M1及びM2の抵抗が、それぞれ、(低抵抗、低抵抗)又は(高抵抗、高抵抗)であることを表す。
【0015】
判別回路3は、記憶部12及び出力回路2に接続され、一対のMTJ素子M1及びM2が相補状態にあるか非相補状態にあるかを判別する。
【0016】
出力回路2は、演算部11及び判別回路3に接続され、出力信号(out1及びout2)として、演算部11による演算結果に対応する信号又は判別回路3による判別結果に対応する信号を出力する。
【0017】
不揮発性論理回路10の構成の詳細については、後で説明する(
図4及び
図5参照)。
【0018】
記憶部12を構成するMTJ素子M1及びM2の各々は、
図2Aに示すように、フリー層12a、バリア層12b及び固定層12cが積層されている。フリー層12a及び固定層12cは、CoFeB等の強磁性体からなり、バリア層12bは、MgO等の絶縁体の薄膜である。
【0019】
図2Bに示すように、固定層12cの磁化とフリー層12aの磁化が同じ向きのとき(平行状態)、MTJ素子は低抵抗状態R
Pにあり、固定層12cの磁化とフリー層12aの磁化が互いに逆向きのとき(反平行状態)、MTJ素子は高抵抗状態R
APにある。
【0020】
図2B及び
図2Cに示すように、MTJ素子が高抵抗状態R
AP(反平行状態)にあるときに、固定層12cからフリー層12aへ向かう電流Iを流すと、電流Iが増加するにつれて、MTJ素子は高抵抗状態R
APを維持したまま次第に低下する。電流Iが閾値I
CH2を超えると(I>I
CH2)、フリー層12aの磁化が反転し、MTJ素子は低抵抗状態R
P(平行状態)に遷移する。その低抵抗状態R
Pから電流Iを減少させると、MTJ素子は低抵抗状態R
Pを維持し、さらに電流Iの向きを変えて増大させて、電流Iの絶対値が閾値I
CH1の絶対値を超えると(|I|>|I
CH1|又はI<I
CH1)、フリー層12aの磁化が反転し、MTJ素子は高抵抗状態R
AP(反平行状態)に遷移する。
【0021】
例えば、一対のMTJ素子M1及びM2の相補状態(R
P、R
AP)及び(R
AP、R
P)に、それぞれ、論理値“0”及び“1”を割り当てることで、1ビットの情報を表現することができる。非相補状態(例えば、(R
P、R
P))も情報表現の1つとして用いると、2ビットの情報を表現することができる(
図10~
図13参照)。
【0022】
次に、
図3のフローチャートを参照して、不揮発性論理回路10により実行される処理の流れを説明する。
【0023】
演算部11が入力信号in1及びin2を受け付けると(ステップS101)、判別回路3は、記憶部12を構成する一対のMTJ素子M1及びM2の抵抗に応じて変化する、出力回路2の一対のノード(後述のノードA及びB)の電位を検知して、一対のMTJ素子M1及びM2が相補状態にあるか非相補状態にあるかを判別する(ステップS103)。
【0024】
一対のMTJ素子M1及びM2が相補状態にあるとき(ステップS103:YES)、演算部11は、入力信号in1及びin2と、相補状態に対応する論理値とを用いた演算を実行し、出力回路2は、演算部11による演算結果に対応する信号out1及びout2を出力する(ステップS105)。
【0025】
一対のMTJ素子M1及びM2が非相補状態にあるとき(ステップS103:NO)、出力回路2は、一対のMTJ素子M1及びM2が非相補状態にあることを示す信号out1及びout2を出力する(ステップS107)。
【0026】
演算部11が、一対のMTJ素子M1及びM2の非相補状態を演算に使用する回路構成(例えば、後述の
図5の回路構成)である場合、ステップS107において演算部11は、入力信号in1及びin2と、非相補状態に対応する論理値とを用いた演算を実行し、出力回路2は、演算部11による演算結果に対応する信号out1及びout2を出力する。
【0027】
次に、不揮発性論理回路10の構成を詳細に説明する。
図4に、不揮発性論理回路10の構成を示す。
【0028】
出力回路2は、プリチャージ・センスアンプ(PCSA)であり(非特許文献1参照)、CMOS(Complementary Metal-Oxide Semiconductor)インバータ23、24、25及び26と、PMOS(P-channel MOS)トランジスタ21及び22と、を有する。CMOSインバータ23の入力端子は、CMOSインバータ24の出力端子に接続され、CMOSインバータ24の入力端子は、CMOSインバータ23の出力端子に接続されている。CMOSインバータ23の出力端子は、CMOSインバータ25の入力端子及びPMOSトランジスタ21のドレインに接続され、CMOSインバータ24の出力端子は、CMOSインバータ26の入力端子及びPMOSトランジスタ22のドレインに接続されている。PMOSトランジスタ21及び22のソースは電源VDDに接続され、PMOSトランジスタ21及び22のゲートにはクロックclkが入力される。
【0029】
以下、PMOSトランジスタ21のドレインと、CMOSインバータ23の出力端子と、CMOSインバータ25の入力端子との接続点を「ノードA」と呼び、PMOSトランジスタ22のドレインと、CMOSインバータ24の出力端子と、CMOSインバータ26の入力端子との接続点を「ノードB」と呼ぶ。
【0030】
判別回路3は、NMOS(N-channel MOS)トランジスタ13、31及び32と、PMOSトランジスタ33aと、NMOSトランジスタ33bと、PMOSトランジスタ34aと、NMOSトランジスタ34bと、インバータ35と、インバータ36と、PMOSトランジスタ37と、PMOSトランジスタ38と、を有する。
【0031】
PMOSトランジスタ33aのソースは電源VDDに接続され、ゲートにはクロックclkが入力される。PMOSトランジスタ33aのドレインとNMOSトランジスタ33bのドレインとは接続されている。NMOSトランジスタ33bのソースは接地されており、ゲートには、インバータ35の出力端子が接続されている。インバータ35の入力端子はノードBに接続されている。以下、PMOSトランジスタ33aとNMOSトランジスタ33bとの接続点を「ノードC」と呼ぶ。
【0032】
PMOSトランジスタ34aのソースは電源VDDに接続され、ゲートにはクロックclkが入力される。PMOSトランジスタ34aのドレインとNMOSトランジスタ34bのドレインとは接続されている。NMOSトランジスタ34bのソースは接地されており、ゲートには、インバータ36の出力端子が接続されている。インバータ36の入力端子はノードAに接続されている。以下、PMOSトランジスタ34aとNMOSトランジスタ34bとの接続点を「ノードD」と呼ぶ。
【0033】
NMOSトランジスタ31のドレインとNMOSトランジスタ32のドレインは、MTJ素子M1及びM2に接続されており、NMOSトランジスタ31のソースとNMOSトランジスタ32のソースは、NMOSトランジスタ13のドレインに接続されている。NMOSトランジスタ31のゲートはノードCに接続されている。NMOSトランジスタ32のゲートはノードDに接続されている。NMOSトランジスタ13は、ソースが接地されており、ゲートにはクロックclkが入力される。
【0034】
PMOSトランジスタ37は、ソースが電源VDDに接続され、ドレインがノードAに接続され、ゲートがノードCに接続されている。PMOSトランジスタ38は、ソースが電源VDDに接続され、ドレインがノードBに接続され、ゲートがノードDに接続されている。
【0035】
図4の演算部11は、論理演算の種類によって回路構成が異なる。
図5には、
図4の不揮発性論理回路10の一例として、XNOR演算をする演算部11Aを備える不揮発性論理回路10Aの回路構成を示す。演算部11Aは、パストランジスタの構造を有し、NMOSトランジスタ11a、11b、11c及び11dを有する。
【0036】
NMOSトランジスタ11aのドレインとNMOSトランジスタ11bのドレインは、CMOSインバータ23を構成するNMOSトランジスタのソースに接続されている。NMOSトランジスタ11aのソースはMTJ素子M1に接続され、NMOSトランジスタ11bのソースはMTJ素子M2に接続されている。NMOSトランジスタ11aのゲートには信号in2が入力され、NMOSトランジスタ11bのゲートには信号in1が入力される。
【0037】
NMOSトランジスタ11cのドレインとNMOSトランジスタ11dのドレインは、CMOSインバータ24を構成するNMOSトランジスタのソースに接続されている。NMOSトランジスタ11cのソースはMTJ素子M2に接続され、NMOSトランジスタ11dのソースはMTJ素子M1に接続されている。NMOSトランジスタ11cのゲートには信号in2が入力され、NMOSトランジスタ11dのゲートには信号in1が入力される。
【0038】
次に、
図6~
図9を参照して、
図5の不揮発性論理回路10Aの動作について説明する。
図8A~
図8Dでは、動作に直接的に関与しない要素及び配線については、図示しないか又は点線で表している。
【0039】
不揮発性論理回路10Aは、
図6及び
図7の動作波形に示すように、クロックclkに応じてプリチャージ(Pre-charge)と評価(Evaluate)の2相をとるダイナミック回路方式で動作する(非特許文献1参照)。
【0040】
まず、
図6及び
図8A~
図8Dを参照して、一対のMTJ素子M1及びM2が相補状態にあるときの不揮発性論理回路10Aの動作について説明する。ここでは、MTJ素子M1及びM2が、それぞれ、高抵抗状態R
AP及び低抵抗状態R
Pにあるものとする。また、入力信号in1及びin2は、それぞれ、Lレベル及びHレベルであるものとする。また、以下では、Lレベルを0[V](“0”)、Hレベルを電源電圧[V](“1”)とする。
【0041】
プリチャージ期間(clk=0)では、
図8Aに示すように、PMOSトランジスタ21及び22がオンとなり、電源VDDからPMOSトランジスタ21及び22を経由して、それぞれ、ノードA及びBがチャージされる。これにより、
図8Bに示すように、ノードAには電荷Q1が蓄積され、ノードBには電荷Q2が蓄積され、ノードAとノードBはともにHレベルとなり、CMOSインバータ25の出力信号out1と、CMOSインバータ26の出力信号out2は、ともにLレベルを示す。プリチャージ期間(clk=0)では、PMOSトランジスタ33a及び34aもオンとなるため、ノードC及びDもチャージされてHレベルとなる。
【0042】
このようにノードA及びBがHレベルになると、CMOSインバータ24のNMOSトランジスタがオンになるとともに、CMOSインバータ23のNMOSトランジスタがオンとなる。また、ノードC及びDがHレベルになると、NMOSトランジスタ31及び32もオンとなる。
【0043】
評価期間(clk=1)では、NMOSトランジスタ13がオンとなる。入力信号in2=1により、NMOSトランジスタ11a及び11cがオン状態であることから、
図8Cに示すように、ノードAに蓄積された電荷Q1がNMOSトランジスタ11a、MTJ素子M1及びNMOSトランジスタ13を経由してGNDに流れ出すとともに、ノードBに蓄積された電荷Q2がNMOSトランジスタ11c、MTJ素子M2及びNMOSトランジスタ13を経由してGNDに流れ出す。
【0044】
このとき、一対のMTJ素子M1及びM2は相補状態にあるため、ノードAに蓄積された電荷Q1が流れ出す速度と、ノードBに蓄積された電荷Q2が流れ出す速度に差が生じる。具体的には、高抵抗状態R
APにあるMTJ素子M1は電流が流れ難いのでゆっくり流れ、低抵抗状態R
PにあるMTJ素子M2は電流が流れやすいので早く流れることから、
図6に示すように、ノードAとノードBとの電位差が徐々に大きくなる。
【0045】
ノードBの電位がCMOSインバータ23の閾値電圧よりも下がると、
図8Dに示すように、CMOSインバータ23のPMOSトランジスタがオンとなり、電源VDDからCMOSインバータ23のPMOSトランジスタを経由してノードAがリチャージされる(Q=Q1)。一方、ノードBからNMOSトランジスタ11c、MTJ素子M2及びNMOSトランジスタ13を経由してGNDに電荷が流れ続け、最終的にノードBの電荷はゼロになる(Q=0)。
【0046】
このように、ノードAとノードBとの電位差が一定の大きさに達すると、CMOSインバータ23及び24により、ノードAとノードBとの電位差がさらに増幅されることで、ノードAがHレベル、ノードBがLレベルとなり、出力信号out1=0及びout2=1が確定する。評価期間における出力信号により、MTJ素子M1及びM2が相補状態にあると判別することができ、且つMTJ素子M1が高抵抗状態RAP、MTJ素子M2が低抵抗状態RPにあると判別することができる。
【0047】
次に、
図7及び
図9を参照して、一対のMTJ素子M1及びM2が非相補状態にあるときの不揮発性論理回路10Aの動作について説明する。ここでは、MTJ素子M1及びM2がともに低抵抗状態R
Pにあるものとする。また、入力信号in1及びin2は、それぞれ、Lレベル(“0”)及びHレベル(“1”)であるものとする。
【0048】
プリチャージ期間(clk=0)では、一対のMTJ素子M1及びM2が相補状態にあるときも非相補状態にあるときも同様の動作をする(
図8A及び
図8B参照)。
【0049】
評価期間(clk=1)において、ノードAに蓄積された電荷がNMOSトランジスタ11a、MTJ素子M1及びNMOSトランジスタ13を経由してGNDに流れ出すとともに、ノードBに蓄積された電荷がNMOSトランジスタ11c、MTJ素子M2及びNMOSトランジスタ13を経由してGNDに流れ出す。このとき、一対のMTJ素子M1及びM2は非相補状態にあるため、ノードAに蓄積された電荷が流れ出す速度と、ノードBに蓄積された電荷が流れ出す速度に差が生じないまま、ノードAの電位とノードBの電位は同時に下がり続ける。
【0050】
ノードAの電位とノードBの電位が、インバータ35及び36の閾値電圧よりも下がると、NMOSトランジスタ33b及び34bがオンとなり(
図9の(i))、プリチャージ期間に蓄積されていたノードCの電荷とノードDの電荷が放出され(
図9の(ii))、ノードCの電位とノードDの電位が下がる。これにより、PMOSトランジスタ37及び38がオンとなり、NMOSトランジスタ31及び32はオフとなる(
図9の(iii))。その結果、NMOSトランジスタ31及び32は非導通状態となる一方、電源VDDからPMOSトランジスタ37及び38を経由して、それぞれ、ノードA及びBがリチャージされる(
図9の(iv))。これにより、不揮発性論理回路10Aはプリチャージ期間と同様の状態になり、ノードA及びBはともにHレベルとなり、出力信号out1=0及びout2=0となる。このように、評価期間における出力信号により、MTJ素子M1及びM2が非相補状態にあると判別することができる。
【0051】
従来の不揮発性論理回路は、判別回路3(特に、PMOSトランジスタ33aと、NMOSトランジスタ33bと、PMOSトランジスタ34aと、NMOSトランジスタ34bと、インバータ35及び36と、PMOSトランジスタ37及び38)を有していない。このような従来の不揮発性論理回路では、一対のMTJ素子M1及びM2が非相補状態にあるとき、評価期間(clk=1)において、ノードAに蓄積された電荷が流れ出す速度と、ノードBに蓄積された電荷が流れ出す速度に差が生じないまま、ノードAの電位とノードBの電位が同時に下がり続け、回路動作が不安定となる。具体的には、素子ばらつき等の影響によって、2つのインバータによって構成されたSRAM構造の何れかの安定点に遷移する。このように、従来の不揮発性論理回路では、非相補状態に対応する出力が保証されないため、非相補状態は使用することができず、突発的に非相補状態になってしまったとしても、その状態を判別することができなかった。
【0052】
これに対し、本実施形態の不揮発性論理回路10Aでは、一対のMTJ素子M1及びM2が非相補状態にあるとき、評価期間において、判別回路3によって、出力回路2のノードA及びBの電位が閾値より下がったことを検知し、ノードA及びBをリチャージさせることで更なる電荷の放出を食い止めている。これにより、非相補状態に対応する出力が保証されるとともに、非相補状態が判別可能となる。言うまでもなく、一対のMTJ素子M1及びM2がともに高抵抗状態RAPにあるときも、同様に非相補状態が判別可能となる。
【0053】
以上のように、本実施形態に係る不揮発性論理回路10及び10Aによれば、相補状態をとる一対のMTJ素子を用いて1ビット(2状態)を表現していた従来の回路構造に対し、従来使用していなかった非相補状態を検出する機構(判別回路3)を組み込むことで、回路規模を大きくすることなく機能の高度化が可能となる。また、相補状態だけでなく非相補状態も利用することで、MTJ素子の性質を最大限に活かした設計が可能となる。さらに、一対のMTJ素子M1及びM2が非相補状態にあるときであっても、非相補状態に対応する出力が保証されるため、信頼性を高めることができる。
【実施例1】
【0054】
次に、
図10~
図13を参照して、本実施形態に係る不揮発性論理回路10A(
図5~
図9参照)を3値化ニューラルネットワーク(TNN)に適用した実施例1を説明する。
【0055】
図10は、実施例1に係る演算装置100Aの構成を示すブロック図である。演算装置100Aは、
図10に示すように、複数の不揮発性論理回路10Aと、複数の不揮発性論理回路10Aの各々の出力端子に接続された加算器50とを備える。実施例1において、各不揮発性論理回路10Aは、TNNの主要な構成要素であるTernary Computation Unit(TCU)に対応する。
【0056】
実施例1では、一対のMTJ素子M1及びM2の抵抗状態を、それぞれ、m1及びm2と表記する。また、高抵抗状態R
APを“1”、低抵抗状態R
Pを“0”と表記する。また、
図11に示すように、入力信号(in1、in2)が表す論理値をIN、抵抗状態(m1、m2)が表す論理値をM、出力信号(out1、out2)が表す論理値をOUTと表記する。また、
図12に示すように、3つの状態(0、1)、(0、0)及び(1、0)に対し、それぞれ、論理値“+1”、“0”及び“-1”を割り当てる。
【0057】
図13に、各不揮発性論理回路10Aによる演算機能の真理値表を示す。各不揮発性論理回路10Aにより、入力信号(in1、in2)に重みとして抵抗状態(m1、m2)を掛けて出力信号(out1、out2)が求められる。すなわち、乗算IN×M=OUTが実行される。複数の不揮発性論理回路10Aの各々で求められた出力信号(out1、out2)は加算器50で加算される。
【0058】
実施例1によれば、非相補状態(0、0)も情報表現の1つとして用いているため、TNNにおける3値表現(+1、0、-1)による乗算を行う演算ブロックTCUを2つのMTJ素子M1及びM2を用いてコンパクトに構成することができる。これにより、AIハードウェアのニーズに対するブレークスルーを回路・デバイス技術によって与えることができる。
【実施例2】
【0059】
次に、
図14を参照して、本実施形態に係る不揮発性論理回路10を誤り検出に適用した実施例2を説明する。
【0060】
図14に、実施例2に係る誤り検出装置100Bの構成を示す。誤り検出装置100Bは、
図14に示すように、不揮発性論理回路10BとNORゲート60とを備える。不揮発性論理回路10Bは、
図4の不揮発性論理回路10と同一の回路で構成されている。不揮発性論理回路10Bの出力回路2の出力端子がNORゲート60の入力端子に接続されている。
【0061】
不揮発性論理回路10Bの一対のMTJ素子M1及びM2が相補状態にあるとき、出力信号out1及びout2も相補の値((0、1)又は(1、0))となり、NORゲート60から論理値“0”が出力される。一方、一対のMTJ素子M1及びM2が非相補状態にあるとき、評価期間において出力信号out1及びout2も非相補の値(0、0)となり、NORゲート60から論理値“1”がエラー信号ERRとして出力される。
【0062】
実施例2によれば、書き込みエラー又はリードディスターブによって一対のMTJ素子M1及びM2が非相補状態となっても、出力信号out1及びout2がいずれも低電位となることが保証される。これにより、非特許文献2のようにリファレンス抵抗や比較回路を別途設ける必要がなく、評価期間において、出力信号out1及びout2が相補出力になっているか否かをチェックするだけで、一対のMTJ素子M1及びM2の状態に誤りが生じているか否かを検出することができる。
【0063】
なお、本発明は、上述の実施の形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において種々の変形が可能である。
【0064】
例えば、上述の実施形態では、演算部11の例として、XNOR演算を行う演算部11Aを挙げたが、演算目的に応じて他の論理演算(AND、ORなど)を行う回路構成を採用してもよい。
【0065】
また、記憶部12が有する抵抗変化型記憶素子はMTJ素子に限定されず、MTJ素子以外の抵抗変化型記憶素子を採用してもよい。
【符号の説明】
【0066】
1 演算回路
2 出力回路
3 判別回路
10、10A、10B 不揮発性論理回路
11、11A 演算部
12 記憶部
12a フリー層
12b バリア層
12c 固定層
13、31、32、33b、34b NMOSトランジスタ
21、22、33a、34a、37、38 PMOSトランジスタ
23、24、25、26 CMOSインバータ
50 加算器
60 NORゲート
100A 演算装置
100B 誤り検出装置
A、B、C、D ノード
M1、M2 MTJ素子