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 AD ACCESSO CASUALE

Università degli Studi di Cassino e del Lazio Meridionale

Memorie elettroniche. 1. Parametri delle memorie

Esame di INFORMATICA Lezione 4

Memorie Flash. Architettura Lettura Programmazione Cancellazione

Il Sottosistema di Memoria

Elementi di base del calcolatore

Struttura di un elaboratore

Modulo: Elementi di Informatica

Corso di Informatica

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

Porte logiche in tecnologia CMOS

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

Il Sottosistema di Memoria

La memoria: tecnologie di memorizzazione

La memoria - tecnologie

Progettazione Analogica e Blocchi Base

Circuiti di Indirizzamento della Memoria

La memoria: tecnologie di memorizzazione

Unità di misura delle capacità delle memorie

Mercato delle memorie non-volatili

Il Sottosistema di Memoria

Cella di memoria SRAM a 6T

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

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

Logica cablata (wired logic)

La memoria - tecnologie

Elettronica I Porte logiche CMOS

Logica Sequenziale. Lucidi del Corso di Elettronica Digitale. Università di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica

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

static dynamic random access memory

Dispositivi Logici Programmabili

Sottosistemi ed Architetture Memorie

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

Esame di INFORMATICA

I.P.S.I.A. Di BOCCHIGLIERO. ----Memorie a semiconduttore---- Materia: Elettronica, Telecomunicazioni ed applicazioni. prof. Ing.

Logica sequenziale. Logica Sequenziale. Macchine a stati e registri. Macchine a stati

Convertitori Digitale-Analogico

Elettronica dei Sistemi Digitali Le porte logiche CMOS

Architettura dei computer

Simulazione. Simulazione verilog. Testbench. Testbench

Come è fatto un computer

Corso di Sistemi di Elaborazione delle informazioni

Architettura di Von Neumann

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

Memorie. Definizione di memoria

Le memorie. Introduzione

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

Il quadro di insieme. Tecnologie per la memoria e gerarchie di memoria. Un ripasso: latch D e flip-flop D. Un ripasso: clock

4 STRUTTURE CMOS. 4.1 I componenti CMOS

Modulo 1 Le memorie. Si possono raggruppare i sistemi di elaborazione nelle seguenti categorie in base alle possibilità di utilizzazione:

LA MEMORIA NEL CALCOLATORE

Lezione 16 Introduzione al sottosistema di memoria

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

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

Introduzione alle gerarchie di memoria

Elettronica dei Sistemi Digitali Registri di memoria CMOS e reti sequenziali

Architettura dei Calcolatori

Dal sistema operativo all' hardware

Tecniche di Progettazione Digitale Elementi di memoria CMOS e reti sequenziali p. 2

Architettura dei sistemi di elaborazione: La memoria (parte 1)

Classificazione delle memorie

Architettura dei computer

T9 REGISTRI, CONTATORI, MEMORIE A SEMICONDUTTORE

1.4b: Hardware. (Memoria Centrale)

I.I.S. Benvenuto Cellini. Corso di formazione tecnica. Memoria Primaria. Prof. Alessandro Pinto. v.2009

Logica CMOS dinamica

Architettura dei calcolatori

Memorie a Stato Solido

I dispositivi di input/output: il mouse

I bistabili ed il register file

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

Le memorie. Generalità E applicazioni

Informatica. Informazione L Informazione è un dato, o un insieme di dati, interpretati in un determinato contesto.

Clocking. Architetture dei Calcolatori (Lettere. di Memoria. Elemento. scritti. Tecnologie per la Memoria e Gerarchie di Memoria

Dipartimento di Ingegneria Industriale e dell Informazione. Sistema per la misura del guadagno di corrente beta in transistori bipolari

METODOLOGIE PROGETTUALI CMOS

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

Organizzazione della memoria

I circuiti dei calcolatori, le memorie, i bus. I fondamenti della rappresentazione dell informazione e della sua trasmissione ed elaborazione.

Informatica. 80 ore divise in 4 UFC. Docente: Michela Bacchin. Contatti: Tramite Ermes Studenti

Tecnologia CMOS. Ing. Ivan Blunno 21 aprile 2005

Circuiti per l Elaborazione del Segnale: Capacità Commutate

Componenti e connessioni. Capitolo 3

Organizzazione della memoria principale Il bus

Lezione 15. L elaboratore Elettronico

Convertitori D/A. Convertitori Digitale-Analogico. D/A: Misura Prestazioni. D/A Ideale. Caratteristica. Lucidi del Corso di Microelettronica Parte 7

{ v c 0 =A B. v c. t =B

Dispositivi e Tecnologie Elettroniche. Memorie a semiconduttore

Corso di Informatica

MEMORIA CENTRALE MEMORIA CENTRALE INTERAZIONE CPU-MEMORIA CENTRALE

separazione dei wafer processo di integrazione CMOS singola fetta testing su fetta inserimento nel package

Informatica - A.A. 2010/11

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

Esercizi Logica Digitale,Circuiti e Bus

Informatica giuridica

Informatica di Base - 6 c.f.u.

Circuiti digitali. Parte III. Logica Digitale e Memorie. Funzioni logiche (booleane) Tavola della verità

Transcript:

Memorie a semiconduttore Lucidi del Corso di Elettronica Digitale Modulo 11 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 senon alimentate NVRWM (Nonvolatile, olatile read/writerite memory): memorie di lettura e scrittura non volatili (mantengono il dato anche se si spegne l alimentazione) 03 Dicembre 2009 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) 03 Dicembre 2009 ED - Memorie Massimo Barbaro 3

Memorie: architettura Una memoria di N parole da M bit è organizzata, concettualmente in questo modo A[0] A[1] A[K-1] Dec coder S[0] S[N-1] Word 0 Word 1. Word N-1 M bit Elemento di memoria (singolo bit) 03 Dicembre 2009 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 i devono essere decodificatidifi 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 03 Dicembre 2009 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 (lepisteverticali cheattraversano 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 03 Dicembre 2009 ED - Memorie Massimo Barbaro 6

Memorie: architettura A[L] A[K-1] Row De ecoder Sense Amplifiers A[0] A[L-1] Column Decoder 03 Dicembre 2009 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 03 Dicembre 2009 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 i i in P blocchi (log 2 P bit di indirizzo) ciascuno dei quali è organizzato come un array righe/colonne come il precedente 03 Dicembre 2009 ED - Memorie Massimo Barbaro 9

Memorie: architettura Indirizzo di riga Indirizzo di colonna Indirizzo di blocco Bus 03 Dicembre 2009 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 larray 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) 03 Dicembre 2009 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 tuttatt in fase di realizzazione i fisicai del dispositivo (layout) inserendo o non inserendo un MOS in una cella. 03 Dicembre 2009 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] 03 Dicembre 2009 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 ti 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 i 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 03 Dicembre 2009 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 03 Dicembre 2009 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, l agendo solo su segnali elettrici i applicati alla cella stessa e NON in fase di realizzazione i fisicai 03 Dicembre 2009 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. i l Si può programmare uno 0 abbassando la tensione di soglia del MOS erendendola d confrontabile con quella di un MOS normale 03 Dicembre 2009 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 lesterno 03 Dicembre 2009 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 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) 03 Dicembre 2009 ED - Memorie Massimo Barbaro 19

Programmazione e cancellazione Gate flottante Gate di controllo Cancellazione - Source n + - n + Programmazione Drain 03 Dicembre 2009 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 ti RAM, la memorizzazione i avviene in modo statico, con un elemento bistabile con opportuno circuito it 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) 03 Dicembre 2009 ED - Memorie Massimo Barbaro 21

SRAM: elemento di memoria WL Q Q BL BL 03 Dicembre 2009 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 esu 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 03 Dicembre 2009 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 unrefresh Le due principali versioni dell elemento di memoria sono a 3 transistor (cella 3T) e ad 1 transistor (cella 1T) 03 Dicembre 2009 ED - Memorie Massimo Barbaro 24

DRAM: cella 3T WL X B1 B2 03 Dicembre 2009 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 tensionifra0evddmasimisuranosolodella V Per leggere correttamente, ovviamente, sulla linea BL2 deve esserci un opportuno pull-up (uno solo per tuttett le celle che si affacciano sulla stessa colonna) 03 Dicembre 2009 ED - Memorie Massimo Barbaro 26

DRAM: cella 1T X WL L elemento ee e di memoria è una sola capacità col transistor di accesso. La linea di lettura e scrittura coincidono. La lettura è distruttiva (se accedo al nodo X BL distruggo la carica immagazzinata per redistribuzione di carica e la devo poi ripristinare) 03 Dicembre 2009 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 decoderd è 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) 03 Dicembre 2009 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) 03 Dicembre 2009 ED - Memorie Massimo Barbaro 30

Memorie: uso degli array Numero di bit (word size) module mem( );.. reg [7:0] word_ array y[ [0:255];. endmodule 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 indicevariada0a 255) ciascuna delle quali contiene 8 bit. Numero di word (memory size) 03 Dicembre 2009 ED - Memorie Massimo Barbaro 31

Memorie: uso degli array In un oggetto definito module mem( ); come array non è.. possibile* selezionare un sottoinsieme di bit reg [7:0] word_array [0:255] ; (come si fa con un. vettore) ma ci si Dout = word_array[17]; riferisce sempre a tuttitti i. bit di una particolare word. In questo esempio, la riga endmodule evidenziata accede a tutti gli 8 bit della word di posizione 17 fra le 256 possibili. * In realtà, il nuovo standard verilog (2001) ha introdotto l uso del doppio indice ed è quindi possibile selezione un singolo bit di una singola word, attraverso la sintassi word_array[5][17], dove il primo indice rappresenta il bit (bit 5) ed il secondo la word (word 17). 03 Dicembre 2009 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 03 Dicembre 2009 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 03 Dicembre 2009 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 03 Dicembre 2009 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 i vero e proprio 03 Dicembre 2009 ED - Memorie Massimo Barbaro 36