JP2022531766A - 深層学習人工ニューラルネットワークにおけるアナログニューラルメモリ用の出力アレイニューロンの変換及び較正 - Google Patents

深層学習人工ニューラルネットワークにおけるアナログニューラルメモリ用の出力アレイニューロンの変換及び較正 Download PDF

Info

Publication number
JP2022531766A
JP2022531766A JP2021564790A JP2021564790A JP2022531766A JP 2022531766 A JP2022531766 A JP 2022531766A JP 2021564790 A JP2021564790 A JP 2021564790A JP 2021564790 A JP2021564790 A JP 2021564790A JP 2022531766 A JP2022531766 A JP 2022531766A
Authority
JP
Japan
Prior art keywords
output
analog
array
input
digital
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.)
Pending
Application number
JP2021564790A
Other languages
English (en)
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 JP2022531766A publication Critical patent/JP2022531766A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • 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
    • G11C27/00Electric analogue stores, e.g. for storing instantaneous values
    • G11C27/005Electric analogue stores, e.g. for storing instantaneous values with non-volatile charge storage, e.g. on floating gate or MNOS
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/4402Internal storage of test result, quality data, chip identification, repair information
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C2029/5006Current
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2216/00Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
    • G11C2216/02Structural aspects of erasable programmable read-only memories
    • G11C2216/04Nonvolatile memory cell provided with a separate control gate for erasing the cells, i.e. erase gate, independent of the normal read control gate

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • General Physics & Mathematics (AREA)
  • Biophysics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Neurology (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Read Only Memory (AREA)
  • Non-Volatile Memory (AREA)
  • Semiconductor Memories (AREA)
  • Memory System (AREA)
  • Image Processing (AREA)
  • Analogue/Digital Conversion (AREA)

Abstract

不揮発性メモリセルを利用するアナログニューラルメモリシステムについて、構成可能な入力ブロック及び出力ブロック、並びに物理的レイアウトが開示される。入力ブロックは、水平方向に配列された異なる数のアレイをサポートするように構成することができ、出力ブロックは、垂直方向に配列された異なる数のアレイをサポートするように構成することができる。構成可能な入力ブロック及び出力ブロックに使用するための調整可能な構成要素が開示される。アナログニューラルメモリシステム内の入力ブロック及び出力ブロックにおける漏れ及びオフットを補償するためのシステム及び方法が利用される。【選択図】図49

Description

(優先権の主張)
本出願は、2019年5月2日に出願された米国特許仮出願第62/842,279号、表題「CONFIGURABLE INPUT BLOCKS AND OUTPUT BLOCKS AND PHYSICAL LAYOUT FOR ANALOG NEURAL MEMORY IN DEEP LEARNING ARTIFICIAL NEURAL NETWORK」、及び2019年6月21日に出願された米国特許出願第16/449,205号、表題「OUTPUT ARRAY NEURON CONVERSION AND CALIBRATION FOR ANALOG NEURAL MEMORY IN DEEP LEARNING ARTIFICIAL NEURAL NETWORK」の優先権を主張するものである。
(発明の分野)
不揮発性メモリセルを利用するアナログニューラルメモリシステムについて、構成可能な入力ブロック及び出力ブロック、並びに関連する物理的レイアウトが開示される。
人工ニューラルネットワークは、生物学的ニューラルネットワーク(動物の中枢神経系、特に脳)を模倣しており、多数の入力に依存し得、かつ、一般的に未知である関数を推定する又は近似するために使用される。人工ニューラルネットワークは、概して、メッセージを交換する相互接続された「ニューロン」の層を含む。
図1は人工ニューラルネットワークを示しており、図中、円は、入力又はニューロンの層を表す。接続(シナプスと呼ばれる)は、矢印によって表され、経験に基づいて調整され得る数値の重みを有する。これにより、ニューラルネットワークは入力に適応し、学習可能になる。典型的には、ニューラルネットワークは、複数の入力の層を含む。典型的には、1つ以上のニューロンの中間層、及びニューラルネットワークの出力を提供するニューロンの出力層が存在する。それぞれのレベルでニューロンは、シナプスから受信したデータに基づいて個々に又は合わせて決定を行う。
高性能情報処理用の人工ニューラルネットワークの開発における主要な課題の1つは、適切なハードウェア技術の欠如である。実際には、実用ニューラルネットワークは、非常に多数のシナプスに依拠しており、これによりニューロン間の高い接続性、すなわち、非常に高度な計算処理の並列化が可能となる。原理的には、このような複雑性は、デジタルスーパーコンピュータ又は専用GPU(グラフィックプロセッシングユニット)クラスタによって実現が可能である。しかしながら、高コストに加え、これらのアプローチはまた、生物学的ネットワークが主として低精度のアナログ計算を実施するのではるかに少ないエネルギーしか消費しないのと比較して、エネルギー効率が劣っていることに悩まされている。人工ニューラルネットワークにはCMOSアナログ回路が使用されてきたが、ほとんどのCMOS実装シナプスは、必要な多数のニューロン及びシナプスを前提とすると、嵩高過ぎていた。
出願人は以前に、参照により組み込まれる米国特許公開第2017/0337466号として公開された米国特許出願第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が挙げられる。
ベクトル行列乗算(VMM)システムにおける1つの課題は、VMMからの出力を別のVMMへの入力として迅速かつ正確に送達し、かつ半導体ダイ内の物理的空間を効率的に利用しながらそれを行う能力である。
必要とされるのは、構成可能な入力ブロック及び出力ブロック、並びに不揮発性メモリセルを利用するアナログニューラルメモリシステムの物理的レイアウトである。更に必要とされるのは、入力ブロック内の漏れ及びオフセットを補償するためのシステム及び方法、並びにそのようなシステムのための出力ブロックである。
アナログニューラルメモリシステム内の入力ブロック及び出力ブロックにおける漏れ及びオフセットを補償するためのシステム及び方法が開示される。
アナログニューラルメモリセル用の出力回路ブロックを動作させる方法の一実施形態は、漏れ及び/又はオフセットを測定するステップと、測定した量を第1の値として格納するステップと、式:LSB=次のレベルに切り上げられた第1の値を使用して、メモリセルの最下位ビット(LSB)を決定するステップと、を含む。
アナログニューラルメモリセル用の出力回路ブロックを動作させる別の実施形態は、オフセット又は漏れを測定するステップと、測定した量を第1の値として格納するステップと、第1の値を呼び出すステップと、温度調整を実行するステップと、式:LSB=次のレベルに切り上げられた第1の値を使用して、メモリセル範囲の最下位ビット(LSB)を決定するステップと、を含む。
アナログニューラルメモリセルのアレイに結合された出力回路ブロックからの出力を生成する間に漏れ又はオフセットを補償する方法の一実施形態は、デジタルの漏れ値又はオフセット値を生成するためにアナログ-デジタル変換器を使用して出力回路ブロック値内の漏れ又はオフセットを測定するステップと、デジタル漏れ又はオフセット値をカウンタ内の第1の値として格納するステップと、漏れ又はオフセットを補正するステップと、を含む。
先行技術の人工ニューラルネットワークを示す図である。 先行技術のスプリットゲートフラッシュメモリセルを示す。 別の先行技術のスプリットゲートフラッシュメモリセルを示す。 別の先行技術のスプリットゲートフラッシュメモリセルを示す。 別の先行技術のスプリットゲートフラッシュメモリセルを示す。 別の先行技術のスプリットゲートフラッシュメモリセルを示す。 先行技術の積層ゲートフラッシュメモリセルを示す。 1つ以上の不揮発性メモリアレイを利用する例示的な人工ニューラルネットワークの様々なレベルを示す図である。 ベクトル行列乗算システムを示すブロック図である。 1つ以上のベクトル行列乗算システムを利用する例示的な人工ニューラルネットワークを示すブロック図である。 ベクトル行列乗算システムの別の実施形態を示す。 ベクトル行列乗算システムの別の実施形態を示す。 ベクトル行列乗算システムの別の実施形態を示す。 ベクトル行列乗算システムの別の実施形態を示す。 ベクトル行列乗算システムの別の実施形態を示す。 先行技術の長・短期記憶システムを示す。 長・短期記憶システムで使用する例示的なセルを示す。 図17の例示的なセルの一実施形態を示す。 図17の例示的なセルの別の実施形態を示す。 先行技術のゲート付き回帰型ユニットシステムを示す。 ゲート付き回帰型ユニットシステムで使用する例示的なセルを示す。 図21の例示的なセルの一実施形態を示す。 図21の例示的なセルの別の実施形態を示す。 ベクトル行列乗算システムの別の実施形態を示す。 ベクトル行列乗算システムの別の実施形態を示す。 ベクトル行列乗算システムの別の実施形態を示す。 ベクトル行列乗算システムの別の実施形態を示す。 ベクトル行列乗算システムの別の実施形態を示す。 ベクトル行列乗算システムの別の実施形態を示す。 ベクトル行列乗算システムの別の実施形態を示す。 ベクトル行列乗算システムの別の実施形態を示す。 ベクトル行列乗算システムの別の実施形態を示す。 ベクトル行列乗算システムの例示的なブロック図を示す。 垂直に隣接するアレイが出力ブロックを共有する、ベクトル行列乗算システムの例示的なブロック図を示す。 水平に隣接するアレイが入力ブロックを共有する、ベクトル行列乗算システムの例示的なブロック図を示す。 水平に隣接するアレイが入力ブロックを共有する、ベクトル行列乗算システムの例示的なブロック図を示す。 ベクトル行列乗算システムの例示的なブロック図を示す。 積分型アナログ-デジタル変換器の一実施形態を示す。 図37Aのシステムのための例示的な出力波形を示す。 図37Aの積分型アナログ-デジタル変換器に提供され得る例示的な入力を示す。 電流-電圧変換器の一実施形態を示す。 デジタルデータ-電圧変換器を示す。 構成可能なアナログ-デジタル変換器を示す。 構成可能な電流-電圧入力回路を示す。 デジタル-パルス行変換器を示す。 図43Aのデジタル-パルス行変換器の例示的な波形を示す。 デジタル-パルス行変換器を示す。 図44Aのデジタル-パルス行変換器の例示的な波形を示す。 図44Aのデジタル-パルス行変換器と共に使用するための行デジタルパルス発生器を示す。 ランプ型アナログ-デジタル変換器出力変換機を示す。 図45Aのランプ型アナログ-デジタル変換器出力変換器で使用する例示的な基準電圧を示す。 図45Aのランプ型アナログ-デジタル変換器出力変換器で使用する例示的な基準電圧を示す。 アルゴリズム型アナログ-デジタル変換器出力変換機4600を示す。 SAR ADCを示す。 図47AのSAR ADCのデジタル出力ビットを生成するためのアルゴリズムを示す。 シグマデルタ型アナログ-デジタル変換器を示す。 較正方法を示す。 リアルタイム較正方法を示す。 バックグラウンド較正方法を示す。 較正及び変換方法を示す。 別の較正及び変換方法を示す。 図37A~図37B及び図45A~図45Cの実施形態との任意選択的な使用のための比較器を示す。
本発明の人工ニューラルネットワークは、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:図2のフラッシュメモリセル210の動作
Figure 2022531766000002
「読み出し1」は、セル電流がビット線に出力される読み出しモードである。「読み出し2」は、セル電流がソース線に出力される読み出しモードである。
図3は、制御ゲート(control gate、CG)28を追加した、図2のメモリセル210と同様のメモリセル310を示す。制御ゲート28は、プログラミング中に高電圧(例えば、10V)、消去中に低又は負電圧(例えば、0v/-8V)、読み出し中に低又は中程度電圧(例えば、0v/2.5V)でバイアスされる。他の端子は、図2の端子と同様にバイアスされる。
図4は、ソース領域14と、ドレイン領域16と、チャネル領域18の第1の部分の上方にある浮遊ゲート20と、チャネル領域18の第2の部分の上方にある選択ゲート22(典型的には、ワード線、WL、に結合される)と、浮遊ゲート20の上方にある制御ゲート28と、ソース領域14の上方にある消去ゲート30と、を含む4ゲートメモリセル410を示す。この構成は、あらゆる目的のため参照により本明細書に組み込まれる、米国特許第6,747,310号に記載されている。ここで、全てのゲートは、浮遊ゲート20を除いて、非浮遊ゲートであり、つまり、それらは電圧源に電気的に接続される又は接続可能である。プログラミングは、熱せられた電子がチャネル領域18から浮遊ゲート20にその電子自体を注入することによって実行される。消去は、電子が浮遊ゲート20から消去ゲート30へトンネリングすることによって実行される。
表2は、読み出し、消去、及びプログラム動作を実行するためのメモリセル310の端子に印加され得る典型的な電圧範囲を示す。
表2:図4のフラッシュメモリセル410の動作
Figure 2022531766000003
「読み出し1」は、セル電流がビット線に出力される読み出しモードである。「読み出し2」は、セル電流がソース線に出力される読み出しモードである。
図5は、メモリセル510が消去ゲート(erase gate、EG)を含まないことを除いて、図4のメモリセル410と同様のメモリセル510を示す。消去は、基板18を高電圧にバイアスし、制御ゲートCG28を低電圧又は負電圧にバイアスすることによって行われる。あるいは、ワード線22を正電圧にバイアスし、制御ゲート28を負電圧にバイアスすることによって、消去が行われる。プログラミング及び読み出しは、図4のものと同様である。
図6は、別の種類のフラッシュメモリセルである、3ゲートメモリセル610を示す。メモリセル610は、メモリセル610が別個の制御ゲートを有しないことを除いて、図4のメモリセル410と同一である。(消去ゲートの使用を通じて消去が起こる)消去動作及び読み出し動作は、制御ゲートバイアスが印加されないことを除いて、図4のものと同様である。プログラミング動作もまた、制御ゲートバイアスなしで行われるため、結果として、プログラム動作中は、制御ゲートバイアスの不足を補償するため、より高い電圧がソース線に印加されなければならない。
表3は、読み出し、消去、及びプログラム動作を実行するためのメモリセル610の端子に印加され得る典型的な電圧範囲を示す。
表3:図6のフラッシュメモリセル610の動作
Figure 2022531766000004
「読み出し1」は、セル電流がビット線に出力される読み出しモードである。「読み出し2」は、セル電流がソース線に出力される読み出しモードである。
図7は、別の種類のフラッシュメモリセルである、積層ゲートメモリセル710を示す。メモリセル710は、浮遊ゲート20がチャネル領域18全体の上方にわたって延在し、制御ゲート22(ワード線に結合される)が絶縁層(図示せず)によって分離されて浮遊ゲート20の上方に延在することを除いて、図2のメモリセル210と同様である。消去、プログラミング、及び読み出し動作は、メモリセル210について前述したものと同様の方法で動作する。
表4は、読み出し、消去、及びプログラム動作を実行するためのメモリセル710及び基板12の端子に印加され得る典型的な電圧範囲を示す。
表4:図7のフラッシュメモリセル710の動作
Figure 2022531766000005
「読み出し1」は、セル電流がビット線に出力される読み出しモードである。「読み出し2」は、セル電流がソース線に出力される読み出しモードである。任意選択的に、メモリセル210、310、410、510、610、又は710の行及び列を含むアレイでは、ソース線は、メモリセルの1行又はメモリセルの隣接する2行に結合され得る。すなわち、ソース線は、メモリセルの隣接する行によって共有され得る。
上記の人工ニューラルネットワークにおける不揮発性メモリセルの種類のうちの1つを含むメモリアレイを利用するために、2つの修正が行われる。第1に、以下に更に説明されるように、アレイ内の他のメモリセルのメモリ状態に悪影響を与えずに各メモリセルを個々にプログラム、消去、及び読み出しできるように線を構成する。第2に、メモリセルの連続(アナログ)プログラミングを提供する。
具体的には、アレイ内の各メモリセルのメモリ状態(すなわち、浮遊ゲート上の電荷)を、完全に消去された状態から完全にプログラムされた状態へ、独立して、かつ他のメモリセルの異常が最小で、連続的に変えることができる。別の実施形態では、アレイ内の各メモリセルのメモリ状態(すなわち、浮遊ゲートの電荷)を、完全にプログラムされた状態から完全に消去された状態へ、及び逆もまた同様に、独立して、かつ他のメモリセルの異常が最小で、連続的に変えることができる。これはつまり、セル格納がアナログであるか、又は多数の不連続値(16又は64の異なる値など)のうちの1つを最低限格納できることを意味し、これにより、メモリアレイ内の全てのセルが非常に正確に、かつ個別に調整可能となり、またメモリアレイは格納に対して理想的になり、ニューラルネットワークのシナプシスの重みに微調整が可能となる。
本明細書に記載される方法及び手段は、限定することなく、SONOS(ケイ素-酸化物-窒化物-酸化物-ケイ素、窒化物中の電荷トラップ)、MONOS(金属-酸化物-窒化物-酸化物-ケイ素、窒化物中の金属電荷トラップ)、ReRAM(抵抗変化型メモリ)、PCM(相変化メモリ)、MRAM(磁気抵抗メモリ)、FeRAM(強誘電体メモリ)、OTP(バイレベル又はマルチレベルの1回のみのプログラムが可能)及びCeRAM(強相関電子メモリ)などの他の不揮発性メモリ技術に適用することができる。本明細書に記載される方法及び手段は、限定することなく、SRAM、DRAM、及び揮発性シナプスセルなどのニューラルネットワークに使用される揮発性メモリ技術に適用することができる。
不揮発性メモリセルアレイを使用するニューラルネットワーク
図8は、本実施形態の不揮発性メモリアレイを利用するニューラルネットワークの非限定例を概念的に示す。この例は、顔認識アプリケーション用に不揮発性メモリアレイニューラルネットワークを使用するが、不揮発性メモリアレイベースのニューラルネットワークを使用して他の適切なアプリケーションを実施することも可能である。
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個のニューロンを含み、ここで出力が最も高いニューロンが、クラスを決定する。この出力は、例えば、元の画像の内容の同定又は分類を示すことができる。
シナプスの各層は、不揮発性メモリセルのアレイ又はアレイの一部を使用して実行される。
図9は、その目的のために使用可能なアレイのブロック図である。ベクトル行列乗算(VMM)システム32は、不揮発性メモリセルを含み、ある層と次の層との間のシナプス(図6のCB1、CB2、CB3、及びCB4など)として利用される。具体的には、VMMシステム32は、行及び列に配置された不揮発性メモリセルを含むVMMアレイ33、消去ゲート及びワード線ゲートデコーダ34、制御ゲートデコーダ35、ビット線デコーダ36、並びにソース線デコーダ37を含み、それらのデコーダは不揮発性メモリセルアレイ33に対するそれぞれの入力をデコードする。VMMアレイ33への入力は、消去ゲート及びワード線ゲートデコーダ34から、又は制御ゲートデコーダ35から行うことができる。この例におけるソース線デコーダ37はまた、VMMアレイ33の出力をデコードする。代替的に、ビット線デコーダ36が、VMMアレイ33の出力をデコードすることができる。
VMMアレイ33は、2つの目的を果たす。第1に、VMMシステム32によって使用される重みを格納する。第2に、VMMアレイ33は、効果的に、入力に、VMMアレイ33に格納された重みを乗算し、それらを出力線(ソース線又はビット線)ごとに合計して出力を生成し、これは、次の層への入力又は最後の層への入力になる。乗算及び加算の関数を実行することによって、VMMアレイ33は、別個の乗算及び加算の論理回路の必要性をなくし、また、その場でのメモリ計算により電力効率も良い。
VMMアレイ33の出力は、VMMアレイ33の出力を合計してその畳み込み用の単一の値を作成する、差動加算器(加算オペアンプ又は加算カレントミラーなど)38に供給される。差動加算器38は、正の重み及び負の重みの総和を実行するように配置される。
差動加算器38の合計された出力値は、次に出力を整流する活性化関数回路39に供給される。活性化関数回路39は、シグモイド関数、tanh関数、ReLU関数、又は任意の他の非線形関数を提供し得る。活性化関数回路39の整流された出力値は、次の層(例えば図8のC1)の特徴マップの要素になり、次いで、次のシナプスに適用されて次の特徴マップ層又は最後の層を生成する。したがって、この例では、VMMアレイ33は、複数のシナプスを構成し(ニューロンの前の層から、又は画像データベースなどの入力層から、入力を受信する)、加算器38及び活性化関数回路39は、複数のニューロンを構成する。
図9のVMMシステム32への入力(WLx、EGx、CGx、及び任意選択的にBLx及びSLx)は、アナログレベル、バイナリレベル、デジタルパルス(この場合、パルス-アナログ変換器PACは、パルスを適切な入力アナログレベルに変換するのに必要とされ得る)又はデジタルビット(この場合、DACは、デジタルビットを適切な入力アナログレベルに変換するのに提供される)であり得、出力は、アナログレベル、バイナリレベル、デジタルパルス、又はデジタルビットであり得る(この場合、出力ADCは出力アナログレベルをデジタルビットに変換するのに提供される)。
図10は、図中でVMMシステム32a、32b、32c、32d及び32eとして標示されたVMMシステム32の多数の層の使用を示すブロック図である。図10に示されるように、入力(Inputxで示される)は、デジタル-アナログ変換器31によってデジタルからアナログに変換され、入力VMMシステム32aに提供される。変換されたアナログ入力は、電圧又は電流であり得る。第1の層の入力D/A変換は、入力VMMシステム32aの行列乗算器の適切なアナログレベルに入力Inputxをマッピングする関数又はLUT(ルックアップテーブル)を使用することによって行うことができる。入力変換はまた、外部アナログ入力を入力VMMシステム32aへのマッピングされたアナログ入力に変換するために、アナログ-アナログ(A/A)変換器によって行うこともできる。入力変換はまた、外部デジタル入力を入力VMMシステム32aへのマッピングされたデジタルパルス(単数又は複数)に変換するために、デジタル-デジタルパルス(D/P)変換器によって行うこともできる。
入力VMMシステム32aによって生成された出力は、次に、次のVMMシステム(隠しレベル1)32bへの入力として提供され、次に入力VMMシステム(隠しレベル2)32cへの入力として提供される出力を生成する、などとなる。VMMシステム32の様々な層は、畳み込みニューラルネットワーク(convolutional neural network、CNN)のシナプス及びニューロンの異なる層として機能する。VMMシステム32a、32b、32c、32d及び32eはそれぞれスタンドアローンの物理的不揮発性メモリアレイとすることができ、又は複数のVMMアレイは、同じ物理的不揮発性メモリアレイの異なる部分を利用することができ、又は複数のVMMシステムは、同じ物理的不揮発性メモリシステムの重なり合う部分を利用することができる。それぞれのVMMシステム32a、32b、32c、32d、及び32eはまた、そのアレイ又はニューロンの様々な部分に対して時間多重化され得る。図10に示される例は、5つの層(32a、32b、32c、32d、32e)、すなわち、1つの入力層(32a)、2つの隠れ層(32b、32c)、及び2つの完全に接続された層(32d、32e)を含む。当業者であれば、これは単なる例示であり、代わりにシステムが2つを超える隠れ層及び2つを超える完全に接続された層を含み得ることを理解するであろう。更に、異なる層は、2レベルメモリセル(2つのレベル、「0」及び「1」のみを意味する)を含むnビットメモリセル(複数の異なるレベルをサポートする異なるセル)の異なる組み合わせを使用し得る。
VMMアレイ
図11は、図3に示されるメモリセル310に特に適し、入力層と次の層との間でシナプス及びニューロンの一部として利用されるニューロンVMMアレイ1100を示す。VMMアレイ1100は、不揮発性メモリセルのメモリアレイ1101と、不揮発性基準メモリセルの基準アレイ1102(アレイの頂部に位置する)と、を含む。あるいは、別の基準アレイが底部に位置することができる。
VMMアレイ1100では、制御ゲート線1103などの制御ゲート線が垂直方向に延びており(したがって、行方向の基準アレイ1102が、制御ゲート線1103に直交する)、消去ゲート線1104などの消去ゲート線が水平方向に延びている。ここで、VMMアレイ1100への入力は、制御ゲート線(CG0、CG1、CG2、CG3)に提供され、VMMアレイ1100の出力はソース線(SL0、SL1)に現れる。一実施形態では、偶数行のみが使用され、別の実施形態では、奇数行のみが使用される。各ソース線(それぞれSL0、SL1)に加えられる電流は、その特定のソース線に接続されたメモリセルからの全ての電流の合計関数を実行する。
ニューラルネットワークについて本明細書に記載されているように、VMMアレイ1100の不揮発性メモリセル、すなわちVMMアレイ1100のフラッシュメモリは、サブスレッショルド領域で動作するように構成されることが好ましい。
本明細書に記載される不揮発性基準メモリセル及び不揮発性メモリセルは、以下のように弱い反転でバイアスされる:
Ids=Io*(Vg-Vth)/nVt=w*Io*(Vg)/nVt
式中、w=e(-Vth)/nVtであり、
式中、Vgは、メモリセル上のゲート電圧であり、Vthは、メモリセルの閾値電圧であり、Vtは、熱電圧=k*T/qであり、kはボルツマン定数であり、T温度はケルビンであり、qは電子電荷であり、nは、勾配係数=1+(Cdep/Cox)であり、式中、Cdep=空乏層の容量であり、Coxは、ゲート酸化物層の容量であり、Ioは、閾値電圧に等しいゲート電圧におけるメモリセル電流である。Ioは、(Wt/L)**Cox*(n-1)*Vt2に比例し、式中、uはキャリア移動性であり、Wt及びLは、それぞれメモリセルの幅及び長さである。
メモリセル(基準メモリセル又は周辺メモリセルなど)又はトランジスタを使用して入力電流を入力電圧に変換するI-Vログ変換器を使用した場合:
Vg=n*Vt*log[Ids/wp*Io]
式中、wpは、基準又は周辺メモリセルのwである。
ベクトル行列乗算器VMMアレイとして使用されるメモリアレイについて、出力電流は以下である:
Iout=wa*Io*(Vg)/nVt、すなわち
Iout=(wa/wp)*Iin=W*Iin
W=e(Vthp-Vtha)/nVt
式中、メモリアレイの各メモリセルのwa=wである。
ワード線又は制御ゲートは、入力電圧のためのメモリセルの入力として使用することができる。
あるいは、本明細書に記載されたVMMアレイのフラッシュメモリセルは、線形領域で動作するように構成することができる。
Ids=β*(Vgs-Vth)*Vds、β=u*Cox*Wt/L、
式中、Wt及びLは、トランジスタのそれぞれの幅及び長さである。
W=α(Vgs-Vth)、
すなわち、重みWは(Vgs-Vth)に比例する。
ワード線又は制御ゲート又はビット線又はソース線は、線形領域内で動作するメモリセルの入力として使用することができる。ビット線又はソース線は、メモリセルの出力として使用することができる。
I-V線形変換器用に、線形領域で動作するメモリセル(基準メモリセル又は周辺メモリセルなど)若しくはトランジスタ、又は抵抗器を使用して、入出力電流を入出力電圧に線形変換することができる。
あるいは、本明細書に記載されたVMMアレイのフラッシュメモリセルは、飽和領域で動作するように構成することができる。
Ids=1/2*β*(Vgs-Vth)2、β=u*Cox*Wt/L
W=α(Vgs-Vth)2、すなわち重みWは(Vgs-Vth)2に比例する。
ワード線、制御ゲート、又は消去ゲートは、飽和領域内で動作するメモリセルの入力として使用することができる。ビット線又はソース線は、出力ニューロンの出力として使用することができる。
あるいは、本明細書に記載されるVMMアレイのフラッシュメモリセルは、全ての領域又はそれらの組み合わせ(サブスレッショルド、線形、又は飽和)で使用することができる。
図9のVMMアレイ32のための他の実施形態は、参照により本明細書に組み込まれる米国特許出願第15/826,345号に記載されている。上記出願に記載されているように、ソース線又はビット線は、ニューロン出力(電流和出力)として使用することができる。
図12は、図2に示されるメモリセル210に特に適したニューロンVMMアレイ1200を示し、入力層と次の層との間のシナプスとして利用される。VMMアレイ1200は、不揮発性メモリセルのメモリアレイ1203と、第1の不揮発性基準メモリセルの基準アレイ1201と、第2の不揮発性基準メモリセルの基準アレイ1202と、を含む。アレイの列方向に配置された基準アレイ1201及び1202は、端子BLR0、BLR1、BLR2、及びBLR3に流入する電流入力を電圧入力WL0、WL1、WL2、及びWL3に変換するように機能する。実際には、第1及び第2の不揮発性基準メモリセルは、電流入力が流入する状態で、マルチプレクサ1214(一部のみ示す)を通してダイオード接続される。基準セルは、標的基準レベルに調整(例えば、プログラム)される。標的基準レベルは、基準ミニアレイマトリックス(図示せず)によって提供される。
メモリアレイ1203は、2つの目的を果たす。第1に、VMMアレイ1200により使用される重みを、それぞれのメモリセルに格納する。第2に、メモリアレイ1203は、メモリセルアレイ1203に格納された重みによって、入力(すなわち、端子BLR0、BLR1、BLR2、及びBLR3に提供された電流入力であり、これを基準アレイ1201及び1202が入力電圧に変換して、ワード線WL0、WL1、WL2、及びWL3に供給する)を有効に乗算して、次いで、全ての結果(メモリセル電流)を加算して、それぞれのビット線(BL0~BLN)の出力を生成し、この出力は次の層への入力又は最後の層への入力となる。メモリアレイ1203が乗算及び加算の関数を実行することで、別個の乗算及び加算の論理回路の必要性はなくなり、また、電力効率も良い。ここで、電圧入力はワード線WL0、WL1、WL2、及びWL3に提供され、出力は、読み出し(推論)動作中にビット線BL0~BLNそれぞれに現れる。各々のビット線BL0~BLNに配置された電流は、その特定のビット線に接続された全ての不揮発性メモリセルからの電流の合計関数を実行する。
表5は、VMMアレイ1200の動作電圧を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルのソース線、及び非選択セルのソース線に加えられる電圧を示し、FLTは、浮遊、すなわち電圧が印可されないことを示す。行は、読み出し、消去、及びプログラムの各動作を示す。
表5:図12のVMMアレイ1200の動作
Figure 2022531766000006
図13は、図2に示されるメモリセル210に特に適し、入力層と次の層との間でシナプス及びニューロンの一部として利用されるニューロンVMMアレイ1300を示す。VMMアレイ1300は、不揮発性メモリセルのメモリアレイ1303と、第1の不揮発性基準メモリセルの基準アレイ1301と、第2の不揮発性基準メモリセルの基準アレイ1302と、を含む。基準アレイ1301及び1302は、VMMアレイ1300の行方向に延びる。VMMアレイは、VMMアレイ1300においてワード線が垂直方向に延びることを除いて、VMM 1100と同様である。ここで、入力はワード線(WLA0、WLB0、WLA1、WLB2、WLA2、WLB2、WLA3、WLB3)に提供され、出力は、読み出し動作中にソース線(SL0、SL1)に現れる。各ソース線に加えられる電流は、その特定のソース線に接続されたメモリセルからの全ての電流の合計関数を実行する。
表6は、VMMアレイ1300の動作電圧を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルのソース線、及び非選択セルのソース線に加えられる電圧を示す。行は、読み出し、消去、及びプログラムの各動作を示す。
表6:図13のVMMアレイ1300の動作
Figure 2022531766000007
図14は、図3に示されるメモリセル310に特に適し、入力層と次の層との間でシナプス及びニューロンの一部として利用されるニューロンVMMアレイ1400を示す。VMMアレイ1400は、不揮発性メモリセルのメモリアレイ1403と、第1の不揮発性基準メモリセルの基準アレイ1401と、第2の不揮発性基準メモリセルの基準アレイ1402と、を含む。基準アレイ1401及び1402は、端子BLR0、BLR1、BLR2、及びBLR3に流入する電流入力を電圧入力CG0、CG1、CG2、及びCG3に変換するように機能する。実際には、第1及び第2の不揮発性基準メモリセルは、電流入力がBLR0、BLR1、BLR2、及びBLR3を通って流入する状態で、マルチプレクサ1412(一部のみ示す)を通してダイオード接続される。マルチプレクサ1412は、読み出し動作中に第1及び第2の不揮発性基準メモリセルの各々のビット線(BLR0など)の一定電圧を確実にするために、それぞれのマルチプレクサ1405及びカスコーディングトランジスタ1404を各々含む。基準セルは、標的基準レベルに調整される。
メモリアレイ1403は、2つの目的を果たす。第1に、VMMアレイ1400によって使用される重みを格納する。第2に、メモリアレイ1403は、メモリセルアレイに格納された重みによって、入力(端子BLR0、BLR1、BLR2、及びBLR3に提供された電流入力であり、基準アレイ1401及び1402がこれらの電流入力を入力電圧に変換して、制御ゲートCG0、CG1、CG2、及びCG3に供給する)を有効に乗算して、次いで、全ての結果(セル電流)を加算して出力を生成し、この出力はBL0~BLNに出現し、次の層への入力又は最後の層への入力となる。メモリアレイが乗算及び加算の関数を実行することで、別個の乗算及び加算の論理回路の必要性がなくなり、また、電力効率も良い。ここで、入力は制御ゲート線(CG0、CG1、CG2、及びCG3)に提供され、出力は、読み出し動作中にビット線(BL0~BLN)に現れる。各ビット線に加えられる電流は、その特定のビット線に接続されたメモリセルからの全ての電流の合計関数を実行する。
VMMアレイ1400は、メモリアレイ1403内の不揮発性メモリセルの一方向調整を実施する。すなわち、各不揮発性メモリセルは消去され、次いで、浮遊ゲート上の所望の電荷に達するまで部分的にプログラムされる。これは、例えば、以下に記載される精密プログラミング技術を使用して実行することができる。過度に多くの電荷が浮遊ゲートに加えられる場合(誤った値がセルに格納されるなど)、セルは消去されなければならず、一連の部分的なプログラミング動作をやり直さなければならない。示されるように、同じ消去ゲート(EG0又はEG1など)を共有する2つの行は、一緒に消去される必要があり(ページ消去として知られる)、その後、各セルは、浮遊ゲート上の所望の電荷に達するまで部分的にプログラムされる。
表7は、VMMアレイ1400の動作電圧を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルの制御ゲート、選択セルと同じセクタ内の非選択セルの制御ゲート、選択セルとは異なるセクタ内の非選択セルの制御ゲート、選択セルの消去ゲート、非選択セルの消去ゲート、選択セルのソース線、及び非選択セルのソース線に加えられる電圧を示す。行は、読み出し、消去、及びプログラムの各動作を示す。
表7:図14のVMMアレイ1400の動作
Figure 2022531766000008
図15は、図3に示されるメモリセル310に特に適し、入力層と次の層との間でシナプス及びニューロンの一部として利用されるニューロンVMMアレイ1500を示す。VMMアレイ1500は、不揮発性メモリセルのメモリアレイ1503と、基準アレイ1501又は第1の不揮発性基準メモリセルと、第2の不揮発性基準メモリセルの基準アレイ1502とを含む。EG線EGR0、EG0、EG1、及びEGR1は垂直に延び、CG線CG0、CG1、CG2、及びCG3並びにSL線WL0、WL1、WL2、及びWL3は水平に延びる。VMMアレイ1500は、VMMアレイ1500が双方向調整を実装することを除いてVMMアレイ1400と同様であり、個々のセルはそれぞれ、個別のEG線の使用により、浮遊ゲートの所望の電荷量に達するために、完全に消去され、部分的にプログラムされ、必要に応じて部分的に消去することができる。示されるように、基準アレイ1501及び1502は、端子BLR0、BLR1、BLR2及びBLR3内の入力電流を制御ゲート電圧CG0、CG1、CG2及びCG3に変換し(マルチプレクサ1514を介したダイオード接続された基準セルの作用を通じて)、これらの電圧は行方向でメモリセルに印加される。電流出力(ニューロン)は、ビット線BL0~BLN中にあり、各ビット線は、その特定のビット線に接続された不揮発性メモリセルからの全ての電流を合計する。
表8は、VMMアレイ1500の動作電圧を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルの制御ゲート、選択セルと同じセクタ内の非選択セルの制御ゲート、選択セルとは異なるセクタ内の非選択セルの制御ゲート、選択セルの消去ゲート、非選択セルの消去ゲート、選択セルのソース線、及び非選択セルのソース線に加えられる電圧を示す。行は、読み出し、消去、及びプログラムの各動作を示す。
表8:図15のVMMアレイ1500の動作
Figure 2022531766000009
図24は、図2に示されるメモリセル210に特に適し、入力層と次の層との間でシナプス及びニューロンの一部として利用されるニューロンVMMアレイ2400を示す。VMMアレイ2400では、入力INPUT0、...、INPUTNは、ビット線BL0、...、BLNでそれぞれ受信され、出力OUTPUT1、OUTPUT2、OUTPUT3、及びOUTPUT4は、ソース線SL0、SL1、SL2、及びSL3でそれぞれ生成される。
図25は、図2に示されるメモリセル210に特に適し、入力層と次の層との間でシナプス及びニューロンの一部として利用されるニューロンVMMアレイ2500を示す。この例では、入力INPUT0、INPUT1、INPUT2、及びINPUT3は、ソース線SL0、SL1、SL2、及びSL3でそれぞれ受信され、出力OUTPUT0、...、OUTPUTNは、ビット線BL0、...、BLNで生成される。
図26は、図2に示されるメモリセル210に特に適し、入力層と次の層との間でシナプス及びニューロンの一部として利用されるニューロンVMMアレイ2600を示す。この例では、入力INPUT0、...、INPUTMは、ワード線WL0、...、WLMでそれぞれ受信され、出力OUTPUT0、...、OUTPUTNは、ビット線BL0、...、BLNで生成される。
図27は、図3に示されるメモリセル310に特に適し、入力層と次の層との間でシナプス及びニューロンの一部として利用されるニューロンVMMアレイ2700を示す。この例では、入力INPUT0、...、INPUTMは、ワード線WL0、...、WLMでそれぞれ受信され、出力OUTPUT0、...、OUTPUTNは、ビット線BL0、...、BLNで生成される。
図28は、図4に示されるメモリセル410に特に適し、入力層と次の層との間でシナプス及びニューロンの一部として利用されるニューロンVMMアレイ2800を示す。この例では、入力INPUT0、...、INPUTnがそれぞれ垂直制御ゲート線CG0、...、CGNに受信され、出力OUTPUT1及びOUTPUT2がソース線SL0及びSL1に生成される。
図29は、図4に示されるメモリセル410に特に適し、入力層と次の層との間でシナプス及びニューロンの一部として利用されるニューロンVMMアレイ2900を示す。この例では、入力INPUT0、...、INPUTNは、ビット線BL0、...、BLNにそれぞれ結合されているビット線制御ゲート2901-1、2901-2、...、2901-(N-1)及び2901-Nのゲートにそれぞれ受信される。例示的な出力OUTPUT1及びOUTPUT2が、ソース線SL0及びSL1に生成される。
図30は、図3に示されるメモリセル310、図5に示されるメモリセル510、及び図7に示されるメモリセル710に特に適し、入力層と次の層との間でシナプス及びニューロンの一部として利用されるニューロンVMMアレイ3000を示す。この例では、入力INPUT0、...、INPUTMは、ワード線WL0、...、WLMに受信され、出力OUTPUT0、...、OUTPUTNは、ビット線BL0、...、BLNにそれぞれ生成される。
図31は、図3に示されるメモリセル310、図5に示されるメモリセル510、及び図7に示されるメモリセル710に特に適し、入力層と次の層との間でシナプス及びニューロンの一部として利用されるニューロンVMMアレイ3100を示す。この例では、入力INPUT0、...、INPUTMは、制御ゲート線CG0、...、CGMに受信される。出力OUTPU0、...、OUTPUTNは、垂直ソース線SL0、...、SLNにそれぞれ生成され、それぞれのソース線SLiは、列i内の全てのメモリセルのソース線端子に結合されている。
図32は、図3に示されるメモリセル310、図5に示されるメモリセル510、及び図7に示されるメモリセル710に特に適し、入力層と次の層との間でシナプス及びニューロンの一部として利用されるニューロンVMMアレイ3200を示す。この例では、入力INPUT0、...、INPUTMは、制御ゲート線CG0、...、CGMに受信される。出力OUTPU0、...、OUTPUTNは、垂直ビット線BL0、...、BLNにそれぞれ生成され、それぞれのビット線BLiは、列i内の全てのメモリセルのビット線端子に結合されている。
長・短期メモリ
先行技術は、長・短期メモリ(long short-term memory、LSTM)として知られる概念を含む。LSTMユニットは、しばしば、ニューラルネットワーク内で使用される。LSTMによって、ニューラルネットワークは所定の任意の期間にわたって情報を記憶し、後続の動作においてその情報を使用することができる。従来のLSTMユニットは、セル、入力ゲート、出力ゲート、及び忘却ゲートを含む。3つのゲートは、セル内及びセル外への情報の流れ、及び情報がLSTM内で記憶される期間を調整する。VMMは、LSTMユニットにおいて特に有用である。
図16は、例示的なLSTM1600を示す。この例におけるLSTM1600は、セル1601、1602、1603、及び1604を含む。セル1601は、入力ベクトルx0を受け取り、出力ベクトルh0及びセル状態ベクトルc0を生成する。セル1602は、入力ベクトルx1と、セル1601からの出力ベクトル(隠れ状態)h0と、セル1601からのセル状態c0とを受け取り、出力ベクトルh1とセル状態ベクトルc1とを生成する。セル1603は、入力ベクトルx2と、セル1602からの出力ベクトル(隠れ状態)h1と、セル1602からのセル状態c1とを受け取り、出力ベクトルh2とセル状態ベクトルc2とを生成する。セル1604は、入力ベクトルx3と、セル1603からの出力ベクトル(隠れ状態)h2と、セル1603からのセル状態c2とを受け取り、出力ベクトルh3を生成する。追加のセルも使用可能であり、4つのセルを有するLSTMは、単なる例である。
図17は、図16のセル1601、1602、1603及び1604に使用可能なLSTMセル1700の例示的な実装を示す。LSTMセル1700は、入力ベクトルx(t)と、先行するセルからのセル状態ベクトルc(t-1)と、先行するセルからの出力ベクトルh(t-1)とを受け取り、セル状態ベクトルc(t)及び出力ベクトルh(t)を生成する。
LSTMセル1700は、シグモイド関数デバイス1701、1702、及び1703を含み、各々が0~1の数を適用することで、入力ベクトルの各成分が出力ベクトルに寄与する程度を制御する。LSTMセル1700はまた、入力ベクトルに双曲線正接関数を適用するためのtanhデバイス1704及び1705と、2つのベクトルを乗算するための乗算器デバイス1706、1707、及び1708と、2つのベクトルを加算するための加算器デバイス1709と、を含む。出力ベクトルh(t)は、システム内の次のLSTMセルに提供することができ、又は他の目的でアクセスすることができる。
図18は、LSTMセル1700の一実装例であるLSTMセル1800を示す。読者の便宜のために、LSTMセル1700からの同じ採番方法が、LSTMセル1800で使用される。シグモイド関数デバイス1701、1702、及び1703、並びにtanhデバイス1704は各々、複数のVMMアレイ1801及び活性化回路ブロック1802を含む。したがって、VMMアレイは、特定のニューラルネットワークシステムで使用されるLSTMセルにおいて特に有用であることが理解できる。乗算器デバイス1706、1707、及び1708、並びに加算器デバイス1709は、デジタル方式又はアナログ方式で実装される。活性化関数ブロック1802は、デジタル方式、又はアナログ方式で実装され得る。
LSTMセル1800の代替例(及びLSTMセル1700の実装の別の例)を図19に示す。図19では、シグモイド関数デバイス1701、1702及び1703、並びにtanhデバイス1704は、同じ物理ハードウェア(VMMアレイ1901及び活性化関数ブロック1902)を、時分割多重化された方式で共有する。LSTMセル1900はまた、2つのベクトルを乗算するための乗算器デバイス1903と、2つのベクトルを加算するための加算器デバイス1908と、(活性化回路ブロック1902を含む)tanhデバイス1705と、シグモイド関数ブロック1902から出力される値i(t)を格納するレジスタ1907と、マルチプレクサ1910を介して乗算器デバイス1903から出力される値f(t)*c(t-1)を格納するレジスタ1904と、マルチプレクサ1910を介して乗算器デバイス1903から出力される値i(t)*u(t)を格納するレジスタ1905と、マルチプレクサ1910を介して乗算器デバイス1903から出力される値o(t)*c~(t)を格納する、レジスタ1906と、マルチプレクサ1909と、を含む。
LSTMセル1800が複数のVMMアレイ1801とそれぞれの活性化関数ブロック1802のセットを複数含むのに対し、LSTMセル1900は、LSTMセル1900の実施形態において複数の層を表すために使用されるVMMアレイ1901と活性化関数ブロック1902のセットを1つのみ含む。LSTMセル1900は、LSTMセル1800と比較して、VMM及び活性化関数ブロックのために必要とするスペースは1/4で済むので、LSTM1800よりも必要とするスペースが少ない。
LSTMユニットは典型的には複数のVMMアレイを含み、これらは各々、加算器及び活性化回路ブロック及び高電圧生成ブロックなどの、VMMアレイの外側の特定の回路ブロックによって提供される機能を必要とすることが更に理解できる。各VMMアレイのための別個の回路ブロックを提供することは、半導体デバイス内にかなりの量のスペースを必要とし、幾分非効率的であろう。
ゲート付き回帰型ユニット
アナログVMM実装は、ゲート付き回帰型ユニット(gated recurrent unit、GRU)システムに利用することができる。GRUは、反復ニューラルネットワーク内のゲート機構である。GRUは、GRUセルが一般にLSTMセルよりも少ない構成要素を含むことを除いて、LSTMに類似している。
図20は、例示的なGRU2000を示す。この例におけるGRU2000は、セル2001、2002、2003及び2004を含む。セル2001は入力ベクトルx0を受け取り、出力ベクトルh0を生成する。セル2002は、入力ベクトルx1と、セル2001からの出力ベクトルh0とを受け取り、出力ベクトルh1を生成する。セル2003は、入力ベクトルx2と、セル2002からの出力ベクトル(隠れ状態)h1とを受け取り、出力ベクトルh2を生成する。セル2004は、入力ベクトルx3と、セル2003からの出力ベクトル(隠れ状態)h2とを受け取り、出力ベクトルh3を生成する。追加のセルも使用可能であり、4つのセルを有するGRUは、単なる例である。
図21は、図20のセル2001、2002、2003及び2004に使用可能なGRUセル2100の例示的な実装を示す。GRUセル2100は、入力ベクトルx(t)と、先行するGRUセルからの出力ベクトルh(t-1)とを受け取り、出力ベクトルh(t)を生成する。GRUセル2100は、シグモイド関数デバイス2101及び2102を含み、各々が、出力ベクトルh(t-1)及び入力ベクトルx(t)からの成分に0~1の数を適用する。GRUセル2100はまた、入力ベクトルに双曲線正接関数を適用するためのtanhデバイス2103と、2つのベクトルを乗算するための乗算器デバイス2104、2105及び2106と、2つのベクトルを加算するための加算器デバイス2107と、1から入力を減算して出力を生成するコンプリメンタリデバイス2108とを含む。
図22は、GRUセル2100の一実装例であるGRUセル2200を示す。読者の便宜のために、GRUセル2100からの同じ採番方法が、GRUセル2200で使用される。図22から分かるように、シグモイド関数デバイス2101及び2102、並びにtanhデバイス2103は各々、複数のVMMアレイ2201及び活性化関数ブロック2202を含む。したがって、VMMアレイは、特定のニューラルネットワークシステムで使用されるGRUセルにおいて特に使用されることが理解できる。乗算器デバイス2104、2105、2106、加算器デバイス2107、及びコンプリメンタリデバイス2108は、デジタル方式又はアナログ方式で実装される。活性化関数ブロック2202は、デジタル方式、又はアナログ方式で実装され得る。
GRUセル2200の代替例(及びGRUセル2300の実装の別の例)を図23に示す。図23において、GRUセル2300は、VMMアレイ2301及び活性化関数ブロック2302を使用しており、シグモイド関数として構成された場合には、0~1の数を適用することで、入力ベクトルの各成分が出力ベクトルに寄与する程度を制御する。図23では、シグモイド関数デバイス2101及び2102、並びにtanhデバイス2103は、同じ物理ハードウェア(VMMアレイ2301及び活性化関数ブロック2302)を、時分割多重化された方式で共有する。GRUセル2300はまた、2つのベクトルを乗算するための乗算器デバイス2303と、2つのベクトルを加算するための加算器デバイス2305と、1から入力を減算して出力を生成するためのコンプリメンタリデバイス2309と、マルチプレクサ2304と、マルチプレクサ2304を介して乗算器デバイス2303から出力される値h(t-1)*r(t)を保持するレジスタ2306と、マルチプレクサ2304を介して乗算器デバイス2303から出力される値h(t-1)*z(t)を保持するレジスタ2307と、マルチプレクサ2304を介して乗算器デバイス2303から出力される値h^(t)*(1-z(t))を保持するレジスタ2308と、を含む。
GRUセル2200がVMMアレイ2201と活性化関数ブロック2202のセットを複数含むのに対し、GRUセル2300は、GRUセル2300の実施形態において複数の層を表すために使用されるVMMアレイ2301と活性化関数ブロック2302のセット1つのみを含む。GRUセル2300は、GRUセル2200と比較して、VMM及び活性化関数ブロックのために必要とするスペースは1/3で済むので、GRUセル2200よりも必要とするスペースが少ない。
GRUシステムは典型的には複数のVMMアレイを含み、これらは各々、加算器及び活性化回路ブロック及び高電圧生成ブロックなどの、VMMアレイの外側の特定の回路ブロックによって提供される機能を必要とすることが更に理解できる。各VMMアレイのための別個の回路ブロックを提供することは、半導体デバイス内にかなりの量のスペースを必要とし、幾分非効率的であろう。
VMMアレイへの入力は、アナログレベル、バイナリレベル、又はデジタルビット(この場合、デジタルビットを適切な入力アナログレベルに変換するためにDACが必要とされる)であり、出力はアナログレベル、バイナリレベル、又はデジタルビット(この場合、出力アナログレベルをデジタルビットに変換するために出力ADCが必要とされる)であり得る。
VMMアレイ内のそれぞれのメモリセルに関して、それぞれの重みWは、単一のメモリセルによって、又は差分セルによって、又は2つのブレンドメモリセル(2つのセルの平均)によって実装することができる。差分セルの場合では、重みWを差分重み(W=W+-W-)として実装するために、2つのメモリセルが必要とされる。2つのブレンドメモリセルの場合は、2つのセルの平均として重みWを実装するために2つのメモリセルが必要とされる。
VMMアレイ用の構成可能な入出力システム
図33は、VMMシステム3300を示す。VMMシステム3300は、VMMアレイ3301(VMMアレイ1100、1200、1300、1400、1500、2400、2500、2600、2700、2800、2900、3000 3100、及び3200又は他のVMMアレイ設計など、前述のVMMアレイ設計のいずれかに基づき得る)と、低電圧行デコーダ3302と、高電圧行デコーダ3303と、列デコーダ3304と、列ドライバ3305と、制御論理3306と、バイアス回路3307と、ニューロン出力回路ブロック3308と、入力VMM回路ブロック3309と、アルゴリズムコントローラ3310と、高電圧発生器ブロック3311と、アナログ回路ブロック3315と、制御論理3316と、を含む。
入力回路ブロック3309は、外部入力からメモリアレイ3301の入力端子へのインターフェースとして機能する。入力回路ブロック3309は、限定することなく、DAC(デジタル-アナログ変換器)、DPC(デジタル-パルス変換器)、APC(アナログ-パルス変換器)、IVC(電流-電圧変換器)、AAC(電圧-電圧スケーラなどのアナログ-アナログ変換器)、又はFAC(周波数-アナログ変換器)を含み得る。ニューロン出力ブロック3308は、メモリアレイ出力から外部インターフェース(図示せず)へのインターフェースとして機能する。ニューロン出力ブロック3308は、限定することなく、ADC(アナログ-デジタル変換器)、APC(アナログ-パルス変換器)、DPC(デジタル-パルス変換器)、IVC(電流-電圧変換器)、又はIFC(電流-周波数変換器)を含み得る。ニューロン出力ブロック3308は、限定することなく、アクティブ化機能、正規化回路、及び/又は再スケーリング回路を含んでもよい。
図34は、VMMアレイ3401、3402、3403、及び3404と、高電圧行デコーダ3405及び3406と、低電圧行デコーダ3407及び3408と、入力ブロック3409及び3410(それぞれ、図33の入力ブロック3309と同様)と、出力ブロック3411及び3412と、を含む、VMMシステム3400を示す。この構成では、VMMアレイ3401及び3403は、1組のビット線並びに出力ブロック3411を共有し、VMMアレイ3402及び3404は、1組のビット線並びに出力ブロック3412を共有する。VMMアレイ3401及び3403は、同時に読み出すことができ、それにより、これらのアレイは単一のより大きいアレイへと効果的に組み合わされるが、異なる時間に読み出すこともできる。出力ブロック3411及び3412(図33の出力ブロック3308と同様)は、一度に1つのアレイからの読み出し動作(アレイ3401又は3403からの読み出しのみなど)又は同時に複数のアレイからの読み出し動作(アレイ3401及び3403の両方からの読み出しなど)を処理することができるように構成可能である。
図35Aは、VMMアレイ3503、3504、及び3505と、共有グローバル高電圧行デコーダ3506と、ローカル高電圧行デコーダ3507及び3508と、共有低電圧行デコーダ3509と、入力ブロック3510と、を含む、VMMシステム3500を示す。この構成では、VMMアレイ3503、3504、及び3505は入力ブロック3510を共有する。VMMアレイ3503、3504、及び3505は、入力ブロック3510を介して入力(例えば、ワード線、制御ゲート線、消去ゲート線、又はソース線上の電圧又はパルス)を同時に受け取ることができ、それにより、これらのアレイは単一のより大きいVMMアレイへと効果的に組み合わされるが、入力ブロック3510を介して異なる時間に入力を受け取ることもでき、それにより、これらのアレイは、同じ入力ブロックを有する3つの別個のVMMアレイとして効果的に動作する。入力ブロック3510は、一度に1つのアレイに、又は一度に複数のアレイに入力を提供することができるように構成可能である。
図35Bは、VMMアレイ3511、3512、3513、及び3514と、グローバル高電圧デコーダ3515と、ローカル高電圧行デコーダ3516、3517、及び3518と、共有低電圧行デコーダ3519と、入力ブロック3520と、を含む、VMMシステム3550を示す。この構成では、VMMアレイ3511、3512、3513、及び3514は入力ブロック3520を共有する。VMMアレイ3511、3512、3513、及び3514は、入力ブロック3520を介して入力(例えば、ワード線、制御ゲート線、消去ゲート線、又はソース線上の電圧又はパルス)を同時に受け取ることができ、それによって、それらを単一のより大きいアレイに効果的に組み合わせることになり、又は、入力ブロック3520を介して異なる時間に入力を受け取ることができ、それによって、それらを同じ入力ブロック3520を有する3つの別個のVMMアレイとして効果的に動作させることになる。入力ブロック3520は、一度に1つのアレイに、又は一度に複数のアレイに入力を提供することができるように構成可能である。例えば、図35Aの入力ブロック3510は、3つのアレイへの入力を提供するように構成され、入力ブロック3520は、4つのアレイに対する入力を提供するように構成される。
図36は、水平セット3601及び水平セット3611を含む、VMMシステム3600を示す。水平セット3601は、VMMアレイ3602及び3603と、共有グローバル高電圧行デコーダ3604と、ローカル高電圧行デコーダ3605と、共有低電圧行デコーダ3606と、入力ブロック3607と、を含む。VMMアレイ3602及び3603は、入力ブロック3607を共有する。入力ブロック3607は、一度に1つのアレイに、又は一度に複数のアレイに入力を提供することができるように構成可能である。
水平セット3611は、VMMアレイ3612及び3613と、共有グローバル高電圧デコーダ3614と、ローカル高電圧行デコーダ3615と、共有低電圧行デコーダ3616と、入力ブロック3617と、を含む。VMMアレイ3612及び3613は、入力ブロック3617を共有する。入力ブロック3617は、一度に1つのアレイに、又は一度に複数のアレイに入力を提供することができるように構成可能である。
第1の構成では、水平セット3601は出力ブロック3608及び3609を利用し、水平セット3611は出力ブロック3618及び3619を利用する。出力ブロック3608、3609、3618、及び3619は、出力として電流、デジタルパルス、又はデジタルビットを出力し得る。デジタルビットが出力される一実施形態では、出力ブロック3608、3609、3618、及び3619はそれぞれ8個のデジタル出力ビットを出力する。
第2の構成では、出力ブロック3608及び3609は無効化され、VMMアレイ3602及び3612は出力ブロック3618を共有し、VMMアレイ3603及び3613は出力ブロック3619を共有する。VMMアレイ3602及び3612は、同時に読み出すことができ、それにより、これらのアレイは単一のより大きい垂直アレイ(すなわち、ビット線あたりにより多くの行)へと効果的に組み合わされるが、異なる時間に読み出すこともできる。VMMアレイ3602及び3612が同時に読み出される場合、一実施形態では、それぞれの出力ブロックは、1つのアレイのみに結合されたときに8ビットの範囲の値を出力し、次いで、出力ブロック3608及び3609は、それぞれ9ビットの範囲の値を出力することになる。これは、2つのアレイを単一の大きいアレイとして使用することによって倍増された出力ニューロンのダイナミックレンジに起因する。この場合、次のアレイが8ビットのダイナミックレンジのみを必要とする場合、出力の再スケーリング又は正規化(例えば、9ビットから8ビットまでスケーリングする)が必要になり得る。別の実施形態では、出力ビットの数は、垂直アレイの数を増加させるときに同一に維持され得る。
同様に、VMMアレイ3603及び3613は、同時に読み出すことができ、これにより、それらを単一のより大きいアレイに効果的に組み合わせるか、又は異なる時間に読み出すこともできる。出力ブロック3618及び3619は、一度に1つのアレイから、又は一度に複数のアレイからの読み出し動作を処理することができるように構成可能である。
VMMシステム3400、3500、3550、及び3600では、システムが、それぞれの入力ブロック及び/又は出力ブロックと共に異なる数のアレイを利用するように構成可能である場合、入力ブロック又は出力ブロック自体も構成可能でなければならない。例えば、VMMシステム3600では、出力ブロック3608、3609、3612、及び3619がそれぞれ、単一のアレイに結合されたときに8ビット出力を出力し、次いで、出力ブロック3618及び3619はそれぞれ、2つのアレイ(例えば、それぞれアレイ3602及び3612、並びにアレイ3603及び3609)に結合されたときに、9ビット出力を出力するように構成される必要がある。次いで、それらの出力が別のVMMシステムの入力ブロックに提供される場合、出力は、入力ブロックが9ビット入力の代わりに8ビット入力を予期している場合に最初に正規化される必要がある。Nビット値をMビット値に変換するための多数のアナログ及びデジタル技術が知られている。前述の実施例では、Nは9となり、Mは8となるが、当業者は、N及びMが任意の正の整数であり得ることを理解するであろう。
追加のアレイをVMMシステム3400、3500、3550、及び3600内の入力ブロック及び出力ブロックに結合することができる。例えば、VMMシステム3400では、2つを超えるアレイを入力ブロック3409に結合することができ、2つを超えるアレイを入力ブロック3410に結合することができ、VMMシステム3500では、3つを超えるアレイを入力ブロック3510に結合することができ、VMMシステム3550では、4つを超えるアレイを入力ブロック3520に結合することができ、VMMシステム3600では、2つを超えるアレイを入力ブロック3607に結合することができ、2つを超えるアレイを入力ブロック3617に結合することができ、2つを越えるアレイを出力ブロック3618に結合することができ、2つを超えるアレイを出力ブロック3619に結合することができる。これらの状況では、関連する入力ブロック及び出力ブロックは、追加のアレイを収容するように更に構成される必要がある。
VMMシステム3400内の出力ブロック3411及び3412、並びに出力ブロック3618及び3619は、プログラミング動作後の検証動作のために構成可能である必要があり、検証動作は、出力ブロックに接続されたアレイの数に影響を受けることになる。更に、プログラム/消去検証(調整のため、すなわち、所望のセル電流を生成するためにメモリの浮遊ゲートに特定の電荷を生成するために使用される)については、出力ブロック回路の精度(例えば、10ビット)は、推論読み出しに必要とされる精度(例えば、8ビット)より大きい必要がある。例えば、検証精度は、推論精度よりも1ビット以上、例えば、1~5ビット大きい。これは、限定することなく、検証結果分布、データ保持ドリフト、温度又は変動などのために、1つのレベルと次のレベルとの間の十分なマージンを確保するために必要とされる。
加えて、較正は、出力ブロックに接続されたアレイの数によって影響されるため、図34、図35A、図35B、及び図36の入力ブロック3409、3410、3510、3520、3607、及び3617並びに出力ブロック3411、3412、3608、3609、3618、及び3619は、較正プロセス用に構成可能である必要がある。較正プロセスの例としては、オフセット、漏れ、製造プロセス、及び温度変化による変化を補償するプロセスが挙げられる。
次のセクションでは、入力ブロック及び出力ブロックが、入力ブロック又は出力ブロックに結合されたアレイの数に基づいて構成されることを可能にするために、入力ブロック及び出力ブロックにおいて使用するための様々な調整可能な構成要素が開示される。
入力ブロック及び出力ブロックの構成要素
図37Aは、図34及び図36の出力ブロック3411、3412、3608、3609、3618、及び3619などの出力ブロックに使用され得る積分型二重混合傾斜アナログ-デジタル変換器(ADC)3700を示し、出力ニューロン、INEU3706は、出力ブロックによって受け取られたVMMアレイからの出力電流である。積分型二重混合傾斜アナログ-デジタル変換器(ADC)3700は、INEU3706を一連のデジタル/アナログパルス又はデジタル出力ビットに変換する。図37Bは、図37Aの積分型ADC3700の動作波形を示す。出力波形3710、3711、及び3714は、1つの電流レベルのものである。出力波形3712、3713、及び3715は、別のより高い電流レベルのものである。波形3710及び3712は、出力電流の値に比例するパルス幅を有する。波形3711及び3713は、出力電流の値に比例するパルス数を有する。波形3714及び3715は、出力電流の値に比例するデジタル出力ビットを有する。
一実施形態では、ADC3700は、INEU3706(VMMアレイから出力ブロックによって受け取られたアナログ出力電流である)を、図38中の例に示されるように、ニューロン出力ブロック内のアナログ出力電流の大きさに比例して幅が変化するデジタルパルスに変換する。ADC3700は、積分オペアンプ3701からなる積分器を含み、調整可能な積分コンデンサ3702は、調整可能な基準電流IREF3707に対してINEU3706を積分する。任意選択的に、IREF3707は、0の温度係数、又はニューロン電流INEU3706を追跡する温度係数を有するバンドギャップフィルタ含み得る。後者は、必要に応じて、試験フェーズ中に決定された値を含む基準アレイから得ることができる。初期化フェーズの間、スイッチ3708は閉じられる。次いで、VOUT3703及び演算増幅器3701の負端子への入力は、VREF値に等しくなる。その後、スイッチ3708が開かれ、固定された期間trefの間、スイッチS1が閉じられ、ニューロン電流INEU3706が上方に積分される。一定時間trefの間、Voutは上昇し、ニューロン電流が変化するにつれてその傾きは変化する。その後、期間tmeasの間、一定基準電流IREFは、時間tmeas(Voutが降下する期間)に、スイッチS1を開き、スイッチS2を閉じることによって下方に積分され、tmeasは、VoutをVREFまで下方に積分するために必要とされる時間である。
出力EC3705は、VOUT>VREFVのときに高くなり、そうでなければ低くなる。したがって、EC3705は、幅が期間tmeasを反映するパルスを生成し、tmeasは次に、電流INEU3706(図37Bのパルス3710及び3712)に比例する。
任意選択的に、出力パルスEC3705は、別のVMMアレイの入力ブロックなどの、次の回路の段階への送信のために、均一な期間の一連のパルスに変換することができる。期間tmeasの開始時に、出力EC3705は、基準クロック3741を用いてANDゲート3740に入力される。出力は、VOUT>VREFの期間中、パルス系列3742(パルス系列3742のパルスの周波数はクロック3741の周波数と同じである)になる。パルスの数は、期間tmeasに比例し、期間tmeasは、電流INEU3706(図37Bの波形3711及び3713)に比例する。
任意選択的に、パルス系列3743を、カウンタ3720に入力することができ、カウンタ3720は、パルス系列3742のパルスの数をカウントし、ニューロン電流INEU3706に正比例するパルス系列3742におけるパルスの数のデジタルカウントであるカウント値3721を生成する。カウント値3721は、1組のデジタルビット(図37Bの波形3714及び3715)を含む。
別の実施形態では、積分型二重傾斜ADC3700は、ニューロン電流INEU3706をパルスに変換することができ、パルスの幅は、ニューロン電流INEU3706の大きさに反比例している。この反転は、デジタル又はアナログ方式で行うことができ、後続の回路へ出力するための一連のパルス又はデジタルビットに変換することができる。
調整可能な積分コンデンサ3702及び調整可能な基準電流IREF3707は、積分型二重混合傾斜アナログ-デジタル変換器(ADC)3700に接続されたアレイの数Nに応じて調整される。例えば、N個のアレイが積分型二重混合傾斜アナログ-デジタル変換器(ADC)3700に接続されると、調整可能な積分コンデンサ3702が1/Nによって調整されるか、又は調整可能な基準電流IREF3707がNによって調整される。
任意選択的に、VMMアレイ及びADC3700が動作温度以上である間に較正ステップを実行して、VMMアレイ又は制御回路内に存在する任意の漏れ電流をオフセットすることができ、その後はオフセット値を図37AのIneuから差し引くことができる。較正ステップはまた、温度変動に加えて、プロセス又は電圧供給の変動を補正するために実行することができる。
出力回路ブロックの動作方法は、まず、オフセット及び電圧供給変動補償のための較正を実行することを含む。次に、出力変換を実行し(ニューロン電流をパルス又はデジタルビットに変換するなど)、次いで、出力範囲を次のVMMアレイの入力範囲に揃えるためにデータ正規化を実行する。データ正規化は、データ圧縮又は出力データ量子化を含んでもよい(10ビットから8ビットまでビット数を低減するためなど)。活性化は、出力変換後、又はデータ正規化、圧縮、若しくは量子化後に実行されてもよい。較正アルゴリズムの例は、以下に説明する図49、図50A、図50B、及び図51を参照して以下に説明する。
図39は、任意選択的に使用して、ニューロン出力電流を電圧に変換することができる電流-電圧変換器3900を示し、この電圧は、例えば、VMMメモリアレイの(例えば、WL線又はCG線の)入力として印加され得る。このように、電流-電圧変換器3900は、図34、図35A、図35B、及び図36の入力ブロック3409、3410、3510、3520、3607、及び3617で、これらのブロックが入力としてアナログ電流(パルス又はデジタルデータとは対照的に)を受け取っているときに使用され得る。
電流-電圧変換器3900は、オペアンプ3901、調整可能なコンデンサ3902、スイッチ3903、スイッチ3904、及びここで入力ブロックによって受け取られるニューロン電流INEUを表す電流源3905を含む。電流-電圧動作中、スイッチ3903は開かれ、スイッチ3904は閉じられる。出力Voutは、ニューロン電流INEU3905の大きさに比例して振幅を増加させる。
図40は、任意選択的に使用して、信号DINとして受信されるデジタルデータを電圧に変換することができるデジタルデータ-電圧変換器4000を示し、この電圧は、例えば、VMMメモリアレイの(例えば、WL線又はCG線上の)入力として印加され得る。スイッチ4002が閉じられると、信号DINのデータ入力により、コンデンサ4003へのIREF_u基準電流4001が有効となり、その端子に電圧が発生する。このように、デジタルデータ-電圧変換器4000は、図34、図35A、図35B、及び図36の入力ブロック3409、3410、3510、3520、3607、及び3617で、これらのブロックが入力としてデジタルデータ(パルス又はアナログ電流とは対照的に)を受信しているときに使用され得る。加えて、デジタルデータ-電圧変換器4000は、信号DINとして入力側で受信されたデジタルデータが、スイッチ4002及び4004を開き、スイッチ4005を閉じることによって出力OUTへ直接供給されるように構成され得る。このように、スイッチ4002、4004及び4005は、出力OUTがキャパシタ4003で電圧を受け取るか、又は信号DINとして受信されたデジタルデータを直接受け取ることを可能にするように構成される。図示の実施形態では、信号DINはデータパルスとして受け取られる。
デジタルデータ-電圧パルス変換器4000は、調整可能な基準電流4001、スイッチ4002、可変コンデンサ4003、スイッチ4004、及びスイッチ4005を含む。調整可能な基準電流4001及び可変コンデンサ4003は、デジタルデータ-電圧パルス変換器400が取り付けられるアレイのサイズの差を調整するために、異なる値で構成され得る。動作中、デジタルデータが高いときはいつでもスイッチ4002が閉じるように、デジタルデータはスイッチ4002を制御する。スイッチが閉じると、調整可能な基準電流4001は可変コンデンサ4003を充電する。スイッチ4004は、アレイが読み出される準備ができたときなど、ノードOUTで出力を提供することが所望されるときはいつでも閉じられる。代替的に、スイッチ4004が開かれてもよく、スイッチ4005が閉じられてもよく、データ入力を出力として通過させることができる。
図41は、アナログニューロン電流をデジタルデータに変換するために任意選択的に使用され得る、構成可能なアナログ-デジタル変換器4100を示す。構成可能なアナログ-デジタル変換器4100は、出力ニューロン、INEU4101が出力ブロックによって受け取られる出力電流である、図34及び36の出力ブロック3411、3412、3608、3609、3618、及び3619などの出力ブロックで使用され得る。
構成可能なアナログ-デジタル変換器4100は、電流源4101、可変抵抗器4102、及びアナログ-デジタル変換器4103を含む。電流INEU4101は可変抵抗器4102 Rneuを横切って降下し、電圧Vneu=Ineu*Rneuを生成する。ADC 4103(限定することなく、積分型ADC、SAR ADC、フラッシュADC、又はシグマデルタ型ADCなど)は、この電圧をデジタルビットに変換する。
図42は、任意選択的に使用して、アナログニューロン電流を電圧に変換することができる構成可能な電流-電圧変換器4200を示し、この電圧は、VMMメモリアレイの(例えば、WL線又はCG線の)入力として印加され得る。このように、構成可能な電流-電圧変換器4200は、図34、図35A、図35B、及び図36の入力ブロック3409、3410、3510、3520、3607、及び3617で、これらのブロックが入力としてアナログ電流(パルス又はデジタルデータとは対照的に)を受け取っているときに使用され得る。構成可能な電流-電圧変換器4200は、調整可能な抵抗器Rin4202を含み、入力電流Iin4201(受け取られた入力電流である)を受け取り、Vin4203=Iin*Rinを生成する。
図43A及び図43Bは、入力ブロック、行デコーダ、又は出力ブロック内で使用されるデジタルビット-パルス幅変換器4300を示す。デジタルビット-パルス幅変換器4300から出力されるパルス幅は、デジタルビットの値に比例する。
デジタルビット-パルス幅変換器は、バイナリカウンタ4301を含む。バイナリカウンタ4301の状態Q[N:0]は、ロードシーケンス内のシリアルデータ又はパラレルデータによってロードされ得る。行制御論理4310は、図37の積分型ADCなどのブロックから提供されるデジタルデータ入力の値に比例するパルス幅を有する電圧パルスWLENを出力する。
図43Bは、幅がそのデジタルビット値に比例する出力パルス幅の波形を示す。最初に、受信されたデジタルビット内のデータが反転され、反転されたデジタルビットは、カウンタ4301にシリアル又はパラレルのどちらかでロードされる。次いで、行パルス幅は、最大カウンタ値に達するまで、バイナリ方式でカウントすることによって、波形4320に示されるように行制御論理4310によって生成される。
DINに4ビット値を使用する例を表9に示す。
表9:出力パルス幅へのデジタル入力ビット
Figure 2022531766000010
任意選択的に、パルス系列-パルス変換器を使用して、パルス系列を含む出力を、パルス系列のパルス数に比例して幅が変化する単一パルスに変換して、VMMアレイ内のワード線又は制御ゲートに適用されるVMMアレイへの入力として使用することができる。パルス系列-パルス変換器の例は、制御論理を有するバイナリカウンタである。
別の実施形態は、アップバイナリカウンタ及びデジタル比較論理を利用する。すなわち、出力パルス幅は、バイナリカウンタのデジタル出力がデジタル入力ビットと同じになるまで、アップバイナリカウンタを使用してカウントすることによって生成される。
別の実施形態は、ダウンバイナリカウンタを利用する。最初に、ダウンバイナリカウンタは、デジタルデータ入力パターンとシリアル又はパラレルにロードされる。次に、出力パルス幅は、バイナリカウンタのデジタル出力が最小値、すなわち「0」論理状態に達するまでダウンバイナリカウンタをカウントダウンすることによって生成される。
図44Aは、バイナリ指標パルスステージ4401-iを含むデジタルデータ-パルス行変換器4400を示し、iは、0~N(すなわち、最下位ビットLSBから最上位ビットMSB)の範囲である。行変換器4400は、アレイへの行入力を提供するために使用される。それぞれのステージ4401-iは、ラッチ4402-i、スイッチ4403-i、及び行デジタルバイナリ指標パルス入力4404-i(RDIN_Ti)を含む。例えば、バイナリ指標パルス入力4404-0(RDIN_T0)は、1つの時間単位、すなわち1*tpls1単位に等しいパルス幅を有する。バイナリ指標パルス入力4404-1(RDIN_T1)は、2つの時間単位、すなわち2*tpls1単位に等しい幅を有する。バイナリ指標パルス入力4404-2(RDIN_T2)は、4つの時間単位、すなわち4*tpls1単位に等しい幅を有する。バイナリ指標パルス入力4403-3(RDIN_T3)は、8つの時間単位、すなわち8*tpls1単位に等しい幅を有する。それぞれの行の(ニューロン出力からの)パターンDINiのデジタルデータは、ラッチ4402-iに格納される。ラッチ4402-iの出力Qiが「1」である場合、スイッチ4403-iを介して、バイナリ指標パルス入力4404-i(RDIN_Ti)が時間加算変換器ノード4408に転送される。それぞれの時間加算変換器ノード4408は、NANDゲート4404の対応の入力に接続され、NANDゲート4404の出力は、レベルシフトインバータ4405を介して行変換器WLIN//CGIN4409の出力を生成する。バイナリ指標パルス入力4404-i(RDIN_Ti)は、一度に1つのデジタルビットの逐次的な方法で、例えば、LSBからMSBに、又はMSBからLSBに、又は任意のランダムなビットパターンでイネーブルされるため、時間加算変換器ノード4408は、共通の計時信号CLKに応答して、バイナリ指標パルス入力4404-i(RDIN_Ti)を時間的に順次加算する。
図44Bは、例示的な波形4420を表す。ここでは、行デジタルバイナリ指標パルス入力4404-i、具体的には4404-0、4404-1、4404-2、及び4404-3のための例示的な信号、並びにWL0及びWL3とラベル付けされたレベルシフトインバータ4405からの例示的な出力を示し、WL0及びWL3は、行変換器4400回路から生成されている。この例では、WL0は、その行デコーダの行デジタル入力4403-0及び4403-3がアサートされることによって生成され(WL0:Q0=「1」、Q3=「1」)、WL3は、その行デコーダの行デジタル入力4403-1及び4403-2がアサートされることによって生成される(WL3:Q1=「1」、Q2=「1」)。行デジタル入力4403-xのいずれもアサートされない場合、WL0又はWL3にパルスは存在しない(この制御論理は図44Aには示されていない)。デジタル-パルス行変換器4400の他の行からの入力、すなわち、NANDゲート4404への他の入力は、この期間中に高くなると想定される。
図44Cは、行デジタルバイナリ指標パルス入力4403-i(RDIN_Ti)を生成する行デジタルパルス発生器4410を示し、パルスの幅は、図44Aに関連して上述したように、デジタルビットのバイナリ値に比例している。
図45Aは、電流源4401(受け取られたニューロン電流Ineuを表す)と、スイッチ4402と、可変構成可能コンデンサ4403と、比較器4404であって、Vneuと印された可変構成可能コンデンサ4403にわたって展開される電圧を非反転入力として受け取り、構成可能基準電圧Vreframpを反転入力として受け取り、出力Coutを生成する、比較器4404と、を含む、ランプ型アナログ-デジタル変換器4400を示す。Vreframpは、比較クロックサイクルごとに離散的なレベルでランプアップされる。比較器4404は、VneuをVreframpと比較し、結果として、出力CoutはVneu>Vreframpのときに「1」となり、そうでなければ「0」となる。このように、出力Coutは、Ineuに応答して幅が変化するパルスとなる。Ineuが大きいほどCoutが「1」となる期間は長くなり、その結果、出力Coutのパルス幅は広くなる。デジタルカウンタ4420は、それぞれOT1A及びOT2Aと印された2つの異なるIneu電流について、図45Bに示すように出力Coutのそれぞれのパルスをデジタル出力ビットに変換する。代替的に、ランプ電圧Vreframpは、図45Bのグラフ4450に示される連続ランプ電圧4455である。粗-微細ランプ変換アルゴリズムを利用することによって変換時間を短縮するための、複数ランプの実施形態を図45Cに示す。第1の粗基準ランプ基準電圧4471を、それぞれのIneuの部分範囲を求めるために高速でランプさせる。次に、部分範囲ごとの微細基準ランプ基準電圧4472、すなわちVreframp 1及びVreframp 2をそれぞれ使用して、対応の部分範囲内のIneu電流を変換する。図示のように、微細基準ランプ電圧の2つの部分範囲が存在する。2つ以上の粗/微細ステップ又は2つの部分範囲が可能である。
図52は、図37A及び図45Aの比較器3704及び4404の代わりに任意選択的に使用するための比較器5200を示す。比較器5200は、静的比較器(必ずしもクロック信号を利用しない)又は動的比較器(比較クロック信号を利用する)であり得る。比較器5200が動的比較器である場合、比較器5200は、クロック交差結合インバータ比較器、StrongARM比較器、又は他の既知の動的比較器を含み得る。比較器5200は、粗イネーブル5203がアサートされたときに粗比較器として動作し、比較器5200は、微細イネーブル5204がアサートされたときに微細比較器として動作する。選択信号5206は、粗比較器モード又は精細イネーブルモードを示すために任意選択的に使用することができ、又は、比較器5200を静的比較器又は動的比較器として動作させるために任意選択的に使用することができる。比較器5200が動的比較器として動作する場合、比較器5200はクロック信号5205を受信する。動的比較器として動作しているとき、比較クロック信号5205は、比較器が粗比較器であるとき、第1の周波数の第1のクロック信号となり、クロック信号5205は、比較器が微細比較器であるとき、第1の周波数より大きい第2の周波数の第2のクロック信号となる。比較器5200は、粗比較器として動作するとき、比較器5200が微細比較器として動作する状況と比較して、精度は低く、速度も遅くなるが、使用電力は少なくなる。したがって、粗比較に使用される動的比較器は、低速比較クロックを利用することができ、一方、微細比較に使用される動的比較器は、変換ランピング期間中に高速比較クロックを利用することができる。
比較器5200は、図37A及び図45Aにおける比較器3704及び4404と同様に、基準電圧5202に対してアレイ出力5201を比較し、出力5205を生成する。比較器5200が粗比較器として動作しているとき、基準電圧5202はオフセット電圧であり得る。
図37B及び図45B/図45Cに示されるようなデジタル出力ビットを生成する変換期間中、比較器5200は、粗比較期間中及び微細比較期間中に、それぞれ粗比較器及び微細比較器としての役目を果たし得る。このデジタルアウトビット変換の開始時に、一定の期間にわたって微細又はハイブリッド粗-微細(微細と並行して粗)比較期間が実行される。次に、粗比較期間が実行され、最終的に微細比較が実行されて変換が完了する。
図46は、スイッチ4601、スイッチ4602、サンプルホールド(S/H)回路4603、1ビットアナログ-デジタル変換器(ADC)4604、1ビットデジタル-アナログ変換器(DAC)4605、加算器4606、及び2残差演算増幅器(2xオペアンプ)4607のゲインを含む、アルゴリズム型アナログ-デジタル出力変換器4600を示す。アルゴリズム型アナログ-デジタル出力変換器4600は、アナログ入力Vin並びにスイッチ4602及び4602に適用される制御信号に応答して、変換デジタル出力4608を生成する。アナログ入力Vinで受信された入力(例えば、図45AのVneu)は、スイッチ4602によってS/H回路4603で最初にサンプリングされ、次いでNビットに対してNクロックサイクルで変換が行われる。それぞれの変換クロックサイクルに関して、1ビットADC 4604は、S/H電圧4609を基準電圧(例えば、VREF/2であり、VREFは、Nビットのフルスケール電圧である)と比較し、デジタルビット(例えば、入力<=VREF/2の場合は「0」、入力>VREF/2の場合は「1」)を出力する。デジタル出力信号4608であるこのデジタルビットは、次に、1ビットDAC4605(例えば、VREF/2又は0Vのいずれか)によってアナログ電圧に変換され、加算器4606に供給されてS/H電圧4609から減算される。次いで、2×残差オペアンプ4607は、加算器差電圧出力を増幅して変換残差電圧4610とし、変換残差電圧4610は、次のクロックサイクルのためにスイッチ4601を介してS/H回路4603に供給される。この1ビット(すなわち、2レベル)アルゴリズムADCの代わりに、1.5ビット(すなわち、3レベル)アルゴリズムADCを使用して、ADC 4064及び残差オペアンプ4607などからのオフセットの影響を低減することができる。1.5ビットアルゴリズムADCには、1.5ビット又は2ビット(すなわち、4レベル)DACが必要とされる。
図47Aは、出力ニューロンを表すセル電流をデジタル出力ビットに変換するために、出力ニューロンに適用された逐次比較型(SAR)アナログ-デジタル変換器4700を示す。SAR ADC 4700は、SAR 4701、デジタル-アナログ変換器4702、及び比較器4703を含む。セル電流は、抵抗器を横切って降下されて電圧VCELLを生成することができ、電圧VCELLは、比較器4703の反転入力に印加される。あるいは、セル電流は、サンプルホールドコンデンサを充電して、電圧VCELL(図45Aに示すようなVneuなど)を生成することができる。次いで、二分探索がSAR 4701によって使用されて、MSBビット(最上位ビット)からLSBビット(最下位ビット)までのそれぞれのビットが計算される。SAR 4701からのデジタルビット(DN~D0)に基づいて、適切なアナログ基準電圧を比較器4703に設定するために、DAC 4702が使用される。比較器4703の出力は、次に、SAR 4701にフィードバックされて、比較器4703へのアナログ基準電圧の次のアナログレベルが選択される。図47Bに示されるように、4ビットデジタル出力ビットの例については、4つの評価期間が存在する。第1のパルスでは、範囲の中点で、アナログ基準電圧のアナログレベルを比較器4703に設定することによって、DOUT3を評価し、次いで、第2のパルスでは、範囲の中点から範囲の最大点までの途中又は範囲の中点から範囲の最小点までの途中で、アナログ基準電圧のアナログレベルを比較器4703に設定することによって、DOUT2を評価する。これに更なるステップが続き、それぞれのステップは、比較器4703へのアナログ基準電圧レベルを更に精緻化する。SAR4701の連続出力は、出力デジタルビットである。代替的なSAR ADC回路は、連続比較のために比率基準レベルを連続的に生成するために、1つの基準レベル及び局所SC比のみを有するスイッチドキャップ(SC)回路である。
図48は、セル電流4806(ICELL又はIneu)をデジタル出力ビット4807に変換するために出力ニューロンに適用されるシグマデルタ型アナログ-デジタル変換器4800を示す。オペアンプ4801及び構成可能コンデンサ4805(Cint)を含む積分器は、セル電流4806からの電流の合計と、デジタル出力4807を電流に変換する1ビット電流DAC4804から得られる構成可能基準電流とを積分する。比較器4802は、比較器4801からの積分出力電圧Vintを基準電圧VREF2と比較し、比較器4802の出力は、クロックドDFF4803のD入力に供給される。クロックドDFF4803は、比較器4802の出力に応じてデジタル出力ストリーム4807を提供する。デジタル出力ストリーム4807は、デジタル出力ビット4807として出力される前にデジタルフィルタに供給されてもよい。クロックドDFF4803のクロック周期は、異なるIneu範囲に対して構成可能である。
次に、較正方法4900、5010、5020、及び5100について、図49、図50A、図50B、及び図51をそれぞれ参照して説明する。方法4900、5010、5020、及び5100は、漏れ及び/又はオフセットを補償する。漏れは、アレイの漏れ及び回路の漏れのうちの1つ以上を含み得る。アレイの漏れは、メモリセルの漏れ並びにデコード回路及び列書き込み回路のうちの1つ以上からの漏れのうちの1つ以上を含み得る。オフセットは、アレイのオフセット及び回路のオフセットのうちの1つ以上を含み得る。アレイのオフセットは、メモリセル容量及びセル接合容量のうちの1つ以上に起因するアレイ変動からのオフセットを含み得る。回路のオフセットは、デコード回路及び列書き込み回路のうちの1つ以上からのオフセットを含み得る。
図49は、漏れ及び/又はオフセットを補償するための較正方法4900を示す。漏れ及び/又はオフセット較正ステップが実行される(ステップ4901)。漏れ及び/又はオフセットが測定され、測定された量は、漏れ値及び/又はオフセット値として格納される(ステップ4902)。LSBは、式:LSB=漏れ値及び/又はオフセット値+deltaLminを用いて決定される。任意選択的に、deltaLMinは、プロセス、温度、ノイズ、又は使用劣化によるレベル間の変動を補償し、レベル間の分離が適切であることを確実にする電流値である。deltaLminは、任意選択的に、サンプルデータ特性から決定され得る。(ステップ4903)。MSBは、式:MSB=LSB+(N-1)*deltaLを用いて決定され、式中、Nは、レベルの数であり、deltaLは、2つの連続するレベル間の平均又は理想差に等しいデルタレベル量である。(ステップ4904)。一実施形態では、DeltaLはLSBに等しい。別の実施形態では、DeltaLは、サンプルデータ特性から決定される。DeltaLは、連続したレベルの異なる対について、均一又は不均一な値を有してもよい。
例えば、6ビットメモリセルについては、64レベルの電流が存在し、それぞれのレベルは、ニューラルネットワークアプリケーションにおける重量に関連し、N=64である。較正中、及び測定ステップ中に、このステップで最小オフセット電流を注入して、ベースライン値を作ってもよい。
表10は、4ビットセルの例示的な値を含む。
表10:4ビットセル(16レベル)の例示的なレベル:
Figure 2022531766000011
図50A及び図50Bは、リアルタイム較正方法5010及びバックグラウンド較正方法5020のうちの1つ以上を含む較正方法5000を示す。
リアルタイム較正方法5010では、漏れ及び/又はオフセットを測定し、漏れ値及び/又はオフセット値として測定値を格納するステップを含む、漏れ及び/又はオフセット較正が実行される(ステップ5011)。LSBは、式:LSBレベル=漏れ値及び/又はオフセット値+deltaLminを用いて決定される。(ステップ5012)。MSBは、式:MSB=LSB+(N-1)*deltaLを用いて決定され、式中、Nは、レベルの数である(ステップ5013)。図49のようなdeltaLmin及びdeltaLの説明は、図50Aにおいても同様に適用される。数値例は以下の通りである:漏れ及びオフセット=200pA、deltaLmin=300pA、LSB=500pA、deltaL=400pA、N=16、次いでMSB=500pA+(16-1)*400pA=6500pA。
バックグラウンド較正方法5020では、オフセット値及び/又は漏れ値+温度データは、ヒューズ(例えば、オフセット及び/又は漏れと温度とのルックアップテーブル)に格納される(ステップ5021)。これは、バックグラウンド較正ステップにおいて、1回又は周期的に行われる。オフセット値及び/又は漏れ値+温度データが呼び出される(ステップ5022)。オフセット値及び/又は漏れ値に対する温度調整は、ルックアップテーブルごとに又はデバイストランジスタ方程式によって実行される(ステップ5023)。次いで、LSBは、式:LSBレベル=オフセット値及び/又は漏れ値+deltaLminを用いて決定される(ステップ5024)。MSBは、式:MSB=LSB+(N-1)*deltaLを用いて決定される(ステップ5025)。図49に関するdeltaLmin及びdeltaLの説明は、図50Bにおいても同様に適用される。温度調整は、ルックアップテーブルによって行われるか、又はデバイス方程式(例えば、サブスレッショルド、線形、又は飽和方程式)から外挿され得る。
図51Aは、自動漏れ及び/又はオフセット解除5100を用いた較正及び変換方法を示す。漏れ及び/又はオフセット較正が実行される(ステップ5101)。漏れ及び/又はオフセットは、ADC変換などによって測定され、測定されたデジタル出力はカウンタに格納される(ステップ5102)。ニューロン出力の変換がイネーブルされ、カウンタがゼロに達する(カウンタに初期に格納された漏れ及び/又はオフセットを補償する)までカウンタでカウントダウンが実行され、次いでデジタル出力ビットに対してカウントアップが実行される(ステップ5103)。
図51Bは、方法5100の変形である、自動漏れ及び/又はオフセット解除を用いた較正及び変換方法5110を示す。漏れ及び/又はオフセット較正が実行される(ステップ5111)。漏れ及び/又はオフセットは、ADC変換などによって測定され、測定されたデジタル出力はレジスタに格納される(ステップ5112)。ニューロン出力の変換がイネーブルされ、デジタル出力ビットに対してカウントアップが実行され、次いで、格納されたデジタル出力が減算される(ステップ5113)。
本明細書で使用される場合、「の上方に(over)」及び「に(on)」という用語は両方とも、「の上に直接」(中間材料、要素、又は間隙がそれらの間に配設されていない)、及び「の上に間接的に」(中間材料、要素、又は間隙がそれらの間に配設されている)を包括的に含むことに留意されるべきである。同様に、「隣接した」という用語は、「直接隣接した」(中間材料、要素、又は間隙がそれらの間に配設されていない)、及び「間接的に隣接した」(中間材料、要素、又は間隙がそれらの間に配設されている)を含み、「に取り付けられた」は、「に直接取り付けられた」(中間材料、要素、又は間隙がそれらの間に配設されていない)、及び「に間接的に取り付けられた」(中間材料、要素、又は間隙がそれらの間に配設されている)を含み、「電気的に結合された」は、「に直接電気的に結合された」(要素を一緒に電気的に接続する中間材料又は要素がそれらの間にない)、及び「に間接的に電気的に結合された」(要素を一緒に電気的に接続する中間材料又は要素がそれらの間にある)を含む。例えば、要素を「基板の上方に」形成することは、その要素を基板に直接、中間材料/要素をそれらの間に伴わずに形成すること、及びその要素を基板の上に間接的に1つ以上の中間材料/要素をそれらの間に伴って形成することを含み得る。
図46は、スイッチ4601、スイッチ4602、サンプルホールド(S/H)回路4603、1ビットアナログ-デジタル変換器(ADC)4604、1ビットデジタル-アナログ変換器(DAC)4605、加算器4606、及び2残差演算増幅器(2xオペアンプ)4607のゲインを含む、アルゴリズム型アナログ-デジタル出力変換器4600を示す。アルゴリズム型アナログ-デジタル出力変換器4600は、アナログ入力Vin並びにスイッチ460及び4602に適用される制御信号に応答して、変換デジタル出力4608を生成する。アナログ入力Vinで受信された入力(例えば、図45AのVneu)は、スイッチ4602によってS/H回路4603で最初にサンプリングされ、次いでNビットに対してNクロックサイクルで変換が行われる。それぞれの変換クロックサイクルに関して、1ビットADC 4604は、S/H電圧4609を基準電圧(例えば、VREF/2であり、VREFは、Nビットのフルスケール電圧である)と比較し、デジタルビット(例えば、入力<=VREF/2の場合は「0」、入力>VREF/2の場合は「1」)を出力する。デジタル出力信号4608であるこのデジタルビットは、次に、1ビットDAC4605(例えば、VREF/2又は0Vのいずれか)によってアナログ電圧に変換され、加算器4606に供給されてS/H電圧4609から減算される。次いで、2×残差オペアンプ4607は、加算器差電圧出力を増幅して変換残差電圧4610とし、変換残差電圧4610は、次のクロックサイクルのためにスイッチ4601を介してS/H回路4603に供給される。この1ビット(すなわち、2レベル)アルゴリズムADCの代わりに、1.5ビット(すなわち、3レベル)アルゴリズムADCを使用して、ADC 4064及び残差オペアンプ4607などからのオフセットの影響を低減することができる。1.5ビットアルゴリズムADCには、1.5ビット又は2ビット(すなわち、4レベル)DACが必要とされる。

Claims (44)

  1. アナログニューラルメモリセル用の出力回路ブロックを動作させる方法であって、
    漏れ及び/又はオフセットを測定するステップと、
    前記測定された量を第1の値として格納するステップと、
    下記式(1)を使用して、メモリセルの最下位ビット(LSB)を決定するステップと、を含む、方法。
    式(1):LSB=次のレベルに切り上げられた前記第1の値
  2. 下記式(2)を使用して、メモリセル範囲の最上位ビット(MSB)を決定するステップを更に含み、式中、Nは、レベルの総数であり、前記デルタレベル量は、2つの連続するレベル間の差である、請求項1に記載の方法。
    式(2):MSB=LSB+(N-1)*デルタレベル量
  3. 前記デルタレベル量は前記LSBに等しい、請求項2に記載の方法。
  4. 前記デルタレベルは所定である、請求項2に記載の方法。
  5. 前記LSBはデルタLSB量を含む、請求項2に記載の方法。
  6. 前記漏れは、アレイの漏れ及び回路の漏れのうちの1つ以上を含む、請求項2に記載の方法。
  7. 前記アレイの漏れは、メモリセルの漏れ並びにデコード回路及び列書き込み回路のうちの1つ以上からの漏れのうちの1つ以上を含む、請求項6に記載の方法。
  8. 前記オフセットは、アレイのオフセット及び回路のオフセットのうちの1つ以上を含む、請求項2に記載の方法。
  9. 前記アレイのオフセットは、読み出し専用メモリセル容量及びセル接合のうちの1つ以上に起因するアレイ変動からのオフセットを含む、請求項8に記載の方法。
  10. 前記回路のオフセットは、デコード回路及び列書き込み回路のうちの1つ以上からのオフセットを含む、請求項8に記載の方法。
  11. 前記メモリセルは分割ゲートメモリセルである、請求項2に記載の方法。
  12. 前記測定ステップは、アナログ-デジタル変換器を含む出力ブロックによって実行される、請求項2に記載の方法。
  13. 前記LSBを決定するステップと、前記MSBを決定するステップは、出力ブロックによって実行される、請求項2に記載の方法。
  14. 前記アナログ-デジタル変換器は、積分型アナログ-デジタル変換器である、請求項12に記載の方法。
  15. 前記測定するステップは、アナログ-デジタル変換を実行することを含み、前記格納するステップは、デジタル出力をカウンタに格納することを含む、請求項2に記載の方法。
  16. 前記カウンタがゼロに達するまで、格納された前記デジタル出力をカウントダウンするステップと、
    前記出力回路ブロックで受け取られたデジタルビットをカウントアップするステップと、を更に含む、請求項15に記載の方法。
  17. アナログニューラルメモリセル用の出力回路ブロックを動作させる方法であって、
    オフセット又は漏れを測定し、前記測定された量を第1の値として格納するステップと、
    前記第1の値を呼び出すステップと、
    温度調整を実行するステップと、
    下記式(1)を使用して、メモリセル範囲の最下位ビット(LSB)を決定するステップと、を含む、方法。
    式(1):LSB=次のレベルに切り上げられた前記第1の値
  18. 下記式(2)を使用して、メモリセル範囲の最上位ビット(MSB)を決定するステップを更に含み、式中、Nは、全レベルの数であり、前記デルタレベル量は、2つの連続するレベル間の差である、請求項17に記載の方法。
    式(2):MSB=LSB+(N-1)*デルタレベル量
  19. 前記デルタレベル量は前記LSBに等しい、請求項18に記載の方法。
  20. 前記デルタレベル量は所定である、請求項18に記載の方法。
  21. 前記LSBはデルタLSB量を含む、請求項18に記載の方法。
  22. 前記漏れは、アレイの漏れ及び回路の漏れのうちの1つ以上を含む、請求項17に記載の方法。
  23. 前記アレイの漏れは、メモリセルの漏れ並びにデコード回路及び列書き込み回路のうちの1つ以上からの漏れのうちの1つ以上を含む、請求項22に記載の方法。
  24. 前記オフセットは、アレイのオフセット及び回路のオフセットのうちの1つ以上を含む、請求項17に記載の方法。
  25. 前記アレイのオフセットは、読み出し専用メモリセル容量及びセル接合のうちの1つ以上に起因するアレイ変動からのオフセットを含む、請求項24に記載の方法。
  26. 前記回路のオフセットは、デコード回路及び列書き込み回路のうちの1つ以上からのオフセットを含む、請求項24に記載の方法。
  27. 前記メモリセルは分割ゲートメモリセルである、請求項17に記載の方法。
  28. 前記測定するステップは、アナログ-デジタル変換器を含む出力ブロックによって実行される、請求項17に記載の方法。
  29. 前記LSBを決定するステップと、前記MSBを決定するステップは、前記出力ブロックによって実行される、請求項17に記載の方法。
  30. 前記アナログ-デジタル変換器は、積分型アナログ-デジタル変換器である、請求項28に記載の方法。
  31. アナログニューラルメモリセルのアレイに結合された出力回路ブロックから出力を生成する間に、漏れ又はオフセットを補償する方法であって、
    アナログ-デジタル変換器を使用してデジタルの漏れ値又はオフセット値を生成して、前記出力回路ブロック値の漏れ又はオフセットを測定するステップと、
    前記デジタルの漏れ値又はオフセット値を第1の値としてカウンタに格納するステップと、
    前記漏れ又は前記オフセットを補償するステップと、を含む、方法。
  32. 前記出力回路ブロックの出力を測定することによる前記補償は、前記カウンタがゼロに達するまで、前記格納された第1の値からカウントダウンし、次いで、カウントアップして前記出力を生成することによって前記カウンタを使用する、請求項31に記載の方法。
  33. 前記出力回路ブロックの出力を測定することによる前記補償は、前記カウンタを使用し、次いで、格納された前記第1の値から前記出力を減算して前記出力を生成する、請求項31に記載の方法。
  34. 前記アナログ-デジタル変換器は、積分型アナログ-デジタル変換器を含む、請求項31に記載の方法。
  35. 前記アナログ-デジタル変換器は、ランプ型アナログ-デジタル変換器を含む、請求項34に記載の方法。
  36. 前記アナログ-デジタル変換器は、アルゴリズム型アナログ-デジタル変換器を含む、請求項31に記載の方法。
  37. 前記アナログ-デジタル変換器は、シグマデルタ型アナログ-デジタル変換器を含む、請求項31に記載の方法。
  38. 前記アナログ-デジタル変換器は、逐次比較型アナログ-デジタル変換器を含む、請求項31に記載の方法。
  39. 前記システムは、
    前記出力を電圧に変換するためのデジタルデータ-電圧変換器を更に含む、請求項31に記載の方法。
  40. 前記システムは、
    前記出力を1つ以上のパルスに変換するためのデジタルデータ-パルス幅変換器を更に含み、前記1つ以上のパルスの幅は、前記デジタルデータの前記値に比例する、請求項31に記載の方法。
  41. 前記アナログニューラルメモリセルは、スプリットゲートフラッシュメモリセルである、請求項31に記載の方法。
  42. 前記アナログニューラルメモリセルは、積層ゲートフラッシュメモリセルである、請求項31に記載の方法。
  43. 前記出力回路ブロックによって、温度を補償するための較正を実行するステップを更に含む、請求項31に記載の方法。
  44. 前記出力回路ブロックによって、プロセス又は電圧供給の変動を補償するための較正を実行するステップを更に含む、請求項31に記載の方法。
JP2021564790A 2019-05-02 2019-11-18 深層学習人工ニューラルネットワークにおけるアナログニューラルメモリ用の出力アレイニューロンの変換及び較正 Pending JP2022531766A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962842279P 2019-05-02 2019-05-02
US62/842,279 2019-05-02
US16/449,205 US20200349422A1 (en) 2019-05-02 2019-06-21 Output array neuron conversion and calibration for analog neural memory in deep learning artificial neural network
US16/449,205 2019-06-21
PCT/US2019/062073 WO2020222869A1 (en) 2019-05-02 2019-11-18 Output array neuron conversion and calibration for analog neural memory in deep learning artificial neural network

Publications (1)

Publication Number Publication Date
JP2022531766A true JP2022531766A (ja) 2022-07-11

Family

ID=73015948

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2021564789A Active JP7308290B2 (ja) 2019-05-02 2019-11-18 深層学習人工ニューラルネットワークにおけるアナログニューラルメモリのための構成可能な入力ブロック及び出力ブロック、並びに物理的レイアウト
JP2021564790A Pending JP2022531766A (ja) 2019-05-02 2019-11-18 深層学習人工ニューラルネットワークにおけるアナログニューラルメモリ用の出力アレイニューロンの変換及び較正
JP2023109273A Pending JP2023139013A (ja) 2019-05-02 2023-07-03 深層学習人工ニューラルネットワークにおけるアナログニューラルメモリのための構成可能な入力ブロック及び出力ブロック、並びに物理的レイアウト

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2021564789A Active JP7308290B2 (ja) 2019-05-02 2019-11-18 深層学習人工ニューラルネットワークにおけるアナログニューラルメモリのための構成可能な入力ブロック及び出力ブロック、並びに物理的レイアウト

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2023109273A Pending JP2023139013A (ja) 2019-05-02 2023-07-03 深層学習人工ニューラルネットワークにおけるアナログニューラルメモリのための構成可能な入力ブロック及び出力ブロック、並びに物理的レイアウト

Country Status (7)

Country Link
US (2) US11507642B2 (ja)
EP (2) EP3963513B1 (ja)
JP (3) JP7308290B2 (ja)
KR (2) KR102709575B1 (ja)
CN (2) CN113785311A (ja)
TW (2) TWI805908B (ja)
WO (2) WO2020222868A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10970630B1 (en) * 2017-06-15 2021-04-06 National Technology & Engineering Solutions Of Sandia, Llc Neuromorphic computing architecture with dynamically accessible contexts
US12075618B2 (en) 2018-10-16 2024-08-27 Silicon Storage Technology, Inc. Input and digital output mechanisms for analog neural memory in a deep learning artificial neural network
US20210125049A1 (en) * 2019-10-29 2021-04-29 Taiwan Semiconductor Manufacturing Co., Ltd. System for executing neural network
US11600321B2 (en) 2020-03-05 2023-03-07 Silicon Storage Technology, Inc. Analog neural memory array storing synapsis weights in differential cell pairs in artificial neural network
US11875852B2 (en) 2020-07-06 2024-01-16 Silicon Storage Technology, Inc. Adaptive bias decoder to provide a voltage to a control gate line in an analog neural memory array in artificial neural network
WO2022146468A1 (en) * 2021-01-01 2022-07-07 Silicon Storage Technology, Inc. Digital output mechanisms for analog neural memory in a deep learning artificial neural network
US20220215239A1 (en) * 2021-01-01 2022-07-07 Silicon Storage Technology, Inc. Digital output mechanisms for analog neural memory in a deep learning artificial neural network
US20220230064A1 (en) * 2021-01-20 2022-07-21 Mediatek Singapore Pte. Ltd. Calibration of analog circuits for neural network computing
US11693560B2 (en) * 2021-01-22 2023-07-04 Taiwan Semiconductor Manufacturing Company, Ltd. SRAM-based cell for in-memory computing and hybrid computations/storage memory architecture
US11720784B2 (en) * 2021-04-01 2023-08-08 Mythic, Inc. Systems and methods for enhancing inferential accuracy of an artificial neural network during training on a mixed-signal integrated circuit
US20240242061A1 (en) 2021-05-07 2024-07-18 Blumind Inc. System, method, and computer device for transistor-based neural networks
TWI769875B (zh) * 2021-06-24 2022-07-01 國立中央大學 深度學習網路裝置、其使用的記憶體存取方法與非揮發性儲存媒介
US11989440B2 (en) 2021-08-11 2024-05-21 Silicon Storage Technology, Inc. Hybrid memory system configurable to store neural memory weight data in analog form or digital form
JP2023088730A (ja) * 2021-12-15 2023-06-27 キオクシア株式会社 演算システム
US11756565B2 (en) 2022-01-25 2023-09-12 Blumind Inc. Analog systems and methods for audio feature extraction and natural language processing

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1091604A (ja) * 1996-09-10 1998-04-10 Toshiba Corp 関数学習装置
JPH11163678A (ja) * 1997-12-01 1999-06-18 Matsushita Electric Ind Co Ltd ディジタル信号処理回路
JP2003263624A (ja) * 2002-03-07 2003-09-19 Matsushita Electric Ind Co Ltd ニューラル・ネットワーク装置の学習演算回路
US20080310245A1 (en) * 2007-06-15 2008-12-18 Micron Technology, Inc. Digital filters for semiconductor devices
JP2012504820A (ja) * 2008-09-30 2012-02-23 エルエスアイ コーポレーション 性能要因調整に基づくメモリ・デバイスの軟データ生成の方法および装置
US20170337466A1 (en) * 2016-05-17 2017-11-23 Silicon Storage Technology, Inc. Deep Learning Neural Network Classifier Using Non-volatile Memory Array
JP2018133016A (ja) * 2017-02-17 2018-08-23 株式会社半導体エネルギー研究所 ニューラルネットワークシステム
JP2019028569A (ja) * 2017-07-26 2019-02-21 株式会社東芝 メモリシステム、半導体記憶装置及び信号処理システム
WO2019055182A1 (en) * 2017-09-15 2019-03-21 Silicon Storage Technology, Inc. SYSTEM AND METHOD FOR IMPLEMENTING CONVOLUTE NEURAL NETWORKS CONFIGURABLE WITH FLASH MEMOIRES

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55130229A (en) * 1979-03-30 1980-10-08 Mitsubishi Electric Corp Analog-digital converter
JPS6346581A (ja) * 1986-08-13 1988-02-27 Toshiba Corp 半導体記憶装置
KR940001173B1 (ko) * 1988-08-31 1994-02-16 후지쓰 가부시끼가이샤 뉴로 컴퓨터
US5216746A (en) 1989-02-28 1993-06-01 Fujitsu Limited Error absorbing system in a neuron computer
US5029130A (en) 1990-01-22 1991-07-02 Silicon Storage Technology, Inc. Single transistor non-valatile electrically alterable semiconductor memory device
US5298796A (en) 1992-07-08 1994-03-29 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Nonvolatile programmable neural network synaptic array
KR100370164B1 (ko) * 2000-12-20 2003-01-30 주식회사 하이닉스반도체 비트라인의 누설전류 보상이 가능한 풀업회로
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
US7395287B2 (en) * 2003-12-15 2008-07-01 Micrel, Inc. Numerical value conversion using a saturation limited arithmetic logic unit supporting variable resolution operands
JP2005322198A (ja) 2004-04-07 2005-11-17 Sony Corp データ処理装置
US7129880B2 (en) * 2004-08-09 2006-10-31 Northrop Grumman Corporation Auto-zoom sloped ADC
US7366021B2 (en) * 2005-05-04 2008-04-29 Micron Technology, Inc. Method and apparatus for sensing flash memory using delta sigma modulation
ITTO20070109A1 (it) * 2007-02-14 2008-08-15 St Microelectronics Srl Circuito e metodo di lettura per un dispositivo di memoria non volatile basati sulla generazione adattativa di una grandezza elettrica di riferimento
US7755948B2 (en) * 2008-08-19 2010-07-13 Agere Systems Inc. Process and temperature tolerant non-volatile memory
US7868800B2 (en) * 2008-10-22 2011-01-11 Industrial Technology Research Institute Mixed-signal control apparatus of modulation system
US8473439B2 (en) * 2010-12-08 2013-06-25 International Business Machines Corporation Integrate and fire electronic neurons
TWI530183B (zh) * 2011-12-08 2016-04-11 Sony Corp An imaging element, a control method, and an imaging device
US10217045B2 (en) * 2012-07-16 2019-02-26 Cornell University Computation devices and artificial neurons based on nanoelectromechanical systems
US9164526B2 (en) * 2012-09-27 2015-10-20 Sandisk Technologies Inc. Sigma delta over-sampling charge pump analog-to-digital converter
US8643168B1 (en) * 2012-10-16 2014-02-04 Lattice Semiconductor Corporation Integrated circuit package with input capacitance compensation
US9325321B2 (en) * 2013-03-13 2016-04-26 Microsemi SoC Corporation Background auto-refresh apparatus and method for non-volatile memory array
US9418333B2 (en) * 2013-06-10 2016-08-16 Samsung Electronics Co., Ltd. Synapse array, pulse shaper circuit and neuromorphic system
KR102140787B1 (ko) 2014-07-07 2020-08-03 삼성전자주식회사 저항성 메모리 장치, 저항성 메모리 시스템 및 저항성 메모리 장치의 동작방법
US10325655B2 (en) * 2015-04-10 2019-06-18 Hewlett Packard Enterprise Development Lp Temperature compensation circuits
US9654132B2 (en) * 2015-07-08 2017-05-16 Marvell World Trade Ltd. Hybrid charge-sharing charge-redistribution DAC for successive approximation analog-to-digital converters
US10748058B2 (en) * 2015-12-28 2020-08-18 International Business Machines Corporation LUT based neuron membrane potential update scheme in STDP neuromorphic systems
CN108780492B (zh) * 2016-02-08 2021-12-14 斯佩罗设备公司 模拟协处理器
CN115995242A (zh) * 2016-03-18 2023-04-21 株式会社半导体能源研究所 半导体装置
US10123143B2 (en) 2016-09-26 2018-11-06 Cirrus Logic, Inc. Correction for speaker monitoring
US11238887B2 (en) * 2017-01-23 2022-02-01 Dsp Group Ltd. Interface to leaky spiking neurons
US10896367B2 (en) 2017-03-07 2021-01-19 Google Llc Depth concatenation using a matrix computation unit
WO2018163005A1 (ja) * 2017-03-10 2018-09-13 株式会社半導体エネルギー研究所 タッチパネルシステム、電子機器および半導体装置
US11568223B2 (en) * 2017-04-14 2023-01-31 Semiconductor Energy Laboratory Co., Ltd. Neural network circuit
US10460817B2 (en) 2017-07-13 2019-10-29 Qualcomm Incorporated Multiple (multi-) level cell (MLC) non-volatile (NV) memory (NVM) matrix circuits for performing matrix computations with multi-bit input vectors
EP3432226B1 (en) 2017-07-19 2023-11-01 IMEC vzw Control plane organisation for flexible digital data plane
KR20190020408A (ko) * 2017-08-21 2019-03-04 에스케이하이닉스 주식회사 고 선형성의 투-스텝 싱글-슬롭 비교 장치 및 그에 따른 씨모스 이미지 센서
KR102126791B1 (ko) * 2017-11-23 2020-06-25 서울대학교산학협력단 교차점 어레이를 이용한 신경 연결망 및 그 패턴 인식방법
US10748630B2 (en) 2017-11-29 2020-08-18 Silicon Storage Technology, Inc. High precision and highly efficient tuning mechanisms and algorithms for analog neuromorphic memory in artificial neural networks
US10594334B1 (en) * 2018-04-17 2020-03-17 Ali Tasdighi Far Mixed-mode multipliers for artificial intelligence
CN108932548A (zh) * 2018-05-22 2018-12-04 中国科学技术大学苏州研究院 一种基于fpga的稀疏度神经网络加速系统
US10205463B1 (en) 2018-07-18 2019-02-12 Teledyne Scientific & Imaging, Llc Dual-gain single-slope ADC with digital CDS
US10861553B2 (en) * 2018-09-27 2020-12-08 Taiwan Semiconductor Manufacturing Co., Ltd. Device-region layout for embedded flash
US11061646B2 (en) * 2018-09-28 2021-07-13 Intel Corporation Compute in memory circuits with multi-Vdd arrays and/or analog multipliers
CN109658471B (zh) * 2018-12-20 2023-07-25 上海联影医疗科技股份有限公司 一种医学图像重建方法和系统
WO2020146890A1 (en) * 2019-01-11 2020-07-16 Apple Inc. Method for measurement of ue-to-ue reference signal in new radio networks with cross-link interference
US10756748B1 (en) * 2019-04-26 2020-08-25 Xilinx, Inc. Capacitor-enhanced comparator for switched-capacitor (SC) circuits with reduced kickback
US11562249B2 (en) * 2019-05-01 2023-01-24 International Business Machines Corporation DNN training with asymmetric RPU devices

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1091604A (ja) * 1996-09-10 1998-04-10 Toshiba Corp 関数学習装置
JPH11163678A (ja) * 1997-12-01 1999-06-18 Matsushita Electric Ind Co Ltd ディジタル信号処理回路
JP2003263624A (ja) * 2002-03-07 2003-09-19 Matsushita Electric Ind Co Ltd ニューラル・ネットワーク装置の学習演算回路
US20080310245A1 (en) * 2007-06-15 2008-12-18 Micron Technology, Inc. Digital filters for semiconductor devices
JP2012504820A (ja) * 2008-09-30 2012-02-23 エルエスアイ コーポレーション 性能要因調整に基づくメモリ・デバイスの軟データ生成の方法および装置
US20170337466A1 (en) * 2016-05-17 2017-11-23 Silicon Storage Technology, Inc. Deep Learning Neural Network Classifier Using Non-volatile Memory Array
JP2018133016A (ja) * 2017-02-17 2018-08-23 株式会社半導体エネルギー研究所 ニューラルネットワークシステム
JP2019028569A (ja) * 2017-07-26 2019-02-21 株式会社東芝 メモリシステム、半導体記憶装置及び信号処理システム
WO2019055182A1 (en) * 2017-09-15 2019-03-21 Silicon Storage Technology, Inc. SYSTEM AND METHOD FOR IMPLEMENTING CONVOLUTE NEURAL NETWORKS CONFIGURABLE WITH FLASH MEMOIRES

Also Published As

Publication number Publication date
JP7308290B2 (ja) 2023-07-13
KR102709575B1 (ko) 2024-09-25
TW202042233A (zh) 2020-11-16
US20200349421A1 (en) 2020-11-05
EP3963587A1 (en) 2022-03-09
EP3963513A1 (en) 2022-03-09
TWI805909B (zh) 2023-06-21
TW202044123A (zh) 2020-12-01
KR20210147032A (ko) 2021-12-06
EP3963513B1 (en) 2024-04-17
US11507642B2 (en) 2022-11-22
EP3963587B1 (en) 2024-09-11
CN113785311A (zh) 2021-12-10
JP2022539486A (ja) 2022-09-12
US20200349422A1 (en) 2020-11-05
TWI805908B (zh) 2023-06-21
WO2020222869A1 (en) 2020-11-05
KR102657705B1 (ko) 2024-04-15
CN113785360A (zh) 2021-12-10
KR20210145809A (ko) 2021-12-02
JP2023139013A (ja) 2023-10-03
WO2020222868A1 (en) 2020-11-05

Similar Documents

Publication Publication Date Title
JP7308290B2 (ja) 深層学習人工ニューラルネットワークにおけるアナログニューラルメモリのための構成可能な入力ブロック及び出力ブロック、並びに物理的レイアウト
JP7346579B2 (ja) 深層学習人工ニューラルネットワーク内のアナログニューラルメモリにおいてニューロン電流をニューロン電流ベースの時間パルスに変換するためのシステム
JP2024023266A (ja) 深層学習人工ニューラルネットワークにおけるアナログニューラルメモリのプログラミングのための精密な調整
KR102715858B1 (ko) 딥 러닝 인공 신경 네트워크 내의 아날로그 신경 메모리의 프로그래밍을 위한 정밀도 튜닝
JP7340101B2 (ja) 人工ニューラルネットワークにおけるアナログニューラルメモリのための精密なプログラミング方法及び装置
KR20230110360A (ko) 딥 러닝 인공 신경망에서의 아날로그 신경 메모리를위한 디지털 출력 메케니즘
KR20230158570A (ko) 딥 러닝 인공 신경망에서의 아날로그 뉴럴 메모리를 위한 출력 회로

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220114

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220114

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230313

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230509

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230808

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230905