IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 三星電子株式会社の特許一覧 ▶ リサーチ ビジネス ファウンデーション ソンギュングァン ユニバーシティの特許一覧

特開2023-29223インメモリコンピューティング装置及び方法
<>
  • 特開-インメモリコンピューティング装置及び方法 図1
  • 特開-インメモリコンピューティング装置及び方法 図2
  • 特開-インメモリコンピューティング装置及び方法 図3A
  • 特開-インメモリコンピューティング装置及び方法 図3B
  • 特開-インメモリコンピューティング装置及び方法 図4
  • 特開-インメモリコンピューティング装置及び方法 図5A
  • 特開-インメモリコンピューティング装置及び方法 図5B
  • 特開-インメモリコンピューティング装置及び方法 図6
  • 特開-インメモリコンピューティング装置及び方法 図7
  • 特開-インメモリコンピューティング装置及び方法 図8
  • 特開-インメモリコンピューティング装置及び方法 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023029223
(43)【公開日】2023-03-03
(54)【発明の名称】インメモリコンピューティング装置及び方法
(51)【国際特許分類】
   G06G 7/16 20060101AFI20230224BHJP
   G06N 3/063 20230101ALI20230224BHJP
   G11C 11/54 20060101ALI20230224BHJP
   G11C 11/16 20060101ALI20230224BHJP
   G11C 13/00 20060101ALI20230224BHJP
   G06G 7/60 20060101ALI20230224BHJP
   G06G 7/184 20060101ALI20230224BHJP
【FI】
G06G7/16 510
G06N3/063
G11C11/54
G11C11/16
G11C13/00 200
G06G7/60
G06G7/184
【審査請求】未請求
【請求項の数】25
【出願形態】OL
(21)【出願番号】P 2022094066
(22)【出願日】2022-06-10
(31)【優先権主張番号】10-2021-0109250
(32)【優先日】2021-08-19
(33)【優先権主張国・地域又は機関】KR
(71)【出願人】
【識別番号】390019839
【氏名又は名称】三星電子株式会社
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
【住所又は居所原語表記】129,Samsung-ro,Yeongtong-gu,Suwon-si,Gyeonggi-do,Republic of Korea
(71)【出願人】
【識別番号】517066191
【氏名又は名称】リサーチ ビジネス ファウンデーション ソンギュングァン ユニバーシティ
【氏名又は名称原語表記】RESEARCH BUSINESS FOUNDATION SUNGKYUNKWAN UNIVERSITY
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】李 允銘
(72)【発明者】
【氏名】丁 昭允
(72)【発明者】
【氏名】金 在録
(57)【要約】
【課題】
インメモリコンピューティング装置及び方法を提供する。
【解決手段】
一実施形態に係る乗算累積器(multiply and accumulator、MAC)回路は、ノードに中間電圧Vmidを印加する電界効果トランジスタ、及び、ノードに接続された一端に印加される中間電圧Vmid及び他端にかかる加重値設定電圧に基づいて、それぞれ決定された抵抗値を有する抵抗性素子の対、抵抗性素子の対の個別的な抵抗値が決定される場合に応答して、抵抗性素子の対それぞれの他端に個別的に印加される入力電圧及び抵抗性素子の対の組み合せられた抵抗値に基づいて、ノードで発生する電圧を受信して、電荷を充電/放電するキャパシタを含む複数の乗算器、及び、複数の乗算器に充電/放電される電荷に基づいた電圧を出力する出力ラインを含む。
【選択図】図1
【特許請求の範囲】
【請求項1】
乗算累積器(multiply-accumulator、MAC)回路であって、
複数の乗算器であり、
ノードに中間電圧Vmidを印加する電界効果トランジスタと、
前記ノードに接続された一端に印加される前記中間電圧Vmid、及び、他端にかかる加重値設定電圧に基づいて、それぞれ決定された抵抗値を有する抵抗性素子の対と、
前記抵抗性素子の対の個別的な抵抗値が決定される場合に応答して、前記抵抗性素子の対それぞれの他端に個別的に印加される入力電圧及び前記抵抗性素子の対の組み合せられた抵抗値に基づいて、前記ノードで発生する電圧を受信し、電荷を充電/放電するキャパシタと、
を含む、乗算器と、
前記複数の乗算器に充電/放電される電荷に基づいた電圧を出力する出力ラインと、
を含む、回路。
【請求項2】
前記抵抗性素子の対それぞれは、抵抗性ランダムアクセスメモリ(Resistive Random Access Memory、RRAM)及び磁気ランダムアクセスメモリ(Magnetic Random Access Memory、MRAM)のうち1つである、
請求項1に記載の回路。
【請求項3】
前記抵抗性素子の対それぞれは、抵抗値が可変する抵抗性素子である、
請求項1に記載の回路。
【請求項4】
前記乗算累積器回路は、
前記複数の乗算器それぞれに対して、前記抵抗性素子の対それぞれの両端に電圧を印加することにより、前記抵抗性素子の対それぞれの抵抗値を決定し、
前記抵抗性素子の対の組み合せられた抵抗値による加重値を、該当の乗算器に記録する、
請求項1に記載の回路。
【請求項5】
前記抵抗性素子の対の組み合せられた抵抗値は、ニューラルネットワークに含まれたレイヤ間の連結線の加重値を示す3進値のいずれか1つの3進値に対応する、
請求項1に記載の回路。
【請求項6】
前記乗算累積器回路は、前記抵抗性素子の対それぞれに前記入力電圧を印加する以前に、
前記抵抗性素子の対それぞれの他端に接続される入力端子に予め設定された電圧を印加し、
前記出力ラインに前記予め設定された電圧を印加することにより、前記キャパシタの両端を前記予め設定された電圧にプリチャージする、
請求項1に記載の回路。
【請求項7】
前記乗算累積器回路は、前記抵抗性素子の対それぞれの抵抗値が決定される場合に応答して、
前記抵抗性素子の対それぞれの他端に接続された入力端子に個別的に前記入力電圧を印加し、
組み合せられた入力電圧による入力値を乗算器に印加する、
請求項1に記載の回路。
【請求項8】
前記組み合せられた入力電圧は、ニューラルネットワークのレイヤに含まれたノードの出力値を示す3進値のいずれか1つの3進値に対応する、
請求項7に記載の回路。
【請求項9】
前記乗算累積器回路は、
前記抵抗性素子の対それぞれに個別的に印加される前記入力電圧の組み合わせに対応する入力値に、前記抵抗性素子の対の抵抗値の組み合わせに対応する加重値を乗算して算出された値に対応する電圧を、
前記ノードに発生させる、
請求項1に記載の回路。
【請求項10】
前記出力ラインは、
前記複数の乗算器それぞれに含まれているキャパシタそれぞれに接続され、
容量性カップリングを介して、前記複数の乗算器それぞれのキャパシタに充電/放電される電荷の累積に基づいた電圧を出力する、
請求項1に記載の回路。
【請求項11】
乗算累積器回路によって実行されるコンピューティング方法であって、
ノードに接続された抵抗性素子の対それぞれの一端に印加される中間電圧Vmid、及び、前記抵抗性素子の対それぞれの他端にかかる加重値設定電圧に基づいて、前記抵抗性素子の対それぞれの抵抗値を決定する動作と、
前記抵抗性素子の対の個別的な抵抗値が決定される場合に応答して、前記抵抗性素子の対それぞれの他端に個別的に印加される入力電圧、及び、前記抵抗性素子の対の組み合せられた抵抗値に基づき、前記ノードで発生する電圧に基づいて、電荷を充電/放電する動作と、
前記充電/放電される電荷に基づいた電圧を出力する動作と、
を含む、方法。
【請求項12】
前記抵抗性素子の対それぞれは、抵抗性ランダムアクセスメモリ(RRAM)及び磁気ランダムアクセスメモリ(MRAM)のうち1つである、
請求項11に記載の方法。
【請求項13】
前記抵抗性素子の対それぞれの抵抗値を決定する動作は、
前記抵抗性素子の対それぞれの両端に電圧を印加することにより、前記抵抗性素子の対それぞれの抵抗値を決定する動作と、
前記抵抗性素子の対の組み合せられた抵抗値による加重値を、前記抵抗性素子の対を含む乗算器に記録する動作と、
を含む、請求項11に記載の方法。
【請求項14】
前記抵抗性素子の対の組み合せられた抵抗値は、ニューラルネットワークに含まれたレイヤ間の連結線の加重値を示す3進値のいずれか1つの3進値に対応する、
請求項11に記載の方法。
【請求項15】
前記電荷を充電/放電する動作は、前記抵抗性素子の対それぞれに前記入力電圧を印加する以前に、
前記抵抗性素子の対それぞれの他端に接続される入力端子に予め設定された電圧を印加し、
出力ラインに前記予め設定された電圧を印加することにより、電荷を充電/放電するキャパシタの両端を前記予め設定された電圧にプリチャージする、
動作を含む、請求項11に記載の方法。
【請求項16】
前記電荷を充電/放電する動作は、前記抵抗性素子の対それぞれの抵抗値が決定される場合に応答して、
前記抵抗性素子の対それぞれの他端に接続された入力端子に個別的に前記入力電圧を印加し、
組み合せられた入力電圧による入力値を乗算器に印加する、
動作を含む、請求項11に記載の方法。
【請求項17】
前記組み合せられた入力電圧は、ニューラルネットワークのレイヤに含まれたノードの出力値を示す3進値のいずれか1つの3進値に対応する、
請求項16に記載の方法。
【請求項18】
前記電荷を充電/放電する動作は、
前記抵抗性素子の対それぞれに個別的に印加される前記入力電圧の組み合わせに対応する入力値に、前記抵抗性素子の対の抵抗値の組み合わせに対応する加重値を乗算して算出された値に対応する電圧を、
前記ノードに発生させる、
動作を含む、請求項11に記載の方法。
【請求項19】
複数の命令を含むコンピュータプログラムであって、
コンピュータのプロセッサによって前記命令が実行されると、
請求項11乃至18のいずれか一項に記載の方法を前記プロセッサに実施させる、
コンピュータプログラム。
【請求項20】
乗算累積器回路を構成する乗算器であって、
ノードに中間電圧Vmidを印加する電界効果トランジスタと、
前記ノードに接続された一端に印加される前記中間電圧Vmid、及び、他端にかかる加重値設定電圧に基づいて、それぞれ決定された抵抗値を有する抵抗性素子の対と、
前記抵抗性素子の対の個別的な抵抗値が決定される場合に応答して、前記抵抗性素子の対それぞれの他端に個別的に印加される入力電圧及び前記抵抗性素子の対の組み合せられた抵抗値に基づいて、前記ノードで発生する電圧を受信し、電荷を充電/放電するキャパシタと、
を含む、乗算器。
【請求項21】
前記乗算器は、
前記抵抗性素子の対それぞれに個別的に印加される前記入力電圧の組み合わせに対応する入力値に、前記抵抗性素子の対の抵抗値の組み合わせに対応する加重値を乗算して算出された値に対応する電圧を、
前記ノードに発生させる、
請求項20に記載の乗算器。
【請求項22】
乗算累積器(MAC)回路によって実行される方法であって、
1つの乗算器の第1抵抗性素子及び第2抵抗性素子それぞれの一端に対応するノードに中間電圧Vmidを印加し、前記第1抵抗性素子の他端に第1加重値設定電圧を印加し、かつ、前記第2抵抗性素子の他端に第2加重値設定電圧を印加することにより、前記1つの乗算器に対する加重値を記録する動作と、
前記第1抵抗性素子の他端に第1入力電圧を印加し、かつ、前記第2抵抗性素子の他端に第2入力電圧を印加することにより、前記1つの乗算器に入力値を印加する動作と、
前記入力値の印加に応答してキャパシタを放電することで、ニューラルネットワークノードの出力値を生成する動作と、
を含む、方法。
【請求項23】
前記加重値を記録する動作は、
前記第1加重値設定電圧が前記第2加重値設定電圧よりも大きい場合に応答して、第1加重値を記録する動作と、
前記第1加重値設定電圧が前記第2加重値設定電圧と同じ値である場合に応答して、第2加重値を記録する動作と、
前記第1加重値設定電圧が前記第2加重値設定電圧よりも小さい場合に応答して、第3加重値を記録する動作と、
を含む、請求項22に記載の方法。
【請求項24】
前記入力値を印加する動作は、
前記第1入力電圧が前記第2入力電圧よりも大きい場合に応答して、第1入力値を印加する動作と、
前記第1入力電圧が前記第2入力電圧と同じ値である場合に応答して、第2入力値を印加する動作と、
前記第1入力電圧が前記第2入力電圧よりも小さい場合に応答して、第3入力値を印加する動作と、
を含む請求項22に記載の方法。
【請求項25】
前記加重値の記録に応答して、前記第1抵抗性素子の他端、前記第2抵抗性素子の他端、及び前記キャパシタの一端に接続された出力ラインに、所定の電圧を印加する動作を、さらに含み、
前記入力値を印加する動作は、前記所定の電圧の印加に応答して、前記入力値を印加する動作、を含む、
請求項22に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、インメモリコンピューティング装置及び方法に関する。
【背景技術】
【0002】
MAC(multiply and accumulate)演算としても知られているベクトルマトリックス乗算オペレーションは、様々な分野でアプリケーションの性能を左右する。例えば、多重レイヤを含むニューラルネットワーク(neural network)のマシーンラーニング(machine learning)及び認証動作において、MAC演算が実行されてもよい。入力信号は、入力ベクトルを形成するものと見なされ、イメージ、バイトストリーム、又は、その他のデータセットに対するデータであってもよい。入力信号に加重値が乗算され、累積されたMAC演算の結果から、出力ベクトルが求められ、この出力ベクトルは、次のレイヤに対する入力ベクトルとして提供され得る。このようなMAC演算は、複数のレイヤに対して繰り返されるため、ニューラルネットワーク処理性能は、主にMAC演算の性能によって決定される。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本発明の目的は、インメモリコンピューティング装置及び方法を提供することにある。
【課題を解決するための手段】
【0004】
一実施形態に係る乗算累積器(multiply and accumulator、MAC)回路は、ノードに中間電圧Vmidを印加する電界効果トランジスタ、前記ノードに接続された一端に印加される前記中間電圧Vmid、及び、他端にかかる加重値設定電圧に基づいて、それぞれ決定された抵抗値を有する抵抗性素子の対、及び、前記抵抗性素子の対の個別的な抵抗値が決定される場合に応答して、前記抵抗性素子の対それぞれの他端に個別的に印加される入力電圧及び前記抵抗性素子の対の組み合せられた抵抗値に基づいて、前記ノードで発生する電圧を受信し、電荷を充電/放電するキャパシタを含む、複数の乗算器と、前記複数の乗算器に充電/放電される電荷に基づいた電圧を出力する出力ラインと、を含む。
【0005】
前記抵抗性素子の対それぞれは、抵抗性ランダムアクセスメモリ(Resistive Random Access Memory、RRAM)及び磁気ランダムアクセスメモリ(Magnetic Random Access Memory、MRAM)のうち1つであってもよい。
【0006】
前記抵抗性素子の対それぞれは、抵抗値が可変する抵抗性素子であってもよい。
【0007】
前記乗算累積器回路は、前記複数の乗算器それぞれに対して、前記抵抗性素子の対それぞれの両端に電圧を印加することにより、前記抵抗性素子の対それぞれの抵抗値を決定し、前記抵抗性素子の対の組み合せられた抵抗値による加重値を、該当の乗算器に記録することができる。
【0008】
前記抵抗性素子の対の組み合せられた抵抗値は、ニューラルネットワークに含まれたレイヤ間の連結線の加重値を示す3進値のいずれか1つの3進値に対応することができる。
【0009】
前記乗算累積器回路は、前記抵抗性素子の対それぞれに前記入力電圧を印加する以前に、前記抵抗性素子の対それぞれの他端に接続される入力端子に予め設定された電圧を印加し、前記出力ラインに前記予め設定された電圧を印加することにより、前記キャパシタの両端を前記予め設定された電圧にプリチャージすることができる。
【0010】
前記乗算累積器回路は、前記抵抗性素子の対それぞれの抵抗値が決定される場合に応答して、前記抵抗性素子の対それぞれの他端に接続された入力端子に個別的に前記入力電圧を印加し、組み合せられた入力電圧による入力値を乗算器に印加することができる。
【0011】
前記組み合せられた入力電圧は、ニューラルネットワークのレイヤに含まれたノードの出力値を示す3進値のいずれか1つの3進値に対応することができる。
【0012】
前記乗算累積器回路は、前記抵抗性素子の対それぞれに個別的に印加される前記入力電圧の組み合わせに対応する入力値に、前記抵抗性素子の対の抵抗値の組み合わせに対応する加重値を乗算して算出された値に対応する電圧を、前記ノードに発生させることができる。
【0013】
前記出力ラインは、前記複数の乗算器それぞれに含まれているキャパシタそれぞれに接続され、容量性カップリングを介して、前記複数の乗算器それぞれのキャパシタに充電/放電される電荷の累積に基づいた電圧を出力することができる。
【0014】
一実施形態に係る乗算累積器回路によって実行されるコンピューティング方法は、ノードに接続された抵抗性素子の対それぞれの一端に印加される中間電圧Vmid、及び、前記抵抗性素子の対それぞれの他端にかかる加重値設定電圧に基づいて、前記抵抗性素子の対それぞれの抵抗値を決定する動作と、前記抵抗性素子の対の個別的な抵抗値が決定される場合に応答して、前記抵抗性素子の対それぞれの他端に個別的に印加される入力電圧及び前記抵抗性素子の対の組み合せられた抵抗値に基づき、前記ノードで発生する電圧に基づいて、電荷を充電/放電する動作と、前記充電/放電される電荷に基づいた電圧を出力する動作とを含む。
【0015】
前記抵抗性素子の対それぞれは、抵抗性ランダムアクセスメモリ(RRAM)及び磁気ランダムアクセスメモリ(MRAM)のうち1つであってもよい。
【0016】
前記抵抗性素子の対それぞれの抵抗値を決定する動作は、前記抵抗性素子の対それぞれの両端に電圧を印加することにより前記抵抗性素子の対それぞれの抵抗値を決定する動作と、前記抵抗性素子の対の組み合せられた抵抗値による加重値を前記抵抗性素子の対を含む乗算器に記録する動作とを含むことができる。
【0017】
前記抵抗性素子の対の組み合せられた抵抗値は、ニューラルネットワークに含まれたレイヤ間の連結線の加重値を示す3進値のいずれか1つの3進値に対応することができる。
【0018】
前記電荷を充電/放電する動作は、前記抵抗性素子の対それぞれに前記入力電圧を印加する以前に、前記抵抗性素子の対それぞれの他端に接続される入力端子に予め設定された電圧を印加し、出力ラインに前記予め設定された電圧を印加することにより、電荷を充電/放電するキャパシタの両端を前記予め設定された電圧にプリチャージする動作を含むことができる。
【0019】
前記電荷を充電/放電する動作は、前記抵抗性素子の対それぞれの抵抗値が決定される場合に応答して、前記抵抗性素子の対それぞれの他端に接続された入力端子に個別的に前記入力電圧を印加し、組み合せられた入力電圧による入力値を乗算器に印加する動作を含むことができる。
【0020】
前記組み合せられた入力電圧は、ニューラルネットワークのレイヤに含まれたノードの出力値を示す3進値のいずれか1つの3進値に対応することができる。
【0021】
前記電荷を充電/放電する動作は、前記抵抗性素子の対それぞれに個別的に印加される前記入力電圧の組み合わせに対応する入力値に、前記抵抗性素子の対の抵抗値の組み合わせに対応する加重値を乗算して算出された値に対応する電圧を、前記ノードに発生させる動作を含むことができる。
【0022】
一実施形態に係る乗算累積器回路を構成する乗算器は、ノードに中間電圧Vmidを印加する電界効果トランジスタと、前記ノードに接続された一端に印加される前記中間電圧Vmid、及び、他端にかかる加重値設定電圧に基づいて、それぞれ決定された抵抗値を有する抵抗性素子の対と、前記抵抗性素子の対の個別的な抵抗値が決定される場合に応答して、前記抵抗性素子の対それぞれの他端に個別的に印加される入力電圧及び前記抵抗性素子の対の組み合せられた抵抗値に基づいて、前記ノードで発生する電圧を受信し、電荷を充電/放電するキャパシタと、を含む。
【0023】
前記乗算器は、前記抵抗性素子の対それぞれに個別的に印加される前記入力電圧の組み合わせに対応する入力値に、前記抵抗性素子の対の抵抗値の組み合わせに対応する加重値を乗算して算出された値に対応する電圧を、前記ノードに発生させることができる。
【0024】
一実施形態に係る乗算累積器(MAC)回路によって実行される方法は、1つの乗算器の第1抵抗性素子及び第2抵抗性素子それぞれの一端に対応するノードに中間電圧Vmidを印加し、前記第1抵抗性素子の他端に第1加重値設定電圧を印加し、かつ、前記第2抵抗性素子の他端に第2加重値設定電圧を印加することにより、前記1つの乗算器に対する加重値を記録する動作と、前記第1抵抗性素子の他端に第1入力電圧を印加し、かつ、前記第2抵抗性素子の他端に第2入力電圧を印加することにより、前記1つの乗算器に入力値を印加する動作と、前記入力値の印加に応答してキャパシタを放電することで、ニューラルネットワークノードの出力値を生成する動作と、を含む。
【0025】
前記加重値を記録する動作は、前記第1加重値設定電圧が前記第2加重値設定電圧よりも大きい場合に応答して、第1加重値を記録する動作と、前記第1加重値設定電圧が前記第2加重値設定電圧と同じ値である場合に応答して、第2加重値を記録する動作と、前記第1加重値設定電圧が前記第2加重値設定電圧よりも小さい場合に応答して、第3加重値を記録する動作とを含み、
前記入力値を印加する動作は、前記第1入力電圧が前記第2入力電圧よりも大きい場合に応答して、第1入力値を印加する動作と、前記第1入力電圧が前記第2入力電圧と同じ値である場合に応答して、第2入力値を印加する動作と、前記第1入力電圧が前記第2入力電圧よりも小さい場合に応答して、第3入力値を印加する動作と、を含むことができる。
【0026】
一実施形態に係る乗算累積器回路により実行される方法は、前記加重値の記録に応答して、前記第1抵抗性素子の他端、前記第2抵抗性素子の他端、及び前記キャパシタの一端に接続された出力ラインに、所定の電圧を印加する動作をさらに含み、前記入力値を印加する動作は、前記所定の電圧の印加に応答して、前記入力値を印加する動作を含むことができる。
【発明の効果】
【0027】
本発明によると、インメモリコンピューティング装置及び方法を提供することができる。
【図面の簡単な説明】
【0028】
図1】一実施形態に係る乗算累積器(multiply-accumulator、MAC)回路を構成する1つの乗算器を示す図である。
図2】一実施形態に係る乗算累積器回路を用いたコンピューティング方法を説明するフローチャートである。
図3A】一実施形態に係る乗算累積器回路が乗算器に加重値を記録する過程を説明する図である。
図3B】一実施形態に係る乗算累積器回路が乗算器に加重値を記録する過程を説明する図である。
図4】一実施形態に係る乗算累積器回路が入力値を乗算器に印加する以前に、予め設定された電圧でキャパシタの両端をプリチャージする過程を説明する図である。
図5A】一実施形態に係る乗算累積器回路が乗算器に入力値を印加する過程を説明する図である。
図5B】一実施形態に係る乗算累積器回路が乗算器に入力値を印加する過程を説明する図である。
図6】一実施形態に係る乗算累積器回路の構造を説明する図である。
図7】一実施形態に係る乗算累積器回路が乗算器に記録できる加重値について説明する図である。
図8】一実施形態に係る乗算累積器回路が乗算器に印加できる入力値について説明する図である。
図9】一実施形態に係る乗算累積器回路によって実現されるニューラルネットワーク演算の例示を説明する図である。
【発明を実施するための形態】
【0029】
実施形態に対する特定な構造的又は機能的な説明は、単なる例示のための目的として開示されたものであって、様々な形態に変更され得る。したがって、実施形態は、特定な開示形態に限定されるものではなく、本明細書の範囲は、技術的な思想に含まれる変更、均等物ないし代替物を含む。
【0030】
第1又は第2などの用語を複数の構成要素を説明するために用いることがあるが、このような用語は、1つの構成要素を他の構成要素から区別する目的としてのみ解釈されなければならない。例えば、第1構成要素は第2構成要素と命名することができ、同様に、第2構成要素は第1構成要素に命名することもできる。
【0031】
いずれかの構成要素が他の構成要素に「連結」されているか、「接続」されていると言及されたときには、その他の構成要素に直接的に連結されているか、又は、接続されているが、中間に他の構成要素が存在し得るものと理解されなければならない。
【0032】
単数の表現は、文脈上で明白に異なる意味をもたない限り、複数の表現を含む。本明細書において、「含む」又は「有する」等の用語は、明細書上に記載した特徴、数字、ステップ、動作、構成要素、部品、又はこれらを組み合わせたものが存在することを示すものであって、1つ又はそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品、又は、これを組み合わせたものなどの存在又は付加の可能性を予め排除しないものとして理解しなければならない。
【0033】
異なるように定義さがれない限り、技術的又は科学的な用語を含んで、ここで用いる全ての用語は、本実施形態が属する技術分野で通常の知識を有する者によって一般的に理解されるものと同じ意味を有する。一般的に用いられる予め定義された用語は、関連技術の文脈上で有する意味と一致する意味を有するものと解釈されなければならず、本明細書で明白に定義しない限り、理想的又は過度に形式的な意味として解釈されることはない。
【0034】
以下、添付する図面を参照しながら実施形態を詳細に説明する。図面を参照して説明する際に、図面符号に拘わらず、同じ構成要素は同じ参照符号を付与し、これに対する重複する説明は省略する。
【0035】
図1は、一実施形態に係る乗算累積器(multiply-accumulator、MAC)回路を構成する1つの乗算器を示す図である。
【0036】
人工知能の効率的な実現のためには、ニューラルネットワーク演算の加速が必要であり、ニューラルネットワークの処理性能は、主にMAC演算の性能によって決定される。ニューラルネットワーク演算を従来のノイマン型のハードウェアで実現する場合、メモリアクセストラフィックの過多発生によるボトルネック現像とメモリアクセスに消耗されるエネルギーによる非効率が問題となり、MAC演算を効率よく実現することが難しい。これを克服するための方法として、様々な形態のインメモリコンピューティング(in-memory computing)が研究されており、その1つが、不揮発性メモリ素子を用いてニューラルネットワーク演算を加速させる方法である。従来技術において、抵抗性ランダムアクセスメモリ(Resistive Random Access Memory、RRAM)及び磁気ランダムアクセスメモリ(Magnetic Random Access Memory、MRAM)などの抵抗性素子を用いて、インメモリコンピューティング演算を行う方法が提示されている。RRAM、MRAMなどの様々な不揮発性素子の抵抗変化を用いて各種のニューラルネットワーク演算をインメモリで実現すれば、メモリのアクセスを減らし、演算効率の大きく改善されたニューラルネットワーク演算を実現することができる。特に、従来では、RRAM、MRAMなどの抵抗性素子から構成され、ニューラルネットワーク演算を行う乗算累積器回路は、MAC演算の結果を電流の形態に取得し、電流検出増幅器(current sense amplifier)を介して演算結果を出力した。しかし、このような電流検出方式は、MAC演算結果であるMAC値(MAC value)が大きくなると、検出範囲が重なるという問題が発生する。このような問題を改善するために、電圧検出(voltage sensing)方式を用いて、MAC演算の結果を電圧の形態に取得する乗算累積器回路が考案されている。しかし、従来における電圧検出方式を使用するRRAM、MRAMなどを初めとする抵抗性素子から構成される乗算累積器回路は、使用される抵抗性素子の個数により、MAC演算結果と乗算累積器回路の出力間の線型性(linearity)が保障されないという問題がある。例えば、従来におけるRRAMの抵抗性素子から構成される乗算累積器回路は、ターンオン状態(例えば、低抵抗状態(Low Resistance State、LRS))で使用されたRRAMの抵抗性素子の個数により、MAC演算結果と乗算累積器回路の出力間の線型性が保障され難いという問題がある。従来の乗算累積器回路は、MAC演算結果と乗算累積器回路の出力間の線型性を補正するために追加的な回路を使用したが、完全な線型性を見せなかった。
【0037】
さらに、抵抗性素子を使用するインメモリコンピューティング演算は、抵抗性素子自体の抵抗値の可変問題に敏感である。このような抵抗性素子の抵抗値可変問題を解決するために、様々な周期にわたって抵抗性素子の抵抗値を用いて読出し/書き込みを繰り返すWrite-Verify方式が主に使用される。このようなWrite-Verify方式は、抵抗性素子の抵抗値可変の問題を補正すると共に、抵抗性素子のオン・オフ比率を保障することができる。従来では、抵抗性素子のオン・オフ比率が保障されなければ、抵抗性素子を用いてインメモリコンピューティング演算を実現することができなかった。ここで、抵抗性素子のオン・オフ比率は、抵抗性素子がオフ状態であるときの抵抗値に対するオン状態時の抵抗値の比率を示す。
【0038】
すなわち、従来におけるインメモリコンピューティング演算を実行可能な乗算累積器回路は、MAC演算結果と乗算累積器回路の出力間の線型性、抵抗性素子の可変問題、及び抵抗性素子のオン・オフ比率を補正するために、追加的な時間的かつ空間的な損害が発生する問題がある。後述するが、一実施形態に係る乗算累積器回路は、MAC演算結果と乗算累積器回路の出力間の線型性を保障することができ、抵抗性素子の可変問題にも耐性が強く、抵抗性素子のオン・オフ比率が相対的に小さくても、ある程度保障されれば、MAC演算を行うことができる。以下では、不揮発性素子で構成されて、ニューラルネットワークの演算を行う一実施形態に係る乗算累積器回路について説明する。
【0039】
乗算累積器回路は、乗算結果を累積した値を出力する回路であってもよい。一実施形態に係る乗算累積器回路は、複数の乗算器及び複数の乗算器とそれぞれ接続される出力ラインを含む。先ず、図1において、一実施形態に係る乗算累積器回路を構成する1つの乗算器100について説明する。
【0040】
一実施形態に係る乗算器100は、電界効果トランジスタ110、抵抗性素子の対121,122、キャパシタ130を含む。また、乗算器100は、出力ライン140に接続される。より具体的に、出力ライン140は、乗算器のキャパシタ130の一端に接続される。後述するが、キャパシタ130は、抵抗性素子の対121,122の組み合せられた抵抗値により、乗算器100に記録される加重値及び乗算器100に印加される入力電圧の組み合わせに対応する入力値を乗算し、算出される値に対応する電圧を受信して、電荷を充電/放電することができる。また、出力ライン140は、乗算累積器回路に含まれている複数の乗算器のキャパシタそれぞれに、充電/放電される電荷の累積に基づいた電圧を出力することができる。
【0041】
電界効果トランジスタ110は、抵抗性素子の対121,122が互いに接続されるノード101に中間電圧Vmidを印加する。電界効果トランジスタ110は、ノード101で抵抗性素子の対121,122とそれぞれ接続されてもよい。例えば、電界効果トランジスタ110は、NMOSトランジスタ又はPMOSトランジスタであってもよい。電界効果トランジスタ110のゲート端子には、ワードライン(Word Line、WL)が接続されてもよい。例えば、ワードラインは、複数の乗算器それぞれに含まれている電界効果トランジスタのゲート端子に接続されるラインであってもよい。基準電圧VDDがワードラインに入力され、ここで、ワードラインに接続される電界効果トランジスタのゲート端子に基準電圧VDDが印加される。ゲート端子に基準電圧が印加されれば、電界効果トランジスタはターンオンされる。
【0042】
抵抗性素子の対121,122それぞれは、様々な抵抗値を有する抵抗性素子(resistive device)であってもよい。第1抵抗性素子121及び第2抵抗性素子122は、ノード101を介して接続される。第1抵抗性素子121の一端ノード101に接続され、他端は正の入力端子(positive input terminal)151に接続される。第2抵抗性素子122の一端ノード101に接続され、他端は負の入力端子(negative input terminal)152に接続される。以下、明細書において、正の入力端子は第1入力端子として説明し、負の入力端子は第2入力端子として説明する。
【0043】
抵抗性素子の対121,122のそれぞれは、様々な抵抗値を有する抵抗性素子であってもよい。抵抗性素子の対121,122のそれぞれは、可変抵抗素子であってもよい。一実施形態によれば、抵抗性素子の対121,122のそれぞれは、抵抗性ランダムアクセスメモリ(Resistive Random Access Memory、RRAM)及び磁気ランダムアクセスメモリ(Magnetic Random Access Memory、MRAM)のうち1つであってもよい。例えば、抵抗性ランダムアクセスメモリは、不揮発性メモリ素子の一種類として、2つの金属板間に絶縁膜がある構造であって、素子の両端に印加される電圧により抵抗値が変更され得る。例えば、RRAMは、外部に印加される電圧により、高い抵抗値を有する高抵抗状態(high resistance state、HRS)又は低い抵抗値を有する低抵抗状態(low resistance state、LRS)を有してもよい。異なる例として、MRAMも不揮発性メモリ素子として、外部に印加される電圧により高い抵抗値を有する並列状態(parallel state)、又は低い抵抗値を有する反-並列状態(anti-parallel state)を有する。しかし、抵抗性素子の種類は、必ずしもこれに限定されることなく、その他にも複数の抵抗値を有する抵抗性素子を一実施形態に係る乗算累積器回路に使用することができる。
【0044】
乗算累積器回路は、乗算器ごとに抵抗性素子の対121,122それぞれの両端に電圧を印加することで、抵抗性素子の対121,122それぞれの抵抗値を決定できる。第1抵抗性素子121は、ノード101に印加される入力電圧及び第1入力端子151にかかる加重値設定電圧に基づいて、抵抗値が決定されてもよい。同様に、第2抵抗性素子122は、ノード101に印加される入力電圧及び負の入力端子152にかかる加重値設定電圧に基づいて、抵抗値が決定されてもよい。電界効果トランジスタ110がターンオンされる場合、抵抗性素子の対121,122それぞれの抵抗値を決定するために、電界効果トランジスタ110は、ノード101に中間電圧Vmidを印加する。ここで、第1抵抗性素子121の抵抗値は、ノード101に接続された一端に印加される中間電圧Vmid、及び、他端にかかる加重値設定電圧に基づいて決定され、第2抵抗性素子122の抵抗値は、ノード101に接続された一端に印加される中間電圧Vmid、及び、他端にかかる加重値設定電圧に基づいて、決定されてもよい。ここで、第1抵抗性素子121の他端に接続される第1入力端子151に印加される加重値設定電圧、及び、第2抵抗性素子122の他端に接続される第2入力端子152に印加される加重値設定電圧は、同一であってもよく、または、互いに異なってもよい。
【0045】
キャパシタC130は、抵抗性素子の対121,122及び電界効果トランジスタ110とそれぞれ接続され、電圧を受信することによって、電荷を充填又は放電することができる。例えば、キャパシタ130は、ノード101に発生する電圧を受信し、電荷を充填又は放電してもよい。より具体的に、キャパシタ130は、抵抗性素子の対121,122の個別的な抵抗値が決定された後、抵抗性素子の対それぞれの他端に、個別的に印加される入力電圧及び抵抗性素子の対121,122の組み合せられた抵抗値に基づいて、ノード101で発生する電圧を受信し、電荷を充電/放電することができる。
【0046】
図2は、一実施形態に係る乗算累積器回路を用いたコンピューティング方法を説明するフローチャートである。
【0047】
まず、動作S210において、乗算累積器回路は、複数の乗算器ごとに抵抗性素子の対それぞれの抵抗値を決定することで、抵抗性素子の対の組み合せられた抵抗値に対応する加重値を記録する。
【0048】
乗算累積器回路は、複数の乗算器のうち該当する乗算器に対して、該当する乗算器に含まれている抵抗性素子の対それぞれの一端に中間電圧Vmidを印加し、他端に加重値設定電圧を印加する。乗算累積器回路は、電界効果トランジスタを用いて、抵抗性素子の対それぞれの一端に中間電圧を印加し、該当する乗算器に含まれている入力端子を介して、抵抗性素子の対それぞれの他端に加重値設定電圧を印加することができる。後述するが、抵抗性素子の対の組み合せられた抵抗値は、1つの加重値に対応し、乗算累積器回路は、複数の乗算器ごとに抵抗性素子の対の組み合せられた抵抗値に対応する加重値を記録する。
【0049】
次に、動作S220において、乗算累積器回路は、複数の乗算器ごとにキャパシタを予め設定された電圧にプリチャージ(precharge)する。
【0050】
乗算累積器回路は、抵抗性素子の対の抵抗値が決定された後、複数の乗算器に含まれるキャパシタそれぞれに接続された出力ラインに、予め設定された電圧を印加することができる。ここで、複数の乗算器それぞれに含まれているキャパシタの一端に、予め設定された電圧が印加されてもよい。また、乗算累積器回路は、複数の乗算器ごとに入力端子に予め設定された電圧を印加してもよい。ここで、複数の乗算器に含まれるキャパシタの他端に予め設定された電圧が印加されてもよい。まとめると、乗算累積器回路は、複数の乗算器ごとにキャパシタの両端に予め設定された電圧を印加することができる。ここで、予め設定された電圧は、読み出し電圧Vreadであってもよい。読み出し電圧Vreadは、抵抗性素子の対の抵抗値を読み出す(read)ための電圧を示す。
【0051】
そして、動作S230において、乗算累積器回路は、複数の乗算器ごとに入力端子に入力電圧を印加することによって、入力値を印加する。
【0052】
乗算累積器回路は、複数の乗算器ごとに入力端子に入力電圧をそれぞれ入力する。後述するが、入力電圧の組み合せは、1つの入力値に対応し、乗算累積器回路は、複数の乗算器ごとに入力電圧の組み合わせに対応する入力値を印加することができる。
【0053】
そして、乗算器のキャパシタは、該当乗算器に印加される入力電圧の組み合わせに対応する入力値、及び、該当乗算器に含まれた抵抗性素子の対の抵抗値の組み合わせに対応する加重値を乗算した値に対応する電圧を受信し、受信された電圧に基づいて、電荷を充電/放電することができる。そして、出力ラインは、複数の乗算器それぞれに充填又は放電される電荷に基づいた電圧を出力することで、MAC演算を行うことができる。
【0054】
図3Aは、一実施形態に係る乗算累積器回路が乗算器に加重値を記録する過程を説明する図である。
【0055】
乗算累積器回路は、複数の乗算器のうち1つの乗算器300に対して加重値を記録する。乗算累積器回路は、第1抵抗性素子321及び第2抵抗性素子322の抵抗値を決定することができる。抵抗性素子は、抵抗性素子の両端にかかる電圧により抵抗値が変更され得る。
【0056】
一実施形態によれば、抵抗性素子は、抵抗性素子の両端に印加される電圧により、オン状態(on state)又はオフ状態(off state)に進入することができる。抵抗性素子は、オン状態で低い抵抗値である第1抵抗値を有してもよく、オフ状態で高い抵抗値である第2抵抗値を有してもよい。例えば、抵抗性素子がRRAMである場合、オン状態は、RRAMの低い抵抗値を有する低抵抗状態(Low Resistance State、LRS)に対応し、オフ状態は、RRAMの高い抵抗値を有する高抵抗状態(High Resistance State、HRS)に対応してもよい。異なる例として、抵抗性素子がMRAMである場合、オン状態は、MRAMの低い抵抗値を有する反-並列状態(anti-parallel state)に対応し、オフ状態は、高い抵抗値を有する並列状態(parallel state)に対応してもよい。
【0057】
乗算累積器回路は、乗算器300に抵抗性素子の対321,322の組み合せられた抵抗値による加重値を記録することができる。例えば、加重値は、+1、0、-1の3進値のいずれか1つの3進値であってもよい。抵抗性素子の対の組み合せられた抵抗値により記録される加重値に関連して、図4を参照してより具体的に説明する。
【0058】
乗算累積器回路は、抵抗性素子の対321,322それぞれの両端に電圧を印加することで、抵抗性素子の対321,322それぞれの抵抗値を決定することができる。まず、乗算累積器回路は、第1抵抗性素子321及び第2抵抗性素子322の一端に接続されているノード301に、電界効果トランジスタ310を用いて中間電圧Vmidを印加する。上述のように、電界効果トランジスタ310のゲート端子は、ワードラインに接続される。ワードラインに基準電圧VDDが入力される場合、ワードラインに接続される電界効果トランジスタ310のゲート端子に基準電圧VDDが印加される。基準電圧VDDが電界効果トランジスタ310のゲート端子に印加されれば、電界効果トランジスタ310はターンオンされ得る。
【0059】
電界効果トランジスタ310の第1端子は、ソースラインに接続される端子を示し、電界効果トランジスタの第2端子は、ノード301に接続される端子を示す。電界効果トランジスタの第1端子は、ドレーン端子及びソース端子の1つであってもよく、第2端子は、残りの端子であってもよい。ソースラインには中間電圧Vmidが入力されてもよい。
【0060】
乗算累積器回路は、電界効果トランジスタ310のゲート端子にワードラインを介して基準電圧VDDを印加することで、電界効果トランジスタをターンオンさせることができる。電界効果トランジスタ310がターンオンされた状態で、乗算累積器回路は、電界効果トランジスタ310の第1端子にソースラインを介して中間電圧Vmidを印加することで、電界効果トランジスタ310の第2端子の電圧を中間電圧Vmidに変更することができる。より具体的に、電界効果トランジスタ310のゲート端子に基準電圧VDDが印加されれば、電界効果トランジスタ310は、飽和領域(saturation region)として動作する。電界効果トランジスタ310が飽和領域として動作すれば、電界効果トランジスタ310内の第1端子と第2端子との間に低い抵抗経路が提供され、短絡回路のように動作し得る。その結果、第1端子に印加される中間電圧Vmidが第2端子の電圧に変更され、電界効果トランジスタ310は、第2端子に接続されたノード301に中間電圧Vmidを印加することができる。
【0061】
そして、抵抗性素子の対321、322の他端に加重値設定電圧が印加されることにより、抵抗性素子の対321、322それぞれの抵抗値が決定され得る。より具体的に、第1抵抗性素子321の一端はノード301に接続し、他端は第1入力端子351に接続される。乗算累積器回路は、第1入力端子351に加重値設定電圧を印加し、第1抵抗性素子321の他端には第1入力端子351から加重値設定電圧が印加される。同様に、第2抵抗性素子322の一端はノード301に接続し、他端は第2入力端子352に接続してもよい。乗算累積器回路は、第2入力端子352に加重値設定電圧を印加し、第2抵抗性素子322の他端には、第2入力端子352から加重値設定電圧が印加されてもよい。例えば、第1入力端子351に印加される加重値設定電圧と第2入力端子352に印加される加重値設定電圧の大きさは、同一であってもよく、又は、互いに異なってもよい。
【0062】
まとめると、第1抵抗性素子321は、ノード301に接続された一端に印加される中間電圧Vmid、及び、第1入力端子351に接続された他端に印加される第1加重値設定電圧に基づいて、抵抗値が決定され得る。第2抵抗性素子322は、ノード301に接続された一端に印加される中間電圧Vmid、及び、第2入力端子352に接続された他端に印加される第2加重値設定電圧に基づいて、抵抗値が決定され得る。
【0063】
図3Bを参照すると、一実施形態に係る乗算累積器回路は、抵抗性素子の対321,322それぞれの両端に電圧を印加することによって、抵抗性素子の対321,322それぞれの抵抗値を決定し、抵抗性素子の対の組み合せられた抵抗値による加重値を、抵抗性素子の対321,322を含む乗算器300に記録することができる。
【0064】
例えば、抵抗性素子の一端に印加される電圧で、ターンオン電圧Vonだけ高い電圧が抵抗性素子の他端に印加される場合、抵抗性素子は、ターンオン状態に進入することによって、第1抵抗値を有することができる。また、抵抗性素子の一端に印加される電圧で、ターンオフ電圧Voffだけ低い電圧が抵抗性素子の他端に印加される場合、抵抗性素子は、ターンオフ状態に進入することによって、第2抵抗値を有することができる。第1抵抗値は、第2抵抗値と比較して相対的に低い抵抗値であってもよい。一実施形態によれば、第2抵抗値に対する第1抵抗値の比率は、閾値比率以上であってもよい。一実施形態によれば、第1抵抗値は、閾値抵抗値よりも小さい抵抗値を示し、第2抵抗値は、閾値抵抗値よりも大きい抵抗値を示す。ターンオン電圧Von及びターンオフ電圧Voffは、抵抗性素子の種類に応じて、互いに異なってもよい。
【0065】
例示的に、抵抗性素子がRRAMである場合を仮定する。抵抗性素子の一端に印加される電圧で、ターンオン電圧Vonだけ高い電圧が他端に印加される場合、抵抗性素子内に伝導性経路(conductive path)が形成され、抵抗性素子は、低抵抗状態(low resistance state、LRS)に進入し、抵抗性素子は、相対的に小さい抵抗値を有する。一方、抵抗性素子の一端に印加される電圧で、ターンオフ電圧Voffだけ低い電圧が他端に印加される場合、抵抗性素子内には伝導性経路が形成できないため、抵抗性素子は、高抵抗状態(high resistance state、HRS)に進入し、抵抗性素子は、相対的に高い抵抗値を有する。
【0066】
一実施形態によれば、乗算累積器回路は、抵抗性素子の対321,322の組み合せられた抵抗値による加重値を、抵抗性素子の対321,322を含む乗算器300に記録することができる。一実施形態によれば、抵抗性素子の対の組み合せられた抵抗値は、下記の図9を参照して後述するニューラルネットワークに含まれたレイヤ間の連結線の加重値を示す3進値(ternary values)のいずれか1つの3進値に対応する。乗算累積器回路は、抵抗性素子が第1抵抗値及び第2抵抗値のうち1つの抵抗値を有する場合、「1」、「0」、「-1」の3進値のいずれか1つの3進値の加重値を乗算器に記録し得る。しかし、乗算器が記録できる加重値は、3進値に必ず限定されることはない。図7を参照して後述するが、抵抗性素子は、3つ以上の状態に進入可能であり、これによって、3つ以上の抵抗値を有してもよい。このような場合、乗算累積器回路は、組み合せられた抵抗値による様々な加重値を乗算器に記録し得る。
【0067】
一実施形態によれば、乗算累積器回路は、「1」を示す加重値が、第1抵抗性素子321及び第2抵抗性素子322がそれぞれ第1抵抗値及び第2抵抗値に決定される場合に対応し得る。乗算累積器回路は、第1抵抗性素子321をターンオン状態、第2抵抗性素子322をターンオフ状態でそれぞれ進入させて、「1」を示す加重値が記録される。より具体的に、乗算累積器回路は、電界効果トランジスタ310をターンオンさせてもよく、ソースラインを介して、ノード301に中間電圧Vmidを印加してもよい。そして、乗算累積器回路は、第1抵抗性素子の他端に接続された第1入力端子351に加重値設定電圧を印加してもよい。ここで、第1入力端子351に印加される加重値設定電圧は、中間電圧Vmidで、ターンオン電圧Vonだけ高い電圧(Von+Vmid)であってもよい。乗算累積器回路は、第1抵抗性素子321の一端に印加される中間電圧Vmid及び第1抵抗性素子321の他端に印加される第1加重値設定電圧に基づいて、第1抵抗性素子321をターンオン状態に進入させ、第1抵抗性素子の抵抗値を第1抵抗値として決定することができる。次に、乗算累積器回路は、第2抵抗性素子の他端に接続された第2入力端子352に加重値設定電圧を印加してもよい。ここで、第2入力端子352に印加される加重値設定電圧は、中間電圧Vmidで、ターンオフ電圧Voffだけ低い電圧(Vmid-Voff)であってもよい。乗算累積器回路は、第2抵抗性素子322の一端に印加される中間電圧Vmid及び第2抵抗性素子322の他端に印加される加重値設定電圧に基づいて、第2抵抗性素子322をターンオフ状態に進入させ、第2抵抗性素子の抵抗値を第2抵抗値として決定することができる。
【0068】
乗算累積器回路は、「0」を示す加重値が、第1抵抗性素子321及び第2抵抗性素子322が全て第2抵抗値として決定される場合に対応し得る。ここで、乗算累積器回路は、中間電圧Vmidで、ターンオフ電圧Voffだけ低い電圧(Vmid-Voff)を加重値設定電圧として第1入力端子351に印加し、中間電圧Vmidで、ターンオフ電圧Voffだけ低い電圧(Vmid-Voff)を加重値設定電圧として第2入力端子352に印加してもよい。
【0069】
また、乗算累積器回路は、「-1」を示す加重値が、第1抵抗性素子321及び第2抵抗性素子322がそれぞれ第2抵抗値及び第1抵抗値に決定される場合に対応し得る。ここで、乗算累積器回路は、中間電圧Vmidで、ターンオフ電圧Voffだけ低い電圧(Vmid-Voff)を加重値設定電圧として第1入力端子351に印加し、中間電圧Vmidで、ターンオン電圧Vonだけ高い電圧(Von+Vmid)を加重値設定電圧として第2入力端子352に印加してもよい。
【0070】
他の実施形態によれば、乗算累積器回路は、「0」を示す加重値が、第1抵抗性素子321及び第2抵抗性素子322が全て第1抵抗値に決定される場合に対応し得る。ここで、乗算累積器回路は、中間電圧Vmidで、ターンオン電圧Vonだけ高い電圧を第1入力端子351及び第2入力端子352に印加する。この場合、「1」を示す加重値及び「-1」を示す加重値に対応する抵抗値の組み合せは、前述の例示と同一である。
【0071】
一実施形態によれば、乗算累積器回路は、抵抗性素子の対321,322それぞれの抵抗値を同時に決定し得る。例えば、乗算累積器回路は、トランジスタをターンオンさせ、ノード301に中間電圧Vmidを印加し、第1入力端子351及び第2入力端子352に、加重値設定電圧を一回に印加することで、抵抗性素子の対321,322それぞれの抵抗値を同時に変更してもよい。言い換えれば、乗算累積器回路は、抵抗性素子の対それぞれの状態を同時に決定することができる。異なる一実施形態によれば、乗算累積器回路は、抵抗性素子の対321,322それぞれの状態を2周期(cycle)に乗算して、決定し得る。例えば、乗算累積器回路は、先に、第1入力端子351に加重値設定電圧を印加することで、第1抵抗性素子321の抵抗値を先に決定し、第1抵抗性素子321の抵抗値が決定された後、第2入力端子352に加重値設定電圧を印加することで、第2抵抗性素子322の抵抗値を決定してもよい。
【0072】
図4は、一実施形態に係る乗算累積器回路が入力値を乗算器に印加する以前に、予め設定された電圧でキャパシタの両端をプリチャージ(precharge)する過程について説明した図である。
【0073】
一実施形態に係る乗算累積器回路は、抵抗性素子の対421,422それぞれの抵抗値を決定して、加重値を乗算器に記録した後、該当する乗算器に入力値を印加することができる。乗算累積器回路に印加される入力値は、抵抗性素子の対421,422の他端に接続された入力端子に個別的に印加される入力電圧に基づいて、決定されてもよい。一実施形態によれば、乗算累積器回路は、抵抗性素子の対421,422それぞれに入力電圧を印加する前に、抵抗性素子の対421,422それぞれの他端に接続される入力端子451,452に、予め設定された電圧を印加して、出力ライン440に予め設定された電圧を印加することで、キャパシタ430の両端を予め設定された電圧にプリチャージすることができる。
【0074】
乗算累積器回路は、入力端子を介して入力電圧を抵抗性素子の対421,422の他端に印加し、入力値を乗算器に印加する以前に、キャパシタ430の両端の電圧をプリチャージすることができる。予め設定された電圧は、読み出し電圧Vreadであってもよいが、これに限定されることはない。読み出し電圧Vreadは、抵抗性素子の対421,422の抵抗値を読み出すための電圧として、加重値設定電圧よりも相対的に小さい電圧の大きさを有する。
【0075】
一実施形態によれば、乗算累積器回路は、抵抗性素子の対421,422の抵抗値を決定した後、電界効果トランジスタ410をターンオフさせることができる。例えば、乗算累積器回路は、電界効果トランジスタ410のゲート端子に接続されたワードラインに基準電圧の供給を中断する。ワードラインに基準電圧の供給が中断されれば、電界効果トランジスタ410のゲート端子には電圧が印加されず、電界効果トランジスタ410はターンオフされる。次に、乗算累積器回路は、第1抵抗性素子421の他端に接続された第1入力端子451に読み出し電圧Vreadを印加し、第2抵抗性素子422の他端に接続されている第2入力端子452にも読み出し電圧Vreadを印加する。また、乗算累積器回路は、キャパシタ430に接続された出力ライン440に読み出し電圧Vreadを印加することができる。
【0076】
一実施形態に係る乗算累積器回路は、第1入力端子451及び第2入力端子452に読み出し電圧Vreadを印加することにより、第1入力端子451と第2入力端子452との間のノード401にも読み出し電圧Vreadを印加することができる。第1入力端子451及び第2入力端子452に印加された電圧が、抵抗性素子の対421,422の抵抗値によって分配されることで、ノード401に印加される電圧の大きさが決定され得る。この場合、第1入力端子451及び第2入力端子452に、全て同じ読み出し電圧Vreadが印加されるため、第1抵抗性素子421及び第2抵抗性素子422の抵抗値に関係なく、読み出し電圧Vreadがノード401に印加され得る。すなわち、ノード401に接続されたキャパシタ430の一端及び出力ライン440に接続されたキャパシタ430の他端には、全て読み出し電圧Vreadが印加され得る。即ち、乗算累積器回路は、乗算器400に入力値が印加される前に、キャパシタ430が、電荷を充電/放電しない初期化された状態にすることができる。
【0077】
図5Aは、一実施形態に係る乗算累積器回路が乗算器に入力値を印加する過程を説明する図である。
【0078】
一つの例示的な実施形態よれば、乗算累積器回路は、抵抗性素子の対521,522それぞれの抵抗値が決定された後、抵抗性素子の対521,522それぞれの他端に接続された入力端子551,552に個別的に入力電圧を印加し、組み合せられた入力電圧による入力値を、乗算器に印加してもよい。一実施形態によれば、組み合せられた入力電圧は、下記の図9を参照し、後述するニューラルネットワークのレイヤに含まれているノードの出力値を示す3進値のいずれか1つの3進値に対応する。乗算累積器回路は、第1入力端子551に印加される入力電圧及び第2入力端子552に印加される入力電圧により、「1」、「0」、「-1」の3進値のうち1つの3進値を入力値として乗算器500に印加することができる。しかし、乗算累積器回路が印加できる入力値は、必ずしも3進値に限定されることはない。図8を参照して後述するが、第1入力端子及び第2入力端子には、様々な電圧の大きさの入力電圧が印加されてもよく、これにより、乗算累積器回路は、組み合せられた入力電圧による様々な入力値が、乗算器500に印加されてもよい。
【0079】
図5Bを参照すると、乗算累積器回路は、「1」を示す入力値が、第1入力端子551及び第2入力端子552にそれぞれ2×Vread、グラウンド電圧0が印加される場合に対応し得る。また、乗算累積器回路は、「0」を示す入力値が、第1入力端子551及び第2入力端子552に全てVreadが印加される場合に対応し得る。また、乗算累積器回路は、「-1」を示す入力値が、第1入力端子551及び第2入力端子552にそれぞれグラウンド電圧0及び2×Vreadが印加される場合に対応し得る。
【0080】
再び図5Aを参照すると、抵抗性素子の対521,522それぞれの抵抗値が決定された後、入力電圧が入力端子551,552に印加される場合、ノード501に、電圧が発生し得る。ノード501に発生する電圧は、乗算器500に印加される入力値、及び、記録された加重値を乗算して算出された値に対応する。言い換えれば、一実施形態に係る乗算累積器回路は、抵抗性素子の対521,522それぞれに個別的に印加される入力電圧の組み合わせに対応する入力値に、抵抗性素子の対521,522の組み合わせに対応する加重値を乗算して算出された値に対応する電圧を、ノード501に発生させることができる。
【0081】
より具体的に、第1入力端子551及び第2入力端子552にそれぞれ印加された電圧が、抵抗性素子の対521、522の決定された抵抗値に応じて分配されることによって、ノード501に電圧が発生する。下の表1は、乗算器500に記録される加重値及び印加される入力値に応じてノード501に発生する電圧を示す。
【表1】
表1を参照すると、3進値を有する加重値は、第1抵抗性素子521及び第2抵抗性素子522の状態(例えば、ターンオン状態(ON)又はターンオフ状態(OFF))に応じて決定された抵抗値に基づいて、決定される。また、3進値を有する入力値は、第1入力端子551及び第2入力端子552に印加される入力電圧に基づいて、決定される。
【0082】
ノード501に発生する電圧は、入力端子551,552に印加される入力電圧及び抵抗性素子の対521,522の決定された抵抗値に基づいて、決定され得る。
【0083】
例えば、第1抵抗性素子521がターンオン状態に進入し、第2抵抗性素子522がターンオフ状態に進入する場合、第1抵抗性素子521の第1抵抗値は、第2抵抗性素子522の第2抵抗値よりも相対的に小さいため、第1抵抗性素子521は、ほとんど短絡回路のように動作し、ノード501に発生する電圧は、第1入力端子551に印加される入力電圧の大きさとほとんど同一に示される。
【0084】
異なる例として、第1抵抗性素子521がターンオフ状態に進入し、第2抵抗性素子522がターンオン状態に進入する場合、第1抵抗性素子521の第2抵抗値は、第2抵抗性素子522の第1抵抗値よりも相対的に大きいため、第2抵抗性素子522は、ほとんど短絡回路のように動作し、ノード501に発生する電圧は、第2入力端子552に印加される入力電圧の大きさとほとんど同一に示される。
【0085】
表1を参照すると、乗算器500のノード501に発生する電圧は、3進値である加重値と3進値である入力値とを乗算して算出された値に対応する。例えば、加重値と入力値を乗算した値が「1」である場合、ノード501に発生する電圧の大きさは2×Vreadで示される。また、加重値と入力を乗算した値が「0」である場合、ノード501に発生する電圧の大きさはVreadで示される。最後に、加重値と入力を乗算した値が「-1」である場合、ノード501に電圧はほとんど発生しないものと示されている。
【0086】
図6は、一実施形態に係る乗算累積器回路の構造を説明する図である。
【0087】
一実施形態に係る乗算累積器回路600は、複数の乗算器611,612,613、及び出力ライン620を含む。複数の乗算器611,612,613それぞれは、図3A図5Bを参照して説明されたような構造及び動作方法を有してもよい。出力ライン620は、複数の乗算器611,612,613とそれぞれ接続される。出力ライン620は、複数の乗算器611,612,613それぞれに、充電/放電される電荷に基づいた電圧を出力することができる。
【0088】
出力ライン620は、複数の乗算器611,612,613のそれぞれに含まれているキャパシタの一端に接続されてもよい。出力ライン620は、容量性カップリング(capactivie coupling)を介して、複数の乗算器611,612,613に含まれているキャパシタのそれぞれに、充電/放電される電荷の累積に基づいた電圧を出力し得る。出力ライン620は、複数の乗算器611,612,613のそれぞれに対する加重値が記録された後、スイッチ621がターンオンされて、読み出し電圧Vreadでプリチャージされ得る。出力ライン620は、読み出し電圧にプリチャージされた後、スイッチ621がターンオフされてから、複数の乗算器611,612,613のそれぞれは、加重値と入力値の積に対応して出力される電圧により、電荷をキャパシタに充電/放電することができる。そして、出力ライン620には、複数の乗算器611,612,613に含まれたキャパシタのそれぞれに充電/放電される電荷が累積され、累積した電荷に基づいた電圧を出力することができる。
【0089】
例えば、乗算器611に含まれたキャパシタは、乗算器611のノードで発生する電圧を受信して、電荷を充電/放電してもよく、充電/放電される電荷を出力ライン620と共有してもよい。同様に、乗算器612に含まれたキャパシタも、乗算器612のノードで発生する電圧を受信して、電荷を充電/放電してもよく、充電/放電される電荷を出力ライン620と共有してもよい。すなわち、出力ライン620は、容量性カップリングによって、乗算器611,612,613それぞれのキャパシタに充填又は放電される電荷の累積に基づいた電圧を出力可能にする。
【0090】
さらに、一実施形態に係る乗算累積器回路は、複数の出力ラインを含んでもよい。複数の出力ラインが配置された構造をメモリアレイとも示してもよい。例えば、複数の出力ラインそれぞれは、複数の乗算器に接続され、複数の出力ラインのうち、該当出力ラインは、該当出力ラインに接続された複数の乗算器に充電/放電される電荷の累積に基づいた電圧を出力することができる。メモリアレイは、メモリアレイに含まれた複数の出力ラインそれぞれから出力される電圧に基づいて、インメモリ演算(in-memory computing)を行うことができる。
【0091】
一実施形態に係る乗算累積器回路は、抵抗性素子の対の抵抗値による電圧分配方式を使用することにより、ノードに電圧を発生させ、発生した電圧によって、キャパシタに電荷を充電/放電させることができる。一実施形態に係る乗算累積器回路は、電圧分配(voltage dividing)により、乗算器のノードに電圧を発生させるため、抵抗性素子のオン・オフ比率が小さくても、オン・オフ比率が閾値比率以上であれば、ノードに発生する電圧は、入力値に加重値が乗算した値に対応する電圧とほとんど同様に示される。ここで、抵抗性素子のオン・オフ比率は、抵抗性素子がオフ状態時の抵抗値である第2抵抗値に対するオン状態時の抵抗値である第1抵抗値の比率を示す。また、一実施形態に係る乗算累積器回路は、電圧分配方式を用いてノードに電圧を発生させるため、抵抗性素子の抵抗値可変の問題にも比較的に耐性が強いという長所がある。言い換えれば、抵抗性素子の抵抗値がある程度変更されても、ノードに発生する電圧は、第1抵抗性素子と第2抵抗性素子の抵抗値の比率によって決定されることから、ノードに発生する電圧は大きく変更されない。また、一実施形態において、他の乗算累積器回路は、容量性カップリングによりキャパシタそれぞれに充電/放電される電荷の累積に基づいた電圧を出力するため、最終出力電圧とMAC演算により算出される値の間に線型性(linearity)を保障できるという長所がある。
【0092】
図7は、一実施形態に係る乗算累積器回路が乗算器に記録できる加重値について説明する図である。
【0093】
一実施形態に係る乗算累積器回路は、抵抗性素子の対の組み合せられた抵抗値による加重値を乗算器に記録することができる。一実施形態によれば、抵抗性素子は、ターンオン状態及びターンオフ状態とは異なる中間状態に進入し得る。抵抗性素子が中間状態に進入する場合、抵抗性素子は、第3抵抗値を有する。乗算累積器回路は、抵抗性素子が進入する第3状態を用いて、3進値の加重値より拡張されたマルチビットの加重値を、乗算器に記録することができる。
【0094】
例えば、図7を参照すると、抵抗性素子は、両端に印加される電圧によって中間状態に進入し得る。抵抗性素子は、中間状態で第3抵抗値を有する。例えば、しかし、限定されないように、第3抵抗値は、第1抵抗値Ronよりも大きく、第2抵抗値Roffよりも小さい値であってもよい。第3抵抗値は、第2抵抗値の半分の抵抗値0.5Roffであってもよいが、これに限定されることはない。
【0095】
図7を参照すると、乗算累積器回路が、乗算器に5個の値3、1、0、-1、-3のいずれか1つの値を示す加重値を記録する過程について説明する。乗算累積器回路は、抵抗性素子の対の組み合せられた抵抗値により「3」、「1」、「0」、「-1」、「-3」の値のうち1つの値を示す加重値を乗算器に記録する。
【0096】
一実施形態によれば、乗算累積器回路は、「3」を示す加重値が、第1抵抗性素子721及び第2抵抗性素子722がそれぞれ第1抵抗値Ron及び第2抵抗値Roffに決定される場合に対応し得る。乗算累積器回路は、「1」を示す加重値が、第1抵抗性素子721及び第2抵抗性素子722がそれぞれ第3抵抗値0.5Roff及び第2抵抗値Roffに決定される場合に対応し得る。乗算累積器回路は、「0」を示す加重値が、第1抵抗性素子721及び第2抵抗性素子722が全て第2抵抗値Roffに決定される場合に対応し得る。乗算累積器回路は、「-1」を示す加重値が、第1抵抗性素子721及び第2抵抗性素子722がそれぞれ第2抵抗値Roff及び第3抵抗値0.5Roffに決定される場合に対応し得る。乗算累積器回路は、「-3」を示す加重値が、第1抵抗性素子721及び第2抵抗性素子722がそれぞれ第2抵抗値Roff及び第1抵抗値Ronに決定される場合に対応し得る。
【0097】
一実施形態に係る乗算累積器回路は、抵抗性素子の対の組み合せられた抵抗値により、5個の値3、1、0、-1、-3のうちいずれか1つを示す加重値を乗算器に記録し、組み合せられた入力電圧により、乗算器に入力値を印加することができる。また、乗算累積器回路は、乗算器に含まれたキャパシタが加重値と入力値を乗算した値に対応する電圧を受信し、電荷を充電/放電できるようにする。
【0098】
図8は、一実施形態に係る乗算累積器回路が乗算器に印加できる入力値について説明する図である。
【0099】
一実施形態に係る乗算累積器回路は、組み合せられた入力電圧による入力値を乗算器に印加する。一実施形態によれば、乗算累積器回路は、2×Vreadよりも大きい電圧を入力電圧として印加することができる。乗算累積器回路が2×Vreadよりも大きい電圧を入力電圧として印加する場合、入力値のビット数を増加させ得る。図8において、簡単な例示として、入力電圧を4×Vreadまで印加できる場合について説明する。4×Vreadまで入力電圧を印加する場合、5個の値(2、1、0、-1、-2)のうちいずれか1つを示す入力値を、乗算器に印加することができる。
【0100】
図8を参照すると、乗算累積器回路は、「2」を示す入力値が、第1入力端子851及び第2入力端子852に、それぞれ4×Vread、グラウンド電圧0が印加される場合に対応し得る。また、乗算累積器回路は、「1」を示す入力値が、第1入力端子851及び第2入力端子852に、それぞれ3×Vread及びVreadが印加される場合に対応し得る。乗算累積器回路は、「0」を示す入力値が、第1入力端子851及び第2入力端子852に、全て2×Vreadが印加される場合に対応し得る。また、乗算累積器回路は、「-1」を示す入力値が、第1入力端子851及び第2入力端子852に、それぞれVread及び3×Vreadが印加される場合に対応し得る。また、乗算累積器回路は、「-2」を示す入力値が、第1入力端子851及び第2入力端子852に、それぞれグラウンド電圧0及び4×Vreadが印加される場合に対応し得る、一実施形態に係る乗算累積器回路は、抵抗性素子の対の組み合せられた抵抗値による加重値を乗算器に記録し、組み合せられた入力電圧により、5個の値(2、1、0、-、1、-2)のうちいずれか1つを示す入力値を、乗算器に印加することができる。また、乗算累積器回路は、乗算器に含まれているキャパシタが加重値と入力値を乗算した値に対応する電圧を受信して、電荷を充電/放電できるようにする。
【0101】
図9は、一実施形態に係る乗算累積器回路によって実現されるニューラルネットワーク演算の例示を説明する図である。
【0102】
ニューラルネットワーク900は、ディープニューラルネットワーク(deep neural network、DNN)の例示である。DNNは、完全接続ネットワーク(fully connected network)、ディープコンボリューショナルネットワーク(deep convolutional network)及びリカレントニューラルネットワーク(recurrent neural network)などを含む。ニューラルネットワーク900は、ディープラーニングに基づいて、非線形関係にある入力データ及び出力データを互いにマッピングすることで、オブジェクト分類、オブジェクト認識、音声認識、及びイメージ認識などを行ってもよい。ディープラーニングは、ビッグデータセットからイメージ又は音声認識のような問題を解決するための機械学習方式で教師あり(supervised)又は教師なし(unsupervised)学習を介して、入力データ及び出力データを互いにマッピングすることができる。
【0103】
図9には、説明の便宜のために隠れ層が2つのレイヤを含むものとして示されているが、隠れ層は、様々な数のレイヤを含んでもよい。また、図9において、ニューラルネットワーク900は、入力データを受信するための別途の入力層910を含むものとして示されているが、入力データが隠れ層に直接入力されてもよい。ニューラルネットワーク900において、出力層を除いたレイヤの人工ノードは、出力信号を送信するためのリンクを介して、次のレイヤの人工ノードに接続されてもよい。リンクの数は、次のレイヤに含まれた人工ノードの数に対応する。
【0104】
隠れ層に含まれたそれぞれの人工ノードには、以前レイヤに含まれた人工ノードの出力が、加重された形態で入力されてもよい。加重された形態の入力は、加重された入力と呼ばれ、これは以前レイヤに含まれた人工ノードの出力に加重値が乗算されたものである。加重値は、ニューラルネットワーク900のパラメータと称されてもよい。このような加重された入力の合計に活性化関数が適用され、次のレイヤから出力されてもよい。活性化関数は、シグモイド(sigmoid)、ハイパボリックタンジェント(hyperbolic tangent、tanh)、及びReLU(rectified linear unit)を含んでもよい。活性化関数によってニューラルネットワーク900に非線型性が形成されてもよい。出力層に含まれている各人工ノードには、以前レイヤに含まれた人工ノードの出力が加重された形態として、加重された入力が入力されてもよい。
【0105】
ディープラーニングアルゴリズムを駆動するためのインメモリ演算(in-memory computing)に、図1図8を参照して上述した乗算累積器回路が適用され得る。例えば、ニューラルネットワーク900のノード921間に伝達される加重された入力の算出は、乗算と加算を繰り返すMAC演算により構成され得る。ニューラルネットワーク900の任意のいずれか1つのノード921の出力は、下記の数式(1)のように示される。
【数1】
【0106】
上述の数式(1)は、任意のレイヤにおいて、m個の加重された入力値に対するi番目のノード921の出力値yを示すことができる。xは、以前レイヤのj番目の出力値(例えば、ノード値)を示し、wj、iは、以前レイヤのj番目の出力値及びi番目ノード921に適用される加重値を示す。wi、は、当該レイヤのi番目のノード921においてm個の加重された入力値のうち、j番目に加重された入力を示し、f()は、活性化関数を示す。数式(1)に示すように、活性化関数に対して、ノード値x及び加重値wj、iの乗算累積結果が使用されてもよい。言い換えれば、希望する時点に、適切なノード値x及び加重値wj、iをロードしなければならないメモリアクセス動作と、それらを乗算して足し算するMAC演算を繰り返すことができる。
【0107】
一実施形態によれば、乗算累積器回路において、抵抗性素子の対の組み合せられた抵抗値は、複数のノードを含むレイヤを含むニューラルネットワーク900で、複数のノードを接続する連結線の加重値に対応する。一実施形態によれば、乗算累積器回路で組み合せられた入力電圧は、複数のノードを有するレイヤを含むニューラルネットワーク900で、ノードの出力値xに対応する。従って、乗算累積器回路は、ニューラルネットワーク900の実施に要求される演算のうち、少なくとも一部を行うことができる。但し、一実施形態に係る乗算累積器回路の適用は、これに限定されることなく、その他にも、アナログ回路特性を用いた複数入力データを低電力で迅速に処理しなければならない演算動作にも活用され得る。
【0108】
上述の実施形態は、ハードウェア構成要素、ソフトウェア構成要素、又は、ハードウェア構成要素及びソフトウェア構成要素の組み合せで具現される。例えば、本実施形態で説明した装置及び構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ(digital signal processor)、マイクロコンピュータ、FPA(field programmable array)、PLU(programmable logic unit)、マイクロプロセッサ、又は命令(instruction)を実行して応答する異なる装置のように、1つ以上の汎用コンピュータ又は特殊目的コンピュータを用いて具現される。処理装置は、オペレーティングシステム(OS)及びオペレーティングシステム上で実行される1つ以上のソフトウェアアプリケーションを実行する。また、処理装置は、ソフトウェアの実行に応答してデータをアクセス、格納、操作、処理、及び生成する。理解の便宜のために、処理装置は、1つが使用されるものとして説明する場合もあるが、当技術分野で通常の知識を有する者は、処理装置が、複数の処理要素(processing element)及び/又は複数類型の処理要素を含むことを把握する。例えば、処理装置は、複数のプロセッサ又は1つのプロセッサ及び1つのコントローラを含む。また、並列プロセッサ(parallel processor)のような、他の処理構成も可能である。
【0109】
ソフトウェアは、コンピュータプログラム、コード、命令、又は、そのうちの一つ以上の組合せを含み、希望の通りに動作するよう処理装置を構成、または、独立的又は結合的に処理装置を命令することができる。ソフトウェア及び/又はデータは、処理装置によって解釈され、または、処理装置に命令又はデータを提供するために、いずれかの類型の機械、構成要素、物理的装置、仮想装置、コンピュータ格納媒体又は装置、又は、送信される信号波に永久的又は一時的に具体化することができる。ソフトウェアは、ネットワークに連結されたコンピュータシステム上に分散され、分散した方法で格納され、または、実行され得る。ソフトウェア及びデータは、一つ以上のコンピュータで読出し可能な記録媒体に格納され得る。
【0110】
本実施形態による方法は、様々なコンピュータ手段を介して実施されるプログラム命令の形態で具現され、コンピュータ読み取り可能な記録媒体に記録される。記録媒体は、プログラム命令、データファイル、データ構造などを、単独又は組み合せて含む。記録媒体及びプログラム命令は、本発明の目的のために特別に設計して構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり、使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例として、ハードディスク、フロッピー(登録商標)ディスク、及び磁気テープのような磁気媒体、CD-ROM、DVDのような光記録媒体、フロプティカルディスクのような磁気-光媒体、及びROM、RAM、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置を含む。プログラム命令の例としては、コンパイラによって生成されるような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行される高級言語コードを含む。
【0111】
上述のハードウェア装置は、本発明に示す動作を実行するために1つ以上のソフトウェアモジュールとして作動するように構成してもよく、その逆も同様である。
【0112】
上述のように、実施形態が限定された図面によって説明されてきたが、当技術分野で通常の知識を有する者であれば、上記の説明に基づいて、様々な技術的な修正及び変形を適用することができる。例えば、説明された技術が、説明された方法と異なる順で実行されてよく、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法と異なる形態で結合又は組み合わせられてもよいし、他の構成要素又は均等物によって、置き換え又は置換されたとしても適切な結果を達成することができる。
【符号の説明】
【0113】
100 乗算器
110 電界効果トランジスタ
121、122 抵抗性素子の対
130 キャパシタ
140 出力ライン140
900 ニューラルネットワーク
921 ノード
図1
図2
図3A
図3B
図4
図5A
図5B
図6
図7
図8
図9