(57)【要約】  深層学習人工ニューラルネットワークで使用されるアナログニューラルメモリにおいて特定のプログラミング動作に必要な高電圧を生成するための高電圧生成アルゴリズム及びシステムについて、多数の実施形態が開示される。異なる較正アルゴリズム及びシステムもまた開示される。任意選択的に、プログラムされているセルの数が変化するにつれて、電圧又は電流の変化を補償する補償手段を利用することができる。【選択図】図６
2021523511.tif 000002
【特許請求の範囲】
【請求項１】
単一のプログラミング動作においてメモリアレイ内のプログラムされるセルの数に応じて高電圧出力を生成するための方法であって、該方法は、
プログラムされる選択された複数のセルにおいてセルの数を決定するステップと、
前記選択された複数のセルをプログラミングする際に使用される第１の出力電圧を決定するステップと、
前記選択された複数のセルの前記第１の出力電圧を使用してプログラミングシーケンスを実行するステップと、
前記選択された複数のセルにおいてどのセルが正しくプログラムされているかを検証するステップと、
セルのサブセットをプログラミングする際に使用される第２の出力電圧を決定するステップであって、前記セルのサブセットは、前記複数のセルにおいて正しくプログラムされていないセルを含む、決定するステップと、
前記セルのサブセットの前記第２の出力電圧を使用してプログラミングシーケンスを実行するステップと、を含む、方法。
【請求項２】
前記セルのサブセットにおいてどのセルが正しくプログラムされているかを検証するステップと、
第２のセルのサブセットをプログラミングする際に使用される第３の出力電圧を決定するステップであって、前記第２のセルのサブセットは、前記セルのサブセットにおいて正しくプログラムされていないセルを含む、決定するステップと、
前記第２のセルのサブセットの前記第３の出力電圧を使用してプログラミングシーケンスに関与するステップと、を更に含む、請求項１に記載の方法。
【請求項３】
前記第１の出力電圧を決定するステップは、ルックアップテーブル内の値を見つけることを含む、請求項１に記載の方法。
【請求項４】
前記第２の出力電圧を決定するステップは、ルックアップテーブル内の値を見つけることを含む、請求項３に記載の方法。
【請求項５】
前記第３の出力電圧を決定するステップは、ルックアップテーブル内の値を見つけることを含む、請求項４に記載の方法。
【請求項６】
前記第１の出力電圧を決定するステップは、ルックアップテーブル内の値を見つけることを含む、請求項２に記載の方法。
【請求項７】
前記第２の出力電圧を決定するステップは、ルックアップテーブル内の値を見つけることを含む、請求項６に記載の方法。
【請求項８】
前記第３の出力電圧を決定するステップは、ルックアップテーブル内の値を見つけることを含む、請求項７に記載の方法。
【請求項９】
前記第１の出力電圧を決定するステップは、近似関数によって値を見つけることを含む、請求項１に記載の方法。
【請求項１０】
前記第１の出力電圧を決定するステップは、現在のセル値及び前のセル値に基づいて値を見つけることを含む、請求項１に記載の方法。
【請求項１１】
前記セルのサブセットにおいてセルの数が、前記選択された複数のセルにおけるセルの数よりも少ない場合、前記第２の出力電圧は、前記第１の出力電圧よりも低い、請求項１に記載の方法。
【請求項１２】
前記第１の出力電圧は、前記セルのサブセットに結合されたソース線、制御ゲート線、及び消去ゲート線のうちの１つ以上に印加される、請求項１に記載の方法。
【請求項１３】
前記メモリアレイは、ベクトルマトリックス乗算器である、請求項１に記載の方法。
【請求項１４】
前記ベクトルマトリックス乗算器は、前記メモリアレイのビット線にニューロンの読み出しを提供する、請求項１３に記載の方法。
【請求項１５】
前記ベクトルマトリックス乗算器は、前記メモリアレイのソース線にニューロンの読み出しを提供する、請求項１３に記載の方法。
【請求項１６】
前記ベクトルマトリックス乗算器内の前記メモリセルは、重み乗算を実行する、請求項１３に記載の方法。
【請求項１７】
前記ベクトルマトリックス乗算器内の前記メモリセルは、シナプス加算を実行する、請求項１３に記載の方法。
【請求項１８】
単一のプログラミング動作においてメモリアレイ内のプログラムされるセルの数に応じて高電圧出力を生成するための方法であって、該方法は、
プログラムされる選択された複数のセルにおいてセルの数を決定するステップと、
前記選択された複数のセルをプログラミングする際に使用される第１のプログラミング持続時間を決定するステップと、
前記選択された複数のセルの前記第１のプログラミング持続時間を使用してプログラミングシーケンスに関与するステップと、
前記選択された複数のセルにおいてどのセルが正しくプログラムされているかを検証するステップと、
セルのサブセットをプログラミングする際に使用される第２のプログラミング持続時間を決定するステップであって、前記セルのサブセットは、前記複数のセルにおいて正しくプログラムされていないセルを含む、決定するステップと、
前記セルのサブセットの前記第２のプログラミング持続時間を使用してプログラミングシーケンスに関与するステップと、を含む、方法。
【請求項１９】
前記セルのサブセットにおいてどのセルが正しくプログラムされているかを検証するステップと、
第２のセルのサブセットをプログラミングする際に使用される第３のプログラミング持続時間を決定するステップであって、前記第２のセルのサブセットは、前記セルのサブセットにおいて正しくプログラムされていないセルを含む、決定するステップと、
前記第２のセルのサブセットの前記第３のプログラミング持続時間を使用してプログラミングシーケンスに関与するステップと、を更に含む、請求項１８に記載の方法。
【請求項２０】
前記第１のプログラミング持続時間を決定するステップは、ルックアップテーブル内の値を見つけることを含む、請求項１８に記載の方法。
【請求項２１】
前記第２のプログラミング持続時間を決定するステップは、ルックアップテーブル内の値を見つけることを含む、請求項２０に記載の方法。
【請求項２２】
前記第３のプログラミング持続時間を決定するステップは、ルックアップテーブル内の値を見つけることを含む、請求項２１に記載の方法。
【請求項２３】
前記第１のプログラミング持続時間を決定するステップは、ルックアップテーブル内の値を見つけることを含む、請求項１９に記載の方法。
【請求項２４】
前記第２のプログラミング持続時間を決定するステップは、ルックアップテーブル内の値を見つけることを含む、請求項２３に記載の方法。
【請求項２５】
前記第３のプログラミング持続時間を決定するステップは、ルックアップテーブル内の値を見つけることを含む、請求項１９に記載の方法。
【請求項２６】
前記第１のプログラミング持続時間を決定するステップは、近似関数によって値を見つけることを含む、請求項１８に記載の方法。
【請求項２７】
前記第１のプログラミング持続時間を決定するステップは、現在のセル値及び前のセル値に基づいて値を見つけることを含む、請求項１８に記載の方法。
【請求項２８】
前記セルのサブセットにおいてセルの数が、前記選択された複数のセルにおけるセルの数よりも少ない場合、前記第２のプログラミング持続時間は、前記第１のプログラミング持続時間よりも短い、請求項１８に記載の方法。
【請求項２９】
前記メモリアレイは、ベクトルマトリックス乗算器である、請求項１８に記載の方法。
【請求項３０】
前記ベクトルマトリックス乗算器は、前記メモリアレイのビット線にニューロンの読み出しを提供する、請求項２９に記載の方法。
【請求項３１】
前記ベクトルマトリックス乗算器は、前記メモリアレイのソース線にニューロンの読み出しを提供する、請求項２９に記載の方法。
【請求項３２】
前記ベクトルマトリックス乗算器内の前記メモリセルは、重み乗算を実行する、請求項２９に記載の方法。
【請求項３３】
前記ベクトルマトリックス乗算器内の前記メモリセルは、シナプス加算を実行する、請求項２９に記載の方法。
【請求項３４】
プログラミング動作中に高電圧生成器によってメモリアレイに印加された電流の変化を補償するためのシステムであって、該システムは、
不揮発性メモリセルのアレイと、
プログラミング動作中に前記アレイ内の前記不揮発性メモリセルの選択されたセットに高電圧を印加するための高電圧生成器と、
補償電流を引き込むために高電圧バッファに結合された調整可能な補償電流源であって、高電圧負荷が変化するとき、前記補償電流は変化する、調整可能な補償電流源と、を備える、システム。
【請求項３５】
前記補償電流は、プログラムセル電流、プログラムされるセルの数、及びホットキャリア乗算係数に比例する、請求項３４に記載のシステム。
【請求項３６】
前記メモリアレイは、ベクトルマトリックス乗算器である、請求項３４に記載の方法。
【請求項３７】
プログラミング動作中に高電圧生成器によってメモリアレイに印加された電流の変化を補償するためのシステムであって、該システムは、
不揮発性メモリセルのアレイと、
プログラミング動作中に前記アレイ内の不揮発性メモリセルの選択されたセットに高電圧を印加するための高電圧生成器と、
前記高電圧生成器に結合された調整可能な補償電流源であって、高電圧負荷が変化するとき、前記調整可能な電流源によって引き込まれる電流が変化する、調整可能な補償電流源と、を備える、システム。
【請求項３８】
前記補償電流は、プログラムセル電流、プログラムされるセルの数、及びホットキャリア乗算係数に比例する、請求項３７に記載のシステム。
【請求項３９】
前記メモリアレイは、ベクトルマトリックス乗算器である、請求項３７に記載のシステム。
【請求項４０】
プログラミング動作中に高電圧生成器によってメモリアレイに印加された電流の変化を補償するためのシステムであって、該システムは、
不揮発性メモリセルのアレイであって、前記セルは列及び行に配置され、各列はビット線に結合される、不揮発性メモリセルのアレイを備え、
列のセットはダミービット線と関連付けられ、前記列のセット内の他のビット線がプログラミング動作中にオンにされていないときに、前記ダミービット線はオンにされる、システム。
【請求項４１】
前記メモリアレイは、ベクトルマトリックス乗算器である、請求項４２に記載のシステム。
【請求項４２】
メモリセルのアレイ内の複数の選択されたメモリセルをプログラミングするための方法であって、該方法は、
前記複数の選択されたメモリセルのプログラミング持続時間を有効にするステップを含み、
前記プログラミング持続時間は、複数の異なる持続時間を含み、前記複数の異なる持続時間は、異なるプログラムパルスエッジで開始し、同じプログラムパルスエッジで終了する、方法。
【請求項４３】
前記メモリアレイは、ベクトルマトリックス乗算器である、請求項４４に記載の方法。
【請求項４４】
メモリセルのアレイ内の選択されたメモリセルをプログラミングするための方法であって、該方法は、
前記選択されたメモリセルの一括プログラミングを実行するステップと、
前記選択されたメモリセルのソフト消去を実行するステップと、
使用されていない選択されたメモリセルのハードプログラムを実行するステップと、
使用される選択されたメモリセルのソフトプログラムを実行するステップと、
使用される選択されたメモリセルの精密なプログラミングを実行するステップであって、前記精密なプログラミングは、高電圧供給及び補償スキームを使用する、実行するステップと、を含む、方法。
【請求項４５】
前記補償スキームは、補償電流に依存する、請求項４６に記載の方法。
【請求項４６】
前記メモリアレイは、ベクトルマトリックス乗算器である、請求項４６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
（優先権の主張）
本出願は、２０１８年５月１日に出願された「Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｈｉｇｈ  Ｖｏｌｔａｇｅ  Ｇｅｎｅｒａｔｉｏｎ  ｆｏｒ  Ａｎａｌｏｇ  Ｎｅｕｒａｌ  Ｍｅｍｏｒｙ  ｉｎ  Ｄｅｅｐ  Ｌｅａｒｎｉｎｇ  Ａｒｔｉｆｉｃｉａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ」と題する米国特許仮出願第６２／６６５，３５９号、及び２０１８年７月２３日に出願された「Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｈｉｇｈ  Ｖｏｌｔａｇｅ  Ｇｅｎｅｒａｔｉｏｎ  ｆｏｒ  Ａｎａｌｏｇ  Ｎｅｕｒａｌ  Ｍｅｍｏｒｙ  ｉｎ  Ｄｅｅｐ  Ｌｅａｒｎｉｎｇ  Ａｒｔｉｆｉｃｉａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ」と題する米国特許出願第１６／０４２，９７２号の優先権を主張する。
【０００２】
（発明の分野）
深層学習人工ニューラルネットワークで使用されるアナログニューラルメモリにおける特定のプログラミング動作に必要な高電圧を生成するための高電圧生成アルゴリズム及びシステムについて、多数の実施形態が開示されている。
【背景技術】
【０００３】
人工ニューラルネットワークは、多数の入力に依存し得る、かつ概ね未知である関数を推定する又は近似するために使用される生物学的ニューラルネットワーク（例えば、動物の中枢神経系、特に脳）によく似ている。人工ニューラルネットワークは、概して、メッセージを交換する相互接続した「ニューロン」の層を含む。
【０００４】
図１は、人工ニューラルネットワークを図示しており、ここで円は、入力又はニューロンの層を表す。接続（シナプスと呼ばれる）は、矢印によって表され、経験に基づいて調整され得る数値の重みを有する。これは、ニューラルネットワークが入力に適応できるようにし、学習できるようにする。典型的には、ニューラルネットワークは、複数の入力の層を含む。典型的には、１つ以上のニューロンの中間層、及びニューラルネットワークの出力を提供するニューロンの出力層が存在する。それぞれのレベルでニューロンは、シナプスから受信されたデータに基づいて個々に又は合わせて決定を行う。
【０００５】
高性能情報処理用の人工ニューラルネットワークの開発における主要な課題の１つは、適切なハードウェア技術の欠如である。実際には、実用ニューラルネットワークは、非常に多数のシナプスに頼り、ニューロン間の高い接続性、すなわち、非常に高度な計算的並行処理を可能にする。原理的には、このような複雑性は、デジタルスーパーコンピュータ又は専門化したグラフィック処理ユニットクラスタによって実現され得る。しかしながら、高コストに加え、これらのアプローチはまた、主として低精度のアナログ計算を実施するのではるかに少ないエネルギーしか消費しない生物学的ネットワークに比べてあまり良くないエネルギー効率に悩まされている。ＣＭＯＳアナログ回路は、人工ニューラルネットワークに使用されてきたが、ほとんどのＣＭＯＳ実装シナプス（CMOS−implemented synapses）は、多数のニューロン及びシナプスを考えると嵩高すぎていた。
【０００６】
出願人は以前に、参照により組み込まれる米国特許出願第１５／５９４，４３９号において、シナプスとして１つ以上の不揮発性メモリアレイを利用する人工（アナログ）ニューラルネットワークを開示した。不揮発性メモリアレイは、アナログニューロモーフィックメモリとして動作する。ニューラルネットワークデバイスは、第１の複数の入力を受信し、それから第１の複数の出力を生成するように構成された第１の複数のシナプス、及び第１の複数の出力を受信するように構成された第１の複数のニューロンを含む。第１の複数のシナプスは、半導体基板内に形成された、間にチャネル領域が延在している離間したソース領域及びドレイン領域と、チャネル領域の第１の部分の上方に配設され、チャネル領域の第１の部分から絶縁された浮遊ゲートと、チャネル領域の第２の部分の上方に配設され、チャネル領域の第２の部分から絶縁された非浮遊ゲートと、をそれぞれが含む複数のメモリセルを含む。複数のメモリセルのそれぞれは、浮遊ゲートの多くの電子に対応する重み値を格納するように構成される。複数のメモリセルは、第１の複数の入力に、格納された重み値を乗じて第１の複数の出力を生成するように構成される。
【０００７】
アナログニューロモーフィックメモリシステムに使用される各不揮発性メモリセルは、消去され、浮遊ゲート内に非常に特異的かつ正確な量の電荷を保持するようにプログラムされなければならない。例えば、各浮動ゲートはＮ個の異なる値のうちの１つを保持しなければならず、ここで、Ｎは、各セルによって示され得る異なる重みの数である。Ｎの例としては、１６、３２、及び６４が挙げられる。
【０００８】
ＶＭＭシステムにおける１つの課題は、プログラムされているセルの数、及び各セルに蓄積されている電荷の相対量が変化するにつれて、プログラミング動作に必要とされる総電圧及び総電流の量が常に変化しているという事実である。電圧及び電流のこれらの極端な変動は、動作温度及びエネルギー消費における劇的な変化をもたらし得る。
【０００９】
必要とされるのは、任意の所与の時間にプログラムされるセルの数に基づいて、システムの電圧及び電流の必要性の変化を補償する高電圧生成システムである。
【発明の概要】
【００１０】
深層学習人工ニューラルネットワークで使用されるアナログニューラルメモリにおける特定のプログラミング動作に必要な高電圧を生成するための高電圧生成アルゴリズム及びシステムについて、多数の実施形態が開示される。
【００１１】
【００１２】
【００１３】
【００１４】
【００１５】
【００１６】
【００１７】
【００１８】
【００１９】
【００２０】
【００２１】
【００２２】
【００２３】
【００２４】
【００２５】
【００２６】
【００２７】
【００２８】
【００２９】
【００３０】
【００３１】
【００３２】
【００３３】
【００３４】
【００３５】
【００３６】
【００３７】
【００３８】
【００３９】
【００４０】
【００４１】
【００４２】
【００４３】
【００４４】
【００４５】
【００４６】
【００４７】
【図面の簡単な説明】
【００４８】
【図１】人工ニューラルネットワークを示す図である。
【図２】従来の２ゲート不揮発性メモリセルの横断面図である。
【図３】従来の４ゲート不揮発性メモリセルの横断面図である。
【図４】従来の３ゲート不揮発性メモリセルの横断面図である。
【図５】別の従来の２ゲート不揮発性メモリセルの横断面図である。
【図６】不揮発性メモリアレイを利用する異なるレベルの例示的な人工ニューラルネットワークを示す図である。
【図７】ベクトル乗算器マトリックスを示すブロック図である。
【図８】様々なレベルのベクトル乗算器マトリクスを示すブロック図である。
【図９】ベクトル乗算器マトリックスの別の実施形態を示す。
【図１０】ベクトル乗算器マトリックスの別の実施形態を示す。
【図１１】図１０のベクトル乗算器マトリクスで動作を実行するための動作電圧を示す。
【図１２】ベクトル乗算器マトリックスの別の実施形態を示す。
【図１３】図１２のベクトル乗算器マトリックスで動作を実行するための動作電圧を示す。
【図１４】ベクトル乗算器マトリックスの別の実施形態を示す。
【図１５】図１４のベクトル乗算器マトリックスで動作を実行するための動作電圧を示す。
【図１６】ベクトル乗算器マトリックスの別の実施形態を示す。
【図１７】図２１６のベクトル乗算器マトリックスで動作を実行するための動作電圧を示す。
【図１８】ベクトル乗算器マトリックスを備えるメモリシステムを示す。
【図１９Ａ】ベクトル乗算器マトリックス内の１つ以上のメモリセルをプログラミングするためのアルゴリズムを示す。
【図１９Ｂ】ベクトル乗算器マトリックス内の１つ以上のメモリセルをプログラミングするためのアルゴリズムを示す。
【図１９Ｃ】ベクトル乗算器マトリックス内の１つ以上のメモリセルをプログラミングするためのアルゴリズムを示す。
【図２０】ベクトル乗算器マトリックス内の１つ以上のメモリセルのプログラミング中に使用されるルックアップテーブルを生成するための較正アルゴリズムを示す。
【図２１】異なるプログラミング実施形態中に印加される電圧の波形を示す。
【図２２】異なるプログラミング実施形態中に印加される電圧の波形を示す。
【図２３】異なるプログラミング実施形態中に印加される電圧の波形を示す。
【図２４】ベクトル乗算器マトリックスシステムと共に使用するための高電圧生成ブロックを示す。
【図２５】チャージポンプ及びチャージポンプ調整回路を示す。
【図２６】電流補償回路を有する高電圧生成ブロックを示す。
【図２７】電流補償回路を有する別の高電圧生成ブロックを示す。
【図２８】別の高電圧生成ブロックを示す。
【図２９】電流補償を提供するためのダミービット線を示す。
【図３０】高電圧デコーダを示す。
【図３１】高電圧試験回路を示す。
【図３２】高電圧生成ブロックを示す。
【図３３】別の高電圧生成ブロックを示す。
【図３４】別の高電圧生成ブロックを示す。
【図３５】高電圧演算増幅器を示す。
【図３６】別の高電圧演算増幅器を示す。
【図３７】列ドライバを示す。
【図３８】列センス増幅器を示す。
【図３９】読み出し基準回路を示す。
【図４０】別の読み出し基準回路を示す。
【発明を実施するための形態】
【００４９】
本発明の人工ニューラルネットワークは、ＣＭＯＳ技術及び不揮発性メモリアレイの組み合わせを利用する。
不揮発性メモリセル
【００５０】
デジタル不揮発性メモリは、周知である。例えば、米国特許第５，０２９，１３０号（「’１３０号特許」）は、分割ゲート不揮発性メモリセルのアレイを開示し、あらゆる目的のために参照により本明細書に組み込まれる。このようなメモリセルを図２に示す。各メモリセル２１０は、半導体基板１２内に形成された、チャネル領域１８をその間に有するソース領域１４とドレイン領域１６、を含む。浮遊ゲート２０は、チャネル領域１８の第１の部分の上方に形成され、チャネル領域１８の第１の部分から絶縁されて（かつその導電性を制御して）おり、またソース領域１６の一部分の上方に形成される。ワード線端子２２（典型的には、ワード線に結合される）は、チャネル領域１８の第２の部分の上方に配設され、チャネル領域１８の第２の部分から絶縁される（かつその導電性を制御する）第１の部分と、浮遊ゲート２０の上方で上方に延在する第２の部分を有する。浮遊ゲート２０及びワード線端子２２は、ゲート酸化物によって基板１２から絶縁される。ビット線２４はドレイン領域１６に結合される。
【００５１】
メモリセル２１０は、ワード線端子２２に高圧正電圧を加えることによって消去され（ここで電子は、浮遊ゲートから除去される）、それにより、ファウラーノルドハイムトンネリングによって浮遊ゲート２０からワード線端子２２まで中間絶縁体を通って浮遊ゲート２０の電子をトンネリングさせる。
【００５２】
メモリセル２１０は、ワード線端子２２に正電圧、及びソース１６に正電圧を加えることによってプログラムされる（ここで電子は、浮遊ゲートに加えられる）。電子電流は、ソース１６からドレイン１４に向かって流れることになる。電子は、ワード線端子２２と浮遊ゲート２０との間の間隙に達すると、加速し発熱する。熱せられた電子のいくらかは、浮遊ゲート２０からの静電引力に起因してゲート酸化物２６を通って浮遊ゲート２０に注入される。
【００５３】
ドレイン１４及びワード線端子２２に正の読み出し電圧を加える（ワード線端子下のチャネル領域をターンオンする）ことによって、メモリセル２１０が読み出される。浮遊ゲート２０が正に帯電する（すなわち、電子を消去し、ドレイン１６に正に結合する）場合、浮遊ゲート２０下のチャネル領域の部分は、次に同様にオンになり、電流は、チャネル領域１８を流れ、これは、消去された状態つまり「１」の状態として検知される。浮遊ゲート２０が負に帯電する（すなわち、電子でプログラムされる）場合、次に浮遊ゲート２０下のチャネル領域の部分は、ほとんど又は完全にオフになり、電流は、チャネル領域１８を流れず（又はわずかに流れる）、プログラムされた状態又は「０」の状態として検出される。
【００５４】
表１は、読み出し、消去、及びプログラム動作を実行するためのメモリセル２１０の端子に印加され得る典型的な電圧範囲を示す。
表１：図２のフラッシュメモリセル２１０の動作
【表１】
2021523511.tif 000003
【００５５】
他の分割ゲートメモリセル構成が知られている。例えば、図３は、ソース領域１４と、ドレイン領域１６と、チャネル領域１８の第１の部分の上方にある浮遊ゲート２０と、チャネル領域１８の第２の部分の上方にある選択ゲート２８（典型的には、ワード線に結合される）と、浮遊ゲート２０の上方にある制御ゲート２２と、及びソース領域１４の上方にある消去ゲート３０と、を備える４ゲートメモリセル３１０を示す。この構成は、米国特許第６，７４７，３１０号に記載され、この米国特許は、あらゆる目的のため参照により本明細書に組み込まれる。ここで、全てのゲートは、浮遊ゲート２０を除いて、非浮遊ゲートであり、それらは電圧源に電気的に接続される又は接続可能であることを意味する。プログラミングは、浮遊ゲート２０にそれ自体を注入するチャネル領域１８からの熱せられた電子によって示される。消去は、浮遊ゲート２０から消去ゲート３０へトンネリングする電子によって示される。
【００５６】
表２は、読み出し、消去、及びプログラム動作を実行するためのメモリセル３１０の端子に印加され得る典型的な電圧範囲を示す。
表２：図３のフラッシュメモリセル３１０の動作
【表２】
2021523511.tif 000004
【００５７】
図４は、分割ゲート３ゲートメモリセル４１０を示す。メモリセル４１０は、メモリセル４１０が別個の制御ゲートを有しないことを除いて、図３のメモリセル３１０と同一である。消去動作（消去ゲートを通しての消去）及び読み出し動作は、制御ゲートバイアスがないことを除いて、図３のものと同様である。プログラミング動作もまた、制御ゲートバイアスなしで行われるため、ソース線のプログラム電圧は、制御ゲートバイアスの不足を補償するためにより高い。
【００５８】
表３は、読み出し、消去、及びプログラム動作を実行するためのメモリセル４１０の端子に印加され得る典型的な電圧範囲を示す。
表３：図４のフラッシュメモリセル４１０の動作
【表３】
2021523511.tif 000005
【００５９】
図５は、積層ゲートメモリセル５１０を示す。メモリセル５１０は、浮遊ゲート２０がチャネル領域１８全体の上方に延在し、制御ゲート２２が絶縁層によって分離された浮遊ゲート２０の上方に延在することを除いて、図２のメモリセル２１０と同様である。消去、プログラミング、及び読み出し動作は、メモリセル２１０について前述したものと同様の方法で動作する。
【００６０】
表４は、読み出し、消去、及びプログラム動作を実行するためのメモリセル５１０の端子に印加され得る典型的な電圧範囲を示す。
表４：図５のフラッシュメモリセル５１０の動作
【表４】
2021523511.tif 000006
【００６１】
上記の人工ニューラルネットワークにおける不揮発性メモリセルのタイプのうちの１つを含むメモリアレイを利用するために、２つの修正が行われる。第１に、以下に更に説明されるように、アレイ内の他のメモリセルのメモリ状態に悪影響を与えずに各メモリセルを個々にプログラム、消去、及び読み出しすることができるように線を構成する。第２に、メモリセルの連続（アナログ）プログラミングを提供する。
【００６２】
具体的には、アレイ内の各メモリセルのメモリ状態（すなわち、浮遊ゲートの電荷）を、完全に消去された状態から完全にプログラムされた状態へ、独立して、かつ他のメモリセルの異常が最小で連続的に変更することができる。別の実施形態では、アレイ内の各メモリセルのメモリ状態（すなわち、浮遊ゲートの電荷）を、完全にプログラムされた状態から完全に消去された状態へ、及び逆もまた同様に、独立して、かつ他のメモリセルの異常が最小で連続的に変更することができる。このことは、セル格納がアナログであるか、又は多数の別個の値（１６又は６４の異なる値など）のうちの１つを最低限格納することができ、それは、メモリアレイ内の全てのセルの非常に正確、かつ個々の調整を可能にし、またメモリアレイを格納に対して理想的にし、ニューラルネットワークのシナプシスの重みに微調整を加えることを意味する。
不揮発性メモリセルアレイを使用するニューラルネットワーク
【００６３】
図６は、不揮発性メモリアレイを利用するニューラルネットワークの非限定実施例を示す。この例は、顔認識アプリケーションのために不揮発性メモリアレイニューラルネットを使用するが、不揮発性メモリアレイベースのニューラルネットワークを使用して他の任意の適切なアプリケーションを実施することができる。
【００６４】
Ｓ０は入力であり、この例では、５ビット精度の３２×３２ピクセルＲＧＢ画像である（すなわち、各色Ｒ、Ｇ、及びＢにつき１つずつの３つの３２×３２ピクセルアレイ、各ピクセルが５ビット精度である）。Ｓ０からＣ１に行くシナプスＣＢ１は、異なる重みのセット及び共有される重みの両方を有し、入力画像を３×３ピクセルの重なり合うフィルタでスキャンし（カーネル）、１ピクセル（又はモデルによって決まるように２ピクセル以上）ずつフィルタをシフトする。具体的には、画像の３×３部分における９ピクセルの値（すなわち、フィルタ又はカーネルと呼ばれる）は、シナプスＣＢ１に提供され、それによってこれらの９個の入力値に適切な重みを乗じ、その乗算の出力の合計後、単一の出力値が決定され、特徴マップＣ１の層の１つのピクセルを生成するためにＣＢ１の第１のニューロンによって与えられる。３×３フィルタは次に右側に１ピクセルだけシフトされ（すなわち、３ピクセルの列を右側に追加し、左側で３ピクセルの列をドロップする）、そのため、この新しく位置づけられたフィルタの９ピクセル値は、シナプスＣＢ１に提供されるため、それらに同じ重みを乗じ、関連するニューロンによって第２の単一の出力値を決定する。このプロセスを、３×３フィルタが３２×３２ピクセル画像全体にわたって３色全て及び全てのビットについてスキャンするまで続ける（精度値）。プロセスは次に、層Ｃ１の特徴マップ全てが計算されるまで、異なる重みのセットを使用して繰り返されて、Ｃ１の異なる特徴マップを生成する。
【００６５】
Ｃ１において、本例では、それぞれ３０×３０ピクセルを有する１６個の特徴マップが存在する。各ピクセルは、入力とカーネルとの乗算から抽出された新しい特徴ピクセルであり、したがって、各特徴マップは、２次元アレイであり、したがってこの例では、シナプスＣＢ１は、２次元アレイの１６層を構成する（本明細書で言及されるニューロン層及びアレイは、必ずしも物理的関係ではなく論理的な関係であり、すなわち、アレイは必ずしも物理的な２次元アレイに配向されないことに留意する）。１６個の特徴マップのそれぞれは、フィルタスキャンに適用される１６個の異なるシナプス重みのセットの１つによって生成される。Ｃ１特徴マップは全て、境界同定など同じ画像特徴の異なる態様を対象とすることができる。例えば、第１のマップ（この第１のマップを生成するのに使用される全てのスキャンに共有される第１の重みセットを使用して生成される）は、円形エッジを識別することができ、第２のマップ（第１の重みセットと異なる第２の重みセットを使用して生成される）は、方形エッジ又は特定の特徴のアスペクト比などを識別することができる。
【００６６】
各特徴マップ中の連続する、重なり合わない２×２領域からの値をプールする活性化関数Ｐ１（プーリング）は、Ｃ１からＳ１へ行く前に適用される。プーリング段階の目的は、平均して近隣の位置にすること（又はｍａｘ関数もまた使用され得る）、例えばエッジ位置の依存を低減すること、及び次の段階に行く前にデータサイズを低減することである。Ｓ１において、１６個の１５×１５特徴マップ（すなわち、１６個のそれぞれ１５×１５ピクセルの異なるアレイ）が存在する。Ｓ１からＣ２へ行くＣＢ２内のシナプス及び関連するニューロンは、Ｓ１内のマップを１ピクセルのフィルタシフトを使用して４×４フィルタでスキャンする。Ｃ２において、２２個の１２×１２特徴マップが存在する。各特徴マップ中の連続する、重なり合わない２×２領域からの値をプールする活性化関数Ｐ２（プーリング）は、Ｃ２からＳ２へ行く前に適用される。Ｓ２において、２２個の６×６特徴マップが存在する。活性化関数は、Ｓ２からＣ３へ行くシナプスＣＢ３で適用され、ここでＣ３内の全てのニューロンはＳ２内の全てのマップに接続する。Ｃ３において、６４個のニューロンが存在する。Ｃ３から出力Ｓ３へ行くシナプスＣＢ４は、Ｓ３をＣ３と完全に接続する。Ｓ３における出力は、１０個のニューロンを含み、ここで最も高い出力ニューロンは、クラスを決定する。この出力は、例えば、元の画像の内容の同定又は分類を示すことができる。
【００６７】
シナプスの各レベルは、不揮発性メモリセルのアレイ又はアレイの一部を使用して実行される。図７は、不揮発性メモリセルを含むベクトルマトリックス乗算（ＶＭＭ）アレイのブロック図であり、入力層と次の層との間のシナプスとして利用される。具体的には、ＶＭＭ３２は、不揮発性メモリセルのアレイ３３、消去ゲート及びワード線ゲートデコーダ３４、制御ゲートデコーダ３５、ビット線デコーダ３６、並びにソース線デコーダ３７を含み、それらのデコーダはメモリアレイ３３に対する入力をデコードする。この例におけるソース線デコーダ３７はまた、メモリセルアレイの出力をデコードする。あるいは、ビット線デコーダ３６は、メモリアレイの出力をデコードすることができる。メモリアレイは、２つの目的を果たす。第１に、ＶＭＭにより使用される重みを格納する。第２に、メモリアレイは、効果的に、入力に、メモリアレイに格納された重みを乗じ、それらを出力線（ソース線又はビット線）ごとに合計して出力を生成し、これは、次の層への入力又は最後の層への入力になる。乗算及び加算の関数を実行することによって、メモリアレイは、別個の乗算及び加算の論理回路の必要性をなくし、また、その場でのメモリ計算により電力効率も良い。
【００６８】
メモリアレイの出力は、メモリセルアレイの出力を合計してその畳み込み用の単一の値を作成する、差動加算器（加算オペアンプ又は加算カレントミラーなど）３８に供給される。差動加算器は、正の入力で正の重みと負の重みとの合計を実現するようなものである。合計された出力値は、次に出力を整流する活性化関数回路３９に供給される。活性化関数には、シグモイド、ｔａｎｈ、又はＲｅＬＵ関数が含まれ得る。整流された出力値は、次の層（例えば上の説明ではＣ１）として特徴マップの要素になり、次いで、次のシナプスに適用されて次の特徴マップ層又は最後の層を生成する。したがって、この例では、メモリアレイは、複数のシナプスを構成し（ニューロンの前の層から、又は画像データベースなどの入力層から入力を受信する）、加算オペアンプ３８及び活性化関数回路３９は、複数のニューロンを構成する。
【００６９】
図８は、様々なレベルのＶＭＭのブロック図である。図８に示されるように、入力は、デジタルアナログ変換器３１によってデジタルからアナログに変換され、入力ＶＭＭ３２ａに提供される。変換されたアナログ入力は、電圧又は電流であり得る。第１の層の入力Ｄ／Ａ変換は、マトリックス乗算器の適切なアナログレベルに入力をマッピングする関数又はＬＵＴ（ルックアップテーブル）を使用することによって行うことができる。入力変換はまた、外部アナログ入力をＶＭＭへのマッピングされたアナログ入力に変換するために、Ａ／Ａ変換器によって行うこともできる。入力ＶＭＭ３２ａによって生成された出力は、次に、次のＶＭＭ（隠しレベル２）３２ｂへの入力として提供される出力を生成する次のＶＭＭ（隠しレベル１）３２ｂへの入力として提供される、などとなる。ＶＭＭの３２の様々な層は、畳み込みニューラルネットワーク（convolutional neural network、ＣＮＮ）のシナプス及びニューロンの異なる層として機能する。各ＶＭＭは、スタンドアローンの不揮発性メモリアレイであり得、又は複数のＶＭＭは、同じ不揮発性メモリアレイの異なる部分を利用することができ、又は複数のＶＭＭは、同じ不揮発性メモリアレイの重なり合う部分を利用することができる。図８に示される例は、５つの層（３２ａ、３２ｂ、３２ｃ、３２ｄ、３２ｅ）：１つの入力層（３２ａ）、２つの隠れ層（３２ｂ、３２ｃ）、及び２つの完全に接続された層（３２ｄ、３２ｅ）を含む。当業者であれば、これは単なる例示であり、代わりにシステムが２つを超える隠れ層及び２つを超える完全に接続された層を含み得ることを理解するであろう。
ベクトルマトリックス乗算（ＶＭＭ）アレイ
【００７０】
図９は、図３に示されるタイプのメモリセルに特に適したニューロンＶＭＭ９００を示し、入力層と次の層との間でシナプス及びニューロンの一部として利用される。ＶＭＭ９００は、不揮発性メモリセルのメモリアレイ９０１、及び基準アレイ９０２（アレイの頂部で）を備える。あるいは、別の基準アレイが底部に位置することができる。ＶＭＭ９００では、制御ゲート線９０３などの制御ゲート線が垂直方向に延び（したがって、行方向の基準アレイ９０２が入力制御ゲート線に直交する）、消去ゲート線９０４などの消去ゲート線が水平方向に延びる。ここで、入力は制御ゲート線に提供され、出力はソース線に現れる。一実施形態では、偶数行のみが使用され、別の実施形態では、奇数行のみが使用される。ソース線に加えられた電流は、ソース線に接続されたメモリセルからの全ての電流の合計関数を実行する。
【００７１】
ニューラルネットワークについて本明細書に記載されるように、フラッシュセルは、サブ閾値領域で動作するように構成されることが好ましい。
【００７２】
本明細書に記載されたメモリセルは、弱反転にバイアスされる。
Ｉｄｓ＝Ｉｏ*ｅ(Vg-Vth)/kVt＝ｗ*Ｉｏ*ｅ(Vg)/kVt
ｗ＝ｅ(-Vth)/kVt
【００７３】
入力電流を入力電圧に変換するためにメモリセルを使用するＩーＶログ変換器について：
Ｖｇ＝ｋ*Ｖｔ*ｌｏｇ［Ｉｄｓ／ｗｐ*Ｉｏ］
【００７４】
ベクトルマトリックス乗算器ＶＭＭとして使用されるメモリアレイについて、出力電流は以下である：
Ｉｏｕｔ＝ｗａ*Ｉｏ*ｅ(Vg)/kVt、すなわち
Ｉｏｕｔ＝（ｗａ／ｗｐ）*Ｉｉｎ＝Ｗ*Ｉｉｎ
Ｗ＝ｅ(Vthp-Vtha)/kVt
【００７５】
ワード線又は制御ゲートは、入力電圧のためのメモリセルの入力として使用することができる。
【００７６】
あるいは、フラッシュメモリセルは、線形領域で動作するように構成することができる。
Ｉｄｓ＝β*（Ｖｇｓ−Ｖｔｈ）*Ｖｄｓ；β＝ｕ*Ｃｏｘ*Ｗ／Ｌ
Ｗα（Ｖｇｓ−Ｖｔｈ）
【００７７】
Ｉ−Ｖ線形変換器では、線形領域で動作するメモリセルを使用して、入力／出力電流を入力／出力電圧に線形に変換することができる。
【００７８】
ＥＳＦベクトルマトリックス乗算器の他の実施形態は、参照により本明細書に組み込まれる米国特許出願第１５／８２６，３４５号に記載されているとおりである。ソース線又はビット線は、ニューロン出力（電流和出力）として使用することができる。
【００７９】
図１０は、図２に示されるタイプのメモリセルに特に適したニューロンＶＭＭ１０００を示し、入力層と次の層との間のシナプスとして利用される。ＶＭＭ１０００は、不揮発性メモリセルのメモリアレイ１００３、基準アレイ１００１、及び基準アレイ１００２を備える。基準アレイ１００１及び１００２は、アレイの列方向において、端子ＢＬＲ０〜３に流れ込む電流入力を電圧入力ＷＬ０〜３に変換する役割を果たす。実際には、基準メモリセルは、マルチプレクサを通してそれらの中に流れる電流入力にダイオード接続される。基準セルは、標的基準レベルに調整（例えば、プログラム）される。標的基準レベルは、基準ミニアレイマトリックスによって提供される。メモリアレイ１００３は、２つの目的を果たす。第１に、ＶＭＭ１０００により使用される重みを格納する。第２に、メモリアレイ１００３は、メモリアレイに格納された重みによって、入力（端子ＢＬＲ０〜３に提供される電流入力であって、基準アレイ１００１及び１００２がこれらの電流入力を入力電圧に変換してワード線ＷＬ０〜３に供給する）を有効に乗算して、次に、全ての結果（メモリセル電流）を加算して出力を生成し、これは次の層への入力又は最終の層への入力となる。乗算及び加算の関数を実行することによって、メモリアレイは、別個の乗算及び加算の論理回路の必要性をなくし、また、電力効率も良い。ここで、電圧入力はワード線に提供され、出力は、読み出し（推論）動作中にビット線に現れる。ビット線に加えられた電流は、ビット線に接続されたメモリセルからの全ての電流の合計関数を実行する。
【００８０】
図１１は、ＶＭＭ１０００の動作電圧を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルのソース線、及び非選択セルのソース線に加えられた電圧を示す。行は、読み出し、消去、及びプログラムの動作を示す。
【００８１】
図１２は、図２に示されるタイプのメモリセルに特に適したニューロンＶＭＭ１２００を示し、入力層と次の層との間でシナプス及びニューロンの一部として利用される。ＶＭＭ１２００は、不揮発性メモリセルのメモリアレイ１２０３、基準アレイ１２０１、及び基準アレイ１２０２を備える。アレイＶＭＭ１２００の行方向に延びる基準アレイ１２０１及び１２０２は、ＶＭＭ１２００においてワード線が垂直方向に延びることを除いて、ＶＭＭ１０００と同様である。ここで、入力はワード線に提供され、出力は読み出し動作中にソース線に現れる。ソース線に加えられた電流は、ソース線に接続されたメモリセルからの全ての電流の合計関数を実行する。
【００８２】
図１３は、ＶＭＭ１２００の動作電圧を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルのソース線、及び非選択セルのソース線に加えられた電圧を示す。行は、読み出し、消去、及びプログラムの動作を示す。
【００８３】
図１４は、図３に示されるタイプのメモリセルに特に適したニューロンＶＭＭ１４００を示し、入力層と次の層との間でシナプス及びニューロンの一部として利用される。ＶＭＭ１４００は、不揮発性メモリセルのメモリアレイ１４０３、基準アレイ１４０１、及び基準アレイ１４０２を備える。基準アレイ１４０１及び１４０２は、端子ＢＬＲ０〜３に流れ込む電流入力を電圧入力ＣＧ０〜３に変換する役割を果たす。実際には、基準メモリセルは、それらに流れ込む電流入力と、カスコーディングマルチプレクサ１４１４を介してダイオード接続される。ｍｕｘ１４１４は、読み出し中の基準セルのビット線に一定の電圧を確保するために、ｍｕｘ１４０５及びカスコーディングトランジスタ１４０４を含む。基準セルは、標的基準レベルに調整される。メモリアレイ１４０３は、２つの目的を果たす。第１に、ＶＭＭ１４００により使用される重みを格納する。第２に、メモリアレイ１４０３は、メモリアレイに格納された重みによって、入力（端子ＢＬＲ０〜３に提供される電流入力であって、基準アレイ１４０１及び１４０２がこれらの電流入力を入力電圧に変換して制御ゲートＣＧ０〜３に供給する）を有効に乗算して、次に、全ての結果（セル電流）を加算して出力を生成し、これは次の層への入力又は最終の層への入力となる。乗算及び加算の関数を実行することによって、メモリアレイは、別個の乗算及び加算の論理回路の必要性をなくし、また、電力効率も良い。ここで、入力はワード線に提供され、出力は読み出し動作中にビット線に現れる。ビット線に加えられた電流は、ビット線に接続されたメモリセルからの全ての電流の合計関数を実行する。
【００８４】
ＶＭＭ１４００は、メモリアレイ１４０３内のメモリセルの一方向調整を実施する。すなわち、各セルは消去され、次いで、浮遊ゲートの所望の電荷に達するまで部分的にプログラムされる。過度に多くの電荷が浮遊ゲートに加えられる場合（誤った値がセル内に格納されるなど）、セルは消去されなければならず、一連の部分的なプログラミング動作をやり直さなければならい。示されるように、同じ消去ゲートを共有する２つの行は、一緒に消去される必要があり（ページ消去として知られる）、その後、各セルは、浮遊ゲートの所望の電荷に達するまで部分的にプログラムされる。
【００８５】
図１５は、ＶＭＭ１４００の動作電圧を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルの制御ゲート、選択セルと同じセクタ内の非選択セルの制御ゲート、選択セルとは異なるセクタ内の非選択セルの制御ゲート、選択セルの消去ゲート、非選択セルの消去ゲート、選択セルのソース線、及び非選択セルのソース線に印加された電圧を示す。行は、読み出し、消去、及びプログラムの動作を示す。
【００８６】
図１６は、図３に示されるタイプのメモリセルに特に適したニューロンＶＭＭ１６００を示し、入力層と次の層との間でシナプス及びニューロンの一部として利用される。ＶＭＭ１６００は、不揮発性メモリセルのメモリアレイ１６０３、基準アレイ１６０１、及び基準アレイ１６０２を備える。ＥＧ線が垂直に延びる一方で、ＣＧ線及びＳＬ線は水平に延びる。ＶＭＭ１６００は、ＶＭＭ１６００が双方向調整を実装することを除いてＶＭＭ１４００と同様であり、各個々のセルは、浮動ゲートの所望の電荷量に達するために、完全に消去され、部分的にプログラムされ、必要に応じて部分的に消去され得る。示されるように、基準アレイ１６０１及び１６０２は、端子ＢＬＲ０〜３内の入力電流を制御ゲート電圧ＣＧ０〜３に変換し（マルチプレクサを介したダイオード接続された基準セルの作用を通じて）、行方向でメモリセルに印加される。電流出力（ニューロン）は、ビット線に接続されたメモリセルからの全ての電流を合計するビット線内にある。
【００８７】
図１７は、ＶＭＭ１６００の動作電圧を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルの制御ゲート、選択セルと同じセクタ内の非選択セルの制御ゲート、選択セルとは異なるセクタ内の非選択セルの制御ゲート、選択セルの消去ゲート、非選択セルの消去ゲート、選択セルのソース線、及び非選択セルのソース線に加えられた電圧を示す。行は、読み出し、消去、及びプログラムの動作を示す。
【００８８】
図１８は、ＶＭＭシステム１８００を示す。ＶＭＭシステム１８００は、ＶＭＭアレイ１８０７、低電圧行デコーダ１８０３、高電圧行デコーダ１８０５、基準セル低電圧列デコーダ１８０６（列方向の基準アレイのために示されており、行方向に変換を出力するための入力を提供することを意味する）、ビット線ＰＥドライバ１８０２、ビット線マルチプレクサ１８０８、活性化関数回路及び加算器１８０９、制御論理１８０４、及びアナログバイアス回路１８０１を備える。
【００８９】
低電圧行デコーダ１８０３は、読み出し及びプログラム動作のためのバイアス電圧を提供し、高電圧行デコーダ１８０５のデコード信号を提供する。高電圧行デコーダ１８０５は、プログラム及び消去動作のための高電圧バイアス信号を提供する。ビット線ＰＥドライバ１８０１は、プログラム、検証、及び消去におけるビット線の制御関数を提供する。バイアス回路１８０１は、様々なプログラム、消去、プログラム検証、及び読み出し動作に必要な複数の電圧を提供する共有バイアスブロックである。
【００９０】
ＶＭＭシステム１８００は、冗長アレイ１８１０を更に備える。冗長アレイ１８１０は、欠陥のあるアレイ部分を置き換えるためのアレイ冗長性を提供する。ＶＭＭシステム１８００は、ＮＶＲ（不揮発性レジスタ、別名情報セクタ）セクタ１８１１を更に備え、これは、ユーザ情報、デバイスＩＤ、パスワード、セキュリティキー、トリムビット、構成ビット、製造情報などを格納するために使用されるアレイセクタである。
【００９１】
ＶＭＭシステム１８００は、基準アレイ１８１２及び／又は基準システム１８５０を任意選択で備える。基準システム１８５０は、基準アレイ１８５２、基準アレイ低電圧行デコーダ１８５１、基準アレイ高電圧行デコーダ１８５３、及び基準アレイ低電圧列デコーダ１８５４を備える。基準システムは、複数のＶＭＭシステムにわたって共有することができる。
【００９２】
基準アレイ低電圧行デコーダ１８５１は、基準アレイ１８５２を含む読み出し及びプログラミング動作のためのバイアス電圧を提供し、基準アレイ高電圧行デコーダ１８５３のデコード信号も提供する。基準アレイ高電圧行デコーダ１８５３は、基準アレイ１８５２を含むプログラム及び動作のための高電圧バイアスを提供する。基準アレイ低電圧列デコーダ１８５４は、基準アレイ１８５２のデコード関数を提供する。基準アレイ１８５２は、プログラム検証又はセルマージニング（マージナルセルの探索）のための基準ターゲットを提供する。
【００９３】
図１９Ａ、図１９Ｂ、及び図１９Ｃは、プログラミング方法１９００を示す。最初に、方法は、典型的には受信されるプログラムコマンドに応じて、開始する（工程１９０１）。次に、一括プログラム動作は、全てのセルを「０」状態にプログラムする（工程１９０２）。次いで、ソフト消去は、全てのセルを、中間の弱く消去されたレベル約１〜５μＡに消去する（工程１９０３）。これは、全てのセルをデジタル用途で完全に消去された状態、例えば、約２０〜３０ｕＡのセル電流にする深い消去とは対照的である。次いで、ハードプログラムは、全ての選択されていないセルで実行されて、セルが実際にオフである、すなわち、これらのメモリセルが影響力のない電流を与えることを確実にするために、使用されていないセルに対して非常に深いプログラム状態、約ｆＡ〜ｐＡ、までセルから電荷を除去する（工程１９０４）。次いで、ソフトプログラムが選択されたセルで実行されて、粗いアルゴリズムを使用してｎ中間の弱くプログラムされたレベル約０．１〜１．５μＡになるまで、セルからいくらかの電荷を除去する（工程１９０５、１９０６、１９０７）。検証動作の後に粗い工程プログラムサイクルが行われ、選択セルの電荷は、粗い反復方式で様々な閾値と比較される（工程１９０６及び１９０７）。粗い工程プログラムサイクルは、粗い電圧増分（ＳＬ、ＣＧ、及びＥＧの高電圧レベルなど）、及び／又は粗いプログラム時間、及び／又は粗いプログラム電流を含み、１つのプログラム工程から次のプログラム工程までに粗いセル電流変化がもたらされる。
【００９４】
次に、精密なプログラミングが行われ（工程１９０８）、全ての選択されたセルは、細かい工程プログラムアルゴリズムにより、所望のレベルに応じて１ｐＡ〜２０ｎＡの範囲内の標的レベルにプログラムされる。システムは、プログラムされるビット数をチェックする（工程１９０９）。これは、プログラムされるビット数に対するＶｈｖ（ｉｎｃ）のＬＵＴ（ルックアップテーブル）を使用して、又は近似関数を使用して決定する（工程１９１０）。Ｖｈｖは、ＳＬ、ＣＧ、及びＥＧの高電圧レベルなどの高電圧であり、ＬＵＴ又は関数は、プログラムされる＃ＩＯ、Ｉｔａｒｇｅｔ、及びデルタＩｃｅｌｌ（＝現在のＩｃｅｌｌ−前のＩｃｅｌｌ）の関数である。次いで、精密なプログラミング工程を実行する（工程１９１１）。プログラミング動作が実行される（工程１９１２）。次いで、検証工程（Ｉｃｅｌｌ対Ｉｔａｒｇｅｔをチェックし、デルタＩｃｅｌｌを計算／格納する）が実行される（工程１９１３）。１つ以上のセルが検証される場合、プロセスは工程１９０９に戻って残りのセルをプログラムする。いいえの場合、カウンタがチェックされ、閾値試行回数が行われた場合、プロセスは終了し、セルは不良と見なされる。いいえの場合、プログラミング工程１９１２が繰り返される。全てのセルが検証されると（工程１９１４）、プロセスは完了する。
【００９５】
図２０００は、ルックアップテーブルを構築する、又はプログラムされる各可能なビット数に対してプログラミングに必要な所望の電圧レベルを決定する関数を生成するための高電圧較正プロセスを示す。開始点は、１ビットがプログラムされるべき状況である（工程２００１）。その１ビットをプログラミングするための電圧（ＳＬ、ＣＧ、及びＥＧの高電圧レベルなど）が決定される（工程２００２）。次いで、ビット数が増分され（工程２００３）、プログラミング工程が繰り返される（工程２００１）。プロセスがＮビット（プログラムされる可能なビットの総数）に対して実行されると、値はルックアップテーブルにプログラミングされ（工程２００４）、プログラミング動作中に参照される。
【００９６】
図２１は、プログラミング動作に対する２つの異なるアプローチを示す。各動作は、検証及びプログラム（Ｖｅｆ／Ｐｒｏｇ）サイクルの倍数を含む。検証サイクルでは、Ｉｔａｒｇｅｔがチェックされ、プログラムされるＩＯの数がチェックされる。ＨＶプログラムレベル（ＳＬ、ＣＧ、及びＥＧの高電圧レベルなど）は、Ｉｔａｒｇｅｔ及びプログラムされるＩＯの数に基づいて調整される。波形２１０１では、プログラミング動作中に提供される合計電圧は、プログラムされるビット数が増加するにつれて、大きさが増大する。シーケンス２１０１は、４つの例示的なパルスを通して、３ビットがプログラムされる状況について提供される電圧を表す。対照的に、Ｖｅｆ／Ｐｒｏｇサイクル当たりのＨＶレベル及びプログラム時間調整を有する波形２１０３では、シーケンス２１０１におけるのと同じ大きさの２つのパルスが提供されるが、次いで、Ｖｅｆ／Ｐｒｏｇ  ｋサイクル中の例のように、プログラムされるビット数が少なくなると、大きさが減少し（例えば、ｄＶ１ｎｅｇ）、より小さなパルスは、より長い期間提供される（すなわち、２１０１におけるより高い大きさの２つのパルスの代わりに、２１０４におけるより低い大きさの４つのパルス）。すなわち、同じ結果を、パルスの印加の電圧の大きさ及び持続時間の異なる組み合わせで達成することができる。Ｖｅｆ／Ｐｒｏｇ  ｋサイクルのＨＶプログラムレベルは、プログラムされるビットが少ないために、次のプログラミングサイクルで標的をオーバーシュートするのを防止するために下げられ、すなわち、ＨＶプログラムレベルは次のサイクルでより高くなる。
【００９７】
図２２は、プログラミング動作に対する２つの追加のアプローチを示す。波形２２０１では、プログラミング動作中に提供される合計電圧は、大きさが同じままであるが、プログラムされるビット数が増加するにつれて、各プログラミングパルスの長さは増加する。Ｖｅｆ／Ｐｒｏｇ  ｚサイクル中の例のように、Ｖｅｆ／Ｐｒｏｇサイクル当たりのプログラムパルス幅時間調整を有する波形２２０１では、プログラムされるビット数が少なくなると、（２２０１の持続時間Ｔ３のパルスのように）長いパルスの代わりに、パルスが代わりに短縮されるが（Ｔ１）、より多くのパルスが印加され、それにより、合計持続時間は、その特定のプログラミングレベルに対して波形２２０１より長くなる。Ｖｅｆ／Ｐｒｏｇ  ｚサイクルは、プログラムされるビットが少ないために、次のプログラミングサイクルで標的をオーバーシュートするのを防止するために短縮され、すなわち、ＨＶプログラムレベルは次のサイクルでより高くなる。すなわち、同じ結果を、各パルスの持続時間、又は全てのパルスの合計持続時間のいずれかを変化させることによって達成することができるが、電圧の大きさは一定のままである。
【００９８】
別のアプローチは、電圧の大きさ、パルス持続時間、及び全てのパルスの合計持続時間を変調することである。別のアプローチは、プログラミング電圧又は時間の代わりにプログラミング電流を変調することである。
【００９９】
図２３は、複数ワードのビットがプログラムされるときの高電圧生成の波形を示す。信号２３０２は、プログラミングのためにメモリセルに印加された例示的なＨＶ電圧（ＳＬ、ＣＧ、及びＥＧの高電圧レベルなど）である。信号２３０４は、例示的なデータイン［Ｎ：１］であり、その値は、プログラムされるＩＯビットの数を制御する。信号２３０５は、各ＩＯに対して個々にプログラムパルス幅を制御する。タイミング２３０６に示すように、低になることは、プログラミングを有効にすることを意味し、高になることは、プログラミングを無効にすることを意味する。信号２３０５は、全てのＩＯビットが異なる立ち下がりエッジで低になるが、同じ立ち上がりエッジで高になることを示す。これは、プログラムパルス中に、内部高電圧レベルがタイミング２３０６の間に低になることを確実にするためであり（より多くのビットがプログラムされることが可能になると、より多くの電流負荷につながり、タイミング２３０６に示すように左から右に向かう２３０６タイミング中にＩＲドロップが増えることを意味する）、そうでなければ発生する可能性のあるプログラムのオーバーシュートを回避するためである。
【０１００】
図２４は、ＶＭＭシステム２４００のブロック図を示す。ＶＭＭシステムは、ＶＭＭマトリックス２４０８、行デコーダ２４０７、高電圧デコーダ２４０９、列デコーダ２４１０、及びビット線ドライバ２４１１を備える。ＶＭＭシステム２４００は、チャージポンプ２４０１、チャージポンプ調整器２４０２、及び高電圧レベル生成器２４０３を備える高電圧生成ブロック２４１２を更に備える。ＶＭＭシステム２４００は、アルゴリズムコントローラ２４０４、アナログ回路２４０５、及び制御論理２４０６を更に備える。
【０１０１】
図２５は、チャージポンプ２４０１及びチャージポンプ調整器２４０２に関する更なる詳細を提供する。チャージポンプ２４０１は、イネーブル信号２５０１によって制御される。イネーブル信号２５０１がアサートされないとき、チャージポンプ２４０１は、その出力の電圧を増加させ続ける。イネーブル信号２５０１がアサートされるとき、チャージポンプ２４０１は、その出力の電圧レベルを維持する。チャージポンプ調整器２４０２は、一連のダイオード２５０４、２５０６、及び２５０８、並びに抵抗器２５０５、２５０７、及び２５０９を備える。その構造内のノードは、電圧基準を含む別の入力を受信するコンパレータ２５０３に入力される。チャージポンプ２４０１からの電圧出力がダイオード２５０４、２５０６、及び２５０８を作動させるのに十分である場合、電流はコンパレータ２５０３内に流れ、イネーブル信号はアサートされる。したがって、チャージポンプ調整器２４０４は、ダイオード２５０４、２５０６、及び２５０８並びに抵抗器２５０５、２５０７、及び２５０９の特性に基づく所望の電圧レベルが達成されるまでチャージポンプ２４０１を制御する。
【０１０２】
図２６は、高電圧バッファ２６０１及び調整可能な電流シンク２６０２と共に使用されるＶＭＭシステム２４００を示す。高電圧生成器ブロック２４１２は、高電圧バッファ２６０１に提供される電圧を生成し、これは次に、その電圧を高電圧デコーダ２４０９及び調整可能な電流シンク（プログラム補償電流Ｉｃｏｍｐ）２６０２に提供する。調整可能な電流シンクＩｃｏｍｐ２６０２によって引き込まれる電流は、例えば、プログラムされるＩＯの数を補償するために、高電圧バッファ２６０１内に補償された電圧ドロップ（例えば、プログラムされる１／２／．．．／３２ＩＯに対してｄＶｏｕｔ１／２／．．／３２ドロップ）を誘発するように、かつ高電圧バッファ２６０１の温度を低下させるように調整することができる。例えば、Ｉｃｏｍｐα（プログラムされる＃ＩＯ）*Ｉｐｒｏｇ*Ｍ。Ｉｐｒｏｇ＝セルプログラミング電流、Ｍ＝プログラムにおけるメモリセルのホットキャリア効果による乗数である。補償Ｉｃｏｍｐは、変動する出力負荷にわたって一定の高電圧出力を維持するために適用される。
【０１０３】
図２７は、高電圧バッファ２７０１及び調整可能な電流シンク２７０２と共に使用されるＶＭＭシステム２４００を示す。高電圧生成器２４１２は、高電圧バッファ２７０１に提供される電圧を生成し、これは次に、その電圧を高電圧デコーダ２４０９に提供する。調整可能な電流シンク（補償電流）Ｉｃｏｍｐ２７０２によって引き込まれる電流は、例えば、高電圧デコーダ２４０９内の電流ドロップ（プログラムされるＩＯの数の関数として）を低減して、高電圧デコーダ２４０９の温度を低下させるように調整することができる。例えば、Ｉｃｏｍｐα（プログラムされる＃ＩＯ）*Ｉｐｒｏｇ*Ｍ。Ｉｐｒｏｇ＝セルプログラミング電流、Ｍ＝プログラムにおけるメモリセルのホットキャリア効果による乗数である。補償Ｉｃｏｍｐは、変動する出力負荷にわたって一定の高電圧出力を維持するために適用される。
【０１０４】
図２８は、ここで演算増幅器である高電圧バッファ２８０１と共に使用されるＶＭＭシステム２４００を示す。高電圧生成器２４１２は、高電圧バッファ２７０１に提供される電圧を生成し、これは次に、その電圧を高電圧デコーダ２４０９に提供する。高電圧デコーダ２４０９からの出力（例えば、出力はアレイ内のＨＶ電圧のフィードバックインジケータである）は、高電圧バッファ２８０１への入力として提供され、次いで、高電圧バッファ２８０１は、閉ループコンパレータとして動作する。閉ループ補償は、変動する出力負荷にわたって一定の高電圧出力を維持するために適用される。
【０１０５】
図２９は、ＶＭＭシステム２４００と共に使用されるプログラム電流補償ブロック２９００を示す。ここで、ダミープログラムビット線（プログラム可能ダミーアレイ）には、３２ビット線の各グループが提供される。例えば、グループ２９０１はダミービット線２９０３を含み、グループ２９０２はダミービット線２９０４を含む。これらのダミービット線２９０３及び２９０４は、それぞれ、グループ２９０１及び２９０２内の１つ以上の他のビットがプログラムされていない場合にオンにすることができる。これにより、プログラミング動作中に引き込まれる電流は、ダミービット線２９０３及び２９０４を使用しない場合より一定に維持される。プログラムダミーアレイ補償スキームは、変動する出力負荷にわたって一定の高電圧出力を維持するために適用される。
【０１０６】
図３０は、高電圧デコーダ２４０９で使用することができる高電圧デコーダブロック３０００の例を示す。ここで、ソース線３００５は、アレイ２４０８内の１つ又は２つの行に結合される。ＮＭＯＳトランジスタ３００１、３００２、３００３、及び３００４は、図示のようにソース線３００５に結合される。ＨＶ電源３０１０は、ＨＶバッファからのようなものであり、ＨＶ比較信号３０１１は、図２８に示されるようなものである。
【０１０７】
図３１は、試験回路３１００を示す。試験回路は、イネーブル信号ＥＮを受信する高電圧トランスミッタ３１０１を備える。高電圧トランスミッタは、ＮＭＯＳトランジスタ３１０２及びＮＭＯＳカスコードトランジスタ３１０３に高電圧イネーブル信号を提供する。ＮＭＯＳトランジスタ３２０１の一方の端子は外部試験パッドに接続し、ＮＭＯＳトランジスタ３１０３の一方の端子は、ＶＭＭシステム２４００内の内部ノードに結合される。この回路は、電圧較正のためなどに使用される。
【０１０８】
図３２は、高電圧生成ブロック２４１２の実施形態を示す。
【０１０９】
図３３は、高電圧生成ブロック２４１２の別の実施形態を示す。ここで、高電圧生成ブロックは、チャージポンプ３３０１、チャージポンプ調整器３３０３、及び高電圧演算増幅器３３０２を備える。チャージポンプ調整器３３０３の出力の電圧は、チャージポンプ調整器３３０３内のＮＭＯＳトランジスタのゲートに送られる信号に基づいて制御することができる。
【０１１０】
図３４は、高電圧生成ブロック２４１２の別の実施形態を示す。高電圧生成ブロック２４１２は、高電圧演算増幅器３４０３、ＳＣ（スイッチキャップ）ネットワーク３４０２、及びＳＣネットワーク３４０１を備える。ＳＣネットワーク３４０２は、調整可能なコンデンサ３４０４を備える。ＳＣネットワーク３４０１は、スイッチ３４０５、３４０７、３４０８、及び３４０９、並びに調整可能なコンデンサ３４０６を備える。
【０１１１】
図３５は、図３４の高電圧演算増幅器３４０４に使用することができる高電圧演算増幅器３５００を示す。高電圧演算増幅器３５００は、示された配置で示される構成要素を備える。
【０１１２】
図３６は、図３４の高電圧演算増幅器３４０４に使用することができる高電圧演算増幅器３６００を示す。高電圧演算増幅器３６００は、示された配置で示される構成要素を備える。
【０１１３】
図３７は、ビット線ドライバ２４１１に使用することができる列ドライバ３７００を示す。列ドライバ３７００は、図示の構成では、ラッチ３７０１、インバータ３７０２、ＮＯＲゲート３７０３、ＰＭＯＳトランジスタ３７０４、ＮＭＯＳトランジスタ３７０５及び３７０６、並びにセンス増幅器３７０７を備える。
【０１１４】
図３８は、図３７のセンス増幅器３７０７に使用することができる、センス増幅器３８００を示す。センス増幅器３８００は、図示の構成では、調整可能な電流基準源３８０１、スイッチ３８０２、ＮＭＯＳトランジスタ３８０３、コンデンサ３８０４、スイッチ３８０５、電流源３８０６、及びインバータ３８０７を備える。センス増幅器３７０７は、アレイ２４０８内のメモリセル３８０８に結合される。
【０１１５】
図３９は、ビット線基準デコーダ３９０１及び基準セル３９０１0〜３９０２Nを備える基準アレイ回路３９００を示す。
【０１１６】
図４０は、ビット線基準デコーダ４００１及び基準セル４００２0〜４０００Nを備える基準アレイ回路４０００を示す。
【０１１７】
本明細書で使用される場合、「の上方に（over）」及び「に（on）」という用語は両方とも、「に直接」（中間材料、要素、又は空間がそれらの間に何ら配設されない）、及び「の上に間接的に」（中間材料、要素、又は空間がそれらの間に配設される）を包括的に含むことに留意するべきである。同様に、「隣接した」という用語は、「直接隣接した」（中間材料、要素、又は空間がそれらの間に何ら配設されない）、及び「間接的に隣接した」（中間材料、要素、又は空間がそれらの間に配設される）を含み、「に取り付けられた」は、「に直接取り付けられた」（中間材料、要素、又は空間がそれらの間に何ら配設されない）、及び「に間接的に取り付けられた」（中間材料、要素、又は空間がそれらの間に配設される）を含み、「電気的に結合された」は、「に直接電気的に結合された」（要素を一緒に電気的に連結する中間材料又は要素がそれらの間にない）、及び「に間接的に電気的に結合された」（要素を一緒に電気的に連結する中間材料又は要素がそれらの間にある）を含む。例えば、要素を「基板の上方に」形成することは、その要素を基板に直接、中間材料／要素をそれらの間に何ら伴わずに、形成すること、及びその要素を基板の上に間接的に、１つ以上の中間材料／要素をそれらの間に伴って、形成することを含み得る。
【図１】
2021523511.tif 000007
【図２】
2021523511.tif 000008
【図３】
2021523511.tif 000009
【図４】
2021523511.tif 000010
【図５】
2021523511.tif 000011
【図６】
2021523511.tif 000012
【図７】
2021523511.tif 000013
【図８】
2021523511.tif 000014
【図９】
2021523511.tif 000015
【図１０】
2021523511.tif 000016
【図１１】
2021523511.tif 000017
【図１２】
2021523511.tif 000018
【図１３】
2021523511.tif 000019
【図１４】
2021523511.tif 000020
【図１５】
2021523511.tif 000021
【図１６】
2021523511.tif 000022
【図１７】
2021523511.tif 000023
【図１８】
2021523511.tif 000024
【図１９Ａ】
2021523511.tif 000025
【図１９Ｂ】
2021523511.tif 000026
【図１９Ｃ】
2021523511.tif 000027
【図２０】
2021523511.tif 000028
【図２１】
2021523511.tif 000029
【図２２】
2021523511.tif 000030
【図２３】
2021523511.tif 000031
【図２４】
2021523511.tif 000032
【図２５】
2021523511.tif 000033
【図２６】
2021523511.tif 000034
【図２７】
2021523511.tif 000035
【図２８】
2021523511.tif 000036
【図２９】
2021523511.tif 000037
【図３０】
2021523511.tif 000038
【図３１】
2021523511.tif 000039
【図３２】
2021523511.tif 000040
【図３３】
2021523511.tif 000041
【図３４】
2021523511.tif 000042
【図３５】
2021523511.tif 000043
【図３６】
2021523511.tif 000044
【図３７】
2021523511.tif 000045
【図３８】
2021523511.tif 000046
【図３９】
2021523511.tif 000047
【図４０】
2021523511.tif 000048
【国際調査報告】
2021523511.tif 000049
2021523511.tif 000050
2021523511.tif 000051