JP6985988B2 - ニューラルネットワーク回路 - Google Patents

ニューラルネットワーク回路 Download PDF

Info

Publication number
JP6985988B2
JP6985988B2 JP2018117762A JP2018117762A JP6985988B2 JP 6985988 B2 JP6985988 B2 JP 6985988B2 JP 2018117762 A JP2018117762 A JP 2018117762A JP 2018117762 A JP2018117762 A JP 2018117762A JP 6985988 B2 JP6985988 B2 JP 6985988B2
Authority
JP
Japan
Prior art keywords
analog
signal
voltage
switch
mos transistor
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
JP2018117762A
Other languages
English (en)
Other versions
JP2019219990A (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2018117762A priority Critical patent/JP6985988B2/ja
Priority to US16/411,269 priority patent/US11386321B2/en
Publication of JP2019219990A publication Critical patent/JP2019219990A/ja
Application granted granted Critical
Publication of JP6985988B2 publication Critical patent/JP6985988B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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
    • 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
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/20Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits

Landscapes

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

Description

本発明は、ニューラルネットワーク回路に関する。
人工知能、すなわち、AI(Artificial Intelligence)は、多数のセンサから得たビッグデータにもとづく状況認識や自動運転をはじめとして、多岐にわたる分野でブレークスルーを起こすと期待されている。
しかし、AIが従来の演繹的な処理を超える能力を発揮するためには、大規模なニューラルネットワーク回路に必要な処理を覚え込ませる学習を行い、さらに、学習済みの大規模なニューラルネットワーク回路を用いて推論を行う必要がある。
そのため、現状では、画像認識や言語翻訳などをAIで行うために、GPU(Graphics Processing Unit)を並立に動作させ、かつ繰り返し演算させて大規模なニューラルネットワーク回路を動作させている。しかし、並列演算にともなう消費電力の増大や、繰り返し演算のために必要なメモリアクセスにともなう消費電力と演算遅延時間の増大が課題となっていた。
今後は、AIに期待されるタスクの複雑化や、より高い認識精度への要求に応えるために、さらに大規模なニューラルネットワーク回路が必要になると考えられる。その結果、さらに大きな消費電力、演算遅延時間になると予想される。一方で、リアルタイム性、通信量削減、セキュリティなどの要望から、電力バジェットの限られるエッジ端末上での低電力高速AIの実現が期待され始めている。
そこで、従来のデジタル回路による演算に代わり、電力効率が良く、メモリアクセス頻度の少ないアナログ回路による演算を取り入れたニューラルネットワーク回路が検討され始めている。
一般に、ニューラルネットワーク回路は、積和演算と活性化関数と呼ばれる非線形演算を多用する。例えば、特許文献1には、容量素子とスイッチを用いたアナログ回路による乗算の方法が記載されている。
特開平6−168349号公報
しかし、特許文献1に記載の方法では、容量素子やスイッチの占める面積が大きくなってしまう。このため、大規模なニューラルネットワーク回路をチップ上に集積することができず、簡単なタスクしかこなすことができない。また、同じチップ上の演算リソースを繰り返し再利用する場合は、そのために必要なメモリ7アクセスにともなう消費電力や演算遅延時間の増大が問題になる。
本発明の目的は、高速低電力のアナログ演算を取り入れた大規模なニューラルネットワーク回路をチップ上に集積することにある。
本発明の一態様のニューラルネットワーク回路は、デジタル入力信号をアナログ入力電圧に変換する複数のD/A変換器と、複数の前記D/A変換器にそれぞれ接続され、前記アナログ入力電圧とデジタル信号である重み係数とを乗算して所定の乗算結果を出力する複数のアナログデジタル乗算部と、複数の前記アナログデジタル乗算部から出力される前記乗算結果を加算した結果に対して、活性化関数に相当するアナログ処理を行うアナログ活性化関数回路と、を有するニューラルネットワーク回路であって、前記アナログデジタル乗算部の各々は、前記アナログ入力電圧が接続される出力ノードと、前記デジタル信号に相当する少なくとも一つのビット信号に対応して設けられたMOSトランジスタと、を有し、前記MOSトランジスタは、ソース端子とドレイン端子とゲート端子を有し、前記ソース端子とドレイン端子は前記出力ノードに接続され、前記ゲート端子には、前記ビット信号に基づく電圧が印加され、前記乗算結果として、前記アナログ入力電圧と前記ビット信号の積に対応する電荷信号を出力し、複数の前記アナログデジタル乗算部は、複数の前記出力ノードを接続することにより、前記アナログデジタル乗算部の各々の前記電荷信号の和に対応するアナログ積和電圧を生成することを特徴とする。
本発明の一態様のニューラルネットワーク回路は、デジタル入力信号をアナログ入力電圧に変換する複数のD/A変換器と、複数の前記D/A変換器にそれぞれ接続され、前記アナログ入力電圧とデジタル信号である重み係数とを乗算して所定の乗算結果を出力する複数のアナログデジタル乗算部と、複数の前記アナログデジタル乗算部から出力される前記乗算結果を加算した結果に対して、活性化関数に相当するアナログ処理を行うアナログ活性化関数回路と、を有するニューラルネットワーク回路であって、前記アナログデジタル乗算部の各々は、前記アナログ入力電圧が接続される出力ノードと、前記デジタル信号に相当する少なくとも一つのビット信号に対応して設けられたMOSトランジスタと、を有し、前記MOSトランジスタは、ソース端子とドレイン端子とゲート端子を有し、前記ゲート端子は前記出力ノードに接続され、前記ソース端子と前記ドレイン端子には、前記ビット信号に基づく電圧が印加され、前記乗算結果として、前記アナログ入力電圧と前記ビット信号の積に対応する電荷信号を出力し、複数の前記アナログデジタル乗算部は、複数の前記出力ノードを接続することにより、前記アナログデジタル乗算部の各々の前記電荷信号の和に対応するアナログ積和電圧を生成することを特徴とする。
本発明の一態様のニューラルネットワーク回路は、デジタル入力信号をアナログ入力電圧に変換する複数の第1のD/A変換器と、複数の前記第1のD/A変換器にそれぞれ接続され、前記アナログ入力電圧とデジタル信号である重み係数とを乗算して所定の乗算結果をアナログ信号として出力する複数のアナログデジタル乗算部と、前記アナログ信号としての前記乗算結果を加算した結果をデジタル信号に変換するA/D変換器と、前記A/D変換器から出力される前記デジタル信号としての前記乗算結果を加算した結果に対して、活性化関数に相当するデジタル処理を行うデジタル活性化関数回路と、前記デジタル活性化関数回路のデジタル出力信号をアナログ電圧に変換する第2のD/A変換器と、を有するニューラルネットワーク回路であって、前記アナログデジタル乗算部の各々は、前記アナログ入力電圧が接続される出力ノードと、前記デジタル信号に相当する少なくとも一つのビット信号に対応して設けられたMOSトランジスタと、を有し、前記MOSトランジスタは、ソース端子とドレイン端子とゲート端子を有し、前記ソース端子とドレイン端子は前記出力ノードに接続され、前記ゲート端子には、前記ビット信号に基づく電圧が印加され、前記乗算結果として、前記アナログ入力電圧と前記ビット信号の積に対応する電荷信号を出力し、複数の前記アナログデジタル乗算部は、複数の前記出力ノードを接続することにより、前記アナログデジタル乗算部の各々の前記電荷信号の和に対応するアナログ積和電圧を生成することを特徴とする。
本発明の一態様によれば、高速低電力のアナログ演算を取り入れた大規模なニューラルネットワーク回路をチップ上に集積することができる。
実施例1のニューラルネットワーク回路の構成を示す図である。 実施例2のニューラルネットワーク回路の構成を示す図である。 実施例1のアナログデジタル乗算部の構成を示す図である。 実施例3のアナログデジタル乗算部の構成を示す図である。 実施例4のアナログデジタル乗算部の構成を示す図である。 実施例5のアナログデジタル乗算部の構成を示す図である。 実施例6のアナログデジタル乗算部の構成を示す図である。 実施例7のアナログデジタル乗算部の構成を示す図である。 実施例1の動作タイムチャートを示す図である。 実施例2の動作タイムチャートを示す図である。 実施例8のアナログデジタル乗算部の構成を示す図である。
以下、図面を用いて、実施例について説明する。
図1を参照して、実施例1のニューラルネットワーク回路の構成について説明する。
図1に示すように、実施例1のニューラルネットワーク回路には、多数のデジタル信号が入力される。多数のデジタル信号のうちの例えば3つの入力信号である入力1、入力2、入力3はそれぞれ、D/A変換器11A、D/A変換器11B、D/A変換器11Cによりアナログ電圧に変換される。それぞれのアナログ電圧は、アナログデジタル乗算部(アナデジ乗算部)12A、アナログデジタル乗算部(アナデジ乗算部)12B、アナログデジタル乗算部(アナデジ乗算部)12Cに入力される。
前記アナログデジタル乗算部12A、前記アナログデジタル乗算部12B、前記アナログデジタル乗算部12Cには、それぞれ、デジタル信号である重み係数1、重み係数2、重み係数3が入力されている。アナログデジタル乗算部12Aは、D/A変換器11Aが出力するアナログ電圧と、デジタル信号である重み係数1との乗算結果に対応する第一の電荷信号を出力する。
同様に、アナログデジタル乗算部12Bは、D/A変換器11Bが出力するアナログ電圧と、デジタル信号である重み係数2との乗算結果に対応する第二の電荷信号を出力する。同様に、前記アナログデジタル乗算部12Cは、D/A変換器11Cが出力するアナログ電圧と、デジタル信号である重み係数3との乗算結果に対応する第三の電荷信号を出力する。
アナログデジタル乗算部12Aの出力はスイッチ13Aに接続され、アナログデジタル乗算部12Bの出力はスイッチ13Bに接続され、アナログデジタル乗算部12Cの出力はスイッチ13Cに接続される。スイッチ13A、スイッチ13B、スイッチ13Cがオンとなることで、アナログデジタル乗算部12A、アナログデジタル乗算部12B、アナログデジタル乗算部12Cのそれぞれの出力が互いに接続される。
その結果、第一の電荷信号と第二の電荷信号と第三の電荷信号の和に対応する第一の積和電圧が生成される。さらに、スイッチ13A、スイッチ13B、スイッチ13Cの他端はアナログ活性化関数回路14に接続されている。アナログ活性化関数回路14は、ステップ関数、または、シグモイド関数、またはReLU(Rectified Linear Unit)など、ニューラルネットワークとして必要な活性化関数の演算を模擬するアナログ回路である。アナログ活性化関数回路14は、入力される第一の積和電圧に対して、必要な活性化関数に相当する処理を施して、アナログ電圧として出力する。前記第一の積和電圧は、スイッチ13A、スイッチ13B、スイッチ13Cからアナログ活性化関数回路14に至る配線と、グランド、電源配線などとの間に形成される寄生容量、すなわち、配線容量16上に生成される。また、スイッチ13A、スイッチ13B、スイッチ13Cがオフの期間中に、前記配線と直流電位(グランド、電源電圧も含む)との間に挿入されたスイッチ15をオンとすることで、あらかじめ、配線容量16上の電荷の交流成分を放電し、ゼロにしておく。配線容量16の容量値だけでは不十分な場合は、追加の容量として、容量素子を前記配線と任意の直流電位との間に挿入してもよい。
なお、実施例1では、アナログデジタル乗算部12A〜12Cで始まりアナログ活性化関数回路14で終わる一まとまりの部分を「層」と呼ぶ。アナログデジタル乗算部12A、アナログデジタル乗算部12B、アナログデジタル乗算部12C、スイッチ13A、スイッチ13B、スイッチ13C、スイッチ15、配線容量16、及びアナログ活性化関数回路14は第1層に含まれる。
すなわち、アナログ活性化関数回路14が出力するアナログ電圧は、第1層の第1の出力である。アナログ電圧である第1層の第1の出力は、第2層のアナログデジタル乗算部12Dに入力される。また、図示されていないが同様な構成で生成される第1層の第2の出力は、アナログデジタル乗算部12Eに入力される。また、同じく図示されていないが同様な構成で生成される第1層の第3の出力は、アナログデジタル乗算部12Fに入力される。以降、第1層と同様に第2層において積和演算と活性化関数処理が行われ、第3層に伝達される。実施例1のニューラルネットワーク回路に入力される多数のデジタル信号に対して、上記の処理が深い層まで行われ、最終層の各出力からAI認識結果が得られる。
図3を参照して、アナログデジタル乗算部12A〜12Cの構成について説明する。
アナログデジタル乗算部12A〜12Cのアナログ入力電圧VINは、スイッチ31を介して、出力ノードOUTに接続されている。スイッチ31はクロック信号φにもとづいてオン/オフが制御される。また、重み係数であるアナログデジタル乗算部12A〜12Cのデジタル入力信号は、1本または複数本のビット信号で表される。実施例1では4ビットの例を示している。
アナログデジタル乗算部12A〜12Cは、4本のビット信号にそれぞれ対応するMOSトランジスタ32、MOSトランジスタ33、MOSトランジスタ34、MOSトランジスタ35を備えている。これらはNMOSである。それぞれのMOSトランジスタは、そのソース端子とドレイン端子が出力ノードに接続され、さらに、そのゲート端子には、それぞれのビット信号にもとづく電圧が印加されている。
すなわち、重み係数がW3,W2,W1,W0の4ビットのビット信号で表されている場合、MOSトランジスタ32のゲート端子には、クロック信号φとW3信号の論理積(AND)出力信号が印加される。また、MOSトランジスタ33のゲート端子には、クロック信号φとW2信号の論理積(AND)出力信号が印加される。また、MOSトランジスタ34のゲート端子には、クロック信号φと前記W1信号の論理積(AND)出力信号が印加される。さらに、MOSトランジスタ35のゲート端子には、クロック信号φとW0信号の論理積(AND)出力信号が印加される。
MOSトランジスタ32、MOSトランジスタ33、MOSトランジスタ34、MOSトランジスタ35のバックゲート端子は、DC電位であるグランド電位に接続されている。なお、これらのバックゲート端子をグランド電位以外の直流電位に接続してもよい。ここで、重み係数のW3,W2,W1,W0ビット信号による表現において、W3がMSB(Most Significant Bit)、W0がLSB(Least Significant Bit)である場合、MOSトランジスタ32、MOSトランジスタ33、MOSトランジスタ34、MOSトランジスタ35の例えばゲート幅の比を8:4:2:1に選ぶとよい。
図9を参照して、実施例1のニューラルネットワーク回路の動作について説明する。
図9のタイムチャートに示すように、図1における初段のD/A変換器11A、D/A変換器11B、D/A変換器11Cのそれぞれのアナログ出力電圧は、図9の最上部の波形のように変化している。これに対して、第1層に属する各アナログデジタル乗算部12A〜12Cのクロック信号φは、図9の「第1層のφ」の波形となる。
クロック信号φがハイ電圧の期間、図3におけるスイッチ31はオンとなり、アナログ入力電圧VIN、すなわち、図9における「初段D/A変換の出力」が前記出力ノードOUT上に印加される。なお、前記期間中は、図1におけるスイッチ13A、スイッチ13B、スイッチ13Cはオフとなっている。一方、スイッチ15はオンとなり、配線容量16上の電荷の交流成分を放電し、ゼロにする。
上記の通り、MOSトランジスタ32のゲート端子には、クロック信号φとW3信号の論理積(AND)出力信号が印加される。MOSトランジスタ33のゲート端子には、クロック信号φとW2信号の論理積(AND)出力信号が印加される。MOSトランジスタ34のゲート端子には、クロック信号φとW1信号の論理積(AND)出力信号が印加される。MOSトランジスタ35のゲート端子には、クロック信号φとW0信号の論理積(AND)出力信号が印加される。
このため、W3、W2、W1、W0ビット信号のうち、ハイ電圧(論理値=1)となっているビット信号に対応するMOSトランジスタのゲート電圧はハイ電圧、すなわち、電源電圧と等しい電圧となる。また、ロー電圧(論理値=0)となっているビット信号に対応するMOSトランジスタのゲート電圧はロー電圧、すなわち、グランド電位となっている。
そのため、ハイ電圧となっているビット信号に対応するMOSトランジスタはオン状態となり、そのゲート端子と、ソース端子とドレイン端子との間に、ゲート幅に比例したチャネル容量が形成される。ソース端子とドレイン端子は、アナログ入力電圧VINが印加されている出力ノードOUTに接続されている。このため、ハイ電圧となっているビット信号に対応するMOSトランジスタのチャネル容量には、アナログ入力電圧VINとゲート幅の積に対応する電荷が充電される。一方、ロー電圧となっているビット信号に対応するMOSトランジスタはオフ状態となり、チャネル容量は形成されないため電荷も充電されない。
以上から、クロック信号φがハイ電圧である期間中に、MOSトランジスタ32、MOSトランジスタ33、MOSトランジスタ34、MOSトランジスタ35に充電される合計の電荷量は、VIN*(8*W3+4*W2+2*W1+1*W0)に比例する。すなわち、アナログ入力電圧と重み係数の値の積に対応する電荷量となっている。
なお、図3におけるCPARA3、CPARA2、CPARA1、CPARA0は上記チャネル容量値、ゲートソース間の固定値のオーバーラップ容量値及びゲートドレイン間の固定値のオーバーラップ容量値の和であり、チャネル容量値は上記の通りその存否が制御される。また、図3におけるCJ3、CJ2、CJ1、CJ0はMOSトランジスタ32、MOSトランジスタ33、MOSトランジスタ34、MOSトランジスタ35の固定値の接合容量値である。本発明では、上記の通り存否を制御できるチャネル容量値が、固定のオーバーラップ容量値と接合容量値の総和よりも十分に大きいことが必要となるため、MOSトランジスタ32、MOSトランジスタ33、MOSトランジスタ34、MOSトランジスタ35のゲート長を必要な程度に長くして、この条件を満足させる。
クロック信号φがロー電圧の期間は、スイッチ31がオフとなり、アナログ入力電圧は出力ノードOUTから遮断される。上記の通り、MOSトランジスタ32のゲート端子には、クロック信号φとW3信号の論理積(AND)出力信号が印加される。MOSトランジスタ33のゲート端子には、クロック信号φと前記W2信号の論理積(AND)出力信号が印加される。MOSトランジスタ34のゲート端子には、クロック信号φとW1信号の論理積(AND)出力信号が印加される。MOSトランジスタ35のゲート端子には、クロック信号φとW0信号の論理積(AND)出力信号が印加される。このため、クロック信号φがロー電圧の期間は、MOSトランジスタ32、MOSトランジスタ33、MOSトランジスタ34、MOSトランジスタ35のゲート電圧はいずれもロー電圧、すなわち、グランド電位となる。
そのため、MOSトランジスタ32、MOSトランジスタ33、MOSトランジスタ34、MOSトランジスタ35は、いずれもオフ状態となり、チャネル容量が消失する。このため、アナログ入力電圧と重み係数の値の積に対応する電荷量は、MOSトランジスタ32、MOSトランジスタ33、MOSトランジスタ34、MOSトランジスタ35から出力ノードOUTに向けて電荷信号として放出される。
第1層のクロック信号φがロー電圧の期間において、図1におけるスイッチ13A、スイッチ13B、スイッチ13Cはオンとなる。それにより、アナログデジタル乗算部12A、アナログデジタル乗算部12B、アナログデジタル乗算部12Cの出力が互いに接続され、これらから放出される電荷信号が加算される。加算された電荷信号が配線容量16上に充電されることで、第一の積和電圧が生成される。なお、この期間において、スイッチ15はオフになっている。
さらに、前記第1層のクロック信号φがロー電圧の期間において、アナログ活性化関数回路14は、第一の積和電圧に対して、活性化関数に相当する処理を施して、アナログ電圧として出力する。第2層のアナログデジタル乗算部12D、アナログデジタル乗算部12E、アナログデジタル乗算部12Fは、図9における第2層のクロック信号φにより上記の動作を行う。
第1層の各アナログデジタル乗算部が電荷の前記放出を行う期間中に、第2層の各アナログデジタル乗算部は電荷の前記充電を行う。このため、第2層のクロック信号φは第1層のクロック信号φに対して半周期ずらしている。同様に、第3層のクロック信号φは第2層のクロック信号φに対して半周期ずれていればよいため、第1層のクロック信号φと同じ波形となっている。
このように、実施例1においては、MOSトランジスタのチャネル容量のオン/オフ特性を利用することで、一つのMOSトランジスタを容量素子とスイッチ素子に兼用し、電荷領域でアナログ積和演算を行っている。これにより、積和演算を小面積のアナログ回路で実現できるため、大規模なニューラルネットワーク回路をチップ上に集積できる。
図2を参照して、実施例2のニューラルネットワーク回路の構成について説明する。
図2に示すように、実施例2のニューラルネットワーク回路には多数のデジタル信号が入力される。多数のデジタル信号のうちの例えば3つの入力信号である入力1、入力2、入力3はそれぞれ、D/A変換器11A、D/A変換器11B、D/A変換器11Cによりアナログ電圧に変換される。それぞれのアナログ電圧は、アナログデジタル乗算部(アナデジ乗算部)12A、アナログデジタル乗算部(アナデジ乗算部)12B、アナログデジタル乗算部(アナデジ乗算部)12Cに入力される。
アナログデジタル乗算部12A、アナログデジタル乗算部12B、アナログデジタル乗算部12Cには、それぞれ、デジタル信号である重み係数1、重み係数2、重み係数3も入力されている。アナログデジタル乗算部12Aは、D/A変換器11Aが出力するアナログ電圧と、デジタル信号である重み係数1との乗算結果に対応する第一の電荷信号を出力する。アナログデジタル乗算部12Bは、D/A変換器11Bが出力するアナログ電圧と、デジタル信号である前記重み係数2との乗算結果に対応する第二の電荷信号を出力する。アナログデジタル乗算部12Cは、D/A変換器11Cが出力するアナログ電圧と、デジタル信号である重み係数3との乗算結果に対応する第三の電荷信号を出力する。
アナログデジタル乗算部12Aの出力はスイッチ13Aに接続される。アナログデジタル乗算部12Bの出力はスイッチ13Bに接続される。アナログデジタル乗算部12Cの出力はスイッチ13Cに接続される。スイッチ13A、スイッチ13B、スイッチ13Cがオンとなることで、アナログデジタル乗算部12A、アナログデジタル乗算部12B、アナログデジタル乗算部12Cのそれぞれの出力が互いに接続される。その結果、第一の電荷信号と第二の電荷信号と第三の電荷信号の和に対応する第一の積和電圧が生成される。
さらに、スイッチ13A、スイッチ13B、スイッチ13Cの他端はA/D変換器21に接続されている。A/D変換器21は第一の積和電圧をデジタル値に変換する。A/D変換器21の出力はデジタル活性化関数回路22に接続されている。デジタル活性化関数回路22は、ステップ関数、または、シグモイド関数、またはReLUなど、ニューラルネットワークとして必要な活性化関数の演算を行うデジタル回路である。デジタル活性化関数回路22は、A/D変換器21から出力されるデジタル値に対して、必要な活性化関数に相当する処理を施して、デジタル値として出力する。デジタル活性化関数回路22の出力はD/A変換器11Dに接続される。D/A変換器11Dは、デジタル活性化関数回路22の出力をアナログ電圧に変換する。前記第一の積和電圧は、スイッチ13A、スイッチ13B、スイッチ13CからA/D変換器21に至る配線と、グランド、電源配線などとの間に形成される寄生容量、すなわち、配線容量16上に生成される。また、スイッチ13A、スイッチ13B、スイッチ13Cがオフの期間中に、前記配線と直流電位(グランド、電源電圧も含む)との間に挿入されたスイッチ15をオンとすることで、あらかじめ、配線容量16上の電荷の交流成分を放電し、ゼロにしておく。配線容量16の容量値だけでは不十分な場合は、追加の容量として、容量素子を前記配線と任意の直流電位との間に挿入してもよい。
なお、実施例2では、アナログデジタル乗算部12A〜12Cで始まりD/A変換器11Dで終わる一まとまりの部分を「層」と呼ぶ。アナログデジタル乗算部12A、アナログデジタル乗算部12B、アナログデジタル乗算部12C、スイッチ13A、スイッチ13B、スイッチ13C、スイッチ15、配線容量16、A/D変換器21、デジタル活性化関数回路22、D/A変換器11Dは第1層に含まれる。
すなわち、D/A変換器11Dが出力する前アナログ電圧は、第1層の第1の出力である。アナログ電圧である第1層の第1の出力は、第2層のアナログデジタル乗算部12Dに入力される。また、図示されていないが同様な構成で生成される第1層の第2の出力は、アナログデジタル乗算部12Eに入力される。また、同じく図示されていないが同様な構成で生成される第1層の第3の出力は、アナログデジタル乗算部12Fに入力される。
以降、第1層と同様に第2層において積和演算と活性化関数処理が行われ、第3層に伝達される。実施例2のニューラルネットワーク回路に入力される多数のデジタル信号に対して、上記の処理が深い層まで行われ、最終層の各出力からAI認識結果が得られる。
図10を参照して、実施例2のニューラルネットワーク回路の動作について説明する。
図10のタイムチャートに示すように、初段のD/A変換器11A、D/A変換器11B、D/A変換器11Cのそれぞれのアナログ出力電圧は、図10の最上部の波形のように変化している。これに対して、第1層に属する各アナログデジタル乗算部の前記クロック信号φは図10の「第1層のφ」の波形となる。
実施例1と同様に、第1層に属する各アナログデジタル乗算部は、第1層のクロック信号φがハイ電圧の期間中、図3におけるMOSトランジスタ32、MOSトランジスタ33、MOSトランジスタ34、MOSトランジスタ35に、アナログデジタル乗算部に入力されるアナログ入力電圧と重み係数の積に対応する電荷が充電される。また、実施例1と同様に、第1層のクロック信号φがロー電圧の期間は、アナログデジタル乗算部の出力ノードに向けて電荷が放出される。
実施例1と同様に、第1層のクロック信号φがロー電圧の期間において、図2におけるスイッチ13A、スイッチ13B、スイッチ13Cはオンとなる。それにより、アナログデジタル乗算部12A、アナログデジタル乗算部12B、アナログデジタル乗算部12Cの出力が互いに接続され、これらから放出される前記電荷信号が加算される。加算された電荷信号が配線容量16上に充電されることで、第一の積和電圧が生成される。
なお、第1層のクロック信号φがロー電圧の期間において、スイッチ15はオフになっている。
さらに、第1層のクロック信号φがロー電圧の期間において、A/D変換器21は第一の積和電圧に対するA/D変換を行い、例えば、第1層のクロック信号φがハイ電圧になるタイミングでA/D変換の結果を出力する。また、A/D変換器21の後段のデジタル活性化関数回路22とD/A変換器11Dは、前記タイミングに呼応して動作し、それぞれの出力が更新される。第2層のアナログデジタル乗算部12D、アナログデジタル乗算部12E、アナログデジタル乗算部12Fは、図10における第2層のクロック信号φにより上記の動作を行う。
実施例2では、前記D/A変換器11Dの更新された出力を受けるために、第2層のクロック信号φを第1層のクロック信号φと同じ波形の信号としている。同様に、第3層以下のクロック信号φも第1層のクロック信号φと同じ波形の信号を適用できる。
このように、実施例2によれば、MOSトランジスタのチャネル容量のオン/オフ特性を利用することで、一つのMOSトランジスタを容量素子とスイッチ素子に兼用し、電荷領域でアナログ積和演算を行っている。これにより、積和演算を小面積のアナログ回路で実現できるため、大規模なニューラルネットワーク回路をチップ上に集積できる。
さらに、実施例2では、実施例1と比較して、A/D変換器21、D/A変換器11Dが必要であるが、活性化関数回路にデジタル回路を適用できるため、演算の精度がより高くなる。
図4を参照して、実施例3のアナログデジタル乗算部12A〜12Cの構成について説明する。
実施例3では、図3のアナログデジタル乗算部における各MOSトランジスタを、NMOSからPMOSに置換している。PMOSとすることで1/f雑音の影響を低減することができる。
図4に示すように、アナログデジタル乗算部のアナログ入力電圧VINは、スイッチ41を介して、出力ノードOUTに接続されている。スイッチ41はクロック信号φにもとづいてオン/オフが制御される。また、重み係数であるアナログデジタル乗算部のデジタル入力信号は、1本または複数本のビット信号で表される。実施例3では4ビットの例を示している。
アナログデジタル乗算部は、4本のビット信号にそれぞれ対応するPMOSトランジスタ42、PMOSトランジスタ43、PMOSトランジスタ44、PMOSトランジスタ45を備えている。それぞれのPMOSトランジスタは、そのソース端子とドレイン端子が出力ノードOUTに接続されている。ゲート端子には、それぞれのビット信号にもとづく電圧が印加されている。
すなわち、重み係数がW3,W2,W1,W0の4ビットのビット信号で表されている場合、PMOSトランジスタ42のゲート端子には、クロック信号φの反転信号とW3信号の反転信号の論理和(OR)出力信号が印加される。PMOSトランジスタ43のゲート端子には、クロック信号φの反転信号とW2信号の反転信号の論理和(OR)出力信号が印加される。PMOSトランジスタ44のゲート端子には、クロック信号φの反転信号とW1信号の反転信号の論理和(OR)出力信号が印加される。PMOSトランジスタ45のゲート端子には、クロック信号φの反転信号とW0信号の反転信号の論理和(OR)出力信号が印加されている。
PMOSトランジスタ42、PMOSトランジスタ43、PMOSトランジスタ44、PMOSトランジスタ45のバックゲート端子は、DC電位として電源電圧(VDD)に接続されている。なお、これらのバックゲート端子を電源電圧以外の直流電位に接続してもよい。
ここで、重み係数の前記W3,W2,W1,W0ビット信号による表現において、W3がMSB(Most Significant Bit)、W0がLSB(Least Significant Bit)である場合、PMOSトランジスタ42、PMOSトランジスタ43、PMOSトランジスタ44、PMOSトランジスタ45の例えばゲート幅の比を8:4:2:1に選ぶとよい。
前記クロック信号φがハイ電圧の期間、図4におけるスイッチ41はオンとなり、アナログ入力電圧VINが出力ノードOUT上に印加される。また、上記の通り、PMOSトランジスタ42のゲート端子には、前記クロック信号φの反転信号とW3信号の反転信号の論理和(OR)出力信号が印加される。PMOSトランジスタ43のゲート端子には、クロック信号φの反転信号とW2信号の反転信号の論理和(OR)出力信号が印加される。PMOSトランジスタ44のゲート端子には、クロック信号φの反転信号とW1信号の反転信号の論理和(OR)出力信号が印加される。PMOSトランジスタ45のゲート端子には、クロック信号φの反転信号とW0信号の反転信号の論理和(OR)出力信号が印加される。
このため、前記W3、W2、W1、W0ビット信号のうち、ハイ電圧(論理値=1)となっているビット信号に対応する前記PMOSトランジスタのゲート電圧はロー電圧、すなわち、グランド電位となり、ロー電圧(論理値=0)となっているビット信号に対応するPMOSトランジスタのゲート電圧はハイ電圧、すなわち電源電圧と等しい電圧となっている。
そのため、前記ハイ電圧となっているビット信号に対応するPMOSトランジスタはオン状態となり、そのゲート端子と、前記接続されたソース端子とドレイン端子との間に、ゲート幅に比例したチャネル容量が形成される。接続されたソース端子とドレイン端子は、アナログ入力電圧VINが印加されている出力ノードOUTに接続されている。このため、前記ハイ電圧となっているビット信号に対応するPMOSトランジスタのチャネル容量には、アナログ入力電圧VINとゲート幅の積に対応する電荷が充電される。一方、ロー電圧となっているビット信号に対応するPMOSトランジスタはオフ状態となり、チャネル容量は形成されないため電荷も充電されない。
以上から、クロック信号φがハイ電圧である期間中に、PMOSトランジスタ42、PMOSトランジスタ43、PMOSトランジスタ44、PMOSトランジスタ45に充電される合計の電荷量は、VIN*(8*W3+4*W2+2*W1+1*W0)に比例する。すなわち、アナログ入力電圧と重み係数の値の積に対応する電荷量となっている。
なお、図4におけるCPARA3、CPARA2、CPARA1、CPARA0は、チャネル容量値、ゲートソース間の固定値のオーバーラップ容量値及びゲートドレイン間の固定値のオーバーラップ容量値の和である。チャネル容量値は上記の通り、その存否が制御される。また、図4におけるCJ3、CJ2、CJ1、CJ0はMOSトランジスタ42、MOSトランジスタ43、MOSトランジスタ44、MOSトランジスタ45の固定値の接合容量値である。本発明では、上記の通り存否を制御できるチャネル容量値が、固定のオーバーラップ容量値と接合容量値の総和よりも十分に大きいことが必要となるため、MOSトランジスタ42、MOSトランジスタ43、MOSトランジスタ44、MOSトランジスタ45のゲート長を必要な程度に長くして、この条件を満足させる。
クロック信号φがロー電圧の期間は、スイッチ41がオフとなり、アナログ入力電圧は出力ノードOUTから遮断される。また、上記の通り、PMOSトランジスタ42のゲート端子には、クロック信号φの反転信号とW3信号の反転信号の論理和(OR)出力信号が印加される。PMOSトランジスタ43のゲート端子には、クロック信号φの反転信号とW2信号の反転信号の論理和(OR)出力信号が印加される。PMOSトランジスタ44のゲート端子には、クロック信号φの反転信号とW1信号の反転信号の論理和(OR)出力信号が印加される。PMOSトランジスタ45のゲート端子には、クロック信号φの反転信号とW0信号の反転信号の論理和(OR)出力信号が印加される。
このため、クロック信号φがロー電圧の期間は、PMOSトランジスタ42、PMOSトランジスタ43、PMOSトランジスタ44、PMOSトランジスタ45のゲート電圧はいずれも電源電圧となる。そのため、PMOSトランジスタ42、PMOSトランジスタ43、PMOSトランジスタ44、PMOSトランジスタ45は、いずれもオフ状態となり、チャネル容量が消失する。このため、アナログ入力電圧と重み係数の値の積に対応する電荷量は、PMOSトランジスタ42、PMOSトランジスタ43、PMOSトランジスタ44、PMOSトランジスタ45から出力ノードOUTに向けて電荷信号として放出される。それ以外の動作は実施例1や実施例2と同様であるため、その説明は省略する。
実施例3では、MOSトランジスタのチャネル容量のオン/オフ特性を利用することで、一つのMOSトランジスタを容量素子とスイッチ素子に兼用し、電荷領域でアナログ積和演算を行っている。これにより、積和演算を小面積のアナログ回路で実現できるため、大規模なニューラルネットワーク回路をチップ上に集積できる。
図5を参照して、実施例4のアナログデジタル乗算部12A〜12Cの構成について説明する。
図5に示すように、実施例4では、図3のアナログデジタル乗算部を差動回路構成としている。すなわち、アナログ入力電圧VINは、正側入力電圧VINPと負側入力電圧VINNの差の電圧である。正側入力電圧VINPは、正側の出力ノードOUTに正側のスイッチ31Pを介して接続される。正側のそれぞれのMOSトランジスタ32P、33P、34P、35Pのソース端子とドレイン端子が、正側の出力ノードOUTに接続されている。
また、負側入力電圧VINNは、負側の出力ノードOUTに負側のスイッチ31Nを介して接続されている。負側のそれぞれのMOSトランジスタ32N、33N、34N、35Nのソース端子とドレイン端子が負側の出力ノードOUTに接続されている。また、MOSトランジスタ32Pと32N、MOSトランジスタ33Pと33N、MOSトランジスタ34Pと34N、MOSトランジスタ35Pと35Nには、それぞれのビット信号にもとづく電圧が印加されている。
すなわち、重み係数がW3,W2,W1,W0の4ビットのビット信号で表されている場合、MOSトランジスタ32P、32Nのゲート端子には、クロック信号φとW3信号の論理積(AND)出力信号が印加される。MOSトランジスタ33P、33Nのゲート端子には、クロック信号φとW2信号の論理積(AND)出力信号が印加される。MOSトランジスタ34P、34Nのゲート端子には、前記クロック信号φと前記W1信号の論理積(AND)出力信号が印加される。MOSトランジスタ35P、35Nのゲート端子には、クロック信号φとW0信号の論理積(AND)出力信号が印加されている。
MOSトランジスタ32P、32N、前記MOSトランジスタ33P、33N、前記MOSトランジスタ34P、34N、前記MOSトランジスタ35P、35Nのバックゲート端子は、DC電位としてグランド電位に接続されている。なお、これらのバックゲート端子をグランド電位以外の直流電位に接続してもよい。
ここで、重み係数の前記W3, W2, W1, W0ビット信号による表現において、W3がMSB(Most Significant Bit)、W0がLSB(Least Significant Bit)である場合、MOSトランジスタ32P、32N、MOSトランジスタ33P、33N、MOSトランジスタ34P、34N、MOSトランジスタ35P、35Nの例えばゲート幅の比を8:4:2:1に選ぶとよい。
以上の差動回路構成において、実施例1における図3の説明と同様な動作を行い、クロック信号φがロー電圧である期間に、正側の出力ノードOUTには、VINP*(8*W3+4*W2+2*W1+1*W0)に対応する電荷が放出される。負側の出力ノードOUTには、VINN*(8*W3+4*W2+2*W1+1*W0)に対応する電荷が放出される。実施例4のアナログデジタル乗算部の出力信号は、正側の出力ノードOUTに放出される電荷と負側の出力ノードOUTに放出される電荷の差分であるため、VIN*(8*W3+4*W2+2*W1+1*W0)に対応する電荷となる。
実施例4では、クロック信号φによるオーバーラップ容量の充放電にともなう電荷(クロックフィードスルーと呼ばれる電荷)の影響が差動間でキャンセルされて出力信号に現れない。すなわち、実際に正側の出力ノードOUTに放出される電荷はVINP*(8*W3+4*W2+2*W1+1*W0)に対応する成分以外に、クロック信号φによるオーバーラップ容量の充放電にともなう電荷も含んでいる。また、実際に負側の出力ノードOUTに放出される電荷はVINN*(8*W3+4*W2+2*W1+1*W0)に対応する成分以外に、クロック信号φによるオーバーラップ容量の充放電にともなう電荷も含んでいる。
しかし、クロック信号φによるオーバーラップ容量の充放電にともなう電荷は、正側の出力ノードOUTに放出される電荷と負側の出力ノードOUTに放出される電荷に同量含まれる。このため、これらの差分であるアナログデジタル乗算部の出力信号には、キャンセルされて現れない。
図6を参照して、実施例5のアナログデジタル乗算部12A〜12Cの構成について説明する。
実施例5では、図4のPMOS型アナログデジタル乗算部を差動回路構成としている。すなわち、アナログ入力電圧VINは、正側入力電圧VINPと負側入力電圧VINNの差の電圧である。正側入力電圧VINPは、正側の出力ノードOUTに正側のスイッチ41Pを介して接続されている。また、正側のそれぞれのPMOSトランジスタ42P、43P、44P、45Pのソース端子とドレイン端子が正側の出力ノードOUTに接続されている。
負側入力電圧VINNは、負側の出力ノードOUTに負側のスイッチ41Nを介して接続されている。負側のそれぞれのPMOSトランジスタ42N、43N、44N、45Nのソース端子とドレイン端子が負側の出力ノードOUTに接続されている。
PMOSトランジスタ42Pと42N、PMOSトランジスタ43Pと43N、PMOSトランジスタ44Pと44N、PMOSトランジスタ45Pと45Nには、それぞれのビット信号にもとづく電圧が印加されている。すなわち、重み係数がW3,W2,W1,W0の4ビットのビット信号で表されている場合、PMOSトランジスタ42P、42Nのゲート端子には、クロック信号φの反転信号と前記W3信号の反転信号の論理和(OR)出力信号が印加される。PMOSトランジスタ43P、43Nのゲート端子には、前記クロック信号φの反転信号と前記W2信号の反転信号の論理和(OR)出力信号が印加される。
PMOSトランジスタ44P、44Nのゲート端子には、クロック信号φの反転信号とW1信号の反転信号の論理和(OR)出力信号が印加される。PMOSトランジスタ45P、45Nのゲート端子には、クロック信号φの反転信号とW0信号の反転信号の論理和(OR)出力信号が印加される。また、PMOSトランジスタ42P、42N、PMOSトランジスタ43P、43N、PMOSトランジスタ44P、44N、PMOSトランジスタ45P、45Nのバックゲート端子は電源電圧に接続されている。
なお、これらのバックゲート端子を電源電圧以外の直流電位に接続してもよい。ここで、重み係数の前記W3,W2,W1,W0ビット信号による表現において、W3がMSB(Most Significant Bit)、W0がLSB(Least Significant Bit)である場合、PMOSトランジスタ42P、42N、PMOSトランジスタ43P、43N、PMOSトランジスタ44P、44N、PMOSトランジスタ45P、45Nの例えばゲート幅の比を8:4:2:1に選ぶとよい。
以上の差動回路構成において、実施例3における図4の説明と同様な動作を行い、クロック信号φがロー電圧である期間に、正側の出力ノードOUTには、VINP*(8*W3+4*W2+2*W1+1*W0)に対応する電荷が放出される。負側の出力ノードOUTには、VINN*(8*W3+4*W2+2*W1+1*W0)に対応する電荷が放出される。実施例5のアナログデジタル乗算部の出力信号は、正側の出力ノードOUTに放出される電荷と負側の出力ノードOUTに放出される前記電荷の差分であるため、VIN*(8*W3+4*W2+2*W1+1*W0)に対応する電荷となる。
実施例5では、実施例4と同様に、クロック信号φの反転信号によるオーバーラップ容量の充放電にともなう電荷(クロックフィードスルーと呼ばれる電荷)の影響が差動間でキャンセルされて出力信号に現れない。すなわち、実際に正側の出力ノードOUTに放出される電荷はVINP*(8*W3+4*W2+2*W1+1*W0)に対応する成分以外に、クロック信号φの反転信号によるオーバーラップ容量の充放電にともなう電荷も含んでいる。また、実際に負側の出力ノードOUTに放出される電荷はVINN*(8*W3+4*W2+2*W1+1*W0)に対応する成分以外に、クロック信号φの反転信号によるオーバーラップ容量の充放電にともなう電荷も含んでいる。
しかし、クロック信号φの反転信号によるオーバーラップ容量の充放電にともなう電荷は、正側の出力ノードOUTに放出される電荷と負側の出力ノードOUTに放出される電荷に同量含まれるため、これらの差分であるアナログデジタル乗算部の出力信号には、キャンセルされて現れない。
図7を参照して、実施例6のアナログデジタル乗算部12A〜12Cの構成について説明する。
実施例6では、図5の実施例4に対して、スイッチ71Pとスイッチ71Nを追加することで、負の重み係数に対する乗算を可能にしている。スイッチ71Pは、負側入力電圧VINNと正側の出力ノードOUTの間に挿入され、スイッチ71Nは、正側入力電圧VINPと負側の出力ノードOUTの間に挿入されている。
以上の構成において、正側入力電圧VINPと負側入力電圧VINNの差の電圧であるアナログ入力電圧VINと、正の重み係数の乗算を行う場合は、クロック信号φがハイ電圧である期間に、上記の通り、スイッチ31Pとスイッチ31Nをオンにして、スイッチ71Pとスイッチ71Nをオフにする。その結果、アナログデジタル乗算部の出力信号はVIN*(8*W3+4*W2+2*W1+1*W0)に対応する電荷となる。
一方、前記アナログ入力電圧VINと負の重み係数の乗算を行う場合は、前記クロック信号φがハイ電圧である期間に、スイッチ31Pとスイッチ31Nをオフにして、スイッチ71Pとスイッチ71Nはオンにする。その結果、正側のMOSトランジスタ32P、33P、34P、35Pには負側入力電圧VINNに対応する電荷が充電される。また、負側のMOSトランジスタ32N、33N、34N、35Nには正側入力電圧VINPに対応する電荷が充電される。
したがって、クロック信号φがロー電圧である期間に、正側の出力ノードOUTには、VINN*(8*W3+4*W2+2*W1+1*W0)に対応する電荷が放出される。負側の出力ノードOUTには、VINP*(8*W3+4*W2+2*W1+1*W0)に対応する電荷が放出される。アナログデジタル乗算部の出力信号は、正側の出力ノードOUTに放出される電荷と負側の出力ノードOUTに放出される電荷の差分であるため、−VIN*(8*W3+4*W2+2*W1+1*W0)に対応する電荷となる。これは、VIN*{−(8*W3+4*W2+2*W1+1*W0)}と等しいため、アナログ入力電圧と負の重み係数の乗算が行われたことになる。
実施例6では、以上の通り、負の重み係数との乗算を実現でき、かつ、実施例4と同様に、クロック信号φによるオーバーラップ容量の充放電にともなう電荷の影響をキャンセルできる。
図8を参照して、実施例7のアナログデジタル乗算部12A〜12Cの構成について説明する。
実施例7は、実施例6において、実施例3で説明したPMOS型のアナログデジタル乗算部を適用している。したがって、動作や効果はこれらの実施例と同様であるため、その説明は省略する。
図11を参照して、実施例8のアナログデジタル乗算部12A〜12Cの構成について説明する。
実施例8では、図3のアナログデジタル乗算部における各MOSトランジスタのゲート端子と、ソース端子とドレイン端子への接続を入れ換えている。
すなわち、アナログデジタル乗算部のアナログ入力電圧VINは、スイッチ31を介して、出力ノードOUTに接続されている。スイッチ31はクロック信号φにもとづいてオン/オフが制御される。また、重み係数であるアナログデジタル乗算部のデジタル入力信号は、1本または複数本のビット信号で表される。実施例8では4ビットの例を示している。
アナログデジタル乗算部は、4本のビット信号にそれぞれ対応するMOSトランジスタ32、MOSトランジスタ33、MOSトランジスタ34、MOSトランジスタ35を備えている。それぞれのMOSトランジスタは、そのゲート端子が出力ノードOUTに接続され、さらに、そのソース端子とドレイン端子が接続されて、それぞれのビット信号にもとづく電圧が印加されている。
すなわち、重み係数がW3,W2,W1,W0の4ビットのビット信号で表されている場合、MOSトランジスタ32のソース端子とドレイン端子には、クロック信号φの反転信号とW3信号の反転信号の論理和(OR)出力信号が印加される。MOSトランジスタ33のソース端子とドレイン端子には、クロック信号φの反転信号とW2信号の反転信号の論理和(OR)出力信号が印加される。MOSトランジスタ34のソース端子とドレイン端子には、クロック信号φの反転信号とW1信号の反転信号の論理和(OR)出力信号が印加される。MOSトランジスタ35のソース端子とドレイン端子には、クロック信号φの反転信号とW0信号の反転信号の論理和(OR)出力信号が印加される。
また、MOSトランジスタ32、MOSトランジスタ33、MOSトランジスタ34、MOSトランジスタ35のバックゲート端子は、DC電位としてグランド電位に接続されている。なお、これらのバックゲート端子をグランド電位以外の直流電位に接続してもよい。ここで、重み係数の前記W3,W2,W1,W0ビット信号による表現において、W3がMSB(Most Significant Bit)、W0がLSB(Least Significant Bit)である場合、MOSトランジスタ32、MOSトランジスタ33、MOSトランジスタ34、MOSトランジスタ35の例えばゲート幅の比を8:4:2:1に選ぶとよい。
クロック信号φがハイ電圧の期間、図11におけるスイッチ31はオンとなり、アナログ入力電圧VINが出力ノードOUT上に印加される。また、上記の通り、MOSトランジスタ32のソース端子とドレイン端子には、クロック信号φの反転信号とW3信号の反転信号の論理和(OR)出力信号が印加される。MOSトランジスタ33のソース端子とドレイン端子には、クロック信号φの反転信号とW2信号の反転信号の論理和(OR)出力信号が印加される。MOSトランジスタ34のソース端子とドレイン端子には、クロック信号φの反転信号とW1信号の反転信号の論理和(OR)出力信号が印加される。MOSトランジスタ35のソース端子とドレイン端子には、クロック信号φの反転信号とW0信号の反転信号の論理和(OR)出力信号が印加される。
このため、W3、W2、W1、W0ビット信号のうち、ハイ電圧(論理値=1)となっているビット信号に対応するMOSトランジスタのソース端子とドレイン端子はロー電圧、すなわち、グランド電位となり、ロー電圧(論理値=0)となっているビット信号に対応するMOSトランジスタのソース端子とドレイン端子はハイ電圧、すなわち電源電圧と等しい電圧となっている。
そのため、ハイ電圧となっているビット信号に対応するMOSトランジスタはオン状態となり、そのゲート端子と、ソース端子とドレイン端子との間に、ゲート幅に比例したチャネル容量が形成される。ゲート端子は、アナログ入力電圧VINが印加されている出力ノードOUTに接続されているため、ハイ電圧となっているビット信号に対応するMOSトランジスタのチャネル容量には、アナログ入力電圧VINとゲート幅の積に対応する電荷が充電される。一方、ロー電圧となっているビット信号に対応するMOSトランジスタはオフ状態となり、チャネル容量は形成されないため、電荷も充電されない。
以上から、前記クロック信号φがハイ電圧である期間中に、MOSトランジスタ32、MOSトランジスタ33、MOSトランジスタ34、MOSトランジスタ35に充電される合計の電荷量は、VIN*(8*W3+4*W2+2*W1+1*W0)に比例する。すなわち、前記アナログ入力電圧と前記重み係数の値の積に対応する電荷量となっている。
なお、図11におけるCPARA3、CPARA2、CPARA1、CPARA0は、チャネル容量値、ゲートソース間の固定値のオーバーラップ容量値およびゲートドレイン間の固定値のオーバーラップ容量値の和であり、チャネル容量値は上記の通り、その存否が制御される。本発明では、上記の通り存否を制御できるチャネル容量値が、固定のオーバーラップ容量値の総和よりも十分に大きいことが必要となるため、MOSトランジスタ32、MOSトランジスタ33、MOSトランジスタ34、MOSトランジスタ35のゲート長を必要な程度に長くして、この条件を満足させる。なお、本構成では、アナログ入力電圧VINがMOSトランジスタの接合容量に充電されないため、接合容量には影響されない利点がある。
クロック信号φがロー電圧の期間は、スイッチ31がオフとなり、アナログ入力電圧は出力ノードOUTから遮断される。また、上記の通り、MOSトランジスタ32のソース端子とドレイン端子には、クロック信号φの反転信号とW3信号の反転信号の論理和(OR)出力信号が印加される。MOSトランジスタ33のソース端子とドレイン端子には、クロック信号φの反転信号とW2信号の反転信号の論理和(OR)出力信号が印加される。MOSトランジスタ34のソース端子とドレイン端子には、クロック信号φの反転信号とW1信号の反転信号の論理和(OR)出力信号が印加される。MOSトランジスタ35のソース端子とドレイン端子には、クロック信号φの反転信号とW0信号の反転信号の論理和(OR)出力信号が印加される。
このため、クロック信号φがロー電圧の期間は、MOSトランジスタ32、MOSトランジスタ33、MOSトランジスタ34、MOSトランジスタ35のソース端子とドレイン端子はいずれも電源電圧が印加される。そのため、MOSトランジスタ32、MOSトランジスタ33、MOSトランジスタ34、MOSトランジスタ35は、いずれもオフ状態となり、チャネル容量が消失する。このため、アナログ入力電圧と重み係数の値の積に対応する電荷量は、MOSトランジスタ32、MOSトランジスタ33、MOSトランジスタ34、MOSトランジスタ35から出力ノードOUTに向けて電荷信号として放出される。それ以外の動作は実施例1や実施例2と同様であるためその説明は省略する。
実施例8では、MOSトランジスタのチャネル容量のオン/オフ特性を利用することで、一つのMOSトランジスタを容量素子とスイッチ素子に兼用し、電荷領域でアナログ積和演算を行っている。これにより、積和演算を小面積のアナログ回路で実現できるため、大規模なニューラルネットワーク回路をチップ上に集積できる。
11A、11B、11C、11D D/A変換器
12A、12B、12C、12D、12E、12F アナログデジタル乗算部
13A、13B、13C、13D、13E、13F スイッチ
14 アナログ活性化関数回路
15 スイッチ
16 配線容量
21 A/D変換器
22 デジタル活性化関数回路
31 スイッチ
32、33、34、35 NMOSトランジスタ
31P 正側スイッチ
32P、33P、34P、35P 正側NMOSトランジスタ
31N 負側スイッチ
32N、33N、34N、35N 負側NMOSトランジスタ
41 スイッチ
42、43、44、45 PMOSトランジスタ
41P 正側スイッチ
42P、43P、44P、45P 正側PMOSトランジスタ
41N 負側スイッチ
42N、43N、44N、45N 負側PMOSトランジスタ
71P、71N スイッチ
81P、81N スイッチ

Claims (13)

  1. デジタル入力信号をアナログ入力電圧に変換する複数のD/A変換器と、
    複数の前記D/A変換器にそれぞれ接続され、前記アナログ入力電圧とデジタル信号である重み係数とを乗算して所定の乗算結果を出力する複数のアナログデジタル乗算部と、
    複数の前記乗算結果を加算した加算結果を保持する容量と、
    前記加算結果に対して、活性化関数に相当するアナログ処理を行うアナログ活性化関数回路と、前記容量上の電荷の交流成分を放電するスイッチと、を有するニューラルネットワーク回路であって、
    前記アナログデジタル乗算部の各々は、
    前記アナログ入力電圧が接続される出力ノードと、
    前記デジタル信号に相当する少なくとも一つのビット信号に対応して設けられたMOSトランジスタと、を有し、
    前記MOSトランジスタは、ソース端子とドレイン端子とゲート端子を有し、
    前記ソース端子とドレイン端子は前記出力ノードに接続され、
    前記ゲート端子には、前記ビット信号に基づく電圧が印加され、
    前記乗算結果として、前記アナログ入力電圧と前記ビット信号の積に対応する電荷信号を出力し、
    複数の前記アナログデジタル乗算部は、
    複数の前記出力ノードを接続することにより、前記アナログデジタル乗算部の各々の前記電荷信号の和に対応するアナログ積和電圧を前記容量上に生成することを特徴とするニューラルネットワーク回路。
  2. 前記アナログデジタル乗算部は、
    前記アナログ入力電圧を前記出力ノードに接続するためのスイッチを更に有し、
    前記スイッチを制御することにより、前記アナログデジタル乗算部の各々の前記電荷信号が加算されて、前記電荷信号の和に対応する前記アナログ積和電圧を生成することを特徴とする請求項1に記載のニューラルネットワーク回路。
  3. 前記アナログ活性化関数回路は、
    前記加算結果としての前記アナログ積和電圧に対して、前記活性化関数に相当する前記アナログ処理を行い、この処理結果をアナログ電圧として出力することを特徴とする請求項1に記載のニューラルネットワーク回路。
  4. 前記MOSトランジスタはバックゲート端子を更に有し、
    前記バックゲート端子をDC電位に固定することを特徴とする請求項1に記載のニューラルネットワーク回路。
  5. 前記MOSトランジスタはNMOSで構成され、
    前記バックゲート端子は、前記DC電位としてグランド電位に固定されることを特徴とする請求項4に記載のニューラルネットワーク回路。
  6. 前記MOSトランジスタはPMOSで構成され、
    前記バックゲート端子は、前記DC電位として電源電圧に固定されることを特徴とする請求項4に記載のニューラルネットワーク回路。
  7. 前記アナログデジタル乗算部は、
    前記アナログ入力電圧が、正側入力電圧と負側入力電圧からなる差動信号で表わされ、
    前記正側入力電圧は、第1のスイッチを介して正側の前記出力ノードに接続され、
    正側の前記MOSトランジスタの前記ソース端子と前記ドレイン端子が正側の前記出力ノードに接続され、
    前記負側入力電圧は、第2のスイッチを介して負側の前記出力ノードに接続され、
    負側の前記MOSトランジスタの前記ソース端子と前記ドレイン端子が負側の前記出力ノードに接続され、
    前記正側の前記MOSトランジスタの前記ゲート端子及び負側の前記MOSトランジスタの前記ゲート端子には、前記ビット信号に基づく電圧がそれぞれ印加され、
    前記第1のスイッチ及び前記第2のスイッチを制御することにより、前記アナログデジタル乗算部の各々の前記電荷信号が加算されて、前記電荷信号の和に対応する前記アナログ積和電圧を生成することを特徴とする請求項1に記載のニューラルネットワーク回路。
  8. 前記アナログデジタル乗算部は、
    前記正側入力電圧を負側の前記出力ノードに接続する第3のスイッチと、
    前記負側入力電圧を正側の前記出力ノードに接続する第4のスイッチと、を更に有し、
    前記デジタル信号の正負の符号に基づいて、前記第1のスイッチ、前記第2のスイッチ、前記第3のスイッチ及び前記第4のスイッチを制御することにより、前記アナログ積和電圧を生成することを特徴とする請求項7に記載のニューラルネットワーク回路。
  9. デジタル入力信号をアナログ入力電圧に変換する複数のD/A変換器と、
    複数の前記D/A変換器にそれぞれ接続され、前記アナログ入力電圧とデジタル信号である重み係数とを乗算して所定の乗算結果を出力する複数のアナログデジタル乗算部と、
    複数の前記乗算結果を加算した加算結果を保持する容量と、
    前記加算結果に対して、活性化関数に相当するアナログ処理を行うアナログ活性化関数回路と、前記容量上の電荷の交流成分を放電するスイッチと、を有するニューラルネットワーク回路であって、
    前記アナログデジタル乗算部の各々は、
    前記アナログ入力電圧が接続される出力ノードと、
    前記デジタル信号に相当する少なくとも一つのビット信号に対応して設けられたMOSトランジスタと、を有し、
    前記MOSトランジスタは、ソース端子とドレイン端子とゲート端子を有し、
    前記ゲート端子は前記出力ノードに接続され、
    前記ソース端子と前記ドレイン端子には、前記ビット信号に基づく電圧が印加され、
    前記乗算結果として、前記アナログ入力電圧と前記ビット信号の積に対応する電荷信号を出力し、
    複数の前記アナログデジタル乗算部は、
    複数の前記出力ノードを接続することにより、前記アナログデジタル乗算部の各々の前記電荷信号の和に対応するアナログ積和電圧を前記容量上に生成することを特徴とするニューラルネットワーク回路。
  10. 前記アナログデジタル乗算部は、
    前記アナログ入力電圧を前記出力ノードに接続するためのスイッチを更に有し、
    前記スイッチを制御することにより、前記アナログデジタル乗算部の各々の前記電荷信号が加算されて、前記電荷信号の和に対応する前記アナログ積和電圧を生成することを特徴とする請求項9に記載のニューラルネットワーク回路。
  11. 前記アナログ活性化関数回路は、
    前記加算結果としての前記アナログ積和電圧に対して、前記活性化関数に相当する前記アナログ処理を行い、この処理結果をアナログ電圧として出力することを特徴とする請求項9に記載のニューラルネットワーク回路。
  12. デジタル入力信号をアナログ入力電圧に変換する複数の第1のD/A変換器と、
    複数の前記第1のD/A変換器にそれぞれ接続され、前記アナログ入力電圧とデジタル信号である重み係数とを乗算して所定の乗算結果をアナログ信号として出力する複数のアナログデジタル乗算部と、
    複数の前記乗算結果を加算した加算結果を保持する容量と、
    アナログ電圧である前記加算結果をデジタル信号に変換するA/D変換器と、
    前記A/D変換器から出力される前記デジタル信号としての前記加算結果に対して、活性化関数に相当するデジタル処理を行うデジタル活性化関数回路と、
    前記デジタル活性化関数回路のデジタル出力信号をアナログ電圧に変換する第2のD/A変換器と、前記容量上の電荷の交流成分を放電するスイッチと、を有するニューラルネットワーク回路であって、
    前記アナログデジタル乗算部の各々は、
    前記アナログ入力電圧が接続される出力ノードと、
    前記デジタル信号に相当する少なくとも一つのビット信号に対応して設けられたMOSトランジスタと、を有し、
    前記MOSトランジスタは、ソース端子とドレイン端子とゲート端子を有し、
    前記ソース端子とドレイン端子は前記出力ノードに接続され、
    前記ゲート端子には、前記ビット信号に基づく電圧が印加され、
    前記乗算結果として、前記アナログ入力電圧と前記ビット信号の積に対応する電荷信号を出力し、
    複数の前記アナログデジタル乗算部は、
    複数の前記出力ノードを接続することにより、前記アナログデジタル乗算部の各々の前記電荷信号の和に対応するアナログ積和電圧を前記容量上に生成することを特徴とするニューラルネットワーク回路。
  13. 前記アナログデジタル乗算部は、
    前記アナログ入力電圧を前記出力ノードに接続するためのスイッチを更に有し、
    前記スイッチを制御することにより、前記アナログデジタル乗算部の各々の前記電荷信号が加算されて、前記電荷信号の和に対応する前記アナログ積和電圧を生成することを特徴とする請求項12に記載のニューラルネットワーク回路。
JP2018117762A 2018-06-21 2018-06-21 ニューラルネットワーク回路 Active JP6985988B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018117762A JP6985988B2 (ja) 2018-06-21 2018-06-21 ニューラルネットワーク回路
US16/411,269 US11386321B2 (en) 2018-06-21 2019-05-14 Neural network circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018117762A JP6985988B2 (ja) 2018-06-21 2018-06-21 ニューラルネットワーク回路

Publications (2)

Publication Number Publication Date
JP2019219990A JP2019219990A (ja) 2019-12-26
JP6985988B2 true JP6985988B2 (ja) 2021-12-22

Family

ID=68981977

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018117762A Active JP6985988B2 (ja) 2018-06-21 2018-06-21 ニューラルネットワーク回路

Country Status (2)

Country Link
US (1) US11386321B2 (ja)
JP (1) JP6985988B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11669446B2 (en) * 2018-06-18 2023-06-06 The Trustees Of Princeton University Configurable in memory computing engine, platform, bit cells and layouts therefore
EP3674991B1 (en) * 2018-12-28 2024-07-17 IMEC vzw Multibit neural network
US11301211B2 (en) * 2020-04-13 2022-04-12 International Business Machines Corporation Differential mixed signal multiplier with three capacitors
US11893078B2 (en) * 2020-08-29 2024-02-06 Ceremorphic, Inc. Analog dot product multiplier
JP2022102512A (ja) 2020-12-25 2022-07-07 ソニーセミコンダクタソリューションズ株式会社 積和演算装置およびニューラルネットワーク
US11977936B2 (en) * 2020-12-31 2024-05-07 Ceremorphic, Inc. Differential analog multiplier-accumulator
US11983507B2 (en) * 2020-12-31 2024-05-14 Ceremorphic, Inc. Differential analog multiplier for a signed binary input
CN116931873B (zh) * 2023-09-11 2023-11-28 安徽大学 两字节乘法电路及其任意位宽为2次幂的乘法电路与芯片

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3804946A1 (de) * 1988-02-18 1989-08-31 Tetra Pak Rausing & Co Kg Verfahren und vorrichtung zum vereinzeln von ebenen teilen
US5122983A (en) * 1990-01-12 1992-06-16 Vanderbilt University Charged-based multiplier circuit
JP2985996B2 (ja) 1992-11-27 1999-12-06 株式会社高取育英会 乗算回路
US11809837B2 (en) * 2020-09-04 2023-11-07 International Business Machines Corporation Integer matrix multiplication based on mixed signal circuits

Also Published As

Publication number Publication date
JP2019219990A (ja) 2019-12-26
US20190392298A1 (en) 2019-12-26
US11386321B2 (en) 2022-07-12

Similar Documents

Publication Publication Date Title
JP6985988B2 (ja) ニューラルネットワーク回路
EP1676197B1 (en) Operation circuit and operation control method thereof
EP3259735B1 (en) Spike domain convolution circuit
WO2021044821A1 (ja) 演算装置及び積和演算システム
EP0395387B1 (en) Display drive circuit
KR102026332B1 (ko) 뉴런 모방 회로
EP1662666A1 (en) Pulse polarity modulation circuit
US5990709A (en) Circuit for comparing two electrical quantities provided by a first neuron MOS field effect transistor and a reference source
JP2007241475A (ja) 差動乗算回路及び積和演算回路
EP3001554A1 (en) Fractional output voltage multiplier
WO2020195867A1 (ja) 演算装置及び積和演算システム
US6946894B2 (en) Current-mode synapse multiplier circuit
US20210216856A1 (en) Switched artificial synapse
US7035835B2 (en) High-precision current-mode pulse-width-modulation circuit
Soltany et al. A novel low power and low voltage bulk-input four-quadrant analog multiplier in voltage mode
US20200226456A1 (en) Neuromorphic arithmetic device and operating method thereof
Rahman et al. A high speed and high resolution VLSI winner-take-all circuit for neural networks and fuzzy systems
JP3177636B2 (ja) パルス変調演算回路
US11782680B2 (en) Arithmetic logic unit, multiply-accumulate operation device, multiply-accumulate operation circuit, and multiply-accumulate operation system
JPH06187472A (ja) アナログニューラルネットワーク
US6809558B1 (en) Push-pull output neuron circuit
JPH09259205A (ja) 積和演算回路
JP2020160888A (ja) 演算装置及び積和演算システム
JPS584280Y2 (ja) 論理回路
Salam et al. An analog MOS implementation of the synaptic weights for feedforward/feedback neural nets

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211028

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: 20211102

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211126

R150 Certificate of patent or registration of utility model

Ref document number: 6985988

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150