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