TW202230376A - 深度學習人工神經網路中類比神經記憶體之輸入及數位輸出機制 - Google Patents
深度學習人工神經網路中類比神經記憶體之輸入及數位輸出機制 Download PDFInfo
- Publication number
- TW202230376A TW202230376A TW110144304A TW110144304A TW202230376A TW 202230376 A TW202230376 A TW 202230376A TW 110144304 A TW110144304 A TW 110144304A TW 110144304 A TW110144304 A TW 110144304A TW 202230376 A TW202230376 A TW 202230376A
- Authority
- TW
- Taiwan
- Prior art keywords
- input
- output
- memory cell
- bit
- cell
- 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 OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
- G06N3/065—Analogue means
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- 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/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/24—Bit-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/30—Power supply circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits or methods to verify correct programming of nonvolatile memory cells
-
- G—PHYSICS
- 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)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Neurology (AREA)
- Theoretical Computer Science (AREA)
- Molecular Biology (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
- Non-Volatile Memory (AREA)
- Semiconductor Memories (AREA)
- Image Analysis (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Reduction Or Emphasis Of Bandwidth Of Signals (AREA)
- Feedback Control In General (AREA)
- Networks Using Active Elements (AREA)
Abstract
揭示用於讀取或驗證一值之多個具體例,該值儲存在一人工神經網路中之一向量矩陣乘法(VMM)陣列中之一選定記憶體單元中。在一個具體例中,一輸入包含一組輸入位元,其產生應用於該選定記憶體單元之一終端之一系列輸入信號,進一步產生一系列輸出信號,該等輸出信號經數位化、基於該組輸入位元中之對應的輸入位元之位元位置而移位且經相加以產生指示儲存在該選定記憶體單元中之一值的一輸出。
Description
[優先權主張]本申請案主張2020年12月23日提交且名為「Input and Digital Output Mechanisms for Analog Neural Memory in a Deep Learning Artificial Neural Network」之美國專利申請案第17/133,395號之優先權,該美國專利申請案為2020年7月2日提交且名為「Precision Tuning for the Programming of Analog Neural Memory in a Deep Learning Artificial Neural Network」之美國專利申請案第16/919,697號之部分接續,其為2018年12月21日提交且名為「Precision Tuning for the Programming of Analog Neural Memory in a Deep Learning Artificial Neural Network」美國專利申請案第16/231,231號之延續部分,其主張2018年10月16日提交且名為「Precision Tuning For the Programming Of Analog Neural Memory In A Deep Learning Artificial Neural Network」之美國臨時專利申請案第62/746,470號之優先權,以上各者以引用的方式併入本文中。
揭示輸入及輸出機制的多個具體例,該等輸入及輸出機制用於讀取或驗證人工神經網路中之向量矩陣乘法(VMM)陣列內之非揮發性記憶體單元。
人工神經網路模擬生物神經網路(動物之中樞神經系統,特定而言為大腦)且用以估計或估算可取決於大量輸入且通常未知之功能。人工神經網路大體上包括彼此交換訊息之互連「神經元」層。
圖1說明人工神經網路,其中圓圈表示神經元之輸入或層。連接(被稱作突觸)由箭頭表示,且具有可基於經驗進行調校之數值權重。此使得神經網路適應於輸入且能夠學習。典型地,神經網路包括一層多個輸入。通常存在一或多個中間神經元層及提供神經網路之輸出的輸出神經元層。各層級處之神經元基於自突觸所接收之資料而個別地或共同地作出決策。
用於高效能資訊處理之人工神經網路之發展中的主要挑戰之一在於缺乏充分的硬體技術。實際上,切實可行的神經網路依賴於極大量數目之突觸,從而實現神經元之間的高連接性,亦即極高計算並行性。原則上,此複雜性可利用數位超級電腦或專門圖形處理單元叢集來達成。然而,除高成本之外,與生物網路相比,此等方法亦受中等能效困擾,主要因為生物網路執行低精確度類比計算,所以其消耗少得多的能量。CMOS類比電路已用於人工神經網路,但鑒於大量神經元及突觸,大多數CMOS實施突觸已過於龐大。
申請人先前在以引用的方式併入之美國專利申請案第15/594,439號中揭示了利用一或多個非揮發性記憶體陣列作為突觸之人工(類比)神經網路。非揮發性記憶體陣列用作類比神經形態記憶體。神經網路裝置包括:第一複數個突觸,該第一複數個突觸經組態以接收第一複數個輸入且自該第一複數個輸入產生第一複數個輸出;及第一複數個神經元,其經組態以接收第一複數個輸出。第一複數個突觸包括複數個記憶體單元,其中該等記憶體單元中之每一者包括:形成於半導體基板中之間隔開的源極區及汲極區,其中通道區在源極區與汲極區之間延伸;浮動閘極,其安置於通道區之第一部分上方且與該第一部分絕緣;以及非浮動閘極,其安置於通道區之第二部分上方且與該第二部分絕緣。複數個記憶體單元中之每一者經組態以儲存對應於浮動閘極上之電子數目的權重值。該複數個記憶體單元經組態以將第一複數個輸入乘以所儲存權重值以產生第一複數個輸出。
類比神經形態記憶體系統中使用之每一非揮發性記憶體單元必須經抹除及程式化以在浮動閘極中保持極特定且精確的電荷量,亦即,電子數目。舉例而言,每一浮動閘極必須保持N個不同值中之一者,其中N為可由每一單元指示之不同權重之數目。N之實例包括16、32、64、128及256。
因為一個VMM之輸出通常將需要應用於另一VMM,所以在VMM系統中需要能夠將VMM之輸出轉換成位元且將輸入位元應用於另一VMM。接著出現了一個挑戰,亦即如何最佳地實施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。
記憶體單元210藉由將高的正電壓置放於字線終端22上來抹除(其中電子自浮動閘極移除),此使得浮動閘極20上之電子經由富爾-諾罕(Fowler-Nordheim)穿隧自浮動閘極20穿過中間絕緣物穿隧至字線終端22。
記憶體單元210藉由將正電壓置放於字線終端22上且將正電壓置放於源極區14上來程式化(其中電子置放於浮動閘極上)。電子電流將自源極區14朝向汲極區16流動。當電子到達字線終端22與浮動閘極20之間的間隙時,該等電子將加速並且被加熱。經加熱電子中之一些將由於來自浮動閘極20之吸引靜電力而穿過閘極氧化物注入至浮動閘極20上。
記憶體單元210係藉由將正讀取電壓置放於汲極區16及字線終端22上來讀取(此接通通道區18之在字線終端下方的部分)。若浮動閘極20帶正電(亦即,電子經抹除),則通道區18之在浮動閘極20下方的部分亦接通,且電流將跨越通道區18流動,此被感測為抹除或「1」狀態。若浮動閘極20帶負電(亦即,用電子程式化),則通道區之在浮動閘極20下方的部分大部分或完全斷開,且電流將不流過(或將有極少電流流過)通道區18,此被感測為經程式化或「0」狀態。
表1描繪可施加至記憶體單元110之終端以用於執行讀取、抹除及程式化操作的典型電壓範圍:
表1:圖3之快閃記憶體單元210之操作
| WL | BL | SL | |
| 讀取 | 2-3V | 0.6-2V | 0V |
| 抹除 | ~11-13V | 0V | 0V |
| 程式化 | 1-2V | 1-3µA | 9-10V |
其他分離閘記憶體單元組態為吾人所知,該等分離閘記憶體單元組態係其他類型的快閃記憶體單元。舉例而言,圖3描繪四閘極記憶體單元310,其包含源極區14、汲極區16、在通道區18之第一部分上方的浮動閘極20、在通道區18之第二部分上方的選擇閘極22 (通常耦接至字線WL)、在浮動閘極20上方之控制閘極28,及在源極區14上方之抹除閘極30。此組態描述於美國專利6,747,310中,其出於所有目的以引用之方式併入本文中。此處,除浮動閘極20之外,所有閘極皆為非浮動閘極,意謂該等閘極電連接或可電連接至電壓源。程式化係藉由來自通道區18之經加熱電子將自身注入至浮動閘極20上來執行。抹除係藉由電子自浮動閘極20穿隧至抹除閘極30來執行。
表2描繪可施加至記憶體單元310之終端以用於執行讀取、抹除及程式化操作的典型電壓範圍:
表2:圖3之快閃記憶體單元310之操作
| 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 |
圖4描繪三閘極記憶體單元410,其為另一類型之快閃記憶體單元。記憶體單元410與圖3之記憶體單元310相同,不同之處在於記憶體單元410不具有單獨控制閘極。抹除操作(其中經由使用抹除閘極來進行抹除)及讀取操作類似於圖3之抹除操作及讀取操作,不同之處在於未施加控制閘極偏壓。程式化操作亦在無控制閘極偏壓之情況下進行,且因此,在程式化操作期間必須在源極線上施加較高電壓以補償缺少控制閘極偏壓。
表3描繪可施加至記憶體單元410之終端以用於執行讀取、抹除及程式化操作的典型電壓範圍:
表3:圖4之快閃記憶體單元410之操作
| 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 |
圖5描繪堆疊閘極記憶體單元510,其為另一類型之快閃記憶體單元。記憶體單元510類似於圖2之記憶體單元210,不同之處在於浮動閘極20在整個通道區18上方延伸,且控制閘極22 (其在此處將耦接至字線)在浮動閘極20上方延伸,浮動閘極藉由絕緣層(圖中未示)與控制閘極間隔開。抹除、程式化及讀取操作以與先前針對記憶體單元210所描繪之方式類似的方式操作。
表4描繪可施加至記憶體單元510之終端及基板12以用於執行讀取、抹除及程式化操作之典型的電壓範圍:
表4:圖5之快閃記憶體單元510之操作
| 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個不同值)中之一者,此允許對記憶體陣列中之所有單元進行極精確且個別的調校,且此使得記憶體陣列對於儲存神經網路之突觸權重及對該等突觸權重進行精細調校調整係理想的。
採用非揮發性記憶體單元陣列之神經網路
圖6在概念上說明利用本發明具體例之非揮發性記憶體陣列的神經網路之非限制性實例。此實例將非揮發性記憶體陣列神經網路用於面部辨識應用,但任何其他適當應用皆可使用基於非揮發性記憶體陣列之神經網路來實施。
S0為輸入層,對於此實例,該輸入層為具有5位元精確度之32×32像素RGB影像(亦即,三個32×32像素陣列,每種色彩R、G及B一個陣列,每一像素為5位元精確度)。自輸入層S0行進至層C1之突觸CB1在一些情況下應用不同權重集合且在其他情況下共用權重,且用3×3像素重疊濾波器(核心)掃描輸入影像,使濾波器移位1個像素(或多於1個像素,如由模型指定)。具體言之,將影像(亦即,被稱作濾波器或核心)之3×3部分中之9個像素的值提供至突觸CB1,在該等突觸中將此等9個輸入值乘以適當權重,且在對彼乘法之輸出進行求和之後,單個輸出值由第一突觸CB1判定及提供以用於產生特徵圖層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個神經元,其中最高輸出神經元判定類別。此輸出可例如指示原始影像之內容之識別或分類。
每一突觸層係使用非揮發性記憶體單元之陣列或陣列之一部分來實施。
圖7為可用於彼目的之陣列的方塊圖。向量矩陣乘法(VMM)陣列32包括非揮發性記憶體單元,且用作一個層與下一層之間的突觸(諸如圖6中之CB1、CB2、CB3及CB4)。具體言之,VMM陣列32包括非揮發性記憶體單元陣列33、抹除閘極及字線閘極解碼器34、控制閘極解碼器35、位元線解碼器36及源極線解碼器37,該等構件對非揮發性記憶體單元陣列33之各別輸入進行解碼。至VMM陣列32之輸入可來自抹除閘極及字線閘極解碼器34或來自控制閘極解碼器35。在此實例中,源極線解碼器37亦對非揮發性記憶體單元陣列33之輸出進行解碼。替代地,位元線解碼器36可解碼非揮發性記憶體單元陣列33之輸出。
非揮發性記憶體單元陣列33用於兩個目的。首先,其儲存將由VMM陣列32使用之權重。其次,非揮發性記憶體單元陣列33有效地使輸入乘以儲存於非揮發性記憶體單元陣列33中之權重,且按輸出線(源極線或位元線)將結果相加以產生輸出,該輸出將為至下一層之輸入或至最終層之輸入。藉由執行乘法及加法函數,非揮發性記憶單元陣列33消除對分開的乘法及加法邏輯電路之需求,且由於其就地記憶體計算而亦為功率高效的。
將非揮發性記憶體單元陣列33之輸出供應至差分求和器(諸如求和運算放大器或求和電流鏡) 38,其對非揮發性記憶體單元陣列33之輸出求和以創建用於彼卷積之單一值。差分求和器38經配置以執行正權重及負權重之求和。
接著將差分求和器38之經求和輸出值供應至激發函數電路39,該電路對輸出進行整流。激發函數電路39可提供S型、雙曲正切或ReLU函數。激發函數電路39之經整流輸出值變成下一層(例如圖6中之C1)之特徵圖之元素,且隨後應用於下一突觸以產生下一特徵圖層或最終層。因此,在此實例中,非揮發性記憶體單元陣列33構成複數個突觸(其自前一神經元層或自諸如影像資料庫之輸入層接收該等突觸之輸入),且求和運算放大器38及激發函數電路39構成複數個神經元。
至圖7中之VMM陣列32之輸入(WLx、EGx、CGx,且視情況BLx及SLx)可為類比層級、二進位層級或數位位元(在此狀況下,DAC經提供以將數位位元轉換為適當的輸入類比層級),且該輸出可為類比層級、二進位層級或數位位元(在此狀況下,輸出ADC經提供以將輸出類比層級轉換為數位位元)。
圖8為描繪VMM陣列32 (此處標記為VMM陣列32a、32b、32c、32d及32e)之眾多層之使用的方塊圖。如圖8中所展示,表示為Inputx之輸入由數位至類比轉換器31自數位轉換至類比,且經提供至輸入VMM陣列32a。經轉換之類比輸入可為電壓或電流。第一層之輸入D/A轉換可藉由使用函數或LUT (查找表)來進行,該函數或LUT將輸入Inputx映射至用於輸入VMM陣列32a之矩陣乘法器的適當類比層級。輸入轉換亦可由類比至類比(A/A)轉換器進行以將外部類比輸入轉換為至輸入VMM陣列32a之經映射類比輸入。
由輸入VMM陣列32a產生之輸出經提供為至下一VMM陣列(隱藏層級1) 32b之輸入,該輸入又產生經提供為至下一VMM陣列(隱藏層級2) 32c之輸入的輸出,等等。VMM陣列32之各種層充當卷積神經網路(convolutional neural network;CNN)之突觸及神經元的不同層。每一VMM陣列32a、32b、32c、32d及32e可為獨立、實體非揮發性記憶體陣列,或多個VMM陣列可利用同一實體非揮發性記憶體陣列之不同部分,或多個VMM陣列可利用同一實體非揮發性記憶體陣列之重疊部分。圖8中所展示之實例含有五個層(32a、32b、32c、32d、32e):一個輸入層(32a)、兩個隱藏層(32b、32c)及兩個完全連接層(32d、32e)。一般熟習此項技術者將瞭解,此僅為例示性的,且系統替代地可包含多於兩個隱藏層及多於兩個完全連接層。
向量矩陣乘法(VMM)陣列
圖9描繪神經元VMM陣列900,其尤其適合於如圖3中所展示之記憶體單元310,且用作輸入層與下一層之間的突觸及神經元部分。VMM陣列900包含非揮發性記憶體單元之記憶體陣列901及非揮發性參考記憶體單元之參考陣列902 (在陣列之頂部處)。替代地,另一參考陣列可置放於底部處。
在VMM陣列900中,控制閘極線(諸如控制閘極線903)在豎直方向上延伸(因此,列方向上之參考陣列902與控制閘極線903正交),且抹除閘極線(諸如抹除閘極線904)在水平方向上延伸。此處,至VMM陣列900之輸入提供於控制閘極線(CG0、CG1、CG2、CG3)上,且VMM陣列900之輸出出現於源極線(SL0、SL1)上。在一個具體例中,僅使用偶數列,且在另一具體例中,僅使用奇數列。置放於每一源極線(分別為SL0、SL1)上之電流對來自連接至彼特定源極線之記憶體單元的所有電流執行求和函數。
如本文中針對神經網路所描述,VMM陣列900之非揮發性記憶體單元,亦即,VMM陣列900之快閃記憶體,較佳經組態以在次臨限區中操作。
本文中所描述之非揮發性參考記憶體單元及非揮發性記憶體單元在弱反轉(weak inversion)中經偏壓:
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 = β* (Vgs-Vth)*Vds;β = u*Cox*W/L
W = α (Vgs-Vth)
字線或控制閘極或位元線或源極線可用作在線性區中操作之記憶體單元的輸入。
對於I至V線性轉換器,記憶體單元(諸如,參考記憶體單元或周邊記憶體單元)或在線性區中操作之電晶體可用以將輸入/輸出電流線性地轉換成輸入/輸出電壓。
用於圖7之VMM陣列32的其他具體例描繪於美國專利申請案第15/826,345號中,該申請案以引用之方式併入本文中。如彼申請案中所描繪,源極線或位元線可用作神經元輸出(電流求和輸出)。
圖10描繪神經元VMM陣列1000,其尤其適合於如圖2中所展示之記憶體單元210,且用作輸入層與下一層之間的突觸。VMM陣列1000包含非揮發性記憶體單元之記憶體陣列1003、第一非揮發性參考記憶體單元之參考陣列1001及第二非揮發性參考記憶體單元之參考陣列1002。配置於陣列之行方向上的參考陣列1001及1002用以將流動至終端BLR0、BLR1、BLR2及BLR3中之電流輸入轉換成電壓輸入WL0、WL1、WL2及WL3。實際上,第一及第二非揮發性參考記憶體單元為二極體連接之貫穿多工器1014 (僅部分描繪),其中電流輸入流動至該等多工器中。參考單元經調校(例如,經程式化)至目標參考位準。目標參考位準由參考迷你陣列矩陣(未示出)提供。
記憶體陣列1003用於兩個目的。首先,其儲存將由VMM陣列1000在其各別記憶體單元上使用之權重。其次,記憶體陣列1003有效地使輸入(亦即,在終端BLR0、BLR1、BLR2及BLR3中提供之電流輸入,其由參考陣列1001及1002轉換成輸入電壓以供應至字線WL0、WL1、WL2及WL3)乘以儲存於記憶體陣列1003中之權重,且隨後將所有結果(記憶體單元電流)相加以在各別位元線(BL0至BLN)上產生輸出,該輸出將為至下一層之輸入或至最終層之輸入。藉由執行乘法及加法函數,記憶體陣列1003消除了對單獨的乘法及加法邏輯電路之需要,且亦為功率高效的。此處,電壓輸入設置於字線WL0、WL1、WL2及WL3上,且輸出在讀取(推理)操作期間出現於各別位元線BL0至BLN上。置放於位元線BL0至BLN中之每一者上之電流對來自連接至彼特定位元線之所有非揮發性記憶體單元的電流執行求和函數。
表5描繪用於VMM陣列1000之操作電壓。表中之行指示置放於以下各者上之電壓:用於選定單元之字線、用於未選定單元之字線、用於選定單元之位元線、用於未選定單元之位元線、用於選定單元之源極線及用於未選定單元之源極線。列指示讀取、抹除及程式化之操作。
表5:圖10之VMM陣列1000之操作
| WL | WL -未選定 | BL | BL -未選定 | SL | SL -未選定 | |
| 讀取 | 1-3.5V | -0.5V/0V | 0.6-2V (Ineuron) | 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 |
圖11描繪神經元VMM陣列1100,其尤其適合於如圖2中所展示之記憶體單元210,且用作輸入層與下一層之間的突觸及神經元部分。VMM陣列1100包含非揮發性記憶體單元之記憶體陣列1103、第一非揮發性參考記憶體單元之參考陣列1101及第二非揮發性參考記憶體單元之參考陣列1102。參考陣列1101及1102在VMM陣列1100之列方向上延伸。VMM陣列類似於VMM 1000,除了在VMM陣列1100中,字線在豎直方向上延伸之外。此處,輸入提供於字線(WLA0、WLB0、WLA1、WLB2、WLA2、WLB2、WLA3、WLB3)上,且輸出在讀取操作期間出現於源極線(SL0、SL1)上。置放於每一源極線上之電流對來自連接至彼特定源極線之記憶體單元的所有電流執行求和函數。
表6描繪用於VMM陣列1100之操作電壓。表中之行指示置放於以下各者上之電壓:用於選定單元之字線、用於未選定單元之字線、用於選定單元之位元線、用於未選定單元之位元線、用於選定單元之源極線及用於未選定單元之源極線。列指示讀取、抹除及程式化之操作。
表6:圖11之VMM陣列1100之操作
| WL | WL -未選定 | BL | BL -未選定 | SL | SL -未選定 | |
| 讀取 | 1-3.5V | -0.5V/0V | 0.6-2V | 0.6V-2V/0V | ~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 |
圖12描繪神經元VMM陣列1200,其尤其適合於如圖3中所展示之記憶體單元310,且用作輸入層與下一層之間的突觸及神經元部分。VMM陣列1200包含非揮發性記憶體單元之記憶體陣列1203、第一非揮發性參考記憶體單元之參考陣列1201及第二非揮發性參考記憶體單元之參考陣列1202。參考陣列1201及1202用以將流動至終端BLR0、BLR1、BLR2及BLR3中之電流輸入轉換成電壓輸入CG0、CG1、CG2及CG3。實際上,第一及第二非揮發性參考記憶體單元為二極體連接之貫穿多工器1212 (僅部分描繪),其中電流輸入經由BLR0、BLR1、BLR2及BLR3流入該等多工器中。多工器1212各自包括各別多工器1205及串疊電晶體1204以確保在讀取操作期間第一及第二非揮發性參考記憶體單元中之每一者之位元線(諸如BLR0)上的恆定電壓。參考單元經調校至目標參考位準。
記憶體陣列1203用於兩個目的。首先,其儲存將由VMM陣列1200使用之權重。其次,記憶體陣列1203有效地使輸入(提供至終端BLR0、BLR1、BLR2及BLR3之電流輸入,其中參考陣列1201及1202將此等電流輸入轉換成輸入電壓以供應至控制閘極(CG0、CG1、CG2及CG3))乘以儲存於記憶體陣列中之權重,且隨後所有結果(單元電流)相加以產生輸出,該輸出顯現於BL0至BLN上,且將為至下一層之輸入或至最終層之輸入。藉由執行乘法及加法函數,記憶體陣列消除了對單獨的乘法及加法邏輯電路之需要,且亦為功率高效的。此處,輸入提供於控制閘極線(CG0、CG1、CG2及CG3)上,且輸出在讀取操作期間出現於位元線(BL0至BLN)上。置放於每一位元線上之電流對來自連接至彼特定位元線之記憶體單元的所有電流執行求和函數。
VMM陣列1200針對記憶體陣列1203中之非揮發性記憶體單元實施單向調校。亦即,每一非揮發性記憶體單元經抹除且接著經部分程式化,直至達到浮動閘極上之所要電荷。此可例如使用下文所描述之新穎精確程式化技術來執行。若過多電荷被置放於浮動閘極上(使得錯誤值儲存於單元中),則單元必須被抹除且部分程式化操作之序列必須重新開始。如所展示,共用同一抹除閘極(諸如EG0或EG1)之兩個列需要被一起抹除(此被稱為頁面抹除),且此後,部分地程式化每一單元直至達到浮動閘極上之所要電荷為止。
表7描繪用於VMM陣列1200之操作電壓。表中之行指示置放於以下各者上的電壓:用於選定單元之字線、用於未選定單元之字線、用於選定單元之位元線、用於未選定單元之位元線、用於選定單元之控制閘極、用於與選定單元在同一扇區中之未選定單元的控制閘極、用於與選定單元在不同扇區中之未選定單元的控制閘極、用於選定單元之抹除閘極、用於未選定單元之抹除閘極、用於選定單元之源極線及用於未選定單元之源極線。列指示讀取、抹除及程式化之操作。
表7:圖12之VMM陣列1200之操作
| WL | WL-未 選定 | BL | BL-未 選定 | CG | CG-未 選定同 一扇區 | CG-未 選定 | EG | EG-未 選定 | SL | SL-未 選定 | |
| 讀取 | 1.0-2V | -0.5V/ 0V | 0.6-2V (Ineuron) | 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 |
圖13描繪神經元VMM陣列1300,其尤其適合於如圖3中所展示之記憶體單元310,且用作輸入層與下一層之間的突觸及神經元部分。VMM陣列1300包含非揮發性記憶體單元之記憶體陣列1303、第一非揮發性參考記憶體單元之參考陣列1301及第二非揮發性參考記憶體單元之參考陣列1302。EG線EGR0、EG0、EG1及EGR1豎直地延伸,而CG線CG0、CG1、CG2及CG3以及SL線WL0、WL1、WL2及WL3水平地延伸。VMM陣列1300類似於VMM陣列1400,除了VMM陣列1300實施雙向調校之外,其中歸因於單獨EG線之使用,每一個別單元可視需要經完全抹除、部分程式化及部分抹除以達到浮動閘極上之所需電荷量。如所展示,參考陣列1301及1302將終端BLR0、BLR1、BLR2及BLR3中之輸入電流轉換成待在列方向上施加至記憶體單元之控制閘極電壓CG0、CG1、CG2及CG3 (經由二極體連接之參考單元貫穿之多工器1314進行之動作)。電流輸出(神經元)在位元線BL0至BLN中,其中每一位元線對來自連接至彼特定位元線之非揮發性記憶體單元的所有電流進行求和。
表8描繪用於VMM陣列1300之操作電壓。表中之行指示置放於以下各者上的電壓:用於選定單元之字線、用於未選定單元之字線、用於選定單元之位元線、用於未選定單元之位元線、用於選定單元之控制閘極、用於與選定單元在同一扇區中之未選定單元的控制閘極、用於與選定單元在不同扇區中之未選定單元的控制閘極、用於選定單元之抹除閘極、用於未選定單元之抹除閘極、用於選定單元之源極線及用於未選定單元之源極線。列指示讀取、抹除及程式化之操作。
表8:圖13之VMM陣列1300之操作
長短期記憶體
| WL | WL-未 選定 | BL | BL-未 選定 | CG | CG -未選 定同一扇 區 | CG-未 選定 | EG | EG-未 選定 | SL | SL-未 選定 | |
| 讀取 | 1.0-2V | -0.5V/ 0V | 0.6-2V (Ineuron) | 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 |
先前技術包括已知為長短期記憶體(LSTM)之概念。LSTM單元常常用於神經網路。LSTM允許神經網路在預定任意時間間隔內記住資訊且在後續操作中使用彼資訊。習知LSTM單元包含單元、輸入閘極、輸出閘極及遺忘閘極。三個閘極調節資訊進入及離開單元之流動及在LSTM中記住資訊的時間間隔。VMM尤其適用於LSTM單元。
圖14描繪例示性LSTM 1400。此實例中之LSTM 1400包含單元1401、1402、1403及1404。單元1401接收輸入向量x
0,且產生輸出向量h
0及單元狀態向量c
0。單元1402接收輸入向量x
1、來自單元1401之輸出向量(隱藏狀態) h
0及來自單元1401之單元狀態c
0,且產生輸出向量h
1及單元狀態向量c
1。單元1403接收輸入向量x
2、來自單元1402之輸出向量(隱藏狀態) h
1及來自單元1402之單元狀態c
1,且產生輸出向量h
2及單元狀態向量c
2。單元1404接收輸入向量x
3、來自單元1403之輸出向量(隱藏狀態) h
2及來自單元1403之單元狀態c
2,並且產生輸出向量h
3。可使用額外單元,並且具有四個單元之LSTM僅僅為實例。
圖15描繪LSTM單元1500之例示性實施,其可用於圖14中之單元1401、1402、1403及1404。LSTM單元1500接收輸入向量x(t)、來自前述單元之單元狀態向量c(t-1)及來自前述單元之輸出向量h(t-1),且產生單元狀態向量c(t)及輸出向量h(t)。
LSTM單元1500包含S型函數裝置1501、1502及1503,其中之每一者應用0與1之間的數字以控制輸入向量中之每一分量被允許通過輸出向量之量。LSTM單元1500亦包含用以將雙曲正切函數應用於輸入向量之雙曲正切裝置1504及1505、用以使兩個向量在一起相乘之乘法器裝置1506、1507及1508,及用以將兩個向量在一起相加之加法裝置1509。輸出向量h(t)可被提供至系統中之下一LSTM單元,或其可經存取以用於其他目的。
圖16描繪LSTM單元1600,其為LSTM單元1500之實施之實例。為了方便讀者,來自LSTM單元1500之相同編號用於LSTM單元1600中。S型函數裝置1501、1502及1503以及雙曲正切裝置1504各自包含多個VMM陣列1601及激發電路區塊1602。因此,可見VMM陣列特別適用於在某些神經網路系統中使用之LSTM單元。
圖17中展示LSTM單元1600之替代方案(及LSTM單元1500之實施之另一實例)。在圖17中,S型函數裝置1501、1502及1503以及雙曲正切裝置1504以時間多工方式共用相同實體硬體(VMM陣列1701及激發函數區塊1702)。LSTM單元1700亦包含用以使兩個向量在一起相乘之乘法器裝置1703、用以使兩個向量在一起相加之加法裝置1708、雙曲正切裝置1505 (其包含激發電路區塊1702)、用以當自S型函數區塊1702輸出i(t)時儲存值i(t)之暫存器1707、用以當值f(t)*c(t-1)藉由多工器1710自乘法器裝置1703輸出時儲存彼值之暫存器1704、用以當值i(t)*u(t)藉由多工器1710自乘法器裝置1703輸出時儲存彼值之暫存器1705及用以當值o(t)*c~(t)藉由多工器1710及多工器1709自乘法器裝置1703輸出時儲存彼值之暫存器1706。
LSTM單元1600含有VMM陣列1601及各別激發函數區塊1602之多個集合,而LSTM單元1700僅含有VMM陣列1701及激發函數區塊1702之一個集合,該等VMM陣列1701及該激發函數區塊1702用於表示LSTM單元1700之具體例中之多個層。LSTM單元1700將需要相較於LSTM 1600較少的空間,此係因為LSTM單元1700相比於LSTM單元1600將需要1/4之空間用於VMM及激發函數區塊。
可進一步瞭解,LSTM單元將通常包含多個VMM陣列,其中之每一者需要由VMM陣列外部之某些電路區塊(諸如求和器及激發電路區塊以及高電壓產生區塊)提供的功能性。為每個VMM陣列提供單獨電路區塊將需要半導體裝置內之大量空間且將略微低效。因此,下文所描述之具體例嘗試最小化VMM陣列自身在外部所需之電路系統。
閘控循環單元
類比VMM實施可用於GRU(閘控循環單元)系統。GRU為循環神經網路中之閘控機制。GRU類似於LSTM,除了GRU單元通常含有少於LSTM單元之組件之外。
圖18描繪例示性GRU 1800。此實例中之GRU 1800包含單元1801、1802、1803及1804。單元1801接收輸入向量x
0並且產生輸出向量h
0。單元1802接收輸入向量x
1、來自單元1801之輸出向量h
0,且產生輸出向量h
1。單元1803接收輸入向量x
2及來自單元1802之輸出向量(隱藏狀態) h
1,且產生輸出向量h
2。單元1804接收輸入向量x
3及來自單元1803之輸出向量(隱藏狀態) h
2並且產生輸出向量h
3。可使用額外單元,並且具有四個單元之GRU僅僅為實例。
圖19描繪GRU單元1900之例示性實施,其可用於圖18之單元1801、1802、1803及1804。GRU單元1900接收輸入向量x(t)及來自前一GRU單元之輸出向量h(t-1),且產生輸出向量h(t)。GRU單元1900包含S型函數裝置1901及1902,其中之每一者將0與1之間的數字應用至來自輸出向量h(t-1)及輸入向量x(t)之分量。GRU單元1900亦包含用以應用雙曲正切函數至輸入向量之雙曲正切裝置1903,用以將兩個向量在一起相乘之複數個乘法器裝置1904、1905及1906,用以將兩個向量相加在一起之加法裝置1907及用以自1減去輸入以產生輸出之互補裝置1908。
圖20描繪GRU單元2000,其為GRU單元1900之實施之實例。為方便讀者,與GRU單元1900相同之編號用於GRU單元2000中。如圖20中可見,S型函數裝置1901及1902以及雙曲正切裝置1903各自包含多個VMM陣列2001及激發函數區塊2002。因此,可見VMM陣列特別用於在某些神經網路系統中使用之GRU單元。
圖21中展示GRU單元2000之替代方案(及GRU單元1900之實施之另一實例)。在圖21中,GRU單元2100利用VMM陣列2101及激發函數區塊2102,該VMM陣列及激發函數區塊在經組態為S型函數時應用0與1之間的數字以控制輸入向量中之每一分量被允許通過輸出向量之量。在圖21中,S型函數裝置1901及1902以及雙曲正切裝置1903以時間多工方式共用同一實體硬體(VMM陣列2101及激發函數區塊2102)。GRU單元2100亦包含用以使兩個向量在一起相乘之乘法器裝置2103、用以使兩個向量在一起相加之加法裝置2105、用以自1減去輸入以產生輸出之互補裝置2109、多工器2104、用以當值h(t-1)*r(t)藉由多工器2104自乘法器裝置2103輸出時保存彼值之暫存器2106、用以當值h(t-1)*z(t)藉由多工器2104自乘法器裝置2103輸出時保存彼值之暫存器2107,及用以當值h^(t)*(1-z(t))藉由多工器2104自乘法器裝置2103輸出時保存彼值之暫存器2108。
GRU單元2000含有VMM陣列2001及激發函數區塊2002之多個集合,而GRU單元2100僅含有VMM陣列2101及激發函數區塊2102之一個集合,該等VMM陣列及該激發函數區塊用於表示GRU單元2100之具體例中之多個層。GRU單元2100將需要相較於GRU單元2000較少的空間,此係因為GRU單元2100相比於GRU單元2000將需要1/3之空間用於VMM及激發函數區塊。
可進一步瞭解,GRU系統將通常包含多個VMM陣列,其中之每一者需要由VMM陣列外部之某些電路區塊(諸如求和器及激發電路區塊以及高電壓產生區塊)提供的功能性。為每個VMM陣列提供單獨電路區塊將需要半導體裝置內之大量空間且將略微低效。因此,下文所描述之具體例嘗試最小化VMM陣列自身在外部所需之電路系統。
至VMM陣列之輸入可為類比層級、二進位層級或數位位元(在此狀況下,需要DAC以將數位位元轉換至適當輸入類比層級),且輸出可為類比層級、二進位層級或數位位元(在此狀況下,需要輸出ADC以將輸出類比層級轉換成數位位元)。
對於VMM陣列中之每一記憶體單元,每一權重w可由單個記憶體單元或差分單元或兩個混合記憶體單元(2個單元之平均值)實施。在差分單元狀況下,需要兩個記憶體單元以將權重w實施為差分權重(w = w+ - w-)。在兩個混合記憶體單元中,需要兩個記憶體單元以將權重w實施為兩個單元之平均值。
用於VMM中之單元的精確程式化之具體例
圖22A描繪程式化方法2200。首先,該方法開始(步驟2201),其通常回應於接收程式化命令而進行。接下來,批量程式化操作將所有單元程式化為「0」狀態(步驟2202)。接著,軟抹除操作將所有單元抹除至中間弱抹除層級,使得每一單元將在讀取操作期間汲取例如大約3至5 μA之電流(步驟2203)。此與深度抹除層級相反,其中每一單元將在讀取操作期間汲取大約約20至30 μA之電流。接著,對所有未選定單元執行硬程式化,使其處於極深的程式化狀態,以將電子添加至單元的浮動閘極(步驟2204),以確保彼等單元實際上為「關閉」的,此意謂彼等單元將在讀取操作期間汲取可忽略的數量的電流。
接著對選定單元執行粗略程式化方法(步驟2205),其後對選定單元執行精確程式化方法(步驟2206),以程式化每一選定單元所需的精確值。
圖22B描繪另一程式化方法2210,其類似於程式化方法2200。然而,代替如在圖22A的步驟2202中之將所有單元程式化為「0」狀態之程式化操作,在該方法起始(步驟2201)之後,使用抹除操作以將所有單元抹除至「1」狀態(步驟2212)。接著,使用軟程式化操作(步驟2213)以將所有單元程式化至中間狀態(層級),使得每一單元將在讀取操作期間汲取大約3至5 uA之電流。之後,將遵循如圖22A中的粗略及精確程式化方法。圖22B之具體例之變化將完全移除軟程式化方法(步驟2213)。
圖23描繪粗略程式化方法2205之第一具體例,其為搜索及執行方法2300。首先,執行查找表搜索以基於意欲儲存於彼選定單元中之值判定用於選定單元之粗略目標電流值(I
CT) (步驟2301)。假設,選定單元可經程式化以儲存N個可能值(例如,128,64,32等)中之一者。N個值中之每一者將對應於在讀取操作期間藉由選定單元汲取之不同所需電流值(I
D)。在一個具體例中,查找表可能含有M個可能電流值,以在搜索及執行方法2300期間用作用於選定單元之粗略目標電流值I
CT,其中M為小於N的整數。舉例而言,若N為8,則M可為4,此意謂存在選定單元可儲存之8個可能值,並且4個粗略目標電流值中之一者將經選擇為用於搜索及執行方法2300之粗略目標。亦即,搜索及執行方法2300 (其再次為粗略程式化方法2205之一具體例)預期快速地將選定單元程式化為略微接近所需值(I
D)之值(I
CT),且接著精確程式化方法2206預期較精確地將選定單元程式化為極接近所需值(I
D)。
表9及10中針對N=8及M=4之簡單實例描繪單元值、所需電流值及粗略目標電流值的實例:
表9:用於N=8之N個所需電流值的實例
表10:用於M=4之M個目標電流值的實例
偏移值I
CTOFFSETx用於防止在粗略調校期間過衝所需電流值。
| 儲存於選定單元中之值 | 所需電流值(I D) |
| 000 | 100 pA |
| 001 | 200 pA |
| 010 | 300 pA |
| 011 | 400 pA |
| 100 | 500 pA |
| 101 | 600 pA |
| 110 | 700 pA |
| 111 | 800 pA |
| 粗略目標電流值(I CT) | 相關聯單元值 |
| 200 pA+ I CTOFFSET1 | 000, 001 |
| 400 pA+ I CTOFFSET2 | 010, 011 |
| 600 pA+ I CTOFFSET3 | 100, 101 |
| 800 pA+ I CTOFFSET4 | 110, 111 |
一旦選擇粗略目標電流值I
CT,則藉由基於選定單元(例如,記憶體單元210、310、410或510)之單元架構類型將電壓v
0施加至選定單元之適當終端而程式化選定單元(步驟2302)。若選定單元屬於圖3中之記憶體單元310類型,則電壓v
0將經施加至控制閘極終端28,並且v
0可為取決於粗略目標電流值I
CT之5至7 V。視情況,v
0的值可自儲存v
0相對於粗略目標電流值I
CT之電壓查找表來判定。
接下來,藉由施加電壓v
i= v
i-1+v
increment來程式化選定單元,其中i在1處開始並且每當重複此步驟時遞增,且其中v
increment為較小電壓,其將引起適合於所需改變之精細度的程式化程度(步驟2303)。因此,執行第一次步驟2303,i=1,並且v
1將為v
0+ v
increment。接著,進行驗證操作(步驟2304),其中對選定單元執行讀取操作且量測藉由選定單元汲取之電流(I
cell)。若I
cell小於或等於I
CT(其在此處為第一臨限值),則完成搜索及執行方法2300並且精確程式化方法2206可開始。若I
cell不小於或等於I
CT,則重複步驟2303,並且i遞增。
因此,在當粗略程式化方法2205結束且精確程式化方法2206開始時之點處,電壓v
i將為用於程式化選定單元之最後一個電壓,且選定單元將儲存與粗略目標電流值I
CT相關聯的值。精確程式化方法2206的目標為將選定單元程式化至該點,其中在讀取操作期間,其汲取電流I
D(±可接受量的偏差,諸如50 pA或更少),其為與值相關聯的所需電流值,其意欲儲存於選定單元中。
圖24描繪不同電壓進程的實例,其可在精確程式化方法2206期間施加至選定的記憶體單元之控制閘極。
在第一方法下,將逐漸增加的電壓逐漸施加至控制閘極以進一步程式化選定的記憶體單元。起點係v
i,其為在粗略程式化方法2205期間施加的最後一個電壓。v
p1的遞增經添加至v
1,且電壓v
1+ v
p1接著用於程式化選定單元(由進程2401中之左邊的第二脈衝指示)。v
p1係小於v
increment(在粗略程式化方法2205期間使用的電壓遞增)的遞增。在施加每一程式化電壓之後,執行驗證步驟(類似於步驟2304),其中判定Icell是否小於或等於I
PT1(其為第一精確目標電流值且此處為第二臨限值),其中I
PT1= I
D+ I
PT1OFFSET,其中I
PT1OFFSET為經添加以防止程式過衝之偏移值。若否,則將另一增量v
p1添加至先前施加之程式化電壓,且重複該程序。在I
cell小於或等於I
PT1之點處,接著程式化序列的此部分停止。視情況,若I
PT1以足夠的精確度等於I
D或幾乎等於I
D,則成功地程式化選定的記憶體單元。
若I
PT1不足夠接近I
D,則可進行較小精細度的進一步程式化。此處,現在使用進程2402。用於進程2402之起點為用於進程2401下之程式化的最後一個電壓。V
p2(其小於v
p1)之遞增經添加至彼電壓,且經組合電壓經施加以程式化選定的記憶體單元。在施加了每個程式化電壓之後,執行驗證步驟(類似於步驟2304),在該步驟中判定I
cell是否小於或等於I
PT2(其為第二精確目標電流值且此處為第三臨限值),其中I
PT2= ID + I
PT2OFFSET,I
PT2OFFSET為經添加以防止程式過衝之偏移值。若否,則將另一增量V
p2添加至先前施加之程式化電壓,且重複該程序。在I
cell小於或等於I
PT2之點處,接著程式化序列的此部分停止。此處,假設I
PT2等於I
D或足夠接近I
D使得程式化可停止,此係由於已經以足夠的精確度達成目標值。一般熟習此項技術者可瞭解,可以所使用之越來越小的程式化遞增來應用額外進程。舉例而言,在圖25中,應用三個進程(2501、2502及2503)而非僅兩個。
在進程2403中展示第二方法。此處,代替增加在選定的記憶體單元之程式化期間施加之電壓,在逐漸增加時段的持續時間內施加相同電壓。代替添加增量電壓,諸如進程2401中之v
p1及進程2403中之v
p2,時間t
p1之額外遞增經添加至程式化脈衝使得每一所施加脈衝比先前施加之脈衝長t
p1。在施加每一程式化脈衝之後,執行相同驗證步驟,如先前針對進程2401所描述。視情況,可應用額外進程,其中經添加至程式化脈衝之時間的額外遞增的持續時間短於先前所使用的進程。儘管僅展示一個時間進程,但一般熟習此項技術者將瞭解,可應用任何數目個不同時間進程。
現將為粗略程式化方法2205之兩個額外具體例提供額外細節。
圖26描繪粗略程式化方法2205之第二具體例,其為自適應校準方法2600。方法開始(步驟2601)。該單元以預設開始值v
0經程式化(步驟2602)。不同於在搜索及執行方法2300中,此處v
0並非自查找表導出,並且實際上可為相對較小的初始值。單元的控制閘極電壓係在第一電流值IR1 (例如,100na)及第二電流值IR2 (例如,10na)下量測,並且次臨限斜率係基於彼等量測(例如,360 mV/dec)而判定並且儲存(步驟2603)。
判定新的所需電壓v
i。第一次執行此步驟時,i=1,且v
1係基於經儲存次臨限斜率值及電流目標值以及偏移值使用次臨限等式而判定,該等式諸如以下各者:
Vi = Vi-1 + Vincrement,
Vincrement係與Vg的斜率成比例
Vg= k*Vt*log [Ids/wa*Io]
此處,wa係記憶體單元之w,Ids係當前目標加偏移值。
若所儲存斜率值相對急劇,則可使用相對較小之電流偏移值。若經儲存斜率值相對較扁平,則可使用相對較高的電流偏移值。因此,判定斜率資訊將允許選擇針對所討論的特定單元定製的電流偏移值。此最終將使程式化程序較短。當重複此步驟時,i遞增,並且v
i= v
i-1+ v
increment。接著使用vi程式化該單元。可自儲存v
increment的值相對於目標電流值之查找表判定v
increment。
接下來,進行驗證操作,其中對選定單元執行讀取操作,且量測藉由選定單元汲取之電流(I
cell) (步驟2605)。若I
cell小於或等於I
CT(其在此處為粗略目標臨限值),其中I
CT經設定= I
D+ I
CTOFFSET,其中I
CTOFFSET係經添加以防止程式過衝之偏移值,則完成自適應性校準方法2600並且精確程式化方法2206可開始。若I
cell不小於或等於I
CT,則重複步驟2604至2605並且i遞增。
圖27描繪自適應校準方法2600之態樣。在步驟2603期間,電流源2701係用於將例示性電流值IR1及IR2應用於選定單元(此處,記憶體單元2702),且接著量測記憶體單元2702之控制閘極處之電壓(用於IR1之CGR1及用於IR2之CGR2)。該斜率將為(CGR2-CGR1)/dec。
圖28描繪粗略程式化方法2205之第二具體例,其為絕對校準方法2800。該方法開始(步驟2801)。該單元以預設初始值V
0經程式化(步驟2802)。單元之控制閘極電壓(VCGRx)在電流值Itarget下經量測並且儲存(步驟2803)。新的所需電壓v
1係基於經儲存控制閘極電壓及電流目標值以及偏移值Ioffset+Itarget而判定(步驟2804)。舉例而言,新的所需電壓v
1可如下計算:v
1= v
0+ (VCGBIAS - 經儲存VCGR),其中VCGBIAS =~ 1.5 V,其為最大目標電流下之預設讀取控制閘極電壓並且經儲存VCGR為步驟2803之經量測讀取控制閘極電壓。
使用v
i程式化該單元。當i=1時,使用來自步驟2804之電壓v
1.當i>=2時,使用電壓v
i= v
i-1+ v
increment。可自儲存v
increment的值相對於目標電流值之查找表判定v
increment。接下來,進行驗證操作,其中對選定單元執行讀取操作,且量測藉由選定單元汲取之電流(I
cell) (步驟2806)。若I
cell小於或等於I
CT(其在此處為臨限值),則完成絕對校準方法2800並且精確程式化方法2206可開始。若I
cell不小於或等於I
CT,則重複步驟2805至2806並且i遞增。
圖29描繪用於實施絕對校準方法2800之步驟2803之電路2900。電壓源(未展示)產生VCGR,其在初始電壓處開始並且向上斜升。此處,n+1個不同電流源2901 (2901-0、2901-1、2901-2、…、2901-n)產生具有不斷增加的量值之不同電流IO0、IO1、IO、…、IOn。每一電流源2901連接至反相器2902 (2902-0、2902-1、2902-2、…、2902-n)及記憶體單元2903 (2903-0、2903-1、2903-2、…、2903-n)。隨著VCGR向上斜升,每一記憶體單元2903汲取逐漸增加數量的電流,且至每一反相器2902之輸入電壓減小。因為IO0 < IO1 < IO2 <… < IOn,所以反相器2902-0的輸出將隨著VCGR增加而首先自低切換為高。反相器2902-1之輸出接下來將自低切換為高,接著反相器2902-2之輸出將自低切換為高等等,直至反相器2902-n之輸出自低切換為高為止。每一反相器2902控制開關2904 (2904-0、2904-1、2904-2、…、2904-n),使得當反相器2902之輸出為高時,開關2904閉合,此將使得藉由電容器2905 (2905-0、2905-1、2905-2、…、2905-n)對VCGR進行取樣。因此,開關2904及電容器2905形成取樣保持電路。IO0、IO1、IO2、…、IOn的值用作Itarget的可能值,且各別經取樣電壓用作圖28之絕對校準方法2800中之相關聯的值VCGR
x。曲線圖2906展示VCGR隨時間推移向上斜升,且反相器2902-0、2902-1及2902-n之輸出在各種時間自低切換為高。
圖30描繪例示性進程3000,其用於在自適應校準方法2600或絕對校準方法2800期間程式化選定單元。在一個具體例中,電壓Vcgp經施加至記憶體單元之選定列的控制閘極。選定列中之選定的記憶體單元之數目為例如= 32個單元。因此,可並行地程式化選定列中之至多32個記憶體單元。使得每一記憶體單元能夠藉由位元線啟用信號耦接至程式化電流Iprog。若位元線啟用信號無效(意謂正電壓經施加至選定的位元線),則禁止記憶體單元(未經程式化)。如圖30中所展示,位元線啟用信號En_blx (其中x在1與n之間變化,其中n為位元線之數目)在不同時間以彼位元線(因此該位元線上之選定的記憶體)所需之Vcgp電壓位準被啟用。在另一具體例中,可使用位元線上之啟用信號控制施加至選定單元之控制閘極的電壓。每一位元線啟用信號使得對應於彼位元線之所需電壓(諸如圖28中所描述之vi)作為Vcgp經施加。位元線啟用信號亦可控制流進位元線中之程式化電流。在此實例中,每一後續控制閘極電壓Vcgp高於前一個電壓。替代地,每一後續控制閘極電壓可低於或高於前一個電壓。Vcgp中之每一後續遞增可等於或不等於前一個遞增。
圖31描繪例示性進程3100,其用於在自適應校準方法2600或絕對校準方法2800期間程式化選定單元。在一個具體例中,位元線啟用信號使得能夠以對應的Vcgp電壓位準程式化選定的位元線(意謂該位元線中之選定的記憶體單元)。在另一具體例中,可使用位元線啟用信號控制施加至選定單元之遞增斜升式控制閘極的電壓。每一位元線啟用信號使得對應於彼位元線之所需電壓(諸如圖28中所描述之vi)施加至控制閘極電壓。在此實例中,每一後續遞增等於前一個遞增。
圖32描繪用於實施輸入及輸出方法之系統,該輸入及輸出方法用於運用VMM陣列進行讀取或驗證。輸入函數電路3201接收數位位元值並且將彼等數位值轉換為類比信號,該類比信號接著用於將電壓施加至陣列3204中之選定單元之控制閘極,該類比信號係藉由控制閘極解碼器3202來判定。同時,字線解碼器3203亦用於選擇選定單元所位於的列。輸出神經元電路區塊3205針對陣列3204中之單元之每一行(神經元)執行輸出動作。可使用積分類比至數位轉換器(ADC)、逐次近似(SAR) ADC或積分三角ADC來實施輸出電路區塊3205。
在一個具體例中,提供至輸入函數電路3201之數位值包含四個位元(DIN3、DIN2、DIN1及DIN0)作為一實例,且各種位元值對應於經施加至控制閘極之不同數目個輸入脈衝。較大數目個脈衝將產生單元的較大輸出值(電流)。表11中展示位元值及脈衝值之實例:
表11:數位位元輸入相對於經產生脈衝
| DIN3 | DIN2 | DIN1 | DIN0 | 經產生脈衝 |
| 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 1 | 1 |
| 0 | 0 | 1 | 0 | 2 |
| 0 | 0 | 1 | 1 | 3 |
| 0 | 1 | 0 | 0 | 4 |
| 0 | 1 | 0 | 1 | 5 |
| 0 | 1 | 1 | 0 | 6 |
| 0 | 1 | 1 | 1 | 7 |
| 1 | 0 | 0 | 0 | 8 |
| 1 | 0 | 0 | 1 | 9 |
| 1 | 0 | 1 | 0 | 10 |
| 1 | 0 | 1 | 1 | 11 |
| 1 | 1 | 0 | 0 | 12 |
| 1 | 1 | 0 | 1 | 13 |
| 1 | 1 | 1 | 0 | 14 |
| 1 | 1 | 1 | 1 | 15 |
在以上實例中,最多存在用於讀出單元值的4個位元數位值之16個脈衝。每一脈衝等於一個單位單元值(電流)。舉例而言,若Icell單位= 1nA,則對於DIN[3-0] = 0001,Icell = l*lnA = 1nA;且對於DIN[3-0] = 1111,Icell = 15*1nA = 15nA。
在另一具體例中,數位位元輸入使用數位位元位置求和以讀出如表12中所展示之單元值。此處,僅需要4個脈衝以評估4位元數位值。舉例而言,第一脈衝係用於評估DIN0,第二脈衝係用於評估DIN1,第三脈衝係用於評估DIN2,且第四脈衝係用於評估DIN3。接著,根據位元位置對四個脈衝之結果進行求和。所實現數位位元求和等式為如下:輸出=2^0*DIN0 + 2^1*DIN1 + 2^2*DIN2 + 2^3*DIN3)*Icell單位。
舉例而言,若Icell單位= 1nA,則對於DIN[3-0] = 0001,Icell總數= 0+0+0+1*1nA = 1nA;且對於DIN[3-0] = 1111,Icell總數= 8*1nA + 4*1nA + 2*1nA + 1*1nA =15nA。
表12:數位位元輸入求和
| 2^3*DIN3 | 2^2*DIN2 | 2^1*DIN1 | 2^0*DIN0 | 總值 |
| 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 1 | 1 |
| 0 | 0 | 2 | 0 | 2 |
| 0 | 0 | 2 | 1 | 3 |
| 0 | 4 | 0 | 0 | 4 |
| 0 | 4 | 0 | 1 | 5 |
| 0 | 4 | 2 | 0 | 6 |
| 0 | 4 | 2 | 1 | 7 |
| 8 | 0 | 0 | 0 | 8 |
| 8 | 0 | 0 | 1 | 9 |
| 8 | 0 | 2 | 0 | 10 |
| 8 | 0 | 2 | 1 | 11 |
| 8 | 4 | 0 | 0 | 12 |
| 8 | 4 | 0 | 1 | 13 |
| 8 | 4 | 2 | 0 | 14 |
| 8 | 4 | 2 | 1 | 15 |
圖33描繪電荷求和器3300之實例,其可用以在驗證操作期間對VMM之輸出求和,以獲得表示輸出之單一類比值,且該值可視情況接著轉換成數位位元值。電荷求和器3300包含電流源3301及取樣保持電路,該取樣保持電路包含開關3302及取樣保持(S/H)電容器3303。如針對4位元數位值之實例所展示,存在用以保持來自4個評估脈衝之值的4個S/H電路,其中該等值在程序結束時經總計。以與用於S/H電容器3303之2^n*DINn位元位置相關聯的比率選擇彼S/H電容器;例如,C_DIN3 = x8 Cu,C_DIN2 = x4 Cu,C_DIN1 = x2 Cu,DIN0 = x1 Cu。電流源3301亦相應地成比例。
圖34描繪可用於在驗證操作期間對VMM之輸出進行求和之電流求和器3400。電流求和器3400包含電流源3401、開關3402、開關3403及3404,以及開關3405。如針對4位元數位值之實例所展示,存在用以保持來自4個評估脈衝之值的電流源電路,其中該等值在程序結束時經總計。電流源係基於2^n*DINn位元位置而比率化;例如,I_DIN3 = x8 Icell單位,I_DIN2 = x4 Icell單位,I_DIN1 = x2 Icell單位,I_DIN0 = x1 Icell單位。
圖39描繪輸出區塊3900 (其為圖32中之輸出區塊3205之具體例)。輸出區塊3900自VMM (諸如圖32中之陣列3204)接收輸出電流,此處經展示為ICELL 3901。輸出區塊3900包含D/A轉換器3902、移位器3903、加法器3904及輸出暫存器3905。
此處,假設,至VMM之輸入區塊(諸如圖32中之輸入區塊3201)之輸入為din_n,其中n為位元編號且存在介於0至i-1範圍內之i個總位元。舉例而言,若i=4,則該輸入將為四個位元—din_3、din_2、din_1及din_0。每一輸入位元din_n一次一個地應用於VMM 3204之輸入區塊3201。
輸入區塊3201將din_n轉換為輸入信號(使用本文所描述的具體例或其他已知技術中之一者),該輸入信號應用於陣列3204中之選定單元之終端。在一個具體例中,該輸入信號為脈衝,如表13中針對例示性4位元輸入所展示:
表13:用於具有脈衝之4位元輸入之例示性表
| DIN3 | DIN2 | DIN1 | DIN0 | TPULSE或PULSES |
| 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 1 | 1X |
| 0 | 0 | 1 | 0 | 2X |
| 0 | 0 | 1 | 1 | 3X |
| 0 | 1 | 0 | 0 | 4X |
| 0 | 1 | 0 | 1 | 5X |
| 0 | 1 | 1 | 0 | 6X |
| 0 | 1 | 1 | 1 | 7X |
| 1 | 0 | 0 | 0 | 8X |
| 1 | 0 | 0 | 1 | 9X |
| 1 | 0 | 1 | 0 | 10X |
| 1 | 0 | 1 | 1 | 11X |
| 1 | 1 | 0 | 0 | 12X |
| 1 | 1 | 0 | 1 | 13X |
| 1 | 1 | 1 | 0 | 14X |
| 1 | 1 | 1 | 1 | 15X |
在另一具體例中,輸入信號為類比偏置電壓,如表14A中針對例示性4位元輸入所展示:
表14A:用於具有類比偏置位準之4位元輸入之例示性表
| DIN3 | DIN2 | DIN1 | DIN0 | VCGIN |
| 0 | 0 | 0 | 0 | VCGIN0 |
| 0 | 0 | 0 | 1 | VCGIN1 |
| 0 | 0 | 1 | 0 | VCGIN2 |
| 0 | 0 | 1 | 1 | VCGIN3 |
| 0 | 1 | 0 | 0 | VCGIN4 |
| 0 | 1 | 0 | 1 | VCGIN5 |
| 0 | 1 | 1 | 0 | VCGIN6 |
| 0 | 1 | 1 | 1 | VCGIN7 |
| 1 | 0 | 0 | 0 | VCGIN8 |
| 1 | 0 | 0 | 1 | VCGIN9 |
| 1 | 0 | 1 | 0 | VCGIN10 |
| 1 | 0 | 1 | 1 | VCGIN11 |
| 1 | 1 | 0 | 0 | VCGIN12 |
| 1 | 1 | 0 | 1 | VCGIN13 |
| 1 | 1 | 1 | 0 | VCGIN14 |
| 1 | 1 | 1 | 1 | VCGIN15 |
用於特定列之4位元輸入DIN [3:0]將使得選擇16個位準(例如VCGIN0、…、或VCGIN15)中之一個類比位準且將該一個類比位準應用於VMM陣列之列。此操作同時對4個輸入資料輸入進行操作。替代具體例將一次操作一個輸入資料輸入(逐輸入位元操作),用於每一輸入資料置放之結果接著在類比域(圖33,圖34)或數位域(圖35,圖39)中在一起經相加(求和)。若類比偏置位準(VCGIN[15:0])具有用於所有輸入資料輸入位元之相同電壓值,則針對用於每一輸入位元之二進位權重調節結果相加(圖39中之移位及相加)。若類比偏置位準(VCGIN[15:0])具有等效於資料輸入位元之二進位值之電壓值,則輸入位元中之資料不需要二進位權重調節。
在另一具體例中,至陣列之輸入區塊之輸入信號為表14B中針對逐輸入位元操作展示之例示性4位元輸入(例如針對DIN0、接著DIN1、接著DIN2、接著DIN3輸入進行操作),該輸入具有恆定的類比偏置電壓:
表14B:逐輸入位元操作下用於具有單個類比偏置位準之4位元輸入之例示性表
| DIN3 | DIN2 | DIN1 | DIN0 | VCGIN |
| 0 | 0 | 0 | 0 | VCGIN1 |
| 0 | 0 | 0 | 1 | VCGIN1 |
| 0 | 0 | 1 | 0 | VCGIN1 |
| 0 | 0 | 1 | 1 | VCGIN1 |
| 0 | 1 | 0 | 0 | VCGIN1 |
| 0 | 1 | 0 | 1 | VCGIN1 |
| 0 | 1 | 1 | 0 | VCGIN1 |
| 0 | 1 | 1 | 1 | VCGIN1 |
| 1 | 0 | 0 | 0 | VCGIN1 |
| 1 | 0 | 0 | 1 | VCGIN1 |
| 1 | 0 | 1 | 0 | VCGIN1 |
| 1 | 0 | 1 | 1 | VCGIN1 |
| 1 | 1 | 0 | 0 | VCGIN1 |
| 1 | 1 | 0 | 1 | VCGIN1 |
| 1 | 1 | 1 | 0 | VCGIN1 |
| 1 | 1 | 1 | 1 | VCGIN1 |
每一輸入位元DIN之二進位經加權結果將在類比域中(諸如藉由使用圖34中之電流求和器)或在數位域中(諸如藉由使用圖35或圖39之具體例)在一起經求和。
在另一具體例中,至陣列之輸入區塊之輸入信號為如表14C中針對逐輸入多位元操作(例如,DIN3及DIN2在一起,且DIN1及DIN0在一起)展示之例示性4位元輸入,其具有兩個類比偏置位準之實例。
表14C:在逐輸入多位元操作下之用於具有類比偏置位準之4位元輸入的例示性表
| DIN3 | DIN2 | DIN1 | DIN0 | 用於DIN[1:0]之VCGIN10 | 用於DIN[3:2]之VCGIN32 |
| 0 | 0 | 0 | 0 | VCGIN0 | VCGIN0 |
| 0 | 0 | 0 | 1 | VCGIN1 | VCGIN0 |
| 0 | 0 | 1 | 0 | VCGIN2 | VCGIN0 |
| 0 | 0 | 1 | 1 | VCGIN3 | VCGIN0 |
| 0 | 1 | 0 | 0 | VCGIN0 | VCGIN1 |
| 0 | 1 | 0 | 1 | VCGIN1 | VCGIN1 |
| 0 | 1 | 1 | 0 | VCGIN2 | VCGIN1 |
| 0 | 1 | 1 | 1 | VCGIN3 | VCGIN1 |
| 1 | 0 | 0 | 0 | VCGIN0 | VCGIN2 |
| 1 | 0 | 0 | 1 | VCGIN1 | VCGIN2 |
| 1 | 0 | 1 | 0 | VCGIN2 | VCGIN2 |
| 1 | 0 | 1 | 1 | VCGIN3 | VCGIN2 |
| 1 | 1 | 0 | 0 | VCGIN0 | VCGIN3 |
| 1 | 1 | 0 | 1 | VCGIN1 | VCGIN3 |
| 1 | 1 | 1 | 0 | VCGIN2 | VCGIN3 |
| 1 | 1 | 1 | 1 | VCGIN3 | VCGIN3 |
每一多位元DIN [1:0]及DIN [3:2]之二進位經加權結果將在類比域(如圖34中之電流求和器)中或在數位域(圖35,圖39)中在一起經求和。
在另一具體例中,該輸入信號為包含與脈衝分量相加之類比偏置電壓分量(類比偏置電源經調變脈衝寬度)的混合信號,如表15中針對具有類比偏置電源及脈衝之例示性4位元輸入所展示:
表15:用於具有類比偏置位準及脈衝之4位元輸入的混合輸入之例示性表
| DIN3 | DIN2 | DIN1 | DIN0 | VCGIN | TPULSE或 PULSES |
| 0 | 0 | 0 | 0 | VCGIN1 | 0X |
| 0 | 0 | 0 | 1 | VCGIN1 | 1X |
| 0 | 0 | 1 | 0 | VCGIN1 | 2X |
| 0 | 0 | 1 | 1 | VCGIN1 | 3X |
| 0 | 1 | 0 | 0 | VCGIN1 | 4X |
| 0 | 1 | 0 | 1 | VCGIN1 | 5X |
| 0 | 1 | 1 | 0 | VCGIN1 | 6X |
| 0 | 1 | 1 | 1 | VCGIN1 | 7X |
| 1 | 0 | 0 | 0 | VCGIN2 | 4X |
| 1 | 0 | 0 | 1 | VCGIN2 | 4.5X |
| 1 | 0 | 1 | 0 | VCGIN2 | 5X |
| 1 | 0 | 1 | 1 | VCGIN2 | 5.5X |
| 1 | 1 | 0 | 0 | VCGIN2 | 6X |
| 1 | 1 | 0 | 1 | VCGIN2 | 6.5X |
| 1 | 1 | 1 | 0 | VCGIN2 | 7X |
| 1 | 1 | 1 | 1 | VCGIN2 | 7.5X |
在此混合系統中,用於輸入脈衝之時序縮減了一半,如表15中所展示。輸入資料劃分成多個輸入資料集合,其中每一輸入資料集合經指派至特定偏置位準分量。舉例而言,對於8位元輸入DIN [7:0],輸入資料集合DIN [3:0]中之輸入資料接收列電源VCGIN1,且輸入資料集合DIN[7:4]中之輸入資料接收不同於VCGIN1之另一列電壓電源VCGIN2。在兩個二進位輸入集合分區之此例示性具體例中,類比偏置電源VCGIN2 (用於第二輸入資料集合DIN [7:4])產生為由類比偏置電源VCGIN1 (用於第一輸入資料集合DIN [3:0])產生之2x單元電流的單元電流,且用於第二輸入資料集合DIN [7:4]之脈衝與用於第一輸入資料集合DIN [3:0]之脈衝具有相同值。舉例而言,VCGIN2/VCGIN1的比率對於在線性區中操作之單元為2x。在此具體例之變化中,2個分區用於輸入資料集合,每一者對應於不同類比偏置電壓。舉例而言,可存在4個分區,每一者具有不同VCCGIN偏置位準以將必需的輸入脈衝之寬度縮減4倍。
再次參考圖39,輸出區塊3900回應於輸入din_n而自VMM接收輸出電流ICELL。D/A轉換器3902將ICELL轉換成數位形式dout_n,其表示回應於din_n而產生之輸出之數位值,其中每一dout_n為一或多個位元之集合。
移位器3903、加法器3904及暫存器3905用於將不同權重應用於每一輸出DOUT_n,其係回應於每一輸入位元DIN_n而產生。在其中n=4之簡單實例中,移位器3902、加法器3904及暫存器3905將執行以下動作:
(1)回應於DIN_0,移位器3903將接收DOUT_0且將不使其移位,以產生(1)之結果;
(2)回應於DIN_1,移位器3903將接收DOUT_1且使其向左移位一個位元,且加法器將會將結果與(1)之結果相加以產生(2)之結果;
(3)回應於DIN_2,移位器3903將接收DOUT_2且使其向左移位兩個位元,且加法器3904將會將結果與(2)之結果相加以產生(3)之結果;
(4) 回應於DIN_3,移位器將接收DOUT_3且使其向左移位三個位元,且加法器3904將會將結果與(3)之結果相加以產生(4)之結果—最終結果。
在DIN [n:0]輸入與類比電壓位準組合以表示每一資料輸入之二進位權重之狀況下,僅需要相加,此混合逐輸入位元運算無需移位。輸出暫存器3905將輸出(4)之結果作為DOUT。
圖35描繪數位求和器3500,其接收複數個數位值,對其進行求和且產生表示輸入之總和的輸出DOUT。可在驗證操作期間使用數位求和器3500。如針對4位元數位值之實例所展示,存在用以保持來自4個評估脈衝之值的數位輸出位元,其中該等值在程序結束時進行總計。數位輸出係基於2^n*DINn位元位置用數位方式按比例縮放;例如,DOUT3 = x8 DOUT0,_DOUT2 = x4 DOUT1,I_DOUT1 = x2 DOUT0,I_DOUT0 = DOUT0。
圖36A展示積分雙斜率ADC 3600,其應用於輸出神經元以將單元電流轉換為數位輸出位元。由積分運算放大器3601及積分電容器3602組成之積分器將單元電流ICELL與參考電流IREF進行積分。如圖36B中所展示,在固定時間t1期間,單元電流被向上積分(Vout上升),且接著在時間t2內應用參考電流以向下積分(Vout下降)。電流Icell為= t2/t1* IREF。例如,對於t1,對於10位元數位位元解析度,使用1024個循環,且用於t2之循環數目取決於Icell值而在0至1024個循環之間變化。
圖36C展示積分單斜率ADC 3660,其應用於輸出神經元以將單元電流轉換成數位輸出位元。由積分運算放大器3661及積分電容器3662組成之積分器對單元電流ICELL進行積分。如圖36D中所展示,在時間t1期間,單元電流被向上積分(Vout上升直至其達到Vref2為止),並且在時間t2期間,另一單元電流被向上積分。單元電流Icell = Cint*Vref2/t。脈衝計數器係用於在積分時間t期間對脈衝(數位輸出位元)之數目進行計數。舉例而言,如所展示,用於t1之數位輸出位元小於t2的數位輸出位元,此意謂t1期間之單元電流大於t2積分期間之單元電流。進行初始校準以運用參考電流及固定時間校準積分電容器值,Cint = Tref*Iref/Vref2。
圖36E展示積分雙斜率ADC 3680,其應用於輸出神經元以將單元電流轉換成數位輸出位元。積分雙斜率ADC 3680不利用積分運算放大器。單元電流或參考電流直接在電容器3682上進行積分。脈衝計數器用於對積分時間期間之脈衝(數位輸出位元)進行計數。電流Icell為= t2/t1* IREF。
圖36F展示積分單斜率ADC 3690,其應用於輸出神經元以將單元電流轉換成數位輸出位元。積分單斜率ADC 3680不利用積分運算放大器。單元電流直接在電容器3692上進行積分。脈衝計數器用於對積分時間期間之脈衝(數位輸出位元)進行計數。單元電流Icell = Cint*Vref2/t。
圖37A展示逐次逼近暫存器(SAR) ADC,其應用於輸出神經元以將單元電流轉換成數位輸出位元。單元電流可橫跨電阻器下降以轉換成VCELL。替代地,單元電流可對S/H電容器進行充電以轉換成VCELL。二進位搜索用於計算自MSB位元(最高有效位元)開始的位元。基於來自SAR 3701之數位位元,DAC 3702用於為比較器3703設定適當的類比參考電壓。比較器3703之輸出又回饋至SAR 3701以選擇下一個類比層級。如圖37B中所展示,對於4位元數位輸出位元之實例,存在4個評估週期:第一脈衝藉由中途設定類比層級來評估DOUT3,接著第二脈衝藉由在上半部分的中途或下半部分的中途等設定類比層級來評估DOUT2。
圖38展示積分三角ADC 3800,其應用於輸出神經元以將單元電流轉換成數位輸出位元。由運算放大器3801及電容器3805組成之積分器對來自選定單元電流之電流及產生於1位元電流DAC 3804之參考電流的求和進行積分。比較器3802比較積分輸出電壓與參考電壓。時控DFF 3803取決於比較器3802的輸出提供數位輸出流。數位輸出流通常在輸出為數位輸出位元之前轉至數位濾波器。
應注意,如本文中所使用,術語「在...上方」及「在...上」兩者包括「直接在...上」(其間未安置有中間材料、元件或空間)及「間接地在...上」(其間安置有中間材料、元件或空間)。同樣地,術語「鄰近」包括「直接鄰近」(其間未安置有中間材料、元件或空間)及「間接鄰近」(其間安置有中間材料、元件或空間),「安裝至」包括「直接安裝至」(其間未安置有中間材料、元件或空間)及「間接安裝至」(其間安置有中間材料、元件或空間),且「電耦接」包括「直接電耦接至」(其間無將元件電連接在一起的中間材料或元件)及「間接電耦接至」(其間具有將元件電連接在一起的中間材料或元件)。舉例而言,「在基板上方」形成元件可包括直接在基板上形成元件而其間無中間材料/元件,以及間接地在基板上形成元件而其間具有一或多種中間材料/元件。
12:半導體基板
14:源極區
16:汲極區
18:通道區
20:浮動閘極
22:字線終端
24:位元線
28:控制閘極
30:抹除閘極
32,32a,32b,32c,32d,32e,1601,1701,2001,2101:VMM陣列
33:非揮發性記憶體單元陣列
34:抹除閘極及字線閘極解碼器
35:控制閘極解碼器
36:位元線解碼器
37:源極線解碼器
38:差分求和器
39:激發函數電路
110,210,2702,2903,2903-0,2903-1,2903-2,2903-n:記憶體單元
310:四閘極記憶體單元
410:三閘極記憶體單元
510:堆疊閘極記憶體單元
900,1000,1100,1200,1300:神經元VMM陣列
901,1003,1103,1203,1303:記憶體陣列
902,1001,1002,1101,1102,1201,1202,1301,1302:參考陣列
903:控制閘極線
904:抹除閘極線
1014:二極體連接之貫穿多工器
1204:串疊電晶體
1205,1709,1710,2104:多工器
1212:二極體連接之貫穿多工器
1314:極體連接之參考單元貫穿之多工器
1400:例示性LSTM
1401,1402,1403,1404,1801,1802,1803,1804:單元
1500,1600,1700:LSTM單元
1501,1502,1503:S型函數裝置
1504,1505:雙曲正切裝置
1506,1507,1508,1703,1904,1905,1906,2103:乘法器裝置
1509,1708,1907,2105:加法裝置
1602:激發電路區塊
1702,2002,2102:激發函數區塊
1704,1705,1706,1707,2106,2107,2108:暫存器
1800:GRU
1900,2000,2100:GRU單元
1901,902:S型函數裝置
1903:雙曲正切裝置
1908,2109:互補裝置
2200:程式化方法
2201,2202,2203,2204,2205,2206,2212,2213,2301,2302,2303,2304,2601,2602,2603,2604,2605,2801,2802,2803,2804,2805,2806:步驟
2210:另一程式化方法
2300:搜索及執行方法
2401,2402,2403,2501,2502,2503:進程
2600:自適應校準方法
2701:電流源
2800:絕對校準方法
2900:電路
2901,2901-0,2901-1,2901-2,2901-n,3401:電流源
2902,2902-0,2902-1,2902-2,2902-n:反相器
2904,2904-0,2904-1,2904-2,2904-n,3302,3402,3403,3404,3405:開關
2905,2905-0,2905-1,2905-2,2905-n,3682,3692,3805:電容器
2906:曲線圖
3000,3100:例示性進程
3201:輸入函數電路
3202:控制閘極解碼器
3203:字線解碼器
3204:陣列
3205:輸出神經元電路區塊
3300:電荷求和器
3301:電流源
3303:取樣保持(S/H)電容器
3400:電流求和器
3500:數位求和器
3601,3661:積分運算放大器
3602,3662:積分電容器
3660,3690:積分單斜率ADC
3680,3600:積分雙斜率ADC
3701:SAR
3702:DAC
3703,3802:比較器
3800:積分三角ADC
3801:運算放大器
3803:時控DFF
3804:1位元電流DAC
3900:輸出區塊
3901:ICELL
3902:D/A轉換器
3903:移位器
3904:加法器
3905:輸出暫存器
BL0,BL1,BL2,BL3,BLN:位元線
BLR0,BLR1,BLR2,BLR3:終端
c
0,c
1,c
2,c(t),c(t-1):單元狀態向量
C1,C2,C3:層
CB1,CB2,CB3,CB4:突觸
CG0,CG1,CG2,CG3:控制閘極線
DIN3,DIN2,DIN1,DIN0,din_3,din_2,din_1,din_0,din_n:位元
EG0,EG1:抹除閘極
EGR0,EG0,EG1,EGR1:EG線
EN_bln,EN_bl1,EN_bl5:位元線啟用信號
h
0,h
1,h
2,h
3,h(t-1),h(t):輸出向量
IO0,IO1,IO2,IOn:電流
P1:激發函數
P2:激發函數
SL0,SL1:源極線
S0:輸入層
S1,S2,S3:層
t:積分時間
t1:固定時間
t2:時間
v
0,v
i,v
cgp:電壓
WL:字線
WL0,WL1,WL2,WL3:電壓輸入
x
0,x
1,x
2,x
3,x(t):輸入向量
圖1為說明人工神經網路之圖。
圖2描繪先前技術分離閘快閃記憶體單元。
圖3描繪另一先前技術分離閘快閃記憶體單元。
圖4描繪另一先前技術分離閘快閃記憶體單元。
圖5描繪另一先前技術分離閘快閃記憶體單元。
圖6為說明利用一或多個非揮發性記憶體陣列之例示性人工神經網路之不同層級的圖。
圖7為說明向量矩陣乘法系統之方塊圖。
圖8為說明利用一或多個向量矩陣乘法系統之例示性人工神經網路的方塊圖。
圖9描繪向量矩陣乘法系統之另一具體例。
圖10描繪向量矩陣乘法系統之另一具體例。
圖11描繪向量矩陣乘法系統之另一具體例。
圖12描繪向量矩陣乘法系統之另一具體例。
圖13描繪向量矩陣乘法系統之另一具體例。
圖14描繪先前技術長短期記憶體系統。
圖15描繪供用於長短期記憶體系統中之例示性單元。
圖16描繪圖15之例示性單元之具體例。
圖17描繪圖15之例示性單元之另一具體例。
圖18描繪先前技術閘控循環單元系統。
圖19描繪供用於閘控循環單元系統中之例示性單元。
圖20描繪圖19之例示性單元之具體例。
圖21描繪圖19之例示性單元之另一具體例。
圖22A描繪程式化非揮發性記憶體單元之方法之具體例。
圖22B描繪程式化非揮發性記憶體單元之方法之另一具體例。
圖23描繪粗略程式化方法之具體例。
圖24描繪用於非揮發性記憶體單元之程式化中的例示性脈衝。
圖25描繪用於非揮發性記憶體單元之程式化中的例示性脈衝。
圖26描繪用於非揮發性記憶體單元之程式化之校準演算法,其基於單元的斜率特性調節程式化參數。
圖27描繪用於圖26之校準演算法中的電路。
圖28描繪用於非揮發性記憶體單元之程式化之校準演算法。
圖29描繪用於圖28之校準演算法中之電路。
圖30描繪在程式化操作期間施加至非揮發性記憶體單元之控制閘極的電壓之例示性進程。
圖31描繪在程式化操作期間施加至非揮發性記憶體單元之控制閘極的電壓之例示性進程。
圖32描繪用於在向量矩陣乘法系統內之非揮發性記憶體單元之程式化期間施加程式化電壓之系統。
圖33描繪電荷求和器電路。
圖34描繪電流求和器電路。
圖35描繪數位求和器電路。
圖36A描繪用於神經元輸出之積分類比至數位轉換器之具體例。
圖36B描繪展示圖36A之積分類比至數位轉換器之隨時間推移的電壓輸出之圖。
圖36C描繪用於神經元輸出之積分類比至數位轉換器的另一具體例。
圖36D描繪展示圖36C之積分類比至數位轉換器之隨時間推移的電壓輸出之圖。
圖36E描繪用於神經元輸出之積分類比至數位轉換器的另一具體例。
圖36F描繪用於神經元輸出之積分類比至數位轉換器的另一具體例。
圖37A及圖37B描繪用於神經元輸出之逐次近似類比至數位轉換器。
圖38描繪積分三角類比至數位轉換器之具體例。
圖39描繪輸出區塊。
C1,C2,C3:層
CB1,CB2,CB3,CB4:突觸
P1:激發函數
P2:激發函數
S0:輸入層
S1,S2,S3:層
Claims (40)
- 一種讀取一選定非揮發性記憶體單元之方法,該方法包含: 依序將複數個輸入位元提供至一輸入電路; 對於該複數個輸入位元中之每一者: 回應於該輸入位元而藉由該輸入電路產生一輸入信號; 將該輸入信號應用於該選定非揮發性記憶體單元之一終端; 藉由一輸出電路接收回應於該輸入位元而產生之一輸出; 將該輸出轉換為一數位輸出;及 基於該複數個輸入位元內之該輸入位元之位元位置使該數位輸出移位以產生一經移位結果;及 將使用於所有該複數個輸入位元之該等經移位結果相加以產生一數位輸出。
- 如請求項1之方法,其中,該選定非揮發性記憶體單元為一分離閘快閃記憶體單元。
- 如請求項2之方法,其中,該終端為一控制閘極終端。
- 如請求項1之方法,其中,該選定非揮發性記憶體單元為一神經記憶體之部分。
- 如請求項1之方法,其中,該輸入信號包含一脈衝。
- 如請求項1之方法,其中,該輸入信號包含一類比偏置信號。
- 如請求項1之方法,其中,該輸入信號包含一類比偏置信號及一脈衝。
- 如請求項7之方法,其中,該複數個輸入位元中之一者經編碼為該類比偏置信號。
- 一種神經形態記憶體系統,其包含: 一陣列,其包含選定記憶體單元; 一輸入區塊,其經組態以回應於一系列輸入位元而針對每一選定記憶體單元將一系列輸入信號應用於該選定記憶體單元之一終端;及 一輸出區塊,其用於產生該選定記憶體單元之一輸出,該輸出區塊包含用以將來自該選定記憶體單元之電流轉換為一數位值之一類比至數位轉換器、一移位器、一加法器及一暫存器; 其中該移位器、加法器及暫存器經組態以回應於該一系列輸入位元而接收一系列數位值、基於該一系列輸入位元內之該輸入位元之一位元位置而使該一系列數位值中之每一數位值移位,且使移位運算之結果相加以產生指示儲存在該選定記憶體單元中之值的一輸出。
- 如請求項9之方法,其中,該選定非揮發性記憶體單元為分離閘快閃記憶體單元。
- 如請求項10之方法,其中,該終端為一控制閘極終端。
- 如請求項9之方法,其中,該選定非揮發性記憶體單元為一神經記憶體之部分。
- 如請求項9之方法,其中,該輸入信號包含一脈衝。
- 如請求項9之方法,其中,該輸入信號包含一類比偏置信號。
- 如請求項9之方法,其中,該輸入信號包含一類比偏置信號及一脈衝。
- 如請求項15之方法,其中,該複數個輸入位元中之一者經編碼為該類比偏置信號。
- 一種讀取一選定非揮發性記憶體單元之方法,該方法包含: 依序將複數個輸入位元提供至一輸入電路;及 對於該複數個輸入位元中之每一者: 回應於該輸入位元而藉由該輸入電路產生一輸入信號,其中該輸入信號包含一類比偏置位準分量及一脈衝寬度分量; 將該輸入信號應用於該選定非揮發性記憶體單元之一終端; 藉由一輸出電路接收回應於該輸入位元而產生之一輸出;及 將該輸出轉換為一數位輸出。
- 如請求項17之方法,其進一步包含: 基於該複數個輸入位元內之該輸入位元之位元位置使該數位輸出移位以產生一經移位結果;及 將使用於所有該複數個輸入位元之該等經移位結果相加以產生一數位輸出。
- 如請求項17之方法,其中,該輸出係使用一電流求和器而產生。
- 如請求項17之方法,其中,該類比偏置位準分量為一二進位加權值。
- 如請求項17之方法,其中,輸出值僅基於脈衝寬度調變輸入而產生。
- 如請求項17之方法,其中,該選定非揮發性記憶體單元為一神經記憶體之部分。
- 一種讀取一選定非揮發性記憶體單元之方法,該方法包含: 依序將複數個輸入位元提供至一輸入電路;及 對於該複數個輸入位元中之每一者: 回應於該等輸入位元中之多個位元而藉由該輸入電路產生一輸入信號,其中該輸入信號為一類比偏置位準; 將該輸入信號應用於該選定非揮發性記憶體單元之一終端;及 藉由一輸出電路接收回應於該輸入位元而產生之一輸出。
- 如請求項23之方法,其進一步包含: 將該輸出轉換為一數位輸出。
- 如請求項24之方法,其進一步包含: 將使用於所有該複數個輸入位元之結果相加以產生一數位輸出。
- 如請求項24之方法,其進一步包含: 基於該複數個輸入位元內之該輸入位元之位元位置使該數位輸出移位以產生一經移位結果;及 將使用於所有該複數個輸入位元之該等經移位結果相加以產生一數位輸出。
- 如請求項25之方法,其中,該輸出係使用一電流求和器而產生。
- 如請求項23之方法,其中,該類比偏置位準為二進位索引值。
- 如請求項23之方法,其中,該類比偏置位準使得所得單元輸出值為僅基於脈衝寬度調變輸入而產生之輸出值。
- 如請求項23之方法,其中,該選定非揮發性記憶體單元為一神經記憶體之部分。
- 一種神經形態記憶體系統,其包含: 一陣列,其包含選定記憶體單元; 一輸入區塊,其經組態以回應於一系列輸入位元而針對每一選定記憶體單元將一系列輸入信號應用於該等選定記憶體單元之一終端;及 一輸出區塊,其用於產生該等選定記憶體單元之一輸出,該輸出區塊包含用於回應於該一系列輸入位元而使自該陣列接收之輸出相加之一加法器。
- 如請求項31之方法,其中,該等選定非揮發性記憶體單元為分離閘快閃記憶體單元。
- 如請求項32之方法,其中,該終端為一控制閘極終端。
- 如請求項31之方法,其中,該選定非揮發性記憶體單元為一神經記憶體之部分。
- 如請求項31之方法,其中,該輸入信號包含一脈衝。
- 如請求項31之方法,其中,該輸入信號包含一類比偏置信號。
- 如請求項31之方法,其中,該輸入信號包含一類比偏置信號及一脈衝。
- 如請求項31之方法,其中,該加法器包含一輸出電流求和器。
- 如請求項31之方法,其中,該加法器包含一輸出電荷求和器。
- 如請求項31之方法,其中,該加法器包含一數位邏輯加法器。
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US17/133,395 | 2020-12-23 | ||
| US17/133,395 US12075618B2 (en) | 2018-10-16 | 2020-12-23 | Input and digital output mechanisms for analog neural memory in a deep learning artificial neural network |
| PCT/US2021/022855 WO2022139859A1 (en) | 2020-12-23 | 2021-03-17 | Input and digital output mechanisms for analog neural memory in a deep learning artificial neural network |
| WOPCT/US21/22855 | 2021-03-17 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW202230376A true TW202230376A (zh) | 2022-08-01 |
| TWI784816B TWI784816B (zh) | 2022-11-21 |
Family
ID=75478208
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW110144304A TWI784816B (zh) | 2020-12-23 | 2021-11-29 | 深度學習人工神經網路中類比神經記憶體之輸入及數位輸出機制 |
Country Status (6)
| Country | Link |
|---|---|
| EP (1) | EP4268228B1 (zh) |
| JP (2) | JP7599571B2 (zh) |
| KR (1) | KR102783201B1 (zh) |
| CN (1) | CN116615784A (zh) |
| TW (1) | TWI784816B (zh) |
| WO (1) | WO2022139859A1 (zh) |
Family Cites Families (17)
| 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 |
| JP3260357B2 (ja) * | 1990-01-24 | 2002-02-25 | 株式会社日立製作所 | 情報処理装置 |
| JPH06259585A (ja) * | 1993-03-10 | 1994-09-16 | Toyota Central Res & Dev Lab Inc | ニューラルネットワーク装置 |
| TW270192B (en) * | 1995-05-11 | 1996-02-11 | Ind Tech Res Inst | Artificial neural network architecture |
| US6781884B2 (en) * | 2002-03-11 | 2004-08-24 | Fujitsu Limited | System for setting memory voltage threshold |
| 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 |
| JP2007034537A (ja) * | 2005-07-25 | 2007-02-08 | Sony Corp | 複合型記憶装置、データ書込方法及びプログラム |
| US7450426B2 (en) * | 2006-10-10 | 2008-11-11 | Sandisk Corporation | Systems utilizing variable program voltage increment values in non-volatile memory program operations |
| 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 |
| JP7130766B2 (ja) * | 2018-04-05 | 2022-09-05 | レイン・ニューロモーフィックス・インコーポレーテッド | 効率的な行列乗算のためのシステムおよび方法 |
| US10741568B2 (en) * | 2018-10-16 | 2020-08-11 | Silicon Storage Technology, Inc. | Precision tuning for the programming of analog neural memory in a deep learning artificial neural network |
| KR102637733B1 (ko) * | 2018-10-31 | 2024-02-19 | 삼성전자주식회사 | 뉴럴 네트워크 프로세서 및 그것의 컨볼루션 연산 방법 |
| US12423055B2 (en) * | 2018-11-15 | 2025-09-23 | Samsung Electronics Co., Ltd. | Processing apparatus and method of processing add operation therein |
| KR102775183B1 (ko) * | 2018-11-23 | 2025-03-04 | 삼성전자주식회사 | 뉴럴 네트워크 연산 수행을 위한 뉴럴 네트워크 장치, 뉴럴 네트워크 장치의 동작 방법 및 뉴럴 네트워크 장치를 포함하는 애플리케이션 프로세서 |
| 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 |
| US12353503B2 (en) * | 2019-05-02 | 2025-07-08 | Silicon Storage Technology, Inc. | Output array neuron conversion and calibration for analog neural memory in deep learning artificial neural network |
| CN110728358B (zh) * | 2019-09-30 | 2022-06-10 | 上海商汤智能科技有限公司 | 基于神经网络的数据处理方法和装置 |
-
2021
- 2021-03-17 EP EP21718319.3A patent/EP4268228B1/en active Active
- 2021-03-17 JP JP2023538012A patent/JP7599571B2/ja active Active
- 2021-03-17 CN CN202180081820.6A patent/CN116615784A/zh active Pending
- 2021-03-17 WO PCT/US2021/022855 patent/WO2022139859A1/en not_active Ceased
- 2021-03-17 KR KR1020237015477A patent/KR102783201B1/ko active Active
- 2021-11-29 TW TW110144304A patent/TWI784816B/zh active
-
2024
- 2024-12-03 JP JP2024210541A patent/JP2025037990A/ja active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| JP2024504003A (ja) | 2024-01-30 |
| JP2025037990A (ja) | 2025-03-18 |
| WO2022139859A1 (en) | 2022-06-30 |
| KR20230080483A (ko) | 2023-06-07 |
| JP7599571B2 (ja) | 2024-12-13 |
| CN116615784A (zh) | 2023-08-18 |
| TWI784816B (zh) | 2022-11-21 |
| KR102783201B1 (ko) | 2025-03-17 |
| EP4268228B1 (en) | 2025-12-10 |
| EP4268228A1 (en) | 2023-11-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7624050B2 (ja) | 深層学習人工ニューラルネットワークにおけるアナログニューラルメモリのプログラミングのための精密な調整 | |
| JP7340612B2 (ja) | 深層学習人工ニューラルネットワークにおけるアナログニューラルメモリ用の電力管理 | |
| TWI784318B (zh) | 在深度學習人工神經網路中用於類比神經記憶體之程式化的精確度調校 | |
| CN120766737A (zh) | 人工神经网络中的模拟神经存储器的精确编程方法和装置 | |
| TWI820532B (zh) | 深度學習人工神經網路中類比神經記憶體之數位輸出機制 | |
| US12279428B2 (en) | Input and output blocks for an array of memory cells | |
| TWI814383B (zh) | 深度學習人工神經網路中類比神經記憶體的輸出電路 | |
| TWI784816B (zh) | 深度學習人工神經網路中類比神經記憶體之輸入及數位輸出機制 |