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

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

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

特開2024-109726深層学習人工ニューラルネットワークにおけるアナログニューラルメモリをプログラミングするための方法及び装置
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024109726
(43)【公開日】2024-08-14
(54)【発明の名称】深層学習人工ニューラルネットワークにおけるアナログニューラルメモリをプログラミングするための方法及び装置
(51)【国際特許分類】
   G11C 16/26 20060101AFI20240806BHJP
   G11C 11/54 20060101ALI20240806BHJP
   G06N 3/065 20230101ALI20240806BHJP
【FI】
G11C16/26
G11C11/54
G06N3/065
【審査請求】有
【請求項の数】16
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024081446
(22)【出願日】2024-05-20
(62)【分割の表示】P 2023008471の分割
【原出願日】2019-01-18
(31)【優先権主張番号】62/642,878
(32)【優先日】2018-03-14
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】15/990,395
(32)【優先日】2018-05-25
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】500147506
【氏名又は名称】シリコン ストーリッジ テクノロージー インコーポレイテッド
【氏名又は名称原語表記】SILICON STORAGE TECHNOLOGY, INC.
(74)【代理人】
【識別番号】110000626
【氏名又は名称】弁理士法人英知国際特許商標事務所
(72)【発明者】
【氏名】トラン、ヒュー バン
(72)【発明者】
【氏名】ティワリ、ビピン
(72)【発明者】
【氏名】ドー、ナン
(72)【発明者】
【氏名】レイテン、マーク
(57)【要約】      (修正有)
【課題】人工ニューラルネットワークのベクトルマトリクス乗算(VMM)アレイと共に使用するプログラミングシステム及び方法を提供する。
【解決手段】不揮発性メモリアレイベースのニューラルネットワークを使用して他の任意の適切なアプリケーションを実施する方法であって、入力S0から特徴マップC1に行くシナプスCB1が、入力をフィルタでスキャンしてフィルタをシフトし、それらに同じ重みを乗じて関連するニューロンによって第2の単一の出力値を決定し、異なる重みのセットを使用して繰り返してC1の異なる特徴マップを生成し、活性化関数P1を適用し、各特徴マップ中の連続する重なり合わない2×2領域からの値をプールし、活性化関数P2(プーリング)を、C2からS2へ行く前に適用し、各特徴マップ中の連続する重なり合わない2×2領域からの値をプールし、C3から出力S3へ行くシナプスCB4で、S3をC3と完全に接続する。
【選択図】図6
【特許請求の範囲】
【請求項1】
フラッシュメモリセルの行及び列を含むベクトルマトリクス乗算アレイ内の選択されたメモリセルをプログラミングする方法であって、該方法は、
前記アレイ内の複数のフラッシュメモリセルをプログラミングするステップと、
前記アレイ内の前記複数のフラッシュメモリセルを部分的に消去するステップと、
前記複数のフラッシュメモリセル内の選択されたセルに対して第1のプログラム動作を実行するステップであって、第1のレベルの電荷は、前記選択されたセルの浮遊ゲートに記憶される、ステップと、
前記選択されたセルに対して第2のプログラム動作を実行するステップであって、追加のレベルの電荷が、前記選択されたセルの前記浮遊ゲートに記憶される、ステップと、
前記選択されたセルに所望のレベルの電荷が記憶されるまで、又は前記第2のプログラム動作が最大回数実行されるまで、前記第2のプログラム動作を繰り返すステップと、を含む、方法。
【請求項2】
各第2のプログラム動作の後に検証工程が実行され、前記検証工程が第1の結果をもたらすと、前記繰り返すステップが行われ、前記検証工程が第2の結果をもたらすと、前記繰り返すステップが行われない、請求項1に記載の方法。
【請求項3】
使用されていないメモリセルのためのハードプログラム工程を更に含む、請求項1に記載の方法。
【請求項4】
前記第1のプログラム動作及び前記第2のプログラム動作はパルス変調を利用する、請求項1に記載の方法。
【請求項5】
前記第1のプログラム動作及び前記第2のプログラム動作はプログラム電流変調を利用する、請求項1に記載の方法。
【請求項6】
前記第1のプログラム動作及び前記第2のプログラム動作は、ある選択されたメモリセルにパルス変調を利用し、別の選択されたメモリセルに一定のプログラムパルスを利用する、請求項1に記載の方法。
【請求項7】
前記第1のプログラム動作及び前記第2のプログラム動作は高電圧レベル変調を利用する、請求項1に記載の方法。
【請求項8】
前記検証工程は、前記選択されたセルによって引き込まれた電流を、基準マトリクスによって引き込まれた電流と比較することを含む、請求項2に記載の方法。
【請求項9】
前記メモリセルは、分割ゲートメモリセルである、請求項1に記載の方法。
【請求項10】
前記メモリセルは、積層ゲートメモリセルである、請求項1に記載の方法。
【請求項11】
前記基準マトリクスは、共有された制御ゲート及び共有された消去ゲートを含む、請求項1に記載の方法。
【請求項12】
前記基準マトリクスは、各基準セルに対して共有された制御ゲート及び別個の消去ゲートを含む、請求項1に記載の方法。
【請求項13】
基準電流は、基準マトリクスからの複数の定電流、増分電流、及び差分電流から組み合わされる、請求項1に記載の方法。
【請求項14】
ベクトルマトリクス乗算器のための選択されたメモリセルによって引き込まれた電流を、基準マトリクスによって引き込まれた電流と比較するための回路であって、該回路は、
前記選択されたメモリセルに結合された第1のNMOSトランジスタに結合された第1のPMOSトランジスタを含む第1の回路と、
前記基準マトリクスに結合された第2のNMOSトランジスタに結合された第2のPMOSトランジスタを含む第2の回路と、を含み、
前記第2のPMOSトランジスタと前記第2のNMOSトランジスタとの間のノードは、前記選択されたメモリセルに記憶された値を示す電流を出力する、回路。
【請求項15】
アレイ漏れ補償回路を更に含む、請求項14に記載の回路。
【請求項16】
基準アレイ漏れ補償回路を更に含む、請求項14に記載の回路。
【請求項17】
前記選択されたメモリセルは、分割ゲートメモリセルである、請求項14に記載の回路。
【請求項18】
前記選択されたメモリセルは、積層ゲートメモリセルである、請求項14に記載の回路。
【請求項19】
ベクトルマトリクス乗算器のための選択されたセルによって引き込まれた電流を、基準マトリクスによって引き込まれた電流と比較するための回路であって、該回路は、
第1のノードから受信した前記電流を基準電流と比較するためのトランジスタであって、前記第1のノードは、第1のスイッチによって基準マトリクスに、又は第2のスイッチによって選択されたメモリセルに選択的に結合される、トランジスタを含み、
前記第1のノードの電圧が比較結果を示す、回路。
【請求項20】
前記基準電流は前記トランジスタに保持される、請求項19に記載の回路。
【請求項21】
第1のノードから受信した前記電流を基準電流と比較するためのコンパレータを更に含み、
前記コンパレータの出力は、前記選択されたセルに記憶された値が、前記基準マトリクスに記憶された値を超えるかどうかを示す、請求項19に記載の回路。
【請求項22】
アレイ漏れ補償回路を更に含む、請求項19に記載の回路。
【請求項23】
基準アレイ漏れ補償回路を更に含む、請求項19に記載の回路。
【請求項24】
前記選択されたセルは、分割ゲートメモリセルである、請求項19に記載の回路。
【請求項25】
前記選択されたセルは、積層ゲートメモリセルである、請求項19に記載の回路。
【請求項26】
ベクトルマトリクス乗算器のためのメモリセル電流信号をデジタルビットのセットに変換するための回路であって、該回路は、
メモリセル電流源と、
前記電流源に結合されたスイッチと、
前記スイッチと並列に前記電流源に結合されたコンデンサと、
前記電流源、前記スイッチ、及び前記コンデンサに結合された1つの入力と、電圧基準に結合された別の入力と、を有するコンパレータと、
前記コンパレータから出力を受信するように、かつデジタルカウント信号を出力するように結合されたカウンタと、を含む、回路。
【請求項27】
前記メモリ電流はトランジスタに保持される、請求項26に記載の回路。
【請求項28】
アレイ漏れ補償回路を更に含む、請求項26に記載の回路。
【請求項29】
前記メモリセルは、分割ゲートメモリセルである、請求項26に記載の回路。
【請求項30】
前記メモリセルは、積層ゲートメモリセルである、請求項26に記載の回路。
【請求項31】
ベクトルマトリクス乗算器のためのメモリセル電流信号をスロープに変換するための回路であって、該回路は、
メモリセル電流源と、
前記電流源に結合されたスイッチと、
前記スイッチと並列に前記電流源に結合されたコンデンサと、
前記電流源、前記スイッチ、及び前記コンデンサに結合された1つの入力と、電圧基準に結合された別の入力とを有するコンパレータであって、前記コンパレータの出力は、前記電流源によって出力された前記電流を示す前記スロープを比較する、コンパレータと、を含む、回路。
【請求項32】
前記メモリ電流はトランジスタに保持される、請求項31に記載の回路。
【請求項33】
アレイ漏れ補償回路を更に含む、請求項31に記載の回路。
【請求項34】
前記メモリセルは、分割ゲートメモリセルである、請求項31に記載の回路。
【請求項35】
前記メモリセルは、積層ゲートメモリセルである、請求項31に記載の回路。
【請求項36】
前記電圧基準は、前記メモリセルの値を示すように時間多重化される、請求項31に記載の回路。
【請求項37】
ベクトルマトリクス乗算器のためのメモリセル電流信号をスロープに変換するための回路であって、該回路は、
メモリセル電流源と、
前記電流源に結合されたトランジスタと、
前記トランジスタに結合されたスイッチと、
前記スイッチと並列に前記トランジスタに結合されたコンデンサと、
前記トランジスタ、前記スイッチ、及び前記コンデンサに結合された1つの入力と、電圧基準に結合された別の入力とを有するコンパレータであって、前記コンパレータの出力は、前記電流源によって出力された前記電流を示す前記スロープを比較する、コンパレータと、を含む、回路。
【請求項38】
前記メモリ電流はトランジスタに保持される、請求項37に記載の回路。
【請求項39】
アレイ漏れ補償回路を更に含む、請求項37に記載の回路。
【請求項40】
前記メモリセルは、分割ゲートメモリセルである、請求項37に記載の回路。
【請求項41】
前記メモリセルは、積層ゲートメモリセルである、請求項37に記載の回路。
【発明の詳細な説明】
【技術分野】
【0001】
(優先権の主張)
本出願は、2018年3月14日に出願された「Method and Apparatus for Programming Analog Neuromorphic Memory in an Artificial Neural Network」と題する米国特許仮出願第62/642,878号、及び2018年5月25日に出願された「Method And Apparatus For Programming Analog Neural Memory In A Deep Learning Artificial Neural Network」と題する米国特許出願第15/990,395号の優先権を主張する。
【0002】
(発明の分野)
人工ニューラルネットワークのベクトルマトリクス乗算(vector-by-matrix multiplication、VMM)アレイと共に使用するプログラミング装置及び方法の多数の実施形態が開示される。
【背景技術】
【0003】
人工ニューラルネットワークは、多数の入力に依存することができ、概ね未知である機能を推定する又は近似するために使用される生物学的ニューラルネットワーク(動物の中枢神経系、特に脳)を真似ている。人工ニューラルネットワークは、概して、メッセージを交換する相互接続した「ニューロン」の層を含む。
【0004】
図1は、人工ニューラルネットワークを図示しており、ここで円は、入力又はニューロンの層を表す。接続(シナプスと呼ばれる)は、矢印によって表され、経験に基づいて調整され得る数値の重みを有する。これは、ニューラルネットワークが入力に適応できるようにし、学習できるようにする。典型的には、ニューラルネットワークは、複数の入力の層を含む。典型的には、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】
VMMシステムにおける1つの課題は、選択されたセルを、異なる値のNに必要とされる精度及び粒度でプログラムする能力である。例えば、選択されたセルが64個の異なる値のうちの1つを含み得る場合は、プログラム動作において極めて高い精度が必要とされる。
【0009】
必要とされるのは、アナログニューロモーフィックメモリシステムにおいてVMMと共に使用するのに適した改善されたプログラミングシステム及び方法である。
【発明の概要】
【0010】
人工ニューラルネットワークのベクトルマトリクス乗算(VMM)アレイと共に使用するプログラミングシステム及び方法の多数の実施形態が開示される。それにより、選択されたセルは、N個の異なる値のうちの1つを保持するために、極めて高い精度でプログラムされることができる。
【0011】
【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】
【0042】
【0043】
【0044】
【0045】
【図面の簡単な説明】
【0046】
図1】人工ニューラルネットワークを示す図である。
図2】従来の2ゲート不揮発性メモリセルの横断面図である。
図3】従来の4ゲート不揮発性メモリセルの横断面図である。
図4】従来の3ゲート不揮発性メモリセルの横断面図である。
図5】別の従来の2ゲート不揮発性メモリセルの横断面図である。
図6】不揮発性メモリアレイを利用する異なるレベルの例示的な人工ニューラルネットワークを示す図である。
図7】ベクトル乗算器マトリクスを示すブロック図である。
図8】様々なレベルのベクトル乗算器マトリクスを示すブロック図である。
図9】ベクトル乗算器マトリクスの別の実施形態を示す。
図10】ベクトル乗算器マトリクスの別の実施形態を示す。
図11図10のベクトル乗算器マトリクスで動作を実行するための動作電圧を示す。
図12】ベクトル乗算器マトリクスの別の実施形態を示す。
図13図12のベクトル乗算器マトリクスで動作を実行するための動作電圧を示す。
図14】ベクトル乗算器マトリクスの別の実施形態を示す。
図15図14のベクトル乗算器マトリクスで動作を実行するための動作電圧を示す。
図16】ベクトル乗算器マトリクスの別の実施形態を示す。
図17図216のベクトル乗算器マトリクスで動作を実行するための動作電圧を示す。
図18A】ベクトル乗算器マトリクスのプログラミング方法を示す。
図18B】ベクトル乗算器マトリクスのプログラミング方法を示す。
図19図18A及び図18Bのプログラミングのための波形を示す。
図20図18A及び図18Bのプログラミングのための波形を示す。
図21図18A及び図18Bのプログラミングのための波形を示す。
図22】ベクトル乗算器マトリクスシステムを示す。
図23】列ドライバを示す。
図24】複数の基準マトリクスを示す。
図25】単一の基準マトリクスを示す。
図26】基準マトリクスを示す。
図27】別の基準マトリクスを示す。
図28】比較回路を示す。
図29】別の比較回路を示す。
図30】別の比較回路を示す。
図31】電流-デジタルビット回路を示す。
図32図31の回路のための波形を示す。
図33】電流-スロープ回路を示す。
図34図33の回路のための波形を示す。
図35】電流-スロープ回路を示す。
図36図35の回路のための波形を示す。
【発明を実施するための形態】
【0047】
本発明の人工ニューラルネットワークは、CMOS技術及び不揮発性メモリアレイの組み合わせを利用する。
不揮発性メモリセル
【0048】
デジタル不揮発性メモリは、周知である。例えば、米国特許第5,029,130号(「’130号特許」)は、分割ゲート不揮発性メモリセルのアレイを開示し、あらゆる目的のために参照により本明細書に組み込まれる。このようなメモリセルを図2に示す。各メモリセル210は、半導体基板12内に形成され、チャネル領域18をその間に有するソース領域14とドレイン領域16と、を含む。浮遊ゲート20は、チャネル領域18の第1の部分の上方に形成され、チャネル領域18の第1の部分から絶縁されて(かつチャネル領域18の第1の部分導電性を制御して)おり、またソース領域16の一部分の上方に形成される。ワード線端子22(典型的には、ワード線に結合される)は、チャネル領域18の第2の部分の上方に配設され、チャネル領域18の第2の部分から絶縁され、(かつチャネル領域18の第2の部分の導電性を制御する)第1の部分と、浮遊ゲート20の上方に延在する第2の部分と、を有する。浮遊ゲート20及びワード線端子22は、ゲート酸化物によって基板12から絶縁される。ビット線24はドレイン領域16に結合される。
【0049】
メモリセル210は、ワード線端子22に高圧正電圧を印加することによって消去され(ここで電子は、浮遊ゲートから除去される)、それにより、ファウラーノルドハイムトンネリングによって浮遊ゲート20からワード線端子22まで中間絶縁体を通って浮遊ゲート20の電子をトンネリングさせる。
【0050】
メモリセル210は、ワード線端子22に正電圧、及びソース16に正電圧を印加することによってプログラムされる(ここで電子は、浮遊ゲートに印加される)。電子電流は、ソース16からドレイン14に向かって流れることになる。電子は、ワード線端子22と浮遊ゲート20との間の間隙に達すると、加速し発熱する。熱せられた電子のいくらかは、浮遊ゲート20からの静電引力に起因してゲート酸化物26を通って浮遊ゲート20のに注入される。
【0051】
ドレイン14及びワード線端子22に正の読み出し電圧を印加する(ワード線端子下のチャネル領域をターンオンする)ことによって、メモリセル210が読み出される。浮遊ゲート20が正に帯電する(すなわち、電子を消去し、ドレイン16に正に結合する)場合、浮遊ゲート20下のチャネル領域の部分は、次に同様にオンになり、電流は、チャネル領域18を流れ、これは、消去された状態つまり「1」の状態として検知される。浮遊ゲート20が負に帯電する(すなわち、電子でプログラムされる)場合、次に浮遊ゲート20下のチャネル領域の部分は、ほとんど又は完全にオフになり、電流は、チャネル領域18を流れず(又はわずかに流れる)、プログラムされた状態又は「0」の状態として検出される。
【0052】
表1は、読み出し、消去及びプログラム動作を実行するためのメモリセル210の端子に印加され得る典型的な電圧範囲を示す。
表1:図2のフラッシュメモリセル210の動作
【表1】
【0053】
他の分割ゲートメモリセル構成が知られている。例えば、図3は、ソース領域14と、ドレイン領域16と、チャネル領域18の第1の部分の上方にある浮遊ゲート20と、チャネル領域18の第2の部分の上方にある選択ゲート28(典型的には、ワード線に結合される)と、浮遊ゲート20の上方にある制御ゲート22と、及びソース領域14の上方にある消去ゲート30と、を備える4ゲートメモリセル310を示す。この構成は、米国特許第6,747,310号に記載され、この米国特許は、あらゆる目的のため参照により本明細書に組み込まれる。ここで、全てのゲートは、浮遊ゲート20を除いて、非浮遊ゲートであり、それらは電圧源に電気的に接続される又は接続可能であることを意味する。プログラミングは、浮遊ゲート20にそれ自体を注入するチャネル領域18からの熱せられた電子によって示される。消去は、浮遊ゲート20から消去ゲート30へトンネリングする電子によって示される。
【0054】
表2は、読み出し、消去、及びプログラム動作を実行するためのメモリセル310の端子に印加され得る典型的な電圧範囲を示す。
表2:図3のフラッシュメモリセル310の動作
【表2】
【0055】
図4は、分割ゲート3ゲートメモリセル410を示す。メモリセル410は、メモリセル410が別個の制御ゲートを有しないことを除いて、図3のメモリセル310と同一である。消去動作(消去ゲートを通しての消去)及び読み出し動作は、制御ゲートバイアスがないことを除いて、図3のものと同様である。プログラミング動作もまた、制御ゲートバイアスなしで行われるため、ソース線のプログラム電圧は、制御ゲートバイアスの不足を補償するためにより高い。
【0056】
表3は、読み出し、消去、及びプログラム動作を実行するためのメモリセル410の端子に印加され得る典型的な電圧範囲を示す。
表3:図4のフラッシュメモリセル410の動作
【表3】
【0057】
図5は、積層ゲートメモリセル510を示す。メモリセル510は、浮遊ゲート20がチャネル領域18全体の上方に延在し、制御ゲート22が絶縁層によって分離された浮遊ゲート20の上方に延在することを除いて、図2のメモリセル210と同様である。消去、プログラミング、及び読み出し動作は、メモリセル210について前述したものと同様の方法で動作する。
【0058】
表4は、読み出し、消去、及びプログラム動作を実行するためのメモリセル510の端子に印加され得る典型的な電圧範囲を示す。
表4:図5のフラッシュメモリセル510の動作
【表4】
【0059】
上記の人工ニューラルネットワークにおける不揮発性メモリセルのタイプのうちの1つを含むメモリアレイを利用するために、2つの修正が行われる。第1に、以下に更に説明されるように、アレイ内の他のメモリセルのメモリ状態に悪影響を与えずに各メモリセルを個々にプログラム、消去、及び読み出しすることができるように線を構成する。第2に、メモリセルの連続(アナログ)プログラミングを提供する。
【0060】
具体的には、アレイ内の各メモリセルのメモリ状態(すなわち、浮遊ゲートの電荷)を、完全に消去された状態から完全にプログラムされた状態へ、独立して、かつ他のメモリセルの異常が最小で連続的に変更することができる。別の実施形態では、アレイ内の各メモリセルのメモリ状態(すなわち、浮遊ゲートの電荷)を、完全にプログラムされた状態から完全に消去された状態へ、及び逆もまた同様に、独立して、かつ他のメモリセルの異常が最小で連続的に変更することができる。このことは、セル記憶がアナログであるか、又は多数の別個の値(16又は64の異なる値など)のうちの1つを最低限記憶することができ、それは、メモリアレイ内の全てのセルの非常に正確、かつ個々の調整を可能にし、またメモリアレイを記憶に対して理想的にし、ニューラルネットワークのシナプシスの重みに微調整を加えることを意味する。
不揮発性メモリセルアレイを使用するニューラルネットワーク
【0061】
図6は、不揮発性メモリアレイを利用するニューラルネットワークの非限定実施例を概念的に示す。この例は、顔認識アプリケーションのために不揮発性メモリアレイニューラルネットを使用するが、不揮発性メモリアレイベースのニューラルネットワークを使用して他の任意の適切なアプリケーションを実施することができる。
【0062】
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の異なる特徴マップを生成する。
【0063】
C1において、本例では、それぞれ30×30ピクセルを有する16個の特徴マップが存在する。各ピクセルは、入力とカーネルとの乗算から抽出された新しい特徴ピクセルであり、したがって、各特徴マップは、2次元アレイであり、したがってこの例では、シナプスCB1は、2次元アレイの16層を構成する(本明細書で言及されるニューロン層及びアレイは、必ずしも物理的関係ではなく論理的な関係であり、すなわち、アレイは必ずしも物理的な2次元アレイに配向されないことに留意する)。16個の特徴マップのそれぞれは、フィルタスキャンに適用される16個の異なるシナプス重みのセットの1つによって生成される。C1特徴マップは全て、境界同定など同じ画像特徴の異なる態様を対象とすることができる。例えば、第1のマップ(この第1のマップを生成するのに使用される全てのスキャンに共有される第1の重みセットを使用して生成される)は、円形エッジを識別することができ、第2のマップ(第1の重みセットと異なる第2の重みセットを使用して生成される)は、方形エッジ又は特定の特徴のアスペクト比などを識別することができる。
【0064】
活性化関数P1(プーリング)は、C1からS1へ行く前に適用され、各特徴マップ中の連続する、重なり合わない2×2領域からの値をプールする。プーリング段階の目的は、平均して近隣の位置にすること(又はmax関数もまた使用され得る)、例えばエッジ位置の依存を低減すること、及び次の段階に行く前にデータサイズを低減することである。S1において、16個の15×15特徴マップ(すなわち、16個のそれぞれ15×15ピクセルの異なるアレイ)が存在する。S1からC2へ行くCB2内のシナプス及び関連するニューロンは、S1内のマップを1ピクセルのフィルタシフトを使用して4×4フィルタでスキャンする。C2において、22個の12×12特徴マップが存在する。活性化関数P2(プーリング)は、C2からS2へ行く前に適用され、各特徴マップ中の連続する、重なり合わない2×2領域からの値をプールする。S2において、22個の6×6特徴マップが存在する。活性化関数は、S2からC3へ行くシナプスCB3で適用され、ここでC3内の全てのニューロンはS2内の全てのマップに接続する。C3において、64個のニューロンが存在する。C3から出力S3へ行くシナプスCB4は、S3をC3と完全に接続する。S3における出力は、10個のニューロンを含み、ここで最も高い出力ニューロンは、クラスを決定する。この出力は、例えば、元の画像の内容の同定又は分類を示すことができる。
【0065】
シナプスの各レベルは、不揮発性メモリセルのアレイ又はアレイの一部を使用して実行される。図7は、不揮発性メモリセルを含み、入力層と次の層との間のシナプスとして利用されるベクトルマトリクス乗算(VMM)アレイのブロック図である。具体的には、VMM32は、不揮発性メモリセルのアレイ33、消去ゲート及びワード線ゲートデコーダ34、制御ゲートデコーダ35、ビット線デコーダ36、並びにソース線デコーダ37を含み、それらのデコーダはメモリアレイ33に対する入力をデコードする。この例におけるソース線デコーダ37はまた、メモリセルアレイの出力をデコードする。あるいは、ビット線デコーダ36が、メモリアレイの出力をデコードすることができる。メモリアレイは、2つの目的を果たす。第1に、VMMにより使用される重みを記憶する。第2に、メモリアレイは、効果的に、入力に、メモリアレイに記憶された重みを乗じ、それらを出力線(ソース線又はビット線)ごとに合計して出力を生成し、これは、次の層への入力又は最後の層への入力になる。乗算及び加算の関数を実行することによって、メモリアレイは、別個の乗算及び加算の論理回路の必要性をなくし、また、その場でのメモリ計算により電力効率も良い。
【0066】
メモリアレイの出力は差動加算器(加算オペアンプなど)38に供給され、差動加算器はメモリセルアレイの出力を合計してその畳み込み用の単一の値を生成する。差動加算器は、正の入力で正の重みと負の重みとの合計を実現するようなものである。合計された出力値は、次に出力を整流する活性化関数回路39に供給される。活性化関数には、シグモイド、tanh、又はReLU関数が含まれ得る。整流された出力値は、次の層(例えば上の説明ではC1)として特徴マップの要素になり、次いで、次のシナプスに適用されて次の特徴マップ層又は最後の層を生成する。したがって、この例では、メモリアレイは、複数のシナプスを構成し(ニューロンの前の層から、又は画像データベースなどの入力層から入力を受信する)、加算オペアンプ38及び活性化関数回路39は、複数のニューロンを構成する。
【0067】
図8は、様々なレベルのVMMのブロック図である。図8に示されるように、入力は、デジタルアナログ変換器31によってデジタルからアナログに変換され、入力VMM32aに提供される。入力VMM32aによって生成された出力は、次のVMM(隠しレベル1)32bへの入力として提供され、VMM(隠しレベル1)32bは、同様にして、次のVMM(隠しレベル2)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)アレイ
【0068】
図9は、図3に示されるタイプのメモリセルに特に適したニューロンVMM900を示し、入力層と次の層との間でシナプス及びニューロンの一部として利用される。VMM900は、不揮発性メモリセルのメモリアレイ901、及び基準アレイ902(アレイの頂部で)を備える。あるいは、別の基準アレイが底部に位置することができる。VMM900では、制御ゲート線903などの制御ゲート線が垂直方向に延びており(したがって、行方向の基準アレイ902が入力制御ゲート線に直交する)、消去ゲート線904などの消去ゲート線が水平方向に延びている。ここで、入力は制御ゲート線に提供され、出力はソース線に現れる。一実施形態では、偶数行のみが使用され、別の実施形態では、奇数行のみが使用される。ソース線の電流は、ソース線に接続されたメモリセルからの全ての電流の合計関数を実行する。
【0069】
ニューラルネットワークについて本明細書に記載されるように、フラッシュセルは、サブ閾値領域で動作するように構成されることが好ましい。
【0070】
本明細書に記載されたメモリセルは、弱反転にバイアスされる。
Ids=Io*(Vg-Vth)/kVt=w*Io*(Vg)/kVt
w=e(-Vth)/kVt
【0071】
入力電流を入力電圧に変換するためにメモリセルを使用するI-Vログ変換器について:
Vg=k*Vt*log[Ids/wp*Io]
【0072】
ベクトルマトリクス乗算器VMMとして使用されるメモリアレイについて、出力電流は以下である:
Iout=wa*Io*(Vg)/kVt、すなわち
Iout=(wa/wp)*Iin=W*Iin
W=e(Vthp-Vtha)/kVt
【0073】
ワード線又は制御ゲートは、入力電圧のためのメモリセルの入力として使用することができる。
【0074】
あるいは、フラッシュメモリセルは、線形領域で動作するように構成することができる。
Ids=β*(Vgs-Vth)*Vds;β=u*Cox*W/L
W α(Vgs-Vth)
【0075】
I-V線形変換器では、線形領域で動作するメモリセルを使用して、入力/出力電流を入力/出力電圧に線形に変換することができる。
【0076】
ESFベクトルマトリックス乗算器の他の実施形態は、参照により本明細書に組み込まれる米国特許出願第15/826,345号に記載されているとおりである。ソース線又はビット線は、ニューロン出力(電流和出力)として使用することができる。
【0077】
図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に供給する)にメモリアレイに記憶された重みを有効に乗算して、出力を生成し、これは次の層への入力又は最終の層への入力となる。乗算関数を実行することによって、メモリアレイは、別個の乗算論理回路の必要性をなくし、また電力効率も良い。ここで、電圧入力はワード線に提供され、出力は読み出し(推論)動作中にビット線に現れる。ビット線の電流は、ビット線に接続されたメモリセルからの全ての電流の合計関数を実行する。
【0078】
図11は、VMM1000の動作電圧を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルのソース線、及び非選択セルのソース線に印加された電圧を示す。行は、読み出し、消去、及びプログラムの動作を示す。
【0079】
図12は、図2に示されるタイプのメモリセルに特に適したニューロンVMM1200を示し、入力層と次の層との間でシナプス及びニューロンの一部として利用される。VMM1200は、不揮発性メモリセルのメモリアレイ1203、基準アレイ1201、及び基準アレイ1202を備える。アレイVMM1200の行方向に延びる基準アレイ1201及び1202は、VMM1200においてワード線が垂直方向に延びることを除いて、VMM1000と同様である。ここで、入力はワード線に提供され、出力は読み出し動作中にソース線に現れる。ソース線の電流は、ソース線に接続されたメモリセルからの全ての電流の合計関数を実行する。
【0080】
図13は、VMM1200の動作電圧を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルのソース線、及び非選択セルのソース線に印加された電圧を示す。行は、読み出し、消去、及びプログラムの動作を示す。
【0081】
図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に供給する)を有効に乗算して、出力を生成し、これは次の層への入力又は最終の層への入力となる。乗算関数を実行することによって、メモリアレイは、別個の乗算論理回路の必要性をなくし、また電力効率も良い。ここで、入力はワード線に提供され、出力は読み出し動作中にビット線に現れる。ビット線の電流は、ビット線に接続されたメモリセルからの全ての電流の合計関数を実行する。
【0082】
VMM1400は、メモリアレイ1403内のメモリセルの一方向調整を実施する。すなわち、各セルは消去され、次いで、浮遊ゲートの所望の電荷に達するまで部分的にプログラムされる。過多の電荷が浮遊ゲートにある場合(誤った値がセル内に記憶されるなど)、セルは消去されなければならず、一連の部分的なプログラミング動作をやり直さなければならい。示されるように、同じ消去ゲートを共有する2つの行は、一緒に消去される必要があり(ページ消去として知られる)、その後、各セルは、浮遊ゲートの所望の電荷に達するまで部分的にプログラムされる。
【0083】
図15は、VMM1400の動作電圧を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルの制御ゲート、選択セルと同じセクタ内の非選択セルの制御ゲート、選択セルとは異なるセクタ内の非選択セルの制御ゲート、選択セルの消去ゲート、非選択セルの消去ゲート、選択セルのソース線、及び非選択セルのソース線に印加された電圧を示す。行は、読み出し、消去、及びプログラムの動作を示す。
【0084】
図16は、図3に示されるタイプのメモリセルに特に適したニューロンVMM1600を示し、入力層と次の層との間でシナプス及びニューロンの一部として利用される。VMM1600は、不揮発性メモリセルのメモリアレイ1603、基準アレイ1601、及び基準アレイ1602を備える。EG線が垂直に延びている一方で、CG線及びSL線は水平に延びている。VMM1600は、VMM1600が双方向調整を実装することを除いてVMM1400と同様であり、各個々のセルは、浮動ゲートの所望の電荷量に達するために、完全に消去され、部分的にプログラムされ、必要に応じて部分的に消去され得る。示されるように、基準アレイ1601及び1602は、端子BLR0~3内の入力電流を制御ゲート電圧CG0~3に変換し(マルチプレクサを介したダイオード接続された基準セルの作用を通じて)、行方向でメモリセルに印加される。電流出力(ニューロン)は、ビット線に接続されたメモリセルからの全ての電流を合計するビット線内にある。
【0085】
図17は、VMM1600の動作電圧を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルの制御ゲート、選択セルと同じセクタ内の非選択セルの制御ゲート、選択セルとは異なるセクタ内の非選択セルの制御ゲート、選択セルの消去ゲート、非選択セルの消去ゲート、選択セルのソース線、及び非選択セルのソース線に印加された電圧を示す。行は、読み出し、消去、及びプログラムの動作を示す。
【0086】
図18A及び18Bは、プログラミング方法1800を示す。最初に、方法は、典型的には受信されるプログラムコマンドに応じて、開始する(工程1801)。次に、マスプログラム動作が、全てのセルを「0」状態にプログラムする(工程1802)。次いで、ソフト消去が、全てのセルを、中間の弱く消去されたレベル約3~5μAに消去する(工程1803)。これは、全てのセルがデジタル用途で完全消去状態、例えば、~20~30μAのセル電流になる深い消去とは対照的である。次いで、ハードプログラムが、全ての選択されていないセルで実行されて、セルが実際にオフである、すなわち、これらのメモリセルが影響力のない電流を与えることを確実にするために、使用されていないセルに対して非常に深いプログラム状態までセルから電荷を除去する(工程1804)。次いで、ソフトプログラムが選択セルで実行されて、粗いアルゴリズムを使用して中間の弱くプログラムされたレベル約0.7~1.5μAになるまで、セルからいくらかの電荷を除去する(工程1805、1806、1807)。検証動作が後に続く粗いステッププログラムサイクルが行われ、選択セルの電荷が、粗い反復方式で様々な閾値と比較される(工程1806及び1807)。粗いステッププログラムサイクルは、粗い電圧増分、及び/又は粗いプログラム時間、及び/又は粗いプログラム電流を含み、1つのプログラムステップから次のプログラムステップまでに粗いセル電流変化がもたらされる。次に、精密なプログラミングが行われ(工程1808~1813)、全てのセルが、細かいステッププログラムアルゴリズムにより、所望のレベルに応じて100pA~20nAの範囲内の標的レベルにプログラムされる。検証動作が後に続く細かいステッププログラムサイクルが行われる(工程1809及び1810)。細かいステッププログラムサイクルは、粗い及び細かい解像度の電圧増分、及び/又はプログラム時間、及び/又はプログラム電流の組み合わせを含み得、1つのプログラムステップから次のプログラムステップまでに細かいセル電流変化がもたらされ得る。選択されたセルが所望の標的に到達すると、プログラミング動作は完了する(工程1811)。そうでない場合は、所望のレベルに達するまで精密プログラミング動作が繰り返される。しかしながら、試行回数が閾値数を超えると(工程1812)、プログラミング動作は停止し、選択されたセルは不良セルと見なされる(工程1813)。
【0087】
図19は、パルス変調を使用してプログラミング動作を実行するための例示的な波形1900を示す。信号1901は、複数のプログラム及び検証サイクルからなる、プログラムサイクルイネーブル信号である。信号1902は、個々のパルスプログラムサイクルイネーブル信号である(信号1902=論理「1」はプログラミングを可能にする)。検証サイクルが、個々のパルスプログラムサイクルの後に続く(信号1902=論理「0」は検証を可能にする)。信号1903は、特定のビット線のための個々のパルスプログラムサイクルイネーブル信号である。信号1903は、別の特定のビット線のための個々のパルスプログラムサイクルイネーブル信号である。示されるように、信号1903の幅は、信号1904の幅よりも狭い。したがって、信号1903は、メモリセルの浮遊ゲートでより小さい電荷が変更されることを可能にし、プログラミングにおいてより小さい電流精度がもたらされる。プログラムサイクル1901内では、特定のメモリセルに対して所望のプログラミング精度を達成するために、異なるプログラムパルス幅1903を使用することができる。
【0088】
図20は、高電圧レベル変調を使用してプログラミング動作を実行するための例示的な波形2000を示す。信号2003は、特定のビット線のための個々のパルスプログラムサイクルイネーブル信号である。信号2004は、別の特定のビット線のための個々のパルスプログラムサイクルイネーブル信号である。信号2003及び2004のプログラムパルス幅は、この波形では同じである。信号2005は、プログラミングのためのソース線又は制御ゲートなどのための高電圧増分である。1つのプログラムパルスから次のプログラムパルスまで増分する。
【0089】
図21は、高電圧レベル変調を使用してプログラミング動作を実行するための例示的な波形2100を示す。信号2103は、特定のビット線のための個々のパルスプログラムサイクルイネーブル信号である。信号2104は、別の特定のビット線のための個々のパルスプログラムサイクルイネーブル信号である。信号2105は、プログラミングのためのソース線又は制御ゲートなどのためのプログラム高電圧増分である。1つのプログラムパルスから次のプログラムパルスまで同じであり得るか、又は増分する。信号2103のプログラムパルス幅は、増分高電圧を有する複数のパルスにわたって同じである。信号2104のプログラムパルス幅は、同じ高電圧増分の複数のパルスの間で異なっており、例えば、第1のパルスでは狭くなっている。
【0090】
図22は、VMMマトリックス2201、列デコーダ2202、及び列ドライバ2203を含む、VMMシステム2200を示す。
【0091】
図23は、図22の列ドライバ2203として使用することができる、例示的な列ドライバ2300を示す。列ドライバ2300は、図示のように構成された、ラッチ2301、インバータ2302、NORゲート2303、PMOSトランジスタ2304、並びにNMOSトランジスタ2305及び2306を含む。ラッチ2301は、データ信号DIN及びイネーブル信号ENを受信した。PMOSトランジスタ2304とNMOSトランジスタ2305との間のノードBLIOは、ビット線入力又は出力信号を含み、ビット線入力又は出力信号は、図22の列デコーダ2202などの列デコーダを介してビット線に選択的に接続される。検知増幅器SA2310は、選択されたメモリセルのセル電流を読み出すように、ノードBLIOを介してビット線に結合される。検知増幅器SA2310は、消去又はプログラム動作の後など、選択されたメモリセルの所望の電流レベルを検証するために使用される。PMOSトランジスタ2304は、禁止制御回路2301/2302/2303に応じてビット線をプログラミングにおいて禁止する役割を果たす。NMOSトランジスタ2306は、ビット線にバイアスプログラム電流を提供する。NMOSトランジスタ2305は、ビット線へのバイアスプログラム電流を可能にし、したがって、選択されたメモリセルのプログラミングが可能になる。したがって、NMOSトランジスタ2305のゲートへのプログラム制御信号(図19の信号1902/1903、図20の信号2003/2004、図21の信号2103/2104など)が、選択されたセルのプログラムを可能にする。
【0092】
図24は、基準アレイマトリクス2401a、2401b、2401c、及び2401d、並びにVMMマトリクス2402a、2402b、2402c、及び2402dを含む、例示的なVMMシステム2400を示す。各VMMマトリクスは、独自の基準アレイマトリクスを有する。
【0093】
図25は、単一の基準アレイマトリクス2501、並びにVMMマトリクス2502a、2502b、2502c、及び2502dを含む、例示的なVMMシステム2500を示す。単一の基準アレイマトリクス2501は、複数のVMMマトリクスにわたって共有される。
【0094】
図26は、図24の基準マトリクス2401a~d、図25のマトリクス2501、又は図28及び図29の基準マトリクス2801若しくは2901として使用することができる、例示的な基準マトリクス2600を示す。基準マトリクス2600は、共通の制御ゲート信号2603及びソース線基準信号2604に結合された基準メモリセル2602a、2602b、2602c、及び2602x、並びに、読み出し又は検証動作で使用する複数のビット線基準信号を提供する、ビット線基準デコーダ2601を含む。例えば、基準メモリセル2602a~xは、100pA/200pA/300pA/.../30nAの増分電流レベルを提供することができる。又は、基準メモリセル2602a~xは、基準メモリセルごとに100pAの一定電流レベルを提供することができる。この場合、基準メモリセル2602a~xの組み合わせが、温度計コード方式で100pA/200pA/300pA/などを生成するなど、異なる基準電流レベルを生成するために使用される。所望の基準電流レベルを生成するために、一定及び/又は増分の、基準電流レベルの他の組み合わせを使用することができる。更に、2つの基準セル間の差電流を使用して、100pAの基準電流=250pAの基準電流-150pAの基準電流などの基準メモリセル電流を生成することができる。これは、例えば、温度に対して補償される基準電流を生成するために使用される。
【0095】
図27は、図24の基準マトリクス2401a~d、図25のマトリクス2501、又は図28及び図29の基準マトリクス2801若しくは2901として使用することができる、例示的な基準マトリクス2700を示す。基準マトリクス2700は、共通の制御ゲート基準信号2703、消去ゲート基準信号2704、及びソース線基準信号2705に結合された基準メモリセル2702a、2702b、2702c、及び2702x、並びに、読み出し又は検証動作で使用する複数のビット線基準信号を提供する、ビット線基準デコーダ2701を含む。所望の基準電流レベルを生成するために、一定及び/又は増分の、基準電流レベルの組み合わせを、図26の場合と同様に使用することができる。
【0096】
図28は、Icell PMOS比較回路2800を示し、Icell PMOS比較回路2800は、示されるように配置された、PMOSトランジスタ2801及び2804、NMOSカスコーディングトランジスタ2802及び2805、VMMメモリアレイ2820からの選択されたメモリセル2803、並びに基準マトリクス2806(基準マトリクス2500又は2600など)を含む。NMOSトランジスタ2802及び2805は、基準ビット線を所望の電圧レベルにバイアスするために使用される。出力電流Ioutは、選択されたメモリセル2803に記憶された値を示す電流値である。出力ノード2810の電圧レベルは、選択されたメモリセル2803内の電流と基準マトリクス28006からの基準電流との比較結果を示す。ノード2801の電圧は、選択されたメモリセル2803内の電流が基準マトリクス2806からの基準電流よりも大きい(又は小さい)場合、Vddまで上昇する(又は接地まで低下する)。
【0097】
図29は、Icell PMOS比較回路2900を示し、Icell PMOS比較回路2900は、示されるように配置された、PMOSトランジスタ2901、スイッチ2902、2903、及び2904、NMOSカスコーディングトランジスタ2905及び2907、VMMメモリアレイ2920からの選択されたメモリセル2908、基準マトリクス2906(基準マトリクス2600又は2700など)、並びにコンパレータ2909を含む。出力COMP_OUTは、基準電流と比較した選択されたメモリセル2908に記憶された値を示す電流値である。Icell比較回路は、2つのミラーPMOSトランジスタ間の不整合を排除するために、時間多重化された単一のPMOS電流ミラーとして使用することによって機能する。第1の期間では、S0及びS1は閉じており、S2は開いている。基準メモリマトリクス2906からの電流は、PMOSトランジスタ2901に記憶(保持)される。次の期間では、S0及びS1は開いており、S2は閉じている。記憶された基準電流は、メモリセル2908からの電流と比較され、比較結果は出力ノード2910に示される。任意選択的に、コンパレータは、ノード2901の電圧を基準電圧VREFと比較して、比較の結果を示すことができる。ここで、基準電流をサンプリングして保持し、選択されたメモリセル2902からの電流をサンプリングし、PMOSトランジスタ2901内に保持して、基準電流と比較する。
【0098】
別の実施形態では、図30に示すようなアレイ漏れ補償回路3051を単一のPMOSミラー回路と共に使用して、VMMアレイ3020の漏れをサンプリング(S3閉鎖)し(全てのワード線がオフであり、ビット線の漏れ電流が保持PMOSにサンプリングされる)、保持トランジスタ内の漏れを保持(S3開放)することができる。次いで、この漏れを比較期間内の選択されたメモリセル内の電流から差し引いて、比較のためのVMMアレイ3020からの実際のメモリセル電流を得る。これは、本明細書に記載される全ての比較回路に使用することができる。これは、基準アレイ漏れ補償のために使用することができる。
【0099】
図31は、電流源3101、スイッチ3102、コンデンサ3103、コンパレータ3104、及びカウンタ3105を含む、Icell-デジタルデータ回路3100を示す。比較期間の開始時、信号3110は接地にプルダウンされる。次いで、信号3110は、セル電流3101(上述のようにアレイ漏れ補償を有するVMMメモリアレイから抽出される)に応じて上昇を開始する。ランプ速度は、セル電流3101及びコンデンサ3103に比例する。次いで、コンパレータ3104の出力3112により、カウンタ3105は、デジタル方式のカウントを開始することが可能になる。ノード3110の電圧が電圧レベルVREF3111に達すると、コンパレータ3104は極性を切り替え、カウンタ3105を停止させる。デジタル出力Q<N:0> 3113の値は、セル電流3101の値を示す。
【0100】
図32は、Icell-デジタルデータ回路3100の動作のための波形3200を示す。信号3201は、ランプ電圧(図31の信号3110に対応する)である。信号3201のランプ速度が、異なるセル電流レベルに対して示される。信号3205及び3207は、2つの異なるセル電流に対するコンパレータの出力(図31の信号3121に対応する)である。信号3206及び3208は、上記2つの異なるセル電流に対するデジタル出力Q<N:0>である。
【0101】
図33は、メモリセル電流源3301、スイッチ3302、コンデンサ3303、及びコンパレータ3304を含む、Icell-スロープ回路3300を示す。メモリセル電流は、上述のようにアレイ漏れ補償を有するVMMメモリアレイから抽出される。比較期間の開始時、信号3310は接地にプルダウンされる。次いで、信号3310は、セル電流3301(VMMメモリアレイから抽出される)に応じて上昇を開始する。ランプ速度は、セル電流3301及びコンデンサ3303に比例する。固定比較期間後、ノード3310の電圧は、コンパレータ3304によって基準電圧VREFx 3311と比較される。VREFx 3311は、例えば、16個の基準レベルに対して0.1V、0.2V、0.3V、..、1.5V、1.6Vである。したがって、各レベルは、16個の異なる電流レベルのための電流レベルに対応する。コンパレータ3304の出力は、セル電流3301の値を示す。ノード3310の電圧(固定比較期間後にS1を遮断することによってコンデンサ3303に保持され得る)を16個の基準レベルと比較するために、16個の基準レベルと共に16個のコンパレータが使用されるか、又は16個の基準レベルについて16倍多重化された基準レベルと共に1つのコンパレータが使用される。
【0102】
図34は、Icell-スロープ回路3300の動作のための波形3400を示す。信号3401は、イネーブル信号3402の立ち上がりエッジにおいて異なる電圧レベル(Vcellx)を有する異なるランプ速度を示す。電圧Vcellxは、基準電圧と比較されて、セル電流の値を示す(図33の基準電圧VREFx 3311)。
【0103】
図35は、メモリセル電流源3504、スイッチ3502、コンデンサ3501、NMOSカスコーディングトランジスタ3503、及びコンパレータ3505を含む、Icell-スロープ変換回路3500を示す。メモリセル電流3501は、上述のようにアレイ漏れ補償を有するVMMメモリアレイから抽出される。NMOS3503は、選択されたメモリセル(Icell3504として示される)のビット線の電圧をバイアスするために使用される。動作は、ランプ方向がランプアップではなくランプダウンであることを除いて、図31の動作と同様である。
【0104】
図36は、Icell-スロープ回路3500の動作のための波形3600を示す。
【0105】
本明細書で使用される場合、「の上方に(over)」及び「に(on)」という用語は両方とも、「に直接」(中間材料、要素、又は空間がそれらの間に何ら配設されない)、及び「の上に間接的に」(中間材料、要素、又は空間がそれらの間に配設される)を包括的に含むことに留意するべきである。同様に、「隣接した」という用語は、「直接隣接した」(中間材料、要素、又は空間がそれらの間に何ら配設されない)、及び「間接的に隣接した」(中間材料、要素、又は空間がそれらの間に配設される)を含み、「に取り付けられた」は、「に直接取り付けられた」(中間材料、要素、又は空間がそれらの間に何ら配設されない)、及び「に間接的に取り付けられた」(中間材料、要素、又は空間がそれらの間に配設される)を含み、「電気的に結合された」は、「に直接電気的に結合された」(要素を一緒に電気的に連結する中間材料又は要素がそれらの間にない)、及び「に間接的に電気的に結合された」(要素を一緒に電気的に連結する中間材料又は要素がそれらの間にある)を含む。例えば、要素を「基板の上方に」形成することは、その要素を基板に直接、中間材料/要素をそれらの間に何ら伴わずに、形成すること、並びにその要素を基板の上に間接的に、1つ以上の中間材料/要素をそれらの間に伴って、形成することを含み得る。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18A
図18B
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31
図32
図33
図34
図35
図36
【手続補正書】
【提出日】2024-05-29
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ベクトルマトリクス乗算器のためのメモリセル電流信号をデジタルビットのセットに変換するための回路であって、該回路は、
メモリセル電流源と、
前記電流源に結合されたスイッチと、
前記スイッチと並列に前記電流源に結合されたコンデンサと、
前記電流源、前記スイッチ、及び前記コンデンサに結合された1つの入力と、電圧基準に結合された別の入力と、を有するコンパレータと、
前記コンパレータから出力を受信するように、かつデジタルカウント信号を出力するように結合されたカウンタと、を含む、回路。
【請求項2】
前記メモリ電流はトランジスタに保持される、請求項に記載の回路。
【請求項3】
アレイ漏れ補償回路を更に含む、請求項に記載の回路。
【請求項4】
前記メモリセルは、分割ゲートメモリセルである、請求項に記載の回路。
【請求項5】
前記メモリセルは、積層ゲートメモリセルである、請求項に記載の回路。
【請求項6】
ベクトルマトリクス乗算器のためのメモリセル電流信号をスロープに変換するための回路であって、該回路は、
メモリセル電流源と、
前記電流源に結合されたスイッチと、
前記スイッチと並列に前記電流源に結合されたコンデンサと、
前記電流源、前記スイッチ、及び前記コンデンサに結合された1つの入力と、電圧基準に結合された別の入力とを有するコンパレータであって、前記コンパレータの出力は、前記電流源によって出力された前記電流を示す前記スロープを比較する、コンパレータと、を含む、回路。
【請求項7】
前記メモリ電流はトランジスタに保持される、請求項に記載の回路。
【請求項8】
アレイ漏れ補償回路を更に含む、請求項に記載の回路。
【請求項9】
前記メモリセルは、分割ゲートメモリセルである、請求項に記載の回路。
【請求項10】
前記メモリセルは、積層ゲートメモリセルである、請求項に記載の回路。
【請求項11】
前記電圧基準は、前記メモリセルの値を示すように時間多重化される、請求項に記載の回路。
【請求項12】
ベクトルマトリクス乗算器のためのメモリセル電流信号をスロープに変換するための回路であって、該回路は、
メモリセル電流源と、
前記電流源に結合されたトランジスタと、
前記トランジスタに結合されたスイッチと、
前記スイッチと並列に前記トランジスタに結合されたコンデンサと、
前記トランジスタ、前記スイッチ、及び前記コンデンサに結合された1つの入力と、電圧基準に結合された別の入力とを有するコンパレータであって、前記コンパレータの出力は、前記電流源によって出力された前記電流を示す前記スロープを比較する、コンパレータと、を含む、回路。
【請求項13】
前記メモリ電流はトランジスタに保持される、請求項12に記載の回路。
【請求項14】
アレイ漏れ補償回路を更に含む、請求項12に記載の回路。
【請求項15】
前記メモリセルは、分割ゲートメモリセルである、請求項12に記載の回路。
【請求項16】
前記メモリセルは、積層ゲートメモリセルである、請求項12に記載の回路。
【外国語明細書】