IT201900000691A1 - Celle di memoria configurate per generare input ponderati per reti neurali - Google Patents

Celle di memoria configurate per generare input ponderati per reti neurali Download PDF

Info

Publication number
IT201900000691A1
IT201900000691A1 IT102019000000691A IT201900000691A IT201900000691A1 IT 201900000691 A1 IT201900000691 A1 IT 201900000691A1 IT 102019000000691 A IT102019000000691 A IT 102019000000691A IT 201900000691 A IT201900000691 A IT 201900000691A IT 201900000691 A1 IT201900000691 A1 IT 201900000691A1
Authority
IT
Italy
Prior art keywords
memory cell
current
memory cells
memory
voltage
Prior art date
Application number
IT102019000000691A
Other languages
English (en)
Inventor
Umberto Minucci
Tommaso Vali
Fernanda Irrera
Santis Luca De
Original Assignee
Micron Technology Inc
Sapienza Univ Di Roma
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Micron Technology Inc, Sapienza Univ Di Roma filed Critical Micron Technology Inc
Priority to IT102019000000691A priority Critical patent/IT201900000691A1/it
Publication of IT201900000691A1 publication Critical patent/IT201900000691A1/it

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits

Description

DESCRIZIONE
CAMPO TECNICO
La presente divulgazione si riferisce genericamente a memorie, e in particolare, a celle di memoria configurate per generare input ponderati per reti neurali.
ARTE NOTA
Diversi sistemi di memoria possono implementarsi in sistemi elettronici, quali computer, telefoni cellulari, dispositivi portatili elettronici, ecc. Alcuni sistemi di memoria, quali le unità di memoria a stato solido (solid state drives-SSD), le memorie a scheda multimediale incorporata (embedded Multi-Media Controller devices-eMMC), le memorie UFS (Universal Flash Storage devices), e simili, possono includere memorie non volatili per memorizzare dati di un host (e.g. utente) dall'host stesso. Le memorie non volatili forniscono dati persistenti attraverso la conservazione di dati memorizzati quando viene tolta l’alimentazione elettrica e possono includere la memoria flash NAND, la memoria flash NOR, la memoria di sola lettura (ROM), la memoria di sola lettura programmabile e cancellabile elettricamente (EEPROM-Electrically Erasable Programmable ROM), la memoria di sola lettura programmabile e cancellabile (EPROM-Erasable Programmable ROM), e la memoria a resistenza variabile, quali la memoria ad accesso casuale a cambiamento di fase (PCRAM-phase change random access memory), la 3D XPoint (three-dimensional cross-point memory), la RRAM (resistive random access memory), la FeRAM (ferroelectric random access memory), la MRAM (magnetoresistive random access memory), e la memoria conduttiva programmabile, fra altri tipi di memoria.
Le reti neurali sono reti che possono elaborare informazione attraverso la formazione di una rete di neuroni, quali i neuroni del cervello umano, per elaborare informazione (e.g., stimoli) i quali sono stati rilevati in un ambiente specifico. In modo simile ad un cervello umano, le reti neurali tipicamente comprendono una topologia di neuroni multipla (e.g., che possono essere denominati neuroni artificiali) .
BREVE DESCRIZIONE DEI DISEGNI
La Figura 1 mostra un esempio di un neurone artificiale secondo un numero di configurazioni della presente divulgazione.
La Figura 2 A mostra un diagramma schematico di una porzione di dispositivo di memoria configurato per agevolare operazioni di reti neurali secondo un numero di configurazioni della presente divulgazione.
La Figura 2B mostra un diagramma schematico di una porzione di dispositivo di memoria configurato per agevolare operazioni di reti neurali secondo un numero di configurazioni della presente divulgazione.
La Figura 2C mostra un modello sinaptico secondo un numero di configurazioni della presente divulgazione.
La Figura 3 A mostra una porzione di una memoria configurata come modello di rete neurale per agevolare operazioni di reti neurali secondo un numero di configurazioni della presente divulgazione.
La Figura 3B mostra uno strato di un modello di rete neurale secondo un numero di configurazioni della presente divulgazione.
La Figura 4 mostra un modello di esempio di rete neurale artificiale secondo un numero di configurazioni della presente divulgazione.
La Figura 5 è un diagramma a blocchi di un apparato configurato per agevolare operazioni di reti neurali secondo un numero di configurazioni della presente divulgazione.
DESCRIZIONE DI DETTAGLIO
Diversi tentativi sono stati realizzati ai fini di implementare reti neurali in dispositivi di memoria. Per esempio, in alcune precedenti implementazioni di reti neurali, le celle di memoria hanno operato per emulare un numero di modelli neurali con lo scopo di agevolare una o più caratteristiche operative delle reti neurali in una memoria.
Le configurazioni qui descritte presentano miglioramenti rispetto a precedenti approcci, e riguardano memorie per agevolare operazioni di reti neurali, attraverso l’inclusione di input ponderati ai modelli neurali per giustificare la relativa influenza degli input sul neurone. Un peso può corrispondere ad una memoria nel funzionamento del cervello umano, per esempio.
In alcuni esempi, una configurazione di metodo può comprendere l’applicazione di una prima tensione ad una prima cella di memoria per attivare la prima cella di memoria, l’applicazione di una seconda tensione ad una seconda cella di memoria accoppiata in serie con la prima cella di memoria per attivare la seconda cella di memoria affinché la corrente fluisca attraverso la prima e seconda cella di memoria, e generando un output di risposta alla corrente. La prima tensione ed una tensione di soglia della seconda cella di memoria possono essere tali per cui la corrente è proporzionale ad un prodotto della prima tensione e della tensione di soglia della seconda cella di memoria. La tensione di soglia della seconda cella di memoria può essere un peso che pondera la corrente. Ad esempio, la corrente ponderata può corrispondere ad un input ponderato ad un modello neurale.
La Figura 1 mostra un esempio di un neurone artificiale (e.g., modello neurale) 100 il quale può essere utilizzato per imitare un neurone (e.g., di un cervello umano) secondo un numero di configurazioni della presente divulgazione. Tali modelli neurali possono a volte essere denominati percettroni. Un numero di input xl a xN, i quali possono essere denominati stimoli, può rispettivamente essere applicato a input 102-1 a 102-N del modello neurale 100. Segnali, quali tensioni, correnti o particolari valori dei dati (e.g., cifre binarie) corrispondenti a input x1 a xN, possono generarsi in risposta al rilevamento di alcuna forma di stimoli e possono essere applicati input 102-1 a 102-N.
In diverse istanze, gli input xl a xN possono rispettivamente essere ponderati dai pesi wl a wN i quali possono essere denominati pesi sinaptici. Per esempio, gli input x1 a xN possono rispettivamente essere moltiplicati per i pesi w1 a wN per rispettivamente pesare gli input x1 a xN. Per esempio, ogni input ponderato può essere denominato sinapsi, ed il peso può corrispondere ad una memoria nel funzionamento del cervello umano.
Il modello neurale 100 può comprendere una funzione di somma 104 la quale può eseguire un’operazione di addizione degli input ponderati per produrre un output 106, quale SOMMA (SUM) = xlwl x2w2 ... xNwN. Nella teoria delle reti neurali, ad esempio, “SOMMA” può essere denominato “NET” (e.g., dal termine “NETwork”). Per esempio, i segnali ponderati corrispondenti agli input ponderati xlwl a xNwN possono essere sommati. In alcuni esempi, la funzione di somma può essere denominata funzione di trasferimento. Il modello neurale 100 comprende altresì una funzione 108, quale una funzione cp, configurata per rispondere alla somma SOMMA e ai fini di generare un valore di output Y ad un output 110. In alcuni esempi, la funzione 108 può essere denominata funzione di attivazione. Gli output dei modelli neurali possono a volte essere denominati classi.
Si possono utilizzare diverse funzioni per la funzione 108. Per esempio, la funzione 108 può comprendere una funzione di soglia (e.g., una funzione a gradino) per determinare se la SOMMA è sopra o sotto un particolare livello soglia. Tale funzione di soglia potrebbe generare un output logico alto (e.g., livello logico 1) sull’output 110 se la SOMMA è maggiore o pari ad un certo importo soglia, e potrebbe generare un output logico basso (e.g., livello logico 0) sull’output 110 se la SOMMA è sotto un certo importo soglia.
In alcuni esempi, la funzione 108 può essere una funzione sigmoidea, in cui la funzione sigmoidea potrebbe essere espressa come S(z)=1/(1+e<λz>), in cui λ è una costante e z può essere la SOMMA. Per esempio, la funzione 108 può essere una funzione non-lineare. In alcuni esempi, il valore di output generato Y sull’output 110 può essere applicato ad un numero di modelli neurali aggiuntivi, quali ad input 102 di diversi modelli neurali, di una rete neurale di modelli neurali.
In alcuni esempi, la memoria flash NAND può essere configurata per agevolare operazioni di reti neurali secondo un numero di configurazioni qui descritte. La memoria flash NAND può comprendere gruppi (e.g., stringhe) di celle di memoria non volatili accoppiate in serie (e.g. mono-transistor). Cambiamenti nelle tensioni di soglia delle celle, attraverso la programmazione di strutture di memorizzazione di carica, come ad esempio floating gate o strati di intrappolamento di carica, tra gli altri, possono determinare lo stato dei dati di ogni cella.
Le celle di memoria accoppiate in serie in una stringa possono essere tra una linea dati (e.g., una linea di bit) ed una source. Per esempio, un estremo della stringa può essere accoppiato in serie con un transistor di selezione che può essere configurato per accoppiare selettivamente la stringa con la linea dati, ed un estremo opposto della stringa può essere accoppiato in serie con un transistor di selezione che può essere configurato per accoppiare selettivamente la stringa alla source. Celle di memoria in rispettive locazioni nelle stringhe possono essere normalmente accoppiate con rispettive linee di accesso, quali linee di parole. Per esempio, control gate delle celle di memoria ad ogni rispettiva locazione in una stringa possono essere accoppiati con o formare una porzione di una rispettiva linea di accesso.
In alcuni esempi, un array di memoria può essere un array di memoria impilato che può essere denominato array di memoria tridimensionale, quale un array di memoria NAND tridimensionale. In un array di memoria impilato, le stringhe possono essere adiacenti a strutture semi- conduttrici (e.g., pilastri semi-conduttori verticali), e le celle di memoria nelle stringhe possono essere a diversi livelli (e.g., livelli verticali). Le celle di memoria ad un livello normale, per esempio, possono formare un livello di celle di memoria, a volte denominato strato di celle di memoria. Le celle di memoria ad ogni rispettivo livello possono essere normalmente accoppiate con una rispettiva linea comune di valutazione.
Le celle di memoria possono memorizzare un singolo bit per cella o molteplici bit per cella, come per esempio due bit per cella, tre bit per cella, quattro bit per cella, e così via. Una cella di memoria può essere programmata per uno di 2<n >stati di dati, n essendo il numero di bit per cella. Ogni stato di dati può corrispondere ad una diversa distribuzione di tensione di soglia (Vt), e la cella di memoria può essere programmata per un Vt che può corrispondere ad una delle distribuzioni Vt. Per esempio, per due bit per cella una cella di memoria può essere programmata per un Vt corrispondente ad uno di quattro stati di dati 11, 10, 01 e 00, e per un bit per cella una cella di memoria può essere programmata per un Vt corrispondente ad uno di due stati di dati 0 e 1.
Le Figure 2A a 2B sono diagrammi schematici di una porzione di un dispositivo di memoria 215 configurato per agevolare operazioni di reti neurali secondo un numero di configurazioni della presente divulgazione. Per esempio, le Figure 2A e 2B rispettivamente comprendono i modelli neurali 200 e 200', i quali corrispondono al modello neurale 100, a diversi strati (e.g., livelli) di una rete neurale. In alcuni esempi, le Figure 2A e 2B corrispondono ad una rete neurale feed-forward in cui l’output dello strato corrispondente alla Figura 2 A può essere utilizzato come input allo strato corrispondente alla Figura 2B.
La memoria 215 presenta stringhe N (e.g., stringhe NAND) 217-1 a 217-N delle celle di memoria accoppiate in serie 219-1 a 219-M. In alcuni esempi, le stringhe 217 possono essere stringhe verticali in un array di memoria impilato. I control gate delle celle di memoria 219-1 a 219-M possono essere rispettivamente accoppiate con o possono rispettivamente formare una porzione di linee di accesso 220-1 a 220-M. Per esempio, ogni cella di memoria 219 può comprendere un control gate 222 ed una struttura di memorizzazione di carica 224. Un estremo di ciascuna delle stringhe 217-1 a 217-N è accoppiato con la stessa linea dati 221. L’estremo opposto di ciascuna delle stringhe 217-1 a 217-N è accoppiato con una source. Per alcune configurazioni, le rispettive stringhe 217-1 a 217-N possono essere rispettive porzioni di blocchi di celle di memoria 217. Un blocco di celle di memoria può riferirsi ad un gruppo di celle di memoria che è normalmente cancellato. Per esempio, diversi gruppi di linee di accesso 220-1 a 220-M possono essere accoppiati con i rispettivi blocchi.
Nella Figura 2A, la linea dati 221 può essere configurata per sommare le correnti ponderate II a IN che rispettivamente fluiscono attraverso le stringhe 217-1 a 217-N per produrre una corrente sommata Isum, mentre che nella Figura 2B, la linea dati 221 può essere configurata per sommare le correnti ponderate ΙΓ a IN' che rispettivamente fluiscono attraverso le stringhe 217-1 a 217-N per produrre una corrente sommata Isum'. Per esempio, la linea dati 221 può essere configurata per implementare una funzione di somma, quale funzione di somma 104, dei modelli neurali 200 e 200'.
La linea dati 221 è accoppiata con lo schema di rilevamento 223, il quale può comprendere amplificatori di rilevamento, comparatori e latch dati. Per esempio, lo schema di rilevamento 223 può rilevare la corrente Isum o Isum' e può agganciare singoli o molteplici bit (e.g., quattro bit) di dati corrispondenti alla corrente rilevata Isum o Isum'. Lo schema di rilevamento 223 può essere configurato per implementare una funzione, quale la funzione 108, in risposta alllsum per generare l’output Y o per generare l’output Y' sull’output 210 in risposta alllsum'.
Lo schema di rilevamento 223 può essere configurato per eseguire conversioni analogico-a-digitale. Per esempio, lo schema di rilevamento 223 può comprendere un convertitore analogico-a-digitale (ADC) il quale può convertire la corrente rilevata in un valore di dati (e.g., un valore di dati digitale) corrispondente alla corrente rilevata, quale una rappresentazione digitale della corrente rilevata. In alcuni esempi, l’output Y o Y' può essere la funzione di soglia di Isum o Isum'.
Per esempio, l’output Y o Y' può essere un valore logico (1) in risposta alllsum o llsum' essendo maggiore o pari ad un valore di soglia, o un valore logico (0) in risposta alllsum o llsum' essendo minore al valore di soglia.
Un rispettivo transistor di selezione 225 può essere configurato per selettivamente accoppiare ciascuna delle rispettive stringhe 217-1 a 217-N con la linea dati 221 in risposta all’attivazione del rispettivo transistor di selezione 225. Un rispettivo transistor di selezione 227 può essere configurato per selettivamente accoppiare ciascuna delle rispettive stringhe 217-1 to 217-N con la source in risposta all’attivazione del rispettivo transistor di selezione 227.
Il modello neurale 200 raffigurato nella Figura 2A può comprendere le coppie 230-1 a 230-N di celle di memoria (e.g., celle di memoria adiacenti) rispettivamente nelle stringhe 217-1 a 217-N, la linea dati 221, e lo schema di rilevamento 223. Le correnti II a IN nella Figura 2A possono essere correnti ponderate in risposta alle rispettivamente azionanti coppie 230-1 a 230-N, mentre che le rimanenti celle di memoria in ciascuna delle stringhe 217-1 a 217-N sono operate in un modo di passaggio. Per esempio, le tensioni di passaggio possono essere applicate ai control gate di quelle celle di memoria tramite le linee di accesso 220 accoppiate con quei control gate per collocare le celle di memoria in un modo di passaggio. Le tensioni di passaggio possono essere sufficientemente alte in modo tale che le celle di memoria operanti nel modo di passaggio offrano relativamente poca resistenza al flusso della corrente. In quanto tale, le rispettive correnti II a IN attraverso le rispettive stringhe 217-1 a 217-N possono dipendere su stati delle rispettive coppie 230-1 a 230-N e tensioni applicate alle rispettive coppie 230-1 a 230-N.
Ciascuna delle rispettive coppie 230-1 a 230-N può comprendere le celle di memoria MI e M2. Per esempio, le coppie 230-1 a 230-N possono rispettivamente comprendere le celle di memoria Ml-1 e M2-1 a Ml-N e Ml-N. Le celle di memoria Ml-1 a Ml-N possono essere rispettivamente programmate per tensioni di soglia Vtl-1 a Vtl-N, e le celle di memoria M2-1 a M2-N possono essere rispettivamente programmate per tensioni di soglia Vt2-1 a Vt2-N. In alcuni esempi, le rispettive coppie 230-1 a 230-N possono essere rispettivamente denominate modelli di sinapsi (e.g., celle sinaptiche) 231-1 a 231-N del modello neurale 200.
Le celle di memoria Ml-1 a Ml-N possono essere rispettivamente attivate simultaneamente in risposta alla rispettiva applicazione delle tensioni rilevate (e.g., lettura) Vgl-1 a Vgl-N, le quali sono rispettivamente maggiori alle tensioni di soglia Vtl-1 a Vtl-N, ai control gate delle celle di memoria Ml-1 a Ml-N simultaneamente. Le celle di memoria M2-1 a M2-N possono rispettivamente essere attivate simultaneamente con le celle di memoria Ml-1 a Ml-N in risposta alla rispettiva applicazione delle tensioni rilevate Vg2-1 a Vg2-N, le quali sono rispettivamente maggiori alle tensioni di soglia Vt2-1 a Vt2-N, ai control gate delle celle di memoria M2-1 a M2-N simultaneamente applicando le tensioni Vgl-1 a Vgl-N.
In alcuni esempi, le tensioni Vgl-1 a Vgl-N possono essere ricevute da 215 come input iniziali per la rete neurale per operarci. In alternativa, le tensioni Vgl-1 a Vgl-N potrebbero essere state generate precedentemente da altri modelli neurali di memoria 215, ad esempio.
La linea dati 22 1 può essere caricata ad una tensione prima di applicare le tensioni Vgl-1 a Vgl-N e Vg2-1 a Vg2-N. Per esempio, la tensione sulla linea dati 221 può essere maggiore alla tensione della source. In quanto tale, mentre i transistor di selezione 225 e 227 sono attivati, le rispettive porzioni II a IN della corrente Isum possono fluire dalla linea dati 221 attraverso le rispettive stringhe 217-1 a 217-N verso la source per scaricare la linea dati 221 in risposta airattivazione delle rispettive coppie 230-1 a 230-N dalle rispettive tensioni Vgl-1 a Vgl-N e Vg2-1 a Vg2-N.
In alcuni esempi, le tensioni Vgl e Vg2 possono essere denominate tensioni di gate di input. Le tensioni Vgl-1 a Vgl-N possono rispettivamente corrispondere agli input xl a xN, e le tensioni di soglia Vt2-1 a Vt2-N possono rispettivamente corrispondere ai pesi wl a wN. In alcuni esempi, le tensioni Vg2-1 a Vg2-N, Vtl-1 a Vtl-N, e Vt2-1 a Vt2-N possono presentare valori fissi. Le tensioni Vg2-1 a Vg2-N e Vtl-1 a Vtl-N possono essere predeterminate da simulazioni delle celle di memoria MI e M2, e Vt2-1 a Vt2-N possono essere predeterminate da un sistema di apprendimento automatico di una rete neurale.
La Figura 2C mostra un modello di sinapsi rappresentativo 231 il quale può essere i diversi modelli di sinapsi qui descritti in un numero di configurazioni della presente divulgazione. Il modello di sinapsi 231 comprende una coppia rappresentativa 230 delle celle di memoria M1 e M2 la quale può essere le varie coppie qui descritte, come per esempio nelle Figure 2A e 2B. Per esempio, le celle di memoria M1 e M2 sono accoppiate in serie e possono essere rispettivamente programmate alle tensioni di soglia Vt1 e Vt2. Per esempio, le celle di memoria M1 e M2 possono formare un doppio transconduttore.
Le tensioni di input Vg1 e Vg2 sono rispettivamente applicate ai control gate delle celle di memoria M1 e M2. Le tensioni di input Vgl e Vg2 possono rispettivamente attivare le celle di memoria M1 e M2 in modo tale che una corrente I possa fluire attraverso le celle di memoria M1 e M2.
La corrente I può essere una funzione di Vg1 e Vt2. Per esempio, la corrente I può corrispondere al prodotto di Vg1 e Vt2. In alcuni esempi, la tensione di input Vg1 e la tensione di soglia Vt2 possono essere selezionate affinché la corrente I sia una funzione lineare del (e.g., direttamente proporzionale al) prodotto di Vg1 e Vt2. La corrente I può essere g x (Vg1 x Vt2), g essendo il guadagno di transconduttanza delle celle di memoria M1 e M2 in combinazione. In quanto tale, la coppia 230 può operare come un moltiplicatore analogico che può generare la corrente I.
Il guadagno di transconduttanza g può essere modulato variando Vg1, con VG2, Vt1 e Vt2 fissi. La cella di memoria M2 può fornire una resistenza variabile (e.g., che può essere denominata resistenza di degenerazione) la quale può essere regolata dalla tensione gate-source Vgs1 della cella di memoria M1 che può operare come inseguitore di source.
Si osserva che la corrente I è ponderata da Vt2. Per esempio, Vg1 può corrispondere ad un input x, e Vt2 può corrispondere ad un peso w. Nel modello neurale 200, le correnti II a IN possono rispettivamente essere gl x (Vg1-1 x Vt2-1) a gN x (Vg1-N x Vt2-N), gl a gN rispettivamente essendo i guadagni di transconduttanza delle coppie 230-1 a 230-N.
Ih alcuni esempi, la cella di memoria M2 può essere programmata per memorizzare molteplici bit. Per esempio, Vt2 può essere una di un numero di Vt2 per la quale la cella di memoria M2 può essere programmata, così permettendo un numero di diversi pesi.
Il modello neurale 200' raffigurato nella Figura 2B può comprendere le coppie 230'- 1 a 230'-N delle celle di memoria (e.g., celle di memoria adiacenti) rispettivamente nelle stringhe 217-1 a 217-N, la linea dati 221 e lo schema di rilevamento 223. Le correnti II' a IN' possono essere correnti ponderate in risposta alle rispettivamente azionanti coppie 230'- 1 a 230'-N, mentre che le rimanenti celle di memoria in ciascuna delle stringhe 217-1 a 217-N sono operate in un modo di passaggio. Per esempio, le rispettive coppie 230' possono essere in locazioni diverse nelle rispettive stringhe 217 rispetto alle rispettive coppie 230 nella Figura 2A.
Le coppie 230'- 1 a 230'-N possono rispettivamente comprendere le celle di memoria M1'-1 e M2'-1 a Μ1-Ν e M2'-N. Le celle di memoria Μ1-1 a Μ1-Ν possono essere rispettivamente programmate alle tensioni di soglia Vt1'-1 a Vt1'-N, e le celle di memoria M2'-1 a M2'N possono essere rispettivamente programmate alle tensioni di soglia Vt2'-1 a Vt2'-N. Si osserva che i modelli di sinapsi 231-1 a 231-Ν del modello neurale 200' può rispettivamente comprendere le coppie 230'- 1 a 230'-N.
Le celle di memoria M1'-1 a M1'-N possono essere rispettivamente attivate simultaneamente in risposta alla rispettiva applicazione delle tensioni di rilevamento Vg1'-1 a Vg1'-N, le quali possono essere rispettivamente maggiori alle tensioni di soglia Vt1'-1 a Vt1'-N, ai control gate delle celle di memoria Μ1-1 a Μ1-Ν simultaneamente. Le celle di memoria M2'-1 a M2'-N possono essere rispettivamente attivate simultaneamente attivando le celle di memoria M1'-1 a M1'-N in risposta alla rispettiva applicazione delle tensioni di rilevamento Vg2'-1 a Vg2'-N, le quali sono rispettivamente maggiori alle tensioni di soglia Vt2'-1 a Vt2'-N, ai control gate delle celle di memoria M2'-1 a M2'-N simultaneamente applicando le tensioni Vg1'-1 a Vg1'-N che possono essere predeterminate da un modello di software di una rete neurale.
Le tensioni Vg1'-1 a Vg1'-N possono rispettivamente corrispondere agli input x1 a xN, e le tensioni di soglia Vt2'-1 a Vt2'-N possono rispettivamente corrispondere ai pesi w1 a wN. In alcuni esempi, Vg2'-1 a Vg2'-N, Vt1'-1 a Vt1'-N, e Vt2'-1 a Vt2'-N possono presentare valori fissi.
In un esempio di approccio feed-forward, Vg1'-1 a Vg1'-N possono basarsi sull’output Y (e.g., l’output del modello neurale 200). Per esempio, driver di linee di accesso accoppiati con i control gate delle celle di memoria Μ1-l a M1'-N possono generare Vg1'-1 a Vg1'-N basate sull’output Y. Per esempio, Vg1'-1 a Vg1'-N possono essere generate come funzioni, quali funzioni di soglia o una funzione sigmoidea, di Y. In alcuni esempi, una rappresentazione digitale di ima tensione può essere generata da rappresentazioni digitali di Isum, e un convertitore digitale-analogico (digital to analog converter-DAC) (non rappresentato nelle Figure 2A e 2B) può convertire la rappresentazione digitale in una tensione analogica, e le tensioni analogiche Vg1'-1 a Vg1'-N possono essere quella tensione analogica. Si osserva che le correnti I1 a IΝ possono rispettivamente essere g1' x (Vg1'-1 x Vt2'-1) a gN' x (Vg1'-N x Vt2'-N), g1' a gN' rispettivamente essendo i guadagni di transconduttanza delle coppie 230'- 1 a 230'-N.
La Figura 3 A mostra una porzione di una memoria 315 configurata come un modello di rete neurale 316 per agevolare operazioni di reti neurali secondo un numero di configurazioni della presente divulgazione. Il modello di rete neurale 316 può comprendere un numero di strati 330 diversi, quali gli strati 330-1 a 330-3, di una rete neurale. Ciascuno degli strati 330-1 a 330-3 comprende i modelli neurali 300-1 a 300-L. Ciascuno dei modelli neurali 300-1 a 300-L può essere il modello neurale 200 e può corrisponde al modello neurale 100. I modelli neurali 300-1 a 300-L di ciascuno degli strati 330-1 a 330-3 può rispettivamente generare gli output Y1 a YL rispettivamente sugli output 310-1 a 310-L.
Gli output 310-1 a 310-L dei rispettivi strati 330 sono accoppiati con un controller 340. Il controller 340 è accoppiato con gli switch 342-1 a 342-3 i quali sono rispettivamente accoppiati con gli strati 330-1 a 330-3. Il controller 340 è anche accoppiato con i registri 346-1 a 346-N, che a loro volta sono rispettivamente accoppiati con i DAC 348-1 a 348-N, che a loro volta sono rispettivamente accoppiati con i driver di linee di accesso globali 350-1 a 350-N, che a loro volta sono accoppiati ciascuno a una rispettiva linea di accesso globale 352-i. I driver di linee di accesso globali 350-1 a 350-N sono configurati per inviare le tensioni analogiche Vgl-1 a Vgl-N alle rispettive linee di accesso globali 352-i. Sebbene mostrati separatamente, i registri 346-1 a 346-N, i DAC 348-1 a 348-N, e/o i driver di linee di accesso 350-1 a 350-N possono essere compresi nel controller 340.
Le interfacce bidirezionali 355-1 a 355-N possono essere rispettivamente accoppiate con i registri 346-1 a 346-N. Per esempio, i dati, quali i dati dello strato 330-3, possono essere inviati dalla memoria 315 (e.g., ad un host), ad altre porzioni di memoria 315, o ad un’altra rete neurale sulle interfacce bidirezionali 355-1 a 355-N. I dati possono essere ricevuti nei registri 346-1 a 346-N sulle interfacce bidirezionali 355-1 a 355-N dall'ost, un’altra porzione di memoria 315, o un’altra rete neurale come dati di input allo strato 330-1, per esempio. In quanto tale, i registri 346-1 a 346-N possono funzionare come uno strato di input e/o output del modello di rete neurale 316.
Le linee di accesso globali 352-i sono accoppiate agli switch 342-1 a 342-3. Ciascuno degli switch 342-1 a 342-3 è configurato per selettivamente accoppiare le rispettive linee di accesso globali 352-i con le rispettive linee di accesso locali 320-i in risposta alla ricezione di segnali dal controller 340 in modo tale che le rispettive tensioni Vg1-1 a Vg1-N sono applicate alle rispettive linee di accesso locali 320-i.
La Figura 3B mostra uno strato rappresentativo 330 di un modello di rete neurale che può essere i diversi strati 330-1 a 330-3 secondo un numero di configurazioni della presente divulgazione. Per esempio, ciascuno dei rispettivi strati 330-1 a 330-3 può essere come raffigurato e descritto per lo strato 330. In alcuni esempi, lo strato 330 può comprendere un numero di blocchi 360, quali i blocchi 360-1 a 360-N, i quali rispettivamente comprendono i gruppi di stringhe 317-1 ai gruppi di stringhe 317-N. Ciascuna delle stringhe 317 comprende le celle di memoria accoppiate in serie 319-1 a 319-M. Si osserva che i rispettivi blocchi 360 possono essere normalmente cancellati indipendentemente uno dall’altro.
Lo strato 330 comprende i modelli neurali 300-1 a 300-L. Ciascuno dei rispettivi modelli neurali 300-1 a 300-L può essere il modello neurale 200. I modelli neurali 300-1 a 300-L possono rispettivamente comprendere linee dati 321-1 a 321-L e schemi di rilevamento 323-1 a 323-L rispettivamente accoppiati con le linee dati 321-1 a 321-L. Ciascuno degli schemi di rilevamento 323-1 a 323-L può essere lo schema di rilevamento 223. Gli schemi di rilevamento 323-1 a 323-L possono rispettivamente generare gli output Y1 a YL sugli output 310-1 a 310-L.
Ciascuno dei rispettivi modelli neurali 330-1 a 330-L può comprendere i modelli di sinapsi 331-1 a 331-N (e.g., rappresentati da cerchi nella Figura 3A) accoppiati con le rispettive linee dati 321-1 a 321-L. Ciascuno dei rispettivi modelli di sinapsi 331-1 a 331-N può comprendere una coppia di celle di memoria adiacenti MI e M2 accoppiate in serie, come precedentemente descritto insieme alle Figure 2A a 2C. Per esempio, i modelli di sinapsi 331-1 a 331-N possono rispettivamente comprendere la coppia di celle di memoria Ml-1 e M2-2 alla coppia di celle di memoria Ml-N e M2-N. Ciascuno dei rispettivi modelli di sinapsi 331-1 a 331-N può essere il modello di sinapsi 231, per esempio.
Come precedentemente descritto, le celle di memoria Ml-1 a Ml-N possono essere rispettivamente programmate per Vtl-1 a Vtl-N, e le celle di memoria M2-1 a M2-N possono essere rispettivamente programmate per Vt2-1 a Vt2-N. In alcuni esempi, i Vtl possono essere diversi o gli stessi per i rispettivi modelli neurali 300- 1 a 300-N, ed i Vt2 possono essere diversi o gli stessi per i rispettivi modelli neurali 300- 1 a 300-N. Inoltre, i Vtl possono essere diversi o gli stessi per i rispettivi strati 330-1 a 330-3, ed i Vt2 possono essere diversi o gli stessi per i rispettivi strati 330-1 a 330-3.
Dalla coppia di celle di memoria Ml-1 a M2-2 alla coppia di celle di memoria Ml-N e M2-N possono essere rispettivamente comprese da ciascuna delle stringhe 317-1 a ciascuna delle stringhe 317-N. Le stringhe 317-1 a 317-N dei rispettivi modelli neurali 330-1 a 330-L possono essere accoppiate alle rispettive linee dati linee dati 321-1 a 321-L dei rispettivi modelli neurali 300-1 a 300-L.
Ogni rispettiva stringa 317 può essere accoppiata fra i rispettivi transistor di selezione 325 e 327. Un rispettivo transistor di selezione 325 è configurato per selettivamente accoppiare una rispettiva stringa 317 ad una rispettiva linea dati 321 in risposta all’attivazione del rispettivo transistor di selezione 325. Un rispettivo transistor di selezione 327 è configurato per selettivamente accoppiare una rispettiva stringa 317 ad una source in risposta all’attivazione del rispettivo transistor di selezione 327.
Un rispettivo gruppo di linee di accesso locali 320-1 a 320-M può essere normalmente accoppiato con il gruppo di stringhe 317 in ciascuno dei rispettivi blocchi 360. Per esempio, le linee di accesso 320-l a 320-M di un rispettivo gruppo di linee di accesso possono essere rispettivamente accoppiate normalmente ai control gate delle celle di memoria 319-1 a 319 -M dei gruppi di stringhe 317 di un rispettivo blocco 360. Una rispettiva linea di accesso 320-i è normalmente accoppiata con le celle di memoria MI di ciascuno dei rispettivi modelli di sinapsi 331-1 a 331-N. Una rispettiva linea di accesso 320-(i-l) è normalmente accoppiata con le celle di memoria M2 di ciascuno dei rispettivi modelli di sinapsi 331-1 a 331-N.
Le tensioni Vgl-1 a Vgl-N sono rispettivamente applicate alle linee di accesso 320-i le quali sono rispettivamente accoppiate normalmente con le celle di memoria Ml-1 a Ml-N, e le tensioni Vg2-1 a Vg2-N sono rispettivamente applicate alle linee di accesso 320-(i-l) le quali sono rispettivamente accoppiate normalmente alle celle di memoria M2-1 a M2-N. In quanto tali, le tensioni Vgl-1 a Vgl-N sono rispettivamente applicate normalmente alle celle di memoria Ml-1 a Ml-N, e le tensioni Vg2-1 a Vg2-N sono rispettivamente applicate normalmente alle celle di memoria M2-1 a M2-N.
Durante l’operazione dello strato 330, le linee dati 321-1 a 321-L possono essere caricate ad una tensione. Successivamente, le tensioni Vgl-1 a Vgl-N sono rispettivamente applicate normalmente alle celle di memoria Ml-1 a Ml-N simultaneamente, e le tensioni Vg2-1 a Vg2-N sono rispettivamente applicate normalmente alle celle di memoria M2-1 a M2-N simultaneamente applicando le tensioni Vgl-1 a Vgl-N, mentre che le rimanenti celle di memoria in ciascuna delle stringhe 317 sono posizionate in un modo di passaggio, mentre che le stringhe 317 sono selettivamente accoppiate con le linee dati 321 dai transistor di selezione 325, e mentre che le stringhe 317 sono selettivamente accoppiate con la source dai transistor di selezione 327.
Le correnti ponderate 11- 1 a IN-1 possono rispettivamente fluire nelle stringhe 317-1 a 317-N accoppiate con la linea dati 321-1 in risposta a dalla coppia di celle di memoria Ml-1 e M2-2 alla coppia di celle di memoria Ml-N e M2-N nell’attivazione del modello neurale 330-1 in modo tale che la corrente Isum-1 sulla linea dati 321-1 sia la somma delle correnti 11- 1 a IN-1. Le correnti ponderate Il-L a IN-L possono rispettivamente fluire nelle stringhe 317-1 a 317-N accoppiate con la linea dati 321-L in risposta alla coppia di celle di memoria Ml-1 e M2-2 alla coppia di celle di memoria Ml-N e M2-N nell’attivazione del modello neurale 330-L in modo tale che la corrente Isum-L sulla linea dati 321-L sia la somma delle correnti Il-L a IN-L.
Si osserva che le correnti II- 1 a IN-1 e/o le correnti Il-L a IN-L possono rispettivamente essere gl x (Vgl-1 x Vt2-1) a gN x (Vgl-N x Vt2-N), gl a gN rispettivamente essendo i guadagni di transconduttanza dei modelli di sinapsi 331-1 a 331-N, Vgl-1 a Vgl-N rispettivamente essendo gli input per i modelli di sinapsi 331-1 a 331-N, e Vt2-1 a Vt2-N rispettivamente essendo i pesi dei modelli di sinapsi 331-1 a 331-N. Per esempio, le correnti II- 1 a IN-1 e/o le correnti Il-L a IN-L possono essere rispettivamente ponderate da Vt2-1 a Vt2-N.
Gli schemi di rilevamento 323-1 a 323-L possono rispettivamente rilevare le correnti Isum-1 a Isum-L e possono rispettivamente generare gli output Y1 a YL in risposta al rispettivo rilevamento delle correnti Isum-1 a Isum-L. In alcuni esempi, gli schemi di rilevamento 323-1 a 323-L possono comprendere ADC configurati per convertire le correnti analogiche rilevate Isum-1 a Isum-L in rappresentazioni digitali delle stesse. Gli output Y1 a YL possono dunque essere inviati al controller 340. In alcuni esempi, gli output Y1 a YL possono essere rappresentati da un numero di bit, quale un bit in un latch, due bit in due latch, tre bit in tre latch, quattro bit in quattro latch, e così via. Per esempio, i bit possono corrispondere ad un rispettivo livello di attivazione per un altro modello neurale.
Durante l’operazione del modello di rete neurale 316 nella Figura 3A, rappresentazioni digitali delle tensioni analogiche Vgl-1 a Vgl-N possono essere rispettivamente ricevute nei registri 346-1 a 346-N rispettivamente sulle interfacce bidirezionali 355-1 a 355-N. I DAC 348-1 a 348-N possono successivamente convertire rispettivamente le rappresentazioni digitali delle tensioni analogiche Vgl-1 a Vgl-N nelle tensioni analogiche Vgl-1 a Vgl-N.
Il controller 340 può dunque attivare lo switch 342-1 in modo tale che le tensioni Vgl-1 a Vgl-N siano rispettivamente applicate, dai driver di linee di accesso globali 350-1 a 350-N, alle linee di accesso locali 320-i rispettivamente accoppiate alle celle di memoria Ml-1 a Ml-N rispettivamente dei modelli di sinapsi 331-1 a 331-N dello strato 330-1. Mentre vengono applicate le tensioni Vgl-1 a Vgl-N, le tensioni Vg2-1 a Vg2-N sono rispettivamente applicate alle linee di accesso locali 320-(i-l) rispettivamente accoppiate alle celle di memoria M2-1 a M2-N rispettivamente dei modelli di sinapsi 331-1 a 331-N dello strato 330-1. Come risultato di ciò, le correnti Isum-1 a Isum-L sono rispettivamente prodotte sulle linee dati 321-1 a 321-L dello strato 330-1, come descritto insieme alla Figura 3B.
Gli amplificatori di rilevamento 323-1 a 323-L dello strato 330-1 rispettivamente generano gli output Y1 a YL sugli output 310-1 a 310-L in risposta al rispettivo rilevamento delle correnti Isum-1 a Isum-L, come descritto insieme alla Figura 3B. Per esempio, gli output Y1 a YL possono rispettivamente essere rappresentazioni digitali delle correnti Isum-1 a Isum-L. Gli output Y1 a YL possono dunque essere inviati al controller 340 il quale selettivamente attiva lo switch 342-2 in risposta agli output Y1 a YL dello strato 330-1.
In alcuni esempi, il controller 340 può generare una rappresentazione digitale di una tensione corrispondente agli output Y1 a YL e può inviare la rappresentazione digitale della tensione ai registri 346-1 a 346-N. In alcuni esempi, il controller 340 può generare un output come funzione degli output Y1 a YL, quale una funzione di soglia o una funzione sigmoidea. Il controller 340 può dunque generare una rappresentazione digitale di una tensione sulla base di quell’output e può inviare la rappresentazione digitale della tensione ai registri 346- 1 a 346-N.
Per esempio, il controller 340 può generare ima rappresentazione digitale di una tensione corrispondente ad un livello logico alto generato dalla funzione di soglia ed una rappresentazione digitale di un’altra tensione corrispondente ad un livello logico basso generato dalla funzione di soglia. In alcuni esempi, il controller 340 può generare diverse rappresentazioni digitali di diverse tensioni generate dalla funzione sigmoidea.
I DAC 348-1 a 348-N possono successivamente convertire la rappresentazione digitale della tensione nei registri 346-1 a 346-N nelle tensioni analogiche Vgl-1 a Vgl-N rispettivamente. Le tensioni Vgl-1 a Vgl-N sono rispettivamente applicate, dai driver di linee di accesso globali 350-1 a 350-N, alle linee di accesso locali 320-i, tramite lo switch attivato 342-2, rispettivamente accoppiato alle celle di memoria Ml-1 a Ml-N rispettivamente dei modelli di sinapsi 331-1 a 331-N dello strato 330-2. Mentre vengono applicate le tensioni Vgl-1 a Vgl-N, le tensioni Vg2-1 a Vg2-N sono rispettivamente applicate alle linee di accesso locali 320-(i-l) rispettivamente accoppiate alle celle di memoria M2-1 a M2-N rispettivamente dei modelli di sinapsi 331-1 a 331-N dello strato 330-2. Come risultato di ciò, le correnti Isum-1 a Isum-L sono rispettivamente prodotte sulle linee dati 321-1 a 321-L dello strato 330-2, come descritto insieme alla Figura 3B.
Gli amplificatori di rilevamento 323-1 a 323-L dello strato 330-2 rispettivamente generano gli output Y1 a YL sugli output 310-1 a 310-L in risposta al rispettivo rilevamento delle correnti Isum-1 a Isum-L, come descritto insieme alla Figura 3B. Gli output Y1 a YL dello strato 330-2 possono dunque essere inviati al controller 340 che selettivamente attiva lo switch 342-3 in risposta agli output Y1 a YL.
Il controller 340 può generare una rappresentazione digitale di una tensione corrispondente agli output Y1 a YL dello strato 330-2 e può inviare la rappresentazione digitale della tensione ai registri 346- 1 a 346-N, come descritto insieme allo strato 330-1. Per esempio, il controller 340 può generare una rappresentazione digitale di una tensione sulla base di una funzione degli output Y1 a YL dello strato 330-2, quale una funzione di soglia o una funzione sigmoidea degli output Y1 a YL dello strato 330-2.
I DAC 348-1 a 348-N possono successivamente rispettivamente convertire la rappresentazione digitale della tensione nei registri 346-1 a 346-N nelle tensioni analogiche Vgl-1 a Vgl-N. Le tensioni Vgl-1 a Vgl-N sono rispettivamente applicate dai driver di linee di accesso globali 350-1 a 350-N alle linee di accesso locali 320-i, tramite lo switch attivato 342-3, rispettivamente accoppiati con le celle di memoria Ml-1 a Ml-N rispettivamente dei modelli di sinapsi 331-1 a 331-N dello strato 330-3. Mentre vengono applicate le tensioni Vgl-1 a Vgl-N, le tensioni Vg2-1 a Vg2-N sono rispettivamente applicate alle linee di accesso locali 320-(i-l) rispettivamente accoppiate alle celle di memoria M2-1 a M2-N rispettivamente delle sinapsi 331-1 a 331-N dello strato 330-3. Come risultato di ciò, le correnti Isum-1 a Isum-L sono rispettivamente prodotte sulle linee dati 321-1 a 321-L dello strato 330-3, come descritto insieme alla Figura 3B.
Gli amplificatori di rilevamento 323-1 a 323-L dello strato 330-3 rispettivamente generano gli output Y1 a YL sugli output 310-1 a 310-L in risposta al rispettivo rilevamento delle correnti Isum-1 a Isum-L, come descritto insieme alla Figura 3B. Gli output Y1 a YL dello strato 330-3 possono dunque essere inviati al controller 340. Il controller 340 può generare una rappresentazione digitale di una tensione corrispondente agli output Y1 a YL dello strato 330-3 e può inviare la rappresentazione digitale di una tensione ai registri 346-1 a 346-N, come descritto insieme allo strato 330-1. Per esempio, il controller 340 può dunque generare una rappresentazione digitale di una tensione sulla base di una funzione degli output Y1 a YL dello strato 330-2, quale una funzione di soglia o una funzione sigmoidea degli output Y1 a YL dello strato 330-2. La rappresentazione digitale della tensione nei registri 346-1 a 346-N può dunque essere inviata sulle interfacce bidirezionali 355-1 a 355-N.
La Figura 4 mostra un modello di esempio di una rete neurale artificiale 416 corrispondente al modello di rete neurale 316 secondo un numero di configurazioni della presente divulgazione. Per esempio, la rete neurale 416 può essere denominata rete neurale artificiale. La rete neurale 416 può comprendere uno strato di input 465 il quale presenta nodi 467-1 a 467-N che possono corrispondere ai vari input descritti qui, quali gli input xl a xN e/o le tensioni di input Vgl-1 a Vgl-N.
La rete neurale 416 può comprendere gli strati 430-1 a 430-3 che possono rispettivamente corrispondere agli strati 330-1 a 330-3. Lo strato 430-1 può comprendere i modelli neurali 469-1 a 469-L. Ciascuno dei rispettivi modelli neurali 469-1 a 469-L può corrispondere ai vari modelli neurali descritti qui. Per esempio, i modelli neurali 469-1 a 469-L possono rispettivamente corrispondere ai modelli neurali 330-1 a 300-L dello strato 330- 1. Si osserva che ciascuno dei rispettivi modelli neurali 469-1 a 469-L può essere accoppiato per ricevere input dai nodi 467-1 a 467-N. Le interconnessioni, nella regione di interconnessione 471-1, fra i nodi 467-1 a 467-N e ciascuno dei rispettivi modelli neurali 469-1 a 469-L nello strato 430-1 può corrispondere ai vari modelli di sinapsi ponderati descritti qui, quali i modelli di sinapsi 331-1 a 331-N di ciascuno dei rispettivi modelli neurali 300- 1 a 300-L dello strato 330-1.
Lo strato 430-2 può comprendere i modelli neurali 473-1 a 473-L. Ciascuno dei rispettivi modelli neurali 473-1 a 473-L può corrispondere ai vari modelli neurali descritti qui. Per esempio, i modelli neurali 473-1 a 473-L possono rispettivamente corrispondere ai modelli neurali 330-1 a 300-L dello strato 330-2. Si osserva che ciascuno dei rispettivi modelli neurali 473-1 a 473-L può essere accoppiato per ricevere input dai modelli neurali 469-1 a 469-L. Le interconnessioni, nella regione di interconnessione 471-2, fra i modelli neurali 469-1 a 469-L e ciascuno dei rispettivi modelli neurali 473-1 a 473-L può corrispondere ai vari modelli di sinapsi ponderati descritti qui, quali i modelli di sinapsi 331-1 a 331-N di ciascuno dei rispettivi modelli neurali 300-1 a 300-L dello strato 330-2.
Lo strato 430-3 può comprendere i modelli neurali 475-1 a 475-L. Ciascuno dei rispettivi modelli neurali 475-1 a 475-L può corrispondere ai vari modelli neurali decritti qui. Per esempio, i modelli neurali 475-1 a 475-L possono rispettivamente corrispondere ai modelli neurali 330-1 a 300-L dello strato 330-3. Si osserva che ciascuno dei rispettivi modelli neurali 475-1 a 475-L può essere accoppiato per ricevere input dai modelli neurali 473-1 a 473-L. Le interconnessioni, nella regione di interconnessione 471-3, fra modelli neurali 473-1 a 473-L e ciascuno dei rispettivi modelli neurali 475-1 a 475-L può corrispondere ai vari modelli di sinapsi ponderati descritti qui, quali i modelli di sinapsi 331-1 a 331-N di ciascuno dei rispettivi modelli neurali 300-1 a 300-L dello strato 330-3.
La rete neurale 416 può comprendere uno strato di output 477 che presenta i nodi di output 479-1 a 479-K. Ciascuno dei rispettivi nodi di output 479-1 a 479-K può essere accoppiato per ricevere input dai modelli neurali 475-1 a 475-L.
La Figura 5 è un diagramma di blocco di un apparato nella forma di un sistema informatico 580 secondo un numero di configurazioni della presente divulgazione. Il sistema informatico 580 comprende una memoria di sistema 582 che può essere, per esempio, un sistema di memorizzazione quale un SSD, un dispositivo UFS, un dispositivo eMMC, ecc. Tuttavia, le configurazioni non si limitano ad un particolare tipo di sistema di memoria. Per esempio, il sistema di memoria 582 potrebbe servire come memoria principale per il sistema 580.
Come si mostra nella Figura 5, il sistema di memoria 582 può comprendere un controller 585 il quale può essere denominato controller di sistema di memoria, dato che il controller 585 può controllare una memoria 515 che può essere le varie memorie descritte qui. Per esempio, la memoria 515 può essere configurata come un modello di rete neurale per agevolare operazioni di reti neurali secondo un numero di configurazioni della presente divulgazione. Il controller 585 è accoppiato con un host 590 ed alla memoria 515. Per esempio, la memoria 515 può comprendere un numero di dispositivi di memoria (e.g., die, chip, ecc.) e può servire come memoria (e.g., memoria principale) e/o come volume di memorizzazione per il sistema informatico 580.
La memoria 515 può essere accoppiata con un controller 585 tramite un’interfaccia 591 (e.g., interfaccia di memoria) la quale può comprendere un data bus e che può supportare diversi standard e/o soddisfare diversi tipi di interfaccia, quale una memoria DDR (doublé data rate), ecc. Il controller 585 può ricevere comandi, come ad esempio comandi di lettura e scrittura dallTiost 590. Il controller 585 può, per esempio, ricevere dati dellTiost da essere scritti sulla memoria 515 dallliost 590 tramite un’interfaccia dell’host 592. Come qui utilizzato, un sistema di memoria 582, un controller 585, una memoria 515, o un controller 594 potrebbero anche essere separatamente considerati un “apparato.”
L'host 590 può essere, ad esempio, un host System, quale un computer portatile personale, un computer da scrivania, una camera digitale, un dispositivo mobile (e.g., telefono cellulare), un server di rete, un dispositivo dotato di accesso a Internet degli Oggetti (IoT-Internet of Things), o un lettore di scheda di memoria, fra altri vari tipi di host. Per esempio, l3⁄4ost 590 può comprendere uno o più processori atti ad accedere alla memoria 515 (e.g., tramite il controller 585) suirinterfaccia 592 che può comprendere un bus. L’interfaccia 592 può essere un’interfaccia standardizzata, quale una serial ATA (serial advanced technology attachment, un PCI express (peripheral component interconnect express), o un USB (universal serial bus), fra diversi altri.
La memoria 515 può comprendere un numero di array di memoria 596 (e.g., denominati colletivamente array 596) ed un controller 594 che può essere denominato controller incorporato. Per esempio, il controller 594 può comprendere il controller 340 e può essere configurato per eseguire le varie operazioni di rete neurale qui descritte. Il controller 594 può essere posizionato internamente alla memoria 515, e può ricevere comandi (e.g., scrivere comandi, leggere comandi, ecc.) dal controller 585 tramite l’interfaccia di memoria 591. Il controller 594 può comprendere una macchina a stati e/o un sequencer. Il controller 594 può essere configurato per controllare l’operazione della memoria 515.
Nella precedente descrizione di dettaglio della presente divulgazione si fa riferimento ai disegni che accompagnano che formano parte della stessa, ed in cui è illustrato il modo per implementare un numero di configurazioni dell’divulgazione. Queste configurazioni sono descritte con sufficiente dettaglio per permettere al tecnico del ramo di implementare le configurazioni di questa divulgazione, ed è da considerarsi che altre configurazioni possono essere utilizzate e che cambiamenti processuali, elettrici e/o strutturali possono effettuarsi senza allontanarsi dallo scopo della presente divulgazione.
Le figure qui presenti seguono una convenzione di numerazione per cui la prima cifra o le prime cifre corrisponde/ corrispondono al numero di figura e le rimanenti cifre identificano un elemento o componente nel disegno. Elementi o componenti simili fra diverse figure possono essere identificati dairutilizzo di simili cifre. Come si potrà apprezzare, gli elementi mostrati nelle varie configurazioni qui possono essere aggiunti, scambiati e/o eliminati in modo tale da fornire un numero di configurazioni aggiuntive della presente divulgazione. Inoltre, come si potrà apprezzare, la proporzione e la relativa scala degli elementi provvisti nelle figure sono da intendersi con lo scopo di illustrare le configurazioni della presente divulgazione e non dovrebbero essere considerati limitanti.
Come qui utilizzato, “un numero di” o una “quantità di” qualcosa può riferirsi ad una o più di tali cose. Per esempio, un numero di o una quantità di celle di memoria può riferirsi ad una o più celle di memoria. Una “pluralità” di qualcosa si intende come due o più. Come qui utilizzato, molteplici atti eseguiti simultaneamente si riferisce ad atti che si sovrappongono, almeno in parte, in un determinato periodo di tempo. Come qui utilizzato, il termine “accoppiato” può comprendere accoppiato elettricamente, direttamente accoppiato e/o direttamente collegato senza elementi intervenenti (e.g., per contato fisico diretto), indirettamente accoppiato e/o collegato con elementi intervenenti, o accoppiato senza fili. Il termine accoppiato può inoltre comprendere due o più elementi che co-operano o interagiscono fra loro (e.g., come in un rapporto di causa ed effetto).
Sebbene configurazioni specifiche siano state qui illustrate e descritte, un tecnico del ramo potrà capire che una diversa disposizione calcolata per raggiungere gli stessi obiettivi può sostituire le suddette configurazioni. Si intende con questa descrizione comprendere modifiche o varianti di un numero di configurazioni della presente divulgazione. Resta inteso che la descrizione qui sopra è stata effettuata con un fine illustrativo e non limitativo. Una combinazione delle configurazioni qui sopra, ed altre configurazioni non specificamente descritte qui sopra, risulteranno evidenti per il tecnico del ramo dopo la revisione della presente descrizione. Lo scopo di un numero di configurazioni della presente divulgazione comprende altre applicazioni in cui le strutture e i metodi qui sopra sono utilizzati. Pertanto, lo scopo di un numero di configurazioni della presente divulgazione dovrebbe essere determinato con riferimento alle annesse rivendicazioni, insieme alla gamma completa di equivalenti per le quali si applicano tali rivendicazioni.
Nella precedente Descrizione di Dettaglio, alcune caratteristiche sono state raggruppate in una singola configurazione con il proposito di ottimizzare la descrizione. Questo metodo di descrizione non è da interpretarsi come un’intenzione di obbligo delle configurazioni descritte nella presente divulgazione di utilizzare più caratteristiche di quelle espressamente elencate in ciascuna delle rivendicazioni. Piuttosto, come le rivendicazioni che seguono dimostrano, la materia dell’divulgazione risiede in meno di tutte le caratteristiche di una singola configurazione descritta. Le seguenti rivendicazioni sono perciò qui incluse nella Descrizione di Dettaglio, ciascuna delle rivendicazioni essendo una configurazione separata aut

Claims (25)

  1. RIVENDICAZIONI 1. Metodo comprendente: l’applicazione di una prima tensione ad una prima cella di memoria per attivare la prima cella di memoria; l’applicazione di una seconda tensione ad una seconda cella di memoria accoppiata in serie con la prima cella di memoria per attivare la seconda cella di memoria in modo tale che la corrente fluisca attraverso la prima e la seconda cella di memoria; e la generazione di un output in risposta alla corrente; laddove la prima tensione ed una tensione di soglia della seconda cella di memoria sono tali per cui la corrente è propozionale ad un prodotto della prima tensione e della tensione di soglia della seconda cella di memoria.
  2. 2. Il metodo secondo la rivendicazione 1, laddove la tensione di soglia della seconda cella di memoria è un peso che pondera la corrente.
  3. 3. Il metodo secondo la rivendicazione 1, altresì comprendente : la generazione di una terza tensione come funzione dell’output; l’applicazione della terza tensione ad una terza cella di memoria per attivare la terza cella di memoria; e l’applicazione di una quarta tensione ad una quarta cella di memoria accoppiata in serie con la terza cella di memoria per attivare la quarta cella di memoria in modo tale che la corrente fluisca attraverso la terza e la quarta cella di memoria; laddove la terza tensione e la tensione di soglia della quarta cella di memoria sono tali per cui la corrente che fluisce attraverso la terza e quarta cella di memoria è propozionale ad un prodotto della terza tensione e della tensione di soglia della quarta cella di memoria.
  4. 4. Il metodo secondo la rivendicazione 3, laddove la funzione comprende una funzione sigmoidea.
  5. 5. Il metodo secondo la rivendicazione 3, laddove la funzione comprende una funzione di soglia.
  6. 6. Il metodo secondo la rivendicazione 3, laddove la prima e seconda cella di memoria e la terza e quarta cella di memoria si trovano in una stessa stringa di celle di memoria accoppiate in serie, accoppiate con una linea dati.
  7. 7. Il metodo secondo la rivendicazione 3, laddove la prima e seconda cella di memoria si trovano in un primo strato di un modello di rete neurale; e la terza e quarta cella di memoria si trovano in un secondo strato del modello di rete neurale.
  8. 8. Il metodo secondo la rivendicazione 1, laddove l’output comprende un valore dei dati corrispondente alla corrente.
  9. 9. Il metodo secondo la rivendicazione 1, laddove la generazione dell’output in risposta alla corrente comprende: il rilevamento della corrente; e la conversione della corrente rilevata in un output di dati digitale.
  10. 10. Il metodo secondo la rivendicazione 1, laddove la corrente è pari ad un guadagno di transconduttanza della prima e seconda cella di memoria in combinazione, moltiplicato per il prodotto della prima tensione e della tensione di soglia della seconda cella di memoria.
  11. 11. Metodo comprendente: l’attivazione simultanea di una pluralità di coppie di celle di memoria accoppiate in serie con lo scopo di provocare che una rispettiva corrente ponderata fluisca attraverso ogni rispettiva coppia della pluralità di coppie attivate simultaneamente di celle di memoria accoppiate in serie, ogni rispettiva corrente ponderata corre spondente ad un prodotto di una tensione applicata ad una prima cella di memoria della rispettiva coppia ed ad una tensione di soglia di una seconda cella di memoria della rispettiva coppia; la somma delle rispettive correnti ponderate su una linea dati accoppiata con la pluralità di coppie attivate simultaneamente di celle di memoria accoppiate in serie per produrre una corrente sommata; e la generazione di un output sulla base della corrente sommata.
  12. 12. Il metodo secondo la rivendicazione 11, laddove la generazione di un output sulla base della corrente sommata comprende la generazione, attraverso il rilevamento di uno schema accoppiato con la linea dati, di una rappresentazione digitale della corrente sommata.
  13. 13. Apparato comprendente: un controller; una pluralità di gruppi di celle di memoria accoppiate in serie con una linea dati; laddove ogni rispettivo gruppo comprende una rispettiva prima cella di memoria accoppiata in serie con una rispettiva seconda cella di memoria; ogni rispettiva seconda cella di memoria è programmata ad una rispettiva tensione di soglia; il controller è configurato per: applicare simultaneamente rispettive prime tensioni alle rispettive prime celle di memoria, per attivare simultaneamente le rispettive prime celle di memoria; e applicare simultaneamente rispettive seconde tensioni alle rispettive seconde celle di memoria, simultaneamente applicando le rispettive prime tensioni, per attivare simultaneamente le rispettive seconde celle di memoria in modo tale che rispettive porzioni di corrente sulla linea dati fluiscano attraverso i rispettivi gruppi simultaneamente affinché la corrente sulla linea dati sia una somma delle rispettive porzioni di corrente; e la rispettiva porzione di corrente che fluisce attraverso ogni rispettivo gruppo di celle di memoria è propozionale ad un prodotto della prima tensione applicato alla rispettiva prima cella di memoria del rispettivo gruppo e la tensione di soglia della seconda cella di memoria del rispettivo gruppo.
  14. 14. L’apparato secondo le rivendicazione 13, laddove: la rispettiva prima cella di memoria e la rispettiva seconda cella di memoria sono configurate per simulare una cella sinaptica di una rete neurale; un gate della rispettiva prima cella di memoria è configurato per ricevere un segnale corrispondente ad un input della cella sinaptica; una tensione di soglia della rispettiva seconda cella di memoria corrisponde ad un peso sinaptico della cella sinaptica; e la cella sinaptica è attivabile, nel tempo che il segnale è applicato al gate della rispettiva prima cella di memoria, applicando un segnale ad un gate della rispettiva seconda cella in modo tale che una corrente risultante su una linea dati alla quale le rispettive prima e seconda celle di memoria sono accoppiate corrisponda ad un output della cella sinaptica.
  15. 15. L’apparato secondo la rivendicazione 13, comprendendo altresì il rilevamento di uno schema accoppiato con la linea dati e configurato per: rilevare la corrente sulla linea dati; e convertire la corrente rilevata in una rappresentazione digitale della corrente rilevata.
  16. 16. L’apparato secondo la rivendicazione 15, laddove il controller è configurato per generare una rappresentazione digitale di una tensione analogica dalla rappresentazione digitale della corrente rilevata.
  17. 17. L’apparato secondo la rivendicazione 16, laddove il controller è configurato per dare in uscita la rappresentazione digitale della tensione analogica dall’aparato.
  18. 18. L’apparato secondo la rivendicazione 16, comprendendo altresì un convertitore da analogico a digitale configurato per convertire la rappresentazione digitale della tensione analogica alla tensione analogica.
  19. 19. L’apparato secondo la rivendicazione 18, laddove l’apparato comprende altresì una linea dati aggiuntiva accoppiata con un gruppo aggiuntivo di celle di memoria che comprende una terza cella di memoria accoppiata in serie con una quarta cella di memoria; e il controller è configurato per: applicare la tensione analogica alla terza cella di memoria per attivare la terza cella di memoria; applicare una terza tensione alla quarta cella di memoria per attivare la quarta cella di memoria in modo tale che la corrente sulla linea dati aggiuntiva fluisca attraverso la terza e quarta cella di memoria; laddove la corrente che fluisce attraverso la terza e quarta cella di memoria è proporzionale ad un prodotto della tensione analogica e di una tensione di soglia della quarta cella di memoria.
  20. 20. L’apparato secondo la rivendicazione 13, laddove la pluralità di gruppi di celle di memoria sono parte di una rete neurale.
  21. 21. Apparato comprendente: una pluralità di coppie di celle di memoria accoppiate in serie, accoppiate con una linea dati; e schema di rilevamento accoppiato alla linea dati; e laddove: la linea dati è configurata per sommare rispettive correnti ponderate che fluiscono simultaneamente attraverso rispettive coppie attivate della pluralità di coppie per produrre una corrente sommata; ogni rispettiva corrente ponderata corrisponde ad un prodotto di una tensione applicata ad una delle celle di memoria delle rispettive coppie attivate, e di una tensione di soglia dell’altra cella di memoria della rispettiva coppia attivato; e lo schema di rilevamento è configurato per rilevare la corrente sommata e generare un output in risposta alla corrente sommata.
  22. 22. L’apparato secondo la rivendicazione 21, laddove il controller è configurato per generare un output come funzione dell’output generato dallo schema di rilevamento.
  23. 23. L’apparato secondo la rivendicazione 21, laddove lo schema di rilevamento è configurato per generare un primo output logico in risposta al fatto che la corrente sommata è superiore o uguale ad un valore di soglia; e generare un secondo output logico in risposta al fatto che la corrente sommata è inferiore al valore di soglia.
  24. 24. L’apparato secondo la rivendicazione 21, laddove ciascuna delle pluralità di coppie rappresenta una cella sinaptica di una rete neurale implementata in una memoria comprendente le celle di memoria.
  25. 25. L’apparato secondo la rivendicazione 21, laddove ciascuna delle pluralità di coppie è un moltiplicatore an
IT102019000000691A 2019-01-16 2019-01-16 Celle di memoria configurate per generare input ponderati per reti neurali IT201900000691A1 (it)

Priority Applications (1)

Application Number Priority Date Filing Date Title
IT102019000000691A IT201900000691A1 (it) 2019-01-16 2019-01-16 Celle di memoria configurate per generare input ponderati per reti neurali

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT102019000000691A IT201900000691A1 (it) 2019-01-16 2019-01-16 Celle di memoria configurate per generare input ponderati per reti neurali

Publications (1)

Publication Number Publication Date
IT201900000691A1 true IT201900000691A1 (it) 2020-07-16

Family

ID=66049604

Family Applications (1)

Application Number Title Priority Date Filing Date
IT102019000000691A IT201900000691A1 (it) 2019-01-16 2019-01-16 Celle di memoria configurate per generare input ponderati per reti neurali

Country Status (1)

Country Link
IT (1) IT201900000691A1 (it)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9105330B1 (en) * 2012-04-17 2015-08-11 Micron Technology, Inc. Memory devices configured to apply different weights to different strings of memory cells coupled to a data line and methods
US9430735B1 (en) * 2012-02-23 2016-08-30 Micron Technology, Inc. Neural network in a memory device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9430735B1 (en) * 2012-02-23 2016-08-30 Micron Technology, Inc. Neural network in a memory device
US9105330B1 (en) * 2012-04-17 2015-08-11 Micron Technology, Inc. Memory devices configured to apply different weights to different strings of memory cells coupled to a data line and methods

Similar Documents

Publication Publication Date Title
US10741258B2 (en) Memory configured to generate a data value from a data line connected to more than one string of series-connected memory cells
US11361216B2 (en) Neural network circuits having non-volatile synapse arrays
TWI733706B (zh) 於規劃記憶體裝置時減少驗證檢查之技術
US11437103B2 (en) Memory cells configured to generate weighted inputs for neural networks
US10446231B2 (en) Memory cell structure
US11443172B2 (en) Synapse array of neuromorphic device including synapses having ferro-electric field effect transistors and operation method of the same
US11789656B2 (en) Memory system, memory controller, and semiconductor memory device
EP3743857A2 (en) Neural network circuits having non-volatile synapse arrays
US11727253B2 (en) Neural network system including gate circuit for controlling memristor array circuit
US10002658B1 (en) Dynamic random-access memory with embedded artificial neural network functionality
IT201900000691A1 (it) Celle di memoria configurate per generare input ponderati per reti neurali
US11093823B2 (en) Neuromorphic device including a synapse array with inverting circuits
TWI768174B (zh) 供機器學習的記憶體內資料池化的裝置及其方法