Le memorie Introduzione Una memoria è un sistema elettronico in grado di immagazzinare dati in forma binaria, per poi renderli disponibili ad ogni richiesta. Tale sistema è costituito da un insieme di celle elementari capaci di memorizzare un solo bit (0 o 1). Normalmente essa è formata da numerose celle che permettono la memorizzazione di grossi quantitativi di dati. Le memorie sono costruite mediante la tecnologia elettronica dei circuiti integrati (LSI o VLSI), e sono classificate in base alla tecnologia di fabbricazione della singola cella: memoria bipolare BJT (tecnologia bipolare BJT: Bipolar Junction Transistor), realizzate con transistor BJT. Tali memorie hanno tempi di accesso ai dati molto bassi, ma non offrono la possibilità di ottenere chip con grandi capacità. memoria MOS (tecnologia unipolare MOS: Metal Oxide Semiconductor), In base al tipo di transistore usato si distinguono in N-MOS (a canale N). C-MOS (coppia complementare, uno a canale N l altro a canale P). Permettono di ottenere grosse capacità di integrazione, ma sono meno veloci rispetto a quelle di tipo bipolare. Tuttavia le nuove tecnologie hanno permesso di realizzare memorie MOS sempre più veloci, e con elevatissime scale di integrazione. Pertanto le memorie di tipo MOS possono essere considerate attualmente le più diffuse. Figura 1. Memorie di vario tipo, SIM 30, DIM, e SIM 72 Un altra classificazione delle memorie è quella in base alle loro caratteristiche funzionali, ossia secondo le modalità con cui si può accedere al dispositivo: 1. Memorie a sola lettura dette anche non volatili sono quelle in cui l utente ha la possibilità solo di leggere i dati memorizzati dal progettista di sistemi. Sono dette non volatili perché mantengono i dati al loro interno anche quando non sono più alimentate. A tale tipo appartengono: le ROM, le PROM, le EFROM, le EEPROM, le EAROM. 2. Memorie a lettura e scrittura dette anche volatili, sono quelle in cui l utente può scrivere i dati e rileggerli senza alcuna limitazione. Sono dette volatili perché perdono il loro contenuto una volta che sono scollegate dalla sorgente di alimentazione. Appartengono a tale tipo: le RAM statiche, e le RAM dinamiche.
La struttura interna di una memoria ha le celle elementari disposte a matrice: ogni singola cella è raggiungibile da un indice di riga e da un indice di colonna. Quindi per accedere ad una cella bisogna prima selezionare la riga e la colonna e poi effettuare l operazione di lettura o scrittura del bit. Con l utilizzo di due decodificatori, se r rappresenta il numero delle linee in ingresso al decoder delle righe, e c il numero delle linee in ingresso al decoder delle colonne, il numero N di celle selezionabili è pari a: N 2 Supponendo di utilizzare 8 bit per il decoder di riga e 8 bit per quello di colonna, si ottiene un unico numero a 16 bit detto indirizzo che permette di selezionare ognuna delle celle elementari di memoria. Si definisce capacità di una memoria il numero massimo di bit che possono essere memorizzati nella memoria stessa, ovvero N. In realtà nelle memorie commerciali le celle elementari di una stessa riga sono raggruppate per formare una cosiddetta locazione o parola di memoria di 4, 8, 16, 32 bit. Ad esempio una memoria di capacità di 4096 bit può essere organizzata in diversi modi: 4096 parole di 1 bit (4096 x 1), matrice 64x64=4096 locazioni di 1 bit, 64 righe e 64 colonne; 1024 parole di 4 bit (1024 x 4), matrice 64x16=1024 locazioni di 4 bit, 64 righe e 16 colonne; 512 parole di 8 bit (512 x 8), matrice di 64x8=512 locazioni di 8 bit, 64 righe e 8 colonne. r c Per progettare un sistema elettronico è importante conoscere il numero totale delle linee disponibili per selezionare le locazioni all interno della memoria, ovvero per definire gli indirizzi della memoria. Per dimensionare le memorie si usano i multipli del bit:
1 Kbit = 2 10 bit = 1024 bit; l Mbit = 2 20 bit = 1.048.576 bit; 1 Gbit = 2 30 bit = 1.073.741.824 bit. Spesso si utilizza come unità di misura il Byte, ovvero la parola di 8 bit: 1 kbyte = 2 10 byte = 1024 byte ( 8192 bit); 1 MByte =2 20 byte = 1.048.576 byte (8.388.608 bit); 1 GByte = 2 30 byte = 1.073.741.824 byte (8.589.934.592 bit). Le memorie RAM RAM (Random Access Memory) è il termine generico che identifica la memoria a lettura/scrittura usata in tutti i computer moderni. Si tratta di un componente in cui è possibile registrare temporaneamente bit e byte per poi rileggerli e che serve da deposito per immagazzinare i dati da elaborare e le operazioni che vanno eseguite sugli stessi. Nella RAM sono anche depositati i risultati parziali delle operazioni, che a quel punto diventano i dati di input per le operazioni successive. Le informazioni possono essere scritte, cancellate e riscritte sempre con la stessa velocità, senza che l efficienza diminuisca col crescere delle riscritture. L accesso è casuale perché le informazioni vengono recuperate sempre con la stessa velocità indipendentemente dalla posizione in cui si trovano all interno di questa memoria. Nei nastri magnetici, dove invece l accesso è sequenziale, bisogna far scorrere tutta la parte del nastro che precede il dato prima di poter recuperare l informazione. La RAM è la più veloce tra tutte le unità di memoria esistenti nel PC, ma a differenza dei dischi e dei nastri, è volatile e perde il suo contenuto non appena si spegne il computer. Essa viene fornita in numerose forme e i costruttori di hardware continuano a inventare nuovi metodi per rendere sempre più veloce l accesso alle informazioni che vi sono contenute. Quanto più è grande la memoria Ram di un computer e tanto più saranno veloci i software installati, i quali non dovranno memorizzare i dati temporanei sul disco fisso. La quantità di memoria scelta
per il proprio computer è molto importante poiché dalla RAM scelta dipenderanno gran parte delle prestazioni complessive del sistema. Per comprendere l'importanza della RAM basti osservare i tempi di accesso. La velocità della memoria varia dai 6 ns per la RAM a 333 Mhz (PC2700) ai 4,5 ns per la RAM a 466 Mhz (PC3700). Ovviamente, una velocità maggiore equivale a prestazioni più veloci nell'uso del software e minori tempi di attesa per l'utilizzatore del computer. La memoria a semiconduttore è un circuito integrato (chip) che ha diverse linee d ingresso e di uscita. Oltre alle linee di indirizzo si possono notare: Le linee dei dati: sono in numero pari alla lunghezza della parola in bit, possono essere unidirezionali o bidirezionali. Nel chip, le linee dati sono collegate ad un buffer three-state, dispositivo che può isolare il chip dal resto del sistema di cui fa parte. Il controllo CS: Chip Select o EN (Enable), permette al sistema di cui fa parte, di individuare univocamente il modulo di memoria a cui si vuole accedere. Il controllo R/W: presente solo nei chip di memoria che prevedono sia la Lettura che scrittura, consente di selezionare il verso del transito dei dati. In particolare quando questa linea è alla stato alto, viene abilitata una operazione di lettura (R=Read), mentre quando è allo stato basso viene abilitata una operazione di scrittura (W= Write). Per soddisfare richieste di maggiori capacita di memoria occorre utilizzare più chip di memoria commerciali di capacità standard e porli in parallelo. Memorie non volatili La Memoria ROM Memoria di sola lettura (Read Only Memory) Termine generico per indicare una memoria da cui si possono leggere informazioni registrate dal costruttore, ma nella quale non è possibile scrivere nulla. Nella ROM troviamo quel tipo di software che non deve mai essere cambiato, come il BIOS del PC, schede di controllo per le periferiche e le cartucce che vengono usate per alcune consolle di giochi e per altre apparecchiature programmabili. La ROM costituisce anche il deposito dei programmi applicativi che vengono forniti a corredo dei vari computer palmari (palmtop).
l alimentazione, 3. non è possibile cancellare tale contenuto accidentalmente. Il fatto d inserire i programmi in una memoria a sola lettura offre tre vantaggi: 1. non appena il computer parte i dati sono immediatamente disponibili al microprocessore senza bisogno di prelevarli da fonti periferiche (floppy disk o disco rigido), 2. il loro contenuto è permanente e perciò non va perduto nemmeno quando si toglie Alla pari della RAM, si tratta di una memoria ad accesso casuale perciò le informazioni che contiene possono essere recuperate velocemente. Sono realizzate sia in tecnologia BJT che in quella MOS (C-MOS e N-MOS). I tempi di accesso tipici sono di 100 ns (nanosecondi) per le memorie MOS e 10 ns per quelle bipolari. PROM Queste memorie, Programmable ROM, sono a differenza delle ROM, programmabili dal progettista di sistemi ed escono dalla fabbrica con tutte le celle allo stato logico alto. Con un dispositivo chiamato programmatore di PROM, si può cambiare lo stato delle singole celle bruciando alcuni collegamenti interni con impulsi di tensione (intorno ai 20V). La memoria PROM può essere programmata una sola volta perché non è più possibile ripristinare i collegamenti bruciati. Hanno gli stessi campi di applicazione delle ROM, ed i tempi di accesso tipici sono intorno ai 40 ns per quelle bipolari e 100 ns per quelle a MOS. EPROM Memorie a sola lettura programmabili e cancellabili (Erasable Programmable Read Only Memory) Un tipo di memoria a sola lettura programmabile (PROM) che può essere riprogrammata molte volte a condizione di cancellarne il contenuto precedente mediante esposizione ai raggi ultravioletti. L operazione di scrittura avviene in modo analogo a come si svolgerebbe per una normale memoria DRAM. Questi componenti montano una finestra di quarzo trasparente che lascia filtrare la luce all interno così che possa raggiungere il chip di silicio su cui sono registrati i dati. Si tratta di una memoria più complicate da cancellare e programmare della più recente EEPROM e perciò è ormai sostituita da quest ultima in molti campi applicativi, compreso quello dei computer.
I tempi di accesso variano dai 60 ns per i tipi più recenti e 350 ns per quelli meno recenti. Una grossa limitazione per questo tipo di memoria è che per correggere anche un solo bit si deve cancellare completamente e quindi riprogrammarla. EEPROM Il limite dei tempi di cancellazione piuttosto lunghi delle EPROM viene superato dalle EEPROM (Erasable Programmable ROM). Sono simili alle EPROM, con la differenza che sono cancellabili elettricamente senza dover far ricorso ai raggi ultravioletti, inoltre può essere fatta la cancellazione e la riscrittura anche di una sola cella. La possibilità di cancellare elettricamente il contenuto della memoria rappresenta un vantaggio matto importante perché consente di modificare i dati memorizzati senza rimuovere il chip dal sistema in cui è inserito. Il limite attuale delle EEPROM sta nella bassa capacità di memoria rispetto alle EPROM è il costo molto elevato. Attualmente questi svantaggi stanno per essere superati dalle memorie Flash che raggiungono capacita paragonabili a quelle delle EPROM e consentono la cancellazione veloce di un settore o dell intera memoria direttamente sul sistema in cui sono inserite.