(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-21
(45)【発行日】2023-09-29
(54)【発明の名称】深層学習人工ニューラルネットワークにおけるアナログニューラルメモリのためのワード線及び制御ゲート線タンデムデコーダ
(51)【国際特許分類】
G11C 16/08 20060101AFI20230922BHJP
【FI】
G11C16/08 130
G11C16/08 120
G11C16/08 140
(21)【出願番号】P 2022573629
(86)(22)【出願日】2020-11-27
(86)【国際出願番号】 US2020062500
(87)【国際公開番号】W WO2021247072
(87)【国際公開日】2021-12-09
【審査請求日】2023-01-16
(32)【優先日】2020-06-03
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-11-25
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】500147506
【氏名又は名称】シリコン ストーリッジ テクノロージー インコーポレイテッド
【氏名又は名称原語表記】SILICON STORAGE TECHNOLOGY, INC.
(74)【代理人】
【識別番号】110000626
【氏名又は名称】弁理士法人英知国際特許商標事務所
(72)【発明者】
【氏名】トラン、ヒュー バン
(72)【発明者】
【氏名】ブー、サン
(72)【発明者】
【氏名】トリン、ステファン
(72)【発明者】
【氏名】ホン、スタンレー
(72)【発明者】
【氏名】リ、アン
【審査官】後藤 彰
(56)【参考文献】
【文献】国際公開第2020/040893(WO,A1)
【文献】国際公開第2019/177698(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G11C 16/08
(57)【特許請求の範囲】
【請求項1】
アレイ内の不揮発性メモリセルの行に結合されたワード線及び制御ゲート線を制御するためのタンデム行デコーダであって、
前記ワード線を駆動するためのワード線デコーダと、
前記制御ゲート線を駆動するための制御ゲートデコーダと、を備え、
第1のモードでは、前記タンデム行デコーダが有効にされず、前記ワード線デコーダが前記ワード線を接地に引き、前記制御ゲートデコーダが前記制御ゲート線を接地に引
き、
第2のモードでは、前記タンデム行デコーダが有効にされ、前記ワード線デコーダが有効にされ、前記制御ゲートデコーダが、前記ワード線デコーダが有効にされた後に、有効にされる、タンデム行デコーダ。
【請求項2】
第3のモードでは、前記タンデム行デコーダが有効にされ、前記制御ゲー
トデコーダが有効にされ、前記ワード線デコーダが、前記制御ゲー
トデコーダが有効にされた後に、有効にされる、請求項1に記載のタンデム行デコーダ。
【請求項3】
第3のモードでは、前記タンデム行デコーダが有効にされ、前記制御ゲー
トデコーダが有効にされ、前記ワード線デコーダが、前記制御ゲー
トデコーダが有効にされた後に、前記ワード線を高く引く、請求項
1に記載のタンデム行デコーダ。
【請求項4】
前記アレイがニューラルアナログメモリである、請求項1に記載のタンデム行デコーダ。
【請求項5】
前記不揮発性メモリセルがスプリットゲートメモリセルを含む、請求項1に記載のタンデム行デコーダ。
【請求項6】
前記ワード線デコーダが、前記ワード線デコーダの出力を生成するためのレベルシフタを含む、請求項1に記載のタンデム行デコーダ。
【請求項7】
前記ワード線デコーダの前記出力が高レベル又は低レベルを含み、前記高レベルが前記行デコーダの動作電圧Vddよりも大きく、前記低レベルが接地よりも小さい、請求項
6に記載のタンデム行デコーダ。
【請求項8】
前記制御ゲートデコーダが、前記制御ゲートデコーダの出力を生成するためのレベルシフタを含む、請求項1に記載のタンデム行デコーダ。
【請求項9】
前記制御ゲートデコーダの前記出力が高レベル又は低レベルを含み、前記高レベルが前記行デコーダの動作電圧Vddよりも大きく、前記低レベルが接地よりも小さい、請求項
8に記載のタンデム行デコーダ。
【発明の詳細な説明】
【技術分野】
【0001】
(優先権の主張)
本出願は、2020年6月3日に出願された「Word Line and Control Gate Line Tandem Decoder for Analog Neural Memory in Deep Learning Artificial Neural Network」と題する米国特許仮出願第63/033,953号、及び2020年11月25日に出願された「Word Line and Control Gate Line Tandem Decoder for Analog Neural Memory in Deep Learning Artificial Neural Network」と題する米国特許出願第17/104,385号の優先権を主張する。
【0002】
(発明の分野)
タンデム行デコーダの様々な実施形態が開示される。タンデム行デコーダの各実施形態は、ワード線デコーダと、ワード線デコーダに交差結合された制御ゲートデコーダと、を備える。タンデム行デコーダは、タンデム行デコーダが有効にされない場合、ワード線又は制御ゲート線にわずかな漏れ電流を示すか又は漏れ電流を示さない。
【背景技術】
【0003】
人工ニューラルネットワークは、生物学的ニューラルネットワーク(動物の中枢神経系、特に脳)を模倣しており、多数の入力に依存し得、かつ、一般的に未知である関数を推定する又は近似するために使用される。人工ニューラルネットワークは、概して、メッセージを交換する相互接続した「ニューロン」の層を含む。
【0004】
図1は人工ニューラルネットワークを示しており、図中、円は、入力又はニューロンの層を表す。接続(シナプスと呼ばれる)は、矢印によって表され、経験に基づいてチューニングされ得る数値の重みを有する。これにより、ニューラルネットワークは入力に適応し、学習可能になる。典型的には、ニューラルネットワークは、複数の入力の層を含む。典型的には、1つ以上のニューロンの中間層、及びニューラルネットワークの出力を提供するニューロンの出力層が存在する。各レベルでニューロンは、シナプスから受信したデータに基づいて個々に又は集合的に決定を行う。
【0005】
高性能情報処理用の人工ニューラルネットワークの開発における主要な課題の1つは、適切なハードウェア技術の欠如である。実際には、実用ニューラルネットワークは、非常に多数のシナプスに依拠しており、これによりニューロン間の高い接続性、すなわち、非常に高度な計算処理の並列化が可能となる。原理的には、このような複雑性は、デジタルスーパーコンピュータ又は専用グラフィックプロセッシングユニットクラスタによって実現が可能である。しかしながら、高コストに加え、これらのアプローチはまた、生物学的ネットワークが主として低精度のアナログ計算を実施するのではるかに少ないエネルギーしか消費しないのと比較して、エネルギー効率が劣っていることに悩まされている。人工ニューラルネットワークにはCMOSアナログ回路が使用されてきたが、ほとんどのCMOS実装シナプスは、必要な多数のニューロン及びシナプスを前提とすると、嵩高過ぎていた。
【0006】
出願人は以前に、参照により組み込まれる米国特許公開第2017/0337466号として公開された米国特許出願第15/594,439号において、シナプスとして1つ以上の不揮発性メモリアレイを利用する人工(アナログ)ニューラルネットワークを開示した。不揮発性メモリアレイは、アナログニューラルメモリとして動作する。ニューラルネットワークデバイスは、第1の複数の入力を受信して、それから第1の複数の出力を生成するように構成されている第1の複数のシナプス、及び第1の複数の出力を受信するように構成された第1の複数のニューロンを含む。第1の複数のシナプスは複数のメモリセルを含み、各メモリセルは、半導体基板内に形成された、間にチャネル領域が延在している離間したソース領域及びドレイン領域と、チャネル領域の第1の部分の上方に配設され、チャネル領域の第1の部分から絶縁された浮遊ゲートと、チャネル領域の第2の部分の上方に配設され、チャネル領域の第2の部分から絶縁された非浮遊ゲートと、を含む。複数のメモリセルの各々は、浮遊ゲート上の多くの電子に対応する重み値を記憶するように構成されている。複数のメモリセルは、第1の複数の入力に、記憶された重み値を乗算して第1の複数の出力を生成するように構成される。
<不揮発性メモリセル>
【0007】
デジタル不揮発性メモリは周知である。例えば、参照により本明細書に組み込まれる米国特許第5,029,130号(「’130号特許」)は、フラッシュメモリセルの一種であるスプリットゲート不揮発性メモリセルのアレイを開示する。このようなメモリセル210を
図2に示す。各メモリセル210は、半導体基板12内に形成されたソース領域14とドレイン領域16と、を含み、ソース領域14とドレイン領域16の間にはチャネル領域18がある。浮遊ゲート20は、チャネル領域18の第1の部分の上方に絶縁されて形成され(並びに、チャネル領域18の第1の部分の導電性を制御して)、ソース領域14の一部分の上方にかけて形成される。ワード線端子22(典型的には、ワード線に結合される)は、チャネル領域18の第2の部分の上方に配設され、チャネル領域18の第2の部分から絶縁された、(並びに、チャネル領域18の第2の部分の導電性を制御する)第1の部分と、浮遊ゲート20の上方で上に延在する第2の部分と、を有する。浮遊ゲート20及びワード線端子22は、ゲート酸化物によって基板12から絶縁される。ビット線端子24はドレイン領域16に結合される。
【0008】
ワード線端子22に高圧正電圧を印加することによって、メモリセル210に対して消去が行われ(電子が浮遊ゲートから除去される)、これによって、浮遊ゲート20の電子は、浮遊ゲート20からワード線端子22までそれらの間にある絶縁体の中をファウラーノルドハイム(Fowler-Nordheim)トンネリングを介して通過する。
【0009】
メモリセル210は、ワード線端子22に正電圧、及びソース領域14に正電圧を印加することによってプログラムされる(電子が浮遊ゲートに印加される)。電子電流は、ソース領域14(ソース線端子)からドレイン領域16に向かって流れる。電子は加速し、ワード線端子22と浮遊ゲート20との間の間隙に達すると、発熱する。熱せられた電子の一部が、浮遊ゲート20からの静電引力に起因して、浮遊ゲート20にゲート酸化物を介して注入される。
【0010】
メモリセル210は、ドレイン領域16及びワード線端子22に正の読み出し電圧を印加する(ワード線端子の下方のチャネル領域18の部分をオンにする)ことによって、読み出される。浮遊ゲート20が正に帯電する(すなわち、電子を消去する)と、浮遊ゲート20の下方のチャネル領域18の部分も同様にオンになり、電流はチャネル領域18を流れ、これは、消去された状態つまり「1」の状態として検知される。浮遊ゲート20が負に帯電する(すなわち、電子でプログラムされる)と、浮遊ゲート20の下方のチャネル領域の部分はほとんど又は完全にオフになり、電流はチャネル領域18を流れず(又はほとんど流れず)、これは、プログラムされた状態つまり「0」の状態として検知される。
【0011】
表1は、読み出し、消去、及びプログラム動作を実行するためのメモリセル110の端子に印加され得る典型的な電圧範囲を示す。
【表1】
「読み出し1」は、セル電流がビット線に出力される読み出しモードである。「読み出し2」は、セル電流がソース線端子に出力される読み出しモードである。
【0012】
図3は、制御ゲート(control gate、CG)端子28を追加した、
図2のメモリセル210と同様のメモリセル310を示す。制御ゲート端子28は、プログラミング中に高電圧(例えば、10V)、消去中に低又は負電圧(例えば、0v/-8V)、読み出し中に低又は中程度電圧(例えば、0v/2.5V)でバイアスされる。他の端子は、
図2の端子と同様にバイアスされる。
【0013】
図4は、ソース領域14と、ドレイン領域16と、チャネル領域18の第1の部分の上方にある浮遊ゲート20と、チャネル領域18の第2の部分の上方にある選択ゲート22(典型的には、ワード線、WL、に結合される)と、浮遊ゲート20の上方にある制御ゲート28と、ソース領域14の上方にある消去ゲート30と、を備える、4ゲートメモリセル410を示す。この構成は、あらゆる目的のため参照により本明細書に組み込まれる、米国特許第6,747,310号に記載されている。ここで、全てのゲートは、浮遊ゲート20を除いて、非浮遊ゲートであり、つまり、それらは電圧源に電気的に接続される又は接続可能である。プログラミングは、熱せられた電子がチャネル領域18から浮遊ゲート20にその電子自体を注入することによって実行される。消去は、電子が浮遊ゲート20から消去ゲート30へトンネリングすることによって実行される。
【0014】
表2は、読み出し、消去、及びプログラム動作を実行するためのメモリセル310の端子に印加され得る典型的な電圧範囲を示す。
【表2】
「読み出し1」は、セル電流がビット線に出力される読み出しモードである。「読み出し2」は、セル電流がソース線端子に出力される読み出しモードである。
【0015】
図5は、メモリセル510が消去ゲート(erase gate、EG)端子を含まないことを除いて、
図4のメモリセル410と同様のメモリセル510を示す。消去は、基板18を高電圧にバイアスし、制御ゲートCG端子28を低電圧又は負電圧にバイアスすることによって行われる。代替的に、ワード線端子22を正電圧にバイアスし、制御ゲート端子28を負電圧にバイアスすることによって、消去が行われる。プログラミング及び読み出しは、
図4のものと同様である。
【0016】
図6は、別の種類のフラッシュメモリセルである、3ゲートメモリセル610を示す。メモリセル610は、メモリセル610が別個の制御ゲート端子を有しないことを除いて、
図4のメモリセル410と同一である。(消去ゲート端子の使用を通じて消去が起こる)消去動作及び読み出し動作は、制御ゲートバイアスが印加されないことを除いて、
図4のものと同様である。プログラミング動作もまた、制御ゲートバイアスなしで行われるため、結果として、プログラム動作中は、制御ゲートバイアスの不足を補償するため、より高い電圧がソース線端子に印加されなければならない。
【0017】
表3は、読み出し、消去、及びプログラム動作を実行するためのメモリセル610の端子に印加され得る典型的な電圧範囲を示す。
【表3】
「読み出し1」は、セル電流がビット線に出力される読み出しモードである。「読み出し2」は、セル電流がソース線端子に出力される読み出しモードである。
【0018】
図7は、別の種類のフラッシュメモリセルである、積層ゲートメモリセル710を示す。メモリセル710は、浮遊ゲート20がチャネル領域18全体の上方にわたって延在し、制御ゲート端子22(ワード線に結合される)が絶縁層(図示せず)によって分離されて浮遊ゲート20の上方に延在することを除いて、
図2のメモリセル210と同様である。消去、プログラミング、及び読み出し動作は、メモリセル210について前述したものと同様の方法で動作する。
【0019】
表4は、読み出し、消去、及びプログラム動作を実行するためのメモリセル710及び基板12の端子に印加され得る典型的な電圧範囲を示す。
【表4】
【0020】
「読み出し1」は、セル電流がビット線に出力される読み出しモードである。「読み出し2」は、セル電流がソース線端子に出力される読み出しモードである。任意選択的に、メモリセル210、310、410、510、610、又は710の行及び列を含むアレイでは、ソース線は、メモリセルの1行又はメモリセルの隣接する2行に結合され得る。すなわち、ソース線端子は、メモリセルの隣接する行によって共有され得る。
【0021】
上記の人工ニューラルネットワークにおける不揮発性メモリセルの種類のうちの1つを含むメモリアレイを利用するために、2つの修正が行われる。第1に、以下に更に説明されるように、アレイ内の他のメモリセルのメモリ状態に悪影響を与えずに各メモリセルを個々にプログラム、消去、及び読み出しできるように線を構成する。第2に、メモリセルの連続(アナログ)プログラミングを提供する。
【0022】
具体的には、アレイ内の各メモリセルのメモリ状態(すなわち、浮遊ゲート上の電荷)を、完全に消去された状態から完全にプログラムされた状態へ、独立して、かつ他のメモリセルの乱れが最小で、連続的に変えることができる。別の実施形態では、アレイ内の各メモリセルのメモリ状態(すなわち、浮遊ゲートの電荷)を、完全にプログラムされた状態から完全に消去された状態へ、及び逆もまた同様に、独立して、かつ他のメモリセルの乱れが最小で、連続的に変えることができる。これはつまり、セル記憶がアナログであるか、又は多数の不連続値(16個又は64個の異なる値など)のうちの1つを最低限記憶することができることを意味し、これにより、メモリアレイ内の全てのセルが非常に正確に、かつ個々にチューニング可能となり、また、メモリアレイが、記憶、及びニューラルネットワークのシナプシスの重みへの微細チューニング調整に対して、理想的なものになる。
【0023】
本明細書に記載される方法及び手段は、限定することなく、SONOS(silicon-oxide-nitride-oxide-silicon,charge trap in nitride)(ケイ素-酸化物-窒化物-酸化物-ケイ素、窒化物中の電荷トラップ)、MONOS(metal-oxide-nitride-oxide-silicon,metal charge trap in nitride)(金属-酸化物-窒化物-酸化物-ケイ素、窒化物中の金属電荷トラップ)、ReRAM(resistive ram)(抵抗変化型メモリ)、PCM(phase change memory)(相変化メモリ)、MRAM(magnetic ram),(磁気抵抗メモリ)、FeRAM(ferroelectric ram)(強誘電体メモリ)、OTP(bi-level or multi-level one time programmable)(バイレベル又はマルチレベルの1回のみのプログラムが可能)及びCeRAM(correlated electron ram)(強相関電子メモリ)などの他の不揮発性メモリ技術に適用することができる。本明細書に記載される方法及び手段は、限定することなく、SRAM、DRAM、及び揮発性シナプスセルなどのニューラルネットワークに使用される揮発性メモリ技術に適用することができる。
<不揮発性メモリセルアレイを使用するニューラルネットワーク>
【0024】
図8は、本実施形態の不揮発性メモリアレイを利用するニューラルネットワークの非限定例を概念的に示す。この例は、顔認識アプリケーション用に不揮発性メモリアレイニューラルネットワークを使用するが、不揮発性メモリアレイベースのニューラルネットワークを使用して他の適切なアプリケーションを実装することも可能である。
【0025】
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の異なる特徴マップを生成する。
【0026】
本例では、層C1において、各々30×30ピクセルを有する16個の特徴マップが存在する。各ピクセルは、入力とカーネルとの乗算から抽出された新しい特徴ピクセルであり、したがって、各特徴マップは、2次元アレイであり、したがってこの例では、層C1は、2次元アレイの16層を構成する(本明細書で言及される層及びアレイは、必ずしも物理的関係ではなく論理的な関係であり、すなわち、アレイは必ずしも物理的な2次元アレイに配向されないことに留意されたい)。層C1内の16個の特徴マップの各々は、フィルタスキャンに適用される異なるシナプス重みのセット16個のうちの1つによって生成される。C1特徴マップは全て、境界同定など、同じ画像特徴の異なる態様を対象とすることができる。例えば、第1のマップ(この第1のマップを生成するために使用される全てのスキャンに共有される第1の重みセットを使用して生成される)は、円形エッジを識別することができ、第2のマップ(第1の重みセットと異なる第2の重みセットを使用して生成される)は、方形エッジ又は特定の特徴のアスペクト比などを識別することができる。
【0027】
層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個のニューロンを含み、ここで出力が最も高いニューロンが、クラス(分類)を決定する。この出力は、例えば、元の画像の内容の同定又は分類を示すことができる。
【0028】
シナプスの各層は、不揮発性メモリセルのアレイ又はアレイの一部を使用して実装される。
【0029】
図9は、その目的のために使用可能なシステムのブロック図である。ベクトル行列乗算(Vector-by-matrix multiplication、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の出力をデコードすることができる。
【0030】
VMMアレイ33は、2つの目的を果たす。第1に、VMMシステム32によって使用される重みを記憶する。第2に、VMMアレイ33は、効果的に、入力に、VMMアレイ33に記憶された重みを乗算し、それらを出力線(ソース線又はビット線)ごとに合計して出力を生成し、これは、次の層への入力又は最後の層への入力になる。乗算及び加算の関数を実行することによって、VMMアレイ33は、別個の乗算及び加算の論理回路の必要性をなくし、また、その場でのメモリ計算により電力効率も良い。
【0031】
VMMアレイ33の出力は、VMMアレイ33の出力を合計してその畳み込み用の単一の値を作成する、差動加算器(加算オペアンプ又は加算電流ミラーなど)38に供給される。差動加算器38は、正の重み入力及び負の重み入力両方の総和を実行して単一の値を出力するように配置される。
【0032】
差動加算器38の合計された出力値は、次に出力を整流する活性化関数回路39に供給される。活性化関数回路39は、シグモイド関数、tanh関数、ReLU関数、又は任意の他の非線形関数を提供し得る。活性化関数回路39の整流された出力値は、次の層(例えば
図8のC1)の特徴マップの要素になり、次いで、次のシナプスに適用されて、次の特徴マップ層又は最後の層を生成する。したがって、この例では、VMMアレイ33は、複数のシナプス(それは、ニューロンの前の層から、又は画像データベースなどの入力層から、入力を受信する)を構成し、加算器38及び活性化関数回路39は、複数のニューロンを構成する。
【0033】
図9のVMMシステム32への入力(WLx、EGx、CGx、及び任意選択的にBLx及びSLx)は、アナログレベル、バイナリレベル、デジタルパルス(この場合、パルスを適切な入力アナログレベルに変換するためにパルス-アナログ変換器PACが必要とされ得る)又はデジタルビット(この場合、デジタルビットを適切な入力アナログレベルに変換するためにDACが提供される)であり得、出力は、アナログレベル、バイナリレベル、デジタルパルス、又はデジタルビットであり得る(この場合、出力アナログレベルをデジタルビットに変換するために出力ADCが提供される)。
【0034】
図10は、図中でVMMシステム32a、32b、32c、32d及び32eとして標示されたVMMシステム32の多数の層の使用を示すブロック図である。
図10に示されるように、Inputxで示される入力は、デジタル-アナログ変換器31によってデジタルからアナログに変換され、入力VMMシステム32aに提供される。変換されたアナログ入力は、電圧又は電流であり得る。第1の層の入力D/A変換は、入力VMMシステム32aの行列乗算器の適切なアナログレベルに入力Inputxをマッピングする関数又はLUT(ルックアップテーブル)を使用することによって行うことができる。入力変換はまた、外部アナログ入力を入力VMMシステム32aへのマッピングされたアナログ入力に変換するように、アナログ-アナログ(analog to analog、A/A)変換器によって行うこともできる。入力変換はまた、外部デジタル入力を入力VMMシステム32aへのマッピングされたデジタルパルスに変換するように、デジタル-デジタルパルス(digital-to-digital pules、D/P)変換器によって行うこともできる。
【0035】
入力VMMシステム32aによって生成された出力は、次に、次のVMMシステム(隠しレベル1)32bへの入力として提供され、次に、次のVMMシステム32bが、さらにその次の入力VMMシステム(隠しレベル2)32cへの入力として提供される出力を生成する、などとなる。VMMシステム32の様々な層は、畳み込みニューラルネットワーク(convolutional neural network、CNN)のシナプス及びニューロンの各層として機能する。VMMシステム32a、32b、32c、32d及び32eはそれぞれスタンドアローンの物理的不揮発性メモリアレイとすることができ、又は複数のVMMアレイは、同じ物理的不揮発性メモリアレイの異なる部分を利用することができ、又は複数のVMMシステムは、同じ物理的不揮発性メモリシステムの重なり合う部分を利用することができる。各VMMシステム32a、32b、32c、32d、及び32eはまた、そのアレイ又はニューロンの様々な部分に対して時間多重化され得る。
図10に示される例は、5つの層(32a、32b、32c、32d、32e)、すなわち、1つの入力層(32a)、2つの隠れ層(32b、32c)、及び2つの全結合層(32d、32e)を含む。当業者であれば、これは単なる例示であり、代わりにシステムが2つを超える隠れ層及び2つを超える完全に接続された層を含み得ることを理解するであろう。
<VMMアレイ>
【0036】
図11は、
図3に示されるメモリセル310に特に適しており、かつ入力層と次の層との間でシナプス及びニューロンの一部として利用される、ニューロンVMMアレイ1100を示す。VMMアレイ1100は、不揮発性メモリセルのメモリアレイ1101と、不揮発性基準メモリセルの基準アレイ1102(アレイの頂部に位置する)と、を含む。代替的に、別の基準アレイが底部に位置することができる。
【0037】
VMMアレイ1100では、制御ゲート線1103などの制御ゲート線が垂直方向に延びており(したがって、行方向の基準アレイ1102が制御ゲート線1103に直交する)、消去ゲート線1104などの消去ゲート線が水平方向に延びている。ここで、VMMアレイ1100への入力は制御ゲート線(CG0、CG1、CG2、CG3)に提供され、VMMアレイ1100の出力はソース線(SL0、SL1)に現れる。一実施形態では偶数行のみが使用され、別の実施形態では奇数行のみが使用される。各ソース線(それぞれSL0、SL1)に加えられる電流は、その特定のソース線に接続されたメモリセルからの全ての電流の合計関数を実行する。
【0038】
ニューラルネットワークについて本明細書に記載されているように、VMMアレイ1100の不揮発性メモリセル、すなわちVMMアレイ1100のフラッシュメモリは、サブスレッショルド領域で動作するように構成されることが好ましい。
【0039】
本明細書に記載される不揮発性基準メモリセル及び不揮発性メモリセルは、以下のように弱い反転でバイアスされる:
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はそれぞれ、メモリセルの幅及び長さである。
【0040】
メモリセル(基準メモリセル又は周辺メモリセルなど)又はトランジスタを使用して入力電流Idsを入力電圧Vgに変換するI-Vログ変換器を使用した場合、Vgは以下のとおりである:
Vg=n*Vt*log[Ids/wp*Io]
式中、wpは、基準又は周辺メモリセルのwである。
【0041】
ベクトル行列乗算器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はメイン(データ)メモリセルの有効スレッショルド電圧である。トランジスタのスレッショルド電圧は基板本体バイアス電圧の関数であり、Vsbと表される基板本体バイアス電圧は、そのような温度で様々な条件を補償するように変調され得ることに留意されたい。スレッショルド電圧Vthは次のように表すことができる。
Vth=Vth0+ガンマ(SQRT|Vsb-2*ΦF)-SQRT|2*ΦF|)
式中、Vth0は、ゼロ基板バイアスを有するスレッショルド電圧であり、ΦFは、表面電位であり、ガンマは、本体効果パラメータである。
【0042】
ワード線又は制御ゲートは、入力電圧のためのメモリセルの入力として使用することができる。
【0043】
代替的に、本明細書に記載されたVMMアレイの不揮発性メモリセルは、線形領域で動作するように構成することができる。
Ids=ベータ*(Vgs-Vth)*Vds; ベータ=u*Cox*Wt/L
したがって、W α (Vgs-Vth)、すなわち、線形領域における重みWは、(Vgs-Vth)に比例する。
【0044】
ワード線又は制御ゲート又はビット線又はソース線は、線形領域内で動作するメモリセルの入力として使用することができる。ビット線又はソース線は、メモリセルの出力として使用することができる。
【0045】
I-V線形変換器用に、線形領域で動作するメモリセル(基準メモリセル又は周辺メモリセルなど)若しくはトランジスタ、又は抵抗器を使用して、入出力電流を入出力電圧に線形変換することができる。
【0046】
あるいは、本明細書に記載されたVMMアレイのフラッシュメモリセルは、飽和領域で動作するように構成することができる。
Ids=1/2*ベータ*(Vgs-Vth)2; ベータ=u*Cox*Wt/L
したがって、W α (Vgs-Vth)2、すなわち、飽和領域における重みWは、(Vgs-Vth)2に比例する。
【0047】
ワード線、制御ゲート、又は消去ゲートは、飽和領域内で動作するメモリセルの入力として使用することができる。ビット線又はソース線は、出力ニューロンの出力として使用することができる。
【0048】
代替的に、本明細書に記載されるVMMアレイのメモリセルは、全ての領域又はそれらの組み合わせ(サブスレッショルド、線形、又は飽和)で使用することができる。
【0049】
図9のVMMアレイ32のための他の実施形態は、参照により本明細書に組み込まれる米国特許出願第15/826,345号に記載されている。上記出願に記載されているように、ソース線又はビット線は、ニューロン出力(電流和出力)として使用することができる。
【0050】
図12は、
図2に示されるメモリセル210に特に適しており、かつ入力層と次の層との間のシナプスとして利用される、ニューロンVMMアレイ1200を示す。VMMアレイ1200は、不揮発性メモリセルのメモリアレイ1203と、第1の不揮発性基準メモリセルの基準アレイ1201と、第2の不揮発性基準メモリセルの基準アレイ1202と、を含む。アレイの列方向に配置された基準アレイ1201及び1202は、端子BLR0、BLR1、BLR2、及びBLR3に流入する電流入力を電圧入力WL0、WL1、WL2、及びWL3に変換するように機能する。実際には、第1及び第2の不揮発性基準メモリセルは、電流入力が流入する状態で、マルチプレクサ1214(一部のみ示す)を通してダイオード接続される。基準セルは、目標基準レベルにチューニング(例えば、プログラム)される。目標基準レベルは、基準ミニアレイ行列(図示せず)によって提供される。
【0051】
メモリアレイ1203は、2つの目的を果たす。第1に、VMMアレイ1200により使用される重みを、それぞれのメモリセルに記憶する。第2に、メモリアレイ1203は、メモリアレイ1203に記憶された重みによって、入力(すなわち、端子BLR0、BLR1、BLR2、及びBLR3に提供された電流入力であり、これを基準アレイ1201及び1202が入力電圧に変換して、ワード線WL0、WL1、WL2、及びWL3に供給する)を有効に乗算して、次いで、全ての結果(メモリセル電流)を加算して、それぞれのビット線(BL0~BLN)の出力を生成し、この出力は次の層への入力又は最後の層への入力となる。メモリアレイ1203が乗算及び加算の関数を実行することで、別個の乗算及び加算の論理回路の必要性はなくなり、また、電力効率も良い。ここで、電圧入力はワード線WL0、WL1、WL2、及びWL3に提供され、出力は、読み出し(推論)動作中にそれぞれのビット線BL0~BLNに現れる。各々のビット線BL0~BLNに配置された電流は、その特定のビット線に接続された全ての不揮発性メモリセルからの電流の合計関数を実行する。
【0052】
表5は、VMMアレイ1200の動作電圧を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルのソース線、及び非選択セルのソース線に加えられる電圧を示し、FLTは、浮遊、すなわち電圧が印加されないことを示す。行は、読み出し、消去、及びプログラムの動作を示す。
【表5】
【0053】
図13は、
図2に示されるメモリセル210に特に適しており、かつ入力層と次の層との間でシナプス及びニューロンの一部として利用される、ニューロンVMMアレイ1300を示す。VMMアレイ1300は、不揮発性メモリセルのメモリアレイ1303と、第1の不揮発性基準メモリセルの基準アレイ1301と、第2の不揮発性基準メモリセルの基準アレイ1302と、を含む。基準アレイ1301及び1302は、VMMアレイ1300の行方向に延びる。VMMアレイは、VMMアレイ1300においてワード線が垂直方向に延びることを除いて、VMM1000と同様である。ここで、入力はワード線(WLA0、WLB0、WLA1、WLB2、WLA2、WLB2、WLA3、WLB3)に提供され、出力は、読み出し動作中にソース線(SL0、SL1)に現れる。各ソース線に加えられる電流は、その特定のソース線に接続されたメモリセルからの全ての電流の合計関数を実行する。
【0054】
表6は、VMMアレイ1300の動作電圧を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルのソース線、及び非選択セルのソース線に加えられる電圧を示す。行は、読み出し、消去、及びプログラムの動作を示す。
【表6】
【0055】
図14は、
図3に示されるメモリセル310に特に適しており、かつ入力層と次の層との間でシナプス及びニューロンの一部として利用される、ニューロンVMMアレイ1400を示す。VMMアレイ1400は、不揮発性メモリセルのメモリアレイ1403と、第1の不揮発性基準メモリセルの基準アレイ1401と、第2の不揮発性基準メモリセルの基準アレイ1402と、を含む。基準アレイ1401及び1402は、端子BLR0、BLR1、BLR2、及びBLR3に流入する電流入力を電圧入力CG0、CG1、CG2、及びCG3に変換するように機能する。実際には、第1及び第2の不揮発性基準メモリセルは、電流入力がBLR0、BLR1、BLR2、及びBLR3を通って流入する状態で、マルチプレクサ1412(一部のみ示す)を通してダイオード接続される。マルチプレクサ1412は各々、読み出し動作中に第1及び第2の不揮発性基準メモリセルの各々のビット線(BLR0など)の一定電圧を確実にするために、それぞれのマルチプレクサ1405及びカスコーディングトランジスタ1404を含む。基準セルは、目標基準レベルにチューニングされる。
【0056】
メモリアレイ1403は、2つの目的を果たす。第1に、それはVMMアレイ1400によって使用される重みを記憶する。第2に、メモリアレイ1403は、入力(端子BLR0、BLR1、BLR2、及びBLR3に提供された電流入力であり、基準アレイ1401及び1402がこれらの電流入力を入力電圧に変換して、制御ゲート(CG0、CG1、CG2、及びCG3)に供給する)に、メモリセルアレイに記憶された重みを掛けて、次いで、全ての結果(セル電流)を加算して出力を生成し、この出力はBL0~BLNに現れ、次の層への入力又は最後の層への入力となる。メモリアレイが乗算及び加算の関数を実行することで、別個の乗算及び加算の論理回路の必要性がなくなり、また、電力効率も良い。ここで、入力は制御ゲート線(CG0、CG1、CG2、及びCG3)に提供され、出力は、読み出し動作中にビット線(BL0~BLN)に現れる。各ビット線に加えられる電流は、その特定のビット線に接続されたメモリセルからの全ての電流の合計関数を実行する。
【0057】
VMMアレイ1400は、メモリアレイ1403内の不揮発性メモリセルの一方向チューニングを実装する。すなわち、各不揮発性メモリセルは消去され、次いで、浮遊ゲート上の所望の電荷に達するまで部分的にプログラムされる。これは、例えば、以下に記載される精密プログラミング技術を使用して実行することができる。過度に多くの電荷が浮遊ゲートに加えられる場合(その場合は誤った値がセルに記憶される)、セルは消去されなければならず、一連の部分的なプログラミング動作をやり直さなければならない。示されるように、同じ消去ゲート(EG0又はEG1など)を共有する2つの行は、一緒に消去される必要があり(ページ消去として知られる)、その後、各セルは、浮遊ゲート上の所望の電荷に達するまで部分的にプログラムされる。
【0058】
表7は、VMMアレイ1400の動作電圧を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルの制御ゲート、選択セルと同じセクタ内の非選択セルの制御ゲート、選択セルとは異なるセクタ内の非選択セルの制御ゲート、選択セルの消去ゲート、非選択セルの消去ゲート、選択セルのソース線、及び非選択セルのソース線に加えられる電圧を示す。行は、読み出し、消去、及びプログラムの動作を示す。
【表7】
【0059】
図15は、
図3に示されるメモリセル310に特に適しており、かつ入力層と次の層との間でシナプス及びニューロンの一部として利用される、ニューロンVMMアレイ1500を示す。VMMアレイ1500は、不揮発性メモリセルのメモリアレイ1503と、基準アレイ1501又は第1の不揮発性基準メモリセルと、第2の不揮発性基準メモリセルの基準アレイ1502と、を備える。EG線EGR0、EG0、EG1、及びEGR1は垂直に延び、CG線CG0、CG1、CG2、及びCG3並びにSL線WL0、WL1、WL2、及びWL3は水平に延びる。VMMアレイ1500は、VMMアレイ1500が双方向チューニングを実装することを除いてVMMアレイ1400と同様であり、各個々のセルは、個別のEG線の使用により、浮遊ゲートの所望の電荷量に達するために、完全に消去され、部分的にプログラムされ、必要に応じて部分的に消去することができる。示されるように、基準アレイ1501及び1502は、端子BLR0、BLR1、BLR2及びBLR3内の入力電流を制御ゲート電圧CG0、CG1、CG2及びCG3に変換し(マルチプレクサ1514を介したダイオード接続された基準セルの作用を通じて)、これらの電圧は行方向でメモリセルに印加される。電流出力(ニューロン)は、ビット線BL0~BLN中にあり、各ビット線は、その特定のビット線に接続された不揮発性メモリセルからの全ての電流を合計する。
【0060】
表8は、VMMアレイ1500の動作電圧を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルの制御ゲート、選択セルと同じセクタ内の非選択セルの制御ゲート、選択セルとは異なるセクタ内の非選択セルの制御ゲート、選択セルの消去ゲート、非選択セルの消去ゲート、選択セルのソース線、及び非選択セルのソース線に加えられる電圧を示す。行は、読み出し、消去、及びプログラムの動作を示す。
【表8】
【0061】
図24は、
図2に示されるメモリセル210に特に適しており、かつ入力層と次の層との間でシナプス及びニューロンの一部として利用される、ニューロンVMMアレイ2400を示す。VMMアレイ2400では、入力INPUT
0、...、INPUT
Nは、ビット線BL
0、...、BL
Nでそれぞれ受信され、出力OUTPUT
1、OUTPUT
2、OUTPUT
3、及びOUTPUT
4は、ソース線SL
0、SL
1、SL
2、及びSL
3でそれぞれ生成される。
【0062】
図25は、
図2に示されるメモリセル210に特に適しており、かつ入力層と次の層との間でシナプス及びニューロンの一部として利用される、ニューロンVMMアレイ2500を示す。この例では、入力INPUT
0、INPUT
1、INPUT
2、及びINPUT
3は、ソース線SL
0、SL
1、SL
2、及びSL
3でそれぞれ受信され、出力OUTPUT
0、...、OUTPUT
Nは、ビット線BL
0、...、BL
Nで生成される。
【0063】
図26は、
図2に示されるメモリセル210に特に適しており、かつ入力層と次の層との間でシナプス及びニューロンの一部として利用される、ニューロンVMMアレイ2600を示す。この例では、入力INPUT
0、...、INPUT
Mは、ワード線WL
0、...、WL
Mでそれぞれ受信され、出力OUTPUT
0、...、OUTPUT
Nは、ビット線BL
0、...、BL
Nで生成される。
【0064】
図27は、
図3に示されるメモリセル310に特に適しており、かつ入力層と次の層との間でシナプス及びニューロンの一部として利用される、ニューロンVMMアレイ2700を示す。この例では、入力INPUT
0、...、INPUT
Mは、ワード線WL
0、...、WL
Mでそれぞれ受信され、出力OUTPUT
0、...、OUTPUT
Nは、ビット線BL
0、...、BL
Nで生成される。
【0065】
図28は、
図4に示されるメモリセル410に特に適しており、かつ入力層と次の層との間でシナプス及びニューロンの一部として利用される、ニューロンVMMアレイ2800を示す。この例では、入力INPUT
0、...、INPUT
nがそれぞれ垂直制御ゲート線CG
0、...、CG
Nに受信され、出力OUTPUT
1及びOUTPUT
2がソース線SL
0及びSL
1に生成される。
【0066】
図29は、
図4に示されるメモリセル410に特に適しており、かつ入力層と次の層との間でシナプス及びニューロンの一部として利用される、ニューロンVMMアレイ2900を示す。この例では、入力INPUT
0、...、INPUT
Nは、ビット線BL
0、...、BL
Nにそれぞれ結合されているビット線制御ゲート2901-1、2901-2、...、2901-(N-1)及び2901-Nのゲートにそれぞれ受信される。例示的な出力OUTPUT
1及びOUTPUT
2が、ソース線SL
0及びSL
1に生成される。
【0067】
図30は、
図3に示されるメモリセル310、
図5に示されるメモリセル510、及び
図7に示されるメモリセル710に特に適しており、かつ入力層と次の層との間でシナプス及びニューロンの一部として利用される、ニューロンVMMアレイ3000を示す。この例では、入力INPUT
0、...、INPUT
Mは、ワード線WL
0、...、WL
Mに受信され、出力OUTPUT
0、...、OUTPUT
Nは、ビット線BL
0、...、BL
Nにそれぞれ生成される。
【0068】
図31は、
図3に示されるメモリセル310、
図5に示されるメモリセル510、及び
図7に示されるメモリセル710に特に適しており、かつ入力層と次の層との間でシナプス及びニューロンの一部として利用される、ニューロンVMMアレイ3100を示す。この例では、入力INPUT
0、...、INPUT
Mは、制御ゲート線CG
0、...、CG
Mに受信される。出力OUTPUT
0、...、OUTPUT
Nは、垂直ソース線SL
0、...、SL
Nにそれぞれ生成され、各ソース線SL
iは、列i内の全てのメモリセルのソース線に結合されている。
【0069】
図32は、
図3に示されるメモリセル310、
図5に示されるメモリセル510、及び
図7に示されるメモリセル710に特に適しており、かつ入力層と次の層との間でシナプス及びニューロンの一部として利用される、ニューロンVMMアレイ3200を示す。この例では、入力INPUT
0、...、INPUT
Mは、制御ゲート線CG
0、...、CG
Mに受信される。出力OUTPUT
0、...、OUTPUT
Nは、垂直ビット線BL
0、...、BL
Nにそれぞれ生成され、各ビット線BL
iは、列i内の全てのメモリセルのビット線に結合されている。
長・短期メモリ
【0070】
先行技術は、長・短期メモリ(long short-term memory、LSTM)として知られる概念を含む。LSTMユニットは、しばしば、ニューラルネットワーク内で使用される。LSTMによって、ニューラルネットワークは所定の任意の期間にわたって情報を記憶し、後続の動作においてその情報を使用することができる。従来のLSTMユニットは、セル、入力ゲート、出力ゲート、及び忘却ゲートを含む。3つのゲートは、セル内及びセル外への情報の流れ、及び情報がLSTM内で記憶される期間を調節する。VMMは、LSTMユニットにおいて特に有用である。
【0071】
図16は、例示的なLSTM1600を示す。この例におけるLSTM1600は、セル1601、1602、1603、及び1604を含む。セル1601は、入力ベクトルx
0を受け取り、出力ベクトルh
0及びセル状態ベクトルc
0を生成する。セル1602は、入力ベクトルx
1と、セル1601からの出力ベクトル(隠れ状態)h
0と、セル1601からのセル状態c
0と、を受け取り、出力ベクトルh
1と、セル状態ベクトルc
1と、を生成する。セル1603は、入力ベクトルx
2と、セル1602からの出力ベクトル(隠れ状態)h
1と、セル1602からのセル状態c
1と、を受け取り、出力ベクトルh
2と、セル状態ベクトルc
2と、を生成する。セル1604は、入力ベクトルx
3と、セル1603からの出力ベクトル(隠れ状態)h
2と、セル1603からのセル状態c
2と、を受け取り、出力ベクトルh
3を生成する。追加のセルも使用可能であり、4つのセルを有するLSTMは、単なる例である。
【0072】
図17は、
図16のセル1601、1602、1603、及び1604に使用可能なLSTMセル1700の例示的な実装を示す。LSTMセル1700は、入力ベクトルx(t)と、先行するセルからのセル状態ベクトルc(t-1)と、先行するセルからの出力ベクトルh(t-1)と、を受け取り、セル状態ベクトルc(t)及び出力ベクトルh(t)を生成する。
【0073】
LSTMセル1700は、シグモイド関数デバイス1701、1702、及び1703を含み、各々が0~1の数を適用することで、入力ベクトルの各成分が出力ベクトルに寄与する程度を制御する。LSTMセル1700はまた、入力ベクトルに双曲線正接関数を適用するためのtanhデバイス1704及び1705と、2つのベクトルを乗算するための乗算器デバイス1706、1707、及び1708と、2つのベクトルを加算するための加算器デバイス1709と、を含む。出力ベクトルh(t)は、システム内の次のLSTMセルに提供することができるか、又は他の目的でアクセスすることができる。
【0074】
図18は、LSTMセル1700の一実装の一例であるLSTMセル1800を示す。読者の便宜のために、LSTMセル1700からの同じ採番方法が、LSTMセル1800で使用される。シグモイド関数デバイス1701、1702、及び1703、並びにtanhデバイス1704は各々、複数のVMMアレイ1801及び活性化回路ブロック1802を含む。したがって、VMMアレイは、特定のニューラルネットワークシステムで使用されるLSTMセルにおいて特に有用であることが分かる。乗算器デバイス1706、1707、及び1708、並びに加算器デバイス1709は、デジタル方式又はアナログ方式で実装される。活性化関数ブロック1802は、デジタル方式、又はアナログ方式で実装され得る。
【0075】
LSTMセル1800の代替例(及びLSTMセル1700の一実装の別の例)を
図19に示す。
図19では、シグモイド関数デバイス1701、1702及び1703、並びにtanhデバイス1704は、同じ物理ハードウェア(VMMアレイ1901及び活性化関数ブロック1902)を、時分割多重化された方式で共有する。LSTMセル1900はまた、2つのベクトルを乗算するための乗算器デバイス1903と、2つのベクトルを加算するための加算器デバイス1908と、(活性化回路ブロック1902を含む)tanhデバイス1705と、値i(t)を、i(t)がシグモイド関数ブロック1902から出力されるときに記憶するためのレジスタ1907と、値f(t)
*c(t-1)を、その値がマルチプレクサ1910を介して乗算器デバイス1903から出力されるときに記憶するためのレジスタ1904と、値i(t)
*u(t)を、その値がマルチプレクサ1910を介して乗算器デバイス1903から出力されるときに記憶するためのレジスタ1905と、値o(t)
*c~(t)を、その値がマルチプレクサ1910を介して乗算器デバイス1903から出力されるときに記憶するためのレジスタ1906と、マルチプレクサ1909と、を含む。
【0076】
LSTMセル1800がVMMアレイ1801とそれぞれの活性化関数ブロック1802との複数のセットを含むのに対し、LSTMセル1900は、LSTMセル1900の実施形態において複数の層を表すために使用される、VMMアレイ1901と活性化関数ブロック1902との1つのセットのみを含む。LSTMセル1900は、LSTMセル1800と比較して、VMM及び活性化関数ブロックのために必要とするスペースは1/4で済むので、LSTM1800よりも必要とするスペースが少ない。
【0077】
LSTMユニットは典型的には複数のVMMアレイを含み、これらは各々、加算器及び活性化回路ブロック及び高電圧生成ブロックなどの、VMMアレイの外側の特定の回路ブロックによって提供される機能を必要とすることを更に理解することができる。各VMMアレイのための別個の回路ブロックを提供することは、半導体デバイス内にかなりの量のスペースを必要とし、幾分非効率的であろう。
<ゲート付き回帰型ユニット>
【0078】
アナログVMM実装は、ゲート付き回帰型ユニット(gated recurrent unit、GRU)システムに利用することができる。GRUは、反復ニューラルネットワーク内のゲート機構である。GRUは、GRUセルが一般にLSTMセルよりも少ない構成要素を含むことを除いて、LSTMに類似している。
【0079】
図20は、例示的なGRU2000を示す。この例におけるGRU2000は、セル2001、2002、2003及び2004を含む。セル2001は、入力ベクトルx
0を受け取り、出力ベクトルh
0を生成する。セル2002は、入力ベクトルx
1と、セル2001からの出力ベクトルh
0と、を受け取り、出力ベクトルh
1を生成する。セル2003は、入力ベクトルx
2と、セル2002からの出力ベクトル(隠れ状態)h
1と、を受け取り、出力ベクトルh
2を生成する。セル2004は、入力ベクトルx
3と、セル2003からの出力ベクトル(隠れ状態)h
2と、を受け取り、出力ベクトルh
3を生成する。追加のセルも使用可能であり、4つのセルを有するGRUは単なる例である。
【0080】
図21は、
図20のセル2001、2002、2003、及び2004に使用することができるGRUセル2100の例示的な実装を示す。GRUセル2100は、入力ベクトルx(t)と、先行するGRUセルからの出力ベクトルh(t-1)と、を受け取り、出力ベクトルh(t)を生成する。GRUセル2100は、シグモイド関数デバイス2101及び2102を含み、それらの各々が、出力ベクトルh(t-1)及び入力ベクトルx(t)からの成分に0~1の数を適用する。GRUセル2100はまた、入力ベクトルに双曲線正接関数を適用するためのtanhデバイス2103と、2つのベクトルを乗算するための複数の乗算器デバイス2104、2105、及び2106と、2つのベクトルを加算するための加算器デバイス2107と、1から入力を減算して出力を生成するためのコンプリメンタリデバイス2108と、を含む。
【0081】
図22は、GRUセル2100の一実装の一例であるGRUセル2200を示す。読者の便宜のために、GRUセル2100からの同じ採番方法が、GRUセル2200で使用される。
図22から分かるように、シグモイド関数デバイス2101及び2102、並びにtanhデバイス2103は各々、複数のVMMアレイ2201及び活性化関数ブロック2202を含む。したがって、VMMアレイは、特定のニューラルネットワークシステムで使用されるGRUセルにおいて特に使用されることが分かる。乗算器デバイス2104、2105、2106、加算器デバイス2107、及びコンプリメンタリデバイス2108は、デジタル方式又はアナログ方式で実装される。活性化関数ブロック2202は、デジタル方式、又はアナログ方式で実装され得る。
【0082】
GRUセル2200の代替例(及びGRUセル2300の一実装の別の例)を
図23に示す。
図23において、GRUセル2300は、VMMアレイ2301及び活性化関数ブロック2302を利用しており、シグモイド関数として構成された場合には、0~1の数を適用して、入力ベクトルの各成分が出力ベクトルに寄与する程度を制御する。
図23では、シグモイド関数デバイス2101及び2102、並びにtanhデバイス2103は、同じ物理ハードウェア(VMMアレイ2301及び活性化関数ブロック2302)を、時分割多重化された方式で共有する。GRUセル2300はまた、2つのベクトルを乗算するための乗算器デバイス2303と、2つのベクトルを加算するための加算器デバイス2305と、1から入力を減算して出力を生成するための相補デバイス2309と、マルチプレクサ2304と、値h(t-1)
*r(t)を、その値がマルチプレクサ2304を介して乗算器デバイス2303から出力されるときに保持するためのレジスタ2306と、値h(t-1)
*z(t)を、その値がマルチプレクサ2304を介して乗算器デバイス2303から出力されるときに保持するためのレジスタ2307と、値h^(t)
*(1-z((t))を、その値がマルチプレクサ2304を介して乗算器デバイス2303から出力されるときに保持するためのレジスタ2308と、を備える。
【0083】
GRUセル2200がVMMアレイ2201と活性化関数ブロック2202との複数のセットを含むのに対し、GRUセル2300は、GRUセル2300の実施形態において複数の層を表すために使用される、VMMアレイ2301と活性化関数ブロック2302の1つのセットのみを含む。GRUセル2300は、GRUセル2200と比較して、VMM及び活性化関数ブロックのために必要とするスペースは1/3で済むので、GRUセル2200よりも必要とするスペースが少ない。
【0084】
GRUシステムは典型的には複数のVMMアレイを含み、これらは各々、加算器及び活性化回路ブロック及び高電圧生成ブロックなどの、VMMアレイの外側の特定の回路ブロックによって提供される機能を必要とすることが更に理解できる。各VMMアレイのための別個の回路ブロックを提供することは、半導体デバイス内にかなりの量のスペースを必要とし、幾分非効率的であろう。
【0085】
VMMアレイへの入力は、アナログレベル、バイナリレベル、又はデジタルビット(この場合、デジタルビットを適切な入力アナログレベルに変換するためにDACが必要とされる)であり、出力はアナログレベル、バイナリレベル、又はデジタルビット(この場合、出力アナログレベルをデジタルビットに変換するために出力ADCが必要とされる)であり得る。
【0086】
VMMアレイ内の各メモリセルに関して、各重みWは、単一のメモリセルによって、又は差分セルによって、又は2つのブレンドメモリセル(2つのセルの平均)によって実装することができる。差分セルの場合では、重みWを差分重み(W=W+-W-)として実装するために、2つのメモリセルが必要とされる。2つのブレンドメモリセルの場合は、2つのセルの平均として重みWを実装するために2つのメモリセルが必要とされる。
【0087】
アナログニューラルメモリシステムに使用されるそれぞれの不揮発性メモリセルは、消去・プログラムに対応して、浮遊ゲート内に電荷、すなわち電子の数、を非常に特異的かつ正確な量で保持しなければならない。例えば、各浮遊ゲートはN個の異なる値のうちの1つを保持しなければならず、ここで、Nは、各セルによって示され得る異なる重みの数である。Nの例としては、16、32、64、128及び256が挙げられる。
【0088】
ベクトル行列乗算(VMM)システムにおける1つの課題は、消去、プログラミング、及び読み出し操作のために、特定のセル又はセル群、又は場合によってはセルのアレイ全体を選択する能力である。関連する課題は、漏れがシステムの精度に悪影響を及ぼす可能性があるため、各セルにおける漏れを低減し、好ましくは最小限に抑えることである。
【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】
【0119】
【0120】
【0121】
【0122】
【0123】
【0124】
【0125】
【0126】
【0127】
【0128】
【0129】
【0130】
【0131】
【0132】
【0133】
【0134】
【0135】
【0136】
【0137】
【0138】
【0139】
【0140】
【0141】
【0142】
【0143】
【0144】
【図面の簡単な説明】
【0145】
【
図1】先行技術の人工ニューラルネットワークを示す図である。
【
図2】先行技術のスプリットゲートフラッシュメモリセルを示す。
【
図3】別の先行技術のスプリットゲートフラッシュメモリセルを示す。
【
図4】別の先行技術のスプリットゲートフラッシュメモリセルを示す。
【
図5】別の先行技術のスプリットゲートフラッシュメモリセルを示す。
【
図6】別の先行技術のスプリットゲートフラッシュメモリセルを示す。
【
図7】先行技術の積層ゲートフラッシュメモリセルを示す。
【
図8】1つ以上の不揮発性メモリアレイを利用する例示的な人工ニューラルネットワークの様々なレベルを示す図である。
【
図9】ベクトル行列乗算システムを示すブロック図である。
【
図10】1つ以上のベクトル行列乗算システムを利用する例示的な人工ニューラルネットワークを示すブロック図である。
【
図11】ベクトル行列乗算システムの別の実施形態を示す。
【
図12】ベクトル行列乗算システムの別の実施形態を示す。
【
図13】ベクトル行列乗算システムの別の実施形態を示す。
【
図14】ベクトル行列乗算システムの別の実施形態を示す。
【
図15】ベクトル行列乗算システムの別の実施形態を示す。
【
図17】長・短期記憶システムで使用する例示的なセルを示す。
【
図20】先行技術のゲート付き回帰型ユニットシステムを示す。
【
図21】ゲート付き回帰型ユニットシステムでの使用のための例示的なセルを示す。
【
図24】ベクトル行列乗算システムの別の実施形態を示す。
【
図25】ベクトル行列乗算システムの別の実施形態を示す。
【
図26】ベクトル行列乗算システムの別の実施形態を示す。
【
図27】ベクトル行列乗算システムの別の実施形態を示す。
【
図28】ベクトル行列乗算システムの別の実施形態を示す。
【
図29】ベクトル行列乗算システムの別の実施形態を示す。
【
図30】ベクトル行列乗算システムの別の実施形態を示す。
【
図31】ベクトル行列乗算システムの別の実施形態を示す。
【
図32】ベクトル行列乗算システムの別の実施形態を示す。
【
図33】ベクトル行列乗算システムの例示的なブロック図を示す。
【
図34】ベクトル行列乗算システムの例示的なデコードの実施形態を示す。
【
図35】ベクトル行列乗算システムの別の例示的なデコードの実施形態を示す。
【
図37】ベクトル行列乗算システムの別の例示的なデコードの実施形態を示す。
【
図38】ベクトル行列乗算システムの別の例示的なデコードの実施形態を示す。
【
図39】ベクトル行列乗算システムの別の例示的なデコードの実施形態を示す。
【
図41】組み合わせた低電圧行デコーダ及び制御ゲートデコーダの一実施形態を示す。
【
図43】ベクトル行列乗算システム及び入力ブロックを示す。
【
図44】アレイからの出力を受け取り、多重化された形式で1つ以上のアレイに入力を提供するためのマルチプレクサを示す。
【
図45A】ベクトル行列乗算システムの例示的なレイアウトを示す。
【
図45B】ベクトル行列乗算システムの例示的なレイアウトを示す。
【
図46】ベクトル行列乗算システムの例示的なレイアウトを示す。
【
図47】ベクトル乗算器行列との使用のためのワード線デコーダ回路、ソース線デコーダ回路、及び高電圧レベルシフタを示す。
【
図48】ベクトル乗算器行列との使用のための消去ゲートデコーダ回路、制御ゲートデコーダ回路、ソース線デコーダ回路、及び高電圧レベルシフタを示す。
【
図49】ベクトル乗算器行列との使用のためのワード線ドライバの別の実施形態を示す。
【
図50】ベクトル乗算器行列との使用のためのワード線ドライバの別の実施形態を示す。
【
図51A】ベクトル行列乗算システムの別の例示的なデコードの実施形態を示す。
【
図51B】ベクトル行列乗算システムの更に別の例示的なデコードの実施形態を示す。
【発明を実施するための形態】
【0146】
本発明の人工ニューラルネットワークは、CMOS技術及び不揮発性メモリアレイの組み合わせを利用する。
<VMMアレイのためのデコードシステム及び物理レイアウトの実施形態>
【0147】
図33~
図51は、
図2~
図7に関して、又は他の不揮発性メモリセルに関して前述したメモリセルの種類のいずれかとともに使用することができるVMMアレイのための様々なデコードシステム及び物理レイアウトを開示する。
【0148】
図33は、VMMシステム3300を示す。VMMシステム3300は、VMMアレイ3301(VMMアレイ1000、1100、1200、1300、1400、1500、2400、2500、2600、2700、2800、2900、3000、3100、及び3200、又は他のVMM設計など、前述のVMMアレイ設計のいずれかに基づくことができる)、低電圧行デコーダ3302、高電圧行デコーダ3303、列デコーダ3304、列ドライバ3305、制御論理3306、バイアス回路3307、ニューロン出力回路ブロック3308、入力VMM回路ブロック3309、アルゴリズムコントローラ3310、高電圧生成装置ブロック3311、アナログ回路ブロック3315、及び制御論理3316を備える。
【0149】
入力回路ブロック3309は、外部入力からメモリアレイ3301の入力端子へのインターフェースとして機能する。入力回路ブロック3309は、限定することなく、DAC(Digital-to-Analog Converter)(デジタル-アナログ変換器)、DPC(Digital-to-Pulse Converter)(デジタル-パルス変換器)、APC(Analog-to-Pulse Converter)(アナログ-パルス変換器)、IVC(Current-to-Voltage Converter)(電流-電圧変換器)、AAC(Analog-to-Analog Converter such as voltage to voltage scaler)(電圧対電圧スケーラなどのアナログ-アナログ変換器)、又はFAC(Frequency-to-Analog Converter)(周波数-アナログ変換器)を含むことができる。ニューロン出力ブロック3308は、メモリアレイ出力から外部インターフェース(図示せず)へのインターフェースとして機能する。ニューロン出力ブロック3308は、限定することなく、ADC(アナログ-デジタル変換器)、APC(アナログ-パルス変換器)、DPC(デジタル-パルス変換器)、IVC(電流-電圧変換器)、又はIFC(電流-周波数変換器)を含み得る。ニューロン出力ブロック3308は、限定することなく、アクティブ化機能、正規化回路、及び/又は再スケーリング回路を含んでもよい。
【0150】
低電圧行デコーダ3302は、読み出し動作及びプログラム動作のためのバイアス電圧を提供し、高電圧行デコーダ3303にデコード信号を提供する。高電圧行デコーダ3303は、プログラム動作及び消去動作のための高電圧バイアス信号を提供する。
【0151】
アルゴリズムコントローラ3310は、プログラム動作、検証動作、及び消去動作中のビット線の制御機能を提供する。
【0152】
高電圧発生装置ブロック3311は、様々なプログラム動作、消去動作、プログラム検証動作、及び読み出し動作に必要とされる複数の電圧を提供するチャージポンプ3312、チャージポンプ調整器3313、及び高電圧生成回路3314を備える。
【0153】
図34は、メモリセル410として
図4に示される種類のメモリセルとの使用に特に適したVMMシステム3400を示す。VMMシステム3400は、VMMアレイ3401、3402、3402、及び3404(それぞれ、VMMアレイ1000、1100、1200、1300、1400、1500、2400、2500、2600、2700、2800、2900、3000及び31000、又は他のVMMアレイ設計など、前述のVMMアレイ設計のいずれかに基づくことができる)、低電圧行デコーダ3405、3406、3407、及び3408、共有高電圧行デコーダ3409、ワード線又はワード入力線3411、3412、3413、及び3414、ビット線3421、3422、3423、及び3424、制御ゲート線3432、ソース線3434、並びに消去ゲート線3434を備える。共有高電圧行デコーダ3409は、制御ゲート線3432、ソース線3434、及び消去ゲート線3434を提供する。この構成では、ワード線3411、3412、3413、及び3414、並びにビット線3421、3422、3423、及び3424は互いに平行である。一実施形態では、ワード線及びビット線は、垂直方向に配置されている。制御ゲート線3432、ソース線線3434、及び消去ゲート線3436は、互いに並行であり、水平方向に配置されており、したがって、ワード線又はワード入力線3411、3412、3413、及び3414、並びにビット線3421、3422、3423、及び3424に垂直である。
【0154】
VMMシステム3400において、VMMアレイ3401、3402、3403、及び3404は、制御ゲート線3432、ソース線線3434、消去ゲート線3436、及び高電圧行デコーダ3409を共有する。しかしながら、アレイのそれぞれは、低電圧行デコーダ3405がVMMアレイ3401とともに使用され、低電圧行デコーダ3406がVMMアレイ3402とともに使用され、低電圧行デコーダ3407がVMMアレイ3403とともに使用され、低電圧行デコーダ3408がVMMアレイ3404とともに使用されるように、それ自体の低電圧行デコーダを有する。この構成に有利であるのは、ワード線3411、3412、3413、及び3414は、ワード線3411がVMMアレイ3401のみにルーティングされ得、ワード線3412がVMMアレイ3402のみにルーティングされ得、ワード線3413がVMMアレイ3403のみにルーティングされ得、ワード線3414がVMMアレイ3404のみにルーティングされ得るように、垂直方向に配置されているということである。こうしたことは、同じ高電圧デコーダ及び同じ高電圧デコード線を共有する複数のVMMアレイに関して、ワード線が水平方向に配置される従来のレイアウトでは非常に効率が悪くなるであろう。
【0155】
図35は、メモリセル410として
図4に示される種類のメモリセルとの使用に特に適したVMMシステム3500を示す。VMMシステム3500は、VMMシステム3500が読み出し動作及びプログラミング動作のための別個のワード線及び低電圧行デコーダを含むことを除いて、
図33のVMMシステム3300と同様である。
【0156】
VMMシステム3500は、VMMアレイ3501、3502、3503、及び3504(それぞれ、VMMアレイ1000、1100、1200、1300、1400、1500、2400、2500、2600、2700、2800、2900、3000、3100、及び3200、又は他のVMMアレイ設計など、前述のVMM設計のいずれかに基づくことができる)、低電圧読み出し行デコーダ3505、3506、3507、及び3508、共有低電圧プログラム行デコーダ3530、共有高電圧行デコーダ3509、読み出しワード線又はワード入力線3511、3512、3513、及び3514、プログラムプリデコード行線3515、ビット線3521、3522、3523、及び3524、制御ゲート線3532、ソース線3533、並びに消去ゲート線3535を備える。共有高電圧行デコーダ3509は、制御ゲート線3532、ソース線3533、及び消去ゲート線3535を提供する。このレイアウトでは、読み出しワード線又はワード入力線3511、3512、3513、及び3514、プログラムプリデコード行線3515、及びビット線3521、3522、3523、及び3524は互いに平行であり、垂直方向に配置されている。制御ゲート線3532、ソース線3533、及び消去ゲート線3535は、互いに平行であり、水平方向に配置されており、したがって、読み出しワード線又はワード入力線3511、3512、3513、及び3514、プログラムプリデコード行線3515、並びにビット線3521、3522、3523、及び3524に垂直である。このVMMシステム3500では、低電圧プログラム行デコーダ3530は、複数のVMMアレイにわたって共有される。
【0157】
VMMシステム3500において、VMMアレイ3501、3502、3503、及び3504は、制御ゲート線3532、ソース線3533、消去ゲート線3535、及び高電圧行デコーダ3509を共有する。しかしながら、VMMアレイのそれぞれは、低電圧読み出し行デコーダ3505がVMMアレイ3501とともに使用され、低電圧読み出し行デコーダ3506がVMMアレイ3502とともに使用され、低電圧読み出し行デコーダ3507がVMMアレイ3503とともに使用され、低電圧読み出し行デコーダ3508がVMMアレイ3504とともに使用されるように、それ自体の低電圧読み出し行デコーダを有する。このレイアウトに有利であるのは、読み出しワード線又はワード入力線3511、3512、3513、及び3514は、ワード線3511がVMMアレイ3501のみにルーティングされ得、ワード線3512がVMMアレイ3502のみにルーティングされ得、ワード線3513がVMMアレイ3503のみにルーティングされ得、ワード線3514がVMMアレイ3504のみにルーティングされ得るように、垂直方向に配置されているということである。こうしたことは、同じ高電圧デコーダ及び同じ高電圧デコード線を共有する複数のアレイに関して、ワード線が水平方向に配置される従来のレイアウトでは非常に効率が悪くなるであろう。特に、プログラムプリデコード行線3515は、低電圧プログラム行デコーダ3530を介してVMMアレイ3501、3502、3503、及び3504のいずれかに接続することができ、その結果、それらのVMMアレイのうちの1つ以上のセルを一度にプログラムすることができる。
【0158】
図36は、VMMシステム3500の特定の態様に関する更なる詳細、特に、低電圧行デコーダ3600として例示される低電圧行デコーダ3505、3506、3507、及び3508に関する詳細を示す。低電圧読み出し行デコーダ3600は、VMMアレイ3601、3602、3603、及び3604それぞれのセルの行とワード線を選択的に結合するために示される例示的なスイッチなどの複数のスイッチを備える。低電圧プログラムデコーダ3630は、図示のように構成された例示的なNANDゲート3631及び3632、PMOSトランジスタ3633及び3635、並びにNMOSトランジスタ3636及び3636を含む。NANDゲート3631及び3632は、プログラムプリデコード行線XP3615を入力として受容する。プログラム動作中、低電圧読み出し行デコーダ3605、3605、3606、及び3608内のスイッチSp(CMOSマルチプレクサ又は別の種類のスイッチであり得る)は閉じており、したがってプログラムワード線Wlp0-nは、プログラミングのための電圧を印加するためにアレイ内のワード線に結合される。読み出し動作中、読み出しワード線又はワード入力線3611、3612、3613、及び3614は、低電圧読み出し行デコーダ3605、3606、3607、及び3608内のSrスイッチ(閉じている)(CMOSマルチプレクサ又は別の種類のスイッチであり得る)を使用してアレイ3601、3602、3603、及び3604のうちの1つ以上のアレイ内の行のワード線端子に電圧を印加するように選択的に結合される。
【0159】
図37は、メモリセル410として
図4に示される種類のメモリセルとの使用に特に適したVMMシステム3700を示す。VMMシステム3700は、VMMアレイ3701、3702、3702、及び3704(それぞれ、VMMアレイ1000、1100、1200、1300、1400、1500、2400、2500、2600、2700、2800、2900、3000及び3100、又は他のVMMアレイ設計など、前述のVMM設計のいずれかに基づくことができる)、低電圧行デコーダ3705、3706、3707、及び3708、ローカル高電圧行デコーダ3709及び3710と、グローバル高電圧行デコーダ3730、ワード線3711、3712、3713、及び3714、ビット線3721、3722、3723、及び3724、高電圧及び/又は低電圧(high voltage and/or low voltage、HV/LV)プリデコード線3732、ソース線3733、並びに消去ゲート線3734を備える。共有グローバル高電圧行デコーダ3730は、HV/LVプリデコード線3732、ソース線線3733、及び消去ゲート線3734を提供する。このレイアウトでは、ワード線3711、3712、3713、及び3714、並びにビット線3721、3722、3723、及び3724は互いに平行であり、垂直方向に配置されている。HV/LVプリデコード線3732、ソース線線3733、及び消去ゲート線3734は、互いに並行であり、水平方向に配置されており、したがって、ワード線3711、3712、3713、及び3714、並びにビット線3721、3722、3723、及び3724に垂直である。HV/LVプリデコード線3732は、ローカル高電圧デコーダ3709及び3710に入力される。ローカル高電圧デコーダ3709は、VMMアレイ3701及び3702用のローカル制御ゲート線を出力する。ローカル高電圧デコーダ3710は、VMMアレイ3703及び3704用のローカル制御ゲート線を出力する。別の実施形態では、ローカル高電圧デコーダ3709及び3710は、VMMアレイ3701/3702及びVMMアレイ3703/3704のためのローカルソース線をそれぞれ提供することができる。別の実施形態では、ローカル高電圧デコーダ3709及び3710は、VMMアレイ3701/3702及びVMMアレイ3703/3704のためのローカル消去ゲート線をそれぞれ提供することができる。
【0160】
ここで、ローカル高電圧行デコーダ3709は、VMMアレイ3701及び3702によって共有され、ローカル高電圧行デコーダ3710はVMMアレイ3703及び3704によって共有される。グローバル高電圧デコーダ3730は、高電圧及び低電圧のプリデコード信号をローカル高電圧行デコーダ3709及び3710などのローカル高電圧行デコーダにルーティングする。したがって、高電圧デコード機能は、グローバル高電圧行デコーダ3730と、ローカル高電圧デコーダ3709及び3710などのローカル高電圧デコーダとの間で分割される。
【0161】
VMMシステム3700において、VMMアレイ3701、3702、3703、及び3704は、HV/LVプリデコード線3732、ソース線3733、消去ゲート線3734、及びグローバル高電圧行デコーダ3730を共有する。しかしながら、VMMアレイのそれぞれは、低電圧行デコーダ3705がVMMアレイ3701とともに使用され、低電圧行デコーダ3706がVMMアレイ3702とともに使用され、低電圧行デコーダ3707がVMMアレイ3703とともに使用され、低電圧行デコーダ3708がVMMアレイ3704とともに使用されるように、それ自体の低電圧行デコーダを有する。このレイアウトに有利であるのは、ワード線3711、3712、3713、及び3714は、ワード線3711がVMMアレイ3701のみにルーティングされ得、ワード線3712がVMMアレイ3702のみにルーティングされ得、ワード線3713がVMMアレイ3703のみにルーティングされ得、ワード線3714がVMMアレイ3704のみにルーティングされ得るように、垂直方向に配置されているということである。こうしたことは、単一の高電圧デコーダを共有する複数のアレイに関して、ワード線が水平方向に配置される従来のレイアウトでは非常に効率が悪くなるであろう。
【0162】
図38は、メモリセル410として
図4に示される種類のメモリセルとの使用に特に適したVMMシステム3800を示す。VMMシステム3800は、VMMアレイ3801、3802、3802、及び3804(各々、VMMアレイ1000、1100、1200、1300、1400、1500、2400、2500、2600、2700、2800、2900、3000、3100、及び3200、又は他のVMMアレイ設計など、前述のVMM設計のいずれかに基づくことができる)、低電圧行デコーダ3805、3806、3807、及び3808、ローカル高電圧行デコーダ3809及び3810、グローバル高電圧行デコーダ3830、ビット線3821、3822、3823、及び3824、制御ゲート線又は制御ゲート入力線3811及び3812、HV/LVプリデコード線3833、ソース線3834、並びに消去ゲート線3835を備える。共有グローバル高電圧行デコーダ3830は、HV/LVプリデコード線3833、ソース線線3834、及び消去ゲート線3835を提供する。ローカル高電圧デコーダ3809及び3810は、制御ゲート入力CG3811及び3812を、それぞれVMMアレイ3801、3802及び3803、3804のローカル制御ゲートに結合する。低電圧行デコーダ3805、3806、3807、及び3808は、アレイ3801、3802、3803、3804それぞれにローカル(水平)ワード線を提供する。このレイアウトでは、制御ゲート線3811及び3812、並びにビット線3821、3822、3823、及び3824は互いに平行であり、垂直方向に配置されている。ソース線3834及び消去ゲート線3835は、互いに平行であり、水平方向に配置されており、したがって、制御ゲート線3811及び3812並びにビット線3821、3822、3823、及び3824に垂直である。
【0163】
図37のVMMシステム3700と同様に、ローカル高電圧行デコーダ3809は、VMMアレイ3801及び3802によって共有され、ローカル高電圧行デコーダ3810は、VMMアレイ3803及び3804によって共有される。グローバル高電圧デコーダ3830は、ローカル高電圧行デコーダ3809及び3810などのローカル高電圧行デコーダに信号をルーティングする。したがって、高電圧デコード機能は、グローバル高電圧行デコーダ3830と、ローカル高電圧デコーダ3809及び3810などのローカル高電圧デコーダ(ローカルソース線線及び/又はローカル消去ゲート線を提供することができる)との間で分割される。
【0164】
VMMシステム3800において、VMMアレイ3801、3802、3803、及び3804は、HV/LVプリデコード線3833、ソース線線3834、消去ゲート線3835、及びグローバル高電圧行デコーダ3830を共有する。しかしながら、VMMアレイの各々は、低電圧行デコーダ3805がVMMアレイ3801とともに使用され、低電圧行デコーダ3806がVMMアレイ3802とともに使用され、低電圧行デコーダ3807がVMMアレイ3803とともに使用され、低電圧行デコーダ3808がVMMアレイ3804とともに使用されるように、それ自体の低電圧行デコーダを有する。このレイアウトに有利であるのは、読み出し線又は入力線であり得る制御ゲート線3811及び3812は、制御ゲート線3811が、VMMアレイ3801及び3802のみにルーティングされ得、制御ゲート線3812が、VMMアレイ3803及び3804のみにルーティングされ得るように、垂直方向に配置されているということである。こうしたことは、ワード線が水平方向に配置されている従来のレイアウトでは不可能であろう。
【0165】
図39は、メモリセル310として
図3に、メモリセル410として
図4に、メモリセル510として
図5に、又はメモリセル710として
図7に示される種類のメモリセルとの使用に特に適したVMMシステム3900を示す。VMMシステム3900は、VMMアレイ3901及び3902(それぞれ、VMMアレイ1000、1100、1200、1300、1400、1500、2400、2500、2600、2700、2800、2900、3000、3100、及び3200、又は他のVMMアレイ設計など、前述のVMM設計のいずれかに基づくことができる)、低電圧行デコーダ3903(アレイ3901及び3902とともに使用される)、ローカル高電圧行デコーダ3905、グローバル高電圧行デコーダ3904、制御ゲート線3908及び3909、並びにビット線3906及び3907を備える。このレイアウトでは、制御ゲート線3908は、VMMアレイ3901のみによって使用され、制御ゲート線3909は、VMMアレイ3902のみによって使用される。低電圧行デコード線3910は、グローバル高電圧行デコーダ3904へのデコード入力として使用される。グローバル高電圧行デコード線3911は、ローカル高電圧デコーダ3905へのデコード入力として使用される。
【0166】
ローカル高電圧行デコーダ3905は、VMMアレイ3901及び3902によって共有される。グローバル高電圧デコーダ3904は、VMMシステム3900のローカル高電圧行デコーダ3905などの、複数のVMMシステムのローカル高電圧行デコーダに信号をルーティングする。したがって、高電圧デコード機能は、上述のように、グローバル高電圧行デコーダ3904と、ローカル高電圧デコーダ3905などのローカル高電圧デコーダとの間で分割される。
【0167】
VMMシステム3900では、VMMアレイ3901及び3902は、ワード線(図示せず)、存在する場合はソースゲート線(図示せず)、存在する場合は消去ゲート線(図示せず)、及びグローバル高電圧行デコーダ3904を共有する。ここで、VMMアレイ3901及び3902は低電圧行デコーダ3903を共有する。このレイアウトに有利であるのは、VMMアレイ3901及び3902が制御ゲート線を共有しないことで、制御ゲート線3908及び3909をそれぞれ使用して各アレイが独立してアクセスされることを可能にするということである。
【0168】
図51Aは、メモリセル410として
図4に示される種類のメモリセルとの使用に特に適したVMMシステム5100を示す。VMMシステム5100は、VMMアレイ5101、5102、5103、及び5104(各々、VMMアレイ1000、1100、1200、1300、1400、1510、2400、2510、2600、2700、2800、2900、3000、3100、及び3200、又は他のVMMアレイ設計など、前述のVMMアレイ設計のいずれかに基づくことができる)、高電圧デコーダ5130、ルーティングブロック5151及び5152、入力ワード線5111及び5112、ビット線5121、5122、5123、及び5124、制御ゲート線5132、ソース線5133、並びに消去ゲート線5134を備える。高電圧デコーダ5130は、制御ゲート線5132、ソース線5133、及び消去ゲート線5134に信号を提供する。ルーティングブロック5151、5152は、垂直に受容される入力ワード線5111及び5112がそれぞれ、VMMアレイ5101~5104の水平に延びるワード線にルーティングされる場所である。あるいは、ルーティングブロック5151、5152は、VMMアレイの水平に延びる制御ゲート線5132に垂直に受容される制御ゲート入力線5132をルーティングしてもよい。
【0169】
図51Bは、ビット線をアレイの頂部及び底部からルーティングすることができ、制御ゲート(CG)をアレイの右側から及びアレイの左側からルーティングすることができることを除いて、VMMシステム5100とあらゆる点で同一であるVMMシステム5150を示す。これは、アレイの両側が、ビット線ルーティング又は制御ゲート(若しくはワード線)ルーティングに使用され得ることを意味する。端子(BL、CG、WL)がルーティングされるアレイの各側でローカルデコーダ又は多重化が必要であり得る。例えば、このルーティング方法は、ニューラル読み出しモード(ニューラルネットワーク推論モード)に必要である。
【0170】
図40は、NANDゲート4001、PMOSトランジスタ4002、及びNMOSトランジスタ4003を含む低電圧行デコーダ4000を示す。NANDゲート4001は、行アドレス信号4004を受け取る。PMOSトランジスタ4002は、垂直ワード線入力4005に結合される。出力は、それぞれのVMMアレイに結合する多くのワード線のうちの1本である水平ワード線4006にある。この例では、合計16本のワード線が存在し、したがって、16本のワード線のうちの1本をそれぞれ出力する行デコーダ4000の16個のインスタンスが存在する。したがって、受け取った行アドレス信号に基づいて、ワード線4006などの1本のワード線は、電圧などのそれぞれの信号を出力し、他のワード線は接地に設定される。
【0171】
図41は、ここでNANDゲート4101、PMOSトランジスタ4102、NMOSトランジスタ4103、行アドレス信号4104、垂直入力ワード線4105、及びVMMアレイのワード線に結合する水平ワード出力線4106を備える、
図40のような低電圧行デコーダを含む組み合わせた共選択/選択解除ワード線及び制御ゲートデコーダ(combined co-select/deselect word line and control gate decoder)4100を示す。組み合わせたワード線及び制御ゲートデコーダ4100は、インバータ4107、スイッチ4108及び4112、並びに絶縁トランジスタ4109を更に含み、制御ゲート入力4110 CGIN0を受け取り、制御ゲート線4111 CG0を出力する。ワード線出力4106 WL0及び制御ゲート出力CG0 4111は、NANDゲート4101を制御するデコード論理(図示せず)によって、同時に選択又は選択解除される。
【0172】
図42は、VMMアレイ4201及び4202で動作するビット線デコーダ4200を示す。ビット線デコーダ4200は、(プログラム及び検証のために1本以上のビット線を選択するための、ここで検証動作は、セル電流が同調動作(プログラム又は消去動作)中に特定のターゲットに到達したことを確認するために使用される)列マルチプレクサ4203、及び(1本以上のビット線で読み出し動作を実行するための)検知増幅器4204を含む。図示のように、ローカルビット線mux 4201b及び4202bは、列マルチプレクサ4203に結合されるグローバルビット線4220xにローカルアレイビット線を多重化する。検知増幅器は、ADC又は他のデバイスを含む。したがって、ビット線デコーダ4200は、複数のアレイにわたって共有される。
【0173】
図43は、VMMシステム4300を示し、これは、VMMアレイ4301、4302、4303、及び4304、低電圧行デコーダ4305及び4307、ローカル高電圧行デコーダ4306及び4308、グローバル高電圧行デコーダ4309、デジタルバス入力QIN[7:0]4311及び4312(ここではVMMアレイへの入力である)、並びにビット線4321、4322、4323、及び4324を備える。低電圧行デコーダ4305などの各低電圧行デコーダは、ワード線で信号4333を出力する例示的なデータ入力ブロック4331(8個のラッチ又はレジスタからなってもよい)及びブロック4332(データ-電圧変換回路又はデータ-パルス変換回路を備え得る)などの、各ワード線用の回路ブロック行デコーダ4335を備える。したがって、この低電圧行デコーダへの入力は、適切な制御論理を有するデジタルバスQIN[7:0]である。各回路ブロック列デコーダ4335では、デジタル入力QIN[7:0]4311及び4312は、同期計時手段及び方法によって(例えば、シリアル-パラレル計時インターフェース(serial to parallel clocking interface)などによって)適切にラッチされる。
【0174】
図44は、(ADCからのような)VMMアレイからの出力を受け取り、それらの出力をグループで多重化された様式で、他のVMMアレイ(DAC又はDPCなど)の入力ブロックに提供する、ニューラルネットワークアレイ入出力バスマルチプレクサ4400を示す。示される例では、入出力バスマルチプレクサ4400への入力は、2048ビット(256セット、それぞれ8ビットのNEU0、...、NEU255)を含み、入出力バスマルチプレクサ4400は、それらのビットをグループごとに32ビットの64個の異なるグループで提供し、時分割多重化の使用などによって、異なるグループ間で多重化する(任意の所与の時点で32ビットの1グループを提供する)。制御論理4401は、入出力バスマルチプレクサ4400を制御する制御信号4402を生成する。
【0175】
【0176】
図46は、ワード線が垂直方式で(
図34又は
図35のような)レイアウトされている、VMMアレイの例示的なレイアウトを示す。しかしながら、このレイアウトでは、2本のワード線(ワード線4601及び4602など)は、同じ列を占有することができるが、アレイ内の異なる行にアクセスする(それらの間のギャップに起因する)。
【0177】
図47は、
図2に示される種類のメモリセルでの使用に適切である、ワード線デコーダ回路4701、ソース線デコーダ回路4704、及び高電圧レベルシフタ4708を含む、VMM高電圧デコード回路を示す。
【0178】
ワード線デコーダ回路4701は、図示のように構成された、PMOS選択トランジスタ4702(信号HVO_Bによって制御される)及びNMOS選択解除トランジスタ4703(信号HVO_Bによって制御される)を含む。
【0179】
ソース線デコーダ回路4704は、図示のように構成された、NMOS監視トランジスタ4705(信号HVOによって制御される)、駆動トランジスタ4706(信号HVOによって制御される)、及び選択解除トランジスタ4707(信号HVO_Bによって制御される)を含む。
【0180】
高電圧レベルシフタ4708は、イネーブル信号ENを受け取り、高電圧信号HV及びその補完信号HVO_Bを出力する。
【0181】
図48は、
図3に示される種類のメモリセルでの使用に適切である、消去ゲートデコーダ回路4801、制御ゲートデコーダ回路4804、ソース線デコーダ回路4807、及び高電圧レベルシフタ4811を含む、VMM高電圧デコード回路を示す。
【0182】
消去ゲートデコーダ回路4801及び制御ゲートデコーダ回路4804は、
図47のワード線デコーダ回路4701と同じ設計を使用する。
【0183】
ソース線デコーダ回路4807は、
図47のソース線デコーダ回路4704と同じ設計を使用する。
【0184】
高電圧レベルシフタ4811は、
図47の高電圧レベルシフタ4708と同じ設計を使用する。
【0185】
図49は、ワード線ドライバ4900を示す。ワード線ドライバ4900は、ワード線(本明細書に示される例示的なワード線WL0、WL1、WL2、及びWL3など)を選択し、そのワード線にバイアス電圧を提供する。各ワード線は、制御線4902によって制御される選択トランジスタ4901などの選択絶縁トランジスタに取り付けられている。選択トランジスタ4901などの選択トランジスタは、ワード線デコードトランジスタから消去動作中に使用される高電圧(例えば、8~12V)を絶縁し、選択トランジスタは低電圧(例えば、1.8V、3.3V)で動作するIOトランジスタを用いて実装することができる。ここで、任意の動作中に、制御線4902が活性化され、選択トランジスタ4901に類似した全ての選択トランジスタがオンにされる。例示的バイアストランジスタ4903(ワード線デコード回路の一部)は、ワード線を第1のバイアス電圧(3Vなど)に選択的に結合させ、例示的なバイアストランジスタ4904(ワード線デコード回路の一部)は、ワード線を第2のバイアス電圧(第1のバイアス電圧より低く、接地、接地と第1のバイアス電圧との間のバイアス、又は非使用メモリ行からの漏れを低減するための負電圧バイアスを含む)に選択的に結合させる。ANN(アナログニューラルネットワーク)読み出し動作中、全ての使用ワード線が選択され、第1のバイアス電圧に結び付けられる。全ての非使用ワード線は、第2のバイアス電圧に結び付けられる。プログラム動作などの他の動作中に、一方のワード線のみが選択され、他方のワード線が第2のバイアス電圧に結び付けられ、これは、アレイ漏れを低減するために負バイアス(例えば、-0.3~-0.5V以上)であり得る。
【0186】
バイアストランジスタ4903及び4904は、シフトレジスタ4905のステージ4906の出力に結合される。シフトレジスタ4905は、入力データパターン(ANN動作の開始時にロードされる)に従って、各行が独立して制御されることを可能にする。
【0187】
図50は、ワード線ドライバ5000を示す。ワード線ドライバ5000は、各選択トランジスタがコンデンサ5001などのコンデンサに更に結合されていることを除いて、ワード線ドライバ4900と同様である。コンデンサ5001は、線5003上の電圧をサンプリングするためにトランジスタ5002によって有効にされた、動作の開始時のワード線にプリチャージ又はバイアスを提供することができる。コンデンサ5001は、各ワード線に対する入力電圧をサンプリング及び保持(sample and hold、S/H)するように作用する。トランジスタ5004及び5005は、VMMアレイのANN動作(アレイ電流加算器及び活性化関数)中にオフであり、S/Hコンデンサ5001上の電圧がそれぞれのワード線の(浮遊)電圧源として機能することを意味する。あるいは、コンデンサ5001は、VMMアレイからのワード線(又は入力が制御ゲートにある場合には制御ゲート静電容量として)静電容量によって提供することができる。
タンデム行デコーダ
【0188】
図52~
図55は、タンデムデコーダの実施形態を示す。タンデムデコーダは、アレイ漏れを低減し、好ましくは最小限に抑える。ニューラル読み出し中、未使用の行は、好ましくは、アレイ漏れを低減するために遮断される。先行技術では、ワード線デコーダは、典型的には、制御ゲートデコーダを駆動するために使用され、制御ゲートの切り替えは、未使用のセルをオフに切り替えるために使用される。これは、電流ディケード/VCG I-V(例えば、2電流ディケード/1V)曲線特性の数に起因して、高電流レベルには最適ではない。すなわち、制御ゲート線の電流は、制御ゲートCG電圧が1Vだけ低減したときに、約100nA~1nA変化する。タンデムデコーダは、先行技術のこの制限を克服する。
【0189】
検証動作中に続く例では、ワード線デコーダが、制御ゲートデコーダをオーバードライブすることが所望され、これは、制御ゲート状態が、ワード線状態が変化するまで、変化しないことを意味する。読み出しニューラル動作中、制御ゲートデコーダは、ワード線デコーダをオーバードライブし、これは、ワード線状態が、制御ゲート線状態が変化するまで、変化しないことを意味する。
【0190】
図52は、制御ゲートデコーダ5202に結合されたワード線デコーダ5201を含むタンデム行デコーダ5200を示す。この例では、タンデム行デコーダ5200は、アレイ内の行0に使用される。アレイ内の他の行の全ては、それに割り当てられた同様のタンデム行デコーダを有する。
【0191】
ワード線デコーダ5201は、示されるように構成された、インバータとして配置された、PMOSトランジスタ5203及びNMOSトランジスタ5204、NANDゲート5205、NANDゲート5206、及びインバータ5207を含む。制御ゲートデコーダ5202は、示されるように構成された、NANDゲート5208、インバータ5209、NANDゲート5210、インバータ5211、スイッチ5212、スイッチ5213、並びにインバータ5211とスイッチ5212及び5213からの論理信号からの)パスゲート(ゲートがVddなどの中間電圧に接続された絶縁トランジスタとして機能して、不揮発性動作において、CGの高電圧レベルを絶縁し、高電圧レベルが高電圧回路から供給される)として作用する絶縁NMOSトランジスタ5214を含む。
【0192】
ワード線WL0が、(検証動作中など)制御ゲートCG0を(無効又は有効にするために)オーバードライブすることが所望されるモードに入ると、NANDゲート5208の1つの入力に供給される制御信号CFG_ENWLは、「1」に設定され、NANDゲート5206の1つの入力に供給されるCFG_ENCGは、「0」に設定される。制御ゲート線CG0が、(読み出しニューラル動作中など)ワード線WL0を(無効又は有効にするために)オーバードライブすることが所望されるモードに入ると、制御信号CFG_ENCGは、「1」に設定され、CFG_ENWLは、「0」に設定される。行0が全く使用されていないモードに入ると、CFG_ENWL及びCFG_ENCGは両方とも「0」に設定され、これはタンデムデコーダ5200が有効にされないことを意味する。行0が全く使用されていないモードでは、各ワード線WLデコーダ及び各制御ゲートCGデコーダは、個別に(別々に)有効/無効にされる必要がある。
【0193】
第1に、タンデムデコーダ5200が有効にされないモード(すなわち、CFG_ENWL及びCFG_ENCG=「0」)について考察する。CFG_ENCG及びCFG_ENWLが「0」である場合、NANDゲート5206及び5208の出力は各々、各NANDゲートの他の入力の値に関係なく「1」である。行0がアドレス指定されていないため、NANDゲート5205の出力は、事前にデコードされたアドレス線ENX0...ENXnがアサートされないため、「1」である。したがって、PMOSトランジスタ5203がオフにされ、NMOSトランジスタがオンにされ、それにより、WL0が「0」である。入力CFG_ENWLが「0」であるため、NANDゲート5208の出力は「1」であり、行0がアドレス指定されていないため、NANDゲート5210の出力は、事前にデコードされた線ENG0...ENGnがアサートされないため、「1」である。したがって、スイッチ5213は閉鎖される。インバータ5211の出力は、スイッチ5212を開放する「0」である。スイッチ5213は、閉状態において、パスゲート5214への入力を下に引き、出力CG0は「0」である。したがって、事前にデコードされた線がアサートされていないこのモードでは、WL0及びCG0は「0」に引かれ、これは、タンデムデコーダ5200が使用されていないため、所望の状態である。特に、メモリセルは、それぞれ、プルダウントランジスタ5204及びスイッチ5213(典型的には、NMOSトランジスタも)を通して、端子WL0及びCG0の両方が接地に引かれるため、いかなる認識可能な漏れ電流も示さない。
【0194】
第2に、タンデムデコーダ5200が有効にされ、ワード線WL0が制御ゲートCG0を(有効又は無効にするために)オーバードライブするモードについて考察する。CFG_ENCGは、「0」に設定され、CFG_ENWLは、「1」に設定される。NANDゲート5206の出力は、他の入力で受信された値に関係なく「1」である。この場合、行0に対応するアドレスが受信されることが想定されるため、NAND5205への入力ENX0...ENXnは各々、「1」であり、これは、NAND5205の出力が「0」であることを意味する。PMOSトランジスタ5203はオンになり、NMOSトランジスタ5204はオフになり、WL0は、特にワード線バイアス電圧WLBIASに向かって「1」に引かれる。インバータ5209への入力は「1」であり、インバータ5209の出力は「0」であり、NANDゲート5208の出力は「1」である。この場合、行0に対応するアドレスが受信されることが想定されるため、NAND5210への入力ENG0...ENGnは各々、「1」である、これは、NANDゲート5210の出力が、スイッチ5213を開放する「0」であることを意味する。上記のように、インバータ5211の出力は「1」であり、スイッチ5212は閉鎖され(有効にされ)、スイッチ5213は開放され(無効にされ)、パスゲート5214は既にオンであり、制御ゲートCG0は入力CGIN0に引かれる。CG0は、WL0が「0」から「1」に切り替わるまで、「0」から制御ゲートバイアス電圧CGIN0に切り替わらない、なぜなら、それが起こるまでNANDゲート5208が「0」を出力するためである。
【0195】
第3に、タンデムデコーダ5200が有効にされ、ENCGINを有効にする制御ゲート又は制御ゲートCG0が、ワード線WL0を(有効又は無効にするために)オーバードライブするモードについて考察する。CFG_ENCGは、「1」に設定され、CFG_ENWLは、「0」に設定される。NANDゲート5208の出力は、他の入力で受信された値に関係なく「1」である。この場合、行0に対応するアドレスが受信されることが想定されるため、NAND5210への入力ENG0...ENGnは各々、「1」であり、これは、NAND5210の出力が「0」であることを意味する。インバータ5211の出力は「1」であり、スイッチ5212は閉鎖され、スイッチ5213は開放され、CG0は入力CGIN0に駆動される。インバータ5207への入力は「1」であり、インバータ5207の出力は「0」であり、NANDゲート5206の出力は「1」に切り替わる。この場合、行0に対応するアドレスが受信されることが想定されるため、NAND5205への入力ENX0...ENXnは各々「1」であり、これは、NAND5205の出力が、NANDゲート5206の出力がアサートされていることを想定して「0」であることを意味する(すなわち、=「1」)。PMOSトランジスタ5203はオンになり、NMOSトランジスタ5204はオフになり、その結果、出力WL0が「1」である。この第3のモード(CGデコードがWLデコードをオーバードライブする)では、WL0は、CG0が「0」から「1」に切り替わるまで「0」から「1」に切り替わらず、なぜなら、それが起こるまで、NANDゲート5206が「0」を出力するためである。
モードに応じて示されるように、WL0(WLデコード)は、CG0(CGデコード)を有効/無効にするために使用され、逆線様式(WL0相互接続線及びCG0相互接続線)では、逆も同様である。
【0196】
図53は、制御ゲートデコーダ5302に結合されたワード線デコーダ5301を含むタンデム行デコーダ5300を示す。この例では、タンデム行デコーダ5300は、アレイ内の行0に使用される。アレイ内の他の行の全ては、それに割り当てられた同様のタンデム行デコーダを有する。ワード線デコーダ5301は、
図52のワード線デコーダ5201と同一である。制御ゲートデコーダ5302は、制御ゲートデコーダ5302からインバータ5207への結合が、スイッチ5212の上流(
図52に示すように)から出力ノードCG0に移動されたことを除いて、
図52の制御ゲートデコーダ5202と同一であり、これにより、CG0が、「0」から、「CGIN0」が、基準レベル、例えば0.5V以上などの高い十分な電圧レベルである、制御ゲートバイアス電圧「CGIN0」に切り替わるまで、WL0が「0」から「1」に切り替わらないことを確実にする。タンデム行デコーダ5300は、そうでなければ、タンデム行デコーダ5200と同じ方法で動作する。インバータ5207は、トリップ点が電源のほぼ半分であるコンパレータとして機能し、CG0が<約0.5Vddである場合、その出力=「1」を意味する。入力電圧レベルIN(すなわち、CG0)<基準電圧レベルVREF(例えば、0.5V)の場合、その出力OUT=「1」であるコンパレータ5207Bを有する別の実施形態が、インサートに示されている。同様に、インバータ5209は、コンパレータ5207Bと同様のコンパレータとして実装することができる。
【0197】
図54は、ワード線デコーダ5401及び制御ゲートデコーダ5402を含むタンデム行デコーダ5400を示す。この例では、タンデム行デコーダ5400は、アレイ内の行0に使用される。アレイ内の他の行の全ては、それに割り当てられた同様のタンデム行デコーダを有する。行デコーダ5400は、各ワード線又は各制御ゲート線を有効又は無効にするためのそれぞれのローカルラッチを使用する。代替的に、1つのラッチを使用して、各ワード線及び制御ゲート線をタンデムで一緒に有効/無効にすることができる。
【0198】
ソース線デコーダ5401は、示されるように構成された、PMOSトランジスタ5403、NMOSトランジスタ5404、NANDゲート5405、及びラッチ5406を備える。制御ゲートデコーダ5402は、示されるように構成された、NANDゲート5408、ラッチ5409、インバータ5410、スイッチ5411、スイッチ5412、及びパスゲート5413を備える。
【0199】
タンデム行デコーダ5400は、EN_LATWL/EN_LATCG及びDINLATを「1」に設定することによって有効にされ、これは、ワード線デコーダ5401及び制御ゲートデコーダ5402を有効にする。この例では、行0が選択されているため、デコードアドレス信号ENX0...ENXn及びENG0...ENGnは、全て「1」である。これが起こると、ラッチ5406の出力が「1」に設定され、NANDゲート5405の出力は「0」であり、PMOSトランジスタ5403はオンにされ、NMOSトランジスタ5404はオフにされる。WL0は、「1」であるWLBIASまで高く駆動される。EN_LATCG及びDINLATが「1」に設定されると、ラッチ5409の出力は「1」に設定され、NANDゲート5408の出力は「0」であり、インバータ5410の出力は「1」であり、スイッチ5411は閉鎖され、スイッチ5412は開放される。CGOは、CGIN0レベルを入力するように駆動される。
【0200】
タンデム行デコーダ5400が有効にされない場合、EN_LATWL/EN_LATCGは「1」に設定され、DINLATは「0」に設定され、その結果、ワード線デコーダ5401及び制御ゲートデコーダは有効にされない。受信されたアドレス信号及びEN0の状態に関係なく、ラッチ5406の出力は「0」であり、NANDゲート5405の出力は「1」であり、NMOSトランジスタ5403はオフにされ、NMOSトランジスタ5404はオンにされ、「0」である接地にWL0を引き下げる。ラッチ5409の出力はまた「0」であり、NANDゲート5408の出力は「1」であり、インバータ5410の出力は「0」であり、スイッチ5411は開放され、スイッチ5412は閉鎖され、CG0はスイッチ5412を介して、「0」である接地に引き下げられる。特に、端子WL0及びCG0の両方がプルダウントランジスタ5404及びスイッチ5412(典型的にはNMOSトランジスタでもある)を通して接地に引かれるため、WL0又はCG0に起因するメモリセルには明らかな漏れ電流はない。
【0201】
図55は、ワード線デコーダ5501及び制御ゲートデコーダ5502を含むタンデム行デコーダ5500を示す。この例では、タンデム行デコーダ5500は、アレイ内の行0に使用される。アレイ内の他の行の全ては、それに割り当てられた同様のタンデム行デコーダを有する。このデコーダは、例えば、高電源Vdd(WLBIASH>Vdd)又は接地レベル(WLBIASL<0V、メモリセル漏れを更にもっと低減するための、-0.4V~-1Vなどの負のレベル)などの出力の電圧範囲を拡張するために、出力のレベルシフタを使用する。
【0202】
ワード線デコーダ5501は、示されるように構成された、レベルシフタ5503、NANDゲート5504、NANDゲート5505、インバータ5506、及びインバータ5507を備える。制御ゲートデコーダ5502は、NANDゲート5508、インバータ5509、NANDゲート5510、レベルシフタ5511、スイッチ5512、スイッチ5513、パスゲート5514、及びインバータ5515を備える。
【0203】
ワード線WL0が、制御ゲートCG0をオーバードライブすることが所望されるモードに入ると、制御信号CFG_ENWLは、「1」に設定され、CFG_ENCGは、「0」に設定される。制御ゲート線CG0が、ワード線WL0をオーバードライブすることが所望されるモードに入ると、制御信号CFG_ENCGは「1」に設定され、CFG_ENWLは「0」に設定される。行0が行デコーダタンデムモードで使用されていない場合、CFG_ENWL及びCFG_ENCGは、両方とも「0」に設定され、これは、デコーダ5500が、それ自体の入力に応じてWL及びCGに対して個別に有効にされることを意味する。
【0204】
本明細書で使用される場合、「~の上方に(over)」及び「~に(on)」という用語は両方とも、「上に直接」(中間材料、要素、又は間隙がそれらの間に配設されていない)、及び「上に間接的に」(中間材料、要素、又は間隙がそれらの間に配設されている)を包括的に含むことに留意されるべきである。同様に、「隣接した」という用語は、「直接隣接した」(中間材料、要素、又は間隙がそれらの間に配設されていない)、及び「間接的に隣接した」(中間材料、要素、又は間隙がそれらの間に配設されている)を含み、「に取り付けられた」は、「に直接取り付けられた」(中間材料、要素、又は間隙がそれらの間に配設されていない)、及び「に間接的に取り付けられた」(中間材料、要素、又は間隙がそれらの間に配設されている)を含み、「に電気的に結合された」は、「に直接電気的に結合された」(要素を一緒に電気的に接続する中間材料又は要素がそれらの間にない)、及び「に間接的に電気的に結合された」(要素を一緒に電気的に接続する中間材料又は要素がそれらの間にある)を含む。例えば、要素を「基板の上方に」形成することは、その要素を直接基板に、中間材料/要素をそれらの間に伴わずに形成すること、及びその要素を基板に間接的に1つ以上の中間材料/要素をそれらの間に伴って形成することを含み得る。