Sistemi Elettronici Programmabili La memoria principale Sistemi Elettronici Programmabili: La Memoria Principale 6-1 Memoria • Memoria interna o principale – ROM, PROM – RAM (SRAM, DRAM) • Memoria esterna o ausiliaria – Dischi rigidi (magnetici, ottici, magneto-ottici) – Floppy – Nastri – Cassette Sistemi Elettronici Programmabili: La Memoria Principale 6-2 Le Memorie RAM Random Access Memory Tempo di accesso indipendente dalla posizione del dato letto/scritto Caratteristiche • Dimensione = numero di bit o byte. Alcune volte fornita l’organizzazione (16Kx8 indica 16384 locazioni da 8 bit) • Velocità = tempo di accesso. Tempo che trascorre dalla richiesta del dato al momento in cui il dato è disponibile. • Potenza = assorbimento medio di potenza. Utile anche consumo di potenza in stand-by per memorie con batteria. • Costo (maggiore densità = minor costo per bit) • Integrazione = densità di memoria per chip. Maggiore integrazione = maggiore affidabilità e minor costo. Sistemi Elettronici Programmabili: La Memoria Principale 6-3 Tipologie di Memorie allo stato solido RAM (Random Access Memory) Volatili Non Volatili SRAM (Static RAM) Flip-Flop Statiche Velocissime Cella Grande Costo per Bit Taglio ~ 100 Kbit Programmate in fonderia Costo per Bit DRAM (Dynamic RAM) Capacità Dinamiche (Refresh) Veloci Cella piccola Costo per Bit Taglio ~ 100 Mbit SDRAM (Synchronous DRAM) Capacità Accesso a burst Self Refresh ROM (Read Only Memory) Masked ROM OTP (One Time Programmable) Fuse - Antifuse EPROM (Electrically Programmable ROM) MOS Floating Gate Cancellabili mediante UV EEPROM (Electrically Erasable Programmable ROM) MOS Floating Gate E-P Random Access R Lenta, E-P molto lenti Costo per Bit Flash MOS Floating Gate P Random Access E a banchi R Lenta, P molto lenti, E lentissimo Costo per Bit Taglio ~ 100 Mbit Sistemi Elettronici Programmabili: La Memoria Principale 6-4 Memorie Statiche (SRAM) • La cella di base (memorizzazione di 1 bit) è costituita da 6 o 4 transistor • Tempi di accesso bassi (10 ns) • Interfaccia semplice • Occupazione notevole • Consumo di potenza non trascurabile • Utilizzata per i registri interni e per piccole memorie Sistemi Elettronici Programmabili: La Memoria Principale 6-5 Static RAM (SRAM) 8 Address BUS Data In BUS Data_IN BUS Word 0 Word 1 1010111 10 8 Address BUS (5..0) 6 CS RAM CS R/W RAM 0 RAM 1 CS Word 1023 8 R/W RAM 2 Data Out BUS Select CS RAM 3 CS ENB S IN 2x4 Decoder Q FF R Address 2 BUS (7..6) Q’ CPU Sistemi Elettronici Programmabili: La Memoria Principale Data_OUT BUS 8 6-6 SRAM bus dati doppio Data IN BUS (2..0) MC MC MC MC MC MC MC MC MC MC MC MC CS ADDR_1 ADDR_0 2x4 Decoder R/W Data OUT BUS (2..0) Sistemi Elettronici Programmabili: La Memoria Principale 6-7 SRAM bus dati singolo MC MC MC MC MC MC MC MC MC MC MC MC CS ENB R/W ENB ADDR_0 2x4 Decoder ENB ADDR_1 Data BUS (2..0) Sistemi Elettronici Programmabili: La Memoria Principale 6-8 Indirizzamento Bi-dimensionale Address BUS Indirizzo della Riga Decoder di Riga Indirizzo della Colonna Decoder di Colonna Parola Indirizzata Sistemi Elettronici Programmabili: La Memoria Principale 6-9 SRAM 512K x 8 Sistemi Elettronici Programmabili: La Memoria Principale 6-10 Comandi di Lettura/Scrittura Sistemi Elettronici Programmabili: La Memoria Principale 6-11 Ciclo di Lettura SRAM • Si fornisce l’indirizzo • Si abilita il chip (CE) • Si abilita l’uscita (OE) Il tempo d’accesso tACC è il tempo necessario per avere stabile l’uscita una volta stabilizzati i segnali di controllo d’ingresso Il tempo minimo richiesto per l’operazione di lettura è indicato con tRC (tempo di ciclo di lettura) Nelle SRAM tipicamente tACC=tRC Sistemi Elettronici Programmabili: La Memoria Principale 6-12 Ciclo di Scrittura SRAM La scrittura può essere svolta in 2 modi • • 1. 2. 3. 4. 5. Controllata da WE (il comando di scrittura è un impulso su WE) Controllata da CE (il comando di scrittura è un impulso su CE) Viene fornito l’indirizzo Viene abilitato il chip Vengono forniti i dati Viene dato il comando di scrittura (che deve essere mantenuto per un tempo minimo indicato con tWP La durata minima del ciclo di scrittura si indica con tWC (=tWP per le SRAM) Sistemi Elettronici Programmabili: La Memoria Principale 6-13 Memorie Dinamiche (DRAM) • L’informazione è rappresentata dalla carica (50pC circa) immagazzinata in un condensatore integrato • 1 singolo transistor viene utilizzato per le operazioni di lettura/scrittura/mantenimento • Grande capacità a costi contenuti • Resistenze di perdita => il condensatore si scarica entro pochi ms. • Serve ciclo di rinfresco dell’informazione (refresh) con circuito dedicato interno => memorie più lente • Grandi dimensioni = tanti indirizzi => indirizzo riga e colonna separati La linea Plate Line è collegata a massa La linea Word Line è collegata al gate La linea Bit Line è collegata al drain Sistemi Elettronici Programmabili: La Memoria Principale 6-14 Memorie Dinamiche (DRAM) Sistemi Elettronici Programmabili: La Memoria Principale 6-15 Ciclo di Lettura per le DRAM • tRC>tACC • Necessità di refresh Sistemi Elettronici Programmabili: La Memoria Principale 6-16 Lettura/Scrittura DRAM 1. 2. 3. 4. 5. 6. 7. Si immette sul bus indirizzi il Row Address Si attiva il segnale RAS (Row Address Strobe) che agendo su un apposito Latch memorizza il Row Address ad uso interno Il valore memorizzato nel Latch viene decodificato ed identifica una specifica riga (Row) nella matrice di memoria. I segnali ed il bus vendono disasseriti, è finita la prima fase dell'accesso Si immette sul bus indirizzi il Column Address Si attiva il segnale CAS (Column Address Strobe) che agendo su un apposito Latch memorizza il Column Address Il valore immagazzinato permette di individuare la colonna dove si trova il dato. L'incrocio tra colonna e riga individua univocamente la cella di memoria ed il suo contenuto viene inviato sul bus dati in caso di lettura, altrimenti il contenuto del bus dati viene scritto nella cella in caso di scrittura. USO DI UN CONTROLLORE ESTERNO DEDICATO ALLE DRAM (BRIDGE di BUS nei PC) Sistemi Elettronici Programmabili: La Memoria Principale 6-17 Memoria Dinamica Sincrona (SDRAM) • Utilizzo di clock esterno per la sincronizzazione delle operazioni di I/O. • Incremento delle prestazioni • Maggiore efficienza • Complessi modi operativi, pipeline interne e trasferimenti burst. • I chip di SDRAM in commercio hanno frequenze di funzionamento dai 66MHz fino ai 200MHz. • I moduli di memoria che utilizzano la SDRAM hanno il formato DIMM, la banda massima teorica delle memorie DIMM PC100 è di 800MB/s e 1064MB/s per le PC133 Sistemi Elettronici Programmabili: La Memoria Principale 6-18 Località • • 1. 2. Il divario di prestazioni tra CPU e DRAM è cresciuto (vel. DRAM +22% anno, vel. CPU +50,100% anno) L’analisi sull’esecuzione dei programmi mostra che i riferimenti alla memoria godono di 2 proprietà: Località spaziale: è altamente probabile che l’istruzione successiva sia contigua a quella che si sta eseguendo Località temporale: poiché tutti i programmi hanno dei cicli in cui si fa riferimento a dati è probabile che altamente probabile che nel prossimo futuro venga di nuovo eseguita la stessa istruzione o si faccia riferimento allo stesso dato La località suggerisce di utilizzare una memoria interna veloce ma costosa (cache con SRAM) per le parti alle quali probabilmente si farà riferimento nel prossimo futuro (strategie di caching), interposta tra la CPU e la memoria principale Sistemi Elettronici Programmabili: La Memoria Principale 6-19 Gerarchia • La località suggerisce l’introduzione di una gerarchia nella memoria • Al livello più alto ci sono i registri della CPU • Al livello più basso le memorie di massa Sistemi Elettronici Programmabili: La Memoria Principale 6-20 Gerarchia • Il processore genera un indirizzo • Si controlla la memoria di livello più alto (cache) • Se il dato è contenuto nella cache si ha un hit ed il dato viene trasmesso alla CPU • In caso contrario si ha un miss e si passa alla memoria di livello inferiore • h = tasso di hit, il rapporto tra il numero di hit ed i riferimenti totali alla memoria • m = tasso di miss, il rapporto tra il numero di miss ed i riferimenti totali alla memoria (m=1-h) Sistemi Elettronici Programmabili: La Memoria Principale 6-21 Gerarchia • I trasferimenti avvengono in blocco tra livelli adiacenti: quando un dato viene trovato a livello inferiore viene trasferito un blocco che lo contiene in quello superiore • Nel caso di miss multipli vengono trasferiti i blocchi tra livelli contigui di dimensioni sempre minori mano a mano che si sale di gerarchia Tempo di hit: tempo necessario per accesso livello più alto th Penalizzazione di miss: tempo necessario al trasferimento del blocco e per la trasmissione del dato alla CPU tp Tempo medio di accesso alla memoria: t = h*th + mtp Sistemi Elettronici Programmabili: La Memoria Principale 6-22