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