JP7034984B2 - 演算装置 - Google Patents

演算装置 Download PDF

Info

Publication number
JP7034984B2
JP7034984B2 JP2019101692A JP2019101692A JP7034984B2 JP 7034984 B2 JP7034984 B2 JP 7034984B2 JP 2019101692 A JP2019101692 A JP 2019101692A JP 2019101692 A JP2019101692 A JP 2019101692A JP 7034984 B2 JP7034984 B2 JP 7034984B2
Authority
JP
Japan
Prior art keywords
voltage
current
memristor
input
value
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
JP2019101692A
Other languages
English (en)
Other versions
JP2020197761A (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 JP2019101692A priority Critical patent/JP7034984B2/ja
Priority to US16/801,252 priority patent/US11150873B2/en
Publication of JP2020197761A publication Critical patent/JP2020197761A/ja
Application granted granted Critical
Publication of JP7034984B2 publication Critical patent/JP7034984B2/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/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • 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/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • 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/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/556Logarithmic or exponential functions
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/004Reading or sensing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4818Threshold devices
    • G06F2207/4824Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4828Negative resistance devices, e.g. tunnel diodes, gunn effect devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0007Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising metal oxide memory material, e.g. perovskites
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/10Resistive cells; Technology aspects
    • G11C2213/15Current-voltage curve
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/50Resistive cell structure aspects
    • G11C2213/54Structure including a tunneling barrier layer, the memory effect implying the modification of tunnel barrier conductivity

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Neurology (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Complex Calculations (AREA)
  • Amplifiers (AREA)

Description

本発明の実施形態は、演算装置に関する。
メモリスタと呼ばれる可変抵抗素子が知られている。メモリスタは、入力値に相当する入力電圧が印加された場合、コンダクタンスと入力電圧とを乗算した値に比例する電流を流すことができる。従って、メモリスタは、アナログ演算装置に含まれる乗算器として機能することができる。
メモリスタは、コンダクタンスを低くすることができる。従って、メモリスタを乗算器として用いたアナログ演算装置は、非常に小さい入力電圧をメモリスタに印加することができる。これにより、メモリスタを乗算器として用いたアナログ演算装置は、低い消費電力で演算を実行することができる。
近年、ハードウェアで実現されたニューラルネットワークが提案されている。ニューラルネットワークは、多数の積和演算装置を備える。このため、ハードウェアで実現されたニューラルネットワークは、メモリスタを乗算器として用いたアナログ積和演算装置を備えることにより、低い消費電力で演算を実行することができる。
ところで、メモリスタは、トンネリング素子である。このため、メモリスタは、電圧-電流特性が非線形となる。すなわち、メモリスタは、乗算時において、印加された電圧によってコンダクタンスが変化する。従って、メモリスタを乗算器として用いたアナログ演算装置は、出力値の誤差が大きくなってしまっていた。
M.Prezioso1, F. Merrikh-Bayat1, B. D. Hoskins1, G. C. Adam1, K.K.Likharev and D.B.Strukov, "Training andoperation of an integrated neuromorphicnetwork based on metal-oxide memristors", Nature volume 521, pages 61-64, 7 May 2015
本発明が解決しようとする課題は、低い消費電力で精度良く演算を実行することができる演算装置を提供することにある。
実施形態に係る演算装置は、重み値と入力値とを乗算した乗算値を出力する。前記演算装置は、メモリスタと、対数変換回路と、電流電圧変換回路と、を備える。前記メモリスタは、電圧-電流特性を変更可能な素子であり、前記重み値に応じた電圧-電流特性に予め設定される。前記対数変換回路は、自然対数関数に予め設定された係数を乗じた対数変換関数に従って前記入力値に応じた入力電圧を対数変換した中間電圧を、前記メモリスタに印加する。前記電流電圧変換回路は、予め設定された線形関数に従って前記メモリスタに流れる電流を電流電圧変換した出力電圧を、前記乗算値として出力する。
メモリスタを示す図。 FTJ素子に流れる電流を示す図。 (A)は図2の拡大図、(B)は書込パルスおよび読出パルスを示す図。 WKB近似曲線を示す図。 WKB近似曲線およびフィッティング曲線を示す図。 コンダクタンスパラメータを示す図。 素子パラメータを示す図。 実測されたFTJ素子の電圧-電流特性図。 図8の一部を拡大した図。 実測されたFTJ素子のコンダクタンスパラメータを示す図。 実測されたFTJ素子の電素子パラメータを示す図。 第1実施形態に係る演算装置の構成図。 正規化された乗算を実行する演算装置の構成図。 対数変換回路および電流電圧変換回路の回路構成図。 図14に示す演算装置に対するパラメータの設定例を示す図。 対数変換回路の入出力電圧特性のシミュレーション結果等を示す図。 演算装置の入出力電圧特性のシミュレーション結果を示す図。 第2実施形態に係る積和演算装置の構成図。 第3実施形態に係る行列演算装置の構成図。 変形例に係る対数変換回路を示す図。 変形例に係る対数変換回路の入出力特性図。
以下に説明する各実施形態は、メモリスタ20をアナログ乗算器として、低消費電力で精度の良いアナログ演算を実行する。例えば、第1実施形態は、メモリスタ20を用いて乗算を実行する。第2実施形態は、複数のメモリスタ20を用いて積和演算処理を実行する。第3実施形態は、複数のメモリスタ20を用いて行列演算を実行する。各実施形態の説明に先だって、発明者が見出したメモリスタ20の特徴を説明する。
(前提)
図1は、メモリスタ20を示す図である。メモリスタ20は、電圧-電流特性(I-Vカーブ)を変更可能であり、電圧-電流特性を保持(記憶)することが可能な可変抵抗素子である。
メモリスタ20は、電荷または正孔をトンネル効果により通過させるトンネリング素子である。本実施形態において、メモリスタ20は、強誘電体を含む材料をトンネル絶縁膜として有する強誘電体トンネル接合素子(FTJ素子)である。強誘電体は、例えば、二酸化ハフニウムである。なお、メモリスタ20は、FTJ素子に限らず、他の材料により構成されたトンネリング素子であってもよい。
メモリスタ20は、所定電圧を印加した場合のコンダクタンス(抵抗値)を不揮発記憶することができる。メモリスタ20は、自己整流性を有する。すなわち、メモリスタ20は、入力端子から出力端子へ向かう順方向に電圧が印加された場合に順方向へ電流を流し、逆方向に電圧が印加された場合、逆方向に電流を流さない。
図2は、コンダクタンスを変化させるための書込期間(WRITE0~WRITE7)、および、電圧-電流特性の測定のための読出期間(I-V0~I-V7)を交互に繰り返した場合における、メモリスタ20に流れる電流を示す図である。図3の(A)は、図2の7回目の書込期間および読出期間を拡大した図である。図3の(B)は、図2の7回目の書込期間および7回目の読出期間の書込パルスの電圧および読出パルスの電圧を示す図である。
1回目から7回目までの書込期間(WRITE0~WRITE7)のそれぞれは、FTJ素子に対して、書込パルスと読出パルスを交互に所定回印加した場合における、読出パルスの印加時にFTJ素子に流れた電流を示す。FTJ素子は、メモリスタ20の一例である。この例において、閾値電圧は、3.25ボルトである。この例において、書込パルスは、閾値電圧より高い5ボルト、2マイクロ秒の時間幅のパルスである。書込期間において印加した読出パルスは、閾値電圧より低い3ボルト、50ミリ秒の時間幅のパルスである。
1回目から7回目までの読出期間(I-V0~I-V7)のそれぞれは、FTJ素子に対して、0ボルトから線形に増加する複数の読出パルスを印加した場合における、FTJ素子に流れた電流を示す。読出期間において印加した複数の読出パルスのそれぞれは、50ミリ秒の時間幅のパルスである。また、読出期間において印加した複数の読出パルスの全ては、閾値電圧より低い。
1回目から7回目までの読出期間(I-V0~I-V7)に示されるように、閾値電圧より低い読出電圧範囲の電圧が印加された場合における、メモリスタ20の電圧-電流特性は、非線形である。
1回目から7回目までの書込期間(WRITE0~WRITE7)のそれぞれに示されるように、閾値電圧以上の電圧が印加された場合、メモリスタ20は、電圧-電流特性が変化する。具体的には、メモリスタ20は、印加された時間幅(電荷量)に応じて、コンダクタンスが高くなる方向に、電圧-電流特性が変化する。また、閾値電圧より低い電圧が印加された場合、メモリスタ20は、電圧-電流特性が変化しない。
図4は、メモリスタ20の電圧読出範囲における電圧-電流特性を近似したWKB近似曲線を示す図である。図4は、縦軸が電流を表し、横軸が電圧を表す。図4は、縦軸が対数目盛である。
メモリスタ20は、トンネリング素子である。従って、読出電圧範囲の電圧(閾値電圧より低い電圧)が印加された場合における、メモリスタ20の電圧-電流特性は、Wentzel-Kramers-Brillouin近似(WKB近似)に基づき、式(1)のように表される。
I=A(V+BV)…(1)
Iは、メモリスタ20に流れる電流である。Vは、メモリスタ20を横断する電圧である。
Aは、メモリスタ20におけるトンネル絶縁層に依存する定数である。従って、Aは、トンネル絶縁層に通過する電荷量に応じて変化する。
Bは、メモリスタ20のデバイス素材に依存する定数である。従って、Bは、トンネル絶縁層に通過する電荷量に関わらず一定である。
なお、図4の(a)は、A=1e-5,B=1000のWKB近似曲線を示す。(b)は、A=5.62e-6,B=1000のWKB近似曲線を示す。(c)は、A=3.16e-6,B=1000のWKB近似曲線を示す。(d)は、A=1.77e-6,B=1000のWKB近似曲線を示す。(e)は、A=1e-6,B=1000のWKB近似曲線を示す。
図5は、WKB近似曲線、および、WKB近似曲線のフィッティング領域に対してフィッティングさせた自然指数関数を表すフィッティング曲線を示す図である。なお、図5は、縦軸が電流を表し、横軸が電圧を表す。さらに、図5は、縦軸が対数目盛である。
発明者は、メモリスタ20における読出電圧範囲のうちの高電圧側の部分領域の電圧-電流特性を、式(2)に示す自然指数関数により、非常に少ない誤差でフィッティングできることを見出した。
I=aebV…(2)
なお、aおよびbは、フィッティングにより抽出される定数である。aをコンダクタンスパラメータと呼ぶ。bを素子パラメータと呼ぶ。eは、オイラー数(ネイピア数)である。
一般的に、フィッティングとは、曲線を表す関数を見つけ出す処理である。本実施形態において、フィッティングは、メモリスタ20の読出電圧範囲における部分領域の電圧-電流特性に対して、最も誤差が小さくなるようなコンダクタンスパラメータaおよび素子パラメータbを含む自然指数関数を見つけ出す処理である。
さらに、発明者は、WKB近似曲線において、トンネル絶縁層に依存する定数(A)が変化しても、フィッティングされた自然指数関数に含まれる素子パラメータbが一定となる(ばらつきが所定値以下となる)部分領域が存在することを見出した。つまり、発明者は、メモリスタ20における読出電圧範囲の高電圧側に、メモリスタ20の状態の変化(電圧-電流特性の変化)に関わらず、フィッティングされた自然指数関数に含まれる素子パラメータbが一定となる部分領域が存在することを見出した。
例えば、図5の(a)は、A=1e-5,B=1000のWKB近似曲線の2ボルト以上3ボルト以下の範囲に対してフィッティングさせた自然指数関数を表すフィッティング曲線である。(a)は、a=8.34e-3,b=1.165の自然指数関数を表す。
図5の(b)は、A=5.62e-6,B=1000のWKB近似曲線の2ボルト以上3ボルト以下の範囲に対してフィッティングさせた自然指数関数を表すフィッティング曲線である。(b)は、a=4.69e-3,b=1.165の自然指数関数を表す。
図5の(c)は、A=3.16e-6,B=1000のWKB近似曲線の2ボルト以上3ボルト以下の範囲に対してフィッティングさせた自然指数関数を表すフィッティング曲線である。(c)はa=2.64e-3,b=1.165の自然指数関数を表す。
図5の(d)は、A=1.77e-6,B=1000のWKB近似曲線の2ボルト以上3ボルト以下の範囲に対してフィッティングさせた自然指数関数を表すフィッティング曲線である。(d)は、a=1.48e-3,b=1.165の自然指数関数を表す。
図5の(e)は、A=1e-6,B=1000のWKB近似曲線の2ボルト以上3ボルト以下の範囲に対してフィッティングさせた自然指数関数を表すフィッティング曲線である。(e)は、a=8.34e-4,b=1.165の自然指数関数を表す。
このように、例えば、図5に示した5本のWKB近似曲線の場合、2ボルト以上3ボルト以下の範囲が、電圧-電流特性の変化(メモリスタ20の状態の変化)に関わらず、フィッティングした自然指数関数に含まれる素子パラメータbが全て同一となる部分領域である。
このような、メモリスタ20における読出電圧範囲のうちの高電圧側の一部の領域を、フィッティング領域と呼ぶ。すなわち、フィッティング領域は、メモリスタ20における読出電圧範囲における電圧-電流特性のうちの、電圧-電流特性の変化(メモリスタ20の状態の変化)に関わらず、フィッティングされた自然指数関数に含まれる素子パラメータbが一定となる部分領域である。なお、VREADは、フィッティング領域に含まれる任意の電圧である。図5の例において、VREADは、3ボルトである。
図6は、図5のWKB近似曲線に基づき算出された、メモリスタ20に印加する電圧をVREADで固定した場合における、電流に対するコンダクタンスパラメータaを示す図である。図6に示すように、メモリスタ20に対して印加する電圧を固定した場合において、コンダクタンスパラメータaは、電流に対して線形に変化する。コンダクタンスパラメータaは、式(3)に示す関数に従って変化する。
a=IREAD×s+c…(3)
READは、フィッティング領域内の任意の電圧(VREAD)を印加した場合におけるメモリスタ20に流れる電流である。IREADは、WKB近似曲線のAに比例する。すなわち、IREADは、メモリスタ20の状態(すなわち、メモリスタ20に設定される電圧-電流特性)に応じて変化する。IREAD_1は、フィッティング領域の最大の電流である。
sおよびcは、定数である。図5に示した5本のWKB近似曲線の場合、sは、0.031となり、cは、2.1e-11となる。
以上から、重み値に応じたコンダクタンスパラメータaとなるようにメモリスタ20の状態(メモリスタ20の電圧-電流特性)を設定することにより、メモリスタ20は、入力値に応じた電圧が印加された場合において、重み値と入力値とを乗じた値に応じた電流を流すことができる。
図7は、図5のWKB近似曲線に基づき算出された、メモリスタ20に印加する電圧をVREADで固定した場合における、電流に対する素子パラメータbを示す図である。図7に示すように、メモリスタ20に対して印加する電圧を固定した場合、素子パラメータbは、電流に対してほぼ一定である。すなわち、素子パラメータbは、メモリスタ20の状態(すなわち、メモリスタ20に設定される電圧-電流特性)に関わらず一定である。例えば、図5に示した5本のWKB近似曲線の場合、bの標準偏差σは、2e-10である。すなわち、bは、非常に小さなバラつきであり、ほぼ一定である。
以上から、フィッティングされた自然指数関数の逆関数により入力電圧を補正した電圧をメモリスタ20に印加することにより、メモリスタ20は、入力電圧に対してほぼ線形の関係を有する電流を流すことができる。
図8は、FTJ素子において実測された電圧-電流特性を示す図である。図9は、図8の一部を拡大した図である。メモリスタ20の一例であるFTJ素子の電圧-電流特性を測定したところ、図8および図9に示すような測定結果が得られた。
図10は、実測されたFTJ素子の電圧-電流特性に基づき算出された、FTJ素子に印加する電圧を2.5ボルトで固定した場合における、FTJ素子に流れる電流に対するコンダクタンスパラメータaを示す図である。図10に示すように、FTJ素子を測定することにより得られたコンダクタンスパラメータaは、FTJ素子に印加する電圧をVREAD(2.5ボルト)で固定した場合、電流に対してほぼ直線的に変化した。従って、重み値に応じたコンダクタンスパラメータaとなるようにFTJ素子の状態(FTJ素子の電圧-電流特性)を設定することにより、FTJ素子は、入力値に応じた電圧が印加された場合において、重み値と入力値とを乗じた値に応じた電流を流すことができる。
図11は、実測されたFTJ素子の電圧-電流特性に基づき算出された、FTJ素子に印加する電圧を2.5ボルトで固定した場合における、FTJ素子に流れる電流に対する素子パラメータbを示す図である。図11に示すように、FTJ素子を測定することにより得られた素子パラメータbは、FTJ素子に印加する電圧をVREAD(2.5ボルト)で固定した場合、電流に対してほぼ一定であった。以上から、フィッティングされた自然指数関数の逆関数により入力電圧を補正した電圧をFTJ素子に印加することにより、FTJ素子は、入力電圧に対してほぼ線形の関係を有する電流を流すことができる。
(第1実施形態)
つぎに、第1実施形態について説明する。
図12は、第1実施形態に係る演算装置10の構成を示す図である。第1実施形態に係る演算装置10は、重み値と入力値とを乗算した乗算値を出力する。重み値、入力値および乗算値は、0以上のアナログ値(連続値)である。また、重み値および入力値の何れか一方または両方は、2値であってもよい。
演算装置10は、メモリスタ20と、設定部22と、対数変換回路24と、電流電圧変換回路26とを備える。
メモリスタ20は、設計時、製造時またはキャリブレーション時等において、読出電圧範囲における電圧-電流特性が測定される。また、メモリスタ20は、電圧-電流特性を変化させた複数の状態のそれぞれにおいて、電圧-電流特性が測定される。
そして、メモリスタ20は、フィッティング領域における電圧-電流特性に対して自然指数関数がフィッティングされ、コンダクタンスパラメータaおよび素子パラメータbが抽出される。さらに、メモリスタ20は、電圧-電流特性を変化させた複数の状態のそれぞれにおけるコンダクタンスパラメータaに基づき、式(3)で示したコンダクタンスパラメータaを表す関数が算出される。
設定部22は、演算に先だって、重み値に応じた電圧-電流特性をメモリスタ20に設定する。より詳しくは、設定部22は、外部の装置から、重み値を受け取り、受け取った重み値に応じたコンダクタンスパラメータaを算出する。設定部22は、重み値とコンダクタンスパラメータaとの対応関係を表す対応情報に基づき、コンダクタンスパラメータaを算出する。対応情報は、例えば、フィッティングにより抽出されたコンダクタンスパラメータaを表す関数に基づき生成される。対応情報は、例えば、重み値とコンダクタンスパラメータaとの関係を表す演算式であってもよいし、テーブルであってもよい。
そして、設定部22は、メモリスタ20を、算出したコンダクタンスパラメータaに応じた電圧-電流特性に変更する。例えば、設定部22は、メモリスタ20に所定のリセット電圧を印加した後、コンダクタンスパラメータaに対応する数の書込パルスをメモリスタ20に印加する。これにより、設定部22は、重み値に応じた電圧-電流特性にメモリスタ20を設定することができる。
対数変換回路24は、入力値に応じた入力電圧を受け取る。なお、入力値と入力電圧との対応関係は予め定められている。そして、対数変換回路24は、自然対数関数に予め設定された係数を乗じた対数変換関数に従って、入力値に応じた入力電圧を対数変換した中間電圧を発生する。
対数変換回路24は、設計時、製造時またはキャリブレーション時等において、対数変換関数が設定される。対数変換回路24は、例えば、抵抗素子、ダイオード素子、演算増幅器および反転増幅器等を含むアナログ回路により実現される。
対数変換関数における、自然対数関数に乗じられる係数は、メモリスタ20の読出電圧範囲のうちの高電圧側の一部の領域であるフィッティング領域の電圧-電流特性に対してフィッティングされた自然指数関数に含まれる、電圧を表す変数に乗じられる素子パラメータbに基づく値である。より具体的には、係数は、素子パラメータbの逆数である。
従って、対数変換関数は、式(11)のように表される。
Figure 0007034984000001
なお、式(11)において、ln関数のカッコの中のドットは、変数を表す。式(11)において、ln関数の中の変数は、入力値に応じた値であればよい。入力電圧Vは、入力値に応じた電圧である。例えば、入力電圧Vは、入力値に対して一次関数で変換される電圧である。従って、入力電圧をVとし、中間電圧をVとし、係数を(1/b)とし、kを定数とし、cを定数とした場合、対数変換関数は、式(12)により表される。
Figure 0007034984000002
本実施形態において、対数変換回路24は、cを0とした式(13)に示す対数変換関数に従って、入力値に応じた入力電圧を対数変換した中間電圧を発生する。
Figure 0007034984000003
そして、対数変換回路24は、発生した中間電圧をメモリスタ20に印加する。メモリスタ20は、中間電圧が印加された場合、印加された中間電圧とコンダクタンスパラメータaに応じて設定された電圧-電流特性とにより特定される電流を流す。なお、中間電圧は、メモリスタ20の閾値電圧よりも低い。従って、メモリスタ20は、対数変換回路24から発生された中間電圧が印加された場合、電圧-電流特性を変更しない。
電流電圧変換回路26は、中間電圧が印加されたことに応じてメモリスタ20に流れる電流を受け取る。電流電圧変換回路26は、予め設定された線形関数に従って、メモリスタ20に流れる電流を電流電圧変換した出力電圧を発生する。電流電圧変換回路26は、設計時、製造時またはキャリブレーション時等において、線形関数が設定される。電流電圧変換回路26は、例えば、抵抗素子、演算増幅器および反転増幅器等を含むアナログ回路により実現される。
出力電圧をVとし、Rを予め設定された定数とした場合、線形関数(g(I))は、式(14)により表される。
=g(I)=R…(14)
電流電圧変換回路26は、発生した出力電圧を、重み値と入力値とを乗算した乗算値として出力する。なお、乗算値と出力電圧との対応関係は、予め定められている。
ここで、メモリスタ20の電圧-電流特性を表す関数をG(V)と表す。本実施形態において、メモリスタ20の電圧-電流特性は、予め設定されたコンダクタンスパラメータaおよび素子パラメータbを含む自然指数関数(I=aebV)に近似される。従って、メモリスタ20に流れる電流(I)は、式(15)により表される。
Figure 0007034984000004
式(13)および式(15)をまとめると、メモリスタ20に流れる電流(I)は、式(16)により表される。
Figure 0007034984000005
そして、式(14)に式(16)を代入すると、出力電圧(V)は、式(17)により表される。
=RakV…(17)
以上のように、第1実施形態に係る演算装置10は、コンダクタンスパラメータaと入力電圧(V)とRとkとを乗算した出力電圧(V)を出力することができる。コンダクタンスパラメータaは、重み値に応じて設定される値である。入力電圧(V)と入力値との対応関係は、予め定められている。Rおよびkは、予め設定された定数である。また、出力電圧(V)と出力値との対応関係は、予め定められている。従って、第1実施形態に係る演算装置10は、重み値と入力値とを乗算した乗算値を出力することができる。
図13は、正規化された乗算を実行する演算装置10の構成を示す図である。重み値が0以上1以下であり、入力電圧が0ボルト以上1ボルト以下であり、出力電圧が0ボルト以上1ボルト以下とする場合の、演算装置10の設定例について説明する。
なお、入力電圧および出力電圧は、0ボルトまたは1ボルトの2値であってもよい。重み値は、0または1の2値であってもよい。また、重み値は、-1または+1、もしくは、L論理またはH論理等であってもよい。重み値が2値であって、0または1でない場合、設定部22は、一方の値を0、他方の値を1に置き換える。
設定部22は、重み値を受け取った場合、式(21)に従い、コンダクタンスパラメータaを算出する。
a=w×s×IREAD_1…(21)
wは、重み値である。sは、式(3)で示した定数である。すなわち、sは、メモリスタ20のフィッティング領域の電圧-電流特性に自然指数関数をフィッティングさせることにより抽出される。IREAD_1は、メモリスタ20に流す最大の電流であり、正規化した場合においては出力電圧(V)として1ボルトを出力する場合に流れる電流である。
対数変換回路24は、1ボルトの入力電圧(Vx_1)を受けた場合に式(22)のようなVmax_1を出力するように、内部のパラメータが設定される。
Figure 0007034984000006
max_1は、メモリスタ20に印加される最大の中間電圧である。Vmax_1は、読出電圧範囲に含まれる。Vx_1は、1ボルトの入力電圧を表す。このようなVmax_1が設定された場合、kは、式(23)により表される。
Figure 0007034984000007
式(16)、式(17)および式(23)に基づき、IおよびVは、式(24)および式(25)のように表される。
Figure 0007034984000008
は、設計時、製造時またはキャリブレーション時等において、式(26)のように設定される。
Figure 0007034984000009
このように設定された演算装置10は、式(27)の演算を実行することができる。
=wV…(27)
図14は、対数変換回路24および電流電圧変換回路26の回路構成の一例を示す図である。例えば、対数変換回路24は、第1演算増幅器32と、入力抵抗34と、ダイオード36と、第1反転増幅回路38とを有する。対数変換回路24は、電圧入力端子40に入力電圧(V)が印加される。
第1演算増幅器32は、非反転入力端子が基準電位(例えばグランド)に接続される。入力抵抗34は、電圧入力端子40と、第1演算増幅器32の反転入力端子との間に接続される。
ダイオード36は、アノードが第1演算増幅器32の反転入力端子に接続され、カソードが第1演算増幅器32の出力端子に接続される。第1反転増幅回路38は、第1演算増幅器32から出力された電圧を線形に反転増幅する。第1反転増幅回路38は、第1演算増幅器32から出力された電圧を線形に反転増幅した電圧を、メモリスタ20の入力端子に中間電圧(V)として印加する。
電流電圧変換回路26は、第2演算増幅器42と、帰還抵抗44と、第2反転増幅回路46とを有する。第2演算増幅器42は、非反転入力端子が基準電位(例えばグランド)に接続される。第2演算増幅器42は、反転入力端子に、メモリスタ20の出力端子が接続される。帰還抵抗44は、第2演算増幅器42の反転入力端子と、第2演算増幅器42の出力端子との間に接続される。
第2反転増幅回路46は、第2演算増幅器42から出力された電圧を線形に反転増幅する。第2反転増幅回路46は、第2演算増幅器42から出力された電圧を線形に反転増幅した電圧を、電圧出力端子50から出力電圧(V)として出力する。
ここで、式(31)に示すダイオード方程式が知られている。
Figure 0007034984000010
式(31)において、Vは、ダイオード36の電圧である。nは、理想ファクターであり、ダイオード36の種類等により定まる定数である。Iは、ダイオード36に流れる電流である。Vは、熱電圧である。Iは、飽和電流である。
入力抵抗34の抵抗値をRとした場合、ダイオード36に流れる電流(I)は、式(32)のように表される。
=V/R…(32)
第1反転増幅回路38の増幅率を(-H)とした場合、中間電圧(V)は、式(33)のように表される。
=-HV…(33)
式(2)から、メモリスタ20に流れる電流(I)は、式(34)のように表される。
Figure 0007034984000011
第2反転増幅回路46の増幅率を-1とした場合、出力電圧(V)は、式(35)のように表される。
=R…(35)
式(31)、式(32)および式(34)に基づき、ダイオード36に流れる電流(I)は、式(36)のように表される。
Figure 0007034984000012
式(35)および式(36)に基づき、出力電圧(V)は、式(37)のように表される。
Figure 0007034984000013
bは、素子パラメータである。そこで、第1反転増幅回路38に対して、Hを式(38)のように設定する。
Figure 0007034984000014
第1反転増幅回路38に対して式(38)のHが設定された場合、出力電圧(V)は、式(39)のように表される。
Figure 0007034984000015
第1反転増幅回路38に対して式(38)のHが設定された場合、ダイオード36に流れる電流(I)は、式(40)のように表される。
Figure 0007034984000016
つぎに、重み値が0以上1以下であり、入力電圧が0ボルト以上1ボルト以下であり、出力電圧が0ボルト以上1ボルト以下である場合の、図14に示す演算装置10の設定例について説明する。
設定部22は、重み値を受け取った場合、式(41)に従い、コンダクタンスパラメータaを算出する。w、sおよびIREAD_1は、式(21)で説明した内容と同一である。
a=s×w×IREAD_1…(41)
対数変換回路24は、1ボルトの入力電圧(Vx_1)を受けた場合、式(42)に示すVmax_1を出力するように、内部のパラメータが設定される。
Figure 0007034984000017
max_1は、読出電圧範囲に含まれ、メモリスタ20に印加される最大の中間電圧である。従って、入力抵抗34の抵抗値(R)は、式(43)のように設定される。
Figure 0007034984000018
なお、Hが式(38)のように設定されているので、入力抵抗34の抵抗値(R)は、式(44)のように表される。
Figure 0007034984000019
出力電圧(V)は、式(39)および式(41)に基づき、式(45)のように表される。
Figure 0007034984000020
そして、帰還抵抗44の抵抗値(R)は、式(46)のように設定される。
Figure 0007034984000021
このように入力抵抗34の抵抗値(R)および帰還抵抗44の抵抗値(R)が設定された演算装置10は、式(47)の乗算を実行することができる。
=wV…(47)
図15は、図14に示す演算装置10に対するパラメータの設定例を示す図である。図16は、図15に示すパラメータが設定された図14に示す対数変換回路24の入出力電圧特性を、回路シミュレータでシミュレーションした結果と、演算式により算出した結果とを示す図である。図17は、図15に示すパラメータが設定された図14に示す演算装置10の入出力電圧特性を、回路シミュレータでシミュレーションした結果を示す図である。
発明者は、回路シミュレータであるSPICE(Simulation Program with Integrated Circuit Emphasis)を用いて図14に示す構成の演算装置10の特性をシミュレーションした。図14に示す構成の演算装置10のデバイス等のパラメータは、図15に示すとおりである。
図16に示すように、対数変換回路24の入出力電圧特性(入力電圧(V)に対する中間電圧(V)の特性)のシミュレーション結果は、演算により算出した結果とほぼ一致した。図17に示すように、演算装置10の入出力特性(入力電圧(V)に対する出力電圧(V)の特性)のシミュレーション結果は、ほぼ直線的な特性となった。また、重み値(w)を変更した場合も、演算装置10のシミュレーション結果は、ほぼ直線的な特性となった。
以上のように、本実施形態に係る演算装置10によれば、精度良く乗算を実行することができる。さらに、本実施形態に係る演算装置10によれば、メモリスタ20を用いるので、低い消費電力で乗算を実行することができる。
(第2実施形態)
つぎに、第2実施形態について説明する。第2実施形態に係る積和演算装置60は、第1実施形態に係る演算装置10と同一の構成要素を含む。積和演算装置60の説明については、第1実施形態の演算装置10と同一の構成要素については、同一の符号を付けて、共通点については詳細な説明を省略する。
図18は、第2実施形態に係る積和演算装置60の構成を示す図である。積和演算装置60は、複数の重み値と複数の入力値とを積和演算した積和演算値を出力する。例えば、積和演算装置60は、n個(nは2以上の整数)の重み値と、n個の入力値とを積和演算した積和演算値を出力する。
積和演算装置60は、複数のメモリスタ20と、設定部22と、複数の対数変換回路24と、電流電圧変換回路26とを備える。
複数のメモリスタ20は、同一の特性を有する。設計時、製造時またはキャリブレーション時等において、複数のメモリスタ20は、式(3)で示したコンダクタンスパラメータaを表す関数、および、素子パラメータbが抽出される。
複数のメモリスタ20は、複数の重み値に対応して設けられる。例えば、積和演算装置60は、n個の重み値に対して一対一で対応して設けられたn個のメモリスタ20を備える。複数のメモリスタ20のそれぞれは、複数の重み値のうちの対応する重み値に応じた電圧-電流特性に予め設定される。
設定部22は、演算に先だって、複数のメモリスタ20のそれぞれに対して、対応する重み値に応じた電圧-電流特性を設定する。
複数の対数変換回路24は、複数の入力値に対応して設けられる。例えば、積和演算装置60は、n個の入力値に対して一対一で対応して設けられたn個の対数変換回路24を備える。
複数の対数変換回路24のそれぞれは、対応する入力値に応じた入力電圧を受け取る。複数の対数変換回路24のそれぞれは、自然対数関数に予め設定された係数を乗じた対数変換関数に従って、複数の入力値のうち対応する入力値に応じた入力電圧を対数変換した中間電圧を発生する。複数の対数変換回路24のそれぞれは、発生した中間電圧を、複数のメモリスタ20のちの対応する1つのメモリスタ20に印加する。複数のメモリスタ20のそれぞれは、中間電圧が印加された場合、印加された中間電圧とコンダクタンスパラメータaに応じて設定された電圧-電流特性とにより特定される電流を流す。
電流電圧変換回路26は、複数のメモリスタ20の全てから、中間電圧が印加されたことに応じて流れる電流を受け取る。電流電圧変換回路26は、予め設定された線形関数に従って、複数のメモリスタ20に流れる電流を加算した合計電流を電流電圧変換した出力電圧を発生する。電流電圧変換回路26は、発生した出力電圧を、複数の重み値と複数の入力値とを積和演算した積和演算値として出力する。なお、積和演算値と出力電圧との対応関係は、予め定められている。
以上のような積和演算装置60は、n個の重み値とn個の入力値とを積和演算する場合、式(61)のような演算を実行することができる。
=R×k×(a×Vx1+a×Vx2+…+a×Vxn)…(61)
x1は、1番目の入力値に応じた入力電圧を表す。Vx2は、2番目の入力値に応じた入力電圧を表す。Vxnは、n番目の入力値に応じた入力電圧を表す。
は、1番目の重み値(w)に応じたコンダクタンスパラメータを表す。aは、2番目の重み値(w)に応じたコンダクタンスパラメータを表す。aは、n番目の重み値(w)に応じたコンダクタンスパラメータを表す。
また、積和演算装置60は、0以上1以下の重み値を受け取り、0ボルト以上1ボルト以下の入力電圧を受け取り、0ボルト以上1ボルト以下の出力電圧を出力してもよい。この場合、設計時、製造時またはキャリブレーション時等において、kおよびRが第1実施形態と同様に設定される。また、設定部22は、n個の重み値を受け取った場合、第1実施形態と同様にn個のコンダクタンスパラメータaを算出する。
このように設定された場合、積和演算装置60は、式(62)のような演算を実行することができる。
=w×Vx1+w×Vx2+…+w×Vxn…(62)
以上のように、第2実施形態に係る積和演算装置60は、複数の重み値と複数の入力値とを積和演算した出力電圧に比例する積和演算値を出力することができる。本実施形態に係る積和演算装置60によれば、精度良く積和演算を実行することができる。さらに、本実施形態に係る積和演算装置60によれば、複数のメモリスタ20を用いるので、低い消費電力で積和演算を実行することができる。
(第3実施形態)
つぎに、第3実施形態について説明する。第3実施形態に係る行列演算装置70は、第1実施形態に係る演算装置10および第2実施形態に係る積和演算装置60と同一の構成要素を含む。行列演算装置70の説明については、第1実施形態の演算装置10および第2実施形態に係る積和演算装置60と同一の構成要素については、同一の符号を付けて、共通点については詳細な説明を省略する。
図19は、第3実施形態に係る行列演算装置70の構成を示す図である。行列演算装置70は、m行(mは1以上の整数)×n列(nは1以上の整数)に行列配置されたm×n個の重み値と、n個の入力値とを行列演算することにより、m個の出力値を出力する。
行列演算装置70は、n本の列ライン72と、m本の行ライン74と、m×n個のメモリスタ20と、設定部22と、n個の対数変換回路24と、m個の電流電圧変換回路26とを備える。
n本の列ライン72は、n列に一対一に対応して配置される。m本の行ライン74は、m行に一対一に対応して配置される。
m×n個のメモリスタ20は、同一の特性を有する。設計時、製造時またはキャリブレーション時等において、m×n個のメモリスタ20は、式(3)で示したコンダクタンスパラメータaを表す関数、および、素子パラメータbが抽出される。
m×n個のメモリスタ20は、m行×n列に対応して配置される。すなわち、m×n個のメモリスタ20は、m×n個の重み値に一対一に対応して設けられる。m×n個のメモリスタ20のそれぞれは、m×n個の重み値のうちの対応する行列位置の重み値に応じた電圧-電流特性に予め設定される。
m×n個のメモリスタ20のそれぞれは、入力端子が、n本の列ライン72のうち対応する列の列ライン72に接続される。m×n個のメモリスタ20のそれぞれは、出力端子が、m本の行ライン74のうち対応する行の行ライン74に接続される。
設定部22は、演算に先だって、m×n個のメモリスタ20のそれぞれに対して、m×n個の重み値のうちの対応する行列位置の重み値に応じた電圧-電流特性を設定する。
n個の対数変換回路24は、n列に対応して配置される。また、n個の対数変換回路24は、n個の入力値に一対一に対応して設けられる。n個の対数変換回路24のそれぞれは、n個の入力値のうち対応する入力値に応じた入力電圧を受け取る。n個の対数変換回路24のそれぞれは、自然対数関数に予め設定された係数を乗じた対数変換関数に従って、対応する入力値に応じた入力電圧を対数変換した中間電圧を発生する。
n個の対数変換回路24のそれぞれは、発生した中間電圧を、n本の列ライン72のうちの対応する列ライン72に印加する。これにより、n個の対数変換回路24のそれぞれは、対応する列ライン72に接続されたm個のメモリスタ20に対して、中間電圧を印加することができる。中間電圧が印加されたm個のメモリスタ20のそれぞれは、印加された中間電圧とコンダクタンスパラメータaに応じて設定された電圧-電流特性とにより特定される電流を流す。
m個の電流電圧変換回路26は、m行に対応して配置される。m個の電流電圧変換回路26は、m個の出力値に一対一に対応して設けられる。
m個の電流電圧変換回路26のそれぞれは、m本の行ライン74のうちの対応する行ライン74に接続されたn個のメモリスタ20に流れる合計電流を受け取る。m個の電流電圧変換回路26のそれぞれは、予め設定された線形関数に従って合計電流を電流電圧変換した出力電圧を発生する。m個の電流電圧変換回路26のそれぞれは、発生した出力電圧を、m個の出力値のうちの対応する出力値として出力する。
そして、m個の電流電圧変換回路26は、発生したm個の出力電圧を、m×n個の重み値とn個の入力値とを行列演算したm個の出力値として出力する。なお、出力値と出力電圧との対応関係は、予め定められている。
以上のような行列演算装置70は、式(71)のような演算を実行することができる。
Figure 0007034984000022
x1は、1番目の入力値に応じた入力電圧を表す。Vx2は、2番目の入力値に応じた入力電圧を表す。Vxnは、n番目の入力値に応じた入力電圧を表す。
y1は、1番目の出力値に対応する出力電圧を表す。Vy2は、2番目の出力値に対応する出力電圧を表す。Vymは、m番目の出力値に対応する出力電圧を表す。
11は、1行1列の行列位置の重み値(w11)に応じたコンダクタンスパラメータを表す。amnは、m行n列の行列位置の重み値(wmn)に応じたコンダクタンスパラメータを表す。
また、行列演算装置70は、0以上1以下の重み値を受け取り、0ボルト以上1ボルト以下の入力電圧を受け取り、0ボルト以上1ボルト以下の出力電圧を出力してもよい。このような場合、設計時、製造時またはキャリブレーション時等において、kおよびRが第1実施形態と同様に設定される。また、設定部22は、m×n個の重み値を受け取った場合、第1実施形態と同様にm×n個のコンダクタンスパラメータを算出する。
このように設定された場合、行列演算装置70は、式(72)のような演算を実行することができる。
Figure 0007034984000023
以上のように、第3実施形態に係る行列演算装置70は、m行×n列に行列配置されたm×n個の重み値と、n個の入力値とを行列演算することにより、m個の出力値を出力することができる。このような本実施形態に係る行列演算装置70によれば、精度良く行列演算を実行することができる。さらに、行列演算装置70によれば、複数のメモリスタ20を用いるので、低い消費電力で行列演算を実行することができる。
さらに、第3実施形態に係る行列演算装置70は、メモリスタ20が自己整流性を有するので、あるメモリスタ20に流れた電流が他のメモリスタ20に流入することが無くなる。従って、第3実施形態に係る行列演算装置70によれば、整流回路またはスイッチ等を含まなくてよく、構成が簡易となる。
(変形例)
図20は、変形例に係る対数変換回路24を示す図である。第1実施形態、第2実施形態および第3実施形態において、対数変換回路24は、D-A(デジタル-アナログ)コンバータにより実現されてもよい。この場合、対数変換回路24は、デジタル演算により自然対数演算を実行した後、デジタル-アナログ変換を実行する。従って、変形例に係る対数変換回路24は、デジタル値で表された入力値(V)を受け取り、アナログ電圧の中間電圧(V)を出力する。
図21は、変形例に係る対数変換回路24の入出力特性の一例を示す図である。変形例に係る対数変換回路24は、デジタル-アナログ変換により中間電圧(V)を発生するので、量子化誤差を含む。しかし、変形例に係る対数変換回路24は、デジタル-アナログ変換の量子化ビット数を大きくすることにより、精度良く演算を実行することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
10 演算装置
20 メモリスタ
22 設定部
24 対数変換回路
26 電流電圧変換回路
32 第1演算増幅器
34 入力抵抗
36 ダイオード
38 第1反転増幅回路
40 電圧入力端子
42 第2演算増幅器
44 帰還抵抗
46 第2反転増幅回路
50 電圧出力端子
60 積和演算装置
70 行列演算装置
72 列ライン
74 行ライン

Claims (14)

  1. 重み値と入力値とを乗算した乗算値を出力する演算装置であって、
    電圧-電流特性を変更可能な素子であり、前記重み値に応じた電圧-電流特性に予め設定されるメモリスタと、
    自然対数関数に予め設定された係数を乗じた対数変換関数に従って前記入力値に応じた入力電圧を対数変換した中間電圧を、前記メモリスタに印加する対数変換回路と、
    予め設定された線形関数に従って前記メモリスタに流れる電流を電流電圧変換した出力電圧を、前記乗算値として出力する電流電圧変換回路と、
    を備える演算装置。
  2. 複数の重み値と複数の入力値とを積和演算した積和演算値を出力する演算装置であって、
    前記複数の重み値に対応して設けられた複数のメモリスタと、
    前記複数の入力値に対応して設けられた複数の対数変換回路と、
    電流電圧変換回路と、
    を備え、
    前記複数のメモリスタのそれぞれは、電圧-電流特性を変更可能な素子であり、前記複数の重み値のうちの対応する重み値に応じた電圧-電流特性に予め設定され、
    前記複数の対数変換回路のそれぞれは、自然対数関数に予め設定された係数を乗じた対数変換関数に従って、前記複数の入力値のうち対応する入力値に応じた入力電圧を対数変換した中間電圧を、前記複数のメモリスタのうちの対応する1つのメモリスタに印加し、
    前記電流電圧変換回路は、予め設定された線形関数に従って、前記複数のメモリスタに流れる電流を加算した合計電流を電流電圧変換した出力電圧を、前記積和演算値として出力する
    演算装置。
  3. m行(mは1以上の整数)×n列(nは1以上の整数)に行列配置されたm×n個の重み値と、n個の入力値とを行列演算することにより、m個の出力値を出力する演算装置であって、
    n列に対応して配置されたn本の列ラインと、
    m行に対応して配置されたm本の行ラインと、
    m行×n列に対応して配置されたm×n個のメモリスタと、
    n列に対応して配置されたn個の対数変換回路と、
    m行に対応して配置されたm個の電流電圧変換回路と、
    を備え、
    前記m×n個のメモリスタのそれぞれは、
    電圧-電流特性を変更可能な素子であり、前記m×n個の重み値のうちの対応する行列位置の重み値に応じた電圧-電流特性に予め設定され、
    入力端子が、前記n本の列ラインのうち対応する列の列ラインに接続され、出力端子が、前記m本の行ラインのうち対応する行の行ラインに接続され、
    前記n個の対数変換回路のそれぞれは、自然対数関数に予め設定された係数を乗じた対数変換関数に従って、前記n個の入力値のうち対応する入力値に応じた入力電圧を対数変換した中間電圧を、前記n本の列ラインのうちの対応する列ラインに接続されたm個のメモリスタに印加し、
    前記m個の電流電圧変換回路のそれぞれは、予め設定された線形関数に従って、前記m本の行ラインのうちの対応する行ラインに接続されたn個のメモリスタに流れる合計電流を電流電圧変換した出力電圧を、前記m個の出力値のうちの対応する出力値として出力する
    演算装置。
  4. 前記m×n個のメモリスタのそれぞれは、前記入力端子から前記出力端子へ向かう順方向へ電流を流し、逆方向に電流を流さない自己整流性を有する
    請求項3に記載の演算装置。
  5. 前記係数は、前記メモリスタの読出電圧範囲のうちの高電圧側の一部の領域であるフィッティング領域の電圧-電流特性に対してフィッティングされた自然指数関数に含まれる、電圧を表す変数に乗じられる素子パラメータの逆数である
    請求項1から4の何れか1項に記載の演算装置。
  6. 前記フィッティング領域は、前記読出電圧範囲のうちの、電圧-電流特性の変化に関わらず、フィッティングされた前記自然指数関数に含まれる前記素子パラメータが一定となる領域である
    請求項5に記載の演算装置。
  7. 前記メモリスタは、電荷または正孔をトンネル効果により通過させるトンネリング素子である
    請求項5または6に記載の演算装置。
  8. 前記メモリスタは、強誘電体を含む材料をトンネル絶縁膜として有する強誘電体トンネル接合素子である
    請求項7に記載の演算装置。
  9. 前記メモリスタは、閾値電圧以上の電圧が印加された場合に、電圧-電流特性を変更し、前記閾値電圧より低い電圧が印加された場合に、電圧-電流特性を変更せず、
    前記読出電圧範囲は、前記閾値電圧より低い電圧の範囲である
    請求項5から8の何れか1項に記載の演算装置。
  10. 前記メモリスタは、所定値に応じた電圧が印加された場合に前記重み値と前記所定値とを乗じた値に対応する電流を流す電圧-電流特性に予め設定されている
    請求項5から9の何れか1項に記載の演算装置。
  11. 前記入力電圧をVとし、前記中間電圧をVとし、前記係数を(1/b)とし、kを定数とした場合、前記対数変換関数は、V=(1/b)×ln(k×V)により表され、
    前記メモリスタを通過する電流をIとし、前記メモリスタを横断する電圧をVと表し、オイラー数をeとした場合、前記自然指数関数は、I=a×e(b×V)により表され、
    前記フィッティング領域の電圧-電流特性に対して前記自然指数関数をフィッティングすることにより、前記自然指数関数における、電圧-電流特性の傾きを表すコンダクタンスパラメータであるa、および、前記素子パラメータであるbが抽出される
    請求項5から10の何れか1項に記載の演算装置。
  12. 演算に先だって前記重み値を受け取り、前記重み値と前記コンダクタンスパラメータとの対応関係を表す対応情報に基づき、前記重み値に対応する前記コンダクタンスパラメータを特定し、特定した前記コンダクタンスパラメータに対応した電圧-電流特性となるように前記メモリスタの状態を変更する設定部をさらに備える
    請求項11に記載の演算装置。
  13. 前記対数変換回路は、
    非反転入力端子が基準電位に接続される第1演算増幅器と、
    前記入力電圧が印加される入力端子と前記第1演算増幅器の反転入力端子との間に接続される入力抵抗と、
    アノードが前記第1演算増幅器の反転入力端子に接続され、カソードが前記第1演算増幅器の出力端子に接続されるダイオードと、
    前記第1演算増幅器から出力された電圧を線形に反転増幅した電圧を、前記メモリスタの入力端子に前記中間電圧として印加する第1反転増幅回路と、
    を有する
    請求項1から12の何れか1項に記載の演算装置。
  14. 前記電流電圧変換回路は、
    非反転入力端子が基準電位に接続され、反転入力端子が前記メモリスタの出力端子に接続される第2演算増幅器と、
    前記第2演算増幅器の反転入力端子と、前記第2演算増幅器の出力端子との間に接続される帰還抵抗と、
    前記第2演算増幅器から出力された電圧を線形に反転増幅した電圧を前記出力電圧として出力する第2反転増幅回路と、
    請求項13に記載の演算装置。
JP2019101692A 2019-05-30 2019-05-30 演算装置 Active JP7034984B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019101692A JP7034984B2 (ja) 2019-05-30 2019-05-30 演算装置
US16/801,252 US11150873B2 (en) 2019-05-30 2020-02-26 Arithmetic apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019101692A JP7034984B2 (ja) 2019-05-30 2019-05-30 演算装置

Publications (2)

Publication Number Publication Date
JP2020197761A JP2020197761A (ja) 2020-12-10
JP7034984B2 true JP7034984B2 (ja) 2022-03-14

Family

ID=73551510

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019101692A Active JP7034984B2 (ja) 2019-05-30 2019-05-30 演算装置

Country Status (2)

Country Link
US (1) US11150873B2 (ja)
JP (1) JP7034984B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7132196B2 (ja) 2019-09-17 2022-09-06 株式会社東芝 処理装置および推論システム
JP2021111142A (ja) 2020-01-10 2021-08-02 株式会社東芝 演算装置
JP7358312B2 (ja) 2020-08-25 2023-10-10 株式会社東芝 記憶装置およびニューラルネットワーク装置
JP2022129104A (ja) 2021-02-24 2022-09-05 株式会社東芝 不揮発性メモリデバイス
CN112951995B (zh) * 2021-04-09 2023-04-07 华中科技大学 一种自整流忆阻器电路的存算一体化操作方法及应用

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015141626A1 (ja) 2014-03-17 2015-09-24 株式会社 東芝 半導体装置、半導体装置の製造方法、および、強誘電体膜
US20180095722A1 (en) 2016-09-30 2018-04-05 Hewlett Packard Enterprise Development Lp Multiply-Accumulate Circuits

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6556768B2 (ja) 2017-01-25 2019-08-07 株式会社東芝 積和演算器、ネットワークユニットおよびネットワーク装置
JP6724869B2 (ja) * 2017-06-19 2020-07-15 株式会社デンソー 多層ニューラルネットワークのニューロンの出力レベル調整方法
JP6773621B2 (ja) 2017-09-15 2020-10-21 株式会社東芝 演算装置
JP6970058B2 (ja) 2018-07-19 2021-11-24 株式会社東芝 演算装置
JP2020155183A (ja) * 2019-03-20 2020-09-24 キオクシア株式会社 記憶装置
US11829729B2 (en) * 2019-09-05 2023-11-28 Micron Technology, Inc. Spatiotemporal fused-multiply-add, and related systems, methods and devices

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015141626A1 (ja) 2014-03-17 2015-09-24 株式会社 東芝 半導体装置、半導体装置の製造方法、および、強誘電体膜
US20180095722A1 (en) 2016-09-30 2018-04-05 Hewlett Packard Enterprise Development Lp Multiply-Accumulate Circuits

Also Published As

Publication number Publication date
US11150873B2 (en) 2021-10-19
US20200379733A1 (en) 2020-12-03
JP2020197761A (ja) 2020-12-10

Similar Documents

Publication Publication Date Title
JP7034984B2 (ja) 演算装置
CN107533668B (zh) 用于计算神经网络的节点值的硬件加速器和方法
CN108780492B (zh) 模拟协处理器
US9910827B2 (en) Vector-matrix multiplications involving negative values
JP5160304B2 (ja) 抵抗変化型可変抵抗素子を備えた積演算装置、及び積和演算装置、これらの装置を各ニューロン素子に備えるニューラルネットワーク、並びに積演算方法
US20230113231A1 (en) Methods and systems of operating a neural circuit in a non-volatile memory based neural-array
CN111801693A (zh) 神经网络装置、信号生成方法及程序
US10042819B2 (en) Convolution accelerators
US20200042287A1 (en) Adjustable Precision for Multi-Stage Compute Processes
CN111460365B (zh) 一种基于忆阻线性神经网络的方程组求解器及其操作方法
JP2019046072A (ja) ニューロモルフィック素子を含むアレイの制御装置、離散化ステップサイズの演算方法およびプログラム
CN107251090A (zh) 尖峰域卷积电路
CN111125616B (zh) 一种二维离散傅里叶变换运算电路及运算方法
CN114282478B (zh) 一种修正可变电阻器件阵列点乘误差的方法
CN112215344A (zh) 神经网络电路的校正方法以及设计方法
US11461640B2 (en) Mitigation of conductance drift in neural network resistive processing units
US20210033648A1 (en) Current sensor
GB2601415A (en) Method for designing an initialization function for programming a memory element
CN116384246A (zh) 用于矩阵运算的存算一体装置及其操作方法
TW202236170A (zh) 用於人工神經網路中之類比神經記憶體之精確資料調校方法及裝置
Halawani et al. A re-configurable memristor array structure for in-memory computing applications
KR102547775B1 (ko) 아날로그 대 확률 신호 변환기의 정규화 방법
US20220138579A1 (en) Weight repetition on rpu crossbar arrays
CN116563616B (zh) 一种基于神经网络的图像识别方法、计算机设备及介质
Martinez-Nieto et al. A CMOS mixed mode non-linear processing unit for adaptive sensor conditioning in portable smart systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210311

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220128

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220201

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220302

R151 Written notification of patent or utility model registration

Ref document number: 7034984

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151