TWI742508B - 用於驗證在深度學習人工神經網路中在模擬神經記憶體中之非揮發性記憶體單元的程式化操作期間儲存之值的演算法及電路 - Google Patents
用於驗證在深度學習人工神經網路中在模擬神經記憶體中之非揮發性記憶體單元的程式化操作期間儲存之值的演算法及電路 Download PDFInfo
- Publication number
- TWI742508B TWI742508B TW109100679A TW109100679A TWI742508B TW I742508 B TWI742508 B TW I742508B TW 109100679 A TW109100679 A TW 109100679A TW 109100679 A TW109100679 A TW 109100679A TW I742508 B TWI742508 B TW I742508B
- Authority
- TW
- Taiwan
- Prior art keywords
- output
- volatile memory
- voltage
- memory unit
- array
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 250
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 38
- 238000004422 calculation algorithm Methods 0.000 title abstract description 18
- 230000001537 neural effect Effects 0.000 title description 16
- 238000013135 deep learning Methods 0.000 title description 5
- 238000000034 method Methods 0.000 claims description 19
- 238000012795 verification Methods 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 4
- 210000004027 cell Anatomy 0.000 description 197
- 239000013598 vector Substances 0.000 description 73
- 230000006870 function Effects 0.000 description 59
- 210000002569 neuron Anatomy 0.000 description 56
- 210000000225 synapse Anatomy 0.000 description 38
- 238000007667 floating Methods 0.000 description 37
- 230000005284 excitation Effects 0.000 description 28
- 238000003491 array Methods 0.000 description 23
- 230000003044 adaptive effect Effects 0.000 description 21
- 239000011159 matrix material Substances 0.000 description 21
- 239000003990 capacitor Substances 0.000 description 14
- 238000006243 chemical reaction Methods 0.000 description 12
- 238000012360 testing method Methods 0.000 description 11
- 239000000463 material Substances 0.000 description 10
- 239000000758 substrate Substances 0.000 description 10
- 102100036301 C-C chemokine receptor type 7 Human genes 0.000 description 7
- 102100031658 C-X-C chemokine receptor type 5 Human genes 0.000 description 7
- 101000716065 Homo sapiens C-C chemokine receptor type 7 Proteins 0.000 description 7
- 101000922405 Homo sapiens C-X-C chemokine receptor type 5 Proteins 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000011176 pooling Methods 0.000 description 6
- 238000009966 trimming Methods 0.000 description 6
- 239000004065 semiconductor Substances 0.000 description 5
- 230000000295 complement effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000007787 long-term memory Effects 0.000 description 4
- 230000006403 short-term memory Effects 0.000 description 4
- 230000000946 synaptic effect Effects 0.000 description 4
- 210000004205 output neuron Anatomy 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 229910052710 silicon Inorganic materials 0.000 description 3
- 239000010703 silicon Substances 0.000 description 3
- 102100023226 Early growth response protein 1 Human genes 0.000 description 2
- 101001049697 Homo sapiens Early growth response protein 1 Proteins 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 239000013078 crystal Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000010304 firing Methods 0.000 description 2
- 150000004767 nitrides Chemical class 0.000 description 2
- 230000005641 tunneling Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 210000003169 central nervous system Anatomy 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 210000001153 interneuron Anatomy 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 210000005036 nerve Anatomy 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000010396 two-hybrid screening Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits or methods to verify correct programming of nonvolatile memory cells
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
- G06N3/065—Analogue means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/54—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0408—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0408—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors
- G11C16/0425—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors comprising cells containing a merged floating gate and select transistor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0408—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors
- G11C16/0433—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors comprising cells containing a single floating gate transistor and one or more separate select transistors
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/24—Bit-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C27/00—Electric analogue stores, e.g. for storing instantaneous values
- G11C27/005—Electric analogue stores, e.g. for storing instantaneous values with non-volatile charge storage, e.g. on floating gate or MNOS
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/12—Bit line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, equalising circuits, for bit lines
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/08—Word line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, for word lines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Microelectronics & Electronic Packaging (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Computer Hardware Design (AREA)
- Non-Volatile Memory (AREA)
- Read Only Memory (AREA)
- Semiconductor Memories (AREA)
- Control Of Electrical Variables (AREA)
- Networks Using Active Elements (AREA)
Abstract
揭示用於藉由將所儲存權重轉換成複數個數位輸出位元來在一非揮發性記憶體單元之一多層級程式化操作之後驗證一神經網路中之該非揮發性記憶體單元中之該所儲存權重的各種演算法。揭示用於實施該等演算法之電路,諸如一可調參考電流源。
Description
[優先權主張]本申請案主張2019年1月29日申請且標題為「用於深度學習人工神經網路中之模擬神經記憶體之精確程式化電路(Precision Programming Circuit For Analog Neural Memory In Deep Learning Artificial Neural Network)」之美國臨時專利申請案第62/798,394號及2019年3月21日申請且標題為「用於驗證在深度學習人工神經網路中在模擬神經記憶體中之非揮發性記憶體單元的程式化操作期間儲存之值的演算法及電路(Algorithms And Circuitry For Verifying A Value Stored During A Programming Operation Of A Non-volatile Memory Cell In An Analog Neural Memory In Deep Learning Artificial Neural Network)」之美國專利申請案第16/360,955號的優先權。
揭示用於驗證在模擬神經記憶體中之程式化操作期間儲存在非揮發性記憶體單元中之值的眾多驗證演算法及電路。
人工神經網路模擬生物神經網路(動物之中樞神經系統,特定言之,大腦)且用於估計或估算可取決於大量輸入且大體上未知的功能。人工神經網路通常包括彼此交換訊息之互連「神經元」層。
圖1例示人工神經網路,其中圓表示輸入或神經元層。連接(被稱作突觸)由箭頭表示,且具有可基於經驗進行調諧之數值權重。此使得神經網路適應輸入且能夠學習。典型地,神經網路包括一層多個輸入。典型地存在一或多個中間神經元層及提供神經網路之輸出的輸出神經元層。每一層級處之神經元基於自突觸所接收之資料而個別地或共同地作出決策。
用於高效能資訊處理之人工神經網路之研發中的主要挑戰中之一者為缺乏適當的硬體技術。實際上,切實可行的神經網路依賴於極大量數目之突觸,從而可達成神經元之間的高連接性,即極高計算並行性。原則上,此類複雜性可利用數位超級電腦或專用圖形處理單元叢集來達成。然而,除了高成本之外,此等方法與生物網路相比亦受中等能效困擾,生物網路消耗少得多的能量,主要因為其執行低精確度模擬計算。CMOS模擬電路已用於人工神經網路,但鑒於需要大量神經元及突觸,故大多數CMOS實施之突觸已過於龐大。
在公開為美國專利公開案第2017/0337466號之美國專利申請案第15/594,439號中,申請人先前揭示一種人工(模擬)神經網路,其利用一或多個非揮發性記憶體陣列作為突觸,該美國專利公開案以引用之方式併入。非揮發性記憶體陣列作為模擬神經形態記憶體操作。神經網路構件包括第一複數個突觸,該第一複數個突觸經組構以接收第一複數個輸入且自該第一複數個輸入產生第一複數個輸出,且第一複數個神經元經組構以接收第一複數個輸出。第一複數個突觸包括複數個記憶體單元,其中該等記憶體單元中之每一者包括:形成於半導體基板中之間隔開的源極區及汲極區,其中通道區在源極區與汲極區之間延伸;浮動閘極,其裝設於通道區之第一部分上方且與該第一部分絕緣;以及非浮動閘極,其裝設於通道區之第二部分上方且與該第二部分絕緣。複數個記憶體單元中之每一者經組構以儲存對應於浮動閘極上之電子數目的權重值。複數個記憶體單元經組構以使第一複數個輸入乘以所儲存權重值以產生第一複數個輸出。
模擬神經形態記憶體系統中使用之每一非揮發性記憶體單元必須經抹除及程式化以在浮動閘極中保持極特定且精確的電荷量,亦即,電子數目。舉例而言,每一浮動閘極必須保持N個不同值中之一者,其中N為可由每一單元指示之不同權重之數目。N之實施例包括16、32、64、128及256。
VMM系統中之一個挑戰為準確地程式化VMM之記憶體單元的能力,此係因為將需要程式化選定單元之浮動閘極以保持極特定且精確的電荷量,使得每一浮動閘極可保持不同N值中之一者。一個相關挑戰為驗證經程式化值處於既定待程式化之值的可接受範圍內的能力。
需要改良用於驗證在程式化操作期間儲存在非揮發性記憶體單元中之值之準確度的驗證演算法及電路。
揭示用於藉由將所儲存權重轉換成複數個數位輸出位元來在一非揮發性記憶體單元之一多層級程式化操作之後驗證一神經網路中之該非揮發性記憶體單元中之該所儲存權重的各種演算法。揭示用於實施該等演算法之電路,諸如一可調參考電流源。
本發明之人工神經網路利用CMOS技術與非揮發性記憶體陣列之組合。
非揮發性記憶體單元
數位非揮發性記憶體為熟知的。舉例而言,以引用之方式併入本文中的美國專利5,029,130 (「'130專利」)揭示了一種分離閘式非揮發性記憶體單元陣列,其為一種類型之快閃記憶體單元。此類記憶體單元210顯示於圖2中。每一記憶體單元210包括形成於半導體基板12中之源極區14及汲極區16,其中通道區18在源極區14與汲極區16之間。浮動閘極20形成於通道區18之第一部分上方且與該第一部分絕緣(且控制該第一部分之導電性),且形成於源極區14之一部分上方。字線端子22 (其典型地耦接至字線)具有裝設於通道區18之第二部分上方且與該第二部分絕緣(且控制該第二部分之導電性)的第一部分,及向上且在浮動閘極20上方延伸之第二部分。浮動閘極20及字線端子22藉由閘極氧化物與基板12絕緣。位元線24耦接至汲極區16。
記憶體單元210係藉由將高正電壓置於字線端子22上來抹除(其中電子自浮動閘極移除),此使得浮動閘極20上之電子經由富爾-諾罕(Fowler-Nordheim)穿隧自浮動閘極20穿過中間絕緣件穿隧至字線端子22。
記憶體單元210係藉由將正電壓置於字線端子22上且將正電壓置於源極區14上來程式化(其中電子置於浮動閘極上)。電子電流將自源極區14朝向汲極區16流動。電子在其達至字線端子22與浮動閘極20之間的間隙時將加速且變熱。經加熱電子中之一些將經由閘極氧化物注入至浮動閘極20上,此係歸因於來自浮動閘極20之靜電引力。
記憶體單元210係藉由將正讀取電壓置於汲極區16及字線端子22上來讀取(此接通通道區18之在字線端子下方的部分)。若浮動閘極20帶正電(亦即,電子經抹除),則通道區18之在浮動閘極20下方的部分亦接通,且電流將流過通道區18,此被感測為經抹除或「1」狀態。若浮動閘極20帶負電(亦即,用電子程式化),則通道區之在浮動閘極20下方的部分大部分或完全斷開,且電流將不流過(或將有極少電流流過)通道區18,此被感測為經程式化或「0」狀態。
表1描繪可應用於記憶體單元110之端子以用於執行讀取、抹除及程式化操作的典型電壓範圍:
表1:圖2之快閃記憶體單元210之操作
WL | BL | SL | |
讀取 | 2-3V | 0.6-2V | 0V |
抹除 | ~11-13V | 0V | 0V |
程式化 | 1-2V | 1-3µA | 9-10V |
圖3顯示記憶體單元310,其類似於圖2之記憶體單元210,但增加了控制閘極(CG) 28。控制閘極28在程式化中經偏壓為高電壓,例如10V,在抹除中經偏壓為低或負電壓,例如0v/-8V,在讀取中經偏壓為低或中間範圍電壓,例如0v/2.5V。其他端子係以類似於圖2之方式偏壓。
圖4描繪四閘極記憶體單元410,其包含源極區14、汲極區16、在通道區18之第一部分上方的浮動閘極20、在通道區18之第二部分上方的選擇閘極22 (典型地耦接至字線WL)、在浮動閘極20上方之控制閘極28,及在源極區14上方之抹除閘極30。此組構描繪於美國專利6,747,310中,其出於所有目的以引用之方式併入本文中。此處,除浮動閘極20以外,所有閘極皆為非浮動閘極,此意謂該等閘極電連接或可電連接至電壓源。程式化係藉由來自通道區18之經加熱電子將自身注入至浮動閘極20上來執行。抹除係藉由電子自浮動閘極20穿隧至抹除閘極30來執行。
表2描繪可應用於記憶體單元310之端子以用於執行讀取、抹除及程式化操作的典型電壓範圍:
表2:圖4之快閃記憶體單元410之操作
WL/SG | BL | CG | EG | SL | |
讀取 | 1.0-2V | 0.6-2V | 0-2.6V | 0-2.6V | 0V |
抹除 | -0.5V/0V | 0V | 0V/-8V | 8-12V | 0V |
程式化 | 1V | 1µA | 8-11V | 4.5-9V | 4.5-5V |
圖5顯示記憶體單元510,其類似於圖4之記憶體單元410,不同之處在於記憶體單元510不含有抹除閘極EG。抹除係藉由將基板18偏壓至高電壓且將控制閘極CG 28偏壓至低或負電壓來執行。替代地,抹除係藉由將字線22偏壓至正電壓且將控制閘極28偏壓至負電壓來執行。程式化及讀取類似於圖4之程式化及讀取。
圖6描繪三閘極記憶體單元610,其為另一類型之快閃記憶體單元。記憶體單元610與圖4之記憶體單元410相同,不同之處在於記憶體單元610不具有單獨控制閘極。抹除操作(其中經由使用抹除閘極來進行抹除)及讀取操作類似於圖4之抹除操作及讀取操作,不同之處在於未施加控制閘極偏壓。程式化操作亦在無控制閘極偏壓之情況下進行,且因此,在程式化操作期間必須在源極線上施加較高電壓以補償缺少控制閘極偏壓。
表3描繪可應用於記憶體單元610之端子以用於執行讀取、抹除及程式化操作的典型電壓範圍:
表3:圖6之快閃記憶體單元610之操作
WL/SG | BL | EG | SL | |
讀取 | 0.7-2.2V | 0.6-2V | 0-2.6V | 0V |
抹除 | -0.5V/0V | 0V | 11.5V | 0V |
程式化 | 1V | 2-3µA | 4.5V | 7-9V |
圖7描繪堆疊式閘極記憶體單元710,其為另一類型之快閃記憶體單元。記憶體單元710類似於圖2之記憶體單元210,不同之處在於浮動閘極20在整個通道區18上方延伸,且控制閘極22 (其在此處將耦接至字線)在浮動閘極20上方延伸,浮動閘極20藉由絕緣層(圖中未示)與控制閘極22間隔開。抹除、程式化及讀取操作以與先前針對記憶體單元210所描繪之方式類似的方式操作。
表4描繪可應用於記憶體單元710之端子及基板12以用於執行讀取、抹除及程式化操作的典型電壓範圍:
表4:圖7之快閃記憶體單元710之操作
CG | BL | SL | 基板 | |
讀取 | 2-5V | 0.6 - 2V | 0V | 0V |
抹除 | -8至-10V/0V | FLT | FLT | 8-10V / 15-20V |
程式化 | 8-12V | 3-5V | 0V | 0V |
為了在人工神經網路中利用包含上文所描繪之非揮發性記憶體單元類型中之一者的記憶體陣列,進行兩個修改。首先,線經組構以使得每一記憶體單元可個別地程式化、抹除及讀取而不會不利地影響陣列中之其他記憶體單元之記憶體狀態,如下文進一步解釋。其次,提供記憶體單元之連續(模擬)程式化。
具體言之,陣列中之每一記憶體單元之記憶體狀態(亦即,浮動閘極上之電荷)可連續地自完全抹除狀態改變為完全程式化狀態,其方式為獨立的且對其他記憶體單元之干擾最少。在另一具體例中,陣列中之每一記憶體單元之記憶體狀態(亦即,浮動閘極上之電荷)可連續地自完全程式化狀態改變為完全抹除狀態,且反之亦然,其方式為獨立的且對其他記憶體單元之干擾最少。此意謂單元儲存為模擬的,或至少可儲存許多離散值(諸如16或64個不同值)中之一者,此允許對記憶體陣列中之所有單元進行極精確且個別的調諧,且此使得記憶體陣列對於儲存神經網路之突觸權重及對該等突觸權重進行精細調諧調整為理想的。
本文中所描繪之方法及手段可應用於其他非揮發性記憶體技術,諸如但不限於SONOS(氧化矽-氮化物-氧化物-矽,氮化物中之電荷捕捉)、MONOS(金屬-氧化物-氮化物-氧化物-矽,氮化物中之金屬電荷捕捉)、ReRAM (電阻式ram)、PCM(相變記憶體)、MRAM(磁性ram)、FeRAM(鐵電ram)、OTP(雙層級或多層級一次性可程式化)及CeRAM (相關電子ram)。本文中所描繪之方法及手段可應用於用於神經網路之揮發性記憶體技術,諸如但不限於SRAM、DRAM及揮發性突觸單元。
採用非揮發性記憶體單元陣列之神經網路
圖8在概念上例示利用本發明具體例之非揮發性記憶體陣列的神經網路之非限制性實施例。此實施例將非揮發性記憶體陣列神經網路用於面部辨識應用,但任何其他適當應用皆可使用基於非揮發性記憶體陣列之神經網路來實施。
S0為輸入層,對於此實施例為具有5位元精確度之32×32像素RGB影像(亦即,三個32×32像素陣列,每一色彩R、G及B一個陣列,每一像素為5位元精確度)。自輸入層S0行進至層C1之突觸CB1在一些情況下施加不同權重集合且在其他情況下共用權重,且用3×3像素重疊濾波器(核心)掃描輸入影像,使濾波器移位1個像素(或多於1個像素,如由模型指定)。具體言之,將影像(亦即,稱作濾波器或核心)之3×3部分中之9個像素的值提供至突觸CB1,其中使此9個輸入值乘以適當權重,且在對彼乘法之輸出求和之後,判定單一輸出值且由第一突觸CB1提供該單一輸出值以用於產生特徵圖層C1中之一者的像素。3×3濾波器隨後在輸入層S0內向右移位一個像素(亦即,在右側上添加三個像素之行,且在左側上丟棄三個像素之行),其中將此新定位濾波器中之9個像素值提供至突觸CB1,其中使該等像素值乘以相同權重,且藉由相關聯突觸來判定第二單一輸出值。針對所有三個色彩且針對所有位元(精確度值)繼續此程序,直至3×3濾波器跨越輸入層S0之整個32×32像素影像掃描。隨後使用不同權重集合重複該程序以產生C1之不同特徵圖,直至已計算層C1之所有特徵圖。
在本發明實施例中,在層C1中,存在16個特徵圖,其中每一特徵圖具有30×30個像素。每一像素為自使輸入與核心相乘提取之新特徵像素,且因此每一特徵圖為二維陣列,且因此在此實施例中,層C1構成二維陣列之16個層(應謹記,本文中所提及之層及陣列為邏輯關係,未必為實體關係,亦即,陣列未必定向於物理二維陣列中)。層C1中之16個特徵圖中之每一者由施加至濾波器掃描之十六個不同突觸權重集合中之一者產生。C1特徵圖可皆針對同一影像特徵之不同態樣,諸如邊界識別。舉例而言,第一圖(使用第一權重集合產生,對於用以產生此第一圖之所有掃描為共用的)可識別圓形邊緣,第二圖(使用不同於第一權重集合之第二權重集合產生)可識別矩形邊緣,或某些特徵之縱橫比等。
在自層C1進入層S1之前應用激發函數P1 (池化(pooling)),其池化來自每一特徵圖中之連續非重疊2×2區的值。池化函數之目的為使附近位置達到平均數(或亦可使用最大函數),以例如降低邊緣位置之相依性且在進入下一級之前縮減資料大小。在層S1處,存在16個15×15特徵圖(亦即,各自具有15×15個像素之十六個不同陣列)。自層S1進入層C2之突觸CB2用4×4濾波器掃描S1中之圖,其中濾波器移位1個像素。在層C2處,存在22個12×12特徵圖。在自層C2進入層S2之前應用激發函數P2 (池化),其池化來自每一特徵圖中之連續非重疊2×2區的值。在層S2處,存在22個6×6特徵圖。在自層S2進入層C3之突觸CB3處應用激發函數(池化),其中層C3中之每一神經元經由CB3之各別突觸連接至層S2中之每一圖。在層C3處,存在64個神經元。自層C3進入輸出層S3之突觸CB4將C3完全連接至S3,亦即,層C3中之每一神經元連接至層S3中之每一神經元。S3處之輸出包括10個神經元,其中最高輸出神經元判定類別。此輸出可例如指示原始影像之內容之識別或分類。
每一突觸層係使用非揮發性記憶體單元之陣列或陣列之一部分來實施。
圖9為可用於彼目的之陣列的方塊圖。向量乘矩陣乘法(VMM)陣列32包括非揮發性記憶體單元,且用作一個層與下一層之間的突觸(諸如圖6中之CB1、CB2、CB3及CB4)。具體言之,VMM陣列32包括非揮發性記憶體單元陣列33、抹除閘極及字線閘極解碼器34、控制閘極解碼器35、位元線解碼器36及源極線解碼器37,該等構件對非揮發性記憶體單元陣列33之各別輸入進行解碼。至VMM陣列32之輸入可來自抹除閘極及字線閘極解碼器34或來自控制閘極解碼器35。在此實施例中,源極線解碼器37亦對非揮發性記憶體單元陣列33之輸出進行解碼。替代地,位元線解碼器36可對非揮發性記憶體單元陣列33之輸出進行解碼。
非揮發性記憶體單元陣列33用於兩個目的。首先,其儲存將由VMM陣列32使用之權重。其次,非揮發性記憶體單元陣列33有效地使輸入乘以儲存於非揮發性記憶體單元陣列33中之權重,且按輸出線(源極線或位元線)將結果相加以產生輸出,該輸出將為至下一層之輸入或至最終層之輸入。藉由執行乘法及加法函數,非揮發性記憶體單元陣列33消除對分開的乘法及加法邏輯電路之需求,且由於其就地記憶體計算而亦為功率高效的。
將非揮發性記憶體單元陣列33之輸出供應至差分求和器(諸如求和運算放大器或求和電流鏡) 38,其對非揮發性記憶體單元陣列33之輸出求和以創建用於彼卷積之單一值。差分求和器38經配置以執行正權重及負權重之求和。
隨後將差分求和器38之總計輸出值供應至對輸出進行整流之激發函數電路39。激發函數電路39可提供S型(sigmoid)、雙曲正切(tanh)、ReLU函數,或任何其他非線性函數。激發函數電路39之經整流輸出值變成下一層(例如圖8中之C1)之特徵圖之元素,且隨後應用於下一突觸以產生下一特徵圖層或最終層。因此,在此實施例中,非揮發性記憶體單元陣列33構成複數個突觸(其自前一神經元層或自諸如影像資料庫之輸入層接收該等突觸之輸入),且求和器38及激發函數電路39構成複數個神經元。
至圖9中之VMM陣列32的輸入(WLx、EGx、CGx且選擇地BLx及SLx)可為模擬層級、二進位層級、數位脈衝(在此情況下,可能需要脈衝至模擬轉換器PAC以將脈衝轉換至適當輸入模擬層級)或數位位元(在此情況下,提供DAC以將數位位元轉換至適當輸入模擬層級),且輸出可為模擬層級、二進位層級、數位脈衝或數位位元(在此情況下,提供輸出ADC以將輸出模擬層級轉換成數位位元)。
圖10為描繪VMM陣列32 (此處標記為VMM陣列32a、32b、32c、32d及32e)之眾多層之使用的方塊圖。如圖10中所示,標示為Inputx之輸入由數位至模擬轉換器31自數位轉換至模擬,且經提供至輸入VMM陣列32a。經轉換之模擬輸入可為電壓或電流。第一層之輸入D/A轉換可藉由使用函數或LUT (查找表)來進行,該函數或LUT將輸入Inputx映射至適用於輸入VMM陣列32a之矩陣乘法器的模擬層級。輸入轉換亦可由模擬至模擬(A/A)轉換器進行以將外部模擬輸入轉換為至輸入VMM陣列32a之經映射模擬輸入。輸入轉換亦可由數位至數位脈衝(D/P)轉換器進行以將外部數位輸入轉換為至輸入VMM陣列32a之一或多個經映射數位脈衝。
由輸入VMM陣列32a產生之輸出提供為至下一VMM陣列(隱藏層級1) 32b之輸入,該輸入又產生提供為至下一VMM陣列(隱藏層級2) 32c之輸入的輸出,等等。VMM陣列32之各種層充當卷積神經網路(convolutional neural network;CNN)之突觸及神經元的不同層。每一VMM陣列32a、32b、32c、32d及32e可為獨立、實體非揮發性記憶體陣列,或多個VMM陣列可利用同一實體非揮發性記憶體陣列之不同部分,或多個VMM陣列可利用同一實體非揮發性記憶體陣列之重疊部分。每一VMM陣列32a、32b、32c、32d及32e亦可針對其陣列或神經元之各種部分進行時間多工。圖10中所示之實施例含有五個層(32a、32b、32c、32d、32e):一個輸入層(32a)、兩個隱藏層(32b、32c)及兩個完全連接層(32d、32e)。熟悉本技藝者將瞭解,此僅為例示性的,且系統替代地可包含多於兩個隱藏層及多於兩個完全連接層。
向量乘矩陣乘法(VMM)陣列
圖11描繪神經元VMM陣列1100,其尤其適合於如圖3中所示之記憶體單元310,且用作輸入層與下一層之間的突觸及神經元部分。VMM陣列1100包含非揮發性記憶體單元之記憶體陣列1101及非揮發性參考記憶體單元之參考陣列1102 (在陣列之頂部處)。替代地,另一參考陣列可置於底部處。
在VMM陣列1100中,控制閘極線(諸如控制閘極線1103)在豎直方向上延伸(因此,列方向中之參考陣列1102與控制閘極線1103正交),且抹除閘極線(諸如抹除閘極線1104)在水平方向上延伸。此處,至VMM陣列1100之輸入設置於控制閘極線(CG0、CG1、CG2、CG3)上,且VMM陣列1100之輸出出現於源極線(SL0、SL1)上。在一個具體例中,僅使用偶數列,且在另一具體例中,僅使用奇數列。置於每一源極線(分別為SL0、SL1)上之電流對來自連接至彼特定源極線之記憶體單元的所有電流執行求和函數。
如本文中針對神經網路所描繪,VMM陣列1100之非揮發性記憶體單元(亦即,VMM陣列1100之快閃記憶體)較佳經組構以在次臨限區中操作。
字線或控制閘極可用作用於輸入電壓之記憶體單元之輸入。
替代地,本文中所描繪之VMM陣列之快閃記憶體單元可經組構以在線性區中操作:
Ids = β* (Vgs-Vth)*Vds;β = u*Cox*W/L
W = α (Vgs-Vth)
字線或控制閘極或位元線或源極線可用作在線性區中操作之記憶體單元的輸入。位元線或源極線可用作記憶體單元之輸出。
對於I至V線性轉換器,記憶體單元(諸如,參考記憶體單元或周邊記憶體單元)或在線性區中操作之電晶體或電阻器可用以將輸入/輸出電流線性地轉換成輸入/輸出電壓。
用於圖9之VMM陣列32的其他具體例描繪於美國專利申請案第15/826,345號中,該案以引用之方式併入本文中。如彼申請案中所描繪,源極線或位元線可用作神經元輸出(電流求和輸出)。替代地,本文中所描繪之VMM陣列之快閃記憶體單元可經組構以在飽和區中操作:;β = u*Cox*W/L
W = α (Vgs-Vth)2
字線、控制閘極或抹除閘極可用作在飽和區中操作之記憶體單元的輸入。位元線或源極線可用作輸出神經元之輸出。
替代地,本文中所描繪之VMM陣列之快閃記憶體單元可用於所有區或其組合(次臨限、線性或飽和)中。
圖12描繪神經元VMM陣列1200,其尤其適合於如圖2中所示之記憶體單元210,且用作輸入層與下一層之間的突觸。VMM陣列1200包含非揮發性記憶體單元之記憶體陣列1203、第一非揮發性參考記憶體單元之參考陣列1201及第二非揮發性參考記憶體單元之參考陣列1202。配置於陣列之行方向上的參考陣列1201及1202用以將流動至端子BLR0、BLR1、BLR2及BLR3中之電流輸入轉換成電壓輸入WL0、WL1、WL2及WL3。實際上,第一及第二非揮發性參考記憶體單元為二極體連接之貫穿多工器(diode-connected through multiplexor) 1214 (僅部分描繪),其中電流輸入流動至該等多工器中。參考單元經調諧(例如程式化)至目標參考層級。目標參考層級由參考迷你陣列矩陣(圖中未示)提供。
記憶體陣列1203用於兩個目的。首先,其儲存將由VMM陣列1200在其各別記憶體單元上使用之權重。其次,記憶體陣列1203有效地使輸入(亦即,在端子BLR0、BLR1、BLR2及BLR3中提供之電流輸入,其由參考陣列1201及1202轉換成輸入電壓以供應至字線WL0、WL1、WL2及WL3)乘以儲存於記憶體陣列1203中之權重,且隨後將所有結果(記憶體單元電流)相加以在各別位元線(BL0至BLN)上產生輸出,該輸出將為至下一層之輸入或至最終層之輸入。藉由執行乘法及加法函數,記憶體陣列1203消除對分開的乘法及加法邏輯電路之需求,且亦為功率高效的。此處,電壓輸入設置於字線WL0、WL1、WL2及WL3上,且輸出在讀取(推理)操作期間出現於各別位元線BL0至BLN上。置於位元線BL0至BLN中之每一者上之電流對來自連接至彼特定位元線之所有非揮發性記憶體單元的電流執行求和函數。
表5描繪用於VMM陣列1200之操作電壓。表中之行指示置於以下各者上之電壓:選定單元之字線、未選定單元之字線、選定單元之位元線、未選定單元之位元線、選定單元之源極線及未選定單元之源極線。列指示讀取、抹除及程式化之操作。
表5 圖12之VMM陣列1200之操作:
WL | WL-未選定 | BL | BL-未選定 | SL | SL-未選定 | |
讀取 | 1-3.5V | -0.5V/0V | 0.6-2V (I神經元) | 0.6V-2V/0V | 0V | 0V |
抹除 | ~5-13V | 0V | 0V | 0V | 0V | 0V |
程式化 | 1-2V | -0.5V/0V | 0.1-3 uA | Vinh ~2.5V | 4-10V | 0-1V/FLT |
圖13描繪神經元VMM陣列1300,其尤其適合於如圖2中所示之記憶體單元210,且用作輸入層與下一層之間的突觸及神經元部分。VMM陣列1300包含非揮發性記憶體單元之記憶體陣列1303、第一非揮發性參考記憶體單元之參考陣列1301及第二非揮發性參考記憶體單元之參考陣列1302。參考陣列1301及1302在VMM陣列1300之列方向上延伸。VMM陣列類似於VMM 1000,不同之處在於在VMM陣列1300中,字線在豎直方向上延伸。此處,輸入設置於字線(WLA0、WLB0、WLA1、WLB2、WLA2、WLB2、WLA3、WLB3)上,且輸出在讀取操作期間出現於源極線(SL0、SL1)上。置於每一源極線上之電流對來自連接至彼特定源極線之記憶體單元的所有電流執行求和函數。
表6描繪用於VMM陣列1300之操作電壓。表中之行指示置於以下各者上之電壓:選定單元之字線、未選定單元之字線、選定單元之位元線、未選定單元之位元線、選定單元之源極線及未選定單元之源極線。列指示讀取、抹除及程式化之操作。
表6:圖13之VMM陣列1300之操作
WL | WL-未選定 | BL | BL-未選定 | SL | SL-未選定 | |
讀取 | 1-3.5V | -0.5V/0V | 0.6-2V | 0.6V-2V/0V | ~0.3-1V (I神經元) | 0V |
抹除 | ~5-13V | 0V | 0V | 0V | 0V | SL-抑制(~4- 8V) |
程式化 | 1-2V | -0.5V/0V | 0.1-3 uA | Vinh ~2.5V | 4-10V | 0-1V/FLT |
圖14描繪神經元VMM陣列1400,其尤其適合於如圖3中所示之記憶體單元310,且用作輸入層與下一層之間的突觸及神經元部分。VMM陣列1400包含非揮發性記憶體單元之記憶體陣列1403、第一非揮發性參考記憶體單元之參考陣列1401及第二非揮發性參考記憶體單元之參考陣列1402。參考陣列1401及1402用以將流動至端子BLR0、BLR1、BLR2及BLR3中之電流輸入轉換成電壓輸入CG0、CG1、CG2及CG3。實際上,第一及第二非揮發性參考記憶體單元為二極體連接之貫穿多工器1412 (僅部分顯示),其中電流輸入經由BLR0、BLR1、BLR2及BLR3流動至該等多工器中。多工器1412各自包括各別多工器1405及串疊(cascoding)電晶體1404以確保在讀取操作期間第一及第二非揮發性參考記憶體單元中之每一者之位元線(諸如BLR0)上的恆定電壓。參考單元經調諧至目標參考層級。
記憶體陣列1403用於兩個目的。首先,其儲存將由VMM陣列1400使用之權重。其次,記憶體陣列1403有效地使輸入(提供至端子BLR0、BLR1、BLR2及BLR3之電流輸入,其中參考陣列1401及1402將此等電流輸入轉換成輸入電壓以供應至控制閘極CG0、CG1、CG2及CG3)乘以儲存於記憶體陣列中之權重,且隨後所有結果(單元電流)相加以產生輸出,該輸出顯現於BL0至BLN上,且將為至下一層之輸入或至最終層之輸入。藉由執行乘法及加法函數,記憶體陣列消除對分開的乘法及加法邏輯電路之需求,且亦為功率高效的。此處,輸入設置於控制閘極線(CG0、CG1、CG2及CG3)上,且輸出在讀取操作期間出現於位元線(BL0至BLN)上。置於每一位元線上之電流對來自連接至彼特定位元線之記憶體單元的所有電流執行求和函數。
VMM陣列1400對記憶體陣列1403中之非揮發性記憶體單元實施單向調諧。亦即,每一非揮發性記憶體單元經抹除且隨後經部分程式化,直至達至浮動閘極上之所需電荷。此可例如使用下文所描繪之精確程式化技術來執行。若過多電荷被置於浮動閘極上(使得錯誤值儲存於單元中),則單元必須經抹除且部分程式化操作之序列必須重新開始。如所顯示,共用同一抹除閘極(諸如EG0或EG1)之兩個列需要被一起抹除(此已知為頁面抹除),且此後,部分地程式化每一單元直至達至浮動閘極上之所需電荷。
表7描繪用於VMM陣列1400之操作電壓。表中之行指示置於以下各者上之電壓:選定單元之字線、未選定單元之字線、選定單元之位元線、未選定單元之位元線、選定單元之控制閘極、與選定單元相同的扇區中之未選定單元之控制閘極、與選定單元不同的扇區中之未選定單元之控制閘極、選定單元之抹除閘極、未選定單元之抹除閘極、選定單元之源極線及未選定單元之源極線。列指示讀取、抹除及程式化之操作。
表7:圖14之VMM陣列1400之操作
WL | WL-未選定 | BL | BL-未選定 | CG | 相同扇區 中之CG- 未選定 | CG-未選定 | EG | EG-未選定 | SL | SL-未選定 | |
讀取 | 1.0-2V | -0.5V/ 0V | 0.6-2V (I神經元) | 0V | 0-2.6V | 0-2.6V | 0-2.6V | 0-2.6V | 0-2.6V | 0V | 0V |
抹除 | 0V | 0V | 0V | 0V | 0V | 0-2.6V | 0-2.6V | 5-12V | 0-2.6V | 0V | 0V |
程式化 | 0.7-1V | -0.5V/ 0V | 0.1-1uA | Vinh (1-2V) | 4-11V | 0-2.6V | 0-2.6V | 4.5-5V | 0-2.6V | 4.5-5V | 0-1V |
圖15描繪神經元VMM陣列1500,其尤其適合於如圖3中所示之記憶體單元310,且用作輸入層與下一層之間的突觸及神經元部分。VMM陣列1500包含非揮發性記憶體單元之記憶體陣列1503、第一非揮發性參考記憶體單元之參考陣列1501及第二非揮發性參考記憶體單元之參考陣列1502。EG線EGR0、EG0、EG1及EGR1豎直地延伸,同時CG線CG0、CG1、CG2及CG3以及SL線WL0、WL1、WL2及WL3水平地延伸。VMM陣列1500類似於VMM陣列1400,不同之處在於VMM陣列1500實施雙向調諧,其中由於單獨EG線之使用,每一個別單元可視需要經完全抹除、部分程式化及部分抹除以達至浮動閘極上之所需電荷量。如所顯示,參考陣列1501及1502將端子BLR0、BLR1、BLR2及BLR3中之輸入電流轉換成待在列方向上施加至記憶體單元之控制閘極電壓CG0、CG1、CG2及CG3 (經由二極體連接之參考單元貫穿多工器1514進行之動作)。電流輸出(神經元)在位元線BL0至BLN中,其中每一位元線對來自連接至彼特定位元線之非揮發性記憶體單元的所有電流進行求和。
表8描繪用於VMM陣列1500之操作電壓。表中之行指示置於以下各者上之電壓:選定單元之字線、未選定單元之字線、選定單元之位元線、未選定單元之位元線、選定單元之控制閘極、與選定單元相同的扇區中之未選定單元之控制閘極、與選定單元不同的扇區中之未選定單元之控制閘極、選定單元之抹除閘極、未選定單元之抹除閘極、選定單元之源極線及未選定單元之源極線。列指示讀取、抹除及程式化之操作。
表8:圖15之VMM陣列1500之操作
WL | WL- 未選定 | BL | BL- 未選定 | CG | 相同扇區 中之CG- 未選定 | CG- 未選定 | EG | EG- 未選定 | SL | SL- 未選定 | |
讀取 | 1.0-2V | -0.5V/ 0V | 0.6-2V (I神經元) | 0V | 0-2.6V | 0-2.6 V | 0-2.6V | 0-2.6V | 0-2.6V | 0V | 0V |
抹除 | 0V | 0V | 0V | 0V | 0V | 4-9V | 0-2.6V | 5-12V | 0-2.6V | 0V | 0V |
程式化 | 0.7-1V | -0.5V/ 0V | 0.1-1uA | Vinh (1-2V) | 4-11V | 0-2.6V | 0-2.6V | 4.5-5V | 0-2.6V | 4.5- 5V | 0-1V |
圖24描繪神經元VMM陣列2400,其尤其適合於如圖2中所示之記憶體單元210,且用作輸入層與下一層之間的突觸及神經元部分。在VMM陣列2400中,輸入INPUT0
、...、INPUTN
分別在位元線BL0
、...、BLN
上經接收,且輸出OUTPUT1
、OUTPUT2
、OUTPUT3
及OUTPUT4
分別產生於源極線SL0
、SL1
、SL2
及SL3
上。
圖25描繪神經元VMM陣列2500,其尤其適合於如圖2中所示之記憶體單元210,且用作輸入層與下一層之間的突觸及神經元部分。在此實施例中,輸入INPUT0
、INPUT1
、INPUT2
及INPUT3
分別在源極線SL0
、SL1
、SL2
及SL3
上經接收,且輸出OUTPUT0
、...、OUTPUTN
產生於位元線BL0
、...、BLN
上。
圖26描繪神經元VMM陣列2600,其尤其適合於如圖2中所示之記憶體單元210,且用作輸入層與下一層之間的突觸及神經元部分。在此實施例中,輸入INPUT0
、...、INPUTM
分別在字線WL0
、...、WLM
上經接收,且輸出OUTPUT0
、...、OUTPUTN
產生於位元線BL0
、...、BLN
上。
圖27描繪神經元VMM陣列2700,其尤其適合於如圖3中所示之記憶體單元310,且用作輸入層與下一層之間的突觸及神經元部分。在此實施例中,輸入INPUT0
、...、INPUTM
分別在字線WL0
、...、WLM
上經接收,且輸出OUTPUT0 、
...、OUTPUTN
產生於位元線BL0
、...、BLN
上。
圖28描繪神經元VMM陣列2800,其尤其適合於如圖4中所示之記憶體單元410,且用作輸入層與下一層之間的突觸及神經元部分。在此實施例中,輸入INPUT0
、...、INPUTn
分別在控制閘極線CG0
、...、CGN
上經接收,且輸出OUTPUT1
及OUTPUT2
產生於源極線SL0
及SL1
上。
圖29描繪神經元VMM陣列2900,其尤其適合於如圖4中所示之記憶體單元410,且用作輸入層與下一層之間的突觸及神經元部分。在此實施例中,輸入INPUT0
、...、INPUTN
分別在位元線控制閘極2901-1、2901-2、...、2901-(N-1)及2901-N之閘極上經接收,該等位元線控制閘極分別耦接至位元線BL0
、...、BLN
。例示性輸出OUTPUT1
及OUTPUT2
產生於源極線SL0
及SL1
上。
圖30描繪神經元VMM陣列3000,其尤其適合於如圖3中所示之記憶體單元310、如圖5中所示之記憶體單元510及如圖7中所示之記憶體單元710,且用作輸入層與下一層之間的突觸及神經元部分。在此實施例中,輸入INPUT0
、...、INPUTM
在字線WL0
、...、WLM
上經接收,且輸出OUTPUT0
、...、OUTPUTN
分別產生於位元線BL0
、...、BLN
上。
圖31描繪神經元VMM陣列3100,其尤其適合於如圖3中所示之記憶體單元310、如圖5中所示之記憶體單元510及如圖7中所示之記憶體單元710,且用作輸入層與下一層之間的突觸及神經元部分。在此實施例中,輸入INPUT0
、...、INPUTM
在控制閘極線CG0
、...、CGM
上經接收。輸出OUTPUT0
、...、OUTPUTN
分別產生於源極線SL0
、...、SLN
上,其中每一源極線SLi
耦接至行i中之所有記憶體單元之源極線端子。
圖32描繪VMM系統3200。VMM系統3200包含VMM陣列3201 (其可基於先前所論述之VMM設計中之任一者,諸如VMM 900、1000、1100、1200及1320,或其他VMM設計)、低電壓列解碼器3202、高電壓列解碼器3203、參考單元低電壓行解碼器3204 (在行方向上顯示,意謂其提供列方向上之輸入至輸出轉換)、位元線多工器3205、控制邏輯3206、模擬電路3207、神經元輸出區塊3208、輸入VMM電路區塊3209、預解碼器3210、測試電路3211、抹除-程式化控制邏輯EPCTL 3212、模擬及高電壓產生電路3213、位元線PE驅動器3214、冗餘陣列3215及3216、NVR扇區3217及參考扇區3218。輸入電路區塊3209充當自外部輸入至記憶體陣列之輸入端子的介面。神經元輸出區塊3208充當自記憶體陣列輸出至外部介面之介面。
低電壓列解碼器3202為讀取及程式化操作提供偏壓電壓且為高電壓列解碼器3203提供解碼信號。高電壓列解碼器3203為程式化及抹除操作提供高電壓偏壓信號。可選擇的參考單元低電壓行解碼器3204為參考單元提供解碼功能。位元線PE驅動器3214在程式化、驗證及抹除操作期間為位元線提供控制功能。模擬及高電壓產生電路3213為提供各種程式化、抹除、程式化驗證及讀取操作所需之多個電壓的共用偏壓區塊。可選擇的冗餘陣列3215及3216提供陣列冗餘以用於替換有缺陷之陣列部分。可選擇的NVR (非揮發性暫存器,又稱為資訊扇區)扇區3217為用以儲存使用者資訊、構件ID、密碼、安全密鑰、微調位元(trimbit)、組構位元、製造資訊之陣列扇區,但不限於此。
圖33描繪模擬神經記憶體系統3300。模擬神經記憶體系統3300包含:巨型區塊3301a、3301b、3301c、3301d、3301e、3301f、3301g及3301h;神經元輸出(諸如求和器電路以及採樣及保持S/H電路)區塊3302a、3302b、3302c、3302d、3302e、3302f、3302g及3302h;及輸入電路區塊3303a、3303b、3303c、3303d、3303e、3303f、3303g及3304h。巨型區塊3301a、3301b、3301c、3301d、3301e及3301f中之每一者為含有VMM陣列之VMM子系統。神經記憶體子系統3333包括巨型區塊3301、輸入區塊3303及神經元輸出區塊3302。神經記憶體子系統3333可具有其自身之數位控制區塊。
模擬神經記憶體系統3300進一步包含系統控制區塊3304、模擬低電壓區塊3305及高電壓區塊3306。系統控制區塊3304可包括諸如ARM/MIPS/RISC_V核心之微控制器核心以處置通用控制功能及算術運算。系統控制區塊3304亦可包括單指令多資料(SIMD)單元以用單一指令對多個資料進行操作。其可包括DSP核心。其可包括用於執行諸如以下各者之函數的硬體或軟體:池化、求平均值、最小、最大、柔性最大(softmax)、加法、減法、乘法、除法、對數、反對數、ReLu、S型、雙曲正切、資料壓縮,但不限於此。其可包括用以執行諸如激發近似器(approximator)/量化器/正規化器(normalizer)之函數的硬體或軟體。其可包括執行諸如輸入資料近似器/量化器/正規化器之函數的能力。其可包括用以執行激發近似器/量化器/正規化器之函數的硬體或軟體。神經記憶體子系統3333之控制區塊可包括系統控制區塊3304之類似元件,諸如微控制器核心、SIMD核心、DSP核心及其他函數單元。
在一個具體例中,神經元輸出區塊3302a、3302b、3302c、3302d、3302e、3302f、3302g及3302h各自包括緩衝器(例如op amp)低阻抗輸出型電路,其可驅動長的可組構互連件。在一個具體例中,輸入電路區塊3303a、3303b、3303c、3303d、3303e、3303f、3303g及3303h各自提供求和之高阻抗電流輸出。在另一具體例中,神經元輸出區塊3302a、3302b、3302c、3302d、3302e、3302f、3302g及3302h各自包括激發電路,在此情況下需要額外低阻抗緩衝器以驅動輸出。
在另一具體例中,神經元輸出區塊3302a、3302b、3302c、3302d、3302e、3302f、3302g及3302h各自包含輸出數位位元而非模擬信號之模擬至數位轉換區塊。在此具體例中,輸入電路區塊3303a、3303b、3303c、3303d、3303e、3303f、3303g及3303h各自包含自各別神經元輸出區塊接收數位位元且將數位位元轉換成模擬信號之數位至模擬轉換區塊。
因此,神經元輸出區塊3302a、3302b、3302c、3302d、3302e、3302f、3302g及3302h自巨型區塊3301a、3301b、3301c、3301d、3301e及3301f接收輸出電流,且選擇地將彼輸出電流轉換成模擬電壓、數位位元或一或多個數位脈衝,其中每一脈衝之寬度或脈衝之數目回應於輸出電流之值而變化。類似地,輸入電路區塊3303a、3303b、3303c、3303d、3303e、3303f、3303g及3303h選擇地接收模擬電流、模擬電壓、數位位元或數位脈衝,其中每一脈衝之寬度或脈衝之數目回應於輸出電流之值而變化,且將模擬電流提供至巨型區塊3301a、3301b、3301c、3301d、3301e及3301f。輸入電路區塊3303a、3303b、3303c、3303d、3303e、3303f、3303g及3303h選擇地包含電壓至電流轉換器、用於對輸入信號中之數位脈衝之數目或輸入信號中之數位脈衝之寬度進行計數的模擬或數位計數器,或數位至模擬轉換器。
長短期記憶體
先前技術包括已知為長短期記憶體(LSTM)之概念。LSTM單元通常用於神經網路。LSTM允許神經網路在預定任意時間間隔內記住資訊且在後續操作中使用彼資訊。習知LSTM單元包含單元、輸入閘極、輸出閘極及遺忘閘極。三個閘極調節資訊進入及離開單元之流動及在LSTM中記住資訊的時間間隔。VMM尤其適用於LSTM單元。
圖16描繪例示性LSTM 1600。在此實施例中,LSTM 1600包含單元1601、1602、1603及1604。單元1601接收輸入向量x0
,且產生輸出向量h0
及單元狀態向量c0
。單元1602接收輸入向量x1
、來自單元1601之輸出向量(隱藏狀態) h0
及來自單元1601之單元狀態c0
,且產生輸出向量h1
及單元狀態向量c1
。單元1603接收輸入向量x2
、來自單元1602之輸出向量(隱藏狀態) h1
及來自單元1602之單元狀態c1
,且產生輸出向量h2
及單元狀態向量c2
。單元1604接收輸入向量x3
、來自單元1603之輸出向量(隱藏狀態) h2
及來自單元1603之單元狀態c2
,且產生輸出向量h3
。可使用額外單元,且具有四個單元之LSTM僅為實施例。
圖17描繪LSTM單元1700之例示性實施,其可用於圖16中之單元1601、1602、1603及1604。LSTM單元1700接收輸入向量x(t)、來自前述單元之單元狀態向量c(t-1)及來自前述單元之輸出向量h(t-1),且產生單元狀態向量c(t)及輸出向量h(t)。
LSTM單元1700包含S型函數構件1701、1702及1703,其中之每一者應用0與1之間的數字以控制輸入向量中之每一分量被允許通過輸出向量之量。LSTM單元1700亦包含用以將雙曲正切函數應用於輸入向量之雙曲正切構件1704及1705、用以將兩個向量相乘在一起之乘法器構件1706、1707及1708,及用以將兩個向量相加在一起之加法構件1709。輸出向量h(t)可提供至系統中之下一LSTM單元,或其可經存取以用於其他目的。
圖18描繪LSTM單元1800,其為LSTM單元1700之實施的實施例。為方便讀者,與LSTM單元1700相同之編號用於LSTM單元1800中。S型函數構件1701、1702及1703以及雙曲正切構件1704各自包含多個VMM陣列1801及激發電路區塊1802。因此,可見VMM陣列特別適用於在某些神經網路系統中使用之LSTM單元。乘法器構件1706、1707及1708以及加法構件1709以數位方式或以模擬方式實施。激發函數區塊1802可以數位方式或以模擬方式實施。
LSTM單元1800之替代(及LSTM單元1700之實施之另一實施例)顯示於圖19中。在圖19中,S型函數構件1701、1702及1703以及雙曲正切構件1704以時間多工方式共用相同實體硬體(VMM陣列1901及激發函數區塊1902)。LSTM單元1900亦包含用以將兩個向量相乘在一起之乘法器構件1903、用以將兩個向量相加在一起之加法構件1908、雙曲正切構件1705 (其包含激發電路區塊1902)、用以在i(t)自S型函數區塊1902輸出時儲存值i(t)之暫存器1907、用以在值f(t) * c(t-1)經由多工器1910自乘法器構件1903輸出時儲存彼值之暫存器1904、用以在值i(t) * u(t)經由多工器1910自乘法器構件1903輸出時儲存彼值之暫存器1905及用以在值o(t) * c~(t)經由多工器1910及多工器1909自乘法器構件1903輸出時儲存彼值之暫存器1906。
鑒於LSTM單元1800含有VMM陣列1801及各別激發函數區塊1802之多個集合,LSTM單元1900僅含有VMM陣列1901及激發函數區塊1902之一個集合,該等VMM陣列及激發函數區塊用以表示LSTM單元1900之具體例中的多個層。LSTM單元1900將需要相較於LSTM 1800較少的空間,此係因為LSTM單元1900相比於LSTM單元1800將需要1/4之空間用於VMM及激發函數區塊。
可進一步瞭解,LSTM單元將通常包含多個VMM陣列,其中之每一者需要由VMM陣列外部之某些電路區塊(諸如求和器及激發電路區塊以及高電壓產生區塊)提供的功能。為每一VMM陣列提供單獨電路區塊將需要半導體構件內之大量空間且將略微低效。
閘控循環單元
模擬VMM實施可用於閘控循環單元(GRU)系統。GRU為循環神經網路中之閘控機構。GRU類似於LSTM,不同之處在於GRU單元通常含有少於LSTM單元之分量。
圖20描繪例示性GRU 2000。在此實施例中,GRU 2000包含單元2001、2002、2003及2004。單元2001接收輸入向量x0
且產生輸出向量h0
。單元2002接收輸入向量x1
、來自單元2001之輸出向量h0
且產生輸出向量h1
。單元2003接收輸入向量x2
及來自單元2002之輸出向量(隱藏狀態) h1
,且產生輸出向量h2
。單元2004接收輸入向量x3
及來自單元2003之輸出向量(隱藏狀態) h2
,且產生輸出向量h3
。可使用額外單元,且具有四個單元之GRU僅為實施例。
圖21描繪GRU單元2100之例示性實施,其可用於圖20之單元2001、2002、2003及2004。GRU單元2100接收輸入向量x(t)及來自前一GRU單元之輸出向量h(t-1),且產生輸出向量h(t)。GRU單元2100包含S型函數構件2101及2102,其中之每一者將0與1之間的數字應用至來自輸出向量h(t-1)及輸入向量x(t)之分量。GRU單元2100亦包含用以應用雙曲正切函數至輸入向量之雙曲正切構件2103,用以將兩個向量相乘在一起之複數個乘法器構件2104、2105及2106,用以將兩個向量相加在一起之加法構件2107及用以自1減去輸入以產生輸出之互補構件2108。
圖22描繪GRU單元2200,其為GRU單元2100之實施的實施例。為方便讀者,與GRU單元2100相同之編號用於GRU單元2200中。如圖22中可見,S型函數構件2101及2102以及雙曲正切構件2103各自包含多個VMM陣列2201及激發函數區塊2202。因此,可見VMM陣列特別用於在某些神經網路系統中使用之GRU單元。乘法器構件2104、2105、2106,加法構件2107,及互補構件2108以數位方式或以模擬方式實施。激發函數區塊2202可以數位方式或以模擬方式實施。
GRU單元2200之替代(及GRU單元2300之實施之另一實施例)顯示於圖23中。在圖23中,GRU單元2300利用VMM陣列2301及激發函數區塊2302,該等VMM陣列及激發函數區塊在經組構為S型函數時應用0與1之間的數字以控制輸入向量中之每一分量被允許通過輸出向量之量。在圖23中,S型函數構件2101及2102以及雙曲正切構件2103以時間多工方式共用相同實體硬體(VMM陣列2301及激發函數區塊2302)。GRU單元2300亦包含用以將兩個向量相乘在一起之乘法器構件2303、用以將兩個向量相加在一起之加法構件2305、用以自1減去輸入以產生輸出之互補構件2309、多工器2304、用以在值h(t-1) * r(t)經由多工器2304自乘法器構件2303輸出時保持彼值之暫存器2306、用以在值h(t-1) *z(t)經由多工器2304自乘法器構件2303輸出時保持彼值之暫存器2307,及用以在值h^(t) * (1-z(t))經由多工器2304自乘法器構件2303輸出時保持彼值之暫存器2308。
鑒於GRU單元2200含有VMM陣列2201及激發函數區塊2202之多個集合,GRU單元2300僅含有VMM陣列2301及激發函數區塊2302之一個集合,該等VMM陣列及激發函數區塊用以表示GRU單元2300之具體例中的多個層。GRU單元2300將需要相較於GRU單元2200較少的空間,此係因為GRU單元2300相比於GRU單元2200將需要1/3之空間用於VMM及激發函數區塊。
可進一步瞭解,GRU系統將通常包含多個VMM陣列,其中之每一者需要由VMM陣列外部之某些電路區塊(諸如求和器及激發電路區塊以及高電壓產生區塊)提供的功能。為每一VMM陣列提供單獨電路區塊將需要半導體構件內之大量空間且將略微低效。
至VMM陣列之輸入可為模擬層級、二進位層級或數位位元(在此情況下,需要DAC以將數位位元轉換至適當輸入模擬層級),且輸出可為模擬層級、二進位層級或數位位元(在此情況下,需要輸出ADC以將輸出模擬層級轉換成數位位元)。
對於VMM陣列中之每一記憶體單元,每一權重w可由單一記憶體單元或由差分單元或由兩個混合(blend)記憶體單元(2個單元之平均值)實施。在差分單元情況下,需要兩個記憶體單元以將權重w實施為差分權重(w = w+ - w-)。在兩個混合記憶體單元中,需要兩個記憶體單元以將權重w實施為兩個單元之平均值。
高電壓產生電路及其他電路
圖34描繪VMM系統3400之方塊圖。VMM系統3400包含VMM陣列3408、列解碼器3407、高電壓解碼器3409、行解碼器3410及位元線驅動器3411。VMM系統3400進一步包含高電壓產生區塊3412,其包含電荷泵3401、電荷泵調節器3402及高電壓位準產生器3403。VMM系統3400進一步包含演算法控制器3404、模擬電路3405及控制邏輯3406。
圖35提供關於電荷泵3401及電荷泵調節器3402之其他細節。電荷泵3401由啟用信號3501控制。當啟用信號3501未經確證時,電荷泵3401持續增加其輸出之電壓。當啟用信號3501經確證時,電荷泵3401維持其輸出之電壓位準。電荷泵調節器3402包含分壓器結構,該分壓器結構包括二極體3504、3506及3508以及電阻器3505、3507及3509之串聯連接,該等電阻器各自耦接至二極體3504、3506及3508中之一各別二極體之陰極。彼結構內之經分壓節點經輸入至比較器3503,該比較器接收包含電壓參考之另一輸入。當來自電荷泵3401之電壓輸出足以激發二極體3504、3506及3508以使得電流將流動且來自經分壓節點之電壓超出電壓參考時,啟用信號將經確證。因此,電荷泵調節器3402控制電荷泵3401直至達成所需電壓位準,該電壓位準係基於二極體3504、3506及3508以及電阻器3505、3507及3509之特徵。三個二極體及三個電阻器顯示為分壓器結構之實施例,通常需要多於三個。替代地,代替二極體及電阻器之電容器可經實施以創建所需電壓比率以將輸入提供至比較器3503。替代地,適當比率化(ratioed)之電容器可與二極體及電阻器並聯連接以加快分壓器結構之回應。
圖36描繪VMM系統3600,其為VMM系統3400之具體例。VMM系統3600包含高電壓緩衝器3601及可調整電流槽3602。高電壓產生區塊3412產生提供至高電壓緩衝器3601之電壓,該高電壓緩衝器又提供至高電壓解碼器3409及可調整電流槽(程式化補償電流Icomp) 3602之電壓。由可調整電流槽3602自高電壓緩衝器3601汲取之電流Icomp可經調整以例如誘發高電壓緩衝器3601內之補償電壓降以補償待程式化之記憶體單元之數目(例如針對待程式化之1/2/.../32個IO的dVout1/2/.../32降)且降低高電壓緩衝器3601之溫度。舉例而言,Icomp = (#待程式化之記憶體單元)*Iprog*M,其中Iprog =單元程式化電流,且M =歸因於程式化操作期間之記憶體單元熱載流子效應的乘法器因數。補償Icomp經施加以維持不同輸出負載上之恆定高電壓輸出。
圖37描繪與高電壓緩衝器3701及可調整電流槽3702一起使用之VMM系統3700之具體例。高電壓產生器3412產生經提供至高電壓緩衝器3701之電壓,該高電壓緩衝器又將彼電壓提供至高電壓解碼器3409。由可調整電流槽(補償電流) Icomp 3702自高電壓解碼器3409汲取之電流可經調整以例如減少高電壓解碼器3409內之電流降(隨待程式化之記憶體單元之數目變化)及/或降低高電壓解碼器3409之溫度。舉例而言,Icomp = (#待程式化之記憶體單元)*Iprog*M。Iprog =單元程式化電流,M =歸因於程式化操作期間之記憶體單元熱載流子效應的乘法器因數。補償Icomp經施加以維持不同輸出負載上之恆定高電壓輸出。
圖38描繪與高電壓緩衝器3801一起使用之VMM系統3800,該高電壓緩衝器在此處為運算放大器。高電壓產生器3412產生經提供至高電壓緩衝器3801之電壓,該高電壓緩衝器又將電壓提供至高電壓解碼器3409。來自高電壓解碼器3409之輸出(例如輸出為解碼器中之HV電壓之回饋指示符)經提供為至高電壓緩衝器3801之輸入,該高電壓緩衝器隨後作為閉合迴路運算放大器而操作。閉合迴路補償經施加以維持不同輸出負載上之恆定高電壓輸出。
圖39描繪例如作為每一VMM系統中之VMM陣列之附加的待與VMM系統2400、2600、2700或2800結合使用之程式化電流補償區塊3900。此處,虛設程式化位元線(可程式化虛設陣列)設有每一群組32個位元線。舉例而言,群組3901包括虛設位元線3903,且群組3902包括虛設位元線3904。在群組3901及3902中之一或多個其他位元分別未經程式化之情況下,此等虛設位元線3903及3904可經接通(以提供位元線程式化電流)。此將保持在程式化操作期間汲取之電流比在不使用虛設位元線3903及3904之情況下之電流更恆定。應用程式化虛設陣列補償方案以維持不同輸出負載上之恆定高電壓輸出。
圖40描繪可用於實施高電壓解碼器3409之高電壓解碼器區塊4000之實施例。此處,源極線4005耦接至VMM陣列3408中之一或兩個列。NMOS電晶體4001、4002、4003及4004耦接至源極線4005,如所顯示。HV供應4010係自HV緩衝器(諸如HV緩衝器3601、3701或3801)提供,且HV comp信號4011諸如圖38中所示。
圖41描繪測試電路4100。測試電路4100包含高電壓傳輸器4101,其接收啟用信號EN。高電壓傳輸器將高電壓啟用信號提供至NMOS電晶體4102及NMOS串疊電晶體4103。NMOS電晶體4102之一個端子連接至外部測試墊,且NMOS電晶體4103之一個端子耦接至VMM系統3400內之內部節點。此電路可例如在電壓校準程序期間使用。
圖42描繪高電壓產生區塊3412之具體例,其在此處包含高電壓產生電路4200、控制邏輯區塊4201、模擬電路區塊4202及測試區塊4203。高電壓產生電路4200包含電荷泵及調節器4204、高電壓增量器4205及高電壓運算放大器4206。高電壓增量器4205之輸出之電壓可基於經發送至高電壓增量器4205中之電晶體的微調信號而控制,如下文將進一步解釋。控制邏輯區塊4201接收控制邏輯輸入且產生控制邏輯輸出。模擬電路區塊4202包含用於接收參考電壓Vref且產生可用以施加偏壓信號iBias之電流的偏流產生器4207,如在別處所使用。模擬電路區塊4202亦包含用於接收微調位元TRBIT_WL之集合且產生在各種操作期間施加至字線之電壓的電壓產生器4208。測試區塊4203接收測試墊上之信號MONHV_PAD,且輸出各種信號以在測試期間監測。
圖43描繪高電壓產生區塊3412之另一具體例。此處,高電壓產生區塊包含電荷泵及調節器4301、高電壓(HV)增量器4303及高電壓運算放大器4302。高電壓增量器4303之輸出之電壓可基於經發送至高電壓增量器4303中之電晶體之閘極的信號而控制。HV增量器4303包含自地面串聯連接至電荷泵4301之輸出的電阻器串4315i。開關4310a、4310b、...、4310z之網路用以按遞增方式沿著串多工輸出(mux out)電壓位準。電晶體之閘極由高電壓位準移位器(HVLS) 4320啟用/停用,該等高電壓位準移位器又由數位控制輸入啟用/停用。HVLS 4320用以將數位電壓位準(例如1V)轉換成高電壓位準(例如12V)。舉例而言,電阻器串4315i用以提供3V至10V之電壓位準,其中電壓增量為10 mV (跨越一個電阻器之電壓)。電阻器串之輸出VHVROUT因此將具有3V至10V之值以及10mV增量。HV運算放大器4302用以緩衝此VHVROUT增量電壓。歸因於最高電壓處所需之HV電壓,例如10V,處於或接近此值之PMOS開關將看到與接近擊穿(BV)條件相聯結的洩漏。此影響小增量電壓(例如10mV)之準確度。因此,需要改良以解決此BV洩漏。首先,根據PMOS開關之位置分接用於HVLS電路之供應器。舉例而言,對於4至6 V串位置處之PMOS開關,用於HVLS之高供應器為6 V(代替更典型的12V供應器)。此外,低供應器可為4V (代替地面之更典型值)。此將減少跨越PMOS開關在此電阻器串位置處之電壓應力。對於連接至VHVROUT之PMOS開關,需要與適應性HV偏壓串聯之兩個開關來停用各別多工器路徑以避免BV應力,例如顯示PMOS 4310e/4310f及4310y/4310z。PMOS 4310f及4310z用於多工器路徑停用。舉例而言,PMOS 4310f及4310z之閘極處於例如10V之高電壓以停用10V多工器路徑。在斷開條件下,PMOS 4310e之閘極較佳地處於約6V以進行串疊從而減少BV洩漏,且PMOS 4310f之閘極處於10V。在接通條件下,PMOS 4310f之閘極可處於約6V,且PMOS 4310f之閘極可處於<6V以將8V至10V (作為實施例)多工器路徑自各別串傳遞至VHVROUT。在斷開條件下,PMOS 4310y之閘極處於約6V以進行串疊從而減少BV洩漏,且PMOS 4310z之閘極處於10V。在接通條件下,PMOS 4310y之閘極可處於0V,且PMOS 4310z之閘極可處於0V以將3V至5V (作為實施例)多工器路徑自串傳遞至VHVROUT。
圖44描繪高電壓產生區塊3412之另一具體例。高電壓產生區塊3412包含高電壓運算放大器4403、開關電容器(switch cap;SC)網路4402及SC網路4401。SC網路4402包含可調整電容器4404。SC網路4401包含開關4405、4407、4408及4409以及可調整電容器4406。將需要在例如10至13 V之HV層級處操作的高電壓位準移位器(HVLS)電路以針對SC網路4402調整電容器4404。SC網路4401需要IO電壓(例如1.8V、2.5V)或核心電壓(例如1.2V)開關電路。
圖45描繪高電壓運算放大器4500,其可用於圖44中之高電壓運算放大器4403。高電壓運算放大器4500包含所示配置中所示之分量。HV串疊偏壓節點VCASP、VCASN1及VCASN2以適應性方式實施,使得電壓值取決於輸出電壓VOUT以最小化跨越電晶體之最大應力電壓降。舉例而言,當節點電壓VOUT為高時,VCASN2為高且VCASN1為低。
圖46描繪高電壓運算放大器4600,其可用於圖44中之高電壓運算放大器4403。高電壓運算放大器4600包含所示配置中所示之分量。HV串疊偏壓節點VCASN2A及VCASN2B經實施以使得電壓值取決於輸出電壓VOUT以最小化跨越電晶體之最大電壓降。舉例而言,當節點電壓VOUT為高時,VCASN1B及VCAS2B為高。
圖47描繪適應性高電壓供應器4700,其可用以為圖44中之高電壓運算放大器4403提供適應性高電壓串疊偏壓。適應性高電壓供應器4700包含所示配置中所示之分量。
圖48描繪行驅動器4800,其可用於位元線驅動器3411中之每一者。在所示之組構中,行驅動器4800包含鎖存器4801、反相器4802、NOR閘4803、PMOS電晶體4804、NMOS電晶體4805及4806以及感測放大器4807。如所顯示,VCASA層級在較高層級處追蹤VIN,亦即=~ VIN+ 2*VT_PMOS。VCASB層級在較低層級處跟蹤VIN,亦即=~ VIN- V*VT_NMOS。在不同MOS電晶體及不同I*R電壓降(諸如將電阻R插入至電流路徑中)之情況下,其他值為可能的。
圖49描繪感測放大器4900,其可用於圖48中之感測放大器4807。在所示之組構中,感測放大器4900包含可調整電流參考源4901、開關4902、NMOS電晶體4903、電容器4904、開關4905、電流源4906及反相器4907。感測放大器4907在VMM陣列3408中耦接至記憶體單元4908。
圖50描繪參考陣列電路5000,其包含位元線參考解碼器5001及參考單元50010
至5002N
。
圖51描繪參考陣列電路5100,其包含位元線參考解碼器5101及參考單元51020
至5100N
。
精確程式化電路及演算法
圖52描繪用以為HV運算放大器4403提供電壓之適應性高電壓供應器5200,其包含運算放大器5201、電阻器5203及可變電阻器5202 (其可為低電壓域可變電阻器)。適應性高電壓供應器5200接收輸入VIN
且產生高電壓信號HVOUT
,其中增益可藉由利用電阻微調電路網路(圖中未示)調整可變電阻器5202之電阻來調整。在一個具體例中,電阻器5203處於低電壓域(例如1V或1.8V)中且使用低電壓構件,且運算放大器5201及具有微調電路網路之可變電阻器5202處於高電壓域(例如12V)中且使用高電壓構件。HVOUT
隨後可用以程式化非揮發性記憶體單元。
圖53描繪用以為HV運算放大器3403提供電壓之適應性高電壓供應器5300,其包含運算放大器5301、可變電阻器5303及電阻器5302。適應性高電壓供應器5300接收輸入VIN
且產生高電壓信號HVOUT
,其中增益可藉由利用電阻微調電路網路(圖中未示)調整可變電阻器5303之電阻來調整。在一個具體例中,可變電阻器5303及微調電路網路處於低電壓域(例如1V或1.8V)中且使用低電壓構件,且運算放大器5301及電阻器5302處於高電壓域(例如12V)中且使用高電壓構件。HVOUT
隨後可用以程式化非揮發性記憶體單元。
圖54描繪用以為HV運算放大器4403提供電壓之適應性高電壓供應器5400,其包含運算放大器5401、電阻器5402、電阻器5403、運算放大器5404及可調整分壓器5405。可調整分壓器5405接收電壓源VS
且包含電阻器5408以及電阻器5406i及開關5407i之i個集合。由可調整分壓器5405輸出之電壓將取決於開關5407i中之哪一者關閉而變化,該電壓亦為運算放大器5404之非反相端子上之輸入電壓且為輸入電壓VIN
。回應於輸入VIN
,產生高電壓信號HVOUT
。此處,VIN
之量值可由可調整分壓器5405調整。在一個具體例中,可調整分壓器5405及運算放大器5404為低電壓域(例如1V或1.8V)且使用低電壓構件,且運算放大器5401為高電壓域(例如12V)且使用高電壓構件。HVOUT
隨後可用以程式化非揮發性記憶體單元。
圖55描繪用以為HV運算放大器4403提供電壓之適應性高電壓供應器5500,其包含可調整分壓器5505及精細電阻器HV網路5580。精細電阻器HV網路5580包含緩衝器5501、緩衝器5502、包含電阻器5504j及開關5504j之j個集合的可調整分壓器5503。可調整分壓器5505接收電壓源VS
且包含電阻器4408以及電阻器5506i及交換網路5507i之i個集合。由可調整分壓器5505輸出之電壓將取決於開關網路5507i中之開關中之哪一者關閉而變化。可調整分壓器5503接收高電壓HV_COARSE 1及HV_COARSE 2。高電壓HV_COARSE 1進一步為適應性高電壓供應器5500之第一輸出。由可調整分壓器5503輸出之電壓將取決於HV_COARSE及開關網路5504j中之開關中之哪一者關閉而變化,該電壓為HV_FINE。此處,HV_COARSE1/2之量值可藉由改變在可調整分壓器5505中關閉之開關網路5507i中之開關來調整。HV_FINE之量值可藉由改變在可調整分壓器5503中關閉之開關網路5504j中之開關來調整。作為數值實施例,可調整分壓器5505可提供200mV每步長(亦即,電壓增量,跨越一個電阻器5506之電壓),跨越HV_COARSE 1及HV_COARSE 2之電壓為600mV,可調整分壓器5503可提供5mV每步長(亦即,電壓增量,跨越一個電阻器5504j之電壓)。此等高電壓可用以程式化非揮發性記憶體單元。
圖56描繪用以為HV運算放大器4403提供電壓之適應性高電壓供應器5600,其包含粗略開關電容器(SC)網路5650及精細電阻器HV網路5680。粗略SC網路5650包含運算放大器5601、SC網路5609及SC網路5608。SC網路5609包含電容CFB之可調整電容器5602。SC網路5608包含電容CIN之可調整電容器5603及開關5604、5605、5606及5607。此處,HVOUT
= VIN
* (CIN/CFB)。精細電阻器HV網路5680類似於圖55中之網路5580。粗略SC網路5650提供粗略可調整層級,例如200mV步長,且精細電阻器HV網路5680提供精細層級,例如5mV步長。HVOUT
可用以程式化非揮發性記憶體單元。
用於如圖52、43、52至56中所示之HV運算放大器5403之適應性HV供應器用以最佳化隨輸出電壓變化之功率。VHVOPA = VOUT + dV,例如VHVOPA = 6V,其中VOUT = 4V且dV = 2V。基本上,HVOPA 4403始終不需要供應最大HV電壓,例如12V。
圖57描繪僅使用一個單層級參考之經修改SAR(逐次近似 (Successive Approximation)依序驗證演算法5700,其簡化了硬體實施。該圖顯示用以將單元輸出轉換成4個輸出數位位元以對照比較4個輸入數位位元的4位元驗證演算法。最高有效位元DOUT3首先藉由在參考線上施加中間參考值且將單元輸出與參考層級進行比較來轉換。下一有效位元DOUT2接著藉由在上半部(亦即,自L8至L15)上施加中間參考值且將單元輸出與中間參考層級進行比較且隨後在下半部(亦即,自L7至L0)上施加中間參考值且將單元輸出與中間參考層級進行比較來轉換。下一數位位元類似地經轉換。對於4位元輸出,此方法將需要15個轉換脈衝(步長)。單元輸出為自記憶體單元中之所儲存權重轉換之電流或電壓。
圖58描繪使用兩個參考線之經修改SAR依序驗證演算法5800,其中轉換脈衝之數目減少一半。最高有效位元係如上使用單參考線進行操作。下一依序轉換步長使用兩個參考線。對於每一參考線,轉換步長與上文類似。對於4位元輸出,此方法將需要8個步長。
以上驗證演算法可用以將神經元電流(來自VMM陣列之輸出電流)轉換成數位位元。
圖59描繪供在非揮發性記憶體單元之程式化操作之後的驗證操作期間使用之可調整2D溫度計程式碼參考電流源5900。2D溫度計程式碼參考電流源5900包含緩衝器鏡5901 (其包含運算放大器5902及PMOS電晶體5903)、可調整偏壓源5904及包含構件5906之i列及j行之陣列的2D陣列5905,其中特定構件5906由標籤5906-(列)(行)標註。此處,構件5906之各種組合可經激發,使得由緩衝器鏡5901輸出之參考電流之量可經調整。如所顯示,2D陣列5905中存在16個電流鏡(構件5906)。可調整2D溫度計程式碼參考電流源5900基本上將4數位輸入程式碼轉換成參考電流偏壓,其中值為自偏壓源5904提供之Ibiasunit的1至16倍。此等倍數例如對應於諸如圖58中所示之VMM陣列中之記憶體單元的16個層級。
舉例而言,偏壓源5904可提供1nA之電流Ibiasunit,該電流經鏡像至構件5906中。此處,第一列由構件5906-11至5906-1j組成且依序地自左至右啟用,一次一個構件5906。隨後,下一列以依序方式自左至右啟用以添加至第一列,此意謂以5接著6接著7接著8之方式啟用構件5906。因此,藉由依序地啟用構件5906,可避免與習知二進位解碼相聯結的電晶體失配情形。經啟用構件5906之總和隨後由緩衝器鏡5901鏡像且輸出為可調整電流,該可調整電流可用於圖39中之可調整電流參考源3901。偏壓源5904可提供單元偏壓之可微調範圍,諸如50pA/100pA/200pA/.../100nA。所示之可調整4×4 2D溫度計程式碼參考電流源5900可為任何其他尺寸,諸如32×32或8×32。
圖60描繪參考子電路6000,其可用於圖59中之構件5906。參考子電路6000包含NMOS電晶體6001及6002,如所示所組構。電晶體6002為電流鏡偏壓電晶體,且電晶體6001為啟用電晶體(用以使得偏壓電晶體6002能夠連接至輸出節點OUTPUT)。
應注意,如本文中所使用,術語「在...上方」及「在...上」兩者包括「直接在...上」(其間未裝設有中間材料、元件或空間)及「間接地在...上」(其間裝設有中間材料、元件或空間)。同樣地,術語「鄰近」包括「直接鄰近」(其間未裝設有中間材料、元件或空間)及「間接鄰近」(其間裝設有中間材料、元件或空間),「安裝至」包括「直接安裝至」(其間未裝設有中間材料、元件或空間)及「間接安裝至」(其間裝設有中間材料、元件或空間),且「電耦接」包括「直接電耦接至」(其間無將元件電連接在一起的中間材料或元件)及「間接電耦接至」(其間具有將元件電連接在一起的中間材料或元件)。舉例而言,「在基板上方」形成元件可包括直接在基板上形成元件而其間無中間材料/元件,以及間接地在基板上形成元件而其間具有一或多種中間材料/元件。
12:半導體基板
14:源極區
16:汲極區
18:通道區
20:浮動閘極
22:字線端子
24, BL0~BLN:位元線
28, CG:控制閘極
30, EG:抹除閘極
31:數位至模擬轉換器
32, 32a, 32b, 32c, 32d, 32e, 1801, 1901, 2201, 2301, 3201, 3408:VMM陣列
33:非揮發性記憶體單元陣列
34:抹除閘極及字線閘極解碼器
35:控制閘極解碼器
36:位元線解碼器
37:源極線解碼器
38:差分求和器
39:激發函數電路
210, 310, 410, 510, 610, 710, 4908:記憶體單元
900, 1000, 1320:VMM
1100, 1200, 1300, 1400, 1500, 2400, 2500, 2600, 2700, 2800, 2900, 3000, 3100:神經元VMM陣列
1101, 1203, 1303, 1403, 1503:記憶體陣列
1102, 1201, 1202, 1301, 1302, 1401, 1402, 1501, 1502:參考陣列
1103, CG0, CG1, CG2, CG3, CG0~CGN:控制閘極線
1104:抹除閘極線
1214, 1405, 1412, 1514, 1909, 1910, 2304:多工器
1404:電晶體
1600:LSTM
1601, 1602, 1603, 1604, 2001, 2002, 2003, 2004:單元
1700, 1800, 1900:LSTM單元
1701, 1702, 1703, 2101, 2102:S型函數構件
1704, 1705, 2103:雙曲正切構件
1706, 1707, 1708, 1903, 2104, 2105, 2106, 2303:乘法器構件
1709, 1908, 2107, 2305:加法構件
1802:激發電路區塊
1902, 2202, 2302:激發函數區塊
1904, 1905, 1906, 1907, 2306, 2307, 2308:暫存器
2000:GRU
2100, 2200, 2300:GRU單元
2108, 2309:互補構件
2901-1~2901-N:位元線控制閘極
3200, 3400, 3600, 3700, 3800:VMM系統
3202:低電壓列解碼器
3203:高電壓列解碼器
3204:參考單元低電壓行解碼器
3205:位元線多工器
3206, 3406:控制邏輯
3207, 3405:模擬電路
3208, 3302, 3302a, 3302b, 3302c, 3302d, 3302e, 3302f, 3302g, 3302h:神經元輸出區塊
3209:輸入VMM電路區塊
3210:預解碼器
3211, 4100:測試電路
3212:抹除-程式化控制邏輯
3213:模擬及高電壓產生電路
3214:位元線PE驅動器
3215, 3216:冗餘陣列
3217:NVR扇區
3218:參考扇區
3300:模擬神經記憶體系統
3301, 3301a, 3301b, 3301c, 3301d, 3301e, 3301f, 3301g, 3301h:巨型區塊
3303:輸入區塊
3303a, 3303b, 3303c, 3303d, 3303e, 3303f, 3303g, 3303h, 3304h:輸入電路區塊
3304:系統控制區塊
3305:模擬低電壓區塊
3306:高電壓區塊
3333:神經記憶體子系統
3401:電荷泵
3402:電荷泵調節器
3403:高電壓位準產生器
3404:控制器
3407:列解碼器
3409:高電壓解碼器
3410:行解碼器
3411:位元線驅動器
3412:高電壓產生區塊
3501, EN:啟用信號
3503:比較器
3504, 3506, 3508:二極體
3505, 3507, 3509, 5203, 5302, 5402, 5403, 5406i, 5408, 5506i:電阻器
3601, 3701, 3801:高電壓緩衝器
3602, 3702:可調整電流槽
3900:程式化電流補償區塊
3901, 3902:群組
3903, 3904:虛設位元線
4000:高電壓解碼器區塊
4001, 4002, 4003, 4004, 4102, 4805, 4806, 4903, 6001, 6002:NMOS電晶體
4005, SL0, SL1, SL2, SL3:源極線
4010:HV供應
4011:HV comp信號
4101:高電壓傳輸器
4103:NMOS串疊電晶體
4200:高電壓產生電路
4201:控制邏輯區塊
4202:模擬電路區塊
4203:測試區塊
4204, 4301:電荷泵及調節器
4205, 4303:高電壓增量器
4206, 4302, 4403, 4500, 4600:高電壓運算放大器
4207:偏流產生器
4208:電壓產生器
4310a~4310z, 4405, 4407, 4408, 4409, 4902, 4905, 5407i, 5604, 5605, 5606, 5607:開關
4315i:電阻器串
4320:高電壓位準移位器
4401, 4402, 5608, 5609:SC網路
4404, 4406, 5602, 5603:可調整電容器
4700, 5200, 5300, 5400, 5500, 5600:適應性高電壓供應器
4800:行驅動器
4801:鎖存器
4802, 4907:反相器
4803:NOR閘
4804, 5903:PMOS電晶體
4807, 4900:感測放大器
4901:可調整電流參考源
4904:電容器
4906:電流源
5000, 5100:參考陣列電路
5001, 5101:位元線參考解碼器
50020~5002N, 51020~5102N:參考單元
5201, 5301, 5401, 5404, 5601, 5902:運算放大器
5202, 5303:可變電阻器
5405, 5503, 5505:可調整分壓器
5501, 5502:緩衝器
5504j:電阻器/開關
5507i:交換網路
5580, 5680:精細電阻器HV網路
5650:粗略SC網路
5700, 5800:演算法
5900:2D溫度計程式碼參考電流源
5901:緩衝器鏡
5904:可調整偏壓源
5905:2D陣列
5906, 5906-11~5906-1j:構件
6000:參考子電路
BLR0, BLR1, BLR2, BLR3:端子
c0, c1, c2, c(t), c(t-1):單元狀態向量
C1, C2, C3, S1, S2:層
CB1, CB2, CB3, CB4:突觸
CFB, CIN:電容
DOUT2, DOUT3:有效位元
EG0, EG1, EGR0, EGR1:EG線
h0, h1, h2, h3, h(t), h(t-1):輸出向量
HVOUT:高電壓信號
HV_COARSE 1, HV_COARSE 2:高電壓
iBias:偏壓信號
Ibiasunit, Icomp:電流
Inputx, INPUT0~INPUTN, VIN:輸入
i(t):值
OUTPUT:輸出節點
OUTPUT0~OUTPUTN, VHVROUT:輸出
P1, P2:激發函數
R:電阻
S0:輸入層
S3:輸出層
TRBIT_WL:微調位元
VCASP, VCASN1, VCASN2, VCASN2A, VCASN2B:HV串疊偏壓節點
VOUT:輸出電壓
Vref:參考電壓
VS:電壓源
WL, WL0~WLM, WLA0, WLB0, WLA1, WLB2, WLA2, WLB2, WLA3, WLB3:字線
WL0, WL1, WL2, WL3:電壓輸入
x0, x1, x2, x3, x(t):輸入向量
圖1為例示先前技術人工神經網路之圖。
圖2描繪先前技術分離閘式快閃記憶體單元。
圖3描繪另一先前技術分離閘式快閃記憶體單元。
圖4描繪另一先前技術分離閘式快閃記憶體單元。
圖5描繪另一先前技術分離閘式快閃記憶體單元。
圖6描繪另一先前技術分離閘式快閃記憶體單元。
圖7描繪先前技術堆疊式閘極快閃記憶體單元。
圖8為例示利用一或多個非揮發性記憶體陣列之例示性人工神經網路之不同層級的圖。
圖9為例示向量乘矩陣乘法系統之方塊圖。
圖10為例示利用一或多個向量乘矩陣乘法系統之例示性人工神經網路的方塊圖。
圖11描繪向量乘矩陣乘法系統之另一具體例。
圖12描繪向量乘矩陣乘法系統之另一具體例。
圖13描繪向量乘矩陣乘法系統之另一具體例。
圖14描繪向量乘矩陣乘法系統之另一具體例。
圖15描繪向量乘矩陣乘法系統之另一具體例。
圖16描繪先前技術長短期記憶體系統。
圖17描繪供用於長短期記憶系統中之例示性單元。
圖18描繪圖17之例示性單元之一具體例。
圖19描繪圖17之例示性單元之另一具體例。
圖20描繪先前技術閘控循環單元系統。
圖21描繪供用於閘控循環單元系統中之例示性單元。
圖22描繪圖21之例示性單元之一具體例。
圖23描繪圖21之例示性單元之另一具體例。
圖24描繪向量乘矩陣乘法系統之另一具體例。
圖25描繪向量乘矩陣乘法系統之另一具體例。
圖26描繪向量乘矩陣乘法系統之另一具體例。
圖27描繪向量乘矩陣乘法系統之另一具體例。
圖28描繪向量乘矩陣乘法系統之另一具體例。
圖29描繪向量乘矩陣乘法系統之另一具體例。
圖30描繪向量乘矩陣乘法系統之另一具體例。
圖31描繪向量乘矩陣乘法系統之另一具體例。
圖32描繪VMM系統。
圖33描繪模擬神經記憶體系統。
圖34描繪用於與向量乘法器矩陣系統一起使用之高電壓產生區塊。
圖35描繪電荷泵及電荷泵調節電路。
圖36描繪具有電流補償電路之高電壓產生區塊。
圖37描繪具有電流補償電路之另一高電壓產生區塊。
圖38描繪另一高電壓產生區塊。
圖39描繪用於提供電流補償之虛設位元線。
圖40描繪高電壓解碼器。
圖41描繪高電壓測試電路。
圖42描繪高電壓產生區塊。
圖43描繪另一高電壓產生區塊。
圖44描繪另一高電壓產生區塊。
圖45描繪高電壓運算放大器。
圖46描繪另一高電壓運算放大器。
圖47描繪適應性高電壓供應器。
圖48描繪行驅動器。
圖49描繪行感測放大器。
圖50描繪讀取參考電路。
圖51描繪另一讀取參考電路。
圖52描繪適應性高電壓供應器。
圖53描繪另一適應性高電壓供應器。
圖54描繪另一適應性高電壓供應器。
圖55描繪另一適應性高電壓供應器。
圖56描繪另一適應性高電壓供應器。
圖57描繪單參考驗證演算法。
圖58描繪雙參考驗證演算法。
圖59描繪可調參考電壓源。
圖60描繪在圖59之可調參考電壓源中使用的子電路。
32:VMM陣列
33:非揮發性記憶體單元陣列
34:抹除閘極及字線閘極解碼器
35:控制閘極解碼器
36:位元線解碼器
37:源極線解碼器
38:差分求和器
39:激發函數電路
Claims (13)
- 一種用於神經網路之驗證方法,其係用於藉由將所儲存權重轉換成複數個數位輸出位元來在一非揮發性記憶體單元之一多層級程式化操作之後驗證該非揮發性記憶體單元中之該所儲存權重,其包含:將該非揮發性記憶體單元之一輸出與自一單參考線上之一第一參考值比較,且在該記憶體單元輸出大於該第一參考值之情況下產生該複數個數位輸出位元中最高有效位元之一第一值之一第一數位輸出位元,以及在該記憶體單元輸出小於該第一參考值之情況下產生一第二值之該第一數位輸出位元;且藉由將該非揮發性記憶體單元之該輸出與自該單參考線上之一第二參考值及與自該單參考線上之一第三參考值比較,產生該複數個數位輸出位元中下一最高有效位元之一第二數位輸出位元。
- 如請求項1之驗證方法,其中,該非揮發性記憶體單元之該輸出為自該所儲存權重轉換之一電流或一電壓。
- 如請求項1之驗證方法,其中,該非揮發性記憶體單元為一堆疊式閘極記憶體單元。
- 如請求項1之驗證方法,其中,該非揮發性記憶體單元為一分離閘式記憶體單元。
- 一種用於神經網路之驗證方法,其係用於藉由將所儲存權重轉換成複數個數位輸出位元來在一非揮發性記憶體單元之一多層級程式化操作之後驗證該非揮發性記憶體單元中之該所儲存權重,其包 含:將該非揮發性記憶體單元之一輸出與自一第一參考線上之一第一參考值比較,且在該非揮發性記憶體單元輸出超出該第一參考值之情況下產生該複數個數位輸出位元中最高有效位元之一第一值之一第一數位輸出位元,以及在該非揮發性記憶體單元輸出小於該第一參考值之情況下產生一第二值之該第一數位輸出位元;且將該記憶體單元輸出在該第一數位輸出位元具有該第一值之情況下與一第二參考值比較且在該第一數位輸出位元具有該第二值之情況下與一第三參考值比較,且執行以下中之一者:在該非揮發性記憶體單元輸出大於該第二參考值之情況下產生該複數個數位輸出位元中下一最高有效位元之該第一值之一第二數位輸出位元,且在所儲存電壓小於該第二參考值之情況下產生該第二值之該第二數位輸出位元;以及在該非揮發性記憶體單元輸出大於該第三參考值之情況下產生該複數個數位輸出位元中下一最高有效位元之該第一值之該第二數位輸出位元,且在該非揮發性記憶體單元輸出小於該第三參考電壓之情況下產生該第二值之該第二數位輸出位元。
- 如請求項5之驗證方法,其中,該記憶體單元之該輸出為自該所儲存權重轉換之一電流或一電壓。
- 如請求項5之驗證方法,其中,該非揮發性記憶體單元為一堆疊式閘極記憶體單元。
- 如請求項5之驗證方法,其中,該非揮發性記憶體單元 為一分離閘式記憶體單元。
- 一種可調參考電流源,其係用於一神經網路之在一非揮發性記憶體單元之一程式化操作之後供在一驗證操作期間使用,其包含:一可調電流源,其用於提供一輸入電壓;構件陣列,其用於接收該輸入電壓及控制信號且產生一輸出電流,其中,該等控制信號以一溫度計寫碼方式啟動該構件陣列中之一或多個構件;以及一緩衝鏡,其用於接收該輸出電流且產生一參考電壓;其中,該參考電壓回應於該可調電流源及由該等控制信號啟動之該構件陣列中之構件數目而發生變化。
- 如請求項9之可調參考電流源,其中,該緩衝鏡包含驅動該鏡偏壓電壓之一運算放大器。
- 如請求項9之可調參考電流源,其中,該構件陣列中之每一構件包含一第一NMOS電晶體及一第二NMOS電晶體,其中,該第一NMOS電晶體之源極耦接至該第二NMOS電晶體之汲極。
- 如請求項9之可調參考電流源,其中,該非揮發性記憶體單元為一分離閘式記憶體單元。
- 如請求項9之可調參考電流源,其中,該非揮發性記憶體單元為一堆疊式閘極記憶體單元。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962798394P | 2019-01-29 | 2019-01-29 | |
US62/798,394 | 2019-01-29 | ||
US16/360,955 US11144824B2 (en) | 2019-01-29 | 2019-03-21 | Algorithms and circuitry for verifying a value stored during a programming operation of a non-volatile memory cell in an analog neural memory in deep learning artificial neural network |
US16/360,955 | 2019-03-21 | ||
USPCT/US19/50119 | 2019-09-07 | ||
PCT/US2019/050119 WO2020159583A1 (en) | 2019-01-29 | 2019-09-07 | Algorithms and circuitry for verifying a value stored during a programming operation of a non-volatile memory cell in an analog neural memory in deep learning artificial neural network |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202046317A TW202046317A (zh) | 2020-12-16 |
TWI742508B true TWI742508B (zh) | 2021-10-11 |
Family
ID=71731340
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108147188A TWI803727B (zh) | 2019-01-29 | 2019-12-23 | 深度學習人工神經網路中用於類比神經記憶體之精確程式化電路 |
TW109100679A TWI742508B (zh) | 2019-01-29 | 2020-01-09 | 用於驗證在深度學習人工神經網路中在模擬神經記憶體中之非揮發性記憶體單元的程式化操作期間儲存之值的演算法及電路 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108147188A TWI803727B (zh) | 2019-01-29 | 2019-12-23 | 深度學習人工神經網路中用於類比神經記憶體之精確程式化電路 |
Country Status (7)
Country | Link |
---|---|
US (4) | US11144824B2 (zh) |
EP (4) | EP3918601B1 (zh) |
JP (2) | JP7201831B2 (zh) |
KR (2) | KR20210110638A (zh) |
CN (2) | CN113366573A (zh) |
TW (2) | TWI803727B (zh) |
WO (2) | WO2020159582A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11144824B2 (en) * | 2019-01-29 | 2021-10-12 | Silicon Storage Technology, Inc. | Algorithms and circuitry for verifying a value stored during a programming operation of a non-volatile memory cell in an analog neural memory in deep learning artificial neural network |
US11886987B2 (en) * | 2019-06-25 | 2024-01-30 | Arm Limited | Non-volatile memory-based compact mixed-signal multiply-accumulate engine |
US12026601B2 (en) * | 2019-06-26 | 2024-07-02 | Micron Technology, Inc. | Stacked artificial neural networks |
US20210064379A1 (en) | 2019-08-29 | 2021-03-04 | Arm Limited | Refactoring MAC Computations for Reduced Programming Steps |
US11164068B1 (en) * | 2020-11-13 | 2021-11-02 | International Business Machines Corporation | Feature recognition with oscillating neural network |
US20230049032A1 (en) * | 2021-08-02 | 2023-02-16 | Silicon Storage Technology, Inc. | Output circuitry for analog neural memory in a deep learning artificial neural network |
KR102514652B1 (ko) * | 2021-11-19 | 2023-03-29 | 서울대학교산학협력단 | 뉴로모픽 소자를 위한 가중치 전사 장치 및 이를 이용한 가중치 전사 방법 |
CN116504281A (zh) * | 2022-01-18 | 2023-07-28 | 浙江力德仪器有限公司 | 计算单元、阵列及计算方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110069539A1 (en) * | 2009-09-23 | 2011-03-24 | International Business Machines Corporation | Programming multi-level phase change memory cells |
US20120241839A1 (en) * | 2011-03-21 | 2012-09-27 | Freescale Semiconductor, Inc. | Split-gate non-volatile memory cells having improved overlap tolerance |
TW201351253A (zh) * | 2012-04-12 | 2013-12-16 | Atmel Corp | 電流鏡自電容測量 |
US20160099073A1 (en) * | 2014-10-07 | 2016-04-07 | SanDisk Technologies, Inc. | Highly linear analog-to-digital converter and method for nonvolatile memory |
Family Cites Families (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2630573B1 (fr) * | 1988-04-26 | 1990-07-13 | Sgs Thomson Microelectronics | Memoire programmable electriquement avec plusieurs bits d'information par cellule |
US5055897A (en) | 1988-07-27 | 1991-10-08 | Intel Corporation | Semiconductor cell for neural network and the like |
US5029130A (en) | 1990-01-22 | 1991-07-02 | Silicon Storage Technology, Inc. | Single transistor non-valatile electrically alterable semiconductor memory device |
US5093900A (en) * | 1991-02-13 | 1992-03-03 | At&T Bell Laboratories | Reconfigurable neural network |
US5237210A (en) | 1992-03-12 | 1993-08-17 | Intel Corporation | Neural network accomodating parallel synaptic weight adjustments for correlation learning algorithms |
DE69524558T2 (de) * | 1995-01-27 | 2002-07-18 | Stmicroelectronics S.R.L., Agrate Brianza | Schnittweises Annäherungsverfahren zum Abtasten von nichtflüchtigen Mehrfachniveauspeicherzellen und dementsprechende Abtastschaltung |
KR100192476B1 (ko) * | 1996-06-26 | 1999-06-15 | 구본준 | 다중 비트 메모리 셀의 데이타 센싱장치 및 방법 |
JP2000011674A (ja) * | 1998-06-25 | 2000-01-14 | Sony Corp | ラッチ形センス回路及びプログラム・ベリファイ回路 |
US6876468B1 (en) * | 2000-09-19 | 2005-04-05 | Kabushiki Kaisha Toshiba | Image processing apparatus that performs black coloring, gamma correction and tone processing |
EP1249841B1 (en) * | 2001-04-10 | 2008-10-29 | STMicroelectronics S.r.l. | Reading circuit and method for a multilevel non volatile memory |
KR100418720B1 (ko) | 2001-06-29 | 2004-02-19 | 주식회사 하이닉스반도체 | 플래시 메모리 셀의 소거 전압 조절 회로 |
JP3908957B2 (ja) | 2002-01-24 | 2007-04-25 | シャープ株式会社 | 不揮発性半導体メモリ装置 |
US6747310B2 (en) | 2002-10-07 | 2004-06-08 | Actrans System Inc. | Flash memory cells with separated self-aligned select and erase gates, and process of fabrication |
DE102005047172B4 (de) | 2005-09-30 | 2007-09-27 | Xignal Technologies Ag | Schaltungsanordnung mit einem rückgekoppelten Operationsverstärker |
US7254071B2 (en) | 2006-01-12 | 2007-08-07 | Sandisk Corporation | Flash memory devices with trimmed analog voltages |
US7447085B2 (en) * | 2006-08-15 | 2008-11-04 | Micron Technology, Inc. | Multilevel driver |
JP4946260B2 (ja) | 2006-08-16 | 2012-06-06 | 富士通セミコンダクター株式会社 | アンチヒューズ書込電圧発生回路を内蔵する半導体メモリ装置 |
US20080056035A1 (en) | 2006-08-31 | 2008-03-06 | Micron Technology, Inc. | Method and apparatus for adaptive programming of flash memory, flash memory devices, and systems including flash memory having adaptive programming capability |
KR100909362B1 (ko) * | 2006-11-21 | 2009-07-24 | 삼성전자주식회사 | 향상된 프로그램 성능을 갖는 플래시 메모리 장치 및그것을 포함한 스마트 카드 |
JP4306763B2 (ja) | 2007-04-19 | 2009-08-05 | セイコーエプソン株式会社 | ガンマ補正回路 |
JP4365873B2 (ja) * | 2007-06-06 | 2009-11-18 | 株式会社東芝 | 電圧供給回路および半導体記憶装置 |
US7768868B2 (en) * | 2007-06-15 | 2010-08-03 | Micron Technology, Inc. | Digital filters for semiconductor devices |
JP2009080892A (ja) | 2007-09-26 | 2009-04-16 | Toshiba Corp | 半導体記憶装置 |
US7948802B2 (en) | 2007-12-04 | 2011-05-24 | Micron Technology, Inc. | Sensing memory cells |
US8797202B2 (en) * | 2008-03-13 | 2014-08-05 | Electro Industries/Gauge Tech | Intelligent electronic device having circuitry for highly accurate voltage sensing |
KR101463584B1 (ko) * | 2008-07-30 | 2014-11-19 | 삼성전자주식회사 | 비휘발성 메모리 장치 및 그것의 프로그램 방법 |
JP2011041172A (ja) | 2009-08-18 | 2011-02-24 | Ricoh Co Ltd | 電子ボリューム回路 |
KR101802815B1 (ko) | 2011-06-08 | 2017-12-29 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 불휘발성 메모리 장치의 프로그램 방법 |
US8625337B2 (en) | 2010-05-06 | 2014-01-07 | Qualcomm Incorporated | Method and apparatus of probabilistic programming multi-level memory in cluster states of bi-stable elements |
US8409944B2 (en) | 2010-06-24 | 2013-04-02 | Semiconductor Components Industries, Llc | Process of forming an electronic device including a nonvolatile memory cell having a floating gate electrode or a conductive member with different portions |
KR101732585B1 (ko) * | 2010-08-26 | 2017-05-04 | 삼성전자주식회사 | 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템 |
CA2810703C (en) * | 2010-09-15 | 2016-11-08 | Dwight Duston | Systems, devices, and/or methods for managing images |
JP2012113671A (ja) * | 2010-11-29 | 2012-06-14 | Renesas Electronics Corp | 静的検証方法及び静的検証システム並びに記録媒体 |
KR101736457B1 (ko) * | 2011-07-12 | 2017-05-17 | 삼성전자주식회사 | 불휘발성 메모리 장치, 불휘발성 메모리 장치의 소거 방법, 불휘발성 메모리 장치의 동작 방법, 불휘발성 메모리 장치를 포함하는 메모리 시스템, 메모리 시스템의 동작 방법, 불휘발성 메모리 장치를 포함하는 메모리 카드 및 솔리드 스테이트 드라이브 |
US8400212B1 (en) * | 2011-09-22 | 2013-03-19 | Sandisk Technologies Inc. | High voltage charge pump regulation system with fine step adjustment |
US8816421B2 (en) * | 2012-04-30 | 2014-08-26 | Broadcom Corporation | Semiconductor device with semiconductor fins and floating gate |
US20150324691A1 (en) * | 2014-05-07 | 2015-11-12 | Seagate Technology Llc | Neural network connections using nonvolatile memory devices |
KR102237710B1 (ko) | 2014-06-18 | 2021-04-09 | 주식회사 해치텍 | 커패시터형 습도센서 |
US9715924B2 (en) * | 2015-10-22 | 2017-07-25 | Sandisk Technologies Llc | Three dimensional non-volatile memory with current sensing programming status |
JP6833873B2 (ja) | 2016-05-17 | 2021-02-24 | シリコン ストーリッジ テクノロージー インコーポレイテッドSilicon Storage Technology, Inc. | 不揮発性メモリアレイを使用したディープラーニングニューラルネットワーク分類器 |
US10891536B1 (en) * | 2016-12-06 | 2021-01-12 | The United States Of America As Represented By The Secretary Of The Air Force | Artificial neural network for reservoir computing using stochastic logic |
US12106211B2 (en) | 2017-04-27 | 2024-10-01 | The Regents Of The University Of California | Mixed signal neuromorphic computing with nonvolatile memory devices |
KR102473579B1 (ko) * | 2017-05-11 | 2022-12-01 | 포항공과대학교 산학협력단 | 가중치 소자 및 이의 작동 방법 |
US10580492B2 (en) * | 2017-09-15 | 2020-03-03 | Silicon Storage Technology, Inc. | System and method for implementing configurable convoluted neural networks with flash memories |
KR102406868B1 (ko) * | 2017-11-23 | 2022-06-10 | 삼성전자주식회사 | 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법 |
US10748630B2 (en) * | 2017-11-29 | 2020-08-18 | Silicon Storage Technology, Inc. | High precision and highly efficient tuning mechanisms and algorithms for analog neuromorphic memory in artificial neural networks |
KR102610842B1 (ko) * | 2017-12-01 | 2023-12-07 | 한국전자통신연구원 | 뉴럴 네트워크에서의 프로세싱 엘리먼트 및 그 동작 방법 |
US10908817B2 (en) * | 2017-12-08 | 2021-02-02 | Sandisk Technologies Llc | Signal reduction in a microcontroller architecture for non-volatile memory |
KR102658230B1 (ko) * | 2018-06-01 | 2024-04-17 | 삼성전자주식회사 | 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법 |
US10692570B2 (en) * | 2018-07-11 | 2020-06-23 | Sandisk Technologies Llc | Neural network matrix multiplication in memory cells |
US10860918B2 (en) * | 2018-08-21 | 2020-12-08 | Silicon Storage Technology, Inc. | Analog neural memory system for deep learning neural network comprising multiple vector-by-matrix multiplication arrays and shared components |
US11144824B2 (en) * | 2019-01-29 | 2021-10-12 | Silicon Storage Technology, Inc. | Algorithms and circuitry for verifying a value stored during a programming operation of a non-volatile memory cell in an analog neural memory in deep learning artificial neural network |
-
2019
- 2019-03-21 US US16/360,955 patent/US11144824B2/en active Active
- 2019-03-21 US US16/360,733 patent/US11586898B2/en active Active
- 2019-09-05 JP JP2021544169A patent/JP7201831B2/ja active Active
- 2019-09-05 WO PCT/US2019/049817 patent/WO2020159582A1/en unknown
- 2019-09-05 KR KR1020217023622A patent/KR20210110638A/ko not_active Application Discontinuation
- 2019-09-05 CN CN201980090685.4A patent/CN113366573A/zh active Pending
- 2019-09-05 EP EP19772938.7A patent/EP3918601B1/en active Active
- 2019-09-05 EP EP24177589.9A patent/EP4401080A3/en active Pending
- 2019-09-07 JP JP2021544167A patent/JP7153802B2/ja active Active
- 2019-09-07 EP EP23201693.1A patent/EP4280113A3/en active Pending
- 2019-09-07 WO PCT/US2019/050119 patent/WO2020159583A1/en unknown
- 2019-09-07 KR KR1020217023623A patent/KR102404411B1/ko active IP Right Grant
- 2019-09-07 EP EP19773616.8A patent/EP3918602B1/en active Active
- 2019-09-07 CN CN201980090494.8A patent/CN113366572B/zh active Active
- 2019-12-23 TW TW108147188A patent/TWI803727B/zh active
-
2020
- 2020-01-09 TW TW109100679A patent/TWI742508B/zh active
-
2022
- 2022-12-13 US US18/080,676 patent/US20230104689A1/en active Pending
- 2022-12-14 US US18/081,124 patent/US20230119017A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110069539A1 (en) * | 2009-09-23 | 2011-03-24 | International Business Machines Corporation | Programming multi-level phase change memory cells |
US20120241839A1 (en) * | 2011-03-21 | 2012-09-27 | Freescale Semiconductor, Inc. | Split-gate non-volatile memory cells having improved overlap tolerance |
TW201351253A (zh) * | 2012-04-12 | 2013-12-16 | Atmel Corp | 電流鏡自電容測量 |
US20160099073A1 (en) * | 2014-10-07 | 2016-04-07 | SanDisk Technologies, Inc. | Highly linear analog-to-digital converter and method for nonvolatile memory |
Also Published As
Publication number | Publication date |
---|---|
EP3918601B1 (en) | 2024-07-03 |
EP3918602A1 (en) | 2021-12-08 |
JP2022523075A (ja) | 2022-04-21 |
EP4280113A2 (en) | 2023-11-22 |
EP3918602B1 (en) | 2023-11-15 |
US20200242460A1 (en) | 2020-07-30 |
EP4401080A2 (en) | 2024-07-17 |
WO2020159582A1 (en) | 2020-08-06 |
JP7153802B2 (ja) | 2022-10-14 |
WO2020159583A1 (en) | 2020-08-06 |
US11144824B2 (en) | 2021-10-12 |
JP2022523316A (ja) | 2022-04-22 |
JP7201831B2 (ja) | 2023-01-10 |
US11586898B2 (en) | 2023-02-21 |
TWI803727B (zh) | 2023-06-01 |
EP4280113A3 (en) | 2024-05-08 |
CN113366573A (zh) | 2021-09-07 |
CN113366572B (zh) | 2023-03-24 |
US20230104689A1 (en) | 2023-04-06 |
EP3918601A1 (en) | 2021-12-08 |
EP4401080A3 (en) | 2024-10-02 |
CN113366572A (zh) | 2021-09-07 |
US20200242461A1 (en) | 2020-07-30 |
KR20210110638A (ko) | 2021-09-08 |
KR20210100194A (ko) | 2021-08-13 |
TW202040578A (zh) | 2020-11-01 |
US20230119017A1 (en) | 2023-04-20 |
TW202333154A (zh) | 2023-08-16 |
KR102404411B1 (ko) | 2022-06-02 |
TW202046317A (zh) | 2020-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI742508B (zh) | 用於驗證在深度學習人工神經網路中在模擬神經記憶體中之非揮發性記憶體單元的程式化操作期間儲存之值的演算法及電路 | |
TWI737078B (zh) | 深度學習人工神經網路中的類比神經記憶體中用於將神經元電流轉換為基於神經元電流的時間脈衝之系統 | |
TWI708249B (zh) | 用於在深度學習人工類神經網路中的類比類神經記憶體之高電壓產生之方法及設備 | |
TWI725509B (zh) | 包括多重向量矩陣乘法陣列及共享組件之用於深度學習神經網路的類比神經記憶體系統 | |
TWI785435B (zh) | 調校非揮發性記憶體單元之向量矩陣乘法陣列中之選定非揮發性記憶體單元之方法 | |
TWI809663B (zh) | 用於人工神經網路中之類比神經記憶體之精確資料調校方法及裝置 | |
TWI780719B (zh) | 非揮發性記憶體系統 | |
US20240265951A1 (en) | Current-to-voltage converter comprising common mode circuit | |
US20240282351A1 (en) | Output block for array of non-volatile memory cells | |
WO2024162979A1 (en) | Current-to-voltage converter comprising common mode circuit |