JP7217753B2 - 深層学習人工ニューラルネットワークにおけるアナログニューラルメモリをプログラミングするための方法及び装置 - Google Patents

深層学習人工ニューラルネットワークにおけるアナログニューラルメモリをプログラミングするための方法及び装置 Download PDF

Info

Publication number
JP7217753B2
JP7217753B2 JP2020548820A JP2020548820A JP7217753B2 JP 7217753 B2 JP7217753 B2 JP 7217753B2 JP 2020548820 A JP2020548820 A JP 2020548820A JP 2020548820 A JP2020548820 A JP 2020548820A JP 7217753 B2 JP7217753 B2 JP 7217753B2
Authority
JP
Japan
Prior art keywords
memory cells
cell
program
current
array
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
JP2020548820A
Other languages
English (en)
Other versions
JP2021517706A (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 JP2021517706A publication Critical patent/JP2021517706A/ja
Priority to JP2023008471A priority Critical patent/JP2023065351A/ja
Application granted granted Critical
Publication of JP7217753B2 publication Critical patent/JP7217753B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/26Sensing or reading circuits; Data output circuits
    • G11C16/28Sensing or reading circuits; Data output circuits using differential sensing or reference cells, e.g. dummy cells
    • 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/10Programming or data input circuits
    • G11C16/107Programming all cells in an array, sector or block to the same state prior to flash erasing
    • 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/10Programming or data input circuits
    • 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
    • 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/0408Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors
    • G11C16/0441Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors comprising cells containing multiple floating gate devices, e.g. separate read-and-write FAMOS transistors with connected floating gates
    • 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/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • 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
    • 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/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • G11C16/3409Circuits or methods to recover overerased nonvolatile memory cells detected during erase verification, usually by means of a "soft" programming step
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • G11C16/3413Circuits or methods to recover overprogrammed nonvolatile memory cells detected during program verification, usually by means of a "soft" erasing step
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3427Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • 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

Description

(優先権の主張)
本出願は、2018年3月14日に出願された「Method and Apparatus for Programming Analog Neuromorphic Memory in an Artificial Neural Network」と題する米国特許仮出願第62/642,878号、及び2018年5月25日に出願された「Method And Apparatus For Programming Analog Neural Memory In A Deep Learning Artificial Neural Network」と題する米国特許出願第15/990,395号の優先権を主張する。
(発明の分野)
人工ニューラルネットワークのベクトルマトリクス乗算(vector-by-matrix multiplication、VMM)アレイと共に使用するプログラミング装置及び方法の多数の実施形態が開示される。
人工ニューラルネットワークは、多数の入力に依存することができ、概ね未知である機能を推定する又は近似するために使用される生物学的ニューラルネットワーク(動物の中枢神経系、特に脳)を真似ている。人工ニューラルネットワークは、概して、メッセージを交換する相互接続した「ニューロン」の層を含む。
図1は、人工ニューラルネットワークを図示しており、ここで円は、入力又はニューロンの層を表す。接続(シナプスと呼ばれる)は、矢印によって表され、経験に基づいて調整され得る数値の重みを有する。これは、ニューラルネットワークが入力に適応できるようにし、学習できるようにする。典型的には、ニューラルネットワークは、複数の入力の層を含む。典型的には、1つ以上のニューロンの中間層、及びニューラルネットワークの出力を提供するニューロンの出力層が存在する。それぞれのレベルでニューロンは、シナプスから受信されたデータに基づいて個々に又は合わせて決定を行う。
高性能情報処理用の人工ニューラルネットワークの開発における主要な課題の1つは、適切なハードウェア技術の欠如である。実際には、実用ニューラルネットワークは、非常に多数のシナプスに頼り、ニューロン間の高い接続性、すなわち、非常に高度な計算的並行処理を可能にする。原理的には、このような複雑性は、デジタルスーパーコンピュータ又は専門化したグラフィック処理ユニットクラスタによって実現され得る。しかしながら、高コストに加え、これらのアプローチはまた、主として低精度のアナログ計算を実施するのではるかに少ないエネルギーしか消費しない生物学的ネットワークに比べてあまり良くないエネルギー効率に悩まされている。CMOSアナログ回路は、人工ニューラルネットワークに使用されてきたが、ほとんどのCMOS実装シナプス(CMOS-implemented synapses)は、多数のニューロン及びシナプスを考えると嵩高すぎていた。
出願人は以前に、参照により組み込まれる米国特許出願第15/594,439号において、シナプスとして1つ以上の不揮発性メモリアレイを利用する人工(アナログ)ニューラルネットワークを開示した。不揮発性メモリアレイは、アナログニューロモーフィックメモリとして動作する。ニューラルネットワークデバイスは、第1の複数の入力を受信するように、かつそれから第1の複数の出力を生成するように構成された第1の複数のシナプス、及び第1の複数の出力を受信するように構成された第1の複数のニューロンを含む。第1の複数のシナプスは、複数のメモリセルを含み、メモリセルのそれぞれは、半導体基板内に形成された、間にチャネル領域が延在している離間したソース領域及びドレイン領域と、チャネル領域の第1の部分の上方に配設され、チャネル領域の第1の部分から絶縁された浮遊ゲートと、チャネル領域の第2の部分の上方に配設され、チャネル領域の第2の部分から絶縁された非浮遊ゲートと、を含む。複数のメモリセルのそれぞれは、浮遊ゲートの多くの電子に対応する重み値を記憶するように構成される。複数のメモリセルは、第1の複数の入力に、記憶された重み値を乗じて第1の複数の出力を生成するように構成される。
アナログニューロモーフィックメモリシステムに使用される各不揮発性メモリセルは、消去され、浮遊ゲート内に非常に特異的かつ正確な量の電荷を保持するようにプログラムされなければならない。例えば、各浮動ゲートはN個の異なる値のうちの1つを保持しなければならず、ここで、Nは、各セルによって示され得る異なる重みの数である。Nの例としては、16、32、及び64を含む。
VMMシステムにおける1つの課題は、選択されたセルを、異なる値のNに必要とされる精度及び粒度でプログラムする能力である。例えば、選択されたセルが64個の異なる値のうちの1つを含み得る場合は、プログラム動作において極めて高い精度が必要とされる。
必要とされるのは、アナログニューロモーフィックメモリシステムにおいてVMMと共に使用するのに適した改善されたプログラミングシステム及び方法である。
人工ニューラルネットワークのベクトルマトリクス乗算(VMM)アレイと共に使用するプログラミングシステム及び方法の多数の実施形態が開示される。それにより、選択されたセルは、N個の異なる値のうちの1つを保持するために、極めて高い精度でプログラムされることができる。
人工ニューラルネットワークを示す図である。 従来の2ゲート不揮発性メモリセルの横断面図である。 従来の4ゲート不揮発性メモリセルの横断面図である。 従来の3ゲート不揮発性メモリセルの横断面図である。 別の従来の2ゲート不揮発性メモリセルの横断面図である。 不揮発性メモリアレイを利用する異なるレベルの例示的な人工ニューラルネットワークを示す図である。 ベクトル乗算器マトリクスを示すブロック図である。 様々なレベルのベクトル乗算器マトリクスを示すブロック図である。 ベクトル乗算器マトリクスの別の実施形態を示す。 ベクトル乗算器マトリクスの別の実施形態を示す。 図10のベクトル乗算器マトリクスで動作を実行するための動作電圧を示す。 ベクトル乗算器マトリクスの別の実施形態を示す。 図12のベクトル乗算器マトリクスで動作を実行するための動作電圧を示す。 ベクトル乗算器マトリクスの別の実施形態を示す。 図14のベクトル乗算器マトリクスで動作を実行するための動作電圧を示す。 ベクトル乗算器マトリクスの別の実施形態を示す。 図216のベクトル乗算器マトリクスで動作を実行するための動作電圧を示す。 ベクトル乗算器マトリクスのプログラミング方法を示す。 ベクトル乗算器マトリクスのプログラミング方法を示す。 図18A及び図18Bのプログラミングのための波形を示す。 図18A及び図18Bのプログラミングのための波形を示す。 図18A及び図18Bのプログラミングのための波形を示す。 ベクトル乗算器マトリクスシステムを示す。 列ドライバを示す。 複数の基準マトリクスを示す。 単一の基準マトリクスを示す。 基準マトリクスを示す。 別の基準マトリクスを示す。 比較回路を示す。 別の比較回路を示す。 別の比較回路を示す。 電流-デジタルビット回路を示す。 図31の回路のための波形を示す。 電流-スロープ回路を示す。 図33の回路のための波形を示す。 電流-スロープ回路を示す。 図35の回路のための波形を示す。
本発明の人工ニューラルネットワークは、CMOS技術及び不揮発性メモリアレイの組み合わせを利用する。
不揮発性メモリセル
デジタル不揮発性メモリは、周知である。例えば、米国特許第5,029,130号(「’130号特許」)は、分割ゲート不揮発性メモリセルのアレイを開示し、あらゆる目的のために参照により本明細書に組み込まれる。このようなメモリセルを図2に示す。各メモリセル210は、半導体基板12内に形成され、チャネル領域18をその間に有するソース領域14とドレイン領域16と、を含む。浮遊ゲート20は、チャネル領域18の第1の部分の上方に形成され、チャネル領域18の第1の部分から絶縁されて(かつチャネル領域18の第1の部分導電性を制御して)おり、またソース領域16の一部分の上方に形成される。ワード線端子22(典型的には、ワード線に結合される)は、チャネル領域18の第2の部分の上方に配設され、チャネル領域18の第2の部分から絶縁され、(かつチャネル領域18の第2の部分の導電性を制御する)第1の部分と、浮遊ゲート20の上方に延在する第2の部分と、を有する。浮遊ゲート20及びワード線端子22は、ゲート酸化物によって基板12から絶縁される。ビット線24はドレイン領域16に結合される。
メモリセル210は、ワード線端子22に高圧正電圧を印加することによって消去され(ここで電子は、浮遊ゲートから除去される)、それにより、ファウラーノルドハイムトンネリングによって浮遊ゲート20からワード線端子22まで中間絶縁体を通って浮遊ゲート20の電子をトンネリングさせる。
メモリセル210は、ワード線端子22に正電圧、及びソース16に正電圧を印加することによってプログラムされる(ここで電子は、浮遊ゲートに印加される)。電子電流は、ソース16からドレイン14に向かって流れることになる。電子は、ワード線端子22と浮遊ゲート20との間の間隙に達すると、加速し発熱する。熱せられた電子のいくらかは、浮遊ゲート20からの静電引力に起因してゲート酸化物26を通って浮遊ゲート20のに注入される。
ドレイン14及びワード線端子22に正の読み出し電圧を印加する(ワード線端子下のチャネル領域をターンオンする)ことによって、メモリセル210が読み出される。浮遊ゲート20が正に帯電する(すなわち、電子を消去し、ドレイン16に正に結合する)場合、浮遊ゲート20下のチャネル領域の部分は、次に同様にオンになり、電流は、チャネル領域18を流れ、これは、消去された状態つまり「1」の状態として検知される。浮遊ゲート20が負に帯電する(すなわち、電子でプログラムされる)場合、次に浮遊ゲート20下のチャネル領域の部分は、ほとんど又は完全にオフになり、電流は、チャネル領域18を流れず(又はわずかに流れる)、プログラムされた状態又は「0」の状態として検出される。
表1は、読み出し、消去及びプログラム動作を実行するためのメモリセル210の端子に印加され得る典型的な電圧範囲を示す。
表1:図2のフラッシュメモリセル210の動作
Figure 0007217753000001
他の分割ゲートメモリセル構成が知られている。例えば、図3は、ソース領域14と、ドレイン領域16と、チャネル領域18の第1の部分の上方にある浮遊ゲート20と、チャネル領域18の第2の部分の上方にある選択ゲート28(典型的には、ワード線に結合される)と、浮遊ゲート20の上方にある制御ゲート22と、及びソース領域14の上方にある消去ゲート30と、を備える4ゲートメモリセル310を示す。この構成は、米国特許第6,747,310号に記載され、この米国特許は、あらゆる目的のため参照により本明細書に組み込まれる。ここで、全てのゲートは、浮遊ゲート20を除いて、非浮遊ゲートであり、それらは電圧源に電気的に接続される又は接続可能であることを意味する。プログラミングは、浮遊ゲート20にそれ自体を注入するチャネル領域18からの熱せられた電子によって示される。消去は、浮遊ゲート20から消去ゲート30へトンネリングする電子によって示される。
表2は、読み出し、消去、及びプログラム動作を実行するためのメモリセル310の端子に印加され得る典型的な電圧範囲を示す。
表2:図3のフラッシュメモリセル310の動作
Figure 0007217753000002
図4は、分割ゲート3ゲートメモリセル410を示す。メモリセル410は、メモリセル410が別個の制御ゲートを有しないことを除いて、図3のメモリセル310と同一である。消去動作(消去ゲートを通しての消去)及び読み出し動作は、制御ゲートバイアスがないことを除いて、図3のものと同様である。プログラミング動作もまた、制御ゲートバイアスなしで行われるため、ソース線のプログラム電圧は、制御ゲートバイアスの不足を補償するためにより高い。
表3は、読み出し、消去、及びプログラム動作を実行するためのメモリセル410の端子に印加され得る典型的な電圧範囲を示す。
表3:図4のフラッシュメモリセル410の動作
Figure 0007217753000003
図5は、積層ゲートメモリセル510を示す。メモリセル510は、浮遊ゲート20がチャネル領域18全体の上方に延在し、制御ゲート22が絶縁層によって分離された浮遊ゲート20の上方に延在することを除いて、図2のメモリセル210と同様である。消去、プログラミング、及び読み出し動作は、メモリセル210について前述したものと同様の方法で動作する。
表4は、読み出し、消去、及びプログラム動作を実行するためのメモリセル510の端子に印加され得る典型的な電圧範囲を示す。
表4:図5のフラッシュメモリセル510の動作
Figure 0007217753000004
上記の人工ニューラルネットワークにおける不揮発性メモリセルのタイプのうちの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フィルタは次に右側に1ピクセルだけシフトされ(すなわち、3ピクセルの列を右側に追加し、左側で3ピクセルの列をドロップする)、そのため、この新しく位置づけられたフィルタの9ピクセル値が、シナプスCB1に提供されるため、それらに同じ重みを乗じ、関連するニューロンによって第2の単一の出力値を決定する。このプロセスを、3×3フィルタが32×32ピクセル画像全体にわたって3色全て及び全てのビットについてスキャンするまで続ける(精度値)。プロセスは次に、層C1の特徴マップ全てが計算されるまで、異なる重みのセットを使用して繰り返されて、C1の異なる特徴マップを生成する。
C1において、本例では、それぞれ30×30ピクセルを有する16個の特徴マップが存在する。各ピクセルは、入力とカーネルとの乗算から抽出された新しい特徴ピクセルであり、したがって、各特徴マップは、2次元アレイであり、したがってこの例では、シナプスCB1は、2次元アレイの16層を構成する(本明細書で言及されるニューロン層及びアレイは、必ずしも物理的関係ではなく論理的な関係であり、すなわち、アレイは必ずしも物理的な2次元アレイに配向されないことに留意する)。16個の特徴マップのそれぞれは、フィルタスキャンに適用される16個の異なるシナプス重みのセットの1つによって生成される。C1特徴マップは全て、境界同定など同じ画像特徴の異なる態様を対象とすることができる。例えば、第1のマップ(この第1のマップを生成するのに使用される全てのスキャンに共有される第1の重みセットを使用して生成される)は、円形エッジを識別することができ、第2のマップ(第1の重みセットと異なる第2の重みセットを使用して生成される)は、方形エッジ又は特定の特徴のアスペクト比などを識別することができる。
活性化関数P1(プーリング)は、C1からS1へ行く前に適用され、各特徴マップ中の連続する、重なり合わない2×2領域からの値をプールする。プーリング段階の目的は、平均して近隣の位置にすること(又はmax関数もまた使用され得る)、例えばエッジ位置の依存を低減すること、及び次の段階に行く前にデータサイズを低減することである。S1において、16個の15×15特徴マップ(すなわち、16個のそれぞれ15×15ピクセルの異なるアレイ)が存在する。S1からC2へ行くCB2内のシナプス及び関連するニューロンは、S1内のマップを1ピクセルのフィルタシフトを使用して4×4フィルタでスキャンする。C2において、22個の12×12特徴マップが存在する。活性化関数P2(プーリング)は、C2からS2へ行く前に適用され、各特徴マップ中の連続する、重なり合わない2×2領域からの値をプールする。S2において、22個の6×6特徴マップが存在する。活性化関数は、S2からC3へ行くシナプスCB3で適用され、ここでC3内の全てのニューロンはS2内の全てのマップに接続する。C3において、64個のニューロンが存在する。C3から出力S3へ行くシナプスCB4は、S3をC3と完全に接続する。S3における出力は、10個のニューロンを含み、ここで最も高い出力ニューロンは、クラスを決定する。この出力は、例えば、元の画像の内容の同定又は分類を示すことができる。
シナプスの各レベルは、不揮発性メモリセルのアレイ又はアレイの一部を使用して実行される。図7は、不揮発性メモリセルを含み、入力層と次の層との間のシナプスとして利用されるベクトルマトリクス乗算(VMM)アレイのブロック図である。具体的には、VMM32は、不揮発性メモリセルのアレイ33、消去ゲート及びワード線ゲートデコーダ34、制御ゲートデコーダ35、ビット線デコーダ36、並びにソース線デコーダ37を含み、それらのデコーダはメモリアレイ33に対する入力をデコードする。この例におけるソース線デコーダ37はまた、メモリセルアレイの出力をデコードする。あるいは、ビット線デコーダ36が、メモリアレイの出力をデコードすることができる。メモリアレイは、2つの目的を果たす。第1に、VMMにより使用される重みを記憶する。第2に、メモリアレイは、効果的に、入力に、メモリアレイに記憶された重みを乗じ、それらを出力線(ソース線又はビット線)ごとに合計して出力を生成し、これは、次の層への入力又は最後の層への入力になる。乗算及び加算の関数を実行することによって、メモリアレイは、別個の乗算及び加算の論理回路の必要性をなくし、また、その場でのメモリ計算により電力効率も良い。
メモリアレイの出力は差動加算器(加算オペアンプなど)38に供給され、差動加算器はメモリセルアレイの出力を合計してその畳み込み用の単一の値を生成する。差動加算器は、正の入力で正の重みと負の重みとの合計を実現するようなものである。合計された出力値は、次に出力を整流する活性化関数回路39に供給される。活性化関数には、シグモイド、tanh、又はReLU関数が含まれ得る。整流された出力値は、次の層(例えば上の説明ではC1)として特徴マップの要素になり、次いで、次のシナプスに適用されて次の特徴マップ層又は最後の層を生成する。したがって、この例では、メモリアレイは、複数のシナプスを構成し(ニューロンの前の層から、又は画像データベースなどの入力層から入力を受信する)、加算オペアンプ38及び活性化関数回路39は、複数のニューロンを構成する。
図8は、様々なレベルのVMMのブロック図である。図8に示されるように、入力は、デジタルアナログ変換器31によってデジタルからアナログに変換され、入力VMM32aに提供される。入力VMM32aによって生成された出力は、次のVMM(隠しレベル1)32bへの入力として提供され、VMM(隠しレベル1)32bは、同様にして、次のVMM(隠しレベル2)32bへの入力として提供される出力を生成する、などとなる。VMMの32の様々な層は、畳み込みニューラルネットワーク(convolutional neural network、CNN)のシナプス及びニューロンの異なる層として機能する。各VMMは、スタンドアローンの不揮発性メモリアレイであり得、又は複数のVMMは、同じ不揮発性メモリアレイの異なる部分を利用することができ、又は複数のVMMは、同じ不揮発性メモリアレイの重なり合う部分を利用することができる。図8に示される例は、5つの層(32a、32b、32c、32d、32e)、すなわち、1つの入力層(32a)、2つの隠れ層(32b、32c)、及び2つの完全に接続された層(32d、32e)を含む。当業者であれば、これは単なる例示であり、代わりにシステムが2つを超える隠れ層及び2つを超える完全に接続された層を含み得ることを理解するであろう。
ベクトルマトリクス乗算(VMM)アレイ
図9は、図3に示されるタイプのメモリセルに特に適したニューロンVMM900を示し、入力層と次の層との間でシナプス及びニューロンの一部として利用される。VMM900は、不揮発性メモリセルのメモリアレイ901、及び基準アレイ902(アレイの頂部で)を備える。あるいは、別の基準アレイが底部に位置することができる。VMM900では、制御ゲート線903などの制御ゲート線が垂直方向に延びており(したがって、行方向の基準アレイ902が入力制御ゲート線に直交する)、消去ゲート線904などの消去ゲート線が水平方向に延びている。ここで、入力は制御ゲート線に提供され、出力はソース線に現れる。一実施形態では、偶数行のみが使用され、別の実施形態では、奇数行のみが使用される。ソース線の電流は、ソース線に接続されたメモリセルからの全ての電流の合計関数を実行する。
ニューラルネットワークについて本明細書に記載されるように、フラッシュセルは、サブ閾値領域で動作するように構成されることが好ましい。
本明細書に記載されたメモリセルは、弱反転にバイアスされる。
Ids=Io*(Vg-Vth)/kVt=w*Io*(Vg)/kVt
w=e(-Vth)/kVt
入力電流を入力電圧に変換するためにメモリセルを使用するI-Vログ変換器について:
Vg=k*Vt*log[Ids/wp*Io]
ベクトルマトリクス乗算器VMMとして使用されるメモリアレイについて、出力電流は以下である:
Iout=wa*Io*(Vg)/kVt、すなわち
Iout=(wa/wp)*Iin=W*Iin
W=e(Vthp-Vtha)/kVt
ワード線又は制御ゲートは、入力電圧のためのメモリセルの入力として使用することができる。
あるいは、フラッシュメモリセルは、線形領域で動作するように構成することができる。
Ids=β*(Vgs-Vth)*Vds;β=u*Cox*W/L
W α(Vgs-Vth)
I-V線形変換器では、線形領域で動作するメモリセルを使用して、入力/出力電流を入力/出力電圧に線形に変換することができる。
ESFベクトルマトリックス乗算器の他の実施形態は、参照により本明細書に組み込まれる米国特許出願第15/826,345号に記載されているとおりである。ソース線又はビット線は、ニューロン出力(電流和出力)として使用することができる。
図10は、図2に示されるタイプのメモリセルに特に適したニューロンVMM1000を示し、入力層と次の層との間のシナプスとして利用される。VMM1000は、不揮発性メモリセルのメモリアレイ1003、基準アレイ1001、及び基準アレイ1002を備える。基準アレイ1001及び1002は、アレイの列方向において、端子BLR0~3に流れ込む電流入力を電圧入力WL0~3に変換する役割を果たす。実際には、基準メモリセルは、マルチプレクサを通してそれらの中に流れる電流入力にダイオード接続される。基準セルは、標的基準レベルに調整(例えば、プログラム)される。標的基準レベルは、基準ミニアレイマトリクスによって提供される。メモリアレイ1003は、2つの目的を果たす。第1に、VMM1000により使用される重みを記憶する。第2に、メモリアレイ1003は、入力(端子BLR0~3に提供される電流入力であって、基準アレイ1001及び1002がこれらの電流入力を入力電圧に変換してワード線WL0~3に供給する)にメモリアレイに記憶された重みを有効に乗算して、出力を生成し、これは次の層への入力又は最終の層への入力となる。乗算関数を実行することによって、メモリアレイは、別個の乗算論理回路の必要性をなくし、また電力効率も良い。ここで、電圧入力はワード線に提供され、出力は読み出し(推論)動作中にビット線に現れる。ビット線の電流は、ビット線に接続されたメモリセルからの全ての電流の合計関数を実行する。
図11は、VMM1000の動作電圧を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルのソース線、及び非選択セルのソース線に印加された電圧を示す。行は、読み出し、消去、及びプログラムの動作を示す。
図12は、図2に示されるタイプのメモリセルに特に適したニューロンVMM1200を示し、入力層と次の層との間でシナプス及びニューロンの一部として利用される。VMM1200は、不揮発性メモリセルのメモリアレイ1203、基準アレイ1201、及び基準アレイ1202を備える。アレイVMM1200の行方向に延びる基準アレイ1201及び1202は、VMM1200においてワード線が垂直方向に延びることを除いて、VMM1000と同様である。ここで、入力はワード線に提供され、出力は読み出し動作中にソース線に現れる。ソース線の電流は、ソース線に接続されたメモリセルからの全ての電流の合計関数を実行する。
図13は、VMM1200の動作電圧を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルのソース線、及び非選択セルのソース線に印加された電圧を示す。行は、読み出し、消去、及びプログラムの動作を示す。
図14は、図3に示されるタイプのメモリセルに特に適したニューロンVMM1400を示し、入力層と次の層との間でシナプス及びニューロンの一部として利用される。VMM1400は、不揮発性メモリセルのメモリアレイ1403、基準アレイ1401、及び基準アレイ1402を備える。基準アレイ1401及び1402は、端子BLR0~3に流れ込む電流入力を電圧入力CG0~3に変換する役割を果たす。実際には、基準メモリセルは、それらに流れ込む電流入力と、カスコーディングマルチプレクサ1414を介してダイオード接続される。mux1414は、読み出し中の基準セルのビット線に一定の電圧を確保するために、mux1405及びカスコーディングトランジスタ1404を含む。基準セルは、標的基準レベルに調整される。メモリアレイ1403は、2つの目的を果たす。第1に、VMM1400により使用される重みを記憶する。第2に、メモリアレイ1403は、メモリアレイに記憶された重みによって、入力(端子BLR0~3に提供される電流入力であって、基準アレイ1401及び1402がこれらの電流入力を入力電圧に変換して制御ゲートCG0~3に供給する)を有効に乗算して、出力を生成し、これは次の層への入力又は最終の層への入力となる。乗算関数を実行することによって、メモリアレイは、別個の乗算論理回路の必要性をなくし、また電力効率も良い。ここで、入力はワード線に提供され、出力は読み出し動作中にビット線に現れる。ビット線の電流は、ビット線に接続されたメモリセルからの全ての電流の合計関数を実行する。
VMM1400は、メモリアレイ1403内のメモリセルの一方向調整を実施する。すなわち、各セルは消去され、次いで、浮遊ゲートの所望の電荷に達するまで部分的にプログラムされる。過多の電荷が浮遊ゲートにある場合(誤った値がセル内に記憶されるなど)、セルは消去されなければならず、一連の部分的なプログラミング動作をやり直さなければならい。示されるように、同じ消去ゲートを共有する2つの行は、一緒に消去される必要があり(ページ消去として知られる)、その後、各セルは、浮遊ゲートの所望の電荷に達するまで部分的にプログラムされる。
図15は、VMM1400の動作電圧を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルの制御ゲート、選択セルと同じセクタ内の非選択セルの制御ゲート、選択セルとは異なるセクタ内の非選択セルの制御ゲート、選択セルの消去ゲート、非選択セルの消去ゲート、選択セルのソース線、及び非選択セルのソース線に印加された電圧を示す。行は、読み出し、消去、及びプログラムの動作を示す。
図16は、図3に示されるタイプのメモリセルに特に適したニューロンVMM1600を示し、入力層と次の層との間でシナプス及びニューロンの一部として利用される。VMM1600は、不揮発性メモリセルのメモリアレイ1603、基準アレイ1601、及び基準アレイ1602を備える。EG線が垂直に延びている一方で、CG線及びSL線は水平に延びている。VMM1600は、VMM1600が双方向調整を実装することを除いてVMM1400と同様であり、各個々のセルは、浮動ゲートの所望の電荷量に達するために、完全に消去され、部分的にプログラムされ、必要に応じて部分的に消去され得る。示されるように、基準アレイ1601及び1602は、端子BLR0~3内の入力電流を制御ゲート電圧CG0~3に変換し(マルチプレクサを介したダイオード接続された基準セルの作用を通じて)、行方向でメモリセルに印加される。電流出力(ニューロン)は、ビット線に接続されたメモリセルからの全ての電流を合計するビット線内にある。
図17は、VMM1600の動作電圧を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルの制御ゲート、選択セルと同じセクタ内の非選択セルの制御ゲート、選択セルとは異なるセクタ内の非選択セルの制御ゲート、選択セルの消去ゲート、非選択セルの消去ゲート、選択セルのソース線、及び非選択セルのソース線に印加された電圧を示す。行は、読み出し、消去、及びプログラムの動作を示す。
図18A及び18Bは、プログラミング方法1800を示す。最初に、方法は、典型的には受信されるプログラムコマンドに応じて、開始する(工程1801)。次に、マスプログラム動作が、全てのセルを「0」状態にプログラムする(工程1802)。次いで、ソフト消去が、全てのセルを、中間の弱く消去されたレベル約3~5μAに消去する(工程1803)。これは、全てのセルがデジタル用途で完全消去状態、例えば、~20~30μAのセル電流になる深い消去とは対照的である。次いで、ハードプログラムが、全ての選択されていないセルで実行されて、セルが実際にオフである、すなわち、これらのメモリセルが影響力のない電流を与えることを確実にするために、使用されていないセルに対して非常に深いプログラム状態までセルから電荷を除去する(工程1804)。次いで、ソフトプログラムが選択セルで実行されて、粗いアルゴリズムを使用して中間の弱くプログラムされたレベル約0.7~1.5μAになるまで、セルからいくらかの電荷を除去する(工程1805、1806、1807)。検証動作が後に続く粗いステッププログラムサイクルが行われ、選択セルの電荷が、粗い反復方式で様々な閾値と比較される(工程1806及び1807)。粗いステッププログラムサイクルは、粗い電圧増分、及び/又は粗いプログラム時間、及び/又は粗いプログラム電流を含み、1つのプログラムステップから次のプログラムステップまでに粗いセル電流変化がもたらされる。次に、精密なプログラミングが行われ(工程1808~1813)、全てのセルが、細かいステッププログラムアルゴリズムにより、所望のレベルに応じて100pA~20nAの範囲内の標的レベルにプログラムされる。検証動作が後に続く細かいステッププログラムサイクルが行われる(工程1809及び1810)。細かいステッププログラムサイクルは、粗い及び細かい解像度の電圧増分、及び/又はプログラム時間、及び/又はプログラム電流の組み合わせを含み得、1つのプログラムステップから次のプログラムステップまでに細かいセル電流変化がもたらされ得る。選択されたセルが所望の標的に到達すると、プログラミング動作は完了する(工程1811)。そうでない場合は、所望のレベルに達するまで精密プログラミング動作が繰り返される。しかしながら、試行回数が閾値数を超えると(工程1812)、プログラミング動作は停止し、選択されたセルは不良セルと見なされる(工程1813)。
図19は、パルス変調を使用してプログラミング動作を実行するための例示的な波形1900を示す。信号1901は、複数のプログラム及び検証サイクルからなる、プログラムサイクルイネーブル信号である。信号1902は、個々のパルスプログラムサイクルイネーブル信号である(信号1902=論理「1」はプログラミングを可能にする)。検証サイクルが、個々のパルスプログラムサイクルの後に続く(信号1902=論理「0」は検証を可能にする)。信号1903は、特定のビット線のための個々のパルスプログラムサイクルイネーブル信号である。信号1903は、別の特定のビット線のための個々のパルスプログラムサイクルイネーブル信号である。示されるように、信号1903の幅は、信号1904の幅よりも狭い。したがって、信号1903は、メモリセルの浮遊ゲートでより小さい電荷が変更されることを可能にし、プログラミングにおいてより小さい電流精度がもたらされる。プログラムサイクル1901内では、特定のメモリセルに対して所望のプログラミング精度を達成するために、異なるプログラムパルス幅1903を使用することができる。
図20は、高電圧レベル変調を使用してプログラミング動作を実行するための例示的な波形2000を示す。信号2003は、特定のビット線のための個々のパルスプログラムサイクルイネーブル信号である。信号2004は、別の特定のビット線のための個々のパルスプログラムサイクルイネーブル信号である。信号2003及び2004のプログラムパルス幅は、この波形では同じである。信号2005は、プログラミングのためのソース線又は制御ゲートなどのための高電圧増分である。1つのプログラムパルスから次のプログラムパルスまで増分する。
図21は、高電圧レベル変調を使用してプログラミング動作を実行するための例示的な波形2100を示す。信号2103は、特定のビット線のための個々のパルスプログラムサイクルイネーブル信号である。信号2104は、別の特定のビット線のための個々のパルスプログラムサイクルイネーブル信号である。信号2105は、プログラミングのためのソース線又は制御ゲートなどのためのプログラム高電圧増分である。1つのプログラムパルスから次のプログラムパルスまで同じであり得るか、又は増分する。信号2103のプログラムパルス幅は、増分高電圧を有する複数のパルスにわたって同じである。信号2104のプログラムパルス幅は、同じ高電圧増分の複数のパルスの間で異なっており、例えば、第1のパルスでは狭くなっている。
図22は、VMMマトリックス2201、列デコーダ2202、及び列ドライバ2203を含む、VMMシステム2200を示す。
図23は、図22の列ドライバ2203として使用することができる、例示的な列ドライバ2300を示す。列ドライバ2300は、図示のように構成された、ラッチ2301、インバータ2302、NORゲート2303、PMOSトランジスタ2304、並びにNMOSトランジスタ2305及び2306を含む。ラッチ2301は、データ信号DIN及びイネーブル信号ENを受信した。PMOSトランジスタ2304とNMOSトランジスタ2305との間のノードBLIOは、ビット線入力又は出力信号を含み、ビット線入力又は出力信号は、図22の列デコーダ2202などの列デコーダを介してビット線に選択的に接続される。検知増幅器SA2310は、選択されたメモリセルのセル電流を読み出すように、ノードBLIOを介してビット線に結合される。検知増幅器SA2310は、消去又はプログラム動作の後など、選択されたメモリセルの所望の電流レベルを検証するために使用される。PMOSトランジスタ2304は、禁止制御回路2301/2302/2303に応じてビット線をプログラミングにおいて禁止する役割を果たす。NMOSトランジスタ2306は、ビット線にバイアスプログラム電流を提供する。NMOSトランジスタ2305は、ビット線へのバイアスプログラム電流を可能にし、したがって、選択されたメモリセルのプログラミングが可能になる。したがって、NMOSトランジスタ2305のゲートへのプログラム制御信号(図19の信号1902/1903、図20の信号2003/2004、図21の信号2103/2104など)が、選択されたセルのプログラムを可能にする。
図24は、基準アレイマトリクス2401a、2401b、2401c、及び2401d、並びにVMMマトリクス2402a、2402b、2402c、及び2402dを含む、例示的なVMMシステム2400を示す。各VMMマトリクスは、独自の基準アレイマトリクスを有する。
図25は、単一の基準アレイマトリクス2501、並びにVMMマトリクス2502a、2502b、2502c、及び2502dを含む、例示的なVMMシステム2500を示す。単一の基準アレイマトリクス2501は、複数のVMMマトリクスにわたって共有される。
図26は、図24の基準マトリクス2401a~d、図25のマトリクス2501、又は図28及び図29の基準マトリクス2801若しくは2901として使用することができる、例示的な基準マトリクス2600を示す。基準マトリクス2600は、共通の制御ゲート信号2603及びソース線基準信号2604に結合された基準メモリセル2602a、2602b、2602c、及び2602x、並びに、読み出し又は検証動作で使用する複数のビット線基準信号を提供する、ビット線基準デコーダ2601を含む。例えば、基準メモリセル2602a~xは、100pA/200pA/300pA/.../30nAの増分電流レベルを提供することができる。又は、基準メモリセル2602a~xは、基準メモリセルごとに100pAの一定電流レベルを提供することができる。この場合、基準メモリセル2602a~xの組み合わせが、温度計コード方式で100pA/200pA/300pA/などを生成するなど、異なる基準電流レベルを生成するために使用される。所望の基準電流レベルを生成するために、一定及び/又は増分の、基準電流レベルの他の組み合わせを使用することができる。更に、2つの基準セル間の差電流を使用して、100pAの基準電流=250pAの基準電流-150pAの基準電流などの基準メモリセル電流を生成することができる。これは、例えば、温度に対して補償される基準電流を生成するために使用される。
図27は、図24の基準マトリクス2401a~d、図25のマトリクス2501、又は図28及び図29の基準マトリクス2801若しくは2901として使用することができる、例示的な基準マトリクス2700を示す。基準マトリクス2700は、共通の制御ゲート基準信号2703、消去ゲート基準信号2704、及びソース線基準信号2705に結合された基準メモリセル2702a、2702b、2702c、及び2702x、並びに、読み出し又は検証動作で使用する複数のビット線基準信号を提供する、ビット線基準デコーダ2701を含む。所望の基準電流レベルを生成するために、一定及び/又は増分の、基準電流レベルの組み合わせを、図26の場合と同様に使用することができる。
図28は、Icell PMOS比較回路2800を示し、Icell PMOS比較回路2800は、示されるように配置された、PMOSトランジスタ2801及び2804、NMOSカスコーディングトランジスタ2802及び2805、VMMメモリアレイ2820からの選択されたメモリセル2803、並びに基準マトリクス2806(基準マトリクス2500又は2600など)を含む。NMOSトランジスタ2802及び2805は、基準ビット線を所望の電圧レベルにバイアスするために使用される。出力電流Ioutは、選択されたメモリセル2803に記憶された値を示す電流値である。出力ノード2810の電圧レベルは、選択されたメモリセル2803内の電流と基準マトリクス28006からの基準電流との比較結果を示す。ノード2801の電圧は、選択されたメモリセル2803内の電流が基準マトリクス2806からの基準電流よりも大きい(又は小さい)場合、Vddまで上昇する(又は接地まで低下する)。
図29は、Icell PMOS比較回路2900を示し、Icell PMOS比較回路2900は、示されるように配置された、PMOSトランジスタ2901、スイッチ2902、2903、及び2904、NMOSカスコーディングトランジスタ2905及び2907、VMMメモリアレイ2920からの選択されたメモリセル2908、基準マトリクス2906(基準マトリクス2600又は2700など)、並びにコンパレータ2909を含む。出力COMP_OUTは、基準電流と比較した選択されたメモリセル2908に記憶された値を示す電流値である。Icell比較回路は、2つのミラーPMOSトランジスタ間の不整合を排除するために、時間多重化された単一のPMOS電流ミラーとして使用することによって機能する。第1の期間では、S0及びS1は閉じており、S2は開いている。基準メモリマトリクス2906からの電流は、PMOSトランジスタ2901に記憶(保持)される。次の期間では、S0及びS1は開いており、S2は閉じている。記憶された基準電流は、メモリセル2908からの電流と比較され、比較結果は出力ノード2910に示される。任意選択的に、コンパレータは、ノード2901の電圧を基準電圧VREFと比較して、比較の結果を示すことができる。ここで、基準電流をサンプリングして保持し、選択されたメモリセル2902からの電流をサンプリングし、PMOSトランジスタ2901内に保持して、基準電流と比較する。
別の実施形態では、図30に示すようなアレイ漏れ補償回路3051を単一のPMOSミラー回路と共に使用して、VMMアレイ3020の漏れをサンプリング(S3閉鎖)し(全てのワード線がオフであり、ビット線の漏れ電流が保持PMOSにサンプリングされる)、保持トランジスタ内の漏れを保持(S3開放)することができる。次いで、この漏れを比較期間内の選択されたメモリセル内の電流から差し引いて、比較のためのVMMアレイ3020からの実際のメモリセル電流を得る。これは、本明細書に記載される全ての比較回路に使用することができる。これは、基準アレイ漏れ補償のために使用することができる。
図31は、電流源3101、スイッチ3102、コンデンサ3103、コンパレータ3104、及びカウンタ3105を含む、Icell-デジタルデータ回路3100を示す。比較期間の開始時、信号3110は接地にプルダウンされる。次いで、信号3110は、セル電流3101(上述のようにアレイ漏れ補償を有するVMMメモリアレイから抽出される)に応じて上昇を開始する。ランプ速度は、セル電流3101及びコンデンサ3103に比例する。次いで、コンパレータ3104の出力3112により、カウンタ3105は、デジタル方式のカウントを開始することが可能になる。ノード3110の電圧が電圧レベルVREF3111に達すると、コンパレータ3104は極性を切り替え、カウンタ3105を停止させる。デジタル出力Q<N:0> 3113の値は、セル電流3101の値を示す。
図32は、Icell-デジタルデータ回路3100の動作のための波形3200を示す。信号3201は、ランプ電圧(図31の信号3110に対応する)である。信号3201のランプ速度が、異なるセル電流レベルに対して示される。信号3205及び3207は、2つの異なるセル電流に対するコンパレータの出力(図31の信号3121に対応する)である。信号3206及び3208は、上記2つの異なるセル電流に対するデジタル出力Q<N:0>である。
図33は、メモリセル電流源3301、スイッチ3302、コンデンサ3303、及びコンパレータ3304を含む、Icell-スロープ回路3300を示す。メモリセル電流は、上述のようにアレイ漏れ補償を有するVMMメモリアレイから抽出される。比較期間の開始時、信号3310は接地にプルダウンされる。次いで、信号3310は、セル電流3301(VMMメモリアレイから抽出される)に応じて上昇を開始する。ランプ速度は、セル電流3301及びコンデンサ3303に比例する。固定比較期間後、ノード3310の電圧は、コンパレータ3304によって基準電圧VREFx 3311と比較される。VREFx 3311は、例えば、16個の基準レベルに対して0.1V、0.2V、0.3V、..、1.5V、1.6Vである。したがって、各レベルは、16個の異なる電流レベルのための電流レベルに対応する。コンパレータ3304の出力は、セル電流3301の値を示す。ノード3310の電圧(固定比較期間後にS1を遮断することによってコンデンサ3303に保持され得る)を16個の基準レベルと比較するために、16個の基準レベルと共に16個のコンパレータが使用されるか、又は16個の基準レベルについて16倍多重化された基準レベルと共に1つのコンパレータが使用される。
図34は、Icell-スロープ回路3300の動作のための波形3400を示す。信号3401は、イネーブル信号3402の立ち上がりエッジにおいて異なる電圧レベル(Vcellx)を有する異なるランプ速度を示す。電圧Vcellxは、基準電圧と比較されて、セル電流の値を示す(図33の基準電圧VREFx 3311)。
図35は、メモリセル電流源3504、スイッチ3502、コンデンサ3501、NMOSカスコーディングトランジスタ3503、及びコンパレータ3505を含む、Icell-スロープ変換回路3500を示す。メモリセル電流3501は、上述のようにアレイ漏れ補償を有するVMMメモリアレイから抽出される。NMOS3503は、選択されたメモリセル(Icell3504として示される)のビット線の電圧をバイアスするために使用される。動作は、ランプ方向がランプアップではなくランプダウンであることを除いて、図31の動作と同様である。
図36は、Icell-スロープ回路3500の動作のための波形3600を示す。
本明細書で使用される場合、「の上方に(over)」及び「に(on)」という用語は両方とも、「に直接」(中間材料、要素、又は空間がそれらの間に何ら配設されない)、及び「の上に間接的に」(中間材料、要素、又は空間がそれらの間に配設される)を包括的に含むことに留意するべきである。同様に、「隣接した」という用語は、「直接隣接した」(中間材料、要素、又は空間がそれらの間に何ら配設されない)、及び「間接的に隣接した」(中間材料、要素、又は空間がそれらの間に配設される)を含み、「に取り付けられた」は、「に直接取り付けられた」(中間材料、要素、又は空間がそれらの間に何ら配設されない)、及び「に間接的に取り付けられた」(中間材料、要素、又は空間がそれらの間に配設される)を含み、「電気的に結合された」は、「に直接電気的に結合された」(要素を一緒に電気的に連結する中間材料又は要素がそれらの間にない)、及び「に間接的に電気的に結合された」(要素を一緒に電気的に連結する中間材料又は要素がそれらの間にある)を含む。例えば、要素を「基板の上方に」形成することは、その要素を基板に直接、中間材料/要素をそれらの間に何ら伴わずに、形成すること、並びにその要素を基板の上に間接的に、1つ以上の中間材料/要素をそれらの間に伴って、形成することを含み得る。

Claims (13)

  1. フラッシュメモリセルの行及び列を含むベクトルマトリクス乗算アレイ内の選択されたメモリセルをプログラミングする方法であって、該方法は、
    前記アレイ内の複数のフラッシュメモリセルをプログラミングするステップと、
    前記アレイ内の前記複数のフラッシュメモリセルを部分的に消去するステップと、
    前記複数のフラッシュメモリセル内の選択されたセルに対して第1のプログラム動作を実行するステップであって、第1のレベルの電荷は、前記選択されたセルの浮遊ゲートに記憶される、ステップと、
    前記選択されたセルに対して第2のプログラム動作を実行するステップであって、追加のレベルの電荷が、前記選択されたセルの前記浮遊ゲートに記憶される、ステップと、
    前記選択されたセルに所望のレベルの電荷が記憶されるまで、又は前記第2のプログラム動作が最大回数実行されるまで、前記第2のプログラム動作を繰り返すステップと、を含む、方法。
  2. 各第2のプログラム動作の後に検証工程が実行され、前記検証工程が第1の結果をもたらすと、前記繰り返すステップが行われ、前記検証工程が第2の結果をもたらすと、前記繰り返すステップが行われない、請求項1に記載の方法。
  3. 使用されていないメモリセルのためのハードプログラム工程を更に含む、請求項1に記載の方法。
  4. 前記第1のプログラム動作及び前記第2のプログラム動作はパルス変調を利用する、請求項1に記載の方法。
  5. 前記第1のプログラム動作及び前記第2のプログラム動作はプログラム電流変調を利用する、請求項1に記載の方法。
  6. 前記第1のプログラム動作及び前記第2のプログラム動作は、ある選択されたメモリセルにパルス変調を利用し、別の選択されたメモリセルに一定のプログラムパルスを利用する、請求項1に記載の方法。
  7. 前記第1のプログラム動作及び前記第2のプログラム動作は高電圧レベル変調を利用する、請求項1に記載の方法。
  8. 前記検証工程は、前記選択されたセルによって引き込まれた電流を、基準マトリクスによって引き込まれた電流と比較することを含む、請求項2に記載の方法。
  9. 前記メモリセルは、分割ゲートメモリセルである、請求項1に記載の方法。
  10. 前記メモリセルは、積層ゲートメモリセルである、請求項1に記載の方法。
  11. 前記基準マトリクスは、共有された制御ゲート及び共有された消去ゲートを含む、請求項に記載の方法。
  12. 前記基準マトリクスは、各基準セルに対して共有された制御ゲート及び別個の消去ゲートを含む、請求項に記載の方法。
  13. 基準電流は、基準マトリクスからの複数の定電流、増分電流、及び差分電流から組み合わされる、請求項1に記載の方法。
JP2020548820A 2018-03-14 2019-01-18 深層学習人工ニューラルネットワークにおけるアナログニューラルメモリをプログラミングするための方法及び装置 Active JP7217753B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023008471A JP2023065351A (ja) 2018-03-14 2023-01-24 深層学習人工ニューラルネットワークにおけるアナログニューラルメモリをプログラミングするための方法及び装置

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862642878P 2018-03-14 2018-03-14
US62/642,878 2018-03-14
US15/990,395 2018-05-25
US15/990,395 US10910061B2 (en) 2018-03-14 2018-05-25 Method and apparatus for programming analog neural memory in a deep learning artificial neural network
PCT/US2019/014357 WO2019177691A1 (en) 2018-03-14 2019-01-18 Method and apparatus for programming analog neural memory in a deep learning artificial neural network

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2023008471A Division JP2023065351A (ja) 2018-03-14 2023-01-24 深層学習人工ニューラルネットワークにおけるアナログニューラルメモリをプログラミングするための方法及び装置

Publications (2)

Publication Number Publication Date
JP2021517706A JP2021517706A (ja) 2021-07-26
JP7217753B2 true JP7217753B2 (ja) 2023-02-03

Family

ID=67904305

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2020548820A Active JP7217753B2 (ja) 2018-03-14 2019-01-18 深層学習人工ニューラルネットワークにおけるアナログニューラルメモリをプログラミングするための方法及び装置
JP2023008471A Pending JP2023065351A (ja) 2018-03-14 2023-01-24 深層学習人工ニューラルネットワークにおけるアナログニューラルメモリをプログラミングするための方法及び装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2023008471A Pending JP2023065351A (ja) 2018-03-14 2023-01-24 深層学習人工ニューラルネットワークにおけるアナログニューラルメモリをプログラミングするための方法及び装置

Country Status (7)

Country Link
US (2) US10910061B2 (ja)
EP (2) EP4141875A1 (ja)
JP (2) JP7217753B2 (ja)
KR (2) KR102457901B1 (ja)
CN (1) CN111837190A (ja)
TW (2) TWI810613B (ja)
WO (1) WO2019177691A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10956814B2 (en) * 2018-08-27 2021-03-23 Silicon Storage Technology, Inc. Configurable analog neural memory system for deep learning neural network
US10741568B2 (en) * 2018-10-16 2020-08-11 Silicon Storage Technology, Inc. Precision tuning for the programming of analog neural memory in a deep learning artificial neural network
US11755899B2 (en) * 2019-11-11 2023-09-12 Silicon Storage Technology, Inc. Precise programming method and apparatus for analog neural memory in an artificial neural network
US11636322B2 (en) * 2020-01-03 2023-04-25 Silicon Storage Technology, Inc. Precise data tuning method and apparatus for analog neural memory in an artificial neural network
US11393535B2 (en) * 2020-02-26 2022-07-19 Silicon Storage Technology, Inc. Ultra-precise tuning of analog neural memory cells in a deep learning artificial neural network
TWM614073U (zh) * 2020-05-04 2021-07-01 神亞科技股份有限公司 用於執行卷積神經網路運算的處理裝置
US11682459B2 (en) * 2020-05-13 2023-06-20 Silicon Storage Technology, Inc. Analog neural memory array in artificial neural network comprising logical cells and improved programming mechanism
CN111625760B (zh) * 2020-06-01 2022-07-05 山东大学 基于闪存电学特性的存算一体方法
KR102525212B1 (ko) * 2020-12-03 2023-04-21 광운대학교 산학협력단 정전용량을 이용한 가중치 메모리 시스템 및 이의 동작방법
JP2024504003A (ja) * 2020-12-23 2024-01-30 シリコン ストーリッジ テクノロージー インコーポレイテッド 深層学習人工ニューラルネットワークにおけるアナログニューラルメモリ用の入力及びデジタル出力機構

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007128625A (ja) 2005-11-07 2007-05-24 Fujitsu Ltd 不揮発性半導体記憶装置及び不揮発性メモリセル消去方法
JP2007520029A (ja) 2004-01-27 2007-07-19 サンディスク コーポレイション 非揮発性メモリの雑/ファインプログラミングのための可変電流シンキング
JP2011527069A (ja) 2008-07-02 2011-10-20 サンディスク コーポレイション 不揮発性記憶装置のオーバープログラムの訂正
US20160141041A1 (en) 2014-11-18 2016-05-19 Sandisk Technologies Inc. Partial Erase of Nonvolatile Memory Blocks
WO2017200883A1 (en) 2016-05-17 2017-11-23 Silicon Storage Technology, Inc. Deep learning neural network classifier using non-volatile memory array

Family Cites Families (36)

* 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
JP3145894B2 (ja) 1995-03-10 2001-03-12 日本電気株式会社 電気的に書込み・消去可能な不揮発性半導体記憶装置
JPH10134587A (ja) * 1996-10-29 1998-05-22 Sony Corp 不揮発性半導体記憶装置
US6153494A (en) * 1999-05-12 2000-11-28 Taiwan Semiconductor Manufacturing Company Method to increase the coupling ratio of word line to floating gate by lateral coupling in stacked-gate flash
EP1436815B1 (en) 2001-09-18 2010-03-03 Kilopass Technology, Inc. Semiconductor memory cell and memory array using a breakdown phenomena in an ultra-thin dielectric
US6724029B2 (en) 2002-02-21 2004-04-20 International Business Machines Corporation Twin-cell flash memory structure and method
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
US7630237B2 (en) * 2003-02-06 2009-12-08 Sandisk Corporation System and method for programming cells in non-volatile integrated memory devices
US7002943B2 (en) * 2003-12-08 2006-02-21 Airtight Networks, Inc. Method and system for monitoring a selected region of an airspace associated with local area networks of computing devices
US7474559B1 (en) 2005-08-30 2009-01-06 Xilinx, Inc. Circuit and method for employing unused configuration memory cells as scratchpad memory
KR100984563B1 (ko) * 2005-09-09 2010-10-01 샌디스크 코포레이션 프로그램 혼란이 감소된 nand 타입 비휘발성 메모리의최종-최초 모드 및 프로그래밍 방법
US7456465B2 (en) 2005-09-30 2008-11-25 Freescale Semiconductor, Inc. Split gate memory cell and method therefor
JP4938020B2 (ja) * 2005-11-10 2012-05-23 サンディスク コーポレイション タイミング情報による逆結合効果
EP1843356A1 (en) 2006-04-03 2007-10-10 STMicroelectronics S.r.l. Method and system for refreshing a memory device during reading thereof
US7466575B2 (en) * 2006-05-12 2008-12-16 Anobit Technologies Ltd. Memory device programming using combined shaping and linear spreading
KR101401558B1 (ko) * 2007-08-20 2014-06-09 삼성전자주식회사 플래시 메모리 장치, 그것의 프로그램 및 소거 방법들,그리고 그것을 포함하는 메모리 시스템 및 컴퓨터 시스템
US7848158B2 (en) 2008-05-05 2010-12-07 Micron Technologies, Inc. Methods and apparatuses for programming flash memory using modulated pulses
US8144511B2 (en) * 2009-08-19 2012-03-27 Sandisk Technologies Inc. Selective memory cell program and erase
TW201225088A (en) * 2010-07-21 2012-06-16 Mosaid Technologies Inc Multipage program scheme for flash memory
US8499227B2 (en) * 2010-09-23 2013-07-30 Micron Technology, Inc. Memory quality monitor based compensation method and apparatus
US8837210B2 (en) * 2012-08-23 2014-09-16 Infineon Technologies Ag Differential sensing method and system for STT MRAM
US9165629B2 (en) 2013-03-12 2015-10-20 Taiwan Semiconductor Manufacturing Co., Ltd. Method and apparatus for MRAM sense reference trimming
US9275014B2 (en) * 2013-03-13 2016-03-01 Qualcomm Incorporated Vector processing engines having programmable data path configurations for providing multi-mode radix-2x butterfly vector processing circuits, and related vector processors, systems, and methods
US10120405B2 (en) * 2014-04-04 2018-11-06 National Instruments Corporation Single-junction voltage reference
KR20160050534A (ko) * 2014-10-30 2016-05-11 에스케이하이닉스 주식회사 누설 전류 감지부를 구비하는 반도체 집적 회로 장치 및 그 구동방법
WO2016068992A1 (en) * 2014-10-31 2016-05-06 Hewlett Packard Enterprise Development Lp Reusing sneak current in accessing memory cells
WO2016099438A1 (en) * 2014-12-15 2016-06-23 Hewlett Packard Enterprise Development Lp Nonvolatile memory cross-bar array
US9361995B1 (en) * 2015-01-21 2016-06-07 Silicon Storage Technology, Inc. Flash memory system using complementary voltage supplies
US9343131B1 (en) * 2015-02-24 2016-05-17 International Business Machines Corporation Mismatch and noise insensitive sense amplifier circuit for STT MRAM
GB2537484B (en) * 2015-03-20 2019-07-03 HGST Netherlands BV Read level grouping for increased flash performance
US10134475B2 (en) 2015-03-31 2018-11-20 Silicon Storage Technology, Inc. Method and apparatus for inhibiting the programming of unselected bitlines in a flash memory system
US9852024B2 (en) * 2016-04-19 2017-12-26 Winbond Electronics Corporation Apparatus and method for read time control in ECC-enabled flash memory
US10269440B2 (en) 2016-05-17 2019-04-23 Silicon Storage Technology, Inc. Flash memory array with individual memory cell read, program and erase
US10120649B2 (en) * 2016-07-29 2018-11-06 Microunity Systems Engineering, Inc. Processor and method for outer product accumulate operations
US9966127B2 (en) * 2016-10-12 2018-05-08 Micron Technology, Inc. Compensating for variations in selector threshold voltages
US10522226B2 (en) * 2018-05-01 2019-12-31 Silicon Storage Technology, Inc. Method and apparatus for high voltage generation for analog neural memory in deep learning artificial neural network

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007520029A (ja) 2004-01-27 2007-07-19 サンディスク コーポレイション 非揮発性メモリの雑/ファインプログラミングのための可変電流シンキング
JP2007128625A (ja) 2005-11-07 2007-05-24 Fujitsu Ltd 不揮発性半導体記憶装置及び不揮発性メモリセル消去方法
JP2011527069A (ja) 2008-07-02 2011-10-20 サンディスク コーポレイション 不揮発性記憶装置のオーバープログラムの訂正
US20160141041A1 (en) 2014-11-18 2016-05-19 Sandisk Technologies Inc. Partial Erase of Nonvolatile Memory Blocks
WO2017200883A1 (en) 2016-05-17 2017-11-23 Silicon Storage Technology, Inc. Deep learning neural network classifier using non-volatile memory array
JP2019517138A (ja) 2016-05-17 2019-06-20 シリコン ストーリッジ テクノロージー インコーポレイテッドSilicon Storage Technology, Inc. 不揮発性メモリアレイを使用したディープラーニングニューラルネットワーク分類器

Also Published As

Publication number Publication date
KR20220147698A (ko) 2022-11-03
WO2019177691A1 (en) 2019-09-19
US20210142854A1 (en) 2021-05-13
TWI736845B (zh) 2021-08-21
US20190287621A1 (en) 2019-09-19
TWI810613B (zh) 2023-08-01
KR102457901B1 (ko) 2022-10-21
TW201939516A (zh) 2019-10-01
KR20200101459A (ko) 2020-08-27
JP2021517706A (ja) 2021-07-26
US10910061B2 (en) 2021-02-02
JP2023065351A (ja) 2023-05-12
CN111837190A (zh) 2020-10-27
TW202143243A (zh) 2021-11-16
EP3766072A4 (en) 2021-12-15
EP3766072A1 (en) 2021-01-20
EP3766072B1 (en) 2022-11-30
EP4141875A1 (en) 2023-03-01

Similar Documents

Publication Publication Date Title
JP7217753B2 (ja) 深層学習人工ニューラルネットワークにおけるアナログニューラルメモリをプログラミングするための方法及び装置
JP7288461B2 (ja) 深層学習人工ニューラルネットワークにおけるアナログニューラルメモリの高電圧生成のための方法及び装置
JP7210585B2 (ja) 人工ニューラルネットワーク内のアナログニューロモーフィックメモリのための高精度かつ高効率な調整機構及びアルゴリズム
JP7281535B2 (ja) 深層学習ニューラルネットワークで使用されるアナログニューラルメモリシステムのメモリセルに対する温度補償及び漏れ補償
JP7270746B2 (ja) 2ゲート不揮発性メモリセルのアレイを使用するニューラルネットワーク分類子
JP7253563B2 (ja) 深層学習人工ニューラルネットワークにおけるアナログニューラルメモリ用のデコーダ
JP7266665B2 (ja) ディープラーニング人工ニューラルネットワークにおけるアナログニューロメモリ内の基準トランジスタ及びメモリセルに対する補償
JP7209811B2 (ja) 深層学習ニューラルネットワーク用の構成可能なアナログニューラルメモリシステム
JP2023515679A (ja) 人工ニューラルネットワーク内の差分セル対にシナプシス重みを記憶するアナログニューラルメモリアレイ
KR20210105428A (ko) 사용 빈도에 기초하여 프로그램 상태 간극을 가변시키기 위한 메모리 디바이스 및 방법
JP2023539845A (ja) アナログニューラルメモリにおける書き込みと検証との同時動作
JP7270747B2 (ja) 4ゲート不揮発性メモリセルのアレイを使用するニューラルネットワーク分類器
WO2023196000A1 (en) Vector-by-matrix-multiplication array utilizing analog inputs
WO2023014387A1 (en) Input circuitry for analog neural memory in a deep learning artificial neural network
WO2023018432A1 (en) Hybrid memory system configurable to store neural memory weight data in analog form or digital form
WO2023196002A1 (en) Vector-by-matrix-multiplication array utilizing analog outputs

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211028

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220913

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221213

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230124

R150 Certificate of patent or registration of utility model

Ref document number: 7217753

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150