JP6989541B2 - 演算デバイス - Google Patents

演算デバイス Download PDF

Info

Publication number
JP6989541B2
JP6989541B2 JP2019014355A JP2019014355A JP6989541B2 JP 6989541 B2 JP6989541 B2 JP 6989541B2 JP 2019014355 A JP2019014355 A JP 2019014355A JP 2019014355 A JP2019014355 A JP 2019014355A JP 6989541 B2 JP6989541 B2 JP 6989541B2
Authority
JP
Japan
Prior art keywords
write
circuit
calculation
conductive layer
arithmetic device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019014355A
Other languages
English (en)
Other versions
JP2020123414A (ja
Inventor
一隆 池上
忍 藤田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2019014355A priority Critical patent/JP6989541B2/ja
Priority to US16/724,800 priority patent/US11481191B2/en
Publication of JP2020123414A publication Critical patent/JP2020123414A/ja
Application granted granted Critical
Publication of JP6989541B2 publication Critical patent/JP6989541B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/383Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using magnetic or similar elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1653Address circuits or decoders
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/161Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect details concerning the memory cell structure, e.g. the layers of the ferromagnetic memory cell
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1653Address circuits or decoders
    • G11C11/1655Bit-line or column circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1653Address circuits or decoders
    • G11C11/1657Word-line or row circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1659Cell access
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1675Writing or programming circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/12005Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/14Implementation of control logic, e.g. test mode decoders
    • G11C29/16Implementation of control logic, e.g. test mode decoders using microprogrammed units, e.g. state machines
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/20Address generation devices; Devices for accessing memories, e.g. details of addressing circuits using counters or linear-feedback shift registers [LFSR]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1673Reading or sensing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/1202Word line control
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/1208Error catch memory
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B61/00Magnetic memory devices, e.g. magnetoresistive RAM [MRAM] devices
    • H10B61/20Magnetic memory devices, e.g. magnetoresistive RAM [MRAM] devices comprising components having three or more electrodes, e.g. transistors
    • H10B61/22Magnetic memory devices, e.g. magnetoresistive RAM [MRAM] devices comprising components having three or more electrodes, e.g. transistors of the field-effect transistor [FET] type

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Hall/Mr Elements (AREA)
  • Mram Or Spin Memory Techniques (AREA)
  • Memory System (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Description

本発明の実施形態は、演算デバイスに関する。
AIの深層学習などの計算処理に、演算デバイスが用いられる。演算デバイスの性能の向上のための研究及び開発が、推進されている。
特許第6364365号明細書
演算デバイスの消費電力を低減する。
本実施形態の演算デバイスは、第1の導電層上に設けられた1以上の第1の磁気抵抗効果素子をそれぞれ有する複数の第1のストリングを含む第1の計算回路と、第2の導電層上に設けられた1以上の第2の磁気抵抗効果素子をそれぞれ有する複数の第2のストリングを含む第2の計算回路と、前記第1の計算回路からの第1の信号と前記第2の計算回路からの第2の信号とを用いた計算処理を実行する第3の計算回路と、前記複数の第1のストリングの対応する1つにそれぞれ接続される複数の第1のワード線と、前記複数の第2のストリングの対応する1つにそれぞれ接続される複数の第2のワード線と、前記第1乃至前記第3の計算回路を制御する制御回路と、を備え、前記制御回路は、前記第1及び第2の磁気抵抗効果素子の少なくとも一方の書き込みエラーに関する情報に基づいて、前記第1及び第2の磁気抵抗効果素子の少なくとも一方に対する書き込み動作の条件を複数の条件の中から設定し、前記複数の条件の中から設定された第1の条件は、活性化される第1のワード線の数及び活性化される第2のワード線の数の少なくとも一方である。
第1の実施形態の演算デバイスの基本構成を示す図。 第1の実施形態の演算デバイスの動作原理を説明するための図。 第1の実施形態の演算デバイスの動作原理を説明するための図。 第1の実施形態の演算デバイスの動作原理を説明するための図。 第1の実施形態の演算デバイスの動作原理を説明するための図。 第1の実施形態の演算デバイスの動作原理を説明するための図。 第1の実施形態の演算デバイスの動作原理を説明するための図。 第1の実施形態の演算デバイスの動作原理を説明するための図。 第1の実施形態の演算デバイスの構成例を示す図。 第1の実施形態の演算デバイスの構成例を示す図。 第1の実施形態の演算デバイスの構成例を示す図。 第1の実施形態の演算デバイスの構成例を示す図。 第1の実施形態の演算デバイスの構成例を示す図。 第1の実施形態の演算デバイスの構成例を示す図。 第1の実施形態の演算デバイスの構成例を示す図 第1の実施形態の演算デバイスの動作例を示す図。 第1の実施形態の演算デバイスの動作例を示す図。 第1の実施形態の演算デバイスの動作例を示す図。 第1の実施形態の演算デバイスの動作例を示す図。 第1の実施形態の演算デバイスの動作例を示す図。 第1の実施形態の演算デバイスの動作例を示す図。 第1の実施形態の演算デバイスの構成例を示す図 第1の実施形態の演算デバイスの構成例を示す図 第2の実施形態の演算デバイスの構成例を示す図。 第2の実施形態の演算デバイスの構成例を示す図。 第3の実施形態の演算デバイスの構成例を示す図。 第3の実施形態の演算デバイスの構成例を示す図。 第3の実施形態の演算デバイスの構成例を示す図。 第4の実施形態の演算デバイスの構成例を示す図。 第4の実施形態の演算デバイスの構成例を示す図。 第5の実施形態の演算デバイスの構成例を示す図。 第5の実施形態の演算デバイスの構成例を示す図。 第5の実施形態の演算デバイスの構成例を示す図。 第6の実施形態の演算デバイスの構成例を示す図。 第6の実施形態の演算デバイスの構成例を示す図。 実施形態の演算デバイスの適用例を示す図。 実施形態の演算デバイスの適用例を示す図。 実施形態の演算デバイスの適用例を示す図。
図1乃至図38を参照して、実施形態の演算デバイスについて、説明する。
以下、図面を参照しながら、本実施形態について詳細に説明する。以下の説明において、同一の機能及び構成を有する要素については、同一符号を付す。
また、以下の各実施形態において、末尾に区別化のための数字/英字を伴った参照符号(例えば、ワード線WLやビット線BL、各種の電圧及び信号など)を付された構成要素が、相互に区別されなくとも良い場合、末尾の数字/英字が省略された記載(参照符号)が用いられる。
(1) 第1の実施形態
図1乃至図23を参照して、第1の実施形態の演算デバイス及びその制御方法について、説明する。
(1a) 基本構成
図1を用いて、本実施形態の演算デバイスの基本構成について説明する。
図1は、本実施形態の演算デバイスの基本構成例を示す図である。
図1に示されるように、本実施形態の演算デバイス1は、計算素子10(10A,10B)、計算回路40、及び、制御回路70を含む。
計算素子10Aは、第1の計算回路(計算領域)100A内に設けられている。計算素子10Bは、第2の計算回路(計算領域)100B内に設けられている。
計算素子10A,10Bは、実質的に同じ構造を有する。
計算素子10(10A,10B)は、導電層20(20A,20B)、磁性層11(11A,11B)、非磁性層13(13A,13B)及び磁性層12(12A,12B)を含む。
磁性層11、非磁性層13及び磁性層12は、導電層20の表面に対して垂直方向において、導電層20上に積層されている。計算素子10は、磁気抵抗効果素子が、導電層20上に設けられた構造を有する。
磁性層11は、導電層20と非磁性層13との間に設けられている。非磁性層13は、2つの磁性層11,12間に設けられている。磁性層12は、非磁性層13を介して、磁性層11の上方に設けられている。
端子T1(T1A,T1B)が、磁性層12(12A,12B)に接続される。端子T2(T2A,T2B)が、導電層20(20A,20B)の一端XAに接続される。端子T3(T3A,T3B)が、導電層20(20A,20B)の他端XBに接続される。
以下において、導電層20の一端XBから導電層20の他端XAに向かう方向に沿う方向は、X方向とよばれる。また、導電層20の表面に対して平行でX方向に交差する方向は、Y方向とよばれる。導電層20の表面に対して垂直方向(層11,12,13の積層方向)は、Z方向とよばれる。Z方向は、X方向及びY方向に交差する。
各磁性層11,12は、磁化を有する。例えば、磁性層11,12は、面内磁気異方性を有している。面内磁気異方性の磁性層11の磁化の方向、及び、磁性層12の磁化の方向は、導電層20の表面(磁性層11,12の表面)に対して、実質的に平行である。磁性層11,12の磁化方向は、複数の層11,12,13の積層方向に対して、実質的に垂直である。一例としては、磁性層11の磁化の方向は、Y方向に実質的に平行である。各磁性層11,12の磁化容易軸方向は、Y方向である。
以下において、面内磁気異方性を有する磁性層を用いた磁気抵抗効果素子は、面内磁化型磁気抵抗効果素子とよばれる。
磁性層11の磁化の向きは、可変である。磁性層12の磁化の向きは、不変(固定状態)である。以下において、磁化の向きが可変である磁性層は、記憶層とよばれる。以下において、磁化の向きが不変(固定状態)である磁性層は、参照層とよばれる。
尚、本実施形態において、「参照層の磁化の向きが不変である」、又は、「参照層の磁化の向きが固定状態である」とは、記憶層の磁化の向きを変えるための電流又は電圧が計算素子10(例えば、導電層20)に供給された場合において、参照層の磁化の向きが、電流/電圧の供給の前後で変化しないことを、意味する。
磁性層11,12及び非磁性層13は、磁気トンネル接合(MTJ)を形成する。以下において、計算素子10(10A,10B)において、磁性層11,12及び非磁性層13を含む素子(磁気抵抗効果素子)は、MTJ素子とよばれる。
計算素子10は、後述のように、端子T1(参照層12)に対する電圧の印加、及び、導電層20に対する電流の供給に応じて、MTJ素子21の磁化配列状態(データ保持状態)を制御できる。これによって、計算素子10は、計算処理(例えば、論理演算)を実行できる。
計算回路40は、計算素子10の計算結果を用いて、計算処理を実行する。
制御回路70は、計算素子10の動作及び計算回路40の動作を制御する。
本実施形態の演算デバイス1は、上述の構成によって、2つの値に対する積演算を実行可能なデバイスである。
本実施形態の演算デバイス1は、計算素子10の計算処理(MTJ素子の書き込み動作)と動作エラーの発生確率に関する情報INFを保持する記憶領域700を有する。本実施形態の演算デバイス1は、その情報INFに基づいて、計算処理時に計算素子10に供給される電圧/電流の条件を、設定する。
これによって、本実施形態の演算デバイス1は、動作エラーの発生確率の許容値を満たしつつ、消費電力を低減できる。
したがって、本実施形態の演算デバイス1は、特性を向上できる。
(1b) 原理
図2乃至図8を参照して、本実施形態の演算デバイスにおける計算素子(磁気抵抗効果素子)の動作に用いられる様々な原理について、説明する。
<磁気抵抗効果>
図2は、本実施形態の演算デバイスにおける、計算素子内の磁気抵抗効果素子(MTJ素子)を説明するための図である。
図2の(a)は、磁気抵抗効果素子が第1の抵抗状態を有する場合における、磁気抵抗効果素子の磁化配列状態を模式的に示す図である。図2の(b)は、磁気抵抗効果素子が第2の抵抗状態を有する場合における、磁気抵抗効果素子の磁化配列状態を模式的に示す図である。
上述のように、計算素子10内のMTJ素子21は、面内磁化型MTJ素子である。
MTJ素子21の抵抗状態(抵抗値)は、記憶層11の磁化の向きと参照層12の磁化の向きとの相対的な関係(磁化配列)に応じて、変わる。
図2の(a)に示されるように、記憶層11の磁化の向きが、参照層12の磁化の向きと同じである場合、MTJ素子21は、第1の抵抗状態(第1の磁化配列状態)を有する。第1の抵抗状態を有するMTJ素子21は、抵抗値Rpを有する。
図2の(b)に示されるように、記憶層11の磁化の向きが、参照層12の磁化の向きと反対である場合、MTJ素子21は、第2の抵抗状態(第2の磁化配列状態)を有する。第2の抵抗状態を有するMTJ素子21は、抵抗値Rapを有する。抵抗値Rapは、抵抗値Rpより高い。
このように、MTJ素子21は、2つの磁性層11,12の磁化配列に応じて、低抵抗状態及び高抵抗状態のうちいずれか1つの状態を取り得る。
磁気抵抗効果は、このような2つの磁性層11,12の磁化の向きの相対的な関係によって抵抗値が変化する現象である。
例えば、MTJ素子21は、1ビットのデータ(“0”データ及び“1”データ)を保持する。この場合において、MTJ素子21の抵抗状態が、第1の抵抗状態に設定された時、メモリセルMCは、第1のデータ保持状態(例えば、“0”データ保持状態)に設定される。MTJ素子21の抵抗状態が第2の抵抗状態に設定された時、メモリセルMCは、第2のデータ保持状態(例えば、“1”データ保持状態)に設定される。
本実施形態において、MTJ素子21における記憶層11の磁化の向きと参照層12の磁化の向きとが同じである磁化配列状態は、平行状態(又はP状態)とよばれる。MTJ素子21における記憶層11の磁化の向きと参照層12の磁化の向きとが反対である磁化配列状態は、反平行状態(又はAP状態)ともよばれる。
以下のように、本実施形態において、MTJ素子21の磁化配列(P/AP状態)を制御するために、スピンホール効果及び電圧制御磁気異方性(以下では、電圧効果ともよばれる)が、用いられる。
<スピンホール効果>
図3を用いて、本実施形態の演算デバイスに用いられるスピンホール効果について、説明する。
図3の(a)及び(b)は、スピンホール効果を説明するための模式図である。図3の(a)及び(b)において、MTJ素子21は、導電層20の“ZA”側の面(以下では、導電層20の表面とよばれる)に設けられている。
本実施形態の演算デバイスにおいて、スピンホール効果(又はSOT:Spin Orbit Torqueともよばれる)が、MTJ素子21の記憶層11Xの磁化反転に用いられる。
例えば、スピンホール効果の発現のために、スピン軌道相互作用を有する材料が、用いられる。
図3の(a)及び(b)において、導電層20は、大きいスピン軌道相互作用を有する材料から形成される。例えば、導電層20は、銅(Cu)、ロジウム(Rh)、パラジウム(Pd)、銀(Ag)、ハフニウム(Hf)、タンタル(Ta)、タングステン(W)、レニウム(Re)、オスミウム(Os)、イリジウム(Ir)、白金(Pt)、金(Au)、ビスマス(Bi)など金属、これらの金属の1以上を含む酸化物、及び、これらの金属の1以上を含む窒化物の中から選択される少なくとも1つの材料から形成された層である。
この層20に磁性層11Xが接触する場合、より大きいスピン軌道相互作用が層20内に生じ得る。但し、導電層20は、大きいスピン軌道相互作用を有する材料であれば、これらの材料に限定されない。
以下において、導電層20は、スピン軌道相互作用層(SO層)ともよばれる。
電流Iwr(Iwr1,Iwr2)が、導電層20に供給される。電流(書き込み電流)Iwrは、アップスピンSP1を有する電荷(電子)とダウンスピンSP2を有する電荷とを含む。
電流Iwrが、導電層20内を流れる場合において、電流が流れる向き(スピンの向き)に応じて、アップスピンSP1とダウンスピンSP2とが、互いに反対方向に散乱される。
スピン(“S”と表記される)、スピン流(“Is”と表記される)及び電子の流れ(“Ie”と表記される)の関係は、次の(式A)で示される。尚、電子の流れ“Ie”の向きは、電流Iwrの流れる向きと反対である。“S”は、ベクトルである。
Is∝S×Ie ・・・(式A)
(式A)で示されるように、スピン流“Is”は、スピン“S”と電子の流れ“Ie”との外積に比例する。
これによって、スピン流Isが、スピン軌道相互作用を有する導電層20内に発生する。このようなスピン流Isを発生させる現象が、スピンホール効果である。
電流Iwrが導電層20内を流れることによって、スピン流Isが、導電層20内に発生する。
例えば、図3の(a)に示されるように、電流Iwr1が、導電層20の一端XA側から他端XB側に向かって流れる場合において、アップスピンSP1が導電層20の表面ZA側(磁性層11が設けられた面側)に散乱し、ダウンスピンSP2が導電層20の裏面ZB側に散乱する。
例えば、図3の(b)に示されるように、電流Iwr0が、図中の導電層20の一端XB側から他端XA側に向かって流れる場合において、アップスピンSP1が、導電層20の裏面ZB側に散乱し、ダウンスピンSP2が、導電層20の表面ZA側に散乱する。
図3の(a)及び(b)に示されるように、導電層20に通電される電流Iwrの極性(電流の流れる向き)の反転によって、導電層20上のMTJ素子21の記憶層11に作用するスピントルクの向きが反転する。
スピンホール効果で発生するスピン流Isに起因するスピン軌道トルク(SOT)が、導電層20上のMTJ素子21に印加される。
スピン軌道トルクとして記憶層11に作用するスピンの向きは、導電層20内を流れる電流Iwrの向きに応じて、変わる。
したがって、導電層20内を流れる電流Iwrの向きの制御によって、記憶層11の磁化の向きが、参照層12の磁化の向きに対して平行の向き又は反平行の向きに、制御され得る。
このように、本実施形態のMRAMにおいて、スピンホール効果によって、MTJ素子21の記憶層11の磁化の向きを、印加されるスピンの向きに応じて、変える(反転させる)ことができる。
スピンホール効果を用いたMTJ素子の磁化反転(データの書き込み)は、トンネルバリア層13に直接電流を流さずに、記憶層11の磁化の反転を行うことができる。それゆえ、スピンホール効果を用いたMRAMにおいて、トンネルバリア層13の破壊は、抑制できる。
また、スピンホール効果を用いたMTJ素子の磁化反転において、MTJ素子の書き込み動作における電流の経路は、MTJ素子の読み出し動作時における電流の経路と異なる。それゆえ、スピンホール効果が記憶層の磁化反転に用いられた場合、リードディスターブは、MTJ素子において実質的に発生しない。
<電圧制御磁気異方性>
図4を参照して、本実施形態の演算デバイスにおける、磁気抵抗効果素子の電圧制御磁気異方性について、説明する。
以下のように、本実施形態の演算デバイスは、電圧制御磁気異方性(VCMA:Voltage controlled magnetic anisotropy)によって、導電層20上のMTJ素子21に対するデータの書き込み/非書き込み(記憶層の磁化反転)を、制御する。
VCMA(電圧効果)は、MTJ素子21の記憶層11と参照層12との間に電圧を印加することにより、記憶層11の磁気異方性エネルギー(例えば、垂直磁気異方性エネルギー)が変化する現象である。
記憶層11の垂直磁気異方性を変化させることによって、MTJ素子21における平行状態(P状態)と反平行状態(AP状態)との間のエネルギー障壁が、変化する。
これによって、MTJ素子の磁化反転電流(磁化反転しきい値)Icの増加及び低減が、制御可能である。ここで、磁化反転電流/磁化反転しきい値は、書き込み対象のMTJ素子の記憶層の磁化の向きを反転させることが可能なスピン軌道トルク(スピン流)を生じさせる電流の電流値である。
例えば、図4に示されるように、面内磁化型のMTJ素子において、記憶層11及び参照層12の磁化の向きは、磁性層11,12の層面(膜面)に対して平行である。
面内磁化型のMTJ素子21において、記憶層11の垂直磁気異方性エネルギーを増加させる(垂直安定状態に近づける)ように電圧VCNTが端子T1を介してMTJ素子21に印加された場合、記憶層11の磁化反転しきい値Icは、面内磁気異方性エネルギーが相対的に減少する結果として、低減する。
これとは反対に、電圧VCNTの印加によって記憶層11の垂直磁気異方性エネルギーが減少される(面内磁化をより安定化させる)場合、記憶層11の磁化反転しきい値Icは、増加する。
尚、垂直磁化膜がMTJ素子に用いられる場合、垂直磁化型のMTJ素子における垂直磁気異方性エネルギーと電圧との関係は、面内磁化膜型のMTJ素子における垂直磁気異方性エネルギーと電圧との関係と逆になる。
電圧の印加による磁化反転しきい値Icの増減は、MTJ素子に印加される電圧(以下、MTJ電圧又は制御電圧ともよばれる)の極性に応じて、決まる。ここで、MTJ電圧は、MTJ素子21の下部の導電層20側の電位を基準とした、導電層20の電位(記憶層側の電位)とMTJ素子21の上部の端子T1側の電位(参照層側の電位)との電位差である。
例えば、一例としての面内磁化型のMTJ素子において、記憶層にCoFeB層が用いられ、トンネルバリア層にMgO層が用いられる。
図4の(a)に示されるように、面内磁化型のMTJ素子21において、参照層12に負の電圧値VaのMTJ電圧VCNT(以下では、電圧Vaとも表記される)が印加された場合(記憶層側の電位が参照層側の電位より高い場合)に、記憶層11の磁化反転しきい値Icが減少する。
以下において、図4の(a)のように、MTJ素子21の参照層12に負の電圧値Vaの電圧VCNTが印加された状態は、負バイアス状態とよばれる。
図4の(b)に示されるように、面内磁化型のMTJ素子21において、参照層12に正の電圧値Vd(又は0V)のMTJ電圧VCNT(以下では、電圧Vdとも表記される)が印加された場合(参照層側の電位が、記憶層側の電位より高い場合)に、記憶層11の磁化反転しきい値Icが増加する。
以下において、図4の(b)のように、MTJ素子21の参照層12に正の電圧値Vdの電圧VCNTが印加された状態は、正バイアス状態とよばれる。
このようなVCMAが、記憶層11の磁化反転しきい値の変化が、導電層20に対する書き込み電流の供給時における記憶層11の磁化の反転/非反転の選択に、利用され得る。
<記憶層の磁化反転の制御>
上述の図2乃至図4を用いて説明された現象/原理に基づいて、本実施形態の演算デバイスにおけるMTJ素子の磁化反転が、以下のように実行され得る。
図5は、本実施形態の演算デバイスにおける、磁気抵抗効果素子(MTJ素子)の記憶層の磁化反転制御の基本例を説明するための模式図である。
図5の(a)及び(b)は、MTJ素子の記憶層の磁化反転を説明するための模式図である。
本実施形態の演算デバイスにおける、MTJ素子の記憶層の磁化反転動作(書き込み動作、計算動作)において、データの書き込み対象のMTJ素子において、MTJ素子21の記憶層11の磁化反転しきい値Icを減少させるように、所定の極性及び電圧値を有するMTJ電圧Vaが、MTJ素子21の参照層12に印加される。
記憶層11の磁化反転しきい値Icが減少された状態で、書き込み電流Iwrの流れる方向が記憶層11のスイッチされるべき磁化の向きに応じるように、書き込み電流Iwrが導電層20に供給される。
これらによって、スピンホール効果によるスピンが、導電層20上のMTJ素子21に対して印加され、記憶層11の磁化の向きが、反転する。
図5の(a)に示されるように、MTJ素子の磁化配列がAP状態に設定される場合(例えば、“1”データがMTJ素子21に書き込まれる場合)、MTJ素子21の参照層側の電位が記憶層側の電位より低くなるように、負の電圧値のMTJ電圧VCNT(選択電圧Va)が、MTJ素子21の参照層12に印加される。これによって、MTJ素子21は、負バイアス状態に設定される。
例えば、書き込み電流Iwr1が導電層20の端子T3から端子T2に向かって流れるように、書き込み電流Iwr1が、導電層20に供給される。
これによって、導電層20上のMTJ素子21は、AP状態(“1”データ保持状態)に設定される。
以下では、MTJ素子の磁化配列をP状態からAP状態に変えるための電流は、AP書き込み電流Iapともよばれる。以下では、AP書き込み電流Iapを計算素子10(導電層20)に供給する動作は、AP書き込みともよばれる。
図5の(b)に示されるように、MTJ素子の磁化配列がP状態に設定される場合(例えば、“0”データがMTJ素子21に書き込まれる場合)、MTJ素子21の参照層側の電位が記憶層側の電位より低くなるように、負の電圧値のMTJ電圧VCNT(選択電圧Va)が、MTJ素子21の参照層12に印加される。これによって、MTJ素子21は、負バイアス状態に設定される。
例えば、書き込み電流Iwr0が導電層20の端子T2から端子T3に向かって流れるように、書き込み電流Iwr0が、導電層20に供給される。
これによって、導電層20上のMTJ素子21は、P状態(“0”データ保持状態)に設定される。
以下では、MTJ素子の磁化配列をAP状態からP状態に変えるための電流は、P書き込み電流Ipともよばれる。以下では、P書き込み電流Ipを計算素子10(導電層20)に供給する動作は、P書き込みともよばれる。
図5の(c)は、MTJ素子の記憶層の磁化反転の防止(抑制)を説明するための模式図である。
図5の(c)に示されるように、MTJ素子21の記憶層の磁化反転が防止される場合(MTJ素子21が非選択状態に設定される場合)、MTJ素子21の参照層側の電位が記憶層側の電位より高くなるように、正の電圧値Vdを有するMTJ電圧VCNT(非選択電圧Vd)が、MTJ素子21の参照層12に印加される。これによって、MTJ素子21は、正バイアス状態に設定される、
これによって、MTJ素子21の記憶層11の磁化反転しきい値が、上昇する。
それゆえ、書き込み電流Iwr2(又は、書き込み電流Iwr1)が導電層20内を流れていたとしても、正バイアス状態のMTJ素子21において、記憶層11の磁化反転は、生じない。
このように、スピンホール効果及びVCMAによって、導電層20上のMTJ素子21の記憶層の磁化反転が、制御され得る。
例えば、複数のMTJ素子21が1つの導電層20上に配置された構造において、スピンホール効果によって、磁化スイッチング動作(書き込み動作)が、複数のMTJ素子21に一括に実行される。電流Iwrが導電層20に流される場合、導電層20上の複数のMTJ素子21において、磁化反転の対象となる素子(選択素子)と磁化反転の対象とならない素子(非選択素子)とが存在する場合がある。MTJ素子のVCMAによって、書き込み電流Iwrが導電層20内に流れていたとしても、選択素子の記憶層の磁化を反転させつつ、非選択素子の記憶層の磁化反転が、防止(抑制)され得る。
これによって、本実施形態の演算デバイスにおいて、1ビット当たりの書き込みエネルギー(例えば、消費電力)とセルサイズの微細化とを、実現できる。
本実施形態において、これらの原理によって書き込み動作を実行するメモリは、Voltage Control Spintronic Memory (VoCSM)又はVoltage Control Magnetic Memoryとよばれる。また、これらの原理によって論理演算を実行するデバイスは、Voltage Control Spintronic Logic (VoCSL)とよばれる。
(1c)計算素子
図6乃至図8を用いて、本実施形態の演算デバイスの計算素子の特性について、説明する。
本実施形態の演算デバイスにおいて、MTJ素子21を含む計算素子10は、論理演算素子として、機能する。
図6は、本実施形態の演算デバイスの計算素子に、AP書き込みの書き込み電流が供給された場合における、制御電圧、磁化配列の初期状態、及び、磁化反転の結果の対応関係を示す図である。
図6において、MTJ素子の磁化配列の初期状態は、“A”で示され、MTJ素子に印加される制御電圧の極性は、“B”で示される。AP書き込みが計算素子に実行された場合における計算結果は、“Q1”で示される。尚、MTJ素子の磁化配列の初期状態は、書き込み電流が導電層に供給される前のMTJ素子の磁化配列状態である。
正の電圧値(非選択電圧)VdがP状態のMTJ素子21に印加され状態で、AP書き込み電流が導電層20に供給された場合、MTJ素子21は、P状態を維持する。
負の電圧値(選択電圧)VaがP状態のMTJ素子21に印加され状態で、AP書き込み電流が導電層20に供給された場合、MTJ素子21は、AP状態に設定される。
正の電圧値VdがAP状態のMTJ素子21に印加され状態で、AP書き込み電流が導電層20に供給された場合、MTJ素子21は、AP状態を維持する。
負の電圧値VaがAP状態のMTJ素子21に印加され状態で、AP書き込み電流が導電層20に供給された場合、MTJ素子21は、AP状態を維持する。
ここで、MTJ素子のP状態が“0”に関連付けられ、MTJ素子のAP状態が“1”に関連付けられる。制御電圧VCNTにおいて、正の電圧値Vdが“0”に関連付けられ、負の電圧値Vaが“1”に関連付けられる。
このように、MTJ素子の磁化配列状態及び制御電圧の極性が“0”及び1”にそれぞれ置換された場合、MTJ素子21に対するAP書き込みは、MTJ素子の磁化配列の初期状態“A”と制御電圧VCNTの設定された極性“B”とのOR演算と等価な結果を得ることができる。
図7は、本実施形態の演算デバイスの計算素子に、P書き込みの書き込み電流が供給された場合における、制御電圧、磁化配列の初期状態、及び、磁化反転の結果の対応関係を示す図である。
図7において、MTJ素子の磁化配列の初期状態(書き込み電流の供給前のMTJ素子の磁化配列状態)は、“A”で示され、MTJ素子に印加される制御電圧の極性は、“B”で示される。P書き込みが計算素子に実行された場合における計算結果は、“Q2”で示される。
正の電圧値(非選択電圧)VdがP状態のMTJ素子21に印加された状態で、P書き込み電流Ipが導電層20に供給された場合、MTJ素子21は、P状態を維持する。
負の電圧値(選択電圧)VaがP状態のMTJ素子21に印加された状態で、P書き込み電流Ipが導電層20に供給された場合、MTJ素子21は、P状態を維持する。
正の電圧値VdがAP状態のMTJ素子21に印加された状態で、P書き込み電流Ipが導電層20に供給された場合、MTJ素子21は、AP状態を維持する。
負の電圧値VaがAP状態のMTJ素子21に印加された状態で、P書き込み電流Ipが導電層20に供給された場合、MTJ素子21は、P状態に設定される。
MTJ素子の磁化配列状態及び制御電圧の極性が“0/1”にそれぞれ置換された場合、MTJ素子21に対するP書き込みは、MTJ素子の磁化配列の初期状態“A”と制御電圧VCNTの設定された極性(“B”)の反転値“bB”とのAND演算と等価な結果を得ることができる。
図8は、本実施形態の演算デバイスにおいて、計算素子におけるAP書き込みの結果とP書き込みの結果とを用いた計算処理を説明するための図である。
図8において、OR演算(AP書き込み)の結果Q1の値が、AND演算(P書き込み)の結果Q2の値と同じである場合、2つの結果Q1,Q2を用いた計算の結果が、“1”とされる。OR演算(AP書き込み)の結果Q1の値が、AND演算(P書き込み)の結果Q2の値と異なる場合、2つの結果Q1,Q2を用いた計算の結果が、“0”とされる。
このように、本実施形態の演算デバイスは、OR演算(AP書き込み)の結果“Q1”とAND演算(P書き込み)の結果“Q2”とを用いて、“A”と“B”とのXNOR演算と等価の結果を得ることができる。
このように、本実施形態の演算デバイス1は、2つの値(2つのデータ)に関する、OR演算、AND演算及びXNOR演算を、実行できる。
以下において、計算素子10を用いた計算処理は、計算素子10内のMTJ素子21に対するデータの書き込みと実質的に同じである。以下において、計算素子10を用いた計算処理は、書き込み動作(又はデータの書き込み)ともよばれる。
(1d) 構成例
図9を参照して、本実施形態の演算デバイスの構成例について、説明する。
図9は、本実施形態の演算デバイスのより具体的な構成例を示す模式図である。
図9に示されるように、本実施形態の演算デバイス1は、プロセッサ500内に設けられる。
上述のように、演算デバイス1は、計算回路100A,100B,40及び制御回路70を含む。
計算回路100(100A,100B)は、複数のストリングSTRを含む。制御単位(選択単位)としてのストリングSTRは、複数の計算素子20を含む。ストリングSTRの構成は、後述される。例えば、計算回路100A,100B,40は、高速演算回路(アクセラレータ)ACCを構成する。
制御回路70は、高速演算回路ACCの動作を制御する。制御回路70は、計算回路100A,100B,40のそれぞれの動作を、制御できる。制御回路70は、1以上の情報INFを保持可能な記憶領域700を有する。
記憶領域700は、例えば、レジスタである。情報INFは、高速演算回路ACCを制御するための情報である。例えば、情報INFは、書き込み動作に用いられる電圧及び/又は電流の条件に関する情報である。
図10は、本実施形態の演算デバイスにおける、計算素子を含む制御単位(選択単位)の構成例を示す鳥瞰図である。
図10に示されるように、1つのストリングSTRは、1つの導電層20と複数のMTJ素子21とを含む。
導電層20は、X方向に延在する。
複数のMTJ素子21は、1つの導電層20上に設けられている。複数のMTJ素子21は、X方向に配列される。各MTJ素子21は、面内磁化型のMTJ素子である。MTJ素子21の磁性層11,12の磁化容易軸方向は、Y方向に設定されている。参照層12の磁化は、紙面の手前側から奥行き側へ向く。
各MTJ素子21は、端子T1に接続される。各MTJ素子21において、端子T1は、トランジスタTR1を介して、ビット線BLに接続される。各端子T1に対する制御電圧VCNTの印加によって、複数のMTJ素子21は、互いに独立に選択状態及び非選択状態に設定される。
端子T2が、導電層20のX方向の一端に接続される。端子T2は、トランジスタTR2を介して、配線(図示せず)に接続される。端子T3が、導電層20のX方向の他端に接続される。端子T3は、トランジスタTR3を介して、配線(図示せず)に接続される。
1つの導電層20は、複数のMTJ素子21に共有される。それゆえ、書き込み電流Iwrが、複数のMTJ素子21に対して同時に供給される。
制御端子T1が、MTJ素子21ごとに設けられる。これによって、1つの導電層20上の各MTJ素子21が、互いに独立な素子10として機能する。
複数のストリングSTRが、計算回路(計算領域)100内に、設けられている。
図11は、本実施形態の演算デバイスにおける、計算回路100の内部構成の一例を示す回路図である。
図11に示されるように、複数のストリングSTRが、計算回路(計算領域、又は、MAT:Memory Array Tileともよばれる)100内に配列されている。
Y方向に配列された複数のストリングSTRは、互いに異なる配線(以下では、ワード線とよばれる)WL(WL−1,・・・,WL−k)に接続される。
Y方向に配列された複数のストリングSTRは、トランジスタTR2を介して配線L1に共通に接続され、トランジスタTR3を介して配線L2に共通に接続される。
Y方向に配列された複数のMTJ素子21(21−1,21−2,・・・,21−j)は、トランジスタTR1(TR1−1,TR1−2,・・・,TR1−j)を介して、共通の配線(以下では、ビット線とよばれる)BL(BL−1,BL−2,・・・,BL−j)に接続される。X方向に隣り合う複数のMTJ素子21は、互いに異なる配線BLに接続されている。
例えば、計算回路100内において、複数のストリングSTRが、X方向に配列されてもよい。X方向に配列された複数のストリングSTRは、共通の配線WLに接続されてもよい。
本実施形態において、計算回路100Aは、OR演算回路(OR演算領域)として用いられ、計算回路100Bは、AND演算回路(AND演算領域)として用いられる。各計算回路100は、計算に用いられるデータの記憶領域としても用いられる。
図12は、本実施形態の演算デバイスの内部構成の一例を示す模式図である。
OR演算回路100A内において、複数のストリングSTRA、複数のワード線WLA、複数のビット線BLA、複数の配線L1A,L2Aが、設けられている。
各ワード線WLAは、ワード線デコーダ504を介して、ワード線ドライバ505内の複数のドライバ550のうち対応するドライバ(ドライバ回路)550に接続される。
各ビット線BLAは、ビット線デコーダ501Aを介して、ビット線ドライバ502A内の複数のドライバ(ドライバ回路)520Aのうち対応するドライバ520Aに接続される。
配線L1Aは、ビット線デコーダ501Aを介して、ドライバ回路502の複数のドライバ529Aのうち対応するドライバ529Aに接続される。配線L2Aは、ビット線デコーダ501Aを介して、ドライバ回路502の複数のドライバ529Aのうち対応するドライバ529Aに接続される。
AND演算回路100B内において、複数のストリングSTRB、複数のワード線WLB、複数のビット線BLB、複数の配線L1B,L2Bが、設けられている。
各ワード線WLBは、ワード線デコーダ504を介して、ワード線ドライバ505内の複数のドライバ550のうち対応するドライバ(ドライバ回路)550に接続される。
各ビット線BLBは、ビット線デコーダ501Bを介して、ビット線ドライバ502B内の複数のドライバ520Bのうち対応するドライバ(ドライバ回路)520Bに接続される。
配線L1Bは、ビット線デコーダ501Bを介して、ビット線ドライバ502Bの複数のドライバ(ドライバ回路)529Bのうち対応するドライバ529Bに接続される。配線L2Bは、ビット線デコーダ501Bを介して、ビット線ドライバ502Bの複数のドライバ529Bのうち対応するドライバ529Bに接続される。
図12に示されるように、複数のストリングSTRが、回路(領域)100内に設けられている。これによって、計算対象のデータに対する計算を、多並列で実行できる。この結果として、本実施形態の演算デバイス1は、データに対する計算処理を高速化できる。
計算回路40は、OR演算回路100AとAND演算回路100Bとの間に設けられている。計算回路40は、例えば、複数のセンスアンプ400を含む。各センスアンプ400は、2つの入力端子を有する。
センスアンプ400の一方の入力端子は、OR演算回路100A内の複数のビット線BLAのうち対応する1つに接続される。センスアンプ400の他方の入力端子は、AND演算回路100B内の複数のビット線BLBのうち対応する1つに接続される。
センスアンプ400は、ビット線BLAを介して、OR演算回路100A内のMTJ素子21Aの保持データを読み出す。センスアンプ400は、ビット線BLBを介して、AND演算回路100B内のMTJ素子21Bの保持データを読み出す。
センスアンプ400は、OR演算回路100Aからの信号(OR演算の結果)と、AND演算回路100BAからの信号(AND演算の結果)とを比較する。センスアンプ400は、2つの信号の比較結果を、計算回路40の計算結果として、出力する。
このように、計算回路40は、センスアンプ400によるOR演算(論理和演算)の結果及びAND演算の結果(論理積演算)の読み出し及び比較に基づいて、ある2つの値のXNOR演算(積演算)と等価な計算処理を実行する。以下において、計算回路(演算回路)40は、読み出し回路ともよばれる。
尚、ビット線ドライバ、ビット線デコーダ、ワード線ドライバ及びワード線デコーダは、制御回路70の構成要素でもよい。
図13は、本実施形態の演算デバイスにおける、AND演算回路及びOR演算回路の構成の一例を示す模式図である。
図13の(a)は、本実施形態の演算デバイスにおける、OR演算回路100AのストリングSTRの構成例を示している。
OR演算回路100AのストリングSTRAにおいて、トランジスタTR1A,TR2A,TR3Aのゲートは、ワード線WLAに接続されている。ワード線WLAの電位の制御によって、ストリングSTRAは、活性化状態(選択状態)又は非活性化状態(非選択状態)に設定される。
制御端子T1Aが、各MTJ素子21Aの参照層12Aに接続されている。制御端子T1Aは、トランジスタT1Aを介して、ビット線BLAに接続されている。
ビット線BLAの電位の制御によって、MTJ素子21Aは、選択状態又は非選択状態に設定される。
導電層20Aの端子T2Aは、トランジスタTR2A及び配線L1Aを介して、ドライバ529Aに接続される。導電層20Aの端子T3Aは、トランジスタTR3A及び配線L2Aを介して、ドライバ529Aに接続される。
OR演算回路100Aにおいて、P書き込み電流Ipが、導電層20Aに供給される。ドライバ529Aから供給される電圧Vw,Vssの電位差によって、P書き込み電流Ipが、導電層20A内に流れる。この場合において、一方のドライバ529Aは、ソース回路として機能し、他方のドライバ529A−2は、シンク回路として機能する。一方のドライバ529Aは、正の電圧値を有する電圧Vwを、導電層の端子T3Aに印加する。他方のドライバ529Aは、グランド電圧Vssを、導電層20Aの端子T2Aに印加する。
このように、導電層20Aの端子T3A側の電位が、導電層20Aの端子T2A側の電位より高い。この電位差によって、P書き込み電流Ipが、導電層20Aの部分XB側から部分XA側に向かって流れる。
図13の(b)は、本実施形態の演算デバイスにおける、AND演算回路のストリングの構成例を示している。
AND演算回路100BのストリングSTRBにおいて、トランジスタTR1B,TR2B,TR3Bのゲートは、ワード線WLBに接続されている。ワード線WLBの電位の制御によって、ストリングSTRBは、活性化状態(選択状態)又は非活性化状態(非選択状態)に設定される。
制御端子T1Bが、各MTJ素子21Bの参照層12Bに接続されている。制御端子T1Bは、トランジスタT1Bを介して、ビット線BLBに接続されている。
ビット線BLBの電位の制御によって、MTJ素子21Bは、選択状態又は非選択状態に設定される。
導電層20Bの端子T2Bは、トランジスタTR2B及び配線L1Bを介して、一方のドライバ529Bに接続される。導電層20Bの端子T3Bは、トランジスタTR3B及び配線L2Bを介して、他方のドライバ529Bに接続される。
AND演算回路100Bにおいて、AP書き込み電流Iapが、導電層20Bに供給される。ドライバ529Bから供給される電圧によって、AP書き込み電流Iapが、導電層20B内に流れる。この場合において、一方のドライバ529Bは、ソース回路として機能し、他方のドライバ529Bは、シンク回路として機能する。一方のドライバ529Bは、正の電圧値を有する電圧Vwを、導電層20Bの端子T2Bに印加する。他方のドライバ529Bは、グランド電圧Vssを、導電層20Aの端子T3Bに印加する。
このように、導電層20Aの端子T2Bの電位が、導電層20Bの端子T3Bの電位より高い。この電位差によって、AP書き込み電流Iapが、導電層20Bの部分XA側から部分XB側に向かって流れる。
図14は、本実施形態の演算デバイスにおける、計算回路の構成の一例を示す回路図である。
図14において、計算回路(読み出し回路)内のセンスアンプの一例が示されている。
図14に示されるように、計算回路40のセンスアンプ400は、複数の電界効果トランジスタ(以下では、トランジスタとよばれる)QN,QPを含む。
図14の例のセンスアンプ400は、4つのn型のトランジスタQN1,QN2,QN3,QN4と、4つのp型のトランジスタQP1,QP2,QP3,QP4と、を含む。
トランジスタQN1の電流経路の一端(ソース/ドレインの一方)は、ノード(第1の入力端子)ND1に接続される。トランジスタQN1の電流経路の他端(ソース/ドレインの他方)は、ノード(第2の入力端子)ND3に接続される。トランジスタQN1のゲートは、ノードND4に接続される。
トランジスタQN2の電流経路の一端は、グランド端子VSSに接続される。トランジスタQN2の電流経路の他端は、ノードND1に接続される。トランジスタQN2のゲートに、制御信号SEN2が、供給される。
トランジスタQP1の電流経路の一端は、電圧端子VRDに接続されている。トランジスタQP1の電流経路の他端は、ノードND3に接続される。トランジスタQP1のゲートは、トランジスタQN1のゲート及びノードND4に接続される。
トランジスタQP2の電流経路は、トランジスタQP1の電流経路に並列に接続される。トランジスタQP2の電流経路の一端は、電圧端子VRDに接続される。トランジスタQP2の電流経路の他端は、ノードND3に接続される。トランジスタXP2のゲートに、制御信号SEN1が、供給される。
トランジスタQN3の電流経路の一端は、ノードND2に接続される。トランジスタQN3の電流経路の他端は、ノードND4に接続される。トランジスタQN3のゲートは、ノードND3に接続される。
トランジスタQN4の電流経路の一端は、グランド端子VSSに接続される。トランジスタQN4の電流経路の他端は、ノードND2に接続される。トランジスタQN4のゲートに、制御信号SEN2に供給される。
トランジスタQP3の電流経路の一端は、電圧端子VRDに接続される。トランジスタQP3の電流経路の他端は、ノードND4に接続される。トランジスタQP3のゲートは、トランジスタQN3のゲート及びノードND3に接続される。
トランジスタQP4の電流経路は、トランジスタQP3の電流経路に並列に接続されている。トランジスタQP4の電流経路の一端は、電圧端子VRDに接続される。トランジスタQP4の電流経路の他端は、ノードND4に接続される。トランジスタQP4のゲートに、制御信号SEN1が、供給される。
制御信号SEN1,SEN2の信号レベルの制御によって、センスアンプ400が、活性化される。
ノードND1は、トランジスタQX1を介して、AND演算回路100Bのビット線BLBに接続される。ノードND2は、トランジスタQX2を介して、OR演算回路100Aのビット線BLAに接続される。
例えば、トランジスタQX1のゲートに、ゲート電圧VCLMP1が印加される。トランジスタQX2のゲートに、ゲート電圧VCLMP2が印加される。トランジスタQX1,QX2は、演算回路100A,100Bとセンスアンプ400との接続を制御する。例えば、トランジスタQX1,QX2は、クランプトランジスタとして機能する。
ノードND3に、出力端子DOUTが接続されている。ノードND4に、出力端子bDOUTが接続されている。出力端子DOUTから、比較結果に対応する信号が、出力される。出力端子bDOUTから、比較結果の反転値に対応する信号が、出力される。
例えば、抵抗素子RXが、ノードND1とトランジスタQX1との間に、接続されている。抵抗素子RXは、トランジスタQX1とビット線BLAとの間に、接続されてもよい。
尚、センスアンプ400の回路構成は、図14の例に限定されない。センスアンプ400の構成は、電流センス型、電圧センス型、電荷蓄積型などの各種のセンス方式の回路構成が適用され得る。
図15は、本実施形態の演算デバイスにおける、計算回路内の複数のMTJ素子の抵抗値の分布の一例を示す図である。
センスアンプ400を用いて、OR演算の結果とAND演算の結果との比較処理が実行される場合、比較処理の容易化のために、AND演算回路100B内のMTJ素子21Bの抵抗値が、OR演算回路100A内のMTJ素子21Aの抵抗値より高くされてもよい。
この場合、図15に示されるように、AND演算回路100B内の複数のMTJ素子21Bの抵抗値の分布PAND,APANDが、OR演算回路100A内の複数のMTJ素子21Aの抵抗値の分布POR,APORが、高抵抗側にシフトされる。
OR演算回路100AにおけるAP状態のMTJ素子の抵抗値の分布APORが、AND演算回路100BおけるP状態のMTJ素子の抵抗値の分布PANDとAP状態におけるMTJ素子の抵抗値の分布APANDとの間に設定される。
抵抗値の分布のシフトのために、例えば、図14の回路例のように、AND演算回路100Bとセンスアンプ400との接続経路上に、抵抗素子RXが設けられている。
例えば、OR演算の結果を保持するMTJ素子からの信号がAND演算の結果を保持するMTJ素子からの信号より大きい場合、センスアンプ400の判定結果(出力信号)は“1”とされる。これに対して、OR演算の結果を保持するMTJ素子からの信号がAND演算の結果を保持するMTJ素子からの信号同じ又は小さい場合、センスアンプ400判定結果は“0”とされる。
このように、センスアンプ400によるOR演算の結果とAND演算の結果との信号量の比較(計算処理、XOR演算の結果の取得)が、比較的容易になされ得る。
図14の例のように、抵抗素子RXが、センスアンプ400ノードND1とAND演算回路100Bのビット線BLBとの間に、接続された場合、AND演算の結果に対応する信号量(例えば、電流値)は、OR演算の結果に対応する信号量より小さくなる。
これによって、センスアンプ400のセンス結果において、AND演算回路100BのMTJ素子21Aの抵抗値の分布が、OR演算回路のMTJ素子の抵抗値の分布より高い抵抗値に相対的に(等価的に)シフトされ得る。
トランジスタQX1及びトランジスタQX2の動作電圧の制御によって、AND演算回路100BのMTJ素子21Bの抵抗値の分布が、OR演算回路100AのMTJ素子の抵抗値の分布に対して、高抵抗側に等価的にシフトされてもよい。例えば、トランジスタ(例えば、クランプトランジスタ)QX1のゲート電圧VCLMP1が、トランジスタ(例えば、クランプトランジスタ)のゲート電圧VCLMP2より低くされる。これによって、AND演算の結果に対応する信号量(例えば、電流値)は、OR演算の結果に対応する信号量より小さくなる。
この結果として、AND演算回路100BのMTJ素子21Bの抵抗値の分布が、OR演算回路のMTJ素子の抵抗値の分布より高い抵抗値にシフトされ得る。
尚、抵抗素子RXの設置及びトランジスタのゲート電圧の制御の代わりに、AND演算回路100B内のMTJ素子21Aのサイズ(X−Y平面の面積)が、OR演算回路100A内のMTJ素子21Aのサイズ(X−Y平面の面積)より大きくされてもよい。
このような回路構成によって、本実施形態の演算デバイス1は、2つの値(データ)に対するOR演算、AND演算及びXNOR演算を実行できる。例えば、本実施形態の演算デバイス1は、XNOR演算デバイス(又は、積演算デバイス)ともよばれ得る。
(1e)動作例
図16乃至図 を参照して、本実施形態の演算デバイスの動作例について、説明する。
<計算処理>
図16乃至図21は、本実施形態の演算デバイスが実行する動作の複数の処理(計算工程)を模式的に示す図である。
図16に示されるように、各計算回路100A,100Bにおいて、計算素子10のMTJ素子21は、初期状態に設定される。計算素子10の初期状態において、計算素子10のMTJ素子21内に保存されているデータ(例えば、値)は、任意である。
図17に示されるように、各計算回路100A,100Bの計算素子10において、ウェイトデータWm,nが、MTJ素子21に書き込まれる。ウェイトデータWm,nは、重み値である。
ワード線ドライバ505及びワード線デコーダ504は、AND演算回路及びOR演算回路のロウ(ワード線)を制御する。ワード線WLの活性化/非活性化によって、データの書き込み対象のストリングSTRが、選択される。
1以上のワード線WLA,WLBの電位の制御によって、1以上のストリングSTRA,STRBが、選択状態又は非選択状態に設定される。複数のビット線BLA,BLBの電位が、制御される。これによって、MTJ素子21A,21Bが、選択状態(書き込み可能状態)又は非選択状態(書き込み防止状態)に設定される。
MTJ素子21に対するウェイトデータWm,nの書き込み時において、書き込むべきウェイトデータWm,nに応じて、0書き込み電流及び/又は1書き込み電流が、ストリングSTRA,STRBに供給される。
これによって、“0”データ又は“1”データが、各MTJ素子21A,21Bに書き込まれる。
尚、同じデータ(同じ値、同じデータ列)が、計算回路100A,100Bの対称な位置(アドレス)に書き込まれることが望ましい。例えば、OR演算回路100Aにおけるj番目のアドレスのストリングSTRAに書き込まれるデータは、AND演算回路100Bのi番目のアドレスのストリングSTRBに書き込まれるデータと同じである。
OR演算回路100Aにおけるj番目のアドレスのストリングに対するデータの書き込みは、AND演算回路100Bのj番目のアドレスのストリングSTRBに対するデータの書き込みと同時に実行されてもよいし、異なるタイミングで実行されてもよい。
図18に示されるように、データDinAが、データバッファ503Aに供給される。データバッファ503Aは、データDinAを一時的に保持する。データDinBが、データバッファ503Bに供給される。データバッファ503Bは、データDinBを一時的に保持する。データDinBは、データDinAの反転データである。例えば、データDinAが、インバータ(図示せず)を介して、データバッファ503Bに供給される。これによって、データバッファ503Bは、データDinAの反転データを保持できる。
データDinAは、ビット線ドライバ502A及びビット線デコーダ501Aを介して、データバッファ503Aからビット線BLAに転送される。より具体的には、ビット線ドライバ502Aは、データDinAの各値(データ列)I1,I2,・・・,Ii,・・・,Imに基づいて、ビット線BLAの電位を、データDinA内の値(データ列)に対応する電位に設定する。
データDinB(データDinAの反転データ)は、ビット線ドライバ502A及びビット線デコーダ501Aを介して、データバッファ503Bからビット線BLBに転送される。より具体的には、ビット線ドライバ502Bは、データDinBの各値(データ列)bI1,bI2,・・・,bIi,・・・,bImに基づいて、ビット線BLBの電位を、データDinB内の値(データ列)に対応する電位に設定する。
図19に示されるように、各計算回路100A,100Bにおいて、計算処理(書き込み動作)が、実行される。ワード線WLA,WLBの電位の制御によって、1以上のストリングSTRA,STRBが、選択される。
OR演算回路100Aにおいて、“1”データの書き込み動作が、選択されたストリングSTRAに対して、実行される。AP書き込み電流Iapが、導電層20Aの端子T3A側から端子T2A側へ流れるように、導電層20A内に供給される。
これによって、ストリングSTRAの各MTJ素子21Aにおいて、ウェイトデータWm,nと入力データDinAとのOR演算が、実行される。計算回路100AのストリングSTRAの計算素子10Aにおいて、OR演算の結果Om,nが、保持される。
AND演算回路100Bにおいて、“0”データの書き込み動作が、選択されたストリングSTRBに対して、実行される。P書き込み電流Ipが、導電層20Bの端子T2B側から端子T3B側へ流れるように、導電層20B内に供給される。
これによって、ストリングSTRBの各MTJ素子21Bにおいて、ウェイトデータWm,nとデータ(データDinAの反転データ)DinBとのAND演算が、実行される。計算回路100BのストリングSTRBの計算素子10Bにおいて、AND演算の結果Am,nが、保持される。
図20に示されるように、演算回路40は、OR演算回路100A内のデータ(OR演算の結果Om,n)とAND演算回路100Bのデータ(AND演算の結果Am,n)との比較処理を実行する。
上述のように、演算回路40のセンスアンプ400によるデータの読み出し結果に基づいて、ウェイトデータWmnと入力データDinとのXNOR演算の結果と等価な値が得られる。
OR演算回路100Aにおいて、MTJ素子21Aのデータ(抵抗状態)に対応する信号が、ビット線BLAに出力される。AND演算回路100Bにおいて、MTJ素子21Bのデータ(抵抗状態)に対応する信号が、ビット線BLBに出力される。この信号が、対応するセンスアンプ400の入力端子にそれぞれ供給される。
上述の図14及び図15のように、センスアンプ400による信号の比較によって、センスアンプ400の比較結果が、“0”又は“1”の出力信号Fmnとして、出力される。センスアンプ400の出力信号Fmnは、入力データとウェイトデータとのXNOR演算に相当する。
このように、本実施形態の演算デバイス1によって、入力データDinとウェイトデータWとの積演算の結果が得られる。
<書き込み条件の情報に基づいた計算処理の設定>
図21は、本実施形態の演算デバイスにおける動作電圧と書き込みエラーとの関係を示すグラフである。
図21において、グラフの横軸は、動作電圧Vwに対応し、グラフの縦軸は、書き込みエラーに対応する。電圧Vwは、書き込み電流Iwrを生成するための電圧(電圧値)である。例えば、電圧Vwは、ドライバ502のソース回路の電源電圧に用いられる。図21において、書き込み動作の時間(書き込み電流のパルス幅)は、一定に設定されている。書き込み電圧Vwは、MTJ素子の破壊電圧より小さい電圧の範囲に設定される。書き込みエラーは、データの書き込みに対する書き込みエラーの発生率(以下では、書き込みエラー率とよばれる)で示されている。
書き込み電圧Vwの電圧値の増加に伴って、書き込み電流Iwr(Iap,Ip)の電流値は、増大する。
図21に示されるように、書き込みエラー率WERは、書き込み電圧Vwの電圧値が増大すると、指数関数的に減少する。
ここで、計算機システムで許容される書き込みエラー率(WER)は、本実施形態の演算デバイスが使用されるニューラルネットワークの構成に応じて、異なる。
許容可能なエラー率に応じて書き込み電圧Vwが設定されることで、ニューラルネットワーク(例えば、深層ニューラルネットワーク及び/又は畳み込みニューラルネットワーク)の計算精度を劣化させることなしに、書き込み電圧Vwを低減できる。
図22は、本実施形態の演算デバイスの構成のより具体的な一例を示す図である。
回路(高速演算回路)ACCは、上述のように、OR演算回路100A、AND演算回路100B及び演算回路(読み出し回路)40を含む。
例えば、回路ACCは、ビット線デコーダ501(501A,501B)を含む。
ビット線デコーダ501Aは、OR演算回路100Aの複数のビット線に接続される。ビット線デコーダ501Aは、OR演算回路100Aの複数のビット線の活性化(選択/非選択)を制御する。ビット線デコーダ501Bは、AND演算回路100Bの複数のビット線に接続される。ビット線デコーダ501Bは、AND演算回路100Bの複数のビット線の活性化(選択/非選択)を制御する。
例えば、回路ACCは、ビット線ドライバ502(502A,502B)を含む。ビット線ドライバ502Aは、ビット線デコーダ501Aを介して、OR演算回路100A内の複数のビット線BLAに接続される。ビット線ドライバ502Aは、OR演算回路100A内の複数のビット線BLAの電位を制御する。ビット線ドライバ502Bは、ビット線デコーダ501Bを介して、AND演算回路100B内の複数のビット線BLBに接続される。ビット線ドライバ502Bは、AND演算回路100B内の複数のビット線BLBの電位を制御する。
例えば、回路ACCは、データバッファ503(503A,503B)を含む。
データバッファ503Aは、OR演算回路100Aに転送すべきデータ(書き込みデータ)を一時的に保持する。データバッファ503A内のデータに基づいて、ビット線ドライバ502Aは、ビット線BLAの電位を制御する。データバッファ503Bは、AND演算回路100Bに転送すべきデータ(書き込みデータ)を一時的に保持する。データバッファ503B内のデータに基づいて、ビット線ドライバ502Bは、ビット線BLBの電位を制御する。
例えば、回路ACCは、ワード線デコーダ504を含む。
ワード線デコーダ504は、OR演算回路100Aのワード線WLA及びAND演算回路100Bのワード線WLBに接続される。ワード線デコーダ504は、OR演算回路100Aのワード線WLA及びAND演算回路100Bのワード線WLBの活性化(選択/非選択)を制御する。
例えば、回路ACCは、ワード線ドライバ505を含む。
ワード線ドライバ505は、ワード線デコーダ504を介して、OR演算回路100Aのワード線WLA及びAND演算回路100Bのワード線WLBに接続される。ワード線ドライバ505は、OR演算回路100Aのワード線WLAの電位、及び、AND演算回路100Bのワード線WLBの電位を、制御する。
本実施形態の演算デバイス1において、制御回路70は、データの書き込み(記憶層の磁化反転)に用いられる各種の設定条件に関する情報INF1を、保持する。
制御回路70は、情報INF1を格納するための記憶領域(例えば、レジスタ)700Aを含む。
本実施形態において、レジスタ700Aは、書き込み電流を生成するために用いられる電圧(書き込み電圧)Vwに関する情報(以下では、電圧情報とよばれる)INF1を、保持する。
電圧情報INF1は、書き込み電圧Vwの電圧値と書き込みエラー率との関係に基づく情報である。例えば、電圧情報INF1は、演算デバイス1の外部から供給される。例えば、コントローラ、ホストデバイス又はユーザによって操作されたデバイスなどの外部デバイスが、電圧情報INF1を演算デバイス1に供給する。尚、書き込みエラー率の代わりに、ある書き込み条件における書き込みエラーの回数(以下では、書き込みエラー数と呼ばれる)に基づいて、情報INF1が作成されてもよい。また、書き込みエラーは、書き込みエラー率及び書き込みエラー数に限らず、ある書き込み条件から得ることが可能なエラーに関する値であればよい。
レジスタ(以下では、電圧情報レジスタともよばれる)700Aは、ビット線ドライバ502(502A,502B)に接続される。レジスタ700Aは、書き込み電圧の電圧値に関する情報INF1を、ビット線ドライバ502に提供できる。
ビット線ドライバ502は、レジスタ700A内の電圧情報INF1に基づいて、動作する。
尚、磁気抵抗効果素子21に対する書き込み動作を制御するための情報INFは、2つの計算回路100のうち一方に対応する条件及び情報でもよいし、2つの計算回路100の両方に対応する条件及び情報でもよい。
図23は、本実施形態の演算デバイスにおける、ビット線ドライバの内部構成の一例を示す図である。
図23に示されるように、本実施形態の演算デバイスにおいて、ビット線ドライバ502(502A,502B)は、ドライバ520及びセレクタ521を含む。
許容される書き込みエラー率に基づく電圧情報INF1は、セレクタ521に供給される。複数の電圧値V,V,・・・,Vが、セレクタ521に供給される。
セレクタ521は、電圧情報INF1に基づいて、複数の電圧値V,V,・・・,Vの中から1つを選択する。
セレクタ521は、選択された電圧値Vselをドライバ525に供給する。
ドライバ520は、供給された電圧値Vselに応じて、動作する。ドライバ520は、電圧値Vselに応じた書き込み電圧Vwを、出力する。
これによって、電圧情報INF1に応じた書き込み電圧Vwが、導電層20のソース側の端子に、印加される。書き込み電圧Vwとグランド電圧Vssとの電位差によって、導電層20内に、書き込み電流Iwrが、生じる。
生成された書き込み電流Iwrを用いて、上述の図16乃至図20の計算処理が、実行される。
このように、本実施形態の演算デバイスにおいて、計算機システムの許容範囲内の書き込みエラー(書き込みエラー率)に関する情報に基づいて、電圧及び電流の設定条件が、選択される。
(1f)まとめ
本実施形態の演算デバイスは、計算回路内の磁気抵抗効果素子のデータの書き込み条件(計算素子の計算処理の条件)に関する情報を保持するレジスタを含む。
演算デバイスを用いて実行される計算モデル(例えば、畳み込みニューラルネットワーク)に応じて、許容される書き込みエラー率は異なる。
例えば、低い書き込みエラー率が許容可能な計算モデルのための計算処理が実行される場合において、比較的低い書き込み電圧及び書き込み電流を用いて、本実施形態の演算デバイスの計算処理(書き込み動作)が、実行可能である。
本実施形態の演算デバイスは、レジスタ内の情報に基づいて、実行される計算モデルにおける書き込みエラー(例えば、書き込みエラー率又は書き込みエラー数)の許容範囲内で、書き込み動作(計算処理)に用いられる電圧/電流の大きさを制御できる。
この結果として、本実施形態の演算デバイスは、消費電力を低減できる。
以上のように、第1の実施形態の演算デバイスは、特性を向上できる。
(2) 第2の実施形態
図24及び図25を参照して、第2の実施形態の演算デバイス及びその制御方法について、説明する。
図24は、本実施形態の演算デバイスの構成例を示す図である。
図24に示されるように、本実施形態の演算デバイス1は、テーブル生成回路(テスト回路ともよばれる)701Aを、制御回路70内に含む。
テーブル生成回路701Aは、書き込み電圧(Vw)と書き込みエラー率(WER)との関係を示すテーブルを生成する。以下において、回路701Aは、電圧−エラー率テーブル生成回路701Aともよばれる。
テーブル生成回路701Aは、例えば、電圧情報レジスタ700A及び読み出し回路(演算回路)40に接続される。
テーブル生成回路701Aは、テスト工程又はBIST工程において、OR演算回路100A及びAND演算回路100BのMTJ素子21に対するテストを実行できる。テーブル生成回路701Aは、テストの結果を用いて、書き込み電圧と書き込みエラー率とに関するテーブルを生成する。また、テーブル生成回路701は、OR演算/AND演算時の書き込み動作及び読み出し動作の結果を用いて、書き込み電圧と書き込みエラー率とに関するテーブルを生成できる。
尚、テーブル生成回路701Aは、制御回路70の外部に設けられてもよい。テーブル生成回路701Aは、高速演算回路ACC内に設けられてもよい。
図25は、本実施形態の演算デバイスにおける、制御回路の内部構成の一例を示す図である。
図25において、制御回路70内における、電圧−エラー率テーブル生成回路701Aの構成の一例が示されている。
図25に示されるように、テーブル生成回路701Aは、エラーカウンタ制御回路710、エラーカウンタ711、テーブル保持回路712、ターゲットエラー率レジスタ713及び選択回路714を含む。
エラーカウンタ制御回路710は、エラーカウンタ711及び演算回路(読み出し回路)40の動作を制御する。
エラーカウンタ711は、設定された電圧値における、書き込みエラーの個数をカウントする。エラーカウンタ711は、設定された電圧値V,V,・・・,Vと書き込みエラー率(エラー数)ER,ER,・・・,ERとの関係を、テーブル保持回路712内に格納する。
テーブル保持回路712は、複数の電圧値V,V,・・・,Vと各電圧値に対応する書き込みエラー数ER,ER,・・・,ERとの関係を、保持する。これによって、電圧−エラー率テーブルTBLAが、生成される。また、書き込みエラーの個数に基づいて、書き込みエラー率が計算される。
ターゲットエラー率レジスタ713は、計算機システム内で適用される計算モデル(例えば、畳み込みニューラルネットワーク)に応じて設定されたエラー率のターゲット値を、保持する。例えば、エラー率のターゲット値は、演算デバイスの外部デバイス(又はユーザ)から提供される。
選択回路714は、エラー率のターゲット値とテーブルTBLA内のエラー率ER,ER,・・・,ERに基づいて、テーブルTBLA内の複数の電圧値V,V,・・・,Vの中から1つを選択する。例えば、選択回路714は、テーブルTBLAとターゲット値とを比較する。選択回路714は、要求されたエラー率以下のエラー率を実現する1つ以上の電圧値の中から、ターゲット値に最も近いエラー率に対応する電圧値の情報を選択する。
選択回路714は、選択された電圧値の情報を電圧情報レジスタ700Aに出力する。選択された電圧値の情報は、電圧情報レジスタ700A内に格納される。
本実施形態の演算デバイスにおいて、以下の動作によって、書き込み電圧と書き込みエラー(例えば、書き込みエラー率)に関するテーブルが生成される。
MTJ素子の書き込みエラー率を評価する場合、演算回路100内のMTJ素子21に対して、データの書き込み及びデータの読み出しが、実行される。例えば、以下において、書き込みエラー率の評価(書き込みエラー数のカウント)時におけるデータの書き込み及び読み出しを含む動作は、テスト動作とよばれる。
使用され得る複数の電圧値のうち選択された1つを用いて、データの書き込みが、MTJ素子21に対して実行される。データが書き込まれたMTJ素子21に対して、データの読み出しが実行される。
エラーカウンタ制御回路710が、AND演算回路内のMTJ素子のエラー率を評価する場合、エラーカウンタ制御回路710は、OR演算回路内のMTJ素子を参照抵抗に用いる。このように、本実施形態の演算デバイスは、読み出し回路(演算回路)を用いて、AND演算回路内のMTJ素子の書き込みエラー率及びOR演算回路内のMTJ素子の書き込みエラー率を評価できる。それゆえ、本実施形態の演算デバイスは、回路面積の増大を抑制できる。
例えば、抵抗素子RXが、MTJ素子の抵抗値の分布のオフセットのために、演算回路40のセンスアンプ400に接続されている場合(図14及び図15参照)、OR演算回路100AのAP状態のMTJ素子21Aの抵抗値は、AND演算回路100BのAP状態のMTJ素子21Bの抵抗値とP状態のMTJ素子の抵抗値との間の値を有する。
それゆえ、OR演算回路100AのAP状態のMTJ素子21Aの抵抗値は、AND演算回路100BのAP状態のMTJ素子21Bの抵抗値とP状態のMTJ素子21Bの抵抗値とを区別するための参照抵抗値として用いることができる。
これと同様に、OR演算回路100A内の書き込みエラー率の評価時において、AND演算回路100BのAP状態のMTJ素子21Bの抵抗値が、OR演算回路100AのAP状態のMTJ素子21Aの抵抗値とP状態のMTJ素子21Aの抵抗値との区別のために、用いることができる。
複数の電圧値の中から選択された電圧値ごとに、データの書き込み及びデータの読み出しが実行される。これによって、各電圧値に対する書き込みエラー数が、得られる。
この結果として、電圧値と書き込みエラー数とに関するテーブルが、生成される。
尚、テーブルTBLAは、演算デバイス(又は、計算機システム)の製造時のテスト工程で作成されてもよいし、計算処理(例えば、畳み込みニューラルネットワークを用いた計算処理)の実行時に、新たに作成されてもよい。
テーブルTBLAがテスト工程で作成される場合、テーブルTBLは、フューズ素子のような1回のみ書き込み可能なデバイスを用いて、記録されることが望ましい。計算処理の実行時にテーブルTBLが作成される場合、テーブルTBLは、不揮発性のエンベデッドメモリに記録されてもよいし、SRAM及び/又はDRAMなどの揮発性メモリに記録されてもよい。
尚、本実施形態における電圧情報レジスタ700A内の情報を用いた書き込み動作の制御は、第1の実施形態の例と同様であるため、ここでの説明は省略する。
以上のように、本実施形態の演算デバイスは、演算デバイスによって生成されたテーブルに基づいて、書き込みエラー率の許容範囲に応じて、書き込み電流の電流値を低減できる。この結果として、本実施形態の演算デバイスは、消費電力を低減できる。
したがって、第2の実施形態の演算デバイスは、特性を向上できる。
(3) 第3の実施形態
図26乃至図28を参照して、第3の実施形態の磁気デバイスについて、説明する。
図26は、本実施形態の演算デバイスにおける動作電圧と書き込みエラー率との関係を示すグラフである。
図26において、グラフの横軸は、書き込み電圧Vのパルス幅tに対応し、グラフの縦軸は、書き込み電圧Vの電圧値に対応する。複数のエラー率の各々に関して、パルス幅tと電圧値Vとの関係が示されている。
書き込み電圧Vのパルス幅tは、導電層20に対する電流の供給期間に実質的に相当する。
図26において、3つのエラー率ER,ER,ERにおけるパルス幅tと電圧値Vの関係が、示されている。3つの書き込みエラー率ER,ER,ERは、ER<ER<ERの大小関係を有している。
ここで、各書き込みエラー率に関して、書き込み電圧のパルス幅が小さくされる(書き込み電圧の印加時間が短くされる)と、書き込み電圧Vwの電圧値は、上昇する。
書き込み電圧Vwの電圧値が同じ(例えば、電圧値V)である場合、書き込み電圧のパルス幅が大きくされる(書き込み電圧の印加時間が長くされる)と、エラー率は低下する。
このエラー率とパルス幅との関係に基づいて、ある電圧値の書き込み電圧Vwにおいて、計算機システムに要求されるエラー率に応じて、より適した書き込み電圧のパルス幅(書き込み時間)が、選択され得る。
以下のように、書き込み電圧(書き込み電流)のパルス幅の制御によって、本実施形態の演算デバイスは、消費電力を低減できる。
図27は、本実施形態の演算デバイスの構成例を示す図である。
図27に示されるように、本実施形態の演算デバイス1において、制御回路70は、レジスタ700Bを含む。
本実施形態において、レジスタ700Bは、書き込み電圧のパルス幅の情報(パルス幅情報ともよばれる)INF2を保持する。以下では、レジスタ700Bは、パルス幅情報レジスタともよばれる。
パルス幅情報INF2は、各エラー率に関する書き込み電圧Vwの電圧値とパルス幅tとの関係に基づく情報である。例えば、パルス幅情報INF2は、ユーザの入力によって、コントローラ又はホストデバイスなどの外部デバイスから、演算デバイス1に供給される。尚、書き込みエラー率の代わりに、書き込みエラー数を用いて、パルス幅情報INF2が作成されてもよい。
パルス幅情報レジスタ700Bは、例えば、ワード線ドライバ505に接続される。パルス幅情報レジスタ700Bは、書き込み電圧のパルス幅に関する情報を、ワード線ドライバ505に提供する。
ワード線ドライバ505は、パルス幅情報レジスタ700B内の情報INF2に基づいて、動作する。ワード線ドライバ505は、選択ストリングSTRに接続されるワード線WLを、書き込み電圧Vwのパルス幅に対応する期間において、活性化する。
これによって、本実施形態の演算デバイス1において、計算素子20に供給される書き込み電圧(書き込み電流)のパルス幅が、制御される。
図28は、本実施形態の演算デバイスにおける、ワード線ドライバの構成例の一例を示す図である。
図28に示されるように、ワード線ドライバ505は、複数のパルスジェネレータ511(511−1,511−2,・・・,511−n)と、セレクタ512とを含む。
複数のパルスジェネレータ511の各々は、互いに異なるパルス幅の信号を生成する。トリガ信号WTrg1が、各パルスジェネレータ511に供給される。トリガ信号WTrg1は、例えば、あるサイクル(周波数)のクロック信号CLKである。各パルスジェネレータ511は、トリガ信号WTrg1を用いて、パルス幅を制御できる。これによって、各パルスジェネレータ511は、互いに異なるパルス幅の信号を出力する。
複数のパルスジェネレータ511は、生成された書き込み電圧Vwをセレクタ512に供給する。
セレクタ512は、パルス幅情報INF2を、パルス幅情報レジスタ700Bから受ける。セレクタ512は、複数のパルスジェネレータ511からの出力を受ける。セレクタ512は、パルス幅情報INF2に基づいて、複数のパルスジェネレータ511からの出力のうち1つを選択する。セレクタ512は、選択された信号Sselを、ワード線デコーダ504に出力する。
選択された信号Sselが、ワード線デコーダ504及びワード線WLを介して、トランジスタTR2,TR3のゲートに供給される。
これによって、信号Sselのパルス幅に応じた期間中に、トランジスタTR2,TR3は、オン状態に設定される。この結果として、上述の図16乃至図20の動作時において、書き込み電圧(書き込み電流)の供給期間が、パルス幅の大きさに応じて、設定される。
以上のように、本実施形態の演算デバイスは、書き込みエラー(例えば、書き込みエラー率又は書き込みエラー数)の許容範囲に応じて、書き込み電流の供給期間を変化できる。
それゆえ、本実施形態の演算デバイスは、消費電力を低減できる。
したがって、第3の実施形態の演算デバイスは、特性を向上できる。
(4) 第4の実施形態
図29及び図30を参照して、第4の実施形態の演算デバイスについて、説明する。
図29は、本実施形態の演算デバイスの構成例を示す図である。
図29に示されるように、本実施形態の演算デバイス1は、テーブル生成回路701Bを、制御回路70内に含む。
テーブル生成回路701Bは、複数の書き込みエラー(例えば、書き込みエラー率)とパルス幅との関係を示すテーブルを生成する。以下において、回路701Bは、パルス幅−エラー率テーブル生成回路701Bともよばれる。
テーブル生成回路701Bは、例えば、パルス幅情報レジスタ700B及び演算回路(読み出し回路)40に接続される。
テーブル生成回路701Bは、計算処理時、テスト工程又はBIST工程時において、OR演算回路100A及びAND演算回路100BのMTJ素子21に対する書き込みエラーのテストを実行できる。テーブル生成回路701Bは、テストの結果を用いて、テーブルを生成する。
図30は、本実施形態の演算デバイスにおける、制御回路の内部構成の一例を示す図である。
図30において、制御回路70内における、パルス幅−エラー率テーブル生成回路701Bの構成の一例が示されている。
図30に示されるように、テーブル生成回路701Bは、エラーカウンタ制御回路710、エラーカウンタ711、テーブル保持回路712、ターゲットエラー率レジスタ713及び選択回路714を含む。
エラーカウンタ制御回路710は、パルス幅とエラー率とに関するテストにおいて、エラーカウンタ711の動作を制御する。また、エラーカウンタ制御回路710は、読み出し回路(演算回路)40の動作を制御できる。
エラーカウンタ711は、ある書き込み電圧に対して設定されたパルス幅における、書き込みエラーの個数をカウントする。書き込みエラーの個数に基づいて、書き込みエラー率が計算される。エラーカウンタ711は、パルス幅と書き込みエラー率との関係を、テーブル保持回路712内に格納する。
テーブル保持回路712は、複数のパルス幅と複数の書き込みエラー率との関係を示す値を、テーブル化し、保持する。これによって、パルス幅−エラー率テーブルTBLBが、生成される。
ターゲットエラー率レジスタ713は、計算機システム(畳み込みニューラルネットワーク)に要求される書き込みエラー率のターゲット値を、保持する。例えば、ターゲット値は、ユーザから提供される。
選択回路714は、書き込みエラー率のターゲット値とテーブルTBLB内のエラー率ER,ER,・・・,ERとに基づいて、テーブルTBLA内の複数のパルス幅t,t,・・・,tの中から1つのパルス幅を選択する。
例えば、選択回路714は、テーブルTBLBのエラー率とターゲット値との比較に基づいて、ターゲット値以下のエラー率を実現可能な書き込みパルス幅の中から、最も小さいパルス幅を選択する。選択回路714は、選択されたパルス幅の情報をパルス幅情報レジスタ700Bに出力する。選択された書き込みパルス幅の情報は、パルス幅情報レジスタ700B内に格納される。
計算処理時において、レジスタ700B内の書き込みパルスの情報INF2が、ワード線ドライバ505に、供給される。これによって、レジスタ700Bの情報INF2に基づいて、書き込み電流(書き込み電圧)のパルス幅(ワード線の活性化期間)が、設定される。
尚、本実施形態における電圧情報レジスタ700A内の情報を用いた書き込み動作の制御は、第1の実施形態の例と同様であるため、ここでの説明は省略する。
以上のように、第4の実施形態の演算デバイスは、消費電力を低減できる。
(5) 第5の実施形態
図31乃至図33を参照して、第5の実施形態の演算デバイスについて、説明する。
図31は、本実施形態の演算デバイスにおける電流と書き込みエラーとの関係を示すグラフである。
図31において、グラフの横軸は、計算動作時に活性化されるワード線WLの数mWLに対応し、グラフの縦軸は、動作電流I(書き込み電流Iwr)の電流値に対応する。
図31の活性化されるワード線の本数mWLにおいて、“m”、“m”及び“m”は、m<m<mの関係を有する。
図29において、3つの書き込みエラー率ER,ER,ERに関して、活性化されるワード線の数と動作電流との関係が示されている。上述のように、3つの書き込みエラー率ER,ER,ERは、ER<ER<ERの大小関係を有する。
図31に示されるように、活性化されるワード線の本数が多くなると、書き込み電流が、複数の選択ストリングに分流する。そのため、性化されるワード線の本数の増加に伴って、1つ当たりの選択ストリングに供給される書き込み電流の電流値は、小さくなる。
その結果として、活性化されるワード線の数の増加に応じて、書き込みエラー率は上昇する傾向を有する。
このように、本実施形態において、同時に活性化されるワード線の本数の制御によって、書き込みエラー(例えば、書き込みエラー率)の許容値を考慮して、書き込み電流の電流値が、設定できる。
図32は、本実施形態の演算デバイスの構成例を示す図である。
図32に示されるように、本実施形態の演算デバイス1において、制御回路70は、レジスタ700Cを含む。
本実施形態において、レジスタ700Cは、計算処理(書き込み動作)時に同時に活性化されるワード線の本数の情報(活性化ワード線数情報ともよばれる)INF3を保持する。以下では、レジスタ700Bは、活性化ワード線数情報レジスタともよばれる。
活性化ワード線数情報INF3は、各書き込みエラー率と活性化されるワード線の本数との関係に基づく情報である。例えば、活性化ワード線数情報INF3は、ユーザの入力によって、コントローラ又はホストデバイスなどの外部デバイスから、演算デバイス1に供給される。尚、書き込みエラー率の代わりに、書き込みエラー数を用いて、活性化ワード線数情報INF3が形成されてもよい。
活性化ワード線数情報レジスタ700Cは、例えば、ビット線ドライバ502(502A,502B)及びワード線デコーダ504Xに接続される。
活性化ワード線数情報レジスタ700Cは、書き込み電圧のパルス幅に関する情報を、ワード線デコーダ504Xに提供する。
ビット線ドライバ502及びワード線デコーダ504Xは、レジスタ700C内の電圧情報INF1に基づいて、動作する。
例えば、本実施形態の演算デバイス1において、ワード線デコーダ504Xは、回路541Xを有する。回路541Xは、活性化されるワード線の本数を制御する。
図33は、本実施形態の演算デバイスにおける、制御回路の内部構成の一例を示す図である。
図33に示されるように、ワード線デコーダ504Xは、活性化ワード線数制御回路541X、アドレスデコード回路542及びゲート回路543を含む。
ワード線デコーダ504Xにおいて、アドレスデコード回路542は、複数のデコードユニットUNTを含む。各デコードユニットUNTは、NANDゲートG1とバッファG2とから構成されている。
アドレスデコード回路542は、アドレスバッファ591からのアドレスを受信する。アドレスの各ビットの値(以下では、アドレスビット値とよばれる)AB,AB,・・・,ABが、対応するデコードユニットUNTに供給されている。
アドレスビット値ABは、NANDゲートG1の一方の入力端子及びバッファG2に供給される。各NANDゲートG1の他方の入力端子は、活性化ワード線数制御回路541に接続される。
ゲート回路543は、複数のワード線駆動ゲートG3を含む。複数のデータユニットUNTからの信号が、各ワード線駆動ゲートG3に供給される。各ワード線駆動ゲートG3は、供給された信号に基づいて、対応するワード線WLを活性化する又は非活性化する。
活性化ワード線数制御回路541Xが、NANDゲートG1に“H”レベルの信号を供給する場合、NANDゲートG1は、アドレスビットAB1の反転信号を出力する。このとき、NANDG1とバッファG2はインバータとバッファとのペアとして動作し、アドレスに対応するワード線駆動ゲートG3の入力を、活性化する。
一方、活性化ワード線数制御回路541Xが、NANDゲートG1に“L”レベルの信号を供給し、アドレスビット値ABが“H”レベルである場合、そのアドレスビット値ABに対応する全てのワード線駆動ゲートG3に供給される信号が、“H”レベルになる。
すなわち、アドレスビット値ABが入力されたNANDゲートG1及びバッファG2の出力信号の両方が、“H”レベルになる。
これによって、ワード線駆動ゲートG3において、アドレスビット値ABは無視される。このため、活性化されるワード線の本数は、アドレスビット値ABが有効である場合の2倍になる。
このように、“H”レベルの信号を出力するNANDゲートG1の数が、m個である場合、活性化されるワード線の数は、2とされ得る。
これによって、活性化ワード線数情報INF3に応じた1以上のワード線が、活性化される。
それゆえ、複数のストリングSTRが、選択状態に設定される。選択状態の複数のストリングSTRに対して、書き込み電圧(書き込み電流)が供給される。
この結果として、OR演算が、OR演算回路100A内の複数のストリングSTRAに対して並列に実行される。これと同様に、AND演算が、AND演算回路100B内の複数のストリングSTRBに対して並列に実行される。
それゆえ、本実施形態の演算デバイスは、消費電力の低減とともに、計算処理の高速化を図ることができる。
以上のように、本実施形態の演算デバイスは、特性を向上できる。
(6) 第6の実施形態
図34及び図35を参照して、第6の実施形態の磁気デバイスについて、説明する。
図34は、本実施形態の演算デバイスの構成例を示す図である。
図34に示されるように、本実施形態の演算デバイス1は、テーブル生成回路701Cを、制御回路70内に含む。
テーブル生成回路701Cは、書き込みエラー率と活性化されるワード線の本数との関係を示すテーブルを生成する。以下において、回路701Cは、活性化ワード線数−エラー率テーブル生成回路701Cともよばれる。
テーブル生成回路701Cは、例えば、レジスタ700C及び読み出し回路(演算回路)40に接続される。
テーブル生成回路701Bは、計算処理時、テスト工程又はBIST工程時において、OR演算回路100A及びAND演算回路100BのMTJ素子21に対して、活性化されたワード線の本数と書き込みエラー(例えば、書き込みエラー率)との関係に関するテストを実行できる。
テーブル生成回路701Bは、テストの結果を用いて、書き込み動作の条件に関するテーブルを生成する。
図35は、本実施形態の演算デバイスにおける、制御回路の内部構成の一例を示す図である。
図35において、制御回路70内における、活性化ワード線数−エラー率テーブル生成回路701Cの構成の一例が示されている。
図35に示されるように、テーブル生成回路701Cは、エラーカウンタ制御回路710、エラーカウンタ711、テーブル保持回路712、ターゲットエラー率レジスタ713及び選択回路714を含む。
エラーカウンタ制御回路710は、活性化されたワード線の本数と書き込み電流の電流値に関するテストにおいて、エラーカウンタ711の動作を制御する。
エラーカウンタ711は、活性化されたワード線の本数における、書き込みエラーの個数をカウントする。例えば、書き込みエラーの個数に基づいて、書き込みエラー率が計算される。
エラーカウンタ711は、活性化されたワード線の本数と書き込みエラー率との関係を、テーブル保持回路712内に格納する。
テーブル保持回路712は、複数の活性化されたワード線の本数と各活性化されたワード線の本数に対応する書き込みエラー率との関係を、テーブル化し、保持する。これによって、活性化ワード線数−エラー率テーブルTBLCが、生成される。
ターゲットエラー率レジスタ713は、書き込みエラー率のターゲット値を保持する。
選択回路714は、エラー率のターゲット値とテーブルTBLC内のエラー率ER,ER,・・・,ERに基づいて、テーブルTBLC内の複数の活性化ワード線数m,m,・・・,mの中から1つを選択する。選択回路714は、選択された活性化ワード線数の情報を活性化ワード線数情報レジスタ700Cに出力する。選択された活性化ワード線数の情報は、レジスタ700C内に格納される。
尚、本実施形態における電圧情報レジスタ700A内の情報を用いた書き込み動作の制御は、第5の実施形態の例と同様であるため、ここでの説明は省略する。
本実施形態の演算デバイスは、テスト工程(又は計算動作)によって、書き込みエラー率と活性化されるワード線の本数との関係を示すテーブルを作成する。
レジスタ700C内の活性化ワード線数−エラー率情報INF3(活性化ワード線数−エラー率テーブルTBLC)に基づいて、同時に活性化されるワード線の本数が、制御される。
これによって、本実施形態の演算デバイスは、書き込みエラーの許容値を満たしつつ、計算処理時に生じる消費電力を低減できる。
以上のように、本実施形態の演算デバイスは、特性を向上できる。
(7) 適用例
図36乃至図38を参照して、本実施形態の演算デバイスの適用例について、説明する。本実施形態の演算デバイスは、計算機システムに適用される。
(7a) 例1
図36を用いて、本実施形態の演算デバイスの適用例の1つについて、説明する。
図36は、本適用例における、本実施形態の演算デバイスを含む計算機システムを示している。例えば、図36の計算機システムは、本実施形態の演算デバイスを用いて、ある計算モデルに基づく畳み込みニューラルネットワークの計算処理を実行できる。
例えば、計算機システムSYSは、画像認識などの機械学習又はディープラーニングの処理に用いられる。
本適用例の計算機システムSYSは、プロセッサ500及びメインメモリ999を含む。
プロセッサ500は、本実施形態の演算デバイス1、演算デバイス2、コントローラ7及びメモリ8を含む。例えば、これらのデバイス1,2,7,8が、1つのチップ又は1つのパッケージ基板上に設けられている。
上述の第1乃至第6の実施形態の演算デバイスの中から選択される1以上が、本適用例の計算機システムSYSに用いられる。
例えば、本実施形態の演算デバイス1は、計算機システムSYSの各種の計算処理において、入力データとウェイトデータとに関するOR演算、AND演算、及び、XNOR演算(積演算)を実行できる。
本実施形態の演算デバイス1は、レジスタ700を含む。上述の電圧情報INF1、パルス幅情報INF2及び活性化ワード線数情報INF3のうち1以上が、レジスタ700内に記憶される。演算デバイス1は、レジスタ700内の情報に基づいて設定された書き込み条件で、MTJ素子21に対する書き込み動作(計算処理)を実行する。
例えば、演算デバイス1は、レジスタ700に加えて、上述の実施形態のテーブル生成回路701(701A,701B,701C)を含み得る。
本実施形態の演算デバイス1は、計算回路100内の複数のストリングSTRによる多並列化処理によって、演算処理の高速化を実現できる。本実施形態の演算デバイス1は、例えば、ニューラルネットワークにおける積演算処理を実行する。
本実施形態の演算デバイス1は、メモリ領域(メモリデバイス)としても機能し得る。
演算デバイス2は、例えば、ニューラルネットワークにおける和演算処理、Batch Normalization演算、及び、活性化演算などのうち1以上の処理を実行する。
メモリ(例えば、バッファメモリ)8は、計算処理の途中のデータを一時的に保持する。例えば、SRAM、DRAM、及び、磁気メモリ(例えば、STT−MRAM又はVoCSM)などの中から選択される1つが、バッファメモリ8に用いられる。
コントローラ(例えば、メモリコントローラ)7は、演算デバイス1,2及びバッファメモリ8の動作を制御する。コントローラ7は、演算デバイス1,2とバッファメモリ8との間のデータの転送を制御する。
メインメモリ999は、ウェイトに関するデータ(W)、アクティベーションに関するデータ(I)、計算結果に関するデータ(出力データ)などを、記憶できる。メインメモリ99は、ウェイトに関するデータ(W)及びアクティベーションに関するデータ(I)を、本実施形態の演算デバイス1を含むプロセッサ500に提供する。メインメモリ999は、プロセッサ500からのデータ(計算結果)を受信する。
メインメモリ999は、例えば、DRAMである。
本適用例の計算機システムSYS内において、上述の本実施形態の演算デバイスの動作例のように、入力データ及びウェイトデータに関するOR演算、AND演算及びXNOR演算などを含む計算処理が実行される。
これによって、本適用例の計算機システムSYSは、所望の計算結果を得ることができる。
本実施形態の演算デバイスを含む計算機システムSYSは、ニューラルネットワークにおいて、積和演算処理を実行する。
例えば、本適用例の計算機システムSYSは、畳み込みニューラルネットワークを用いた画像処理を行う画像認識装置に適用され得る。例えば、本適用例の計算機システムSYSを含む画像認識装置は、デジタルカメラ、監視カメラ、携帯端末、スマートフォン、車載カメラ、パーソナルコンピュータ、液晶ディスプレイなどに搭載され得る。
本適用例の計算機システムSYSにおいて、実施形態の演算デバイス1は、書き込みエラー(例えば、書き込みエラー率又は書き込みエラー数)と書き込み条件との関係を示す情報を、レジスタ700内に保持する。
本適用例の計算機システムSYSは、演算デバイス1内の情報を用いて、ある計算モデルのニューラルネットワークにおいて許容される書き込みエラーの範囲に応じて、MTJ素子に対する書き込み動作(計算処理)の条件を、設定できる。本適用例の計算機システムSYSにおいて、本実施形態の演算デバイスは、設定された書き込み条件によって、導電層上のMTJ素子に対する書き込み動作(計算処理、例えば、OR演算及び/又はAND演算)を、実行できる。
例えば、本適用例の計算機システムSYSにおいて、書き込みエラー率の許容範囲内で、計算処理に用いられるMTJ素子に対する書き込み電流の電流値を低減できる。
また、本適用例の計算機システムSYSは、計算の並列化処理(同時処理)によって、計算処理の高速化を図ることができる。
これによって、本適用例の計算機システムSYSは、特性を向上できる。
(7b) 例2
図37を参照して、本適用例の計算機システムについて、説明する。
図37は、実施形態の演算デバイスを含む計算機システムの構成の一例を示す図である。
図37に示されるように、計算機システムSYSにおいて、複数の本実施形態の演算デバイス1が、1つのレジスタ700Xを共有してもよい。
これによって、本適用例の計算機システムSYSは、システムSYS内におけるレジスタの数(面積)を削減できる。
したがって、本適用例の計算機システムは、システムの面積を小さくできる。
(7c) 例3
図38を参照して、本適用例の計算機システムについて、説明する。
図38は、実施形態の演算デバイスを含む計算機システムの構成の一例を示す図である。
図38に示されるように、1以上の本実施形態の演算デバイス1を含む複数のグループGPが、計算機システムSYS内に設けられてもよい。レジスタ700が、各グループGP内に設けられている。レジスタ700は、グループGP内の複数の演算デバイス1によって、共有される。
レジスタ700内に格納される情報INFは、グループGPごとに異なってもよい。
これによって、本適用例において、複数のグループGPが、異なる書き込み条件で、異なる種類の畳み込みニューラルネッワークに基づく処理を、並列に実行できる。
本適用例の計算機システムSYSは、システムのパフォーマンス能力の向上とシステムの面積の小規模化とを両立できる。
(7d) まとめ
実施形態の演算デバイスは、計算機システムに適用できる。
実施形態の演算デバイスを含む計算機システムは、計算処理(例えば、積和演算処理)を高速化できる。
実施形態の演算デバイスを含む計算機システムは、ニューラルネットワークの特性に応じた条件で、計算処理を実行できる。これによって、本実施形態の演算デバイスを含む計算機システムは、消費電力を低減できる。
以上のように、実施形態の演算デバイスを含む計算機システムは、計算機システムの特性を向上できる。
(8) その他
実施形態の演算デバイスは、以下の態様を取り得る。
(態様1)
実施形態の演算デバイスにおいて、磁気抵抗効果素子は、導電層上の記憶層と、記憶層の上方の参照層と、記憶層と参照層との間の非磁性層とを含む。
(態様2)
実施形態の演算デバイスにおいて、第1の計算回路は、第1のデータと第2のデータとの論理和演算を実行し、第2の計算回路は、第1のデータと第2のデータとの論理積演算を実行し、第3の計算回路は、論理和演算の結果と論理積演算の結果を用いて、第1のデータと第2のデータとの積演算を実行する。
(態様3)
実施形態の演算デバイスにおいて、第3の計算回路は、第1及び第2のデータの論理和演算の結果と第1及び第2のデータの論理積演算の結果との比較によって、第1のデータと第2のデータとの積演算と等価な結果を得る。
(態様4)
実施形態の演算デバイスにおいて、制御回路は、第1及び第2の磁気抵抗効果素子に対する第1のデータの書き込みの後、第1の方向に流れる第1の書き込み電流を第1の導電層に供給し、第1及び第2のデータの論理和演算を実行し、第1の方向と異なる第2の方向に流れる第2の書き込み電流を第2の導電層に供給し、第1及び第2のデータの論理積演算を実行する。
(態様5)
実施形態の演算デバイスは、書き込みエラーは、書き込みエラー率又は書き込み回数で示される。
(態様6)
実施形態の演算デバイスは、第1の導電層上に設けられた第1の磁気抵抗効果素子を含む第1の計算回路と、第2の導電層上に設けられた第2の磁気抵抗効果素子を含む第2の計算回路と、第1の計算回路からの第1の信号と第2の計算回路からの第2の信号とを用いた計算処理を実行する第3の計算回路と、第1乃至第3の計算回路を制御する制御回路と、を備え、制御回路は、第1及び第2の磁気抵抗効果素子の少なくとも一方の書き込みエラーに関する情報に基づいて、第1及び第2の磁気抵抗効果素子の少なくとも一方に対する書き込み動作の条件を設定する。
(態様7)
実施形態の演算デバイスは、第1の導電層上に設けられた第1の磁気抵抗効果素子を含む第1の計算回路と、第2の導電層上に設けられた第2の磁気抵抗効果素子を含む第2の計算回路と、第1の計算回路からの第1の信号と前記第2の計算回路からの第2の信号とを用いた計算処理を実行する第3の計算回路と、第1及び第2の磁気抵抗効果素子の書き込みエラーと第1及び第2の磁気抵抗効果素子に対する書き込み動作の条件とに関する情報を保持するレジスタと、情報に基づいて、第1及び第2の磁気抵抗効果素子に対する書き込み動作を制御する制御回路と、を備える。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…演算デバイス、10…計算素子、20…導電層、21…磁気抵抗効果素子、100A,100B,40…計算回路、400…センスアンプ、70…制御回路、700…レジスタ、SYS…計算機システム。

Claims (8)

  1. 第1の導電層上に設けられた1以上の第1の磁気抵抗効果素子をそれぞれ有する複数の第1のストリングを含む第1の計算回路と、
    第2の導電層上に設けられた1以上の第2の磁気抵抗効果素子をそれぞれ有する複数の第2のストリングを含む第2の計算回路と、
    前記第1の計算回路からの第1の信号と前記第2の計算回路からの第2の信号とを用いた計算処理を実行する第3の計算回路と、
    前記複数の第1のストリングの対応する1つにそれぞれ接続される複数の第1のワード線と、
    前記複数の第2のストリングの対応する1つにそれぞれ接続される複数の第2のワード線と、
    前記第1乃至前記第3の計算回路を制御する制御回路と、
    を具備し、
    前記制御回路は、前記第1及び第2の磁気抵抗効果素子の少なくとも一方の書き込みエラーに関する情報に基づいて、前記第1及び第2の磁気抵抗効果素子の少なくとも一方に対する書き込み動作の条件を複数の条件の中から設定し、
    前記複数の条件の中から設定された第1の条件は、活性化される第1のワード線の数及び活性化される第2のワード線の数の少なくとも一方である、
    演算デバイス。
  2. 前記第1の導電層に第1の方向に流れる第1の書き込み電流を供給する第1のドライバと、
    前記第2の導電層に前記第1の方向と異なる第2の方向に流れる第2の書き込み電流を供給する第2のドライバと、
    をさらに具備し、
    前記複数の条件に含まれる第2の条件は、前記第1及び第2の書き込み電流の少なくとも一方を生成するための電圧値であり、
    前記第1及び第2の書き込み電流の少なくとも一方は、前記書き込みエラーに基づいて複数の電圧値の中から選択された1つの電圧値を用いて生成される、
    請求項1に記載の演算デバイス。
  3. 前記第1の導電層に第1の方向に流れる第1の書き込み電流を供給する第1のドライバと、
    前記第2の導電層に前記第1の方向と異なる第2の方向に流れる第2の書き込み電流を供給する第2のドライバと、
    をさらに具備し、
    前記複数の条件に含まれる第3の条件は、前記第1及び第2の書き込み電流の少なくとも一方のパルス幅であり、
    前記第1及び第2の書き込み電流の少なくとも一方のパルス幅は、前記書き込みエラーに基づいて複数のパルス幅の中から選択された1つのパルス幅に設定される、
    請求項1に記載の演算デバイス。
  4. 前記制御回路は、前記第1及び第2の磁気抵抗効果素子の少なくとも一方に対するテスト動作を実行し、前記書き込みエラーと前記複数の条件のそれぞれとに関するテーブルを生成する、
    請求項1乃至のうちいずれか1項に記載の演算デバイス。
  5. 第1の導電層上に設けられた1以上の第1の磁気抵抗効果素子をそれぞれ有する複数の第1のストリングを含む第1の計算回路と、
    第2の導電層上に設けられた1以上の第2の磁気抵抗効果素子をそれぞれ有する複数の第2のストリングを含む第2の計算回路と、
    前記第1の計算回路からの第1の信号と前記第2の計算回路からの第2の信号とを用いた計算処理を実行する第3の計算回路と、
    前記複数の第1のストリングの対応する1つにそれぞれ接続される複数の第1のワード線と、
    前記複数の第2のストリングの対応する1つにそれぞれ接続される複数の第2のワード線と、
    前記第1及び第2の磁気抵抗効果素子の書き込みエラーと前記第1及び第2の磁気抵抗効果素子に対する書き込み動作の複数の条件のそれぞれとに関する情報を保持するデータ保持回路と、
    前記情報に基づいて、前記第1及び第2の磁気抵抗効果素子に対する書き込み動作を制御する制御回路と、
    を具備し、
    前記複数の条件のうち第1の条件は、活性化される第1のワード線の数及び活性化される第2のワード線の数の少なくとも一方である、
    演算デバイス。
  6. 前記第1の導電層に第1の方向に流れる第1の書き込み電流を供給する第1のドライバと、
    前記第2の導電層に前記第1の方向と異なる第2の方向に流れる第2の書き込み電流を供給する第2のドライバと、
    をさらに具備し、
    前記複数の条件のうち第2の条件は、前記第1及び第2の書き込み電流の少なくとも一方を生成するための電圧値であり、
    前記第1及び第2の書き込み電流の少なくとも一方は、前記書き込みエラーに基づいて複数の電圧値の中から選択された1つの電圧値を用いて生成される、
    請求項に記載の演算デバイス。
  7. 前記第1の導電層に第1の方向に流れる第1の書き込み電流を供給する第1のドライバと、
    前記第2の導電層に前記第1の方向と異なる第2の方向に流れる第2の書き込み電流を供給する第2のドライバと、
    をさらに具備し、
    前記複数の条件のうち第3の条件は、前記第1及び第2の書き込み電流の少なくとも一方のパルス幅であり、
    前記第1及び第2の書き込み電流の少なくとも一方のパルス幅は、前記書き込みエラーに基づいて複数のパルス幅の中から選択された1つのパルス幅に設定される、
    請求項に記載の演算デバイス。
  8. 前記第1及び第2の磁気抵抗効果素子の少なくとも一方に対するテスト動作を実行し、前記書き込みエラーと前記複数の条件のそれぞれとに関するテーブルを生成するテーブル生成回路を、
    さらに具備する、請求項5乃至7のうちいずれか1項に記載の演算デバイス。
JP2019014355A 2019-01-30 2019-01-30 演算デバイス Active JP6989541B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019014355A JP6989541B2 (ja) 2019-01-30 2019-01-30 演算デバイス
US16/724,800 US11481191B2 (en) 2019-01-30 2019-12-23 Arithmetic device having magnetoresistive effect elements

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019014355A JP6989541B2 (ja) 2019-01-30 2019-01-30 演算デバイス

Publications (2)

Publication Number Publication Date
JP2020123414A JP2020123414A (ja) 2020-08-13
JP6989541B2 true JP6989541B2 (ja) 2022-01-05

Family

ID=71731277

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019014355A Active JP6989541B2 (ja) 2019-01-30 2019-01-30 演算デバイス

Country Status (2)

Country Link
US (1) US11481191B2 (ja)
JP (1) JP6989541B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11586906B2 (en) * 2018-12-17 2023-02-21 Integrated Silicon Solution, (Cayman) Inc. System and method for training artificial neural networks
EP3671749B1 (en) * 2018-12-20 2021-08-11 IMEC vzw Stt-assisted sot-mram bit cell
US11574194B2 (en) * 2019-03-27 2023-02-07 Integrated Silicon Solution, (Cayman) Inc. System and method for training neural networks with errors
US11101320B2 (en) * 2019-10-22 2021-08-24 Samsung Electronics Co., Ltd System and method for efficient enhancement of an on/off ratio of a bitcell based on 3T2R binary weight cell with spin orbit torque MJTs (SOT-MTJs)
CN114730832A (zh) * 2020-08-27 2022-07-08 西部数据技术公司 多铁辅助电压控制磁各向异性存储器设备及其制造方法
US11276446B1 (en) 2020-08-27 2022-03-15 Western Digital Technologies, Inc. Multiferroic-assisted voltage controlled magnetic anisotropy memory device and methods of manufacturing the same
US11264562B1 (en) 2020-08-27 2022-03-01 Western Digital Technologies, Inc. Multiferroic-assisted voltage controlled magnetic anisotropy memory device and methods of manufacturing the same
US11605427B2 (en) 2021-01-04 2023-03-14 Taiwan Semiconductor Manufacturing Company Ltd. Memory device with write pulse trimming
CN113450851B (zh) * 2021-03-08 2022-08-12 北京航空航天大学 多比特存储单元、模数转换器、设备及方法
US11521665B2 (en) * 2021-05-04 2022-12-06 Nxp Usa, Inc. Non-volatile memory having write detect circuitry

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3353786B2 (ja) * 1990-01-24 2002-12-03 株式会社日立製作所 情報処理装置
JPH04305744A (ja) * 1991-01-22 1992-10-28 Toshiba Corp 論理演算装置
US7379327B2 (en) * 2006-06-26 2008-05-27 Grandis, Inc. Current driven switching of magnetic storage cells utilizing spin transfer and magnetic memories using such cells having enhanced read and write margins
JP5365813B2 (ja) * 2009-01-28 2013-12-11 日本電気株式会社 不揮発ロジック回路
US9679664B2 (en) * 2012-02-11 2017-06-13 Samsung Electronics Co., Ltd. Method and system for providing a smart memory architecture
JP6008633B2 (ja) 2012-07-23 2016-10-19 富士機械製造株式会社 部品実装システム
JP6364365B2 (ja) 2015-02-25 2018-07-25 株式会社東芝 半導体記憶装置
JP6271655B1 (ja) * 2016-08-05 2018-01-31 株式会社東芝 不揮発性メモリ
US10224368B2 (en) * 2017-06-30 2019-03-05 Qualcomm Incorporated Voltage-switched magneto-resistive random access memory (MRAM) employing separate read operation circuit paths from a shared spin torque write operation circuit path
JP6416421B1 (ja) 2017-09-21 2018-10-31 株式会社東芝 磁気メモリ
JP6545853B1 (ja) 2018-03-20 2019-07-17 株式会社東芝 磁気デバイス
JP6913656B2 (ja) 2018-06-14 2021-08-04 株式会社東芝 演算装置

Also Published As

Publication number Publication date
JP2020123414A (ja) 2020-08-13
US11481191B2 (en) 2022-10-25
US20200241840A1 (en) 2020-07-30

Similar Documents

Publication Publication Date Title
JP6989541B2 (ja) 演算デバイス
KR102131812B1 (ko) 소스라인 플로팅 회로, 이를 포함하는 메모리 장치 및 메모리 장치의 독출 방법
US20170062035A1 (en) Memory device including boosted voltage generator
JP6829831B2 (ja) 抵抗変化型メモリ
US9245609B2 (en) Semiconductor storage device
US9502106B2 (en) Semiconductor memory device and method of controlling semiconductor memory device
JP5603895B2 (ja) 半導体記憶装置の駆動方法および半導体記憶装置
US10192604B2 (en) Semiconductor memory device
JP4388889B2 (ja) プレチャージ回路を有するメモリおよびそのプレチャージ方法
KR20120010052A (ko) 이퀄라이징 기능을 갖는 저항성 메모리 및 이를 포함하는 3차원 반도체 장치
JP6416421B1 (ja) 磁気メモリ
JP2010040123A (ja) 半導体装置
US8203894B2 (en) Current cancellation for non-volatile memory
JP6937278B2 (ja) 磁気メモリ及びメモリシステム
JP4131923B2 (ja) 磁気ランダムアクセスメモリ
JP5331998B2 (ja) 不揮発性半導体記憶装置
JP2017037691A (ja) 不揮発性半導体メモリ
US20240062795A1 (en) Memory device configured to generate read current based on size of memory cell and value of read current actually applied to memory cell
JP2022136786A (ja) 不揮発性記憶装置
JP5137390B2 (ja) 不揮発性記憶装置
KR20230020793A (ko) 비휘발성 메모리 장치
JP2013206493A (ja) 半導体記憶装置およびその駆動方法
JP2009134794A (ja) 半導体装置
JP2012133849A (ja) 半導体記憶装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200907

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210721

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210824

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211014

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211102

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211202

R151 Written notification of patent or utility model registration

Ref document number: 6989541

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151