ELETTRONICA DIGITALE (2^ Parte) (8) Il sistema di memoria Elettronica Digitale (2^ Parte) 10-11_8 1 Memoria • Memoria interna o centrale o principale – ROM, PROM – RAM (SRAM, DRAM) • Memoria esterna o ausiliaria – Dischi rigidi (magnetici, ottici, magneto-ottici) – Floppy – Nastri – Cassette Elettronica Digitale (2^ Parte) 10-11_8 2 Memoria Centrale • La memoria è un blocco funzionale di tipo sequenziale complesso. • Serve per mantenere a tempo indefinito dati e programmi, e per permetterne l’accesso, in lettura o in scrittura. • Ha una struttura a vettore, i cui elementi sono le parole di memoria. • Ogni parola di memoria è una sequenza di bit, in numero fissato 1. Elettronica Digitale (2^ Parte) 10-11_8 3 Interfaccia di Memoria (1) • Il contenuto della memoria viene letto o scritto una parola per volta, in un ciclo di clock (più cicli in memorie lente). • Si accede a una parola di memoria (byte o più lunga) tramite la porta di accesso alla memoria. • La porta di accesso può funzionare in lettura e scrittura (caso più frequente), solo in lettura e teoricamente anche solo in scrittura (caso poco frequente). Elettronica Digitale (2^ Parte) 10-11_8 4 Interfaccia di Memoria (2) La porta di accesso alla memoria è costituita dai segnali seguenti: • ingressi di indirizzo, che codificano in binario l’indirizzo della parola dove si deve operare se la memoria ha capacità di 2m 1 parole, occorrono log2 2m ingressi di indirizzo • uscite / ingressi di dato, che servono per leggere / scrivere una parola: se la parola ha dimensione di n 1 bit, occorrono esattamente n uscite / ingressi di dato Elettronica Digitale (2^ Parte) 10-11_8 5 Interfaccia di Memoria (3) • Comando di lettura / scrittura, R/W (read/write) - R/W 1 lettura - R/W 0 scrittura Comando di abilitazione, CS (chip select): • -CS 1 chip attivo, si può accedere al contenuto • CS 0 chip in stato di riposo, non si può né leggere né scrivere Comando di abilitazione dati, OE (output enable): • OE 1 le uscite dati sono funzionanti • OE 0 le uscite dati sono isolate • Nel seguito si considererà essenzialmente il comando R/W, che può anche assumere le funzioni di CS e OE, abilitando chip e dati. Elettronica Digitale (2^ Parte) 10-11_8 6 Elettronica Digitale (2^ Parte) 10-11_8 7 Memoria • Memoria interna o centrale o principale – ROM, PROM – RAM (SRAM, DRAM) • Memoria esterna o ausiliaria – Dischi rigidi (magnetici, ottici, magneto-ottici) – Floppy – Nastri – Cassette Elettronica Digitale (2^ Parte) 10-11_8 8 Tipologie di Memorie allo stato solido RAM (Random Access Memory) Volatili Non Volatili SRAM (Static RAM) ROM (Read Only Memory) Masked ROM Flip-Flop Statiche Velocissime Cella Grande Costo per Bit Taglio ~ 100 Kbit Programmate in fonderia Costo per Bit OTP (One Time Programmable) Fuse - Antifuse EPROM (Electrically Programmable ROM) DRAM (Dynamic RAM) MOS Floating Gate Cancellabili mediante UV Capacità Dinamiche (Refresh) Veloci Cella piccola Costo per Bit Taglio ~ 100 Mbit EEPROM (Electrically Erasable Programmable ROM) MOS Floating Gate E-P Random Access R Lenta, E-P molto lenti Costo per Bit SDRAM (Synchronous DRAM) Capacità Accesso a burst Self Refresh Flash MOS Floating Gate P Random Access E a banchi R Lenta, P molto lenti, E lentissimo Costo per Bit Taglio ~ 100 Mbit Elettronica Digitale (2^ Parte) 10-11_8 9 Decodifica di Indirizzo • Per costruire memorie di capacità elevata, si aggregano componenti integrati di memoria con capacità inferiore. • Come primo passo, la matrice di celle da un bit può avere organizzazione diversa da quella dichiarata per la memoria ed esternamente visibile dall'utilizzatore. • L'indirizzo può essere decodificato in maniera parziale, o suddivisa. Elettronica Digitale (2^ Parte) 10-11_8 10 Indirizzamento Bi-dimensionale Address BUS Indirizzo della Riga Decoder di Riga Indirizzo della Colonna Decoder di Colonna Parola Indirizzata Elettronica Digitale (2^ Parte) 10-11_8 11 Elettronica Digitale (2^ Parte) 10-11_8 12 Elettronica Digitale (2^ Parte) 10-11_8 13 Elettronica Digitale (2^ Parte) 10-11_8 14 Elettronica Digitale (2^ Parte) 10-11_8 15 Elettronica Digitale (2^ Parte) 10-11_8 16 SRAM 512K x 8 Elettronica Digitale (2^ Parte) 10-11_8 17 Comandi di Lettura/Scrittura Elettronica Digitale (2^ Parte) 10-11_8 18 Altre Ottimizzazioni • La decodifica dell'indirizzo può anche essere effettuata in due momenti successivi: – indirizzo di riga per primo – indirizzo di colonna per secondo • Se si opera su parole di memoria collocate a indirizzi consecutivi, l'indirizzo di riga (o di colonna) non varia per diverse operazioni, lo si può tenere fisso e la decodifica è più veloce. • Occorrono segnali di controllo aggiuntivi per gestire questi schemi di decodifica più sofisticati Elettronica Digitale (2^ Parte) 10-11_8 19 Elettronica Digitale (2^ Parte) 10-11_8 20 Elettronica Digitale (2^ Parte) 10-11_8 21 Elettronica Digitale (2^ Parte) 10-11_8 22 Tecnologie di Memoria • Esistono svariate tecnologie di memoria. • Tali tecnologie dipendono da vari fattori: – capacità della memoria – tempo di accesso a una parola (in lettura o scrittura) – politica di accesso alla parola: • • • • lettura e scrittura sola lettura programmabilità sul campo immodificabilità – stabilità del contenuto: volatile o persistente – e costo del componente Elettronica Digitale (2^ Parte) 10-11_8 23 RAM Statica (SRAM) • Memoria RAM (Random Access Memory) realizzata come matrice di bistabili. • Capacità medio-piccola (da K a M parole). • Tempo di accesso molto breve (1 ns o meno). • Funziona sia in lettura sia in scrittura (non necessariamente alla stessa velocità). • Volatile: senza alimentazione il contenuto della memoria svanisce (si tampona con batteria). • Usi: svariati, in particolare come banco di registri interni di processore e come cache. • La cella di base (memorizzazione di 1 bit) è costituita da 6 transistor • Occupazione notevole • Consumo di potenza non trascurabile Elettronica Digitale (2^ Parte) 10-11_8 24 Memorie Statiche (SRAM) • La cella di base (memorizzazione di 1 bit) è costituita da 6 transistor • Tempi di accesso bassi (fino a 1 ns) • Interfaccia semplice • capacità, misurata in numero totale di bit memorizzabili sullo stesso chip • Occupazione notevole • Consumo di potenza non trascurabile • Utilizzata per i registri interni e per piccole memorie • Funzione: lettura e scrittura, solo lettura • Numero di porte di accesso Elettronica Digitale (2^ Parte) 10-11_8 25 Cella di Memoria RAM Statica Elettronica Digitale (2^ Parte) 10-11_8 26 RAM Dinamica (DRAM) La tecnologia DRAM usa solo circa 1,5 transistori per bit memorizzato. • Essa sfrutta il fenomeno dell’accumulo temporaneo di carica sul transistore. • Internamente il componente di memoria DRAM contiene un circuito di rinfresco che rigenera le cariche sui transistori prima che queste svaniscano. • La tecnologia memoria DRAM ha struttura molto regolare, e può raggiungere una densità di transistori estremamente elevata. • Capacità grande-grandissima (da M a G parole), Tempo di accesso medio (10 ns - 100 ns), lettura e scrittura. • Usi: numerossisimi, la memoria centrale dei calcolatori normalmente è DRAM. Elettronica Digitale (2^ Parte) 10-11_8 27 RAM Dinamica (DRAM) • Memoria RAM realizzata come matrice di transistori, ad altissima densità. • Capacità grande-grandissima (da M a G parole), non conviene farla piccola. • Tempo di accesso medio (10 ns - 100 ns). • Funziona sia in lettura sia in scrittura (non necessariamente alla stessa velocità). • Volatile: senza alimentazione il contenuto della memoria svanisce (batteria tampone). • Usi: numerossisimi, la memoria centrale dei calcolatori normalmente è DRAM. Elettronica Digitale (2^ Parte) 10-11_8 28 Cella di Memoria RAM Dinamica in genere realizzato con un transistore il circuito di rinfresco qui non è mostrato Elettronica Digitale (2^ Parte) 10-11_8 29 Cella di Memoria ROM • La memoria ROM (read only memory) ha contenuto fisso, non modificabile. • La cella di memoria ROM è una variante semplificata della cella RAM dinamica. • In sede di fabbricazione (o in seguito, secondo la tecnologia), lo stato del transistore che memorizza il bit viene definito in modo fisicamente persistente e non più modificabile. • Ciò equivale a fissare lo stato dell'interruttore (aperto o chiuso), in modo definitivo. • Capacità grande (da M a G). • Tempo di accesso medio (10 ns - 100 ns). • Funziona in sola lettura. • Usi: per memorizzare programmi permanenti, non modificabili (software di base, e simili Elettronica Digitale (2^ Parte) 10-11_8 30 Cella di Memoria ROM in genere realizzato con un transistore l'interruttore viene fabbricato in uno stato definito (aperto o chiuso) Elettronica Digitale (2^ Parte) 10-11_8 31 Memoria Programmabile sul Campo • Serie di tecnologie di memoria derivate dalla tecnologia ROM, con raffinamenti vari. • Capacità e tempo di accesso simili a ROM. • Funzionano in sola lettura e sono persistenti. • Ma sono programmabili sul campo (field programmable), cioè il contenuto della memoria è definibile dopo la fabbricazione. • In alcune di tali tecnologie, si può riprogrammare la memoria più volte. • Usi: piccoli volumi di produzione, prototipi. Elettronica Digitale (2^ Parte) 10-11_8 32 Memoria Programmabile sul Campo • La programmazione è un'operazione speciale: – si arresta il funzionamento normale della memoria – si sostituisce l'intero contenuto (non parte di esso) • La programmazione va fatta tramite una macchina programmatrice apposita: – PROM: programmabile una volta sola – EPROM: cancellabile più volte con raggi UV – EEPROM: cancellabile più volte elettricamente (si può anche scrivere un solo byte per volta) • In EEPROM il circuito di programmazione è integrato nella memoria stessa. Elettronica Digitale (2^ Parte) 10-11_8 33 Memoria FLASH • Tecnologia di memoria abbastanza recente con tempo di accesso simile a quello della tecnologia DRAM (o solo di poco peggiore). • Funziona sia in lettura sia in scrittura (la scrittura però è a blocchi di byte). • Persistente: il contenuto permane anche in assenza di alimentazione (per alcuni anni). • Molti usi e in rapido aumento: – dati multimediali (immagini statiche, sequenze audio e video) – programmi fissi ma periodicamente aggiornabili Elettronica Digitale (2^ Parte) 10-11_8 34 Tabella Riassuntiva tipo categoria modalità di scrittura cancellazione byte volatile usi specifici SRAM lett/scritt - si si cache DRAM lett/scritt - si si mem. centrale ROM sola lett nessuna no no grandi vol. PROM sola lett nessuna no no piccoli vol. EPROM sola lett luce UV no no prototipi EEPROM sola lett elettrica si (lenta) no prototipi FLASH lett/scritt elettrica a blocchi no multimedia Le memorie cancellabili vengono talvolta qualificate come “memorie prevalentemente a sola lettura” (read-mostly), invece che “a sola lettura” (read-only). Elettronica Digitale (2^ Parte) 10-11_8 35 Gerarchia di Memoria sistema di memoria gerarchico ruolo della memoria cache Elettronica Digitale (2^ Parte) 10-11_8 36 Concetto di Gerarchia • Si possono migliorare le prestazioni (la velocità) del calcolatore tramite il sistema di memoria, con il concetto di gerarchia di memoria: – diversi livelli di memoria, con tecnologie differenti in modo da ottenere un buon compromesso tra costo / capacità / prestazione (cioè rapidità di accesso) • Qui l'attenzione è sul sistema di memoria cache, che ha lo scopo di rendere rapida la memoria. • 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à: 1. Località spaziale: è altamente probabile che l’istruzione successiva sia contigua a quella che si sta eseguendo 2. Località temporale: poiché tutti i programmi hanno dei cicli in cui si fa altamente probabile che nel prossimo futuro venga di nuovo eseguita la stessa istruzione o si faccia riferimento allo stesso dato Elettronica Digitale (2^ Parte) 10-11_8 37 Gerarchia di Memoria • Struttura complessiva della gerarchia: – banco registri di processore: • tempo di accesso a una parola brevissimo ( 1 ns) • capacità limitatissima (8 - 1024 bit) – sistema memoria cache (primo e secondo livello): • tempo di accesso a una parola breve ( 1 ns) • capacità limitata (ordine di grandezza: da Kbyte a Mbyte) – sistema di memoria centrale: • tempo di accesso a una parola medio (10 - 100 ns) • capacità media (ordine di grandezza: da Mbyte - a Gbyte) – sistema di memoria di massa: • tempo di accesso a un blocco di parole lungo (1 - 10 ms) • capacità grande (ordine di grandezza: Gbyte - Terabyte) Elettronica Digitale (2^ Parte) 10-11_8 38 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 Elettronica Digitale (2^ Parte) 10-11_8 39 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) • Salendo di strato in strato nella piramide la capacità della memoria diminuisce e la velocità aumenta (e il costo per bit). • Ogni strato della piramide contiene in copia un sottinsieme (di blocchi o parole) del contenuto dello strato sottostante. Elettronica Digitale (2^ Parte) 10-11_8 40 Sistemi tecnologici Tre sottosistemi tecnologici: • registri interni del processore per dati e indirizzi dove lavorano correntemente le istruzioni: alta velocità bassa capacità • memoria primaria per programmi in esecuzione e dati in elaborazione corrente: serie di tecnologie, tutte elettroniche, veloci, capaci, volatili • memoria secondaria per programmi e dati in deposito permanente o di uso differito: tecnologie, magnetiche od ottiche, lente, molto capaci, persistenti (ma di basso costo per bit memorizzato) Elettronica Digitale (2^ Parte) 10-11_8 41