(57)【要約】【課題】演算デバイスの特性を向上する。【解決手段】実施形態の演算デバイスは、第１の導電層２０Ａ上に設けられた１以上の第１の磁気抵抗効果素子２１Ａを含む第１の計算回路１００Ａと、第２の導電層２０Ａ上に設けられた１以上の第２の磁気抵抗効果素子２１Ｂを含む第２の計算回路１００Ｂと、第１及び第２の計算回路１００Ａ，１００Ｂからの信号を用いた計算処理を実行する第３の計算回路４０と、第１乃至前記第３の計算回路１００Ａ，１００Ｂ，４０を制御する制御回路と、を含む。制御回路７０は、第１及び第２の磁気抵抗効果素子２１Ａ，２１Ｂの少なくとも一方の書き込みエラーに関する情報ＩＮＦに基づいて、第１及び第２の磁気抵抗効果素子２１Ａ，２１Ｂの少なくとも一方に対する書き込み動作の条件を設定する。【選択図】      図１
2020123414.tif 000002
【特許請求の範囲】
【請求項１】
第１の導電層上に設けられた１以上の第１の磁気抵抗効果素子をそれぞれ有する１以上の第１のストリングを含む第１の計算回路と、
第２の導電層上に設けられた１以上の第２の磁気抵抗効果素子をそれぞれ有する１以上の第２のストリングを含む第２の計算回路と、
前記第１の計算回路からの第１の信号と前記第２の計算回路からの第２の信号とを用いた計算処理を実行する第３の計算回路と、
前記第１乃至前記第３の計算回路を制御する制御回路と、
を具備し、
前記制御回路は、前記第１及び第２の磁気抵抗効果素子の少なくとも一方の書き込みエラーに関する情報に基づいて、前記第１及び第２の磁気抵抗効果素子の少なくとも一方に対する書き込み動作の条件を設定する、
演算デバイス。
【請求項２】
前記第１の導電層に第１の方向に流れる第１の書き込み電流を供給する第１のドライバと、
前記第２の導電層に前記第１の方向と異なる第２の方向に流れる第２の書き込み電流を供給する第２のドライバと、
をさらに具備し、
前記条件は、前記第１及び第２の書き込み電流の少なくとも一方を生成するための電圧値であり、
前記第１及び第２の書き込み電流の少なくとも一方は、前記書き込みエラーに基づいて複数の電圧値の中から選択された１つの電圧値を用いて生成される、
請求項１に記載の演算デバイス。
【請求項３】
前記第１の導電層に第１の方向に流れる第１の書き込み電流を供給する第１のドライバと、
前記第２の導電層に前記第１の方向と異なる第２の方向に流れる第２の書き込み電流を供給する第２のドライバと、
をさらに具備し、
前記条件は、前記第１及び第２の書き込み電流の少なくとも一方のパルス幅であり、
前記第１及び第２の書き込み電流の少なくとも一方のパルス幅は、前記書き込みエラーに基づいて複数のパルス幅の中から選択された１つのパルス幅に設定される、
請求項１に記載の演算デバイス。
【請求項４】
前記複数の第１のストリングの対応する１つにそれぞれ接続される複数の第１のワード線と、
前記複数の第２のストリングの対応する１つにそれぞれ接続される複数の第２のワード線と、
をさらに具備し、
前記条件は、活性化される第１のワード線の数及び活性化される第２のワード線の数の少なくとも一方である、
請求項１に記載の演算デバイス。
【請求項５】
前記制御回路は、前記第１及び第２の磁気抵抗効果素子の少なくとも一方に対するテスト動作を実行し、前記書き込みエラーと前記条件とに関するテーブルを生成する、
請求項１乃至４のうちいずれか１項に記載の演算デバイス。
【請求項６】
第１の導電層上に設けられた１以上の第１の磁気抵抗効果素子をそれぞれ有する１以上の第１のストリングを含む第１の計算回路と、
第２の導電層上に設けられた１以上の第２の磁気抵抗効果素子をそれぞれ有する複数の第２のストリングを含む第２の計算回路と、
前記第１の計算回路からの第１の信号と前記第２の計算回路からの第２の信号とを用いた計算処理を実行する第３の計算回路と、
前記第１及び第２の磁気抵抗効果素子の書き込みエラーと前記第１及び第２の磁気抵抗効果素子に対する書き込み動作の条件とに関する情報を保持するデータ保持回路と、
前記情報に基づいて、前記第１及び第２の磁気抵抗効果素子に対する書き込み動作を制御する制御回路と、
を具備する演算デバイス。
【請求項７】
前記第１の導電層に第１の方向に流れる第１の書き込み電流を供給する第１のドライバと、
前記第２の導電層に前記第１の方向と異なる第２の方向に流れる第２の書き込み電流を供給する第２のドライバと、
をさらに具備し、
前記条件は、前記第１及び第２の書き込み電流の少なくとも一方を生成するための電圧値であり、
前記第１及び第２の書き込み電流の少なくとも一方は、前記書き込みエラーに基づいて複数の電圧値の中から選択された１つの電圧値を用いて生成される、
請求項６に記載の演算デバイス。
【請求項８】
前記第１の導電層に第１の方向に流れる第１の書き込み電流を供給する第１のドライバと、
前記第２の導電層に前記第１の方向と異なる第２の方向に流れる第２の書き込み電流を供給する第２のドライバと、
をさらに具備し、
前記条件は、前記第１及び第２の書き込み電流の少なくとも一方のパルス幅であり、
前記第１及び第２の書き込み電流の少なくとも一方のパルス幅は、前記書き込みエラーに基づいて複数のパルス幅の中から選択された１つのパルス幅に設定される、
請求項６に記載の演算デバイス。
【請求項９】
前記複数の第１のストリングの対応する１つにそれぞれ接続される複数の第１のワード線と、
前記複数の第２のストリングの対応する１つにそれぞれ接続される複数の第２のワード線と、
をさらに具備し、
前記条件は、活性化される第１のワード線の数及び活性化される第２のワード線の数の少なくとも一方である、
請求項６に記載の演算デバイス。
【請求項１０】
前記第１及び第２の磁気抵抗効果素子の少なくとも一方に対するテスト動作を実行し、前記書き込みエラーと前記条件とに関するテーブルを生成するテーブル生成回路を、
さらに具備する、請求項６乃至９のうちいずれか１項に記載の演算デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、演算デバイスに関する。
【背景技術】
【０００２】
ＡＩの深層学習などの計算処理に、演算デバイスが用いられる。演算デバイスの性能の向上のための研究及び開発が、推進されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第６３６４３６５号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
演算デバイスの消費電力を低減する。
【課題を解決するための手段】
【０００５】
本実施形態の演算デバイスは、第１の導電層上に設けられた１以上の第１の磁気抵抗効果素子をそれぞれ有する１以上の第１のストリングを含む第１の計算回路と、第２の導電層上に設けられた１以上の第２の磁気抵抗効果素子をそれぞれ有する１以上の第２のストリングを含む第２の計算回路と、前記第１の計算回路からの第１の信号と前記第２の計算回路からの第２の信号とを用いた計算処理を実行する第３の計算回路と、前記第１乃至前記第３の計算回路を制御する制御回路と、を備え、前記制御回路は、前記第１及び第２の磁気抵抗効果素子の少なくとも一方の書き込みエラーに関する情報に基づいて、前記第１及び第２の磁気抵抗効果素子の少なくとも一方に対する書き込み動作の条件を設定する。
【図面の簡単な説明】
【０００６】
【図１】第１の実施形態の演算デバイスの基本構成を示す図。
【図２】第１の実施形態の演算デバイスの動作原理を説明するための図。
【図３】第１の実施形態の演算デバイスの動作原理を説明するための図。
【図４】第１の実施形態の演算デバイスの動作原理を説明するための図。
【図５】第１の実施形態の演算デバイスの動作原理を説明するための図。
【図６】第１の実施形態の演算デバイスの動作原理を説明するための図。
【図７】第１の実施形態の演算デバイスの動作原理を説明するための図。
【図８】第１の実施形態の演算デバイスの動作原理を説明するための図。
【図９】第１の実施形態の演算デバイスの構成例を示す図。
【図１０】第１の実施形態の演算デバイスの構成例を示す図。
【図１１】第１の実施形態の演算デバイスの構成例を示す図。
【図１２】第１の実施形態の演算デバイスの構成例を示す図。
【図１３】第１の実施形態の演算デバイスの構成例を示す図。
【図１４】第１の実施形態の演算デバイスの構成例を示す図。
【図１５】第１の実施形態の演算デバイスの構成例を示す図
【図１６】第１の実施形態の演算デバイスの動作例を示す図。
【図１７】第１の実施形態の演算デバイスの動作例を示す図。
【図１８】第１の実施形態の演算デバイスの動作例を示す図。
【図１９】第１の実施形態の演算デバイスの動作例を示す図。
【図２０】第１の実施形態の演算デバイスの動作例を示す図。
【図２１】第１の実施形態の演算デバイスの動作例を示す図。
【図２２】第１の実施形態の演算デバイスの構成例を示す図
【図２３】第１の実施形態の演算デバイスの構成例を示す図
【図２４】第２の実施形態の演算デバイスの構成例を示す図。
【図２５】第２の実施形態の演算デバイスの構成例を示す図。
【図２６】第３の実施形態の演算デバイスの構成例を示す図。
【図２７】第３の実施形態の演算デバイスの構成例を示す図。
【図２８】第３の実施形態の演算デバイスの構成例を示す図。
【図２９】第４の実施形態の演算デバイスの構成例を示す図。
【図３０】第４の実施形態の演算デバイスの構成例を示す図。
【図３１】第５の実施形態の演算デバイスの構成例を示す図。
【図３２】第５の実施形態の演算デバイスの構成例を示す図。
【図３３】第５の実施形態の演算デバイスの構成例を示す図。
【図３４】第６の実施形態の演算デバイスの構成例を示す図。
【図３５】第６の実施形態の演算デバイスの構成例を示す図。
【図３６】実施形態の演算デバイスの適用例を示す図。
【図３７】実施形態の演算デバイスの適用例を示す図。
【図３８】実施形態の演算デバイスの適用例を示す図。
【発明を実施するための形態】
【０００７】
図１乃至図３８を参照して、実施形態の演算デバイスについて、説明する。
【０００８】
以下、図面を参照しながら、本実施形態について詳細に説明する。以下の説明において、同一の機能及び構成を有する要素については、同一符号を付す。  
また、以下の各実施形態において、末尾に区別化のための数字／英字を伴った参照符号（例えば、ワード線ＷＬやビット線ＢＬ、各種の電圧及び信号など）を付された構成要素が、相互に区別されなくとも良い場合、末尾の数字／英字が省略された記載（参照符号）が用いられる。
【０００９】
（１）  第１の実施形態  
図１乃至図２３を参照して、第１の実施形態の演算デバイス及びその制御方法について、説明する。
【００１０】
（１ａ）  基本構成  
図１を用いて、本実施形態の演算デバイスの基本構成について説明する。
【００１１】
図１は、本実施形態の演算デバイスの基本構成例を示す図である。  
図１に示されるように、本実施形態の演算デバイス１は、計算素子１０（１０Ａ，１０Ｂ）、計算回路４０、及び、制御回路７０を含む。
【００１２】
計算素子１０Ａは、第１の計算回路（計算領域）１００Ａ内に設けられている。計算素子１０Ｂは、第２の計算回路（計算領域）１００Ｂ内に設けられている。
【００１３】
計算素子１０Ａ，１０Ｂは、実質的に同じ構造を有する。
【００１４】
計算素子１０（１０Ａ，１０Ｂ）は、導電層２０（２０Ａ，２０Ｂ）、磁性層１１（１１Ａ，１１Ｂ）、非磁性層１３（１３Ａ，１３Ｂ）及び磁性層１２（１２Ａ，１２Ｂ）を含む。
【００１５】
磁性層１１、非磁性層１３及び磁性層１２は、導電層２０の表面に対して垂直方向において、導電層２０上に積層されている。計算素子１０は、磁気抵抗効果素子が、導電層２０上に設けられた構造を有する。
【００１６】
磁性層１１は、導電層２０と非磁性層１３との間に設けられている。非磁性層１３は、２つの磁性層１１，１２間に設けられている。磁性層１２は、非磁性層１３を介して、磁性層１１の上方に設けられている。
【００１７】
端子Ｔ１（Ｔ１Ａ，Ｔ１Ｂ）が、磁性層１２（１２Ａ，１２Ｂ）に接続される。端子Ｔ２（Ｔ２Ａ，Ｔ２Ｂ）が、導電層２０（２０Ａ，２０Ｂ）の一端ＸＡに接続される。端子Ｔ３（Ｔ３Ａ，Ｔ３Ｂ）が、導電層２０（２０Ａ，２０Ｂ）の他端ＸＢに接続される。
【００１８】
以下において、導電層２０の一端ＸＢから導電層２０の他端ＸＡに向かう方向に沿う方向は、Ｘ方向とよばれる。また、導電層２０の表面に対して平行でＸ方向に交差する方向は、Ｙ方向とよばれる。導電層２０の表面に対して垂直方向（層１１，１２，１３の積層方向）は、Ｚ方向とよばれる。Ｚ方向は、Ｘ方向及びＹ方向に交差する。
【００１９】
各磁性層１１，１２は、磁化を有する。例えば、磁性層１１，１２は、面内磁気異方性を有している。面内磁気異方性の磁性層１１の磁化の方向、及び、磁性層１２の磁化の方向は、導電層２０の表面（磁性層１１，１２の表面）に対して、実質的に平行である。磁性層１１，１２の磁化方向は、複数の層１１，１２，１３の積層方向に対して、実質的に垂直である。一例としては、磁性層１１の磁化の方向は、Ｙ方向に実質的に平行である。各磁性層１１，１２の磁化容易軸方向は、Ｙ方向である。  
以下において、面内磁気異方性を有する磁性層を用いた磁気抵抗効果素子は、面内磁化型磁気抵抗効果素子とよばれる。
【００２０】
磁性層１１の磁化の向きは、可変である。磁性層１２の磁化の向きは、不変（固定状態）である。以下において、磁化の向きが可変である磁性層は、記憶層とよばれる。以下において、磁化の向きが不変（固定状態）である磁性層は、参照層とよばれる。
【００２１】
尚、本実施形態において、「参照層の磁化の向きが不変である」、又は、「参照層の磁化の向きが固定状態である」とは、記憶層の磁化の向きを変えるための電流又は電圧が計算素子１０（例えば、導電層２０）に供給された場合において、参照層の磁化の向きが、電流／電圧の供給の前後で変化しないことを、意味する。
【００２２】
磁性層１１，１２及び非磁性層１３は、磁気トンネル接合（ＭＴＪ）を形成する。以下において、計算素子１０（１０Ａ，１０Ｂ）において、磁性層１１，１２及び非磁性層１３を含む素子（磁気抵抗効果素子）は、ＭＴＪ素子とよばれる。
【００２３】
計算素子１０は、後述のように、端子Ｔ１（参照層１２）に対する電圧の印加、及び、導電層２０に対する電流の供給に応じて、ＭＴＪ素子２１の磁化配列状態（データ保持状態）を制御できる。これによって、計算素子１０は、計算処理（例えば、論理演算）を実行できる。
【００２４】
計算回路４０は、計算素子１０の計算結果を用いて、計算処理を実行する。  
制御回路７０は、計算素子１０の動作及び計算回路４０の動作を制御する。
【００２５】
本実施形態の演算デバイス１は、上述の構成によって、２つの値に対する積演算を実行可能なデバイスである。
【００２６】
本実施形態の演算デバイス１は、計算素子１０の計算処理（ＭＴＪ素子の書き込み動作）と動作エラーの発生確率に関する情報ＩＮＦを保持する記憶領域７００を有する。本実施形態の演算デバイス１は、その情報ＩＮＦに基づいて、計算処理時に計算素子１０に供給される電圧／電流の条件を、設定する。
【００２７】
これによって、本実施形態の演算デバイス１は、動作エラーの発生確率の許容値を満たしつつ、消費電力を低減できる。  
したがって、本実施形態の演算デバイス１は、特性を向上できる。
【００２８】
（１ｂ）  原理  
図２乃至図８を参照して、本実施形態の演算デバイスにおける計算素子（磁気抵抗効果素子）の動作に用いられる様々な原理について、説明する。
【００２９】
＜磁気抵抗効果＞  
図２は、本実施形態の演算デバイスにおける、計算素子内の磁気抵抗効果素子（ＭＴＪ素子）を説明するための図である。
【００３０】
図２の（ａ）は、磁気抵抗効果素子が第１の抵抗状態を有する場合における、磁気抵抗効果素子の磁化配列状態を模式的に示す図である。図２の（ｂ）は、磁気抵抗効果素子が第２の抵抗状態を有する場合における、磁気抵抗効果素子の磁化配列状態を模式的に示す図である。
【００３１】
上述のように、計算素子１０内のＭＴＪ素子２１は、面内磁化型ＭＴＪ素子である。
【００３２】
ＭＴＪ素子２１の抵抗状態（抵抗値）は、記憶層１１の磁化の向きと参照層１２の磁化の向きとの相対的な関係（磁化配列）に応じて、変わる。
【００３３】
図２の（ａ）に示されるように、記憶層１１の磁化の向きが、参照層１２の磁化の向きと同じである場合、ＭＴＪ素子２１は、第１の抵抗状態（第１の磁化配列状態）を有する。第１の抵抗状態を有するＭＴＪ素子２１は、抵抗値Ｒｐを有する。
【００３４】
図２の（ｂ）に示されるように、記憶層１１の磁化の向きが、参照層１２の磁化の向きと反対である場合、ＭＴＪ素子２１は、第２の抵抗状態（第２の磁化配列状態）を有する。第２の抵抗状態を有するＭＴＪ素子２１は、抵抗値Ｒａｐを有する。抵抗値Ｒａｐは、抵抗値Ｒｐより高い。
【００３５】
このように、ＭＴＪ素子２１は、２つの磁性層１１，１２の磁化配列に応じて、低抵抗状態及び高抵抗状態のうちいずれか１つの状態を取り得る。
【００３６】
磁気抵抗効果は、このような２つの磁性層１１，１２の磁化の向きの相対的な関係によって抵抗値が変化する現象である。
【００３７】
例えば、ＭＴＪ素子２１は、１ビットのデータ（“０”データ及び“１”データ）を保持する。この場合において、ＭＴＪ素子２１の抵抗状態が、第１の抵抗状態に設定された時、メモリセルＭＣは、第１のデータ保持状態（例えば、“０”データ保持状態）に設定される。ＭＴＪ素子２１の抵抗状態が第２の抵抗状態に設定された時、メモリセルＭＣは、第２のデータ保持状態（例えば、“１”データ保持状態）に設定される。
【００３８】
本実施形態において、ＭＴＪ素子２１における記憶層１１の磁化の向きと参照層１２の磁化の向きとが同じである磁化配列状態は、平行状態（又はＰ状態）とよばれる。ＭＴＪ素子２１における記憶層１１の磁化の向きと参照層１２の磁化の向きとが反対である磁化配列状態は、反平行状態（又はＡＰ状態）ともよばれる。
【００３９】
以下のように、本実施形態において、ＭＴＪ素子２１の磁化配列（Ｐ／ＡＰ状態）を制御するために、スピンホール効果及び電圧制御磁気異方性（以下では、電圧効果ともよばれる）が、用いられる。
【００４０】
＜スピンホール効果＞  
図３を用いて、本実施形態の演算デバイスに用いられるスピンホール効果について、説明する。
【００４１】
図３の（ａ）及び（ｂ）は、スピンホール効果を説明するための模式図である。図３の（ａ）及び（ｂ）において、ＭＴＪ素子２１は、導電層２０の“ＺＡ”側の面（以下では、導電層２０の表面とよばれる）に設けられている。
【００４２】
本実施形態の演算デバイスにおいて、スピンホール効果（又はＳＯＴ：Spin Orbit Torqueともよばれる）が、ＭＴＪ素子２１の記憶層１１Ｘの磁化反転に用いられる。
【００４３】
例えば、スピンホール効果の発現のために、スピン軌道相互作用を有する材料が、用いられる。
【００４４】
図３の（ａ）及び（ｂ）において、導電層２０は、大きいスピン軌道相互作用を有する材料から形成される。例えば、導電層２０は、銅（Ｃｕ）、ロジウム（Ｒｈ）、パラジウム（Ｐｄ）、銀（Ａｇ）、ハフニウム（Ｈｆ）、タンタル（Ｔａ）、タングステン（Ｗ）、レニウム（Ｒｅ）、オスミウム（Ｏｓ）、イリジウム（Ｉｒ）、白金（Ｐｔ）、金（Ａｕ）、ビスマス（Ｂｉ）など金属、これらの金属の１以上を含む酸化物、及び、これらの金属の１以上を含む窒化物の中から選択される少なくとも１つの材料から形成された層である。
【００４５】
この層２０に磁性層１１Ｘが接触する場合、より大きいスピン軌道相互作用が層２０内に生じ得る。但し、導電層２０は、大きいスピン軌道相互作用を有する材料であれば、これらの材料に限定されない。  
以下において、導電層２０は、スピン軌道相互作用層（ＳＯ層）ともよばれる。
【００４６】
電流Ｉｗｒ（Ｉｗｒ１，Ｉｗｒ２）が、導電層２０に供給される。電流（書き込み電流）Ｉｗｒは、アップスピンＳＰ１を有する電荷（電子）とダウンスピンＳＰ２を有する電荷とを含む。
【００４７】
電流Ｉｗｒが、導電層２０内を流れる場合において、電流が流れる向き（スピンの向き）に応じて、アップスピンＳＰ１とダウンスピンＳＰ２とが、互いに反対方向に散乱される。
【００４８】
スピン（“Ｓ”と表記される）、スピン流（“Ｉｓ”と表記される）及び電子の流れ（“Ｉｅ”と表記される）の関係は、次の（式Ａ）で示される。尚、電子の流れ“Ｉｅ”の向きは、電流Ｉｗｒの流れる向きと反対である。“Ｓ”は、ベクトルである。  
Ｉｓ∝Ｓ×Ｉｅ    ・・・（式Ａ）
（式Ａ）で示されるように、スピン流“Ｉｓ”は、スピン“Ｓ”と電子の流れ“Ｉｅ”との外積に比例する。
【００４９】
これによって、スピン流Ｉｓが、スピン軌道相互作用を有する導電層２０内に発生する。このようなスピン流Ｉｓを発生させる現象が、スピンホール効果である。
【００５０】
電流Ｉｗｒが導電層２０内を流れることによって、スピン流Ｉｓが、導電層２０内に発生する。
【００５１】
例えば、図３の（ａ）に示されるように、電流Ｉｗｒ１が、導電層２０の一端ＸＡ側から他端ＸＢ側に向かって流れる場合において、アップスピンＳＰ１が導電層２０の表面ＺＡ側（磁性層１１が設けられた面側）に散乱し、ダウンスピンＳＰ２が導電層２０の裏面ＺＢ側に散乱する。
【００５２】
例えば、図３の（ｂ）に示されるように、電流Ｉｗｒ０が、図中の導電層２０の一端ＸＢ側から他端ＸＡ側に向かって流れる場合において、アップスピンＳＰ１が、導電層２０の裏面ＺＢ側に散乱し、ダウンスピンＳＰ２が、導電層２０の表面ＺＡ側に散乱する。
【００５３】
図３の（ａ）及び（ｂ）に示されるように、導電層２０に通電される電流Ｉｗｒの極性（電流の流れる向き）の反転によって、導電層２０上のＭＴＪ素子２１の記憶層１１に作用するスピントルクの向きが反転する。
【００５４】
スピンホール効果で発生するスピン流Ｉｓに起因するスピン軌道トルク（ＳＯＴ）が、導電層２０上のＭＴＪ素子２１に印加される。
【００５５】
スピン軌道トルクとして記憶層１１に作用するスピンの向きは、導電層２０内を流れる電流Ｉｗｒの向きに応じて、変わる。  
したがって、導電層２０内を流れる電流Ｉｗｒの向きの制御によって、記憶層１１の磁化の向きが、参照層１２の磁化の向きに対して平行の向き又は反平行の向きに、制御され得る。
【００５６】
このように、本実施形態のＭＲＡＭにおいて、スピンホール効果によって、ＭＴＪ素子２１の記憶層１１の磁化の向きを、印加されるスピンの向きに応じて、変える（反転させる）ことができる。
【００５７】
スピンホール効果を用いたＭＴＪ素子の磁化反転（データの書き込み）は、トンネルバリア層１３に直接電流を流さずに、記憶層１１の磁化の反転を行うことができる。それゆえ、スピンホール効果を用いたＭＲＡＭにおいて、トンネルバリア層１３の破壊は、抑制できる。
【００５８】
また、スピンホール効果を用いたＭＴＪ素子の磁化反転において、ＭＴＪ素子の書き込み動作における電流の経路は、ＭＴＪ素子の読み出し動作時における電流の経路と異なる。それゆえ、スピンホール効果が記憶層の磁化反転に用いられた場合、リードディスターブは、ＭＴＪ素子において実質的に発生しない。
【００５９】
＜電圧制御磁気異方性＞  
図４を参照して、本実施形態の演算デバイスにおける、磁気抵抗効果素子の電圧制御磁気異方性について、説明する。
【００６０】
以下のように、本実施形態の演算デバイスは、電圧制御磁気異方性（ＶＣＭＡ：Voltage controlled magnetic anisotropy）によって、導電層２０上のＭＴＪ素子２１に対するデータの書き込み／非書き込み（記憶層の磁化反転）を、制御する。
【００６１】
ＶＣＭＡ（電圧効果）は、ＭＴＪ素子２１の記憶層１１と参照層１２との間に電圧を印加することにより、記憶層１１の磁気異方性エネルギー（例えば、垂直磁気異方性エネルギー）が変化する現象である。
【００６２】
記憶層１１の垂直磁気異方性を変化させることによって、ＭＴＪ素子２１における平行状態（Ｐ状態）と反平行状態（ＡＰ状態）との間のエネルギー障壁が、変化する。  
これによって、ＭＴＪ素子の磁化反転電流（磁化反転しきい値）Ｉｃの増加及び低減が、制御可能である。ここで、磁化反転電流／磁化反転しきい値は、書き込み対象のＭＴＪ素子の記憶層の磁化の向きを反転させることが可能なスピン軌道トルク（スピン流）を生じさせる電流の電流値である。
【００６３】
例えば、図４に示されるように、面内磁化型のＭＴＪ素子において、記憶層１１及び参照層１２の磁化の向きは、磁性層１１，１２の層面（膜面）に対して平行である。
【００６４】
面内磁化型のＭＴＪ素子２１において、記憶層１１の垂直磁気異方性エネルギーを増加させる（垂直安定状態に近づける）ように電圧ＶＣＮＴが端子Ｔ１を介してＭＴＪ素子２１に印加された場合、記憶層１１の磁化反転しきい値Ｉｃは、面内磁気異方性エネルギーが相対的に減少する結果として、低減する。
【００６５】
これとは反対に、電圧ＶＣＮＴの印加によって記憶層１１の垂直磁気異方性エネルギーが減少される（面内磁化をより安定化させる）場合、記憶層１１の磁化反転しきい値Ｉｃは、増加する。
【００６６】
尚、垂直磁化膜がＭＴＪ素子に用いられる場合、垂直磁化型のＭＴＪ素子における垂直磁気異方性エネルギーと電圧との関係は、面内磁化膜型のＭＴＪ素子における垂直磁気異方性エネルギーと電圧との関係と逆になる。
【００６７】
電圧の印加による磁化反転しきい値Ｉｃの増減は、ＭＴＪ素子に印加される電圧（以下、ＭＴＪ電圧又は制御電圧ともよばれる）の極性に応じて、決まる。ここで、ＭＴＪ電圧は、ＭＴＪ素子２１の下部の導電層２０側の電位を基準とした、導電層２０の電位（記憶層側の電位）とＭＴＪ素子２１の上部の端子Ｔ１側の電位（参照層側の電位）との電位差である。
【００６８】
例えば、一例としての面内磁化型のＭＴＪ素子において、記憶層にＣｏＦｅＢ層が用いられ、トンネルバリア層にＭｇＯ層が用いられる。
【００６９】
図４の（ａ）に示されるように、面内磁化型のＭＴＪ素子２１において、参照層１２に負の電圧値ＶａのＭＴＪ電圧ＶＣＮＴ（以下では、電圧Ｖａとも表記される）が印加された場合（記憶層側の電位が参照層側の電位より高い場合）に、記憶層１１の磁化反転しきい値Ｉｃが減少する。  
以下において、図４の（ａ）のように、ＭＴＪ素子２１の参照層１２に負の電圧値Ｖａの電圧ＶＣＮＴが印加された状態は、負バイアス状態とよばれる。
【００７０】
図４の（ｂ）に示されるように、面内磁化型のＭＴＪ素子２１において、参照層１２に正の電圧値Ｖｄ（又は０Ｖ）のＭＴＪ電圧ＶＣＮＴ（以下では、電圧Ｖｄとも表記される）が印加された場合（参照層側の電位が、記憶層側の電位より高い場合）に、記憶層１１の磁化反転しきい値Ｉｃが増加する。  
以下において、図４の（ｂ）のように、ＭＴＪ素子２１の参照層１２に正の電圧値Ｖｄの電圧ＶＣＮＴが印加された状態は、正バイアス状態とよばれる。
【００７１】
このようなＶＣＭＡが、記憶層１１の磁化反転しきい値の変化が、導電層２０に対する書き込み電流の供給時における記憶層１１の磁化の反転／非反転の選択に、利用され得る。
【００７２】
＜記憶層の磁化反転の制御＞  
上述の図２乃至図４を用いて説明された現象／原理に基づいて、本実施形態の演算デバイスにおけるＭＴＪ素子の磁化反転が、以下のように実行され得る。
【００７３】
図５は、本実施形態の演算デバイスにおける、磁気抵抗効果素子（ＭＴＪ素子）の記憶層の磁化反転制御の基本例を説明するための模式図である。
【００７４】
図５の（ａ）及び（ｂ）は、ＭＴＪ素子の記憶層の磁化反転を説明するための模式図である。
【００７５】
本実施形態の演算デバイスにおける、ＭＴＪ素子の記憶層の磁化反転動作（書き込み動作、計算動作）において、データの書き込み対象のＭＴＪ素子において、ＭＴＪ素子２１の記憶層１１の磁化反転しきい値Ｉｃを減少させるように、所定の極性及び電圧値を有するＭＴＪ電圧Ｖａが、ＭＴＪ素子２１の参照層１２に印加される。
【００７６】
記憶層１１の磁化反転しきい値Ｉｃが減少された状態で、書き込み電流Ｉｗｒの流れる方向が記憶層１１のスイッチされるべき磁化の向きに応じるように、書き込み電流Ｉｗｒが導電層２０に供給される。
【００７７】
これらによって、スピンホール効果によるスピンが、導電層２０上のＭＴＪ素子２１に対して印加され、記憶層１１の磁化の向きが、反転する。
【００７８】
図５の（ａ）に示されるように、ＭＴＪ素子の磁化配列がＡＰ状態に設定される場合（例えば、“１”データがＭＴＪ素子２１に書き込まれる場合）、ＭＴＪ素子２１の参照層側の電位が記憶層側の電位より低くなるように、負の電圧値のＭＴＪ電圧ＶＣＮＴ（選択電圧Ｖａ）が、ＭＴＪ素子２１の参照層１２に印加される。これによって、ＭＴＪ素子２１は、負バイアス状態に設定される。
【００７９】
例えば、書き込み電流Ｉｗｒ１が導電層２０の端子Ｔ３から端子Ｔ２に向かって流れるように、書き込み電流Ｉｗｒ１が、導電層２０に供給される。
【００８０】
これによって、導電層２０上のＭＴＪ素子２１は、ＡＰ状態（“１”データ保持状態）に設定される。
【００８１】
以下では、ＭＴＪ素子の磁化配列をＰ状態からＡＰ状態に変えるための電流は、ＡＰ書き込み電流Ｉａｐともよばれる。以下では、ＡＰ書き込み電流Ｉａｐを計算素子１０（導電層２０）に供給する動作は、ＡＰ書き込みともよばれる。
【００８２】
図５の（ｂ）に示されるように、ＭＴＪ素子の磁化配列がＰ状態に設定される場合（例えば、“０”データがＭＴＪ素子２１に書き込まれる場合）、ＭＴＪ素子２１の参照層側の電位が記憶層側の電位より低くなるように、負の電圧値のＭＴＪ電圧ＶＣＮＴ（選択電圧Ｖａ）が、ＭＴＪ素子２１の参照層１２に印加される。これによって、ＭＴＪ素子２１は、負バイアス状態に設定される。
【００８３】
例えば、書き込み電流Ｉｗｒ０が導電層２０の端子Ｔ２から端子Ｔ３に向かって流れるように、書き込み電流Ｉｗｒ０が、導電層２０に供給される。
【００８４】
これによって、導電層２０上のＭＴＪ素子２１は、Ｐ状態（“０”データ保持状態）に設定される。
【００８５】
以下では、ＭＴＪ素子の磁化配列をＡＰ状態からＰ状態に変えるための電流は、Ｐ書き込み電流Ｉｐともよばれる。以下では、Ｐ書き込み電流Ｉｐを計算素子１０（導電層２０）に供給する動作は、Ｐ書き込みともよばれる。
【００８６】
図５の（ｃ）は、ＭＴＪ素子の記憶層の磁化反転の防止（抑制）を説明するための模式図である。
【００８７】
図５の（ｃ）に示されるように、ＭＴＪ素子２１の記憶層の磁化反転が防止される場合（ＭＴＪ素子２１が非選択状態に設定される場合）、ＭＴＪ素子２１の参照層側の電位が記憶層側の電位より高くなるように、正の電圧値Ｖｄを有するＭＴＪ電圧ＶＣＮＴ（非選択電圧Ｖｄ）が、ＭＴＪ素子２１の参照層１２に印加される。これによって、ＭＴＪ素子２１は、正バイアス状態に設定される、
これによって、ＭＴＪ素子２１の記憶層１１の磁化反転しきい値が、上昇する。
【００８８】
それゆえ、書き込み電流Ｉｗｒ２（又は、書き込み電流Ｉｗｒ１）が導電層２０内を流れていたとしても、正バイアス状態のＭＴＪ素子２１において、記憶層１１の磁化反転は、生じない。
【００８９】
このように、スピンホール効果及びＶＣＭＡによって、導電層２０上のＭＴＪ素子２１の記憶層の磁化反転が、制御され得る。
【００９０】
例えば、複数のＭＴＪ素子２１が１つの導電層２０上に配置された構造において、スピンホール効果によって、磁化スイッチング動作（書き込み動作）が、複数のＭＴＪ素子２１に一括に実行される。電流Ｉｗｒが導電層２０に流される場合、導電層２０上の複数のＭＴＪ素子２１において、磁化反転の対象となる素子（選択素子）と磁化反転の対象とならない素子（非選択素子）とが存在する場合がある。ＭＴＪ素子のＶＣＭＡによって、書き込み電流Ｉｗｒが導電層２０内に流れていたとしても、選択素子の記憶層の磁化を反転させつつ、非選択素子の記憶層の磁化反転が、防止（抑制）され得る。
【００９１】
これによって、本実施形態の演算デバイスにおいて、１ビット当たりの書き込みエネルギー（例えば、消費電力）とセルサイズの微細化とを、実現できる。
【００９２】
本実施形態において、これらの原理によって書き込み動作を実行するメモリは、Voltage Control Spintronic Memory （ＶｏＣＳＭ）又はVoltage Control Magnetic Memoryとよばれる。また、これらの原理によって論理演算を実行するデバイスは、Voltage Control Spintronic Logic （ＶｏＣＳＬ）とよばれる。
【００９３】
（１ｃ）計算素子  
図６乃至図８を用いて、本実施形態の演算デバイスの計算素子の特性について、説明する。
【００９４】
本実施形態の演算デバイスにおいて、ＭＴＪ素子２１を含む計算素子１０は、論理演算素子として、機能する。
【００９５】
図６は、本実施形態の演算デバイスの計算素子に、ＡＰ書き込みの書き込み電流が供給された場合における、制御電圧、磁化配列の初期状態、及び、磁化反転の結果の対応関係を示す図である。
【００９６】
図６において、ＭＴＪ素子の磁化配列の初期状態は、“Ａ”で示され、ＭＴＪ素子に印加される制御電圧の極性は、“Ｂ”で示される。ＡＰ書き込みが計算素子に実行された場合における計算結果は、“Ｑ１”で示される。尚、ＭＴＪ素子の磁化配列の初期状態は、書き込み電流が導電層に供給される前のＭＴＪ素子の磁化配列状態である。
【００９７】
正の電圧値（非選択電圧）ＶｄがＰ状態のＭＴＪ素子２１に印加され状態で、ＡＰ書き込み電流が導電層２０に供給された場合、ＭＴＪ素子２１は、Ｐ状態を維持する。  
負の電圧値（選択電圧）ＶａがＰ状態のＭＴＪ素子２１に印加され状態で、ＡＰ書き込み電流が導電層２０に供給された場合、ＭＴＪ素子２１は、ＡＰ状態に設定される。  
正の電圧値ＶｄがＡＰ状態のＭＴＪ素子２１に印加され状態で、ＡＰ書き込み電流が導電層２０に供給された場合、ＭＴＪ素子２１は、ＡＰ状態を維持する。  
負の電圧値ＶａがＡＰ状態のＭＴＪ素子２１に印加され状態で、ＡＰ書き込み電流が導電層２０に供給された場合、ＭＴＪ素子２１は、ＡＰ状態を維持する。  
ここで、ＭＴＪ素子のＰ状態が“０”に関連付けられ、ＭＴＪ素子のＡＰ状態が“１”に関連付けられる。制御電圧ＶＣＮＴにおいて、正の電圧値Ｖｄが“０”に関連付けられ、負の電圧値Ｖａが“１”に関連付けられる。
【００９８】
このように、ＭＴＪ素子の磁化配列状態及び制御電圧の極性が“０”及び１”にそれぞれ置換された場合、ＭＴＪ素子２１に対するＡＰ書き込みは、ＭＴＪ素子の磁化配列の初期状態“Ａ”と制御電圧ＶＣＮＴの設定された極性“Ｂ”とのＯＲ演算と等価な結果を得ることができる。
【００９９】
図７は、本実施形態の演算デバイスの計算素子に、Ｐ書き込みの書き込み電流が供給された場合における、制御電圧、磁化配列の初期状態、及び、磁化反転の結果の対応関係を示す図である。
【０１００】
図７において、ＭＴＪ素子の磁化配列の初期状態（書き込み電流の供給前のＭＴＪ素子の磁化配列状態）は、“Ａ”で示され、ＭＴＪ素子に印加される制御電圧の極性は、“Ｂ”で示される。Ｐ書き込みが計算素子に実行された場合における計算結果は、“Ｑ２”で示される。
【０１０１】
正の電圧値（非選択電圧）ＶｄがＰ状態のＭＴＪ素子２１に印加された状態で、Ｐ書き込み電流Ｉｐが導電層２０に供給された場合、ＭＴＪ素子２１は、Ｐ状態を維持する。  
負の電圧値（選択電圧）ＶａがＰ状態のＭＴＪ素子２１に印加された状態で、Ｐ書き込み電流Ｉｐが導電層２０に供給された場合、ＭＴＪ素子２１は、Ｐ状態を維持する。  
正の電圧値ＶｄがＡＰ状態のＭＴＪ素子２１に印加された状態で、Ｐ書き込み電流Ｉｐが導電層２０に供給された場合、ＭＴＪ素子２１は、ＡＰ状態を維持する。  
負の電圧値ＶａがＡＰ状態のＭＴＪ素子２１に印加された状態で、Ｐ書き込み電流Ｉｐが導電層２０に供給された場合、ＭＴＪ素子２１は、Ｐ状態に設定される。  
ＭＴＪ素子の磁化配列状態及び制御電圧の極性が“０／１”にそれぞれ置換された場合、ＭＴＪ素子２１に対するＰ書き込みは、ＭＴＪ素子の磁化配列の初期状態“Ａ”と制御電圧ＶＣＮＴの設定された極性（“Ｂ”）の反転値“ｂＢ”とのＡＮＤ演算と等価な結果を得ることができる。
【０１０２】
図８は、本実施形態の演算デバイスにおいて、計算素子におけるＡＰ書き込みの結果とＰ書き込みの結果とを用いた計算処理を説明するための図である。
【０１０３】
図８において、ＯＲ演算（ＡＰ書き込み）の結果Ｑ１の値が、ＡＮＤ演算（Ｐ書き込み）の結果Ｑ２の値と同じである場合、２つの結果Ｑ１，Ｑ２を用いた計算の結果が、“１”とされる。ＯＲ演算（ＡＰ書き込み）の結果Ｑ１の値が、ＡＮＤ演算（Ｐ書き込み）の結果Ｑ２の値と異なる場合、２つの結果Ｑ１，Ｑ２を用いた計算の結果が、“０”とされる。
【０１０４】
このように、本実施形態の演算デバイスは、ＯＲ演算（ＡＰ書き込み）の結果“Ｑ１”とＡＮＤ演算（Ｐ書き込み）の結果“Ｑ２”とを用いて、“Ａ”と“Ｂ”とのＸＮＯＲ演算と等価の結果を得ることができる。
【０１０５】
このように、本実施形態の演算デバイス１は、２つの値（２つのデータ）に関する、ＯＲ演算、ＡＮＤ演算及びＸＮＯＲ演算を、実行できる。
【０１０６】
以下において、計算素子１０を用いた計算処理は、計算素子１０内のＭＴＪ素子２１に対するデータの書き込みと実質的に同じである。以下において、計算素子１０を用いた計算処理は、書き込み動作（又はデータの書き込み）ともよばれる。
【０１０７】
（１ｄ）  構成例  
図９を参照して、本実施形態の演算デバイスの構成例について、説明する。
【０１０８】
図９は、本実施形態の演算デバイスのより具体的な構成例を示す模式図である。  
図９に示されるように、本実施形態の演算デバイス１は、プロセッサ５００内に設けられる。
【０１０９】
上述のように、演算デバイス１は、計算回路１００Ａ，１００Ｂ，４０及び制御回路７０を含む。
【０１１０】
計算回路１００（１００Ａ，１００Ｂ）は、複数のストリングＳＴＲを含む。制御単位（選択単位）としてのストリングＳＴＲは、複数の計算素子２０を含む。ストリングＳＴＲの構成は、後述される。例えば、計算回路１００Ａ，１００Ｂ，４０は、高速演算回路（アクセラレータ）ＡＣＣを構成する。
【０１１１】
制御回路７０は、高速演算回路ＡＣＣの動作を制御する。制御回路７０は、計算回路１００Ａ，１００Ｂ，４０のそれぞれの動作を、制御できる。制御回路７０は、１以上の情報ＩＮＦを保持可能な記憶領域７００を有する。  
記憶領域７００は、例えば、レジスタである。情報ＩＮＦは、高速演算回路ＡＣＣを制御するための情報である。例えば、情報ＩＮＦは、書き込み動作に用いられる電圧及び／又は電流の条件に関する情報である。
【０１１２】
図１０は、本実施形態の演算デバイスにおける、計算素子を含む制御単位（選択単位）の構成例を示す鳥瞰図である。
【０１１３】
図１０に示されるように、１つのストリングＳＴＲは、１つの導電層２０と複数のＭＴＪ素子２１とを含む。
【０１１４】
導電層２０は、Ｘ方向に延在する。  
複数のＭＴＪ素子２１は、１つの導電層２０上に設けられている。複数のＭＴＪ素子２１は、Ｘ方向に配列される。各ＭＴＪ素子２１は、面内磁化型のＭＴＪ素子である。ＭＴＪ素子２１の磁性層１１，１２の磁化容易軸方向は、Ｙ方向に設定されている。参照層１２の磁化は、紙面の手前側から奥行き側へ向く。
【０１１５】
各ＭＴＪ素子２１は、端子Ｔ１に接続される。各ＭＴＪ素子２１において、端子Ｔ１は、トランジスタＴＲ１を介して、ビット線ＢＬに接続される。各端子Ｔ１に対する制御電圧ＶＣＮＴの印加によって、複数のＭＴＪ素子２１は、互いに独立に選択状態及び非選択状態に設定される。
【０１１６】
端子Ｔ２が、導電層２０のＸ方向の一端に接続される。端子Ｔ２は、トランジスタＴＲ２を介して、配線（図示せず）に接続される。端子Ｔ３が、導電層２０のＸ方向の他端に接続される。端子Ｔ３は、トランジスタＴＲ３を介して、配線（図示せず）に接続される。
【０１１７】
１つの導電層２０は、複数のＭＴＪ素子２１に共有される。それゆえ、書き込み電流Ｉｗｒが、複数のＭＴＪ素子２１に対して同時に供給される。  
制御端子Ｔ１が、ＭＴＪ素子２１ごとに設けられる。これによって、１つの導電層２０上の各ＭＴＪ素子２１が、互いに独立な素子１０として機能する。
【０１１８】
複数のストリングＳＴＲが、計算回路（計算領域）１００内に、設けられている。
【０１１９】
図１１は、本実施形態の演算デバイスにおける、計算回路１００の内部構成の一例を示す回路図である。
【０１２０】
図１１に示されるように、複数のストリングＳＴＲが、計算回路（計算領域、又は、ＭＡＴ：Memory Array Tileともよばれる）１００内に配列されている。
【０１２１】
Ｙ方向に配列された複数のストリングＳＴＲは、互いに異なる配線（以下では、ワード線とよばれる）ＷＬ（ＷＬ−１，・・・，ＷＬ−ｋ）に接続される。
【０１２２】
Ｙ方向に配列された複数のストリングＳＴＲは、トランジスタＴＲ２を介して配線Ｌ１に共通に接続され、トランジスタＴＲ３を介して配線Ｌ２に共通に接続される。
【０１２３】
Ｙ方向に配列された複数のＭＴＪ素子２１（２１−１，２１−２，・・・，２１−ｊ）は、トランジスタＴＲ１（ＴＲ１−１，ＴＲ１−２，・・・，ＴＲ１−ｊ）を介して、共通の配線（以下では、ビット線とよばれる）ＢＬ（ＢＬ−１，ＢＬ−２，・・・，ＢＬ−ｊ）に接続される。Ｘ方向に隣り合う複数のＭＴＪ素子２１は、互いに異なる配線ＢＬに接続されている。
【０１２４】
例えば、計算回路１００内において、複数のストリングＳＴＲが、Ｘ方向に配列されてもよい。Ｘ方向に配列された複数のストリングＳＴＲは、共通の配線ＷＬに接続されてもよい。
【０１２５】
本実施形態において、計算回路１００Ａは、ＯＲ演算回路（ＯＲ演算領域）として用いられ、計算回路１００Ｂは、ＡＮＤ演算回路（ＡＮＤ演算領域）として用いられる。各計算回路１００は、計算に用いられるデータの記憶領域としても用いられる。
【０１２６】
図１２は、本実施形態の演算デバイスの内部構成の一例を示す模式図である。
【０１２７】
ＯＲ演算回路１００Ａ内において、複数のストリングＳＴＲＡ、複数のワード線ＷＬＡ、複数のビット線ＢＬＡ、複数の配線Ｌ１Ａ，Ｌ２Ａが、設けられている。
【０１２８】
各ワード線ＷＬＡは、ワード線デコーダ５０４を介して、ワード線ドライバ５０５内の複数のドライバ５５０のうち対応するドライバ（ドライバ回路）５５０に接続される。
【０１２９】
各ビット線ＢＬＡは、ビット線デコーダ５０１Ａを介して、ビット線ドライバ５０２Ａ内の複数のドライバ（ドライバ回路）５２０Ａのうち対応するドライバ５２０Ａに接続される。
【０１３０】
配線Ｌ１Ａは、ビット線デコーダ５０１Ａを介して、ドライバ回路５０２の複数のドライバ５２９Ａのうち対応するドライバ５２９Ａに接続される。配線Ｌ２Ａは、ビット線デコーダ５０１Ａを介して、ドライバ回路５０２の複数のドライバ５２９Ａのうち対応するドライバ５２９Ａに接続される。
【０１３１】
ＡＮＤ演算回路１００Ｂ内において、複数のストリングＳＴＲＢ、複数のワード線ＷＬＢ、複数のビット線ＢＬＢ、複数の配線Ｌ１Ｂ，Ｌ２Ｂが、設けられている。
【０１３２】
各ワード線ＷＬＢは、ワード線デコーダ５０４を介して、ワード線ドライバ５０５内の複数のドライバ５５０のうち対応するドライバ（ドライバ回路）５５０に接続される。
【０１３３】
各ビット線ＢＬＢは、ビット線デコーダ５０１Ｂを介して、ビット線ドライバ５０２Ｂ内の複数のドライバ５２０Ｂのうち対応するドライバ（ドライバ回路）５２０Ｂに接続される。
【０１３４】
配線Ｌ１Ｂは、ビット線デコーダ５０１Ｂを介して、ビット線ドライバ５０２Ｂの複数のドライバ（ドライバ回路）５２９Ｂのうち対応するドライバ５２９Ｂに接続される。配線Ｌ２Ｂは、ビット線デコーダ５０１Ｂを介して、ビット線ドライバ５０２Ｂの複数のドライバ５２９Ｂのうち対応するドライバ５２９Ｂに接続される。
【０１３５】
図１２に示されるように、複数のストリングＳＴＲが、回路（領域）１００内に設けられている。これによって、計算対象のデータに対する計算を、多並列で実行できる。この結果として、本実施形態の演算デバイス１は、データに対する計算処理を高速化できる。
【０１３６】
計算回路４０は、ＯＲ演算回路１００ＡとＡＮＤ演算回路１００Ｂとの間に設けられている。計算回路４０は、例えば、複数のセンスアンプ４００を含む。各センスアンプ４００は、２つの入力端子を有する。
【０１３７】
センスアンプ４００の一方の入力端子は、ＯＲ演算回路１００Ａ内の複数のビット線ＢＬＡのうち対応する１つに接続される。センスアンプ４００の他方の入力端子は、ＡＮＤ演算回路１００Ｂ内の複数のビット線ＢＬＢのうち対応する１つに接続される。
【０１３８】
センスアンプ４００は、ビット線ＢＬＡを介して、ＯＲ演算回路１００Ａ内のＭＴＪ素子２１Ａの保持データを読み出す。センスアンプ４００は、ビット線ＢＬＢを介して、ＡＮＤ演算回路１００Ｂ内のＭＴＪ素子２１Ｂの保持データを読み出す。
【０１３９】
センスアンプ４００は、ＯＲ演算回路１００Ａからの信号（ＯＲ演算の結果）と、ＡＮＤ演算回路１００ＢＡからの信号（ＡＮＤ演算の結果）とを比較する。センスアンプ４００は、２つの信号の比較結果を、計算回路４０の計算結果として、出力する。
【０１４０】
このように、計算回路４０は、センスアンプ４００によるＯＲ演算（論理和演算）の結果及びＡＮＤ演算の結果（論理積演算）の読み出し及び比較に基づいて、ある２つの値のＸＮＯＲ演算（積演算）と等価な計算処理を実行する。以下において、計算回路（演算回路）４０は、読み出し回路ともよばれる。
【０１４１】
尚、ビット線ドライバ、ビット線デコーダ、ワード線ドライバ及びワード線デコーダは、制御回路７０の構成要素でもよい。
【０１４２】
図１３は、本実施形態の演算デバイスにおける、ＡＮＤ演算回路及びＯＲ演算回路の構成の一例を示す模式図である。
【０１４３】
図１３の（ａ）は、本実施形態の演算デバイスにおける、ＯＲ演算回路１００ＡのストリングＳＴＲの構成例を示している。
【０１４４】
ＯＲ演算回路１００ＡのストリングＳＴＲＡにおいて、トランジスタＴＲ１Ａ，ＴＲ２Ａ，ＴＲ３Ａのゲートは、ワード線ＷＬＡに接続されている。ワード線ＷＬＡの電位の制御によって、ストリングＳＴＲＡは、活性化状態（選択状態）又は非活性化状態（非選択状態）に設定される。
【０１４５】
制御端子Ｔ１Ａが、各ＭＴＪ素子２１Ａの参照層１２Ａに接続されている。制御端子Ｔ１Ａは、トランジスタＴ１Ａを介して、ビット線ＢＬＡに接続されている。  
ビット線ＢＬＡの電位の制御によって、ＭＴＪ素子２１Ａは、選択状態又は非選択状態に設定される。
【０１４６】
導電層２０Ａの端子Ｔ２Ａは、トランジスタＴＲ２Ａ及び配線Ｌ１Ａを介して、ドライバ５２９Ａに接続される。導電層２０Ａの端子Ｔ３Ａは、トランジスタＴＲ３Ａ及び配線Ｌ２Ａを介して、ドライバ５２９Ａに接続される。
【０１４７】
ＯＲ演算回路１００Ａにおいて、Ｐ書き込み電流Ｉｐが、導電層２０Ａに供給される。ドライバ５２９Ａから供給される電圧Ｖｗ，Ｖｓｓの電位差によって、Ｐ書き込み電流Ｉｐが、導電層２０Ａ内に流れる。この場合において、一方のドライバ５２９Ａは、ソース回路として機能し、他方のドライバ５２９Ａ−２は、シンク回路として機能する。一方のドライバ５２９Ａは、正の電圧値を有する電圧Ｖｗを、導電層の端子Ｔ３Ａに印加する。他方のドライバ５２９Ａは、グランド電圧Ｖｓｓを、導電層２０Ａの端子Ｔ２Ａに印加する。
【０１４８】
このように、導電層２０Ａの端子Ｔ３Ａ側の電位が、導電層２０Ａの端子Ｔ２Ａ側の電位より高い。この電位差によって、Ｐ書き込み電流Ｉｐが、導電層２０Ａの部分ＸＢ側から部分ＸＡ側に向かって流れる。
【０１４９】
図１３の（ｂ）は、本実施形態の演算デバイスにおける、ＡＮＤ演算回路のストリングの構成例を示している。
【０１５０】
ＡＮＤ演算回路１００ＢのストリングＳＴＲＢにおいて、トランジスタＴＲ１Ｂ，ＴＲ２Ｂ，ＴＲ３Ｂのゲートは、ワード線ＷＬＢに接続されている。ワード線ＷＬＢの電位の制御によって、ストリングＳＴＲＢは、活性化状態（選択状態）又は非活性化状態（非選択状態）に設定される。
【０１５１】
制御端子Ｔ１Ｂが、各ＭＴＪ素子２１Ｂの参照層１２Ｂに接続されている。制御端子Ｔ１Ｂは、トランジスタＴ１Ｂを介して、ビット線ＢＬＢに接続されている。  
ビット線ＢＬＢの電位の制御によって、ＭＴＪ素子２１Ｂは、選択状態又は非選択状態に設定される。
【０１５２】
導電層２０Ｂの端子Ｔ２Ｂは、トランジスタＴＲ２Ｂ及び配線Ｌ１Ｂを介して、一方のドライバ５２９Ｂに接続される。導電層２０Ｂの端子Ｔ３Ｂは、トランジスタＴＲ３Ｂ及び配線Ｌ２Ｂを介して、他方のドライバ５２９Ｂに接続される。
【０１５３】
ＡＮＤ演算回路１００Ｂにおいて、ＡＰ書き込み電流Ｉａｐが、導電層２０Ｂに供給される。ドライバ５２９Ｂから供給される電圧によって、ＡＰ書き込み電流Ｉａｐが、導電層２０Ｂ内に流れる。この場合において、一方のドライバ５２９Ｂは、ソース回路として機能し、他方のドライバ５２９Ｂは、シンク回路として機能する。一方のドライバ５２９Ｂは、正の電圧値を有する電圧Ｖｗを、導電層２０Ｂの端子Ｔ２Ｂに印加する。他方のドライバ５２９Ｂは、グランド電圧Ｖｓｓを、導電層２０Ａの端子Ｔ３Ｂに印加する。
【０１５４】
このように、導電層２０Ａの端子Ｔ２Ｂの電位が、導電層２０Ｂの端子Ｔ３Ｂの電位より高い。この電位差によって、ＡＰ書き込み電流Ｉａｐが、導電層２０Ｂの部分ＸＡ側から部分ＸＢ側に向かって流れる。
【０１５５】
図１４は、本実施形態の演算デバイスにおける、計算回路の構成の一例を示す回路図である。
【０１５６】
図１４において、計算回路（読み出し回路）内のセンスアンプの一例が示されている。
【０１５７】
図１４に示されるように、計算回路４０のセンスアンプ４００は、複数の電界効果トランジスタ（以下では、トランジスタとよばれる）ＱＮ，ＱＰを含む。
【０１５８】
図１４の例のセンスアンプ４００は、４つのｎ型のトランジスタＱＮ１，ＱＮ２，ＱＮ３，ＱＮ４と、４つのｐ型のトランジスタＱＰ１，ＱＰ２，ＱＰ３，ＱＰ４と、を含む。
【０１５９】
トランジスタＱＮ１の電流経路の一端（ソース／ドレインの一方）は、ノード（第１の入力端子）ＮＤ１に接続される。トランジスタＱＮ１の電流経路の他端（ソース／ドレインの他方）は、ノード（第２の入力端子）ＮＤ３に接続される。トランジスタＱＮ１のゲートは、ノードＮＤ４に接続される。
【０１６０】
トランジスタＱＮ２の電流経路の一端は、グランド端子ＶＳＳに接続される。トランジスタＱＮ２の電流経路の他端は、ノードＮＤ１に接続される。トランジスタＱＮ２のゲートに、制御信号ＳＥＮ２が、供給される。
【０１６１】
トランジスタＱＰ１の電流経路の一端は、電圧端子ＶＲＤに接続されている。トランジスタＱＰ１の電流経路の他端は、ノードＮＤ３に接続される。トランジスタＱＰ１のゲートは、トランジスタＱＮ１のゲート及びノードＮＤ４に接続される。
【０１６２】
トランジスタＱＰ２の電流経路は、トランジスタＱＰ１の電流経路に並列に接続される。トランジスタＱＰ２の電流経路の一端は、電圧端子ＶＲＤに接続される。トランジスタＱＰ２の電流経路の他端は、ノードＮＤ３に接続される。トランジスタＸＰ２のゲートに、制御信号ＳＥＮ１が、供給される。
【０１６３】
トランジスタＱＮ３の電流経路の一端は、ノードＮＤ２に接続される。トランジスタＱＮ３の電流経路の他端は、ノードＮＤ４に接続される。トランジスタＱＮ３のゲートは、ノードＮＤ３に接続される。
【０１６４】
トランジスタＱＮ４の電流経路の一端は、グランド端子ＶＳＳに接続される。トランジスタＱＮ４の電流経路の他端は、ノードＮＤ２に接続される。トランジスタＱＮ４のゲートに、制御信号ＳＥＮ２に供給される。
【０１６５】
トランジスタＱＰ３の電流経路の一端は、電圧端子ＶＲＤに接続される。トランジスタＱＰ３の電流経路の他端は、ノードＮＤ４に接続される。トランジスタＱＰ３のゲートは、トランジスタＱＮ３のゲート及びノードＮＤ３に接続される。
【０１６６】
トランジスタＱＰ４の電流経路は、トランジスタＱＰ３の電流経路に並列に接続されている。トランジスタＱＰ４の電流経路の一端は、電圧端子ＶＲＤに接続される。トランジスタＱＰ４の電流経路の他端は、ノードＮＤ４に接続される。トランジスタＱＰ４のゲートに、制御信号ＳＥＮ１が、供給される。
【０１６７】
制御信号ＳＥＮ１，ＳＥＮ２の信号レベルの制御によって、センスアンプ４００が、活性化される。
【０１６８】
ノードＮＤ１は、トランジスタＱＸ１を介して、ＡＮＤ演算回路１００Ｂのビット線ＢＬＢに接続される。ノードＮＤ２は、トランジスタＱＸ２を介して、ＯＲ演算回路１００Ａのビット線ＢＬＡに接続される。
【０１６９】
例えば、トランジスタＱＸ１のゲートに、ゲート電圧ＶＣＬＭＰ１が印加される。トランジスタＱＸ２のゲートに、ゲート電圧ＶＣＬＭＰ２が印加される。トランジスタＱＸ１，ＱＸ２は、演算回路１００Ａ，１００Ｂとセンスアンプ４００との接続を制御する。例えば、トランジスタＱＸ１，ＱＸ２は、クランプトランジスタとして機能する。
【０１７０】
ノードＮＤ３に、出力端子ＤＯＵＴが接続されている。ノードＮＤ４に、出力端子ｂＤＯＵＴが接続されている。出力端子ＤＯＵＴから、比較結果に対応する信号が、出力される。出力端子ｂＤＯＵＴから、比較結果の反転値に対応する信号が、出力される。
【０１７１】
例えば、抵抗素子ＲＸが、ノードＮＤ１とトランジスタＱＸ１との間に、接続されている。抵抗素子ＲＸは、トランジスタＱＸ１とビット線ＢＬＡとの間に、接続されてもよい。
【０１７２】
尚、センスアンプ４００の回路構成は、図１４の例に限定されない。センスアンプ４００の構成は、電流センス型、電圧センス型、電荷蓄積型などの各種のセンス方式の回路構成が適用され得る。
【０１７３】
図１５は、本実施形態の演算デバイスにおける、計算回路内の複数のＭＴＪ素子の抵抗値の分布の一例を示す図である。
【０１７４】
センスアンプ４００を用いて、ＯＲ演算の結果とＡＮＤ演算の結果との比較処理が実行される場合、比較処理の容易化のために、ＡＮＤ演算回路１００Ｂ内のＭＴＪ素子２１Ｂの抵抗値が、ＯＲ演算回路１００Ａ内のＭＴＪ素子２１Ａの抵抗値より高くされてもよい。
【０１７５】
この場合、図１５に示されるように、ＡＮＤ演算回路１００Ｂ内の複数のＭＴＪ素子２１Ｂの抵抗値の分布ＰＡＮＤ，ＡＰＡＮＤが、ＯＲ演算回路１００Ａ内の複数のＭＴＪ素子２１Ａの抵抗値の分布ＰＯＲ，ＡＰＯＲが、高抵抗側にシフトされる。
【０１７６】
ＯＲ演算回路１００ＡにおけるＡＰ状態のＭＴＪ素子の抵抗値の分布ＡＰＯＲが、ＡＮＤ演算回路１００ＢおけるＰ状態のＭＴＪ素子の抵抗値の分布ＰＡＮＤとＡＰ状態におけるＭＴＪ素子の抵抗値の分布ＡＰＡＮＤとの間に設定される。
【０１７７】
抵抗値の分布のシフトのために、例えば、図１４の回路例のように、ＡＮＤ演算回路１００Ｂとセンスアンプ４００との接続経路上に、抵抗素子ＲＸが設けられている。
【０１７８】
例えば、ＯＲ演算の結果を保持するＭＴＪ素子からの信号がＡＮＤ演算の結果を保持するＭＴＪ素子からの信号より大きい場合、センスアンプ４００の判定結果（出力信号）は“１”とされる。これに対して、ＯＲ演算の結果を保持するＭＴＪ素子からの信号がＡＮＤ演算の結果を保持するＭＴＪ素子からの信号同じ又は小さい場合、センスアンプ４００判定結果は“０”とされる。
【０１７９】
このように、センスアンプ４００によるＯＲ演算の結果とＡＮＤ演算の結果との信号量の比較（計算処理、ＸＯＲ演算の結果の取得）が、比較的容易になされ得る。
【０１８０】
図１４の例のように、抵抗素子ＲＸが、センスアンプ４００ノードＮＤ１とＡＮＤ演算回路１００Ｂのビット線ＢＬＢとの間に、接続された場合、ＡＮＤ演算の結果に対応する信号量（例えば、電流値）は、ＯＲ演算の結果に対応する信号量より小さくなる。
【０１８１】
これによって、センスアンプ４００のセンス結果において、ＡＮＤ演算回路１００ＢのＭＴＪ素子２１Ａの抵抗値の分布が、ＯＲ演算回路のＭＴＪ素子の抵抗値の分布より高い抵抗値に相対的に（等価的に）シフトされ得る。
【０１８２】
トランジスタＱＸ１及びトランジスタＱＸ２の動作電圧の制御によって、ＡＮＤ演算回路１００ＢのＭＴＪ素子２１Ｂの抵抗値の分布が、ＯＲ演算回路１００ＡのＭＴＪ素子の抵抗値の分布に対して、高抵抗側に等価的にシフトされてもよい。例えば、トランジスタ（例えば、クランプトランジスタ）ＱＸ１のゲート電圧ＶＣＬＭＰ１が、トランジスタ（例えば、クランプトランジスタ）のゲート電圧ＶＣＬＭＰ２より低くされる。これによって、ＡＮＤ演算の結果に対応する信号量（例えば、電流値）は、ＯＲ演算の結果に対応する信号量より小さくなる。  
この結果として、ＡＮＤ演算回路１００ＢのＭＴＪ素子２１Ｂの抵抗値の分布が、ＯＲ演算回路のＭＴＪ素子の抵抗値の分布より高い抵抗値にシフトされ得る。
【０１８３】
尚、抵抗素子ＲＸの設置及びトランジスタのゲート電圧の制御の代わりに、ＡＮＤ演算回路１００Ｂ内のＭＴＪ素子２１Ａのサイズ（Ｘ−Ｙ平面の面積）が、ＯＲ演算回路１００Ａ内のＭＴＪ素子２１Ａのサイズ（Ｘ−Ｙ平面の面積）より大きくされてもよい。
【０１８４】
このような回路構成によって、本実施形態の演算デバイス１は、２つの値（データ）に対するＯＲ演算、ＡＮＤ演算及びＸＮＯＲ演算を実行できる。例えば、本実施形態の演算デバイス１は、ＸＮＯＲ演算デバイス（又は、積演算デバイス）ともよばれ得る。
【０１８５】
（１ｅ）動作例  
図１６乃至図  を参照して、本実施形態の演算デバイスの動作例について、説明する。
【０１８６】
＜計算処理＞  
図１６乃至図２１は、本実施形態の演算デバイスが実行する動作の複数の処理（計算工程）を模式的に示す図である。
【０１８７】
図１６に示されるように、各計算回路１００Ａ，１００Ｂにおいて、計算素子１０のＭＴＪ素子２１は、初期状態に設定される。計算素子１０の初期状態において、計算素子１０のＭＴＪ素子２１内に保存されているデータ（例えば、値）は、任意である。
【０１８８】
図１７に示されるように、各計算回路１００Ａ，１００Ｂの計算素子１０において、ウェイトデータＷｍ，ｎが、ＭＴＪ素子２１に書き込まれる。ウェイトデータＷｍ，ｎは、重み値である。
【０１８９】
ワード線ドライバ５０５及びワード線デコーダ５０４は、ＡＮＤ演算回路及びＯＲ演算回路のロウ（ワード線）を制御する。ワード線ＷＬの活性化／非活性化によって、データの書き込み対象のストリングＳＴＲが、選択される。
【０１９０】
１以上のワード線ＷＬＡ，ＷＬＢの電位の制御によって、１以上のストリングＳＴＲＡ，ＳＴＲＢが、選択状態又は非選択状態に設定される。複数のビット線ＢＬＡ，ＢＬＢの電位が、制御される。これによって、ＭＴＪ素子２１Ａ，２１Ｂが、選択状態（書き込み可能状態）又は非選択状態（書き込み防止状態）に設定される。
【０１９１】
ＭＴＪ素子２１に対するウェイトデータＷｍ，ｎの書き込み時において、書き込むべきウェイトデータＷｍ，ｎに応じて、０書き込み電流及び／又は１書き込み電流が、ストリングＳＴＲＡ，ＳＴＲＢに供給される。  
これによって、“０”データ又は“１”データが、各ＭＴＪ素子２１Ａ，２１Ｂに書き込まれる。
【０１９２】
尚、同じデータ（同じ値、同じデータ列）が、計算回路１００Ａ，１００Ｂの対称な位置（アドレス）に書き込まれることが望ましい。例えば、ＯＲ演算回路１００Ａにおけるｊ番目のアドレスのストリングＳＴＲＡに書き込まれるデータは、ＡＮＤ演算回路１００Ｂのｉ番目のアドレスのストリングＳＴＲＢに書き込まれるデータと同じである。  
ＯＲ演算回路１００Ａにおけるｊ番目のアドレスのストリングに対するデータの書き込みは、ＡＮＤ演算回路１００Ｂのｊ番目のアドレスのストリングＳＴＲＢに対するデータの書き込みと同時に実行されてもよいし、異なるタイミングで実行されてもよい。
【０１９３】
図１８に示されるように、データＤｉｎＡが、データバッファ５０３Ａに供給される。データバッファ５０３Ａは、データＤｉｎＡを一時的に保持する。データＤｉｎＢが、データバッファ５０３Ｂに供給される。データバッファ５０３Ｂは、データＤｉｎＢを一時的に保持する。データＤｉｎＢは、データＤｉｎＡの反転データである。例えば、データＤｉｎＡが、インバータ（図示せず）を介して、データバッファ５０３Ｂに供給される。これによって、データバッファ５０３Ｂは、データＤｉｎＡの反転データを保持できる。
【０１９４】
データＤｉｎＡは、ビット線ドライバ５０２Ａ及びビット線デコーダ５０１Ａを介して、データバッファ５０３Ａからビット線ＢＬＡに転送される。より具体的には、ビット線ドライバ５０２Ａは、データＤｉｎＡの各値（データ列）Ｉ１，Ｉ２，・・・，Ｉｉ，・・・，Ｉｍに基づいて、ビット線ＢＬＡの電位を、データＤｉｎＡ内の値（データ列）に対応する電位に設定する。
【０１９５】
データＤｉｎＢ（データＤｉｎＡの反転データ）は、ビット線ドライバ５０２Ａ及びビット線デコーダ５０１Ａを介して、データバッファ５０３Ｂからビット線ＢＬＢに転送される。より具体的には、ビット線ドライバ５０２Ｂは、データＤｉｎＢの各値（データ列）ｂＩ１，ｂＩ２，・・・，ｂＩｉ，・・・，ｂＩｍに基づいて、ビット線ＢＬＢの電位を、データＤｉｎＢ内の値（データ列）に対応する電位に設定する。
【０１９６】
図１９に示されるように、各計算回路１００Ａ，１００Ｂにおいて、計算処理（書き込み動作）が、実行される。ワード線ＷＬＡ，ＷＬＢの電位の制御によって、１以上のストリングＳＴＲＡ，ＳＴＲＢが、選択される。
【０１９７】
ＯＲ演算回路１００Ａにおいて、“１”データの書き込み動作が、選択されたストリングＳＴＲＡに対して、実行される。ＡＰ書き込み電流Ｉａｐが、導電層２０Ａの端子Ｔ３Ａ側から端子Ｔ２Ａ側へ流れるように、導電層２０Ａ内に供給される。
【０１９８】
これによって、ストリングＳＴＲＡの各ＭＴＪ素子２１Ａにおいて、ウェイトデータＷｍ，ｎと入力データＤｉｎＡとのＯＲ演算が、実行される。計算回路１００ＡのストリングＳＴＲＡの計算素子１０Ａにおいて、ＯＲ演算の結果Ｏｍ，ｎが、保持される。
【０１９９】
ＡＮＤ演算回路１００Ｂにおいて、“０”データの書き込み動作が、選択されたストリングＳＴＲＢに対して、実行される。Ｐ書き込み電流Ｉｐが、導電層２０Ｂの端子Ｔ２Ｂ側から端子Ｔ３Ｂ側へ流れるように、導電層２０Ｂ内に供給される。
【０２００】
これによって、ストリングＳＴＲＢの各ＭＴＪ素子２１Ｂにおいて、ウェイトデータＷｍ，ｎとデータ（データＤｉｎＡの反転データ）ＤｉｎＢとのＡＮＤ演算が、実行される。計算回路１００ＢのストリングＳＴＲＢの計算素子１０Ｂにおいて、ＡＮＤ演算の結果Ａｍ，ｎが、保持される。
【０２０１】
図２０に示されるように、演算回路４０は、ＯＲ演算回路１００Ａ内のデータ（ＯＲ演算の結果Ｏｍ，ｎ）とＡＮＤ演算回路１００Ｂのデータ（ＡＮＤ演算の結果Ａｍ，ｎ）との比較処理を実行する。
【０２０２】
上述のように、演算回路４０のセンスアンプ４００によるデータの読み出し結果に基づいて、ウェイトデータＷｍｎと入力データＤｉｎとのＸＮＯＲ演算の結果と等価な値が得られる。
【０２０３】
ＯＲ演算回路１００Ａにおいて、ＭＴＪ素子２１Ａのデータ（抵抗状態）に対応する信号が、ビット線ＢＬＡに出力される。ＡＮＤ演算回路１００Ｂにおいて、ＭＴＪ素子２１Ｂのデータ（抵抗状態）に対応する信号が、ビット線ＢＬＢに出力される。この信号が、対応するセンスアンプ４００の入力端子にそれぞれ供給される。
【０２０４】
上述の図１４及び図１５のように、センスアンプ４００による信号の比較によって、センスアンプ４００の比較結果が、“０”又は“１”の出力信号Ｆｍｎとして、出力される。センスアンプ４００の出力信号Ｆｍｎは、入力データとウェイトデータとのＸＮＯＲ演算に相当する。
【０２０５】
このように、本実施形態の演算デバイス１によって、入力データＤｉｎとウェイトデータＷとの積演算の結果が得られる。
【０２０６】
＜書き込み条件の情報に基づいた計算処理の設定＞  
図２１は、本実施形態の演算デバイスにおける動作電圧と書き込みエラーとの関係を示すグラフである。
【０２０７】
図２１において、グラフの横軸は、動作電圧Ｖｗに対応し、グラフの縦軸は、書き込みエラーに対応する。電圧Ｖｗは、書き込み電流Ｉｗｒを生成するための電圧（電圧値）である。例えば、電圧Ｖｗは、ドライバ５０２のソース回路の電源電圧に用いられる。図２１において、書き込み動作の時間（書き込み電流のパルス幅）は、一定に設定されている。書き込み電圧Ｖｗは、ＭＴＪ素子の破壊電圧より小さい電圧の範囲に設定される。書き込みエラーは、データの書き込みに対する書き込みエラーの発生率（以下では、書き込みエラー率とよばれる）で示されている。
【０２０８】
書き込み電圧Ｖｗの電圧値の増加に伴って、書き込み電流Ｉｗｒ（Ｉａｐ，Ｉｐ）の電流値は、増大する。
【０２０９】
図２１に示されるように、書き込みエラー率ＷＥＲは、書き込み電圧Ｖｗの電圧値が増大すると、指数関数的に減少する。
【０２１０】
ここで、計算機システムで許容される書き込みエラー率（ＷＥＲ）は、本実施形態の演算デバイスが使用されるニューラルネットワークの構成に応じて、異なる。
【０２１１】
許容可能なエラー率に応じて書き込み電圧Ｖｗが設定されることで、ニューラルネットワーク（例えば、深層ニューラルネットワーク及び／又は畳み込みニューラルネットワーク）の計算精度を劣化させることなしに、書き込み電圧Ｖｗを低減できる。
【０２１２】
図２２は、本実施形態の演算デバイスの構成のより具体的な一例を示す図である。
【０２１３】
回路（高速演算回路）ＡＣＣは、上述のように、ＯＲ演算回路１００Ａ、ＡＮＤ演算回路１００Ｂ及び演算回路（読み出し回路）４０を含む。
【０２１４】
例えば、回路ＡＣＣは、ビット線デコーダ５０１（５０１Ａ，５０１Ｂ）を含む。  
ビット線デコーダ５０１Ａは、ＯＲ演算回路１００Ａの複数のビット線に接続される。ビット線デコーダ５０１Ａは、ＯＲ演算回路１００Ａの複数のビット線の活性化（選択／非選択）を制御する。ビット線デコーダ５０１Ｂは、ＡＮＤ演算回路１００Ｂの複数のビット線に接続される。ビット線デコーダ５０１Ｂは、ＡＮＤ演算回路１００Ｂの複数のビット線の活性化（選択／非選択）を制御する。
【０２１５】
例えば、回路ＡＣＣは、ビット線ドライバ５０２（５０２Ａ，５０２Ｂ）を含む。ビット線ドライバ５０２Ａは、ビット線デコーダ５０１Ａを介して、ＯＲ演算回路１００Ａ内の複数のビット線ＢＬＡに接続される。ビット線ドライバ５０２Ａは、ＯＲ演算回路１００Ａ内の複数のビット線ＢＬＡの電位を制御する。ビット線ドライバ５０２Ｂは、ビット線デコーダ５０１Ｂを介して、ＡＮＤ演算回路１００Ｂ内の複数のビット線ＢＬＢに接続される。ビット線ドライバ５０２Ｂは、ＡＮＤ演算回路１００Ｂ内の複数のビット線ＢＬＢの電位を制御する。
【０２１６】
例えば、回路ＡＣＣは、データバッファ５０３（５０３Ａ，５０３Ｂ）を含む。  
データバッファ５０３Ａは、ＯＲ演算回路１００Ａに転送すべきデータ（書き込みデータ）を一時的に保持する。データバッファ５０３Ａ内のデータに基づいて、ビット線ドライバ５０２Ａは、ビット線ＢＬＡの電位を制御する。データバッファ５０３Ｂは、ＡＮＤ演算回路１００Ｂに転送すべきデータ（書き込みデータ）を一時的に保持する。データバッファ５０３Ｂ内のデータに基づいて、ビット線ドライバ５０２Ｂは、ビット線ＢＬＢの電位を制御する。
【０２１７】
例えば、回路ＡＣＣは、ワード線デコーダ５０４を含む。  
ワード線デコーダ５０４は、ＯＲ演算回路１００Ａのワード線ＷＬＡ及びＡＮＤ演算回路１００Ｂのワード線ＷＬＢに接続される。ワード線デコーダ５０４は、ＯＲ演算回路１００Ａのワード線ＷＬＡ及びＡＮＤ演算回路１００Ｂのワード線ＷＬＢの活性化（選択／非選択）を制御する。
【０２１８】
例えば、回路ＡＣＣは、ワード線ドライバ５０５を含む。  
ワード線ドライバ５０５は、ワード線デコーダ５０４を介して、ＯＲ演算回路１００Ａのワード線ＷＬＡ及びＡＮＤ演算回路１００Ｂのワード線ＷＬＢに接続される。ワード線ドライバ５０５は、ＯＲ演算回路１００Ａのワード線ＷＬＡの電位、及び、ＡＮＤ演算回路１００Ｂのワード線ＷＬＢの電位を、制御する。
【０２１９】
本実施形態の演算デバイス１において、制御回路７０は、データの書き込み（記憶層の磁化反転）に用いられる各種の設定条件に関する情報ＩＮＦ１を、保持する。  
制御回路７０は、情報ＩＮＦ１を格納するための記憶領域（例えば、レジスタ）７００Ａを含む。
【０２２０】
本実施形態において、レジスタ７００Ａは、書き込み電流を生成するために用いられる電圧（書き込み電圧）Ｖｗに関する情報（以下では、電圧情報とよばれる）ＩＮＦ１を、保持する。  
電圧情報ＩＮＦ１は、書き込み電圧Ｖｗの電圧値と書き込みエラー率との関係に基づく情報である。例えば、電圧情報ＩＮＦ１は、演算デバイス１の外部から供給される。例えば、コントローラ、ホストデバイス又はユーザによって操作されたデバイスなどの外部デバイスが、電圧情報ＩＮＦ１を演算デバイス１に供給する。尚、書き込みエラー率の代わりに、ある書き込み条件における書き込みエラーの回数（以下では、書き込みエラー数と呼ばれる）に基づいて、情報ＩＮＦ1が作成されてもよい。また、書き込みエラーは、書き込みエラー率及び書き込みエラー数に限らず、ある書き込み条件から得ることが可能なエラーに関する値であればよい。
【０２２１】
レジスタ（以下では、電圧情報レジスタともよばれる）７００Ａは、ビット線ドライバ５０２（５０２Ａ，５０２Ｂ）に接続される。レジスタ７００Ａは、書き込み電圧の電圧値に関する情報ＩＮＦ１を、ビット線ドライバ５０２に提供できる。
【０２２２】
ビット線ドライバ５０２は、レジスタ７００Ａ内の電圧情報ＩＮＦ１に基づいて、動作する。
【０２２３】
尚、磁気抵抗効果素子２１に対する書き込み動作を制御するための情報ＩＮＦは、２つの計算回路１００のうち一方に対応する条件及び情報でもよいし、２つの計算回路１００の両方に対応する条件及び情報でもよい。
【０２２４】
図２３は、本実施形態の演算デバイスにおける、ビット線ドライバの内部構成の一例を示す図である。
【０２２５】
図２３に示されるように、本実施形態の演算デバイスにおいて、ビット線ドライバ５０２（５０２Ａ，５０２Ｂ）は、ドライバ５２０及びセレクタ５２１を含む。
【０２２６】
許容される書き込みエラー率に基づく電圧情報ＩＮＦ１は、セレクタ５２１に供給される。複数の電圧値Ｖ１，Ｖ２，・・・，Ｖｎが、セレクタ５２１に供給される。
【０２２７】
セレクタ５２１は、電圧情報ＩＮＦ１に基づいて、複数の電圧値Ｖ１，Ｖ２，・・・，Ｖｎの中から１つを選択する。
【０２２８】
セレクタ５２１は、選択された電圧値Ｖｓｅｌをドライバ５２５に供給する。
【０２２９】
ドライバ５２０は、供給された電圧値Ｖｓｅｌに応じて、動作する。ドライバ５２０は、電圧値Ｖｓｅｌに応じた書き込み電圧Ｖｗを、出力する。
【０２３０】
これによって、電圧情報ＩＮＦ１に応じた書き込み電圧Ｖｗが、導電層２０のソース側の端子に、印加される。書き込み電圧Ｖｗとグランド電圧Ｖｓｓとの電位差によって、導電層２０内に、書き込み電流Ｉｗｒが、生じる。
【０２３１】
生成された書き込み電流Ｉｗｒを用いて、上述の図１６乃至図２０の計算処理が、実行される。
【０２３２】
このように、本実施形態の演算デバイスにおいて、計算機システムの許容範囲内の書き込みエラー（書き込みエラー率）に関する情報に基づいて、電圧及び電流の設定条件が、選択される。
【０２３３】
（１ｆ）まとめ  
本実施形態の演算デバイスは、計算回路内の磁気抵抗効果素子のデータの書き込み条件（計算素子の計算処理の条件）に関する情報を保持するレジスタを含む。
【０２３４】
演算デバイスを用いて実行される計算モデル（例えば、畳み込みニューラルネットワーク）に応じて、許容される書き込みエラー率は異なる。
【０２３５】
例えば、低い書き込みエラー率が許容可能な計算モデルのための計算処理が実行される場合において、比較的低い書き込み電圧及び書き込み電流を用いて、本実施形態の演算デバイスの計算処理（書き込み動作）が、実行可能である。
【０２３６】
本実施形態の演算デバイスは、レジスタ内の情報に基づいて、実行される計算モデルにおける書き込みエラー（例えば、書き込みエラー率又は書き込みエラー数）の許容範囲内で、書き込み動作（計算処理）に用いられる電圧／電流の大きさを制御できる。  
この結果として、本実施形態の演算デバイスは、消費電力を低減できる。
【０２３７】
以上のように、第１の実施形態の演算デバイスは、特性を向上できる。
【０２３８】
（２）  第２の実施形態  
図２４及び図２５を参照して、第２の実施形態の演算デバイス及びその制御方法について、説明する。
【０２３９】
図２４は、本実施形態の演算デバイスの構成例を示す図である。  
図２４に示されるように、本実施形態の演算デバイス１は、テーブル生成回路（テスト回路ともよばれる）７０１Ａを、制御回路７０内に含む。
【０２４０】
テーブル生成回路７０１Ａは、書き込み電圧（Ｖｗ）と書き込みエラー率（ＷＥＲ）との関係を示すテーブルを生成する。以下において、回路７０１Ａは、電圧−エラー率テーブル生成回路７０１Ａともよばれる。
【０２４１】
テーブル生成回路７０１Ａは、例えば、電圧情報レジスタ７００Ａ及び読み出し回路（演算回路）４０に接続される。  
テーブル生成回路７０１Ａは、テスト工程又はＢＩＳＴ工程において、ＯＲ演算回路１００Ａ及びＡＮＤ演算回路１００ＢのＭＴＪ素子２１に対するテストを実行できる。テーブル生成回路７０１Ａは、テストの結果を用いて、書き込み電圧と書き込みエラー率とに関するテーブルを生成する。また、テーブル生成回路７０１は、ＯＲ演算／ＡＮＤ演算時の書き込み動作及び読み出し動作の結果を用いて、書き込み電圧と書き込みエラー率とに関するテーブルを生成できる。
【０２４２】
尚、テーブル生成回路７０１Ａは、制御回路７０の外部に設けられてもよい。テーブル生成回路７０１Ａは、高速演算回路ＡＣＣ内に設けられてもよい。
【０２４３】
図２５は、本実施形態の演算デバイスにおける、制御回路の内部構成の一例を示す図である。
【０２４４】
図２５において、制御回路７０内における、電圧−エラー率テーブル生成回路７０１Ａの構成の一例が示されている。
【０２４５】
図２５に示されるように、テーブル生成回路７０１Ａは、エラーカウンタ制御回路７１０、エラーカウンタ７１１、テーブル保持回路７１２、ターゲットエラー率レジスタ７１３及び選択回路７１４を含む。
【０２４６】
エラーカウンタ制御回路７１０は、エラーカウンタ７１１及び演算回路（読み出し回路）４０の動作を制御する。
【０２４７】
エラーカウンタ７１１は、設定された電圧値における、書き込みエラーの個数をカウントする。エラーカウンタ７１１は、設定された電圧値Ｖ１，Ｖ２，・・・，Ｖｎと書き込みエラー率（エラー数）ＥＲ１，ＥＲ２，・・・，ＥＲｎとの関係を、テーブル保持回路７１２内に格納する。
【０２４８】
テーブル保持回路７１２は、複数の電圧値Ｖ１，Ｖ２，・・・，Ｖｎと各電圧値に対応する書き込みエラー数ＥＲ１，ＥＲ２，・・・，ＥＲｎとの関係を、保持する。これによって、電圧−エラー率テーブルＴＢＬＡが、生成される。また、書き込みエラーの個数に基づいて、書き込みエラー率が計算される。
【０２４９】
ターゲットエラー率レジスタ７１３は、計算機システム内で適用される計算モデル（例えば、畳み込みニューラルネットワーク）に応じて設定されたエラー率のターゲット値を、保持する。例えば、エラー率のターゲット値は、演算デバイスの外部デバイス（又はユーザ）から提供される。
【０２５０】
選択回路７１４は、エラー率のターゲット値とテーブルＴＢＬＡ内のエラー率ＥＲ１，ＥＲ２，・・・，ＥＲｎに基づいて、テーブルＴＢＬＡ内の複数の電圧値Ｖ１，Ｖ２，・・・，Ｖｎの中から１つを選択する。例えば、選択回路７１４は、テーブルＴＢＬＡとターゲット値とを比較する。選択回路７１４は、要求されたエラー率以下のエラー率を実現する１つ以上の電圧値の中から、ターゲット値に最も近いエラー率に対応する電圧値の情報を選択する。
【０２５１】
選択回路７１４は、選択された電圧値の情報を電圧情報レジスタ７００Ａに出力する。選択された電圧値の情報は、電圧情報レジスタ７００Ａ内に格納される。
【０２５２】
本実施形態の演算デバイスにおいて、以下の動作によって、書き込み電圧と書き込みエラー（例えば、書き込みエラー率）に関するテーブルが生成される。
【０２５３】
ＭＴＪ素子の書き込みエラー率を評価する場合、演算回路１００内のＭＴＪ素子２１に対して、データの書き込み及びデータの読み出しが、実行される。例えば、以下において、書き込みエラー率の評価（書き込みエラー数のカウント）時におけるデータの書き込み及び読み出しを含む動作は、テスト動作とよばれる。
【０２５４】
使用され得る複数の電圧値のうち選択された１つを用いて、データの書き込みが、ＭＴＪ素子２１に対して実行される。データが書き込まれたＭＴＪ素子２１に対して、データの読み出しが実行される。
【０２５５】
エラーカウンタ制御回路７１０が、ＡＮＤ演算回路内のＭＴＪ素子のエラー率を評価する場合、エラーカウンタ制御回路７１０は、ＯＲ演算回路内のＭＴＪ素子を参照抵抗に用いる。このように、本実施形態の演算デバイスは、読み出し回路（演算回路）を用いて、ＡＮＤ演算回路内のＭＴＪ素子の書き込みエラー率及びＯＲ演算回路内のＭＴＪ素子の書き込みエラー率を評価できる。それゆえ、本実施形態の演算デバイスは、回路面積の増大を抑制できる。
【０２５６】
例えば、抵抗素子ＲＸが、ＭＴＪ素子の抵抗値の分布のオフセットのために、演算回路４０のセンスアンプ４００に接続されている場合（図１４及び図１５参照）、ＯＲ演算回路１００ＡのＡＰ状態のＭＴＪ素子２１Ａの抵抗値は、ＡＮＤ演算回路１００ＢのＡＰ状態のＭＴＪ素子２１Ｂの抵抗値とＰ状態のＭＴＪ素子の抵抗値との間の値を有する。
【０２５７】
それゆえ、ＯＲ演算回路１００ＡのＡＰ状態のＭＴＪ素子２１Ａの抵抗値は、ＡＮＤ演算回路１００ＢのＡＰ状態のＭＴＪ素子２１Ｂの抵抗値とＰ状態のＭＴＪ素子２１Ｂの抵抗値とを区別するための参照抵抗値として用いることができる。
【０２５８】
これと同様に、ＯＲ演算回路１００Ａ内の書き込みエラー率の評価時において、ＡＮＤ演算回路１００ＢのＡＰ状態のＭＴＪ素子２１Ｂの抵抗値が、ＯＲ演算回路１００ＡのＡＰ状態のＭＴＪ素子２１Ａの抵抗値とＰ状態のＭＴＪ素子２１Ａの抵抗値との区別のために、用いることができる。
【０２５９】
複数の電圧値の中から選択された電圧値ごとに、データの書き込み及びデータの読み出しが実行される。これによって、各電圧値に対する書き込みエラー数が、得られる。  
この結果として、電圧値と書き込みエラー数とに関するテーブルが、生成される。
【０２６０】
尚、テーブルＴＢＬＡは、演算デバイス（又は、計算機システム）の製造時のテスト工程で作成されてもよいし、計算処理（例えば、畳み込みニューラルネットワークを用いた計算処理）の実行時に、新たに作成されてもよい。
【０２６１】
テーブルＴＢＬＡがテスト工程で作成される場合、テーブルＴＢＬは、フューズ素子のような１回のみ書き込み可能なデバイスを用いて、記録されることが望ましい。計算処理の実行時にテーブルＴＢＬが作成される場合、テーブルＴＢＬは、不揮発性のエンベデッドメモリに記録されてもよいし、ＳＲＡＭ及び／又はＤＲＡＭなどの揮発性メモリに記録されてもよい。
【０２６２】
尚、本実施形態における電圧情報レジスタ７００Ａ内の情報を用いた書き込み動作の制御は、第１の実施形態の例と同様であるため、ここでの説明は省略する。
【０２６３】
以上のように、本実施形態の演算デバイスは、演算デバイスによって生成されたテーブルに基づいて、書き込みエラー率の許容範囲に応じて、書き込み電流の電流値を低減できる。この結果として、本実施形態の演算デバイスは、消費電力を低減できる。
【０２６４】
したがって、第２の実施形態の演算デバイスは、特性を向上できる。
【０２６５】
（３）  第３の実施形態  
図２６乃至図２８を参照して、第３の実施形態の磁気デバイスについて、説明する。
【０２６６】
図２６は、本実施形態の演算デバイスにおける動作電圧と書き込みエラー率との関係を示すグラフである。
【０２６７】
図２６において、グラフの横軸は、書き込み電圧Ｖｗのパルス幅ｔｗに対応し、グラフの縦軸は、書き込み電圧Ｖｗの電圧値に対応する。複数のエラー率の各々に関して、パルス幅ｔｗと電圧値Ｖｗとの関係が示されている。  
書き込み電圧Ｖｗのパルス幅ｔｗは、導電層２０に対する電流の供給期間に実質的に相当する。
【０２６８】
図２６において、３つのエラー率ＥＲ１，ＥＲ２，ＥＲ３におけるパルス幅ｔｗと電圧値Ｖｗの関係が、示されている。３つの書き込みエラー率ＥＲ１，ＥＲ２，ＥＲ３は、ＥＲ１＜ＥＲ２＜ＥＲ３の大小関係を有している。
【０２６９】
ここで、各書き込みエラー率に関して、書き込み電圧のパルス幅が小さくされる（書き込み電圧の印加時間が短くされる）と、書き込み電圧Ｖｗの電圧値は、上昇する。  
書き込み電圧Ｖｗの電圧値が同じ（例えば、電圧値Ｖｘ）である場合、書き込み電圧のパルス幅が大きくされる（書き込み電圧の印加時間が長くされる）と、エラー率は低下する。
【０２７０】
このエラー率とパルス幅との関係に基づいて、ある電圧値の書き込み電圧Ｖｗにおいて、計算機システムに要求されるエラー率に応じて、より適した書き込み電圧のパルス幅（書き込み時間）が、選択され得る。
【０２７１】
以下のように、書き込み電圧（書き込み電流）のパルス幅の制御によって、本実施形態の演算デバイスは、消費電力を低減できる。
【０２７２】
図２７は、本実施形態の演算デバイスの構成例を示す図である。
【０２７３】
図２７に示されるように、本実施形態の演算デバイス１において、制御回路７０は、レジスタ７００Ｂを含む。
【０２７４】
本実施形態において、レジスタ７００Ｂは、書き込み電圧のパルス幅の情報（パルス幅情報ともよばれる）ＩＮＦ２を保持する。以下では、レジスタ７００Ｂは、パルス幅情報レジスタともよばれる。
【０２７５】
パルス幅情報ＩＮＦ２は、各エラー率に関する書き込み電圧Ｖｗの電圧値とパルス幅ｔｗとの関係に基づく情報である。例えば、パルス幅情報ＩＮＦ２は、ユーザの入力によって、コントローラ又はホストデバイスなどの外部デバイスから、演算デバイス１に供給される。尚、書き込みエラー率の代わりに、書き込みエラー数を用いて、パルス幅情報ＩＮＦ２が作成されてもよい。
【０２７６】
パルス幅情報レジスタ７００Ｂは、例えば、ワード線ドライバ５０５に接続される。パルス幅情報レジスタ７００Ｂは、書き込み電圧のパルス幅に関する情報を、ワード線ドライバ５０５に提供する。
【０２７７】
ワード線ドライバ５０５は、パルス幅情報レジスタ７００Ｂ内の情報ＩＮＦ２に基づいて、動作する。ワード線ドライバ５０５は、選択ストリングＳＴＲに接続されるワード線ＷＬを、書き込み電圧Ｖｗのパルス幅に対応する期間において、活性化する。  
これによって、本実施形態の演算デバイス１において、計算素子２０に供給される書き込み電圧（書き込み電流）のパルス幅が、制御される。
【０２７８】
図２８は、本実施形態の演算デバイスにおける、ワード線ドライバの構成例の一例を示す図である。
【０２７９】
図２８に示されるように、ワード線ドライバ５０５は、複数のパルスジェネレータ５１１（５１１−１，５１１−２，・・・，５１１−ｎ）と、セレクタ５１２とを含む。
【０２８０】
複数のパルスジェネレータ５１１の各々は、互いに異なるパルス幅の信号を生成する。トリガ信号ＷＴｒｇ１が、各パルスジェネレータ５１１に供給される。トリガ信号ＷＴｒｇ１は、例えば、あるサイクル（周波数）のクロック信号ＣＬＫである。各パルスジェネレータ５１１は、トリガ信号ＷＴｒｇ１を用いて、パルス幅を制御できる。これによって、各パルスジェネレータ５１１は、互いに異なるパルス幅の信号を出力する。  
複数のパルスジェネレータ５１１は、生成された書き込み電圧Ｖｗをセレクタ５１２に供給する。
【０２８１】
セレクタ５１２は、パルス幅情報ＩＮＦ２を、パルス幅情報レジスタ７００Ｂから受ける。セレクタ５１２は、複数のパルスジェネレータ５１１からの出力を受ける。セレクタ５１２は、パルス幅情報ＩＮＦ２に基づいて、複数のパルスジェネレータ５１１からの出力のうち１つを選択する。セレクタ５１２は、選択された信号Ｓｓｅｌを、ワード線デコーダ５０４に出力する。
【０２８２】
選択された信号Ｓｓｅｌが、ワード線デコーダ５０４及びワード線ＷＬを介して、トランジスタＴＲ２，ＴＲ３のゲートに供給される。
【０２８３】
これによって、信号Ｓｓｅｌのパルス幅に応じた期間中に、トランジスタＴＲ２，ＴＲ３は、オン状態に設定される。この結果として、上述の図１６乃至図２０の動作時において、書き込み電圧（書き込み電流）の供給期間が、パルス幅の大きさに応じて、設定される。
【０２８４】
以上のように、本実施形態の演算デバイスは、書き込みエラー（例えば、書き込みエラー率又は書き込みエラー数）の許容範囲に応じて、書き込み電流の供給期間を変化できる。  
それゆえ、本実施形態の演算デバイスは、消費電力を低減できる。
【０２８５】
したがって、第３の実施形態の演算デバイスは、特性を向上できる。
【０２８６】
（４）  第４の実施形態  
図２９及び図３０を参照して、第４の実施形態の演算デバイスについて、説明する。
【０２８７】
図２９は、本実施形態の演算デバイスの構成例を示す図である。
【０２８８】
図２９に示されるように、本実施形態の演算デバイス１は、テーブル生成回路７０１Ｂを、制御回路７０内に含む。
【０２８９】
テーブル生成回路７０１Ｂは、複数の書き込みエラー（例えば、書き込みエラー率）とパルス幅との関係を示すテーブルを生成する。以下において、回路７０１Ｂは、パルス幅−エラー率テーブル生成回路７０１Ｂともよばれる。
【０２９０】
テーブル生成回路７０１Ｂは、例えば、パルス幅情報レジスタ７００Ｂ及び演算回路（読み出し回路）４０に接続される。
【０２９１】
テーブル生成回路７０１Ｂは、計算処理時、テスト工程又はＢＩＳＴ工程時において、ＯＲ演算回路１００Ａ及びＡＮＤ演算回路１００ＢのＭＴＪ素子２１に対する書き込みエラーのテストを実行できる。テーブル生成回路７０１Ｂは、テストの結果を用いて、テーブルを生成する。
【０２９２】
図３０は、本実施形態の演算デバイスにおける、制御回路の内部構成の一例を示す図である。
【０２９３】
図３０において、制御回路７０内における、パルス幅−エラー率テーブル生成回路７０１Ｂの構成の一例が示されている。
【０２９４】
図３０に示されるように、テーブル生成回路７０１Ｂは、エラーカウンタ制御回路７１０、エラーカウンタ７１１、テーブル保持回路７１２、ターゲットエラー率レジスタ７１３及び選択回路７１４を含む。
【０２９５】
エラーカウンタ制御回路７１０は、パルス幅とエラー率とに関するテストにおいて、エラーカウンタ７１１の動作を制御する。また、エラーカウンタ制御回路７１０は、読み出し回路（演算回路）４０の動作を制御できる。
【０２９６】
エラーカウンタ７１１は、ある書き込み電圧に対して設定されたパルス幅における、書き込みエラーの個数をカウントする。書き込みエラーの個数に基づいて、書き込みエラー率が計算される。エラーカウンタ７１１は、パルス幅と書き込みエラー率との関係を、テーブル保持回路７１２内に格納する。
【０２９７】
テーブル保持回路７１２は、複数のパルス幅と複数の書き込みエラー率との関係を示す値を、テーブル化し、保持する。これによって、パルス幅−エラー率テーブルＴＢＬＢが、生成される。
【０２９８】
ターゲットエラー率レジスタ７１３は、計算機システム（畳み込みニューラルネットワーク）に要求される書き込みエラー率のターゲット値を、保持する。例えば、ターゲット値は、ユーザから提供される。
【０２９９】
選択回路７１４は、書き込みエラー率のターゲット値とテーブルＴＢＬＢ内のエラー率ＥＲ１，ＥＲ２，・・・，ＥＲｎとに基づいて、テーブルＴＢＬＡ内の複数のパルス幅ｔ１，ｔ２，・・・，ｔｎの中から１つのパルス幅を選択する。
【０３００】
例えば、選択回路７１４は、テーブルＴＢＬＢのエラー率とターゲット値との比較に基づいて、ターゲット値以下のエラー率を実現可能な書き込みパルス幅の中から、最も小さいパルス幅を選択する。選択回路７１４は、選択されたパルス幅の情報をパルス幅情報レジスタ７００Ｂに出力する。選択された書き込みパルス幅の情報は、パルス幅情報レジスタ７００Ｂ内に格納される。
【０３０１】
計算処理時において、レジスタ７００Ｂ内の書き込みパルスの情報ＩＮＦ２が、ワード線ドライバ５０５に、供給される。これによって、レジスタ７００Ｂの情報ＩＮＦ２に基づいて、書き込み電流（書き込み電圧）のパルス幅（ワード線の活性化期間）が、設定される。
【０３０２】
尚、本実施形態における電圧情報レジスタ７００Ａ内の情報を用いた書き込み動作の制御は、第１の実施形態の例と同様であるため、ここでの説明は省略する。
【０３０３】
以上のように、第４の実施形態の演算デバイスは、消費電力を低減できる。
【０３０４】
（５）  第５の実施形態    
図３１乃至図３３を参照して、第５の実施形態の演算デバイスについて、説明する。
【０３０５】
図３１は、本実施形態の演算デバイスにおける電流と書き込みエラーとの関係を示すグラフである。
【０３０６】
図３１において、グラフの横軸は、計算動作時に活性化されるワード線ＷＬの数ｍＷＬに対応し、グラフの縦軸は、動作電流Ｉｗ（書き込み電流Ｉｗｒ）の電流値に対応する。
【０３０７】
図３１の活性化されるワード線の本数ｍＷＬにおいて、“ｍ１”、“ｍ２”及び“ｍ３”は、ｍ１＜ｍ２＜ｍ３の関係を有する。
【０３０８】
図２９において、３つの書き込みエラー率ＥＲ１，ＥＲ２，ＥＲ３に関して、活性化されるワード線の数と動作電流との関係が示されている。上述のように、３つの書き込みエラー率ＥＲ１，ＥＲ２，ＥＲ３は、ＥＲ１＜ＥＲ２＜ＥＲ３の大小関係を有する。
【０３０９】
図３１に示されるように、活性化されるワード線の本数が多くなると、書き込み電流が、複数の選択ストリングに分流する。そのため、性化されるワード線の本数の増加に伴って、１つ当たりの選択ストリングに供給される書き込み電流の電流値は、小さくなる。  
その結果として、活性化されるワード線の数の増加に応じて、書き込みエラー率は上昇する傾向を有する。
【０３１０】
このように、本実施形態において、同時に活性化されるワード線の本数の制御によって、書き込みエラー（例えば、書き込みエラー率）の許容値を考慮して、書き込み電流の電流値が、設定できる。
【０３１１】
図３２は、本実施形態の演算デバイスの構成例を示す図である。
【０３１２】
図３２に示されるように、本実施形態の演算デバイス１において、制御回路７０は、レジスタ７００Ｃを含む。
【０３１３】
本実施形態において、レジスタ７００Ｃは、計算処理（書き込み動作）時に同時に活性化されるワード線の本数の情報（活性化ワード線数情報ともよばれる）ＩＮＦ３を保持する。以下では、レジスタ７００Ｂは、活性化ワード線数情報レジスタともよばれる。
【０３１４】
活性化ワード線数情報ＩＮＦ３は、各書き込みエラー率と活性化されるワード線の本数との関係に基づく情報である。例えば、活性化ワード線数情報ＩＮＦ３は、ユーザの入力によって、コントローラ又はホストデバイスなどの外部デバイスから、演算デバイス１に供給される。尚、書き込みエラー率の代わりに、書き込みエラー数を用いて、活性化ワード線数情報ＩＮＦ３が形成されてもよい。
【０３１５】
活性化ワード線数情報レジスタ７００Ｃは、例えば、ビット線ドライバ５０２（５０２Ａ，５０２Ｂ）及びワード線デコーダ５０４Ｘに接続される。
【０３１６】
活性化ワード線数情報レジスタ７００Ｃは、書き込み電圧のパルス幅に関する情報を、ワード線デコーダ５０４Ｘに提供する。
【０３１７】
ビット線ドライバ５０２及びワード線デコーダ５０４Ｘは、レジスタ７００Ｃ内の電圧情報ＩＮＦ１に基づいて、動作する。
【０３１８】
例えば、本実施形態の演算デバイス１において、ワード線デコーダ５０４Ｘは、回路５４１Ｘを有する。回路５４１Ｘは、活性化されるワード線の本数を制御する。
【０３１９】
図３３は、本実施形態の演算デバイスにおける、制御回路の内部構成の一例を示す図である。
【０３２０】
図３３に示されるように、ワード線デコーダ５０４Ｘは、活性化ワード線数制御回路５４１Ｘ、アドレスデコード回路５４２及びゲート回路５４３を含む。
【０３２１】
ワード線デコーダ５０４Ｘにおいて、アドレスデコード回路５４２は、複数のデコードユニットＵＮＴを含む。各デコードユニットＵＮＴは、ＮＡＮＤゲートＧ１とバッファＧ２とから構成されている。
【０３２２】
アドレスデコード回路５４２は、アドレスバッファ５９１からのアドレスを受信する。アドレスの各ビットの値（以下では、アドレスビット値とよばれる）ＡＢ１，ＡＢ２，・・・，ＡＢｍが、対応するデコードユニットＵＮＴに供給されている。
【０３２３】
アドレスビット値ＡＢｍは、ＮＡＮＤゲートＧ１の一方の入力端子及びバッファＧ２に供給される。各ＮＡＮＤゲートＧ１の他方の入力端子は、活性化ワード線数制御回路５４１に接続される。
【０３２４】
ゲート回路５４３は、複数のワード線駆動ゲートＧ３を含む。複数のデータユニットＵＮＴからの信号が、各ワード線駆動ゲートＧ３に供給される。各ワード線駆動ゲートＧ３は、供給された信号に基づいて、対応するワード線ＷＬを活性化する又は非活性化する。
【０３２５】
活性化ワード線数制御回路５４１Ｘが、ＮＡＮＤゲートＧ１に“Ｈ”レベルの信号を供給する場合、ＮＡＮＤゲートＧ１は、アドレスビットＡＢ1の反転信号を出力する。このとき、ＮＡＮＤＧ１とバッファＧ２はインバータとバッファとのペアとして動作し、アドレスに対応するワード線駆動ゲートＧ３の入力を、活性化する。
【０３２６】
一方、活性化ワード線数制御回路５４１Ｘが、ＮＡＮＤゲートＧ１に“Ｌ”レベルの信号を供給し、アドレスビット値ＡＢｍが“Ｈ”レベルである場合、そのアドレスビット値ＡＢｍに対応する全てのワード線駆動ゲートＧ３に供給される信号が、“Ｈ”レベルになる。
【０３２７】
すなわち、アドレスビット値ＡＢｍが入力されたＮＡＮＤゲートＧ１及びバッファＧ２の出力信号の両方が、“Ｈ”レベルになる。
【０３２８】
これによって、ワード線駆動ゲートＧ３において、アドレスビット値ＡＢｍは無視される。このため、活性化されるワード線の本数は、アドレスビット値ＡＢｍが有効である場合の2倍になる。
【０３２９】
このように、“Ｈ”レベルの信号を出力するＮＡＮＤゲートＧ１の数が、ｍ個である場合、活性化されるワード線の数は、２ｍとされ得る。
【０３３０】
これによって、活性化ワード線数情報ＩＮＦ３に応じた１以上のワード線が、活性化される。
【０３３１】
それゆえ、複数のストリングＳＴＲが、選択状態に設定される。選択状態の複数のストリングＳＴＲに対して、書き込み電圧（書き込み電流）が供給される。
【０３３２】
この結果として、ＯＲ演算が、ＯＲ演算回路１００Ａ内の複数のストリングＳＴＲＡに対して並列に実行される。これと同様に、ＡＮＤ演算が、ＡＮＤ演算回路１００Ｂ内の複数のストリングＳＴＲＢに対して並列に実行される。
【０３３３】
それゆえ、本実施形態の演算デバイスは、消費電力の低減とともに、計算処理の高速化を図ることができる。
【０３３４】
以上のように、本実施形態の演算デバイスは、特性を向上できる。
【０３３５】
（６）  第６の実施形態  
図３４及び図３５を参照して、第６の実施形態の磁気デバイスについて、説明する。
【０３３６】
図３４は、本実施形態の演算デバイスの構成例を示す図である。
【０３３７】
図３４に示されるように、本実施形態の演算デバイス１は、テーブル生成回路７０１Ｃを、制御回路７０内に含む。
【０３３８】
テーブル生成回路７０１Ｃは、書き込みエラー率と活性化されるワード線の本数との関係を示すテーブルを生成する。以下において、回路７０１Ｃは、活性化ワード線数−エラー率テーブル生成回路７０１Ｃともよばれる。
【０３３９】
テーブル生成回路７０１Ｃは、例えば、レジスタ７００Ｃ及び読み出し回路（演算回路）４０に接続される。
【０３４０】
テーブル生成回路７０１Ｂは、計算処理時、テスト工程又はＢＩＳＴ工程時において、ＯＲ演算回路１００Ａ及びＡＮＤ演算回路１００ＢのＭＴＪ素子２１に対して、活性化されたワード線の本数と書き込みエラー（例えば、書き込みエラー率）との関係に関するテストを実行できる。
【０３４１】
テーブル生成回路７０１Ｂは、テストの結果を用いて、書き込み動作の条件に関するテーブルを生成する。
【０３４２】
図３５は、本実施形態の演算デバイスにおける、制御回路の内部構成の一例を示す図である。
【０３４３】
図３５において、制御回路７０内における、活性化ワード線数−エラー率テーブル生成回路７０１Ｃの構成の一例が示されている。
【０３４４】
図３５に示されるように、テーブル生成回路７０１Ｃは、エラーカウンタ制御回路７１０、エラーカウンタ７１１、テーブル保持回路７１２、ターゲットエラー率レジスタ７１３及び選択回路７１４を含む。
【０３４５】
エラーカウンタ制御回路７１０は、活性化されたワード線の本数と書き込み電流の電流値に関するテストにおいて、エラーカウンタ７１１の動作を制御する。
【０３４６】
エラーカウンタ７１１は、活性化されたワード線の本数における、書き込みエラーの個数をカウントする。例えば、書き込みエラーの個数に基づいて、書き込みエラー率が計算される。
【０３４７】
エラーカウンタ７１１は、活性化されたワード線の本数と書き込みエラー率との関係を、テーブル保持回路７１２内に格納する。
【０３４８】
テーブル保持回路７１２は、複数の活性化されたワード線の本数と各活性化されたワード線の本数に対応する書き込みエラー率との関係を、テーブル化し、保持する。これによって、活性化ワード線数−エラー率テーブルＴＢＬＣが、生成される。
【０３４９】
ターゲットエラー率レジスタ７１３は、書き込みエラー率のターゲット値を保持する。
【０３５０】
選択回路７１４は、エラー率のターゲット値とテーブルＴＢＬＣ内のエラー率ＥＲ１，ＥＲ２，・・・，ＥＲｎに基づいて、テーブルＴＢＬＣ内の複数の活性化ワード線数ｍ１，ｍ２，・・・，ｍｎの中から１つを選択する。選択回路７１４は、選択された活性化ワード線数の情報を活性化ワード線数情報レジスタ７００Ｃに出力する。選択された活性化ワード線数の情報は、レジスタ７００Ｃ内に格納される。
【０３５１】
尚、本実施形態における電圧情報レジスタ７００Ａ内の情報を用いた書き込み動作の制御は、第５の実施形態の例と同様であるため、ここでの説明は省略する。
【０３５２】
本実施形態の演算デバイスは、テスト工程（又は計算動作）によって、書き込みエラー率と活性化されるワード線の本数との関係を示すテーブルを作成する。
【０３５３】
レジスタ７００Ｃ内の活性化ワード線数−エラー率情報ＩＮＦ３（活性化ワード線数−エラー率テーブルＴＢＬＣ）に基づいて、同時に活性化されるワード線の本数が、制御される。
【０３５４】
これによって、本実施形態の演算デバイスは、書き込みエラーの許容値を満たしつつ、計算処理時に生じる消費電力を低減できる。
【０３５５】
以上のように、本実施形態の演算デバイスは、特性を向上できる。
【０３５６】
（７）  適用例  
図３６乃至図３８を参照して、本実施形態の演算デバイスの適用例について、説明する。本実施形態の演算デバイスは、計算機システムに適用される。
【０３５７】
（７ａ）  例１  
図３６を用いて、本実施形態の演算デバイスの適用例の１つについて、説明する。
【０３５８】
図３６は、本適用例における、本実施形態の演算デバイスを含む計算機システムを示している。例えば、図３６の計算機システムは、本実施形態の演算デバイスを用いて、ある計算モデルに基づく畳み込みニューラルネットワークの計算処理を実行できる。
【０３５９】
例えば、計算機システムＳＹＳは、画像認識などの機械学習又はディープラーニングの処理に用いられる。
【０３６０】
本適用例の計算機システムＳＹＳは、プロセッサ５００及びメインメモリ９９９を含む。
【０３６１】
プロセッサ５００は、本実施形態の演算デバイス１、演算デバイス２、コントローラ７及びメモリ８を含む。例えば、これらのデバイス１，２，７，８が、１つのチップ又は１つのパッケージ基板上に設けられている。
【０３６２】
上述の第１乃至第６の実施形態の演算デバイスの中から選択される１以上が、本適用例の計算機システムＳＹＳに用いられる。
【０３６３】
例えば、本実施形態の演算デバイス１は、計算機システムＳＹＳの各種の計算処理において、入力データとウェイトデータとに関するＯＲ演算、ＡＮＤ演算、及び、ＸＮＯＲ演算（積演算）を実行できる。
【０３６４】
本実施形態の演算デバイス１は、レジスタ７００を含む。上述の電圧情報ＩＮＦ１、パルス幅情報ＩＮＦ２及び活性化ワード線数情報ＩＮＦ３のうち１以上が、レジスタ７００内に記憶される。演算デバイス１は、レジスタ７００内の情報に基づいて設定された書き込み条件で、ＭＴＪ素子２１に対する書き込み動作（計算処理）を実行する。
【０３６５】
例えば、演算デバイス１は、レジスタ７００に加えて、上述の実施形態のテーブル生成回路７０１（７０１Ａ，７０１Ｂ，７０１Ｃ）を含み得る。
【０３６６】
本実施形態の演算デバイス１は、計算回路１００内の複数のストリングＳＴＲによる多並列化処理によって、演算処理の高速化を実現できる。本実施形態の演算デバイス１は、例えば、ニューラルネットワークにおける積演算処理を実行する。  
本実施形態の演算デバイス１は、メモリ領域（メモリデバイス）としても機能し得る。
【０３６７】
演算デバイス２は、例えば、ニューラルネットワークにおける和演算処理、Batch Normalization演算、及び、活性化演算などのうち１以上の処理を実行する。
【０３６８】
メモリ（例えば、バッファメモリ）８は、計算処理の途中のデータを一時的に保持する。例えば、ＳＲＡＭ、ＤＲＡＭ、及び、磁気メモリ（例えば、ＳＴＴ−ＭＲＡＭ又はＶｏＣＳＭ）などの中から選択される１つが、バッファメモリ８に用いられる。
【０３６９】
コントローラ（例えば、メモリコントローラ）７は、演算デバイス１，２及びバッファメモリ８の動作を制御する。コントローラ７は、演算デバイス１，２とバッファメモリ８との間のデータの転送を制御する。
【０３７０】
メインメモリ９９９は、ウェイトに関するデータ（Ｗ）、アクティベーションに関するデータ（Ｉ）、計算結果に関するデータ（出力データ）などを、記憶できる。メインメモリ９９は、ウェイトに関するデータ（Ｗ）及びアクティベーションに関するデータ（Ｉ）を、本実施形態の演算デバイス１を含むプロセッサ５００に提供する。メインメモリ９９９は、プロセッサ５００からのデータ（計算結果）を受信する。  
メインメモリ９９９は、例えば、ＤＲＡＭである。
【０３７１】
本適用例の計算機システムＳＹＳ内において、上述の本実施形態の演算デバイスの動作例のように、入力データ及びウェイトデータに関するＯＲ演算、ＡＮＤ演算及びＸＮＯＲ演算などを含む計算処理が実行される。
【０３７２】
これによって、本適用例の計算機システムＳＹＳは、所望の計算結果を得ることができる。
【０３７３】
本実施形態の演算デバイスを含む計算機システムＳＹＳは、ニューラルネットワークにおいて、積和演算処理を実行する。  
例えば、本適用例の計算機システムＳＹＳは、畳み込みニューラルネットワークを用いた画像処理を行う画像認識装置に適用され得る。例えば、本適用例の計算機システムＳＹＳを含む画像認識装置は、デジタルカメラ、監視カメラ、携帯端末、スマートフォン、車載カメラ、パーソナルコンピュータ、液晶ディスプレイなどに搭載され得る。
【０３７４】
本適用例の計算機システムＳＹＳにおいて、実施形態の演算デバイス１は、書き込みエラー（例えば、書き込みエラー率又は書き込みエラー数）と書き込み条件との関係を示す情報を、レジスタ７００内に保持する。
【０３７５】
本適用例の計算機システムＳＹＳは、演算デバイス１内の情報を用いて、ある計算モデルのニューラルネットワークにおいて許容される書き込みエラーの範囲に応じて、ＭＴＪ素子に対する書き込み動作（計算処理）の条件を、設定できる。本適用例の計算機システムＳＹＳにおいて、本実施形態の演算デバイスは、設定された書き込み条件によって、導電層上のＭＴＪ素子に対する書き込み動作（計算処理、例えば、ＯＲ演算及び／又はＡＮＤ演算）を、実行できる。
【０３７６】
例えば、本適用例の計算機システムＳＹＳにおいて、書き込みエラー率の許容範囲内で、計算処理に用いられるＭＴＪ素子に対する書き込み電流の電流値を低減できる。  
また、本適用例の計算機システムＳＹＳは、計算の並列化処理（同時処理）によって、計算処理の高速化を図ることができる。
【０３７７】
これによって、本適用例の計算機システムＳＹＳは、特性を向上できる。
【０３７８】
（７ｂ）  例２  
図３７を参照して、本適用例の計算機システムについて、説明する。
【０３７９】
図３７は、実施形態の演算デバイスを含む計算機システムの構成の一例を示す図である。
【０３８０】
図３７に示されるように、計算機システムＳＹＳにおいて、複数の本実施形態の演算デバイス１が、１つのレジスタ７００Ｘを共有してもよい。
【０３８１】
これによって、本適用例の計算機システムＳＹＳは、システムＳＹＳ内におけるレジスタの数（面積）を削減できる。  
したがって、本適用例の計算機システムは、システムの面積を小さくできる。
【０３８２】
（７ｃ）  例３  
図３８を参照して、本適用例の計算機システムについて、説明する。
【０３８３】
図３８は、実施形態の演算デバイスを含む計算機システムの構成の一例を示す図である。
【０３８４】
図３８に示されるように、１以上の本実施形態の演算デバイス１を含む複数のグループＧＰが、計算機システムＳＹＳ内に設けられてもよい。レジスタ７００が、各グループＧＰ内に設けられている。レジスタ７００は、グループＧＰ内の複数の演算デバイス１によって、共有される。
【０３８５】
レジスタ７００内に格納される情報ＩＮＦは、グループＧＰごとに異なってもよい。
【０３８６】
これによって、本適用例において、複数のグループＧＰが、異なる書き込み条件で、異なる種類の畳み込みニューラルネッワークに基づく処理を、並列に実行できる。
【０３８７】
本適用例の計算機システムＳＹＳは、システムのパフォーマンス能力の向上とシステムの面積の小規模化とを両立できる。
【０３８８】
（７ｄ）  まとめ  
実施形態の演算デバイスは、計算機システムに適用できる。
【０３８９】
実施形態の演算デバイスを含む計算機システムは、計算処理（例えば、積和演算処理）を高速化できる。
【０３９０】
実施形態の演算デバイスを含む計算機システムは、ニューラルネットワークの特性に応じた条件で、計算処理を実行できる。これによって、本実施形態の演算デバイスを含む計算機システムは、消費電力を低減できる。
【０３９１】
以上のように、実施形態の演算デバイスを含む計算機システムは、計算機システムの特性を向上できる。
【０３９２】
（８）  その他  
実施形態の演算デバイスは、以下の態様を取り得る。
【０３９３】
（態様１）  
実施形態の演算デバイスにおいて、磁気抵抗効果素子は、導電層上の記憶層と、記憶層の上方の参照層と、記憶層と参照層との間の非磁性層とを含む。
【０３９４】
（態様２）  
実施形態の演算デバイスにおいて、第１の計算回路は、第１のデータと第２のデータとの論理和演算を実行し、第２の計算回路は、第１のデータと第２のデータとの論理積演算を実行し、第３の計算回路は、論理和演算の結果と論理積演算の結果を用いて、第１のデータと第２のデータとの積演算を実行する。
【０３９５】
（態様３）  
実施形態の演算デバイスにおいて、第３の計算回路は、第１及び第２のデータの論理和演算の結果と第１及び第２のデータの論理積演算の結果との比較によって、第１のデータと第２のデータとの積演算と等価な結果を得る。
【０３９６】
（態様４）  
実施形態の演算デバイスにおいて、制御回路は、第１及び第２の磁気抵抗効果素子に対する第１のデータの書き込みの後、第１の方向に流れる第１の書き込み電流を第１の導電層に供給し、第１及び第２のデータの論理和演算を実行し、第１の方向と異なる第２の方向に流れる第２の書き込み電流を第２の導電層に供給し、第１及び第２のデータの論理積演算を実行する。
【０３９７】
（態様５）  
実施形態の演算デバイスは、書き込みエラーは、書き込みエラー率又は書き込み回数で示される。
【０３９８】
（態様６）  
実施形態の演算デバイスは、第１の導電層上に設けられた第１の磁気抵抗効果素子を含む第１の計算回路と、第２の導電層上に設けられた第２の磁気抵抗効果素子を含む第２の計算回路と、第１の計算回路からの第１の信号と第２の計算回路からの第２の信号とを用いた計算処理を実行する第３の計算回路と、第１乃至第３の計算回路を制御する制御回路と、を備え、制御回路は、第１及び第２の磁気抵抗効果素子の少なくとも一方の書き込みエラーに関する情報に基づいて、第１及び第２の磁気抵抗効果素子の少なくとも一方に対する書き込み動作の条件を設定する。
【０３９９】
（態様７）  
実施形態の演算デバイスは、第１の導電層上に設けられた第１の磁気抵抗効果素子を含む第１の計算回路と、第２の導電層上に設けられた第２の磁気抵抗効果素子を含む第２の計算回路と、第１の計算回路からの第１の信号と前記第２の計算回路からの第２の信号とを用いた計算処理を実行する第３の計算回路と、第１及び第２の磁気抵抗効果素子の書き込みエラーと第１及び第２の磁気抵抗効果素子に対する書き込み動作の条件とに関する情報を保持するレジスタと、情報に基づいて、第１及び第２の磁気抵抗効果素子に対する書き込み動作を制御する制御回路と、を備える。
【０４００】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０４０１】
１…演算デバイス、１０…計算素子、２０…導電層、２１…磁気抵抗効果素子、１００Ａ，１００Ｂ，４０…計算回路、４００…センスアンプ、７０…制御回路、７００…レジスタ、ＳＹＳ…計算機システム。
【図１】
2020123414.tif 000003
【図２】
2020123414.tif 000004
【図３】
2020123414.tif 000005
【図４】
2020123414.tif 000006
【図５】
2020123414.tif 000007
【図６】
2020123414.tif 000008
【図７】
2020123414.tif 000009
【図８】
2020123414.tif 000010
【図９】
2020123414.tif 000011
【図１０】
2020123414.tif 000012
【図１１】
2020123414.tif 000013
【図１２】
2020123414.tif 000014
【図１３】
2020123414.tif 000015
【図１４】
2020123414.tif 000016
【図１５】
2020123414.tif 000017
【図１６】
2020123414.tif 000018
【図１７】
2020123414.tif 000019
【図１８】
2020123414.tif 000020
【図１９】
2020123414.tif 000021
【図２０】
2020123414.tif 000022
【図２１】
2020123414.tif 000023
【図２２】
2020123414.tif 000024
【図２３】
2020123414.tif 000025
【図２４】
2020123414.tif 000026
【図２５】
2020123414.tif 000027
【図２６】
2020123414.tif 000028
【図２７】
2020123414.tif 000029
【図２８】
2020123414.tif 000030
【図２９】
2020123414.tif 000031
【図３０】
2020123414.tif 000032
【図３１】
2020123414.tif 000033
【図３２】
2020123414.tif 000034
【図３３】
2020123414.tif 000035
【図３４】
2020123414.tif 000036
【図３５】
2020123414.tif 000037
【図３６】
2020123414.tif 000038
【図３７】
2020123414.tif 000039
【図３８】
2020123414.tif 000040