TW202341014A - 深度學習人工神經網路中電性參數的校準 - Google Patents
深度學習人工神經網路中電性參數的校準 Download PDFInfo
- Publication number
- TW202341014A TW202341014A TW112103391A TW112103391A TW202341014A TW 202341014 A TW202341014 A TW 202341014A TW 112103391 A TW112103391 A TW 112103391A TW 112103391 A TW112103391 A TW 112103391A TW 202341014 A TW202341014 A TW 202341014A
- Authority
- TW
- Taiwan
- Prior art keywords
- array
- output
- digital
- analog
- input
- Prior art date
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 48
- 238000013135 deep learning Methods 0.000 title abstract description 11
- 238000013507 mapping Methods 0.000 claims abstract description 9
- 210000004027 cell Anatomy 0.000 claims description 406
- 230000015654 memory Effects 0.000 claims description 269
- 230000006870 function Effects 0.000 claims description 80
- 210000002569 neuron Anatomy 0.000 claims description 65
- 230000001537 neural effect Effects 0.000 claims description 30
- 239000000872 buffer Substances 0.000 claims description 29
- 239000003990 capacitor Substances 0.000 claims description 25
- 238000012886 linear function Methods 0.000 claims description 9
- 238000005070 sampling Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 4
- 239000010410 layer Substances 0.000 description 107
- 239000013598 vector Substances 0.000 description 81
- 238000000034 method Methods 0.000 description 57
- 210000000225 synapse Anatomy 0.000 description 38
- 238000003491 array Methods 0.000 description 35
- 238000007667 floating Methods 0.000 description 33
- 239000011159 matrix material Substances 0.000 description 29
- 230000005284 excitation Effects 0.000 description 28
- 239000000758 substrate Substances 0.000 description 13
- 238000004519 manufacturing process Methods 0.000 description 11
- 230000004913 activation Effects 0.000 description 10
- 239000000463 material Substances 0.000 description 10
- 230000002093 peripheral effect Effects 0.000 description 8
- 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
- 230000008859 change Effects 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 6
- 230000006399 behavior Effects 0.000 description 5
- 230000000295 complement effect Effects 0.000 description 5
- 230000009977 dual effect Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 5
- 230000006403 short-term memory Effects 0.000 description 5
- 229910052710 silicon Inorganic materials 0.000 description 5
- 239000010703 silicon Substances 0.000 description 5
- 230000000946 synaptic effect Effects 0.000 description 5
- 238000009966 trimming Methods 0.000 description 5
- 238000013527 convolutional neural network Methods 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 210000004205 output neuron Anatomy 0.000 description 4
- 238000011176 pooling Methods 0.000 description 4
- 238000010187 selection method Methods 0.000 description 4
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 3
- 238000002347 injection Methods 0.000 description 3
- 239000007924 injection Substances 0.000 description 3
- 238000010606 normalization Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012360 testing method Methods 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
- 238000013459 approach 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
- 230000000694 effects Effects 0.000 description 2
- 239000002784 hot electron Substances 0.000 description 2
- 238000002493 microarray Methods 0.000 description 2
- 150000004767 nitrides Chemical class 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 239000002356 single layer Substances 0.000 description 2
- 230000005641 tunneling Effects 0.000 description 2
- 238000010396 two-hybrid screening Methods 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N Silicium dioxide Chemical compound O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 1
- LPQOADBMXVRBNX-UHFFFAOYSA-N ac1ldcw0 Chemical compound Cl.C1CN(C)CCN1C1=C(F)C=C2C(=O)C(C(O)=O)=CN3CCSC1=C32 LPQOADBMXVRBNX-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 229910052799 carbon Inorganic materials 0.000 description 1
- 210000003169 central nervous system Anatomy 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 239000007943 implant Substances 0.000 description 1
- 238000011065 in-situ storage Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000012212 insulator Substances 0.000 description 1
- 210000001153 interneuron Anatomy 0.000 description 1
- 230000003834 intracellular effect Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000004508 polar body Anatomy 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000006903 response to temperature Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 229910052814 silicon oxide Inorganic materials 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Classifications
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
- G06F17/12—Simultaneous equations, e.g. systems of linear equations
-
- 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
- G06N3/0442—Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
-
- 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/0464—Convolutional networks [CNN, ConvNet]
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M1/00—Analogue/digital conversion; Digital/analogue conversion
- H03M1/10—Calibration or testing
- H03M1/1009—Calibration
- H03M1/1014—Calibration at one point of the transfer characteristic, i.e. by adjusting a single reference value, e.g. bias or gain error
- H03M1/1023—Offset correction
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M1/00—Analogue/digital conversion; Digital/analogue conversion
- H03M1/10—Calibration or testing
- H03M1/1009—Calibration
- H03M1/1033—Calibration over the full range of the converter, e.g. for correcting differential non-linearity
- H03M1/1057—Calibration over the full range of the converter, e.g. for correcting differential non-linearity by trimming, i.e. by individually adjusting at least part of the quantisation value generators or stages to their nominal values
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M1/00—Analogue/digital conversion; Digital/analogue conversion
- H03M1/12—Analogue/digital converters
- H03M1/14—Conversion in steps with each step involving the same or a different conversion means and delivering more than one bit
- H03M1/142—Conversion in steps with each step involving the same or a different conversion means and delivering more than one bit the reference generators for the steps being arranged in a common two-dimensional array
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M1/00—Analogue/digital conversion; Digital/analogue conversion
- H03M1/12—Analogue/digital converters
- H03M1/34—Analogue value compared with reference values
- H03M1/38—Analogue value compared with reference values sequentially only, e.g. successive approximation type
- H03M1/46—Analogue value compared with reference values sequentially only, e.g. successive approximation type with digital/analogue converter for supplying reference values to converter
- H03M1/466—Analogue value compared with reference values sequentially only, e.g. successive approximation type with digital/analogue converter for supplying reference values to converter using switched capacitors
- H03M1/468—Analogue value compared with reference values sequentially only, e.g. successive approximation type with digital/analogue converter for supplying reference values to converter using switched capacitors in which the input S/H circuit is merged with the feedback DAC array
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Operations Research (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Neurology (AREA)
- Power Engineering (AREA)
- Nonlinear Science (AREA)
- Non-Volatile Memory (AREA)
- Analogue/Digital Conversion (AREA)
Abstract
揭示用於在一深度學習人工神經網路中執行各種電性參數之校準的眾多實施例。在一個實施例中,一種系統包含:一數位至類比轉換器,其用於接收
k個位元之一輸入且產生一第一類比輸出;一映射純量器,其用於將該第一類比輸出轉換成一第二類比輸出;及一類比至數位轉換器,其用於自該第二類比輸出產生
n個位元之一輸出,其中
n為不同於
k之一值。
Description
[優先權主張]本申請案主張在2022年2月8日申請且題為「深度學習人工神經網路中使用啟發法及機器學習之電性參數的校準」(Calibration of Electrical Parameters Using Heuristics and Machine Learning in a Deep Learning Artificial Neural Network)之美國臨時專利申請案第63/307,983號及在2022年4月22日申請且題為「深度學習人工神經網路中電性參數的校準」(Calibration of Electrical Parameters In A Deep Learning Artificial Neural Network)之美國專利申請案第17/727,650號的優先權,該等申請案以引用之方式併入本文中。
揭示用於在深度學習人工神經網路中執行各種電性參數之校準的眾多實施例。
人工神經網路模擬生物神經網路(動物之中樞神經系統,特定而言為大腦)且用以估計或估算可取決於大量輸入且通常未知之功能。人工神經網路通常包括彼此交換訊息之互連「神經元」的層。
圖1示出人工神經網路,其中圓圈表示神經元之輸入或層。連接(稱為突觸)由箭頭表示,且具有可基於經驗進行調節之數值權重。此使得神經網路適應於輸入且能夠學習。通常,神經網路包括多個輸入之層。通常存在一或多個中間神經元層及提供神經網路之輸出的輸出神經元層。各層級處之神經元基於自突觸接收到之資料而個別地或共同地作出決策。
用於高效能資訊處理之人工神經網路之發展中的主要挑戰中之一者為缺乏適當的硬體技術。事實上,實際神經網路依賴於大量突觸,從而實現神經元之間的高度連接性,亦即,極高計算並行性。原則上,此複雜性可利用數位超級電腦或專門圖形處理單元叢集來達成。然而,除高成本以外,相較於生物網路,此等方法亦受中等能效困擾,主要因為生物網路執行低精度類比計算,所以其消耗少得多的能量。CMOS類比電路已用於人工神經網路,但鑒於大量神經元及突觸,因此大多數CMOS實施之突觸已過於龐大。
申請人先前在以引用之方式併入的美國專利申請公開案2017/0337466A1中揭示了一種人工(類比)神經網路,其利用一或多個非揮發性記憶體陣列作為突觸。非揮發性記憶體陣列作為類比神經記憶體操作,且包含配置成列及行之非揮發性記憶體胞元。神經網路包括:第一複數個突觸,其經組構以接收第一複數個輸入且自該第一複數個輸入產生第一複數個輸出;及第一複數個神經元,其經組構以接收第一複數個輸出。該第一複數個突觸包括複數個記憶體胞元,其中該等記憶體胞元中之各者包括:形成於半導體基板中之隔開的源極區及汲極區,其中通道區在源極區與汲極區之間延伸;浮動閘極,其裝設於通道區之第一部分上方且與該第一部分絕緣;及非浮動閘極,其裝設於通道區之第二部分上方且與該第二部分絕緣。該複數個記憶體胞元中之各者儲存對應於浮動閘極上之電子數目的權重值。該複數個記憶體胞元將第一複數個輸入乘以所儲存權重值以產生第一複數個輸出。
非揮發性記憶體胞元
非揮發性記憶體為熟知的。舉例而言,以引用之方式併入本文中的美國專利5,029,130(「'130專利」)揭示了分離閘極非揮發性記憶體胞元之陣列,該等記憶體胞元為一種類型之快閃記憶體胞元。此記憶體胞元210顯示於圖2中。各記憶體胞元210包括形成於半導體基板12中之源極區14及汲極區16,其中通道區18在源極區與汲極區之間。浮動閘極20形成於通道區18之第一部分上方並與該第一部分絕緣(且控制該第一部分之導電性),且形成於源極區14之一部分上方。字線端子22(其通常耦接至字線)具有:第一部分,其裝設於通道區18之第二部分上方且與該第二部分絕緣(且控制該第二部分之導電性);及第二部分,其向上延伸且在浮動閘極20上方。浮動閘極20及字線端子22藉由閘極氧化物與基板12絕緣。位元線24耦接至汲極區16。
記憶體胞元210藉由將高的正電壓置於字線端子22上來抹除(其中電子自浮動閘極移除),此使得浮動閘極20上之電子經由富爾-諾罕(Fowler-Nordheim;FN)穿隧自浮動閘極20穿過中間絕緣物穿隧至字線端子22。
記憶體胞元210藉由將正電壓置於字線端子22上且將正電壓置於源極區14上而利用熱電子(其中電子置於浮動閘極上)進行源側注入(SSI)來程式化。電子電流將自汲極區16朝向源極區14流動。當電子到達字線端子22與浮動閘極20之間的間隙時,該等電子將加速且被加熱。經加熱電子中之一些將由於來自浮動閘極20之吸引靜電力而穿過閘極氧化物注入至浮動閘極20上。
記憶體胞元210係藉由將正讀取電壓置於汲極區16及字線端子22上(此接通通道區18之在字線端子下方的部分)來讀取。若浮動閘極20帶正電(亦即,電子經抹除),則通道區18之在浮動閘極20下方的部分亦接通,且電流將流經通道區18,此被感測為經抹除或「1」狀態。若浮動閘極20帶負電(亦即,用電子程式化),則通道區之在浮動閘極20下方的部分大部分或完全斷開,且電流將不流經通道區18(或將存在極少電流),其被感測為經程式化或「0」狀態。
表1描繪可施加至記憶體胞元210之端子以用於執行讀取、抹除及程式化操作的典型電壓及電流範圍:
表1:圖2之快閃記憶體胞元210的操作
WL | BL | SL | |
讀取 | 2-3V | 0.6-2V | 0V |
抹除 | ~11-13V | 0V | 0V |
程式化 | 1-2V | 10.5-3μA | 9-10V |
其他分離閘極記憶體胞元組構為眾所皆知,該等分離閘極記憶體胞元組構係其他類型之快閃記憶體胞元。舉例而言,圖3描繪四閘極記憶體胞元310,其包含源極區14、汲極區16、在通道區18之第一部分上方的浮動閘極20、在通道區18之第二部分上方的選擇閘極22(通常耦接至字線WL)、在浮動閘極20上方之控制閘極28,及在源極區14上方之抹除閘極30。此組構描述於美國專利6,747,310中,其出於所有目的以引用之方式併入本文中。此處,除浮動閘極20以外,所有閘極皆為非浮動閘極,此意謂該等閘極電連接或可電連接至電壓源。程式化係藉由來自通道區18之經加熱電子將自身注入至浮動閘極20上來執行。抹除係藉由電子自浮動閘極20穿隧至抹除閘極30來執行。
表2描繪可施加至記憶體胞元310之端子以用於執行讀取、抹除及程式化操作的典型電壓及電流範圍:
表2:圖3之快閃記憶體胞元310的操作
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 | 0.1-1μA | 8-11V | 4.5-9V | 4.5-5V |
圖4描繪三閘極記憶體胞元410,其為另一類型之快閃記憶體胞元。記憶體胞元410與圖3之記憶體胞元310相同,例外之處在於記憶體胞元410不具有單獨的控制閘極。抹除操作(由此經由使用抹除閘極來進行抹除)及讀取操作類似於圖3之抹除操作及讀取操作,例外之處在於未施加控制閘極偏壓。程式化操作亦在無控制閘極偏壓之情況下進行,且結果,較高壓在程式化操作期間經施加於源極線上以補償控制閘極偏壓之缺乏。
表3描繪可施加至記憶體胞元410之端子以用於執行讀取、抹除及程式化操作的典型電壓及電流範圍:
表3:圖4之快閃記憶體胞元410的操作
WL/SG | BL | EG | SL | |
讀取 | 0.7-2.2V | 0.6-2V | 0-2.6V | 0V |
抹除 | -0.5V/0V | 0V | 11.5V | 0V |
程式化 | 1V | 0.2-3μA | 4.5V | 7-9V |
圖5描繪堆疊閘極記憶體胞元510,其為另一類型之快閃記憶體胞元。記憶體胞元510類似於圖2之記憶體胞元210,例外之處在於浮動閘極20在整個通道區18上方延伸,且控制閘極22(其在此處將耦接至字線)在浮動閘極20上方延伸,浮動閘極藉由絕緣層(圖中未示)與控制閘極分離。該抹除係藉由電子自FG至基板之FN隧穿而進行,程式化係藉由通道區18與汲極區16之間的區處進行通道熱電子(CHE)注入、藉由電子自源極區14朝向汲極區16流動來進行,且讀取操作類似於針對具有較高控制閘極電壓之記憶體胞元210之讀取操作。
表4描繪可施加至記憶體胞元510之端子以及基板12以用於執行讀取、抹除及程式化操作的典型電壓範圍:
表4:圖5之快閃記憶體胞元510的操作
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 |
本文中所描述之方法及手段可應用於其他非揮發性記憶體技術,諸如但不限於FINFET分離閘極快閃記憶體或堆疊閘極快閃記憶體、NAND快閃記憶體、矽-氧化物-氮化物-氧化物-矽(SONOS,氮化物中之電荷阱)、金屬-氧化物-氮化物-氧化物-矽(MONOS,氮化物中之金屬電荷阱)、電阻式ram(ReRAM)、相變記憶體(PCM)、磁性ram (MRAM)、鐵電ram(FeRAM)、電荷阱(CT)記憶體、碳管(CN)記憶體、雙位準或多位準一次性可程式化(OTP)及相關電子ram(CeRAM)。
為了利用包含上文在人工神經網路中所描述之非揮發性記憶體胞元的類型中之一者的記憶體陣列,進行兩個修改。首先,線經組構以使得各記憶體胞元可個別地經程式化、抹除及讀取而不會不利地影響陣列中之其他記憶體胞元的記憶體狀態,如下文進一步解釋。其次,提供記憶體胞元之連續(類比)程式化。
具體而言,陣列中之各記憶體胞元之記憶體狀態(亦即,浮動閘極上之電荷)可連續地自完全抹除狀態改變為完全程式化狀態,且反之亦然,該改變為獨立的且對其他記憶體胞元之干擾最小。此意謂胞元儲存實際上為類比的,或至少可儲存許多離散值(諸如,16或64個不同值)中之一者,此允許對記憶體陣列中之所有記憶體胞元進行極精確且個別的調節,且此使得記憶體陣列對於儲存神經網路之突觸權重及對該等突觸權重進行微調調整係理想的。
使用非揮發性記憶體胞元陣列之神經網路
圖6在概念上繪示利用本發明實施例之非揮發性記憶體陣列的神經網路之非限制性實施例。此實施例將非揮發性記憶體陣列神經網路用於面部辨識應用,但任何其他適當的應用皆可使用基於非揮發性記憶體陣列之神經網路來實施。
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(池化),其池化來自各特徵圖中之連續非重疊2×2區的值。池化函數P1之目的為使附近方位達到平均(或亦可使用max函數),以例如降低邊緣方位之相依性且在行進至下一級之前減小資料大小。在層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個神經元,其中最高輸出神經元判定類別。此輸出可例如指示原始影像之內容的識別或分類。
各突觸層係使用非揮發性記憶體胞元之陣列或陣列之一部分來實施。
圖7為可用於彼目的之陣列的方塊圖。向量矩陣乘法(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之經整流輸出值使特徵圖之元素變成下一層(例如,圖6中之C1),且接著應用於下一突觸以產生下一特徵圖層或最終層。因此,在此實施例中,非揮發性記憶體胞元陣列33構成複數個突觸(其自前一神經元層或自諸如影像資料庫之輸入層接收該等突觸之輸入),且求和運算放大器38及激勵函數區塊39構成複數個神經元。
圖7中之VMM陣列32的輸入(WLx、EGx、CGx且選擇地,BLx及SLx)可為類比位準、二進位位準或數位位元(在此情況下,提供DAC以將數位位元轉換為適當的輸入類比位準),且輸出可為類比位準、二進位位準或數位位元(在此情況下,提供輸出ADC以將輸出類比位準轉換成數位位元)。
圖8為描繪VMM陣列32(此處標記為VMM陣列32a、32b、32c、32d及32e)之眾多層之使用的方塊圖。如圖8中所顯示,表示為Inputx之輸入由數位至類比轉換器31自數位轉換為類比,且被提供至輸入VMM陣列32a。經轉換之類比輸入可為電壓或電流。第一層之輸入D/A轉換可藉由使用函數或查找表(LUT)來進行,該函數或LUT將輸入Inputx映射至適用於輸入VMM陣列32a之矩陣乘法器的類比位準。輸入轉換亦可由類比至類比(A/A)轉換器進行以將外部類比輸入轉換為至輸入VMM陣列32a之經映射類比輸入。
由輸入VMM陣列32a產生之輸出經提供為下一VMM陣列(隱藏層級1)32b之輸入,該下一VMM陣列又產生輸出,該輸出經提供為至下一VMM陣列(隱藏層級2)32c之輸入,等等。VMM陣列32之各種層充當卷積神經網路(CNN)之突觸及神經元的不同層。各VMM陣列32a、32b、32c、32d及32e可為獨立的實體非揮發性記憶體陣列,或多個VMM陣列可利用同一實體非揮發性記憶體陣列之不同部分,或多個VMM陣列可利用同一實體非揮發性記憶體陣列之重疊部分。圖8中所顯示之實施例含有五個層(32a、32b、32c、32d、32e):一個輸入層(32a)、兩個隱藏層(32b、32c)及兩個完全連接層(32d、32e)。一般熟悉本技藝者應瞭解,此僅為實施例,且系統替代地可包含多於兩個隱藏層及多於兩個完全連接層。
向量矩陣乘法(VMM)陣列
圖9描繪神經元VMM陣列900,其尤其適合於圖3中所顯示之記憶體胞元310,且用作輸入層與下一層之間的突觸及神經元部分。VMM陣列900包含非揮發性記憶體胞元之記憶體陣列901及非揮發性參考記憶體胞元之參考陣列902(在陣列之頂部處)。替代地,另一參考陣列可置放於底部處。
在VMM陣列900中,控制閘極線(諸如,控制閘極線903)在垂直方向上延行(因此,列方向上之參考陣列902與控制閘極線903正交),且抹除閘極線(諸如,抹除閘極線904)在水平方向上延行。此處,VMM陣列900之輸入提供於控制閘極線(CG0、CG1、CG2、CG3)上,且VMM陣列900之輸出出現於源極線(SL0、SL1)上。在一個實施例中,僅使用偶數列,且在另一實施例中,僅使用奇數列。置於各源極線(分別為SL0、SL1)上之電流對來自連接至彼特定源極線之記憶體胞元的所有電流執行求和函數。
如本文中針對神經網路所描述,VMM陣列900之非揮發性記憶體胞元,亦即,VMM陣列900之記憶體胞元310,選擇地經組構以在亞臨限區中操作。
本文中所描述之非揮發性參考記憶體胞元及非揮發性記憶體胞元在弱反轉中經偏壓(亞臨限區):
Ids = Io * e
(Vg- Vth)/nVt= w * Io * e
(Vg)/nVt,
其中w = e
(- Vth)/nVt其中Ids為汲極至源極電流;Vg為記憶體胞元上之閘極電壓;Vth為記憶體胞元之臨限電壓;Vt為熱電壓=k*T/q,其中k為波茲曼常數,T為以克耳文為單位之溫度,且q為電子電荷;n為斜率因數=1+(Cdep/Cox),其中Cdep=耗盡層之電容且Cox為閘極氧化物層之電容;Io為等於臨限電壓之閘極電壓下的記憶體胞元電流,Io與(Wt/L)*u*Cox*(n-1)*Vt
2成比例,其中u為載流子遷移率,且Wt及L分別為記憶體胞元之寬度及長度。
對於使用記憶體胞元(諸如,參考記憶體胞元或周邊記憶體胞元)或電晶體將輸入電流轉換成輸入電壓之I至V對數轉換器:
Vg= n*Vt*log [Ids/wp*Io]
其中wp為參考或周邊記憶體胞元之w。
對於用作具有電流輸入之向量矩陣乘法器VMM陣列之記憶體陣列,輸出電流為:
Iout = wa * Io * e
(Vg)/nVt,亦即
Iout = (wa/wp) * Iin = W * Iin
W = e
(Vthp - Vtha)/nVt此處,wa=記憶體陣列中之各記憶體胞元的w。
Vthp為周邊記憶體胞元之有效臨限電壓,且Vtha為主(資料)記憶體胞元之有效臨限電壓。應注意,電晶體之臨限電壓係基板本體偏壓電壓的函數,且表示為Vsb之基板本體偏壓電壓可經調變以補償此溫度下的各種條件。臨限電壓Vth可表示為:
Vth = Vth0 + gamma (SQRT |Vsb - 2*φF) - SQRT |2* φF |)
其中Vth0為具有零基板偏壓之臨限電壓,φF為表面電位,且gamma為體效應參數。
字線或控制閘極可用作用於輸入電壓之記憶體胞元之輸入。
替代地,本文中所描述之VMM陣列的非揮發性記憶體胞元可經組構以在線性區中操作:
Ids = beta* (Vgs-Vth)*Vds;beta = u*Cox*Wt/L
W = α (Vgs-Vth)
此意謂線性區中之權重W與(Vgs-Vth)成比例
字線或控制閘極或位元線或源極線可用作在線性區中操作之記憶體胞元的輸入。位元線或源極線可用作記憶體胞元之輸出。
對於I至V線性轉換器,記憶體胞元(諸如,參考記憶體胞元或周邊記憶體胞元)或在線性區中操作之電晶體可用以將輸入/輸出電流線性地轉換成輸入/輸出電壓。
替代地,本文中所描述之VMM陣列的記憶體胞元可經組構以在飽和區中操作:
Ids = 1/2 * beta* (Vgs-Vth)
2;beta = u*Cox*Wt/L
Wα (Vgs-Vth)
2,意謂權重W與(Vgs-Vth)
2成比例
字線、控制閘極或抹除閘極可用作在飽和區中操作之記憶體胞元的輸入。位元線或源極線可用作輸出神經元之輸出。
替代地,對於神經網路之各層或多層,本文中所描述之VMM陣列的記憶體胞元可用於所有區或其組合(亞臨限區、線性區或飽和區)中。
圖7之VMM陣列32的其他實施例描述於美國專利第10,748,630號中,該專利以引用之方式併入本文中。如彼申請案中所描述,源極線或位元線可用作神經元輸出(電流求和輸出)。
圖10描繪神經元VMM陣列1000,其尤其適合於圖2中所顯示之記憶體胞元210,且用作輸入層與下一層之間的突觸。VMM陣列1000包含非揮發性記憶體胞元之記憶體陣列1003、第一非揮發性參考記憶體胞元之參考陣列1001及第二非揮發性參考記憶體胞元之參考陣列1002。配置於陣列之行方向上的參考陣列1001及1002用以將流入端子BLR0、BLR1、BLR2及BLR3中之電流輸入轉換成電壓輸入WL0、WL1、WL2及WL3。實際上,第一及第二非揮發性參考記憶體胞元為二極體連接式貫穿多工器1014(僅部分描繪),其中電流輸入流入該等多工器中。參考胞元經調節(例如,程式化)至目標參考位準。目標參考位準由參考微型陣列矩陣(圖中未示)提供。
記憶體陣列1003用於兩個目的。首先,其儲存將由VMM陣列1000在其各別記憶體胞元上使用之權重。其次,記憶體陣列1003有效地將輸入(亦即,在端子BLR0、BLR1、BLR2及BLR3中提供之電流輸入,其由參考陣列1001及1002轉換成輸入電壓以供應至字線WL0、WL1、WL2及WL3)乘以儲存於記憶體陣列1003中之權重,且接著將所有結果(記憶體胞元電流)相加以在各別位元線(BL0至BLN)上產生輸出,該輸出將為下一層之輸入或最終層之輸入。藉由執行乘法及加法函數,記憶體陣列1003消除對單獨的乘法及加法邏輯電路之需求,且亦為功率高效的。此處,電壓輸入提供於字線WL0、WL1、WL2及WL3上,且輸出在讀取(推斷)操作期間出現於各別位元線BL0至BLN上。置於位元線BL0至BLN中之各者上的電流對來自連接至彼特定位元線之所有非揮發性記憶體胞元的電流執行求和函數。
表5描繪用於VMM陣列1000之操作電壓及電流。表中之行指示置於以下各者上的電壓:用於選定胞元之字線、用於未選定胞元之字線、用於選定胞元之位元線、用於未選定胞元之位元線、用於選定胞元之源極線及用於未選定胞元之源極線。列指示讀取、抹除及程式化之操作。
表5:圖10之VMM陣列1000的操作:
WL | WL-未選定 | BL | BL-未選定 | SL | SL-未選定 | |
讀取 | 1-3.5V | -0.5V/0V | 0.6-2V(Ineuron) | 0.6V-2V/0V | 0V | 0V |
抹除 | ~5-13V | 0V | 0V | 0V | 0V | 0V |
程式化 | 1-2V | -0.5V/0V | 0.1-3uA | Vinh~2.5V | 4-10V | 0-1V/FLT |
圖11描繪神經元VMM陣列1100,其尤其適合於圖2中所顯示之記憶體胞元210,且用作輸入層與下一層之間的突觸及神經元部分。VMM陣列1100包含非揮發性記憶體胞元之記憶體陣列1103、第一非揮發性參考記憶體胞元之參考陣列1101及第二非揮發性參考記憶體胞元之參考陣列1102。參考陣列1101及1102在VMM陣列1100之列方向上延行。VMM陣列類似於VMM 1000,例外之處在於在VMM陣列1100中,字線在垂直方向上延行。此處,輸入提供於字線(WLA0、WLB0、WLA1、WLB1、WLA2、WLB2、WLA3、WLB3)上,且輸出在讀取操作期間出現於源極線(SL0、SL1)上。置於各源極線上之電流對來自連接至彼特定源極線之記憶體胞元的所有電流執行求和函數。
表6描繪用於VMM陣列1100之操作電壓及電流。表中之行指示置於以下各者上的電壓:用於選定胞元之字線、用於未選定胞元之字線、用於選定胞元之位元線、用於未選定胞元之位元線、用於選定胞元之源極線及用於未選定胞元之源極線。列指示讀取、抹除及程式化之操作。
表6:圖11之VMM陣列1100的操作
WL | WL-未選定 | BL | BL-未選定 | SL | SL-未選定 | |
讀取 | 1-3.5V | -0.5V/0V | 0.6-2V | 0.6V-2V/0V | ~0.3-1V (Ineuron) | 0V |
抹除 | ~5-13V | 0V | 0V | 0V | 0V | SL-抑制(~4-8V) |
程式化 | 1-2V | -0.5V/0V | 0.1-3uA | Vinh~2.5V | 4-10V | 0-1V/FLT |
圖12描繪神經元VMM陣列1200,其尤其適合於圖3中所顯示之記憶體胞元310,且用作輸入層與下一層之間的突觸及神經元部分。VMM陣列1200包含非揮發性記憶體胞元之記憶體陣列1203、第一非揮發性參考記憶體胞元之參考陣列1201及第二非揮發性參考記憶體胞元之參考陣列1202。參考陣列1201及1202用以將流入端子BLR0、BLR1、BLR2及BLR3中之電流輸入轉換成電壓輸入CG0、CG1、CG2及CG3。實際上,第一及第二非揮發性參考記憶體胞元為二極體連接式貫穿多工器1212(僅部分描繪),其中電流輸入經由BLR0、BLR1、BLR2及BLR3流入該等多工器中。多工器1212各自包括各別多工器1205及串疊(cascoding)電晶體1204,以確保在讀取操作期間第一及第二非揮發性參考記憶體胞元中之各者的位元線(諸如,BLR0)上存在恆定電壓。參考胞元經調節至目標參考位準。
記憶體陣列1203用於兩個目的。首先,其儲存將由VMM陣列1200使用之權重。其次,記憶體陣列1203有效地將輸入(提供至端子BLR0、BLR1、BLR2及BLR3之電流輸入,其中參考陣列1201及1202將此等電流輸入轉換成輸入電壓以供應至控制閘極CG0、CG1、CG2及CG3)乘以儲存於記憶體陣列中之權重,且接著將所有結果(胞元電流)相加以產生輸出,該輸出呈現於BL0至BLN上,且將為下一層之輸入或最終層之輸入。藉由執行乘法及加法函數,記憶體陣列消除對單獨的乘法及加法邏輯電路之需求,且亦為功率高效的。此處,輸入提供於控制閘極線(CG0、CG1、CG2及CG3)上,且輸出在讀取操作期間出現於位元線(BL0至BLN)上。置於各位元線上之電流對來自連接至彼特定位元線之記憶體胞元的所有電流執行求和函數。
VMM陣列1200對記憶體陣列1203中之非揮發性記憶體胞元實施單向調節。亦即,各非揮發性記憶體胞元經抹除且接著經部分程式化,直至達到浮動閘極上之所需電荷。若過多電荷被置於浮動閘極上(使得錯誤值儲存於胞元中),則胞元被抹除且部分程式化操作之序列重新開始。如所顯示,共用同一抹除閘極(諸如,EG0或EG1)之兩列被一起抹除(此被稱為頁面抹除),且此後,部分地程式化各胞元直至達到浮動閘極上之所需電荷。
表7描繪用於VMM陣列1200之操作電壓及電流。表中之行指示置於以下各者上的電壓:用於選定胞元之字線、用於未選定胞元之字線、用於選定胞元之位元線、用於未選定胞元之位元線、用於選定胞元之控制閘極、用於與選定胞元在同一磁區中之未選定胞元的控制閘極、用於與選定胞元在不同磁區中之未選定胞元的控制閘極、用於選定胞元之抹除閘極、用於未選定胞元之抹除閘極、用於選定胞元之源極線及用於未選定胞元之源極線。列指示讀取、抹除及程式化之操作。
表7:圖12之VMM陣列1200的操作
WL | WL-未選定 | BL | BL-未選定 | CG | CG-未選定同一磁區 | CG-未選定 | EG | EG-未選定 | SL | SL-未選定 | |
讀取 | 1.0-2V | -0.5V/ 0V | 0.6-2V (Ineuron) | 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 |
圖13描繪神經元VMM陣列1300,其尤其適合於圖3中所顯示之記憶體胞元310,且用作輸入層與下一層之間的突觸及神經元部分。VMM陣列1300包含非揮發性記憶體胞元之記憶體陣列1303、第一非揮發性參考記憶體胞元之參考陣列1301及第二非揮發性參考記憶體胞元之參考陣列1302。EG線EGR0、EG0、EG1及EGR1垂直地延行,而CG線CG0、CG1、CG2及CG3以及SL線WL0、WL1、WL2及WL3水平地延行。VMM陣列1300類似於VMM陣列1200,例外之處在於VMM陣列1300實施雙向調節,其中由於使用單獨EG線,各個別胞元可視需要被完全抹除、部分程式化及部分抹除以達到浮動閘極上之所需電荷量。如所顯示,參考陣列1301及1302將端子BLR0、BLR1、BLR2及BLR3中之輸入電流轉換成待在列方向上施加至記憶體胞元之控制閘極電壓CG0、CG1、CG2及CG3(經由二極體連接式參考胞元貫穿多工器1314之動作)。電流輸出(神經元)在位元線BL0至BLN中,其中各位元線對來自連接至彼特定位元線之非揮發性記憶體胞元的所有電流進行求和。
表8描繪用於VMM陣列1300之操作電壓及電流。表中之行指示置於以下各者上的電壓:用於選定胞元之字線、用於未選定胞元之字線、用於選定胞元之位元線、用於未選定胞元之位元線、用於選定胞元之控制閘極、用於與選定胞元在同一磁區中之未選定胞元的控制閘極、用於與選定胞元在不同磁區中之未選定胞元的控制閘極、用於選定胞元之抹除閘極、用於未選定胞元之抹除閘極、用於選定胞元之源極線及用於未選定胞元之源極線。列指示讀取、抹除及程式化之操作。
表8:圖13之VMM陣列1300的操作
WL | WL-未選定 | BL | BL-未選定 | CG | CG-未選定同一磁區 | CG-未選定 | EG | EG-未選定 | SL | SL-未選定 | |
讀取 | 1.0-2V | -0.5V/ 0V | 0.6-2V (Ineuron) | 0V | 0-2.6V | 0-2.6V | 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 |
圖22描繪神經元VMM陣列2200,其尤其適合於圖2中所顯示之記憶體胞元210,且用作輸入層與下一層之間的突觸及神經元部分。在VMM陣列2200中,輸入INPUT
0、…、INPUT
N分別在位元線BL
0、…、BL
N上經接收,且輸出OUTPUT
1、OUTPUT
2、OUTPUT
3及OUTPUT
4分別產生於源極線SL
0、SL
1、SL
2及SL
3上。
圖23描繪神經元VMM陣列2300,其尤其適合於圖2中所顯示之記憶體胞元210,且用作輸入層與下一層之間的突觸及神經元部分。在此實施例中,輸入INPUT
0、INPUT
1、INPUT
2及INPUT
3分別在源極線SL
0、SL
1、SL
2及SL
3上經接收,且輸出OUTPUT
0、…、OUTPUT
N產生於位元線BL
0、…、BL
N上。
圖24描繪神經元VMM陣列2400,其尤其適合於圖2中所顯示之記憶體胞元210,且用作輸入層與下一層之間的突觸及神經元部分。在此實施例中,輸入INPUT
0、…、INPUT
M分別在字線WL
0、…、WL
M上經接收,且輸出OUTPUT
0、…、OUTPUT
N產生於位元線BL
0、…、BL
N上。
圖25描繪神經元VMM陣列2500,其尤其適合於圖3中所顯示之記憶體胞元310,且用作輸入層與下一層之間的突觸及神經元部分。在此實施例中,輸入INPUT
0、…、INPUT
M分別在字線WL
0、…、WL
M上經接收,且輸出OUTPUT
0、…、OUTPUT
N產生於位元線BL
0、…、BL
N上。
圖26描繪神經元VMM陣列2600,其尤其適合於圖4中所顯示之記憶體胞元410,且用作輸入層與下一層之間的突觸及神經元部分。在此實施例中,輸入INPUT
0、…、INPUT
N分別在垂直控制閘極線上CG
0、…、CG
N經接收,且輸出OUTPUT
1及OUTPUT
2產生於源極線SL
0及SL
1上。
圖27描繪神經元VMM陣列2700,其尤其適合於圖4中所顯示之記憶體胞元410,且用作輸入層與下一層之間的突觸及神經元部分。在此實施例中,輸入INPUT
0、…、INPUT
N分別在位元線控制閘極2701-1、2701-2、…、2701-(N-1)及2701-N之閘極上經接收,該等位元線控制閘極分別耦接至位元線BL
0、…、BL
N。示範性輸出OUTPUT
1及OUTPUT
2產生於源極線SL
0及SL
1上。
圖28描繪神經元VMM陣列2800,其尤其適合於圖3中所顯示之記憶體胞元310、圖5中所顯示之記憶體胞元510及圖7中所顯示之記憶體胞元710,且用作輸入層與下一層之間的突觸及神經元部分。在此實施例中,輸入INPUT
0、…、INPUT
M在字線WL
0、…、WL
M上經接收,且輸出OUTPUT
0、…、OUTPUT
N分別產生於位元線BL
0、…、BL
N上。
圖29描繪神經元VMM陣列2900,其尤其適合於圖3中所顯示之記憶體胞元310、圖5中所顯示之記憶體胞元510及圖7中所顯示之記憶體胞元710,且用作輸入層與下一層之間的突觸及神經元部分。在此實施例中,輸入INPUT
0、…、INPUT
M在控制閘極線CG
0、…、CG
M上經接收。輸出OUTPUT
0、…、OUTPUT
N分別產生於垂直源極線SL
0、…、SL
N上,其中各源極線SL
i耦接至行i中之所有記憶體胞元之源極線。
圖30描繪神經元VMM陣列3000,其尤其適合於圖3中所顯示之記憶體胞元310、圖5中所顯示之記憶體胞元510及圖7中所顯示之記憶體胞元710,且用作輸入層與下一層之間的突觸及神經元部分。在此實施例中,輸入INPUT
0、…、INPUT
M在控制閘極線CG
0、…、CG
M上經接收。輸出OUTPUT
0、…、OUTPUT
N分別產生於垂直位元線BL
0、…、BL
N上,其中各位元線BL
i耦接至行i中之所有記憶體胞元之位元線。
長短期記憶體
先前技術包括被稱為長短期記憶體(LSTM)之概念。LSTM單元常常用於神經網路中。LSTM允許神經網路在預定任意時間間隔內記住資訊且在後續操作中使用彼資訊。習知LSTM單元包含胞元、輸入閘、輸出閘及遺忘閘。三個閘調節資訊流入及流出胞元以及在LSTM中記住資訊的時間間隔。VMM尤其適用於LSTM單元。
圖14描繪示範性LSTM 1400。在此實施例中,LSTM 1400包含胞元1401、1402、1403及1404。胞元1401接收輸入向量x
0,且產生輸出向量h
0及胞元狀態向量c
0。胞元1402接收輸入向量x
1、來自胞元1401之輸出向量(隱藏狀態)h
0及來自胞元1401之胞元狀態c
0,且產生輸出向量h
1及胞元狀態向量c
1。胞元1403接收輸入向量x
2、來自胞元1402之輸出向量(隱藏狀態)h
1及來自胞元1402之胞元狀態c
1,且產生輸出向量h
2及胞元狀態向量c
2。胞元1404接收輸入向量x
3、來自胞元1403之輸出向量(隱藏狀態)h
2及來自胞元1403之胞元狀態c
2,且產生輸出向量h
3。可使用額外胞元,且具有四個胞元之LSTM僅為實施例。
圖15描繪LSTM胞元1500之示範性實施方案,其可用於圖14中之胞元1401、1402、1403及1404。LSTM胞元1500接收輸入向量x(t)、來自先前胞元之胞元狀態向量c(t-1)及來自先前胞元之輸出向量h(t-1),且產生胞元狀態向量c(t)及輸出向量h(t)。
LSTM胞元1500包含S型函數構件1501、1502及1503,其中之各者應用0與1之間的數字以控制輸入向量中之各分量的多少被允許轉至輸出向量。LSTM胞元1500亦包含用以將雙曲正切函數應用於輸入向量之雙曲正切構件1504及1505、用以將兩個向量相乘在一起之乘法器構件1506、1507及1508,以及用以將兩個向量相加在一起之加法構件1509。可將輸出向量h(t)提供至系統中之下一LSTM胞元,或可出於其他目的來存取該輸出向量。
圖16描繪LSTM胞元1600,其為LSTM胞元1500之實施方案的實施例。為了方便讀者,來自LSTM胞元1500之相同編號用於LSTM胞元1600中。S型函數構件1501、1502及1503以及雙曲正切構件1504各自包含多個VMM陣列1601及激勵電路區塊1602。因此,可見VMM陣列特別適用於在某些神經網路系統中使用之LSTM胞元。乘法器構件1506、1507及1508以及加法構件1509以數位方式或以類比方式實施。激勵函數區塊1602可以數位方式或以類比方式實施。
圖17中顯示LSTM胞元1600之替代例(及LSTM胞元1700之實施方案的另一實施例)。在圖17中,S型函數構件1501、1502及1503以及雙曲正切構件1504以時間多工方式共用同一實體硬體(VMM陣列1701及激勵函數區塊1702)。LSTM胞元1700亦包含用以將兩個向量相乘在一起之乘法器構件1703、用以將兩個向量相加在一起之加法構件1708、雙曲正切構件1505(其包含激勵函數區塊1702)、用以在自S型函數區塊1702輸出i(t)時儲存值i(t)之暫存器1707、用以在經由多工器1710自乘法器構件1703輸出值f(t)*c(t-1)時儲存彼值之暫存器1704、用以在經由多工器1710自乘法器構件1703輸出值i(t)*u(t)時儲存彼值之暫存器1705,及用以在經由多工器1710及多工器1709自乘法器構件1703輸出值o(t)*c~(t)時儲存彼值之暫存器1706。
LSTM胞元1600含有VMM陣列1601及各別激勵函數區塊1602之多個集合,而LSTM胞元1700僅含有VMM陣列1701及激勵函數區塊1702之一個集合,該等VMM陣列及激勵函數區塊用以表示LSTM胞元1700之實施例中的多個層。LSTM胞元1700將需要比LSTM 1600少的空間,此係因為相較於LSTM胞元1600,LSTM胞元1700將需要1/4的空間用於VMM及激勵函數區塊。
可進一步瞭解,LSTM單元將通常包含多個VMM陣列,其中之各者需要由VMM陣列外部之某些電路區塊(諸如,求和器及激勵函數區塊以及高壓產生區塊)提供的功能性。為各VMM陣列提供單獨電路區塊將需要半導體構件內之大量空間且將略微低效。因此,下文所描述之實施例減少在VMM陣列自身外部所需之電路系統。
閘控遞迴單元
類比VMM實施方案可用於閘控遞迴單元(GRU)系統。GRU為遞迴神經網路中之閘控機構。GRU類似於LSTM,例外之處在於GRU胞元通常含有少於LSTM胞元之組件。
圖18描繪示範性GRU 1800。在此實施例中,GRU 1800包含胞元1801、1802、1803及1804。胞元1801接收輸入向量x
0且產生輸出向量h
0。胞元1802接收輸入向量x
1、來自胞元1801之輸出向量h
0且產生輸出向量h
1。胞元1803接收輸入向量x
2及來自胞元1802之輸出向量(隱藏狀態)h
1且產生輸出向量h
2。胞元1804接收輸入向量x
3及來自胞元1803之輸出向量(隱藏狀態)h
2且產生輸出向量h
3。可使用額外胞元,且具有四個胞元之GRU僅為實施例。
圖19描繪GRU胞元1900之示範性實施方案,其可用於圖18之胞元1801、1802、1803及1804。GRU胞元1900接收輸入向量x(t)及來自先前GRU胞元之輸出向量h(t-1),且產生輸出向量h(t)。GRU胞元1900包含S型函數構件1901及1902,其中之各者將0與1之間的數字應用於來自輸出向量h(t-1)及輸入向量x(t)之分量。GRU胞元1900亦包含用以將雙曲正切函數應用於輸入向量之雙曲正切構件1903;用以將兩個向量相乘在一起之複數個乘法器構件1904、1905及1906;用以將兩個向量相加在一起之加法構件1907;及用以自1減去輸入以產生輸出之互補構件1908。
圖20描繪GRU胞元2000,其為GRU胞元1900之實施方案的實施例。為了方便讀者,來自GRU胞元1900之相同編號用於GRU胞元2000中。如圖20中可見,S型函數構件1901及1902以及雙曲正切構件1903各自包含多個VMM陣列2001及激勵函數區塊2002。因此,可見VMM陣列特別用於在某些神經網路系統中使用之GRU胞元中。乘法器構件1904、1905、1906、加法構件1907及互補構件1908以數位方式或以類比方式實施。激勵函數區塊2002可以數位方式或以類比方式實施。
圖21中顯示GRU胞元2200之替代例(及GRU胞元1900之實施方案的另一實施例)。在圖21中,GRU胞元2100利用VMM陣列2101及激勵函數區塊2102,該激勵函數區塊在經組構為S型函數時應用0與1之間的數字以控制輸入向量中之各分量的多少被允許轉至輸出向量。在圖21中,S型函數構件1901及1902以及雙曲正切構件1903可以時間多工方式共用同一實體硬體(VMM陣列2101及激勵函數區塊2102)。GRU胞元2100亦包含用以將兩個向量相乘在一起之乘法器構件2103、用以將兩個向量相加在一起之加法構件2105、用以自1減去輸入以產生輸出之互補構件2109、多工器2104、用以在經由多工器2104自乘法器構件2103輸出值h(t-1)*r(t)時保存彼值之暫存器2106、用以在經由多工器2104自乘法器構件2103輸出值h(t-1)*z(t)時保存彼值之暫存器2107,及用以在經由多工器2104自乘法器構件2103輸出值h
A(t)*(1-z(t))時保存彼值之暫存器2108。
GRU胞元2000含有VMM陣列2001及激勵函數區塊2002之多個集合,而GRU胞元2100僅含有VMM陣列2101及激勵函數區塊2102之一個集合,該等VMM陣列及激勵函數區塊用以表示GRU胞元2100之實施例中的多個層。GRU胞元2100將需要比GRU胞元2000少的空間,此係因為相較於GRU胞元2000,GRU胞元2100將需要1/3的空間用於VMM及激勵函數區塊。
可進一步瞭解,GRU系統將通常包含多個VMM陣列,其中之各者需要由VMM陣列外部之某些電路區塊(諸如,求和器及激勵函數區塊以及高壓產生區塊)提供的功能性。為各VMM陣列提供單獨電路區塊將需要半導體構件內之大量空間且將略微低效。因此,下文所描述之實施例減少在VMM陣列自身外部所需之電路系統。
VMM陣列之輸入可為類比位準、二進位位準、脈衝、時間調變脈衝或數位位元(在此情況下,需要DAC將數位位元轉換成適當的輸入類比位準),且輸出可為類比位準、二進位位準、時序脈衝、脈衝或數位位元(在此情況下,需要輸出ADC將輸出類比位準轉換成數位位元)。
一般而言,對於VMM陣列中之各記憶體胞元,各權重W可由單個記憶體胞元或由差分胞元或由兩個混合記憶體胞元(2個胞元之平均值)實施。在差分胞元情況下,需要兩個記憶體胞元將權重W實施為差分權重(W=W+ - W-)。在兩個混合記憶體胞元中,需要兩個記憶體胞元將權重W實施為兩個胞元之平均值。
圖31描繪VMM系統3100。在一些實施例中,儲存於VMM陣列中之權重W儲存為差分對W+(正權重)及W-(負權重),其中W = (W+) - (W-)。在VMM系統3100中,將一半位元線指明為W+線,亦即,連接至將儲存正權重W+之記憶體胞元的位元線,且將另一半位元線指明為W-線,亦即,連接至實施負權重W-之記憶體胞元的位元線。W-線以交替方式穿插於W+線當中。減法運算係由自W+線及W-線接收電流之求和電路執行,該求和電路諸如為求和電路3101及3102。W+線之輸出及W-線之輸出組合在一起,以針對所有(W+、W-)線對之各對(W+、W-)胞元,有效地得出W = W+ - W-。雖然上文已關於W-線以交替方式穿插在W+線當中進行描述,但在其他實施例中,W+線及W-線可任意地位於陣列中之任何位置。
圖32描繪另一實施例。在VMM系統3210中,正權重W+實施於第一陣列3211中且負權重W-實施於第二陣列3212中,第二陣列3212與第一陣列分離,且所得權重係藉由求和電路3213適當地組合在一起。
圖33描繪VMM系統3300。儲存於VMM陣列中之權重W儲存為差分對W+(正權重)及W-(負權重),其中W = (W+) - (W-)。VMM系統3300包含陣列3301及陣列3302。陣列3301及3302中之各者中的一半位元線經指明為W+線,亦即,連接至將儲存正權重W+之記憶體胞元的位元線,且陣列3301及3302中之各者中的另一半位元線經指明為W-線,亦即,連接至實施負權重W-之記憶體胞元的位元線。W-線以交替方式穿插於W+線當中。減法運算係由自W+線及W-線接收電流之求和電路執行,該求和電路諸如為求和電路3303、3304、3305及3306。來自各陣列3301、3302的W+線之輸出及W-線之輸出分別組合在一起,以針對所有(W+,W-)線對之各對(W+, W-)胞元,有效地得出W = W+ - W-。此外,來自各陣列3301及3302之W值可經由求和電路3307及3308進一步組合,以使得各W值係來自陣列3301的W值減去來自陣列3302之W值的結果,此意謂來自求和電路3307及3308之最終結果係兩個差分值之差分值。
用於類比神經記憶體系統中之各非揮發性記憶體胞元待經抹除及程式化,以在浮動閘極中保持極特定且精確的電荷量,亦即,電子數目。舉例而言,各浮動閘極應保存N個不同值中之一者,其中N係可由各胞元指示之不同權重的數目。N之實施例包括16、32、64、128及256。
類似地,讀取操作必須能夠在N個不同位準之間準確地辨別。
可瞭解,準確度在VMM系統中之程式化及讀取操作中極其重要。然而,記憶體胞元當中的固有變化可能會降低系統之準確度。舉例而言,諸如以下各者的特性可影響神經網路效能:胞元可傳導之最大胞元電流(Icell max)、儲存於胞元中之位元之數目、胞元之I-V斜率(類比連續輸入)(其指示針對胞元之端子上之各特定電壓而由胞元汲取的電流)、溫度行為及胞元位於奇數列抑或偶數列中。胞元利用方式之非固有變化亦可能會降低準確度。舉例而言,諸如外部組件與胞元當中的電路失配及變化以及基於胞元在陣列內之方位的電流降的特性會影響準確度。
需要可在VMM系統中即時地執行以補償在操作期間胞元當中的固有及非固有變化的校準技術。
揭示用於在深度學習人工神經網路中執行各種電性參數之校準的眾多實施例。此類電性參數之校準可補償電晶體、記憶體胞元或其他構件當中的變化或操作溫度之改變。對於深度學習人工神經網路中之各層或對於深度學習人工神經網路中之一層之一部分,可為整個深度學習人工神經網路校準電性參數。
本發明實施例之人工神經網路利用CMOS技術與非揮發性記憶體陣列之組合。
VMM系統綜述
圖34描繪示範性VMM系統3400之方塊圖。VMM系統3400包含VMM陣列3401、列解碼器3402、高壓解碼器3403、行解碼器3404、位元線驅動器3405、輸入電路3406、輸出電路3407、控制邏輯3408及偏壓產生器3409。VMM系統3400進一步包含高壓產生區塊3410,該高壓產生區塊包含電荷泵3411、電荷泵調節器3412及高壓類比精度位準產生器3413。VMM系統3400進一步包含(程式化/抹除,或權重調節)演算法控制器3414、類比電路系統3415、控制引擎3416(其可包括但不限於函數,諸如算術函數、激勵函數、嵌入式微控制器邏輯),以及測試控制邏輯3417。下文所描述之系統及方法可實施於VMM系統3400中。
輸入電路3406可包括電路,諸如DAC(數位至類比轉換器)、DPC(數位至脈衝轉換器、數位至時間調變脈衝轉換器)、AAC(類比至類比轉換器,諸如電流至電壓轉換器、對數轉換器)、PAC(脈衝至類比位準轉換器),或任何其他類型之轉換器。輸入電路3406可實施正規化、線性或非線性按比例放大/按比例縮小函數,或算術函數。輸入電路3406可對輸入位準實施溫度補償函數。輸入電路3406可實施諸如ReLU或S型之激勵函數。輸出電路3407可包括電路,諸如ADC(類比至數位轉換器,其用以將神經元類比輸出轉換成數位位元)、AAC(類比至類比轉換器,諸如電流至電壓轉換器、對數轉換器)、APC(類比至脈衝轉換器、類比至時間調變脈衝轉換器),或任何其他類型之轉換器。輸出電路3407可實施激勵函數,諸如整流線性激勵函數(ReLU)或S型。輸出電路3407可對神經元輸出實施統計正規化、正則化、按比例放大/按比例縮小/增益函數,統計捨位或算術函數(例如,加法、減法、除法、乘法、移位、對數)。輸出電路3407可對神經元輸出或陣列輸出(諸如,位元線輸出)實施溫度補償函數,以便使陣列之功率消耗保持大致恆定或諸如藉由使IV斜率保持大致相同而改良陣列(神經元)輸出的精度。
本文中描述用於執行即時校準之兩種方法。首先,揭示使用近似之方法(圖35及圖36中所顯示),其中基於自實際陣列或取樣陣列或參考陣列累積之資料假設平均I-V資料集。其次,揭示使用學習行為之方法(圖37中所顯示),其中根據網路效能調適參數。
圖35描繪用於校準VMM系統3400之示範性校準方法3500。
首先,調整一或多個電性參數且將其應用於記憶體胞元、記憶體陣列或周邊電路(操作3501)。若此為正執行之操作3501的第一執行個體,則將初始值用於電性參數。若此為正執行之操作3501的第二或稍後執行個體,則應用在操作3503(下文所論述)中判定之任何經調整電性參數。
可在記憶體胞元層級變化的電性參數之實施例包括但不限於:儲存於胞元中之權重的解析度(更改
n,其中
n為胞元之位元解析度)(例如,使用較小
n導致較好的準確度控制);可由胞元汲取之最大胞元電流(Icell max)及/或最小胞元電流(Icell min)(例如,較低Icell max導致較低功率,且較高Icell min導致改良的基線雜訊公差);胞元I-V斜率(例如,達成某一效能量度之斜率);以及胞元溫度行為及相關聯補償方案(諸如,當溫度改變時調整偏壓電壓)。
可在記憶體胞元層級變化的電性參數之實施例包括但不限於:所允許缺陷之數目(固定為「1」或「0」,不良列或不良行);所允許雜訊底限(諸如,在用冗餘胞元/陣列部分替換或停用某些胞元/陣列部分之前來自熱雜訊或爆裂或閃爍雜訊);記憶體組(具有M列及N行)之數目;寫入I/O寬度(並行地寫入之胞元之數目;此與例如來自操作電流之IRdrop (亦即,電壓降)進行折衷);共用源極線之列的數目;磁區大小(列及行之數目,此例如為面積與由於共用相同高壓線之干擾的折衷);陣列偏壓條件(諸如,位元線、字線、控制閘極、抹除閘極上之偏壓)。
可在周邊電路層級變化的電性參數之實施例包括但不限於:輸出神經元電路中之電阻、電容或另一可變特性;對輸出執行的按比例調整程度;自神經元輸出產生之數位輸出的位元解析度;偏移校準;功率與速度之間的折衷;對數位至類比轉換器、類比至數位轉換器或激勵電路之多工(每VMM陣列需要多少者、延時及輸送量與面積之折衷)。諸如正規化電路或塑形電路之電路為周邊電路之其他實施例。
其次,執行效能目標檢查(操作3502)。此可包括例如檢查神經元電流(來自陣列之位元線電流)或平均神經元電流(其中神經元電流及平均神經元電流為所判定值之實施例)在某一溫度下是否滿足目標電流(預定臨限值),或檢查神經元電流或平均神經元電流在激勵之後是否滿足預定臨限值。效能目標可與目標神經元值、電路準確度、功率或延時相關。若達成效能目標(預定臨限值),則校準方法3500繼續進行至操作3506且完成。若否,則方法繼續進行至下一操作3503。
在操作3503中,調整所所應用電性參數(操作3503)。
在操作3504中,系統判定所應用電性參數是否在預定範圍內,諸如在對應於組件或系統之公差的範圍內。若是,則重複操作3501、3502、3503及3504。若否,則認為網路電路為不良的(此係因為此情形將表明電性參數現已調整為超過可接受量)且不使用該網路電路(操作3505)。舉例而言,此可為不良晶粒之結果。
選擇地,可在VMM系統3400之操作期間即時地執行方法3500,其將例如可用以在VMM系統3400之操作溫度改變時校正參數。
圖36描繪用於校準VMM系統3400之示範性校準方法3600。校準方法3600利用神經網路推斷。用於產生此類推斷之神經網路可為任何已知類型之神經網路,諸如多層感知器(MLP)、卷積神經網路(CNN)(例如,殘差網路、ResNet-x)、遞迴神經網路(RNN)(例如,長短期記憶體LSTM)及其他網路。
首先,應用電性參數(操作3601)。若此為正執行之操作3601的第一執行個體,則將初始值用於電性參數。若此為正執行之操作3601的第二或稍後執行個體,則應用在操作3603(下文所論述)中判定之任何經調整電性參數。該等參數可與先前關於校準方法3500中之操作3501所描述的參數相同。
其次,執行效能神經網路推斷目標檢查(操作3602)。此可包含例如為修改後的國家標準與技術研究所(MNIST)辨識數字或為ImageNet對影像進行分類。若達成目標,則校準方法3600繼續進行至操作3606且完成。若未達成,則方法繼續進行至下一操作。
在操作3603中,調整所應用電性參數。
接下來,系統判定所應用電性參數是否在預定範圍內,諸如在對應於組件或系統之公差的範圍內(操作3604)。若是,則重複操作3601、3602、3603及3604。若否,則認為網路電路為不良的(此係因為此情形將表明電性參數現已調整為超過可接受量)且不使用該網路電路(操作3605)。舉例而言,此可為不良晶粒之結果。
選擇地,可在VMM系統3400之操作期間即時地執行方法3600,其將例如可用以在VMM系統3400之操作溫度改變時校正參數。
圖37描繪用於校準VMM系統3400之示範性校準方法3700。校準方法3700利用機器學習。
首先,藉由以下操作產生機器學習模型集合:將諸如偏壓電壓之一系列電性參數應用於第一非揮發性記憶體系統(例如,VMM系統3400);量測所得特性,諸如神經元電流或平均神經元電流;及將所量測的所得特性與預定目標範圍進行比較。(操作3701)。此等參數可與先前關於校準方法3500中之操作3501所描述的參數相同。
其次,在第一非揮發性記憶體系統或第二非揮發性記憶體系統(例如,VMM系統3400之另一執行個體)之操作期間,使用機器學習模型判定電性參數以應用於記憶體胞元、記憶體陣列及周邊電路(操作3702)。
圖38提供顯示電性參數在操作期間可如何依據溫度變化而快速地改變的實施例。圖38描繪均勻晶圓之矽熱導率,其為將均勻矽晶圓之溫度改變至特定溫度所花費的時間量。此速率可受多種因素影響,該等因素包括矽內之局部功率消耗。基於此曲線圖,速率約為每100 ms有1度改變。此意謂受溫度影響之電性參數可能需要在操作期間每100 ms調整一次。
圖39提供VMM系統3400中之不同記憶體胞元當中的變化之實施例。圖39描繪當各胞元在亞臨限區中操作時複數個記憶體胞元之電流-電壓資料(其顯示I-V斜率)。電流為當將電壓VCG施加至胞元之控制閘極時由胞元汲取之電流Icell。如可見,I-V斜率可針對VCG之各值而變化。各胞元之特定I-V斜率受胞元之固有特性影響且可基於儲存於胞元中之值W以及基於胞元之操作溫度而變化。由於光罩對準或製程步驟之此變化(諸如,蝕刻變化)或製程植入之此變化,該I-V斜率亦基於胞元之實體尺寸或電性參數而變化。
圖40描繪差分電流至電壓轉換器4001。差分電流至電壓轉換器4001包含運算放大器4003;可變積分電阻器4004及4005;及共模電路4006 (其用於運算放大器4003之差分放大器實施方案)。差分電流至電壓轉換器4001將兩個電流輸入IBL+及IBL-轉換成差分輸出電壓VO+及VO-,其中輸出電壓與可變電阻器4004及4005之電阻成比例。輸入電流IBL+及IBL-選擇地為表示正權重及負權重之電流。舉例而言,IBL+可為來自單個胞元之電流Iw+或位元線電流,該位元線電流為來自耦接至位元線之複數個w+胞元的電流之總和,且IBL-可為來自單個胞元之電流Iw-或位元線電流,該位元線電流為來自耦接至位元線之複數個w-胞元的電流之總和。此類正權重及負權重可用於神經網路中來表示權重(W = W+ - W-)。在另一實施例中,兩個輸入電流IBL+及IBL-可表示來自陣列之胞元電流或位元線電流及參考電流。
圖41描繪差分連續位址暫存器(SAR)類比至數位轉換器(ADC) 4102。
差分連續位址暫存器類比至數位轉換器4102使用二元搜尋經由所有可能量化位準將類比輸入或差分類比輸入轉換成數位輸出,以識別適當數位輸出。
差分連續位址暫存器類比至數位轉換器4102包含二進位電容式數位至類比轉換器(CDAC)4107、二進位CDAC 4108(與CDAC 4107互補)、比較器4109,以及SAR邏輯及暫存器4110。
差分連續位址暫存器類比至數位轉換器4102接收差分電流輸入Vinp及Vinn。SAR邏輯及暫存器4110在所有可能的數位位元組合當中重複循環,此又控制CDAC 4107及4108中之開關以將電壓源耦接至電容器。當比較器4109之輸出翻轉時,SAR邏輯及暫存器4110中之數位位元組合則作為數位輸出而輸出。選擇地,SAR邏輯及暫存器4110在數位輸出中產生額外1位元數位輸出DMAJ,該數位輸出在數位值中之大多數位元為「1」的情況下為「1」且在對應數位值中之大多數位元不為「1」的情況下為「0」。
圖42描繪示範性讀取電路4200,該讀取電路實施偏移校準以用於對VMM陣列,諸如圖34中之VMM陣列3401中的一或多條位元線執行讀取操作。讀取電路4200包含比較器4201、偏移校準電容器數位至類比轉換器4202、偏移校準電容器數位至類比轉換器4203及校準控制器4204。校準控制器4204藉由閉合或斷開標記為en及enb之各種開關來致能偏移校準電容器數位至類比轉換器4202及偏移校準電容器數位至類比轉換器4203中之各種電容器,以補償由於溫度變化而產生的偏移,如圖39中所繪示。
用於在圖40及圖41之電路的圖35及圖36之校準或訓練程序期間學習的電性參數包括位元解析度(諸如,4位元、5位元或8位元解析度)、神經元按比例調整程度(諸如,比例因子之量值,例如4×至256×)、由於偏壓電流之功率消耗程度(諸如,較高偏壓電流意謂較大功率及較快速度),及為溫度補償而添加之偏移量(添加的較高偏移值意謂較高準確度,代價為電路更複雜)。
圖43描繪待用以將輸入提供至VMM陣列,諸如圖34中之VMM陣列3401的示範性輸入區塊4300。輸入區塊4300包含:全域數位至類比轉換器(DAC)4301;位址列解碼器4302-0至4302-n,其各自對應於VMM陣列中之編號為0至n的列中之一者;列暫存器4303-0至4303-n,其各自對應於VMM陣列中之編號為0至n的列中之一者;數位比較器區塊4304-0至4304-n,其各自對應於VMM陣列中之編號為0至n的列中之一者;列取樣保持(S/H)緩衝器4305-0至4305-n,其各自對應於VMM陣列中之編號為0至n的列中之一者;輸出信號4306-0至4306-n,其各自對應於VMM陣列中之編號為0至n的列中之一者;及計數器4307。
位址列解碼器4302-0至4302-n接收列位址ADD[n:0]及致能信號EN。當ADD[n:0]為彼特定列之位址時且當EN經確證時,各位址列解碼器之表示為ENROW的輸出為高。列暫存器4303-0至4303-n載入有彼特定列之各別數位輸入位元DINx (其中x為位元之數目,諸如8或16個位元),其中載入操作由時脈信號CLK觸發,其中DINx為彼特定列之激勵輸入。為執行向量乘法矩陣運算。當特定位址列解碼器4302之輸出為高時,相關聯之列暫存器4303將被致能且將輸出其數位位元DINx。當由信號EN致能時,計數器4307對另一時脈信號CLKB中之脈衝進行計數。計數器4307之輸出為計數值。數位比較器區塊4304-0至4304-n比較儲存於各別列暫存器4303中之各者中的激勵值DINx與計數值。若計數值匹配儲存於特定列暫存器4302中之值,則對應列S/H緩衝器4305被致能以對來自全域DAC 4301之類比輸出值進行取樣及保持。全域DAC 4301對計數值(其亦匹配用於所討論列之列暫存器4303的DINx)執行數位至類比轉換。各列S/H緩衝器4305輸出所保持類比值作為輸出信號4306。若例如x=8且DINx為8位元輸入(意謂DINx存在256個不同值),則計數器4307將計數直至256且接著重設。在進行此時,其將已覆蓋DINx之所有可能值,且各列S/H緩衝器4305將已載入有其相關聯之DINx值。
舉例而言,可在彼特定列中之程式化或讀取操作期間或在讀取所有列之神經讀取操作期間將輸出信號4306施加至控制閘極線或字線。在神經讀取期間,致能所有S/H緩衝器4305以經由各別輸出信號4306驅動陣列輸入端子,從而導致由VMM陣列輸出位元線電流,該等電流接著由諸如ITV(電流至電壓轉換器)電路及ADC(類比至數位轉換器)電路之輸出電路處理。
舉例而言,可在彼特定列中之程式化操作期間將輸出信號4306施加至各別控制閘極線或字線。
在另一實施例中,列取樣保持緩衝器4305可由多個列以時間多工方式共用。
圖44描繪待用以將輸入提供至VMM陣列,諸如圖34中之VMM陣列3401的示範性列輸入區塊4400。輸入區塊4400包含:全域數位至類比轉換器(DAC)4401;位址列解碼器4402-0至4402-n,其各自對應於VMM陣列中之編號為0至n的列中之一者;列暫存器4403-0至4403-n,其各自對應於VMM陣列中之編號為0至n的列中之一者;數位多工器(mux)區塊4404-0至4404-n,其各自對應於VMM陣列中之編號為0至n的列中之一者;列取樣保持緩衝器4405-0至4405-n,其各自對應於VMM陣列中之編號為0至n的列中之一者;及輸出信號4406-0至4406-n,其各自對應於編號為0至n的列中之一者。
位址列解碼器4402-0至4402-n接收列位址ADD[n:0]及致能信號EN。當ADD[n:0]為彼特定列之位址時,各位址列解碼器之表示為ENROW的輸出為高。列暫存器4403-0至4403-n載入有彼特定列之各別數位輸入位元DINx(其中x為位元之數目,諸如8或16個位元),其中載入操作由時脈信號CLK觸發,其中DINx為彼特定列之激勵輸入。當特定位址列解碼器4402之輸出為高且EN經確證時,相關聯之列暫存器4403將被致能且輸出其各別數位位元DINx。CLKCOUNTx為由計數器提供之計數值,其可在1與列總數之間的範圍內。數位多工器4404回應於CLKCOUNTx而將各別列暫存器4403之資料多工至匯流排DIN_GDACx上。CLKCOUNTx將按順序次序致能各列(列0、列1、…),使得各列之DINx依次施加至全域DAC 4401。各列S/H緩衝器4405接收其相關聯之位址列解碼器4402的輸出,且在列位址匹配彼特定列之列位址時由各別信號ENROW致能,在此情況下,彼列S/H緩衝器4405對來自全域DAC 4401之值進行取樣且提供其作為各別類比輸出4406。舉例而言,可在彼特定列中之程式化操作期間將輸出信號4406施加至控制閘極線或字線。
在另一實施例中,列取樣保持緩衝器4405可為多個列所共用以用於對列取樣保持緩衝器進行時間多工。
圖45描繪待用以將輸入提供至VMM陣列,諸如圖34中之VMM陣列3401的示範性輸入區塊4500。輸入區塊4500類似於圖44中之輸入區塊4400,但提供來自全域數位至類比轉換器之輸出以用於神經讀取操作。輸入區塊4500包含:全域數位至類比轉換器及列解碼器4501;位址列解碼器4502-0至4502-n,其各自對應於編號為0至n的列中之各別者;列暫存器4503-0至4503-n,其各自對應於編號為0至n的列中之各別者;數位比較器4504-0至4504-n,其各自對應於編號為0至n的列中之各別者;列取樣保持緩衝器4505-0至4505-n,其各自對應於編號為0至n的列中之各別者;及輸出信號4506-0至4506-n,其各自對應於編號為0至n的列中之各別者。
位址列解碼器4502-0至4502-n接收列位址ADD[n:0]及致能信號EN。當ADD[n:0]為彼特定列之位址且EN經確證時,各位址列解碼器4502之表示為ENROW的輸出為高。列暫存器4503-0至4503-n載入有彼特定列之各別數位輸入位元DINx(其中x為位元之數目,諸如8或16個位元),其中載入由時脈信號CLK觸發,其中DINx為彼特定列之激勵輸入。當特定位址列解碼器4502之輸出ENROW為高時,相關聯之列暫存器4503將被致能且輸出其數位位元DINx。計數器4507在由信號EN致能時對另一時脈信號CLKB中之脈衝進行計數。計數器4507之輸出為計數值。數位比較器區塊4504-0至4504-n比較儲存於各別列暫存器4503中之各者中的激勵值DINx與計數值。若計數值匹配儲存於特定列暫存器4502中之值,則對應列S/H緩衝器4505被致能以對來自GDAC 4501之類比輸出值進行樣本及保持。如所顯示,存在來自GDAC 4501之兩條垂直類比輸出線。舉例而言,對於8位元GDAC 4501,一條線可遞送0至127個類比位準(對應於00000000至01111111)之輸出,且另一線可遞送128至255個類比位準(對應於10000000至11111111)之輸出。兩條線可同時操作以將列DAC取樣時間自256個(DAC)時脈減少至128個(DAC)時脈。舉例而言,可在彼特定列中之程式化操作期間將輸出信號4506施加至控制閘極線或字線。
選擇地,全域數位至類比轉換器4501可包含用於奇數列之第一全域DAC及用於偶數列之第二全域DAC。
圖46描繪待用以將輸入提供至VMM陣列,諸如圖34中之VMM陣列3401的示範性輸入區塊4600。輸入區塊4600包含:類比電壓供應器4601;位址列解碼器4602-0至4602-n,其各自對應於VMM陣列中之編號為0至n的列中之各別者;列暫存器4603-0至4603-n,其各自對應於VMM陣列中之編號為0至n的列中之各別者;局域數位至類比轉換器4604-0至4604-n(各列具有其自身的DAC),其各自對應於編號為0至n的列中之各別者;列緩衝器4605-0至4605-n,其各自對應於編號為0至n的列中之各別者;及輸出信號4606-0至4606-n,其各自對應於編號為0至n的列中之各別者。
位址列解碼器4602接收列位址ADD[n:0]及致能信號ENx。當ADD[n:0]為彼特定列之位址且ENx經確證時,各位址列解碼器之輸出ENROW為高。列暫存器4603-0至4603-n載入有彼特定列之各別數位輸入位元DINx(其中x為位元之數目,諸如8或16個位元),其中載入由時脈信號CLK觸發,其中DINx為彼特定列之激勵輸入。當特定位址列解碼器4602之輸出ENROW為高時,相關聯之列暫存器4603將被致能且將輸出其數位位元DINx。
局域數位至類比轉換器4604-0至4604-n對儲存於相關列暫存器4603中之數位位元DINx執行數位至類比轉換。用於彼(等)列之對應列取樣保持緩衝器4605對來自數位至類比轉換器4604之類比輸出進行取樣且保持彼值,該值接著作為彼特定列之輸出信號4606而施加。舉例而言,輸出信號4606可在彼一或多個特定列中之程式化操作期間以上文關於其他圖所描述之方式施加至控制閘極線或字線。
圖47描繪類似於圖46之輸入區塊的示範性輸入區塊4700,其中添加了全域DAC區塊4707。全域DAC區塊4707與局域DAC 4704串聯地工作。舉例而言,對於電容式電荷重分佈DAC (CDAC DAC),全域DAC 4707可為局域CDAC DAC提供額外參考電壓以擴展DAC解析度。
用於與輸入區塊4300、4400、4500、4600及4700相關之校準的電性參數可包括但不限於:位元解析度(藉由更改DINx中之位元的數目)、偏壓程度(藉由DAC 4604及4704以及GDACx 4301、4401、4501、4601及4707)(其意謂調整參考電壓之值或調整可變元件,諸如可變電阻器)、功率消耗程度(藉由DAC 4604及4704以及GDACx 4301、4401、4501、4601及4707)、速度(藉由DAC 4604及4704以及GDACx 4301、4401、4501、4601及4707)、偏移程度(藉由DAC 4604及4704以及GDACx 4301、4401、4501、4601及4707)、溫度補償程度(藉由DAC 4604及4704以及GDACx 4301、4401、4501、4601及4707)。
圖48描繪可代替圖43、圖44、圖45、圖46及圖47中之任何個別暫存器(諸如,列暫存器4303、4403、4503、4603及4703中之任一者)使用的示範性雙暫存器區塊4800。雙暫存器區塊4800包含由選擇信號1控制之多工器4803、由選擇信號2控制之多工器4804,以及列暫存器4801及4802。列暫存器4801可經由多工器4803載入有資料,而列暫存器4802經由多工器4804輸出資料,且反之亦然。此減少載入及讀取列暫存器所需的操作時間量,此係因為此等操作可同時或部分同時地發生。相比之下,在單暫存器組構中,在可讀出資料之前,暫存器需要載入時間。
圖49描繪用於可包含數位至類比轉換器之輸入區塊的示範性輸入-輸出值4900。此處,輸入區塊接收對應於256個不同值L0至L255之8個數位位元。輸入區塊根據對數函數回應於8個數位位元而產生類比電壓Vin,如曲線圖中所顯示。
圖50描繪示範性輸出區塊5000。輸出區塊包含電流至電壓轉換器5001(可調神經元電路)及類比至數位轉換器5002。電流至電壓轉換器5001接收輸出電流Ineu作為來自VMM陣列中之行的輸出,且將該電流轉換成電壓。類比至數位轉換器5002將該電壓轉換成n+1個數位位元D[n:0]之集合。如所顯示,電流至電壓轉換器5001及類比至數位轉換器5002為可組構的(例如,n位元解析度、功率、延時、按比例調整)。
圖51描繪輸入區塊(列輸入偏壓產生器) 5100。輸入區塊5100包含k位元數位至類比轉換器5101、映射純量器5102及n位元類比至數位轉換器5103。k位元數位至類比轉換器5101接收k個位元之輸入且使用線性函數或對數函數產生類比信號。曲線圖5105及5107描繪根據對數函數產生之類比信號的實施例,且曲線圖5104及5106描繪根據線性函數產生之類比信號的實施例。映射純量器5102對類比信號執行按比例調整函數,而n位元類比至數位轉換器5103將映射純量器5102之輸出轉換成n個位元之數位輸出。因此,輸出區塊5100經由映射純量器5102將k位元值轉換成n位元值。舉例而言,k為10至14個位元,而n為5至8個位元。轉換(映射)例如由圖59至圖64中之校準電路輔助。
圖52描繪可分別用於圖43至圖47中之GDAC 4301、4401、4501、4601及4707的可調整GDAC 5220,其用以回應於數位輸入及一或多個偏壓電壓而產生類比信號以施加至非揮發性記憶體陣列。可調整GDAC 5220包括全域DACx 5221及偏壓產生器5227。偏壓產生器5227包括參考陣列5223及產生偏差5224之偏壓產生電路5222。偏壓產生電路5222使用參考陣列5223產生偏壓5224,該等偏壓基於參考陣列5223所經歷之溫度改變而自動地補償溫度。舉例而言,偏壓5224可基於由參考陣列5223汲取之電流,該電流將受參考陣列5223之溫度影響。此等偏壓5224被饋入至全域DAC 5221,使得供應至陣列之所得輸出電壓5226得到溫度補償。
圖53描繪可用於圖43至圖47中之全域數位至類比轉換器及列解碼器4301、4401、4501、4601及4707的全域數位至類比轉換器及列解碼器5350之實施例。全域數位至類比轉換器及列解碼器5350包括DAC 5351、映射區塊5361及輸出緩衝器5371。控制邏輯(圖中未示)控制GDAC之操作(以執行功能,諸如使用諸如EN之致能信號來致能各種區塊,將控制信號提供至多工器,及其他控制功能)。
DAC 5351接收高參考電壓VREFH及低參考電壓VREFL。DAC 5351包括用以選擇地根據線性函數或對數函數產生在VREFL與VREFH之間的一系列電壓的複數個電阻器之電壓階梯。舉例而言,電壓階梯中之頂部電阻器的頂部節點將具有電壓VREFH,且由於頂部電阻器上之電壓降,電阻器之底部將具有較低電壓。底部電阻器之底部節點將具有電壓VREFL。電壓階梯藉此產生複數個電壓位準(L0、…、Lk)(例如,k可為4095),當期望將電壓提供至VMM陣列以使VMM陣列之非揮發性記憶體胞元在線性模式或亞臨限值模式中操作時需要該等電壓位準。
數位至類比轉換器5351接收數位輸入DIN[n:0],其用以經由映射區塊5361內部之子區塊5363選擇m+1個電壓中之一者,其中(m+1) = 2^(n+1)。舉例而言,若(n+1)=8,則(m+1)=256。映射區塊5361包含(m+1)個修整區塊5362及(m+1)個多工器5363。映射區塊5361將來自DAC 5351之k+1個電壓位準轉化成對應於DIN[n:0]之各別類比輸出。此係藉由對各層級(由修整區塊L0_trm、…、Lm_trm表示)之局部修整來達成,此可例如在陣列中之非揮發性記憶體胞元在亞臨限值區中操作時為有用的。此為達成VMM陣列中之非揮發性記憶體胞元隨亞臨限區或線性區中之溫度的最佳匹配I-V斜率所期望的。
藉由調整參考電壓VREFL及VREFH,亦調整k+1個位準。此係例如為了匹配此輸入區塊之輸出範圍與記憶體胞元之輸入範圍。此亦用於藉由調整參考位準VREFL及VREFH(諸如,在高溫下移位得較低且在低溫下移位得較高)以匹配記憶體胞元之閘極偏壓隨溫度之位準來進行溫度補償。進一步的個別位準調整及溫度補償係藉由映射區塊5361之位準修整電路來進行。轉換(映射)及溫度補償例如由圖59至圖64中之校準電路輔助。
圖54描繪類似於圖53之全域數位至類比轉換器及列解碼器的全域數位至類比轉換器及列解碼器5480之實施例,其中添加了中間參考位準VREFMx。VREFMx參考位準之調整及溫度行為控制為類似於VREFH及VREFL參考位準之調整及溫度行為。其包括額外緩衝器5482以將中間參考位準施加至電阻器階梯中,以進一步調整GDAC 5480與記憶體陣列之輸入的I-V斜率匹配。
圖79至圖81描繪關於圖53及圖54中之全域數位至類比轉換器及列解碼器5350及5480之可選擇實施方案的額外細節。
圖79描繪GDAC輸入位準至輸出位準選擇方法7900。在此實施例中,存在4096個不同位準輸入(k=4095),且每輸出位準存在4個修整位元(m=3) TRIM[3:0],且存在256個可能輸出位準(L0…Ln)。
圖80描繪GDAC輸入位準至輸出位準選擇方法8000。在此實施例中,存在4096個位準輸入(k=4095),且每輸出位準存在4個修整位元(m=3)TRIM[3:0],且存在256個可能輸出位準(L0…Ln)。區塊8001為群組選擇。如所顯示,存在4個群組。區塊8002為調整來自群組選擇區塊8001之1024個可能輸出的修整選擇區塊。區塊8003為具有64:1多工之輸出選擇區塊。如所顯示,相較於圖79,需要較少數目個修整區塊電路。
圖81描繪GDAC輸入位準至輸出位準選擇方法8100。在此實施例中,存在4096個位準輸入(k=4095),且每輸出位準存在4個修整位元(m=3)TRIM[3:0],且存在256個輸出位準(L0…Ln)。區塊8101為群組選擇。如所顯示,存在4個群組。區塊8102及8103為調整來自群組選擇區塊8101之1024個可能輸出的修整選擇區塊。區塊8104及8105為具有64:1多工之輸出選擇區塊。如所顯示,相較於圖79,需要較少數目個修整區塊電路。乒乓方法一方面可在區塊8102與8104之間執行且另一方面可在區塊8103與8105之間執行,以減少延時。舉例而言,當區塊8102對輸入位準之第一集合執行修整操作時,輸入位準之第二集合用以在區塊8103中設定修整位元,且反之亦然。
圖55描繪示範性波形5500,其繪示分別用於圖43至圖47中之列取樣保持緩衝器4305、4405、4505、4605及4705進行取樣保持動作的線性電壓位準。GDAC輸出可採取數個不同值。顯示可由列取樣保存緩衝器4305、4405、4505、4605及4705輸出之取樣值之兩個實施例—第一取樣值及第二取樣值。此等值適合於在線性區中操作之VMM陣列中的記憶體胞元,其中根據線性函數將數位值轉換成類比值。
圖56描繪示範性波形5600,其繪示分別用於圖43至圖47中之列取樣保持緩衝器4305、4405、4505、4605及4705進行示範性取樣保持動作的對數電壓位準。GDAC輸出可採取數個不同值。顯示可由列取樣保存緩衝器4305、4405、4505、4605及4705輸出之取樣值之兩個實施例—第一取樣值及第二取樣值。此等值適合於在亞臨限區中操作之記憶體胞元,其中根據對數函數將數位值轉換成類比值。
替代地,全域DAC電壓波形可用於在飽和區中操作之記憶體胞元。
圖57描繪8位元解析度(256個位準)之示範性兩個線性數位至類比輸出5700,其中在不同操作溫度下產生兩個輸出。
圖58描繪具有分段輸出之示範性數位至類比輸出5800。各數位輸入對應於與圖57中相同的類比電壓輸出,但將輸入分組成各自與不同電壓曲線對應的子群組。舉例而言,輸入L0至L63對應於電壓曲線V1,輸入L64至L127對應於電壓曲線V2,輸入L128至L191對應於電壓曲線V3,且輸入L192至L255對應於電壓曲線V4。此可例如藉由使用兩個最高有效位元以判定待應用之電壓曲線V1、V2、V3或V4且接著將六個剩餘位元轉換成選定電壓曲線中之適當電壓來達成。在此實施例中,全域DAC取樣時間減少四倍,此係因為1/4數目個數位輸入需要由全域DAC轉換。可使用諸如2、8或16之其他數目個區段而非4個區段。
圖59描繪示範性列偏壓(I-V胞元/陣列)校準電路5900,其包含電流數位至類比轉換器5901、運算放大器(op-amp)5902、示出為FET之電晶體5903以及記憶體胞元5904。電流數位至類比轉換器5901接收數位輸入DIN[0:n]且輸出類比電流,其中DIN[0:n]提供對應於待由記憶體胞元5904汲取之可能電流的一系列數位值。具有串疊電晶體5903之運算放大器5902在記憶體胞元5904之位元線上施加偏壓參考電壓VREF。來自記憶體胞元5904之控制閘極端子的電壓輸出為CGbias。隨著來自IDAC 5901之電流改變,來自控制閘極端子之電壓相應地改變。
校準電路5900可用以在亞臨限操作中針對用於256個位準之具有0.5 nA步長的1至128 nA之電流範圍產生電壓CGbias。因此,對於電壓CGbias,存在256個位準,其各自反映256個電流位準中之一者,其中每電流步長為0.5 nA。此等CGbias值可應用於VMM陣列中之一列記憶體胞元以補償圖43至圖47之DAC及GDAC電路內的變化,使得給定數位輸入將對VMM陣列中之記憶體胞元具有相同效應,而無關於含有記憶體胞元之列附接至哪一DAC電路。
校準電路5900亦可用以針對預定電流,諸如針對神經元電流(位元線電流)產生等效電壓。舉例而言,對於10 uA神經元電流,存在對應CG電壓。在此情況下,記憶體胞元5904將包括具有一些混合電流型樣之多個胞元(在亞臨限模式中操作)以表示神經記憶體陣列中之資料型樣。在使用多個胞元時的所得CG偏壓電壓將接著在讀取操作期間施加至陣列,使得神經元電流及陣列電流不會由於溫度改變而改變。
圖59及圖60至圖62(下文所論述)中之記憶體胞元5904、6004、6134及6254可為主VMM陣列,諸如圖34中之VMM陣列3401的部分,或為單獨參考磁區或外部微型陣列。
圖60描繪列偏壓校準電路6000,其包含電流數位至類比轉換器(IDAC)6001、運算放大器6002、比較器6006、FET 6003及記憶體胞元6004。FET 6003執行級聯功能。電流數位至類比轉換器6001接收數位輸入DIN[0:n]且輸出類比電流,其中DIN[0:n]提供對應於待由記憶體胞元6004汲取之可能電流的一系列數位值。具有串疊FET 6003之運算放大器6002在記憶體胞元6004之位元線BL(第一端子)上施加偏壓參考電壓VREF。比較器6006在其反相輸入端上接收第二參考電壓VREF2且在其輸出端上產生控制信號6007。拂掠記憶體胞元6004之控制閘極(第二端子)上的電壓,亦即,CGbias,直至比較器6006切換極性,此意謂控制信號6007改變值,此情形在串疊FET 6003之第一端子超過VREF2時發生。控制信號6007之改變用以對控制閘極偏壓CGbias進行取樣及保持,該控制閘極偏壓接著用作施加至VMM陣列中之一列胞元之控制閘極端子的偏壓電壓。記憶體胞元6004之源極線(第三端子)可耦接至接地。
校準電路6000之應用類似於圖59之校準電路5900之應用。
圖61描繪示範性列偏壓校準電路6130,其包含電流DAC 6131、運算放大器6132及記憶體胞元6134。運算放大器6132在記憶體胞元6134之端子CG(第二端子)上輸出電壓,使得記憶體胞元6134中之電流與IDAC 6131之電流相同。校準電路6100之應用類似於圖59之應用。VREF為用以調節位元線BL(記憶體胞元6134之第一端子)上之精確電壓,以降低由於位元線電壓變化而引起之不準確度。舉例而言,VREF可為0.6 V,意謂在此操作期間的電壓位元線將為0.6 V。記憶體胞元6134之源極線(第三端子)可耦接至接地。
圖62描繪示範性列偏壓校準電路6250,其包含電流DAC 6251、偏壓控制電路6252及記憶體胞元6254。電流DAC 6251連接至記憶體胞元6254之位元線(第一端子)。偏壓控制電路6252將電壓輸出至記憶體胞元6254之CG及EG端子(可被稱作第二端子或第四端子)中之各者,使得記憶體胞元6254中之電流與IDAC 6251之電流相同。VREF為用以調節位元線BL (記憶體胞元6254之第一端子)上之電壓的電壓。電路6250之應用類似於圖59之應用。記憶體胞元6254之源極線(第三端子)可耦接至接地。CG端子及EG端子兩者之電壓可直至位元線電壓超過VREF,此時CG及EG電壓可作為偏壓電壓施加至VMM陣列。
圖63顯示示範性偏壓控制電路6352。其包含:運算放大器6362(第一運算放大器),其包含用以自非揮發性記憶體胞元之第一端子(BL)接收電壓的反相端子、用以接收參考電壓之非反相端子及第一輸出;及增益電路,其由運算放大器6363(第二運算放大器)以及輸入電阻器R1 6367及回饋電阻器R2 6368組成。增益由比率R2/R1設定,例如,其可為~1.9之比率。因此,運算放大器6363之輸出EGBIAS為CGbias之~1.9倍。其他比率係可能的。在其他實施例中,CGbias可提供為EGbias之函數。
圖64描繪示範性校準電路6470,其包含電流DAC 6471、運算放大器6472及記憶體胞元6473。電流DAC 6471之輸出連接至記憶體胞元6473之位元線(第一端子)。運算放大器6472在記憶體胞元6473之EG端子(第二端子)上輸出電壓,使得記憶體胞元6473中之電流與IDAC 6471之電流相同。VREF為用以調節位元線BL(記憶體胞元6473之第一端子)上之電壓的電壓。選擇地,可用圖63中之偏壓控制EGCG_CTL電路6452替換運算放大器6472,其中偏壓控制電路6452將電壓輸出至端子CG及EG上,使得記憶體胞元6473中之電流與IDAC 6471之電流相同。記憶體胞元6473之源極線(第三端子)可耦接至接地。
圖65描繪輸入區塊6500,其包含多工器6501、電容器組6502及緩衝器6503。多工器6501接收m+1個數位位元[m:0]作為選擇信號且亦自n+1個電容器(L0、…、Ln)接收電壓,且回應於所接收之數位位元而將選定電壓提供至緩衝器6503,該緩衝器輸出選定電壓作為偏壓電壓。此為產生DAC輸出之另一方案(而非圖43至圖47中所繪示之方案)。在一個實施例中,8位元DAC(m=7)因此包含256個電容器(n=255)來保持256個電壓位準。此等電壓位準例如由圖59至圖64中之列偏壓校準電路根據線性函數或對數函數基於數位位元輸入而產生。
圖66描繪示範性列輸入電路6600。列輸入電路6600包含開關6601、6602、6603、6604及6605;電容器6606及6607;及比較器6608。列輸入電路6600提供緩衝功能及偏移校準功能。當開關6603(第二開關)及6602(第三開關)閉合且開關6601(第一開關)、6605斷開時,偏移電容器6606對運算放大器6608之偏移電壓進行取樣。接著,電容器6606以反向方式重新連接,其中開關6601(第一開關)閉合且開關6603 (第二開關)及6602(第三開關)斷開,因此電容器6606上之偏移電壓抵消運算放大器6608之偏移。
圖67描繪示範性全域輸入產生器6700,其包含全域數位至類比轉換器6701、全域數位至類比轉換器6702以及開關6703及6704。全域輸入產生器6700實現即時校準而不延遲正常操作。舉例而言,全域數位至類比轉換器6701可用以校正陣列,且全域數位至類比轉換器6702可用於讀取神經操作,且反之亦然。
亦可在製造程序期間使用諸如下文在圖68至圖70中顯示之彼等系統的校準系統來執行校準。
圖68描繪製造校準系統6800,其包含陣列6801、神經元電流比較電路6802及偏壓控制器6803。陣列6801為正經校準且最終將發送至現場以供使用的VMM系統之部分。神經元電流比較電路6802及偏壓控制器6803可在同一VMM系統內以供在製造程序期間使用,或其可為僅在製造期間使用之外部測試裝置的部分。陣列6801經程式化以儲存權重之預定集合。接著產生神經元輸出電流,對其進行取樣且藉由神經元電流比較電路6802將其與權重之彼預定集合的目標神經元電流進行比較。基於比較,偏壓控制器6803修改施加至選定胞元之CG或EG端子的偏壓電壓,直至神經元電流比較電路6802指示神經元輸出等於目標神經元電流或在目標神經元電流之可接受臨限值內。此可對整個神經網路(其可包括多個層)、單個層或單個層之一部分執行,但不限於此。因此,神經元電流比較電路6802為用以自複數條位元線接收電流且自來自複數條位元線之電流之取樣產生類比輸出的取樣神經元電路。
圖69描繪製造校準系統6900,其包含陣列6801(第一陣列)、參考陣列6901(第二陣列)、神經元電流比較電路6802及偏壓控制器6803。各位元線耦接至陣列6801中之一行及參考陣列6901中之一行。製造校準系統6900類似於製造校準系統6800,例外之處在於對嵌入式參考陣列6901而非陣列6801執行操作。陣列6801用於法向向量矩陣乘法運算。
圖70描繪製造校準系統7000,其包含參考陣列7001、神經元電流比較電路6802及偏壓控制器6803。製造校準系統7000類似於製造校準系統6900,例外之處在於參考陣列7001為單獨的且不嵌入於與主VMM陣列相同的構件中。
圖68至圖70中之神經元電流的取樣可表示神經層或網路之權重分佈的平均值。
選擇地,每當電路利用參考電流Iref時,可使用圖69及圖70中之參考陣列6901或7001產生參考電流。此係有幫助的,此係因為參考陣列6901或7001之任何改變(諸如由於溫度改變或由於經由校準進行的校正)亦將傳播以產生參考電流。
圖71描繪陣列校準器7100,其包含陣列7101、電流源7102及偏壓控制電路7103。電流源7102提供目標電流。陣列7101提供取樣神經元電流輸出。陣列7101可藉由使在讀取操作期間由偏壓控制電路7103施加至陣列之部分或全部的控制閘極偏壓或抹除閘極偏壓信號(其為校準參數)變化來校準。當由陣列7101提供之電流等於電流源7102時,輸出將切換極性,此將指示已施加的控制閘極偏壓或抹除閘極偏壓為適當的。選擇地,校準參數可連同儲存於陣列中之操作溫度及值一起儲存於查找表中。
圖72描繪示範性電流至電壓轉換器7200,其包含陣列7201、電阻器7202及偏壓控制電路7203。電阻器7202提供輸出電壓。陣列7201提供取樣神經元電流輸出。來自陣列7201之取樣神經元電流輸出可藉由使在讀取操作期間由偏壓控制電路7203施加至陣列之控制閘極偏壓或抹除閘極偏壓信號變化而變化。當輸出電壓等於所需目標電壓時,已針對控制閘極偏壓或抹除閘極偏壓達成所需組構。此例如結合圖68至圖70使用。
圖73描繪示範性校準方法7300。方法開始(操作7301)。下一操作為校準非揮發性記憶體胞元之陣列(操作7302)。量測陣列之特性(此處為控制閘極端子或抹除閘極端子之電壓)且將其與諸如目標電壓(或電流)之目標進行比較(操作7303)。若所量測電壓等於目標電壓或偏離可接受裕量(其為預定範圍),則週期性地重複操作7303以判定是否需要校準,該校準可例如在操作溫度改變時發生。若所量測電壓不等於目標電壓或偏離可接受裕量(其為預定範圍),則重複校準操作7302。
圖74描繪示範性校準方法7400。方法開始(操作7401)。下一操作為校準非揮發性記憶體胞元之陣列(操作7402)。溫度感測器量測特性(此處為溫度)且將其與目標溫度進行比較(操作7403)。若所量測溫度等於目標溫度或偏離可接受裕量(其為預定範圍),則週期性地重複操作7403以判定是否需要校準,該校準可在操作溫度改變時發生。若所量測溫度不等於目標溫度或偏離可接受裕量(其為預定範圍),則重複校準操作7402。
圖75描繪示範性校準方法7500。方法開始(操作7501)。下一操作為校準非揮發性記憶體胞元之陣列(操作7502)。溫度感測器量測特性(此處為溫度)且將其與目標溫度進行比較(操作7503)。若所量測溫度等於目標溫度或相差可接受裕量(其為預定範圍),則週期性地重複操作7503。若所量測溫度不等於目標溫度或偏離可接受裕量(其為預定範圍),則方法繼續進行至操作7504,其中將陣列特性(電壓或電流,此處為控制閘極端子或抹除閘極端子之電壓)與目標電壓進行比較。若所量測陣列特性(例如,電壓)等於目標或相差可接受裕量(其為預定範圍),則方法返回至操作7303。若所量測特性不等於目標特性或偏離可接受裕量(其為預定範圍),則方法返回至操作7502以重複校準。校準方法7500之益處為其將僅在所量測陣列特性實際上不同於目標時重複校準程序。舉例而言,有可能的係,所量測溫度可不同於目標溫度,但所量測陣列特性相較於目標仍在可接受裕量(其為預定範圍)內,在此情況下將不重複校準。
圖76描繪示範性校準方法7600。方法開始(操作7601)。下一操作為校準非揮發性記憶體胞元之陣列(操作7602)。時間感測器量測事件之時間且將其與目標時間進行比較,其中時間可與熱導率相關,諸如在距離X處感測到1度之增加所需的時間(熱導率)(操作7603)。若其相等或相差可接受裕量(其為預定範圍),則週期性地重複操作7603以判定是否需要校準。若其不相等或相差不可接受的裕量(其為預定範圍),則方法7400觸發校準操作7402。
圖77描繪圖53至圖54中之全域數位至類比轉換器及列解碼器5350或5480的示範性校準方法7700。方法開始(操作7801)。藉由調整圖53或圖54中之全域參考位準VREFL、VREFH及/或VREFM(操作7802)來執行校準,該等全域參考位準將調整輸出DAC_OUT,其又將用以產生用於圖43至圖47中之輸入區塊4300、4400、4500、4600及4700中之複數個列的偏壓電壓。方法結束(操作7803)。
圖78描繪用於圖47中之全域DAC 4707及局域DAC 4704的示範性校準方法7800。方法開始(操作7801)。藉由調整圖53至圖54中之全域參考位準VREFL、VREFH及/或VREFM(操作7802)來對用於圖47中之GDAC 4707的全域DAC及列解碼器5350或5480(在圖53至圖54中)執行校準,該全域參考位準將調整輸出DAC_OUT。接著在圖47中校準圖47中之局域數位至類比轉換器4704(操作7803)。方法結束(操作7804)。
應注意,如本文中所使用,術語「在…上方」及「在…上」兩者包括「直接在…上方」(其間未裝設有中間材料、元件或空間)及「間接地在…上」(其間設置有中間材料、元件或空間)。同樣地,術語「鄰近」包括「直接鄰近」(其間未裝設有中間材料、元件或空間)及「間接鄰近」(其間裝設有中間材料、元件或空間),「安裝至」包括「直接安裝至」(其間未裝設有中間材料、元件或空間)及「間接安裝至」(其間裝設有中間材料、元件或空間),且「電耦接」包括「直接電耦接至」(其間不具有將元件電連接在一起的中間材料或元件)及「間接電耦接至」(其間具有將元件電連接在一起的中間材料或元件)。舉例而言,「在基板上方」形成元件可包括直接在基板上方形成元件而其間不具有中間材料/元件,以及間接地在基板上形成元件,其間具有一或多種中間材料/元件。
12:半導體基板
14:源極區
16:汲極區
18:通道區
20:浮動閘極
22:字線端子/選擇閘極
24,BL0,BL1,BL2,BL3,BLN:位元線
28:控制閘極(CG)
30:抹除閘極
32,1701,2001,2101,3401:向量矩陣乘法(VMM)陣列
32a:輸入VMM陣列/輸入層
32b,32c:VMM陣列/隱藏層
32d,32e:VMM陣列/完全連接層
33:非揮發性記憶體胞元陣列
34:抹除閘極及字線閘極解碼器
35:控制閘極解碼器
36:位元線解碼器
37:源極線解碼器
38:差分求和器/求和運算放大器
39:激勵函數區塊
210,710,5904,6004,6134,6254,6473:記憶體胞元
310:四閘極記憶體胞元
410:三閘極記憶體胞元
510:堆疊閘極記憶體胞元
900,1000,1100,1200,1300,2200,2300,2400,2500,2600,2700,2800,2900,3000:神經元VMM陣列
901,1003,1103,1203,1303:記憶體陣列
902,1001,1002,1101,1102,1201,1202,1301,1302,5223,6901,7001:參考陣列
903,CG
M-1,CG
M:控制閘極線
904,EGR0,EGR1:抹除閘極線
1014,1205,1212,1314,1709,1710,2104,4803,4804,6501:多工器
1204:串疊電晶體
1400:LSTM
1401,1402,1403,1404,1801,1802,1803,1804:胞元
1500,1600,1700:LSTM胞元
1501,1502,1503,1901,1902:S型函數構件
1504,1505,1903:雙曲正切構件
1506,1507,1508,1703,1904,1905,1906,2103:乘法器構件
1509,1708,1907,2105:加法構件
1602,1702,2002,2102:激勵函數區塊
1704,1705,1706,1707,2106,2107,2108:暫存器
1800:GRU
1900,2000,2100:GRU胞元
1908,2109:互補構件
2701-1,2701-2,2701-(N-1):位元線控制閘極
3100,3300,3400:VMM系統
3101,3102,3213,3303,3304,3305,3306,3307,3308:求和電路
3211:第一陣列
3212:第二陣列
3301,3302,6801,7101,7102:陣列
3402:列解碼器
3403:高壓解碼器
3404:行解碼器
3405:位元線驅動器
3406:輸入電路
3407:輸出電路
3408:控制邏輯
3409,5227:偏壓產生器
3410:高壓產生區塊
3411:電荷泵
3412:電荷泵調節器
3413:高壓類比精度位準產生器
3414:演算法控制器
3415:類比電路系統
3416:控制引擎
3417:測試控制邏輯
3500,3600,3700:校準方法
3501,3502,3503,3504,3505,3506,3601,3602,3603,3604,3605,3606,3701,3702,7301,7302,7303,7401,7402,7403,7501,7502,7503,7504,7601,7602,7603,7701,7702,7703,7801,7802,7803,7804:操作
4001:差分電流至電壓轉換器
4003,5902,6002,6132,6363,6472,6362:運算放大器
4004,4005:可變積分電阻器
4006:共模電路
4102:差分連續位址暫存器(SAR)類比至數位轉換器(ADC)
4107,4108:二進位電容式數位至類比轉換器(CDAC)
4109,4201,6006:比較器
4110:SAR邏輯及暫存器
4200:讀取電路
4202,4203:偏移校準電容器數位至類比轉換器
4204:校準控制器
4300,4500,4600,4700,5100,6500:輸入區塊
4301,4401,6701,6702:全域數位至類比轉換器(DAC)
4302-0~4302-n,4402-0~4402-n,4502-0~4502-n,4602-0~4602-n:位址列解碼器
4303-0~4303-n,4403-0~4403-n,4503-0~4503-n,4603-0~4603-n,4703-0~4703-n,4801,4802:列暫存器
4304-0~4304-n,4504-0~4504-n:數位比較器區塊
4305,4305-0~4305-n,4405,4405-0~4405-n,505,4505-0~4505-n,4605,4705:列取樣保持緩衝器
4306,4306-0~4306-n,4406-0~4406-n,4506,4506-0~4506-n,4606,4606-0~4606-n:輸出信號
4307,4507:計數器
4400:列輸入區塊
4404:數位多工器
4404-0~4404-n:數位多工器(mux)區塊
4406:類比輸出/輸出信號
4501:全域數位至類比轉換器及列解碼器/全域數位至類比轉換器
4504:數位比較器
4601:類比電壓供應器
4604,5351:數位至類比轉換器
4604-0~4604-n,4704:局域數位至類比轉換器
4605-0~4605-n:列緩衝器
4707:全域DAC區塊
4800:雙暫存器區塊
4900:輸入-輸出值
5000:輸出區塊
5001,7200:電流至電壓轉換器
5002:類比至數位轉換器
5101:k位元數位至類比轉換器
5102:映射純量器
5103:n位元類比至數位轉換器
5104,5105,5106,5107:曲線圖
5220:可調整GDAC
5221:全域DACx/全域DAC
5222:偏壓產生電路
5224:偏壓
5226:輸出電壓
5350,5480:全域數位至類比轉換器及列解碼器
5361:映射區塊
5362:修整區塊
5363:多工器/子區塊
5371:輸出緩衝器
5500,5600:波形
5700:線性數位至類比輸出
5800:數位至類比輸出
5900,6000,6130,6250:列偏壓校準電路
5901,6001,6131,6251,6471:電流數位至類比轉換器
5903:串疊電晶體
6003:串疊FET
6007:控制信號
6352,7103,7203:偏壓控制電路
6367:輸入電阻器R1
6368:回饋電阻器R2
6470:校準電路
6502:電容器組
6503:緩衝器
6600:列輸入電路
6601,6602,6603,6604,6605,6703,6704,en,enb:開關
6606:偏移電容器
6607:電容器
6608:比較器/運算放大器
6700:全域輸入產生器
6800,6900,7000:製造校準系統
6802:神經元電流比較電路
6803:偏壓控制器
7100:陣列校準器
7102:電流源
7202:電阻器
7300,7400,7500,7600,7700,7800:校準方法
7900,8000,8100:GDAC輸入位準位準至輸出位準選擇方法
8001,8101:群組選擇區塊
8002,8003,8102,8103,8104,8105:區塊
ADD[n:0]:列位址
BLR0:端子/位元線
BLR1,BLR2,BLR3,CG,EG:端子
c(t-1),c(t):胞元狀態向量
c0:胞元狀態
c1,c2:胞元狀態向量/胞元狀態
C1,S1,C2,S2,C3:層
CB1,CB2,CB3,CB4:突觸
CG0,CG1,CG2,CG3:控制閘極線/電壓輸入/控制閘極電壓
CGbias:電壓/控制閘極偏壓
CLK,CLKB:時脈信號
CLKCOUNTx:計數值
D[n:0],[m:0]:數位位元
DIN[0:n]:數位輸入
DIN_GDACx:匯流排
DINx:激勵值/數位位元
DINx:數位輸入位元/激勵值
EG0,EG1:抹除閘極/抹除閘極線
EGBIAS,DAC_OUT,OUTPUT
1,OUTPUT
2,OUTPUT
3,OUTPUT
4,OUTPUT
N-1,OUTPUT
N:輸出
EN,ENx:致能信號
ENROW:輸出/信號
h
0,h
1,h
2,h
3,h(t-1),h(t):輸出向量
i(t):值
IBL+,IBL-:電流輸入
Icell:電流
Ineu:輸出電流
Inputx,WLx,EGx,CGx,BLx,SLx,INPUT
0,INPUT
1,INPUT
2,INPUT
3,INPUT
4,INPUT
N-1,INPUT
N,INPUT
M-1,INPUT
M,L0~L63,L64~L127,L128~L191,L192~L255:輸入
Iref:參考電流
L0~Lk:輸出位準/電壓位準
L0~Ln:電容器
P1,P2:激勵函數
S0:輸入層
S3:輸出層
SL0,SL1,SL2,SL3:源極線
V1,V2,V3,V4:電壓曲線
VCG:電壓
Vin:類比電壓
Vinp,Vinn:差分電流輸入
VO+,VO-:差分輸出電壓
VREF:偏壓參考電壓
VREF2:第二參考電壓
VREFH:高參考電壓
VREFL:低參考電壓
VREFMx:中間參考位準
W-:負權重
W+:正權重
WL0,WL1,WL2,WL3:SL線/電壓輸入/字線
WL4,WL5,WL6,WL7,WL
M,WLA0,WLB0,WLA1,WLB1,WLA2,WLB2,WLA3,WLB3:字線
x
0,x
1,x
2,x
3,x(t):輸入向量
圖1為繪示人工神經網路之圖。
圖2描繪先前技術分離閘極快閃記憶體胞元。
圖3描繪另一先前技術分離閘極快閃記憶體胞元。
圖4描繪另一先前技術分離閘極快閃記憶體胞元。
圖5描繪另一先前技術分離閘極快閃記憶體胞元。
圖6為繪示利用一或多個非揮發性記憶體陣列之示範性人工神經網路的不同層級之圖。
圖7為繪示向量矩陣乘法系統之方塊圖。
圖8為繪示利用一或多個向量乘矩陣乘法系統之示範性人工神經網路的方塊圖。
圖9描繪向量矩陣乘法系統之另一實施例。
圖10描繪向量矩陣乘法系統之另一實施例。
圖11描繪向量矩陣乘法系統之另一實施例。
圖12描繪向量矩陣乘法系統之另一實施例。
圖13描繪向量矩陣乘法系統之另一實施例。
圖14描繪先前技術長短期記憶體系統。
圖15描繪供用於長短期記憶體系統中之示範性胞元。
圖16描繪圖15之胞元的示範性實施方案。
圖17描繪圖15之胞元的另一示範性實施方案。
圖18描繪先前技術閘控遞迴單元系統。
圖19描繪供用於閘控遞迴單元系統中之示範性胞元。
圖20描繪圖19之胞元的示範性實施方案。
圖21描繪圖19之胞元的另一示範性實施方案。
圖22描繪向量矩陣乘法系統之另一實施例。
圖23描繪向量矩陣乘法系統之另一實施例。
圖24描繪向量矩陣乘法系統之另一實施例。
圖25描繪向量矩陣乘法系統之另一實施例。
圖26描繪向量矩陣乘法系統之另一實施例。
圖27描繪向量矩陣乘法系統之另一實施例。
圖28描繪向量矩陣乘法系統之另一實施例。
圖29描繪向量矩陣乘法系統之另一實施例。
圖30描繪向量矩陣乘法系統之另一實施例。
圖31描繪向量矩陣乘法系統之另一實施例。
圖32描繪向量矩陣乘法系統之另一實施例。
圖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描繪校準電路之實施例。
圖61描繪校準電路之實施例。
圖62描繪校準電路之實施例。
圖63描繪校準電路之實施例。
圖64描繪校準電路之實施例。
圖65描繪示範性輸入區塊。
圖66描繪示範性列輸入電路。
圖67描繪示範性全域輸入產生器。
圖68描繪示範性陣列及取樣神經元電路。
圖69描繪示範性陣列、參考陣列及取樣神經元電路。
圖70描繪示範性參考陣列及取樣神經元電路。
圖71描繪示範性陣列校準器。
圖72描繪示範性電流至電壓轉換器。
圖73描繪示範性校準方法。
圖74描繪示範性校準方法。
圖75描繪示範性校準方法。
圖76描繪示範性校準方法。
圖77描繪示範性校準方法。
圖78描繪示範性校準方法。
圖79描繪GDAC輸入位準至輸出位準選擇之實施例。
圖80描繪GDAC輸入位準至輸出位準選擇之實施例。
圖81描繪GDAC輸入位準至輸出位準選擇之實施例。
C1:層
C2:層
C3:層
CB1:突觸
CB2:突觸
CB3:突觸
CB4:突觸
P1:激勵函數
P2:激勵函數
S1:層
S2:層
Claims (27)
- 一種系統,其包含: 一數位至類比轉換器,其用於接收k個位元之一輸入且產生一第一類比輸出; 一映射純量器,其用於將該第一類比輸出轉換成一第二類比輸出;及 一類比至數位轉換器,其用於自該第二類比輸出產生n個位元之一輸出,其中,n為不同於k之一值。
- 如請求項1之系統,其中,該數位至類比轉換器執行一線性函數。
- 如請求項1之系統,其中,該數位至類比轉換器執行一對數函數。
- 一種系統,其包含: 一參考陣列; 一偏壓產生器,其用於基於該參考陣列產生一或多個偏壓電壓;及 一數位至類比轉換器,其用於回應於數位輸入及所產生之一或多個偏壓電壓而產生類比信號以施加至一非揮發性記憶體陣列。
- 如請求項4之系統,其中,該數位至類比轉換器執行一線性函數。
- 如請求項4之系統,其中,該數位至類比轉換器執行一對數函數。
- 一種系統,其包含: 一數位至類比轉換器,其用以產生用於一陣列中之非揮發性記憶體胞元之線性或亞臨限操作的電壓;及 一映射區塊,其用於將來自該數位至類比轉換器之所產生電壓轉化成一類比輸出。
- 如請求項7之系統,其包含用於提供該類比輸出作為該系統之一輸出的一輸出緩衝器。
- 如請求項7之系統,其中,該數位至類比轉換器執行一線性函數。
- 如請求項7之系統,其中,該數位至類比轉換器執行一對數函數。
- 如請求項7之系統,其中,該陣列中之該等非揮發性記憶體胞元為分離閘極快閃記憶體胞元。
- 如請求項7之系統,其中,該陣列中之該等非揮發性記憶體胞元為堆疊閘極快閃記憶體胞元。
- 一種系統,其包含: 一電容器組,其包含複數個電容器,該複數個電容器中之各者儲存一不同電壓; 一多工器,其用於回應於一數位輸入而輸出該複數個電容器中之一者的一電壓;及 一緩衝器,其用於自該多工器接收輸出電壓且產生一偏壓電壓。
- 如請求項13之系統,其中,該偏壓電壓係基於使用該數位輸入之一值的一線性函數。
- 如請求項13之系統,其中,該偏壓電壓係基於使用該數位輸入之一值的一對數函數。
- 一種系統,其包含: 一運算放大器,其包含一反相輸入端、一非反相輸入端及一輸出端; 一偏移電容器,其包含一第一端子及一第二端子,該第二端子連接至該反相輸入端; 一第一開關; 一第二開關;及 一第三開關; 其中,在一第一模式中,該第一開關斷開,該第二開關閉合以將該運算放大器之該輸出端連接至該反相輸入端,且該第三開關閉合以將該偏移電容器之該第一端子連接至該非反相輸入端; 其中,在一第二模式中,該第一開關閉合以將該運算放大器之該輸出端連接至該電容器之該第一端子,該第二開關斷開且該第三開關斷開。
- 一種系統,其包含: 一第一全域數位至類比產生器;及 一第二全域數位至類比產生器。
- 如請求項17之系統,其包含: 該第一全域數位至類比產生器之一輸出端與一輸出節點之間的一第一開關;及 該第二全域數位至類比產生器之一輸出端與該輸出節點之間的一第二開關。
- 如請求項18之系統,其中,該第一全域數位至類比產生器用以校準一記憶體陣列,且該第二全域數位至類比產生器用於一讀取神經操作。
- 一種系統,其包含: 配置成列及行之非揮發性記憶體胞元之一第一陣列; 複數條位元線,其中,各位元線耦接至該第一陣列中之一各別行;及 一取樣神經元電路,其用以自該複數條位元線接收電流且自對來自該複數條位元線之該電流之一取樣產生一類比輸出,該類比輸出包含一神經網路中之一神經元電流。
- 如請求項20之系統,其中,該第一陣列中之該等非揮發性記憶體胞元為分離閘極快閃記憶體胞元。
- 如請求項20之系統,其中,該第一陣列中之該等非揮發性記憶體胞元為堆疊閘極快閃記憶體胞元。
- 如請求項20之系統,其中,該第一陣列為一參考陣列。
- 如請求項23之系統,其包含配置成列及行之非揮發性記憶體胞元之一第二陣列。
- 如請求項24之系統,其中,各位元線耦接至該第二陣列中之一行。
- 如請求項24之系統,其中,該第二陣列中之該等非揮發性記憶體胞元為分離閘極快閃記憶體胞元。
- 如請求項22之系統,其中,該第二陣列中之該等非揮發性記憶體胞元為堆疊閘極快閃記憶體胞元。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202263307983P | 2022-02-08 | 2022-02-08 | |
US63/307,983 | 2022-02-08 | ||
US17/727,650 US20230252276A1 (en) | 2022-02-08 | 2022-04-22 | Calibration of electrical parameters in a deep learning artificial neural network |
US17/727,650 | 2022-04-22 | ||
PCT/US2022/027152 WO2023154075A1 (en) | 2022-02-08 | 2022-04-29 | Calibration of electrical parameters in a deep learning artificial neural network |
WOPCT/US22/27152 | 2022-04-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202341014A true TW202341014A (zh) | 2023-10-16 |
Family
ID=87521096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW112103391A TW202341014A (zh) | 2022-02-08 | 2023-02-01 | 深度學習人工神經網路中電性參數的校準 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20230252276A1 (zh) |
TW (1) | TW202341014A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116961656B (zh) * | 2023-08-11 | 2024-04-05 | 同济大学 | 一种高精度电容型数模转换器校准方法和装置 |
-
2022
- 2022-04-22 US US17/727,650 patent/US20230252276A1/en active Pending
-
2023
- 2023-02-01 TW TW112103391A patent/TW202341014A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
US20230252276A1 (en) | 2023-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI815065B (zh) | 在向量矩陣乘法陣列之讀取操作期間補償漂移誤差之電路及方法 | |
TWI753492B (zh) | 用於人工神經網路中之類比神經記憶體的測試電路及方法 | |
CN113785360A (zh) | 用于深度学习人工神经网络中的模拟神经存储器的输出阵列神经元转换和校准 | |
US11783904B2 (en) | Compensation for leakage in an array of analog neural memory cells in an artificial neural network | |
TWI820532B (zh) | 深度學習人工神經網路中類比神經記憶體之數位輸出機制 | |
TW202127450A (zh) | 在一人工神經網路中之類比神經記憶體之精確程式化方法及裝置 | |
US20220319620A1 (en) | Testing of analog neural memory cells in an artificial neural network | |
TW202341014A (zh) | 深度學習人工神經網路中電性參數的校準 | |
TWI809663B (zh) | 用於人工神經網路中之類比神經記憶體之精確資料調校方法及裝置 | |
WO2023154075A1 (en) | Calibration of electrical parameters in a deep learning artificial neural network | |
TW202341013A (zh) | 深度學習人工神經網路中電性參數的校準 | |
TWI842636B (zh) | 深度學習人工神經網路中類比神經記憶體的輸出電路 | |
US20240104164A1 (en) | Verification method and system in artificial neural network array | |
US20240062812A1 (en) | Determination of a bias voltage to apply to one or more memory cells | |
CN118633126A (zh) | 深度学习人工神经网络中的电参数的校准 | |
TW202343451A (zh) | 包含i-v斜率組構的參考陣列之人工神經網路 | |
TW202314599A (zh) | 深度學習人工神經網路中類比神經記憶體的輸入電路 | |
WO2024063792A1 (en) | Verification method and system in artificial neural network array |