JP7152562B2 - マルチレベル超低電力推論エンジンアクセラレータ - Google Patents

マルチレベル超低電力推論エンジンアクセラレータ Download PDF

Info

Publication number
JP7152562B2
JP7152562B2 JP2021103405A JP2021103405A JP7152562B2 JP 7152562 B2 JP7152562 B2 JP 7152562B2 JP 2021103405 A JP2021103405 A JP 2021103405A JP 2021103405 A JP2021103405 A JP 2021103405A JP 7152562 B2 JP7152562 B2 JP 7152562B2
Authority
JP
Japan
Prior art keywords
memory cells
memory
array
layers
voltage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021103405A
Other languages
English (en)
Other versions
JP2022060145A (ja
Inventor
アルバート・トラン マイケル・ニコラス
マイケル・グロビス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SanDisk Technologies LLC
Original Assignee
SanDisk Technologies LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SanDisk Technologies LLC filed Critical SanDisk Technologies LLC
Publication of JP2022060145A publication Critical patent/JP2022060145A/ja
Application granted granted Critical
Publication of JP7152562B2 publication Critical patent/JP7152562B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
    • G11C17/14Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
    • G11C17/16Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM using electrically-fusible links
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5692Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency read-only digital stores using storage elements with more than two stable states
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/24Bit-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
    • G11C17/14Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
    • G11C17/18Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/16Storage of analogue signals in digital stores using an arrangement comprising analogue/digital [A/D] converters, digital memories and digital/analogue [D/A] converters 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/18Bit line organisation; Bit line lay-out
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/14Word line organisation; Word line lay-out

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Semiconductor Memories (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)
  • Logic Circuits (AREA)

Description

人工ニューラルネットワークは、人工知能及び機械学習アプリケーションにおける使用が増加している。人工ニューラルネットワークでは、1組の入力が、出力を生成するために1つ以上の中間層又は隠れ層を通じて伝播される。入力を出力に接続する層は、入力を出力にするための1組の数学的操作を決定し、それぞれの出力の確率を計算しながら層を移動することによって、訓練又は学習フェーズで生成される重みの組によって接続される。重みが確立されたら、それらを推論フェーズで使用して、1組の入力からの出力を決定することができる。かかるニューラルネットワークは、非常に正確な結果を提供し得るが、これらは非常に計算集約的であり、メモリから異なる層を接続する重みを読み出し、これらの重みを処理ユニットの処理ユニットに転送することに関与するデータ転送は、非常に集約的であり得る。
同様に番号付けされた要素は、異なる図で共通の構成要素を指す。
ホストに接続されたメモリシステムの一実施形態のブロック図である。
フロントエンドプロセッサ回路の一実施形態のブロック図である。いくつかの実施形態では、フロントエンドプロセッサ回路は、コントローラの一部である。
バックエンドプロセッサ回路の一実施形態のブロック図である。いくつかの実施形態では、バックエンドプロセッサ回路は、コントローラの一部である。
メモリパッケージの一実施形態のブロック図である。
メモリダイの一実施形態のブロック図である。
ウェハ間接合によってメモリ構造に結合された制御回路の例を示す。 ウェハ間接合によってメモリ構造に結合された制御回路の例を示す。
畳み込みニューラルネットワーク(CNN)の単純な例を示す。
人工ニューラルネットワーク内の全結合層の単純な例を示す。
1組の重みを生成するためにニューラルネットワークを訓練するためのプロセスの一実施形態を説明するフロー図である。
ニューラルネットワークを使用した推論のためのプロセスの一実施形態を説明するフロー図である。
畳み込みニューラルネットワークにおける畳み込み動作の概略図である。
ニューラルネットワークの全結合層における行列乗算の使用の概略図である。
クロスポイントアーキテクチャを有するメモリアレイの一部分の一実施形態を示す。 クロスポイントアーキテクチャを有するメモリアレイの一部分の一実施形態を示す。 クロスポイントアーキテクチャを有するメモリアレイの一部分の一実施形態を示す。
クロスポイントアレイと、アレイの動作に使用される制御回路のうちのいくつかを示す上面図である。
マルチレベル超低電力推論エンジンに使用されるメモリセル設計の第1の実施形態の概略図である。
マルチレベル超低電力推論エンジンに使用され得るグループ化された誘電体層を使用するメモリセル設計の別の1組の実施形態の概略図である。
プログラムされるメモリセルの選択のための半選択方式を示す。
複数の誘電体層で形成されたメモリセルを用いて、クロスポイントメモリを書き込むためのシーケンスの一実施形態の概略図である。
2階層化層の例における誘電破壊による書き込み機構を示す。 2階層化層の例における誘電破壊による書き込み機構を示す。 2階層化層の例における誘電破壊による書き込み機構を示す。
3階層化層の例における誘電破壊による書き込み機構を示す。 3階層化層の例における誘電破壊による書き込み機構を示す。
推論エンジン用の極薄誘電体層を有するメモリセルを使用するクロスポイントアーキテクチャの使用のための一実施形態を示すフロー図である。
単一のFETに基づくアンチヒューズ、及びアンチヒューズをプログラムするバイアスの一実施形態の概略図である。
図21のアンチヒューズベースのメモリセルを組み込んだクロスポイントアレイ構造の一部分の平面図である。
推論エンジン用のFETベースのアンチヒューズを有するメモリセルを使用するクロスポイントアーキテクチャのプログラミングのための一実施形態を示すフロー図である。
ニューラルネットワークが推論又は訓練動作を実行するとき、特に、畳み込み層及び全結合層などの多数の計算層数を伴い、これらの層を通じて入力が伝搬されるディープニューラルネットワーク、すなわちDNNの場合、それぞれ大量のデータを伴う多数の計算が実行される。メモリデバイス内外への大量のデータの移動を回避するために、ニューラルネットワークに対する層の重みがメモリデバイスの不揮発性メモリアレイに記憶され、層のそれぞれの計算がデバイス上で実行される。性能を更に高めるために、速度の増加及び電力消費の低減という両方の観点から、ニューラルネットワークのための推論動作中に重みと入力との間のアレイ内ベクトル乗算を実行するために使用され得、特殊なオンチッププログラミングを必要とするマルチレベルメモリセル(MLC)の実施形態を以下に提示する。推論エンジンのためのベクトル乗算デバイスは、それぞれのクロスポイント接点にメモリセルを有するクロスポイントアレイを含む。制御回路は、ワイヤの1つの平面内のそれぞれのワイヤ(すなわち、ワード線)に独立した入力電圧を供給し、他のワイヤ平面内のそれぞれのワイヤ(すなわち、ビット線)上に読み出し電流を供給するように構成される。ベクトル乗算は、入力電圧と、メモリセルによって符号化された行列重みとの乗算として、クロスポイントメモリアレイ内で実行される。クロスポイントアレイ内のメモリセルは、入力電圧のみを使用して個別にプログラムされ得る。第1の組の実施形態では、マルチレベルメモリセルは、金属層によって分離された複数の極薄誘電体層から形成され、メモリセルのプログラミングは、書き込み電圧レベルを選択することによって、1つ以上の誘電体層を選択的に破壊することによって行われる。第2の組の実施形態では、メモリセルは、アンチヒューズとして形成される。
図1は、ホスト120に接続されたメモリシステム100の一実施形態のブロック図である。メモリシステム100は、本明細書で提案される技術を実装することができ、ニューラルネットワーク入力又は他のデータはホスト120から受信される。実施形態に応じて、入力は、ホスト120から受信され、次いでメモリパッケージ104のメモリアレイに事前にプログラムされた重みに関する推論のためにメモリパッケージ104に提供され得る。多くの異なる種類のメモリシステムを、本明細書で提案される技術と共に使用することができる。例示的なメモリシステムは、ソリッドステートドライブ(「SSD」)、メモリカード、及び埋め込みメモリデバイスを含む。しかしながら、他の種類のメモリシステムも使用され得る。
図1のメモリシステム100は、コントローラ102、データを記憶するための不揮発性メモリ104、及びローカルメモリ(例えば、DRAM/ReRAM)106を含む。コントローラ102は、フロントエンドプロセッサ(FEP)回路110、及び1つ以上のバックエンドプロセッサ(BEP)回路112を含む。一実施形態では、FEP回路110はASIC上に実装される。一実施形態では、それぞれのBEP回路112は別個のASIC上に実装される。他の実施形態では、統合コントローラASICは、フロントエンド機能及びバックエンド機能の両方を併せ持ち得る。BEP回路112及びFEP回路110のそれぞれのASICは、コントローラ102がシステムオンチップ(「SoC」)として製造されるように、同じ半導体上に実装される。FEP回路110及びBEP回路112は両方とも、それら自体のプロセッサを含む。一実施形態では、FEP回路110及びBEP回路112は、FEP回路110がマスターであり、それぞれのBEP回路112がスレーブであるマスタースレーブ構成として機能する。例えば、FEP回路110は、メモリ管理(例えば、ガベージコレクション、ウェアレベリングなど)、論理アドレスから物理アドレスへの変換、ホストとの通信、DRAM(ローカル揮発性メモリ)の管理、及びSSD(又は他の不揮発性記憶システム)の全体動作の管理を実行する、フラッシュ変換層(FTL)又はメディア管理層(MML)を実装する。BEP回路112は、FEP回路110の要求でメモリパッケージ/ダイ内のメモリ動作を管理する。例えば、BEP回路112は、読み出し、消去、及びプログラミングプロセスを実施し得る。加えて、BEP回路112は、バッファ管理の実行、FEP回路110によって要求される特定の電圧レベルの設定、エラー訂正(ECC)の実行、メモリパッケージに対するトグルモードインターフェースの制御などを行い得る。一実施形態では、それぞれのBEP回路112は、それ自体の組のメモリパッケージに関与する。
一実施形態では、不揮発性メモリ104は複数のメモリパッケージを含む。それぞれのメモリパッケージは、1つ以上のメモリダイを含む。したがって、コントローラ102は、1つ以上の不揮発性メモリダイに接続される。一実施形態では、メモリパッケージ104内のそれぞれのメモリダイは、NANDフラッシュメモリ(2次元NANDフラッシュメモリ及び/又は3次元NANDフラッシュメモリを含む)を利用する。他の実施形態では、メモリパッケージは、抵抗性ランダムアクセスメモリ(ReRAM、MRAM、FeRAM、又はRRAMなど)又は相変化メモリ(PCM)に基づくストレージクラスメモリ(SCM)などの他の種類のメモリを含み得る。
コントローラ102は、例えば、PCI Express(PCIe)上のNVM Express(NVMe)のようなプロトコルを実装するインターフェース130を介してホスト120と通信する。メモリシステム100と連動するために、ホスト120は、バス128に沿って接続されたホストプロセッサ122、ホストメモリ124、及びPCIeインターフェース126を含む。ホストメモリ124は、ホストの物理メモリであり、DRAM、SRAM、不揮発性メモリ、又は別のタイプの記憶装置であり得る。ホスト120は、メモリシステム100の外部にあり、メモリシステム100とは別個である。一実施形態では、メモリシステム100はホスト120内に埋め込まれる。
図2は、FEP回路110の一実施形態を示すブロック図である。図2は、ホスト120と通信するPCIeインターフェース150と、そのPCIeインターフェースと通信するホストプロセッサ152とを示す。ホストプロセッサ152は、実装に好適な、当該技術分野において既知の任意の種類のプロセッサであり得る。ホストプロセッサ152は、ネットワークオンチップ(NOC)154と通信する。NOCは、典型的にSoC内のコア間にある、集積回路上の通信サブシステムである。NOCは、同期及び非同期クロックドメインにまたがるか、又はロックされていない非同期論理を使用し得る。NOC技術は、ネットワーキング理論及び方法をオンチップ通信に適用し、従来のバス及びクロスバー相互接続に顕著な改善をもたらす。NOCは、他の設計と比較して、SoCの拡張性、及び複雑なSoCの電力効率を向上させる。NOCのワイヤ及びリンクは、多くの信号によって共有される。NOC内の全てのリンクが異なるデータパケット上で同時に動作することができるため、高レベルの並列性が達成される。したがって、統合サブシステムの複雑性が増大し続けると、NOCは、以前の通信アーキテクチャ(例えば、専用のポイントツーポイント信号ワイヤ、共有バス、又はブリッジを有するセグメント化バス)と比較して、向上した性能(スループットなど)及び拡張性をもたらす。NOC154に接続され、NOC154と通信するのは、メモリプロセッサ156、SRAM160及びDRAMコントローラ162である。DRAMコントローラ162は、DRAM(例えば、DRAM106)を動作させ、DRAMと通信するために使用される。SRAM160は、メモリプロセッサ156によって使用されるローカルRAMメモリである。メモリプロセッサ156は、FEP回路を実行し、様々なメモリ動作を実行するために使用される。また、NOCと通信するのは、2つのPCIeインターフェース164及び166である。図2の実施形態では、SSDコントローラは2つのBEP回路112を含むことになる。したがって、2つのPCIeインターフェース164/166が存在する。それぞれのPCIeインターフェースは、BEP回路112のうちの1つと通信する。他の実施形態では、BEP回路112は2つより多い場合も少ない場合もある。したがって、2つより多いPCIeインターフェースが存在し得る。
FEP回路110はまた、フラッシュ変換層(FTL)、又はより一般的には、メモリ管理(例えば、ガベージコレクション、ウェアレベリング、負荷バランシングなど)、論理アドレスから物理アドレスへの変換、ホストとの通信、DRAM(ローカル揮発性メモリ)の管理、及びSSD又は他の不揮発性記憶システムの全体動作の管理を行うメディア管理層(MML)158を含み得る。メディア管理層MML158は、メモリエラー及びホストとのインターフェースを扱い得るメモリ管理の一部として統合されてもよい。具体的には、MMLはFEP回路110内のモジュールであってもよく、メモリ管理の内部的特性に関与してもよい。具体的には、MML158は、ホストからの書き込みをダイのメモリ構造(例えば、下の図5の326)への書き込みに変換するメモリデバイスファームウェア内のアルゴリズムを含んでもよい。MML158は、1)メモリの耐久性が限られている場合があること、2)メモリ構造がページの倍数単位でのみ書き込むことができること、及び/又は3)メモリ構造はブロックとして消去されない限り書き込むことができないことから必要とされ得る。MML158は、ホストにとって可視でない可能性があるメモリ構造のこれらの潜在的制約を理解する。したがって、MML158は、ホストからの書き込みをメモリ構造への書き込みに変換しようと試みる。
図3は、BEP回路112の一実施形態のブロック図である。図3は、FEP回路110と通信する(例えば、図2のPCIeインターフェース164及び166のうちの1つと通信する)ためのPCIeインターフェース200を示す。PCIeインターフェース200は、2つのNOC202及び204と通信する。一実施形態では、2つのNOCが、1つの大型NOCに組み込まれ得る。それぞれのNOC(202/204)は、XORエンジン(224/254)及びECCエンジン(226/256)を介して、SRAM(230/260)、バッファ(232/262)、プロセッサ(220/250)、及びデータ経路コントローラ(222/252)に接続される。ECCエンジン226/256は、当該技術分野において既知であるように、エラー訂正を実行するために使用される。XORエンジン224/254は、データをXOR演算するために使用され、データは、プログラミングエラーがある場合に復元され得る様式で組み合わされ、記憶され得る。データ経路コントローラ222は、4つのチャネルを介してメモリパッケージと通信するためのインターフェースモジュールに接続される。したがって、上部のNOC202は、メモリパッケージと通信するための4つのチャネルのためのインターフェース228に関連付けられ、下部のNOC204は、メモリパッケージと通信するための4つの追加のチャネルのためのインターフェース258に関連付けられる。それぞれのインターフェース228/258は、4つのトグルモードインターフェース(TMインターフェース)、4つのバッファ、及び4つのスケジューラを含む。チャネルのそれぞれに1つのスケジューラ、バッファ、及びTMインターフェースが存在する。プロセッサは、当該技術分野において既知の任意の標準プロセッサであり得る。データ経路コントローラ222/252は、プロセッサ、FPGA、マイクロプロセッサ、又は他のタイプのコントローラであり得る。XORエンジン224/254及びECCエンジン226/256は、ハードウェアアクセラレータとして知られる専用ハードウェア回路である。他の実施形態では、XORエンジン224/254及びECCエンジン226/256は、ソフトウェアに実装され得る。スケジューラ、バッファ、及びTMインターフェースは、ハードウェア回路である。
図4は、メモリバス(データ線及びチップイネーブル線)294に接続された複数のメモリダイ292を含むメモリパッケージ104の一実施形態のブロック図である。メモリバス294は、BEP回路112のTMインターフェースと通信するためのトグルモードインターフェース296に接続する(例えば、図3を参照)。いくつかの実施形態では、メモリパッケージは、メモリバス及びTMインターフェースに接続された小型コントローラを含み得る。メモリパッケージは、1つ以上のメモリダイを有し得る。一実施形態では、それぞれのメモリパッケージは、8つ又は16個のメモリダイを含む。ただし、他の数のメモリダイを実装することもできる。本明細書に記載される技術は、任意の特定数のメモリダイに限定されない。
図5は、メモリダイ300の一実施形態の機能ブロック図である。図5に示す構成要素は、電気回路である。一実施形態では、それぞれのメモリダイ300は、メモリ構造326、制御回路310、及び読み出し/書き込み回路328を含む。メモリ構造326は、行デコーダ324を介してワード線によりアドレス指定可能であり、列デコーダ332を介してビット線によりアドレス指定可能である。読み出し/書き込み回路328は、SB1、SB2、...、SBp(感知回路)を含む複数のセンスブロック350を含み、メモリセルのページが並行して読み出される又はプログラムされることを可能にする。コマンド及びデータは、線318を介してコントローラとメモリダイ300との間で転送される。一実施形態では、メモリダイ300は、線318に接続する1組の入力及び/又は出力(I/O)ピンを含む。
制御回路310は、読み出し/書き込み回路328と協働して、メモリ構造326でメモリ動作(例えば、書き込み、読み出しなど)を実施し、ステートマシン312、オンチップアドレスデコーダ314、及び電力制御回路316を含む。ステートマシン312は、メモリ動作のダイレベル制御を提供する。一実施形態では、ステートマシン312は、ソフトウェアによってプログラム可能である。他の実施形態では、ステートマシン312は、ソフトウェアを使用せず、ハードウェア(例えば電気回路)内に完全に実装される。別の実施形態では、ステートマシン312は、マイクロコントローラによって置き換えられる。
オンチップアドレスデコーダ314は、コントローラ102によって使用されるアドレスと、デコーダ324及び332によって使用されるハードウェアアドレスとの間のアドレスインターフェースを提供する。電力制御モジュール316は、メモリ動作中にワード線及びビット線に供給される電力及び電圧を制御する。電力制御モジュール316は、電圧を生成するための電荷ポンプを含み得る。センスブロックは、ビット線ドライバを含む。
本文書の目的のために、語句「1つ以上の制御回路」は、不揮発性メモリを制御するために使用されるコントローラ、ステートマシン、マイクロコントローラ、及び/若しくは制御回路310、又は他の類似回路を含み得る。
一実施形態では、メモリ構造326は、ウェハなどの単一の基板上に複数のメモリレベルが形成される不揮発性メモリセルの3次元メモリアレイを含む。メモリ構造は、シリコン(又は他の種類の)基板上に配置された活性領域を有するメモリセルの1つ以上の物理レベルに、モノリシックに形成される任意の種類の不揮発性メモリを含み得る。一例では、不揮発性メモリセルは、例えば米国特許第9,721,662号に記載されているような電荷トラップ材料を有する垂直NANDストリングを含み、その全体が参照により本明細書に組み込まれる。
別の実施形態では、メモリ構造326は、不揮発性メモリセルの2次元メモリアレイを備える。一例では、不揮発性メモリセルは、例えば米国特許第9,082,502号に記載されているような浮動ゲートを利用するNANDフラッシュメモリセルであり、その全体が参照により本明細書に組み込まれる。他の種類のメモリセル(例えば、NOR型フラッシュメモリ)も使用することができる。
メモリ構造326に含まれるメモリアレイアーキテクチャ又はメモリセルの正確な種類は、上記の例に限定されない。多くの異なる種類のメモリアレイアーキテクチャ又はメモリ技術を使用して、メモリ構造326を形成することができる。本明細書で提案された新たに特許請求される実施形態の目的には、特定の不揮発性メモリ技術は必要とされない。メモリ構造326のメモリセルに好適な技術の他の例として、ReRAMメモリ(抵抗性ランダムアクセスメモリ)、磁気抵抗メモリ(例えば、MRAM、スピントランスファートルクMRAM、スピン軌道トルクMRAM)、FeRAM、位相変化メモリ(例えばPCM)などが挙げられる。メモリ構造326のメモリセルアーキテクチャに適した技術の例として、2次元アレイ、3次元アレイ、クロスポイントアレイ、積層型2次元アレイ、垂直ビット線アレイなどが挙げられる。
ReRAMクロスポイントメモリの一例として、X線及びY線(例えば、ワード線及びビット線)によってアクセスされるクロスポイントアレイに配置された可逆抵抗スイッチング素子が挙げられる。別の実施形態では、メモリセルは、導電性ブリッジメモリ素子を含み得る。導電性ブリッジメモリ素子はまた、プログラム可能なメタライゼーションセルと呼ばれ得る。導電性ブリッジメモリ素子は、固体電解質内のイオンの物理的再配置に基づく状態変化素子として使用され得る。場合によっては、導電性ブリッジメモリ素子は、2つの電極間に固体電解質薄膜を有する、2つの固体金属電極を含んでもよく、一方は、比較的不活性であり(例えば、タングステン)、他方は、他の電気化学的に活性である(例えば、銀又は銅)。温度が上昇すると、イオンの移動度も増加し、導電性ブリッジメモリセルのプログラミング閾値が低下する。したがって、導電性ブリッジメモリ素子は、温度に対して広範囲のプログラミング閾値を有し得る。
磁気抵抗ランダムアクセスメモリ(MRAM)は、磁気記憶素子によってデータを記憶する。素子は、層としても知られる2つの強磁性薄膜から形成され、層のそれぞれは強磁性であり、薄い絶縁層によって分離されている。2つの層のうちの1つは、特定の極性に設定された永久磁石である。他方の層の磁化は、メモリを記憶するために外場の磁化と一致するように変更することができる。メモリデバイスは、このようなメモリセルのグリッドから構築される。プログラミングのための一実施形態では、各メモリセルは、互いに直角に、セルに平行に、セルの1つ上及び1つ下に配置された一対の書き込み線の間にある。電流がそれらを通過すると、誘導磁場が生成される。
位相変化メモリ(Phase change memory、PCM)は、カルコゲナイドガラス特有の挙動を利用する。一実施形態は、単にレーザパルス(又は別の光源からの光パルス)でゲルマニウム原子の調整状態を変化させることによって、非熱位相変化を達成するために、GeTe-Sb2Te3超格子を使用する。したがって、プログラミングの線量はレーザーパルスである。メモリセルは、メモリセルが光を受信することをブロックすることによって抑制され得る。他のPCM実施形態では、メモリセルは、電流パルスによってプログラムされる。本書では「パルス」の使用は方形波を必要としないが、(連続的又は非連続的な)音の振動若しくはバースト、電流、電圧光、又はその他の波を含む。
当業者であれば、本明細書に記載されるこの技術は、単一の特定のメモリ構造、メモリ構成、又は材料組成に限定されず、本明細書に記載され、当業者によって理解されるように、技術の趣旨及び範囲内で、多くの関連するメモリ構造を包含することを理解するであろう。
図5の素子は、メモリセルのメモリ構造326と、他の素子の全てを含む周辺回路との2つの部分に分類することができる。メモリ回路の重要な特性はその容量であり、その容量は、メモリ構造326に与えられるメモリダイ300の面積を増加させることによって増加され得る。しかしながら、これにより、周辺回路に利用可能なメモリダイ300の面積が低減する。これは、これらの周辺素子に非常に厳しい制限を課し得る。例えば、センス増幅器回路を利用可能な面積に収めることの必要性は、センス増幅器設計アーキテクチャに対する重要な制限であり得る。オンダイ制御回路310に関して、面積の利用可能性が低減することにより、オンチップに実装され得る利用可能な機能が制限され得る。その結果、メモリダイ300の設計における基本的なトレードオフは、メモリ構造326に当てられる面積の量、及び周辺回路に当てられる面積の量である。
メモリ構造326及び周辺回路がしばしば対立する別の面積は、これらの領域の形成に関与する処理にある。これらの領域は多くの場合、異なる処理技術及び単一ダイ上に異なる技術を有するトレードオフを含むことが多いためである。例えば、メモリ構造326がNANDフラッシュである場合、これはNMOS構造であり、周辺回路は、多くの場合、CMOSベースである。例えば、センスブロック350内のセンス増幅器回路、電力制御ブロック316内の電荷ポンプ、ステートマシン312内の論理素子、及び他の周辺回路は、多くの場合、PMOSデバイスを使用する。CMOSダイを製造するための処理動作は、多くの態様において、NMOSフラッシュNANDメモリ又は他のメモリセル技術に対して最適化された処理動作と異なる。
これらの制限を改善するために、以下に記載される実施形態は、図5の素子を別個に形成されたダイ上に分けることができ、それらのダイはその後1つに接合される。より具体的には、メモリ構造326を1つのダイ上に形成することができ、1つ以上の制御回路を含む周辺回路素子の一部又は全部を別個のダイ上に形成することができる。例えば、メモリダイは、フラッシュNANDメモリ、PCMメモリ、ReRAMメモリ、又は他のメモリタイプのメモリセルのアレイなど、メモリ素子のみから形成され得る。次いで、デコーダ及びセンス増幅器などの素子を更に含む周辺回路の一部又は全てを別個のダイに移動させることができる。これにより、メモリダイのそれぞれは、その技術に従って個別に最適化されることを可能になる。例えば、CMOS処理のために最適化され得る別個の周辺回路ダイ上に既に移動されたCMOS素子の心配をすることなく、NANDメモリダイをNMOSベースのメモリアレイ構造用に最適化することができる。これにより、周辺素子に対するより多くの空間が可能になり、メモリセルアレイを保持する同じダイのマージンに制限されて容易に組み込むことができなかった追加機能を組み込むことができる。次いで、2つのダイを1つに接合して、接合マルチダイメモリ回路にすることができ、一方のダイ上のアレイは他方のメモリ回路上の周辺素子に接続される。以下は、1つのメモリダイ及び1つの周辺回路ダイの接合メモリ回路に焦点を合わせているが、他の実施形態は、例えば、2つのメモリダイ及び1つの周辺回路ダイなど、より多くのダイを使用することができる。
図6A及び図6Bは、接合されたダイ対604を提供するためにウェハ間接合を使用して実装され得る、図5の配置の代替配置を示す。図6Aは、メモリダイ610内に形成されたメモリ構造326に結合された周辺回路又は制御ダイ608に形成された制御回路を含む周辺回路の例を示す。共通の構成要素は、図5のように番号付けされている。制御回路310、読み出し/書き込み回路328、及び行デコーダ324(CMOSプロセスによって形成され得る)は、制御ダイ608内に位置していることが分かる。コントローラ102からの機能などの追加の素子も、制御ダイ608に移動され得る。制御回路310、読み出し/書き込み回路328、行デコーダ324、及び列デコーダ332は、一般的なプロセス(例えば、CMOSプロセス)によって形成されてもよく、それにより、メモリコントローラ102上により典型的に見られる素子及び機能を追加するのに、追加のプロセス工程はほとんど又はまったく必要なくなる可能性がある(すなわち、コントローラ102を製造するために使用される同じプロセス工程を、制御回路310、読み出し/書き込み回路328、及び行デコーダ324を製造するためにも使用することができる)。したがって、メモリダイ300などのダイからかかる回路を移動することで、かかるダイを製造するのに必要な工程数が減る一方、制御ダイ608などのダイにかかる回路を追加するのに、任意の追加のプロセス工程は必要なくなる可能性がある。
図6Aは、電気経路612を介してメモリダイ610上のメモリ構造326に結合された制御ダイ608上の読み出し/書き込み回路328を示す。例えば、電気経路612は、読み出し/書き込み回路328とメモリ構造326のビット線との間の電気的接続を提供し得る。電気経路は、メモリ構造326のビット線に接続されたメモリダイ610の対応するパッドに接合された制御ダイ608上のパッドを介して、制御ダイ608内の読み出し/書き込み回路328から延在し得る。メモリ構造326のそれぞれのビット線は、読み出し/書き込み回路328に接続する一対の接合されたパッドを含む、電気経路612内の対応する電気経路を有し得る。同様に、行デコーダ回路324は、電気経路614を介してメモリ構造326に結合される。電気経路614のそれぞれは、ワード線、ダミーワード線、又は選択ゲート線に対応し得る。また、制御ダイ608とメモリダイ610との間に追加の電気経路が提供されてもよい。
図6Bは、接合されたダイ対604の統合メモリアセンブリの一実施形態の配置をより詳細に示すブロック図である。メモリダイ610は、平面620又はメモリセルのアレイを含む。メモリダイ610は、追加の平面又はアレイを有してもよい。それぞれの平面又はアレイ620に対する1つの代表的なビット線(BL)及び代表的なワード線(WL)が示されている。それぞれの平面又はアレイ620当たりに数千又は数万のかかるビット線が存在し得る。一実施形態では、アレイ又は平面は、破断のないワード線及び破断のないビット線の共通の組を共有する、接続されたメモリセルのグループを表す。
制御ダイ608は、多数のセンス増幅器(SA)350を含む。それぞれのセンス増幅器350は、1つのビット線に接続されるか、又はいくつかの実施形態では、複数のビット線に接続されてもよい。センス増幅器は、ビット線ドライバを含む。このため、センス増幅器は、それが接続されるビット線に電圧を提供し得る。センス増幅器は、ビット線の状態を感知するように構成されている。一実施形態では、センス増幅器は、ビット線に流れる電流を感知するように構成されている。一実施形態では、センス増幅器は、ビット線上の電圧を感知するように構成されている。
制御ダイ608は、多数のワード線ドライバ660(1)~660(n)を含む。ワード線ドライバ660は、ワード線に電圧を提供するように構成されている。この例では、アレイ又は平面メモリセル当たり「n」個のワード線が存在する。メモリ動作がプログラム又は読み出しである場合、一実施形態では、選択されたブロック内の1つのワード線がメモリ動作のために選択される。メモリ動作が消去である場合、一実施形態では、選択されたブロック内のワード線の全てが消去のために選択される。ワード線ドライバ660(例えば、電力制御316の部分)は、メモリダイ610内のワード線に電圧を提供する。図6Aに関して上述したように、制御ダイ608はまた、ワード線ドライバ660及び/又はビット線ドライバに電圧を提供するために使用され得る電荷ポンプ、電圧発生器などを含み得るが、これらは図6Bに示されていない。
メモリダイ610は、メモリダイ610の第1の主面682上に、多数のボンドパッド670a、670bを有する。対応する「n」個のワード線ドライバ660(1)~660(n)から電圧を受け取るために、「n」個のボンドパッド670aが存在し得る。平面620に関連付けられたビット線ごとに1つのボンドパッド670bが存在し得る。参照番号670は、一般に、主面682上のボンドパッドを参照するために使用される。
いくつかの実施形態では、コードワードのそれぞれのデータビット及びそれぞれのパリティビットは、異なるボンドパッド対670b、674bを介して転送される。コードワードのビットは、ボンドパッド対670b、674bを介して並行して転送されてもよい。これは、例えば、メモリコントローラ102と統合メモリアセンブリ604との間でデータを転送することに対して、非常に効率的なデータ転送を提供する。例えば、メモリコントローラ102と統合メモリアセンブリ604との間のデータバスは、例えば、並行して転送される8ビット、16ビット、又は恐らく32ビットを提供し得る。しかしながら、メモリコントローラ102と統合メモリアセンブリ604との間のデータバスは、これらの例に限定されない。
制御ダイ608は、制御ダイ608の第1の主面684上に、多数のボンドパッド674a、674bを有する。対応する「n」個のワード線ドライバ660(1)~660(n)からメモリダイ610に電圧を送達するために、「n」個のボンドパッド674aが存在し得る。平面620に関連付けられたビット線ごとに1つのボンドパッド674bが存在し得る。参照番号674は、一般に、主面682上のボンドパッドを参照するために使用される。ボンドパッド対670a/674a及びボンドパッド対670b/674bが存在し得ることに留意されたい。いくつかの実施形態では、ボンドパッド670及び/又は674は、フリップチップボンドパッドである。
一実施形態では、ボンドパッド670のパターンは、ボンドパッド674のパターンと一致する。ボンドパッド670は、ボンドパッド674に接合される(例えば、フリップチップ接合される)。このため、ボンドパッド670、674は、メモリダイ610を制御ダイ608に電気的及び物理的に結合する。
また、ボンドパッド670、674は、メモリダイ610と制御ダイ608との間の内部信号転送を可能にする。このため、メモリダイ610及び制御ダイ608は、ボンドパッドと一緒に接合される。図6Aは、1つのメモリダイ610に接合された1つの制御ダイ608を示すが、別の実施形態では、1つの制御ダイ608は複数のメモリダイ610に接合されている。
本明細書では、「内部信号転送」は、制御ダイ608とメモリダイ610との間の信号転送を意味する。内部信号転送は、制御ダイ608上の回路がメモリダイ610内のメモリ動作を制御することを可能にする。したがって、ボンドパッド670、674は、メモリ動作信号転送のために使用され得る。本明細書では、「メモリ動作信号転送」は、メモリダイ610内のメモリ動作に関係する任意の信号を指す。メモリ動作信号転送は、電圧を提供すること、電流を提供すること、電圧を受け取ること、電流を受け取ること、電圧を感知すること、及び/又は電流を感知することを含み得るが、これらに限定されない。
ボンドパッド670、674は、例えば、銅、アルミニウム、及びこれらの合金から形成されてもよい。ボンドパッド670、674と主面(682、684)との間にライナーが存在してもよい。ライナーは、例えば、チタン/窒化チタンスタックで形成されてもよい。ボンドパッド670、674及びライナーは、蒸着及び/又はめっき技術によって適用されてもよい。ボンドパッド及びライナーは共に720nmの厚さを有してもよいが、更なる実施形態では、この厚さはより大きくても小さくてもよい。
金属相互接続及び/又はビアは、ダイ内の様々な素子をボンドパッド670~674に電気的に接続するために使用され得る。金属相互接続及び/又はビアによって実装され得るいくつかの導電経路が示されている。例えば、センス増幅器350は、経路664によってボンドパッド674bに電気的に接続され得る。図6Aに関して、電気経路612は、経路664、ボンドパッド674b、及びボンドパッド670bに対応し得る。数千のかかるセンス増幅器、経路、及びボンドパッドが存在し得る。BLは、ボンドパッド670bへの直接接続を必ずしも行わないことに留意されたい。ワード線ドライバ660は、経路662によってボンドパッド674aに電気的に接続され得る。図6Aに関して、電気経路614は、経路662、ボンドパッド674a、及びボンドパッド670aに対応し得る。経路662は、それぞれのワード線ドライバ660(1)~660(n)に対して別個の導電経路を備えてもよいことに留意されたい。同様に、それぞれのワード線ドライバ660(1)~660(n)に対して別個のボンドパッド674aが存在してもよい。メモリダイ610のブロック2内のワード線は、経路664によってボンドパッド670aに電気的に接続され得る。図6Bでは、ブロック内の対応する「n」個のワード線に対して「n」個の経路664が存在する。それぞれの経路664に対して、ボンドパッド670a、674aの別個の対が存在し得る。
図5に関連して、図6Aのオンダイ制御回路はまた、その論理素子内の追加機能として、メモリコントローラ102に典型的に見られるものよりも汎用的な能力と一部のCPU能力との両方に加え、アプリケーション特有の特徴も含み得る。例えば、これらの活性化関数は、積和(Multiple and ACcumulation、MAC)演算の累積部分に使用される加算及び閾値決定演算のほか、シグモイド関数又はtanh関数などのより高度な演算を含み得る。
以下では、図6Aの制御ダイ608上に描画された他の回路及び図5の類似の素子のうちの全て又は一部と組み合わせたステートマシン312及び/又はコントローラ102(又は同等に機能する回路)は、本明細書に記載される役割を果たす1つ以上の制御回路の一部とみなされ得る。制御回路は、ハードウェアのみ、又はハードウェアとソフトウェア(ファームウェアを含む)との組み合せを含むことができる。例えば、本明細書に記載する機能を実施するためにファームウェアによってプログラムされたコントローラは、制御回路の一例である。制御回路は、プロセッサ、FGA、ASIC、集積回路、又は他の種類の回路を含み得る。
ここで、不揮発性メモリデバイスに記憶され得るデータの種類を考慮すると、以下の考察で対象となるデータの種類の特定の例は、畳み込みニューラルネットワーク、すなわちCNNなどの人工ニューラルネットワークで使用される重みである。「畳み込みニューラルネットワーク」という名称は、ネットワークが、特殊な種類の線形演算である、畳み込みと呼ばれる数学的演算を用いることを示す。畳み込みネットワークは、それらの層のうちの少なくとも1つで、一般的な行列乗算の代わりに畳み込みを使用するニューラルネットワークである。CNNは、多数の中間隠れ層と共に、入力層及び出力層から形成される。CNNの隠れ層は、典型的には、乗算又は他のドット積と「畳み込み」する一連の畳み込み層である。
ニューラルネットワーク内のそれぞれのニューロンは、前の層内の受容野から来る入力値に特定の関数を適用することによって出力値を計算する。入力値に適用される関数は、重み及びバイアスのベクトルによって決定される。ニューラルネットワークにおける学習は、これらのバイアス及び重みに対する反復調整を行うことによって進行する。重み及びバイアスのベクトルは、フィルタと呼ばれ、入力の特定の特徴(例えば、特定の形状)を表す。CNNの際立った特徴は、多くのニューロンが同じフィルタを共有し得ることである。
図7は、CNNの例を示す概略図である。図7は、画素値のアレイの初期入力画像、それに続く多数の畳み込み層、次いでそれに続く多数の全結合層を示し、その最後に出力が提供される。第1の畳み込み層(Con 1)内のそれぞれのニューロンは、入力画像のn×n画素サブ領域から入力データを取る。ニューロンの学習された重みは、集合的にその畳み込みフィルタと呼ばれ、入力に応答してニューロンの単一値出力を決定する。畳み込み層では、ニューロンのフィルタは、入力領域を画像のx及びy次元に沿ってスライドさせることによって入力画像に適用されて、畳み込み層の値が生成される。実際には、同等の畳み込みは、通常、異なる入力領域へのニューロンの静的に同一のコピーによって実装される。それぞれの層の学習された重みを使用して、畳み込み層(Con1~Con N)のそれぞれを通してプロセスが繰り返され、その後、それらの学習された重みを使用して全結合層(L1~LM)を介して伝播される。
図8は、ニューラルネットワークのいくつかの全結合層をより詳細に示す。図8では、人工ニューラルネットワークの示されている3つの層は、円によって表されるノード又は人工ニューロンの相互接続されたグループ、及び1つの人工ニューロンの出力から別の入力への1組の接続として表されている。この実施例は、3つの入力ノード(I、I2、)及び2つの出力ノード(O、O)のほか、4つの隠れノード又は中間ノード(H、H2、3、)の中間層を示す。人工ニューラルネットワークのノード、又は人工ニューロン/シナプスは、ホスト又は他の処理システムの論理素子によって、1つ以上の入力を受信し、それらを合計して出力を生成する数学関数として実装される。通常、それぞれの入力は別個に重み付けされ、合計がノードの数学関数に渡されてノードの出力が提供される。
一般的な人工ニューラルネットワークの実装形態では、ノード(人工ニューロン/シナプス)間の接続部の信号は実数であり、それぞれの人工ニューロンの出力は、その入力の合計のいくつかの非線形関数によって計算される。ノード及びそれらの接続部は、典型的には、学習プロセスの進行に従って調整する重みを有する。この重みは、接続時の信号の強度を増減させる。ノードは、集約信号がその閾値を横切る場合にのみ信号が送信されるように閾値を有してもよい。典型的には、ノードは層に集約される。異なる層は、それらの入力に対して異なる種類の変換を実行し得る。信号は、おそらくは層を複数回横断した後に、最初の層(入力層)から最後の層(出力層)へと移動する。図7は、単一の中間層又は隠れ層のみを示しているが、複雑なディープニューラルネットワーク(DNN)は、多くのそのような中間層を有し得る。
教師あり人工ニューラルネットワークは、入力を供給し、次いで出力をチェック及び補正することによって「訓練」される。例えば、犬種を認識するように訓練されたニューラルネットワークは、1組の画像を処理し、画像内のイヌが特定の犬種である確率を計算する。ユーザは、結果を確認し、ネットワークが表示し(特定の閾値を上回るなど)、提案されるラベルを返すべき確率を選択することができる。そのようなそれぞれの数学的操作は層とみなされ、複雑なニューラルネットワークは多くの層を有する。多数の中間層又は隠れ層によって提供される深さにより、ニューラルネットワークは、訓練されるにつれて複雑な非線形関係をモデル化することができる。
図9Aは、1組の重みを生成するためにニューラルネットワークを訓練するためのプロセスの一実施形態を説明するフロー図である。訓練プロセスは、多くの場合、クラウド内で実行され、付加的な又はより強力な処理へのアクセスを可能にする。工程901では、1組の画像などの入力が受信される(例えば、図7の画像入力)。工程903では、入力は、現在のフィルタ又は1組の重みを使用して入力を次の層(例えば、図7のCON1)に接続する層を介して伝搬される。次いで、工程905においてニューラルネットワークの出力は次の層(例えば、図7のCON2)で受信され、1つの層からの出力として受信された値は、次の層への入力として機能する。第1の層からの入力は、それらが出力に達するまで中間層又は隠れ層の全てを通じてこのように伝播される。前の段落のイヌの品種の例では、入力は、多数のイヌの画像データであり、中間層は、現在の重み値を使用して画像内のイヌが特定の犬種である確率を計算し、工程905で提案される犬種ラベルが返される。次いで、ユーザは、工程907で結果を確認してニューラルネットワークが返すべき確率を選択し、現在の1組の重みが十分に正確なラベル付けを供給しているかどうかを決定することができ、そうである場合、訓練は完了する(工程911)。結果が十分に正確ではない場合、ニューラルネットワークは、ユーザが選択した確率に基づいて工程909で重みを調整し、続いて工程903にループバックして、調整された重みを用いて入力データを再び実行する。ニューラルネットワークの1組の重みが決定されると、それらは、決定された重みを使用してデータ入力からニューラルネットワークへの出力結果を生成するプロセスである「推論」に使用され得る。工程911で重みが決定されると、それらは、次いで、後の使用のために不揮発性メモリに記憶され得る。不揮発性メモリへのこれらの重みの記憶については、以下で更に詳細に論じる。
図9Bは、推定された精度を使用して入力データの「意味」を予測するための、ニューラルネットワークを使用した教師あり学習の推論フェーズのプロセスを説明するフロー図である。その場合に応じて、ニューラルネットワークでは、クラウド内で推論されることも、エッジデバイス(例えば、スマートフォン、自動車プロセス、ハードウェアアクセラレータ)プロセッサによって推論されることも可能である。工程921において、上で使用した例ではイヌの画像のように、入力が受信される。以前に決定された重みが、ニューラルネットワークアプリケーションを実行するデバイス内に存在しない場合、それらは工程922でロードされる。例えば、ニューラルネットワークを実行するホストプロセッサ上で、重みは、それらが記憶されているSSDから読み出され、ホストデバイス上のRAMにロードされ得る。工程923では、入力データは次いで、ニューラルネットワークの層を介して伝播される。工程923は、図9Bの工程903と同様であるが、ここでは、工程911で訓練プロセスの終了時に確立された重みを使用する。中間層を介して入力が伝搬された後は、次いで、工程925において出力が提供される。
図10は、入力画像とフィルタとの間の畳み込み動作、又は1組の重みの概略図である。この例では、入力画像は6×6アレイの画素値のであり、フィルタは3×3アレイの重みである。畳み込み動作は、3×3フィルタと入力画像の3×3ブロックとの行列乗算によって実行される。例えば、画像の最左上の3×3ブロックとフィルタとの乗算により、出力行列の左上の値が得られる。次いで、フィルタを画像上で1画素だけ横にスライドさせて、出力の次のエントリを生成することができ、このようにして出力用の最上行の4つの要素を生成することができる。フィルタを一度に1画素下にスライドさせてこれを繰り返すことにより、4×4の出力行列が生成される。同様の動作が層のそれぞれに対して実行される。実際のCNNでは、データセットのサイズ及び実行される畳み込みの数は、非常に多数のかかる動作が非常に大量のデータを伴って実行されることを意味する。
図11は、ニューラルネットワークの全結合層における行列乗算の使用の概略図である。行列乗算、又はMatMulは、ニューラルネットワークの訓練フェーズ及び推論フェーズの両方において一般的に使用されるアプローチであり、機械学習のためのカーネル法で使用される。上の図11は、図8と同様であり、入力層と出力層との間に単一の隠れ層のみが示されている。入力データは、入力ノードの数に対応する長さのベクトルとして表される。重みは重み行列で表され、列の数は、隠れ層内の中間ノードの数に対応し、行の数は入力ノードの数に対応する。出力は、入力ベクトルと重み行列との行列乗算によって決定され、出力ベクトルのそれぞれの要素は、入力データの多重成分ベクトルと重み行列の列とのドット積である。
行列乗算を実行する一般的な手法は、積和演算器(MAC、又はMAC単位)の使用によるものである。しかしながら、これはいくつかの問題を有する。再び図9Bを参照すると、推論位相は、行列乗算が工程923での伝搬によって実行される前に、工程922でニューラルネットワークの重みをロードする。しかしながら、関与するデータの量は非常に大きくなり得るため、推論のための積和演算器の使用は、重みのロードに関連するいくつかの問題を有する。これらの問題のうちの1つは、必要とされるビット幅を有する大きいMACアレイを使用しなければならないことに起因する高エネルギー散逸である。別の問題は、MACアレイの制限されたサイズに起因する高エネルギー散逸であり、論理とメモリとの間の大きいデータ移動と、論理演算自体で使用されるよりもはるかに高くなり得るエネルギー散逸とをもたらす。
これらの制限を回避させるために、積和演算器アレイの使用を他のメモリ技術に置き換えることができる。例えば、ReRAM、PCM、FeRAM、又はMRAMベースのメモリセルに基づくものなど、NANDメモリ及びストレージクラスメモリ(SCM)の特性を活用することによって、メモリアレイ内で行列乗算が計算され得る。これにより、ニューラルネットワーク入力は、読み出しコマンドを介して提供され、ニューラルの重みは、推論のために予めロードされることが可能になる。インメモリコンピューティングの使用により、これは、MACアレイ内で行列乗算を実行する論理の必要性、及びメモリとMACアレイとの間でデータを移動させる必要性を除去することができる。
以下は、メモリセル内のニューラルネットワークの層の重みを記憶し、アレイのワード線上の電圧レベルとして層に対する入力を適用することによって、メモリセルのアレイ内の推論動作の入力値と重みとの間の乗算を実行し得る、インメモリコンピューティングを行うDNNの実施形態を提示する。ビット線上に結果として生じる電流は、入力と重みとの積に対応し、複数のかかる乗算は同時に実行され得る。このような推論エンジンによって消費される電力を低減するために、以下の考察は、クロスポイント構造を有するアレイの一部である金属層によって分離された複数の極薄誘電体層で形成されたマルチレベルメモリセルに基づく実施形態を提示する。メモリセルの実施形態は、十分に分離された低抵抗状態及び高抵抗状態を有する一方、低抵抗状態の場合にも高抵抗値を依然として有し、推論時の非常に低い電力消費を可能にする。DNNの重みを記憶するために、メモリセルは、プログラミング電圧の選択によって誘電体層のうちの1つ以上を選択的に破壊するために、入力電圧の使用によって個々にプログラムされ得る。
クロスポイントアーキテクチャの使用は、ベクトル乗算が、アレイ内のセルの抵抗値で行列重みが符号化される電圧-電流変換プロセスによって実装される、より小さいフットプリントを有するアレイを可能にする。記載されるメモリセルは、最低抵抗状態と2倍を超える最高抵抗状態との間にメモリウィンドウを有すると同時に、RLRS>10MOhmのように抵抗が依然として非常に高い最低抵抗状態を有し得る。他のメモリセル技術と比較して、本明細書に記載されるメモリセルは、厳格なプログラミング要件をほとんど有さず、比較的低い電力オンチップ回路でプログラムされ得るマルチレベルセル(MLC)を可能にする。加えて、プログラミング方法は、ビットごとに専用の選択トランジスタを必要とせずにデバイスの選択を可能にし、それぞれのビットのフットプリントを低減する。メモリデバイスが推論に使用されるとき、メモリデバイスは、顧客に供給される前に、前もって決定されたDNNの重み値を用いて予めプログラムされ得る。
より具体的には、マルチレベル記憶及び電界プログラミングを伴うクロスポイント推論エンジンの実施形態が提示される。記載される設計は、超低電力、低コストであり、特殊なオンチッププログラミングを必要としない、マルチレベルセル(MLC)ベクトル乗算デバイスに関する。推論エンジン又はベクトル乗算デバイスは、それぞれのクロスポイント接点にセルを有するクロスポイントアレイと、ワイヤの一方の平面(すなわち、ワード線)内のそれぞれのワイヤに独立した入力電圧を供給し、他方のワイヤ平面(すなわちビット線)内のそれぞれのワイヤに読み出し電流を供給するように構成された制御(又は周辺)回路と、で構成される。ベクトル乗算は、入力電圧とメモリセルによって符号化された行列重みとの乗算を伴う。制御回路及び1つ以上のかかるアレイを保持するメモリダイは、図6A及び図6Bに関して上述したように、同一のダイ又は制御ダイ及びメモリダイの接合されたダイ対の一部であり得る。本明細書に提示される実施形態では、クロスポイントアレイのメモリセルは、入力電圧のみを使用して、複数の抵抗状態のうちの1つに個別にプログラムされ得る。以下に記載される第1の組の実施形態では、MLCメモリセルは、金属層によって分離された複数の極薄誘電体層で形成され、メモリセルのプログラミングは、プログラミング電圧レベルの選択により、誘電体層のうちの1つ以上を選択的に破壊し、ひいてはメモリセルの電気抵抗を設定することによって行われる。別の1組の実施形態では、メモリセルは、アンチヒューズに基づき、アンチヒューズベースのメモリセルのプログラミングは、それぞれのセルを通る電流によって、かつ電流フローを制限するコンプライアンスを設定することによって実行される。
図12Aは、斜めから見た、クロスポイントアーキテクチャを形成するメモリアレイ326の一部分の一実施形態を示す。図12Aのメモリアレイ326は、図5におけるメモリアレイ326の実装形態の一例である。ビット線BL~BLは、第1の方向に配置され(ページの中に入るように表わされている)、ワード線WL~WLは第1の方向と直交する第2の方向に配置されている。図12Aは、ワード線WL~WL及びBL~BLが両方とも基板に対して水平方向に走る水平クロスポイント構造の一例であり、一方、1201に示されているうちの2つのメモリセルは、電流が垂直方向に走るように配向されている。メモリセルの追加層を有するメモリアレイでは、ビット線及びワード線の対応する追加層が存在する。
図12Aに示すように、メモリアレイ326は、複数のメモリセル1201を含む。メモリセル1201は、ReRAM、MRAM、PCM、又はプログラム可能な抵抗を有する他の材料を使用して実装され得るような、書き換え可能メモリセルを含んでもよい。以下の考察は、不揮発性メモリセルの特定の構造に焦点を当てているが、この考察の大半をより一般的に適用することができる。第1のメモリレベルのメモリセル内の電流は、矢印Icellによって示されるように上方に流れ得る。
図12B及び図12Cは、それぞれ、図12Aのクロスポイント構造の側面図及び上面図を示す。図12Bの側面図は、1つの下部ワイヤ、又はワード線WL、及び上部ワイヤ、又はビット線BL~BLを示す。それぞれの上部ワイヤと下部ワイヤとの間のクロスポイントには、マルチレベルメモリセル1201がある。図12Cは、m個の下部ワイヤWL~WL及びn個の上部ワイヤBL~BLのクロスポイント構造を示す上面図である。マルチレベルの実施形態では、それぞれのクロスポイントにおけるメモリセルは、2~5レベルなど、2つより多くの抵抗状態のうちの1つにプログラムされ得る。メモリセル設計に関する実施形態、及びそれらのプログラミングのための手法については、以下に詳細に説明する。
図12A~図12Cのアレイ構造は、推論動作のアレイ乗算を実行するために使用され得、ニューラル機能の層に対する行列重みが、それらの電気抵抗としてメモリセルに記憶される。ワード線の入力に電圧ベクトルV inを印加することで、入力電圧とメモリセル抵抗によって符号化された重みとのベクトル乗算を基準とするビット線の出力に電流が生成される。重みは、ワード線WL及びビット線BLのクロスポイントにおけるメモリセルの抵抗Ri,jの逆数である、コンダクタンスbi,jとして符号化される。
Figure 0007152562000001
ニューラルネットワークの層の入力が、それぞれのワード線WLに印加される電圧V inとして符号化される場合、それぞれのビット線BL上の電流は、以下の積となる。
Figure 0007152562000002
式中、合計はiを超える。実施形態に応じて、重みはバイナリ値としてバイナリメモリセルに記憶されてもよく、又は後述のようにMLCメモリセルに記憶されるマルチレベル値であってもよい。同様に、実施形態に応じて、入力は、バイナリ値にされてもよく又はより多くの値を有してもよい。複数の選択ワード線に対して感知動作を同時に実行することにより、クロスポイント構造は、層に対する入力と重みの積を自動的に計算する。
この配置では、ビット線に沿った複数のメモリセルは、感知のために同時に選択され、対応する入力電圧は、対応するワード線に印加されることに留意されたい。現在のI outは、これらのメモリセルの全ての組み合わせ結果に対応し、このプロセスは、結果として、単一のメモリセルの状態が決定される通常の読み出し動作とは異なる。かかる推論動作のI outから、決定されるのは組み合わせ結果であり、個々のメモリセルの寄与は不明となる。
図13は、クロスポイントアレイと、アレイの動作に使用される制御回路のうちのいくつかを示す上面図であり、アレイの3×3区間が示されている。それぞれのワード線WL及びビット線BLのクロスポイントに、メモリセルMi,j 1301i,jがある。ニューラルネットワークの層に対する入力INは、デジタル・アナログ変換器1311で入力値から電圧レベルへと、対応する電圧レベルに変換される。入力INは、ネットワークに対する初期入力、又は先行する層の出力であり得る。バイナリ実施形態では、入力値1が高読み出し電圧Vreadに変換され得、入力値0が、0V又は接地などの低読み出し電圧に変換され得、この場合、DAC1311は1ビットのDACになり得る。マルチビット入力の場合、DAC1311は、対応するビット数のものとなる。ビット線BLのそれぞれに対するアナログ電流I outは、対応するアナログ・デジタル変換器ADC1311内のデジタル値に変換されて、デジタル出力OUTを生成する。出力値OUTは、次いで、デジタル計算ブロック1315に進むことができ、デジタル計算ブロック1315は、積和演算の累積などの動作を実行し、活性化を適用し、ニューラルネットワークを介して入力を伝搬する一環として実行される他のかかる動作を実行し得る。図5及び図6Aを再び参照すると、DAC1311、ADC1311、及びデジタル計算ブロック1315は、制御回路310の構成要素と共に、行デコーダ324、列デコーダ332、及び読み出し/書き込み回路328の一部とみなされ得る。DAC及び/又はADCは、n>1で2レベルに量子化された信号を生成又は出力することができるマルチビットデバイスであり得る。
図14は、マルチレベル超低電力推論エンジンで使用され得るメモリセル設計の第1の実施形態の概略図である。アレイは、クロスポイントアーキテクチャを使用し、それぞれのセルは、それぞれ異なる抵抗R及び破壊電圧VBD,iを有する複数の誘電体層を有する。図14では、メモリセルはワード線1401とビット線1411との間のクロスポイントに位置する。メモリセルは、N個の誘電体層を有し、そのうちの3つは、R及びVBD,1の誘電体1 1407、R及びVBD,iを有する誘電体i 1405、並びにR及びVBD,Nを有する誘電体N 1403として示される。誘電体層の間には、1404及び1406に示されるような導電層がある。また、金属層1402が、ワード線1401と誘電体層のうちの最も隣接したもの、ここでは誘電体N 1403との間に含まれてもよく、金属層1408もビット線1411と誘電体層の最も隣接するもの、ここでは誘電体1 1407との間に含まれ得る。本明細書の実施例では、誘電体層は、それらの抵抗レベルがRからRまで漸進的に減少するように配置されているが、他の順序を使用することもできる。誘電体層は、異なる層の抵抗レベル間の差が、異なるプログラム状態を明確に定義するのに十分な大きさになるように形成される。
所与の誘電体層について、誘電体層の破壊電圧VBDは、誘電体層が高抵抗状態から電気的短絡Rshort<<Rになる電圧である。例示的な実施形態では、誘電体層は、初期抵抗(R1、...、R)及び破壊強度(VBD,1、...、VBD,N)が、より高い抵抗を有する層がより低いVBDを有するように調整されるように形成される。抵抗及び破壊強度は、それぞれの誘電体層の厚さ、欠陥密度、及び材料組成を調整することによって制御され得る。このようにして、メモリセルの抵抗は、プログラミングストレスを漸進的に高めて、より多くの誘電体層を破壊し、セル全体の抵抗を低下させることによって設定され得る。
例えば、3つの誘電体層を有するセルのプログラミングを見ると、セルは、R>>R>>R及びVBD,1<<VBD,2<<VBD,3となるように形成される。この実施例では、ほぼ全ての電圧が、最も高い抵抗の(又は数字の添え字が最も小さい)非短絡誘電体層にわたって降下する。最初に、全ての誘電体層が無傷の状態で、セルは最も高い抵抗状態で開始する:Rcell=R+R+R≒R。例えば、Rの抵抗を有するようにメモリセルをプログラムするには、プログラミング又は書き込み電圧Vwrをメモリセル全体に配置して、層1及び2を破壊し、層3は破壊しない:VBD,1<VBD,2<Vwr<VBD,3。これは、Rcell=Rとなるように、誘電体層3を無傷のままにする。
図15は、マルチレベル超低電力推論エンジンに使用され得るグループ化された誘電体層を使用するメモリセル設計の別の1組の実施形態の概略図である。図14のように、メモリセルは、ワード線1501とビット線1511との間のクロスポイントに位置し、多数の交互の誘電体層及び導電層から形成されるが、ここで誘電体層は、異なる数の層を有する階層にグループ化されるが、階層内の層は同一又は非常に類似した特性を有する。この例では、階層iにはi層が存在することになるが、他の実施形態は異なる配置になり得る。図15は、N個の階層の例を示し、それぞれがN個の層で構成され、階層1及び2、並びに階層Nの最後の層のみが明示的に示されている。誘電体階層T1は、1つの層L1 1527-1を有し、金属層1530によってビット線1511から、また金属層1528によって階層2の誘電体層1525-1及び1525-2から分離されている。第2の誘電体階層は、層間金属層1526によって分離され、階層2が金属層1524によって階層3の第1の層から分離されている層L1 1525-1及びL2 1525-2の対から形成される。第Nの階層の第Nの層1523-Nを除き、階層3の第1の層及び他の介在する誘電体層及び金属層は図示されておらず、第Nの層1523-Nは、次いで、金属層1522によってワード線1501から分離されている。
図15の例示的な実施形態では、階層は、より低い番号の階層がより高い抵抗を有し、より高い番号の階層がより低い番号の階層よりも多くの層を含み得るように順序付けられている。例えば、層Tの抵抗は、
Figure 0007152562000003
であり、式中、合計はnを超え、Tiは階層T(i+1)より層が少ないが、RTi>RT(i+1)となる。1組の実施形態では、全ての層の破壊電圧VBDは、名目上同じになるように形成され得る。このようにして、電圧nBDを印加することは、階層nまでの全ての階層を破壊することになる。
合計(1+2+3=)6層に対して3つの階層を有する例においてセルをプログラムするための手順を考慮すると、層は、RT1>>RT2>>RT3となり、それぞれの層のVBDが類似するように設計され、形成され得る(抵抗は、典型的には、厚さに対して指数関数的に敏感であり、VBDは、厚さに線形的にのみ依存する)。図14の実施形態の場合と同様に、メモリセルの全抵抗の大部分は、最も抵抗の高い(ここで示されるように添え字の番号が最も低い階層)階層である無傷の階層から得られ、メモリセル全体に印加される電圧の大部分は、この最も抵抗の高い非短絡階層にわたって降下する。例えば、抵抗RT3を有するようにセルをプログラムするには、プログラミング電圧Vwrを印加して、階層T1及びT2内の層のそれぞれを破壊する。この場合、Vwrは、2BD<Vwr<3BDとなるように取られる。
アレイへのデータの書き込み(すなわち、重み値)を考慮すると、本明細書で提示される実施形態は、印加電圧を使用して、図14及び図15に関して説明されたようなメモリセルを複数の抵抗値のうちの1つに選択的にプログラムする。例えば、N個の層/階層を有する実施形態は、N個の状態にプログラムすることができるが、複数のワード線に沿った同時感知の低電力推論の場合、誘電体の全てが短絡された状態を回避することはでき、いくつかの実施形態では、追加の抵抗をセルと直列に形成して、過剰な電流を回避することができる。書き込まれるように選択されたメモリセルの電気的選択は、図16に関連して示されるように、半選択方式を用いて行われる。
図16は、プログラムされるメモリセルの選択のための半選択方式を示す。書き込まれることが意図されるビット線に沿ったセルが、下部ワイヤ及び上部ワイヤにわたって印加される電圧の書き込み電圧Vwrを有するように、上部(ビット線)ワイヤ及び下部(ワード線)ワイヤに電圧が印加され、Vwrの値は、目標データ状態のプログラミング電圧を提供するように選択される。書き込まれないセルは、電圧降下の半分のみ(Vwr/2)を経験するか、又は電圧降下を経験しないかのいずれかである。図16の例では、ビット線BL(N-1)とワード線WL及びWL(M-1)との交点における2つのセルが書き込み用に選択され、Vwrが選択ワード線に印加され、0Vが選択ビット線に印加される。他のワード線及びビット線は、1/2Vwrに設定される。これにより、選択メモリセルにはVwr、及び非選択メモリセルには0V又は1/2Vwrのいずれかの差が生じる。Vwr.maxが最大プログラミング電圧であり、Vwr.minが最小プログラミング電圧である場合、これらの値は、1/2Vwr.max<Vwr.minになるように構成されるべきであり、そうでなければ、半選択電圧は非選択セルの一部を破壊することになる。プログラミングは、以下でより詳細に論じられるように、ビット線ごとに順次実行され得る(本明細書に記載される半選択プロセスでは、低電圧レベルは0Vで取られ、半選択値1/2Vwrが使用される。より一般的には、半選択プロセスが不必要なプログラミング又は読み出し値を誘発しない限り、これらは別の低電圧値であり得、半選択電圧レベルは、Vwrと低電圧との中間の他の電圧レベルであり得る)。
複数の誘電体層を用いたクロスポイント推論エンジンにおけるメモリセルプログラミングは、最も高い抵抗状態に残すように選択されていないメモリセルに対しては、適切なプログラム電圧Vwrを印加することによって誘電体層の一部又は全てを選択的に破壊することを通じて行われる。各セルにおけるレベルの数は、1/2Vwr.max<Vwr.minになるような最大半選択電圧(1/2Vwr.max)と最小選択電圧(Vwr.min)との間のマージンと、誘電体層の抵抗分布を制御する能力と、マルチレベルメモリセルの形成の厚さを制限する任意の設計規則とによって制限される。他のメモリ技術と比較して、このメモリセル構造は、実装されるほとんど全ての抵抗状態の組み合せを可能にし、半導体製造工場(SiO、HfO、MgOなど)において一般的に利用可能な任意の材料の単純な誘電体層から形成され得る。メモリセルは、一度限りプログラムされ得るが、推論エンジンとしてのアプリケーションでは、ニューラルネットワークの層の重みは、デバイスがエンドユーザに提供される前に書き込まれ得る。一例を挙げると、デバイスが典型的に受ける試験プロセスの最後に製造施設で行われたり、自律走行車両などのアプリケーションにDNNを実装するプロセッサによって使用されるメモリアレイに、それらのDNNモデルの重みをプログラムする相手方ブランド製造業者などのサードパーティによって行われたりし得る。
図17は、複数の誘電体層で形成されたメモリセルを用いて、クロスポイントメモリを書き込むためのシーケンスに関する一実施形態の概略図である。ニューラルネットワーク又は他のデータのネットワーク重み値をクロスポイントアレイに書き込むためのプログラミング動作は、典型的には、ワード線の全て又は大部分、ビット線の全て又は大部分にアクセスし、データ状態の全てをプログラムする必要があり、これには、非バイナリ実施形態のために複数のVwr値が必要となる。非常に稀なデータ値の組以外、これらの異なる組み合せの全てを同時に達成することはできないため、書き込み動作は順次動作を伴うことになる。図16に関して記載されるように、プログラミングは、共有ワード線に沿った1つ以上のワード線上のメモリセルに対して実行することが可能であり、そのため、ワード線を個別にプログラムすることも、又は並行性を高めるために複数のワード線を現在プログラムすることもできる。同時にプログラムされ得るワード線の数は、アレイのワード線の全てであってもよく、又は電力/電流の考慮事項によって数が制限される場合には、より少ない数であってもよい。マルチレベルセルの実施形態では、プログラミング動作において、対応する数の異なるVwr値が使用される。所与のビット線に関して、複数のVwrを同時に印加して、複数のデータ状態を同時にプログラムすることができる。しかしながら、半選択実施形態において適切にバイアスされていないと、複数のデータ状態を同時にプログラムすることで、非選択メモリセルに対するプログラミングが誘発され得る。本明細書の例示的な実施形態は、ビット線の全てが同じ状態にプログラムされるように、単一ビット線上の選択メモリセルを書き込む。実施形態に応じて、プログラミングシーケンスは、所与のデータ状態についてビット線ごとに実行され、次いでデータ状態の全てをカバーするために繰り返されるか、又は、所与のビット線に対して、次のビット線に移動する前に全てのデータ状態がプログラムされるかのいずれかであり得る。
図17は、アレイ内のそれぞれのビット線の、BLから始まり、BLまで順次進行する順序どおりのプログラミングを示す。図17では、選択ビット線上にプログラムされるように選択されたメモリセルは、Sとラベル付けされ、プログラムされるように選択されていないメモリセルは、NSとラベル付けされている。プログラムされるビット線は、それぞれのビット線を接地するか、又は低電圧に設定し、他の全てのビット線をVwr/2、又は中間の「半選択」書き込み電圧に設定することによって選択される。ビット線上にプログラムされるように選択されたメモリセルは、Vwrをそれぞれのワード線に印加し、他の全てのワード線をVwr/2に設定することによって選択される。マルチレベルセルの実施形態では、選択ビット線に関して、Vwr値は、対応するプログラミング電圧レベルの全てを通って進行し得る。例えば、図17の左側では、ビット線BL並びにワード線WL及びWL上のメモリセルが、プログラムされた状態のうちの1つに書き込まれるように選択され、図17の右側では、ビット線BL及びワード線WL上のメモリセルが、プログラムされた状態のうちの1つに書き込まれるように選択される。
シーケンス内の次のビット線に移動する前に、データ状態の全てが所与のビット線上のメモリセルに書き込まれる実施形態では、非選択ワード線及びビット線は、1/2Vwrで半選択され、その結果、ステップアップもされることになり、同時にプログラミング電圧Vwrが上昇して異なるデータ状態がプログラムされる。プログラミング電圧のシーケンスにおいて次のVwrでビット線の全てを循環する前に、1つのVwrについてビット線の全てが循環される代替実施形態では、非選択ワード線及びビット線は、ビット線の所与の循環の間に同じ1/2Vwrに留まることになり、プログラミングフローが所与のVwrについてビット線を循環する際に、ビット線は、ビット線が選択/選択解除されるときに1/2Vwrと0Vとの間で切り換わり、ワード線は、ワード線が選択/選択解除されるときに1/2VwrとVwrとの間で切り換わる。
再び図5及び図6Aを参照すると、メモリセルの読み出し及び書き込みに関与する制御回路は、ステートマシン312など、制御回路310の構成要素に加え、行デコーダ324、列デコーダ332、及び読み出し/書き込み回路328の一部であり得る。書き込み動作中、行デコーダ324及び列デコーダ332内のドライバ/バイアス回路は、メモリセルがプログラミングのために個別に選択されるように、図19に関して示されるようにワード線及びビット線をバイアスし得る。
個々のメモリセルのデータ状態を決定するのではなく、図12Cに関して説明されるように、推論動作におけるデータの読み出しに関しては、行デコーダ324内のバイアス回路は、ネットワークの層に対する入力ベクトルを1組のVin値に変換し、これらの値は、選択された1組のビット線のメモリセルのワード線に同時に適用される。列デコーダ332及びセンス増幅器350を含む読み出し/書き込み回路328は、入力ベクトルと対応するビット線に沿って記憶された重み値との積を示すために、複数ビット感知動作としてワード線のそれぞれに沿った合計Ioutを決定する。本明細書に記載されるメモリセルは、最低抵抗状態であっても高い抵抗値を有し得るため、複数のメモリセルを同時に感知する場合であっても、電流値は依然として比較的低く、推論プロセスは低電力プロセスであり得る。次いで、メモリデバイス上の制御回路は、積和演算の一部として乗算結果を累積して、ニューラルネットワークの層の出力を決定することができ、これは、後続の層への入力又はネットワークの出力のいずれかになり得る。
図18A~図18Cは、2つの階層化層の実施例における誘電破壊による書き込み機構を示す。図18Aは、2階層メモリセルの概略図である。第1の階層は、破壊電圧VBD及び抵抗Rが導電体層1806と導電体層1808との間に形成された単一層の誘電体1 1807である。導電層1802と導電層1806との間の第2の階層は、誘電体2A 1805及び誘電体2B 1803の2つの層で形成され、それぞれ破壊電圧VBD及び抵抗Rを有し、導電層1804によって分離されている。対応するワード線及びビット線によってメモリセル全体に印加されるプログラミング電圧Vwrは、電圧源1801によって表される。メモリセルは、誘電体層が破壊されていない状態で最も高い抵抗状態に対応するレベル0であり得、レベル1では、誘電体1 1807が破壊されているとき、誘電体2A 1805及び2B 1803は無傷であり、レベル2では、誘電体2A 1805及び2B 180も破壊される。バイナリ実施形態では、レベル0及び1が使用され、それぞれ高抵抗状態及び低抵抗状態に対応する。3状態デバイスとして動作するとき、レベル0は高抵抗状態、レベル1は中間抵抗状態、及びレベル2は低抵抗状態である。全ての誘電体層がレベル2で短絡されると、レベル2は非常に低い抵抗を有する可能性があり、より多くの電力を消費することになる。3状態メモリセルとして動作するとき、いくつかの実施形態は、低電力推論のための使用を可能にするために、メモリセルに直列抵抗を付加し得る。
図18Bは、破壊電圧VBDに対して正規化された、階層のそれぞれに対する電圧と、VBDに関して再び正規化された、電圧源1801からメモリセル全体に対して印加された電圧とを対比させたプロットである。図18Bの例では、R=10Rであり、その結果、メモリセルは分圧器として作用し、それぞれの層にわたって降下した相対電圧は、その抵抗と全セル抵抗との比によって変化する。これは、図18Bのプロットに反映され、1821は誘電体1 1807にわたる電圧降下であり、1823は誘電体2A 1805及び誘電体2B 1803のそれぞれにわたる電圧降下である。
印加電圧VBD(正規化スケールで1)で開始する全メモリセルにわたる印加電圧を見ると、1.0VBDでは、誘電体1 1807にわたる電圧降下は、電圧の一部が階層2にわたって降下するときのVBDより小さい。印加電圧が増加されると、誘電体層の全てにわたる電圧は、メモリセルにわたる電圧が約1.2VBDになるまで増加され、誘電体1 1807は破壊する。誘電体1 1807が破壊された後は、誘電体1 1807にわたる電圧降下はなくなり、その結果、印加電圧は誘電体2A 1085及び誘電体2B 1803にわたって降下し、誘電体2A 1085及び誘電体2B 1803が同じ抵抗Rを有するときに、それらの誘電体のそれぞれにわたって印加電圧の半分が降下する。
階層2の誘電体、誘電体2A 1805及び誘電体2B 1803を破壊するには、印加電圧が2VBDを超える必要がある。したがって、レベル1のデータ値をメモリセルにプログラムするために、プログラム電圧Vwrは、約1.2VBD<Vwr<2VBDのようになるべきである。Vbd.effiが階層iの実効破壊電圧である場合、電圧分割器を考慮すると、誘電体1 1807に対して最初に見られる破壊電圧は、Vbd.eff.1=Vbd (R+2)/Rである。誘電体1 1807が破壊された後は、Vbd.eff.2=2bdとなるように、電圧降下の全てが誘電体2A 1805及び誘電体2B 1803の直列対にわたって発生する。レベル0とレベル1との間に十分なマージンを有する条件は、Vbd.eff.1<Vbd.eff.2であり、R>2となる。
図18Aに示すように、メモリセルのアレイにデータをプログラムするとき、図18Cは、図17に関して上述したように、プログラムされるメモリセルに対応するワード線に印加する書き込み電圧Vwrの一連のステップの波形を示す。図18Cの波形は、書き込み動作において選択ワード線に印加されるVwrレベルの実施形態である。最初に、メモリセルの全てはレベル0にあり、目標状態がレベル0状態のメモリセルは、この初期状態からプログラムされない。レベル1状態を書き込むために、プログラミング電圧Vwrは、Vwr>Vbd.eff.1及びVwr<2VBDとなるように選択ワード線に印加される。また、誘電体2A 1805及び誘電体2B 1803がレベル2のために破壊される場合、レベル2に書き込まれるように選択されたメモリセルに対してVwrがVwr>2VBDに上昇される。
図19A及び図19Bは、3階層化層のメモリセルの例における誘電破壊による書き込み機構を示す。図19Aは、かかる3階層メモリセルの概略図であり、第1の階層は、導電層1914と導電層1912との間に破壊電圧VBD及び抵抗Rを有する単一層誘電体1 1913である。第2の層は、導電層1908と導電層1912との間に形成されており、それぞれ破壊電圧VBD及び抵抗Rを有し、導電層1908によって分離された誘電体2A 1911及び誘電体2B 1909の2つの層を有する。導電層1908と導電層1902との間の第3の階層は、誘電体3A 1907、誘電体3B 1905、及び誘電体3C 1903の3つの層で形成され、誘電体間の導電層1906及び1904を有する。対応するワード線及びビット線によってメモリセル全体に印加されるプログラミング電圧Vwrは、電圧源1901によって表される。メモリセルは、いずれの誘電体層も破壊されない最高抵抗状態に対応するレベル0と、誘電体1 1913が破壊される一方、誘電体2A 1911及び2B 1909、並びに誘電体3A 1907、3B 1905、及び3C 1903は無傷であるレベル1と、誘電体2A 1911及び2B 1909も破壊されるレベル2と、階層3の誘電体1907、1905、及び1903が破壊されるレベル3と、になり得る。3つ組の実施形態では、レベル0、1、及び2が使用され、それぞれ高抵抗状態、中間抵抗状態、及び低抵抗状態に対応する。4状態デバイスとして動作するとき、レベル0は、高抵抗状態、レベル1及び2は中間抵抗状態、及びレベル3は低抵抗状態となる。誘電体層の全てがレベル3で短絡されると、レベル3は非常に低い抵抗を有する可能性があり、より多くの電力を消費することになるため、3状態メモリセルとして動作するとき、いくつかの実施形態は、低電力推論のための使用を可能にするために、メモリセルに直列抵抗を加え得る。3レベル、3階層化システムでは、マージン条件は、1/2Vwr.max<Vwr.minを満たすために0.5<i<1となるように、Vbd.eff.1<Vbd.eff.2、又は係数iの場合はVbd.eff.1=ibd.eff.2となる。同様に、Vbd.eff.2<Vbd.eff.3、又は、係数nの場合はVbd.eff.2=nbd.eff.3であり、式中、n<1である。Vbd及びRの単位では、これは条件R=3/(3n-2)及びR=3n/(3i-1)を与える。
図19Aに示すように、メモリセルのアレイにデータをプログラムするとき、図19Bは、図17に関して上述したように、プログラムされるメモリセルに対応するワード線に印加する一連のVwrステップの波形を示す。図19Bの波形は、書き込み動作において選択ワード線に印加されるVwrレベルの実施形態である。最初に、メモリセルの全てはレベル0であり、目標状態がレベル0のメモリセルは、この初期状態からプログラムされない。レベル1状態を書き込むため、プログラミング電圧Vwrは、階層1の誘電体を破壊するが、階層2又は階層3の誘電体を破壊しないためにVwr>Vbd.eff.1及びVwr<Vbd.eff.2になるように、選択ワード線に印加される。レベル2状態を書き込むため、プログラミング電圧Vwrは、階層2の誘電体を破壊するが、階層3の誘電体を破壊しないためにVwr>Vbd.eff.2及びVwr<3VBDとなるように、選択ワード線に印加される。また、誘電体3A 1907、誘電体3B 1905、及び誘電体3C 1903がレベル3のために破壊される場合、レベル3に書き込まれるように選択されたメモリセルに対して、VwrはVwr>3VBDに上昇される。
図20は、推論エンジン用の極薄誘電体層を有するメモリセルを使用するクロスポイントアーキテクチャの使用のための一実施形態を示すフロー図である。図20のフローは、クロスポイントメモリアレイをプログラムするための方法(工程2001~2007)と、推論のためのメモリアレイの後続の使用(2011~2019)との両方の実施形態を含む。本明細書の説明は、ニューラルネットワークに関する推論エンジンの環境におけるものであり、記載される構造及び技術は、かかる用途において特定の有用性をもち得るが、これらの構造及び技術は、より一般的に適用することができ、高い保持率を有する低電力不揮発性メモリを多くの環境で使用することができる。
工程2001において、アレイは、ビット線のうちの選択ビット線に対してバイアスされ、プログラミングシーケンスは、図17に関連して示されるように、BL0で開始し得る。例えば、選択ビット線は接地にバイアスされ、他のビット線及び非選択ワード線は、現在のVwr値に対して1/2Vwrで半選択され得る。工程2003では、プログラミング電圧Vwrが、Vwrに対応するデータ状態にプログラムされるメモリセルに対応するワード線に印加される。工程2001及び工程2003においてワード線及びビット線をバイアスすることは、1つ以上の制御回路によって実行可能であり、行デコーダ324及び列デコーダ332内の回路並びに読み出し/書き込み回路328をバイアスすることを含む。
工程2001及び工程2003のプロセスは、それぞれのビット線に対して、及びマルチレベルセル実施形態の場合は、それぞれのVwr値に対して繰り返される。図20の実施形態では、Vwrループはビットラインループ内にあるが、他の実施形態はこの順序を逆転させ得る。工程2004では、選択ビット線に対するプログラミング電圧Vwrがそれ以上存在するかどうかが確認され、存在する場合、工程2005において、例えば、次の階層の誘電体層又は次の誘電体層を短絡させることに対応するVwr値にステップされるなど、Vwr値が次のプログラミング値にインクリメントされ、次いで工程2001にループバックし、それに応じて現在非選択のワード線が半選択されるように再バイアスされる。工程2004で書き込むVwr値がそれ以上存在しない場合、フローは工程2006に進み、書き込むためのビット線がそれ以上存在するかどうかを確認し、存在する場合、工程2007でビット線はインクリメントされてから、工程2001にループバックされる。存在しない場合は、メモリアレイのプログラミングは完了する。
推論エンジンなどのアプリケーションでは、アレイのプログラミングは、典型的には、エンドユーザに提供される前に行われる。例えば、メモリアレイは、新しいデバイス上で一般的に実行される試験プロセスの終了時など、出荷前に製造業者によってプログラムされ得る。あるいは、メモリアレイは、エンドユーザに供給される前に中間者によってプログラムされ得る。例えば、プログラムされていないメモリアレイ(初期化又は未初期化のいずれか)が相手方ブランド製造業者(OEM)に提供される可能性があり、OEMは、次いでそれらのデータ(DNNモデルの重みなど)をプログラムし、次いでプログラムされたアレイを組み込む製品をOEMの顧客に提供する。これは、例えば、ニューラルネットワークに依拠する自律走行車両の場合に当てはまり、製造業者は、車両がエンドオペレータに提供される前に、それらのニューラルネットワークモデルの重みをアレイにプログラムするであろう。
メモリアレイは、典型的には、エンドユーザに供給される前に一度だけプログラムされるため、いくつかの実施形態では、プログラミング電圧Vwrは、メモリデバイス自体では生成されないが、プログラミング中に外部から供給される場合がある。この場合、電力制御316などのメモリデバイス上の1つ以上の制御回路は、より高い電圧を処理するための電荷ポンプ及び回路が回避され得るように、Vwr及び回路素子を生成する機能を有する必要はなく、これらの回路のための面積及び電力消費を節約することができる。
工程2011~2019は、メモリアレイが、重みがアレイのメモリセル内の値として記憶されるニューラルネットワーク内の推論エンジンネットワークとして使用され、入力が入力値のベクトルとなる場合を考慮している。図13に関して上述したように、入力ベクトルINは、DAC 1311によって対応するワード線WLに印加される電圧レベルV inに変換され、入力値は、実施形態に応じてバイナリ又はマルチレベルであり得る。ワード線WLとBLとの間を流れる電流は、入力ベクトル成分V inとメモリセル1301i,jに記憶された行列重みbi,jとの積に対応する。合計電流I outは、電圧レベルV inによって表される入力ベクトルのベクトル積の合計に等しくなり、j番目の行列列内の値は、対応するBLのメモリ1301i,jに記憶された重みによって表される。出力電流Iは、方程式1及び2によって上述したように、メモリ内行列乗算の出力ベクトルを表す。
工程2015は、方程式2の積に対応するビット線BLのそれぞれに対する電流I outを決定し、この値がADC 1313によってOUTに変換される。次いで、工程2017で、個々の列のこれらの部分的な積がデジタル計算ブロック1315に蓄積されて層の出力が生成され得る。工程2019は、工程2017からの出力の更なる伝搬に対応する。実施形態に応じて、工程2017は、活性化関数を適用すること、追加の値に対して推論動作の初期工程を繰り返すこと、層の出力を提供すること、又はこれらのいくつかの組み合せを含み得る。次いで、層の出力は、ネットワーク内の層の場所に応じて、ネットワークの後続の層への入力として、又はネットワークの最終出力として使用され得る。
代替の1組の実施形態では、クロスポイントアーキテクチャを有する推論エンジンは、アンチヒューズ型メモリセルに基づくことができ、それぞれのメモリセルは、それぞれのクロスポイントにアンチヒューズを含む。薄型誘電体層に基づく実施形態と同様に、アンチヒューズの実施形態は追記型(write once, read many)のアレイであり、プログラミングは、バイナリ実施形態において図20に関して記載されたものと同様のフローによって実行される。アンチヒューズベースの実施形態は、非常に高い抵抗レベル(ギガΩ又はテラΩ範囲など)を達成することができ、低抵抗レベルは、大きな直列抵抗体を使用することによって上昇させることができる。アンチヒューズ技術は、小さなスケール(すなわち、10nm)まで実装することができ、マルチレベル抵抗状態を実装することができる。
アンチヒューズは、プログラムされていない状態で通常はオフであり、プログラムされた状態で通常はオンである、ワンタイムプログラム可能なデバイスであるが、いくつかの実施形態では、アンチヒューズのバイアスを修正し、コンプライアンス電流をもたらすことによって、プログラミング後に複数の抵抗レベルを規定することが可能である。アンチヒューズの一般的な設計は、供給レベルとビット線との間でアンチヒューズトランジスタと直列に接続された選択トランジスタである。選択トランジスタは、読み出しワード線に接続された制御ゲートを有し、アンチヒューズトランジスタは、プログラミングワード線に接続されたゲートを有する。アンチヒューズは、高電圧をプログラミングワード線に印加して、アンチヒューズトランジスタ内の酸化物を破壊し、アンチヒューズトランジスタを短絡させることによってプログラムされる。アンチヒューズを読み出すため、プログラミングワード線が低い間に、電圧を読み出しワード線に印加して選択トランジスタをオンにし、その結果、電流は、プログラムされたアンチヒューズを通して流れ得るが、プログラムされていないアンチヒューズは電流を伝導しない。
以下の考察は、単一のノーマリオフ型電界効果トランジスタ(FET)アンチヒューズセルを使用する、クロスポイントメモリの実施形態を提示する。このアンチヒューズセルは、金属酸化物ゲート(例えば、高k金属ゲート)又は半導体酸化物ゲート(例えば、SiO)を有するFETに基づく。FETチャネルは、その初期状態で非導電性であり、ゲート酸化物がプログラムされた後、すなわち電気的に破壊された後に短絡状態になる。材料の仕様に関する実施形態は、設計のために選択されたリソグラフィノードに応じて変化する。アンチヒューズのプログラミングは、図21に関して例示され得る。
図21は、単一のFETに基づくアンチヒューズ、及びアンチヒューズをプログラムするバイアスの一実施形態の概略図である。FETトランジスタ2101は、ビット線BL 2105とワード線WL 2103との間に接続される。第3の線又はプログラミングワード線、WLP 2107は、FET 2101の制御ゲートに接続される。図21は、プログラミングのためのFET 2101のバイアスを示し、アンチヒューズのプログラミングは、ワード線WL 2103を接地し、ビット線BL 2105を1/2Vwrに設定している間に、プログラミングワード線WLP 2107を書き込み電圧Vwrに上昇させることによって実行される。プログラミング電圧Vwrは、アンチヒューズトランジスタの酸化物破壊をもたらすのに十分であるように選択される一方、1/2Vwrは、酸化物破壊を引き起こさず、クロスポイントアレイにおけるセル選択を可能にする。低抵抗状態の抵抗を増大させるために、それぞれのアンチヒューズFET 2101は、ビット線BL 2105とワード線WL 2103との間に直列に接続された抵抗を有し得る(本明細書に記載される半選択プロセスでは、低電圧レベルは0Vで取られ、半選択値1/2Vwrが使用されるが、より一般的には、半選択プロセスが不必要なプログラミング又は読み出し値を誘発しない限り、これらは別の低電圧値であり得、半選択電圧レベルは、Vwrと低電圧との中間の他の電圧レベルであり得る)。
図22は、図21のアンチヒューズベースのメモリセルを組み込んだクロスポイントアレイ構造の一部分の平面図である。図22は、図12C又は図17と同様であるが、それぞれのクロスポイントのアンチヒューズメモリセルを表し、ここでは更にプログラミング線WLP1~WLP4を含む。例えば、メモリセル2201は、ワード線WL4とビット線BL3との間に接続され、WLP3に接続された制御ゲートを有する。図を簡略化するために示されていないが、抵抗体は、低抵抗状態の値を増加させるために、アンチヒューズメモリセルのそれぞれと直列に接続され得る。
図22は、一実施形態では、メモリセル2201をプログラムするようにバイアスされたクロスポイントアレイの図示された部分を示し、電気選択は、プログラミングワード線プログラムに印加されるプログラミング電圧Vwrと組み合わされた半選択方式を使用して行われる。選択重み値をアンチヒューズ2201に書き込むため、対応するプログラミングワード線WLP3はVwrに設定され、対応するワード線WL4は0Vに設定され、対応するビット線BL3は1/2Vwrに設定される。非選択ビット線のうちのビット線も、非選択ワード線と同様に、1/2Vwrに設定される。非選択メモリセルに対するプログラミングワード線は0Vに設定され、プログラミングは、図17に関する上述と同様に、プログラミングワード線ごとに順次実行され得るが、シーケンスは、ここではビット線(ここでは、選択メモリセルと非選択メモリセルとの両方に対して半選択のままである)ではなく、プログラミングワード線を対象とする。プログラム選択されたアンチヒューズメモリセル(この例ではWLP3)とプログラミングワード線を共有する非選択アンチヒューズセルは、ゲートソース電圧又はゲートドレイン電圧が1/2Vwrに留まるため、酸化物破壊を経験しない。アレイがプログラムされると、プログラムワード線は、薄型誘電体層ベースのメモリセルに関して上述したものと同様に実行される読み出し動作に必要がなくなる。
図23は、推論エンジン用のFETベースのアンチヒューズを有するメモリセルを使用するクロスポイントアーキテクチャのプログラミングのための一実施形態を示すフロー図である。図23のフローは、クロスポイントメモリアレイをプログラムするための方法(工程2301~2307)の実施形態を含み、推論のためのメモリアレイの後続の使用は、図20の工程2011~2019に関して上述したものと同様であり得る。本明細書の説明は、ニューラルネットワークに関する推論エンジンの環境におけるものであり、記載される構造及び技術は、かかる用途において特定の有用性をもち得るが、これらの構造及び技術は、より一般的に適用することができ、高い保持率を有する低電力不揮発性メモリを多くの環境で使用することができる。
工程2301では、アレイは選択されたプログラミングワード線に対してバイアスされ、プログラミングシーケンスは、図17に関して示されるビット線のシーケンスと同様に、WLP0で開始し得るが、ここではプログラミングワード線を対象とする。例えば、ビット線及び非選択ワード線の全ては、半選択され、1/2Vwrでバイアスされ得、選択メモリセルに対応するワード線は、接地にバイアスされ得る。工程2303では、プログラミング電圧Vwrが選択プログラミングワード線に印加される。工程2301及び工程2303におけるワード線、プログラミングワード線、及びビット線のバイアスは、1つ以上の制御回路によって実行可能であり、行デコーダ324及び列デコーダ332内の回路並びに読み出し/書き込み回路328をバイアスすることを含む。
工程2301及び工程2303のプロセスは、プログラミングワード線ごとに繰り返される。工程2305では、書き込むプログラミングビット線がそれ以上存在するかどうかを確認し、存在する場合、ビット線は工程2307でインクリメントされ、その後工程2301にループバックされる。存在しない場合、メモリアレイのプログラミングは完了する。メモリアレイが、ニューラルネットワークの重みを用いてプログラムされると、図20の工程2011~2019に関して上述したように、メモリアレイは推論エンジンとして使用され得る。
上述の実施形態と同様に、推論エンジンとしてのアプリケーションでは、アレイのプログラミングは、典型的には、エンドユーザに提供される前に行われる。例えば、メモリアレイは、新しいデバイス上で一般的に実行される試験プロセスの終了時など、出荷前に製造業者によってプログラムされ得る。あるいは、メモリアレイは、エンドユーザに供給される前に中間者によってプログラムされ得る。例えば、プログラムされていないメモリアレイ(初期化又は未初期化のいずれか)が相手方ブランド製造業者(OEM)に提供される可能性があり、OEMは、次いでそれらのデータ(DNNモデルの重みなど)をプログラムし、次いでプログラムされたアレイを組み込む製品をOEMの顧客に提供する。これは、例えば、ニューラルネットワークに依拠する自律走行車両の場合に当てはまり、製造業者は、車両がエンドオペレータに提供される前に、それらのニューラルネットワークモデルの重みをアレイにプログラムするであろう。
メモリアレイは、典型的には、エンドユーザに供給される前に一度だけプログラムされるため、いくつかの実施形態では、プログラミング電圧Vwrは、メモリデバイス自体では生成されないが、プログラミング中に外部から供給される場合がある。この場合、電力制御316などのメモリデバイス上の1つ以上の制御回路は、Vwrを生成する機能を有する必要はなく、より高い電圧を処理するための電荷ポンプ及び回路などの回路素子を回避して、これらの回路のための面積及び電力消費を節約することができる。
第1の組の態様によれば、装置は、1つ以上のビット線に沿って接続された複数のマルチレベルメモリセルに接続するように構成された制御回路を含み、それぞれのメモリセルは、導電層によって分離された複数の誘電体層から形成される。制御回路は、対応する複数の書き込み電圧のうちの1つを印加して、書き込み選択メモリセルの誘電体層のうちの1つ以上を破壊することによって、書き込み選択メモリセルを複数のデータ状態のうちの1つに個別にプログラムし、第1の複数のメモリセルに印加された1組の対応する第1の複数の入力電圧に応答して、第1のビット線に沿って接続された第1の複数のメモリセルを同時に感知するように構成されている。
追加の態様では、方法は、1つ以上の第1の選択メモリセルを複数のデータ状態のうちの第1のデータ状態に同時にプログラムするためにメモリセルのアレイをバイアスすることを含み、アレイは、メモリセルが対応するビット線と対応するワード線との間に接続され、メモリセルのそれぞれが、導電層によって分離された複数の誘電体層から形成されるクロスポイントアーキテクチャに従って形成される。バイアスは、1つ以上の第1の選択メモリセルに対応するアレイのビット線を低電圧値に設定することと、1つ以上の第1の選択メモリセルに対応しないアレイのビット線を第1の中間電圧レベルに設定することと、1つ以上の第1の選択メモリセルに対応しないアレイのワード線を第1の中間電圧レベルに設定することと、を含む。1つ以上の第1の選択メモリセルを複数のデータ状態のうちの第1のデータ状態に同時にプログラムするためにメモリセルのアレイをバイアスすると同時に、第1の書き込み電圧は、1つ以上の第1の選択メモリセルに対応するアレイのワード線に印加され、第1の書き込み電圧は、第1の選択メモリセルを複数のデータ状態のうちの第1のデータ状態にプログラムするために、第1の選択メモリセルの誘電体層のうちの1つ以上を破壊するために選択され、第1の中間電圧レベルは、低電圧値と第1の書き込み電圧との中間にある。
別の1組の態様では、不揮発性メモリデバイスは、メモリアレイと、メモリアレイに接続された1つ以上の制御回路とを含む。メモリアレイは、複数のワード線と、複数のビット線と、複数のプログラミング線と、複数のアンチヒューズメモリセルと、を含む。メモリアレイは、クロスポイントアーキテクチャを有し、それぞれのアンチヒューズメモリセルは、ビット線のうちの対応するビットとワード線のうちの対応するワード線との間に接続され、かつプログラミング線のうちの対応するプログラミング線に接続された制御ゲートを有する電界効果トランジスタ(FET)を含む。アンチヒューズメモリセルのそれぞれは、メモリセルのゲート酸化物を破壊することによって、高抵抗状態から低抵抗状態にプログラム可能である。1つ以上の制御回路は、対応するプログラミング線に書き込み電圧を印加して選択メモリセルのゲート酸化物を破壊すると同時に、選択メモリセル間に電圧差を設けるように、対応するワード線及び対応するビット線をバイアスすることによって、アンチヒューズメモリセルのうちの選択されたものをプログラムし、プログラミング線を接地に設定すると同時に、対応する複数のワード線に印加された1組の対応する第1の複数の入力電圧に応答して、共有ビット線に沿って接続された第1の複数のメモリセルを同時に感知するように構成されている。
本明細書の目的のために、明細書中の「実施形態」、「一実施形態」、「いくつかの実施形態」又は「別の実施形態」に対する言及は、異なる実施形態又は同一の実施形態について記述するために使用されることがある。
本明細書の目的のために、接続とは、直接的な接続又は間接的な接続(例えば、1つ又は複数の他の部分を介して)であり得る。場合によっては、ある要素が別の要素に接続されるか又は結合されると言及される場合、この要素は、他の要素に直接的に接続されてもよく、又は、介在要素を介して他の要素に間接的に接続されてもよい。ある要素が別の要素に直接的に接続されていると言及される場合、この要素と他の要素との間には介在要素は存在しない。2つのデバイスは、それらが互いの間で電子信号を交換することができるように直接的に又は間接的に接続されている場合、「通信状態」にある。
本明細書の目的のために、「基づいて」という用語は、「少なくとも部分的に基づいて」と読むことができる。
本明細書の目的のために、追加の文脈がない、「第1の」物体、「第2の」物体、及び「第3の」物体などの数値的な用語の使用は、物体の順序を示唆するものではなく、代わりに、異なる物体を識別するための識別目的で使用されることがある。
本明細書の目的のために、物体の「組」という用語は、複数の物体のうちの1つ又は複数の物体の「組」を指すことがある。
前述の詳細な説明は、例示及び説明の目的のために提示されている。前述の詳細な説明は、網羅的であること、又は開示された正確な形態に限定することを意図したものではない。上記の教示に鑑みて多くの修正及び変形が可能である。説明した実施形態は、提案した技術の原理及びその実際の用途を最もよく説明するために選択されたものであり、それによって、当業者が様々な実施形態で、企図される特定の使用法に適するように様々な修正を伴って、この技術を最も良いように利用することを可能にする。本範囲は、本明細書に添付の特許請求の範囲によって定義されることが意図される。

Claims (15)

  1. 装置であって、
    1つ以上のビット線に沿って接続された複数のマルチレベルメモリセルであり、かつ、導電層によって分離された複数の誘電体層で形成された前記複数のマルチレベルメモリセルのそれぞれに接続するように構成された制御回路であって、前記制御回路は、
    対応する複数の書き込み電圧のうちの1つを印加して、書き込み選択メモリセルの前記誘電体層のうちの1つ以上を破壊することによって、前記書き込み選択メモリセルを複数のデータ状態のうちの1つに個別にプログラムし、
    第1の複数のメモリセルに印加された対応する1組の第1の複数の入力電圧に応答して、第1のビット線に沿って接続された前記第1の複数のメモリセルを同時に感知するように構成されている、制御回路を備える、装置。
  2. 前記制御回路は、
    前記第1の複数のメモリセルに印加された前記1組の対応する第1の複数の入力電圧に応答して、前記第1のビット線内の電流の値を受信し、前記電流からマルチビット出力値を決定するように構成されている、アナログ・デジタル変換器を含む、請求項1に記載の装置。
  3. 前記制御回路が制御ダイ上に形成され、前記装置は、
    前記メモリセルを含むメモリダイであって、前記メモリダイは、前記制御ダイとは別個に形成され、前記制御ダイに接合されている、メモリダイを更に備える、請求項1に記載の装置。
  4. メモリダイがメモリセルのアレイを含み、前記メモリセルのアレイは、
    前記メモリセルと、
    前記第1のビット線を含む複数のビット線と、
    複数のワード線と、を含み、前記アレイは、前記メモリセルのそれぞれが、前記ビット線のうちの対応するビット線と前記ワード線のうちの対応するワード線との間に接続されるクロスポイントアーキテクチャに従って形成されている、請求項3に記載の装置。
  5. 前記メモリセルのそれぞれは、
    複数の誘電体層であって、前記誘電体層のそれぞれは、複数の異なる実効破壊電圧のうちの1つを有し、かつ複数の異なる抵抗値のうちの1つを有するように形成され、そのため、前記誘電体層の前記抵抗値が高いほど、前記誘電体層の前記実効破壊電圧が低くなる、複数の誘電体層と、
    1つ以上の導電層であって、前記導電層は、前記誘電体層と交互になっている、1つ以上の導電層と、を含む、請求項4に記載の装置。
  6. 前記メモリセルのそれぞれは、
    複数の階層であって、前記階層のそれぞれは1つ以上の誘電体層を有し、前記誘電体層のそれぞれは、共通の実効破壊電圧を有し、かつ複数の抵抗値のうちの1つを有するように形成され、同じ階層の前記誘電体層は、同じ抵抗値を有するように形成され、異なる階層の前記誘電体層は、異なる抵抗値を有するように形成され、そのため、前記階層内の層数が多いほど、前記階層の前記誘電体層の前記抵抗値は低くなる、複数の階層と、
    複数の導電層であって、前記導電層は前記誘電体層と交互になっている、複数の導電層と、を含む、請求項4に記載の装置。
  7. 選択ビット線に沿った1つ以上の書き込み選択メモリセルを第1のデータ状態にプログラムするために、前記制御回路が、
    前記選択ビット線を低電圧レベルにバイアスすることと、
    前記書き込み選択メモリセルに対応する前記ワード線を前記第1のデータ状態に対応する前記書き込み電圧にバイアスすることと、
    前記書き込み選択メモリセルに対応しないワード線、及び前記選択ビット以外のビット線を、前記低電圧レベルと前記第1のデータ状態に対応する前記書き込み電圧との中間の電圧レベルにバイアスすることと、を同時に行うように構成されている、請求項4に記載の装置。
  8. 前記制御回路は、
    前記ビット線に接続され、前記ワード線に印加された前記1組の対応する入力電圧に応答して、前記ビット線のそれぞれの中の電流の値を受信し、前記電流のそれぞれからマルチビット出力値を決定するように構成されている、1つ以上のアナログ・デジタル変換器を含む、請求項4に記載の装置。
  9. 前記制御回路は、
    前記1つ以上のアナログ・デジタル変換器に接続され、前記マルチビット出力値を蓄積するように構成されているデジタル計算回路を含む、請求項8に記載の装置。
  10. 前記メモリセルは、ニューラルネットワークの層の重みを記憶するように構成されており、前記制御回路は、
    前記ニューラルネットワークの前記層に対するベクトル入力値を受信することであって、入力値の前記ベクトルは複数の成分を有する、ことと、
    前記入力ベクトルの前記成分を1組の電圧レベルに変換することと、
    前記1組の電圧レベルのそれぞれを対応する1組の前記ワード線に印加することと、を行うように更に構成されている、請求項9に記載の装置。
  11. 前記制御回路は、
    前記1組の電圧レベルのそれぞれを前記対応する1組の前記ワード線に印加することに応答して、複数の前記ビット線からの前記マルチビット出力を同時に蓄積するように更に構成されている、請求項10に記載の装置。
  12. 制御回路は、
    ニューラルネットワークの層に対する複数の重み値を受信し、
    前記重み値を前記メモリセルにデータ状態としてプログラムし、
    前記重み値を前記メモリセルにプログラムすることに続いて、前記ニューラルネットワークの前記層に対する入力ベクトルを受信し、
    前記入力ベクトルを前記第1の複数の入力電圧に変換し、
    前記第1の複数の入力電圧を前記メモリセルに印加することによって、前記入力ベクトルと前記重み値とのアレイ内乗算を実行するように更に構成されている、請求項1に記載の装置。
  13. 方法であって、
    1つ以上の第1の選択メモリセルを複数のデータ状態のうちの第1のデータ状態に同時にプログラムするためにメモリセルのアレイをバイアスすることであって、前記アレイは、前記メモリセルが対応するビット線と対応するビット線との間に接続され、前記メモリセルのそれぞれが、導電層によって分離された複数の誘電体層から形成されるクロスポイントアーキテクチャに従って形成され、前記バイアスは、
    前記1つ以上の第1の選択メモリセルに対応する前記アレイのビット線を低電圧値に設定することと、
    前記1つ以上の第1の選択メモリセルに対応しない前記アレイのビット線を第1の中間電圧レベルに設定することと、
    前記1つ以上の第1の選択メモリセルに対応しない前記アレイのワード線を前記第1の中間電圧レベルに設定することと、を含む、ことと、
    1つ以上の第1の選択メモリセルを前記複数のデータ状態のうちの前記第1のデータ状態に同時にプログラムするために前記メモリセルのアレイをバイアスすると同時に、前記1つ以上の第1の選択メモリセルに対応する前記アレイのワード線に第1の書き込み電圧を印加することであって、前記第1の書き込み電圧は、前記第1の選択メモリセルを前記複数のデータ状態のうちの前記第1のデータ状態にプログラムするために、前記第1の選択メモリセルの前記誘電体層のうちの1つ以上を破壊するために選択され、前記第1の中間電圧レベルは、前記低電圧値と前記第1の書き込み電圧との中間である、ことと、を含む、方法。
  14. 前記第1の選択メモリセルを同時にプログラムするために前記メモリセルのアレイをバイアスすることに続いて、前記第1の選択メモリセルに対応する前記アレイの前記ビット線に接続された1つ以上の第2の選択メモリセルを、複数のデータ状態のうちの第2のデータ状態に同時にプログラムするために前記アレイをバイアスすることであって、1つ以上の第2の選択メモリセルを同時にプログラムするために前記アレイをバイアスすることは、
    前記1つ以上の第1の選択メモリセルに対応する前記アレイのビット線を低電圧値に設定することと、
    前記1つ以上の第2の選択メモリセルに対応しない前記アレイのビット線を第2の中間電圧レベルに設定することと、
    前記1つ以上の第2の選択メモリセルに対応しない前記アレイのワード線を前記第2の中間電圧レベルに設定することと、を含む、ことと、
    1つ以上の第2の選択メモリセルを前記複数のデータ状態のうちの前記第2のデータ状態に同時にプログラムするために前記メモリセルのアレイをバイアスすると同時に、前記第2の選択メモリセルに対応する前記アレイのワード線に第2の書き込み電圧を印加することであって、前記第2の書き込み電圧は、前記第2の選択メモリセルを前記複数のデータ状態のうちの前記第2のデータ状態にプログラムするために、前記第2の選択メモリセルの前記誘電体層のうちの1つ以上を破壊するために選択され、前記第2の中間電圧レベルは、前記低電圧値と前記第2の書き込み電圧との中間である、ことと、を更に含む、請求項13に記載の方法。
  15. 前記アレイの前記メモリセルは、ニューラルネットワークの層の重みを記憶するようにプログラムされており、前記方法は、
    前記ニューラルネットワークの前記層に対する入力ベクトルを受信することと、
    前記入力ベクトルと前記ニューラルネットワークの前記重みとのアレイ内乗算を実行することと、
    入力ベクトルを1組の電圧レベルに変換することと、
    前記1組の電圧レベルを前記アレイの前記ワード線に印加することと、を更に含む、請求項13に記載の方法。
JP2021103405A 2020-10-02 2021-06-22 マルチレベル超低電力推論エンジンアクセラレータ Active JP7152562B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/061,820 US11289171B1 (en) 2020-10-02 2020-10-02 Multi-level ultra-low power inference engine accelerator
US17/061,820 2020-10-02

Publications (2)

Publication Number Publication Date
JP2022060145A JP2022060145A (ja) 2022-04-14
JP7152562B2 true JP7152562B2 (ja) 2022-10-12

Family

ID=80738198

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021103405A Active JP7152562B2 (ja) 2020-10-02 2021-06-22 マルチレベル超低電力推論エンジンアクセラレータ

Country Status (6)

Country Link
US (1) US11289171B1 (ja)
JP (1) JP7152562B2 (ja)
KR (1) KR102605890B1 (ja)
CN (1) CN114388039A (ja)
DE (1) DE102021115503A1 (ja)
TW (1) TWI783538B (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102318819B1 (ko) * 2020-06-10 2021-10-27 연세대학교 산학협력단 멀티 비트 가중치의 연산을 위한 인 메모리 장치
US20220366224A1 (en) * 2021-05-13 2022-11-17 Micron Technology, Inc. Binary neural network in memory
KR102540226B1 (ko) * 2022-07-28 2023-06-07 인하대학교 산학협력단 3진 신경망 가속기 소자 및 그 동작 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005123575A (ja) 2003-08-15 2005-05-12 Macronix Internatl Co Ltd プログラマブル消去不要メモリに対するプログラミング方法
JP2013004143A (ja) 2011-06-16 2013-01-07 Toshiba Corp 不揮発性半導体記憶装置
WO2019135839A1 (en) 2018-01-03 2019-07-11 Silicon Storage Technolgy, Inc. Programmable neuron for analog non-volatile memory in deep learning artificial neural network
JP2020155727A (ja) 2019-03-22 2020-09-24 ソニーセミコンダクタソリューションズ株式会社 半導体装置及びこれを備えた電子機器

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5677867A (en) * 1991-06-12 1997-10-14 Hazani; Emanuel Memory with isolatable expandable bit lines
US5268319A (en) * 1988-06-08 1993-12-07 Eliyahou Harari Highly compact EPROM and flash EEPROM devices
US6151248A (en) * 1999-06-30 2000-11-21 Sandisk Corporation Dual floating gate EEPROM cell array with steering gates shared by adjacent cells
KR100546179B1 (ko) 2003-07-30 2006-01-24 주식회사 하이닉스반도체 멀티비트 제어 기능을 갖는 불휘발성 강유전체 메모리 장치
US8305807B2 (en) 2010-07-09 2012-11-06 Sandisk Technologies Inc. Detection of broken word-lines in memory arrays
US20130148404A1 (en) * 2011-12-08 2013-06-13 Abhijit Bandyopadhyay Antifuse-based memory cells having multiple memory states and methods of forming the same
US9953725B2 (en) * 2012-02-29 2018-04-24 Samsung Electronics Co., Ltd. Semiconductor memory devices and methods of operating the same
US9082502B2 (en) 2013-10-10 2015-07-14 Sandisk Technologies Inc. Bit line and compare voltage modulation for sensing nonvolatile storage elements
JP6273384B2 (ja) 2014-08-19 2018-01-31 サビック グローバル テクノロジーズ ビー.ブイ. マルチレベル動作を有する不揮発性強誘電体メモリセル
US9721662B1 (en) 2016-01-13 2017-08-01 Sandisk Technologies Llc Non-volatile memory with efficient programming
JP6608312B2 (ja) * 2016-03-08 2019-11-20 ルネサスエレクトロニクス株式会社 半導体装置およびその製造方法
KR102369715B1 (ko) 2017-06-12 2022-03-03 삼성전자주식회사 이차원 물질을 포함하는 비휘발성 메모리 소자 및 이를 포함하는 장치
US10664746B2 (en) 2018-07-17 2020-05-26 Macronix International Co., Ltd. Neural network system
EP3683833A4 (en) * 2018-08-30 2020-08-12 Shenzhen Weitongbo Technology Co., Ltd. STORAGE UNIT, STORAGE DEVICE, AND METHOD OF OPERATING A STORAGE UNIT
US10699764B1 (en) * 2018-12-14 2020-06-30 Nxp Usa, Inc. MRAM memory with OTP cells
TWI686803B (zh) 2019-06-04 2020-03-01 旺宏電子股份有限公司 可變電阻式記憶體之編程方法及記憶胞之電壓編程方法
US10892279B1 (en) * 2019-07-17 2021-01-12 Sandisk Technologies Llc NAND string containing separate hole and electron tunneling dielectric layers and methods for forming the same

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005123575A (ja) 2003-08-15 2005-05-12 Macronix Internatl Co Ltd プログラマブル消去不要メモリに対するプログラミング方法
JP2013004143A (ja) 2011-06-16 2013-01-07 Toshiba Corp 不揮発性半導体記憶装置
WO2019135839A1 (en) 2018-01-03 2019-07-11 Silicon Storage Technolgy, Inc. Programmable neuron for analog non-volatile memory in deep learning artificial neural network
JP2021509514A (ja) 2018-01-03 2021-03-25 シリコン ストーリッジ テクノロージー インコーポレイテッドSilicon Storage Technology, Inc. 深層学習人工ニューラルネットワークにおけるアナログ不揮発性メモリ用のプログラム可能なニューロン
JP2020155727A (ja) 2019-03-22 2020-09-24 ソニーセミコンダクタソリューションズ株式会社 半導体装置及びこれを備えた電子機器

Also Published As

Publication number Publication date
TWI783538B (zh) 2022-11-11
JP2022060145A (ja) 2022-04-14
CN114388039A (zh) 2022-04-22
TW202215437A (zh) 2022-04-16
US20220108759A1 (en) 2022-04-07
KR20220044642A (ko) 2022-04-11
DE102021115503A1 (de) 2022-04-07
US11289171B1 (en) 2022-03-29
KR102605890B1 (ko) 2023-11-24

Similar Documents

Publication Publication Date Title
US10643119B2 (en) Differential non-volatile memory cell for artificial neural network
US11657259B2 (en) Kernel transformation techniques to reduce power consumption of binary input, binary weight in-memory convolutional neural network inference engine
US10643705B2 (en) Configurable precision neural network with differential binary non-volatile memory cell structure
US11328204B2 (en) Realization of binary neural networks in NAND memory arrays
US11568200B2 (en) Accelerating sparse matrix multiplication in storage class memory-based convolutional neural network inference
JP7152562B2 (ja) マルチレベル超低電力推論エンジンアクセラレータ
US11568228B2 (en) Recurrent neural network inference engine with gated recurrent unit cell and non-volatile memory arrays
Luo et al. Accelerating deep neural network in-situ training with non-volatile and volatile memory based hybrid precision synapses
US11397885B2 (en) Vertical mapping and computing for deep neural networks in non-volatile memory
US12093812B2 (en) Ultralow power inference engine with external magnetic field programming assistance
US11544547B2 (en) Accelerating binary neural networks within latch structure of non-volatile memory devices
US20220398439A1 (en) Compute in memory three-dimensional non-volatile nand memory for neural networks with weight and input level expansions
CN110751276A (zh) 在nand存储器阵列中实现具有三值输入和二值权重的神经网络
US11663471B2 (en) Compute-in-memory deep neural network inference engine using low-rank approximation technique
US20220366211A1 (en) Dropout in neutral networks using threshold switching selectors in non-volatile memories
US12079733B2 (en) Multi-precision digital compute-in-memory deep neural network engine for flexible and energy efficient inferencing
US20220358354A1 (en) Architecture design for ensemble binary neural network (ebnn) inference engine on single-level memory cell arrays

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210622

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20210706

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20211027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220517

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220812

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220830

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220929

R150 Certificate of patent or registration of utility model

Ref document number: 7152562

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150