(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-20
(45)【発行日】2023-04-28
(54)【発明の名称】ディープラーニング人工ニューラルネットワークにおけるアナログニューロメモリ内の基準トランジスタ及びメモリセルに対する補償
(51)【国際特許分類】
G11C 16/08 20060101AFI20230421BHJP
G11C 7/04 20060101ALI20230421BHJP
G11C 11/56 20060101ALI20230421BHJP
G11C 11/54 20060101ALN20230421BHJP
【FI】
G11C16/08 120
G11C7/04
G11C11/56 220
G11C11/54
(21)【出願番号】P 2021500631
(86)(22)【出願日】2019-06-07
(86)【国際出願番号】 US2019036040
(87)【国際公開番号】W WO2020013933
(87)【国際公開日】2020-01-16
【審査請求日】2022-02-07
(32)【優先日】2018-10-03
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2018-07-11
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】500147506
【氏名又は名称】シリコン ストーリッジ テクノロージー インコーポレイテッド
【氏名又は名称原語表記】SILICON STORAGE TECHNOLOGY, INC.
(74)【代理人】
【識別番号】110000626
【氏名又は名称】弁理士法人英知国際特許商標事務所
(72)【発明者】
【氏名】バン トラン、ヒュー
(72)【発明者】
【氏名】ティワリ、ビピン
(72)【発明者】
【氏名】ドー、ナン
【審査官】後藤 彰
(56)【参考文献】
【文献】特開2007-059024(JP,A)
【文献】国際公開第2004/077439(WO,A2)
【文献】国際公開第2017/200883(WO,A1)
【文献】特表2019-517138(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G11C 16/08
G11C 7/04
G11C 11/56
G11C 11/54
(57)【特許請求の範囲】
【請求項1】
フラッシュメモリシステム内の基準トランジスタを調整する方法であって、
入力電圧を受け取るステップと、
出力電圧を生成するために、前記入力電圧に係数を乗算するステップと、
前記出力電圧を前記基準トランジスタのゲートに印加するステップと、
選択されたメモリセルに格納された値を判定するために、前記基準トランジスタをセンス動作で使用するステップと、を含む、方法。
【請求項2】
前記入力電圧を前記メモリアレイ内のメモリセルのゲートに結合するステップを更に含む、請求項1に記載の方法。
【請求項3】
前記基準トランジスタは、サブ閾値領域で動作する、請求項1に記載の方法。
【請求項4】
前記基準トランジスタは、線形領域で動作する、請求項1に記載の方法。
【請求項5】
前記基準トランジスタは、サブ閾値領域で動作する、請求項2に記載の方法。
【請求項6】
前記基準トランジスタは、線形領域で動作する、請求項2に記載の方法。
【請求項7】
前記入力電圧は、前記基準トランジスタのドレインにかけられる、請求項1に記載の方法。
【請求項8】
入力電流は、前記入力電圧を生成するために、前記基準トランジスタのドレインに流される、請求項7に記載の方法。
【請求項9】
前記基準トランジスタの電流電圧特性曲線の傾き、及び前記選択されたメモリセルの電流電圧特性曲線の傾きは、前記センス動作中、ほぼ等しい、請求項1に記載の方法。
【請求項10】
前記入力電圧は、正規化回路に結合される、請求項1に記載の方法。
【請求項11】
前記正規化回路の出力は、前記選択されたメモリセルに接続される、請求項10に記載の方法。
【請求項12】
前記正規化回路は、電流ミラー回路である、請求項10に記載の方法。
【請求項13】
前記メモリセルからの前記値は、ビットライン電流又はソースライン電流である、請求項10に記載の方法。
【請求項14】
前記メモリセルは、不揮発性である、請求項1に記載の方法。
【請求項15】
前記乗算ステップは、前記基準トランジスタの前記ゲートに結合されたドライバ回路によって実行される、請求項1に記載の方法。
【請求項16】
前記乗算ステップは、前記基準トランジスタの前記ゲートに結合された一対の入力コンデンサによって実行される、請求項1に記載の方法。
【請求項17】
前記乗算ステップは、前記基準トランジスタの前記ゲートに結合された一対の演算増幅器によって実行される、請求項1に記載の方法。
【請求項18】
フラッシュメモリシステム内の基準トランジスタを調整する方法であって、
入力電圧を受け取るステップと、
出力電圧を生成するために、前記入力電圧に係数を乗算するステップと、
前記出力電圧をメモリセルのゲートに印加するステップと、
前記メモリセルのうちの1つに格納された値を判定するために、前記基準トランジスタをセンス動作で使用するステップと、を含む、方法。
【請求項19】
前記入力電圧を前記基準トランジスタのゲートに印加するステップを更に含む、請求項18に記載の方法。
【請求項20】
前記基準トランジスタは、サブ閾値領域で動作する、請求項18に記載の方法。
【請求項21】
前記基準トランジスタは、線形領域で動作する、請求項18に記載の方法。
【請求項22】
前記メモリセルは、サブ閾値領域で動作する、請求項18に記載の方法。
【請求項23】
前記メモリセルは、線形領域で動作する、請求項18に記載の方法。
【請求項24】
前記入力電圧は、前記基準トランジスタのドレインにかけられる、請求項18に記載の方法。
【請求項25】
入力電流は、前記入力電圧を生成するために、前記基準トランジスタのドレインに流される、請求項24に記載の方法。
【請求項26】
前記メモリセルのうちの1つからの前記値は、ビットライン電流又はソースライン電流である、請求項18に記載の方法。
【請求項27】
前記メモリセルは、不揮発性である、請求項18に記載の方法。
【請求項28】
フラッシュメモリシステム内の基準メモリセルの特性曲線を調整する方法であって、
入力電圧を受け取るステップと、
出力電圧を生成するために、前記入力電圧に係数を乗算するステップと、
前記出力電圧を前記基準メモリセルのゲートに印加するステップと、
選択されたメモリセルに格納された値を判定するために、前記基準メモリセルをセンス動作で使用するステップと、を含む、方法。
【請求項29】
前記基準メモリセルの電流電圧特性曲線の傾き、及び前記選択されたメモリセルの電流電圧特性曲線の傾きは、前記センス動作中、ほぼ等しい、請求項28に記載の方法。
【請求項30】
前記基準トランジスタは、サブ閾値領域で動作する、請求項28に記載の方法。
【請求項31】
前記基準トランジスタは、線形領域で動作する、請求項28に記載の方法。
【請求項32】
前記基準セルは、サブ閾値領域で動作する、請求項28に記載の方法。
【請求項33】
前記基準セルは、線形領域で動作する、請求項28に記載の方法。
【請求項34】
前記入力電圧は、前記基準トランジスタのドレインにかけられる、請求項28に記載の方法。
【請求項35】
前記メモリセルは、不揮発性である、請求項28に記載の方法。
【請求項36】
前記乗算ステップは、前記基準メモリセルの前記ゲートに結合されたドライバ回路によって実行される、請求項28に記載の方法。
【請求項37】
前記乗算ステップは、前記基準メモリセルの前記ゲートに結合された一対の入力コンデンサによって実行される、請求項28に記載の方法。
【請求項38】
前記乗算ステップは、前記基準メモリセルの前記ゲートに結合された一対の演算増幅器によって実行される、請求項28に記載の方法。
【請求項39】
フラッシュメモリシステム内の選択されたメモリセルの電流電圧特性曲線の傾きを調整する方法であって、
入力電圧を受け取るステップと、
出力電圧を生成するために、前記入力電圧に係数を乗算するステップと、
前記出力電圧を前記選択されたメモリセルのゲートに印加するステップと、
選択されたメモリセルに格納された値を判定するために、前記選択されたメモリセル及び基準デバイスを使用してセンス動作を実行するステップと、を含み、
前記基準デバイスの電流電圧特性曲線の傾き、及び前記選択されたメモリセルの前記電流電圧特性曲線の傾きは、前記センス動作中ほぼ等しい、方法。
【請求項40】
前記基準デバイスは、トランジスタである、請求項39に記載の方法。
【請求項41】
前記基準デバイスは、メモリセルである、請求項39に記載の方法。
【請求項42】
前記乗算ステップは、前記選択されたメモリセルの前記ゲートに結合されたドライバ回路によって実行される、請求項39に記載の方法。
【請求項43】
前記乗算ステップは、前記選択されたメモリセルの前記ゲートに結合されたドライバ回路によって実行される、請求項40に記載の方法。
【請求項44】
前記乗算ステップは、前記選択されたメモリセルの前記ゲートに結合されたドライバ回路によって実行される、請求項41に記載の方法。
【請求項45】
基準トランジスタ及び選択されたメモリセルの電流電圧特性曲線の傾きにおける差に対する補償を組み込んだフラッシュメモリシステムであって、
基準トランジスタと、
選択されたメモリセルと、
補償回路であって、前記基準トランジスタに結合されて、前記基準トランジスタの前記電流電圧特性曲線の傾き、及び前記選択されたメモリセルの前記電流電圧特性曲線の傾きを、センス動作中、ほぼ等しくさせて、前記選択されたメモリセルに格納された値を判定する、補償回路と、を備える、システム。
【請求項46】
前記補償回路は、前記基準トランジスタのゲートに結合されたドライバ回路を備える、請求項45に記載のシステム。
【請求項47】
前記補償回路は、前記基準トランジスタのゲートに結合された一対の入力コンデンサを備える、請求項45に記載のシステム。
【請求項48】
前記補償回路は、前記基準トランジスタのゲートに結合された一対の演算増幅器を備える、請求項45に記載のシステム。
【請求項49】
前記フラッシュメモリシステムは、長・短期メモリシステム内のベクトルマトリクス乗算アレイにおいて使用される、請求項45に記載のシステム。
【請求項50】
前記フラッシュメモリシステムは、ゲート化された反復単位システム内のベクトルマトリクス乗算アレイにおいて使用される、請求項45に記載のシステム。
【請求項51】
基準セル及び選択されたメモリセルの電流電圧特性曲線の傾きにおける差に対する補償を組み込んだフラッシュメモリシステムであって、
基準セルと
選択されたメモリセルと、
補償回路であって、前記基準セルに結合されて、前記基準セルの電流電圧特性曲線の傾き、及び前記選択されたメモリセルの電流電圧特性曲線の傾きを、センス動作中、ほぼ等しくさせて、前記選択されたメモリセルに格納された値を判定する、補償回路と、を備える、システム。
【請求項52】
前記補償回路は、前記基準セルのゲートに結合されたドライバ回路を備える、請求項51に記載のシステム。
【請求項53】
前記補償回路は、前記基準セルのゲートに結合された一対の入力コンデンサを備える、請求項51に記載のシステム。
【請求項54】
前記補償回路は、前記基準セルのゲートに結合された一対の演算増幅器を備える、請求項51に記載のシステム。
【請求項55】
前記フラッシュメモリシステムは、長・短期メモリシステム内のベクトルマトリクス乗算アレイにおいて使用される、請求項51に記載のシステム。
【請求項56】
前記フラッシュメモリシステムは、ゲート化された反復単位システム内のベクトルマトリクス乗算アレイにおいて使用される、請求項51に記載のシステム。
【請求項57】
基準デバイス及び選択されたメモリセルの電流電圧特性曲線の傾きにおける差に対する補償を有するフラッシュメモリシステムであって、
基準デバイスと、
選択されたメモリセルと、
補償回路であって、前記選択されたメモリセルに結合されて、前記基準デバイスの電流電圧特性曲線の傾き、及び前記選択されたメモリセルの電流電圧特性曲線の傾きを、センス動作中、ほぼ等しくさせて、前記選択されたメモリセルに格納された値を判定する、補償回路と、を備える、システム。
【請求項58】
前記基準デバイスは、トランジスタである、請求項57に記載のシステム。
【請求項59】
前記基準デバイスは、メモリセルである、請求項57に記載のシステム。
【請求項60】
前記補償回路は、前記選択されたメモリセルのゲートに結合されたドライバ回路を備える、請求項57に記載のシステム。
【請求項61】
前記補償回路は、前記選択されたメモリセルのゲートに結合されたドライバ回路を備える、請求項58に記載のシステム。
【請求項62】
前記補償回路は、前記選択されたメモリセルのゲートに結合されたドライバ回路を備える、請求項59に記載のシステム。
【請求項63】
前記フラッシュメモリシステムは、長・短期メモリシステム内のベクトルマトリクス乗算アレイにおいて使用される、請求項57に記載のシステム。
【請求項64】
前記フラッシュメモリシステムは、ゲート化された反復単位システム内のベクトルマトリクス乗算アレイにおいて使用される、請求項57に記載のシステム。
【請求項65】
基準デバイス及び選択されたメモリセルの電流電圧特性曲線の傾きにおける差に対する補償を有するフラッシュメモリシステムであって、
補償回路と、
前記補償回路に提供される入力データと、
基準ルックアップテーブルと、
選択されたメモリセルと、を備え、
入力電圧は
、前記入力データ及び前記基準ルックアップテーブルに基づいて
前記補償回路により生成され
、前記選択されたメモリセルのゲートに適用される、システム。
【請求項66】
前記ルックアップテーブルは、基準トランジスタの異なる動作温度に基づいて、電流電圧特性曲線から導出されたデータを含む、請求項65に記載のシステム。
【請求項67】
前記メモリセルは、不揮発性である、請求項65に記載のシステム。
【請求項68】
前記フラッシュメモリシステムは、長・短期メモリシステム内のベクトルマトリクス乗算アレイにおいて使用される、請求項65に記載のシステム。
【請求項69】
前記フラッシュメモリシステムは、ゲート化された反復単位システム内のベクトルマトリクス乗算アレイにおいて使用される、請求項65に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
(優先権の主張)
本出願は、2018年7月11日に出願された米国仮特許出願第62/696,718号、発明の名称「Compensation for Reference Transistors and Memory Cells in Analog Neuro Memory in Deep Learning Artificial Neural Network」及び2018年10月3日に出願された米国特許出願第16/150,606号、発明の名称「Compensation for Reference Transistors and Memory Cells in Analog Neuro Memory in Deep Learning Artificial Neural Network」の優先権を主張する。
【0002】
(発明の分野)
ディープラーニング人工ニューラルネットワークにおいて、アナログニューラルメモリ内の読み出し動作中の基準トランジスタ、基準メモリセル、及びフラッシュメモリセルの間の電流電圧特性曲線の傾きにおける差を補償するための、多数の実施形態が開示される。実施形態は、基準トランジスタのサブ閾値及び線形動作の両方の間の傾き差を補償することができる。
【背景技術】
【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の部分の上方に配置され、チャネル領域の第1の部分から絶縁された浮遊ゲートと、チャネル領域の第2の部分の上方に配置され、チャネル領域の第2の部分から絶縁された非浮遊ゲートと、を各々が含む複数のメモリセルを含む。複数のメモリセルの各々は、浮遊ゲートの多くの電子に対応する重み値を格納するように構成される。複数のメモリセルは、第1の複数の入力に、格納された重み値を乗算して第1の複数の出力を生成するように構成される。
【0007】
アナログニューロモーフィックメモリシステムに使用される各不揮発性メモリセルは、消去され、浮遊ゲートに非常に特異的かつ正確な量の電荷を保持するようにプログラムミングされなければならない。例えば、各浮動ゲートはN個の異なる値のうちの1つを保持しなければならず、ここで、Nは、各セルによって示され得る異なる重みの数である。Nの例としては、16、32、及び64が挙げられる。
【0008】
アナログニューロモーフィックメモリシステムの1つの固有の特徴は、システムが2つの異なるタイプの読み出し動作を支持しなければならないことである。通常の読み出し動作では、個々のメモリセルは、従来のメモリシステムのように読み出される。しかしながら、ニューラル読み出し動作では、メモリセルのアレイ全体が一度に読み出され、各ビット線は、そのビット線に接続されたメモリセルからの全ての電流の合計である電流を出力する。
【0009】
その結果、アナログニューロモーフィックメモリシステムは、メモリセルとトランジスタとの間の不整合に非常に敏感である。極端な精度が必要とされ、2つのデバイスが異なる電流電圧特性曲線を有する場合、システムは不正確であることになる。
【0010】
必要とされるものは、異なるメモリセル及びトランジスタの間の電流電圧特性曲線の差を補償するための、改善されたアナログニューロモーフィックメモリシステムである。
【発明の概要】
【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】
【0047】
【0048】
【0049】
【0050】
【図面の簡単な説明】
【0051】
【
図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のベクトル乗算器マトリックスで動作を実行するための動作電圧を示す。
【
図22】傾き補償に基づく、特性曲線の変化を示す。
【
図28】様々な傾き補償システムの電流電圧特性曲線を示す。
【
図29】様々な傾き補償システムの電流電圧特性曲線を示す。
【
図30】例示的な基準トランジスタ及びその電流電圧特性曲線を示す。
【
図31】傾き差を補償するために使用されるルックアップテーブルに格納されたデータを示す。
【
図32】先行技術の長・短期メモリシステムを示す。
【
図33】先行技術の長・短期メモリシステムにおける例示的なセルを示す。
【
図34】
図33の長・短期メモリシステムにおける例示的なセルの実装を示す。
【
図35】先行技術のゲート化された反復単位システムを示す。
【
図36】先行技術のゲート化された反復単位システムにおける例示的なセルを示す。
【
図37】
図36のゲート化された反復単位システムにおける例示的なセルの実装を示す。
【発明を実施するための形態】
【0052】
本発明の人工ニューラルネットワークは、CMOS技術及び不揮発性メモリアレイの組み合わせを利用する。
不揮発性メモリセル
【0053】
デジタル不揮発性メモリは、周知である。例えば、米国特許第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に結合される。
【0054】
メモリセル210は、ワード線端子22に高圧正電圧を印加することによって消去され(ここで電子は、浮遊ゲートから除去される)、それにより、ファウラーノルドハイムトンネリングによって浮遊ゲート20からワード線端子22まで中間絶縁体を通って浮遊ゲート20の電子をトンネリングさせる。
【0055】
メモリセル210は、ワード線端子22に正電圧、及びソース16に正電圧を印加することによってプログラムされる(ここで電子は、浮遊ゲートに加えられる)。電子流は、ソース16からドレイン14に向かって流れることになる。電子は、ワード線端子22と浮遊ゲート20との間の間隙に達すると、加速し発熱する。熱せられた電子のいくらかは、浮遊ゲート20からの静電引力に起因してゲート酸化物26を通って浮遊ゲート20に注入される。
【0056】
ドレイン14及びワード線端子22に正の読み出し電圧を印加する(ワード線端子下のチャネル領域をターンオンする)ことによって、メモリセル210が読み出される。浮遊ゲート20が正に帯電する(すなわち、電子を消去し、ドレイン16に正に結合する)場合、浮遊ゲート20下のチャネル領域の部分は、次に同様にオンになり、電流は、チャネル領域18を流れ、これは、消去された状態つまり「1」の状態として検知される。浮遊ゲート20が負に帯電する(すなわち、電子でプログラムされる)場合、次に浮遊ゲート20下のチャネル領域の部分は、ほとんど又は完全にオフになり、電流は、チャネル領域18を流れず(又はわずかに流れる)、プログラムされた状態又は「0」の状態として検出される。
【0057】
表1は、読み出し、消去、及びプログラム動作を実行するためのメモリセル210の端子に印加され得る典型的な電圧範囲を示す。
【表1】
【0058】
他の分割ゲートメモリセル構成が知られている。例えば、
図3は、ソース領域14と、ドレイン領域16と、チャネル領域18の第1の部分の上方にある浮遊ゲート20と、チャネル領域18の第2の部分の上方にある選択ゲート28(典型的には、ワード線に結合される)と、浮遊ゲート20の上方にある制御ゲート22と、及びソース領域14の上方にある消去ゲート30と、を備える4ゲートメモリセル310を示す。この構成は、米国特許第6,747,310号に記載され、この米国特許は、あらゆる目的のため参照により本明細書に組み込まれる。ここで、全てのゲートは、浮遊ゲート20を除いて、非浮遊ゲートであり、それらは電圧源に電気的に接続される又は接続可能であることを意味する。プログラミングは、浮遊ゲート20にそれ自体を注入するチャネル領域18からの熱せられた電子によって示される。消去は、浮遊ゲート20から消去ゲート30へトンネリングする電子によって示される。
【0059】
表2は、読み出し、消去、及びプログラム動作を実行するためのメモリセル310の端子に印加され得る典型的な電圧範囲を示す。
【表2】
【0060】
図4は、分割ゲート3ゲートメモリセル410を示す。メモリセル410は、メモリセル410が別個の制御ゲートを有しないことを除いて、
図3のメモリセル310と同一である。消去動作(消去ゲートを通しての消去)及び読み出し動作は、制御ゲートバイアスがないことを除いて、
図3のものと同様である。プログラミング動作もまた、制御ゲートバイアスなしで行われるため、ソース線のプログラム電圧は、制御ゲートバイアスの不足を補償するためにより高い。
【0061】
表3は、読み出し、消去、及びプログラム動作を実行するためのメモリセル410の端子に印加され得る典型的な電圧範囲を示す。
【表3】
【0062】
図5は、積層ゲートメモリセル510を示す。メモリセル510は、浮遊ゲート20がチャネル領域18全体の上方に延在し、制御ゲート22が絶縁層によって分離された浮遊ゲート20に延在することを除いて、
図2のメモリセル210と同様である。消去、プログラミング、及び読み出し動作は、メモリセル210について前述したものと同様の方法で動作する。
【0063】
表4は、読み出し、消去、及びプログラム動作を実行するためのメモリセル510の端子に印加され得る典型的な電圧範囲を示す。
【表4】
【0064】
上記の人工ニューラルネットワークにおける不揮発性メモリセルのタイプのうちの1つを含むメモリアレイを利用するために、2つの修正が行われる。第1に、以下に更に説明されるように、アレイ内の他のメモリセルのメモリ状態に悪影響を与えずに各メモリセルを個々にプログラム、消去、及び読み出しすることができるように線を構成する。第2に、メモリセルの連続(アナログ)プログラミングを提供する。
【0065】
具体的には、アレイ内の各メモリセルのメモリ状態(すなわち、浮遊ゲートの電荷)を、完全に消去された状態から完全にプログラムされた状態へ、独立して、かつ他のメモリセルの異常が最小で連続的に変更することができる。別の実施形態では、アレイ内の各メモリセルのメモリ状態(すなわち、浮遊ゲートの電荷)を、完全にプログラムされた状態から完全に消去された状態へ、及び逆もまた同様に、独立して、かつ他のメモリセルの異常が最小で連続的に変更することができる。このことは、セル格納がアナログであるか、又は多数の別個の値(16又は64の異なる値など)のうちの1つを最低限格納することができ、それは、メモリアレイ内の全てのセルの非常に正確、かつ個々の調整を可能にし、またメモリアレイを格納に対して理想的にし、ニューラルネットワークのシナプシスの重みに微調整を加えることを意味する。
不揮発性メモリセルアレイを使用するニューラルネットワーク
【0066】
図6は、不揮発性メモリアレイを利用するニューラルネットワークの非限定実施例を示す。この例は、顔認識アプリケーションのために不揮発性メモリアレイニューラルネットを使用するが、不揮発性メモリアレイベースのニューラルネットワークを使用して他の任意の適切なアプリケーションを実施することができる。
【0067】
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の異なる特徴マップを生成する。
【0068】
C1において、本例では、各々30×30ピクセルを有する16個の特徴マップが存在する。各ピクセルは、入力とカーネルとの乗算から抽出された新しい特徴ピクセルであり、したがって、各特徴マップは、2次元アレイであり、したがってこの例では、シナプスCB1は、2次元アレイの16層を構成する(本明細書で言及されるニューロン層及びアレイは、必ずしも物理的関係ではなく論理的な関係であり、すなわち、アレイは必ずしも物理的な2次元アレイに配向されないことに留意する)。16個の特徴マップの各々は、フィルタスキャンに適用される16個の異なるシナプス重みのセットの1つによって生成される。C1特徴マップは全て、境界同定など同じ画像特徴の異なる態様を対象とすることができる。例えば、第1のマップ(この第1のマップを生成するのに使用される全てのスキャンに共有される第1の重みセットを使用して生成される)は、円形エッジを識別することができ、第2のマップ(第1の重みセットと異なる第2の重みセットを使用して生成される)は、方形エッジ又は特定の特徴のアスペクト比などを識別することができる。
【0069】
各特徴マップ中の連続する、重なり合わない2×2領域からの値をプールする活性化関数P1(プーリング)は、C1からS1へ行く前に適用される。プーリング段階の目的は、平均して近隣の位置にすること(又はmax関数もまた使用され得る)、例えばエッジ位置の依存を低減すること、及び次の段階に行く前にデータサイズを低減することである。S1において、16個の15×15特徴マップ(すなわち、各々15×15ピクセルの16個の異なるアレイ)が存在する。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個のニューロンを含み、ここで最も高い出力ニューロンは、クラスを判定する。この出力は、例えば、元の画像の内容の同定又は分類を示すことができる。
【0070】
シナプスの各レベルは、不揮発性メモリセルのアレイ又はアレイの一部を使用して実行される。
図7は、不揮発性メモリセルを含み、入力層と次の層との間のシナプスとして利用されるベクトルマトリックス乗算(VMM)アレイのブロック図である。具体的には、VMM32は、不揮発性メモリセルのアレイ33、消去ゲート及びワード線ゲートデコーダ34、制御ゲートデコーダ35、ビット線デコーダ36、並びにソース線デコーダ37を含み、それらのデコーダはメモリアレイ33に対する入力をデコードする。この例におけるソース線デコーダ37はまた、メモリセルアレイの出力をデコードする。代替的に、ビット線デコーダ36が、メモリアレイの出力をデコードすることができる。メモリアレイは、2つの目的を果たす。第1に、VMMにより使用される重みを格納する。第2に、メモリアレイは、効果的に、入力に、メモリアレイに格納された重みを乗算し、それらを出力線(ソース線又はビット線)ごとに合計して出力を生成し、これは、次の層への入力又は最後の層への入力になる。乗算及び加算の関数を実行することによって、メモリアレイは、別個の乗算及び加算の論理回路の必要性をなくし、また、その場でのメモリ計算により電力効率も良い。
【0071】
メモリアレイの出力は、メモリセルアレイの出力を合計してその畳み込み用の単一の値を作成する、差動加算器(加算オペアンプ又は加算カレントミラーなど)38に供給される。差動加算器は、正の入力で正の重みと負の重みとの合計を実現するようなものである。合計された出力値は、次に出力を整流する活性化関数回路39に供給される。活性化関数には、シグモイド、tanh、又はReLU関数が含まれ得る。整流された出力値は、次の層(例えば上の説明ではC1)として特徴マップの要素になり、次いで、次のシナプスに適用されて次の特徴マップ層又は最後の層を生成する。したがって、この例では、メモリアレイは、複数のシナプスを構成し(ニューロンの前の層から、又は画像データベースなどの入力層から入力を受け取る)、加算オペアンプ38及び活性化関数回路39は、複数のニューロンを構成する。
【0072】
図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)アレイ
【0073】
図9は、
図3に示されるタイプのメモリセルに特に適したニューロンVMM900を示し、入力層と次の層との間でシナプス及びニューロンの一部として利用される。VMM900は、不揮発性メモリセルのメモリアレイ901、及び基準アレイ902(アレイの頂部で)を備える。代替的に、別の基準アレイが底部に位置することができる。VMM900では、制御ゲート線903などの制御ゲート線が垂直方向に延びており(したがって、行方向の基準アレイ902が入力制御ゲート線に直交する)、消去ゲート線904などの消去ゲート線が水平方向に延びる。ここで、入力は、制御ゲート線に提供され、出力は、ソース線に現れる。一実施形態では、偶数行のみが使用され、別の実施形態では、奇数行のみが使用される。ソース線の電流は、ソース線に接続されたメモリセルからの全ての電流の合計関数を実行する。
【0074】
ニューラルネットワークについて本明細書に記載されるように、フラッシュセルは、サブ閾値領域で動作するように構成されることが好ましい。
【0075】
本明細書に記載されたメモリセルは、弱反転にバイアスされる。
Ids=Io*e(Vg-Vth)/kVt=w*Io*e(Vg)/kVt
w=e(-Vth)/kVt
【0076】
入力電流を入力電圧に変換するためにメモリセルを使用するI-Vログ変換器について:
Vg=k*Vt*log[Ids/wp*Io]
【0077】
ベクトルマトリックス乗算器VMMとして使用されるメモリアレイについて、出力電流は以下である:
Iout=wa*Io*e(Vg)/kVt、すなわち
Iout=(wa/wp)*Iin=W*Iin
W=e(Vthp-Vtha)/kVt
【0078】
ワード線又は制御ゲートは、入力電圧のためのメモリセルの入力として使用することができる。
【0079】
代替的に、フラッシュメモリセルは、線形領域で動作するように構成することができる。
Ids=β*(Vgs-Vth)*Vds;β=u*Cox*W/L
Wα(Vgs-Vth)
【0080】
I-V線形変換器では、線形領域で動作するメモリセルを使用して、入力/出力電流を入力/出力電圧に線形に変換することができる。
【0081】
ESFベクトルマトリックス乗算器の他の実施形態は、参照により本明細書に組み込まれる米国特許出願第15/826,345号に記載されているとおりである。ソース線又はビット線は、ニューロン出力(電流和出力)として使用することができる。
【0082】
図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に供給する)を有効に乗算して、次に、全ての結果(メモリセル電流)を加算して出力を生成し、これは次の層への入力又は最終の層への入力となる。乗算及び加算関数を実行することによって、メモリアレイは、別個の乗算及び加算論理回路の必要性をなくし、また、電力効率も良い。ここで、電圧入力は、ワード線に提供され、出力は、読み出し(推論)動作中にビット線に現れる。ビット線の電流は、ビット線に接続されたメモリセルからの全ての電流の合計関数を実行する。
【0083】
図11は、VMM1000の動作電圧を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルのソース線、及び非選択セルのソース線に加えられる電圧を示す。行は、読み出し、消去、及びプログラムの動作を示す。
【0084】
図12は、
図2に示されるタイプのメモリセルに特に適したニューロンVMM1200を示し、入力層と次の層との間でシナプス及びニューロンの一部として利用される。VMM1200は、不揮発性メモリセルのメモリアレイ1203、基準アレイ1201、及び基準アレイ1202を備える。アレイVMM1200の行方向に延びる基準アレイ1201及び1202は、VMM1200においてワード線が垂直方向に延びることを除いて、VMM1000と同様である。ここで、入力は、ワード線に提供され、出力は、読み出し動作中にソース線に現れる。ソース線の電流は、ソース線に接続されたメモリセルからの全ての電流の合計関数を実行する。
【0085】
図13は、VMM1200の動作電圧を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルのソース線、及び非選択セルのソース線に加えられる電圧を示す。行は、読み出し、消去、及びプログラムの動作を示す。
【0086】
図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に供給する)を有効に乗算して、次に、全ての結果(セル電流)を加算して出力を生成し、これは次の層への入力又は最終の層への入力となる。乗算及び加算の関数を実行することによって、メモリアレイは、別個の乗算及び加算の論理回路の必要性をなくし、また、電力効率も良い。ここで、入力はワード線に提供され、出力は読み出し動作中にビット線に現れる。ビット線の電流は、ビット線に接続されたメモリセルからの全ての電流の合計関数を実行する。
【0087】
VMM1400は、メモリアレイ1403内のメモリセルの一方向調整を実施する。すなわち、各セルは消去され、次いで、浮遊ゲートの所望の電荷に達するまで部分的にプログラムされる。過度に多くの電荷が浮遊ゲートに加えられる場合(誤った値がセルに格納されるなど)、セルは消去されなければならず、一連の部分的なプログラミング動作をやり直さなければならい。示されるように、同じ消去ゲートを共有する2つの行は、一緒に消去される必要があり(ページ消去として知られる)、その後、各セルは、浮遊ゲートの所望の電荷に達するまで部分的にプログラムされる。
【0088】
図15は、VMM1400の動作電圧を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルの制御ゲート、選択セルと同じセクタ内の非選択セルの制御ゲート、選択セルとは異なるセクタ内の非選択セルの制御ゲート、選択セルの消去ゲート、非選択セルの消去ゲート、選択セルのソース線、及び非選択セルのソース線に加えられる電圧を示す。行は、読み出し、消去、及びプログラムの動作を示す。
【0089】
図16は、
図3に示されるタイプのメモリセルに特に適したニューロンVMM1600を示し、入力層と次の層との間でシナプス及びニューロンの一部として利用される。VMM1600は、不揮発性メモリセルのメモリアレイ1603、基準アレイ1601、及び基準アレイ1602を備える。EG線が垂直に延びる一方で、CG線及びSL線は水平に延びる。VMM1600は、VMM1600が双方向調整を実装することを除いてVMM1400と同様であり、各個々のセルは、浮動ゲートの所望の電荷量に達するために、完全に消去され、部分的にプログラムされ、必要に応じて部分的に消去され得る。示されるように、基準アレイ1601及び1602は、端子BLR0~3内の入力電流を制御ゲート電圧CG0~3に変換し(マルチプレクサを介したダイオード接続された基準セルの作用を通じて)、行方向でメモリセルに印加される。電流出力(ニューロン)は、ビット線に接続されたメモリセルからの全ての電流を合計するビット線にある。
【0090】
図17は、VMM1600の動作電圧を示す。表中の列は、選択セルのワード線、非選択セルのワード線、選択セルのビット線、非選択セルのビット線、選択セルの制御ゲート、選択セルと同じセクタ内の非選択セルの制御ゲート、選択セルとは異なるセクタ内の非選択セルの制御ゲート、選択セルの消去ゲート、非選択セルの消去ゲート、選択セルのソース線、及び非選択セルのソース線に加えられる電圧を示す。行は、読み出し、消去、及びプログラムの動作を示す。
【0091】
先行技術は、長・短期メモリ(long short-term memory、LSTM)として知られる概念を含む。LSTM単位は、多くの場合、ニューラルネットワークで使用される。LSTMは、ニューラルネットワークが任意の時間間隔にわたって情報を覚え、後続の動作においてその情報を使用することを可能にする。従来のLSTM単位は、セル、入力ゲート、出力ゲート、及びフォーゲットゲートを含む。3つのゲートは、セルに入り、かつセルから出る情報の流れを調節する。VMMは、LSTM単位において特に有用である。
【0092】
図32は、例示的なLSTM3200を示す。この実施例におけるLSTMは、セル3201、3202、3203、及び3204を含む。セル3201は、入力ベクトルx
0を受け取り、出力ベクトルh
0及びセル状態ベクトルc
0を生成する。セル3202は、入力ベクトルx
1、出力ベクトル(隠れた状態)h
0、及びセル状態c
0をセル3201から受け取り、出力ベクトルh
1及びセル状態ベクトルc
1を生成する。セル3203は、入力ベクトルx
2、出力ベクトル(隠れた状態)h
1、及びセル状態c
1をセル3202から受け取り、出力ベクトルh
2及びセル状態ベクトルc
2を生成する。セル3204は、入力ベクトルx
3、出力ベクトル(隠れた状態)h
2、及びセル状態c
2をセル3203から受け取り、出力ベクトルh3を生成する。更なるセルが使用され得、4つのセルを有するLSTMは、単なる一例である。
【0093】
図33は、
図32のセル3201、3202、3203、及び3204に使用することができる、LSTMセル3300の例示的な実装を示す。LSTMセル3300は、前のセルから入力ベクトルx(t)及びセル状態ベクトルc(t-1)を受け取り、セル状態(t)及び出力ベクトルh(t)を生成する。
【0094】
LSTMセル3300は、シグモイド関数デバイス3301、3302、及び3303を備え、各々が0~1の数を適用して、入力ベクトル内の各構成要素のどれだけが出力ベクトルに通ることが許容されるかを制御する。LSTMセル3300はまた、入力ベクトルに双曲線正接関数を適用するためのtanhデバイス3304及び3305と、2つのベクトルを共に乗算するための乗算器デバイス3306、3307、及び3308と、2つのベクトルを共に加算するための加算デバイス3309と、を備える。
【0095】
図34は、LSTMセル3300の実装例である、LSTMセル3400を示す。読者の便宜のために、
図33及びLSTMセル3300と同じ番号付けが、
図34及びLSTMセル3400で使用される。
図34で見られ得るように、シグモイド関数デバイス3301、3302、及び3303、並びにtanhデバイス3304、及び3305は、各々、複数のVMMアレイ3401を含む。このため、VMMアレイは、特定のニューラルネットワークシステムで使用されるLSTMセルにおいて特に重要であることが見られ得る。
【0096】
LSTMシステムは、典型的には、複数のVMMアレイを含み、それらの各々は、加算器、起動回路ブロック、及び高電圧生成ブロックなどの、VMMアレイの外側の特定の回路ブロックによって提供された機能を必要とすることが更に理解され得る。各VMMアレイのための別個の回路ブロックを提供することは、半導体デバイス内のかなりの量のスペースを必要とし、幾分非効率的であろう。したがって、以下に記載される実施形態は、VMMアレイ自体の外側に必要とされる回路を最小限に抑えることを試みる。
【0097】
同様に、アナログVMM実装は、GRU(gated recurrent unit、ゲート化された反復単位)システムに使用することができる。GRUは、反復ニューラルネットワーク内のゲーティング機構である。GRUは、LSTMと同様であり、1つの顕著な差は、GRUが出力ゲートを欠くことである。
【0098】
図35は、例示的なGRU3500を示す。この例におけるGRUは、セル3501、3502、3503、及び3504を含む。セル3501は、入力ベクトルx
0を受け取り、出力ベクトルh
0及びセル状態ベクトルc
0を生成する。セル3502は、入力ベクトルx
1、出力ベクトル(隠れた状態)h
0、及びセル状態c
0をセル3501から受け取り、出力ベクトルh
1及びセル状態ベクトルc
1を生成する。セル3503は、入力ベクトルx
2、出力ベクトル(隠れた状態)h
1、及びセル状態c
1をセル3502から受け取り、出力ベクトルh
2及びセル状態ベクトルc
2を生成する。セル3504は、入力ベクトルx
3、出力ベクトル(隠れた状態)h
2、及びセル状態c
2をセル3503から受け取り、出力ベクトルh3を生成する。更なるセルが使用され得、4つのセルを有するGRUは、単なる一例である。
【0099】
図36は、
図35のセル3501、3502、3503、及び3504に使用することができる、GRUセル3600の例示的な実装を示す。GRUセル3600は、前のセルから入力ベクトルx(t)及びセル状態ベクトルh(t-1)を受け取り、セル状態h(t)を生成する。GRUセル3600は、シグモイド関数デバイス3601及び3602を備え、その各々は、0~1の数をセル状態h(t-1)及び入力ベクトルx(t)からの構成要素に適用する。GRUセル3600はまた、入力ベクトルに双曲線正接関数を適用するためのtanhデバイス3603と、2つのベクトルを共に乗算するための乗算器デバイス3604、3605、及び3606と、2つのベクトルを共に加算するための加算デバイス3607と、1からの入力を減算して、出力を生成するための相補的デバイス3608と、を備える。
【0100】
図37は、GRUセル3600の実装例である、GRUセル3700を示す。読者の便宜のために、
図36及びGRUセル3600と同じ番号付けが、
図37及びGRUセル3700で使用される。
図37で見られ得るように、シグモイド関数デバイス3601及び3602、並びにtanhデバイス3603は、各々、複数のVMMアレイ3701を含む。このため、VMMアレイは、特定のニューラルネットワークシステムで使用されるGRUセルにおいて特に使用されることが見られ得る。
【0101】
GRUシステムは、典型的には、複数のVMMアレイを含み、それらの各々は、加算器、起動回路ブロック、及び高電圧生成ブロックなどの、VMMアレイの外側の特定の回路ブロックによって提供された機能を必要とすることが更に理解され得る。各VMMアレイのための別個の回路ブロックを提供することは、半導体デバイス内のかなりの量のスペースを必要とし、幾分非効率的であろう。したがって、以下に記載される実施形態は、VMMアレイ自体の外側に必要とされる回路を最小限に抑えることを試みる。
【0102】
図18Aは、
図9の基準アレイ902、
図10の基準アレイ1001/1002、
図12の基準アレイ1201/1202、
図14の基準アレイ1401/1402、
図16の基準アレイ1601/1602内の基準トランジスタに使用されるような例示的な基準トランジスタ1801を示す。基準トランジスタ1801がサブ閾値領域で動作しているとき、電圧Vgsが増加するにつれて、引き込み電流Idsの量は、対数線形(指数関数)方式で増加する。例示的な電流電圧特性曲線1802は、
図18Bに示される。ログ曲線1802は、特定の傾きを有することが見られ得る。
【0103】
基準トランジスタ1801が線形領域で動作しているとき、電圧Vgsが増加するにつれて、引き込み電流Idsの量は線形に増加する。例示的な電流電圧特性曲線1802は、
図18Cに示される。曲線1803は特定の傾きを有することが見られ得る。
【0104】
図18Dは、例示的なメモリセル1804を示す。メモリセル1804がサブ閾値領域で動作しているとき、電圧Vwl/Vcgが増加するにつれて、引き込み電流Idsの量は指数関数方式で増加する。例示的な電流電圧特性曲線1805は、
図18Eに示される。曲線1805は、特定の傾きを有することが見られ得る。
【0105】
図18Dは、例示的なメモリセル1804を示す。メモリセル1804が線形領域で動作しているとき、電圧Vwl/Vcgが増加するにつれて、引き込み電流Idsの量は線形方式で増加する。例示的な電流電圧特性曲線1806は、
図18Fに示される。曲線1804は、特定の傾きを有することが見られ得る。示されるように、基準トランジスタとメモリセルとの間のI-V曲線の傾きは異なっていてもよく、したがって、2つの間に整合するために、正規化(それらが類似の傾きを有するようにさせる)が必要とされる。
【0106】
図19は、
図18Aに示される構成と同じ構成を有する例示的な基準トランジスタ1900を示す。
図20は、別の構成(ビット線に結合されたワード線)を有する別の例示的な基準メモリセルを示し、
図21は、別の構成を有する別の例示的な基準メモリセル(ビット線に結合された浮遊ゲートFG(floating gate))を示す。これらのデバイスの各々は、異なる電流電圧特性曲線を有し得ることが理解され得る。
【0107】
本明細書に記載される実施形態は、基準トランジスタ、基準メモリセル、及び/又は選択されたメモリセルの電流電圧特性曲線の傾きにおける差を補償する。
【0108】
異なるサブ閾値電流電圧特性曲線を有する2つのデバイスを有するシステムでは、第1のデバイスを通るドレインソース電流は、
Ids1=Ids0*exp(Vgs1-Vt)/k1*Utである。
【0109】
第2のデバイスを通るドレインソース電流は、
Ids2=Ids0*exp(Vgs2-Vt)/k2*Utである。
【0110】
各例では、傾きは~1/kに比例することが見られ得る。
【0111】
以下の実施形態のうちのいくつかにおいて、傾き正規化は、Vgs1=k*Vgs2の第1のデバイスのゲートソース電圧を使用することによって実装される。
【0112】
これは、Ids1及びIdsが、傾き正規化後に同じ傾きを有することを意味する。
【0113】
これは、
図22に図式的に示され、Vgs1=k
*Vgs2の電圧が、デバイス1に印加され、このことで第1のデバイスの電流電圧特性曲線の傾きを第2のデバイスの電流電圧特性曲線の傾きに近似させる。
【0114】
ここで、傾き正規化を実行するための様々な実施形態について説明する。
【0115】
図23は、(
図9の基準アレイ902内の基準トランジスタ、
図10の基準アレイ1001/1002、
図12の基準アレイ1201/1202、
図14の基準アレイ1401/1402、
図16の基準アレイ1601/1602のために使用されるような)基準トランジスタ2282、(
図9のアレイ901、
図10のアレイ1003、
図12のアレイ1203、
図14のアレイ1403、
図16のアレイ1603の一部などの)選択されたメモリセル2284、ゲートドライバ2281、及び絶対正規化回路2403を備える、傾き正規化システム2280を示す。ゲートドライバ2281は、入力電圧Vgsを受け取り、その入力電圧にkを乗算して、基準トランジスタ2282のデータに印加される出力電圧Vgsintを生成する。絶対正規化回路2403は、トリミング可能な電流ミラー(基準トランジスタからの電流とメモリセルからの電流出力との間の比を調整するための電流ミラー回路)であり得、トリミングプロセスは、基準又はアレイトランジスタ若しくはI-V傾き不整合によって引き起こされる不一致を調整することができる。選択されたメモリセル2282は、メモリセルのアレイ内のメモリセルのうちの1つである。
【0116】
図24は、基準トランジスタ2401並びに入力調整可能なコンデンサ2402及び2403を備える、傾き正規化システム2400を示す。調整可能なコンデンサ2402は、入力電圧Vgsを受け取る。調整可能なコンデンサ2402及び2403の比は、基準トランジスタのゲートに印加される電圧Vgsintに影響を及ぼす。このため、傾きは、コンデンサ2402及び2403を調整することによって変更される。
【0117】
図25は、演算増幅器2501及び2502、抵抗器2503、2504、及び2505、並びに可変抵抗器2506を備える、傾き正規化システム2500を示す。傾き正規化システム2500は、入力電圧Vgs1を受け取り、可変抵抗器2506によって調整される出力電圧Vgs1’を出力する。
【0118】
図26は、基準トランジスタ2601、選択されたメモリセル2603、及びドライバ2602を備える傾き正規化システム2600を示す。ドライバ2602は、電圧Vgsを受け取り、それにkを乗算し、Vgs’の出力電圧をもたらす。このため、基準トランジスタ2601及び選択されたメモリセル2603は、異なる電圧を受け取ることになり、差は、傾きの差に相当する。
【0119】
図27は、例示的なメモリセル2701、2702、2703、及び2704などのメモリセルのアレイ2700を示す。メモリセルは、メモリセルの線形電流電圧基準曲線の傾きに対する補償を可能にする構成で接続される。
【0120】
ここで、特定の選択されたメモリセル(メモリセル2701、2702、2703、又は2704など)を通る電流は、
Ids=β*(Vgs-Vt)*Vdsである。
【0121】
このため、Vgs又はVdsのいずれかをkで乗算して、補償することができる。
【0122】
図28は、kの差値に基づく、例示的な電流電圧特性曲線2800(Ids v.Vds)を示す。
【0123】
図29は、kの差値に基づく、例示的な電流電圧特性曲線2800(Ids v.Vgs)を示す。
【0124】
図30は、基準トランジスタ3001の例示的な電流電圧特性曲線3002を示す。理想値kは、
図28又は
図29の曲線の傾きが、
図30の曲線の傾きに近似するように、判定され得ることを理解することができる。
【0125】
図31は、デバイスの動作温度が変化する際の、トランジスタ、基準メモリセル、又は選択されたメモリセルの例示的な電流電圧特性曲線3100を示す。この実施形態では、曲線3100のデータは、ルックアップテーブル3101に格納され、動作中、kは、数式を介するのではなく、ルックアップテーブル3101から判定される。ルックアップテーブル3101は、様々な動作温度における各入力電圧に対して異なる所望の出力電流を含むことができる。このデータは、製造又は試験プロセス中にルックアップテーブル3101に追加され得る。基準メモリセル及び選択されたメモリセルは、任意選択的に不揮発性フラッシュメモリセルである。
【0126】
本明細書で使用される場合、「の上方に(over)」及び「に(on)」という用語は両方とも、「に直接」(中間材料、要素、又は空間がそれらの間に何ら配設されない)、及び「の上に間接的に」(中間材料、要素、又は空間がそれらの間に配設される)を包括的に含むことに留意するべきである。同様に、「隣接した」という用語は、「直接隣接した」(中間材料、要素、又は空間がそれらの間に何ら配設されない)、及び「間接的に隣接した」(中間材料、要素、又は空間がそれらの間に配設される)を含み、「に取り付けられた」は、「に直接取り付けられた」(中間材料、要素、又は空間がそれらの間に何ら配設されない)、及び「に間接的に取り付けられた」(中間材料、要素、又は空間がそれらの間に配設される)を含み、「電気的に結合された」は、「に直接電気的に結合された」(要素を一緒に電気的に接続する中間材料又は要素がそれらの間にない)、及び「に間接的に電気的に結合された」(要素を一緒に電気的に接続する中間材料又は要素がそれらの間にある)を含む。例えば、要素を「基板の上方に」形成することは、その要素を基板に直接、中間材料/要素をそれらの間に何ら伴わずに、形成すること、及びにその要素を基板の上に間接的に、1つ以上の中間材料/要素をそれらの間に伴って、形成することを含み得る。