JP6844013B2 - 半導体記憶素子を用いたニューラルネットワーク演算回路及び動作方法 - Google Patents

半導体記憶素子を用いたニューラルネットワーク演算回路及び動作方法 Download PDF

Info

Publication number
JP6844013B2
JP6844013B2 JP2019540878A JP2019540878A JP6844013B2 JP 6844013 B2 JP6844013 B2 JP 6844013B2 JP 2019540878 A JP2019540878 A JP 2019540878A JP 2019540878 A JP2019540878 A JP 2019540878A JP 6844013 B2 JP6844013 B2 JP 6844013B2
Authority
JP
Japan
Prior art keywords
circuit
output
data
configuration information
word line
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
JP2019540878A
Other languages
English (en)
Other versions
JPWO2019049686A1 (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co 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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Publication of JPWO2019049686A1 publication Critical patent/JPWO2019049686A1/ja
Application granted granted Critical
Publication of JP6844013B2 publication Critical patent/JP6844013B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • 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
    • 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/08Learning methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/18Bit line organisation; Bit line lay-out
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0023Address circuits or decoders
    • G11C13/0026Bit-line or column circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Neurology (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Memory System (AREA)
  • Semiconductor Memories (AREA)
  • Image Analysis (AREA)

Description

本発明は低消費電力化と大規模集積化が可能な不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路、及びその動作方法に関する。
情報通信技術の進展に伴い、あらゆるものがインターネットに繋がるIoT(Internet of Things)技術の到来が注目されている。IoT技術において、様々な電子機器がインターネットに接続されることで、機器の高性能化が期待されているが、更なる高性能化を実現する技術として、電子機器自らが学習と判断を行う人工知能(AI:Artificial Intelligence)技術の研究開発が近年活発に行われている。
人工知能技術において、人間の脳型情報処理を工学的に模倣したニューラルネットワーク技術が用いられており、ニューラルネットワーク演算を高速、低消費電力で実行する半導体集積回路の研究開発が盛んに行われている。
ニューラルネットワークは複数の入力が各々異なる結合重み係数を有するシナプスと呼ばれる結合で接続されたニューロンと呼ばれる(パーセプトロンと呼ばれる場合もある)基本素子から構成され、複数のニューロンが互いに接続されることで、画像認識や音声認識といった高度な演算処理を行うことができる。ニューロンでは各入力と各結合重み係数を乗算したものを全て加算した積和演算動作が行われる。
非特許文献1に、抵抗変化型不揮発性メモリを用いたニューラルネットワーク演算回路の例が開示されている。ニューラルネットワーク演算回路をアナログ抵抗値(コンダクタンス)が設定可能な抵抗変化型不揮発性メモリを用いて構成するものであり、不揮発性メモリ素子に結合重み係数に相当するアナログ抵抗値(コンダクタンス)を格納し、入力に相当するアナログ電圧値を不揮発性メモリ素子に印加し、このとき不揮発性メモリ素子に流れるアナログ電流値を利用する。ニューロンで行われる積和演算動作は、複数の結合重み係数を複数の不揮発性メモリ素子にアナログ抵抗値(コンダクタンス)として格納し、複数の入力に相当する複数のアナログ電圧値を複数の不揮発性メモリ素子に印加し、複数の不揮発性メモリ素子に流れる電流値を合算したアナログ電流値を積和演算結果として得ることで行われる。不揮発性メモリ素子を用いたニューラルネットワーク演算回路は、低消費電力化が実現可能であり、アナログ抵抗値(コンダクタンス)が設定可能な抵抗変化型不揮発性メモリのプロセス開発、デバイス開発、及び回路開発が近年盛んに行われている。
特許文献1には、メモリデバイスにニューロン情報を格納し、ニューラルネットワークを構成可能とするニューラルコア回路が提案されている。1つのコアに各ニューロンのシナプス結合性情報、ニューロン・パラメータ、ニューロンのルーティングデータをメモリデバイスに保持し、ルーティングデータに応じて、ニューロンコア内の発火イベントを別のニューロンコアへルーティングする構成をとっている。
特表2015−534172号公報
しかしながら、前述した特許文献1のニューラルコアでは、任意の層数及びノード数のニューラルネットワークを構成するため、複数のコアを連結させなければならない。このため1つのチップに対し、複数のコア・連結回路の搭載が必要となり、ニューラルネットワークの規模の増大に応じて回路規模が大きくなる課題がある。また、搭載可能なニューロン数が、周辺回路のサイズにより決定するため、ニューロンの大規模集積化が困難となっている。
本発明の半導体記憶素子を用いたニューラルネットワーク演算回路は、複数のワード線と、前記複数のワード線に交差する形で配列される複数のビット線と、前記複数のワード線と前記複数のビット線の交点に配置され、各々がニューラルネットワークの結合重み係数を保持する複数のメモリセルと、前記複数のワード線のうち、任意の1本以上のワード線を駆動可能なワード線駆動回路と、前記複数のビット線のうち、任意のビット線を選択可能なカラム選択回路と、前記カラム選択回路により選択されたビット線に接続する複数のメモリセル群が保持する複数の結合重み係数と前記複数のワード線の駆動状態で示す入力データとの積和演算を、前記カラム選択回路により選択されたビット線に流れる電流を判定することで実施する演算回路と、前記演算回路の出力データを保持する出力保持回路と、ニューラルネットワークの各結合重み係数を割り当てたメモリセルのアドレス情報を含むネットワーク構成情報を保持するネットワーク構成情報保持回路と、前記ネットワーク構成情報をもとに外部からの入力データを前記ワード線駆動回路にセットする機能と、前記ネットワーク構成情報をもとに前記出力保持回路の保持データを前記ワード線駆動回路にセットする機能と、前記ネットワーク構成情報をもとに演算に使用するビット線を前記カラム選択回路に指定する機能とを持つ制御回路とで構成される。
制御回路はネットワーク構成情報を参照して、入力層の入力データをワード線駆動回路に設定する。また、ネットワーク構成情報を参照してビット線を選択し、演算回路に接続する。演算回路では、選択されたビット線に、ワード線駆動回路で駆動されたメモリセルのセル電流の総和が流れることを利用し、ニューラルネットワーク演算結果を出力する。演算回路の搭載個数に対し、出力ノード数が大きい場合、1回の演算回路動作ではすべての出力を得ることができないため、ビット線の選択を変更し、異なるメモリセルを用いて再度演算を行う。ある層の演算結果は出力保存回路に保持され、出力が全てそろった後、ネットワーク構成情報を参照し、次層の入力としてワード線駆動回路に設定する。ネットワーク構成情報に応じて、任意の層数分の演算動作を繰り返した後、出力層のデータを出力保持回路から出力し、ニューラルネットワーク演算動作を完了する。
本発明では、ネットワーク構成情報によりメモリアレイ内の結合重み係数の配置を管理することで、ある層の演算結果を次層の入力として再度メモリアレイのワード線に設定でき、複数層のニューラルネットワークを1つのメモリアレイで演算可能になる。また、ネットワーク構成情報を書き換えることで、同一メモリアレイを用いて異なるニューラルネットワークを構成することが可能となる。加えてカラム選択回路を用いてメモリアレイと演算回路を分離していることから、結合重み係数を保持するメモリセルを高度に集積化でき、回路に搭載するニューロン数を飛躍的に増加させることができる。
以上の効果から、多数のニューロン及び複数層で構成されるニューラルネットワークの演算を、1つのメモリアレイを用いて、省面積で実現可能な不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路を提供することができる。
図1は、ニューラルネットワーク、特にディープニューラルネットワークの構成例を示す図である。 図2は、ニューラルネットワーク演算におけるニューロンの計算を示す図である。 図3は、本発明におけるバイアスの計算を鑑みたニューラルネットワーク演算におけるニューロンの計算を示す図である。 図4は、活性化関数の例であるステップ関数を示す図である。 図5は、第一の実施形態を示す図である。 図6は、ネットワーク構成情報の構成例を示す図である。 図7Aは、ニューラルネットワークの結合重み係数のマッピング例及び、各構成要素の接続例を示す図である。 図7Bは、ある1つの結合重み係数wi,jを保持するメモリセル21の接続関係を表す図である。 図8は、本発明によるニューラルネットワーク演算動作の解説に用いるニューラルネットワークの例を示す図である。 図9は、図8のニューラルネットワークのネットワーク構成情報の例を示す図である。 図10は、図8のニューラルネットワークを演算する際の各構成要素の動作を説明する概念図である。 図11は、図8のニューラルネットワークを演算する際の各構成要素の動作を説明する概念図である。 図12は、図8のニューラルネットワークを演算する際の各構成要素の動作を説明する概念図である。 図13は、図8のニューラルネットワークを演算する際の各構成要素の動作を説明する概念図である。 図14は、本発明の第二の実施形態を示す図である。 図15は、本発明の第三の実施形態を示す図である。
以下、本発明の実施形態について、図面を参照して説明する。
<ニューラルネットワーク演算>
始めに、ニューラルネットワーク演算の基礎理論について説明する。
図1は、ディープニューラルネットワークの構成を示す図である。ニューラルネットワークは入力データが入力される入力層1、入力層1の入力データを受けて演算処理を行う隠れ層2(中間層と呼ばれる場合もある)、隠れ層2の出力データを受けて演算処理を行う出力層3から構成される。入力層1、隠れ層2、出力層3の各々において、ニューロン10と呼ばれるニューラルネットワークの基本素子が多数存在し、各々のニューロン10は結合重み11を介して接続されている。複数の結合重み11は各々異なる結合重み係数を有してニューロン間を接続している。ニューロン10には複数の入力データが入力され、ニューロン10ではこれら複数の入力データと対応する結合重み係数との積和演算動作が行われ出力データとして出力される。ここで、隠れ層2は複数段(図1では4段)のニューロンが連結された構成であり、深いニューラルネットワークを形成しているという意味で、図1に示すようなニューラルネットワークはディープニューラルネットワークと呼ばれる。
図2はニューラルネットワーク演算におけるニューロンの計算を示す図であり、ニューロン10が行う計算式を図2の式(1)、式(2)に示す。ニューロン10はn個の入力x1〜xnが各々結合重み係数w1〜wnを有する結合重みで接続されており、入力x1〜xnと結合重み係数w1〜wnとの積和演算が行われる。ニューロン10はバイアス係数bを有しており、入力x1〜xnと結合重み係数w1〜wnとの積和演算結果にバイアス係数bが加算される。ニューロン10は活性化関数fを有しており、入力x1〜xnと結合重み係数w1〜wnとの積和演算結果にバイアス係数bを加算した結果に対して活性化関数の演算処理を行い出力yが出力される。
図3はニューラルネットワーク演算におけるニューロンの計算において、バイアス係数bの演算を入力x0と結合重み係数w0に割り当てた場合の計算を示す図であり、ニューロン10が行う計算式を図3の式(1)、式(2)に示す。前述した図2において、ニューロン10は入力x1〜xnと結合重み係数w1〜wnとの積和演算と、バイアス係数bの加算演算が行われるが、図3に示す通り、バイアス係数bの加算演算を入力x0=1、結合重み係数w0=bとして、n+1個の入力x0〜xnが各々結合重み係数w0〜wnを有する結合重みで接続されたニューロン10と解釈することができる。図3の式(1)、式(2)に示す通り、ニューロン10の計算を入力x0〜xnと結合重み係数w0〜wnとの積和演算のみで簡潔に表現できる。本実施形態では図3に示す通り、バイアス係数bの加算演算の表現を入力x0=1と結合重み係数w0=bとして表現することにする。
図4はニューラルネットワーク演算におけるニューロンの活性化関数fの例であるステップ関数を示す図であり、x軸は活性化関数fの入力u、y軸は活性化関数fの出力f(u)である。図4に示す通り、ステップ関数は入力uが負の値(<0)の場合は出力f(u)=0を出力し、入力uが正の値(≧0)の場合は出力f(u)=1を出力する関数である。前述した図3のニューロン10において、ステップ関数の活性化関数fを使用した場合、入力x0〜xnと結合重み係数w0〜wnとの積和演算結果が負の値の場合は出力y=0が出力され、積和演算結果が正の値の場合は出力y=1が出力される。
以降、活性化関数の例としてステップ関数を使用するが、ニューラルネットワーク演算で使用されるその他の活性化関数には比例関数等があり、本発明における活性関数はステップ関数に限定するものではない。
<ニューラルネットワーク演算回路>
図5は、第一の実施形態に係る不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路の詳細構成を示す図である。
メモリセル21は縦横に配置されメモリアレイ20を構成する。メモリセル21は横方向に配置されたワード線22と縦方向に配置されたビット線23に接続する。メモリセルは不揮発性半導体記憶素子を用いて構成され、ワード線22に電圧を印加された際に、自身の状態に応じたセル電流をビット線23に流す。メモリセル21は、ワード線22とビット線23の交点に不揮発性半導体記憶素子を配置するクロスポイント型、もしくは不揮発性半導体記憶素子とトランジスタを直列に接続して1セルを構成し、ワード線22でトランジスタのゲートを駆動し、ビット線23をトランジスタのソースもしくは不揮発性半導体記憶素子のもう一端に接続する構成をとる。
メモリセル21の不揮発性半導体記憶素子には、任意のセル電流を設定できる素子である抵抗変化型素子、磁気抵抗変化型素子、相変化型素子、強誘電体記憶素子が利用できる。
ワード線駆動回路24は、ニューラルネットワークの入力に応じて各ワード線22に電圧を印加する回路である。複数の任意のワード線22に同時に電圧を印加する機能をもつ。ワード線駆動回路24にはロウアドレス信号41及び設定データ42が入力され、ロウアドレス信号41で指示される位置に設定データ42をセットすることで各ワード線22の駆動状態をセットする。ワード線22の1本あたりの駆動状態を設定する設定データ42は1ビット以上のデータ幅をもつ。例えば、1本あたり1ビットのデータ幅で表現する場合、0データをGNDレベル設定、1データをハイレベル設定に割り当てる。また、1本あたり多ビットで表現する場合は、ワード線22の電圧レベルを各データに割り当てる。電圧レベルの割り当てと、ワード線22ごとの設定データ42に応じてワード線駆動回路はワード線22に電圧を印加する。また、ロウアドレス信号41で指示され、設定データ42が設定されるワード線22以外のワード線22にはGNDレベルを印加する。
カラム選択回路25は、制御回路29から出力されるカラム選択信号40をもとに、複数のビット線23からニューラルネットワーク演算に用いるビット線23を1本以上選択して演算回路26に接続する回路である。演算回路26は1つのメモリアレイ20に対し、1個以上を搭載する。複数の演算回路26を搭載する際は、メモリアレイ20をカラム方向に演算回路数分に分割し、各分割エリアをそれぞれの演算回路26が担当する。カラム選択回路25はそれぞれの演算回路26に対し、共通のカラム選択信号40を用いて、各分割エリアからニューラルネットワーク演算に用いるビット線23を選択し接続する。
演算回路26は接続したビット線23に流れる電流値を判定することで、活性化関数の演算動作を実現する。本発明における演算回路はデジタル値を取るものとする。例えば、2本のビット線23の大小をセンスアンプ回路で比較し、(0,1)の2値データを出力することでステップ関数の演算動作を実現する。また、ビット線23に流れる電流値をA/D変換回路でデジタル信号に変換する方式もある。演算回路26で活性化関数の演算を行った結果は、出力保持回路27に蓄積される。出力保持回路27はフリップフロップ、ラッチ回路等を用いて構成される。図5の第一の実施形態では出力保持回路27に蓄積したデータは外部出力が可能になっている。
制御回路29は、ネットワーク構成情報保持回路28に保持しているネットワーク構成情報を参照し、ワード線駆動回路24に対し、ロウアドレス信号41を出力し、入力データ又は出力保持回路27の保持データを設定するワード線エリアを指示する。ニューラルネットワークの入力層1の入力データを設定する場合は、セレクタ回路30で外部入力を選択し、ワード線駆動回路24に設定データ42を指示する。隠れ層2以降の入力データを設定する場合は、セレクタ回路30で出力保持回路27のデータを選択し、ワード線駆動回路24に設定データ42を指示する。また制御回路29は、ネットワーク構成情報を参照し、カラム選択回路25に対し演算回路26に接続するビット線23の選択を指示するカラム選択信号40を生成する。
ネットワーク構成情報は、ニューラルネットワークの各層のノード数、隠れ層2の総数、各結合重み係数を割り当てているメモリセル21のメモリアレイ20内のアドレス情報を含む。図6にネットワーク構成情報の構成例を示す。各層のノード数及び結合重み係数の割り当て開始アドレスをリスト形式で保持する。結合重み係数の割り当て開始アドレスと、メモリアレイ20内の結合重み係数のマッピングの関係性については、後述で動作の例と共に詳細を説明する。
ネットワーク構成情報保持回路28はネットワーク構成情報を保持する記憶回路である。ネットワーク構成情報を書き換えできるようRAM(Random Access Memory)を用いて構成する。なお、メモリアレイ20の一部をデジタルメモリとして用いるためのアクセス回路を搭載している場合、メモリアレイ20の一部をネットワーク構成情報保持回路28として使用してもよい。
次に第一の実施形態を用いたニューロンの計算について説明する。
本発明において、ワード線22の各バイアス状態はニューロンの計算式における入力x0〜xnに相当する。同じカラム選択信号40で選択され、同じ演算回路26に接続するビット線23に接続するメモリセル21のうち、同じワード線22で駆動される1つ以上のメモリセル21で、1つの結合重み係数を表現する。
以下、各入力x0〜xnが(0,1)の2値をとり、結合重み係数が2つのメモリセル21のセル電流値の差分を用いて符号付アナログ値で表現されるニューロンを第一の実施形態で計算する例を説明する。また、活性化関数にはステップ関数を用いるものとする。
図7Aに、説明に用いるメモリセル21、メモリアレイ20、ワード線駆動回路24、カラム選択回路25及び演算回路26を含む簡略図を示す。図7Aでは、メモリアレイ20はカラム方向に8つのエリアに分割され、各々に演算回路26が1つずつ対応している。カラム選択回路25は各演算回路26に対し、カラム選択信号40をもとに2本のビット線23を選択して接続する。
カラム選択回路25で各演算回路26に接続する2本のビット線23に接続するメモリセル21は、共通のワード線で駆動される2つのメモリセル21で1つの結合重み係数を表す。図7Bに、ある1つの結合重み係数wi,jを保持するメモリセル21の接続関係を表す。符号付アナログ値の結合重み係数を設定するため、2つのメモリセル21の一方を正の結合重み係数を表すために用いる正側メモリセル21A、もう一方を負の結合重み係数を表すために用いる負側メモリセル21Bとして用いる。ワード線22にハイレベルが印加された際の正側メモリセル21Aのセル電流と、負側メモリセル21Bのセル電流の差分が結合重み係数に比例するように、各セル電流を設定する。カラム選択回路25で選択する2本のビット線23は、正側メモリセル21Aを接続する正側ビット線23Aと、負側メモリセル21Bを接続する負側ビット線23Bに分けられる。表記の簡略化のため、正側ビット線23Aと負側ビット線23Bが隣接している図となっているが、共通のカラム選択信号40で選択されるビット線23であれば、メモリアレイ20内での位置は任意である。
ワード線駆動回路24は設定された入力の(0,1)データに応じ、1設定されるワード線22にハイレベルの電圧を印加し、0設定されるワード線22にはGNDレベルを印加する。ワード線22にハイレベルの電圧を印加されたメモリセル21には、各セルの保持状態に応じたセル電流が流れる。一方、ワード線22がGNDレベルのメモリセル21にはセル電流が流れない。このため、正側ビット線23Aにはワード線22がハイレベルの正側メモリセル21Aの電流の総和が流れ、負側ビット線23Bにはワード線22がハイレベルの負側メモリセル21Bの電流の総和が流れる。
演算回路26は接続した正側ビット線23Aと負側ビット線23Bの電流を比較し、正側ビット線23Aの電流が大きければ1を出力し、負側ビット線23Bの電流が大きければ0を出力する。この動作により、ワード線22の駆動状態で表される入力と、正側メモリセル21Aと負側メモリセル21Bのセル電流の差分で表される結合重み係数の総和をステップ関数に代入した結果を得ることができる。
次に、前述したニューロンをノードとしたニューラルネットワークの演算動作を説明する。
図8に、説明に用いるニューラルネットワークの図を示す。入力層1は9ノード、隠れ層2は17ノード、出力層3は8ノードの3層構造をとる。入力層1及び隠れ層2のノードのうち、ノード0はバイアス係数の加算表現に用いるノード(以下、バイアスノードと呼ぶ)であり、入力値が1に固定される。外部からの入力データx1〜x8は8ビットの(0,1)データで示される。
図9に、説明に用いるニューラルネットワークのネットワーク構成情報を示す。ネットワーク構成情報の1層目の情報には、入力層1のノードがバイアスノードを除いて8ノードであることと、入力層1から隠れ層2の結合重み係数の割り当てのワード線開始アドレスが0番地であること及びビット線開始アドレスが0番地であることを含んでいる。ネットワーク構成情報の2層目の情報には、隠れ層2のノード数がバイアスノードを除いて16ノードであることと、隠れ層2から出力層3の結合重み係数の割り当てのワード線開始アドレスが0番地であること及びビット線開始アドレスが2番地であることが含まれる。ネットワーク構成情報の3層目の情報には、出力層3のノード数が8ノードであることが含まれている。
図7Aには、図8及び図9で示すニューラルネットワークの結合重み係数をメモリアレイエリアへマッピングした結果を記載している。図8のニューラルネットワークの入力層1から隠れ層2への結合重み係数をwi,j、隠れ層2から出力層3への結合重み係数をw’i,jで表している。各iは入力側のノード番号を表し、jは出力側のノード番号を表す。例えば、図8の入力層1のバイアスノード(ノード0)から隠れ層2のノード1への結合重み係数はw0,1となり、隠れ層2のノード1から出力層3のノード1への結合重み係数はw’1,1となる。
メモリアレイ20内におけるアドレスは、各ワード線22と分割メモリエリア内の正負ビット線の組み合わせごとに付与されており、w0,1〜w0,8が配置されている位置がワード線アドレス0番地、ビット線アドレス0番地に相当するものとする。
図7Aで示すように、入力層1から隠れ層2への結合重み係数は、ビット線アドレス0番地にあたるwx,1〜wx,8(x=0〜8)と、ビット線アドレス1番地にあたるwx,9〜wx,16(x=0〜8)に分けてマッピングする。本構成において、ある層から次の層への結合重み係数は、次の層のノード数が演算回路数を超える場合、ワード線エリアが共通で、異なるビット線番地にマッピングを行う。あるワード線駆動状態つまり入力に対し、1回の演算回路動作で得られる出力ノードは搭載する演算回路数に制限される。しかし前述したマッピング方法を用いることで、ワード線駆動状態を維持したまま、カラム選択信号40を切り替えて演算回路26を動作させることで、演算回路数以上の出力ノード数を扱うことができる。
図7Aの結合重みのマッピング及び図9のネットワーク構成情報では、ある層から次層への結合重み係数は、連続したビット線番地にマッピングすることを前提としており、結合重み係数の割り当て開始アドレスのみ管理する例を示しているが、制御回路29がある層から次層への結合重み係数の割り当て位置を指示できるように、ネットワーク構成情報やハードウェアの情報があれば、必ずしも連続したビット線番地にマッピングする必要はない。
図10、図11、図12、図13を用いて、図8、図9で示すニューラルネットワークにある入力を入れた際の演算フローを示す。図10において、まず外部入力から入力層1のデータが入力され、ワード線駆動回路24にセットされる。このとき、制御回路29は図9のネットワーク構成情報の第1層の情報を参照する。第1層の情報から、入力層1のノード数はバイアスノードを除き8ノードであり、入力層1と次層の結合重み係数はワード線アドレス0番地から開始するワード線22に配置されていることがわかる。このため、ワード線アドレス0番地のワード線にバイアスノードの入力である1データをセットし、連続するワード線アドレス1番地から8番地に入力データをセットする。また第1層の情報から、入力層1と次層の結合重み係数はビット線アドレス0番地から開始する領域に配置していることがわかる。このため、カラム選択回路25はビット線アドレス0番地で示される正側ビット線23A及び負側ビット線23Bを演算回路26に接続する。8機搭載されている演算回路26は、それぞれ正側ビット線23Aと負側ビット線23Bの電流を比較判定し、(0,1)を出力する。出力した結果は隠れ層2のノード1からノード8のデータとなり、出力保持回路27に保存される。
次に図11において、ネットワーク構成情報の第2層の情報から、隠れ層2のノードはバイアスノードを除いて16ノードあることがわかる。図10の演算動作では、隠れ層2のノード1からノード8までの演算結果しか得られていないため、制御回路29はビット線アドレスをインクリメントし、カラム選択回路25に1番地を選択するように指示する。カラム選択回路25はビット線アドレス1番地で示される正側ビット線23A及び負側ビット線23Bを演算回路26に接続する。再度演算回路26で電流の比較判定を実施することで、隠れ層2のノード9からノード16のデータを得ることができる。演算回路26の出力結果を、出力保持回路27に追加して保存する。
次に図12において、隠れ層2の演算が完了したため、出力保持回路27の保持データをワード線駆動回路24に転送している。ネットワーク構成情報の第2層の情報から、隠れ層2と出力層3の結合重み係数は、ワード線アドレス0番地から開始するワード線22に配置されていることがわかる。このため、ワード線アドレス0番地のワード線にバイアスノードの入力である1データをセットし、連続するワード線アドレス1番地から16番地に隠れ層2のノード1からノード16のデータをセットする。
最後に図13において、ネットワーク構成情報の第2層の情報から、隠れ層2と出力層3の結合重み係数は、ビット線アドレス2番地から開始する領域に配置されていることがわかる。このため、カラム選択回路25はビット線アドレス2番地で示される正側ビット線23A及び負側ビット線23Bを演算回路26に接続する。演算回路26は正側ビット線23Aと負側ビット線23Bの電流を比較判定し、(0,1)を出力する。演算回路26の出力結果は出力保持回路27に保存され、出力層3の演算結果として外部出力より出力される。
以上の動作により、図8で示すニューラルネットワークの演算を1つのメモリアレイ20に保持した結合重み係数を用いて実施することができる。ニューラルネットワークの層数が増加した場合も、前述したように、ネットワーク構成情報を参照して、出力保持回路27の保持データをワード線駆動回路24に設定し、ビット線23を選択し、演算回路26で演算結果を得て出力保持回路27に保存する動作を繰り返すことで実現できる。
図14は本発明の第二の実施形態に係る不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路の詳細構成を示す図である。外部入力と演算回路26の出力をセレクタ回路31で選択し、出力保持回路27に保存する。外部からの入力データを設定する際は、出力保持回路27に一旦データを保存したのち、ワード線駆動回路24に設定する動作をとる。また、演算回路26から出力したデータと、外部入力から入力したデータを出力保持回路27において結合し、ワード線駆動回路24に設定することも可能とする。
図15は本発明の第三の実施形態に係る不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路の詳細構成を示す図である。演算回路26の出力がそのまま外部出力に接続し、セレクタ回路32で演算回路26の出力と外部入力を選択し、出力保持回路27に接続する構成をとる。第二の実施形態と同様に、外部からの入力データを設定する際は、出力保持回路27に一旦データを保存したのち、ワード線駆動回路24に設定する動作をとる。また、演算回路26から出力したデータと、外部入力から入力したデータを出力保持回路27において結合し、ワード線駆動回路24に設定することも可能とする。
図5、図14、図15においてネットワーク構成情報保持回路28は制御回路29中に含む形で記載しているが、その搭載場所を制限するものではない。また、実施形態の説明に用いた図面における各構成要素の実現方法及び搭載数は、例示を目的として記載しており、その実施形態を制限するものではない。
なお、本発明におけるメモリアレイ20は、必ずしも全面をニューラルネットワークの結合重み係数の実装に用いる必要はなく、本発明の構成要素に加えてデジタルメモリのアクセス回路を搭載し、メモリアレイ20の一部をデジタルメモリとして用いることも可能である。また、一部をデジタルメモリとして用いる場合に、各構成要素の機能をデジタルメモリアクセスに用いることも可能である。
以上、本発明の実施形態を説明してきたが、本発明の不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路は、上述の例示にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更等を加えたものに対しても有効である。
本発明に係る不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路は、ネットワーク構成情報でニューラルネットワークの構成を管理することで、1つのメモリアレイを用いてディープニューラルネットワークを構成することが可能になる。また、メモリアレイの異なる領域に複数のニューラルネットワークの結合重み係数を保持することで、1つのメモリアレイに複数のニューラルネットワークを保持することも可能である。また、本発明の構成はメモリアレイ部が演算回路と分離しているため、メモリアレイ部を高度に集積化でき、多数のニューロンを搭載することが可能になる。
加えて、メモリアレイの一部をデジタルメモリとして用いることも可能なため、ニューラルネットワーク演算回路と、デジタルメモリとしての機能を同時に搭載できる。
従って、複数の大規模なニューラルネットワーク演算を1コアで実現するマクロとして活用でき、また、ノイマン型プロセッサと併用し、ニューラルネットワーク演算のアクセラレータとデジタルメモリの両機能をもつマクロとしても活用できる。これらの活用は、例えば、自らが学習と判断を行う人工知能(AI:Artificial Intelligence)技術を搭載した半導体集積回路、及びそれらを搭載した電子機器等に対して有用である。
1 入力層
2 隠れ層
3 出力層
10 ニューロン
11 結合重み
20 メモリアレイ
21 メモリセル
22 ワード線
23 ビット線
24 ワード線駆動回路
25 カラム選択回路
26 演算回路
27 出力保持回路
28 ネットワーク構成情報保持回路
29 制御回路
30、31、32 セレクタ回路
40 カラム選択信号
41 ロウアドレス信号
42 設定データ
x0〜xn 入力
w0〜wn 結合重み係数
b バイアス係数
f 活性化関数
y 出力
N1 第1層のノード数
N2 第2層のノード数
Nn−1 第N−1層のノード数
Nn 第N層のノード数

Claims (6)

  1. 複数のワード線と、
    前記複数のワード線に交差する形で配列される複数のビット線と、
    前記複数のワード線と前記複数のビット線の交点に配置され、各々がニューラルネットワークの結合重み係数を保持する複数のメモリセルと、
    前記複数のワード線のうち、任意の1本以上のワード線を駆動可能なワード線駆動回路と、
    前記複数のビット線のうち、任意のビット線を選択可能なカラム選択回路と、
    前記カラム選択回路により選択されたビット線に接続する複数のメモリセル群が保持する複数の結合重み係数と前記複数のワード線の駆動状態で示す入力データとの積和演算を、前記カラム選択回路により選択されたビット線に流れる電流を判定することで実施する演算回路と、
    前記演算回路の出力データを保持する出力保持回路と、
    ニューラルネットワークの各結合重み係数を割り当てたメモリセルのアドレス情報を含むネットワーク構成情報を保持するネットワーク構成情報保持回路と、
    前記ネットワーク構成情報をもとに外部からの入力データを前記ワード線駆動回路にセットする機能と、前記ネットワーク構成情報をもとに前記出力保持回路の保持データを前記ワード線駆動回路にセットする機能と、前記ネットワーク構成情報をもとに演算に使用するビット線を前記カラム選択回路に指定する機能とを持つ制御回路とを備えた半導体集積回路。
  2. あるワード線駆動状態と、あるビット線選択状態における前記演算回路の出力データを前記出力保持回路に保存した後、前記ワード線駆動状態を保持したまま、選択するビット線を変更し、前記演算回路の出力データを前記出力保持回路に追加して保存し、結合したデータを前記ワード線駆動回路に設定する機能を持つ請求項1に記載の半導体集積回路。
  3. 前記外部からの入力データと前記出力保持回路の保持データから前記ワード線駆動回路に接続するデータを選択するセレクタ回路を更に備えた請求項1に記載の半導体集積回路。
  4. 前記外部からの入力データと前記演算回路の出力データから前記出力保持回路に接続するデータを選択するセレクタ回路を更に備えた請求項1に記載の半導体集積回路。
  5. 複数のワード線と、前記複数のワード線に交差する形で配列される複数のビット線と、前記複数のワード線と前記複数のビット線の交点に配置され、各々がニューラルネットワークの結合重み係数を保持する複数のメモリセルと、前記複数のワード線のうち、任意の1本以上のワード線を駆動可能なワード線駆動回路と、前記複数のビット線のうち、任意のビット線を選択可能なカラム選択回路と、前記カラム選択回路により選択されたビット線に接続する複数のメモリセル群が保持する複数の結合重み係数と前記複数のワード線の駆動状態で示す入力データとの積和演算を、前記カラム選択回路により選択されたビット線に流れる電流を判定することで実施する演算回路と、前記演算回路の出力データを保持する出力保持回路と、ニューラルネットワークの各結合重み係数を割り当てたメモリセルのアドレス情報を含むネットワーク構成情報を保持するネットワーク構成情報保持回路と、前記ネットワーク構成情報をもとに外部からの入力データを前記ワード線駆動回路にセットする機能と、前記ネットワーク構成情報をもとに前記出力保持回路の保持データを前記ワード線駆動回路にセットする機能と、前記ネットワーク構成情報をもとに演算に使用するビット線を前記カラム選択回路に指定する機能とを持つ制御回路とを備えた半導体集積回路を用い、
    前記ネットワーク構成情報をもとに、前記外部からの入力データをニューラルネットワークの入力層と入力層の次の層である第一の隠れ層との結合重み係数を保持する第一のメモリセル群に対応する第一のワード線エリアを駆動するように設定し、前記第一のメモリセル群に対応する1本以上の第一のビット線群を選択して前記演算回路に接続し、
    前記演算回路から得られた演算結果を前記出力保持回路に保持し、前記出力保持回路の保持データを前記第一の隠れ層の次の層である第二の隠れ層の入力データとして、前記第一の隠れ層と前記第二の隠れ層の結合重み係数を保持する第二のメモリセル群に対応する第二のワード線エリアを駆動するように設定し、前記第二のメモリセル群に対応する1本以上の第二のビット線群を選択して前記演算回路に接続し、
    前記演算回路から得られた結果を前記出力保持回路に保持し、前記演算回路の出力が出力層に当たらない場合、更に次の隠れ層に対して対応するメモリセル群を用いて前記第二の隠れ層に対する動作と同様の動作を繰り返し実施するニューラルネットワーク半導体集積回路の動作方法。
  6. 前記第一のビット線群又は前記第二のビット線群を選択して前記演算回路に接続し、前記演算回路から得られた演算結果を前記出力保持回路に保持する動作は、次の層のノードの演算結果をすべて得るまでビット線選択を変更しながら繰り返し実施することを特徴とする請求項5に記載のニューラルネットワーク半導体集積回路の動作方法。
JP2019540878A 2017-09-07 2018-08-24 半導体記憶素子を用いたニューラルネットワーク演算回路及び動作方法 Active JP6844013B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2017171953 2017-09-07
JP2017171953 2017-09-07
PCT/JP2018/031298 WO2019049686A1 (ja) 2017-09-07 2018-08-24 半導体記憶素子を用いたニューラルネットワーク演算回路及び動作方法

Publications (2)

Publication Number Publication Date
JPWO2019049686A1 JPWO2019049686A1 (ja) 2020-08-06
JP6844013B2 true JP6844013B2 (ja) 2021-03-17

Family

ID=65634134

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019540878A Active JP6844013B2 (ja) 2017-09-07 2018-08-24 半導体記憶素子を用いたニューラルネットワーク演算回路及び動作方法

Country Status (6)

Country Link
US (1) US11495289B2 (ja)
EP (1) EP3680824A4 (ja)
JP (1) JP6844013B2 (ja)
CN (1) CN111052153B (ja)
TW (1) TWI699762B (ja)
WO (1) WO2019049686A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI698810B (zh) * 2019-06-14 2020-07-11 旺宏電子股份有限公司 類神經計算裝置
US11233049B2 (en) 2019-06-14 2022-01-25 Macronix International Co., Ltd. Neuromorphic computing device
US11514300B2 (en) 2019-06-14 2022-11-29 Macronix International Co., Ltd. Resistor circuit, artificial intelligence chip and method for manufacturing the same
KR102389413B1 (ko) * 2019-08-21 2022-04-21 연세대학교 산학협력단 멀티 mac 동작을 수행하는 뉴로모픽 시스템 및 그 방법
CN110751279B (zh) * 2019-09-02 2022-10-14 北京大学 一种铁电电容耦合神经网络电路结构及神经网络中向量与矩阵的乘法运算方法
CN112580790B (zh) * 2019-09-29 2023-06-30 华为技术有限公司 神经网络计算电路、芯片及系统
TWI732702B (zh) * 2019-11-22 2021-07-01 旺宏電子股份有限公司 記憶體內運算器
CN115171322A (zh) * 2022-05-27 2022-10-11 国网江苏省电力有限公司 一种电缆沟火灾预警及危险性判断系统及方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4988891A (en) * 1989-05-09 1991-01-29 Mitsubishi Denki Kabushiki Kaisha Semiconductor neural network including photosensitive coupling elements
JPH0782481B2 (ja) * 1989-12-26 1995-09-06 三菱電機株式会社 半導体神経回路網
JP3260357B2 (ja) * 1990-01-24 2002-02-25 株式会社日立製作所 情報処理装置
US5058180A (en) * 1990-04-30 1991-10-15 National Semiconductor Corporation Neural network apparatus and method for pattern recognition
JPH0454685A (ja) * 1990-06-22 1992-02-21 Kobe Steel Ltd 状熊学習装置及び状態推定装置
EP0482408A3 (en) * 1990-10-22 1993-12-01 Motorola Inc Digital neural network computation ring
US5087826A (en) * 1990-12-28 1992-02-11 Intel Corporation Multi-layer neural network employing multiplexed output neurons
US5237210A (en) * 1992-03-12 1993-08-17 Intel Corporation Neural network accomodating parallel synaptic weight adjustments for correlation learning algorithms
JP3056324B2 (ja) * 1992-04-01 2000-06-26 株式会社日立製作所 学習/想起方法および装置
US5371834A (en) * 1992-08-28 1994-12-06 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Adaptive neuron model--an architecture for the rapid learning of nonlinear topological transformations
JP4191218B2 (ja) * 2006-10-12 2008-12-03 エルピーダメモリ株式会社 メモリ回路及び半導体装置
US9159020B2 (en) 2012-09-14 2015-10-13 International Business Machines Corporation Multiplexing physical neurons to optimize power and area
US20150324691A1 (en) * 2014-05-07 2015-11-12 Seagate Technology Llc Neural network connections using nonvolatile memory devices
JP6375884B2 (ja) * 2014-11-13 2018-08-22 富士通セミコンダクター株式会社 半導体記憶装置及びその制御方法

Also Published As

Publication number Publication date
JPWO2019049686A1 (ja) 2020-08-06
CN111052153A (zh) 2020-04-21
US20200202925A1 (en) 2020-06-25
CN111052153B (zh) 2023-07-14
EP3680824A4 (en) 2020-11-04
TWI699762B (zh) 2020-07-21
EP3680824A1 (en) 2020-07-15
US11495289B2 (en) 2022-11-08
WO2019049686A1 (ja) 2019-03-14
TW201921354A (zh) 2019-06-01

Similar Documents

Publication Publication Date Title
JP6844013B2 (ja) 半導体記憶素子を用いたニューラルネットワーク演算回路及び動作方法
US11361216B2 (en) Neural network circuits having non-volatile synapse arrays
JP7336819B2 (ja) 抵抗処理ユニット・アレイのクロスポイント・デバイスに重みを記憶するための方法、そのクロスポイント・デバイス、ニューラル・ネットワークを実施するためのクロスポイント・アレイ、そのシステム、およびニューラル・ネットワークを実施するための方法
JP6858870B2 (ja) 不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路
JP3260357B2 (ja) 情報処理装置
JP6956191B2 (ja) 不揮発性半導体記憶素子を用いたニューラルネットワーク演算回路
US11531871B2 (en) Stacked neuromorphic devices and neuromorphic computing systems
US11354569B2 (en) Neural network computation circuit including semiconductor storage elements
Thoma et al. POEtic: an electronic tissue for bio-inspired cellular applications
JP6568222B2 (ja) 半導体システムおよび計算方法
JPWO2020092691A5 (ja)
KR102607860B1 (ko) 3차원 적층 시냅스 구조를 갖는 뉴로모픽 장치 및 이를 포함하는 메모리 장치
Fernando et al. 3D memristor crossbar architecture for a multicore neuromorphic system
JP3353786B2 (ja) 情報処理装置
KR20220057386A (ko) 확장 가능한 뉴로모픽 회로
TWI771014B (zh) 記憶體電路及其操作方法
AU2021281628B2 (en) Efficient tile mapping for row-by-row convolutional neural network mapping for analog artificial intelligence network inference
Lu et al. A runtime reconfigurable design of compute-in-memory based hardware accelerator
Lu et al. NVMLearn: a simulation platform for non-volatile-memory-based deep learning hardware
WO2023171406A1 (ja) 演算回路ユニット、ニューラルネットワーク演算回路、および、ニューラルネットワーク演算回路の駆動方法
US20220027712A1 (en) Neural mosaic logic unit
JPH1091605A (ja) 情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200117

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210224

R151 Written notification of patent or utility model registration

Ref document number: 6844013

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250