(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-11
(45)【発行日】2024-01-19
(54)【発明の名称】深層学習人工ニューラルネットワークにおけるアナログニューラルメモリセルの超精密チューニング
(51)【国際特許分類】
G11C 16/10 20060101AFI20240112BHJP
G11C 11/54 20060101ALI20240112BHJP
G06N 3/065 20230101ALI20240112BHJP
H01L 21/336 20060101ALI20240112BHJP
H01L 29/788 20060101ALI20240112BHJP
H01L 29/792 20060101ALI20240112BHJP
H10B 41/30 20230101ALI20240112BHJP
【FI】
G11C16/10 140
G11C11/54
G06N3/065
H01L29/78 371
H10B41/30
(21)【出願番号】P 2022550938
(86)(22)【出願日】2020-08-31
(86)【国際出願番号】 US2020048829
(87)【国際公開番号】W WO2021173185
(87)【国際公開日】2021-09-02
【審査請求日】2022-10-20
(32)【優先日】2020-02-26
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-08-04
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】500147506
【氏名又は名称】シリコン ストーリッジ テクノロージー インコーポレイテッド
【氏名又は名称原語表記】SILICON STORAGE TECHNOLOGY, INC.
(74)【代理人】
【識別番号】110000626
【氏名又は名称】弁理士法人英知国際特許商標事務所
(72)【発明者】
【氏名】レムケ、スティーブン
(72)【発明者】
【氏名】トラン、ヒュー バン
(72)【発明者】
【氏名】カチェフ、ユリ
(72)【発明者】
【氏名】シュナイダー、ルイーザ
(72)【発明者】
【氏名】オムマニ、ヘンリー
(72)【発明者】
【氏名】ブー、サン
(72)【発明者】
【氏名】ドー、ナン
(72)【発明者】
【氏名】ティワリ、ビピン
【審査官】後藤 彰
(56)【参考文献】
【文献】特開2010-123210(JP,A)
【文献】特表2010-530112(JP,A)
【文献】国際公開第2019/177691(WO,A1)
【文献】特表2021-517706(JP,A)
【文献】米国特許第08000141(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G11C 16/10
G11C 11/54
G06N 3/065
H01L 21/336
H10B 41/30
(57)【特許請求の範囲】
【請求項1】
ニューラルメモリ内の選択されたメモリセルを標的値にプログラムする方法であって、
前記選択されたメモリセルの端子に第1の電圧シーケンスを印加することによって、前記選択されたメモリセルの浮遊ゲートを第1の電圧にプログラムするステップと、
隣接するチューニングセルの端子に第2の電圧シーケンスを印加することによって、前記選択されたメモリセルの浮遊ゲートと前記隣接するチューニングセルの浮遊ゲートとの間の容量結合を介して、前記選択されたメモリセルの浮遊ゲートを第2の電圧にプログラムするステップであって、前記第2の電圧は、前記標的値に対応する、ステップと、を含む、方法。
【請求項2】
前記選択されたメモリセルの端子は、ビット線に結合されたビット線端子と、ソース線に結合されたソース線端子と、ワード線に結合されたワード線端子と、を含む、請求項1に記載の方法。
【請求項3】
前記選択されたメモリセルの端子は、制御ゲート線に結合された制御ゲート端子を更に含む、請求項2に記載の方法。
【請求項4】
前記選択されたメモリセルの前記制御ゲート端子は、制御ゲート線に接続され、前記制御ゲート線は、前記選択されたメモリセルを含むセルの列及び隣接するセルの列の制御ゲート端子に接続される、請求項3に記載の方法。
【請求項5】
前記選択されたメモリセルの端子は、消去ゲート線に結合された消去ゲート端子を更に含む、請求項3に記載の方法。
【請求項6】
前記制御ゲート線は前記消去ゲート線に直交する、請求項5に記載の方法。
【請求項7】
前記制御ゲート線は前記ソース線に直交する、請求項5に記載の方法。
【請求項8】
前記選択されたメモリセルはスプリットゲートメモリセルである、請求項2に記載の方法。
【請求項9】
前記選択されたメモリセルは積層ゲートメモリセルである、請求項2に記載の方法。
【請求項10】
前記第2の電圧シーケンスにおけるそれぞれのプログラミングパルス中に、サブ単電子に相当する電荷が前記選択されたメモリセルの浮遊ゲートに加えられる、請求項1に記載の方法。
【請求項11】
前記選択されたメモリセル及び前記隣接するチューニングセルは、隣接するデータセル及びチューニングセルの複数の対を含む行内に含まれる、請求項1に記載の方法。
【請求項12】
前記選択されたメモリセル及び前記隣接するチューニングセルは、隣接するデータセル及びチューニングセルの複数の対を含むアレイ内に含まれる、請求項1に記載の方法。
【請求項13】
隣接するデータセル間の距離は、隣接するデータセルとチューニングセルとの間の距離より大きい、請求項11に記載の方法。
【請求項14】
前記行内の前記データセルの半分はW+値を記憶し、前記行内の前記データセルの半分はW-値を記憶する、請求項11に記載の方法。
【請求項15】
前記W+値を記憶するデータセルの前記半分は、チューニングセルとして使用される、請求項14に記載の方法。
【請求項16】
前記W-値を記憶するデータセルの半分は、チューニングセルとして使用される、請求項14に記載の方法。
【請求項17】
読み出し動作中、データビット線及びチューニングビット線の隣接する対は、検知増幅器に結合される、請求項11に記載の方法。
【請求項18】
前記データビット線及び前記チューニングビット線は交換可能である、請求項17に記載の方法。
【請求項19】
前記選択されたメモリセルの浮遊ゲートを第1の電圧にプログラムする前記ステップは、粗プログラミングを含む、請求項1に記載の方法。
【請求項20】
前記選択されたメモリセルの浮遊ゲートを第1の電圧にプログラムする前記ステップは、粗プログラミング及び精密プログラミングを含む、請求項1に記載の方法。
【請求項21】
前記選択されたメモリセルの浮遊ゲートをプログラムする前記ステップ中に、前記選択されたメモリセルの電圧が、前記第1の電圧を超える電圧にオーバープログラムされている場合、前記方法は、前記選択されたメモリセルを消去するステップを更に含む、請求項1に記載の方法。
【請求項22】
前記選択されたメモリセルの浮遊ゲート及び前記隣接するチューニングセルの浮遊ゲートは、部分的に重なり合っている、請求項1に記載の方法。
【請求項23】
ニューラルメモリ内の第1のメモリセルを標的値にプログラムする方法であって、
第2のメモリセルを、前記第2のメモリセルの端子にプログラミング電圧を印加することによってプログラムするステップと、
前記第1のメモリセルの出力が前記標的値に到達したかどうかを判定するステップと、を含む、方法。
【請求項24】
前記第2のメモリセルは前記第1のメモリセルに隣接する、請求項23に記載の方法。
【請求項25】
前記第1のメモリセルはデータビット線に結合され、前記第2のメモリセルはチューニングビット線に結合される、請求項23に記載の方法。
【請求項26】
前記プログラムするステップの前に、一対の隣接するビット線のどちらのビット線がより大きいノイズを含むかを判定し、当該ビット線を前記チューニングビット線として指定し、前記対の他方のビット線を前記データビット線として指定するステップを更に含む、請求項25に記載の方法。
【請求項27】
前記第1のメモリセル及び前記第2のメモリセルは、アナログニューラルメモリアレイに含まれる、請求項23に記載の方法。
【請求項28】
前記第1のメモリセルの前記出力が前記標的値に到達していない場合、前記第1のメモリセルの前記出力が前記標的値に到達するまで、前記プログラムするステップ及び前記
判定するステップを繰り返すステップを更に含む、請求項23に記載の方法。
【請求項29】
繰り返すステップごとに、前記第2のメモリセルの前記端子に印加される前記プログラミング電圧のうちの1つ以上を増加させる、請求項28に記載の方法。
【請求項30】
同じプログラミング電圧が、それぞれの繰り返すステップ中に使用される、請求項28に記載の方法。
【請求項31】
前記第2のメモリセルの前記端子は、ビット線端子、ソース線端子、及びワード線端子を含む、請求項23に記載の方法。
【請求項32】
前記第2のメモリセルの前記端子は制御ゲート端子を更に含む、請求項31に記載の方法。
【請求項33】
前記第1のメモリセルの前記制御ゲート端子は制御ゲート線に接続されており、
前記制御ゲート線は、前記第1のメモリセルを含むセルの列及び前記第2のメモリセルを含む隣接するセルの列の制御ゲート端子に接続されている、請求項32に記載の方法。
【請求項34】
前記第2のメモリセルの前記端子は消去ゲート線に結合された消去ゲート端子を更に含む、請求項33に記載の方法。
【請求項35】
前記制御ゲート線は前記消去ゲート線に直交する、請求項34に記載の方法。
【請求項36】
前記制御ゲート線は前記ソース線端子に結合されたソース線に直交する、請求項34に記載の方法。
【請求項37】
前記第1のメモリセル及び前記第2のメモリセルは、スプリットゲートメモリセルである、請求項23に記載の方法。
【請求項38】
前記第1のメモリセル及び前記第2のメモリセルは、積層ゲートメモリセルである、請求項23に記載の方法。
【請求項39】
前記プログラムするステップ中に、サブ単電子に相当する電荷が前記第1のメモリセルの浮遊ゲートに加えられる、請求項23に記載の方法。
【請求項40】
前記第1のメモリセル及び前記第2のメモリセルは、隣接するデータセル及びチューニングセルの複数の対を含むアレイ内に含まれる、請求項23に記載の方法。
【請求項41】
隣接するデータセル間の距離は、隣接するデータセルとチューニングセルとの間の距離より大きい、請求項40に記載の方法。
【請求項42】
前記
判定するステップ中に、前記第1のメモリセルに結合されたビット線及び前記第2のメモリセルに結合されたビット線は両方とも、検知増幅器に結合される、請求項23に記載の方法。
【請求項43】
前記第1のメモリセルに対して粗プログラミングを実行するステップを更に含む、請求項23に記載の方法。
【請求項44】
前記第1のメモリセルに対して粗プログラミングを実行するステップと、
前記第1のメモリセルに対して精密プログラミングを実行するステップと、を更に含む、請求項23に記載の方法。
【請求項45】
前記
選択されたメモリセルの浮遊ゲート及び前記
隣接するチューニングセルの浮遊ゲートは、部分的に重なり合っている、請求項21に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
(優先権の主張)
本出願は、2020年2月26日に出願された「Ultra-Precise Tuning of Analog Neural Memory Cells in a Deep Learning Artificial Neural Network」と題する米国特許仮出願第62/981,757号、及び、2020年8月4日に出願された「Ultra-Precise Tuning of Analog Neural Memory Cells in a Deep Learning Artificial Neural Network」と題する米国特許出願第16/985,147号の優先権を主張する。
【0002】
(発明の分野)
アナログニューラルメモリ内の選択された不揮発性メモリセルの超精密チューニングの実施形態が開示される。
【背景技術】
【0003】
人工ニューラルネットワークは、生物学的ニューラルネットワーク(動物の中枢神経系、特に脳)を模倣しており、多数の入力に依存し得、かつ、一般的に未知である関数を推定する又は近似するために使用される。人工ニューラルネットワークは、概して、メッセージを交換する相互接続した「ニューロン」の層を含む。
【0004】
図1は人工ニューラルネットワークを示しており、図中、円は、入力又はニューロンの層を表す。接続(シナプスと呼ばれる)は、矢印によって表され、経験に基づいてチューニングされ得る数値の重みを有する。これにより、人工ニューラルネットワークは入力に適応し、学習可能になる。典型的には、人工ニューラルネットワークは、複数の入力の層を含む。典型的には、1つ以上のニューロンの中間層、及びニューラルネットワークの出力を提供するニューロンの出力層が存在する。各レベルでニューロンは、シナプスから受信したデータに基づいて個々に又は集合的に決定を行う。
【0005】
高性能情報処理用の人工ニューラルネットワークの開発における主要な課題の1つは、適切なハードウェア技術の欠如である。実際には、実用人工ニューラルネットワークは、非常に多数のシナプスに依拠しており、これによりニューロン間の高い接続性、すなわち、非常に高度な計算処理の並列化が可能となる。原理的には、このような複雑性は、デジタルスーパーコンピュータ又は専用グラフィックプロセッシングユニットクラスタによって実現が可能である。しかしながら、高コストに加え、これらのアプローチはまた、生物学的ネットワークが主として低精度のアナログ計算を実施するのではるかに少ないエネルギーしか消費しないのと比較して、エネルギー効率が劣っていることに悩まされている。人工ニューラルネットワークにはCMOSアナログ回路が使用されてきたが、ほとんどのCMOS実装シナプスは、多数のニューロン及びシナプスを前提とすると、嵩高過ぎていた。
【0006】
出願人は以前に、参照により組み込まれる米国特許公開第2017/0337466号として公開された米国特許出願第15/594,439号において、シナプスとして1つ以上の不揮発性メモリアレイを利用する人工(アナログ)ニューラルネットワークを開示した。不揮発性メモリアレイは、アナログニューロモーフィックメモリとして動作する。本明細書で使用される場合、ニューロモーフィックという用語は、神経システムのモデルを実装する回路を意味する。アナログニューロモーフィックメモリは、第1の複数の入力を受信して、それから第1の複数の出力を生成するように構成されている第1の複数のシナプス、及び、第1の複数の出力を受信するように構成された第1の複数のニューロンを含む。第1の複数のシナプスは複数のメモリセルを含み、各メモリセルは、半導体基板内に形成された、間にチャネル領域が延在している離間したソース領域及びドレイン領域と、チャネル領域の第1の部分の上方に配設され、チャネル領域の第1の部分から絶縁された浮遊ゲートと、チャネル領域の第2の部分の上方に配設され、チャネル領域の第2の部分から絶縁された非浮遊ゲートと、を含む。複数のメモリセルの各々は、浮遊ゲート上の多くの電子に対応する重み値を記憶するように構成されている。複数のメモリセルは、第1の複数の入力に、記憶された重み値を乗算して第1の複数の出力を生成するように構成される。この様式で配置されるメモリセルのアレイは、ベクトル行列乗算(VMM)アレイと称され得る。
【0007】
<<不揮発性メモリセル>>
様々なタイプの既知の不揮発性メモリセルが、VMMアレイ内で使用され得る。例えば、参照により本明細書に組み込まれる、米国特許第5,029,130号(「’130号特許」)は、フラッシュメモリセルの一種であるスプリットゲート不揮発性メモリセルのアレイを開示する。このようなメモリセル210を
図2に示す。各メモリセル210は、半導体基板12内に形成されたソース領域14とドレイン領域16と、を含み、ソース領域14とドレイン領域16の間にはチャネル領域18がある。浮遊ゲート20は、チャネル領域18の第1の部分の上方に絶縁されて形成され(並びに、チャネル領域18の第1の部分の導電性を制御して)、ソース領域14の一部分の上方にかけて形成される。ワード線端子22(典型的には、ワード線に結合される)は、チャネル領域18の第2の部分の上方に配設され、チャネル領域18の第2の部分から絶縁された、(並びに、チャネル領域18の第2の部分の導電性を制御する)第1の部分と、浮遊ゲート20の上方で上に延在する第2の部分と、を有する。浮遊ゲート20及びワード線端子22は、ゲート酸化物によって基板12から絶縁される。ビット線端子24はドレイン領域16に結合される。
【0008】
ワード線端子22に高圧正電圧を印加することによって、メモリセル210に対して消去が行われ(電子が浮遊ゲートから除去される)、これによって、浮遊ゲート20の電子は、浮遊ゲート20からワード線端子22までそれらの間にある絶縁体の中をファウラーノルドハイム(Fowler-Nordheim)トンネリングを介して通過する。
【0009】
メモリセル210は、ワード線端子22に正電圧、及びソース領域14に正電圧を印加することによってプログラムされる(電子が浮遊ゲートに印加される)。電子電流は、ドレイン領域16からソース領域14(ソース線端子)に向かって流れる。電子は加速し、ワード線端子22と浮遊ゲート20との間の間隙に達すると、発熱する。熱せられた電子の一部が、浮遊ゲート20からの静電引力に起因して、浮遊ゲート20にゲート酸化物を介して注入される。
【0010】
メモリセル210は、ドレイン領域16及びワード線端子22に正の読み出し電圧を印加する(ワード線端子の下方のチャネル領域18の部分をオンにする)ことによって、読み出される。浮遊ゲート20が正に帯電する(すなわち、電子を消去する)と、浮遊ゲート20の下方のチャネル領域18の部分も同様にオンになり、電流はチャネル領域18を流れ、これは、消去された状態つまり「1」の状態として検知される。浮遊ゲート20が負に帯電する(すなわち、電子でプログラムされる)と、浮遊ゲート20の下方のチャネル領域の部分はほとんど又は完全にオフになり、電流はチャネル領域18を流れず(又はほとんど流れず)、これは、プログラムされた状態つまり「0」の状態として検知される。
【0011】
表1は、読み出し、消去、及びプログラム動作を実行するためのメモリセル110の端子に印加され得る典型的な電圧範囲を示す。
表1:
図2のフラッシュメモリセル210の動作
【表1】
「読み出し1」は、セル電流がビット線に出力される読み出しモードである。「読み出し2」は、セル電流がソース線端子の出力される読み出しモードである。
【0012】
図3は、制御ゲート(control gate、CG)端子28を追加した、
図2のメモリセル210と同様のメモリセル310を示す。制御ゲート端子28は、プログラミング中に高電圧(例えば、10V)、消去中に低又は負電圧(例えば、0v/-8V)、読み出し中に低又は中程度電圧(例えば、0v/2.5V)でバイアスされる。他の端子は、
図2の端子と同様にバイアスされる。
【0013】
図4は、ソース領域14と、ドレイン領域16と、チャネル領域18の第1の部分の上方にある浮遊ゲート20と、チャネル領域18の第2の部分の上方にある選択ゲート22(典型的には、ワード線、WL、に結合される)と、浮遊ゲート20の上方にある制御ゲート28と、ソース領域14の上方にある消去ゲート30と、を備える、4ゲートメモリセル410を示す。この構成は、あらゆる目的のため参照により本明細書に組み込まれる、米国特許第6,747,310号に記載されている。ここで、全てのゲートは、浮遊ゲート20を除いて、非浮遊ゲートであり、つまり、それらは電圧源に電気的に接続される又は接続可能である。プログラミングは、熱せられた電子がチャネル領域18から浮遊ゲート20にその電子自体を注入することによって実行される。消去は、電子が浮遊ゲート20から消去ゲート30へトンネリングすることによって実行される。
【0014】
表2は、読み出し、消去、及びプログラム動作を実行するためのメモリセル410の端子に印加され得る典型的な電圧範囲を示す。
表2:
図4のフラッシュメモリセル410の動作
【表2】
「読み出し1」は、セル電流がビット線に出力される読み出しモードである。「読み出し2」は、セル電流がソース線端子の出力される読み出しモードである。
【0015】
図5は、メモリセル510が消去ゲート(erase gate、EG)端子を含まないことを除いて、
図4のメモリセル410と同様のメモリセル510を示す。消去は、基板18を高電圧にバイアスし、制御ゲートCG端子28を低電圧又は負電圧にバイアスすることによって行われる。代替的に、ワード線端子22を正電圧にバイアスし、制御ゲート端子28を負電圧にバイアスすることによって、消去が行われる。プログラミング及び読み出しは、
図4のものと同様である。
【0016】
図6は、別の種類のフラッシュメモリセルである、3ゲートメモリセル610を示す。メモリセル610は、メモリセル610が別個の制御ゲート端子を有しないことを除いて、
図4のメモリセル410と同一である。(消去ゲート端子の使用を通じて消去が起こる)消去動作及び読み出し動作は、制御ゲートバイアスが印加されないことを除いて、
図4のものと同様である。プログラミング動作もまた、制御ゲートバイアスなしで行われるため、結果として、プログラム動作中は、制御ゲートバイアスの不足を補償するため、より高い電圧がソース線端子に印加されなければならない。
【0017】
表3は、読み出し、消去、及びプログラム動作を実行するためのメモリセル610の端子に印加され得る典型的な電圧範囲を示す。
表3:
図6のフラッシュメモリセル610の動作
【表3】
「読み出し1」は、セル電流がビット線に出力される読み出しモードである。「読み出し2」は、セル電流がソース線端子の出力される読み出しモードである。
【0018】
図7は、別の種類のフラッシュメモリセルである、積層ゲートメモリセル710を示す。メモリセル710は、浮遊ゲート20がチャネル領域18全体の上方にわたって延在し、制御ゲート端子22(ワード線に結合される)が絶縁層(図示せず)によって分離されて浮遊ゲート20の上方に延在することを除いて、
図2のメモリセル210と同様である。プログラミングは、チャネル18から、ドレイン領域16の隣のチャネル領域内の浮遊ゲート20へのホット電子注入を使用して実行され、消去は、浮遊ゲート20から基板12へのファウラーノルドハイム電子トンネリングを使用して実行される。読み出し動作は、メモリセル210について前述したものと同様の方法で動作する。
【0019】
表4は、読み出し、消去、及びプログラム動作を実行するためのメモリセル710及び基板12の端子に印加され得る典型的な電圧範囲を示す。
表4:
図7のフラッシュメモリセル710の動作
【表4】
【0020】
「読み出し1」は、セル電流がビット線に出力される読み出しモードである。「読み出し2」は、セル電流がソース線端子の出力される読み出しモードである。任意選択的に、メモリセル210、310、410、510、610、又は710の行及び列を含むアレイでは、ソース線は、メモリセルの1行又はメモリセルの隣接する2行に結合され得る。すなわち、ソース線端子は、メモリセルの隣接する行によって共有され得る。
【0021】
図8は、ツインスプリットゲートメモリセル810を示す。ツインスプリットゲートメモリセル810は、一対のメモリセル(左側のA及び右側のB)を含み、メモリセルのそれぞれは、基板12の上方に絶縁されて配設される浮遊ゲート(FGA、FGB)20と、浮遊ゲート20の上方に絶縁されて配設される制御ゲート28(CGA、CGB)と、浮遊ゲート20及び制御ゲート28に隣接して絶縁状態で配設され、かつ基板12の上方に絶縁されて配設される消去ゲート30(EG)であって、消去ゲートは、それぞれの浮遊ゲート
FGA、
FGBの上隅部がT字形の消去ゲートの内側隅部に面して消去効率を向上させるように、T字形で形成される、消去ゲートと、(ビット線コンタクト24(BLA、BLB)がそれぞれのドレイン領域16(DRA、DRB)に接続されている)浮遊ゲート20に隣接した基板内のドレイン領域16(DRA、DRB)と、を含む。メモリセルは、メモリセル対として形成され、共通消去ゲート30を共有する。このセル設計は、少なくとも、消去ゲートEGの下方のソース領域を欠き、選択ゲート(ワード線とも呼ばれる)を欠き、それぞれのメモリセルのチャネル領域を欠く点で、
図2~
図7を参照して上述されるメモリセルとは異なる。代わりに、単一の連続チャネル領域18が両メモリセルの下に延在する(すなわち、一方のメモリセルのドレイン領域16から他方のメモリセルのドレイン領域16まで延在する)。一方のメモリセルの読み出し又はプログラムを行うためには、他方のメモリセルの制御ゲート28を十分な電圧まで上昇させて、それらの間にある浮遊ゲート20への電圧結合によって、下にあるチャネル領域部分を起動させる(例えば、セルAの読み出し又はプログラムを行うには、CGBからの電圧結合によってFGB上の電圧を上昇させて、FGB下のチャネル領域を起動させる)。消去は、浮遊ゲート20A及び/又は浮遊ゲート20Bから消去ゲート30へのファウラーノルドハイム電子トンネリングを使用して実行される。プログラミングは、チャネル18から浮遊ゲート20A又は20Bへのホット電子注入を使用して実行される。
【0022】
表5は、読み出し、消去、及びプログラム動作を実行するためのメモリセル810の端子に印加され得る典型的な電圧範囲を示す。セルA(FG、CGA、BLA)は、読み出し、プログラム、及び消去動作のために選択される。
表5:
図8のフラッシュメモリセル810の動作
【表5】
【0023】
上記の人工ニューラルネットワークにおける不揮発性メモリセルの種類のうちの1つを含むメモリアレイを利用するために、一実施形態では、2つの修正が行われる。第1に、以下に更に説明されるように、アレイ内の他のメモリセルのメモリ状態に悪影響を与えずに各メモリセルを個々にプログラム、消去、及び読み出しできるように線を構成する。第2に、メモリセルの連続(アナログ)プログラミングを提供する。
【0024】
具体的には、アレイ内の各メモリセルのメモリ状態(すなわち、浮遊ゲート上の電荷)を、完全に消去された状態から完全にプログラムされた状態へ、独立して、かつ他のメモリセルの乱れが最小で、連続的に変えることができる。別の実施形態では、アレイ内のそれぞれのメモリセルのメモリ状態(すなわち、浮遊ゲートの電荷)を、完全にプログラムされた状態から完全に消去された状態へ、又は完全に消去された状態から完全にプログラムされた状態へ、独立して、かつ他のメモリセルの乱れが最小で、連続的に変えることができる。これはつまり、セル記憶がアナログであるか、又は多数の不連続値(16個又は256個の異なる値など)のうちの1つを最低限記憶することができることを意味し、これにより、メモリアレイ内の全てのセルが非常に精密に、かつ個々にチューニング可能となり(セルを標的値にプログラム又は消去することを意味する)、また、メモリアレイが、記憶、及びニューラルネットワークのシナプシスの重みへの微細チューニングに対して、理想的なものになる。
【0025】
本明細書に記載される方法及び手段は、限定することなく、FINFETスプリットゲートフラッシュ又はスタックゲートフラッシュ、SONOS(ケイ素-酸化物-窒化物-酸化物-ケイ素、窒化物中の電荷トラップ)、MONOS(金属-酸化物-窒化物-酸化物-ケイ素、窒化物中の金属電荷トラップ)、ReRAM(抵抗変化型メモリ)、PCM(相変化メモリ)、MRAM(磁気抵抗メモリ)、FeRAM(強誘電体メモリ)、OTP(バイレベル又はマルチレベルの1回のみのプログラムが可能)及びCeRAM(強相関電子メモリ)などの他の不揮発性メモリ技術に適用することができる。本明細書に記載される方法及び手段は、限定することなく、SRAM、DRAM、及び他の揮発性シナプスセルなどのニューラルネットワークに使用される揮発性メモリ技術に適用することができる。
【0026】
<<不揮発性メモリセルアレイを使用するニューラルネットワーク>>
図9は、本実施形態の不揮発性メモリアレイを利用するニューラルネットワークの非限定例を概念的に示す。この例は、顔認識アプリケーション用に不揮発性メモリアレイニューラルネットワークを使用するが、不揮発性メモリアレイベースのニューラルネットワークを使用して他の適切なアプリケーションを実装することも可能である。
【0027】
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の異なる特徴マップを生成する。
【0028】
本例では、層C1において、各々30×30ピクセルを有する16個の特徴マップが存在する。各ピクセルは、入力とカーネルとの乗算から抽出された新しい特徴ピクセルであり、したがって、各特徴マップは、2次元アレイであり、したがってこの例では、層C1は、2次元アレイの16層を構成する(本明細書で言及される層及びアレイは、必ずしも物理的関係ではなく論理的な関係であり、すなわち、アレイは必ずしも物理的な2次元アレイに配向されないことに留意されたい)。層C1内の16個の特徴マップの各々は、フィルタスキャンに適用される異なるシナプス重みのセット16個のうちの1つによって生成される。C1特徴マップは全て、境界同定など、同じ画像特徴の異なる態様を対象とすることができる。例えば、第1のマップ(この第1のマップを生成するために使用される全てのスキャンに共有される第1の重みセットを使用して生成される)は、円形エッジを識別することができ、第2のマップ(第1の重みセットと異なる第2の重みセットを使用して生成される)は、長方形エッジ又は特定の特徴のアスペクト比などを識別することができる。
【0029】
層C1から層S1へ行く前には、各特徴マップ内の重なり合わずに連続する2×2領域からの値をプールする活性化関数P1(プーリング)が適用される。プーリング関数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個のニューロンを含み、ここで出力が最も高いニューロンが、クラス(分類)を決定する。この出力は、例えば、元の画像の内容の同定又は分類を示すことができる。
【0030】
シナプスの各層は、不揮発性メモリセルのアレイ又はアレイの一部を使用して実装される。
【0031】
図10は、その目的のために使用可能なシステムのブロック図である。VMMシステム32は、不揮発性メモリセルを含み、ある層と次の層との間のシナプス(
図6のCB1、CB2、CB3、及びCB4など)として利用される。具体的には、VMMシステム32は、行及び列に配置された不揮発性メモリセルを備えるVMMアレイ33、消去ゲート及びワード線ゲートデコーダ34、制御ゲートデコーダ35、ビット線デコーダ36、並びにソース線デコーダ37を備え、それらのデコーダは、VMMアレイ33に対するそれぞれの入力をデコードする。VMMアレイ33への入力は、消去ゲート及びワード線ゲートデコーダ34から、又は制御ゲートデコーダ35から行うことができる。この例におけるソース線デコーダ37はまた、VMMアレイ33の出力をデコードする。代替的に、ビット線デコーダ36が、VMMアレイ33の出力をデコードすることができる。
【0032】
不揮発性メモリセルアレイ33は、2つの目的を果たす。第1に、VMMシステム32によって使用される重みを記憶する。第2に、不揮発性メモリセルアレイ33は、効果的に、入力に、VMMアレイ33に記憶された重みを乗算し、それらを出力線(ソース線又はビット線)ごとに合計して出力を生成し、これは、次の層への入力又は最後の層への入力になる。乗算及び加算の関数を実行することによって、VMMアレイ33は、別個の乗算及び加算の論理回路の必要性をなくし、また、その場でのメモリ計算により電力効率も良い。
【0033】
VMMアレイ33の出力は、VMMアレイ33の出力を合計してその畳み込み用の単一の値を作成する、差動加算器(加算演算増幅器又は加算電流ミラーなど)38に供給される。差動加算器38は、正の重み入力及び負の重み入力両方の総和を実行して単一の値を出力するように配置される。
【0034】
差動加算器38の合計された出力値は、次に出力を整流する活性化関数回路39に供給される。活性化関数回路39は、シグモイド関数、tanh関数、ReLU関数、又は任意の他の非線形関数を提供し得る。活性化関数回路39の整流された出力値は、次の層(例えば
図8のC1)の特徴マップの要素になり、次いで、次のシナプスに適用されて次の特徴マップ層又は最後の層を生成する。したがって、この例では、VMMアレイ33は、複数のシナプス(それは、ニューロンの前の層から、又は画像データベースなどの入力層から、入力を受信する)を構成し、加算器38及び活性化関数回路39は、複数のニューロンを構成する。
【0035】
図10のVMMシステム32への入力(WLx、EGx、CGx、及び任意選択的にBLx及びSLx)は、アナログレベル、バイナリレベル、デジタルパルス(この場合、パルスを適切な入力アナログレベルに変換するためにパルス-アナログ変換器PACが必要とされ得る)又はデジタルビット(この場合、デジタルビットを適切な入力アナログレベルに変換するためにDACが提供される)であり得、出力は、アナログレベル(例えば、電流、電圧、又は電荷)、バイナリレベル、デジタルパルス、又はデジタルビットであり得る(この場合、出力アナログレベルをデジタルビットに変換するために出力ADCが提供される)。
【0036】
図11は、図中でVMMシステム32a、32b、32c、32d及び32eとして標示されたVMMシステム32の多数の層の使用を示すブロック図である。
図11に示されるように、入力(Inputxで示される)は、デジタル-アナログ変換器31によってデジタルからアナログに変換され、入力VMMシステム32aに提供される。変換されたアナログ入力は、電圧又は電流であり得る。第1の層の入力D/A変換は、入力VMMシステム32aの行列乗算器の適切なアナログレベルに入力Inputxをマッピングする関数又はLUT(ルックアップテーブル)を使用することによって行うことができる。入力変換はまた、外部アナログ入力を入力VMMシステム32aへのマッピングされたアナログ入力に変換するように、アナログ-アナログ(A/A)変換器によって行うこともできる。入力変換はまた、外部デジタル入力を入力VMMシステム32aへのマッピングされたデジタルパルス(単数又は複数)に変換するように、デジタル-デジタルパルス(D/P)変換器によって行うこともできる。
【0037】
入力VMMシステム32aによって生成された出力は、次に、次のVMMシステムが、さらに次の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はまた、そのアレイ又はニューロンの様々な部分に対して時間多重化され得る。
図11に示される例は、5つの層(32a、32b、32c、32d、32e)、すなわち、1つの入力層(32a)、2つの隠れ層(32b、32c)、及び2つの完全に接続された層(32d、32e)を含む。当業者であれば、これは単なる例示であり、代わりにシステムが2つを超える隠れ層及び2つを超える完全に接続された層を含み得ることを理解するであろう。
【0038】
VMMアレイに使用される各不揮発性メモリセルは、浮遊ゲート内に電荷、すなわち電子の数、を非常に具体的かつ精確な量で保持するように消去及びプログラムされなければならない。例えば、各浮遊ゲートはN個の異なる値のうちの1つを保持しなければならず、ここで、Nは、各セルによって示され得る異なる重みの数である。Nの例としては、16、32、64、128及び256が挙げられる。1つの課題は、異なるNの値に必要な精度及び粒度で選択されたセルをプログラムする能力である。例えば、選択されたセルが128個の異なる値のうちの1つを含み得る場合、極めて高い精度がプログラム動作で必要とされる。
【0039】
必要とされるのは、アナログニューロモーフィックメモリにおいてVMMアレイと共に使用するのに適した、改善されたプログラミングシステム及び方法である。
【発明の概要】
【0040】
選択されたメモリセルの超精密チューニングのための実施形態が開示される。選択されたメモリセルは、任意選択的に、粗プログラミング方法及び微細プログラミング方法を使用して、最初にプログラムされる。次いで、選択されたメモリセルは、隣接するメモリセルのプログラミングを通じて超精密(超微細)プログラミングを受ける。隣接するメモリセルがプログラムされると、隣接するメモリセルの浮遊ゲートと選択されたメモリセルの浮遊ゲートとの間の容量結合が、選択されたメモリセルの浮遊ゲートの電圧を上昇させるが、選択されたメモリセルを直接プログラムすることによって達成され得るよりも増分は小さくなる。このようにして、選択されたメモリセルは、選択されたメモリセルの浮遊ゲートに対してプログラミングパルスごとに追加されるサブ単電子精度(部分電子精度)に対応する様式で超精密に移行しつつプログラムされ得る。
【0041】
一実施形態では、ニューラルメモリ内の選択されたメモリセルを標的値にプログラムする方法が開示され、該方法は、選択されたメモリセルの端子に第1の電圧シーケンスを印加することによって、選択されたメモリセルの浮遊ゲートを第1の電圧にプログラムするステップと、隣接するチューニングセルの端子に第2の電圧シーケンスを印加することによって、選択されたメモリセルの浮遊ゲートと隣接するチューニングセルの浮遊ゲートとの間の容量結合を介して、選択されたメモリセルの浮遊ゲートを第2の電圧にプログラムするステップと、を含み、第2の電圧は標的値に対応する。
【0042】
【0043】
【0044】
【0045】
【0046】
【0047】
【0048】
【0049】
【0050】
【0051】
【0052】
【0053】
【0054】
【0055】
【0056】
【0057】
【0058】
【0059】
【0060】
【0061】
【0062】
【0063】
【0064】
【0065】
【0066】
【0067】
【0068】
【0069】
【0070】
【図面の簡単な説明】
【0071】
【
図1】先行技術の人工ニューラルネットワークを示す。
【
図2】先行技術のスプリットゲートフラッシュメモリセルを示す。
【
図3】別の先行技術のスプリットゲートフラッシュメモリセルを示す。
【
図4】別の先行技術のスプリットゲートフラッシュメモリセルを示す。
【
図5】別の先行技術のスプリットゲートフラッシュメモリセルを示す。
【
図6】別の先行技術のスプリットゲートフラッシュメモリセルを示す。
【
図7】先行技術の積層ゲートフラッシュメモリセルを示す。
【
図8】先行技術のツインスプリットゲートフラッシュメモリセルを示す。
【
図9】1つ以上の不揮発性メモリアレイを利用する例示的な人工ニューラルネットワークの様々なレベルを示す。
【
図11】1つ以上のベクトル行列乗算システムを利用する例示的な人工ニューラルネットワークを示す。
【
図13A】不揮発性メモリセルをプログラムする方法の一実施形態を示す。
【
図13B】不揮発性メモリセルをプログラムする方法の別の実施形態を示す。
【
図14】粗プログラミング方法の一実施形態を示す。
【
図15】不揮発性メモリセルのプログラミングで使用される例示的なパルスを示す。
【
図16】不揮発性メモリセルのプログラミングで使用される例示的なパルスを示す。
【
図17】セルの傾斜特性に基づいてプログラミングパラメータを調整する、不揮発性メモリセルのプログラミングのための較正アルゴリズムを示す。
【
図18】不揮発性メモリセルのプログラミングのための較正アルゴリズムを示す。
【
図19】不揮発性メモリセルのプログラミングのための較正アルゴリズムを示す。
【
図20】プログラミングパルスのシーケンス中の選択されたメモリセルの浮遊ゲート電圧を示す。
【
図21】超精密プログラミングが可能なVMMアレイを示す。
【
図23】ある列は正の値(W+)を含み、ある列は負の値(W-)を含む、超精密プログラミングが可能なVMMアレイを示す。
【
図24】プログラミングパルスのシーケンス中の選択されたメモリセルの浮遊ゲート電圧を示す。
【
図25A】ノイズを低減するために隣接するセルが一緒に読み出される、超精密プログラミングが可能なVMMアレイを示す。
【
図25B】検知増幅器によって一緒に読み出された隣接するセルの概略図を示す。
【
図28】プログラミングパルスのシーケンス中の選択されたメモリセル及び隣接するチューニングセルの浮遊ゲート電圧を示す。
【発明を実施するための形態】
【0072】
図12は、VMMシステム1200のブロック図を示す。VMMシステム1200は、VMMアレイ1201、行デコーダ1202、高電圧デコーダ1203、列デコーダ1204、ビット線ドライバ1205、入力回路1206、出力回路1207、制御論理1208、及びバイアス生成器1209を備える。VMMシステム1200は、チャージポンプ1211、チャージポンプ調節器1212、及び高電圧レベル生成器1213を含む、高電圧生成ブロック1210を更に備える。VMMシステム1200は、アルゴリズムコントローラ1214、アナログ回路1215、制御論理1216、及び試験制御論理1217を更に備える。以下に記載されるシステム及び方法は、VMMシステム1200に実装され得る。
【0073】
様々なレベルの精度が、粗プログラミング、精密プログラミング、及び超精密プログラミングを使用するプログラミングプロセス中に達成され得る。
【0074】
ニューラルネットワークについて本明細書に記載されているように、VMMアレイ1200の不揮発性メモリセル、すなわちVMMアレイ1200のフラッシュメモリは、サブスレッショルド領域で動作するように構成されることが好ましい。
【0075】
本明細書に記載される不揮発性基準メモリセル及び不揮発性メモリセルは、以下のようにサブスレッショルド領域でバイアスされる:
Ids=Io*e(Vg-Vth)/nVt=w*Io*e(Vg)/nVt
式中、w=e(-Vth)/nVtであり、
式中、Idsはドレイン-ソース間電流であり、Vgはメモリセルのゲート電圧であり、Vthはメモリセルのスレッショルド電圧であり、Vtは熱電圧=k*T/qであり、kはボルツマン定数、Tはケルビン温度、qは電子電荷であり、nは傾斜係数=1+(Cdep/Cox)であり、Cdep=空乏層の容量、及びCoxはゲート酸化物層の容量であり、Ioは、スレッショルド電圧に等しいゲート電圧におけるメモリセル電流であり、Ioは(Wt/L)*u*Cox*(n-1)*Vt2に比例し、式中、uはキャリア移動度であり、Wt及びLはそれぞれ、メモリセルの幅及び長さである。
【0076】
メモリセル(基準メモリセル又は周辺メモリセルなど)又はトランジスタを使用して入力電流Idsを入力電圧Vgに変換するI-Vログ変換器を使用した場合:
Vg=n*Vt*log[Ids/wp*Io]
式中、wpは、基準又は周辺メモリセルのwである。
【0077】
メモリセル(基準メモリセル又は周辺メモリセルなど)又はトランジスタを使用して入力電流Idsを入力電圧Vgに変換するI-Vログ変換器を使用した場合:
Vg=n*Vt*log[Ids/wp*Io]
式中、wpは、基準又は周辺メモリセルのwである。
【0078】
ベクトル行列乗算器VMMアレイとして使用されるメモリアレイについて、出力電流は以下である:
Iout=wa*Io*e(Vg)/nVt、すなわち
Iout=(wa/wp)*Iin=W*Iin
W=e(Vthp-Vtha)/nVt
Iin=wp*Io*e(Vg)/nVt
式中、wa=メモリアレイの各メモリセルのw である。
【0079】
ワード線又は制御ゲートは、入力電圧のためのメモリセルの入力として使用することができる。
【0080】
代替的に、本明細書に記載されたVMMアレイの不揮発性メモリセルは、線形領域で動作するように構成することができる。
Ids=ベータ*(Vgs-Vth)*Vds; ベータ=u*Cox*Wt/L
W α (Vgs-Vth)
すなわち、直線領域における重みWは、(Vgs-Vth)に比例する。
【0081】
ワード線又は制御ゲート又はビット線又はソース線は、線形領域内で動作するメモリセルの入力として使用することができる。ビット線又はソース線は、メモリセルの出力として使用することができる。
【0082】
I-V線形変換器用に、線形領域で動作するメモリセル(基準メモリセル又は周辺メモリセルなど)若しくはトランジスタ、又は抵抗器を使用して、入出力電流を入出力電圧に線形変換することができる。
【0083】
代替的に、本明細書に記載されたVMMアレイのメモリセルは、飽和領域で動作するように構成することができる。
Ids=1/2*ベータ*(Vgs-Vth)2; ベータ=u*Cox*Wt/L
W α (Vgs-Vth)2、すなわち重みWは、(Vgs-Vth)2に比例する。
【0084】
ワード線、制御ゲート、又は消去ゲートは、飽和領域内で動作するメモリセルの入力として使用することができる。ビット線又はソース線は、出力ニューロンの出力として使用することができる。
【0085】
代替的に、本明細書に記載されるVMMアレイのメモリセルは、ニューラルネットワークのそれぞれの層又は多層に対して全ての領域又はそれらの組み合わせ(サブスレッショルド、線形、又は飽和)で使用され得る。
【0086】
<<VMM内のセルの粗プログラミング及び精密プログラミングのための実施形態>>
図13Aは、粗プログラミング及び精密プログラミングを利用するプログラミング方法1300を示す。最初に、方法は、典型的には受信されるプログラムコマンドに応じて、開始する(ステップ1301)。次に、一斉プログラム動作が、全てのセルを「0」状態にプログラムする(ステップ1302)。次いで、それぞれのセルが、読み出し動作中に例えば約3~5μAの電流を引き込むように、ソフト消去動作が、全てのセルに対して中間弱消去レベルに消去を行う(ステップ1303)。これは、読み出し動作中に各セルが約20~30μAの電流を引き込む、深く消去されたレベルとは対照的である。次いで、全ての未使用セルで非常に深いプログラムされた状態までセルの浮遊ゲートに電子を追加するハードプログラムが実行されて(ステップ1304)、それらのセルが本当に「オフ」であることを確実にし、すなわち、それらのセルは読み出し動作中に無視できる量の電流しか引き込まない。
【0087】
次いで、粗プログラミング方法(セルを標的にかなり近づける、例えば、標的の1.2倍~100倍)が、選択されたセルで実行され(ステップ1305)、続いて精密プログラミング方法が、選択されたセルで実行されて(ステップ1306)、選択されたそれぞれのセルに所望される精密な値をプログラムする。
【0088】
図13Bは、プログラミング方法1300と同様であり、また粗プログラミング及び精密プログラミングを利用する別のプログラミング方法1310を示す。しかしながら、方法が開始した後(ステップ1301)、
図13Aのステップ1302でのように全てのセルを「0」状態にプログラムするプログラム動作の代わりに、消去動作が使用されて、全てのセルに対して消去を行って「1」状態にする(ステップ
1312)。次いで、それぞれのセルが読み出し動作中に約0.2~5uA(例えば、標的の2倍~100倍)の電流を引き込むように、ソフト(弱)プログラム動作(ステップ1313)が使用されて、全てのセルを中間状態(レベル)にプログラムする。その後、
図13Aの場合と同様に、粗プログラミング方法及び精密プログラミング方法が続く。
図13Bの実施形態の変形として、ソフトプログラミング方法(ステップ1313)を完全に除去してもよい。
【0089】
図14は、検索及び実行方法1400である、粗プログラミング方法1305の第1の実施形態を示す。最初に、ルックアップテーブル検索又は関数検索を実行して、選択されたセルの粗標的電流値(I
CT)を、その選択されたセルに記憶されることが意図される値に基づいて決定する(ステップ1401)。このテーブル又は関数は、例えば、ケイ素特性評価によって、又はウェハ試験の較正から作成される。選択されたセルは、N個の可能な値(例えば、限定することなく、128、64、32など)のうちの1つを記憶するようにプログラムされ得るものとする。N個の値のそれぞれは、選択されたセルによって読み出し動作中に引き込まれる異なる所望の電流値(I
D)に対応し得る。一実施形態では、ルックアップテーブルは、検索及び実行方法1400中に選択されたセルに対する粗標的電流値I
CTとして使用するためのM個の可能な電流値を含み得、Mは、Nより小さい整数である。例えば、Nが8である場合、Mは4であり得、これは、選択されたセルが記憶し得る8個の可能な値が存在することを意味し、4つの粗標的電流値のうちの1つが、検索及び実行方法1400の粗標的として選択されることになる。すなわち、検索及び実行方法1400(繰り返しになるが、粗プログラミング方法1305の実施形態である)は、選択されたセルを、所望の電流値(I
D)に幾分近い粗標的電流値(I
CT)に迅速にプログラムすることを意図しており、次いで、精密プログラミング方法1306は、所望の電流値(I
D)に極めて近くなるように、選択されたセルをより精密にプログラムすることを意図する。
【0090】
セル値、所望の電流値、及び粗標的電流値の例を、N=8及びM=4の単純な例について表
6及び
7に示す。
表
6:N=8の場合のN個の所望の電流値の例
【表6】
表
7:M=4の場合のM個の標的電流値の例
【表7】
【0091】
オフセット値I
CTOFFSETxは、粗チューニング中に所望の電流値のオーバーシュートを防止するために使用される。粗標的電流値I
CTが選択されると、選択されたセルは、選択されたセルのセルアーキテクチャタイプ(例えば、メモリセル210、310、410、又は510)に基づいて、選択されたセルの適切な端子に電圧v
0を印加することによってプログラムされる(ステップ1402)。選択されたセルが
図3のメモリセル310のタイプである場合、電圧v
0は制御ゲート端子28(及び/又はソース線14)に印加され、v
0は粗標的電流値I
CTに応じて、例えば、5~8Vであり得る。v
0の値は、任意選択的に、粗標的電流値I
CTと対応させてv
0を記憶する電圧ルックアップテーブルから決定することができる。
【0092】
次に、選択されたセルは、電圧vi=vi-1+vincrementを印加することによってプログラムされ、式中、iは1で開始し、このステップが繰り返されるたびに増分し、vincrementは、所望される変化の粒度に見合う程度のプログラミングを引き起こす小さい微弱電圧である(ステップ1403)。したがって、第1の時間ステップ1403はi=1で実行され、v1は、v0+vincrementである。次いで、検証動作が行われ(ステップ1404)、ここで、選択されたセルで読み出し動作が実行され、選択されたセルを通って引き込まれる電流(Icell)が測定される。IcellがICT(ここでは第1のスレッショルド値である)以下である場合、検索及び実行方法1400は完了し、精密プログラミング方法1306が開始し得る。Icellが粗標的電流値ICT以下でない場合、ステップ1403が繰り返され、iは増分される。
【0093】
したがって、粗プログラミング方法1305が終了し、精密プログラミング方法1306が開始する時点で、電圧viは、選択されたセルをプログラムするために使用される最後の電圧であり、選択されたセルは、粗標的電流値ICTに関連付けられた値を記憶することになる。精密プログラミング方法1306の目標は、選択されたセルを、読み出し動作中に選択されたセルが電流ID(+/-50pA又は+/-30%以下などの許容可能な量の偏差を加減する)を引き込む点にプログラムすることであり、この電流は、選択されたセルに記憶されることが意図される値に関連付けられている所望の電流値である。
【0094】
図15は、粗プログラミング方法1305及び/又は精密プログラム方法1306中に、選択されたメモリセルの制御ゲートに印加され得る異なる電圧進行の例を示す。
【0095】
第1のアプローチ下では、選択されたメモリセルを更にプログラムするために、増加する電圧が制御ゲートに漸次印加される。出発点はviであり、粗プログラミング方法1305中に印加される最後の電圧(又は所望に応じて、若しくは標的電流に応じていくらかのデルタ電圧が加減される)に近似している。増分vp1がviに加えられ、次いで、電圧vu+vp1が使用されて、選択されたセルをプログラムする(進行1501において左から2番目のパルスによって示される)。vp1は、vincrement(粗プログラミング方法1305の間に使用される電圧増分)より小さい増分である。それぞれのプログラミング電圧が印加された後、IcellがIPT1(第1の精密標的電流値であり、ここでは第2のスレッショルド値である)以下であるかどうかの判定が行われる、検証ステップ(ステップ1404と同様)が実行され、IPT1=ID+IPT1OFFSETであり、IPT1OFFSETは、プログラムオーバーシュートを防止するために加算されるオフセット値である。判定が否である場合、別の増分vp1が、前に印加されたプログラミング電圧に加えられ、プロセスが繰り返される。IcellがIPT1以下である時点で、プログラミングシーケンスのこの部分は停止する。任意選択的に、IPT1がIDに等しいか、又は十分な精度でIDにほぼ等しい場合、選択されたメモリセルは正常にプログラムされている。
【0096】
I
PT1がI
Dに十分に近接していない場合は、より小さい粒度の更なるプログラミングを行うことができる。ここで、進行1502が使用される。進行1502の出発点は、進行1501の下でのプログラミングに使用される最後の電圧(又は所望に応じて、若しくは標的電流に応じていくらかのデルタ電圧が加減される)に近似している。増分V
p2(v
p1よりも小さい)がその電圧に加えられ、組み合わされた電圧が印加されて、選択されたメモリセルをプログラムする。それぞれのプログラミング電圧が印加された後、I
cellがI
PT2(第2の精密標的電流値であり、ここでは第3のスレッショルド値である)以下であるかどうかの判定が行われる、検証ステップ(ステップ1404と同様)が実行され、I
PT2=I
D+I
PT2OFFSETであり、I
PT2OFFSETは、プログラムオーバーシュートを防止するために加算されるオフセット値である。典型的には、プログラミングステップが回を重ねるごとにより小さく、より精密になるため、IPT2OFFSET<IPT1OFFSETとなる。判定が否である場合、別の増分V
p2が、前に印加されたプログラミング電圧に加えられ、プロセスが繰り返される。I
cellがI
PT2以下である時点で、プログラミングシーケンスのこの部分は停止する。ここで、標的値が十分な精度で達成されているので、I
PT2はI
Dに等しいか、又はプログラミングが停止できるほどI
Dに十分に近接していると想定される。当業者は、使用されるプログラミング増分が段々と小さくなって追加の進行が適用され得ることを理解することができる。例えば、
図16では、2つだけではなく、3つの進行(1601、1602、及び1603)が適用される。
【0097】
第2のアプローチは、
図15の進行1503及び
図16の進行1604に示されている。ここで、選択されたメモリセルのプログラミング中に印加される電圧を増加させる代わりに、増加する期間の持続時間に対して同じ電圧が印加される。進行1501におけるv
p1及び進行
1502におけるv
p2などの増分電圧を加える代わりに、それぞれの印加パルスが、前に印加されたパルスよりもt
p1だけ長くなるように、追加の時間増分t
p1がプログラミングパルスに加えられる。それぞれのプログラミングパルスが印加された後、検証ステップ(ステップ1404と同様)が実行される。任意選択的に、プログラミングパルスに加えられる追加の時間増分が前の使用された進行よりも短い持続時間である、追加の進行を、印加することができる。1つの時間的な進行のみが示されているが、当業者は、任意の数の異なる時間的進行が印加され得ることを理解するであろう。
【0098】
あるいは、それぞれのパルスの持続時間は、パルス進行1503及び1603について同じであり得、システムは、追加のプログラミングを実行するためのパルスの数に依存し得る。
【0099】
ここで、粗プログラミング方法1305の3つの更なる実施形態について、更なる詳細が提供される。
【0100】
図17は、適応較正方法1700である粗プログラミング方法1305の第1の実施形態を示す。方法が開始する(ステップ1701)。セルは、デフォルトの出発値v
0でプログラムされる(ステップ1702)。検索及び実行方法1400とは異なり、ここでv
0は、ルックアップテーブルから得られず、代わりに所定の比較的小さい初期値とすることができる。セルの制御ゲート電圧は、第1の電流値IR1(例えば、100na)及び第2の電流値IR2(例えば、10na)で測定され、サブスレッショルド傾斜は、それらの測定値に基づいて決定され(例えば、360mV/dec)、記憶される(ステップ1703)。
【0101】
新しい所望の電圧viが決定される。このステップが最初に実行されるとき、i=1であり、v1は、以下のようなサブスレッショルド式を使用して、記憶されたサブスレッショルド傾斜値並びに電流標的及びオフセット値に基づいて決定される。
Vi=Vi-1 + Vincrement、
Vincrementは、Vgの傾斜に比例する。
Vg=n*Vt*log[Ids/wa*Io]
ここで、waはメモリセルのwであり、Idsは電流標的プラスオフセット値である。
【0102】
記憶されたサブスレッショルド傾斜値が比較的急勾配である場合、比較的小さい電流オフセット値が使用され得る。記憶されたサブスレッショルド傾斜値が比較的平坦である場合、比較的大きい電流オフセット値が使用され得る。したがって、サブスレッショルド傾斜値を決定することは、問題の特定のセルにカスタマイズされている電流オフセット値が選択されることを可能にする。これは、最終的に、プログラミングプロセスをより短くする。このステップが繰り返されると、iはインクリメントされ、vi=vi-1+vincrementである。次いで、セルは、viを使用してプログラムされる。vincrementは、例えば、所望の電流値(ID)と対応させてvincrementの値を記憶するルックアップテーブルから決定され得る。
【0103】
次に、選択されたセルで読み出し動作が実行され、選択されたセルを通って引き込まれる電流(Icell)が測定される、検証動作が実行される(ステップ1705)。ICTがID+ICTOFFSETに設定され、ICTOFFSETが、プログラムオーバーシュートを防止するために追加されるオフセット値であるとしたときに、Icellが粗標的電流値ICT以下である場合、適応較正方法1700は完了し、精密プログラミング方法1306が開始され得る。Icellが粗標的電流値ICT以下でない場合、ステップ1704~1705が繰り返され、iは増分される。
【0104】
図18は、適応較正方法1800である、粗プログラミング方法1305の第2の実施形態を示す。方法が開始する(ステップ1801)。セルは、デフォルトの出発値v
0でプログラムされる(ステップ1802)。v
0は、シリコン特性評価から作成されるようなルックアップテーブルから得られ、テーブル値は、プログラムされた標的をオーバーシュートしないようにオフセットを含む。
【0105】
ステップ1803では、次のプログラミング電圧を予測する際に使用されるI-V傾斜パラメータが作成される。第1の制御ゲート読み出し電圧VCGR1が選択されたセルに印加され、結果として生じるセル電流IR1が測定される。次いで、第2の制御ゲート読み出し電圧VCGR2が選択されたセルに印加され、結果として生じるセル電流IR2が測定される。傾斜は、それらの測定値に基づいて決定され、例えば、サブスレッショルド領域(サブスレッショルドで動作するセル)における次の等式に従って記憶される:
傾斜=(VCGR1-VCGR2)/(LOG(IR1)-LOG(IR2))
(ステップ1803)。VCGR1及びVCGR2の値の例は、それぞれ1.5V及び1.3Vである。
【0106】
傾斜情報を決定することは、問題の特定のセルにカスタマイズされているvincrement値が選択されることを可能にする。これは、最終的に、プログラミングプロセスをより短くする。
【0107】
ステップ1804が繰り返されると、iが増分され、新しい所望のプログラミング電圧viは、記憶された傾斜値並びに電流標的ICT及びオフセット値に基づき、次のような等式を使用して決定される。
vi=vi-1+vincrement
式中、i-1の場合、vincrement=α*傾斜*(LOG(IR1)-LOG(ICT))であり、
ICTは粗標的電流であり、αは、オーバーシュートを防止するための所定の定数(プログラミングオフセット値)<1、例えば0.9である。
【0108】
次いで、セルは、Viを使用してプログラムされる(ステップ1805)。ここでは、viは、使用されるプログラミングスキームに応じて、選択されたセルのソース線端子、制御ゲート端子、又は消去ゲート端子に印加され得る。
【0109】
次に、選択されたセルで読み出し動作が実行され、選択されたセルを通って引き込まれる電流(Icell)が測定される、検証動作が行われる(ステップ1806)。粗標的スレッショルド値ICTがID+ICTOFFSETに設定され、ICTOFFSETが、プログラムオーバーシュートを防止するために加えられるオフセット値であるとしたときに、Icellが粗標的スレッショルド値ICT以下である場合、プロセスはステップ1807に進む。そうでない場合、プロセスはステップ1804に戻り、iは増分される。
【0110】
ステップ1807において、Icellは、粗標的スレッショルド値ICTより小さいスレッショルド値、ICT2と比較される。この目的は、オーバーシュートが発生したかどうかを確認することである。すなわち、目標は、Icellが粗標的スレッショルド値ICT未満になることであるが、Icellが粗標的スレッショルド値ICTをはるかに下回っている場合、オーバーシュートが発生しており、記憶された値は、実際には誤った値に対応している可能性がある。IcellがICT2以下でない場合、オーバーシュートは発生しておらず、適応較正方法1800が完了しており、その時点でプロセスは精密プログラミング方法1306に進む。IcellがICT2以下である場合、オーバーシュートが発生している。次いで、選択されたセルが消去され(ステップ1808)、プログラミングプロセスは、ステップ1802において、オーバーシュートの量に応じてより小さい値を有するなど、調整されたVincrementを伴って開始する。任意選択的に、ステップ1808が所定の回数より多く実行される場合、選択されたセルは、使用されるべきではない不良セルと見なされ得る。
【0111】
精密プログラム方法1306は、複数の検証及びプログラムサイクルからなり、
図15に関連して上述したように、次のパルスに向かって、固定パルス幅が固定されて、プログラム電圧が一定の微細電圧によって増分されるか、又は、プログラム電圧は固定され、プログラムパルス幅が変化するか若しくは一定である。
【0112】
任意選択的に、読み出し動作又は検証動作中に選択された不揮発性メモリセルを通る電流が第1のスレッショルド電流値ICT以下であるかどうかを判定するステップは、不揮発性メモリセルの端子に固定バイアスを印加し、選択された不揮発性メモリセルによって引き込まれた電流を測定及びデジタル化してデジタル出力ビットを生成し、デジタル出力ビットを、第1のスレッショルド電流値ICTを表すデジタルビットと比較することによって、実行され得る。
【0113】
任意選択的に、読み出し動作又は検証動作中に選択された不揮発性メモリセルを通る電流が第1のスレッショルド電流値ICT以下であるかどうかを判定するステップは、不揮発性メモリセルの端子に入力を印加し、不揮発性メモリセルによって引き込まれた電流を入力パルスで変調して変調出力を生成し、変調出力をデジタル化してデジタル出力ビットを生成し、デジタル出力ビットを、第1のスレッショルド電流ICTを表すデジタルビットと比較することによって、実行され得る。
【0114】
図19は、絶対較正方法1900である、プログラミング方法1305の第3の実施形態を示す。方法が開始する(ステップ1901)。セルは、デフォルトの出発値v
0でプログラムされる(ステップ1902)。セル(VCGRx)の制御ゲート電圧は、電流標的値Itargetで測定され、記憶される(ステップ1903)。新しい所望の電圧v
1は、記憶された制御ゲート電圧並びに電流標的値Itarget及びオフセット値、Itarget+Ioffetに基づいて決定される(ステップ1904)。例えば、新しい所望の電圧v
1は、以下のように計算することができる:v
1=v
0+シータ
*(VCGBIAS-記憶されたVCGR)、シータは約1であり、VCGBIASは最大標的電流でのデフォルトの読み出し制御ゲート電圧、典型的には約1.5Vであり、記憶されたVCGRは、ステップ1903の測定された読み出し制御ゲート電圧である。要するに、更新されたプログラム電圧は、測定された制御ゲート電圧と標的制御ゲート電圧との差に基づいて調整される。
【0115】
次いで、セルは、viを使用してプログラムされる(ステップ1905)。i=1のとき、ステップ1904からの電圧v1が使用される。i>=2のとき、電圧vi=vi-1+Vincrementが使用される。Vincrementは、標的電流値ICTと対応させてvincrementの値を記憶するルックアップテーブルから決定され得る。次に、選択されたセルで読み出し動作が実行され、選択されたセルを通って引き込まれる電流(Icell)が測定される、検証動作が行われる(ステップ1906)。Icellが粗標的電流値ICT以下である場合、絶対較正方法1900は完了し、精密プログラミング方法1306が開始され得る。Icellが粗標的電流値ICT以下でない場合、ステップ1905~1906が繰り返され、iは増分される。
【0116】
あるいは、粗プログラム方法及び/又は微細プログラム方法は、浮遊ゲートへの電荷結合をより精密に制御するために、ある端子(例えば、CG)のプログラム電圧の上昇と、別の端子(例えば、EG又はSL)の電圧の低下からなり得る。
【0117】
これまでに説明した粗プログラミング方法及び精密プログラミング方法は、ほとんどのシステムにとって十分に精密であろう。しかしながら、これらの方法でさえ、その精度に限界がある。究極の精度は、1電子精度であることが理解され得る。
図20は、上記の粗プログラミング方法及び精密プログラミング方法の作業実施形態について、出願人によって収集されたデータを示す。
図20は、浮遊ゲート電圧2002を可能な限り標的2001に近接するようにプログラムする試みで実行されたプログラミングパルスの数に対する浮遊ゲート電圧を示す。図示されるように、浮遊ゲート電圧2002は、浮遊ゲートに加えられた単電子の電荷に相当する、+/-4mV以内の標的2001に近似することができる。これは、特定のシステムにとって十分に精密ではない可能性がある。例えば、N(任意の浮遊ゲート上に保持され得る異なる値の数)が大きい(例えば、512)場合、+/-4mVより高い精度が必要とされ得、これは、サブ電子(部分電子)精度のプログラミングが必要とされ得ることを意味する。すなわち、浮遊ゲート電圧が+/-4mVより小さい増分で調整され得る機構が必要であり、これは、何らかの形で浮遊ゲートから電子の一部を足し引きする必要があることを意味する。また、プログラミングプロセス中の浮遊ゲート電圧の増分は、均一ではなく予測可能でもないことが見て取れ、これは、システムが完全な精度で所与の標的電圧を達成するとは限らないことを意味する。これは、プログラミング物理の統計的性質に起因し得る。
【0118】
<<VMM内のセルの超精密プログラミングのための実施形態>>
図21~
図28は、粗プログラミング方法1305及び精密プログラミング方法1306単独で達成され得るよりも精密なプログラミングを可能にする超精密プログラミング方法及びシステムの実施形態を示す。超精密プログラミング方法及びシステムは、選択されたメモリセルの浮遊ゲートの電圧が、プログラミングパルスごとに浮遊ゲートに追加される単電子の一部(サブ単電子)に相当する電荷だけ増加することを可能にし、これは、物理的に可能である最も微細なプログラミング増分である。
【0119】
図21は、不揮発性メモリセルの行及び列を含むVMMアレイ2100を示す。ここで、1行のメモリセルの一部、具体的には、データメモリセル2101、データメモリセル2102、チューニングメモリセル2103、チューニングメモリセル2104、データメモリセル2105、及びデータメモリセル2106が示されており、それぞれ、ビット線2121、2122、2123(チューニングBL)、2124(チューニングBL)、2125、及び2126と、制御ゲート線と、どのタイプのメモリセルアーキテクチャが使用されているかに応じて(例えば、メモリセル210、310、410、510、610、710、又は810)任意選択的にワード線、消去線、及び/又はソース線と結合されている。データメモリセル2101は浮遊ゲート2111を含み、データメモリセル2102は浮遊ゲート2112を含み、チューニングメモリセル2103は浮遊ゲート2113を含み、チューニングメモリセル2104は浮遊ゲート2114を含み、データメモリセル2105は浮遊ゲート2115を含み、データメモリセル2106は浮遊ゲート2116を含む。チューニングBL2123及び2124は、それぞれ、隣接するビット線に対する超精密チューニングを実行するために使用されるビット線である。
【0120】
典型的な場合と同様に、
図21に示すように、同じ行内の隣接する浮遊ゲート間に容量結合がある。VMMアレイ2100は、この現象を利用して超精密なプログラム可能性を得ている。この例では、データメモリセル2102は、データを記憶するために使用されるが、チューニングメモリセル2103は、データを記憶するために使用されず、代わりに、容量結合を介してプログラミングセル2102を補助するためにのみ使用される。同様に、データメモリセル2105は、データを記憶するために使用されるが、チューニングメモリセル2104は、容量結合を介してプログラミングセル2105を補助するためにのみ使用される。データメモリセル2101及び2106は、データを記憶するために使用され、それらのプログラミングは、図示されていない隣接するチューニングセルによって補助される。
【0121】
一実施形態では、特に、データメモリセル2101及び2102、並びにデータメモリセル2105及び2106に関して示されるように、データメモリセルが互いに隣接している場合、それらのセルは距離d2だけ離れる。しかしながら、データメモリセル2102及び隣接するチューニングメモリセル2103、並びにデータメモリセル2104及び隣接するチューニングメモリセル2105に関して示されるように、データメモリセルがチューニングメモリセルに隣接している場合、それらのセルは距離d1だけ離れる。チューニングメモリセル2103及び2104に関して示されるように、チューニングメモリセルが別のチューニングメモリセルに隣接している場合、それらのセルは距離d1又はd2だけ離れ得る。設計により、d2>d1となる。結果として、距離d2だけ離れたセル間の容量結合は、C2の静電容量を有する一方、距離d1だけ離れたセル間の容量結合は、静電容量C1を有し、C1>C2となる。すなわち、静電容量は、セル間が互いに近くなるほど大きくなる。更に、距離d1は、データメモリセルに対するチューニングメモリセルの影響、延いては最終的なプログラミング精度を最適化するために、所望の値C1を達成するように設計され得る。
【0122】
データメモリセル2102が選択されたセルであり、データメモリセル2102を特定の標的値にプログラムすることが望ましい場合、データメモリセル2102は、
図13~
図20を参照して前述した粗プログラミング方法及び精密プログラミング方法を使用してある程度までプログラムされ得る。しかしながら、標的値が達成又は超過される前に、粗プログラミング及び精密プログラミングが停止され、代わりに超精密プログラミング方法が実施される。
【0123】
具体的には、チューニングメモリセル2103は、粗プログラミング方法及び精密プログラミング方法を使用してプログラムされる。容量結合により、チューニングメモリセル2103がプログラムされると、浮遊ゲート2113内の電荷は、浮遊ゲート2112の電荷も増加させるが、浮遊ゲート2113の電荷の増加よりその量は少ない。この機構を通して、浮遊ゲート2112は、浮遊ゲート2113内で起こるより、又は粗プログラミング方法1305及び精密プログラミング方法1306を使用して直接プログラミングセル2102によって達成され得るより微細な増分で増加することになる。この場合、プログラミングは、チューニングメモリセル2103に対して実行されるが、検証動作は、データメモリセル2102でのみ実行される必要がある。データメモリセル2102において標的値が達成されると、浮遊ゲート2112が標的値に留まるように、浮遊ゲート2113は、その電荷状態に維持される。
【0124】
図22は、双方向チューニング(消去ゲートが水平であり、制御ゲートが垂直であるために、プログラミング及び消去の両方がチューニングの目的で使用され得ることを意味する。つまり、制御ゲートは消去ゲートに直交し、同様に、制御ゲート又はワード線は、ソース線に直交し得る)を有するシステムのデータメモリセル2102、チューニングメモリセル2103、チューニングメモリセル2104、及びデータメモリセル2105の例示的なレイアウト2200を示す。ここで、CGゲートは、垂直に隣接する2つの列に共有される。双方向チューニングを利用し得るセルの場合、超精密チューニングは、チューニングセルを消去する又はプログラムする、あるいはその両方を行うことによって達成され得る。
【0125】
図23は、VMMアレイ2100を利用する代替実施形態を示す。ここで、メモリセル2102は、正の値(W+)を記憶するために使用され、メモリセル2105は、負の値(W-)を記憶するために使用され、これらは一緒に値Wを記憶し、W=(W+)-(W-)であり、これは、読み出し又は検証動作中に減算回路によって得られ得る。この実施形態では、チューニングセル2103及び2104などのチューニングセルは、隣接するデータセルを反対側の重みにチューニングするために使用される重みでプログラムされる。したがって、例えば、ビット線2123は、セル2102内の浮遊ゲート2112の電圧を減少させる容量結合を引き起こすように、チューニングメモリセル2103をプログラムし、ビット線2124は、メモリセル2105内の浮遊ゲート2115の電圧を減少させる容量結合を引き起こすように、メモリセル2104をプログラムする。
【0126】
図24は、例えば、
図21のようなチューニングメモリセル2103及びデータメモリセル2102など、チューニングメモリセルが隣接するデータメモリセルに与える影響を示す。最初に、データメモリセル2102及びチューニングメモリセル2103は両方とも、標的電圧2401に近いが、依然としてそれを下回る電圧にプログラムされる。次いで、チューニングメモリセル2103は、浮遊ゲート2113の電圧が標的電圧2401を超え得るようにプログラムされる。浮遊ゲート2112の電圧が検証され(読み出し検証動作を通して)、チューニングメモリセル2103は、データメモリセル2102が厳密な標的電圧2401を達成するまでプログラムされ続ける。このプロセスにより、プログラミングパルス中にサブ単電子電位に相当する電荷が浮遊ゲート2112に加えられ、これは、物理的に可能なプログラミングの最も微細な増分である。
【0127】
図25Aは、VMMアレイ2100を利用する別の代替実施形態を示す。ここで、チューニングビット線及びデータビット線(ビット線対を構成する)は、交換可能である。例えば、より大量のノイズ(ランダムテレグラフノイズRTNなど)を有するビット線対内のビット線は、ビット線対内のチューニングビット線として指定され得る。例えば、メモリセル2102がメモリセル2103よりも大きいRTNノイズを有する場合、ビット線2122は、チューニングビット線として指定され得、すなわち、メモリセル2102は、チューニングメモリセルとして指定され、ビット線2123は、データビット線として指定され、すなわちメモリセル2103は、データメモリセルとして指定される。
図25Bは、これがどのように行われるかを概略的に示す。ビット線2122及び2123の両方は、それぞれビット線読み出しトランジスタ2501及び2502を介して検知増幅器2503への入力として供給される。他のビット線よりもRTNノイズが少ないビット線は、データビット線として指定されることになり、すなわち、関連するメモリセルは、データメモリセルとして指定される。ビット線対内のセルは、距離d
1だけ離れており、それぞれの浮遊ゲート間に固有の静電容量C
1を有する。対として使用されないセルは、隣接するセルから距離d
2だけ離れており、距離d
2は、上記のように距離d
1より大きく、得られる静電容量C
2はC
1より小さい。
【0128】
図26は、超精密プログラミング方法2600を示す。方法が開始する(ステップ2601)。選択されたデータメモリセル及びその隣接するチューニングメモリセルが消去される(ステップ2602)。非選択のメモリセルは、深くプログラムされる(ステップ2603)。粗プログラミングは、選択されたデータメモリセルに対して実行される(ステップ2604)。増分及び/又は減分を使用した精密プログラミングは、選択されたデータメモリセルに対して実行され(ステップ2605)、かつ/又は定電圧を使用した精密プログラミングは、選択されたデータメモリセルに対して実行される(ステップ2605)。次いで、隣接するチューニングメモリセルと選択されたデータメモリセルとの間の容量結合を使用して、超精密プログラミングが実行される(ステップ2607)。標的値が達成されると、方法は終了する(ステップ2608)。
【0129】
図27は、超精密プログラミング方法2700を示す。方法が開始する(ステップ2701)。VMMアレイ全体が消去される(ステップ2702)。非選択のセルは、深くプログラムされる(ステップ2703)。全てのセルは、粗プログラミングを使用して中間値(例えば、約0.5~1μA)にプログラムされる(ステップ2704)。増分を使用した精密プログラミングは、選択されたデータメモリセル(複数可)に対して実行され(ステップ2705)、かつ/又は定電圧を使用する精密プログラミングは、選択されたデータメモリセルに対して実行される(ステップ2706)。次いで、隣接するチューニングメモリセルと選択されたデータメモリセルとの間の容量結合を使用して、超精密プログラミングが実行される(ステップ2707)。標的値が達成されると、方法は終了する(ステップ2708)。
【0130】
上記の実施形態では、選択されたデータメモリセルが読み出されるか又は検証されるとき、データメモリセルが読み出されるか又は検証される時点で容量結合がアクティブでなければならないため、その関連するチューニングメモリセルも読み出されるか又は検証されなければならない。これを行う1つの方法は、読み出し又は検証動作中にデータビット線及びチューニングビット線を検知増幅器に結合することである。
【0131】
超精密プログラミングの最終結果が
図28に示されており、これは、本明細書に記載の超精密プログラミング方法及びシステムの作業実施形態について、出願人によって収集されたデータを示す。
図28は、隣接するチューニングメモリセル2103内の浮遊ゲート2113をプログラムすることによって、浮遊ゲート2112の電圧を標的2801に精密にプログラムする試みで実行されたプログラミングパルスの数に対するデータメモリセル(例えば、2102)及び隣接するチューニングメモリセル(例えば、2103)の浮遊ゲート電圧を示す。選択されたデータメモリセル2102は、最初に90パルス未満までプログラムされ、プログラミングの残りは、プログラミングパルスのみを、隣接するチューニングメモリセル2103に提供することによって行われる。図示されるように、超精密プログラミングは、粗プログラミング方法及び微細プログラミング方法単独よりはるかに精密であり(
図20に示される)、浮遊ゲート2112と2113との間の容量結合に起因する浮遊ゲート2112への電圧の増分は、実際には、プログラミングパルスごとに浮遊ゲート2112に加えられる1個未満の電子に対応する。
【0132】
超精密プログラミングの別の実施形態は、チューニングビット線を参照して上述したように、水平の浮遊ゲートと浮遊ゲートとの結合の代わりに、垂直の浮遊ゲートと浮遊ゲートとの結合を使用する。この場合、隣接する行(チューニング行)は、結合目的で使用される。これは、メモリセル210、310、510、及び710に特に適しており、この場合、上部FG及び下部FGに物理的障壁(消去ゲート)は存在しない。
【0133】
超精密プログラミングの別の実施形態は、チューニングセル浮遊ゲートが標的セル浮遊ゲートと重なり合うように、重なり合う浮遊ゲートと浮遊ゲートとの結合を使用する。重なり合うとは、ある浮遊ゲートが部分的に別の浮遊ゲートの上にあるときなどである。
【0134】
本明細書で使用される場合、「の上方に(over)」及び「に(on)」という用語は両方とも、「の上に直接」(中間材料、要素、又は間隙がそれらの間に配設されていない)、及び「の上に間接的に」(中間材料、要素、又は間隙がそれらの間に配設されている)を包括的に含むことに留意されるべきである。同様に、「隣接した」という用語は、「直接隣接した」(中間材料、要素、又は間隙がそれらの間に配設されていない)、及び「間接的に隣接した」(中間材料、要素、又は間隙がそれらの間に配設されている)を含み、「に取り付けられた」は、「に直接取り付けられた」(中間材料、要素、又は間隙がそれらの間に配設されていない)、及び「に間接的に取り付けられた」(中間材料、要素、又は間隙がそれらの間に配設されている)を含み、「に電気的に結合された」は、「に直接電気的に結合された」(要素を一緒に電気的に接続する中間材料又は要素がそれらの間にない)、及び「に間接的に電気的に結合された」(要素を一緒に電気的に接続する中間材料又は要素がそれらの間にある)を含む。例えば、要素を「基板の上方に」形成することは、その要素を基板に直接、中間材料/要素をそれらの間に伴わずに形成すること、及びその要素を基板に間接的に1つ以上の中間材料/要素をそれらの間に伴って形成することを含み得る。