Read Only Memory
La memoria a sola lettura, più conosciuta con l'acronimo ROM (acronimo del corrispondente termine inglese Read-Only Memory), è una tipologia di memoria informatica destinata a contenere dati in modo permanente, la sua principale caratteristica infatti è di essere memoria non volatile cioè in grado di mantenere memorizzati i dati anche se non è alimentata elettricamente. In questa tipologia di memoria informatica i dati vengono scritti nella sua fase di costruzione (ROM a maschera, CD-ROM, DVD-ROM, BD-ROM e HD DVD-ROM), oppure possono essere scritti (PROM e OTPROM) o scritti/riscritti (EPROM, EEPROM, EAROM e flash) anche successivamente ma attraverso procedure particolari.
Per quanto riguarda la tecnologia costruttiva la memoria a sola lettura può essere memoria a stato solido (utilizzata per contenere firmware), alcuni tipi di disco ottico (utilizzati per la distribuzione delle varie tipologie di software agli utenti), oltre a varie tipologie di memorie informatiche utilizzate ai primordi dell'informatica e oggi non più utilizzate.
L'acronimo ROM ha anche un'accezione più ristretta ma anche molto più diffusa, correntemente infatti nella maggior parte dei casi con l'acronimo ROM si fa riferimento a memoria a solo lettura esclusivamente a stato solido.
Tipologie di ROM
Memorie a stato solido
- ROM a maschera (anche chiamata MROM)
- Prima tipologia di ROM a stato solido realizzata. I dati vengono scritti nella ROM a maschera nella sua fase di costruzione. Comportava notevoli costi di produzione dovuti alla progettazione delle maschere per l'impiantazione ionica, richiedeva infatti di cambiare l'intera linea di produzione delle stesse ogni qual volta fosse necessario modificare anche una minima parte dei dati in essa contenuti.
- Evoluzione della ROM a maschera atta a ridurne i costi di produzione. Può essere scritta dall'utente successivamente alla sua costruzione attraverso un'apparecchiatura speciale ma una volta scritta non può più essere riscritta.
- Evoluzione della PROM. Può essere scritta e riscritta dall'utente successivamente alla sua costruzione. La cancellazione dei dati per l'operazione di riscrittura avviene mediante esposizione ai raggi UV.
- La OTPROM è una EPROM priva di finestra al quarzo, quindi è possibile scriverla una sola volta come la PROM. Nei casi in cui la possibilità di riscrittura non è richiesta la OTPROM ha sostituito quasi totalmente la PROM in quanto può essere scritta con le attrezzature utilizzate per la EPROM.
- Evoluzione della EPROM. Può essere scritta e riscritta dall'utente successivamente alla sua costruzione. La cancellazione dei dati per l'operazione di riscrittura avviene elettricamente mediante tensioni più elevate (20-30 volt) rispetto a quelle di funzionamento normale.
Dischi ottici
ROM a stato solido
Caratteristiche generali
La struttura delle memorie ROM si può schematizzare come un decodificatore di indirizzo e un codificatore realizzato a matrice di diodi, transistor a giunzione bipolare (BJT) oppure transistori MOSFET.
Il codificatore a matrice di diodi, BJT o MOSFET ha a sua volta la struttura di una griglia; ogni cella corrisponde ad una locazione di memoria in cui viene scritto il bit in fase di costruzione.
Le linee di indirizzo vengono inviate al decodificatore di indirizzo: esso ha il ruolo di attivare la riga e la colonna corrispondente alla cella di memoria di cui si vuol leggere il dato.
In alcune memorie non necessariamente occorrono due decodificatori; in quelle a bassa capacità basta un decodificatore di riga.
Esempi di memorie ROM
Le memorie illustrate qui sotto servono a capire il funzionamento generale di una memoria ROM; quelle in commercio hanno stessi princìpi di funzionamento, ma sono sicuramente più complesse di queste sotto esposte.
ROM a diodi
La memoria in figura è una memoria a matrice di diodi. Essa è costituita, come illustrato sopra, da un decodificatore di riga a tre bit (l'intera parte di circuito a sinistra, terminante con la serie di porte AND) e dal codificatore a matrice di diodi. È evidente la sua struttura a griglia.
Per ognuna delle otto combinazioni delle tre linee di indirizzo A0, A1, A2 in ingresso al decodificatore, si abilita una sola delle otto uscite del decodificatore. I diodi di quella riga trasferiscono il livello logico alto alla rispettiva colonna; i diodi delle altre righe sono interdetti perché l'anodo è sicuramente a potenziale zero.
Questa è la tabella della verità della memoria illustrata in figura:
0 | 0 | 0 | 1 | 0 | 0 | 1 |
0 | 0 | 1 | 1 | 1 | 1 | 0 |
0 | 1 | 0 | 0 | 1 | 0 | 0 |
0 | 1 | 1 | 1 | 0 | 1 | 0 |
1 | 0 | 0 | 0 | 1 | 1 | 1 |
1 | 0 | 1 | 0 | 0 | 1 | 1 |
1 | 1 | 0 | 1 | 1 | 0 | 0 |
1 | 1 | 1 | 1 | 0 | 0 | 0 |
Come si evince dalla tabella, abilitata una riga, se è presente un diodo si ha un livello logico alto nella colonna corrispondente, se il diodo non è presente, si ha un livello logico basso.
Difetto delle memorie ROM a diodi è la lentezza del loro funzionamento.
ROM a BJT
La memoria in figura è una memoria ROM a transistor BJT. Tutti i collettori dei transistor sono collegati all'alimentazione + Vcc, alle basi arrivano le linee di uscita di un decodificatore (non rappresentato in figura), e infine alcuni emettitori sono collegati alle linee di uscita Y1, Y2, Y3, altri non lo sono. I transistor lavorano come interruttori elettronici, perciò o sono in saturazione (interruttore chiuso), o sono interdetti (interruttore aperto).
In base alla combinazione del prodotto A1xA0, viene attivata una linea in ingresso (riga) alla volta: tutti i transistor con base collegata a quella riga vengono eccitati. Se gli emettitori sono collegati alla colonna corrispondente, essendo i transistor in saturazione, il potenziale +Vcc (corrispondente ad un livello logico alto) viene transferito alle uscite corrispondenti a ciascun transistor. Per la memoria in figura,
- con A1=0 e A0=0 viene eccitata la prima riga; quindi
Y3 Y2 Y1 = 1 1 1
- con A1=0 e A0=1 viene attivata la seconda riga; quindi
Y3 Y2 Y1 = 1 1 1
- con A1=1 e A0=0 viene attivata la terza riga; quindi
Y3 Y2 Y1 = 1 1 1
- con A1=1 e A0=1 viene attivata la quarta riga; quindi
Y3 Y2 Y1 = 1 1 1
In fase di costruzione di una memoria ROM a BJT l'atto di collegare o meno l'emettitore di un transistor alla colonna corrispondente equivale quindi a mettere o meno un diodo in una memoria ROM a matrice di diodi.
Le memorie ROM a BJT, a differenza di quelle a matrice di diodi, hanno una maggior velocità di funzionamento.