TW202236170A - 用於人工神經網路中之類比神經記憶體之精確資料調校方法及裝置 - Google Patents

用於人工神經網路中之類比神經記憶體之精確資料調校方法及裝置 Download PDF

Info

Publication number
TW202236170A
TW202236170A TW111101921A TW111101921A TW202236170A TW 202236170 A TW202236170 A TW 202236170A TW 111101921 A TW111101921 A TW 111101921A TW 111101921 A TW111101921 A TW 111101921A TW 202236170 A TW202236170 A TW 202236170A
Authority
TW
Taiwan
Prior art keywords
value
volatile memory
cell
neural network
array
Prior art date
Application number
TW111101921A
Other languages
English (en)
Other versions
TWI809663B (zh
Inventor
曉萬 陳
史蒂芬 利姆克
恩漢 杜
馬克 萊坦
Original Assignee
美商超捷公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US17/185,725 external-priority patent/US20210209458A1/en
Application filed by 美商超捷公司 filed Critical 美商超捷公司
Publication of TW202236170A publication Critical patent/TW202236170A/zh
Application granted granted Critical
Publication of TWI809663B publication Critical patent/TWI809663B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • G06N3/0442Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B41/00Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates
    • H10B41/30Electrically erasable-and-programmable ROM [EEPROM] devices comprising floating gates characterised by the memory core region

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Neurology (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Non-Volatile Memory (AREA)
  • Read Only Memory (AREA)
  • Feedback Control In General (AREA)
  • Magnetic Resonance Imaging Apparatus (AREA)
  • Networks Using Active Elements (AREA)

Abstract

揭示了一精確程式化演算法及裝置之眾多具體例,該演算法及裝置用於在一人工神經網路中之一向量矩陣乘法(VMM)陣列內之一非揮發性記憶體單元的浮動閘極上精確且快速地沉積正確量之電荷。選定的單元藉此可用極高精確度經程式化以保持N個不同數值之一者。

Description

用於人工神經網路中之類比神經記憶體之精確資料調校方法及裝置
[優先權主張]本申請案主張於2021年2月25日提交且標題為「用於人工神經網路中之類比神經記憶體之精確資料調校方法及裝置(Precise Data Tuning Method and Apparatus for Analog Neural Memory in an Artificial Neural Network)」之美國專利申請案第17/185,725號的優先權,該美國專利申請案為於2020年3月25日提交且標題為「用於人工神經網路中之類比神經形態記憶體之精確資料調校方法及裝置(Precise Data Tuning Method and Apparatus for Analog Neuromorphic Memory in an Artificial Neural Network)」之美國專利申請案第16/829,757號的部分連續申請案,該美國專利申請案第16/829,757號主張於2020年1月3日提交且標題為「用於人工神經網路中之類比神經形態記憶體之精確資料調校方法及裝置(Precise Data Tuning Method and Apparatus for Analog Neuromorphic Memory in an Artificial Neural Network)」之美國臨時專利申請案第62/957,013號的優先權。
揭示了精確調校方法及裝置之眾多具體例,該方法及裝置用於在人工神經網路中之向量矩陣乘法(VMM)陣列內之非揮發性記憶體單元的浮動閘極上精確且快速地沉積正確量之電荷。
人工神經網路模擬生物神經網路(動物之中樞神經系統,特定言之,大腦)且用於估計或估算可取決於大量輸入且通常未知的功能。人工神經網路通常包括彼此交換訊息之互連「神經元」的層。
圖1說明人工神經網路,其中圓形表示神經元之輸入或層。連接(被稱作突觸)由箭頭表示,且具有可基於經驗進行調校之數值權重。此使得人工神經網路適應於輸入且能夠學習。通常,人工神經網路包括多個輸入之層。典型地存在一或多個中間神經元層及提供神經網路之輸出的輸出神經元層。每一層級處之神經元基於自突觸所接收之資料而個別地或共同地形成決策。
用於高效能資訊處理之人工神經網路之發展中的主要挑戰之一在於缺乏充分的硬體技術。事實上,實際人工神經網路依賴於極大量突觸,從而實現神經元之間的高度連接性,亦即,極高計算並行性。原則上,此複雜性可利用數位超級電腦或專用圖形處理單元叢集來達成。然而,除高成本之外,與生物網路相比,此等方法亦受中等能效困擾,主要因為生物網路執行低精確度類比計算,所以其消耗少得多的能量。CMOS類比電路已用於人工神經網路,但鑒於大量神經元及突觸,故大部分實施CMOS之突觸已過於龐大。
申請人先前在公開為美國專利公開案2017/0337466之美國專利申請案第15/594,439號中揭示了一種人工(類比)神經網路,其利用一或多個非揮發性記憶體陣列作為突觸,該美國專利公開案以引用之方式併入。非揮發性記憶體陣列作為類比神經形態記憶體操作。如本文中所使用,術語神經形態意謂實施神經系統之模型的電路系統。類比神經形態記憶體包括:第一複數個突觸,其經組構以接收第一複數個輸入且自第一複數個輸入產生第一複數個輸出;及第一複數個神經元,其經組構以接收第一複數個輸出。第一複數個突觸包括複數個記憶體單元,其中記憶體單元中之每一者包括形成於半導體基板中的間隔開之源極及汲極區,其中在該兩區之間延伸有通道區;安置於通道區之第一部分上方且與第一部分絕緣之浮動閘極;及安置於通道區之第二部分上方且與第二部分絕緣之非浮動閘極。該複數個記憶體單元中之每一者經組構以儲存對應於該浮動閘極上之電子數目的權重值。複數個記憶體單元經組構以使第一複數個輸入乘以所儲存權重值以產生第一複數個輸出。以此方式配置之記憶體單元陣列可被稱作向量矩陣乘法(vector by matrix multiplication;VMM)陣列。
VMM陣列中使用之每一非揮發性記憶體單元必須經抹除及程式化,以在浮動閘極中保持特定且精確量之電荷,亦即電子數目。舉例而言,每一浮動閘極必須保持N個不同值中之一者,其中N為可由每一單元指示之不同權重之數目。N之實施例包括16、32、64、128及256。一個挑戰為以N的不同值所需之精確度及精細度程式化選定單元之能力。舉例而言,若選定單元可包括64個不同值中之一者,則在程式操作中需要極高精確度。
需要適於與類比神經形態記憶體中之VMM陣列一起使用的經改良程式化系統及方法。
揭示精確調校演算法及裝置之眾多具體例,該演算法及裝置用於在類比神經形態記憶體系統中之VMM陣列內之非揮發性記憶體單元的浮動閘極上精確且快速地沉積正確量之電荷。選定的單元藉此可以極高精確度經程式化以保持N個不同值中之一者。
在一個具體例中,一種神經網路包含非揮發性記憶體單元之向量矩陣乘法陣列,其中權重值w根據公式w=(w+)-(w-)作為差分對w+及w-儲存於陣列中之第一非揮發性記憶體單元及第二非揮發性記憶體單元中,其中w+及w-包括非零偏移值。
在另一具體例中,一種神經網路包含非揮發性記憶體單元之向量矩陣乘法陣列,該陣列組織成多列及多行之非揮發性記憶體單元,其中權重值w根據公式w=(w+)-(w-)作為差分對w+及w-儲存於第一非揮發性記憶體單元及第二非揮發性記憶體單元中,其中w+及w-值之儲存大致均勻地散佈於陣列中之所有行當中。
在另一具體例中,一種在向量矩陣乘法陣列中程式化、驗證及讀取一差分對非揮發性記憶體單元中之零值之方法包含:將差分對中之第一單元w+程式化為第一電流值;藉由將等於第一電壓加偏壓電壓之電壓施加至第一單元之控制閘極端子而驗證第一單元;將差分對中之第二單元w-程式化為第一電流值;藉由將等於第一電壓加偏壓電壓之電壓施加至第二單元之控制閘極端子而驗證第二單元;藉由將等於第一電壓之電壓施加至第一單元之控制閘極端子而讀取第一單元;
藉由將等於第一電壓之電壓施加至第二單元之控制閘極端子而讀取第二單元;及根據公式w=(w+)-(w-)計算值w。
在另一具體例中,一種在向量矩陣乘法陣列中程式化、驗證及讀取一差分對非揮發性記憶體單元中之零值之方法包含:將差分對中之第一單元w+程式化為第一電流值;藉由將等於第一電壓加偏壓電壓之電壓施加至第一單元之控制閘極端子而驗證第一單元;將差分對中之第二單元w-程式化為第一電流值;藉由將等於第一電壓加偏壓電壓之電壓施加至第二單元之控制閘極端子而驗證第二單元;藉由將等於第一電壓之電壓施加至第一單元之控制閘極端子而讀取第一單元;藉由將等於第一電壓之電壓施加至第二單元之控制閘極端子而讀取第二單元;及根據公式w=(w+)-(w-)計算值w。
在另一具體例中,一種神經網路包含非揮發性記憶體單元之向量矩陣乘法陣列,該陣列組織成多列及多行之非揮發性記憶體單元,其中權重值w根據公式w=(w+)-(w-)儲存為差分對w+及w-,其中w+作為差分對儲存於陣列中之第一非揮發性記憶體單元及第二非揮發性記憶體單元中,且w-作為差分對儲存於陣列中之第三非揮發性記憶體單元及第四非揮發性記憶體單元中,其中w+及w-值之儲存偏移一偏壓值。
在另一具體例中,一種神經網路包含非揮發性記憶體單元之向量矩陣乘法陣列,該陣列組織成多列及多行之非揮發性記憶體單元,其中權重值w根據公式w=(w+)-(w-)作為差分對w+及w-儲存於第一非揮發性記憶體單元及第二非揮發性記憶體單元中,其中w+之值係選自非零值之第一範圍且w-之值係選自非零值之第二範圍,其中該第一範圍與該第二範圍並不重疊。
在另一具體例中,一種讀取向量矩陣乘法陣列中之非揮發性記憶體單元的方法包含讀取儲存於陣列中之選定單元中的權重,其包含:將零電壓偏壓施加至選定單元之控制閘極端子;及感測包含自選定單元輸出之電流的神經元輸出電流。
在另一個具體例中,一種操作向量矩陣乘法陣列中之非揮發性記憶體單元的方法包含:藉由將第一偏壓電壓施加至非揮發性記憶體單元之控制閘極來讀取非揮發性記憶體單元;及在待用操作、深度斷電操作或測試操作中之一或多者期間將第二偏壓電壓施加至非揮發性記憶體單元之控制閘極。
本發明之人工神經網路利用CMOS技術與非揮發性記憶體陣列之組合。 非揮發性記憶體單元
數位非揮發性記憶體為吾人所熟知。舉例而言,以引用之方式併入本文中的美國專利5,029,130(「'130專利」)揭示了一種分離閘式非揮發性記憶體單元陣列,其為一種類型之快閃記憶體單元。圖2中展示此記憶體單元210。每一記憶體單元210包括形成於半導體基板12中之源極區14及汲極區16,其中通道區18處於該源極區與該汲極區之間。浮動閘極20形成於通道區18之第一部分上方並與該第一部分絕緣(且控制該第一部分之導電性),且形成於源極區14之一部分上方。字線端子22 (其通常耦接至字線)具有:第一部分,其安置於通道區18之第二部分上方且與該第二部分絕緣(並且控制該第二部分之導電性);及第二部分,其在浮動閘極20上及上方延伸。浮動閘極20及字線端子22藉由閘極氧化物與基板12絕緣。位元線端子24耦接至汲極區16。
記憶體單元210藉由將高正電壓置於字線端子22上來抹除(其中電子自浮動閘極移除),此使得浮動閘極20上之電子經由富爾-諾罕(Fowler-Nordheim)穿隧自浮動閘極20穿過中間絕緣物穿隧至字線端子22。
記憶體單元210藉由將正電壓置於字線端子22上且將正電壓置於源極區14上來程式化(其中電子置於浮動閘極上)。電子電流將自源極區14 (源極線端子)朝向汲極區16流動。當電子到達字線端子22與浮動閘極20之間的間隙時,該等電子將加速並且被加熱。經加熱電子中之一些將由於來自浮動閘極20之吸引靜電力而穿過閘極氧化物注入至浮動閘極20上。
記憶體單元210係藉由將正讀取電壓置於汲極區16及字線端子22上來讀取(此接通通道區18之在字線端子下的部分)。若浮動閘極20帶正電(亦即,電子經抹除),則通道區18之在浮動閘極20下方的部分亦接通,且電流將跨越通道區18流動,此被感測為抹除或「1」狀態。若浮動閘極20帶負電(亦即,用電子程式化),則通道區之在浮動閘極20下方的部分大部分或完全斷開,且電流將不流過(或將有極少電流流過)通道區18,此被感測為經程式化或「0」狀態。
表1描繪可應用於記憶體單元110之端子以用於執行讀取、抹除及程式化操作的典型電壓範圍: 表1:圖2之快閃記憶體單元210之操作
   WL BL SL
讀取1 0.5-3V 0.1-2V 0V
讀取2 0.5-3V 0-2V 2-0.1V
抹除 ~11-13V 0V 0V
程式化 1-2V 1-3µA 9-10V
「讀取1」為其中單元電流在位元線上輸出之讀取模式。「讀取2」為其中單元電流在源極線端子上輸出之讀取模式。
圖3展示記憶體單元310,其類似於圖2之記憶體單元210,且添加了控制閘極(CG)端子28。控制閘極端子28在程式化時被偏壓在高電壓,例如10V下;在抹除時被偏壓在低或負電壓,例如0V/-8V下;在讀取時被偏壓在低或中間範圍,例如0V/2.5V下。其他端子以類似於圖2之方式經偏壓。
圖4描繪四閘極記憶體單元410,其包含源極區14、汲極區16、在通道區18之第一部分上方的浮動閘極20、在通道區18之第二部分上方的選擇閘極22 (典型地耦接至字線WL)、在浮動閘極20上方之控制閘極28,及在源極區14上方之抹除閘極30。此組構描述於美國專利6,747,310中,其出於所有目的以引用之方式併入本文中。此處,除浮動閘極20以外,所有閘極皆為非浮動閘極,此意謂該等閘極電連接或可電連接至電壓源。程式化係藉由來自通道區18之經加熱電子將自身注入至浮動閘極20上來執行。抹除係藉由自浮動閘極20至抹除閘極30之電子穿隧來執行。
表2描繪可施加至記憶體單元410之端子以用於執行讀取、抹除及程式化操作的典型電壓範圍: 表2:圖4之快閃記憶體單元410之操作
   WL/SG BL CG EG SL
讀取1 0.5-2V 0.1-2V 0-2.6V 0-2.6V 0V
讀取2 0.5-2V 0-2V 0-2.6V 0-2.6V 2-0.1V
抹除 -0.5V/0V 0V 0V/-8V 8-12V 0V
程式化 1V 1µA 8-11V 4.5-9V 4.5-5V
「讀取1」為其中單元電流在位元線上輸出之讀取模式。「讀取2」為其中單元電流在源極線端子上輸出之讀取模式。
圖5展示記憶體單元510,其類似於圖4的記憶體單元410,不同之處在於記憶體單元510不包含抹除閘極EG端子。抹除係藉由將基板18偏壓至高電壓及將控制閘極CG端子28偏壓至低或負電壓來執行。替代地,抹除係藉由將字線端子22偏壓至正電壓及將控制閘極端子28偏壓至負電壓來執行。程式化及讀取類似於圖4之程式化及讀取。
圖6描繪三閘極記憶體單元610,其為另一類型之快閃記憶體單元。記憶體單元610與圖4的記憶體單元410相同,不同之處在於記憶體單元610不具有單獨的控制閘極端子。抹除操作(藉此經由使用抹除閘極端子進行抹除)及讀取操作類似於圖4的抹除操作及讀取操作,除了未施加控制閘極偏壓之外。程式化操作亦在無控制閘極偏壓之情況下進行,且結果,在程式化操作期間較高電壓必須施加在源極線端子上以補償控制閘極偏壓之缺乏。
表3描繪可施加至記憶體單元610之端子以用於執行讀取、抹除及程式化操作的典型電壓範圍: 表3:圖6之快閃記憶體單元610的操作
   WL/SG BL EG SL
讀取1 0.5-2.2V 0.1-2V 0-2.6V 0V
讀取2 0.5-2.2V 0-2V 0-2.6V 2-0.1V
抹除 -0.5V/0V 0V 11.5V 0V
程式化 1V 2-3µA 4.5V 7-9V
「讀取1」為其中單元電流在位元線上輸出之讀取模式。「讀取2」為其中單元電流在源極線端子上輸出之讀取模式。
圖7描繪堆疊閘式記憶體單元710,其為另一類型之快閃記憶體單元。記憶體單元710類似於圖2的記憶體單元210,不同之處在於浮動閘極20在整個通道區18上方延伸,且控制閘極端子22 (其在此處將耦接至字線)在浮動閘極20上方延伸,該浮動閘極由絕緣層(未展示)分離。抹除、程式化及讀取操作以與先前針對記憶體單元210所描繪之方式類似的方式操作。
表4描繪可施加至記憶體單元710之端子及基板12以用於執行讀取、抹除及程式化操作之典型電壓範圍: 表4:圖7之快閃記憶體單元710之操作
   CG BL SL 基板
讀取1 0-5V 0.1-2V 0-2V 0V
讀取2 0.5-2V 0-2V 2-0.1V 0V
抹除 -8至-10V/0V FLT FLT 8-10V/15-20V
程式化 8-12V 3-5V/0V 0V/3-5V 0V
「讀取1」為其中單元電流在位元線上輸出之讀取模式。「讀取2」為其中單元電流在源極線端子上輸出之讀取模式。視情況,在包含記憶體單元210、310、410、510、610或710之列及行之陣列中,源極線可耦接至記憶體單元之一個列或記憶體單元之兩個相鄰列。亦即,源極線端子可由記憶體單元的相鄰列共用。
為了利用包含上文在人工神經網路中所描述之非揮發性記憶體單元類型中之一者的記憶體陣列,進行兩個修改。首先,線經組構以使得每一記憶體單元可個別地程式化、抹除及讀取而不會不利地影響陣列中之其他記憶體單元之記憶體狀態,如下文進一步解釋。其次,提供記憶體單元之連續(類比)程式化。
具體言之,陣列中之每一記憶體單元之記憶體狀態(亦即,浮動閘極上之電荷)可連續地自完全抹除狀態改變為完全程式化狀態,其方式為獨立的且對其他記憶體單元之干擾最小。在另一具體例中,陣列中之每一記憶體單元之記憶體狀態(亦即,浮動閘極上之電荷)可連續地自完全程式化狀態改變為完全抹除狀態,且反之亦然,其方式為獨立的且對其他記憶體單元之干擾最小。此意謂單元儲存為類比的,或至少可儲存許多離散值(諸如16或64個不同值)中之一者,此允許對記憶體陣列中之所有單元進行極精確且個別的調校,且此使得記憶體陣列對於儲存神經網路之突觸權重及對該等突觸權重進行精細調校調整係理想的。
本文中所描述之方法及手段可應用於其他非揮發性記憶體技術,諸如但不限於氧化矽-氮化物-氧化物-矽(SONOS,氮化物中之電荷捕捉)、金屬-氧化物-氮化物-氧化物-矽(MONOS,氮化物中之金屬電荷捕捉)、電阻式ram(ReRAM)、相變記憶體(PCM)、磁性ram(MRAM)、鐵電ram(FeRAM)、雙層級或多層級一次性可程式化(OTP)及相關電子ram(CeRAM)。本文中所描述之方法及手段可適用於用於神經網路之揮發性記憶體技術,諸如SRAM、DRAM及其他揮發性突觸單元,但不限於此。 採用非揮發性記憶體單元陣列之神經網路
圖8在概念上例示利用本具體例之非揮發性記憶體陣列的神經網路之非限制性實施例。此實施例將非揮發性記憶體陣列神經網路用於面部辨識應用,但任何其他適當應用皆可使用基於非揮發性記憶體陣列之神經網路來實施。
S0為輸入層,對於此實施例,該輸入層為具有5位元精確度之32×32像素RGB影像(亦即,三個32×32像素陣列,每種色彩R、G及B一個陣列,每一像素為5位元精確度)。自輸入層S0行進至層C1之突觸CB1在一些情況下施加不同權重集合且在其他情況下共用權重,且用3×3像素重疊濾波器(核心)掃描輸入影像,使濾波器移位1個像素(或多於1個像素,如由模型指定)。特定言之,影像(亦即,稱作濾波器或核心)之3×3部分中之9個像素的值被提供至突觸CB1,其中使此9個輸入值乘以適當權重,且在對彼乘法之輸出求和之後,判定單一輸出值且由第一突觸CB1提供該單一輸出值以用於產生特徵圖層C1中之一者的像素。3×3濾波器接著在輸入層S0內向右移位一個像素(亦即,在右側上增加三個像素之行,且在左側上丟棄三個像素之行),藉此將此新定位濾波器中之9個像素值提供至突觸CB1,其中使該等像素值乘以相同權重,且藉由相聯結突觸判定第二單一輸出值。此程序針對所有三個色彩且針對所有位元(精確度值)繼續,直至3×3濾波器跨越輸入層S0之整個32×32像素影像進行掃描為止。程序隨後使用不同權重集合進行重複以產生C1之不同特徵圖,直至層C1之所有特徵圖已經計算為止。
在層C1中,在本發明實施例中,存在16個特徵圖,每一特徵圖具有30×30個像素。每一像素為自使輸入與核心相乘提取之新特徵像素,且因此每一特徵圖為二維陣列,且因此在此實施例中,層C1構成二維陣列之16個層(應謹記,本文中所提及之層及陣列為邏輯關係,未必為實體關係,亦即,陣列未必定向於實體二維陣列中)。層C1中之16個特徵圖中的每一者皆由應用於濾波器掃描之突觸權重之十六個不同集合中的一者產生。C1特徵圖可皆針對同一影像特徵之不同態樣,諸如邊界識別。舉例而言,第一圖(使用第一權重集合產生,對於用以此第一圖之所有掃描為共用的)可識別圓形邊緣,第二圖(使用不同於第一權重集合之第二權重集合產生)可識別矩形邊緣或某些特徵之縱橫比等等。
在自層C1進入層S1之前應用激勵函數P1(池化(pooling)),其池化來自每一特徵圖中之連續非重疊2×2區的值。池化函數之目的為使附近位置達到平均數(或亦可使用最大函數),以例如降低邊緣位置之相依性且在進入下一級之前縮減資料大小。在層S1處,存在16個15×15特徵圖(亦即,各自具有15×15個像素之十六個不同陣列)。自層S1行進至層C2之突觸CB2用4×4濾波器掃描S1中之圖,其中濾波器移位1個像素。在層C2處,存在22個12×12特徵圖。在自層C2進入層S2之前應用激勵函數P2(池化),其池化來自每一特徵圖中之連續非重疊2×2區的值。在層S2處,存在22個6×6特徵圖。在自層S2進入層C3之突觸CB3處應用激勵函數(池化),其中層C3中之每個神經元經由CB3之各別突觸連接至層S2中之每個圖。在層C3處,存在64個神經元。自層C3進入輸出層S3之突觸CB4將C3完全連接至S3,亦即,層C3中之每一神經元連接至層S3中之每一神經元。S3處之輸出包括10個神經元,其中最高輸出神經元判定類別。此輸出可例如指示原始影像之內容之識別或分類。
每一突觸層係使用非揮發性記憶體單元之陣列或陣列之一部分來實施。
圖9為可用於彼目的之系統的方塊圖。VMM系統32包括非揮發性記憶體單元,且用作一個層與下一層之間的突觸(諸如圖6中之CB1、CB2、CB3及CB4)。特定言之,VMM系統32包含包括以列及行配置之非揮發性記憶體單元之VMM陣列33、抹除閘極及字線閘極解碼器34、控制閘極解碼器35、位元線解碼器36及源極線解碼器37,其解碼非揮發性記憶體單元陣列33之各別輸入。至VMM陣列33之輸入可來自抹除閘極及字線閘極解碼器34或來自控制閘極解碼器35。源極線解碼器37在此實施例中亦解碼VMM陣列33之輸出。替代地,位元線解碼器36可解碼VMM陣列33之輸出。
VMM陣列33用於兩個目的。首先,其儲存將由VMM系統32使用之權重。其次,VMM陣列33有效地將輸入乘以儲存於VMM陣列33中之權重,且按輸出線(源極線或位元線)將結果相加以產生輸出,該輸出將為至下一層之輸入或至最終層之輸入。藉由執行乘法及加法函數,VMM陣列33消除了對單獨的乘法及加法邏輯電路之需要,且由於其就地記憶體計算亦為功率高效的。
VMM陣列33的輸出經供應至差分求和器(諸如求和運算放大器或求和電流鏡) 38,其對VMM陣列33之輸出進行求和以產生用於彼卷積之單個值。差分求和器38經配置以執行正權重輸入與負權重輸入之求和以輸出單個值。
接著將差分求和器38之總計輸出值供應至對輸出進行整流之激勵函數電路39。激勵函數電路39可提供S型(sigmoid)、雙曲正切(tanh)、ReLU函數,或任何其他非線性函數。激勵函數電路39之經整流輸出值變成下一層(例如圖8中之C1)之特徵圖之元素,且隨後應用於下一突觸以產生下一特徵圖層或最終層。因此,在此實施例中,VMM陣列33構成複數個突觸(其自前一神經元層或自諸如影像資料庫之輸入層接收其輸入),且求和器38及激勵函數電路39構成複數個神經元。
至圖9中之VMM系統32的輸入(WLx、EGx、CGx且視情況地BLx及SLx)可為類比層級、二進位層級、數位脈衝(在此狀況下,可能需要脈衝至類比轉換器PAC以將脈衝轉換至適當輸入類比層級)或數位位元(在此狀況下,提供DAC以將數位位元轉換至適當輸入類比層級),且輸出可為類比層級、二進位層級、數位脈衝或數位位元(在此狀況下,提供輸出ADC以將輸出類比層級轉換成數位位元)。
圖10為描繪VMM系統32(此處標記為VMM系統32a、32b、32c、32d及32e)之眾多層之使用的方塊圖。如圖10中所示,表示為Inputx之輸入由數位至類比轉換器31自數位轉換至類比,且被提供至輸入VMM系統32a。經轉換之類比輸入可為電壓或電流。第一層之輸入D/A轉換可藉由使用函數或查找表(LUT)來進行,該函數或LUT將輸入Inputx映射至適用於輸入VMM系統32a之矩陣乘法器的類比層級。輸入轉換亦可由類比至類比(A/A)轉換器進行以將外部類比輸入轉換為至輸入VMM系統32a之經映射類比輸入。輸入轉換亦可由數位至數位脈衝(D/P)轉換器進行以將外部數位輸入轉換為至輸入VMM系統32a之一或多個經映射數位脈衝。
由輸入VMM系統32a產生之輸出被提供為至下一VMM系統(隱藏層級1)32b之輸入,該下一VMM系統又產生被提供為至下一VMM系統(隱藏層級2)32c之輸入的輸出,等等。VMM系統32之各種層充當卷積神經網路(convolutional neural network;CNN)之突觸及神經元的不同層。每一VMM系統32a、32b、32c、32d及32e可為包含各別非揮發性記憶體陣列之獨立實體系統,或多個VMM系統可利用同一實體非揮發性記憶體陣列之不同部分,或多個VMM系統可利用同一實體非揮發性記憶體陣列之重疊部分。每一VMM系統32a、32b、32c、32d及32e亦可針對其陣列或神經元之各種部分進行時間多工。圖10中所示之實施例含有五個層(32a、32b、32c、32d、32e):一個輸入層(32a)、兩個隱藏層(32b、32c)及兩個完全連接層(32d、32e)。一般熟習此項技術者將瞭解,此僅為例示性的,且系統替代地可包含多於兩個隱藏層及多於兩個完全連接層。 VMM陣列
圖11描繪神經元VMM陣列1100,其尤其適於如圖3中所示之記憶體單元310,且用作輸入層與下一層之間的突觸及神經元部分。VMM陣列1100包含非揮發性記憶體單元之記憶體陣列1101及非揮發性參考記憶體單元之參考陣列1102(在陣列之頂部處)。替代地,另一參考陣列可置放於底部處。
在VMM陣列1100中,控制閘極線(諸如控制閘極線1103)在垂直方向上延伸(因此,列方向中之參考陣列1102與控制閘極線1103正交),且抹除閘極線(諸如抹除閘極線1104)在水平方向上延伸。此處,至VMM陣列1100之輸入提供於控制閘極線(CG0、CG1、CG2、CG3)上,且VMM陣列1100之輸出出現於源極線(SL0、SL1)上。在一個具體例中,僅偶數列被使用,且在另一具體例中,僅奇數列被使用。置放於每一源極線(分別為SL0、SL1)上之電流對來自連接至彼特定源極線之記憶體單元的所有電流執行求和函數。
如本文中針對神經網路所描述,VMM陣列1100之非揮發性記憶體單元,亦即,VMM陣列1100之快閃記憶體,較佳經組構以在次臨限區中操作。
本文中所描繪之非揮發性參考記憶體單元及非揮發性記憶體單元在弱反轉(weak inversion)中經偏壓: 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日誌轉換器將輸入電流Ids轉換成輸入電壓,Vg: Vg=n*Vt*log[Ids/wp*Io] 此處,wp為參考或周邊記憶體單元之w。
為了令使用記憶體單元(諸如參考記憶體單元或周邊記憶體單元)或電晶體之I至V日誌轉換器將輸入電流Ids轉換成輸入電壓,Vg: 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)/nVtIin=wp*Io*e (Vg)/nVt此處,wa =記憶體陣列中之每一記憶體單元之w。
字線或控制閘極可用作用於輸入電壓之記憶體單元之輸入。
替代地,本文中所描述之VMM陣列的非揮發性記憶體單元可經組構以在線性區中操作: Ids=β*(Vgs-Vth)*Vds;β=u*Cox*Wt/L, Wα(Vgs-Vth), 此意謂線性區中之權重W係與(Vgs-Vth)成比例
字線或控制閘極或位元線或源極線可用作在線性區中操作之記憶體單元之輸入。位元線或源極線可用作記憶體單元之輸出。
對於I至V線性轉換器,記憶體單元(諸如參考記憶體單元或周邊記憶體單元)或在線性區中操作之電晶體或電阻器可用以將輸入/輸出電流線性地轉換成輸入/輸出電壓。
替代地,本文中所描述之VMM陣列的記憶體單元可經組構以在飽和區中操作: Ids=½*β*(Vgs-Vth) 2;β=u*Cox*Wt/L Wα(Vgs-Vth) 2,此意謂權重W與(Vgs-Vth) 2成比例
字線、控制閘極或抹除閘極可用作在飽和區中操作之記憶體單元的輸入。位元線或源極線可用作輸出神經元之輸出。
替代地,本文中所描述之VMM陣列之記憶體單元可用於所有區或其組合(次臨限、線性或飽和)中。
用於圖9之VMM陣列33的其他具體例描述於美國專利申請案第15/826,345號中,該申請案以引用之方式併入本文中。如彼申請案中所描繪,源極線或位元線可用作神經元輸出(電流求和輸出)。
圖12描繪神經元VMM陣列1200,其尤其適合於如圖2中所展示之記憶體單元210,且用作輸入層與下一層之間的突觸。VMM陣列1200包含非揮發性記憶體單元之記憶體陣列1203、第一非揮發性參考記憶體單元之參考陣列1201及第二非揮發性參考記憶體單元之參考陣列1202。配置於陣列之行方向上的參考陣列1201及1202用以將流入端子BLR0、BLR1、BLR2及BLR3中之電流輸入轉換成電壓輸入WL0、WL1、WL2及WL3。實際上,第一及第二非揮發性參考記憶體單元為二極體連接式貫穿多工器1214(僅部分描繪),其中電流輸入流入該等多工器中。參考單元經調校(例如程式化)至目標參考層級。目標參考層級由參考迷你陣列矩陣(未展示)提供。
記憶體陣列1203用於兩個目的。首先,其儲存將由VMM陣列1200在其各別記憶體單元上使用之權重。其次,記憶體陣列1203有效地使輸入(亦即,在端子BLR0、BLR1、BLR2及BLR3中提供之電流輸入,其由參考陣列1201及1202轉換成輸入電壓以供應至字線WL0、WL1、WL2及WL3)乘以儲存於記憶體陣列1203中之權重,且接著將所有結果(記憶體單元電流)相加以在各別位元線(BL0至BLN)上產生輸出,該輸出將為至下一層之輸入或至最終層之輸入。藉由執行乘法及加法函數,記憶體陣列1203消除對分開的乘法及加法邏輯電路之需求,且亦為功率高效的。此處,電壓輸入設置於字線WL0、WL1、WL2及WL3上,且輸出在讀取(推理)操作期間出現於各別位元線BL0至BLN上。置於位元線BL0至BLN中之每一者上之電流對來自連接至彼特定位元線之所有非揮發性記憶體單元的電流執行求和函數。
表5描繪用於VMM陣列1200之操作電壓。該表中之行指示置於以下各者上的電壓:用於選定單元之字線、用於未選定單元之字線、用於選定單元之位元線、用於未選定單元之位元線、用於選定單元之源極線及用於未選定單元之源極線,其中FLT指示浮動,亦即未施加電壓。該等列指示讀取、抹除及程式化之操作。 表5:圖12之VMM陣列1200的操作:
   WL WL-未選定 BL BL-未選定 SL SL-未選定
讀取 0.5-3.5V -0.5V/0V 0.1-2V(Ineuron) 0.6V-2V/FLT 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
圖13描繪神經元VMM陣列1300,其尤其適合於如圖2中所展示之記憶體單元210,且用作輸入層與下一層之間的突觸及神經元部分。VMM陣列1300包含非揮發性記憶體單元之記憶體陣列1303、第一非揮發性參考記憶體單元之參考陣列1301及第二非揮發性參考記憶體單元之參考陣列1302。參考陣列1301及1302在VMM陣列1300之行方向上延伸。VMM陣列類似於VMM 1000,不同之處在於在VMM陣列1300中,字線在垂直方向上延伸。此處,輸入提供於字線(WLA0、WLB0、WLA1、WLB2、WLA2、WLB2、WLA3、WLB3)上,且輸出在讀取操作期間出現於源極線(SL0、SL1)上。置放於每一源極線上之電流對來自連接至彼特定源極線之記憶體單元的所有電流執行求和函數。
表6描繪用於VMM陣列1300之操作電壓。表中之行指示置於以下各者上之電壓:用於選定單元之字線、用於未選定單元之字線、用於選定單元之位元線、用於未選定單元之位元線、用於選定單元之源極線及用於未選定單元之源極線。該等列指示讀取、抹除及程式化之操作。 表6:圖13之VMM陣列1300之操作
   WL WL-未選定 BL BL-未選定 SL SL-未選定
讀取 0.5-3.5V -0.5V/0V 0.1-2V 0.1V-2V/FLT ~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
圖14描繪神經元VMM陣列1400,其尤其適合於如圖3中所示之記憶體單元310,且用作輸入層與下一層之間的突觸及神經元部分。VMM陣列1400包含非揮發性記憶體單元之記憶體陣列1403、第一非揮發性參考記憶體單元之參考陣列1401及第二非揮發性參考記憶體單元之參考陣列1402。參考陣列1401及1402用以將流入端子BLR0、BLR1、BLR2及BLR3中之電流輸入轉換成電壓輸入CG0、CG1、CG2及CG3。實際上,第一及第二非揮發性參考記憶體單元為二極體連接式貫穿多工器1412(僅部分展示),其中電流輸入經由BLR0、BLR1、BLR2及BLR3流入該等多工器中。多工器1412各自包括各別多工器1405及串疊電晶體1404以確保在讀取操作期間第一及第二非揮發性參考記憶體單元中之每一者之位元線(諸如BLR0)上的恆定電壓。參考單元經調校至目標參考層級。
記憶體陣列1403用於兩個目的。首先,其儲存將由VMM陣列1400使用之權重。其次,記憶體陣列1403有效地使輸入(提供至端子BLR0、BLR1、BLR2及BLR3之電流輸入,其中參考陣列1401及1402將此等電流輸入轉換成輸入電壓以供應至控制閘極(CG0、CG1、CG2及CG3))乘以儲存於記憶體陣列中之權重,且接著將所有結果(單元電流)相加以產生輸出,該輸出呈現於BL0至BLN上,且將為至下一層之輸入或至最終層之輸入。藉由執行乘法及加法函數,記憶體陣列消除對分開的乘法及加法邏輯電路之需求,且亦為功率高效的。此處,輸入提供於控制閘極線(CG0、CG1、CG2及CG3)上,且輸出在讀取操作期間出現於位元線(BL0至BLN)上。置放於每一位元線上之電流對來自連接至彼特定位元線之記憶體單元的所有電流執行求和函數。
VMM陣列1400對記憶體陣列1403中之非揮發性記憶體單元實施單向調校。亦即,每一非揮發性記憶體單元經抹除且接著經部分程式化,直至達至浮動閘極上之所需電荷為止。此可例如使用下文所描述之精密程式化技術來執行。若過多電荷被置放於浮動閘極上(使得錯誤值儲存於單元中),則單元必須被抹除且部分程式化操作之序列必須重新開始。如所顯示,共用同一抹除閘極(諸如EG0或EG1)之兩個列需要被一起抹除(此已知為頁面抹除),且此後,部分地程式化每一單元直至達至浮動閘極上之所需電荷為止。
表7描繪用於VMM陣列1400之操作電壓。該表中之行指示置於以下各者上之電壓:用於選定的單元之字線、用於未選定單元之字線、用於選定的單元之位元線、用於未選定單元之位元線、用於選定的單元之控制閘極、用於與選定的單元處於同一扇區中之未選定單元之控制閘極、用於與選定的單元處於不同扇形中之未選定單元之控制閘極、用於選定的單元之抹除閘極、用於未選定單元之抹除閘極、用於選定的單元之源極線,及用於未選定單元之源極線。該等列指示讀取、抹除及程式化之操作。 表7:圖14之VMM陣列1400的操作
   WL WL-未選定 BL BL- 未選定 CG CG-未選定 同一扇區 CG- 未選定 EG EG- 未選定 SL SL- 未選定
讀取 0.5-2V -0.5V/ 0V 0.1-2V (Ineuron) 0V/FLT 0-2.6V 0-2.6V 0-2.6V 0-2.6V 0-2.6V 0V 0V
抹除 0V 0V 0V 0V 0V 0-2.6V 0-2.6V 5-12V 0-2.6V 0V 0V
程式化 0.7-1V -0.5V/ 0V 0.1-1uA Vinh (1-2V) 4-11V 0-2.6V 0-2.6V 4.5-5V 0-2.6V 4.5-5V 0-1V
圖15描繪神經元VMM陣列1500,其尤其適合於如圖3中所展示之記憶體單元310,且用作輸入層與下一層之間的突觸及神經元部分。VMM陣列1500包含非揮發性記憶體單元之記憶體陣列1503、第一非揮發性參考記憶體單元之參考陣列1501及第二非揮發性參考記憶體單元之參考陣列1502。EG線EGR0、EG0、EG1及EGR1垂直地延伸,而CG線CG0、CG1、CG2及CG3以及SL線WL0、WL1、WL2及WL3水平地延伸。VMM陣列1500類似於VMM陣列1400,不同之處在於VMM陣列1500實施雙向調校,其中歸因於單獨EG線之使用,每一個別單元可視需要經完全抹除、部分程式化及部分抹除以達至浮動閘極上之所需電荷量。如所示,參考陣列1501及1502將端子BLR0、BLR1、BLR2及BLR3中之輸入電流轉換成待在列方向上施加至記憶體單元之控制閘極電壓CG0、CG1、CG2及CG3(經由二極體連接式參考單元貫穿多工器1514之動作)。電流輸出(神經元)在位元線BL0至BLN中,其中每條位元線對來自連接至彼特定位元線之非揮發性記憶體單元的所有電流進行求和。
表8描繪用於VMM陣列1500之操作電壓。該表中之行指示置於以下各者上之電壓:用於選定的單元之字線、用於未選定單元之字線、用於選定的單元之位元線、用於未選定單元之位元線、用於選定的單元之控制閘極、用於與選定的單元處於同一扇區中之未選定單元之控制閘極、用於與選定的單元處於不同扇形中之未選定單元之控制閘極、用於選定的單元之抹除閘極、用於未選定單元之抹除閘極、用於選定的單元之源極線,及用於未選定單元之源極線。該等列指示讀取、抹除及程式化之操作。 表8:圖15之VMM陣列1500的操作
   WL WL-未 選定 BL BL-未 選定 CG CG-未選 定同一 扇區 CG- 未選定 EG EG- 未選定 SL SL- 未選定
讀取 1.0-2V -0.5V/ 0V 0.6-2V (Ineuron) 0V/FLT 0-2.6V 0-2.6V 0-2.6V 0-2.6V 0-2.6V 0V 0V/FLT
抹除 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
圖16描繪神經元VMM陣列1600,其尤其適於如圖2中所示之記憶體單元210,且用作輸入層與下一層之間的突觸及神經元部分。在VMM陣列1600中,輸入INPUT 0…INPUT N分別在位元線BL 0…BL N上經接收,且輸出OUTPUT 1、OUTPUT 2、OUTPUT 3及OUTPUT 4分別產生於源極線SL 0、SL 1、SL 2及SL 3上。
圖17描繪神經元VMM陣列1700,其尤其適合於如圖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上。
圖18描繪神經元VMM陣列1800,其尤其適合於如圖2中所展示之記憶體單元210,且用作輸入層與下一層之間的突觸及神經元部分。在此實施例中,輸入INPUT 0…INPUT M分別在字線WL 0…WL M上經接收,且輸出OUTPUT 0…OUTPUT N產生於位元線BL 0…BL N上。
圖19描繪神經元VMM陣列1900,其尤其適合於如圖3中所展示之記憶體單元310,且用作輸入層與下一層之間的突觸及神經元部分。在此實施例中,輸入INPUT 0…INPUT M分別在字線WL 0…WL M上經接收,且輸出OUTPUT 0…OUTPUT N產生於位元線BL 0…BL N上。
圖20描繪神經元VMM陣列2000,其尤其適合於如圖4中所展示之記憶體單元410,且用作輸入層與下一層之間的突觸及神經元部分。在此實施例中,輸入INPUT 0…INPUT n分別在垂直控制閘極線CG 0…CG N上經接收,且輸出OUTPUT 1及OUTPUT 2產生於源極線SL 0及SL 1上。
圖21描繪神經元VMM陣列2100,其尤其適合於如圖4中所展示之記憶體單元410,且用作輸入層與下一層之間的突觸及神經元部分。在此實施例中,輸入INPUT 0…INPUT N分別在位元線控制閘極2901-1、2901-2…2901-(N-1)及2901-N之閘極上經接收,該等位元線控制閘極分別耦接至位元線BL 0…BL N。例示性輸出OUTPUT 1及OUTPUT 2產生於源極線SL 0及SL 1上。
圖22描繪神經元VMM陣列2200,其尤其適合於如圖3中所展示之記憶體單元310、如圖5中所展示之記憶體單元510及如圖7中所展示之記憶體單元710,且用作輸入層與下一層之間的突觸及神經元部分。在此實施例中,輸入INPUT 0…INPUT M在字線WL 0…WL M上經接收,且輸出OUTPUT 0…OUTPUT N分別產生於位元線BL 0…BL N上。
圖23描繪神經元VMM陣列2300,其尤其適合於如圖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中之所有記憶體單元之源極線。
圖24描繪神經元VMM陣列2400,其尤其適合於如圖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。
圖25描繪例示性LSTM 2500。LSTM 2500在此實施例中包含單元2501、2502、2503及2504。單元2501接收輸入向量x 0,且產生輸出向量h 0及單元狀態向量c 0。單元2502接收輸入向量x 1、來自單元2501之輸出向量(隱藏狀態) h 0及來自單元2501之單元狀態c 0,且產生輸出向量h 1及單元狀態向量c 1。單元2503接收輸入向量x 2、來自單元2502之輸出向量(隱藏狀態)h 1及來自單元2502之單元狀態c 1,且產生輸出向量h 2及單元狀態向量c 2。單元2504接收輸入向量x 3、來自單元2503之輸出向量(隱藏狀態)h 2及來自單元2503之單元狀態c 2,且產生輸出向量h 3。可使用額外單元,且具有四個單元之LSTM僅為實施例。
圖26描繪LSTM單元2600之例示性實施,其可用於圖25中之單元2501、2502、2503及2504。LSTM單元2600接收輸入向量x(t)、來自前述單元之單元狀態向量c(t-1)及來自前述單元之輸出向量h(t-1),且產生單元狀態向量c(t)及輸出向量h(t)。
LSTM單元2600包含S型函數構件2601、2602及2603,其中之每一者應用0與1之間的數字以控制輸入向量中之每一分量被允許通過輸出向量之量。LSTM單元2600亦包含用以將雙曲正切函數應用於輸入向量之雙曲正切構件2604及2605、用以將兩個向量在一起相乘之乘法器構件2606、2607及2608,以及用以將兩個向量在一起相加之加法構件2609。輸出向量h(t)可提供至系統中之下一LSTM單元,或其可經存取以用於其他目的。
圖27描繪LSTM單元2700,其為LSTM單元2600之實施的實施例。為了方便讀者,來自LSTM單元2600之相同編號用於LSTM單元2700中。S型函數構件2601、2602及2603以及雙曲正切構件2604各自包含多個VMM陣列2701及激勵電路區塊2702。因此,可見VMM陣列特別適用於在某些神經網路系統中使用之LSTM單元。
圖28中展示LSTM單元2700之替代方案(及LSTM單元2600之實施的另一實施例)。在圖28中,S型函數構件2601、2602及2603以及雙曲正切構件2604可以時間多工方式共用同一實體硬體(VMM陣列2801及激勵函數區塊2802)。LSTM單元2800亦包含用以將兩個向量在一起相乘在之乘法器構件2803、用以將兩個向量在一起相加之加法構件2808、雙曲正切構件2605(其包含激勵電路區塊2802)、用以當自S型函數區塊2802輸出i(t)時儲存值i(t)之暫存器2807、用以當藉由多工器2810自乘法器構件2803輸出值f(t)*c(t-1)時儲存彼值之暫存器2804、用以當藉由多工器2810自乘法器構件2803輸出值i(t)*u(t)時儲存彼值之暫存器2805,及用以當藉由多工器2810自乘法器構件2803輸出值o(t)* c~(t)時儲存彼值之暫存器2806,及多工器2809。
儘管LSTM單元2700包含多個集合之VMM陣列2701及各別激勵函數區塊2702,但LSTM單元2800僅包含一個集合之VMM陣列2801及激勵函數區塊2802,其用於表示LSTM單元2800之具體例中之多個層。LSTM單元2800將需要比LSTM 2700少的空間,此係因為LSTM單元2800相比於LSTM單元2700將需要1/4之空間用於VMM及激勵函數區塊。
可進一步瞭解,LSTM單元將通常包含多個VMM陣列,其中之每一者需要由VMM陣列外部之特定電路區塊(諸如求和器及激勵電路區塊以及高電壓產生區塊)提供的功能。為每個VMM陣列提供單獨電路區塊將需要半導體構件內之大量空間且將略微低效。因此,下文所描繪之具體例嘗試最小化VMM陣列自身在外部所需之電路系統。 閘控循環單元
類比VMM實施可用於閘控循環單元(GRU)。GRU為循環人工神經網路中之閘控機構。GRU類似於LSTM,不同之處在於GRU單元通常含有少於LSTM單元之組件。
圖29描繪例示性GRU 2900。在此實施例中,GRU 2900包含單元2901、2902、2903及2904。單元2901接收輸入向量x 0且產生輸出向量h 0。單元2902接收輸入向量x 1、來自單元2901之輸出向量h 0,產生輸出向量h 1。單元2903接收輸入向量x 2及來自單元2902之輸出向量(隱藏狀態)h 1,且產生輸出向量h 2。單元2904接收輸入向量x 3及來自單元2903之輸出向量(隱藏狀態)h 2且產生輸出向量h 3。可使用額外單元,並且具有四個單元之GRU僅僅為實施例。
圖30描繪GRU單元3000之例示性實施,該GRU單元可用於圖29的單元2901、2902、2903及2904。GRU單元3000接收輸入向量x(t)及來自前述GRU單元之輸出向量h(t-1),且產生輸出向量h(t)。GRU單元3000包含S型函數構件3001及3002,其中之每一者將0與1之間的數字應用於來自輸出向量h(t-1)及輸入向量x(t)之分量。GRU單元3000亦包含用以應用雙曲正切函數至輸入向量之雙曲正切構件3003,用以將兩個向量在一起相乘之複數個乘法器構件3004、3005及3006,用以將兩個向量相加在一起之加法構件3007及用以自1減去輸入以產生輸出之互補構件3008。
圖31描繪GRU單元3100,其為GRU單元3000之實施的實施例。為方便讀者,與GRU單元3000相同之編號用於GRU單元3100中。如圖31中可見,S型函數構件3001及3002以及雙曲正切構件3003各自包含多個VMM陣列3101及激勵函數區塊3102。因此,可見VMM陣列特別用於在某些神經網路系統中使用之GRU單元。
圖32中展示GRU單元3100之替代例(及GRU單元3000之實施的另一實施例)。在圖32中,GRU單元3200利用VMM陣列3201及激勵函數區塊3202,該VMM陣列及激勵函數區塊在經組構為S型函數時應用0與1之間的數字以控制輸入向量中之每一分量被允許通過輸出向量之量。在圖32中,S型函數構件3001及3002以及雙曲正切構件3003以時間多工方式共用同一實體硬體(VMM陣列3201及激勵函數區塊3202)。GRU單元3200亦包含用以將兩個向量在一起相乘之乘法器構件3203、用以將兩個向量在一起相加之加法構件3205、用以自1減去輸入以產生輸出之互補構件3209、多工器3204、用以當經由多工器3204自乘法器構件3203輸出值h(t-1)*r(t)時保存彼值之暫存器3206、用以當經由多工器3204自乘法器構件3203輸出值h(t-1)*z(t)時保存彼值之暫存器3207,及用以當經由多工器3204自乘法器構件3203輸出值h^(t)*(1-z(t))時保存彼值之暫存器3208。
儘管GRU單元3100包含多個集合之VMM陣列3101及激勵函數區塊3102,但GRU單元3200僅包含一個集合之VMM陣列3201及激勵函數區塊3202,其用於表示GRU單元3200之具體例中之多個層。GRU單元3200將需要相較於GRU單元3100較少的空間,此係因為GRU單元3200相比於GRU單元3100將需要1/3之空間用於VMM及激勵函數區塊。
可進一步瞭解,利用GRU之系統將通常包含多個VMM陣列,其中之每一者需要由VMM陣列外部之某些電路區塊(諸如求和器及激勵電路區塊以及高電壓產生區塊)提供的功能性。為每個VMM陣列提供單獨電路區塊將需要半導體構件內之大量空間且將略微低效。因此,下文所描繪之具體例嘗試最小化VMM陣列自身在外部所需之電路系統。
至VMM陣列之輸入可為類比層級、二進位層級、定時脈衝或數位位元,且輸出可為類比層級、二進位層級、定時脈衝或數位位元(在此狀況下,需要輸出ADC將輸出類比層級電流或電壓轉換成數位位元)。
對於VMM陣列中之每一記憶體單元,每一權重w可由單個記憶體單元或差分單元或兩個混合記憶體單元(2個或更多個單元之平均值)實施。在差分單元情況下,需要兩個記憶體單元以將權重w實施為差分權重(w=w+-w-)。在兩個混合記憶體單元中,需要兩個記憶體單元以將權重w實施為兩個單元之平均值。 用於VMM中之單元的精確調校之具體例
圖33描繪VMM系統3300之方塊圖。VMM系統3300包含VMM陣列3301、列解碼器3302、高電壓解碼器3303、行解碼器3304、位元線驅動器3305、輸入電路3306、輸出電路3307、控制邏輯3308,及偏壓產生器3309。VMM系統3300進一步包含高電壓產生區塊3310,其包含電荷泵3311、電荷泵調節器3312,及高電壓位準產生器3313。VMM系統3300進一步包含演算法控制器3314、類比電路系統3315、控制邏輯3316,及測試控制邏輯3317。下文描繪之系統及方法可實施於VMM系統3300中。
輸入電路3306可包括諸如數位至類比轉換器(DAC)、數位至脈衝轉換器(DPC)、類比至類比轉換器(AAC,諸如電流至電壓轉換器)、脈衝至類比層級轉換器(PAC)或任何其他類型之轉換器等電路。輸入電路3306可實施正規化、縮放函數或算術函數。輸入電路3306可對輸入實施溫度補償函數。輸入電路3306可實施激勵函數,諸如ReLU或S型函數。
輸出電路3307可包括諸如類比至數位轉換器(ADC,以將神經元類比輸出轉換成數位位元)、類比至類比轉換器(AAC,諸如電流至電壓轉換器)、類比至脈衝轉換器(APC)或任何其他類型之轉換器等電路。輸出電路3307可實施激勵函數,諸如ReLU或S型函數。輸出電路3307可對神經元輸出實施正規化、縮放函數或算術函數。輸出電路3307可對神經元輸出或陣列輸出(諸如位元線輸出)實施溫度補償函數,如下文所描述。
圖34描繪調校(將記憶體單元程式化或抹除為目標)校正方法3400,其可由VMM系統3300中的演算法控制器3314執行。調校校正方法3400基於由單元輸出及單元原始目標產生之最終誤差產生自適應目標。該方法通常回應於接收到調校命令而開始(步驟3401)。用於選定單元或選定單元之群組之初始電流目標(用於程式化/驗證演算法) Itargetv(i)係使用預測性目標模型,諸如藉由使用函數或查找表來判定,且變數DeltaError被設定成0(步驟3402)。若被使用,則目標函數將基於選定記憶體單元或單元群組之I-V程式曲線。目標函數亦取決於由陣列特性引起之各種變化,陣列特性諸如單元展現之程式干擾程度(其取決於扇區內之單元位址及單元層級,其中若單元展現相對較大干擾,則單元在禁止條件下經歷較多程式時間,其中具有較高電流之單元通常具有較大干擾)、單元間耦接,及各種類型之陣列雜訊。此等變化可經由程序、電壓、溫度(PVT)表徵於矽上。若被使用,則查找表可以相同方式表徵以模擬I-V曲線及各種變化。
接下來,對VMM中之所有單元執行軟抹除,這將所有單元抹除至中等弱抹除層級,使得每一單元將在讀取操作期間獲取例如大致3至5µA之電流(步驟3403)。舉例而言,藉由將遞增之抹除脈衝電壓施加至單元直至達至中等單元電流來執行軟抹除。接下來,對所有未使用單元執行程式化操作(諸如藉由深度程式化或藉由粗略/精細程式化為目標) (步驟3404),以便得到<pA電流位準或等效零權重。接著執行基於誤差結果之目標調整(校正)。若DeltaError>0,意謂單元在程式化時已發生超越,則將Itargetv(i+1)設定成Itarget+θ*DeltaError,其中θ例如為1或接近1之數字(步驟3405A)。
Itarget(i+1)亦可在適當誤差目標調整/校正之情況下基於先前Itarget(i)來調整。若DeltaError<0,意謂單元在程式化時已發生低越,意謂單元電流尚未達到目標,則將Itargetv(i+1)設定成先前目標Itargetv(i)(步驟3405B)。
接下來,執行粗略及/或精細程式化及驗證操作(步驟3406)。可使用多個自適應粗略程式化方法以加速程式化,諸如藉由在執行精度(精細)程式化步驟之前以多個逐漸變小之粗略目標為目標。舉例而言,藉由精細(精度)遞增程式電壓脈衝或恆定程式定時脈衝進行自適應精度程式化。用於執行粗略程式化及精細程式化之系統及方法之實施例描繪於在2019年11月11日由與本申請案相同之受讓人申請且標題為「用於深度學習人工神經網路中之類比神經記憶體之精確程式化方法及裝置(Precise Programming Method and Apparatus for Analog Neural Memory in a Deep Learning Artificial Neural Network)」之美國臨時專利申請案第62/933,809號中,該美國臨時專利申請案以引用之方式併入本文中。
在選定單元中量測Icell(步驟3407)。單元電流例如可藉由電流計電路量測。單元電流例如可藉由類比至數位轉換器(ADC)電路量測,其中在此狀況下,輸出由數位位元表示。單元電流例如可藉由電流至電壓轉換器(ADC)電路量測,其中在此狀況下,輸出由類比電壓表示。計算DeltaError,其為Icell-Itarget,其表示所量測單元中之實際電流(Icell)與目標電流(Itarget)之間的差。若|DeltaError|<DeltaMargin,則單元在特定容限(DeltaMargin)內已達成目標電流,且該方法結束(步驟3410)。| DeltaError|=abs(DeltaError)=DeltaError的絕對值若否,則方法返回至步驟3403且再次依序執行步驟(步驟3410)。
圖35A及圖35B描述調校校正方法3500,其可由VMM系統3300中之演算法控制器3314執行。參考圖35A,該方法開始(步驟3501),其通常回應於接收到調校命令而發生。諸如藉由軟抹除方法抹除整個VMM陣列(步驟3502)。對所有未使用單元執行程式化操作(諸如藉由深度程式化或藉由粗略/精細程式化為目標)(步驟3503),以便得到<pA位準的單元電流或等效零權重。使用粗略及/或精細程式化循環將VMM陣列中之所有單元程式化為中間值,諸如0.5至1.0µA(步驟3504)。用於執行粗略程式化及精細程式化之系統及方法之實施例描繪於在2019年11月11日由與本申請案相同之受讓人申請且標題為「用於深度學習人工神經網路中之類比神經記憶體之精確程式化方法及裝置(Precise Programming Method and Apparatus for Analog Neural Memory in a Deep Learning Artificial Neural Network)」之美國臨時專利申請案第62/933,809號中,該美國臨時專利申請案以引用之方式併入本文中。如上文所描述,使用函數或查找表針對所使用單元設定預測性目標(步驟3505)。接下來,針對VMM中之每一扇區執行扇區調校方法3507 (步驟3506)。扇區通常由陣列中之兩個或多於兩個相鄰列組成。
圖35B描繪自適應目標扇區調校方法3507。扇區中之所有單元使用個別或組合程式化/驗證(p/V)方法經程式化為最終所需值(例如,1nA至50nA),該等方法諸如以下各者:(1)粗略/精細/恆定P/V循環;(2)CG+(僅CG遞增)或EG+(僅EG遞增)或互補CG+/EG-(CG遞增及EG遞減);及(3)首先最深度程式化單元(諸如漸進分組,意謂將單元分組為群組,首先程式化具有最低電流之單元的群組)(步驟3508A)。接下來,作出關於Icell是否<Itarget之判定。若是,則方法前進至步驟3509。若否,則方法重複步驟3508A。在步驟3509中,量測DeltaError,其等於所量測Icell-Itarget(i+1)(步驟3509)。作為關於|DeltaError|是否< DeltaMargin之判定(步驟3510)。若是,則方法完成(步驟3511)。若否,則執行目標調整。若DeltaError> 0,意謂單元在程式化時已發生超越,則藉由將新目標設定為Itarget+θ*DeltaError來調整目標,其中θ通常=1 (步驟3512A)。Itarget(i+1)亦可在適當誤差目標調整/校正之情況下基於先前Itarget(i)來調整。若DeltaError<0,意謂單元在程式化時已發生低越,意謂單元尚未達到目標,則藉由保持先前目標來調整目標,意謂Itargetv(i+1)=Itargetv(i) (步驟3512B)。軟抹除扇區(步驟3513)。將扇區中之所有單元程式化為中間值(步驟3514),且返回至步驟3509。
典型神經網路可具有正權重w+及負權重w-且組合權重=w+-w-。w+及w-各自藉由記憶體單元實施(分別為Iw+及Iw-)且組合權重(Iw=Iw+-Iw-,電流減法)可在周邊電路層級處(諸如藉由使用陣列位元線輸出電路)執行。因此,組合權重之權重調校具體例可包含同時調校w+單元及w-單元兩者,僅調校w+單元或僅調校w-單元,如在表8中所展示之實施例中。調校操作係使用先前關於圖34/圖35A/圖35B所描述之程式化/驗證及誤差目標調整方法來執行。驗證操作可僅對組合權重執行(例如,量測/讀取組合權重電流而非個別正w+單元電流或w-單元電流)、僅對w+單元電流執行,或僅對w-單元電流執行。
舉例而言,對於3nA之組合Iw,Iw+可為3nA且Iw-可為0 nA;或Iw+可為13nA且Iw-可為10nA,意謂正權重Iw+及負權重Iw-兩者均非零(例如,其中零將表示深度程式化單元)。這在某些操作條件下可較佳,此係因為這將使得Iw+及Iw-兩者較不易受雜訊影響。 表9:權重調校方法(值為以nA為單位之電流值)
   Iw Iw+ Iw- 描述
原始目標 3 3 0 調校Iw+及Iw-
原始目標 -2 0 2 調校Iw+及Iw-
原始 目標 3 13 10 調校Iw+及Iw-
              
新目標 2 12 10 僅調校Iw+
新目標 2 11 9 調校Iw+及Iw-
              
新目標 4 13 9 僅調校Iw-
新目標 4 12 8 調校Iw+及Iw-
              
新目標 -2 8 10 調校Iw+及Iw-
新目標 -2 7 9 調校Iw+及Iw-
              
原始目標 0 0 0 深度程式化Iw+及Iw-;零w或未使用單元
新目標 0 7 7 調校Iw+及Iw-
新目標 0+ 7.01 7 調校Iw+及Iw-
新目標 0- 7 7.01 調校Iw+及Iw-
新目標 0 1 1 調校Iw+及Iw-
              
新目標 0 ~ -0 ~ -0 調校Iw+及Iw-
新目標 0 ~ -1 ~ -1 調校Iw+及Iw-
新目標 0 ~ -5 ~ -5 調校Iw+及Iw-
              
因此,根據公式w(w+)-(w-)之差分權重映射可用於儲存調校值w以供用於神經網路。w+及w-之映射可經最佳化以例如藉由在儲存每一值時將偏移值包括於w+及w-中來對抗在神經網路中之VMM陣列中出現的特定問題。
在一個具體例中,權重映射經最佳化以減少RTN雜訊。舉例而言,在w之所需值為0nA(零w或未使用記憶體單元)之情況下,一個可能映射為(w+)=0nA且(w-)=0nA,且另一可能映射為(w+)=30nA且(w-)=30nA,其中此處30nA為在儲存之前添加至每一w+及w-值的非零偏移值之實施例。包括此類非零偏移值將最終在調校程序期間消耗較多功率且引發更高不準確性,但其將最小化任何雜訊之影響。類似地,在w之所要值為1nA之情況下,一個可能映射為(w+)=1nA且(w-)=0nA,且另一可能映射為(w+)=30nA且(w-)=29nA。後者將消耗更多功率且可在調校程序期間引發更高不準確性,但將最小化任何雜訊之影響。
在另一具體例中,對於零權重w,w+及w-兩者可經調校為大致零,諸如藉由使用用於驗證操作之偏壓偏移電壓之方法,現將描述該方法。在此方法中,w+及w-兩者在控制閘極電壓(VCG)下經調校至例如5nA,該控制閘極電壓高於用於推斷(讀取)之正常CG電壓。舉例而言,對於dVCG/Ir=2mV/1nA,若VCG=1.5V之值用於推斷,則在調校演算法(用於權重調校之程式驗證演算法)中,VCG=1.510V之值將用於驗證達至5nA之目標的零權重單元。在推斷操作中,由於使用VCG=1.5V,所以單元電流向下移位2mV/1nA,因此驗證操作中之5nA在推斷操作中變成約0nA。
在另一具體例中,對於零權重w,w+及w-兩者可經調校為具有負電流,諸如藉由使用用於驗證操作之偏壓偏移電壓之負電流調校方法,現將描述該方法。對於此情況,w+及w-兩者在控制閘極電壓(VCG)下經調校至例如-10nA,該控制閘極電壓高於用於推斷(讀取)之正常CG電壓。舉例而言,對於dVCG/Ir=2mV/1nA,若VCG=1.5V之值用於推斷,則在調校演算法(用於權重調校之程式驗證演算法)中,VCG=1.530V用於驗證達至5nA之目標的零權重單元。在推斷操作中,由於使用VCG= 1.5V,所以單元電流向下移位2mV/1nA,因此驗證操作中之5 nA在推斷操作中變成約10 nA。
偏移偏壓條件或偏壓(電壓及/或電流及/或定時及/或溫度)序列之類似方法可用於測試篩選之目的以偵測異常位元,諸如對顯著雜訊(諸如RTN雜訊、熱雜訊或任何其他雜訊源)敏感之單元。基本上,存在偏壓條件或偏壓序列,其可用於藉由使來自記憶體單元之雜訊比其他偏壓條件或偏壓序列在更大程度上衰減(雜訊衰減量測試)來更好地偵測雜訊。舉例而言,對於20nA記憶體單元,可能有利的係藉由調變此單元之偏壓條件,例如藉由改變測試篩選中之控制閘極偏壓電壓來偵測將此單元置放至另一條件中之非所需行為。舉例而言,歸因於測試儀限制或電路限制,可能有利的係藉由調變偏壓條件來偵測在較高電流位準下對雜訊(諸如RTN雜訊)敏感之位元/單元。
針對記憶體單元之篩選或驗證雜訊位準(諸如RTN雜訊篩選)之另一方法為對記憶體單元輸出進行取樣(諸如藉由多次量測輸出,諸如4/8/…/1024次)。篩選準則使得任何樣本實例之值比樣本之平均值大一定量。另一篩選準則為一個樣本之值比下一樣本高一定量。此等技術由申請人描述於2019年11月11日提交且標題為「用於深度學習人工神經網路中之類比神經記憶體的精確程式化方法及裝置(Precise Programming Method and Apparatus for Analog Neural Memory in a Deep Learning Artificial Neural Network)」之美國臨時專利申請案第62/933,809號中,該美國臨時專利申請案以引用之方式併入本文中。
調校併有上述權重指派中之一些的記憶體單元之權重(程式化或抹除單元)的方法可包括:軟抹除單元,接著程式化零權重單元(諸如上述),接著藉由雜訊篩選執行粗略及精細及/或超精細調校演算法,諸如上文所描述。用於粗略、精細及超精細調校演算法之技術先前藉由於2020年3月25日提交且標題為「用於人工神經網路中之類比神經記憶體的精確資料調校方法及裝置(Precise Data Tuning Method and Apparatus for Analog Neural Memory in an Artificial Neural Network)」之美國專利申請案第16/829,757號中的應用揭示,該美國專利申請案以引用之方式併入本文中。
在另一具體例中,雜訊貢獻可藉由使用包含偏壓條件定序之讀取(推斷)或驗證之方法而減小。舉例而言,在執行讀取或驗證操作之前對記憶體單元執行累加條件。
在另一具體例中,雜訊貢獻可藉由對控制閘極施加負電壓範圍而減小。在另一具體例中,用於零權重之陣列及未使用單元之背景資料可為特定模式以減小變化。舉例而言,高電流位準背景對於諸如RTN雜訊降低之雜訊可為合乎需要的。舉例而言,低電流位準背景對於諸如資料漂移之雜訊可為合乎需要的。在待用或深度斷電時,藉由調變控制閘極電壓(諸如藉由相較於驗證操作期間所使用的控制閘極電壓使用特定電壓位準)來將陣列置於正確條件下,意謂控制閘極位準可經設定以在待用或深度斷電操作期間降低電流或升高電流位準。
在另一具體例中,讀取或驗證之方法在讀取或驗證操作期間藉由對控制閘極施加0V、約0V或低偏壓電壓而執行。使用字線來代替控制閘極線以接收列資料輸入(活化值),諸如經由施加至字線之脈寬調變輸入或類比電壓。
在另一具體例中,針對w之「0」值(零w或未使用單元)可定義為<10nA或另一預定臨限值。亦即,若(w+)-(w-)<10 nA,則w給定值「0」。此在每當w=0時提供更高容限,且相對於由雜訊、溫度變化或其他力造成之不準確度將較穩固。
在另一具體例中,權重映射經最佳化以減少溫度變化。類似地,在w之所要值為5nA之情況下,一個可能映射為(w+)=5nA且(w-) =0nA,且另一可能映射為(w+)=30nA且(w-)=25nA。後者將消耗更多功率且可在調校程序期間引發更高不準確性,但將最小化溫度變化。
在另一具體例中,權重映射經最佳化以減少神經元之總雜訊或溫度變化。舉例而言,每位線儲存之w+及w-值之數目(諸如對於5nA可實施為30nA-25nA或50nA-45nA或80nA-75nA)可經映射以在所有位元線當中平衡,使得對於所有位元線,每位元線儲存之值的數目大致相同。
在另一具體例中,權重映射經最佳化以減少神經元(位元線)之總雜訊。舉例而言,每位線儲存之w+及w-值(單元)之數目可在所有位元線當中平衡,使得神經元(位元線)中之所有權重(單元)的總雜訊貢獻最佳(具有最少雜訊)。 表9A:權重調校方法
層級 Iw Iw+ Iw-
16 80 80 0
15 75 75 0
14 70 70 0
13 65 65 0
12 60 60 0
11 55 55 0
10 50 50 0
9 45 45 0
8 40 40 0
7 35 35 0
6 30 30 0
5 25 25 0
4 20 20 0
3 15 15 0
2 10 10 0
1 5 5 0
表9B:權重調校方法
層級 Iw Iw+ Iw-
16 -80 0 80
15 -75 0 75
14 -70 0 70
13 -65 0 65
12 -60 0 60
11 -55 0 55
10 -50 0 50
9 -45 0 45
8 -40 0 40
7 -35 0 35
6 -30 0 30
5 -25 0 25
4 -20 0 20
3 -15 0 15
2 -10 0 10
1 -5 0 5
表9A及9B展示nA中之16個層級(狀態)的例示性具體例。意謂記憶體單元可具有如所展示之16個層級。根據公式w=Iw+-Iw-,表9A描繪其中w可為16個不同正值中之一者的情形,且表9B描繪其中w可為16個不同負值中之一者的情形。如所展示之電流範圍為0至80nA。 表10A:權重調校方法
層級 Iw Iw+ Iw-
16 80 80 0
15 75 75 0
14 70 70 0
13 65 65 0
12 60 60 0
11 55 55 0
10 50 50 0
9 45 45 0
8 40 80 40
7 35 75 40
6 30 70 40
5 25 65 40
4 20 60 40
3 15 55 40
2 10 50 40
1 5 45 40
           
表10B:權重調校方法
層級 Iw Iw+ Iw-
16 -80 0 80
15 -75 0 75
14 -70 0 70
13 -65 0 65
12 -60 0 60
11 -55 0 55
10 -50 0 50
9 -45 0 45
8 -40 40 80
7 -35 40 75
6 -30 40 70
5 -25 40 65
4 -20 40 60
3 -15 40 55
2 -10 40 50
1 -5 40 45
表10A及10B展示將層級之動態總電流範圍自0至80nA壓縮至40nA至85nA的具體例。
對於表10A/11A/12A,Iw-可藉由粗略或精細或超精細調校步驟調校(例如,程式化及驗證Iw-單元),且Iw+可藉由精細或超精細步驟調校(例如,程式化及驗證Iw=(Iw+-Iw-),或僅藉由僅驗證Iw+單元)。對於表10B/11B/12B,Iw+可藉由粗略或精細或超精細調校步驟調校(例如,程式化及驗證Iw+單元),且Iw-可藉由精細或超精細步驟調校(例如,程式化及驗證Iw=(Iw+-Iw-),或僅藉由僅驗證Iw-單元)。
此在減少歸因於程序、溫度、雜訊、操作應力或操作條件之變化及失配方面係有利的,其類似於圖11至圖12中所展示之概念。
如表10A及10B中所展示,表之下半部分中之值向上移位一正量(偏移偏壓),使得彼等值之總範圍大致與表之上半部分相同。偏移大致等於最大電流(位準)的一半。 表11A:權重調校方法
層級 Iw Iw+ Iw-
16 80 100 20
15 75 95 20
14 70 90 20
13 65 85 20
12 60 80 20
11 55 75 20
10 50 70 20
9 45 65 20
8 40 80 40
7 35 75 40
6 30 70 40
5 25 65 40
4 20 60 40
3 15 55 40
2 10 50 40
1 5 45 40
表11B:權重調校方法
層級 Iw Iw+ Iw-
16 -80 20 100
15 -75 20 95
14 -70 20 90
13 -65 20 85
12 -60 20 80
11 -55 20 75
10 -50 20 70
9 -45 20 65
8 -40 40 80
7 -35 40 75
6 -30 40 70
5 -25 40 65
4 -20 40 60
3 -15 40 55
2 -10 40 50
1 -5 40 45
表11A及11B展示類似於圖10A及圖10B之具體例的具體例,其中零權重(w=0)等於偏移偏壓值。舉例而言,展示針對一個偏移偏壓值之權重值之一個範圍,針對兩個偏移值之權重之兩個子範圍。 表12A:權重調校方法
層級 Iw Iwa+ Iwa- Iwb+ Iwb-
16 80 40 0 40 0
15 75 35 0 40 0
14 70 35 0 35 0
13 65 32.5 0 32.5 0
12 60 30 0 30 0
11 55 27.5 0 27.5 0
10 50 25 0 25 0
9 45 22.5 0 22.5 0
8 40 40 40 40 0
7 35 35 40 40 0
6 30 30 40 40 0
5 25 32.5 40 32.5 0
4 20 30 40 30 0
3 15 27.5 40 27.5 0
2 10 25 40 25 0
1 5 22.5 40 22.5 0
表12B:權重調校方法
層級 Iw Iwa+ Iwa- Iwb+ Iwb-
16 -80 0 40 0 40
15 -75 0 37.5 0 37.5
14 -70 0 35 0 35
13 -65 0 32.5 0 32.5
12 -60 0 30 0 30
11 -55 0 27.5 0 27.5
10 -50 0 25 0 25
9 -45 0 22.5 0 22.5
8 -40 40 40 0 40
7 -35 40 37.5 0 37.5
6 -30 40 35 0 35
5 -25 40 32.5 0 32.5
4 -20 40 30 0 30
3 -15 40 27.5 0 27.5
2 -10 40 25 0 25
1 -5 40 22.5 0 22.5
表13:權重調校方法
層級 Iw Iw+ Iw-
16 80 100 20
15 75 97.5 22.5
14 70 95 25
13 65 92.5 27.5
12 60 90 30
11 55 87.5 32.5
10 50 85 35
9 45 82.5 37.5
8 40 80 40
7 35 77.5 42.5
6 30 75 45
5 25 72.5 47.5
4 20 70 50
3 15 67.5 52.5
2 10 65 55
1 5 62.5 57.5
表13展示針對正權重及負權重使用不同偏移之具體例。 表14:權重調校方法
層級 Iw Iw+ Iw-
16 80 120 40
15 75 115 40
14 70 110 40
13 65 105 40
12 60 100 40
11 55 95 40
10 50 90 40
9 45 85 40
8 40 80 40
7 35 75 40
6 30 70 40
5 25 65 40
4 20 60 40
3 15 55 40
2 10 50 40
1 5 45 40
表14展示針對正權重及負權重使用共同偏移之具體例。 表15:權重調校方法
Iw Iw+ Iw-
80 120 40
75 115 40
70 110 40
65 105 40
60 100 40
55 95 40
50 90 40
45 85 40
40 115 75
35 105 70
30 95 65
25 85 60
20 75 55
15 65 50
10 55 45
5 45 40
表15展示針對權重使用增大之偏移的具體例。 表16:權重調校方法
Iw Iw+ Iw-
80 120 40
75 120 45
70 120 50
65 120 55
60 120 60
55 120 65
50 120 70
45 120 75
40 120 80
35 120 85
30 120 90
25 120 95
20 120 100
15 120 105
10 120 110
5 120 115
表16展示針對權重使用減小之偏移的具體例。其亦展示Iw+之恆定偏移。其亦展示Iw+之最大恆定值,基本上使所有權重朝向最大值移位。
表12A及12B展示類似於圖10A及圖10B之具體例的具體例,其中每一w+或w+值藉由兩個記憶體單元實施以進一步大致將總動態範圍減少另一半。
應理解,以上具體例中所提供的w+及w-之值僅僅為實施例且可根據所揭示概念使用其他值。舉例而言,偏移偏壓值可為移位用於每一層級之值的任何值,或其可為用於所有層級之固定值。實際上,每一w經實施為差分單元,其在最小化來自程序、溫度、雜訊(諸如RTN或供應雜訊)、應力或操作條件之變化或失配方面可為有效的。
圖36A說明隨溫度變化(在作為實施例之次臨限區中)之資料行為(I-V曲線),圖36B說明在VMM系統之操作期間由資料漂移形成之問題,且圖36C及圖36D描繪用於補償資料漂移及(關於圖36C)用於補償溫度變化之區塊。
圖36A描繪VMM系統之已知特性,其為隨著操作溫度的提高,VMM陣列中之任何給定之選定非揮發性記憶體單元中之感測電流在次臨限區中增大,在飽和區中減小,或一般在線性區中減小。
圖36B展示隨時間使用之陣列電流分佈(資料漂移),並展示來自VMM陣列之共同輸出(其為來自VMM陣列中之所有位元線之電流之總和)隨操作時間使用向右移位(或向左移位,取決於所利用技術),意謂總體共同輸出將隨VMM系統之壽命使用而漂移。此現象被稱為資料漂移,此係因為資料將由於使用條件而漂移並由於環境因素而劣化。
圖36C描繪位元線補償電路3600,其可包括將補償電流i COMP注入至位元線輸出電路3610之輸出以補償資料漂移。位元線補償電路3600可包括基於電阻器或電容器網路藉由縮放器電路對輸出進行按比例增大或按比例減小。位元線補償電路3600可包括基於其電阻器或電容器網路藉由移位器電路對輸出進行移位或偏移。
圖36D描繪資料漂移監測器3620,其偵測資料漂移之量。彼資訊接著用作至位元線補償電路3600之輸入,使得可選定適當位準之i COMP
圖37描繪位元線補償電路3700,其為圖36中之位元線補償電路3600的具體例。位元線補償電路3700包含共同產生i COMP之可調電流源3701及可調電流源3702,其中i COMP等於由可調電流源3701產生之電流減去由可調電流源3702產生之電流。
圖38描繪位元線補償電路3800,其為圖36中之位元線補償電路3600的具體例。位元線補償電路3800包含運算放大器3801、可調電阻器3802及可調電阻器3803。運算放大器3801在其非反相端子上接收參考電壓VREF並在其反相端子上接收V INPUT,其中V INPUT為自圖36C中之位元線輸出電路3610接收到之電壓,並產生V OUTPUT之輸出,其中V OUTPUT為V INPUT之經縮放版本以基於電阻器3803與3802之比率補償資料漂移。藉由組構電阻器3803及/或3802之值,V OUTPUT可按比例增大或減小。
圖39描繪位元線補償電路3900,其為圖36中之位元線補償電路3600的具體例。位元線補償電路3900包含運算放大器3901、電流源3902、開關3904及可調整之積分輸出電容器3903。此處,電流源3902實際上為VMM陣列中之單個位元線或多個位元線之集合(諸如一者用於求和正權重w+,且一者用於求和負權重w-)上的輸出電流。運算放大器3901在其非反相端子上接收參考電壓VREF且在其反相端子上接收V INPUT,其中V INPUT為自圖36C中之位元線輸出電路3610接收到之電壓。位元線補償電路3900充當積分器,其在可調積分時間內對電容器3903上之電流Ineu進行積分以產生輸出電壓V OUTPUT,其中V OUTPUT=Ineu*積分時間/C 3903,其中C 3903為電容器3903之值。因此,輸出電壓V OUTPUT與(位元線)輸出電流Ineu成比例,與積分時間成比例,且與電容器3903之電容成反比。位元線補償電路3900產生V OUTPUT之輸出,其中V OUTPUT之值基於電容器3903之經組構值及/或用以補償資料漂移之積分時間而按比例縮放。
圖40描繪位元線補償電路4000,其為圖36中之位元線補償電路3600的具體例。位元線補償電路4000包含具有M:N比率之電流鏡4010,意謂I COMP=(M/N)*i input。電流鏡4010接收電流i INPUT且反射彼電流,且視情況縮放彼電流以產生i COMP。因此,藉由組構M及/或N個參數,i COMP可按比例增大或減小。
圖41描繪位元線補償電路4100,其為圖36中之位元線補償電路3600的具體例。位元線補償電路4100包含運算放大器4101、可調縮放電阻器4102、可調移位電阻器4103及可調電阻器4104。運算放大器4101在其非反相端子上接收參考電壓V REF且在其反相端子上接收V IN。V IN回應於V INPUT及Vshft而產生,其中V INPUT為自圖36C中之位元線輸出電路3610接收到之電壓,且Vshft為意欲實施V INPUT與V OUTPUT之間的移位之電壓。因此,V OUTPUT為用以補償資料漂移之V INPUT的經縮放及移位版本。
圖42描繪位元線補償電路4200,其為圖36中之位元線補償電路3600的具體例。位元線補償電路4200包含運算放大器4201、輸入電流源Ineu 4202、電流移位器4203、開關4205及4206以及可調整之積分輸出電容器4204。此處,電流源4202實際上為VMM陣列中之單個位元線或多個位元線上的輸出電流Ineu。運算放大器4201在其非反相端子上接收參考電壓VREF且在其反相端子上接收I IN,其中I IN為Ineu與藉由電流移位器4203輸出之電流的總和,並產生V OUTPUT之輸出,其中V OUTPUT經縮放(基於電容器4204)及移位(基於Ishifter 4203)以補償資料漂移。
圖43至圖48描繪各種電路,其可用於在程式化或讀取操作期間提供W值以程式化或讀取至每一選定單元中。
圖43描繪神經元輸出電路4300,其包含可調電流源4301及可調電流源4302,該等可調電流源共同產生I OUT,其中I OUT等於由可調電流源4301產生之電流I W+減去由可調電流源4302產生之電流I W-。可調電流Iw+4301為單元電流或神經元電流(諸如位元線電流)之經縮放電流以實施正權重。可調電流Iw-4302為單元電流或神經元電流(諸如位元線電流)之經縮放電流以實施負權重。電流縮放諸如藉由M:N比率電流鏡射電路進行,Iout=(M/N)*Iin。
圖44描繪神經元輸出電路4400,其包含可調電容器4401、控制電晶體4405、開關4402、開關4403,及可調電流源4404 Iw+,該可調電流源為諸如藉由M:N電流鏡射電路之單元電流或(位元線)神經元電流之經縮放輸出電流。電晶體4405用於例如對電流4404強加固定偏壓電壓。電路4404產生V OUT,其中V OUT與電容器4401成反比、與可調積分時間(開關4403關閉及開關4402打開之時間)成比例且與藉由可調電流源4404產生之電流I W+成比例。V OUT等於V+-((Iw+*積分時間)/C 4401),其中C 4401為電容器4401之值。電容器4401之正端子V+連接至正供應電壓,且電容器4401之負端子V-連接至輸出電壓V OUT
圖45描繪神經元電路4500,其包含電容器4401及可調電流源4502,該可調電流源為諸如藉由M:N電流鏡之單元電流或(位元線)神經元電流之經縮放電流。電路4500產生V OUT,其中V OUT與電容器4401成反比、與可調積分時間(開關4501打開之時間)成比例且與藉由可調電流源4502產生之電流I Wi成比例。電容器4401在其完成對電流Iw+進行積分之操作之後自神經元輸出電路4400再使用。接著正及負端子(V+及V-)在神經元輸出電路4500中交換,其中正端子連接至藉由電流Iw-去積分之輸出電壓V OUT。負端子藉由箝位電路(未展示)保持在先前電壓值下。實際上,輸出電路4400用於正權重實施且電路4500用於負權重實施,其中電容器4401上之最終電荷有效地表示組合權重(Qw=Qw+-Qw-)。
圖46描繪神經元電路4600,其包含可調電容器4601、開關4602、控制電晶體4604及可調電流源4603。電路4600產生V OUT,其中V OUT與電容器4601成反比、與可調積分時間(開關4602打開之時間)成比例且與藉由可調電流源4603產生之電流I W-成比例。電容器4601之負端子V-例如等於接地。電容器4601之正端子V+例如在對電流Iw-進行積分之前最初預先充電至正電壓。神經元電路4600可代替神經元電路4500與神經元電路4400一起使用以實施組合權重(Qw=Qw+-Qw-)。
圖47描繪神經元電路4700,其包含運算放大器4703及4706;可調電流源Iw+4701及Iw-4702;及可調電阻器4704、4705及4707。神經元電路4700產生V OUT,其等於R 4707*(Iw+-Iw-)。可調電阻器4707實施輸出之縮放。可調電流源Iw+4701及Iw-4702亦諸如藉由M:N比率電流鏡射電路實施輸出之縮放(Iout=(M/N)*Iin)。
圖48描繪神經元電路4800,其包含運算放大器4803及4806;開關4808及4809;可調電流源Iw- 4802及Iw+4801;可調電容器4804、4805及4807。神經元電路4800產生V OUT,其與(Iw+-Iw-)成比例,與積分時間(開關4808及4809打開之時間)成比例,且與電容器4807之電容成反比。可調電容器4807實施輸出之縮放。可調電流源Iw+4801及Iw-4802亦諸如藉由M:N比率電流鏡射電路實施輸出之縮放(Iout= (M/N)*Iin)。積分時間亦可調整輸出縮放。
圖49A、圖49B及圖49C描繪諸如圖33中之輸出電路3307之輸出電路的方塊圖。
在圖49A中,輸出電路4901包含ADC電路4911,其用於直接數位化類比神經元輸出4910以提供數位輸出位元4912。
在圖49B中,輸出電路4902包含神經元輸出電路4921及ADC 4911。神經元輸出電路4921接收神經元輸出4920且在其由ADC電路4911數位化之前對其進行整形以產生輸出4912。神經元輸出電路4921可用於諸如先前所描述之正規化、縮放、移位、映射、算術運算、活化及/或溫度補償。ADC電路可為串聯(傾斜或斜坡或計數)ADC、SAR ADC、管線ADC、積分三角ADC,或任何類型之ADC。
在圖49C中,輸出電路包含接收神經元輸出4930之神經元輸出電路4921,且轉換器電路4931用於將來自神經元輸出電路4921之輸出轉換成輸出4932。轉換器4931可包含ADC、類比至類比轉換器(AAC,諸如電流至電壓轉換器)、類比至脈衝轉換器(APC)或任何其他類型的轉換器。ADC 4911或轉換器4931可用於藉由例如位元映射(例如,量化)或限幅(例如,經限幅ReLU)來實施激勵函數。ADC 4911及轉換器4931可諸如針對較低或較高精確度(例如,較低或較高數目的位元)、較低或較高效能(例如,較慢或較快速度)等而為可組構的。
用於縮放及移位之另一具體例係藉由組構用於將陣列(位元線)輸出轉換成諸如具有較低或較高位元精確度之數位位元的類比至數位(ADC)轉換電路(諸如串聯ADC、SAR ADC、管線ADC、斜坡ADC等)且接著根據特定函數(例如,線性或非線性、壓縮、非線性激勵等)諸如經由正規化(例如,12位元至8位元)、移位或重新映射來操控數位輸出位元。ADC轉換電路之實施例描繪於在2019年11月11日由與本申請案相同之受讓人提交且標題為「用於深度學習人工神經網路中之類比神經記憶體之精確程式化方法及裝置(Precise Programming Method and Apparatus for Analog Neural Memory in a Deep Learning Artificial Neural Network)」之美國臨時專利申請案第62/933,809號中,該美國臨時專利申請案以引用之方式併入本文中。
表17描繪執行讀取、抹除及程式化操作之替代方法: 表17:快閃記憶體單元之操作
   SL BL WL CG EG P-基板
讀取 0 0.5 1 0 0 0
抹除 0 0 0 0/-8V 10-12V/+8V 0
程式化1 0-5V 0 0 8V -10至-12V 0
-                  
程式化2 0 0 0 8V 0-5V -10V
讀取及抹除操作類似於前述表。然而,用於程式化之兩種方法藉由富爾-諾罕(FN)穿隧機制實施。
用於縮放輸入之具體例可諸如藉由一次啟用VMM之某一數目個列來進行,接著將結果組合在一起。
另一具體例為縮放輸入電壓,並適當地重新縮放輸出以供正規化。
用於縮放脈衝寬度調變輸入之另一具體例係藉由調變脈衝寬度之定時。此技術之實施例描繪於2019年6月21日由與本申請案相同之受讓人提交且標題為「用於深度學習人工神經網路中之類比神經記憶體之可組構輸入區塊及輸出區塊及實體佈局(Configurable Input Blocks and Output Blocks and Physical Layout for Analog Neural Memory in Deep Learning Artificial Neural Network)」之美國專利申請案第16/449,201號中,該美國專利申請案以引用之方式併入本文中。
用於縮放輸入之另一具體例係藉由例如針對8位元輸入IN7:0一次一個地啟用輸入二進位位元,分別按依序次序評估IN0、IN1…IN7,接著在適當二進位位元加權之情況下將輸出結果組合在一起。此技術之實施例描繪於2019年6月21日由與本申請案相同之受讓人提交且標題為「用於深度學習人工神經網路中之類比神經記憶體之可組構輸入區塊及輸出區塊及實體佈局(Configurable Input Blocks and Output Blocks and Physical Layout for Analog Neural Memory in Deep Learning Artificial Neural Network)」之美國專利申請案第16/449,201號中,該美國專利申請案以引用之方式併入本文中。
選擇地,在上文所描繪之具體例中,出於驗證或讀取電流的目的,量測單元電流可為取平均值或進行多次量測,例如8至32次,以降低雜訊(諸如RTN或任何隨機雜訊)之影響及/或偵測有缺陷且需要由冗餘位元替代之任何離群值位元。
應注意,如本文中所使用,術語「在…上方」及「在…上」兩者包括「直接在…上」(其間未裝設有中間材料、元件或空間)及「間接地在…上」(其間裝設有中間材料、元件或空間)。同樣地,術語「鄰近」包括「直接鄰近」(其間未安置有中間材料、元件或空間)及「間接鄰近」(其間安置有中間材料、元件或空間),「安裝至」包括「直接安裝至」(其間未安置有中間材料、元件或空間)及「間接安裝至」(其間安置有中間材料、元件或空間),且「電耦接」包括「直接電耦接至」(其間無將元件電連接在一起的中間材料或元件)及「間接電耦接至」(其間具有將元件電連接在一起的中間材料或元件)。舉例而言,「在基板上方」形成元件可包括直接在基板上形成元件而其間無中間材料/元件,以及間接地在基板上形成元件而其間具有一或多種中間材料/元件。
12:半導體基板 14:源極區 16:汲極區 18:通道區 20:浮動閘極 22:字線端子 24:位元線端子 28:控制閘極端子 30:抹除閘極 31:數位至類比轉換器 32,32a,32b,32c,32d,32e,3300:VMM系統 33,1100,1200,1300,1400,1500,1600,1700,1800,1900,2000,2100,2200,2300,2400,2701,2801,3101,3201,3301:VMM陣列 34:抹除閘極及字線閘極解碼器 35:控制閘極解碼器 36:位元線解碼器 37:源極線解碼器 38:差分求和器 39:激勵函數電路 210,310,410,510,610,710:記憶體單元 1000:VMM 1101,1203,1303,1403,1503:記憶體陣列 1102,1201,1202,1301,1302,1401,1402,1501,1502:參考陣列 1103:控制閘極線 1104:抹除閘極線 1214,1405,1412,1512,2809,2810,3204:多工器 1404:串疊電晶體 2500:LSTM 2501,2502,2503,2504,2901,2902,2903,2904:單元 2600,2700:LSTM單元 2601,2602,2603,3001,3002:S型函數構件 2604,2605,3003:雙曲正切構件 2606,2607,2608,2803,3004,3005,3006,3203:乘法器構件 2609,2808,3007,3205:加法構件 2702,2802,3102,3202:激勵函數區塊 2804,2805,2806,2807,3206,3207,3208:暫存器 2900:GRU 2901-1,2901-2,2901-(N-1),2901-N:位元線控制閘極 3000,3100,3200:GRU單元 3008,3209:互補構件 3302:列解碼器 3303:高電壓解碼器 3304:行解碼器 3305:位元線驅動器 3306:輸入電路 3307,4901,4902:輸出電路 3308,3316:控制邏輯 3309:偏壓產生器 3310:高電壓產生區塊 3311:電荷泵 3312:電荷泵調節器 3313:高電壓位準產生器 3314:演算法控制器 3315:類比電路系統 3317:測試控制邏輯 3400,3500:調校校正方法 3401,3402,3403,3404,3405A,3405B,3406,3407,3410,3501,3502,3503,3504,3505,3506,3508A,3509,3510,3511,3512A,3513,3514:步驟 3507:扇區調校方法 3600,3700,3800,3900,4000,4100,4200:位元線補償電路 3610:位元線輸出電路 3620:資料漂移監測器 3701,3702,4301,4302,4404,4502,4603,4701,4702,4801,4802:可調電流源 3801,3901,4101,4201,4703,4706,4803,4806:運算放大器 3802,3803,4104,4704,4705,4707:可調電阻器 3902,4202:電流源 3903,4204:可調整之積分輸出電容器 3904,4205,4206,4402,4403,4501,4602,4808,4809:開關 4010:電流鏡 4102,4103:可調縮放電阻器 4203:電流移位器 4300,4400,4921:神經元輸出電路 4401,4601,4804,4805,4807:可調電容器 4405,4604:控制電晶體 4500,4600,4700,4800:神經元電路 4910,4920,4930:神經元輸出 4911:ADC電路 4912:數位輸出位元 4931:轉換器電路 BL0,BL1,BL2,BL3,BLN,BLR0,BL 0,BL i,BL N:位元線 BLR0,BLR1,BLR2,BLR3:端子 c 0,c 1,c 2,c(t-1),c(t):單元狀態向量 C1,C2,C3,S1,S2,S3:層 CB1,CB2,CB3,CB4:突觸 CG0,CG 0,CG1,CG 1,CG2,CG 2,CG3,CG 3,CG M-1,CG M,CG N:控制閘極線 EG0,EG1,EGR0,EGR1:EG線 h 0,h 1,h 2,h 3,h(t-1),h(t):輸出向量 i COMP:補償電流 i INPUT,Ineu:電流 INPUT 0,INPUT 1,INPUT 2,INPUT 3,INPUT 4,INPUT M-1,INPUT M, INPUT N-1, INPUT N:輸入 OUTPUT 0,OUTPUT 1,OUTPUT 2,OUTPUT 3,OUTPUT 4,OUTPUT N-1, OUTPUT N:輸出 P1,P2:激勵函數 S0:輸入層 SL0,SL 0,SL1,SL 1,SL 2,SL 3,SL i:源極線 V INPUT,Vshft:電壓 V OUTPUT:輸出電壓 VREF:參考電壓 WL0,WL 0,WL1,WL2,WL3,WL4,WL5,WL6,WL7,WL M-1,WL M,WLA0,WLB0,WLA1,WLB2,WLA2,WLB2,WLA3,WLB3:字線 WL0,WL1,WL2,WL3:電壓輸入 x 0,x 1,x 2,x 3,x(t):輸入向量
圖1為說明先前技術人工神經網路之圖。
圖2描繪先前技術分離閘式快閃記憶體單元。
圖3描繪另一先前技術分離閘式快閃記憶體單元。
圖4描繪另一先前技術分離閘式快閃記憶體單元。
圖5描繪另一先前技術分離閘式快閃記憶體單元。
圖6描繪另一先前技術分離閘式快閃記憶體單元。
圖7描繪先前技術堆疊閘式快閃記憶體單元。
圖8為說明利用一或多個VMM陣列之例示性人工神經網路之不同層級的圖。
圖9為說明包含VMM陣列之VMM系統及其他電路系統之方塊圖。
圖10為說明利用一或多個VMM系統之例示性人工神經網路的方塊圖。
圖11描繪VMM陣列之另一具體例。
圖12描繪VMM陣列之另一具體例。
圖13描繪VMM陣列之另一具體例。
圖14描繪VMM陣列之另一具體例。
圖15描繪VMM陣列之另一具體例。
圖16描繪VMM陣列之另一具體例。
圖17描繪VMM陣列之另一具體例。
圖18描繪VMM陣列之另一具體例。
圖19描繪VMM陣列之另一具體例。
圖20描繪VMM陣列之另一具體例。
圖21描繪VMM陣列之另一具體例。
圖22描繪VMM陣列之另一具體例。
圖23描繪VMM陣列之另一具體例。
圖24描繪VMM陣列之另一具體例。
圖25描繪先前技術長短期記憶體系統。
圖26描繪用於長短期記憶體系統中之例示性單元。
圖27描繪圖26的例示性單元之具體例。
圖28描繪圖26的例示性單元之另一具體例。
圖29描繪先前技術閘控循環單元系統。
圖30描繪用於閘控循環單元系統中之例示性單元。
圖31描繪圖30的例示性單元之具體例。
圖32描繪圖30的例示性單元之另一具體例。
圖33描繪VMM系統。
圖34描繪調校校正方法。
圖35A描繪調校校正方法。
圖35B描繪扇區調校校正方法。
圖36A說明溫度對儲存於單元中之值的效應。
圖36B說明在VMM系統之操作期間由資料漂移形成之問題。
圖36C描繪用於補償資料漂移之區塊。
圖36D描繪資料漂移監測器。
圖37描繪位元線補償電路。
圖38描繪另一位元線補償電路。
圖39描繪另一位元線補償電路。
圖40描繪另一位元線補償電路。
圖41描繪另一位元線補償電路。
圖42描繪另一位元線補償電路。
圖43描繪神經元電路。
圖44描繪另一神經元電路。
圖45描繪另一神經元電路。
圖46描繪另一神經元電路。
圖47描繪另一神經元電路。
圖48描繪另一神經元電路。
圖49A描繪輸出電路之方塊圖。
圖49B描繪另一輸出電路之方塊圖。
圖49C描繪另一輸出電路之方塊圖。
C1,C2,C3,S1,S2:層
CB1,CB2,CB3,CB4:突觸
P1,P2:激勵函數

Claims (50)

  1. 一種神經網路,包含: 非揮發性記憶體單元之一向量矩陣乘法陣列,其中,一權重值w根據公式w=(w+)-(w-)作為一差分對w+及w-儲存於該陣列中之一第一非揮發性記憶體單元及一第二非揮發性記憶體單元中,其中w+及w-包括一非零偏移值。
  2. 如請求項1之神經網路,其中,該非零偏移值為一正值。
  3. 如請求項1之神經網路,其中,該非零偏移值為一負值。
  4. 如請求項1之神經網路,其中,當希望w為一數值0時,針對w+及w-儲存等於該非零偏移值之一數值。
  5. 如請求項1之神經網路,其中,w之一數值0係由小於一預定臨限值的w之一經儲存數值指示。
  6. 如請求項5之神經網路,其中,該預定臨限值為5nA。
  7. 如請求項5之神經網路,其中,該預定臨限值為10nA。
  8. 如請求項1之神經網路,其中,該等非揮發性記憶體單元為分離閘式快閃記憶體單元。
  9. 如請求項1之神經網路,其中,該等非揮發性記憶體單元為堆疊閘式快閃記憶體單元。
  10. 如請求項1之神經網路,其中,該第一非揮發性記憶體單元係藉由一粗略、精細或超精細調校演算法中之一或多者調校至w+,以及該第二非揮發性記憶體單元係藉由一精細或超精細調校演算法中之一或多者調校至w-。
  11. 一種神經網路,包含: 非揮發性記憶體單元之一向量矩陣乘法陣列,該陣列組織成多列及多行之非揮發性記憶體單元,其中一權重值w根據公式w=(w+)-(w-)作為一差分對w+及w-儲存於一第一非揮發性記憶體單元及一第二非揮發性記憶體單元中,其中w+及w-值之儲存係大致均勻地散佈於該陣列中之所有行當中。
  12. 如請求項11之神經網路,其中,該非零偏移值為一正值。
  13. 如請求項11之神經網路,其中,該非零偏移值為一負值。
  14. 如請求項11之神經網路,其中,當希望w為一數值0時,針對w+及w-儲存等於該非零偏移值之一數值。
  15. 如請求項11之神經網路,其中,w之一數值0係由小於一預定臨限值的w之一經儲存數值指示。
  16. 如請求項15之神經網路,其中,該預定臨限值為5nA。
  17. 如請求項15之神經網路,其中,該預定臨限值為10nA。
  18. 如請求項11之神經網路,其中,該等非揮發性記憶體單元為分離閘式快閃記憶體單元。
  19. 如請求項11之神經網路,其中,該等非揮發性記憶體單元為堆疊閘式快閃記憶體單元。
  20. 如請求項11之神經網路,其中,該第一非揮發性記憶體單元係藉由一粗略、精細或超精細調校演算法中之一或多者調校至w+,以及該第二非揮發性記憶體單元係藉由一精細或超精細調校演算法中之一或多者調校。
  21. 一種在一向量矩陣乘法陣列中程式化、驗證及讀取一差分對非揮發性記憶體單元中之一零值之方法,該方法包含: 將該差分對中之一第一單元w+程式化為一第一電流值; 藉由將等於一第一電壓加一偏壓電壓之一電壓施加至該第一單元之一控制閘極端子而驗證該第一單元; 將該差分對中之一第二單元w-程式化為該第一電流值; 藉由將等於該第一電壓加該偏壓電壓之一電壓施加至該第二單元之一控制閘極端子而驗證該第二單元; 藉由將等於該第一電壓之一電壓施加至該第一單元之該控制閘極端子而讀取該第一單元; 藉由將等於該第一電壓之一電壓施加至該第二單元之該控制閘極端子而讀取該第二單元; 根據公式w=(w+)-(w-)計算一值w。
  22. 如請求項21之方法,其中,該第一單元係由一粗略、精細或超精細調校演算法中之一或多者調校,以及該第二單元係由一精細或超精細調校演算法中之一或多者調校。
  23. 一種在一向量矩陣乘法陣列中程式化、驗證及讀取一差分對非揮發性記憶體單元中之一零值之方法,該方法包含: 將該差分對中之一第一單元w+程式化為一第一電流值; 藉由將等於一第一電壓加一偏壓電壓之一電壓施加至該第一單元之一控制閘極端子而驗證該第一單元; 將該差分對中之一第二單元w-程式化為該第一電流值; 藉由將等於該第一電壓加該偏壓電壓之一電壓施加至該第二單元之一控制閘極端子而驗證該第二單元; 藉由將等於該第一電壓之一電壓施加至該第一單元之該控制閘極端子而讀取該第一單元; 藉由將等於該第一電壓之一電壓施加至該第二單元之該控制閘極端子而讀取該第二單元; 根據公式w = (w+) - (w-)計算一值w。
  24. 如請求項23之方法,其中,該第一電流值為一正值。
  25. 如請求項23之方法,其中,該第二電流值為一負值。
  26. 如請求項23之方法,其中,該第一單元係由一粗略、精細或超精細調校演算法中之一或多者調校至w+,以及該第二單元係由一精細或超精細調校演算法中之一或多者調校至w-。
  27. 一種神經網路,包含: 非揮發性記憶體單元之一向量矩陣乘法陣列,該陣列組織成多列及多行之非揮發性記憶體單元,其中一權重值w根據公式w=(w+)-(w-)儲存為一差分對w+及w-,其中w+作為一差分對儲存於該陣列中之一第一非揮發性記憶體單元及一第二非揮發性記憶體單元中,以及w-作為一差分對儲存於該陣列中之一第三非揮發性記憶體單元及一第四非揮發性記憶體單元中,其中w+及w-值之儲存係偏移一偏壓值。
  28. 如請求項27之神經網路,其中,該所有記憶體單元之電流範圍大致減少表示偏壓值之記憶體單元電流值。
  29. 如請求項27之神經網路,其中,該記憶體單元具有多個電流位準。
  30. 如請求項28之神經網路,其中,一偏壓值跨越多個記憶體單元層級而共用。
  31. 如請求項27之神經網路,其中,該偏壓值為一正值。
  32. 如請求項27之神經網路,其中,該偏壓值為一負值。
  33. 如請求項27之神經網路,其中,當希望w為一數值0時,針對w+及w-儲存等於該偏壓值之一數值。
  34. 如請求項27之神經網路,其中,w之一數值0係由小於一預定臨限值的w之一經儲存數值指示。
  35. 如請求項34之神經網路,其中,該預定臨限值為5nA。
  36. 如請求項34之神經網路,其中,該預定臨限值為10nA。
  37. 如請求項27之神經網路,其中,該等非揮發性記憶體單元為分離閘式快閃記憶體單元。
  38. 如請求項27之神經網路,其中,該等非揮發性記憶體單元為堆疊閘式快閃記憶體單元。
  39. 如請求項27之神經網路,其中,該第一非揮發性記憶體單元及該第三非揮發性記憶體單元係藉由一粗略、精細或超精細調校演算法中之一或多者調校,以及該第二非揮發性記憶體單元及該第四非揮發性記憶體單元係藉由一精細或超精細調校演算法中之一或多者調校。
  40. 一種神經網路,包含: 非揮發性記憶體單元之一向量矩陣乘法陣列,該陣列組織成多列及多行之非揮發性記憶體單元,其中一權重值w根據公式w=(w+)-(w-)作為一差分對w+及w-儲存於一第一非揮發性記憶體單元及一第二非揮發性記憶體單元中,其中w+之值係選自非零值之一第一範圍且w-之值係選自非零值之一第二範圍,其中該第一範圍與該第二範圍並不重疊。
  41. 如請求項40之神經網路,其中,w之一數值0係由小於一預定臨限值的w之一經儲存數值指示。
  42. 如請求項41之神經網路,其中,該預定臨限值為5nA。
  43. 如請求項41之神經網路,其中,該預定臨限值為10nA。
  44. 如請求項40之神經網路,其中,該等非揮發性記憶體單元為分離閘式快閃記憶體單元。
  45. 如請求項40之神經網路,其中,該等非揮發性記憶體單元為堆疊閘式快閃記憶體單元。
  46. 如請求項40之神經網路,其中,該第一非揮發性記憶體單元係藉由一粗略、精細或超精細調校演算法中之一或多者調校至w+,以及該第二非揮發性記憶體單元係藉由一精細或超精細調校演算法中之一或多者調校至w-。
  47. 一種在一向量矩陣乘法陣列中讀取非揮發性記憶體單元之方法,該方法包含: 讀取儲存於該陣列中之一選定單元中的一權重,包含: 將一零電壓偏壓施加至該選定單元之一控制閘極端子;及 感測包含自該選定單元輸出之電流的一神經元輸出電流。
  48. 如請求項47之方法,其中,讀取步驟進一步包含將一電壓施加至該選定單元之一字線端子。
  49. 一種在一向量矩陣乘法陣列中操作一非揮發性記憶體單元之方法,該方法包含: 藉由將一第一偏壓電壓施加至該非揮發性記憶體單元之一控制閘極來讀取該非揮發性記憶體單元;及 在一備用操作、一深度斷電操作或一測試操作中之一或多者期間將一第二偏壓電壓施加至該非揮發性記憶體單元之該控制閘極。
  50. 如請求項49之方法,其進一步包含: 調變該陣列中之一背景資料模式或零權重或非使用者單元。
TW111101921A 2021-02-25 2022-01-18 用於人工神經網路中之類比神經記憶體之精確資料調校方法及裝置 TWI809663B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US17/185,725 2021-02-25
US17/185,725 US20210209458A1 (en) 2020-01-03 2021-02-25 Precise data tuning method and apparatus for analog neural memory in an artificial neural network
PCT/US2021/033122 WO2022182378A1 (en) 2021-02-25 2021-05-19 Precise data tuning method and apparatus for analog neural memory in an artificial neural network
WOPCT/US21/33122 2021-05-19

Publications (2)

Publication Number Publication Date
TW202236170A true TW202236170A (zh) 2022-09-16
TWI809663B TWI809663B (zh) 2023-07-21

Family

ID=76355597

Family Applications (1)

Application Number Title Priority Date Filing Date
TW111101921A TWI809663B (zh) 2021-02-25 2022-01-18 用於人工神經網路中之類比神經記憶體之精確資料調校方法及裝置

Country Status (6)

Country Link
EP (1) EP4298557A1 (zh)
JP (1) JP2024508807A (zh)
KR (1) KR20230110361A (zh)
CN (1) CN116917905A (zh)
TW (1) TWI809663B (zh)
WO (1) WO2022182378A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024063792A1 (en) * 2022-09-22 2024-03-28 Silicon Storage Technology, Inc. Verification method and system in artificial neural network array

Family Cites Families (6)

* Cited by examiner, † Cited by third party
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
WO2017200883A1 (en) 2016-05-17 2017-11-23 Silicon Storage Technology, Inc. Deep learning neural network classifier using non-volatile memory array
US10346740B2 (en) * 2016-06-01 2019-07-09 Kla-Tencor Corp. Systems and methods incorporating a neural network and a forward physical model for semiconductor applications
US10643119B2 (en) * 2018-07-24 2020-05-05 Sandisk Technologies Llc Differential non-volatile memory cell for artificial neural network
US20200364583A1 (en) * 2019-05-14 2020-11-19 Robert D. Pedersen Iot sensor network artificial intelligence warning, control and monitoring systems and methods

Also Published As

Publication number Publication date
KR20230110361A (ko) 2023-07-21
JP2024508807A (ja) 2024-02-28
WO2022182378A1 (en) 2022-09-01
TWI809663B (zh) 2023-07-21
CN116917905A (zh) 2023-10-20
EP4298557A1 (en) 2024-01-03

Similar Documents

Publication Publication Date Title
TWI799355B (zh) 精確資料調校方法及用於人工神經網路中之類比神經記憶體之裝置
CN112868063B (zh) 深度学习人工神经网络中的模拟神经存储器的编程的精确调谐
CN113785360A (zh) 用于深度学习人工神经网络中的模拟神经存储器的输出阵列神经元转换和校准
JP7153802B2 (ja) 深層学習人工ニューラルネットワークのアナログニューラルメモリにおいて不揮発性メモリセルのプログラミング動作中に格納された値を検証するためのアルゴリズム及び回路
TWI809663B (zh) 用於人工神經網路中之類比神經記憶體之精確資料調校方法及裝置
JP2023525771A (ja) 論理セル及び改善されたプログラミング機構を備える人工ニューラルネットワーク内のアナログニューラルメモリアレイ
TW202341014A (zh) 深度學習人工神經網路中電性參數的校準
CN115968495A (zh) 用于人工神经网络中的模拟神经存储器阵列的自适应偏置解码器
CN115516565A (zh) 人工神经网络中的具有源极线拉低机构的模拟神经存储器阵列
US20210209458A1 (en) Precise data tuning method and apparatus for analog neural memory in an artificial neural network
US20240120009A1 (en) Programming of a Selected Non-volatile Memory Cell by Changing Programming Pulse Characteristics
US20240104164A1 (en) Verification method and system in artificial neural network array
TW202336748A (zh) 決定施加至神經網路中的一或多個記憶體胞元的偏壓
TW202341013A (zh) 深度學習人工神經網路中電性參數的校準
WO2024063792A1 (en) Verification method and system in artificial neural network array
TW202324211A (zh) 可配置為以類比形式或數位形式儲存神經記憶體權重資料的混合記憶體系統