(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024096888
(43)【公開日】2024-07-17
(54)【発明の名称】論理セル及び改善されたプログラミング機構を備える人工ニューラルネットワーク内のアナログニューラルメモリアレイ
(51)【国際特許分類】
G11C 16/10 20060101AFI20240709BHJP
G11C 16/34 20060101ALI20240709BHJP
G11C 11/54 20060101ALI20240709BHJP
G11C 11/56 20060101ALI20240709BHJP
G06N 3/065 20230101ALI20240709BHJP
G06G 7/60 20060101ALI20240709BHJP
【FI】
G11C16/10 150
G11C16/34 140
G11C11/54
G11C11/56 210
G06N3/065
G06G7/60
【審査請求】有
【請求項の数】11
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024065576
(22)【出願日】2024-04-15
(62)【分割の表示】P 2022568435の分割
【原出願日】2020-10-30
(31)【優先権主張番号】63/024,351
(32)【優先日】2020-05-13
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/082,956
(32)【優先日】2020-10-28
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】500147506
【氏名又は名称】シリコン ストーリッジ テクノロージー インコーポレイテッド
【氏名又は名称原語表記】SILICON STORAGE TECHNOLOGY, INC.
(74)【代理人】
【識別番号】110000626
【氏名又は名称】弁理士法人英知国際特許商標事務所
(72)【発明者】
【氏名】トラン、ヒュー バン
(72)【発明者】
【氏名】トリン、ステファン
(72)【発明者】
【氏名】ブー、サン
(72)【発明者】
【氏名】レムケ、スティーブン
(72)【発明者】
【氏名】ティワリ、ビピン
(72)【発明者】
【氏名】ドー、ナン
(72)【発明者】
【氏名】ホン、スタンレー
(57)【要約】 (修正有)
【課題】極めて高いプログラミング精度及びプログラミング速度を達成するアナログニューラルメモリアレイのプログラム方法を提供する。
【解決手段】アナログニューラルメモリアレイは、2つ以上の物理メモリセルが一緒にグループ化されて、N個の可能なレベルのうちの1つを記憶する論理セルを形成する。それぞれの論理セル内で、メモリセルは、異なる機構を使用してプログラムされる。例えば、論理セル内のメモリセルのうちの1つ以上は、粗プログラミング機構を使用してプログラムされ、メモリセルのうちの1つ以上は、微細機構を使用してプログラムされ、メモリセルのうちの1つ以上は、チューニング機構を使用してプログラムされ、極めて高いプログラミング精度及びプログラミング速度を達成し、極めて高いプログラミング精度及びプログラミング速度を達成する。
【選択図】なし
【特許請求の範囲】
【請求項1】
メモリシステムであって、
行及び列に配置された不揮発性メモリセルのアレイと、
前記アレイの同じ行内に位置する、粗セルとして構成された1つ以上の不揮発性メモリセルと、微細セルとして構成された1つ以上の不揮発性メモリセルと、を含む論理セルと、を備える、メモリシステム。
【請求項2】
前記システムは、粗プログラミング方法を使用して粗セルをプログラムし、微細プログラミング方法を使用して微細セルをプログラムするように構成されている、請求項1に記載のメモリシステム。
【請求項3】
粗セルとして構成された前記不揮発性メモリセルのそれぞれは、微細セルとして構成された前記不揮発性メモリセルのそれぞれの可能なプログラム電流値の範囲よりも大きい、可能なプログラム電流値の範囲を有する、請求項1に記載のメモリシステム。
【請求項4】
チューニングセルを更に備える、請求項1に記載のメモリシステム。
【請求項5】
前記チューニングセルは、前記チューニングセルに隣接するセルをチューニングするために使用される、請求項1に記載のメモリシステム。
【請求項6】
前記チューニングセルは、前記チューニングセルの浮遊ゲートと前記隣接するセルの浮遊ゲートとの間の結合を通して前記隣接するセルをチューニングするために使用される、請求項5に記載のメモリシステム。
【請求項7】
前記論理セルは同じ行内に1つ以上のチューニングセルを更に含み、前記論理セルのプログラミング動作中に、前記1つ以上のチューニングセルがプログラムされる、請求項1に記載のメモリシステム。
【請求項8】
前記論理セル内の前記1つ以上のチューニングセルは、隣接する論理セル内の粗セルに隣接する、請求項7に記載のメモリシステム。
【請求項9】
前記不揮発性メモリセルはスプリットゲートフラッシュメモリセルである、請求項1に記載のメモリシステム。
【請求項10】
前記不揮発性メモリセルは積層ゲートフラッシュメモリセルである、請求項1に記載のメモリシステム。
【請求項11】
前記論理セルは2つ以上の分離セル間の行内に位置する、請求項1に記載のメモリシステム。
【請求項12】
前記論理セルは2つ以上のストラップセル間の行内に位置する、請求項1に記載のメモリシステム。
【請求項13】
前記論理セルは2つ以上のソース線プルダウンセル間の行内に位置する、請求項1に記載のメモリシステム。
【請求項14】
それぞれの行は1つ以上の分離セルを含む、請求項1に記載のメモリシステム。
【請求項15】
前記分離セルは、プログラムされるか、部分的にプログラムされるか、消去されるか、部分的に消去されるか、又はネイティブ状態である、請求項14に記載のメモリシステム。
【請求項16】
前記分離セルはダミーセルである、請求項14に記載のメモリシステム。
【請求項17】
それぞれの行は1つ以上のストラップセルを含む、請求項1に記載のメモリシステム。
【請求項18】
前記ストラップセルはダミーセルである、請求項17に記載のメモリシステム。
【請求項19】
前記メモリシステムはニューラルネットワークの一部である、請求項1に記載のメモリシステム。
【請求項20】
前記ニューラルネットワークはアナログニューラルネットワークである、請求項19に記載のメモリシステム。
【請求項21】
不揮発性メモリセルのアレイの行内に位置する、粗セルとして構成された1つ以上の不揮発性メモリセルと、微細セルとして構成された1つ以上の不揮発性メモリセルと、を含む論理セルをプログラミングする方法であって、前記方法は、
粗プログラミング方法を使用して、粗セルとして構成された前記1つ以上の不揮発性メモリセルをプログラミングするステップと、
微細プログラミング方法を使用して、微細セルとして構成された前記1つ以上の不揮発性メモリセルをプログラミングするステップと、を含む、方法。
【請求項22】
前記論理セルでプログラムされた値を検証するステップを更に含む、請求項21に記載の方法。
【請求項23】
前記論理セルは、同じ行内のチューニングセルとして構成された1つ以上の不揮発性メモリセルを更に含み、前記方法は、
チューニング方法を使用して、チューニングセルとして構成された前記1つ以上の不揮発性メモリセルをプログラミングするステップを更に含む、請求項21に記載の方法。
【請求項24】
前記論理セルでプログラムされた前記値を検証するステップを更に含む、請求項23に記載の方法。
【請求項25】
前記不揮発性メモリセルはスプリットゲートフラッシュメモリセルである、請求項21に記載の方法。
【請求項26】
前記不揮発性メモリセルは積層ゲートフラッシュメモリセルである、請求項21に記載の方法。
【請求項27】
前記論理セルは2つ以上の分離セル間の行内に位置する、請求項21に記載の方法。
【請求項28】
前記論理セルは2つ以上のストラップセル間の行内に位置する、請求項21に記載の方法。
【請求項29】
前記論理セルは2つ以上のソース線プルダウンセル間の行内に位置する、請求項21に記載の方法。
【請求項30】
前記メモリシステムはニューラルネットワークの一部である、請求項21に記載のメモリシステム。
【請求項31】
前記ニューラルネットワークはアナログニューラルネットワークである、請求項30に記載のメモリシステム。
【請求項32】
メモリシステムであって、
行及び列に配置された不揮発性メモリセルのアレイと、
前記アレイの第1の行内に第1の複数の不揮発性メモリセルと、前記第1の行に隣接する第2の行内に第2の複数の不揮発性メモリセルと、を含む論理セルと、を備え、
前記第1の複数の不揮発性メモリセル及び前記第2の複数の不揮発性メモリセルは、1つ以上の粗セル及び1つ以上の微細セルとして構成されている、メモリシステム。
【請求項33】
前記論理セルのプログラミング動作中に、粗プログラミング方法は前記粗セルをプログラムするために使用され、微細プログラミング方法は前記微細セルをプログラムするために使用される、請求項32に記載のメモリシステム。
【請求項34】
チューニングセルを更に含む、請求項32に記載のメモリシステム。
【請求項35】
前記チューニングセルは、隣接するセルをチューニングするために使用される、請求項34に記載のメモリシステム。
【請求項36】
前記第1の複数の不揮発性メモリセル及び前記第2の複数の不揮発性メモリセルうちの1つ以上は1つ以上のチューニングセルを含み、前記論理セルのプログラミング動作中に、前記1つ以上のチューニングセルをプログラムするためにチューニング方法が使用される、請求項32に記載のメモリシステム。
【請求項37】
前記不揮発性メモリセルはスプリットゲートフラッシュメモリセルである、請求項32に記載のメモリシステム。
【請求項38】
前記不揮発性メモリセルは積層ゲートフラッシュメモリセルである、請求項32に記載のメモリシステム。
【請求項39】
前記メモリシステムはニューラルネットワークの一部である、請求項32に記載のメモリシステム。
【請求項40】
前記ニューラルネットワークはアナログニューラルネットワークである、請求項39に記載のメモリシステム。
【請求項41】
不揮発性メモリセルのアレイの第1の行内に第1の複数の不揮発性メモリセルと、前記第1の行に隣接する第2の行内に第2の複数の不揮発性メモリセルと、を含む論理セルをプログラムする方法であって、前記第1の複数の不揮発性メモリセル及び前記第2の複数の不揮発性メモリセルは、1つ以上の粗セル及び1つ以上の微細セルとして構成されており、前記方法は、
粗プログラミング方法を使用して、前記1つ以上の粗セルをグラミングするステップと、
微細プログラミング方法を使用して、前記1つ以上の微細セルをグラミングするステップと、を含む、方法。
【請求項42】
前記論理セルでプログラムされた前記値を検証するステップを更に含む、請求項41に記載の方法。
【請求項43】
前記論理セルは同じ行内に1つ以上のチューニングセルを更に含み、前記方法は、
チューニング方法を使用して前記1つ以上のチューニングセルをグラミングするステップを更に含む、請求項41に記載の方法。
【請求項44】
前記論理セルでプログラムされた前記値を検証するステップを更に含む、請求項43に記載の方法。
【請求項45】
前記不揮発性メモリセルはスプリットゲートフラッシュメモリセルである、請求項41に記載の方法。
【請求項46】
前記不揮発性メモリセルは積層ゲートフラッシュメモリセルである、請求項41に記載の方法。
【請求項47】
前記メモリシステムはニューラルネットワークの一部である、請求項41に記載のメモリシステム。
【請求項48】
前記ニューラルネットワークはアナログニューラルネットワークである、請求項47に記載のメモリシステム。
【請求項49】
不揮発性メモリセルのアレイに対するレベル割り当ての方法であって、前記方法は、
プログラム分解能電流値を決定するステップと、
複数の不揮発性メモリセルの中のそれぞれの隣接するセルの対のレベル間のデルタ電流が、前記プログラム分解能電流値の倍数になるように、前記アレイ内の前記複数の不揮発性メモリセルのプログラミング動作に対してレベルを設定するステップと、を含む、方法。
【請求項50】
前記アレイはアナログメモリである、請求項49に記載の方法。
【請求項51】
前記最低レベルはオフのセルの漏れ値の倍数である、請求項49に記載の方法。
【請求項52】
前記デルタ電流は、前記プログラム分解能電流値に対して少なくとも1シグマである、請求項49に記載の方法。
【請求項53】
前記デルタ電流は、前記プログラム分解能電流値に対して少なくとも2シグマである、請求項49に記載の方法。
【請求項54】
前記デルタ電流は、前記プログラム分解能電流値に対して少なくとも3シグマである、請求項49に記載の方法。
【請求項55】
前記不揮発性メモリセルは論理セルに編成され、それぞれの論理セルは、1つ以上の粗セル及び1つ以上の微細セルを含む、請求項49に記載の方法。
【請求項56】
前記不揮発性メモリセルはスプリットゲートフラッシュメモリセルである、請求項49に記載の方法。
【請求項57】
前記不揮発性メモリセルは積層ゲートフラッシュメモリセルである、請求項49に記載の方法。
【請求項58】
前記メモリシステムはニューラルネットワークの一部である、請求項49に記載のメモリシステム。
【請求項59】
前記ニューラルネットワークはアナログニューラルネットワークである、請求項58に記載のメモリシステム。
【請求項60】
メモリシステムであって、
行及び列に配置されたフラッシュメモリセルのアレイと、
前記アレイの同じ行内に位置する、粗セルとして構成された1つ以上のメモリセルと、微細セルとして構成された1つ以上のメモリセルと、を含む論理セルと、を備える、メモリシステム。
【発明の詳細な説明】
【技術分野】
【0001】
(優先権の主張)
本出願は、「Analog Neural Memory Array in Artificial Neural Network Comprising Logical Cells and Improved Programming Mechanism」と題する2020年5月13日に出願された米国仮特許出願第63/024,351号、及び「Analog Neural Memory Array in Artificial Neural Network Comprising Logical Cells and Improved Programming Mechanism」と題する2020年10月28日に出願された米国特許出願第17/082,956号に対する優先権を主張する。
【0002】
(発明の分野)
アナログニューラルメモリアレイの多数の実施形態が、開示されている。2つ以上の物理メモリセルが一緒にグループ化されて、N個の可能なレベルのうちの1つを記憶する論理セルを形成する。それぞれの論理セル内で、メモリセルは、異なる機構を使用してプログラムされ得る。例えば、論理セル内のメモリセルのうちの1つ以上は、粗プログラミング機構を使用してプログラムされ得、メモリセルのうちの1つ以上は、微細機構を使用してプログラムされ得、メモリセルのうちの1つ以上は、超微細機構を使用してプログラムされ得る。これは、最適な領域を伴う極めて高いプログラミングの正確性及びプログラミング速度を達成する。
【背景技術】
【0003】
人工ニューラルネットワークは、生物学的ニューラルネットワーク(動物の中枢神経系、特に脳)を模倣しており、多数の入力に依存し得、かつ、一般的に未知である関数を推定する又は近似するために使用される。人工ニューラルネットワークは、概して、メッセージを交換する相互接続した「ニューロン」の層を含む。
【0004】
図1は人工ニューラルネットワークを示しており、図中、円は、入力又はニューロンの層を表す。接続(シナプスと呼ばれる)は、矢印によって表され、経験に基づいてチューニングされ得る数値の重みを有する。これにより、人工ニューラルネットワークは入力に適応し、学習可能になる。典型的には、人工ニューラルネットワークは、複数の入力の層を含む。典型的には、1つ以上のニューロンの中間層、及びニューラルネットワークの出力を提供するニューロンの出力層が存在する。各レベルでニューロンは、シナプスから受信したデータに基づいて個々に又は集合的に決定を行う。
【0005】
高性能情報処理用の人工ニューラルネットワークの開発における主要な課題の1つは、適切なハードウェア技術の欠如である。実際には、実用人工ニューラルネットワークは、非常に多数のシナプスに依拠しており、これによりニューロン間の高い接続性、すなわち、非常に高度な計算処理の並列化が可能となる。原理的には、このような複雑性は、デジタルスーパーコンピュータ又は専用グラフィックプロセッシングユニットクラスタによって実現が可能である。しかしながら、高コストに加え、これらのアプローチはまた、生物学的ネットワークが主として低精度のアナログ計算を実施するのではるかに少ないエネルギーしか消費しないのと比較して、エネルギー効率が劣っていることに悩まされている。人工ニューラルネットワークにはCMOSアナログ回路が使用されてきたが、ほとんどのCMOS実装シナプスは、多数のニューロン及びシナプスを前提とすると、嵩高過ぎていた。
【0006】
出願人は以前に、参照により組み込まれる米国特許公開第2017/0337466号として公開された米国特許出願第15/594,439号において、シナプスとして1つ以上の不揮発性メモリアレイを利用する人工(アナログ)ニューラルネットワークを開示した。不揮発性メモリアレイは、アナログニューロモーフィックメモリとして動作する。本明細書で使用される場合、ニューロモーフィックという用語は、神経システムのモデルを実装する回路を意味する。アナログニューロモーフィックメモリは、第1の複数の入力を受信して、それから第1の複数の出力を生成するように構成されている第1の複数のシナプス、及び第1の複数の出力を受信するように構成された第1の複数のニューロンを含む。第1の複数のシナプスは複数のメモリセルを含み、各メモリセルは、半導体基板内に形成された、間にチャネル領域が延在している離間したソース領域及びドレイン領域と、チャネル領域の第1の部分の上方に絶縁されて配設される浮遊ゲートと、チャネル領域の第2の部分の上方に絶縁されて配設される非浮遊ゲートと、を含む。複数のメモリセルの各々は、浮遊ゲート上の多くの電子に対応する重み値を記憶するように構成されている。複数のメモリセルは、第1の複数の入力に、記憶された重み値を乗算して第1の複数の出力を生成するように構成される。この様式で配置されるメモリセルのアレイは、ベクトル行列乗算(VMM)アレイと称され得る。
【0007】
ここで、VMMで使用され得る異なる不揮発性メモリセルの例について論じる。
<<不揮発性メモリセル>>
【0008】
様々なタイプの既知の不揮発性メモリセルが、VMMアレイで使用され得る。例えば、参照により本明細書に組み込まれる米国特許第5,029,130号(「’130号特許」)は、フラッシュメモリセルの一種であるプリットゲート不揮発性メモリセルのアレイを開示する。このようなメモリセル210を
図2に示す。各メモリセル210は、半導体基板12内に形成されたソース領域14とドレイン領域16と、を含み、ソース領域14とドレイン領域16の間にはチャネル領域18がある。浮遊ゲート20は、チャネル領域18の第1の部分の上方に絶縁されて形成され(並びに、チャネル領域18の第1の部分の導電性を制御して)、ソース領域14の一部分の上方にかけて形成される。ワード線端子22(典型的には、ワード線に結合される)は、チャネル領域18の第2の部分の上方に絶縁されて配設される(並びに、チャネル領域18の第2の部分の導電性を制御する)第1の部分と、浮遊ゲート20の上方で上に延在する第2の部分と、を有する。浮遊ゲート20及びワード線端子22は、ゲート酸化物によって基板12から絶縁される。ビット線端子24はドレイン領域16に結合される。
【0009】
ワード線端子22に高圧正電圧を印加することによって、メモリセル210に対して消去が行われ(電子が浮遊ゲートから除去される)、これによって、浮遊ゲート20の電子は、浮遊ゲート20からワード線端子22までそれらの間にある絶縁体の中をファウラーノルドハイム(Fowler-Nordheim)トンネリングを介して通過する。
【0010】
メモリセル210は、ワード線端子22に正電圧、及びソース領域14に正電圧を印加することによってプログラムされる(電子が浮遊ゲートに印加される)。電子電流は、ドレイン領域16からソース領域14(ソース線端子)に向かって流れる。電子は加速し、ワード線端子22と浮遊ゲート20との間の間隙に達すると、励起される(発熱する)。熱せられた電子の一部が、浮遊ゲート20からの静電引力に起因して、浮遊ゲート20にゲート酸化物を介して注入される。
【0011】
メモリセル210は、ドレイン領域16及びワード線端子22に正の読み出し電圧を印加する(ワード線端子の下方のチャネル領域18の部分をオンにする)ことによって、読み出される。浮遊ゲート20が正に帯電する(すなわち、電子を消去する)と、浮遊ゲート20の下方のチャネル領域18の部分も同様にオンになり、電流はチャネル領域18を流れ、これは、消去された状態つまり「1」の状態として検知される。浮遊ゲート20が負に帯電する(すなわち、電子でプログラムされる)と、浮遊ゲート20の下方のチャネル領域の部分はほとんど又は完全にオフになり、電流はチャネル領域18を流れず(又はほとんど流れず)、これは、プログラムされた状態つまり「0」の状態として検知される。
【0012】
表1は、読み出し、消去、及びプログラム動作を実行するためのメモリセル110の端子に印加され得る典型的な電圧範囲を示す。
表1:
図2のフラッシュメモリセル210の動作
【表1】
「読み出し1」は、セル電流がビット線に出力される読み出しモードである。「読み出し2」は、セル電流がソース線端子に出力される読み出しモードである。
【0013】
図3は、制御ゲート(control gate、CG)端子28を追加した、
図2のメモリセル210と同様のメモリセル310を示す。制御ゲート端子28は、プログラミング中に高電圧(例えば、10V)、消去中に低又は負電圧(例えば、0v/-8V)、読み出し中に低又は中程度電圧(例えば、0v/2.5V)でバイアスされる。他の端子は、
図2の端子と同様にバイアスされる。
【0014】
図4は、ソース領域14と、ドレイン領域16と、チャネル領域18の第1の部分の上方にある浮遊ゲート20と、チャネル領域18の第2の部分の上方にある選択ゲート22(典型的には、ワード線、WL、に結合される)と、浮遊ゲート20の上方にある制御ゲート28と、ソース領域14の上方にある消去ゲート30と、を備える、4ゲートメモリセル410を示す。この構成は、あらゆる目的のため参照により本明細書に組み込まれる、米国特許第6,747,310号に記載されている。ここで、浮遊ゲート20を除く全てのゲートは非浮遊ゲートであり、つまり、それらは電圧源に電気的に接続される又は接続可能である。プログラミングは、熱せられた電子がチャネル領域18から浮遊ゲート20にその電子自体を注入することによって実行される。消去は、電子が浮遊ゲート20から消去ゲート30へトンネリングすることによって実行される。
【0015】
表2は、読み出し、消去、及びプログラム動作を実行するためのメモリセル410の端子に印加され得る典型的な電圧範囲を示す。
表2:
図4のフラッシュメモリセル410の動作
【表2】
「読み出し1」は、セル電流がビット線に出力される読み出しモードである。「読み出し2」は、セル電流がソース線端子に出力される読み出しモードである。
【0016】
図5は、メモリセル510が消去ゲート(erase gate、EG)端子を含まないことを除いて、
図4のメモリセル410と同様のメモリセル510を示す。消去は、基板18を高電圧にバイアスし、制御ゲートCG端子28を低電圧又は負電圧にバイアスすることによって行われる。代替的に、ワード線端子22を正電圧にバイアスし、制御ゲート端子28を負電圧にバイアスすることによって、消去が行われる。プログラミング及び読み出しは、
図4のものと同様である。
【0017】
図6は、別の種類のフラッシュメモリセルである、3ゲートメモリセル610を示す。メモリセル610は、メモリセル610が別個の制御ゲート端子を有しないことを除いて、
図4のメモリセル410と同一である。(消去ゲート端子の使用を通じて消去が起こる)消去動作及び読み出し動作は、制御ゲートバイアスが印加されないことを除いて、
図4のものと同様である。プログラミング動作もまた、制御ゲートバイアスなしで行われるため、結果として、プログラム動作中は、制御ゲートバイアスの不足を補償するため、より高い電圧がソース線端子に印加されなければならない。
【0018】
表3は、読み出し、消去、及びプログラム動作を実行するためのメモリセル610の端子に印加され得る典型的な電圧範囲を示す。
表3:
図6のフラッシュメモリセル610の動作
【表3】
「読み出し1」は、セル電流がビット線に出力される読み出しモードである。「読み出し2」は、セル電流がソース線端子に出力される読み出しモードである。
【0019】
図7は、別の種類のフラッシュメモリセルである、積層ゲートメモリセル710を示す。メモリセル710は、浮遊ゲート20がチャネル領域18全体の上方にわたって延在し、制御ゲート端子22(ワード線に結合される)が絶縁層(図示せず)によって分離されて浮遊ゲート20の上方に延在することを除いて、
図2のメモリセル210と同様である。プログラミングは、チャネル18から、ドレイン領域16の隣のチャネル領域内の浮遊ゲート20へのホット電子注入を使用して実行され、消去は、浮遊ゲート20から基板12へのファウラーノルドハイム電子トンネリングを使用して実行される。読み出し動作は、メモリセル210について前述したものと同様の方法で動作する。
【0020】
表4は、読み出し、消去、及びプログラム動作を実行するためのメモリセル710及び基板12の端子に印加され得る典型的な電圧範囲を示す。
表4:
図7のフラッシュメモリセル710の動作
【表4】
【0021】
「読み出し1」は、セル電流がビット線に出力される読み出しモードである。「読み出し2」は、セル電流がソース線端子に出力される読み出しモードである。任意選択的に、メモリセル210、310、410、510、610、又は710の行及び列を含むアレイでは、ソース線は、メモリセルの1行又はメモリセルの隣接する2行に結合され得る。すなわち、ソース線端子は、メモリセルの隣接する行によって共有され得る。
【0022】
図8は、ツインスプリットゲートメモリセル810を示す。メモリセル810は、基板12の上方に絶縁されて配設される浮遊ゲート(FG)20と、浮遊ゲート20の上方に絶縁されて配設される制御ゲート28(CG)と、浮遊ゲート20及び制御ゲート28の上方に絶縁されて配設され、かつ基板12の上方に絶縁されて配設される消去ゲート30(EG)であって、消去ゲートは、制御ゲートCGの上隅部がT字形の消去ゲートの内側隅部に面して消去効率を向上させるように、T字形で形成される、消去ゲート30(EG)と、(ビット線コンタクト24(BL)がドレイン拡散領域16(DR)に接続されている)浮遊ゲート20に隣接した基板内のドレイン領域16(DR)と、を含む。メモリセルは、メモリセル対(左側のA及び右側のB)として形成され、共通消去ゲート30を共有する。このセル設計は、少なくとも、消去ゲートEGの下のソース領域を欠き、選択ゲート(ワード線とも呼ばれる)を欠き、それぞれのメモリセルのチャネル領域を欠く点で、
図2~
図7を参照して上述されるメモリセルとは異なる。代わりに、単一の連続チャネル領域18が両メモリセルの下に延在する(すなわち、一方のメモリセルのドレイン領域16から他方のメモリセルのドレイン領域16まで延在する)。一方のメモリセルの読み出し又はプログラムを行うためには、他方のメモリセルの制御ゲート28を十分な電圧まで上昇させて、それらの間にある浮遊ゲート20への電圧結合によって、下にあるチャネル領域部分を起動させる(例えば、セルAの読み出し又はプログラムを行うには、CGBからの電圧結合によってFGB上の電圧を上昇させて、FGB下のチャネル領域を起動させる)。消去は、浮遊ゲート20から消去ゲート30へのファウラーノルドハイム(Fowler Nordheim)電子トンネリングを使用して実行される。プログラミングは、チャネル18から浮遊ゲート20へのホット電子注入を使用して実行され、これは、表5にプログラム1として示されている。代替的に、プログラミングは、消去ゲート30から浮遊ゲート20へのファウラーノルドハイム電子トンネリングを使用して実行され、これは、表5にプログラム2として示されている。代替的に、プログラミングは、チャネル18から浮遊ゲート20へのファウラーノルドハイム電子トンネリングを使用して実行され、この場合、条件は、消去ゲートが低い正電圧でバイアスされている間に、基板は低電圧又は負電圧でバイアスされることを除いて、プログラム2と同様である。
【0023】
表5は、読み出し、消去、及びプログラム動作を実行するためのメモリセル810の端子に印加され得る典型的な電圧範囲を示す。セルA(FG、CGA、BLA)は、読み出し、プログラム、及び消去動作のために選択される。
【0024】
表5:
図8のフラッシュメモリセル810の動作
【表5】
【0025】
上記の人工ニューラルネットワークにおける不揮発性メモリセルの種類のうちの1つを含むメモリアレイを利用するために、2つの修正が行われる。第1に、以下に更に説明されるように、アレイ内の他のメモリセルのメモリ状態に悪影響を与えずに各メモリセルを個々にプログラム、消去、及び読み出しできるように線を構成する。第2に、メモリセルの連続(アナログ)プログラミングを提供する。
【0026】
具体的には、アレイ内の各メモリセルのメモリ状態(すなわち、浮遊ゲート上の電荷)を、完全に消去された状態から完全にプログラムされた状態へ、独立して、かつ他のメモリセルの乱れが最小で、連続的に変えることができる。別の実施形態では、アレイ内の各メモリセルのメモリ状態(すなわち、浮遊ゲートの電荷)を、完全にプログラムされた状態から完全に消去された状態へ、及び逆もまた同様に、独立して、かつ他のメモリセルの乱れが最小で、連続的に変えることができる。これはつまり、セル記憶がアナログであるか、又は多数の不連続値(16個又は64個の異なる値など)のうちの1つを最低限記憶することができることを意味し、これにより、メモリアレイ内の全てのセルが非常に精確に、かつ個々にチューニング可能となり、また、メモリアレイが、記憶、及びニューラルネットワークのシナプシスの重みへの微細チューニング調整に対して、理想的なものになる。
【0027】
本明細書に記載される方法及び手段は、限定することなく、FINFETスプリットゲートフラッシュ又はスタックゲートフラッシュメモリ、NANDフラッシュ、SONOS(ケイ素-酸化物-窒化物-酸化物-ケイ素、窒化物中の電荷トラップ)、MONOS(金属-酸化物-窒化物-酸化物-ケイ素、窒化物中の金属電荷トラップ)、ReRAM(抵抗変化型メモリ)、PCM(相変化メモリ)、MRAM(磁気抵抗メモリ)、FeRAM(強誘電体メモリ)、OTP(バイレベル又はマルチレベルの1回のみのプログラムが可能)及びCeRAM(強相関電子メモリ)などの他の不揮発性メモリ技術に適用され得る。本明細書に記載される方法及び手段は、限定することなく、SRAM、DRAM、及び他の揮発性シナプスセルなどのニューラルネットワークに使用される揮発性メモリ技術に適用することができる。
<<不揮発性メモリセルアレイを使用するニューラルネットワーク>>
【0028】
図9は、本実施形態の不揮発性メモリアレイを利用するニューラルネットワークの非限定例を概念的に示す。この例は、顔認識アプリケーション用に不揮発性メモリアレイニューラルネットワークを使用するが、不揮発性メモリアレイベースのニューラルネットワークを使用して他の適切なアプリケーションを実装することも可能である。
【0029】
S0は入力層であり、この例では、5ビット精度の32×32ピクセルRGB画像である(すなわち、各色R、G、及びBにつき1つずつで3つの32×32ピクセルアレイであり、各ピクセルは5ビット精度である)。入力層S0から層C1に行くシナプスCB1は、一部のインスタンスには異なる重みのセットを適用し、他のインスタンスには共有の重みを適用し、入力画像を3×3ピクセルの重なり合うフィルタ(カーネル)でスキャンし、1ピクセル(又はモデルによっては2ピクセル以上)ずつフィルタをシフトする。具体的には、画像の3×3部分における9ピクセルの値(すなわち、フィルタ又はカーネルと称される)は、シナプスCB1に提供され、そこで、これらの9個の入力値に適切な重みを乗算し、その乗算の出力を合計後、単一の出力値が決定され、特徴マップC1の層の1つのピクセルを生成するためにCB1の第1のシナプスによって与えられる。3×3フィルタは次に、入力層S0内で右側に1ピクセルだけシフトされ(すなわち、3ピクセルの列を右側に追加し、左側で3ピクセルの列をドロップする)、これにより、この新しく位置づけられたフィルタの9ピクセル値はシナプスCB1に提供され、そこでそれらに上記と同じ重みを乗算し、関連するシナプスによって第2の単一の出力値を決定する。このプロセスを、3×3フィルタが入力層S0の32×32ピクセル画像全体にわたって3色全て及び全てのビット(精度値)についてスキャンするまで続ける。プロセスは次に、層C1の特徴マップ全てが計算されるまで、異なる重みのセットを使用して繰り返されて、C1の異なる特徴マップを生成する。
【0030】
本例では、層C1において、各々30×30ピクセルを有する16個の特徴マップが存在する。各ピクセルは、入力とカーネルとの乗算から抽出された新しい特徴ピクセルであり、したがって、各特徴マップは、2次元アレイであり、したがってこの例では、層C1は、2次元アレイの16層を構成する(本明細書で言及される層及びアレイは、必ずしも物理的関係ではなく論理的な関係であり、すなわち、アレイは必ずしも物理的な2次元アレイに配向されないことに留意されたい)。層C1内の16個の特徴マップの各々は、フィルタスキャンに適用される異なるシナプス重みのセット16個のうちの1つによって生成される。C1特徴マップは全て、境界同定など、同じ画像特徴の異なる態様を対象とすることができる。例えば、第1のマップ(この第1のマップを生成するために使用される全てのスキャンに共有される第1の重みセットを使用して生成される)は、円形エッジを識別することができ、第2のマップ(第1の重みセットと異なる第2の重みセットを使用して生成される)は、長方形エッジ又は特定の特徴のアスペクト比などを識別することができる。
【0031】
層C1から層S1へ行く前には、各特徴マップ内の重なり合わずに連続する2×2領域からの値をプールする活性化関数P1(プーリング)が適用される。プーリング関数の目的は、近隣の位置を平均すること(又はmax関数を使用することも可能である)、例えばエッジ位置の依存性を低減すること、及び次の段階に行く前にデータサイズを低減することである。層S1において、16個の15×15特徴マップ(すなわち、各々15×15ピクセルの異なるアレイ16個)が存在する。層S1から層C2に行くシナプスCB2は、S1内のマップを4×4フィルタにより1ピクセルのフィルタシフトでスキャンする。層C2において、22個の12×12特徴マップが存在する。層C2から層S2へ行く前には、各特徴マップ内の重なり合わずに連続する2×2領域からの値をプールする活性化関数P2(プーリング)が適用される。層S2において、22個の6×6特徴マップが存在する。層S2から層C3へ行くシナプスCB3では活性化関数(プーリング)が適用され、ここで層C3内の全てのニューロンは、CB3のそれぞれのシナプスを介して層S2内の全てのマップに接続する。層C3において、64個のニューロンが存在する。層C3から出力層S3へと行くシナプスCB4は、C3をS3に完全に接続する、すなわち、層C3内の全てのニューロンは、層S3内の全てのニューロンに接続される。S3における出力は、10個のニューロンを含み、ここで出力が最も高いニューロンが、クラス(分類)を決定する。この出力は、例えば、元の画像の内容の同定又は分類を示すことができる。
【0032】
シナプスの各層は、不揮発性メモリセルのアレイ又はアレイの一部を使用して実装される。
【0033】
図10は、その目的のために使用可能なシステムのブロック図である。VMMシステム32は、不揮発性メモリセルを含み、ある層と次の層との間のシナプス(
図6のCB1、CB2、CB3、及びCB4など)として利用される。具体的には、VMMシステム32は、行及び列に配置された不揮発性メモリセルを備えるVMMアレイ33、消去ゲート及びワード線ゲートデコーダ34、制御ゲートデコーダ35、ビット線デコーダ36、並びにソース線デコーダ37を備え、それらのデコーダは、不揮発性メモリセルアレイ33に対するそれぞれの入力をデコードする。VMMアレイ33への入力は、消去ゲート及びワード線ゲートデコーダ34から、又は制御ゲートデコーダ35から行うことができる。この例におけるソース線デコーダ37はまた、VMMアレイ33の出力をデコードする。代替的に、ビット線デコーダ36が、VMMアレイ33の出力をデコードすることができる。
【0034】
VMMアレイ33は、2つの目的を果たす。第1に、VMMシステム32によって使用される重みを記憶する。第2に、VMMアレイ33は、効果的に、入力に、VMMアレイ33に記憶された重みを乗算し、それらを出力線(ソース線又はビット線)ごとに合計して出力を生成し、これは、次の層への入力又は最後の層への入力になる。乗算及び加算の関数を実行することによって、VMMアレイ33は、別個の乗算及び加算の論理回路の必要性をなくし、また、その場でのメモリ計算により電力効率も良い。
【0035】
VMMアレイ33の出力は、VMMアレイ33の出力を合計してその畳み込み用の単一の値を作成する、差動加算器(加算演算増幅器又は加算電流ミラーなど)38に供給される。差動加算器38は、正の重み入力及び負の重み入力両方の総和を実行して単一の値を出力するように配置される。
【0036】
差動加算器38の合計された出力値は、次に出力を整流する活性化関数回路39に供給される。活性化関数回路39は、シグモイド関数、tanh関数、ReLU関数、又は任意の他の非線形関数を提供し得る。活性化関数回路39の整流された出力値は、次の層(例えば
図9のC1)の特徴マップの要素になり、次いで、次のシナプスに適用されて次の特徴マップ層又は最後の層を生成する。したがって、この例では、VMMアレイ33は、複数のシナプス(それは、ニューロンの前の層から、又は画像データベースなどの入力層から、入力を受信する)を構成し、加算器38及び活性化関数回路39は、複数のニューロンを構成する。
【0037】
図10のVMMシステム32への入力(WLx、EGx、CGx、及び任意選択的にBLx及びSLx)は、アナログレベル、バイナリレベル、デジタルパルス(この場合、パルスを適切な入力アナログレベルに変換するためにパルス-アナログ変換器PACが必要とされ得る)又はデジタルビット(この場合、デジタルビットを適切な入力アナログレベルに変換するためにDACが提供される)であり得、出力は、アナログレベル(例えば、電流、電圧、又は電荷)、バイナリレベル、デジタルパルス、又はデジタルビットであり得る(この場合、出力アナログレベルをデジタルビットに変換するために出力ADCが提供される)。
【0038】
図11は、図中でVMMシステム32a、32b、32c、32d及び32eとして標示されたVMMシステム32の多数の層の使用を示すブロック図である。
図11に示されるように、入力(Inputxで示される)は、デジタル-アナログ変換器31によってデジタルからアナログに変換され、入力VMMシステム32aに提供される。変換されたアナログ入力は、電圧又は電流であり得る。第1の層の入力D/A変換は、入力VMMシステム32aの行列乗算器の適切なアナログレベルに入力Inputxをマッピングする関数又はLUT(ルックアップテーブル)を使用することによって行うことができる。入力変換はまた、外部アナログ入力を入力VMMシステム32aへのマッピングされたアナログ入力に変換するように、アナログ-アナログ(A/A)変換器によって行うこともできる。入力変換はまた、外部デジタル入力を入力VMMシステム32aへのマッピングされたデジタルパルスに変換するように、デジタル-デジタルパルス(D/P)変換器によって行うこともできる。
【0039】
入力VMMシステム32aによって生成された出力は、次に、次のVMMシステム(隠しレベル1)32bへの入力として提供され、次に、次のVMMシステムが、さらに次の入力VMMシステム(隠しレベル2)32cへの入力として提供される出力を生成する、などとなる。VMMシステム32の様々な層は、畳み込みニューラルネットワーク(convolutional neural network、CNN)のシナプス及びニューロンの各層として機能する。VMMシステム32a、32b、32c、32d及び32eはそれぞれ、対応の不揮発性メモリアレイを備える、スタンドアローンの物理的システムとすることができ、又は複数のVMMシステムは、同じ物理的不揮発性メモリアレイの異なる部分を利用することができ、又は複数のVMMシステムは、同じ物理的不揮発性メモリアレイの重なり合う部分を利用することができる。各VMMシステム32a、32b、32c、32d、及び32eはまた、そのアレイ又はニューロンの様々な部分に対して時間多重化され得る。
図11に示される例は、5つの層(32a、32b、32c、32d、32e)、すなわち、1つの入力層(32a)、2つの隠れ層(32b、32c)、及び2つの完全に接続された層(32d、32e)を含む。当業者であれば、これは単なる例示であり、代わりにシステムが2つを超える隠れ層及び2つを超える完全に接続された層を含み得ることを理解するであろう。
<<VMMアレイ>>
【0040】
図12は、
図3に示されるメモリセル310に特に適しており、かつ入力層と次の層との間でシナプス及びニューロンの一部として利用される、ニューロンVMMアレイ1200を示す。VMMアレイ1200は、不揮発性メモリセルのメモリアレイ1201と、不揮発性基準メモリセルの基準アレイ1202(アレイの頂部に位置する)と、を含む。代替的に、別の基準アレイが底部に位置することができる。
【0041】
VMMアレイ1200では、制御ゲート線1203などの制御ゲート線が垂直方向に延びており(したがって、行方向の基準アレイ1202が、制御ゲート線1203に直交する)、消去ゲート線1204などの消去ゲート線が水平方向に延びている。ここで、VMMアレイ1200への入力は、制御ゲート線(CG0、CG1、CG2、CG3)に提供され、VMMアレイ1200の出力は、ソース線(SL0、SL1)に現れる。一実施形態では、偶数行のみが使用され、別の実施形態では、奇数行のみが使用される。各ソース線(それぞれSL0、SL1)に加えられる電流は、その特定のソース線に接続されたメモリセルからの全ての電流の合計関数を実行する。
【0042】
ニューラルネットワークについて本明細書に記載されているように、VMMアレイ1200の不揮発性メモリセル、すなわちVMMアレイ1200のフラッシュメモリは、サブスレッショルド領域で動作するように構成されることが好ましい。
【0043】
本明細書に記載される不揮発性基準メモリセル及び不揮発性メモリセルは、以下のように弱い反転でバイアスされる:
Ids=Io*e(Vg-Vth)/nVt=w*Io*e(Vg)/nVt
式中、w=e(-Vth)/nVtであり、
式中、Idsはドレイン-ソース間電流であり、Vgはメモリセルのゲート電圧であり、Vthはメモリセルのスレッショルド電圧であり、Vtは熱電圧=k*T/qであり、kはボルツマン定数、Tはケルビン温度、qは電子電荷であり、nは傾斜係数=1+(Cdep/Cox)であり、Cdep=空乏層の容量、及びCoxはゲート酸化物層の容量であり、Ioはスレッショルド電圧に等しいゲート電圧におけるメモリセル電流であり、Ioは(Wt/L)*u*Cox*(n-1)*Vt2に比例し、式中、uはキャリア移動度であり、Wt及びLはそれぞれ、メモリセルの幅及び長さである。
【0044】
メモリセル(基準メモリセル又は周辺メモリセルなど)又はトランジスタを使用して入力電流Idsを入力電圧Vgに変換するI-Vログ変換器を使用した場合、Vgは以下のとおりである:
Vg=n*Vt*log[Ids/wp*Io]
式中、wpは、基準又は周辺メモリセルのwである。
【0045】
メモリセル(基準メモリセル又は周辺メモリセルなど)又はトランジスタを使用して入力電流Idsを入力電圧Vgに変換するI-Vログ変換器を使用した場合、Vgは以下のとおりである:
Vg=n*Vt*log[Ids/wp*Io]
【0046】
式中、wpは、基準又は周辺メモリセルのwである。
【0047】
ベクトル行列乗算器VMMアレイとして使用されるメモリアレイについて、出力電流は以下である:
Iout=wa*Io*e(Vg)/nVt、すなわち
Iout=(wa/wp)*Iin=W*Iin
W=e(Vthp-Vtha)/nVt
Iin=wp*Io*e(Vg)/nVt
式中、メモリアレイの各メモリセルのwa=wである。
Vthpは周辺メモリセルの有効スレッショルド電圧であり、Vthaはメイン(データ)メモリセルの有効スレッショルド電圧である。
トランジスタのスレッショルド電圧は基板本体バイアス電圧の関数であり、基板本体バイアスは、過熱又はセル電流の変調など、様々な補償のために変調され得ることに留意されたい。
Vth=Vth0+ガンマ(SQRT(Vsb+|2*φF|)-SQRT|2*φF|)
Vth0は、ゼロ基板バイアスを有する閾値電圧であり、φFは表面電位であり、ガンマは本体効果パラメータである。
【0048】
ワード線又は制御ゲートは、入力電圧のためのメモリセルの入力として使用することができる。
【0049】
代替的に、本明細書に記載されたVMMアレイの不揮発性メモリセルは、線形領域で動作するように構成することができる。
Ids=ベータ*(Vgs-Vth)*Vds; ベータ=u*Cox*Wt/L
W α (Vgs-Vth)
すなわち、直線領域における重みWは(Vgs-Vth)に比例する。
【0050】
ワード線又は制御ゲート又はビット線又はソース線は、線形領域内で動作するメモリセルの入力として使用することができる。ビット線又はソース線は、メモリセルの出力として使用することができる。
【0051】
I-V線形変換器用に、線形領域で動作するメモリセル(基準メモリセル又は周辺メモリセルなど)若しくはトランジスタ、又は抵抗器を使用して、入出力電流を入出力電圧に線形変換することができる。
【0052】
代替的に、本明細書に記載されたVMMアレイのメモリセルは、飽和領域で動作するように構成することができる。
Ids=1/2*ベータ*(Vgs-Vth)2; ベータ=u*Cox*Wt/L
W α (Vgs-Vth)2、すなわち重みWは、(Vgs-Vth)2に比例する。
【0053】
ワード線、制御ゲート、又は消去ゲートは、飽和領域内で動作するメモリセルの入力として使用することができる。ビット線又はソース線は、出力ニューロンの出力として使用することができる。
【0054】
代替的に、本明細書に記載されるVMMアレイのメモリセルは、ニューラルネットワークのそれぞれの層又は多層に対して全ての領域又はそれらの組み合わせ(サブスレッショルド、線形、又は飽和)で使用され得る。
【0055】
図13は、
図2に示されるメモリセル210に特に適したニューロンVMMアレイ1300を示し、入力層と次の層との間のシナプスとして利用される。VMMアレイ1300は、不揮発性メモリセルのメモリアレイ1303と、第1の不揮発性基準メモリセルの基準アレイ1301と、第2の不揮発性基準メモリセルの基準アレイ1302と、を含む。アレイの列方向に配置された基準アレイ1301及び1302は、端子BLR0、BLR1、BLR2、及びBLR3に流入する電流入力を電圧入力WL0、WL1、WL2、及びWL3に変換するように機能する。実際には、第1及び第2の不揮発性基準メモリセルは、電流入力が流入する状態で、マルチプレクサ1314(一部のみ示す)を通してダイオード接続される。基準セルは、目標基準レベルにチューニング(例えば、プログラム)される。目標基準レベルは、基準ミニアレイ行列(図示せず)によって提供される。
【0056】
メモリアレイ1303は、2つの目的を果たす。第1に、VMMアレイ1300により使用される重みを、それぞれのメモリセルに記憶する。第2に、メモリアレイ1303は、メモリセルアレイ1303に記憶された重みによって、入力(すなわち、端子BLR0、BLR1、BLR2、及びBLR3に提供された電流入力であり、これを基準アレイ1301及び1302が入力電圧に変換して、ワード線WL0、WL1、WL2、及びWL3に供給する)を有効に乗算して、次いで、全ての結果(メモリセル電流)を加算して、それぞれのビット線(BL0~BLN)の出力を生成し、この出力は次の層への入力又は最後の層への入力となる。メモリアレイ1303が乗算及び加算の関数を実行することで、別個の乗算及び加算の論理回路の必要性はなくなり、また、電力効率も良い。ここで、電圧入力はワード線WL0、WL1、WL2、及びWL3に提供され、出力は、読み出し(推論)動作中にそれぞれのビット線BL0~BLNに現れる。各々のビット線BL0~BLNに配置された電流は、その特定のビット線に接続された全ての不揮発性メモリセルからの電流の合計関数を実行する。
【0057】
表6は、VMMアレイ1300の動作電圧を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルのソース線、及び非選択セルのソース線に加えられる電圧を示し、FLTは、浮遊、すなわち電圧が印加されないことを示す。行は、読み出し、消去、及びプログラムの動作を示す。
表6:
図13のVMMアレイ1300の動作:
【表6】
【0058】
図14は、
図2に示されるメモリセル210に特に適しており、かつ入力層と次の層との間でシナプス及びニューロンの一部として利用される、ニューロンVMMアレイ1400を示す。VMMアレイ1400は、不揮発性メモリセルのメモリアレイ1403と、第1の不揮発性基準メモリセルの基準アレイ1401と、第2の不揮発性基準メモリセルの基準アレイ1402と、を含む。基準アレイ1401及び1402は、VMMアレイ1400の行方向に延びる。VMMアレイは、VMMアレイ1400においてワード線が垂直方向に延びることを除いて、VMM1300と同様である。ここで、入力はワード線(WLA0、WLB0、WLA1、WLB2、WLA2、WLB2、WLA3、WLB3)に提供され、出力は、読み出し動作中にソース線(SL0、SL1)に現れる。各ソース線に加えられる電流は、その特定のソース線に接続されたメモリセルからの全ての電流の合計関数を実行する。
【0059】
表7は、VMMアレイ1400の動作電圧を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルのソース線、及び非選択セルのソース線に加えられる電圧を示す。行は、読み出し、消去、及びプログラムの動作を示す。
表7:
図14のVMMアレイ1400の動作
【表7】
【0060】
図15は、
図3に示されるメモリセル310に特に適しており、かつ入力層と次の層との間でシナプス及びニューロンの一部として利用される、ニューロンVMMアレイ1500を示す。VMMアレイ1500は、不揮発性メモリセルのメモリアレイ1503と、第1の不揮発性基準メモリセルの基準アレイ1501と、第2の不揮発性基準メモリセルの基準アレイ1502と、を含む。基準アレイ1501及び1502は、端子BLR0、BLR1、BLR2、及びBLR3に流入する電流入力を電圧入力CG0、CG1、CG2、及びCG3に変換するように機能する。実際には、第1及び第2の不揮発性基準メモリセルは、電流入力がBLR0、BLR1、BLR2、及びBLR3を通って流入する状態で、マルチプレクサ1512(一部のみ示す)を通してダイオード接続される。マルチプレクサ1512は、読み出し動作中に第1及び第2の不揮発性基準メモリセルのそれぞれのビット線(BLR0など)の一定電圧を確実にするために、対応のマルチプレクサ1505及びカスコーディングトランジスタ1504をそれぞれ含む。基準セルは、目標基準レベルにチューニングされる。
【0061】
メモリアレイ1503は、2つの目的を果たす。第1に、それはVMMアレイ1500によって使用される重みを記憶する。第2に、メモリアレイ1503は、入力(端子BLR0、BLR1、BLR2、及びBLR3に提供された電流入力であり、基準アレイ1501及び1502がこれらの電流入力を入力電圧に変換して、制御ゲート(CG0、CG1、CG2、及びCG3)に供給する)に、メモリセルアレイに記憶された重みを掛けて、次いで、全ての結果(セル電流)を加算して出力を生成し、この出力はBL0~BLNに現れ、次の層への入力又は最後の層への入力となる。メモリアレイが乗算及び加算の関数を実行することで、別個の乗算及び加算の論理回路の必要性がなくなり、また、電力効率も良い。ここで、入力は制御ゲート線(CG0、CG1、CG2、及びCG3)に提供され、出力は、読み出し動作中にビット線(BL0~BLN)に現れる。各ビット線に加えられる電流は、その特定のビット線に接続されたメモリセルからの全ての電流の合計関数を実行する。
【0062】
VMMアレイ1500は、メモリアレイ1503内の不揮発性メモリセルの一方向チューニングを実装する。すなわち、各不揮発性メモリセルは消去され、次いで、浮遊ゲート上の所望の電荷に達するまで部分的にプログラムされる。これは、例えば、以下に記載される精密プログラミング技術を使用して実行することができる。過度に多くの電荷が浮遊ゲートに加えられる場合(その場合は誤った値がセルに記憶される)、セルは消去されなければならず、一連の部分的なプログラミング動作をやり直さなければならない。示されるように、同じ消去ゲート(EG0又はEG1など)を共有する2つの行は、一緒に消去される必要があり(ページ消去として知られる)、その後、各セルは、浮遊ゲート上の所望の電荷に達するまで部分的にプログラムされる。
【0063】
表8は、VMMアレイ1500の動作電圧を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルの制御ゲート、選択セルと同じセクタ内の非選択セルの制御ゲート、選択セルとは異なるセクタ内の非選択セルの制御ゲート、選択セルの消去ゲート、非選択セルの消去ゲート、選択セルのソース線、及び非選択セルのソース線に加えられる電圧を示す。行は、読み出し、消去、及びプログラムの動作を示す。
表8:
図15のVMMアレイ1500の動作
【表8】
【0064】
図16は、
図3に示されるメモリセル310に特に適しており、かつ入力層と次の層との間でシナプス及びニューロンの一部として利用される、ニューロンVMMアレイ1600を示す。VMMアレイ1600は、不揮発性メモリセルのメモリアレイ1603と、基準アレイ1601又は第1の不揮発性基準メモリセルと、第2の不揮発性基準メモリセルの基準アレイ1602と、を備える。EG線EGR0、EG0、EG1、及びEGR1は垂直に延び、CG線CG0、CG1、CG2、及びCG3並びにSL線WL0、WL1、WL2、及びWL3は水平に延びる。VMMアレイ1600は、VMMアレイ1600が双方向チューニングを実装することを除いてVMMアレイ1600と同様であり、各個々のセルは、個別のEG線の使用により、浮遊ゲートの所望の電荷量に達するために、完全に消去され、部分的にプログラムされ、必要に応じて部分的に消去することができる。示されるように、基準アレイ1601及び1602は、端子BLR0、BLR1、BLR2及びBLR3内の入力電流を制御ゲート電圧CG0、CG1、CG2及びCG3に変換し(マルチプレクサ1614を介したダイオード接続された基準セルの作用を通じて)、これらの電圧は行方向でメモリセルに印加される。電流出力(ニューロン)は、ビット線BL0~BLN中にあり、各ビット線は、その特定のビット線に接続された不揮発性メモリセルからの全ての電流を合計する。
【0065】
表9は、VMMアレイ1600の動作電圧を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルの制御ゲート、選択セルと同じセクタ内の非選択セルの制御ゲート、選択セルとは異なるセクタ内の非選択セルの制御ゲート、選択セルの消去ゲート、非選択セルの消去ゲート、選択セルのソース線、及び非選択セルのソース線に加えられる電圧を示す。行は、読み出し、消去、及びプログラムの動作を示す。
表9:
図16のVMMアレイ1600の動作
【表9】
【0066】
VMMアレイへの入力は、アナログレベル、バイナリレベル、タイミングパルス、又はデジタルビットであり得、出力は、アナログレベル、バイナリレベル、タイミングパルス、又はデジタルビット(この場合、出力アナログレベルの電流又は電圧をデジタルビットに変換するために出力ADCが必要とされる)であり得る。
【0067】
VMMアレイ内の各メモリセルに関して、各重みwは、単一のメモリセルによって、又は差分セルによって、又は2つのブレンドメモリセル(2つ以上のセルの平均)によって実装することができる。差分セルの場合では、重みwを差分重み(w=w+-w-)として実装するために、2つのメモリセルが必要とされる。2つのブレンドメモリセルの場合は、2つのセルの平均として重みwを実装するために2つのメモリセルが必要とされる。
【0068】
VMMアレイでの1つの課題は、プログラミングプロセス中に極めて高い精度を必要とすることである。例えば、VMMアレイ内のそれぞれのセルがN個の異なる値(例えば、N=64又は128)のうちの1つを記憶し得る場合、システムは、選択されたセルの浮遊ゲートに少しずつ追加電荷を堆積させて、所望のレベル変化を達成することができなければならない。一方、プログラミングが可能な限り速く、プログラミング精度とプログラミング速度との間に本来的なトレードオフがあることが依然として重要である。
【0069】
必要とされるのは、精密なプログラミングを達成しつつ、依然として比較的速いペースでプログラミングを完了することができる、改善されたVMMシステムである。
【発明の概要】
【0070】
アナログニューラルメモリアレイの多数の実施形態が、開示されている。2つ以上のメモリセルが一緒にグループ化されて、N個の可能なレベルのうちの1つを記憶する論理セルを形成する。それぞれの論理セル内で、メモリセルは、異なる機構を使用してプログラムされ得る。例えば、論理セル内のメモリセルのうちの1つ以上は、粗プログラミング機構を使用してプログラムされ得、メモリセルのうちの1つ以上は、微細機構を使用してプログラムされ得る。これは、極めて高いプログラミング精度及びプログラミング速度を達成する。
【0071】
【0072】
【0073】
【0074】
【0075】
【0076】
【0077】
【0078】
【0079】
【0080】
【0081】
【0082】
【0083】
【0084】
【0085】
【0086】
【0087】
【0088】
【0089】
【0090】
【0091】
【0092】
【0093】
【0094】
【0095】
【0096】
【0097】
【0098】
【0099】
【0100】
【0101】
【0102】
【0103】
【0104】
【0105】
【0106】
【0107】
【0108】
【0109】
【0110】
【0111】
【0112】
【0113】
【0114】
【0115】
【0116】
【0117】
【図面の簡単な説明】
【0118】
【
図1】先行技術の人工ニューラルネットワークを示す。
【
図2】先行技術のスプリットゲートフラッシュメモリセルを示す。
【
図3】別の先行技術のスプリットゲートフラッシュメモリセルを示す。
【
図4】別の先行技術のスプリットゲートフラッシュメモリセルを示す。
【
図5】別の先行技術のスプリットゲートフラッシュメモリセルを示す。
【
図6】別の先行技術のスプリットゲートフラッシュメモリセルを示す。
【
図7】先行技術の積層ゲートフラッシュメモリセルを示す。
【
図9】1つ以上のVMMアレイを利用する例示的な人工ニューラルネットワークの様々なレベルを示す。
【
図10】VMMアレイ及び他の回路を備えるVMMシステムを示す。
【
図11】1つ以上のVMMシステムを利用する例示的な人工ニューラルネットワークを示す。
【
図21】改善されたソース線プルダウン機構を有するVMMシステムを示す。
【
図22】改善されたソース線プルダウン機構を有する別のVMMシステムを示す。
【
図23】改善されたソース線プルダウン機構を有する別のVMMシステムを示す。
【
図24】改善されたソース線プルダウン機構を有する別のVMMシステムを示す。
【
図25】改善されたソース線プルダウン機構を有するVMMシステムの例示的なレイアウト図を示す。
【
図26】改善されたソース線プルダウン機構を有するVMMシステムの別の例示的なレイアウト図を示す。
【
図28】冗長アレイを備える別の改善されたVMMアレイを示す。
【
図29】2つのVMMアレイ及び共有ダミービット線スイッチング回路を備える別の改善されたVMMシステムを示す。
【
図36】アナログ-デジタル変換器の一実施形態を示す。
【
図37】アナログ-デジタル変換器の別の実施形態を示す。
【
図38】アナログ-デジタル変換器の別の実施形態を示す。
【
図39】アナログ-デジタル変換器の別の実施形態を示す。
【
図40】VMMアレイ内の論理セルの一実施形態を示す。
【
図41】
図40の論理セルに対するプログラム及び検証方法を示す。
【
図42】VMMアレイ内の論理セルの別の実施形態を示す。
【
図43】
図42の論理セルに対するプログラム及び検証方法を示す。
【発明を実施するための形態】
【0119】
本発明の人工ニューラルネットワークは、CMOS技術及び不揮発性メモリアレイの組み合わせを利用する。
<<改善されたVMMシステムの実施形態>>
【0120】
図17は、VMMシステム1700のブロック図を示す。VMMシステム1700は、VMMアレイ1701、行デコーダ1702、高電圧デコーダ1703、列デコーダ1704、ビット線ドライバ1705、入力回路1706、出力回路1707、制御論理1708、及びバイアス生成器1709を備える。VMMシステム1700は、チャージポンプ1711、チャージポンプ調節器1712、及び高電圧レベル生成器1713を含む、高電圧生成ブロック1710を更に備える。VMMシステム1700は、アルゴリズムコントローラ1714、アナログ回路1715、制御論理1716、及び試験制御論理1717を更に備える。以下に記載されるシステム及び方法は、VMMシステム1700に実装され得る。
【0121】
入力回路1706は、DAC(デジタル-アナログ変換器)、DPC(デジタル-パルス変換器)、AAC(電流-電圧変換器などのアナログ-アナログ変換器)、PAC(パルス-アナログレベル変換器)、又は任意の他のタイプの変換器などの回路を含み得る。入力回路1706は、正規化関数、スケーリング関数、又は算術関数を実装し得る。入力回路1706は、入力のための温度補償関数を実装し得る。入力回路1706は、ReLU又はシグモイドなどの活性化関数を実装し得る。出力回路1707は、ADC(ニューロンアナログ出力をデジタルビットに変換するための、アナログ-デジタル変換器)、AAC(電流-電圧変換器などのアナログ変換器)、APC(アナログ-パルス変換器)、又は任意の他のタイプの変換器などの回路を含み得る。出力回路1707は、ReLU又はシグモイドなどの活性化関数を実装し得る。出力回路1707は、ニューロン出力の統計的正規化、正則化、アップ/ダウンスケーリング関数、統計的丸め、又は算術関数(例えば、加算、減算、除算、乗算、シフト、ログ)を実装し得る。出力回路1707は、アレイの電力消費をほぼ一定に保つために、又はIVの傾斜をほぼ同じに保つことになどによってアレイ(ニューロン)出力の精度を高めるために、ニューロン出力又はアレイ出力(ビット線出力など)のための温度補償関数を実装し得る。
【0122】
図18Aは、先行技術のVMMシステム1800を示す。VMMシステム1800は、例示的なセル1801及び1802、例示的なビット線スイッチ1803(ビット線を検知回路に接続する)、例示的なダミービット線スイッチ1804(読み出しにおいて接地レベルなどの低レベルに結合する)、例示的なダミーセル1805及び1806(ソース線プルダウンセル)を備える。ビット線スイッチ1803は、VMMシステム1800にデータを記憶するために使用される、セル1801及び1802を含むセルの列に結合される。ダミービット線スイッチ1804は、VMMシステム1800にデータを記憶するために使用されないダミーセルであるセルの列(ビット線)に結合される。このダミービット線(別名ソース線プルダウンビット線)は、読み出しにおいてソース線プルダウンとして使用され、これは、ソース線SLを、ダミービット線内のメモリセルを通して接地レベルのような低いレベルにプルするために使用されることを意味する。
【0123】
VMMシステム1800の1つの欠点は、それぞれのセルの入力インピーダンスが、関連するビット線スイッチ、セル自体、及び関連するダミービット線スイッチを通る電気経路の長さに起因して変化することである。例えば、
図18Bは、ビット線スイッチ1803、セル1801、ダミーセル1805、及びダミービット線スイッチ1804を通る電気経路を示す。同様に、
図18Cは、ビット線スイッチ1803、垂直金属ビット線1807、セル1802、ダミーセル1808、垂直金属ビット線1808、及びダミービット線スイッチ1804を通る電気経路を示す。分かるように、セル1802を通る経路は、著しく大きい長さのビット線及びダミービット線を越え、これは、より高い静電容量及びより高い抵抗に関連付けられる。これは、セル1801よりもビット線又はソース線においてより大きな寄生インピーダンスを有するセル1802をもたらす。この変動性は、例えば、アレイ内のセルの位置に応じて、セルの読み出し又は検証(プログラム/消去チューニングサイクルのための)に適用されるセル出力の精度においてばらつきをもたらすため、欠点である。
【0124】
図19Aは、VMMシステム1900を示す。VMMシステム1900は、例示的なセル1901及び1902、例示的なビット線スイッチ1903(ビット線を検知回路に接続する)、例示的なダミーセル1905及び1906(ソース線プルダウンセル)、及び例示的なダミービット線スイッチ1904(読み出しにおいて接地レベルなどの低いレベルに結合する。このスイッチは、ソース線プルダウンとして使用されるダミーセルに接続するダミービット線に接続する)を備える。見られるように、例示的なダミービット線スイッチ1904及び他のダミービット線スイッチは、ビット線スイッチ1903及び他のビット線スイッチからアレイの反対端に位置する。
【0125】
この設計の利点は、
図19B及び19Cに見ることができる。
図19Bは、ビット線スイッチ1903、セル1901、ダミーセル1905(ソース線プルダウンセル)、垂直金属ビット線1908、及びダミービット線スイッチ1904(読み出しにおいて接地レベルなどの低レベルに結合する)を通る電気経路を示す。
図19Cは、ビット線スイッチ1903、垂直金属線1907、セル1902、ダミーセル1906(ソース線プルダウンセル)、及びダミービット線スイッチ1904を通る電気経路を示す。経路は、実質的に同じ(セル、相互接続長)であり、これは、VMMシステム1900の全てのセルに当てはまる。結果として、それぞれのセルのビット線インピーダンス+ソース線インピーダンスのインピーダンスは実質的に同じであり、これは、アレイ内の様々なセルの動作を読み出す又は検証するために引き出される寄生電圧降下の量のばらつきが比較的同じであることを意味する。
【0126】
図20は、グローバルソース線プルダウンビット線を有するVMMシステム2000を示す。VMMシステム2000は、ダミービット線2005a~2005n又は2007a~2007nが一緒に接続される(読み出し又は検証中にメモリセルソース線を接地レベルにプルするためのグローバルソース線プルダウン線として作用するため)ことと、ダミービット線スイッチ2001及び2002などのダミービット線スイッチが共通の接地に接続又は結合されることと、ソース線が、ソース線を接地まで選択的にプルするソース線スイッチ2003に一緒に結合されることと、を除き、VMMシステム1900と同様である。これらの変化は、読み出し又は検証動作中のセル間の(アレイ)寄生インピーダンスのばらつきを更に減少させる。
【0127】
図21は、VMMシステム2100を示す。VMMシステム2100は、ビット線スイッチ2101、プルダウンビット線スイッチ2102、プルダウンビット線スイッチ2103、ビット線スイッチ2104、データセル2105(本明細書では、「データセル」は、ニューラルネットワークの重み値を記憶するために使用されるメモリセル)、プルダウンセル2106、プルダウンセル2107、及びデータセル2018を備える。プルダウンセル2106及び2107は、互いに隣接していることに留意されたい。これにより、2つのプルダウンセル2106及び2107の垂直金属線BLpdxが一緒に接続されて(線2111)、結果として生じるより広い金属線によって寄生抵抗を低減することが可能になる。データセル2105の読み出し又は検証(プログラム/消去チューニングサイクルに対する)動作中、電流は、ビット線スイッチ2101を通ってセル2105のビット線端子に入り、セル2015のソース線端子へ出て、次いで、ソース線2110に入り、そこで、プルダウンセル2106及び2107のソース線端子に入り、プルダウンビット線スイッチ2102及び2103を通る。セル2104の読み出し又は検証(プログラム/消去チューニングサイクルに対する)動作中、電流は、ビット線スイッチ2104を通ってデータセル2108のビット線端子に入り、セル2108のソース線端子へ出て、その後、ソース線2110に入り、そこでプルダウンセル2106及び2107のソース線端子に入り、プルダウンビット線スイッチ2102及び2103を通る。この列のパターンは、アレイ全体にわたって繰り返され、4つの列は全て、2列のデータセルと、プルダウン操作に使用される2つの隣接するアレイ列と、を含む。別の実施形態では、2つの隣接する列の2つのプルダウンセルの拡散は、プルダウンの能力を高めるために、1つのより大きい拡散に融合され得る。別の実施形態では、プルダウンセルの拡散は、プルダウン能力を高めるために、データセル拡散よりも大きくなり得る。別の実施形態では、それぞれのプルダウンセルは、選択されたデータセルのバイアス条件とは異なるバイアス条件を有する。
【0128】
一実施形態では、プルダウンセルは、通常のデータメモリセルと同じ物理的構造を有する。別の実施形態では、プルダウンセルは、通常のデータメモリセルとは異なる物理的構造を有し、例えば、プルダウンセルは、電気パラメータ(層厚、インプラントなど)の1つ以上の物理的寸法(幅、長さなど)を修正することなどによる、通常のデータメモリセルの修正バージョンであり得る。別の実施形態では、プルダウンセルは、IO又は高電圧トランジスタなどの通常のトランジスタ(浮遊ゲートなし)である。
【0129】
図22は、VMMシステム2200を示す。VMMシステム2200は、ビット線2201、プルダウンビット線2202、データセル2203及び2206、プルダウンセル2204及び2205、並びにソース線2210を備える。セル2203の読み出し又は検証動作中、電流は、ビット線スイッチ2201を通ってセル2203のビット線端子に入り、セル2203のソース線端子へ出て、その後、ソース線2210及びプルダウンセル2204のソース線端子に入り、プルダウンビット線BLpd2202を通る。この設計は、全ての列に対して繰り返され、最終的に、プルダウンセル2204を含む行がプルダウンセルの行となる。
【0130】
セル2206の読み出し又は検証(プログラム/消去チューニングサイクルに対する)動作中、電流は、ビット線スイッチ2201を通ってセル2206のビット線端子に入り、セル2206のソース線端子へ出て、その後、ソース線2211及びプルダウンセル2205のソース線端子に入り、プルダウンビット線2202を通る。この設計は、全ての列に対して繰り返され、最終的に、プルダウンセル2205を含む行がプルダウンセルの行となる。
図22に示すように、4つの行があり、2つの中央の隣接する行がプルダウンセルに使用され、一番上及び一番下の行はデータセルである。
【0131】
表10は、VMMシステム2200の動作電圧を示す。表中の列は、選択されたセルのビット線、ビット線プルダウン、選択されたセルのワード線、選択されたセルの制御ゲート、選択されたプルダウンセルのワード線WLS、選択されたプルダウンセルの制御ゲートCGS、全てのセルの消去ゲート、及び全てのセルのソース線にある電圧を示す。行は、読み出し、消去、及びプログラムの動作を示す。読み出しにおけるCGS及びWLSの電圧バイアスは、プルダウンセルの駆動能力を高めるために、通常のWL及びCGバイアスの電圧バイアスよりも高いことに留意されたい。WLS及びCGSのためにバイアスされた電圧は、妨害を低減するためにプログラミングにおいて負であり得る。
表10:
図22のVMMアレイ2200の動作
【表10】
【0132】
図23は、VMMシステム2300を示す。VMMシステム2300は、ビット線2301、ビット線2302、データセル2303及び2306、並びにプルダウンセル2304及び2305を備える。セル2303の読み出し又は検証(プログラム/消去チューニングサイクルに対する)動作中、電流は、ビット線2301を通ってセル2303のビット線端子に入り、セル2303のソース線端子へ出て、その後、プルダウンセル2304のソース線端子に入り、ビット線2302(この場合、プルダウンビット線として作用する)を通る。この設計は、全ての列に対して繰り返され、最終的に、第1のモードでプルダウンセル2304を含む行がプルダウンセルの行となる。データセル2306の読み出し又は検証(プログラム/消去チューニングサイクルに対する)動作中、電流は、ビット線2301を通ってセル2306のビット線端子に入り、セル2306のソース線端子へ出て、その後、プルダウンセル2305のソース線端子に入り、ビット線2302(この場合、プルダウンビット線として作用する)を通る。この設計は、全ての列に対して繰り返され、最終的に、第2のモードでプルダウンセル2305を含む行がプルダウンセルの行となる。
図23に示すように、4つの行があり、代替可能な奇数(又は偶数)行がプルダウンセルに使用され、代替可能な偶数(又は奇数)行はデータセルである。
【0133】
特に、第2のモード中、セル2305及び2306は読み出し又は検証においてアクティブであり、セル2303及び2305はプルダウンプロセスに使用され、ビット線2301及び2302の役割が逆になる。
【0134】
表11は、VMMシステム2300の動作電圧を示す。表中の列は、選択されたデータセルのビット線、選択されたプルダウンセルのビット線、選択されたセルのワード線、選択されたデータセルの制御ゲート、選択されたプルダウンセルのワード線WLS、選択されたプルダウンセルの制御ゲートCGS、全てのセルの消去ゲート、及び全てのセルのソース線を示す。行は、読み出し、消去、及びプログラムの動作を示す。
表11:
図23のVMMシステム2300の動作
【表11】
【0135】
図24は、VMMシステム2400を示す。VMMシステム2400は、ビット線2401、プルダウンビット線2402、(データ)セル2403、ソース線2411、並びにプルダウンセル2404、2405、及び2406を備える。セル2403の読み出し又は検証動作中、電流は、ビット線2401を通ってセル2403のビット線端子に入り、セル2403のソース線端子へ出て、その後、ソース線2411に入り、その後、プルダウンセル2404、2405、及び2406のソース線端子に入り、そこからプルダウンビット線2402を通って流れる。この設計は、全ての列に対して繰り返され、最終的に、プルダウンセル2404、2405、及び2406を含む行がそれぞれプルダウンセルの行となる。これにより、電流が3つのセルを通してプルダウンビット線2402に引き込まれるときに、セル2403のソース線端子に印加されるプルダウンが最大化される。4行のソース線が一緒に接続されることに留意されたい。
【0136】
表12は、VMMシステム2400の動作電圧を示す。表中の列は、選択されたセルのビット線、ビット線プルダウン、選択されたセルのワード線、選択されたセルの制御ゲート、選択されたセルの消去ゲート、選択されたプルダウンセルのワード線WLS、選択されたプルダウンセルの制御ゲートCGS、選択されたプルダウンセルの消去ゲート、及び全てのセルのソース線を示す。行は、読み出し、消去、及びプログラムの動作を示す。
表12:
図24のVMMシステム2400の動作
【表12】
【0137】
図25は、
図22のVMMシステム2200の例示的なレイアウト2500を示す。明るい正方形は、ビット線2201などのビット線とプルダウンビット線2202などのプルダウンビット線との金属接点を示す。
【0138】
図26は、
図22のVMMシステム2200と同様のVMMシステムの代替的なレイアウト2600を示すが、プルダウンビット線2602が非常に広く、2列のプルダウンセルを横断するという違いがある。すなわち、プルダウンビット線2602の拡散領域は、ビット線2601の拡散領域よりも広い。レイアウト2600は、セル2603及び2604(プルダウンセル)、ソース線2610、及びビット線2601を更に示す。別の実施形態では、2つのプルダウンセル(左及び右)の拡散は、より大きい1つの拡散に融合され得る。
【0139】
図27Aは、VMMシステム2700を示す。ニューラルネットワークの負の重み及び正の重みを実装するために、ビット線の半分は、w+線(正の重みを実装するメモリセルに接続するビット線)として指定され、ビット線の他方の半分は、w-線(負の重みを実装するメモリセルに接続するビット線)として指定され、w+線の間に交互に散在している。負の演算は、合算回路2701及び2702などの合算回路により、w-ビット線の出力(ニューロン出力)で行われる。w+線の出力及びw-線の出力を一緒に組み合わせて、(w+、w-)線の全ての対の(w+、w-)セルのそれぞれの対に対して効果的にw=w+-w-を与える。読み出しにおけるソース線のFG-FG結合を回避する、及び/又はIR電圧降下を低減するために使用されるダミービット線又はソース線プルダウンビット線は、図に示されていない。システム2700への入力(CG又はWLなど)は、正の値入力又は負の値入力を有し得る。入力が負の値を有する場合、アレイへの実際の入力は依然として正であるため(CG又はWLの電圧レベルなど)、アレイ出力(ビット線出力)は、負の値入力の等価関数を実現するために出力前に無効にされる。
【0140】
あるいは、
図27Bを参照すると、正の重みは、第1のアレイ2711に実装され得、負の重みは、第1のアレイとは別個の第2のアレイ2712に実装され得、結果として生じる重みは、合算回路2713によって適切に組み合わされる。同様に、ダミービット線(図示せず)又はソース線プルダウンビット線(図示せず)は、読み出しにおけるソース線のFG-FG結合を回避する、及び/又はIR電圧降下を低減するために使用される。
【0141】
あるいは、
図27Cは、正の入力又は負の入力を有するニューラルネットワークの負の重み及び正の重みを実装するためのVMMシステム2750を示す。第1のアレイ2751は、負の重み及び正の重みを有する正の値入力を実装し、第2のアレイ2752は、負の重み及び正の重みを有する負の値入力を実装する。いずれのアレイへのいずれの入力も正の値(CG又はWLのアナログ電圧レベルなど)のみを有するため、第2のアレイの出力は、合算器2755によって第1のアレイの出力に追加する前に無効にされる。
【0142】
表10Aは、ビット線BL0/1及びBL2/3の(w+、w-)対の物理的アレイ配置の例示的なレイアウトを示し、4つの行がソース線プルダウンビット線BLPWDNに結合されている。(BL0、BL1)ビット線の対は、(w+、w-)線を実装するために使用される。(w+、w-)線の対の間に、ソース線プルダウンビット線(BLPWDN)がある。これは、隣接する(w+、w-)線から電流(w+、w-)線への結合(例えば、FGーFG結合)を防止するために使用される。基本的に、ソース線プルダウンビット線(BLPWDN)は、(w+、w-)線の対の間の物理的障壁として機能する。
【0143】
FG-FG結合現象と、その現象に対抗するための機構に関する追加の詳細は、参照により本明細書に組み込まれる、同じ譲受人によって2020年2月26日に出願された「Ultra-Precise Tuning of Analog Neural Memory Cells in a Deep Learning Artificial Neural Network」と題する、米国特許仮出願第62/981,757号に見出される。
【0144】
表10Bは、異なる例示的な重みの組み合わせを示す。「1」は、セルが使用され、実際の出力値を有することを意味し、「0」は、セルが使用されておらず、値を有さないか又は大きい出力値を有さないことを意味する。
【0145】
別の実施形態では、ソース線プルダウンビット線の代わりにダミービット線が使用され得る。
【0146】
別の実施形態では、ダミー行はまた、行の間の結合を回避するために、物理的障壁として使用され得る。
表10A:例示的なレイアウト
【表10A】
表10B:例示的な重みの組み合わせ
【表10B】
【0147】
表11Aは、冗長線BL01、BL23及びソース線プルダウンビット線BLPWDNを有する(w+、w-)対線BL0/1及びBL2/3の物理的配置の別のアレイの実施形態を示す。BL01は、対BL0/1の再マッピングを重み付けするために使用され、BL23は、対BL2/3の再マッピングを重み付けするために使用される。
【0148】
表11Bは、再マッピングを必要としない分散された重みの場合を示し、基本的に、BL1とBL3との間に隣接する「1」は存在せず、隣接するビット線の結合を引き起こす。
【0149】
一実施形態では、重みマッピングは、ほぼ一定のビット線電圧降下を維持するように、ビット線に沿った総電流がほぼ一定であるようなものである。別の実施形態では、重みマッピングは、ほぼ一定のソース線電圧降下を維持するように、ソース線に沿った総電流がほぼ一定であるようなものである。
【0150】
表11Cは、再マッピングを必要とする分散された重みの場合を示し、基本的に、BL1とBL3との間に隣接する「1」は存在し、隣接するビット線の結合を引き起こす。この再マッピングは、表11Dに示されており、結果として、隣接するビット線間に「1」値は存在しないことになる。更に、ビット線間の「1」実値の重みを再マッピングする、すなわち重みを再分散させることにより、この時点でビット線に沿った総電流は減少し、ビット線(出力ニューロン)内の値がより精密になる。この場合、追加の列(ビット線)が、冗長列として作用するために必要とされる(BL01、BL23)。
表11E及び表11Fは、表10EのBL01、BL23、又は表11FのBL0B及びBL1Bなどの冗長(スペア)列にノイズの多いセル(又は欠陥のあるセル)を再マッピングする別の実施形態を示す。合算器は、適切にマッピングしたビット線出力を合算するために使用される。
表11A:例示的なレイアウト
【表11A】
表11B:例示的な重みの組み合わせ
【表11B】
表11C:例示的な重みの組み合わせ
【表11C】
表11D:再マッピングされた重みの組み合わせ
【表11D】
表11E:再マッピングされた重みの組み合わせ
【表11E】
表11F:再マッピングされた重みの組み合わせ
【表11F】
【0151】
表11Gは、
図27Bに好適なアレイの物理的配置の実施形態を示す。それぞれのアレイは、正の重み又は負の重みのいずれかを有するため、ソース線プルダウンとして作用するダミービット線、及びFG-FG結合を回避するための物理的障壁が、それぞれのビット線に必要である。
表11G:例示的なレイアウト
【表11G】
【0152】
別の実施形態は、FG-FG結合によって目標ビット線を最終目標にチューニングするために、目標ビット線に隣接するビット線としてチューニングビット線を有する。この場合、ソース線プルダウンビット線(BLPWDN)は、チューニングビット線に境界を付けない目標ビット線の一方の側に挿入される。
【0153】
ノイズの多い又は欠陥のあるセルをマッピングするための代替の実施形態は、これらのセルを(検知回路によってそれらのセルがノイズの多い又は欠陥のあるものとして識別された後に)非使用のセルとして指定することであり、それらがニューロン出力にいかなる値も寄与しないように(深く)プログラムされることを意味する。
【0154】
高速セルを処理するための実施形態は、最初にこれらのセルを識別し、次いで、これらのセルに、電圧増分パルスを小さくする、又は電圧増分パルスなしにする、又は浮遊ゲート結合アルゴリズムを使用するなど、より精密なアルゴリズムを適用する。
【0155】
図28は、これまでに考察されたVMMアレイのうちのいずれにも含まれ得る任意選択の冗長アレイ2801を示す。冗長アレイ2801は、ビット線スイッチに取り付けられた列のいずれかが欠陥があると見なされる場合に、欠陥のある列を置き換えるための冗長性として使用され得る。冗長アレイは、その独自の冗長ニューロン出力(例えば、ビット線)、及び冗長性目的のためのADC回路を有し得る。冗長性が必要な場合、冗長ADCの出力は、不良ビット線のADCの出力に置き換わる。冗長アレイ2801はまた、ビット線の間の電力分散のために、表10xに記載されるような重みマッピングに使用され得る。
【0156】
図29は、アレイ2901、アレイ2902、列マルチプレクサ2903、ローカルビット線LBL2905a~d、グローバルビット線GBL2908及び2909、並びにダミービット線スイッチ2905を備えるVMMシステム2900を示す。列マルチプレクサ2903は、アレイ2901の一番上のローカルビット線2905又はアレイ2902の一番下のローカルビット線2905をグローバルビット線2908に選択するために使用される。一実施形態では、(金属)グローバルビット線2908は、ローカルビット線の数と同じ数の線、例えば、8本又は16本を有する。別の実施形態では、グローバルビット線2908は、8本又は16本のローカルビット線当たり1本のグローバルビット線などの、N本のローカルビット線当たり1本の(金属)線のみを有する。列マルチプレクサ2903は、隣接するグローバルビット線(GBL2909など)を現在のグローバルビット線(GBL2908など)に多重化して、現在のグローバルビット線の幅を効果的に増加させることを更に含む。これは、グローバルビット線にわたる電圧降下を低減する。
【0157】
図30は、VMMシステム3000を示す。VMMシステム3000は、アレイ3010、(シフトレジスタ)SR3001、デジタル-アナログ変換器3002(それは、SR3001からの入力を受信し、同等の(アナログ又は擬似アナログ)レベル又は情報を出力する)、合算器回路3003、アナログ-デジタル変換器3004、及びビット線スイッチ3005を備える。ダミービット線及びダミービット線スイッチが存在するが、図示されていない。示されるように、ADC回路を一緒に組み合わせて、より高い精度(すなわち、より多くの数のビット)を有する単一のADCを作成することができる。
【0158】
合算器回路3003は、
図31~
図33に示される回路を含み得る。これには、限定することなく、正規化、スケーリング、算術演算、活性化、統計的丸めなどのための回路が挙げられ得る。
【0159】
図31は、(VMMアレイのビット線(複数可)から受信した電流である)電流Ineu(1)、...、Ineu(n)をそれぞれ引き込む電流源3101-1、...、3101-n、演算増幅器3102、可変保持コンデンサ3104、及び可変抵抗器3103を含む、可変抵抗器によって調整可能な電流-電圧合算器回路3100を示す。演算増幅器3102は、電圧Vneuro=R3103
*(Ineu1+Ineu0)を出力し、これは電流Ineuxに比例する。保持コンデンサ3104は、スイッチ3106が開いているときに出力電圧を保持するために使用される。この保持出力電圧は、例えば、ADC回路によってデジタルビットに変換するために使用される。
【0160】
図32は、(VMMアレイのビット線(複数可)から受信した電流である)電流Ineu(1)、...、Ineu(n)をそれぞれ引き込む電流源3201-1、...、3201-n、演算増幅器3202、可変コンデンサ3203、及びスイッチ3204を含む、可変コンデンサ(基本的に積分器)によって調整可能な電流-電圧合算器回路3200を示す。演算増幅器3202は、電圧Vneuout=Ineu
*積分時間/C3203を出力し、これは電流Ineu(複数可)に比例する。
【0161】
図33Aは、可変コンデンサ(すなわち、スイッチキャップSC回路)によって調整可能な電圧合算器3300を示し、これは、スイッチ3301及び3302、可変コンデンサ3303及び3304、演算増幅器3305、可変コンデンサ3306、並びにスイッチ3306を含む。スイッチ3301が閉じられると、入力Vin0は、演算増幅器3305に提供される。スイッチ3302が閉じられると、入力Vin1は、演算増幅器3305に提供される。任意選択的に、スイッチ3301及び3302は同時に閉じられない。演算増幅器3305は、入力(スイッチ3301及び3302の中でどのスイッチが閉じられるかに応じて、Vin0及び/又はVin1のいずれか)の増幅バージョンである出力Voutを生成する。すなわち、Vout=Cin/Cout
*(Vin)であり、CinはC3303又はC3304であり、CoutはC3306である。例えば、Vout=Cin/Cout
*Σ(Vinx)、Cin=C3303=C3304である。一実施形態では、Vin0は、W+電圧であり、Vin1は、W-電圧であり、電圧合算器3300は、それらを合算して出力電圧Voutを生成する。
【0162】
図33Bは、スイッチ3351、3352、3353、及び3354、可変入力コンデンサ3358、演算増幅器3355、可変フィードバックコンデンサ3356、並びにスイッチ3357を含む電圧合算器3350を示す。一実施形態では、Vin0は、W+電圧であり、Vin1は、W-電圧であり、電圧合算器3300は、それらを合算して出力電圧Voutを生成する。
【0163】
入力=Vin0の場合:スイッチ3354及び3351が閉じられたとき、入力Vin0は、コンデンサ3358の上部端子に提供される。次いで、スイッチ3351が開かれ、スイッチ3353が閉じられて、コンデンサ3358からフィードバックコンデンサ3356に電荷を移す。基本的にその後、出力VOUT=(C3358/C3356)*Vin0(例えば、VREF=0の場合)となる。
【0164】
入力=Vin1の場合:スイッチ3353及び3354が閉じられたときに、コンデンサ3358の両方の端子がVREFに放電される。次いで、スイッチ3354が開かれ、スイッチ3352が閉じられて、コンデンサ3358の底部端子をVin1に充電し、次にフィードバックコンデンサ3356をVOUT=-(C3358/C3356)*Vin1(VREF=0の場合)に充電する。
【0165】
したがって、例えば、VREF=0の場合、Vin0入力が有効にされた後でVin1入力が有効にされると、VOUT=(C3358/C3356)*(Vin0-Vin1)となる。これは、例えば、w=w+-w-を実現するために使用される。
【0166】
上述のVMMアレイに適用される
図2への入出力動作の方法は、デジタル形式でもアナログ形式でもよい。方法は、以下を含む:
・DACへの順次入力IN[0:q]:
・IN0、次いでIN1、...、次いでINqを順次動作させる。全ての入力ビットは、同じVCGinを有する。全てのビット線(ニューロン)出力は、バイナリインデックス乗数を調整して合算される。これは、ADC前又はADC後のいずれかに行われる。
・ニューロン(ビット線)バイナリインデックス乗数法の調整:
図20に示すように、例示的な合算器は、2つのビット線BL0及びBlnを有する。重みは、複数のビット線BL0からBLnにわたって分散される。例えば、4つのビット線BL0、BL1、BL2、BL3がある。ビット線BL0からの出力は、2^0=1で乗算される。n番目のバイナリビット位置を表すビット線BLnからの出力は、2^nで乗算され、例えば、n=3の場合、2^3=8である。次いで、バイナリビット位置2^nで適切に乗算された後の全てのビット線からの出力が、一緒に合算される。次いで、これはADCによってデジタル化される。この方法は、全てのセルがバイナリ範囲のみを有することを意味し、マルチレベル範囲(nビット)は、周辺回路(合算器回路によってを意味する)によって達成される。したがって、全てのビット線の電圧降下は、メモリセルの最高バイアスレベルについてほぼ同じである。
・IN0、IN1、...、次いでINqを順次動作させる。それぞれの入力ビットは、対応するアナログ値VCGinを有する。全てのニューロン出力は、全ての入力ビット評価のために合算される。これは、ADC前又はADC後のいずれかに行われる。
・DACへの並列入力:
・それぞれの入力IN[0:q]は、対応するアナログ値VCGinを有する。全てのニューロン出力は、バイナリインデックス乗数法を調整して合算される。これは、ADC前又はADC後のいずれかに行われる。
【0167】
アレイで順次動作させることにより、電力はより均等に分散される。ニューロン(ビット線)バイナリインデックス法はまた、ビット線内のそれぞれのセルがバイナリレベルのみを有するため、アレイ内の電力を削減し、2^nレベルは、合算器回路2603によって達成される。
【0168】
図33に示されるそれぞれのADCは、ADCの適切な設計を用いて、より高いビット実装のために次のADCと組み合わせるように構成され得る。
【0169】
【0170】
図34Aは、ニューロン出力3401を受信し、出力デジタルビット3403を出力するアナログ-デジタル変換器3402を含む出力回路3400を示す。
【0171】
図34Bは、ニューロン出力回路3411及びアナログ-デジタル変換器3412を含む出力回路3410を示し、これらは合わせてニューロン出力3401を受信し、出力3413を生成する。
【0172】
図34Cは、ニューロン出力回路3421及び変換器3422を含む出力回路3420を示し、これらは合わせてニューロン出力3401を受信し、出力3423を生成する。
【0173】
ニューロン出力回路3411又は3411は、例えば、合算、スケーリング、正規化、算術演算などを実行し得る。変換器3422は、例えば、ADC、PDC、AAC、APC演算などを実行し得る。
【0174】
図35は、調整可能な(スケーリング)電流源3501及び調整可能な(スケーリング)電流源3502を含み、これらが一緒になってニューロン出力である出力i
OUTを生成する、ニューロン出力回路3500を示す。この回路は、正の重み及び負の重みの合算、すなわちw=w+-w-を実行し得、かつ出力ニューロン電流のアップ又はダウンスケーリングを同時に実行し得る。
【0175】
図36は、構成可能なニューロンシリアルアナログ-デジタル変換器3600を示す。変換器は、ニューロン出力電流を積分コンデンサ3602に積分する積分器3670を含む。一実施形態では、デジタル出力(カウント出力)3621は、コンパレータ3604が極性を切り替えるまでランピングVRAMP3650をクロックすることによって生成され、別の実施形態では、VOUT3603がVREF3650に到達し、その時点でEC3605信号がカウンタ3620を無効にするまで、ランプ電流3651によってノードVC3610をランプダウンすることによって生成される。(nビット)ADCは、目標用途に応じて、より低いビット数精度<nビット、又はより高いビット数精度>nビットを有するように構成可能である。構成可能性は、コンデンサ3602、電流3651、又はVRAMP3650のランピングレート、クロッキング3641などを構成することなどによって行われる。別の実施形態では、VMMアレイのADC回路は、より低い精度<nビットを有するように構成され、別のVMMアレイのADC回路は、高精度>nビットを有するように構成される。更に、1つのニューロン回路のこのADC回路は、次のニューロン回路の次のADCと組み合わせて、2つのADC回路の積分コンデンサ3602を組み合わせることなどによって、より高いnビットADC精度を生成するように構成され得る。
【0176】
図37は、構成可能なニューロンSAR(逐次近似レジスタ)アナログ-デジタル変換器3700を示す。この回路は、バイナリコンデンサを使用した電荷再分散に基づく、逐次近似変換器である。これには、バイナリCDAC(コンデンサに基づくDAC)3701、演算増幅器/コンパレータ3702、及びSAR論理3703が含まれる。示されるように、GndV3704は、低電圧基準レベル、例えば、接地レベルである。
【0177】
図38は、構成可能なニューロンのコンボSARアナログ-デジタル変換器3800を示す。この回路は、2つのニューロン回路からの2つのADCを1つに組み合わせて、より高いnビット精度を達成し、例えば、1つのニューロン回路の4ビットADCの場合、この回路は、2つの4ビットADCを組み合わせることにより、8ビットADC精度などの4ビット超の精度を達成し得る。コンボ回路トポロジは、スプリットキャップ(ブリッジコンデンサ(キャップ)又はアテンションキャップ)SAR ADC回路と同等であり、例えば、8ビット4C-4C SAR ADCは、2つの隣接する4ビット4C SAR ADC回路を組み合わせることによってもたらされる。これを成し遂げるためにブリッジ回路3804が必要であり、この回路の静電容量=(CDACキャップユニットの総数/CDACキャップユニットの総数-1)である。
【0178】
図39は、次のSAR ADCと組み合わせてパイプライン方式でビット数を増加させるために使用され得る、構成可能なニューロンのパイプライン型SAR CDAC ADC回路3900を示す。残留電圧3906は、パイプライン型ADCの次の段階への入力として提供するために(例えば、次のSAR CDAC ADCへの入力として利得2(DAC 3901の全てのキャップのCf対Cの比率)を提供するために)、コンデンサ3930Cfによって生成される。
【0179】
構成可能な出力ニューロン(構成可能なニューロンADCなど)の回路に関する追加の実装詳細は、同じ譲受人によって2019年6月21日に出願され、「Configurable Input Blocks and Output Blocks and Physical Layout for Analog Neural Memory in a Deep Learning Artificial Neural Network」と題する、米国特許出願第16/449,201号に見出すことができ、それは、参照により本明細書に組み込まれる。
【0180】
出願人は、本明細書に参照により組み込まれる、2020年8月4日に出願された「Ultra-Precise Tuning of Analog Neural Memory Cells in a Deep Learning Artificial Neural Network」と題する、米国特許出願第16/985,147号に記載されている人工ニューラルネットワークにおけるアナログニューラルメモリ内の精密なデータチューニングを達成するための機構を以前に発明した。その先の出願は、VMM内の選択されたセルの粗プログラミング、微細プログラミング、及び超微細プログラミングを実行するための実施形態を開示している。したがって、その出願は、選択されたそれぞれのセルに対して最大3つのタイプのプログラミングを実行することを企図している。このアプローチは非常に精密なプログラミングを達成し得るが、アレイ内の選択されたそれぞれのセルが3つの全タイプのプログラミングプロセスを経なければならないため、時間も相当かかる。
【0181】
図40~
図48は、先行技術及び先行出願のプログラミング機構を改善する実施形態を示す。
【0182】
図40は、論理セル4000を示す。この例では、論理セルは、微細セル4001-1、粗セル4001-2、及び粗セル4001-3と標示された3つのメモリセルを含む。微細セル4001-1は微細ビット線4002-1に結合され、粗セル4001-2は粗ビット線4002-2に結合され、粗セル4001-3は粗ビット線4002-3に結合される。論理セル4000は、先行技術では(物理的)単一セルに記憶されているデータを含む。例えば、論理セル4000は、N個の異なる値のうちの1つを保持し得、Nは、論理セル4000に記憶され得る異なる値の総数である(例えば、N=64又は128)。先行技術とは異なり、それぞれの物理セルに対して複数のタイプのプログラミング(例えば、粗プログラミング及び微細プログラミング)を実行するのではなく、粗プログラミング方法は、粗ビット線4002-3で粗セル4001-3に対して実行され、粗プログラミング方法は、粗ビット線4002-2で粗セル4001-2に対して実行され、粗及び/又は微細プログラミング方法は、微細ビット線4002-1で微細セル4001-1に対して実行される。すなわち、微細プログラミング方法は、粗セル4001-2及び4001-3に対して実行されない。このアプローチを実装することにより、特に微細プログラミングは比較的大きい時間量を要するため、3つの全セルに対して粗プログラミング及び微細プログラミングを行うアプローチに比べて、プログラミング時間ははるかに短くなる。
【0183】
図41は、
図40の論理セル4000に対して実行されるプログラム及び検証方法4100を示す。
【0184】
第1のステップは、微細セル4001-1、粗セル4001-2、及び粗セル4001-3を消去することである(ステップ4101)。任意選択的に、第1のステップは、消去後、3つのセル全てに対して中間値への粗プログラミング方法を実行することを更に含む。
【0185】
第2のステップは、粗プログラミング方法を使用して粗セル4001-3をプログラムすること、及びその動作後に、粗セル4001-3が、粗セル4001-3に意図された粗値に正しくプログラムされていることを確認するために、論理セル4000を検証することである(ステップ4102)。代替方法は、粗セル自体を検証することである。
【0186】
第3のステップは、粗プログラミング方法を使用して粗セル4001-2をプログラムすること、並びに、その動作後に、粗セル4001-2及び粗セル4001-3が一緒に、論理セル4000の値として反映される粗セル4001-2及び4001-3に意図された粗値に正しくプログラムされていることを確認するために、論理セル4000を検証することである(ステップ4103)。
【0187】
第4のステップは、微細プログラミング方法を使用して微細セル4001-1をプログラムすること、並びに、その動作後に、微細セル4001-1、粗セル4001-2、及び粗セル4003が一緒に、論理セル4000に意図された値に正しくプログラムされていることを確認するために、論理セル4000を検証することである(ステップ4104)。
【0188】
表12Aは、論理セル4000、微細セル4001-1、粗セル4001-2、及び粗セル4001-3の目標値の例を示す。
表12A:論理セル4000の例示的な目標値
【表12A】
【0189】
表12Aを参照して理解され得るように、微細セル4001-1のみが、論理セル4000の最終目標値の許容パーセンテージ(例えば、限定することなく、+/-0.5%、+/-0.25%)内で精密かつ正確な値を有する必要がある。例えば、出願人は、粗セルが、例として粗セルの目標値+/-20%を有し得る(いずれの不正確さも微細セル4001-1によって補正され得るため)のに対して、微細セルは、論理セルの目標値+/-0.5%を有し得ると決定した。したがって、粗セルは、より粗い電圧ステップでプログラムされ得、それらの目標にはるかに速く到達することが可能になる。メモリセルのN個のレベルのそれぞれに電荷レベルを割り当てる1つの方法は、以下のとおりである。第1に、サブスレッショルド又はデータ特性評価からの任意の他の領域における最大電流Imaxの電流範囲を決定し、典型的には、電流範囲Imaxは、約Vtfg-0.2Vの浮遊電圧の範囲内である。第2に、セルがオフ状態にあるとき(例えば、WL=0V、CG=0V)、物理メモリセルからの漏れ電流Ileakを決定する。N個のレベルのうちの最低レベルに対する最低電荷は、何らかの係数a*Ileakとなり、例えば、128行アレイの場合はa=128である。N個のレベルのうちの最高レベルに対する最高電荷は、電流範囲の最大電流Imaxに関連付けられた電荷である。第3に、粗/微細又は粗/微細/超微細アルゴリズムを使用して、Imaxにプログラムするときのプログラム分解能を決定する。典型的に、Imax目標の標準偏差(シグマ)の変動は、粗/微細アルゴリズムについては単一電子プログラム分解能であり、粗/微細/超微細については副電子プログラム分解能である(ビット線チューニング又は浮遊ゲート-浮遊ゲート結合チューニング方法)。例えば、ニューラルネットワークの目標デルタレベルは、=(IdeltaL=I(Ln)-I(Ln-1)=b*1シグマ変動となり得、bは、典型的には、特定の用途に所望されるネットワーク精度に応じて1又は2又は3であり得る。例示的な実施形態では、レベルの数NLは、=(Imax-a*Ileak)/IdeltaLであり、aは、データ特性評価に基づく所定の数である。
【0190】
図42は、論理セル4200を示す。この例では、論理セル4200は、チューニングセル4201-1、微細セル4201-2、粗セル4201-3、及び粗セル4201-4と標示された4つのメモリセルを含む。チューニングセル4201-1は、チューニングビット線4202-1に結合され、微細セル4201-2は、微細ビット線4202-2に結合され、粗セル4201-3は、粗ビット線4202-3に結合され、粗セル4201-4は、粗ビット線4202-4に結合される。論理セル4200は、先行技術では単一の物理セルに記憶されているデータを含む。例えば、論理セル4200は、N個の異なる値のうちの1つを保持し得、Nは、論理セルに記憶され得る異なる値の総数である(例えば、N=64又は128)。先行技術とは異なり、それぞれの物理セルに対して複数のタイプのプログラミング(例えば、粗プログラミング、微細プログラミング、超微細(FG-FGチューニング)又はチューニングプログラミング)を実行するのではなく、粗プログラミングは、粗ビット線4202-4で粗セル4201-4に対して実行され、粗プログラミングは、粗ビット線4202-3で粗セル4201-3に対して実行され、粗及び/又は微細プログラミングは、微細ビット線4202-2で微細セル4201-2に対して実行され、FG-FGチューニング(超微細)プログラミングは、チューニングビット線4202-1でチューニングセル4201-1に対して実行される。すなわち、超微細及び微細プログラミングは、粗セル4201-3及び4201-4に対して実行されず、超微細プログラミングは、微細セル4201-2に対して実行されない。
【0191】
超微細プログラミングにより、論理セルは、最終目標値の目標%、例えば、限定することなく、+/-0.5%又は+/-0.25%の目標%内に到達することが可能になる。超微細プログラミングは、チューニングセル4201-1をプログラミングすることによって実行される。チューニングセル4201-1は、FG-FG結合(チューニングセル4201-1のFGが、微細セル4201-2のFGに結合する)を介して微細セル4201-2をチューニングする。例えば、チューニングセルのFG-FGから微細セルへの結合のパーセンテージが約3%である場合、これは、チューニングセルのFGの4mVの変化(1セル10mVのCGプログラム増分などから)が、微細セルのFGの0.12mVの変化(隣接する2つのセルのFG-FG結合から)をもたらすことを意味する。粗セル4201-3及び4201-5のそれぞれの粗セル目標は、例えば、+/-20%以内であり得、微細セル目標は15%以内であり得、チューニングセルのチューニング目標は+/-0.2%であり得る。3つ(複数)の物理セルが1つの論理セルを実現するためには、1つのチューニングセルのみが必要であることに留意されたい。
【0192】
図43は、
図42の論理セル4200に対して実行されるプログラム及び検証方法4300を示す。
【0193】
第1のステップは、チューニングセル4201-1、微細セル4201-2、粗セル4201-3、及び粗セル4201-4を消去することである(ステップ4301)。任意選択的に、第1のステップは、微細セル4201-2、粗セル4201-3、及び粗セル4201-4に対して中間値への粗プログラミング方法を実行することを更に含む。
【0194】
第2のステップは、粗プログラミング方法を使用して粗セル4201-4をプログラムすること、及び、その動作後に、粗セル4201-4が、粗セル4002-4に意図された粗値に正しくプログラムされていることを確認するために、論理セル4200を検証することである(ステップ4302)。
【0195】
第3のステップは、粗プログラミング方法を使用して粗セル4201-3をプログラムすること、並びに、その動作後に、粗セル4201-3及び粗セル4201-4が一緒に、粗セル4201-3及び4201-4に意図された粗値に正しくプログラムされていることを確認するために、論理セル4200を検証することである(ステップ4303)。
【0196】
第4のステップは、微細プログラミング方法を使用して微細セル4201-2をプログラムすること、並びにその動作後に、微細セル4201-2、粗セル4201-3、及び粗セル4201-4が一緒に、論理セル4200に意図された値に正しくプログラムされていることを確認するために、論理セル4200を検証することである(ステップ4304)。
【0197】
第5のステップは、チューニング方法を使用してチューニングセル4201-1をプログラムすること、並びにその動作後に、チューニングセル4201-1、微細セル4201-2、粗セル4201-3、及び粗セル4201-4が一緒に、論理セル4200に意図された値に正しくプログラムされていることを確認するために、論理セル4200を検証することである(ステップ4305)。
【0198】
表13は、論理セル4200、チューニングセル4201-1、微細セル4001-2、粗セル4201-3、及び粗セル4201-4の目標値の例を示す。
表13:論理セル4200の例示的な目標値
【表13】
【0199】
論理セル4200の値は2つの粗セル4201-3、4201-4及び微細セル4201-2の合計であるため、チューニングセル4201-1の絶対値は重要ではないことに留意されたい。チューニングセル4201-1の目的は、微細セル4201-2の値をチューニングすることである。
【0200】
図44は、アレイ4400を示す。アレイ4400は、例示的な論理セル4451などの複数の論理セルを含み、ここでは、論理セル4200の構造に従う。したがって、論理セル4451は、チューニングビット線4401-1に結合されたチューニングセル4411-1と、微細ビット線4401-2に結合された微細セル4411-2と、粗ビット線44010-3に結合された粗セル4411-3と、粗ビット線4401-4に結合された粗セル4411-4と、を含む。ここで、それぞれの行は、論理セル4200と同じ構造の複数の論理セルを含み、アレイ4400は、例示的な行4410及び4420などの複数の行を含む。同じ行において、次の論理セルは、前の論理セルの粗セルの隣にそのチューニングセルを有し、これは、例えば、微細セル4411-6と比べて粗セル4411-4では容量効果が比較的小さくなるため、2つの論理セル間のFG-FG結合を最小化するために使用されることに留意されたい。
【0201】
図45は、アレイ4500を示す。アレイ4500は、アレイ4500が分離ビット線に結合された分離セルの列も含むことを除いて、アレイ4400と同様である。例えば、アレイ4500は、チューニングビット線4501-2に結合されたチューニングセル4511-2と、微細ビット線4501-3に結合された微細セル4511-3と、粗ビット線4501-4に結合された粗セル4511-4と、粗ビット線4501-5に結合された粗セル4511-5と、を含む論理セル4551を含む。アレイ4500は、分離ビット線4501-1に結合された分離セル4511-1と、分離ビット線4501-6に結合された分離セル4511-6と、を更に含み、分離セル4511-1及び4511-6は、その両側の論理セル4551に隣接している。分離セル4511-1及び4511-6は、データを記憶するためには使用されず、むしろ、論理セル間にバッファを提供して、論理セル間の望ましくない妨害効果を低減するために使用される。好ましくは、分離セルは、分離セルのFG電圧が可能な限り低い値になるように深くプログラムされる。あるいは、分離セルは、部分消去されるか、完全消去されるか、又はネイティブ状態(消去又はプログラムなし)である。あるいは、分離セルは部分的にプログラムされる。あるいは、分離セルはダミーセルである。同じ行について、論理セル間の分離セルは、前の論理セルの1つの粗セルに隣接し、後の論理セルのチューニングセルに隣接することに留意されたい。
【0202】
図46は、アレイ4600を示す。アレイ4600は、アレイ4600が任意のビット線に結合されたストラップセルの列も含むことを除いて、アレイ4400と同様である。例えば、アレイ4600は、チューニングビット線4601-2に結合されたチューニングセル4611-2と、微細ビット線4601-3に結合された微細セル4611-3と、粗ビット線4601-4に結合された粗セル4611-4と、粗ビット線4601-5に結合された粗セル4611-5と、を含む論理セル4651を含む。アレイ4600は、その両側の論理セル4651に隣接して位置するストラップセル4611-1及び4611-6を更に含む。ストラップセル4611-1及び4611-6は、データを記憶するためには使用されず、むしろ、アレイ4600内の様々な線(ポリライン)(ワード線のためのWLストラップ、消去ゲート線のためのEGストラップ、制御ゲート線のためのCGストラップ、ソース線のためのSLストラップ、又はSLWLストラップ、SLCGストラップ、SLEGストラップのようなストラップの組み合わせ;ストラップセルは、それらの構造にダミー浮遊ゲート構造を依然として有し得る)と、アレイ4600の外側(ドライバ回路など)のデバイス及び接続部との間に導電性の接続(メタルインターコネクトのような)がなされ得る領域として使用される。あるいは、分離セルは、ストラップセルとチューニングセルとの間に配置される。あるいは、分離セルは、ストラップセルの隣に配置される。
【0203】
図47は、アレイ4700を示す。アレイ4700は、アレイ4700がアレイのプルダウンソース線に結合されたプルダウンセルの列も含むことを除いて、アレイ4400と同様である。例えば、アレイ4700は、チューニングビット線4701-2に結合されたチューニングセル4711-2と、微細ビット線4701-3に結合された微細セル4711-3と、粗ビット線4701-4に結合された粗セル4711-4と、粗ビット線4701-5に結合された粗セル4711-5と、を含む論理セル4751を含む。アレイ4700は、プルダウンビット線4701-1に結合されたプルダウンセル4711-1と、プルダウンビット線4701-6に結合されたプルダウンセル4711-6と、を更に含み、プルダウンセル4711-1及び4711-6は、その両側の論理セル4751に隣接している。プルダウンセル4711-1及び4711-6は、データを記憶するためには使用されず、むしろ、
図21~
図27を参照して上述したように、必要に応じてソース線端子を接地までプルダウンするために使用される。
【0204】
図48は、アレイ4800を示す。アレイ4800は、チューニングビット線4801-1に結合されたチューニングセル4811-1及びチューニングセル4821-1と、混合ビット線4801-2に結合された粗セル4811-2及び微細セル4821-2と、粗ビット線4810-3に結合された粗セル4811-3及び微細セル4821-3と、を含む論理セル4851を含む。したがって、アレイ4800では、それぞれの論理セルは、1つの行(偶数行など)に3つのセル、及び隣接する行(奇数行など)に3つのセルを含む。セルのうちの3つは粗セルであり、1つのセルは微細セルであり、2つのセルはチューニングセルである。前述のプログラミング方法と一致して、論理セル4851がプログラムされるとき、セルがプログラムされる順序は、粗セル4811-3、粗セル4821-3、粗セル4811-2、微細セル4821-2、チューニングセル4811-1(粗セル4811-2に最小限の効果を有すると予想される)、及びチューニングセル4821-1の順である。読み出し又は検証動作中、6つのセル全てが1つの論理セルとして読み出される。このアプローチを通して、奇数行と偶数行との間の不一致は、I-V勾配の不一致を最小限に抑えるように一緒に平均化される。
【0205】
本明細書で使用される場合、「の上方に(over)」及び「に(on)」という用語は両方とも、「の上に直接」(中間材料、要素、又は間隙がそれらの間に配設されていない)、及び「の上に間接的に」(中間材料、要素、又は間隙がそれらの間に配設されている)を包括的に含むことに留意されるべきである。同様に、「隣接した」という用語は、「直接隣接した」(中間材料、要素、又は間隙がそれらの間に配設されていない)、及び「間接的に隣接した」(中間材料、要素、又は間隙がそれらの間に配設されている)を含み、「に取り付けられた」は、「に直接取り付けられた」(中間材料、要素、又は間隙がそれらの間に配設されていない)、及び「に間接的に取り付けられた」(中間材料、要素、又は間隙がそれらの間に配設されている)を含み、「電気的に結合された」は、「に直接電気的に結合された」(要素を一緒に電気的に接続する中間材料又は要素がそれらの間にない)、及び「に間接的に電気的に結合された」(要素を一緒に電気的に接続する中間材料又は要素がそれらの間にある)を含む。例えば、要素を「基板の上方に」形成することは、その要素を基板に直接、中間材料/要素をそれらの間に伴わずに形成すること、及びその要素を基板の上に間接的に1つ以上の中間材料/要素をそれらの間に伴って形成することを含み得る。
【手続補正書】
【提出日】2024-04-25
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
不揮発性メモリセルのアレイに対するレベル割り当ての方法であって、前記方法は、
プログラム分解能電流値を決定するステップと、
複数の不揮発性メモリセルの中のそれぞれの隣接するセルの対のレベル間のデルタ電流が、前記プログラム分解能電流値の倍数になるように、前記アレイ内の前記複数の不揮発性メモリセルのプログラミング動作に対してレベルを設定するステップと、を含む、方法。
【請求項2】
前記アレイはアナログメモリである、請求項1に記載の方法。
【請求項3】
前記最低レベルはオフのセルの漏れ値の倍数である、請求項1に記載の方法。
【請求項4】
前記デルタ電流は、前記プログラム分解能電流値に対して少なくとも1シグマである、請求項1に記載の方法。
【請求項5】
前記デルタ電流は、前記プログラム分解能電流値に対して少なくとも2シグマである、請求項1に記載の方法。
【請求項6】
前記デルタ電流は、前記プログラム分解能電流値に対して少なくとも3シグマである、請求項1に記載の方法。
【請求項7】
前記不揮発性メモリセルは論理セルに編成され、それぞれの論理セルは、1つ以上の粗セル及び1つ以上の微細セルを含む、請求項1に記載の方法。
【請求項8】
前記不揮発性メモリセルはスプリットゲートフラッシュメモリセルである、請求項1に記載の方法。
【請求項9】
前記不揮発性メモリセルは積層ゲートフラッシュメモリセルである、請求項1に記載の方法。
【請求項10】
前記メモリシステムはニューラルネットワークの一部である、請求項1に記載のメモリシステム。
【請求項11】
前記ニューラルネットワークはアナログニューラルネットワークである、請求項10に記載のメモリシステム。
【外国語明細書】