1/8/2014 Il Sottosistema di Memoria Classificazione delle memorie Funzionalità Tecnologia Memoria di sola lettura (ROM) Memoria di lettura/scrittura Memoria a semiconduttori Memoria magnetica Memoria ottica Modalità d’accesso Memoria ad accesso diretto (RAM) Memoria ad accesso sequenziale (unità a nastro) Memoria ad accesso semi diretto (dischi magnetici) 1 1/8/2014 Parametri di valutazione Dimensioni: Indica il numero N di word da W bit presenti nella memoria. Tempo di accesso: Indica il tempo che intercorre tra l’istante in cui è richiesta l’informazione e l’istante in cui è disponibile, espresso in ns Tempo di ciclo: il minimo intervallo tra due successivi accessi per lettura/scrittura in memoria. Potenza dissipata Costo Memoria RAM RAM: Random Access Memory Tempi di accesso indipendenti dalla posizione Statica o Dinamica Valutata in termini di Dimensione (di solito espressa in GBytes) Velocità (intesa come tempo di accesso solitamente in ns) Dissipazione di potenza (in Watt assoluti o per bit) Costo (molto aleatorio) Integrazione (o densità) solitamente espressa in nm relativamente alla dimensione minima definibile del processo tecnologico utilizzato 2 1/8/2014 RAM Statica Per memorizzare un bit sono necessari 4 o 6 trasistor Bassa densità e quindi bassa capacità per chip Alta potenza dissipata Bassi tempi di accesso alta velocità Usata per i registri interni al processore e per la Cache D0 A0 MEM D7 WE CE OE A19 Schema a blocchi di una SRAM 64Kx8 A7 Memory core Decodificatore colonna A8 Amplificatore A0 Decodificatore riga Buffer Ingresso Circuiti di controllo I/O0 I/O7 WE OE CE A15 3 1/8/2014 Ciclo di Lettura in una SRAM tRC Indirizzi Dati indirizzo valido dati non validi dati validi tACC CE OE tOE WE RAM Dinamica Per memorizzare un bit è necessario 1 solo trasistor MOS Si sfrutta la carica immagazzinata nella capacità parassita del gate Alta densità e quindi alta capacità per chip Bassa potenza dissipata Necessita dei cicli di rinfresco per evitare la erdita di carica sulla capacità parassita Necessita di controllo di errore Bisogna indirizzare prima le righe e poi le colonne della matrice di bit (o byte) Alti tempi di ciclo di lettura velocità più bassa delle statiche Per l’interfacciamento con la CPU e la gestione del refresh necessitano, praticamente sempre, di un dispositivo chiamato DRAM Controller Word Line C Bit Line Sens e Amp 4 1/8/2014 Ciclo di Lettura in una DRAM tRC RAS CAS A Row Address WE Col Address Junk Row Address Col Address Junk tCAC OE Data High Z Junk tRAC Data Out Early Read Cycle: OE asserted before CAS High Z Output Enable Delay Data Out Late Read Cycle: OE asserted after CAS Relazione velocità CPU/velocità Memoria Siano f: frequenza del clock N: numero di cicli di clock richiesti dalla CPU per l’accesso in memoria T=N/f essendo T il tempo richiesto dalla CPU per completare l’operazione Per una RAM statica dev’essere tacc < T Per una RAM dinamica dev’essere tRC < T Se la memoria è lenta si devono introdurre dei cicli di Wait e la relazione diventa: T = (N+Nw)/ f > tacc , tRC 5 1/8/2014 Organizzazione della Memoria Parametri da considerare Tipo di integrati, loro parallelismo e dimensione Parallelismo del BUS dati e dimensione complessiva desiderata Collegamento dei Chip di Memoria in Parallelo Dispongo di chip di memoria con parallelismo di 4 bit e voglio ottenere da questi un chip con parallelismo 8 bit A0-A7 D0-D3 E 256 x 4bit A0-A7 256 x 4bit E 256 x 4bit E E D0-D7 6 1/8/2014 Decodifica degli Indirizzi Indirizzamento Gerarchico Indirizzi a 16 bit (memoria indirizzabile 64K) 1 banco di memoria da 16K 4 banchi di memoria da 8K 48K A0 16K 8K 8K 8K 8K A0 8K A0 A12 0 8K A12 16K 16 24 32 40 48 16K-24K A13 A0 A1 A13 24K-32K 0K-16K P A0 16K-32K A0 8K A14 A15 A12 8K A12 32K-48K 32K-40K A13 40K-48K Decodifica degli Indirizzi Indirizzamento Gerarchico Indirizzi a 16 bit (memoria indirizzabile 64K) 3 banchi di memoria da 8K 2 banchi di memoria da 4K 8K-16K 48K 48K-56K A0 8K A12 A0 0K-4K 56K-64K A0 A0 8K A12 4K-8K A0 4K A11 4K A11 8K A12 A0 A1 P A13 A14 A14 A15 A15 0K-8K 8K-16K 16K-24K 24K-32K 32K-40K 40K-48K 48K-56K 56K-64K A12 7 1/8/2014 Decodifica degli Indirizzi Indirizzamento Lineare Indirizzi a 16 bit (memoria indirizzabile 64K) 3 banchi di memoria da 8K 2 banchi di memoria da 4K 48K 0K-4K A0 A0 A1 P A0 A0 4K A11 4K A11 A12 A13 A14 A14 A15 A15 8K-16K 4K-8K 48K-56K A0 8K A12 56K-64K A0 8K A12 8K A12 0K-4K 4K-8K 8K-12K 12K-16K 16K-20K 20K-24K 24K-28K 28K-32K 32K-36K 36K-40K 40K-44K 44K-48K 48K-52K 52K-56K 56K-60K 60K-64K Memory interleaving Per velocizzare l’accesso alle memorie DRAM la memoria può essere organizzata in modo che word relative a indirizzi consecutivi vengano poste in chip di memoria diversi In questo modo basta un unico RAS per più word consecutive ind Modulo RAS 0 0 0 1 1 0 2 2 0 3 3 0 4 0 1 5 1 1 6 2 1 7 3 1 Address Bus Modulo 0 Modulo 1 Modulo 2 Modulo 3 Data Bus 8 1/8/2014 Tipi di DRAM asincrona FPM-DRAM (Fast Page Mode) EDO-RAM (Extended Data out) Viene inviato una sola volta l'indirizzo di riga per più accessi consecutivi in memoria Bus a 66 MHz, temporizzazione 6-3-3-3 con memorie da 70 ns La negazione del CAS non disabilita i registri di uscita e i dati sono disponibili fino a quando non viene asserito il CAS. L'accesso può iniziare prima che sia stato concluso il precedente. Bus a 66 MHz, temporizzazione 5-2-2-2 con memorie da 50..70 ns BEDO-RAM (Burst Extended Data out) Una logica interna permette di generare autonomamente i tre indirizzi consecutivi al primo Bus a 66 MHz, temporizzazione 5-2-2-2 con memorie da 50..70 ns DRAM sincrone Sono caratterizzate da un'interfaccia sincrona Una volta inviati gli indirizzi la memoria esegue una serie di operazioni sincronizzate con il clock esterno e dopo un numero prefissato di cicli i dati vengono letti S-DRAM (Synchronous) I trasferimenti avvengono su un fronte del clock La SDRAM consente il trasferimento a burst Bus a 100 MHz, temporizzazione 6-1-1-1 9 1/8/2014 Confronto DRAM/SDRAM DDR-DRAM (Double Data Rate ) Sfrutta entrambi i fronti per trasferire i dati Permettono quindi un data rate doppio rispetto alle SDRAM tradizionali Di solito viene utilizzata un’architettura dove l’ampiezza del bus interno è doppia rispetto al bus esterno 10