Memorie - Le memorie sono dispositivi che consentono di immagazzinare e mantenere, in modo permanente o temporaneo, informazioni espresse in forma binaria. A seconda delle applicazioni, le memorie presentano caratteristiche tecnologiche e funzionali diverse. Oltre alle memorie di massa (floppy, hard-disk, CD-ROM), usate per immagazzinare grandi quantità di dati, particolarmente interessanti dal punto di vista circuitale sono le memorie a semiconduttore, ossia le memorie residenti nei sistemi di elaborazione o utilizzate in varie apparecchiature dell’elettronica di consumo. - La prima classificazione delle memorie a semiconduttore riguarda la modalità di accesso: - sequenziale, per cui i dati vengono letti o scritti in sequenza; - diretto o casuale (random), con cui si accede a qualsiasi dato selezionandolo direttamente mediante le linee indirizzo. - Una seconda classificazione distingue le memorie: - non volatili, in grado di mantenere permanentemente le informazioni (ROM e ROM programmabili di vario tipo); - volatili, nelle quali i dati rimangono memorizzati solo finché il circuito è alimentato (RAM di vario tipo). - Fra le caratteristiche principali di una memoria si devono considerare: - capacità, ossia il numero di locazioni di cui dispone, numero che in genere corrisponde a quello dei bit (o talvolta dei byte) che può contenere; - organizzazione, che esprime il numero di bit contenuti in ciascuna locazione ossia la larghezza della parola (word); - tempo di accesso, ossia l’intervallo compreso fra l’applicazione di un indirizzo e la disponibilità del dato sulle linee dati; - tempo di ciclo, il cui inverso esprime la frequenza massima con cui si può accedere alla memoria; - linee indirizzi, che consentono di selezionare una locazione in una memoria ad accesso diretto; - linee dati, che possono essere di ingresso (per la scrittura), di uscita tri-state (per la lettura) bidirezionali tri-state (per lettura e scrittura); - linee di controllo, costituite essenzialmente dalle linee CS (chip select: selezione del chip) e R/W (read/write: controllo lettura/scrittura nelle RAM). - Sovente più integrati o chip di memoria vengono combinati per ampliare la larghezza della parola o per espandere la capacità della memoria; si realizzano così moduli o banchi di memoria adatti al sistema in cui sono inseriti. - Le ROM (read only memory) sono memorie a sola lettura che possono essere scritte solo dal costruttore e il cui contenuto non può essere modificato. - Le PROM (programmable ROM) possono essere scritte direttamente dall’utente utilizzando speciali apparecchiature (programmatore di PROM) e il loro contenuto non può successivamente essere modificato. - Le EPROM (erasable PROM) o più precisamente UV-EPROM vengono scritte dall’utente mediante apposito programmatore e possono essere successivamente cancellate mediante esposizione ai raggi ultravioletti (UV) per essere riprogrammate. - Le EEPROM (electrically erasable PROM) o E2PROM sono simili alle UV-EPROM, ma sono cancellabili elettricamente; inoltre la cancellazione può non interessare l’intera memoria, ma essere selettiva. Una variante è costituita dalle memorie Flash, che offrono capacità e prestazioni superiori. - Le RAM (random access memory) sono memorie ad accesso diretto, volatili, che consentono la scrittura e la lettura durante il funzionamento del sistema su cui sono installate. Per tecnologia, struttura, funzionalità, si distinguono due categorie di RAM: - SRAM (RAM statiche), con celle elementari costituite da latch, che raggiungono velocità molto elevate e capacità dell’ordine di 4 Mbit. - DRAM (RAM dinamiche), le cui celle elementari sono costituite essenzialmente da un condensatore che, immagazzinando una certa quantità di carica, mantiene memorizzato un bit di valore 1. Poiché per conservare i bit memorizzati esse richiedono fasi periodiche di refresh, che ristabiliscano i valori di carica, sono denominate dinamiche. Le DRAM consentono velocità elevate e capacità molto superiori a quelle offerte dalle SRAM anche se l’esigenza di effettuare le fasi di rinfresco rende alquanto complesso il loro controllo. Per questo motivo vengono realizzati speciali controllori di memoria dinamica (DMC) che gestiscono l’indirizzamento e il refresh. Le esigenze di velocità imposte dalle prestazioni dei microprocessori di ultima generazione hanno spinto le case costruttrici a sviluppare memorie con elevata capacità, basso consumo e tempi di accesso inferiori a 10 ns, proponendo soluzioni tecnologiche e funzionali estremamente varie e innovative per le RAM statiche e per quelle dinamiche (ad esempio le SDRAM: syncronous DRAM). - Le RAM non volatili comprendono categorie di prodotti alquanto speciali adatti in applicazioni in cui è necessario disporre di una RAM per la modifica frequente e rapida di dati, ma è anche indispensabile mantenere i dati memorizzati quando il sistema non viene alimentato. Questa classe di memorie comprende: - NV-RAM, composte sostanzialmente da due matrici di memoria equivalenti, l’una di tipo E2PROM, che mantiene i dati quando l’alimentazione viene a mancare, l’altra costituita da una RAM statica, su cui si eseguono rapide operazioni di lettura e scrittura durante le normali fasi di lavoro. - SMART-RAM, che integrano nel contenitore una SRAM con una batteria al litio; questa interviene quando l’alimentazione scende sotto un certo limite, mantenendo così i dati. - Nelle memorie sequenziali o seriali la scrittura e la lettura dei dati avviene in modo seriale secondo una sequenza fissa; si distinguono le memorie di tipo: - FIFO (first in-first out), in cui il primo dato scritto è il primo che può essere letto; - LIFO (last in-first out), in cui l’ultimo dato scritto è il primo che può essere letto. - Fra le memorie sequenziali si possono ancora citare alcuni dispositivi di tipo dinamico con caratteristiche particolari. - Video RAM: note anche come dual port RAM, sono molto usate per il controllo dei terminali video; esse sono composte da una RAM dinamica, a cui si accede in modo diretto, e da un registro a scorrimento a cui si accede in modo sequenziale. - Memorie CCD (charge-coupled device): strutturate come un registro a scorrimento di tipo dinamico, consentono un’elevata densità di integrazione e sono usate principalmente nel campo dell’acquisizione ed elaborazione di immagini digitali.