Memorie a semiconduttore

Documenti analoghi
Memorie a semiconduttore

Memorie: classificazione. Memorie a semiconduttore. Dimensioni di memorie. Memorie: architettura. Le memorie si dividono in 3 grandi categorie:

Memorie a semiconduttore

MEMORIE AD ACCESSO CASUALE

Esame di INFORMATICA Lezione 4

Il Sottosistema di Memoria

Lezione 22 La Memoria Interna (1)

Cella di memoria SRAM a 6T

Elementi di base del calcolatore

Corso di Calcolatori Elettronici I A.A Le memorie Lezione 16

Modulo: Elementi di Informatica

FONDAMENTI DI INFORMATICA. Prof. PIER LUCA MONTESSORO. Facoltà di Ingegneria Università degli Studi di Udine. Reti logiche

Architettura dei Calcolatori Elettronici

Tecniche di Progettazione Digitale Logiche programmabili; standard cells; generazione automatica del layout: algoritmi di partitioning p.

La memoria: tecnologie di memorizzazione

Elettronica I Porte logiche CMOS

Circuiti Digitali. Appunti del Corso

Circuiti di Indirizzamento della Memoria

Porte logiche in tecnologia CMOS

Mercato delle memorie non-volatili

Memory TREE. Luigi Zeni DII-SUN Fondamenti di Elettronica Digitale

Progettazione Analogica e Blocchi Base

Elettronica dei Sistemi Digitali Le porte logiche CMOS

Corso di Fondamenti di Informatica Elementi di Architettura

Reti logiche (2) Circuiti sequenziali

Struttura di un sistema di elaborazione. SDE: basi. Descrizione dei componenti (2) Descrizione delle componenti

Elettronica Inverter con transistore MOS; tecnologia CMOS e porte logiche combinatorie CMOS

La memoria - tecnologie

Logica cablata (wired logic)

La memoria-gerarchia. Laboratorio di Informatica - Lezione 3 - parte I La memoria - La rappresentazione delle informazioni

Simulazione Spice. Simulazione Circuitale Spice. Netlist. Netlist

L organizzazione interna della memoria e del banco di registri prevedono generalmente che le uscite di 2 o più componenti

Esame di INFORMATICA

Dispositivi Logici Programmabili

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

Architettura di un calcolatore: Introduzione parte 2

Transistori MOS. Ing. Ivan Blunno 21 aprile 2005

Memorie. Definizione di memoria

Elettronica dei Sistemi Digitali Registri di memoria CMOS e reti sequenziali

Classificazione delle memorie

Mari, Buonanno, Sciuto Informatica e cultura dell informazione McGraw-Hill

Interrupt. Interno. Esterno. I/O (Gestione dei trasferimenti dati con la cpu e la memoria)

Simulazione. Simulazione verilog. Testbench. Testbench

Logica sequenziale: implementazione verilog

Reti Logiche Combinatorie

Circuiti statici, dinamici e circuiti sequenziali. Esercizio A 15/07/2007

Organizzazione modulare delle memorie

4 STRUTTURE CMOS. 4.1 I componenti CMOS

Dispositivi unipolari Il contatto metallo-semiconduttore Il transistor JFET Il transistor MESFET Il diodo MOS Il transistor MOSFET

Architettura dei computer

Come è fatto un computer

Pipeline. Esempio pipeline lineare a 5 stadi. Tempificazione S1 S2 S3 S4 S5. Istruzioni. Istruzione 4. Istruzione 3. Istruzione 2. tempo.

LOGICA SEQUENZIALE. Un blocco di logica puramente combinatoria è un. blocco con N variabili di ingresso e M variabili di uscita

Moduli combinatori Barbara Masucci

Criteri di caratterizzazione di una memoria

PSPICE simulazione di circuiti digitali Flip Flop M/S, Moltiplicatore parallelo, Memoria SRAM, sommatore, comparatore

T9 REGISTRI, CONTATORI, MEMORIE A SEMICONDUTTORE

Transcript:

Memorie a semiconduttore Lucidi del Corso di Elettronica Digitale Modulo 12 Università di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica Laboratorio di Elettronica (EOLAB) 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) 14 Dicembre 2006 ED - Memorie Massimo Barbaro 2

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) 14 Dicembre 2006 ED - Memorie Massimo Barbaro 3 Memorie: architettura Una memoria di N parole da M bit è organizzata, concettualmente in questo modo A[0] A[1] S[0] Word 0 Word 1 M bit A[K-1] Decoder S[N-1]. Word N-1 Elemento di memoria (singolo bit) 14 Dicembre 2006 ED - Memorie Massimo Barbaro 4

Memorie: architettura Una memoria di N word necessita di K=log 2 N 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 14 Dicembre 2006 ED - Memorie Massimo Barbaro 5 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 14 Dicembre 2006 ED - Memorie Massimo Barbaro 6

Memorie: architettura A[L] A[K-1] Row Decoder Sense Amplifiers A[0] A[L-1] Column Decoder 14 Dicembre 2006 ED - Memorie Massimo Barbaro 7 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 2 K-L righe in base ai K-L bit più significativi dell indirizzo La riga selezionata contiene 2 L 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 14 Dicembre 2006 ED - Memorie Massimo Barbaro 8

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 (log 2 P bit di indirizzo) ciascuno dei quali è organizzato come un array righe/colonne come il precedente 14 Dicembre 2006 ED - Memorie Massimo Barbaro 9 Memorie: architettura Indirizzo di riga Indirizzo di colonna Indirizzo di blocco Bus 14 Dicembre 2006 ED - Memorie Massimo Barbaro 10

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, senseamplifier, driver dei bus) 14 Dicembre 2006 ED - Memorie Massimo Barbaro 11 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. 14 Dicembre 2006 ED - Memorie Massimo Barbaro 12

ROM: elemento di memoria Pull-up WL[0] WL[1] Riga 1 WL[2] WL[3] BL[0] BL[1] BL[2] BL[3] 14 Dicembre 2006 ED - Memorie Massimo Barbaro 13 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 j i 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 14 Dicembre 2006 ED - Memorie Massimo Barbaro 14

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 14 Dicembre 2006 ED - Memorie Massimo Barbaro 15 NVRW: elemento di memoria L organizzazione di una memoria non volatile di lettura e scrittura (comunemente detta E 2 PROM, 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 14 Dicembre 2006 ED - Memorie Massimo Barbaro 16

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 14 Dicembre 2006 ED - Memorie Massimo Barbaro 17 Floating gate transistor Gate flottante Gate di controllo Source Drain n + n + Il MOS a gate flottante ha 2 gate: uno di controllo ed uno flottante, immerso nell ossido e senza contatti elettrici con l esterno 14 Dicembre 2006 ED - Memorie Massimo Barbaro 18

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 questa 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) 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) 14 Dicembre 2006 ED - Memorie Massimo Barbaro 19 Programmazione e cancellazione Gate flottante Gate di controllo Source Cancellazione - - n + n + Programmazione Drain 14 Dicembre 2006 ED - Memorie Massimo Barbaro 20

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) 14 Dicembre 2006 ED - Memorie Massimo Barbaro 21 SRAM: elemento di memoria WL Q Q BL BL 14 Dicembre 2006 ED - Memorie Massimo Barbaro 22

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 14 Dicembre 2006 ED - Memorie Massimo Barbaro 23 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) 14 Dicembre 2006 ED - Memorie Massimo Barbaro 24

DRAM: cella 3T WL X B1 B2 14 Dicembre 2006 ED - Memorie Massimo Barbaro 25 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) 14 Dicembre 2006 ED - Memorie Massimo Barbaro 26

DRAM: cella 1T BL X WL 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) 14 Dicembre 2006 ED - Memorie Massimo Barbaro 27 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) 14 Dicembre 2006 ED - Memorie Massimo Barbaro 28

Memorie Modellazione verilog Università di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica Laboratorio di Elettronica (EOLAB) Modello verilog Il modello verilog di una memoria si basa sullo stesso meccanismo utilizzato per gli altri elementi sequenziali: le informazioni immagazzinate in una variabile di tipo REG rimangono memorizzate fino a che non vengono riassegnate esplicitamente L unica particolarità di una memoria è che bisogna memorizzare un array (matrice) di elementi (ciascuna word) anzi che semplicemente dei bit, questo comporta l introduzione di un nuovo elemento di sintassi verilog (il concetto di array) 14 Dicembre 2006 ED - Memorie Massimo Barbaro 30

Memorie: uso degli array Numero di bit (word size) module mem( );.. reg [7:0] word_array [0:255] ;. endmodule Numero di word (memory size) Un array è una matrice di elementi definito da un indice. In questo esempio la variabile word_array è un insieme di 256 parole di memoria (l indice varia da 0 a 255) ciascuna delle quali contiene 8 bit. 14 Dicembre 2006 ED - Memorie Massimo Barbaro 31 Memorie: uso degli array module mem( );.. reg [7:0] word_array [0:255] ;. Dout = word_array[17];. endmodule In un oggetto definito come array non è possibile selezionare un sottoinsieme di bit (come si fa con un vettore) ma ci si riferisce sempre a tutti i bit di una particolare word. In questo esempio, la riga evidenziata accede a tutti gli 8 bit della word di posizione 17 fra le 256 possibili. 14 Dicembre 2006 ED - Memorie Massimo Barbaro 32

Esempio: RAM 2 porte module mem(addr, rnw, din, dout); input rnw; // rnw: read-not-write (1 legge, 0 scrive) input [7:0] addr; // Indirizzo: 8 bit -> 256 word input [31:0] din; // Porta di scrittura output [31:0] dout; // Porta di lettura reg [31:0] dout; reg [31:0] word_array [0:255]; always @(addr or din or rnw) begin dout = word_array[addr]; // Lettura if(~rnw) word_array[addr] = din; // Scrittura end endmodule 14 Dicembre 2006 ED - Memorie Massimo Barbaro 33 Esempio: RAM 1 porta module mem(addr, rnw, dbus); input rnw; // rnw: read-not-write (1 legge, 0 scrive) input [7:0] addr; // Indirizzo: 8 bit -> 256 word inout [31:0] dbus; // Porta di lettura/scrittura wire [31:0] dbus; reg [31:0] word_array [0:255]; assign dbus = (rnw)? word_array[addr] : 32 bz; // Lettura (rnw=1) o scrittura (rnw=0) always @(addr or dbus or rnw) if(~rnw) word_array[addr] = dbus; // Scrittura (l assign precedente ha messo // dbus in alta impedenza quindi posso // leggere il dato proveniente dal bus e // memorizzarlo). endmodule 14 Dicembre 2006 ED - Memorie Massimo Barbaro 34

Esempio: memoria parametrica module mem(addr, rnw, dbus); parameter WORD_SIZE=32, MEM_SIZE=256, ADDR_SIZE=8; input rnw; // rnw: read-not-write (1 legge, 0 scrive) input [ADDR_SIZE-1:0] addr; // Indirizzo inout [WORD_SIZE-1:0] dbus; // Porta di lettura/scrittura wire [WORD_SIZE-1:0] dbus; reg [WORD_SIZE-1:0] word_array [0:MEM_SIZE-1]; assign dbus = (rnw)? word_array[addr] : {WORD_SIZE{1 bz}}; // Lettura (rnw=1) always @(addr or dbus or rnw) if(~rnw) word_array[addr] = dbus; // Scrittura (l assign precedente ha messo // dbus in alta impedenza quindi posso // leggere il dato proveniente dal bus e // memorizzarlo). endmodule 14 Dicembre 2006 ED - Memorie Massimo Barbaro 35 Memorie: modello verilog Ovviamente i due esempi proposti sono solo due possibili modelli di una memoria. Ai segnali di controllo utilizzati se ne possono aggiungere altri (ad esempio un segnale di abilitazione, un segnale di clock per letture sincrone e così via). Ogni modello verilog avrà però al suo interno un array definito da due indici che rappresenta il core di memorizzazione vero e proprio 14 Dicembre 2006 ED - Memorie Massimo Barbaro 36