JP7283477B2 - 積和演算装置、積和演算回路、積和演算システム、及び積和演算方法 - Google Patents

積和演算装置、積和演算回路、積和演算システム、及び積和演算方法 Download PDF

Info

Publication number
JP7283477B2
JP7283477B2 JP2020530140A JP2020530140A JP7283477B2 JP 7283477 B2 JP7283477 B2 JP 7283477B2 JP 2020530140 A JP2020530140 A JP 2020530140A JP 2020530140 A JP2020530140 A JP 2020530140A JP 7283477 B2 JP7283477 B2 JP 7283477B2
Authority
JP
Japan
Prior art keywords
sum
input
value
unit
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020530140A
Other languages
English (en)
Other versions
JPWO2020013069A1 (ja
Inventor
隆 森江
正登志 山口
剛毅 岩元
権 田向
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Sony Group Corp
Original Assignee
Sony Corp
Sony Group 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, Sony Group Corp filed Critical Sony Corp
Publication of JPWO2020013069A1 publication Critical patent/JPWO2020013069A1/ja
Application granted granted Critical
Publication of JP7283477B2 publication Critical patent/JP7283477B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06GANALOGUE COMPUTERS
    • G06G7/00Devices in which the computing operation is performed by varying electric or magnetic quantities
    • G06G7/12Arrangements for performing computing operations, e.g. operational amplifiers
    • G06G7/16Arrangements for performing computing operations, e.g. operational amplifiers for multiplication or division
    • G06G7/161Arrangements for performing computing operations, e.g. operational amplifiers for multiplication or division with pulse modulation, e.g. modulation of amplitude, width, frequency, phase or form
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06GANALOGUE COMPUTERS
    • G06G7/00Devices in which the computing operation is performed by varying electric or magnetic quantities
    • G06G7/12Arrangements for performing computing operations, e.g. operational amplifiers
    • G06G7/18Arrangements for performing computing operations, e.g. operational amplifiers for integration or differentiation; for forming integrals
    • G06G7/184Arrangements for performing computing operations, e.g. operational amplifiers for integration or differentiation; for forming integrals using capacitive elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/01Modifications for accelerating switching
    • H03K19/017Modifications for accelerating switching in field-effect transistor circuits
    • H03K19/01728Modifications for accelerating switching in field-effect transistor circuits in synchronous circuits, i.e. by using clock signals
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/08Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using semiconductor devices
    • H03K19/0806Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using semiconductor devices using charge transfer devices (DTC, CCD)
    • 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

Landscapes

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

Description

本技術は、アナログ方式を用いた積和演算に適用可能な積和演算装置、積和演算回路、積和演算システム、及び積和演算方法に関する。
例えば特許文献1には、積和演算の処理をアナログ方式によって行うアナログ回路について記載されている。このアナログ回路では、複数の電気信号のそれぞれに対応した荷重が設定される。また、対応する電気信号と荷重との積に応じた電荷がそれぞれ出力され、出力された電荷がキャパシタに適宜蓄えられる。そして、電荷が蓄えられたキャパシタの電圧に基づいて積和結果を表す信号が算出される。これにより、例えばデジタル方式による処理と比べて積和演算に要する消費電力を抑制することが可能となっている(特許文献1の明細書段落[0003][0049]-[0053][0062]図4等)。
国際公開第2018/034163号
このようなアナログ方式の回路を用いることで、ニューラルネットワークモデル等を計算する装置の低消費電力化につながると期待されており、積和演算の精度を向上可能な技術が求められている。
以上のような事情に鑑み、本技術の目的は、積和演算を行うアナログ方式において、演算の精度を向上することが可能な積和演算装置、積和演算回路、積和演算システム、及び積和演算方法を提供することにある。
上記目的を達成するため、本技術の一形態に係る積和演算装置は、積和演算をアナログ回路で実行する積和演算装置であって、複数の入力線と、複数の乗算部と、蓄積部と、充電部と、出力部とを具備する。
前記複数の入力線は、入力値に応じたパルス幅を有するパルス信号が入力される。
前記複数の乗算部は、前記複数の入力線の各々に入力される前記パルス信号に基づいて、前記入力値に荷重値を乗算した乗算値に対応する電荷を生成する。
前記蓄積部は、前記複数の乗算部の各々により生成された前記乗算値に対応する電荷の和を蓄積する。
前記充電部は、前記乗算値に対応する電荷の和が蓄積された前記蓄積部を、前記蓄積部の蓄積状況に関連付けられた充電速度により充電する。
前記出力部は、前記充電部による充電の開始後、前記蓄積部により保持される電圧に対して、前記蓄積部の蓄積状況に関連付けられた閾値により閾値判定を実行することで、前記乗算値の和を表す積和信号を出力する。
この積和演算装置では、蓄積部を充電する充電速度、及び乗算値の和を表す積和信号の出力に用いられる閾値が、蓄積部の蓄積状況に関連付けられてそれぞれ設定される。これにより、積和演算の結果を表現する分解能を向上させることが可能となり、演算の精度を向上させることが可能となる。
前記複数の入力線の各々には、所定の長さの入力期間内に、前記パルス信号が入力されてもよい。この場合、前記充電部は、前記入力期間の終了後に前記充電を開始してもよい。また前記出力部は、所定の長さの出力期間内における、前記蓄積部により保持される電圧が前記閾値を過ぎて大きくなる(または小さくなる)タイミングに基づいて、前記積和信号を出力してもよい。
前記充電速度及び前記閾値は、前記蓄積部により蓄積される前記乗算値に対応する電荷の和の推定結果から求められる、前記乗算値に対応する電荷の和の有効最大値及び有効最小値に基づいて設定されてもよい。
前記充電速度及び前記閾値は、前記有効最大値から前記有効最小値までの範囲が、前記出力期間に対して、前記積和信号の出力可能な範囲となるように設定されてもよい。
前記蓄積部により保持される電圧が前記閾値を過ぎて大きくなる(または小さくなる)タイミングを、前記積和信号を算出するための算出タイミングとして、前記充電速度及び前記閾値は、前記有効最大値に対応する前記算出タイミングが前記出力期間の開始タイミングの直後のタイミングとなり、前記有効最小値に対応する前記算出タイミングが前記出力期間の終了タイミングの直前のタイミングとなるように設定されてもよい。
前記充電速度及び前記閾値は、前記出力期間の長さに基づいて設定されてもよい。
前記有効最大値及び前記有効最小値は、前記蓄積部により蓄積される前記乗算値に対応する電荷の和の理論値から求められる理論的な最大値及び理論的な最小値であってもよい。
前記出力期間の長さは、前記入力期間の長さと等しくてもよい。
前記充電部は、前記入力期間の終了タイミングで前記充電を開始してもよい。この場合、前記出力期間は、前記充電部による充電の開始タイミングで開始されてもよい。
前記複数の乗算部は、前記入力値に正の荷重値を乗算した乗算値に対応する正荷重電荷を生成する正荷重乗算部と、前記入力値に負の荷重値を乗算した乗算値に対応する負荷重電荷を生成する負荷重乗算部とを有してもよい。この場合、前記蓄積部は、前記正荷重乗算部により生成された前記正荷重電荷の和を蓄積する正電荷蓄積部と、前記負荷重乗算部により生成された前記負荷重電荷の和を蓄積する負電荷蓄積部とを有してもよい。また前記充電部は、前記正電荷蓄積部、及び前記負電荷蓄積部を、同じ充電速度によりそれぞれ充電してもよい。また前記出力部は、前記正電荷蓄積部、及び前記負電荷蓄積部の各々に対して、同じ閾値より閾値判定を実行することで、前記積和信号を出力してもよい。
前記蓄積部は、前記入力値に正の荷重値を乗算した乗算値に対応する正荷重電荷の総量と、前記入力値に負の荷重値を乗算した乗算値に対応する負荷重電荷の総量との差に対応する電荷を蓄積してもよい。
前記正荷重電荷及び負荷重電荷は、互いに同符号の電荷であってもよい。この場合、前記蓄積部は、前記正荷重電荷の和を蓄積し、前記負荷重電荷の和を放電してもよい。
前記パルス信号は、前記入力期間内の前記入力値に応じたタイミングから前記入力期間の終了タイミングまでの期間に応じたパルス幅を有してもよい。
前記積和演算装置は、さらに、1以上の出力線を具備してもよい。この場合、前記複数の乗算部は、前記複数の入力線に対応して設けられてもよい。また前記複数の乗算部の各々は、前記複数の入力線のうちの対応する入力線と、前記1以上の出力線のいずれか1つとの間に接続され前記荷重値を規定し非線形特性を有する抵抗器を含み、前記抵抗器が接続された出力線に前記乗算値に対応する電荷を出力してもよい。
前記積和演算装置は、さらに、正電荷出力線と、負電荷出力線とを具備してもよい。この場合、前記複数の乗算部は、前記複数の入力線に対応して設けられてもよい。また前記正荷重乗算部は、前記複数の入力線のうちの対応する入力線と、前記正電荷出力線との間に接続され前記正の荷重値を規定し非線形特性を有する抵抗器を含み、前記正電荷出力線に前記乗算値に対応する正荷重電荷を出力してもよい。また前記負荷重乗算部は、前記複数の入力線のうちの対応する入力線と、前記負電荷出力線との間に接続され前記負の荷重値を規定し非線形特性を有する抵抗器を含み、前記負電荷出力線に前記乗算値に対応する負荷重電荷を出力してもよい。
前記抵抗器は、固定抵抗素子、可変抵抗素子、又はサブスレッショルド領域で動作するMOSトランジスタであってもよい。
本技術の一形態に係る積和演算回路は、積和演算をアナログ方式で実行する積和演算回路であって、前記複数の入力線と、前記複数の乗算部と、前記蓄積部と、前記充電部と、前記出力部とを具備する。
本技術の一形態に係る積和演算システムは、前記複数の入力線と、複数のアナログ回路を含むネットワーク回路とを具備する。
前記複数のアナログ回路は、前記複数の乗算部と、前記蓄積部と、前記充電部と、前記出力部とを有する。
本技術の一形態に係る積和演算方法は、複数の入力線に、入力値に応じたパルス幅を有するパルス信号を入力することを含む。
前記複数の入力線の各々に入力される前記パルス信号に基づいて、前記入力値に荷重値を乗算した乗算値に対応する電荷が生成される。
蓄積部に、前記生成された前記乗算値に対応する電荷の和が蓄積される。
前記乗算値に対応する電荷の和が蓄積された前記蓄積部が、前記蓄積部の蓄積状況に関連付けられた充電速度により充電される。
前記充電の開始後、前記蓄積部により保持される電圧に対して、前記蓄積部の蓄積状況に関連付けられた閾値により閾値判定を実行することで、前記乗算値の和を表す積和信号が出力される。
以上のように、本技術によれば、積和演算を行うアナログ方式において、演算の精度を向上することが可能となる。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
第1の実施形態に係る積和演算装置を含む演算装置の構成例を示す模式図である。 積和演算装置に入力される電気信号の一例を示す模式図である。 演算装置を実現するための積和演算装置の配置例を示す模式図である。 ニューロン回路の構成例を示す模式図である。 積和演算装置の一例を示す模式的な回路図である。 図5に示す積和演算装置による積和信号の算出例を説明するための図である。 全体の積和結果を示す積和信号の算出例を示す模式図である。 充電速度及び閾値の設定について説明するための模式図である。 充電速度及び閾値の設定について説明するための模式図である。 充電速度及び閾値の設定について説明するための模式図である。 第2の実施形態に係る積和演算装置の一例を示す模式的な回路図である。 図11に示す積和演算装置による積和信号の算出例を説明するための図である。 第3の実施形態に係る積和演算装置の一例を示す模式的な回路図である。 第4の実施形態に係る積和演算装置の一例を示す模式的な回路図である。 信号値に応じたパルス幅を有するパルス信号(PWM信号)の他の例を示す模式図である。 図4に示すニューロン回路の具体的な構成例を示す回路図である。 図16に示すニューロン回路の動作例を示すタイミングチャートである。 ニューロン回路の他の構成例を示す回路図である。 図18に示すニューロン回路の動作例を示すタイミングチャートである。 図18に示すニューロン回路の他の動作例を示すタイミングチャートである。
以下、本技術に係る実施形態を、図面を参照しながら説明する。
<第1の実施形態>
[積和演算装置の構成]
図1は、本技術の第1の実施形態に係る積和演算装置を含む演算装置の構成例を示す模式図である。演算装置100は、積和演算を含む所定の演算処理を実行するアナログ方式の演算装置である。演算装置100は、数学モデルに従った演算処理を実行することが可能である。
演算装置100は、複数の信号線1と、複数の入力部2と、複数の積和演算装置3とを有する。各信号線1は、所定の方式の電気信号を伝送する線である。電気信号としては、例えばパルスのタイミングや幅等のアナログ量を用いて信号値を表すアナログ信号が用いられる。図1には電気信号が伝送される方向が、矢印を用いて模式的に図示されている。
例えば、1つの積和演算装置3には、複数の信号線1が接続される。積和演算装置3に電気信号を伝送する信号線1は、その信号線1が接続された積和演算装置3にとって、電気信号が入力される入力信号線となる。また、積和演算装置3から出力される電気信号を伝送する信号線1は、電気信号を出力する積和演算装置3にとって、電気信号が出力される出力信号線となる。本実施形態では、入力信号線は、入力線に相当する。
複数の入力部2は、入力データ4に応じた複数の電気信号をそれぞれ生成する。入力データ4は、例えば演算装置100によって実装されるニューラルネットワーク等を用いた処理の対象となるデータである。従って入力データ4に応じた複数の電気信号の各信号値は、演算装置100に対する入力値であるとも言える。
入力データ4としては、例えば演算装置100の処理対象となる画像データ、音声データ、統計データ等の任意のデータが用いられる。例えば、入力データ4として画像データが用いられる場合等には、画像データの各画素の画素値(RGB値や輝度値等)に応じた信号値となる電気信号が生成される。この他、入力データ4の種類や演算装置100による処理の内容に応じて、入力データ4に応じた電気信号が適宜生成されてよい。
積和演算装置3は、入力される電気信号に基づいて、積和演算を行うアナログ方式の積和演算回路である。積和演算は、複数の入力値の各々に荷重値を乗算して得られる複数の乗算値を足し合わせる演算である。従って積和演算は、各乗算値の和(以下積和結果と記載する)を算出する処理であるとも言える。
図1に示すように、1つの積和演算装置3には、複数の入力信号線が接続され、複数の電気信号が与えられる。本実施形態では、1つの積和演算装置3に入力される電気信号の総数をNとする。なお、各積和演算装置3に入力される電気信号の個数Nは、例えば演算処理のモデルや精度等に応じて回路ごとに適宜設定される。
積和演算装置3では、例えばi番目の入力信号線から入力される電気信号により表される信号値(入力値)xiと、信号値xiに対応する荷重値wiとの乗算値であるwi・xiが算出される。ここでiはN以下の自然数(i=1、2、・・・、N)である。乗算値の演算は、各電気信号(入力信号線)ごとに実行され、N個の乗算値が算出される。このN個の乗算値をそれぞれ足し合わせた値が積和結果(N個の乗算値の和)として算出される。従って、1つの積和演算装置3で算出される積和結果は、以下の式で表される。
Figure 0007283477000001
荷重値wiは、例えば-α≦wi≦+αの範囲に設定される。ここでαは、任意の実数値である。従って荷重値wiには、正の荷重値wiや負の荷重値wi、あるいはゼロの荷重値wi等が含まれる。
また例えば、荷重値wiが設定される範囲が規格化されてもよい。この場合、荷重値wiは、-1≦wi≦1の範囲に設定される。これにより、例えば積和結果の最大値や最小値等を調整することが可能となり、所望の精度で積和演算を実行することが可能となる。
ニューラルネットワーク等では、荷重値wiを+α及び-αのどちらかに設定するバイナリコネクトと呼ばれる手法を用いることが可能である。バイナリコネクトは、例えば深層ニューラルネットワーク(多層ニューラルネットワーク)を用いた画像認識等の分野で用いることで、認識精度等を劣化させることなく、荷重値wiの設定を簡略化することが可能である。
上記したように、バイナリコネクトでは、荷重値wiがバイナリ値(±α)に2値化される。従って例えば、荷重値wiの正負を切り替えることで、所望の荷重値wiを容易に設定することが可能である。また、2値化された荷重値wiを規格化して、荷重値wiを±1に設定してもよい。この他、荷重値wiの設定範囲や値等は限定されず、例えば所望の処理精度が実現されるように適宜設定されてよい。
なお、積和演算の対象となる信号値xiは、例えば入力部2の各々から出力された電気信号により表される値や、各積和演算装置3から出力された積和結果である。従って、各入力部2及び積和演算装置3は、信号値xiを出力する信号源として機能するとも言える。
図1に示す例では、1つの信号源(入力部2、積和演算装置3)から、単一の電気信号(単一の信号値xi)が出力される。従って、1つの信号源の出力側に接続された複数の信号線1には、それぞれ同じ電気信号が入力される。また、1つの信号源と、その信号源から出力された電気信号が入力される積和演算装置3とが、単一の入力信号線で接続される。
従って例えば、積和演算装置3にM個の信号源が接続される場合には、当該積和演算装置3には、M個の入力信号線が接続されることになる。そして、積和演算装置3に入力される電気信号の総数は、Mとなる。なお、図1に示す演算装置100では、N=Mとなっている。なお、1つの信号源から、正負に対応した1対の電気信号(1対の信号値xi +、xi -)が出力される構成もあり得る。
図1に示すように、演算装置100は、複数の階層のそれぞれに、複数の積和演算装置3が設けられた階層構造を有する。積和演算装置3の層構造を構成することで、例えば多層パーセプトロン型のニューラルネットワーク等が構築される。例えば複数の積和演算装置3を接続してネットワーク回路とすることで、積和演算システムを構築することが可能となる。各階層に設けられる積和演算装置3の数や、階層の数等は、例えば所望の処理が実行可能となるように適宜設計される。以下では、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を接続する方法等は限定されず、例えば所望の処理が可能となるように、複数の積和演算装置3が適宜接続されてもよい。例えば、各積和演算装置3が階層構造とは異なる他の構造を構成するように接続される場合であっても、本技術は適用可能である。
上記ニューラルネットワークモデルでは、各積和演算装置3の積和結果に対して、活性化関数を用いて非線形変換を行い、その変換結果を上位層に入力するといった処理が実行される。
演算装置100では、例えば電気信号に対して活性化関数による非線形変換を行う関数変換回路5等が用いられる。関数変換回路5は、例えば下位層と上位層との間に設けられ、入力する電気信号の信号値を適宜変換して、変換結果に応じた電気信号を出力する回路である。関数変換回路5は、例えば信号線1ごとに設けられる。関数変換回路5の数や配置等は、例えば演算装置100に実装される数学モデル等に応じて適宜設定される。
活性化関数としては、例えばReLU関数(ランプ関数)等が用いられる。ReLU関数は、例えば信号値xiが0以上である場合には、信号値xiをそのまま出力し、それ以外の場合には0を出力する。
図2は、積和演算装置3に入力される電気信号の一例を示す模式図である。図2には、1つの積和演算装置3に入力される複数の電気信号の波形を表すグラフが模式的に図示されている。グラフの横軸は時間軸であり、縦軸は電気信号の電圧である。なお各グラフの時間軸は共通である。
本実施形態では、パルス幅変調(PWM:Pulse Width Modulation)方式の電気信号が用いられる。PWM方式は、例えばパルス波形のパルス幅τiを用いて信号値xiを表す方式である。すなわち、PWM方式では、電気信号のパルス幅τiは、信号値xiに応じた長さとなる。典型的には、パルス幅τiが長いほど、値の大きい信号値xiを表す。
また電気信号は、所定の入力期間Tの間に、積和演算装置3に入力される。より詳しくは、電気信号のパルス波形が、入力期間Tに収まるように、各電気信号が積和演算装置3に入力される。従って、電気信号のパルス幅の最大値は、入力期間Tと同様となる。なお、入力期間Tに収まる範囲であれば、各パルス波形(電気信号)が入力されるタイミング等は限定されない。
PWM方式では、例えばパルス幅τiと入力期間Tとのデューティ比Ri(=τi/T)を用いて、信号値xiを規格化することが可能である。すなわち、規格化された信号値xiは、信号値xi=Riと表される。なお信号値xiとパルス幅τiとを対応付ける方法等は限定されず、例えば所望の精度で演算処理等が可能となるように、信号値xiを表すパルス幅τiが適宜設定されてよい。以下では、各電気信号により表される信号値xiが0以上1以下の変数であるとして説明を行う。
本実施形態に係る積和演算装置3をPWM方式の積和演算装置3と言うことも可能である。本実施形態では、PWM方式の積和演算装置3を用いた時間軸アナログ積和演算が実行可能である。
図3は、図1に示す演算装置100を実現するための積和演算装置3の配置例を示す模式図である。図3では、1つの階層に設けられる複数の積和演算装置3が模式的に図示されている。
積和演算装置3は、1対の出力線7と、複数のシナプス回路8と、ニューロン回路9とを有する。図3に示すように、1つの積和演算装置3は、所定の方向(図中の縦方向)に延在するように構成される。この縦方向に延在する積和演算装置3が、横方向に複数並んで配置されることで、1つの階層が構成される。
1対の出力線7は、積和演算装置3の延在方向に沿って互いに離間して配置される。1対の出力線7は、正電荷出力線7aと、負電荷出力線7bとを有する。正電荷出力線7a及び負電荷出力線7bの各々は、複数のシナプス回路8を経由してニューロン回路9に接続される。
シナプス回路8は、電気信号により表される信号値xiと荷重値wiとの乗算値wi・xiを算出する。具体的には、乗算値に対応する電荷(電流)を正電荷出力線7a及び負電荷出力線7bのどちらか一方に出力する。
後述するように、シナプス回路8には正の荷重値wi +及び負の荷重値wi -のどちらか一方が設定される。例えば正の荷重値wi +との乗算値に対応する正荷重電荷は、正電荷出力線7aに出力される。また例えば負の荷重値wi -との乗算値に対応する負荷重電荷は、負電荷出力線7bに出力される。
なおシナプス回路8では、乗算値に対応する電荷として、荷重値wiの正負に係らず同符号の電荷(例えば正の電荷)が出力される。すなわち、正荷重電荷及び負荷重電荷は、互いに同符号の電荷となる。
このように、シナプス回路8は、乗算結果に対応する電荷を荷重値wiの符号に応じてそれぞれ別の出力線7a又は7bに出力するように構成される。シナプス回路8の具体的な構成については、後に詳しく説明する。本実施形態において、シナプス回路8は、乗算部に相当する。
本実施形態では、1つのシナプス回路8に対して、単一の入力信号線1aと、1対の出力線7とが接続される。すなわち1つのシナプス回路8には、単一の電気信号が入力され、入力された電気信号に基づいて算出された乗算値に対応する電荷が、いずれか一方の出力線7a又は7bに出力される。このように、シナプス回路8は、単一の入力信号線1aと1対の出力線7(正電荷出力線7a及び負電荷出力線7b)とに接続された1入力2出力の回路となる。
1つの積和演算装置3では、複数のシナプス回路8が、1対の出力線7に沿って配置される。各シナプス回路8は、正電荷出力線7a(負電荷出力線7b)に対してそれぞれ並列に接続される。以下では、最も下流側(ニューロン回路9に接続される側)に配置されるシナプス回路8を1番目のシナプス回路とする。
図3に示すように、複数の入力信号線1aは、複数の積和演算装置3の各々が有する1対の出力線7に対して交差するようにそれぞれ配置される。典型的には、入力信号線1aは各出力線7と直交するように設けられる。すなわち、演算装置100は、入力信号線1aと出力線7とが交差したクロスバー構成を有する。クロスバー構成を用いることで、例えば積和演算装置3等を高密度に集積化することが可能となる。
また演算装置100では、j番目の入力信号線1aに対して、各積和演算装置3に含まれるj番目のシナプス回路8がそれぞれ並列に接続される。従って、同じ入力信号線1aに接続されるシナプス回路8には、互いに同様の電気信号が入力される。これにより、図1に例示するような、下位層に含まれる1つの信号源が、上位層に含まれる複数の積和演算装置3に接続される構成を実装することが可能である。
なお図3に示す例では、各入力信号線1aに電気信号を入力する信号源として、下位層に含まれる積和演算装置3(プレニューロン)が模式的に図示されている。これに限定されず、例えば信号源として、図1に例示するような入力部2が用いられる場合にも、クロスバー構成を用いることが可能である。
このように、演算装置100では、複数の積和演算装置3が、複数の入力信号線1aの各々に並列に接続される。これにより、例えば、各積和演算装置3(各シナプス回路8)に対して並列に電気信号を入力することが可能となり、演算処理の高速化を図ることが可能である。この結果、優れた演算性能を発揮することが可能となる。
ニューロン回路9は、各シナプス回路8で算出された乗算値に基づいて、(数1)式に示す積和結果を算出する。具体的には、1対の出力線7を介して入力された電荷に基づいて、積和結果を表す電気信号を出力する。
図4は、ニューロン回路9の構成例を示す模式図である。図4には、1対の出力線7と、単一の出力信号線1bとに接続された2入力1出力のニューロン回路9が示されている。なお、ニューロン回路9として2入力2出力の回路等が用いられる場合もあり得る。
ニューロン回路9は、蓄積部11と、出力部12とを有する。蓄積部11は、複数のシナプス回路8により1対の出力線7に出力された電荷の和を蓄積する。蓄積部11は、2つのキャパシタ13a及び13bを有する。キャパシタ13aは、正電荷出力線7aとGNDとの間に接続される。またキャパシタ13bは、負電荷出力線7bとGNDとの間に接続される。従って各キャパシタ13a及び13bには、正電荷出力線7a及び負電荷出力線7bから流れ込む電荷がそれぞれ蓄積される。
例えば電気信号の入力期間Tが経過したタイミングでは、キャパシタ13aに蓄積された電荷は、信号値xiと正の荷重値wi +との乗算値に対応する正荷重電荷の総和となる。また同様に、キャパシタ13bに蓄積された電荷は、信号値xiと負の荷重値wi -との乗算値に対応する負荷重電荷の総和となる。
例えばキャパシタ13aに正荷重電荷が蓄積されると、GNDを基準とする正電荷出力線7aの電位が上昇する。従って、正電荷出力線7aの電位は、正荷重電荷の総和に応じた値となる。なお、正電荷出力線7aの電位は、キャパシタ13aにより保持される電圧に相当する。
同様に、キャパシタ13bに負荷重電荷が蓄積されると、GNDを基準とする負電荷出力線7bの電位が上昇する。従って、負電荷出力線7bの電位は、負荷重電荷の総和に応じた値となる。なお、負電荷出力線7bの電位は、キャパシタ13bにより保持される電圧に相当する。
出力部12は、蓄積部11に蓄積された電荷に基づいて、乗算値wi・xiの和を表す積和信号を出力する。ここで積和信号とは、例えば正負合わせたすべての荷重値wiと信号値xiとの乗算値の和である全体の積和結果を表す信号である。例えば、上記の(数1)式で表される積和結果は、以下のように書き表すことが可能である。
Figure 0007283477000002
ここで、N+及びN-は、それぞれ正の荷重値wi +の総数及び負の荷重値wi -の総数である。このように、全体の積和結果は、正の荷重値wi +との乗算値wi+・xiの総和である正荷重電荷の積和結果と、負の荷重値wi -との乗算値|wi -|・xiの総和である負荷重電荷の積和結果との差分として算出可能である。
出力部12は、積和信号として、例えば全体の積和結果((数2)式の左辺)を表す1つの信号を生成する。なお、これに限定されず、例えば積和信号として、正荷重電荷の積和結果を表す正の積和信号と、負荷重電荷の積和結果を表す負の積和信号との2つの信号を生成するように、出力部12が構成されてもよい。
例えば出力部12は、正電荷出力線7aの電位(キャパシタ13aに保持された電圧)に基づいて、正荷重電荷の積和結果を算出する。また、出力部12は、負電荷出力線7bの電位(キャパシタ13bに保持された電圧)に基づいて、負荷重電荷の積和結果を算出する。例えば、図4に示す例では、これら正負の積和結果の差分から全体の積和結果が算出されて、1つの積和信号として出力される。また例えば、正負の積和結果から、正負の積和信号がそれぞれ出力されてもよい。
蓄積部11に蓄積された電荷に基づいて、積和信号を生成する方法は限定されない。一例として、1つのキャパシタ13に蓄積された電荷を検出する方法について説明する。PWM方式の電気信号が用いられる場合、乗算値に対応する電荷は、入力期間Tの間にキャパシタ13に蓄積される。すなわち、入力期間Tの前後では、乗算値に対応する電荷の蓄積は生じない。
例えば入力期間Tの終了後に、所定の充電速度でキャパシタ13を充電する。この時、比較器(コンパレータ等)を用いて、キャパシタ13が接続された出力線の電位が所定の閾値電位に到達するタイミングを検出する。例えば充電開始時の電荷が多いほど、閾値電位に達するタイミングが早くなる。従ってタイミングに基づいて、入力期間Tの間に蓄積された電荷(積和結果)を表すことが可能となる。なお充電速度は、例えば単位時間当たりの充電量で表現することが可能であり、充電率と言うことも可能である。
なお、この閾値判定は、充電によりキャパシタ13に保持される電圧を増加させ、閾値電圧に到達するタイミングを検出することに相当する。
このように、入力期間Tの終了後に蓄積部11(キャパシタ13a及び13b)を充電することで、積和結果を表すタイミングが検出される。この検出結果に基づいて、正荷重電荷の積和信号や負荷重電荷の積和信号、あるいは全体の積和信号が適宜生成される。この他にも、例えば入力期間Tの後に、キャパシタ13の電位を直接読み出して、各積和結果を算出することも可能である。
図5は、本実施形態に係る積和演算装置の一例を示す模式的な回路図である。積和演算装置3は、複数の入力信号線1aに対して、直交する方向に延在して設けられる。すなわち図5に示す例では、クロスバー構成が採用されている。
積和演算装置3は、1対の出力線(正電荷出力線7a、負電荷出力線7b)と、複数のシナプス回路(複数の乗算部)8と、ニューロン回路9とを有する。図5に示す例では、ニューロン回路9は、蓄積部11、充電部15、出力部12、及びスイッチ16a~16dを含んでいる。
複数の入力信号線1aには、入力信号in1~in6として、信号値xiに応じたパルス幅を有するパルス信号(PWM信号)が入力される。図5に示す例では、6本の入力信号線1aが図示されているが、入力信号線1aの数は限定されない。入力信号in1~in6は、所定の長さを有する入力期間T内に入力される(図6参照)。
正電荷出力線7aは、信号値xiに正の荷重値wi +を乗算した乗算値wi+・xiに対応する正荷重電荷を出力する。負電荷出力線7bは、信号値xiに負の荷重値wi -を乗算した乗算値|wi -|・xiに対応する負荷重電荷を出力する。本実施形態において、1対の出力線7は、1以上の出力線に相当する。
複数のシナプス回路8は、複数の入力信号線1aに対応してそれぞれ設けられる。本実施形態では、1つの入力信号線1aに対して、1つのシナプス回路8が設けられる。複数のシナプス回路8の各々は、複数の入力信号線1aのうちの対応する入力信号線1aと、正電荷出力線7a及び負電荷出力線7bのいずれか1つとの間に接続される抵抗器17を含む。この抵抗器17は、非線形特性を有してもよく、電流の逆流防止機能を有してもよい。そして抵抗器17が接続された出力線7a(又は7b)に、乗算値wi+・xi(又は|wi -|・xi)に対応する電荷を出力する。
例えば、各シナプス回路8において、信号値xiに対して正の荷重値wi +を乗算したい場合には、入力信号線1aと正電荷出力線7aとの間に抵抗器17を接続し、正電荷出力線7aに、正荷重電荷を出力させる。図5に示す例では、入力信号in1 、in3 、in6 が入力されるシナプス回路8が、正荷重電荷を生成する正荷重乗算部として構成されたシナプス回路8aとなる。シナプス回路8aは、正荷重が設定された乗算部ともいえる。
各シナプス回路8において、信号値xiに対して負の荷重値wi -を乗算したい場合には、入力信号線1aと負電荷出力線7bとの間に抵抗器17を接続し、負電荷出力線7bに、負荷重電荷を出力させる。図5に示す例では、入力信号in2 、in4 、in5 が入力されるシナプス回路8が、負荷重電荷を生成する負荷重乗算部として構成されたシナプス回路8bとなる。シナプス回路8bは、負荷重が設定された乗算部ともいえる。
なお抵抗器17は、設定したい荷重値wiに応じた抵抗値を有するものが用いられる。すなわち抵抗器17は、積和演算を積和演算装置3で実行する演算装置100において、荷重値wiを規定する素子として機能する。
抵抗器17としては、例えば、固定抵抗素子、可変抵抗素子、又はサブスレッショルド領域で動作するMOSトランジスタ等が用いられる。例えば、抵抗器17として、サブスレッショルド領域で動作するMOSトランジスタを用いることで、低消費電力化を実現することが可能となる。もちろん、他の任意の抵抗器が用いられてもよい。
蓄積部11は、複数のシナプス回路8の各々により生成された、乗算値wi・xiに対応する電荷の和を蓄積する。本実施形態では、蓄積部11として、2つのキャパシタ13a及び13bが設けられる。
キャパシタ13aは、スイッチ16bを介して正電荷出力線7aに接続され、シナプス回路8aにより生成された正荷重電荷の和を蓄積する。本実施形態において、キャパシタ13aは、正荷重蓄積部として機能する。
キャパシタ13bは、スイッチ16cを介して負電荷出力線7bに接続され、シナプス回路8bにより生成された負荷重電荷の和を蓄積する。本実施形態において、キャパシタ13bは、負荷重蓄積部として機能する。
充電部15は、乗算値wi・xiに対応する電荷の和が蓄積された蓄積部11を、所定の充電速度により充電する。本実施形態では、充電部15として、2つの電流源18a及び18bが設けられる。なお充電は、入力期間Tの終了後に実行される。
電流源18aは、スイッチ16aを介して、キャパシタ13aの正電荷出力線7aに接続されている側(GNDの反対側)に接続される。電流源18bは、スイッチ16dを介して、キャパシタ13bの負電荷出力線7bに接続されている側(GNDの反対側)に接続される。
本実施形態では、電流源18a及び18bにより、キャパシタ13a及び13bが同じ充電速度で充電される。これにより正電荷出力線7aの電位(キャパシタ13aに保持された電圧)V+、及び負電荷出力線7bの電位(キャパシタ13bに保持された電圧)V-が、それぞれ増加される。電流源18の具体的な構成は限定されず、任意に設計されてよい。
出力部12は、充電部15による充電の開始後、蓄積部11により保持される電圧に対して、所定の閾値により閾値判定を実行することで、乗算値wi・xiの和を表す積和信号を出力する。本実施形態では、出力部12として、2つのコンパレータ20a及びコンパレータ20bと、信号生成部21とが設けられる。
コンパレータ20aは、キャパシタ13aにより保持される電圧が、所定の閾値θ1よりも大きくなるタイミングを検出する。なおキャパシタ13aにより保持される電圧の大きさは、キャパシタ13aに蓄積された正荷重電荷の総量及び充電量(充電速度×時間)により定まる。
コンパレータ20bは、キャパシタ13bにより保持される電圧が、所定の閾値θ2よりも大きくなるタイミングを検出する。なおキャパシタ13bにより保持される電圧の大きさは、キャパシタ13bに蓄積された負荷重電荷の総量及び充電量(充電速度×時間)により定まる。
なお本実施形態では、キャパシタ13a及び13bの各々に対して、同じ閾値より閾値判定を実行することで、積和信号が出力される。すなわち閾値θ1=閾値θ2に設定される。
信号生成部21は、コンパレータ20aにより検出されたタイミング、及びコンパレータ20bにより検出されたタイミングに基づいて、乗算値wi・xiの和を表す積和信号を出力する。すなわち信号生成部21は、キャパシタ13aにより保持される電圧が閾値θ1に達したタイミングと、キャパシタ13bにより保持される電圧が閾値θ2(=θ1)に達したタイミングとに基づいて、積和信号を出力する。
本実施形態では、積和信号として、パルス幅が変調されたパルス信号である、PMW信号が出力される。信号生成部21の具体的な回路構成等は限定されず、任意に設計されてよい。
図6及び図7は、図5に示す積和演算装置3による積和信号の算出例を説明するための図である。本実施形態では、キャパシタ13aに蓄積された正荷重電荷に基づいた正荷重電荷の積和結果と、キャパシタ13bに蓄積された負荷重電荷に基づいた負荷重電荷の積和結果とに基づいて、正負を含めた全体の積和結果を表す信号が算出される。
正荷重電荷の積和結果、及び負荷重電荷の積和結果の算出は、互いに等しい処理となる。まず図6を参照しながら、正負の区別なく、キャパシタ13に蓄積された電荷に基づいた積和結果の算出方法(積和演算方法)を説明する。
図6の中で記載されているパラメータを説明する。「t」は時間である。「T」は入力期間及び出力期間の各々を表す。「tn 」は入力期間Tの終了タイミングであり、「tm 」は出力期間Tの終了タイミングである。
本実施形態では、入力期間Tの長さと、出力期間Tの長さとが、互いに等しく設定される。また入力期間Tの終了タイミングtnから出力期間Tが開始される。従って、入力期間Tの終了タイミングtnは、出力期間Tの開始タイミングに相当する。
「α」は、充電部15(電流源18)による充電に応じた電位上昇の傾きであり、充電速度に相当する。「θ」は、出力部12(コンパレータ20)による閾値判定に用いられる閾値である。
「Si(t)」は、i番目の入力信号線1aに入力される入力信号(PWM信号)である。「τi 」は、入力信号Si(t)のパルス幅である。「Pi(t)」は、図5に示す各シナプス回路8における、内部状態(電位)の変化量である。「wi 」は、荷重値であり、図5に示す抵抗器17の抵抗値により規定される。
「Vn(t)」は、「Pi(t)」の総和であり、キャパシタ13に蓄積される電荷の総量に相当する。「Sn(t)」は、積和結果を表す積和信号(PWM信号)である。「τn」は、出力される積和信号のパルス幅である。具体的には、「τn」は、出力期間T内における、キャパシタ13により保持される電圧が閾値θより大きくなるタイミングから、出力期間Tの終了タイミングtmまでの長さに応じた値となる。
本実施例では、スイッチ16b及び16cを備えており、特に、このスイッチで出力線を切り離すことで、低消費電力化と充電精度の向上が可能となっている。
ここで以下の式に示すように、入力値(信号値)xiは、入力信号Si(t)のパルス幅τiと入力期間Tとのデューティ比Ri(=τi/T)で与えられる。
Figure 0007283477000003
図5に示すシナプス回路8により、信号値xiに荷重値wiを乗算した乗算値に対応する電荷が生成される。具体的には、抵抗器17の抵抗により、一定の傾きwiで内部状態(電位)が増加される。
そして、入力期間Tの終了タイミングtnにおける各シナプス回路8の内部電位の変化量Pi(tn )は、以下の式で与えられる。なお、入力信号Si(t)のハイレベルの値は1とする。
Figure 0007283477000004
キャパシタ13に蓄積される電荷の総量Vn(tn )は、Pi(tn )の総和となるので、以下の式で与えられる。
Figure 0007283477000005
入力期間Tの終了タイミングtnで、図5に示すスイッチ16a及び16dがONに切替えられ、またスイッチ16b及び16cがOFFに切替えられる。そして、入力期間Tの終了タイミングtnで、充電部15(電流源18)による充電が開始される。従って本実施形態では、充電部15による充電の開始タイミングで、出力期間Tが開始される。すなわち入力期間Tの終了タイミングtnで、充電及び出力期間が同時に開始される。
電流源18により、入力期間Tの終了タイミングtnから、各シナプス回路8の内部電位を、傾き(充電速度)αで増加させる。そして出力期間T内における、キャパシタ13により保持される電圧が閾値θより大きくなるタイミングから、出力期間Tの終了タイミングtmまでの長さに応じたパルス幅τnを有する積和信号(PWM信号)が生成される。
積和信号のパルス幅τnと出力期間Tとのデューティ比をRn(=τn/T)とすると、Rnは、以下の式で与えられる。なお、閾値θは、電荷の総量Vn(tn )以上であるとする。
Figure 0007283477000006
従って、信号値xiに荷重値wiを乗算した乗算値wi・xiを足し合わせた積和結果は、以下の式で与えられる。
Figure 0007283477000007
すなわち積和結果は、αRn=α・(τn/T)に、充電速度α、閾値θ、及び出力期間Tにより定められる定数を減算した値となる。このように、所定の長さ出力期間Tにおける、蓄積部11により保持された電圧が閾値θより大きくなるタイミングに基づいて、積和結果を表す積和信号を出力することが可能となる。
図7は、正荷重電荷及び負荷重電荷の両方の積和結果をふまえた全体の積和結果を示す積和信号の算出例を示す模式図である。図7では、正荷重電荷の積和結果を表す積和信号を「Sn +(t)」とし、そのパルス幅を「τn +」とする。また負荷重電荷の積和結果を表す積和信号を「Sn -(t)」とし、そのパルス幅を「τn -」とする。さらに、全体の積和結果を表す積和信号を「Sn(t)」とし、そのパルス幅を「τn」とする。
入力期間Tの終了タイミングtnにおける、キャパシタ13aに蓄積される正荷重電荷の総量Vn +(tn )は、以下の式で与えられる。なおwi +は正の荷重値である。
Figure 0007283477000008
入力期間Tの終了タイミングtnにおける、キャパシタ13bに蓄積される負荷重電荷の総量Vn -(tn )は、以下の式で与えられる。なおwi -は負の荷重値である。
Figure 0007283477000009
正の積和信号Sn +(t)のデューティ比をRn +(=τn +/T)とすると、信号値xiに正の荷重値wi +を乗算した乗算値wi+・xiを足し合わせた正の積和結果は、以下の式で与えられる。なお、閾値θは、正荷重電荷の総量Vn +(tn )以上であるとする。
Figure 0007283477000010
負の積和信号Sn -(t)のデューティ比をRn -(=τn -/T)とすると、入力値xiに負の荷重値wi -を乗算した乗算値|wi -|・xiを足し合わせた負の積和結果は、以下の式で与えられる。なお、充電速度α及び閾値θは、(数10)式で用いらる値と等しい。また閾値θは、負荷重電荷の総量Vn -(tn )以上であるとする。
Figure 0007283477000011
従って、上記した(数2)式を用いると、全体の積和結果は以下の式で与えられる。
Figure 0007283477000012
すなわち全体の積和結果は、充電速度α、積和信号Sn +(t)のパルス幅τn +、積和信号Sn -(t)のパルス幅τn -、及び出力期間Tにより求められる。すなわち、コンパレータ20aにより検出されるタイミング、及びコンパレータ20bにより検出されるタイミングに基づいて、容易に積和結果を算出することが可能となる。
そして図7に示すように、全体の積和結果を表す積和信号として、パルス幅「τn」を有する積和信号「Sn(t)」を容易に出力することが可能となる。
ここで発明者は、積和結果を表す積和信号Sn(t)を生成するための充電速度α及び閾値θについて検討した。そして、充電速度α及び閾値θの設定について、新たな技術を考案した。以下、詳しく説明する。
図8~図10は、充電速度α及び閾値θの設定について説明するための模式図である。上記したように、正荷重電荷及び負荷重電荷のいずれにおいても、乗算値wi・xiに対応する電荷の和が蓄積されたキャパシタ13が充電することで、電荷の総量が出力期間Tにおける閾値θより大きくなるタイミングに変換される。従って、出力期間T内において、キャパシタ13に蓄積された電荷の総量が、高い分解能にて、タイミングにより検出されることが望ましい。
ここで発明者は、キャパシタ13の蓄積状況に着目して、充電速度α及び閾値θを設定することを、新たに考案した。すなわち、積和結果を表す積和信号Sn(t)を生成するための充電速度α及び閾値θとして、キャパシタ13の蓄積状況に関連付けられた充電速度α及び閾値θを用いることを、新たに考案した。
なお本開示において、キャパシタ13の蓄積状況とは、そのキャパシタ13にどの程度の電荷が蓄積されるかといった情報を含み、例えばキャパシタ13に蓄積される電荷の推定結果やシミュレーション結果を含む。例えばこれらの推定結果やシミュレーション結果に関連付けられた充電速度α及び閾値θを用いることで、積和演算の精度を向上させることが可能となる。
例えば、積和演算装置3を用いた演算装置100を用いて、ニューラルネットワークを構築する際には、学習データを用いた学習処理が実行される。そして、各シナプス回路8に設定される荷重が設定される。学習処理の方法は限定されず、例えばコンピュータシミュレーションを利用した方法等、任意の方法が用いられてもよい。
例えば、学習処理により各荷重が設定された後(例えば所定の抵抗器が所定の位置に配置された後)に、キャパシタ13の蓄積状況として、キャパシタ13に蓄積される荷重の総量が推定される。
その推定結果に基づいて、蓄積される荷重の総量に対して、積和信号として算出する対象となる有効範囲を決定する。荷重の総量の推定方法は限定されず、例えばコンピュータシミュレーションを利用した方法、確率分布を用いた方法、積和演算装置3へサンプルデータを複数入力した結果に基づいた推定方法等、任意の方法が用いられてよい。なお電荷の総量を推定した推定結果を、電荷の総量をシミュレーションしたシミュレーション結果と言うことも可能である。
例えば、所定のキャパシタ13に蓄積される電荷の総量の推定結果として、図8Aに示すような分布が得られたとする。この場合に、例えば分布の最小値minから最大値maxまでの範囲を、積和信号として算出する対象となる有効範囲Eとして設定する。
以下、有効範囲Eの最小値min及び最大値maxを、有効最小値min、及び有効最大値maxと記載する。有効最小値min、及び有効最大値maxは、蓄積部11により蓄積される乗算値wi・xiに対応する電荷の推定結果から求められるパラメータとなる。
例えば、充電速度α及び閾値θは、有効最大値maxから有効最小値minまでの有効範囲Eに基づいて設定される。具体的には、充電速度α及び閾値θは、有効範囲Eが、出力期間Tに対して、積和信号の出力可能な範囲となるように設定される。すなわち有効範囲Eに含まれる電荷の総量が、充電により、出力期間T内にて閾値θより大きくなるように、充電速度α及び閾値θが設定される。
例えば、図9A及びBに示すように、蓄積される電荷の総量が有効最大値maxである場合に、積和信号を算出するための算出タイミング(保持電圧が閾値θより大きくなるタイミング)が、出力期間Tの開始タイミングtnの直後のタイミングとなる。また蓄積される電荷の総量が有効最小値minである場合に、積和信号を算出するための算出タイミングが、出力期間Tの終了タイミングの直前のタイミングとなる。このような条件を満たすように、充電速度α及び閾値θが設定される。
例えば、有効最大値maxよりも若干大きい値を閾値θとして設定する。そして、有効最大値maxに対応する算出タイミングが、出力期間Tの開始タイミングtnからパルス幅の最小単位分だけ後のタイミングとなるように、また、有効最小値minに対応する算出タイミングが、出力期間Tの終了タイミングからパルス幅の最小単位分だけ前のタイミングとなるように、充電速度αが設定される。
この場合、図9A及びBに示すように、有効最大値maxに対応する積和信号として、出力期間Tと比べてパルス幅の最小単位分だけパルス幅が小さいPWM信号が算出される。また有効最小値minに対応する積和信号として、パルス幅の最小単位分だけのパルス幅を有するPWM信号が算出される。なお算出タイミングを、出力パルスタイミングと言うことも可能である。
例えば、このように、有効最小値min、有効最大値max、及び出力期間Tに基づいて、充電速度α及び閾値θを設定する。これにより出力期間Tのほぼ全域を用いて、有効範囲Eに含まれる電荷の総量を、非常に高い分解能にて、タイミングにより検出することが可能となる。すなわち本実施形態では、充電速度α及び閾値θを適宜設定することで、算出したい有効範囲Eを、出力期間Tの全域に拡張することが可能となる。このことは、積和演算の出力結果の分布を、有効に出力期間Tに対応させることに等しい。これにより、積和結果を非常に高い精度で算出することが可能となる。
なお演算結果の出力結果の分布を、どのように出力期間Tに対応させるかは、限定されず任意に設定されてよい。
また、推定結果に基づいた有効範囲Eの設定方法も限定されない。例えば図8Bに示すように、推定された電荷の総量の分布の最小値よりも大きな値が有効最小値minとして設定されてもよい。また推定された電荷の総量の分布の最大値よりも小さい値が有効最大値maxとして設定されてもよい。
この場合、例えば電荷の総量が有効最小値minよりも小さい場合には、積和結果として0が出力される。また電荷の総量が有効最大値maxよりも大きい場合には、積和結果として、有効最大値maxに対応する積和結果が出力される。もちろんこれに限定される訳ではない。
有効範囲Eは、例えばニューラルネットワークを用いた認識処理等において、所望の処理精度が実現されるように、任意に設定されてよい。例えば推定結果として、正規分布(ガウス分布)等の確率分布を算出し、その1σ、2σ、3σ等の範囲を基準として、有効範囲Eを設定するといったことも可能である。
図5に例示した積和演算装置3では、電流源18a及び18bにより、キャパシタ13a及び13bが同じ充電速度で充電される。またキャパシタ13a及び13bの各々に対して、同じ閾値より閾値判定が実行される。すなわち同じ充電速度α及び閾値θを用いて、正荷重電荷の積和結果と負荷重電荷の積和結果がそれぞれ算出される。
例えば図10に示すように、キャパシタ13aに蓄積される正荷重電荷の総量の推定結果に基づいて、正荷重電荷についての有効範囲E+(有効最小値min+ ~有効最大値max+)が設定される。またキャパシタ13bに蓄積される負荷重電荷の総量の推定結果に基づいて、負荷重電荷についての有効範囲E-(有効最小値min-~有効最大値max-)が設定される。
有効範囲E+ 及び有効範囲E-に含まれる電荷の総量が、高い分解能で検出されるように、有効範囲Eが設定される。具体例としては、有効範囲E+の有効最小値min+と、有効範囲E-の有効最小値min-とを比較して、小さい方の値を有効最小値minとする。また有効範囲E+の有効最大値max+と、有効範囲E-の有効最大値max-とを比較して、大きい方の値を有効最大値maxとする。
これら有効最小値min及び有効最大値maxで規定される有効範囲Eに基づいて、充電速度α及び閾値θを設定する。これにより、全体の積和結果を非常に高い精度で算出することが可能となる。もちろん、この方法に限定される訳ではない。
また、図1に例示するような構成において、典型的には、同じ階層に含まれる複数の積和演算装置3について、同じ充電速度α及び閾値θが共通して用いられる。これにより、各積和演算装置3から出力される積和信号(PWM信号)により表される出力が、同じ基準に則った値として、次の層に出力される。また、各積和演算装置3に対する設計を簡素化することも可能となる。
共通の充電速度α及び閾値θの設定としては、例えば、各積和演算装置において、蓄積部11に蓄積される電荷の総量に対して、有効範囲Eを設定する。そして、全ての有効範囲Eを包含するように、共通の有効範囲が設定される。この全体の有効範囲に基づいて、共有の充電速度α及び閾値θを設定することが可能となる。もちろん、この方法に限定されず、任意の方法が用いられてよい。
なお、共通の充電速度α及び閾値θが用いられる場合に限定されず、各積和演算装置3にて、最適な充電速度α及び閾値θがそれぞれ設定されてもよい。すなわち各積和演算装置3にて、有効範囲Eがそれぞれされ、充電速度α及び閾値θが最適化されてもよい。この場合でも、例えば学習処理を適性に実行することで、例えば所望の処理精度を実現することが可能である。
積和演算装置3に対する充電速度α及び閾値θの設定は、例え積和演算装置3を構成する際に、予め最適化された充電速度α及び閾値θが、固定値として設定される。あるいは、充電速度α及び閾値θを動的に変更可能なように、積和演算装置3が構成されてもよい。そして、認識処理等を実行している間に、充電速度α及び閾値θの最適化が動的に実行されてもよい。充電速度α及び閾値θを動的に変更可能な具体的な回路構成は限定されず、任意に設計されてよい。
以上、本実施形態に係る演算装置100及び積和演算装置3では、蓄積部11を充電する充電速度α、及び乗算値wi・xiの和を表す積和信号の出力に用いられる閾値θが、蓄積部11の蓄積状況に関連付けられてそれぞれ設定される。これにより、積和演算の結果を表現する分解能を向上させることが可能となり、演算の精度を向上させることが可能となる。
積和演算出力結果の最大値と最小値を、パルス出力期間T内のパルスタイミングに変換する際に、予め積和演算結果の分布を調べておく。そして、その最大・最小値に合わせて、閾値θの値と電流源((単独)電荷出力手段)の電流値を設定する。これによりパルス出力期間の分解能を最大限利用することが可能となる。すなわち、積和演算結果に対応する電圧を、効率的に、パルスタイミングに変換することが可能となる。
例えば、信号値xiに応じたタイミングでパルスが立ち上がる電子信号(スパイクタイミング信号)をキャパシタに蓄積させ、閾値電圧より大きくなるタイミングに基づいて積和信号を算出する方法が考えられる。この方法では、入力の積和演算過程と、それを出力タイミングに表す電荷からタイミングへの変換過程とが連動してしまい、制御に制約が生じてしまう。
本実施形態では、PWM方式の積和演算装置3にて、入力期間Tと出力期間Tとが分けて設定される。そして、入力期間Tの終了後にキャパシタの充電を行い、閾値判定を行うことで積和信号が算出される。従って、入力の積和演算過程と、電荷からタイミングへの変換過程とを分離させることが可能であるので、上記のような問題を防止することが可能となる。
また、正負それぞれ積和演算からタイミング出力までを行い、その後タイミング同士の差をとるようにした。これにより、同じ回路構成で正負それぞれの積和演算を行うことが可能となり、回路バラツキの影響を十分に抑制することが可能となった。なお、正負それぞれの積和結果がほぼ等しいときは、その差が非常に小さくなり,正負全体の積和結果を表現する分解能が低下してしまう可能性がある。しかしながら、本実施形態では、充電速度α及び閾値θを最適化することで、パルス出力期間の分解能を最大限利用することが可能であるので、このような問題も十分に防止することが可能となる。
<第2の実施形態>
本技術の第2の実施形態に係る積和演算装置について説明する。これ以降の説明では、上記の実施形態で説明した積和演算装置3における構成及び作用と同様な部分については、その説明を省略又は簡略化する。
図11、図12
図11は、本実施形態に係る積和演算装置の一例を示す模式的な回路図である。図12は、図11に示す積和演算装置203による積和信号の算出例を説明するための図である。
本実施形態に積和演算装置203では、1つのキャパシタ213に正負の結果がまとめて入力され、正荷重電荷の総量と、負荷重電荷の総量との差に対応する電荷(V+-V-)が保持される。
図11に示す例では、正荷重乗算部として構成されたシナプス回路208aにより、正荷重電荷が生成され、正電荷出力線207aを介して、蓄積部211に含まれるキャパシタ213に蓄積される。一方、負荷重乗算部として構成されたシナプス回路208bにより生成される負荷重電荷は、負電荷出力線207bを介して、キャパシタ213から放電される。
これにより、キャパシタ213に、正荷重電荷の総量と、負荷重電荷の総量との差に対応する電荷(V+-V-)が蓄積される。すなわち本実施形態では、蓄積部211により、正荷重電荷が蓄積され、負荷重電荷が放電される。
図11には図示を省略しているが、シナプス回路208bにより生成される負荷重電荷を、負電荷出力線207bを介して、キャパシタ213から放電するために、放電回路等が構成される。当該放電回路等に、入力信号(PMW信号)in2 、in4 、in5が入力されることで、負荷重電荷が放電される。
負荷重電荷を放電させるための放電回路等は、蓄積部211に含まれる要素となる。また、放電回路等に入力信号(PMW信号)in2 、in4 、in5を入力するための入力信号線が、複数の入力線に含まれる信号線となる。放電回路等の具体的な構成は限定されず、任意設計されてよい。
図12に示す入力期間Tの開始タイミングでは、スイッチ216aがOFFとなり、スイッチ216bがONとなる。そして、入力期間T内に、入力信号が入力される。なお図12では、説明を簡素化するために、入力信号in1 、in2 、in3のみが図示されている。以下、入力信号in1 、in2 、in3が入力された場合を例に説明を行う。
キャパシタ213には、入力信号in1 、in3に応じた正荷重電荷が蓄積され、入力信号in2に応じた負荷重電荷が放電される。なお、本実施形態では、キャパシタ213は、キャパシタ電圧が所定のプリセット値(初期値)となるまで、予め充電されている。これにより、電荷の蓄積及び放電に対応することが可能であり、電荷(V+-V-)を保持することが可能となる。プリセット値は、任意に設定されてよい。
入力期間Tの終了タイミングtnでは、スイッチ216aがONに切替えられ、またスイッチ216bがOFFに切替えられる。そして、入力期間Tの終了タイミングtnで、充電部215(電流源218)による充電が開始される。
また出力部212のコンパレータ220により、キャパシタ213により保持される電圧が閾値θより大きくなるタイミングが検出される。検出されたタイミングに基づいて、信号生成部221により積和信号(PWM信号)が算出される。
本実施形態では、第1の実施形態と同様に、キャパシタ213の蓄積状況に関連付けられた充電速度α及び閾値θが設定されている。すなわち、キャパシタ213の蓄積状況として、キャパシタ213に蓄積される荷重の総量が推定される。その推定結果に基づいて、蓄積される荷重の総量に対して有効範囲E(有効最小値min~有効最大値max)が設定される。
第1の実施形態にて説明したように、設定された有効範囲Eに基づいて、充電速度α及び閾値θが設定される。これにより、電荷(V+-V-)に応じた積和信号を、非常に高い精度で算出することが可能となる。このように、蓄積部211に正負の荷重電荷を入力する場合でも、積和結果を得ることが可能である。
<第3の実施形態>
図13は、本技術の第3の実施形態に係る積和演算装置の一例を示す模式的な回路図である。
本実施形態に係る積和演算装置303では、正荷重電荷が蓄積されるキャパシタ313aと、負荷重電荷が蓄積されるキャパシタ313bとが、逆向きに直列に接続される。これにより、合成キャパシタの端子電圧として、蓄積部311全体で、正荷重電荷の総量と、負荷重電荷の総量との差に対応する電荷(V+-V-)を保持することが可能となる。
入力期間Tの開始タイミングでは、スイッチ316a、316d、及び316eがOFFとなり、スイッチ316b、316c、316f、及び316gがONとなる。そして、入力期間T内に、入力信号が入力される。キャパシタ313aには入力信号に応じた正荷重電荷が蓄積され、キャパシタ313bには入力信号に応じた負荷重電荷が蓄積される。
入力期間Tの終了タイミングtnでは、スイッチ316b、316c、及び316fがOFFに切り替えられる。そしてスイッチ316eがONに切り替えられることで、キャパシタ313aの負側と、キャパシタ313bの正側とが接続される。この結果、2つのキャパシタ313a及び313bにより、電荷(V+-V-)が保持される。
またスイッチ316aがONに切替えられ、充電部315(電流源318)による充電が開始される。出力部312のコンパレータ320により、キャパシタ313a及び313bにより保持される電圧が閾値θより大きくなるタイミングが検出される。検出されたタイミングに基づいて、信号生成部321により積和信号(PWM信号)が算出される。なお、スイッチ316dは、キャパシタ313aをリフレッシュする際に用いられる。
本実施形態でも、直列に接続されたキャパシタ313a及び313bの蓄積状況に関連付けられた充電速度α及び閾値θが設定されている。すなわち、キャパシタ313及び313bの蓄積状況として、キャパシタ313a及び313bに蓄積される荷重の総量が推定される。その推定結果に基づいて、蓄積される荷重の総量に対して有効範囲E(有効最小値min~有効最大値max)が設定される。
設定された有効範囲Eに基づいて、充電速度α及び閾値θが設定される。これにより、電荷(V+-V-)に応じた積和信号を、非常に高い精度で算出することが可能となる。
<第4の実施形態>
図14は、本技術の第4の実施形態に係る積和演算装置の一例を示す模式的な回路図である。
本実施形態に係る積和演算装置403では、差動増幅回路425により、正荷重電荷の総量と、負荷重電荷の総量との差に対応する電荷(V+-V-)が出力され、蓄積部411に含まれるキャパシタ413に蓄積される。差動増幅回路425の具体的な構成は限定されず、任意に設計されてよい。
入力期間Tの開始タイミングでは、スイッチ416a、416b、及び416cがONとなり、スイッチ416bがOFFとなる。そして、入力期間T内に、入力信号が入力される。キャパシタ413には、差動増幅回路425により出力される電荷(V+-V-)が蓄積される。
入力期間Tの終了タイミングtnでは、スイッチ416cがOFFに切替えられ、またスイッチ416dがONに切替えられる。そして、入力期間Tの終了タイミングtnで、充電部415(電流源418)による充電が開始される。
また出力部412のコンパレータ420により、キャパシタ413により保持される電圧が閾値θより大きくなるタイミングが検出される。検出されたタイミングに基づいて、信号生成部221により積和信号(PWM信号)が算出される。
本実施形態でも、キャパシタ413の蓄積状況に関連付けられた充電速度α及び閾値θが設定されている。すなわち、キャパシタ413の蓄積状況として、キャパシタ413に蓄積される荷重の総量が推定される。その推定結果に基づいて、蓄積される荷重の総量に対して有効範囲E(有効最小値min~有効最大値max)が設定される。
設定された有効範囲Eに基づいて、充電速度α及び閾値θが設定される。これにより、電荷(V+-V-)に応じた積和信号を、非常に高い精度で算出することが可能となる。
<その他の実施形態>
本技術は、以上説明した実施形態に限定されず、他の種々の実施形態を実現することができる。
図15は、信号値xiに応じたパルス幅を有するパルス信号(PWM信号)の他の例を示す模式図である。例えば、信号値xiに応じたタイミングでパルスを立ち上げ、入力期間Tの終了タイミングtnでパルスを立ち下げる。すなわち入力期間T内の信号値xiに応じたタイミングから入力期間Tの終了タイミングtnまでの期間に応じたパルス幅を有するパルス信号を生成する。このようなパルス信号を入力信号として用いる場合にも、本技術は適用可能である。
すなわち、スパイクタイミング信号に対して、パルスの立下りタイミングを適宜設定することで、信号値xiに応じたパルス幅を有するパルス信号(PWM信号)として、本技術を適用することが可能となる。
充電速度α及び閾値θの設定として、出力期間Tに対して、α=θ/Tとする。これにより、(数6)式、(数7)式、(数10)式、(数11)式に含まれる、充電速度α、閾値θ、及び出力期間Tにより定められる定数をゼロにすることが可能となり、処理の簡素化を図ることが可能となる。
有効範囲の有効最大値及び有効最小値として、蓄積部により蓄積される乗算値の和に対応する電荷の理論値から求められる理論的な最大値及び理論的な最小値が採用されてもよい。例えば、学習処理により各荷重が設定された後、全ての入力線に、入力の最大値に対応する入力信号が入力された場合に蓄積される電荷の和が、理論的な最大値として算出される。また全ての入力線に、入力の最小値に対応する入力信号が入力された場合に蓄積される電荷の和が、理論的な最小値として算出される。もちろん理論的な最大値及び最小値の算出方法が限定される訳ではない。
図16は、図4に示すニューロン回路9の具体的な構成例を示す回路図である。図16に示すニューロン回路9は、入力期間Tの後に、一定の充電速度でキャパシタ13を充電する回路である。またニューロン回路9は、図4と同様に1対の出力線7からの正負の出力対を入力として、単一の出力信号線10(図4では出力信号線1bと記載)から1つの積和結果を出力する。図16では、ニューロン回路9にPWM信号により生成された電荷が入力される場合について説明する。
以下では、入力期間TをTinと記載し、入力期間Tinの後の積和信号が生成される出力期間をToutと記載して説明を行う場合がある。なお、入力期間Tinと出力期間Toutとは、典型的には、互いに連続する同じ長さTに設定された期間である(Tin=Tout=T)。
ニューロン回路9は、図4に示す蓄積部11及び出力部12に加え、充電部80を有する。充電部80は、入力期間Tinの後の出力期間Toutにキャパシタ13を一定の充電速度で充電する。上記したように、PWM信号は、入力期間Tin内でのパルス幅により信号値を表す信号であり、入力期間Tinの後は全てのPWM信号が0となる(図2参照)。従って出力期間Toutでは、各出力線7に出力される電荷は略0となる。図4に示す充電部80は、この出力期間Toutに、所定の電流ラインInにキャパシタ13を接続してキャパシタ13を充電するように動作する。
充電部80は、キャパシタ13aの接続先を変更する第1の切替スイッチ81a、第2の切替スイッチ82a、及び第3の切替スイッチ83aと、キャパシタ13bの接続先を変更する第1の切替スイッチ81b、第2の切替スイッチ82b、及び第3の切替スイッチ83bとを有する。また充電部80には、第1の制御ラインSW1と、第2の制御ラインSW2と、電流ラインInが接続される。なお図16に示す各切替スイッチの接続状態(ON又はOFF)は、入力期間Tinでの接続状態を表している。
第1の切替スイッチ81aは、キャパシタ13aよりも上流で正の出力線7a(正電荷出力線)とGNDとの間に接続される。第2の切替スイッチ82aは、電流ラインInとキャパシタ13aの出力ノード84aとの間に接続される。ここで出力ノード84aは、キャパシタ13aのGNDに接続される側とは反対側のノード(端子)である。第3の切替スイッチ83aは、出力ノード84a(キャパシタ13a)と正の出力線7aとの間に設けられる。また出力ノード84aは、後段の出力部12に接続される。
第1の切替スイッチ81bは、キャパシタ13bよりも上流で負の出力線7b(負電荷出力線)とGNDとの間に接続される。第2の切替スイッチ82bは、電流ラインInとキャパシタ13bの出力ノード84bとの間に接続される。第3の切替スイッチ83bは、出力ノード84b(キャパシタ13b)と負の出力線7bとの間に設けられる。また出力ノード84bは、後段の出力部12に接続される。
第1の制御ラインSW1は、第1の切替スイッチ81a及び81bを制御する。第2の制御ラインSW2は、第2の切替スイッチ82a及び82bと第3の切替スイッチ83a及び83bとを制御する。なお第2の切替スイッチ82a(82b)と、第3の切替スイッチ83a(83b)とは、ON・OFFの状態が互いに反対となるように構成され、一方がONである場合は、他方はOFFとなる。各切替スイッチの具体的な構成は限定されず、例えばCMOS回路等を用いたアナログスイッチ等が用いられてよい。また各制御ラインには、切替スイッチを動作させるための制御信号が適宜入力される。
出力部12は、出力期間Toutにキャパシタ13の電位を閾値判定することで、積和信号を出力する。ここでキャパシタ13の電位とは、各キャパシタ13a及び13bの出力ノード84a及び84bの電位である。具体的には、各出力ノード84a及び84bの電位とGND電位との電位差(電圧)の閾値判定が実行される。以下では、GNDを基準とした各出力ノード84a及び84bの電位を単に電圧と記載する場合がある。
出力部12は、正負の比較器85a及び85bと、ReLU機能回路86とを有する。また出力部12は、所定の閾値電圧を供給する閾値電圧ラインVthに接続される。正の比較器85a(負の比較器85b)は、出力ノード84a(出力ノード84b)と閾値電圧ラインVthとに接続され、出力ノード84a(出力ノード85b)の電圧が閾値θ(閾値電圧)を超えた場合に出力レベルをLowからHighに切り替える。各比較器85a及び85bの具体的な構成は限定されない。
なお、閾値電圧ラインVthに設定される閾値θの値は、例えば出力期間Toutの間に、正負の積和結果を適正に検出可能となるように、キャパシタ13の充電速度αとともに設定される。具体的には、上記の実施形態で説明したように、キャパシタ13の蓄積状況に関連付けられた充電速度α及び閾値θが適宜設定される。あるいは、キャパシタ13の容量等に応じて閾値θが設定されてもよい。この他、閾値θを設定する方法等は限定されない。
ReLU機能回路86は、図1を参照して説明したReLU関数を実現する回路である。ReLU機能回路86は、例えば論理回路を用いて構成することが可能である。またReLU機能回路86は、図1等に示す関数回路5として機能する。すなわち、図16に示すニューロン回路9は、関数回路5を含んで構成されているとも言える。
図17は、図16に示すニューロン回路9の動作例を示すタイミングチャートである。図17A及び図17Bは、正の荷重値及び負の荷重値についての積和演算を示すタイミングチャートである。また図17Cは、ReLU機能回路86の動作を示すタイミングチャートである。以下では、図16及び図17を参照して、ニューロン回路9の動作例について説明する。
まず、入力期間Tinが開始される前に、第1の制御ラインSW1により第1の切替スイッチ81a及び81bがON状態に設定され、各出力線7a及び7bがGNDに接地される。このとき、第2の切替スイッチ82a及び82bはOFF状態である。また第3の切替スイッチ83a及び83bはON状態であり、キャパシタ13a及び13bは、正負の出力線7a及び7bに接続された状態である。すなわち、充電部80は、入力期間Tinの前にキャパシタ13をGNDに接続する。
これにより、積和演算がなされる前の初期状態として、出力線7a及び7bをGNDレベル(設置レベル)に初期化してリセットすることが可能となる。これにより、キャパシタ13に蓄積された電荷及び出力線7の寄生容量等に蓄積された電荷がGNDに放出される。この結果、前回の演算で蓄積された電荷等がリセットされ、適正な演算処理を繰り返し実行することが可能となる。
なお、電荷のリセットが終了すると、第1の制御ラインSW1により第1の切替スイッチ81a及び81bがOFF状態に設定される。また第2の切替スイッチ82a及び82bはOFF状態に維持され、第3の切替スイッチ83a及び83bはON状態に維持される。この状態で、入力期間Tinが開始される。このように、充電部80は、入力期間Tinにキャパシタ13を1対の出力線7a及び7bに接続する。
入力期間Tinでは、複数の入力信号線6(Axonライン)からPWM信号が入力され、各キャパシタ13a及び13bが充電される。例えば、入力期間Tin内に、出力線の7a及び7bのそれぞれに、各シナプス回路8(荷重)を介して複数のPWM信号(入力信号)が入力される。以下では、正負の出力線7a及び7bに入力される信号を±Axon(n)と記載する。
例えば、図17Aに示すように、正の出力線7aには、+Axon(1)~+Axon(n)までのPWM信号が入力される。この結果、正側のキャパシタ13aは、各PWM信号のパルス幅(信号値)に応じて充電され、キャパシタ13aの電圧(+Dendrite)は、正の出力線7aに対する各PWM信号の入力に応じて増加する。同様に、図17Bに示すように、負の出力線7bには、-Axon(1)~-Axon(n')までのPWM信号が入力される。この結果、負側のキャパシタ13aの電圧(-Dendrite)は、負の出力線7aに対する各PWM信号の入力に応じて増加する。なお、入力期間Tinが終了するまでに、全てのPWM信号の入力が完了する。
入力期間Tinが終了すると連続して出力期間Toutとなる。出力期間Toutが開始されたタイミングで、第2の制御ラインSW2により、第3の切替スイッチ83a及び83bがOFF状態に設定される。この結果、出力線7a及び7bは、ニューロン回路9の後段(蓄積部11及び出力部12)と分離される。
またほぼ同時に、第2の切替スイッチ82a及び82bがON状態に設定され、電流ラインInがキャパシタ13a及び13bに接続される。この結果、キャパシタ13a及び13bは、電流ラインInにより充電される。具体的には、図17A及び図17Bに示すように、電流ラインInに接続することで、キャパシタ13a及び13bには、In及びInが流れ込むことになる。
本実施形態では、電流ラインInは、定電流源として機能する。従って、各キャパシタ13a及び13bに流れ込む電流(In及びIn)は互いに等しい値となる。これらの電流により、キャパシタ13a及び13bは互いに一定の充電速度αで充電される。このように、充電部80は、出力期間Toutにキャパシタ13を一定の充電速度αに応じた電流を供給する電流ラインInに接続する。これにより、入力期間Tinに蓄積された電荷を閾値判定により精度よく容易に検出することが可能となる。図16に示す例では、電流ラインInは、電流源に相当する。
例えば図17A及び図17Bに示すように、電流ラインInに接続されることで、出力期間Toutの開始(入力期間Tinの終了)と同時に、キャパシタ13a及び13bの電圧である±Dendriteが、一定の割合で増加する。この増加の傾きは、各キャパシタ13a及び13bで等しくなる。この結果、例えば±Dendriteが閾値θを超えるタイミングは、各キャパシタ13a及び13bの入力期間Tinの終了タイミングでの電圧を表すことになる。これにより、入力期間Tinに蓄えられた電荷、すなわち正負の各積和結果を適正に表すことが可能となる。
電流ラインInは、±Dendriteが閾値θに達するまで電流を供給する。そして、±Dendriteが閾値θに達すると、各比較器85a及び85bから出力信号Sn(t)及びSn(t)が生成される。Sn(t)及びSn(t)は、それぞれ、正の積和結果及び負の積和結果を表す積和信号となる。
図17に示す例では、入力期間Tinの終了タイミングでのキャパシタ13aの電圧が、キャパシタ13bよりも高いため、Sn(t)は、Sn(t)よりも早い段階で生成される。このように、比較器から出力される信号は、立ち上がりのタイミングが早いほど、積和結果の大きい信号となる。
正負の積和結果をあらわす信号(Sn(t)及びSn(t))は、ReLU機能回路86に入力され、その差分がPWM信号Sn(t)として出力される。図17Cに示すように、Sn(t)は、Sn(t)がHighであり、Sn(t)がLowである場合にHighとなる信号である。Sn(t)のパルス幅は、正負の積和結果の差分、すなわち一つのアナログ回路3から出力される最終的な積和演算の結果を表す。なおSn(t)は、Sn(t)>Sn(t)である場合(正負の積和結果の差分が0以上である場合)にのみ生成される。
このように、図16に示すニューロン回路9では、ReLU関数により処理された積和結果を出力することが可能となる。なお、図16に示す回路に限定されず、キャパシタ13に蓄積された電荷等を読み出し可能な任意の回路が、ニューロン回路9として用いられてよい。
図18は、ニューロン回路509の他の構成例を示す回路図である。図18に示すニューロン回路509は、入力期間Tinの後に、一定の充電速度αでキャパシタ513を充電する回路である。またニューロン回路509は、1対の出力線7からの正負の出力対を入力として、1対の出力信号線10a及び10bから正負の積和結果を出力する。図18では、ニューロン回路509にTACT方式(スパイクタイミング方式)の信号(ステップ信号)により生成された電荷が入力される場合について説明する。
ニューロン回路509は、蓄積部511及び出力部512に加え、充電部580を有する。蓄積部511及び充電部580は、例えば図16を参照して説明した充電部80と同様の構成を有する。なお、図18に示すニューロン回路509では、出力部512の比較器585a及び585bから、正負の積和結果を表す1対の積和信号Sn(t)及びSn(t)がそのまま出力される。すなわち、出力部512は、図16に示す出力部12からReLU機能回路86を除いた構成となるとも言える。
充電部580は、入力期間Tinの後の出力期間Toutにキャパシタ513を一定の充電速度αで充電する。上記したように、ステップ信号は、入力期間Tin内でのタイミングにより信号値を表す信号である。ここでは、入力期間Tin内において、LowからHighに立ち上がるタイミングにより、信号値を表す信号が用いられものとする。なお、立ち上ったステップ信号は、その後も継続してHighレベルを維持する。
図19は、図18に示すニューロン回路509の動作例を示すタイミングチャートである。図19A及び図19Bは、正の荷重値及び負の荷重値についての積和演算を示すタイミングチャートである。
図19では、入力期間Tinの終了後(出力期間Tout中)もステップ信号がHighレベルに維持され、これらのステップ信号により、出力期間Tout中にキャパシタ513が充電される。すなわち、出力期間Tout中に、複数の入力信号線6(Axonライン)及び出力線7により電流源が構成され、キャパシタ13が充電される。なお、図19では、±Axonラインの本数が等しい(n=n')ものとする。これにより、キャパシタ513a及び513bの出力期間Toutにおける充電速度αを等しくすることが可能である。
従って図19では、各Axonライン及び正負の出力線7a及び7bは、充電部580の一部として機能する。この場合、例えば図18に示す第2の切替スイッチ582a及び582bと電流ラインInとを除き、かつ第3の切替スイッチ583a及び583bを短絡した構成で、ニューロン回路509を動作させることが可能となる。これにより、キャパシタ513を充電するための回路構成を簡素化することが可能である。
まず、入力期間Tinが開始される前に、正負の出力線7a及び7bとキャパシタ513a及び513bが接続された状態(第3の切替スイッチ583a及び583bが短絡された状態)で、第1の制御ラインSW1により第1の切替スイッチ581a及び581bがON状態に設定される。これにより、積和演算がなされる前に、出力線7a及び7b等をGNDレベル(設置レベル)に初期化してリセットすることが可能となる。
入力期間Tinでは、複数のAxonラインに、信号値に応じたタイミングで立ち上がるステップ信号がそれぞれ入力される。TACT方式では、入力期間Tinの後に引き続き、全てのAxonラインからHighレベルを維持する信号が入力される。つまり、入力期間Tinでは、ステップ信号が入力されるタイミングにばらつきがあるが、出力期間Tinでは、全てのAxonラインがHighレベルとなり一定の電荷が継続して供給される。これにより、キャパシタ513a及び513bを一定の充電速度で充電することが可能となる。
キャパシタ513a及び513bの出力ノード584a及び584bの電圧は、それぞれ一定の割合で増加する。そして各出力ノード584a及び584bの電圧(±Dendrite)が比較器585a及び585bの閾値θ(閾値電圧)に達すると、正負の積和信号Sn(t)及びSn(t)が生成される。生成されたSn(t)及びSn(t)は、1対の積和信号として後段に出力される。このように、TACT方式のステップ信号を用いることで、シンプルな構成で積和結果を表す積和信号を生成することが可能となる。
図20は、図18に示すニューロン回路509の他の動作例を示すタイミングチャートである。図20A及び図20Bは、正の荷重値及び負の荷重値についての積和演算を示すタイミングチャートである。図20では、入力期間Tinの終了後に正負の出力線7a及び7bが分離される。そして、出力期間Tout中は、電流ラインInによりキャパシタ513が充電される。
各出力線7a及び7b等が初期状態にリセットされた後、入力期間Tinが開始され複数のステップ信号が入力される。このとき、第2の切替スイッチ582a及び582bはOFF状態に設定され、第3の切替スイッチ583a及び583bはON状態に設定される。これにより、キャパシタ513a及び513bには、正負の出力線7a及び7bから、ステップ信号の信号値に応じた電荷が蓄積される。
図20では、入力期間Tinが終了したタイミングで、第2の制御ラインSW2により第3の切替スイッチ583a及び583bがOFF状態に設定され、出力線7a及び7bは、ニューロン回路509の後段(蓄積部511及び出力部512)から分離される。この結果、図20A及び図20Bに示すように、出力期間Toutでは、各Axonラインからの入力がカットされる。
また出力線7a及び7bが分離されたタイミングとほぼ同時に第2の切替スイッチ582a及び582bがON状態に設定される。これにより、各キャパシタ513a及び513bは、電流ラインInに接続され、それぞれ一定の電流In及びInが供給される。この結果、キャパシタ513a及び513bは互いに一定の充電速度で充電される。また各出力ノード584a及び584bの電圧(±Dendrite)が比較器585a及び585bの閾値θに達すると、正負の積和信号Sn(t)及びSn(t)が生成される。
このように、TACT方式が用いられる場合であっても、電流ラインInを用いて、積和結果を表す積和信号を生成することが可能となる。これにより、例えばPWM方式で用いられるニューロン回路9(図16参照)の設計を用いて、TACT方式用のニューロン回路509を容易に構成するといったことが可能となる。
上記では、蓄積部により保持された電圧が閾値を過ぎて大きくなるタイミングに基づいて、積和信号を出力する場合を例に挙げた。しかしながら、蓄積部により保持された電圧が閾値を過ぎて小さくなるタイミングに基づいて、積和信号を出力する構成が採用されてもよい。例えば、蓄積部として機能するキャパシタの電圧が、所定のプリセット値となるまで予め充電される。そして信号値と荷重値との乗算値に対応する電荷の和が蓄積された後に、キャパシタを所定の速度で放電する。このような場合、キャパシタにより保持された電圧が閾値を過ぎて小さくなるタイミングに基づいて、積和信号を出力することが可能である。もちろんこのような構成に限定される訳ではない。なお本開示では、キャシタの放電は、キャシタに負の電荷を充電することに含まれる。閾値及び放電速度を適宜設定することで、積和信号を、非常に高い精度で算出することが可能となる。
上記では、1対の出力線が用いられる場合を説明した。これに限定されず、3以上の出力線が設けられてもよい。すなわち1以上の任意の数の出力線が用いられる場合でも、上記で説明した本技術は適用可能である。例えば乗算部は、対応する入力線と、1以上の出力線のいずれか1つとの間に接続され荷重値を規定する抵抗器を含み、抵抗器が接続された出力線に乗算値に対応する電荷を出力する。もちろんこれに限定される訳ではない。
各図面を参照して説明した演算装置、積和演算装置、アナログ回路、シナプス回路、ニューロン回路等の各構成、積和信号の生成方法等はあくまで一実施形態であり、本技術の趣旨を逸脱しない範囲で、任意に変形可能である。すなわち本技術を実施するための他の任意の構成や方法等が採用されてよい。
本開示において、「同じ」「等しい」「直交」等は、「実質的に同じ」「実質的に等しい」「実質的に直交」等を含む概念とする。例えば「完全に同じ」「完全に等しい」「完全に直交」等を基準とした所定の範囲(例えば±10%の範囲)に含まれる状態も含まれる。
以上説明した本技術に係る特徴部分のうち、少なくとも2つの特徴部分を組み合わせることも可能である。すなわち各実施形態で説明した種々の特徴部分は、各実施形態の区別なく、任意に組み合わされてもよい。また上記で記載した種々の効果は、あくまで例示であって限定されるものではなく、また他の効果が発揮されてもよい。
なお、本技術は以下のような構成も採ることができる。
(1)積和演算をアナログ回路で実行する積和演算装置であって、
入力値に応じたパルス幅を有するパルス信号が入力される複数の入力線と、
前記複数の入力線の各々に入力される前記パルス信号に基づいて、前記入力値に荷重値を乗算した乗算値に対応する電荷を生成する複数の乗算部と、
前記複数の乗算部の各々により生成された前記乗算値に対応する電荷の和を蓄積する蓄積部と、
前記乗算値に対応する電荷の和が蓄積された前記蓄積部を、前記蓄積部の蓄積状況に関連付けられた充電速度により充電する充電部と、
前記充電部による充電の開始後、前記蓄積部により保持される電圧に対して、前記蓄積部の蓄積状況に関連付けられた閾値により閾値判定を実行することで、前記乗算値の和を表す積和信号を出力する出力部と
を具備する積和演算装置。
(2)(1)に記載の積和演算装置であって、
前記複数の入力線の各々には、所定の長さの入力期間内に、前記パルス信号が入力され、
前記充電部は、前記入力期間の終了後に前記充電を開始し、
前記出力部は、所定の長さの出力期間内における、前記蓄積部により保持される電圧が前記閾値を過ぎて大きくなるまたは小さくなるタイミングに基づいて、前記積和信号を出力する
積和演算装置。
(3)(2)に記載の積和演算装置であって、
前記充電速度及び前記閾値は、前記蓄積部により蓄積される前記乗算値に対応する電荷の和の推定結果から求められる、前記乗算値に対応する電荷の和の有効最大値及び有効最小値に基づいて設定される
積和演算装置。
(4)(3)に記載の積和演算装置であって、
前記充電速度及び前記閾値は、前記有効最大値から前記有効最小値までの範囲が、前記出力期間に対して、前記積和信号の出力可能な範囲となるように設定される
積和演算装置。
(5)(3)又は(4)に記載の積和演算装置であって、
前記蓄積部により保持される電圧が前記閾値を過ぎて大きくなるまたは小さくなるタイミングを、前記積和信号を算出するための算出タイミングとして、
前記充電速度及び前記閾値は、前記有効最大値に対応する前記算出タイミングが前記出力期間の開始タイミングの直後のタイミングとなり、前記有効最小値に対応する前記算出タイミングが前記出力期間の終了タイミングの直前のタイミングとなるように設定される
積和演算装置。
(6)(3)から(5)のうちいずれか1つに記載の積和演算装置であって、
前記充電速度及び前記閾値は、前記出力期間の長さに基づいて設定される
積和演算装置。
(7)(3)から(6)のうちいずれか1つに記載の積和演算装置であって、
前記有効最大値及び前記有効最小値は、前記蓄積部により蓄積される前記乗算値に対応する電荷の和の理論値から求められる理論的な最大値及び理論的な最小値である
情報処理装置。
(8)(2)から(7)のうちいずれか1つに記載の積和演算装置であって、
前記出力期間の長さは、前記入力期間の長さと等しい
積和演算装置。
(9)(2)から(8)のうちいずれか1つに記載の積和演算装置であって、
前記充電部は、前記入力期間の終了タイミングで前記充電を開始し、
前記出力期間は、前記充電部による充電の開始タイミングで開始される
積和演算装置。
(10)(1)から(9)のうちいずれか1つに記載の積和演算装置であって、
前記複数の乗算部は、前記入力値に正の荷重値を乗算した乗算値に対応する正荷重電荷を生成する正荷重乗算部と、前記入力値に負の荷重値を乗算した乗算値に対応する負荷重電荷を生成する負荷重乗算部とを有し、
前記蓄積部は、前記正荷重乗算部により生成された前記正荷重電荷の和を蓄積する正電荷蓄積部と、前記負荷重乗算部により生成された前記負荷重電荷の和を蓄積する負電荷蓄積部とを有し、
前記充電部は、前記正電荷蓄積部、及び前記負電荷蓄積部を、同じ充電速度によりそれぞれ充電し、
前記出力部は、前記正電荷蓄積部、及び前記負電荷蓄積部の各々に対して、同じ閾値より閾値判定を実行することで、前記積和信号を出力する
積和演算装置。
(11)(1)から(9)のうちいずれか1つに記載の積和演算装置であって、
前記蓄積部は、前記入力値に正の荷重値を乗算した乗算値に対応する正荷重電荷の総量と、前記入力値に負の荷重値を乗算した乗算値に対応する負荷重電荷の総量との差に対応する電荷を蓄積する
積和演算装置。
(12)(11)に記載の積和演算装置であって、
前記正荷重電荷及び負荷重電荷は、互いに同符号の電荷であり、
前記蓄積部は、前記正荷重電荷の和を蓄積し、前記負荷重電荷の和を放電する
積和演算装置。
(13)(2)から(12)のうちいずれか1つに記載の積和演算装置であって、
前記パルス信号は、前記入力期間内の前記入力値に応じたタイミングから前記入力期間の終了タイミングまでの期間に応じたパルス幅を有する
積和演算装置。
(14)(1)から(13)のうちいずれか1つに記載の積和演算装置であって、さらに、
1以上の出力線を具備し、
前記複数の乗算部は、前記複数の入力線に対応して設けられ、
前記複数の乗算部の各々は、前記複数の入力線のうちの対応する入力線と、前記1以上の出力線のいずれか1つとの間に接続され前記荷重値を規定し非線形特性を有する抵抗器を含み、前記抵抗器が接続された出力線に前記乗算値に対応する電荷を出力する
積和演算装置。
(15)(10)に記載の積和演算装置であって、さらに、
正電荷出力線と、負電荷出力線とを具備し、
前記複数の乗算部は、前記複数の入力線に対応して設けられ、
前記正荷重乗算部は、前記複数の入力線のうちの対応する入力線と、前記正電荷出力線との間に接続され前記正の荷重値を規定し非線形特性を有する抵抗器を含み、前記正電荷出力線に前記乗算値に対応する正荷重電荷を出力し、
前記負荷重乗算部は、前記複数の入力線のうちの対応する入力線と、前記負電荷出力線との間に接続され前記負の荷重値を規定し非線形特性を有する抵抗器を含み、前記負電荷出力線に前記乗算値に対応する負荷重電荷を出力する
積和演算装置。
(16)(14)又は(15)に記載の積和演算装置であって、
前記抵抗器は、固定抵抗素子、可変抵抗素子、又はサブスレッショルド領域で動作するMOSトランジスタである
積和演算装置。
(17)積和演算をアナログ方式で実行する積和演算回路であって、
入力値に応じたパルス幅を有するパルス信号が入力される複数の入力線と、
前記複数の入力線の各々に入力される前記パルス信号に基づいて、前記入力値に荷重値を乗算した乗算値に対応する電荷を生成する複数の乗算部と、
前記複数の乗算部の各々により生成された前記乗算値に対応する電荷の和を蓄積する蓄積部と、
前記乗算値に対応する電荷の和が蓄積された前記蓄積部を、前記蓄積部の蓄積状況に関連付けられた充電速度により充電する充電部と、
前記充電部による充電の開始後、前記蓄積部により保持される電圧に対して、前記蓄積部の蓄積状況に関連付けられた閾値により閾値判定を実行することで、前記乗算値の和を表す積和信号を出力する出力部と
を具備する積和演算回路。
(18)入力値に応じたパルス幅を有するパルス信号が入力される複数の入力線と、
前記複数の入力線の各々に入力される前記パルス信号に基づいて、前記入力値に荷重値を乗算した乗算値に対応する電荷を生成する複数の乗算部と、
前記複数の乗算部の各々により生成された前記乗算値に対応する電荷の和を蓄積する蓄積部と、
前記乗算値に対応する電荷の和が蓄積された前記蓄積部を、前記蓄積部の蓄積状況に関連付けられた充電速度により充電する充電部と、
前記充電部による充電の開始後、前記蓄積部により保持される電圧に対して、前記蓄積部の蓄積状況に関連付けられた閾値により閾値判定を実行することで、前記乗算値の和を表す積和信号を出力する出力部と
を有する複数のアナログ回路と、
前記複数のアナログ回路を接続して構成されたネットワーク回路と
を具備する積和演算システム。
(19)複数の入力線に、入力値に応じたパルス幅を有するパルス信号を入力し、
前記複数の入力線の各々に入力される前記パルス信号に基づいて、前記入力値に荷重値を乗算した乗算値に対応する電荷を生成し、
蓄積部に、前記生成された前記乗算値に対応する電荷の和を蓄積し、
前記乗算値に対応する電荷の和が蓄積された前記蓄積部を、前記蓄積部の蓄積状況に関連付けられた充電速度により充電し、
前記充電の開始後、前記蓄積部により保持される電圧に対して、前記蓄積部の蓄積状況に関連付けられた閾値により閾値判定を実行することで、前記乗算値の和を表す積和信号を出力する
積和演算方法。
θ…閾値
α…充電速度
1…信号線
1a…入力信号線
3、203、303、403…積和演算装置
7…1対の出力線
7a、207a…正電荷出力線
7b、207b…負電荷出力線
8…シナプス回路
8a、208a…シナプス回路(正荷重乗算部)
8b、208b…シナプス回路(負荷重乗算部)
9、509…ニューロン回路
11、211、311、411、511…蓄積部
12、212、312、412、512…出力部
13、213、313、413、513…キャパシタ
15、215、315、415、80、580…充電部
17…抵抗器
18、218、318、418…電流源
20、220、320、420…コンパレータ
21、221、321…信号生成部
100…演算装置

Claims (18)

  1. 積和演算をアナログ回路で実行する積和演算装置であって、
    入力値に応じたパルス幅を有するパルス信号が入力される複数の入力線と、
    前記複数の入力線の各々に入力される前記パルス信号に基づいて、前記入力値に荷重値を乗算した乗算値に対応する電荷を生成する複数の乗算部と、
    前記複数の乗算部の各々により生成された前記乗算値に対応する電荷の和を蓄積する蓄積部と、
    前記乗算値に対応する電荷の和が蓄積された前記蓄積部を、前記蓄積部の蓄積状況に関連付けられた充電速度により充電する充電部と、
    前記充電部による充電の開始後、前記蓄積部により保持される電圧に対して、前記蓄積部の蓄積状況に関連付けられた閾値により閾値判定を実行することで、前記乗算値の和を表す積和信号を出力する出力部と
    を具備し、
    前記複数の入力線の各々には、所定の長さの入力期間内に、前記パルス信号が入力され、
    前記充電部は、前記入力期間の終了後に前記充電を開始し、
    前記出力部は、所定の長さの出力期間内における、前記蓄積部により保持される電圧が前記閾値を過ぎて大きくなるまたは小さくなるタイミングに基づいて、前記積和信号を出力する
    積和演算装置。
  2. 積和演算をアナログ回路で実行する積和演算装置であって、
    入力値に応じたパルス幅を有するパルス信号が入力される複数の入力線と、
    前記複数の入力線の各々に入力される前記パルス信号に基づいて、前記入力値に荷重値を乗算した乗算値に対応する電荷を生成する複数の乗算部と、
    前記複数の乗算部の各々により生成された前記乗算値に対応する電荷の和を蓄積する蓄積部と、
    前記乗算値に対応する電荷の和が蓄積された前記蓄積部を、前記蓄積部の蓄積状況に関連付けられた充電速度により充電する充電部と、
    前記充電部による充電の開始後、前記蓄積部により保持される電圧に対して、前記蓄積部の蓄積状況に関連付けられた閾値により閾値判定を実行することで、前記乗算値の和を表す積和信号を出力する出力部と
    を具備し、
    前記複数の乗算部は、前記入力値に正の荷重値を乗算した乗算値に対応する正荷重電荷を生成する正荷重乗算部と、前記入力値に負の荷重値を乗算した乗算値に対応する負荷重電荷を生成する負荷重乗算部とを有し、
    前記蓄積部は、前記正荷重乗算部により生成された前記正荷重電荷の和を蓄積する正電荷蓄積部と、前記負荷重乗算部により生成された前記負荷重電荷の和を蓄積する負電荷蓄積部とを有し、
    前記充電部は、前記正電荷蓄積部、及び前記負電荷蓄積部を、同じ充電速度によりそれぞれ充電し、
    前記出力部は、前記正電荷蓄積部、及び前記負電荷蓄積部の各々に対して、同じ閾値より閾値判定を実行することで、前記積和信号を出力する
    積和演算装置。
  3. 積和演算をアナログ回路で実行する積和演算装置であって、
    入力値に応じたパルス幅を有するパルス信号が入力される複数の入力線と、
    前記複数の入力線の各々に入力される前記パルス信号に基づいて、前記入力値に荷重値を乗算した乗算値に対応する電荷を生成する複数の乗算部と、
    前記複数の乗算部の各々により生成された前記乗算値に対応する電荷の和を蓄積する蓄積部と、
    前記乗算値に対応する電荷の和が蓄積された前記蓄積部を、前記蓄積部の蓄積状況に関連付けられた充電速度により充電する充電部と、
    前記充電部による充電の開始後、前記蓄積部により保持される電圧に対して、前記蓄積部の蓄積状況に関連付けられた閾値により閾値判定を実行することで、前記乗算値の和を表す積和信号を出力する出力部と
    を具備し、
    前記蓄積部は、前記入力値に正の荷重値を乗算した乗算値に対応する正荷重電荷の総量と、前記入力値に負の荷重値を乗算した乗算値に対応する負荷重電荷の総量との差に対応する電荷を蓄積する
    積和演算装置。
  4. 積和演算をアナログ回路で実行する積和演算装置であって、
    入力値に応じたパルス幅を有するパルス信号が入力される複数の入力線と、
    前記複数の入力線の各々に入力される前記パルス信号に基づいて、前記入力値に荷重値を乗算した乗算値に対応する電荷を生成する複数の乗算部と、
    前記複数の乗算部の各々により生成された前記乗算値に対応する電荷の和を蓄積する蓄積部と、
    前記乗算値に対応する電荷の和が蓄積された前記蓄積部を、前記蓄積部の蓄積状況に関連付けられた充電速度により充電する充電部と、
    前記充電部による充電の開始後、前記蓄積部により保持される電圧に対して、前記蓄積部の蓄積状況に関連付けられた閾値により閾値判定を実行することで、前記乗算値の和を表す積和信号を出力する出力部と
    1以上の出力線と
    を具備し、
    前記複数の乗算部は、前記複数の入力線に対応して設けられ、
    前記複数の乗算部の各々は、前記複数の入力線のうちの対応する入力線と、前記1以上の出力線のいずれか1つとの間に接続され前記荷重値を規定し非線形特性を有する抵抗器を含み、前記抵抗器が接続された出力線に前記乗算値に対応する電荷を出力する
    積和演算装置。
  5. 請求項に記載の積和演算装置であって、
    前記充電速度及び前記閾値は、前記蓄積部により蓄積される前記乗算値に対応する電荷の和の推定結果から求められる、前記乗算値に対応する電荷の和の有効最大値及び有効最小値に基づいて設定される
    積和演算装置。
  6. 請求項に記載の積和演算装置であって、
    前記充電速度及び前記閾値は、前記有効最大値から前記有効最小値までの範囲が、前記出力期間に対して、前記積和信号の出力可能な範囲となるように設定される
    積和演算装置。
  7. 請求項に記載の積和演算装置であって、
    前記蓄積部により保持される電圧が前記閾値を過ぎて大きくなるまたは小さくなるタイミングを、前記積和信号を算出するための算出タイミングとして、
    前記充電速度及び前記閾値は、前記有効最大値に対応する前記算出タイミングが前記出力期間の開始タイミングの直後のタイミングとなり、前記有効最小値に対応する前記算出タイミングが前記出力期間の終了タイミングの直前のタイミングとなるように設定される
    積和演算装置。
  8. 請求項に記載の積和演算装置であって、
    前記充電速度及び前記閾値は、前記出力期間の長さに基づいて設定される
    積和演算装置。
  9. 請求項に記載の積和演算装置であって、
    前記有効最大値及び前記有効最小値は、前記蓄積部により蓄積される前記乗算値に対応する電荷の和の理論値から求められる理論的な最大値及び理論的な最小値である
    積和演算装置。
  10. 請求項に記載の積和演算装置であって、
    前記出力期間の長さは、前記入力期間の長さと等しい
    積和演算装置。
  11. 請求項に記載の積和演算装置であって、
    前記充電部は、前記入力期間の終了タイミングで前記充電を開始し、
    前記出力期間は、前記充電部による充電の開始タイミングで開始される
    積和演算装置。
  12. 請求項に記載の積和演算装置であって、
    前記正荷重電荷及び負荷重電荷は、互いに同符号の電荷であり、
    前記蓄積部は、前記正荷重電荷の和を蓄積し、前記負荷重電荷の和を放電する
    積和演算装置。
  13. 請求項に記載の積和演算装置であって、
    前記パルス信号は、前記入力期間内の前記入力値に応じたタイミングから前記入力期間の終了タイミングまでの期間に応じたパルス幅を有する
    積和演算装置。
  14. 請求項に記載の積和演算装置であって、さらに、
    正電荷出力線と、負電荷出力線とを具備し、
    前記複数の乗算部は、前記複数の入力線に対応して設けられ、
    前記正荷重乗算部は、前記複数の入力線のうちの対応する入力線と、前記正電荷出力線との間に接続され前記正の荷重値を規定し非線形特性を有する抵抗器を含み、前記正電荷出力線に前記乗算値に対応する正荷重電荷を出力し、
    前記負荷重乗算部は、前記複数の入力線のうちの対応する入力線と、前記負電荷出力線との間に接続され前記負の荷重値を規定し非線形特性を有する抵抗器を含み、前記負電荷出力線に前記乗算値に対応する負荷重電荷を出力する
    積和演算装置。
  15. 請求項に記載の積和演算装置であって、
    前記抵抗器は、固定抵抗素子、可変抵抗素子、又はサブスレッショルド領域で動作するMOSトランジスタである
    積和演算装置。
  16. 積和演算をアナログ方式で実行する積和演算回路であって、
    入力値に応じたパルス幅を有するパルス信号が入力される複数の入力線と、
    前記複数の入力線の各々に入力される前記パルス信号に基づいて、前記入力値に荷重値を乗算した乗算値に対応する電荷を生成する複数の乗算部と、
    前記複数の乗算部の各々により生成された前記乗算値に対応する電荷の和を蓄積する蓄積部と、
    前記乗算値に対応する電荷の和が蓄積された前記蓄積部を、前記蓄積部の蓄積状況に関連付けられた充電速度により充電する充電部と、
    前記充電部による充電の開始後、前記蓄積部により保持される電圧に対して、前記蓄積部の蓄積状況に関連付けられた閾値により閾値判定を実行することで、前記乗算値の和を表す積和信号を出力する出力部と
    を具備し、
    前記複数の入力線の各々には、所定の長さの入力期間内に、前記パルス信号が入力され、
    前記充電部は、前記入力期間の終了後に前記充電を開始し、
    前記出力部は、所定の長さの出力期間内における、前記蓄積部により保持される電圧が前記閾値を過ぎて大きくなるまたは小さくなるタイミングに基づいて、前記積和信号を出力する
    積和演算回路。
  17. 入力値に応じたパルス幅を有するパルス信号が入力される複数の入力線と、
    前記複数の入力線の各々に入力される前記パルス信号に基づいて、前記入力値に荷重値を乗算した乗算値に対応する電荷を生成する複数の乗算部と、
    前記複数の乗算部の各々により生成された前記乗算値に対応する電荷の和を蓄積する蓄積部と、
    前記乗算値に対応する電荷の和が蓄積された前記蓄積部を、前記蓄積部の蓄積状況に関連付けられた充電速度により充電する充電部と、
    前記充電部による充電の開始後、前記蓄積部により保持される電圧に対して、前記蓄積部の蓄積状況に関連付けられた閾値により閾値判定を実行することで、前記乗算値の和を表す積和信号を出力する出力部と
    を有する複数のアナログ回路と、
    前記複数のアナログ回路を接続して構成されたネットワーク回路と
    を具備し、
    前記複数の入力線の各々には、所定の長さの入力期間内に、前記パルス信号が入力され、
    前記充電部は、前記入力期間の終了後に前記充電を開始し、
    前記出力部は、所定の長さの出力期間内における、前記蓄積部により保持される電圧が前記閾値を過ぎて大きくなるまたは小さくなるタイミングに基づいて、前記積和信号を出力する
    積和演算システム。
  18. 所定の長さの入力期間内に、複数の入力線に、入力値に応じたパルス幅を有するパルス信号を入力する入力ステップと
    前記複数の入力線の各々に入力される前記パルス信号に基づいて、前記入力値に荷重値を乗算した乗算値に対応する電荷を生成する生成ステップと
    蓄積部に、前記生成された前記乗算値に対応する電荷の和を蓄積する蓄積ステップと
    前記乗算値に対応する電荷の和が蓄積された前記蓄積部を、前記蓄積部の蓄積状況に関連付けられた充電速度により充電する充電ステップと
    前記充電の開始後、前記蓄積部により保持される電圧に対して、前記蓄積部の蓄積状況に関連付けられた閾値により閾値判定を実行することで、前記乗算値の和を表す積和信号を出力する出力ステップと
    を含み、
    前記充電ステップは、前記入力期間の終了後に前記充電を開始し、
    前記出力ステップは、所定の長さの出力期間内における、前記蓄積部により保持される電圧が前記閾値を過ぎて大きくなるまたは小さくなるタイミングに基づいて、前記積和信号を出力する
    積和演算方法。
JP2020530140A 2018-07-13 2019-07-04 積和演算装置、積和演算回路、積和演算システム、及び積和演算方法 Active JP7283477B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2018133750 2018-07-13
JP2018133750 2018-07-13
PCT/JP2019/026603 WO2020013069A1 (ja) 2018-07-13 2019-07-04 積和演算装置、積和演算回路、積和演算システム、及び積和演算方法

Publications (2)

Publication Number Publication Date
JPWO2020013069A1 JPWO2020013069A1 (ja) 2021-08-02
JP7283477B2 true JP7283477B2 (ja) 2023-05-30

Family

ID=69141673

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020530140A Active JP7283477B2 (ja) 2018-07-13 2019-07-04 積和演算装置、積和演算回路、積和演算システム、及び積和演算方法

Country Status (6)

Country Link
US (1) US12008338B2 (ja)
EP (1) EP3822843B1 (ja)
JP (1) JP7283477B2 (ja)
CN (1) CN112384927B (ja)
TW (1) TWI799588B (ja)
WO (1) WO2020013069A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210374507A1 (en) * 2020-06-02 2021-12-02 University Of Louisiana At Lafayette Method for Pulse-Based Convolution for Near-Sensor Processing
DE112021003900T5 (de) * 2020-07-17 2023-07-13 Semiconductor Energy Laboratory Co., Ltd. Halbleitervorrichtung und elektronisches Gerät
US20230049032A1 (en) * 2021-08-02 2023-02-16 Silicon Storage Technology, Inc. Output circuitry for analog neural memory in a deep learning artificial neural network
JPWO2023032158A1 (ja) * 2021-09-03 2023-03-09
US20230386566A1 (en) * 2022-05-25 2023-11-30 Stmicroelectronics International N.V. Bit line voltage clamping read circuit for an in-memory compute operation where simultaneous access is made to plural rows of a static random access memory (sram)
US20230410892A1 (en) * 2022-05-25 2023-12-21 Stmicroelectronics International N.V. Bit line read current mirroring circuit for an in-memory compute operation where simultaneous access is made to plural rows of a static random access memory (sram)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010061428A (ja) 2008-09-04 2010-03-18 Yazaki Corp 掛算回路
JP2015195011A (ja) 2014-03-18 2015-11-05 パナソニックIpマネジメント株式会社 ニューラルネットワーク回路およびその学習方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07141313A (ja) * 1993-11-18 1995-06-02 Fujitsu Ltd 神経回路素子
JP4620944B2 (ja) 2003-10-16 2011-01-26 キヤノン株式会社 積和演算回路及びその方法
JP4272967B2 (ja) 2003-10-16 2009-06-03 キヤノン株式会社 演算回路およびその動作制御方法
US9792405B2 (en) * 2013-01-17 2017-10-17 Edico Genome, Corp. Bioinformatics systems, apparatuses, and methods executed on an integrated circuit processing platform
EP3825925B1 (en) * 2016-08-19 2023-11-08 Sony Group Corporation Multiply-accumulate operation device
US9779355B1 (en) * 2016-09-15 2017-10-03 International Business Machines Corporation Back propagation gates and storage capacitor for neural networks
WO2018069785A1 (en) * 2016-10-12 2018-04-19 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device and system using the same
US11315009B2 (en) * 2017-03-03 2022-04-26 Hewlett Packard Enterprise Development Lp Analog multiplier-accumulators

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010061428A (ja) 2008-09-04 2010-03-18 Yazaki Corp 掛算回路
JP2015195011A (ja) 2014-03-18 2015-11-05 パナソニックIpマネジメント株式会社 ニューラルネットワーク回路およびその学習方法

Also Published As

Publication number Publication date
TWI799588B (zh) 2023-04-21
CN112384927B (zh) 2024-09-13
EP3822843A4 (en) 2021-09-01
EP3822843A1 (en) 2021-05-19
CN112384927A (zh) 2021-02-19
WO2020013069A1 (ja) 2020-01-16
TW202006611A (zh) 2020-02-01
EP3822843B1 (en) 2024-10-16
JPWO2020013069A1 (ja) 2021-08-02
US12008338B2 (en) 2024-06-11
US20210294573A1 (en) 2021-09-23

Similar Documents

Publication Publication Date Title
JP7283477B2 (ja) 積和演算装置、積和演算回路、積和演算システム、及び積和演算方法
CN111837145B (zh) 用于将矩阵计算映射到矩阵乘法加速器的系统和方法
US10853721B2 (en) Multiplier accumulator, network unit, and network apparatus
EP1676225B1 (en) Product-sum operation circuit and method
KR102653822B1 (ko) 혼성 신호 컴퓨팅 시스템 및 방법
TWI831804B (zh) 運算裝置、積和運算裝置、積和運算系統及積和運算方法
US20200327287A1 (en) Electronic system for performing a multiplication of a matrix and vector
WO2020162241A1 (ja) 演算装置、及び積和演算システム
WO2020195867A1 (ja) 演算装置及び積和演算システム
US20050160130A1 (en) Arithmetic circuit
WO2020195546A1 (ja) 演算装置及び積和演算システム
US11782680B2 (en) Arithmetic logic unit, multiply-accumulate operation device, multiply-accumulate operation circuit, and multiply-accumulate operation system
US12073311B2 (en) Synaptic circuit and neural network apparatus
JP2020126427A (ja) 演算装置、積和演算システム及び設定方法
Wang et al. A modularization hardware implementation approach for artificial neural network
Sudha et al. Utilizing Analog Circuits by Neural-Network based Multi-Layer-Perceptron
WO2020013075A1 (ja) 積和演算システム及び積和演算方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220520

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20220520

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230331

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230418

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230501

R151 Written notification of patent or utility model registration

Ref document number: 7283477

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151