JP6927244B2 - 演算装置 - Google Patents

演算装置 Download PDF

Info

Publication number
JP6927244B2
JP6927244B2 JP2019046166A JP2019046166A JP6927244B2 JP 6927244 B2 JP6927244 B2 JP 6927244B2 JP 2019046166 A JP2019046166 A JP 2019046166A JP 2019046166 A JP2019046166 A JP 2019046166A JP 6927244 B2 JP6927244 B2 JP 6927244B2
Authority
JP
Japan
Prior art keywords
layer
variable resistance
resistance
value
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019046166A
Other languages
English (en)
Other versions
JP2020149340A (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.)
Toyota Central R&D Labs Inc
Original Assignee
Toyota Central R&D Labs Inc
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 Toyota Central R&D Labs Inc filed Critical Toyota Central R&D Labs Inc
Priority to JP2019046166A priority Critical patent/JP6927244B2/ja
Publication of JP2020149340A publication Critical patent/JP2020149340A/ja
Application granted granted Critical
Publication of JP6927244B2 publication Critical patent/JP6927244B2/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/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/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本明細書が開示する技術は、ニューラルネットワークを用いた演算装置に関する。
ニューラルネットワークを用いた深層学習用の演算回路が知られている。特許文献1の技術では、縦続接続したデジタル時間変換回路(Digital to Time Converter)を用いて、重みWおよび入力Xに応じた遅延時間を生成する。そして、時間デジタル変換回路(Time to Digital Converter)を用いてしきい値判定する。また抵抗変化型や容量変化型のメモリを用いて、遅延時間を調節可能としている。
特開2015−53008号公報
特許文献1の技術では、複数の隠れ層の各々が備える複数の演算器の各々において、重みの数だけ遅延素子を縦続接続しなければならない。すなわち、隠れ層の層数と、隠れ層1層あたりの演算器の数と、1演算器あたりの重みWの数と、を掛け合わせた数だけ、遅延素子を縦続接続しなければならない。回路構成に必要な遅延素子数が膨大となるため、演算時間の長大化や、回路面積の増大化などの問題が発生する。
本明細書が開示する演算装置の一実施形態は、入力層、K層(Kは1以上の自然数)の隠れ層、出力層を備えたニューラルネットワークを用いた演算装置である。演算装置は、K層の隠れ層の1層分に対応するN個(Nは1以上の自然数)の遅延素子を備えている。N個の遅延素子の各々は、K層の隠れ層の各々に対応しているK個の可変抵抗部を備える。K個の可変抵抗部の各々は、N個の遅延素子の各々に対応するN個の可変抵抗素子を備えている。N個の遅延素子の各々は、K層の隠れ層のうちのY層目(Yは1以上K以下の自然数)を計算する場合に、K個の可変抵抗部のうちからY層目に対応するY番目の可変抵抗部を選択して電源電圧部位と遅延素子の電源入力端子との間に接続する選択部を備える。N個の遅延素子の各々は、遅延素子から、Y番目の可変抵抗部の抵抗値に応じた遅延時間だけ遅延された時間信号が出力された場合に、遅延した時間信号をしきい値と比較してデジタル信号を生成する時間デジタル変換回路を備える。N個の遅延素子の各々が備えるN個の時間デジタル変換回路は、Y−1層目の隠れ層の計算によって、Y−1層目のN個のデジタル値を出力する。選択部は、Y−1層目の隠れ層の計算後に、Y番目の可変抵抗部を選択する。Y番目の可変抵抗部は、N個の可変抵抗素子の各々の抵抗値を、Y−1層目のN個のデジタル値およびY−1層目のN個のデジタル値の各々に対応付けられているN個の重み係数に応じた抵抗値に設定する。N個の遅延素子の各々は、Y番目の可変抵抗部の抵抗値に基づいてY層目の隠れ層の計算を行うことで、Y層目のN個のデジタル値を出力する。
本明細書が開示する変換回路は、K層の隠れ層の1層分に対応するN個の遅延素子を備えている。そして、K層の隠れ層のうちのY層目の隠れ層を計算する場合には、Y番目の可変抵抗部が備えるN個の可変抵抗素子の各々の抵抗値を、N個の重み係数に応じた抵抗値に設定する。N個の遅延素子の各々は、Y番目の可変抵抗部の抵抗値に基づいて、Y層目の隠れ層の計算を行うことができる。これにより、N個の可変抵抗素子を用いて、N個の重み係数に応じた計算を行うことが可能となる。よって、N個の遅延素子を縦続接続することでN個の重み係数に応じた計算を行う場合に比して、回路構成に必要な遅延素子数を抑制することができる。回路面積の縮小化が可能となる。
可変抵抗部が備えるN個の可変抵抗素子の各々は、電源電圧部位と電源入力端子との間に並列に接続されていてもよい。K層の隠れ層のうちのY層目を計算する場合に、Y番目の可変抵抗部は、Y−1層目のN個のデジタル値のうちZ個目(Zは1以上N以下の自然数)のデジタル値が0の場合は、Z個目の可変抵抗素子の抵抗値を最大値とし、Z個目のデジタル値が1の場合は、Z個目の可変抵抗素子の抵抗値を、Z個目のデジタル値に対応付けられている重み係数に応じた抵抗値としてもよい。効果の詳細は実施例で説明する。
可変抵抗部が備えるN個の可変抵抗素子の各々は、電源電圧部位と電源入力端子との間に直列に接続されていてもよい。K層の隠れ層のうちのY層目を計算する場合に、Y番目の可変抵抗部は、Y−1層目のN個のデジタル値のうちZ個目(Zは1以上N以下の自然数)のデジタル値が0の場合は、Z個目の可変抵抗素子の抵抗値を最小値とし、Z個目のデジタル値が1の場合は、Z個目の可変抵抗素子の抵抗値を、Z個目のデジタル値に対応付けられている重み係数に応じた抵抗値としてもよい。効果の詳細は実施例で説明する。
演算装置は、N個の遅延素子の各々に対応して備えられたN個の時間デジタル変換回路の出力の各々をラッチするN個のラッチ回路をさらに備えていてもよい。N個のラッチ回路の各々は、Y−1層目の隠れ層の計算によって、Y−1層目のN個のデジタル値をラッチしてもよい。Y番目の可変抵抗部は、N個のラッチ回路にラッチされたY−1層目のN個のデジタル値の各々を用いて、N個の可変抵抗素子の各々の抵抗値を設定してもよい。効果の詳細は実施例で説明する。
本明細書が開示する演算装置の一実施形態は、入力層、K層(Kは1以上の自然数)の隠れ層、出力層を備えたニューラルネットワークを用いた演算装置である。演算装置は、K層の隠れ層の1層分に対応するN個(Nは1以上の自然数)の遅延素子を備えている。N個の遅延素子の各々は、K層の隠れ層の各々に対応しているK個の可変抵抗部を備える。K個の可変抵抗部の各々は、N個の遅延素子の各々に対応するN個の可変抵抗素子を備えている。N個の遅延素子の各々は、K層の隠れ層のうちのY層目(Yは1以上K以下の自然数)を計算する場合に、K個の可変抵抗部のうちからY層目に対応するY番目の可変抵抗部を選択して遅延素子の出力端子と時間デジタル変換回路との間に接続する選択部を備える。N個の遅延素子の各々は、Y番目の可変抵抗部から、Y番目の可変抵抗部の抵抗値に応じた遅延時間だけ遅延された時間信号が出力された場合に、遅延した時間信号をしきい値と比較してデジタル信号を生成する時間デジタル変換回路を備える。N個の遅延素子の各々が備えるN個の時間デジタル変換回路は、Y−1層目の隠れ層の計算によって、Y−1層目のN個のデジタル値を出力する。選択部は、Y−1層目の隠れ層の計算後に、Y番目の可変抵抗部を選択する。Y番目の可変抵抗部は、N個の可変抵抗素子の各々の抵抗値を、Y−1層目のN個のデジタル値およびY−1層目のN個のデジタル値の各々に対応付けられているN個の重み係数に応じた抵抗値に設定する。N個の遅延素子の各々は、Y番目の可変抵抗部の抵抗値に基づいてY層目の隠れ層の計算を行うことで、Y層目のN個のデジタル値を出力する。効果の詳細は実施例で説明する。
ニューラルネットワーク100の概略図である。 演算器AU21を説明する図である。 実施例1に係る演算装置1の回路図である。 抵抗制御回路RCの内部構造を説明する図である。 演算装置1の動作を説明するフローチャートである。 遅延時間を説明するタイミングチャートである。 従来の演算器200を示す図である。 実施例2に係る演算装置1aの回路図である。 実施例3に係る抵抗制御回路RC1aの内部構造を説明する図である。
図1に、本実施形態に係る演算装置が実現するニューラルネットワーク100の概略図を示す。ニューラルネットワーク100は、入力層IL、K層(Kは1以上の自然数)の隠れ層HL〜HL、出力層OL、を備える。入力層ILは、M個の入力部IL〜ILを有する。例えばニューラルネットワーク100が画像認識のニューラルネットワークである場合には、入力部IL〜ILには、撮像素子の各ピクセルや色の諧調を示すビット信号の各々が入力される。
1層目の隠れ層HLは、N個(Nは1以上の自然数)の演算器AU11〜AU1Nを備える。同様にして、K層目の隠れ層HLは、N個の演算器AUK1〜AUKNを備える。すなわち隠れ層は、N×K個の演算器を備えている。N×K個の演算器の動作は、すべて同様である。よって、以下に代表的な演算器AU21について、図2を用いて説明する。
隠れ層HLの演算器AU11〜AU1Nの各々からは、出力X21〜X2Nが出力される。出力X21〜X2Nは、演算器AU21〜AU2Nの各々に入力される。図2に示すように、演算器AU21に入力される出力X21〜X2Nの各々には、重み係数W211〜W2N1が対応付けられている。演算器AU21は、出力X21〜X2Nと、重み係数W211〜W2N1とに基づいて、下式(1)に基づき中間値Mを算出する。
M=X21×W211+X22×W221+ ・・・ +X2N×W2N1・・・(1)
そして、演算器AU21は、中間値Mと時間しきい値Vthとを比較し、デジタル値である出力X31を出力する。中間値Mが時間しきい値Vth以下の場合には、出力X31は「0」である。中間値Mが時間しきい値Vthより大きい場合には、出力X31は「1」である。同様にして演算器AU2Nは、出力X21〜X2Nと重み係数W21N〜W2NNとに基づいて中間値Mを算出し、中間値Mと時間しきい値Vthとを比較して出力X3Nを出力する。
出力層OLはJ個(Jは1以上の自然数)の出力部OL〜ILを備えている。Jの数は、識別する画像の種類の数に対応している。例えば、出力部OLのみが「1」の場合には「A」という画像が撮影されたという識別結果が得られ、出力部OLのみが「1」の場合には「B」という画像が撮影されたという識別結果が得られる。
(演算装置1の回路構成)
図3に、図1のニューラルネットワーク100に対応する演算装置1の回路図を示す。演算装置1は、N個(Nは1以上の自然数)の遅延素子DE〜DE、N個の抵抗制御回路RC〜RC、N個のTDC回路TD〜TD、N個のラッチ回路LC〜LC、重み係数算出回路WC、しきい値生成回路VC、入力パルス生成回路IPを備える。遅延素子DE〜DEは、インバータである。遅延素子DEは、ニューラルネットワーク100(図1)の隠れ層の1列目の演算器である演算器AU11〜AUK1に対応する。以下同様にして、遅延素子DEは、隠れ層のN列目の演算器である演算器AU1N〜AUKNに対応する。
抵抗制御回路RCは、電源電圧VDDと遅延素子DEの電源入力端子VTとの間に接続されている。以下同様にして、抵抗制御回路RCは、電源電圧VDDと遅延素子DEの電源入力端子VTとの間に接続されている。
遅延素子DEには、入力パルス生成回路IPからパルス信号PSが入力される。遅延素子DEからは、抵抗制御回路RCによって定まる遅延時間を含んだ時間信号TSが出力される。TDC回路TDには、時間信号TSと、しきい値生成回路VCから出力される時間しきい値Vthが入力される。TDC回路TDから出力されるデジタル信号DSは、ラッチ回路LCに入力される。以下同様にして、遅延素子DEにはパルス信号PSが入力され、TDC回路TDには時間信号TSと時間しきい値Vthが入力される。TDC回路TDから出力されるデジタル信号DSは、ラッチ回路LCに入力される。
図4を用いて、抵抗制御回路RCの内部構造を説明する。抵抗制御回路RCは、K層の隠れ層の各々に対応しているK個の可変抵抗部VR11〜VR1Kを備える。また、可変抵抗部VR11〜VR1Kの各々に対応しているK個のバイパススイッチSW11〜SW1Kを備える。
可変抵抗部VR11は、M個の入力部IL〜ILの各々に対応する、M個の可変抵抗素子VE11〜VE1Mを備えている。可変抵抗素子VE11〜VE1Mは、例えば、ReRAM(resistive random access memory)や、フラッシュメモリであってもよい。またM個の可変抵抗素子VE11〜VE1Mの各々に対応する、M個の出力スイッチXS11〜XS1Mを備えている。M個の可変抵抗素子VE11〜VE1MおよびバイパススイッチSW11は、電源電圧VDDと可変抵抗部VR12との間に並列に接続されている。また出力スイッチXS11〜XS1Mの各々は、可変抵抗素子VE11〜VE1Mの各々に直列に接続されている。
同様にして、可変抵抗部VR1Kは、N個の遅延素子DE〜DEの各々に対応する、N個の可変抵抗素子VEK1〜VEKNを備えている。またN個の可変抵抗素子VEK1〜VEKNの各々に対応する、N個の出力スイッチXSK1〜XSKNを備えている。
可変抵抗部VR11には、重み係数算出回路WCからM個の重み情報WI111〜WI1M1が入力される。重み情報WI111は、1個目の出力X11に対応付けられている重み係数を表す情報である。M個の可変抵抗素子VE11〜VE1Mの各々の抵抗値は、重み情報WI111〜WI1M1に基づいて、個別に制御される。
同様にして、可変抵抗部VR1Kには、重み係数算出回路WCからN個の重み情報WIK11〜WIKN1が入力される。N個の可変抵抗素子VEK1〜VEKNの各々の抵抗値は、重み情報WIK11〜WIKN1に基づいて、個別に制御される。
また、抵抗制御回路RC〜RC(図3)の各々の内部構造は、図4の抵抗制御回路RCの内部構造と同様である。よって、説明を省略する。
(演算装置1の動作)
図5のフローチャートを用いて、演算装置1の動作を説明する。S10において1層目の隠れ層HLの計算を行う。計算内容の具体的内容は後述する。隠れ層HLの計算により、N個のTDC回路TD〜TDの各々からは、1層目のN個のデジタル信号DS〜DSが出力され、ラッチ回路LC〜LCにラッチされる。1層目のデジタル信号DS〜DSの各々は、ニューラルネットワーク100(図1)の出力X21〜X2Nに対応している。S20において、層数Yが1カウントアップされる。これにより、次の層の計算が開始される。
S30において、Y層目の隠れ層に対応するY番目の可変抵抗部を選択する。具体例として、2層目の隠れ層HLに対応する可変抵抗部を選択する場合を説明する。抵抗制御回路RCでは、2層目の隠れ層HLに対応する2番目の可変抵抗部VR12が選択される。すなわち、不図示の選択回路によって、バイパススイッチSW12のみがオフとされ、バイパススイッチSW11およびSW13〜SW1Kがオンとされる。これにより、可変抵抗部VR11およびVR13〜VR1Kがバイパスされる。その結果、可変抵抗部VR12のみが、電源電圧VDDと電源入力端子VTとの間に接続される。なお、抵抗制御回路RC〜RCにおいても同様にして、2番目の可変抵抗部VR22〜VRN2が選択される。
S40において、重み係数算出回路WCは、Y番目の可変抵抗部が備えるN個の可変抵抗素子の各々の抵抗値を設定するための重み情報を生成する。具体的には、ラッチ回路LC〜LCから出力されるデジタル信号LS〜LSに基づいて、所定の演算を行う。そして、抵抗制御回路RCで選択されている可変抵抗部VR12に対応した、重み情報WI211〜WI2N1を生成する。同様にして、抵抗制御回路RCで選択されている可変抵抗部VR22に対しても、重み情報WI212〜WI2N2を生成する。また同様にして、抵抗制御回路RCで選択されている可変抵抗部VRN2に対しても、重み情報WI21N〜WI2NNを生成する。
S50において、Y番目の可変抵抗部は、N個の可変抵抗素子の各々の抵抗値を個別に設定する。具体的には、Y−1層目のN個のデジタル値、および、Y−1層目のN個のデジタル値の各々に対応付けられているN個の重み係数に応じて、抵抗値を設定する。
具体例として、2層目の隠れ層HLの演算を行う場合を説明する。代表例として、抵抗制御回路RC(図4)において、隠れ層HLに対応する可変抵抗部VR12の抵抗値が設定される場合を説明する。ラッチ回路LCには、1層目の演算器AU11から出力された出力X21がラッチされている。この出力X21が「0」の場合は、出力スイッチXS21を「オフ」にする。これにより、可変抵抗素子VE21は2層目の隠れ層HLの計算に影響しない。一方、出力X21が「1」の場合は、出力スイッチXS21を「オン」にする。そして、出力スイッチXS21と直列接続されている可変抵抗素子VE21の抵抗値を、重み情報WI211に応じた抵抗値とする。具体的には、重み係数W211が大きいほど、可変抵抗素子VE21の抵抗値を高くする。以下同様にして、出力スイッチXS22〜XS2Nの各々が、ラッチ回路LC〜LCのデジタル値に基づいてオンまたはオフされる。また、可変抵抗素子VE22〜VE2Nの各々が、重み情報WI221〜WI2N1に応じた抵抗値に設定される。なお、抵抗制御回路RC〜RC(図3)においても同様にして、隠れ層HLに対応する可変抵抗部VR22〜VRN2の抵抗値が設定される。
S60において、N個の遅延素子DE〜DEの各々は、Y番目の可変抵抗部の抵抗値に基づいてY層目の隠れ層の計算を行うことで、遅延時間を含んだ時間信号TS〜TSを出力する。
具体例として、2層目の隠れ層HLの計算を行う場合における、遅延素子DEの動作を説明する。なお、遅延素子DE〜DEの動作は、遅延素子DEの動作と同様であるため、説明を省略する。遅延素子DEは、電源入力端子VTに入力される電圧が低くなるほど動作速度が遅くなり、遅延時間が長くなる特性を有している。そして2層目の隠れ層HLの計算を行う場合には、可変抵抗部VR12のみが、電源電圧VDDと電源入力端子VTとの間に接続されている。すると、可変抵抗部VR12の合成抵抗が高くなるほど、電源入力端子VTに入力される電圧が低くなるため、遅延素子DEの遅延時間を長くすることができる。
可変抵抗部VR12の合成抵抗の設定方法を説明する。前述したように、可変抵抗素子VE21〜VE2Nの各々が、重み情報WI211〜WI2N1に応じた抵抗値に設定される。また、可変抵抗素子VE21〜VE2Nのうち、「1」の値を有する出力X21〜X2Nに対応する可変抵抗素子のみが、電源電圧VDDと電源入力端子VTとの間に接続される。ここで例えば、出力X21〜X2Nのうち、出力X21、X23、X2Nのみが「1」である場合を説明する。この場合、可変抵抗素子VE21、VE23、VE2Nのみが、電源電圧VDDと電源入力端子VTとの間に接続される。すると、可変抵抗部VR12の合成抵抗は、可変抵抗素子VE21、VE23、VE2Nの合成によって求まる。
この場合の遅延素子DEの遅延時間を、図6のタイミングチャートを用いて説明する。遅延素子DEに入力されるパルス信号PSの立ち上がりエッジE1から、遅延素子DEから出力される時間信号TSの立ち下がりエッジE2までの時間を、遅延時間DTとする。遅延時間DTは、遅延素子DE自体が備える遅延時間DTと、可変抵抗素子VE21、VE23、VE2Nによって付加された遅延時間DT21、DT23、DT2Nと、を含んでいる。すなわち、遅延時間DTは、遅延素子DE自体が備えている遅延時間DTに、可変抵抗素子に応じた遅延がすべて付加された時間となる。これにより、前述した式(1)の中間値Mを、遅延時間DT21、DT23、DT2Nの合計値である中間遅延時間DMで求めることが可能となる。
S70において、N個のTDC回路TD〜TDの各々は、入力される時間信号TS〜TSの各々を、時間しきい値Vthと比較する。具体的には、時間しきい値Vthが入力された時点よりも時間信号TSの立ち上がりエッジが早い場合には、中間値Mが時間しきい値Vth以下であると判断され、デジタル信号DSは「0」とされる。一方、時間しきい値Vthが入力された時点よりも時間信号TSの立ち上がりエッジが遅い場合には、中間値Mが時間しきい値Vthより大きいと判断され、デジタル信号DSは「1」とされる。これにより、Y層目の隠れ層の計算が完了する。
図6のタイミングチャートを用いて、具体例を説明する。TDC回路TDには、遅延素子DEから出力される時間信号TSと、時間しきい値Vthとが入力されている。時間しきい値VthのエッジE3よりも時間信号TSのエッジE2の方が早いため、デジタル信号DSは「0」とされる(矢印Y1)。
S80において、最終層であるK層目の隠れ層の計算が完了したか否かが判断される。否定判断される場合(S80:NO)にはS20へ戻り、次の層の計算が開始される。一方、肯定判断される場合(S80:YES)にはS90へ進む。S90において、出力層OLが計算される。なお、出力層OLでの計算内容や回路構成は、隠れ層HL〜HLの計算内容や回路構成と同様であるため、説明を省略する。
(効果)
比較例として、図7に示す従来の演算器200を考える。演算器200は、図2の演算器AU21に対応する回路である。演算器200では、N個の重み係数に対応させたN個のデジタル時間変換回路DTC〜DTC、および、TDC回路TDが縦続接続されている。デジタル時間変換回路DTCは、1つのインバータと3つのNOR回路(不図示)を内部に備えるため、トランジスタ数は14個である。すると、従来技術の演算器200では、1つの演算器を構成するために14×N[個]のトランジスタが必要となる。ニューラルネットワーク100(図1)に示すように、K層の隠れ層の各々がN[個]の演算器を備える場合には、演算器はK×N[個]必要となる。するとトランジスタ数は、14×N×K×N[個]となる。例えばN=10、K=10の場合には、トランジスタ数は14000個となる。
一方、実施例1に係る演算装置1では、図4に示すように、演算器AU21に対応する回路は、遅延素子DE(トランジスタ数=2)および可変抵抗部VR12(トランジスタ数=N+1)で実現できる。1つの演算器を構成するトランジスタ数を、14×N[個]からN+3[個]に大幅に低減することが可能となる。
また実施例1に係る演算装置1では、1つの遅延素子DEおよびK個の可変抵抗部VR11〜VR1Kによって、K個の演算器AU11〜AUK1を実現できる。この場合のトランジスタ数は、K×(N+1)+2[個]となる。すると、K層の隠れ層の各々がN個の演算器を備える場合には、トランジスタ数は、N×(K×(N+1)+2)[個]となる。例えばN=10、K=10の場合には、トランジスタ数は1120個になる。前述した14000個から大幅に低減することが可能となる。
従来技術の演算器200(図7)では、N個のデジタル時間変換回路DTC〜DTCが縦続接続されているため、N個の不図示のインバータが縦続接続されていることになる。前述したように、インバータ自身が遅延時間を備えているため、インバータの遅延時間のN倍の時間が、待機時間として発生してしまう。一方、実施例1に係る演算装置1では、1つの遅延素子DEによって、N個の重み係数の演算を実現できる。図6に示したように、中間遅延時間DMを演算するための待機時間は、1つのインバータの遅延時間DTのみでよい。演算時間の短縮化が可能である。
なお、上述した抵抗制御回路RCはアナログ回路である。従って、可変抵抗部VR11〜VR1Kの合成抵抗値は、重み情報WI111〜WI1KNに応じてリニアに変化するとは限らない。すなわち、図6で説明した中間遅延時間DMは、式(1)で説明した中間値Mを厳密に表現したものにはならない。しかしながら、ニューラルネットワーク自体がフォールトトレラントなシステムであるため、このことはほとんど問題にならない。なお、抵抗制御回路RC〜RCについても同様である。
(演算装置1aの回路構成)
図8に、実施例2に係る演算装置1aを示す。演算装置1a(図8)は、実施例1に係る演算装置1(図3)に比して、抵抗制御回路RC〜RCの各々の接続位置が異なっている。演算装置1a(図8)において、演算装置1(図3)と同様の部位には同一の符号を付すことで、説明を省略する。
抵抗制御回路RCは、遅延素子DEの出力端子とTDC回路TDとの間に接続されている。以下同様にして、抵抗制御回路RCは、遅延素子DEの出力端子とTDC回路TDとの間に接続されている。遅延素子DEには、パルス信号PSが入力される。遅延素子DEからは、遅延素子DE自体が備える遅延時間DTのみを含んだ反転信号ISが出力される。反転信号ISは抵抗制御回路RCに入力され、抵抗制御回路RCからは時間信号TSが出力される。時間信号TSは、遅延時間DTに加えて、抵抗制御回路RCによって定まる遅延時間(中間遅延時間DM)を含んだ時間信号である。以下同様にして、遅延素子DEから出力される反転信号ISは抵抗制御回路RCに入力され、抵抗制御回路RCからは時間信号TSが出力される。抵抗制御回路RC〜RCの内部構造および動作は、実施例1で説明した内容と同様であるため、説明を省略する。
(演算装置1aの動作)
演算装置1aの動作は、実施例1の演算装置1の動作(図5)と同様である。以下に、異なる部分のみ説明する。S60において、遅延素子DEは、Y番目の可変抵抗部の抵抗値に基づいてY層目の隠れ層の計算を行うことで、遅延時間を含んだ時間信号TSを出力する。遅延素子DEは、出力端子に接続されている抵抗成分が大きくなるほどRC時定数が大きくなるため、遅延時間が長くなる特性を有している。そして例えば、2層目の隠れ層HLの計算を行う場合には、可変抵抗部VR12のみが、遅延素子DEの出力端子とTDC回路TDとの間に接続される(S30)。すると、可変抵抗部VR12の合成抵抗が高くなるほど、遅延素子DEの出力端子のRC時定数が大きくなるため、遅延素子DEの遅延時間を長くすることができる。なお、遅延素子DE〜DEの動作は、遅延素子DEの動作と同様であるため、説明を省略する。
演算装置1aにおいても、実施例1の演算装置1と同様にして、トランジスタ数を削減できる効果や、演算時間を短縮化できる効果が得られる。
(抵抗制御回路RC1aの内部構造)
図9に、実施例3に係る抵抗制御回路RC1aの内部構造を示す。抵抗制御回路RC1a(図9)は、実施例1に係る抵抗制御回路RC(図4)に比して、可変抵抗素子および出力スイッチの接続形態が異なっている。抵抗制御回路RC1a(図9)において、抵抗制御回路RC(図4)と同様の部位には同一の符号を付すことで、説明を省略する。
抵抗制御回路RC1aは、K層の隠れ層の各々に対応しているK個の可変抵抗部VR11a〜VR1Kaを備える。また、可変抵抗部VR11a〜VR1Kaの各々に対応しているK個のバイパススイッチSW11a〜SW1Kaを備える。可変抵抗部VR11aは、M個の可変抵抗素子VE11〜VE1Mを備えている。またM個の可変抵抗素子VE11〜VE1Mの各々に対応する、M個の出力スイッチXS11〜XS1Mを備えている。M個の可変抵抗素子VE11〜VE1MおよびバイパススイッチSW11aは、電源電圧VDDと電源入力端子VTとの間に直列に接続されている。また出力スイッチXS11〜XS1Mの各々は、可変抵抗素子VE11〜VE1Mの各々に並列に接続されている。
同様にして、可変抵抗部VR1Kaは、N個の可変抵抗素子VEK1〜VEKNを備えている。またN個の可変抵抗素子VEK1〜VEKNの各々に並列に接続される、N個の出力スイッチXSK1〜XSKNを備えている。
可変抵抗部VR11aには、M個の重み情報WI111〜WI1M1が入力される。M個の可変抵抗素子VE11〜VE1Mの各々の抵抗値は、重み情報WI111〜WI1M1に基づいて、個別に制御される。同様にして、可変抵抗部VR1Kaには、N個の重み情報WIK11〜WIKN1が入力される。N個の可変抵抗素子VEK1〜VEKNの各々の抵抗値は、重み情報WIK11〜WIKN1に基づいて、個別に制御される。
なお、実施例1に係る抵抗制御回路RC2a〜RCNa(図3)の各々の内部構造も、図9の抵抗制御回路RC1aの内部構造と同様に変更すればよい。よって、説明を省略する。
(抵抗制御回路RC1aの動作)
抵抗制御回路RC1aの動作は、実施例1の抵抗制御回路RCの動作(図5)と同様である。以下に、異なる部分のみ説明する。S50において、Y番目の可変抵抗部は、N個の可変抵抗素子の各々の抵抗値を個別に設定する。具体例として、2層目の隠れ層HLの演算を行う場合を説明する。代表例として、抵抗制御回路RC1a(図9)において、隠れ層HLに対応する可変抵抗部VR12aの抵抗値が設定される場合を説明する。
ラッチ回路LCには、1層目の演算器AU11から出力された出力X21がラッチされている。この出力X21が「0」の場合は、出力スイッチXS21を「オン」にする。これにより、可変抵抗素子VE21がバイパスされるため、2層目の隠れ層HLの計算に影響しない。一方、出力X21が「1」の場合は、出力スイッチXS21を「オフ」にする。これにより可変抵抗素子VE21が、電源電圧VDDと電源入力端子VTとの間に直列に接続される。そして、可変抵抗素子VE21の抵抗値を、重み情報WI211に応じた抵抗値とする。以下同様にして、出力スイッチXS22〜XS2Nの各々が、ラッチ回路LC〜LCのデジタル値に基づいてオフまたはオンされる。また、可変抵抗素子VE22〜VE2Nの各々が、重み情報WI221〜WI2N1に応じた抵抗値に設定される。
抵抗制御回路RC1a(図9)においても、実施例1の抵抗制御回路RC(図4)と同様にして、可変抵抗部VR11a〜VR1Kaの各々の合成抵抗値を、重み情報WI111〜WIKN1に応じた抵抗値に設定することができる。
以上、本発明の具体例を詳細に説明したが、これらは例示に過ぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成し得るものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
(変形例1)
図4に示す抵抗制御回路RCの内部構造は一例であり、様々な回路構成が可能である。例えば、可変抵抗部VR11のM個の出力スイッチXS11〜XS1Mを省略してもよい。この場合、可変抵抗部VR11の可変抵抗素子VE11〜VE1Mの各々は、電源電圧VDDと可変抵抗部VR12との間にスイッチを介さずに接続される。以下同様に、可変抵抗部VR1KのN個の出力スイッチXSK1〜XSKNを省略してもよい。
変形例1における抵抗制御回路RCの、S50での動作を説明する。代表例として、隠れ層HLに対応する可変抵抗部VR12の抵抗値が設定される場合を説明する。ラッチ回路LCにラッチされている出力X21が「0」の場合は、可変抵抗素子VE21を「高抵抗」状態にする。これにより、出力スイッチXS21を備える場合に、出力スイッチXS21を「オフ」にすることと同様の効果が得られる。一方、出力X21が「1」の場合は、可変抵抗素子VE21の抵抗値を、重み情報WI211に応じた抵抗値とする。以下同様にして、可変抵抗素子VE22〜VE2Nの各々が、ラッチ回路LC〜LCのデジタル値に基づいて「高抵抗」状態または「重み情報に応じた抵抗値」状態にされる。なお、抵抗制御回路RC〜RCにおいても同様にして、出力スイッチを省略することができる。変形例1における抵抗制御回路RC〜RCでは、出力スイッチを省略することができるため、回路面積をさらに縮小することが可能となる。
また変形例1では、さらに、バイパススイッチSW11〜SW1Kの各々を可変抵抗素子に置換することができる。この場合、可変抵抗素子を「高抵抗」状態にすることで、バイパススイッチを「オフ」にすることと同様の効果が得られる。また可変抵抗素子を「低抵抗」状態にすることで、バイパススイッチを「オン」にすることと同様の効果が得られる。
(変形例2)
図9に示す抵抗制御回路RC1aの内部構造は一例であり、様々な回路構成が可能である。例えば、可変抵抗部VR11aのM個の出力スイッチXS11〜XS1Mを省略してもよい。以下同様に、可変抵抗部VR1KaのN個の出力スイッチXSK1〜XSKNを省略してもよい。
変形例2における抵抗制御回路RC1aの、S50での動作を説明する。代表例として、隠れ層HLに対応する可変抵抗部VR12aの抵抗値が設定される場合を説明する。ラッチ回路LCにラッチされている出力X21が「0」の場合は、可変抵抗素子VE21を「低抵抗」状態にする。これにより、出力スイッチXS21を備える場合に、出力スイッチXS21を「オン」にすることと同様の効果が得られる。一方、出力X21が「1」の場合は、可変抵抗素子VE21の抵抗値を、重み情報WI211に応じた抵抗値とする。以下同様にして、可変抵抗素子VE22〜VE2Nの各々が、ラッチ回路LC〜LCのデジタル値に基づいて「低抵抗」状態または「重み情報に応じた抵抗値」状態にされる。なお、抵抗制御回路RC2a〜RCNaにおいても同様にして、出力スイッチを省略することができる。変形例2における抵抗制御回路RC1a〜RCNaでは、出力スイッチを省略することができるため、回路面積をさらに縮小することが可能となる。
また変形例2では、さらに、バイパススイッチSW11a〜SW1Kaの各々を可変抵抗素子に置換することができる。この場合、可変抵抗素子を「高抵抗」状態にすることで「オフ」状態とし、可変抵抗素子を「低抵抗」状態にすることで「オン」にすることができる。
(変形例3)
実施例2と3の技術を組み合わせることも可能である。すなわち、実施例2(図8)の抵抗制御回路RC〜RCの各々の内部構造を、実施例3で説明した抵抗制御回路RC1a(図9)と同様の構造にしてもよい。
(変形例4)
実施例1の抵抗制御回路RC(図4)では、1層目の隠れ層に対応する可変抵抗部VR11は入力層ILに対応してM個の可変抵抗素子を備え、2層目以降の隠れ層に対応する可変抵抗部VR12〜VR1Kは遅延素子に対応してN個の可変抵抗素子を備える形態を説明した。しかし、可変抵抗素子の数は、自由に設定することができる。例えば、可変抵抗部VR11〜VR1Kの各々が、共通のL個の可変抵抗素子を備えていてもよい。Lの値は、入力部の数および遅延素子の数以上となるように定めればよい。Lの値が遅延素子数より大きい場合には、使用しない遅延素子を設定すればよい。これにより、隠れ層の1層あたりの演算器を自由に設定することが可能となる。ニューラルネットワーク100の構成の自由度を高めることができる。
SW11〜SWNKは、選択部の一例である。
1:演算装置 AUK1〜AUKN:演算器 X11〜XKN:出力 DE〜DE:遅延素子 RC〜RC:抵抗制御回路 TD〜TD:TDC回路 LC〜LC:ラッチ回路 WC:重み係数算出回路 VC:しきい値生成回路 IP:入力パルス生成回路 VR11〜VR1K:可変抵抗部 SW11〜SW1K:バイパススイッチ

Claims (5)

  1. 入力層、K層(Kは1以上の自然数)の隠れ層、出力層を備えたニューラルネットワークを用いた演算装置であって、
    前記K層の隠れ層の1層分に対応するN個(Nは1以上の自然数)の遅延素子を備えており、
    前記N個の遅延素子の各々は、
    前記K層の隠れ層の各々に対応しているK個の可変抵抗部であって、
    前記K個の可変抵抗部の各々は、前記N個の遅延素子の各々に対応するN個の可変抵抗素子を備えている、前記可変抵抗部と、
    前記K層の隠れ層のうちのY層目(Yは1以上K以下の自然数)を計算する場合に、前記K個の可変抵抗部のうちから前記Y層目に対応するY番目の可変抵抗部を選択して電源電圧部位と前記遅延素子の電源入力端子との間に接続する選択部と、
    前記遅延素子から、前記Y番目の可変抵抗部の抵抗値に応じた遅延時間だけ遅延された時間信号が出力された場合に、遅延した時間信号をしきい値と比較してデジタル信号を生成する時間デジタル変換回路と、
    を備え、
    前記N個の遅延素子の各々が備えるN個の前記時間デジタル変換回路は、Y−1層目の隠れ層の計算によって、Y−1層目のN個のデジタル値を出力し、
    前記選択部は、Y−1層目の隠れ層の計算後に、Y番目の可変抵抗部を選択し、
    前記Y番目の可変抵抗部は、前記N個の可変抵抗素子の各々の抵抗値を、前記Y−1層目のN個のデジタル値および前記Y−1層目のN個のデジタル値の各々に対応付けられているN個の重み係数に応じた抵抗値に設定し、
    前記N個の遅延素子の各々は、前記Y番目の可変抵抗部の抵抗値に基づいてY層目の隠れ層の計算を行うことで、Y層目のN個のデジタル値を出力する、演算装置。
  2. 前記可変抵抗部が備える前記N個の可変抵抗素子の各々は、前記電源電圧部位と前記電源入力端子との間に並列に接続されており、
    前記K層の隠れ層のうちのY層目を計算する場合に、前記Y番目の可変抵抗部は、
    前記Y−1層目のN個のデジタル値のうちZ個目(Zは1以上N以下の自然数)のデジタル値が0の場合は、Z個目の可変抵抗素子の抵抗値を最大値とし、
    前記Z個目のデジタル値が1の場合は、Z個目の可変抵抗素子の抵抗値を、前記Z個目のデジタル値に対応付けられている重み係数に応じた抵抗値とする、請求項1に記載の演算装置。
  3. 前記可変抵抗部が備える前記N個の可変抵抗素子の各々は、前記電源電圧部位と前記電源入力端子との間に直列に接続されており、
    前記K層の隠れ層のうちのY層目を計算する場合に、前記Y番目の可変抵抗部は、
    前記Y−1層目のN個のデジタル値のうちZ個目(Zは1以上N以下の自然数)のデジタル値が0の場合は、Z個目の可変抵抗素子の抵抗値を最小値とし、
    前記Z個目のデジタル値が1の場合は、Z個目の可変抵抗素子の抵抗値を、前記Z個目のデジタル値に対応付けられている重み係数に応じた抵抗値とする、請求項1に記載の演算装置。
  4. 前記N個の遅延素子の各々に対応して備えられた前記N個の時間デジタル変換回路の出力の各々をラッチするN個のラッチ回路をさらに備え、
    前記N個のラッチ回路の各々は、Y−1層目の隠れ層の計算によって、Y−1層目のN個のデジタル値をラッチし、
    前記Y番目の可変抵抗部は、前記N個のラッチ回路にラッチされた前記Y−1層目のN個のデジタル値の各々を用いて、前記N個の可変抵抗素子の各々の抵抗値を設定する、請求項1〜3の何れか1項に記載の演算装置。
  5. 入力層、K層(Kは1以上の自然数)の隠れ層、出力層を備えたニューラルネットワークを用いた演算装置であって、
    前記K層の隠れ層の1層分に対応するN個(Nは1以上の自然数)の遅延素子を備えており、
    前記N個の遅延素子の各々は、
    前記K層の隠れ層の各々に対応しているK個の可変抵抗部であって、
    前記K個の可変抵抗部の各々は、前記N個の遅延素子の各々に対応するN個の可変抵抗素子を備えている、前記可変抵抗部と、
    前記K層の隠れ層のうちのY層目(Yは1以上K以下の自然数)を計算する場合に、前記K個の可変抵抗部のうちから前記Y層目に対応するY番目の可変抵抗部を選択して前記遅延素子の出力端子と時間デジタル変換回路との間に接続する選択部と、
    前記Y番目の可変抵抗部から、前記Y番目の可変抵抗部の抵抗値に応じた遅延時間だけ遅延された時間信号が出力された場合に、遅延した時間信号をしきい値と比較してデジタル信号を生成する時間デジタル変換回路と、
    を備え、
    前記N個の遅延素子の各々が備えるN個の前記時間デジタル変換回路は、Y−1層目の隠れ層の計算によって、Y−1層目のN個のデジタル値を出力し、
    前記選択部は、Y−1層目の隠れ層の計算後に、Y番目の可変抵抗部を選択し、
    前記Y番目の可変抵抗部は、前記N個の可変抵抗素子の各々の抵抗値を、前記Y−1層目のN個のデジタル値および前記Y−1層目のN個のデジタル値の各々に対応付けられているN個の重み係数に応じた抵抗値に設定し、
    前記N個の遅延素子の各々は、前記Y番目の可変抵抗部の抵抗値に基づいてY層目の隠れ層の計算を行うことで、Y層目のN個のデジタル値を出力する、演算装置。
JP2019046166A 2019-03-13 2019-03-13 演算装置 Active JP6927244B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019046166A JP6927244B2 (ja) 2019-03-13 2019-03-13 演算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019046166A JP6927244B2 (ja) 2019-03-13 2019-03-13 演算装置

Publications (2)

Publication Number Publication Date
JP2020149340A JP2020149340A (ja) 2020-09-17
JP6927244B2 true JP6927244B2 (ja) 2021-08-25

Family

ID=72432045

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019046166A Active JP6927244B2 (ja) 2019-03-13 2019-03-13 演算装置

Country Status (1)

Country Link
JP (1) JP6927244B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2620785B (en) * 2022-07-21 2024-08-07 Advanced Risc Mach Ltd Improved spiking neural network apparatus

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6846297B2 (ja) * 2016-06-20 2021-03-24 キオクシア株式会社 演算装置
US11048434B2 (en) * 2018-09-28 2021-06-29 Intel Corporation Compute in memory circuits with time-to-digital computation

Also Published As

Publication number Publication date
JP2020149340A (ja) 2020-09-17

Similar Documents

Publication Publication Date Title
US5495197A (en) Variable delay circuit
US5682114A (en) Variable delay circuit, ring oscillator, and flip-flop circuit
US5175452A (en) Programmable compensated digital delay circuit
JPH05268015A (ja) Cmosデジタル制御された遅延ゲート
EP0858161B1 (en) Delay circuit using pulse shaping
JP4842989B2 (ja) プライオリティエンコーダならびにそれを利用した時間デジタル変換器、試験装置
JP6927244B2 (ja) 演算装置
US20070103356A1 (en) Analog to digital converter with a series of inverting elements
JPH06303060A (ja) ゲインコントロールアンプ回路
US6255879B1 (en) Digital programmable delay element
US9755575B1 (en) Variable frequency RC oscillator
JPH1013200A (ja) 可変遅延回路
US5821793A (en) Variable delay circuit and a variable pulse width circuit
US5668491A (en) Variable delay circuit
JP4729228B2 (ja) 遅延回路およびリング発振器
US8004441B1 (en) Small-area digital to analog converter based on master-slave configuration
JP2010011140A (ja) デジタルdll回路及び半導体装置
US20110080201A1 (en) Digital logic circuits having a pulse width timing circuit
US6172530B1 (en) Decoder for generating N output signals from two or more precharged input signals
JP3029926B2 (ja) Da変換器
Al-Nsour et al. Implementation of programmable digital sigmoid function circuit for neuro-computing
JP3718932B2 (ja) 中間位相クロック生成回路
GB2134342A (en) Apparatus for matching fet switches as for a video digital-to-analog converter
US7646321B2 (en) Digital/analog converter
JP2000134103A (ja) サーモメトリック−バイナリコード変換方法および回路、それに使用されるエンコーダ素子回路

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200731

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210630

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210719

R150 Certificate of patent or registration of utility model

Ref document number: 6927244

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150