TWI759062B - 深度學習人工神經網路中類比神經記憶體單元的超精確調節 - Google Patents
深度學習人工神經網路中類比神經記憶體單元的超精確調節 Download PDFInfo
- Publication number
- TWI759062B TWI759062B TW110100537A TW110100537A TWI759062B TW I759062 B TWI759062 B TW I759062B TW 110100537 A TW110100537 A TW 110100537A TW 110100537 A TW110100537 A TW 110100537A TW I759062 B TWI759062 B TW I759062B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory cell
- programming
- voltage
- cell
- cells
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/107—Programming all cells in an array, sector or block to the same state prior to flash erasing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
- G06N3/065—Analogue means
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/54—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0408—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/12—Programming voltage switching circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3404—Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits or methods to verify correct programming of nonvolatile memory cells
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2216/00—Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
- G11C2216/02—Structural aspects of erasable programmable read-only memories
- G11C2216/08—Nonvolatile memory wherein data storage is accomplished by storing relatively few electrons in the storage layer, i.e. single electron memory
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)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Neurology (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Non-Volatile Memory (AREA)
- Read Only Memory (AREA)
- Image Analysis (AREA)
- Networks Using Active Elements (AREA)
- Control Of Amplification And Gain Control (AREA)
- Semiconductor Memories (AREA)
Abstract
揭示了用於一選定記憶體單元之超精確調節之具體例。選擇地,該選定記憶體單元首先使用粗略程式化及精細程式化方法來程式化。該選定記憶體單元接著經由程式化一相鄰記憶體單元而進行超精確程式化。當程式化該相鄰記憶體單元時,該相鄰記憶體單元之浮動閘極與該選定記憶體單元之浮動閘極之間的電容耦合將使得該選定記憶體單元之該浮動閘極之電壓增大,但增量小於藉由直接程式化該選定記憶體單元所能實現的增量。以此方式,該選定記憶體單元可以超精確等級來程式化。
Description
[優先權主張]本申請案主張2020年2月26日申請且標題為「深度學習人工神經網路中類比神經記憶體單元之超精確調節(Ultra-Precise Tuning of Analog Neural Memory Cells in a Deep Learning Artificial Neural Network)」之美國臨時專利申請案第62/981,757號及2020年8月4日申請且標題為「深度學習人工神經網路中類比神經記憶體單元之超精確調節(Ultra-Precise Tuning of Analog Neural Memory Cells in a Deep Learning Artificial Neural Network)」之美國專利申請案第16/985,147號的優先權。
揭示用於類比神經記憶體中選定非揮發性記憶體單元之超精確調節的具體例。
人工神經網路模擬生物神經網路(動物之中樞神經系統,特定言之,大腦)且用於估計或估算可取決於大量輸入且通常未知的功能。人工神經網路通常包括彼此交換訊息之互連「神經元」的層。
圖1說明人工神經網路,其中圓形表示神經元之輸入或層。連接(被稱作突觸)由箭頭表示,且具有可基於經驗進行調節之數值權重。此使得人工神經網路適應於輸入且能夠學習。通常,人工神經網路包括多個輸入之層。典型地存在一或多個中間神經元層及提供神經網路之輸出的輸出神經元層。各層級處之神經元基於自突觸所接收之資料而個別地或共同地作出決策。
用於高效能資訊處理之人工神經網路之發展中的主要挑戰之一在於缺乏充分的硬體技術。實際上,切實可行的人工神經網路依賴於極大量之突觸,從而實現神經元之間的高連接性,亦即極高計算並行性。原則上,此複雜性可利用數位超級電腦或專用圖形處理單元叢集來達成。然而,除高成本之外,與生物網路相比,此等方法亦受中等能效困擾,主要因為生物網路執行低精確度類比計算,所以其消耗少得多的能量。CMOS類比電路已用於人工神經網路,但鑒於大量神經元及突觸,故大部分實施CMOS之突觸已過於龐大。
申請人先前在公開為美國專利公開案第2017/0337466號之美國專利申請案第15/594,439號中揭示了一種人工(類比)神經網路,其利用一或多個非揮發性記憶體陣列作為突觸,該美國專利公開案以引用之方式併入。非揮發性記憶體陣列用作類比神經形態記憶體。如本文中所使用,術語神經形態意謂實施神經系統之模型的電路。類比神經形態記憶體包括第一複數個突觸,該第一複數個突觸經組構以接收第一複數個輸入且自該第一複數個輸入產生第一複數個輸出;及經組構以接收第一複數個輸出之第一複數個神經元。第一複數個突觸包括複數個記憶體單元,其中該等記憶體單元中之每一者包括:形成於半導體基板中之間隔開的源極區及汲極區,其中通道區在源極區與汲極區之間延伸;浮動閘極,其設置於通道區之第一部分上方且與該第一部分絕緣;以及非浮動閘極,其設置於通道區之第二部分上方且與該第二部分絕緣。該複數個記憶體單元中之每一者經組構以儲存對應於該浮動閘極上之電子數目的權重值。複數個記憶體單元經組構以使第一複數個輸入乘以所儲存權重值以產生第一複數個輸出。以此方式配置之記憶體單元陣列可被稱作向量矩陣乘法(VMM)陣列。
非揮發性記憶體單元
各種類型之已知非揮發性記憶體單元可用於VMM陣列中。舉例而言,以引用之方式併入本文中的美國專利5,029,130 (「'130專利」)揭示了一種分離閘極非揮發性記憶體單元陣列,其為一種類型之快閃記憶體單元。此種記憶體單元210展示於圖2中。每一記憶體單元210包括形成於半導體基板12中之源極區14及汲極區16,其中通道區18在源極區與汲極區之間。浮動閘極20形成於通道區18之第一部分上方且與該第一部分絕緣(且控制該第一部分之導電性),且形成於源極區14之一部分上方。字線端子22 (其通常耦接至字線)具有:第一部分,其設置於通道區18之第二部分上方且與該第二部分絕緣(並且控制該第二部分之導電性);及第二部分,其在浮動閘極20上及上方延伸。浮動閘極20及字線端子22藉由閘極氧化物與基板12絕緣。位元線端子24耦接至汲極區16。
記憶體單元210藉由將高正電壓置於字線端子22上來抹除(其中電子自浮動閘極移除),此使得浮動閘極20上之電子經由富爾-諾罕(Fowler-Nordheim)穿隧自浮動閘極20穿過中間絕緣件穿隧至字線端子22。
記憶體單元210藉由將正電壓置於字線端子22上且將正電壓置於源極區14上來程式化(其中電子置於浮動閘極上)。電子電流將自汲極區16朝向源極區14 (源極線端子)流動。電子在其達至字線端子22與浮動閘極20之間的間隙時將加速且變熱。經加熱電子中之一些將經由閘極氧化物注入至浮動閘極20上,此係歸因於來自浮動閘極20之靜電引力。
記憶體單元210係藉由將正讀取電壓置於汲極區16及字線端子22上來讀取(此接通通道區18之在字線端子下方的部分)。若浮動閘極20帶正電(亦即,電子經抹除),則通道區18之在浮動閘極20下方的部分亦被接通,且電流將跨越通道區18流動,此被感測為經抹除或「1」狀態。若浮動閘極20帶負電(亦即,用電子程式化),則通道區之在浮動閘極20下方的部分大部分或完全斷開,且電流將不流過(或將有極少電流流過)通道區18,此被感測為經程式化或「0」狀態。
表1描繪可應用於記憶體單元110之端子以用於執行讀取、抹除及程式化操作的典型電壓範圍:
表1:圖2之快閃記憶體單元210之操作
「讀取1」為其中單元電流在位元線上輸出之讀取模式。「讀取2」為其中單元電流在源極線端子上輸出之讀取模式。
WL | BL | SL | |
讀取1 | 0.5-3 V | 0.1-2 V | 0 V |
讀取2 | 0.5-3 V | 0-2 V | 2-0.1 V |
抹除 | 約11-13 V | 0 V | 0 V |
程式化 | 1-2 V | 1-3 μA | 9-10 V |
圖3展示記憶體單元310,其類似於圖2之記憶體單元210,且添加了控制閘極(CG)端子28。控制閘極端子28在程式化時被偏壓在高電壓,例如10 V下;在抹除時被偏壓在低或負電壓,例如0 V/-8 V下;在讀取時被偏壓在低或中間範圍,例如0 V/2.5 V下。其他端子以類似於圖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之操作
「讀取1」為其中單元電流在位元線上輸出之讀取模式。「讀取2」為其中單元電流在源極線端子上輸出之讀取模式。
WL/SG | BL | CG | EG | SL | |
讀取1 | 0.5-2 V | 0.1-2 V | 0-2.6 V | 0-2.6 V | 0 V |
讀取2 | 0.5-2 V | 0-2 V | 0-2.6 V | 0-2.6 V | 2-0.1 V |
抹除 | -0.5V/0 V | 0 V | 0 V/-8 V | 8-12 V | 0 V |
程式化 | 1 V | 1 μA | 8-11 V | 4.5-9 V | 4.5-5 V |
圖5展示記憶體單元510,其類似於圖4的記憶體單元410,除了記憶體單元510不含有抹除閘極EG端子之外。藉由將基板18偏壓至高壓及將控制閘極CG端子28偏壓至低或負電壓而執行抹除。替代地,藉由將字線端子22偏壓至正電壓及將控制閘極端子28偏壓至負電壓來執行抹除。程式化及讀取類似於圖4之程式化及讀取。
圖6描繪三閘極記憶體單元610,其為另一類型之快閃記憶體單元。記憶體單元610與圖4的記憶體單元410相同,除了記憶體單元610不具有單獨的控制閘極端子之外。抹除操作(其中藉由使用抹除閘極端子進行抹除)及讀取操作類似於圖4的抹除操作及讀取操作,除了未施加控制閘極偏壓之外。程式化操作亦在無控制閘極偏壓之情況下進行,且結果,在程式化操作期間較高電壓必須施加在源極線端子上以補償控制閘極偏壓之缺乏。
表3描繪可應用於記憶體單元610之端子以用於執行讀取、抹除及程式化操作的典型電壓範圍:
表3:圖6之快閃記憶體單元610之操作
「讀取1」為其中單元電流在位元線上輸出之讀取模式。「讀取2」為其中單元電流在源極線端子上輸出之讀取模式。
WL/SG | BL | EG | SL | |
讀取1 | 0.5-2.2 V | 0.1-2 V | 0-2.6 V | 0 V |
讀取2 | 0.5-2.2 V | 0-2 V | 0-2.6 V | 2-0.1 V |
抹除 | -0.5 V/0 V | 0 V | 11.5 V | 0 V |
程式化 | 1 V | 2-3 μA | 4.5 V | 7-9 V |
圖7描繪堆疊閘極記憶體單元710,其為另一類型之快閃記憶體單元。除了浮動閘極20在整個通道區18上方延伸,且控制閘極端子22 (其在此處將耦接至字線)在浮動閘極20上方延伸以外,記憶體單元710類似於圖2的記憶體單元210,該浮動閘極由絕緣層(未展示)分離。使用自通道18至緊鄰汲極區16之通道區中之浮動閘極20的熱電子注入來執行程式化,且使用自浮動閘極20至基板12之富爾-諾罕電子穿隧來執行抹除。讀取操作以與先前針對記憶體單元210所描繪之方式類似的方式操作。
表4描繪可應用於記憶體單元710之端子及基板12以用於執行讀取、抹除及程式化操作之典型電壓範圍:
表4:圖7之快閃記憶體單元710之操作
CG | BL | SL | 基板 | |
讀取1 | 0-5 V | 0.1-2 V | 0-2 V | 0 V |
讀取2 | 0.5-2 V | 0-2 V | 2-0.1 V | 0 V |
抹除 | -8至-10 V/0 V | FLT | FLT | 8-10 V/15-20 V |
程式化 | 8-12 V | 3-5 V/0 V | 0 V/3-5 V | 0 V |
「讀取1」為其中單元電流在位元線上輸出之讀取模式。「讀取2」為其中單元電流在源極線端子上輸出之讀取模式。選擇地,在包含記憶體單元210、310、410、510、610或710之列及行之陣列中,源極線可耦接至記憶體單元之一個列或記憶體單元之兩個相鄰列。亦即,源極線端子可由記憶體單元的相鄰列共用。
圖8描繪雙分離閘極記憶體單元810。雙分離閘極記憶體單元810包含一對記憶體單元(A在左側且B在右側),其中記憶體單元中之每一者包含設置在基板12上方且與該基板絕緣之浮動閘極(FGA,FGB) 20、設置在浮動閘極20上方且與該浮動閘極絕緣之控制閘極28 (CGA,CGB)、與浮動及控制閘極20/28相鄰設置且與其絕緣並設置在基板12上方且與其絕緣之抹除閘極30 (EG),其中抹除閘極形成為T形狀,使得每一控制閘極CGA、CGB之頂部轉角面向T形抹除閘極之各別內角以改良抹除效率,且基板中與浮動閘極20相鄰之汲極區16 (DRA,DRB)(藉由位元線接點24 (BLA,BLB)連接至各別汲極擴散區16 (DRA,DRB)。記憶體單元形成為共用共同抹除閘極30之記憶體單元對。此單元設計與上文參考圖2至圖7所論述之記憶體單元之不同之處至少在於其對於每一記憶體單元缺少抹除閘極EG下方之源極區、缺少選擇閘極(亦被稱作字線),且缺少通道區。替代地,單個連續通道區18在兩個記憶體單元下方延伸(亦即,自一個記憶體單元之汲極區16延伸至另一記憶體單元之汲極區16)。為了讀取或程式化一個記憶體單元,其他記憶體單元之控制閘極28經由耦接至其間的浮動閘極20之電壓而升高至足夠電壓以接通基礎通道區部分(例如,為了讀取或程式化單元A,FGB上之電壓經由自CGB耦接之電壓而升高以接通FGB下方之通道區部分)。使用自浮動閘極20A及/或浮動閘極20B至抹除閘極30之富爾-諾罕電子穿隧來執行抹除。使用自通道18至浮動閘極20A或20B之熱電子注入來執行程式化。
表5描繪可應用於記憶體單元810之端子以用於執行讀取、抹除及程式化操作的典型電壓範圍。選擇單元A (FG,CGA,BLA)以用於讀取、程式化及抹除操作。
表5:圖8之快閃記憶體單元810之操作
CGA | BLA | EG | CGB | BLB | |
讀取 | 1.5-4 V | 0.1-0.8 V | 2.5 V | 1.5-4 V | 0 |
抹除 | 0 V至-8 V | 0 V | 8 V至11.5 V | 0 V至4 V (Vcginhe) | 0 V |
程式化1 | 10.5 V | 4.5 V | 1.5 V | 4 | Iprog |
程式化2 | 4 V至8 V | 0 V | -4V至- 8V | 0 V至-2V (Vcginhp) | 0 V |
為了利用包含上文在人工神經網路中所描繪的類型之非揮發性記憶體單元中之一者的記憶體陣列,在一個具體例中,進行兩次修改。首先,線經組構以使得每一記憶體單元可個別地程式化、抹除及讀取而不會不利地影響陣列中之其他記憶體單元之記憶體狀態,如下文進一步解釋。其次,提供記憶體單元之連續(類比)程式化。
特定言之,陣列中之每一記憶體單元之記憶體狀態(亦即,浮動閘極上之電荷)可連續地自完全抹除狀態改變為完全程式化狀態,其方式為獨立的且對其他記憶體單元之干擾最少。在另一具體例中,陣列中之每一記憶體單元之記憶體狀態(亦即,浮動閘極上之電荷)可連續地自完全程式化狀態改變為完全抹除狀態,或自完全抹除狀態改變為完全程式化狀態,其方式為獨立的且對其他記憶體單元之干擾最小。此意謂單元儲存類比或至少可儲存許多離散值(諸如,16或256個不同值)中之一者,這允許對記憶體陣列中之所有單元之極其精確及個別調節(意謂將單元程式化或抹除至目標值),且使得記憶體陣列對於儲存及產生神經網路之精細調節突觸權重為理想的。
本文中所描繪之方法及手段可應用於其他非揮發性記憶體技術,諸如但不限於FINFET分離閘極快閃或堆疊閘極快閃、SONOS (矽-氧化物-氮化物-氧化物-矽,氮化物中之電荷捕捉)、MONOS (金屬-氧化物-氮化物-氧化物-矽,氮化物中之金屬電荷捕捉)、ReRAM(電阻式ram)、PCM (相變記憶體)、MRAM(磁性ram)、FeRAM(鐵電ram)、OTP (雙層級或多層級一次性可程式化)及CeRAM(相關電子ram)。本文中所描繪之方法及手段可適用於用於神經網路之揮發性記憶體技術,諸如SRAM、DRAM及其他揮發性突觸單元,但不限於此。
採用非揮發性記憶體單元陣列之神經網路
圖9在概念上說明利用本具體例之非揮發性記憶體陣列的神經網路之非限制性實施例。此實施例將非揮發性記憶體陣列神經網路用於面部辨識應用,但任何其他適當應用皆可使用基於非揮發性記憶體陣列之神經網路來實施。
S0為輸入層,對於此實施例,該輸入層為具有5位元精確度之32×32像素RGB影像(亦即,三個32×32像素陣列,每種色彩R、G及B一個陣列,每一像素為5位元精確度)。自輸入層S0行進至層C1之突觸CB1在一些情況下施加不同權重集合且在其他情況下共用權重,且用3×3像素重疊濾波器(核心)掃描輸入影像,使濾波器移位1個像素(或多於1個像素,如由模型規定)。特定言之,將影像(亦即,被稱作濾波器或核心)之3×3部分中之9個像素之值提供至突觸CB1,其中將這9個輸入值乘以適合權重,且在對彼乘法之輸出求和之後,單個輸出值由第一突觸CB1判定及提供以用於產生層C1之特徵圖中之一者之像素。3×3濾波器接著在輸入層S0內向右移位一個像素(亦即,在右側上增加三個像素之行,且在左側上丟棄三個像素之行),藉此將此新近定位濾波器中之9個像素值提供至突觸CB1,其中使該等像素值乘以相同權重,且藉由相聯結突觸判定第二單一輸出值。此程序針對所有三個色彩且針對所有位元(精度值)繼續,直至3×3濾波器跨越輸入層S0之整個32×32像素影像掃描為止。程序接著使用不同權重集合進行重複以產生C1之不同特徵圖,直至層C1之所有特徵圖已經計算為止。
在本實施例中,在層C1中存在16個特徵圖,每一特徵圖具有30×30個像素。每一像素為自使輸入與核心相乘提取之新特徵像素,且因此每一特徵圖為二維陣列,且因此在此實施例中,層C1構成二維陣列之16個層(應謹記,本文中所提及之層及陣列為邏輯關係,未必為實體關係,亦即,陣列未必定向於實體二維陣列中)。層C1中之16個特徵圖中之每一者由施加至濾波器掃描之十六個不同突觸權重集合中的一者產生。C1特徵圖可皆針對同一影像特徵之不同態樣,諸如邊界識別。舉例而言,第一圖(使用第一權重集合產生,共用於用以產生此第一圖之所有掃描)可識別圓形邊緣,第二圖(使用不同於第一權重集合之第二權重集合產生)可識別矩形邊緣,或某些特徵之縱橫比等。
在自層C1行進至層S1之前應用激活函數P1 (池化(pooling)),其池化來自每一特徵圖中之連續非重疊2×2區的值。池化函數P1之目的為使附近位置達到平均數(或亦可使用最大函數),以例如降低邊緣位置之相依性且在進入下一階段之前縮減資料大小。在層S1處,存在16個15×15特徵圖(亦即,各自具有15×15個像素之十六個不同陣列)。自層S1行進至層C2之突觸CB2用4×4濾波器掃描層S1中之圖,其中濾波器移位1個像素。在層C2處,存在22個12×12特徵圖。在自層C2行進至層S2之前應用激活函數P2 (池化),其池化來自每一特徵圖中之連續非重疊2×2區的值。在層S2處,存在22個6×6特徵圖。在自層S2行進至層C3之突觸CB3處應用激活函數(池化),其中層C3中之每一神經元經由CB3之各別突觸連接至層S2中之每一圖。在層C3處,存在64個神經元。自層C3行進至輸出層S3之突觸CB4將C3完全連接至S3,亦即,層C3中之每一神經元連接至層S3中之每一神經元。S3處之輸出包括10個神經元,其中最高輸出神經元判定類別。此輸出可例如指示原始影像之內容之識別或分類。
每一突觸層係使用非揮發性記憶體單元之陣列或陣列之一部分來實施。
圖10為可用於彼目的之系統的方塊圖。VMM系統32包括非揮發性記憶體單元,且用作一個層與下一層之間的突觸(諸如圖6中之CB1、CB2、CB3及CB4)。特定言之,VMM系統32包含包含以列及行配置之非揮發性記憶體單元之VMM陣列33、抹除閘極及字線閘極解碼器34、控制閘極解碼器35、位元線解碼器36及源極線解碼器37,其解碼VMM陣列33之各別輸入。至VMM陣列33之輸入可來自抹除閘極及字線閘極解碼器34或來自控制閘極解碼器35。源極線解碼器37在此實施例中亦解碼VMM陣列33之輸出。替代地,位元線解碼器36可解碼VMM陣列33的輸出。
非揮發性記憶體單元陣列33用於兩個目的。首先,其儲存將由VMM系統32使用之權重。其次,非揮發性記憶體單元陣列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構成複數個神經元。
圖10中至VMM系統32之輸入(WLx、EGx、CGx及選擇地BLx及SLx)可為類比層級、二進位層級、數位脈衝(在此情況下,可需要脈衝至類比轉換器PAC以將脈衝轉換為適合的輸入類比層級)或數位位元(在此情況下,提供DAC以將數位位元轉換為適合的輸入類比層級)且輸出可為類比層級(例如,電流、電壓或電荷)、二進位層級、數位脈衝或數位位元(在此情況下,提供輸出ADC以將輸出類比層級轉換成數位位元)。
圖11為描繪VMM系統32 (此處標記為VMM系統32a、32b、32c、32d及32e)之眾多層之使用的方塊圖。如圖11中所展示,表示為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系統(隱藏層級2) 32c之輸入的輸出,等等。VMM系統32之各種層充當卷積神經網路(CNN)之突觸及神經元的不同層。每一VMM系統32a、32b、32c、32d及32e可為包含各別非揮發性記憶體陣列之獨立、實體系統,或多個VMM系統可利用同一實體非揮發性記憶體陣列之不同部分,或多個VMM系統可利用同一實體非揮發性記憶體陣列之重疊部分。每一VMM系統32a、32b、32c、32d及32e亦可針對其陣列或神經元之各種部分進行時間多工。圖11中所示之實施例含有五個層(32a、32b、32c、32d、32e):一個輸入層(32a)、兩個隱藏層(32b,32c)及兩個完全連接層(32d,32e)。一般熟習此項技術者將瞭解,此僅為例示性的,且系統替代地可包含多於兩個隱藏層及多於兩個完全連接層。
VMM陣列中使用之每一非揮發性記憶體單元必須經抹除及程式化,以在浮動閘極中保持特定且精確量之電荷,亦即電子數目。舉例而言,每一浮動閘極必須保持N個不同值中之一者,其中N為可由每一單元指示之不同權重之數目。N之實例包括16、32、64、128及256。一個挑戰為以N的不同值所需之精確度及精細度程式化選定單元之能力。舉例而言,若選定單元可包括128個不同值中之一者,則在程式化操作中需要極限精確度。
需要適於與類比神經形態記憶體中之VMM陣列一起使用的經改良程式化系統及方法。
揭示用於選定記憶體單元之超精確調節之具體例。選擇地,選定記憶體單元首先使用粗略程式化及精細程式化方法來程式化。選定記憶體單元接著經由程式化相鄰記憶體單元進行超精確(超精細)程式化。當程式化相鄰記憶體單元時,相鄰記憶體單元之浮動閘極與選定記憶體單元之浮動閘極之間的電容耦合將使得選定記憶體單元之浮動閘極之電壓增大,但增量小於藉由直接程式化選定記憶體單元所能實現的增量。以此方式,選定記憶體單元可以對應於亞單電子精確度(分數電子精確度)將每一程式化脈衝添加至選定記憶體單元之浮動閘極之方式以超精確等級程式化。
在一個具體例中,揭示將神經記憶體中之選定記憶體單元程式化為目標值之方法,其包含:藉由將第一電壓序列施加至選定記憶體單元之端子而將選定記憶體單元之浮動閘極程式化至第一電壓;及藉由將第二電壓序列施加至相鄰調節單元之端子經由選定記憶體單元之浮動閘極與相鄰調節單元之浮動閘極之間的電容耦合將選定記憶體單元之浮動閘極程式化至第二電壓,其中第二電壓對應於目標值。
圖12描繪VMM系統1200之方塊圖。VMM系統1200包含VMM陣列1201、列解碼器1202、高電壓解碼器1203、行解碼器1204、位元線驅動器1205、輸入電路1206、輸出電路1207、控制邏輯1208,及偏壓產生器1209。VMM系統1200進一步包含高電壓產生區塊1210,其包含電荷泵1211、電荷泵調節器1212,及高電壓位準產生器1213。VMM系統1200進一步包含演算法控制器1214、類比電路系統1215、控制邏輯1216,及測試控制邏輯1217。下文描繪之系統及方法可實施於VMM系統1200中。
可在使用粗略程式化、精確程式化及超精確程式化之程式化程序期間實現各種精確層級。
如本文中針對神經網路所描繪,VMM陣列1200之非揮發性記憶體單元,亦即,VMM陣列1200之快閃記憶體較佳經組構以在次臨限區中操作。
本文中所描繪之非揮發性參考記憶體單元及非揮發性記憶體單元在次臨限區中經偏壓:
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)*Vt2
成比例,其中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)/nVt
Iin = wp * Io * e(Vg)/nVt
此處,wa=記憶體陣列中之每一記憶體單元的w。
字線或控制閘極可用作用於輸入電壓之記憶體單元之輸入。
替代地,本文中所描繪之VMM陣列的非揮發性記憶體單元可經組構以在線性區中操作:
Ids = beta* (Vgs-Vth)*Vds;beta = u*Cox*Wt/L,
Wα
(Vgs-Vth),
此意謂線性區中之權重W係與(Vgs-Vth)成比例
字線或控制閘極或位元線或源極線可用作在線性區中操作之記憶體單元之輸入。位元線或源極線可用作記憶體單元之輸出。
對於I至V線性轉換器,記憶體單元(諸如,參考記憶體單元或周邊記憶體單元)或在線性區中操作之電晶體或電阻器可用以將輸入/輸出電流線性地轉換成輸入/輸出電壓。
替代地,本文中所描繪之VMM陣列之記憶體單元可經組構以在飽和區中操作:
Ids =1
/2
* beta* (Vgs-Vth)2
;beta = u*Cox*Wt/L
Wα (Vgs-Vth)2
,意謂權重W係與(Vgs-Vth)2
成比例
字線、控制閘極或抹除閘極可用作在飽和區中操作之記憶體單元的輸入。位元線或源極線可用作輸出神經元之輸出。
替代地,本文中所描繪之VMM陣列之記憶體單元對於神經網路之每一層或多層可用於所有區或其組合(次臨限區、線性區或飽和區)中。
用於VMM中單元之粗略程式化及精確程式化之具體例
圖13A描繪利用粗略程式化及精確程式化之程式化方法1300。首先,該方法開始(步驟1301),這通常回應於接收到程式命令而進行。接下來,大容量程式化操作將所有單元程式化至「0」狀態(步驟1302)。接著,軟抹除操作將所有單元抹除至中間弱抹除層級,使得每一單元將在讀取操作期間汲取例如大致3至5 μA之電流(步驟1303)。此與深度抹除層級相反,其中每一單元將在讀取操作期間汲取大致約20至30 μA之電流。接著,對所有未使用單元執行硬程式化,使其處於極深的程式化狀態,以將電子添加至單元的浮動閘極(步驟1304),以確保彼等單元實際上為「關閉」的,此意謂彼等單元將在讀取操作期間汲取可忽略的數量的電流。
接著對選定單元執行粗略程式化方法(以使單元更接近於目標,例如1.2X-100X目標) (步驟1305),隨後對選定單元執行精確程式化方法(步驟1306)以程式化每一選定單元所需的精確值。
圖13B描繪另一程式化方法1310,其類似於程式化方法1300且亦利用粗略程式化及精確程式化。然而,代替如在圖13A的步驟1302中之將所有單元程式化為「0」狀態之程式化操作,在該方法開始(步驟1301)之後,使用抹除操作以將所有單元抹除至「1」狀態(步驟3312)。接著,軟(弱)程式化操作(步驟1313)用於將所有單元程式化至中間狀態(層級),使得每一單元將在讀取操作期間汲取大致0.2至5 uA之電流(例如,2X-100X目標)。之後,將遵循如圖13A中的粗略及精確程式化方法。圖13B的具體例之變化將完全移除軟程式化方法(步驟1313)。
圖14描繪粗略程式化方法1305之第一具體例,其為搜尋及執行方法1400。首先,執行查找表或函數搜尋,以基於意欲儲存於選定單元中之值判定用於彼選定單元之粗略目標電流值(ICT
)(步驟1401)。此表或函數例如藉由矽特性化或自晶圓測試中之校準形成。假定選定單元可經程式化以儲存N個可能值(例如但不限於128、64、32)中之一者。N個值中之每一者將對應於在讀取操作期間藉由選定單元汲取之不同所需電流值(ID
)。在一個具體例中,查找表可能含有M個可能電流值,以在搜尋及執行方法1400期間用作用於選定單元之粗略目標電流值ICT
,其中M為小於N的整數。舉例而言,若N為8,則M可為4,此意謂存在選定單元可儲存之8個可能值,且4個粗略目標電流值中之一者將被選擇為用於搜尋及執行方法1400之粗略目標。亦即,搜尋及執行方法1400 (其同樣為粗略程式化方法1305之具體例)預期快速地將選定單元程式化為略微接近所需電流值(ID
)之粗略目標電流值(ICT
),且接著精確程式化方法1306預期較精確地將選定單元程式化為極接近所需電流值(ID
)。
表6及7中針對N=8及M=4之簡單實施例描繪單元值、所需電流值及粗略目標電流值的實施例:
表6:用於N=8之N個所需電流值的實施例
表7:用於M=4之M個目標電流值的實施例
偏移值ICTOFFSETx
用於防止在粗略調節期間超越所需電流值。一旦選擇粗略目標電流值ICT
,則藉由基於選定單元(例如,記憶體單元210、310、410或510)之單元架構類型將電壓v0
施加至選定單元之適當端子而程式化選定單元(步驟1402)。若選定單元屬於圖3中之類型之記憶體單元310,則電壓v0
將施加至控制閘極端子28 (及/或源極線14),且v0
取決於粗略目標電流值ICT
可為例如5至8 V。選擇地,v0
的值可自儲存v0
相對於粗略目標電流值ICT
之電壓查找表來判定。
儲存於選定單元中之值 | 所需電流值(ID ) |
000 | 100 pA |
001 | 200 pA |
010 | 300 pA |
011 | 400 pA |
100 | 500 pA |
101 | 600 pA |
110 | 700 pA |
111 | 800 pA |
粗略目標電流值(ICT ) | 相聯結單元值 |
800 pA+ ICTOFFSET1 | 000,001 |
1600 pA+ ICTOFFSET2 | 010,011 |
2400 pA+ ICTOFFSET3 | 100,101 |
3200 pA+ ICTOFFSET4 | 110,111 |
接下來,藉由施加電壓vi
= vi-1
+ vincrement
來程式化選定單元,其中i在1處開始並且每當重複此步驟時遞增,且其中vincrement
為較小精細電壓,其將引起適合於所需改變之精細度的程式化程度(步驟1403)。因此,執行第一次步驟1403,i=1,且v1
將為v0
+ vincrement
。接著,進行驗證操作(步驟1404),其中對選定單元執行讀取操作且量測藉由選定單元汲取之電流(Icell
)。若Icell
小於或等於ICT
(其在此處為第一臨限值),則完成搜尋及執行方法1400並且精確程式化方法1306可開始。若Icell
不小於或等於粗略目標電流值ICT
,則重複步驟1403,並且i遞增。
因此,在當粗略程式化方法1305結束且精確程式化方法1306開始時之點處,電壓vi
將為用於程式化選定單元之最末電壓,且選定單元將儲存與粗略目標電流值ICT
相聯結的值。精確程式化方法1306的目標為將選定單元程式化至該點,其中在讀取操作期間,其汲取電流ID
(±可接受量的偏差,諸如+/-50 pA或+/-30%或更少),其為與值相聯結的所需電流值,其意欲儲存於選定單元中。
圖15描繪不同電壓進展的實施例,其可在粗略程式化方法1305及/或精確程式化方法1306期間施加至選定記憶體單元之控制閘極。
在第一方法下,將逐漸增大的電壓逐漸施加至控制閘極以進一步程式化選定記憶體單元。起點為vi
,其大致約為在粗略程式化方法1305期間施加之最末電壓(視需要+或-某一角接電壓或取決於目標電流)。增量vp1
被添加至vi
,且電壓vu
+ vp1
接著用於程式化選定單元(由進展1501中之左側的第二脈衝指示)。vp1
係小於vincrement
(在粗略程式化方法1305期間使用的電壓增量)的增量。在施加每一程式化電壓之後,執行驗證步驟(類似於步驟1404),其中判定Icell
是否小於或等於IPT1
(其為第一精度目標電流值且此處為第二臨限值),其中IPT1
= ID
+ IPT1OFFSET
,其中IPT1OFFSET
為經添加以防止程式超越之偏移值。若否,則將另一增量vp1
添加至先前施加之程式化電壓,且重複該程序。在Icell
小於或等於IPT1
之點處,接著程式化序列的此部分停止。選擇地,若IPT1
以足夠的精確度等於ID
或幾乎等於ID
,則成功地程式化選定記憶體單元。
若IPT1
不足夠接近ID
,則可進行較小精細度的進一步程式化。此處,目前使用進展1502。進展1502之起點大致約為用於在進展1501下進行程式化之最末電壓(視需要+或-某一角接電壓或取決於目標電流)。Vp2
(其小於vp1
)之增量經添加至彼電壓,且經組合電壓經施加以程式化選定記憶體單元。在施加了每一程式化電壓之後,執行驗證步驟(類似於步驟1404),在該步驟中判定Icell
是否小於或等於IPT2
(其為第二精度目標電流值且此處為第三臨限值),其中IPT2
= ID
+ IPT2OFFSET
,IPT2OFFSET
為經添加以防止程式超越之偏移值。通常,IPT2OFFSET
<IPT1OFFSET
,因為程式化步驟每一輪次變得較小且較精確。若否,則將另一增量Vp2
添加至先前施加之程式化電壓,且重複該程序。在Icell
小於或等於IPT2
之點處,接著程式化序列的此部分停止。此處,假定IPT2
等於ID
或足夠接近ID
使得程式化可停止,此係因為已經以足夠的精確度達成目標值。一般熟習此項技術者可瞭解,可以所使用之愈來愈小的程式化增量來應用額外進展。舉例而言,在圖16中,施加三個進展(1601、1602及1603)而非僅兩個進展。
第二方法展示於圖15中之進展1503及圖16中之進展1604中。此處,代替增大在選定記憶體單元之程式化期間施加之電壓,在逐漸增加時段的持續時間內施加相同電壓。代替添加增量電壓,諸如進展1501中之vp1
及進展1503中之vp2
,時間tp1
之額外增量經添加至程式化脈衝使得每一所施加脈衝比先前施加之脈衝長tp1
。在施加每一程式化脈衝之後,執行驗證步驟(類似於步驟1404)。選擇地,可應用額外進展,其中經添加至程式化脈衝之額外時間增量的持續時間短於先前所使用的進展。儘管僅展示一個時間進展,但一般熟習此項技術者將瞭解,可應用任何數目個不同時間進展。
替代地,各脈衝之持續時間對於脈衝進展1503及1603可相同,且系統可依賴於用以執行額外程式化之脈衝之數目。
現將為粗略程式化方法1305之三個額外具體例提供額外細節。
圖17描繪粗略程式化方法1305之第一具體例,其為自適應校準方法1700。該方法開始(步驟1701)。單元在預設初始值v0
下經程式化(步驟1702)。不同於在搜尋及執行方法1400中,此處v0
並非自查找表導出,並且實際上可為相對較小的預定初始值。單元的控制閘極電壓係在第一電流值IR1
(例如,100 na)及第二電流值IR2
(例如,10 na)下量測,並且次臨限斜率係基於彼等量測(例如,360 mV/dec)而判定並且儲存(步驟1703)。
判定新的所需電壓vi
。第一次執行此步驟時,i=1,並且v1
係使用諸如以下的次臨限等式基於所儲存之次臨限斜率值及電流目標以及偏移值而經判定:
Vi
= Vi-1
+ Vincrement
,
其中Vincrement
係與Vg之斜率成比例
Vg= n*Vt*log[Ids/wa*Io]
此處,wa為記憶體單元之w,Ids為電流目標加上偏移值。
若所儲存次臨限斜率值相對陡峭,則可使用相對較小之電流偏移值。若所儲存次臨限斜率值相對平坦,則可使用相對較高的電流偏移值。因此,判定次臨限斜率值將允許選擇針對所討論的特定單元定製的電流偏移值。此最終將使程式化程序較短。當重複此步驟時,i遞增,並且vi
= vi-1
+ vincrement
。接著使用vi
程式化該單元。舉例而言,可自儲存vincrement
之值相對於所需電流值(ID
)之查找表判定vincrement
。
接下來,執行驗證操作,其中對選定單元執行讀取操作,且量測藉由選定單元汲取之電流(Icell
)(步驟1705)。若Icell
小於或等於粗略目標電流值ICT
,其中ICT
經設定成= ID
+ ICTOFFSET
,其中ICTOFFSET
為經添加以防止程式超越之偏移值,則完成自適應校準方法1700且精確程式化方法2206可開始。若Icell
不小於或等於粗略目標電流值ICT
,則重複步驟1704至1705,並且i遞增。
圖18描繪粗略程式化方法1305之第二具體例,其為自適應校準方法1800。該方法開始(步驟1801)。單元在預設初始值v0
下經程式化(步驟1802)。v0
係自查找表導出,諸如自矽特性化形成,其中表值包括偏移以免超越經程式化目標。
在步驟1803中,形成用於預測下一程式化電壓之I-V斜率參數。將第一控制閘極讀取電壓VCGR1
施加至選定單元,且量測所得單元電流IR1
。接著,第二控制閘極讀取電壓VCGR2
經施加至選定單元,且量測所得單元電流IR2
。斜率係例如根據次臨限區(在次臨限值中操作之單元)中之等式基於彼等量測而判定且儲存:
斜率= (VCGR1
- VCGR2
)/(LOG(IR1
) - LOG(IR2
))
(步驟1803)。用於VCGR1
及VCGR2
之值的實施例分別為1.5 V及1.3 V。
判定斜率資訊允許選擇針對所討論的特定單元定製的Vincrement
值。此最終將使程式化程序較短。
當重複步驟1804時,i遞增,新的所需程式化電壓Vi
係使用諸如以下之等式基於經儲存斜率值及電流目標ICT
以及偏移值而判定:
vi
= vi-1
+ vincrement
,
其中對於i-1,vincrement
= α*斜率* (LOG (IR1
) - LOG (ICT
)),
其中ICT
為粗略目標電流並且α為預定常數<1 (程式化偏移值)以防止超越,例如,0.9。
該單元接著使用Vi
經程式化。(步驟1805)此處,vi
可施加至選定單元之源極線端子、控制閘極端子或抹除閘極端子,取決於所使用之程式化機制。
接下來,進行驗證操作,其中對選定單元執行讀取操作,且量測藉由選定單元汲取之電流(Icell
) (步驟1806)。若Icell
小於或等於粗略目標臨限值ICT
,其中粗略目標臨限值ICT
經設定成= ID
+ ICTOFFSET
,其中ICTOFFSET
為經添加以防止程式超越之偏移值,則該程序繼續進行至步驟1807。否則,該程序返回至步驟1804且i遞增。
在步驟1807中,將Icell
與小於粗略目標臨限值ICT
之臨限值ICT2
對照比較。此步驟之目的為查看是否已發生超越。亦即,儘管對於Icell
,目標為低於粗略目標臨限值ICT
,但若其降低至遠低於粗略目標臨限值ICT
,則已發生超越且所儲存值實際上可對應於錯誤值。若Icell
並不小於或等於ICT2
,則不會發生超越,且自適應校準方法1800已完成,此時,該程序行進至精確程式化方法1306。若Icell
小於或等於ICT2
,則已發生超越。接著抹除選定單元(步驟1808),且程式化程序在步驟1802處開始,其中取決於其超越量而調整諸如具有較小值之Vincrement
。選擇地,若執行步驟1808超過預定數目的次數,則可認為選定單元為不應使用之不良單元。
精確程式化方法1306由多個驗證及程式化循環組成,其中以固定脈衝寬度將程式化電壓遞增恆定的精細電壓或其中程式化電壓係固定的且程式化脈衝寬度相對於接下來的脈衝變化或為恆定的,如上文關於圖15所描繪。
選擇地,判定讀取或驗證操作期間之穿過選定的非揮發性記憶體單元之電流是否小於或等於第一臨限電流值ICT
之步驟可藉由將固定偏壓施加至非揮發性記憶體單元之端子、量測並數位化藉由選定的非揮發性記憶體單元汲取之電流以產生數位輸出位元且比較數位輸出位元與表示第一臨限電流值ICT
之數位位元來執行。
選擇地,判定在讀取或驗證操作期間穿過選定的非揮發性記憶體單元之電流是否小於或等於第一臨限電流值ICT
之步驟可藉由將輸入施加至非揮發性記憶體單元之端子、以輸入脈衝調變藉由非揮發性記憶體單元汲取之電流以產生經調變輸出、數位化經調變輸出以產生數位輸出位元及比較數位輸出位元與表示第一臨限電流ICT
之數位位元來執行。
圖19描繪程式化方法1305之第三具體例,其為絕對校準方法1900。該方法開始(步驟1901)。單元在預設初始值v0
下經程式化(步驟1902)。單元之控制閘極電壓(VCGRx
)在電流目標值Itarget
下經量測並且儲存(步驟1903)。新所需電壓v1
基於所儲存控制閘極電壓及電流目標值Itarget
以及偏移值Itarget
+ Ioffset
而判定(步驟1904)。舉例而言,新所需電壓v1
可計算如下:v1
= v0
+ θ*(VCGBIAS
-所儲存VCGR
),θ為約1,VCGBIAS
為在最大目標電流下之預設讀取控制閘極電壓,通常約1.5 V,且所儲存VCGR
為步驟1903之經量測讀取控制閘極電壓。簡言之,基於經量測控制閘極電壓與目標控制閘極電壓之間的差而調整經更新程式化電壓。
接著使用vi
程式化該單元。當i=1時,使用來自步驟1904之電壓v1
。當i>=2時,使用電壓vi
= vi-1
+ vincrement
。可自儲存vincrement
的值相對於目標電流值ICT
之查找表判定vincrement
。接下來,進行驗證操作,其中對選定單元執行讀取操作,且量測藉由選定單元汲取之電流(Icell
) (步驟1906)。若Icell
小於或等於粗略目標電流值ICT
,則完成絕對校準方法1900且精確程式化方法1306可開始。若Icell
不小於或等於粗略目標電流值ICT
,則重複步驟1905至1906,並且i遞增。
替代地,粗略及/或精細程式化方法可包含一個端子(例如,CG)上之程式化電壓之遞增及另一端子(例如,EG或SL)上之電壓之減小以用於耦合至浮動閘極中之電荷之較精確控制。
迄今為止,所描繪粗略及精確程式化方法對於大多數系統將足夠精確。然而,此等方法甚至對其精確度具有限制。最終精確度可被理解為一個電子精確度。圖20描繪申請人針對上文所描繪粗略及精確程式化方法之工作具體例收集之資料。圖20描繪浮動閘極電壓相對於試圖將浮動閘極電壓2002程式化得儘可能接近於目標2001所執行之程式化脈衝之數目。如可看出,浮動閘極電壓2002能夠在+/-4 mV內近似目標2001,其等效於添加至浮動閘極之單個電子之電荷。這對於某些系統可能不夠精確。舉例而言,若N (任何浮動閘極上可保持之不同值之數目)較大(例如,512),則可需要大於+/-4 mV之精確度,此意謂可需要亞電子(分數電子)精確程式化;亦即,需要浮動閘極電壓可以小於+/-4 mV之增量調整之機制,此意謂電子之一部分在某種程度上必須添加或自浮動閘極減去。並且,可看出,在程式化程序期間浮動閘極電壓之增量並不均勻且可預測,此意謂系統將未必總是在全精確度下達成給定目標電壓。此可歸因於程式化物理性質之統計性質。
VMM中單元之超精確程式化之具體例
圖21至圖28描繪超精確程式化方法及系統之具體例,其相較於單獨經由粗略程式化方法1305及精確程式化方法1306可實現而允許較精確程式化。超精確程式化方法及系統使得選定記憶體單元之浮動閘極之電壓能夠藉由對於每一程式化脈衝將等效於單個電子之一部分(亞單電子)之電荷添加至浮動閘極而增大,此係實體上可能之最精細程式化遞增。
圖21描繪VMM陣列2100,其包含非揮發性記憶體單元之列及行。此處,展示記憶體單元之一列之部分,特定言之,資料記憶體單元2101、資料記憶體單元2102、調節記憶體單元2103、調節記憶體單元2104、資料記憶體單元2105及資料記憶體單元2106,其分別耦接至位元線2121、2122、2123 (調節BL)、2124 (調節BL)、2125及2126,且耦接至控制閘極線並選擇地耦接至字線、抹除線及/或源極線,取決於使用哪一類型之記憶體單元架構(例如,記憶體單元210、310、410、510、610、710或810)。資料記憶體單元2101包含浮動閘極2111,資料記憶體單元2102包含浮動閘極2112,調節記憶體單元2103包含浮動閘極2113,調節記憶體單元2104包含浮動閘極2114,資料記憶體單元2105包含浮動閘極2115,且資料記憶體單元2106包含浮動閘極2116。調節BL 2123及2124分別為用於對相鄰位元線執行超精確調節之位元線。
如通常會出現之情況一樣,同一列中相鄰浮動閘極之間存在電容耦合,如圖21中所示。VMM陣列2100利用此現象以達成超精確可程式化性。在此實施例中,資料記憶體單元2102用於儲存資料,但調節記憶體單元2103並非用於儲存資料且替代地僅用於輔助經由電容耦合程式化單元2102。類似地,資料記憶體單元2105用於儲存資料,但調節記憶體單元2104僅用於輔助經由電容耦合程式化單元2105。資料記憶體單元2101及2106用於儲存資料且其程式化由未展示之相鄰調節單元輔助。
在一個具體例中,值得注意地,當資料記憶體單元彼此相鄰時,其間隔開距離d2
,如對於資料記憶體單元2101及2102及對於資料記憶體單元2105及2106所示。然而,當資料記憶體單元與調節記憶體單元相鄰時,其間隔開距離d1
,如對於資料記憶體單元2102與相鄰調節記憶體單元2103及對於資料記憶體單元2104與相鄰調節記憶體單元2105所示。當調節記憶體單元與另一調節記憶體單元相鄰時,其可間隔開距離d1
或d2
,如對於調節記憶體單元2103及2104所示。藉由設計,d2
> d1
。結果,相隔距離d2
之單元之間的電容耦合具有電容C2
,而相隔距離d1
之單元之間的電容耦合具有電容C1
,其中C1
> C2
。亦即,電容在較接近於彼此之單元之間較大。此外,距離d1
可被設計成達成期望值C1
以最佳化調節記憶體單元對資料記憶體單元之效應且因此最佳化最終程式化精確度。
若資料記憶體單元2102為選定單元且需要將資料記憶體單元2102程式化至特定目標值,則資料記憶體單元2102可使用先前參考圖13至圖20所描繪之粗略及精確程式化方法程式化至一定程度。然而,在達成或超過目標值之前,粗略程式化及精確程式化停止,且替代地實施超精確程式化方法。
特定言之,調節記憶體單元2103使用粗略及精確程式化方法來程式化。由於電容耦合,當程式化調節記憶體單元2103時,浮動閘極2113中之電荷將使得浮動閘極2112上之電荷亦增大,但增大量相較於浮動閘極2113之電荷之增大量較小。經由此機制,浮動閘極2112將以相較於浮動閘極2113中發生之增量較精細之增量增加或這可藉由直接使用粗略及精確程式化方法1305及1306程式化單元2102來實現。在此情況下,對調節記憶體單元2103執行程式化,但驗證操作僅需要對資料記憶體單元2102執行。一旦資料記憶體單元2102中達成目標值,浮動閘極2113就維持在其電荷狀態下使得浮動閘極2112保持在目標值下。
圖22描繪雙向調節下系統之資料記憶體單元2102、調節記憶體單元2103、調節記憶體單元2104及資料記憶體單元2105之例示性佈局2200 (意謂程式化及抹除兩者可由於抹除閘極為水平且控制閘極為豎直而用於調節目的,此意謂控制閘極正交於抹除閘極;類似地,控制閘極或字線可正交於源極線)。此處,CG閘極豎直地共用於兩個相鄰行。在可利用雙向調節之單元的情況下,超精確調節可藉由抹除或程式化調節單元或這兩者來完成。
圖23描繪利用VMM陣列2100之替代具體例。此處,記憶體單元2102用於儲存正值(W+),且記憶體單元2105用於儲存負值(W-),且此等記憶體單元共同儲存值W,其中W = (W+) - (W-),這可在讀取或驗證操作期間藉由減法電路實現。在此具體例中,調節單元,諸如調節單元2103及2104藉由用於將相鄰資料單元調節至相反權重之權重來程式化。因此,舉例而言,位元線2123程式化調節記憶體單元2103以使得電容耦合減小單元2102中浮動閘極2112之電壓,且位元線2124程式化調節記憶體單元2104以使得電容耦合減小記憶體單元2105中浮動閘極2115之電壓。
圖24描繪調節記憶體單元對相鄰資料記憶體單元,例如圖21中之調節記憶體單元2103及資料記憶體單元2102之效應。最初,資料記憶體單元2102及調節記憶體單元2103皆程式化為接近目標電壓2401,但仍低於該目標電壓。接著,調節記憶體單元2103經程式化使得浮動閘極2113之電壓可超過目標電壓2401。浮動閘極2112上之電壓經驗證(經由讀取驗證操作),且調節記憶體單元2103繼續經程式化直至資料記憶體單元2102達成確切目標電壓2401。此程序產生等效於在程式化脈衝期間添加至浮動閘極2112之可能的亞單電子的電荷,其為實體上可能之程式化之最精細增量。
圖25A描繪利用VMM陣列2100之另一替代具體例。此處,調節位元線與資料位元線(構成位元線對)可互換。舉例而言,具有較大量之雜訊(諸如隨機電報雜訊RTN)之位元線對內之位元線可指定為位元線對內之調節位元線。舉例而言,若記憶體單元2102相較於記憶體單元2103具有較大RTN雜訊,則位元線2122可指定為調節位元線,亦即記憶體單元2102指定為調節記憶體單元,且位元線2123指定為資料位元線,亦即記憶體單元2103指定為資料記憶體單元。圖25B示意性地展示如何進行此操作。位元線2122及2123兩者分別經由位元線讀取電晶體2501及2502饋送為至感測放大器2503中之輸入。相較於其他位元線具有較少RTN雜訊之位元線將指定為資料位元線,亦即相聯結記憶體單元指定為資料記憶體單元。位元線對中之單元間隔開距離d1
,其各別浮動閘極之間具有固定電容C1
。並不用作對之單元可與相鄰單元間隔開距離d2
,其如上文所指示大於距離d1
,該等單元具有小於C1
之所得電容C2
。
圖26描繪超精確程式化方法2600。該方法開始(步驟2601)。選定資料記憶體單元及其相鄰調節記憶體單元經抹除(步驟2602)。未選定記憶體單元經深度程式化(步驟2603)。對選定資料記憶體單元執行粗略程式化(步驟2604)。對選定資料記憶體單元執行使用增量及/或減量之精確程式化(步驟2605),及/或對選定資料記憶體單元執行使用恆定電壓之精確程式化(步驟2605)。接著,使用相鄰調節記憶體單元與選定資料記憶體單元之間的電容耦合執行超精確程式化(步驟2607)。一旦達成目標值,該方法就結束(步驟2608)。
圖27描繪超精確程式化方法2700。該方法開始(步驟2701)。整個VMM陣列經抹除(步驟2702)。未選定單元經深度程式化(步驟2703)。所有單元使用粗略程式化程式化至中間值(例如,約0.5至1 μA)(步驟2704)。對一或多個選定資料記憶體單元執行使用增量之精確程式化(步驟2705),及/或對選定資料記憶體單元執行使用恆定電壓之精確程式化(步驟2706)。接著,使用相鄰調節記憶體單元與選定資料記憶體單元之間的電容耦合執行超精確程式化(步驟2707)。一旦達成目標值,該方法就結束(步驟2708)。
在上文所描繪的具體例,當選定資料記憶體單元經讀取或驗證時,其相聯結調節記憶體單元亦必須經讀取或驗證,此係由於電容耦合在資料記憶體單元經讀取或驗證時必須有效。進行此操作之一種方式為在讀取或驗證操作期間將資料位元線及調節位元線耦接至感測放大器。
超精確程式化之最終結果展示於圖28中,該圖描繪申請人針對本文中所描繪之超精確程式化方法及系統之工作具體例所收集之資料。圖28描繪資料記憶體單元(例如,2102)及相鄰調節記憶體單元(例如,2103)之浮動閘極電壓相對於試圖藉由程式化相鄰調節記憶體單元2103中之浮動閘極2113而將浮動閘極2112之電壓確切程式化至目標2801所執行之程式化脈衝之數目。選定資料記憶體單元2102僅在90個脈衝下首先經程式化,且藉由僅將程式化脈衝提供至相鄰調節記憶體單元2103而進行程式化之平衡。如可看出,超精確程式化相較於單獨粗略程式化及精細程式化方法(描繪於圖20中)要精確得多,且浮動閘極2112由於浮動閘極2112與2113之間的電容耦合的電壓增量實際上對應於每一程式化脈衝添加至浮動閘極2112之小於一個電子。
超精確程式化之另一具體例將豎直浮動閘極用於浮動閘極耦接而非將水平浮動閘極用於浮動閘極耦接,諸如上文參考調節位元線所描繪。在此情況下,相鄰列(調節列)用於耦接目的。這特別適合於記憶體單元210、310、510及710,在此情況下頂部FG及底部FG中不存在實體障壁(抹除閘極)。
超精確程式化之另一具體例將重疊浮動閘極用於浮動閘極耦接,諸如當調節單元浮動閘極與目標單元浮動閘極重疊時。重疊諸如係在一個浮動閘極部分地處於另一浮動閘極頂部上時。
應注意,如本文中所使用,術語「在...上方」及「在...上」兩者包括「直接在...上」(其間未設置有中間材料、元件或空間)及「間接地在...上」(其間設置有中間材料、元件或空間)。同樣地,術語「相鄰」包括「直接相鄰」(其間未設置有中間材料、元件或空間)及「間接相鄰」(其間設置有中間材料、元件或空間),「安裝至」包括「直接安裝至」(其間未設置有中間材料、元件或空間)及「間接安裝至」(其間設置有中間材料、元件或空間),且「電耦接」包括「直接電耦接至」(其間無將元件電連接在一起的中間材料或元件)及「間接電耦接至」(其間具有將元件電連接在一起的中間材料或元件)。舉例而言,「在基板上方」形成元件可包括直接在基板上形成元件而其間無中間材料/元件,以及間接地在基板上形成元件而其間具有一或多種中間材料/元件。
12:半導體基板
14:源極區
16:汲極區
18:通道區
20,20A,20B:浮動閘極
22:字線端子/選擇閘極/控制閘極端子
24:位元線端子
28:控制閘極(CG)端子
30:抹除閘極
31:數位至類比轉換器
32,32a,32b,32c,32d,32e:向量矩陣乘法(VMM)系統
33:VMM陣列/非揮發性記憶體單元陣列
34:抹除閘極及字線閘極解碼器
35:控制閘極解碼器
36:位元線解碼器
37:源極線解碼器
38:差分求和器
39:激活函數電路
210,310:記憶體單元
410:四閘極記憶體單元
510:記憶體單元
610:三閘極記憶體單元
710:堆疊閘極記憶體單元
810:雙分離閘極記憶體單元
1200:向量矩陣乘法(VMM)系統
1201:VMM陣列
1202:列解碼器
1203:高電壓解碼器
1204:行解碼器
1205:位元線驅動器
1206:輸入電路
1207:輸出電路
1208:控制邏輯
1209:偏壓產生器
1210:高電壓產生區塊
1211:電荷泵
1212:電荷泵調節器
1213:高電壓位準產生器
1214:演算法控制器
1215:類比電路系統
1216:控制邏輯
1217:測試控制邏輯
1300:程式化方法
1301,1302,1303,1304,1305,1306,1312,1313:步驟
1310:程式化方法
1400:搜尋及執行方法
1401,1402,1403,1404:步驟
1501,1502,1503,1601,1602,1603,1604:進展
1700:自適應校準方法
1701,1702,1703,1704,1705:步驟
1800:自適應校準方法
1801,1802,1803,1804,1805,1806,1807,1808:步驟
1900:絕對校準方法
1901,1902,1903,1904,1905,1906:步驟
2001:目標
2002:浮動閘極電壓
2100:VMM陣列
2101,2102:資料記憶體單元
2103,2104:調節記憶體單元
2105,2106:資料記憶體單元
2111,2112,2113,2114,2115,2116:浮動閘極
2121,2122,2123,2124,2125,2126:位元線
2200:例示性佈局
2401:目標電壓
2501,2502:位元線讀取電晶體
2503:感測放大器
2600:超精確程式化方法
2601,2602,2603,2604,2605,2606,2607,2608:步驟
2700:超精確程式化方法
2701,2702,2703,2704,2705,2706,2707,2708:步驟
2801:目標
BL,BLx:位元線
C1,C2,C3:層
C1
,C2
:電容
CB1:第一突觸
CB2,CB3,CB4:突觸
CG,CG1,CG2,CG1',CG2',CGx:控制閘極
d1
,d2
:距離
EG,EG2,EGx:抹除閘極
FG:浮動閘極
P1,P2:激活函數
S0:輸入層
S1,S2:層
S3:輸出層
SL,SL1,SL2:源極線
WL,WL1,WL2,WL1',WL2',WLx:字線
圖1描繪先前技術人工神經網路。
圖2描繪先前技術分離閘極快閃記憶體單元。
圖3描繪另一先前技術分離閘極快閃記憶體單元。
圖4描繪另一先前技術分離閘極快閃記憶體單元。
圖5描繪另一先前技術分離閘極快閃記憶體單元。
圖6描繪另一先前技術分離閘極快閃記憶體單元。
圖7描繪先前技術堆疊閘極快閃記憶體單元。
圖8描繪先前技術雙分離閘極快閃記憶體單元。
圖9描繪利用一或多個非揮發性記憶體陣列之例示性人工神經網路之不同層級。
圖10描繪向量矩陣乘法系統。
圖11描繪利用一或多個向量矩陣乘法系統之例示性人工神經網路。
圖12描繪VMM系統之具體例。
圖13A描繪程式化非揮發性記憶體單元之方法之具體例。
圖13B描繪程式化非揮發性記憶體單元之方法之另一具體例。
圖14描繪粗略程式化方法之具體例。
圖15描繪用於非揮發性記憶體單元之程式化中的例示性脈衝。
圖16描繪用於非揮發性記憶體單元之程式化中的例示性脈衝。
圖17描繪用於非揮發性記憶體單元之程式化之校準演算法,其基於單元的斜率特性調節程式化參數。
圖18描繪用於非揮發性記憶體單元之程式化之校準演算法。
圖19描繪用於非揮發性記憶體單元之程式化之校準演算法。
圖20描繪選定記憶體單元在程式化脈衝序列期間之浮動閘極電壓。
圖21描繪能夠進行超精確程式化之VMM陣列。
圖22描繪圖21之VMM陣列之單元佈局。
圖23描繪能夠進行超精確程式化之VMM陣列,其中某些行含有正值(W+)且某些行含有負值(W-)。
圖24描繪選定記憶體單元在程式化脈衝序列期間之浮動閘極電壓。
圖25A描繪能夠進行超精確程式化之VMM陣列,其中共同讀取相鄰單元以減小雜訊。
圖25B描繪感測放大器共同讀取之相鄰單元之示意圖。
圖26描繪超精確程式化方法。
圖27描繪另一超精確程式化方法。
圖28描繪選定記憶體單元及相鄰調節單元在程式化脈衝序列期間之浮動閘極電壓。
2100:VMM陣列
2101,2102:資料記憶體單元
2103,2104:調節記憶體單元
2105,2106:資料記憶體單元
2111,2112,2113,2114,2115,2116:浮動閘極
2121,2122,2123,2124,2125,2126:位元線
BL:位元線
C1,C2:電容
d1,d2:距離
FG:浮動閘極
Claims (43)
- 一種將一神經記憶體中之一選定記憶體單元程式化至一目標值之方法,其包含:藉由將一第一電壓序列施加至該選定記憶體單元之多個端子而將該選定記憶體單元之一浮動閘極程式化至一第一電壓,其中該第一電壓並非對應於該目標值;及藉由將一第二電壓序列施加至一相鄰調節單元之多個端子而經由該選定記憶體單元之該浮動閘極與該相鄰調節單元之一浮動閘極之間的電容耦合將該選定記憶體單元之該浮動閘極程式化至一第二電壓,其中該第二電壓對應於該目標值。
- 如請求項1之方法,其中,該選定記憶體單元之該等端子包含耦接至一位元線之一位元線端子、耦接至一源極線之一源極線端子及耦接至一字線之一字線端子。
- 如請求項2之方法,其中,該選定記憶體單元之該等端子進一步包含耦接至一控制閘極線之一控制閘極端子。
- 如請求項3之方法,其中,該選定記憶體單元之該控制閘極端子連接至一控制閘極線,且其中該控制閘極線連接至含有該選定記憶體單元之一行單元及一相鄰行單元的控制閘極端子。
- 如請求項3之方法,其中,該選定記憶體單元之該等端子進一步包含耦接至一抹除閘極線之一抹除閘極端子。
- 如請求項5之方法,其中,該控制閘極正交於該抹除閘極線。
- 如請求項5之方法,其中,該控制閘極線正交於該源極線。
- 如請求項2之方法,其中,該選定記憶體單元為一分離閘極記憶體單元。
- 如請求項2之方法,其中,該選定記憶體單元為一堆疊閘極記憶體單元。
- 如請求項1之方法,其中,在該第二電壓序列中之每一程式化脈衝期間將等效於一亞單電子之一電荷添加至該選定記憶體單元之該浮動閘極。
- 如請求項1之方法,其中,該選定記憶體單元及該相鄰調節單元係包含在含有複數對之相鄰資料單元及調節單元的一列內。
- 如請求項1之方法,其中,該選定記憶體單元及該相鄰調節單元係包含在含有複數對之相鄰資料單元及調節單元的一陣列內。
- 如請求項11之方法,其中,相鄰資料單元之間的一距離大於一相鄰資料單元與調節單元之間的一距離。
- 如請求項11之方法,其中,該列中該等資料單元之一半儲存一W+值且該列中該等資料單元之一半儲存一W-值。
- 如請求項14之方法,其中,將儲存一W+值的該等資料單元之該一半用作調節單元。
- 如請求項14之方法,其中,將儲存一W-值的該等資料單元之一半用作調節單元。
- 如請求項11之方法,其中,在一讀取操作期間,一資料位元線及一調節位元線之一相鄰對耦接至一感測放大器。
- 如請求項17之方法,其中,該資料位元線與該調節位元線可互換。
- 如請求項1之方法,其中,將該選定記憶體單元之一浮動閘極程式化至該第一電壓之該步驟包含粗略程式化。
- 如請求項1之方法,其中,將該選定記憶體單元之一浮動閘極程式化至該第一電壓之該步驟包含粗略程式化及精確程式化。
- 如請求項1之方法,其中,在程式化該選定記憶體單元之一浮動閘極之該步驟期間之情況下,若該選定記憶體單元之電壓過度程式化至超過該第一電壓之一電壓,則該方法進一步包含抹除該選定記憶體單元。
- 如請求項1之方法,其中,該選定記憶體單元之該浮動閘極與該相鄰調節單元之該浮動閘極部分地重疊。
- 一種將一神經記憶體中之一第一記憶體單元程式化至一目標值之方法,其包含:藉由將程式化電壓施加至與該第一記憶體單元相鄰的一第二記憶體單元之多個端子,同時不將程式化電壓施加至該第一記憶體單元之多個端子,而程式化該第二記憶體單元;判定該第一記憶體單元之一輸出是否已達到該目標值;及重複該程式化及該判定步驟直到該第一記憶體單元之該輸出已達到該目標值。
- 如請求項23之方法,其中,該第一記憶體單元耦接至一資料位元線且該第二記憶體單元耦接至一調節位元線。
- 如請求項24之方法,其進一步包含:在該程式化步驟之前,判定一對相鄰位元線中之哪一位元線含有較大雜訊並將彼位元線指定為該調節位元線及將該對中之另一位元線指定為該資料位元線。
- 如請求項23之方法,其中,該第一記憶體單元及該第二記憶體單元係包含在一類比神經記憶體陣列中。
- 如請求項23之方法,其中,對於每一該重複步驟,增大施加至該第二記憶體單元之該等端子的該等程式化電壓中之一或多者。
- 如請求項23之方法,其中,在每一該重複步驟期間使用相同的該等程式化電壓。
- 如請求項23之方法,其中,該第二記憶體單元之該等端子包含一位元線端子、一源極線端子及一字線端子。
- 如請求項29之方法,其中,該第二記憶體單元之該等端子進一步包含一控制閘極端子。
- 如請求項30之方法,其中,該第一記憶體單元之該控制閘極端子連接至一控制閘極線;且其中該控制閘極線連接至含有該第一記憶體單元之一行單元及含有該第二記憶體單元之一相鄰行單元的控制閘極端子。
- 如請求項30之方法,其中,該第二記憶體單元之該等端子進一步包含一抹除閘極端子。
- 如請求項32之方法,其中,該控制閘極正交於該抹除閘極。
- 如請求項32之方法,其中,該控制閘極正交於該源極線。
- 如請求項23之方法,其中,該第一記憶體單元及該第二記憶體單元為分離閘極記憶體單元。
- 如請求項23之方法,其中,該第一記憶體單元及該第二記憶體單元為堆疊閘極記憶體單元。
- 如請求項23之方法,其中,在該程式化步驟期間將等效於一亞單電子之一電荷添加至該第一記憶體單元之該浮動閘極。
- 如請求項23之方法,其中,該第一記憶體單元及該第二記憶體單元係包含在含有複數對之相鄰資料單元及調節單元之一陣列內。
- 如請求項38之方法,其中,相鄰資料單元之間的一距離大於一相鄰資料單元與調節單元之間的一距離。
- 如請求項23之方法,其中,在該判定步驟期間,耦接至該第一記憶體單元之一位元線及耦接至該第二記憶體單元之一位元線均耦接至一感測放大器。
- 如請求項23之方法,其進一步包含:對該第一記憶體單元執行粗略程式化。
- 如請求項23之方法,其進一步包含:對該第一記憶體單元執行粗略程式化;及對該第一記憶體單元執行精確程式化。
- 如請求項23之方法,其中,該第一記憶體單元之該浮動閘極與該第二記憶體單元之該浮動閘極部分地重疊。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202062981757P | 2020-02-26 | 2020-02-26 | |
US62/981,757 | 2020-02-26 | ||
US16/985,147 US11393535B2 (en) | 2020-02-26 | 2020-08-04 | Ultra-precise tuning of analog neural memory cells in a deep learning artificial neural network |
US16/985,147 | 2020-08-04 | ||
PCT/US2020/048829 WO2021173185A1 (en) | 2020-02-26 | 2020-08-31 | Ultra-precise tuning of analog neural memory cells in a deep learning artificial neural network |
WOPCT/US20/48829 | 2020-08-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202133163A TW202133163A (zh) | 2021-09-01 |
TWI759062B true TWI759062B (zh) | 2022-03-21 |
Family
ID=77366771
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110100537A TWI759062B (zh) | 2020-02-26 | 2021-01-07 | 深度學習人工神經網路中類比神經記憶體單元的超精確調節 |
TW111105352A TWI778920B (zh) | 2020-02-26 | 2021-01-07 | 深度學習人工神經網路中類比神經記憶體單元的超精確調節 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111105352A TWI778920B (zh) | 2020-02-26 | 2021-01-07 | 深度學習人工神經網路中類比神經記憶體單元的超精確調節 |
Country Status (7)
Country | Link |
---|---|
US (2) | US11393535B2 (zh) |
EP (1) | EP4111453A1 (zh) |
JP (1) | JP7418602B2 (zh) |
KR (1) | KR20220143076A (zh) |
CN (1) | CN115191016A (zh) |
TW (2) | TWI759062B (zh) |
WO (1) | WO2021173185A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US11532354B2 (en) * | 2020-03-22 | 2022-12-20 | Silicon Storage Technology, Inc. | 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 |
US11907571B2 (en) * | 2020-07-13 | 2024-02-20 | SK Hynix Inc. | Read threshold optimization systems and methods using domain transformation |
US11355204B2 (en) | 2020-09-03 | 2022-06-07 | SK Hynix Inc. | Efficient read-threshold calculation method for parametric PV-level modeling |
US11430530B2 (en) | 2021-01-25 | 2022-08-30 | SK Hynix Inc. | Deep learning based program-verify modeling and voltage estimation for memory devices |
US11514999B2 (en) | 2021-04-16 | 2022-11-29 | SK Hynix Inc. | Systems and methods for parametric PV-level modeling and read threshold voltage estimation |
US11749354B2 (en) | 2021-07-13 | 2023-09-05 | SK Hynix Inc. | Systems and methods for non-parametric PV-level modeling and read threshold voltage estimation |
US11769555B2 (en) | 2021-07-27 | 2023-09-26 | SK Hynix Inc. | Read threshold voltage estimation systems and methods for parametric PV-level modeling |
US11769556B2 (en) | 2021-07-27 | 2023-09-26 | SK Hynix Inc. | Systems and methods for modeless read threshold voltage estimation |
US11854629B2 (en) | 2021-11-22 | 2023-12-26 | SK Hynix Inc. | System and method for non-parametric optimal read threshold estimation using deep neural network |
KR20230114500A (ko) * | 2022-01-25 | 2023-08-01 | 삼성전자주식회사 | 플래시 메모리 제어 방법 및 장치 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070252192A1 (en) * | 2003-12-10 | 2007-11-01 | Nima Mokhlesi | Pillar cell flash memory technology |
TWI295803B (en) * | 2003-09-17 | 2008-04-11 | Sandisk Corp | Non-volatile memory and method with bit line to bit line coupled compensation |
WO2008157037A2 (en) * | 2007-06-15 | 2008-12-24 | Micron Technology, Inc. | Coarse and fine programming in a solid state memory |
TWI416712B (zh) * | 2007-07-10 | 2013-11-21 | Silicon Storage Tech Inc | 非擴散式接合分離閘極非揮發性記憶體胞元與陣列,其等之程式化,抹除與讀取方法,以及製造方法 |
US20140254265A1 (en) * | 2007-03-21 | 2014-09-11 | Micron Technology, Inc. | Flash Memory Cells, NAND Cell Units, Methods of Forming NAND Cell Units, and Methods of Programming NAND Cell Unit Strings |
Family Cites Families (7)
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 |
US8000141B1 (en) | 2007-10-19 | 2011-08-16 | Anobit Technologies Ltd. | Compensation for voltage drifts in analog memory cells |
JP2010123210A (ja) | 2008-11-20 | 2010-06-03 | Toshiba Corp | 半導体記憶装置 |
JP6833873B2 (ja) | 2016-05-17 | 2021-02-24 | シリコン ストーリッジ テクノロージー インコーポレイテッドSilicon Storage Technology, Inc. | 不揮発性メモリアレイを使用したディープラーニングニューラルネットワーク分類器 |
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 |
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 |
-
2020
- 2020-08-04 US US16/985,147 patent/US11393535B2/en active Active
- 2020-08-31 JP JP2022550938A patent/JP7418602B2/ja active Active
- 2020-08-31 KR KR1020227031893A patent/KR20220143076A/ko not_active Application Discontinuation
- 2020-08-31 EP EP20772477.4A patent/EP4111453A1/en active Pending
- 2020-08-31 CN CN202080097429.0A patent/CN115191016A/zh active Pending
- 2020-08-31 WO PCT/US2020/048829 patent/WO2021173185A1/en unknown
-
2021
- 2021-01-07 TW TW110100537A patent/TWI759062B/zh active
- 2021-01-07 TW TW111105352A patent/TWI778920B/zh active
-
2022
- 2022-06-27 US US17/850,447 patent/US20220336020A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI295803B (en) * | 2003-09-17 | 2008-04-11 | Sandisk Corp | Non-volatile memory and method with bit line to bit line coupled compensation |
US20070252192A1 (en) * | 2003-12-10 | 2007-11-01 | Nima Mokhlesi | Pillar cell flash memory technology |
US20140254265A1 (en) * | 2007-03-21 | 2014-09-11 | Micron Technology, Inc. | Flash Memory Cells, NAND Cell Units, Methods of Forming NAND Cell Units, and Methods of Programming NAND Cell Unit Strings |
WO2008157037A2 (en) * | 2007-06-15 | 2008-12-24 | Micron Technology, Inc. | Coarse and fine programming in a solid state memory |
TWI416712B (zh) * | 2007-07-10 | 2013-11-21 | Silicon Storage Tech Inc | 非擴散式接合分離閘極非揮發性記憶體胞元與陣列,其等之程式化,抹除與讀取方法,以及製造方法 |
Also Published As
Publication number | Publication date |
---|---|
US20220336020A1 (en) | 2022-10-20 |
TW202133163A (zh) | 2021-09-01 |
WO2021173185A1 (en) | 2021-09-02 |
JP7418602B2 (ja) | 2024-01-19 |
TWI778920B (zh) | 2022-09-21 |
CN115191016A (zh) | 2022-10-14 |
US20210264983A1 (en) | 2021-08-26 |
KR20220143076A (ko) | 2022-10-24 |
US11393535B2 (en) | 2022-07-19 |
TW202219956A (zh) | 2022-05-16 |
JP2023515531A (ja) | 2023-04-13 |
EP4111453A1 (en) | 2023-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI759062B (zh) | 深度學習人工神經網路中類比神經記憶體單元的超精確調節 | |
TWI785435B (zh) | 調校非揮發性記憶體單元之向量矩陣乘法陣列中之選定非揮發性記憶體單元之方法 | |
TWI787099B (zh) | 用於在深度學習人工類神經網路中的類比類神經記憶體之高電壓產生之方法及設備 | |
TW202026955A (zh) | 用於使用在深度學習神經網路中之類比神經記憶體系統中的記憶體單元之溫度與洩漏補償 | |
JP2024096888A (ja) | 論理セル及び改善されたプログラミング機構を備える人工ニューラルネットワーク内のアナログニューラルメモリアレイ | |
TWI785574B (zh) | 具有源極線下拉機制之人工神經網路中之類比神經記憶體陣列 | |
TW202236170A (zh) | 用於人工神經網路中之類比神經記憶體之精確資料調校方法及裝置 | |
CN115968495A (zh) | 用于人工神经网络中的模拟神经存储器阵列的自适应偏置解码器 | |
US20240265951A1 (en) | Current-to-voltage converter comprising common mode circuit | |
US11989440B2 (en) | Hybrid memory system configurable to store neural memory weight data in analog form or digital form | |
US20230325646A1 (en) | Artificial neural network comprising reference array for i-v slope configuration | |
TW202435222A (zh) | 用於非揮發記憶體胞元的陣列之輸出區塊 | |
TW202437707A (zh) | 包括共模電路的電流至電壓轉換器 | |
WO2024162979A1 (en) | Current-to-voltage converter comprising common mode circuit |