TWI819298B - 包含邏輯單元之人工神經網路中之類比神經記憶體陣列及經改良之程式化機制 - Google Patents

包含邏輯單元之人工神經網路中之類比神經記憶體陣列及經改良之程式化機制 Download PDF

Info

Publication number
TWI819298B
TWI819298B TW110114844A TW110114844A TWI819298B TW I819298 B TWI819298 B TW I819298B TW 110114844 A TW110114844 A TW 110114844A TW 110114844 A TW110114844 A TW 110114844A TW I819298 B TWI819298 B TW I819298B
Authority
TW
Taiwan
Prior art keywords
cells
units
unit
coarse
memory cells
Prior art date
Application number
TW110114844A
Other languages
English (en)
Other versions
TW202147321A (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 TW202147321A publication Critical patent/TW202147321A/zh
Application granted granted Critical
Publication of TWI819298B publication Critical patent/TWI819298B/zh

Links

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
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital 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/5621Digital 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/5628Programming or writing circuits; Data input circuits
    • 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
    • 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/0425Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors comprising cells containing a merged floating gate and select transistor
    • 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/0433Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors comprising cells containing a single floating gate transistor and one or more separate select transistors
    • 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/26Sensing or reading circuits; Data output 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/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
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/401Indexing scheme relating to cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C2211/4013Memory devices with multiple cells per bit, e.g. twin-cells

Landscapes

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

Abstract

揭示類比神經記憶體陣列之眾多具體例。兩個或更多個實體記憶體單元分組在一起以形成儲存N個可能層級中之一者的一邏輯單元。在每一邏輯單元內,可使用不同機制來程式化該等記憶體單元。例如,可使用一粗略程式化機制來程式化一邏輯單元中的該等記憶體單元中之一或多者,可使用一精細機制來程式化該等記憶體單元中之一或多者,且可使用一調諧機制來程式化該等記憶體單元中之一或多者。此實現了極高程式化準確性及程式化速度。

Description

包含邏輯單元之人工神經網路中之類比神經記憶體陣列及經改良之程式化機制
[優先權主張]本申請案主張2020年5月13日申請且標題為「Analog Neural Memory Array in Artificial Neural Network Comprising Logical Cells and Improved Programming Mechanism」之美國臨時專利申請案第63/024,351號,及2020年10月28日申請且標題為「Analog Neural Memory Array in Artificial Neural Network Comprising Logical Cells and Improved Programming Mechanism」之美國專利申請案第17/082,956號的優先權。
揭示類比神經記憶體陣列之眾多具體例。兩個或更多個實體記憶體單元分組在一起以形成儲存N個可能層級中之一者的邏輯單元。在每一邏輯單元內,可使用不同機製程式化記憶體單元。例如,可使用粗略程式化機制來程式化邏輯單元中的記憶體單元中之一或多者,可使用精細機制來程式化記憶體單元中之一或多者,且可使用超精細機制來程式化記憶體單元中之一或多者。此實現了最佳區域內之極高程式化準確性及程式化速度。
人工神經網路模擬生物神經網路(動物之中樞神經系統,特定而言為大腦)且用以估計或估算可取決於大量輸入且通常未知之功能。人工神經網路大體上包括彼此交換訊息之互連「神經元」層。
圖1例示人工神經網路,其中圓圈表示神經元之輸入或層。連接(稱為突觸)由箭頭表示,且具有可基於經驗進行調諧之數值權重。此使得人工神經網路適應於輸入且能夠學習。通常,人工神經網路包括多個輸入之層。通常存在一或多個中間神經元層及提供神經網路之輸出的輸出神經元層。每一層級處之神經元基於自突觸所接收之資料而個別地或共同地作出決策。
用於高效能資訊處理之人工神經網路之發展中的主要挑戰中之一者為缺乏適當的硬體技術。實際上,切實可行的人工神經網路依賴於極大量之突觸,從而實現神經元之間的高連接性,亦即極高計算並行性。原則上,此複雜性可利用數位超級電腦或專門圖形處理單元叢集來實現。然而,除了高成本之外,相比於生物網路,此等方法亦受中等能效困擾,主要因為生物網路執行低精度類比計算,所以其消耗少得多的能量。CMOS類比電路已用於人工神經網路,但鑒於大量神經元及突觸,大多數實施CMOS之突觸已過於龐大。
申請人先前在公開為美國專利公開案2017/0337466之美國專利申請案第15/594,439號中揭示了一種人工(類比)神經網路,其利用一或多個非揮發性記憶體陣列作為突觸,該美國專利公開案以引用之方式併入。非揮發性記憶體陣列用作類比神經形態記憶體。如本文中所使用,術語神經形態意謂實施神經系統之模型的電路。類比神經形態記憶體包括:第一複數個突觸,其經組構以接收第一複數個輸入且自第一複數個輸入產生第一複數個輸出;及第一複數個神經元,其經組構以接收第一複數個輸出。第一複數個突觸包括複數個記憶體單元,其中該等記憶體單元中之每一者包括:形成於半導體基板中之間隔開的源極區及汲極區,其中通道區在源極區與汲極區之間延伸;浮動閘極,其安置於通道區之第一部分上方且與該第一部分絕緣;以及非浮動閘極,其安置於通道區之第二部分上方且與該第二部分絕緣。複數個記憶體單元中之每一者經組構以儲存對應於浮動閘極上之電子數目的權重值。複數個記憶體單元經組構以將第一複數個輸入乘以所儲存權重值以產生第一複數個輸出。以此方式配置之記憶體單元陣列可被稱作向量矩陣乘法(VMM)陣列。
現將論述可用於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的操作
   WL BL SL
讀取1 0.5-3V 0.1-2V 0V
讀取2 0.5-3V 0-2V 2-0.1V
抹除 ~11-13V 0V 0V
程式化 1-2V 1-3µA 9-10V
「讀取1」為其中單元電流在位元線上輸出之讀取模式。「讀取2」為其中單元電流在源極線端子上輸出之讀取模式。
圖3展示記憶體單元310,其類似於圖2之記憶體單元210,且添加了控制閘極(CG)端子28。控制閘極端子28在程式化時被偏壓在高電壓,例如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的操作
   WL/SG BL CG EG SL
讀取1 0.5-2V 0.1-2V 0-2.6V 0-2.6V 0V
讀取2 0.5-2V 0-2V 0-2.6V 0-2.6V 2-0.1V
抹除 -0.5V/0V 0V 0V/-8V 8-12V 0V
程式化 1V 1µA 8-11V 4.5-9V 4.5-5V
「讀取1」為其中單元電流在位元線上輸出之讀取模式。「讀取2」為其中單元電流在源極線端子上輸出之讀取模式。
圖5展示記憶體單元510,其類似於圖4之記憶體單元410,除了記憶體單元510不包含抹除閘極EG端子之外。抹除係藉由將基板18偏壓至高電壓及將控制閘極CG端子28偏壓至低或負電壓來執行。替代地,抹除係藉由將字線端子22偏壓至正電壓及將控制閘極端子28偏壓至負電壓來執行。程式化及讀取類似於圖4之程式化及讀取。
圖6描繪三閘極記憶體單元610,其為另一類型之快閃記憶體單元。記憶體單元610與圖4之記憶體單元410相同,除了記憶體單元610不具有單獨的控制閘極端子之外。抹除操作(藉此經由使用抹除閘極端子進行抹除)及讀取操作類似於圖4的抹除操作及讀取操作,除了未施加控制閘極偏壓之外。程式化操作亦在無控制閘極偏壓之情況下進行,且結果,在程式化操作期間較高電壓必須施加在源極線端子上以補償控制閘極偏壓之缺乏。
表3描繪可施加至記憶體單元610之端子以用於執行讀取、抹除及程式化操作的典型電壓範圍: 表3:圖6之快閃記憶體單元610的操作
   WL/SG BL EG SL
讀取1 0.5-2.2V 0.1-2V 0-2.6V 0V
讀取2 0.5-2.2V 0-2V 0-2.6V 2-0.1V
抹除 -0.5V/0V 0V 11.5V 0V
程式化 1V 2-3µA 4.5V 7-9V
「讀取1」為其中單元電流在位元線上輸出之讀取模式。「讀取2」為其中單元電流在源極線端子上輸出之讀取模式。
圖7描繪堆疊閘式記憶體單元710,其為另一類型之快閃記憶體單元。除了浮動閘極20在整個通道區18上方延伸,且控制閘極端子22 (其在此處將耦接至字線)在浮動閘極20上方延伸之外,記憶體單元710類似於圖2的記憶體單元210,該浮動閘極由絕緣層(未示出)分離。使用自通道18至緊鄰汲極區16之通道區中之浮動閘極20的熱電子注入來執行程式化,且使用自浮動閘極20至基板12之富爾-諾罕電子穿隧來執行抹除。讀取操作以與先前針對記憶體單元210所描繪之方式類似的方式操作。
表4描繪可施加至記憶體單元710之端子及基板12以用於執行讀取、抹除及程式化操作之典型電壓範圍: 表4:圖7之快閃記憶體單元710的操作
   CG BL SL 基板
讀取1 0-5V 0.1 - 2V 0-2V 0V
讀取2 0.5-2V 0-2V 2-0.1V 0V
抹除 -8至-10V/0V FLT FLT 8-10V / 15-20V
程式化 8-12V 3-5V/0V 0V/3-5V 0V
「讀取1」為其中單元電流在位元線上輸出之讀取模式。「讀取2」為其中單元電流在源極線端子上輸出之讀取模式。視情況,在包含記憶體單元210、310、410、510、610或710之列及行的陣列中,源極線可耦接至記憶體單元之一列或記憶體單元之鄰近兩列。亦即,源極線端子可由記憶體單元之鄰近列共用。
圖8描繪雙分離閘式記憶體單元810。記憶體單元810包含安置在基板12上方且與該基板絕緣之浮動閘極(FG) 20、安置在浮動閘極20上方且與該浮動閘極絕緣之控制閘極28 (CG)、鄰近於浮動閘極20及控制閘極28而安置且與該浮動閘極及該控制閘極絕緣且安置在基板12上方且與該基板絕緣之抹除閘極30 (EG),其中抹除閘極產生為具有T形,使得控制閘極CG之頂部拐角面向T形抹除閘極之內部拐角以改良抹除效率,且基板中之汲極區16 (DR)鄰近於浮動閘極20(藉由連接至汲極擴散區16 (DR)之位元線接點24 (BL))。記憶體單元形成為記憶體單元對(左側上之A及右側上之B),其共用共同抹除閘極30。此單元設計與上文參考圖2至圖7所論述之記憶體單元的不同之處至少在於其對於每一記憶體單元缺乏抹除閘極EG下之源極區、缺乏選擇閘極(亦被稱作字線),且缺乏通道區。替代地,單個連續通道區18在兩個記憶體單元下延伸(亦即,自一個記憶體單元之汲極區16延伸至另一記憶體單元之汲極區16)。為了讀取或程式化一個記憶體單元,另一記憶體單元之控制閘極28經由耦接至其間的浮動閘極20之電壓而升高至充分電壓以接通基礎通道區部分(例如,為了讀取或程式化單元A,FGB上之電壓經由自CGB耦接之電壓而升高以接通FGB下之通道區部分)。使用自浮動閘極20至抹除閘極30之富爾-諾罕電子穿隧來執行抹除。使用自通道18至浮動閘極20之熱電子注入來執行程式化,此在表5中指示為程式化1。替代地,使用自抹除閘極30至浮動閘極20之富爾-諾罕電子穿隧來執行程式化,此在表5中指示為程式化2。替代地,使用自通道18至浮動閘極20之富爾-諾罕電子穿隧來執行程式化,在此情況下,條件類似於程式化2,除了基板被偏壓在低電壓或負電壓下而抹除閘極被偏壓在低正電壓下之外。
表5描繪可施加至記憶體單元810之端子以用於執行讀取、抹除及程式化操作的典型電壓範圍。選擇單元A (FG、CGA、BLA)以用於讀取、程式化及抹除操作。
表5:圖8之快閃記憶體單元810的操作
   CGA BLA EG CGB BLB
                 
讀取 1.5-4V 0.1-0.8V 2.5V 1.5-4V 0
抹除 0 V至-8V 0V 8V至11.5V 0 V至4V (Vcginhe) 0V
程式化1 10.5V 4.5V 1.5V 4 Iprog
程式化2 4V至11.5V 0V -4V至-11.5V 0 V至-2V (Vcginhp) 0V
為了利用包含上文在人工神經網路中所描述之非揮發性記憶體單元類型中之一者的記憶體陣列,進行兩個修改。首先,線經組構以使得每一記憶體單元可個別地經程式化、抹除及讀取而不會不利地影響陣列中之其他記憶體單元之記憶體狀態,如下文進一步解釋。其次,提供記憶體單元之連續(類比)程式化。
特定而言,陣列中之每一記憶體單元的記憶體狀態(亦即,浮動閘極上之電荷)可連續地自完全抹除狀態改變為完全程式化狀態,其方式為獨立的且對其他記憶體單元之干擾最小。在另一具體例中,陣列中之每一記憶體單元之記憶體狀態(亦即,浮動閘極上之電荷)可連續地自完全程式化狀態改變為完全抹除狀態,且反之亦然,其方式為獨立的且對其他記憶體單元之干擾最小。此意謂單元儲存為類比的,或至少可儲存許多離散值(諸如16或64個不同值)中之一者,此允許對記憶體陣列中之所有單元進行極精確且個別的調諧,且此使得記憶體陣列對於儲存神經網路之突觸權重及對該等突觸權重進行精細調諧調整係理想的。
本文中所描述之方法及手段可應用於其他非揮發性記憶體技術,諸如但不限於FINFET分離閘式快閃或堆疊閘式快閃記憶體、NAND快閃、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區的值。池化函數之目的為使附近位置達到平均數(或亦可使用最大函數),以例如降低邊緣位置之相依性且在行進至下一級之前縮減資料大小。在層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,其解碼用於非揮發性記憶體單元陣列33之各別輸入。至VMM陣列33之輸入可來自抹除閘極及字線閘極解碼器34或來自控制閘極解碼器35。源極線解碼器37在此實施例中亦解碼VMM陣列33之輸出。替代地,位元線解碼器36可解碼VMM陣列33之輸出。
VMM陣列33用於兩個目的。首先,其儲存將由VMM系統32使用之權重。其次,VMM陣列33有效地將輸入乘以儲存於VMM陣列33中之權重,且按輸出線(源極線或位元線)將結果相加以產生輸出,該輸出將為至下一層之輸入或至最終層之輸入。藉由執行乘法及加法函數,VMM陣列33消除對單獨的乘法及加法邏輯電路之需要,且由於其就地(in-situ)記憶體計算亦為功率高效的。
VMM陣列33的輸出經供應至差分求和器(諸如求和運算放大器或求和電流鏡) 38,其對VMM陣列33之輸出進行求和以產生用於彼卷積之單個值。差分求和器38經配置以執行正權重輸入與負權重輸入之求和以輸出單個值。
接著將差分求和器38之經求和輸出值供應至激發函數電路39,該電路對輸出進行整流。激發函數電路39可提供S型(sigmoid)、雙曲正切(tanh)、ReLU函數,或任何其他非線性函數。激發函數電路39之經整流輸出值變成下一層(例如,圖9中之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系統又產生被提供為至下一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陣列
圖12描繪神經元VMM陣列1200,其尤其適於如圖3中所示之記憶體單元310,且用作輸入層與下一層之間的突觸及神經元部分。VMM陣列1200包含非揮發性記憶體單元之記憶體陣列1201及非揮發性參考記憶體單元之參考陣列1202 (在陣列之頂部處)。替代地,另一參考陣列可置放於底部處。
在VMM陣列1200中,控制閘極線(諸如控制閘極線1203)在垂直方向上延行(因此,列方向上之參考陣列1202與控制閘極線1203正交),且抹除閘極線(諸如抹除閘極線1204)在水平方向上延行。此處,至VMM陣列1200之輸入提供於控制閘極線(CG0、CG1、CG2、CG3)上,且VMM陣列1200之輸出出現於源極線(SL0、SL1)上。在一個具體例中,僅使用偶數列,且在另一具體例中,僅使用奇數列。置於每一源極線(分別為SL0、SL1)上之電流對來自連接至彼特定源極線之記憶體單元的所有電流執行求和函數。
如本文中針對神經網路所描述,VMM陣列1200之非揮發性記憶體單元,亦即,VMM陣列1200之快閃記憶體,較佳地經組構以在次臨限區中操作。
本文中所描述之非揮發性參考記憶體單元及非揮發性記憶體單元在弱反轉(weak inversion)中經偏壓: Ids = Io * e(Vg- Vth)/nVt = w * Io * e(Vg)/nVt , 其中w = e(-Vth)/nVt 其中Ids為汲極至源極電流;Vg為記憶體單元上之閘極電壓;Vth為記憶體單元之臨限電壓;Vt為熱電壓,其=k*T/q,其中k為波茲曼常數,T為以克耳文為單位之溫度,且q為電子電荷;n為斜率因數,其= 1 + (Cdep/Cox),其中Cdep=耗盡層之電容且Cox為閘極氧化物層之電容;Io為等於臨限電壓之閘極電壓下之記憶體單元電流,Io與(Wt/L)*u*Cox* (n-1) * 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。 Vthp為周邊記憶體單元之有效臨限電壓,且Vtha為主(資料)記憶體單元之有效臨限電壓。 應注意,電晶體之臨限電壓為基板基底偏壓電壓之函數,且基板基底偏壓可經調變用於諸如超溫之各種補償或藉由調變單元電流 Vth = Vth0 + gamma (SQRT (Vsb + | 2*ϕF|) - SQRT |2* ϕF |) Vth0為具有零基板偏壓之臨限電壓,ϕF為表面電位,gamma為體效應參數。
字線或控制閘極可用作用於輸入電壓之記憶體單元之輸入。
替代地,本文中所描述之VMM陣列的非揮發性記憶體單元可經組構以在線性區中操作: Ids = beta* (Vgs-Vth)*Vds;beta = u*Cox*Wt/L, Wα (Vgs-Vth), 此意謂線性區中之權重W與(Vgs-Vth)成比例
字線或控制閘極或位元線或源極線可用作在線性區中操作之記憶體單元的輸入。位元線或源極線可用作記憶體單元之輸出。
對於I至V線性轉換器,記憶體單元(諸如參考記憶體單元或周邊記憶體單元)或在線性區中操作之電晶體或電阻器可用以將輸入/輸出電流線性地轉換成輸入/輸出電壓。
替代地,本文中所描述之VMM陣列的記憶體單元可經組構以在飽和區中操作: Ids = ½ * beta* (Vgs-Vth)2 ;beta = u*Cox*Wt/L Wα (Vgs-Vth)2 ,此意謂權重W與(Vgs-Vth)2 成比例
字線、控制閘極或抹除閘極可用作在飽和區中操作之記憶體單元的輸入。位元線或源極線可用作輸出神經元之輸出。
替代地,對於神經網路之每一層或多層,本文中所描述之VMM陣列的記憶體單元可用於所有區或其組合(次臨限區、線性區或飽和區)中。
圖13描繪神經元VMM陣列1300,其尤其適於如圖2中所示之記憶體單元210,且用作輸入層與下一層之間的突觸。VMM陣列1300包含非揮發性記憶體單元之記憶體陣列1303、第一非揮發性參考記憶體單元之參考陣列1301及第二非揮發性參考記憶體單元之參考陣列1302。配置於陣列之行方向上的參考陣列1301及1302用以將流入端子BLR0、BLR1、BLR2及BLR3中之電流輸入轉換成電壓輸入WL0、WL1、WL2及WL3。實際上,第一及第二非揮發性參考記憶體單元為二極體連接式貫穿多工器1314 (僅部分描繪),其中電流輸入流入該等多工器中。參考單元經調諧(例如,經程式化)至目標參考位準。目標參考位準由參考迷你陣列矩陣(未示出)提供。
記憶體陣列1303用於兩個目的。首先,其儲存將由VMM陣列1300在其各別記憶體單元上使用之權重。其次,記憶體陣列1303有效地將輸入(亦即,在端子BLR0、BLR1、BLR2及BLR3中提供之電流輸入,其由參考陣列1301及1302轉換成輸入電壓以供應至字線WL0、WL1、WL2及WL3)乘以儲存於記憶體陣列1303中之權重,且接著將所有結果(記憶體單元電流)相加以在各別位元線(BL0至BLN)上產生輸出,該輸出將為至下一層之輸入或至最終層之輸入。藉由執行乘法及加法函數,記憶體陣列1303消除了對單獨的乘法及加法邏輯電路之需要,且亦為功率高效的。此處,電壓輸入提供於字線WL0、WL1、WL2及WL3上,且輸出在讀取(推斷)操作期間出現於各別位元線BL0至BLN上。置於位元線BL0至BLN中之每一者上之電流對來自連接至彼特定位元線之所有非揮發性記憶體單元的電流執行求和函數。
表6描繪用於VMM陣列1300的操作電壓。該表中之行指示置於以下各者上的電壓:用於選定單元之字線、用於未選定單元之字線、用於選定單元之位元線、用於未選定單元之位元線、用於選定單元之源極線及用於未選定單元之源極線,其中FLT指示浮動,亦即未施加電壓。列指示讀取、抹除及程式化之操作。 表6:圖13之VMM陣列1300的操作:
   WL WL-未選定 BL BL-未選定 SL SL-未選定
讀取 0.5-3.5V -0.5V/0V 0.1-2V (Ineuron) 0.6V-2V/FLT 0V 0V
抹除 ~5-13V 0V 0V 0V 0V 0V
程式化 1-2V -0.5V/0V 0.1-3 uA Vinh ~2.5V 4-10V 0-1V/FLT
圖14描繪神經元VMM陣列1400,其尤其適於如圖2中所示之記憶體單元210,且用作輸入層與下一層之間的突觸及神經元部分。 VMM陣列1400包含非揮發性記憶體單元之記憶體陣列1403、第一非揮發性參考記憶體單元之參考陣列1401及第二非揮發性參考記憶體單元之參考陣列1402。參考陣列1401及1402在VMM陣列1400之列方向上延行。VMM陣列類似於VMM 1300,除了在VMM陣列1400中,字線在垂直方向上延行之外。此處,輸入提供於字線(WLA0、WLB0、WLA1、WLB2、WLA2、WLB2、WLA3、WLB3)上,且輸出在讀取操作期間出現於源極線(SL0、SL1)上。置於每一源極線上之電流對來自連接至彼特定源極線之記憶體單元的所有電流執行求和函數。
表7描繪用於VMM陣列1400的操作電壓。表中之行指示置於以下各者上之電壓:用於選定單元之字線、用於未選定單元之字線、用於選定單元之位元線、用於未選定單元之位元線、用於選定單元之源極線及用於未選定單元之源極線。列指示讀取、抹除及程式化之操作。 表7:圖14之VMM陣列1400的操作
   WL WL-未選定 BL BL-未選定 SL SL-未選定
讀取 0.5-3.5V -0.5V/0V 0.1-2V 0.1V-2V/FLT ~0.3-1V (Ineuron) 0V
抹除 ~5-13V 0V 0V 0V 0V SL-抑制(~4-8V)
程式化 1-2V -0.5V/0V 0.1-3 uA Vinh ~2.5V 4-10V 0-1V/FLT
圖15描繪神經元VMM陣列1500,其尤其適於如圖3中所示之記憶體單元310,且用作輸入層與下一層之間的突觸及神經元部分。VMM陣列1500包含非揮發性記憶體單元之記憶體陣列1503、第一非揮發性參考記憶體單元之參考陣列1501及第二非揮發性參考記憶體單元之參考陣列1502。參考陣列1501及1502用以將流入端子BLR0、BLR1、BLR2及BLR3中之電流輸入轉換成電壓輸入CG0、CG1、CG2及CG3。實際上,第一及第二非揮發性參考記憶體單元為二極體連接式貫穿多工器1512 (僅部分展示),其中電流輸入經由BLR0、BLR1、BLR2及BLR3流入該等多工器中。多工器1512各自包括各別多工器1505及串疊電晶體1504,以確保在讀取操作期間第一及第二非揮發性參考記憶體單元中之每一者的位元線(諸如BLR0)上存在恆定電壓。參考單元經調諧至目標參考位準。
記憶體陣列1503用於兩個目的。首先,其儲存將由VMM陣列1500使用的權重。其次,記憶體陣列1503有效地將輸入(提供至端子BLR0、BLR1、BLR2及BLR3之電流輸入,其中參考陣列1501及1502將此等電流輸入轉換成輸入電壓以供應至控制閘極CG0、CG1、CG2及CG3)乘以儲存於記憶體陣列中之權重,且接著將所有結果(單元電流)相加以產生輸出,該輸出呈現於BL0至BLN上,且將為至下一層之輸入或至最終層之輸入。藉由執行乘法及加法函數,記憶體陣列消除了對單獨的乘法及加法邏輯電路之需要,且亦為功率高效的。此處,輸入提供於控制閘極線(CG0、CG1、CG2及CG3)上,且輸出在讀取操作期間出現於位元線(BL0至BLN)上。置於每條位元線上之電流對來自連接至彼特定位元線之記憶體單元的所有電流執行求和函數。
VMM陣列1500對記憶體陣列1503中之非揮發性記憶體單元實施單向調諧。亦即,每一非揮發性記憶體單元經抹除且接著經部分程式化,直至達到浮動閘極上之所要電荷為止。此可例如使用下文所描述之精確程式化技術來執行。若過多電荷被置放於浮動閘極上(使得錯誤值儲存於單元中),則單元必須被抹除且部分程式化操作之序列必須重新開始。如所示,共用同一抹除閘極(諸如EG0或EG1)之兩個列需要被一起抹除(此被稱為分頁抹除),且此後,部分地程式化每一單元直至達到浮動閘極上之所要電荷為止。
表8描繪用於VMM陣列1500的操作電壓。該表中之行指示置於以下各者上之電壓:用於選定單元之字線、用於未選定單元之字線、用於選定單元之位元線、用於未選定單元之位元線、用於選定單元之控制閘極、用於與選定單元處於相同扇區中之未選定單元之控制閘極、用於與選定單元處於不同扇區中之未選定單元之控制閘極、用於選定單元之抹除閘極、用於未選定單元之抹除閘極、用於選定單元之源極線及用於未選定單元之源極線。列指示讀取、抹除及程式化之操作。 表8:圖15之VMM陣列1500的操作
   WL WL-未 選定 BL BL-未 選定 CG CG-未選定 相同扇區 CG-未 選定 EG EG-未 選定 SL SL-未 選定
讀取 0.5-2V -0.5V/ 0V 0.1-2V (Ineuron) 0V/FLT 0-2.6V 0-2.6V 0-2.6V 0-2.6V 0-2.6V 0V 0V
抹除 0V 0V 0V 0V 0V 0-2.6V 0-2.6V 5-12V 0-2.6V 0V 0V
程式化 0.7-1V -0.5V/ 0V 0.1-1uA Vinh (1-2V) 4-11V 0-2.6V 0-2.6V 4.5-5V 0-2.6V 4.5-5V 0-1V
圖16描繪神經元VMM陣列1600,其尤其適於如圖3中所示之記憶體單元310,且用作輸入層與下一層之間的突觸及神經元部分。VMM陣列1600包含非揮發性記憶體單元之記憶體陣列1603、第一非揮發性參考記憶體單元之參考陣列1601及第二非揮發性參考記憶體單元之參考陣列1602。EG線EGR0、EG0、EG1及EGR1垂直地延行,而CG線CG0、CG1、CG2及CG3以及SL線WL0、WL1、WL2及WL3水平地延行。VMM陣列1600類似於VMM陣列1600,除了VMM陣列1600實施雙向調諧之外,其中由於使用單獨的EG線,每一個別單元可視需要經完全抹除、部分程式化及部分抹除以達到浮動閘極上之所要電荷量。如所示,參考陣列1601及1602將端子BLR0、BLR1、BLR2及BLR3中之輸入電流轉換成待在列方向上施加至記憶體單元之控制閘極電壓CG0、CG1、CG2及CG3 (經由二極體連接式參考單元貫穿多工器1614之動作)。電流輸出(神經元)在位元線BL0至BLN中,其中每條位元線對來自連接至彼特定位元線之非揮發性記憶體單元的所有電流進行求和。
表9描繪用於VMM陣列1600的操作電壓。該表中之行指示置於以下各者上之電壓:用於選定單元之字線、用於未選定單元之字線、用於選定單元之位元線、用於未選定單元之位元線、用於選定單元之控制閘極、用於與選定單元處於相同扇區中之未選定單元之控制閘極、用於與選定單元處於不同扇區中之未選定單元之控制閘極、用於選定單元之抹除閘極、用於未選定單元之抹除閘極、用於選定單元之源極線及用於未選定單元之源極線。列指示讀取、抹除及程式化之操作。 表9:圖16之VMM陣列1600的操作
   WL WL-未選定 BL BL-未選定 CG CG-未選定相同扇區 CG-未選定 EG EG-未選定 SL SL-未選定
讀取 1.0-2V -0.5V/ 0V 0.6-2V (Ineuron) 0V/FLT 0-2.6V 0-2.6V 0-2.6V 0-2.6V 0-2.6V 0V 0V/FLT
抹除 0V 0V 0V 0V 0V 4-9V 0-2.6V 5-12V 0-2.6V 0V 0V
程式化 0.7-1V -0.5V/ 0V 0.1-1uA Vinh (1-2V) 4-11V 0-2.6V 0-2.6V 4.5-5V 0-2.6V 4.5-5V 0-1V
至VMM陣列之輸入可為類比位準、二進位位準、時序脈衝或數位位元,且輸出可為類比位準、二進位位準、時序脈衝或數位位元(在此情況下,需要輸出ADC將輸出類比位準電流或電壓轉換成數位位元)。
對於VMM陣列中之每一記憶體單元,每一權重w可由單個記憶體單元或差分單元或兩個混合記憶體單元(2個或多於2個單元之平均值)實施。在差分單元情況下,需要兩個記憶體單元以將權重w實施為差分權重(w = w+ - w-)。在兩個混合記憶體單元中,需要兩個記憶體單元以將權重w實施為兩個單元之平均值。
VMM陣列之一個挑戰為其在程式化程序期間需要極高精度。例如,若VMM陣列中之每一單元可儲存N個不同值(例如,N=64或128)中之一者,則系統必須能夠將額外電荷之較小增量沈積於選定單元之浮動閘極上以實現所要位準改變。另一方面,仍重要的是程式化應儘可能快,且在程式化精度與程式化速度之間存在固有取捨。
需要能夠實現精確程式化同時仍以相對快速步調完成程式化程序之經改良VMM系統。
揭示類比神經記憶體陣列之眾多具體例。兩個或更多個記憶體單元分組在一起以形成儲存N個可能層級中之一者的一邏輯單元。在每一邏輯單元內,可使用不同機制來程式化該等記憶體單元。例如,可使用一粗略程式化機制來程式化一邏輯單元中的該等記憶體單元中之一或多者,且可使用一精細機制來程式化該等記憶體單元中之一或多者。此實現了極高程式化準確性及程式化速度。
本發明之人工神經網路利用CMOS技術與非揮發性記憶體陣列之組合。 經改良VMM系統的具體例
圖17描繪VMM系統1700之方塊圖。VMM系統1700包含VMM陣列1701、列解碼器1702、高電壓解碼器1703、行解碼器1704、位元線驅動器1705、輸入電路1706、輸出電路1707、控制邏輯1708及偏壓產生器1709。 VMM系統1700進一步包含高電壓產生區塊1710,該高電壓產生區塊包含電荷泵1711、電荷泵調節器1712及高電壓位準產生器1713。VMM系統1700進一步包含演算法控制器1714、類比電路1715、控制邏輯1716及測試控制邏輯1717。下文所描述之系統及方法可實施於VMM系統1700中。
輸入電路1706可包括諸如數位至類比轉換器(DAC)、數位至脈衝轉換器(DPC)、類比至類比轉換器(AAC,諸如電流至電壓轉換器)、脈衝至類比位準轉換器(PAC)或任何其他類型之轉換器的電路。輸入電路1706可實施正規化、縮放函數或算術函數。輸入電路1706可實施溫度補償功能以用於輸入。輸入電路1706可實施諸如ReLU或S型之激發函數。輸出電路1707可包括諸如類比至數位轉換器(ADC,以將神經元類比輸出轉換成數位位元)、類比至類比轉換器(AAC,諸如電流至電壓轉換器)、類比至脈衝轉換器(APC)或任何其他類型之轉換器的電路。輸出電路1707可實施諸如ReLU或S型之激發函數。輸出電路1707可實施統計正規化、正則化、放大/縮小函數,統計捨入或算術函數(例如,加法、減法、除法、乘法、移位、對數)以用於神經元輸出。輸出電路1707可實施溫度補償功能以用於神經元輸出或陣列輸出(諸如位元線輸出),以便使陣列之功耗保持近似恆定或諸如藉由使IV斜率保持近似相同而改良陣列(神經元)輸出之精度。
圖18A描繪先前技術VMM系統1800。VMM系統1800包含例示性單元1801及1802、例示性位元線開關1803(其將位元線連接至感測電路)、例示性虛設位元線開關1804(其耦接至低位準,諸如讀取時之接地位準)、例示性虛設單元1805及1806(源極線下拉單元)。位元線開關1803耦接至用以儲存VMM系統1800中之資料的單元之行,包括單元1801及1802。虛設位元線開關1804耦接至單元的行(位元線),該等單元為並不用於儲存VMM系統1800中之資料的虛設單元。此虛設位元線(亦稱為源極線下拉位元線)在讀取時用作源極線下拉,意謂用於經由虛設位元線中之記憶體單元將源極線SL拉至諸如接地位準之低位準。
VMM系統1800之一個缺陷為每一單元之輸入阻抗由於穿過相關位元線開關、單元本身及相關虛設位元線開關之電路徑的長度而發生變化。例如,圖18B展示穿過位元線開關1803、單元1801、虛設單元1805及虛設位元線開關1804之電路徑。類似地,圖18C展示穿過位元線開關1803、垂直金屬位元線1807、單元1802、虛設單元1808、垂直金屬位元線1808及虛設位元線開關1804之電路徑。如可看出,穿過單元1802之路徑橫越位元線及虛設位元線的顯著較大長度,其與較高電容及較高電阻相關聯。此導致單元1802在位元線或源極線中具有相比單元1801較大的寄生阻抗。例如,此可變性為缺陷,此係因為其導致如適用於讀取或驗證(用於程式化/抹除調諧循環)單元之單元輸出的精度之變化,此取決於單元在陣列內之位置。
圖19A描繪經改良VMM系統1900。VMM系統1900包含例示性單元1901及1902、例示性位元線開關1903(其將位元線連接至感測電路)、例示性虛設單元1905及1906(源極線下拉單元),及例示性虛設位元線開關1904(其耦接至低位準,諸如讀取時之接地位準,此開關連接至虛設位元線,虛設位元線連接至用作源極線下拉之虛設單元)。如可看出,例示性虛設位元線開關1904及其他虛設位元線開關位於陣列的與位元線開關1903及其他位元線開關相對的末端上。
此設計之益處可見於圖19B及圖19C中。圖19B描繪穿過位元線開關1903、單元1901、虛設單元1905(源極線下拉單元)、垂直金屬位元線1908及虛設位元線開關1904(其耦接至低位準,諸如讀取時之接地位準)的電路徑。圖19C描繪穿過位元線開關1903、垂直金屬線1907、單元1902、虛設單元1906(源極線下拉單元)及虛設位元線開關1904之電路徑。該等路徑實質上相同(單元互連長度方面),此對於VMM系統1900中之所有單元皆成立。結果,每一單元之位元線阻抗加上源極線阻抗的阻抗實質上相同,此意謂在陣列中之各種單元的讀取或驗證操作時汲取的寄生電壓降之量的變化相對相同。
圖20描繪具有全域源極線下拉位元線之VMM系統2000。VMM系統2000類似於VMM系統1900,除了以下情況之外:虛設位元線2005a至2005n及2007a至2007n連接在一起(以充當全域源極線下拉線,從而在讀取或驗證期間將記憶體單元源極線拉至接地位準);諸如虛設位元線開關2001及2002之虛設位元線開關連接或耦接至共同接地;且源極線一起耦接至源極線開關2003,其將源極線選擇性地拉至接地。此等改變進一步降低單元當中之(陣列)寄生阻抗在讀取或驗證操作期間的變化。
圖21描繪VMM系統2100。 VMM系統2100包含位元線開關2101、下拉位元線開關2102、下拉位元線開關2103、位元線開關2104、資料單元2105(在本文中,「資料單元」為用以儲存神經網路之權重值的記憶體單元)、下拉單元2106、下拉單元2107及資料單元2018。應注意,下拉單元2106及2107彼此鄰近。此允許兩個下拉單元2106及2107之垂直金屬線BLpdx連接在一起(線2111),以由於所得較寬金屬線而減小寄生電阻。在資料單元2105之讀取或驗證(用於程式化/抹除調諧循環)操作期間,電流將流過位元線開關2101至單元2105之位元線端子中且流出至單元2015之源極線端子,在彼處電流接著流入源極線2110中,在彼處電流流入下拉單元2106及2107的源極線端子中,且流過下拉位元線開關2102及2103。在資料單元2104之讀取或驗證(用於程式化/抹除調諧循環)操作期間,電流將流過位元線開關2104至資料單元2108之位元線端子中且流出至單元2108之源極線端子,在彼處電流接著流入源極線2110中,在彼處電流流入下拉單元2106及2107的源極線端子中,且流過下拉位元線開關2102及2103。此行圖案在整個陣列中重複,其中每四行包含兩行資料單元,及用於下拉操作的兩個鄰近陣列行。在另一具體例中,兩個鄰近行之兩個下拉單元的擴散可一起合併成一個較大擴散以增大下拉能力。在另一具體例中,可使得下拉單元之擴散大於資料單元擴散以增大下拉能力。在另一具體例中,每一下拉單元具有不同於選定資料單元之偏壓條件的偏壓條件。
在一個具體例中,下拉單元具有與常規資料記憶體單元相同的實體結構。在另一具體例中,下拉單元具有與常規資料記憶體單元不同的實體結構,例如,下拉單元可為常規資料記憶體單元之經修改版本,諸如藉由修改一或多個實體尺寸(寬度、長度等)或電參數(層厚度、植入等)。在另一具體例中,下拉單元為常規電晶體(無浮動閘極),諸如IO或高電壓電晶體。
圖22描繪VMM系統2200。VMM系統2200包含位元線2201、下拉位元線2202、資料單元2203及2206、下拉單元2204及2205,及源極線2210。在單元2203之讀取或驗證操作期間,電流將流過位元線開關2201至單元2203之位元線端子中且流出至單元2203之源極線端子,在彼處電流接著流入源極線2210中且流入下拉單元2204之源極線端子中,且流過下拉位元線BLpd 2202。針對每行重複此設計,其中淨結果為包含下拉單元2204之列為下拉單元之列。
在單元2206之讀取或驗證(用於程式化/抹除調諧循環)操作期間,電流將流過位元線開關2201至單元2206之位元線端子中且流出至單元2206之源極線端子,在彼處電流接著流入源極線2211中且流入下拉單元2205之源極線端子中,且流過下拉位元線2202。針對每行重複此設計,其中淨結果為包含下拉單元2205之列為下拉單元之列。如圖22中所示,存在四列,兩個中間鄰近列用於下拉單元,頂部及底部列為資料單元。
表10描繪用於VMM系統2200之操作電壓。該表中之行指示置於以下各者上之電壓:用於選定單元之位元線、下拉位元線、用於選定單元之字線、用於選定單元之控制閘極、用於選定下拉單元之字線WLS、用於選定下拉單元之控制閘極CGS、用於所有單元之抹除閘極及用於所有單元之源極線。列指示讀取、抹除及程式化之操作。應注意,CGS及WLS在讀取時之電壓偏壓高於常規WL及CG偏壓,以增強下拉單元之驅動能力。WLS及CGS之電壓偏壓在程式化時可為負以減少干擾。 表10:圖22之VMM陣列2200的操作
操作表                        
   BL BLpd WL CG WLS CGS EG SL
抹除 0V 0V 0V 0V 0V 0V 11.5V 0V
程式化 Iprog VINH ~0.7V ~10.5V -0.5V 至0V -2V 至0V ~4.5V ~4.5V
讀取 0.6V 0V ~0-1.1V ~0-1.5V 1.1-1.3V 1.8-3V 0V 0V
圖23描繪VMM系統2300。VMM系統2300包含位元線2301、位元線2302、資料單元2303及2306,以及下拉單元2304及2305。在單元2303之讀取或驗證(用於程式化/抹除調諧循環)操作期間,電流將流過位元線2301至單元2303之位元線端子中且流出至單元2303之源極線端子,在彼處電流接著流入下拉單元2304之源極線端子中,且流過位元線2302(在此情況下充當下拉位元線)。針對每行重複此設計,其中淨結果為在第一模式下包含下拉單元2304之列為下拉單元之列。在單元2306之讀取或驗證(用於程式化/抹除調諧循環)操作期間,電流將流過位元線2301至單元2306之位元線端子中且流出至單元2306之源極線端子,在彼處電流接著流入下拉單元2305之源極線端子中,且流過位元線2302(在此情況下充當下拉位元線)。針對每行重複此設計,其中淨結果為在第二模式下包含下拉單元2305之列為下拉單元之列。如圖23中所示,存在四列,交替奇數(或偶數)列用於下拉單元,交替偶數(或奇數)列為資料單元。
值得注意地,在第二模式期間,單元2305及2306在讀取或驗證時係主動的,且單元2303及2305用於下拉程序,其中位元線2301及2302之作用被倒轉。
表11描繪用於VMM系統2300之操作電壓。該表中之行指示置於以下各者上之電壓:用於選定資料單元之位元線、用於選定下拉單元之位元線、用於選定資料單元之字線、用於選定資料單元之控制閘極、用於選定下拉單元之字線WLS、用於選定下拉單元之控制閘極CGS、用於所有單元之抹除閘極及用於所有單元之源極線。列指示讀取、抹除及程式化之操作。 表11:圖23之VMM系統2300的操作
操作表                        
   BL0A BL0B WL CG WLS CGS EG SL
抹除 0V 0V 0V 0V 0V 0V 11.5V 0V
程式化 Iprog VINH ~0.7V ~10.5V -0.5V 至0V -2V至0V ~4.5V ~4.5V
讀取 0.6V/0V 0v/0.6V ~0-1.1V ~0-1.5V 1.1-1.3V 1.8-3V 0V 0V
圖24描繪VMM系統2400。VMM系統2400包含位元線2401、下拉位元線2402、(資料)單元2403、源極線2411,以及下拉單元2404、2405及2406。在單元2403之讀取或驗證操作期間,電流將流過位元線2401至單元2403之位元線端子中且流出至單元2403之源極線端子,在彼處電流接著流入源極線2411中,且在彼處電流接著流入下拉單元2404、2405及2406之源極線端子中,並自該源極線端子流過下拉位元線2402。針對每行重複此設計,其中淨結果為包含下拉單元2404、2405及2406之列各自為下拉單元之列。此最大化施加至單元2403之源極線端子的下拉,因為電流經由三個單元汲取至下拉位元線2402中。應注意,四列之源極線連接在一起。
表12描繪用於VMM系統2400之操作電壓。該表中之行指示置於以下各者上的電壓:用於選定單元之位元線、下拉位元線、用於選定單元之字線、用於選定單元之控制閘極、用於選定單元之抹除閘極、用於選定下拉單元之字線WLS、用於選定下拉單元之控制閘極CGS、用於選定下拉單元之抹除閘極及用於所有單元之源極線。列指示讀取、抹除及程式化之操作。 表12:圖24之VMM系統2400的操作
操作表                           
   BL BPpd WL CG WLS CGS EG EGS SL
抹除 0V 0V 0V 0V 0V 0V 11.5V 11.5V 0V
程式化 Iprog VINH ~0.7V ~10.5V -0.5V 至0V -2V至0V ~4.5V 0V ~4.5V
讀取 0.6V 0V ~0-1.1V ~0-1.5V 1.1-1.3V 1.8-3V 0V ~2.5V 0V
圖25描繪用於圖22之VMM系統2200的例示性佈局2500。淺正方形指示至諸如位元線2201之位元線及諸如下拉位元線2202之下拉位元線的金屬接點。
圖26描繪用於類似於圖22之VMM系統2200的VMM系統之替代佈局2600,不同之處為下拉位元線2602極其寬且橫越兩行下拉單元。亦即,下拉位元線2602之擴散區域寬於位元線2601的擴散區域。佈局2600進一步展示單元2603及2604(下拉單元)、源極線2610及位元線2601。在另一具體例中,兩個下拉單元(左及右)之擴散可一起合併成一個較大擴散。
圖27A描繪VMM系統2700。為了實施神經網路之負及正權重,將一半位元線指定為w+線(連接至實施正權重之記憶體單元的位元線),且將另一半位元線指定為w-線(連接至實施負權重之記憶體單元的位元線)並將其以交替方式散置於w+線當中。負運算係藉由求和電路(諸如求和電路2701及2702)在w-位元線之輸出(神經元輸出)處進行。w+線之輸出及w-線之輸出組合在一起,從而對於所有線對(w+、w-)之每對(w+、w-)單元,有效地得出w = w+ - w-。圖中未展示用於避免FG-FG耦合及/或減少源極線中在讀取時之IR電壓降的虛設位元線或源極線下拉位元線。至系統2700之輸入(諸如CG或WL)可具有正值或負值輸入。對於輸入具有負值的情況,由於至陣列之實際輸入仍為正(諸如CG或WL上的電壓位準),因此在輸出之前使陣列輸出(位元線輸出)為負,以實現負值輸入之等效功能。
替代地,參考圖27B,可在第一陣列2711中實施正權重,且可在與第一陣列分離的第二陣列2712中實施負權重,且將所得權重藉由求和電路2713適當地組合在一起。類似地,虛設位元線(未示出)或源極線下拉位元線(未示出)用於避免FG-FG耦合及/或減小源極線中在讀取時之IR電壓降。
替代地,圖27C描繪用以實施具有正或負輸入之神經網路之負及正權重的VMM系統2750。第一陣列2751實施具有負及正權重之正值輸入,且第二陣列2752實施具有負及正權重之負值輸入。在由求和器2755添加至第一陣列之輸出之前使第二陣列之輸出為負,此係由於至任何陣列之任何輸入僅具有正值(諸如CG或WL上之類比電壓位準)。
表10A展示一對(w+、w-)位元線BL0/1及BL2/3之實體陣列配置的例示性佈局,其中4列耦接至源極線下拉位元線BLPWDN。成對(BL0、BL1)位元線用於實施(w+、w-)線。在(w+、w-)線對之間,存在源極線下拉位元線(BLPWDN)。此用於防止自鄰近(w+、w-)線耦接(例如,FG至FG耦合)至當前(w+、w-)線。基本上,源極線下拉位元線(BLPWDN)充當成對(w+、w-)線之間的實體障壁。
關於FG至FG耦合現象之額外細節以及用於抵消彼現象之機制見於由同一受讓人在2020年2月26日申請,且標題為「Ultra-Precise Tuning of Analog Neural Memory Cells in a Deep Learning Artificial Neural Network」之美國臨時專利申請案第62/981,757號中,該申請案以引用的方式併入本文中。
表10B展示不同例示性權重組合。「1」意謂使用單元且其具有有效輸出值,然而「0」意謂並不使用單元且其不具有值或不具有有效輸出值。
在另一具體例中,可使用虛設位元線而非源極線下拉位元線。
在另一具體例中,虛設列亦可用作實體障壁以避免列之間的耦接。 表10A:例示性佈局
   BLPWDN BL0 BL1 BLPWDN BL2 BL3 BLPWDN
列0    w01+ w01-    w02+ w02-   
列1    w11+ w11-    w12+ w12-   
列2    w21+ w21-    w22+ w22-   
列3    w31+ w31-    w32+ w32-   
表10B:例示性權重組合
   BLPWDN BL0 BL1 BLPWDN BL2 BL3 BLPWDN
列0    1 0    1 0   
列1    0 1    0 1   
列2    0 1    1 0   
列3    1 1    1 1   
表11A展示具有冗餘線BL01、BL23及源極線下拉位元線BLPWDN的線BL0/1及BL2/3的(w+、w-)對的實體配置的另一陣列具體例。BL01用於對BL0/1之權重重新映射且BL23用於對BL2/3之權重重新映射。
表11B展示不需要重新映射的分佈式權重之情況,基本上在BL1與BL3之間不存在鄰近「1」,該鄰近「1」引起鄰近位元線耦接。
在一個具體例中,權重映射使得沿著位元線之總電流近似恆定以維持近似恆定的位元線電壓降。在另一具體例中,權重映射使得沿著源極線之總電流近似恆定以維持近似恆定的源極線電壓降。
表11C展示需要重新映射的分佈式權重之情況,基本上在BL1與BL3之間存在鄰近「1」,該鄰近「1」引起鄰近位元線耦接。此重新映射展示於表11D中,使得在任何鄰近位元線之間不存在「1」值。此外,藉由在位元線當中重新映射「1」實值權重(意謂重新分佈權重),沿著位元線之總電流現在經減小,從而使得位元線(輸出神經元)中的值較精確。在此情況下,需要額外行(位元線)(BL01、BL23)以充當冗餘行。 表11E及11F描繪將有雜訊單元(或有缺陷單元)重新映射至諸如表10E中之BL01、BL23或表11F中之BL0B及BL1B之冗餘(備用)行中的另一具體例。求和器用以對位元線輸出進行適當的映射求和。 表11A:例示性佈局
   BLPWDN BL01 BL0 BL1 BL2 BL3 BL23 BLPWDN
列0       w01+ w01- w02+ w02-      
列1       w11+ w11- w12+ w12-      
列2       w21+ w21- w22+ w22-      
列3       w31+ w31- w32+ w32-      
表11B:例示性權重組合
   BLPWDN BL01 BL0 BL1 BL2 BL3 BL23 BLPWDN
列0       1 0 1 0      
列1       0 1 0 1      
列2       1 0 1 0      
列3       0 1 0 1      
表11C:例示性權重組合
   BLPWDN BL01 BL0 BL1 BL2 BL3 BL23 BLPWDN
列0       0 1 1 0      
列1       0 1 1 0      
列2       0 1 1 0      
列3       0 1 1 0      
表11D:經重新映射權重組合
   BLPWDN BL01 BL0 BL1 BL2 BL3 BL23 BLPWDN
列0    0 0 1 0 0 1   
列1    1 0 0 1 0 0   
列2    0 0 1 0 0 1   
列3    1 0 0 1 0 0   
表11E:經重新映射權重組合
   BLPWD N BL0 1 BL 0 BL1 BL2 BL3 BL23 BLPWD N
列0    0 0 1 0 0 1   
列1    1 0 有雜訊或有 缺陷單元 (未使用) 1 0 0   
列2    0 0 1 有雜訊或有 缺陷單元 (未使用) 0 1   
列3    1 0 0 1 0 0   
表11F:經重新映射權重組合
   BLPWDN BL0A BL0B BL1A BL1B BLPWDN
列0    1 0 0 0   
列1    有雜訊或有 缺陷單元 (未使用) 1 1 0   
列2    1 0 有雜訊或有缺陷單元 (未使用)    1   
列3    0 0 1 0   
表11G展示適於圖27B之陣列實體配置之具體例。由於每一陣列具有正權重或負權重,因此對於每條位元線,需要充當源極線下拉及實體障壁以避免FG-FG耦合之虛設位元線。 表11G:例示性佈局
   BLPWDN BL0 BLPWDN BL1 BLPWDN
列0    w01+/-    w02+/-   
列1    w11+/-    w12+/-   
列2    w21+/-    w22+/-   
列3    w31+/-    w32+/-   
另一具體例具有作為至目標位元線之鄰近位元線的調諧位元線,以藉助於FG-FG耦合將目標位元線調諧至最終目標。在此情況下,源極線下拉位元線(BLPWDN)插入於目標位元線之不與調諧位元線毗鄰之一側上。
用於映射有雜訊或有缺陷單元的替代具體例用以將此等單元指定(在由感測電路將其識別為有雜訊或有缺陷之後)為未使用單元,意謂其待(深入地)程式化以免對神經元輸出貢獻任何值。
用於處置快速單元之具體例首先用以識別此等單元,接著將較精確演算法應用於此等單元,諸如較小或無電壓增量脈衝或使用浮動閘極耦合演算法之演算法。
圖28描繪可包括於迄今論述之VMM陣列中之任一者中的可選冗餘陣列2801。若附接至位元線開關之任一行被視為有缺陷的,則冗餘陣列2801可用作冗餘以替換有缺陷行。冗餘陣列出於冗餘目的可具有其自身的冗餘神經元輸出(例如,位元線)及ADC電路。在需要冗餘之情況下,冗餘ADC之輸出用以替換不良位元線之ADC的輸出。冗餘陣列2801亦可用於諸如表10x中所描述之權重映射,以實現跨越位元線之功率分佈。
圖29描繪VMM系統2900,其包含陣列2901、陣列2902、行多工器2903、區域位元線LBL 2905a至2905d、全域位元線GBL 2908及2909,以及虛設位元線開關2905。行多工器2903用於將陣列2901之頂部區域位元線2905或陣列2902之底部區域位元線2905選擇至全域位元線2908中。在一個具體例中,(金屬)全域位元線2908具有與區域位元線之數目(例如,8或16)相同的線數。在另一具體例中,每N條區域位元線,全域位元線2908僅具有一條(金屬)線,諸如每8或16條區域位元線僅具有一條全域位元線。行多工器2903進一步包括將鄰近全域位元線(諸如GBL 2909)多工至當前全域位元線(諸如GBL 2908)以有效地增大當前全域位元線之寬度。此減少跨越全域位元線的電壓降。
圖30描繪VMM系統3000。VMM系統3000包含陣列3010、(移位暫存器)SR 3001、數位至類比轉換器3002(其接收來自SR 3001之輸入且輸出等效(類比或偽類比)位準或資訊)、求和器電路3003、類比至數位轉換器3004及位元線開關3005。虛設位元線及虛設位元線開關存在但未示出。如所示,ADC電路可組合在一起以產生具有較大精度(亦即,較大數目個位元)之單個ADC。
求和器電路3003可包括展示於圖31至圖33中之電路。其可包括用於正規化、縮放、算術運算、激發或統計捨入等之電路。
圖31描繪可由可變電阻器調整的電流至電壓求和器電路3100,其包含:電流源3101-1…3101-n,其分別汲取電流Ineu(1)…Ineu(n)(其為自VMM陣列之位元線接收到的電流);運算放大器3102;可變保持電容器3104及可變電阻器3103。運算放大器3102輸出電壓Vneuout = R3103 * (Ineu1 + Ineu0),其與電流Ineux成比例。當開關3106斷開時,保持電容器3104用以保持輸出電壓。例如,使用此保持輸出電壓以藉由ADC電路轉換成數位位元。
圖32描繪可由可變電容器(基本上為積分器)調整之電流至電壓求和器電路3200,其包含:電流源3201-1…3201-n,其分別汲取電流Ineu(1)…Ineu(n)(其為自VMM陣列之位元線接收到的電流);運算放大器3202;可變電容器3203及開關3204。運算放大器3202輸出電壓Vneuout = Ineu*積分時間/C3203,其與電流Ineu成比例。
圖33A描繪可由可變電容器(亦即,切換式電容器SC電路)調整之電壓求和器3300,其包含開關3301及3302、可變電容器3303及3304、運算放大器3305、可變電容器3306及開關3306。當開關3301閉合時,輸入Vin0被提供至運算放大器3305。當開關3302閉合時,輸入Vin1被提供至運算放大器3305。視情況,開關3301及3302並不同時閉合。運算放大器3305產生輸出Vout,該輸出為輸入(Vin0及/或Vin1,此取決於開關3301及3302當中之哪個開關閉合)之經放大版本。亦即,Vout = Cin/Cout * (Vin),Cin為C3303或C3304,Cout為C3306。例如,Vout = Cin/Cout * ∑ (Vinx),Cin = C3303 = C3304。在一個具體例中,Vin0為W+電壓且Vin1為W-電壓,且電壓求和器3300將其加在一起以產生輸出電壓Vout。
圖33B描繪電壓求和器3350,其包含開關3351、3352、3353及3354、可變輸入電容器3358、運算放大器3355、可變回饋電容器3356及開關3357。在一個具體例中,Vin0為W+電壓且Vin1為W-電壓,且電壓求和器3300將其加在一起以產生輸出電壓Vout。
對於輸入=Vin0:當開關3354及3351關閉時,輸入Vin0被提供至電容器3358之頂部端子。接著,開關3351斷開且開關3353閉合以將電荷自電容器3358轉移至回饋電容器3356中。基本上,接著輸出VOUT = (C3358/C3356) * Vin0 (作為實施例,對於VREF =0之情況)。
對於輸入=Vin1:當開關3353及3354閉合時,電容器3358之兩個端子被放電至VREF。接著開關3354斷開且開關3352閉合,從而將電容器3358之底部端子充電至Vin1,此又將回饋電容器3356充電至VOUT = -(C3358/C3356) * Vin1 (對於VREF=0的情況)。
因此,作為實施例,對於VREF=0之情況,若Vin1輸入在Vin0輸入經啟用之後經啟用,則VOUT = (C3358/C3356) * (Vin 0 - Vin1)。此例如用以實現w = w+ - w-。
應用於上文所論述之VMM陣列的圖2之輸入及輸出操作之方法可呈數位或類比形式。方法包括: ●至DAC之依序輸入IN [0:q]: ●依序操作IN0、接著IN1…接著INq;所有輸入位元具有相同VCGin;所有位元線(神經元)輸出藉由調整二進位索引乘法器經求和;在ADC之前或在ADC之後 ●調整如圖20中所示之神經元(位元線)二進位索引乘法器方法,實施例求和器具有兩條位元線BL0及Bln。跨越多條位元線BL0至BLn分佈權重。例如,存在4條位元線BL0、BL1、BL2、BL3。來自位元線BL0的輸出應乘以2^0=1。來自代表第n二進位位元位置之位元線BLn的輸出乘以2^n,例如,對於n =3,2^3 = 8。接著,將來自所有位元線之輸出在適當地乘以二進位位元位置2^n之後一起求和。接著,此藉由ADC數位化。此方法意謂所有單元僅具有二進位範圍,多位準範圍(n位元)藉由周邊電路(意謂藉由求和器電路)實現。因此,對於記憶體單元之最高偏壓位準,所有位元線之電壓降近似相同。 ●依序操作IN0、IN1…接著INq;每一輸入位元具有對應類比值VCGin;針對所有輸入位元評估對所有神經元輸出進行求和;在ADC之前或ADC之後 ●至DAC之並列輸入: ●每一輸入IN[0:q]具有對應類比值VCGin;藉由調整二進位索引乘法器方法對所有神經元輸出進行求和;在ADC之前或ADC之後
藉由在陣列上依序操作,更均勻地分佈功率。神經元(位元線)二進位索引方法亦減少陣列中的功率,此係由於位元線中的每一單元僅具有二進位層級,因此藉由求和器電路2603實現2^n層級。
如圖33中所示之每一ADC可經組構以與下一ADC組合以藉由ADC之適當設計來實現較高位元實施。
圖34A、圖34B及圖34C描繪可用於圖30中之求和器電路3003及類比至數位轉換器3004的輸出電路。
圖34A描繪包含類比至數位轉換器3402之輸出電路3400,該轉換器接收神經元輸出3401且輸出輸出數位位元3403。
圖34B描繪輸出電路3410,其包含一起接收神經元輸出3401且產生輸出3413之神經元輸出電路3411及類比至數位轉換器3412。
圖34C描繪輸出電路3420,其包含一起接收神經元輸出3401且產生輸出3423之神經元輸出電路3421及轉換器3422。
神經元輸出電路3411或3411可例如執行求和、縮放、正規化、算術運算等。轉換器3422例如可執行ADC、PDC、AAC、APC操作等。
圖35描繪神經元輸出電路3500,其包含可調整(縮放)電流源3501及可調整(縮放)電流源3502,其一起產生輸出iOUT ,該輸出為神經元輸出。此電路可執行對正權重及負權重之求和,亦即w = w+ - w-,且同時對輸出神經元電流進行放大或縮小。
圖36描繪可組構神經元串列類比至數位轉換器3600。其包括積分器3670,該積分器將神經元輸出電流積分至積分電容器3602中。一個具體例為數位輸出(計數輸出)3621係藉由對斜變VRAMP 3650進行計時直至比較器3604切換極性為止而產生,或另一具體例為藉由經由斜坡電流3651使節點VC 3610斜降直至VOUT 3603達到VREF 3650而產生,此時EC 3605信號停用計數器3620。取決於目標應用,(n位元) ADC可組構為具有較低數目之位元精度(<n個位元)或較高數目之位元精度(>n個位元)。可組構性可藉由組構電容器3602、電流3651或VRAMP 3650之斜變速率、計時3641等來進行。在另一具體例中,VMM陣列之ADC電路經組構以具有較低精度(<n個位元),且另一VMM陣列之ADC電路經組構以具有高精度(>n個位元)。此外,一個神經元電路之此ADC電路可經組構以與下一神經元電路之下一ADC組合以諸如藉由組合兩個ADC電路之積分電容器3602來產生較高n位元ADC精度。
圖37描繪可組構神經元SAR (逐次近似暫存器)類比至數位轉換器3700。 此電路為基於使用二進位電容器之電荷再分佈的逐次近似轉換器。其包括二進位CDAC (基於電容器之DAC)3701、運算放大器/比較器3702、SAR邏輯3703。如所示,GndV 3704為低電壓參考位準,例如接地位準。
圖38描繪可組構神經元組合SAR類比至數位轉換器3800。此電路將來自兩個神經元電路之兩個ADC組合成一個以實現較高精度n位元,例如對於用於一個神經元電路之4位元ADC,此電路可藉由組合兩個4位元ADC實現>4位元精度,諸如8位元ADC精度。組合電路拓樸等效於分離電容器(橋接電容器(cap)或注意電容器(attention cap)) SAR ADC電路,例如藉由組合兩個鄰近4位元4C SAR ADC電路產生之8位元4C至4C SAR ADC。需要橋接電路3804以實現此情形,此電路之電容器的電容=(CDAC電容器單元之總數/CDAC電容器單元之總數-1)。
圖39描繪可用於以管線化方式與下一SAR ADC組合以增大位元數目的可組構神經元管線化SAR CDAC ADC電路3900。殘餘電壓3906由電容器3930 Cf產生以提供為至管線式ADC的下一級的輸入(例如,以提供作為至下一SAR CDAC ADC之輸入的增益2(Cf與DAC 3901中的所有電容器之C的比率))。
關於可組構輸出神經元(諸如可組構神經元ADC)電路之額外實施細節可見於由同一受讓人在2019年6月21申請且標題為「Configurable Input Blocks and Output Blocks and Physical Layout for Analog Neural Memory in a Deep Learning Artificial Neural Network」的美國專利申請案第16/449,201號中,該申請案以引用之方式併入本文中。
申請人先前發明了一種用於實現人工神經網路中之類比神經記憶體中的精確資料調諧的機制,其描述於2020年8月4申請且標題為「Ultra-Precise Tuning of Analog Neural Memory Cells in a Deep Learning Artificial Neural Network」之美國專利申請案第16/985,147號中,該申請案以引用的方式併入本文中。彼先前申請案揭示了用於在VMM中執行選定單元之粗略程式化、精細程式化及超精細程式化的具體例。因此,彼申請案涵蓋對每一選定單元執行至多三種類型之程式化。雖然此方法可實現極其精確的程式化,但其亦花費大量時間,此係由於陣列中之每一選定單元必須經過所有三種類型之程式化程序。
圖40至圖48描繪了對先前技術及先前申請案之程式化機制進行改良的具體例。
圖40描繪邏輯單元4000。在此實施例中,邏輯單元包含三個記憶體單元,其標記為精細單元4001-1、粗略單元4001-2及粗略單元4001-3。精細單元4001-1耦接至精細位元線4002-1,粗略單元4001-2耦接至粗略位元線4002-2,且粗略單元4001-3耦接至粗略位元線4002-3。邏輯單元4000包含在先前技術中將已儲存於(實體)單個單元中的資料。例如,邏輯單元4000可保持N個不同值中的一者,其中N為可儲存於邏輯單元4000中的不同值之總數目(例如,N=64或128)。不同於先前技術中,並非對每一實體單元執行多種類型之程式化(例如,粗略程式化及精細程式化),對粗略位元線4002-3上方的粗略單元4001-3執行粗略程式化方法,對粗略位元線4002-2上方的粗略單元4001-2執行粗略程式化方法,且對精細位元線4002-1上方的精細單元4001-1執行粗略及/或精細程式化方法。亦即,並不對粗略單元4001-2及4001-3執行精細程式化方法。藉由實施此方法,相比於針對所有三個單元進行粗略及精細程式化的方法,程式化時間將短得多,此係由於特定而言,精細程式化花費相對大量時間。
圖41描繪對圖40之邏輯單元4000執行的程式化及驗證方法4100。
第一步驟為抹除精細單元4001-1、粗略單元4001-2及粗略單元4001-3(步驟4101)。視情況,第一步驟進一步包含在抹除之後,對所有三個單元執行粗略程式化方法以得到中間值。
第二步驟為使用粗略程式化方法程式化粗略單元4001-3及在彼操作之後驗證邏輯單元4000,以確認粗略單元4001-3被正確地程式化至粗略單元4001-3之預期粗略值(步驟4102)。替代方法為驗證粗略單元自身。
第三步驟為使用粗略程式化方法程式化粗略單元4001-2及在彼操作之後驗證邏輯單元4000,以確認粗略單元4001-2及粗略單元4001-3已一起被正確地程式化至粗略單元4001-2及4001-3之預期粗略值,其一起反映為邏輯單元4000之值(步驟4103)。
第四步驟為使用精細程式化方法程式化精細單元4001-1及在彼操作之後驗證邏輯單元4000,以確認精細單元4001-1、粗略單元4001-2及粗略單元4003已一起被正確地程式化至邏輯單元4000之預期值(步驟4104)。
表13描繪邏輯單元4000、精細單元4001-1、粗略單元4001-2及粗略單元4001-3之目標值的實施例: 表13:邏輯單元4000之例示性目標值
N之值 邏輯單元4000之目標 精細單元4001-1之目標 粗略單元4001-2之目標 粗略單元4001-3之目標
1 1 nA 1 nA 0 nA 0 nA
6 6 nA 6 nA 0 nA 0 nA
56 56 nA 6 nA 0 nA 50 nA
128 128 nA 8 nA 60 nA 60 nA
如參考表13可瞭解,僅精細單元4001-1需要具有在邏輯單元4000之最終目標值的所允許百分比(例如但不限於+/-0.5%、+/-0.25%)內的精確且準確值。例如,申請人已判定出,作為實施例,粗略單元可具有粗略單元之目標值的+/-20%(此係由於任何不準確性可由精細單元4001-1補償),而精細單元可具有邏輯單元之目標值的+/-0.5%。因此,可藉由較粗略電壓階躍來程式化粗略單元,此允許粗略單元快得多地達到其目標。針對記憶體單元之N個層級中之每一者指派電荷位準的一種方法如下。首先,根據資料特性判定在次臨限或任何其他區中具有最大電流Imax之電流範圍,通常電流範圍Imax在浮動上之電壓內,近似=Vtfg-0.2 V。其次,當單元處於斷開條件(例如,WL=0 V、CG=0 V)時,自實體記憶體單元判定洩漏電流Ileak。  N個層級中之最低層級的最低電荷將為某一因數a*Ileak,例如對於128列陣列,a=128。 N個層級中之最高層級的最高電荷為與電流範圍之最大電流Imax相關聯的電荷。再次,使用粗略/精細或粗略/精細/超精細演算法在程式化至Imax時判定程式化解析度。通常,Imax目標之標準偏差(西格瑪)變化為粗略/精細演算法之單電子程式化解析度及粗略/精細/超精細(位元線調諧或浮動閘極-浮動閘極耦合調諧方法)之子電子程式化解析度。例如,神經網路之目標增量位準可= (IdeltaL= I(Ln) - I(Ln-1) = b*1西格瑪變化,b取決於特定應用之所要網路準確性通常可為1或2或3。對於例示性具體例,層級數NL= (Imax- a*Ileak) / IdeltaL,其中a為基於資料特性之預定數字。
圖42描繪邏輯單元4200。在此實施例中,邏輯單元4200包含四個記憶體單元,其標記為調諧單元4201-1、精細單元4201-2、粗略單元4201-3及粗略單元4201-4。調諧單元4201-1耦接至調諧位元線4202-1,精細單元4201-2耦接至精細位元線4202-2,粗略單元4201-3耦接至粗略位元線4202-3,且粗略單元4201-4耦接至粗略位元線4202-4。邏輯單元4200包含在先前技術中將已儲存於單個實體單元中的資料。例如,邏輯單元4200可保持N個不同值中的一者,其中N為可儲存於邏輯單元中的不同值之總數目(例如,N=64或128)。不同於先前技術中,並非對每一實體單元執行多種類型之程式化(例如,粗略程式化、精細程式化、超精細(FG-FG調諧)或調諧程式化),對粗略位元線4202-4上方的粗略單元4201-4執行粗略程式化,對粗略位元線4202-3上方的粗略單元4201-3執行粗略程式化,對精細位元線4202-2上方的精細單元4201-2執行粗略及/或精細程式化,且對調諧位元線4202-1上方的調諧單元4201-1執行FG-FG調諧(超精細)程式化。亦即,並不對粗略單元4201-3及4201-4執行超精細及精細程式化,且並不對精細單元4201-2執行超精細程式化。
超精細程式化允許邏輯單元達到最終目標值之目標%內,例如但不限於+/- 0.5%或+/-0.25%。超精細程式化藉由程式化調諧單元4201-1來執行。調諧單元4201-1經由FG-FG耦合(調諧單元4201-1之FG耦合至精細單元4201-2之FG)而調諧精細單元4201-2。例如,若自調諧單元之FG-FG耦接至精細單元之百分比為~3%,則此意謂調諧單元之FG中之4mV變化(諸如,來自一個單元的10mV之CG程式化增量)引起精細單元之FG中發生0.12 mV之變化(自鄰近兩個單元之FG至FG耦合)。作為實施例,粗略單元4201-3及4201-5中之每一者的粗略單元目標可在+/-20%內,精細單元目標可在15%內,調諧單元調諧目標可為+/-0.2%。應注意,三個(多個)實體單元僅需要一個調諧單元以實現一個邏輯單元。
圖43描繪對圖42之邏輯單元4200執行的程式化及驗證方法4300。
第一步驟為抹除調諧單元4201-1、精細單元4201-2、粗略單元4201-3及粗略單元4201-4(步驟4301)。視情況,第一步驟進一步包含對精細單元4201-2、粗略單元4201-3及粗略單元4201-4執行粗略程式化方法以得到中間值。
第二步驟為使用粗略程式化方法程式化粗略單元4201-4及在彼操作之後驗證邏輯單元4200,以確認粗略單元4201-4被正確地程式化至粗略單元4002-4之預期粗略值(步驟4302)。
第三步驟為使用粗略程式化方法程式化粗略單元4201-3及在彼操作之後驗證邏輯單元4200,以確認粗略單元4201-3及粗略單元4201-4已一起被正確地程式化至粗略單元4201-3及4201-4之預期粗略值(步驟4303)。
第四步驟為使用精細程式化方法程式化精細單元4201-2及在彼操作之後驗證邏輯單元4200,以確認精細單元4201-2、粗略單元4201-3及粗略單元4201-4已一起被正確地程式化至邏輯單元4200之預期值(步驟4304)。
第五步驟為使用調諧方法程式化調諧單元4201-1及在彼操作之後驗證邏輯單元4200,以確認調諧單元4201-1、精細單元4201-2、粗略單元4201-3及粗略單元4201-4已一起被正確地程式化至邏輯單元4200之預期值(步驟4305)。
表14描繪邏輯單元4200、調諧單元4201-1、精細單元4001-2、粗略單元4201-3及粗略單元4201-4之目標值的實施例: 表14:邏輯單元4200之例示性目標值
層級 (N=128) 邏輯單元 4200之目標 調諧單元4201-1 之目標 精細單元4201-2 之目標 粗略單元4201-3 之目標 粗略單元4201-4 之目標
1 0.5 nA 10-20000nA 0.5 nA 0 nA 0 nA
6 3 nA 10-2000 nA 3 nA 0 nA 0 nA
7 3.5 nA 10-2000 nA 3.5 nA 0 nA 0 nA
128 64 nA 10-2000 nA 4 nA 30 nA 30 nA
應注意,調諧單元4201-1之絕對值並不重要,此係由於邏輯單元4200的值為兩個粗略單元4201-3、4201-4與精細單元4201-2之總和。調諧單元4201-1之目的為調諧精細單元4201-2之值。
圖44描繪陣列4400。陣列4400包含複數個邏輯單元,諸如例示性邏輯單元4451,其在此處遵循邏輯單元4200之結構。因此,邏輯單元4451包含耦接至調諧位元線4401-1之調諧單元4411-1、耦接至精細位元線4401-2之精細單元4411-2、耦接至粗略位元線4401-3之粗略單元4411-3,及耦接至粗略位元線4401-4之粗略單元4411-4。此處,每一列包含與邏輯單元4200結構相同的複數個邏輯單元,且陣列4400包含複數個列,諸如例示性列4410及4420。應注意,在同一列中,下一邏輯單元使其調諧單元緊鄰先前邏輯單元之粗略單元,此用以最小化兩個邏輯單元之間的FG-FG耦合,此係由於相比於例如精細單元4411-6,電容效應在粗略單元4411-4上將相對較小。
圖45描繪陣列4500。除了陣列4500亦包含耦接至隔離位元線之隔離單元行之外,陣列4500類似於陣列4400。例如,陣列4500包含邏輯單元4551,其包含耦接至調諧位元線4501-2之調諧單元4511-2、耦接至精細位元線4501-3之精細單元4511-3、耦接至粗略位元線4501-4之粗略單元4511-4,及耦接至粗略位元線4501-5之粗略單元4511-5。陣列4500進一步包含耦接至隔離位元線4501-1之隔離單元4511-1及耦接至隔離位元線4501-6之隔離單元4511-6,其中隔離單元4511-1及隔離單元4511-6在其任一側上鄰近於邏輯單元4551。隔離單元4511-1及隔離單元4511-6並不用以儲存資料;實際上,其用以在邏輯單元之間提供緩衝器以減少邏輯單元之間的任何不合需要之干擾效應。較佳地,隔離單元經深入地程式化,使得隔離單元之FG電壓處於最低可能值。替代地,隔離單元經部分抹除、完全抹除或處於原生狀態(無抹除或程式化)。 替代地,隔離單元經部分程式化。替代地,隔離單元為虛設單元。應注意,對於同一列,邏輯單元之間的隔離單元鄰近於先前邏輯單元的一個粗略單元,且鄰近於之後邏輯單元的調諧單元。
圖46描繪陣列4600。除了陣列4600亦包含並不耦接至任何位元線之條帶單元行之外,陣列4600類似於陣列4400。例如,陣列4600包含邏輯單元4651,其包含耦接至調諧位元線4601-2之調諧單元4611-2、耦接至精細位元線4601-3之精細單元4611-3、耦接至粗略位元線4610-4之粗略單元4611-4及耦接至粗略位元線4601-5之粗略單元4611-5。陣列4600進一步包含定位成在其任一側上鄰近於邏輯單元4651之條帶單元4611-1及4611-6。條帶單元4611-1及4611-6並不用於儲存資料;實際上,其用作可在陣列4600內及陣列4600外部之裝置及連接(諸如驅動器電路)之各種線(摺線) (諸如用於字線之WL條帶、用於抹除閘極線之EG條帶、用於控制閘極線之CG條帶、SL條帶源極線,或如SLWL條帶、SLCG條帶、SLEG條帶之條帶組合;條帶單元在其結構中仍可具有虛設浮動閘極結構)之間進行導電連接(如金屬互連)的區域。替代地,隔離單元置放於條帶單元與調諧單元之間。替代地,隔離單元緊鄰條帶單元置放。
圖47描繪陣列4700。除了陣列4700亦包含耦接至陣列之下拉源極線的下拉單元行之外,陣列4700類似於陣列4400。例如,陣列4700包含邏輯單元4751,其包含耦接至調諧位元線4701-2之調諧單元4711-2、耦接至精細位元線4701-3之精細單元4711-3、耦接至粗略位元線4701-4之粗略單元4711-4,及耦接至粗略位元線4701-5之粗略單元4711-5。陣列4700進一步包含耦接至下拉位元線4701-1之下拉單元4711-1及耦接至下拉位元線4701-6之下拉單元4711-6,其中下拉單元4711-1及下拉單元4711-6在其任一側上鄰近於邏輯單元4751。下拉單元4711-1及4711-6並不用以儲存資料;實際上,如上文參考圖21至圖27所描述,其用以視需要將源極線端子下拉至接地。
圖48描繪陣列4800。陣列4800包含邏輯單元4851,其包含耦接至調諧位元線4801-1之調諧單元4811-1及調諧單元4821-1;耦接至混合位元線4801-2之粗略單元4811-2及精細單元4821-2;耦接至粗略位元線4810-3之粗略單元4811-3及粗略單元4821-3。因此,在陣列4800中,每一邏輯單元包含在一列(諸如偶數列)中之三個單元及在鄰近列(諸如奇數列)中之三個單元。該等單元中之三者為粗略單元,一個單元為精細單元,且兩個單元為調諧單元。與先前所描述程式化方法一致,在程式化邏輯單元4851時,單元之程式化次序為:粗略單元4811-3、粗略單元4821-3、粗略單元4811-2、精細單元4821-2、調諧單元4811-1(其預期對粗略單元4811-2具有最小影響)及調諧單元4821-1。在讀取或驗證操作期間,將所有六個單元讀取為一個邏輯單元。經由此方法,奇數列與偶數列之間的失配被一起平均化以便最小化I-V斜率失配。
應注意,如本文中所使用,術語「在...上方」及「在...上」兩者包括「直接在...上」(其間未安置有中間材料、元件或空間)及「間接地在...上」(其間安置有中間材料、元件或空間)。同樣地,術語「鄰近」包括「直接鄰近」(其間未安置有中間材料、元件或空間)及「間接鄰近」(其間安置有中間材料、元件或空間),「安裝至」包括「直接安裝至」(其間未安置有中間材料、元件或空間)及「間接安裝至」(其間安置有中間材料、元件或空間),且「電耦接」包括「直接電耦接至」(其間無將元件電連接在一起的中間材料或元件)及「間接電耦接至」(其間具有將元件電連接在一起的中間材料或元件)。例如,「在基板上方」形成元件可包括直接在基板上形成元件而其間無中間材料/元件,以及間接地在基板上形成元件而其間具有一或多種中間材料/元件。
12:半導體基板 14:源極區 16:汲極區(DR) 18:通道區 20:浮動閘極(FG) 22:字線端子,選擇閘極,控制閘極端子 24:位元線端子,位元線接點(BL) 28:控制閘極(CG)端子 30:抹除閘極(EG) 31:數位至類比轉換器 32,32a,32b,32c,32d,32e,1700,2000,2100,2200,2300,2400,2700,2750,2900,3000:向量乘矩陣乘法(VMM)系統 33:VMM陣列,非揮發性記憶體單元陣列 34:抹除閘極及字線閘極解碼器 35:控制閘極解碼器 36:位元線解碼器 37:源極線解碼器 38:差分求和器 39:激發函數電路 210,310,510:記憶體單元 410:四閘極記憶體單元 610:三閘極記憶體單元 710:堆疊閘式記憶體單元 810:雙分離閘式記憶體單元 1200,1300,1400,1500,1600:神經元VMM陣列 1201,1303,1403,1503,1603:非揮發性記憶體單元之記憶體陣列 1202:非揮發性參考記憶體單元之參考陣列 1203:控制閘極線 1204:抹除閘極線 1301,1401,1501,1601:第一非揮發性參考記憶體單元之參考陣列 1302,1402,1502,1602:第二非揮發性參考記憶體單元之參考陣列 1314,1512:二極體連接式貫穿多工器 1504:串疊電晶體 1505:多工器 1614:二極體連接式參考單元貫穿多工器 1701:VMM陣列 1702:列解碼器 1703:高電壓解碼器 1704:行解碼器 1705:位元線驅動器 1706:輸入電路 1707,3400,3410,3420:輸出電路 1708,1716:控制邏輯 1709:偏壓產生器 1710:高電壓產生區塊 1711:電荷泵 1712:電荷泵調節器 1713:高電壓位準產生器 1714:演算法控制器 1715:類比電路 1717:測試控制邏輯 1800:先前技術VMM系統 1801,1802,1901,1902:單元 1803,1903,1903a,1903b,1903c,1903d,2101,2104,2201,3005:位元線開關 1804,1904,1904a,1904b,1904c,1904d,2001,2002,2905:虛設位元線開關 1805,1806,1905,1906:虛設單元 1807,1808,1907,1908:垂直金屬位元線 1900:經改良VMM系統 2003:源極線開關 2005a-2005n,2007a-2007n:虛設位元線 2102,2103:下拉位元線開關 2105,2108,2203,2206,2303,2306,2403:資料單元 2106,2107,2204,2205,2304,2305,2404,2405,2406,2603,2604,4711-1,4711-6:下拉單元 2110,2210,2211,2411,2610:源極線 2111:線 2202,2402,2602,4701-1,4701-6:下拉位元線BLpd 2301,2302,2401,2601:位元線 2500,2600:佈局 2701,2702,2713:求和電路 2711,2751:第一陣列 2712,2752:第二陣列 2755:求和器 2801:冗餘陣列 2901,2902,3010,4400,4500,4600,4700,4800:陣列 2903:行多工器 2905a-2905d:區域位元線LBL 2908,2909:全域位元線GBL 3001:移位暫存器(SR) 3002,3901:數位至類比轉換器(DAC) 3003:求和器電路 3004,3402,3412:類比至數位轉換器(ADC) 3100,3200:電流至電壓求和器電路 3101-1-3101-n,3201-1-3201-n,3501,3502:電流源 3102,3202,3305,3355:運算放大器 3103:可變電阻器 3104:可變保持電容器 3106,3204,3301,3302,3307,3351,3352,3353,3354,3357:開關 3203,3303,3304,3306:可變電容器 3300,3350:電壓求和器 3356:可變回饋電容器 3358:可變輸入電容器 3401:神經元輸出 3403:輸出數位位元 3411,3421,3500:神經元輸出電路 3413,3423:輸出 3422:轉換器 3600:可組構神經元串列類比至數位轉換器 3602:積分電容器 3603:VOUT 3604:比較器 3605:EC信號 3610:節點VC 3620:計數器 3621:數位輸出 3641:計時 3650:斜變VRAMP,VREF 3651:斜坡電流 3670:積分器 3700:可組構神經元SAR類比至數位轉換器 3701:二進位CDAC 3702:運算放大器/比較器 3703:SAR邏輯 3704:GndV 3800:可組構神經元組合SAR類比至數位轉換器 3804:橋接電路 3900:可組構神經元管線化SAR CDAC ADC電路 3906:殘餘電壓 3930:電容器Cf 4000,4200,4451,4551,4651,4751,4851:邏輯單元 4001-1,4201-2,4411-2,4411-6,4511-3,4611-3,4711-3,4821-2:精細單元 4001-2,4001-3,4201-3,4201-4,4411-3,4411-4,4511-4,4511-5,4611-4,4611-5,4711-4,4711-5,4811-2,4811-3,4821-3:粗略單元 4002-1,4202-2,4401-2,4501-3,4601-3,4701-3:精細位元線 4002-2,4002-3,4202-3,4202-4,4401-3,4401-4,4501-4,4501-5,4601-4,4601-5,4701-4,4701-5,4801-3:粗略位元線 4100,4300:程式化及驗證方法 4101,4102,4103,4104,4301,4302,4303,4304,4305:步驟 4201-1,4411-1,4511-2,4611-2,4711-2,4811-1,4821-1:調諧單元 4202-1,4401-1,4501-2,4601-2,4701-2,4801-1:調諧位元線 4410,4420:列 4501-1,4501-6:隔離位元線 4511-1,4511-6:隔離單元 4611-1,4611-6:條帶單元 4801-2:混合位元線 BL,BL0-BLN,BL0A,BL0B,BL1B:位元線 BL01,BL23:冗餘線 BLpdx:垂直金屬線 BLR0,BLR1,BLR2,BLR3:端子 BLPWDN,BPpd:下拉位元線 C1,C2,C3,S1,S2:層 CB1,CB2,CB3,CB4:突觸 CG,CG0,CG1,CG2,CG3,CGS:控制閘極CG線,電壓輸入 EG0,EG1,EGR0,EGR1:抹除閘極EG線 iOUT ,Vout:輸出 Ineu(1),Ineu(n):電流 P1,P2:激發函數 S0:輸入層 S3:輸出層 SL,SL0,SL1:源極線 Vin0,Vin1,WLx,EGx,CGx,BLx,SLx,Inputx:輸入 Vneuout:電壓 WL0,WL1,WL2,WL3:字線,電壓輸入 WL,WLS,WLA0,WLB0,WLA1,WLB1,WLA2,WLB2,WLA3,WLB3:字線
圖1描繪先前技術人工神經網路。
圖2描繪先前技術分離閘式快閃記憶體單元。
圖3描繪另一先前技術分離閘式快閃記憶體單元。
圖4描繪另一先前技術分離閘式快閃記憶體單元。
圖5描繪另一先前技術分離閘式快閃記憶體單元。
圖6描繪另一先前技術分離閘式快閃記憶體單元。
圖7描繪先前技術堆疊閘式快閃記憶體單元。
圖8描繪雙分離閘式記憶體單元。
圖9描繪利用一或多個VMM陣列之例示性人工神經網路之不同層級。
圖10描繪包含VMM陣列及其他電路之VMM系統。
圖11描繪利用一或多個VMM系統之例示性人工神經網路。
圖12描繪VMM陣列之具體例。
圖13描繪VMM陣列之另一具體例。
圖14描繪VMM陣列之另一具體例。
圖15描繪VMM陣列之另一具體例。
圖16描繪VMM陣列之另一具體例。
圖17描繪VMM系統。
圖18A、圖18B及圖18C描述先前技術VMM陣列。
圖19A、圖19B及圖19C描繪經改良VMM陣列。
圖20描繪另一經改良VMM陣列。
圖21描繪具有經改良之源極線下拉機制的VMM系統。
圖22描繪具有經改良之源極線下拉機制的另一VMM系統。
圖23描繪具有經改良之源極線下拉機制的另一VMM系統。
圖24描繪具有經改良之源極線下拉機制的另一VMM系統。
圖25描繪具有經改良之源極線下拉機制之VMM系統的例示性佈局圖。
圖26描繪具有經改良之源極線下拉機制之VMM系統的另一例示性佈局圖。
圖27A、圖27B及圖27C描繪其他經改良VMM陣列。
圖28描繪包含冗餘陣列之另一經改良VMM陣列。
圖29描繪包含兩個VMM陣列及共用虛設位元線切換電路的另一經改良VMM系統。
圖30描繪另一經改良VMM系統。
圖31描繪求和器電路之具體例。
圖32描繪求和器電路之另一具體例。
圖33A及圖33B描繪求和器電路之其他具體例。
圖34A、圖34B及圖34C描繪輸出電路之具體例。
圖35描繪神經元輸出電路。
圖36描繪類比至數位轉換器之具體例。
圖37描繪類比至數位轉換器之另一具體例。
圖38描繪類比至數位轉換器之另一具體例。
圖39描繪類比至數位轉換器之另一具體例。
圖40描繪VMM陣列中之邏輯單元的具體例。
圖41描繪用於圖40之邏輯單元的程式化及驗證方法。
圖42描繪VMM陣列中之邏輯單元的另一具體例。
圖43描繪用於圖42之邏輯單元的程式化及驗證方法。
圖44描繪VMM陣列之具體例。
圖45描繪VMM陣列之另一具體例。
圖46描繪VMM陣列之另一具體例。
圖47描繪VMM陣列之另一具體例。
圖48描繪VMM陣列之另一具體例。
C1:層
C2:層
C3:層
CB1:突觸
CB2:突觸
CB3:突觸
CB4:突觸
P1:激發函數
P2:激發函數
S0:輸入層
S1:層
S2:層
S3:輸出層

Claims (56)

  1. 一種記憶體系統,其包含:一非揮發性記憶體單元陣列,其配置成列及行;及一邏輯單元,其包含位於該陣列之同一列中的組構為粗略單元之一或多個非揮發性記憶體單元及組構為精細單元之一或多個非揮發性記憶體單元,其中,在程式化操作期間,藉由對該等精細單元執行粗略程式化及精細程式化且對該等粗略單元執行粗略程式化及不執行精細程式化,N個可能值之一者係於該邏輯單元中經儲存及驗證。
  2. 如請求項1之記憶體系統,其中,組構為粗略單元之該等非揮發性記憶體單元中之每一者的可能程式化電流值之一範圍大於組構為精細單元之該等非揮發性記憶體單元中之每一者的可能程式化電流值之一範圍。
  3. 如請求項1之記憶體系統,其進一步包含一調諧單元。
  4. 如請求項1之記憶體系統,其中,該調諧單元用於調諧緊鄰其之一鄰近單元。
  5. 如請求項4之記憶體系統,其中,該調諧單元用於經由該調諧單元之一浮動閘極與該鄰近單元之一浮動閘極之間的耦合來調諧該鄰近單元。
  6. 如請求項1之記憶體系統,其中,該邏輯單元進一步包含在該同一列中之一或多個調諧單元,且其中在該邏輯單元之一程式化操作期間,程式化該一或多個調諧單元。
  7. 如請求項6之記憶體系統,其中,該邏輯單元中之該一或 多個調諧單元鄰近於一鄰近邏輯單元中之一粗略單元。
  8. 如請求項1之記憶體系統,其中,該等非揮發性記憶體單元為分離閘式快閃記憶體單元。
  9. 如請求項1之記憶體系統,其中,該等非揮發性記憶體單元為堆疊閘式快閃記憶體單元。
  10. 如請求項1之記憶體系統,其中,該邏輯單元位於兩個或更多個隔離單元之間的一列中。
  11. 如請求項1之記憶體系統,其中,該邏輯單元位於兩個或更多個條帶單元之間的一列中。
  12. 如請求項1之記憶體系統,其中,該邏輯單元位於兩個或更多個源極線下拉單元之間的一列中。
  13. 如請求項1之記憶體系統,其中,每一列包含一或多個隔離單元。
  14. 如請求項13之記憶體系統,其中,該等隔離單元經程式化、部分程式化、抹除、部分抹除或處於一原生狀態。
  15. 如請求項13之記憶體系統,其中,該等隔離單元為虛設單元。
  16. 如請求項1之記憶體系統,其中,每一列包含一或多個條帶單元。
  17. 如請求項16之記憶體系統,其中,該等條帶單元為虛設單元。
  18. 如請求項1之記憶體系統,其中,該記憶體系統為一神 經網路的部分。
  19. 如請求項18之記憶體系統,其中,該神經網路為一類比神經網路。
  20. 一種程式化一邏輯單元的方法,該邏輯單元包含位於一非揮發性記憶體單元陣列之一列中的組構為粗略單元的一或多個非揮發性記憶體單元及組構為精細單元的一或多個非揮發性記憶體單元,該方法包含:使用一粗略程式化方法程式化組構為粗略單元之該一或多個非揮發性記憶體單元;及使用一粗略程式化方法及一精細程式化方法程式化組構為精細單元之該一或多個非揮發性記憶體單元,其中,N個可能值之一者係於該邏輯單元中經儲存及驗證。
  21. 如請求項20之方法,其中,該邏輯單元進一步包含在同一列中組構為調諧單元之一或多個非揮發性記憶體單元,且該方法進一步包含:使用一調諧方法程式化組構為調諧單元之該一或多個非揮發性記憶體單元。
  22. 如請求項21之方法,其進一步包含:驗證在該邏輯單元中程式化的該值。
  23. 如請求項20之方法,其中,該等非揮發性記憶體單元為分離閘式快閃記憶體單元。
  24. 如請求項20之方法,其中,該等非揮發性記憶體單元為 堆疊閘式快閃記憶體單元。
  25. 如請求項20之方法,其中,該邏輯單元位於兩個或更多個隔離單元之間的一列中。
  26. 如請求項20之方法,其中,該邏輯單元位於兩個或更多個條帶單元之間的一列中。
  27. 如請求項20之方法,其中,該邏輯單元位於兩個或更多個源極線下拉單元之間的一列中。
  28. 如請求項20之方法,其中,該記憶體系統為一神經網路的部分。
  29. 如請求項28之方法,其中,該神經網路為一類比神經網路。
  30. 一種記憶體系統,其包含:一非揮發性記憶體單元陣列,其配置成列及行;及一邏輯單元,其包含在該陣列之一第一列中的第一複數個非揮發性記憶體單元及在鄰近於該第一列之一第二列中的第二複數個非揮發性記憶體單元;其中該第一複數個非揮發性記憶體單元及該第二複數個非揮發性記憶體單元組構為一或多個粗略單元及一或多個精細單元,及其中在程式化操作期間,藉由對該等精細單元執行粗略程式化及精細程式化且對該等粗略單元執行粗略程式化及不執行精細程式化,N個可能值之一者係於該邏輯單元中經儲存及驗證。
  31. 如請求項30之記憶體系統,其進一步包含一調諧單元。
  32. 如請求項31之記憶體系統,其中,該調諧單元用於調諧一鄰近單元。
  33. 如請求項30之記憶體系統,其中,該第一複數個非揮發性記憶體單元及該第二複數個非揮發性記憶體單元中之一或多者包含一或多個調諧單元,且其中在該邏輯單元之一程式化操作期間,使用一調諧方法來程式化該一或多個調諧單元。
  34. 如請求項30之記憶體系統,其中,該等非揮發性記憶體單元為分離閘式快閃記憶體單元。
  35. 如請求項30之記憶體系統,其中,該等非揮發性記憶體單元為堆疊閘式快閃記憶體單元。
  36. 如請求項30之記憶體系統,其中,該記憶體系統為一神經網路的部分。
  37. 如請求項36之記憶體系統,其中,該神經網路為一類比神經網路。
  38. 一種程式化一邏輯單元的方法,該邏輯單元包含在一非揮發性記憶體單元陣列之一第一列中的第一複數個非揮發性記憶體單元及在鄰近於該第一列之一第二列中的第二複數個非揮發性記憶體單元,其中該第一複數個非揮發性記憶體單元及該第二複數個非揮發性記憶體單元組構為一或多個粗略單元及一或多個精細單元,該方法包含:使用一粗略程式化方法且不使用精細程式化方法來程式化該一或多個粗略單元;及使用一粗略程式化方法及一精細程式化方法來程式化該一或多個精細 單元,其中,N個可能值之一者係於該邏輯單元中經儲存及驗證。
  39. 如請求項38之方法,其進一步包含:驗證在該邏輯單元中程式化的值。
  40. 如請求項38之方法,其中,該邏輯單元進一步包含在同一列中之一或多個調諧單元,且該方法進一步包含:使用一調諧方法來程式化該一或多個調諧單元。
  41. 如請求項40之方法,其進一步包含:驗證在該邏輯單元中程式化的該值。
  42. 如請求項38之方法,其中,該等非揮發性記憶體單元為分離閘式快閃記憶體單元。
  43. 如請求項38之方法,其中,該等非揮發性記憶體單元為堆疊閘式快閃記憶體單元。
  44. 如請求項38之方法,其中,該記憶體系統為一神經網路的部分。
  45. 如請求項44之方法,其中,該神經網路為一類比神經網路。
  46. 一種用於一非揮發性記憶體單元陣列之位準指派的方法,該方法包含:判定一程式化解析度電流值;及設定由非揮發性記憶體單元組織成之包含一或多個粗略單元及一或多個精細單元的一邏輯單元之一程式化操作的位準,其中,該等單元中之 每對粗略單元和鄰近精細單元的位準之間的一增量電流為該程式化解析度電流值之一倍數,其中,在程式化操作期間,藉由對該等粗略單元執行粗略程式化操作且不執行精細程式化操作,且對該等精細單元執行粗略程式化操作及精細程式化操作,N個可能值之一者係於該邏輯單元中經儲存及驗證。
  47. 如請求項46之方法,其中,該陣列為一類比記憶體。
  48. 如請求項46之方法,其中,N個可能值的最低位準為一單元外洩漏電流值之一倍數。
  49. 如請求項46之方法,其中,該增量電流相對於該程式化解析度電流值為至少1西格瑪。
  50. 如請求項46之方法,其中,該增量電流相對於該程式化解析度電流值為至少2西格瑪。
  51. 如請求項46之方法,其中,該增量電流相對於該程式化解析度電流值為至少3西格瑪。
  52. 如請求項46之方法,其中,該等非揮發性記憶體單元為分離閘式快閃記憶體單元。
  53. 如請求項46之方法,其中,該等非揮發性記憶體單元為堆疊閘式快閃記憶體單元。
  54. 如請求項46之方法,其中,該記憶體系統為一神經網路的部分。
  55. 如請求項54之方法,其中,該神經網路為一類比神經網路。
  56. 一種記憶體系統,其包含:一記憶體單元陣列,其配置成列及行;及一邏輯單元,其包含位於該陣列之同一列中的組構為粗略單元之一或多個記憶體單元及組構為精細單元之一或多個記憶體單元,其中,在程式化操作期間,藉由對該等精細單元執行粗略程式化及精細程式化且對該等粗略單元執行粗略程式化及不執行精細程式化,N個可能值之一者係於該邏輯單元中經儲存及驗證。
TW110114844A 2020-05-13 2021-04-26 包含邏輯單元之人工神經網路中之類比神經記憶體陣列及經改良之程式化機制 TWI819298B (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US202063024351P 2020-05-13 2020-05-13
US63/024,351 2020-05-13
US17/082,956 US11682459B2 (en) 2020-05-13 2020-10-28 Analog neural memory array in artificial neural network comprising logical cells and improved programming mechanism
US17/082,956 2020-10-28
WOPCT/US20/58407 2020-10-30
PCT/US2020/058407 WO2021230905A1 (en) 2020-05-13 2020-10-30 Analog neural memory array in artificial neural network comprising logical cells and improved programming mechanism

Publications (2)

Publication Number Publication Date
TW202147321A TW202147321A (zh) 2021-12-16
TWI819298B true TWI819298B (zh) 2023-10-21

Family

ID=78512769

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110114844A TWI819298B (zh) 2020-05-13 2021-04-26 包含邏輯單元之人工神經網路中之類比神經記憶體陣列及經改良之程式化機制

Country Status (7)

Country Link
US (3) US11682459B2 (zh)
EP (1) EP4150620A1 (zh)
JP (1) JP7474871B2 (zh)
KR (1) KR20220156878A (zh)
CN (1) CN115485774A (zh)
TW (1) TWI819298B (zh)
WO (1) WO2021230905A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
KR20230114500A (ko) * 2022-01-25 2023-08-01 삼성전자주식회사 플래시 메모리 제어 방법 및 장치

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100074007A1 (en) * 2008-09-22 2010-03-25 Spansion Llc Flash mirror bit architecture using single program and erase entity as logical cell
TWI343056B (en) * 2004-01-27 2011-06-01 Sandisk Corp Charge packet metering for coarse/fine programming of non-volatile memory
TWI389124B (zh) * 2007-07-03 2013-03-11 Sandisk Technologies Inc 於非揮發性記憶體中使用不同參考位準以改良感測之粗略/精細程式化確認方法及系統
US20140047168A1 (en) * 2012-08-07 2014-02-13 Kyung-Ryun Kim Data storage system and method of operating data storage system
US20160314843A1 (en) * 2015-04-22 2016-10-27 Sandisk Technologies Inc. Non-Volatile Memory With Two Phased Programming
US20170068482A1 (en) * 2015-09-04 2017-03-09 Intel Corporation Interleaved all-level programming of non-volatile memory
US20190164617A1 (en) * 2017-11-29 2019-05-30 Silicon Storage Technology, Inc. High Precision And Highly Efficient Tuning Mechanisms And Algorithms For Analog Neuromorphic Memory In Artificial Neural Networks
US20190206485A1 (en) * 2008-11-20 2019-07-04 Micron Technology, Inc. Two-part programming methods

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5029130A (en) 1990-01-22 1991-07-02 Silicon Storage Technology, Inc. Single transistor non-valatile electrically alterable semiconductor memory device
US6747310B2 (en) 2002-10-07 2004-06-08 Actrans System Inc. Flash memory cells with separated self-aligned select and erase gates, and process of fabrication
US10134475B2 (en) * 2015-03-31 2018-11-20 Silicon Storage Technology, Inc. Method and apparatus for inhibiting the programming of unselected bitlines in a flash memory system
WO2017200883A1 (en) 2016-05-17 2017-11-23 Silicon Storage Technology, Inc. Deep learning neural network classifier using non-volatile memory array
US10515694B2 (en) 2017-11-03 2019-12-24 Silicon Storage Technology, Inc. System and method for storing multibit data in non-volatile memory
JP7051484B2 (ja) 2018-02-22 2022-04-11 キオクシア株式会社 半導体メモリ
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
US20230238067A1 (en) * 2019-10-18 2023-07-27 Yangtze Memory Technologies Co., Ltd. Method of programming and verifying memory device and related memory device
US11211132B2 (en) * 2020-02-27 2021-12-28 Sandisk Technologies Llc Detection of a last programming loop for system performance gain

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI343056B (en) * 2004-01-27 2011-06-01 Sandisk Corp Charge packet metering for coarse/fine programming of non-volatile memory
TWI389124B (zh) * 2007-07-03 2013-03-11 Sandisk Technologies Inc 於非揮發性記憶體中使用不同參考位準以改良感測之粗略/精細程式化確認方法及系統
US20100074007A1 (en) * 2008-09-22 2010-03-25 Spansion Llc Flash mirror bit architecture using single program and erase entity as logical cell
US20190206485A1 (en) * 2008-11-20 2019-07-04 Micron Technology, Inc. Two-part programming methods
US20140047168A1 (en) * 2012-08-07 2014-02-13 Kyung-Ryun Kim Data storage system and method of operating data storage system
US20160314843A1 (en) * 2015-04-22 2016-10-27 Sandisk Technologies Inc. Non-Volatile Memory With Two Phased Programming
US20170068482A1 (en) * 2015-09-04 2017-03-09 Intel Corporation Interleaved all-level programming of non-volatile memory
US20190164617A1 (en) * 2017-11-29 2019-05-30 Silicon Storage Technology, Inc. High Precision And Highly Efficient Tuning Mechanisms And Algorithms For Analog Neuromorphic Memory In Artificial Neural Networks

Also Published As

Publication number Publication date
KR20220156878A (ko) 2022-11-28
US20210358551A1 (en) 2021-11-18
WO2021230905A1 (en) 2021-11-18
US20240079064A1 (en) 2024-03-07
US11682459B2 (en) 2023-06-20
US20230268004A1 (en) 2023-08-24
JP2023525771A (ja) 2023-06-19
EP4150620A1 (en) 2023-03-22
TW202147321A (zh) 2021-12-16
CN115485774A (zh) 2022-12-16
JP7474871B2 (ja) 2024-04-25

Similar Documents

Publication Publication Date Title
TWI778920B (zh) 深度學習人工神經網路中類比神經記憶體單元的超精確調節
TWI832710B (zh) 人工神經網路中於差異單元對中儲存有突觸權重的類比神經記憶體陣列
US20240079064A1 (en) Neural network array comprising one or more coarse cells and one or more fine cells
US20240112736A1 (en) Adaptive bias decoder for non-volatile memory system
TWI785574B (zh) 具有源極線下拉機制之人工神經網路中之類比神經記憶體陣列
US11989440B2 (en) Hybrid memory system configurable to store neural memory weight data in analog form or digital form