TWI718626B - 用於深度學習神經網路之可組態類比神經記憶體系統 - Google Patents

用於深度學習神經網路之可組態類比神經記憶體系統 Download PDF

Info

Publication number
TWI718626B
TWI718626B TW108129490A TW108129490A TWI718626B TW I718626 B TWI718626 B TW I718626B TW 108129490 A TW108129490 A TW 108129490A TW 108129490 A TW108129490 A TW 108129490A TW I718626 B TWI718626 B TW I718626B
Authority
TW
Taiwan
Prior art keywords
array
neural network
sub
block
vector
Prior art date
Application number
TW108129490A
Other languages
English (en)
Other versions
TW202016928A (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
Application filed by 美商超捷公司 filed Critical 美商超捷公司
Publication of TW202016928A publication Critical patent/TW202016928A/zh
Application granted granted Critical
Publication of TWI718626B publication Critical patent/TWI718626B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C27/00Electric analogue stores, e.g. for storing instantaneous values
    • G11C27/02Sample-and-hold arrangements
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L29/00Semiconductor devices specially adapted for rectifying, amplifying, oscillating or switching and having potential barriers; Capacitors or resistors having potential barriers, e.g. a PN-junction depletion layer or carrier concentration layer; Details of semiconductor bodies or of electrodes thereof ; Multistep manufacturing processes therefor
    • H01L29/40Electrodes ; Multistep manufacturing processes therefor
    • H01L29/41Electrodes ; Multistep manufacturing processes therefor characterised by their shape, relative sizes or dispositions
    • H01L29/423Electrodes ; Multistep manufacturing processes therefor characterised by their shape, relative sizes or dispositions not carrying the current to be rectified, amplified or switched
    • H01L29/42312Gate electrodes for field effect devices
    • H01L29/42316Gate electrodes for field effect devices for field-effect transistors
    • H01L29/4232Gate electrodes for field effect devices for field-effect transistors with insulated gate
    • H01L29/42324Gate electrodes for transistors with a floating gate
    • H01L29/42328Gate electrodes for transistors with a floating gate with at least one additional gate other than the floating gate and the control gate, e.g. program gate, erase gate or select gate
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Neurology (AREA)
  • Algebra (AREA)
  • Human Computer Interaction (AREA)
  • Databases & Information Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Power Engineering (AREA)
  • Ceramic Engineering (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Computer Hardware Design (AREA)
  • Non-Volatile Memory (AREA)
  • Read Only Memory (AREA)
  • Complex Calculations (AREA)

Abstract

揭露用於深度學習神經網路之類比神經記憶體系統中的可組態硬體系統之許多具體例。在可組態硬體系統內之可組態的組件可以包括向量矩陣乘法陣列、加法器電路、激勵電路、輸入、參考裝置、神經元及測試電路。這些裝置可以配置成提供具不同大小的向量乘矩陣乘法陣列之各種層,以致於可以在具有不同需求的類比神經記憶體系統中使用相同的硬體。

Description

用於深度學習神經網路之可組態類比神經記憶體系統 [優先權請求]
本申請案主張2018年8月27日所提出之名稱為「用於深度學習神經網路之可組態類比神經記憶體系統」的美國臨時專利申請案第62/723,360號及2018年11月6日所提出之名稱為「用於深度學習神經網路之可組態類比神經記憶體系統」的美國專利申請案第16/182,237號之優先權。
揭露用於深度學習神經網路之類比神經記憶體系統中的可組態硬體系統之許多具體例。
人工神經網路模擬生物神經網路(動物的中樞神經系統,特別是大腦)及用於估計或近似可依賴於大量輸入且通常是未知的函數。人工神經網路通常包括可彼此交換信息之互連的「神經元」層。
圖1說明人工神經網路,其中圓圈表示神經元輸入或層。連結(稱為突觸)以箭頭來表示,並且具有可根據經驗調整的數字權重。這使得神經網路適應於輸入且能夠學習。通常,神經網路包括一層多個輸入。通常有一個或多個神經元中間層及提供神經網路輸出的一個神經元輸出層。每個層級的神經元個別地或共同地根 據從突觸接收的資料做出決定。
開發用於高性能資訊處理之人工神經網路的主要挑戰中之一是缺乏足夠的硬體技術。實際上,實際的神經網路依賴於非常大量的突觸,以使神經元之間的高連結性(亦即,非常高的計算並行性)成為可能。原則上,這樣的複雜性可以用數位超級電腦或專用圖形處理單元叢集來實現。然而,除了高成本之外,相較於生物網路,這些方法還因平庸的能量效率而更糟,其中生物網路消耗非常少的能量,主要是因為它們執行低精度類比計算。CMOS類比電路已經用於人工神經網路,但是有鑑於大量的神經元及突觸,大多數CMOS實施的突觸過於龐大。
申請人以前在美國專利申請案第15/594,439號中揭露一種人工(類比)神經網路,其利用一個或多個非揮發性記憶體陣列作為突觸,在此以提及方式將上述美國專利申請案併入本文。非揮發性記憶體陣列作為類比神經形態記憶體來操作。神經網路裝置包括複數個第一突觸,其構造成接收複數個第一輸入並由此產生複數個第一輸出;以及複數個第一神經元,其構造成接收複數個第一輸出。複數個第一突觸包括複數個記憶體單元,其中每個記憶體單元包括間隔開的源極及汲極區域,其形成在半導體基板中,並且具有通道區域在其間延伸;浮動閘極,其設置在通道區域的第一部分上方且與通道區域的第一部分絕緣;以及非浮動閘極,其設置在通道區域的第二部分上方且與通道區域的第二部分絕緣。複數個記憶體單元中之每一個構造成儲存與浮動閘極上之一些電子相對應的權重值。複數個記憶體單元構造成將複數個第一輸入乘以儲存的權重值,以產生複數個第一輸出。
必須抹除及程式化在類比神經形態記憶體系統中使用之每個非揮發性記憶體單元,以在浮動閘極中保持非常特定且精確的電荷量,亦即,電子數量。例如,每個浮動閘極必須保持N個不同數值中之一個,其中N是可以由每個單元表示之不同權重的數量。N的實例包括16、32、64、128及256。
實施類比神經記憶體系統的一個挑戰是需要包含不同大小的陣列之各種層。不同大小的陣列對於陣列外部的支援電路有不同的需求。為每個系統提供客製化硬體可能變得昂貴且費時。
所需要的是一種用於類比神經記憶體系統的可組態架構,其可以提供具不同大小的向量乘矩陣乘法陣列之各種層及適當大小的支援電路,以致於可以在具有不同需求的類比神經記憶體系統中使用相同的硬體。
揭露用於深度學習神經網路之類比神經記憶體系統中的可組態硬體系統之許多具體例。在可組態硬體系統內之可組態的組件可以包括向量矩陣乘法陣列、加法器電路、激勵電路、輸入、參考裝置、神經元及測試電路。這些裝置可以配置成提供具不同大小的向量矩陣乘法陣列之各種層,以致於可以在具有不同需求的類比神經記憶體系統中使用相同的硬體。
12‧‧‧半導體基板
14‧‧‧源極區域
16‧‧‧汲極區域
18‧‧‧通道區域
20‧‧‧浮動閘極
22‧‧‧字元線端子(選擇閘極)
24‧‧‧位元線
28‧‧‧控制閘極
30‧‧‧抹除閘極
31‧‧‧數位至類比轉換器
32‧‧‧向量矩陣乘法(VMM)陣列
32a‧‧‧VMM陣列
32b‧‧‧VMM陣列
32c‧‧‧VMM陣列
32d‧‧‧VMM陣列
32e‧‧‧VMM陣列
33‧‧‧非揮發性記憶體單元陣列
34‧‧‧抹除閘極及字元線閘極解碼
35‧‧‧控制閘極解碼器
36‧‧‧位元線解碼器
37‧‧‧源極線解碼器
38‧‧‧差分加法器
39‧‧‧激勵函數電路
210‧‧‧記憶體單元
310‧‧‧4-閘極記憶體單元
410‧‧‧3-閘極記憶體單元
510‧‧‧堆疊式閘極記憶體單元
900‧‧‧神經元VMM陣列
901‧‧‧非揮發性記憶體單元的記憶體陣列
902‧‧‧非揮發性參考記憶體單元的參考陣列
903‧‧‧控制閘極線
904‧‧‧抹除閘極線
1000‧‧‧神經元VMM陣列
1001‧‧‧第一非揮發性參考記憶體單元的參考陣列
1002‧‧‧第二非揮發性參考記憶體單元的參考陣列
1003‧‧‧非揮發性記憶體單元的記憶體陣列
1014‧‧‧多工器
1100‧‧‧神經元VMM陣列
1101‧‧‧第一非揮發性參考記憶體單元的參考陣列
1102‧‧‧第二非揮發性參考記憶體單元的參考陣列
1103‧‧‧非揮發性記憶體單元的記憶體陣列
1200‧‧‧神經元VMM陣列
1201‧‧‧第一非揮發性參考記憶體單元的參考陣列
1202‧‧‧第二非揮發性參考記憶體單元的參考陣列
1203‧‧‧非揮發性記憶體單元的記憶體陣列
1204‧‧‧疊接電晶體
1205‧‧‧個別多工器
1212‧‧‧多工器
1300‧‧‧神經元VMM陣列
1301‧‧‧第一非揮發性參考記憶體單元的參考陣列
1302‧‧‧第二非揮發性參考記憶體單元的參考陣列
1303‧‧‧非揮發性記憶體單元的記憶體陣列
1314‧‧‧多工器
1400‧‧‧LSTM
1401‧‧‧單元
1402‧‧‧單元
1403‧‧‧單元
1404‧‧‧單元
1500‧‧‧LSTM單元
1501‧‧‧sigmoid函數裝置
1502‧‧‧sigmoid函數裝置
1503‧‧‧sigmoid函數裝置
1504‧‧‧tanh裝置
1505‧‧‧tanh裝置
1506‧‧‧乘法裝置
1507‧‧‧乘法裝置
1508‧‧‧乘法裝置
1509‧‧‧加法裝置
1600‧‧‧LSTM單元
1601‧‧‧VMM陣列
1602‧‧‧激勵電路區塊
1700‧‧‧LSTM單元
1701‧‧‧VMM陣列
1702‧‧‧激勵函數區塊
1703‧‧‧乘法裝置
1704‧‧‧暫存器
1705‧‧‧暫存器
1706‧‧‧暫存器
1707‧‧‧暫存器
1708‧‧‧加法裝置
1709‧‧‧多工器
1710‧‧‧多工器
1800‧‧‧GRU
1801‧‧‧單元
1802‧‧‧單元
1803‧‧‧單元
1804‧‧‧單元
1900‧‧‧GRU單元
1901‧‧‧sigmoid函數裝置
1902‧‧‧sigmoid函數裝置
1903‧‧‧tanh裝置
1904‧‧‧乘法裝置
1905‧‧‧乘法裝置
1906‧‧‧乘法裝置
1907‧‧‧加法裝置
1908‧‧‧互補裝置
2000‧‧‧GRU單元
2001‧‧‧VMM陣列
2002‧‧‧激勵函數區塊
2100‧‧‧GRU單元
2101‧‧‧VMM陣列
2102‧‧‧激勵函數區塊
2103‧‧‧乘法裝置
2104‧‧‧多工器
2105‧‧‧加法裝置
2106‧‧‧暫存器
2107‧‧‧暫存器
2108‧‧‧暫存器
2109‧‧‧互補裝置
2200‧‧‧可組態快閃類比神經形態記憶體系統
2201a‧‧‧巨集區塊
2201b‧‧‧巨集區塊
2201c‧‧‧巨集區塊
2201d‧‧‧巨集區塊
2201e‧‧‧巨集區塊
2201f‧‧‧巨集區塊
2202a‧‧‧神經元輸出區塊
2202b‧‧‧神經元輸出區塊
2202c‧‧‧神經元輸出區塊
2202d‧‧‧神經元輸出區塊
2202e‧‧‧神經元輸出區塊
2202f‧‧‧神經元輸出區塊
2203a‧‧‧激勵電路區塊
2203b‧‧‧激勵電路區塊
2203c‧‧‧激勵電路區塊
2203d‧‧‧激勵電路區塊
2203e‧‧‧激勵電路區塊
2203f‧‧‧激勵電路區塊
2204a‧‧‧水平多工器
2204b‧‧‧水平多工器
2204c‧‧‧水平多工器
2204d‧‧‧水平多工器
2205a‧‧‧垂直多工器
2205b‧‧‧垂直多工器
2205c‧‧‧垂直多工器
2206a‧‧‧交叉多工器
2206b‧‧‧交叉多工器
2250‧‧‧控制器或控制邏輯
2251‧‧‧數位至類比轉換區塊
2252‧‧‧類比至數位轉換區塊
2300‧‧‧可組態快閃類比神經記憶體系統
2301a‧‧‧巨集區塊
2301b‧‧‧巨集區塊
2301c‧‧‧巨集區塊
2301d‧‧‧巨集區塊
2301e‧‧‧巨集區塊
2301f‧‧‧巨集區塊
2302a‧‧‧神經元輸出區塊
2302b‧‧‧神經元輸出區塊
2302c‧‧‧神經元輸出區塊
2303a‧‧‧激勵電路區塊
2303b‧‧‧激勵電路區塊
2303c‧‧‧激勵電路區塊
2303d‧‧‧激勵電路區塊
2303e‧‧‧激勵電路區塊
2303f‧‧‧激勵電路區塊
2304a‧‧‧水平多工器
2304b‧‧‧水平多工器
2304c‧‧‧水平多工器
2304d‧‧‧水平多工器
2305a‧‧‧垂直多工器
2305b‧‧‧垂直多工器
2305c‧‧‧垂直多工器
2305d‧‧‧垂直多工器
2305e‧‧‧垂直多工器
2305f‧‧‧垂直多工器
2306a‧‧‧交叉多工器
2306b‧‧‧交叉多工器
2351‧‧‧數位至類比轉換區塊
2352‧‧‧類比至數位轉換區塊
2400‧‧‧VMM系統
2401‧‧‧VMM陣列
2402‧‧‧低電壓列解碼器
2403‧‧‧高電壓列解碼器
2404‧‧‧低電壓參考行解碼器
2405‧‧‧冗餘陣列
2406‧‧‧冗餘陣列
2407‧‧‧NVR區段
2408‧‧‧參考區段
2409‧‧‧預解碼器
2410‧‧‧位元線多工器
2411‧‧‧巨集控制邏輯
2412‧‧‧巨集類比電路區塊
2413‧‧‧加法器區塊
2414‧‧‧激勵函數區塊
2420‧‧‧巨集區塊
2500‧‧‧可組態陣列
2501‧‧‧子陣列
2502‧‧‧子陣列
2503‧‧‧子陣列
2600‧‧‧神經元輸出加法器區塊
2601a‧‧‧加法器區塊
2601b‧‧‧加法器區塊
2601i‧‧‧加法器區塊
2700‧‧‧可適應神經元電路
2701‧‧‧運算放大器
2702‧‧‧電流源
2703‧‧‧NMOS R_NEU電晶體
2704‧‧‧偏流IBIAS_OPA
2800‧‧‧激勵函數電路
2801‧‧‧PMOS電晶體
2802‧‧‧PMOS電晶體
2803‧‧‧PMOS電晶體
2804‧‧‧PMOS電晶體
2805‧‧‧PMOS電晶體
2806‧‧‧PMOS電晶體
2807‧‧‧NMOS電晶體
2808‧‧‧NMOS電晶體
2809‧‧‧NMOS電晶體
2810‧‧‧NMOS電晶體
2900‧‧‧運算放大器
2901‧‧‧PMOS電晶體
2902‧‧‧PMOS電晶體
2903‧‧‧NMOS電晶體
2904‧‧‧NMOS電晶體
2905‧‧‧PMOS電晶體
2906‧‧‧NMOS電晶體
2907‧‧‧NMOS電晶體
2908‧‧‧NMOS電晶體
3000‧‧‧高電壓產生區塊
3001‧‧‧電荷幫浦
3002‧‧‧電荷幫浦穩壓器
3003‧‧‧高電壓運算放大器
3004‧‧‧控制邏輯區塊
3005‧‧‧類比電路區塊
3006‧‧‧偏流產生器
3007‧‧‧電壓產生器
3008‧‧‧測試區塊
3100‧‧‧程式化及感測區塊
3101a‧‧‧程式化及感測電路區塊
3101b‧‧‧程式化及感測電路區塊
3101j‧‧‧程式化及感測電路區塊
3200‧‧‧參考系統
3201‧‧‧低電壓列解碼器
3202‧‧‧參考陣列
3203‧‧‧高電壓列解碼器
3204‧‧‧低電壓參考行解碼器
3301‧‧‧字元線解碼電路
3302‧‧‧PMOS選擇電晶體
3303‧‧‧NMOS不選電晶體
3304‧‧‧源極線解碼電路
3305‧‧‧NMOS監控電晶體
3306‧‧‧驅動電晶體
3307‧‧‧不選電晶體
3308‧‧‧高電壓位準移位器
3401‧‧‧抹除閘極解碼電路
3404‧‧‧控制閘極解碼電路
3407‧‧‧源極線解碼電路
3411‧‧‧高電壓位準移位器
3500‧‧‧可適應神經元電路
3501‧‧‧開關
3502‧‧‧開關
3503‧‧‧開關
3504‧‧‧開關
3505‧‧‧電流源
3506‧‧‧可變電阻器
3600‧‧‧電流取樣保持S/H電路
3601‧‧‧輸入電流
3602‧‧‧取樣開關
3603‧‧‧取樣開關
3604‧‧‧輸入電晶體
3605‧‧‧S/H電容器
3606‧‧‧輸出電晶體
3650‧‧‧電壓取樣保持S/H電路
3652‧‧‧取樣開關
3653‧‧‧S/H電容器
3654‧‧‧運算放大器
3700‧‧‧系統
3701‧‧‧輸入區塊
3702‧‧‧輸出區塊
3703‧‧‧記憶體單元陣列
BL0-BLN‧‧‧位元線
BLR0‧‧‧端子
BLR1‧‧‧端子
BLR2‧‧‧端子
BLR3‧‧‧端子
c0‧‧‧單元狀態向量
c1‧‧‧單元狀態向量
c2‧‧‧單元狀態向量
CG0‧‧‧電壓輸入(控制閘極線)
CG1‧‧‧電壓輸入(控制閘極線)
CG2‧‧‧電壓輸入(控制閘極線)
CG3‧‧‧電壓輸入(控制閘極線)
EG0‧‧‧EG線
EG1‧‧‧EG線
EGR0‧‧‧EG線
EGR1‧‧‧EG線
EN‧‧‧致能信號
h0‧‧‧輸出向量
h1‧‧‧輸出向量
h2‧‧‧輸出向量
h3‧‧‧輸出向量
HV‧‧‧高電壓信號
HVO‧‧‧信號
HVO_B‧‧‧信號
IBIAS‧‧‧電流
Iout_neu‧‧‧電流
I_neu_max‧‧‧電流
I_NEU‧‧‧電流
I_NEURON‧‧‧電流
MONHV_PAD‧‧‧測試墊
R_NEU‧‧‧有效電阻
SL0‧‧‧源極線
SL1‧‧‧源極線
TRBIT_WL‧‧‧修剪位元
VCONTROL‧‧‧信號
Vin+、Vin-‧‧‧輸入電壓對
Vout‧‧‧輸出
VO‧‧‧輸出
VREF‧‧‧電壓源
WL0‧‧‧電壓輸入(字元線)
WL1‧‧‧電壓輸入(字元線)
WL2‧‧‧電壓輸入(字元線)
WL3‧‧‧電壓輸入(字元線)
WLA0‧‧‧字元線
WLA1‧‧‧字元線
WLA2‧‧‧字元線
WLA3‧‧‧字元線
WLB0‧‧‧字元線
WLB1‧‧‧字元線
WLB2‧‧‧字元線
WLB3‧‧‧字元線
x0‧‧‧輸入向量
x1‧‧‧輸入向量
x2‧‧‧輸入向量
x3‧‧‧輸入向量
圖1係說明習知技藝的人工神經網路之示圖。
圖2係傳統的2-閘極非揮發性記憶體單元的剖面側視圖。
圖3係傳統的4-閘極非揮發性記憶體單元的剖面側 視圖。
圖4係傳統的3-閘極非揮發性記憶體單元的剖面側視圖。
圖5係另一個傳統的2-閘極非揮發性記憶體單元的剖面側視圖。
圖6係說明利用非揮發性記憶體陣列之示例性人工神經網路的不同層級之示圖。
圖7係說明向量矩陣乘法的方塊圖。
圖8係說明向量矩陣乘法的各種層級之方塊圖。
圖9描繪向量矩陣乘法的另一個具體例。
圖10描繪向量矩陣乘法的另一個具體例。
圖11描繪向量矩陣乘法的另一個具體例。
圖12描繪向量矩陣乘法的另一個具體例。
圖13描繪向量矩陣乘法的另一個具體例。
圖14描繪習知技藝的長短期記憶體系統。
圖15描繪習知技藝的長短期記憶體系統中之一個示例性單元。
圖16描繪圖15的長短期記憶體系統中之示例性單元的實施。
圖17描繪圖15的長短期記憶體系統中之示例性單元的另一個實施。
圖18描繪習知技藝的閘控遞歸單元系統(gated recurrent unit system)。
圖19描繪習知技藝的閘控遞歸單元系統中之一個示 例性單元。
圖20描繪圖19的閘控遞歸單元系統中之示例性單元的實施。
圖21描繪圖19的閘控遞歸單元系統中之示例性單元的另一個實施。
圖22描繪可組態快閃類比神經記憶體系統。
圖23描繪另一個可組態快閃類比神經記憶體系統。
圖24描繪圖22或23的可組態快閃類比神經記憶體系統中之向量矩陣乘法(VMM)子系統。
圖25描繪圖24的VMM子系統中之可組態VMM陣列。
圖26描述圖24的VMM子系統中之可組態加法器區塊。
圖27描繪在圖22或23的可組態快閃類比神經記憶體系統中使用的可適應神經元。
圖28描繪在圖22或23的可組態快閃類比神經記憶體系統中使用的激勵函數電路。
圖29描繪在圖27的可適應神經元中使用的運算放大器。
圖30描繪與圖22或23的可組態快閃類比神經記憶體系統中使用的向量矩陣乘法陣列結合使用之各種區塊。
圖31描繪在圖22或23的可組態快閃類比神經記憶體系統中使用的程式化及感測區塊。
圖32描繪在圖22或23的可組態快閃類比神經記憶 體系統中使用的參考陣列系統。
圖33描繪在圖22或23的可組態快閃類比神經記憶體系統中使用的解碼電路。
圖34描繪在圖22或23的可組態快閃類比神經記憶體系統中使用的解碼電路。
圖35描繪可適應輸出神經元電路。
圖36描繪取樣保持電路。
圖37描繪適用於在線性區域中操作之記憶體單元的陣列架構。
本發明的人工神經網路利用CMOS技術與非揮發性記憶體陣列的組合。
非揮發性記憶體單元
數位非揮發性記憶體係眾所周知的。例如,美國專利第5,029,130號(「'130專利」)揭露一種分離式閘極非揮發性記憶體單元(快閃記憶體單元)陣列,並且出於各種目的以提及方式將其併入本文。這樣的記憶體單元210顯示在圖2中。每個記憶體單元210包括在半導體基板12中形成之源極區域14及汲極區域16,並且在其間具有通道區域18。浮動閘極20形成在通道區域18的第一部分上方且與其絕緣(並控制其導電性),並且形成在源極區域14的一部分上方。字元線端子22(通常耦接至字元線)具有第一部分及第二部分,其中第一部分設置在通道區域18的第二部分上方且與其絕緣(並控制其導電性),而第二部分向上延伸且在浮動閘極20上方。浮動閘極20及字元線端子22藉由閘極氧化物與基板12絕緣。位元 線24耦接至汲極區域16。
藉由在字元線端子22上施加高正電壓來抹除記憶體單元210(其中從浮動閘極移除電子),這導致浮動閘極20上的電子藉由富爾-諾罕穿隧(Fowler-Nordheim tunneling)從浮動閘極20隧穿中間絕緣體至字元線端子22。
藉由在字元線端子22上施加正電壓及在源極14上施加正電壓來程式化記憶體單元210(其中在浮動閘極上放置電子)。電子流將從源極14流向汲極16。當電子到達字元線端子22與浮動閘極20之間的間隙時,電子將加速並變熱。由於來自浮動閘極20的靜電吸引力,一些加熱的電子將通過閘極氧化物被引入至浮動閘極20上。
藉由在汲極區域16及字元線端子22上施加正讀取電壓(這會導通在字元線端子下方之通道區域18部分)來讀取記憶體單元210。如果浮動閘極20帶正電(亦即,被抹除電子),則浮動閘極20下方之通道區域18的部分亦導通,並且電流將流過通道區域18,因而被感測為抹除狀態或狀態「1」。如果浮動閘極20帶負電(亦即,用電子來程式化),則浮動閘極20下方之通道區域的部分大部分或完全截止,並且電流不會流過(或者幾乎不流過)通道區域18,因而被感測為程式化狀態或狀態「0」。
表1描繪可以施加至記憶體單元210的端子以執行讀取、抹除及程式化操作的典型電壓範圍:
Figure 108129490-A0101-12-0008-1
其它分離式閘極記憶體單元構造係其它種類的快閃記憶體單元且係已知的。例如,圖3描繪4-閘極記憶體單元310,其包括源極區域14、汲極區域16、在通道區域18的第一部分上方之浮動閘極20、在通道區域18的第二部分上方之選擇閘極22(通常耦接至字元線WL)、在浮動閘極20上方之控制閘極28以及在源極區域14上方之抹除閘極30。這種構造被描述在美國專利第6,747,310號中,為了各種目的以提及方式將其併入本文。這裡,除浮動閘極20外,所有其它閘極皆是非浮動閘極,這意味著它們電連接或可連接至電壓源。藉由將加熱的電子從通道區域18引入至浮動閘極20上來執行程式化。藉由電子從浮動閘極20隧穿至抹除閘極30來執行抹除。
表2描繪可以施加至記憶體單元310的端子以執行讀取、抹除及程式化操作的典型電壓範圍:
Figure 108129490-A0101-12-0008-2
圖4描繪3-閘極記憶體單元410,其為另一種快閃記憶體單元。除記憶體單元410不具有單獨的控制閘極外,記憶體單 元410與圖3的記憶體單元310相同。除沒有施加控制閘極偏壓外,抹除操作(藉由抹除閘極的使用來抹除)及讀取操作相似於圖3的操作。程式化操作亦在沒有控制閘極偏壓的情況下完成,結果,在程式化操作期間必須在源極線上施加較高電壓,以補償控制閘極偏壓的缺少。
表3描繪可以施加至記憶體單元410的端子以執行讀取、抹除及程式化操作的典型電壓範圍:
Figure 108129490-A0101-12-0009-3
圖5描繪堆疊式閘極記憶體單元510,其為另一種快閃記憶體單元。除浮動閘極20在整個通道區域18上方延伸及控制閘極22(在此將耦接至字元線)在浮動閘極20上方延伸且以絕緣層(未顯示)隔開外,記憶體單元510相似於圖2的記憶體單元210。抹除、程式化及讀取操作以與先前針對記憶體單元210所描述之方式相似的方式來進行。
表4描繪可以施加至記憶體單元510的端子及基板12以執行讀取、抹除及程式化操作的典型電壓範圍:
Figure 108129490-A0101-12-0009-4
為了在人工神經網路中利用包括上述類型的非揮發性記憶體單元中之一的記憶體陣列,實施兩種修改。第一,如下面進一步說明,線路構造成使得每個記憶體單元可以個別地被程式化、抹除及讀取,而不會不利地影響陣列中之其它記憶體單元的記憶狀態。第二,提供記憶體單元的連續(類比)程式化。
具體地,陣列中之每個記憶體單元的記憶狀態(亦即,浮動閘極上的電荷)可以獨立地且以對其它記憶體單元的最小干擾從完全抹除狀態連續地變成完全程式化狀態。在另一個具體例中,陣列中之每個記憶體單元的記憶狀態(亦即,浮動閘極上的電荷)可以獨立地且以對其它記憶體單元的最小干擾從完全程式化狀態連續地變成完全抹除狀態,反之亦然。這意味著單元儲存係類比的,或者至少可以儲存許多離散值(例如,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的第一突觸確定及提供單一輸出值,以便產生數層特徵圖(feature map)C1中之一層的一個像素。然後,在輸入層S0內將3×3濾波器向右移動一個像素(亦即,添加在右側之三個像素的行及丟棄在左側之三個像素的行),藉以將這個新定位的濾波器中之9個像素值提供給突觸CB1,在那裡將它們乘以相同的權重,並且由相關的突觸確定第二單一輸出值。持續這個過程,直到3×3濾波器針對所有三種顏色及所有位元(精度值)掃描整個32×32像素影像為止。然後,使用不同組的權重重複這個過程,以產生C1的一個不同特徵圖,直到已經計算層C1的所有特徵圖為止。
在層C1處,在本實例中,具有16個特徵圖,每個特徵圖有30×30像素。每個像素是從輸入與核心相乘得到之新特徵像素,因此每個特徵圖是二維陣列,因此在這個實例中,層C1構成16層二維陣列(記住這裡引用的層及陣列是邏輯關係,不一定是實體關係-亦即,陣列不一定以實體二維陣列來定向)。層C1中之16個特徵圖的每個特徵圖由應用於濾波器掃描之16組不同的突觸權重中之一組來產生。C1特徵圖可以全部有關於諸如邊界識別之同一個影像特徵的不同態樣。例如,第一圖(使用第一組權重所產生,第一組權重對用於產生此第一圖的所有掃描係共享的)可以識別圓形邊緣,第二圖(使用與第一組權重不同的第二組權重所產生) 可以識別矩形邊緣或某些特徵的縱橫比等等。
在從層C1到層S1之前應用激勵函數P1(池化(pooling)),其對來自每個特徵圖中之連續的非重疊2×2區域的數值進行池化。池化函數的目的是算出附近位置的平均值(或者亦可以使用最大值函數),以減少例如邊緣位置的依賴性及在進入下一階段之前減小資料大小。在層S1處,具有16個15×15特徵圖(亦即,16個不同陣列,每個陣列有15×15像素)。從層S1到層C2的突觸CB2用4×4濾波器掃描S1中之圖,並且有一個像素的濾波器移位。在層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可以提供sigmoid、tanh或ReLU函數。激勵函數電路39之經整流的輸出值變成作為下一層(例如,圖6中之C1)之特徵圖的元素,然後應用於下一個突觸,以產生下一個特徵圖層或最後一層。因此,在此實例中,非揮發性記憶體單元陣列33構成複數個突觸(其從先前的神經元層或從諸如影像資料庫的輸入層接收它們的輸入),並且求和運算放大器38及激勵函數電路39構成複數個神經元。
圖7中至VMM陣列32的輸入(WLx、EGx、CGx以及任選的BLx及SLx)可以是類比位準、二進制位準或數位位元(在這種情況下,提供DAC,以將數位位元轉換為適當的輸入類比位準),並且輸出可以是類比位準、二進制位準或數位位元(在這種情況下,提供輸出ADC,以將輸出類比位準轉換為數位位元)。
圖8係描繪許多層的VMM陣列32之使用的方塊圖,這裡標記為VMM陣列32a、32b、32c、32d及32e。如圖8所示,藉由數位至類比轉換器31將輸入(表示為Inputx)從數位轉換成類比,並提供至輸入VMM陣列32a。經轉換的類比輸入可以是電壓或電流。用於第一層的輸入D/A轉換可以藉由使用函數或LUT(查找表)來完成,其中LUT(查找表)將輸入Inputx映射至用於輸入VMM陣列32a的矩陣乘數之適當類比位準。輸入轉換亦可以藉由類比至類比(A/A)轉換器來完成,以將外部類比輸入轉換成輸入VMM陣列32a的映射類比輸入。
由輸入VMM陣列32a產生的輸出作為輸入以提供給下一個VMM陣列(隱藏層級1)32b,其轉而產生作為輸入以提供給下一個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的抹除閘極線在水平方向延伸。這裡,在控制閘極線(CG0、CG1、CG2、CG3)上提供對VMM陣列900的輸入,而VMM陣列900的輸出出現在源極線(SL0、SL1)上。在一個具體例中,僅使用偶數列,而在另一個具體例中,僅使用奇數列。在每條源極線(SL0、SL1)上之電流執行來自連接至那條特定源極線之記憶體單元的所有電流之求和函數。
如本文針對神經網路所述,VMM陣列900的非揮發性記憶體單元(亦即,VMM陣列900的快閃記憶體)較佳地構造成在次臨界區域中操作。
在弱倒轉中施加偏壓於本文所述之非揮發性參考記憶體單元及非揮發性記憶體單元:
Ids=Io*e(Vg-Vth)/kVt=w*Io*e(Vg)/kVt,
其中w=e(-Vth)/kVt
對於使用記憶體單元(例如,參考記憶體單元或周邊 記憶體單元)或電晶體將輸入電流轉換成輸入電壓之I至V對數轉換器:
Vg=k*Vt*log[Ids/wp*Io]在此,wp係參考或周邊記憶體單元的w。
對於用作向量矩陣乘法VMM陣列的記憶體陣列,輸出電流為:
Iout=wa*Io*e(Vg)/kVt,亦即
Iout=(wa/wp)*Iin=W*Iin
W=e(Vthp-Vtha)/kVt在此,wa=記憶體陣列中之每個記憶體單元的w。
字元線或控制閘極可用以作為用於輸入電壓之記憶體單元的輸入。
或者,本文所述之VMM陣列的快閃記憶體單元可以構造成在線性區域中操作:
Ids=beta*(Vgs-Vth)*Vds;beta=u*Cox*W/L
W=α(Vgs-Vth)
字元線或控制閘極或位元線或源極線可用以作為用於輸入電壓之在線性區域中操作的記憶體單元之輸入。
對於I至V線性轉換器,在線性區域中操作的記憶體單元(例如,參考記憶體單元或周邊記憶體單元)或電晶體可以用於將輸入/輸出電流線性地轉換成輸入/輸出電壓。
在美國專利申請案第15/826,345號中描述圖7的VMM陣列32之其它具體例,在此以提及方式將其併入本文。如上面申請案所述,源極線或位元線可用以作為神經元輸出(電流總和 輸出)。
圖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的操作電壓。表中之行表示在被選單元的字元線、未被選單元的字元線、被選單元的位元線、未被選單元的位元線、被選單元的源極線及未被選單元的源極線上之電壓。列表示讀取、抹除及程式化的操作。
Figure 108129490-A0101-12-0018-5
圖11描繪神經元VMM陣列1100,其特別適用於圖2所示之記憶體單元210,並且用作輸入層與下一層之間的突觸及神經元的部件。VMM陣列1100包括非揮發性記憶體單元的記憶體陣列1103、第一非揮發性參考記憶體單元的參考陣列1101及第二非揮發性參考記憶體單元的參考陣列1102。參考陣列1101及1102在VMM陣列1100的列方向上延伸。除在VMM陣列1100中,字元線在垂直方向上延伸外,VMM陣列與VMM 1000相似。這裡,在字元線(WLA0、WLB0、WLA1、WLB1、WLA2、WLB2、WLA3、WLB3)上提供輸入,並且在讀取操作期間輸出出現在源極線(SL0、SL1)上。在每條源極線上之電流執行來自連接至那條特定源極線之記憶體單元的所有電流之求和函數。
表6描繪VMM陣列1100的操作電壓。表中之行表示在被選單元的字元線、未被選單元的字元線、被選單元的位元 線、未被選單元的位元線、被選單元的源極線及未被選單元的源極線上之電壓。列表示讀取、抹除及程式化的操作。
Figure 108129490-A0101-12-0019-6
圖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的操作電壓。表中之行表示在被選單元的字元線、未被選單元的字元線、被選單元的位元線、未被選單元的位元線、被選單元的控制閘極、與被選單元相同的區段中之未被選單元的控制閘極、與被選單元不同的區段中之未被選單元的控制閘極、被選單元的抹除閘極、未被選單元的抹除閘極、被選單元的源極線及未被選單元的源極線上之電壓。列表示讀取、抹除及程式化的操作。
Figure 108129490-A0101-12-0021-7
圖13描繪神經元VMM陣列1300,其特別適用於圖3所示之記憶體單元310,並且用作輸入層與下一層之間的突觸及神經元的部件。VMM陣列1300包括非揮發性記憶體單元的記憶體陣列1303、第一非揮發性參考記憶體單元的參考陣列1301及第二非揮發性參考記憶體單元的參考陣列1302。EG線EGR0、EG0、EG1及EGR1垂直延伸,而CG線CG0、CG1、CG2及CG3以及SL線WL0、WL1、WL2及WL3水平延伸。除VMM陣列1300實施雙向調整外,VMM陣列1300與VMM陣列1200相似,其中每個個別單元可以完全被抹除、部分被程式化及根據需要部分被抹除,以因個別EG線的使用而在浮動閘極上達到所需的電荷量。如圖所示,參考陣列1301及1302將端子BLR0、BLR1、BLR2及BLR3中之輸入電流轉換成要施加至列方向上的記憶體單元之控制閘極電壓CG0、CG1、CG2及CG3(藉由以二極體形式經由多工器1314連接之參考單元的作用)。電流輸出(神經元)位於位元線BL0-BLN中,其中每條位元線計算來自與那個特定位元線連接之非揮發性記憶體單元的所有電流之總和。
表8描繪VMM陣列1300的操作電壓。表中之行表示在被選單元的字元線、未被選單元的字元線、被選單元的位元 線、未被選單元的位元線、被選單元的控制閘極、與被選單元相同的區段中之未被選單元的控制閘極、與被選單元不同的區段中之未被選單元的控制閘極、被選單元的抹除閘極、未被選單元的抹除閘極、被選單元的源極線及未被選單元的源極線上之電壓。列表示讀取、抹除及程式化的操作。
Figure 108129490-A0101-12-0022-8
長短期記憶體
習知技藝包括稱為長短期記憶體(LSTM)的概念。LSTM單元通常用於神經網路中。LSTM允許神經網路在預定任意時間間隔內記住資訊,並在後續操作中使用那個資訊。傳統的LSTM單元包括單元、輸入閘極、輸出閘極及忘記閘極。三個閘極控制進出單元的資訊流及在LSTM中記住資訊的時間間隔。VMM在LSTM單位中係特別有用的。
圖14描繪示例性LSTM 1400。此實例中的LSTM 1400包括單元1401、1402、1403及1404。單元1401接收輸入向量x0,並產生輸出向量h0及單元狀態向量c0。單元1402接收輸入向量x1、來自單元1401的輸出向量(隱藏狀態)h0及單元狀態c0,並產生輸出向量h1及單元狀態向量c1。單元1403接收輸入向量x2、來自單元1402的輸出向量(隱藏狀態)h1及單元狀態c1,並產生輸出 向量h2及單元狀態向量c2。單元1404接收輸入向量x3、來自單元1403的輸出向量(隱藏狀態)h2及單元狀態c2,並產生輸出向量h3。可以使用額外的單元,並且具有四個單元的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包括sigmoid函數裝置1501、1502及1503,每個sigmoid函數裝置應用0與1之間的數字,以控制輸入向量中之每個分量有多少被允許直至輸出向量。LSTM單元1500亦包括用以將雙曲正切函數應用於輸入向量的tanh裝置1504及1505、用以將兩個向量相乘的乘法裝置1506、1507及1508以及用以將兩個向量相加的加法裝置1509。輸出向量h(t)可以提供給系統中的下一個LSTM單元,或者亦可以出於其它目的對其進行存取。
圖16描繪LSTM單元1600,其是LSTM單元1500的實施之一個實例。為方便讀者,在LSTM單元1600中使用與LSTM單元1500相同的編號。Sigmoid函數裝置1501、1502及1503以及tanh裝置1504各自包括多個VMM陣列1601及激勵電路區塊1602。因此,可以看出VMM陣列在某些神經網路系統中使用之LSTM單元中係特別有用的。
圖17顯示LSTM單元1600的一個替代方案(以及LSTM單元1500實施的另一個實例)。在圖17中,sigmoid函數裝置1501、1502及1503以及tanh裝置1504以時間多工方式共享同 一個實體硬體(VMM陣列1701及激勵函數區塊1702)。LSTM單元1700亦包括:乘法裝置1703,用於將兩個向量相乘;加法裝置1708,用於將兩個向量相加;tanh裝置1505(其包括激勵電路區塊1702);暫存器1707,其在i(t)從sigmoid函數區塊1702輸出時儲存數值i(t);暫存器1704,其在數值f(t)*c(t-1)從乘法裝置1703經由多工器1710輸出時儲存數值f(t)*c(t-1);暫存器1705,其在數值i(t)*u(t)從乘法裝置1703經由多工器1710輸出時儲存數值i(t)*u(t);及暫存器1706,其在數值o(t)*c~(t)從乘法裝置1703經由多工器1710輸出時儲存數值o(t)*c~(t);以及多工器1709。
LSTM單元1600包含多組VMM陣列1601及個別的激勵函數區塊1602,而LSTM單元1700僅包含一組VMM陣列1701及激勵函數區塊1702,它們在LSTM單元1700的具體例中用於表示多層。LSTM單元1700將需要比LSTM單元1600少的空間,因為相較於LSTM單元1600,LSTM單元1700只需要1/4空間用於VMM及激勵函數區塊。
可以進一步理解,LSTM單元通常將包括多個VMM陣列,每個VMM陣列需要由VMM陣列外部的某些電路區塊(例如,加法器及激勵電路區塊以及高電壓產生區塊)提供的功能。對每個VMM陣列提供個別的電路區塊,將在半導體裝置內需要大量的空間,並且會有些沒有效率。因此,下面所描述的具體例試圖最小化VMM陣列本身外部所需的電路。
閘控遞歸單元
可以將類比VMM實施用於GRU(閘控遞歸單元)系統。GRU係遞歸神經網路中的閘控機制。除GRU單元通常包含比 LSTM單元少的組件外,GRU與LSTM相似。
圖18描繪示例性GRU 1800。此實例中之GRU 1800包括單元1801、1802、1803及1804。單元1801接收輸入向量x0,並產生輸出向量h0。單元1802接收輸入向量x1及來自單元1801的輸出向量(隱藏狀態)h0,並產生輸出向量h1。單元1803接收輸入向量x2及來自單元1802的輸出向量(隱藏狀態)h1,並產生輸出向量h2。單元1804接收輸入向量x3及來自單元1803的輸出向量(隱藏狀態)h2,並產生輸出向量h3。可以使用額外的單元,並且具有四個單元的GRU僅是一個實例。
圖19描繪GRU單元1900的示例性實施,其可以用於圖18之單元1801、1802、1803及1804。GRU單元1900接收輸入向量x(t)及來自前一個GRU單元之輸出向量h(t-1),並產生輸出向量h(t)。GRU單元1900包括sigmoid函數裝置1901及1902,每個sigmoid函數裝置應用0與1之間的數字於來自輸出向量h(t-1)及輸入向量x(t)的分量。GRU單元1900亦包括用以將雙曲正切函數應用於輸入向量的tanh裝置1903、用以將兩個向量相乘的複數個乘法裝置1904、1905及1906、用以將兩個向量相加的加法裝置1907以及用以從1減去輸入來產生輸出的互補裝置1908。
圖20描繪GRU單元2000,其是GRU單元1900的實施之一個實例。為方便讀者,在GRU單元2000中使用與GRU單元1900相同的編號。從圖20可以看出,sigmoid函數裝置1901及1902以及tanh裝置1903各自包括多個VMM陣列2001及激勵函數區塊2002。因此,可以看出VMM陣列特別用於某些神經網路系統中使用之GRU單元中。
圖21顯示GRU單元2000的一個替代方案(以及GRU單元1900實施的另一個實例)。在圖21中,GRU單元2100利用VMM陣列2101及激勵函數區塊2102,激勵函數區塊2102在構造成為sigmoid函數時應用0與1之間的數字,以控制輸入向量中之每個分量有多少被允許直至輸出向量。在圖21中,sigmoid函數裝置1901及1902以及tanh裝置1903以時間多工方式共享同一個實體硬體(VMM陣列2101及激勵函數區塊2102)。GRU單元2100亦包括:乘法裝置2103,用於將兩個向量相乘;加法裝置2105,用於將兩個向量相加;互補裝置2109,用於從1減去輸入,以產生輸出;多工器2104;暫存器2106,用於在數值h(t-1)*r(t)從乘法裝置2103經由多工器2104輸出時,保持數值h(t-1)*z(t);暫存器2107,用於在數值h(t-1)*z(t)從乘法裝置2103經由多工器2104輸出時,保持數值h(t-1)*z(t);以及暫存器2108,用於在數值h^(t)*(1-z(t))從乘法裝置2103經由多工器2104輸出時,保持數值h^(t)*(1-z(t))。
GRU單元2000包含多組VMM陣列2001及激勵函數區塊2002,而GRU單元2100僅包含一組VMM陣列2101及激勵函數區塊2102,它們在GRU單元2100的具體例中用於表示多層。GRU單元2100將需要比GRU單元2000少的空間,因為相較於GRU單元2000,GRU單元2100只需要1/3空間用於VMM及激勵函數區塊。
可以進一步理解,GRU系統通常將包括多個VMM陣列,每個VMM陣列需要由VMM陣列外部的某些電路區塊(例如,加法器及激勵電路區塊以及高電壓產生區塊)提供的功能。對每個VMM陣列提供個別的電路區塊,將在半導體裝置內需要大量 的空間,並且會有些沒有效率。因此,下面所描述的具體例試圖最小化VMM陣列本身外部所需的電路。
VMM陣列的輸入可以是類比位準、二進制位準或數位位元(在這種情況下,需要DAC將數位位元轉換為適當的輸入類比位準),以及輸出可以是類比位準、二進制位準或數位位元(在這種情況下,需要輸出ADC將輸出類比位準轉換為數位位元)。
對於一個VMM陣列中之每個記憶體單元,每個權重w可以由單一記憶體單元或由一個差分單元或由兩個混合記憶體單元(平均2個單元)來實施。在差分單元的情況下,需要兩個記憶體單元來實施權重w成為差分權重(w=w+-w-)。在兩個混合記憶體單元方面,需要兩個記憶體單元來實施權重w成為兩個單元的平均值。
可組態陣列
圖22描繪可組態快閃類比神經形態記憶體系統2200。可組態快閃類比神經記憶體系統2200包括巨集區塊2201a、2201b、2201c、2201d、2201e及2201f;神經元輸出(例如,加法器電路及取樣保持S/H電路)區塊2202a、2202b、2202c、2202d、2202e及2202f;激勵電路區塊2203a、2203b、2203c、2203d、2203e及2203f;水平多工器2204a、2204b、2204c及2204d;垂直多工器2205a、2205b及2205c;以及交叉多工器2206a及2206b。巨集區塊2201a、2201b、2201c、2201d、2201e及2201f中每一者係包含VMM陣列的VMM子系統。
在一個具體例中,神經元輸出區塊2202a、2202b、2202c、2202d、2202e及2202f各自包含緩衝器(例如,運算放大器) 低阻抗輸出型電路,所述電路可以驅動長的可組態互連。在一個具體例中,激勵電路區塊2203a、2203b、2203c、2203d、2203e及2203f提供求和高阻抗電流輸出。或者,神經元輸出區塊2202a、2202b、2202c、2202d、2202e及2202f可以包括激勵電路,在這種情況下,將需要額外的低阻抗緩衝器來驅動輸出。
所屬技術領域之具通常技藝人士應該理解,激勵電路區塊2203a、2203b、2203c、2203d、2203e及2203f只是一種輸入區塊的實例,反而可組態快閃類比神經記憶體系統220可以設計成具有其它輸入區塊來代替激勵電路區塊2203a、2203b、2203c、2203d、2203e及2203f,使得那些區塊成為輸入區塊2203a、2203b、2203c、2203d、2203e及2203f。
在一個具體例中,神經元輸出區塊2202a、2202b、2202c、2202d、2202e及2202f各自包括類比至數位轉換區塊2252,所述類比至數位轉換區塊2252輸出數位位元而不是類比信號。然後,使用圖22的可組態互連來選擇使那些數位位元至期望位置的路線。在此具體例中,激勵電路區塊2203a、2203b、2203c、2203d、2203e及2203f各自包括數位至類比轉換區塊2251,所述數位至類比轉換區塊2251從圖22的互連接收數位位元,並且將數位位元轉換成類比信號。
在使用可組態系統2200來實施LSTM或GRU的情況下,輸出區塊2202a、2202b、2202c、2202d、2202e及2202f及/或輸入區塊2203a、2203b、2203c、2203d、2203e及2203f可以包括LSTM/GRU架構所需的乘法區塊、加法區塊、減法(輸出=1-輸入)區塊,並且任選地可以包括所需的類比取樣保持電路(例如,圖36 中之電路3600或3650)或數位取樣保持電路(例如,暫存器或SRAM)。
藉由組合多個巨集及/或將每個個別巨集配置成僅使神經元輸出及/或輸入電路的部分處於活動狀態,可組態度(configurability)包括輸出向量維度(每個卷積層之輸出的數量,例如,位元線)、輸入向量維度(每個卷積層之輸入的數量,例如,列數)。
在VMM陣列中,可以使用時間多工來啟用多次定時傳遞,以最大化陣列的使用。例如,可以在時間t0啟用(取樣)陣列的前N列或N行,並將其結果保持在t0取樣保持S/H電路中;可以在時間t1啟用接下來的N列或N行,並將其結果保存在t1取樣保持S/H電路中;依此類推。並且,在最終時間tf,適當地組合所有先前的S/H結果,以給出最終輸出。
可以理解,類比神經記憶體系統的一個需求係能夠從一層收集輸出且將其作為輸入提供至另一層。這導致複雜的選路方案,其中可能需要將一個VMM陣列的輸出作為輸入來進行至另一個VMM陣列的選路,而所述之另一個MM陣列不一定與其緊鄰。在圖22中,此選路功能由水平多工器2204a、2204b、2204c及2204d;垂直多工器2205a、2205b及2205c;以及交叉多工器2206a及2206b來提供。使用這些多工器,可以將來自巨集區塊2201a、2201b、2201c、2201d、2201e及2201f中之任何一個巨集區塊的輸出作為輸入來進行至巨集區塊2201a、2201b、2201c、2201d、2201e及2201f中之任何另一個巨集區塊的選路。此功能對於建立可組態系統係至關重要的。
可組態快閃類比神經記憶體系統2200亦包括控制器 或控制邏輯2250。控制器或控制邏輯2250任選地係執行用於實施本文所述之組態的軟體程式碼之微控制器(控制器)或用於實施本文所述之組態的硬體邏輯(控制邏輯),其包括水平多工器2204a、2204b、2204c及2204d;垂直多工器2205a、2205b及2205c;以及交叉多工器2206a及2206b的啟動,以在每個週期實施所需的選路功能。
圖23描繪可組態快閃類比神經記憶體系統2300。可組態快閃類比神經記憶體系統2300包括巨集區塊2301a、2301b、2301c、2301d、2301e及2301f;神經元輸出區塊(例如,加法器電路及採樣保持S/H電路)2302a、2302b及2302c;激勵電路區塊2303a、2303b、2303c、2303d、2303e及2303f;水平多工器2304a、2304b、2304c及2304d;垂直多工器2305a、2305b、2305c、2305d、2305e及2305f;以及交叉多工器2306a及2306b。巨集區塊2301a、2301b、2301c、2301d、2301e及2301f中之每一者係包含VMM陣列的VMM子系統。神經元輸出區塊2302a、2302b及2302c配置成由所有巨集來共享。
可以看出,除圖23的系統具有共享的可組態神經元輸出區塊(亦即,神經元輸出區塊2302a、2302b及2302c)外,圖22及23的系統係相似的。在圖23中,選路功能由水平多工器2304a、2304b、2304c及2304d、垂直多工器2305a、2305b、2305c、2305d、2305e及2305f以及交叉多工器2306a及2306b來提供。使用這些多工器,可以將來自巨集區塊2301a、2301b、2301c、2301d、2301e及2301f中之任何一個巨集區塊的輸出作為輸入來進行至一些其它巨集區塊2301a、2301b、2301c、2301d、2301e及2301f(但不是全 部)的選路。這允許一些可組態度,並且所需的空間比圖22的系統因垂直多工器的不足還少。
神經元輸出區塊2302a、2302b及2302c可以包括電流加法器電路區塊及/或激勵電路區塊。神經元輸出區塊2302a例如可以配置成連接至巨集區塊2301a的輸出或巨集區塊2301d的輸出。或者,神經元輸出區塊2302a例如可以配置成連接至巨集區塊2301a的輸出之一部分及巨集區塊2301d的輸出之一部分。
所屬技術領域之具通常技藝人士應該理解,激勵電路區塊2303a、2303b、2303c、2303d、2303e及2303f只是一種輸入區塊的實例,反而可組態快閃類比神經記憶體系統2300可以設計成使用其它輸入區塊來代替激勵電路區塊2303a、2303b、2303c、2303d、2303e及2303f,使得那些區塊成為輸入區塊2303a、2303b、2303c、2303d、2303e及2303f。
在一個具體例中,神經元輸出區塊2302a、2302b及2302c各自包括類比至數位轉換區塊2352,所述類比至數位轉換區塊2352輸出數位位元而不是類比信號。然後,使用圖23的可組態互連來選擇使那些數位位元至期望位置的路線。在此具體例中,激勵電路區塊2303a、2303b、2303c、2303d、2303e及2303f各自包括數位至類比轉換區塊2351,所述數位至類比轉換區塊2351從圖23的互連接收數位位元,並且將數位位元轉換成類比信號。
在使用可組態系統2300來實施LSTM或GRU的情況下,輸出區塊2302a、2302b、2302c、2302d、2302e及2302f及/或輸入區塊2303a、2303b、2303c、2303d、2303e及2303f可以包括LSTM/GRU架構所需的乘法區塊、加法區塊、減法(輸出=1-輸入) 區塊,並且任選地可以包括所需的類比取樣保持電路(例如,圖36中之電路3600或3650)或數位取樣保持電路(例如,暫存器或SRAM)。
可組態快閃類比神經記憶體系統2300亦包括控制器或控制邏輯2250。如圖21所示,控制器或控制邏輯2250任選地係執行用於實施本文所述之組態的軟體程式碼之微控制器(控制器)或用於實施本文所述之組態的硬體邏輯(控制邏輯),其包括水平多工器2304a、2304b、2304c及2304d;垂直多工器2305a、2305b、2305c、2305d、2305e及2305f;以及交叉多工器2306a及2306b的啟動,以在每個週期實施所需的選路功能。
圖24描繪VMM系統2400。VMM系統2400包括巨集區塊2420(其可以用於實施圖22及23中巨集區塊2201a、2201b、2201c、2201d、2201e、2201f、2301a、2301b、2301c、2301d、2301e及2301f)以及激勵函數區塊2414及加法器區塊2413。
VMM系統2400包括VMM陣列2401、低電壓列解碼器2402、高電壓列解碼器2403及低電壓參考行解碼器2404。低電壓列解碼器2402提供用於讀取及程式化操作的偏壓,並且提供用於高電壓列解碼器2403的解碼信號。高電壓列解碼器2403提供用於程式化及抹除操作的高偏壓信號。
VMM系統2400進一步包括冗餘陣列2405及2406。冗餘陣列2405及2406提供陣列冗餘,以便取代陣列2401中之缺陷部分。VMM系統2400進一步包括NVR(非揮發性暫存器,亦稱為資訊區段)區段2407,其為用於儲存使用者資訊、裝置ID、密碼、安全密鑰、修剪位元(trimbits)、組態位元、製造資訊等的陣列區段。 VMM系統2400進一步包括參考區段2408,用於提供要在感測操作中使用之參考單元;預解碼器2409,用於對解碼器2402、2403及/或2404的位址進行解碼;位元線多工器2410;巨集控制邏輯2411;以及巨集類比電路區塊2412,它們每個在VMM陣列層級(而不是包括所有VMM陣列的系統層級)執行功能。
圖25描繪可以在圖22-24的具體例中使用之陣列可組態度的實例。可組態陣列2500包括M列×N行的陣列。可組態陣列2500可以是包含圖2-5所示之類型的單元之快閃記憶體陣列。在圖22-24的具體例中,每個VMM陣列可以構造成小於可組態陣列2500之有不同大小的一個或多個子陣列。例如,可組態陣列可以分成A列×B行的子陣列2501、C列×D行的子陣列2502及E列×F行的子陣列2503。這種組態可以藉由控制器或控制邏輯2250來實施。一旦建立每個期望的子陣列,控制器或控制邏輯2250就可以配置圖22及23的水平、垂直及交叉多工器,以在適當的時間執行從每個子陣列至適當位置的適當選路。在理想情況下,每個可組態陣列中只有一個子陣列將在時間t的任何給定週期期間被存取(例如,藉由陣列時間多工)。例如,可組態陣列2500中只有一個子陣列將在單個週期期間被存取。然而,這些子陣列可以在不同的時間週期期間被存取,這允許同一個實體陣列提供以時間多工方式使用之多個子陣列。
現在將描述圖22-24所示之電路區塊的具體例之實例。
圖26描繪神經元輸出加法器區塊2600(其可以用作圖22中之神經元輸出加法器區塊2202a、2202b、2202c、2202d、 2202e及2202f;圖23中之神經元輸出加法器區塊2302a、2302b、2302c、2302d、2302e及2302f;以及圖24中之神經元輸出加法器區塊2413)。可以看出,神經元輸出加法器區塊2600包括複數個較小加法器區塊2601a、2601b、...2601i,每個加法器區塊可以在對應的VMM陣列的一部分(例如,陣列中之單一行)上進行運算。控制器或控制邏輯2250可以根據需要在每個週期期間啟動適當的加法器區塊2601a、2601b、...2601i。加法器電路可以實施成為以運算放大器為基礎的加法器電路或電流鏡電路。加法器電路可以包括ADC電路,以將類比轉換成輸出數位位元。
圖27描繪可適應神經元電路2700,其包括運算放大器,運算放大器提供低阻抗輸出,以便計算多個電流信號的總和且將加總的電流信號轉換成電壓信號,並係圖26中之加法器區塊2601a、...2601i內的每個加法器區塊之具體例。可適應神經元電路2700從諸如VMM陣列2401的VMM接收電流(標記為I_NEU),VMM在此表示為電流源2702,所述電流源被提供至運算放大器2701的反相輸入。運算放大器2701的非反相輸入耦接至電壓源(標記為VREF)。運算放大器2701的輸出(標記為VO)耦接至NMOS R_NEU電晶體2703,其充當具有有效電阻R_NEU的可變電阻器,以回應施加至NMOS電晶體2703的閘極之信號VCONTROL。輸出電壓VO等於I_NEU * R_NEU-VREF。I_NEU的最大值取決於VMM中所包含之突觸數量及權重值。R_NEU係可變電阻且可以適應於其所耦接的VMM尺寸。例如,可以藉由改變圖27中之IBIAS及/或VDREF及/或VREF來改變R_NEU。再者,求和運算放大器2701的功率相對於R_NEU電晶體2703的數值來進行調整,以最 小化功率消耗。隨著R_NEU電晶體2703的數值增加,藉由偏流IBIAS_OPA 2704減少運算放大器2701的偏壓(亦即,功率),反之亦然。因為以運算放大器為基礎的加法器電路可以提供低阻抗輸出,所以它適合於構造成驅動較長的互連及較重的負載。
圖28描繪激勵函數電路2800。激勵函數電路2800可以用於圖22中之激勵電路區塊2203a、2203b、2203c、2203d、2203e及2203f以及圖23中之激勵電路區塊2303a、2303b、2303c、2303d、2303e及2303f以及圖24中之激勵區塊2414。
激勵函數電路2800使用tanh函數將輸入電壓對(Vin+及Vin-)轉換成電流(Iout_neu),並且可以與上述VMM陣列一起使用。激勵函數電路2800包括如圖所配置之PMOS電晶體2801、2802、2803、2804、2805及2806以及NMOS電晶體2807、2808、2809及2810。電晶體2803、2804及2806充當疊接電晶體。輸入NMOS對2807及2808在次臨界區域中操作,以實現tanh函數。電流I_neu_max係可以從附接的VMM(未顯示)接收之最大神經元電流。
圖29描繪可以用作圖27中之運算放大器2701的運算放大器2900。運算放大器2900在所示的配置中包括PMOS電晶體2901、2902及2905、NMOS電晶體2903、2904、2906及2907以及用以充當可變偏壓裝置的NMOS電晶體2908。運算放大器2900的輸入端子被標記為Vin+(施加至NMOS電晶體2904的閘極)及Vin-(施加至NMOS電晶體2903的閘極),並且輸出為Vout。
圖30描繪高電壓產生區塊3000、控制邏輯區塊3004、類比電路區塊3005及測試區塊3008。
高電壓產生區塊3000包括電荷幫浦3001、電荷幫浦穩壓器3002及高電壓運算放大器3003。可以根據傳送至電荷幫浦穩壓器3002中之NMOS電晶體的閘極之信號來控制電荷幫浦穩壓器3002的輸出電壓。控制邏輯區塊3004接收控制邏輯輸入並產生控制邏輯輸出。類比電路區塊3005包括偏流產生器3006,用於接收參考電壓VREF並產生如別處所使用之可用於施加偏壓信號的電流IBIAS。類比電路區塊3005亦包括電壓產生器3007,用於接收一組修剪位元TRBIT_WL,並且產生在各種操作期間施加至字元線的電壓。測試區塊3008在測試墊(test pad)MONHV_PAD上接收信號,並且輸出各種信號,以供設計者在測試期間進行監控。
圖31描繪程式化及感測區塊3100,其可以在程式化及驗證操作期間使用。程式化及感測區塊3100包括複數個個別的程式化及感測電路區塊3101a、3101b、...3101j。控制器或控制邏輯2250可以根據需要在每個週期期間啟動適當的程式化及感測電路區塊3101a、3101b、...3101j。
圖32描繪參考系統3200,其可用以代替圖24中之參考區段2408。參考系統3200包括參考陣列3202、低電壓列解碼器3201、高電壓列解碼器3203及低電壓參考行解碼器3204。低電壓列解碼器3201為讀取及程式化操作提供偏壓,並且提供用於高電壓列解碼器3203之解碼信號。高電壓列解碼器3203為程式化及抹除操作提供高偏壓信號。
圖33描繪VMM高電壓解碼電路,其包括字元線解碼電路3301、源極線解碼電路3304及高電壓位準移位器3308,它們適用於圖2所示之類型的記憶體單元。
字元線解碼電路3301包括如圖所配置之PMOS選擇電晶體3302(由信號HVO_B控制)及NMOS不選電晶體3303(由信號HVO_B控制)。
源極線解碼電路3304包括如圖所配置之NMOS監控電晶體3305(由信號HVO控制)、驅動電晶體3306(由信號HVO控制)及不選電晶體3307(由信號HVO_B控制)。
高電壓位準移位器3308接收致能信號EN及輸出高電壓信號HV及其互補信號HVO_B。
圖34描繪VMM高電壓解碼電路,其包括抹除閘極解碼電路3401、控制閘極解碼電路3404、源極線解碼電路3407及高電壓位準移位器3411,它們適用於圖3所示之類型的記憶體單元。
抹除閘極解碼電路3401及控制閘極解碼電路3404使用與圖33中之字元線解碼電路3301相同的設計。
源極線解碼電路3407使用與圖33中之源極線解碼電路3304相同的設計。
高電壓位準移位器3411使用與圖33中之高電壓位準移位器3308相同的設計。
圖35描繪將輸出神經元電流轉換成電壓之可適應神經元電路3500。可適應神經元電路3500僅使用一個PMOS電晶體3501,並且實質上構造成使用開關3502、3503及3504對其自身進行鏡射(亦即,取樣保持鏡)。最初,關閉開關3502及開關3503,而打開開關3504,這時PMOS電晶體3501耦接至I_NEURON,I_NEURON係代表來自VMM的電流之電流源3505。然後,打開開 關3502及3503,而關閉開關3504,這使PMOS電晶體3501從其汲極傳送電流I_NEURON至可變電阻器3506。因此,可適應神經元3500將電流信號(I_NEURON)轉換成電壓信號(VO)。基本上,電晶體3501對電流I_NEURON進行取樣並藉由在其閘極上儲存取樣的閘極-源極電壓來保持電流。運算放大器電路可用於緩衝輸出電壓VO,以驅動可組態互連。
圖36描繪電流取樣保持S/H電路3600及電壓取樣保持S/H電路3650。電流S/H電路3600包括取樣開關3602及3603、S/H電容器3605、輸入電晶體3604以及輸出電晶體3606。輸入電晶體3604用於將輸入電流3601轉換成S/H電容器3605上的S/H電壓,並且耦接至輸出電晶體3606的閘極。電壓S/H電路3650包括取樣開關3652、S/H電容器3653以及運算放大器3654。運算放大器3654用於緩衝電容器3653上的S/H電壓。S/H電路3600及3650可以用於在此所述之輸出加法器電路及/或激勵電路。在一個替代具體例中,可以使用數位取樣保持電路來代替類比取樣保持電路3600及3650。
圖37顯示適合於在線性區域中操作之記憶體單元的陣列架構。系統3700包括輸入區塊3701、輸出區塊3702及記憶體單元陣列3703。輸入區塊3701耦接至陣列3703中之記憶體單元的汲極(源極線),而輸出區塊3702耦接至陣列3703中之記憶體單元的位元線。或者,輸入區塊3701耦接至陣列3703中之記憶體單元的字元線,而輸出區塊3702耦接至陣列3703中之記憶體單元的位元線。
在系統3700用於實施LSTM或GRU的情況下,輸 出區塊3702及/或輸入區塊3701可以根據需要包括用於LSTM/GRU架構之乘法區塊、加法區塊、減法(輸出=1-輸入)區塊,或者任選地,可以根據需要包括類比取樣保持電路(例如,圖36中之電路3600或3650)或數位取樣保持電路(例如,暫存器或SRAM)。
應當注意,如本文所使用,術語「在......上方」及「在......上」均包含性地包括「直接在......上」(沒有中間材料、元件或空間設置在其間)及「間接在......上」(中間材料、元件或空間設置在其間)。同樣地,術語「相鄰」包括「直接相鄰」(沒有中間材料、元件或空間設置在其間)及「間接相鄰」(中間材料、元件或空間設置在其間),「安裝至」包括「直接安裝至」(沒有中間材料、元件或空間設置在其間)及「間接安裝至」(中間材料、元件或空間設置在其間),以及「電耦接至」包括「直接電耦接至」(沒有中間材料或元件在其間將元件電連接在一起)及「間接電耦接至」(中間材料或元件在其間將元件電連接在一起)。例如,在「在基板上」形成元件可以包括在基板上直接形成元件而其間沒有中間材料/元件,以及在基板上間接形成元件而在其間具有一個或多個中間材料/元件。

Claims (71)

  1. 一種具有複數個神經元之可組態神經網路,包括:一記憶體單元陣列,其配置成列與行;一輸出區塊,其耦接至該陣列,以便在向量矩陣乘法操作期間回應從該陣列中之複數個記憶體單元所接收之電流來產生一輸出電壓向量;以及一激勵區塊,其耦接至該陣列,以便在向量矩陣乘法操作期間回應一輸入電壓向量來產生一輸入電流向量,並提供該輸入電流向量至該陣列中之複數個記憶體單元,其中在一第一週期期間,在該陣列中產生包含一第一子陣列之一第一神經元,以及該輸出區塊耦接至該第一子陣列,並且該激勵區塊耦接至該第一子陣列;其中在一第二週期期間,在該陣列內產生包含一第二子陣列之一第二神經元,以及該輸出區塊耦接至該第二子陣列,並且該激勵區塊耦接至該第二子陣列,該第一子陣列與該第二子陣列由該陣列中之不同記憶體單元所組成。
  2. 如請求項1之可組態神經網路,進一步包括:一選路電路,其為了該第二子陣列的向量矩陣乘法操作,回應從該第一子陣列所接收之電流來選擇使一輸出電壓向量從該輸出區塊至該激勵區塊之路線。
  3. 如請求項2之可組態神經網路,其中,該選路電路包括一個或多個多工器。
  4. 如請求項1之可組態神經網路,進一步包括一控制器,其用於產生該第一子陣列及該第二子陣列。
  5. 如請求項1之可組態神經網路,進一步包括一控制邏輯,其用於產生該第一子陣列及該第二子陣列。
  6. 如請求項1之可組態神經網路,其中,該等記憶體單元係分離式閘極快閃記憶體單元。
  7. 如請求項1之可組態神經網路,其中,該輸出區塊係一電流加法器區塊。
  8. 如請求項1之可組態神經網路,其中,該可組態神經網路提供配置在該可組態神經網路內之神經元的輸出向量維度之能力。
  9. 如請求項1之可組態神經網路,其中,該可組態神經網路提供配置在該可組態神經網路內之神經元的輸入向量維度之能力。
  10. 如請求項1之可組態神經網路,其中,該輸出區塊輸出數位位元。
  11. 如請求項1之可組態神經網路,進一步包括一個或多個電流取樣保持電路或電壓取樣保持電路。
  12. 如請求項1之可組態神經網路,其中,該可組態神經網路係一長短期記憶體單元的一部分。
  13. 如請求項1之可組態神經網路,其中,該可組態神經網路係一閘控遞歸單元的一部分。
  14. 一種包含一可組態向量矩陣乘法系統之神經網路,該可組態向量矩陣乘法系統包括:一記憶體單元陣列,其配置成列與行;以及一輸出區塊,其耦接至該陣列,以便在向量矩陣乘法操作期間回應從該陣列中之複數個記憶體單元所接收之電流來產生一輸出向量; 其中該陣列可被組態成多個子陣列,各個子陣列在該神經網路中形成一神經元,以及該輸出區塊可被耦接至各個子陣列以自各個子陣列獲得一輸出。
  15. 如請求項14之神經網路,其中,一權重儲存在一差分單元中。
  16. 如請求項14之神經網路,其中,一權重儲存在兩個混合記憶體單元中。
  17. 如請求項14之神經網路,其中,在一第一週期期間,在該陣列中產生一第一子陣列,以及該輸出區塊耦接至該第一子陣列;以及在一第二週期期間,在該陣列內產生一第二子陣列,以及該輸出區塊耦接至該第二子陣列,該第一子陣列與該第二子陣列由該陣列中之不同記憶體單元所組成。
  18. 如請求項17之神經網路,進一步包括:一選路電路,其為了該第二子陣列的向量矩陣乘法操作,回應從該第一子陣列所接收之電流來選擇使一輸出電壓向量從該輸出區塊至一激勵區塊之路線。
  19. 如請求項17之神經網路,進一步包括一控制器,其用於產生該第一子陣列及該第二子陣列。
  20. 如請求項17之神經網路,進一步包括一控制邏輯,其用於產生該第一子陣列及該第二子陣列。
  21. 如請求項14之神經網路,其中,該等記憶體單元係分離式閘極快閃記憶體單元。
  22. 如請求項14之神經網路,其中,該輸出區塊係一電流加法器區塊。
  23. 如請求項14之神經網路,其中,該系統提供配置在該系統內之神經元的輸出向量維度之能力。
  24. 如請求項14之神經網路,其中,該系統提供配置在該系統內之神經元的輸入向量維度之能力。
  25. 如請求項14之神經網路,其中,該輸出區塊輸出數位位元。
  26. 如請求項14之神經網路,其中,該輸出區塊輸出類比位準。
  27. 如請求項14之神經網路,進一步包括一個或多個電流取樣保持電路或電壓取樣保持電路。
  28. 如請求項14之神經網路,其中,該輸出區塊包括一類比至數位轉換區塊。
  29. 如請求項14之神經網路,進一步包括一輸入區塊。
  30. 如請求項29之神經網路,其中,該輸入區塊包括一激勵區塊。
  31. 如請求項29之神經網路,其中,該輸入區塊包括一數位至類比轉換區塊。
  32. 如請求項14之神經網路,其中,該向量矩陣乘法系統係一長短期記憶體單元的一部分。
  33. 如請求項14之神經網路,其中,該向量矩陣乘法系統係一閘控遞歸單元的一部分。
  34. 一種包含一可組態向量矩陣乘法系統之神經網路,該可組態向量矩陣乘法系統包括:一記憶體單元陣列,其配置成列與行;以及一輸入區塊,其耦接至該陣列,以便在向量矩陣乘法操作期間回應至該陣列中之複數個記憶體單元的輸入資料來產生一輸入向量;其中該陣列可被組態成多個子陣列,各個子陣列在該神經網路中 形成一神經元,以及該輸出區塊可被耦接至各個子陣列以提供一輸出至各個子陣列。
  35. 如請求項34之神經網路,其中,一權重儲存在一差分單元中。
  36. 如請求項34之神經網路,其中,一權重儲存在兩個混合記憶體單元中。
  37. 如請求項34之神經網路,其中,在一第一週期期間,在該陣列中產生一第一子陣列且該輸入區塊耦接至該第一子陣列;以及在一第二週期期間,在該陣列中產生一第二子陣列且該輸入區塊耦接至該第二子陣列,該第一子陣列與該第二子陣列由該陣列中之不同記憶體單元所組成。
  38. 如請求項37之神經網路,進一步包括:一選路電路,其為了向量矩陣乘法操作,回應耦接至該第一子陣列之輸入資料以對來自該輸入區塊之該輸入向量進行選路。
  39. 如請求項38之神經網路,其中,該選路電路包括一個或多個多工器。
  40. 如請求項37之神經網路,進一步包括一控制器,其用於產生該第一子陣列及該第二子陣列。
  41. 如請求項37之神經網路,進一步包括一控制邏輯,其用於產生該第一子陣列及該第二子陣列。
  42. 如請求項34之神經網路,其中,該等記憶體單元係分離式閘極快閃記憶體單元。
  43. 如請求項34之神經網路,進一步包括一輸出區塊,其產生一輸出向量。
  44. 如請求項43之神經網路,其中,該輸出區塊係一電流加法器區塊。
  45. 如請求項34之神經網路,其中,該系統提供配置在該系統內之神經元的輸出向量維度之能力。
  46. 如請求項34之神經網路,其中,該系統提供配置在該系統內之神經元的輸入向量維度之能力。
  47. 如請求項43之神經網路,其中,該輸出區塊輸出數位位元。
  48. 如請求項43之神經網路,其中,該輸出區塊輸出類比位準。
  49. 如請求項34之神經網路,進一步包括一個或多個電流取樣保持電路或電壓取樣保持電路。
  50. 如請求項43之神經網路,其中,該輸出區塊包括一類比至數位轉換區塊。
  51. 如請求項47之神經網路,其中,該輸出區塊包括一類比至數位轉換區塊。
  52. 如請求項34之神經網路,其中,該輸入區塊包括一激勵區塊。
  53. 如請求項34之神經網路,其中,該輸入區塊包括一數位至類比轉換區塊。
  54. 如請求項34之神經網路,其中,該輸入區塊耦接至該記憶體單元陣列中之每個記憶體單元的源極。
  55. 如請求項34之神經網路,其中,該輸入區塊耦接至該記憶體單元陣列中之每個記憶體單元的字元線閘極。
  56. 如請求項34之神經網路,其中,該向量矩陣乘法系統係一長短期記憶體單元的一部分。
  57. 如請求項34之神經網路,其中,該向量矩陣乘法系統係一閘 控遞歸單元的一部分。
  58. 一種類比神經記憶體系統,包括:複數個向量矩陣乘法子系統,每個向量矩陣乘法子系統包括:一記憶體單元陣列,其配置成列與行;一輸出區塊,其耦接至該陣列,以便在向量矩陣乘法操作期間回應從該陣列中之複數個記憶體單元所接收之電流來產生一輸出電壓向量;以及一激勵區塊,其耦接至該陣列,以便在向量矩陣乘法操作期間回應一輸入電壓向量來產生一輸入電流向量,並提供該輸入電流向量至該陣列中之複數個記憶體單元;以及一選路電路,其用於選擇使一輸出電壓向量從該輸出區塊至該激勵區塊之路線,其中該輸出區塊耦接至該複數個向量矩陣乘法子系統之一中的一第一陣列內所包含之一第一子陣列,而該激勵區塊耦接至該複數個向量矩陣乘法子系統之另一個向量矩陣乘法子系統中的一第二陣列內所包含之一第二子陣列。
  59. 如請求項58之系統,其中,該選路電路包括一個或多個多工器。
  60. 如請求項58之系統,進一步包括一控制器,其用於產生該第一子陣列及該第二子陣列。
  61. 如請求項58之系統,進一步包括一控制邏輯,其用於產生該第一子陣列及該第二子陣列。
  62. 如請求項58之系統,其中,該等向量矩陣乘法子系統的部分或全部構成一長短期記憶體單元。
  63. 如請求項58之系統,其中,該等向量矩陣乘法子系統的部分 或全部構成一閘控遞歸單元。
  64. 如請求項58之系統,其中,該等記憶體單元係分離式閘極快閃記憶體單元。
  65. 如請求項58之系統,其中,該輸出區塊係一電流加法器區塊。
  66. 如請求項58之系統,其中,該系統提供配置在該系統內之神經元的輸出向量維度之能力。
  67. 如請求項58之系統,其中,該系統提供配置在該系統內之神經元的輸入向量維度之能力。
  68. 如請求項58之系統,其中,該輸出區塊輸出數位位元。
  69. 如請求項58之系統,進一步包括電流取樣保持電路或電壓取樣保持電路。
  70. 如請求項58之系統,其中,該向量矩陣乘法子系統係一長短期記憶體單元的一部分。
  71. 如請求項58之系統,其中,該向量矩陣乘法子系統係一閘控遞歸單元的一部分。
TW108129490A 2018-08-27 2019-08-19 用於深度學習神經網路之可組態類比神經記憶體系統 TWI718626B (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201862723360P 2018-08-27 2018-08-27
US62/723,360 2018-08-27
US16/182,237 2018-11-06
US16/182,237 US10956814B2 (en) 2018-08-27 2018-11-06 Configurable analog neural memory system for deep learning neural network
PCT/US2019/041493 WO2020046474A1 (en) 2018-08-27 2019-07-11 Configurable analog neural memory system for deep learning neural network
WOPCT/US19/41493 2019-07-11

Publications (2)

Publication Number Publication Date
TW202016928A TW202016928A (zh) 2020-05-01
TWI718626B true TWI718626B (zh) 2021-02-11

Family

ID=69587243

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108129490A TWI718626B (zh) 2018-08-27 2019-08-19 用於深度學習神經網路之可組態類比神經記憶體系統

Country Status (7)

Country Link
US (3) US10956814B2 (zh)
EP (2) EP3844678B1 (zh)
JP (1) JP7209811B2 (zh)
KR (1) KR102351423B1 (zh)
CN (1) CN112585623B (zh)
TW (1) TWI718626B (zh)
WO (1) WO2020046474A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10956814B2 (en) * 2018-08-27 2021-03-23 Silicon Storage Technology, Inc. Configurable analog neural memory system for deep learning neural network
US11513797B2 (en) * 2018-09-12 2022-11-29 Mentium Technologies Inc. Systems and methods for analog vector by matrix multiplier
JP7259253B2 (ja) * 2018-10-03 2023-04-18 株式会社デンソー 人工ニューラルネットワーク回路
US11663056B2 (en) * 2019-12-20 2023-05-30 Intel Corporation Unified programming interface for regrained tile execution
US20210350217A1 (en) * 2020-05-10 2021-11-11 Silicon Storage Technology, Inc. Analog neural memory array in artificial neural network with source line pulldown mechanism
CN112181895B (zh) * 2020-09-02 2023-06-06 上海交通大学 可重构架构、加速器、电路部署和计算数据流方法
CN114335186A (zh) * 2020-09-30 2022-04-12 硅存储技术股份有限公司 具有设置在字线栅上方的擦除栅的分裂栅非易失性存储器单元及其制备方法
WO2022232196A1 (en) * 2021-04-26 2022-11-03 The Trustees Of Dartmouth College Low power analog circuitry for artificial neural networks
WO2024026741A1 (en) * 2022-08-03 2024-02-08 Hefei Reliance Memory Limited Acceleration architecture for neural networks

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5182794A (en) * 1990-07-12 1993-01-26 Allen-Bradley Company, Inc. Recurrent neural networks teaching system
US20170102940A1 (en) * 2015-10-08 2017-04-13 Via Alliance Semiconductor Co., Ltd. Neural network unit with neural memory and array of neural processing units that collectively shift row of data received from neural memory
US20170337466A1 (en) * 2016-05-17 2017-11-23 Silicon Storage Technology, Inc. Deep Learning Neural Network Classifier Using Non-volatile Memory Array
US20180075344A1 (en) * 2016-09-09 2018-03-15 SK Hynix Inc. Neural network hardware accelerator architectures and operating method thereof
US20180096670A1 (en) * 2016-09-30 2018-04-05 Semiconductor Energy Laboratory Co., Ltd. Display system and electronic device
TW201826115A (zh) * 2016-12-31 2018-07-16 大陸商上海兆芯集成電路有限公司 具有陣列寬度可分段之旋轉器之神經網路單元

Family Cites Families (19)

* 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
US5726934A (en) * 1996-04-09 1998-03-10 Information Storage Devices, Inc. Method and apparatus for analog reading values stored in floating gate structures
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
US20050125477A1 (en) 2003-12-04 2005-06-09 Genov Roman A. High-precision matrix-vector multiplication on a charge-mode array with embedded dynamic memory and stochastic method thereof
US9152827B2 (en) 2012-12-19 2015-10-06 The United States Of America As Represented By The Secretary Of The Air Force Apparatus for performing matrix vector multiplication approximation using crossbar arrays of resistive memory devices
CN105122278B (zh) * 2013-03-15 2017-03-22 Hrl实验室有限责任公司 神经网络及编程方法
US9672930B2 (en) * 2015-05-29 2017-06-06 Silicon Storage Technology, Inc. Low power operation for flash memory system
CN106447035B (zh) * 2015-10-08 2019-02-26 上海兆芯集成电路有限公司 具有可变率执行单元的处理器
KR102399548B1 (ko) * 2016-07-13 2022-05-19 삼성전자주식회사 뉴럴 네트워크를 위한 방법 및 그 방법을 수행하는 장치
KR20180009315A (ko) * 2016-07-18 2018-01-26 아이엠이씨 브이제트더블유 시간 메모리 시스템의 하드웨어 구현
US9922696B1 (en) * 2016-10-28 2018-03-20 Samsung Electronics Co., Ltd. Circuits and micro-architecture for a DRAM-based processing unit
US10528321B2 (en) * 2016-12-07 2020-01-07 Microsoft Technology Licensing, Llc Block floating point for neural network implementations
US10127494B1 (en) * 2017-08-02 2018-11-13 Google Llc Neural network crossbar stack
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
US10910061B2 (en) * 2018-03-14 2021-02-02 Silicon Storage Technology, Inc. Method and apparatus for programming analog neural memory in a deep learning artificial neural network
US11769036B2 (en) * 2018-04-18 2023-09-26 Qualcomm Incorporated Optimizing performance of recurrent neural networks
US10860918B2 (en) * 2018-08-21 2020-12-08 Silicon Storage Technology, Inc. Analog neural memory system for deep learning neural network comprising multiple vector-by-matrix multiplication arrays and shared components
US10956814B2 (en) * 2018-08-27 2021-03-23 Silicon Storage Technology, Inc. Configurable analog neural memory system for deep learning neural network

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5182794A (en) * 1990-07-12 1993-01-26 Allen-Bradley Company, Inc. Recurrent neural networks teaching system
US20170102940A1 (en) * 2015-10-08 2017-04-13 Via Alliance Semiconductor Co., Ltd. Neural network unit with neural memory and array of neural processing units that collectively shift row of data received from neural memory
US20170337466A1 (en) * 2016-05-17 2017-11-23 Silicon Storage Technology, Inc. Deep Learning Neural Network Classifier Using Non-volatile Memory Array
US20180075344A1 (en) * 2016-09-09 2018-03-15 SK Hynix Inc. Neural network hardware accelerator architectures and operating method thereof
US20180096670A1 (en) * 2016-09-30 2018-04-05 Semiconductor Energy Laboratory Co., Ltd. Display system and electronic device
TW201826115A (zh) * 2016-12-31 2018-07-16 大陸商上海兆芯集成電路有限公司 具有陣列寬度可分段之旋轉器之神經網路單元

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
http://www.alexandria.ucsb.edu/lib/ark:/48907/f3jh3mb0^&rn^ *
Xinjie Guo:"Mixed Signal Neurocomputing Based on Floating-gate Memories"^&rn^March 2017。http://www.alexandria.ucsb.edu/lib/ark:/48907/f3jh3mb0^&rn^
Xinjie Guo:"Mixed Signal Neurocomputing Based on Floating-gate Memories"^&rn^March 2017 *

Also Published As

Publication number Publication date
US20240095511A1 (en) 2024-03-21
KR102351423B1 (ko) 2022-01-13
EP3844678B1 (en) 2023-05-10
JP2021536614A (ja) 2021-12-27
CN112585623B (zh) 2022-06-28
TW202016928A (zh) 2020-05-01
EP3844678A1 (en) 2021-07-07
US20210174185A1 (en) 2021-06-10
EP4220489A1 (en) 2023-08-02
US12061976B2 (en) 2024-08-13
US20200065660A1 (en) 2020-02-27
US10956814B2 (en) 2021-03-23
KR20210035304A (ko) 2021-03-31
CN112585623A (zh) 2021-03-30
JP7209811B2 (ja) 2023-01-20
WO2020046474A1 (en) 2020-03-05

Similar Documents

Publication Publication Date Title
TWI725509B (zh) 包括多重向量矩陣乘法陣列及共享組件之用於深度學習神經網路的類比神經記憶體系統
TWI718626B (zh) 用於深度學習神經網路之可組態類比神經記憶體系統
KR102616978B1 (ko) 딥 러닝 인공 신경망에서의 아날로그 비휘발성 메모리를 위한 프로그램 가능 뉴런
CN113366503B (zh) 使用二栅极非易失性存储器单元阵列的神经网络分类器
TW202107304A (zh) 用於深度學習人工神經網路中之類比神經記憶體的解碼系統與實體佈局
TWI724449B (zh) 在深度學習人工神經網路中之類比神經記憶體中對於參考電晶體及記憶體單元的補償
TW202026955A (zh) 用於使用在深度學習神經網路中之類比神經記憶體系統中的記憶體單元之溫度與洩漏補償
CN113366506A (zh) 使用堆叠栅极非易失性存储器单元阵列的神经网络分类器
TWI743510B (zh) 在記憶體系統中執行神經讀取操作的方法及其記憶體系統
CN113366504B (zh) 使用四栅极非易失性存储器单元阵列的神经网络分类器
TW202407579A (zh) 包含三維積體電路的人工神經網路