[go: up one dir, main page]

TWI903748B - System and method to generate digital output from vector-by-matrix multiplication array - Google Patents

System and method to generate digital output from vector-by-matrix multiplication array

Info

Publication number
TWI903748B
TWI903748B TW113134170A TW113134170A TWI903748B TW I903748 B TWI903748 B TW I903748B TW 113134170 A TW113134170 A TW 113134170A TW 113134170 A TW113134170 A TW 113134170A TW I903748 B TWI903748 B TW I903748B
Authority
TW
Taiwan
Prior art keywords
current
output
array
analog
row
Prior art date
Application number
TW113134170A
Other languages
Chinese (zh)
Other versions
TW202522259A (en
Inventor
曉萬 陳
安德魯庫尼爾 崔
華 武
Original Assignee
美商超捷公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US18/426,071 external-priority patent/US20250167799A1/en
Priority claimed from PCT/US2024/016783 external-priority patent/WO2025111009A1/en
Application filed by 美商超捷公司 filed Critical 美商超捷公司
Publication of TW202522259A publication Critical patent/TW202522259A/en
Application granted granted Critical
Publication of TWI903748B publication Critical patent/TWI903748B/en

Links

Abstract

In one example, a system comprises a vector-by-matrix multiplication array comprising an array of non-volatile memory cells arranged in rows and columns; and a sigma-delta analog-to-digital converter to receive a current from a column of the vector-by-matrix multiplication array and to generate a digital output in response to the current.

Description

用以從向量矩陣乘法陣列產生數位輸出的系統及方法System and method for generating digital output from a vector matrix multiplication array.

[優先權主張] [Priority Claim]

本申請案主張2023年11月20日申請之名稱為「向量矩陣乘法陣列的輸出電路(Output Circuit for a Vector-by-Matrix Multiplication Array)」的美國臨時專利申請案第63/601,049號及2024年1月29日申請之名稱為「用以從向量矩陣乘法陣列產生數位輸出的Σ-△類比至數位轉換器(Sigma-Delta Analog-to-Digital Converter to Generate Digital Output from Vector-by-Matrix Multiplication Array)」的美國專利申請案第18/426,071號的優先權。 This application claims priority to U.S. Provisional Patent Application No. 63/601,049, filed November 20, 2023, entitled "Output Circuit for a Vector-by-Matrix Multiplication Array," and U.S. Patent Application No. 18/426,071, filed January 29, 2024, entitled "Sigma-Delta Analog-to-Digital Converter to Generate Digital Output from Vector-by-Matrix Multiplication Array."

揭示用以從向量矩陣乘法陣列產生數位輸出之Σ-△類比至數位轉換器及相關聯方法的眾多實例。 Numerous examples of Σ-Δ analog-to-digital converters and related methods for generating digital outputs from vector-matrix multiplication arrays are revealed.

人工神經網路模擬生物神經網路(動物之中樞神經系統,尤其大腦)且用於估計或估算可取決於大量輸入且通常未知之功能。人工神經網路通常包括彼此之間交換訊息之互連「神經元」的層。 Artificial neural networks simulate biological neural networks (the central nervous system of animals, especially the brain) and are used to estimate or assess functions that depend on large amounts of input and are often unknown. Artificial neural networks typically consist of layers of interconnected "neurons" that exchange information with each other.

圖1說明人工神經網路,其中圓圈表示神經元之輸入或層。連接(稱為突觸)由箭頭表示,且具有可基於經驗進行調諧之數值權重。此 使得神經網路適應於輸入且能夠學習。通常,神經網路包括多個輸入之層。通常存在一或多個中間神經元層及提供神經網路之輸出的輸出神經元層。各層級處之神經元基於從突觸所接收之資料而個別地或共同地作出決策。 Figure 1 illustrates an artificial neural network, where circles represent neuronal inputs or layers. Connections (called synapses) are indicated by arrows and have numerical weights that can be tuned based on experience. This allows the neural network to adapt to inputs and learn. Typically, a neural network consists of multiple input layers. There are usually one or more intermediate neuron layers and output neuron layers that provide the network's outputs. Neurons at each layer make decisions individually or collectively based on data received from synapses.

開發用於高效能資訊處理之人工神經網路的主要挑戰中之一者在於缺乏充分的硬體技術。實際上,實際神經網路依賴於極大量之突觸,從而實現神經元之間的高連接性,亦即極高運算平行性。原則上,此複雜性可運用數位超級電腦或專門圖形處理單元叢集來達成。然而,除高成本以外,與生物網路相比,此等方法亦受中等能效困擾,主要係由於生物網路執行低精確度類比運算,因此其消耗少得多的能量。CMOS類比電路已用於人工神經網路,但鑒於大量神經元及突觸,大多數CMOS實施之突觸已過於龐大。 One of the major challenges in developing artificial neural networks for high-performance information processing is the lack of sufficient hardware technology. Real neural networks rely on a vast number of synapses to achieve high connectivity between neurons, i.e., extremely high computational parallelism. In principle, this complexity can be achieved using digital supercomputers or dedicated clusters of graphics processing units. However, in addition to high cost, these methods are also hampered by moderate energy efficiency compared to biological networks, primarily because biological networks perform low-precision analog operations and therefore consume far less energy. CMOS analog circuits have been used in artificial neural networks, but given the large number of neurons and synapses, most CMOS implementations have excessively large synapses.

申請人先前在美國專利申請公開案2017/0337466A1中揭示一種利用一或多個非揮發性記憶體陣列作為突觸之人工(類比)神經網路,該美國專利申請公開案以引用之方式併入。非揮發性記憶體陣列操作為類比神經記憶體,且包含配置成列及行之非揮發性記憶體胞元。神經網路包括:第一複數個突觸,其經組構以接收第一複數個輸入且從其產生第一複數個輸出;及第一複數個神經元,其經組構以接收第一複數個輸出。第一複數個突觸包括複數個記憶體胞元,其中記憶體胞元中之各者包括:間隔開的源極區及汲極區,其形成於半導體基板中,其中通道區在源極區與汲極區之間延伸;浮動閘極,其裝設於通道區之第一部分上方且與該第一部分絕緣;及非浮動閘極,其裝設於通道區之第二部分上方且與該第二部分絕緣。複數個記憶體胞元中之各者儲存對應於浮動閘極上之電子數 目的權重值。複數個記憶體胞元將第一複數個輸入乘以所儲存權重值,以產生第一複數個輸出。 The applicant previously disclosed an artificial (analog) neural network utilizing one or more nonvolatile memory arrays as synapses in U.S. Patent Application Publication 2017/0337466A1, which is incorporated herein by reference. The nonvolatile memory arrays operate as analog neural memory and include nonvolatile memory cells arranged in columns and rows. The neural network includes: a first plurality of synapses wired to receive a first plurality of inputs and generate a first plurality of outputs therefrom; and a first plurality of neurons wired to receive the first plurality of outputs. The first plurality of synapses include a plurality of memory cells, each of which includes: spaced-apart source and drain regions formed in a semiconductor substrate, wherein a channel region extends between the source and drain regions; a floating gate disposed above and insulated from a first portion of the channel region; and a non-floating gate disposed above and insulated from a second portion of the channel region. Each of the plurality of memory cells stores a weighted value corresponding to the number of electrons on the floating gate. The plurality of memory cells multiply the first plurality of inputs by the stored weighted values to generate the first plurality of outputs.

非揮發性記憶體胞元 Non-volatile memory cells

非揮發性記憶體為熟知的。舉例而言,以引用之方式併入本文中的美國專利5,029,130(「'130專利」)揭示一種分離閘極非揮發性記憶體胞元陣列,其為一種類型之快閃記憶體胞元。此記憶體胞元210展示於圖2中。各記憶體胞元210包括形成於半導體基板12中之源極區14及汲極區16,其中通道區18位於該源極區與該汲極區之間。浮動閘極20形成於通道區18之第一部分上方且與該第一部分絕緣(且控制該第一部分之導電性),且形成於源極區14之一部分上方。字元線端子22(其通常耦接至字元線)具有裝設於通道區18之第二部分上方且與該第二部分絕緣(且控制該第二部分之導電性)的第一部分,及在浮動閘極20上及上方延伸的第二部分。浮動閘極20及字元線端子22藉由閘極氧化物與基板12絕緣。位元線24耦接至汲極區16。 Non-volatile memory is well known. For example, U.S. Patent 5,029,130 (“130 Patent”), incorporated herein by reference, discloses a discrete gate array of non-volatile memory cells, which is a type of flash memory cell. This memory cell 210 is shown in FIG. 2. Each memory cell 210 includes a source region 14 and a drain region 16 formed in a semiconductor substrate 12, wherein a channel region 18 is located between the source region and the drain region. A floating gate 20 is formed above and insulated from (and controls the conductivity of) a first portion of the channel region 18, and is formed above a portion of the source region 14. The character line terminal 22 (which is typically coupled to a character line) has a first portion disposed above and insulated from (and controlling the conductivity of) a second portion of the channel region 18, and a second portion extending above and on the floating gate 20. The floating gate 20 and the character line terminal 22 are insulated from the substrate 12 by a gate oxide. The bit line 24 is coupled to the drain region 16.

記憶體胞元210藉由將高正電壓置放於字元線端子22上來抹除(其中電子從浮動閘極移除),此使得浮動閘極20上之電子經由佛勒-諾德翰(Fowler-Nordheim;FN)穿隧從浮動閘極20穿過中間絕緣件穿隧至字元線端子22。 Memory cell 210 is erased by applying a high positive voltage to word line terminal 22 (whereby electrons are removed from the floating gate). This causes electrons on the floating gate 20 to tunnel through the intermediate insulation from the floating gate 20 to the word line terminal 22 via Fowler-Nordheim (FN) tunneling.

記憶體胞元210係藉由將正電壓置放於字元線端子22上且將正電壓置放於源極區14上而藉由運用熱電子之源極側注入(SSI)來經程式化(其中電子置放於浮動閘極上)。電子電流將從汲極區16朝向源極區14流動。當電子到達字元線端子22與浮動閘極20之間的間隙時,該等電子將加速且被加熱。經加熱電子中之一些將由於來自浮動閘極20之吸引靜電力而穿過閘極氧化物注入至浮動閘極20上。 Memory cell 210 is programmed by source-side injection (SSI) of hot electrons (where electrons are placed on a floating gate) by applying a positive voltage to word line terminals 22 and a positive voltage to source region 14. Electron current flows from drain region 16 towards source region 14. When electrons reach the gap between word line terminals 22 and floating gate 20, they are accelerated and heated. Some of the heated electrons are injected into floating gate 20 through the gate oxide due to the attractive electrostatic force from floating gate 20.

記憶體胞元210藉由將正讀取電壓置放於汲極區16及字元線端子22上而讀取(此接通通道區18之位於字元線端子下方的部分)。若浮動閘極20帶正電(亦即,電子經抹除),則通道區18之位於浮動閘極20下方的部分亦接通,且電流將跨越通道區18流動,此經感測為抹除或「1」狀態。若浮動閘極20帶負電(亦即,運用電子程式化),則通道區之位於浮動閘極20下方的部分大部分或完全斷開,且電流將不跨越通道區18流動(或將有極少電流跨越該通道區流動),此經感測為程式化或「0」狀態。 Memory cell 210 reads data by applying a positive read voltage to the drain region 16 and word line terminal 22 (connecting the portion of channel region 18 located below the word line terminal). If the floating gate 20 is positively charged (i.e., electrons are erased), the portion of channel region 18 located below the floating gate 20 is also connected, and current flows across channel region 18; this is detected as erased or a "1" state. If the floating gate 20 is negatively charged (i.e., electronically programmed), the portion of channel region located below the floating gate 20 is mostly or completely disconnected, and current does not flow across channel region 18 (or a very small amount of current flows across the channel region); this is detected as programmed or a "0" state.

表1描繪可施加至記憶體胞元210之端子以用於執行讀取、抹除及程式化操作的典型電壓及電流範圍: Table 1 depicts the typical voltage and current ranges that can be applied to the terminals of memory cell 210 for performing read, erase, and programming operations:

其他分離閘極記憶體胞元組構為已知的,其為其他類型之快閃記憶體胞元。舉例而言,圖3描繪四閘極記憶體胞元310,其包含源極區14、汲極區16、位於通道區18之第一部分上方的浮動閘極20、位於通道區18之第二部分上方的選擇閘極22(通常耦接至字元線WL)、位於浮動閘極20上方的控制閘極28,及位於源極區14上方的抹除閘極30。此組構描述於美國專利6,747,310中,該專利出於所有目的以引用之方式併入本文中。此處,除浮動閘極20以外,所有閘極皆為非浮動閘極,此意謂其電連接或可電連接至電壓源。程式化藉由來自通道區18之經加熱電子將自身注入至浮動閘極20上來執行。抹除藉由電子從浮動閘極20穿隧至抹除閘極30來執行。 Other isolated gate memory cell configurations are known, which are other types of flash memory cells. For example, Figure 3 depicts a four-gate memory cell 310, which includes a source region 14, a drain region 16, a floating gate 20 located above a first portion of a channel region 18, a selection gate 22 located above a second portion of the channel region 18 (typically coupled to a word line WL), a control gate 28 located above the floating gate 20, and an erase gate 30 located above the source region 14. This configuration is described in U.S. Patent 6,747,310, which is incorporated herein by reference for all purposes. Here, except for the floating gate 20, all gates are non-floating gates, meaning they are electrically connected or can be electrically connected to a voltage source. Programming is performed by injecting heated electrons from channel region 18 into the floating gate 20. Erasure is performed by electrons tunneling from the floating gate 20 to the erase gate 30.

表2描繪可施加至記憶體胞元310之端子以用於執行讀取、抹除及程式化操作的典型電壓及電流範圍: Table 2 depicts the typical voltage and current ranges that can be applied to the terminals of memory cell 310 for performing read, erase, and programming operations:

圖4描繪三閘極記憶體胞元410,其為另一類型之快閃記憶體胞元。記憶體胞元410與圖3之記憶體胞元310相同,不同之處在於,記憶體胞元410不具有單獨控制閘極。抹除操作(其中抹除通過使用抹除閘極來進行)及讀取操作類似於圖3之抹除操作及讀取操作,不同之處在於,未施加控制閘極偏壓。程式化操作亦在無控制閘極偏壓之情況下進行,且因此,較高電壓在程式化操作期間施加於源極線上以補償控制閘極偏壓之缺乏。 Figure 4 depicts a three-gate memory cell 410, another type of flash memory cell. Memory cell 410 is identical to memory cell 310 in Figure 3, except that it does not have a separate control gate. Erasure operations (where erasure is performed using an erase gate) and read operations are similar to those in Figure 3, except that no control gate bias is applied. Programming operations are also performed without a control gate bias, and therefore, a higher voltage is applied to the source line during programming operations to compensate for the lack of a control gate bias.

表3描繪可施加至記憶體胞元410之端子以用於執行讀取、抹除及程式化操作的典型電壓及電流範圍: Table 3 depicts the typical voltage and current ranges that can be applied to the terminals of memory cell 410 for performing read, erase, and programming operations:

圖5描繪堆疊之閘極記憶體胞元510,其為另一類型之快閃記憶體胞元。記憶體胞元510類似於圖2之記憶體胞元210,不同之處在於,浮動閘極20在整個通道區18上方延伸,且控制閘極22(其在此處將耦接至字元線)在浮動閘極20上方延伸,該控制閘極與該浮動閘極藉由絕緣層(未展示)分離。該抹除藉由電子從FG至基板之FN穿隧來進行,程式化藉由在通道18與汲極區16之間的區處進行通道熱電子(CHE)注入、藉由電 子從源極區14朝向汲極區16流動來進行,且讀取操作類似於針對具有較高控制閘極電壓之記憶體胞元210的讀取操作。 Figure 5 depicts a stacked gate memory cell 510, which is another type of flash memory cell. Memory cell 510 is similar to memory cell 210 in Figure 2, except that a floating gate 20 extends over the entire channel area 18, and a control gate 22 (which will be coupled to the character line here) extends over the floating gate 20. The control gate and the floating gate are separated by an insulating layer (not shown). The erasure is performed by electron tunneling from the source region (FG) to the substrate via the source region (FN). The process is programmed by hot channel electron (CHE) injection in the region between the channel 18 and the drain region 16, with electrons flowing from the source region 14 towards the drain region 16. The read operation is similar to that for a memory cell 210 with a higher control gate voltage.

表4描繪可施加至記憶體胞元510之端子及基板12以用於執行讀取、抹除及程式化操作的典型電壓範圍: Table 4 depicts the typical voltage range that can be applied to the terminals and substrate 12 of the memory cell 510 for performing read, erase, and programming operations:

本文中所描述之方法及手段可應用於其他非揮發性記憶體技術,諸如但不限於FINFET分離閘極快閃或堆疊閘極快閃記憶體、NAND快閃、SONOS(矽-氧化物-氮化物-氧化物-矽,氮化物中之電荷捕捉)、MONOS(金屬-氧化物-氮化物-氧化物-矽,氮化物中之金屬電荷捕捉)、ReRAM(電阻式ram)、PCM(相變記憶體)、MRAM(磁性ram)、FeRAM(鐵電ram)、CT(電荷捕捉)記憶體、CN(碳管)記憶體、OTP(雙層級或多層級一次性可程式化)及CeRAM(相關電子ram)。 The methods and techniques described herein can be applied to other non-volatile memory technologies, such as, but not limited to, FinFET gate flash or stacked gate flash memory, NAND flash, SONOS (silicon-oxide-nitride-oxide-silicon, charge trapping in nitrides), MONOS (metal-oxide-nitride-oxide-silicon, metal charge trapping in nitrides), ReRAM (resistive RAM), PCM (phase change memory), MRAM (magnetic RAM), FeRAM (ferroelectric RAM), CT (charge trapping) memory, CN (carbon nanotube) memory, OTP (two-level or multi-level one-time programmable), and CeRAM (correlated electronic RAM).

為了在人工神經網路中利用包含上文所描述之非揮發性記憶體胞元類型中之一者的記憶體陣列,進行兩個修改。第一,線被組構成使得各記憶體胞元可個別地經程式化、抹除及讀取而不會不利地影響陣列中之其他記憶體胞元的記憶體狀態,如下文進一步解釋。第二,提供記憶體胞元之連續(類比)程式化。 To utilize memory arrays containing one of the nonvolatile memory cell types described above in artificial neural networks, two modifications are made. First, the lines are configured such that each memory cell can be individually programmed, erased, and read without adversely affecting the memory state of other memory cells in the array, as explained further below. Second, continuous (analogous) programming of memory cells is provided.

具體而言,陣列中之各記憶體胞元的記憶體狀態(亦即,浮動閘極上之電荷)可獨立地且在最少干擾其他記憶體胞元之情況下連續地從完全抹除狀態改變至完全程式化狀態,且反之亦然。此意謂胞元儲存器有效地類比或至少可儲存許多離散值(諸如,16或64個不同值)中之一者,此允許記憶體陣列中之所有記憶體胞元的極精確及個別調諧,且此使 得記憶體陣列對於儲存及對神經網路之突觸權重進行微調調整而言係理想的。 Specifically, the memory state (i.e., the charge on the floating gate) of each memory cell in the array can independently and continuously change from a completely erased state to a fully programmed state, and vice versa, with minimal interference to other memory cells. This means that the cell memory can effectively analog to or at least store one of many discrete values (e.g., 16 or 64 different values), allowing for extremely precise and individual tuning of all memory cells in the memory array, and making the memory array ideal for storing and fine-tuning the synaptic weights of neural networks.

採用非揮發性記憶體胞元陣列之神經網路 Neural networks employing non-volatile memory cell arrays

圖6在概念上說明利用本發明實例之非揮發性記憶體陣列的神經網路之非限制性實例。此實例將非揮發性記憶體陣列神經網路用於人臉辨識應用,但任何其他適當應用皆可使用基於非揮發性記憶體陣列之神經網路來實施。 Figure 6 conceptually illustrates a non-limiting example of a neural network utilizing a non-volatile memory array, as described in this invention. This example uses a non-volatile memory array neural network for facial recognition applications, but any other suitable application can be implemented using a neural network based on a non-volatile memory array.

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之所有特徵圖。 S0 is the input layer. In this example, the input layer is a 32×32 pixel RGB image with 5-bit precision (i.e., three 32×32 pixel arrays, one array for each color (R, G, and B), and each pixel with 5-bit precision). The synapse CB1 that enters layer C1 from input layer S0 applies different weight sets in some cases and shared weights in others. The input image is scanned with a 3×3 pixel overlay filter (core), shifting the filter by 1 pixel (or more than 1 pixel, as specified by the model). Specifically, the values of nine pixels in a 3×3 portion of the image (i.e., the filter or core) are provided to synapse CB1. These nine input values are multiplied by appropriate weights, and after summing the outputs of the multiplications, a single output value is determined and provided by the first synapse of CB1 to generate a pixel in the feature map of layer C1. The 3×3 filter is then shifted one pixel to the right within the input layer S0 (i.e., a row of three pixels is added on the right and a row of three pixels is discarded on the left), thereby providing the nine pixel values in this newly positioned filter to synapse CB1. These pixel values are multiplied by the same weights, and a second single output value is determined by the associated synapse. This process continues until the 3×3 filter has scanned the entire 32×32 pixel image across all three colors and all bits (precision values) of the input layer S0. The process is then repeated using different weight sets to generate different feature maps for layer C1, until all feature maps for layer C1 have been calculated.

在本發明實例中,在層C1中存在16個特徵圖,各特徵圖具有30×30個像素。各像素為從輸入與核心相乘而提取之新特徵像素,且因此各特徵圖為二維陣列,且因此在此實例中,層C1構成二維陣列之16個層(謹記,本文中所引用之層及陣列為邏輯關係,且可能不對應於實體關係,亦即,陣列可能不在實體二維陣列中定向)。層C1中之16個特徵圖中的各者由應用於濾波器掃描之突觸權重之十六個不同集合中的一者產生。C1特徵圖皆可係針對同一影像特徵之不同態樣,諸如邊界識別。舉例而言,第一圖(使用第一權重集合產生,對於用於產生此第一圖之所有掃描共用)可識別圓形邊緣,第二圖(使用不同於第一權重集合之第二權重集合產生)可識別矩形邊緣,或某些特徵之縱橫比等。 In this embodiment of the invention, there are 16 feature maps in layer C1, each with 30×30 pixels. Each pixel is a new feature pixel extracted by multiplying the input by the kernel, and therefore each feature map is a two-dimensional array. Thus, in this embodiment, layer C1 constitutes 16 layers of two-dimensional arrays (note that the terms "layer" and "array" as used herein are logical relations and may not correspond to physical relations; that is, the array may not be oriented in a physical two-dimensional array). Each of the 16 feature maps in layer C1 is generated from one of sixteen different sets of synaptic weights applied to filter scanning. The C1 feature maps can all be different forms of the same image feature, such as boundary recognition. For example, a first image (generated using a first set of weights, shared by all scans used to generate this first image) can identify circular edges, while a second image (generated using a second set of weights different from the first set) can identify rectangular edges, or aspect ratios of certain features, etc.

在從層C1進入層S1之前應用激勵函數P1(池化(pooling)),其池化來自各特徵圖中之連續非重疊2×2區的值。池化函數P1之目的為使附近位置達到平均數(或亦可使用最大函數),以例如減少邊緣位置之相依性且在進入下一階段之前減小資料大小。在層S1處,存在16個15×15特徵圖(亦即,各自具有15×15像素之十六個不同陣列)。從層S1進入層C2之突觸CB2運用4×4個濾波器掃描層S1中之圖,其中濾波器移位1個像素。在層C2處,存在22個12×12特徵圖。在從層C2進入層S2之前應用激勵函數P2(池化),其池化來自各特徵圖中之連續非重疊2×2區的值。在層S2處,存在22個6×6特徵圖。在從層S2進入層C3之突觸CB3處應用激勵函數(池化),其中層C3中之每個神經元經由CB3之各別突觸連接至層S2中之每個圖。在層C3處,存在64個神經元。從層C3進入輸出層S3之突觸CB4將C3完全連接至S3,亦即,層C3中之每個神經元連接至層S3中之每個神經元。層S3處之輸出包括10個神經元,其中最高輸出神經元判定類別。此輸出可例如指示原始影像之內容的識別或分類。 Before entering layer S1 from layer C1, an excitation function P1 (pooling) is applied, with pooling derived from the values of consecutive, non-overlapping 2×2 regions in each feature map. The purpose of pooling function P1 is to average the values of nearby locations (or, alternatively, to use a max function), for example, to reduce the dependency of edge locations and decrease the data size before moving to the next stage. At layer S1, there are 16 15×15 feature maps (i.e., sixteen different arrays, each with 15×15 pixels). The synapse CB2, which allows entry from layer S1 into layer C2, scans the map in layer S1 using a 4×4 filter, with each filter shifted by one pixel. At layer C2, there are 22 12×12 feature maps. An excitation function P2 (pooling) is applied before entering layer S2 from layer C2. This pooling is derived from the values of consecutive, non-overlapping 2×2 regions in each feature map. At layer S2, there are 22 6×6 feature maps. An excitation function (pooling) is applied at the synapse CB3, which connects layer S2 to layer C3. Each neuron in layer C3 is connected to each feature map in layer S2 via individual synapses in CB3. At layer C3, there are 64 neurons. The synapse CB4, which connects layer C3 to the output layer S3, completely connects C3 to S3; that is, each neuron in layer C3 is connected to every neuron in layer S3. The output at layer S3 comprises 10 neurons, with the highest output neuron determining the category. This output can, for example, indicate the identification or classification of the content of the original image.

各突觸層係使用非揮發性記憶體胞元之陣列或陣列之一部分來實施的。 Each synaptic layer is implemented using arrays or portions of nonvolatile memory cells.

圖7為可用於彼目的之陣列的方塊圖。向量矩陣乘法(VMM)陣列32包括非揮發性記憶體胞元,且被用作一層與下一層之間的突觸(諸如圖6中之CB1、CB2、CB3及CB4)。具體而言,VMM陣列32包括非揮發性記憶體胞元陣列33、抹除閘極及字元線閘極解碼器34、控制閘極解碼器35、位元線解碼器36及源極線解碼器37,該等解碼器對非揮發性記憶體胞元陣列33之各別輸入進行解碼。至VMM陣列32之輸入可來自抹除閘極及字元線閘極解碼器34或來自控制閘極解碼器35。在此實例中,源極線解碼器37亦對非揮發性記憶體胞元陣列33之輸出進行解碼。替代地,位元線解碼器36可對非揮發性記憶體胞元陣列33之輸出進行解碼。 Figure 7 is a block diagram of the array that can be used for that purpose. The Vector Matrix Multiplication (VMM) array 32 includes non-volatile memory cells and is used as synapses between layers (such as CB1, CB2, CB3, and CB4 in Figure 6). Specifically, the VMM array 32 includes a non-volatile memory cell array 33, an erase gate and character line gate decoder 34, a control gate decoder 35, a bit line decoder 36, and a source line decoder 37, which decode the respective inputs of the non-volatile memory cell array 33. The inputs to the VMM array 32 can come from the erase gate and character line gate decoder 34 or from the control gate decoder 35. In this example, the source line decoder 37 also decodes the output of the non-volatile memory cell array 33. Alternatively, the bit line decoder 36 can decode the output of the non-volatile memory cell array 33.

非揮發性記憶體胞元陣列33用於兩個目的。第一,其儲存將由VMM陣列32使用之權重。第二,非揮發性記憶體胞元陣列33有效地將輸入乘以儲存於非揮發性記憶體胞元陣列33中之權重,且按輸出線(源極線或位元線)將結果相加以產生輸出,該輸出將為至下一層之輸入或至最終層之輸入。藉由執行乘法及加法函數,非揮發性記憶體胞元陣列33消除對單獨的乘法及加法邏輯電路之需求,且由於其原位記憶體運算而亦為功率高效的。 The non-volatile memory cell array 33 serves two purposes. First, it stores the weights to be used by the VMM array 32. Second, the non-volatile memory cell array 33 efficiently multiplies the input by the weights stored in it and adds the results along the output lines (source lines or bit lines) to produce an output that will serve as the input to the next layer or the final layer. By performing multiplication and addition functions, the non-volatile memory cell array 33 eliminates the need for separate multiplication and addition logic circuits and is also power efficient due to its in-situ memory operations.

非揮發性記憶體胞元陣列33之輸出被供應至差分求和器(諸如求和運算放大器或求和電流鏡)38,該差分求和器對非揮發性記憶體胞元陣列33之輸出求和以產生用於彼卷積之單個值。差分求和器38經配置以執行正權重與負權重之求和。 The output of the nonvolatile memory cell array 33 is supplied to a differential summer (such as a summing operational amplifier or a summing current mirror) 38, which sums the output of the nonvolatile memory cell array 33 to produce a single value for convolution. The differential summer 38 is configured to perform summation of positive and negative weights.

接著將差分求和器38之總計輸出值供應至激勵函數區塊39,該激勵函數區塊對輸出進行糾正。激勵函數區塊39可提供S型(sigmoid)、雙曲正切(tanh)或ReLU函數。激勵函數區塊39之經糾正輸出值變成作為下一層(例如,圖6中之C1)之特徵圖的元素,且接著應用於下一突觸以產生下一特徵圖層或最終層。因此,在此實例中,非揮發性記憶體胞元陣列33構成複數個突觸(其從前一神經元層或從諸如影像資料庫之輸入層接收該等突觸之輸入),且求和運算放大器38及激勵函數區塊39構成複數個神經元。 The total output value of the difference summer 38 is then supplied to the excitation function block 39, which corrects the output. The excitation function block 39 can provide a sigmoid, hyperbolic tangent, or ReLU function. The corrected output value of the excitation function block 39 becomes an element of the feature map of the next layer (e.g., C1 in Figure 6), and is then applied to the next synapse to produce the next feature map layer or the final layer. Therefore, in this example, the nonvolatile memory cell array 33 constitutes a plurality of synapses (which receive inputs from the preceding neuronal layer or from an input layer such as an image database), and the summing operational amplifier 38 and the excitation function block 39 constitute a plurality of neurons.

至圖7中之VMM陣列32的輸入(WLx,Egx,CGx,以及選擇地BLx及SLx)可為類比層級、二進位層級或數位位元(在此情況下,DAC被設置成為將數位位元轉換成適當輸入類比層級),且輸出可為類比層級、二進位層級或數位位元(在此情況下,輸出ADC被設置成為將輸出類比層級轉換成數位位元)。 The inputs (WLx, Egx, CGx, and optionally BLx and SLx) to the VMM array 32 in Figure 7 can be analog, binary, or digital (in which case, the DAC is configured to convert digital bits to the appropriate input analog level), and the outputs can be analog, binary, or digital (in which case, the output ADC is configured to convert the output analog level to digital bits).

圖8為描繪此處標記為VMM陣列32a、32b、32c、32d及32e之VMM陣列32的眾多層之使用的方塊圖。如圖8中所展示,表示為Inputx之輸入由數位至類比轉換器31從數位轉換成類比,且被提供至輸入VMM陣列32a。經轉換類比輸入可為電壓或電流。第一層之輸入D/A轉換可藉由使用函數或LUT(查找表)來進行,該函數或LUT將輸入Inputx映射至用於輸入VMM陣列32a之矩陣乘法器的適當類比層級。輸入轉換亦可藉由類比至類比(A/A)轉換器來進行,以將外部類比輸入轉換成至輸入VMM陣列32a之經映射類比輸入。 Figure 8 is a block diagram depicting the use of the various layers of VMM array 32, labeled VMM arrays 32a, 32b, 32c, 32d, and 32e. As shown in Figure 8, the input to Inputx is converted from digital to analog by the digital-to-analog converter 31 and provided to the input VMM array 32a. The converted analog input can be voltage or current. The first-level input D/A conversion can be performed using a function or LUT (lookup table) that maps the input Inputx to the appropriate analog level for the matrix multiplier of the input VMM array 32a. Input conversion can also be performed using an analog-to-analog (A/A) converter to convert external analog inputs to mapped analog inputs to the input VMM array 32a.

由輸入VMM陣列32a產生之輸出被設置為至下一VMM陣列(隱藏層級1)32b之輸入,該下一VMM陣列又產生輸出,該輸出被設置為至下一VMM陣列(隱藏層級2)32c之輸入等。VMM陣列32之各種層充 當卷積神經網路(CNN)之突觸及神經元的不同層。各VMM陣列32a、32b、32c、32d及32e可為單獨的實體非揮發性記憶體陣列,或多個VMM陣列可利用同一實體非揮發性記憶體陣列之不同部分,或多個VMM陣列可利用同一實體非揮發性記憶體陣列之重疊部分。圖8中所展示之實例含有五個層(32a、32b、32c、32d、32e):一個輸入層(32a)、兩個隱藏層(32b、32c)及兩個完全連接層(32d、32e)。一般熟悉本技藝者應瞭解,此僅為實例,且系統替代地可包含多於兩個隱藏層及多於兩個完全連接層。 The output generated by the input VMM array 32a is set as the input to the next VMM array (hidden level 1) 32b, which in turn generates an output, which is set as the input to the next VMM array (hidden level 2) 32c, and so on. The various layers of the VMM array 32 serve as different layers of synapses and neurons in the convolutional neural network (CNN). Each VMM array 32a, 32b, 32c, 32d, and 32e can be a separate physical non-volatile memory array, or multiple VMM arrays can utilize different portions of the same physical non-volatile memory array, or multiple VMM arrays can utilize overlapping portions of the same physical non-volatile memory array. The example shown in Figure 8 contains five layers (32a, 32b, 32c, 32d, 32e): one input layer (32a), two hidden layers (32b, 32c), and two fully interconnected layers (32d, 32e). Those familiar with this technique should understand that this is merely an example, and the system may alternatively contain more than two hidden layers and more than two fully linked layers.

向量矩陣乘法(VMM)陣列 Vector Matrix Multiplication (VMM) Array

圖9描繪神經元VMM陣列900,其尤其適合於如圖3中所展示之記憶體胞元310,且被用作輸入層與下一層之間的突觸及神經元部分。VMM陣列900包含非揮發性記憶體胞元之記憶體陣列901及非揮發性參考記憶體胞元之參考陣列902(在陣列之頂部)。替代地,另一參考陣列可置放於底部處。 Figure 9 depicts a neuronal VMM array 900, which is particularly suitable for memory cells 310 as shown in Figure 3, and is used as the synaptic and neuronal portion between the input layer and the next layer. The VMM array 900 includes a memory array 901 of nonvolatile memory cells and a reference array 902 of nonvolatile reference memory cells (at the top of the array). Alternatively, another reference array may be placed at the bottom.

在VMM陣列900中,諸如控制閘極線903之控制閘極線在垂直方向上延行(因此,參考陣列902在列方向上與控制閘極線903正交),且諸如抹除閘極線904之抹除閘極線在水平方向上延行。此處,至VMM陣列900之輸入被設置於控制閘極線(CG0、CG1、CG2、CG3)上,且VMM陣列900之輸出出現於源極線(SL0、SL1)上。在一個實例中,使用偶數列,且在另一實例中,使用奇數列。置放於各源極線(分別為SL0、SL1)上之電流對來自連接至彼特定源極線之記憶體胞元的所有電流執行求和函數。 In the VMM array 900, control gate lines such as control gate line 903 extend vertically (therefore, reference array 902 is orthogonal to control gate line 903 in the column direction), and erase gate lines such as erase gate line 904 extend horizontally. Here, the inputs to the VMM array 900 are set on the control gate lines (CG0, CG1, CG2, CG3), and the outputs of the VMM array 900 appear on the source lines (SL0, SL1). In one example, even-numbered columns are used, and in another example, odd-numbered columns are used. The current placed on each source line (SL0, SL1, etc.) is summed against all currents from memory cells connected to that specific source line.

如本文中針對神經網路所描述,VMM陣列900之非揮發性記憶體胞元,亦即VMM陣列900之記憶體胞元310,可被組構成在次臨限區中操作。 As described in this paper regarding neural networks, the nonvolatile memory cells of VMM array 900, namely memory cells 310 of VMM array 900, can be configured to operate in subcritical regions.

本文中所描述之非揮發性參考記憶體胞元及非揮發性記憶體胞元在弱反轉(次臨限區)中經偏壓:Ids=Io * e(Vg-Vth)/nVt=w * Io * e(Vg)/nVt The nonvolatile reference memory cell and the nonvolatile memory cell described in this article are biased in weak inversion (subcritical region): Ids = Io * e (Vg - Vth)/nVt = w * Io * e (Vg)/nVt

其中w=e(-Vth)/nVt Where w = e (-Vth)/nVt

其中Ids為汲極至源極電流;Vg為記憶體胞元上之閘極電壓;Vth為記憶體胞元之臨限電壓;Vt為熱電壓=k*T/q,其中k為波茲曼常數(Boltzmann constant),T為以克耳文(Kelvin)為單位之溫度,且q為電子電荷;n為斜率因數=1+(Cdep/Cox),其中Cdep=空乏層之電容,且Cox為閘極氧化物層之電容;Io為等於臨限電壓之閘極電壓下的記憶體胞元電流,Io為與(Wt/L)*u*Cox*(n-1)* Vt2成比例,其中u為記憶體胞元之載流子遷移率,且Wt及L分別為寬度及長度。 Where Ids is the drain-to-source current; Vg is the gate voltage on the memory cell; Vth is the critical voltage of the memory cell; Vt is the thermoelectric pressure = k*T/q, where k is the Boltzmann constant, T is the temperature in Kelvin, and q is the electron charge; n is the slope factor = 1 + (Cdep/Cox), where Cdep = the capacitance of the depletion layer, and Cox is the capacitance of the gate oxide layer; Io is the memory cell current at the gate voltage equal to the critical voltage, and Io is the sum of (Wt/L)*u*Cox*(n-1)*Vt The ratio is 2 , where u is the carrier mobility of the memory cell, and Wt and L are the width and length, respectively.

對於使用記憶體胞元(諸如參考記憶體胞元或周邊記憶體胞元)或電晶體將輸入電流轉換成輸入電壓之I至V對數轉換器:Vg=n*Vt*log[Ids/wp*Io] For an I-to-V logarithmic converter that uses memory cells (such as reference memory cells or peripheral memory cells) or transistors to convert input current into input voltage: Vg = n * Vt * log[Ids/wp * Io]

其中,wp為參考或周邊記憶體胞元之w。 Where wp represents the w in the reference or peripheral memory cell.

對於用作具有電流輸入之向量矩陣乘法器VMM陣列之記憶體陣列,輸出電流為:Iout=wa * Io * e(Vg)/nVt,亦即Iout=(wa/wp)* Iin=W * Iin For a memory array used as a vector matrix multiplier (VMM) with current input, the output current is: Iout = wa * Io * e (Vg)/nVt , or Iout = (wa/wp) * Iin = W * Iin

W=e(Vthp-Vtha)/nVt W=e (Vthp-Vtha)/nVt

此處,wa=記憶體陣列中之各記憶體胞元之w。 Here, wa = w of each memory cell in the memory array.

Vthp為周邊記憶體胞元之有效臨限電壓,且Vtha為主(資料)記憶體胞元之有效臨限電壓。應注意,電晶體之臨限電壓為基板主體偏壓電壓之 函數,且表示為Vsb之基板主體偏壓電壓可經調變以補償此溫度下之各種條件。臨限電壓Vth可表述為:Vth=Vth0+γ(SQRT|Vsb-2*φF)-SQRT|2* φF|) Vthp is the effective threshold voltage of the peripheral memory cell, and Vtha is the effective threshold voltage of the main (data) memory cell. It should be noted that the threshold voltage of the transistor is a function of the substrate bias voltage, and the substrate bias voltage, expressed as Vsb, can be modulated to compensate for various conditions at this temperature. The threshold voltage Vth can be expressed as: Vth = Vth0 + γ(SQRT|Vsb - 2*φF) - SQRT|2*φF|)

其中Vth0為具有零基板偏壓之臨限電壓,φF為表面電位,且γ為體效應參數。 Where Vth0 is the threshold voltage with zero substrate bias, φF is the surface potential, and γ is the volume effect parameter.

字元線或控制閘極可用作記憶體胞元之用於輸入電壓的輸入。 Character lines or control gates can be used as inputs for input voltages in memory cells.

替代地,本文中所描述之VMM陣列之快閃記憶體胞元可被組構成在線性區中操作:Ids=β*(Vgs-Vth)*Vds;β=u*Cox*Wt/L Alternatively, the flash memory cells of the VMM array described in this paper can be configured to operate in a linear region: Ids = β*(Vgs - Vth)*Vds; β = u*Cox*Wt/L.

W=α(Vgs-Vth) W = α(Vgs - Vth)

此意謂線性區中之權重W與(Vgs-Vth)成比例。 This means that the weight W in the linear region is proportional to (Vgs - Vth).

字元線或控制閘極或位元線或源極線可用作在線性區中操作之記憶體胞元的輸入。位元線或源極線可用作記憶體胞元之輸出。 Character lines, control gates, bit lines, or source lines can be used as inputs to memory cells operating in the linear region. Bit lines or source lines can be used as outputs to memory cells.

對於I至V線性轉換器,在線性區中操作之記憶體胞元(諸如,參考記憶體胞元或周邊記憶體胞元)或電晶體可用於將輸入/輸出電流線性地轉換成輸入/輸出電壓。 For I-to-V linear converters, memory cells (e.g., reference memory cells or peripheral memory cells) or transistors operating in the linear region can be used to linearly convert input/output currents into input/output voltages.

替代地,本文中所描述之VMM陣列之記憶體胞元可被組構成在飽和區中操作:Ids=½* β*(Vgs-Vth)2;β=u*Cox*Wt/L Alternatively, the memory cells of the VMM array described herein can be configured to operate in saturation regions: Ids = ½ * β * (Vgs - Vth) ² ; β = u * Cox * Wt/L

Wα(Vgs-Vth)2,此意謂權重W與(Vgs-Vth)2成比例。 Wα(Vgs-Vth) 2 means that the weight W is proportional to (Vgs-Vth) 2 .

字元線、控制閘極或抹除閘極可用作在飽和區中操作之記憶體胞元之輸入。位元線或源極線可用作輸出神經元之輸出。 Character lines, control gates, or erase gates can be used as inputs to memory cells operating in the saturation region. Bit lines or source lines can be used as outputs to output neurons.

替代地,本文中所描述之VMM陣列之記憶體胞元可用於神經網路之各層或多層之所有區或其組合(次臨限區、線性區或飽和區)中。 Alternatively, the memory cells of the VMM array described herein can be used in all regions or combinations thereof (subcritical regions, linear regions, or saturation regions) of any or multiple layers of a neural network.

圖7之VMM陣列32的其他實例描述於美國專利第10,748,630號中,該專利以引用之方式併入本文中。如彼申請案中所描述,源極線或位元線可用作神經元輸出(電流求和輸出)。 Further examples of the VMM array 32 in Figure 7 are described in U.S. Patent No. 10,748,630, which is incorporated herein by reference. As described in that application, source lines or bit lines can be used as neural outputs (current summation outputs).

圖10描繪神經元VMM陣列1000,其尤其適合於如圖2中所展示之記憶體胞元210,且被用作輸入層與下一層之間的突觸。VMM陣列1000包含非揮發性記憶體胞元之記憶體陣列1003、第一非揮發性參考記憶體胞元之參考陣列1001及第二非揮發性參考記憶體胞元之參考陣列1002。配置於陣列之行方向上的參考陣列1001及1002用於將流動至端子BLR0、BLR1、BLR2及BLR3中之電流輸入轉換成至WL0、WL1、WL2及WL3之電壓輸入。實際上,第一非揮發性參考記憶體胞元及第二非揮發性參考記憶體胞元為二極體連接式貫穿多工器1014(部分描述),其中電流輸入流動至該等多工器中。參考胞元經調諧(例如,經程式化)至目標參考層級。目標參考層級由參考小型陣列矩陣(未展示)提供。 Figure 10 depicts a neuronal VMM array 1000, which is particularly suitable for memory cells 210 as shown in Figure 2 and is used as a synapse between the input layer and the next layer. The VMM array 1000 includes a memory array 1003 of nonvolatile memory cells, a reference array 1001 of first nonvolatile reference memory cells, and a reference array 1002 of second nonvolatile reference memory cells. The reference arrays 1001 and 1002, arranged in the row direction of the array, are used to convert current inputs flowing to terminals BLR0, BLR1, BLR2, and BLR3 into voltage inputs to WL0, WL1, WL2, and WL3. In practice, the first and second nonvolatile reference memory cells are diode-connected through-type multiplexers 1014 (partially described), through which current input flows. The reference cells are tuned (e.g., programmed) to a target reference level. The target reference level is provided by a reference miniature array matrix (not shown).

記憶體陣列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中之各者上的電流對來自連接至彼特定位元線之所有非揮發性記憶體胞元的電流執行求和函數。 The memory array 1003 serves two purposes. First, its storage will be based on the weights used by the VMM array 1000 in its individual memory cells. Second, the memory array 1003 effectively multiplies the inputs (i.e., the current inputs provided in terminals BLR0, BLR1, BLR2 and BLR3, wherein reference arrays 1001 and 1002 convert such current inputs into input voltages to supply word lines WL0, WL1, WL2 and WL3) by the weights stored in the memory array 1003, and then adds all the results (memory cell currents) to generate outputs on the respective bit lines (BL0 to BLN), which will be the input to the next layer or the input to the final layer. By performing multiplication and addition functions, the memory array 1003 eliminates the need for individual multiplication and addition logic circuits, and is also power efficient. Here, voltage inputs are located on word lines WL0, WL1, WL2, and WL3, and outputs appear on individual bit lines BL0 to BLN during read (inference) operations. The current placed on each of the bit lines BL0 to BLN performs a summation function on the current from all non-volatile memory cells connected to the bit lines.

表5描繪用於VMM陣列1000之操作電壓及電流。表中之行指示置放於以下各者上之電壓:用於選定胞元之字元線、用於未選定胞元之字元線、用於選定胞元之位元線、用於未選定胞元之位元線、用於選定胞元之源極線及用於未選定胞元之源極線。列指示讀取、抹除及程式化之操作。 Table 5 depicts the operating voltages and currents used for the VMM array 1000. The row indicators in the table are set to the following voltages: word lines for selected cells, word lines for unselected cells, bit lines for selected cells, bit lines for unselected cells, source lines for selected cells, and source lines for unselected cells. Column indicators are used for read, erase, and programming operations.

圖11描繪神經元VMM陣列1100,其尤其適合於如圖2中所展示之記憶體胞元210,且被用作輸入層與下一層之間的突觸及神經元部分。VMM陣列1100包含非揮發性記憶體胞元之記憶體陣列1103、第一非揮發性參考記憶體胞元之參考陣列1101及第二非揮發性參考記憶體胞元之參考陣列1102。參考陣列1101及1102在VMM陣列1100之列方向上延行。VMM陣列類似於VMM 1000,不同之處在於,在VMM陣列1100中,字元線在垂直方向上延行。此處,輸入被設置於字元線(WLA0、WLB0、WLA1、WLB1、WLA2、WLB2、WLA3、WLB3)上,且輸出在讀取操作期間出現於源極線(SL0、SL1)上。置放於各源極線上之電流對來自連接至彼特定源極線之記憶體胞元的所有電流執行求和函數。 Figure 11 depicts a neuronal VMM array 1100, which is particularly suitable for memory cells 210 as shown in Figure 2, and is used as a synaptic and neuronal portion between the input layer and the next layer. The VMM array 1100 includes a memory array 1103 of nonvolatile memory cells, a reference array 1101 of first nonvolatile reference memory cells, and a reference array 1102 of second nonvolatile reference memory cells. Reference arrays 1101 and 1102 extend in the column direction of the VMM array 1100. The VMM array is similar to VMM 1000, except that in VMM array 1100, the character lines extend in the vertical direction. Here, inputs are set on character lines (WLA0, WLB0, WLA1, WLB1, WLA2, WLB2, WLA3, WLB3), and outputs appear on source lines (SL0, SL1) during read operations. The current placed on each source line is summed against all currents from the memory cells connected to that particular source line.

表6描繪用於VMM陣列1100之操作電壓及電流。表中之行指示置放於以下各者上之電壓:用於選定胞元之字元線、用於未選定胞元之字元線、用於選定胞元之位元線、用於未選定胞元之位元線、用於選定胞元之源極線及用於未選定胞元之源極線。列指示讀取、抹除及程式化之操作。 Table 6 depicts the operating voltages and currents used for the VMM array 1100. The row indicators in the table are set to the following voltages: word lines for selected cells, word lines for unselected cells, bit lines for selected cells, bit lines for unselected cells, source lines for selected cells, and source lines for unselected cells. Column indicators are used for read, erase, and programming operations.

圖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)上的恆定電壓。參考胞元經調諧至目標參考層級。 Figure 12 depicts a neuronal VMM array 1200, which is particularly suitable for memory cells 310 as shown in Figure 3, and is used as a synaptic and neuronal portion between the input layer and the next layer. The VMM array 1200 includes a memory array 1203 of nonvolatile memory cells, a reference array 1201 of first nonvolatile reference memory cells, and a reference array 1202 of second nonvolatile reference memory cells. Reference arrays 1201 and 1202 are used to convert current inputs flowing to terminals BLR0, BLR1, BLR2, and BLR3 into voltage inputs CG0, CG1, CG2, and CG3. In practice, the first and second non-volatile reference memory cells are diode-connected through-multiplexers 1212 (partially shown), with current input flowing through BLR0, BLR1, BLR2, and BLR3. Each multiplexer 1212 includes a separate multiplexer 1205 and a series transistor 1204 to ensure a constant voltage on the bit lines (such as BLR0) of each of the first and second non-volatile reference memory cells during read operations. The reference cell is tuned to the target reference level.

記憶體陣列1203用於兩個目的。第一,其儲存將由VMM陣列1200使用之權重。第二,記憶體陣列1203有效地將輸入(提供至端子BLR0、BLR1、BLR2及BLR3之電流輸入,其中參考陣列1201及1202將 此等電流輸入轉換成輸入電壓以供應至控制閘極(CG0、CG1、CG2及CG3))乘以儲存於記憶體陣列中之權重,且接著將所有結果(胞元電流)相加以產生輸出,該輸出顯現於BL0至BLN上且將為至下一層之輸入或至最終層之輸入。藉由執行乘法及加法函數,記憶體陣列消除對個別乘法及加法邏輯電路之需求,且亦為功率高效的。此處,輸入設置於控制閘極線(CG0,CG1,CG2及CG3)上,且輸出在讀取操作期間出現於位元線(BL0至BLN)上。置放於各位元線上之電流對來自連接至彼特定位元線之記憶體胞元的所有電流執行求和函數。 The memory array 1203 serves two purposes. First, it stores the weights that will be used by the VMM array 1200. Second, the memory array 1203 effectively multiplies the inputs (current inputs provided to terminals BLR0, BLR1, BLR2, and BLR3, wherein reference arrays 1201 and 1202 convert these current inputs into input voltages to supply to the control gates (CG0, CG1, CG2, and CG3)) by the weights stored in the memory array, and then adds all the results (cell currents) to produce an output that appears on BL0 to BLN and will be the input to the next layer or the final layer. By performing multiplication and addition functions, the memory array eliminates the need for individual multiplication and addition logic circuits, and is also power-efficient. Here, the inputs are located on control gate lines (CG0, CG1, CG2, and CG3), and the outputs appear on bit lines (BL0 to BLN) during read operations. The current placed on each bit line performs a summation function on all currents from the memory cells connected to the bit positioner lines.

VMM陣列1200針對記憶體陣列1203中之非揮發性記憶體胞元實施單向調諧。亦即,各非揮發性記憶體胞元經抹除且接著經部分程式化,直至達到浮動閘極上之所要電荷。若過多電荷被置放於浮動閘極上(使得錯誤值儲存於胞元中),則胞元經抹除,且部分程式化操作之序列重新開始。如所展示,共用相同抹除閘極線(諸如EG0或EG1)之兩個列被一起抹除(此可稱為頁面抹除),且此後,各胞元經部分程式化,直至達到浮動閘極上之所要電荷。 The VMM array 1200 performs unidirectional modulation on the non-volatile memory cells in the memory array 1203. That is, each non-volatile memory cell is erased and then partially programmed until the desired charge is reached at the floating gate. If excessive charge is placed at the floating gate (causing an error value to be stored in the cell), the cell is erased, and the sequence of partial programming operations restarts. As shown, two columns sharing the same erase gate line (such as EG0 or EG1) are erased together (this can be called a page erase), and then each cell is partially programmed until the desired charge is reached at the floating gate.

表7描繪用於VMM陣列1200之操作電壓及電流。該表中之行指示置放於以下各者上之電壓:用於選定胞元之字元線、用於未選定胞元之字元線、用於選定胞元之位元線、用於未選定胞元之位元線、用於選定胞元之控制閘極、用於與選定胞元處於同一扇區中的未選定胞元之控制閘極、用於與選定胞元處於不同扇區中的未選定胞元之控制閘極、用於選定胞元之抹除閘極、用於未選定胞元之抹除閘極、用於選定胞元之源極線及用於未選定胞元之源極線。列指示讀取、抹除及程式化之操作。 Table 7 depicts the operating voltages and currents used in the VMM array 1200. The row indicators in this table are set to the following voltages: word lines for selected cells, word lines for unselected cells, bit lines for selected cells, bit lines for unselected cells, control gate for selected cells, control gate for unselected cells in the same sector as the selected cell, control gate for unselected cells in a different sector than the selected cell, erase gate for selected cells, erase gate for unselected cells, source lines for selected cells, and source lines for unselected cells. The column indicators handle read, erase, and programmed operations.

圖13描繪神經元VMM陣列1300,其尤其適合於如圖3中所展示之記憶體胞元310,且被用作輸入層與下一層之間的突觸及神經元部分。VMM陣列1300包含非揮發性記憶體胞元之記憶體陣列1303、第一非揮發性參考記憶體胞元之參考陣列1301及第二非揮發性參考記憶體胞元之參考陣列1302。EG線EGR0、EG0、EG1及EGR1垂直地延行,而CG線CG0、CG1、CG2及CG3以及WL線WL0、WL1、WL2及WL3水平地延行。VMM陣列1300類似於VMM陣列1400,不同之處在於,VMM陣列1300實施雙向調諧,其中由於個別EG線之使用,各個別胞元可視情況而定經完全抹除、部分程式化及部分抹除以達到浮動閘極上之所要電荷量。如所展示,參考陣列1301及1302將端子BLR0、BLR1、BLR2及BLR3中之輸入電流轉換成待在列方向上施加至記憶體胞元之控制閘極電壓CG0、CG1、CG2及CG3(通過二極體連接式參考胞元貫穿多工器1314進行之動作)。電流輸出(神經元)位於位元線BL0至BLN中,其中各位元線對來自連接至彼特定位元線之非揮發性記憶體胞元的所有電流進行求和。 Figure 13 depicts a neuronal VMM array 1300, which is particularly suitable for memory cells 310 as shown in Figure 3, and is used as a synaptic and neuronal portion between the input layer and the next layer. The VMM array 1300 includes a memory array 1303 of nonvolatile memory cells, a reference array 1301 of first nonvolatile reference memory cells, and a reference array 1302 of second nonvolatile reference memory cells. EG lines EGR0, EG0, EG1, and EGR1 extend vertically, while CG lines CG0, CG1, CG2, and CG3 and WL lines WL0, WL1, WL2, and WL3 extend horizontally. VMM array 1300 is similar to VMM array 1400, but the difference is that VMM array 1300 implements bidirectional tuning. Due to the use of individual EG lines, individual cells can be completely erased, partially programmed, or partially erased as needed to achieve the desired charge on the floating gate. As shown, reference arrays 1301 and 1302 convert the input current in terminals BLR0, BLR1, BLR2, and BLR3 into control gate voltages CG0, CG1, CG2, and CG3 to be applied to the memory cells in the column direction (operated by the diode-connected reference cell through multiplexer 1314). The current output (neuron) is located on bit lines BL0 to BLN, where each bit line sums the currents from all non-volatile memory cells connected to the Peter position bit line.

表8描繪用於VMM陣列1300之操作電壓及電流。該表中之行指示置放於以下各者上之電壓:用於選定胞元之字元線、用於未選定胞元之字元線、用於選定胞元之位元線、用於未選定胞元之位元線、用於選定胞元之控制閘極、用於與選定胞元處於同一扇區中的未選定胞元之控 制閘極、用於與選定胞元處於不同扇區中的未選定胞元之控制閘極、用於選定胞元之抹除閘極、用於未選定胞元之抹除閘極、用於選定胞元之源極線及用於未選定胞元之源極線。列指示讀取、抹除及程式化之操作。 Table 8 depicts the operating voltages and currents used in the VMM array 1300. The row indicators in this table are set to the following voltages: word lines for selected cells, word lines for unselected cells, bit lines for selected cells, bit lines for unselected cells, control gate for selected cells, control gate for unselected cells in the same sector as the selected cell, control gate for unselected cells in a different sector than the selected cell, erase gate for selected cells, erase gate for unselected cells, source lines for selected cells, and source lines for unselected cells. The column indicators handle read, erase, and programmed operations.

圖22描繪神經元VMM陣列2200,其尤其適合於如圖2中所展示之記憶體胞元210,且被用作輸入層與下一層之間的突觸及神經元部分。在VMM陣列2200中,輸入INPUT0、...、INPUTN分別接收於位元線BL0、...、BLN上,且輸出OUTPUT1、OUTPUT2、OUTPUT3及OUTPUT4分別產生於源極線SL0、SL1、SL2及SL3上。 Figure 22 depicts a neuronal VMM array 2200, which is particularly suitable for memory cell 210 as shown in Figure 2, and is used as a synapse and neuronal portion between the input layer and the next layer. In the VMM array 2200, inputs INPUT 0 , ..., INPUT N are received on bit lines BL 0 , ..., BL N , respectively, and outputs OUTPUT 1 , OUTPUT 2 , OUTPUT 3 and OUTPUT 4 are generated on source lines SL 0 , SL 1 , SL 2 and SL 3 , respectively.

圖23描繪神經元VMM陣列2300,其尤其適合於如圖2中所展示之記憶體胞元210,且被用作輸入層與下一層之間的突觸及神經元部分。在此實例中,輸入INPUT0、INPUT1、INPUT2及INPUT3分別接收於源極線SL0、SL1、SL2及SL3上,且輸出OUTPUT0、...、OUTPUTN產生於位元線BL0、...、BLN上。 Figure 23 depicts a neuronal VMM array 2300, which is particularly suitable for the memory cell 210 shown in Figure 2, and is used as a synapse and neuronal portion between the input layer and the next layer. In this example, inputs INPUT 0 , INPUT 1 , INPUT 2 and INPUT 3 are received on source lines SL 0 , SL 1 , SL 2 and SL 3 , respectively, and outputs OUTPUT 0 , ..., OUTPUT N are generated on bit lines BL 0 , ..., BL N.

圖24描繪神經元VMM陣列2400,其尤其適合於如圖2中所展示之記憶體胞元210,且被用作輸入層與下一層之間的突觸及神經元部分。在此實例中,輸入INPUT0、...、INPUTM分別接收於字元線WL0、...、WLM上,且輸出OUTPUT0、...、OUTPUTN產生於位元線BL0、...、BLN上。 Figure 24 depicts a neuronal VMM array 2400, which is particularly suitable for memory cell 210 as shown in Figure 2, and is used as a synapse and neuronal portion between the input layer and the next layer. In this example, inputs INPUT 0 , ..., INPUT M are received on word lines WL 0 , ..., WL M , respectively, and outputs OUTPUT 0 , ..., OUTPUT N are generated on bit lines BL 0 , ..., BL N.

圖25描繪神經元VMM陣列2500,其尤其適合於如圖3中所展示之記憶體胞元310,且被用作輸入層與下一層之間的突觸及神經元部分。在此實例中,輸入INPUT0、...、INPUTM分別接收於字元線WL0、...、WLM上,且輸出OUTPUT0、...、OUTPUTN產生於位元線BL0、...、BLN上。 Figure 25 depicts a neuronal VMM array 2500, which is particularly suitable for memory cell 310 as shown in Figure 3, and is used as a synapse and neuronal portion between the input layer and the next layer. In this example, inputs INPUT 0 , ..., INPUT M are received on word lines WL 0 , ..., WL M , respectively, and outputs OUTPUT 0 , ..., OUTPUT N are generated on bit lines BL 0 , ..., BL N.

圖26描繪神經元VMM陣列2600,其尤其適合於如圖4中所展示之記憶體胞元410,且被用作輸入層與下一層之間的突觸及神經元部分。在此實例中,輸入INPUT0、...、INPUTN分別接收於垂直控制閘極線CG0、...、CGN上,且輸出OUTPUT1及OUTPUT2產生於源極線SL0及SL1上。 Figure 26 depicts a neuronal VMM array 2600, which is particularly suitable for memory cell 410 as shown in Figure 4, and is used as a synapse and neuronal portion between the input layer and the next layer. In this example, inputs INPUT 0 , ..., INPUT N are received on vertical control gate lines CG 0 , ..., CG N , respectively, and outputs OUTPUT 1 and OUTPUT 2 are generated on source lines SL 0 and SL 1 .

圖27描繪神經元VMM陣列2700,其尤其適合於如圖4中所展示之記憶體胞元410,且被用作輸入層與下一層之間的突觸及神經元部分。在此實例中,輸入INPUT0、...、INPUTN分別接收於位元線控制閘極2701-1、2701-2、...、2701-(N-1)及2701-N之閘極上,該等閘極分別耦接至位元線BL0、...、BLN。實例輸出OUTPUT1及OUTPUT2產生於源極線SL0及SL1上。 Figure 27 depicts a neuronal VMM array 2700, which is particularly suitable for the memory cell 410 shown in Figure 4, and is used as a synapse and neuronal portion between the input layer and the next layer. In this example, inputs INPUT 0 , ..., INPUT N are received on the gates of bit line control gates 2701-1, 2701-2, ..., 2701-(N-1) and 2701-N, respectively, which are coupled to bit lines BL 0 , ..., BL N. Example outputs OUTPUT 1 and OUTPUT 2 are generated on source lines SL 0 and SL 1 .

圖28描繪神經元VMM陣列2800,其尤其適合於如圖3中所展示之記憶體胞元310、如圖5中所展示之記憶體胞元510及如圖7中所展示之記憶體胞元710,且被用作輸入層與下一層之間的突觸及神經元部分。在此實例中,輸入INPUT0、...、INPUTM接收於字元線WL0、...、WLM上,且輸出OUTPUT0、...、OUTPUTN分別產生於位元線BL0、...、BLN上。 Figure 28 depicts a neuronal VMM array 2800, which is particularly suitable for memory cells 310 as shown in Figure 3, memory cells 510 as shown in Figure 5, and memory cells 710 as shown in Figure 7, and is used as the synaptic and neuronal portion between the input layer and the next layer. In this example, inputs INPUT 0 , ..., INPUT M are received on word lines WL 0 , ..., WL M , and outputs OUTPUT 0 , ..., OUTPUT N are generated on bit lines BL 0 , ..., BL N, respectively.

圖29描繪神經元VMM陣列2900,其尤其適合於如圖3中所展示之記憶體胞元310、如圖5中所展示之記憶體胞元510及如圖7中所 展示之記憶體胞元710,且被用作輸入層與下一層之間的突觸及神經元部分。在此實例中,輸入INPUT0、...、INPUTM接收於控制閘極線CG0、...、CGM上。輸出OUTPUT0、...、OUTPUTN分別產生於垂直源極線SL0、...、SLN上,其中各源極線SLi耦接至行i中之所有記憶體胞元的源極線。 Figure 29 depicts a neuronal VMM array 2900, which is particularly suitable for memory cells 310 as shown in Figure 3, memory cells 510 as shown in Figure 5, and memory cells 710 as shown in Figure 7, and is used as the synaptic and neuronal portion between the input layer and the next layer. In this example, inputs INPUT 0 , ..., INPUT M are received on control gate lines CG 0 , ..., CG M. Outputs OUTPUT 0 , ..., OUTPUT N are generated on vertical source lines SL 0 , ..., SL N , respectively, wherein each source line SL i is coupled to the source line of all memory cells in row i.

圖30描繪神經元VMM陣列3000,其尤其適合於如圖3中所展示之記憶體胞元310、如圖5中所展示之記憶體胞元510及如圖7中所展示之記憶體胞元710,且被用作輸入層與下一層之間的突觸及神經元部分。在此實例中,輸入INPUT0、...、INPUTM接收於控制閘極線CG0、...、CGM上。輸出OUTPUT0、...、OUTPUTN分別產生於垂直位元線BL0、...、BLN上,其中各位元線BLi耦接至行i中之所有記憶體胞元的位元線。 Figure 30 depicts a neuronal VMM array 3000, which is particularly suitable for memory cells 310 as shown in Figure 3, memory cells 510 as shown in Figure 5, and memory cells 710 as shown in Figure 7, and is used as the synaptic and neuronal portion between the input layer and the next layer. In this example, inputs INPUT 0 , ..., INPUT M are received on control gate lines CG 0 , ..., CG M. Outputs OUTPUT 0 , ..., OUTPUT N are generated on vertical bit lines BL 0 , ..., BL N , respectively, where each bit line BL i is coupled to the bit lines of all memory cells in row i.

長短期記憶體 Long Short-Term Memory

先前技術包括被稱為長短期記憶體(LSTM)之概念。LSTM單元常常用於神經網路中。LSTM允許神經網路在預定任意時間間隔內記住資訊且在後續操作中使用彼資訊。習知LSTM單元包含胞元、輸入閘極、輸出閘極及遺忘閘極。三個閘極調節進入及離開胞元之資訊流以及在LSTM中記住資訊之時間間隔。VMM尤其適用於LSTM單元。 Previous techniques included a concept known as Long Short-Term Memory (LSTM). LSTM cells are commonly used in neural networks. LSTM allows neural networks to remember information at predetermined time intervals and use that information in subsequent operations. A known LSTM cell consists of a cell, an input gate, an output gate, and a forget gate. These three gates regulate the flow of information entering and leaving the cell and the time intervals at which information is remembered in the LSTM. Virtual Memory Models (VMMs) are particularly well-suited for LSTM cells.

圖14描繪實例LSTM 1400。此實例中之LSTM 1400包含胞元1401、1402、1403及1404。胞元1401接收輸入向量x0,且產生輸出向量h0及胞元狀態向量c0。胞元1402接收輸入向量x1、來自胞元1401之輸出向量(隱藏狀態)h0及來自胞元1401之胞元狀態c0,且產生輸出向量h1及胞元狀態向量c1。胞元1403接收輸入向量x2、來自胞元1402之輸出向量(隱藏狀態)h1及來自胞元1402之胞元狀態c1,且產生輸出向量h2及胞元狀態向量c2。胞元1404接收輸入向量x3、來自胞元1403之輸出向量 (隱藏狀態)h2及來自胞元1403之胞元狀態c2,且產生輸出向量h3。可使用額外胞元,且具有四個胞元之LSTM僅為實例。 Figure 14 illustrates an example LSTM 1400. This example LSTM 1400 includes cells 1401, 1402, 1403, and 1404. Cell 1401 receives the input vector x0 and produces the output vector h0 and cell state vector c0 . Cell 1402 receives the input vector x1 , the output vector (hidden state) h0 from cell 1401, and the cell state c0 from cell 1401, and produces the output vector h1 and cell state vector c1 . Cell 1403 receives the input vector x2 , the output vector (hidden state) h1 from cell 1402, and the cell state c1 from cell 1402, and produces the output vector h2 and cell state vector c2 . Cell 1404 receives input vector x3 , output vector (hidden state) h2 from cell 1403, and cell state c2 from cell 1403, and generates output vector h3 . Additional cells can be used, and an LSTM with four cells is just an example.

圖15描繪LSTM胞元1500之實例實施方案,其可用於圖14中之胞元1401、1402、1403及1404。LSTM胞元1500接收輸入向量x(t)、來自前一胞元之胞元狀態向量c(t-1)及來自前一胞元之輸出向量h(t-1),且產生胞元狀態向量c(t)及輸出向量h(t)。 Figure 15 illustrates an example implementation of LSTM cell 1500, which can be used in cells 1401, 1402, 1403, and 1404 in Figure 14. LSTM cell 1500 receives an input vector x(t), a cell state vector c(t-1) from the previous cell, and an output vector h(t-1) from the previous cell, and generates the cell state vector c(t) and the output vector h(t).

LSTM胞元1500包含S型函數裝置1501、1502及1503,該等S型函數裝置中之各者應用0與1之間的數字以控制輸入向量中之各分量的多少被允許通過至輸出向量。LSTM胞元1500亦包含用以將雙曲正切函數應用於輸入向量之雙曲正切裝置1504及1505、用以將兩個向量相乘在一起之乘法器裝置1506、1507及1508,及用以將兩個向量相加在一起之加法裝置1509。可將輸出向量h(t)提供至系統中之下一LSTM胞元,或可出於其他目的而存取該輸出向量。 LSTM cell 1500 includes S-shaped function devices 1501, 1502, and 1503, each using numbers between 0 and 1 to control the amount of each component of the input vector allowed to pass to the output vector. LSTM cell 1500 also includes hyperbolic tangent devices 1504 and 1505 for applying a hyperbolic tangent function to the input vector, multiplier devices 1506, 1507, and 1508 for multiplying two vectors together, and adder device 1509 for adding two vectors together. The output vector h(t) can be provided to the next LSTM cell in the system, or accessed for other purposes.

圖16描繪LSTM胞元1600,其為LSTM胞元1500之實施方案之實例。為了方便讀者,來自LSTM胞元1500之相同編號用於LSTM胞元1600中。S型函數裝置1501、1502及1503以及雙曲正切裝置1504各自包含多個VMM陣列1601及激勵函數區塊1602。因此,可見,VMM陣列尤其適用於在某些神經網路系統中使用之LSTM胞元。乘法器裝置1506、1507及1508以及加法裝置1509以數位方式或以類比方式實施。激勵函數區塊1602可以數位方式或以類比方式實施。 Figure 16 depicts LSTM cell 1600, which is an example of an implementation of LSTM cell 1500. For ease of reading, the same designations used for LSTM cell 1500 are applied to LSTM cell 1600. S-shaped function devices 1501, 1502, and 1503, and hyperbolic tangent device 1504 each contain multiple VMM arrays 1601 and excitation function blocks 1602. Therefore, it can be seen that VMM arrays are particularly suitable for LSTM cells used in certain neural network systems. Multiplier devices 1506, 1507, and 1508, and adder device 1509 are implemented digitally or analogously. Excitation function block 1602 can be implemented digitally or analogously.

圖17中展示LSTM胞元1600之替代方案(及LSTM胞元1500之實施方案之另一實例)。在圖17中,S型函數裝置1501、1502及1503以及雙曲正切裝置1504以時間多工方式共用相同實體硬體(VMM陣列1701及激勵函數區塊1702)。LSTM胞元1700亦包含:乘法器裝置1703, 其用以將兩個向量相乘在一起;加法裝置1708,其用以將兩個向量相加在一起;雙曲正切裝置1505(其包含激勵函數區塊1702);暫存器1707,其用以當i(t)從S型函數區塊1702輸出時儲存值i(t);暫存器1704,其用以當值f(t)* c(t-1)通過多工器1710從乘法器裝置1703輸出時儲存彼值;暫存器1705,其用以當值i(t)* u(t)通過多工器1710從乘法器裝置1703輸出時儲存彼值;及暫存器1706,其用以當值o(t)* c~(t)通過多工器1710及多工器1709從乘法器裝置1703輸出時儲存彼值。 Figure 17 illustrates an alternative to LSTM cell 1600 (and another example of an implementation of LSTM cell 1500). In Figure 17, sigmoid function devices 1501, 1502, and 1503 and hyperbolic tangent device 1504 share the same physical hardware (VMM array 1701 and excitation function block 1702) in a time-multiplexed manner. The LSTM cell 1700 also includes: a multiplier 1703 for multiplying two vectors together; an adder 1708 for adding two vectors together; a hyperbolic tangent 1505 (containing the excitation function block 1702); a register 1707 for storing the value i(t) when i(t) is output from the sigmoid function block 1702; a register 1704 for storing the value f(t)*c(t-1) when it is output from the multiplier 1703 via the multiplexer 1710; and a register 1705 for storing the value i(t)*c(t-1) when it is output from the multiplier 1703. u(t) is stored when it is output from multiplier device 1703 via multiplexer 1710; and register 1706 is used to store the value o(t)*c~(t) when it is output from multiplier device 1703 via multiplexer 1710 and multiplexer 1709.

LSTM胞元1600含有VMM陣列1601及各別激勵函數區塊1602之多個集合,而LSTM胞元1700含有VMM陣列1701及激勵函數區塊1702之一個集合,其用於表示LSTM胞元1700之實例中之多個層。LSTM胞元1700將需要相較於LSTM 1600更少的空間,此係因為LSTM胞元1700相比於LSTM胞元1600將需要1/4之空間用於VMM及激勵函數區塊。 LSTM cell 1600 contains multiple sets of VMM arrays 1601 and individual excitation function blocks 1602, while LSTM cell 1700 contains one set of VMM arrays 1701 and excitation function blocks 1702, which are used to represent multiple layers in an instance of LSTM cell 1700. LSTM cell 1700 will require less space than LSTM 1600 because LSTM cell 1700 requires 1/4 of the space for VMMs and excitation function blocks compared to LSTM cell 1600.

可進一步瞭解,LSTM胞元將通常包含多個VMM陣列,該等VMM陣列中之各者使用由VMM陣列外部之某些電路區塊,諸如求和器及激勵函數區塊以及高電壓產生區塊所提供的功能性。向各VMM陣列提供個別電路區塊將需要半導體裝置內之大量空間且將略微低效。因此,下文所描述之實例減少在VMM陣列自身外部所使用之電路系統。 As can be further understood, an LSTM cell will typically contain multiple VMM arrays, each utilizing functionality provided by certain circuit blocks external to the VMM arrays, such as summer and excitation function blocks, and high-voltage generation blocks. Providing individual circuit blocks for each VMM array would require a significant amount of space within the semiconductor device and would be somewhat inefficient. Therefore, the examples described below reduce the circuitry used externally to the VMM arrays themselves.

閘控遞回單元 Gate return unit

類比VMM實施方案可用於GRU(閘控遞回單元)系統。GRU為遞回神經網路中之閘控機構。GRU類似於LSTM,不同之處在於,GRU胞元通常含有比LSTM胞元更少之組件。 Analogous VMM implementations can be used in GRU (Gate Recursive Unit) systems. A GRU is the gate mechanism in a recursive neural network. GRUs are similar to LSTMs, but a GRU cell typically contains fewer components than an LSTM cell.

圖18描繪實例GRU 1800。此實例中之GRU 1800包含胞元1801、1802、1803及1804。胞元1801接收輸入向量x0,且產生輸出向 量h0。胞元1802接收輸入向量x1、來自胞元1801之輸出向量h0,且產生輸出向量h1。胞元1803接收輸入向量x2及來自胞元1802之輸出向量(隱藏狀態)h1,且產生輸出向量h2。胞元1804接收輸入向量x3及來自胞元1803之輸出向量(隱藏狀態)h2,且產生輸出向量h3。可使用額外胞元,且具有四個胞元之GRU僅為實例。 Figure 18 illustrates an example GRU 1800. This example GRU 1800 includes cells 1801, 1802, 1803, and 1804. Cell 1801 receives input vector x0 and produces output vector h0 . Cell 1802 receives input vector x1 and output vector h0 from cell 1801, and produces output vector h1 . Cell 1803 receives input vector x2 and output vector h1 (in the hidden state) from cell 1802, and produces output vector h2 . Cell 1804 receives input vector x3 and output vector h2 (in the hidden state) from cell 1803, and produces output vector h3 . Additional cells can be used, and a GRU with four cells is just one example.

圖19描繪GRU胞元1900之實例實施方案,其可用於圖18之胞元1801、1802、1803及1804。GRU胞元1900接收輸入向量x(t)及來自前一GRU胞元之輸出向量h(t-1),且產生輸出向量h(t)。GRU胞元1900包含S型函數裝置1901及1902,該等S型函數裝置中之各者將0與1之間的數字應用於來自輸出向量h(t-1)及輸入向量x(t)之分量。GRU胞元1900亦包含用以將雙曲正切函數應用至輸入向量之雙曲正切裝置1903、用以將兩個向量相乘在一起之複數個乘法器裝置1904、1905及1906、用以將兩個向量相加在一起之加法裝置1907及用以從1減去輸入以產生輸出之互補裝置1908。 Figure 19 illustrates an example implementation of GRU cell 1900, which can be used in cells 1801, 1802, 1803, and 1804 of Figure 18. GRU cell 1900 receives an input vector x(t) and an output vector h(t-1) from the previous GRU cell, and generates an output vector h(t). GRU cell 1900 includes S-shaped function devices 1901 and 1902, each of which applies numbers between 0 and 1 to the components of the output vector h(t-1) and the input vector x(t). The GRU cell 1900 also includes a hyperbolic tangent device 1903 for applying the hyperbolic tangent function to the input vector, multiple multiplier devices 1904, 1905, and 1906 for multiplying two vectors together, an adder device 1907 for adding two vectors together, and a complementary device 1908 for subtracting the input from 1 to produce the output.

圖20描繪GRU胞元2000,其為GRU胞元1900之實施方案之實例。為了方便讀者,來自GRU胞元1900之相同編號用於GRU胞元2000中。如圖20中可見,S型函數裝置1901及1902以及雙曲正切裝置1903各自包含多個VMM陣列2001及激勵函數區塊2002。因此,可見,VMM陣列尤其用於在某些神經網路系統中使用之GRU胞元。乘法器裝置1904、1905、1906、加法裝置1907及互補裝置1908以數位方式或以類比方式實施。激勵函數區塊2002可以數位方式或以類比方式實施。 Figure 20 depicts GRU cell 2000, which is an example of an implementation of GRU cell 1900. For ease of reading, the same designations from GRU cell 1900 are used in GRU cell 2000. As can be seen in Figure 20, the sigmoid function devices 1901 and 1902 and the hyperbolic tangent device 1903 each contain multiple VMM arrays 2001 and excitation function blocks 2002. Therefore, it can be seen that VMM arrays are particularly used in GRU cells used in certain neural network systems. Multiplier devices 1904, 1905, and 1906, adder device 1907, and complement device 1908 are implemented digitally or analogously. Excitation function block 2002 can be implemented digitally or analogously.

圖21中展示GRU胞元2000之替代方案(及GRU胞元1900之實施方案之另一實例)。在圖21中,GRU胞元2100利用VMM陣列2101及激勵函數區塊2102,該激勵函數區塊在被組構為S型函數時應用0與1 之間的數字以控制輸入向量中之各分量的多少被允許通過至輸出向量。在圖21中,S型函數裝置1901及1902以及雙曲正切裝置1903以時間多工方式共用相同實體硬體(VMM陣列2101及激勵函數區塊2102)。GRU胞元2100亦包含:乘法器裝置2103,其用以將兩個向量相乘在一起;加法裝置2105,其用以將兩個向量相加在一起;互補裝置2109,其用以從1減去輸入以產生輸出;多工器2104;暫存器2106,其用以當值h(t-1)* r(t)通過多工器2104從乘法器裝置2103輸出時保存彼值;暫存器2107,其用以當值h(t-1)* z(t)通過多工器2104從乘法器裝置2103輸出時保存彼值;及暫存器2108,其用以當值h^(t)*(1-z(t))通過多工器2104從乘法器裝置2103輸出時保存彼值。 Figure 21 illustrates an alternative to GRU cell 2000 (and another example of an implementation of GRU cell 1900). In Figure 21, GRU cell 2100 utilizes a VMM array 2101 and an excitation function block 2102, which, when configured as a sigmoid function, uses numbers between 0 and 1 to control the amount of each component in the input vector allowed to pass through to the output vector. In Figure 21, the sigmoid function devices 1901 and 1902 and the hyperbolic tangent device 1903 share the same physical hardware (VMM array 2101 and excitation function block 2102) in a time-multiplexed manner. The GRU cell 2100 also includes: a multiplier 2103 for multiplying two vectors together; an adder 2105 for adding two vectors together; a complement 2109 for subtracting the input from 1 to produce the output; a multiplexer 2104; a register 2106 for storing the value h(t-1)*r(t) when it is output from the multiplier 2103 via the multiplexer 2104; and a register 2107 for storing the value h(t-1)*r(t) when it is output from the multiplier 2103. When z(t) is output from multiplier device 2103 via multiplexer 2104, its value is stored; and a register 2108 is used to store the value when h^(t)*(1-z(t)) is output from multiplier device 2103 via multiplexer 2104.

GRU胞元2000含有VMM陣列2001及激勵函數區塊2002之多個集合,而GRU胞元2100含有VMM陣列2101及激勵函數區塊2102之一個集合,其用於表示GRU胞元2100之實例中的多個層。GRU胞元2100將需要相較於GRU胞元2000更少的空間,此係因為GRU胞元2100相比於GRU胞元2000將需要1/3之空間以用於VMM及激勵函數區塊。 GRU cell 2000 contains multiple sets of VMM array 2001 and excitation function blocks 2002, while GRU cell 2100 contains one set of VMM array 2101 and excitation function blocks 2102, which is used to represent multiple layers in an instance of GRU cell 2100. GRU cell 2100 will require less space than GRU cell 2000 because GRU cell 2100 requires 1/3 of the space for VMM and excitation function blocks.

可進一步瞭解,GRU系統將通常包含多個VMM陣列,該等VMM陣列中之各者使用由VMM陣列外部之某些電路區塊,諸如求和器及激勵函數區塊以及高電壓產生區塊所提供的功能性。向各VMM陣列提供個別電路區塊將需要半導體裝置內之大量空間且將略微低效。因此,下文所描述之實例減少在VMM陣列自身外部所使用之電路系統。 As can be further understood, a GRU system will typically comprise multiple VMM arrays, each utilizing functionality provided by external circuit blocks, such as summer and excitation function blocks, and high-voltage generation blocks. Providing individual circuit blocks for each VMM array would require significant space within the semiconductor device and would be somewhat inefficient. Therefore, the examples described below reduce the circuitry used externally to the VMM arrays themselves.

至VMM陣列之輸入可為類比層級、二進位層級、脈衝、時間調變脈衝或數位位元(在此情況下,使用DAC將數位位元轉換成適當的輸入類比層級),且輸出可為類比層級、二進位層級、定時脈衝、脈衝或數位位元(在此情況下,使用輸出ADC將輸出類比層級轉換成數位位元)。 The inputs to the VMM array can be analog level, binary level, pulse, time-modulated pulse, or digital bits (in which case, a DAC is used to convert the digital bits to the appropriate input analog level), and the outputs can be analog level, binary level, timing pulse, pulse, or digital bits (in which case, an output ADC is used to convert the output analog level to digital bits).

一般而言,對於VMM陣列中之各記憶體胞元,各權重W可由單一記憶體胞元或差分胞元或兩個混合記憶體胞元(2個胞元之平均值)實施。在差分胞元情況下,使用兩個記憶體胞元來將權重W實施為差分權重(W=W+-W-)。在兩個混合記憶體胞元中,使用兩個記憶體胞元來將權重W實施為兩個胞元之平均值。 Generally, for each memory cell in a VMM array, each weight W can be implemented using a single memory cell, a differential cell, or two mixed memory cells (the average of the two cells). In the case of differential cells, two memory cells are used to implement the weight W as a differential weight (W = W+ - W-). In the case of two mixed memory cells, two memory cells are used to implement the weight W as the average of the two cells.

圖31描繪VMM系統3100。在一些實例中,儲存於VMM陣列中之權重W經儲存為差分對W+(正權重)及W-(負權重),其中W=(W+)-(W-)。在VMM系統3100中,一半位元線被指定為W+線,亦即連接至將儲存正權重W+之記憶體胞元的位元線,且另一半位元線被指定為W-線,亦即連接至實施負權重W-之記憶體胞元的位元線。W-線以交替方式穿插於W+線當中。減法運算由從W+線及W-線接收電流之求和電路執行,該求和電路諸如為求和電路3101及3102。W+線之輸出及W-線之輸出組合在一起,從而對於所有對(W+,W-)線之各對(W+,W-)胞元,有效地得出W=W+-W-。雖然上文已關於W-線以交替方式穿插於W+線當中進行描述,但在其他實例中,W+線及W-線可任意地位於陣列中之任何位置。 Figure 31 illustrates a VMM system 3100. In some embodiments, the weights W stored in the VMM array are stored as differential pairs W+ (positive weights) and W- (negative weights), where W = (W+) - (W-). In the VMM system 3100, half of the bit lines are designated as W+ lines, i.e., the bit lines connected to the memory cells where the positive weights W+ will be stored, and the other half of the bit lines are designated as W- lines, i.e., the bit lines connected to the memory cells where the negative weights W- will be implemented. The W- lines are interspersed among the W+ lines. Subtraction operations are performed by summing circuits that receive current from the W+ and W- lines, such as summing circuits 3101 and 3102. The outputs of the W+ and W- lines are combined to effectively derive W = W+ - W- for each pair of (W+, W-) cells for all pairs of (W+, W-) lines. Although the alternating arrangement of the W- lines among the W+ lines has been described above, in other examples, the W+ and W- lines can be positioned arbitrarily anywhere in the array.

圖32描繪另一實例。在VMM系統3210中,正權重W+實施於第一陣列3211中,且負權重W-實施於第二陣列3212中,第二陣列3212與第一陣列分離,且所得權重係藉由求和電路3213適當地組合在一起。 Figure 32 illustrates another example. In the VMM system 3210, positive weights W+ are implemented in a first array 3211, and negative weights W- are implemented in a second array 3212, which is separate from the first array. The resulting weights are appropriately combined using a summing circuit 3213.

圖33描繪VMM系統3300。儲存於VMM陣列中之權重W經儲存為差分對W+(正權重)及W-(負權重),其中W=(W+)-(W-)。VMM系統3300包含陣列3301及陣列3302。陣列3301及3302中之各者中的一半位元線被指定為W+線,亦即連接至將儲存正權重W+之記憶體胞元的位元線,且陣列3301及3302中之各者中的另一半位元線被指定為W- 線,亦即連接至實施負權重W-之記憶體胞元的位元線。W-線以交替方式穿插於W+線當中。減法運算由從W+線及W-線接收電流之求和電路執行,該求和電路諸如為求和電路3303、3304、3305及3306。來自各陣列3301、3302之W+線之輸出及W-線之輸出分別組合在一起,從而對於所有對(W+,W-)線之各對(W+,W-)胞元,有效地得出W=W+-W-。另外,來自各陣列3301及3302之W值可通過求和電路3307及3308進一步組合,使得各W值為來自陣列3301之W值減去來自陣列3302之W值的結果,此意謂來自求和電路3307及3308之最終結果為兩個差分值中之一差分值。 Figure 33 depicts a VMM system 3300. The weights W stored in the VMM array are stored as difference pairs W+ (positive weight) and W- (negative weight), where W = (W+) - (W-). The VMM system 3300 includes arrays 3301 and 3302. Half of the bit lines in each of arrays 3301 and 3302 are designated as W+ lines, i.e., bit lines connected to memory cells where positive weights W+ will be stored, and the other half of the bit lines in each of arrays 3301 and 3302 are designated as W- lines, i.e., bit lines connected to memory cells where negative weights W- are implemented. W- lines are interspersed among the W+ lines in an alternating manner. The subtraction operation is performed by summing circuits that receive current from the W+ and W- lines, such as summing circuits 3303, 3304, 3305, and 3306. The outputs of the W+ and W- lines from each of arrays 3301 and 3302 are combined to effectively derive W = W+ - W- for each pair of (W+, W-) cells of all pairs of (W+, W-) lines. Furthermore, the W values from each array 3301 and 3302 can be further combined using summing circuits 3307 and 3308, so that each W value is the result of subtracting the W value from array 3302 from the W value from array 3301. This means that the final result from summing circuits 3307 and 3308 is one of two difference values.

用於類比神經記憶體系統中之各非揮發性記憶體胞元待經抹除及程式化,以在浮動閘極中保持極特定且精確之電荷量,亦即電子數目。舉例而言,各浮動閘極可保存N個不同值中之一者,其中N為可由各胞元指示之不同權重的數目。N之實例包括16、32、64、128及256。 This analogy is used to describe how non-volatile memory cells in an analogy to those in a neural memory system are erased and programmed to maintain a highly specific and precise amount of charge, i.e., the number of electrons, in a floating gate. For example, each floating gate can retain one of N different values, where N is the number of different weights that can be indicated by each cell. Examples of N include 16, 32, 64, 128, and 256.

先前技術系統需要相當大的面積且涉及輸出級處之相當大的潛時。舉例而言,多個時鐘週期用於將從VMM陣列所接收之類比電流轉換成數位輸出資料。 Previous technology systems required a considerable area and involved significant latency at the output stage. For example, multiple clock cycles were used to convert the analog current received from the VMM array into digital output data.

需要減少輸出處之潛時以增加系統之總操作速度,該系統表示人工神經網路中之一些或全部。 To increase the overall operating speed of a system, representing some or all of an artificial neural network, it is necessary to reduce the latency at the output points.

揭示用於神經網路陣列之輸出電路及相關聯方法的眾多實例。 Numerous examples of output circuits and related methods used in neural network arrays are presented.

12:半導體基板 12: Semiconductor substrate

14:源極區 14: Source Area

16:汲極區 16: Jiji Area

18:通道區 18: Passage Area

20:浮動閘極 20: Floating gate pole

22:字元線端子 22: Character Line Terminal

24:位元線 24: Bitline

28:控制閘極 28: Control Gate

30:抹除閘極 30: Erasure of the gate pole

31:數位至類比轉換器 31: Digital-to-Analog Converter

32,32a,32b,32c,32d,32e,1601,1701,2001,2101,3301,3302:向量矩陣乘法陣列 32,32a,32b,32c,32d,32e,1601,1701,2001,2101,3301,3302: Vector-Matrix Multiplication Array

33:非揮發性記憶體胞元陣列 33: Non-volatile memory cell arrays

34:抹除閘極及字元線閘極解碼器 34: Gate and character line eraser decoder

35:控制閘極解碼器 35: Control Gate Decoder

36:位元線解碼器 36-bit line decoder

37:源極線解碼器 37: Source Line Decoder

38:差分求和器,求和運算放大器 38: Differential summer, summing operational amplifier

39,1602,1702,2002,2102:激勵函數區塊 Blocks 39, 1602, 1702, 2002, 2102: Excitation function blocks

210,310,410,510,710,3711,3811,3911,4011,4111,4211,4311:記憶體胞元 210,310,410,510,710,3711,3811,3911,4011,4111,4211,4311: Memory cell units

900,1000,1100,1200,1300,2200,2300,2400,2500,2600,2700,2800,2900,3000:神經元向量矩陣乘法陣列 900, 1000, 1100, 1200, 1300, 2200, 2300, 2400, 2500, 2600, 2700, 2800, 2900, 3000: Multiplication array of neural vector matrices

901,1003,1103,1203,1303:記憶體陣列 901, 1003, 1103, 1203, 1303: Memory arrays

902,1001,1002,1101,1102,1201,1202,1301,1302:參考陣列 902, 1001, 1002, 1101, 1102, 1201, 1202, 1301, 1302: Reference Array

903,CG0,CG1,CG2,CG3,CG0,CG1,CGM-1,CGM,CGN:控制閘極線 903,CG0,CG1,CG2,CG3,CG 0 ,CG 1 ,CG M-1 ,CG M ,CG N : Control gate electrode wires

904,EG0,EG1,EGR0,EGR1:抹除閘極線 904,EG0,EG1,EGR0,EGR1: Remove gate polarity wires

1014,1212,1314:二極體連接式貫穿多工器 1014, 1212, 1314: Diode-connected through-type multiplexer

1204:串疊電晶體 1204: Series Transistor

1205,1709,1710,2104:多工器 1205, 1709, 1710, 2104: Multiplexers

1400:長短期記憶體 1400: Long Short-Term Memory

1401,1402,1403,1404,1801,1802,1803,1804:胞元 1401, 1402, 1403, 1404, 1801, 1802, 1803, 1804: Cells

1500,1600,1700:長短期記憶體胞元 1500, 1600, 1700: Long Short-Term Memory Cells

1501,1502,1503,1901,1902:S型函數裝置 1501, 1502, 1503, 1901, 1902: S-shaped function device

1504,1505,1903:雙曲正切裝置 1504, 1505, 1903: Hyperbolic Tangent Device

1506,1507,1508,1703,1904,1905,1906,2103:乘法器裝置 1506, 1507, 1508, 1703, 1904, 1905, 1906, 2103: Multiplier device

1509,1708,1907,2105:加法裝置 1509, 1708, 1907, 2105: Adding device

1704,1705,1706,1707,2106,2107,2108:暫存器 1704, 1705, 1706, 1707, 2106, 2107, 2108: Registers

1800:閘控遞回單元 1800: Gate Control Return Unit

1900,2000,2100:閘控遞回單元胞元 1900, 2000, 2100: Gate return cell

1908,2109:互補裝置 1908, 2109: Complementary Device

2701-1,2701-2,2701-(N-1),2701-N:位元線控制閘極 2701-1, 2701-2, 2701-(N-1), 2701-N: Bit line control gate

3100,3210,3300,3400:向量矩陣乘法系統 3100, 3210, 3300, 3400: Vector-matrix multiplication system

3101,3102,3213,3303,3304,3305,3306,3307,3308:求和電路 3101, 3102, 3213, 3303, 3304, 3305, 3306, 3307, 3308: Summation circuit

3211:第一陣列 3211: First Line

3212:第二陣列 3212: Second Formation

3401:向量矩陣乘法陣列 3401: Vector-Matrix Multiplication Array

3402:列解碼器 3402: Column decoder

3403:高電壓解碼器 3403: High Voltage Decoder

3404:行解碼器 3404: Line decoder

3405:位元線驅動器 3405: Bitline Driver

3406:輸入電路 3406: Input Circuit

3407,3500,4800,4900,5000:輸出電路 3407, 3500, 4800, 4900, 5000: Output circuits

3408:控制邏輯 3408: Control Logic

3409:偏壓產生器 3409: Bias Generator

3410:高電壓產生區塊 3410: High Voltage Generation Block

3411:電荷泵 3411: Electric Charge Pump

3412:電荷泵調節器 3412: Electric Charge Pump Regulator

3413:高電壓位準產生器 3413: High Voltage Position Generator

3414:演算法控制器 3414: Algorithm Controller

3415:類比電路系統 3415: Analog Circuit System

3416:控制引擎 3416: Control Engine

3417:測試控制邏輯 3417: Test Control Logic

3418:靜態隨機存取記憶體區塊 3418: Static Random Access to Memory Blocks

3501,3501-1,3501-2,3501-(j-1),3501-j:行多工器 3501, 3501-1, 3501-2, 3501-(j-1), 3501-j: Line Multiplexer

3502,3502-1,3502-2,3502-(j-1),3502-j:類比至數位轉換器 3502, 3502-1, 3502-2, 3502-(j-1), 3502-j: Analog-to-digital converters

3600,3700,3800,3900,4000,4100,4200,4300,4802,4902,5001,5002:Σ-△類比至數位轉換器 3600, 3700, 3800, 3900, 4000, 4100, 4200, 4300, 4802, 4902, 5001, 5002: Σ-△ Analog-to-Digital Converters

3701,3801,3901,4001,4101,4201,4301:比較器 3701,3801,3901,4001,4101,4201,4301: comparator

3702,3802,3902,4002,4102,4202,4302:狀態機 3702, 3802, 3902, 4002, 4102, 4202, 4302: State Machines

3703:電流源 3703: Current Source

3704,3804,3805,3904,4005,4104,4105,4204,4205,4304,4305:開關 3704, 3804, 3805, 3904, 4005, 4104, 4105, 4204, 4205, 4304, 4305: Switches

3710,CFG_CREF,CFG_VREFSUP,CLK_REF,CLK_REFB,COMP_OUT:信號 3710, CFG_CREF, CFG_VREFSUP, CLK_REF, CLK_REFB, COMP_OUT: Signal

3803,4003,4103,4203:電容器 3803, 4003, 4103, 4203: Capacitors

3903:可調電流源 3903: Adjustable Current Source

4006:可變參考電源 4006: Variable Reference Power Supply

4106:電晶體 4106: Transistor

4107:閘極驅動器 4107: Gate Driver

4303:可變電容器 4303: Variable Capacitor

4306:可變虛擬BL電容器 4306: Variable Virtual BL Capacitor

4400,4410:波形 4400, 4410: Waveforms

4500,4600,4700:曲線圖 4500, 4600, 4700: Curve graph

4601,4602,4603:電壓範圍 4601, 4602, 4603: Voltage Range

4604,4605,4606,4607,4608,4609:電流範圍 4604, 4605, 4606, 4607, 4608, 4609: Current range

4801,4901:電流至電壓轉換器 4801, 4901: Current-to-voltage converters

5003:上/下數計數器 5003: Up/Down Counter

BL0,BL1,BL2,BL3,BLN,BL0,BLN-1,BLN,BLi:位元線 BL0, BL1, BL2, BL3, BLN, BL 0 , BL N-1 , BL N , BL i : bit lines

BLR0,BLR1,BLR2,BLR3:端子 BLR0, BLR1, BLR2, BLR3: terminals

BLx,CGx,Egx,SLx,WLx,Inputx,INPUT0,INPUT1,INPUT2,INPUT3,INPUT4,INPUTM-1,INPUTM,INPUTN-1,INPUTN:輸入 BLx,CGx,Egx,SLx,WLx,Inputx,INPUT 0 ,INPUT 1 ,INPUT 2 ,INPUT 3 ,INPUT 4 ,INPUT M-1 ,INPUT M ,INPUT N-1 ,INPUT N : input

c0,c1,c2,c(t-1),c(t):胞元狀態向量 c0 , c1 , c2 , c(t-1), c(t): Cell state vector

C1,C2,C3,S1,S2:層 C1, C2, C3, S1, S2: Layers

CB1,CB2,CB3,CB4:突觸 CB1, CB2, CB3, CB4: synapses

CG0,CG1,CG2,CG3:電壓輸入,控制閘極電壓 CG0, CG1, CG2, CG3: Voltage inputs, controlling the gate voltage.

CLK:時鐘信號 CLK: Clock signal

DOUT[7:0],DOUT[n:1],DOUTx[n:1]:數位輸出 DOUT[7:0], DOUT[n:1], DOUTx[n:1]: Digital output Dual output D ...ual output Dual output Dual output Dual output Dual output Dual output Dual output Dual output Dual output D

EN:致能信號 EN: Enable signal

h0,h1,h2,h3,h(t-1),h(t):輸出向量 h0 , h1 , h2 , h3 , h(t-1), h(t): Output vector

IBL:陣列電流,輸入電流 IBL: Array Current, Input Current

IBL+,IBL-:位元線電流 IBL+, IBL-: Bit line current

IREF:參考電流 IREF: Reference Current

IREFV:可變參考電流 IREFV: Variable Reference Current

ITV_Ox,VBL,VDD,VREFSUP:電壓 ITV_Ox,VBL,VDD,VREFSUP: Voltage

ITV_O+,ITV_O-:差分電壓 ITV_O+, ITV_O-: Differential voltage

OUTPUT0,OUTPUT1,OUTPUT2,OUTPUT3,OUTPUT4,OUTPUTN-1,OUTPUTN:輸出 OUTPUT 0 , OUTPUT 1 , OUTPUT 2 , OUTPUT 3 , OUTPUT 4 , OUTPUT N-1 , OUTPUT N : Output

P1,P2:激勵函數 P1, P2: Incentive functions

S0:輸入層 S0: Input layer

S3:輸出層 S3: Output Layer

SL0,SL1,SL0,SL1,SL2,SL3,SLi,SLN:源極線 SL0,SL1,SL 0 ,SL 1 ,SL 2 ,SL 3 ,SL i ,SL N : source line

VREF:參考電壓 VREF: Reference Voltage

WL,WL0,WL1,WL2,WL3,WL0,WL1,WL2,WL3,WL4,WL5,WL6,WL7,WLM-1,WLM,WLA0,WLB0,WLA1,WLB1,WLA2,WLB2,WLA3,WLB3:字元線 WL,WL0,WL1,WL2,WL3,WL 0 ,WL 1 ,WL 2 ,WL 3 ,WL 4 ,WL 5 ,WL 6 ,WL 7 ,WL M-1 ,WL M ,WLA0,WLB0,WLA1,WLB1,WLA2,WLB2,WLA3,WLB3: word line

x0,x1,x2,x3,x(t):輸入向量 x0 , x1 , x2 , x3 , x(t): Input vector

圖1為說明人工神經網路之圖。 Figure 1 is a diagram illustrating an artificial neural network.

圖2描繪先前技術分離閘極快閃記憶體胞元。 Figure 2 depicts the separation of gated ultra-fast flash memory cells using prior art techniques.

圖3描繪另一先前技術分離閘極快閃記憶體胞元。 Figure 3 depicts another prior art technique for isolating gate-type ultra-fast flash memory cells.

圖4描繪另一先前技術分離閘極快閃記憶體胞元。 Figure 4 depicts another prior art technique for isolating gate-type ultra-fast flash memory cells.

圖5描繪另一先前技術分離閘極快閃記憶體胞元。 Figure 5 depicts another prior art technique for isolating gate-type ultra-fast flash memory cells.

圖6為說明利用一或多個非揮發性記憶體陣列之人工神經網路之不同層級的圖。 Figure 6 illustrates different levels of an artificial neural network utilizing one or more non-volatile memory arrays.

圖7為說明VMM系統之方塊圖。 Figure 7 is a block diagram illustrating the VMM system.

圖8為說明利用一或多個VMM系統之實例人工神經網路的方塊圖。 Figure 8 is a block diagram illustrating an example of an artificial neural network utilizing one or more VMM systems.

圖9描繪VMM系統之另一實例。 Figure 9 illustrates another example of a VMM system.

圖10描繪VMM系統之另一實例。 Figure 10 depicts another example of a VMM system.

圖11描繪VMM系統之另一實例。 Figure 11 illustrates another example of a VMM system.

圖12描繪VMM系統之另一實例。 Figure 12 illustrates another example of a VMM system.

圖13描繪VMM系統之另一實例。 Figure 13 illustrates another example of a VMM system.

圖14描繪先前技術長短期記憶體系統。 Figure 14 illustrates a prior art Long Short-Term Memory (LSTM) system.

圖15描繪供用於長短期記憶體系統中之實例胞元。 Figure 15 depicts an instance cell used in a Long Short-Term Memory (LSTM) system.

圖16描繪圖15之胞元之實例實施方案。 Figure 16 illustrates an example implementation scheme of the cell in Figure 15.

圖17描繪圖15之胞元之另一實例實施方案。 Figure 17 illustrates another implementation scheme of the cell in Figure 15.

圖18描繪先前技術閘控遞回單元系統。 Figure 18 illustrates a prior art gate return unit system.

圖19描繪供用於閘控遞回單元系統中之實例胞元。 Figure 19 depicts an instance cell used in a gate control return unit system.

圖20描繪圖19之胞元的實例實施方案。 Figure 20 illustrates an example implementation of the cell from Figure 19.

圖21描繪圖19之胞元之另一實例實施方案。 Figure 21 illustrates another implementation scheme of the cell in Figure 19.

圖22描繪VMM系統之另一實例。 Figure 22 illustrates another example of a VMM system.

圖23描繪VMM系統之另一實例。 Figure 23 illustrates another example of a VMM system.

圖24描繪VMM系統之另一實例。 Figure 24 illustrates another example of a VMM system.

圖25描繪VMM系統之另一實例。 Figure 25 depicts another example of a VMM system.

圖26描繪VMM系統之另一實例。 Figure 26 illustrates another example of a VMM system.

圖27描繪VMM系統之另一實例。 Figure 27 illustrates another example of a VMM system.

圖28描繪VMM系統之另一實例。 Figure 28 illustrates another example of a VMM system.

圖29描繪VMM系統之另一實例。 Figure 29 illustrates another example of a VMM system.

圖30描繪VMM系統之另一實例。 Figure 30 depicts another example of a VMM system.

圖31描繪VMM系統之另一實例。 Figure 31 depicts another example of a VMM system.

圖32描繪VMM系統之另一實例。 Figure 32 depicts another example of a VMM system.

圖33描繪VMM系統之另一實例。 Figure 33 illustrates another example of a VMM system.

圖34描繪VMM系統之另一實例。 Figure 34 depicts another example of a VMM system.

圖35描繪輸出電路。 Figure 35 illustrates the output circuit.

圖36描繪Σ-△類比至數位轉換器。 Figure 36 illustrates a Σ-Δ analog-to-digital converter.

圖37描繪另一Σ-△類比至數位轉換器。 Figure 37 depicts another Σ-Δ analog-to-digital converter.

圖38描繪另一Σ-△類比至數位轉換器。 Figure 38 depicts another Σ-Δ analog-to-digital converter.

圖39描繪另一Σ-△類比至數位轉換器。 Figure 39 depicts another Σ-Δ analog-to-digital converter.

圖40描繪另一Σ-△類比至數位轉換器。 Figure 40 depicts another Σ-Δ analog-to-digital converter.

圖41描繪另一Σ-△類比至數位轉換器。 Figure 41 depicts another Σ-Δ analog-to-digital converter.

圖42描繪另一Σ-△類比至數位轉換器。 Figure 42 depicts another Σ-Δ analog-to-digital converter.

圖43描繪另一Σ-△類比至數位轉換器。 Figure 43 depicts another Σ-Δ analog-to-digital converter.

圖44A及圖44B描繪Σ-△類比至數位轉換器之波形。 Figures 44A and 44B depict the waveforms of a Σ-Δ analog-to-digital converter.

圖45描繪位元線電壓與位元線電流之曲線圖。 Figure 45 depicts the curves of bit line voltage and bit line current.

圖46描繪針對Qref之各個值之位元線電壓與位元線電流的曲線圖。 Figure 46 depicts the bit line voltage and bit line current curves for various values of Qref.

圖47描繪位元線電壓與位元線電流之曲線圖。 Figure 47 depicts the curves of bit line voltage and bit line current.

圖48描繪輸出電路。 Figure 48 illustrates the output circuit.

圖49描繪輸出電路。 Figure 49 illustrates the output circuit.

圖50描繪輸出電路。 Figure 50 illustrates the output circuit.

VMM系統架構 VMM System Architecture

圖34描繪VMM系統3400之方塊圖。VMM系統3400包含VMM陣列3401、列解碼器3402、高電壓解碼器3403、行解碼器3404、位元線驅動器3405(諸如用於程式化之位元線控制電路系統)、輸入電路3406、輸出電路3407、控制邏輯3408及偏壓產生器3409。VMM系統3400進一步包含高電壓產生區塊3410,該高電壓產生區塊包含電荷泵3411、電荷泵調節器3412及高電壓位準產生器3413。VMM系統3400進一步包含(程式化/抹除或權重調諧)演算法控制器3414、類比電路系統3415、控制引擎3416(其可包括但不限於諸如算術函數、激勵函數之函數、嵌入式微控制器邏輯)、測試控制邏輯3417及靜態隨機存取記憶體(SRAM)區塊3418,該靜態隨機存取記憶體區塊用以儲存諸如用於輸入電路之中間資料(例如,激勵資料)或用於輸出電路之中間資料(神經元輸出資料、部分和輸出神經元資料)或用於程式化之資料輸入(諸如,用於一整列或用於多個列之資料輸入)。 Figure 34 depicts a block diagram of a VMM system 3400. The VMM system 3400 includes a VMM array 3401, a column decoder 3402, a high-voltage decoder 3403, a row decoder 3404, a bit line driver 3405 (such as for a programmable bit line control circuit system), an input circuit 3406, an output circuit 3407, a control logic 3408, and a bias generator 3409. The VMM system 3400 further includes a high-voltage generation block 3410, which includes a charge pump 3411, a charge pump regulator 3412, and a high-voltage level generator 3413. The VMM system 3400 further includes a (programmed/erase or weighted tuning) algorithm controller 3414, an analog circuit system 3415, a control engine 3416 (which may include, but is not limited to, functions such as arithmetic functions, excitation functions, and embedded microcontroller logic), a test control logic 3417, and a static random access memory (SRAM) block 3418 for storing data such as intermediate data for input circuits (e.g., excitation data) or intermediate data for output circuits (neural output data, partial and output neuron data), or for programmed data input (e.g., for a whole column or for multiple columns of data input).

輸入電路3406可包括電路,諸如DAC(數位至類比轉換器)、DPC(數位至脈衝轉換器、數位至時間調變脈衝轉換器)、AAC(類比至類比轉換器,諸如電流至電壓轉換器、對數轉換器)、PAC(脈衝至類比位準轉換器)或任何其他類型之轉換器。輸入電路3406可實施正規化、線性或非線性按比例放大/按比例縮小函數或算術函數中之一或多者。輸入電路3406可針對輸入位準實施溫度補償函數。輸入電路3406可實施激勵函數,諸如ReLU或S型。輸入電路3406可儲存待在程式化或讀 取操作期間作為輸入信號施加或與輸入信號組合的數位激勵資料。數位激勵資料可儲存於暫存器中。輸入電路3406可包含用以驅動諸如CG、WL、EG及SL線之陣列端子的電路,其可包括取樣保持電路及緩衝器。DAC可用於將數位激勵資料轉換成待施加至陣列之類比輸入電壓。 Input circuitry 3406 may include circuitry such as a DAC (digital-to-analog converter), DPC (digital-to-pulse converter, digital-to-time-modulation pulse converter), AAC (analog-to-analog converter, such as a current-to-voltage converter, logarithmic converter), PAC (pulse-to-analog level converter), or any other type of converter. Input circuitry 3406 may implement one or more of a normalization, linear or nonlinear scaling, or arithmetic functions. Input circuitry 3406 may implement a temperature compensation function for the input level. Input circuitry 3406 may implement an excitation function, such as ReLU or S-type. Input circuit 3406 can store digital excitation data that will be applied as an input signal or combined with an input signal during programming or read operations. The digital excitation data can be stored in a register. Input circuit 3406 may include circuitry for driving array terminals such as CG, WL, EG, and SL lines, and may include sample-and-hold circuitry and a buffer. A DAC can be used to convert the digital excitation data into an analog input voltage to be applied to the array.

輸出電路3407可包括電路,諸如ITV(電流至電壓電路)、ADC(類比至數位轉換器,其用以將神經元類比輸出轉換成數位位元)、AAC(類比至類比轉換器,諸如電流至電壓轉換器、對數轉換器)、APC(類比至脈衝轉換器、類比至時間調變脈衝轉換器)或任何其他類型之轉換器。輸出電路3407可將陣列輸出轉換成激勵資料。輸出電路3407可實施激勵函數,諸如整流線性激勵函數(ReLU)或S型。輸出電路3407可實施統計正規化、正則化、按比例放大/按比例縮小/增益函數,統計捨入或算術函數(例如,加法、減法、除法、乘法、移位、對數)中之一或多者以用於神經元輸出。輸出電路3407可實施溫度補償函數以用於神經元輸出或陣列輸出(諸如位元線輸出),以便使陣列之功率消耗在溫度範圍內保持大致恆定或諸如藉由使IV斜率在溫度範圍內保持大致相同而改良陣列(神經元)輸出之精確度。輸出電路3407可包含用於儲存輸出資料之暫存器。 Output circuit 3407 may include circuits such as ITV (current-to-voltage circuit), ADC (analog-to-digital converter, used to convert analog neuron outputs to digital bits), AAC (analog-to-analog converter, such as current-to-voltage converter, logarithmic converter), APC (analog-to-pulse converter, analog-to-time modulation pulse converter), or any other type of converter. Output circuit 3407 can convert array outputs into excitation data. Output circuit 3407 can implement excitation functions such as rectified linear excitation function (ReLU) or sigmoid function. Output circuit 3407 can implement one or more of the following for neural outputs: statistical normalization, regularization, scaling/scaling/gain functions, statistical rounding, or arithmetic functions (e.g., addition, subtraction, division, multiplication, shifting, logarithmic). Output circuit 3407 can implement temperature compensation functions for neural outputs or array outputs (such as bit-line outputs) to keep the array's power consumption approximately constant over a temperature range or to improve the accuracy of the array (neuron) output, for example, by keeping the IV slope approximately the same over a temperature range. Output circuit 3407 may include registers for storing output data.

圖35描繪輸出電路3500。輸出電路3500為圖34中之輸出電路3407的實例實施方案。輸出電路3500包含行多工器3501-1、3501-2、...、3501-(j-1)、3501-j及類比至數位轉換器(ADC)3502-1、3502-2、...、3502-(j-1)、3502-j。各行多工器3501從VMM陣列3401中之一或多個行接收電流,諸如位元線電流。若多於一個行連接至各別行多工器3501,則行多工器3501選擇一行且將來自彼行之電流提供至各別ADC 3502,該各別ADC將所接收電流轉換成數位輸出DOUTx[n:1],其中x為行數目且DOUT包含n個位元。若j等於VMM陣列3401中之行數目,意謂 各行具有其自身的ADC 3502,則行多工器3501為可選擇的,且VMM陣列3401中之各行可直接連接至其相關聯的ADC 3502。 Figure 35 illustrates output circuit 3500. Output circuit 3500 is an example implementation of output circuit 3407 in Figure 34. Output circuit 3500 includes row multiplexers 3501-1, 3501-2, ..., 3501-(j-1), 3501-j and analog-to-digital converters (ADCs) 3502-1, 3502-2, ..., 3502-(j-1), 3502-j. Each row multiplexer 3501 receives current, such as bit line current, from one or more rows of the VMM array 3401. If more than one row is connected to a separate row multiplexer 3501, the row multiplexer 3501 selects a row and supplies the current from that row to a separate ADC 3502, which converts the received current into a digital output DOUTx[n:1], where x is the number of rows and DOUT contains n bits. If j equals the number of rows in the VMM array 3401, meaning that each row has its own ADC 3502, then the row multiplexer 3501 is selectable, and each row in the VMM array 3401 can be directly connected to its associated ADC 3502.

圖36描繪Σ-△ ADC 3600,其可用於圖35之輸出電路3500中的ADC 3502。Σ-△ ADC 3600接收來自VMM陣列3401之行的電流IBL、致能信號EN及時鐘信號CLK,該行為簡單起見說明為單個記憶體胞元。CLK通常將具有比用於VMM系統中之其他電路系統之時鐘頻率更高的頻率,因為Σ-△ ADC 3600將CLK用於對從VMM陣列3401所接收之電流執行取樣。Σ-△ ADC 3600輸出包含n個位元之數位輸出DOUT[n:1]。Σ-△ ADC 3600在不使用電流至電壓轉換器(ITV)之情況下將陣列電流IBL直接轉換成數位輸出位元。 Figure 36 illustrates the Σ-Δ ADC 3600, which can be used in the ADC 3502 of the output circuit 3500 in Figure 35. The Σ-Δ ADC 3600 receives the current IBL, enable signal EN, and clock signal CLK from the row of VMM array 3401, which is illustrated for simplicity as a single memory cell. CLK will typically have a higher clock frequency than other circuit systems used in VMM systems because the Σ-Δ ADC 3600 uses CLK to sample the current received from VMM array 3401. The Σ-Δ ADC 3600 output consists of an n-bit digital output DOUT[n:1]. The Σ-△ ADC 3600 directly converts the array current IBL into digital output bits without using a current-to-voltage converter (ITV).

圖37描繪Σ-△ ADC 3700,其為圖36中之Σ-△ ADC 3600的實例。Σ-△ ADC 3700包含比較器3701、狀態機(SM)3702、電流源3703及開關3704。Σ-△ ADC 3700耦接至VMM陣列3401中之行,該行為簡單起見說明為單個記憶體胞元3711,其從Σ-△ ADC 3700汲取電流。SM 3702可使用離散邏輯、可程式化裝置、處理器、控制器或其他機構來實施。Σ-△ ADC 3700耦接至VMM陣列3401中之行,該行為簡單起見說明為單個記憶體胞元,其從Σ-△ ADC 3700汲取電流。Σ-△ ADC 3700亦接收致能信號EN、時鐘信號CLK及參考電壓VREF。電流源3703提供參考電流IREF且為注入電路之實例。開關3704由SM 3702控制。比較器3701包含耦接至行(說明為記憶體胞元3711)且通過開關3704耦接至電流源3703之第一端子(此處為反相端子),及耦接至參考電壓VREF之第二端子(此處為非反相端子)。SM 3702接收比較器3701之輸出。當記憶體胞元3711之位元線(BL)節點上的電壓<VREF時,則時鐘信號CLK由SM 3702傳遞或由SM 3702轉換成經轉換時鐘信號,作為信號CLK_REF 3710, 該信號CLK_REF 3710因此具有與時鐘信號CLK極性相同或相反的時鐘脈衝。在時鐘信號CLK已由SM 3702轉換之情況下,則信號CLK_REF 3710之時鐘脈衝可具有與時鐘信號CLK之時鐘脈衝不同的工作週期或極性,該信號CLK_REF 3710控制開關3704。當信號CLK_REF在各時鐘週期期間被確立時,開關3704閉合,且使得來自電流源3703之Iref能夠流動至記憶體胞元3711之BL節點中,此升高BL節點或記憶體胞元3711上之電壓。回應於時鐘信號CLK,信號CLK_REF繼續計時,且在信號CLK_REF之各確立下,將電流IREF注入至記憶體胞元3711之BL節點中,亦即將與IREF * T成比例之電荷Qref注入至BL節點或記憶體胞元3711中,其中T為信號CLK_REF之確立時間,直至記憶體胞元3711之BL節點上的電壓>VREF,此時SM 3702將保持信號CLK_REF被解除確立,此意謂CLK脈衝不會由SM 3702傳遞至信號CLK_REF或由SM 3702轉換以供傳輸至信號CLK_REF。回應於讀取操作之開始,VMM陣列3401汲取電流以將記憶體胞元3711之BL節點上的減小為低。在不存在額外電荷之情況下,由於信號CLK_REF被解除確立,因此VMM陣列3401汲取電流以將記憶體胞元3711之BL節點上的減小為低,直至其<VREF,且接著重複該程序。SM 3702追蹤信號CLK_REF上之計時,作為回應產生數位輸出位元DOUT[n:1]。在此實例中,來自SM 3702之DOUT[n:1]為開關3704在時鐘信號CLK之某一數目個週期期間閉合的次數之計數值的數位表示,且反映由VMM陣列3401汲取之電流量。舉例而言,可在512個CLK週期內輸出8位元數位輸出DOUT[7:0]。高值將指示開關3704被打開及閉合相對較大次數,此表示VMM陣列3401正汲取大電流,因為由電流源3703提供至記憶體胞元3711之BL節點以匹配由VMM陣列3401汲取之電流量的電荷量因此相對較大,而低值將指示開關3704被打開及 閉合相對較小次數,此表示VMM陣列3401正汲取小電流。數位輸出值反映為注入至BL中以平衡陣列電流(以保持BL恆定)的總電荷(亦即,Qref之量),當較大電流產生較大的數位輸出值時,較小電流產生較小的數位輸出值。DOUT[n:1]指示由行(說明為記憶體胞元3711)汲取之電流的值。 Figure 37 illustrates a Σ-Δ ADC 3700, which is an example of the Σ-Δ ADC 3600 in Figure 36. The Σ-Δ ADC 3700 includes a comparator 3701, a state machine (SM) 3702, a current source 3703, and a switch 3704. The Σ-Δ ADC 3700 is coupled to a row in a VMM array 3401, which for simplicity is illustrated as a single memory cell 3711 that draws current from the Σ-Δ ADC 3700. The SM 3702 can be implemented using discrete logic, a programmable device, a processor, a controller, or other mechanisms. The Σ-Δ ADC 3700 is coupled to a row in the VMM array 3401, which for simplicity is described as a single memory cell that draws current from the Σ-Δ ADC 3700. The Σ-Δ ADC 3700 also receives an enable signal EN, a clock signal CLK, and a reference voltage VREF. Current source 3703 provides the reference current IREF and is an example of an injection circuit. Switch 3704 is controlled by SM 3702. Comparator 3701 includes a first terminal (inverting terminal) coupled to the row (described as memory cell 3711) and coupled to the current source 3703 via switch 3704, and a second terminal (non-inverting terminal) coupled to the reference voltage VREF. SM 3702 receives the output of comparator 3701. When the voltage at the bit line (BL) node of memory cell 3711 is less than VREF, the clock signal CLK is transmitted by SM 3702 or converted by SM 3702 into a converted clock signal, CLK_REF 3710. This signal CLK_REF 3710 therefore has a clock pulse with the same or opposite polarity as the clock signal CLK. If the clock signal CLK has been converted by SM 3702, the clock pulse of the signal CLK_REF 3710 may have a different operating period or polarity than the clock pulse of the clock signal CLK. This signal CLK_REF 3710 controls switch 3704. When the signal CLK_REF is established during each clock cycle, switch 3704 closes, allowing Iref from current source 3703 to flow to the BL node of memory cell 3711, thereby increasing the voltage on the BL node or memory cell 3711. In response to the clock signal CLK, the signal CLK_REF continues to count down, and upon the establishment of the signal CLK_REF, a current IREF is injected into the BL node of memory cell 3711. That is, a charge Qref proportional to IREF * T is injected into the BL node or memory cell 3711, where T is the establishment time of the signal CLK_REF. This continues until the voltage on the BL node of memory cell 3711 is greater than VREF. At this time, SM 3702 will keep the signal CLK_REF de-established. This means that the CLK pulse will not be transmitted from SM 3702 to the signal CLK_REF or converted by SM 3702 for transmission to the signal CLK_REF. In response to the start of a read operation, VMM array 3401 draws current to bring the BL node of memory cell 3711 low. In the absence of additional charge, since the signal CLK_REF is de-established, VMM array 3401 draws current to bring the BL node of memory cell 3711 low until it < VREF, and then repeats the procedure. SM 3702 tracks the timing on the signal CLK_REF and generates the digital output bit DOUT[n:1] in response. In this example, DOUT[n:1] from SM 3702 is a digital representation of the count of the number of times switch 3704 is closed during a certain number of cycles of clock signal CLK, and reflects the current drawn by VMM array 3401. For example, an 8-bit digital output DOUT[7:0] can be output over 512 CLK cycles. A high value indicates that switch 3704 is opened and closed a relatively large number of times, meaning that the VMM array 3401 is drawing a large current because the charge supplied by current source 3703 to the BL node of memory cell 3711 to match the current drawn by the VMM array 3401 is therefore relatively large. A low value indicates that switch 3704 is opened and closed a relatively small number of times, meaning that the VMM array 3401 is drawing a small current. The digital output value reflects the total charge (i.e., the amount of Qref) injected into the BL to balance the array current (to keep the BL constant). A larger current produces a larger digital output value, and a smaller current produces a smaller digital output value. DOUT[n:1] indicates the value of the current drawn from the row (described as memory cell 3711).

圖38描繪Σ-△ ADC 3800,其為圖36中之Σ-△ ADC 3600的實例。Σ-△ ADC 3800包含比較器3801、SM 3802、電容器CREF 3803、開關3804及開關3805。Σ-△ ADC 3800耦接至VMM陣列3401中之行,該行為簡單起見說明為單個記憶體胞元3811,其從Σ-△ ADC 3800汲取電流。SM 3802將控制信號CLK_REFB及CLK_REF分別提供至開關3804及開關3805。CLK_REFB與CLK_REF在邏輯上相反。開關3804用於在其閉合時(在CLK_REFB被確立時)將電容器3803充電到某一電壓(在此情況下為VDD),且開關3805在閉合時(在CLK_REF被確立時)使得來自電容器3803之電荷放電至單個記憶體胞元3811之位元線(BL)節點中,其中電容器3803上之參考電荷Qref將與(VDD-胞元3811之BL節點之電壓)*電容器3803之電容成比例地減小。亦即,對於信號CLK_REF及CLK_REFB中之各時鐘脈衝,將參考電荷Qref注入至胞元3811之BL節點中,其中該參考電荷隨著通過記憶體胞元3811之電流而流動至地。電容器3803為注入電路之實例。Σ-△ ADC 3800耦接至VMM陣列3401中之行,其從Σ-△ ADC 3800汲取電流。比較器3801包含耦接至行(說明為記憶體胞元3811)且通過開關3805耦接至電容器3803之第一端子(此處為反相端子),及耦接至參考電壓VREF之第二端子(此處為非反相端子)。SM 3802接收比較器3801之輸出。Σ-△ ADC 3800亦接收致能信號EN、時鐘信號CLK及參考電壓VREF。藉由將參考電荷而非參考電流注入至BL節點或記憶體胞元3811中,電容器3803將與圖37中之電流源3703等效地表 現。Σ-△ ADC 3800另外以與圖37中之Σ-△ ADC 3700類似的方式操作,其中主要差異在於其使用參考電荷而非參考電流。來自SM 3802之輸出位元DOUT[n:1]為開關3805在時鐘信號CLK內之某一數目個週期期間閉合的次數之數位計數值。較高值將指示開關3805被打開及閉合相對較大次數,此表示VMM陣列3401正汲取大電流,而較低值將指示開關3805被打開及閉合相對較小次數,此表示VMM陣列3401正汲取小電流。 Figure 38 illustrates a Σ-Δ ADC 3800, which is an example of the Σ-Δ ADC 3600 in Figure 36. The Σ-Δ ADC 3800 includes a comparator 3801, an SM 3802, a capacitor CREF 3803, and switches 3804 and 3805. The Σ-Δ ADC 3800 is coupled to a row in a VMM array 3401, which for simplicity is illustrated as a single memory cell 3811 that draws current from the Σ-Δ ADC 3800. SM 3802 provides control signals CLK_REFB and CLK_REF to switches 3804 and 3805, respectively. CLK_REFB and CLK_REF are logically opposite. Switch 3804 is used to charge capacitor 3803 to a voltage (VDD in this case) when it is closed (when CLK_REFB is confirmed), and switch 3805 discharges the charge from capacitor 3803 to the bit line (BL) node of individual memory cell 3811 when it is closed (when CLK_REF is confirmed), wherein the reference charge Qref on capacitor 3803 will be reduced proportionally to (VDD - voltage of BL node of cell 3811) * capacitance of capacitor 3803. That is, for each clock pulse in signals CLK_REF and CLK_REFB, a reference charge Qref is injected into the BL node of cell 3811, whereby the reference charge flows to ground along with the current through memory cell 3811. Capacitor 3803 is an example of the injection circuit. Σ-Δ ADC 3800 is coupled to a row in VMM array 3401, drawing current from Σ-Δ ADC 3800. Comparator 3801 includes a first terminal (inverting terminal) coupled to the row (described as memory cell 3811) and coupled to capacitor 3803 via switch 3805, and a second terminal (non-inverting terminal) coupled to reference voltage VREF. SM 3802 receives the output of comparator 3801. The Σ-Δ ADC 3800 also receives the enable signal EN, the clock signal CLK, and the reference voltage VREF. By injecting a reference charge instead of a reference current into the BL node or memory cell 3811, capacitor 3803 will behave equivalently to the current source 3703 in Figure 37. The Σ-Δ ADC 3800 also operates in a similar manner to the Σ-Δ ADC 3700 in Figure 37, the main difference being that it uses a reference charge instead of a reference current. The output bits DOUT[n:1] from SM 3802 are the digital count of the number of times switch 3805 is closed during a certain number of cycles of the clock signal CLK. A higher value indicates that switch 3805 is opened and closed a relatively large number of times, meaning that VMM array 3401 is drawing a large current, while a lower value indicates that switch 3805 is opened and closed a relatively small number of times, meaning that VMM array 3401 is drawing a small current.

圖39描繪Σ-△ ADC 3900,其為圖36中之Σ-△ ADC 3600的實例。Σ-△ ADC 3900類似於圖37中之Σ-△ ADC 3700,不同之處在於,其使用產生可變參考電流IREFV而非固定參考電流之可調電流源3903(其為注入電路之實例)。此外,可調電流源3903由SM 3902或全局控制信號(未展示)控制。可調電流源3903可經調整以提供不同量之參考電流,以便補償不同陣列電流範圍、不同位元線電容或PVT(製程溫度及電壓)上之任何變化。比較器3901包含耦接至行(說明為記憶體胞元3911)且通過開關3904耦接至可調電流源3903之第一端子(此處為反相端子),及耦接至參考電壓VREF之第二端子(此處為非反相端子)。SM 3902接收比較器3901之輸出。 Figure 39 depicts the Σ-Δ ADC 3900, an example of the Σ-Δ ADC 3600 in Figure 36. The Σ-Δ ADC 3900 is similar to the Σ-Δ ADC 3700 in Figure 37, except that it uses an adjustable current source 3903 (an example of an injection circuit) that generates a variable reference current IREFV instead of a fixed reference current. Furthermore, the adjustable current source 3903 is controlled by SM 3902 or a global control signal (not shown). The adjustable current source 3903 can be adjusted to provide different amounts of reference current to compensate for any variations in array current ranges, bit line capacitances, or PVT (process temperature and voltage). Comparator 3901 includes a first terminal (inverting terminal) coupled to a row (described as memory cell 3911) and coupled to an adjustable current source 3903 via a switch 3904, and a second terminal (non-inverting terminal) coupled to a reference voltage VREF. SM 3902 receives the output of comparator 3901.

圖40描繪Σ-△ ADC 4000,其為圖36中之Σ-△ ADC 3600的實例。Σ-△ ADC 4000類似於圖38中之Σ-△ ADC 3800,不同之處在於,電壓VREFSUP由可變參考電源4006供應至參考電容器4003。電容器4003為注入電路之實例。此外,可變參考電源4006回應於SM 4002或藉由全局控制信號(未展示)產生可變電壓,亦即,可回應於信號CFG_VREFSUP而調整由可變參考電源4006提供之電壓量,該信號CFG_VREFSUP可由SM 4002提供。由可變參考電源4006提供之電壓可經調整以補償不同陣列電流範圍、不同位元線電容或PVT(製程溫度及電 壓)上之任何變化。比較器4001包含耦接至行(說明為記憶體胞元4011)且通過開關4005耦接至電容器4003之第一端子(此處為反相端子),及耦接至參考電壓VREF之第二端子(此處為非反相端子)。SM 4002接收比較器4001之輸出。 Figure 40 depicts the Σ-Δ ADC 4000, an example of the Σ-Δ ADC 3600 in Figure 36. The Σ-Δ ADC 4000 is similar to the Σ-Δ ADC 3800 in Figure 38, except that the voltage VREFSUP is supplied by a variable reference power supply 4006 to a reference capacitor 4003. Capacitor 4003 is an example of an injection circuit. Furthermore, the variable reference power supply 4006 responds to SM 4002 or generates a variable voltage via a global control signal (not shown). That is, the voltage supplied by the variable reference power supply 4006 can be adjusted in response to the signal CFG_VREFSUP, which can be provided by SM 4002. The voltage supplied by the variable reference power supply 4006 can be adjusted to compensate for any variations in array current ranges, bit-line capacitances, or PVT (process temperature and voltage). Comparator 4001 includes a first terminal (inverting terminal) coupled to a row (described as memory cell 4011) and via switch 4005 coupled to capacitor 4003, and a second terminal (non-inverting terminal) coupled to the reference voltage VREF. SM 4002 receives the output of comparator 4001.

圖41描繪Σ-△ ADC 4100,其為圖36中之Σ-△ ADC 3600的實例。Σ-△ ADC 4100包含比較器4101、SM 4102、電容器CREF 4103、開關4104、開關4105、電晶體4106及閘極驅動器4107,該閘極驅動器4107驅動電晶體4106之閘極。Σ-△ ADC 4100類似於圖38中之Σ-△ ADC3800,不同之處在於電晶體4106之使用,其中該電晶體之閘極由閘極驅動器4107提供之參考電壓控制。比較器4101包含耦接至行(說明為記憶體胞元4111)且通過開關4105耦接至電容器4103之第一端子(此處為反相端子),及耦接至參考電壓VREF之第二端子(此處為非反相端子)。SM 4102接收比較器4101之輸出。電晶體4106用於控制多少電荷被轉移(注入)至記憶體胞元4111之BL節點中。所注入電荷與(Vdd-(VREFX+Vt_4106))*電容器4103之電容成比例,其中Vt_4106為電晶體4106之臨限電壓。VREFx可由SM 4102或全局控制信號(未展示)控制。其可用於補償不同陣列電流範圍、不同位元線電容或PVT(製程溫度及電壓)上之任何變化。 Figure 41 illustrates a Σ-Δ ADC 4100, which is an example of the Σ-Δ ADC 3600 in Figure 36. The Σ-Δ ADC 4100 includes a comparator 4101, an SM 4102, a capacitor CREF 4103, switches 4104 and 4105, a transistor 4106, and a gate driver 4107 that drives the gate of the transistor 4106. The Σ-Δ ADC 4100 is similar to the Σ-Δ ADC 3800 in Figure 38, except for the use of transistor 4106, in which the gate of the transistor is controlled by a reference voltage provided by the gate driver 4107. Comparator 4101 includes a first terminal (inverting terminal) coupled to the row (described as memory cell 4111) and coupled to capacitor 4103 via switch 4105, and a second terminal (non-inverting terminal) coupled to a reference voltage VREF. SM 4102 receives the output of comparator 4101. Transistor 4106 controls how much charge is transferred (injected) into the BL node of memory cell 4111. The injected charge is proportional to (Vdd - (VREFX + Vt_4106)) * capacitance of capacitor 4103, where Vt_4106 is the threshold voltage of transistor 4106. VREFx can be controlled by SM 4102 or a global control signal (not shown). It can be used to compensate for any variations in array current range, bit line capacitance, or PVT (process temperature and voltage).

圖42描繪Σ-△ ADC 4200,其為圖36中之Σ-△ ADC 3600的實例。Σ-△ ADC 4200包含比較器4201、SM 4202、可調電容器4203、開關4204及開關4205。Σ-△ ADC 4200類似於圖40中之Σ-△ ADC 4000,不同之處在於,使用可調電容器4203而非可變參考電源。可調電容器4203回應於SM 3902或藉由全局控制信號(未展示)產生可變電荷,亦即,由可調電容器4203提供之電容量回應於信號CFG_CREF,該信號 CFG_CREF可由SM 4202提供。信號CFG_CREF及可調電容器4203可用於補償不同陣列電流範圍、不同位元線電容或PVT(製程溫度及電壓)上之任何變化。比較器4201包含耦接至行(說明為記憶體胞元4211)且通過開關4205耦接至可調電容器4203之第一端子(此處為反相端子),及耦接至參考電壓VREF之第二端子(此處為非反相端子)。SM 4202接收比較器4201之輸出。 Figure 42 illustrates a Σ-Δ ADC 4200, which is an example of the Σ-Δ ADC 3600 in Figure 36. The Σ-Δ ADC 4200 includes a comparator 4201, an SM 4202, an adjustable capacitor 4203, switches 4204 and 4205. The Σ-Δ ADC 4200 is similar to the Σ-Δ ADC 4000 in Figure 40, except that it uses an adjustable capacitor 4203 instead of a variable reference power supply. The adjustable capacitor 4203 responds to the SM 3902 or generates a variable charge via a global control signal (not shown); that is, the capacitance provided by the adjustable capacitor 4203 responds to the signal CFG_CREF, which can be provided by the SM 4202. The signal CFG_CREF and the adjustable capacitor 4203 can be used to compensate for any variations in array current range, bit line capacitance, or PVT (process temperature and voltage). Comparator 4201 includes a first terminal (inverting terminal) coupled to the row (described as memory cell 4211) and via switch 4205 to the adjustable capacitor 4203, and a second terminal (non-inverting terminal) coupled to the reference voltage VREF. SM 4202 receives the output of comparator 4201.

圖43描繪Σ-△ ADC 4300,其為圖36中之Σ-△ ADC 3600的實例。Σ-△ ADC 4300包含比較器4301、SM 4302、可變電容器4303、可變虛擬BL電容器4306、開關4304及開關4305。Σ-△ ADC 4300類似於Σ-△ ADC 4200,不同之處在於,可變虛擬BL電容器4306已與VMM陣列3401並聯添加。可變虛擬BL電容器4306回應於SM 4302或藉由全局控制信號(未展示)產生可變電荷,亦即,可回應於SM 4302或藉由全局控制信號(未展示)而使由可變虛擬BL電容器4306提供之電容量變化,此可用於補償不同陣列電流範圍、不同位元線電容或PVT(製程溫度及電壓)上之任何變化。比較器4301包含耦接至行(說明為記憶體胞元4311)且通過開關4305耦接至可調電容器4306及可調電容器4303(其一起形成注入電路之實例)之第一端子(此處為反相端子),及耦接至參考電壓VREF之第二端子(此處為非反相端子)。SM 4302接收比較器4301之輸出。 Figure 43 depicts the Σ-Δ ADC 4300, which is an example of the Σ-Δ ADC 3600 in Figure 36. The Σ-Δ ADC 4300 includes a comparator 4301, an SM 4302, a variable capacitor 4303, a variable virtual BL capacitor 4306, a switch 4304, and a switch 4305. The Σ-Δ ADC 4300 is similar to the Σ-Δ ADC 4200, except that the variable virtual BL capacitor 4306 is added in parallel with the VMM array 3401. The variable virtual BL capacitor 4306 responds to SM 4302 or generates a variable charge via a global control signal (not shown). That is, the capacitance provided by the variable virtual BL capacitor 4306 can be varied in response to SM 4302 or via a global control signal (not shown). This can be used to compensate for any changes in different array current ranges, different bit line capacitances, or PVT (process temperature and voltage). Comparator 4301 includes a first terminal (here, the inverting terminal) coupled to the row (described as memory cell 4311) and coupled via switch 4305 to adjustable capacitors 4306 and 4303 (which together form an example of an injection circuit), and a second terminal (here, the non-inverting terminal) coupled to a reference voltage VREF. The SM 4302 receives the output of the comparator 4301.

圖44A及圖44B描繪說明Σ-△ ADC 3600、3700、3800、3900、4000、4100、4200及4300之操作的實例波形4400及4410。在波形4400中,VMM陣列3401汲取電流I1,而在波形4410中,VMM陣列3401汲取彼量之一半的電流I1/2。VBL為VMM陣列3401中之位元線的電壓,其耦接至各別比較器3701、3801、3901、4001、4101、4201及4301之反相輸入,且VREF為提供至各別比較器3701、3801、3901、4001、4101、 4201及4301之非反相輸入的電壓。展示時鐘信號CLK及信號CLK_REF,其中各別比較器3701、3801、3901、4001、4101、4201及4301之輸出說明為信號COMP_OUT。當各別開關3704、3805、3904、4005、4105、4205及4305閉合時,VBL升高,且此後當彼等開關打開時,VBL下降。對各別開關3704、3805、3904、4005、4105、4205及4305閉合(或打開)之次數進行計數,且某一時段內之計數值輸出作為數位輸出DOUT[n:1]。在波形4400中,在所展示之時鐘信號CLK之16個時段期間,計數為4。在波形4410中,在所展示之時鐘信號CLK之16個時段期間,計數為2,因為陣列電流為圖44A中之波形4400中之電流的一半。量測計數之相關時段可大於或小於時鐘信號CLK之16個時段。 Figures 44A and 44B illustrate example waveforms 4400 and 4410 of the operation of Σ-Δ ADCs 3600, 3700, 3800, 3900, 4000, 4100, 4200, and 4300. In waveform 4400, the VMM array 3401 draws current I1, while in waveform 4410, the VMM array 3401 draws half of that current I1/2. VBL is the voltage of the bit lines in the VMM array 3401, coupled to the inverting inputs of comparators 3701, 3801, 3901, 4001, 4101, 4201, and 4301, and VREF is the voltage provided to the non-inverting inputs of comparators 3701, 3801, 3901, 4001, 4101, 4201, and 4301. The clock signals CLK and CLK_REF are shown, with the outputs of comparators 3701, 3801, 3901, 4001, 4101, 4201, and 4301 described as the signal COMP_OUT. When individual switches 3704, 3805, 3904, 4005, 4105, 4205, and 4305 are closed, VBL increases, and subsequently decreases when those switches are opened. The number of times each switch 3704, 3805, 3904, 4005, 4105, 4205, and 4305 is closed (or opened) is counted, and the count value for a given period is output as the digital output DOUT[n:1]. In waveform 4400, the count is 4 during the 16 time periods of the clock signal CLK shown. In waveform 4410, the count is 2 during the 16 time periods of the clock signal CLK shown, because the array current is half of the current in waveform 4400 in Figure 44A. The relevant time intervals for measurement and counting can be greater than or less than the 16 time intervals of the clock signal CLK.

圖45描繪分別說明Σ-△ ADC 3600、3700、3800、3900、4000、4100、4200及4300的操作的曲線圖4500。曲線圖4500展示VBL與IBL之間的關係,其中VBL為分別在記憶體胞元3711、3811、3911、4011、4111之BL節點處的電壓,且IBL為藉由分別耦接至比較器3701、3801、3901、4001、4101、4201及4301之輸入的VMM陣列3401從BL節點汲取的電流。如所展示,在陣列電流範圍內發生大的VBL變化,因此需要改良以減小所展示電流範圍內之電壓變化。 Figure 45 illustrates the curves 4500 of the operation of the Σ-Δ ADCs 3600, 3700, 3800, 3900, 4000, 4100, 4200, and 4300, respectively. Curve 4500 shows the relationship between VBL and IBL, where VBL is the voltage at the BL node of memory cells 3711, 3811, 3911, 4011, and 4111, respectively, and IBL is the current drawn from the BL node by the VMM array 3401 through the inputs of comparators 3701, 3801, 3901, 4001, 4101, 4201, and 4301, respectively. As shown, large VBL variations occur within the array current range, therefore improvements are needed to reduce these voltage variations within the demonstrated current range.

圖46描繪說明Σ-△ ADC 3600、3700、3800、3900、4000、4100、4200及4300的操作的曲線圖4600。曲線圖4600展示VBL與IBL之間的關係,其中VBL為分別在記憶體胞元3711、3811、3911、4011、4111之BL節點處的電壓,且IBL為藉由耦接至比較器3701、3801、3901、4001、4101、4201及4301之輸入的VMM陣列3401從BL節點汲取的電流。 Figure 46 illustrates the curves 4600 for the operation of the Σ-Δ ADCs 3600, 3700, 3800, 3900, 4000, 4100, 4200, and 4300. Curve 4600 shows the relationship between VBL and IBL, where VBL is the voltage at the BL nodes of memory cells 3711, 3811, 3911, 4011, and 4111, respectively, and IBL is the current drawn from the BL nodes by the VMM array 3401 through the inputs of comparators 3701, 3801, 3901, 4001, 4101, 4201, and 4301.

曲線圖4600描繪針對Qref之不同值的VBL及IBL之跡線,其中Qref為注入至位元線中之參考電荷。在此,展示21個Qref實例之跡 線:QREF1、QREF2、...、QREF20、QREF21。此等為實例,且可使用任何數目個不同Qref值。SM 3702、3802、3902、4002、4102、4202及4302可經程式化以基於正接收或預期之輸入電流IBL的範圍來修改Qref。可使用以下演算法針對各電流範圍選擇Qref值。 Curve 4600 depicts the traces of VBL and IBL for different values of Qref, where Qref is the reference charge injected into the bit line. Here, traces of 21 Qref examples are shown: QREF1, QREF2, ..., QREF20, QREF21. These are examples, and any number of different Qref values can be used. SMs 3702, 3802, 3902, 4002, 4102, 4202, and 4302 can be programmed to modify Qref based on a range of the received or expected input current IBL. The following algorithm can be used to select the Qref value for each current range.

第一,將VBL之可能電壓範圍劃分成複數個範圍。此處,展示三個實例電壓範圍:電壓範圍4601、4602及4603。在各電壓範圍內,判定可接受誤差量。舉例而言,對於(VBL)電壓範圍4602,電壓在大致599mV至601.5mV之間變化,且可接受誤差為2.5mV。 First, the possible voltage range of VBL is divided into multiple ranges. Here, three example voltage ranges are shown: voltage ranges 4601, 4602, and 4603. Within each voltage range, the acceptable error is determined. For example, for voltage range 4602 (VBL), the voltage varies between approximately 599mV and 601.5mV, and the acceptable error is 2.5mV.

第二,考慮到此可接受誤差,將IBL之可能電流範圍劃分成複數個範圍。此處,展示六個實例電流範圍:電流範圍4604、4605、4606、4607、4608及4609。在各電流範圍內,識別一或多個Qref值,該一或多個Qref值產生在電壓範圍之可接受誤差量內的電壓跡線,或替代地,識別不可接受之Qref值。 Second, considering this acceptable error, the possible current range of the IBL is divided into multiple ranges. Here, six example current ranges are shown: current ranges 4604, 4605, 4606, 4607, 4608, and 4609. Within each current range, one or more Qref values are identified, which generate voltage traces within the acceptable error range of the voltage range; alternatively, unacceptable Qref values are identified.

舉例而言,在電流範圍4604中,QREF1至QREF4可能為可接受的,因為其跡線為相當線性的,但一些其他QREF可能為不可接受的,因為其在該範圍之開頭或結尾附近或在可接受範圍4602之外表現出非線性。 For example, within current range 4604, QREF1 through QREF4 may be acceptable because their traces are fairly linear, but some other QREFs may be unacceptable because they exhibit nonlinearity near the beginning or end of the range or outside the acceptable range 4602.

在電流範圍4605中,QREF1、QREF2及QREF3可能被認為係不可接受的,因為其跡線在該電流範圍內表現出非線性(例如,大下降),QREF4至QREF9為可接受的,而所有其他QREF可能被認為係不可接受的,因為其跡線表現出非線性或在電壓範圍4602之外。 Within current range 4605, QREF1, QREF2, and QREF3 may be considered unacceptable because their traces exhibit nonlinearity (e.g., large drops) within that current range. QREF4 through QREF9 are acceptable, while all other QREFs may be considered unacceptable because their traces exhibit nonlinearity or are outside voltage range 4602.

在電流範圍4606中,QREF1至QREF8可能被認為係不可接受的,因為其甚至不在電壓範圍4602中操作,且QREF10至QREF13在4602範圍內為可接受的且具有相當線性之跡線。 Within the current range 4606, QREF1 through QREF8 may be considered unacceptable because they do not even operate within the voltage range 4602, while QREF10 through QREF13 are acceptable within the range 4602 and exhibit fairly linear traces.

類似地,在電流範圍4607中,QREF1至QREF12可能被認為係不可接受的,且QREF13至QREF16為可接受的。 Similarly, within the current range 4607, QREF1 to QREF12 may be considered unacceptable, while QREF13 to QREF16 are acceptable.

類似地,在電流範圍4608中,QREF1至QREF16可能被認為係不可接受的,且QREF17至QREF20為可接受的。 Similarly, within the current range 4608, QREF1 through QREF16 may be considered unacceptable, while QREF17 through QREF20 are acceptable.

類似地,在電流範圍4609中,QREF1至QREF19可能被認為係不可接受的,且QREF20至QREF21為可接受的。 Similarly, within the current range 4609, QREF1 to QREF19 may be considered unacceptable, while QREF20 to QREF21 are acceptable.

由於更小的QREF更容易且更快地產生(例如,由於電容充電時間),因此SM 3702、3802、3902、4002、4102、4202及4302可針對各範圍選擇最小可接受的QREF。舉例而言,SM 3702、3802、3902、4002、4102、4202及4302可針對電流範圍4604選擇QREF3,針對電流範圍4605選擇QREF8,針對電流範圍4606選擇QREF12,針對電流範圍4607選擇QREF16,針對電流範圍4608選擇QREF20,且針對電流範圍4609選擇QREF21。 Because smaller QREFs are easier and faster to generate (e.g., due to capacitor charging time), SMs 3702, 3802, 3902, 4002, 4102, 4202, and 4302 can select the smallest acceptable QREF for each range. For example, SMs 3702, 3802, 3902, 4002, 4102, 4202, and 4302 can select QREF3 for current range 4604, QREF8 for current range 4605, QREF12 for current range 4606, QREF16 for current range 4607, QREF20 for current range 4608, and QREF21 for current range 4609.

圖47描繪說明Σ-△ ADC 3600、3700、3800、3900、4000、4100、4200及4300的操作的曲線圖4700。曲線圖4700展示VBL與IBL之間的關係,其中VBL為分別在記憶體胞元3711、3811、3911、4011、4111之BL節點處的電壓,且IBL為藉由分別耦接至比較器3701、3801、3901、4001、4101、4201及4301之輸入的VMM陣列3401從BL節點汲取的電流。如所展示,將電流範圍劃分成6個區,且藉由基於Σ-△ ADC之設計調整CREF、IREF、VSUPREF之值而在各區中使用不同的QREF。SM 3702、3802、3902、4002、4102、4202及4302可基於VMM陣列之所量測電流範圍而選擇特定的CREF/IREF/VSUPREF值,例如藉由監測數位輸出位元以基於該等位元之值決定電流範圍,以便在曲線圖4500及4600之跡線 中說明之各種選項或未展示之選項中實現更線性的範圍。選擇地,該等值可在ADC之操作期間藉由SM改變。 Figure 47 illustrates the curves 4700 of the operation of the Σ-Δ ADCs 3600, 3700, 3800, 3900, 4000, 4100, 4200, and 4300. Curve 4700 shows the relationship between VBL and IBL, where VBL is the voltage at the BL node of memory cells 3711, 3811, 3911, 4011, and 4111, respectively, and IBL is the current drawn from the BL node by the VMM array 3401 through the inputs of comparators 3701, 3801, 3901, 4001, 4101, 4201, and 4301, respectively. As shown, the current range is divided into six zones, and different QREFs are used in each zone by adjusting the values of CREF, IREF, and VSUPREF based on the Σ-Δ ADC design. SMs 3702, 3802, 3902, 4002, 4102, 4202, and 4302 can select specific CREF/IREF/VSUPREF values based on the measured current range of the VMM array, for example, by monitoring digital output bits to determine the current range based on the values of those bits, in order to achieve a more linear range among the various options illustrated in the traces of curves 4500 and 4600, or options not shown. Alternatively, these values can be changed by the SM during ADC operation.

圖48描繪輸出電路4800,其包含電流至電壓轉換器4801及Σ-△ ADC 4802。電流至電壓轉換器4801從VMM陣列3401(未展示)接收位元線電流,且將電流轉換成電壓ITV_Ox,將該電壓ITV_Ox提供至SD ADC 4802,該SD ADC 4802將該電壓轉換成數位輸出[n:1]。 Figure 48 illustrates the output circuit 4800, which includes a current-to-voltage converter 4801 and a Σ-Δ ADC 4802. The current-to-voltage converter 4801 receives bit-line current from a VMM array 3401 (not shown) and converts the current into a voltage ITV_Ox, which is then provided to the SD ADC 4802, which converts the voltage into a digital output [n:1].

圖49描繪輸出電路4900,其包含電流至電壓轉換器4901及Σ-△ ADC 4902。電流至電壓轉換器4901從VMM陣列3401(未展示)接收不同的位元線電流IBL+及IBL-,且將該等差分電流轉換成差分電壓ITV_O+及ITV_O-,將該等差分電壓ITV_O+及ITV_O-提供至SD ADC 4902,該SD ADC 4902將該等電壓轉換成數位輸出[n:1]。在此情況下,Σ-△ ADC(未展示)對電壓而非電流進行操作。 Figure 49 illustrates the output circuit 4900, which includes a current-to-voltage converter 4901 and a Σ-Δ ADC 4902. The current-to-voltage converter 4901 receives different bit-line currents IBL+ and IBL- from a VMM array 3401 (not shown) and converts these differential currents into differential voltages ITV_O+ and ITV_O-. These differential voltages ITV_O+ and ITV_O- are then provided to the SD ADC 4902, which converts these voltages into a digital output [n:1]. In this case, the Σ-Δ ADC (not shown) operates on voltage, not current.

圖50描繪差分輸出電路5000,其中數位輸出位元表示差分權重,例如,W=(W+)-(W-)或IBL=(IBL+)-(IBL-)。Σ-△ ADC 5001及5002可為Σ-△ ADC 3600、3700、3800、3900、4000、4100、4200及4300中之任一者。在操作期間,IBL+由Σ-△ ADC 5001轉換成數位位元,且其結果藉由以中間值開始且由數位位元之值向上計數而儲存於上/下數計數器5003中。接著,IBL-由Σ-△ ADC 5002轉換成數位位元,且其結果用於對計數器5003中之值進行向下計數。因此,由上/下數計數器5003輸出之最終值DOUT[n:1]為由(IBL+)-(IBL-)表示之差分權重。舉例而言,若上/下數計數器5003為8位元計數器,則中間值可為127(01000000)。運用Σ-△ ADC 5001之輸出進行向上計數將產生介於127與255之間的值,且向下計數將產生介於0至255之間的最終值,其中128至255表示正權重且0至127表示負權重。 Figure 50 depicts a differential output circuit 5000, where the digital output bits represent differential weights, for example, W = (W+) - (W-) or IBL = (IBL+) - (IBL-). Σ-Δ ADCs 5001 and 5002 can be any of the Σ-Δ ADCs 3600, 3700, 3800, 3900, 4000, 4100, 4200, and 4300. During operation, IBL+ is converted to digital bits by the Σ-Δ ADC 5001, and the result is stored in the up/down counter 5003 by counting up from the midpoint value. Then, IBL- is converted to digital bits by the Σ-Δ ADC 5002, and the result is used to count down the value in counter 5003. Therefore, the final value DOUT[n:1] output by the up/down counter 5003 is the differential weight represented by (IBL+)-(IBL-). For example, if the up/down counter 5003 is an 8-bit counter, the intermediate value could be 127 (01000000). Up counting using the output of the Σ-Δ ADC 5001 will produce a value between 127 and 255, and down counting will produce a final value between 0 and 255, where 128 to 255 represent positive weights and 0 to 127 represent negative weights.

如本文中所使用,術語「在...上方」及「在...上」兩者包括性地包括「直接在...上」(其間未裝設有中間材料、元件或空間)及「間接地在...上」(其間裝設有中間材料、元件或空間)。同樣地,術語「鄰近」包括「直接鄰近」(其間未裝設有中間材料、元件或空間)及「間接鄰近」(其間裝設有中間材料、元件或空間),「安裝至」包括「直接安裝至」(其間未裝設有中間材料、元件或空間)及「間接安裝至」(其間裝設有中間材料、元件或空間),且「電耦接」包括「直接電耦接至」(其間無將元件電連接在一起之中間材料或元件)及「間接電耦接至」(其間具有將元件電連接在一起之中間材料或元件)。舉例而言,「在基板上方」形成元件可包括直接在基板上形成元件而其間無中間材料/元件,以及間接地在基板上形成元件而其間具有一或多種中間材料/元件。 As used herein, the terms "above" and "on" inclusively include "directly on" (without intermediate materials, components, or spaces) and "indirectly on" (with intermediate materials, components, or spaces). Similarly, the term "adjacent" includes "directly adjacent" (without intermediate materials, components, or spaces) and "indirectly adjacent" (with intermediate materials, components, or spaces), "installed to" includes "directly installed to" (without intermediate materials, components, or spaces) and "indirectly installed to" (with intermediate materials, components, or spaces), and "electrically coupled" includes "directly electrically coupled to" (without intermediate materials or components electrically connecting the components together) and "indirectly electrically coupled to" (with intermediate materials or components electrically connecting the components together). For example, forming an element "above a substrate" can include forming the element directly on the substrate without intermediate materials/elements, and forming the element indirectly on the substrate with one or more intermediate materials/elements.

Claims (26)

一種用以從向量矩陣乘法陣列產生數位輸出的系統,其包含:一向量矩陣乘法陣列,其包含配置成列及行之一非揮發性記憶體胞元陣列;及一Σ-Δ類比至數位轉換器,其用以從該向量矩陣乘法陣列之一行接收一電流及一時鐘信號且基於該時鐘信號回應於該電流的取樣而產生一數位輸出。A system for generating a digital output from a vector matrix multiplication array includes: a vector matrix multiplication array comprising an array of nonvolatile memory cells arranged in columns and rows; and a Σ-Δ analog-to-digital converter for receiving a current and a clock signal from a row of the vector matrix multiplication array and generating a digital output based on a sampling of the current in response to the clock signal. 如請求項1之系統,其中,該Σ-Δ類比至數位轉換器包含:一電流源;一開關;一比較器,其包含耦接至該行且通過該開關耦接至該電流源之一第一輸入端子、耦接至一參考電壓之一第二輸入端子及用以提供一輸出之一輸出端子;及一狀態機,其用以從該比較器接收該輸出,將一控制信號提供至該開關,且回應於該電流而產生該數位輸出,該數位輸出指示由該行汲取之該電流之一值。The system of claim 1, wherein the Σ-Δ analog-to-digital converter comprises: a current source; a switch; a comparator including a first input terminal coupled to the row and coupled to the current source via the switch, a second input terminal coupled to a reference voltage, and an output terminal for providing an output; and a state machine for receiving the output from the comparator, providing a control signal to the switch, and responding to the current to generate the digital output, the digital output indicating a value of the current drawn from the row. 如請求項1之系統,其中,該Σ-Δ類比至數位轉換器包含:一電容器;一開關;一比較器,其包含耦接至該行且通過該開關耦接至該電容器之一第一輸入端子、耦接至一參考電壓之一第二輸入端子及用以提供一輸出之一輸出端子;及一狀態機,其用以從該比較器接收該輸出以將一控制信號提供至該開關,且回應於該電流而產生該數位輸出,該數位輸出指示由該行汲取之該電流之一值。The system of claim 1, wherein the Σ-Δ analog-to-digital converter comprises: a capacitor; a switch; a comparator including a first input terminal coupled to the row and coupled to the capacitor via the switch, a second input terminal coupled to a reference voltage, and an output terminal for providing an output; and a state machine for receiving the output from the comparator to provide a control signal to the switch, and responding to the current to generate the digital output, the digital output indicating a value of the current drawn from the row. 如請求項1之系統,其中,該Σ-Δ類比至數位轉換器包含:一可調電流源;一開關;一比較器,其包含耦接至該行且通過該開關耦接至該可調電流源之一第一輸入端子、耦接至一參考電壓之一第二輸入端子及用以提供一輸出之一輸出端子;及一狀態機,其用以從該比較器接收該輸出以將一控制信號提供至該開關,且回應於該電流而產生該數位輸出,該數位輸出指示由該行汲取之該電流之一值。The system of claim 1, wherein the Σ-Δ analog-to-digital converter comprises: an adjustable current source; a switch; a comparator including a first input terminal coupled to the row and coupled to the adjustable current source via the switch, a second input terminal coupled to a reference voltage, and an output terminal for providing an output; and a state machine for receiving the output from the comparator to provide a control signal to the switch, and responding to the current to generate the digital output, the digital output indicating a value of the current drawn from the row. 如請求項1之系統,其中,該Σ-Δ類比至數位轉換器包含:一可變電壓源;一電容器;一開關;一比較器,其包含耦接至該行且通過該開關耦接至該電容器之一第一輸入端子、耦接至一參考電壓之一第二輸入端子及用以提供一輸出之一輸出端子;及一狀態機,其用以從該比較器接收該輸出以將一第一控制信號提供至該開關且將一第二控制信號提供至該可變電壓源,且回應於該電流而產生該數位輸出,該數位輸出指示由該行汲取之該電流之一值。The system of claim 1, wherein the Σ-Δ analog-to-digital converter comprises: a variable voltage source; a capacitor; a switch; a comparator including a first input terminal coupled to the row and coupled to the capacitor via the switch, a second input terminal coupled to a reference voltage, and an output terminal for providing an output; and a state machine for receiving the output from the comparator to provide a first control signal to the switch and a second control signal to the variable voltage source, and for responding to the current to generate the digital output, the digital output indicating a value of the current drawn from the row. 如請求項1之系統,其中,該Σ-Δ類比至數位轉換器包含:一電容器;一開關;一電晶體;一控制電路;一比較器,其包含耦接至該行且通過該開關及該電晶體耦接至該電容器之一第一輸入端子、耦接至一參考電壓之一第二輸入端子及用以提供一輸出之一輸出端子;及一狀態機,其用以從該比較器接收該輸出以將一第一控制信號提供至該開關且將一第二控制信號提供至該控制電路,且回應於該電流而產生該數位輸出,該數位輸出指示由該行汲取之該電流之一值。The system of claim 1, wherein the Σ-Δ analog-to-digital converter comprises: a capacitor; a switch; a transistor; a control circuit; a comparator including a first input terminal coupled to the row and coupled to the capacitor via the switch and the transistor, a second input terminal coupled to a reference voltage, and an output terminal for providing an output; and a state machine for receiving the output from the comparator to provide a first control signal to the switch and a second control signal to the control circuit, and for responding to the current to generate the digital output, the digital output indicating a value of the current drawn from the row. 如請求項1之系統,其中,該Σ-Δ類比至數位轉換器包含:一可調電容器;一開關;一比較器,其包含耦接至該行且通過該開關耦接至該可調電容器之一第一輸入端子、耦接至一參考電壓之一第二輸入端子及用以提供一輸出之一輸出端子;及一狀態機,其用以從該比較器接收該輸出以將一第一控制信號提供至該開關且將一第二控制信號提供至該可調電容器,且回應於該電流而產生該數位輸出,該數位輸出指示由該行汲取之該電流之一值。The system of claim 1, wherein the Σ-Δ analog-to-digital converter comprises: an adjustable capacitor; a switch; a comparator including a first input terminal coupled to the row and coupled to the adjustable capacitor via the switch, a second input terminal coupled to a reference voltage, and an output terminal for providing an output; and a state machine for receiving the output from the comparator to provide a first control signal to the switch and a second control signal to the adjustable capacitor, and for responding to the current to generate the digital output, the digital output indicating a value of the current drawn from the row. 如請求項7之系統,其中,該Σ-Δ類比至數位轉換器包含:一第二可調電容器,其耦接至該比較器之該第一輸入端子。The system of claim 7, wherein the Σ-Δ analog-to-digital converter includes: a second adjustable capacitor coupled to the first input terminal of the comparator. 一種用以從向量矩陣乘法陣列產生數位輸出的系統,其包含:一向量矩陣乘法陣列,其包含配置成列及行之一非揮發性記憶體胞元陣列;及一類比至數位轉換器,其用以從該向量矩陣乘法陣列之一行接收一電流及一時鐘信號且基於該時鐘信號回應於該電流的取樣而產生一數位輸出,其中一可變電荷或一可變電流由一注入電路注入以在操作期間保持該行之一電壓近似恆定。A system for generating a digital output from a vector matrix multiplication array includes: a vector matrix multiplication array comprising an array of nonvolatile memory cells configured in columns and rows; and an analog-to-digital converter for receiving a current and a clock signal from a row of the vector matrix multiplication array and generating a digital output based on a sampling of the current in response to the clock signal, wherein a variable charge or a variable current is injected by an injection circuit to maintain a voltage of the row approximately constant during operation. 如請求項9之系統,其中,該可變電荷或該可變電流係基於該陣列之一所量測電流範圍而選擇的。The system of claim 9, wherein the variable charge or the variable current is selected based on the range of current measured by one of the arrays. 如請求項10之系統,其中,該可變電荷或該可變電流在該類比至數位轉換器之操作期間變化。The system of claim 10, wherein the variable charge or the variable current varies during the operation of the analog-to-digital converter. 如請求項9之系統,其中,該可變電荷由耦接至一電容器之一可變電壓源提供。The system of claim 9, wherein the variable charge is provided by a variable voltage source coupled to a capacitor. 如請求項9之系統,其中,該可變電荷係藉由改變一可變電容器之一電容值而變化的。The system of claim 9, wherein the variable charge is changed by changing the capacitance value of a variable capacitor. 如請求項9之系統,其包含一上/下數計數器,以判定由該向量矩陣乘法陣列中之兩個行提供的一差分權重。The system of claim 9 includes an up/down counter to determine a difference weight provided by two rows in the vector matrix multiplication array. 如請求項14之系統,其包含一第二類比至數位轉換器。The system, as in claim 14, includes a second analog-to-digital converter. 如請求項15之系統,其中,該類比至數位轉換器產生該上/下數計數器用於一向上計數之一第一值,且該第二類比至數位轉換器產生該上/下數計數器用於一向下計數之一第二值。The system of claim 15, wherein the analog-to-digital converter generates the up/down counter for an up count of a first value, and the second analog-to-digital converter generates the up/down counter for a down count of a second value. 如請求項9之系統,其中,該類比至數位轉換器為一Σ-Δ類比至數位轉換器。The system of claim 9, wherein the analog-to-digital converter is a Σ-Δ analog-to-digital converter. 一種用以從向量矩陣乘法陣列產生數位輸出的方法,其包含:使用一時鐘信號基於電流的取樣而將來自配置成列及行之一非揮發性記憶體胞元陣列的該電流轉換成數位輸出位元,該轉換包含注入一可變電荷或一可變電流,直至一行之一電壓等於一目標電壓範圍內之一參考電壓。A method for generating a digital output from a vector matrix multiplication array, comprising: using a clock signal to sample the current from a nonvolatile memory cell array configured in columns and rows to convert the current into digital output bits, the conversion comprising injecting a variable charge or a variable current until the voltage of one row is equal to a reference voltage within a target voltage range. 如請求項18之方法,其中,該陣列係用於向量矩陣乘法。The method of request 18, wherein the array is used for vector-matrix multiplication. 如請求項18之方法,其中,該可變電荷由一可調電容器提供。The method of claim 18, wherein the variable charge is provided by an adjustable capacitor. 如請求項18之方法,其中,該可變電荷由一電容器提供,其中一可變供應參考電壓在該電容器之一端子上供應。The method of claim 18, wherein the variable charge is provided by a capacitor, wherein a variable supply reference voltage is supplied at one terminal of the capacitor. 如請求項18之方法,其中,該可變電荷由複數個電容器提供。The method of claim 18, wherein the variable charge is provided by a plurality of capacitors. 如請求項18之方法,其中,該轉換由一Σ-Δ類比至數位轉換器執行。The method of claim 18, wherein the conversion is performed by a Σ-Δ analog-to-digital converter. 如請求項18之方法,其包含:基於該電流之一所量測或預期電流範圍而選擇該可變電荷之一量值或該可變電流之一量值。The method of claim 18 includes: selecting a value of the variable charge or a value of the variable current based on a measured or expected current range of the current. 如請求項18之方法,其包含:基於該非揮發性記憶體胞元之一預期電壓範圍而選擇該可變電荷之一量值。The method of claim 18 includes: selecting a value of the variable charge based on a expected voltage range of the nonvolatile memory cell. 如請求項18之方法,其包含:基於該非揮發性記憶體胞元之一預期電流範圍而選擇該可變電荷之一量值。The method of claim 18 includes: selecting a value of the variable charge based on a expected current range of the nonvolatile memory cell.
TW113134170A 2023-11-20 2024-09-10 System and method to generate digital output from vector-by-matrix multiplication array TWI903748B (en)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US202363601049P 2023-11-20 2023-11-20
US63/601,049 2023-11-20
US18/426,071 2024-01-29
US18/426,071 US20250167799A1 (en) 2023-11-20 2024-01-29 Sigma-delta analog-to-digital converter to generate digital output from vector-by-matrix multiplication array
PCT/US2024/016783 WO2025111009A1 (en) 2023-11-20 2024-02-21 Sigma-delta analog-to-digital converter to generate digital output from vector-by-matrix multiplication array
WOPCT/US24/16783 2024-02-21

Publications (2)

Publication Number Publication Date
TW202522259A TW202522259A (en) 2025-06-01
TWI903748B true TWI903748B (en) 2025-11-01

Family

ID=

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200411065A1 (en) 2019-06-25 2020-12-31 Sandisk Technologies Llc Binary weighted voltage encoding scheme for supporting multi-bit input precision

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200411065A1 (en) 2019-06-25 2020-12-31 Sandisk Technologies Llc Binary weighted voltage encoding scheme for supporting multi-bit input precision

Similar Documents

Publication Publication Date Title
TWI814383B (en) Output circuit for analog neural memory in a deep learning artificial neural network
TWI884383B (en) Input circuitry for analog neural memory in a deep learning artificial neural network
US20230325645A1 (en) Artificial neural network comprising a three-dimensional integrated circuit
WO2022245384A1 (en) Output circuit for analog neural memory in a deep learning artificial neural network
TWI846378B (en) Vector-by-matrix-multiplication array utilizing analog inputs
TWI903748B (en) System and method to generate digital output from vector-by-matrix multiplication array
TW202407579A (en) Artificial neural network comprising a three-dimensional integrated circuit
TW202343451A (en) Artificial neural network comprising reference array for i-v slope configuration
TWI871592B (en) System related to vector-by-matrix-multiplication array utilizing analog outputs
TWI843232B (en) Determination of a bias voltage to apply to one or more memory cells in a neural network
US20250167799A1 (en) Sigma-delta analog-to-digital converter to generate digital output from vector-by-matrix multiplication array
TW202522259A (en) Sigma-delta analog-to-digital converter to generate digital output from vector-by-matrix multiplication array
TW202445416A (en) Masking sparse inputs and outputs in neural network array
TW202509817A (en) Input block for vector-by-matrix multiplication array
TW202509816A (en) Output circuit for a vector-by-matrix multiplication array
WO2023196000A1 (en) Vector-by-matrix-multiplication array utilizing analog inputs
TW202447412A (en) Redundancy for an array of non-volatile memory cells using tag registers
TW202324211A (en) Hybrid memory system configurable to store neural memory weight data in analog form or digital form
TW202437707A (en) Current-to-voltage converter comprising common mode circuit
EP4562541A1 (en) Output circuit for artificial neural network array
WO2023195999A1 (en) Artificial neural network comprising reference array for i-v slope configuration