TWI822198B - 深度學習人工神經網路中類比神經記憶體的輸出電路 - Google Patents
深度學習人工神經網路中類比神經記憶體的輸出電路 Download PDFInfo
- Publication number
- TWI822198B TWI822198B TW111127677A TW111127677A TWI822198B TW I822198 B TWI822198 B TW I822198B TW 111127677 A TW111127677 A TW 111127677A TW 111127677 A TW111127677 A TW 111127677A TW I822198 B TWI822198 B TW I822198B
- Authority
- TW
- Taiwan
- Prior art keywords
- output
- current
- input
- array
- cell
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 210
- 238000013528 artificial neural network Methods 0.000 title abstract description 37
- 230000001537 neural effect Effects 0.000 title abstract description 24
- 238000013135 deep learning Methods 0.000 title abstract description 6
- 210000004027 cell Anatomy 0.000 claims description 316
- 210000002569 neuron Anatomy 0.000 claims description 50
- 239000013598 vector Substances 0.000 description 78
- 230000006870 function Effects 0.000 description 69
- 210000000225 synapse Anatomy 0.000 description 41
- 238000003491 array Methods 0.000 description 37
- 238000007667 floating Methods 0.000 description 34
- 239000011159 matrix material Substances 0.000 description 26
- 230000005284 excitation Effects 0.000 description 23
- 238000000034 method Methods 0.000 description 18
- 239000000758 substrate Substances 0.000 description 14
- 239000003990 capacitor Substances 0.000 description 11
- 230000004913 activation Effects 0.000 description 10
- 239000000463 material Substances 0.000 description 10
- 238000009966 trimming Methods 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
- 230000000295 complement effect Effects 0.000 description 5
- 210000004205 output neuron Anatomy 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 5
- 230000000946 synaptic effect Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000006403 short-term memory Effects 0.000 description 4
- 238000002347 injection Methods 0.000 description 3
- 239000007924 injection Substances 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
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 230000008859 change Effects 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
- 239000002784 hot electron Substances 0.000 description 2
- 150000004767 nitrides Chemical class 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 238000012360 testing method Methods 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
- 241000907506 Israel turkey meningoencephalomyelitis virus Species 0.000 description 1
- 241001465754 Metazoa Species 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
- 238000013459 approach Methods 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
- 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
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000012212 insulator Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 210000001153 interneuron Anatomy 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
- 230000008569 process Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 210000001082 somatic cell Anatomy 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
- 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
- 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/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/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/0464—Convolutional networks [CNN, ConvNet]
-
- 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/26—Sensing or reading circuits; Data output 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/26—Sensing or reading circuits; Data output circuits
- G11C16/28—Sensing or reading circuits; Data output circuits using differential sensing or reference cells, e.g. dummy cells
-
- 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/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/1069—I/O lines read out arrangements
-
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Neurology (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
- Feedback Control In General (AREA)
- Non-Volatile Memory (AREA)
Abstract
本文揭示一深度學習人工神經網路中之一類比神經記憶體之輸出電路的大量具體例。在一些具體例中,一共模電路與一起儲存一權重W之差動胞元W+及W-一起使用。該共模電路可利用電流源、可變電阻器或電晶體作為結構之部分以用於引入一共模電壓偏壓。
Description
[優先權主張]本申請案主張於2021年8月2日申請且題為「深度學習人工神經網路中類比神經記憶體的輸出電路(Output Circuitry for Analog Neural Memory in a Deep Learning Artificial Neural Network)」之美國臨時專利申請案第63/228,529號以及於2021年11月8日申請且題為「深度學習人工神經網路中類比神經記憶體的輸出電路(Output Circuitry for Analog Neural Memory in a Deep Learning Artificial Neural Network)」之美國專利申請案第17/521,772號的優先權。
本文揭示一深度學習人工神經網路中之一類比神經記憶體之輸出電路的大量具體例。
人工神經網路模擬生物神經網路(動物之中樞神經系統,特定言之,大腦)且用以估計或估算可取決於大量輸入且通常係未知的功能。人工神經網路通常包括彼此交換訊息之互連「神經元」的層。
圖1繪示人工神經網路,其中圓形表示神經元之輸入或層。連接(稱為突觸)由箭頭表示,且具有可基於經驗進行調諧之數值權重。此使得神經網路適應於輸入且能夠學習。通常,神經網路包括一層多個輸入。通常存在一或多個中間神經元層及提供神經網路之輸出的輸出神經元層。各層級處之神經元基於自突觸所接收之資料而個別地或集體地作出決策。
用於高效能資訊處理之人工神經網路之發展中的主要挑戰之一在於缺乏充分的硬體技術。實際上,切實可行的神經網路依賴於極大數目個突觸,從而實現神經元之間的高連接性,亦即,極高計算並行性。原則上,此複雜性可運用數位超級電腦或特殊化圖形處理單元叢集來達成。然而,除高成本之外,與生物網路相比,此等方法亦受中等能效困擾,主要因為生物網路執行低精確度類比計算,所以其消耗少得多的能量。CMOS類比電路已用於人工神經網路,但鑒於大量神經元及突觸,故大部分實施CMOS之突觸已過於龐大。
申請人先前在以引用方式併入之美國專利申請案第15/594,439號中揭示了利用一或多個非揮發性記憶體陣列作為突觸之人工(類比)神經網路。非揮發性記憶體陣列用作類比神經記憶體。神經網路構件包括:第一複數個突觸,該第一複數個突觸經組構以接收第一複數個輸入且自該第一複數個輸入產生第一複數個輸出;以及第一複數個神經元,其經組構以接收第一複數個輸出。第一複數個突觸包括複數個記憶體胞元,其中該等記憶體胞元中之各者包括:形成於半導體基板中之間隔開的源極區及汲極區,其中通道區在源極區與汲極區之間延伸;浮動閘極,其裝設於通道區之第一部分上方且與該第一部分絕緣;以及非浮動閘極,其裝設於通道區之第二部分上方且與該第二部分絕緣。該複數個記憶體胞元中之各者經組構以儲存對應於該浮動閘極上之電子數目的權重值。複數個記憶體胞元經組構以使第一複數個輸入乘以所儲存權重值以產生第一複數個輸出。
非揮發性記憶體胞元
非揮發性記憶體係熟知的。舉例而言,以引用方式併入本文中之美國專利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:圖3之快閃記憶體胞元210之操作
WL | BL | SL | |
讀取 | 2至3 V | 0.6至2 V | 0 V |
抹除 | 約11至13 V | 0 V | 0 V |
程式化 | 1至2 V | 10.5至3 μA | 9至10 V |
其他分離閘極記憶體胞元組構為吾人所知,其為其他類型之快閃記憶體胞元。舉例而言,圖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至2 V | 0.6至2 V | 0至2.6 V | 0至2.6 V | 0 V |
抹除 | -0.5 V/0 V | 0 V | 0 V/-8 V | 8至12 V | 0 V |
程式化 | 1 V | 0.1至1 μA | 8至11 V | 4.5至9 V | 4.5至5 V |
圖4描繪三閘極記憶體胞元410,其為另一類型之快閃記憶體胞元。記憶體胞元410與圖3之記憶體胞元310相同,不同之處在於記憶體胞元410不具有單獨控制閘極。抹除操作(其中抹除經由使用抹除閘極來進行)及讀取操作類似於圖3之抹除操作及讀取操作,不同之處在於未施加控制閘極偏壓。程式化操作亦在無控制閘極偏壓之情況下進行,且結果,較高電壓在程式化操作期間必須經施加於源極線上以補償控制閘極偏壓之缺乏。
表3描繪可施加至記憶體胞元410之端子以用於執行讀取、抹除及程式化操作的典型電壓及電流範圍:
表3:圖4之快閃記憶體胞元410之操作
WL/SG | BL | EG | SL | |
讀取 | 0.7至2.2 V | 0.6至2 V | 0至2.6 V | 0 V |
抹除 | -0.5 V/0 V | 0 V | 11.5 V | 0 V |
程式化 | 1 V | 0.2至3 μA | 4.5 V | 7至9 V |
圖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至5 V | 0.6至2 V | 0 V | 0 V |
抹除 | -8至-10 V/0 V | FLT | FLT | 8至10 V/15至20 V |
程式化 | 8至12 V | 3至5 V | 0 V | 0 V |
本文中所描繪之方法及手段可應用於其他非揮發性記憶體技術,諸如但不限於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(池化(pooling)),其池化來自各特徵圖中之連續非重疊2×2區的值。池化函數P1之目的為使附近位置達到平均數(或亦可使用最大函數),以例如降低邊緣位置之相依性且在進入下一階段之前縮減資料大小。在層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陣列32a、32b、32c、32d及32e之VMM陣列32的眾多層之使用的方塊圖。如圖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係波茲曼常數(Boltzmann constant),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 + γ (SQRT |Vsb - 2*φF) - SQRT |2* φF |)
其中Vth0係具有零基板偏壓之臨界電壓,φF係表面電位,且γ係體效應參數。
字線或控制閘極可用作用於輸入電壓之記憶體胞元之輸入。
替代地,本文中所描繪之VMM陣列之快閃記憶體胞元可經組構以在線性區中操作:
Ids = β* (Vgs-Vth)*Vds ;β= u*Cox*Wt/L
W = α (Vgs-Vth)
此意謂線性區中之權重W係與(Vgs-Vth)成比例。
字線或控制閘極或位元線或源極線可用作在線性區中操作之記憶體胞元的輸入。位元線或源極線可用作記憶體胞元之輸出。
對於I至V線性轉換器,記憶體胞元(諸如,參考記憶體胞元或周邊記憶體胞元)或在線性區中操作之電晶體可用以將輸入/輸出電流線性地轉換成輸入/輸出電壓。
替代地,本文中所描繪之VMM陣列的記憶體胞元可經組構以在飽和區中操作:
Ids = 1/2 * β* (Vgs-Vth)
2;β = 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.5 V | -0.5 V/0 V | 0.6至2 V (Ineuron) | 0.6 V至2 V/0 V | 0 V | 0 V |
抹除 | 約5至13 V | 0 V | 0 V | 0 V | 0 V | 0 V |
程式化 | 1至2 V | -0.5 V/0 V | 0.1至3 uA | Vinh約2.5 V | 4至10 V | 0至1 V/ 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.5 V | -0.5 V/0 V | 0.6至2 V | 0.6 V至2 V/0 V | 約0.3至1 V (Ineuron) | 0 V |
抹除 | 約5至13 V | 0 V | 0 V | 0 V | 0 V | SL-抑制(約4至 8 V) |
程式化 | 1至2 V | -0.5 V/0 V | 0.1至 3 uA | Vinh約2.5 V | 4至10 V | 0至1 V /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及串疊電晶體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至2 V | -0.5 V/ 0 V | 0.6至2 V (Ineuron) | 0 V | 0至2.6 V | 0至2.6 V | 0至 2.6 V | 0至2.6 V | 0至2.6 V | 0 V | 0 V |
抹除 | 0 V | 0 V | 0 V | 0 V | 0 V | 0至2.6 V | 0至 2.6 V | 5至 12 V | 0至2.6 V | 0 V | 0 V |
程式化 | 0.7至1 V | -0.5 V/ 0 V | 0.1至1 uA | Vinh (1至2 V) | 4至11 V | 0至2.6 V | 0至 2.6 V | 4.5至5 V | 0至2.6 V | 4.5至5 V | 0至1 V |
圖13描繪神經元VMM陣列1300,其尤其適合於如圖3中所展示之記憶體胞元310,且用作輸入層與下一層之間的突觸及神經元部分。VMM陣列1300包含非揮發性記憶體胞元之記憶體陣列1303、第一非揮發性參考記憶體胞元之參考陣列1301及第二非揮發性參考記憶體胞元的參考陣列1302。EG線EGR0、EG0、EG1及EGR1垂直地延行,而CG線CG0、CG1、CG2及CG3以及WL線WL0、WL1、WL2及WL3水平地延行。VMM陣列1300類似於VMM陣列1400,不同之處在於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至2 V | -0.5 V/ 0 V | 0.6至2 V (Ineuron) | 0 V | 0至2.6 V | 0至2.6 V | 0至2.6 V | 0至2.6 V | 0至2.6 V | 0 V | 0 V |
抹除 | 0 V | 0 V | 0 V | 0 V | 0 V | 4至9 V | 0至2.6 V | 5至12 V | 0至2.6 V | 0 V | 0 V |
程式化 | 0.7至1 V | -0.5 V/ 0 V | 0.1至1 uA | Vinh (1至 2 V) | 4至11 V | 0至2.6 V | 0至2.6 V | 4.5至5 V | 0至2.6 V | 4.5至5 V | 0至1 V |
圖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胞元1500之實施的另一實施例)。在圖17中,S型函數構件1501、1502及1503以及雙曲正切構件1504以時間多工方式共用相同實體硬體(VMM陣列1701及激勵函數區塊1702)。LSTM胞元1700亦包含用以使兩個向量相乘在一起之乘法器構件1703、用以使兩個向量相加在一起之加法構件1708、雙曲正切構件1505(其包含激勵函數區塊1702)、用以當值i(t)自S型函數區塊1702輸出時儲存i(t)的暫存器1707、用以當值f(t)*c(t-1)通過多工器1710自乘法器構件1703輸出時儲存該值之暫存器1704、用以當值i(t)*u(t)經由多工器1710自乘法器構件1703輸出時儲存該值的暫存器1705,及用以當值o(t)*c~(t)經由多工器1710及多工器1709自乘法器構件1703輸出時儲存該值之暫存器1706。
LSTM胞元1600含有VMM陣列1601及各別激勵函數區塊1602之多個集合,而LSTM胞元1700僅含有VMM陣列1701及激勵函數區塊1702的一個集合,該等VMM陣列及該激勵函數區塊用於表示LSTM胞元1700之具體例中的多個層。LSTM胞元1700將需要相較於LSTM 1600較少的空間,此係因為LSTM胞元1700相比於LSTM胞元1600將需要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胞元2000之替代方案(及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、用以當值h(t-1)*r(t)經由多工器2104自乘法器構件2103輸出時保存該值之暫存器2106、用以當值h(t-1)*z(t)經由多工器2104自乘法器構件2103輸出時保存該值的暫存器2107,及用以當值h^(t)*(1-z(t))經由多工器2104自乘法器構件2103輸出時保存該值之暫存器2108。
GRU胞元2000含有VMM陣列2001及激勵函數區塊2002之多個集合,而GRU胞元2100僅含有VMM陣列2101及激勵函數區塊2102的一個集合,該等VMM陣列及該激勵函數區塊用於表示GRU胞元2100之具體例中的多個層。GRU胞元2100將需要相較於GRU胞元2000較少的空間,此係因為GRU胞元2100相比於GRU胞元2000將需要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系統中需要可快速且準確地自陣列接收輸出且辨別由彼等輸出表示之值的經改良輸出區塊。
本文揭示一深度學習人工神經網路中之一類比神經記憶體之輸出電路的大量具體例。
本發明之人工神經網路利用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斜率保持大致相同而改良陣列(神經元)輸出的精度。
圖35A描繪輸出區塊3500。輸出區塊3500包含電流至電壓轉換器(ITV,具有差動輸入及差動輸出)3501-1至3501-i,其中i係由輸出區塊3500接收之位元線W+及W-對的數目;多工器3502;取樣及保持電路3503-1至3503-k;通道多工器3504,以及差動輸入類比至數位轉換器(ADC)3505。輸出區塊3500自陣列中之位元線對接收差動權重輸出W+及W-,且最終產生數位輸出DOUTx,其表示來自ADC 3505(具有差動輸入之ADC)的位元線對(例如,W+及W-線)中之一者之輸出。
電流至電壓(ITV)轉換器3501-1至3501-i各自接收類比位元線電流信號BLw+及BLw-(其係分別回應於輸入以及所儲存W+及W-權重而產生之位元線輸出)且將其轉換成各別差動電壓ITVO+及ITVO-。
接著藉由多工器3502接收差動電壓ITVO+及ITVO-,該多工器將來自電流至電壓轉換器3501-1至3501-i之輸出進行時間多工至取樣及保持(S/H)電路3503-1至3503-k,其中k可與i相同或不同。
S/H電路3503-1至3503-k各自對其所接收之差動電壓進行取樣且將其保持為差動輸出。
通道多工器3504接收控制信號以選擇位元線W+及W-通道中之一者(亦即位元線對中之一者),且將由各別取樣及保持電路3503保持的差動電壓輸出至ADC 3505,該ADC將由各別取樣及保持電路3503輸出之類比差動電壓轉換成一組數位位元DOUTx。單一S/H 3503可跨多個ITV轉換器3501而共用。ADC 3505可以時間多工方式在多個ITV轉換器上操作。各S/H 3503可僅為一電容器或一電容器後接一緩衝器(例如,運算放大器)。
ITV轉換器3501可分別包含與圖40中之電流至電壓轉換器4000組合的來自圖37A、圖37B、圖38A及圖38B之輸出電流神經元電路3700、3750、3800或3820。在此例子中,至ITV轉換器3501之輸入將為兩個電流輸入(諸如圖35A至圖35E、圖37A、圖37B、圖38A或圖38B中之BLW+及BLW-),且ITV轉換器的輸出係差動輸出(諸如圖40中之VOP及VON或圖35A至圖35D中之ITVO+及ITVO-)。
ADC 3505可具有混合ADC架構,此意謂其具有多於一個ADC架構來執行轉換。舉例而言,若DOUTx係8位元輸出,則ADC 3505可包含用以自差動輸入ITVSH+及ITVSH-產生位元B7至B4之ADC子架構及用以自該差動輸入產生位元B3至B0之另一ADC子架構。亦即,ADC電路3505可包括多個ADC子架構。
選擇地,一ADC子架構可在所有通道當中共用,而另一ADC子架構並不在所有通道當中共用。
在另一具體例中,可移除通道多工器3504及ADC 3505,且替代地輸出可為來自可由運算放大器緩衝之S/H 3503的類比差動電壓。舉例而言,類比電壓之使用可實施於全類比神經網路(亦即,實施於其中數位輸出或數位輸入並不為神經記憶體陣列所需的神經網路)中。
圖35B描繪輸出區塊3550。輸出區塊包含電流至電壓轉換器(ITV)3551-1至3551-i,其中i係由輸出區塊3550接收之位元線W+及W-對的數目;多工器3552;差動至單端轉換器Diff-to-S轉換器3553-1至3553-k、取樣及保持電路3554-1至3554-k(其中k與i相同或不同)、通道多工器3555以及類比至數位轉換器(ADC)3556。Diff-to-S轉換器3553用以將來自由多工器3552提供之ITV 3551信號的差動輸出,亦即ITVOMX+及ITVOMX-轉換成單端輸出ITVSOMX+。單端輸出ITVSOMX+接著輸入至S/H 3554、多工器3555及ADC 3556。
圖35C描繪輸出區塊3560。輸出區塊3560包含:電流至電壓轉換器(ITV)3561-1至3561-i,其中i係由輸出區塊3560接收之位元線W+及W-對的數目;以及差動輸入類比至數位轉換器(ADC)3566-1至3566-i。
圖35D描繪輸出區塊3570。輸出區塊3570包含:電流至電壓轉換器(ITV)3571-1至3571-i,其中i係由輸出區塊3570接收之位元線W+及W-對的數目;以及單一輸入類比至數位轉換器(ADC)3576-1至3576-i。在此情況下,僅使用差動輸出ITV之一個輸出,ITV與差動輸入及單一輸出一起使用。
圖35E描繪輸出區塊3580。輸出區塊3580包含:電流至電壓轉換器(ITV)3581-1至3581-i,其中i係由輸出區塊3580接收之位元線W+及W-對的數目;以及差動輸入類比至數位轉換器(ADC)3586-1至3586-i。ITV區塊3581-1至3581-i分別包含共模輸入電路3582-1至3582-i,且分別包含差動運算放大器3583-1至3583-i,其中反饋分別由可變電阻器3584-1至3584-i以及分別由3585-1至3585-i提供。
圖35F描繪輸出區塊3590,其可用於圖35E中之共模輸入電路3582-1至3582-i。輸出區塊3591包含連接至兩個電流輸入BLw+及BLw-之兩個相等可變電流源Ibias+及Ibias-。
圖36描繪輸出區塊3600。輸出區塊包含求和電路3601-1至3601-i(諸如電流鏡電路),其中i係由輸出區塊3600接收之位元線BLw+與BLw-對的數目;電流至電壓轉換器電路(ITV)3602-1至3602-i;多工器3603;取樣及保持電路3604-1至3604-k(其中k與i相同或不同);通道多工器3605,以及ADC 3606。輸出區塊3600自陣列中之位元線對接收差動權重輸出BLw+及BLw-,且最終自ADC 3606產生數位輸出DOUTx,其表示在某一時間的位元線對中之一者之輸出。
電流求和電路3601-1至3601-i各自自一對位元線接收電流,且自BLw+值減去BLw-值並輸出結果作為求和電流IWO。
電流至電壓轉換器3602-1至3602-i接收輸出求和電流IWO且將各別求和電流轉換成差動電壓ITVO+及ITVO-,該等差動電壓接著由多工器3603接收並選擇性地提供至取樣及保持電路3604-1至3604-k。差動電壓將藉由差動輸入ADC(區塊3606)數位化(轉換成數位輸出位元),該差動輸入ADC具有各種優點,諸如輸入噪音降低(諸如來自時脈饋入孔)及更準確之比較操作(如同在SAR ADC中)。
各取樣及保持電路3604接收差動電壓ITVOMX+及ITVOMX-,對所接收之差動電壓進行取樣且將其保持為差動電壓輸出OSH+及PSH-。
通道多工器3605接收控制信號以選擇位元線對,亦即通道,BLw+及BLw-中之一者且將由各別取樣及保持電路3604保持的電壓輸出至差動輸入ADC 3606,該差動輸入ADC將電壓轉換成一組數位位元作為DOUTx。
圖37A描繪輸出電流神經元電路3700,其選擇地可包括於圖35之輸出區塊3500中或圖36之輸出區塊3600中。
輸出電流神經元電路3700包含第一可變電流源3701、第二可變電流源3702及偏壓電路3703。偏壓電路3703基於BLW+與VREF或BLW-與VREF之比較而產生控制電壓Vbias。第一可變電流源3701產生藉由控制電壓Vbias變化之輸出電流Ibias+(亦即,輸出電流Ibias+之量對Vbias的值作出回應)且耦接至第一位元線BLW+。第二可變電流源3702產生藉由Vbias變化之輸出電流Ibias-(亦即,輸出電流Ibias-之量對Vbias的值作出回應)且耦接至第二位元線BLW-。BLW+係由行解碼器(圖中未示)選擇且在讀取操作期間自儲存W+值之胞元接收第一電流,且BLW-係由行解碼器選擇且在讀取操作期間自儲存W-值之胞元接收第二電流。W+值及相關聯W-值表示權重值W。電流源3701及3702之輸出Ibias+及Ibias-在任何給定時間相同。
VREF作為輸入共模電壓施加以產生Vbias電壓以控制可變電流源3701及3702以將共模電壓施加於BLW+及BLW-上,其中輸入共模電壓在讀取操作期間充當位元線上之參考讀取電壓。輸出電流神經元電路3700之輸出係Iout+及Iout-,其形成差動信號。Iout+係在Vbias已經施加以產生Ibias+之後來自位元線BLW+的輸出電流,且Iout-係在Vbias已經施加以產生Ibias-之後來自位元線BLW-的輸出電流,其中Iout+ = Ibias+ - IBLW+且Iout- = Ibias- - IBLW-。
圖37B描繪輸出電流神經元電路3750,其描繪使用PMOS電晶體3711及3712之可變電流源3701及3702的具體例。
圖38A描繪輸出電流神經元電路3800,其選擇地可包括於圖35之輸出區塊3500中、圖35B之輸出區塊3550中或圖36的輸出區塊3600中。
輸出電流神經元電路3800包含:第一可變電阻器3801(第一裝置),其包含第一端及第二端,該第二端耦接至在讀取操作期間選擇之位元線BLW+;第二可變電阻器3802(第二裝置),其包含第三端及第四端,該第四端耦接至在讀取操作期間選擇之位元線BLW-,其中BLW+連接至儲存W+值的記憶體陣列中之胞元且BLW-連接至儲存相關聯W-值的記憶體陣列中之胞元;可變電流源3803;以及偏壓電路運算放大器3804,其產生偏壓電壓Vbias,其值表示BLW+(或替代地BLW-)與VREF之間的差。第一可變電阻器3801之第一端及第二可變電阻器3802之第三端耦接至可變電流源3803。
VREF用以產生施加至可變電流源3803之Vbias電壓以將輸入共模電壓施加於位元線BLW+及BLW-上,其中輸入共模電壓在讀取操作期間充當位元線上之讀取參考電壓。輸出電流神經元電路3800之輸出係來自第一可變電阻器3801之Iout+(第一輸出電流)及來自第二可變電阻器3802之Iout-(第二輸出電流),該等可變電阻器形成差動電流信號。Iout+係在Vbias已經施加以產生Ibias之後來自位元線BLW+的輸出電流,且Iout-係在Vbias已經施加以產生Ibias之後來自位元線BLW-的輸出電流,根據以下:Iout+ = Ibias - IBLW+且Iout- = Ibias - IBLW-。
圖38B描繪輸出電流神經元電路3820,其選擇地可包括於圖35之輸出區塊3500中、圖35B之輸出區塊3550中或圖36的輸出區塊3600中。該電路類似於圖38A中之電路的電路,不同之處在於運算放大器3804之輸出直接驅動至兩個可變電阻器3801及3802之兩個端子中。
圖39描繪可變電阻器複製品3900,其選擇地可替代圖38中之可變電阻器3801及/或可變電阻器3802而使用。可變電阻器複製品3900包含NMOS電晶體3901。NMOS電晶體3901之一個端子耦接至偏壓電路3804。NMOS電晶體3901之另一端子耦接至BLW+或BLW-。NMOS電晶體3901之閘極耦接至比較器3902,該比較器產生調整由NMOS電晶體3901提供之電阻的控制信號VGC。因此,NMOS 3901之電阻係=VREF/IBIAS。藉由改變VREF或IBIAS,可改變NMOS 3901之等效電阻。
圖40描繪電流至電壓轉換器4000,其可用於圖35A中之電流至電壓轉換器3501、圖35B中之電流至電壓轉換器3551或圖36中之電流至電壓轉換器3602。
電流至電壓轉換器4000包含差動放大器4001;可變整合電阻器4002及4003;受控開關4004、4005、4006及4007;以及可變取樣及保持電容器4008及4009,如所展示組構。
電流至電壓轉換器4000接收差動電流IOUT+及IOUT-且輸出電壓VOP及VON。輸出電壓VOP=IOUT+*R且輸出電壓VON=IOUT-*R,其中電阻器4002及4003各自具有等於R之值。輸出神經元之按比例縮放係由電阻器4002及4003之值的變化提供。舉例而言,電阻器4002及4004可各自由電阻器複製品電路3900提供。電容器4008及4009充當保持S/H電容器,以一旦電阻器4002及4003以及輸入電流關斷便保持輸出電壓。控制電路(圖中未示)控制開關4004、4005、4006及4007之打開及閉合以提供整合時間。
在另一操作模式中,可變電容器4008及4009用以整合差動輸出電流IOUT+及IOUT-。在此情況下,停用(不使用)電阻器4002及4003。輸出電壓VOP因此與Iout+*Time/C成比例,且輸出電壓VON因此與Iout-*Time/C成比例。值Time係由脈衝4010 T之脈衝寬度控制。C值係由電容器4008及4009提供。在此實施例中,輸出神經元值之按比例縮放接著係由脈衝寬度T的變化或電容器4008及4009之電容值的變化提供。
差動電流IOUT+及IOUT-係源自第一位元線電流BLW+及第二位元線電流BLW-。IOUT+及IOUT-具有互補值(一個為正且另一為負,具有相同量值)。IOUT+之值=((BLW-的電流)-(BLW+之電流))/2,且IOUT-=((BLW+的電流)-(BLW-之電流))/2。舉例而言,若BLW+之電流係1 μa且BLW-之電流係31 μa,則Iout+=(31 μA-1μA)/2=15μA且lout-=-15μA。
圖41描繪差動放大器4100,其選擇地可包括於圖35A之輸出區塊3500中、圖35B之輸出區塊3550中或圖36的輸出區塊3600中。差動輸出放大器4100包含PMOS電晶體4101、4102、4103、4104、4105、4106、4107及4108,以及NMOS電晶體4109、4110、4111、4112及4113,如所展示組構。差動輸出放大器4100接收輸入VINP及VINN且產生輸出VOUTP及VOUTN。VPBIAS經施加至PMOS電晶體4102、4104、4106及4108之閘極,且VNBIAS經施加至NMOS電晶體4111及4113之閘極。若VINP>VINN,則VOUTP將較高且VOUTN將較低。若VINP<VINN,則VOUTP將較低且VOUTN將較高。未展示出用於輸出共模之共模反饋電路。
圖42描繪用於諸如上文所描述之輸出區塊3500、3550、3560、3570、3580、3590或3600等輸出區塊之偏移校準方法4200。該方法可在輸出區塊之子電路區塊內執行,諸如藉由ITV區塊或藉由ADC區塊。
首先,標稱偏壓經施加至輸入節點。標稱偏壓可為中點偏移修整設定,例如0值或平均值(諸如針對BLw+及BLw-之輸入的目標輸入範圍之平均值)(步驟4202)。
第二,增大之偏移修整設定經施加至輸出區塊的子電路區塊中之一者(諸如,ITV或ADC)(步驟4203)。
第三,量測整個輸出區塊之新修整輸出值且將其與預期輸出值進行比較,以查看值是否在標稱輸出值之目標值內(步驟4204)。若其為真,則方法前進至步驟4207。若其並不為真,則重複步驟4203及4204,其中施加至子電路區塊之偏移修整設定各次增大,直至整個輸出區塊的新修整輸出值在預期輸出值之內為止,此時該方法前進至步驟4207。
在特定數目次嘗試(藉由臨界值T設定)之後,若整個輸出區塊的新修整輸出值並不在預期輸出值之目標內,則偏移修整設定返回至標稱偏移修整設定,接著偏移修整設定自標稱設定減小(步驟4205)。
量測整個輸出區塊之新修整輸出值且將其與整個輸出區塊之預期輸出值進行比較,以查看值是否在預期輸出值的目標值內(步驟4206)。若其為真,則方法前進至步驟4207。若其並不為真,則重複步驟4205及4206,其中施加至輸入節點之偏移修整設定各次減小,直至新修整輸出值在預期輸出值之目標值內為止,此時該方法前進至步驟4207。
在步驟4207中,將使輸出值在預期輸出值之目標值內的修整值儲存為經儲存修整值。其為將藉由輸出區塊產生最小偏移之修整值。
在步驟4208中,選擇地,在每個操作期間將經儲存修整值作為偏壓添加至輸出區塊之子電路區塊。
因此,偏移校準方法4200藉由修整輸出區塊之子電路區塊而對整個輸出區塊執行修整操作。
圖43描繪用於諸如上文所描述之輸出區塊3500、3550、3560、3570、3580、3590或3600等輸出區塊之偏移校準方法4300。該方法可在子電路區塊內執行,諸如藉由ITV區塊或藉由ADC區塊。
首先,參考偏壓經施加至輸出區塊之子電路區塊的輸入節點(諸如用於BLw+及BLw-之輸入)(步驟4301)。
接下來,量測輸出區塊之輸出值且將其與目標偏移值進行比較(步驟4302)。
若經量測輸出值>目標偏移值,則施加偏移修整值序列中之下一偏移修整值(步驟4303),且重複步驟4302。偏移修整經施加至輸出區塊之子電路區塊中之一者(諸如,ITV或ADC)。
重複步驟4303及4302直至經量測輸出值<=目標偏移值為止,此時儲存偏移修整值(步驟4304)。其為產生可接受之偏移位準的修整值。
選擇地,在每個操作期間將經儲存偏移修整值作為偏壓施加至輸出區塊之子電路區塊(步驟4305)。
在替代性具體例中,圖35E或圖40B中之可變電阻器的電阻並不相等。在此情況下,來自ITV之輸出電壓或電流與電阻值成比例。舉例而言,在圖35E中,電阻器3585-1可為極大的,接著來自兩個位元線之大部分電流(IBLw+至IBLw-)將流經電阻器3584-1。在圖35E中之另一實施例中,電阻器3585-1斷開連接,接著來自兩個位元線之所有電流(IBLw+至IBLw-)將流經電阻器3584-1。
應注意,如本文中所使用,術語「在…上方」及「在…上」兩者包括「直接在…上」(其間未裝設有中間材料、元件或空間)及「間接地在…上」(其間裝設有中間材料、元件或空間)。同樣地,術語「鄰近」包括「直接鄰近」(其間未裝設有中間材料、元件或空間)及「間接鄰近」(其間裝設有中間材料、元件或空間),「安裝至」包括「直接安裝至」(其間未裝設有中間材料、元件或空間)及「間接安裝至」(其間裝設有中間材料、元件或空間),且「電耦接」包括「直接電耦接至」(其間沒有將元件電連接在一起之中間材料或元件)及「間接電耦接至」(其間具有將元件電連接在一起之中間材料或元件)。舉例而言,「在基板上方」形成元件可包括直接在基板上形成元件而其間無中間材料/元件,以及間接地在基板上形成元件而其間具有一或多種中間材料/元件。
12:半導體基板,基板
14:源極區
16:汲極區
18:通道區
20:浮動閘極
22:字線端子,選擇閘極,控制閘極
24:位元線
28:控制閘極
30:抹除閘極
31:數位至類比轉換器
32:向量乘矩陣乘法陣列,VMM陣列
32a:VMM陣列,輸入VMM陣列,層,輸入層
32b,32c:VMM陣列,層,隱藏層
32d,32e:VMM陣列,層,完全連接層
33:非揮發性記憶體胞元陣列
34:抹除閘極及字線閘極解碼器
35:控制閘極解碼器
36:位元線解碼器
37:源極線解碼器
38:差動求和器,求和運算放大器
39,1602,2002,2102:激勵函數區塊
210:記憶體胞元,快閃記憶體胞元
310:四閘極記憶體胞元,記憶體胞元,快閃記憶體胞元
410:三閘極記憶體胞元,記憶體胞元,快閃記憶體胞元
510:堆疊閘極記憶體胞元,記憶體胞元,快閃記憶體胞元
710:記憶體胞元
900,1100,1200,1300,2200:神經元VMM陣列,VMM陣列
901,1003,1103,1203,1303:記憶體陣列
902,1001,1002,1101,1102,1201,1202,1301,1302:參考陣列
903:控制閘極線
904:抹除閘極線
1000:神經元VMM陣列,VMM陣列,VMM
1014:二極體連接式貫穿多工器
1204:串疊電晶體
1205,1709,1710,2104,3502,3552,3603:多工器
1212:二極體連接式貫穿多工器,多工器
1314:二極體連接式參考胞元貫穿多工器
1400:LSTM
1401,1402,1403,1404,1801,1802,1803,1804:胞元
1500,1700:LSTM胞元
1501,1502,1503,1901,1902:S型函數構件
1504,1505,1903:雙曲正切構件
1506,1507,1508,1703,1904,1905,1906,2103:乘法器構件
1509,1708,1907,2105:加法構件
1600:LSTM胞元,LSTM
1601,1701,2001,2101,3401:VMM陣列
1702:激勵函數區塊,S型函數區塊
1704,1705,1706,1707,2106,2107,2108:暫存器
1800:GRU
1900,2000,2100:GRU胞元
1908,2109:互補構件
2300,2400,2500,2600,2700,2800,2900,3000:神經元VMM陣列
2701-1,2701-2,2701-(N-1),2701-N:位元線控制閘極
3100,3210,3300,3400:VMM系統
3101,3102,3213,3303,3304,3305,3306,3307,3308:求和電路
3211:第一陣列
3212:第二陣列
3301,3302:陣列
3402:列解碼器
3403:高電壓解碼器
3404:行解碼器
3405:位元線驅動器
3406:輸入電路
3407:輸出電路
3408:控制邏輯
3409:偏壓產生器
3410:高電壓產生區塊
3411:電荷泵
3412:電荷泵調節器
3413:高電壓類比精度位準產生器
3414:演算法控制器
3415:類比電路
3416:控制引擎
3417:測試控制邏輯
3500,3550,3560,3570,3580,3590,3600:輸出區塊
3501-1,3501-i:電流至電壓轉換器,ITV轉換器
3503-1,3503-k:取樣及保持電路,S/H電路,S/H
3504,3555,3605:通道多工器
3505:差動輸入類比至數位轉換器,ADC
3551-1,3551-i:電流至電壓轉換器,ITV
3553-1,3553-k:差動至單端轉換器,Diff-to-S轉換器
3554-1,3554-k:取樣及保持電路,S/H
3556:類比至數位轉換器,ADC
3561-1,3561-i,3571-1,3571-i,4000:電流至電壓轉換器
3566-1,3566-i,3586-1,3586-i:差動輸入類比至數位轉換器
3576-1,3576-i:輸入類比至數位轉換器
3581-1,3581-i:電流至電壓轉換器,ITV區塊
3582-1,3582-i:共模輸入電路
3583-1,3583-i:差動運算放大器
3584-1,3585-1:可變電阻器,電阻器
3584-i,3585-i:可變電阻器
3601-1,3601-i:求和電路,電流求和電路
3602-1,3602-i:電流至電壓轉換器電路
3604-1,3604-k:取樣及保持電路
3606:ADC,區塊,差動輸入ADC
3700,3750,3800,3820:輸出電流神經元電路
3701:第一可變電流源,電流源,可變電流源
3702:第二可變電流源,電流源,可變電流源
3703:偏壓電路
3711,3712,4101,4102,4103,4104,4105,4106,4107,4108:PMOS電晶體
3801:第一可變電阻器,可變電阻器
3802:第二可變電阻器,可變電阻器
3803,Ibias+,Ibias-:可變電流源
3804:偏壓電路運算放大器,運算放大器,偏壓電路
3900:可變電阻器複製品,電阻器複製品電路
3901:NMOS電晶體,NMOS
3902:比較器
4001:差動放大器
4002,4003:可變整合電阻器,電阻器
4004,4005,4006,4007:受控開關,開關
4008,4009:可變取樣及保持電容器,電容器,可變電容器
4010:脈衝
4100:差動放大器,差動輸出放大器
4109,4110,4111,4112,4113:NMOS電晶體
4200,4300:偏移校準方法
4201,4202,4203,4204,4205,4206,4207,4208,4301,4302,4303,
4304,4305:步驟
BL0,BL1,BL2,BL3,BLN,BL
N-1,BL
N:位元線,垂直位元線
BLR0,BLR1,BLR2,BLR3:端子
BLW+:第一位元線,位元線
BLW-:第二位元線,位元線
BLw+,BLw-:類比位元線電流信號
c
0,c
1,c
2:胞元狀態向量,胞元狀態
C1,C2,C3,S1,S2:層
CB1:第一突觸,突觸
CB2,CB3,CB4:突觸
CG0,CG1,CG2,CG3:控制閘極線,電壓輸入,控制閘極,CG線,控制閘極電壓,垂直控制閘極線
CG
M-1,CG
M:垂直控制閘極線,控制閘極線
c(t-1),c(t):胞元狀態向量
EG0,EG1:抹除閘極,EG線
EGR,EGR0,EGR1:EG線
h
0,h
1,h
2,h
3,h(t-1),h(t):輸出向量
P1:激勵函數,池化函數
P2:激勵函數
S0:輸入層
S3:輸出層,層
SL0,SL1,SL2,SL3:源極線,垂直源極線
SLN:垂直源極線
WL0,WL1,WL2,WL3:電壓輸入,字線,WL線
WL4,WL5,WL6,WL7,WL
M-1,WL
M,WLA0,WLA1,WLA2,WLA3,WLB0,WLB1,WLB2,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描繪向量乘矩陣乘法系統之另一具體例。
圖35A、圖35B、圖35C、圖35D、圖35E及圖35F描繪輸出區塊之具體例。
圖36描繪輸出區塊之另一具體例。
圖37A及圖37B描繪輸出區塊之另一具體例。
圖38A及圖38B描繪輸出區塊之另一具體例。
圖39描繪可變電阻器複製品。
圖40描繪電流至電壓轉換器之具體例。
圖41描繪差動輸出放大器。
圖42描繪偏移校準方法。
圖43描繪另一偏移校準方法。
C1,C2,C3,S1,S2:層
CB1:第一突觸,突觸
CB2,CB3,CB4:突觸
P1:激勵函數,池化函數
P2:激勵函數
S0:輸入層
S3:輸出層,層
Claims (9)
- 一種輸出電流神經元電路,其包含:一電流源;一偏壓電路,其用於將一控制電壓施加至該電流源;一第一可變電阻器,其包含一第一端及一第二端,該第一端耦接至該電流源;一第二可變電阻器,其包含一第三端及一第四端,該第三端耦接至該電流源,該電流源將一偏壓電流提供至該第一可變電阻器及該第二可變電阻器以便產生一共模電壓;一第一位元線,其在一讀取操作期間耦接至一W+胞元;以及一第二位元線,其在該讀取操作期間耦接至一W-胞元,其中,儲存於該W+胞元中之一值與儲存於該W-胞元中之一值之間的一差係一權重值W;一第一輸出,其耦接至該第一可變電阻器之該第二端及該第一位元線以提供一第一輸出電流;以及一第二輸出,其耦接至該第二可變電阻器之該第四端及該第二位元線以提供一第二輸出電流,該第一輸出及該第二輸出形成一共模差動電流信號。
- 如請求項1之電路,其中,該第一可變電阻器包含一NMOS電晶體,其中,施加至該NMOS電晶體之一閘極的一電壓判定該NMOS電晶體之電阻。
- 如請求項2之電路,其中,該第二可變電阻器包含一 NMOS電晶體,其中,施加至該NMOS電晶體之一閘極的一電壓判定該NMOS電晶體之電阻。
- 一種輸出電流神經元電路,其包含:一第一輸出節點,其用於自一記憶體陣列接收一第一電流;一第二輸出節點,其用於自一記憶體陣列接收一第二電流;一偏壓電路,其用以產生一偏壓電流;一第一可變電阻器,其用以產生等於該偏壓電流減去該第一電流的一第一輸出電流;以及一第二可變電阻器,其用以產生等於該偏壓電流減去該第二電流的一第二輸出電流。
- 如請求項4之輸出電流神經元電路,其中,該第一輸出電流係自耦接至一或多個W+胞元之一位元線的一讀取操作產生。
- 如請求項5之輸出電流神經元電路,其中,該第一輸出電流係自耦接至一或多個W-胞元之一位元線的一讀取操作產生。
- 一種輸出電流神經元電路,其包含:一第一輸出節點,其用於自一記憶體陣列接收一第一電流;一第二輸出節點,其用於自一記憶體陣列接收一第二電流;一偏壓電路,其用以在一偏壓節點處產生一偏壓電壓;一第一可變電阻器,其耦接在該偏壓節點與該第一輸出節點之間;一第二可變電阻器,其耦接在該偏壓節點與該第二輸出節點之間。
- 一種輸出區塊,其包含:一電流至電壓轉換器,其用於接收一位元線差動對,該電流至電壓 轉換器包含:一差動運算放大器,其包含一第一輸入及一第二輸入以及一第一輸出及一第二輸出,且該第一輸入及該第二輸入耦接至該位元線差動對;一第一可變電阻器,其耦接在該第一輸入與該第一輸出之間;一第二可變電阻器,其耦接在該第二輸入與該第二輸出之間;以及一共模輸入電路,其耦接在該第一輸入與該第二輸入之間;以及一差動輸入類比至數位轉換器,其用於接收該第一輸出及該第二輸出且產生一組數位輸出位元。
- 如請求項8之輸出區塊,其中,該共模輸入電路包含耦接至該第一輸入之一第一可變電流源及耦接至該第二輸入的一第二可變電流源,該第一可變電流源及該第二可變電流源產生相等電流。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163228529P | 2021-08-02 | 2021-08-02 | |
US63/228,529 | 2021-08-02 | ||
US17/521,772 US20230049032A1 (en) | 2021-08-02 | 2021-11-08 | Output circuitry for analog neural memory in a deep learning artificial neural network |
US17/521,772 | 2021-11-08 | ||
PCT/US2021/059281 WO2023014386A1 (en) | 2021-08-02 | 2021-11-13 | Output circuitry for analog neural memory in a deep learning artificial neural network |
WOPCT/US21/59281 | 2021-11-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202314712A TW202314712A (zh) | 2023-04-01 |
TWI822198B true TWI822198B (zh) | 2023-11-11 |
Family
ID=78828110
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111127677A TWI822198B (zh) | 2021-08-02 | 2022-07-25 | 深度學習人工神經網路中類比神經記憶體的輸出電路 |
TW112137999A TWI842636B (zh) | 2021-08-02 | 2022-07-25 | 深度學習人工神經網路中類比神經記憶體的輸出電路 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW112137999A TWI842636B (zh) | 2021-08-02 | 2022-07-25 | 深度學習人工神經網路中類比神經記憶體的輸出電路 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20230049032A1 (zh) |
EP (1) | EP4381504A1 (zh) |
JP (1) | JP2024529617A (zh) |
KR (1) | KR20240025634A (zh) |
TW (2) | TWI822198B (zh) |
WO (1) | WO2023014386A1 (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI673657B (zh) * | 2017-11-29 | 2019-10-01 | 美商安納富來希股份有限公司 | 具有非揮發性突觸陣列的神經網路電路 |
US20210143832A1 (en) * | 2018-03-19 | 2021-05-13 | Mythic, Inc. | System and methods for mixed-signal computing |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5029130A (en) | 1990-01-22 | 1991-07-02 | Silicon Storage Technology, Inc. | Single transistor non-valatile electrically alterable semiconductor memory device |
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 |
US9893688B1 (en) * | 2016-10-21 | 2018-02-13 | Stmicroelectronics, Inc. | Offset calibration circuit and method for an amplifier circuit |
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 |
US11354562B2 (en) * | 2018-01-03 | 2022-06-07 | Silicon Storage Technology, Inc. | Programmable neuron for analog non-volatile memory in deep learning artificial neural network |
TWI799588B (zh) * | 2018-07-13 | 2023-04-21 | 日商索尼股份有限公司 | 積和運算裝置、積和運算電路、積和運算系統及積和運算方法 |
US11586898B2 (en) * | 2019-01-29 | 2023-02-21 | Silicon Storage Technology, Inc. | Precision programming circuit for analog neural memory in deep learning artificial neural network |
US11587612B2 (en) * | 2019-07-03 | 2023-02-21 | Micron Technology, Inc. | Neural network memory with an array of variable resistance memory cells |
-
2021
- 2021-11-08 US US17/521,772 patent/US20230049032A1/en active Pending
- 2021-11-13 EP EP21823428.4A patent/EP4381504A1/en active Pending
- 2021-11-13 WO PCT/US2021/059281 patent/WO2023014386A1/en active Application Filing
- 2021-11-13 JP JP2024501685A patent/JP2024529617A/ja active Pending
- 2021-11-13 KR KR1020247002514A patent/KR20240025634A/ko unknown
-
2022
- 2022-07-25 TW TW111127677A patent/TWI822198B/zh active
- 2022-07-25 TW TW112137999A patent/TWI842636B/zh active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI673657B (zh) * | 2017-11-29 | 2019-10-01 | 美商安納富來希股份有限公司 | 具有非揮發性突觸陣列的神經網路電路 |
US20210143832A1 (en) * | 2018-03-19 | 2021-05-13 | Mythic, Inc. | System and methods for mixed-signal computing |
Also Published As
Publication number | Publication date |
---|---|
TWI842636B (zh) | 2024-05-11 |
KR20240025634A (ko) | 2024-02-27 |
US20230049032A1 (en) | 2023-02-16 |
JP2024529617A (ja) | 2024-08-08 |
EP4381504A1 (en) | 2024-06-12 |
WO2023014386A1 (en) | 2023-02-09 |
TW202314712A (zh) | 2023-04-01 |
TW202403758A (zh) | 2024-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI805909B (zh) | 用於深度學習人工神經網路中之類比神經記憶體的可組態輸入塊及輸出塊與實體佈局 | |
TWI814383B (zh) | 深度學習人工神經網路中類比神經記憶體的輸出電路 | |
TW202341014A (zh) | 深度學習人工神經網路中電性參數的校準 | |
TWI822198B (zh) | 深度學習人工神經網路中類比神經記憶體的輸出電路 | |
WO2022245384A1 (en) | Output circuit for analog neural memory in a deep learning artificial neural network | |
US20240062813A1 (en) | Determination of a bias voltage to apply to one or more memory cells in a neural network | |
US20240282351A1 (en) | Output block for array of non-volatile memory cells | |
US20240265951A1 (en) | Current-to-voltage converter comprising common mode circuit | |
US20240104164A1 (en) | Verification method and system in artificial neural network array | |
US20230325646A1 (en) | Artificial neural network comprising reference array for i-v slope configuration | |
TW202314599A (zh) | 深度學習人工神經網路中類比神經記憶體的輸入電路 | |
WO2024172829A1 (en) | Output block for a vector-by-matrix multiplication array of non-volatile memory cells | |
CN117813653A (zh) | 用于深度学习人工神经网络中的模拟神经存储器的输出电路 | |
TW202324211A (zh) | 可配置為以類比形式或數位形式儲存神經記憶體權重資料的混合記憶體系統 | |
TW202435222A (zh) | 用於非揮發記憶體胞元的陣列之輸出區塊 | |
TW202422557A (zh) | 人工神經網路陣列中的驗證方法及系統 | |
TW202349276A (zh) | 利用類比輸入的向量矩陣乘法陣列 | |
KR20240148895A (ko) | 아날로그 출력을 활용한 벡터와 행렬 간 승산 어레이 | |
WO2024162979A1 (en) | Current-to-voltage converter comprising common mode circuit | |
WO2023195999A1 (en) | Artificial neural network comprising reference array for i-v slope configuration | |
TW202437707A (zh) | 包括共模電路的電流至電壓轉換器 | |
TW202341013A (zh) | 深度學習人工神經網路中電性參數的校準 | |
WO2023196000A1 (en) | Vector-by-matrix-multiplication array utilizing analog inputs | |
KR20240133999A (ko) | 3차원 집적 회로를 포함하는 인공 신경망 | |
CN118633126A (zh) | 深度学习人工神经网络中的电参数的校准 |