IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ シリコン ストーリッジ テクノロージー インコーポレイテッドの特許一覧

特許7394827ディープラーニングの人工ニューラルネットワーク内のアナログニューラルメモリ内に不良メモリセルを含む行又は列に関する冗長メモリアクセス
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-30
(45)【発行日】2023-12-08
(54)【発明の名称】ディープラーニングの人工ニューラルネットワーク内のアナログニューラルメモリ内に不良メモリセルを含む行又は列に関する冗長メモリアクセス
(51)【国際特許分類】
   G06N 3/063 20230101AFI20231201BHJP
   G11C 11/54 20060101ALI20231201BHJP
   G11C 16/04 20060101ALI20231201BHJP
   G11C 29/00 20060101ALI20231201BHJP
   G06G 7/60 20060101ALI20231201BHJP
【FI】
G06N3/063
G11C11/54
G11C16/04 120
G11C29/00 416
G06G7/60
【請求項の数】 29
(21)【出願番号】P 2021500584
(86)(22)【出願日】2019-06-07
(65)【公表番号】
(43)【公表日】2021-11-11
(86)【国際出願番号】 US2019036143
(87)【国際公開番号】W WO2020013934
(87)【国際公開日】2020-01-16
【審査請求日】2022-05-16
(31)【優先権主張番号】62/696,778
(32)【優先日】2018-07-11
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/151,259
(32)【優先日】2018-10-03
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】500147506
【氏名又は名称】シリコン ストーリッジ テクノロージー インコーポレイテッド
【氏名又は名称原語表記】SILICON STORAGE TECHNOLOGY, INC.
(74)【代理人】
【識別番号】110000626
【氏名又は名称】弁理士法人英知国際特許商標事務所
(72)【発明者】
【氏名】バン トラン、ヒュー
(72)【発明者】
【氏名】ホン、スタンレー
(72)【発明者】
【氏名】ブー、サン
(72)【発明者】
【氏名】リ、アン
(72)【発明者】
【氏名】パム、ヒエン
(72)【発明者】
【氏名】ニュエン、カ
(72)【発明者】
【氏名】トラン、ハン
【審査官】北川 純次
(56)【参考文献】
【文献】米国特許出願公開第2018/0173600(US,A1)
【文献】米国特許出願公開第2017/0337466(US,A1)
【文献】米国特許第5729152(US,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02-3/10
G11C 11/54
G11C 16/04
G11C 29/00
G06G 7/60
(57)【特許請求の範囲】
【請求項1】
メモリアレイ及び冗長メモリアレイを備えるメモリシステム内でニューラル読み出し動作を実行する方法であって、
データを1つ以上のラッチにロードするステップと、
前記1つ以上のラッチに応答して、前記メモリアレイ内の複数のメモリセルの行を無効にするステップと、
前記冗長メモリアレイ内の複数のメモリセルの行を有効にするステップと、
前記メモリアレイ内の前記無効にされていない行内の全てのメモリセル、及び前記冗長メモリアレイ内の前記有効にされた行内の全てのメモリセルの同時読み出し動作を実行するステップと、を含む、方法。
【請求項2】
前記メモリアレイ及び冗長メモリアレイ内の各出力線の電流を受け取るステップであって、各出力線の前記電流は、前記出力線に結合された前記メモリアレイ内の無効にされていない行内の各メモリセル、及び前記出力線に結合された前記冗長メモリセル内の有効にされた行内の各メモリセルにより、前記同時読み出し動作中に引き込まれる電流を含む、受け取るステップ、を更に含む、請求項1に記載の方法。
【請求項3】
前記出力線はビット線である、請求項2に記載の方法。
【請求項4】
前記出力線はソース線である、請求項2に記載の方法。
【請求項5】
前記無効にするステップは、1つ以上のスイッチを利用する、請求項1に記載の方法。
【請求項6】
前記1つ以上のラッチのそれぞれは、前記メモリアレイ内のメモリセルのセクタのワード線に結合される、請求項1に記載の方法。
【請求項7】
前記メモリアレイ内の前記メモリセルの各々、及び前記冗長メモリアレイ内の前記メモリセルの各々は、スプリットゲートフラッシュメモリセルである、請求項1に記載の方法。
【請求項8】
アドレスが不良メモリに対応するかどうかを判定するために、プログラミング又は消去動作中にアドレス比較を実行するステップを更に含む、請求項1に記載の方法。
【請求項9】
ドレス比較が一致を識別する場合、プログラム又は消去動作のための冗長アレイを有効にステップを更に含む、請求項に記載の方法。
【請求項10】
メモリアレイ及び冗長メモリアレイを備えるメモリシステム内でニューラル読み出し動作を実行する方法であって、
データを1つ以上のラッチにロードするステップと、
前記1つ以上のラッチに応答して、前記メモリアレイ内の複数のメモリセルの列を無効にするステップと、
前記冗長メモリアレイ内の複数のメモリセルの列を有効にするステップと、
前記メモリアレイ内の前記無効にされていない列内の全てのメモリセル、及び前記冗長メモリアレイ内の前記有効にされた列内の全てのメモリセルの同時読み出し動作を実行するステップと、を含む、方法。
【請求項11】
前記メモリアレイ及び冗長メモリアレイ内の各出力線の電流を受け取るステップであって、各出力線の前記電流は、前記出力線に結合された前記メモリアレイ内の無効にされていない列内の各メモリセル、及び前記出力線に結合された前記冗長メモリセル内の有効にされた列内の各メモリセルにより、前記読み出し動作中に引き込まれる電流を含む、受け取るステップ、を更に含む、請求項10に記載の方法。
【請求項12】
前記出力線はビット線である、請求項11に記載の方法。
【請求項13】
前記出力線はソース線である、請求項11に記載の方法。
【請求項14】
前記無効にするステップは、1つ以上のスイッチによって実行される、請求項10に記載の方法。
【請求項15】
前記メモリアレイ内の前記メモリセルの各々及び前記冗長メモリアレイ内の前記メモリセルの各々はスプリットゲートフラッシュメモリセルである、請求項10に記載の方法。
【請求項16】
アドレスが不良メモリに対応するかどうかを判定するために、プログラミング又は消去動作中にアドレス比較を実行するステップを更に含む、請求項10に記載の方法。
【請求項17】
ドレス比較が一致を識別する場合、プログラム又は消去動作のための冗長アレイを有効にステップを更に含む、請求項16に記載の方法。
【請求項18】
メモリシステムであって、
複数のセクタを含むメモリアレイであって、各セクタは複数のメモリセルの行を含む、メモリアレイと、
複数の冗長セクタを含む冗長メモリアレイであって、各冗長セクタはメモリセルの複数の行を含む冗長メモリアレイと、
前記メモリアレイ内の各セクタに関して、ラッチを含む制御ブロックであって、前記ラッチは前記メモリアレイ内の前記セクタ内の1つ以上の行を無効にするようにプログラムされ得る、制御ブロックと、
前記冗長メモリアレイ内の各セクタに関して、冗長ラッチを含む制御ブロックであって、前記冗長ラッチは前記冗長メモリアレイ内の冗長セクタ内の1つ以上の行を有効にするようにプログラムされ得る、制御ブロックと、を備え、
ニューラル読み出し動作中に、前記メモリアレイ内の前記無効にされていない行内の全てのメモリセル、及び前記冗長メモリアレイ内の前記有効にされた行内の全てのメモリセルの同時読み出し動作が実行される、メモリシステム。
【請求項19】
前記メモリアレイ及び冗長メモリアレイ内の各ビット線の電流を受け取るための回路であって、各ビット線の前記電流は、前記ビット線に結合された前記メモリアレイ内の無効にされていない行内の各メモリセル、及び前記ビット線に結合された前記冗長メモリセル内の有効にされた行内の各メモリセルにより、前記読み出し動作中に引き込まれる電流を含む、回路、を更に備える、請求項18に記載のシステム。
【請求項20】
前記メモリアレイ内の各セクタに関して、前記ラッチと前記メモリアレイとの間の1つ以上のスイッチを更に備える、請求項18に記載のシステム。
【請求項21】
前記メモリアレイ内の前記メモリセルの各々及び前記冗長メモリアレイ内の前記メモリセルの各々はスプリットゲートフラッシュメモリセルである、請求項18に記載のシステム。
【請求項22】
前記メモリアレイは、長・短期記憶システム内のベクトルマトリックス乗算アレイである、請求項18に記載のシステム。
【請求項23】
前記メモリアレイは、ゲート付き回帰型ユニットシステム内のベクトルマトリックス乗算アレイである、請求項18に記載のシステム。
【請求項24】
メモリシステムであって、
行及び列に配置されているメモリセルを備えるメモリアレイであって、メモリセルの各列がビット線に結合される、メモリアレイと、
行及び列に配置されている冗長メモリセルを備える冗長メモリアレイであって、冗長メモリセルの各列はビット線に結合される、冗長メモリアレイと、
前記メモリアレイ内の各ビット線に関して、ラッチを含む制御ブロックであって、前記ラッチは前記メモリアレイ内の前記ビット線に結合されたメモリセルの前記列を無効にするようにプログラムされ得る、制御ブロックと、
前記冗長メモリアレイ内の各ビット線に関して、冗長ラッチを含む制御ブロックであって、前記冗長ラッチは前記冗長メモリアレイ内の前記ビット線に結合されたメモリセルの列を有効にするようにプログラムされ得る、制御ブロックと、を備え、
ニューラル読み出し動作中に、前記メモリアレイ内の前記無効にされていない列内の全てのメモリセル、及び前記冗長メモリアレイ内の前記有効にされた列内の全てのメモリセルの同時読み出し動作が実行される、メモリシステム。
【請求項25】
ニューラル読み出し動作中に、前記メモリアレイ内の無効にされていない列に結合された各ビット線と、前記冗長メモリアレイ内の有効にされた列に結合された各ビット線との電流を受け取るための回路を更に備える、請求項24に記載のシステム。
【請求項26】
前記メモリアレイ内の各ビット線に関して、前記ラッチと前記メモリアレイとの間の1つ以上のスイッチを更に備える、請求項24に記載のシステム。
【請求項27】
前記メモリアレイ内の前記メモリセルの各々及び前記冗長メモリアレイ内の前記メモリセルの各々はスプリットゲートフラッシュメモリセルである、請求項24に記載のシステム。
【請求項28】
前記メモリアレイは、長・短期記憶システム内のベクトルマトリックス乗算アレイである、請求項24に記載のシステム。
【請求項29】
前記メモリアレイは、ゲート付き回帰型ユニットシステム内のベクトルマトリックス乗算アレイである、請求項24に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
(優先権の主張)
本願は、2018年7月11日に出願された「Redundant Memory Access for Rows or Columns Containing Faulty Memory Cells in Analog Neural Memory in Deep Learning Artificial Neural Network」と題する米国特許仮出願第62/696,778号、及び2018年10月3日に出願された「Redundant Memory Access for Rows or Columns Containing Faulty Memory Cells in Analog Neural Memory in Deep Learning Artificial Neural Network」と題する米国特許出願第16/151,259号の優先権を主張する。
【0002】
(発明の分野)
ディープラーニングの人工ニューラルネットワークで使用されるアナログのニューラルメモリシステムでのプログラム、消去、読み出し、又はニューラル読み出し動作中に、1つ以上の不良の不揮発性メモリセルを含む1つ以上の行又は列の代わりに冗長な不揮発性メモリセルにアクセスするため、多数の実施形態が開示されている。
【背景技術】
【0003】
人工ニューラルネットワークは、多数の入力に依存し得る、かつ概ね未知である関数を推定する又は近似するために使用される生物学的ニューラルネットワーク(例えば、動物の中枢神経系、特に脳)によく似ている。人工ニューラルネットワークは、概して、メッセージを交換する相互接続した「ニューロン」の層を含む。
【0004】
図1は、人工ニューラルネットワーク100を図示しており、ここで円は、入力又はニューロンの層を表す。接続(シナプスと呼ばれる)は、矢印によって表され、経験に基づいて調整され得る数値の重みを有する。これは、ニューラルネットワークが入力に適応できるようにし、学習できるようにする。典型的には、ニューラルネットワークは、複数の入力の層を含む。典型的には、1つ以上のニューロンの中間層、及びニューラルネットワークの出力を提供するニューロンの出力層が存在する。それぞれのレベルでニューロンは、シナプスから受け取られデータに基づいて個々に又は合わせて決定を行う。
【0005】
高性能情報処理用の人工ニューラルネットワークの開発における主要な課題の1つは、適切なハードウェア技術の欠如である。実際には、実用ニューラルネットワークは、非常に多数のシナプスに頼り、ニューロン間の高い接続性、すなわち、非常に高度な計算的並列処理を可能にする。原理的には、このような複雑性は、デジタルスーパーコンピュータ又は専門化したグラフィック処理ユニットクラスタによって実現され得る。しかしながら、高コストに加え、これらのアプローチはまた、主として低精度のアナログ計算を実施するのではるかに少ないエネルギーしか消費しない生物学的ネットワークに比べてあまり良くないエネルギー効率に悩まされている。CMOSアナログ回路は、人工ニューラルネットワークに使用されてきたが、ほとんどのCMOS実装シナプス(CMOS-implemented synapses)は、多数のニューロン及びシナプスを考えると嵩高すぎていた。
【0006】
出願人は以前に、参照により組み込まれる米国特許出願第15/594,439号において、シナプスとして1つ以上の不揮発性メモリアレイを利用する人工(アナログ)ニューラルネットワークを開示した。不揮発性メモリアレイは、アナログニューロモーフィックメモリとして動作する。ニューラルネットワークデバイスは、第1の複数の入力を受け取るように、かつそれから第1の複数の出力を生成するように構成されている第1の複数のシナプス、及び第1の複数の出力を受け取るように構成された第1の複数のニューロンを含む。第1の複数のシナプスは、半導体基板内に形成された、間にチャネル領域が延在している離間したソース領域及びドレイン領域と、チャネル領域の第1の部分の上方に配設され、チャネル領域の第1の部分から絶縁された浮遊ゲートと、チャネル領域の第2の部分の上方に配設され、チャネル領域の第2の部分から絶縁された非浮遊ゲートと、をそれぞれが含む複数のメモリセルを含む。複数のメモリセルのそれぞれは、浮遊ゲートの多くの電子に対応する重み値を格納するように構成されている。複数のメモリセルは、第1の複数の入力に、格納された重み値を乗じて第1の複数の出力を生成するように構成されている。
【0007】
アナログニューロモーフィックメモリシステムに使用される各不揮発性メモリセルは、消去され、浮遊ゲート内に非常に特異的かつ正確な量の電荷を保持するようにプログラムされなければならない。例えば、各浮遊ゲートはN個の異なる値のうちの1つを保持しなければならず、ここで、Nは、各セルによって示され得る異なる重みの数である。Nの例としては、16、32、及び64が挙げられる。
【0008】
アナログニューロモーフィックメモリシステムの1つの特有の特徴は、システムが2つの異なるタイプの読み出し動作をサポートしなければならないことである。通常の読み出し動作では、個々のメモリセルは、従来のメモリシステムのように読み出される。しかしながら、ニューラル読み出し動作では、メモリセルのアレイ全体が一度に読み出され、各ビット線は、そのビット線に接続されたメモリセルからの全電流の合計である電流を出力する。
【0009】
両方のタイプの読み出し動作をサポートすることにより、いくつかの課題が生じる。1つの課題は、いかにシステムの冗長性をもたらすかということである。複数の冗長行又は列が使用されている場合(複数の不良の行又は列の発生に起因して)、システムは、ニューラル読み出し動作中、一度に冗長な行又は列の全てを作動することができなければならない。しかしながら、従来のシステムでは、読み出し又はプログラムの動作は、任意の所与の時間に1行のみ、又は行のセクタのみ-それらの全てではない-で動作し、そのため、冗長な行又は列の一部のみが、必然的に任意の所与の時間にアサートされる。したがって、先行技術のデコードシステムは、ニューラル読み出し動作をサポートしてはいない。
【0010】
プログラミング、消去、読み出し、及びニューラル読み出し動作中に冗長性をもたらすためにアナログニューロモーフィックメモリと共に使用される、改良されたデコードシステムが必要とされている。
【発明の概要】
【0011】
ディープラーニングの人工ニューラルネットワークで使用されるアナログのニューラルメモリシステムでのプログラム、消去、読み出し、又はニューラル読み出し動作中に、1つ以上の不良の不揮発性メモリセルを含む1つ以上の行又は列の代わりに冗長な不揮発性メモリセルにアクセスするため、多数の実施形態が開示されている。
【0012】
【0013】
【0014】
【0015】
【0016】
【0017】
【0018】
【0019】
【0020】
【0021】
【0022】
【0023】
【0024】
【0025】
【0026】
【0027】
【0028】
【0029】
【0030】
【0031】
【0032】
【0033】
【0034】
【0035】
【0036】
【0037】
【0038】
【0039】
【0040】
【図面の簡単な説明】
【0041】
図1】先行技術の人工ニューラルネットワークを示す図である。
図2】従来の2ゲート不揮発性メモリセルの横断面図である。
図3】従来の4ゲート不揮発性メモリセルの横断面図である。
図4】従来の3ゲート不揮発性メモリセルの横断面図である。
図5】別の従来の2ゲート不揮発性メモリセルの横断面図である。
図6】不揮発性メモリアレイを利用する異なるレベルの例示的な人工ニューラルネットワークを示す図である。
図7】ベクトル乗算器マトリックスを示すブロック図である。
図8】様々なレベルのベクトル乗算器マトリックスを示すブロック図である。
図9】ベクトル乗算器マトリックスの別の実施形態を示す。
図10】ベクトル乗算器マトリックスの別の実施形態を示す。
図11図10のベクトル乗算器マトリックスで動作を実行するための動作電圧を示す。
図12】ベクトル乗算器マトリックスの別の実施形態を示す。
図13図12のベクトル乗算器マトリックスで動作を実行するための動作電圧を示す。
図14】ベクトル乗算器マトリックスの別の実施形態を示す。
図15図14のベクトル乗算器マトリックスで動作を実行するための動作電圧を示す。
図16】ベクトル乗算器マトリックスの別の実施形態を示す。
図17図16のベクトル乗算器マトリックスで動作を実行するための動作電圧を示す。
図18】ベクトル乗算器マトリックスと冗長システムとを備えるメモリシステムを示す。
図19】従来技術の冗長システムを示す。
図20】ベクトル乗算器マトリックスのための冗長システムの実施形態を示す。
図21】ベクトル乗算器マトリックスのための別の冗長システムの実施形態を示す。
図22】ベクトル乗算器マトリックスのための別の冗長システムの実施形態を示す。
図23】ベクトル乗算器マトリックスのための別の冗長システムの実施形態を示す。
図24】プログラム、読み出し、又は消去動作中に不良メモリセルの代わりに冗長メモリセルにアクセスする方法の実施形態を示す。
図25】ニューラル読み出し動作中に不良メモリセルの代わりに冗長メモリセルにアクセスする方法の実施形態を示す。
図26】ベクトル乗算器マトリックスと共に使用するためのデコードシステムの実施形態を示す。
図27】ベクトル乗算器マトリックスと共に使用するためのデコードシステムの別の実施形態を示す。
図28】先行技術の長・短期記憶システムを示す。
図29】先行技術の長・短期記憶システムにおける例示的なセルを示す。
図30図29の長・短期記憶システムにおける例示的なセルの実装を示す。
図31】先行技術のゲート付き回帰型ユニットシステムを示す。
図32】先行技術のゲート付き回帰型ユニットシステムにおける例示的なセルを示す。
図33図32のゲート付き回帰型ユニットシステムにおける例示的なセルの実装を示す。
【発明を実施するための形態】
【0042】
本発明の人工ニューラルネットワークは、CMOS技術及び不揮発性メモリアレイの組み合わせを利用する。
不揮発性メモリセル
【0043】
デジタル不揮発性メモリは、周知である。例えば、米国特許第5,029,130号(「’130号特許」)は、分割ゲート不揮発性メモリセルのアレイを開示し、あらゆる目的のために参照により本明細書に組み込まれる。このようなメモリセルを図2に示す。各メモリセル210は、半導体基板12内に形成され、チャネル領域18をその間に有するソース領域14とドレイン領域16と、を含む。浮遊ゲート20は、チャネル領域18の第1の部分の上方に形成され、チャネル領域18の第1の部分から絶縁されて(かつその導電性を制御して)おり、またソース領域16の一部分の上方に形成されている。ワード線端子22(典型的には、ワード線に結合される)は、チャネル領域18の第2の部分の上方に配設され、チャネル領域18の第2の部分から絶縁され、(かつその導電性を制御する)第1の部分と、浮遊ゲート20の上方で上に延在する第2の部分と、を有する。浮遊ゲート20及びワード線端子22は、ゲート酸化物によって基板12から絶縁される。ビット線24はドレイン領域16に結合される。
【0044】
メモリセル210は、ワード線端子22に高圧正電圧を印加することによって消去され(ここで電子は、浮遊ゲートから除去される)、それにより、ファウラーノルドハイムトンネリングによって浮遊ゲート20からワード線端子22まで中間絶縁体を通って浮遊ゲート20の電子をトンネリングさせる。
【0045】
メモリセル210は、ワード線端子22に正電圧、及びソース16に正電圧を印加することによってプログラムされる(ここで電子は、浮遊ゲートに印加される)。電子電流は、ソース16からドレイン14に向かって流れることになる。電子は、ワード線端子22と浮遊ゲート20との間の間隙に達すると、加速し発熱する。熱せられた電子のいくらかは、浮遊ゲート20からの静電引力に起因してゲート酸化物26を通って浮遊ゲート20に注入される。
【0046】
ドレイン14及びワード線端子22に正の読み出し電圧を印加する(ワード線端子下のチャネル領域をターンオンする)ことによって、メモリセル210が読み出される。浮遊ゲート20が正に帯電する(すなわち、電子を消去し、ドレイン16に正に結合する)場合、浮遊ゲート20下のチャネル領域の部分は、次に同様にオンになり、電流は、チャネル領域18を流れ、これは、消去された状態つまり「1」の状態として検知される。浮遊ゲート20が負に帯電する(すなわち、電子でプログラムされる)場合、次に浮遊ゲート20下のチャネル領域の部分は、ほとんど又は完全にオフになり、電流は、チャネル領域18を流れず(又はわずかに流れる)、プログラムされた状態又は「0」の状態として検出される。
【0047】
表1は、読み出し、消去、及びプログラム動作を実行するためのメモリセル210の端子に印加され得る典型的な電圧範囲を示す。
【表1】
【0048】
他の分割ゲートメモリセル構成が知られている。例えば、図3は、ソース領域14と、ドレイン領域16と、チャネル領域18の第1の部分の上方にある浮遊ゲート20と、チャネル領域18の第2の部分の上方にある選択ゲート28(典型的には、ワード線に結合される)と、浮遊ゲート20の上方にある制御ゲート22と、及びソース領域14の上方にある消去ゲート30と、を備える4ゲートメモリセル310を示す。この構成は、米国特許第6,747,310号に記載され、この米国特許は、あらゆる目的のため参照により本明細書に組み込まれる。ここで、全てのゲートは、浮遊ゲート20を除いて、非浮遊ゲートであり、それらは電圧源に電気的に接続されている又は接続可能であることを意味する。プログラミングは、浮遊ゲート20にそれ自体を注入するチャネル領域18からの熱せられた電子によって示される。消去は、浮遊ゲート20から消去ゲート30へトンネリングする電子によって示される。
【0049】
表2は、読み出し、消去、及びプログラム動作を実行するためのメモリセル310の端子に印加され得る典型的な電圧範囲を示す。
【表2】
【0050】
図4は、分割ゲート3ゲートメモリセル410を示す。メモリセル410は、メモリセル410が別個の制御ゲートを有しないことを除いて、図3のメモリセル310と同一である。消去動作(消去ゲートを通しての消去)及び読み出し動作は、制御ゲートバイアスがないことを除いて、図3のものと同様である。プログラミング動作もまた、制御ゲートバイアスなしで行われるため、ソース線のプログラム電圧は、制御ゲートバイアスの不足を補償するためにより高い。
【0051】
表3は、読み出し、消去、及びプログラム動作を実行するためのメモリセル410の端子に印加され得る典型的な電圧範囲を示す。
【表3】
【0052】
図5は、積層ゲートメモリセル510を示す。メモリセル510は、浮遊ゲート20がチャネル領域18全体の上方に延在し、制御ゲート22が絶縁層によって分離された浮遊ゲート20の上方に延在することを除いて、図2のメモリセル210と同様である。消去、プログラミング、及び読み出し動作は、メモリセル210について前述したものと同様の方法で動作する。
【0053】
表4は、読み出し、消去、及びプログラム動作を実行するためのメモリセル510の端子に印加され得る典型的な電圧範囲を示す。
【表4】
【0054】
上記の人工ニューラルネットワークにおける不揮発性メモリセルのタイプのうちの1つを含むメモリアレイを利用するために、2つの修正が行われる。第1に、以下に更に説明されるように、アレイ内の他のメモリセルのメモリ状態に悪影響を与えずに各メモリセルを個々にプログラム、消去、及び読み出しすることができるように線を構成する。第2に、メモリセルの連続(アナログ)プログラミングを提供する。
【0055】
具体的には、アレイ内の各メモリセルのメモリ状態(すなわち、浮遊ゲートの電荷)を、完全に消去された状態から完全にプログラムされた状態へ、独立して、かつ他のメモリセルの異常が最小で連続的に変更することができる。別の実施形態では、アレイ内の各メモリセルのメモリ状態(すなわち、浮遊ゲートの電荷)を、完全にプログラムされた状態から完全に消去された状態へ、及び逆もまた同様に、独立して、かつ他のメモリセルの異常が最小で連続的に変更することができる。このことは、セル格納がアナログであるか、又は多数の別個の値(16又は64の異なる値など)のうちの1つを最低限格納することができ、それは、メモリアレイ内の全てのセルの非常に正確、かつ個々の調整を可能にし、またメモリアレイを格納に対して理想的にし、ニューラルネットワークのシナプシスの重みに微調整を加えることを意味する。
不揮発性メモリセルアレイを使用するニューラルネットワーク
【0056】
図6は、不揮発性メモリアレイを利用するニューラルネットワークの非限定実施例を示す。この例は、顔認識アプリケーションのために不揮発性メモリアレイニューラルネットを使用するが、不揮発性メモリアレイベースのニューラルネットワークを使用して他の任意の適切なアプリケーションを実施することができる。
【0057】
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フィルタは次に右側に1ピクセルだけシフトされ(すなわち、3ピクセルの列を右側に追加し、左側で3ピクセルの列をドロップする)、そのため、この新しく位置づけられたフィルタの9ピクセル値が、シナプスCB1に提供されるため、それらに同じ重みを乗じ、関連するニューロンによって第2の単一の出力値を決定する。このプロセスを、3×3フィルタが32×32ピクセル画像全体にわたって3色全て及び全てのビットについてスキャンするまで続ける(精度値)。プロセスは次に、層C1の特徴マップ全てが計算されるまで、異なる重みのセットを使用して繰り返されて、C1の異なる特徴マップを生成する。
【0058】
C1において、本例では、それぞれ30×30ピクセルを有する16個の特徴マップが存在する。各ピクセルは、入力とカーネルとの乗算から抽出された新しい特徴ピクセルであり、したがって、各特徴マップは、2次元アレイであり、したがってこの例では、シナプスCB1は、2次元アレイの16層を構成する(本明細書で言及されるニューロン層及びアレイは、必ずしも物理的関係ではなく論理的な関係であり、すなわち、アレイは必ずしも物理的な2次元アレイに配向されないことに留意する)。16個の特徴マップのそれぞれは、フィルタスキャンに適用される16個の異なるシナプス重みのセットの1つによって生成される。C1特徴マップは全て、境界同定など同じ画像特徴の異なる態様を対象とすることができる。例えば、第1のマップ(この第1のマップを生成するのに使用される全てのスキャンに共有される第1の重みセットを使用して生成される)は、円形エッジを識別することができ、第2のマップ(第1の重みセットと異なる第2の重みセットを使用して生成される)は、方形エッジ又は特定の特徴のアスペクト比などを識別することができる。
【0059】
各特徴マップ中の連続する、重なり合わない2×2領域からの値をプールする活性化関数P1(プーリング)は、C1からS1へ行く前に適用される。プーリング段階の目的は、平均して近隣の位置にすること(又はmax関数もまた使用され得る)、例えばエッジ位置の依存を低減すること、及び次の段階に行く前にデータサイズを低減することである。S1において、16個の15×15特徴マップ(すなわち、16個のそれぞれ15×15ピクセルの異なるアレイ)が存在する。S1からC2へ行くCB2内のシナプス及び関連するニューロンは、S1内のマップを1ピクセルのフィルタシフトを使用して4×4フィルタでスキャンする。C2において、22個の12×12特徴マップが存在する。各特徴マップ中の連続する、重なり合わない2×2領域からの値をプールする活性化関数P2(プーリング)は、C2からS2へ行く前に適用される。S2において、22個の6×6特徴マップが存在する。活性化関数は、S2からC3へ行くシナプスCB3で適用され、ここでC3内の全てのニューロンはS2内の全てのマップに接続する。C3において、64個のニューロンが存在する。C3から出力S3へ行くシナプスCB4は、S3をC3と完全に接続する。S3における出力は、10個のニューロンを含み、ここで最も高い出力ニューロンは、クラスを決定する。この出力は、例えば、元の画像の内容の同定又は分類を示すことができる。
【0060】
シナプスの各レベルは、不揮発性メモリセルのアレイ又はアレイの一部を使用して実行される。図7は、不揮発性メモリセルを含み、入力層と次の層との間のシナプスとして利用されるベクトルマトリックス乗算(VMM)アレイのブロック図である。具体的には、VMM32は、不揮発性メモリセルのアレイ33、消去ゲート及びワード線ゲートデコーダ34、制御ゲートデコーダ35、ビット線デコーダ36、並びにソース線デコーダ37を含み、それらのデコーダはメモリアレイ33に対する入力をデコードする。この例におけるソース線デコーダ37はまた、メモリセルアレイの出力をデコードする。あるいは、ビット線デコーダ36が、メモリアレイの出力をデコードすることができる。メモリアレイは、2つの目的を果たす。第1に、VMMにより使用される重みを格納する。第2に、メモリアレイは、効果的に、入力に、メモリアレイに格納された重みを乗じ、それらを出力線(ソース線又はビット線)ごとに合計して出力を生成し、これは、次の層への入力又は最後の層への入力になる。乗算及び加算の関数を実行することによって、メモリアレイは、別個の乗算及び加算の論理回路の必要性をなくし、また、その場でのメモリ計算により電力効率も良い。
【0061】
メモリアレイの出力は、メモリセルアレイの出力を合計してその畳み込み用の単一の値を作成する、差動加算器(加算オペアンプ又は加算カレントミラーなど)38に供給される。差動加算器は、正の入力で正の重みと負の重みとの合計を実現するようなものである。合計された出力値は、次に出力を整流する活性化関数回路39に供給される。活性化関数には、シグモイド、tanh、又はReLU関数が含まれ得る。整流された出力値は、次の層(例えば上の説明ではC1)として特徴マップの要素になり、次いで、次のシナプスに適用されて次の特徴マップ層又は最後の層を生成する。したがって、この例では、メモリアレイは、複数のシナプスを構成し(ニューロンの前の層から、又は画像データベースなどの入力層から入力を受け取る)、加算オペアンプ38及び活性化関数回路39は、複数のニューロンを構成する。
【0062】
図8は、様々なレベルのVMMのブロック図である。図8に示されるように、入力は、デジタルアナログ変換器31によってデジタルからアナログに変換され、入力VMM32aに提供される。変換されたアナログ入力は、電圧又は電流であり得る。第1の層の入力D/A変換は、マトリックス乗算器の適切なアナログレベルに入力をマッピングする関数又はLUT(ルックアップテーブル)を使用することによって行うことができる。入力変換はまた、外部アナログ入力をVMMへのマッピングされたアナログ入力に変換するために、A/A変換器によって行うこともできる。入力VMM32aによって生成された出力は、次に、次のVMM(隠しレベル2)32bへの入力として提供される出力を生成する次のVMM(隠しレベル1)32bへの入力として提供される、などとなる。VMMの32の様々な層は、畳み込みニューラルネットワーク(convolutional neural network、CNN)のシナプス及びニューロンの異なる層として機能する。各VMMは、スタンドアローンの不揮発性メモリアレイであり得、又は複数のVMMは、同じ不揮発性メモリアレイの異なる部分を利用することができ、又は複数のVMMは、同じ不揮発性メモリアレイの重なり合う部分を利用することができる。図8に示される例は、5つの層(32a、32b、32c、32d、32e)、すなわち、1つの入力層(32a)、2つの隠れ層(32b、32c)、及び2つの完全に接続された層(32d、32e)を含む。当業者であれば、これは単なる例示であり、代わりにシステムが2つを超える隠れ層及び2つを超える完全に接続された層を含み得ることを理解するであろう。
ベクトルマトリックス乗算(VMM)アレイ
【0063】
図9は、図3に示されるタイプのメモリセルに特に適したニューロンVMM900を示し、入力層と次の層との間でシナプス及びニューロンの一部として利用される。VMM900は、不揮発性メモリセルのメモリアレイ901、及び基準アレイ902(アレイの頂部で)を備える。あるいは、別の基準アレイが底部に位置することができる。VMM900では、制御ゲート線903などの制御ゲート線が垂直方向に延びており(したがって、行方向の基準アレイ902が入力制御ゲート線に直交する)、消去ゲート線904などの消去ゲート線が水平方向に延びている。ここで、入力は制御ゲート線に提供され、出力はソース線に現れる。一実施形態では、偶数行のみが使用され、別の実施形態では、奇数行のみが使用される。ソース線に位置する電流は、ソース線に接続されたメモリセルからの全ての電流の合計関数を実行する。
【0064】
ニューラルネットワークについて本明細書に記載されるように、フラッシュセルは、サブ閾値領域で動作するように構成されることが好ましい。
【0065】
本明細書に記載されたメモリセルは、弱反転にバイアスされる。
Ids=Io*(Vg-Vth)/kVt=w*Io*(Vg)/kVt
w=e(-Vth)/kVt
【0066】
入力電流を入力電圧に変換するためにメモリセルを使用するI-Vログ変換器について:
Vg=k*Vt*log[Ids/wp*Io]
【0067】
ベクトルマトリックス乗算器VMMとして使用されるメモリアレイについて、出力電流は以下である:
Iout=wa*Io*(Vg)/kVt、すなわち
Iout=(wa/wp)*Iin=W*Iin
W=e(Vthp-Vtha)/kVt
【0068】
ワード線又は制御ゲートは、入力電圧のためのメモリセルの入力として使用することができる。
【0069】
あるいは、フラッシュメモリセルは、線形領域で動作するように構成することができる。
Ids=β*(Vgs-Vth)*Vds;β=u*Cox*W/L
W α(Vgs-Vth)
【0070】
I-V線形変換器では、線形領域で動作するメモリセルを使用して、入力/出力電流を入力/出力電圧に線形に変換することができる。
【0071】
ESFベクトルマトリックス乗算器の他の実施形態は、参照により本明細書に組み込まれる米国特許出願第15/826,345号に記載されているとおりである。ソース線又はビット線は、ニューロン出力(電流和出力)として使用することができる。
【0072】
図10は、図2に示されるタイプのメモリセルに特に適したニューロンVMM1000を示し、入力層と次の層との間のシナプスとして利用される。VMM1000は、不揮発性メモリセルのメモリアレイ1003、基準アレイ1001、及び基準アレイ1002を備える。基準アレイ1001及び1002は、アレイの列方向において、端子BLR0~3に流れ込む電流入力を電圧入力WL0~3に変換する役割を果たす。実際には、基準メモリセルは、マルチプレクサを通してそれらの中に流れる電流入力にダイオード接続されている。基準セルは、標的基準レベルに調整(例えば、プログラム)される。標的基準レベルは、基準ミニアレイマトリックスによって提供される。メモリアレイ1003は、2つの目的を果たす。第1に、VMM1000により使用される重みを格納する。第2に、メモリアレイ1003は、メモリアレイに格納された重みによって、入力(端子BLR0~3に提供される電流入力であって、基準アレイ1001及び1002がこれらの電流入力を入力電圧に変換してワード線WL0~3に供給する)を有効に乗算して、次に、全ての結果(メモリセル電流)を加算して出力を生成し、これは次の層への入力又は最終の層への入力となる。乗算及び加算の関数を実行することによって、メモリアレイは、別個の乗算及び加算の論理回路の必要性をなくし、また、電力効率も良い。ここで、電圧入力はワード線に提供され、出力は、読み出し(推論)動作中にビット線に現れる。ビット線に位置する電流は、ビット線に接続されたメモリセルからの全ての電流の合計関数を実行する。
【0073】
図11は、VMM1000の動作電圧を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルのソース線、及び非選択セルのソース線に位置する電圧を示す。行は、読み出し、消去、及びプログラムの動作を示す。
【0074】
図12は、図2に示されるタイプのメモリセルに特に適したニューロンVMM1200を示し、入力層と次の層との間でシナプス及びニューロンの一部として利用される。VMM1200は、不揮発性メモリセルのメモリアレイ1203、基準アレイ1201、及び基準アレイ1202を備える。アレイVMM1200の行方向に延びる基準アレイ1201及び1202は、VMM1200においてワード線が垂直方向に延びることを除いて、VMM1000と同様である。ここで、入力はワード線に提供され、出力は読み出し動作中にソース線に現れる。ソース線に位置する電流は、ソース線に接続されたメモリセルからの全ての電流の合計関数を実行する。
【0075】
図13は、VMM1200の動作電圧を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルのソース線、及び非選択セルのソース線に位置する電圧を示す。行は、読み出し、消去、及びプログラムの動作を示す。
【0076】
図14は、図3に示されるタイプのメモリセルに特に適したニューロンVMM1400を示し、入力層と次の層との間でシナプス及びニューロンの一部として利用される。VMM1400は、不揮発性メモリセルのメモリアレイ1403、基準アレイ1401、及び基準アレイ1402を備える。基準アレイ1401及び1402は、端子BLR0~3に流れ込む電流入力を電圧入力CG0~3に変換する役割を果たす。実際には、基準メモリセルは、それらに流れ込む電流入力と、カスコーディングマルチプレクサ1414を介してダイオード接続されている。mux1414は、読み出し中の基準セルのビット線に一定の電圧を確保するために、mux1405及びカスコーディングトランジスタ1404を含む。基準セルは、標的基準レベルに調整される。メモリアレイ1403は、2つの目的を果たす。第1に、VMM1400により使用される重みを格納する。第2に、メモリアレイ1403は、メモリアレイに格納された重みによって、入力(端子BLR0~3に提供される電流入力であって、基準アレイ1401及び1402がこれらの電流入力を入力電圧に変換して制御ゲートCG0~3に供給する)を有効に乗算して、次に、全ての結果(セル電流)を加算して出力を生成し、これは次の層への入力又は最終の層への入力となる。乗算及び加算の関数を実行することによって、メモリアレイは、別個の乗算及び加算の論理回路の必要性をなくし、また、電力効率も良い。ここで、入力はワード線に提供され、出力は読み出し動作中にビット線に現れる。ビット線に位置する電流は、ビット線に接続されたメモリセルからの全ての電流の合計関数を実行する。
【0077】
VMM1400は、メモリアレイ1403内のメモリセルの一方向調整を実施する。すなわち、各セルは消去され、次いで、浮遊ゲートの所望の電荷に達するまで部分的にプログラムされる。過度に多くの電荷が浮遊ゲートに位置する場合(誤った値がセル内に格納されるなど)、セルは消去されなければならず、一連の部分的なプログラミング動作をやり直さなければならい。示されるように、同じ消去ゲートを共有する2つの行は、一緒に消去される必要があり(ページ消去として知られる)、その後、各セルは、浮遊ゲートの所望の電荷に達するまで部分的にプログラムされる。
【0078】
図15は、VMM1400の動作電圧を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルの制御ゲート、選択セルと同じセクタ内の非選択セルの制御ゲート、選択セルとは異なるセクタ内の非選択セルの制御ゲート、選択セルの消去ゲート、非選択セルの消去ゲート、選択セルのソース線、及び非選択セルのソース線に位置する電圧を示す。行は、読み出し、消去、及びプログラムの動作を示す。
【0079】
図16は、図3に示されるタイプのメモリセルに特に適したニューロンVMM1600を示し、入力層と次の層との間でシナプス及びニューロンの一部として利用される。VMM1600は、不揮発性メモリセルのメモリアレイ1603、基準アレイ1601、及び基準アレイ1602を備える。EG線が垂直に延びている一方で、CG線及びSL線は水平に延びている。VMM1600は、VMM1600が双方向調整を実装することを除いてVMM1400と同様であり、各個々のセルは、浮遊ゲートの所望の電荷量に達するために、完全に消去され、部分的にプログラムされ、必要に応じて部分的に消去され得る。示されるように、基準アレイ1601及び1602は、端子BLR0~3内の入力電流を制御ゲート電圧CG0~3に変換し(マルチプレクサを介したダイオード接続された基準セルの作用を通じて)、行方向でメモリセルに印加される。電流出力(ニューロン)は、ビット線に接続されたメモリセルからの全ての電流を合計するビット線内にある。
【0080】
図17は、VMM1600の動作電圧を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルの制御ゲート、選択セルと同じセクタ内の非選択セルの制御ゲート、選択セルとは異なるセクタ内の非選択セルの制御ゲート、選択セルの消去ゲート、非選択セルの消去ゲート、選択セルのソース線、及び非選択セルのソース線に位置する電圧を示す。行は、読み出し、消去、及びプログラムの動作を示す。
【0081】
先行技術は、長・短期記憶(LSTM)として知られる概念を含む。LSTM単位は、多くの場合、神経ネットワークで使用される。LSTMは、ニューラルネットワークが任意の時間間隔にわたって情報を再構成できるようにし、また後続の動作でその情報を使用することを可能にする。従来のLSTMユニットは、セル、入力ゲート、出力ゲート、及びフォーゲットゲートを含んでいる。3つのゲートは、セルの内外への情報の流れを調節する。VMMは、LSTM単位において特に有用である。
【0082】
図28は、例示的なLSTM2800を表す。この例におけるLSTMは、セル2801、2802、2803、及び2804を含む。セル2801は入力ベクトルx0を受け取り、出力ベクトルh0及びセル状態ベクトルc0を生成する。セル2802は、入力ベクトルx1、出力ベクトル(隠れた状態)h0、及びセル状態c0をセル2801から受け取り、出力ベクトルh1及びセル状態ベクトルc1を生成する。セル2803は、入力ベクトルx2、出力ベクトル(隠れた状態)h1、及びセル状態c1をセル2802から受け取り、出力ベクトルh2及びセル状態ベクトルc2を生成する。セル2804は、入力ベクトルx3、出力ベクトル(隠れた状態)h2、及びセル状態c2をセル2803から受け取り、出力ベクトルh3を生成する。更なるセルを使用することができ、4つのセルのLSTMは単なる例である。
【0083】
図29は、図28のセル2801、2802、2803、及び2804に使用することができる、LSTMセル2900の例示的な実装を示す。LSTMセル2900は、前のセルから入力ベクトルx(t)及びセル状態ベクトルc(t-1)を受け取り、セル状態(t)及び出力ベクトルh(t)を生成する。
【0084】
LSTMセル2900は、それぞれ0~1の数を適用するシグモイド関数デバイス2901、2902、及び2903を含み、入力ベクトル内の各構成要素のいかほどが出力ベクトルに許容されるかを制御する。LSTMセル2900はまた、入力ベクトルに双曲線正接関数を適用するための双曲線正接デバイス2904及び2905と、2つのベクトルを一緒に乗算するための乗算器デバイス2906、2907、及び2908と、2つのベクトルを一緒に加算するための加算デバイス2909と、を備える。
【0085】
図30は、LSTMセル2900の実装例であるLSTMセル3000を示す。読者の便宜のために、図29やLSTMセル2900に由来する同じ番号付けが、図30やLSTMセル3000において使用されている。図30で分かるように、シグモイド関数デバイス2901、2902、及び2903並びに双曲線正接デバイス2904及び2905はそれぞれ、複数のVMMアレイ3001を含む。したがって、VMMアレイは、特定のニューラルネットワークシステムで使用されるLSTMセルにおいて特に重要であることが分かる。
【0086】
LSTMシステムは、典型的には、複数のVMMアレイを含み、それらのそれぞれは、加算器及び起動回路ブロック及び高電圧生成ブロックといった、VMMアレイの外側にある特定の回路のブロックによって提供される機能を必要とすることが更に理解され得る。各VMMアレイのために別個の回路ブロックを設けると、半導体デバイス内に相当な範囲のスペースが必要となり、幾分非効率的である。したがって、以下に記載される実施形態は、VMMアレイ自体の外側に必要とされる回路を最小限にすることを試みる。
【0087】
同様に、アナログVMM実装をGRU(ゲート付き回帰型ユニット)システムに使用することができる。GRUは、反復神経ネットワーク内のゲーティング機構である。GRUは、LSTMと類似しており、1つの顕著な差は、GRUが出力ゲートを欠くことである。
【0088】
図31は、例示的なGRU3100を表す。この例におけるGRUは、セル3101、3102、3103、及び3104を含む。セル3101は入力ベクトルx0を受け取り、出力ベクトルh0及びセル状態ベクトルc0を生成する。セル3102は、入力ベクトルx1、出力ベクトル(隠れた状態)h0、及びセル状態c0をセル3101から受け取り、出力ベクトルh1及びセル状態ベクトルc1を生成する。セル3103は、入力ベクトルx2、出力ベクトル(隠れた状態)h1、及びセル状態c1をセル3102から受け取り、出力ベクトルh2及びセル状態ベクトルc2を生成する。セル3104は、入力ベクトルx3、出力ベクトル(隠れた状態)h2、及びセル状態c2をセル3103から受け取り、出力ベクトルh3を生成する。更なるセルを使用することができ、4つのセルのGRUは単なる例である。
【0089】
図32は、図31のセル3101、3102、3103、及び3104に使用することができるGRUセル3200の例示的な実装を示す。GRUセル3200は、前のセルから入力ベクトルx(t)及びセル状態ベクトルh(t-1)を受け取り、セル状態h(t)を生成する。GRUセル3200は、それぞれ0~1の数をセル状態h(t-1)及び入力ベクトルx(t)からの構成要素に適用するシグモイド関数デバイス3201及び3202を含む。GRUセル3200はまた、入力ベクトルに双曲線正接関数を適用するための双曲線正接デバイス3203と、2つのベクトルを一緒に乗算するための乗算器デバイス3204、3205、及び3206と、2つのベクトルを一緒に加えるための加算デバイス3207と、出力を生成するために入力を1から減算する相補デバイス3208を備える。
【0090】
図33は、GRUセル3200の実例であるGRUセル3300を示す。読者の便宜のために、図32やGRUセル3200に由来する同じ番号付けが、図33やGRUセル3300において使用されている。図33で分かるように、シグモイド関数デバイス3201及び3202、並びに双曲線正接デバイス3203はそれぞれ、複数のVMMアレイ3301を備える。したがって、VMMアレイは、特定のニューラルネットワークシステムで使用されるGRUセルにおいて特に使用されることが分かる。
【0091】
GRUシステムは、典型的には、複数のVMMアレイを含み、それらのそれぞれは、加算器及び起動回路ブロック及び高電圧生成ブロックといった、VMMアレイの外側にある特定の回路のブロックによって提供される機能を必要とすることが更に理解され得る。各VMMアレイのために別個の回路ブロックを設けると、半導体デバイス内に相当な範囲のスペースが必要となり、幾分非効率的である。したがって、以下に記載される実施形態は、VMMアレイ自体の外側に必要とされる回路を最小限にすることを試みる。
【0092】
図18は、VMMシステム1800を示す。VMMシステム1800は、VMMアレイ1807、低電圧行デコーダ1803、高電圧行デコーダ1805、基準セル低電圧列デコーダ1806(列方向の基準アレイのために示されており、行方向に変換を出力するための入力を提供することを意味する)、ビット線PEドライバ1802、ビット線マルチプレクサ1808、活性化関数回路及び加算器1809、制御論理1804、及びアナログバイアス回路1801を備える。
【0093】
低電圧行デコーダ1803は、読み出し及びプログラム動作のためのバイアス電圧を提供し、高電圧行デコーダ1805のデコード信号を提供する。高電圧行デコーダ1805は、プログラム及び消去動作のための高電圧バイアス信号を提供する。ビット線PEドライバ1801は、プログラム、検証、及び消去におけるビット線の制御関数を提供する。バイアス回路1801は、様々なプログラム、消去、プログラム検証、及び読み出し動作に必要な複数の電圧を提供する共有バイアスブロックである。
【0094】
VMMシステム1800は、冗長アレイ1810及び/又は冗長アレイ1813を更に備える。冗長アレイ1810及び1813はそれぞれ、以下により詳細に記載される冗長性の実施形態によるアレイ1807内の欠陥部分を置換するためのアレイ冗長性を提供する。
【0095】
VMMシステム1800は、NVR(不揮発性レジスタ、別名情報セクタ)セクタ1811を更に備え、これは、ユーザ情報、デバイスID、パスワード、セキュリティキー、トリムビット、構成ビット、製造情報などを格納するために使用されるアレイセクタである。
【0096】
VMMシステム1800は、基準セクタ1812及び/又は基準システム1850を任意選択で備える。基準システム1850は、基準アレイ1852、基準アレイ低電圧行デコーダ1851、基準アレイ高電圧行デコーダ1853、及び基準アレイ低電圧列デコーダ1854を備える。基準システムは、複数のVMMシステムにわたって共有することができる。
【0097】
基準アレイ低電圧行デコーダ1851は、基準アレイ1852を含む読み出し及びプログラミング動作のためのバイアス電圧を提供し、基準アレイ高電圧行デコーダ1853のデコード信号も提供する。基準アレイ高電圧行デコーダ1853は、基準アレイ1852を含むプログラム及び動作のための高電圧バイアスを提供する。基準アレイ低電圧列デコーダ1854は、基準アレイ1852のデコード関数を提供する。基準アレイ1852は、プログラム検証のための基準ターゲット又はセルマージンを提供する(辺縁セルを探索する)ようなものである。
【0098】
図19は、プログラム、消去、又は読み出し動作中に1つ以上の不良メモリセルを含む行の冗長性をもたらす先行技術のメモリシステム1900を示す。メモリシステム1900は、アドレス比較器1903、論理回路1905、アレイ1906、冗長アレイ1907、行デコーダ1908、及び冗長行デコーダ1909を含む。
【0099】
試験又は構成段階中、アレイ1906内のメモリセルの各行が試験され、検証される。不良であると見なされるいずれかのメモリセルが識別され、1つ以上の不良メモリセルを含む各行のアドレスは、不揮発性メモリ(図示せず)に格納される。その後、メモリシステム1900の動作中、読み出し又は書き込み動作のための各アドレス1901は、1つ以上の不良メモリセルを含む行に対応する、格納されたアドレスのセット内の各アドレスに対して、アドレス比較器1903によって比較される。
【0100】
アドレス比較器1903によって、格納されたアドレスのいずれかとの一致が見つかった場合、イネーブル信号1904がアサートされ、これは、受け取られたアドレスが不良の行のためのものであることを示す。イネーブル信号1904は、冗長アレイ行デコーダ1909によって受け取られ、次いで、不良メモリセルを含む行に割り当てられた行を選択する。したがって、プログラム、消去、又は読み出し動作は、不良メモリセルを含む行の代わりに冗長行を対象とする。
【0101】
アドレス比較器1903により一致が見つからない場合、イネーブル信号1904がデアサートされ、行デコーダ1908が論理回路1905の出力によって有効にされる(ここではインバータとして示される)。この状況では、受け取られたアドレス1901は、動作のためにアレイ1906内の行にアクセスするために使用される。
【0102】
設計により、割り当てられた冗長行のうちの1つのみが、任意の所与の時間においてアサートされ得る。したがって、この先行技術のシステムはニューラル読み出し動作を実行するために使用され得なかった。それにおいては、全ての不良ではない列及び割り当てられた冗長行がアサートされている。
【0103】
図20は、改良されたメモリシステムの実施形態を示している。メモリシステム2000は、1つ以上の不良メモリセルを含む行に関する冗長性をもたらす。メモリシステム1900とは異なり、メモリシステム2000は、ニューラル読み出し動作中に全ての割り当てられた冗長行をアサートすることができ、メモリシステム1900と同様にプログラム、消去、又は読み出し動作を実行することもできる。メモリシステム2000は、メモリシステム1900と同じ構成要素を含むが、ただし行デコーダ1908の代わりに行デコーダ及び冗長ラッチブロック2008が使用される。行デコーダ及び冗長ラッチブロック2008は、全ての割り当てられた冗長行がニューラル読み出し動作中にアサートされることを可能にする回路を含む。
【0104】
図21は、ここで行デコーダ及び冗長ラッチブロック2101として示されている、行デコーダ及び冗長ラッチブロック2008の実施形態に関する更なる詳細を示す。メモリシステム2100は、行デコーダ及び冗長ラッチブロック2101、アレイ2102、冗長アレイ2103、及び高電圧デコーダ2104を備える。行デコーダ及び冗長ラッチブロック2101は、サブブロック2105の多数のインスタンスを含み、サブブロック2105の各インスタンスはアレイ2102内の一対のワード線(ここではワード線2115及び2116)に結合される。したがって、この実施形態では、サブブロック2105及び同様のサブブロックはそれぞれ、アレイ2102内のメモリのセクタに結合される。代替的な実施形態では、各サブクロックは、2つを超える行に結合することができる。
【0105】
行デコーダ及び冗長ラッチブロック2101は、冗長アレイ2103内の一対のワード線(ここではワード線2117及び2118)に結合された冗長サブブロック2113を更に含む。冗長サブブロック2113と同様の追加の冗長サブブロックは、行デコーダ及び冗長ラッチブロック2101に含まれ得る。
【0106】
サブブロック2105は、NANDゲート2106及び2107、インバータ2108及び2109、NANDゲート2110及び2111、インバータ2112及び2113、並びにラッチ2114を備える。ラッチ2114は、試験又は構成段階中に、プログラムされる(電源投入時に、又は冗長ロードコマンドに応答して、構成データをロードされる)。ワード線2115又は2116が1つ以上の不良メモリセルを含む行に結合される場合、「1」は、ラッチ2114にプログラムされる。そうでなければ、ラッチ2114は「0」を格納する。通常動作中、NANDゲート2106又は2107がワード線2115又は2116に対応するアドレスをそれぞれ受け取ると、ラッチ2114は、そのワード線をアサートする代わりにデアサートさせる。したがって、不良メモリセルを含むワード線は選択されない。
【0107】
冗長サブブロック2113は、サブブロック2105と同様の構成要素を含む。ここで、ラッチ2119は、試験又は構成段階中にプログラムされる。ワード線2117又は2118が使用されるべき場合に、ラッチ2119は「0」でプログラムされる。そうでなければ、ラッチ2119は「1」でプログラムされる。通常動作中、受け取りNANDゲートがワード線2117又は2118に対応するアドレスを受け取ると、ラッチ2119はそのワード線をアサートさせる。したがって、冗長メモリセルを含むワード線が選択される。特に、「0」のラッチ2119などのラッチを構成することによって、任意の所与の時間(ニューラル読み出し動作中など)に複数の冗長行を選択することができる。
【0108】
図22は、ここで行デコーダ及び冗長ラッチブロック2201として示されている、行デコーダ及び冗長ラッチブロック2008の別の実施形態に関する更なる詳細を示す。メモリシステム2200は、行デコーダ及び冗長ラッチブロック2201、アレイ2202、冗長アレイ2203、及び高電圧デコーダ2204を備える。行デコーダ及び冗長ラッチブロック2201は、サブブロック2205の多数のインスタンスを含み、サブブロック2205の各インスタンスはアレイ2202内のワード線(ここではワード線2211)に結合される。したがって、この実施形態では、サブブロック2205及び同様のサブブロックはそれぞれ、アレイ2202内のメモリのセクタに結合される。
【0109】
行デコーダ及び冗長ラッチブロック2201は、冗長アレイ2203内の冗長ワード線(ここではワード線2212)に結合された冗長ブロック2213を更に含む。
【0110】
サブブロック2205は、NANDゲート2206、インバータ2207、ラッチ2208、及びスイッチ2209及び2210を含む。ここで、冗長ラッチ2208は、メモリシステム2200の構成段階の間にプログラムされる。ラッチ2208が「1」を含む場合、アレイ2202内のワード線2211に結合された対応する行は不良ではない。通常の動作中、スイッチ2209が閉じられ、スイッチ2210が開いており、適切なアドレスが受け取られると、アレイ2202内のワード線2211がアクセスされる。ラッチ2208が「0」を含む場合、アレイ2202内の対応する行は不良である。通常の動作中、スイッチ2209は開いており、スイッチ2109は閉じられ、アレイ2202内のワード線2211は、適切なアドレスが受け取られたときにアクセスされない。代わりに、アレイ2202内の冗長ワード線2212は、垂直線2215を介してアクセスされる。
【0111】
図23は、本発明の概念の別の実施形態を示している。メモリシステム2300は、列デコーダ及び冗長ラッチブロック2301、アレイ2302、及び冗長アレイ2303を含む。列デコーダ及び冗長ラッチブロック2301は、サブブロック2304の多数のインスタンスを含み、サブブロック2304の各インスタンスは、アレイ2302内のビット線又はビット線の群(ここではビット線2308)に選択的に結合される。サブブロック2304は、ラッチ2305、スイッチ2306、及びスイッチ2307を含む。
【0112】
ラッチ2305は、メモリシステム2300の試験又は構成段階の間にプログラムされる。ラッチ2305が「1」を含む場合、ビット線2308に結合された対応する列は不良ではない。通常動作中、スイッチ2306は閉じられ、スイッチ2307は開いており、ビット線2308は、適切なアドレスが受け取られときにアクセスされる。ラッチ2305が「0」を含む場合、アレイ2302内の対応する列は不良である。通常動作中、スイッチ2306は開いており、スイッチ2307は閉じられ、アレイ2202内のビット線2308は、適切なアドレスが受け取られたときにアクセスされない。代わりに、冗長アレイ2303内の冗長ビット線2309は、水平線2315を介してアクセスされる。
【0113】
図24は、プログラム、プログラム検証、及び消去方法2400を示す。プロセスが開始する(ステップ2401)。プログラム、プログラム検証、又は消去コマンドが受け取られる(ステップ2402)。受け取られたアドレスは、メモリアレイ内の既知の不良の行又は列のアドレスと比較される(ステップ2403)。
【0114】
一致が見つかった場合(ステップ2404)、劣悪アドレスが存在することを意味する。システムは、劣悪アドレスを無効にし(ステップ2405)、対応する冗長アドレスを有効にする(ステップ2406)。次いで、冗長アドレスを使用して、プログラム、プログラム検証、又は消去コマンドを実行する(ステップ2407)。次いで、プロセスが完了する(ステップ2408)。
【0115】
一致が見つからない場合(ステップ2404)、受け取られたアドレスが有効にされる(ステップ2409)。次いで、受け取られたアドレスを使用して、プログラム、プログラム検証、又は消去コマンドを実行する(ステップ2410)。次いで、プロセスが完了する(ステップ2408)。
【0116】
図25は、ニューラル読み出しプロセス2500の実施形態を示す。プロセスが開始する(ステップ2501)。冗長ラッチは冗長情報がロード又は構成される(ステップ2502)。ニューラル読み出し動作が発生し、劣悪な行又は列を除いたアレイ及び冗長アレイ全体が、有効にされる(ステップ2503)。プロセスはそれらを完了する(ステップ2504)。
【0117】
図26は、図2に示すタイプのメモリセルを含むアレイと共に使用するのに好適なデコード回路2600を示す。デコード回路2600は、ワード線デコーダ2601、高電圧供給2604、及びソース線デコーダ2606を含む。ワード線デコーダ2601は、PMOSトランジスタ2603及びNMOSトランジスタ2602を備え、これらは図示されているように構成される。ソース線デコーダ2606は、図示されるように構成された、NMOSトランジスタ2607、2608及び2609を備える。高電圧供給2604は、高電圧論理供給部2605を備える。
【0118】
図27は、図3に示すタイプのメモリセルを含むアレイと共に使用するのに好適なデコード回路2700を示す。デコード回路2700は、消去ゲート線デコーダ2701、制御ゲートデコーダ2706、ソース線デコーダ2709、及び高電圧供給2704を備える。消去ゲートデコーダ2701は、図示のように構成された、PMOSトランジスタ2703並びにNMOSトランジスタ2702を備える。制御ゲートデコーダ2706は、PMOSトランジスタ2708及びNMOSトランジスタ2707を備える。ソース線デコーダ2709は、図示されるように構成された、NMOSトランジスタ2710、2711及び2712を備える。高電圧供給2704は、高電圧論理供給部2705を備える。
【0119】
本明細書で使用される場合、「の上方に(over)」及び「に(on)」という用語は両方とも、「に直接」(中間材料、要素、又は空間がそれらの間に何ら配設されない)、及び「の上に間接的に」(中間材料、要素、又は空間がそれらの間に配設される)を包括的に含むことに留意するべきである。同様に、「隣接した」という用語は、「直接隣接した」(中間材料、要素、又は空間がそれらの間に何ら配設されない)、及び「間接的に隣接した」(中間材料、要素、又は空間がそれらの間に配設される)を含み、「に取り付けられた」は、「に直接取り付けられた」(中間材料、要素、又は空間がそれらの間に何ら配設されない)、及び「に間接的に取り付けられた」(中間材料、要素、又は空間がそれらの間に配設される)を含み、「電気的に結合された」は、「に直接電気的に結合された」(要素を一緒に電気的に連結する中間材料又は要素がそれらの間にない)、及び「間接的に電気的に結合された」(要素を一緒に電気的に連結する中間材料又は要素がそれらの間にある)を含む。例えば、要素を「基板の上方に」形成することは、その要素を基板に直接、中間材料/要素をそれらの間に何ら伴わずに、形成すること、及びその要素を基板の上に間接的に、1つ以上の中間材料/要素をそれらの間に伴って、形成することを含み得る。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31
図32
図33