特許第6521207号(P6521207)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ TDK株式会社の特許一覧

特許6521207積和演算器、積和演算方法、論理演算デバイスおよびニューロモーフィックデバイス
<>
  • 特許6521207-積和演算器、積和演算方法、論理演算デバイスおよびニューロモーフィックデバイス 図000004
  • 特許6521207-積和演算器、積和演算方法、論理演算デバイスおよびニューロモーフィックデバイス 図000005
  • 特許6521207-積和演算器、積和演算方法、論理演算デバイスおよびニューロモーフィックデバイス 図000006
  • 特許6521207-積和演算器、積和演算方法、論理演算デバイスおよびニューロモーフィックデバイス 図000007
  • 特許6521207-積和演算器、積和演算方法、論理演算デバイスおよびニューロモーフィックデバイス 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】6521207
(24)【登録日】2019年5月10日
(45)【発行日】2019年5月29日
(54)【発明の名称】積和演算器、積和演算方法、論理演算デバイスおよびニューロモーフィックデバイス
(51)【国際特許分類】
   G06G 7/60 20060101AFI20190520BHJP
【FI】
   G06G7/60
【請求項の数】13
【全頁数】27
(21)【出願番号】特願2019-510980(P2019-510980)
(86)(22)【出願日】2018年11月8日
(86)【国際出願番号】JP2018041478
【審査請求日】2019年2月22日
【早期審査対象出願】
(73)【特許権者】
【識別番号】000003067
【氏名又は名称】TDK株式会社
(74)【代理人】
【識別番号】100106909
【弁理士】
【氏名又は名称】棚井 澄雄
(74)【代理人】
【識別番号】100163496
【弁理士】
【氏名又は名称】荒 則彦
(74)【代理人】
【識別番号】100188558
【弁理士】
【氏名又は名称】飯田 雅人
(74)【代理人】
【識別番号】100169694
【弁理士】
【氏名又は名称】荻野 彰広
(72)【発明者】
【氏名】寺▲崎▼ 幸夫
【審査官】 三橋 竜太郎
(56)【参考文献】
【文献】 特表2017−511948(JP,A)
【文献】 特開2001−202017(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/00−17/18
G06G 1/00−99/00
(57)【特許請求の範囲】
【請求項1】
複数のデータのそれぞれに応じた信号を生成する第1回路と、
抵抗値が可変である複数の可変抵抗素子のそれぞれによって前記第1回路によって生成された複数の前記信号のそれぞれに重みを乗算してこれら複数の乗算結果の総和を演算する第1演算回路を有する第2回路と、
前記複数の前記データのそれぞれに応じた値の加算結果または前記加算結果が調整された結果を演算する第3回路と、
前記第2回路の前記第1演算回路によって演算された結果と前記第3回路によって演算された結果との差分を出力する差分回路を有する第4回路と、
を備える積和演算器。
【請求項2】
前記第2回路の前記第1演算回路によって演算される結果と、前記第3回路によって演算される結果は、アナログ信号であり、
前記第4回路の前記差分回路は、アナログ回路である、
請求項1に記載の積和演算器。
【請求項3】
前記第2回路の前記第1演算回路によって演算される結果と、前記第3回路によって演算される結果は、デジタルデータであり、
前記第4回路の前記差分回路は、デジタル回路である、
請求項1に記載の積和演算器。
【請求項4】
前記複数の前記可変抵抗素子において、共通のコンダクタンスの可変な範囲が設定され、
前記第2回路の前記第1演算回路は、前記複数の前記乗算結果の総和を取得する容量を有し、
前記第3回路によって演算される結果は、(前記複数の前記データのそれぞれに応じた値の前記加算結果)と(前記可変抵抗素子の前記コンダクタンスの可変な範囲の中心値)と{1/(前記容量)}とを乗算した結果である、
請求項1から請求項3のいずれか1項に記載の積和演算器。
【請求項5】
前記複数の可変抵抗素子において、共通のコンダクタンスの可変な範囲が設定され、
前記第2回路の前記第1演算回路は、前記複数の前記乗算結果の総和を取得する容量を有し、
前記第3回路によって演算される結果は、(前記複数の前記データのそれぞれに応じた値の前記加算結果)と(前記可変抵抗素子の前記コンダクタンスの可変な範囲の中心値)と{1/(前記容量)}との積に第1係数を乗算した結果と第2係数との和に相当する、
請求項1から請求項3のいずれか1項に記載の積和演算器。
【請求項6】
前記第1回路が前記複数の前記データのそれぞれに応じた前記信号を生成することは、前記第1回路が前記複数の前記データのそれぞれに応じたパルス幅変調信号を生成することである、
請求項1から請求項5のいずれか1項に記載の積和演算器。
【請求項7】
前記第1回路が前記複数の前記データのそれぞれに応じた前記信号を生成することは、前記第1回路が前記複数の前記データのそれぞれに応じた振幅変調信号を生成することである、
請求項1から請求項5のいずれか1項に記載の積和演算器。
【請求項8】
前記第2回路は、複数の前記第1演算回路を有し、
前記第4回路は、前記複数の前記第1演算回路のそれぞれごとに前記差分回路を有する、
請求項1から請求項7のいずれか1項に記載の積和演算器。
【請求項9】
前記複数の前記データは、時系列の順に前記第3回路に入力され、
前記第3回路は、前記時系列の順に、前記複数の前記データのそれぞれに応じた値を加算する、
請求項1から請求項8のいずれか1項に記載の積和演算器。
【請求項10】
前記可変抵抗素子は、磁気抵抗効果を示す磁気抵抗効果素子である、
請求項1から請求項9のいずれか1項に記載の積和演算器。
【請求項11】
第1回路と第2回路と第3回路と第4回路を備え、前記第2回路は第1演算回路を有し、前記第4回路は差分回路を有する積和演算器において行われる積和演算方法であって、
前記第1回路が、複数のデータのそれぞれに応じた信号を生成し、
前記第2回路の前記第1演算回路が、抵抗値が可変である複数の可変抵抗素子のそれぞれによって前記第1回路によって生成された複数の前記信号のそれぞれに重みを乗算してこれら複数の乗算結果の総和を演算し、
前記第3回路が、前記複数の前記データのそれぞれに応じた値の加算結果または前記加算結果が調整された結果を演算し、
前記第4回路の前記差分回路が、前記第2回路の前記第1演算回路によって演算された結果と前記第3回路によって演算された結果との差分を出力する、
積和演算方法。
【請求項12】
請求項1から請求項10のいずれか1項に記載の積和演算器を含み、
論理演算を実行する、
論理演算デバイス。
【請求項13】
請求項1から請求項10のいずれか1項に記載の積和演算器を含み、
前記積和演算器の前記可変抵抗素子は、ニューロモーフィック素子である、
ニューロモーフィックデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、積和演算器、積和演算方法、論理演算デバイスおよびニューロモーフィックデバイスに関する。
【背景技術】
【0002】
例えば、ニューラルネットワークなどの回路において、積和演算が行われている。このような積和演算をアナログ的に実行する技術の研究が進められている。当該技術では、抵抗が変化する素子(説明の便宜上、「可変抵抗素子」ともいう。)を使用する構成が検討されている。特に、良好な特性を有する素子として、抵抗が線形に変化する可変抵抗素子の使用が検討されている。
【0003】
このような可変抵抗素子として、近年、アナログ的にコンダクタンス(抵抗の逆数)が変化するニューロモーフィック(Neuromorphic)素子が注目されている。ニューロモーフィック素子を利用して、積和演算を低電力で高速に実行することが可能な新たな演算機構が研究されている。
【0004】
より具体的には、信号線および可変抵抗素子を用いたアレイによって、ニューラルネットワークの層間の結合を表す回路が実現される。例えば、パルス長あるいは電圧に応じて変調させられた入力信号がアレイに印加される構成とされる。そして、所定の信号線に流れる電流量を積和演算の結果として使用する構成とされる。このような構成では、アレイは、アナログ積和演算器を構成する回路として機能する。なお、デジタル積和演算器を構成する回路として機能するアレイを構成することも可能である。
【0005】
例えば、ニューラルネットワークでは、結合の重みが負の値を持つことがある。このようなニューラルネットワークにおけるアレイによる積和演算を実現するためには、正の値を持つ重みと負の値を持つ重みを表現することが必要である。
ここで、可変抵抗素子は負のコンダクタンスを持つことができないため、積和演算器において、負の値を持つ重みを表現する工夫が為されている。
【0006】
一例として、特許文献1に記載された積和演算装置では、正の値を持つ重みと負の値を持つ重みとで素子列を分離し、これらの重みとして絶対値を割り当て、重みの乗算後に、正の素子列の結果と負の素子列の結果との差分を計算する構成が用いられている(特許文献1参照。)。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】国際公開第2018/034163号
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、特許文献1に記載された技術では、例えば、重みの正負の符号によって別の素子列を割り当てる機構が必要になり、当該機構および割り当ての制御が煩雑となる場合があった。
また、特許文献1では、正の値を持つ重みと負の値を持つ重みとが混在する積和演算を表現する構成について明らかにされておらず、正の値を持つ重みと負の値を持つ重みとが混在する場合に積和演算を表現する集積回路を実装する構成が明らかでなかった。
【0009】
なお、他の構成例として、それぞれの重みに対して2個の素子を割り当てて、それぞれの重みに対して2個の素子によって正の値と負の値を記憶する構成が考えられる。しかしながら、このような構成では、それぞれの重みに対して2個の素子が必要になることから、アレイの物理的なサイズが大きくなること、正負の符号に応じた割り当ての回路が必要になること、あるいは、どちらかの素子が故障するだけで重みとして機能しなくなるため、大規模アレイ化した場合にはアレイの歩留まり低下やそれに対する冗長領域を設けるなどの策が必要になる、などの課題が発生する。
【0010】
本発明は、このような事情を考慮してなされたもので、正の値を持つ重みと負の値を持つ重みとが混在する積和演算を簡易に実現することができる積和演算器、積和演算方法、論理演算デバイスおよびニューロモーフィックデバイスを提供することを課題とする。
【課題を解決するための手段】
【0011】
本発明の一態様は、複数のデータのそれぞれに応じた信号を生成する第1回路と、抵抗値が可変である複数の可変抵抗素子のそれぞれによって前記第1回路によって生成された複数の前記信号のそれぞれに重みを乗算してこれら複数の乗算結果の総和を演算する第1演算回路を有する第2回路と、前記複数の前記データのそれぞれに応じた値の加算結果または前記加算結果が調整された結果を演算する第3回路と、前記第2回路の前記第1演算回路によって演算された結果と前記第3回路によって演算された結果との差分を出力する差分回路を有する第4回路と、を備える積和演算器である。
【0012】
本発明の一態様は、積和演算器において、前記第2回路の前記第1演算回路によって演算される結果と、前記第3回路によって演算される結果は、アナログ信号であり、前記第4回路の前記差分回路は、アナログ回路である。
本発明の一態様は、積和演算器において、前記第2回路の前記第1演算回路によって演算される結果と、前記第3回路によって演算される結果は、デジタルデータであり、前記第4回路の前記差分回路は、デジタル回路である。
本発明の一態様は、積和演算器において、前記複数の前記可変抵抗素子において、共通のコンダクタンスの可変な範囲が設定され、前記第2回路の前記第1演算回路は、前記複数の前記乗算結果の総和を取得する容量を有し、前記第3回路によって演算される結果は、(前記複数の前記データのそれぞれに応じた値の前記加算結果)と(前記可変抵抗素子の前記コンダクタンスの可変な範囲の中心値)と{1/(前記容量)}とを乗算した結果である。
本発明の一態様は、積和演算器において、前記複数の可変抵抗素子において、共通のコンダクタンスの可変な範囲が設定され、前記第2回路の前記第1演算回路は、前記複数の前記乗算結果の総和を取得する容量を有し、前記第3回路によって演算される結果は、(前記複数の前記データのそれぞれに応じた値の前記加算結果)と(前記可変抵抗素子の前記コンダクタンスの可変な範囲の中心値)と{1/(前記容量)}との積に第1係数を乗算した結果と第2係数との和に相当する。
【0013】
本発明の一態様は、積和演算器において、前記第1回路が前記複数の前記データのそれぞれに応じた前記信号を生成することは、前記第1回路が前記複数の前記データのそれぞれに応じたパルス幅変調信号を生成することである。
本発明の一態様は、積和演算器において、前記第1回路が前記複数の前記データのそれぞれに応じた前記信号を生成することは、前記第1回路が前記複数の前記データのそれぞれに応じた振幅変調信号を生成することである。
本発明の一態様は、積和演算器において、前記第2回路は、複数の前記第1演算回路を有し、前記第4回路は、前記複数の前記第1演算回路のそれぞれごとに前記差分回路を有する。
本発明の一態様は、積和演算器において、前記複数の前記データは、時系列の順に前記第3回路に入力され、前記第3回路は、前記時系列の順に、前記複数の前記データのそれぞれに応じた値を加算する。
本発明の一態様は、積和演算器において、前記可変抵抗素子は、磁気抵抗効果を示す磁気抵抗効果素子である。
【0014】
本発明の一態様は、第1回路と第2回路と第3回路と第4回路を備え、前記第2回路は第1演算回路を有し、前記第4回路は差分回路を有する積和演算器において行われる積和演算方法であって、前記第1回路が、複数のデータのそれぞれに応じた信号を生成し、前記第2回路の前記第1演算回路が、抵抗値が可変である複数の可変抵抗素子のそれぞれによって前記第1回路によって生成された複数の前記信号のそれぞれに重みを乗算してこれら複数の乗算結果の総和を演算し、前記第3回路が、前記複数の前記データのそれぞれに応じた値の加算結果または前記加算結果が調整された結果を演算し、前記第4回路の前記差分回路が、前記第2回路の前記第1演算回路によって演算された結果と前記第3回路によって演算された結果との差分を出力する。
【0015】
本発明の一態様は、以上のようないずれかの積和演算器を含み、論理演算を実行する、論理演算デバイスである。
本発明の一態様は、以上のようないずれかの積和演算器を含み、積和演算器の可変抵抗素子は、ニューロモーフィック素子である、ニューロモーフィックデバイスである。
【発明の効果】
【0016】
本発明の一態様によれば、正の値を持つ重みと負の値を持つ重みとが混在する積和演算を簡易に実現することができる。
【図面の簡単な説明】
【0017】
図1】本発明の実施形態(第1実施形態)に係る積和演算器の概略的な構成を示す図である。
図2】本発明の実施形態に係る理論値の具体例を示す図である。
図3】本発明の実施形態に係る実測値シミュレーションの具体例(電圧に対する補正)を示す図である。
図4】本発明の実施形態に係る実測値シミュレーションの具体例(電荷量に対する補正)を示す図である。
図5】本発明の実施形態(第2実施形態)に係る積和演算器の概略的な構成を示す図である。
【発明を実施するための形態】
【0018】
以下、図面を参照し、本発明の実施形態について説明する。
【0019】
(第1実施形態)
[積和演算器の構成]
図1は、本発明の実施形態(第1実施形態)に係る積和演算器1の概略的な構成を示す図である。
積和演算器1は、入力部11と、アレイ部12と、変換部13と、出力部14を備える。
【0020】
また、図1には、積和演算器1の制御を行う制御部15を示してある。本実施形態では、制御部15は、積和演算器1とは別の機能部として構成されている。この場合、積和演算器1および制御部15は、例えば、所定の装置(例えば、積和演算装置)あるいは所定のシステム(例えば、積和演算システム)に含まれると捉えられてもよい。他の例として、制御部15は、積和演算器1と一体として構成されてもよい。この場合、積和演算器1は制御部15を備えると捉えられてもよい。
【0021】
本実施形態では、アレイ部12は、N行M列のアレイから構成されている。本実施形態では、Nは2以上の整数であり、Mは2以上の整数である。なお、図1の例では、図示の便宜上、Nが3以上の整数である場合を示すが、Nは2であってもよい。また、本実施形態では、複数行複数列のアレイを示すが、他の例として、Mは1であってもよく、つまり、複数行1列のアレイが用いられてもよい。
【0022】
ここで、積和演算器1では、複数の回路素子が信号線で接続されている。本実施形態では、説明の便宜上、一部の信号線について符号を付して説明し、他の信号線については符号および詳しい説明を省略する。
なお、有線で信号を伝送する信号線の代わりに、無線で信号を伝送する構成が用いられてもよい。
【0023】
入力部11は、N行分に相当するN個の入力レジスタ31−1〜31−Nと、N行分に相当するN個の入力信号生成回路32−1〜32−Nと、信号線33を備える。ここで、入力信号生成回路32−1〜32−Nは、例えば、出力バッファ、もしくは、入出力バッファの様なドライバ回路とその前段の変調回路との組み合わせを有してもよい。その場合、入力信号生成回路32−1〜32−Nの変調回路の役割は、入力信号用の源信号(図示せず)から入力レジスタ31−1〜31−Nの値によって変調した信号をドライバ回路に出力することになる。
【0024】
アレイ部12は、(N×M)行分に相当する(N×M)個の可変抵抗素子41−11〜41−NMと、M列分に相当するM個の信号線42−1〜42−Mを備える。
図1の例では、可変抵抗素子41−ijが、i行j列の可変抵抗素子を表している。iは1以上N以下の整数であり、jは1以上M以下の整数である。図1の例では、アレイ部12において、行方向(図1では縦方向)にN個並んだ可変抵抗素子の系統が、列方向(図1の例では横方向)にM個並んでいる。本実施形態では、説明の便宜上、i、jを用いて説明する場合ある。
【0025】
本実施形態では、それぞれの可変抵抗素子41−ijは、ニューロモーフィック素子である。
それぞれの可変抵抗素子41−ijは、例えば、不揮発性素子であってもよい。
それぞれの可変抵抗素子41−ijは、例えば、磁気抵抗効果を示す磁気抵抗効果素子であってもよい。磁気抵抗効果素子は、スピンを利用して抵抗を変化させる素子であってもよい。
【0026】
例えば、コンダクタンスの変化において線形性を有する磁気抵抗効果素子が知られている。このような磁気抵抗効果素子では、例えば、コンダクタンスを変化させる物理量(当該磁気抵抗効果素子が有する2つの強磁性層の磁化の関係)の変化に応じて、コンダクタンスが線形に変化する。また、このような磁気抵抗効果素子では、コンダクタンスの変化において対称性を有するものが知られている。当該対称性は、コンダクタンスの増大の仕方と当該コンダクタンスの減少の仕方との間の対称性である。すなわち、コンダクタンスが一の値から他の値へ増大する場合における当該コンダクタンスの変化率の絶対値と、当該コンダクタンスが当該他の値から当該一の値へ減少する場合における当該コンダクタンスの変化率の絶対値とは、誤差による違いを除いて、一致する。このように、それぞれの可変抵抗素子41−ijとしては、コンダクタンスの変化において線形性および対称性を有する磁気抵抗効果素子が用いられることが好ましい。
【0027】
なお、ニューロモーフィック素子としては、任意の素子が用いられてもよい。また、ニューロモーフィック素子としては、例えば、1種類のニューロモーフィック素子が複数組み合わされて用いられてもよく、あるいは、2種類以上のニューロモーフィック素子が組み合わされて用いられてもよい。一例として、ニューロモーフィック素子として、結晶と非晶質との相変化を段階的に制御するPCM(Phase Change Memory)を使用する素子が用いられてもよい。他の例として、ニューロモーフィック素子として、電気化学的反応により金属析出とイオン化との間のパスの形成および消滅を利用するCBRAM(Conductive Bridge Random Access Memory)を使用する素子が用いられてもよい。他の例として、ニューロモーフィック素子として、スピントロニクス(Spintronics)を使用する素子が用いられてもよく、例えば、磁壁の制御による線形的抵抗変化を発生させるドメインウォール型の素子、あるいは、スピン軌道トルク作用による磁化反転を使用したSOT(Spin Orbit Torque)型の素子が用いられてもよい。他の例として、ニューロモーフィック素子として、TaO等の媒体に金属析出によるフィラメントを形成して抵抗変化を利用するReRAM(Resistive Random Access Memory)を使用する素子が用いられてもよい。
【0028】
変換部13は、加算回路111と、調整回路112と、デジタルアナログ変換器(DAC:Digital Analog Converter)113を備える。出力部14は、M列分に相当するM個の検出回路61−1〜61−Mと、M行分に相当するM個の差分回路131−1〜131−Mと、M列分に相当するM個の出力端151−1〜151−Mを備える。M個の差分回路131−1〜131−Mのそれぞれは、例えば、差動回路であってもよく、一例として、オペアンプであってもよい。
【0029】
ここで、本実施形態では、説明の便宜上、積和演算器1における各回路を幾つかの機能部(例えば、入力部11、アレイ部12、変換部13、出力部14)に区分して説明するが、このような区分は一例であって、他の任意の区分が用いられてもよい。また、このような区分は、必ずしも用いられなくてもよい。
【0030】
[積和演算器における各回路の機能および動作]
積和演算器1における各回路の機能および動作の例を説明する。
N個の入力レジスタ31−1〜31−Nのそれぞれに、外部の装置から入力されるデータ(説明の便宜上、「入力データ」ともいう。)が記憶される。当該データは、デジタルデータ(「デジタル信号」と呼ばれてもよい。)である。
【0031】
ここで、当該外部の装置は、任意の装置であってもよい。当該外部の装置は、例えば、データを記憶する記憶装置であってもよく、あるいは、データを出力するコンピュータやセンサなどの素子であってもよい。当該外部の装置は、積和演算器1により演算を行う対象となるデータを、N個の入力レジスタ31−1〜31−Nのそれぞれに入力する。本実施形態では、積和演算器1へ入力されるデータは、N行分に相当するN個のデータの組み合わせである。なお、積和演算器1へのデータの入力としては、例えば、外部の装置が主導して当該データを積和演算器1に入力してもよく、あるいは、積和演算器1が主導して外部の装置から当該データを入力してもよい。
【0032】
i行目の入力レジスタ31−iは、記憶されたデータを、i行目の入力信号生成回路32−iに出力する。ここで、本実施形態では、N個の入力レジスタ31−1〜31−Nのそれぞれは、これらN個の入力レジスタ31−1〜31−Nについて時系列の順に入力されたN個のデータのそれぞれを、時系列の順に出力する。これにより、本実施形態では、積和演算器1へ入力されるN行分のN個のデータの組み合わせは、その組み合わせのまま処理されていく。なお、このような処理が実現されれば、N個の入力レジスタ31−1〜31−Nのそれぞれにデータが入力されるタイミング、あるいは、N個の入力レジスタ31−1〜31−Nのそれぞれからデータが出力されるタイミングとしては、任意のタイミングが用いられてもよい。
【0033】
N個の入力レジスタ31−1〜31−Nのそれぞれから出力されるデータは、加算回路111にも伝送される。本実施形態では、N個の入力レジスタ31−1〜31−Nのそれぞれから出力されるデータが同一の信号線33に入力されて、当該信号線33を介して、加算回路111に伝送される。
【0034】
ここで、それぞれの入力レジスタ31−1〜31−Nは、例えば、所定の範囲の値をカウント値として記憶する機能を有する。当該所定の範囲は、任意の範囲であってもよく、例えば、0〜255の256個の値の範囲であってもよい。この場合、入力データは、例えば、当該所定の範囲と同じ範囲の値、あるいは、当該所定の範囲よりも狭い範囲の値とされる。本実施形態では、当該カウント値に応じて生成されるパルス幅変調(PWM:Pulse Width Modulation)の信号のパルスの波形の長さ(パルス長)が当該カウント値に相当する。当該カウント値は、入力データの値、あるいは、入力データの値が換算された値であると捉えられてもよい。
【0035】
i行目の入力信号生成回路32−iは、i行目の入力レジスタ31−iから入力されたデータに基づいて、アレイ部12に入力させる信号(説明の便宜上、「入力信号」ともいう。)を生成する。具体的には、i行目の入力信号生成回路32−iは、入力されたデータの値に相当する幅(パルス長)を有する信号(パルス幅変調信号)を、入力信号として、生成する。そして、i行目の入力信号生成回路32−iは、生成された入力信号を、アレイ部12におけるi行目にあるM個の可変抵抗素子41−i1〜41−iMのそれぞれに出力する。
【0036】
ここで、図1には、N個の入力信号生成回路32−1〜32−Nのそれぞれによって生成される入力信号1011−1〜1011−Nの例を示してある。図1における入力信号1011−1〜1011−Nの形状およびタイミングは概略であって、必ずしも正確ではない。それぞれの入力信号1011−1〜1011−Nは、電圧のパルスの信号である。本実施形態では、当該パルスの高さ(電圧の値)は、同じ(一定)である。それぞれの入力信号生成回路32−1〜32−Nは、例えば、所定の時間単位で処理を行う。当該所定の時間単位は、例えば、10[ns]、あるいは、10[μs]などであってもよい。
【0037】
i行目にあるM個の可変抵抗素子41−i1〜41−iMのそれぞれには、i行目の入力信号生成回路32−iから出力される入力信号が入力される。また、i行目にあるM個の可変抵抗素子41−i1〜41−iMのそれぞれは、入力された入力信号の電圧と当該可変抵抗素子41−i1〜41−iMの抵抗値によって決まる電流を出力する。
【0038】
j列目にあるN個の可変抵抗素子41−1j〜41−Njのそれぞれは、列ごとに共通となっている同一の信号線42−jに電流を出力する。本実施形態では、j列目にあるN個の可変抵抗素子41−1j〜41−Njのそれぞれから出力される電流が同一の信号線42−jに入力されて、当該信号線42−jを介して、j列目の検出回路61−jに流れる。
【0039】
ここで、それぞれの可変抵抗素子41−11〜41−NMのコンダクタンスの値によって重みが実現される。つまり、それぞれの可変抵抗素子41−11〜41−NMでは、入力信号である電圧のパルスと重みとの乗算結果に相当する電流が出力される。当該電流は、オームの法則によって、入力信号と重み(本実施形態では、コンダクタンスの値)との積が演算された結果であると捉えられる。この場合、それぞれの可変抵抗素子41−11〜41−NMは、積演算部であると捉えられる。コンダクタンスは抵抗の逆数を表すことから、それぞれの可変抵抗素子41−11〜41−NMは、2以上の異なる抵抗値を取り得ることから、2以上の異なるコンダクタンスの値を取り得る。
【0040】
また、列ごとに共通な信号線(j列目では、信号線42−j)では、N個の可変抵抗素子(j列目では、N個の可変抵抗素子41−1j〜41−Nj)から出力される電流が伝送される。これにより、列ごとの検出回路(j列目では、検出回路61−j)において、これらの電流の和を演算することが可能になる。つまり、j列目における積和演算が実現される。
このような積和演算の動作が、M列のすべてについて行われることで、M列の積和演算が実現される。
【0041】
加算回路111は、信号線33から入力されたデータを加算する。すなわち、加算回路111は、N個の入力レジスタ31−1〜31−Nのそれぞれから出力されたデータをデジタル演算により加算する。加算回路111は、加算結果のデータを調整回路112に出力する。本実施形態では、加算回路111は、N個の入力レジスタ31−1〜31−Nのそれぞれから時系列順で出力されたデータを順に加算することで、N個の入力信号生成回路32−1〜32−Nのカウント値の総和を演算する。
【0042】
なお、本実施形態では、加算回路111は、N個の入力レジスタ31−1〜31−Nのそれぞれから出力されたデータのすべてを加算する場合を示したが、他の例として、例えば、0の値を有するデータについては加算回路111による加算対象から除外する構成が用いられてもよい。つまり、加算回路111では、0の値を有するデータが加算対象から除外されても、加算結果は同じになる。
【0043】
調整回路112は、加算回路111から入力されたデータに対して所定の演算を行うことで所定の調整を行い、調整後のデータ(演算後のデータ)をデジタルアナログ変換器113に出力する。当該所定の調整は、例えば、入力されたデータに所定の係数を乗算する演算、入力されたデータに所定の係数を加算する演算、あるいは、入力されたデータに所定の係数を演算した結果に所定の係数を加算する演算などであってもよい。
【0044】
デジタルアナログ変換器113は、調整回路112から入力されたデータをデジタルデータからアナログ信号へ変換し、変換されたアナログ信号を、M個の差分回路131−1〜131−Mのそれぞれに出力する。当該アナログ信号では、当該デジタルデータの値が当該アナログ信号の電圧の値に反映されている。つまり、デジタルアナログ変換器113は、入力されたデジタルデータを、あらかじめ定められた範囲のアナログ信号へ変換する。当該範囲は、例えば、ダイナミックレンジと呼ばれてもよい。デジタルアナログ変換器113では、例えば、入力されるデジタルデータの値と、出力されるアナログ信号とが、線形に、1対1で、対応する。
【0045】
デジタルアナログ変換器113から出力されるアナログ信号は、例えば、式(1)により表される。なお、デジタルアナログ変換器113によるデジタルアナログ変換が1対1の変換である場合、式(1)は、調整回路112から出力される調整後のデータを間接的に表すと考えることもできる。
【0046】
式(1)におけるパラメータであるVc、Pr、Vr、Gm、Cdを説明する。Vcは、デジタルアナログ変換器113から出力されるアナログ信号の電圧を表す。Prは、r行目の入力レジスタ31−rから出力されるデータの値を表す。当該値は、r行目の入力信号生成回路32−rから出力されるパルス幅変調信号のパルスの幅に相当する。rは1以上N以下の整数である。Vrは、r行目の入力信号生成回路32−rから出力されるパルス幅変調信号の電圧を表す。本実施形態では、すべての入力信号生成回路32−1〜32−Nから出力されるパルス幅変調信号の電圧は同じである。
【0047】
Σ(Pr×Vr)は、rが1からNまでの値をとるときにおける(Pr×Vr)の総和を表す。なお、本実施形態では、Vrが一定であるため、Σ(Pr×Vr)は、{(ΣPr)×Vr}と等しくなる。本実施形態では、Prの総和は、加算回路111によって演算される。そして、当該総和以外の演算が調整回路112およびデジタルアナログ変換器113によって行われる。
【0048】
Gmは、可変抵抗素子41−11〜41−NMのコンダクタンスの可変な範囲の中心値を表す。本実施形態では、理想的な場合を想定しており、すべての可変抵抗素子41−11〜41−NMについて、コンダクタンスの可変な範囲は同じであるとする。なお、実際には、可変なコンダクタンスの範囲がまったく同じすべての素子を製造することは困難であるため、例えば、現実的な手法として、ビット線を共有するすべての素子に共通に適用することが可能なコンダクタンスの範囲を設定する。
【0049】
Cdは、検出回路61−1〜61−Mを構成するコンデンサの容量を表す。本実施形態では、すべての検出回路61−1〜61−Mについて、コンデンサの容量は同じである。K1およびK2は、それぞれ、係数を表す。これらの係数K1、K2は、例えば、実際の回路素子に発生する個体差などによるばらつきの誤差、あるいは、温度変動などによる誤差を補正するための係数である。係数K1はゲインの補正を行う係数であり、係数K2はオフセットの補正を行う係数である。なお、係数K1と係数K2とのうちの一方または両方が使用されない構成が用いられてもよい。
【0050】
【数1】
【0051】
ここで、係数K1および係数K2は、例えば、あらかじめ積和演算器1における演算結果を実測した結果あるいは他の参考となる情報に基づいて、調整回路112による調整の仕方、あるいは、デジタルアナログ変換器113の特性のうちの一方または両方に反映されてもよい。調整回路112には、例えば、あらかじめ、調整前のデータから調整後のデータを演算する手法が設定される。当該手法は、例えば、調整前のデータから調整後のデータを演算する式の情報を用いて特定されてもよい。
【0052】
また、係数K1および係数K2が使用されない構成が用いられてもよい。この場合、デジタルアナログ変換器113から出力されるアナログ信号は、例えば、式(2)により表される。式(2)は、式(1)において係数K1を1に、係数K2を0に設定した場合と同等である。
【0053】
【数2】
【0054】
ここで、本実施形態では、加算回路111と調整回路112との両方によって、総じて、あらかじめ定められた演算を行う。本実施形態では、加算回路111と調整回路112とに分けて当該演算を行う構成を示したが、他の例として、1個の回路によって同様な演算を行う構成、あるいは、2個以上の任意の回路の組み合わせによって同様な演算を行う構成が用いられてもよい。
【0055】
j列目の検出回路61−jは、j列目にあるN個の可変抵抗素子41−1j〜41−Njのそれぞれから同一の信号線42−jに出力された電流を総和する。j列目の検出回路61−jは、総和された電流の総和結果に応じた電圧を有するアナログ信号を、j列目の差分回路131−jに出力する。
【0056】
ここで、本実施形態では、M個の検出回路61−1〜61−Mのそれぞれは、コンデンサを用いて構成されている。j列目の検出回路61−jでは、j列目にあるN個の可変抵抗素子41−1j〜41−Njのそれぞれから同一の信号線42−jに出力された電流によって、当該コンデンサに電荷が蓄えられる。当該電荷は、当該電流の総和に比例する。j列目の検出回路61−jは、総和された電流の総和結果に応じた電圧を有するアナログ信号として、当該コンデンサに蓄えらえた電荷に応じた電圧を有するアナログ信号を、j列目の差分回路131−jに出力する。なお、本実施形態では、M個の検出回路61−1〜61−Mについて、それぞれの検出回路61−1〜61−Mのコンデンサの容量は同じである。
【0057】
M個の検出回路61−1〜61−Mのそれぞれは、それぞれの信号線(j列目の検出回路61−jの場合は、信号線42−j)に流れる電流量の総和を電圧へ変換するQV変換回路であると捉えられてもよい。
【0058】
j列目の差分回路131−jは、一の入力端であるプラス端子(+端子)と、他の入力端であるマイナス端子(−端子)と、出力端を有する。 j列目の差分回路131−jは、j列目の検出回路61−jから出力されたアナログ信号をプラス端子から入力し、デジタルアナログ変換器113から出力されたアナログ信号をマイナス端子から入力する。j列目の差分回路131−jは、プラス端子の入力信号からマイナス端子の入力信号を減算した結果の信号を出力端から出力する。当該信号は、j列目の出力端151−jに出力される。当該信号は、アナログ信号である。本実施形態では、j列目の差分回路131−jは、入力された2個の信号の電圧の差分に相当する電圧を有する信号を出力する。本実施形態では、当該差分は、プラス端子の入力信号からマイナス端子の入力信号を減算した結果である。
【0059】
j列目の出力端151−jは、j列目の差分回路131−jから入力された信号を出力する。
ここで、当該信号は、任意の用途で使用されてもよい。一例として、当該信号は、ニューラルネットワークにおける積和演算結果を使用する回路(図示せず)に入力されて使用されてもよい。
なお、本実施形態では、検出回路61−1〜61−Mおよび差分回路131−1〜131−Mとしては、M列の各列に対して1組の回路を割り当てて説明したが、必ずしも列と同じ数の回路の組が備えられる必要はない。例えば、M列の各列に対して、1個の検出回路および1個の差分回路を時分割で割り当てて、多重化することも可能である。
【0060】
制御部15は、(N×M)個の可変抵抗素子41−11〜41−NMのそれぞれの重みを制御する。制御部15は、例えば、それぞれの可変抵抗素子41−11〜41−NMの制御端子に印加される電圧の値あるいはそれぞれの可変抵抗素子41−11〜41−NMに与える磁場(磁界)を制御することで、それぞれの可変抵抗素子41−11〜41−NMの重みを制御する。当該重みは、コンダクタンスに応じた値(あるいは、抵抗に応じた値と捉えられてもよい。)であり、制御部15による制御に応じて変化し得る。制御部15は、それぞれの可変抵抗素子41−11〜41−NMの重みを、変化可能な範囲で、所望の値に変化させることができる。また、制御部15は、積和演算器1における任意の設定値を設定してもよい。このような設定としては、例えば、初期設定であってもよく、あるいは、既に設定されている値を変更する設定であってもよい。当該設定値に、式(1)および式(2)に含まれる1以上のパラメータが含まれてもよい。
【0061】
[アレイ部における負の重み]
本実施形態に係る積和演算器1では、それぞれの検出回路61−1〜61−Mによる検出結果を補正することで、積和演算のアレイにおいて負の重みが用いられる場合と同じ演算結果(または、同じではないが相関のある演算結果でもよく、以下も同様。)を演算することが可能である。つまり、(N×M)個の可変抵抗素子41−11〜41−NMのそれぞれでは正のコンダクタンス(正の抵抗値)を取り得るが、負のコンダクタンス(負の抵抗値)を取ることができない。このため、本実施形態に係るアレイ部12の構成だけでは、負の重みを表現することができない。そこで、本実施形態では、それぞれの検出回路61−1〜61−Mによる検出結果を補正することで、負の重みが用いられる場合を表現することを可能にしている。なお、本実施形態では、正のコンダクタンス(正の抵抗値)によって表現され得る重みを、正の重み(正の値を持つ重み)としている。そして、このような正の重みに対して正負の符号が逆になった重みを、負の重み(負の値を持つ重み)としている。
【0062】
[理論値の具体例]
図2は、本発明の実施形態に係る理論値の具体例を示す図である。
図2には、理論値の具体例が記述されたテーブル2011を示してある。
【0063】
テーブル2011の内容について説明する。テーブル2011には、2つのケースとして、ケース1(テーブル2011における“Case1”)と、ケース2(テーブル2011における“Case2”)が示されている。
【0064】
ケース1について説明する。本例では、アレイ部12において、j列目に5(N=5)個の可変抵抗素子41−1j〜41−5jが備えられている場合を例として示す。テーブル2011において、5個の可変抵抗素子41−1j〜41−5jが、行数を表す“1”〜“5”(i=1〜5)で示されている。テーブル2011において、“1”〜“5”についての総和結果が“sum”に示されている。テーブル2011において、入力データの値が“入力”で示されている。
【0065】
テーブル2011において、正の値を持つ重みと負の値を持つ重みが用いられて、本実施形態における積和演算の補正が行われないときの数値の例が“計算上の重み”に示されている。“計算上の重み”において、“重み”には、5個の可変抵抗素子41−1j〜41−5jのそれぞれの重みの値が示されている。本例では、5個の可変抵抗素子41−1j〜41−5jのそれぞれの重みは、−0.5以上+0.5以下の範囲の値を取る。また、“計算上の重み”において、“積和演算”には、5個の可変抵抗素子41−1j〜41−5jのそれぞれによる積の結果と、これらの積和の結果(“sum”の欄)が示されている。
【0066】
テーブル2011において、アレイ部12において正の値を持つ重みが用いられるが負の値を持つ重みが用いられない構成であって、本実施形態における積和演算の補正が行われるときの数値の例が“重みを正値にシフト”に示されている。“重みを正値にシフト”において、“重み”には、5個の可変抵抗素子41−1j〜41−5jのそれぞれのシフト後の重みの値が示されている。本例では、“計算上の重み”における“重み”に+0.5を加算した結果が、“重みを正値にシフト”における“重み”となっている。つまり、本例では、5個の可変抵抗素子41−1j〜41−5jのそれぞれの重みは、+0.5シフトされることで、0.0以上+1.0以下の範囲の値を取る。また、“重みを正値にシフト”において、“積和演算”には、5個の可変抵抗素子41−1j〜41−5jのそれぞれによる積の結果と、これらの積和の結果(“sum”の欄)が示されている。なお、このような重みのシフトの情報は、例えば、あらかじめ、制御部15に設定されてもよい。つまり、制御部15は、シフトされた重みとなるように、それぞれの可変抵抗素子41−11〜41−NM(本例では、可変抵抗素子41−1j〜41−5j)の重みを制御してもよい。
【0067】
“重みを正値にシフト”における“積和演算”の積和演算結果(“sum”の欄)である“1.55”は、“計算上の重み”における“積和演算”の積和演算結果(“sum”の欄)である“0.3”に対して、“入力”の総和である“2.5”を1/2倍した結果である“1.25”シフトしている。つまり、“重みを正値にシフト”における“積和演算”の積和演算結果である“1.55”に対して、このようなシフトと逆のシフト(つまり、“−1.25”のシフト)を与えると、“計算上の重み”における“積和演算”の積和演算結果である“0.3”が得られる。本実施形態では、変換部13および差分回路131−1〜131−Mによって、このような逆のシフトを行う。このような逆のシフトを行うための情報が、例えば、あらかじめ、変換部13の調整回路112およびデジタルアナログ変換器113に設定されてもよい。
【0068】
このように、負の値を持つ重みと正の値を持つ重みが混在する場合に、これらの重みのすべてが正の値を持つように、すべての重みに所定値A1(A1は所定の正の値)を加算すると、正の値(0があってもよい)を持つ重みだけが存在する場合の演算とすることができる。また、このような演算の結果から所定値B1(B1は所定の正の値)を減算することで、元の場合つまり負の値を持つ重みと正の値を持つ重みが混在する場合の演算結果と同じ演算結果を得ることができる。
【0069】
本実施形態に係る積和演算器1では、このような原理を利用している。つまり、アレイ部12によって、“重みを正値にシフト”に相当する積和演算を行う。また、変換部13および差分回路131−1〜131−Mによって、元の場合つまり負の値を持つ重みと正の値を持つ重みが混在する場合の演算結果を得るための補正を行う。本実施形態に係る積和演算器1では、可変抵抗素子41−11〜41−NMを使用して、変換後の重み(シフト後の重み)に対する積和演算をアナログ的に実行し、その結果に対して補正を行うことで、負の値を持つ重みと正の値を持つ重みが混在する場合の演算結果を得ることが可能である。
【0070】
なお、テーブル2011におけるケース2についても、ケース1と同様な記述の仕方となっている。ケース2では、ケース1とは異なる数値の例が示されている。
【0071】
ここで、テーブル2011におけるケース1およびケース2は、例えば、5次元(テーブル2011における“1”〜“5”)の入力を持つ1層のニューラルネットにおける積和演算を表す。“計算上の重み”の情報は、負の値を持つ重みと正の値を持つ重みが混在する場合に計算機で計算したシミュレーションの結果の情報を表す。“重みを正値にシフト”の情報は、正の値(0があってもよい)を持つ重みだけが存在するようにシフトされた場合に計算機で計算したシミュレーションの結果の情報を表す。
【0072】
[実測値シミュレーションの具体例:電圧に対する補正]
図3は、本発明の実施形態に係る実測値シミュレーションの具体例(電圧に対する補正)を示す図である。図3には、実測値のシミュレーションが行われた結果の具体例(電圧に対する補正)が記述されたテーブル2021が示されている。ここで、図2の例は理論的な例であり、図3の例は実測値の例である。このため、図3の例では、理論的な値からずれた数値を取り得る。また、計算上の有効桁数の関係で、多少の計算誤差が発生し得る。
【0073】
テーブル2021の内容について説明する。テーブル2021には、2つのケースとして、ケース1(テーブル2021における“Case1”)と、ケース2(テーブル2021における“Case2”)が示されている。
【0074】
ケース1について説明する。
本例では、アレイ部12において、j列目に5(N=5)個の可変抵抗素子41−1j〜41−5jが備えられている場合を例として示す。テーブル2021において、5個の可変抵抗素子41−1j〜41−5jが、行数を表す“1”〜“5”(i=1〜5)で示されている。テーブル2021において、“1”〜“5”についての総和結果が“sum”に示されている。テーブル2021において、入力データの値が“入力”で示されている。本例では、入力データのレンジが0〜1の範囲となっている。
【0075】
テーブル2021において、正の値を持つ重みと負の値を持つ重みが用いられて、本実施形態における積和演算の補正が行われないときの数値の例が“計算機での計算”に示されている。“計算機での計算”において、“重み”には、5個の可変抵抗素子41−1j〜41−5jのそれぞれの重みの値が示されている。本例では、重みのレンジが−1〜+1の範囲となっている。また、“計算機での計算”において、“積和演算”には、5個の可変抵抗素子41−1j〜41−5jのそれぞれによる積の結果と、これらの積和の結果(“sum”の欄)が示されている。本例では、積和演算の結果のレンジが−5〜+5の範囲となっている。
【0076】
テーブル2021において、アレイ部12において正の値を持つ重みが用いられるが負の値を持つ重みが用いられない構成であって、本実施形態における積和演算の補正が行われるときの数値の例が“ニューロモーフィックアレイを使用した計算”に示されている。 “ニューロモーフィックアレイを使用した計算”において、“入力特性”、“素子”、“アレイ出力”、“容量”、“電圧出力”、“電圧補正”、“規格化”が示されている。
【0077】
“入力特性”は、入力データに関する情報を表す。“入力特性”において、“カウント値”、“パルス幅(ns)”、“E(V)”が示されている。“カウント値”は、入力データの値を表す。本例では、当該値は、パルス状の波の長さ(パルス幅)を決める値に相当する。“パルス幅”は、パルス幅変調信号である入力信号のパルス幅を表す。本例では、“パルス幅”は、例えば、単位パルス幅を10(ns)に設定している場合、“カウンタ値”の10倍の値となる。
“E(V)”は、パルス幅変調信号である入力信号の電圧を表す。本例では、当該電圧は一定である。
【0078】
“素子”は、可変抵抗素子41−1j〜41−5jに関する情報を表す。“素子”において、“G(μS)”が示されている。“G(μS)”は、5個の可変抵抗素子41−1j〜41−5jのそれぞれのコンダクタンスの値を表す。本例では、コンダクタンスのレンジが1(μS)〜2(μS)の範囲となっている。
【0079】
“アレイ出力”は、アレイ部12からの出力および検出回路61−jに関する情報を表す。“アレイ出力”において、“I(μA)”、“Q(C)”が示されている。
“I(μA)”は、5個の可変抵抗素子41−1j〜41−5jのそれぞれから出力される電流を表す。本例では、各電流のレンジが0.2(μA)〜0.4(μA)の範囲となっている。本例では、電流の合計値のレンジが1(μA)〜2(μA)の範囲となっている。
“Q(C)”は、検出回路61−jに蓄積される電荷量を表す。
【0080】
“容量”は、検出回路61−jに関する情報を表す。
“容量”において、“C(F)”が示されている。
“C(F)”は、検出回路61−jを構成するコンデンサの容量を表す。
なお、テーブル2021では、便宜上、当該容量が“sum”の欄に記述されている。
【0081】
“電圧出力”は、検出回路61−jに関する情報を表す。
“電圧出力”において、“出力電圧(μV)”が示されている。本例では、電圧出力のレンジが1275(μV)〜2550(μV)の範囲となっている。
“出力電圧(μV)”は、検出回路61−jから出力される電圧を表す。
なお、テーブル2021では、便宜上、当該電圧が“sum”の欄に記述されている。
【0082】
“電圧補正”は、デジタルアナログ変換器113および差分回路131−jに関する情報を表す。
“電圧補正”において、“Δ”、“出力電圧(μV)”が示されている。
“Δ”は、デジタルアナログ変換器113から差分回路131−jに出力されるアナログ信号の電圧を表す。
“出力電圧(μV)”は、差分回路131−jから出力される電圧を表す。
なお、テーブル2021では、便宜上、当該Δおよび当該電圧が“sum”の欄に記述されている。
【0083】
“規格化”は、規格化に関する情報を表す。
“規格化”において、“値レンジ:±5”が示されている。
“値レンジ:±5”は、電圧と±5の値とを規格化した結果の値を表す。
なお、テーブル2021では、便宜上、当該値が“sum”の欄に記述されている。
【0084】
ここで、“電圧補正”の電圧補正量である“Δ”の計算は、例えば、Δ={入力信号のパルスの長さの総和(s)}×(平均電流量)/(検出容量)、または、これに1以上の係数を含めた式で表される。当該係数としては、例えば、ゲインの係数とシフトの係数との一方または両方が用いられてもよい。
【0085】
また、規格化では、積和演算の結果に合わせることが行われる。
本例では、補正後の電圧のレンジである−1275(μV)〜+1275(μV)の範囲が、積和演算の結果のレンジである−5〜+5に対応する。このため、“規格化”の演算は、規格化の結果の値=(補正後の電圧)/{2550(μV)/2}×5で表される。
【0086】
なお、テーブル2021におけるケース2についても、ケース1と同様な記述の仕方となっている。ケース2では、ケース1とは異なる数値の例が示されている。
【0087】
例えば、テーブル2021におけるケース1に示されるような数値に合った演算が行われるように、本実施形態に係る積和演算器1および制御部15に所定の設定値が設定されることで、テーブル2021におけるケース1に示されるような演算が実現される。
また、テーブル2021におけるケース1に示される数値は一例であり、他の様々な数値に合った演算を積和演算器1により実現することが可能である。
【0088】
[実測値シミュレーションの具体例:電荷量に対する補正]
図4は、本発明の実施形態に係る実測値シミュレーションの具体例(電荷量に対する補正)を示す図である。
図4には、実測値のシミュレーションが行われた結果の具体例(電荷量に対する補正)が記述されたテーブル2031が示されている。
【0089】
ここで、図3の例では電圧に対する補正について説明したが、図4の例では電荷量に対する補正を説明する。
図4の例では、j列目の検出回路61−jに蓄積される電荷量を補正することを想定する。
一例として、積和演算器1において、j列目の検出回路61−jとj列目の差分回路131−jの組み合わせの代わりに、j列目の電流の総和(電荷量)の検出および補正を行う回路を備え、当該回路が、j列目の信号線42−jを流れてくる電流を蓄積し、変換部13から出力される電圧に応じた電荷量を蓄積された電流の総和(電荷量)から減算し、当該減算の結果に応じた電圧を有する信号をj列目の出力端151−jに出力することで、電荷量に対する補正が実現されてもよい。
【0090】
テーブル2031の内容について説明する。
なお、図3に示されるテーブル2021と同様な部分については、詳しい説明を省略する。
テーブル2031には、2つのケースとして、ケース1(テーブル2031における“Case1”)と、ケース2(テーブル2031における“Case2”)が示されている。
【0091】
ケース1について説明する。
本例では、アレイ部12において、j列目に5(N=5)個の可変抵抗素子41−1j〜41−5jが備えられている場合を例として示す。テーブル2031において、5個の可変抵抗素子41−1j〜41−5jが、行数を表す“1”〜“5”(i=1〜5)で示されている。テーブル2031において、“1”〜“5”についての総和結果が“sum”に示されている。
【0092】
テーブル2031における“入力”は、図3に示されるテーブル2021の場合と同様な情報を表す。テーブル2031において、正の値を持つ重みと負の値を持つ重みが用いられて、積和演算の補正が行われないときの数値の例が“計算機での計算”に示されている。テーブル2031における“計算機での計算”の“重み”および“積和演算” は、図3に示されるテーブル2021の場合と同様な情報を表す。
【0093】
テーブル2031において、アレイ部12において正の値を持つ重みが用いられるが負の値を持つ重みが用いられない構成であって、本実施形態における積和演算の補正が行われるときの数値の例が“ニューロモーフィックアレイを使用した計算”に示されている。
“ニューロモーフィックアレイを使用した計算”において、“入力特性”、“素子”、“アレイ出力”、“電荷量補正”、“容量”、“電圧出力”、“規格化”が示されている。
【0094】
テーブル2031において、“入力特性”の“カウント値”と“パルス幅(ns)”と“E(V)”、“素子”の“G(μS)”、“アレイ出力”の“I(μA)”と“Q(C)”、“容量”の“C(F)”、“規格化”については、図3に示されるテーブル2021の場合と同様な情報を表す。
【0095】
テーブル2031において、“電荷量補正”は、電荷量に対する補正に関する情報を表す。“電荷量補正”において、“Δ”、“補正後Q”が示されている。“Δ”は、デジタルアナログ変換器113から出力されるアナログ信号の電流の総和(電荷量)を表す。“補正後Q”は、補正後の電荷量を表す。
【0096】
テーブル2031において、“電圧出力”は、出力端151−jから出力される電圧に関する情報を表す。“電圧出力”において、“出力電圧(μV)”が示されている。“出力電圧(μV)”は、出力端151−jから出力される電圧の値を表す。
【0097】
テーブル2031に示されるように電荷量に対する補正が行われる場合においても、テーブル2021に示されるように電圧に対する補正が行われる場合と同様に、正の値を持つ重みと負の値を持つ重みとが混在する積和演算を実現することができる。
【0098】
[入力信号の他の例]
本実施形態では、入力信号生成回路32−1〜32−Nによって、パルス幅変調の信号を生成する場合を示したが、他の例として、振幅変調の信号を生成してもよい。この場合、N個の入力信号生成回路32−1〜32−Nのそれぞれは、入力されたデータの値に相当する振幅を有する振幅変調信号を、入力信号として、生成する。この場合、振幅変調信号の波形の高さが入力レジスタ31−1〜31−Nのカウント値に相当する。
【0099】
ここで、入力信号としてパルス幅変調信号が生成される場合と、入力信号として振幅変調信号が生成される場合とで、時間(幅)について振幅を積分した結果は相関を持つ。例えば、それぞれの入力信号生成回路32−1〜32−Nによって入力信号を生成する際の係数などを調整することで、入力信号としてパルス幅変調信号が生成される場合と、入力信号として振幅変調信号が生成される場合とで、時間(幅)について振幅を積分した結果を同じにすることが可能である。
【0100】
[変換部における調整回路の他の例]
本実施形態では、変換部13に加算回路111と調整回路112とデジタルアナログ変換器113が備えられたが、他の例として、調整回路112が備えられなくてもよい。例えば、調整回路112による調整が行われなくても実用上で支障がない程度の精度が得られる場合には、調整回路112が備えられなくてもよい。つまり、変換部13は加算回路111とデジタルアナログ変換器113を備え、加算回路111からの出力がデジタルアナログ変換器113に入力されてもよい。なお、例えば、調整回路112による調整が行われないと十分な精度が得られないような場合には、調整回路112が備えられる構成が好ましい。例えば、実際の素子製造ばらつきや、回路の温度ドリフトなどを動的に補正する様な機構を調整回路112に設けてもよい。
【0101】
[第1実施形態のまとめ]
以上のように、本実施形態に係る積和演算器1では、正の値を持つ重みと負の値を持つ重みとが混在する積和演算を簡易に実現することができる。本実施形態に係る積和演算器1では、アナログ方式により、当該積和演算を行う。
本実施形態に係る積和演算器1では、アレイ部12および検出回路61−1〜61−Mによる積和演算の結果を補正することで負の重みを表現することが可能である。これにより、積和演算器1では、例えば、1個の可変抵抗素子41−11〜41−NMごとに、正または負の値を持つ1個の重みを表現することができる。
【0102】
本実施形態では、好ましくは、可変抵抗素子41−11〜41−NMとして、コンダクタンスの値の変化特性が対称性を有する素子が用いられる。当該素子は、例えば、スピンの対称性を利用する素子であってもよい。
【0103】
なお、従来のニューロモーフィック素子は、コンダクタンスの値の変化特性が対称性を有しない素子であった。このため、従来では、本質的には、このような素子を2個使用することが前提であった。あるいは、対称性が悪い素子でこの様な演算機構を構成しようとすると、正負各々の重みの値を素子の非対称性コンダクタンスに適切に設定するための制御が複雑になる問題があった。これに対して、近年、コンダクタンスの値の変化特性が対称性を有する素子が実現された。これに応じて、本願では、このような素子を使用して、正の値を持つ重みと負の値を持つ重みとが混在する積和演算を表現することが考えられている。つまり、従来では、本実施形態に係る積和演算器1を開発するきっかけとなる課題は存在しておらず、本願にあたって、当該課題が新規に認識された。
【0104】
[構成例]
積和演算器1などの構成例を示す。なお、本発明は、以下の構成例に限定されない。
本実施形態に係る積和演算器1では、第1回路(図1の例では、入力信号生成回路32−1〜32−N)と、第2回路(図1の例では、アレイ部12の回路および検出回路61−1〜61−M)と、第3回路(図1の例では、変換部13の回路)と、第4回路(図1の例では、差分回路131−1〜131−Mであり、出力端151−1〜151−Mを含んでもよい。)を備える。第2回路は、第1演算回路(図1の例では、1行分以上の任意のjについて、j列目の可変抵抗素子41−1j〜41−Njと信号線42−jと検出回路61−j)を備える。第4回路は、差分回路(図1の例では、1行分以上の任意のjについて、j列目の差分回路131−j)を備える。第1回路は、複数のデータ(図1の例では、入力データ)のそれぞれに応じた信号(図1の例では、入力信号)を生成する。第2回路の第1演算回路は、抵抗値が可変である複数の可変抵抗素子(図1の例では、1行分以上の任意のjについて、j列目の可変抵抗素子41−1j〜41−Nj)のそれぞれによって第1回路によって生成された複数の信号のそれぞれに重みを乗算して、これら複数の乗算結果の総和(図1の例では、1行分以上の任意のjについて、j列目の検出回路61−jからの出力)を演算する。第3回路は、複数のデータのそれぞれに応じた値(図1の例では、入力データに応じたカウント値)の加算結果(図1の例では、加算回路111からの出力そのままがデジタルアナログ変換器113によって変換されることを想定した場合の変換結果)、または、当該加算結果が調整された結果(図1の例では、調整回路112からの出力がデジタルアナログ変換器113によって変換された結果)を演算する。第4回路の差分回路は、第2回路の第1演算回路によって演算された結果と第3回路によって演算された結果との差分を出力する。したがって、本実施形態に係る積和演算器1では、入力データの総和に基づいて演算される補正値(図1の例では、デジタルアナログ変換器113からの出力)を検出回路61−1〜61−Mからの出力から減算することで、例えば、ニューラルネットワークの重みの正負ごとに素子(図1の例では、可変抵抗素子41−11〜41−NM)を分ける必要をなくすことができる。
【0105】
本実施形態に係る積和演算器1では、第2回路の第1演算回路によって演算される結果と、第3回路によって演算される結果は、アナログ信号である。また、第4回路の差分回路は、アナログ回路である。したがって、本実施形態に係る積和演算器1では、アナログ演算によって積和演算の補正を行うことができる。
【0106】
本実施形態に係る積和演算器1では、複数の可変抵抗素子において、共通のコンダクタンスの可変な範囲が設定される。第2回路の第1演算回路は、複数の乗算結果の総和を取得する容量(図1の例では、1行分以上の任意のjについて、j列目の検出回路61−jを構成するコンデンサの容量)を有する。第3回路によって演算される結果は、(複数のデータのそれぞれに応じた値の加算結果)と(可変抵抗素子のコンダクタンスの可変な範囲の中心値)と{1/(容量)}とを乗算した結果である。したがって、本実施形態に係る積和演算器1では、積和演算の補正を、式(1)に示されるような理論上の演算によって、解析的な補正値を用いて行うことができる。
【0107】
本実施形態に係る積和演算器1では、複数の可変抵抗素子において、共通のコンダクタンスの可変な範囲が設定される。第2回路の第1演算回路は、複数の乗算結果の総和を取得する容量を有する。第3回路によって演算される結果は、(複数のデータのそれぞれに応じた値の加算結果)と(可変抵抗素子のコンダクタンスの可変な範囲の中心値)と{1/(容量)}との積に第1係数(式(2)の例では、K1)を乗算した結果と第2係数(式(2)の例では、K2)との和に相当する。したがって、本実施形態に係る積和演算器1では、積和演算の補正を、式(2)に示されるような理論上の演算によって、解析的な補正値を用いて行うことができる。この場合、例えば、回路実装上のばらつき、あるいは、温度変動などを補正する要素を、所定の係数を用いて解析的な補正値に含めることができる。これにより、積和演算器1では、例えば、アナログ的な実装、温度またはプロセスに依存する特性などによる変動ばらつきを抑制することが可能である。
【0108】
本実施形態に係る積和演算器1では、第1回路が複数のデータのそれぞれに応じた信号を生成することは、第1回路が複数のデータのそれぞれに応じたパルス幅変調信号を生成することである。したがって、本実施形態に係る積和演算器1では、入力信号生成回路32−1〜32−Nによってパルス幅変調信号が生成される場合、N個の入力信号のパルス幅の合計値に基づく補正値によって、積和演算の補正を行うことができる。
【0109】
本実施形態に係る積和演算器1では、第1回路が複数のデータのそれぞれに応じた信号を生成することは、第1回路が複数のデータのそれぞれに応じた振幅変調信号を生成することである。したがって、本実施形態に係る積和演算器1では、入力信号生成回路32−1〜32−Nによって振幅変調信号が生成される場合、N個の入力信号の振幅の合計値に基づく補正値によって、積和演算の補正を行うことができる。
【0110】
本実施形態に係る積和演算器1では、第2回路は、複数(図1の例では、総じてM個)の第1演算回路を有する。
第4回路は、複数の第1演算回路のそれぞれごとに差分回路(図1の例では、総じてM個の差分回路131−1〜131−M)を有する。したがって、本実施形態に係る積和演算器1では、1個の変換部13からの出力が、M個の差分回路131−1〜131−Mのそれぞれに入力される。つまり、1個の変換部13からの出力が、アレイ部12を構成する複数の信号線42−1〜42−Mの出力に反映されている。このような構成により、積和演算器1では、例えば、アレイ部12を構成する複数の信号線42−1〜42−Mのそれぞれごとに変換部(変換部13に相当する機能部)が備えられる場合と比べて、回路規模を小さくすることが可能になる。
【0111】
本実施形態に係る積和演算器1では、複数のデータは、時系列の順に第3回路に入力される。第3回路は、時系列の順に、複数のデータのそれぞれに応じた値を加算する。したがって、本実施形態に係る積和演算器1では、複数の入力レジスタ31−1〜31−Nから出力されるデータが時系列順に信号線33を介して加算回路111に入力される場合に、加算回路111においてこれらのデータを順に加算することができる。この場合、例えば、複数のデータの加算を行う際にタイミング制御などを行う場合と比べて、加算回路111の構成を簡易化することが可能である。
【0112】
本実施形態に係る積和演算器1では、可変抵抗素子は、磁気抵抗効果を示す磁気抵抗効果素子である。したがって、本実施形態に係る積和演算器1では、好ましい態様として、可変抵抗素子41−11〜41−NMとして、磁気抵抗効果素子が用いられてもよい。これにより、積和演算器1では、正の値を持つ重みと負の値を持つ重みを表現することが容易になる。
【0113】
本実施形態では、本実施形態に係る積和演算器1によって行われる処理と同様な積和演算方法を実施することが可能である。これにより、本実施形態に係る積和演算方法では、本実施形態に係る積和演算器1について説明したのと同様な効果を得ることができる。
【0114】
本実施形態では、本実施形態に係る積和演算器1を含み論理演算を実行する論理演算デバイスを実施することが可能である。これにより、本実施形態に係る論理演算デバイスでは、例えば、誤差の少ない積和演算によって、論理演算器の性能を改善することができる。なお、論理演算としては、任意の演算が行われてもよい。
【0115】
本実施形態では、本実施形態に係る積和演算器1を含み可変抵抗素子41−11〜41−NMとしてニューロモーフィック素子を使用したニューロモーフィックデバイスを実施することが可能である。これにより、本実施形態に係るニューロモーフィックデバイスでは、例えば、誤差の少ない積和演算によって、ニューロモーフィックデバイスの性能を改善することができる。
なお、ニューロモーフィックデバイスでは、任意の演算が行われてもよい。
【0116】
ここで、ニューロモーフィックデバイスは、ニューロモーフィック演算を行うためのデバイスであり、例えば、脳の動きを模倣した演算を行う。ニューロモーフィックデバイスは、例えば、アレイなどの回路を組み合わせたデバイスであってもよく、ニューラルネットワークを構成するデバイスであってもよい。ニューラルネットワークの技術を用いることで、高度な情報の識別あるいは分類を行うことが可能である。このようなニューラルネットワークの技術は、例えば、深層学習、医療、ヘルスケア、金融、マーケティング、認証、セキュリティなどの広い分野で実用化されている。
【0117】
(第2実施形態)
[積和演算器の構成]
図5は、本発明の実施形態(第2実施形態)に係る積和演算器201の概略的な構成を示す図である。本実施形態では、第1実施形態に係る図1に示される積和演算器1と同様な構成部分については、同じ符号を付して説明し、詳しい説明を省略する。また、本実施形態では、説明の便宜上、第1実施形態の説明で使用されたi、jを使用して説明する。
【0118】
積和演算器201は、入力部11と、アレイ部12と、変換部221と、出力部222を備える。
また、図5には、積和演算器201の制御を行う制御部15を示してある。本実施形態では、制御部15は、積和演算器201とは別の機能部として構成されている。この場合、積和演算器201および制御部15は、例えば、所定の装置(例えば、積和演算装置)あるいは所定のシステム(例えば、積和演算システム)に含まれると捉えられてもよい。他の例として、制御部15は、積和演算器201と一体として構成されてもよい。この場合、積和演算器201は制御部15を備えると捉えられてもよい。
【0119】
ここで、入力部11と、アレイ部12と、制御部15については、第1実施形態に係る図1に示される積和演算器1と同様な構成部分である。なお、制御部15により行われる制御の仕方は、例えば、第1実施形態に係る図1に示される積和演算器1と、本実施形態に係る積和演算器201とで、異なってもよい。
本実施形態では、変換部221と、出力部222について、詳しく説明する。
【0120】
変換部221は、第1実施形態に係る図1に示されるものと同様な加算回路111と、第1実施形態に係る図1に示されるものと同様な調整回路112を備える。
出力部222は、第1実施形態に係る図1に示されるものと同様なM個の検出回路61−1〜61−Mと、M個のアナログデジタル変換器(ADC:Analog Digital Converter)261−1〜261−Mと、M個の差分回路281−1〜281−Mと、M個の出力端311−1〜311−Mを備える。
M個の差分回路281−1〜281−Mのそれぞれは、一例として、差分を演算する論理回路であってもよい。なお、検出回路61−1〜61−M、差分回路281−1〜281−M、および、アナログデジタル変換器261−1〜261−Mとしては、M列の各列に対して1組の回路を割り当てて説明したが、必ずしも列と同じ数の回路の組が備えられる必要はない。例えば、M列の各列に対して、1個の検出回路、1個の差分回路および1個のアナログデジタル変換器を時分割で割り当てて、多重化することも可能である。
【0121】
[積和演算器における各回路の機能および動作]
積和演算器201における各回路の機能および動作の例を説明する。変換部221の構成および動作は、第1実施形態に係る図1に示される変換部13の構成および動作と比べて、当該変換部13のデジタルアナログ変換器113が備えられていない点で異なる。
【0122】
変換部221は、調整回路112から出力される調整結果のデジタルデータを、M個の差分回路281−1〜281−Mのそれぞれに出力する。当該デジタルデータは、第1実施形態に係る図1に示される変換部13において調整回路112からデジタルアナログ変換器113に出力されるデジタルデータに相当する。
【0123】
j列目のアナログデジタル変換器261−jは、j列目の検出回路61−jから出力されたアナログ信号を入力する。そして、j列目のアナログデジタル変換器261−jは、入力されたアナログ信号をデジタルデータへ変換して、変換されたデジタルデータを、j列目の差分回路281−jに出力する。
【0124】
j列目の差分回路281−jは、一の入力端であるプラス端子(+端子)と、他の入力端であるマイナス端子(−端子)と、出力端を有する。j列目の差分回路281−jは、j列目のアナログデジタル変換器261−jから出力されたデジタルデータをプラス端子から入力し、調整回路112から出力されたデジタルデータをマイナス端子から入力する。j列目の差分回路281−jは、プラス端子の入力データからマイナス端子の入力データを減算した結果のデータを出力端から出力する。当該データは、j列目の出力端311−jに出力される。本実施形態では、j列目の差分回路281−jは、入力された2個のデータの差分を表すデータを出力する。当該差分は、例えば、電圧の値によって表されてもよい。本実施形態では、当該差分は、プラス端子の入力データからマイナス端子の入力データを減算した結果である。
【0125】
j列目の出力端311−jは、j列目の差分回路281−jから入力されたデータを出力する。ここで、当該データは、任意の用途で使用されてもよい。一例として、当該データは、ニューラルネットワークにおける積和演算結果を使用する回路(図示せず)に入力されて使用されてもよい。
【0126】
また、例えば、j列目の差分回路281−jとj列目の出力端311−jとの間に、j列目のデジタルアナログ変換器(図示せず)が備えられてもよい。この場合、j列目のデジタルアナログ変換器は、j列目の差分回路281−jから出力されたデジタルデータを入力し、入力されたデジタルデータをアナログ信号へ変換して、変換されたアナログ信号を、j列目の出力端311−jに出力する。この場合、j列目の出力端311−jは、j列目のデジタルアナログ変換器から出力されたアナログ信号を出力する。
【0127】
[第2実施形態のまとめ]
以上のように、本実施形態に係る積和演算器201では、第1実施形態に係る積和演算器1と同様な演算を行うことができ、第1実施形態に係る積和演算器1とは相違する点による効果の違いを除いて、同様な効果を得ることができる。したがって、本実施形態に係る積和演算器201では、例えば、正の値を持つ重みと負の値を持つ重みとが混在する積和演算を簡易に実現することができる。
【0128】
[構成例]
本実施形態に係る積和演算器201では、第1回路(図5の例では、入力信号生成回路32−1〜32−N)と、第2回路(図5の例では、アレイ部12の回路、検出回路61−1〜61−M、およびアナログデジタル変換器261−1〜261−M)と、第3回路(図5の例では、変換部221の回路)と、第4回路(図5の例では、差分回路281−1〜281−Mであり、出力端311−1〜311−Mを含んでもよい。)を備える。第2回路は、第1演算回路(図5の例では、1行分以上の任意のjについて、j列目の可変抵抗素子41−1j〜41−Njと信号線42−jと検出回路61−jとアナログデジタル変換器261−j)を備える。第4回路は、差分回路(図5の例では、1行分以上の任意のjについて、j列目の差分回路281−j)を備える。第1回路は、複数のデータ(図5の例では、入力データ)のそれぞれに応じた信号(図5の例では、入力信号)を生成する。第2回路の第1演算回路は、抵抗値が可変である複数の可変抵抗素子(図5の例では、1行分以上の任意のjについて、j列目の可変抵抗素子41−1j〜41−Nj)のそれぞれによって第1回路によって生成された複数の信号のそれぞれに重みを乗算して、これら複数の乗算結果の総和(図5の例では、1行分以上の任意のjについて、j列目の検出回路61−jからの出力)を演算する。第3回路は、複数のデータのそれぞれに応じた値(図5の例では、入力データに応じたカウント値)の加算結果(図5の例では、加算回路111からの出力そのままが調整回路112から出力されることを想定した場合の出力)、または、当該加算結果が調整された結果(図5の例では、調整回路112からの出力)を演算する。第4回路の差分回路は、第2回路の第1演算回路によって演算された結果と第3回路によって演算された結果との差分を出力する。したがって、本実施形態に係る積和演算器201では、入力データの総和に基づいて演算される値(図5の例では、調整回路112からの出力)を検出回路61−1〜61−Mからの出力(図5の例では、当該出力がアナログデジタル変換器261−1〜261−Mによって変換された結果)から減算することで、例えば、ニューラルネットワークの重みの正負ごとに素子(図5の例では、可変抵抗素子41−11〜41−NM)を分ける必要をなくすことができる。
【0129】
なお、ここでは、第2回路にアナログデジタル変換器261−1〜261−Mが含まれるとして説明したが、他の例として、第3回路にアナログデジタル変換器261−1〜261−Mが含まれると捉えられてもよい。つまり、アナログデジタル変換器261−1〜261−Mは、第1実施形態に係る図1に示されるデジタルアナログ変換器113と同様に、補正値を調整するための回路であると捉えられてもよい。
【0130】
本実施形態に係る積和演算器201では、第2回路の第1演算回路によって演算される結果と、第3回路によって演算される結果は、デジタルデータである。第4回路の差分回路は、デジタル回路である。したがって、本実施形態に係る積和演算器201では、アレイ部12の出力をデジタルデータへ変換することで、デジタル演算によって積和演算の補正を行うことができる。
【0131】
(以上の実施形態のまとめ)
以上のような積和演算器1、201、あるいはそれを用いたニューロモーフィックデバイスは、各種センサやロボットの脳として機能させることができる。このニューロモーフィックデバイスを用いた制御装置にセンサから出力された信号を入力すると、Edge素子として機能させることができる。センサ信号は一般的に多くのノイズが存在し、一般的なセンサモジュールでは得たいセンサ信号をノイズから取り出すことができない。したがって、センサ信号の時系列信号から、例えば信号処理技術を用いてノイズを除去し、得たい信号を取り出すなどの方法が取られる。この場合、得た信号以外はエネルギーの消費だけであり、情報を生まない。このニューロモーフィックデバイスを用いた制御装置にセンサ信号を入力することにより、高精度の認識を行うことができる。従来は源信号にノイズが重畳した観測信号を源信号とノイズに分離することで、初めて意味のある情報として抽出されるが、本制御装置を用いるとノイズを含む時系列信号から得たい源信号を予測することができ、源信号の出力強度や統計値が小さくても意味のある信号として取り出すことができる。これはセンサと制御装置が一体となったモジュールであり、AI Edgeセンサモジュールとすることができる。本制御装置を用いると、認識精度が高くなるために従来よりも小さな演算機能で情報を取り出すことができ、低コスト・省電力・省体積化を行うことができる。
【0132】
本制御装置に複数のセンサの信号を同時に入力することも好ましい。複数のセンサの信号が同時に入力することによって、互いのセンサの関連性に関する認識を得ることができる。例えば、ロボットにおいて手、足、胴体にセンサが設置され、そのセンサからの信号が同時に本制御装置に入力されると、その信号によってロボットが歩いているか、転んだのかなどの情報を複合的に判断することができる。さらに、AI Edgeセンサモジュールが複数設置されたロボットや車などにおいて、本制御装置に同時に信号が入力されることによってより省電力化と高機能化が期待できる。複数のセンサが異なる種類のセンサであった場合には、それぞれのセンサに対応できる電圧や電流に対応した制御装置を設置する必要がある。この場合、制御装置のインタフェースに変圧器やアナログデジタル変換器(ADC)などが必要となり、エネルギー変換によってエネルギーが消費される。AI Edgeセンサモジュールでも同様にエネルギーが消費されるが、AI Edgeセンサモジュールから中央の制御装置に出力された信号はAI Edgeセンサモジュールで一定の認識と識別がされたものであり、必要な情報のみを送ることができる。これらの機能によりAI Edgeセンサモジュールと中央の制御装置の間の通信を削減することができるため、システム全体としてのエネルギー消費を減少できる。
【0133】
なお、以上に示した実施形態に係る各部(例えば、制御部15など)の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体(記憶媒体)に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、オペレーティング・システム(OS:Operating System)あるいは周辺機器等のハードウェアを含むものであってもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD(Digital Versatile Disc)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また、記録媒体としては、例えば、一時的にデータを記録する記録媒体であってもよい。
【0134】
さらに、「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークあるいは電話回線等の通信回線を介してプログラムが送信された場合のサーバあるいはクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)あるいは電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよ
【0135】
以上、本発明の実施形態について図面を参照して詳述したが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【産業上の利用可能性】
【0136】
本発明の積和演算器、積和演算方法、論理演算デバイスおよびニューロモーフィックデバイスによれば、正の値を持つ重みと負の値を持つ重みとが混在する積和演算を簡易に実現することができる。
【符号の説明】
【0137】
1、201…積和演算器、11…入力部、12…アレイ部、13、221…変換部、14、222…出力部、15…制御部、31−1〜31−N…入力レジスタ、32−1〜32−N…入力信号生成回路、33、42−1〜42−M…信号線、41−11〜41−NM…可変抵抗素子、61−1〜61−M…検出回路、111…加算回路、112…調整回路、113…デジタルアナログ変換器、131−1〜131−M、281−1〜281−M…差分回路、151−1〜151−M、311−1〜311−M…出力端、261−1〜261−M…アナログデジタル変換器、1011−1〜1011−N…入力信号、2011、2021、2031…テーブル
【要約】
複数のデータのそれぞれに応じた信号を生成する第1回路と、抵抗値が可変である複数の可変抵抗素子のそれぞれによって前記第1回路によって生成された複数の前記信号のそれぞれに重みを乗算してこれら複数の乗算結果の総和を演算する第1演算回路を有する第2回路と、前記複数の前記データのそれぞれに応じた値の加算結果または前記加算結果が調整された結果を演算する第3回路と、前記第2回路の前記第1演算回路によって演算された結果と前記第3回路によって演算された結果との差分を出力する差分回路を有する第4回路と、を備える積和演算器。
図1
図2
図3
図4
図5