(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-08-08
(54)【発明の名称】深層学習人工ニューラルネットワークにおけるアナログニューラルメモリ用の出力回路
(51)【国際特許分類】
G06N 3/065 20230101AFI20240801BHJP
G11C 11/54 20060101ALI20240801BHJP
G11C 16/24 20060101ALI20240801BHJP
G11C 16/26 20060101ALI20240801BHJP
G06G 7/60 20060101ALI20240801BHJP
【FI】
G06N3/065
G11C11/54
G11C16/24 110
G11C16/26
G06G7/60
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024501685
(86)(22)【出願日】2021-11-13
(85)【翻訳文提出日】2024-03-07
(86)【国際出願番号】 US2021059281
(87)【国際公開番号】W WO2023014386
(87)【国際公開日】2023-02-09
(32)【優先日】2021-08-02
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-11-08
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】500147506
【氏名又は名称】シリコン ストーリッジ テクノロージー インコーポレイテッド
【氏名又は名称原語表記】SILICON STORAGE TECHNOLOGY, INC.
(74)【代理人】
【識別番号】110000626
【氏名又は名称】弁理士法人英知国際特許商標事務所
(72)【発明者】
【氏名】トラン、ヒュー バン
(72)【発明者】
【氏名】ブー、サン
【テーマコード(参考)】
5B225
【Fターム(参考)】
5B225BA03
5B225DA03
5B225EA01
5B225ED09
5B225EH06
5B225FA01
(57)【要約】
深層学習人工ニューラルネットワークにおけるアナログニューラルメモリ用の出力回路の多数の実施形態が開示される。いくつかの実施形態では、コモンモード回路が、重みWを一緒に記憶する差動セルW+及びW-と共に使用される。コモンモード回路は、コモンモード電圧バイアスを導入するための構造の一部として、電流源、可変抵抗器、又はトランジスタを利用し得る。
【選択図】
図37A
【特許請求の範囲】
【請求項1】
出力電流ニューロン回路であって、
メモリアレイ内のW+セルに結合され、読み出し動作中に第1の電流を引き込む第1のビット線と、
前記メモリアレイ内のW-セルに結合され、読み出し動作中に第2の電流を引き込む第2のビット線であって、前記W+セルに記憶された値と前記W-セルに記憶された値との間の差が重み値Wである、第2のビット線と、
コモンモードバイアス電圧を生成するバイアス回路と、
前記コモンモードバイアス電圧に応答して、前記第1のビット線にコモンモードバイアス電流を適用して、第1の出力を生成する第1の可変電流源と、
前記コモンモードバイアス電圧に応答して、前記第2ビット線に前記コモンモードバイアス電流を適用して、第2の出力を生成する第2可変電流源と、を備え、
前記第1の出力は、前記コモンモードバイアス電流から前記第1の電流を減算したものに等しく、前記第2の出力は、前記コモンモードバイアス電流から前記第2の電流を減算したものに等しい、出力電流ニューロン回路。
【請求項2】
前記第1の可変電流源は、第1のPMOSトランジスタを備える、請求項1に記載の出力電流ニューロン回路。
【請求項3】
前記第2の可変電流源は、第2のPMOSトランジスタを備える、請求項2に記載の出力電流ニューロン回路。
【請求項4】
出力電流ニューロン回路であって、
電流源と、
前記電流源に制御電圧を適用するためのバイアス回路と、
第1の端部及び第2の端部を含み、前記第1の端部が前記電流源に結合された第1の可変抵抗器と、
第3の端部及び第4の端部を含み、前記第3の端部が前記電流源に結合され、前記電流源が、コモンモード電圧を生成するように前記第1の可変抵抗器及び前記第2の可変抵抗器にバイアス電流を提供する、第2の可変抵抗器と、
読み出し動作中にW+セルに結合された第1のビット線と、
前記読み出し動作中にW-セルに結合された第2のビット線であって、前記W+セルに記憶された値と前記W-セルに記憶された値との間の差が重み値Wである、第2のビット線と、
前記第1の可変抵抗器の前記第2の端部及び前記第1のビット線に結合されて、第1の出力電流を提供する第1の出力と、
前記第2の可変抵抗器の前記第4の端部及び前記第2のビット線に結合されて、第2の出力電流を提供する第2の出力であって、前記第1の出力及び前記第2の出力が、コモンモード差動電流信号を形成する、第2の出力と、を備える、出力電流ニューロン回路。
【請求項5】
前記第1の可変抵抗器がNMOSトランジスタを備え、前記NMOSトランジスタのゲートに適用される電圧が前記NMOSトランジスタの抵抗を決定する、請求項4に記載の回路。
【請求項6】
前記第2の可変抵抗器がNMOSトランジスタを含み、前記NMOSトランジスタのゲートに適用される電圧が前記NMOSトランジスタの前記抵抗を決定する、請求項5に記載の回路。
【請求項7】
出力電流ニューロン回路であって、
メモリアレイから第1の電流を受け取るための第1の出力ノードと、
メモリアレイから第2の電流を受け取るための第2の出力ノードと、
バイアス電流を生成するバイアス回路と、
前記バイアス電流から減算された前記第1の電流に等しい第1の出力電流を生成する第1のデバイスと、
前記バイアス電流から減算された前記第2の電流に等しい第2の出力電流を生成する第2のデバイスと、を備える、出力電流ニューロン回路。
【請求項8】
前記第1の出力電流が、1つ以上のW+セルに結合されたビット線の読み出し動作から生成される、請求項7に記載の出力電流ニューロン回路。
【請求項9】
前記第1の出力電流が、1つ以上のW-セルに結合されたビット線の読み出し動作から生成される、請求項8に記載の出力電流ニューロン回路。
【請求項10】
出力電流ニューロン回路であって、
メモリアレイから第1の電流を受け取るための第1の出力ノードと、
メモリアレイから第2の電流を受け取るための第2の出力ノードと、
バイアスノードにおいてバイアス電圧を生成するバイアス回路と、
前記バイアスノードと前記第1の出力ノードとの間に結合された第1の可変抵抗器と、
前記バイアスノードと前記第2の出力ノードとの間に結合された第2の可変抵抗器と、を備える、出力電流ニューロン回路。
【請求項11】
電流-電圧変換器であって、
W+セルの読み出し動作中に生成された第1の電流を受け取るための第1のビット線と、
W-セルの読み出し動作中に生成された第2の電流を受け取るための第2のビット線であって、前記W+セルに記憶された値と前記W-セルに記憶された値との間の差が重み値Wである、第2のビット線と、
前記第1の電流及び前記第2の電流を受け取り、第1の電圧出力及び第2の電圧出力を含む差動出力電圧を生成するための差動増幅器と、を備える、電流-電圧変換器。
【請求項12】
出力ブロックであって、
各々がビット線差動対を受け取り、差動電圧出力を生成する複数の電流-電圧変換器と、
複数の差動入力アナログ-デジタル変換器であって、各々が、前記複数の電流-電圧変換器のうちの1つから差動電圧出力を受け取り、1組のデジタル出力ビットを生成する、複数の差動入力アナログ-デジタル変換器と、を備える、出力ブロック。
【請求項13】
出力ブロックであって、
各々がビット線差動対を受け取り、電圧出力を生成する複数の電流-電圧変換器と、
複数の差動入力アナログ-デジタル変換器であって、各々が、前記複数の電流-電圧変換器のうちの1つから電圧出力を受け取り、1組のデジタル出力ビットを生成する、複数の差動入力アナログ-デジタル変換器と、を備える、出力ブロック。
【請求項14】
出力ブロックであって、
ビット線差動対を受信するための電流-電圧変換器であって、
第1の入力及び第2の入力並びに第1の出力及び第2の出力を備え、前記第1の入力及び前記第2の入力が、前記ビット線差動対に結合された差動演算増幅器と、
前記第1の入力と前記第1の出力との間に結合された第1の可変抵抗器と、
前記第2の入力と前記第2の出力との間に結合された第2の可変抵抗器と、
前記第1の入力と前記第2の入力との間に結合されたコモンモード入力回路と、を備える電流-電圧変換器と、
前記第1の出力及び前記第2の出力を受け取り、1組のデジタル出力ビットを生成するための差動入力アナログ-デジタル変換器と、を備える、出力ブロック。
【請求項15】
前記コモンモード入力回路が、前記第1の入力に結合された第1の可変電流源と、前記第2の入力に結合された第2の可変電流源と、を備え、前記第1の可変電流源及び前記第2の可変電流源が等しい電流を生成する、請求項14に記載の出力ブロック。
【請求項16】
出力ブロックであって、前記出力ブロックは、
出力電流ニューロン回路であって、
メモリアレイ内のW+セルに結合され、読み出し動作中に第1の電流を引き込む第1のビット線と、
前記メモリアレイ内のW-セルに結合され、第2の電流を引き込む第2のビット線と、前記第1のビット線に結合された第1のバイアス電流と、
前記第2のビット線に結合された第2のバイアス電流と、を含む、出力電流ニューロン回路を備え、前記第1のバイアス電流及び前記第2のバイアス電流が、前記第1のバイアス電流と同じ値を有する、前記同じ値を有する、出力ブロック。
【請求項17】
出力ブロックであって、前記出力ブロックは、
出力電流ニューロン回路であって、
メモリアレイ内のW+セルに結合され、読み出し動作中に第1の電流を引き込む第1のビット線と、
前記メモリアレイ内のW-セルに結合され、前記読み出し動作中に第2の電流を引き込む第2のビット線と、を含む出力電流ニューロン回路と、
前記第1のビット線に結合された第1のバイアス電流と、
前記第1の電流及び前記第2の電流の差に比例する第1の出力電流と、を備える、出力ブロック。
【請求項18】
前記第1の出力電流は、前記第1の電流及び前記第2の電流の前記差の半分に等しい、請求項17に記載の出力ブロック。
【請求項19】
前記第1の出力電流と相補的である第2の出力電流を更に含む、請求項17に記載の出力ブロック。
【請求項20】
出力ブロックのためのオフセット較正方法であって、
前記出力ブロックのサブ回路ブロックの入力ノードに公称バイアスを適用するステップと、
前記出力ブロックの出力が目標値の閾値内になるまで、前記出力ブロック内の前記サブ回路ブロックに増加又は減少したオフセットトリム設定を適用するステップと、を含む、方法。
【請求項21】
前記サブ回路ブロックは、電流-電圧回路である、請求項20に記載の方法。
【請求項22】
前記サブ回路ブロックは、アナログ-デジタル変換器回路のものである、請求項20に記載の方法。
【請求項23】
前記出力ブロックによって、ニューロンからの出力を提供するステップを更に含む、請求項20に記載の方法。
【請求項24】
前記ニューロンは、ニューラルネットワーク内のニューラルメモリアレイの一部分である、請求項23に記載の方法。
【請求項25】
出力ブロックのためのオフセット較正方法であって、
増加したオフセットトリム設定に応答して、前記出力ブロックの新しいトリム出力を測定するステップと、
前記新しいトリム出力と公称バイアス出力とを比較するステップであって、
前記新しいトリム出力が前記公称バイアス出力に等しいときに、前記適用するステップと、前記測定するステップと、及び前記比較するステップとを繰り返すステップと、
前記新しいトリム出力が前記公称バイアス出力と異なるときに、前記新しいトリム出力をトリム値として記憶するステップと、を有する比較するステップと、
動作中に前記出力ブロック内の前記サブ回路ブロックに前記トリム値を適用するステップと、を含む、方法。
【請求項26】
前記出力ブロックによって、ニューロンからの出力を提供するステップを更に含む、請求項25に記載の方法。
【請求項27】
前記ニューロンは、ニューラルネットワーク内のニューラルメモリアレイの一部分である、請求項26に記載の方法。
【請求項28】
出力ブロックのためのオフセット較正方法であって、
前記出力ブロックのサブ回路ブロックの入力ノードに公称バイアスを適用するステップと、
前記公称バイアスに応答して、前記出力ブロックの公称バイアス出力を測定するステップと、
減少したオフセットトリム設定を前記入力ノードに適用するステップと、
増加したオフセットトリム設定に応答して、前記出力ブロックの新しいトリム出力を測定するステップと、
前記新しいトリム出力と前記公称バイアス出力とを比較するステップであって、
前記新しいトリム出力が前記公称バイアス出力に等しいときに、適用するステップと、前記測定するステップと、及び前記比較するステップとを繰り返すステップと、
前記新しいトリム出力が前記公称バイアス出力と異なるときに、前記新しいトリム出力をトリム値として記憶するステップと、を有する比較するステップと、
動作中に、前記出力ブロックの前記サブ回路ブロックに前記トリム値を適用するステップと、を含む、方法。
【請求項29】
前記出力ブロックによって、ニューロンからの出力を提供するステップを更に含む、請求項28に記載の方法。
【請求項30】
前記ニューロンは、ニューラルネットワーク内のニューラルメモリアレイの一部分である、請求項29に記載の方法。
【請求項31】
出力ブロックのためのオフセット較正方法であって、
入力値を前記出力ブロックのサブ回路ブロックの入力ノードに適用するステップと、
前記入力値に応答して、出力値を測定するステップと、
前記出力値を目標オフセット値と比較するステップであって、
前記出力値が前記目標オフセット値を超えるときに、次の入力値を用いて前記適用するステップと、前記測定するステップと、及び前記比較するステップとを繰り返すステップと、
前記出力値が前記目標オフセット値以下であるときに、前記入力値をトリム値として記憶するステップと、を有する比較するステップと、
前記出力ブロックの動作中に、前記出力ブロックの前記サブ回路ブロックに前記トリム値を適用するステップと、を含む、方法。
【請求項32】
前記出力ブロックによって、ニューロンからの出力を提供するステップを更に含む、請求項31に記載の方法。
【請求項33】
前記ニューロンは、ニューラルネットワーク内のニューラルメモリアレイの一部分である、請求項32に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
(優先権の主張)
本出願は、2021年8月2日に出願された「Output Circuitry for Analog Neural Memory in a Deep Learning Artificial Neural Network」と題する米国特許仮出願第63/228,529号、及び2021年11月8日に出願された「Output Circuitry for Analog Neural Memory in a Deep Learning Artificial Neural Network」と題する米国特許出願第17/521,772号の優先権を主張する。
【0002】
(発明の分野)
深層学習人工ニューラルネットワークにおけるアナログニューラルメモリ用の出力回路のための多数の実施形態が開示される。
【背景技術】
【0003】
人工ニューラルネットワークは、生物学的ニューラルネットワーク(動物の中枢神経系、特に脳)を模倣しており、多数の入力に依存し得、かつ、一般的に未知である関数を推定する又は近似するために使用される。人工ニューラルネットワークは、概して、お互いの間でメッセージを交換する相互接続した「ニューロン」の層を含む。
【0004】
図1は人工ニューラルネットワークを示しており、図中、円は、入力又はニューロンの層を例解する。接続(シナプスと呼ばれる)は、矢印によって表され、経験に基づいてチューニングされ得る数値の重みを有する。これにより、ニューラルネットワークは入力に適応し、学習可能になる。典型的には、ニューラルネットワークは、複数の入力の層を含む。典型的には、1つ以上のニューロンの中間層、及びニューラルネットワークの出力を提供するニューロンの出力層が存在する。各レベルでニューロンは、シナプスから受信したデータに基づいて個々に又は集合的に決定を行う。
【0005】
高性能情報処理用の人工ニューラルネットワークの開発における主要な課題のうちの1つは、適切なハードウェア技術の欠如である。実際には、実用ニューラルネットワークは、非常に多数のシナプスに依拠しており、これによりニューロン間の高い接続性、すなわち、非常に高度な計算処理の並列化が可能となる。原理的には、このような複雑性は、デジタルスーパーコンピュータ又は専用グラフィックプロセッシングユニットクラスタによって実現が可能である。しかしながら、高コストに加え、これらのアプローチはまた、生物学的ネットワークが主として低精度のアナログ計算を実施するのではるかに少ないエネルギーしか消費しないのと比較して、エネルギー効率が劣っていることに悩まされている。人工ニューラルネットワークにはCMOSアナログ回路が使用されてきたが、ほとんどのCMOS実装シナプスは、多数のニューロン及びシナプスを前提とすると、嵩高過ぎていた。
【0006】
出願人は以前に、参照により組み込まれる米国特許出願第15/594,439号において、シナプスとして1つ以上の不揮発性メモリアレイを利用する人工(アナログ)ニューラルネットワークを開示した。不揮発性メモリアレイは、アナログニューラルメモリとして動作する。ニューラルネットワークデバイスは、第1の複数の入力を受け取って、それから第1の複数の出力を生成するように構成されている第1の複数のシナプス、及び第1の複数の出力を受け取るように構成された第1の複数のニューロンを含む。第1の複数のシナプスは複数のメモリセルを含み、メモリセルの各々は、半導体基板内に形成された、間にチャネル領域が延在する離間したソース領域及びドレイン領域と、チャネル領域の第1の部分の上方に絶縁されて配設される浮遊ゲートと、チャネル領域の第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の部分の導電性を制御する)第1の部分と、浮遊ゲート20の上方で上に延在する第2の部分と、を有する。浮遊ゲート20及びワード線端子22は、ゲート酸化物によって基板12から絶縁される。ビット線24はドレイン領域16に結合される。
【0008】
ワード線端子22に高圧正電圧を加えることによって、メモリセル210に対して消去が行われ(電子が浮遊ゲートから除去される)、これによって、浮遊ゲート20の電子は、浮遊ゲート20からワード線端子22まで、それらの間にある絶縁体の中をファウラーノルドハイム(Fowler-Nordheim、FN)トンネリングを介して通過する。
【0009】
メモリセル210は、ワード線端子22に正電圧、及びソース領域14に正電圧を加えることによって、ホットエレクトロンによるソースサイド注入(source side injection、SSI)によって、プログラムされる(電子が浮遊ゲートに加えられる)。電子流は、ドレイン領域16からソース領域14に向かって流れる。電子は加速し、ワード線端子22と浮遊ゲート20との間の間隙に達すると、発熱する。熱せられた電子の一部は、浮遊ゲート20からの静電引力に起因して、浮遊ゲート20にゲート酸化物を介して注入される。
【0010】
メモリセル210は、ドレイン領域16及びワード線端子22に正の読み出し電圧を加える(ワード線端子の下方のチャネル領域18の部分をオンにする)ことによって、読み出される。浮遊ゲート20が正に帯電する(すなわち、電子を消去する)と、浮遊ゲート20の下方のチャネル領域18の部分も同様にオンになり、電流はチャネル領域18を流れ、これは、消去された状態つまり「1」の状態として検知される。浮遊ゲート20が負に帯電する(すなわち、電子でプログラムされる)と、浮遊ゲート20の下方のチャネル領域の部分はほとんど又は完全にオフになり、電流はチャネル領域18を流れず(又はほとんど流れず)、これは、プログラムされた状態つまり「0」の状態として検知される。
【0011】
表1は、読み出し動作、消去動作、及びプログラム動作を実行するためにメモリセル110の端子に適用され得る典型的な電圧/電流範囲を示す。
表1:
図3のフラッシュメモリセル210の動作
【表1】
【0012】
他の種類のフラッシュメモリセルである、他のスプリットゲート型メモリセル構成も知られている。例えば、
図3は、ソース領域14と、ドレイン領域16と、チャネル領域18の第1の部分の上方にある浮遊ゲート20と、チャネル領域18の第2の部分の上方にある選択ゲート22(典型的には、ワード線、WL、に結合される)と、浮遊ゲート20の上方にある制御ゲート28と、ソース領域14の上方にある消去ゲート30と、を含む4ゲートメモリセル310を示す。この構成は、あらゆる目的のため参照により本明細書に組み込まれる、米国特許第6,747,310号に記載されている。ここで、全てのゲートは、浮遊ゲート20を除いて、非浮遊ゲートであり、つまり、それらは電圧源に電気的に接続される又は接続可能である。プログラミングは、熱せられた電子がチャネル領域18から浮遊ゲート20にその電子自体を注入することによって実行される。消去は、電子が浮遊ゲート20から消去ゲート30へトンネリングすることによって実行される。
【0013】
表2は、読み出し動作、消去動作、及びプログラム動作を実行するためにメモリセル310の端子に適用され得る典型的な電圧/電流範囲を示す。
表2:
図3のフラッシュメモリセル310の動作
【表2】
【0014】
図4は、別の種類のフラッシュメモリセルである、3ゲートメモリセル410を示す。メモリセル410は、メモリセル410が別個の制御ゲートを有しないことを除いて、
図3のメモリセル310と同一である。(消去ゲートの使用を通じて消去が起こる)消去動作及び読み出し動作は、制御ゲートバイアスが適用されないことを除いて、
図3のものと同様である。プログラミング動作もまた、制御ゲートバイアスなしで行われるため、結果として、プログラム動作中は、制御ゲートバイアスの不足を補償するため、より高い電圧がソース線に適用されなければならない。
【0015】
表3は、読み出し動作、消去動作、及びプログラム動作を実行するためにメモリセル410の端子に適用され得る典型的な電圧/電流範囲を示す。
表3:
図4のフラッシュメモリセル410の動作
【表3】
【0016】
図5は、別の種類のフラッシュメモリセルである、積層ゲートメモリセル510を示す。メモリセル510は、浮遊ゲート20がチャネル領域18全体の上方に延在し、制御ゲート22(ここでワード線に結合される)が絶縁層(図示せず)によって分離されて浮遊ゲート20の上方に延在することを除いて、
図2のメモリセル210と同様である。消去は、FGから基板への電子のFNトンネリングによって行われ、プログラミングは、チャネル18とドレイン領域16との間の領域でのチャネルホットエレクトロン(channel hot electron、CHE)注入によって、ソース領域14からドレイン領域16に向かって流れる電子によって、及びより高い制御ゲート電圧を有するメモリセル210の読み出し動作と同様である読み出し動作によって行われる。
【0017】
表4は、読み出し動作、消去動作、及びプログラム動作を実行するためのメモリセル510及び基板12の端子に適用され得る典型的な電圧範囲を示す。
表4:
図5のフラッシュメモリセル510の動作
【表4】
【0018】
本明細書に記載される方法及び手段は、限定されないが、FINFETスプリットゲートフラッシュ又はスタックゲートフラッシュメモリ、NANDフラッシュ、SONOS(silicon-oxide-nitride-oxide-silicon、ケイ素-酸化物-窒化物-酸化物-ケイ素、窒化物中の電荷トラップ)、MONOS(metal-oxide-nitride-oxide-silicon、金属-酸化物-窒化物-酸化物-ケイ素、窒化物中の金属電荷トラップ)、ReRAM(resistive ram、抵抗変化型メモリ)、PCM(phase change memory、相変化メモリ)、MRAM(magnetic ram、磁気抵抗メモリ)、FeRAM(ferroelectric ram、強誘電体メモリ)、CT(charge trap、電荷トラップ)メモリ、CN(carbon-tube、カーボンチューブ)メモリ、OTP(one time programmable、バイレベル又はマルチレベルの1回のみのプログラムが可能)及びCeRAM(correlated electron ram、強相関電子メモリ)などの他の不揮発性メモリ技術に適用され得る。
【0019】
上記の人工ニューラルネットワークにおける不揮発性メモリセルの種類のうちの1つを含むメモリアレイを利用するために、2つの修正が行われる。第1に、以下に更に説明されるように、アレイ内の他のメモリセルのメモリ状態に悪影響を与えずに各メモリセルを個々にプログラム、消去、及び読み出しできるように線を構成する。第2に、メモリセルの連続(アナログ)プログラミングを提供する。
【0020】
具体的には、アレイ内の各メモリセルのメモリ状態(すなわち、浮遊ゲートの電荷)を、完全に消去された状態から完全にプログラムされた状態へ、独立して、かつ他のメモリセルの乱れが最小で、連続的に変えることができる。別の実施形態では、アレイ内の各メモリセルのメモリ状態(すなわち、浮遊ゲートの電荷)を、完全にプログラムされた状態から完全に消去された状態へ、及び逆もまた同様に、独立して、かつ他のメモリセルの乱れが最小で、連続的に変えることができる。これはつまり、セル記憶がアナログであるか、又は多数の不連続値(16個又は64個の異なる値など)のうちの1つを最低限記憶することができることを意味し、これにより、メモリアレイ内の全てのセルが非常に精密に、かつ個々にチューニング可能となり、また、メモリアレイが、記憶、及びニューラルネットワークのシナプシスの重みへの微細チューニング調整に対して、理想的なものになる。
不揮発性メモリセルアレイを使用するニューラルネットワーク
【0021】
図6は、本実施形態の不揮発性メモリアレイを利用するニューラルネットワークの非限定例を概念的に例解する。この例は、顔認識アプリケーション用に不揮発性メモリアレイニューラルネットワークを使用するが、不揮発性メモリアレイベースのニューラルネットワークを使用して他の適切なアプリケーションを実装することも可能である。
【0022】
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の異なる特徴マップを生成する。
【0023】
本例では、層C1において、各々30×30ピクセルを有する16個の特徴マップが存在する。各ピクセルは、入力とカーネルとの乗算から抽出された新しい特徴ピクセルであり、したがって、各特徴マップは、二次元アレイであり、したがってこの例では、層C1は、二次元アレイの16層を構成する(本明細書で言及される層及びアレイは、必ずしも物理的関係ではなく論理的な関係であり、すなわち、アレイは必ずしも物理的な二次元アレイに配向されないことに留意されたい)。層C1内の16個の特徴マップの各々は、フィルタスキャンに適用される異なるシナプス重みのセット16個のうちの1つによって生成される。C1特徴マップは全て、境界同定など、同じ画像特徴の異なる態様を対象とすることができる。例えば、第1のマップ(この第1のマップを生成するために使用される全てのスキャンに共有される第1の重みセットを使用して生成される)は、円形エッジを識別することができ、第2のマップ(第1の重みセットと異なる第2の重みセットを使用して生成される)は、長方形エッジ又はある特定の特徴のアスペクト比などを識別することができる。
【0024】
層C1から層S1へ行く前には、各特徴マップ内の重なり合わずに連続する2×2領域からの値をプールする活性化関数P1(プーリング)が適用される。プーリング関数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個のニューロンを含み、ここで出力が最も高いニューロンが、クラスを決定する。この出力は、例えば、元の画像の内容の同定又は分類(クラス分け)を示すことができる。
【0025】
シナプスの各層は、不揮発性メモリセルのアレイ又はアレイの一部を使用して実装される。
【0026】
図7は、その目的のために使用可能なアレイのブロック図である。ベクトルマトリックス乗算(Vector-by-matrix multiplication、VMM)アレイ32は、不揮発性メモリセルを含み、ある層と次の層との間のシナプス(
図6のCB1、CB2、CB3、及びCB4など)として利用される。具体的には、VMMアレイ32は、不揮発性メモリセルのアレイ33、消去ゲート及びワード線ゲートデコーダ34、制御ゲートデコーダ35、ビット線デコーダ36、並びにソース線デコーダ37を含み、それらのデコーダは不揮発性メモリセルアレイ33に対するそれぞれの入力をデコードする。VMMアレイ32への入力は、消去ゲート及びワード線ゲートデコーダ34から、又は制御ゲートデコーダ35から行うことができる。この例におけるソース線デコーダ37はまた、不揮発性メモリセルアレイ33の出力をデコードする。代替的に、ビット線デコーダ36が、不揮発性メモリセルアレイ33の出力をデコードすることができる。
【0027】
不揮発性メモリセルアレイ33は、2つの目的を果たす。第1に、それは、VMMアレイ32によって使用される重みを記憶する。第2に、不揮発性メモリセルアレイ33は、不揮発性メモリセルアレイ33に格納された重みを、入力に有効に乗算して、それらを出力線(ソース線又はビット線)ごとに加算して、出力を生成し、この出力は次の層への入力又は最後の層への入力になる。不揮発性メモリセルアレイ33が乗算及び加算の関数を実行することで、別個の乗算及び加算の論理回路の必要性はなくなり、また、メモリ内の計算により電力効率も良い。
【0028】
不揮発性メモリセルアレイ33の出力は、不揮発性メモリセルアレイ33の出力を合計してその畳み込み用の単一の値を作成する、差動合計器(合計オペアンプ又は合計カレントミラーなど)38に供給される。差動合計器38は、正の重み及び負の重みの総和を実行するように配置される。
【0029】
差動加算器38の合計された出力値は、次に出力を整流する活性化関数ブロック39に供給される。活性化関数ブロック39は、シグモイド、tanh、又はReLU関数を提供し得る。活性化関数ブロック39の整流された出力値は、次の層(例えば
図6のC1)として特徴マップの要素になり、次いで、次のシナプスに適用されて次の特徴マップ層又は最後の層を生成する。したがって、この例では、不揮発性メモリセルアレイ33は、複数のシナプスを構成し(ニューロンの前の層から、又は画像データベースなどの入力層から、入力を受け取る)、合計オペアンプ38及び活性化関数ブロック39は、複数のニューロンを構成する。
【0030】
図7のVMMアレイ32への入力(WLx、EGx、CGx、及び任意選択的にBLx及びSLx)は、アナログレベル、バイナリレベル、又はデジタルビット(この場合、DACが、デジタルビットを適切な入力アナログレベルに変換するために提供される)であり得、出力は、アナログレベル、バイナリレベル、又はデジタルビットであり得る(この場合、出力ADCが出力アナログレベルをデジタルビットに変換するために提供される)。
【0031】
図8は、図中でVMMアレイ32a、32b、32c、32d及び32eとして標示されたVMMアレイ32の多数の層の使用を示すブロック図である。
図8に示されるように、入力(Inputxで示される)は、デジタル-アナログ変換器31によってデジタルからアナログに変換され、入力VMMアレイ32aに提供される。変換されたアナログ入力は、電圧又は電流であり得る。第1の層の入力D/A変換は、入力VMMアレイ32aのマトリックス乗算器の適切なアナログレベルに入力Inputxをマッピングする関数又はLUT(look up table、ルックアップテーブル)を使用することによって行うことができる。入力変換はまた、外部アナログ入力を入力VMMアレイ32aへのマッピングされたアナログ入力に変換するために、アナログ-アナログ(analog to analog、A/A)変換器によって行うこともできる。
【0032】
入力VMMアレイ32aによって生成された出力は、次に、次のVMMアレイ(隠しレベル1)32bへの入力として提供され、次に入力VMMアレイ(隠しレベル2)32cへの入力として提供される出力を生成する、などとなる。VMMアレイ32の様々な層は、畳み込みニューラルネットワーク(convolutional neural network、CNN)のシナプス及びニューロンの各層として機能する。各VMMアレイ32a、32b、32c、32d及び32eは、スタンドアローンの物理的不揮発性メモリアレイとすることができ、又は複数のVMMアレイは、同じ物理的不揮発性メモリアレイの異なる部分を利用することができ、又は複数のVMMアレイは、同じ物理的不揮発性メモリアレイの重なり合う部分を利用することができる。
図8に示される例は、5つの層(32a、32b、32c、32d、32e)、すなわち、1つの入力層(32a)、2つの隠れ層(32b、32c)、及び2つの全接続層(32d、32e)を含む。当業者であれば、これは単なる例示であり、代わりにシステムが2つを超える隠れ層及び2つを超える完全接続層を含み得ることを理解するであろう。
ベクトルマトリックス乗算(VMM)アレイ
【0033】
図9は、
図3に示されるメモリセル310に特に適しており、かつ入力層と次の層との間でシナプス及びニューロンの一部として利用される、ニューロンVMMアレイ900を示す。VMMアレイ900は、不揮発性メモリセルのメモリアレイ901と、不揮発性基準メモリセルの基準アレイ902(アレイの頂部に位置する)と、を含む。代替的に、別の基準アレイが底部に位置することができる。
【0034】
VMMアレイ900では、制御ゲート線903などの制御ゲート線が垂直方向に延びており(したがって、行方向の基準アレイ902が、制御ゲート線903に直交する)、消去ゲート線904などの消去ゲート線が水平方向に延びている。ここで、VMMアレイ900への入力は、制御ゲート線(CG0、CG1、CG2、CG3)に提供され、VMMアレイ900の出力は、ソース線(SL0、SL1)に現れる。一実施形態では、偶数行のみが使用され、別の実施形態では、奇数行のみが使用される。各ソース線(それぞれSL0、SL1)の電流は、その特定のソース線に接続されたメモリセルからの全ての電流の合計関数を実行する。
【0035】
ニューラルネットワークについて本明細書に記載されているように、VMMアレイ900の不揮発性メモリセル、すなわちVMMアレイ900のメモリセル310は、サブ閾値領域で動作するように構成されることが好ましい。
【0036】
本明細書に記載される不揮発性基準メモリセル及び不揮発性メモリセルは、以下のように弱反転(サブ閾値領域)でバイアスされる:
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はそれぞれ、メモリセルの幅及び長さである。
【0037】
メモリセル(基準メモリセル又は周辺メモリセルなど)又はトランジスタを使用して入力電流を入力電圧に変換するI-Vログ変換器を使用した場合:
Vg=n*Vt*log[Ids/wp*Io]
式中、wpは、基準又は周辺メモリセルのwである。
【0038】
電流入力を伴うベクトルマトリックス乗算器VMMアレイとして使用されるメモリアレイについて、出力電流は以下である:
Iout=wa
*Io
*e
(Vg)/nVt、すなわち
Iout=(wa/wp)
*Iin=W
*Iin
W=e
(Vthp-Vtha)/nVt
ここで、wa=メモリアレイの各メモリセルのwである。
Vthpは周辺メモリセルの有効閾値電圧であり、Vthaはメイン(データ)メモリセルの有効閾値電圧である。トランジスタの閾値電圧は基板本体バイアス電圧の関数であり、Vsbと表される基板本体バイアス電圧は、そのような温度で様々な条件を補償するように変調され得ることに留意されたい。閾値電圧Vthは次のように表すことができる。
【0039】
ワード線又は制御ゲートは、入力電圧のためのメモリセルの入力として使用することができる。
【0040】
代替的に、本明細書に記載されたVMMアレイのフラッシュメモリセルは、線形領域で動作するように構成することができる。
Ids=ベータ*(Vgs-Vth)*Vds;ベータ=u*Cox*Wt/L
W ∝ (Vgs-Vth)
すなわち、直線領域における重みWは、(Vgs-Vth)に比例する
【0041】
ワード線又は制御ゲート又はビット線又はソース線は、線形領域内で動作するメモリセルの入力として使用することができる。ビット線又はソース線は、メモリセルの出力として使用することができる。
【0042】
I-V線形変換器用に、線形領域で動作するメモリセル(基準メモリセル又は周辺メモリセルなど)又はトランジスタを使用して、入出力電流を入出力電圧に線形変換することができる。
【0043】
代替的に、本明細書に記載されたVMMアレイのメモリセルは、飽和領域で動作するように構成することができる。
Ids=1/2*ベータ*(Vgs-Vth)2;ベータ=u*Cox*Wt/L
W ∝ (Vgs-Vth)2、すなわち、重みWは(Vgs-Vth)2に比例する
【0044】
ワード線、制御ゲート、又は消去ゲートは、飽和領域内で動作するメモリセルの入力として使用することができる。ビット線又はソース線は、出力ニューロンの出力として使用することができる。
【0045】
代替的に、本明細書に記載されるVMMアレイのメモリセルは、ニューラルネットワークの各層又は多層に対して全ての領域又はそれらの組み合わせ(サブ閾値、線形、又は飽和)で使用され得る。
【0046】
図7のVMMアレイ32のための他の実施形態は、参照により本明細書に組み込まれる米国特許第10,748,630号に記載されている。上記出願に記載されているように、ソース線又はビット線は、ニューロン出力(電流和出力)として使用することができる。
【0047】
図10は、
図2に示されるメモリセル210に特に適しており、かつ入力層と次の層との間のシナプスとして利用される、ニューロンVMMアレイ1000を示す。VMMアレイ1000は、不揮発性メモリセルのメモリアレイ1003と、第1の不揮発性基準メモリセルの基準アレイ1001と、第2の不揮発性基準メモリセルの基準アレイ1002と、を含む。アレイの列方向に配置された基準アレイ1001及び1002は、端子BLR0、BLR1、BLR2、及びBLR3に流入する電流入力を電圧入力WL0、WL1、WL2、及びWL3に変換するように機能する。実際には、第1及び第2の不揮発性基準メモリセルは、電流入力が流入する状態で、マルチプレクサ1014(部分的にのみ示される)を通してダイオード接続される。基準セルは、目標基準レベルにチューニング(例えば、プログラム)される。目標基準レベルは、基準ミニアレイマトリックス(図示せず)によって提供される。
【0048】
メモリアレイ1003は、2つの目的を果たす。第1に、メモリアレイ1003は、VMMアレイ1000により使用される重みを、それぞれのメモリセルに記憶する。第2に、メモリアレイ1003は、メモリアレイ1003に記憶された重みを、入力(すなわち、端子BLR0、BLR1、BLR2、及びBLR3に提供された電流入力であり、基準アレイ1001及び1002がこれらの電流入力を入力電圧に変換して、ワード線WL0、WL1、WL2、及びWL3に供給する)に有効に乗算し、次いで、全ての結果(メモリセル電流)を加算してそれぞれのビット線(BL0~BLN)に出力を生成し、この出力は次の層への入力又は最後の層への入力となる。乗算及び加算の関数を実行することで、メモリアレイ1003は、別個の乗算及び加算の論理回路の必要性をなくし、また、電力効率も良い。ここで、電圧入力はワード線WL0、WL1、WL2、及びWL3に提供され、出力は、読み出し(推論)動作中にそれぞれのビット線BL0~BLNに現れる。ビット線BL0~BLNの各々の電流は、その特定のビット線に接続された全ての不揮発性メモリセルからの電流の合計関数を実行する。
【0049】
表5は、VMMアレイ1000の動作電圧及び電流を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルのソース線、及び非選択セルのソース線に加えられる電圧を示す。行は、読み出し、消去、及びプログラムの動作を示す。
表5:
図10のVMMアレイ1000の動作
【表5】
【0050】
図11は、
図2に示されるメモリセル210に特に適しており、かつ入力層と次の層との間でシナプス及びニューロンの一部として利用される、ニューロンVMMアレイ1100を示す。VMMアレイ1100は、不揮発性メモリセルのメモリアレイ1103と、第1の不揮発性基準メモリセルの基準アレイ1101と、第2の不揮発性基準メモリセルの基準アレイ1102と、を含む。基準アレイ1101及び1102は、VMMアレイ1100の行方向に延びる。VMMアレイは、VMMアレイ1100においてワード線が垂直方向に延びることを除いて、VMM1000と同様である。ここで、入力はワード線(WLA0、WLB0、WLA1、WLB2、WLA2、WLB2、WLA3、WLB3)に提供され、出力は、読み出し動作中にソース線(SL0、SL1)に現れる。各ソース線の電流は、その特定のソース線に接続されたメモリセルからの全ての電流の合計関数を実行する。
【0051】
表6は、VMMアレイ1100の動作電圧及び電流を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルのソース線、及び非選択セルのソース線に加えられる電圧を示す。行は、読み出し、消去、及びプログラムの動作を示す。
表6:
図11のVMMアレイ1100の動作
【表6】
【0052】
図12は、
図3に示されるメモリセル310に特に適しており、かつ入力層と次の層との間でシナプス及びニューロンの一部として利用される、ニューロンVMMアレイ1200を示す。VMMアレイ1200は、不揮発性メモリセルのメモリアレイ1203と、第1の不揮発性基準メモリセルの基準アレイ1201と、第2の不揮発性基準メモリセルの基準アレイ1202と、を含む。基準アレイ1201及び1202は、端子BLR0、BLR1、BLR2、及びBLR3に流入する電流入力を電圧入力CG0、CG1、CG2、及びCG3に変換するように機能する。実際には、第1及び第2の不揮発性基準メモリセルは、電流入力がBLR0、BLR1、BLR2、及びBLR3を通って流入する状態で、マルチプレクサ1212(一部のみ示す)を通してダイオード接続される。マルチプレクサ1212は、各々読み出し動作中に第1及び第2の不揮発性基準メモリセルのそれぞれのビット線(BLR0など)の一定電圧を確実にするために、対応のマルチプレクサ1205及びカスコーディングトランジスタ1204を含む。基準セルは、目標基準レベルにチューニングされる。
【0053】
メモリアレイ1203は、2つの目的を果たす。第1に、メモリアレイ1203は、VMMアレイ1200によって使用される重みを記憶する。第2に、メモリアレイ1203は、メモリアレイに記憶された重みを、入力(端子BLR0、BLR1、BLR2、及びBLR3に提供された電流入力であり、基準アレイ1201及び1202がこれらの電流入力を入力電圧に変換して、制御ゲート(CG0、CG1、CG2、及びCG3)に供給する)に有効に乗算して、次いで、全ての結果(セル電流)を加算して出力を生成し、この出力はBL0~BLNに現れ、次の層への入力又は最後の層への入力となる。メモリアレイが乗算及び加算の関数を実行することで、別個の乗算及び加算の論理回路の必要性がなくなり、また、電力効率も良い。ここで、入力は制御ゲート線(CG0、CG1、CG2、及びCG3)に提供され、出力は、読み出し動作中にビット線(BL0~BLN)に現れる。各ビット線の電流は、その特定のビット線に接続されたメモリセルからの全ての電流の合計関数を実行する。
【0054】
VMMアレイ1200は、メモリアレイ1203内の不揮発性メモリセルの一方向チューニングを実装する。すなわち、各不揮発性メモリセルは消去され、次いで、浮遊ゲートの所望の電荷に達するまで部分的にプログラムされる。過度に多くの電荷が浮遊ゲートに加えられる場合(誤った値がセルに記憶される場合など)、セルは消去され、一連の部分的なプログラミング動作が最初からやり直される。示されるように、同じ消去ゲート(EG0又はEG1など)を共有する2つの行は、一緒に消去され(ページ消去として知られる)、その後、各セルは、浮遊ゲートの所望の電荷に達するまで部分的にプログラムされる。
【0055】
表7は、VMMアレイ1200の動作電圧及び電流を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルの制御ゲート、選択セルと同じセクタ内の非選択セルの制御ゲート、選択セルとは異なるセクタ内の非選択セルの制御ゲート、選択セルの消去ゲート、非選択セルの消去ゲート、選択セルのソース線、及び非選択セルのソース線に加えられる電圧を示す。行は、読み出し、消去、及びプログラムの動作を示す。
表7:
図12のVMMアレイ1200の動作
【表7】
【0056】
図13は、
図3に示されるメモリセル310に特に適しており、かつ入力層と次の層との間でシナプス及びニューロンの一部として利用される、ニューロンVMMアレイ1300を示す。VMMアレイ1300は、不揮発性メモリセルのメモリアレイ1303と、基準アレイ1301又は第1の不揮発性基準メモリセルと、第2の不揮発性基準メモリセルの基準アレイ1302と、を備える。EG線EGR0、EG0、EG1、及びEGR1は垂直に延び、CG線CG0、CG1、CG2、及びCG3並びにSL線WL0、WL1、WL2、及びWL3は水平に延びる。VMMアレイ1300は、VMMアレイ1300が双方向チューニングを実装することを除いてVMMアレイ1400と同様であり、各個々のセルは、個別のEG線の使用により、浮遊ゲートの所望の電荷量に達するために、必要に応じて完全に消去され、部分的にプログラムされ、部分的に消去され得る。示されるように、基準アレイ1301及び1302は、端子BLR0、BLR1、BLR2及びBLR3における入力電流を制御ゲート電圧CG0、CG1、CG2及びCG3に変換し(マルチプレクサ1314を介したダイオード接続された基準セルの作用を通じて)、これらの電圧は行方向でメモリセルに適用される。電流出力(ニューロン)は、ビット線BL0~BLN中にあり、各ビット線は、その特定のビット線に接続された不揮発性メモリセルからの全ての電流を合計する。
【0057】
表8は、VMMアレイ1300の動作電圧及び電流を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルの制御ゲート、選択セルと同じセクタ内の非選択セルの制御ゲート、選択セルとは異なるセクタ内の非選択セルの制御ゲート、選択セルの消去ゲート、非選択セルの消去ゲート、選択セルのソース線、及び非選択セルのソース線に加えられる電圧を示す。行は、読み出し、消去、及びプログラムの動作を示す。
表8:
図13のVMMアレイ1300の動作
【表8】
【0058】
図22は、
図2に示されるメモリセル210に特に適しており、かつ入力層と次の層との間でシナプス及びニューロンの一部として利用される、ニューロンVMMアレイ2200を示す。VMMアレイ2200では、入力INPUT
0...、INPUT
Nは、それぞれ、ビット線BL
0、...BL
Nで受信され、出力OUTPUT
1、OUTPUT
2、OUTPUT
3、及びOUTPUT
4は、それぞれ、ソース線SL
0、SL
1、SL
2、及びSL
3で生成される。
【0059】
図23は、
図2に示されるメモリセル210に特に適しており、かつ入力層と次の層との間でシナプス及びニューロンの一部として利用される、ニューロンVMMアレイ2300を示す。この例では、入力INPUT
0、INPUT
1、INPUT
2、及びINPUT
3は、それぞれ、ソース線SL
0、SL
1、SL
2、及びSL
3で受信され、出力OUTPUT
0、...OUTPUT
Nは、ビット線BL
0、...、BL
Nで生成される。
【0060】
図24は、
図2に示されるメモリセル210に特に適しており、かつ入力層と次の層との間でシナプス及びニューロンの一部として利用される、ニューロンVMMアレイ2400を示す。この例では、入力INPUT
0、...、INPUT
Mは、それぞれ、ワード線WL
0、...、WL
Mで受信され、出力OUTPUT
0、...OUTPUT
Nは、ビット線BL
0、...、BL
Nで生成される。
【0061】
図25は、
図3に示されるメモリセル310に特に適しており、かつ入力層と次の層との間でシナプス及びニューロンの一部として利用される、ニューロンVMMアレイ2500を示す。この例では、入力INPUT
0、...、INPUT
Mは、それぞれ、ワード線WL
0、...、WL
Mで受信され、出力OUTPUT
0、...OUTPUT
Nは、ビット線BL
0、...、BL
Nで生成される。
【0062】
図26は、
図4に示されるメモリセル410に特に適しており、かつ入力層と次の層との間でシナプス及びニューロンの一部として利用される、ニューロンVMMアレイ2600を示す。この例では、入力INPUT
0、...、INPUT
nが、それぞれ、垂直制御ゲート線CG
0、...、CG
Nに受信され、出力OUTPUT
1及びOUTPUT
2がソース線SL
0及びSL
1に生成される。
【0063】
図27は、
図4に示されるメモリセル410に特に適しており、かつ入力層と次の層との間でシナプス及びニューロンの一部として利用される、ニューロンVMMアレイ2700を示す。この例では、それぞれ、入力INPUT
0、...、INPUT
Nは、それぞれ、ビット線BL
0、...、BL
Nに結合されているビット線制御ゲート2701-1、2701-2、...、2701-(N-1)及び2701-Nのゲートに受信される。例示的な出力OUTPUT
1及びOUTPUT
2が、ソース線SL
0及びSL
1に生成される。
【0064】
図28は、
図3に示されるメモリセル310、
図5に示されるメモリセル510、及び
図7に示されるメモリセル710に特に適しており、かつ入力層と次の層との間でシナプス及びニューロンの一部として利用される、ニューロンVMMアレイ2800を示す。この例では、入力INPUT
0、...、INPUT
Mは、それぞれ、ワード線WL
0、...、WL
Mに受信され、出力OUTPUT
0、...、OUTPUT
Nは、ビット線BL
0、...、BL
Nに生成される。
【0065】
図29は、
図3に示されるメモリセル310、
図5に示されるメモリセル510、及び
図7に示されるメモリセル710に特に適しており、かつ入力層と次の層との間でシナプス及びニューロンの一部として利用される、ニューロンVMMアレイ2900を示す。この例では、入力INPUT
0、...、INPUT
Mは、制御ゲート線CG
0、...、CG
Mに受信される。出力OUTPUT
0、...、OUTPUT
Nは、それぞれ、垂直ソース線SL
0、...、SL
Nに生成され、各ソース線SL
iは、列i内の全てのメモリセルのソース線に結合されている。
【0066】
図30は、
図3に示されるメモリセル310、
図5に示されるメモリセル510、及び
図7に示されるメモリセル710に特に適しており、かつ入力層と次の層との間でシナプス及びニューロンの一部として利用される、ニューロンVMMアレイ3000を示す。この例では、入力INPUT
0、...、INPUT
Mは、制御ゲート線CG
0、...、CG
Mに受信される。出力OUTPUT
0、...、OUTPUT
Nは、それぞれ、垂直ビット線BL
0、...、BL
Nに生成され、各ビット線BL
iは、列i内の全てのメモリセルのビット線に結合されている。
長・短期メモリ
【0067】
先行技術は、長・短期メモリ(long short-term memory、LSTM)として知られる概念を含む。LSTMユニットは、しばしば、ニューラルネットワーク内で使用される。LSTMによって、ニューラルネットワークは所定の任意の期間にわたって情報を記憶し、後続の動作においてその情報を使用することができる。従来のLSTMユニットは、セル、入力ゲート、出力ゲート、及び忘却ゲートを含む。3つのゲートは、セル内及びセル外への情報の流れ、及び情報がLSTM内で記憶される期間を調節する。VMMは、LSTMユニットにおいて特に有用である。
【0068】
図14は、例示的なLSTM1400を示す。この例におけるLSTM1400は、セル1401、1402、1403及び1404を含む。セル1401は、入力ベクトルx
0を受け取り、出力ベクトルh
0及びセル状態ベクトルc
0を生成する。セル1402は、入力ベクトルx
1と、セル1401からの出力ベクトル(隠れ状態)h
0と、セル1401からのセル状態c
0と、を受け取り、出力ベクトルh
1と、セル状態ベクトルc
1と、を生成する。セル1403は、入力ベクトルx
2と、セル1402からの出力ベクトル(隠れ状態)h
1と、セル1402からのセル状態c
1と、を受け取り、出力ベクトルh
2と、セル状態ベクトルc
2と、を生成する。セル1404は、入力ベクトルx
3と、セル1403からの出力ベクトル(隠れ状態)h
2と、セル1403からのセル状態c
2と、を受け取り、出力ベクトルh
3を生成する。追加のセルも使用可能であり、4つのセルを有するLSTMは、単なる例である。
【0069】
図15は、
図14のセル1401、1402、1403、及び1404に使用可能なLSTMセル1500の例示的な実装を示す。LSTMセル1500は、入力ベクトルx(t)と、先行するセルからのセル状態ベクトルc(t-1)と、先行するセルからの出力ベクトルh(t-1)と、を受け取り、セル状態ベクトルc(t)及び出力ベクトルh(t)を生成する。
【0070】
LSTMセル1500は、シグモイド関数デバイス1501、1502、及び1503を含み、それらの各々が0~1の数を適用して、入力ベクトルの各成分が出力ベクトルに寄与する程度を制御する。LSTMセル1500はまた、入力ベクトルに双曲線正接関数を適用するためのtanhデバイス1504及び1505と、2つのベクトルを乗算するための乗算器デバイス1506、1507、及び1508と、2つのベクトルを加算するための加算器デバイス1509と、を含む。出力ベクトルh(t)は、システム内の次のLSTMセルに提供することができるか、又は他の目的のためにアクセスすることができる。
【0071】
図16は、LSTMセル1500の一実装の一例であるLSTMセル1600を示す。読者の便宜のために、LSTMセル1500からの同じ採番方法が、LSTMセル1600で使用される。シグモイド関数デバイス1501、1502、及び1503、並びにtanhデバイス1504は各々、複数のVMMアレイ1601及び活性化関数ブロック1602を含む。したがって、VMMアレイは、特定のニューラルネットワークシステムで使用されるLSTMセルにおいて特に有用であることが分かる。乗算器デバイス1506、1507、及び1508、並びに加算器デバイス1509は、デジタル方式又はアナログ方式で実装される。活性化関数ブロック1602は、デジタル方式、又はアナログ方式で実装され得る。
【0072】
LSTMセル1600の代替例(及びLSTMセル1500の一実装の別の例)を
図17に示す。
図17では、シグモイド関数デバイス1501、1502及び1503、並びにtanhデバイス1504は、同じ物理ハードウェア(VMMアレイ1701及び活性化関数ブロック1702)を、時分割多重化された方式で共有する。LSTMセル1700はまた、2つのベクトルを乗算するための乗算器デバイス1703と、2つのベクトルを加算するための加算器デバイス1708と、(活性化関数ブロック1702を含む)tanhデバイス1505と、値i(t)を、i(t)がシグモイド関数ブロック1702から出力されるときに記憶するためのレジスタ1707と、値f(t)
*c(t-1)を、その値がマルチプレクサ1710を介して乗算器デバイス1703から出力されるときに記憶するためのレジスタ1704と、値i(t)
*u(t)を、その値がマルチプレクサ1710を介して乗算器デバイス1703から出力されるときに記憶するためのレジスタ1705と、値o(t)
*c~(t)を、その値がマルチプレクサ1710を介して乗算器デバイス1703から出力されるときに記憶するためのレジスタ1706と、マルチプレクサ1709と、を含む。
【0073】
LSTMセル1600がVMMアレイ1601とそれぞれの活性化関数ブロック1602との複数のセットを含むのに対し、LSTMセル1700は、LSTMセル1700の実施形態において複数の層を表すために使用される、VMMアレイ1701及び活性化関数ブロック1702の1つのセットのみを含む。LSTMセル1700は、LSTMセル1600と比較して、VMM及び活性化関数ブロックのために必要とするスペースは1/4で済むので、LSTMセル1700は、LSTM1600より必要とするスペースが少ない。
【0074】
LSTMユニットは典型的には複数のVMMアレイを含み、これらの各々は、加算器及び活性化関数ブロック及び高電圧生成ブロックなどの、VMMアレイの外側の特定の回路ブロックによって提供される機能を必要とすることを更に理解することができる。各VMMアレイのための別個の回路ブロックを提供することは、半導体デバイス内にかなりの量のスペースを必要とし、幾分非効率的であろう。したがって、以下に記載される実施形態は、VMMアレイ自体の外側に必要とされる回路を削減する。
ゲート付き回帰型ユニット
【0075】
アナログVMM実装は、ゲート付き回帰型ユニット(gated recurrent unit、GRU)システムに利用することができる。GRUは、反復ニューラルネットワーク内のゲート機構である。GRUは、GRUセルが一般にLSTMセルよりも少ない構成要素を含むことを除いて、LSTMに類似している。
【0076】
図18は、例示的なGRU1800を示す。この例におけるGRU1800は、セル1801、1802、1803及び1804を含む。セル1801は、入力ベクトルx
0を受け取り、出力ベクトルh
0を生成する。セル1802は、入力ベクトルx
1と、セル1801からの出力ベクトルh
0と、を受け取り、出力ベクトルh
1を生成する。セル1803は、入力ベクトルx
2と、セル1802からの出力ベクトル(隠れ状態)h
1と、を受け取り、出力ベクトルh
2を生成する。セル1804は、入力ベクトルx
3と、セル1803からの出力ベクトル(隠れ状態)h
2と、を受け取り、出力ベクトルh
3を生成する。追加のセルも使用可能であり、4つのセルを有するGRUは、単なる例である。
【0077】
図19は、
図18のセル1801、1802、1803、及び1804に使用され得るGRUセル1900の例示的な実装を示す。GRUセル1900は、入力ベクトルx(t)と、先行するGRUセルからの出力ベクトルh(t-1)と、を受け取り、出力ベクトルh(t)を生成する。GRUセル1900は、シグモイド関数デバイス1901及び1902を含み、それらの各々が、出力ベクトルh(t-1)及び入力ベクトルx(t)からの成分に0~1の数を適用する。GRUセル1900はまた、入力ベクトルに双曲線正接関数を適用するためのtanhデバイス1903と、2つのベクトルを乗算するための複数の乗算器デバイス1904、1905、及び1906と、2つのベクトルを加算するための加算器デバイス1907と、1から入力を減算して出力を生成するための相補デバイス1908と、を含む。
【0078】
図20は、GRUセル1900の一実装の一例であるGRUセル2000を示す。読者の便宜のために、GRUセル1900からの同じ採番方法が、GRUセル2000で使用される。
図20から分かるように、シグモイド関数デバイス1901及び1902、並びにtanhデバイス1903は各々、複数のVMMアレイ2001及び活性化関数ブロック2002を含む。したがって、VMMアレイは、特定のニューラルネットワークシステムで使用されるGRUセルにおいて特に使用されることが分かる。乗算器デバイス1904、1905、1906、加算器デバイス1907、及びコンプリメンタリデバイス1908は、デジタル方式又はアナログ方式で実装される。活性化関数ブロック2002は、デジタル方式、又はアナログ方式で実装され得る。
【0079】
GRUセル2000の代替例(及びGRUセル1900の一実装の別の例)を
図21に示す。
図21において、GRUセル2100は、VMMアレイ2101及び活性化関数ブロック2102を利用しており、シグモイド関数として構成された場合には、0~1の数を適用して、入力ベクトルの各成分が出力ベクトルに寄与する程度を制御する。
図21では、シグモイド関数デバイス1901及び1902、並びにtanhデバイス1903は、同じ物理ハードウェア(VMMアレイ2101及び活性化関数ブロック2102)を、時分割多重化された方式で共有する。GRUセル2100はまた、2つのベクトルを乗算するための乗算器デバイス2103と、2つのベクトルを加算するための加算器デバイス2105と、1から入力を減算して、出力を生成するためのコンプリメンタリデバイス2109と、マルチプレクサ2104と、値h(t-1)
*r(t)を、その値がマルチプレクサ2104を介して乗算器デバイス2103から出力されるときに保持するためのレジスタ2106と、値h(t-1)
*z(t)を、その値がマルチプレクサ2104を介して乗算器デバイス2103から出力されるときに保持するためのレジスタ2107と、値h^(t)
*(1-z((t))を、その値がマルチプレクサ2104を介して乗算器デバイス2103から出力されるときに保持するためのレジスタ2108と、を含む。
【0080】
GRUセル2000がVMMアレイ2001及び活性化関数ブロック2002の複数のセットを含むのに対し、GRUセル2100は、GRUセル2100の実施形態において複数の層を表すために使用される、VMMアレイ2101及び活性化関数ブロック2102の1つのセットのみを含む。GRUセル2100は、GRUセル2000と比較して、VMM及び活性化関数ブロックのために必要とするスペースは1/3で済むので、GRUセル2100は、GRUセル2000よりも必要とするスペースが少ない。
【0081】
GRUシステムは典型的には複数のVMMアレイを含み、これらの各々は、加算器及び活性化関数ブロック及び高電圧生成ブロックなどの、VMMアレイの外側の特定の回路ブロックによって提供される機能を必要とすることが更に理解することができる。各VMMアレイのための別個の回路ブロックを提供することは、半導体デバイス内にかなりの量のスペースを必要とし、幾分非効率的であろう。したがって、以下に記載される実施形態は、VMMアレイ自体の外側に必要とされる回路を削減する。
【0082】
VMMアレイへの入力は、アナログレベル、バイナリレベル、パルス、時間変調パルス、又はデジタルビット(この場合、デジタルビットを適切な入力アナログレベルに変換するためにDACが必要とされる)であり、出力は、アナログレベル、バイナリレベル、タイミングパルス、パルス、又はデジタルビット(この場合、出力アナログレベルをデジタルビットに変換するために出力ADCが必要とされる)であり得る。
【0083】
VMMアレイ内の各メモリセルに関して、各重みWは、単一のメモリセルによって、又は差動セルによって、又は2つのブレンドメモリセル(2つのセルの平均)によって実装することができる。差分セルの場合では、重みWを差分重み(W=W+-W-)として実装するために、2つのメモリセルが必要とされる。2つのブレンドメモリセルの場合は、2つのセルの平均として重みWを実装するために2つのメモリセルが必要とされる。
【0084】
図31は、VMMシステム3100を示す。いくつかの実施形態では、VMMアレイに記憶された重みWは、差動対、W+(正の重み)及びW-(負の重み)、として記憶され、式中W=(W+)-(W-)である。VMMシステム3100において、ビット線の半分はW+線として指定され、すなわち、正の重みW+を記憶するメモリセルに接続するビット線であり、ビット線の他の半分はW-線として指定され、すなわち、負の重みW-を実装するメモリセルに接続するビット線である。W-線は、W+線の間に交互に散在される。減算演算は、加算回路3101及び3102のような、W+線及びW-線から電流を受け取る加算回路によって実行される。W+線の出力及びW-線の出力を一緒に組み合わせて、(W+、W-)線の全ての対の(W+、W-)セルの各対に対して効果的にW=W+-W-を与える。これまでW+線間に交互に散在するW-線に関して説明してきたが、他の実施形態では、W+線及びW-線は、アレイ内のどこにでも任意に配置され得る。
【0085】
図32は、別の実施形態を示す。VMMシステム3210において、正の重みW+は第1のアレイ3211に実装され、負の重みW-は第2のアレイ3212内に実装され、第2のアレイ3212は第1のアレイとは別個であり、結果として生じる重みは、加算回路3213によって適切に一緒に組み合わされる。
【0086】
図33は、VMMシステム3300を示す。VMMアレイに記憶された重みWは、差動対、W+(正の重み)及びW-(負の重み)として記憶され、式中、W=(W+)-(W-)である。VMMシステム3300は、アレイ3301及びアレイ3302を備える。アレイ3301及び3302の各々におけるビット線の半分は、W+線として指定され、すなわち、正の重みW+を記憶するメモリセルに接続するビット線であり、アレイ3301及び3302の各々におけるビット線の他の半分はW-線として指定され、すなわち、負の重みW-を実装するメモリセルに接続するビット線である。W-線は、W+線の間に交互に散在される。減算演算は、加算回路3303、3304、3305及び3306のような、W+線及びW-線から電流を受け取る加算回路によって実行される。各アレイ3301、3302からのW+線の出力及びW-線の出力をそれぞれ一緒に組み合わせて、(W+、W-)線の全ての対の(W+、W-)セルの各対に対して効果的にW=W+-W-を与える。加えて、各アレイ3301及び3302からのW値は、各W値がアレイ3301からのW値からアレイ3302からのW値を引いた結果であり、加算回路3307及び3308からの最終結果が2つの差分値のうちの1つの差分値であることを意味するように、加算回路3307及び3308を介して更に組み合わされ得る。
【0087】
アナログニューラルメモリシステムに使用される各不揮発性メモリセルは、消去・プログラムに対応して、浮遊ゲート内に電荷、すなわち電子の数、を非常に具体的かつ精確な量で保持する。例えば、各浮遊ゲートはN個の異なる値のうちの1つを保持しなければならず、ここで、Nは、各セルによって示され得る異なる重みの数である。Nの例としては、16、32、64、128及び256が挙げられる。
【0088】
同様に、読み出し動作は、N個の異なるレベル間を正確に識別することができなければならない。
【0089】
VMMシステムにおいて、アレイからの出力を迅速かつ正確に受け取り、それらの出力によって表される値を識別することができる改善された出力ブロックが必要とされている。
【発明の概要】
【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】
【
図1】人工ニューラルネットワークを例解する図である。
【
図2】先行技術のスプリットゲートフラッシュメモリセルを示す。
【
図3】別の先行技術のスプリットゲートフラッシュメモリセルを示す。
【
図4】別の先行技術のスプリットゲートフラッシュメモリセルを示す。
【
図5】別の先行技術のスプリットゲートフラッシュメモリセルを示す。
【
図6】1つ以上の不揮発性メモリアレイを利用する例示的な人工ニューラルネットワークの様々なレベルを例解する図である。
【
図7】ベクトルマトリックス乗算システムを例解するブロック図である。
【
図8】1つ以上のベクトルマトリックス乗算システムを利用する例示的な人工ニューラルネットワークを例解するブロック図である。
【
図9】ベクトルマトリックス乗算システムの別の実施形態を示す。
【
図10】ベクトルマトリックス乗算システムの別の実施形態を示す。
【
図11】ベクトルマトリックス乗算システムの別の実施形態を示す。
【
図12】ベクトルマトリックス乗算システムの別の実施形態を示す。
【
図13】ベクトルマトリックス乗算システムの別の実施形態を示す。
【
図14】先行技術の長・短期メモリシステムを示す。
【
図15】長・短期メモリシステムで使用する例示的なセルを示す。
【
図18】先行技術のゲート付き回帰型ユニットシステムを示す。
【
図19】ゲート付き回帰型ユニットシステムでの使用のための例示的なセルを示す。
【
図22】ベクトルマトリックス乗算システムの別の実施形態を示す。
【
図23】ベクトルマトリックス乗算システムの別の実施形態を示す。
【
図24】ベクトルマトリックス乗算システムの別の実施形態を示す。
【
図25】ベクトルマトリックス乗算システムの別の実施形態を示す。
【
図26】ベクトルマトリックス乗算システムの別の実施形態を示す。
【
図27】ベクトルマトリックス乗算システムの別の実施形態を示す。
【
図28】ベクトルマトリックス乗算システムの別の実施形態を示す。
【
図29】ベクトルマトリックス乗算システムの別の実施形態を示す。
【
図30】ベクトルマトリックス乗算システムの別の実施形態を示す。
【
図31】ベクトルマトリックス乗算システムの別の実施形態を示す。
【
図32】ベクトルマトリックス乗算システムの別の実施形態を示す。
【
図33】ベクトルマトリックス乗算システムの別の実施形態を示す。
【
図34】ベクトルマトリックス乗算システムの別の実施形態を示す。
【発明を実施するための形態】
【0134】
本発明の人工ニューラルネットワークは、CMOS技術及び不揮発性メモリアレイの組み合わせを利用する。
VMMシステムの概要
【0135】
図34は、VMMシステム3400のブロック図を示す。VMMシステム3400は、VMMアレイ3401、行デコーダ3402、高電圧デコーダ3403、列デコーダ3404、ビット線ドライバ3405、入力回路3406、出力回路3407、制御論理3408、及びバイアス生成器3409を備える。VMMシステム3400は、チャージポンプ3411、チャージポンプレギュレータ3412、及び高電圧アナログ精度レベル生成器3413を含む、高電圧生成ブロック3410を更に備える。VMMシステム3400は、(プログラム/消去、又は重み調整)アルゴリズムコントローラ3414、アナログ回路3415、制御エンジン3416(限定するものではないが、算術機能、起動機能、埋め込みマイクロコントローラ論理などの特殊機能を含み得る)、及びテスト制御論理3417を更に備える。以下に記載されるシステム及び方法は、VMMシステム3400に実装され得る。
【0136】
入力回路3406は、DAC(digital to analog converter、デジタル-アナログ変換器)、DPC(digital to pulses converter、デジタル-パルス変換器、digital to time modulated pulse converter、デジタル-時間変調パルス変換器)、AAC(analog to analog converter、電流-電圧変換器、対数変換器などのアナログ-アナログ変換器)、PAC(pulse to analog level converter、パルス-アナログレベル変換器)、又は任意の他の種類の変換器などの回路を含み得る。入力回路3406は、正規化、線形若しくは非線形アップ/ダウンスケーリング関数、又は算術関数を実装し得る。入力回路3406は、入力レベルのための温度補償関数を実装し得る。入力回路3406は、ReLU又はシグモイドなどの活性化関数を実装し得る。出力回路3407は、ADC(analog to digital converter、ニューロンアナログ出力をデジタルビットに変換するための、アナログ-デジタル変換器)、AAC(analog to analog converter、電流-電圧変換器、対数変換器などのアナログ-アナログ変換器)、APC(analog to pulses converter、アナログ-パルス変換器、analog to time modulated pulse converter、アナログ-時間変調パルス変換器)、又は任意の他の種類の変換器などの回路を含み得る。
【0137】
出力回路3407は、整流化線形活性関数(rectified linear activation function、ReLU)又はシグモイドなどの活性化関数を実装し得る。出力回路3407は、ニューロン出力の統計的正規化、正則化、アップ/ダウンスケーリング/ゲイン関数、統計的丸め、又は算術関数(例えば、加算、減算、除算、乗算、シフト、ログ)を実装し得る。出力回路3407は、アレイの電力消費をほぼ一定に保つために、又はIVの傾斜をほぼ同じに保つことになどによってアレイ(ニューロン)出力の精度を高めるために、ニューロン出力又はアレイ出力(ビット線出力など)のための温度補償関数を実装し得る。
【0138】
図35Aは、出力ブロック3500を示す。出力ブロック3500は、電流-電圧変換器(差動入力及び差動出力を有するITV、current-to-voltage converter)3501-1~3501-i(iは、出力ブロック3500が受け取るビット線W+及びW-の対の数である)と、マルチプレクサ3502と、サンプルホールド回路3503-1~3503-kと、チャネルマルチプレクサ3504と、差動入力アナログーデジタル変換器(ADC)3505と、を含む。出力ブロック3500は、アレイ内のビット線対から差動重み出力W+及びW-を受け取り、最終的に、ADC3505(差動入力を有するADC)からのビット線対(例えば、W+線及びW-線)のうちの1つの出力を表すデジタル出力、DOUTxを生成する。
【0139】
電流-電圧(ITV)変換器3501-1~3501-iは、各々アナログビット線電流信号BLw+及びBLw-(それぞれ、入力並びに記憶されたW+重み及びW-重みに応答して生成されるビット線出力である)を受け取り、それらをそれぞれの差動電圧ITVO+及びITVO-に変換する。
【0140】
次いで、差動電圧ITVO+及びITVO-はマルチプレクサ3502によって受け取られ、このマルチプレクサは、電流-電圧変換器3501-1~3501-iからの出力をサンプルホールド(sample and hold、S/H)回路3503-1~3503kに時分割多重化し、ここで、kはiと同じであるか又は異なり得る。
【0141】
S/H回路3503-1~3503-kは各々、その受け取った差動電圧をサンプリングし、それらを差動出力として保持する。
【0142】
チャネルマルチプレクサ3504は、制御信号を受信して、ビット線W+チャネル及びW-チャネルのうちの1つ、すなわち、ビット線対のうちの1つを選択し、それぞれのサンプルホールド回路3503によって保持された差動電圧をADC3505に出力し、このADCは、それぞれのサンプルホールド回路3503によって出力されたアナログ差動電圧を1組のデジタルビット、DOUTxに変換する。単一のS/H 3503は、複数のITV変換器3501にわたって共有され得る。ADC3505は、時間多重化方式で複数のITV変換器に対して動作し得る。各S/H3503は、単なるコンデンサであるか又はバッファ(例えば、演算増幅器)が後続するコンデンサであり得る。
【0143】
【0144】
ADC3505は、ハイブリッドADCアーキテクチャとすることができ、これは、変換を実行するために2つ以上のADCアーキテクチャを有することを意味する。例えば、DOUTxが8ビット出力である場合、ADC3505は、ビットB7~B4を生成するためのADCサブアーキテクチャと、差動入力ITVSH+及びITVSH-からビットB3~B0を生成するための別のADCサブアーキテクチャと、を含み得る。すなわち、ADC回路3505は、複数のADCサブアーキテクチャを含み得る。
【0145】
任意選択で、あるADCサブアーキテクチャは、全てのチャネル間で共有され得るが、別のADCサブアーキテクチャは、全てのチャネル間で共有されない。
【0146】
別の実施形態では、チャネルマルチプレクサ3504及びADC3505は除去され得、代わりに、出力は、演算増幅器によってバッファリングされ得る、S/H3503からのアナログ差動電圧であり得る。例えば、アナログ電圧の使用は、全アナログニューラルネットワーク(すなわち、ニューラルメモリアレイのためにデジタル出力又はデジタル入力が必要とされないもの)において実装され得る。
【0147】
図35Bは、出力ブロック3550を示す。出力ブロックは、電流-電圧変換器(ITV)3551-1~3551-i(iは、出力ブロック3550が受け取るビット線W+及びW-の対の数である)と、マルチプレクサ3552と、差動-シングルエンド変換器Diff-to-S変換器3553-1~3553-kと、サンプルホールド回路3554-1~3554-k(kは、iと同じか又は異なる)と、チャネルマルチプレクサ3555と、アナログ-デジタル変換器(ADC)3556と、を含む。Diff-to-S変換器3553は、mux3552によって提供されたITV3551信号からの差動出力、すなわちITVOMX+及びITVOMX-をシングルエンド出力ITVSOMX+に変換するために使用される。シングルエンド出力ITVSOMX+は、次いで、S/H3554、マルチプレクサ3555、及びADC3556に入力される。
【0148】
図35Cは、出力ブロック3560を示す。出力ブロック3560は、電流-電圧変換器(ITV)3561-1~3561-i(iは、出力ブロック3560が受け取るビット線W+及びW-の対の数である)と、差動入力アナログ-デジタル変換器(ADC)3566-1~3566-iと、を備える。
【0149】
図35Dは、出力ブロック3570を示す。出力ブロック3570は、電流-電圧変換器(ITV)3571-1~3571-i(iは、出力ブロック3570が受け取るビット線W+及びW-の対の数である)と、単一入力アナログ-デジタル変換器(ADC)3576-1~3576-iと、を備える。この場合、差動出力ITVの1つの出力のみが使用され、ITVは、差動入力及び単一出力で使用される。
【0150】
図35Eは、出力ブロック3580を示す。出力ブロック3580は、電流-電圧変換器(ITV)3581-1~3581-i(iは、出力ブロック3580が受け取るビット線W+及びW-の対の数である)と、差動入力アナログ-デジタル変換器(ADC)3586-1~3586-iと、を備える。ITVブロック3581-1~3581-iは、それぞれ、コモンモード入力回路3582-1~3582-iと、それぞれ、差動演算増幅器3583-1~3583-Iと、を備え、フィードバックは、それぞれ、可変抵抗器3584-1~3584-i及び3585-1~3585-iによって提供される。
【0151】
図35Fは、
図35Eのコモンモード入力回路3582-1~3582-iのために使用され得る出力ブロック3590を示す。出力ブロック3591は、2つの電流入力BLw+及びBLw-に接続された2つの等しい可変電流源Ibias+及びIbias-を備える。
【0152】
図36は、出力ブロック3600を示す。出力ブロックは、加算回路3601-1~3601-i(カレントミラー回路など)であって、iは、出力ブロック3600が受け取るビット線BLw+及びBLw-の対の数である、加算回路3601-1~3601-iと、電流-電圧変換器回路(ITV)3602-1~3602-iと、マルチプレクサ3603と、サンプルホールド回路3604-1~3604-kと(kはiと同じであるか又は異なる)、チャネルマルチプレクサ3605と、ADC3606と、を含む。出力ブロック3600は、アレイ内のビット線対から差動重み出力BLw+及びBLw-を受け取り、最終的に、一度にビット線対のうちの1つの出力を表す、ADC3606からのデジタル出力、DOUTxを生成する。
【0153】
電流加算回路3601-1~3601-iは、各々、ビット線対から電流を受け取り、BLw+からBLw-値を減算し、その結果を加算電流IWOとして出力する。
【0154】
電流-電圧変換器3602-1~3602-iは、出力加算電流IWOを受け取り、それぞれの加算電流を差動電圧ITVO+及びITVO-に変換し、次いで、差動電圧は、マルチプレクサ3603によって受け取られ、サンプルホールド回路3604-1~3604-kに選択的に提供される。差動電圧は、差動入力ADC(ブロック3606)によってデジタル化される(デジタル出力ビットに変換される)ことになり、これは、(クロックフィードスルーなどからの)入力雑音低減及び(SAR ADCにおけるような)より正確な比較動作などの様々な利点を有する。
【0155】
各サンプルホールド回路3604は、差動電圧ITVOMX+及びITVOMX-を受け取り、受け取った差動電圧をサンプリングし、それらを差動電圧出力OSH+及びPSH-として保持する。
【0156】
チャネルマルチプレクサ3605は、ビット線対のうちの1つ、すなわち、チャネルBLw+及びBLw-を選択するための制御信号を受信し、それぞれのサンプルホールド回路3604によって保持された電圧を差動入力ADC3606に出力し、ADC3606は、電圧をDOUTxとして1組のデジタルビットに変換する。
【0157】
図37Aは、
図35の出力ブロック3500又は
図36の出力ブロック3600に任意選択で含まれ得る出力電流ニューロン回路3700を示す。
【0158】
出力電流ニューロン回路3700は、第1の可変電流源3701と、第2の可変電流源3702と、バイアス回路3703と、を備える。バイアス回路3703は、BLW+とVREF又はBLW-とVREFとの比較に基づいて制御電圧Vbiasを生成する。第1の可変電流源3701は、制御電圧Vbiasによって変化する出力電流Ibias+を生成し(すなわち、出力電流Ibias+の量はVbiasの値に応答する)、第1のビット線BLW+に結合される。第2の可変電流源3702は、Vbiasによって変化する出力電流Ibias-を生成し(すなわち、出力電流Ibias-の量はVbiasの値に応答する)、第2のビット線BLW-に結合される。BLW+は、列デコーダ(図示せず)によって選択され、読み出し動作中にW+値を記憶するセルから第1の電流を受け取り、BLW-は、列デコーダによって選択され、読み出し動作中にW-値を記憶するセルから第2の電流を受け取る。W+値及び関連するW-値は、重み値Wを表す。電流源3701及び3702の出力Ibias+及びIbias-は、任意の所与の時間において同一である。
【0159】
VREFは、入力コモンモード電圧として適用され、Vbias電圧を生成して、可変電流源3701及び3702を制御し、コモンモード電圧をBLW+及びBLW-に適用し、入力コモンモード電圧は、読み出し動作中にビット線上の基準読み出し電圧として作用する。出力電流ニューロン回路3700の出力はIout+及びIout-であり、これらは、差動信号を形成する。Iout+は、Vbiasが適用されてIbias+を生成した後のビット線BLW+からの出力電流であり、Iout-は、Vbiasが適用されてIbias-を生成した後のビット線BLW-からの出力電流であり、ここで、Iout+=Ibias+-IBLW+であり、Iout-=Ibias--IBLW-である。
【0160】
図37Bは、PMOSトランジスタ3711及び3712を使用する可変電流源3701及び3702の一実施形態を示す出力電流ニューロン回路3750を示す。
【0161】
図38Aは、
図35の出力ブロック3500、
図35Bの出力ブロック3550、又は
図36の出力ブロック3600に任意選択で含まれ得る出力電流ニューロン回路3800を示す。
【0162】
出力電流ニューロン回路3800は、第1の端部及び第2の端部を備える第1の可変抵抗器3801(第1のデバイス)であって、第2の端部は、読み出し動作中に選択されるビット線BLW+に結合される、第1の可変抵抗器と、第3の端部及び第4の端部を備える第2の可変抵抗器3802(第2のデバイス)であって、ビット線BLW-に結合された第4の端部が、読み出し動作中に選択され、BLW+が、W+値を記憶するメモリアレイ内のセルに接続され、BLW-が、関連するW-を記憶するメモリアレイ内のセルに接続される、第2の可変抵抗器と、可変電流源3803と、値がBLW+(又は代替的にBLW-)とVREFとの間の差を表すバイアス電圧Vbiasを生成するバイアス回路オペアンプ3804と、を備える。第1の可変抵抗器3801の第1の端部及び第2の可変抵抗器3802の第3の端部は、可変電流源3803に結合される。
【0163】
VREFは、可変電流源3803に適用されるVbias電圧を生成して、入力コモンモード電圧をビット線BLW+及びBLW-に適用するために使用され、入力コモンモード電圧は、読み出し動作中にビット線上の読み出し基準電圧として作用する。出力電流ニューロン回路3800の出力は、第1の可変抵抗器3801からのIout+(第1の出力電流)及び第2の可変抵抗器3802からのIout-(第2の出力電流)であり、これらは、差動電流信号を形成する。Iout+は、Vbiasが適用されてIbiasを生成した後のビット線BLW+からの出力電流であり、Iout-は、Vbiasが適用されてIbiasを生成した後のビット線BLW-からの出力電流であり、Iout+=Ibias-IBLW+及びIout-=Ibias-IBLW-に従う。
【0164】
図38Bは、
図35の出力ブロック3500、
図35Bの出力ブロック3550、ブロック、又は
図36の出力ブロック3600に任意選択で含まれ得る出力電流ニューロン回路3820を示す。この回路は、オペアンプ3804の出力が2つの可変抵抗器3801及び3802の2つの端子に直接駆動されることを除いて、
図38Aの回路と同様である。
【0165】
図39は、
図38の可変抵抗器3801及び/又は可変抵抗器3802の代わりに任意選択で使用され得る可変抵抗器レプリカ3900を示す。可変抵抗器レプリカ3900は、NMOSトランジスタ3901を備える。NMOSトランジスタ3901の1つの端子は、バイアス回路3804に結合される。NMOSトランジスタ3901の別の端子は、BLW+又はBLW-のいずれかに結合される。NMOSトランジスタ3901のゲートは、NMOSトランジスタ3901によって提供される抵抗を調整する制御信号VGCを生成する比較器3902に結合される。したがって、NMOS3901の抵抗は、=VREF/IBIASである。VREF又はIBIASを変化させることによって、NMOS3901の等価抵抗を変化させることができる。
【0166】
図40は、
図35Aの電流-電圧変換器3501、
図35Bの電流-電圧変換器3511、又は
図36の電流-電圧変換器3602に使用され得る電流-電圧変換器4000を示す。
【0167】
電流-電圧変換器4000は、示されるように構成されて、差動増幅器4001と、可変積分抵抗器4002及び4003と、制御スイッチ4004、4005、4006、及び4007と、可変サンプルホールドコンデンサ4008及び4009と、を含む。
【0168】
電流-電圧コンバータ4000は、差動電流IOUT+及びIOUT-及び出力電圧VOP及びVONを受け取る。出力電圧VOP=IOUT+*R及び出力電圧VON=IOUT-*Rであり、抵抗器4002及び4003は、各々がRに等しい値を有する。出力ニューロンのスケーリングは、抵抗器4002及び4003の値の変化によって提供される。例えば、抵抗器4002及び4004は、各々が、抵抗器レプリカ回路3900によって提供され得る。コンデンサ4008及び4009は、ホールドS/Hコンデンサとして機能し、抵抗器4002及び4003並びに入力電流が遮断されると出力電圧を保持する。制御回路(図示せず)は、スイッチ4004、4005、4006、及び4007の開閉を制御して、積分時間を提供する。
【0169】
動作の別のモードでは、可変コンデンサ4008及び4009は、差動出力電流IOUT+及びIOUT-を積分するために使用される。この場合、抵抗器4002及び4003は無効にされる(使用されない)。したがって、出力電圧VOPは、Iout+*Time/Cに比例し、出力電圧VONは、Iout-*Time/Cに比例する。値Timeは、パルス4010 Tのパルス幅によって制御される。C値は、コンデンサ4008及び4009によって提供される。次いで、出力ニューロン値のスケーリングは、この例では、パルス幅Tの変化又はコンデンサ4008及び4009のコンデンサ値の変化によって提供される。
【0170】
差動電流IOUT+及びIOUT-は、第1のビット線電流BLW+及び第2のビット線電流BLW-から導出される。IOUT+及びIOUT-は、相補的な値(一方が正で他方が負であり、同じ大きさ)を有する。IOUT+=((BLW-の電流)-(BLW+の電流))/2であり、IOUT-=((BLW+の電流)-(BLW-の電流))/2である。例えば、BLW+の電流が1μaであり、BLW-の電流が31μaである場合、Iout+=(31μA-1μA)/2=15μAであり、Iout-=-15μAである。
【0171】
図41は、
図35Aの出力ブロック3500、
図35Bの出力ブロック3550、又は
図36の出力ブロック3600に任意選択で含まれ得る差動増幅器4100を示す。差動出力増幅器4100は、示されるように構成され、PMOSトランジスタ4101、4102、4103、4104、4105、4106、4107、及び4108、並びにNMOSトランジスタ4109、4110、4111、4112、及び4113を備える。差動出力増幅器4100は、入力VINP及びVINNを受信し、出力VOUTP及びVOUTNを生成する。VPBIASは、PMOSトランジスタ4102、4104、4106、及び4108のゲートに適用され、VNBIASは、NMOSトランジスタ4111及び4113のゲートに適用される。VINP>VINNである場合、VOUTPはハイであり、VOUTNはローとなる。VINP<VINNである場合、VOUTPはローであり、VOUTNはハイとなる。出力コモンモードのためのコモンモードフィードバック回路は示されていない。
【0172】
図42は、上記の出力ブロック3500、3550、3560、3570、3580、3590、又は3600などの出力ブロックのためのオフセット較正方法4200を示す。この方法は、ITVブロック又はADCブロックなどによって、出力ブロックのサブ回路ブロック内で実行され得る。
【0173】
まず、公称バイアスが入力ノードに適用される。公称バイアスは、0値又は平均値(BLw+及びBLw-の入力に対する目標入力範囲の平均など)などの中点オフセットトリム設定とすることができる(ステップ4202)。
【0174】
第2に、増加したオフセットトリム設定が、(ITV又はADCなど)出力ブロックのサブ回路ブロックのうちの1つに適用される。(ステップ4203)。
【0175】
第3に、出力ブロック全体の新しいトリム出力値が測定され、予想出力値と比較されて、その値が公称出力値の目標値内にあるかどうかが調べられる(ステップ4204)。真である場合、方法は、ステップ4207に進む。真でない場合、ステップ4203及び4204が繰り返され、サブ回路ブロックに適用されるオフセットトリム設定は、出力ブロック全体の新しいトリム出力値が予想出力値の範囲内になるまで毎回増加し、その時点でステップ4207に進む。
【0176】
(閾値Tによって設定される)所定の回数の試行の後、出力ブロック全体の新しいトリム出力値が、予想出力値としての目標内にない場合、オフセットトリム設定は、公称オフセットトリム設定に戻され、オフセットトリム設定は、公称設定から減少する(ステップ4205)。
【0177】
出力ブロック全体の新しいトリム出力値が測定され、出力ブロック全体の予想出力値と比較されて、その値が予想出力値の目標値内にあるかどうかが調べられる(ステップ4206)。真である場合、方法は、ステップ4207に進む。真でない場合、ステップ4205及び4206が繰り返され、入力ノードに適用されるオフセットトリム設定は、新しいトリム出力値が予想出力値の目標値内になるまで毎回減少し、その時点で、ステップ4207に進む。
【0178】
ステップ4207において、出力値を予想出力値の目標値内にさせたトリム値が、記憶されたトリム値として記憶される。これは、出力ブロックによる最小オフセットをもたらすトリム値である。
【0179】
ステップ4208において、任意で、記憶されたトリム値は、全ての動作中に出力ブロックのサブ回路ブロックにバイアスとして適用される。
【0180】
したがって、オフセット較正方法4200は、出力ブロックのサブ回路ブロックをトリミングすることによって、出力ブロック全体に対してトリム動作を実行する。
【0181】
図43は、上記の出力ブロック3500、3550、3560、3570、3580、3590、又は3600などの出力ブロックのためのオフセット較正方法4300を示す。この方法は、ITVブロック又はADCブロックなどによって、サブ回路ブロック内で実行され得る。
【0182】
最初に、基準バイアスが、出力ブロックのサブ回路ブロックの入力ノード(BLw+及びBLw-に対する入力など)に適用される(ステップ4301)。
【0183】
次に、出力ブロックの出力値が測定され、目標オフセット値と比較される(ステップ4302)。
【0184】
測定された出力値>目標オフセット値である場合、オフセットトリム値のシーケンスにおける次のオフセットトリム値が適用され(ステップ4303)、ステップ4302が繰り返される。オフセットトリムは、(ITV又はADCなど)出力ブロックのサブ回路ブロックのうちの1つに適用される。
【0185】
ステップ4303及びステップ4302が、測定された出力値≦目標オフセット値になるまで繰り返され、その時点でオフセットトリム値が、記憶される(ステップ4304)。これは、オフセットの許容可能なレベルをもたらすトリム値である。
【0186】
任意選択で、記憶されたオフセットトリム値は、全ての動作中に出力ブロックのサブ回路ブロックにバイアスとして適用される(ステップ4305)。
【0187】
代替的な実施形態では、
図35E又は
図40Bの可変抵抗器は、抵抗が等しくない。この場合、ITVからの出力電圧又は電流は抵抗値に比例する。例えば、
図35Eにおいて、抵抗3585-1は非常に大きくすることができ、その場合、2つのビット線(IBLw+-IBLw-)からの電流の大部分は、抵抗3584-1を通って流れる。
図35Eの別の例では、抵抗3585-1が切断され、次いで、2つのビット線(IBLw+-IBLw-)からの電流の全てが、抵抗3584-1を通って流れる。
【0188】
本明細書で使用される場合、「の上方に(over)」及び「に(on)」という用語は両方とも、「に直接」(中間材料、要素、又は間隙がそれらの間に配設されていない)、及び「に間接的に」(中間材料、要素、又は間隙がそれらの間に配設されている)を包括的に含むことに留意されるべきである。同様に、「隣接した」という用語は、「直接隣接した」(中間材料、要素、又は間隙がそれらの間に配設されていない)、及び「間接的に隣接した」(中間材料、要素、又は間隙がそれらの間に配設されている)を含み、「に取り付けられた」は、「に直接取り付けられた」(中間材料、要素、又は間隙がそれらの間に配設されていない)、及び「に間接的に取り付けられた」(中間材料、要素、又は間隙がそれらの間に配設されている)を含み、「電気的に結合された」は、「に直接電気的に結合された」(要素を一緒に電気的に接続する中間材料又は要素がそれらの間にない)、及び「に間接的に電気的に結合された」(要素を一緒に電気的に接続する中間材料又は要素がそれらの間にある)を含む。例えば、要素を「基板の上方に」形成することは、その要素を基板に直接、中間材料/要素をそれらの間に伴わずに形成すること、及びその要素を基板に間接的に1つ以上の中間材料/要素をそれらの間に伴って形成することを含み得る。
【手続補正書】
【提出日】2024-03-07
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
出力電流ニューロン回路であって、
メモリアレイ内のW+セルに結合され、読み出し動作中に第1の電流を引き込む第1のビット線と、
前記メモリアレイ内のW-セルに結合され、読み出し動作中に第2の電流を引き込む第2のビット線であって、前記W+セルに記憶された値と前記W-セルに記憶された値との間の差が重み値Wである、第2のビット線と、
コモンモードバイアス電圧を生成するバイアス回路と、
前記コモンモードバイアス電圧に応答して、前記第1のビット線にコモンモードバイアス電流を適用して、第1の出力を生成する第1の可変電流源と、
前記コモンモードバイアス電圧に応答して、前記第2ビット線に前記コモンモードバイアス電流を適用して、第2の出力を生成する第2可変電流源と、を備え、
前記第1の出力は、前記コモンモードバイアス電流から前記第1の電流を減算したものに等しく、前記第2の出力は、前記コモンモードバイアス電流から前記第2の電流を減算したものに等しい、出力電流ニューロン回路。
【請求項2】
前記第1の可変電流源は、第1のPMOSトランジスタを備える、請求項1に記載の出力電流ニューロン回路。
【請求項3】
前記第2の可変電流源は、第2のPMOSトランジスタを備える、請求項2に記載の出力電流ニューロン回路。
【請求項4】
出力電流ニューロン回路であって、
電流源と、
前記電流源に制御電圧を適用するためのバイアス回路と、
第1の端部及び第2の端部を含み、前記第1の端部が前記電流源に結合された第1の可変抵抗器と、
第3の端部及び第4の端部を含み、前記第3の端部が前記電流源に結合され、前記電流源が、コモンモード電圧を生成するように前記第1の可変抵抗器及び前記第2の可変抵抗器にバイアス電流を提供する、第2の可変抵抗器と、
読み出し動作中にW+セルに結合された第1のビット線と、
前記読み出し動作中にW-セルに結合された第2のビット線であって、前記W+セルに記憶された値と前記W-セルに記憶された値との間の差が重み値Wである、第2のビット線と、
前記第1の可変抵抗器の前記第2の端部及び前記第1のビット線に結合されて、第1の出力電流を提供する第1の出力と、
前記第2の可変抵抗器の前記第4の端部及び前記第2のビット線に結合されて、第2の出力電流を提供する第2の出力であって、前記第1の出力及び前記第2の出力が、コモンモード差動電流信号を形成する、第2の出力と、を備える、出力電流ニューロン回路。
【請求項5】
前記第1の可変抵抗器がNMOSトランジスタを備え、前記NMOSトランジスタのゲートに適用される電圧が前記NMOSトランジスタの抵抗
値を決定する、請求項4に記載の回路。
【請求項6】
前記第2の可変抵抗器がNMOSトランジスタを含み、前記NMOSトランジスタのゲートに適用される電圧が前記NMOSトランジスタの前記抵抗
値を決定する、請求項5に記載の回路。
【請求項7】
出力電流ニューロン回路であって、
メモリアレイから第1の電流を受け取るための第1の出力ノードと、
メモリアレイから第2の電流を受け取るための第2の出力ノードと、
バイアス電流を生成するバイアス回路と、
前記バイアス電流から減算された前記第1の電流に等しい第1の出力電流を生成する第1のデバイスと、
前記バイアス電流から減算された前記第2の電流に等しい第2の出力電流を生成する第2のデバイスと、を備える、出力電流ニューロン回路。
【請求項8】
前記第1の出力電流が、1つ以上のW+セルに結合されたビット線の読み出し動作から生成される、請求項7に記載の出力電流ニューロン回路。
【請求項9】
前記第1の出力電流が、1つ以上のW-セルに結合されたビット線の読み出し動作から生成される、請求項8に記載の出力電流ニューロン回路。
【請求項10】
出力電流ニューロン回路であって、
メモリアレイから第1の電流を受け取るための第1の出力ノードと、
メモリアレイから第2の電流を受け取るための第2の出力ノードと、
バイアスノードにおいてバイアス電圧を生成するバイアス回路と、
前記バイアスノードと前記第1の出力ノードとの間に結合された第1の可変抵抗器と、
前記バイアスノードと前記第2の出力ノードとの間に結合された第2の可変抵抗器と、を備える、出力電流ニューロン回路。
【請求項11】
電流-電圧変換器であって、
W+セルの読み出し動作中に生成された第1の電流を受け取るための第1のビット線と、
W-セルの読み出し動作中に生成された第2の電流を受け取るための第2のビット線であって、前記W+セルに記憶された値と前記W-セルに記憶された値との間の差が重み値Wである、第2のビット線と、
前記第1の電流及び前記第2の電流を受け取り、第1の電圧出力及び第2の電圧出力を含む差動出力電圧を生成するための差動増幅器と、を備える、電流-電圧変換器。
【請求項12】
出力ブロックであって、
各々がビット線差動対を受け取り、差動電圧出力を生成する複数の電流-電圧変換器と、
複数の差動入力アナログ-デジタル変換器であって、各々が、前記複数の電流-電圧変換器のうちの1つから差動電圧出力を受け取り、1組のデジタル出力ビットを生成する、複数の差動入力アナログ-デジタル変換器と、を備える、出力ブロック。
【請求項13】
出力ブロックであって、
各々がビット線差動対を受け取り、電圧出力を生成する複数の電流-電圧変換器と、
複数の差動入力アナログ-デジタル変換器であって、各々が、前記複数の電流-電圧変換器のうちの1つから電圧出力を受け取り、1組のデジタル出力ビットを生成する、複数の差動入力アナログ-デジタル変換器と、を備える、出力ブロック。
【請求項14】
出力ブロックであって、
ビット線差動対を受信するための電流-電圧変換器であって、
第1の入力及び第2の入力並びに第1の出力及び第2の出力を備え、前記第1の入力及び前記第2の入力が、前記ビット線差動対に結合された差動演算増幅器と、
前記第1の入力と前記第1の出力との間に結合された第1の可変抵抗器と、
前記第2の入力と前記第2の出力との間に結合された第2の可変抵抗器と、
前記第1の入力と前記第2の入力との間に結合されたコモンモード入力回路と、を備える電流-電圧変換器と、
前記第1の出力及び前記第2の出力を受け取り、1組のデジタル出力ビットを生成するための差動入力アナログ-デジタル変換器と、を備える、出力ブロック。
【請求項15】
前記コモンモード入力回路が、前記第1の入力に結合された第1の可変電流源と、前記第2の入力に結合された第2の可変電流源と、を備え、前記第1の可変電流源及び前記第2の可変電流源が等しい電流を生成する、請求項14に記載の出力ブロック。
【請求項16】
出力ブロックであって、前記出力ブロックは、
出力電流ニューロン回路であって、
メモリアレイ内のW+セルに結合され、読み出し動作中に第1の電流を引き込む第1のビット線と、
前記メモリアレイ内のW-セルに結合され、第2の電流を引き込む第2のビット線と、前記第1のビット線に結合された第1のバイアス電流と、
前記第2のビット線に結合された第2のバイアス電流と、を含む、出力電流ニューロン回路を備え、前記第1のバイアス電流及び前記第2のバイアス電流が
、同じ値を有する、出力ブロック。
【請求項17】
出力ブロックであって、前記出力ブロックは、
出力電流ニューロン回路であって、
メモリアレイ内のW+セルに結合され、読み出し動作中に第1の電流を引き込む第1のビット線と、
前記メモリアレイ内のW-セルに結合され、前記読み出し動作中に第2の電流を引き込む第2のビット線と、を含む出力電流ニューロン回路と、
前記第1のビット線に結合された第1のバイアス電流と、
前記第1の電流及び前記第2の電流の差に比例する第1の出力電流と、を備える、出力ブロック。
【請求項18】
前記第1の出力電流は、前記第1の電流及び前記第2の電流の前記差の半分に等しい、請求項17に記載の出力ブロック。
【請求項19】
前記第1の出力電流と相補的である第2の出力電流を更に含む、請求項17に記載の出力ブロック。
【請求項20】
出力ブロックのためのオフセット較正方法であって、
前記出力ブロックのサブ回路ブロックの入力ノードに公称バイアスを適用するステップと、
前記出力ブロックの出力が目標値の閾値内になるまで、前記出力ブロック内の前記サブ回路ブロックに増加又は減少したオフセットトリム設定を適用するステップと、を含む、方法。
【請求項21】
前記サブ回路ブロックは、電流-電圧回路である、請求項20に記載の方法。
【請求項22】
前記サブ回路ブロックは、アナログ-デジタル変換器回路のものである、請求項20に記載の方法。
【請求項23】
前記出力ブロックによって、ニューロンからの出力を提供するステップを更に含む、請求項20に記載の方法。
【請求項24】
前記ニューロンは、ニューラルネットワーク内のニューラルメモリアレイの一部分である、請求項23に記載の方法。
【請求項25】
出力ブロックのためのオフセット較正方法であって、
増加したオフセットトリム設定に応答して、前記出力ブロックの新しいトリム出力を測定するステップと、
前記新しいトリム出力と公称バイアス出力とを比較するステップであって、
前記新しいトリム出力が前記公称バイアス出力に等しいときに
、前記測定するステップと、及び前記比較するステップとを繰り返すステップと、
前記新しいトリム出力が前記公称バイアス出力と異なるときに、前記新しいトリム出力をトリム値として記憶するステップと、を有する比較するステップと、
動作中に前記出力ブロック内の前記サブ回路ブロックに前記トリム値を適用するステップと、を含む、方法。
【請求項26】
前記出力ブロックによって、ニューロンからの出力を提供するステップを更に含む、請求項25に記載の方法。
【請求項27】
前記ニューロンは、ニューラルネットワーク内のニューラルメモリアレイの一部分である、請求項26に記載の方法。
【請求項28】
出力ブロックのためのオフセット較正方法であって、
前記出力ブロックのサブ回路ブロックの入力ノードに公称バイアスを適用するステップと、
前記公称バイアスに応答して、前記出力ブロックの公称バイアス出力を測定するステップと、
減少したオフセットトリム設定を前記入力ノードに適用するステップと、
増加したオフセットトリム設定に応答して、前記出力ブロックの新しいトリム出力を測定するステップと、
前記新しいトリム出力と前記公称バイアス出力とを比較するステップであって、
前記新しいトリム出力が前記公称バイアス出力に等しいときに、適用するステップと、前記測定するステップと、及び前記比較するステップとを繰り返すステップと、
前記新しいトリム出力が前記公称バイアス出力と異なるときに、前記新しいトリム出力をトリム値として記憶するステップと、を有する比較するステップと、
動作中に、前記出力ブロックの前記サブ回路ブロックに前記トリム値を適用するステップと、を含む、方法。
【請求項29】
前記出力ブロックによって、ニューロンからの出力を提供するステップを更に含む、請求項28に記載の方法。
【請求項30】
前記ニューロンは、ニューラルネットワーク内のニューラルメモリアレイの一部分である、請求項29に記載の方法。
【請求項31】
出力ブロックのためのオフセット較正方法であって、
入力値を前記出力ブロックのサブ回路ブロックの入力ノードに適用するステップと、
前記入力値に応答して、出力値を測定するステップと、
前記出力値を目標オフセット値と比較するステップであって、
前記出力値が前記目標オフセット値を超えるときに、次の入力値を用いて前記適用するステップと、前記測定するステップと、及び前記比較するステップとを繰り返すステップと、
前記出力値が前記目標オフセット値以下であるときに、前記入力値をトリム値として記憶するステップと、を有する比較するステップと、
前記出力ブロックの動作中に、前記出力ブロックの前記サブ回路ブロックに前記トリム値を適用するステップと、を含む、方法。
【請求項32】
前記出力ブロックによって、ニューロンからの出力を提供するステップを更に含む、請求項31に記載の方法。
【請求項33】
前記ニューロンは、ニューラルネットワーク内のニューラルメモリアレイの一部分である、請求項32に記載の方法。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0050
【補正方法】変更
【補正の内容】
【0050】
図11は、
図2に示されるメモリセル210に特に適しており、かつ入力層と次の層との間でシナプス及びニューロンの一部として利用される、ニューロンVMMアレイ1100を示す。VMMアレイ1100は、不揮発性メモリセルのメモリアレイ1103と、第1の不揮発性基準メモリセルの基準アレイ1101と、第2の不揮発性基準メモリセルの基準アレイ1102と、を含む。基準アレイ1101及び1102は、VMMアレイ1100の行方向に延びる。VMMアレイは、VMMアレイ1100においてワード線が垂直方向に延びることを除いて、VMM1000と同様である。ここで、入力はワード線(WLA0、WLB0、WLA1、WLB
1、WLA2、WLB2、WLA3、WLB3)に提供され、出力は、読み出し動作中にソース線(SL0、SL1)に現れる。各ソース線の電流は、その特定のソース線に接続されたメモリセルからの全ての電流の合計関数を実行する。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0056
【補正方法】変更
【補正の内容】
【0056】
図13は、
図3に示されるメモリセル310に特に適しており、かつ入力層と次の層との間でシナプス及びニューロンの一部として利用される、ニューロンVMMアレイ1300を示す。VMMアレイ1300は、不揮発性メモリセルのメモリアレイ1303と、
第1の不揮発性基準メモリセルの基準アレイ130
1と、第2の不揮発性基準メモリセルの基準アレイ1302と、を備える。EG線EGR0、EG0、EG1、及びEGR1は垂直に延び、CG線CG0、CG1、CG2、及びCG3並びにSL線WL0、WL1、WL2、及びWL3は水平に延びる。VMMアレイ1300は、VMMアレイ1300が双方向チューニングを実装することを除いてVMMアレイ1400と同様であり、各個々のセルは、個別のEG線の使用により、浮遊ゲートの所望の電荷量に達するために、必要に応じて完全に消去され、部分的にプログラムされ、部分的に消去され得る。示されるように、基準アレイ1301及び1302は、端子BLR0、BLR1、BLR2及びBLR3における入力電流を制御ゲート電圧CG0、CG1、CG2及びCG3に変換し(マルチプレクサ1314を介したダイオード接続された基準セルの作用を通じて)、これらの電圧は行方向でメモリセルに適用される。電流出力(ニューロン)は、ビット線BL0~BLN中にあり、各ビット線は、その特定のビット線に接続された不揮発性メモリセルからの全ての電流を合計する。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0140
【補正方法】変更
【補正の内容】
【0140】
次いで、差動電圧ITVO+及びITVO-はマルチプレクサ3502によって受け取られ、このマルチプレクサは、電流-電圧変換器3501-1~3501-iからの出力をサンプルホールド(sample and hold、S/H)回路3503-1~3503-kに時分割多重化し、ここで、kはiと同じであるか又は異なり得る。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0150
【補正方法】変更
【補正の内容】
【0150】
図35Eは、出力ブロック3580を示す。出力ブロック3580は、電流-電圧変換器(ITV)3581-1~3581-i(iは、出力ブロック3580が受け取るビット線W+及びW-の対の数である)と、差動入力アナログ-デジタル変換器(ADC)3586-1~3586-iと、を備える。ITVブロック3581-1~3581-iは、それぞれ、コモンモード入力回路3582-1~3582-iと、それぞれ、差動演算増幅器3583-1~3583-
iと、を備え、フィードバックは、それぞれ、可変抵抗器3584-1~3584-i及び3585-1~3585-iによって提供される。
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0155
【補正方法】変更
【補正の内容】
【0155】
各サンプルホールド回路3604は、差動電圧ITVOMX+及びITVOMX-を受け取り、受け取った差動電圧をサンプリングし、それらを差動電圧出力OSH+及びOSH-として保持する。
【手続補正7】
【補正対象書類名】明細書
【補正対象項目名】0157
【補正方法】変更
【補正の内容】
【0157】
図37Aは、
図35Aの出力ブロック3500又は
図36の出力ブロック3600に任意選択で含まれ得る出力電流ニューロン回路3700を示す。
【手続補正8】
【補正対象書類名】明細書
【補正対象項目名】0161
【補正方法】変更
【補正の内容】
【0161】
図38Aは、
図35Aの出力ブロック3500、
図35Bの出力ブロック3550、又は
図36の出力ブロック3600に任意選択で含まれ得る出力電流ニューロン回路3800を示す。
【手続補正9】
【補正対象書類名】明細書
【補正対象項目名】0164
【補正方法】変更
【補正の内容】
【0164】
図38Bは、
図35Aの出力ブロック3500、
図35Bの出力ブロック3550、ブロック、又は
図36の出力ブロック3600に任意選択で含まれ得る出力電流ニューロン回路3820を示す。この回路は、オペアンプ3804の出力が2つの可変抵抗器3801及び3802の2つの端子に直接駆動されることを除いて、
図38Aの回路と同様である。
【手続補正10】
【補正対象書類名】明細書
【補正対象項目名】0184
【補正方法】変更
【補正の内容】
【0184】
測定された出力値>目標オフセット値である場合、オフセットトリム値のシーケンスにおける次のオフセットトリム値が適用され(ステップ4303)、ステップ4302が繰り返される。オフセットトリム値は、(ITV又はADCなど)出力ブロックのサブ回路ブロックのうちの1つに適用される。
【手続補正11】
【補正対象書類名】図面
【補正方法】変更
【補正の内容】
【国際調査報告】