JP7209811B2 - 深層学習ニューラルネットワーク用の構成可能なアナログニューラルメモリシステム - Google Patents

深層学習ニューラルネットワーク用の構成可能なアナログニューラルメモリシステム Download PDF

Info

Publication number
JP7209811B2
JP7209811B2 JP2021510774A JP2021510774A JP7209811B2 JP 7209811 B2 JP7209811 B2 JP 7209811B2 JP 2021510774 A JP2021510774 A JP 2021510774A JP 2021510774 A JP2021510774 A JP 2021510774A JP 7209811 B2 JP7209811 B2 JP 7209811B2
Authority
JP
Japan
Prior art keywords
array
block
vector
output
memory cells
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
JP2021510774A
Other languages
English (en)
Other versions
JP2021536614A (ja
JPWO2020046474A5 (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.)
Silicon Storage Technology Inc
Original Assignee
Silicon Storage Technology 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 Silicon Storage Technology Inc filed Critical Silicon Storage Technology Inc
Publication of JP2021536614A publication Critical patent/JP2021536614A/ja
Publication of JPWO2020046474A5 publication Critical patent/JPWO2020046474A5/ja
Application granted granted Critical
Publication of JP7209811B2 publication Critical patent/JP7209811B2/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
    • G06N3/065Analogue means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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/044Recurrent networks, e.g. Hopfield networks
    • 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/045Combinations of networks
    • 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
    • G11C27/00Electric analogue stores, e.g. for storing instantaneous values
    • G11C27/02Sample-and-hold arrangements
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L29/00Semiconductor devices specially adapted for rectifying, amplifying, oscillating or switching and having potential barriers; Capacitors or resistors having potential barriers, e.g. a PN-junction depletion layer or carrier concentration layer; Details of semiconductor bodies or of electrodes thereof ; Multistep manufacturing processes therefor
    • H01L29/40Electrodes ; Multistep manufacturing processes therefor
    • H01L29/41Electrodes ; Multistep manufacturing processes therefor characterised by their shape, relative sizes or dispositions
    • H01L29/423Electrodes ; Multistep manufacturing processes therefor characterised by their shape, relative sizes or dispositions not carrying the current to be rectified, amplified or switched
    • H01L29/42312Gate electrodes for field effect devices
    • H01L29/42316Gate electrodes for field effect devices for field-effect transistors
    • H01L29/4232Gate electrodes for field effect devices for field-effect transistors with insulated gate
    • H01L29/42324Gate electrodes for transistors with a floating gate
    • H01L29/42328Gate electrodes for transistors with a floating gate with at least one additional gate other than the floating gate and the control gate, e.g. program gate, erase gate or select gate
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B41/00Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates
    • H10B41/30Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates characterised by the memory core region

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Neurology (AREA)
  • Algebra (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Power Engineering (AREA)
  • Ceramic Engineering (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Computer Hardware Design (AREA)
  • Non-Volatile Memory (AREA)
  • Read Only Memory (AREA)
  • Complex Calculations (AREA)

Description

(優先権の主張)
本出願は、2018年8月27日出願の「Configurable Analog Neural Memory System for Deep Learning Neural Network」と題された米国特許仮出願第62/723,360号、及び2018年11月6日出願の「Configurable Analog Neural Memory System for Deep Learning Neural Network」と題された米国特許出願第16/182,237号に対する優先権を主張する。
(発明の分野)
深層学習ニューラルネットワーク用のアナログニューラルメモリシステムで使用するための構成可能なハードウェアシステムについて、多数の実施形態が開示される。
人工ニューラルネットワークは、生物学的ニューラルネットワーク(動物の中枢神経系、特に脳)を模倣しており、多数の入力に依存し得、かつ、一般的に未知である関数を推定する又は近似するために使用される。人工ニューラルネットワークは、概して、メッセージを交換する相互接続した「ニューロン」の層を含む。
図1は人工ニューラルネットワークを示しており、図中、円は、入力又はニューロンの層を表す。接続(シナプスと呼ばれる)は、矢印によって表され、経験に基づいて調整され得る数値の重みを有する。これにより、ニューラルネットワークは入力に適応し、学習可能になる。典型的には、ニューラルネットワークは、複数の入力の層を含む。典型的には、1つ以上のニューロンの中間層、及びニューラルネットワークの出力を提供するニューロンの出力層が存在する。それぞれのレベルでニューロンは、シナプスから受け取ったデータに基づいて個々に又は合わせて決定を行う。
高性能情報処理用の人工ニューラルネットワークの開発における主要な課題の1つは、適切なハードウェア技術の欠如である。実際には、実用ニューラルネットワークは、非常に多数のシナプスに依拠しており、これによりニューロン間の高い接続性、すなわち、非常に高度な計算処理の並列化が可能となる。原理的には、このような複雑性は、デジタルスーパーコンピュータ又は専用GPU(グラフィックスプロセッシングユニット)クラスタによって実現が可能である。しかしながら、高コストに加え、これらのアプローチはまた、生物学的ネットワークが主として低精度のアナログ計算を実施するのではるかに少ないエネルギーしか消費しないのと比較して、エネルギー効率が劣っていることに悩まされている。人工ニューラルネットワークにはCMOSアナログ回路が使用されてきたが、ほとんどのCMOS実装シナプスは、多数のニューロン及びシナプスを前提とすると、嵩高過ぎていた。
出願人は以前に、参照により組み込まれる米国特許出願第15/594,439号において、シナプスとして1つ以上の不揮発性メモリアレイを利用する人工(アナログ)ニューラルネットワークを開示した。不揮発性メモリアレイは、アナログニューロモーフィックメモリとして動作する。ニューラルネットワークデバイスは、第1の複数の入力を受け取り、それから第1の複数の出力を生成するように構成されている第1の複数のシナプス、及び第1の複数の出力を受け取るように構成された第1の複数のニューロンを含む。第1の複数のシナプスは複数のメモリセルを含み、各メモリセルは、半導体基板に形成された、間にチャネル領域が延在している離間したソース領域及びドレイン領域と、チャネル領域の第1の部分の上方に配設され、チャネル領域の第1の部分から絶縁された浮遊ゲートと、チャネル領域の第2の部分の上方に配設され、チャネル領域の第2の部分から絶縁された非浮遊ゲートと、を含む。複数のメモリセルのそれぞれは、浮遊ゲート上の多くの電子に対応する重み値を格納するように構成されている。複数のメモリセルは、第1の複数の入力に、格納された重み値を乗算して第1の複数の出力を生成するように構成されている。
アナログニューロモーフィックメモリシステムに使用される各不揮発性メモリセルは、消去・プログラムに対応して、浮遊ゲートに電荷、すなわち電子の数、を非常に特異的かつ正確な量で保持しなければならない。例えば、各浮遊ゲートはN個の異なる値のうちの1つを保持しなければならず、ここで、Nは、各セルによって示され得る異なる重みの数である。Nの例としては、16、32、64、128及び256が挙げられる。
アナログニューロメモリシステムの実装の1つの課題は、異なるサイズのアレイを含む様々な層が必要とされることである。異なるサイズのアレイは、アレイの外側の回路をサポートするために異なるニーズを有する。各システムにカスタマイズされたハードウェアを提供すると、コストと時間がかかる場合がある。
異なる要件を有するアナログニューラルメモリシステムにおいて同一ハードウェアが使用できるように、適切なサイズの回路をサポートすることと併せて、様々なサイズのベクトルマトリックス乗算アレイの様々な層を提供できるアナログニューロメモリシステム用の構成可能なアーキテクチャが必要とされている。
深層学習ニューラルネットワーク用のアナログニューラルメモリシステムで使用するための構成可能なハードウェアシステムについて、多数の実施形態が開示される。構成可能なハードウェアシステムの構成可能な構成要素としては、ベクトルマトリックス乗算アレイ、加算器回路、活性化回路、入力、基準デバイス、ニューロン、及び試験回路を挙げることができる。これらのデバイスは、異なる要件を有するアナログニューラルメモリシステムにおいて同一ハードウェアが使用できるように、様々な層又は様々なサイズのベクトルマトリックス乗算アレイを提供するように構成することができる。
先行技術の人工ニューラルネットワークを示す図である。 従来の2ゲート不揮発性メモリセルの横断面図である。 従来の4ゲート不揮発性メモリセルの横断面図である。 従来の3ゲート不揮発性メモリセルの横断面図である。 別の従来の2ゲート不揮発性メモリセルの横断面図である。 不揮発性メモリアレイを利用する例示的な人工ニューラルネットワークの各レベルを示す図である。 ベクトル乗算器マトリックスを示すブロック図である。 ベクトル乗算器マトリックスの各レベルを示すブロック図である。 ベクトル乗算器マトリックスの別の実施形態を示す。 ベクトル乗算器マトリックスの別の実施形態を示す。 ベクトル乗算器マトリックスの別の実施形態を示す。 ベクトル乗算器マトリックスの別の実施形態を示す。 ベクトル乗算器マトリックスの別の実施形態を示す。 先行技術の長・短期メモリシステムを示す。 先行技術の長・短期メモリシステムにおける例示的なセルを示す。 図15の長・短期メモリシステムにおける例示的なセルの実装を示す。 図15の長・短期メモリシステムにおける別の例示的なセルの実装を示す。 先行技術のゲート付き回帰型ユニットシステムを示す。 先行技術のゲート付き回帰型ユニットシステムにおける例示的なセルを示す。 図19のゲート付き回帰型ユニットシステムにおける例示的なセルの実装を示す。 図19のゲート付き回帰型ユニットシステムにおける別の例示的なセルの実施形態を示す。 構成可能なフラッシュアナログニューロメモリシステムを示す。 別の構成可能なフラッシュアナログニューロメモリシステムを示す。 図22又は図23の構成可能なフラッシュアナログニューロメモリシステムのベクトルマトリックス乗算(VMM)サブシステムを示す。 図24のVMMサブシステムの構成可能なVMMアレイを示す。 図24のVMMサブシステムの構成可能な加算器ブロックを示す。 図22又は図23の構成可能なフラッシュアナログニューロメモリシステムで使用するための適応可能なニューロンを示す。 図22又は図23の構成可能なフラッシュアナログニューロメモリシステムで使用するための活性化関数回路を示す。 図27の適応可能なニューロンで使用するための演算増幅器を示す。 図22又は図23の構成可能なフラッシュアナログニューロメモリシステムで使用するためのベクトルマトリックス乗算アレイと共に使用される様々なブロックを示す。 図22又は図23の構成可能なフラッシュアナログニューロメモリシステムで使用するためのプログラム及び検知ブロックを示す。 図22又は図23の構成可能なフラッシュアナログニューロメモリシステムで使用するための基準アレイシステムを示す。 図22又は図23の構成可能なフラッシュアナログニューロメモリシステムで使用するためのデコーディング回路を示す。 図22又は図23の構成可能なフラッシュアナログニューロメモリシステムで使用するためのデコーディング回路を示す。 適応可能な出力ニューロン回路を示す。 サンプルアンドホールド回路を示す。 線形領域で動作するメモリセルに好適なアレイアーキテクチャを示す。
本発明の人工ニューラルネットワークは、CMOS技術及び不揮発性メモリアレイの組み合わせを利用する。
不揮発性メモリセル
デジタル不揮発性メモリは、周知である。例えば、参照により本明細書に組み込まれる、米国特許第5,029,130号(「’130号特許」)は、フラッシュメモリセルの一種であるスプリットゲート型不揮発性メモリセルアレイを開示し、これは、あらゆる目的のために参照により本明細書に組み込まれる。このようなメモリセル210を図2に示す。各メモリセル210は、半導体基板12に形成されたソース領域14とドレイン領域16と、を含み、ソース領域14とドレイン領域16の間にはチャネル領域18がある。浮遊ゲート20は、チャネル領域18の第1の部分の上方に形成され、チャネル領域18の第1の部分から絶縁され(並びに、チャネル領域18の第1の部分の導電性を制御して)、ソース領域14の一部分の上方にかけて形成される。ワード線端子22(典型的には、ワード線に結合される)は、チャネル領域18の第2の部分の上方に配設され、チャネル領域18の第2の部分から絶縁された(並びに、チャネル領域18の第2の部分の導電性を制御する)第1の部分と、上に向かって浮遊ゲート20の上方にかけて延在する第2の部分と、を有する。浮遊ゲート20及びワード線端子22は、ゲート酸化物によって基板12から絶縁される。ビット線24はドレイン領域16に結合される。
ワード線端子22に高圧正電圧を印加することによって、メモリセル210に対して消去が行われ(電子が浮遊ゲートから除去される)、これによって、浮遊ゲート20の電子は、浮遊ゲート20からワード線端子22までそれらの間にある絶縁体をファウラーノルドハイム(Fowler-Nordheim)トンネリングを介して通過する。
メモリセル210は、ワード線端子22に正電圧、及びソース領域14に正電圧を印加することによってプログラムされる(電子が浮遊ゲートに印加される)。電子流は、ソース領域14からドレイン領域16に向かって流れる。電子は加速し、ワード線端子22と浮遊ゲート20との間の間隙に達すると、発熱する。熱せられた電子の一部が、浮遊ゲート20からの静電引力に起因して、浮遊ゲート20にゲート酸化物を介して注入される。
メモリセル210は、ドレイン領域16及びワード線端子22に正の読み出し電圧を印加する(ワード線端子の下方のチャネル領域18の部分をオンにする)ことによって、読み出される。浮遊ゲート20が正に帯電する(すなわち、電子を消去する)と、浮遊ゲート20の下方のチャネル領域18の部分も同様にオンになり、電流はチャネル領域18を流れ、これは、消去された状態つまり「1」の状態として検知される。浮遊ゲート20が負に帯電する(すなわち、電子でプログラムされる)と、浮遊ゲート20の下方のチャネル領域の部分はほとんど又は完全にオフになり、電流はチャネル領域18を流れず(又はほとんど流れず)、これは、プログラムされた状態つまり「0」の状態として検知される。
表1は、読み出し動作、消去動作、及びプログラム動作を実行するためのメモリセル110の端子に印加できる典型的な電圧範囲を示す。
表1:図3のフラッシュメモリセル210の動作
Figure 0007209811000001
他の種類のフラッシュメモリセルとして、他のスプリットゲート型メモリセル構成も知られている。例えば、図3は、ソース領域14と、ドレイン領域16と、チャネル領域18の第1の部分の上方にある浮遊ゲート20と、チャネル領域18の第2の部分の上方にある選択ゲート22(典型的には、ワード線、WL、に結合される)と、浮遊ゲート20の上方にある制御ゲート28と、ソース領域14の上方にある消去ゲート30と、を含む4ゲートメモリセル310を示す。この構成は、米国特許第6,747,310号に記載され、この米国特許は、あらゆる目的のため参照により本明細書に組み込まれる。ここで、全てのゲートは、浮遊ゲート20を除いて、非浮遊ゲートであり、つまり、それらは電圧源に電気的に接続されている又は接続可能である。プログラミングは、熱せられた電子がチャネル領域18から浮遊ゲート20にその電子自体を注入することによって実行される。消去は、電子が浮遊ゲート20から消去ゲート30へトンネリングすることによって実行される。
表2は、読み出し、消去、及びプログラム動作を実行するためのメモリセル310の端子に印加され得る典型的な電圧範囲を示す。
表2:図3のフラッシュメモリセル310の動作
Figure 0007209811000002
図4は、別の種類のフラッシュメモリセルである、3ゲートメモリセル410を示す。メモリセル410は、メモリセル410が別個の制御ゲートを有しないことを除いて、図3のメモリセル310と同一である。消去動作(消去ゲートの使用を通して消去が起こる)及び読み出し動作は、制御ゲートバイアスが印加されないことを除いて、図3のものと同様である。プログラミング動作もまた、制御ゲートバイアスなしで行われるため、結果として、プログラム動作中は、制御ゲートバイアスの不足を補償するため、より高い電圧がソース線に印加されなければならない。
表3は、読み出し動作、消去動作、及びプログラム動作を実行するためのメモリセル410の端子に印加され得る典型的な電圧範囲を示す。
表3:図4のフラッシュメモリセル410の動作
Figure 0007209811000003
図5は、別の種類のフラッシュメモリセルである、積層ゲートメモリセル510を示す。メモリセル510は、浮遊ゲート20がチャネル領域18全体の上方にわたって延在し、制御ゲート22(ワード線に結合される)が絶縁層(図示せず)によって分離された浮遊ゲート20の上方に延在することを除いて、図2のメモリセル210と同様である。消去、プログラミング、及び読み出し動作は、メモリセル210について前述したものと同様の方法で動作する。
表4は、読み出し、消去、及びプログラム動作を実行するためのメモリセル510及び基板12の端子に印加され得る典型的な電圧範囲を示す。
表4:図5のフラッシュメモリセル510の動作
Figure 0007209811000004
上記の人工ニューラルネットワークにおける不揮発性メモリセルの種類のうちの1つを含むメモリアレイを利用するために、2つの修正が行われる。第1に、以下に更に説明されるように、アレイの他のメモリセルのメモリ状態に悪影響を与えずに各メモリセルを個々にプログラム、消去、及び読み出しできるように線を構成する。第2に、メモリセルの連続(アナログ)プログラミングを提供する。
具体的には、アレイの各メモリセルのメモリ状態(すなわち、浮遊ゲート上の電荷)を、完全に消去された状態から完全にプログラムされた状態へ、独立して、かつ他のメモリセルの異常が最小で、連続的に変えることができる。別の実施形態では、アレイの各メモリセルのメモリ状態(すなわち、浮遊ゲート上の電荷)を、完全にプログラムされた状態から完全に消去された状態へ、及び逆もまた同様に、独立して、かつ他のメモリセルの異常が最小で、連続的に変えることができる。これはつまり、セル格納がアナログであるか、又は多数の不連続値(16又は64の異なる値など)のうちの1つを最低限格納できることを意味し、これにより、メモリアレイの全てのセルが非常に正確にかつ個別に調整可能となり、またメモリアレイは格納に対して理想的になり、ニューラルネットワークのシナプシスの重みに微調整が可能となる。
不揮発性メモリセルアレイを使用するニューラルネットワーク
図6は、本実施形態の不揮発性メモリアレイを利用するニューラルネットワークの非限定実施例を概念的に示す。この例は、顔認識アプリケーション用に不揮発性メモリアレイニューラルネットワークを使用するが、不揮発性メモリアレイベースのニューラルネットワークを使用して他の適切なアプリケーションを実施することも可能である。
S0は入力層であり、この例では、5ビット精度の32×32ピクセルRGB画像である(すなわち、各色R、G、及びBにつき1つずつで3つの32×32ピクセルアレイであり、各ピクセルは5ビット精度である)。入力層S0から層C1に行くシナプスCB1は、一部のインスタンスには異なる重みのセットを適用し、他のインスタンスには共有の重みを適用し、入力画像を3×3ピクセルの重なり合うフィルタでスキャンし(カーネル)、1ピクセル(又はモデルによっては2ピクセル以上)ずつフィルタをシフトする。具体的には、画像の3×3部分における9ピクセルの値(すなわち、フィルタ又はカーネルと呼ばれる)はシナプスCB1に提供され、そこでこれらの9個の入力値に適切な重みを乗算し、その乗算の出力を合計後、単一の出力値が決定され、特徴マップC1の層の1つのピクセルを生成するためにCB1の第1のシナプスによって与えられる。3×3フィルタは次に、入力層S0で右側に1ピクセルだけシフトされ(すなわち、3ピクセルの列を右側に追加し、左側で3ピクセルの列をドロップする)、これにより、この新しく位置づけられたフィルタの9ピクセル値はシナプスCB1に提供され、そこでそれらに上記と同じ重みを乗算し、関連するシナプスによって第2の単一の出力値を決定する。このプロセスを、3×3フィルタが入力層S0の32×32ピクセル画像全体にわたって3色全て及び全てのビット(精度値)についてスキャンするまで続ける。プロセスは次に、層C1の特徴マップ全てが計算されるまで、異なる重みのセットを使用して繰り返されて、C1の異なる特徴マップを生成する。
本例では、層C1において、それぞれ30×30ピクセルを有する16個の特徴マップが存在する。各ピクセルは、入力とカーネルとの乗算から抽出された新しい特徴ピクセルであり、したがって、各特徴マップは、2次元アレイであり、したがってこの例では、層C1は、2次元アレイの16層を構成する(本明細書で言及される層及びアレイは、必ずしも物理的関係ではなく論理的な関係であり、すなわち、アレイは必ずしも物理的な2次元アレイに配向されないことに留意されたい)。層C1の16個の特徴マップの各々は、フィルタスキャンに適用される異なるシナプス重みのセット16個のうちの1つによって生成される。C1特徴マップは全て、境界同定など、同じ画像特徴の異なる態様を対象とすることができる。例えば、第1のマップ(この第1のマップを生成するのに使用される全てのスキャンに共有される第1の重みセットを使用して生成される)は、円形エッジを識別することができ、第2のマップ(第1の重みセットと異なる第2の重みセットを使用して生成される)は、方形エッジ又は特定の特徴のアスペクト比などを識別することができる。
層C1から層S1へ行く前には、各特徴マップの重なり合わずに連続する2×2領域からの値をプールする活性化関数P1(プーリング)が適用される。プーリング関数の目的は、近隣の位置を平均すること(又はmax関数を使用することも可能である)、例えばエッジ位置の依存を低減すること、及び次の段階に行く前にデータサイズを低減することである。層S1において、16個の15×15特徴マップ(すなわち、それぞれ15×15ピクセルの異なるアレイ16個)が存在する。層S1から層C2に行くシナプスCB2は、S1のマップを4×4フィルタにより1ピクセルのフィルタシフトでスキャンする。層C2において、22個の12×12特徴マップが存在する。層C2から層S2へ行く前には、各特徴マップの重なり合わずに連続する2×2領域からの値をプールする活性化関数P2(プーリング)が適用される。層S2において、22個の6×6特徴マップが存在する。層S2から層C3へ行くシナプスCB3では活性化関数(プーリング)が適用され、ここで層C3の全てのニューロンは、CB3のそれぞれのシナプスを介して層S2の全てのマップに接続する。層C3において、64個のニューロンが存在する。層C3から出力層S3へと行くシナプスCB4は、C3をS3に完全に接続する、すなわち、層C3の全てのニューロンは、層S3の全てのニューロンに接続される。S3における出力は、10個のニューロンを含み、ここで出力が最も高いニューロンがクラスを決定する。この出力は、例えば、元の画像の内容の同定又は分類を示すことができる。
シナプスの各層は、不揮発性メモリセルアレイ又はアレイの一部を使用して実行される。
図7は、その目的のために使用可能なアレイのブロック図である。ベクトルマトリックス乗算(Vector-by-matrix multiplication、VMM)アレイ32は、不揮発性メモリセルを含み、ある層と次の層との間のシナプス(図6のCB1、CB2、CB3、及びCB4など)として利用される。具体的には、VMMアレイ32は、不揮発性メモリセルアレイ33、消去ゲート及びワード線ゲートデコーダ34、制御ゲートデコーダ35、ビット線デコーダ36、並びにソース線デコーダ37を含み、それらのデコーダは不揮発性メモリセルアレイ33に対するそれぞれの入力をデコードする。VMMアレイ32への入力は、消去ゲート及びワード線ゲートデコーダ34から、又は制御ゲートデコーダ35から行うことができる。この例におけるソース線デコーダ37はまた、不揮発性メモリセルアレイ33の出力をデコードする。あるいは、ビット線デコーダ36が、不揮発性メモリセルアレイ33の出力をデコードすることができる。
不揮発性メモリセルアレイ33は、2つの目的を果たす。第1に、VMMアレイ32により使用される重みを格納する。第2に、不揮発性メモリセルアレイ33は、不揮発性メモリセルアレイ33に格納された重みによって、入力を有効に乗算して、それらを出力線(ソース線又はビット線)ごとに加算して、出力を生成し、この出力は次の層への入力又は最後の層への入力になる。不揮発性メモリセルアレイ33が乗算及び加算の関数を実行することで、別個の乗算及び加算の論理回路の必要性はなくなり、また、メモリの計算により電力効率も良い。
不揮発性メモリセルアレイ33の出力は、不揮発性メモリセルアレイ33の出力を合計してその畳み込み用の単一の値を作成する、差動加算器(加算オペアンプ又は加算カレントミラーなど)38に供給される。差動加算器38は、正の重み及び負の重みの総和を実行するように配置される。
差動加算器38の合計された出力値は、次に出力を整流する活性化関数回路39に供給される。活性化関数回路39は、シグモイド、tanh、又はReLU関数を提供し得る。活性化関数回路39の整流された出力値は、次の層(例えば図6のC1)として特徴マップの要素になり、次いで、次のシナプスに適用されて次の特徴マップ層又は最後の層を生成する。したがって、この例では、不揮発性メモリセルアレイ33は、複数のシナプスを構成し(ニューロンの前の層から、又は画像データベースなどの入力層から、入力を受け取る)、加算オペアンプ38及び活性化関数回路39は、複数のニューロンを構成する。
図7のVMMアレイ32への入力(WLx、EGx、CGx、及び任意選択的にBLx及びSLx)は、アナログレベル、バイナリレベル、又はデジタルビット(この場合、DACは、デジタルビットを適切な入力アナログレベルに変換するために提供される)であり得、出力は、アナログレベル、バイナリレベル、又はデジタルビットであり得る(この場合、出力ADCは出力アナログレベルをデジタルビットに変換するために提供される)。
図8は、図中でVMMアレイ32a、32b、32c、32d及び32eとして標示されたVMMアレイ32の多数の層の使用を示すブロック図である。図8に示されるように、入力(Inputxで示される)は、デジタルアナログ変換器31によってデジタルからアナログに変換され、入力VMMアレイ32aに提供される。変換されたアナログ入力は、電圧又は電流であり得る。第1の層の入力D/A変換は、入力VMMアレイ32aのマトリックス乗算器の適切なアナログレベルに入力Inputxをマッピングする関数又はLUT(ルックアップテーブル)を使用することによって行うことができる。入力変換はまた、外部アナログ入力を入力VMMアレイ32aへのマッピングされたアナログ入力に変換するために、アナログ-アナログ(A/A)変換器によって行うこともできる。
入力VMMアレイ32aによって生成された出力は、次に、次のVMMアレイ(隠しレベル1)32bへの入力として提供され、次に入力VMMアレイ(隠しレベル2)32cへの入力として提供される出力を生成する、などとなる。VMMアレイ32の様々な層は、畳み込みニューラルネットワーク(convolutional neural network、CNN)のシナプス及びニューロンの各層として機能する。VMMアレイ32a、32b、32c、32d及び32eはそれぞれスタンドアローンの物理的不揮発性メモリアレイとすることができ、又は複数のVMMアレイは、同じ物理的不揮発性メモリアレイの異なる部分を利用することができ、又は複数のVMMアレイは、同じ物理的不揮発性メモリアレイの重なり合う部分を利用することができる。図8に示される例は、5つの層(32a、32b、32c、32d、32e)、すなわち、1つの入力層(32a)、2つの隠れ層(32b、32c)、及び2つの完全に接続された層(32d、32e)を含む。当業者であれば、これは単なる例示であり、代わりにシステムが2つを超える隠れ層及び2つを超える完全に接続された層を含み得ることを理解するであろう。
ベクトルマトリックス乗算(VMM)アレイ
図9は、図3に示されるメモリセル310に特に適したニューロンVMMアレイ900を示し、入力層と次の層との間でシナプス及びニューロンの一部として利用される。VMMアレイ900は、不揮発性メモリセルのメモリアレイ901と、不揮発性基準メモリセルの基準アレイ902(アレイの頂部に位置する)と、を含む。あるいは、別の基準アレイが底部に位置することができる。
VMMアレイ900では、制御ゲート線903などの制御ゲート線が垂直方向に延びており(したがって、行方向の基準アレイ902が、制御ゲート線903に直交する)、消去ゲート線904などの消去ゲート線が水平方向に延びている。ここで、VMMアレイ900への入力は、制御ゲート線(CG0、CG1、CG2、CG3)に提供され、VMMアレイ900の出力はソース線(SL0、SL1)に現れる。一実施形態では、偶数行のみが使用され、別の実施形態では、奇数行のみが使用される。各ソース線(それぞれSL0、SL1)の電流は、その特定のソース線に接続されたメモリセルからの全ての電流の合計関数を実行する。
ニューラルネットワークについて本明細書に記載されているように、VMMアレイ900の不揮発性メモリセル、すなわちVMMアレイ900のフラッシュメモリは、サブスレッショルド領域で動作するように構成されることが好ましい。
本明細書に記載される不揮発性基準メモリセル及び不揮発性メモリセルは、以下のように弱い反転でバイアスされる:
Ids=Io*(Vg-Vth)/kVt=w*Io*(Vg)/kVt
式中、w=e(-Vth)/kVtである。
メモリセル(基準メモリセル又は周辺メモリセルなど)又はトランジスタを使用して入力電流を入力電圧に変換するI-Vログ変換器を使用した場合:
Vg=k*Vt*log[Ids/wp*Io]
式中、wpは、基準又は周辺メモリセルのwである。
ベクトルマトリックス乗算器VMMアレイとして使用されるメモリアレイについて、出力電流は以下である:
Iout=wa*Io*(Vg)/kVt、すなわち
Iout=(wa/wp)*Iin=W*Iin
W=e(Vthp-Vtha)/kVt
式中、メモリアレイの各メモリセルのwa=wである。
ワード線又は制御ゲートは、入力電圧のためのメモリセルの入力として使用することができる。
あるいは、本明細書に記載されたVMMアレイのフラッシュメモリセルは、線形領域で動作するように構成することができる。
Ids=β*(Vgs-Vth)*Vds;β=u*Cox*W/L
Wα(Vgs-Vth)
ワード線又は制御ゲート又はビット線又はソース線は、入力電圧のための線形領域内で動作するメモリセルの入力として使用することができる。
I-V線形変換器用に、線形領域で動作するメモリセル(基準メモリセル又は周辺メモリセルなど)又はトランジスタを使用して、入出力電流を入出力電圧に線形変換することができる。
図7のVMMアレイ32のための他の実施形態は、参照により本明細書に組み込まれる米国特許出願第15/826,345号に記載されている。上記出願に記載されているように、ソース線又はビット線は、ニューロン出力(電流和出力)として使用することができる。
図10は、図2に示されるメモリセル210に特に適したニューロンVMMアレイ1000を示し、入力層と次の層との間のシナプスとして利用される。VMMアレイ1000は、不揮発性メモリセルのメモリアレイ1003と、第1の不揮発性基準メモリセルの基準アレイ1001と、第2の不揮発性基準メモリセルの基準アレイ1002と、を含む。アレイの列方向に配置された基準アレイ1001及び1002は、端子BLR0、BLR1、BLR2、及びBLR3に流入する電流入力を電圧入力WL0、WL1、WL2、及びWL3に変換するように機能する。実際には、第1及び第2の不揮発性基準メモリセルは、マルチプレクサ1014を通してそれらに流れる電流入力にダイオード接続されている。基準セルは、標的基準レベルに調整(例えば、プログラム)される。標的基準レベルは、基準ミニアレイマトリックス(図示せず)によって提供される。
メモリアレイ1003は、2つの目的を果たす。第1に、VMMアレイ1000により使用される重みを、それぞれのメモリセルに格納する。第2に、メモリアレイ1003は、メモリセルアレイ1003に格納された重みによって、入力(すなわち、端子BLR0、BLR1、BLR2、及びBLR3に提供された電流入力であり、これを基準アレイ1001及び1002が電圧入力に変換して、ワード線WL0、WL1、WL2、及びWL3に供給する)を有効に乗算して、次いで、全ての結果(メモリセル電流)を加算して、それぞれのビット線(BL0~BLN)上の出力を生成し、この出力は次の層への入力又は最後の層への入力となる。メモリアレイ1003が乗算及び加算の関数を実行することで、別個の乗算及び加算の論理回路の必要性はなくなり、また、電力効率も良い。ここで、電圧入力はワード線WL0、WL1、WL2、及びWL3に提供され、出力は、読み出し(推論)動作中にビット線BL0~BLNそれぞれに現れる。各々のビット線BL0~BLNに配置された電流は、その特定のビット線に接続された全ての不揮発性メモリセルからの電流の合計関数を実行する。
表5は、VMMアレイ1000の動作電圧を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルのソース線、及び非選択セルのソース線の電圧を示す。行は、読み出し、消去、及びプログラムの各動作を示す。
表5:図10のVMMアレイ1000の動作
Figure 0007209811000005
図11は、図2に示されるメモリセル210に特に適したニューロンVMMアレイ1100を示し、入力層と次の層との間でシナプス及びニューロンの一部として利用される。VMMアレイ1100は、不揮発性メモリセルのメモリアレイ1103と、第1の不揮発性基準メモリセルの基準アレイ1101と、第2の不揮発性基準メモリセルの基準アレイ1102と、を含む。基準アレイ1101及び1102は、VMMアレイ1100の行方向に延びる。VMMアレイは、VMMアレイ1100においてワード線が垂直方向に延びることを除いて、VMM1000と同様である。ここで、入力はワード線(WLA0、WLB0、WLA1、WLB2、WLA2、WLB2、WLA3、WLB3)に提供され、出力は、読み出し動作中にソース線(SL0、SL1)に現れる。各ソース線の電流は、その特定のソース線に接続されたメモリセルからの全ての電流の合計関数を実行する。
表6は、VMMアレイ1100の動作電圧を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルのソース線、及び非選択セルのソース線の電圧を示す。行は、読み出し、消去、及びプログラムの各動作を示す。
表6:図11のVMMアレイ1100の動作
Figure 0007209811000006
図12は、図3に示されるメモリセル310に特に適したニューロンVMMアレイ1200を示し、入力層と次の層との間でシナプス及びニューロンの一部として利用される。VMMアレイ1200は、不揮発性メモリセルのメモリアレイ1203と、第1の不揮発性基準メモリセルの基準アレイ1201と、第2の不揮発性基準メモリセルの基準アレイ1202と、を含む。基準アレイ1201及び1202は、端子BLR0、BLR1、BLR2、及びBLR3に流入する電流入力を電圧入力CG0、CG1、CG2、及びCG3に変換するように機能する。実際には、第1及び第2の不揮発性基準メモリセルは、電流入力がBLR0、BLR1、BLR2、及びBLR3を通ってそれらに流入する状態で、マルチプレクサ1212を通してダイオード接続される。マルチプレクサ1212は、読み出し動作中に第1及び第2の不揮発性基準メモリセルの各々のビット線(BLR0など)上の一定電圧を確実にするために、それぞれのマルチプレクサ1205及びカスコーディングトランジスタ1204を各々含む。基準セルは、標的基準レベルに調整される。
メモリアレイ1203は、2つの目的を果たす。第1に、VMMアレイ1200によって使用される重みを格納する。第2に、メモリアレイ1203は、メモリセルアレイに格納された重みによって、入力(端子BLR0、BLR1、BLR2、及びBLR3に提供された電流入力であり、基準アレイ1201及び1202がこれらの電流入力を入力電圧に変換して、制御ゲート(CG0、CG1、CG2、及びCG3)に供給する)を有効に乗算して、次いで、全ての結果(セル電流)を加算して出力を生成し、この出力はBL0~BLNに出現し、次の層への入力又は最後の層への入力となる。メモリアレイが乗算及び加算の関数を実行することで、別個の乗算及び加算の論理回路の必要性がなくなり、また、電力効率も良い。ここで、入力は制御ゲート線(CG0、CG1、CG2、及びCG3)に提供され、出力は、読み出し動作中にビット線(BL0~BLN)に現れる。各ビット線の電流は、その特定のビット線に接続されたメモリセルからの全ての電流の合計関数を実行する。
VMMアレイ1200は、メモリアレイ1203の不揮発性メモリセルの一方向調整を実施する。すなわち、各不揮発性メモリセルは消去され、次いで、浮遊ゲート上の所望の電荷に達するまで部分的にプログラムされる。これは、例えば、以下に記載される新規の精密プログラミング技術を使用して実行することができる。過度に多くの電荷が浮遊ゲートにある場合(誤った値がセルに格納されるなど)、セルは消去されなければならず、一連の部分的なプログラミング動作をやり直さなければならない。示されるように、同じ消去ゲート(EG0又はEG1など)を共有する2つの行は、一緒に消去される必要があり(ページ消去として知られる)、その後、各セルは、浮遊ゲート上の所望の電荷に達するまで部分的にプログラムされる。
表7は、VMMアレイ1200の動作電圧を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルの制御ゲート、選択セルと同じセクタの非選択セルの制御ゲート、選択セルとは異なるセクタの非選択セルの制御ゲート、選択セルの消去ゲート、非選択セルの消去ゲート、選択セルのソース線、及び非選択セルのソース線の電圧を示す。行は、読み出し、消去、及びプログラムの各動作を示す。
表7:図12のVMMアレイ1200の動作
Figure 0007209811000007
図13は、図3に示されるメモリセル310に特に適したニューロンVMMアレイ1300を示し、入力層と次の層との間でシナプス及びニューロンの一部として利用される。VMMアレイ1300は、不揮発性メモリセルのメモリアレイ1303と、基準アレイ1301又は第1の不揮発性基準メモリセルと、第2の不揮発性基準メモリセルの基準アレイ1302とを含む。EG線EGR0、EG0、EG1、及びEGR1は垂直に延び、CG線CG0、CG1、CG2、及びCG3並びにSL線WL0、WL1、WL2、及びWL3は水平に延びる。VMMアレイ1300は、VMMアレイ1300が双方向調整を実装することを除いてVMMアレイ1400と同様であり、個々のセルは、個別のEG線の使用により、浮遊ゲート上の所望の電荷量に達するために、完全に消去され、部分的にプログラムされ、必要に応じて部分的に消去することができる。示されるように、基準アレイ1301及び1302は、端子BLR0、BLR1、BLR2及びBLR3の入力電流を制御ゲート電圧CG0、CG1、CG2及びCG3に変換し(マルチプレクサ1314を介したダイオード接続された基準セルの作用を通じて)、これらの電圧は行方向でメモリセルに印加される。電流出力(ニューロン)は、ビット線BL0~BLN中にあり、各ビット線は、その特定のビット線に接続された不揮発性メモリセルからの全ての電流を合計する。
表8は、VMMアレイ1300の動作電圧を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルの制御ゲート、選択セルと同じセクタの非選択セルの制御ゲート、選択セルとは異なるセクタの非選択セルの制御ゲート、選択セルの消去ゲート、非選択セルの消去ゲート、選択セルのソース線、及び非選択セルのソース線の電圧を示す。行は、読み出し、消去、及びプログラムの各動作を示す。
表8:図13のVMMアレイ1300の動作
Figure 0007209811000008
長・短期メモリ
先行技術は、長・短期メモリ(long short-term memory、LSTM)として知られる概念を含む。LSTMユニットは、しばしば、ニューロンネットワークで使用される。LSTMによって、ニューラルネットワークは所定の任意の期間にわたって情報を記憶し、後続の動作においてその情報を使用することができる。従来のLSTMユニットは、セル、入力ゲート、出力ゲート、及び忘却ゲートを含む。3つのゲートは、セル内及びセル外への情報の流れ、及び情報がLSTMで記憶される期間を調整する。VMMは、LSTMユニットにおいて特に有用である。
図14は、例示的なLSTM1400を示す。この例におけるLSTM1400は、セル1401、1402、1403及び1404を含む。セル1401は入力ベクトルx0を受け取り、出力ベクトルh0及びセル状態ベクトルc0を生成する。セル1402は、入力ベクトルx1と、セル1401からの出力ベクトル(隠れ状態)h0と、セル1401からのセル状態ベクトルc0とを受け取り、出力ベクトルh1とセル状態ベクトルc1とを生成する。セル1403は、入力ベクトルx2と、セル1402からの出力ベクトル(隠れ状態)h1と、セル1402からのセル状態ベクトルc1とを受け取り、出力ベクトルh2とセル状態ベクトルc2とを生成する。セル1404は、入力ベクトルx3と、セル1403からの出力ベクトル(隠れ状態)h2と、セル1403からのセル状態ベクトルc2とを受け取り、出力ベクトルh3を生成する。追加のセルも使用可能であり、4つのセルを有するLSTMは単なる例である。
図15は、図14のセル1401、1402、1403及び1404に使用可能なLSTMセル1500の例示的な実装を示す。LSTMセル1500は、入力ベクトルx(t)と、先行するセルからのセル状態ベクトルc(t-1)と、先行するセルからの出力ベクトルh(t-1)とを受け取り、セル状態ベクトルc(t)及び出力ベクトルh(t)を生成する。
LSTMセル1500は、シグモイド関数デバイス1501、1502及び1503を含み、各々が0~1の数を適用することで、入力ベクトルの各成分が出力ベクトルに寄与する程度を制御する。LSTMセル1500はまた、入力ベクトルに双曲線正接関数を適用するためのtanhデバイス1504及び1505と、2つのベクトルを乗算するための乗算器デバイス1506、1507及び1508と、2つのベクトルを加算するための加算器デバイス1509とを含む。出力ベクトルh(t)は、システムの次のLSTMセルに提供することができ、又は他の目的でアクセスすることができる。
図16は、LSTMセル1500の一実装例であるLSTMセル1600を示す。読者の便宜のために、LSTMセル1500からの同じ採番方法が、LSTMセル1600で使用される。シグモイド関数デバイス1501、1502及び1503、並びにtanhデバイス1504は各々、複数のVMMアレイ1601及び活性化回路ブロック1602を含む。したがって、VMMアレイは、特定のニューラルネットワークシステムで使用されるLSTMセルにおいて特に有用であることが理解できる。
LSTMセル1600の代替例(及びLSTMセル1500の実装の別の例)を図17に示す。図17では、シグモイド関数デバイス1501、1502及び1503、並びにtanhデバイス1504は、同じ物理ハードウェア(VMMアレイ1701及び活性化関数ブロック1702)を、時分割多重化された方式で共有する。LSTMセル1700はまた、2つのベクトルを乗算するための乗算器デバイス1703と、2つのベクトルを加算するための加算器デバイス1708と、(活性化回路ブロック1702を含む)tanhデバイス1505と、シグモイド関数ブロック1702から出力される値i(t)を格納するレジスタ1707と、マルチプレクサ1710を介して乗算器デバイス1703から出力される値f(t)*c(t-1)を格納するレジスタ1704と、マルチプレクサ1710を介して乗算器デバイス1703から出力される値i(t)*u(t)を格納するレジスタ1705と、マルチプレクサ1710とマルチプレクサ1709を介して乗算器デバイス1703から出力される値o(t)*c~(t)を格納する、レジスタ1706とを含む。
LSTMセル1600が複数のVMMアレイ1601とそれぞれの活性化関数ブロック1602のセットを複数含むのに対し、LSTMセル1700は、LSTMセル1700の実施形態において複数の層を表すために使用されるVMMアレイ1701と活性化関数ブロック1702のセットを1つのみ含む。LSTMセル1700は、LSTMセル1600と比較して、VMM及び活性化関数ブロックのために必要とするスペースは1/4で済むので、LSTM1600よりも必要とするスペースが少ない。
LSTMユニットは典型的には複数のVMMアレイを含み、これらは各々、加算器及び活性化回路ブロック及び高電圧生成ブロックなどの、VMMアレイの外側の特定の回路ブロックによって提供される機能を必要とすることが理解できる。各VMMアレイに別個の回路ブロックを提供することは、半導体デバイスにかなりの量のスペースを必要とし、幾分非効率的であろう。したがって、以下に記載される実施形態では、VMMアレイ自体の外側に必要とされる回路の最小化を試みる。
ゲート付き回帰型ユニット
アナログVMM実装は、ゲート付き回帰型ユニット(gated recurrent unit、GRU)システムに利用することができる。GRUは、回帰型ニューラルネットワークのゲート機構である。GRUは、GRUセルが一般にLSTMセルよりも少ない構成要素を含むことを除いて、LSTMに類似している。
図18は、例示的なGRU1800を示す。この例におけるGRU1800は、セル1801、1802、1803及び1804を含む。セル1801は入力ベクトルx0を受け取り、出力ベクトルh0を生成する。セル1802は、入力ベクトルx1と、セル1801からの出力ベクトル(隠れ状態)h0とを受け取り、出力ベクトルh1を生成する。セル1803は、入力ベクトルx2と、セル1802からの出力ベクトル(隠れ状態)h1とを受け取り、出力ベクトルh2を生成する。セル1804は、入力ベクトルx3と、セル1803からの出力ベクトル(隠れ状態)h2とを受け取り、出力ベクトルh3を生成する。追加のセルも使用可能であり、4つのセルを有するGRUは単なる例である。
図19は、図18のセル1801、1802、1803及び1804に使用可能なGRUセル1900の例示的な実装を示す。GRUセル1900は、入力ベクトルx(t)と、先行するGRUセルからの出力ベクトルh(t-1)とを受け取り、出力ベクトルh(t)を生成する。GRUセル1900は、シグモイド関数デバイス1901及び1902を含み、各々が、出力ベクトルh(t-1)及び入力ベクトルx(t)からの成分に0~1の数を適用する。GRUセル1900はまた、入力ベクトルに双曲線正接関数を適用するためのtanhデバイス1903と、2つのベクトルを乗算するための乗算器デバイス1904、1905及び1906と、2つのベクトルを加算するための加算器デバイス1907と、1から入力を減算して出力を生成するコンプリメンタリデバイス1908と含む。
図20は、GRUセル1900の一実装例であるGRUセル2000を示す。読者の便宜のために、GRUセル1900からの同じ採番方法が、GRUセル2000で使用される。図20から分かるように、シグモイド関数デバイス1901及び1902、並びにtanhデバイス1903は各々、複数のVMMアレイ2001及び活性化関数ブロック2002を含む。したがって、VMMアレイは、特定のニューラルネットワークシステムで使用されるGRUセルにおいて特に使用されることが理解できる。
GRUセル2000の代替例(及びGRUセル1900の実装の別の例)を図21に示す。図21において、GRUセル2100は、VMMアレイ2101及び活性化関数ブロック2102を使用しており、シグモイド関数として構成された場合には、0~1の数を適用することで、入力ベクトルの各成分が出力ベクトルに寄与する程度を制御する。図21では、シグモイド関数デバイス1901及び1902、並びにtanhデバイス1903は、同じ物理ハードウェア(VMMアレイ2101及び活性化関数ブロック2102)を、時分割多重化された方式で共有する。GRUセル2100はまた、2つのベクトルを乗算するための乗算器デバイス2103と、2つのベクトルを加算するための加算器デバイス2105と、1から入力を減算して出力を生成するためのコンプリメンタリデバイス2109と、マルチプレクサ2104と、マルチプレクサ2104を介して乗算器デバイス2103から出力される値h(t-1)*r(t)を保持するレジスタ2106と、マルチプレクサ2104を介して乗算器デバイス2103から出力される値h(t-1)*z(t)を保持するレジスタ2107と、マルチプレクサ2104を介して乗算器デバイス2103から出力される値h^(t)*(1-z((t))を保持するレジスタ2108と、を含む。
GRUセル2000が複数のVMMアレイ2001と活性化関数ブロック2002のセットを複数含むのに対し、GRUセル2100は、GRUセル2100の実施形態において複数の層を表すために使用されるVMMアレイ2101と活性化関数ブロック2102のセット1つのみを含む。GRUセル2100は、GRUセル2000と比較して、VMM及び活性化関数ブロックのために必要とするスペースは1/3で済むので、GRUセル2000よりも必要とするスペースが少ない。
GRUシステムは典型的には複数のVMMアレイを含み、これらは各々、加算器及び活性化回路ブロック及び高電圧生成ブロックなどの、VMMアレイの外側の特定の回路ブロックによって提供される機能を必要とすることが理解できる。各VMMアレイに別個の回路ブロックを提供することは、半導体デバイスにかなりの量のスペースを必要とし、幾分非効率的であろう。したがって、以下に記載される実施形態は、VMMアレイ自体の外側に必要とされる回路の最小化を試みる。
VMMアレイへの入力は、アナログレベル、バイナリレベル、又はデジタルビット(この場合、デジタルビットを適切な入力アナログレベルに変換するためにDACが必要とされる)であり、出力はアナログレベル、バイナリレベル、又はデジタルビット(この場合、出力アナログレベルをデジタルビットに変換するために出力ADCが必要とされる)であり得る。
VMMアレイの各メモリセルに関して、各重みwは、単一のメモリセルによって、又は差分セルによって、又は2つのブレンドメモリセル(2つのセルの平均)によって実装することができる。差分セルの場合では、重みwを差分重み(w=w+-w-)として実装するために、2つのメモリセルが必要とされる。2つのブレンドメモリセルの場合は、2つのセルの平均として重みwを実装するために2つのメモリセルが必要とされる。
構成可能なアレイ
図22は、構成可能なフラッシュアナログニューロモーフィックメモリシステム2200を示す。構成可能なフラッシュアナログニューロメモリシステム2200は、マクロブロック2201a、2201b、2201c、2201d、2201e、及び2201fと、ニューロン出力(加算器回路及びサンプルアンドホールドS/H回路)ブロック2202a、2202b.2202c、2202d、2202e、及び2202fと、活性化回路ブロック2203a、2203b、2203c、2203d、2203e、及び2203fと、水平マルチプレクサ2204a、2204b、2204c、及び2204dと、垂直マルチプレクサ2205a、2205b、及び2205cと、クロスマルチプレクサ2206a及び2206bと、を含む。マクロブロック2201a、2201b、2201c、2201d、2201e、及び2201fのそれぞれは、VMMアレイを含むVMMサブシステムである。
一実施形態では、ニューロン出力ブロック2202a、2202b.2202c、2202d、2202e、及び2202fはそれぞれ、構成可能な長い相互接続を駆動できる低インピーダンス出力型バッファ(例えば、オペアンプ)回路を含む。一実施形態では、活性化回路ブロック2203a、2203b、2203c、2203d、2203e、及び2203fは、加算の高インピーダンス電流出力を提供する。あるいは、ニューロン出力ブロック2202a、2202b.2202c、2202d、2202e、及び2202fは、活性化回路を含むことができ、この場合、出力を駆動するために追加の低インピーダンスバッファが必要となる。
活性化回路ブロック2203a、2203b、2203c、2203d、2203e、及び2203fは、入力ブロックの種類の単なる一例であること、また、構成可能なフラッシュアナログニューロメモリシステム2200は、代わりに、活性化回路ブロック2203a、2203b、2203c、2203d、2203e、及び2203fの代わりに他の入力ブロックを用いて設計され得、その結果、これらのブロックが入力ブロック2203a、2203b、2203c、2203d、2203e、及び2203fになることを当業者は理解するべきである。
一実施形態では、ニューロン出力ブロック2202a、2202b.2202c、2202d、2202e、及び2202fはそれぞれ、アナログ信号の代わりにデジタルビットを出力するアナログデジタル変換ブロック2252を含む。次いで、これらのデジタルビットは、図22の構成可能な相互接続を使用して所望の位置にルーティングされる。この実施形態では、活性化回路ブロック2203a、2203b、2203c、2203d、2203e、及び2203fはそれぞれ、図22の相互接続からデジタルビットを受け取りデジタルビットをアナログ信号に変換するデジタルアナログ変換ブロック2251を含む。
構成可能システム2200がLSTM又はGRUを実装するために使用される場合、出力ブロック2202a、2202b.2202c、2202d、2202e、及び2202f、並びに/又は入力ブロック2203a、2203b、2203c、2203d、2203e、及び2203fは、LSTM/GRUアーキテクチャの必要に応じて、乗算器ブロック、加算ブロック、減算(出力=1-入力)ブロックを含み得、任意選択的に、必要に応じてアナログサンプルアンドホールド回路(図36の回路3600又は3650など)又はデジタルサンプルアンドホールド回路(例えば、レジスタ又はSRAM)を含み得る。
可能な構成変更としては、ニューロンの幅(ビット線など出力畳み込み層の数)、入力の幅(行数など畳み込み層当たりの入力の数)が挙げられ、複数のマクロを組み合わせる、並びに/又は個々のマクロをそれぞれ構成して、ニューロン出力及び/若しくは入力回路の部分のみを活性化する。
VMMアレイで、時分割多重化を使用して、複数の時限パスをイネーブルにしてアレイを最大限に使用することができる。例えば、アレイの最初のN行又はN列は、時間t0においてイネーブルされる(サンプリングされる)ことができ、その結果は、t0サンプルアンドホールドS/H回路に保持される。次のN行又はN列は、時間t1においてイネーブルにされることができ、その結果はt1サンプルアンドホールドS/H回路に保持される。最終時間tfにおいて、それ以前の全てのS/H結果が適切に組み合わされて最終出力が得られる。
理解され得るように、アナログニューロメモリシステムの1つの要件は、ある層から出力を収集し、この出力を別の層への入力として提供する能力である。これにより、あるVMMアレイからの出力が必ずしも直接隣接していない別のVMMアレイへの入力としてルーティングされる必要があり得る複雑なルーティングスキームをもたらす。図22では、このルーティング機能は、水平マルチプレクサ2204a、2204b、2204c、及び2204d、垂直マルチプレクサ2205a、2205b、及び2205c、並びにクロスマルチプレクサ2206a及び2206bによって提供される。これらのマルチプレクサを使用して、マクロブロック2201a、2201b、2201c、2201d、2201e、及び2201fのいずれかからの出力は、2201a、2201b、2201c、2201d、2201e、及び2201fの他のマクロブロックのいずれかへの入力としてルーティングすることができる。この機能は、構成可能なシステムを作るために重要である。
構成可能なフラッシュアナログニューロメモリシステム2200はまた、コントローラ又は制御ロジック2250を含む。コントローラ又は制御ロジック2250は、任意選択的に、本明細書に記載される構成を実行するためのソフトウェアコードを実行するマイクロコント-ラ(コントローラ)、又は本明細書に記載される構成を実行するためのハードウェア論理(制御論理)であり、各サイクルにおいて必要なルーティング機能を実行するための水平マルチプレクサ2204a、2204b、2204c、及び2204d、垂直マルチプレクサ2205a、2205b、及び2205c、並びにクロスマルチプレクサ2206a及び2206bの活性化を含む。
図23は、構成可能なフラッシュアナログニューロメモリシステム2300を示す。構成可能なフラッシュアナログニューロメモリシステム2300は、マクロブロック2301a、2301b、2301c、2301d、2301e、及び2301fと、ニューロン出力ブロック(加算器回路及びサンプルアンドホールドS/H回路)2302a、2302b、及び2302cと、活性化回路ブロック2303a、2303b、2303c、2303d、2303e、及び2303fと、水平マルチプレクサ2304a、2304b、2304c、及び2304dと、垂直マルチプレクサ2305a、2305b、2305c、2305d、2305e、及び2305fと、クロスマルチプレクサ2306a及び2306bとを含む。マクロブロック2301a、2301b、2301c、2301d、2301e、及び2301fのそれぞれは、VMMアレイを含むVMMサブシステムである。ニューロン出力ブロック2302a、2302b、及び2302cは、マクロ間で共有されるように構成されている。
見て分かるように、図22及び図23のシステムは、図23のシステムが構成可能なニューロン出力ブロック(すなわち、ニューロン出力ブロック2302a、2302b、及び2302c)を共有していることを除いて、類似している。図23では、ルーティング機能は、水平マルチプレクサ2304a、2304b、2304c、及び2304d、垂直マルチプレクサ2305a、2305b、2305c、2305d、2305d、及び2305f、並びにクロスマルチプレクサ2306a及び2306bによって提供される。これらのマルチプレクサを使用して、マクロブロック2301a、2301b、2301c、2301d、2301e、及び2301fのいずれかからの出力は、2301a、2301b、2301c、2301d、2301e、及び2301fの他のマクロブロックの一部(ただし全てではない)に入力としてルーティングすることができる。これにより、垂直マルチプレクサの欠如によって図22のシステムよりも小さいスペース要件で一部の構成可能性が可能となる。
ニューロン出力ブロック2302a、2302b、及び2302cは、電流加算器回路ブロック及び/又は活性化回路ブロックを含んでもよい。ニューロン出力ブロック2302aは、例えば、マクロブロック2301aの出力又はマクロブロック2301dの出力に接続するように構成され得る。又は、ニューロン出力ブロック2302aは、例えば、マクロブロック2301aの出力の一部とマクロブロック2301dの出力の一部に接続するように構成され得る。
活性化回路ブロック2303a、2303b、2303c、2303d、2303e、及び2303fは、入力ブロックの種類の単なる一例であること、また、構成可能なフラッシュアナログニューロメモリシステム2300は、代わりに、活性化回路ブロック2303a、2303b、2303c、2303d、2303e、及び2303fの代わりに他の入力ブロックを用いて設計され得、その結果、これらのブロックが入力ブロック2303a、2303b、2303c、2303d、2303e、及び2303fになることを当業者は理解するべきである。
一実施形態では、ニューロン出力ブロック2302a、2302b、及び2302cはそれぞれ、アナログ信号の代わりにデジタルビットを出力するアナログデジタル変換ブロック2352を含む。次いで、これらのデジタルビットは、図23の構成可能な相互接続を使用して所望の位置にルーティングされる。この実施形態では、活性化回路ブロック2303a、2303b、2303c、2303d、2303e、及び2303fはそれぞれ、図23の相互接続からデジタルビットを受け取りデジタルビットをアナログ信号に変換するデジタルアナログ変換ブロック2351を含む。
構成可能システム2300がLSTM又はGRUを実装するために使用される場合、出力ブロック2302a、2302b.2302c、2302d、2302e、及び2302f、並びに/又は入力ブロック2303a、2303b、2303c、2303d、2303e、及び2303fは、LSTM/GRUアーキテクチャの必要に応じて、乗算器ブロック、加算ブロック、減算(出力=1-入力)ブロックを含んでもよく、任意選択的に、必要に応じてアナログサンプルアンドホールド回路(図36の回路3600又は3650など)又はデジタルサンプルアンドホールド回路(例えば、レジスタ又はSRAM)を含んでもよい。
構成可能なフラッシュアナログニューロメモリシステム2300はまた、コントローラ又は制御ロジック2250を含む。図21と同様に、コントローラ又は制御ロジック2250は、任意選択的に、本明細書に記載される構成を実行するためのソフトウェアコードを実行するマイクロコント-ラ(コントローラ)、又は本明細書に記載される構成を実行するためのハードウェア論理(制御論理)であり、各サイクルにおいて必要なルーティング機能を実行するための水平マルチプレクサ2304a、2304b、2304c、及び2304d、垂直マルチプレクサ2305a、2305b、2305c、2305d、2305e、及び2305f、並びにクロスマルチプレクサ2306a及び2306bの活性化を含む。
図24は、VMMシステム2400を示す。VMMシステム2400は、マクロブロック2420(図22及び図23におけるマクロブロック2201a、2201b、2201c、2201d、2201e、2201f、2301a、2301b、2301c、2301d、2301e、及び2301fを実装するために使用できる)と、活性化関数ブロック2414と、加算器ブロック2413と、を含む。
VMMシステム2400は、VMMアレイ2401と、低電圧行デコーダ2402と、高電圧行デコーダ2403と、低電圧基準列デコーダ2404とを含む。低電圧行デコーダ2402は、読み出し動作及びプログラム動作のためのバイアス電圧を提供し、高電圧行デコーダ2403のデコード信号を提供する。高電圧行デコーダ2403は、プログラム動作及び消去動作のための高電圧バイアス信号を提供する。
VMMシステム2400は、冗長アレイ2405及び2406を更に含む。冗長アレイ2405及び2406は、アレイ2401中の欠陥部分を置き換えるためのアレイ冗長性を提供する。VMMシステム2400は、NVR(不揮発性レジスタ、別名:情報セクタ)セクタ2407を更に含み、これは、ユーザ情報、デバイスID、パスワード、セキュリティキー、トリムビット、構成ビット、製造情報などを格納するために使用されるアレイセクタである。VMMシステム2400は、検知動作で使用される基準セルを提供するための基準セクタ2408と、デコーダ240、2403及び/又は2404のアドレスをデコーディングするためのプレデコーダ2409と、ビット線マルチプレクサ2410と、マクロ制御論理2411と、マクロアナログ回路ブロック2412とを更に含み、それぞれが、VMMアレイレベルで(全てのVMMアレイを含むシステムレベルとは対照的に)関数を実行する。
図25は、図22~図24の実施形態で使用可能なアレイの可能な構成例を示す。構成可能なアレイ2500は、M行×N列のアレイを含む。構成可能なアレイ2500は、図2~図5に示される種類のセルを含むフラッシュメモリセルアレイであり得る。図22~図24の実施形態では、各VMMアレイは、構成可能なアレイ2500よりも小さい、異なるサイズの1つ以上のサブアレイに構成され得る。例えば、構成可能なアレイは、A行×B列のサブアレイ2501、C行×D列のサブアレイ2502、及びE行×F列のサブアレイ2503に分割することができる。この構成は、コントローラ又は制御ロジック2250によって実装することができる。所望のサブアレイのそれぞれが作られると、コントローラ又は制御ロジック2250は、図22及び図23の水平マルチプレクサ、垂直マルチプレクサ、及びクロスマルチプレクサを構成して、適切な時間に各サブアレイから適切な位置への適切なルーティングを実行することができる。理想的には、各構成可能なアレイの1つのサブアレイのみが、任意の所与のサイクル中に時間tにおいて(例えば、アレイの時分割多重化によって)アクセスされる。例えば、構成可能なアレイ2500のサブアレイのうちの1つのみが、単一サイクル中にアクセスされる。しかしながら、サブアレイは、異なる時間サイクル中にアクセス可能であり、これにより、時分割多重方式で使用するための複数のサブアレイを提供することができる。
次に、図22~図24に示される回路ブロックの実施形態の実施例を説明する。
図26は、(図22のニューロン出力加算器ブロック2202a、2202b、2202c、2202d、2202e、及び2201f、図23のニューロン出力加算器ブロック2302、2302b、2302c、2302d、2302e、及び2302f、並びに図24のニューロン出力加算器ブロック2413として使用可能なニューロン出力加算器ブロック2600を示す。ニューロン出力加算器ブロック2600は、複数のより小さい加算器ブロック2601a、2601b、...2601iを含み、これらはそれぞれ、対応するVMMアレイの一部(アレイの単一の列など)で動作可能であることが分かる。コントローラ又は制御ロジック2250は、必要に応じて、各サイクル中に適切な加算器ブロック2601a、2601b、...2601iを活性化することができる。加算器回路は、オペアンプベースの加算器回路又は電流ミラー回路として実装可能である。加算器回路は、アナログを出力デジタルビットに変換するADC回路を含んでもよい。
図27は、複数の電流信号を加算し、加算された電流信号を電圧信号に変換するための、低インピーダンス出力を提供するオペアンプを含む、適応可能なニューロン回路2700を示し、これは、図26の加算器ブロック2601a、...、2601iの各加算器ブロックの実施形態である。適応可能なニューロン出力回路2700は、ここでは演算増幅器2701の反転入力に提供される電流源2702として表されているVMMアレイ2401のようなVMM(I_NEUと標示されている)から電流を受け取る。演算増幅器2701の非反転入力は、電圧源(VREFと標示されている)に結合される。演算増幅器2701の出力(VOと標示されている)は、NMOSトランジスタ2703のゲートに印加される信号VCONTROLに応答して、実効抵抗R_NEUの可変抵抗として作用するNMOS R_NEUトランジスタ2703に結合される。出力電圧VOは、I_NEU*R_NEU-VREFに等しい。I_NEUの最大値は、VMMに含まれるシナプスの数と重みの値に依存する。R_NEUは可変抵抗であり、それが結合されるVMMサイズに適合させることができる。例えば、R_NEUは、図27のIBIAS及び/又はVDREF及び/又はVREFを変えることによって変更することができる。更に、加算演算増幅器2701の電力は、電力消費を最小限に抑えるためにR_NEUトランジスタ2703の値に応じて調整される。R_NEUトランジスタ2703の値が増加するにつれて、演算増幅器2701のバイアス(すなわち、電力)は、電流バイアスIBIAS_OPA2704を介して低減され、逆もまた同様である。オペアンプベースの加算回路は低インピーダンス出力を提供できるので、長い相互接続及びより重い負荷を駆動するように構成するのに好適である。
図28は、活性化関数回路2800を示す。活性化関数回路2800は、図22の活性化回路ブロック2203a、2203b、2203c、2203d、2203e、及び2203f、並びに図23の活性化回路ブロック2303a、2303b、2303c、2303d、2303e、及び2303f、並びに図24の活性化ブロック2414に使用可能である。
活性化関数回路2800は、tanh関数を使用して、入力電圧対(Vin+及びVin-)を電流(Iout_neu)に変換し、上述のVMMアレイで使用可能である。活性化関数回路2800は、図示されるように構成された、PMOSトランジスタ2801、2802、2803、2804、2805、及び2806、並びにNMOSトランジスタ2807、2808、2809、及び2810を含む。トランジスタ2803、2804、及び2806は、カスコードトランジスタとして機能する。入力NMOS対2807及び2808は、tanh関数を実現するためにサブスレッショルド領域で動作する。電流I_neu_maxは、取り付けられたVMM(図示せず)から受け取ることができる最大ニューロン電流である。
図29は、図27の演算増幅器2701として使用可能な演算増幅器2900を示す。演算増幅器2900は、図示の構成において、可変バイアスとして作用するPMOSトランジスタ2901、2902及び2905、NMOSトランジスタ2903、2904、2906及び2907、並びにNMOSトランジスタ2908を含む。演算増幅器2900への入力端子は、標示ではVinn(NMOSトランジスタ2904のゲートに印加される)及びVin-(NMOSトランジスタ2903のゲートに印加される)であり、出力はVOである。
図30は、高電圧生成ブロック3000、制御論理ブロック3004、アナログ回路ブロック3005、及び試験ブロック3008を示す。
高電圧生成ブロック3000は、チャージポンプ3001と、チャージポンプ調整器3002と、高電圧演算増幅器3003とを含む。チャージポンプ調整器3002の出力の電圧は、チャージポンプ調整器3002のNMOSトランジスタのゲートに送られる信号に基づいて制御することができる。制御論理ブロック3004は、制御論理入力を受け取り、制御論理出力を生成する。アナログ回路ブロック3005は、基準電圧Vrefを受け取って、他の場所で使用されるようにバイアス信号iBiasを付与するために使用可能な電流を生成するための電流バイアス発生器3006を含む。アナログ回路ブロック3005はまた、トリムビットのセットTRBIT_WLを受け取って、各種動作中にワード線に印加する電圧を生成するための電圧発生器3007を含む。試験ブロック3008は、試験パッドMONHV_PADで信号を受け取り、設計者が試験中に監視するための様々な信号を出力する。
図31は、プログラム動作及び検証動作中に使用可能なプログラム及び検知ブロック3100を示す。プログラム及び検知ブロック3100は、複数の個々のプログラム及び検知回路ブロック3101a、3101b、...、3101jを含む。コントローラ又は制御論理2250は、必要に応じて、各サイクル中に適切なプログラム及び検知回路ブロック3101a、3101b、...、3101jを活性化することができる。
図32は、図24の基準セクタ2408の代わりに使用可能な基準システム3200を示す。基準システム3200は、基準アレイ3202と、低電圧行デコーダ3201と、高電圧行デコーダ3203と、低電圧基準列デコーダ3204とを含む。低電圧行デコーダ3201は、読み出し動作及びプログラム動作のためのバイアス電圧を提供し、高電圧行デコーダ3203にデコード信号を提供する。高電圧行デコーダ3203は、プログラム動作及び消去動作のための高電圧バイアス信号を提供する。
図33は、図2に示される種類のメモリセルで使用するのに適切である、ワード線デコーダ回路3301、ソース線デコーダ回路3304、及び高電圧レベルシフタ3308を含む、VMM高電圧デコード回路を示す。
ワード線デコーダ回路3301は、図示のように構成された、PMOS選択トランジスタ3302(信号HVO_Bによって制御される)及びNMOS選択解除トランジスタ3303(信号HVO_Bによって制御される)を含む。
ソース線デコーダ回路3304は、図示のように構成された、NMOS監視トランジスタ3305(信号HVOによって制御される)、駆動トランジスタ3306(信号HVOによって制御される)、及び選択解除トランジスタ3307(信号HVO_Bによって制御される)を含む。
高電圧レベルシフタ3308は、イネーブル信号ENを受け取り、高電圧信号HV及びその補完信号HVO_Bを出力する。
図34は、図3に示される種類のメモリセルで使用するのに適切である、消去ゲートデコーダ回路3401、制御ゲートデコーダ回路3404、ソース線デコーダ回路3407、及び高電圧レベルシフタ3411を含む、VMM高電圧デコード回路を示す。
消去ゲートデコーダ回路3401及び制御ゲートデコーダ回路3404は、図33のワード線デコーダ回路3301と同じ設計を使用する。
ソース線デコーダ回路3407は、図33のソース線デコーダ回路3304と同じ設計を使用する。
高電圧レベルシフタ3411は、図33の高電圧レベルシフタ3308と同じ設計を使用する。
図35は、出力ニューロン電流を電圧に変換する、適応可能なニューロン回路3500を示す。適応可能なニューロン回路3500は、PMOSトランジスタ3501を1つのみ使用し、スイッチ3502、3503、及び3504を使用して、それ自体(すなわち、サンプルアンドホールドミラー)をミラーリングするように本質的に構成されている。まず、スイッチ3502及びスイッチ3503は閉じており、スイッチ3504は開いている。この時点では、PMOSトランジスタ3501は、VMMからの電流を表す電流源であるI_NEURONに結合されている。次いで、スイッチ3502及びスイッチ3503が開き、スイッチ3504は閉じる。これによって、PMOSトランジスタ3501に、そのドレインから可変抵抗器3506へと電流I_NEURONを送らせる。したがって、適応可能なニューロン3500は、電流信号(I_NEURON)を電圧信号(VO)に変換する。基本的に、トランジスタ3501は、電流I_NEURONをサンプリングし、サンプリングされたゲートソース電圧をそのゲートに格納することによって保持する。オペアンプ回路を使用して、出力電圧VOをバッファして構成可能な相互接続を駆動することができる。
図36は、電流サンプルアンドホールドS/H回路3600及び電圧サンプルアンドホールドS/H回路3650を示す。電流S/H回路3600は、サンプリングスイッチ3602及び3603と、S/Hコンデンサ3605と、入力トランジスタ3604と、出力トランジスタ3606とを含む。入力トランジスタ3604は、S/Hコンデンサ3605で入力電流3601をS/H電圧に変換するために使用され、出力トランジスタ3606のゲートに結合される。電圧S/H回路3650は、サンプリングスイッチ3622と、S/Hコンデンサ3653と、オペアンプ3654とを含む。オペアンプ3654は、コンデンサ3653でS/H電圧をバッファするために使用される。S/H回路3600及び3650は、本明細書に記載される出力加算器回路及び/又は活性化回路で使用可能である。代替実施形態では、アナログサンプルアンドホールド回路3600及び3650の代わりに、デジタルサンプルアンドホールド回路が使用され得る。
図37は、線形領域で動作するメモリセルに好適なアレイアーキテクチャを示す。システム3700は、入力ブロック3701と、出力ブロック3702と、メモリセルのアレイ3703とを含む。入力ブロック3701はアレイ3703のメモリセルのドレイン(ソース線)に結合され、出力ブロック3702はアレイ3703のメモリセルのビット線に結合される。あるいは、入力ブロック3701はアレイ3703のメモリセルのワード線に結合され、出力ブロック3702はアレイ3703のメモリセルのビット線に結合される。
システム3700がLSTM又はGRUを実装するために使用される場合、出力ブロック3702及び/又は入力ブロック3701は、LSTM/GRUアーキテクチャの必要に応じて、乗算器ブロック、加算ブロック、減算(出力=1-入力)ブロックを含んでもよく、任意選択的に、必要に応じてアナログサンプルアンドホールド回路(図36の回路3600又は3650など)又はデジタルサンプルアンドホールド回路(例えば、レジスタ又はSRAM)を含んでもよい。
本明細書で使用される場合、用語「~の上方に(over)」及び「~に(on)」という用語は両方とも、「に直接」(中間材料、要素、又は間隙がそれらの間に配設されていない)、及び「上に間接的に」(中間材料、要素、又は間隙がそれらの間に配設されている)を包括的に含むことに留意されるべきである。同様に、「隣接した」という用語は、「直接隣接した」(中間材料、要素、又は間隙がそれらの間に何ら配設されていない)、及び「間接的に隣接した」(中間材料、要素、又は間隙がそれらの間に配設されている)を含み、「~に取り付けられた」は、「~に直接取り付けられた」(中間材料、要素、又は間隙がそれらの間に配設されていない)、及び「~に間接的に取り付けられた」(中間材料、要素、又は間隙がそれらの間に配設されている)を含み、「電気的に結合された」は、「~に直接電気的に結合された」(要素を一緒に電気的に接続する中間材料又は要素がそれらの間にない)、及び「~に間接的に電気的に結合された」(要素を一緒に電気的に接続する中間材料又は要素がそれらの間にある)を含む。例えば、要素を「基板の上方に」形成することは、その要素を基板に直接、中間材料/要素をそれらの間に伴わずに形成すること、及びその要素を基板に間接的に1つ以上の中間材料/要素をそれらの間に伴って形成することを含み得る。

Claims (63)

  1. 構成可能なベクトル行列乗算システムであって、
    行及び列に配置されたメモリセルのアレイと、
    ベクトルマトリックス乗算器動作中に前記アレイの複数のメモリセルから受け取った電流に応答して出力電圧のベクトルを生成するための、前記アレイに結合された出力ブロックと、
    入力電圧のベクトルに応答して入力電流のベクトルを生成し、ベクトルマトリックス乗算器動作中に前記アレイの複数のメモリセルに前記入力電流の前記ベクトルを提供するための、前記アレイに結合された活性化ブロックであって、
    第1のサイクル中に、第1のサブアレイが前記アレイで生成され、前記出力ブロックは前記第1のサブアレイに結合され、前記活性化ブロックは前記第1のサブアレイに結合され、
    第2のサイクル中に、第2のサブアレイが前記アレイで生成され、前記出力ブロックは前記第2のサブアレイに結合され、前記活性化ブロックは前記第2のサブアレイに結合され、前記第1のサブアレイ及び前記第2のサブアレイは、前記アレイの異なるメモリセルからなる、活性化ブロックと、
    前記第2のサブアレイのベクトルマトリックス乗算器動作のために、前記第1のサブアレイから受け取った電流に応答して、前記出力ブロックからの出力電圧のベクトルを前記活性化ブロックにルーティングするためのルーティング回路と、
    を備える、システム。
  2. 前記ルーティング回路は1つ以上のマルチプレクサを備える、請求項1に記載のシステム。
  3. 前記第1のサブアレイ及び前記第2のサブアレイを生成するためのコントローラを更に備える、請求項1に記載のシステム。
  4. 前記第1のサブアレイ及び前記第2のサブアレイを生成するための制御論理を更に備える、請求項1に記載のシステム。
  5. 前記メモリセルはスプリットゲート型フラッシュメモリセルである、請求項1に記載のシステム。
  6. 前記出力ブロックは電流加算器ブロックである、請求項1に記載のシステム。
  7. 前記システムは、前記システムのニューロンの出力幅を構成する能力を提供する、請求項1に記載のシステム。
  8. 前記システムは、前記システムのニューロンの入力幅を構成する能力を提供する、請求項1に記載のシステム。
  9. 前記出力ブロックはデジタルビットを出力する、請求項1に記載のシステム。
  10. 電流サンプルアンドホールド回路又は電圧サンプルアンドホールド回路のうちの1つ以上を更に備える、請求項1に記載のシステム。
  11. 構成可能なベクトルマトリックス乗算システムであって、
    行及び列に配置されたメモリセルのアレイと、
    ベクトルマトリックス乗算器動作中に前記アレイの複数のメモリセルから受け取った電流に応答して出力のベクトルを生成するための、前記アレイに結合された出力ブロックであって、
    第1のサイクル中に、第1のサブアレイが前記アレイで生成され、前記出力ブロックは前記第1のサブアレイに結合され、活性化ブロックは前記第1のサブアレイに結合され、
    第2のサイクル中に、第2のサブアレイが前記アレイで生成され、前記出力ブロックは前記第2のサブアレイに結合され、前記活性化ブロックは前記第2のサブアレイに結合され、
    前記第1のサブアレイ及び前記第2のサブアレイは、前記アレイの異なるメモリセルからなる、出力ブロックと、
    前記第2のサブアレイのベクトルマトリックス乗算器動作のために、前記第1のサブアレイから受け取った電流に応答して、前記出力ブロックからの出力電圧のベクトルを前記活性化ブロックにルーティングするためのルーティング回路と、
    を備える、システム。
  12. 前記ルーティング回路は1つ以上のマルチプレクサを含む、請求項11に記載のシステム。
  13. 前記第1のサブアレイ及び前記第2のサブアレイを生成するためのコントローラを更に備える、請求項11に記載のシステム。
  14. 前記第1のサブアレイ及び前記第2のサブアレイを生成するための制御論理を更に備える、請求項11に記載のシステム。
  15. 前記メモリセルはスプリットゲート型フラッシュメモリセルである、請求項11に記載のシステム。
  16. 前記出力ブロックは電流加算器ブロックである、請求項11に記載のシステム。
  17. 前記システムは、前記システムのニューロンの出力幅を構成する能力を提供する、請求項11に記載のシステム。
  18. 前記システムは、前記システムのニューロンの入力幅を構成する能力を提供する、請求項11に記載のシステム。
  19. 前記出力ブロックはデジタルビットを出力する、請求項11に記載のシステム。
  20. 前記出力ブロックはアナログレベルを出力する、請求項11に記載のシステム。
  21. 電流サンプルアンドホールド回路及び電圧サンプルアンドホールド回路のうちの1つ以上を更に備える、請求項11に記載のシステム。
  22. 前記出力ブロックはアナログデジタル変換ブロックを含む、請求項11に記載のシステム。
  23. 入力ブロックを更に備える、請求項11に記載のシステム。
  24. 前記入力ブロックは活性化ブロックを含む、請求項23に記載のシステム。
  25. 前記入力ブロックはデジタルアナログ変換ブロックを含む、請求項23に記載のシステム。
  26. 前記ベクトルマトリックス乗算システムは、長・短期メモリセルの一部である、請求項11に記載のシステム。
  27. 前記ベクトルマトリックス乗算システムは、ゲート付き回帰型ユニットセルの一部である、請求項11に記載のシステム。
  28. 重みが差分セルに格納される、請求項11に記載のシステム。
  29. 重みが2つのブレンドメモリセルに格納される、請求項11に記載のシステム。
  30. 構成可能なベクトルマトリックス乗算システムであって、
    行及び列に配置されたメモリセルのアレイと、
    ベクトルマトリックス乗算器動作中の前記アレイの複数のメモリセルへの入力データに応答して入力のベクトルを生成するための、前記アレイに結合された入力ブロックであって、
    第1のサイクル中に、第1のサブアレイが前記アレイで生成され、前記入力ブロックは前記第1のサブアレイに結合され、
    第2のサイクル中に、第2のサブアレイが前記アレイで生成され、前記入力ブロックは前記第2のサブアレイに結合され、
    前記第1のサブアレイ及び前記第2のサブアレイは、前記アレイの異なるメモリセルからなる、入力ブロックと、
    前記ベクトルマトリックス乗算器動作のために、前記第1のサブアレイに結合された入力データに応答して、前記入力ブロックから入力ベクトルのベクトルをルーティングするためのルーティング回路と、
    を備える、システム。
  31. 前記ルーティング回路は1つ以上のマルチプレクサを含む、請求項30に記載のシステム。
  32. 前記第1のサブアレイ及び前記第2のサブアレイを生成するためのコントローラを更に備える、請求項30に記載のシステム。
  33. 前記第1のサブアレイ及び前記第2のサブアレイを生成するための制御論理を更に備える、請求項30に記載のシステム。
  34. 前記メモリセルはスプリットゲート型フラッシュメモリセルである、請求項30に記載のシステム。
  35. 出力ベクトルを生成する出力ブロックを更に備える、請求項30に記載のシステム。
  36. 前記出力ブロックは電流加算器ブロックである、請求項35に記載のシステム。
  37. 前記システムは、前記システムのニューロンの出力幅を構成する能力を提供する、請求項30に記載のシステム。
  38. 前記システムは、前記システムのニューロンの入力幅を構成する能力を提供する、請求項30に記載のシステム。
  39. 前記出力ブロックはデジタルビットを出力する、請求項35に記載のシステム。
  40. 前記出力ブロックはアナログレベルを出力する、請求項35に記載のシステム。
  41. 電流サンプルアンドホールド回路及び電圧サンプルアンドホールド回路のうちの1つ以上を更に備える、請求項30に記載のシステム。
  42. 前記出力ブロックはアナログデジタル変換ブロックを含む、請求項35に記載のシステム。
  43. 前記出力ブロックはアナログデジタル変換ブロックを含む、請求項36に記載のシステム。
  44. 前記入力ブロックは活性化ブロックを含む、請求項30に記載のシステム。
  45. 前記入力ブロックはデジタルアナログ変換ブロックを含む、請求項30に記載のシステム。
  46. 前記入力ブロックは、前記メモリセルの前記アレイの各メモリセルのソースゲートに結合される、請求項30に記載のシステム。
  47. 前記入力ブロックは、前記メモリセルの前記アレイの各メモリセルのワード線ゲートに結合される、請求項30に記載のシステム。
  48. 前記ベクトルマトリックス乗算システムは、長・短期メモリセルの一部である、請求項30に記載のシステム。
  49. 前記ベクトルマトリックス乗算システムは、ゲート付き回帰型ユニットセルの一部である、請求項30に記載のシステム。
  50. 重みが差分セルに格納される、請求項30に記載のシステム。
  51. 重みが2つのブレンドメモリセルに格納される、請求項30に記載のシステム。
  52. アナログニューロメモリシステムであって、
    複数のベクトルマトリックス乗算サブシステムであって、各ベクトルマトリックス乗算サブシステムが、
    行及び列に配置されたメモリセルのアレイと、
    ベクトルマトリックス乗算器動作中に前記アレイの複数のメモリセルから受け取った電流に応答して出力電圧のベクトルを生成するための、前記アレイに結合された出力ブロックと、
    入力電圧のベクトルに応答して入力電流のベクトルを生成し、ベクトルマトリックス乗算器動作中に前記アレイの複数のメモリセルに前記入力電流の前記ベクトルを提供するための、前記アレイに結合された活性化ブロックと、
    を含む、複数のベクトルマトリックス乗算サブシステムと、
    前記複数のベクトルマトリックス乗算サブシステムのうちの1つのベクトルマトリックス乗算サブシステムの第1のアレイに含まれる第1のサブアレイに結合された出力ブロックからの出力電圧のベクトルを前記複数のベクトルマトリックス乗算サブシステムのうちの別のベクトルマトリックス乗算サブシステムの第2のアレイに含まれる第2のサブアレイに結合された活性化ブロックにルーティングするためのルーティング回路と、
    を備える、システム。
  53. 前記ルーティング回路は1つ以上のマルチプレクサを含む、請求項52に記載のシステム。
  54. 前記第1のサブアレイ及び前記第2のサブアレイを生成するためのコントローラを更に備える、請求項52に記載のシステム。
  55. 前記第1のサブアレイ及び前記第2のサブアレイを生成するための制御論理を更に備える、請求項52に記載のシステム。
  56. 前記ベクトルマトリックス乗算サブシステムの一部又は全体は、長・短期メモリセルを形成する、請求項52に記載のシステム。
  57. 前記ベクトルマトリックス乗算サブシステムの一部又は全体は、ゲート付き回帰型ユニットセルを形成する、請求項52に記載のシステム。
  58. 前記メモリセルはスプリットゲート型フラッシュメモリセルである、請求項52に記載のシステム。
  59. 前記出力ブロックは電流加算器ブロックである、請求項52に記載のシステム。
  60. 前記システムは、前記システムのニューロンの出力幅を構成する能力を提供する、請求項52に記載のシステム。
  61. 前記システムは、前記システムのニューロンの入力幅を構成する能力を提供する、請求項52に記載のシステム。
  62. 前記出力ブロックはデジタルビットを出力する、請求項52に記載のシステム。
  63. 電流サンプルアンドホールド回路又は電圧サンプルアンドホールド回路を更に備える、請求項52に記載のシステム。
JP2021510774A 2018-08-27 2019-07-11 深層学習ニューラルネットワーク用の構成可能なアナログニューラルメモリシステム Active JP7209811B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862723360P 2018-08-27 2018-08-27
US62/723,360 2018-08-27
US16/182,237 US10956814B2 (en) 2018-08-27 2018-11-06 Configurable analog neural memory system for deep learning neural network
US16/182,237 2018-11-06
PCT/US2019/041493 WO2020046474A1 (en) 2018-08-27 2019-07-11 Configurable analog neural memory system for deep learning neural network

Publications (3)

Publication Number Publication Date
JP2021536614A JP2021536614A (ja) 2021-12-27
JPWO2020046474A5 JPWO2020046474A5 (ja) 2022-07-04
JP7209811B2 true JP7209811B2 (ja) 2023-01-20

Family

ID=69587243

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021510774A Active JP7209811B2 (ja) 2018-08-27 2019-07-11 深層学習ニューラルネットワーク用の構成可能なアナログニューラルメモリシステム

Country Status (7)

Country Link
US (3) US10956814B2 (ja)
EP (2) EP3844678B1 (ja)
JP (1) JP7209811B2 (ja)
KR (1) KR102351423B1 (ja)
CN (1) CN112585623B (ja)
TW (1) TWI718626B (ja)
WO (1) WO2020046474A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11513797B2 (en) * 2018-09-12 2022-11-29 Mentium Technologies Inc. Systems and methods for analog vector by matrix multiplier
JP7259253B2 (ja) * 2018-10-03 2023-04-18 株式会社デンソー 人工ニューラルネットワーク回路
US11663056B2 (en) * 2019-12-20 2023-05-30 Intel Corporation Unified programming interface for regrained tile execution
US20210350217A1 (en) * 2020-05-10 2021-11-11 Silicon Storage Technology, Inc. Analog neural memory array in artificial neural network with source line pulldown mechanism
CN112181895B (zh) * 2020-09-02 2023-06-06 上海交通大学 可重构架构、加速器、电路部署和计算数据流方法
CN114335186A (zh) * 2020-09-30 2022-04-12 硅存储技术股份有限公司 具有设置在字线栅上方的擦除栅的分裂栅非易失性存储器单元及其制备方法
US20240212672A1 (en) * 2021-04-26 2024-06-27 The Trustees Of Dartmouth College Low power analog circuitry for artificial neural networks
WO2024026741A1 (en) * 2022-08-03 2024-02-08 Hefei Reliance Memory Limited Acceleration architecture for neural networks

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050125477A1 (en) 2003-12-04 2005-06-09 Genov Roman A. High-precision matrix-vector multiplication on a charge-mode array with embedded dynamic memory and stochastic method thereof
US20140172937A1 (en) 2012-12-19 2014-06-19 United States Of America As Represented By The Secretary Of The Air Force Apparatus for performing matrix vector multiplication approximation using crossbar arrays of resistive memory devices

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5029130A (en) 1990-01-22 1991-07-02 Silicon Storage Technology, Inc. Single transistor non-valatile electrically alterable semiconductor memory device
US5182794A (en) * 1990-07-12 1993-01-26 Allen-Bradley Company, Inc. Recurrent neural networks teaching system
US5726934A (en) * 1996-04-09 1998-03-10 Information Storage Devices, Inc. Method and apparatus for analog reading values stored in floating gate structures
US6747310B2 (en) 2002-10-07 2004-06-08 Actrans System Inc. Flash memory cells with separated self-aligned select and erase gates, and process of fabrication
CN105122278B (zh) * 2013-03-15 2017-03-22 Hrl实验室有限责任公司 神经网络及编程方法
US9672930B2 (en) * 2015-05-29 2017-06-06 Silicon Storage Technology, Inc. Low power operation for flash memory system
CN106485321B (zh) * 2015-10-08 2019-02-12 上海兆芯集成电路有限公司 具有架构神经网络执行单元的处理器
US10552370B2 (en) * 2015-10-08 2020-02-04 Via Alliance Semiconductor Co., Ltd. Neural network unit with output buffer feedback for performing recurrent neural network computations
WO2017200883A1 (en) 2016-05-17 2017-11-23 Silicon Storage Technology, Inc. Deep learning neural network classifier using non-volatile memory array
KR102399548B1 (ko) * 2016-07-13 2022-05-19 삼성전자주식회사 뉴럴 네트워크를 위한 방법 및 그 방법을 수행하는 장치
KR20180009315A (ko) * 2016-07-18 2018-01-26 아이엠이씨 브이제트더블유 시간 메모리 시스템의 하드웨어 구현
US11501130B2 (en) * 2016-09-09 2022-11-15 SK Hynix Inc. Neural network hardware accelerator architectures and operating method thereof
WO2018060817A1 (en) * 2016-09-30 2018-04-05 Semiconductor Energy Laboratory Co., Ltd. Display system and electronic device
US9922696B1 (en) * 2016-10-28 2018-03-20 Samsung Electronics Co., Ltd. Circuits and micro-architecture for a DRAM-based processing unit
US10528321B2 (en) * 2016-12-07 2020-01-07 Microsoft Technology Licensing, Llc Block floating point for neural network implementations
US10565492B2 (en) 2016-12-31 2020-02-18 Via Alliance Semiconductor Co., Ltd. Neural network unit with segmentable array width rotator
US10127494B1 (en) * 2017-08-02 2018-11-13 Google Llc Neural network crossbar stack
US11354562B2 (en) * 2018-01-03 2022-06-07 Silicon Storage Technology, Inc. Programmable neuron for analog non-volatile memory in deep learning artificial neural network
US10910061B2 (en) * 2018-03-14 2021-02-02 Silicon Storage Technology, Inc. Method and apparatus for programming analog neural memory in a deep learning artificial neural network
US11769036B2 (en) * 2018-04-18 2023-09-26 Qualcomm Incorporated Optimizing performance of recurrent neural networks
US10860918B2 (en) * 2018-08-21 2020-12-08 Silicon Storage Technology, Inc. Analog neural memory system for deep learning neural network comprising multiple vector-by-matrix multiplication arrays and shared components

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050125477A1 (en) 2003-12-04 2005-06-09 Genov Roman A. High-precision matrix-vector multiplication on a charge-mode array with embedded dynamic memory and stochastic method thereof
US20140172937A1 (en) 2012-12-19 2014-06-19 United States Of America As Represented By The Secretary Of The Air Force Apparatus for performing matrix vector multiplication approximation using crossbar arrays of resistive memory devices

Also Published As

Publication number Publication date
TW202016928A (zh) 2020-05-01
KR102351423B1 (ko) 2022-01-13
CN112585623B (zh) 2022-06-28
US20240095511A1 (en) 2024-03-21
US10956814B2 (en) 2021-03-23
US20200065660A1 (en) 2020-02-27
CN112585623A (zh) 2021-03-30
JP2021536614A (ja) 2021-12-27
EP3844678B1 (en) 2023-05-10
TWI718626B (zh) 2021-02-11
US20210174185A1 (en) 2021-06-10
EP3844678A1 (en) 2021-07-07
WO2020046474A1 (en) 2020-03-05
KR20210035304A (ko) 2021-03-31
EP4220489A1 (en) 2023-08-02

Similar Documents

Publication Publication Date Title
JP7399153B2 (ja) 複数のベクトルマトリックス乗算アレイ及び共有構成要素を備える、深層学習ニューラルネットワーク用のアナログニューラルメモリシステム
JP7244525B2 (ja) 深層学習人工ニューラルネットワークにおけるアナログ不揮発性メモリ用のプログラム可能なニューロン
JP7209811B2 (ja) 深層学習ニューラルネットワーク用の構成可能なアナログニューラルメモリシステム
JP7288461B2 (ja) 深層学習人工ニューラルネットワークにおけるアナログニューラルメモリの高電圧生成のための方法及び装置
KR102457394B1 (ko) 딥 러닝 신경 네트워크에서 사용되는 아날로그 신경 메모리 시스템 내의 메모리 셀들에 대한 온도 및 누설 보상
JP7253563B2 (ja) 深層学習人工ニューラルネットワークにおけるアナログニューラルメモリ用のデコーダ
JP7270746B2 (ja) 2ゲート不揮発性メモリセルのアレイを使用するニューラルネットワーク分類子
JP2023153778A (ja) 深層学習人工ニューラルネットワークにおけるアナログニューラルメモリ用のデコードシステム及び物理レイアウト
JP7266665B2 (ja) ディープラーニング人工ニューラルネットワークにおけるアナログニューロメモリ内の基準トランジスタ及びメモリセルに対する補償
CN113366506A (zh) 使用堆叠栅极非易失性存储器单元阵列的神经网络分类器
JP7394827B2 (ja) ディープラーニングの人工ニューラルネットワーク内のアナログニューラルメモリ内に不良メモリセルを含む行又は列に関する冗長メモリアクセス
JP7270747B2 (ja) 4ゲート不揮発性メモリセルのアレイを使用するニューラルネットワーク分類器
JP7353519B2 (ja) 深層学習人工ニューラルネットワークにおけるアナログニューラルメモリのためのワード線及び制御ゲート線タンデムデコーダ

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220624

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220624

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20220624

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220726

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221025

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230110

R150 Certificate of patent or registration of utility model

Ref document number: 7209811

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150