TWI736845B - 用於程式化深度學習人工類神經網路中的類比神經記憶體之方法及設備 - Google Patents

用於程式化深度學習人工類神經網路中的類比神經記憶體之方法及設備 Download PDF

Info

Publication number
TWI736845B
TWI736845B TW108105484A TW108105484A TWI736845B TW I736845 B TWI736845 B TW I736845B TW 108105484 A TW108105484 A TW 108105484A TW 108105484 A TW108105484 A TW 108105484A TW I736845 B TWI736845 B TW I736845B
Authority
TW
Taiwan
Prior art keywords
memory cell
programming
gate
programming operation
array
Prior art date
Application number
TW108105484A
Other languages
English (en)
Other versions
TW201939516A (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 TW201939516A publication Critical patent/TW201939516A/zh
Application granted granted Critical
Publication of TWI736845B publication Critical patent/TWI736845B/zh

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/107Programming all cells in an array, sector or block to the same state prior to flash erasing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • G11C16/28Sensing or reading circuits; Data output circuits using differential sensing or reference cells, e.g. dummy cells
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • 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
    • 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
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0408Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors
    • G11C16/0441Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors comprising cells containing multiple floating gate devices, e.g. separate read-and-write FAMOS transistors with connected floating gates
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • G11C16/3409Circuits or methods to recover overerased nonvolatile memory cells detected during erase verification, usually by means of a "soft" programming step
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • G11C16/3413Circuits or methods to recover overprogrammed nonvolatile memory cells detected during program verification, usually by means of a "soft" erasing step
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3427Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C27/00Electric analogue stores, e.g. for storing instantaneous values
    • G11C27/005Electric analogue stores, e.g. for storing instantaneous values with non-volatile charge storage, e.g. on floating gate or MNOS

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Theoretical Computer Science (AREA)
  • Biophysics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Neurology (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Non-Volatile Memory (AREA)
  • Feedback Control In General (AREA)
  • Networks Using Active Elements (AREA)

Abstract

揭示用於與一種人工類神經網路中的一向量矩陣乘法(vector-by-matrix multiplication,VMM)陣列一起使用的程式化系統及方法的許多實施例。所選單元因此能以極端的精確度程式化以保持N個不同值中的一值。

Description

用於程式化深度學習人工類神經網路中的類比神經記憶體之方法及設 備 優先權主張
本申請案主張2018年3月14日提出申請之美國臨時專利申請案第62/642,878號,發明名稱為「Method and Apparatus for Programming Analog Neuromorphic Memory in an Artificial Neural Network」,及2018年5月25日提出申請之美國專利申請案第15/990,395號,發明名稱為「Method And Apparatus For Programming Analog Neural Memory In A Deep Learning Artificial Neural Network」之優先權。
揭示用於與一種人工類神經網路中的一向量矩陣乘法(vector-by-matrix multiplication,VMM)陣列一起使用的程式化設備及方法的許多實施例。
人工類神經網路模仿生物神經網路(動物的中樞神經系統,特別係大腦),其用以評估或近似可取決於大數目的輸入且通常未知的功能。人工類神經網路通常包括在彼此間交換訊息之互連的「神經元」的層。
圖1繪示一人工類神經網路,其中圓形表示神經元的輸入或層。連接(稱為突觸)係以箭頭表示,並具有可基於經驗調諧的數字權重。此使類神經網路適應輸入並能夠學習。一般而言,類神經網路包括多個輸入的一層。一般而言有一或多個神經元中間層,及提供類神經網路的輸出之一神經元輸出層。各級的神經元基於自突觸接收之資料個別地或共同地做決策。
用於高效能資訊處理的人工類神經網路之發展中的主要挑戰之一者係缺少適當的硬體技術。的確,實際的類神經網路依賴非常大數目的突觸,而在神經元之間實現高連接性,亦即,非常高的計算平行性。原理上,此種複雜性可以數位超級電腦或專用圖形處理單元叢集實現。然而,除了高成本以外,此等方法與生物網路相比時也苦於中等的能量效率,主要因為生物網路實施低精確度類比計算而消耗更少的能量。CMOS類比電路已用於人工類神經網路,但大多數CMOS實作的突觸在給定高數目的神經元及突觸情況下已過於龐大。
申請人先前在美國專利申請案第15/594,439號(其以引用方式併入本文中)中揭示一種人工(類比)類神經網路,其利用一或多個非揮發性記憶體陣列作為突觸。非揮發性記憶體陣列作為類比神經形態記憶體進行操作。該類神經網路裝置包括一第一複數個突觸及一第一複數個神經元,該第一複數個突觸經組態以接收一第一複數個輸入並由此產生一第一複數個輸出,該第一複數個神經元經組態以接收該第一複數個輸出。該第一複數個突觸包括複數個記憶體單元,其中該等記憶體單元之各者包括形成於一半導體基材中之間隔開 的源極區域及汲極區域,其中一通道區域在該源極區域與該汲極區域之間延伸;一浮閘,其設置於該通道區域之一第一部分上方並與該第一部分絕緣;及一非浮閘,其設置於該通道區域之一第二部分上方並與該第二部分絕緣。該複數個記憶體單元之各者經組態來儲存對應於該浮閘上之數個電子的權重值。該複數個記憶體單元經組態以使該第一複數個輸入乘以所儲存的該等權重值,以產生該第一複數個輸出。
必須將使用在類比神經形態記憶體系統中的各非揮發性記憶體單元抹除及程式化以在浮閘中保持非常特定且精確的電荷量。例如,各浮閘必須保持N個不同值之一者,其中N係可由各單元指示之不同權重的數目。N的實例包括16、32、及64。
VMM系統的一項挑戰係以對N個不同值所需的精確度及粒度程式化所選單元的能力。例如,若所選單元能包括64個不同值的一值,在程式化操作中需要極端的精確度。
所需要的係適合與類比神經形態記憶體系統中的VMM一起使用的經改善程式化系統及方法。
揭示用於與一種人工類神經網路中的一向量矩陣乘法(vector-by-matrix multiplication,VMM)陣列一起使用的程式化系統及方法的許多實施例。所選單元因此能以極端的精確度程式化以保持N個不同值中的一值。
12:半導體基材/基材
14:源極區域/汲極
16:汲極區域/源極區域/源極/汲極
18:通道區域
20:浮閘
22:字線端子/控制閘
24:位元線
28:選擇閘
30:抹除閘
31:數位類比轉換器
32:VMM
32a:輸入VMM/輸入層
32b:VMM/隱藏層
32c:隱藏層
32d:完全連接層
32e:完全連接層
33:非揮發性記憶體單元/記憶體陣列
34:抹除閘及字線閘解碼器
35:控制閘解碼器
36:位元線解碼器
37:源極線解碼器
38:差動加算器/加總運算放大器
39:啟動功能電路
210:記憶體單元
310:四閘極記憶體單元/記憶體單元
410:記憶體單元
510:堆疊閘極記憶體單元/記憶體單元
900:神經元VMM/VMM
901:記憶體陣列
902:參考陣列
903:控制閘線
904:抹除閘線
1000:神經元VMM/VMM
1001:參考陣列
1002:參考陣列
1003:記憶體陣列
1200:神經元VMM/VMM
1201:參考陣列
1202:參考陣列
1203:記憶體陣列
1400:神經元VMM/VMM
1401:參考陣列
1402:參考陣列
1403:記憶體陣列
1404:疊接電晶體
1405:多工器
1414:疊接多工器/多工器
1600:神經元VMM/VMM
1601:參考陣列
1602:參考陣列
1603:記憶體陣列
1800:程式化方法
1801:步驟
1802:步驟
1803:步驟
1804:步驟
1805:步驟
1806:步驟
1807:步驟
1808:步驟
1809:步驟
1810:步驟
1811:步驟
1812:步驟
1813:步驟
1900:波形
1901:信號/程式化循環
1902:信號
1903:信號/脈衝寬度
1904:信號
2000:波形
2003:信號
2004:信號
2005:信號
2100:波形
2103:信號
2104:信號
2105:信號
2200:VMM系統
2201:VMM矩陣
2202:行解碼器
2203:行驅動器
2300:行驅動器
2301:鎖存器/控制電路
2302:反相器/控制電路
2303:NOR閘/控制電路
2304:PMOS電晶體
2305:NMOS電晶體
2306:NMOS電晶體
2310:感測放大器SA
2400:VMM系統
2401a:參考陣列矩陣
2401b:參考陣列矩陣
2401c:參考陣列矩陣
2401d:參考陣列矩陣
2402a:VMM矩陣
2402b:VMM矩陣
2402c:VMM矩陣
2402d:VMM矩陣
2500:VMM系統/參考矩陣
2501:參考陣列矩陣/矩陣
2502a:VMM矩陣
2502b:VMM矩陣
2502c:VMM矩陣
2600:參考矩陣
2601:位元線參考解碼器
2602a:參考記憶體單元
2602b:參考記憶體單元
2602c:參考記憶體單元
2602x:參考記憶體單元
2603:共同控制閘極信號
2604:源極線參考信號
2700:參考矩陣
2701:位元線參考解碼器
2702a:參考記憶體單元
2702b:參考記憶體單元
2702c:參考記憶體單元
2702x:參考記憶體單元
2703:共同控制閘極參考信號
2704:抹除閘參考信號
2705:源極線參考信號
2800:Icell PMOS比較電路
2801:參考矩陣/PMOS電晶體/節點
2802:NMOS疊接電晶體/NMOS電晶體
2803:記憶體單元
2804:PMOS電晶體
2805:NMOS疊接電晶體/NMOS電晶體
2806:參考矩陣
2810:輸出節點
2820:VMM記憶體陣列
2900:Icell PMOS比較電路
2901:參考矩陣/PMOS電晶體/節點
2902:開關/記憶體單元
2903:開關
2904:開關
2905:NMOS疊接電晶體
2906:參考矩陣
2907:NMOS疊接電晶體
2908:記憶體單元
2909:比較器
2910:輸出節點
2920:VMM記憶體陣列
3020:VMM陣列
3051:陣列洩漏補償電路
3100:Icell至數位資料電路
3101:電流源/單元電流
3102:開關
3103:電容器
3104:比較器
3105:計數器
3110:信號/節點
3111:電壓位準VREF
3112:輸出
3113:數位輸出Q<N:0>
3112:信號
3200:波形
3201:信號
3205:信號
3206:信號
3207:信號
3208:信號
3300:Icell至污水電路/Icell至斜率電路
3301:記憶體單元電流源/單元電流
3302:開關
3303:電容器
3304:比較器
3310:節點/信號
3311:參考電壓VREFx
3400:波形
3401:信號
3402:啟用信號
3500:Icell至斜率轉換電路
3501:記憶體單元電流
3502:開關
3503:電容器
3504:比較器
3505:NMOS
3600:波形
2806:參考矩陣
圖1係繪示一人工類神經網路的圖。
圖2係習知的2閘極非揮發性記憶體單元的截面側視圖。
圖3係習知的4閘極非揮發性記憶體單元的截面側視圖。
圖4係習知的3閘極非揮發性記憶體單元的側截面側視圖。
圖5係另一習知的2閘極非揮發性記憶體單元的截面側視圖。
圖6係繪示利用非揮發性記憶體陣列的例示性人工類神經網路之不同級的圖。
圖7係繪示向量乘法器矩陣的方塊圖。
圖8係繪示向量乘法器矩陣之各種級的方塊圖。
圖9描繪向量乘法器矩陣的另一實施例。
圖10描繪向量乘法器矩陣的另一實施例。
圖11描繪在圖10之向量乘法器矩陣上執行操作的操作電壓。
圖12描繪向量乘法器矩陣的另一實施例。
圖13描繪在圖12之向量乘法器矩陣上執行操作的操作電壓。
圖14描繪向量乘法器矩陣的另一實施例。
圖15描繪在圖14之向量乘法器矩陣上執行操作的操作電壓。
圖16描繪向量乘法器矩陣的另一實施例。
圖17描繪在圖16之向量乘法器矩陣上執行操作的操作電壓。
圖18A及圖18B描繪用於向量乘法器矩陣的程式化方法。
圖19描繪用於圖18A及圖18B之程式化的波形。
圖20描繪用於圖18A及圖18B之程式化的波形。
圖21描繪用於圖18A及圖18B之程式化的波形。
圖22描繪向量乘法器矩陣系統。
圖23描繪行驅動器。
圖24描繪複數個參考矩陣。
圖25描繪單一參考矩陣。
圖26描繪參考矩陣。
圖27描繪另一參考矩陣。
圖28描繪比較電路。
圖29描繪另一比較電路。
圖30描繪另一比較電路。
圖31描繪電流至數位位元電路。
圖32描繪用於圖31之電路的波形。
圖33描繪電流至斜率電路。
圖34描繪用於圖33之電路的波形。
圖35描繪電流至斜率電路。
圖36描繪用於圖35之電路的波形。
本發明的人工類神經網路利用CMOS技術與非揮發性記憶體陣列的組合。
非揮發性記憶體單元
數位非揮發性記憶體係已知。例如,美國專利第5,029,130號(「'130專利」)揭示分離閘非揮發性記憶體單元之一陣列,且係為所有目的以引用方式併入本文中。此一類記憶體單元顯示於圖2中。各記憶體單元210包括形成在半導體基材12中的源極區域14及汲極區域16,其間具有通道區域18。浮閘20形成在通道區域18的第一部分上方且與該第一部分絕緣(且控制該第一部分的導電性),及形成在源極區域16的一部分上方。字線端子22(其一般耦接至字線)具有設置在通道區域18之第二部分上方且與該第二部分絕緣(且控制該第二部分的導電性)的第一部分,及向上並於浮閘20上方延伸的第二部分。浮閘20及字線端子22藉由閘極氧化物與基材12絕緣。位元線24耦接至汲極區域16。
記憶體單元210係藉由將高正電壓置於字線端子22上而抹除(其中將電子從浮閘移除),其導致浮閘20上的電子經由富爾諾罕穿隧而從浮閘20穿隧通過中間絕緣體至字線端子22。
記憶體單元210係藉由將正電壓置於字線端子22上及將正電壓置於源極16上而程式化(其中將電子置於浮閘上)。電子流 將自源極16朝向汲極14流動。當電子抵達字線端子22與浮閘20之間的間隙時,其等將加速且變成經加熱的。由於來自浮閘20的吸引靜電力,該等經加熱電子的一些將通過閘極氧化物26注入至浮閘20上。
記憶體單元210係藉由將正讀取電壓置於汲極14及字線端子22上(其導通字線端子下方的通道區域)而讀取。若浮閘20帶正電荷(亦即電子經抹除並正耦接至汲極16),則浮閘20下方的通道區域部分亦經接通,且電流將跨通道區域18流動,其係感測為經抹除或「1」狀態。若浮閘20帶負電荷(亦即以電子程式化),則浮閘20下方的通道區域部分係大部分或完全斷開,且電流將不會跨通道區域18流動(或將有少許流動),其係感測為經程式化或「0」狀態。
表1描繪可施加至記憶體單元210的端子之用於執行讀取、抹除、及程式化操作的一般電壓範圍:
Figure 108105484-A0305-02-0009-1
其它分離閘記憶體單元組態為已知。例如,圖3描繪四閘極記憶體單元310,其包含源極區域14、汲極區域16、在通道區域 18的第一部分上方的浮閘20、在通道區域18的第二部分上方的選擇閘28(一般耦接至字線)、在浮閘20上方的控制閘22、及在源極區域14上方的抹除閘30。此組態描述於美國專利第6,747,310號中,其針對所有目的以引用方式併入本文中。此處,除了浮閘20以外的所有閘係非浮閘,意指其等經電氣連接或可連接至電壓源。程式化係藉由變熱的電子自通道區域18將其本身注入至浮閘20上來顯示。抹除係藉由自浮閘20至抹除閘30之電子穿隧來顯示。
表2描繪可施加至記憶體單元310的端子之用於執行讀取、抹除、及程式化操作的一般電壓範圍:
Figure 108105484-A0305-02-0010-2
圖4描繪分離閘三閘極記憶體單元410。記憶體單元410與圖3的記憶體單元310相同,除了記憶體單元410不具有分開控制閘。除了沒有控制閘偏壓以外,抹除操作(通過抹除閘抹除)與讀取操作與圖3所示者類似。程式化操作的完成也未使用控制閘偏壓,因此為了彌補對於控制閘偏壓的缺乏,源極線上的程式化電壓比較高。
表3描繪可施加至記憶體單元410的端子之用於執行讀 取、抹除、及程式化操作的一般電壓範圍:
Figure 108105484-A0305-02-0011-3
圖5描繪堆疊閘極記憶體單元510。記憶體單元510類似於圖2的記憶體單元210,除了浮閘20在整個通道區域18上方延伸,及控制閘22在浮閘20上方延伸,藉由絕緣層分隔。抹除、程式化、及讀取操作以與先前針對記憶體單元210描述的類似方式操作。
表4描繪可施加至記憶體單元510的端子之用於執行讀取、抹除、及程式化操作的一般型電壓範圍:
Figure 108105484-A0305-02-0011-4
為了在人工類神經網路中利用包含上述非揮發性記憶體單元之類型的一者的記憶體陣列,進行二種修改。第一,該等線經組態使得各記憶體單元可個別地程式化、抹除、及讀取而不會不利地影 響陣列中之其他記憶體單元的記憶體狀態,如下文所進一步解釋者。第二,提供記憶體單元連續(類比)程式化。
具體而言,陣列中的各記憶體單元的記憶體狀態(亦即,浮閘上的電荷)可獨立地且對其他記憶體單元的干擾最小地從完全抹除狀態連續地改變至完全程式化狀態。在另一實施例中,陣列中的各記憶體單元的記憶體狀態(亦即,浮閘上的電荷)可獨立地且對其他記憶體單元的干擾最小地從完全程式化狀態連續地改變至完全抹除狀態,且反之亦然。此意指單元儲存係類比的或至少可儲存許多離散值(諸如,16或64個不同的值)之一者,其允許非常精確及個別的調諧記憶體陣列中的所有單元,且其使記憶體陣列非常適於儲存類神經網路的突觸權重並對該等突觸權重進行微調調整。
採用非揮發性記憶體單元陣列的類神經網路
圖6概念性地繪示利用非揮發性記憶體陣列之類神經網路的非限制性實例。此實例將非揮發性記憶體陣列類神經網路使用於面部識別應用,但任何其他適當應用可使用基於非揮發性記憶體陣列的類神經網路實作。
S0係輸入,針對此實例,其係具有5位元精確度之32×32像素的RGB影像(亦即,三個32×32像素陣列,一者用於各顏色R、G、及B,各像素係5位元精確度)。從S0到C1的突觸CB1具有二組不同的權重及共享權重,並以3x3像素重疊濾波器(核心),將濾波器移位1個像素(或如模型所決定而多於1個像素)掃 描輸入影像。具體而言,將影像之3×3部分中的9個像素(亦即,稱為濾波器或核心)的值提供至突觸CB1,藉此將此等9個輸入值乘以合適權重,且在對該乘法的輸出加總之後,由CB1的第一神經元判定並提供用於產生特徵圖譜(feature map)C1之該等層的一者之像素的單一輸出值。然後將3×3濾波器右移一個像素(亦即,在右邊加入三個像素之行,並在左邊丟棄三個像素之行),藉此將此新定位濾波器中的9個像素值提供至突觸CB1,藉此將彼等乘以相同權重,並藉由關聯神經元判定第二單一輸出值。繼續此程序直到3×3濾波器針對所有三種顏色及所有位元(精確值)掃描整個32×32像素影像。然後使用不同組的權重重複該程序,以產生C1之不同的特徵圖譜,直到層C1的所有特徵圖譜已計算。
在本實例中,在C1處,有各具有30×30個像素之16個特徵圖譜。各像素係從將輸入與核心相乘所擷取的新特徵像素,且因此各特徵圖譜係二維陣列,且因此在此實例中,突觸CB1構成二維陣列的16層(請記住本文中所提及的神經元層及陣列係邏輯關係,不一定係實體關係-亦即,陣列不一定以實體的二維陣列定向)。16個特徵圖譜之各者係由經施加至濾波器掃描之十六組不同的突觸權重之一者產生。C1特徵圖譜可全部關於相同影像特徵的不同態樣,諸如邊界識別。例如,第一圖譜(使用第一組權重產生,用於所有掃描所共享而用以產生此第一圖譜)可識別圓形邊緣,第二圖譜(使用與第一組權重不同的第二組權重產生)可識別矩形邊緣,或某些特徵的縱橫比,並依此類推。
啟動功能P1(彙整)係在從C1到S1之前施加,其彙整來自各特徵圖譜中之連續、非重疊2×2區域的值。彙整階段的目的係平均附近位置(或也能使用max函數),以減少,例如,邊緣位置的相依性,並在進入下一階段之前減少資料大小。在S1處,有16個15×15特徵圖譜(亦即,各15×15像素的十六個不同陣列)。從S1到C2之CB2中的突觸及關聯神經元使用4×4濾波器,以1個像素的濾波器移位來掃描S1中的圖譜。在C2處,有22個12×12特徵圖譜。啟動功能P2(彙整)係在從C2到S2之前施加,其彙整來自各特徵圖譜中之連續、非重疊2×2區域的值。在S2處,有22個6×6特徵圖譜。將啟動功能施加在從S2到C3的突觸CB3處,其中C3中的每個神經元連接至S2中的每個圖譜。在C3處,有64個神經元。從C3到輸出S3的突觸CB4將S3完全連接至C3。在S3處的輸出包括10個神經元,其中最高的輸出神經元判定類別。該輸出可例如指示原始影像之內容的識別或類別。
突觸的各級係使用非揮發性記憶體單元的陣列或陣列的一部分實作。圖7係包括非揮發性記憶體單元且用作輸入層與次一層之間的突觸之向量矩陣乘法(vector-by-matrix multiplication,VMM)陣列的方塊圖。具體而言,VMM 32包括非揮發性記憶體單元33的陣列、抹除閘及字線閘解碼器34、控制閘解碼器35、位元線解碼器36、及源極線解碼器37,其等解碼記憶體陣列33的輸入。此實例中的源極線解碼器37也解碼記憶體單元陣列的輸出。替代地,位元線解碼器36能解碼記憶體陣列的輸出。記憶體陣列用作兩個目的。第一, 其儲存VMM將使用的權重。第二,記憶體陣列有效地將輸入乘以儲存在記憶體陣列中的權重,且在每輸出線(源極線或位元線)將彼等加總以產生輸出,其將係至次一層的輸入或至最終層的輸入。藉由執行乘法及加法功能,記憶體陣列否定對分開的乘法及加法邏輯電路的需求,且亦由於原位記憶體運算而係有能源效率的。
將記憶體陣列的輸出供應至一差動加算器(諸如加總運算放大器)38,其加總記憶體單元陣列的輸出以創建用於該卷積的單一值。該差動加算器係諸如用以實現正權重及負權重與正輸入的加總。然後將該經加總輸出值供應至整流輸出的啟動功能電路39。啟動功能可包括S形(sigmoid)函數、雙曲正切(tanh)函數、ReLU函數。經整流輸出值變成作為次一層(例如,以上描述中的C1)之特徵圖譜的元素,然後經施加於次一突觸以產生次一特徵圖譜層或最終層。因此,在此實例中,記憶體陣列構成複數個突觸(其從神經元的先前層或從輸入層(諸如影像資料庫)接收其等的輸入),且加總運算放大器38及啟動功能電路39構成複數個神經元。
圖8係VMM之各種級的方塊圖。如圖8所示,輸入係藉由數位類比轉換器31從數位轉換成類比,並提供至輸入VMM 32a。將由輸入VMM 32a產生的輸出提供作為至次一VMM(隱藏級1)32b的輸入,其繼而產生提供作為至次一VMM(隱藏級2)32b之輸入的輸出,並依此類推。VMM 32之各種層如卷積式類神經網路(convolutional neural network,CNN)之突觸及神經元的不同層而作用。各VMM可係獨立的非揮發性記憶體陣列,或多個VMM可利用 相同的非揮發性記憶體陣列的不同部分,或多個VMM可利用相同的非揮發性記憶體陣列的重疊部分。圖8所示的實例含有五層(32a、32b、32c、32d、32e):一個輸入層(32a)、二個隱藏層(32b、32c)、及二個完全連接層(32d、32e)。所屬技術領域中具有通常知識者將理解此僅係例示性的,且系統可替代原包含二個以上的隱藏層及二個以上的完全連接層。
向量矩陣乘法(VMM)陣列
圖9描繪神經元VMM 900,其特別適於圖3所示之類型的記憶體單元,且利用為輸入層與次一層之間的神經元的突觸及部件。VMM 900包含非揮發性記憶體單元的記憶體陣列901及參考陣列902(在陣列的頂部)。替代地,可將另一參考陣列置於底部。在VMM 900中,控制閘線(諸如控制閘線903)在垂直方向上延行(因此參考陣列902在列方向上,正交於輸入控制閘線),且抹除閘線(諸如抹除閘線904)在水平方向上延行。此處,輸入經提供在控制閘線上,且輸出出現在源極線上。在一個實施例中,僅使用偶數列,且在另一實施例中,僅使用奇數列。置於源極線上的電流執行來自連接至源極線之記憶體單元的所有電流之一加總功能。
如本文針對類神經網路所描述的,快閃單元較佳地經組態以在次臨限區域中操作。
在本文中描述的記憶體單元以弱反轉偏壓:Ids=Io * e(Vg-Vth)/kVt=w * Io * e(Vg)/kVt
w=e(-Vth)/kVt
對於使用記憶體單元以將輸入電流轉換成輸入電壓的I至V對數轉換器:Vg=k*Vt*log[Ids/wp*Io]
對於使用作為向量矩陣乘法器VMM的記憶體陣列,輸出電流係: Iout=wa * Io * e(Vg)/kVt,即Iout=(wa/wp)* Iin=W * Iin
W=e(Vthp-Vtha)/kVt
字線或控制閘能使用為記憶體單元之輸入電壓的輸入。
替代地,快閃記憶體單元可經組態以在線性區域中操作:Ids=beta*(Vgs-Vth)*Vds;beta=u*Cox*W/L W α(Vgs-Vth)
對於I至V線性轉換器,在線性區域中操作的記憶體單元可使用以將輸入/輸出電流線性地轉換成輸入/輸出電壓。
ESF向量矩陣乘法器的其他實施例描述於美國專利申請案第15/826,345號中,其以引用方式併入本文中。源極線或位元線可使用為神經元輸出(電流加總輸出)。
圖10描繪神經元VMM 1000,其特別適於圖2所示之類型的記憶體單元,且利用為一輸入層與次一層之間的突觸。VMM 1000包含非揮發性記憶體單元的記憶體陣列1003、參考陣列1001、及參考陣列1002。在陣列之行方向上的參考陣列1001及1002用以將流入端子BLR0至3中的電流輸入轉換成電壓輸入WL0至3。實際上,參考記憶體單元係透過多工器與流入其等的電流輸入連接的二極體。參考單元經調諧(例如,程式化)至目標參考位準。目標參考位準係由參考迷你陣列矩陣提供。記憶體陣列1003供兩個目的使用。第一,其儲存VMM 1000將使用的權重。第二,記憶體陣列1003有效地將輸入(在端子BLR0至3中提供的電流輸入;參考陣列1001及1002將此等電流輸入轉換成輸入電壓以供應至字線WL0至3)乘以儲存在記憶體陣列中的權重以產生輸出,該輸出將係至次一層的輸入或至最終層的輸入。藉由實施乘法功能,記憶體陣列否定對分開的乘法邏輯電路的需求,且也係有能源效率的。此處,電壓輸入係在字線上提供,且輸出在一讀取(推論)操作期間顯現於位元線上。置於位元線上的電流執行來自連接至位元線之記憶體單元的所有電流之一加總功能。
圖11描繪用於VMM 1000的操作電壓。表中的行指示置於用於經選擇單元之字線、用於未經選擇單元之字線、用於經選擇單元之位元線、用於未經選擇單元之位元線、用於經選擇單元之源極線、以及用於未經選擇單元之源極線上的電壓。列指示讀取、抹除、及程式化操作。
圖12描繪神經元VMM 1200,其特別適於圖2所示之類型的記憶體單元,且利用為輸入層與次一層之間的神經元的突觸及 部件。VMM 1200包含非揮發性記憶體單元的記憶體陣列1203、參考陣列1201、及參考陣列1202。參考陣列1201及1202在類似於VMM 1000的陣列VMM 1200(除了在VMM 1200中,字線在垂直方向上延行)的列方向上延行。此處,輸入係在字線上提供,且輸出在一讀取操作期間顯現於源極線上。置於源極線上的電流執行來自連接至源極線之記憶體單元的所有電流之一加總功能。
圖13描繪用於VMM 1200的操作電壓。表中的行指示置於用於經選擇單元之字線、用於未經選擇單元之字線、用於經選擇單元之位元線、用於未經選擇單元之位元線、用於經選擇單元之源極線、以及用於未經選擇單元之源極線上的電壓。列指示讀取、抹除、及程式化操作。
圖14描繪神經元VMM 1400,其特別適於圖3所示之類型的記憶體單元,且利用為輸入層與次一層之間的神經元的突觸及部件。VMM 1400包含非揮發性記憶體單元的記憶體陣列1403、參考陣列1401、及參考陣列1402。參考陣列1401及1402用以將流入端子BLR0至3中的電流輸入轉換成電壓輸入CG0至3。實際上,參考記憶體單元係透過具有流入其等的電流輸入之疊接多工器1414連接的二極體。多工器1414包括多工器1405及疊接電晶體1404以在讀取時確保參考單元之位元線上的恆定電壓。參考單元經調諧至目標參考位準。記憶體陣列1403供兩個目的使用。第一,其儲存VMM 1400將使用的權重。第二,記憶體陣列1403有效地將輸入(提供至端子BLR0至3的電流輸入;參考陣列1401及1402將此等電流輸入轉換 成輸入電壓以供應至控制閘CG0至3)乘以儲存在記憶體陣列中的權重以產生輸出,該輸出將係至次一層的輸入或至最終層的輸入。藉由實施乘法功能,記憶體陣列否定對分開的乘法邏輯電路的需求,且也係有能源效率的。此處,輸入係在字線上提供,且輸出在一讀取操作期間顯現於位元線上。置於位元線上的電流執行來自連接至位元線之記憶體單元的所有電流之一加總功能。
VMM 1400針對記憶體陣列1403中的記憶體單元實施單向調諧。也就是,各單元經抹除,並接著經部分程式化,直到達到浮閘上的所欲電荷。若將太多電荷置於浮閘上(使得錯誤的值經儲存在單元中),則必須抹除單元,且部分程式化操作的序列必須重新開始。如所示,共享相同抹除閘的兩列需要一起抹除(已知為頁面抹除),其後,各單元經部分程式化直到達到浮閘上的所欲電荷,圖15描繪用於VMM 1400的操作電壓。表中的行指示置於用於經選擇單元之字線、用於未經選擇單元之字線、用於經選擇單元之位元線、用於未經選擇單元之位元線、用於經選擇單元之控制閘、用於與經選擇單元相同扇區中之未經選擇單元之控制閘、用於不同於經選擇單元之一扇區中之未經選擇單元之控制閘、用於經選擇單元之抹除閘、用於未經選擇單元之抹除閘、用於經選擇單元之源極線、用於未經選擇單元之源極線上的電壓。列指示讀取、抹除、及程式化操作。
圖16描繪神經元VMM 1600,其特別適於圖3所示之類型的記憶體單元,且利用為輸入層與次一層之間的神經元的突觸及 部件。VMM 1600包含非揮發性記憶體單元的記憶體陣列1603、參考陣列1601、及參考陣列1602。EG線垂直地延行,而CG及SL線水平地延行。除了VMM 1600實施雙向調諧以外,VMM 1600類似於VMM 1400,其中各個別單元可經完全抹除、部分程式化、及依需要部分抹除以在浮閘上達到所欲的電荷量。如圖所示,參考陣列1601及1602將端子BLR0至3中的輸入電流轉換成待在列方向上施加至記憶體單元之控制閘電壓CG0至3(通過二極體連接的參考單元透過多工器的動作)。電流輸出(神經元)係在位元線中,其將來自連接至位元線之記憶體單元的所有電流加總。
圖17描繪用於VMM 1600的操作電壓。表中的行指示置於用於經選擇單元之字線、用於未經選擇單元之字線、用於經選擇單元之位元線、用於未經選擇單元之位元線、用於經選擇單元之控制閘、用於與經選擇單元相同扇區中之未經選擇單元之控制閘、用於不同於經選擇單元之一扇區中之未經選擇單元之控制閘、用於經選擇單元之抹除閘、用於未經選擇單元之抹除閘、用於經選擇單元之源極線、用於未經選擇單元之源極線上的電壓。列指示讀取、抹除、及程式化操作。
圖18A及圖18B描繪程式化方法1800。首先,該方法開始(步驟1801),其一般回應於接收到程式化命令而發生。其次,大量程式化操作將所有單元程式化至「0」狀態(步驟1802)。然後,軟抹除將所有單元抹除至約3至5μA的中間弱抹除位準(步驟1803)。與深抹除相反,此會使所有單元進入用於數位應用的完全抹 除狀態,例如,~20至30uA單元電流。然後,在所有未選擇單元上執行硬程式化以針對進入非常深程式化狀態的非使用單元從單元移除電荷(步驟1804),以確保單元真的斷開,意謂著此等記憶體單元造成微不足道的電流。然後使用粗糙演算法在選擇單元上執行軟程式化以從單元移除一些電荷,至約0.7至1.5μA的中間弱程式化等級(步驟1805、1806、1807)。驗證操作之前的粗糙步驟程式化循環發生,其中選擇單元上的電荷以粗糙迭代方式與各種臨限值比較(步驟1806及1807)。粗糙步驟程式化循環包括導致從一個程式化步驟至次一步驟的粗糙單元電流變化的粗糙電壓增量、及/或粗糙程式化時間、及/或粗糙程式化電流。其次,精確程式化發生(步驟1808至1813),其中藉由精細步驟程式化演算法取決於所欲位準將所有單元程式化至在100pA至20nA之範圍內的目標位準。驗證操作之前的精細步驟程式化循環發生(步驟1809及1810)。精細步驟程式化循環可包括導致從一個程式化步驟至次一步驟的精細單元電流變化的電壓增量的粗糙及精細解析度、及/或程式化時間、及/或程式化電流的組合。若所選單元到達所欲目標,程式化操作完成(步驟1811)。若為否,重複精確程式化操作,直到達到所欲位準。然而,若嘗試次數目超過臨限值(步驟1812),程式化操作停止並將所選單元視為係不良單元(步驟1813)。
圖19描繪用於使用脈衝調變執行程式化操作的例示性波形1900。信號1901係程式化循環啟用信號,其由多個程式化及驗證循環組成。信號1902係個別脈衝程式化循環啟用信號(信號1902= 邏輯「1」以啟用程式化)。驗證循環在個別脈衝程式化循環之後(信號1902=邏輯「0」以啟用驗證)。信號1903係用於特定位元線的個別脈衝程式化循環啟用信號。信號1903係用於另一特定位元線的個別脈衝程式化循環啟用信號。如圖所示,信號1903的寬度比信號1904的寬度窄。意謂著信號1903允許在記憶體單元之浮閘上改變較小電荷,在程式化中導致較小的電流精確度。在程式化循環1901內,可使用不同的程式化脈衝寬度1903以對特定記憶體單元實現所欲程式化精確度。
圖20描繪用於使用高電壓位準調變執行程式化操作的例示性波形2000。信號2003係用於特定位元線的個別脈衝程式化循環啟用信號。信號2004係用於另一特定位元線的個別脈衝程式化循環啟用信號。信號2003及2004的程式化脈衝寬度在此波形中相同。信號2005係高電壓增量,諸如,針對程式化用於源極線或控制閘。其從一個程式化脈衝遞增至次一個。
圖21描繪用於使用高電壓位準調變執行程式化操作的例示性波形2100。信號2103係用於特定位元線的個別脈衝程式化循環啟用信號。信號2104係用於另一特定位元線的個別脈衝程式化循環啟用信號。信號2105係程式化高電壓增量,諸如,針對程式化用於源極線或控制閘。其可從一個程式化脈衝至次一者均相同或從一個程式化脈衝遞增至次一者。信號2103的程式化脈衝寬度橫跨具有增量高電壓的多個脈衝而相同。信號2104的程式化脈衝寬度橫跨多個脈衝而不同,例如,針對相同的高電壓增量,對第一脈衝較窄。
圖22描繪VMM系統2200,其包含VMM矩陣2201、行解碼器2202、及行驅動器2203。
圖23描繪例示性行驅動器2300,其可使用為圖22中的行驅動器2203。行驅動器2300包含如所示地組態的鎖存器2301、反相器2302、NOR閘2303、PMOS電晶體2304、及NMOS電晶體2305及2306。鎖存器2301接收資料信號DIN及啟用信號EN。PMOS電晶體2304與NMOS電晶體2305之間的節點BLIO含有位元線輸入或輸出信號,該位元線輸入或輸出信號通過行解碼器(諸如,圖22中的行解碼器2202)選擇性地連接至位元線。感測放大器SA 2310通過節點BLIO耦接至位元線以讀取所選記憶體單元的單元電流。感測放大器SA 2310用於驗證所選記憶體單元的所欲電流位準,諸如,在抹除或程式化操作之後。PMOS電晶體2304取決於抑制控制電路2301/2302/2303用於在程式化時抑制位元線。NMOS電晶體2306將偏壓程式化電流提供至位元線。NMOS電晶體2305啟用至位元線的偏壓程式化電流,從而啟用所選記憶體單元的程式化。。因此至NMOS電晶體2305之閘極的程式化控制信號(諸如,圖19中的信號1902/1903、圖20中的信號2003/2004、圖21中的信號2103/2104)會啟用所選單元的程式化。
圖24描繪例示性VMM系統2400,其包含參考陣列矩陣2401a、2401b、2401c、及2401d,及VMM矩陣2402a、2402b、2402c、及2402d。各VMM矩陣具有自己的參考陣列矩陣。
圖25描繪例示性VMM系統2500,其包含單一參考陣 列矩陣2501及VMM矩陣2502a、2502b、2502c、及2402d。單一參考陣列矩陣2501橫跨多個VMM矩陣而共享。
圖26繪示例示性參考矩陣2600,其可使用為圖24的參考矩陣2401a至d、圖25的矩陣2501、或圖28及圖29中的參考矩陣2801或2901。參考矩陣2600包含耦接至共同控制閘極信號2603及源極線參考信號2604的參考記憶體單元2602a、2602b、2602c、及2602x、以及位元線參考解碼器2601,其提供在讀取或驗證操作中使用的複數個位元線參考信號。例如,參考記憶體單元2602a至x可提供100pA/200pA/300pA/.../30nA的增量電流位準。或參考記憶體單元2602a至x可對各參考記憶體單元提供100pA的恆定電流位準。對於此情形,參考記憶體單元2602a至x的組合用於產生不同的參考電流位準,諸如,以溫度計碼方式產生100pA/200pA/300pA/等。參考電流位準的其他組合(恆定及/或增量)可用以產生所欲參考電流位準。此外,二個參考單元之間的差電流可用於產生參考記憶體單元電流,諸如,100pA參考電流=250pA參考電流-150pA參考電流。此用於例如產生隨溫度補償的參考電流。
圖27繪示例示性參考矩陣2700,其可使用為圖24的參考矩陣2401a至d、圖25的矩陣2501、或圖28及圖29中的參考矩陣2801或2901。參考矩陣2700包含耦接至共同控制閘極參考信號2703、抹除閘參考信號2704、及源極線參考信號2705的參考記憶體單元2702a、2702b、2702c、及2702x、以及位元線參考解碼器 2701,其提供在讀取或驗證操作中使用的複數個位元線參考信號。參考電流位準的組合(恆定及/或增量)可如圖26中地使用以產生所欲參考電流位準。
圖28描繪Icell PMOS比較電路2800,其包含如所示地配置的PMOS電晶體2801及2804、NMOS疊接電晶體2802及2805、從VMM記憶體陣列2820選擇的記憶體單元2803、及參考矩陣2806(諸如,參考矩陣2500或2600)。NMOS電晶體2802及2805用於將參考位元線偏壓至所欲的電壓位準。輸出電流Iout係指示儲存在所選記憶體單元2803中之值的電流值。輸出節點2810的電壓位準指示所選記憶體單元2803中的電流與來自參考矩陣2806的參考電流之間的比較結果。若所選記憶體單元2803中的電流多於(或小於)來自參考矩陣2806的參考電流,節點2801上的電壓上昇至Vdd(或下降至接地)。
圖29描繪Icell PMOS比較電路2900,其包含如圖所示地配置的PMOS電晶體2901、開關2902、2903、及2904、NMOS疊接電晶體2905及2907、從VMM記憶體陣列2920選擇的記憶體單元2908、參考矩陣2906(諸如,參考矩陣2600或2700)、及比較器2909。輸出COMP_OUT係指示儲存在所選記憶體單元2908中的值對參考電流的電壓值。Icell比較電路藉由以時間多工使用為單一PMOS電流鏡而運作以消除二個鏡像PMOS電晶體之間的失配。對於第一時間週期,S0及S1關閉且S2打開。將來自參考記憶體矩陣2906的電流儲存(保持)在PMOS電晶體2901中。對於次一時間週 期,S0及S1打開且S2關閉。比較所儲存的參考電流與來自記憶體單元2908的電流,並將比較結果指示在輸出節點2910上。可選地,比較器可比較節點2901上的電壓與參考電壓VREF以指示比較的結果。此處,取樣及保持參考電流,並將來自所選記憶體單元2902的電流取樣及保持在PMOS電晶體2901中以對參考電流比較。
在另一實施例中,如圖30所示的陣列洩漏補償電路3051可與單一PMOS鏡像電路一起使用,以取樣(S3關閉)VMM陣列3020上的洩漏(所有字線均斷開,將位元線上的漏電流取樣至保持PMOS中)並將該洩露保持(S3打開)在保持電晶體中。然後在比較週期中將此洩露從所選記憶體單元中的電流減去,以得到用於比較之來自VMM陣列3020的實際記憶體單元電流。此可用於本文描述的所有比較電路。此可用於參考陣列洩漏補償。
圖31描繪Icell至數位資料電路3100,其包含電流源3101、開關3102、電容器3103、比較器3104、及計數器3105。在比較週期開始時,將信號3110拉至接地。然後,信號3110取決於單元電流3101開始上昇(使用如上文描述的陣列洩露補償從VMM記憶體陣列擷取)。上昇速率與單元電流3101及電容器3103成比例。然後比較器3104的輸出3112啟用使計數器3105以開始數位地計數。一旦節點3110上的電壓達到電壓位準VREF 3111,比較器3104切換極性並停止計數器3105。數位輸出Q<N:0>3113值指示單元電流3101的值。
圖32描繪用於Icell至數位資料電路3100之操作的波 形3200。信號3201係上昇電壓(對應於圖31中的信號3110)。針對不同的單元電流位準顯示信號3201的不同斜坡率。信號3205及3207係用於二種不同單元電流的比較器的輸出(對應於圖31中的信號3112)。信號3206及3208係用於上述二個不同單元電流的數位輸出Q<N:0>。
圖33描繪Icell至污水電路3300,其包含記憶體單元電流源3301、開關3302、電容器3303、及比較器3304。記憶體單元電流使用如上文描述的陣列洩漏補償從VMM記憶體陣列擷取。在比較週期開始時,將信號3310拉至接地。然後,信號3310取決於單元電流3301開始上昇(從VMM記憶體陣列擷取)。上昇速率與單元電流3301及電容器3303成比例。在固定的比較週期之後,節點3310上的電壓藉由比較器3304與參考電壓VREFx 3311來比較。VREFx 3311係,例如,用於16個參考位準的0.1V、0.2V、0.3V、...、1.5V、1.6V。因此,各位準對應於16個不同電流位準的電流位準。比較器3304的輸出指示單元電流3301的值。為比較節點3310上的電壓(其可藉由在固定比較週期之後關閉S1而保持在電容器3303上)與16個參考位準,使用具有16個參考位準的16個比較器或具有對16個參考位準多工16次的參考位準的一個比較器。
圖34描繪用於Icell至斜率電路3300之操作的波形3400。信號3401顯示在啟用信號3402的上昇邊緣具有不同電壓位準(Vcellx)的不同斜坡率。比較電壓Vcellx與參考電壓以指示單元電流的值(圖33中參考電壓VREFx 3311)。
圖35描繪Icell至斜率轉換電路3500,其包含記憶體單元電流源3501、開關3502、電容器3503、NMOS疊接電晶體3505、及比較器3504。記憶體單元電流3501使用如上文描述的陣列洩漏補償從VMM記憶體陣列擷取。NMOS 3505用於偏壓所選記憶體單元(顯示為Icell)之位元線上的電壓。該操作類似於圖31的操作,除了傾斜方向下斜而不是上斜。
圖36描繪用於Icell至斜率電路3500之操作的波形3600。
應注意的是,如本文中所使用,「在...上方(over)」及「在...上(on)」之用語皆含括性地包括了「直接在...之上(directly on)」(無居中的材料、元件或間隔設置於其間)及「間接在...之上(indirectly on)」(有居中的材料、元件或間隔設置於其間)的含意。同樣地,「相鄰的(adjacent)」一詞包括了「直接相鄰的」(無居中的材料、元件或間隔設置於其間)及「間接相鄰的」(有居中的材料、元件或間隔設置於其間)的含意,「安裝於(mounted to)」一詞則包括了「直接安裝於(directly mounted to)」(無居中的材料、元件或間隔設置於其間)及「間接安裝於(indirectly mounted to)」(有居中的材料、元件或間隔設置於其間)的含意,以及「電耦接(electrically coupled)」一詞則包括了「直接電耦接(directly electrically coupled to)」(無居中的材料或元件於其間將各元件電性相連接)及「間接電耦接(indirectly electrically coupled to)」(有居中的材料或元件於其間將各元件電性相連接)的含意。舉例而言,「在基材上方(over a substrate)」形成元件可包括直接在基材上形成元件而其間無居中的材料/元件存在,以及間接在基材上形成元件而其間有一或多個居中的材料/元件存在。

Claims (12)

  1. 一種程式化包含快閃記憶體單元之列及行的一向量矩陣乘法陣列中的一經選擇記憶體單元的方法,該方法包含:程式化該向量矩陣乘法陣列中的複數個快閃記憶體單元;在該向量矩陣乘法陣列中的該複數個快閃記憶體單元上執行一軟抹除操作;在該複數個快閃記憶體單元中之未使用單元上執行一硬程式化操作;在該複數個快閃記憶體單元內的一經選擇快閃記憶體單元上執行一第一程式化操作,其中電荷的一第一位準儲存在該經選擇快閃記憶體單元的一浮閘上;在該經選擇快閃記憶體單元上執行一第二程式化操作,其中電荷的一額外位準儲存在該經選擇快閃記憶體單元的該浮閘上;及重複該第二程式化操作,直到電荷的一所欲位準儲存在該經選擇快閃記憶體單元上或直到該第二程式化操作執行一最大次數數目。
  2. 如請求項1之方法,其中一驗證步驟係在各第二程式化操作之後執行,且若該驗證步驟產生一第一結果,該重複步驟發生,且若該驗證步驟產生一第二結果,該重複步驟不發生。
  3. 如請求項1之方法,其中該第一程式化操作及該第二程式化操作利用脈衝調變。
  4. 如請求項1之方法,其中該第一程式化操作及該第二程式化操作利用程式化電流調變。
  5. 如請求項1之方法,其中該第一程式化操作及該第二程式化操作將脈衝調變用於一經選擇記憶體單元並將恆定程式化脈衝用於另一經選擇記憶體單元。
  6. 如請求項1之方法,其中該第一程式化操作及該第二程式化操作利用高電壓位準調變。
  7. 如請求項2之方法,其中該驗證步驟包含比較由該經選擇快閃記憶體單元汲取的一電流與由一參考矩陣汲取的一參考電流。
  8. 如請求項1之方法,其中該記憶體單元係一分離閘記憶體單元。
  9. 如請求項1之方法,其中該記憶體單元係一堆疊閘極記憶體單元。
  10. 如請求項7之方法,其中該參考矩陣包含一共享控制閘及一共享抹除閘。
  11. 如請求項7之方法,其中該參考矩陣包含一共享控制閘及用於該參考矩陣之各參考記憶體單元的一分開抹除閘。
  12. 如請求項7之方法,其中該參考電流係從來自該參考矩陣的複數個恆定電流、增量電流、及差電流組合。
TW108105484A 2018-03-14 2019-02-19 用於程式化深度學習人工類神經網路中的類比神經記憶體之方法及設備 TWI736845B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201862642878P 2018-03-14 2018-03-14
US62/642,878 2018-03-14
US15/990,395 2018-05-25
US15/990,395 US10910061B2 (en) 2018-03-14 2018-05-25 Method and apparatus for programming analog neural memory in a deep learning artificial neural network
??PCT/US19/14357 2019-01-18
PCT/US2019/014357 WO2019177691A1 (en) 2018-03-14 2019-01-18 Method and apparatus for programming analog neural memory in a deep learning artificial neural network
WOPCT/US19/14357 2019-01-18

Publications (2)

Publication Number Publication Date
TW201939516A TW201939516A (zh) 2019-10-01
TWI736845B true TWI736845B (zh) 2021-08-21

Family

ID=67904305

Family Applications (2)

Application Number Title Priority Date Filing Date
TW108105484A TWI736845B (zh) 2018-03-14 2019-02-19 用於程式化深度學習人工類神經網路中的類比神經記憶體之方法及設備
TW110126752A TWI810613B (zh) 2018-03-14 2019-02-19 用於程式化深度學習人工類神經網路中的類比神經記憶體之設備

Family Applications After (1)

Application Number Title Priority Date Filing Date
TW110126752A TWI810613B (zh) 2018-03-14 2019-02-19 用於程式化深度學習人工類神經網路中的類比神經記憶體之設備

Country Status (7)

Country Link
US (2) US10910061B2 (zh)
EP (2) EP3766072B1 (zh)
JP (2) JP7217753B2 (zh)
KR (2) KR102457901B1 (zh)
CN (1) CN111837190A (zh)
TW (2) TWI736845B (zh)
WO (1) WO2019177691A1 (zh)

Families Citing this family (10)

* 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
US10741568B2 (en) * 2018-10-16 2020-08-11 Silicon Storage Technology, Inc. Precision tuning for the programming of analog neural memory in a deep learning artificial neural network
US11755899B2 (en) * 2019-11-11 2023-09-12 Silicon Storage Technology, Inc. Precise programming method and apparatus for analog neural memory in an artificial neural network
US11636322B2 (en) * 2020-01-03 2023-04-25 Silicon Storage Technology, Inc. Precise data tuning method and apparatus for analog neural memory in an artificial neural network
US11393535B2 (en) * 2020-02-26 2022-07-19 Silicon Storage Technology, Inc. Ultra-precise tuning of analog neural memory cells in a deep learning artificial neural network
TWI751931B (zh) * 2020-05-04 2022-01-01 神盾股份有限公司 用於執行卷積神經網路運算的處理裝置與處理方法
US11682459B2 (en) * 2020-05-13 2023-06-20 Silicon Storage Technology, Inc. Analog neural memory array in artificial neural network comprising logical cells and improved programming mechanism
CN111625760B (zh) * 2020-06-01 2022-07-05 山东大学 基于闪存电学特性的存算一体方法
KR102525212B1 (ko) * 2020-12-03 2023-04-21 광운대학교 산학협력단 정전용량을 이용한 가중치 메모리 시스템 및 이의 동작방법
EP4268228A1 (en) * 2020-12-23 2023-11-01 Silicon Storage Technology, Inc. Input and digital output mechanisms for analog neural memory in a deep learning artificial neural network

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030063518A1 (en) * 2001-09-18 2003-04-03 David Fong Programming methods and circuits for semiconductor memory cell and memory array using a breakdown phenomena in an ultra-thin dielectric
US6724029B2 (en) * 2002-02-21 2004-04-20 International Business Machines Corporation Twin-cell flash memory structure and method
US6724036B1 (en) * 1999-05-12 2004-04-20 Taiwan Semiconductor Manufacturing Company Stacked-gate flash memory cell with folding gate and increased coupling ratio
US20050162924A1 (en) * 2004-01-27 2005-07-28 Guterman Daniel C. Variable current sinking for coarse/fine programming of non-volatile memory
US20070077705A1 (en) * 2005-09-30 2007-04-05 Prinz Erwin J Split gate memory cell and method therefor
US7848158B2 (en) * 2008-05-05 2010-12-07 Micron Technologies, Inc. Methods and apparatuses for programming flash memory using modulated pulses
TW201225088A (en) * 2010-07-21 2012-06-16 Mosaid Technologies Inc Multipage program scheme for flash memory
US9165629B2 (en) * 2013-03-12 2015-10-20 Taiwan Semiconductor Manufacturing Co., Ltd. Method and apparatus for MRAM sense reference trimming
US9384845B2 (en) * 2014-11-18 2016-07-05 Sandisk Technologies Llc Partial erase of nonvolatile memory blocks
US20160293260A1 (en) * 2015-03-31 2016-10-06 Silicon Storage Technology, Inc. Method And Apparatus For Inhibiting The Programming Of Unselected Bitlines In A Flash Memory System
TW201727655A (zh) * 2015-01-21 2017-08-01 超捷公司 使用互補電壓供應之快閃記憶體系統
TW201742069A (zh) * 2016-05-17 2017-12-01 超捷公司 具有個別記憶體單元讀取、程式化、及抹除之快閃記憶體陣列

Family Cites Families (33)

* 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
JP3145894B2 (ja) 1995-03-10 2001-03-12 日本電気株式会社 電気的に書込み・消去可能な不揮発性半導体記憶装置
JPH10134587A (ja) * 1996-10-29 1998-05-22 Sony Corp 不揮発性半導体記憶装置
KR100336840B1 (ko) 1999-06-10 2002-05-16 윤종용 반도체 메모리 장치의 감지 증폭기
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
US7630237B2 (en) * 2003-02-06 2009-12-08 Sandisk Corporation System and method for programming cells in non-volatile integrated memory devices
US7002943B2 (en) * 2003-12-08 2006-02-21 Airtight Networks, Inc. Method and system for monitoring a selected region of an airspace associated with local area networks of computing devices
US7474559B1 (en) 2005-08-30 2009-01-06 Xilinx, Inc. Circuit and method for employing unused configuration memory cells as scratchpad memory
EP1943652B1 (en) * 2005-09-09 2010-10-27 SanDisk Corporation Last-first mode and method for programming of non-volatile memory of nand type with reduced program disturb
JP4904780B2 (ja) 2005-11-07 2012-03-28 富士通セミコンダクター株式会社 不揮発性半導体記憶装置
KR101016432B1 (ko) * 2005-11-10 2011-02-21 샌디스크 코포레이션 타이밍 정보를 이용한 리버스 커플링 효과
EP1843356A1 (en) 2006-04-03 2007-10-10 STMicroelectronics S.r.l. Method and system for refreshing a memory device during reading thereof
US7466575B2 (en) * 2006-05-12 2008-12-16 Anobit Technologies Ltd. Memory device programming using combined shaping and linear spreading
JP4364260B2 (ja) 2007-05-28 2009-11-11 株式会社東芝 半導体記憶装置
KR101401558B1 (ko) * 2007-08-20 2014-06-09 삼성전자주식회사 플래시 메모리 장치, 그것의 프로그램 및 소거 방법들,그리고 그것을 포함하는 메모리 시스템 및 컴퓨터 시스템
US7852683B2 (en) 2008-07-02 2010-12-14 Sandisk Corporation Correcting for over programming non-volatile storage
US8144511B2 (en) * 2009-08-19 2012-03-27 Sandisk Technologies Inc. Selective memory cell program and erase
US8499227B2 (en) * 2010-09-23 2013-07-30 Micron Technology, Inc. Memory quality monitor based compensation method and apparatus
US8953384B2 (en) 2012-07-31 2015-02-10 Winbond Electronics Corporation Sense amplifier for flash memory
US8837210B2 (en) 2012-08-23 2014-09-16 Infineon Technologies Ag Differential sensing method and system for STT MRAM
US9275014B2 (en) * 2013-03-13 2016-03-01 Qualcomm Incorporated Vector processing engines having programmable data path configurations for providing multi-mode radix-2x butterfly vector processing circuits, and related vector processors, systems, and methods
US9268899B2 (en) 2013-03-14 2016-02-23 Silicon Storage Technology, Inc. Transistor design for use in advanced nanometer flash memory devices
US10120405B2 (en) * 2014-04-04 2018-11-06 National Instruments Corporation Single-junction voltage reference
KR20160050534A (ko) * 2014-10-30 2016-05-11 에스케이하이닉스 주식회사 누설 전류 감지부를 구비하는 반도체 집적 회로 장치 및 그 구동방법
US10049733B2 (en) * 2014-10-31 2018-08-14 Hewlett Packard Enterprise Development Lp Reusing sneak current in accessing memory cells
KR20170096152A (ko) * 2014-12-15 2017-08-23 휴렛 팩커드 엔터프라이즈 디벨롭먼트 엘피 비 휘발성 메모리 크로스바 어레이
US9343131B1 (en) 2015-02-24 2016-05-17 International Business Machines Corporation Mismatch and noise insensitive sense amplifier circuit for STT MRAM
GB2537484B (en) * 2015-03-20 2019-07-03 HGST Netherlands BV Read level grouping for increased flash performance
US9852024B2 (en) * 2016-04-19 2017-12-26 Winbond Electronics Corporation Apparatus and method for read time control in ECC-enabled flash memory
KR102182583B1 (ko) * 2016-05-17 2020-11-24 실리콘 스토리지 테크놀로지 인크 비휘발성 메모리 어레이를 사용하는 딥러닝 신경망 분류기
US10120649B2 (en) * 2016-07-29 2018-11-06 Microunity Systems Engineering, Inc. Processor and method for outer product accumulate operations
US9966127B2 (en) * 2016-10-12 2018-05-08 Micron Technology, Inc. Compensating for variations in selector threshold voltages
US10522226B2 (en) * 2018-05-01 2019-12-31 Silicon Storage Technology, Inc. Method and apparatus for high voltage generation for analog neural memory in deep learning artificial neural network

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6724036B1 (en) * 1999-05-12 2004-04-20 Taiwan Semiconductor Manufacturing Company Stacked-gate flash memory cell with folding gate and increased coupling ratio
US20030063518A1 (en) * 2001-09-18 2003-04-03 David Fong Programming methods and circuits for semiconductor memory cell and memory array using a breakdown phenomena in an ultra-thin dielectric
US6724029B2 (en) * 2002-02-21 2004-04-20 International Business Machines Corporation Twin-cell flash memory structure and method
US20050162924A1 (en) * 2004-01-27 2005-07-28 Guterman Daniel C. Variable current sinking for coarse/fine programming of non-volatile memory
US20070077705A1 (en) * 2005-09-30 2007-04-05 Prinz Erwin J Split gate memory cell and method therefor
US7848158B2 (en) * 2008-05-05 2010-12-07 Micron Technologies, Inc. Methods and apparatuses for programming flash memory using modulated pulses
TW201225088A (en) * 2010-07-21 2012-06-16 Mosaid Technologies Inc Multipage program scheme for flash memory
US9165629B2 (en) * 2013-03-12 2015-10-20 Taiwan Semiconductor Manufacturing Co., Ltd. Method and apparatus for MRAM sense reference trimming
US9384845B2 (en) * 2014-11-18 2016-07-05 Sandisk Technologies Llc Partial erase of nonvolatile memory blocks
TW201727655A (zh) * 2015-01-21 2017-08-01 超捷公司 使用互補電壓供應之快閃記憶體系統
US20160293260A1 (en) * 2015-03-31 2016-10-06 Silicon Storage Technology, Inc. Method And Apparatus For Inhibiting The Programming Of Unselected Bitlines In A Flash Memory System
TW201742069A (zh) * 2016-05-17 2017-12-01 超捷公司 具有個別記憶體單元讀取、程式化、及抹除之快閃記憶體陣列

Also Published As

Publication number Publication date
EP4141875A1 (en) 2023-03-01
KR102675657B1 (ko) 2024-06-14
JP2021517706A (ja) 2021-07-26
JP2023065351A (ja) 2023-05-12
TW202143243A (zh) 2021-11-16
CN111837190A (zh) 2020-10-27
JP7217753B2 (ja) 2023-02-03
TW201939516A (zh) 2019-10-01
KR102457901B1 (ko) 2022-10-21
TWI810613B (zh) 2023-08-01
JP7493065B2 (ja) 2024-05-30
EP3766072A1 (en) 2021-01-20
EP3766072B1 (en) 2022-11-30
US20190287621A1 (en) 2019-09-19
EP3766072A4 (en) 2021-12-15
US20210142854A1 (en) 2021-05-13
US10910061B2 (en) 2021-02-02
KR20220147698A (ko) 2022-11-03
WO2019177691A1 (en) 2019-09-19
KR20200101459A (ko) 2020-08-27

Similar Documents

Publication Publication Date Title
TWI736845B (zh) 用於程式化深度學習人工類神經網路中的類比神經記憶體之方法及設備
TWI708249B (zh) 用於在深度學習人工類神經網路中的類比類神經記憶體之高電壓產生之方法及設備
TWI799006B (zh) 讀取選定非揮發性記憶體單元之方法
TWI733451B (zh) 用於偵測類比神經形態記憶體系統中之單元中資料漂移之方法
JP7418602B2 (ja) 深層学習人工ニューラルネットワークにおけるアナログニューラルメモリセルの超精密チューニング
TWI742508B (zh) 用於驗證在深度學習人工神經網路中在模擬神經記憶體中之非揮發性記憶體單元的程式化操作期間儲存之值的演算法及電路
EP4128239A1 (en) Precision tuning of a page or word of non-volatile memory cells and associated high voltage circuits for an analog neural memory array in an artificial neural network
TWI822198B (zh) 深度學習人工神經網路中類比神經記憶體的輸出電路
EP3918601B1 (en) Precision programming circuit for analog neural memory in deep learning artificial neural network