28
Università di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica Laboratorio di Elettronica (EOLAB) Memorie a semiconduttore Lucidi del Corso di Circuiti Integrati

Memorie a semiconduttore - people.unica.it · 2016-01-22 · SRAM: elemento di memoria L’elemento di memoria è un bistabile (due inverter connessi ad anello) Quando si vuole leggere

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Memorie a semiconduttore - people.unica.it · 2016-01-22 · SRAM: elemento di memoria L’elemento di memoria è un bistabile (due inverter connessi ad anello) Quando si vuole leggere

Università di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica

Laboratorio di Elettronica (EOLAB)

Memorie a semiconduttore

Lucidi del Corso di Circuiti Integrati

Page 2: Memorie a semiconduttore - people.unica.it · 2016-01-22 · SRAM: elemento di memoria L’elemento di memoria è un bistabile (due inverter connessi ad anello) Quando si vuole leggere

24 Ottobre 2012 CI - Memorie Massimo Barbaro

Memorie: classificazione

Le memorie si dividono in 3 grandi categorie:

RWM (read/write memory): memorie leggibili e

scrivibili). Sono comunemente chiamate RAM (che

significa però Random Access Memory, memorie ad

accesso casuale). Perdono l’informazione quando

non sono alimentate. Es.: SRAM, DRAM

ROM (read-only memory): memorie a sola lettura.

Sono scritte una volta per tutte e possono essere

solo lette. Mantengono l’informazione anche se non

alimentate

NVRWM (Nonvolatile, read/write memory): memorie

di lettura e scrittura non volatili (mantengono il dato

anche se si spegne l’alimentazione)

Page 3: Memorie a semiconduttore - people.unica.it · 2016-01-22 · SRAM: elemento di memoria L’elemento di memoria è un bistabile (due inverter connessi ad anello) Quando si vuole leggere

24 Ottobre 2012 CI - Memorie Massimo Barbaro

Dimensioni di memorie

La dimensione globale di una memoria viene

generalmente misurata in byte (Giga, Mega,

Kilo) ossia in termini di gruppi di 8 bit

(1byte=8bit).

Al loro interno le memorie sono organizzate in

word (parole) ossia gruppi di M bit (con M

tipicamente 32 nei sistemi attuali)

Page 4: Memorie a semiconduttore - people.unica.it · 2016-01-22 · SRAM: elemento di memoria L’elemento di memoria è un bistabile (due inverter connessi ad anello) Quando si vuole leggere

24 Ottobre 2012 CI - Memorie Massimo Barbaro

Memorie: architettura

Una memoria di N parole da M bit è organizzata, concettualmente in questo modo

Word N-1

….

Word 1

Word 0

Elemento di

memoria

(singolo bit)

Decoder

M bit

A[0]

A[1]

A[K-1]

S[0]

S[N-1]

Page 5: Memorie a semiconduttore - people.unica.it · 2016-01-22 · SRAM: elemento di memoria L’elemento di memoria è un bistabile (due inverter connessi ad anello) Quando si vuole leggere

24 Ottobre 2012 CI - Memorie Massimo Barbaro

Memorie: architettura

Una memoria di N word necessita di K=log2N

bit di indirizzo per la selezione della parola

desiderata

I bit di indirizzo devono essere decodificati da un

decoder per generare il segnale di selezione

che attiva una fra le N word

Gli M bit della word selezionata devono poi

andare sul bus di uscita (in un’operazione di

lettura), oppure dal bus provengono gli M bit da

scrivere sulla word selezionata

Page 6: Memorie a semiconduttore - people.unica.it · 2016-01-22 · SRAM: elemento di memoria L’elemento di memoria è un bistabile (due inverter connessi ad anello) Quando si vuole leggere

24 Ottobre 2012 CI - Memorie Massimo Barbaro

Memorie: architettura

Se il numero N di word diventa molto grande rispetto al numero M di bit questa architettura non è evidentemente più ragionevole perché comporterebbe un’organizzazione dello spazio irrazionale (un blocco stretto ed altissimo) e soprattutto porterebbe a delle capacità parassite enormi (le piste verticali che attraversano tutte le word per portare in uscita o in ingresso i bit)

La soluzione preferibile è quella quadrata: si dividono i bit di indirizzo in 2 gruppi e si usa il primo per selezionare una riga ed il secondo gruppo per selezionare le colonne

Page 7: Memorie a semiconduttore - people.unica.it · 2016-01-22 · SRAM: elemento di memoria L’elemento di memoria è un bistabile (due inverter connessi ad anello) Quando si vuole leggere

24 Ottobre 2012 CI - Memorie Massimo Barbaro

Memorie: architettura

Sense Amplifiers

… R

ow

Decoder

Column Decoder

A[L]

A[K-1]

A[L-1]

A[0] …

Page 8: Memorie a semiconduttore - people.unica.it · 2016-01-22 · SRAM: elemento di memoria L’elemento di memoria è un bistabile (due inverter connessi ad anello) Quando si vuole leggere

24 Ottobre 2012 CI - Memorie Massimo Barbaro

Memorie: architettura

L’architettura preferita per memoria di grandi dimensioni

è quella ad array

Dei K bit di indirizzo i primi L (i meno significativi)

selezionano le colonne e gli ultimi K-L (più significativi)

selezionano le righe

Il decoder di riga seleziona una delle possibili 2K-L righe

in base ai K-L bit più significativi dell’indirizzo

La riga selezionata contiene 2L word ed il decoder di

colonna si incarica di selezionare e portare in uscita una

fra queste word in base agli L bit meno significativi

dell’indirizzo

Prima di portare in uscita il dato questo viene amplificato

dai sense-amplifier posti al termine di ogni colonna

Page 9: Memorie a semiconduttore - people.unica.it · 2016-01-22 · SRAM: elemento di memoria L’elemento di memoria è un bistabile (due inverter connessi ad anello) Quando si vuole leggere

24 Ottobre 2012 CI - Memorie Massimo Barbaro

Memorie: architettura

Per memorie ancora più grandi (più di 256 KB)

anche dopo la suddivisione le capacità parassite

delle piste molto lunghe che collegano un

elemento di memoria nella prima riga al sense

amplifier di colonna sarebbero eccessive

Le memorie vengono ancora suddivisi in P

blocchi (log2P bit di indirizzo) ciascuno dei quali

è organizzato come un array righe/colonne

come il precedente

Page 10: Memorie a semiconduttore - people.unica.it · 2016-01-22 · SRAM: elemento di memoria L’elemento di memoria è un bistabile (due inverter connessi ad anello) Quando si vuole leggere

24 Ottobre 2012 CI - Memorie Massimo Barbaro

Memorie: architettura

Bus

Indirizzo di

colonna

Indirizzo di

blocco

Indirizzo

di riga

Page 11: Memorie a semiconduttore - people.unica.it · 2016-01-22 · SRAM: elemento di memoria L’elemento di memoria è un bistabile (due inverter connessi ad anello) Quando si vuole leggere

24 Ottobre 2012 CI - Memorie Massimo Barbaro

Componenti di una memoria

Ognuno dei 3 tipi di memorie considerate (RAM,

ROM, NVRWM) ha un’architettura come quella

vista composta da

Il core: l’array di elementi di memoria,

l’implementazione del core cambia a seconda del

tipo di memoria considerata

La periferia: i circuiti di interfaccia (decoder, sense-

amplifier, driver dei bus)

Page 12: Memorie a semiconduttore - people.unica.it · 2016-01-22 · SRAM: elemento di memoria L’elemento di memoria è un bistabile (due inverter connessi ad anello) Quando si vuole leggere

24 Ottobre 2012 CI - Memorie Massimo Barbaro

ROM: elemento di memoria

L’elemento di memoria di una cella ROM può

essere implementato in vari modi (fusibile,

diodo). In tecnologia CMOS l’elemento di

memoria è costuito dalla presenza o assenza di

un transistor

Per questo motivo le ROM non possono essere

scritte: le parole memorizzate sono definite una

volta per tutta in fase di realizzazione fisica del

dispositivo (layout) inserendo o non inserendo

un MOS in una cella.

Page 13: Memorie a semiconduttore - people.unica.it · 2016-01-22 · SRAM: elemento di memoria L’elemento di memoria è un bistabile (due inverter connessi ad anello) Quando si vuole leggere

24 Ottobre 2012 CI - Memorie Massimo Barbaro

ROM: elemento di memoria

WL[0]

WL[1]

WL[2]

WL[3]

BL[0] BL[1] BL[2] BL[3]

Riga 1

Pull-up

Page 14: Memorie a semiconduttore - people.unica.it · 2016-01-22 · SRAM: elemento di memoria L’elemento di memoria è un bistabile (due inverter connessi ad anello) Quando si vuole leggere

24 Ottobre 2012 CI - Memorie Massimo Barbaro

ROM: elemento di memoria

Quando si seleziona la riga i-esima si porta alto

il valore di WL[i] e si mette 0 su WL[j] con ji

A questo punto i vari bit della i-esima riga

vengono portati in uscita tramite la NOR

pseudo-NMOS costituita dal PMOS di pull-up

(sempre acceso) e dagli NMOS che possono

essere presenti o meno nella singola cella di

memoria del bit k-esimo. Se in posizione k della

riga i c’è un MOS questo cortocircuita BL[i] a 0,

se il MOS non c’è il pull-up porta BL[i] a 1

Page 15: Memorie a semiconduttore - people.unica.it · 2016-01-22 · SRAM: elemento di memoria L’elemento di memoria è un bistabile (due inverter connessi ad anello) Quando si vuole leggere

24 Ottobre 2012 CI - Memorie Massimo Barbaro

ROM: elemento di memoria

Nel caso della ROM di esempio del lucido 13 le

parola memorizzate sono:

W[0] = 1011

W[1] = 0110

W[2] = 1010

W[3] = 1111

Nel caso reale, per semplicità, non si modificano

le maschere delle diffusioni (mettendo o meno il

transistor) ma le metallizzazioni. Si realizzano

cioè tutti i MOS ma si collegano (col metal) solo

quelli in corrispondenza di bit di memoria pari a

0 e gli altri rimangono flottanti

Page 16: Memorie a semiconduttore - people.unica.it · 2016-01-22 · SRAM: elemento di memoria L’elemento di memoria è un bistabile (due inverter connessi ad anello) Quando si vuole leggere

24 Ottobre 2012 CI - Memorie Massimo Barbaro

NVRW: elemento di memoria

L’organizzazione di una memoria non volatile di

lettura e scrittura (comunemente detta E2PROM,

ossia Electrically Erasable/Programmable Read

Only Memory) è molto simile a quella di una

ROM

La differenza consiste nella possibilità di

realizzare la connessione del MOS, o

cancellarla, agendo solo su segnali elettrici

applicati alla cella stessa e NON in fase di

realizzazione fisica

Page 17: Memorie a semiconduttore - people.unica.it · 2016-01-22 · SRAM: elemento di memoria L’elemento di memoria è un bistabile (due inverter connessi ad anello) Quando si vuole leggere

24 Ottobre 2012 CI - Memorie Massimo Barbaro

Floating gate transistor

Il transistor di una ROM normale viene sostituito

da un transistor a gate flottante, ossia un

transistor particolare con doppio gate la cui

tensione di soglia può essere variata applicando

opportuni segnali elettrici al MOS

In questo modo si può programmare un 1 nella

ROM alzando notevolmente la tensione di soglia

del MOS, quindi in pratica eliminandolo. Si può

programmare uno 0 abbassando la tensione di

soglia del MOS e rendendola confrontabile con

quella di un MOS normale

Page 18: Memorie a semiconduttore - people.unica.it · 2016-01-22 · SRAM: elemento di memoria L’elemento di memoria è un bistabile (due inverter connessi ad anello) Quando si vuole leggere

24 Ottobre 2012 CI - Memorie Massimo Barbaro

Floating gate transistor

n+ n+

Source Drain

Gate di controllo

Gate flottante

Il MOS a gate flottante ha 2 gate: uno di controllo ed uno

flottante, immerso nell’ossido e senza contatti elettrici

con l’esterno

Page 19: Memorie a semiconduttore - people.unica.it · 2016-01-22 · SRAM: elemento di memoria L’elemento di memoria è un bistabile (due inverter connessi ad anello) Quando si vuole leggere

24 Ottobre 2012 CI - Memorie Massimo Barbaro

Floating gate transistor

Applicando delle elevate tensioni drain-source (oltre i 10V), gli elettroni che vengono enormemente accelerati possono attraversare l’ossido e rimanere intrappolati nel gate flottante

A questo punto le cariche negative degli elettroni tendono ad attrarre lacune sotto il gate, quindi diventa più difficile creare il canale (la tensione soglia aumenta)

Per riportare la tensione di soglia a livelli normali bisogna eliminare gli elettroni intrappolati nel gate flottante per effetto tunnel (applicando tensioni molto alte al source, per avere una tensione gate-source negativa)

In questo modo se il gate flottante è carico la tensione di soglia è alta ed il mos non può essere acceso (memorizzato 1), se invece il gate è scarico il mos si può accendere (memorizzato 0)

Page 20: Memorie a semiconduttore - people.unica.it · 2016-01-22 · SRAM: elemento di memoria L’elemento di memoria è un bistabile (due inverter connessi ad anello) Quando si vuole leggere

24 Ottobre 2012 CI - Memorie Massimo Barbaro

Programmazione e cancellazione

n+ n+

Source Drain

Gate di controllo

Gate flottante

-

- Programmazione

Cancellazione

Page 21: Memorie a semiconduttore - people.unica.it · 2016-01-22 · SRAM: elemento di memoria L’elemento di memoria è un bistabile (due inverter connessi ad anello) Quando si vuole leggere

24 Ottobre 2012 CI - Memorie Massimo Barbaro

RAM statiche e dinamiche

L’elemento di memoria di una memoria RAM (o

RWM) cambia a seconda del tipo di

implementazione

SRAM: static RAM, la memorizzazione avviene

in modo statico, con un elemento bistabile con

opportuno circuito di scrittura (mantiene il dato

indefinitamente finché alimentata)

DRAM: dynamic RAM, la memorizzazione è

dinamica per mezzo di cariche intrappolate su

una capacità (richiede refresh perché soggetta

al leakage della carica)

Page 22: Memorie a semiconduttore - people.unica.it · 2016-01-22 · SRAM: elemento di memoria L’elemento di memoria è un bistabile (due inverter connessi ad anello) Quando si vuole leggere

24 Ottobre 2012 CI - Memorie Massimo Barbaro

SRAM: elemento di memoria

BL

Q’

Q

BL’

WL

Page 23: Memorie a semiconduttore - people.unica.it · 2016-01-22 · SRAM: elemento di memoria L’elemento di memoria è un bistabile (due inverter connessi ad anello) Quando si vuole leggere

24 Ottobre 2012 CI - Memorie Massimo Barbaro

SRAM: elemento di memoria

L’elemento di memoria è un bistabile (due

inverter connessi ad anello)

Quando si vuole leggere il bit memorizzato si

porta WL a 1 avendo così su BL il dato Q e su

BL’ il dato Q’

Quando si vuole scrivere un valore D bisogna

mettere BL=D e BL’=D’ e poi portare alto WL

per forzare lo stato del bistabile

I dimensionamenti dei transistor sono critici per

garantire il corretto funzionamento delle fasi di

lettura e scrittura

Page 24: Memorie a semiconduttore - people.unica.it · 2016-01-22 · SRAM: elemento di memoria L’elemento di memoria è un bistabile (due inverter connessi ad anello) Quando si vuole leggere

24 Ottobre 2012 CI - Memorie Massimo Barbaro

DRAM: elemento di memoria

E’ possibile avere implementazioni di memoria

molto più compatte utilizzando un approccio

dinamico

Il dato è memorizzato su capacità quindi tende

ad essere distrutto dalle correnti di leakage. E’

necessario un refresh

Le due principali versioni dell’elemento di

memoria sono a 3 transistor (cella 3T) e ad 1

transistor (cella 1T)

Page 25: Memorie a semiconduttore - people.unica.it · 2016-01-22 · SRAM: elemento di memoria L’elemento di memoria è un bistabile (due inverter connessi ad anello) Quando si vuole leggere

24 Ottobre 2012 CI - Memorie Massimo Barbaro

DRAM: cella 3T

B2 B1

WL

X

Page 26: Memorie a semiconduttore - people.unica.it · 2016-01-22 · SRAM: elemento di memoria L’elemento di memoria è un bistabile (due inverter connessi ad anello) Quando si vuole leggere

24 Ottobre 2012 CI - Memorie Massimo Barbaro

DRAM: elemento di memoria

L’elemento di memoria è una capacità

Per leggere il dato si porta WL a 1 ed il dato compare in

uscita su BL2 (negato)

Per scrivere il dato D si porta BL1=D e poi si alza WL, in

tal modo D viene memorizzato sul nodo X (tramite la

capacità)

In realtà, per rendere l’operazione di lettura e scrittura

più veloci non si richiede una completa escursione delle

tensioni fra 0 e VDD ma si misurano solo della V

Per leggere correttamente, ovviamente, sulla linea BL2

deve esserci un opportuno pull-up (uno solo per tutte le

celle che si affacciano sulla stessa colonna)

Page 27: Memorie a semiconduttore - people.unica.it · 2016-01-22 · SRAM: elemento di memoria L’elemento di memoria è un bistabile (due inverter connessi ad anello) Quando si vuole leggere

24 Ottobre 2012 CI - Memorie Massimo Barbaro

DRAM: cella 1T

BL

WL

X

L’elemento di memoria è

una sola capacità col

transistor di accesso.

La linea di lettura e

scrittura coincidono.

La lettura è distruttiva (se

accedo al nodo X

distruggo la carica

immagazzinata per

redistribuzione di carica e

la devo poi ripristinare)

Page 28: Memorie a semiconduttore - people.unica.it · 2016-01-22 · SRAM: elemento di memoria L’elemento di memoria è un bistabile (due inverter connessi ad anello) Quando si vuole leggere

24 Ottobre 2012 CI - Memorie Massimo Barbaro

Memorie: circuiti di periferia

Tutte le memorie viste richiedono un certo

numero di decoder per selezionare la parola di

memoria desiderata

Il progetto dei decoder è critico perché il numero

di segnali è molto elevato

Soprattutto le DRAM con cella 1T ma anche le

altre RAM (per problemi di velocità di risposta)

richiedono la presenza di un amplificatore

(sense-amplifier) che riporti le variazioni di

potenziale misurate sulle bitline a valori digitali

(VDD e 0)