JP2021002133A - 演算装置及び積和演算システム - Google Patents

演算装置及び積和演算システム Download PDF

Info

Publication number
JP2021002133A
JP2021002133A JP2019114592A JP2019114592A JP2021002133A JP 2021002133 A JP2021002133 A JP 2021002133A JP 2019114592 A JP2019114592 A JP 2019114592A JP 2019114592 A JP2019114592 A JP 2019114592A JP 2021002133 A JP2021002133 A JP 2021002133A
Authority
JP
Japan
Prior art keywords
input
output
signal
arithmetic circuit
unit
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.)
Pending
Application number
JP2019114592A
Other languages
English (en)
Inventor
藤波 靖
Yasushi Fujinami
靖 藤波
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2019114592A priority Critical patent/JP2021002133A/ja
Priority to CN202080043373.0A priority patent/CN114008625A/zh
Priority to PCT/JP2020/019388 priority patent/WO2020255599A1/ja
Priority to US17/596,291 priority patent/US20220236952A1/en
Publication of JP2021002133A publication Critical patent/JP2021002133A/ja
Pending legal-status Critical Current

Links

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/50Adding; Subtracting
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • 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/4814Non-logic devices, e.g. operational amplifiers
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Neurology (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Complex Calculations (AREA)
  • Amplifiers (AREA)

Abstract

【課題】積和演算を行うアナログ方式の回路において、演算の精度を向上すること。【解決手段】演算装置は、第1及び第2の演算回路部を有する。第2の演算回路部の複数の入力線には、第1の演算回路部の複数の出力線から出力される積和信号又は積和信号に基づいて生成される信号が入力される。第1の演算回路部の複数の入力線の延在方向と、第2の演算回路部の複数の出力線の延在方向とが互いに平行となる。第1の演算回路部の2つの最端出力線の第2の演算回路部側の端部を第1及び第2の端部とし、第2の演算回路部の2つの最端入力線の第1の演算回路部側の端部を第3及び第4の端部とすると、第1又は第2の端部の少なくとも一方の第1の方向における位置が、第3の端部の位置と第4の端部の位置との間の位置となる。又は、第3又は第4の端部の少なくとも一方の第1の方向における位置が、第1の端部の位置と、第2の端部の位置との間の位置となる。【選択図】図29

Description

本技術は、アナログ方式を用いた積和演算に適用可能な演算装置、及び積和演算システムに関する。
従来、積和演算を行う技術が開発されている。積和演算は、複数の入力値のそれぞれに荷重を乗算し、各乗算結果を互いに加算する演算であり、例えばニューラルネットワーク等による画像や音声等の認識処理に用いられる。
例えば特許文献1には、積和演算の処理をアナログ方式によって行うアナログ回路について記載されている。このアナログ回路では、複数の電気信号のそれぞれに対応した荷重が設定される。また、対応する電気信号と荷重とに応じた電荷がそれぞれ出力され、出力された電荷がキャパシタに適宜蓄えられる。そして、電荷が蓄えられたキャパシタの電圧に基づいて積和結果を表す算出対象値が算出される。これにより、例えばデジタル方式による処理と比べて積和演算に要する消費電力を抑制することが可能となっている(特許文献1の明細書段落[0003][0049]〜[0053][0062]図3等)。
国際公開第2018/034163号
このようなアナログ方式の回路を用いることで、ニューラルネットワーク等の低消費電力化につながると期待されており、積和演算の精度を向上可能な技術が求められている。
以上のような事情に鑑み、本技術の目的は、積和演算を行うアナログ方式の回路において、演算の精度を向上することが可能な演算装置、及び積和演算システムを提供することにある。
上記目的を達成するため、本技術の一形態に係る演算装置は、複数の演算回路部を具備する。
前記複数の演算回路部は、各々が、複数の入力線と、複数の出力線とを有する。
前記複数の入力線は、所定の方向を延在方向として並列に配置され、入力値に応じた電気信号がそれぞれ入力される。
前記複数の出力線は、前記所定の方向とは異なる方向を延在方向として前記複数の入力線と交差するように並列に配置され、各々が、前記複数の入力線に入力される前記電気信号に基づいて生成される前記入力値に荷重値を乗算した乗算値の和を表す積和信号を出力する。
前記複数の演算回路部は、第1の演算回路部、及び第2の演算回路部を有する。
前記第2の演算回路部の前記複数の入力線には、前記第1の演算回路部の前記複数の出力線から出力される前記積和信号、又は前記第1の演算回路部の前記複数の出力線から出力される前記積和信号に基づいて生成される信号が、前記入力値に応じた電気信号として入力される。
前記第1の演算回路部の前記複数の入力線の延在方向である第1の方向と、前記第2の演算回路部の前記複数の出力線の延在方向である第2の方向とが、互いに平行となるように構成される。
前記第1の演算回路部の並列に配置される前記複数の出力線のうち最も端に位置する2つの最端出力線の前記第2の演算回路部側の端部を第1の端部及び第2の端部とし、前記第2の演算回路部の並列に配置される前記複数の入力線のうち最も端に位置する2つの最端入力線の前記第1の演算回路部側の端部を第3の端部及び第4の端部とすると、
前記第1の端部又は前記第2の端部の少なくとも一方の前記第1の方向における位置が、前記第3の端部の前記第1の方向における位置と、前記第4の端部の前記第1の方向における位置との間の位置となるように構成される。
又は、前記第3の端部又は前記第4の端部の少なくとも一方の前記第1の方向における位置が、前記第1の端部の前記第1の方向における位置と、前記第2の端部の前記第1の方向における位置との間の位置となるように構成される。
前記第1の端部の前記第1の方向における位置、及び前記第2の端部の前記第1の方向における位置の両方が、前記第3の端部の前記第1の方向における位置と、前記第4の端部の前記第1の方向における位置との間の位置となるように構成されてもよい。
前記第3の端部の前記第1の方向における位置、及び前記第4の端部の前記第1の方向における位置の両方が、前記第1の端部の前記第1の方向における位置と、前記第2の端部の前記第1の方向における位置との間の位置となるように構成されてもよい。
前記第1の端部又は前記第2の端部の少なくとも一方の前記第1の方向における位置が、前記第3の端部の前記第1の方向における位置、及び前記第4の端部の前記第1の方向における位置のいずれとも異なる位置となるように構成されてもよい。
前記第3の端部又は前記第4の端部の少なくとも一方の前記第1の方向における位置が、前記第1の端部の前記第1の方向における位置、及び前記第2の端部の前記第1の方向における位置のいずれとも異なる位置となるように構成されてもよい。
前記第1の演算回路部の前記複数の出力線の延在方向と、前記第2の演算回路部の前記複数の入力線の延在方向とが、互いに平行となるように構成されてもよい。
前記複数の演算回路部のうちの2つの演算回路部であって、一方の演算回路部の前記複数の入力線には、他方の演算回路部の前記複数の出力線から出力される前記積和信号、又は他方の演算回路部の前記複数の出力線から出力される前記積和信号に基づいて生成される信号が、前記入力値に応じた電気信号として入力される関係となる前記2つの演算回路部は、前記第1の演算回路部及び前記第2の演算回路部として構成されてもよい。
前記複数の演算回路部の各々は、所定の平面を基準平面として、前記複数の入力線及び前記複数の出力線が配置されてもよい。この場合、前記第1の演算回路部の前記基準平面である第1の基準平面と、前記第2の演算回路部の前記基準平面である第2の基準平面とは、同一平面上に位置してもよい。
前記第1の演算回路部の前記基準平面である第1の基準平面と、前記第2の演算回路部の前記基準平面である第2の基準平面とは、互いに平行に配置されてもよい。
前記第1の演算回路部の前記基準平面である第1の基準平面と、前記第2の演算回路部の前記基準平面である第2の基準平面とは、互いに垂直に配置されてもよい。
前記複数の演算回路部の各々は、前記複数の入力線の入力側の端部が同一直線上に位置し、前記複数の出力線の出力側の端部が同一直線上に位置してもよい。この場合、前記第1の演算回路部の前記複数の出力線の出力側の端部が並ぶ直線方向と、前記第2の演算回路部の前記複数の入力線の入力側の端部が並ぶ直線方向とが、互いに平行となるように構成されてもよい。
前記第1の演算回路部の並列に配置される前記複数の出力線のピッチと、前記第2の演算回路部の並列に配置される前記複数の入力線のピッチとは、互いに異なるように構成されてもよい。
前記複数の演算回路部の各々は、複数の乗算部と、蓄積部と、充電部と、出力部とを有してもよい。
前記複数の乗算部は、前記複数の入力線の各々に入力される前記電気信号に基づいて前記入力値に荷重値を乗算した乗算値に対応する電荷を生成して、前記積和信号として前記出力線に出力する。
前記蓄積部は、前記複数の乗算部の各々により前記出力線に出力された前記乗算値に対応する電荷を蓄積する。
前記充電部は、前記乗算値に対応する電荷が蓄積された前記蓄積部を充電する。
前記出力部は、前記充電部による充電の開始後、前記蓄積部により保持される電圧に対して所定の閾値により閾値判定を実行することで、前記入力値に荷重値を乗算した乗算値の和に対応するタイミングの情報を含む積和結果信号を出力する。
前記出力線として、正電荷出力線と、負電荷出力線とが配置されてもよい。この場合、前記複数の乗算部は、前記入力値に正の荷重値を乗算した乗算値に対応する正荷重電荷を生成して前記積和信号として前記正電荷出力線に出力する正荷重乗算部、又は前記入力値に負の荷重値を乗算した乗算値に対応する負荷重電荷を生成して前記積和信号として前記負電荷出力線に出力する負荷重乗算部の少なくとも一方を含んでもよい。また前記蓄積部は、前記正荷重乗算部により前記正電荷出力線に出力された前記正荷重電荷を蓄積可能な正電荷蓄積部と、前記負荷重乗算部により前記負電荷出力線に出力された前記負荷重電荷を蓄積可能な負電荷蓄積部とを有してもよい。また前記充電部は、前記正電荷蓄積部、及び前記負電荷蓄積部を充電してもよい。また前記出力部は、前記正電荷蓄積部、及び前記負電荷蓄積部の各々に対して、前記所定の閾値により閾値判定を実行することで、前記積和結果信号を出力してもよい。
本技術の一形態に係る積和演算システムは、前記複数の演算回路部と、ネットワーク回路とを具備する。
前記ネットワーク回路は、前記複数の演算回路部を接続して構成されている。
一実施形態に係る演算装置の構成例を示す模式図である(1入力1出力構成)。 一実施形態に係る演算装置の構成例を示す模式図である(2入力2出力構成)。 入力される電気信号の一例を示す模式図である(1入力1出力構成)。 入力される電気信号の一例を示す模式図である(2入力2出力構成)。 演算回路部5の構成例を示す模式図である(1入力1出力構成)。 ニューロン回路の構成例を示す模式図である(1入力1出力構成)。 演算回路部5の構成例を示す模式図である(2入力2出力構成)。 ニューロン回路の構成例を示す模式図である(2入力2出力構成)。 PWM方式のアナログ回路の一例を示す模式図である(1入力1出力構成)。 図9に示すアナログ回路による積和結果信号の算出例を説明するための図である。 全体の積和結果を示す積和結果信号の算出例を示す模式図である。 TACT方式のアナログ回路の一例を示す模式図である(1入力1出力構成)。 入力期間の終了時における各出力線の電位について説明するための模式的なグラフである。 アナログ回路の一例を示す模式図である(2入力2出力構成)。 信号対の一例を示す模式図である。 シナプス回路の構成例を示す模式的な回路図である(2入力2出力構成)。 図14に示すアナログ回路による積和結果信号の算出例を説明するための図である。 正負の積和結果信号の一例を示す模式図である。 1入力1出力構成の演算装置における演算回路部の構成例を示す図である。 1入力1出力構成の演算装置における演算回路部の構成例を示す図である。 2入力2出力構成の演算装置における演算回路部の構成例を示す図である。 2入力2出力構成の演算装置における演算回路部の構成例を示す図である。 本技術に係る演算装置を含む推論装置の構成例を示す模式図である。 ReLU回路の構成例を示す図である。 拡大回路の構成例を示す図である。 拡大回路の動作タイミングを示すタイミングチャートである。 図23に示す推論装置による推論時の動作例を示すタイミングチャートである。 推論装置が有する第1の演算回路部と、第2の演算回路部とを示す模式図である。 等長配線構成の一例を示す模式図である。 等長配線構成の他の例を示す模式図である。 等長配線構成の他の例を示す模式図である。 等長配線構成を実現した場合の等長配線の一例を示す模式図である。 推論装置の他の構成例を示す模式図である。 推論装置の他の構成例を示す模式図である。 図34に示す推論装置による推論時の動作例を示すタイミングチャートである。 複数の演算回路部の配置構成のバリエーション例を示す模式図である。 複数の演算回路部の配置構成のバリエーション例を示す模式図である。 複数の演算回路部の配置構成のバリエーション例を示す模式図である。 等長配線構成の他の実施形態を説明するための模式図である。
以下、本技術に係る実施形態を、図面を参照しながら説明する。
[演算装置の構成]
図1及び図2は、本技術の一実施形態に係る演算装置の構成例を示す模式図である。演算装置は、積和演算を含む所定の演算処理を実行するアナログ方式の演算装置である。図1及び図2に示す演算装置100及び演算装置200を用いることで、例えばニューラルネットワーク等の数学モデルに従った演算処理を実行することが可能である。
図1に示す演算装置100は、複数の信号線1と、複数の入力部2と、複数のアナログ回路3とを有する。各信号線1は、所定の方式の電気信号を伝送する線である。
電気信号としては、例えばパルスのタイミングや幅等のアナログ量を用いて信号値を表すアナログ信号が用いられる。図1には電気信号が伝送される方向が、矢印を用いて模式的に図示されている。本実施形態では、アナログ回路3は、積和演算回路に相当する。
例えば、1つのアナログ回路3には、複数の信号線1が接続される。アナログ回路3に電気信号を伝送する信号線1は、その信号線1が接続されたアナログ回路3にとって、電気信号が入力される入力信号線となる。
また、アナログ回路3から出力される電気信号を伝送する信号線1は、その信号線1が接続されたアナログ回路3にとって、電気信号が出力される出力信号線となる。本実施形態では、入力信号線は、入力線に相当する。
複数の入力部2は、入力データ4に応じた複数の電気信号をそれぞれ生成する。入力データ4は、例えば演算装置100によって実装されるニューラルネットワーク等を用いた処理の対象となるデータである。従って入力データ4に応じた複数の電気信号の各信号値は、演算装置100に対する入力値であるとも言える。
入力データ4としては、例えば演算装置100の処理対象となる画像データ、音声データ、統計データ等の任意のデータが用いられる。例えば、入力データ4として画像データが用いられる場合等には、画像データの各画素の画素値(RGB値や輝度値等)を信号値とする電気信号が生成される。この他、入力データ4の種類や演算装置100による処理の内容に応じて、入力データ4に応じた電気信号が適宜生成されてよい。
アナログ回路3は、入力される電気信号に基づいて、積和演算を行うアナログ方式の回路である。積和演算は、例えば複数の入力値と、各入力値に対応する荷重値とをそれぞれ乗算して得られる複数の乗算値を足し合わせる演算である。従って積和演算は、各乗算値の和(以下積和結果と記載する)を算出する処理であるとも言える。
図1に示すように、1つのアナログ回路3には、複数の入力信号線が接続され、複数の電気信号が与えられる。これら複数の入力信号線と複数のアナログ回路とにより、本実施形態に係る演算回路部5が構成される。また各入力信号線から複数の電気信号が入力されることで、積和演算回路(アナログ回路3)により、本実施形態に係る積和演算方法が実行される。
以下では、1つのアナログ回路3に入力される電気信号の総数をNとする。なお、各アナログ回路3に入力される電気信号の個数Nは、例えば演算処理のモデルや精度等に応じて回路ごとに適宜設定される。
アナログ回路3では、例えばi番目の入力信号線から入力される電気信号により表される入力値xiと、入力値xiに対応する荷重値wiとの乗算値であるwi・xiが算出される。ここでiはN以下の自然数(i=1、2、・・・、N)である。乗算値の演算は、各電気信号(入力信号線)ごとに実行され、N個の乗算値が算出される。このN個の乗算値をそれぞれ足し合わせた値が積和結果(N個の乗算値の和)として算出される。従って、1つのアナログ回路3で算出される積和結果は、以下の式で表される。
荷重値wiは、例えば−α≦wi≦+αの範囲に設定される。ここでαは、任意の実数値である。従って荷重値wiには、正の荷重値wiや負の荷重値wi、あるいはゼロの荷重値wi等が含まれる。このように、荷重値wiを所定の範囲に設定することで、積和結果が発散するといった事態を回避することが可能である。
また例えば、荷重値wiが設定される範囲が規格化されてもよい。この場合、荷重値wiは、−1≦wi≦1の範囲に設定される。これにより、例えば積和結果の最大値や最小値等を調整することが可能となり、所望の精度で積和演算を実行することが可能となる。
ニューラルネットワーク等では、荷重値wiを+α及び−αのどちらかに設定するバイナリコネクトと呼ばれる手法を用いることが可能である。バイナリコネクトは、例えば深層ニューラルネットワーク(多層ニューラルネットワーク)を用いた画像認識等の様々な分野に用いられる。
バイナリコネクタを用いることで、認識精度等を劣化させることなく、荷重値wiの設定を簡略化することが可能である。バイナリコネクトでは、正の荷重値、及び負の荷重値の絶対値は、同じ値で固定される。
上記したように、バイナリコネクトでは、荷重値wiがバイナリ値(±α)に2値化される。従って例えば、荷重値wiの正負を切り替えることで、所望の荷重値wiを容易に設定することが可能である。また、2値化された荷重値wiを規格化して、荷重値wiを±1に設定してもよい。
また荷重値wiは、多値化されてもよい。この場合、荷重値wiは、離散的な複数の荷重値候補から選択して設定される。荷重値候補としては、例えば(−3、−2、−1、0、1、2、3)といった例や、(1、2、5、10)といった例が挙げられる。
また規格化された荷重値候補(−1、−0.5、0、0.5、1)等が用いられてもよい。これらの荷重値候補の中から値が選択され荷重値wiとして設定される。荷重値候補の数や、候補値を設定する方法等は限定されない。荷重値wiを多値化することで、例えば汎用性の高いニューラルネットワーク等を構築することが可能となる。
この他、荷重値wiの設定範囲や値等は限定されず、例えば所望の処理精度が実現されるように適宜設定されてよい。例えば、荷重値wiがランダムに設定されてもよい。
(数1)式に示す入力値xiは、例えば入力部2から出力された入力データ4の値や、アナログ回路3から出力された積和結果の値である。このように、入力部2及びアナログ回路3は、入力値xiを出力する信号源として機能するとも言える。
図1に示す例では、1つの信号源(入力部2、アナログ回路3)から、単一の電気信号(単一の入力値xi )が出力される。従って、1つの信号源の出力側に接続された複数の信号線1には、それぞれ同じ電気信号が入力される。また、1つの信号源と、その信号源から出力された電気信号が入力されるアナログ回路3とが、単一の入力信号線で接続される。
従って例えば、図1に示す演算装置100では、M個の信号源と接続されるアナログ回路3には、M個の入力信号線が接続されることになる。この場合、アナログ回路3に入力される電気信号の総数Nは、N=Mとなる。
図1に示すように、演算装置100は、複数の階層のそれぞれに、複数のアナログ回路3が設けられた階層構造を有する。すなわち複数の演算回路部5が段階的に接続されている。
アナログ回路3の層構造を構成することで、例えば多層パーセプトロン型のニューラルネットワーク(MLP:Multi-Layer Perceptron)等が構築される。各階層に設けられるアナログ回路の数や、階層の数等は、例えば所望の処理が実行可能となるように適宜設計される。以下では、j段目の層に設けられるアナログ回路3の数をNjと記載する場合がある。
例えば1段目の層(最下位層)に設けられた各アナログ回路3には、N個の入力部2により生成されたN個の電気信号がそれぞれ入力される。1段目の各アナログ回路3により、入力データの入力値xiに関する積和結果がそれぞれ算出され、非線形変換処理後に次の階層(2段目)に設けられたアナログ回路3に出力される。
2段目の層(上位層)に設けられた各アナログ回路3には、1段目で算出された各積和結果を表すN1個の電気信号がそれぞれ入力される。従って2段目の各アナログ回路3から見ると、1段目で算出された各積和結果の非線形変換処理結果が電気信号の入力値xiとなる。2段目の各アナログ回路3により、1段目から出力された入力値xiに関する積和結果が算出され、さらに上位層のアナログ回路3に出力される。
このように、演算装置100では、下位層のアナログ回路3で算出された積和結果に基づいて、上位層のアナログ回路3の積和結果が算出される。このような処理が複数回実行され、最上位層(図1では3段目の層)に含まれるアナログ回路3から処理結果が出力される。これにより、例えば猫が撮影された画像データ(入力データ4)から、被写体が猫であることを判定するといった画像認識等の処理が可能となる。
このように、複数のアナログ回路3を含む演算回路部5を適宜接続することで所望のネットワーク回路を構成することが可能である。ネットワーク回路は、例えば信号を通過させることで演算処理を行うデータフロー型の処理システムとして機能する。ネットワーク回路では、例えば荷重値(シナプス結合)を適宜設定することで、様々な処理機能を実現することが可能となる。このネットワーク回路により、本実施形態に係る積和演算システムが構築される。
なお、アナログ回路3を接続する方法等は限定されず、例えば所望の処理が可能となるように、複数のアナログ回路3が適宜接続されてもよい。例えば、各アナログ回路3が階層構造とは異なる他の構造を構成するように接続される場合であっても、本技術は適用可能である。
上記では、下位層で算出された積和結果をそのまま上位層に入力する構成について説明した。これに限定されず、例えば積和結果についての変換処理等が実行されてもよい。例えばニューラルネットワークモデルでは、各アナログ回路3の積和結果に対して、活性化関数を用いて非線形変換を行い、その変換結果を上位層に入力するといった処理が実行される。
演算装置100では、例えば電気信号に対して活性化関数による非線形変換を行う関数回路6等が用いられる。関数回路6は、例えば下位層と上位層との間に設けられ、入力する電気信号の信号値を適宜変換して、変換結果に応じた電気信号を出力する回路である。関数回路6は、例えば信号線1ごとに設けられる。関数回路6の数や配置等は、例えば演算装置100に実装される数学モデル等に応じて適宜設定される。
活性化関数としては、例えばReLU関数(ランプ関数)等が用いられる。ReLU関数は、例えば入力値xiが0以上である場合には、入力値xiをそのまま出力し、それ以外の場合には0を出力する。例えばReLU関数を実装した関数回路6が各信号線1に適宜接続される。これにより、演算装置100の処理を実現することが可能である。
また積和結果として出力されるアナログ信号を拡大する拡大回路が設けられてもよい。
図2に示す演算装置200では、信号線1は、正の信号線1a及び負の信号線1bを含む。正負の各信号線1a及び1bは、ペアとして配線され、1対の信号線1として用いられる。以下では、正負の各信号線1a及び1bにより構成される1対の信号線1を、信号線対P1と記載する。なお図2では、正の信号線1aは、白丸の接続点に接続される信号線1であり、負の信号線1bは、黒丸の接続点に接続される信号線1である。
信号線対P1は、1つの入力値(あるいは出力値)に応じた信号対を伝送する。信号対は、正負の各信号線1a及び1bにそれぞれ入力される1対の電気信号である。この1対の電気信号の各信号値により、入力値が表わされる。すなわち、信号線対P1は、入力値を伝送する1つの伝送経路として機能するとも言える。
入力値xは、正の値x+と負の値x-との和により表される。ここで、正の値x+は、0以上の実数である(x+≧0)。また負の値x-は、0以下の実数である(x-≦0)。従って、入力値xは、正の値x+と負の値x-との和として、x=x++x-と表される。ここで、負の値x-の絶対値を用いると、入力値xは、正の値x+と負の値x-の絶対値との差として、x=x+−|x-|と表される。このように、入力値xは、2つの正の実数の差分を用いて表すことが可能である。
本実施形態では、信号対は、正信号と負信号とを含む。正信号は、正の値x+を信号値とする電気信号であり、正の信号線1aに入力される。負信号は、負の値xの絶対値|x-|を信号値とする電気信号であり、負の信号線1bに入力される。従って、信号対に含まれる正信号及び負信号は、ともに正の実数を表す電気信号となる。
このように、本実施形態では、信号対により表される入力値xは、正の信号線1aに入力される正信号の信号値(正の値x+)と、負の信号線1bに入力される負信号の信号値(負の値x-)との差分となる。言い換えれば、正信号の信号値から、負信号の信号値を引いた値が入力値xとなるように、正信号及び負信号(信号対)が生成される。
図2に示すように、1つのアナログ回路3には、複数の信号線対P1が接続される。アナログ回路3に信号対を伝送する信号線対P1は、その信号線対P1が接続されたアナログ回路3にとって、信号対が入力される入力信号線対(入力信号線のペア)となる。
また、アナログ回路3から出力される信号対を伝送する信号線対P1は、その信号線対P1が接続されたアナログ回路3にとって、信号対が出力される出力信号線対(出力信号線のペア)となる。本実施形態では、入力信号線対は、入力線対に相当する。
複数の入力部2は、入力データ4の値(入力値x)に応じた信号対をそれぞれ生成する。入力データ4は、例えば演算装置100によって実装されるニューラルネットワーク等を用いた処理の対象となるデータである。従って入力データ4に応じた複数の電気信号の各信号値は、演算装置100に対する入力値であるとも言える。また信号対は、入力対であるとも言える。
入力データ4としては、例えば演算装置100の処理対象となる画像データ、音声データ、統計データ等の任意のデータが用いられる。例えば、入力データ4として画像データが用いられる場合等には、画像データの各画素の画素値(RGB値や輝度値等)に応じた信号対が生成される。この他、入力データ4の種類や演算装置100による処理の内容に応じて、入力データ4に応じた信号対が適宜生成されてよい。
アナログ回路3は、入力される複数の信号対に基づいて、積和演算を行うアナログ方式の回路である。積和演算は、例えば複数の入力値と、各入力値に対応する荷重値とをそれぞれ乗算して得られる複数の乗算値を足し合わせる演算である。従って積和演算は、各乗算値の和(積和結果)を算出する処理であるとも言える。
演算装置200では、1つのアナログ回路3に入力される信号対(入力信号線対)の総数をNとすると、アナログ回路3に接続される入力信号線の総数は2×Nとなる。
また、信号対を用いた積和演算では、正の信号線1aに入力される正信号の信号値(正の値xi+)と、負の信号線1aに入力される負信号の信号値(負の値xi-)とに、それぞれ対応する荷重値が乗算され、2つの乗算値が算出される。これら2つの乗算値を用いて、入力値xiと荷重値wiとの乗算値wi・xiが表される。
図2に示すように、演算装置200では、1つの信号源(入力部2、アナログ回路3)から、入力値xiに応じた1対の電気信号(信号対)が信号線対P1を介して出力される。すなわち、1つの信号源の出力側に接続された各信号線対P1には、それぞれ同じ信号対が入力される。また1つの信号源と、その信号源から出力された電気信号が入力されるアナログ回路3とが、1つの信号線対P1(入力信号線対)で接続される。
従って例えば、図2に示す演算装置200では、M個の信号源と接続されるアナログ回路3には、M個の入力信号線対が接続されることになる。この場合、アナログ回路3に入力される信号対の総数Nは、N=Mとなる。なお、アナログ回路3に入力される電気信号の総数、すなわち入力側に接続される信号線1の総数は、2×Mとなる。
図1に示す演算装置100では、1つの入力値xiに対応する1つの信号が入力され、アナログ回路3から出力される積和結果として1つの信号が出力される。図2に示す演算装置200では、1つの入力値xiに対応する2つの信号の対(信号対)が入力され、アナログ回路3から出力される積和結果として2つの信号の対(信号対)が出力される。
以下、演算装置100を1入力1出力構成の演算装置と記載する場合がある。また演算装置200を、2入力2出力構成の演算装置と記載する場合がある。
図3は、1入力1出力構成の演算装置100のアナログ回路3に入力される電気信号の一例を示す模式図である。
図3A及びBには、複数の電気信号の波形を表すグラフが模式的に図示されている。グラフの横軸は時間軸であり、縦軸は電気信号の電圧である。
図3Aには、パルス幅変調(PWM:Pulse Width Modulation)方式の電気信号の波形の一例が示されている。PWM方式は、例えばパルス波形のパルス幅を用いて入力値xiを表す方式である。
すなわち、PWM方式では、電気信号のパルス幅は、入力値xiに応じた長さとなる。典型的には、パルス幅が長いほど、値の大きい入力値xiを表す。
また電気信号は、所定の入力期間T内に、アナログ回路3に入力される。より詳しくは、電気信号のパルス波形が、入力期間Tに収まるように、各電気信号がアナログ回路3に入力される。
従って、電気信号のパルス幅の最大値は、入力期間Tと同様となる。なお、入力期間Tに収まる範囲であれば、各パルス波形(電気信号)が入力されるタイミング等は限定されない。
PWM方式では、例えばパルス幅τiと入力期間Tとのデューティ比Ri(=τi/T)を用いて、入力値xiを規格化することが可能である。すなわち、規格化された入力値xiは、入力値xi=ディーティ比Riと表される。
なお入力値xiとパルス幅τiとを対応付ける方法等は限定されず、例えば所望の精度で演算処理等が可能となるように、入力値xiを表すパルス幅τiが適宜設定されてよい。
PWM方式の電気信号が用いられる場合、PWM方式のアナログ回路3を用いた時間軸アナログ積和演算が実行可能である。
図3Bには、スパイクタイミング方式(以下、TACT方式と記載する)の電気信号の波形の一例が示されている。
TACT方式は、例えばパルスの立ち上がりタイミングを用いて入力値xiを表す方式である。例えば所定のタイミングを基準として、入力値に応じたタイミングでパルスが入力される。
電気信号は、所定の入力期間T内に、アナログ回路3に入力される。この入力期間Tにおける、パルスの入力タイミングにより入力値xiが表される。
例えば入力期間Tの開始と同時に入力されたパルスにより最も大きい入力値xiが表される。入力期間Tの終了と同時に入力されたパルスにより、最も小さい入力値xiが表される。
このことを、パルスの入力タイミングから入力期間Tの終了タイミングまでの長さにより、入力値xiが表されると言うことも可能である。
例えば、パルスの入力タイミングから入力期間Tの終了タイミングまでの長さが入力期間Tと等しいパルスにより、最も大きい入力値xiが表される。パルスの入力タイミングから入力期間Tの終了タイミングまでの長さが0のパルスにより、最も小さい入力値xiが表される。
なお図3Bには、TACT方式の電気信号として、入力値に応じたタイミングに立ち上がり、積和結果が得られるまでONレベルを維持する継続的なパルス信号が用いられる。これに限定されず、TACT方式の電気信号として、所定のパルス幅を持った矩形パルス等が用いられてもよい。
TACT方式の電気信号が用いられる場合、TACT方式のアナログ回路3を用いた時間軸アナログ積和演算が実行可能である。
図3A及びBに例示するように、入力値に応じた電気信号として、入力期間Tに対するON時間の長さがに入力値に対応しているパルス信号を用いることが可能である。なお以下では、各電気信号により表される入力値xiが0以上1以下の変数であるとして説明を行う。
図4は、2入力2出力構成の演算装置200のアナログ回路3に入力される信号対の一例を示す模式図である。図4A及びBには、1対の電気信号(信号対)の波形を表すグラフが模式的に図示されている。
図4(図4B)において、上側のグラフは、正の信号線1aに入力される電気信号(正信号IN+)の波形を表している。また下側のグラフは、負の信号線1bに入力される電気信号(負信号IN-)の波形を表している。グラフの横軸は時間軸であり、縦軸は電気信号の電圧である。
図4Aには、PWM方式の電気信号の波形の一例が示されている。PWM方式では、正信号INi +は、その信号値である正の値xi +に応じたパルス幅を持った電気信号となる。また負信号INi -は、その信号値である負の値xi -の絶対値|xi -|に応じたパルス幅を持った電気信号となる。なお、正信号INi +及び負信号INi -が入力されるタイミングは、ずれていてもよい。
また信号対の入力値xiは、正信号INi +のパルス幅から、負信号INi -のパルス幅を引いた値となる。従って、PWM方式の信号対では、正負の信号線1a及び1bに入力される各電気信号(正信号INi +及び負信号INi -)のパルス幅の差により、入力値xiが表される。
図4Bには、TACT方式の電気信号の波形の一例が示されている。TACT方式では、正信号INi +は、その信号値である正の値xi +に応じたタイミングでパルスが入力される電気信号となる。また負信号INi -は、その信号値である負の値xi -の絶対値|xi -|応じたタイミングでパルスが入力される電気信号となる。
信号対の入力値xiは、正の値xi +と負の値xi -の絶対値|xi -|との差分で表される。従って、入力値xiは、正信号INi +のパルスの入力タイミングから、負信号INi -のパルスの入力タイミングを引いた値となる。このように、TACT方式の信号対では、正負の信号線1a及び1bに入力されるパルスの入力タイミングの差により、入力値xiが表される。
なお図4Bには、TACT方式の電気信号(正信号及び負信号)として、信号値に応じたタイミングに立ち上がり、積和結果が得られるまでONレベルを維持する継続的なパルス信号が用いられる。これに限定されず、TACT方式の電気信号として、所定のパルス幅を持った矩形パルス等が用いられてもよい。
図5は、1入力1出力構成の演算装置100において、1つの階層として設けられる演算回路部5の構成例を示す模式図である。
演算回路部5は、複数の入力信号線7と、複数のアナログ回路3を有する。
複数の入力信号線7には、所定の入力期間T内に、入力値xiに応じた信号がそれぞれ入力される。例えば、図3を参照して説明したPWM方式やTACT方式の電気信号が、入力期間Tの間に各入力信号線7に入力される。
アナログ回路3は、1対の出力線8と、複数のシナプス回路9と、ニューロン回路10とを有する。
図5に示すように、1つのアナログ回路3は、所定の方向(図中の縦方向)に延在するように構成される。この縦方向に延在するアナログ回路3が、横方向に複数並列に配置されることで、演算回路部5が1つの階層として構成される。以下では、図中の最も左側に配置されたアナログ回路3を1番目のアナログ回路3とする。
1対の出力線8は、互いに離間して配置される。1対の出力線8は、正電荷出力線8aと、負電荷出力線8bとを有する。
正電荷出力線8a及び負電荷出力線8bの各々は、複数のシナプス回路9を経由してニューロン回路10に接続される。
複数のシナプス回路9は、複数の入力信号線7にそれぞれ対応して配置される。1つのシナプス回路9には、1つの入力信号線7が接続される。1つのアナログ回路3に設けられるシナプス回路9の数は、例えば入力信号線7の数以下に設定される。すなわち、全ての入力信号線7にシナプス回路9が接続される必要はない。
このように、複数のシナプス回路9は、複数の入力信号線7の少なくとも1部にそれぞれ接続される。シナプス回路9が接続される入力信号線7(すなわち、シナプス回路9の配置)は、例えば演算装置100に実装する数学モデルや、シミュレーション等を用いて適宜選択される。
シナプス回路9は、電気信号により表される入力値xiと荷重値wiとの乗算値(wi・xi )を算出する。具体的には、乗算値に対応する電荷(電流)を正電荷出力線8a及び負電荷出力線8bのどちらか一方に、積和信号として出力する。
後述するように、シナプス回路9には正の荷重値wi+及び負の荷重値wi-のどちらか一方が設定される。例えば正の荷重値wi+との乗算値に対応する正荷重電荷は、正電荷出力線8aに出力される。また例えば負の荷重値wi-との乗算値に対応する負荷重電荷は、負電荷出力線8bに出力される。
なおシナプス回路9では、乗算値に対応する電荷として、荷重値wiの正負にかかわらず同符号の電荷(例えば正の電荷)が出力される。すなわち、正荷重電荷及び負荷重電荷は、互いに同符号の電荷となる。
このように、シナプス回路9は、乗算結果に対応する電荷を荷重値wiの符号に応じてそれぞれ別の出力線8a又は8bに出力するように構成される。
本実施形態において、複数のシナプス回路9は、複数の入力線の各々に入力される電気信号に基づいて、入力値に荷重値を乗算した乗算値に対応する電荷を生成して、積和信号として出力線に出力する複数の乗算部として機能する。
本実施形態では、1つのシナプス回路9に対して、単一の入力信号線7と、1対の出力線8とが接続される。すなわち1つのシナプス回路9には、単一の電気信号が入力され、入力された電気信号に基づいて算出された乗算値に対応する電荷が、いずれか一方の電荷出力線8a又は8bに出力される。このように、シナプス回路9は、単一の入力信号線7と1対の出力線8(正電荷出力線8a及び負電荷出力線8b)とに接続された1入力2出力の回路となる。
1つのアナログ回路3では、複数のシナプス回路9が、1対の出力線8に沿って配置される。各シナプス回路9は、正電荷出力線8a(負電荷出力線8b)に対してそれぞれ並列に接続される。以下では、最も下流側(ニューロン回路10に接続される側)に配置されるシナプス回路9を1番目のシナプス回路とする。
図5に示すように、複数の入力信号線7は、複数のアナログ回路3の各々が有する1対の出力線8に対して交差するように配線される。典型的には、入力信号線7は各出力線8と直交するように設けられる。すなわち、演算装置100は、入力信号線7と出力線8とが交差したクロスバー構成を有する。クロスバー構成を用いることで、例えばアナログ回路3等を高密度に集積化することが可能となる。
また演算装置100では、j番目の入力信号線7に対して、各アナログ回路3に含まれるj番目のシナプス回路9がそれぞれ並列に接続される。従って、同じ入力信号線7に接続されるシナプス回路9には、互いに同様の電気信号が入力される。これにより、下位層に含まれる1つの信号源が、上位層に含まれる複数のアナログ回路3に接続される構成を実装することが可能である。
なお図5に示す例では、各入力信号線7に電気信号を入力する信号源として、下位層に含まれるアナログ回路3(プレニューロン)が模式的に図示されている。これに限定されず、例えば信号源として、入力部2が用いられる場合にも、クロスバー構成を用いることが可能である。
このように、演算装置100では、複数のアナログ回路3が、複数の入力信号線7の各々に並列に接続される。これにより、例えば、各アナログ回路3(各シナプス回路9)に対して並列に電気信号を入力することが可能となり、演算処理の高速化を図ることが可能である。この結果、優れた演算性能を発揮することが可能となる。
ニューロン回路10は、各シナプス回路9で算出された乗算値に基づいて、(数1)式に示す積和結果を算出する。具体的には、1対の出力線8を介して入力された電荷に基づいて、積和結果を表す電気信号を、積和結果信号として出力する。
図6は、ニューロン回路10の構成例を示す模式図である。ニューロン回路10は、蓄積部11と、信号出力部12とを有する。図6には、1対の出力線8と、単一の出力信号線13とに接続された2入力1出力のニューロン回路10が示されている。
蓄積部11は、複数のシナプス回路9により1対の出力線8に出力された電荷を蓄積する。蓄積部11は、2つのキャパシタ14a及び14bを有する。キャパシタ14aは、正電荷出力線8aとGNDとの間に接続される。またキャパシタ14bは、負電荷出力線8bとGNDとの間に接続される。
従って各キャパシタ14a及び14bには、正電荷出力線8a及び負電荷出力線8bから流れ込む電荷がそれぞれ蓄積される。なおキャパシタ14a及び14bは、互いに同じ容量に設定される。
例えば電気信号の入力期間Tが終了したタイミングで、キャパシタ14aに蓄積された電荷は、正の荷重値wi+との乗算値に対応する正荷重電荷の総和σ+となる。
また同様に、キャパシタ14bに蓄積された電荷は、負の荷重値wi-との乗算値に対応する負荷重電荷の総和σ-となる。
例えばキャパシタ14aに正荷重電荷が蓄積されると、GNDを基準とする正電荷出力線8aの電位が上昇する。従って、正電荷出力線8aの電位は、正の荷重値wi+との乗算値に対応する電荷の総和σ+に応じた値となる。なお、正電荷出力線8aの電位は、キャパシタ14aにより保持される電圧に相当する。
同様に、キャパシタ14bに負荷重電荷が蓄積されると、GNDを基準とする負電荷出力線8bの電位が上昇する。従って、負電荷出力線8bの電位は、負の荷重値wi-との乗算値に対応する電荷の総和σ-に応じた値となる。なお、負電荷出力線8bの電位は、キャパシタ14bにより保持される電圧に相当する。
信号出力部12は、蓄積部11に蓄積された電荷に基づいて、乗算値(wi・xi )の和を表す積和結果信号を出力する。積和結果信号は、例えば正負合わせたすべての荷重値wiと入力値xiとの乗算値の和である全体の積和結果を表す信号である。例えば、(数1)式で表される積和結果は、以下のように書き表すことが可能である。
ここで、N+及びN-は、それぞれ正の荷重値wi+の総数及び負の荷重値wi-の総数である。(数2)式に示すように、全体の積和結果は、正の荷重値wi+との乗算値(wi+・xi )の総和である正荷重電荷の積和結果と、負の荷重値wi-との乗算値(|wi-|・xi )の総和である負荷重電荷の積和結果との差分として算出可能である。
図6に示す例では、信号出力部12は、積和結果信号として、例えば全体の積和結果を表す1つの信号を生成する。具体的には、蓄積部11(キャパシタ14a及び14b)に蓄積された電荷を適宜参照して、正の積和結果及び負の積和結果を算出し、これらの差分から全体の積和結果が算出される。
蓄積部11に蓄積された電荷を参照する方法は限定されない。一例として、1つのキャパシタ14に蓄積された電荷を検出する方法について説明する。
図3Aに例示するPWM方式の電気信号が用いられる場合、乗算値に対応する電荷は、入力期間T内にキャパシタ14に蓄積される。すなわち、入力期間Tの前後では、乗算値に対応する電荷の蓄積は生じない。
例えば入力期間Tの終了後に、所定の充電速度でキャパシタ14を充電する。この時、比較器(コンパレータ等)を用いて、キャパシタ14が接続された出力線の電位が所定の閾値電位に到達するタイミングを検出する。
例えば充電開始時の電荷が多いほど、閾値電位に達するタイミングが早くなる。従ってタイミングに基づいて、入力期間T内に蓄積された電荷(積和結果)を表すことが可能となる。なお充電速度は、例えば単位時間当たりの充電量で表現することが可能であり、充電率と言うことも可能である。
なお、この閾値判定は、充電によりキャパシタ14に保持される電圧を増加させ、閾値電圧に到達するタイミングを検出することに相当する。
図3Bに例示するTACT方式の電気信号が用いられる場合は、入力期間Tの終了後にもONレベルが維持されるので、キャパシタ14に電荷が蓄積される。この電荷の蓄積に対して、比較器(コンパレータ等)を用いて、キャパシタ14が接続された出力線の電位が所定の閾値電位に到達するタイミングを検出する。
例えば入力期間Tの終了時の電荷が多いほど、閾値電位に達するタイミングが早くなる。従ってタイミングに基づいて、入力期間T内に蓄積された電荷(積和結果)を表すことが可能となる。
なお、この閾値判定は、キャパシタ14に保持される電圧が、閾値電圧に到達するタイミングを検出することに相当する。
例えば、上記のような閾値判定を行うことで、積和結果を表すタイミングが検出される。この検出結果に基づいて、正荷重電荷に関する積和結果信号や負荷重電荷に関する積和結果信号、あるいは全体の積和結果信号が適宜生成される。
この他にも、例えば入力期間Tの終了時のキャパシタ14の電位を直接読み出して、各積和結果が算出されてもよい。
本実施形態において、積和結果信号は、入力値に荷重値を乗算した乗算値の和に対応するタイミングの情報を含む信号である。
なお、積和結果信号を生成するために、蓄積された正荷重電荷に応じた電圧及び蓄積された負荷重電荷に応じた電圧がそれぞれ増幅されてもよい。また蓄積された正荷重電荷に応じた電圧と、蓄積された負荷重電荷に応じた電圧との差分電圧が増幅されて、積和結果信号が生成されてもよい。例えばニューロン回路10内に、任意の構成を有する差動増幅器等が設けられてよい。
本実施形態において、ニューロン回路10は、複数の乗算部の各々により生成された乗算値に対応する電荷を蓄積し、蓄積された電荷に基づいて、乗算値の和を表す積和結果信号を出力する。
ニューロン回路10に含まれる蓄積部11は、複数の乗算部の各々により出力線に出力された乗算値に対応する電荷を蓄積する蓄積部として機能する。
またキャパシタ14a及びキャパシタ14bは、正電荷蓄積部及び負電荷蓄積部として機能する。
また本実施形態では、充電部が構成され、入力期間T後に、乗算値に対応する電荷が蓄積された蓄積部11(キャパシタ14)が充電される。
なおTACT方式の電気信号が用いられる場合において、ONレベルが維持されたパルス信号により、キャパシタ14に電荷が蓄積されることも、本技術に係る充電に含まれる。
信号出力部12は、充電部による充電の開始後、蓄積部11により保持される電圧に対して所定の閾値により閾値判定を実行することで、入力値に荷重値を乗算した乗算値の和に対応するタイミングの情報を含む積和結果信号を出力する出力部として機能する。
信号出力部12は、正電荷蓄積部、及び負電荷蓄積部の各々に対して、閾値判定を実行することで、積和結果信号を出力する。
図7は、2入力2出力構成の演算装置200において、1つの階層として設けられる演算回路部5の構成例を示す模式図である。
演算回路部5は、複数の入力信号線対P7と、複数のアナログ回路3を有する。
複数の入力信号線対P7には、所定の入力期間T内に、入力値xiに応じた信号対がそれぞれ入力される。例えば、図4を参照して説明したPWM方式やTACT方式の信号対が、入力期間Tの間に各入力信号線対P7に入力される。
各入力信号線対P7は、正の入力信号線7aと、負の入力信号線7bとを有する。正の入力信号線7aは、正信号が入力される信号線であり、負の入力信号線7bは、負信号が入力される信号線である。本実施形態では、正の入力信号線7aは、正入力線に相当し、負の入力信号線7bは、負入力線に相当する。
シナプス回路9は、信号対により表される入力値xiと荷重値wiとの乗算値(wi・xi )を算出する。より詳しくは、乗算値(wi・xi )は、信号対に含まれる正信号及び負信号の各信号値(正の値xi +及び負の値xi -の絶対値|xi -|)のそれぞれに、対応する荷重値を乗算することで算出される。
複数のシナプス回路9には、正の荷重値vi +と、負の荷重値vi -とがそれぞれ設定される。ここで、正の荷重値vi +は、正の実数である(vi +>0)。また負の荷重値vi -は、負の実数である(vi -<0)。
このように、シナプス回路9は、正負の荷重値vi +及びvi -が設定された荷重対であると言える。
シナプス回路9は、信号対に含まれる一方の電気信号の信号値と、正の荷重値vi +との乗算値を算出する。
また他方の電気信号の信号値と、負の荷重値vi -との乗算値を算出する。具体的には、各乗算値に対応する電荷(電流)をそれぞれ生成する。
正の荷重値vi +を乗算する対象となる電気信号は、シナプス回路9ごとに適宜設定される。また、正の荷重値vi +の対象として設定された電気信号ではない電気信号が、負の荷重値vi -を乗算する対象となる。以下では、正の荷重値vi +との乗算値を正荷重乗算値と記載し、正荷重乗算値に対応する電荷を正荷重電荷と記載する。また負の荷重値vi +との乗算値を負荷重乗算値と記載し、負荷重乗算値に対応する電荷を負荷重電荷と記載する。
このように、シナプス回路9は、接続された入力信号線対P7に入力される信号対のうち、一方の信号の信号値に正の荷重値vi +を乗算した正荷重乗算値に対応する正荷重電荷と、他方の信号の信号値に負の荷重値vi -を乗算した負荷重乗算値に対応する負荷重電荷とをそれぞれ生成可能である。
なおシナプス回路9では、各乗算値に対応する電荷として、荷重値の正負にかかわらず同符号の電荷(例えば正の電荷)が出力される。すなわち、正荷重電荷及び負荷重電荷は、互いに同符号の電荷となる。
従って実際の回路では、例えば負の荷重値vi -として、負の荷重値vi -の絶対値|vi -|が乗算されると見做すことが可能である。このように、正負の荷重値を同符号の値として扱えるため、回路の構成を簡素化することが可能である。
本実施形態では、正の荷重値vi +、及び負の荷重値vi -の絶対値|vi -|は、複数のシナプス回路9ごとに同じ値に設定される。
具体的には、正の荷重値vi +、及び負の荷重値vi -の絶対値|vi -|は、ともに荷重値wiの絶対値|wi|と同じ値に設定される。すなわち、各荷重値は、|wi|=vi +=|vi -|の関係を満たす。以下では、荷重値wiを対荷重値wiと記載する場合がある。
シナプス回路9には、対荷重値wiとして、正の値となる対荷重値wi +と、負の値となる対荷重値wi -とのどちらか一方が設定される。
正負の対荷重値wi +及びwi は、信号対(正信号及ぶ負信号)と荷重対(正の荷重値)とを適宜対応させることで設定することが可能である。
以下、正の対荷重値wi +が設定されたシナプス回路9を正のシナプス回路9aと記載し、負の対荷重値wi -が設定されたシナプス回路9を負のシナプス回路9bと記載する。
正のシナプス回路9aは、正信号の信号値(xi +)に正の荷重値vi +を乗算して正荷重電荷を生成し、負信号の信号値(|xi -|)に負の荷重値|vi -|を乗算して負荷重電荷を生成する。従って正荷重電荷及び負荷重電荷は、それぞれ正荷重乗算値(vi +・xi +)及び負荷重乗算値(|vi -|・|xi -|)に対応した電荷となる。
この場合、正荷重乗算値と負荷重乗算値との差分Δ+は、以下のように表される。
Δ+=vi +・xi +−|vi -|・|xi -|=|wi|(xi ++xi -)=wi +・xi
このように差分Δ+は、正の対荷重値wi +と入力値xiとの乗算値wi +・xiとなる。すなわち、正のシナプス回路9aでは、乗算値wi +・xiが、正荷重電荷と負荷重電荷との差分として算出される。本実施形態では、正のシナプス回路9aは、第1の乗算部に相当する。
負のシナプス回路9bは、負信号の信号値(|xi -|)に正の荷重値vi +を乗算して正荷重電荷を生成し、正信号の信号値(xi +)に負の荷重値|vi -|を乗算して負荷重電荷を生成する。従って正荷重電荷及び負荷重電荷は、それぞれ正荷重乗算値(|vi -|・xi +)及び負荷重乗算値(vi +・|xi -|)に対応した電荷となる。
この場合、正荷重乗算値と負荷重乗算値との差分Δ-は、以下のように表される。
Δ- =|vi -|・xi +−vi +・|xi -|=−|wi|(xi ++xi -)=wi -・xi
このように差分Δ- は、負の対荷重値wi -と入力値xiとの乗算値wi -・xiとなる。すなわち、負のシナプス回路9bでは、乗算値wi -・xiが、正荷重電荷と負荷重電荷との差分として算出される。本実施形態では、負のシナプス回路9bは、第2の乗算部に相当する。
なお、正荷重乗算値に対応する正荷重電荷は、正電荷出力線8aに出力され、負荷重乗算値に対応する負荷重電荷は、負電荷出力線8bに出力される。
本実施形態では、1つのシナプス回路9に対して、1対の入力信号線7(入力信号線対P7)と、1対の出力線8とが接続される。
すなわち1つのシナプス回路9には、信号対が入力され、各電気信号に基づいて算出された乗算値に対応する電荷が、対荷重値wiの符号に応じて各出力線8a又は8bに出力される。このように、シナプス回路9は、2入力2出力の回路となる。
図7に示すように、複数の入力信号線対P7は、複数のアナログ回路3の各々が有する1対の出力線8に対して交差するように配線される。典型的には、各入力信号線7は各出力線8と直交するように設けられる。すなわち、演算装置200でも、入力信号線対P7と出力線8とが交差したクロスバー構成を実現することが可能である。
このように、演算装置200では、複数のアナログ回路3が、複数の入力信号線対P7の各々に並列に接続される。これにより、例えば、各アナログ回路3(各シナプス回路9)に対して並列に信号対を入力することが可能となり、演算処理の高速化を図ることが可能である。この結果、優れた演算性能を発揮することが可能となる。
図8は、ニューロン回路10の構成例を示す模式図である。演算装置200では、1対の出力線8と、1対の出力信号線13(正の出力信号線13a及び負の出力信号線13b)とに接続された2入力2出力のニューロン回路10が構成される。
キャパシタ14aには、正電荷出力線8aから正の積和信号として出力される正荷重電荷が蓄積される。またキャパシタ14bには、負電荷出力線8bから負の積和信号として出力される負荷重電荷が蓄積される。このように、蓄積部11は、複数のシナプス回路9の各々により生成された、正荷重電荷及び負荷重電荷を蓄積可能である。
例えば電気信号の入力期間Tが終了したタイミングで、キャパシタ14aに蓄積された電荷は、各シナプス回路9に設けられた正の荷重値vi +との正荷重乗算値に対応する正荷重電荷の総和となる。
また同様に、キャパシタ14bに蓄積された電荷は、各シナプス回路9に設けられた負の荷重値vi -との負荷重乗算値に対応する負荷重電荷の総和となる。
信号出力部12は、蓄積部11に蓄積された電荷に基づいて、乗算値(wi・xi )の和を表す積和結果信号を出力する。
本実施形態では、乗算値(wi・xi )の和を表す積和結果信号として、正荷重乗算値の和を表す正の積和結果信号と、負荷重乗算値の和を表す負の積和結果信号とがそれぞれ出力される。
ここで、アナログ回路3に設けられるシナプス回路9の総数をNとする。またN個のシナプス回路9のうち、正の対荷重値wi +が設定されたシナプス回路9(正の荷重対)の総数をN+とし、負の対荷重値wi -が設定されたシナプス回路9(負の荷重対)の総数をN-とする。従って、N=N++N-である。
この場合、(数1)式で表される積和結果は、1入力1出力構成の演算装置100と同様に、上記の(数2)式で書き表すことが可能である。
2入力2出力の演算装置200では、信号対を用いるので、入力値xiは、正の値xi +と負の値xi -の絶対値|xi -|との差として表される(xi=xi +−|xi -|)。従って、(数2)式は、以下のように書き変えることが可能である。
(数3)式に示すように、積和結果は、第1の項から第2の項を引いた値となる。ここで第1の項及び第2の項は、それぞれ中括弧{}で囲まれた項である。
第1の項は、正の対荷重値wi +が設定されたシナプス回路9で算出された正荷重乗算値(wi +・xi +)と、負の対荷重値wi -が設定されたシナプス回路9で算出された正荷重乗算値(|wi -|・|xi -|)とを全て足し合わせた値となる。
すなわち、第1の項は、全てのシナプス回路9で算出される正荷重乗算値の和σ+となる。この正荷重乗算値の和は、キャパシタ14aに蓄積された正荷重電荷の総和により表される。
第2の項は、正の対荷重値wi +が設定されたシナプス回路9で算出された負荷重乗算値(wi +・|xi -|)と、負の対荷重値wi -が設定されたシナプス回路9で算出された負荷重乗算値(|wi -|・xi +)とを全て足し合わせた値となる。
すなわち、第2の項は、全てのシナプス回路9で算出される負荷重乗算値の和σ-となる。この負荷重乗算値の和は、キャパシタ14bに蓄積された負荷重電荷の総和により表される。
このように、全体の積和結果は、正荷重乗算値の和σ+と、負荷重乗算値の和σ-との差分として算出可能である。
なお、(数3)式の第1の項(正荷重乗算値の和σ+)は、N+個の正の対荷重値wi +との積和結果に対応するわけではなく、また(数3)式の第2の項(負荷重乗算値の和σ-)は、N-個の負の対荷重値wi -との積和結果に対応するわけではない。
図8に示す例では、信号出力部12は、キャパシタ14aに蓄積された電荷を参照して正荷重乗算値の和を表す正の積和結果信号を算出し、キャパシタ14bに蓄積された電荷を参照して、負荷重乗算値の和を表す負の積和結果信号を算出する。
入力期間Tが終了したタイミングでは、キャパシタ14a(14b)には、正荷重乗算値の和(負荷重乗算値の和)に対応する電荷が蓄積される。これは、TACT方式、及びPWM方式のいずれが用いられる場合でも同様である。
入力期間Tの終了後に、キャパシタ14a及びキャパシタ14bがそれぞれ充電される。信号出力部12は、各キャパシタ14a及び14bについて閾値判定を行い、正の積和結果信号及び負の積和結果信号をそれぞれ生成し、1対の出力信号線13に出力する。
図9は、1入力1出力構成の演算装置100における、PWM方式のアナログ回路3の一例を示す模式的な回路図である。アナログ回路3は、複数の入力信号線7に対して、直交する方向に延在して設けられる。すなわち図9に示す例では、クロスバー構成が採用されている。
アナログ回路3は、1対の出力線(正電荷出力線8a、負電荷出力線8b)と、複数のシナプス回路(複数の乗算部)9と、ニューロン回路10と、充電部15とを有する。図9に示す例では、ニューロン回路10は、蓄積部11、信号出力部12、及びスイッチ16a及び16bを含んでいる。
複数の入力信号線7には、入力信号in1〜in6として、入力値xiに応じたパルス幅を有するパルス信号(PWM信号)が入力される。図9に示す例では、6本の入力信号線7が図示されているが、入力信号線7の数は限定されない。入力信号in1〜in6は、所定の長さを有する入力期間T内に入力される(図10参照)。
正電荷出力線8aは、入力値xiに正の荷重値wi +を乗算した乗算値(wi +・xi )に対応する正荷重電荷を出力する。負電荷出力線8bは、入力値xiに負の荷重値wi -を乗算した乗算値(|wi -|・xi )に対応する負荷重電荷を出力する。本実施形態において、1対の出力線8は、1以上の出力線に相当する。
複数のシナプス回路9は、複数の入力信号線7に対応してそれぞれ設けられる。本実施形態では、1つの入力信号線7に対して、1つのシナプス回路9が設けられる。
複数のシナプス回路9の各々は、複数の入力信号線7のうちの対応する入力信号線7と、正電荷出力線8a及び負電荷出力線8bのいずれか1つとの間に接続される抵抗器17を含む。この抵抗器17は、非線形特性を有してもよく、電流の逆流防止機能を有してもよい。
そして抵抗器17が接続された出力線8a(又は8b)に、乗算値(wi +・xi )(又は(|wi -|・xi ))に対応する電荷を出力する。
例えば、各シナプス回路9において、入力値xiに対して正の荷重値wi +を乗算したい場合には、入力信号線7と正電荷出力線8aとの間に抵抗器17を接続し、正電荷出力線8aに、正荷重電荷を出力させる。
図9に示す例では、入力信号in1 、in3 、in6 が入力されるシナプス回路9が、正荷重電荷を生成する正荷重乗算部として構成されたシナプス回路9aとなる。シナプス回路9aは、正荷重が設定された乗算部ともいえる。
各シナプス回路9において、入力値xiに対して負の荷重値wi -を乗算したい場合には、入力信号線7と負電荷出力線8bとの間に抵抗器17を接続し、負電荷出力線8bに、負荷重電荷を出力させる。
図9に示す例では、入力信号in2 、in4 、in5 が入力されるシナプス回路9が、負荷重電荷を生成する負荷重乗算部として構成されたシナプス回路9bとなる。シナプス回路9bは、負荷重が設定された乗算部ともいえる。
以下、シナプス回路9a及び9bを、正荷重乗算部9a及び負荷重乗算部9bと記載する場合がある。
また入力信号線7と正電荷出力線8aとの間に接続される抵抗器17を、正側抵抗器17aと記載する場合がある。
また入力信号線7と負電荷出力線8bとの間に接続される抵抗器17を、負側抵抗器17bと記載する場合がある。
なお抵抗器17は、設定したい荷重値wiに応じた抵抗値を有するものが用いられる。すなわち抵抗器17は、積和演算をアナログ回路3で実行する演算装置100において、荷重値wiを規定する素子として機能する。
抵抗器17としては、例えば、固定抵抗素子、可変抵抗素子、又はサブスレッショルド領域で動作するMOSトランジスタ等が用いられる。例えば、抵抗器17として、サブスレッショルド領域で動作するMOSトランジスタを用いることで、低消費電力化を実現することが可能となる。もちろん、他の任意の抵抗器が用いられてもよい。
蓄積部11は、複数のシナプス回路9の各々により生成された、乗算値(wi・xi )に対応する電荷を蓄積する。本実施形態では、蓄積部11として、2つのキャパシタ14a及び14bが設けられる。
キャパシタ14aは、スイッチ16aを介して正電荷出力線8aに接続され、シナプス回路9aにより生成された正荷重電荷を蓄積する。
キャパシタ14bは、スイッチ16bを介して負電荷出力線8bに接続され、シナプス回路9bにより生成された負荷重電荷を蓄積する。
充電部15は、乗算値(wi・xi )に対応する電荷の和が蓄積された蓄積部11を充電する。本実施形態では、充電部15は、信号源(図示は省略)と、充電線19と、2つの抵抗器20とを有する。
充電線19は、入力信号線7と平行に配置される。
2つの抵抗器20のうちの抵抗器20aは、充電線19と正電荷出力線8aとの間に接続される。もう1つの抵抗器20bは、充電線19と負電荷出力線8bとの間に接続される。
従って、充電線19は、抵抗器20aを介してキャパシタ14aに接続される。また充電線19は、抵抗器20bを介してキャパシタ14aに接続される。
抵抗器20a及び20bとして、同じ抵抗値を有するものが用いられる。典型的には、同じ抵抗器が用いられるが、同じ抵抗値を有する異なる種類の抵抗器が用いられてもよい。抵抗器20a及び20bの具体的な構成は限定されず、抵抗器17と同様に、種々のものが用いられてよい。また抵抗器20a及び20bとして、抵抗器17と同じものが用いられてもよいし、異なるものが用いられてもよい。
充電は、入力期間Tの終了後に実行される。本実施形態では、入力期間Tの終了後に、充電線19を介して、充電信号CHが入力される。すなわち、充電線19からキャパシタ14a及び14bに、同じ充電信号CHが供給される。
これにより充電信号CHのハイレベルの値と抵抗器20a及び20bの抵抗値とに基づいた電荷が、キャパシタ14a及び14bに蓄積される。
抵抗器20a及び20bの抵抗値は互いに同じ値であるので、キャパシタ14a及び14bは同じ充電速度で充電される。
充電部15による充電により、正電荷出力線8aの電位(キャパシタ14aに保持された電圧)V+、及び負電荷出力線8bの電位(キャパシタ14bに保持された電圧)V-が、それぞれ増加される。
信号出力部12は、充電部15による充電の開始後、蓄積部11により保持される電圧に対して、所定の閾値により閾値判定を実行することで、乗算値(wi・xi )の和を表す積和結果信号を出力する。
本実施形態では、信号出力部12として、2つのコンパレータ22a及びコンパレータ22bと、信号生成部23とが設けられる。
コンパレータ22aは、キャパシタ14aにより保持される電圧が、所定の閾値よりも大きくなるタイミングを検出する。
なおキャパシタ14aにより保持される電圧の大きさは、キャパシタ14aに蓄積された正荷重電荷の総量及び充電量(充電速度×時間)により定まる。
コンパレータ22bは、キャパシタ14bにより保持される電圧が、所定の閾値よりも大きくなるタイミングを検出する。
なおキャパシタ14bにより保持される電圧の大きさは、キャパシタ14bに蓄積された負荷重電荷の総量及び充電量(充電速度×時間)により定まる。
なお本実施形態では、キャパシタ14a及び14bの各々に対して、共通の閾値θより閾値判定を実行することで、積和結果信号が出力される。これにより演算の効率化、高速化を図ることが可能となる。もちろん互いに異なる閾値が用いられる場合でも、積和演算は可能である。
信号生成部23は、コンパレータ22aにより検出されたタイミング、及びコンパレータ22bにより検出されたタイミングに基づいて、乗算値(wi・xi )の和を表す積和結果信号を出力する。
すなわち信号生成部23は、キャパシタ14aにより保持される電圧が閾値θに達したタイミングと、キャパシタ14bにより保持される電圧が閾値θに達したタイミングとに基づいて、積和結果信号を出力する。
本実施形態では、積和結果信号として、パルス幅が変調されたパルス信号である、PMW信号が出力される。信号生成部23の具体的な回路構成等は限定されず、任意に設計されてよい。
図10及び図11は、図9に示すアナログ回路3による積和結果信号の算出例を説明するための図である。
本実施形態では、キャパシタ14aに蓄積された正荷重電荷に基づいた正荷重電荷の積和結果と、キャパシタ14bに蓄積された負荷重電荷に基づいた負荷重電荷の積和結果とに基づいて、正負を含めた全体の積和結果を表す積和結果信号が算出される。
正荷重電荷の積和結果の算出、及び負荷重電荷の積和結果の算出は、互いに等しい処理となる。まず図10を参照しながら、正負の区別なく、キャパシタ14に蓄積された電荷に基づいた積和結果の算出方法(積和演算方法)を説明する。
図10の中で記載されているパラメータを説明する。
「t」は時間である。
「T」は入力期間及び出力期間の各々を表す。
「tn 」は入力期間Tの終了タイミングである。
「tm 」は出力期間Tの終了タイミングである。
本実施形態では、入力期間Tの長さと、出力期間Tの長さとが、互いに等しく設定される。また入力期間Tの終了タイミングtnから出力期間Tが開始される。従って、入力期間Tの終了タイミングtnは、出力期間Tの開始タイミングに相当する。
また本実施形態では、入力期間Tの後の出力期間Tにて、充電部15により充電が実行される。従って出力期間Tは、充電期間に相当する。
「θ」は、信号出力部12(コンパレータ22)による閾値判定に用いられる共通の閾値である。
「Si(t)」は、i番目の入力信号線7に入力される入力信号(PWM信号)である。
「τi 」は、入力信号Si(t)のパルス幅である。
「Pi(t)」は、図9に示す各シナプス回路9における、内部状態(電位)の変化量である。
「wi 」は、荷重値であり、図9に示す抵抗器17の抵抗値により規定される。
「Vn(t)」は、「Pi(t)」の総和であり、キャパシタ14に蓄積される電荷の総量に相当する。
「Sn(t)」は、積和結果を表す積和結果信号(PWM信号)である。
「τn 」は、出力される積和結果信号のパルス幅である。具体的には、「τn」は、出力期間T内における、キャパシタ14により保持される電圧が閾値θより大きくなるタイミングから、出力期間Tの終了タイミングtmまでの長さに応じた値となる。
「CH(t)」は、充電期間である出力期間Tに充電線19に入力される充電信号である。図10に示すように、本実施形態では、出力期間Tの間にONレベルとなるパルス信号が、充電信号として入力される。従って充電信号のパルス幅τCHは、出力期間Tと同じ長さとなる。
本実施例では、スイッチ16a及び16bを備えており、特に、このスイッチで出力線を切り離すことで、低消費電力化の向上が可能となっている。
ここで以下の式に示すように、入力値(信号値)xiは、入力信号Si(t)のパルス幅τiと入力期間Tとのデューティ比Ri(=τi/T)で与えられる。
図9に示すシナプス回路9により、入力値xiに荷重値wiを乗算した乗算値に対応する電荷が生成される。具体的には、抵抗器17の抵抗により、一定の傾きwiで内部状態(電位)が増加される。
そして、入力期間Tの終了タイミングtnにおける各シナプス回路9の内部電位の変化量Pi(tn )は、以下の式で与えられる。なお、入力信号Si(t)のハイレベルの値は1とする。
キャパシタ14に蓄積される電荷の総量Vn(tn )は、Pi(tn )の総和となるので、以下の式で与えられる。
入力期間Tの終了タイミングtnで、充電部15による充電が開始される。上記したように、本実施形態では、出力期間Tが充電期間に相当する。
充電部15による充電により、入力期間Tの終了タイミングtnから、各シナプス回路9の内部電位が、傾き(充電速度)αで増加される。
充電速度αは、充電信号のハイレベルの値と、抵抗器20の抵抗値により規定される。なお図10では、出力期間Tにおける各シナプス回路9の内部電位の変化の図示は省略されている(入力期間Tの終了時の内部電位の値が破線で模式的に図示されている)。
充電信号として、ハイレベルの値が入力信号と同じであるパルス信号が用いられてもよい。もちろんハイレベルの値が入力信号とは異なるパルス信号が用いられもよい。入力信号とは異なる他の任意の電気信号を、充電信号として採用することが可能である。
出力期間T内における、キャパシタ14により保持される電圧が閾値θより大きくなるタイミングから、出力期間Tの終了タイミングtmまでの長さに応じたパルス幅τnを有する積和結果信号(PWM信号)が生成される。
積和結果信号のパルス幅τnと出力期間Tとのデューティ比をRn(=τn/T)とすると、Rnは、以下の式で与えられる。なお、閾値θは、電荷の総量Vn(tn )以上であるとする。
従って、入力値xiに荷重値wiを乗算した乗算値(wi・xi )を足し合わせた積和結果は、以下の式で与えられる。
すなわち積和結果は、αRn=α・(τn/T)に、充電速度α、閾値θ、及び出力期間Tにより定められる定数を減算した値となる。このように、所定の長さの出力期間Tにおける、蓄積部11により保持された電圧が閾値θより大きくなるタイミングに基づいて、積和結果を表す積和結果信号を出力することが可能となる。
図11は、正荷重電荷及び負荷重電荷の両方の積和結果をふまえた全体の積和結果を示す積和結果信号の算出例を示す模式図である。
図11では、正荷重電荷の積和結果を表す積和結果信号を「Sn +(t)」とし、そのパルス幅を「τn +」とする。また負荷重電荷の積和結果を表す積和結果信号を「Sn -(t)」とし、そのパルス幅を「τn -」とする。
さらに、全体の積和結果を表す積和結果信号を「Sn(t)」とし、そのパルス幅を「τn」とする。
入力期間Tの終了タイミングtnにおける、キャパシタ14aに蓄積される正荷重電荷の総量Vn +(tn )は、以下の式で与えられる。なおwi +は正の荷重値である。
入力期間Tの終了タイミングtnにおける、キャパシタ14bに蓄積される負荷重電荷の総量Vn -(tn )は、以下の式で与えられる。なおwi -は負の荷重値である。
正の積和結果信号Sn +(t)のデューティ比をRn +(=τn +/T)とすると、入力値xiに正の荷重値wi +を乗算した乗算値(wi +・xi )を足し合わせた正の積和結果は、以下の式で与えられる。なお、閾値θは、正荷重電荷の総量Vn +(tn )以上であるとする。
負の積和結果信号Sn -(t)のデューティ比をRn -(=τn -/T)とすると、入力値xiに負の荷重値wi -を乗算した乗算値(|wi -|・xi )を足し合わせた負の積和結果は、以下の式で与えられる。なお、充電速度α及び閾値θは、(数11)式で用いらる値と等しい。また閾値θは、負荷重電荷の総量Vn -(tn )以上であるとする。
従って、上記した(数2)式を用いると、全体の積和結果は以下の式で与えられる。
すなわち全体の積和結果は、充電速度α、積和結果信号Sn +(t)のパルス幅τn +、積和結果信号Sn -(t)のパルス幅τn -、及び出力期間Tにより求められる。すなわち、コンパレータ22aにより検出されるタイミング、及びコンパレータ22bにより検出されるタイミングに基づいて、容易に積和結果を算出することが可能となる。
そして図11に示すように、全体の積和結果を表す積和結果信号として、パルス幅「τn 」を有する積和結果信号「Sn(t)」を容易に出力することが可能となる。
なお、積和結果信号Sn +(t)のパルス幅τn +と、積和結果信号Sn -(t)のパルス幅τn -とのいずれが大きいかを判定可能であってもよい。そしてパルス幅τn +の方が大きい場合の積和結果信号「Sn(t)」を正の積和結果信号として出力し、パルス幅τn -の方が大きい場合の積和結果信号「Sn(t)」を負の積和結果信号として出力することも可能である。
パルス幅τn +と、パルス幅τn -とを比較する回路は、アンド回路やノット回路等を適宜用いることで実現することが可能である。
例えばReLU関数(ランプ関数)等が用いられる場合等において、正の積和結果信号「Sn(t)」となる場合はそのまま出力され、負の積和結果信号「Sn(t)」となる場合は0を出力する、といった設定も可能である。
充電速度α及び閾値θの設定として、出力期間Tに対して、α=θ/Tとする。これにより、(数7)式、(数8)式、(数11)式、(数12)式に含まれる、充電速度α、閾値θ、及び出力期間Tにより定められる定数をゼロにすることが可能となり、処理の簡素化を図ることが可能となる。
例えば、充充電信号のハイレベルの値や抵抗器20の抵抗値を適宜設定し、充電速度αを調整する。そして閾値θを、入力期間Tの長さに基づいて設定する。これにより有利な効果を発揮することが可能となる。
図12は、1入力1出力構成の演算装置100における、TACT方式のアナログ回路の一例を示す模式的な回路図である。複数の入力信号線7には、入力信号in1〜in6として、入力値xiに応じたタイミングでパルス信号(TACT信号)が入力される。
ここでは、図3Bに例示する、入力値に応じたタイミングに立ち上がりONレベルが維持される継続的なパルス信号が入力される。
このパルス信号は、入力期間T内において、入力期間Tに対するON時間の長さがに入力値に対応している。以下、入力期間T内におけるON時間の長さを、入力期間Tにおけるパルス幅と記載する場合がある。
入力期間Tが経過したタイミングでは、キャパシタ14aに蓄積された電荷は、正の荷重値wi +との乗算値に対応する正荷重電荷の総和σ+となる。
また同様に、キャパシタ14bに蓄積された電荷は、負の荷重値wi -との乗算値に対応する負荷重電荷の総和σ-となる。
入力期間Tの終了後にも電気信号のONレベルが維持されるので、キャパシタ14a及びキャパシタ14bに電荷が蓄積される。そしてキャパシタ14aにより保持される電圧が閾値θより大きくなるタイミングに基づいて、正荷重電荷の積和結果を表す積和結果信号(PWM信号)が生成される。
またキャパシタ14bにより保持される電圧が閾値θより大きくなるタイミングに基づいて、負荷重電荷の積和結果を表す積和結果信号(PWM信号)が生成される。
これら正負の積和結果信号に基づいて、全体の積和結果を表す積和結果信号を生成することが可能である。
図12に例示するTACT方式のアナログ回路3において、出力期間Tは、充電期間に相当する。また出力期間Tにて複数の入力信号線7に入力される入力信号in1〜in6は、充電信号に相当する。
従って、図12に例示するTACT方式のアナログ回路3は、複数の入力信号線7を介して、キャパシタ14a及び14bに同じ充電信号が供給される。
図示は省略しているが、出力期間Tの間に、複数の入力信号線7に入力信号in1〜in6を入力させる構成が、充電部15に相当する。従って、入力信号in1〜in6を入力するための構成が、充電部15としても機能する。図8に示すように、複数の入力信号線7自体を充電部15の一部として見做すことも可能である。
ここで、入力期間T、及び出力期間(充電期間)Tにおける、キャパシタ14の電荷の蓄積に関するパラメータとして、時定数に着目する。
上記の説明では、図10に示すように、入力期間T及び出力期間Tにおける電荷の蓄積を、一次関数的な直線の変化(線形的な変化)として近似し、「傾きwi 」「傾きα」を用いて説明した。
もちろんこのような近似に基づいて、積和演算を含む所定の演算処理を精度よく実行可能なアナログ方式の演算装置100を実現することが可能である。
一方で、入力期間T、及び出力期間(充電期間)Tにおいて、キャパシタ14の電荷(電位)は、図9及び図12に例示するアナログ回路3の回路構成により定まる時定数に従って蓄積されるものと考えられる。
従って回路構成を適宜設計することで、時定数に従った電荷の蓄積に基づいて、さらに精度の高い積和演算を実現可能ではないかと考えられる。
以下、キャパシタ14の電荷(電位)を、キャパシタ14に電荷を出力する出力線8の(電荷)電位として説明する場合がある。
まず図12に例示するTACT方式のアナログ回路3に着目した。そして出力線8について、複数の入力信号線7との間に配置される抵抗器17の数にかかわらず、時定数を一定にする構成を見出した。
まず、キャパシタ14a及び14bは、出力線8a及び8bに発生する寄生容量(図示省略)も機能的に含んでいるものとする。この場合、キャパシタ14a及び14bが取り得る容量の最小値は出力線8に発生する寄生容量となる。
例えばキャパシタ14が設けられない場合でも、出力線8a及び8bに発生する寄生容量に基づいて電荷は蓄積され、閾値判定に基づいて積和結果信号を生成することが可能である。このことは、図9に例示するPWM方式のアナログ回路3でも同様である。
出力線8の時定数は、時間とともに逐次入力される入力信号数と、出力線8に信号を伝達できる状態の抵抗器17の数(ON抵抗)により逐次変化する。
ここで入力期間Tの終了時における時定数に着目する。
本実施形態に係るTACT方式のアナログ回路3では、入力期間Tの終了時には、全ての入力信号線7に対して信号が入力される。
従って、入力期間Tの終了時における入力信号数は最大値となり、一定の値となる。この結果、入力期間Tの終了時における時定数は、ON抵抗の数により逐次変化することになる。
ここで、抵抗器17の抵抗値を同じ抵抗値Rとする。すなわちバイナリコネクトの構成を採用する。また各シナプス回路9の寄生容量が一定の容量Cとなるように設計する。
1つの出力線8に対して抵抗器17は並列に接続されるので、N個の抵抗器17が接続される(ON抵抗がN個となる)場合は、合成抵抗はR/Nとなる。
一方、シナプス回路9は抵抗器17の数と同じN個となるので、合成容量はNCとなる。
例えば、キャパシタ14を設けることなく、各シナプス回路9の寄生容量に基づいて積和結果信号を生成する。この場合、抵抗器17の数(ON抵抗の数)にかかわらず、合成抵抗×合成容量の値は、RCとなる。従って、入力期間Tの終了時における出力線8の時定数は、抵抗器17の数にかかわらず、同じRCとなる。
キャパシタ14を設置する場合、各キャパシタ14の容量を、所定の定数C0を抵抗器17の数(ON抵抗の数)だけ乗算した値(抵抗器17の数×C0)に設定する。これにより時定数は、R/N×(NC+NC0)=R×(C+C0)となり、抵抗器17の数にかかわらず一定となる。
このように抵抗器17の数にかかわらず、時定数を一定にすることが可能である。
従って、入力期間Tの終了時における各出力線8の電位Vは、以下の式により近似することが可能である。
図13は、入力期間Tの終了時における各出力線8の電位Vについて説明するための模式的なグラフである。
(数14)式及び図13を参照して、入力期間Tの終了時における各出力線8の電位Vについて説明する。なお図13のグラフ中の曲線は、(数14)式に対応する時定数曲線である。
「Vc」は、定数であり、時定数以上の時間が経過した後の電位の収束値に応じた値となる。
「tave」は、各入力信号線7に入力されるパルス信号の、入力期間Tにおけるパルス幅の平均である。
なお入力期間Tの終了時までの各出力線8の電荷の変化が、図13に示す時定数曲線に沿って行われるとは限らない。少なくとも、入力期間Tの終了時における各出力線8の電位Vが、(数14)式にて近似することが可能であることが見出された。
一方で、出力期間(充電期間)Tには、全ての入力信号線7にONレベルの入力信号in1〜in6(充電信号)が入力される。従って、出力期間(充電期間)Tにおける電荷の変化は、図13に示す時定数曲線に沿って行われると考えられる。
ここで(数14)式にて近似される、入力期間Tの終了タイミングtnにおける各出力線8の電位Vを「Vtn 」とする。
また入力期間Tの終了タイミングtnからの時間(出力期間T内における時間)をtとする。
そうすると、出力期間Tにおける各出力線8の電位「Vout」は、以下の式により近似することが可能である。
ここで、図13に示すように、(数14)式に対応する時定数曲線に従って、入力期間Tと閾値θとを定める。すなわち(数14)の「tave」に入力期間Tを代入した場合の電位Vを、閾値θとする。
これにより全ての入力信号線7に、入力期間Tにおけるパルス幅が最大となる最大パルスが入力された場合には、入力期間Tの終了タイミング(出力期間Tの開始タイミング)で、出力線8の電位が閾値を超える。
一方、全ての入力信号線7に、入力期間Tにおけるパルス幅が0となるパルスが入力された場合には、出力期間Tの終了タイミングで、出力線8の電位が閾値を超える。
この結果、出力期間T内にて、積和結果信号を高い分解能で精度よく算出することが可能となる。すなわち閾値θを、入力期間Tの長さに基づいて設定することで、有利な効果を発揮することが可能となる。
図13に示すように、閾値θにより、キャパシタ14a及び14bの各々に対して閾値判定を実行する。
これにより、各パルス信号の入力期間Tにおけるパルス幅の平均である「tave」をパルス幅「τn 」とする積和結果信号「Sn(t)」を精度よく生成して出力することが可能となる。
このように、積和結果信号「Sn(t)」のパルス幅「τn 」についても、(数14)式にて近似することが可能であることが見出された。
各アナログ回路3において、入力信号線7と正電荷出力線8aとを接続する抵抗器17の数(すなわち正荷重乗算部の数)、及び入力信号線7と負電荷出力線8bとを接続する抵抗器17の数(すなわち負重乗算部の数)をどのように組み合わせたとしても、正電荷出力線8aの電位V+、及び負電荷出力線8bの電位V-について、図13に例示する積和演算が実現される。
従って、図11に例示するのと同様に、積和結果信号Sn +(t)のパルス幅τn +、及び積和結果信号Sn -(t)のパルス幅τn -に基づいて、全体の積和結果を表す積和結果信号「Sn(t)」を算出することが可能である。
なお、他の構成が採用される場合でも、正電荷出力線8aの時定数と、負電荷出力線8bの時定数とが等しくなるように、アナログ回路3を設計する。これにより正電荷出力線8aの電位V+、及び負電荷出力線8bの電位V-について、図13に例示する積和演算が実現される。
もちろん、正の荷重値wi +、及び負の荷重値wi -の絶対値が同じ値で固定されるバイナリコネクトの構成が採用される場合に限定される訳ではない。
例えば正の荷重値wi +、及び負の荷重値wi -の絶対値が、多値化される。すなわち正の荷重値wi +、及び負の荷重値wi -の絶対値が、互いに異なる複数の値のうちのいずれか1つに設定される。あるいは、正の荷重値wi +、及び負の荷重値wi -の絶対値が、ランダムに設定される。
この場合でも、正電荷出力線8aの時定数と、負電荷出力線8bの時定数とが等しくなるように、アナログ回路3を設計する。これにより正電荷出力線8aの電位V+、及び負電荷出力線8bの電位V-について、図13に例示する説明した積和演算が実現される。
本開示において、出力線8の時定数は、複数のシナプス回路9による出力線8への乗算値に対応する電荷の出力に関する時定数に含まれる。
正電荷出力線8aの時定数は、複数の正荷重乗算部9aによる正電荷出力線8aへの正荷重電荷の出力に関する時定数に含まれる。
負電荷出力線8bの時定数は、複数の負荷重乗算部9bによる負電荷出力線8bへの負荷重電荷の出力に関する時定数に含まれる。
次に、図9に例示するPWM方式のアナログ回路3において考察する。
図9に例示するPWM方式のアナログ回路3では、入力期間Tにて、複数の入力信号線7に入力信号in1〜in6が入力される。そして出力期間Tにて、充電線19を介して、充電信号CHが入力される。
ここで入力期間Tの終了時における各出力線8の電位Vは、TACT方式と同様に、(数14)式により近似することが可能である。すなわち図13に例示するように、出力線8の時定数に応じた時定数曲線にて、近似することが可能である。
その後、充電部15による充電が、同じ時定数曲線に従って実行されるように、充電線19や抵抗器20の抵抗値を設計する。これにより、図13に例示する積和演算が実現される。
例えば、図9に示す構成において、正側抵抗器17aの合成抵抗と、充電線19に接続される抵抗器20aの抵抗値とを等しくする。これにより正電荷出力線8aに関して、図13に例示する積和演算が実現される。
また負側抵抗器17bの合成抵抗と、充電線19に接続される抵抗器20bの抵抗値とを等しくする。これにより負電荷出力線8bに関して、図13に例示する積和演算が実現される。
例えば入力期間Tにおける正電荷出力線8aの時定数と、負電荷出力線8bの時定数とが等しくなるように、アナログ回路3を設計する。そして、正側抵抗器17aの合成抵抗と抵抗器20aの抵抗値とを等しくし、負側抵抗器17bの合成抵抗と抵抗器20bの抵抗値とを等しくする。
これにより、正電荷出力線8aの電位V+、及び負電荷出力線8bの電位V-について、図13に例示する積和演算が、同じ時定数に従って実現される。この結果、各パルス信号の入力期間Tにおけるパルス幅の平均である「tave」をパルス幅「τn 」とする積和結果信号「Sn(t)」を、精度よく生成して出力することが可能となる。
もちろん、本技術の適用が、図13に例示する積和演算が実現される場合に限定される訳ではない。
PWM方式のアナログ回路3及びTACT方式のアナログ回路3として、他の構成や他の積和演算が実行されてもよい。
いずれにせよ正電荷出力線8aの電位(キャパシタ14aに保持された電圧)V+、及び負電荷出力線8bの電位(キャパシタ14bに保持された電圧)V-に基づいて、積和演算の結果を得ることが可能である。
図14は、2入力2出力構成の演算装置200における、アナログ回路3の一例を示す模式的な回路図である。
アナログ回路3は、1対の出力線(正電荷出力線8a、負電荷出力線8b)と、複数のシナプス回路9と、ニューロン回路10とを有する。ニューロン回路10は、蓄積部11、及び信号出力部12を含んでいる。
図14に示す例では、アナログ回路3に、4つの入力信号線対P7が接続される。
入力信号線対P7の個数等は限定されない。各入力信号線対P7には、それぞれ信号対が入力される。これらの信号対には、入力値xiが負である信号対や、入力値xiが正である信号対が含まれる。
すなわち、各信号対により、正負の入力値xiが伝送される。以下では、主にTACT方式の信号対が用いられる場合について説明する。
図15は、信号対の一例を示す模式図である。
図15A及び図15Bには、TACT方式の信号対の波形の一例を表すグラフが模式的に図示されている。
「t0 」は、入力期間Tの開始タイミングであり、「tn 」は入力期間Tの終了タイミングである。
「tm 」は出力期間Tの終了タイミングである。
図15Aは、入力値xiが正である信号対(正の信号対)の一例である。
入力値xiが正である場合、正信号INi +の信号値である正の値xi +は、負信号INi -の信号値である負の値xi -の絶対値|xi -|よりも大きくなる。
以下では、正の信号対は、入力値xiが0となる場合を含むものとする。すなわち正の信号対では、xi +≧|xi -|となる。
TACT方式の正の信号対では、入力期間Tにおいて、正信号INi +のパルスの入力タイミング(xi +)が、負信号INi -のパルスの入力タイミング(|xi -|)よりも早くなる。従ってTACT方式の正の信号対は、正信号INi +の入力タイミング≧負信号INi -の入力タイミングとなる信号対と定義される。
図15Bは、入力値xiが負である信号対(負の信号対)の一例である。
入力値xiが負である場合、正信号INi +の信号値である正の値xi +は、負信号INi -の信号値である負の値xi -の絶対値|xi -|よりも小さくなる。すなわち負の信号対では、xi +<|xi -|となる。
TACT方式の負の信号対では、入力期間Tにおいて、正信号INi +のパルスの入力タイミング(xi +)が、負信号INi -のパルスの入力タイミング(|xi -|)よりも遅くなる。従ってTACT方式の負の信号対は、正信号INi +の入力タイミング<負信号INi -の入力タイミングとなる信号対と定義される。
図14に示す例では、図中の上から1番目及び3番目の入力信号線対P7に正の信号対が入力される。また2番目及び4番目の入力信号線対P7に負の信号対が入力される。
なお、正の信号対及び負の信号対が入力される入力信号線対P7は、例えば入力データに応じて、演算の度に変化する。
また図15A及び図15Bに示すように、正負の信号対は、入力期間Tが終了した後もON状態を維持する。すなわち、信号対に含まれる各電気信号は、入力期間Tの終了タイミングtn以降も所定の信号電圧を維持する。
このON状態は、例えば出力期間Tの終了タイミングtmまで継続される。出力期間Tは、入力期間Tと同じ長さである。
出力期間Tに各電気信号がON状態となることで、1対の出力線8には、シナプス回路9(抵抗器17)を介して電荷(電流)が供給される。これにより、出力期間Tの間に蓄積部11(キャパシタ14a及びキャパシタ14b)が充電される。
なおTACT方式の信号に限定されず、PWM方式の信号(図4A参照)が用いられてもよい。この場合、入力期間Tに各パルス幅の電気信号を入力し、出力期間Tにすべての入力信号線7がON状態となるように電気信号が入力される。この場合であっても、入力期間Tに積和結果に応じた電荷が蓄積し、その後キャパシタ14を充電することが可能である。
図14に戻り、正電荷出力線8aは、各シナプス回路9に接続され、正信号または負信号のどちらか一方の信号値に、正の荷重値vi +を乗算した正荷重乗算値に対応する正荷重電荷を出力する。
同様に、負電荷出力線8bは、各シナプス回路9に接続され、正信号または負信号のどちらか一方の信号値に、負の荷重値vi -の絶対値|vi -|乗算した負荷重乗算値に対応する負荷重電荷を出力する。
複数のシナプス回路9は、複数の入力信号線対P7に対応してそれぞれ設けられる。図14に示す例では、4つの入力信号線対P7に対して、4つのシナプス回路9が設けられる。
各シナプス回路9には、それぞれ2つの抵抗器17が設けられる。この2つの抵抗器17は、それぞれが荷重値を乗算するための荷重として機能する。このようにシナプス回路9は、信号対に荷重値を乗算する荷重対となる。
なお図14には、各入力信号線7に由来する寄生容量と、各出力線8に由来する寄生容量とが模式的に図示されている、各寄生容量は、例えば各配線とGND等との間に生じる電気容量である。
複数のシナプス回路9は、正のシナプス回路9aと、負のシナプス回路9bとの少なくとも一方を有する。従って、1つのアナログ回路3に設けられるシナプス回路9は、全てが正のシナプス回路9aであってもよいし、全てが負のシナプス回路9bであってもよい。もちろん、正負のシナプス回路9a及び8bを両方含むアナログ回路3が構成されてもよい。
図14に示す例では、上から1番目及び2番目に正のシナプス回路9aが設けられ、3番目及び4番目に負のシナプス回路9bが設けられる。
図16は、シナプス回路9の構成例を示す模式的な回路図である。
図16A及び図16Bには、正のシナプス回路9a及び負のシナプス回路9bの回路図が模式的に図示されている。なお図16では、寄生容量の図示が省略されている。
正のシナプス回路9aは、正の対荷重値wi +が設定されたシナプス回路9であり、正の荷重対となる。図16Aに示すように、正のシナプス回路9aは、第1の抵抗器17aと、第2の抵抗器17bとを有する。
第1の抵抗器17aは、正の入力信号線7aと正電荷出力線8aとの間に接続され正の荷重値vi +を規定し正荷重電荷を正電荷出力線8aに出力する。
例えば正の入力信号線7aに入力される正信号は、第1の抵抗器17aにより正荷重電荷として正電荷出力線8aに出力される。第1の抵抗器17aは、正荷重電荷を生成する正の荷重として機能する。
第2の抵抗器17bは、負の入力信号線7bと負電荷出力線8bとの間に接続され負の荷重値vi を規定し負荷重電荷を負電荷出力線8bに出力する。
例えば負の入力信号線7bに入力される負信号は、第1の抵抗器17bにより負荷重電荷として負電荷出力線8bに出力される。第2の抵抗器17bは、正荷重電荷を生成する負の荷重として機能する。
このように、信号対の信号値xiに対して正の対荷重値wi +を乗算したい場合には、正の入力信号線7aと正電荷出力線8aとが抵抗器を介して接続され、負の入力信号線7bと負電荷出力線8bとが抵抗器を介して接続される。
このように、正のシナプス回路9a(正の荷重対)は、正信号(正の入力)が正の荷重に対応し、負信号(負の入力)が負の荷重に対応しているとも言える。
負のシナプス回路9bは、負の対荷重値wi -が設定されたシナプス回路9であり、負の荷重対となる。図7Bに示すように、負のシナプス回路9bは、第3の抵抗器17cと、第4の抵抗器17dとを有する。
第3の抵抗器17cは、負の入力信号線7bと正電荷出力線8aとの間に接続され正の荷重値vi +を規定し正荷重電荷を正電荷出力線8aに出力する。
例えば負の入力信号線7bに入力される負信号は、第3の抵抗器17cにより正荷重電荷として正電荷出力線8aに出力される。第3の抵抗器17cは、正荷重電荷を生成する正の荷重として機能する。
第4の抵抗器17dは、正の入力信号線7aと負電荷出力線8bとの間に接続され負の荷重値vi を規定し負荷重電荷を負電荷出力線8bに出力する。
例えば正の入力信号線7aに入力される正信号は、第4の抵抗器17dにより負荷重電荷として負電荷出力線8bに出力される。第4の抵抗器17dは、正荷重電荷を生成する負の荷重として機能する。
このように、信号対の信号値xiに対して負の対荷重値wi -を乗算したい場合には、負の入力信号線7bと正電荷出力線8aとが抵抗器を介して接続され、正の入力信号線7aと負電荷出力線8bとが抵抗器を介して接続される。
このように、負のシナプス回路9b(負の荷重対)は、正信号(正の入力)が負の荷重に対応し、負信号(負の入力)が正の荷重に対応しているとも言える。
本実施形態では、正負の荷重となる各抵抗器17は、一つのシナプス回路9において同じコンダクタンス(あるいは抵抗値)となるように設定される。この共通のコンダクタンスは、例えばシナプス回路9に設定される対荷重値wiの大きさに応じて適宜設定される。
例えば、抵抗器17に一定の電圧を印加した場合、抵抗器17により生成される電流(電荷)は、コンダクタンスに比例(抵抗値に反比例)する。従って、例えば抵抗器17のコンダクタンスは、抵抗器17に設定される荷重値に比例するように設定される。
これにより、正の荷重値及び負の荷重値の大きさを揃えることが可能となり、積和演算を適正に実行することが可能となる。
なお、抵抗値は、シナプス回路9ごとに異なってもよいし、同一であってもよい。なお、抵抗器17(17a〜17d等)としては、種々のものが用いられてよい。
図14に示すように、キャパシタ14aには、正のシナプス回路9aの正の荷重(第1の抵抗器17a)と、負のシナプス回路9bの正の荷重(第3の抵抗器17c)とが並列に接続される。これら各シナプス回路9の正の荷重により、正の荷重列18aが構成される。
またキャパシタ14bには、正のシナプス回路9aの負の荷重(第2の抵抗器17b)と、負のシナプス回路9bの負の荷重(第4の抵抗器17d)とが並列に接続される。これら各シナプス回路9の負の荷重により、負の荷重列18bが構成される。
また1つの荷重列18と、その荷重列18に接続されたキャパシタ14及びコンパレータ22からなる回路は、積和結果を導出するための積和導出手段として機能する。
例えば、アナログ回路3に、N個のシナプス回路9が設けられるとする。この場合、N個の正の荷重(負の荷重)が、正の荷重列18a(負の荷重列18b)としてキャパシタ14a(キャパシタ14b)に接続される。
このように、本構成では、各キャパシタに対して、シナプス回路9と同数の荷重(抵抗器17)が並列に接続される。
また、各シナプス回路9において、正負の荷重値の大きさ(vi +及び|vi -|)は、互いに同じ値に設定される。このため、正の荷重列18aに含まれる正の荷重値の総和値と、負の荷重列18bに含まれる負の荷重値の総和値とは、互いに等しくなる。
従って、正の積和結果信号を出力するための回路と、負の積和結果信号を出力するための回路とは、同様の構成を持った回路と見做すことが可能である。
図17は、図14に示すアナログ回路3による積和結果信号の算出例を説明するための図である。図17には、1つの荷重列18(正の荷重列18aあるいは負の荷重列18b)における積和結果信号の算出例を示すグラフが図示されている。
以下では図17を参照しながら、正負の区別なく、キャパシタ14に蓄積された電荷に基づいた積和結果の算出方法(積和演算方法)を説明する。
なお、正信号及び負信号をともに入力信号と記載し、正信号及び負信号の信号値(xi +及び|xi -|)をともに信号値yiと記載し、正の荷重及び負の荷重の各荷重値(vi +及び|vi -|)をともに荷重値viと記載する場合がある。
「Si(t)」は、i番目の入力信号線対P7に入力される入力信号(TACT信号)である。
「τi 」は、入力信号Si(t)の入力タイミングから入力期間Tの終了タイミングtnまでの長さである。
以下、「τi 」を、入力期間Tにおける入力信号Si(t)のパルス幅と記載する場合がある。「τi 」が大きいほど、その入力信号i(t)は、大きい信号値yiを表す信号となる。
「Pi(t)」は、図14に示す各シナプス回路9における、内部状態(電位)の変化量である。
「vi 」は、一つの荷重列(正の荷重列または負の荷重列)に接続された荷重の荷重値であり、図14に示す抵抗器17の抵抗値により規定される。
ここでは、各シナプス回路9に対応する電位が時間とともに線形に増加するものとして説明を行う。このとき抵抗器17の抵抗値は、例えば電位の傾きが「vi 」となるように設定される。
「α」は、入力期間Tの後の出力期間Tにおけるキャパシタ14の電位上昇の傾きであり、キャパシタ14の充電速度である。
図17に示す例では、入力期間Tの経過後に各シナプス回路9がONレベルに維持されることで、キャパシタ14の電位が傾き「α」で上昇する。なお、出力期間Tに別の配線を用いてキャパシタ14を充電する場合等には、αは充電速度に応じた値となる。
「θ」は、信号出力部12(コンパレータ22)による閾値判定に用いられる閾値である。
「Vn(t)」は、「Pi(t)」の総和であり、キャパシタ14に蓄積される電荷の総量に相当する。
「Sn(t)」は、積和結果を表す積和結果信号(PWM信号)である。
「τn 」は、出力される積和結果信号のパルス幅である。具体的には、「τn」は、出力期間T内における、キャパシタ14により保持される電圧が閾値θより大きくなるタイミングから、出力期間Tの終了タイミングtmまでの長さに応じた値となる。
ここで以下の式に示すように、入力信号の信号値yは、入力期間Tにおける入力信号Si(t)のパルス幅τiと入力期間Tとのデューティ比Ri(=τi/T)で与えられる。
図14に示すシナプス回路9により、信号値yiに荷重値viを乗算した乗算値に対応する電荷が生成される。具体的には、抵抗器17の抵抗により、一定の傾きviで内部状態(電位)が増加される。
そして、入力期間Tの終了タイミングtnにおける各シナプス回路9の内部電位の変化量Pi(tn )は、以下の式で与えられる。なお、入力信号Si(t)のハイレベルの値は1とする。
キャパシタ14に蓄積される電荷の総量Vn(tn )は、Pi(tn )の総和となるので、以下の式で与えられる。
図14に示す例では、入力期間Tの終了タイミングtnからは、全ての入力信号がON状態となり、全てのシナプス回路9にて、傾きviで内部状態(電位)が増加される。すなわち、荷重列に接続された全ての荷重から、キャパシタ14に対して電荷が出力される。
このときのキャパシタ14の電圧の傾き(充電速度α)は、各「vi」の総和と等しくなる。すなわち、充電速度αは、荷重列に設けられた全ての荷重値の総和値となる。
コンパレータにより、充電速度αで上昇するキャパシタ14の電圧に対して閾値判定が実行される。そして出力期間T内における、キャパシタ14により保持される電圧が閾値θより大きくなるタイミングから、出力期間Tの終了タイミングtmまでの長さに応じたパルス幅τnを有する積和結果信号が生成される。
積和結果信号のパルス幅τnと出力期間Tとのデューティ比をRn(=τn/T)とすると、Rnは、以下の式で与えられる。なお、閾値θは、電荷の総量Vn(tn )以上であるとする。
従って、信号値yiに荷重値viを乗算した乗算値(vi・yi )を足し合わせた積和結果は、以下の式で与えられる。
すなわち積和結果は、αRn=α・(τn/T)に、充電速度α、閾値θ、及び出力期間Tにより定められる定数を減算した値となる。このように、所定の長さ出力期間Tにおける、蓄積部11により保持された電圧が閾値θより大きくなるタイミング(パルス幅τn)に基づいて、荷重対ごとの積和結果を表す積和結果信号を出力することが可能となる。
図14に示す例では、(数20)式に示す積和結果を表す積和結果信号が、正の荷重列18a及び負の荷重列18bのそれぞれについて算出される。
例えばコンパレータ22aにより、正の荷重列18aから出力された正荷重電荷の積和結果を表す正の積和結果信号Sn +(t)が生成される。
またコンパレータ22aにより、負の荷重列18bから出力された負荷重電荷の積和結果を表す負の積和結果信号Sn -(t)が生成される。
図18は、正負の積和結果信号の一例を示す模式図である。
以下では、正の積和結果信号Sn +(t)のパルス幅を「τn +」とし、負の積和結果信号Sn -(t)のパルス幅を「τn -」とする。
また図18に示す「Sn(t)」は、アナログ回路3において正負の積和結果を含む全体の積和結果を表す積和結果信号の一例である。Sn(t)のパルス幅を「τn 」とする。
正の荷重列18aにおいて乗算値(vi・yi )を足し合わせた積和結果は、正の荷重対及び負の荷重対に設けられた正の荷重との乗算値の総和である。すなわち、正の荷重列18aの積和結果は、(数3)式を用いて説明した正荷重乗算値の和σ+となる。
従って、(数20)式より、入力期間Tの終了タイミングtnにおける、キャパシタ14aに蓄積される正荷重電荷の総量Vn +(tn )は、以下の式で与えられる。
(数21)式に示すように、正荷重乗算値の和σ+は、入力期間T内に、N+個の信号対を構成する正信号(正の入力xi +)を正の荷重対を構成する正の荷重に対応させ、N−N+=N-個の信号対を構成する負信号(負の入力xi -)を、負の荷重対を構成する正の荷重に対応させることで算出される。
負の荷重列18bにおいて乗算値(vi・yi )を足し合わせた積和結果は、正の荷重対及び負の荷重対に設けられた負の荷重との乗算値の総和である。すなわち、負の荷重列18bの積和結果は、(数3)式を用いて説明した負荷重乗算値の和σ-となる。
従って、(数21)式より、入力期間Tの終了タイミングtnにおける、キャパシタ14bに蓄積される負荷重電荷の総量Vn -(tn )は、以下の式で与えられる。
(数22)式に示すように、負荷重乗算値の和σ-は、入力期間T内に、N+個の信号対を構成する負信号(負の入力xi -)を正の荷重対を構成する正の荷重に対応させ、N-個の信号対を構成する正信号(正の入力xi +)を、負の荷重対を構成する正の荷重に対応させることで算出される。
正の積和結果信号Sn +(t)のデューティ比をRn +(=τn +/T)とし、正の荷重列18aに設定された荷重値(vi +)の総和値をW+とする。
この場合、正の荷重列18aで算出される積和結果(正荷重乗算値の和σ+)は、以下の式で与えられる。なお、閾値θは、正荷重電荷の総量Vn +(tn )以上であるとする。
負の積和結果信号Sn -(t)のデューティ比をRn -(=τn -/T)とし、負の荷重列18bに設定された荷重値(vi -)の総和値をW-とする。
この場合、負の荷重列18bで算出される積和結果(負荷重乗算値の和σ-)は、以下の式で与えられる。なお、閾値θは、負荷重電荷の総量Vn -(tn )以上であり、(数23)式に示すθと同じ値である。
上記したように、荷重対を用いて構成されるアナログ回路3では、正負の荷重列18a及び18bに設定される荷重値の総和値(W+及びW-)は、互いに等しくなる。以下では、各荷重列に設定される荷重値の総和値をWと記載する。
このように、本実施形態では、正の荷重値vi +の総和値W+、及び負の荷重値vi -の絶対値|vi -|の総和値W-は、アナログ回路3において、互いに同じ共通総和値Wに設定される。この荷重値の総和値W(共通総和値)は、以下に示すように、正の対荷重wi +の総和と負の対荷重wi -の総和とを足し合わせた値と等しくなる。
また全体の積和結果は、(数3)式に示すように、正荷重乗算値の和σ+と負荷重乗算値の和σ-との差により表される。従って(数23)式、(数24)式、及び(数25)式を用いると、全体の積和結果は以下の式で与えられる。
すなわち全体の積和結果は、荷重値の総和値W、正の積和結果信号Sn +(t)のパルス幅τn +、負の積和結果信号Sn -(t)のパルス幅τn -、及び出力期間Tにより求められる。このように、コンパレータ22aにより検出されるタイミング、及びコンパレータ22bにより検出されるタイミングに基づいて、容易に積和結果を算出することが可能となる。
このように、アナログ回路3は、正負の電気信号対と正負の荷重対から求められるN個の乗算値の「和」をアナログ信号に基づいて算出する。これにより、例えば入力値xiや対荷重値wiの正負に係らず、積和演算を適正に実行することが可能である。
またアナログ回路3では、正の積和結果信号Sn +(t)と負の積和結果信号Sn -(t)とがそれぞれ生成される。すなわち、パルス幅τn +及びパルス幅τn -を信号値とする1対の電気信号(信号対)が生成される。
従って、この信号対により表される入力値xiは、全体の積和結果に対応するパルス幅τnと等しくなる。このように、アナログ回路3は、全体の積和結果を信号対として出力する回路となる。
なお、信号対に代えて、全体の積和結果を表す単一の電気信号を出力することも可能である。例えば、パルス幅τn +及びパルス幅τn -の差分をパルス幅τnとする全体の積和結果信号Sn(t)が生成される。
このような積和結果信号Sn(t)は、例えばアンド回路やノット回路等の論理回路を用いて容易に構成することが可能である。演算装置100では、例えば最上層(最終段)の出力として、全体の積和結果信号Sn(t)が用いられる。
なお図17に示すように、キャパシタ14の電圧(GNDに対する電位)の上昇を、一次関数的な直線の変化(線形的な変化)として近似する。このような近似に基づいて、積和演算を含む所定の演算処理を精度よく実行可能なアナログ方式の演算装置200を実現することが可能である。
一方で、複数のアナログ回路3の各々において、共通の時定数に基づいて各キャパシタ14が充電されるように、回路構成を適宜設計する。そして各キャパシタ14の電圧に対して、共通の閾値θによる閾値判定を実行する。これにより演算の効率化、高速化を図ることが可能となる。
図19及び図20は、1入力1出力構成の演算装置100における演算回路部5の構成例を示す模式図である。
図19及び図20に例示する演算回路部5は、複数の入力信号線7と、複数の入力信号線7に対して並列に接続された複数のアナログ回路3とを有する。
このような構成を採用することで、各アナログ回路3に対して並列に電気信号を入力することが可能となり、演算処理の高速化を図ることが可能である。この結果、優れた演算性能を発揮することが可能となる。
図19に例示する演算回路部5は、複数のアナログ回路3として、図9〜図11を参照して説明したPWM方式のアナログ回路3が配置される。図20に例示する演算回路部5は、複数のアナログ回路3として、図12及び図13を参照して説明したTACT方式のアナログ回路3が配置される。
例えば複数のアナログ回路3に対して、充電部15による充電が共通の充電態様で実行される。またニューロン回路10内の信号出力部12による閾値判定に用いられる所定の閾値として、共通の閾値が設定される。すなわち各アナログ回路3にて同じ充電態様で充電が行われ、同じ閾値を用いて閾値判定が実行される。
各アナログ回路3内においては、キャパシタ14a及び14bの各々に対して、共通の充電態様が実行される。すなわち複数のアナログ回路3に含まれる複数のキャパシタ14a及び14bに対して、共通の充電態様により充電が行われる。そして、複数のアナログ回路3にて、共通の閾値にて閾値判定が実行され、積和結果信号が出力される。
共通の充電態様とは、各アナログ回路3において、共通の充電期間にて、充電信号を供給する充電が挙げられる。さらに、各アナログ回路3において同じ充電信号が供給される形態も、共通の充電態様に含まれる。
また共通の充電態様は、共通の充電速度(充電率)による充電や、共通の時定数に従った充電等を含む。もちろんこれらに限定される訳ではない。
例えば図19に示すように、複数のアナログ回路3に対して、共通の充電線19が配置される。充電線19は、複数の入力信号線7と平行となるように配置される。充電線19と、各アナログ回路3の正電荷出力線8aとの間には、抵抗器20aが接続される。充電線19と、各アナログ回路3の負電荷出力線8bとの間には、抵抗器20bが接続される。
出力期間(充電期間)Tの間にONレベルとなる充電信号が充電線19を介して入力される。これにより共通の充電期間にて、同じ充電信号を供給することが可能となる。
また抵抗器20a及び20bとして、全て同じ抵抗値を有するものを配置する。これにより共通の充電期間にて、共通の充電速度により充電を行うことが可能となる。
例えば、共通の充電期間にて、共通の充電速度による充電が実行されるとする。この場合、各アナログ回路3の正電荷出力線8aの電位、負電荷出力線8bの電位は、図10に例示するような充電速度αに従って上昇する。
従って図11に例示するように、各アナログ回路3にて、積和結果信号Sn +(t)のパルス幅τn +、及び積和結果信号Sn -(t)のパルス幅τn -に基づいて、全体の積和結果を表す積和結果信号「Sn(t)」を算出することが可能である。
また、出力期間Tにおける各出力線8(正電荷出力線8a、負電荷出力線8b)の時定数が共通の値となるように、各アナログ回路3及び充電部15を設計する。この場合、共通の時定数に従った充電を実現することが可能である。
また複数のアナログ回路3の各々にて、入力期間Tにおける正電荷出力線8aの時定数と、負電荷出力線8bの時定数とが等しくなるように、かつ、その時定数の値が、全てのアナログ回路3で共通の値となるように、各アナログ回路3を設計する。
そして、出力期間Tにおける正電荷出力線8aの時定数と、負電荷出力線8bの時定数とが、入力期間Tにおける時定数と同じになるように、充電部15を設計する。
これにより各アナログ回路3にて、図13に例示する積和演算が実現される。なお閾値は、時定数曲線に従って、入力期間Tに基づいて定められ、共通の閾値として設定される。
また図20に示すように、出力期間TにON状態が維持するように、入力信号を入力する。これにより共通の充電期間にて、同じ充電信号が供給される充電が実行される。
また、各出力線8(正電荷出力線8a、負電荷出力線8b)の時定数が共通の値となるように、各アナログ回路3を及び充電部を設計する。この場合、共通の時定数に従った充電を実現することが可能である。
これにより各アナログ回路3にて、図13に例示する積和演算を実現可能である。なお、閾値は、時定数曲線に従って、入力期間Tに基づいて定められ、共通の閾値として用いられる。
なお、充電態様、及び閾値の設定が限定される訳ではない。
共通の充電態様による充電、及び共通の閾値を用いた閾値判定を実現するための、任意の構成や方法が採用されてよい。また、上記した図13に例示する積和演算を実現するための構成や方法等と組み合わされてもよい。
図21及び図22は、2入力2出力構成の演算装置200における演算回路部5の構成例を示す模式図である。
図19及び図20に例示する演算回路部5は、複数の入力信号線対P7と、複数の入力信号線対P7に対して並列に接続された複数のアナログ回路3とを有する。
図21に例示する演算回路部5では、入力値xiに応じた信号対(入力信号)として、PWM方式の信号が用いられる。そして、出力期間(充電期間)Tでは、充電用抵抗器26、及び充電線27を含む充電回路25により、キャパシタ14a及び14bが充電される。
図22に例示する演算回路部5では、入力値xiに応じた信号対(入力信号)として、TACT方式の信号が用いられる。出力期間(充電期間)Tでは、ON状態が維持された信号対により、キャパシタ14a及び14bが充電される。
1入力1出力構成の演算装置100と同様に、複数のアナログ回路3に対して、充電部による充電が共通の充電態様で実行される。
またニューロン回路10内の信号出力部12による閾値判定に用いられる所定の閾値として、共通の閾値が設定される。
すなわち各アナログ回路3にて同じ充電態様で充電が行われ、同じ閾値を用いて閾値判定が実行される。
各アナログ回路3内においては、キャパシタ14a及び14bの各々に対して、共通の充電態様が実行される。すなわち複数のアナログ回路3に含まれる複数のキャパシタ14a及び14bに対して、共通の充電態様により充電が行われる。
そして、複数のアナログ回路3にて、共通の閾値にて閾値判定が実行され、積和結果信号が出力される。これにより演算の効率化、高速化を図ることが可能となる。
なお2入力2出力構成の演算装置200では、正負の積和結果信号を、次の階層の入力(信号対)としてそのまま用いることが可能である。このため、正負の積和結果信号から正負全体の積和結果信号を生成するための差分回路が不要となる。
例えば、最終的な積和結果信号を生成するための差分回路のみを1つ配置すればよいというような構成が実現可能となる。この結果、回路構成を簡略化することが可能となり、演算装置200の消費電力を大幅に抑制することが可能となる。
例えば、深層学習向けのアルゴリズムの中で、MLP方式が用いられる場合がある。MLP方式は、例えば全結合型の構成が可能であり、前段の積和演算と後段の積和演算との間で特別の処理等をする必要がない。
従って、積和演算後に、正負全体の積和結果信号(正負の積和結果の差分)を計算する処理を削減できれば、差分計演算用の回路等を削減することが可能となる。
この場合、不要な回路を搭載することなく、抵抗器(抵抗素子)を荷重とするクロスバー配線構造とコンパレータ回路のみでMLPネットワークを実装することが可能であり、極めて簡素化した回路構成により高速な演算処理を実行することが可能となる。
もちろん1入力1出力構成の演算装置を用いて、MLP方式を実現することも可能である。
図23は、本技術に係る演算装置を含む推論装置の構成例を示す模式図である。推論装置300は、ニューラルネットワークを利用した推論装置であり、MLP方式による推論が実現される。
本実施形態では、推論装置300により、28×28の合計784個の画素を有するタッチパネルに書かれた、0〜9のうちのいずれかの手書き文字の数字が推論される。すなわち784個の画素データに基づいて、0〜9のうちのいずれかの数字が書かれたかが推論される。
推論装置300は、第1の演算回路部31と、第2の演算回路部32と、SRAM33と、SRAMC(SRAMコントローラ)34と、バス35と、D/Aコンバータ36と、ReLU回路37と、拡大回路38と、差分回路39と、A/Dコンバータ40とを有する。また推論装置300は、タイマ41と、制御部42と、荷重値のストレージ43とを有する。
制御部42は、推論装置300全体の動作を包括的に制御することが可能である。制御部42の構成は限定されず、任意のハードウェア及びソフトウェアが用いられてよい。例えばFPGA(Field Programmable Gate Array)等のPLD(Programmable Logic Device)、その他ASIC(Application Specific Integrated Circuit)等のデバイスが用いられてもよい
タイマ41は、時刻(タイミング)情報を制御部42に供給する。また基準とする時刻を、D/Aコンバータ(DTC:Digital-to-Time Converter)36内の時計や、A/Dコンバータ(TDC:Time-to-Digital Converte)40内の時計に供給する。
タイマ41の具体的な構成は限定されない。
荷重値のストレージ43は、第1の演算回路部31、及び第2の演算回路部32の各シナプス回路9に設定される荷重値の情報を保持する。例えば、荷重値は、図示しないコンピュータ等による学習処理により算出され、ストレージ43に格納される。制御部42は、必要に応じて、ストレージ43から荷重値の情報を読出し、第1の演算回路部31、及び第2の演算回路部32に対して、書き込み処理を実行する。
図23に示すように、第1の演算回路部31及び第2の演算回路部32の各々には、書き込み用の回路45及び46が設けられる。書き込み用の回路45及び46は、典型的には、入力信号線7及び電荷出力線8を介して、各シナプス回路9に電気的に接続される。
例えば、荷重値(抵抗値)を設定するための構成として、SRAM等の揮発性のメモリを用いた構成が採用されている場合、電源投入後に毎回書き込みを実行する必要がある。
荷重値(抵抗値)を設定するための構成として、不揮発性のメモリを用いた構成が採用されている場合でも、例えば荷重値の更新時に書き込み処理が実行される。また所定の回数の推論を実行した後等に、荷重値を適宜更新するといったこともあり得る。
ストレージ43の具体的な構成は限定されない。また書き込み用の回路45及び46の具体的な構成も限定されない。
第1の演算回路部31は、図21及び図22に例示する2入力2出力構成の演算回路部5である。
1つの画素データに対して、入力信号線対P7(正の入力信号線7a、負の入力信号線7b)が配置される。従って、複数の入力信号線7の全体の合計は、784×2の合計1568本となる。
また正電荷出力線8a及び負電荷出力線8bを含むアナログ回路3が、100個並列に配置される。従って、複数の入力信号線7と交差するように配置される電荷出力線8の合計は、100×2の合計200本となる。
図18に例示するように、各アナログ回路3において、正電荷出力線8aから出力される正荷重電荷に基づいて正の積和結果信号Sn +(t)が出力される。また、負電荷出力線8bから出力される負荷重電荷に基づいて負の積和結果信号Sn -(t)がそれぞれ出力される。
第2の演算回路部32も、2入力2出力構成の演算回路部5である。
第1の演算回路部31の1つのアナログ回路3から出力される正の積和結果信号Sn +(t)及び負の積和結果信号Sn -(t)に対応して、正の入力信号線7a、及び負の入力信号線7bが配置される。従って、複数の入力信号線7の全体の合計は、200本となる。
また正電荷出力線8a及び負電荷出力線8bを含むアナログ回路3が、10個並列に配置される。従って、複数の入力信号線7と交差するように配置される電荷出力線8(正電荷出力線8a及び負電荷出力線8b)の合計は、10×2の合計20本となる。
図18に例示するように、各アナログ回路3において、正電荷出力線8aから出力される正荷重電荷に基づいて正の積和結果信号Sn +(t)が出力される。また、負電荷出力線8bから出力される負荷重電荷に基づいて負の積和結果信号Sn -(t)がそれぞれ出力される。
なお、第1の演算回路部31、及び第2の演算回路部32として、図19及び図20に例示する1入力1出力構成の演算回路部5が構成されてもよい。この場合でも、本技術を適用することが可能である。
SRAM33には、784画素分の画素データが格納される。またSRAM33には、推論装置300からの出力(推論結果)が格納される。SRAM33の具体的な構成は限定されない。また他の記憶デバイスが用いられてもよい。
SRAMC34は、制御部42の指示により、SRAM33から画素データを読出して、バス35経由で、D/Aコンバータ36へ出力する。またSRAMC34は、A/Dコンバータ40から推論結果の信号を受け取って、SRAM33に書き込む。
バス35は、例えば、アドレスバス、データバス、制御バス等(いずれも図示は省略)により構成される。バス35を介して、784画素分の画素データがD/Aコンバータ40に出力される。またバス35を介して、A/Dコンバータ40から出力される、0〜9の数字に対応する10個分の出力(推論結果)が、SRAMC34に出力される。
D/Aコンバータ36は、784画素分の画素データに対応する784個のD/Aブロックにより構成される。784個のD/Aブロックは、互いに等しい構成を有する。各D/Aブロックにより、画素データ(画素値)を入力値xiとして、入力値xiに応じたアナログ信号が、第1の演算回路部31への入力信号として生成される。
本実施形態では、第1の演算回路部31及び第2の演算回路部32として、2入力2出力構成の演算回路部5が構成される。従って784個のD/Aブロックの各々により、画素値(入力値xi)に応じたアナログ信号として、図4に例示するような信号対が生成される。
D/Aコンバータ36(D/Aブロック)の具体的な構成は限定されず、任意に設計されてよい。
ReLU回路37は、活性化関数である。ReLU回路37は、第1の演算回路部31の各アナログ回路3に対して1つずつ構成される。各ReLU回路37には、各アナログ回路3から出力される正の積和結果信号Sn +(t)及び負の積和結果信号Sn -(t)が入力される。
ReLU回路37は、例えば入力値が0以上である場合には、入力値をそのまま出力し、それ以外の場合には0を出力する。すなわち図18を参照して、正の積和結果信号Sn +(t)の立ち上がりが、負の積和結果信号Sn -(t)よりも早い又は同じである場合には、その立ち上がりのタイミングの差が維持された2つの信号が、正の信号及び負の信号として出力される。
正の積和結果信号Sn +(t)の立ち上がりが、負の積和結果信号Sn -(t)よりも遅い場合は、立ち上がりのイタイミングの差が0となる2つの信号が、正の信号及び負の信号として出力される。
ReLU回路37から出力される正の信号及び負の信号は、正の積和結果信号Sn +(t)及び負の積和結果信号Sn -(t)に基づいて生成される信号となる。
図24は、ReLU回路37の構成例を示す図である。ReLU回路37は、論理回路を含む。
論理回路は、組み合わせ回路と、順序回路とに大別される。組み合わせ回路は、現在の出力信号が、現在の入力信号にだけ依存し、過去の入力信号に依存しない回路である。組み合わせ回路としては、論理和回路(ORゲート回路)、論理積回路(ANDゲート回路)等が挙げられる。
順序回路は、現在の出力信号が、現在の入力信号と、過去の入力信号と、に依存する回路である。順序回路としては、D型フリップフロップ、RS型フリップフロップ等が挙げられる。
図24に示すように、ReLU回路37は、組み合わせ回路である論理和回路(ORゲート回路)47を含む。
論理和回路47は、正の積和結果信号Sn +(t)と、負の積和結果信号Sn -(t)とに論理和演算を行い、論理和演算の結果である信号を正の信号Sn + (OUT)(t)として出力する。
論理和回路47は、負の積和結果信号Sn -(t)を、そのまま負の信号Sn - (OUT)(t)として出力する。
例えばこのような構成を採用することで、時間−デジタル変換回路を必要とすることなく、活性化処理を実行することが可能となる。これにより、装置の小型化、低消費電化を図ることが可能となる。もちろん、ReLU回路37の構成が、図24に例示するものに限定される訳ではない。
拡大回路38は、入力されたアナログ信号を拡大するための回路である。本実施形態では、ReLU回路37から出力される正の信号Sn + (OUT)(t)と負の信号Sn - (OUT)(t)との立ち上がりのタイミングの差(時間)が拡大される。
図25は、拡大回路38の構成例を示す図である。
図25に示す拡大回路38において、ReLU回路37から出力される正の信号Sn + (OUT)(t)が、信号S2として入力される。ReLU回路37から出力される負の信号Sn - (OUT)(t)が、信号S3として入力される。
拡大回路38は、信号S2が変化する第1タイミングと、信号S3が変化する第2のタイミングとの間の時間長を表す第1の時間長信号である信号S4を出力する、第1の時間長信号出力回路49を含む。
また拡大回路38は、イネーブル制御信号である信号S1に基づくタイミングで、信号S4を、第2の時間長信号である信号S6として出力する、第2の時間長信号出力回路50を含む。
第1の時間長信号出力回路49は、信号S2と信号S3とに排他的論理和演算を行う組み合わせ回路である、排他的論理和回路(XORゲート回路)である。
第2の時間長信号出力回路50は、信号S4に基づいてコンデンサ54に電荷をチャージし、イネーブル制御信号である信号S1に基づいてコンデンサ54をディスチャージする、充放電回路51を含む。
充放電回路51は、リファレンス電位Vrefを出力する第1の定電圧源53を含む。また充放電回路51は、一端が第1の定電圧源53に電気的に接続され、他端がノードNに電気的に接続されたコンデンサ54を含む。
また充放電回路51は、高電位側の電源電位VDDに一端が電気的に接続された第1の定電流源55を含む。また充放電回路51は、入出力経路が第1の定電流源55の他端とノードNとの間に接続され、制御端子に信号S4が供給される第1のスイッチ56を含む。
また充放電回路51は、基準電位に一端が接続された、第2の定電流源57を含む。また充放電回路51は、入出力経路が、ノードNと第2の定電流源57の他端との間に接続され、制御端子に信号S1が供給される、第2のスイッチ58を含む。
また充放電回路51は、入出力経路がコンデンサ54の両端に接続され、制御端子にリセット信号である信号S0が供給される第3のスイッチ59を含む。
第2の時間長信号出力回路50は、リファレンス電位Vrefを出力する第2の定電圧源60に反転入力端子が電気的に接続され、ノードNに非反転入力端子が電気的に接続されたコンパレータ61を含む。
コンパレータ61は、信号S5とリファレンス電位Vrefとを比較し、信号S5がリファレンス電位Vref以上の期間に、ハイレベルの信号S6を出力する。
図26は、拡大回路38の動作タイミングを示すタイミングチャートである。
タイミング0から予め定められたタイミングTまでの期間が、リセット期間である。タイミングt1からタイミングt2までの間、リセット信号である信号S0がハイレベルになる。
タイミングt1において、信号S0がハイレベルになると、拡大回路38内の第3のスイッチ59がオン状態になるので、コンデンサ54の両端が短絡される。従って、ノードNの電位である信号S5は、リファレンス電位Vrefになる。
タイミングTから予め定められたタイミング2Tまでの期間が、チャージ期間である。
タイミングt3において、信号S2がハイレベルになる。信号S2がハイレベルになるので、排他的論理和回路である第1の時間長信号出力回路49は、ハイレベルの信号S4を出力する。
信号S4がハイレベルになるので、第1のスイッチ56は、オン状態になる。第1のスイッチ56がオン状態になるので、第1の定電流源55は、コンデンサ54をチャージする。従って、ノードNの電位である信号S5は、直線状に上昇する。
タイミングt4において、信号S3がハイレベルになる。信号S3がハイレベルになるので、排他的論理和回路である第1の時間長信号出力回路49は、ローレベルの信号S4を出力する。
信号S4がローレベルになるので、第1のスイッチ56は、オフ状態になる。第1のスイッチ56がオフ状態になるので、コンデンサ54は、チャージされない。従って、ノードNの電位である信号S5は、上昇を停止し、一定になる。
ここで、第1の定電流源55の電流値をIcharge、コンデンサ54の静電容量値をC、タイミングt3からタイミングt4までの時間長をΔTchargeとすると、コンデンサ54の電圧Vcは、次の式(27)で表される。
Vc=(Icharge/C)*ΔTcharge+Vref・・・(27)
タイミング2Tから予め定められたタイミング3Tまでの期間が、出力期間である。
タイミング2Tにおいて、イネーブル制御信号である信号S1が、ハイレベルになる。
拡大回路38では、信号S1がハイレベルになるので、第2のスイッチ58は、オン状態になる。第2のスイッチ58がオン状態になるので、第2の定電流源57は、コンデンサ54をディスチャージする。従って、ノードNの電位である信号S5は、直線状に下降する。
タイミング2Tにおいて、信号S5の電位は、上記した式(3)により、リファレンス電位Vrefよりも高い。従って、コンパレータ61は、ハイレベルの信号S6を出力する。
タイミングt5において、拡大回路38のノードNの電位である信号S5は、リファレンス電位Vrefよりも低くなる。従って、コンパレータ61は、ローレベルの信号S6を出力する。
ここで、第2の定電流源57の電流値をIdischargeとすると、タイミング2Tからタイミングt5までの時間長ΔTdischargeは、次の式(28)で表される。
ΔTdischarge
=(Vc-Vref)/(Idi scharge/C)
=(Icharge/Idischarge)*ΔTc harge・・・(28)
従って、時間長ΔTdischargeは、時間長ΔTchargeに正比例する。つまり、ディスチャージ時間は、チャージ時間に正比例する。
Idischrage=Ichargeとすれば、充放電回路51は、時間長ΔTdischargeを時間長ΔTchargeと同じにできる。つまり、充放電回路51は、ディスチャージ時間をチャージ時間と同じにできる。
Idischrage<Ichargeとすれば、充放電回路51は、時間長ΔTdischargeを時間長ΔTchargeよりも長くすることができる。
つまり充放電回路51は、ディスチャージ時間をチャージ時間よりも長くできる。これにより、充放電回路51は、入力の時間情報に対する増幅機能を実現することができる。
このような構成を採用してIdischrage<Ichargeに調整することで、時時間−デジタル変換回路を必要とすることなく、拡大処理を実行することが可能となる。すなわち入力される時間情報を増幅することが可能となる。この結果、装置の小型化、低消費電化を図ることが可能となる。もちろん、拡大回路38の構成が、図25に例示するものに限定される訳ではない。
図23に戻り、差分回路39は、第2の演算回路部32の各ニューロン回路10から出力される10組の正の積和結果信号Sn +(t)、及び負の積和結果信号Sn -(t)の差分に基づいて、全体の積和結果信号を表す10個の積和結果信号(時間情報を含むアナログ信号)を出力する。差分回路39の具体的な構成は限定されない。
A/Dコンバータ40は、10個のA/Dブロックにより構成される。10個のA/Dブロックは、互いに等しい構成を有する。
各A/Dブロックにより、差分回路39から出力される各積和結果信号が、デジタル信号に変換される。すなわち積和結果信号に含まれる時間情報に応じた値を有するデジタル信号が生成されて出力される。
A/Dコンバータ40(A/Dブロック)の具体的な構成は限定されず、任意に設計されてよい。
図27は、推論装置300による推論時の動作例を示すタイミングチャートである。
図27では、第1の演算回路部31をMAC(アナログ積和マトリクス)1と記載している。また第2の演算回路部32をMAC2と記載している。
またt1〜t5の各間隔Tは、図10や図17等に示す入力期間T(=出力期間T)である。
時刻t1以前:制御部42はSRAMC34に指示を行い、SRAM33からの784画素分のデータを、D/Aコンバータ36のレジスタに順次(784回)設定する。
制御部42はタイマ41に対し「予め決まった時間幅の間隔Tでタイミングを知らせるように」指示する。その最初のタイミングが、図中のt1に相当する。
時刻t1:制御部42は、D/Aコンバータ36に対し、動作開始を指示する。例えばD/Aコンバータ36の各D/Aブロックは、レジスタに格納された値に応じた信号対(図4参照)を生成して、第1の演算回路部31に出力する。
時刻t2:第1の演算回路部31からの出力が始まり、ReLU回路37を介して、拡大回路38に入力される。
時刻t3:拡大回路38からの出力が始まり、第2の演算回路部32に入力される。
時刻t4:第2の演算回路部32からの出力が始まり、差分回路39からA/Dコンバータ40に入力される。同時に制御部42は、SRAMC34に指示を行い、A/Dコンバータ40の10個の出力を、SRAM33に格納させる。
このようにして、28×28の合計784個の入力に対する類推結果が算出される。
[等長配線構成]
図28は、推論装置300が有する第1の演算回路部31と、第2の演算回路部32とを示す模式図である。
上記したように、第1の演算回路部31は、2入力2出力構成の演算回路部である。784個の画素データに対応して、784組の入力信号線対P7(正の入力信号線7a、負の入力信号線7b)が配置される。
この784組の入力信号線対P7と交差するように、100組の電荷出力線8(正電荷出力線8a、及び負電荷出力線8b)が配置される。
第2の演算回路部32も、2入力2出力構成の演算回路部である。第1の演算回路部31から出力される100組の正の積和結果信号Sn +(t)及び負の積和結果信号Sn -(t)に対応して、100組の入力信号線対P7(正の入力信号線7a、負の入力信号線7b)が配置される。
この100組の入力信号線対P7と交差するように、10組の電荷出力線8(正電荷出力線8a、及び負電荷出力線8b)が配置される。
ここで、演算回路部5(31、32)に対して、「複数の入力線」及び「複数の出力線」を以下のように規定する。
「複数の入力線」は、入力値に応じた電気信号がそれぞれ入力される線である。
例えば、図19及び図20に例示する演算回路部5では、入力値に応じたパルス信号が入力される複数の入力信号線7が、「複数の入力線」に相当する。
図21及び図22に例示する演算回路部5では、入力値に応じて生成される信号対が入力される正の入力信号線7a、及び負の入力信号線7bの各々が「複数の入力線」となる。
すなわち2入力2出力構成の演算装置200においては、正負の区別なく、正の入力信号線7a、及び負の入力信号線7bのいずれもが「複数の入力線」となる。
従って、例えばN組の入力信号線対P7が配置されている場合には、N×2の合計2N本の信号線が「複数の入力線」となる。
「複数の出力線」は、「複数の入力線」と交差するように並列に配置される線である。すなわち「複数の出力線」は、「複数の入力線」に対してクロスバー構成となるように配置される線である。
また「複数の出力線」は、各々が、「複数の入力線」に入力される電気信号に基づいて生成される積和信号を出力する線である。
なお、積和信号は、入力値に荷重値を乗算した乗算値の和を表す任意の信号を含む。例えば、入力値xiに荷重値wiを乗算した乗算値に対応する電荷、入力値xiに正の荷重値wi +を乗算した乗算値(wi +・xi )に対応する正荷重電荷、入力値xiに負の荷重値wi-を乗算した乗算値(wi-・xi )に対応する負荷重電荷等が含まれる。
また正荷重電荷や負荷重電荷に基づいて生成される積和結果信号等も、積和信号に含まれる。
「複数の入力線」と交差するように並列に配列される複数の信号線であり、各々が積和信号を出力する信号線が、「複数の出力線」となる。
例えば、図19及び図20に例示する演算回路部5では、正電荷出力線8a及び負電荷出力線8bの各々が「複数の出力線」となる。同様に、図21及び図22に例示する演算回路部5においても、正電荷出力線8a及び負電荷出力線8bの各々が「複数の出力線」となる。
すなわち1入力1出力構成の演算装置100、及び2入力2出力構成の演算装置200のいずれにおいても、正負の区別なく、正電荷出力線8a及び負電荷出力線8bのいずれもが「複数の出力線」となる。
従って、例えばM組の電荷出力線8が配置されている場合には、M×2の合計2M本の信号線が「複数の出力線」となる。
図28に示す第1の演算回路部31では、784組の入力信号線対P7に含まれる正の入力信号線7a、及び負の入力信号線7bの各々が「複数の入力線」となる。また100組の電荷出力線8に含まれる正電荷出力線8a、及び負電荷出力線8bの各々が「複数の出力線」となる。
従って、784×2の合計1568本の信号線が「複数の入力線」となり、100×2の合計200本の信号線が、「複数の出力線」となる。
第2の演算回路部32では、100組の入力信号線対P7に含まれる正の入力信号線7a、及び負の入力信号線7bの各々が「複数の入力線」となる。また10組の電荷出力線8に含まれる正電荷出力線8a、及び負電荷出力線8bの各々が「複数の出力線」となる。
従って、100×2の合計200本の信号線が「複数の入力線」となり、10×2の合計20本の信号線が、「複数の出力線」となる。
このように演算回路部5(31、32)に対して「複数の入力線」及び「複数の出力線」を規定し、前段/後段の関係となる2つの演算回路部5の物理的な配置構成として、以下に説明する「等長配線構成」を新たに考案した。
前段/後段の関係となる2つの演算回路部5とは、後段の演算回路部5の「複数の入力線」には、前段の演算回路部5の「複数の出力線」から出力される積和信号、又は前段の演算回路部の「複数の出力線」から出力される積和信号に基づいて生成される信号が、入力値に応じた電気信号として入力される関係となる2つの演算回路部5である。
すなわち図28等に示す第1の演算回路部31及び第2の演算回路部32が、前段/後段の関係となっている。
第2の演算回路部32には、第1の演算回路部31から出力される積和結果信号(正の積和結果信号Sn +(t)及び負の積和結果信号Sn -(t))が、ReLU回路37及び拡大回路38を介して入力される。従って第2の演算回路部32の「複数の入力線」には、第1の演算回路部31の「複数の出力線」から出力される積和信号(正荷重電荷、及び負荷重電荷)に基づいて生成される信号が入力される。
以下、「複数の入力線」及び「複数の出力線」について、改めて符号を付し、等長配線構成について説明する。なお本技術の適用について、「複数の入力線」及び「複数の出力線」の本数は限定されない。
図29は、等長配線構成の一例を示す模式図である。
第1の演算回路部31について、複数の入力線65aを、所定の方向を延在方向として並列に配置する。図29に示す例では、XYZの座標系におけるX方向を延在方向として、複数の入力線65aが並列に配置される。なお複数の入力線65aは、延在方向と直交するY方向に沿って並ぶように、並列に配置される。
本開示において、信号線の「延在方向」は、信号線が延在する方向の基準となる方向を含む概念である。例えば所定の方向に沿って信号線が一直線に延在している場合、その所定の方向は「延在方向」となる。
これに限定されず、所定の方向を基準として延在しているが、途中で若干方向がずれていたり、若干波打った状態であったり、途中で小さい段差等が出現している状態も、その所定の方向は、信号線の「延在方向」となる。
すなわち信号線の全体を見て、延在している方向として1つの方向を規定可能な状態は、その1つの方向を「延在方向」として信号線が配置されているということが可能である。
本開示において、「延在方向」を、信号線が延在する方向の基準となる主方向ということも可能である。
第1の演算回路部31について、複数の出力線66aを、複数の入力線65aの延在方向とは異なる方向を延在方向として、複数の入力線65aと交差するように並列に配置する。図29に示す例では、Y方向を延在方向として、複数の出力線66aが並列に配置される。なお複数の出力線66aは、延在方向と直交するX方向に沿って並ぶように、並列に配置される。
典型的には、複数の入力線65aの延在方向と、複数の出力線66aの延在方向とは、互いに直交となるように設計される。もちろんこれに限定されず、任意の角度で交差するように、複数の入力線65aと複数の出力線66aとがそれぞれ配置されてもよい。
第2の演算回路部32についても、所定の方向を延在方向として複数の入力線65bが並列に配置される。また複数の入力線65bの延在方向とは異なる方向を延在方向として、複数の入力線65bと交差するように、複数の出力線66bが並列に配置される。
図29に示すように、等長配線構成として、第1の演算回路部31の複数の入力線65aの延在方向とが、第2の演算回路部32の複数の出力線66bの延在方向とが、互いに平行となるように各回路を配置する。
図29に示す例では、第1の演算回路部31の複数の入力線65aの延在方向はX方向である。従って、第2の演算回路部32を、第2の演算回路部32の複数の出力線66bの延在方向がX方向と平行となるように配置する。
このように、新たに考案した等長配線構成の1つめの特徴として、第1の演算回路部31の複数の入力線65aの延在方向と、第2の演算回路部32の複数の出力線66bの延在方向とが、互いに平行であるという点が挙げられる。
第1の演算回路部31の複数の入力線65aの延在方向は第1の方向に相当する。また第2の演算回路部32の複数の出力線66bの延在方向は第2の方向に相当する。図29に示す例では、第1の方向及び第2の方向はともにX方向に平行となり、互いに平行となっている。
なお、図29に示す例では、第1の演算回路部31及び第2の演算回路部32の両方において、複数の入力線と複数の出力線とが、互いに直交するように配置される。このような配置がされる場合には、等長配線構成が実現されると、第1の演算回路部31の複数の出力線66aの延在方向と、第2の演算回路部32の複数の入力線65bの延在方向とが、互いに平行となる。
次に、第1の演算回路部31の並列に配置される複数の出力線66aのうち、最も端に位置する2つの最端出力線68及び69の、第2の演算回路部32側の端部に着目する。
図29に示す例では、複数の出力線66aは、X方向に沿って並ぶように並列に配置される。従って最も端に位置する2つの最端出力線68及び69は、図中最も左側に位置する出力線66aと、最も右側に位置する出力線66aとなる。
2つの最端出力線68及び69の第2の演算回路部32側の端部を、第1の端部68a及び第2の端部68aとする。
また第2の演算回路部32の並列に配置される複数の入力線65bのうち、最も端に位置する2つの最端入力線70及び71の、第1の演算回路部31側の端部に着目する。
図29に示す例では、複数の入力線65bは、X方向に沿って並ぶように並列に配置される。従って最も端に位置する2つの最端入力線70及び71は、図中最も左側に位置する入力線65bと、最も右側に位置する入力線65bとなる。
2つの最端入力線70及び71の第1の演算回路部32側の端部を、第3の端部70b及び第4の端部71bとする。
なお出力線の端部は、例えば出力線として配置される配線部材の端部により規定することが可能である。あるいは例えば、出力線から出力される積和信号を受け取る次に素子の入力端部を基準として規定することも可能である。例えば図5及び図7等に示す例では、ニューロン回路10への入力端部を基準として、出力線の端部を規定することが可能である。
また、入力線の端部は、例えば入力線として配置される配線部材の端部により規定することが可能である。あるいは例えば、入力線に入力される積和信号(あるいは積和信号に基づいて生成された信号)を出力する1つ前の素子の出力端部を基準として規定することも可能である。
その他、出力線を構成する部分の積和信号を出力する任意の端部、及び入力線を構成する部分の積和信号(あるいは積和信号に基づいて生成される信号)が入力される任意の端部に対して、本技術に係る等長配線構成が実現されてよい。
ここで第1の演算回路部31の第1の端部68a又は第2の端部69aの少なくとも一方のX方向(第1の方向)における位置が、第2の演算回路部32の第3の端部70bのX方向(第1の方向)における位置と、第4の端部71bのX方向(第1の方向)における位置との間の位置となる構成を便宜的に「AA構成」とする。
また、第2の演算回路部32の第3の端部70b又は第4の端部71bの少なくとも一方のX方向(第1の方向)における位置が、第1の演算回路部31の第1の端部68aのX方向(第1の方向)における位置と、第2の端部69aのX方向(第1の方向)における位置との間の位置となる構成を便宜的に「BB構成」とする。
新たに考案した等長配線構成の2つめの特徴は、AA構成又はBB構成が実現されることである。
なお「ある方向における位置」とは、例えば、実際の3次元空間において、「ある方向」を1つの座標軸とする3次元座標系を設定した場合の、「ある方向」に対応する座標値により規定することが可能である。
従って、図29に示す例では、図中のXYZ座標系におけるx座標値が、X方向(第1の方向)における位置として規定することが可能である。
また「ある方向」において「位置Aが、位置Bと位置Cとの間の位置となる」とは、「ある方向」に対応する位置Aの座標値が、位置Bの座標値以上位置Cの座標値以下となることに相当する。従って、位置Aの座標値が、位置Bの座標値あるいは位置Cの座標値と等しくなる場合も含まれる。
以下、各端部のX方向(第1の方向)における位置を、単に各端部の位置と記載する場合がある。
図29に示す例では、第1の端部68a及び第2の端部69aの位置の両方が、第3の端部70bの位置と第4の端部71bの位置との間の位置となるように構成されている。すなわちAA構成が実現されている。
また第1の端部68a及び第2の端部69aの位置の両方が、第3の端部70bの位置及び第4の端部71bの位置のいずれとも異なる位置となるように構成されている。すなわち、X方向において同じ位置となる端部は存在しない。
このことは、第3の端部70b及び第4の端部71bの位置の両方が、第1の端部68aの位置及び第2の端部69aの位置のいずれとも異なる位置となるように構成されているとも言える。
ここで、2つの最端出力線68及び69のX方向(第1の方向)における距離(幅)、すなわち第1の端部68a及び第2の端部69aのX方向(第1の方向)における距離(幅)を、第1の演算回路部31の出力端の幅とする。
また2つの最端入力線70及び71のX方向(第1の方向)における距離(幅)、すなわち第3の端部70b及び第4の端部71bのX方向(第1の方向)における距離(幅)を、第2の演算回路部32の入力端の幅とする。
図29に示す例では、第1の演算回路部31の出力端の幅と比べて、第2の演算回路部32の入力端の幅が大きい。またY方向に沿って見ると、第1の演算回路部31の出力端の幅の全体が、第2の演算回路部32の入力端の幅内に包含される。
図30及び図31は、等長配線構成の他の例を示す模式図である。
図30A〜Cにおいて、第1の演算回路部31の複数の入力線65aの延在方向と、第2の演算回路部32の複数の出力線66bの延在方向が、互いに平行となっている(ともにX方向に平行)。
図30Aでは、第1の演算回路部31の第2の端部69aの位置が、第2の演算回路部32第3の端部70bの位置と、第4の端部71bの位置との間の位置となるように構成されている(AA構成)。
このことは、第2の演算回路部32の第3の端部71bの位置が、第1の演算回路部31の第1の端部68aの位置と、第2の端部69aの位置との間の位置となるように構成されているとも言える(BB構成)。
また第1の演算回路部31の第1の端部68a及び第2の端部69aの位置の両方が、第2の演算回路部32の第3の端部70bの位置及び第4の端部71bの位置のいずれとも異なる位置となるように構成されている。
このことは、第3の端部70b及び第4の端部71bの位置の両方が、第1の端部68aの位置及び第2の端部69aの位置のいずれとも異なる位置となるように構成されているとも言える。
図30Bでは、第1の演算回路部31の第2の端部69aの位置が、第2の演算回路部32の第3の端部70bの位置と、第4の端部71bの位置との間の位置となるように構成されている(AA構成)。
また第1の演算回路部31の第1の端部68aの位置が、第2の演算回路部32の第3の端部70bの位置と同じ位置となるように構成されている。
この構成は、第1の端部68aの位置が、第3の端部70bの位置と、第4の端部71bの位置との間の位置であるとも言える(AA構成)。また第3の端部70bの位置が、第1の端部68aの位置と、第2の端部68bの位置との間の位置であるとも言える(BB構成)。
図30Cは、図29に例示する等長配線構成と同じ構成である。
図29及び図30に示す例では、第1の演算回路部31の並列に配置される複数の出力線66aのピッチと比べて、第2の演算回路部32の並列に配置される複数の入力線65bのピッチが大きい場合が例に挙げられている。
すなわち第1の演算回路部31の出力端の幅と比べて、第2の演算回路部32の入力端の幅が大きい場合が例に挙げられている。
このような構成に限定されず、図31に示すように、第1の演算回路部31の並列に配置される複数の出力線66aのピッチと比べて、第2の演算回路部32の並列に配置される複数の入力線65bのピッチが小さい場合でも、等長配線構成は実現可能である。
すなわち第1の演算回路部31の出力端の幅と比べて、第2の演算回路部32の入力端の幅が小さい場合でも、等長配線構成は実現可能である。
図31A〜Cにおいて、第1の演算回路部31の複数の入力線65aの延在方向と、第2の演算回路部32の複数の出力線66bの延在方向が、互いに平行となっている(ともにX方向に平行)。
図31Aでは、第1の演算回路部31の第1の端部68aの位置が、第2の演算回路部32の第3の端部70bの位置と、第4の端部71bの位置との間の位置となるように構成されている(AA構成)。
このことは、第2の演算回路部32の第4の端部71bの位置が、第1の演算回路部32の第1の端部68aの位置と、第2の端部69aの位置との間の位置となるように構成されているとも言える(BB構成)。
また第1の演算回路部31の第1の端部68a及び第2の端部69aの位置の両方が、第2の演算回路部32の第3の端部70bの位置及び第4の端部71bの位置のいずれとも異なる位置となるように構成されている。
このことは、第3の端部70b及び第4の端部71bの位置の両方が、第1の端部68aの位置及び第2の端部68bの位置のいずれとも異なる位置となるように構成されているとも言える。
図31Bでは、第1の演算回路部31の第2の端部69aの位置が、第2の演算回路部32の第3の端部70bの位置と、第4の端部71bの位置との間の位置となるように構成されている(AA構成)。
また第1の演算回路部31の第1の端部68aの位置が、第2の演算回路部32の第3の端部70bの位置と同じ位置となるように構成されている。
この構成は、第1の端部68aの位置が、第3の端部70bの位置と、第4の端部71bの位置との間の位置であるとも言える(AA構成)。また第3の端部70bの位置が、第1の端部68aの位置と、第2の端部69aの位置との間の位置であるとも言える(BB構成)。
図31Cは、第2の演算回路部32の第3の端部70b及び第4の端部71bの位置の両方が、第1の演算回路部31の第1の端部68aの位置と第2の端部69aの位置との間の位置となるように構成されている(BB構成)。
また第1の端部68a及び第2の端部69aの位置の両方が、第3の端部70bの位置及び第4の端部71bの位置のいずれとも異なる位置となるように構成されている。
このことは、第3の端部70b及び第4の端部71bの位置の両方が、第1の端部68aの位置及び第2の端部69aの位置のいずれとも異なる位置となるように構成されているとも言える。
図30Cに示す例では、第1の演算回路部31の出力端の幅と比べて、第2の演算回路部32の入力端の幅が小さい。またY方向に沿って見ると、第2の演算回路部32の入力端の幅の全体が、第1の演算回路部31の出力端の幅内に包含される。このような構成においても、等長配線構成を実現することが可能である。
図30及び図31に例示するように、第1の演算回路部31の並列に配置される複数の出力線66aのピッチと、第2の演算回路部32の並列に配置される複数の入力線65bのピッチとが、互いに異なる場合において、等長配線構成を実現することが可能である。
これに限定されず、第1の演算回路部31の並列に配置される複数の出力線66aのピッチと、第2の演算回路部32の並列に配置される複数の入力線65bのピッチとが、互いに等しい場合でも、等長配線構成を実現することが可能である。
図30及び図31に示す例では、第1の演算回路部31及び第2の演算回路部32の各々は、複数の入力線(65a、65b)の入力側の端部が同一直線上に位置し、複数の出力線(66a、66b)の出力側の端部が同一直線上に位置するように構成されている。
このような場合では、新たに考案した等長配線構成の特徴として、第1の演算回路部31の複数の出力線66aの出力側の端部が並ぶ直線方向と、第2の演算回路部32の複数の入力線65bの入力側の端部が並ぶ直線方向とが、互いに平行(ともにX方向に平行)となるように構成されるという点を挙げることが可能である。
もちろん、複数の入力線(65a、65b)の入力側の端部が同一直線上に位置していない場合や、複数の出力線(66a、66b)の出力側の端部が同一直線上に位置していない場合でも、等長配線構成を実現することが可能である。
図32は、等長配線構成を実現した場合の等長配線の一例を示す模式図である。
図32では、図29及び図30Cに例示する等長配線構成が実現されている。
すなわち第1の端部68a及び第2の端部69aの位置の両方が、第3の端部70bの位置と第4の端部71bの位置との間の位置となるように構成されている。
また第1の端部68a及び第2の端部69aの位置の両方が、第3の端部70bの位置及び第4の端部71bの位置のいずれとも異なる位置となるように構成されている。
さらに、第1の演算回路部31の並列に配置される複数の出力線66aのピッチと比べて、第2の演算回路部32の並列に配置される複数の入力線65bのピッチが大きい。
図32に示す第1の演算回路部31の複数の出力線66aの端部68a、72、69aと、第2の演算回路部32の複数の入力線65bの端部70b、73、71bとの間を、等長配線領域74とする。
この等長配線領域74を同じサイズの正方形からなる複数のグリッド(格子)が並ぶように、格子状に区切る。図32に示すように、出力線66aの端部68a、72、69aから対応する入力線65bの端部70b、73、71bまで、グリッドの1辺の長さ×12分の長さで等しくなるように、等長配線を引くことが可能である。
もちろん、図32に示す例は一例であり、他の配線構成でも、等長配線を実現することが可能である。
このように、前段/後段の関係となる第1の演算回路部31及び第2の演算回路部32に対して、図29〜図31に例示するような等長配線構成を実現する。これにより、第1の演算回路部31の複数の出力線66aの端部の各々から、第2の演算回路部32の対応する複数の入力線65bの各々の端部までの配線を、等長配線にすることに非常に有利となる。
また、第1の演算回路部31の複数の出力線66aの端部の各々から、第2の演算回路部32の対応する複数の入力線65bの各々の端部までの配線の長さを短くすることが可能となり、余分な配線長を削減することが可能となる。
出力線66aの端部から対応する入力線65bの端部までの配線長を等長とすることは、その配線部分で生じる寄生容量を等容量にすることにも繋がる。これにより、アナログ信号の遅延時間をそろえることが可能となり、アナログ信号の伝達誤差を抑えることが可能となる。
特に、時間軸アナログ積和方式では、タイミング(時刻)あるいはパルス幅(時間)で情報が伝達されるため、遅延時間のバラツキを抑えることで、演算精度を大幅に向上させることが可能となる。
また出力線66aの端部から対応する入力線65bの端部までの配線長を短くすることが可能であるので、外部回路によるタイミング遅延補償を小さくすることが可能となる。この結果、レイテンシーを短くすることが可能となる。
また配線長が短くすることが可能であるので、第2の演算回路部32への入力を、同じ条件にそろえることにも有利である。
なお、出力線66bの端部から入力線65aの端部までの全ての配線長が等長とはならない場合もあり得る。また厳密に等長ではなく、ある程度のばらつきが発生する場合もあり得る。
しかしながら、新たに考案した等長配線構成を採用することで、出力線66aの端部から入力線65bの端部までの多くの配線帳を等長にすること、あるいは所定の長さを基準とした十分に小さい範囲の長さで、そろえることが可能となる。この結果、上記した効果を十分に発揮させることが可能となる。
本技術に係る等長配線構成は、アナログ信号を入力/出力するアナログ方式の演算回路部5を複数用いて構成する演算装置において、演算回路部5の配置に適切な限定を加えることにより、演算回路部5間の配線を等長(等容量、等遅延時間)とし、また短くすることを可能とする技術とも言える。
図29〜図31に例示する等長配線構成の特徴を、他の表現により規定することも可能である。
例えば、第1の端部68aと第2の端部69bとを結ぶ辺を、第1の演算回路部31の出力辺とする。第3の端部70bと第4の端部71bとを結ぶ辺を、第2の演算回路部32の入力辺とする。
そうすると、例えば図30Cや図31Cの構成は、第1の演算回路部31の出力辺、及び第2の演算回路部32の入力辺のうち短い側の辺の両端から長い側の辺に描いた垂線が、長い側の辺の両端をはみ出さない構成ということも可能である。
このように第1の演算回路部31の出力辺、第2の演算回路部32の入力辺、両端からの垂線といった表現を用いて、本技術に係る等長配線構成の特徴を規定することも可能である。
以下、前段/後段の関係にあり、等長配線構成が実現された2つの演算回路部5を、「第1の演算回路部」及び「第2の演算回路部」として構成された2つの演算回路部5と表現する場合がある。
図33は、推論装置の他の構成例を示す模式図である。なお、D/Aコンバータ36までの回路構成、及びA/Dコンバータ40からの回路構成の図示は省略されている。
図33に示す推論装置400は、4つの演算回路部76a〜76dが4段接続されたネットワーク回路が実現されている。
前段/後段の関係となる演算回路部の間には、ReLU回路37及び拡大回路38が配置される。
最も後段の演算回路部76dとA/Dコンバータ40との間には、差分回路39が配置される。
このような推論装置400にも、本技術を適用することが可能である。
例えば4つの演算回路部76a〜76dのうちの2つの演算回路部であって、前段/後段の関係となる2つの演算回路部の少なくとも1組に対して、等長配線構成が実現されればよい。
すなわち4つの演算回路部76a〜76dのうち組前段/後段の関係となる2つの演算回路部の少なくとも1組が、「第1の演算回路部」及び「第2の演算回路部」として構成されればよい。
もちろん前段/後段の関係となる2つの演算回路部の全ての組に対して、等長配線構成が実現され、「第1の演算回路部」及び「第2の演算回路部」として構成されてもよい。この場合、実現される等長配線構成自体が、互いに等しい構成でなくてもよい。例えば、図30及び図31に例示するバリエーションから適宜等長配線構成が選択されて実現されてよい。
なお前段/後段の関係となる2つの演算回路部を、以下のように表現することも可能である。
複数の演算回路部のうちの2つの演算回路部であって、一方の演算回路部の複数の入力線には、他方の演算回路部の複数の出力線から出力される積和信号、又は他方の演算回路部の複数の出力線から出力される積和信号に基づいて生成される信号が、入力値に応じた電気信号として入力される関係となる前記2つの演算回路部。
このような関係となる2つの演算回路部の少なくとも1組が、「第1の演算回路部」及び「第2の演算回路部」として構成されてもよい。
2以上の任意の数の演算回路部を含む演算装置に対して、本技術は適用可能である。
図34に示す推論装置500では、4つの演算回路部77a〜77dがリング状に接続されたネットワーク回路が実現されている。
前段/後段の関係となる演算回路部の間には、出力スイッチ78、A/Dコンバータ40、D/Aコンバータ36、及び入力スイッチ79が配置される。
前段/後段の関係となる演算回路部77a及び77bの間の回路を参照して、出力スイッチ78は、演算回路部77aから積和結果信号の出力先を、A/Dコンバータ40及び入力スイッチ79のいずれかに切替えることが可能である。入力スイッチ79は、D/Aコンバータ36からの出力、及び出力スイッチ78からの出力のいずれかを切替えて、演算回路部77bに出力する。
前段/後段の関係となる他の2つの演算回路部間の構成も同様である。
すなわち推論装置500では、演算回路部77a及び77bの間、演算回路部77b及び77cの間、演算回路部77c及び77dの間、演算回路部77d及び77aの間のいずれにおいても、前段の演算回路部の出力をそのまま後段の演算回路部に接続するか、あるいはD/Aコンバータ40から出力させるかを選択することが可能となる。
また画素データ等の類推の対象となるデータを、演算回路部77a及び77bの間、演算回路部77b及び77cの間、演算回路部77c及び77dの間、演算回路部77d及び77a間のいずれの位置から、D/Aコンバータ36を介して入力することが可能である。
なお、ReLU回路、拡大回路、差分回路等を適宜配置することも可能である。
図35は、推論装置500による推論時の動作例を示すタイミングチャートである。
ここでは、演算回路部77d及び77aの間にあるD/Aコンバータ36aから推論装置500へデータが入力され、ループを2周して、A/Dコンバータ40aから出力される場合を例に挙げる。
時刻t1〜t2:D/Aコンバータ36aからの出力が演算回路部77aへ入力される。
時刻t2〜t3:演算回路部77aからの出力が演算回路部77bへ入力される。
時刻t3〜t4:演算回路部77bからの出力が演算回路部77cへ入力される。
時刻t4〜t5:演算回路部77cからの出力が演算回路部77dへ入力される。
時刻t5〜t6:演算回路部77dからの出力が演算回路部77aへ入力される。
時刻t6〜t7:演算回路部77aからの出力が演算回路部77bへ入力される。
時刻t7〜t8:演算回路部77bからの出力が演算回路部77cへ入力される。
時刻t8〜t9:演算回路部77cからの出力が演算回路部77dへ入力される。
時刻t9〜t10:演算回路部77dからの出力がA/Dコンバータ40aへ入力される。
図35に示すように、各演算回路部において、動作していない非動作時間が存在する。例えば演算回路部77aでは、t3〜t5の間が非動作時間となる。
各演算回路部において、非動作時間中に、図示しない書き込み用の回路等により、荷重値の更新を実行する。これにより、単なるループではなく、異なる荷重値が設定された演算回路部を、連続的に接続することが可能となる。
また各演算回路部の入力/出力数以下であれば、出力/入力信号の数を減らすことも可能である。
このような推論装置500にも、本技術を適用することが可能である。
例えば4つの演算回路部77a〜77dのうち組前段/後段の関係となる2つの演算回路部の少なくとも1組に等長配線構成が実現され、「第1の演算回路部」及び「第2の演算回路部」として構成されればよい。
もちろん前段/後段の関係となる2つの演算回路部の全ての組に対して、等長配線構成が実現され、「第1の演算回路部」及び「第2の演算回路部」として構成されてもよい。
これにより、上記した効果が発揮される。
図36〜図38は、本技術に係る演算装置の他の構成例であり、複数の演算回路部の配置構成のバリエーション例を示す模式図である。
以下に説明する演算装置において、各演算回路部81〜86は、所定の平面を基準平面として、複数の入力線及び複数の出力線が配置されている。逆に言えば、複数の入力線、及び複数の入力線に交差する複数の出力線が配置される面を、基準平面と言うことも可能である。
基準平面は、3次元の空間内に対して任意に設定することが可能である。
以下、3次元空間に対して、改めてXYZ座標系を設定する。この座標系は、図29等に示す座標系と関連性を有するものではない。
また各演算回路部81〜86において、アナログ信号が入力される側を、入力辺87と記載する。入力辺87は、複数の入力線の端部が並ぶ位置に相当し、必ずしも直線状に構成される訳ではない。
図36〜図38では、入力辺87に向けて矢印が図示されている。その矢印の入力辺87に当接する線の延在方向が信号の入力方向であり、複数の入力線の延在方向となる。
また各演算回路部81〜86において、積和信号が出力される側を、出力辺88と記載する。出力辺88は、複数の出力線の端部が並ぶ位置に相当し、必ずしも直線状に構成される訳ではない。
図36〜図38では、出力辺88から矢印が図示されている。その矢印の出力辺88に当接する線の方向が信号の出力方向であり、複数の出力線の延在方向となる。
図36Aに示す例では、XY平面に平行な面を基準平面として、4つの演算回路部81a〜81dが構成される。すなわち各演算回路部は、XY平面に平行な面上に、複数の入力線と複数の出力線が配置される。
4つの演算回路部81a〜81dは、同一平面上に配置される。すなわち4つの演算回路部81a〜81dは、各々の基準平面が同一平面上に位置するように構成される。
以下の組の演算回路部は、「第1の演算回路部」及び「第2の演算回路部」として構成されている。なお(→)は、アナログ信号の出力方向を示す。
演算回路部81a→演算回路部81b
演算回路部81b→演算回路部81c
演算回路部81c→演算回路部81d
演算回路部81d→演算回路部81a
ここで「第1の演算回路部」の基準平面を第1の基準平面とし、「第2の演算回路部」の基準平面を第2の基準平面とする。そうすると、図36Aに示す演算装置は、第1の基準平面と第2の基準平面とが、同一平面上に位置する構成を有する。
図36Aの構成例は、図34に示す推論装置500と同様に、アナログ信号をループして入力/出力を繰り返すことが可能な構成を有する。
もちろんループ可能な構成に限定されず、アナログ信号が配置されている演算回路部の数だけ通過したらA/Dコンバータを介して出力される構成も採用可能である。
このことは、図36〜図38に例示する各演算装置において、共通して言えることである。
図36Bに示す例では、XY平面に平行な面を基準平面として、2つの演算回路部82a及び82bが構成される。
演算回路部82a及び82bは、基準平面の垂線方向であるZ方向に沿って並ぶように配置される。すなわち高さ方向において、2つの演算回路部82a及び82bが積層された2段構成を有する。
図36Bに示すように、1段目の演算回路部82aの手前側の入力辺87aから信号が入力され、右側の出力辺88aから出力される。出力された信号は、垂直配線を介して2段目の演算回路部82bの右側の入力辺87bに入力される。入力された信号は、2段目の演算回路部82bの手前側の出力辺88bから出力され、垂直配線を介して1段目の演算回路部82aの入力辺87aに再び入力される。
演算回路部82a及び82bは、「第1の演算回路部」及び「第2の演算回路部」として構成されている。従って、図36Bに示す演算装置は、第1の基準平面と第2の基準平面とが、互いに平行に配置される構成を有する。
図36Cに示す例では、XY平面に平行な面を基準平面として、4つの演算回路部83a〜83dが構成される。
演算回路部83a〜83dは、基準平面の垂線方向であるZ方向に沿って並ぶように配置される。すなわち高さ方向において、4つの演算回路部83a〜83dが積層された4段構成を有する。
図36Cに示すように、アナログ信号の経路は以下の通りである。
(1)1段目の演算回路部83aの手前側の入力辺87aへ入力
(2)1段目の演算回路部83aの右側の出力辺88aから出力
(3)垂直配線を介して2段目の演算回路部83bの右側の入力辺87bへ入力
(4)2段目の演算回路部83bの奥側の出力辺88bから出力
(5)垂直配線を介して3段目の演算回路部83cの奥側の入力辺87cへ入力
(6)3段目の演算回路部83cの左側の出力辺88cから出力
(7)垂直配線を介して4段目の演算回路部83dの左側の入力辺87adへ入力
(8)4段目の演算回路部83dの手前側の出力辺88dから出力
(9)垂直配線を介して1段目の演算回路部83aの手前側の入力辺87aへ入力
なお、1段目の演算回路部83aと2段目の演算回路部83bとを結ぶ配線、及び3段目の演算回路部83cと4段目の演算回路部83dとを結ぶ配線は、左右どちらでもよい。
また、4段目の演算回路部83dと1段目の演算回路部83aとを結ぶ配線、及び2段目の演算回路部83bと3段目の演算回路部83cとを結ぶ配線を、互いに反対側となる辺を通することで、アナログ配線の簡素化、短縮化を図ることが可能となる。
以下の組の演算回路部は、「第1の演算回路部」及び「第2の演算回路部」として構成されている。
演算回路部83a→演算回路部83b
演算回路部83b→演算回路部83c
演算回路部83c→演算回路部83d
演算回路部83d→演算回路部83a
従って、図36Cに示す演算装置は、第1の基準平面と第2の基準平面とが、互いに平行に配置される構成を有する。
図37Aに示す例では、XY平面に平行な面を基準平面として、4つの演算回路部84a〜84dが構成される。
演算回路部84a及び84bは、同一平面上に配置される。
演算回路部84d及び84cは、同一平面上に配置される。
演算回路部84a及び84d、演算回路部84b及び84cとは、基準平面の垂線方向であるZ方向に沿って並ぶように配置される。
すなわち本例では、同一平面上に並べられた2つの演算回路部同士を、高さ方向で2段積層させた構成を有する。
図37Aに示すように、アナログ信号の経路は以下の通りである。
(1)1段目左側の演算回路部84aの手前側の入力辺87aへ入力
(2)1段目左側の演算回路部84aの右側の出力辺88aから出力
(3)1段目右側の演算回路部84bの左側の入力辺87bへ入力
(4)1段目右側の演算回路部84bの奥側の出力辺88bから出力
(5)垂直配線を介して2段目右側の演算回路部84cの奥側の入力辺87cへ入力
(6)2段目右側の演算回路部84cの左側の出力辺88cから出力
(7)2段目左側の演算回路部84dの右側の入力辺87dへ入力
(8)2段目左側の演算回路部84dの手前側の出力辺88dから出力
(9)垂直配線を介して1段目左側の演算回路部84aの手前側の入力辺87aへ入力
以下の組の演算回路部は、「第1の演算回路部」及び「第2の演算回路部」として構成されている。
演算回路部84a→演算回路部84b
演算回路部84b→演算回路部84c
演算回路部84c→演算回路部84d
演算回路部84d→演算回路部84a
従って、図37Aに示す演算装置は、第1の基準平面と第2の基準平面とが同一平面上に位置する構成、及び第1の基準平面と第2の基準平面とが互いに平行に配置される構成の両方を含む。
図37Bに示す例では、XY平面に平行な面を基準平面として、8つの演算回路部85a〜85hが構成される。
4つの演算回路部85a〜85dは、同一平面上に配置される。
4つの演算回路部85e〜85hは、同一平面上に配置される。
演算回路部85a〜85dと、演算回路部85e〜85hとは、基準平面の垂線方向であるZ方向に沿って並ぶように配置される。
すなわち本例では、同一平面上に並べられた4つの演算回路部同士を、高さ方向で2段積層させた構成を有する。
図37Bに示すように、アナログ信号の経路は以下の通りである。
(1)1段目左手前側の演算回路部85aの手前側の入力辺87aへ入力
(2)1段目左手前側の演算回路部85aの右側の出力辺88aから出力
(3)1段目右手前側の演算回路部85bの左側の入力辺87bへ入力
(4)1段目右手前側の演算回路部85bの奥側の出力辺88bから出力
(5)1段目右奥側の演算回路部85cの手前側の入力辺87cへ入力
(6)1段目右奥側の演算回路部85cの左側の出力辺88cから出力
(7)1段目左奥側の演算回路部85dの右側の入力辺87dへ入力
(8)1段目左奥側の演算回路部85dの奥側の出力辺88dから出力
(9)垂直配線を介して2段目左奥側の演算回路部85eの奥側の入力辺87eへ入力
(10)2段目左奥側の演算回路部85eの右側の出力辺88eから出力
(11)2段目右奥側の演算回路部85fの左側の入力辺87fへ入力
(12)2段目右奥側の演算回路部85fの手前側の出力辺88fから出力
(13)2段目右手前側の演算回路部85gの奥側の入力辺87gへ入力
(14)2段目右手前側の演算回路部85gの左側の出力辺88gから出力
(15)2段目左手前側の演算回路部85hの右側の入力辺87hへ入力
(16)2段目左手前側の演算回路部85hの手前側の出力辺88hから出力
(17)垂直配線を介して1段目右手前の演算回路部85aの手前側の入力辺87aへ入力
以下の組の演算回路部は、「第1の演算回路部」及び「第2の演算回路部」として構成されている。
演算回路部85a→演算回路部85b
演算回路部85b→演算回路部85c
演算回路部85c→演算回路部85d
演算回路部85d→演算回路部85e
演算回路部85e→演算回路部85f
演算回路部85f→演算回路部85g
演算回路部85g→演算回路部85h
演算回路部85h→演算回路部85a
従って、図37Bに示す演算装置は、第1の基準平面と第2の基準平面とが同一平面上に位置する構成、及び第1の基準平面と第2の基準平面とが互いに平行に配置される構成の両方を含む。
図38Aに示す例では、以下の3つの演算回路部が構成される。
演算回路部86a:XY平面に平行な面を基準平面として構成
演算回路部86b:YZ平面に平行な面を基準平面として構成
演算回路部86c:ZX平面に平行な面を基準平面として構成
演算回路部86bは、演算回路部86aよりも左側かつ上方側の位置に配置される。
演算回路部86cは、演算回路部86aよりも奥側かつ上方側の位置に配置される。
図38Aに示すように、アナログ信号の経路は以下の通りである。
(1)演算回路部86aの奥側の入力辺87aへ入力
(2)演算回路部86aの左側の出力辺88aから出力
(3)垂直配線を介して演算回路部86bの下方側の入力辺87bへ入力
(4)演算回路部86bの奥側の出力辺88bから出力
(5)左に延びる配線を介して演算回路部86cの左側の入力辺87cへ入力
(6)演算回路部86cの下方側の出力辺88cから出力
(7)手前に延びる配線を介して演算回路部86aの奥側の入力辺87aへ入力
以下の組の演算回路部は、「第1の演算回路部」及び「第2の演算回路部」として構成されている。
演算回路部86a→演算回路部86b
演算回路部86b→演算回路部86c
演算回路部86c→演算回路部86a
従って、図36Cに示す演算装置は、第1の基準平面と第2の基準平面とが、互いに垂直に配置される構成を有する。
例えば、鉛直面に演算回路部を構成可能である場合には、図38に例示するような配置構成も実現可能である。
図36〜図38に例示した演算装置において、前段/後段の関係となる2つの演算回路部の少なくとも1つが「第1の演算回路部」及び「第2の演算回路部」として構成されればよい。
以上、本実施形態に係る演算装置では、前段/後段の関係となる2つの演算回路部に対して、等長配線構成が実現される。これにより、積和演算を行うアナログ方式の回路において、演算の精度を向上することが可能となる。
なお上記した特許文献1のように、入力信号や積和信号の伝達等について概念的に説明するための図等が図示されている文献はあった。しかしながら、複数の演算回路部の設計において、実際の物理的な配置構成や配線等について言及している文献はなかった。
そこで複数の演算回路部を有する演算装置において、実際の回路構成について検討を重ねた。具体的には、入力値に応じた時間情報を含むアナログ信号を入力/出力する複数のアナログ演算回路部を同一チップ上に搭載する際に、電力等の観点で効率の良い配置や配線について検討を重ねた。
その結果、演算回路部に含まれる、互いに交差するように配置される複数の入力線、及び複数の出力線に着目し、本技術に係る等長配線構成を新たに考案した。
もちろん本技術の適用が、複数のアナログ演算回路部を単体のチップへ搭載する場合に限定される訳ではない。複数のアナログ演算回路部を、積層チップ等の複数のチップや3次元半導体へ搭載する場合にも、本技術は適用可能であり、上記した効果を発揮することが可能である。
<その他の実施形態>
本技術は、以上説明した実施形態に限定されず、他の種々の実施形態を実現することができる。
図39は、等長配線構成の他の実施形態を説明するための模式図である。
図39に示す演算装置では、第1の演算回路部31及び第2の演算回路部32の各々に含まれる信号線のうち、実際に積和演算に用いられる信号線が適宜選択される。
例えば図39に示すように、第1の演算回路部31では、有効領域L1に含まれる7本の信号線が、実際の積和演算時に複数の出力線66aとして用いられる。また第2の演算回路部32では、有効領域L2に含まれる7本の信号線が、実際の積和演算時に複数の入力線65bとして用いられる。
そして、この有効領域L1及びL2内の実際に用いられる複数の出力線66a及び複数の入力線65bに対して、本技術に係る等長配線構成が実現されている。
すなわち本技術に係る「複数の入力線」及び「複数の出力線」は、配置されている信号線のうちの、実際の積和演算時に用いられる信号線により規定することも可能である。
図34に例示する推論装置500について、各演算回路部の入力/出力数以下であれば、出力/入力信号の数を減らすことも可能である旨を説明した。このことは、推論装置500のみならず、図23に例示する推論装置300、図33に例示する推論装置400、その他、本技術に係る任意の推論装置(演算装置)に対して適用可能な事項である。
上記では、タイミング(時刻)あるいはパルス幅(時間)で情報を伝達する時間軸アナログ積和方式の演算装置を例に挙げた。しかしながら、電圧や電流の大きさにより情報を伝達するアナログ積和方式の演算装置に対しても、本技を適用することが可能である。
前段/後段の関係となる2つの演算回路部に対して等長配線構成を実現することで、アナログ信号(電流や電圧)の遅延時間(配線遅延)のバラつきを抑制することが可能となる。これにより、演算回路部の全ての入力信号が安定するまでの待ち時間を小さくすることができ、レイテンシーを短くすることが可能となる。
上記では、複数の演算回路部を含む演算装置として、推論装置を例に挙げた。これに限定されず、複数の演算回路部を含む他の演算装置にも本技術は適用可能である。
上記では、蓄積部により保持された電圧が閾値を過ぎて大きくなるタイミングに基づいて、積和結果信号を出力する場合を例に挙げた。しかしながら、蓄積部により保持された電圧が閾値を過ぎて小さくなるタイミングに基づいて、積和結果信号を出力する構成が採用されてもよい。例えば、蓄積部として機能するキャパシタの電圧が、所定のプリセット値となるまで予め充電される。そして信号値と荷重値との乗算値に対応する電荷の和が蓄積された後に、キャパシタを所定の速度で放電する。このような場合、キャパシタにより保持された電圧が閾値を過ぎて小さくなるタイミングに基づいて、積和結果信号を出力することが可能である。もちろんこのような構成に限定される訳ではない。なお本開示では、キャパシタの放電は、キャパシタに負の電荷を充電することに含まれる。
上記では、1対の出力線が用いられる場合を説明した。これに限定されず、3以上の出力線が設けられてもよい。すなわち1以上の任意の数の出力線が用いられる場合でも、上記で説明した本技術は適用可能である。例えば乗算部は、対応する入力線と、1以上の出力線のいずれか1つとの間に接続され荷重値を規定する抵抗器を含み、抵抗器が接続された出力線に乗算値に対応する電荷を出力する。もちろんこれに限定される訳ではない。
各図面を参照して説明した演算装置、積和演算装置、アナログ回路、シナプス回路、ニューロン回路、等長配線構成等の各構成、積和信号、積和結果信号の生成方法等はあくまで一実施形態であり、本技術の趣旨を逸脱しない範囲で、任意に変形可能である。すなわち本技術を実施するための他の任意の構成や方法等が採用されてよい。
本開示において、「中心」「中央」「均一」「等しい」「同じ」「直交」「平行」「垂直」「対称」「延在」「軸方向」「直方体形状」「曲面形状」「曲線形状」「曲線形状」「レンズ形状」等の、形状、サイズ、位置関係、状態等を規定する概念は、「実質的に中心」「実質的に中央」「実質的に均一」「実質的に等しい」「実質的に同じ」「実質的に直交」「実質的に平行」「実質的に垂直」「実質的に対称」「実質的に延在」「実質的に軸方向」「実質的に直方体形状」「実質的に曲面形状」「実質的に曲線形状」「実質的に曲線形状」「実質的にレンズ形状」等を含む概念とする。
例えば「完全に中心」「完全に中央」「完全に均一」「完全に等しい」「完全に同じ」「完全に直交」「完全に平行」「完全に垂直」「「完全に対称」「完全に延在」「完全に軸方向」「完全に軸方向」「完全に直方体形状」「完全に曲面形状」「完全に曲線形状」「完全に曲線形状」「完全にレンズ形状」等を基準とした所定の範囲(例えば誤差範囲や、±10%の所定の範囲)等も含まれる。
以上説明した本技術に係る特徴部分のうち、少なくとも2つの特徴部分を組み合わせることも可能である。すなわち各実施形態で説明した種々の特徴部分は、各実施形態の区別なく、任意に組み合わされてもよい。また上記で記載した種々の効果は、あくまで例示であって限定されるものではなく、また他の効果が発揮されてもよい。
なお、本技術は以下のような構成も採ることができる。
(1)
各々が、
所定の方向を延在方向として並列に配置され、入力値に応じた電気信号がそれぞれ入力される複数の入力線と、
前記所定の方向とは異なる方向を延在方向として前記複数の入力線と交差するように並列に配置され、各々が、前記複数の入力線に入力される前記電気信号に基づいて生成される前記入力値に荷重値を乗算した乗算値の和を表す積和信号を出力する複数の出力線と、
を有する複数の演算回路部を具備し、
前記複数の演算回路部は、第1の演算回路部、及び第2の演算回路部を有し、
前記第2の演算回路部の前記複数の入力線には、前記第1の演算回路部の前記複数の出力線から出力される前記積和信号、又は前記第1の演算回路部の前記複数の出力線から出力される前記積和信号に基づいて生成される信号が、前記入力値に応じた電気信号として入力され、
前記第1の演算回路部の前記複数の入力線の延在方向である第1の方向と、前記第2の演算回路部の前記複数の出力線の延在方向である第2の方向とが、互いに平行となるように構成され、
前記第1の演算回路部の並列に配置される前記複数の出力線のうち最も端に位置する2つの最端出力線の前記第2の演算回路部側の端部を第1の端部及び第2の端部とし、前記第2の演算回路部の並列に配置される前記複数の入力線のうち最も端に位置する2つの最端入力線の前記第1の演算回路部側の端部を第3の端部及び第4の端部とすると、
前記第1の端部又は前記第2の端部の少なくとも一方の前記第1の方向における位置が、前記第3の端部の前記第1の方向における位置と、前記第4の端部の前記第1の方向における位置との間の位置となるように構成される
又は、
前記第3の端部又は前記第4の端部の少なくとも一方の前記第1の方向における位置が、前記第1の端部の前記第1の方向における位置と、前記第2の端部の前記第1の方向における位置との間の位置となるように構成される
演算装置。
(2)(1)に記載の演算装置であって、
前記第1の端部の前記第1の方向における位置、及び前記第2の端部の前記第1の方向における位置の両方が、前記第3の端部の前記第1の方向における位置と、前記第4の端部の前記第1の方向における位置との間の位置となるように構成される
演算装置。
(3)(1)に記載の演算装置であって、
前記第3の端部の前記第1の方向における位置、及び前記第4の端部の前記第1の方向における位置の両方が、前記第1の端部の前記第1の方向における位置と、前記第2の端部の前記第1の方向における位置との間の位置となるように構成される
演算装置。
(4)(1)から(3)のうちいずれか1つに記載の演算装置であって、
前記第1の端部又は前記第2の端部の少なくとも一方の前記第1の方向における位置が、前記第3の端部の前記第1の方向における位置、及び前記第4の端部の前記第1の方向における位置のいずれとも異なる位置となるように構成される
演算装置。
(5)(1)から(4)のうちいずれか1つに記載の演算装置であって、
前記第3の端部又は前記第4の端部の少なくとも一方の前記第1の方向における位置が、前記第1の端部の前記第1の方向における位置、及び前記第2の端部の前記第1の方向における位置のいずれとも異なる位置となるように構成される
演算装置。
(6)(1)から(5)のうちいずれか1つに記載の演算装置であって、
前記第1の演算回路部の前記複数の出力線の延在方向と、前記第2の演算回路部の前記複数の入力線の延在方向とが、互いに平行となるように構成される
演算装置。
(7)(1)から(6)のうちいずれか1つに記載の演算装置であって、
前記複数の演算回路部のうちの2つの演算回路部であって、一方の演算回路部の前記複数の入力線には、他方の演算回路部の前記複数の出力線から出力される前記積和信号、又は他方の演算回路部の前記複数の出力線から出力される前記積和信号に基づいて生成される信号が、前記入力値に応じた電気信号として入力される関係となる前記2つの演算回路部は、前記第1の演算回路部及び前記第2の演算回路部として構成される
演算装置。
(8)(1)から(7)のうちいずれか1つに記載の演算装置であって、
前記複数の演算回路部の各々は、所定の平面を基準平面として、前記複数の入力線及び前記複数の出力線が配置されており、
前記第1の演算回路部の前記基準平面である第1の基準平面と、前記第2の演算回路部の前記基準平面である第2の基準平面とは、同一平面上に位置する
演算装置。
(9)(1)から(7)のうちいずれか1つに記載の演算装置であって、
前記複数の演算回路部の各々は、所定の平面を基準平面として、前記複数の入力線及び前記複数の出力線が配置されており、
前記第1の演算回路部の前記基準平面である第1の基準平面と、前記第2の演算回路部の前記基準平面である第2の基準平面とは、互いに平行に配置される
演算装置。
(10)(1)から(7)のうちいずれか1つに記載の演算装置であって、
前記複数の演算回路部の各々は、所定の平面を基準平面として、前記複数の入力線及び前記複数の出力線が配置されており、
前記第1の演算回路部の前記基準平面である第1の基準平面と、前記第2の演算回路部の前記基準平面である第2の基準平面とは、互いに垂直に配置される
演算装置。
(11)(1)から(10)のうちいずれか1つに記載の演算装置であって、
前記複数の演算回路部の各々は、前記複数の入力線の入力側の端部が同一直線上に位置し、前記複数の出力線の出力側の端部が同一直線上に位置しており、
前記第1の演算回路部の前記複数の出力線の出力側の端部が並ぶ直線方向と、前記第2の演算回路部の前記複数の入力線の入力側の端部が並ぶ直線方向とが、互いに平行となるように構成される
演算装置。
(12)(1)から(11)のうちいずれか1つに記載の演算装置であって、
前記第1の演算回路部の並列に配置される前記複数の出力線のピッチと、前記第2の演算回路部の並列に配置される前記複数の入力線のピッチとは、互いに異なるように構成される
演算装置。
(13)(1)から(12)のうちいずれか1つに記載の演算装置であって、
前記複数の演算回路部の各々は、
前記複数の入力線の各々に入力される前記電気信号に基づいて前記入力値に荷重値を乗算した乗算値に対応する電荷を生成して、前記積和信号として前記出力線に出力する複数の乗算部と、
前記複数の乗算部の各々により前記出力線に出力された前記乗算値に対応する電荷を蓄積する蓄積部と、
前記乗算値に対応する電荷が蓄積された前記蓄積部を充電する充電部と、
前記充電部による充電の開始後、前記蓄積部により保持される電圧に対して所定の閾値により閾値判定を実行することで、前記入力値に荷重値を乗算した乗算値の和に対応するタイミングの情報を含む積和結果信号を出力する出力部と
を有する
演算装置。
(14)(13)に記載の演算装置であって、
前記出力線として、正電荷出力線と、負電荷出力線とが配置され、
前記複数の乗算部は、前記入力値に正の荷重値を乗算した乗算値に対応する正荷重電荷を生成して前記積和信号として前記正電荷出力線に出力する正荷重乗算部、又は前記入力値に負の荷重値を乗算した乗算値に対応する負荷重電荷を生成して前記積和信号として前記負電荷出力線に出力する負荷重乗算部の少なくとも一方を含み、
前記蓄積部は、前記正荷重乗算部により前記正電荷出力線に出力された前記正荷重電荷を蓄積可能な正電荷蓄積部と、前記負荷重乗算部により前記負電荷出力線に出力された前記負荷重電荷を蓄積可能な負電荷蓄積部とを有し、
前記充電部は、前記正電荷蓄積部、及び前記負電荷蓄積部を充電し、
前記出力部は、前記正電荷蓄積部、及び前記負電荷蓄積部の各々に対して、前記所定の閾値により閾値判定を実行することで、前記積和結果信号を出力する
演算装置。
(15)
各々が、
所定の方向を延在方向として並列に配置され、入力値に応じた電気信号がそれぞれ入力される複数の入力線と、
前記所定の方向とは異なる方向を延在方向として前記複数の入力線と交差するように並列に配置され、各々が、前記複数の入力線に入力される前記電気信号に基づいて生成される前記入力値に荷重値を乗算した乗算値の和を表す積和信号を出力する複数の出力線と、
を有する複数の演算回路部と、
前記複数の演算回路部を接続して構成されたネットワーク回路と
を具備し、
前記複数の演算回路部は、第1の演算回路部、及び第2の演算回路部を有し、
前記第2の演算回路部の前記複数の入力線には、前記第1の演算回路部の前記複数の出力線から出力される前記積和信号、又は前記第1の演算回路部の前記複数の出力線から出力される前記積和信号に基づいて生成される信号が、前記入力値に応じた電気信号として入力され、
前記第1の演算回路部の前記複数の入力線の延在方向である第1の方向と、前記第2の演算回路部の前記複数の出力線の延在方向である第2の方向とが、互いに平行となるように構成され、
前記第1の演算回路部の並列に配置される前記複数の出力線のうち最も端に位置する2つの最端出力線の前記第2の演算回路部側の端部を第1の端部及び第2の端部とし、前記第2の演算回路部の並列に配置される前記複数の入力線のうち最も端に位置する2つの最端入力線の前記第1の演算回路部側の端部を第3の端部及び第4の端部とすると、
前記第1の端部又は前記第2の端部の少なくとも一方の前記第1の方向における位置が、前記第3の端部の前記第1の方向における位置と、前記第4の端部の前記第1の方向における位置との間の位置となるように構成される
又は、
前記第3の端部又は前記第4の端部の少なくとも一方の前記第1の方向における位置が、前記第1の端部の前記第1の方向における位置と、前記第2の端部の前記第1の方向における位置との間の位置となるように構成される
積和演算システム。
T…入力期間
θ…閾値
P1…信号線対
P7…入力信号線対
1…信号線
3…アナログ回路
5…演算回路部
7…入力信号線
7a…正の入力信号線
7b…負の入力信号線
8…電荷出力線
8a…正電荷出力線
8b…負電荷出力線
9…シナプス回路
10…ニューロン回路
11…蓄積部
12…信号出力部
15…充電部
17…抵抗器
23…信号生成部
31…第1の演算回路部
32…第2の演算回路部
65a、65b…複数の入力線
66a、66b…複数の出力線
68、69…最端出力線
68a…第1の端部
69a…第2端部
70、71…最端入力線
70b…第3の端部
71b…第4の端部
74…等長配線領域
76a〜76d、77a〜77d、81〜86…演算回路部
100、200…演算装置
300、400、500…推論装置

Claims (15)

  1. 各々が、
    所定の方向を延在方向として並列に配置され、入力値に応じた電気信号がそれぞれ入力される複数の入力線と、
    前記所定の方向とは異なる方向を延在方向として前記複数の入力線と交差するように並列に配置され、各々が、前記複数の入力線に入力される前記電気信号に基づいて生成される前記入力値に荷重値を乗算した乗算値の和を表す積和信号を出力する複数の出力線と、
    を有する複数の演算回路部を具備し、
    前記複数の演算回路部は、第1の演算回路部、及び第2の演算回路部を有し、
    前記第2の演算回路部の前記複数の入力線には、前記第1の演算回路部の前記複数の出力線から出力される前記積和信号、又は前記第1の演算回路部の前記複数の出力線から出力される前記積和信号に基づいて生成される信号が、前記入力値に応じた電気信号として入力され、
    前記第1の演算回路部の前記複数の入力線の延在方向である第1の方向と、前記第2の演算回路部の前記複数の出力線の延在方向である第2の方向とが、互いに平行となるように構成され、
    前記第1の演算回路部の並列に配置される前記複数の出力線のうち最も端に位置する2つの最端出力線の前記第2の演算回路部側の端部を第1の端部及び第2の端部とし、前記第2の演算回路部の並列に配置される前記複数の入力線のうち最も端に位置する2つの最端入力線の前記第1の演算回路部側の端部を第3の端部及び第4の端部とすると、
    前記第1の端部又は前記第2の端部の少なくとも一方の前記第1の方向における位置が、前記第3の端部の前記第1の方向における位置と、前記第4の端部の前記第1の方向における位置との間の位置となるように構成される
    又は、
    前記第3の端部又は前記第4の端部の少なくとも一方の前記第1の方向における位置が、前記第1の端部の前記第1の方向における位置と、前記第2の端部の前記第1の方向における位置との間の位置となるように構成される
    演算装置。
  2. 請求項1に記載の演算装置であって、
    前記第1の端部の前記第1の方向における位置、及び前記第2の端部の前記第1の方向における位置の両方が、前記第3の端部の前記第1の方向における位置と、前記第4の端部の前記第1の方向における位置との間の位置となるように構成される
    演算装置。
  3. 請求項1に記載の演算装置であって、
    前記第3の端部の前記第1の方向における位置、及び前記第4の端部の前記第1の方向における位置の両方が、前記第1の端部の前記第1の方向における位置と、前記第2の端部の前記第1の方向における位置との間の位置となるように構成される
    演算装置。
  4. 請求項1に記載の演算装置であって、
    前記第1の端部又は前記第2の端部の少なくとも一方の前記第1の方向における位置が、前記第3の端部の前記第1の方向における位置、及び前記第4の端部の前記第1の方向における位置のいずれとも異なる位置となるように構成される
    演算装置。
  5. 請求項1に記載の演算装置であって、
    前記第3の端部又は前記第4の端部の少なくとも一方の前記第1の方向における位置が、前記第1の端部の前記第1の方向における位置、及び前記第2の端部の前記第1の方向における位置のいずれとも異なる位置となるように構成される
    演算装置。
  6. 請求項1に記載の演算装置であって、
    前記第1の演算回路部の前記複数の出力線の延在方向と、前記第2の演算回路部の前記複数の入力線の延在方向とが、互いに平行となるように構成される
    演算装置。
  7. 請求項1に記載の演算装置であって、
    前記複数の演算回路部のうちの2つの演算回路部であって、一方の演算回路部の前記複数の入力線には、他方の演算回路部の前記複数の出力線から出力される前記積和信号、又は他方の演算回路部の前記複数の出力線から出力される前記積和信号に基づいて生成される信号が、前記入力値に応じた電気信号として入力される関係となる前記2つの演算回路部は、前記第1の演算回路部及び前記第2の演算回路部として構成される
    演算装置。
  8. 請求項1に記載の演算装置であって、
    前記複数の演算回路部の各々は、所定の平面を基準平面として、前記複数の入力線及び前記複数の出力線が配置されており、
    前記第1の演算回路部の前記基準平面である第1の基準平面と、前記第2の演算回路部の前記基準平面である第2の基準平面とは、同一平面上に位置する
    演算装置。
  9. 請求項1に記載の演算装置であって、
    前記複数の演算回路部の各々は、所定の平面を基準平面として、前記複数の入力線及び前記複数の出力線が配置されており、
    前記第1の演算回路部の前記基準平面である第1の基準平面と、前記第2の演算回路部の前記基準平面である第2の基準平面とは、互いに平行に配置される
    演算装置。
  10. 請求項1に記載の演算装置であって、
    前記複数の演算回路部の各々は、所定の平面を基準平面として、前記複数の入力線及び前記複数の出力線が配置されており、
    前記第1の演算回路部の前記基準平面である第1の基準平面と、前記第2の演算回路部の前記基準平面である第2の基準平面とは、互いに垂直に配置される
    演算装置。
  11. 請求項1に記載の演算装置であって、
    前記複数の演算回路部の各々は、前記複数の入力線の入力側の端部が同一直線上に位置し、前記複数の出力線の出力側の端部が同一直線上に位置しており、
    前記第1の演算回路部の前記複数の出力線の出力側の端部が並ぶ直線方向と、前記第2の演算回路部の前記複数の入力線の入力側の端部が並ぶ直線方向とが、互いに平行となるように構成される
    演算装置。
  12. 請求項1に記載の演算装置であって、
    前記第1の演算回路部の並列に配置される前記複数の出力線のピッチと、前記第2の演算回路部の並列に配置される前記複数の入力線のピッチとは、互いに異なるように構成される
    演算装置。
  13. 請求項1に記載の演算装置であって、
    前記複数の演算回路部の各々は、
    前記複数の入力線の各々に入力される前記電気信号に基づいて前記入力値に荷重値を乗算した乗算値に対応する電荷を生成して、前記積和信号として前記出力線に出力する複数の乗算部と、
    前記複数の乗算部の各々により前記出力線に出力された前記乗算値に対応する電荷を蓄積する蓄積部と、
    前記乗算値に対応する電荷が蓄積された前記蓄積部を充電する充電部と、
    前記充電部による充電の開始後、前記蓄積部により保持される電圧に対して所定の閾値により閾値判定を実行することで、前記入力値に荷重値を乗算した乗算値の和に対応するタイミングの情報を含む積和結果信号を出力する出力部と
    を有する
    演算装置。
  14. 請求項13に記載の演算装置であって、
    前記出力線として、正電荷出力線と、負電荷出力線とが配置され、
    前記複数の乗算部は、前記入力値に正の荷重値を乗算した乗算値に対応する正荷重電荷を生成して前記積和信号として前記正電荷出力線に出力する正荷重乗算部、又は前記入力値に負の荷重値を乗算した乗算値に対応する負荷重電荷を生成して前記積和信号として前記負電荷出力線に出力する負荷重乗算部の少なくとも一方を含み、
    前記蓄積部は、前記正荷重乗算部により前記正電荷出力線に出力された前記正荷重電荷を蓄積可能な正電荷蓄積部と、前記負荷重乗算部により前記負電荷出力線に出力された前記負荷重電荷を蓄積可能な負電荷蓄積部とを有し、
    前記充電部は、前記正電荷蓄積部、及び前記負電荷蓄積部を充電し、
    前記出力部は、前記正電荷蓄積部、及び前記負電荷蓄積部の各々に対して、前記所定の閾値により閾値判定を実行することで、前記積和結果信号を出力する
    演算装置。
  15. 各々が、
    所定の方向を延在方向として並列に配置され、入力値に応じた電気信号がそれぞれ入力される複数の入力線と、
    前記所定の方向とは異なる方向を延在方向として前記複数の入力線と交差するように並列に配置され、各々が、前記複数の入力線に入力される前記電気信号に基づいて生成される前記入力値に荷重値を乗算した乗算値の和を表す積和信号を出力する複数の出力線と、
    を有する複数の演算回路部と、
    前記複数の演算回路部を接続して構成されたネットワーク回路と
    を具備し、
    前記複数の演算回路部は、第1の演算回路部、及び第2の演算回路部を有し、
    前記第2の演算回路部の前記複数の入力線には、前記第1の演算回路部の前記複数の出力線から出力される前記積和信号、又は前記第1の演算回路部の前記複数の出力線から出力される前記積和信号に基づいて生成される信号が、前記入力値に応じた電気信号として入力され、
    前記第1の演算回路部の前記複数の入力線の延在方向である第1の方向と、前記第2の演算回路部の前記複数の出力線の延在方向である第2の方向とが、互いに平行となるように構成され、
    前記第1の演算回路部の並列に配置される前記複数の出力線のうち最も端に位置する2つの最端出力線の前記第2の演算回路部側の端部を第1の端部及び第2の端部とし、前記第2の演算回路部の並列に配置される前記複数の入力線のうち最も端に位置する2つの最端入力線の前記第1の演算回路部側の端部を第3の端部及び第4の端部とすると、
    前記第1の端部又は前記第2の端部の少なくとも一方の前記第1の方向における位置が、前記第3の端部の前記第1の方向における位置と、前記第4の端部の前記第1の方向における位置との間の位置となるように構成される
    又は、
    前記第3の端部又は前記第4の端部の少なくとも一方の前記第1の方向における位置が、前記第1の端部の前記第1の方向における位置と、前記第2の端部の前記第1の方向における位置との間の位置となるように構成される
    積和演算システム。
JP2019114592A 2019-06-20 2019-06-20 演算装置及び積和演算システム Pending JP2021002133A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2019114592A JP2021002133A (ja) 2019-06-20 2019-06-20 演算装置及び積和演算システム
CN202080043373.0A CN114008625A (zh) 2019-06-20 2020-05-15 算术设备以及乘积和算术系统
PCT/JP2020/019388 WO2020255599A1 (ja) 2019-06-20 2020-05-15 演算装置及び積和演算システム
US17/596,291 US20220236952A1 (en) 2019-06-20 2020-05-15 Arithmetic apparatus and multiply-accumulate system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019114592A JP2021002133A (ja) 2019-06-20 2019-06-20 演算装置及び積和演算システム

Publications (1)

Publication Number Publication Date
JP2021002133A true JP2021002133A (ja) 2021-01-07

Family

ID=73995085

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019114592A Pending JP2021002133A (ja) 2019-06-20 2019-06-20 演算装置及び積和演算システム

Country Status (4)

Country Link
US (1) US20220236952A1 (ja)
JP (1) JP2021002133A (ja)
CN (1) CN114008625A (ja)
WO (1) WO2020255599A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7356393B2 (ja) * 2020-04-10 2023-10-04 ルネサスエレクトロニクス株式会社 半導体装置
US20220027130A1 (en) * 2020-07-27 2022-01-27 Robert Bosch Gmbh Time domain ratiometric readout interfaces for analog mixed-signal in memory compute crossbar networks
US20220366229A1 (en) * 2021-05-12 2022-11-17 Taiwan Semiconductor Manufacturing Co., Ltd. Gate based resistance control units
FR3140454A1 (fr) * 2022-09-30 2024-04-05 Commissariat A L'energie Atomique Et Aux Energies Alternatives Circuit de traitement logique de données intégré dans un circuit de stockage de données

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0451382A (ja) * 1990-06-20 1992-02-19 Hitachi Ltd 情報処理装置
JPH06251176A (ja) * 1993-03-01 1994-09-09 Nippon Telegr & Teleph Corp <Ntt> 光ニューラルネットワーク
JP6876220B2 (ja) * 2016-08-19 2021-05-26 ソニーグループ株式会社 積和演算装置

Also Published As

Publication number Publication date
CN114008625A (zh) 2022-02-01
US20220236952A1 (en) 2022-07-28
WO2020255599A1 (ja) 2020-12-24

Similar Documents

Publication Publication Date Title
WO2020255599A1 (ja) 演算装置及び積和演算システム
WO2021044821A1 (ja) 演算装置及び積和演算システム
JP4620943B2 (ja) 積和演算回路及びその方法
US10896242B2 (en) Resistive memory device for matrix-vector multiplications
US8525810B2 (en) Signal processing device of touch panel
JP7447790B2 (ja) 演算装置、積和演算装置、積和演算システム、及び積和演算方法
JP2009282782A (ja) 抵抗変化型可変抵抗素子を備えた積演算装置、及び積和演算装置、これらの装置を各ニューロン素子に備えるニューラルネットワーク、並びに積演算方法
US12008338B2 (en) Multiply-accumulate operation device, multiply-accumulate operation circuit, multiply-accumulate operation system, and multiply-accumulate operation method
JP4620944B2 (ja) 積和演算回路及びその方法
CN113383341B (zh) 算术设备以及乘积-累加算术系统
Yosefi et al. Design of a mixed-signal digital CMOS fuzzy logic controller (FLC) chip using new current mode circuits
JP4579798B2 (ja) 演算装置
WO2020195867A1 (ja) 演算装置及び積和演算システム
JP3706869B2 (ja) 半導体演算回路
Wang et al. Cellular neural networks with transient chaos
WO2020195546A1 (ja) 演算装置及び積和演算システム
Youssefi et al. Efficient mixed-signal synapse multipliers for multi-layer feed-forward neural networks
US11782680B2 (en) Arithmetic logic unit, multiply-accumulate operation device, multiply-accumulate operation circuit, and multiply-accumulate operation system
US11271535B2 (en) Analog computer with variable gain
Zamanlooy et al. Efficient hardware implementation of threshold neural networks
Ibrahim Novel arithmetic implementations using cellular neural network arrays.
JP2004157757A (ja) アナログ演算回路
JP2020126427A (ja) 演算装置、積和演算システム及び設定方法
Li Neuron-MOS enhanced Differential Current-Switch Threshold Logic
Saffar A Mixed-Signal Feed-Forward Neural Network Architecture Using A High-Resolution Multiplying D/A Conversion Method