TWI716222B - 深度學習人工神經網路中之類比神經記憶體的電源管理 - Google Patents
深度學習人工神經網路中之類比神經記憶體的電源管理 Download PDFInfo
- Publication number
- TWI716222B TWI716222B TW108145705A TW108145705A TWI716222B TW I716222 B TWI716222 B TW I716222B TW 108145705 A TW108145705 A TW 108145705A TW 108145705 A TW108145705 A TW 108145705A TW I716222 B TWI716222 B TW I716222B
- Authority
- TW
- Taiwan
- Prior art keywords
- array
- output
- input
- memory cells
- analog
- Prior art date
Links
Images
Classifications
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- 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
-
- 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/044—Recurrent networks, e.g. Hopfield 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/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
- 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/08—Learning methods
-
- 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
- G11C16/0425—Erasable 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
-
- 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/0466—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells with charge storage in an insulating layer, e.g. metal-nitride-oxide-silicon [MNOS], silicon-oxide-nitride-oxide-silicon [SONOS]
-
- 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/04—Nonvolatile memory cell provided with a separate control gate for erasing the cells, i.e. erase gate, independent of the normal read control gate
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Neurology (AREA)
- Computer Hardware Design (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Non-Volatile Memory (AREA)
- Read Only Memory (AREA)
- Semiconductor Memories (AREA)
- Complex Calculations (AREA)
- Image Processing (AREA)
Abstract
針對涉及人工神經網路內之一個或多個向量矩陣乘法(VMM)陣列的各種操作揭露電源管理技術的許多實施例。
Description
[優先權請求]本申請案主張2019年3月6日所提出之名稱為「在深度學習人工神經網路內之類比神經記憶體中將神經元電流轉換為基於神經元電流的時間脈衝之系統」的美國臨時專利申請案第62/814,813號、2019年1月18日所提出之名稱為「在深度學習人工神經網路內之類比神經記憶體中將神經元電流轉換為基於神經元電流的時間脈衝之系統」的美國臨時專利申請案第62/794,492號以及2019年3月14日所提出之名稱為「深度學習人工神經網路中之類比神經記憶體的電源管理」的美國專利申請案第16/354,040號之優先權。
針對涉及人工神經網路內之一個或多個向量矩陣乘法(VMM)陣列的各種操作揭露電源管理技術的許多具體例。
人工神經網路模擬生物神經網路(動物的中樞神經系統,特別是大腦)及用於估計或近似可依賴於大量輸入且通常是未知的函數。人工神經網路通常包括可彼此交換信息之互連的「神經元」層。
圖1說明人工神經網路,其中圓圈表示神經元輸入或層。連結(稱為突觸)以箭頭來表示,並且具有可根據經驗調整的數字權重。這使得神經網路適應於輸入且能夠學習。通常,神經網路包括一層多個輸入。通常有一個或多個神經元中間層及提供神經網路輸出的一個神經元輸出層。每個層級的神經元個別地或共同地根據從突觸接收的資料做出決定。
開發用於高性能資訊處理之人工神經網路的主要挑戰中之一是缺乏足夠的硬體技術。實際上,實際的神經網路依賴於非常大量的突觸,以使神經元之間的高連結性(亦即,非常高的計算並行性)成為可能。原則上,這樣的複雜性可以用數位超級電腦或專用圖形處理單元叢集來實現。然而,除了高成本之外,相較於生物網路,這些方法還因平庸的能量效率而更糟,其中生物網路消耗非常少的能量,主要是因為它們執行低精度類比計算。CMOS類比電路已經用於人工神經網路,但是有鑑於大量的神經元及突觸,大多數CMOS實施的突觸過於龐大。
申請人以前在美國專利申請案第15/594,439號(公開為美國專利公開第2017/0337466號)中揭露一種人工(類比)神經網路,其利用一個或多個非揮發性記憶體陣列作為突觸,在此以提及方式將上述美國專利申請案併入本文。非揮發性記憶體陣列作為類比神經形態記憶體來操作。神經網路裝置包括複數個第一突觸,其構造成接收複數個第一輸入並由此產生複數個第一輸出;以及複數個第一神經元,其構造成接收複數個第一輸出。複數個第一突觸包括複數個記憶體單元,其中每個記憶體單元包括間隔開的源極及汲極區域,其形成在半導體基板中,並且具有通道區域在其間延伸;浮動閘極,其設置在通道區域的第一部分上方且與通道區域的第一部分絕緣;以及非浮動閘極,其設置在通道區域的第二部分上方且與通道區域的第二部分絕緣。複數個記憶體單元中之每一個構造成儲存與浮動閘極上之一些電子相對應的權重值。複數個記憶體單元構造成將複數個第一輸入乘以儲存的權重值,以產生複數個第一輸出。
必須抹除及程式化在類比神經形態記憶體系統中使用之每個非揮發性記憶體單元,以在浮動閘極中保持非常特定且精確的電荷量,亦即,電子數量。例如,每個浮動閘極必須保持N個不同數值中之一個,其中N是可以由每個單元表示之不同權重的數量。N的實例包括16、32、64、128及256。
利用VMM陣列的系統中之一項挑戰是最小化消耗的功率量,所述消耗的功率量在發生的許多程式化、抹除及讀取操作期間可能是相當大的。
所需要的是用於包含一個或多個VMM陣列的系統之改良電源管理技術。
針對涉及人工神經網路內之一個或多個向量矩陣乘法(VMM)陣列的各種操作揭露電源管理技術的許多具體例。
本發明的人工神經網路利用CMOS技術與非揮發性記憶體陣列的組合。
非揮發性記憶體單元
數位非揮發性記憶體係眾所周知的。例如,美國專利第5,029,130號(「'130專利」)揭露一種分離式閘極非揮發性記憶體單元(快閃記憶體單元)陣列,並且在此以提及方式將其併入本文。這樣的記憶體單元210顯示在圖2中。每個記憶體單元210包括在半導體基板12中形成之源極區域14及汲極區域16,並且在其間具有通道區域18。浮動閘極20形成在通道區域18的第一部分上方且與其絕緣(並控制其導電性),並且形成在源極區域14的一部分上方。字線端子22(通常耦接至字線)具有第一部分及第二部分,其中第一部分設置在通道區域18的第二部分上方且與其絕緣(並控制其導電性),而第二部分向上延伸且在浮動閘極20上方。浮動閘極20及字線端子22藉由閘極氧化物與基板12絕緣。位元線24耦接至汲極區域16。
藉由在字線端子22上施加高正電壓來抹除記憶體單元210(其中從浮動閘極移除電子),這導致浮動閘極20上的電子藉由富爾-諾罕穿隧(Fowler-Nordheim tunneling)從浮動閘極20隧穿中間絕緣體至字線端子22。
藉由在字線端子22上施加正電壓及在源極14上施加正電壓來程式化記憶體單元210(其中在浮動閘極上放置電子)。電子流將從源極14流向汲極16。當電子到達字線端子22與浮動閘極20之間的間隙時,電子將加速並變熱。由於來自浮動閘極20的靜電吸引力,一些加熱的電子將通過閘極氧化物注入至浮動閘極20上。
藉由在汲極區域16及字線端子22上施加正讀取電壓(這會導通在字線端子下方之通道區域18的部分)來讀取記憶體單元210。如果浮動閘極20帶正電(亦即,被抹除電子),則浮動閘極20下方之通道區域18的部分亦導通,並且電流將流過通道區域18,因而被感測為抹除狀態或狀態「1」。如果浮動閘極20帶負電(亦即,用電子來程式化),則浮動閘極20下方之通道區域的部分大部分或完全截止,並且電流不會流過(或者幾乎不流過)通道區域18,因而被感測為程式化狀態或狀態「0」。表1描繪可以施加至記憶體單元210的端子以執行讀取、抹除及程式化操作的典型電壓範圍:
表1:圖2的快閃記憶體單元210之操作
WL | BL | SL | |
讀取 | 2-3V | 0.6-2V | 0V |
抹除 | ~11-13V | 0V | 0V |
程式化 | 1-2V | 1-3µA | 9-10V |
圖3顯示記憶體單元310,其相似於圖2的記憶體單元210,但添加有控制閘極(CG)28。控制閘極28在程式化中以高電壓(例如,10V)來施加偏壓,在抹除中以低或負電壓(例如,0V/-8V)來施加偏壓,在讀取中以低或中電壓範圍(例如,0V/2.5V)來施加偏壓。其它端子的偏壓與圖2相似。
圖4描繪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-2V | 0.6-2V | 0-2.6V | 0-2.6V | 0V |
抹除 | -0.5V/0V | 0V | 0V/-8V | 8-12V | 0V |
程式化 | 1V | 1µA | 8-11V | 4.5-9V | 4.5-5V |
圖5顯示記憶體單元510,除記憶體單元510不包含抹除閘EG外,其相似於圖4的記憶體單元410。藉由以高電壓施加偏壓於基板18及以低或負電壓施加偏壓於控制閘極CG28來執行抹除。或者,藉由以正電壓施加偏壓於字線22及以負電壓施加偏壓於控制閘極28來執行擦除。程式化及讀取與圖4相似。
圖6描繪3-閘極記憶體單元610,其為另一種類型的快閃記憶體單元。除記憶體單元610不具有單獨的控制閘極外,記憶體單元610與圖4的記憶體單元410相同。除沒有施加控制閘極偏壓外,抹除操作(藉由抹除閘極的使用來抹除)及讀取操作相似於圖4的操作。程式化操作亦在沒有控制閘極偏壓的情況下完成,結果,在程式化操作期間必須在源極線上施加較高電壓,以補償控制閘極偏壓的缺少。
表3描繪可以施加至記憶體單元610的端子以執行讀取、抹除及程式化操作的典型電壓範圍:
表3:圖6的快閃記憶體單元610之操作
WL/SG | BL | EG | SL | |
讀取 | 0.7-2.2V | 0.6-2V | 0-2.6V | 0V |
抹除 | -0.5V/0V | 0V | 11.5V | 0V |
程式化 | 1V | 2-3µA | 4.5V | 7-9V |
圖7描繪堆疊式閘極記憶體單元710,其為另一種類型的快閃記憶體單元。除浮動閘極20在整個通道區域18上方延伸及控制閘極22(在此將耦接至字線)在浮動閘極20上方延伸且以絕緣層(未顯示)隔開外,記憶體單元710相似於圖2的記憶體單元210。抹除、程式化及讀取操作以與先前針對記憶體單元210所描述之方式相似的方式來進行。
表4描繪可以施加至記憶體單元710的端子及基板12以執行讀取、抹除及程式化操作的典型電壓範圍:
表4:圖7的快閃記憶體單元710之操作
CG | BL | SL | 基板 | |
讀取 | 2-5V | 0.6 – 2V | 0V | 0V |
抹除 | -8至-10V/0V | FLT | FLT | 8-10V / 15-20V |
程式化 | 8-12V | 3-5V | 0V | 0V |
為了在人工神經網路中利用包括上述類型的非揮發性記憶體單元中之一的記憶體陣列,實施兩種修改。第一,如下面進一步說明,線路配置成使得每個記憶體單元可以個別地被程式化、抹除及讀取,而不會不利地影響陣列中之其它記憶體單元的記憶狀態。第二,提供記憶體單元的連續(類比)程式化。
具體地,陣列中之每個記憶體單元的記憶狀態(亦即,浮動閘極上的電荷)可以獨立地且以對其它記憶體單元的最小干擾從完全抹除狀態連續地變成完全程式化狀態。在另一個具體例中,陣列中之每個記憶體單元的記憶狀態(亦即,浮動閘極上的電荷)可以獨立地且以對其它記憶體單元的最小干擾從完全程式化狀態連續地變成完全抹除狀態,反之亦然。這意味著單元儲存係類比的,或者至少可以儲存許多離散值(例如,16或64個不同值)中之一個,這允許對記憶體陣列中之所有單元進行非常精確且個別的調整,並且這使記憶體陣列非常適合儲存神經網路的突觸權重及對其進行微調。
本文所述之方法及手段可以應用於其它非揮發性記憶體技術,例如,SONOS(矽-氧化物-氮化物-氧化物-矽,氮化物中的電荷捕捉)、MONOS(金屬-氧化物-氮化物-氧化物-矽,氮化物中的金屬電荷捕捉)、ReRAM(電阻式RAM)、PCM(相變化記憶體)、MRAM(磁性RAM)、FeRAM(鐵電式RAM)、OTP(雙階或多階一次可程式化)、CeRAM(相關電子RAM)等。本文所述之方法及手段可以應用至用於神經網路之揮發性記憶體技術,例如,但不限於SRAM、DRAM及/或揮發性突觸單元。
使用非揮發性記憶體單元陣列之神經網路
圖8概念性地說明利用本具體例的非揮發性記憶體陣列之神經網路的非限制性實例。此實例將非揮發性記憶體陣列神經網路用於臉部辨識應用,但是可以使用以非揮發性記憶體陣列為基礎的神經網路來實施任何其它適當的應用。
S0係輸入層,對於這個實例,其為具有5位元精度的32×32像素RGB影像(亦即,三個32×32像素陣列,一個陣列用於各自的顏色R、G及B,每個像素為5位元精度)。從輸入層S0至層C1的突觸CB1在某些情況下應用不同組的權重,而在其它情況下應用共享權重,並且用3×3像素重疊濾波器(核心)掃描輸入影像,將濾波器移位1個像素(或者根據模型所規定,多於1個像素)。具體地,提供用於影像的一個3×3部分中之9個像素的數值(亦即,稱為一個濾波器或核心)給突觸CB1,在那裡將這9個輸入值乘以適當的權重,並且在計算乘法輸出的總和之後,由CB1的第一突觸確定及提供單一輸出值,以便產生數層特徵圖(feature map)C1中之一層的一個像素。然後,在輸入層S0內將3×3濾波器向右移動一個像素(亦即,添加在右側之三個像素的行及丟棄在左側之三個像素的行),藉以將這個新定位的濾波器中之9個像素值提供給突觸CB1,在那裡將它們乘以相同的權重,並且由相關的突觸確定第二個單一輸出值。持續這個過程,直到3×3濾波器針對所有三種顏色及所有位元(精度值)掃描輸入層S0的整個32×32像素影像為止。然後,使用不同組的權重重複這個過程,以產生C1的一個不同特徵圖,直到已經計算層C1的所有特徵圖為止。
在層C1處,在本實例中,具有16個特徵圖,每個特徵圖有30×30像素。每個像素是從輸入與核心相乘得到之新特徵像素,因此每個特徵圖是二維陣列,因此在這個實例中,層C1構成16層二維陣列(記住這裡引用的層及陣列是邏輯關係,不一定是實體關係-亦即,陣列不一定以實體二維陣列來定向)。層C1中之16個特徵圖的每個特徵圖由應用於濾波器掃描之16組不同的突觸權重中之一組來產生。C1特徵圖可以全部有關於諸如邊界識別之同一個影像特徵的不同態樣。例如,第一圖(使用第一組權重所產生,第一組權重對用於產生此第一圖的所有掃描係共享的)可以識別圓形邊緣,第二圖(使用與第一組權重不同的第二組權重所產生)可以識別矩形邊緣或某些特徵的縱橫比等等。
在從層C1到層S1之前應用激勵函數P1(池化(pooling)),其對來自每個特徵圖中之連續的非重疊2×2區域的數值進行池化。池化函數的目的是算出附近位置的平均值(或者亦可以使用最大值函數),以減少例如邊緣位置的依賴性及在進入下一階段之前減小資料大小。在層S1處,具有16個15×15特徵圖(亦即,16個不同陣列,每個陣列有15×15像素)。從層S1到層C2的突觸CB2用4×4濾波器掃描S1中之圖,並且有一個像素的濾波器移位。在層C2處,具有22個12×12特徵圖。在從層C2到層S2之前應用激勵函數P2(池化),其對來自每個特徵圖中之連續非重疊2×2區域的數值進行池化。在層S2處,具有22個6×6特徵圖。在從層S2到層C3的突觸CB3處應用激勵函數(池化),其中層C3中之每個神經元經由CB3的個別突觸連接至層S2中之每個圖。在層C3處,具有64個神經元。從層C3到輸出層S3的突觸CB4將C3完全連接至S3,亦即,層C3中之每個神經元連接至層S3中之每個神經元。S3處的輸出包括10個神經元,其中最高輸出神經元確定類別。此輸出可能例如表示原始影像的內容之識別或分類。
使用一個陣列的非揮發性記憶體單元或一個陣列的非揮發性記憶體單元之一部分來實施每層突觸。
圖9係可用於那個目的之陣列的方塊圖。向量矩陣乘法(VMM)陣列32包括非揮發性記憶體單元,並用作一層與下一層之間的突觸(例如,圖8中之CB1、CB2、CB3及CB4)。具體地,VMM陣列32包括非揮發性記憶體單元陣列33、抹除閘極及字線閘極解碼器34、控制閘極解碼器35、位元線解碼器36以及源極線解碼器37,它們對非揮發性記憶體單元陣列33的個別輸入進行解碼。對VMM陣列32的輸入可以來自抹除閘極及字線閘極解碼器34或來自控制閘極解碼器35。此實例中之源極線解碼器37亦對非揮發性記憶體單元陣列33的輸出進行解碼。或者,位元線解碼器36可以對非揮發性記憶體單元陣列33的輸出進行解碼。
非揮發性記憶體單元陣列33提供兩個用途。第一,它儲存將由VMM陣列32使用的權重。第二,非揮發性記憶體單元陣列33有效地將輸入乘以非揮發性記憶體單元陣列33中所儲存的權重,並且根據輸出線(源極線或位元線)將它們加起來,以產生輸出,所述輸出將是下一層的輸入或最後一層的輸入。藉由執行乘法及加法函數,非揮發性記憶體單元陣列33不需要個別的乘法及加法邏輯電路,並且因原位記憶體計算而亦具功率效率。
非揮發性記憶體單元陣列33的輸出被供應至差分加法器(例如,求和運算放大器或求和電流鏡)38,其計算非揮發性記憶體單元陣列33的輸出之總和,以產生用於卷積的單一數值。差分加法器38配置成執行正權重與負權重的總和。
然後,將差分加法器38之加總的輸出值供應至激勵函數電路39,其對輸出進行整流。激勵函數電路39可以提供sigmoid、tanh或ReLU函數。激勵函數電路39之經整流的輸出值變成作為下一層(例如,圖8中之C1)之特徵圖的元素,然後應用於下一個突觸,以產生下一個特徵圖層或最後一層。因此,在此實例中,非揮發性記憶體陣列33構成複數個突觸(其從先前的神經元層或從諸如影像資料庫的輸入層接收它們的輸入),並且加法器38及激勵函數電路39構成複數個神經元。
圖9中至VMM陣列32的輸入(WLx、EGx、CGx以及任選的BLx及SLx)可以是類比位準、二進制位準或數位脈衝(在這種情況下,可能需要脈衝至類比轉換器PAC,以將脈衝轉換為適當的輸入類比位準)或數位位元(在這種情況下,提供DAC,以將數位位元轉換為適當的輸入類比位準),並且輸出可以是類比位準、二進制位準、數位脈衝或數位位元(在這種情況下,提供輸出ADC,以將輸出類比位準轉換為數位位元)。
圖10係描繪許多層的VMM陣列32之使用的方塊圖,這裡標記為VMM陣列32a、32b、32c、32d及32e。如圖10所示,藉由數位至類比轉換器31將輸入(表示為Inputx)從數位轉換成類比,並提供至輸入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亦可以針對其陣列或神經元的各個部分進行時間多工。圖10所示之實例包含五層(32a、32b、32c、32d、32e):一個輸入層(32a)、兩個隱藏層(32b、32c)及兩個完全連接層(32d、32e)。所屬技術領域之具有通常知識者將理解,這僅僅是示例性的,並且系統反而可以包括超過兩個隱藏層及超過兩個完全連接層。
向量矩乘法(VMM)陣列
圖11描繪神經元VMM 陣列1100,其特別適用於圖4中所示之記憶體單元410,並且用作輸入層與下一層之間的突觸及神經元的部件。VMM陣列1100包括非揮發性記憶體單元的記憶體陣列1101及非揮發性參考記憶體單元的參考陣列1102(在所述陣列的上方)。或者,可以在下方放置另一個參考陣列。
在VMM陣列1100中,諸如控制閘極線1103的控制閘極線在垂直方向上延伸(因此,在列方向上的參考陣列1102與控制閘極線1103正交),並且諸如抹除閘極線1104的抹除閘極線在水平方向延伸。這裡,在控制閘極線(CG0、CG1、CG2、CG3)上提供對VMM陣列1100的輸入,而VMM陣列1100的輸出出現在源極線(SL0、SL1)上。在一個具體例中,僅使用偶數列,而在另一個具體例中,僅使用奇數列。在每條源極線(SL0、SL1)上之電流執行來自連接至那條特定源極線之記憶體單元的所有電流之求和函數。
如本文針對神經網路所述,VMM陣列1100的非揮發性記憶體單元(亦即,VMM陣列1100的快閃記憶體)較佳地配置成在次臨界區域中操作。
在弱倒轉中施加偏壓於本文所述之非揮發性參考記憶體單元及非揮發性記憶體單元:
Ids=Io*e(Vg-Vth)/kVt
=w*Io*e(Vg)/kVt ,
其中w=e(-Vth)/kVt
對於使用記憶體單元(例如,參考記憶體單元或周邊記憶體單元)或電晶體將輸入電流轉換成輸入電壓之I至V對數轉換器:
Vg=k*Vt*log[Ids/wp*Io]
在此,wp係參考或周邊記憶體單元的w。
對於用作向量矩陣乘法VMM陣列的記憶體陣列,輸出電流為:
Iout=wa*Io*e(Vg)/kVt
,亦即
Iout=(wa/wp)*Iin=W*Iin
W=e(Vthp-Vtha)/kVt
在此,wa=記憶體陣列中之每個記憶體單元的w。
字線或控制閘極可用以作為用於輸入電壓之記憶體單元的輸入。
或者,本文所述之VMM陣列的快閃記憶體單元可以配置成在線性區域中操作:
Ids=beta*(Vgs-Vth)*Vds;beta=u*Cox*W/L
W=α(Vgs-Vth)
字線或控制閘極或位元線或源極線可用以作為在線性區域中操作之記憶體單元的輸入。位元線或源極線可用以作為記憶體單元的輸出。
對於I至V線性轉換器,在線性區域中操作的記憶體單元(例如,參考記憶體單元或周邊記憶體單元)或電晶體或電阻器可以用於將輸入/輸出電流線性地轉換成輸入/輸出電壓。
在美國專利申請案第15/826,345號中描述圖9的VMM陣列32之其它具體例,在此以提及方式將其併入本文。如上面申請案所述,源極線或位元線可用以作為神經元輸出(電流總和輸出)。或者,本文所述之VMM陣列的快閃記憶體單元可以配置成在飽和區域中操作:
Ids=α½*beta*(Vgs-Vth)2
;beta=u*Cox*W/L
W=α(Vgs-Vth)2
字線、控制閘極或抹除閘極可用以作為在飽和區域中操作的記憶體單元的輸入。位元線或源極線可用以作為輸出神經元的輸出。
或者,本文所述之VMM陣列的快閃記憶體單元可以使用在所有區域或其組合中(次臨界值、線性或飽和)。
圖10描繪神經元VMM陣列1200,其特別適用於圖2所示之記憶體單元210,並且用作輸入層與下一層之間的突觸。VMM 陣列1200包括非揮發性記憶體單元的記憶體陣列1203、第一非揮發性參考記憶體單元的參考陣列1201及第二非揮發性參考記憶體單元的參考陣列1202。配置在陣列的行方向上之參考陣列1201及1202用於將流入端子BLR0、BLR1、BLR2及BLR3的電流輸入轉換成電壓輸入WL0、WL1、WL2及WL3。實際上,第一及第二非揮發性參考記憶體單元係以二極體形式經由多工器1214(僅部分被描繪)與流入它們的電流輸入連接。將參考單元調整(例如,程式化)至目標參考位準。目標參考位準由參考微型陣列矩陣(未顯示)來提供。
記憶體陣列1203提供兩個用途。第一,它在其個別記憶體單元上儲存將被VMM陣列1200使用的權重。第二,記憶體陣列1203有效地將輸入(亦即,被提供至端子BLR0、BLR1、BLR2及BLR3的電流輸入;參考陣列1201及1202將這些電流輸入轉換成輸入電壓,以供應至字線WL0、WL1、WL2及WL3)乘以記憶體陣列12003中所儲存之權重,然後將所有結果(記憶體單元電流)相加,以在個別位元線(BL0-BLN)上產生輸出,所述輸出將是下一層的輸入或最後一層的輸入。藉由執行乘法及加法函數,記憶體陣列1203不需要個別的乘法及加法邏輯電路,並且還具有功率效率。這裡,電壓輸入被提供在字線WL0、WL1、WL2及WL3上,並且輸出在讀取(推理)操作期間出現在位元線BL0-BLN上。在位元線BL0-BLN的每條位元線上之電流執行來自連接至那條特定位元線之所有非揮發性記憶體單元的電流之求和函數。
表5描繪VMM陣列1200的操作電壓。表中之行表示在被選單元的字線、未被選單元的字線、被選單元的位元線、未被選單元的位元線、被選單元的源極線及未被選單元的源極線上之電壓。列表示讀取、抹除及程式化的操作。
表5:圖12的VMM陣列1200之操作
WL | WL-unsel | BL | BL-unsel | SL | SL-unsel | |
讀取 | 1-3.5V | -0.5V/0V | 0.6-2V (I神經元) | 0.6V-2V/0V | 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 |
圖13描繪神經元VMM陣列1300,其特別適用於圖2所示之記憶體單元210,並且用作輸入層與下一層之間的突觸及神經元的部件。VMM 陣列1300包括非揮發性記憶體單元的記憶體陣列1303、第一非揮發性參考記憶體單元的參考陣列1301及第二非揮發性參考記憶體單元的參考陣列1302。參考陣列1301及1302在VMM陣列1300的列方向上延伸。除在VMM陣列1300中,字線在垂直方向上延伸外,VMM陣列1300與VMM 1200相似。這裡,在字線(WLA0、WLB0、WLA1、WLB1、WLA2、WLB2、WLA3、WLB3)上提供輸入,並且在讀取操作期間輸出出現在源極線(SL0,SL1)上。在每條源極線上之電流執行來自連接至那條特定源極線之記憶體單元的所有電流之求和函數。
表6描繪VMM陣列1300的操作電壓。表中之行表示在被選單元的字線、未被選單元的字線、被選單元的位元線、未被選單元的位元線、被選單元的源極線及未被選單元的源極線上之電壓。列表示讀取、抹除及程式化的操作。
表6:圖13的VMM陣列1300之操作
WL | WL-unsel | BL | BL-unsel | SL | SL-unsel | |
讀取 | 1-3.5V | -0.5V/0V | 0.6-2V | 0.6V-2V/0V | ~0.3-1V (I神經元) | 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 |
圖14描繪神經元VMM陣列1400,其特別適用於圖4所示之記憶體單元410,並且用作輸入層與下一層之間的突觸及神經元的部件。VMM陣列1400包括非揮發性記憶體單元的記憶體陣列1403、第一非揮發性參考記憶體單元的參考陣列1401及第二非揮發性參考記憶體單元的參考陣列1402。參考陣列1401及1402用於將流入端子BLR0、BLR1、BLR2及BLR3的電流輸入轉換成電壓輸入CG0、CG1、CG2及CG3。實際上,第一及第二非揮發性參考記憶體單元係以二極體形式經由多工器1412(僅部分被顯示)與經由BLR0、BLR1、BLR2及BLR3流入它們的電流輸入連接。多工器1412各自包括個別多工器1405及疊接電晶體1404,以在讀取操作期間確保第一及第二非揮發性參考記憶體單元中之每一者的位元線(諸如BLR0)上的固定電壓。將參考單元調整至目標參考位準。
記憶體陣列1403提供兩個用途。第一,它儲存將被VMM陣列 1400使用的權重。第二,記憶體陣列1403有效地將輸入(被提供至端子BLR0、BLR1、BLR2及BLR3的電流輸入;參考陣列1401及1402將這些電流輸入轉換成輸入電壓,以供應至控制閘極(CG0、CG1、CG2及CG3))乘以記憶體陣列中所儲存之權重,然後將所有結果(單元電流)相加,以產生輸出,所述輸出出現在BL0-BLN且將是下一層的輸入或最後一層的輸入。藉由執行乘法及加法函數,記憶體陣列不需要個別的乘法及加法邏輯電路,並且還具有功率效率。這裡,輸入被提供在控制閘極線(CG0、CG1、CG2及CG3)上,並且輸出在讀取操作期間出現在位元線(BL0-BLN)上。在每條位元線上之電流執行來自連接至那條特定位元線之記憶體單元的所有電流之求和函數。
VMM陣列1400針對記憶體陣列1403中之非揮發性記憶體單元實施單向調整。亦即,抹除及然後部分程式化每個非揮發性記憶體單元,直到達到浮動閘極上的期望電荷為止。例如,這可以使用下面描述之精確程式化技術來執行。如果使太多電荷置於浮動閘極上(使得錯誤值儲存在單元中),則必須抹除單元並且必須重新開始部分程式化操作的順序。如圖所示,共享同一個抹除閘極(例如,EG0或EG1)的兩列需要一起被抹除(稱為頁抹除),之後,部分程式化每個單元,直到達到浮動閘極上之期望電荷為止。
表7描繪VMM陣列1400的操作電壓。表中之行表示在被選單元的字線、未被選單元的字線、被選單元的位元線、未被選單元的位元線、被選單元的控制閘極、與被選單元相同的區段中之未被選單元的控制閘極、與被選單元不同的區段中之未被選單元的控制閘極、被選單元的抹除閘極、未被選單元的抹除閘極、被選單元的源極線及未被選單元的源極線上之電壓。列表示讀取、抹除及程式化的操作。
表7:圖14的VMM陣列1400之操作
WL | WL -unsel | BL | BL -unsel | CG | 在同一個 區段中之 CG -unsel | CG -unsel | EG | EG -unsel | SL | SL -unsel | |
讀取 | 1.0-2V | -0.5V/ 0V | 0.6-2V (I神經元) | 0V | 0-2.6V | 0-2.6V | 0-2.6V | 0-2.6V | 0-2.6V | 0V | 0V |
抹除 | 0V | 0V | 0V | 0V | 0V | 0-2.6V | 0-2.6V | 5-12V | 0-2.6V | 0V | 0V |
程式化 | 0.7-1V | -0.5V/ 0V | 0.1-1uA | Vinh (1-2V) | 4-11V | 0-2.6V | 0-2.6V | 4.5-5V | 0-2.6V | 4.5-5V | 0-1V |
圖15描繪神經元VMM陣列1500,其特別適用於圖4所示之記憶體單元410,並且用作輸入層與下一層之間的突觸及神經元的部件。VMM陣列1500包括非揮發性記憶體單元的記憶體陣列1503、第一非揮發性參考記憶體單元的參考陣列1501及第二非揮發性參考記憶體單元的參考陣列1502。EG線EGR0、EG0、EG1及EGR1垂直延伸,而CG線CG0、CG1、CG2及CG3以及SL線WL0、WL1、WL2及WL3水平延伸。除VMM陣列1500實施雙向調整外,VMM陣列1500與VMM陣列1400相似,其中每個個別單元可以完全被抹除、部分被程式化及根據需要部分被抹除,以因個別EG線的使用而在浮動閘極上達到所需的電荷量。如圖所示,參考陣列1501及1502將端子BLR0、BLR1、BLR2及BLR3中之輸入電流轉換成要施加至列方向上的記憶體單元之控制閘極電壓CG0、CG1、CG2及CG3(藉由以二極體形式經由多工器1514連接之參考單元的作用)。電流輸出(神經元)位於位元線BL0-BLN中,其中每條位元線計算來自與那條特定位元線連接之非揮發性記憶體單元的所有電流之總和。
表8描繪VMM陣列1500的操作電壓。表中之行表示在被選單元的字線、未被選單元的字線、被選單元的位元線、未被選單元的位元線、被選單元的控制閘極、與被選單元相同的區段中之未被選單元的控制閘極、與被選單元不同的區段中之未被選單元的控制閘極、被選單元的抹除閘極、未被選單元的抹除閘極、被選單元的源極線及未被選單元的源極線上之電壓。列表示讀取、抹除及程式化的操作。
表8:圖15的VMM陣列1500之操作
WL | WL -unsel | BL | BL -unsel | CG | 同一個區 段中之CG –unsel | CG -unsel | EG | EG -unsel | SL | SL -unsel | |
讀取 | 1.0-2V | -0.5V/ 0V | 0.6-2V (I神經元) | 0V | 0-2.6V | 0-2.6V | 0-2.6V | 0-2.6V | 0-2.6V | 0V | 0V |
抹除 | 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 |
圖24描繪神經元VMM陣列2400,其特別適用於圖2所示之記憶體單元210,並且用作輸入層與下一層之間的突觸及神經元的部件。在VMM陣列2400中,在位元線BL0
、......、BLN
上分別接收輸入INPUT0
、……、INPUTN
,並且在源極線SL0
、SL1
、SL2
及SL3
上分別產生輸出OUTPUT1
、OUTPUT2
、OUTPUT3
、OUTPUT4
。
圖25描繪神經元VMM陣列2500,其特別適用於圖2所示之記憶體單元210,並且用作輸入層與下一層之間的突觸及神經元的部件。在此實例中,在源極線SL0
、SL1
、SL2
及SL3
上分別接收輸入INPUT0
、INPUT1
、INPUT2
及NPUT3
,並且在位元線BL0
、......、BLN
上分別產生輸出OUTPUT0
、......、OUTPUTN
。
圖26描繪神經元VMM陣列2600,其特別適用於圖2所示之記憶體單元210,並且用作輸入層與下一層之間的突觸及神經元的部件。在此實例中,在字位線WL0
、......、WLM
上分別接收輸入INPUT0
、……、INPUTM
,並且在位元線BL0
、......、BLN
上分別產生輸出OUTPUT0
、......、OUTPUTN
。
圖27描繪神經元VMM陣列2700,其特別適用於圖4所示之記憶體單元410,並且用作輸入層與下一層之間的突觸及神經元的部件。在此實例中,在字位線WL0
、......、WLM
上分別接收輸入INPUT0
、……、INPUTM
,並且在位元線BL0
、......、BLN
上分別產生輸出OUTPUT0
、......、OUTPUTN
。
圖28描繪神經元VMM陣列2800,其特別適用於圖4所示之記憶體單元410,並且用作輸入層與下一層之間的突觸及神經元的部件。在此實例中,在位元線BL0
、......、BLN
上分別分別接收輸入INPUT0
、……、INPUTN
,並且在抹除閘極線EG0
及EG1
上分別產生輸出OUTPUT1
及OUTPUT2
。
圖29描繪神經元VMM陣列2900,其特別適用於圖4所示之記憶體單元410,並且用作輸入層與下一層之間的突觸及神經元的部件。在此實例中,在位元線控制閘2901-1、2901-2、......2091-(N-1)及2901-N上分別接收輸入INPUT0
、……、INPUTN
,其中位元線控制閘2901-1、2901-2、......2091-(N-1)及2901-N分別連接至位元線BL0
、......、BLN
。在抹除閘極線SL0
及SL1
上分別產生示例性輸出OUTPUT1
及OUTPUT2
。
圖30描繪神經元VMM陣列3000,其特別適用於圖3所示之記憶體單元310、圖5所示之記憶體單元510及圖7所示之記憶體單元710,並且用作輸入層與下一層之間的突觸及神經元的部件。在此實例中,在字位線WL0
、......、WLM
上分別接收輸入INPUT0
、……、INPUTM
,並且在位元線BL0
、......、BLN
上分別產生輸出OUTPUT0
、......、OUTPUTN
。
圖31描繪神經元VMM陣列3100,其特別適用於圖3所示之記憶體單元310、圖5所示之記憶體單元510及圖7所示之記憶體單元710,並且用作輸入層與下一層之間的突觸及神經元的部件。在此實例中,在控制閘極線CG0
、......、CGM
上接收輸入INPUT0
、……、INPUTM
。在源極線SL0
、......、SLN
上分別產生輸出OUTPUT0
、......、OUTPUTN
,其中每條源極線SLi
耦接至第i行中之所有記憶體單元的源極線端子。
圖32描繪VMM系統3200。VMM系統3200包括VMM陣列3201(其可以根據先前所論述之任何VMM設計,諸如VMM 900、1000、1100、1200及1320,或其它VMM設計)、低電壓列解碼器3202、高電壓列解碼器3203、參考單元低電壓行解碼器3204(顯示在行方向上,此意味著它在列方向上提供輸入至輸出轉換)、位元線多工器3205、控制邏輯3206、類比電路3207、神經元輸出區塊3208、輸入VMM電路區塊3209、預解碼器3210、測試電路3211、抹除-程式化控制邏輯EPCTL 3212、類比及高電壓產生電路3213、位元線PE驅動器3214、冗餘陣列3215及3216、NVR區段3217以及參考區段3218。輸入電路區塊3209充當從外部輸入至記憶體陣列的輸入端子之介面。神經元輸出區塊3208充當從記憶體陣列輸出至外部介面的介面。
低電壓列解碼器3202提供用於讀取及程式化操作的偏壓,並且提供高解碼信號給電壓列解碼器3203。高電壓列解碼器3203提供用於程式化及抹除操作的高偏壓信號。參考單元低電壓行解碼器3204提供解碼功能給參考單元。位元線PE驅動器3214在程式化、驗證及抹除操作期間提供控制功能給位元線。類比及高電壓產生電路3213係共享偏壓區塊,其提供各種程式化、抹除、程式化驗證及讀取操作所需的多個電壓。冗餘陣列3215及3216提供用於取代有缺陷的陣列部分之陣列冗餘。NVR(非揮發性暫存器,又名資訊區段)區段3217係這樣的區段:用於儲存但不限於使用者資訊、裝置ID、密碼、安全密鑰、修正位元、組態位元、製造資訊之陣列區段。
圖33描繪類比神經記憶體系統3300。類比神經記憶體系統3300包括巨集區塊3301a、3301b、3301c、3301d、3301e、3301f、3301g及3301h;神經元輸出(例如,加法器電路及取樣保持S/H電路)區塊3302a、3302b、3302c、3302d、3302e、3302f、3302g及3302h;以及輸入電路區塊3303a、3303b、3303c、3303d、3303e、3303f、3303g及3303h。巨集區塊3301a、3301b、3301c、3301d、3301e、3301f、3301g及3301h中之每一者都是包含VMM陣列的VMM子系統,VMM陣列包括數列及數行的非揮發性記憶體單元(諸如快閃記憶體單元)。神經記憶體子系統3333包括巨集區塊3301、輸入區塊3303及神經元輸出區塊3302。神經記憶體子系統3333可以具有自己的數位控制區塊。
類比神經記憶體系統3300進一步包括系統控制區塊3304、類比低電壓區塊3305、高電壓區塊3306及時序控制電路3670,下面將結合圖36來對其進行更詳細論述。
系統控制區塊3304可以包括一個或多個微控制器核心,例如,ARM/MIPS/RISC_V核心,以處理一般的控制功能及算術運算。系統控制塊3304亦可以包括SIMD(單指令多資料)單元,以利用單一指令對多個資料進行操作。 它可能包括DSP核心。它可以包括用於執行功能的硬體或軟體,所述功能包括但不限於池化、平均、最小化、最大化、softmax、加、減、乘、除、對數、反對數、ReLu、Sigmoid、tanh及資料壓縮。它可以包括執行諸如激勵近似器/量化器/正規器的功能之硬體或軟體。它可以包括執行諸如輸入資料近似器/量化器/正規器的功能之能力。它可以包括執行激勵近似器/量化器/正規器的功能之硬體或軟體。神經記憶體子系統3333的控制區塊可以包括系統控制區塊3304的類似元件,例如,微控制器核心、SIMD核心、DSP核心及其它功能單元。
在一個具體例中,神經元輸出區塊3302a、3302b、3302c、3302d、3302e、3302f、3302g及3302h各自包括可以驅動長的可組態互連之緩衝器(例如,運算放大器)低阻抗輸出型電路。在一個具體例中,輸入電路區塊3303a、3303b、3303c、3303d、3303e、3303f、3303g及3303h各自提供求和高阻抗電流輸出。在另一個具體例中,神經元輸出區塊3302a、3302b、3302c、3302d、3302e、3302f、3302g及3302h各自包括激勵電路,其中需要額外的低阻抗緩衝器來驅動輸出。
在另一個具體例中,神經元輸出區塊3302a、3302b、3302c、3302d、3302e、3302f、3302g及3302h各自包括用於輸出數位位元而不是類比信號之類比至數位轉換區塊。在此具體例中,輸入電路區塊3303a、3303b、3303c、3303d、3303e、3303f、3303g及3303h各自包括用於從個別神經元輸出區塊接收數位位元並將數位位元轉換為類比信號之數位至類比轉換區塊。
因此,神經元輸出區塊3302a、3302b、3302c、3302d、3302e、3302f、3302g及3302h接收來自巨集區塊3301a、3301b、3301c、3301d、3301e、3301f、3301g及3301h的輸出電流,並且任選地將那個輸出電流轉換為類比電壓、數位位元或者一個或多個數位脈衝,其中每個脈衝的寬度或脈衝數隨著輸出電流的數值而變化。同樣地,輸入電路區塊3303a、3303b、3303c、3303d、3303e、3303f、3303g及3303h任選地接收類比電流、類比電壓、數位位元或數位脈衝,其中每個脈衝的寬度或脈衝數隨著輸出電流的數值而變化,並且提供類比電流至巨集區塊3301a、3301b、3301c、3301d、3301e、3301f、3301g及3301h。輸入電路區塊3303a、3303b、3303c、3303d、3303e、3303f、3303g及3303h任選地包括電壓至電流轉換器、用於對輸入信號中之數位脈衝的數量或長度或寬度進行計數之類比或數位字計數器或數位至類比轉換器。
長短期記憶體
先前技術包括稱為長短期記憶體(LSTM)的概念。LSTM單元通常用於神經網路中。LSTM允許神經網路在預定任意時間間隔內記住資訊,並在後續操作中使用那個資訊。傳統的LSTM單元包括單元、輸入閥、輸出閥及遺忘閥。三個閥調整進出單元的資訊流及在LSTM中記住資訊的時間間隔。VMM在LSTM單位中係特別有用的。
圖16描繪示例性LSTM 1600。此實例中的LSTM 1600包括單元1601、1602、1603及1604。單元1601接收輸入向量x0
,並產生輸出向量h0
及單元狀態向量c0
。單元1602接收輸入向量x1
、來自單元1601的輸出向量(隱藏狀態)h0
及單元狀態c0
,並產生輸出向量h1
及單元狀態向量c1
。單元1603接收輸入向量x2
、來自單元1602的輸出向量(隱藏狀態)h1
及單元狀態c1
,並產生輸出向量h2
及單元狀態向量c2
。單元1604接收輸入向量x3
、來自單元1603的輸出向量(隱藏狀態)h2
及單元狀態c2
,並產生輸出向量h3
。可以使用額外的單元,並且具有四個單元的LSTM僅是一個實例。
圖17描繪LSTM單元1700的示例性實施,其可以用於圖16中之單元1601、1602、1603及1604。LSTM單元1700接收輸入向量x(t)、來自前一個單元之單元狀態向量c(t-1)及來自前一個單元之輸出向量h(t-1),並產生單元狀態向量c(t)及輸出向量h(t)。
LSTM單元1700包括sigmoid函數裝置1701、1702及1703,每個sigmoid函數裝置應用0與1之間的數字,以控制輸入向量中之每個分量有多少被允許直至輸出向量。LSTM單元1700亦包括用以將雙曲正切函數應用於輸入向量的tanh裝置1704及1705、用以將兩個向量相乘的乘法裝置1706、1707及1708以及用以將兩個向量相加的加法裝置1709。輸出向量h(t)可以提供給系統中的下一個LSTM單元,或者亦可以出於其它目的對其進行存取。
圖18描繪LSTM單元1800,其是LSTM單元1700的實施之一個實例。為方便讀者,在LSTM單元1800中使用與LSTM單元1700相同的編號。sigmoid函數裝置1701、1702及1703以及tanh裝置1704各自包括多個VMM陣列1801及激勵電路區塊1802。因此,可以看出VMM陣列在某些神經網路系統中使用之LSTM單元中係特別有用的。乘法裝置1706、1707及1708以及加法裝置1709以數位方式或類比方式來實施。 激勵功能區塊1802可以以數位方式或以類比方式來實施。
圖19顯示LSTM單元1800的一個替代方案(以及LSTM單元1700實施的另一個實例)。在圖19中,Sigmoid函數裝置1701、1702及1703以及tanh裝置1704以時間多工方式共享同一個實體硬體(VMM陣列1901及激勵函數區塊1902)。LSTM單元1900亦包括:乘法裝置1903,用於將兩個向量相乘;加法裝置1908,用於將兩個向量相加;tanh裝置1705(其包括激勵電路區塊1902);暫存器1907,其在i(t)從sigmoid函數區塊1902輸出時儲存數值i(t);暫存器1904,其在數值f(t)*c(t-1)從乘法裝置1903經由多工器1910輸出時儲存數值f(t)*c(t-1);暫存器1905,其在數值i(t)*u(t)從乘法裝置1903經由多工器1910輸出時儲存數值i(t)*u(t);及暫存器1906,其在數值o(t)*c~(t)從乘法裝置1903經由多工器1910輸出時儲存數值o(t)*c~(t);以及多工器1909。
LSTM單元1800包含多組VMM陣列1801及個別的激勵函數區塊1802,而LSTM單元1900僅包含一組VMM陣列1901及激勵函數區塊1902,它們在LSTM單元1900的具體例中用於表示多層。LSTM單元1900將需要比LSTM單元1800少的空間,因為相較於LSTM單元1800,LSTM單元1900只需要1/4空間用於VMM及激勵函數區塊。
可以進一步理解,LSTM單元通常將包括多個VMM陣列,每個VMM陣列需要由VMM陣列外部的某些電路區塊(例如,加法器及激勵電路區塊以及高電壓產生區塊)提供的功能。對每個VMM陣列提供個別的電路區塊,將在半導體裝置內需要大量的空間,並且會有些沒有效率。
閘控遞歸單元
可以將類比VMM實施用於GRU(閘控遞歸單元)系統。GRU係遞歸神經網路中的閘控機制。除GRU單元通常包含比LSTM單元少的組件外,GRU與LSTM相似。
圖20描繪示例性GRU 2000。此實例中之GRU 2000包括單元2001、2002、2003及2004。單元2001接收輸入向量x0
,並產生輸出向量h0
。單元2002接收輸入向量x1
及來自單元2001的輸出向量h0
,並產生輸出向量h1
。單元2003接收輸入向量x2
及及來自單元2002的輸出向量(隱藏狀態)h1
,並產生輸出向量h2
。單元2004接收輸入向量x3
及來自單元2003的輸出向量(隱藏狀態)h2
,並產生輸出向量h3
。可以使用額外的單元,並且具有四個單元的GRU僅是一個實例。
圖21描繪GRU單元2100的示例性實施,其可以用於圖20之單元2001、2002、2003及2004。GRU單元2100接收輸入向量x(t)及來自前一個GRU單元之輸出向量h(t-1),並產生輸出向量h(t)。GRU單元2100包括sigmoid函數裝置2101及2102,每個sigmoid函數裝置應用0與1之間的數字於來自輸出向量h(t-1)及輸入向量x(t)的分量。GRU單元2100亦包括用以將雙曲正切函數應用於輸入向量的tanh裝置2103、用以將兩個向量相乘的複數個乘法裝置2104、2105及2106、用以將兩個向量相加的加法裝置2107以及用以從1減去輸入來產生輸出的互補裝置2108。
圖22描繪GRU單元2200,其是GRU單元2100的實施之一個實例。為方便讀者,在GRU單元2200中使用與GRU單元2100相同的編號。從圖22可以看出,sigmoid函數裝置2101及2102以及tanh裝置2103各自包括多個VMM陣列2201及激勵函數區塊2202。因此,可以看出VMM陣列特別用於某些神經網路系統中使用之GRU單元中。乘法裝置2104、2105及2106、加法裝置2107以及互補裝置2108以數位方式或類比方式來實施。激勵函數區塊2202可以以數位方式或以類比方式來實施。
圖23顯示GRU單元2200的一個替代方案(以及GRU單元2100實施的另一個實例)。在圖23中,GRU單元2300利用VMM陣列2301及激勵函數區塊2302,激勵函數區塊2302在配置成為Sigmoid函數時應用0與1之間的數字,以控制輸入向量中之每個分量有多少被允許直至輸出向量。在圖23中,Sigmoid函數裝置2101及2102以及tanh裝置2103以時間多工方式共享同一個實體硬體(VMM陣列2301及激勵函數區塊2302)。GRU單元2300亦包括:乘法裝置2303,用於將兩個向量相乘;加法裝置2305,用於將兩個向量相加;互補裝置2309,用於從1減去輸入,以產生輸出;多工器2304;暫存器2306,用於當數值h(t-1)*r(t)從乘法裝置2103經由多工器2304輸出時,保持數值h(t-1)*r(t);暫存器2307,用於當數值h(t-1)*z(t)從乘法裝置2303經由多工器2304輸出時,保持數值h(t-1)*z(t);以及暫存器2308,用於當數值h^(t)*(1-z(t))從乘法裝置2303經由多工器2304輸出時,保持數值h^(t)*(1-z(t))。
GRU單元2200包含多組VMM陣列2201及激勵函數區塊2202,而GRU單元2300僅包含一組VMM陣列2301及激勵函數區塊2302,它們在GRU單元2300的具體例中用於表示多層。GRU單元2300將需要比GRU單元2200少的空間,因為相較於GRU單元2200,GRU單元2300只需要1/3空間用於VMM及激勵函數區塊。
可以進一步理解,GRU系統通常將包括多個VMM陣列,每個VMM陣列需要由VMM陣列外部的某些電路區塊(例如,加法器及激勵電路區塊以及高電壓產生區塊)提供的功能。對每個VMM陣列提供個別的電路區塊,將在半導體裝置內需要大量的空間,並且會有些沒有效率。
VMM陣列的輸入可以是類比位準、二進制位準或數位位元(在這種情況下,需要DAC將數位位元轉換為適當的輸入類比位準),以及輸出可以是類比位準、二進制位準或數位位元(在這種情況下,需要輸出ADC將輸出類比位準轉換為數位位元)。
對於一個VMM陣列中之每個記憶體單元,每個權重w可以由單一記憶體單元或由一個差分單元或由兩個混合記憶體單元(平均2個單元)來實施。在差分單元的情況下,需要兩個記憶體單元來實施權重w成為差分權重(w=w+–w-)。在兩個混合記憶體單元方面,需要兩個記憶體單元來實施權重w成為兩個單元的平均值。
輸出電路
圖34A描繪應用於輸出神經元電流INEU
3406之積分雙混合斜率類比至數位轉換器(ADC)3400,以將輸出神經元電流轉換為數位脈衝或數位輸出位元。
在一個具體例中,ADC 3400將神經元輸出區塊(例如,圖32中之神經元輸出區塊3302a、3302b、3302c、3302d、3302e、3302f、3302g及3302h)中之類比輸出電流轉換為數位脈衝,其中所述數位脈衝的寬度變化與神經元輸出區塊中之類比輸出電流的振幅成比例地變化。包括積分運算放大器3401及積分電容器3402之積分器對記憶體陣列電流INEU
3406(輸出神經元電流)與參考電流IREF 3407進行積分。
任選地,IREF 3407可以包括一個能隙濾波器,所述能隙濾波器具有0的溫度係數或跟隨神經元電流INEU
3406的溫度係數。後者可選擇地從包含在測試階段所確定之數值的參考陣列獲取。
任選地,可以在電路處於或高於操作溫度時執行校正步驟,以補償陣列或控制電路中存在的任何洩漏電流,然後可以從圖34B或圖35B的Ineu減去補償值。
在初始化階段,使開關3408關閉。 然後,Vout 3403及運算放大器3401的負端子之輸入將變為VREF。之後,如圖34B所示,打開開關3408,並且在固定時段tref期間,對神經元電流INEU
3406進行向上積分。 在固定時段tref期間,Vout上升,其斜率隨著神經元電流的變化而變化。之後,在時段tmeas期間(在此期間Vout下降)對恆定參考電流IREF進行向下積分,其中tmeas係Vout至VREF的向下積分所需的時間。
當VOUT> VREF時,輸出EC 3405將為高位準,否則將為低位準。 因此,EC 3405產成一個脈衝,其寬度反映時段tmeas,而時段tmeas又與電流INEU
3406成比例關係。在圖34B中,EC3405在tmeas=Ineu1的實例中被顯示為波形3410,而在tmeas=Ineu2的實例中被顯示為波形3412。因此,將輸出神經元電流INEU
3406轉換為數位脈衝EC 3405,其中數位脈衝EC 3405的寬度與輸出神經元電流INEU
3406的振幅成比例地變化。
電流INEU
3406 = tmeas/tref *IREF。 例如,對於10位元的期望輸出位元解析度,tref等於1024個時鐘週期的時段。時段tmeas的範圍從0到1024個時鐘週期不等,這取決於INEU
3406的數值及Iref的數值。圖34B顯示INEU
3406的兩個不同數值之實例,其中一個是INEU
3406 = Ineu1,而另一個是INEU
3406=Ineu2。因此,神經元電流INEU
3406影響充電的速率及斜率。
任選地,可以將輸出脈衝 EC 3405轉換為均勻週期的一系列脈衝,以便傳輸至下一級電路,例如,另一個VMM陣列的輸入區塊。在時段tmeas開始時,將輸出EC 3405與參考時鐘3441一起輸入及閘3440。在VOUT>VREF的時段期間,輸出將為脈衝序列3442(其中脈衝序列3442中之脈衝的頻率與時鐘3441的頻率相同)。脈衝數與時段tmeas成比例關係,而時段tmeas與電流INEU
3406成比例關係。
任選地,可以將脈衝序列3442輸入至計數器3420,計數器3420會對脈衝序列3442中之脈衝數進行計數並產生計數值3421,計數值3421係脈衝序列3442中之脈衝數的數位計數,數位計數與神經元電流INEU
3406成正比。計數值3421包括一組數位位元。在另一個具體例中,積分雙斜率ADC 3400可以將神經元電流INEU
3406轉換成脈衝,其中脈衝的寬度與神經元電流INEU
3406的振幅成反比。這種反轉可以數位或類比方式來完成,並轉換為一系列脈衝或數位位元,以便輸出至後續電路。
圖35A顯示應用於輸出神經元電流INEU
3504之積分雙混合斜率ADC 3500,以將單元電流轉換為具有可變寬度之數位脈衝或一系列數位輸出位元。例如,ADC 3500可用於將神經元輸出區塊(例如,圖32中之神經元輸出區塊3302a、3302b、3302c、3302d、3302e、3302f、3302g及3302h)中之類比輸出電流轉換為一組數位輸出位元。包括積分運算放大器3501及積分電容器3502之積分器對神經元電流INEU
3504與參考電流IREF3503進行積分。可以使開關3505關閉,以重置VOUT。
在初始化階段期間,使開關3505關閉,並且將VOUT充電至電壓VBIAS
。此後,如圖35B所示,打開開關3505,並且在固定時段tref期間,對單元電流INEU
3504進行向上積分。接著,在時段tmeas期間對參考電流IREF 3503進行向下積分,直到Vout下降至接地為止。電流INEU
3504=tmeas Ineu/tref*IREF。例如,對於10位元的期望輸出位元解析度,tref等於1024個時鐘週期的時段。時段tmeas的範圍從0到1024個時鐘週期不等,這取決於INEU
3504及Iref的數值。圖35B顯示兩個不同Ineu
值的實例,其中一個是電流Ineu1,而另一個是電流Ineu2。 因此,神經元電流INEU
3504影響充電及放電的速率及斜率。
當VOUT>VREF時,輸出3506將為高位準,否則將為低位準。因此,輸出3506產生一個脈衝,其寬度反映時段tmeas,而時段tmeas又與電流INEU
3504成比例關係。在圖35B中,輸出3506在tmeas=Ineu1的實例中被顯示為波形3512,而在tmeas=Ineu2的實例中被顯示為波形3515。因此,將輸出神經元電流INEU
3504轉換為脈衝輸出3506,其中脈衝的寬度與輸出神經元電流INEU
3504的振幅成比例地變化。
任選地,可以將輸出3506轉換為均勻週期的一系列脈衝,以便傳輸至下一級電路,例如,另一個VMM陣列的輸入區塊。在時段tmeas開始時,將輸出3506與參考時鐘3507一起輸入及閘3508。在VOUT>VREF的時段期間,輸出將為脈衝序列3509(其中脈衝序列3509中之脈衝的頻率與參考時鐘3507的頻率相同)。脈衝數與時段tmeas成比例關係,而時段tmeas與電流INEU
3504成比例關係。
任選地,可以將脈衝序列3509輸入至計數器3510,計數器3510會對脈衝序列3509中之脈衝數進行計數並產生計數值3511,計數值3511係脈衝序列3509中之脈衝數的數位計數,數位計數如波形3514及3517所示與神經元電流INEU
3504成正比。計數值3511包括一組數位位元。
在另一個具體例中,積分雙斜率ADC 3500可以將神經元電流INEU
3504轉換成脈衝,其中脈衝的寬度與神經元電流INEU
3504的振幅成反比。這種反轉可以數位或類比方式來完成,並轉換為一個或多個脈衝或數位位元,以便輸出至後續電路。
圖35B描繪INEU
3504之兩個神經元電流值Ineu1及Ineu2的計數值3511(數位位元)。
圖36A及36B描繪與在操作期間在VMM中執行之示例性方法3600及3650相關的波形。在每種方法3600及3650中,字線WL0、WL1及WL2接收各種不同的輸入,其可以任選地被轉換成類比電壓波形,以施加至字線。在這些實例中,電壓VC表示在第一VMM之輸出區塊中的ADC 3400或3500中之分別在圖34A及35A中的積分電容器3402或3502上之電壓,並且OT脈衝(=「1」)表示使用積分雙斜率ADC 3400或3500捕獲神經元的輸出(與神經元值成比例關係)之時段。如圖34及35所述,輸出區塊的輸出可以是寬度與第一VMM的輸出神經元電流成比例關係之脈衝,或者它可以是寬度均勻的一系列脈衝,其中的脈衝數與第一個VMM的神經元電流成比例地變化。然後,可以施加那些脈衝作為第二VMM的輸入。
在方法3600期間,將脈衝序列(例如,脈衝序列3442或脈衝序列3509)或從脈衝序列衍生出的類比電壓施加至第二VMM陣列的字線中。或者,可以將脈衝序列或從脈衝序列衍生出的類比電壓施加至到第二VMM陣列內之單元的控制閘極。脈衝數(或時鐘週期)直接對應於輸入的振幅。在此特定實例中,WL1上之輸入的振幅係WL0的4倍(4個脈衝對1個脈衝)。
在方法3650期間,將具有可變寬度之單個脈衝(例如,EC 3405或輸出3506)或從單個脈衝衍生出的類比電壓施加至第二VMM陣列的字線中,但是脈衝具有可變的脈衝寬度。或者,可以將脈衝或從脈衝衍生出的類比電壓施加至控制閘極。單個脈衝的寬度直接對應於輸入的振幅。例如,WL1上之輸入的振幅係WL0的4倍(WL1脈衝寬度係WL0的4倍)。
再者,參考圖36C,時序控制電路3670可以用於藉由管理VMM陣列的輸出及輸入介面並依序地劃分各種輸出或各種輸入的轉換來管理VMM系統的電源。圖56描繪電源管理方法5600。第一步驟是接收用於向量矩陣乘法陣列的複數個輸入(步驟5601)。 第二步驟是將複數個輸入組織成複數組輸入(步驟5602)。第三步驟是將複數組輸入中之每一組輸入依序地提供給陣列(步驟5603)。
電源管理方法5600的一個具體例如下。可以隨時間依序施加VMM系統的輸入(例如,VMM陣列的字線或控制閘極)。例如,對於具有512個字線輸入的VMM陣列,可以將字線輸入分成WL0-127、WL128-255、WL256-383及WL384-511四組。可以在不同時間啟用每一組,並且可以例如藉由圖34-36中之輸出積分電路來對與四組字線中之一對應的組執行輸出讀取操作(將神經元電流轉換為數位位元)。在依序讀取四組中之每一組之後,將輸出的數位位元結果組合在一起。此操作可以由時序控制電路3670來控制。
在另一個具體例中,時序控制電路3670在向量矩陣乘法系統(例如,圖33中之類比神經記憶體系統3300)中執行電源管理。時序控制電路3670可以例如藉由在不同時間啟用輸入電路區塊3303a、3303b、 3303c、3303d、3303e、3303f、3303g及3303h來隨著時間將輸入依序施加至VMM子系統3333。同樣地,時序控制電路3670可以例如藉由在不同時間啟用神經元輸出區塊3302a、3302b、 3302c、3302d、3302e、3302f、3302g及3302h來隨著時間依序讀取來自VMM子系統3333的輸出。
圖57描繪電源管理方法5700。第一步驟是從向量矩陣乘法陣列接收複數個輸出(步驟5701)。下一步驟是將來自陣列的複數個輸出組織成複數組輸出(步驟5702)。 下一步驟是將複數組輸出中之每一組輸出依序地提供給轉換器電路(步驟5703)。
電源管理方法5700的一個具體例如下。時序控制電路3670可以藉由在不同時間依序讀取神經元輸出組(亦即,藉由對橫跨多個神經元輸出(位元線)之輸出電路(例如,輸出ADC電路)進行多工處理)來實施電源管理。可以將位元線放置在不同組中,並且輸出電路在時序控制電路3670的控制下以順序方式一次對一組進行操作。
圖58描繪電源管理方法5800。在包括複數個陣列之向量矩陣乘法系統中,第一步驟是接收複數個輸入。下一步驟依序地使複數個陣列中之一個或多個陣列能夠接收複數個輸入中之一些或全部(步驟5802)。
電源管理方法5800的一個具體例如下。時序控制電路3670可以一次對一個神經網路層進行操作。例如,如果以第一VMM陣列來表示一個神經網路層,並且以第二VMM陣列來表示第二神經網路層,則可以依序一次在一個VMM陣列上執行輸出讀取操作(例如,其中將神經元輸出轉換為數位位元),從而管理VMM系統的電源。
在另一個具體例中,時序控制電路3670可以藉由依序地啟用如圖33所示之複數個神經記憶體子系統3333或複數個巨集3301來進行操作。
在另一個具體例中,時序控制電路3670可以藉由依序地啟用如圖33所示之複數個神經記憶體子系統3333或複數個巨集3301來進行操作,而沒有在不活動時段(表示開啟與關閉順序致能之間的關閉時段)期間對陣列偏壓(例如,對於控制閘極CG作為輸入而位元線BL作為輸出,是在字線WL及/或位元線BL上的偏壓,或者對於字線WL作為輸入而位元線BL作為輸出,是在控制閘極CG及/或位元線BL上的偏壓)進行放電。這避免電源對將在一個或多個讀取操作期間(例如,在推理或分類操作期間)多次使用之陣列電壓再次進行不必要的放電及充電。
圖37-44描繪可以使用在VMM輸入區塊(例如,圖33中之輸入電路區塊3303a、3303b、3303c、3303d、3303e、3303f、3303g及3303h)或神經元輸出區塊(例如,圖33中之神經元輸出區塊3302a、3302b、3302c、3302d、3302e、3302f、3302g及3302h)中之各種電路。
圖37描繪脈衝至電壓轉換器3700,其可以任選地用於將由積分雙斜率ADC 3400或3500產生之數位脈衝轉換為電壓,所述電壓例如可以被施加作為VMM記憶體陣列的輸入(例如, 在WL或CG線上)。脈衝至電壓轉換器3700包括用於產生參考電流IREF之參考電流發生器3701、電容器3702及開關3703。輸入用於控制開關3703。當在輸入上接收脈衝時,關閉開關,並且電荷累積在電容器3702上,使得在輸入信號完成之後電容器3702的電壓將指示所接收之脈衝數。電容器任選地可以是字線或控制閘極電容。
圖38描繪電流至電壓轉換器3800,其可以任選地用於將神經元輸出電流轉換為電壓,所述電壓例如可以被施加作為VMM記憶體陣列的輸入(例如, 在WL或CG線上)。電流至電壓轉換器3800包括在此表示所接收之神經元電流INEU
(或Iin)的電流產生器3801及可變電阻器3802。輸出Vout將隨著神經元電流的增加而增加。可變電阻器3802可根據需要來進行調整,以增加或減小Vout的最大範圍。
圖39描繪電流至電壓轉換器3900,其可以任選地用於將神經元輸出電流轉換為電壓,所述電壓例如可以被施加作為VMM記憶體陣列的輸入(例如,在WL或CG線上)。電流至電壓轉換器3900包括運算放大器3901、電容器3902、開關3903、開關3904及在此表示神經元電流ICELL的電流源3905。在操作期間,會打開開關3903,而關閉開關3904。輸出Vout的振幅會與神經元電流ICELL 3905的振幅成比例地增加。
圖40描繪電流至對數電壓轉換器4000,其可以任選地用於將神經元輸出電流轉換為對數電壓,所述對數電壓例如可以被施加作為 VMM記憶體陣列的輸入(例如,在WL或CG線上)。電流至對數電壓轉換器4000包括記憶體單元4001、開關4002(其將記憶體單元4001的字線端子選擇性地連接至產生Vout的節點)以及在此表示神經元電流IiN的電流源4003。在操作期間,會關閉開關4002,並且輸出Vout的振幅會與神經元電流IiN的振幅成比例地增加。
圖41描繪電流至對數電壓轉換器4100,其可以任選地用於將神經元輸出電流轉換為對數電壓,所述對數電壓例如可以被施加作為VMM記憶體陣列的輸入(例如,在WL或CG線上)。電流至對數電壓轉換器4100包括記憶體單元4101、開關4102(其將記憶體單元4101的控制閘極端子選擇性地連接至產生Vout的節點)以及在此表示神經元電流IiN的電流源4103。在操作期間,會關閉開關4102,並且輸出Vout的振幅會與神經元電流IiN的振幅成比例地增加。
圖42描繪數位資料至電壓轉換器4200,其可以任選地用於將數位資料(亦即,0與1)轉換為電壓,所述電壓例如可以被施加作為VMM記憶體陣列的輸入(例如,在WL或CG線上)。數位資料至電壓轉換器4200包括電容器4201、可調整電流源4202(其在此為來自記憶體單元參考陣列的電流)及開關4203。數位資料控制開關4203。例如,當數位資料為「1」時,開關4203會關閉,而當數位資料為「0」時,開關4203會打開。累積在電容器4201上之電壓會是輸出OUT,並且會對應於數位資料的值。任選地,電容器可以是字線或控制閘極電容。
圖43描繪數位資料至電壓轉換器4300,其可以任選地用於將數位資料(亦即,0與1)轉換為電壓,所述電壓例如可以被施加作為 VMM記憶體陣列的輸入(例如,在WL或CG線上)。數位資料至電壓轉換器4300包括可變電阻器4301、可調整電流源4302(其在此為來自記憶體單元參考陣列的電流)及開關4303。數位資料控制開關4303。例如,當數位資料為「1」時,開關4303會關閉,而當數位資料為「0」時,開關4303會打開。輸出電壓會對應於數位資料的值。
圖44描繪參考陣列4400,其可以用於提供圖42及43中之可調整電流源4202及4302的參考電流。
圖45-47描繪用於在程式化操作之後驗證VMM中之快閃記憶體單元包含對應於意欲儲存在那個快閃記憶體單元中之權體(W)值的適當電荷之組件。
圖45描繪數位比較器4500,其接收一組參考權重(W)值作為數位輸入及來自一些已程式化的快閃記憶體單元之感測權重(W)數位值。如果存在不匹配,則數位比較器4500會產生一個旗標,所述旗標表示一個或多個快閃記憶體單元尚未使用正確的值來進行程式化。
圖46描繪圖45的數位比較器4500與轉換器4600配合使用。感測權重(W)值由轉換器4600的多個實例來提供。轉換器4600(使用前述轉換器中之一個或多個轉換器,例如,ADC 3400或3500)從快閃記憶體單元接收單元電流ICELL,並將其轉換為數位資料,所述數位資料可以被提供給數位比較器4500。
圖47描繪類比比較器4700,其接收一組參考權重值作為類比輸入及來自一些已程式化的快閃記憶體單元之感測權重(W)類比值。如果存在不匹配,則類比比較器4700會產生一個旗標,所述旗標表示一個或多個快閃記憶體單元尚未使用正確的值來進行程式化。
圖48描繪圖47的類比比較器4700與轉換器4800配合使用。感測權重(W)值由轉換器4800來提供。轉換器4800(使用前述轉換器中之一個或多個轉換器,例如,脈衝至電壓轉換器3700、數位資料至電壓轉換器4200或數位資料至電壓轉換器4300)接收感測權重(W)值的數位值,並將其轉換為類比信號,所述類比信號可以被提供給類比比較器4700。
圖49描繪輸出電路4900。可以理解的是,如果使神經元的輸出數位化(例如,藉由使用前述積分雙斜率ADC 3400或3500),則仍然需要對神經元輸出執行激勵函數。圖49描繪一個具體例,其中在將神經元輸出轉換成具有可變寬度的脈衝或脈衝序列之前發生激勵。 輸出電路4900包括激勵電路4901及電流至脈衝轉換器4902。激勵電路從各個快閃記憶體單元接收Ineuron值,並且產生Ineuron_act,Ineuron_act係接收到之Ineuron值的總和。然後,電流至脈衝轉換器4902將Ineuron_act轉換為一系列數位脈衝及/或表示一系列數位脈衝的計數之數位資料。可以使用先前所述之其它轉換器(例如,積分雙斜率ADC 3400或3500)來取代轉換器4902。
在另一個具體例中,激勵可以在產生數位脈衝之後發生。 在那個具體例中,使用激勵對映表或由激勵對映單元5010所實施的功能將數位輸出位元映射至新的一組數位位元。在圖50及51中以圖形方式顯示這樣的對映之實例。激勵數位對映可以模擬sigmoid、tanh、ReLu或任何激勵函數。再者,激勵數位對映可以使輸出神經元量化。
圖52描繪電荷加法器5200的一個實例,其可以用於在程式化操作之後的驗證操作期間計算VMM的輸出之總和,以獲得代表輸出之單一類比值,然後可以任選地將其轉換為數位位元值。電荷加法器5200包括電流源5201及取樣保持電路,所述取樣保持電路包括開關5202及取樣保持(S/H)電容器5203。如圖所示,對於4-位元數位值的一個實例,有4個 S/H電路保持來自4個評估脈衝的數值,其中在過程結束時計算數值的總和。選擇與S/H電容器的2^n*DINn位元位置相關之比率的S/H電容器5203;例如C_DIN3=x8 Cu;C_DIN2=x4 Cu;C_DIN1=x2 Cu;C_DIN0=x1 Cu。電流源5201亦可相應地用比例方式來表達。
圖53描繪電流加法器5300,其可以用於在程式化操作之後的驗證操作期間計算VMM的輸出之總和。電流加法器5300包括電流源5301、開關5302、開關5303及5304以及開關5305。如圖所示,對於4-位元數位值的一個實例,具有用於保持來自4個評估脈衝的數值之電流源電路,其中在過程結束時計算數值的總和。根據2^n*DINn位元位置用比例方式表達電流源,例如,I_DIN3=x8 Icell單位;I_DIN2=x4 Icell單位;I_DIN1=x2 Icell單位;I_DIN0=x1 Icell單位。
圖54描繪數位加法器5400,其接收複數個數位值,並將它們加總在一起,以產生代表輸入的總和之輸出DOUT。可以在程式化操作之後的驗證操作期間使用數位加法器5400。如圖所示,對於4-位元數位值的一個實例,具有用於保持來自4個評估脈衝的數值之數位輸出位元,其中在過程結束時計算數值的總和。根據2^n*DINn位元位置將數位輸出按比例進行數位縮放;例如,I_DOUT3=x8DOUT0;I_DOUT2=x4DOUT1;I_DOUT1=x2DOUT0;I_DOUT0=DOUT0。
圖55A及55B描繪在輸入區塊、列解碼器或輸出區塊內使用之數位位元至脈衝寬度轉換器5500。如上面關於圖36B所述,從數位位元至脈衝寬度轉換器5500輸出之脈衝寬度與其數值成比例關係。數位位元至脈衝寬度轉換器包括二進制計數器5501。可以藉由串列或平行資料以載入順序載入二進制計數器5501的狀態Q [N:0]。列控制邏輯5510輸出電壓脈衝,其脈衝寬度與從諸如圖34及35中之積分ADC的區塊提供之數位資料輸入的數值成比例關係。
圖55B顯示輸出脈衝寬度的波形,其具有與其數位位元值成比例關係的寬度。首先,將接收到的數位位元中之資料反相,並且將反相的數位位元以串列或並行方式載入計數器5501中。然後,如波形5520所示,藉由以二進制方式計數,直到達到最大計數器值為止,列控制邏輯5510產生列脈衝寬度。
任選地,可以使用脈衝序列至脈衝轉換器,將包括脈衝序列(例如,圖34B中之信號3411或3413及圖35B中之信號3513或3516)的輸出轉換為用作VMM陣列的輸入之單個脈衝(例如,圖36B中之信號WL0、WL1及WLe),所述單個脈衝的寬度與脈衝序列中之脈衝數成比例地變化,其中所述單個脈衝會被施加至VMM陣列內之字線或控制閘極。脈衝序列至脈衝轉換器的一個實例係具有控制邏輯的二進制計數器。
如表9所示之實例係針對4-位元數位輸入:
表9:數位輸入位元至輸出脈衝寬度
DIN>3:0> | 計數 | 載入計數器之反相DIN>3:0> | 輸出脈衝寬度=時鐘數 |
0000 | 0 | 1111 | 0 |
0001 | 1 | 1110 | 1 |
0010 | 2 | 1101 | 2 |
0011 | 3 | 1100 | 3 |
0100 | 4 | 1011 | 4 |
0101 | 5 | 1010 | 5 |
0110 | 6 | 1001 | 6 |
0111 | 7 | 1000 | 7 |
1000 | 8 | 0111 | 8 |
1001 | 9 | 0110 | 9 |
1010 | 10 | 0101 | 10 |
1011 | 11 | 0100 | 11 |
1100 | 12 | 0011 | 12 |
1101 | 13 | 0010 | 13 |
1110 | 14 | 0001 | 14 |
1111 | 15 | 0000 | 15 |
另一個具體例使用向上二進制計數器及數位比較邏輯。 亦即,藉由對向上二進制計數器進行計數直到二進制計數器的數位輸出與數位輸入位元相同為止來產生輸出脈衝寬度。
另一個具體例使用向下二進制計數器。 首先,用數位資料輸入型樣以串列或並行方式載入向下二進制計數器。然後,藉由對向下二進制計數器進行向下計數直到二進制計數器的數位輸出達到最小值(亦即,邏輯狀態「0」)為止來產生輸出脈衝寬度。
應當注意,如本文所使用,術語「在......上方」及「在......上」均包含性地包括「直接在......上」(沒有中間材料、元件或空間設置在其間)及「間接在......上」(中間材料、元件或空間設置在其間)。同樣地,術語「相鄰」包括「直接相鄰」(沒有中間材料、元件或空間設置在其間)及「間接相鄰」(中間材料、元件或空間設置在其間),「安裝至」包括「直接安裝至」(沒有中間材料、元件或空間設置在其間)及「間接安裝至」(中間材料、元件或空間設置在其間),以及「電耦接至」包括「直接電耦接至」(沒有中間材料或元件在其間將元件電連接在一起)及「間接電耦接至」(中間材料或元件在其間將元件電連接在一起)。例如,「在基板上方」形成元件可以包括在基板上直接形成元件而在其間沒有中間材料/元件,以及在基板上間接形成元件而在其間具有一個或多個中間材料/元件。
12:半導體基板
14:源極區域
16:汲極區域
18:通道區域
20:浮動閘極
22:字線端子(選擇閘極)
24:位元線
28:控制閘極
30:抹除閘極
31:數位至類比轉換器
32:VMM陣列
32a:VMM陣列
32b:VMM陣列
32c:VMM陣列
32d:VMM陣列
32e:VMM陣列
33:非揮發性記憶體單元陣列
34:抹除閘極及字線閘極解碼器
35:控制閘極解碼器
36:位元線解碼器
37:源極線解碼器
38:差分加法器
39:激勵函數電路
210:記憶體單元
310:記憶體單元
410:4-閘極記憶體單元
510:記憶體單元
610:3-閘極記憶體單元
710:堆疊式閘極記憶體單元
1110:神經元VMM 陣列
1101:非揮發性記憶體單元的記憶體陣列
1102:非揮發性參考記憶體單元的參考陣列
1103:控制閘極線
1104:抹除閘極線
1200:神經元VMM陣列
1201:第一非揮發性參考記憶體單元的參考陣列
1202:第二非揮發性參考記憶體單元的參考陣列
1203:非揮發性記憶體單元的記憶體陣列
1214:多工器
1300:神經元VMM陣列
1301:第一非揮發性參考記憶體單元的參考陣列
1302:第二非揮發性參考記憶體單元的參考陣列
1303:非揮發性記憶體單元的記憶體陣列
1400:神經元VMM陣列
1401:第一非揮發性參考記憶體單元的參考陣列
1402:第二非揮發性參考記憶體單元的參考陣列
1403:非揮發性記憶體單元的記憶體陣列
1404:疊接電晶體
1405:多工器
1412:多工器
1500:神經元VMM陣列
1501:第一非揮發性參考記憶體單元的參考陣列
1502:第二非揮發性參考記憶體單元的參考陣列
1503:非揮發性記憶體單元的記憶體陣列
1514:多工器
1600:LSTM
1601:單元
1602:單元
1603:單元
1604:單元
1700:LSTM單元
1701:sigmoid函數裝置
1702:sigmoid函數裝置
1703:sigmoid函數裝置
1704:tanh裝置
1705:tanh裝置
1706:乘法裝置
1707:乘法裝置
1708:乘法裝置
1709:加法裝置
1800:LSTM單元
1801:VMM陣列
1802:激勵電路區塊
1900:LSTM單元
1901:VMM陣列
1902:激勵函數區塊
1903:乘法裝置
1904:暫存器
1905:暫存器
1906:暫存器
1907:暫存器
1908:加法裝置
1909:多工器
1910:多工器
2000:GRU
2001:單元
2002:單元
2003:單元
2004:單元
2100:GRU單元
2101:sigmoid函數裝置
2102:sigmoid函數裝置
2103:tanh裝置
2104:乘法裝置
2105:乘法裝置
2106:乘法裝置
2107:加法裝置
2108:互補裝置
2200:GRU單元
2201:VMM陣列
2202:激勵函數區塊
2300:GRU單元
2301:VMM陣列
2302:激勵函數區塊
2303:乘法裝置
2304:多工器
2305:加法裝置
2306:暫存器
2307:暫存器
2308:暫存器
2309:互補裝置
2400:神經元VMM陣列
2500:神經元VMM陣列
2600:神經元VMM陣列
2700:神經元VMM陣列
2800:神經元VMM陣列
2900:神經元VMM陣列
2901-1-2901-N:位元線控制閘
3000:神經元VMM陣列
3100:神經元VMM陣列
3200:VMM系統
3201:VMM陣列
3202:低電壓列解碼器
3203:高電壓列解碼器
3204:參考單元低電壓行解碼器
3205:位元線多工器
3206:控制邏輯
3207:類比電路
3208:神經元輸出區塊
3209:輸入VMM電路區塊
3210:預解碼器
3211:測試電路
3212:抹除-程式化控制邏輯
3213:類比及高電壓產生電路
3214:位元線PE驅動器
3215:冗餘陣列
3216:冗餘陣列
3217:NVR區段
3218:參考區段
3300:類比神經記憶體系統
3301:巨集區塊
3301a:巨集區塊
3301b:巨集區塊
3301c:巨集區塊
3301d:巨集區塊
3301e:巨集區塊
3301f:巨集區塊
3301g:巨集區塊
3301h:巨集區塊
3302:神經元輸出區塊
3302a:神經元輸出區塊
3302b:神經元輸出區塊
3302c:神經元輸出區塊
3302d:神經元輸出區塊
3302e:神經元輸出區塊
3302f:神經元輸出區塊
3302g:神經元輸出區塊
3302h:神經元輸出區塊
3303:輸入區塊
3303a:輸入電路區塊
3303b:輸入電路區塊
3303c:輸入電路區塊
3303d:輸入電路區塊
3303e:輸入電路區塊
3303f:輸入電路區塊
3303g:輸入電路區塊
3303h:輸入電路區塊
3304:系統控制區塊
3305:類比低電壓區塊
3306:高電壓區塊
3307:時序控制電路
3333:神經記憶體子系統
3400:積分雙混合斜率類比至數位轉換器(ADC)
3401:積分運算放大器
3402:積分電容器
3403:Vout
3405:輸出EC
3406:輸出神經元電流INEU
3407:參考電流IREF
3408:開關
3410:波形
3411:信號
3412:波形
3413:信號
3420:計數器
3421:計數值
3440:及閘
3441:參考時鐘
3442:脈衝序列
3500:積分雙混合斜率ADC
3501:積分運算放大器
3502:積分電容器
3503:參考電流IREF
3504:輸出神經元電流INEU
3505:開關
3506:輸出
3507:參考時鐘
3508:及閘
3509:脈衝序列
3510:計數器
3511:計數值
3512:波形
3513:信號
3514:波形
3515:波形
3516:信號
3517:波形
3600:示例性方法
3650:示例性方法
3670:時序控制電路
3700:脈衝至電壓轉換器
3701:參考電流發生器
3702:電容器3
3703:開關
3800:電流至電壓轉換器
3801:電流產生器
3802:可變電阻器
3900:電流至電壓轉換器
3901:運算放大器
3902:電容器
3903:開關
3904:開關
3905:電流源
4000:電流至對數電壓轉換器
4001:記憶體單元
4002:開關
4003:電流源
4100:電流至對數電壓轉換器
4101:記憶體單元
4102:開關
4103:電流源
4200:數位資料至電壓轉換器
4201:電容器
4202:可調整電流源
4203:開關
4300:數位資料至電壓轉換器
4301:可變電阻器
4302:可調整電流源
4303:開關
4400:參考陣列
4500:數位比較器
4600:轉換器
4700:類比比較器
4800:轉換器
4900:輸出電路
4901:激勵電路
4902:電流至脈衝轉換器
5010:激勵對映單元
5200:電荷加法器
5201:電流源
5202:開關
5203:取樣保持(S/H)電容器
5300:電流加法器
5301:電流源
5302:開關
5303:開關
5304:開關
5305:開關
5400:數位加法器
5500:數位位元至脈衝寬度轉換器
5501:二進制計數器
5510:列控制邏輯
5520:波形
BL0-BLN:位元線
BLR0:端子
BLR1:端子
BLR2:端子
BLR3:端子
c0:單元狀態向量
c1:單元狀態向量
c2:單元狀態向量
c(t-1):單元狀態向量
C1:層
C2:層
C3:層
CB1:突觸
CB2:突觸
CB3:突觸
CB4:突觸
CG0:控制閘極線(電壓輸入)
CG1:控制閘極線(電壓輸入)
CG2:控制閘極線(電壓輸入)
CG3:控制閘極線(電壓輸入)
CG0-CGM:控制閘極線
DOUT:輸出
EG0:EG線
EG1:EG線
EGR0:EG線
EGR1:EG線
h0:輸出向量
h1:輸出向量
h2:輸出向量
h3:輸出向量
h(t-1):輸出向量
h(t):輸出向量
INPUT0-INPUTM:輸入
INPUT0-INPUTN:輸入
OUTPUT0-OUTPUTN:輸出
P1:激勵函數
P2:激勵函數
S0:輸入層
S1:層
S2:層
S3:輸出層
SL0:源極線
SL1:源極線
SL2:源極線
SL3:源極線
SL0-SLN:源極線
WL0:字線(電壓輸入)
WL1:字線(電壓輸入)
WL2:字線(電壓輸入)
WL3:字線(電壓輸入)
WL0-WLM:字線
WLA0:字線
WLA1:字線
WLA2:字線
WLA3:字線
WLB0:字線
WLB1:字線
WLB2:字線
WLB3:字線
x0:輸入向量
x1:輸入向量
x2:輸入向量
x3:輸入向量
x(t):輸入向量
圖1係說明先前技術的人工神經網路之示圖。
圖2描繪先前技術的分離式閘極快閃記憶體單元。
圖3描繪另一個先前技術的分離式閘極快閃記憶體單元。
圖4描繪另一個先前技術的分離式閘極快閃記憶體單元。
圖5描繪另一個先前技術的分離式閘極快閃記憶體單元。
圖6描繪另一個先前技術的分離式閘極快閃記憶體單元。
圖7描繪先前技術的堆疊式閘極快閃記憶體單元。
圖8係說明利用一個或多個非揮發性記憶體陣列之示例性人工神經網路的不同層級之示圖。
圖9係說明向量矩陣乘法系統的方塊圖。
圖10係說明使用一個或多個向量矩陣乘法系統之示例性人工神經網路的方塊圖。
圖11描繪向量矩陣乘法系統的另一個具體例。
圖12描繪向量矩陣乘法系統的另一個具體例。
圖13描繪向量矩陣乘法系統的另一個具體例。
圖14描繪向量矩陣乘法系統的另一個具體例。
圖15描繪向量矩陣乘法系統的另一個具體例。
圖16描繪先前技術的長短期記憶體系統。
圖17描繪用於長短期記憶體系統中之一個示例性單元。
圖18描繪圖17的示例性單元之一個具體例。
圖19描繪圖17的示例性單元之另一個具體例。
圖20描繪先前技術的閘控遞歸單元系統(gated recurrent unit system)。
圖21描繪用於閘控遞歸單元系統中之一個示例性單元。
圖22描繪圖21的示例性單元之一個具體例。
圖23描繪圖21的示例性單元之另一個具體例。
圖24描繪向量矩陣乘法系統的另一個具體例。
圖25描繪向量矩陣乘法系統的另一個具體例。
圖26描繪向量矩陣乘法系統的另一個具體例。
圖27描繪向量矩陣乘法系統的另一個具體例。
圖28描繪向量矩陣乘法系統的另一個具體例。
圖29描繪向量矩陣乘法系統的另一個具體例。
圖30描繪向量矩陣乘法系統的另一個具體例。
圖31描繪向量矩陣乘法系統的另一個具體例。
圖32描繪VMM系統。
圖33描繪快閃類比神經記憶體系統。
圖34A描繪積分類比至數位轉換器。
圖34B描繪圖34A的積分類比至數位轉換器之電壓特性。
圖35A描繪積分類比至數位轉換器。
圖35B描繪圖35A的積分類比至數位轉換器之電壓特性。
圖36A及36B描繪圖34A及35A的類比至數位轉換器之操作的實例之波形。
圖36C描繪時序控制電路。
圖37描繪脈衝至電壓轉換器。
圖38描繪電流至電壓轉換器。
圖39描繪電流至電壓轉換器。
圖40描繪電流至對數電壓轉換器。
圖41描繪電流至對數電壓轉換器。
圖42描繪數位資料至電壓轉換器。
圖43描繪數位資料至電壓轉換器。
圖44描繪參考陣列。
圖45描繪數位比較器。
圖46描繪轉換器及數位比較器。
圖47描繪類比比較器。
圖48描繪轉換器及類比比較器。
圖49描繪輸出電路。
圖50描繪圖在數位化後激勵之輸出的一個態樣。
圖51描繪圖在數位化後激勵之輸出的一個態樣。
圖52描繪電荷加法器電路。
圖53描繪電流加法器電路。
圖54描繪數位加法器電路。
圖55A及55B分別描繪數位位元至脈衝列轉換器及波形。
圖56描繪電源管理方法。
圖57描繪另一個電源管理方法。
圖58描繪另一個電源管理方法。
32:VMM陣列
33:非揮發性記憶體單元陣列
34:抹除閘極及字線閘極解碼器
35:控制閘極解碼器
36:位元線解碼器
37:源極線解碼器
38:差分加法器
39:激勵函數電路
Claims (28)
- 一種在向量矩陣乘法系統中對陣列的輸出讀取操作執行電源管理之方法,該陣列包括排成列與行的非揮發性記憶體單元,該方法包括:將該陣列組織成複數個組;在對該組的輸出讀取操作期間依序地提供輸入至該複數個組中之每一組;對應於該複數個組的輸出讀取操作,依序地接收輸出;以及組合該等輸出以產生該陣列之讀取輸出。
- 如請求項1之方法,其中,該組合步驟係藉由一轉換器電路來執行。
- 如請求項1之方法,其中,將該等輸入提供至該陣列之字線。
- 如請求項1之方法,其中,將該等輸入提供至該陣列之控制閘極。
- 如請求項2之方法,其中,該轉換器電路係一類比至數位轉換器。
- 如請求項5之方法,其中,該類比至數位轉換器係一積分類比至數位轉換器。
- 如請求項1之方法,其中,每一個輸入包括一個或多個脈衝。
- 如請求項1之方法,其中,該陣列包括數組神經元。
- 如請求項1之方法,其中,該等非揮發性記憶體單元係分離式閘極快閃記憶體單元。
- 如請求項1之方法,其中,該等非揮發性記憶體單元係堆疊式閘極快閃記憶體單元。
- 一種在向量矩陣乘法系統中對陣列的輸出讀取操作執行電源管理之方法,該陣列包括排成列與行的非揮發性記憶體單元,該方法包括:從該陣列接收複數個輸出;將來自該陣列之該複數個輸出組織成複數組輸出;將該複數組輸出中之每一組輸出依序地提供至一轉換器電路以產生每一組之讀取輸出;以及組合每一組之讀取輸出以產生該陣列之讀取輸出。
- 如請求項11之方法,其中,該轉換器電路係一類比至數位轉換器。
- 如請求項12之方法,其中,該類比至數位轉換器係一積分類比至數位轉換器。
- 如請求項11之方法,其中,該等非揮發性記憶體單元係分離式閘極快閃記憶體單元。
- 如請求項11之方法,其中,該等非揮發性記憶體單元係堆疊式閘極快閃記憶體單元。
- 如請求項11之方法,其中,從耦接至該陣列的一位元線接收該複數個輸出中之每一個輸出。
- 如請求項11之方法,其中,從耦接至該陣列的一源極線接收該複數個輸出中之每一個輸出。
- 如請求項11之方法,其中,該等非揮發性記憶體單元係分離式閘極快閃記憶體單元。
- 如請求項11之方法,其中,該等非揮發性記憶體單元係堆疊式閘極快閃記憶體單元。
- 一種在向量矩陣乘法系統中於陣列讀取操作上執行電源管理之方法,該向量矩陣乘法系統包括複數個陣列,該複數個陣列中之每一個陣列包括排成列與行之非揮發性記憶體單元,該方法包括:接收複數個輸入;以及依序地使該複數個陣列中之一個陣列能夠接收該複數個輸入中之一些以產生該陣列之陣列讀取輸出。
- 如請求項20之方法,其中,該向量矩陣乘法系統進一步包括輸出電路,以處理來自該複數個陣列之複數個輸出。
- 如請求項21之方法,其中,依序地啟用該等輸出電路。
- 如請求項21之方法,其中,該等輸出電路包括類比至數位轉換器。
- 如請求項20之方法,其中,該向量矩陣乘法系統進一步包括輸入電路,以處理該複數個輸入。
- 如請求項24之方法,其中,依序地啟用該等輸入電路。
- 如請求項25之方法,其中,該等輸入電路包括數位位元至脈衝轉換器。
- 如請求項25之方法,其中,該等輸入電路包括數位至類比轉換器。
- 如請求項20之方法,其中,對於一陣列未被啟用,該等陣列不會對陣列偏壓進行放電。
Applications Claiming Priority (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962794492P | 2019-01-18 | 2019-01-18 | |
US62/794,492 | 2019-01-18 | ||
US201962814813P | 2019-03-06 | 2019-03-06 | |
US62/814,813 | 2019-03-06 | ||
US16/354,040 | 2019-03-14 | ||
US16/354,040 US11409352B2 (en) | 2019-01-18 | 2019-03-14 | Power management for an analog neural memory in a deep learning artificial neural network |
USPCT/US19/50088 | 2019-09-06 | ||
PCT/US2019/050088 WO2020149890A1 (en) | 2019-01-18 | 2019-09-06 | Power management for an analog neural memory in a deep learning artificial neural network |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202032562A TW202032562A (zh) | 2020-09-01 |
TWI716222B true TWI716222B (zh) | 2021-01-11 |
Family
ID=71608372
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108145705A TWI716222B (zh) | 2019-01-18 | 2019-12-13 | 深度學習人工神經網路中之類比神經記憶體的電源管理 |
TW108145701A TWI737078B (zh) | 2019-01-18 | 2019-12-13 | 深度學習人工神經網路中的類比神經記憶體中用於將神經元電流轉換為基於神經元電流的時間脈衝之系統 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108145701A TWI737078B (zh) | 2019-01-18 | 2019-12-13 | 深度學習人工神經網路中的類比神經記憶體中用於將神經元電流轉換為基於神經元電流的時間脈衝之系統 |
Country Status (7)
Country | Link |
---|---|
US (2) | US11409352B2 (zh) |
EP (3) | EP3912103B1 (zh) |
JP (2) | JP7340612B2 (zh) |
KR (2) | KR102657246B1 (zh) |
CN (2) | CN113302629A (zh) |
TW (2) | TWI716222B (zh) |
WO (2) | WO2020149890A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI814383B (zh) * | 2021-05-19 | 2023-09-01 | 美商超捷公司 | 深度學習人工神經網路中類比神經記憶體的輸出電路 |
TWI843232B (zh) * | 2021-11-12 | 2024-05-21 | 美商超捷公司 | 決定施加至神經網路中的一或多個記憶體胞元的偏壓 |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10839894B2 (en) * | 2018-06-29 | 2020-11-17 | Taiwan Semiconductor Manufacturing Company Ltd. | Memory computation circuit and method |
US11023559B2 (en) | 2019-01-25 | 2021-06-01 | Microsemi Soc Corp. | Apparatus and method for combining analog neural net with FPGA routing in a monolithic integrated circuit |
CN112181895B (zh) * | 2020-09-02 | 2023-06-06 | 上海交通大学 | 可重构架构、加速器、电路部署和计算数据流方法 |
DE102020214359A1 (de) | 2020-11-16 | 2022-05-19 | Robert Bosch Gesellschaft mit beschränkter Haftung | Analog-Digital-Wandler und Matrixschaltungsanordnung |
JP7465797B2 (ja) | 2020-12-15 | 2024-04-11 | 株式会社日立製作所 | リザーバー計算機 |
WO2022146468A1 (en) * | 2021-01-01 | 2022-07-07 | Silicon Storage Technology, Inc. | Digital output mechanisms for analog neural memory in a deep learning artificial neural network |
US20220215239A1 (en) * | 2021-01-01 | 2022-07-07 | Silicon Storage Technology, Inc. | Digital output mechanisms for analog neural memory in a deep learning artificial neural network |
US20220374696A1 (en) * | 2021-05-18 | 2022-11-24 | Silicon Storage Technology, Inc. | Split array architecture for analog neural memory in a deep learning artificial neural network |
WO2022245382A1 (en) * | 2021-05-18 | 2022-11-24 | Silicon Storage Technology, Inc. | Split array architecture for analog neural memory in a deep learning artificial neural network |
KR102416605B1 (ko) * | 2021-08-17 | 2022-07-05 | 한국과학기술원 | 비트라인 멀티 레벨 전압 센싱 회로 |
CN113672854B (zh) * | 2021-08-25 | 2024-02-06 | 恒烁半导体(合肥)股份有限公司 | 一种基于电流镜和存储单元的存内运算方法、装置及其应用 |
JP7209068B1 (ja) * | 2021-10-19 | 2023-01-19 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置 |
WO2023162632A1 (ja) * | 2022-02-28 | 2023-08-31 | ヌヴォトンテクノロジージャパン株式会社 | ニューラルネットワーク演算回路、その制御回路、および、その制御方法 |
US20230317161A1 (en) * | 2022-03-31 | 2023-10-05 | Crossbar, Inc. | Matrix multiplication with resistive memory circuit having good substrate density |
US20230325650A1 (en) * | 2022-04-07 | 2023-10-12 | Silicon Storage Technology, Inc. | Vector-by-matrix-multiplication array utilizing analog outputs |
WO2023196002A1 (en) * | 2022-04-07 | 2023-10-12 | Silicon Storage Technology, Inc. | Vector-by-matrix-multiplication array utilizing analog outputs |
WO2023196000A1 (en) * | 2022-04-07 | 2023-10-12 | Silicon Storage Technology, Inc. | Vector-by-matrix-multiplication array utilizing analog inputs |
US20240112003A1 (en) * | 2022-09-22 | 2024-04-04 | Silicon Storage Technology, Inc. | Output circuit for artificial neural network array |
EP4358087A1 (de) | 2022-10-20 | 2024-04-24 | Semron GmbH | Anordnung einer pulsweiten gesteuerten vektor-matrix multiplikationseinheit mit kapazitiven elementen und verfahren zu dessen ansteuerung |
CN116136752B (zh) * | 2023-04-19 | 2023-06-30 | 上海登临科技有限公司 | 阵列输入策略的确定方法和系统 |
CN116185334B (zh) * | 2023-04-19 | 2023-07-04 | 上海登临科技有限公司 | 阵列电路的输入控制方法和阵列电路 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017131653A1 (en) * | 2016-01-27 | 2017-08-03 | Hewlett Packard Enterprise Development Lp | In situ transposition |
US20170337466A1 (en) * | 2016-05-17 | 2017-11-23 | Silicon Storage Technology, Inc. | Deep Learning Neural Network Classifier Using Non-volatile Memory Array |
Family Cites Families (132)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6153831A (ja) | 1984-08-24 | 1986-03-17 | Mitsubishi Electric Corp | アナログ入力回路 |
FR2603414B1 (fr) | 1986-08-29 | 1988-10-28 | Bull Sa | Amplificateur de lecture |
JPH06103782B2 (ja) | 1987-04-17 | 1994-12-14 | 日本シイエムケイ株式会社 | プリント配線板 |
US5055897A (en) | 1988-07-27 | 1991-10-08 | Intel Corporation | Semiconductor cell for neural network and the like |
US4904881A (en) | 1989-02-10 | 1990-02-27 | Intel Corporation | EXCLUSIVE-OR cell for neural network and the like |
JP3122756B2 (ja) | 1991-01-12 | 2001-01-09 | 直 柴田 | 半導体装置 |
US5621336A (en) | 1989-06-02 | 1997-04-15 | Shibata; Tadashi | Neuron circuit |
JPH0318985A (ja) | 1989-06-16 | 1991-01-28 | Hitachi Ltd | 情報処理装置 |
US5028810A (en) | 1989-07-13 | 1991-07-02 | Intel Corporation | Four quadrant synapse cell employing single column summing line |
US4961002A (en) | 1989-07-13 | 1990-10-02 | Intel Corporation | Synapse cell employing dual gate transistor structure |
KR920010344B1 (ko) | 1989-12-29 | 1992-11-27 | 삼성전자주식회사 | 반도체 메모리 어레이의 구성방법 |
US5242848A (en) | 1990-01-22 | 1993-09-07 | Silicon Storage Technology, Inc. | Self-aligned method of making a split gate single transistor non-volatile electrically alterable semiconductor memory device |
US5029130A (en) | 1990-01-22 | 1991-07-02 | Silicon Storage Technology, Inc. | Single transistor non-valatile electrically alterable semiconductor memory device |
WO1991018349A1 (en) | 1990-05-22 | 1991-11-28 | International Business Machines Corporation | Scalable flow virtual learning neurocomputer |
US5150450A (en) | 1990-10-01 | 1992-09-22 | The United States Of America As Represented By The Secretary Of The Navy | Method and circuits for neuron perturbation in artificial neural network memory modification |
US5214747A (en) | 1990-12-24 | 1993-05-25 | Eastman Kodak Company | Segmented neural network with daisy chain control |
US5146602A (en) | 1990-12-26 | 1992-09-08 | Intel Corporation | Method of increasing the accuracy of an analog neural network and the like |
US5138576A (en) | 1991-11-06 | 1992-08-11 | Altera Corporation | Method and apparatus for erasing an array of electrically erasable EPROM cells |
US7071060B1 (en) | 1996-02-28 | 2006-07-04 | Sandisk Corporation | EEPROM with split gate source side infection with sidewall spacers |
JP3103908B2 (ja) * | 1992-02-28 | 2000-10-30 | ソニー株式会社 | デジタル/アナログ変換回路 |
DE69319162T2 (de) | 1992-03-26 | 1999-03-25 | Hitachi Vlsi Engineering Corp., Kodaira, Tokio/Tokyo | Flash-Speicher |
US5336936A (en) | 1992-05-06 | 1994-08-09 | Synaptics, Incorporated | One-transistor adaptable analog storage element and array |
US5264734A (en) | 1992-05-19 | 1993-11-23 | Intel Corporation | Difference calculating neural network utilizing switched capacitors |
US5256911A (en) | 1992-06-10 | 1993-10-26 | Intel Corporation | Neural network with multiplexed snyaptic processing |
US5298796A (en) | 1992-07-08 | 1994-03-29 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Nonvolatile programmable neural network synaptic array |
JP2852989B2 (ja) * | 1992-10-05 | 1999-02-03 | ニッタン株式会社 | 異常報知システム |
US5386132A (en) | 1992-11-02 | 1995-01-31 | Wong; Chun C. D. | Multimedia storage system with highly compact memory device |
JP2835272B2 (ja) | 1993-12-21 | 1998-12-14 | 株式会社東芝 | 半導体記憶装置 |
KR0151623B1 (ko) | 1994-12-07 | 1998-10-01 | 문정환 | 이이피롬 셀 및 그 제조방법 |
US5825063A (en) | 1995-03-07 | 1998-10-20 | California Institute Of Technology | Three-terminal silicon synaptic device |
US6965142B2 (en) | 1995-03-07 | 2005-11-15 | Impinj, Inc. | Floating-gate semiconductor structures |
US5990512A (en) | 1995-03-07 | 1999-11-23 | California Institute Of Technology | Hole impact ionization mechanism of hot electron injection and four-terminal ρFET semiconductor structure for long-term learning |
US5554874A (en) | 1995-06-05 | 1996-09-10 | Quantum Effect Design, Inc. | Six-transistor cell with wide bit-line pitch, double words lines, and bit-line contact shared among four cells |
US5721702A (en) | 1995-08-01 | 1998-02-24 | Micron Quantum Devices, Inc. | Reference voltage generator using flash memory cells |
US5966332A (en) | 1995-11-29 | 1999-10-12 | Sanyo Electric Co., Ltd. | Floating gate memory cell array allowing cell-by-cell erasure |
DE69528386T2 (de) | 1995-12-01 | 2004-07-22 | Qinetiq Ltd. | Abbildungssystem |
US5748534A (en) | 1996-03-26 | 1998-05-05 | Invox Technology | Feedback loop for reading threshold voltage |
US6389404B1 (en) | 1998-12-30 | 2002-05-14 | Irvine Sensors Corporation | Neural processing module with input architectures that make maximal use of a weighted synapse array |
US6222777B1 (en) | 1999-04-09 | 2001-04-24 | Sun Microsystems, Inc. | Output circuit for alternating multiple bit line per column memory architecture |
US6232180B1 (en) * | 1999-07-02 | 2001-05-15 | Taiwan Semiconductor Manufacturing Corporation | Split gate flash memory cell |
JP3423267B2 (ja) * | 2000-01-27 | 2003-07-07 | 寛治 大塚 | ドライバ回路、レシーバ回路、および信号伝送バスシステム |
US6282119B1 (en) | 2000-06-02 | 2001-08-28 | Winbond Electronics Corporation | Mixed program and sense architecture using dual-step voltage scheme in multi-level data storage in flash memories |
US6829598B2 (en) | 2000-10-02 | 2004-12-07 | Texas Instruments Incorporated | Method and apparatus for modeling a neural synapse function by utilizing a single conventional MOSFET |
US6563167B2 (en) | 2001-01-05 | 2003-05-13 | Silicon Storage Technology, Inc. | Semiconductor memory array of floating gate memory cells with floating gates having multiple sharp edges |
US6563733B2 (en) | 2001-05-24 | 2003-05-13 | Winbond Electronics Corporation | Memory array architectures based on a triple-polysilicon source-side injection non-volatile memory cell |
JP2005522071A (ja) | 2002-03-22 | 2005-07-21 | ジョージア テック リサーチ コーポレイション | 浮遊ゲートアナログ回路 |
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 |
JP4174297B2 (ja) * | 2002-11-06 | 2008-10-29 | キヤノン株式会社 | 信号処理回路 |
JP2004171686A (ja) | 2002-11-20 | 2004-06-17 | Renesas Technology Corp | 不揮発性半導体記憶装置およびそのデータ消去方法 |
JP4601287B2 (ja) | 2002-12-26 | 2010-12-22 | ルネサスエレクトロニクス株式会社 | 不揮発性半導体記憶装置 |
US6822910B2 (en) | 2002-12-29 | 2004-11-23 | Macronix International Co., Ltd. | Non-volatile memory and operating method thereof |
US6781186B1 (en) | 2003-01-30 | 2004-08-24 | Silicon-Based Technology Corp. | Stack-gate flash cell structure having a high coupling ratio and its contactless flash memory arrays |
US6856551B2 (en) | 2003-02-06 | 2005-02-15 | Sandisk Corporation | System and method for programming cells in non-volatile integrated memory devices |
US6946894B2 (en) | 2003-06-12 | 2005-09-20 | Winbond Electronics Corporation | Current-mode synapse multiplier circuit |
JP4272967B2 (ja) | 2003-10-16 | 2009-06-03 | キヤノン株式会社 | 演算回路およびその動作制御方法 |
ATE542176T1 (de) | 2003-10-16 | 2012-02-15 | Canon Kk | Betriebsschaltung und betriebssteuerverfahren dafür |
TWI220560B (en) | 2003-10-27 | 2004-08-21 | Powerchip Semiconductor Corp | NAND flash memory cell architecture, NAND flash memory cell array, manufacturing method and operating method of the same |
JP4545423B2 (ja) | 2003-12-09 | 2010-09-15 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
JP2005348117A (ja) * | 2004-06-03 | 2005-12-15 | Matsushita Electric Ind Co Ltd | デジタル/アナログ変換回路 |
US7315056B2 (en) | 2004-06-07 | 2008-01-01 | Silicon Storage Technology, Inc. | Semiconductor memory array of floating gate memory cells with program/erase and select gates |
US7092290B2 (en) | 2004-11-16 | 2006-08-15 | Sandisk Corporation | High speed programming system with reduced over programming |
TWI270199B (en) | 2005-01-31 | 2007-01-01 | Powerchip Semiconductor Corp | Non-volatile memory and manufacturing method and operating method thereof |
US8443169B2 (en) | 2005-03-28 | 2013-05-14 | Gerald George Pechanek | Interconnection network connecting operation-configurable nodes according to one or more levels of adjacency in multiple dimensions of communication in a multi-processor and a neural processor |
US7627540B2 (en) | 2005-06-28 | 2009-12-01 | Neurosciences Research Foundation, Inc. | Addressing scheme for neural modeling and brain-based devices using special purpose processor |
US7304890B2 (en) | 2005-12-13 | 2007-12-04 | Atmel Corporation | Double byte select high voltage line for EEPROM memory block |
US7626868B1 (en) | 2007-05-04 | 2009-12-01 | Flashsilicon, Incorporation | Level verification and adjustment for multi-level cell (MLC) non-volatile memory (NVM) |
KR100910869B1 (ko) * | 2007-06-08 | 2009-08-06 | 주식회사 하이닉스반도체 | 테스트시 필요한 채널의 갯수를 줄인 반도체 메모리장치 |
US7733262B2 (en) | 2007-06-15 | 2010-06-08 | Micron Technology, Inc. | Quantizing circuits with variable reference signals |
US7630246B2 (en) | 2007-06-18 | 2009-12-08 | Micron Technology, Inc. | Programming rate identification and control in a solid state memory |
US20090039410A1 (en) | 2007-08-06 | 2009-02-12 | Xian Liu | Split Gate Non-Volatile Flash Memory Cell Having A Floating Gate, Control Gate, Select Gate And An Erase Gate With An Overhang Over The Floating Gate, Array And Method Of Manufacturing |
US7894267B2 (en) | 2007-10-30 | 2011-02-22 | Spansion Llc | Deterministic programming algorithm that provides tighter cell distributions with a reduced number of programming pulses |
JP5025436B2 (ja) * | 2007-11-29 | 2012-09-12 | 京セラ株式会社 | 基地局および無線通信方法 |
US7746698B2 (en) | 2007-12-13 | 2010-06-29 | Spansion Llc | Programming in memory devices using source bitline voltage bias |
JP4513865B2 (ja) | 2008-01-25 | 2010-07-28 | セイコーエプソン株式会社 | 並列演算装置および並列演算方法 |
JP2009211153A (ja) * | 2008-02-29 | 2009-09-17 | Toshiba Corp | メモリ装置、情報処理装置及び電力制御方法 |
JP2010267341A (ja) | 2009-05-15 | 2010-11-25 | Renesas Electronics Corp | 半導体装置 |
US8204927B1 (en) | 2010-03-15 | 2012-06-19 | California Institute Of Technology | System and method for cognitive processing for data fusion |
JP5300773B2 (ja) | 2010-03-29 | 2013-09-25 | ルネサスエレクトロニクス株式会社 | 不揮発性半導体記憶装置 |
US9665822B2 (en) | 2010-06-30 | 2017-05-30 | International Business Machines Corporation | Canonical spiking neuron network for spatiotemporal associative memory |
US8325521B2 (en) | 2010-10-08 | 2012-12-04 | Taiwan Semiconductor Manufacturing Company, Ltd. | Structure and inhibited operation of flash memory with split gate |
US8473439B2 (en) | 2010-12-08 | 2013-06-25 | International Business Machines Corporation | Integrate and fire electronic neurons |
US8892487B2 (en) | 2010-12-30 | 2014-11-18 | International Business Machines Corporation | Electronic synapses for reinforcement learning |
JP2013041654A (ja) | 2011-08-19 | 2013-02-28 | Toshiba Corp | 不揮発性記憶装置 |
US8909576B2 (en) | 2011-09-16 | 2014-12-09 | International Business Machines Corporation | Neuromorphic event-driven neural computing architecture in a scalable neural network |
US8760955B2 (en) | 2011-10-21 | 2014-06-24 | Taiwan Semiconductor Manufacturing Company, Ltd. | Electrical fuse memory arrays |
WO2014021150A1 (ja) | 2012-07-31 | 2014-02-06 | シャープ株式会社 | 表示装置およびその駆動方法 |
US9466732B2 (en) | 2012-08-23 | 2016-10-11 | Silicon Storage Technology, Inc. | Split-gate memory cell with depletion-mode floating gate channel, and method of making same |
US9153230B2 (en) | 2012-10-23 | 2015-10-06 | Google Inc. | Mobile speech recognition hardware accelerator |
CN103000218A (zh) | 2012-11-20 | 2013-03-27 | 上海宏力半导体制造有限公司 | 存储器电路 |
US9275748B2 (en) | 2013-03-14 | 2016-03-01 | Silicon Storage Technology, Inc. | Low leakage, low threshold voltage, split-gate flash cell operation |
WO2015001697A1 (ja) | 2013-07-04 | 2015-01-08 | パナソニックIpマネジメント株式会社 | ニューラルネットワーク回路、およびその学習方法 |
US10248675B2 (en) | 2013-10-16 | 2019-04-02 | University Of Tennessee Research Foundation | Method and apparatus for providing real-time monitoring of an artifical neural network |
US20150213898A1 (en) | 2014-01-27 | 2015-07-30 | Silicon Storage Technololgy, Inc. | Byte Erasable Non-volatile Memory Architecture And Method Of Erasing Same |
US20150324691A1 (en) | 2014-05-07 | 2015-11-12 | Seagate Technology Llc | Neural network connections using nonvolatile memory devices |
US9418744B2 (en) * | 2014-05-12 | 2016-08-16 | Silicon Storage Technology, Inc. | System and method to reduce disturbances during programming of flash memory cells |
US9286982B2 (en) | 2014-08-08 | 2016-03-15 | Silicon Storage Technology, Inc. | Flash memory system with EEPROM functionality |
US9760533B2 (en) | 2014-08-14 | 2017-09-12 | The Regents On The University Of Michigan | Floating-gate transistor array for performing weighted sum computation |
US9984754B2 (en) | 2014-09-29 | 2018-05-29 | Toshiba Memory Corporation | Memory device and method for operating the same |
US10312248B2 (en) | 2014-11-12 | 2019-06-04 | Silicon Storage Technology, Inc. | Virtual ground non-volatile memory array |
EP3035204B1 (en) * | 2014-12-19 | 2018-08-15 | Intel Corporation | Storage device and method for performing convolution operations |
US9361991B1 (en) | 2014-12-23 | 2016-06-07 | Sandisk Technologies Inc. | Efficient scanning of nonvolatile memory blocks |
CN104615909B (zh) | 2015-02-02 | 2018-02-13 | 天津大学 | 基于FPGA的Izhikevich神经元网络同步放电仿真平台 |
CN105990367B (zh) | 2015-02-27 | 2019-03-12 | 硅存储技术公司 | 具有rom单元的非易失性存储器单元阵列 |
US20170330070A1 (en) * | 2016-02-28 | 2017-11-16 | Purdue Research Foundation | Spin orbit torque based electronic neuron |
US10311958B2 (en) | 2016-05-17 | 2019-06-04 | Silicon Storage Technology, Inc. | Array of three-gate flash memory cells with individual memory cell read, program and erase |
US10269440B2 (en) | 2016-05-17 | 2019-04-23 | Silicon Storage Technology, Inc. | Flash memory array with individual memory cell read, program and erase |
CN107425003B (zh) | 2016-05-18 | 2020-07-14 | 硅存储技术公司 | 制造分裂栅非易失性闪存单元的方法 |
US9910827B2 (en) * | 2016-07-01 | 2018-03-06 | Hewlett Packard Enterprise Development Lp | Vector-matrix multiplications involving negative values |
US10042819B2 (en) * | 2016-09-29 | 2018-08-07 | Hewlett Packard Enterprise Development Lp | Convolution accelerators |
US10346347B2 (en) | 2016-10-03 | 2019-07-09 | The Regents Of The University Of Michigan | Field-programmable crossbar array for reconfigurable computing |
WO2018106969A1 (en) * | 2016-12-09 | 2018-06-14 | Hsu Fu Chang | Three-dimensional neural network array |
US10860923B2 (en) | 2016-12-20 | 2020-12-08 | Samsung Electronics Co., Ltd. | High-density neuromorphic computing element |
JP6941943B2 (ja) | 2017-02-01 | 2021-09-29 | 日本放送協会 | 予測装置およびプログラム |
JP6906058B2 (ja) | 2017-02-24 | 2021-07-21 | エーエスエムエル ネザーランズ ビー.ブイ. | 機械学習によるプロセスモデルの決定方法 |
US10748059B2 (en) | 2017-04-05 | 2020-08-18 | International Business Machines Corporation | Architecture for an electrochemical artificial neural network |
WO2018215188A1 (en) | 2017-05-26 | 2018-11-29 | Asml Netherlands B.V. | Assist feature placement based on machine learning |
US10460817B2 (en) | 2017-07-13 | 2019-10-29 | Qualcomm Incorporated | Multiple (multi-) level cell (MLC) non-volatile (NV) memory (NVM) matrix circuits for performing matrix computations with multi-bit input vectors |
US10482929B2 (en) | 2017-07-13 | 2019-11-19 | Qualcomm Incorporated | Non-volative (NV) memory (NVM) matrix circuits employing NVM matrix circuits for performing matrix computations |
US10580492B2 (en) | 2017-09-15 | 2020-03-03 | Silicon Storage Technology, Inc. | System and method for implementing configurable convoluted neural networks with flash memories |
CN109522753B (zh) | 2017-09-18 | 2020-11-06 | 清华大学 | 电路结构及其驱动方法、芯片及其认证方法、电子设备 |
US10303998B2 (en) | 2017-09-28 | 2019-05-28 | International Business Machines Corporation | Floating gate for neural network inference |
US11087207B2 (en) * | 2018-03-14 | 2021-08-10 | Silicon Storage Technology, Inc. | Decoders for analog neural memory in deep learning artificial neural network |
US11354562B2 (en) | 2018-01-03 | 2022-06-07 | Silicon Storage Technology, Inc. | Programmable neuron for analog non-volatile memory in deep learning artificial neural network |
US10552510B2 (en) | 2018-01-11 | 2020-02-04 | Mentium Technologies Inc. | Vector-by-matrix multiplier modules based on non-volatile 2D and 3D memory arrays |
US10740181B2 (en) * | 2018-03-06 | 2020-08-11 | Western Digital Technologies, Inc. | Failed storage device rebuild method |
US10496374B2 (en) * | 2018-03-22 | 2019-12-03 | Hewlett Packard Enterprise Development Lp | Crossbar array operations using ALU modified signals |
US10217512B1 (en) | 2018-05-15 | 2019-02-26 | International Business Machines Corporation | Unit cell with floating gate MOSFET for analog memory |
US10692570B2 (en) | 2018-07-11 | 2020-06-23 | Sandisk Technologies Llc | Neural network matrix multiplication in memory cells |
US11061646B2 (en) | 2018-09-28 | 2021-07-13 | Intel Corporation | Compute in memory circuits with multi-Vdd arrays and/or analog multipliers |
US10891222B2 (en) * | 2018-12-24 | 2021-01-12 | Macronix International Co., Ltd. | Memory storage device and operation method thereof for implementing inner product operation |
US11270763B2 (en) | 2019-01-18 | 2022-03-08 | Silicon Storage Technology, Inc. | Neural network classifier using array of three-gate non-volatile memory cells |
US10741611B1 (en) | 2019-02-11 | 2020-08-11 | International Business Machines Corporation | Resistive processing units with complementary metal-oxide-semiconductor non-volatile analog memory |
-
2019
- 2019-03-14 US US16/354,040 patent/US11409352B2/en active Active
- 2019-03-14 US US16/353,830 patent/US11500442B2/en active Active
- 2019-09-06 KR KR1020217023620A patent/KR102657246B1/ko active IP Right Grant
- 2019-09-06 WO PCT/US2019/050088 patent/WO2020149890A1/en unknown
- 2019-09-06 JP JP2021541296A patent/JP7340612B2/ja active Active
- 2019-09-06 KR KR1020217023621A patent/KR102599243B1/ko active IP Right Grant
- 2019-09-06 CN CN201980089071.4A patent/CN113302629A/zh active Pending
- 2019-09-06 JP JP2021541295A patent/JP7346579B2/ja active Active
- 2019-09-06 EP EP19773599.6A patent/EP3912103B1/en active Active
- 2019-09-06 EP EP19773293.6A patent/EP3912102B1/en active Active
- 2019-09-06 CN CN201980089081.8A patent/CN113316793A/zh active Pending
- 2019-09-06 EP EP23174482.2A patent/EP4235671A3/en active Pending
- 2019-09-06 WO PCT/US2019/049922 patent/WO2020149889A1/en unknown
- 2019-12-13 TW TW108145705A patent/TWI716222B/zh active
- 2019-12-13 TW TW108145701A patent/TWI737078B/zh active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017131653A1 (en) * | 2016-01-27 | 2017-08-03 | Hewlett Packard Enterprise Development Lp | In situ transposition |
US20170337466A1 (en) * | 2016-05-17 | 2017-11-23 | Silicon Storage Technology, Inc. | Deep Learning Neural Network Classifier Using Non-volatile Memory Array |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI814383B (zh) * | 2021-05-19 | 2023-09-01 | 美商超捷公司 | 深度學習人工神經網路中類比神經記憶體的輸出電路 |
TWI843232B (zh) * | 2021-11-12 | 2024-05-21 | 美商超捷公司 | 決定施加至神經網路中的一或多個記憶體胞元的偏壓 |
Also Published As
Publication number | Publication date |
---|---|
JP7346579B2 (ja) | 2023-09-19 |
EP3912102A1 (en) | 2021-11-24 |
JP2022517810A (ja) | 2022-03-10 |
EP4235671A3 (en) | 2023-09-13 |
JP7340612B2 (ja) | 2023-09-07 |
US20200233482A1 (en) | 2020-07-23 |
KR102657246B1 (ko) | 2024-04-12 |
WO2020149889A1 (en) | 2020-07-23 |
TW202032562A (zh) | 2020-09-01 |
EP3912102B1 (en) | 2023-06-14 |
EP4235671A2 (en) | 2023-08-30 |
US11500442B2 (en) | 2022-11-15 |
US11409352B2 (en) | 2022-08-09 |
EP3912103B1 (en) | 2023-07-05 |
CN113316793A (zh) | 2021-08-27 |
KR102599243B1 (ko) | 2023-11-06 |
CN113302629A (zh) | 2021-08-24 |
TWI737078B (zh) | 2021-08-21 |
KR20210107100A (ko) | 2021-08-31 |
TW202032561A (zh) | 2020-09-01 |
JP2022523291A (ja) | 2022-04-22 |
WO2020149890A1 (en) | 2020-07-23 |
US20200234111A1 (en) | 2020-07-23 |
KR20210107101A (ko) | 2021-08-31 |
EP3912103A1 (en) | 2021-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI716222B (zh) | 深度學習人工神經網路中之類比神經記憶體的電源管理 | |
TWI799006B (zh) | 讀取選定非揮發性記憶體單元之方法 | |
TW202044123A (zh) | 用於深度學習人工神經網路中之類比神經記憶體的可組態輸入塊及輸出塊與實體佈局 | |
US11893478B2 (en) | Programmable output blocks for analog neural memory in a deep learning artificial neural network | |
TWI814383B (zh) | 深度學習人工神經網路中類比神經記憶體的輸出電路 | |
US20210118894A1 (en) | Input and digital output mechanisms for analog neural memory in a deep learning artificial neural network | |
TWI841981B (zh) | 深度學習人工神經網路中類比神經記憶體的可程式輸出區塊 | |
TW202230376A (zh) | 深度學習人工神經網路中類比神經記憶體之輸入及數位輸出機制 |