Read Only Memory

In elettronica e informatica, una memoria a sola lettura, meglio nota come ROM (Read Only Memory), indica un tipo di memoria non volatile in cui i dati sono memorizzati tramite collegamenti elettronici fisici e stabili.

Contrariamente alla maggior parte delle unità di memoria di massa il suo contenuto non è modificabile durante il normale funzionamento, ma può esserlo, con diverse tecniche, in fase di progettazione, prototipazione o costruzione. Oppure, per talune applicazioni, il contenuto della memoria può essere aggiornato anche quando il componente è in esercizio. Nella memoria ROM detta anche rom di maschera perché scritta all'atto di fabbricazione del microprocessore in genere è contenuto microcodice, ovvero una serie di istruzioni macchina elementari.

Dalla nascita dei dispositivi mobili, il termine ROM ha assunto un significato più specifico, derivato da quello tradizionale.

Descrizione

Utilizzo del termine 
L'acronimo identifica in senso stretto le ROM a maschera, il cui nome deriva dal processo di litografia utilizzato nei circuiti integrati (chip), in cui una fotomaschera permette la creazione del chip. Il termine è tuttavia utilizzato anche per identificare memorie che possono essere cancellate e riprogrammate tramite processi particolari, che avvengono più raramente dei normali processi di lettura e scrittura che caratterizzano le restanti classi di memorie informatiche.

Di queste vi sono le memorie scrivibili una sola volta, come le PROM, e riscrivibili più volte, come le EPROM, EEPROM, EAROM e flash ROM.

Generalità 
A differenza degli altri elementi di memoria, le memorie a sola lettura non programmabili appartengono alla categoria dei circuiti combinatori, dal momento che in funzione degli ingressi forniscono diverse relazioni combinatorie. Si tratta comunque di circuiti di memoria, dal momento che memorizzano una specifica relazione tra gli ingressi e le uscite: per n bit in ingresso una ROM restituisce 2n combinazioni di m bit in uscita.

Gli elementi fisici di memoria utilizzati dalle ROM sono diodi o transistor, e la loro scelta dipende dalle caratteristiche di utilizzo del dispositivo; per applicazioni che richiedono bassi tempi di lettura si usano transistor a giunzione bipolare, mentre per memorie ad alta capacità si sfrutta la tecnologia a transistor ad effetto di campo.

Scrittura 

L'inglese tecnico usa il verbo flash per descrivere l'operazione di scrittura istantanea (o sovrascrittura) del contenuto di una memoria ROM (invece del consueto install) o, meglio, di una memoria flash. Pertanto, "ROM flashing" significa "copia rapida (di qualcosa) nella (memoria) ROM" o trasferimento rapido alla (memoria) ROM" o simili. In italiano, nel mondo IT, si rende con "flashare" (ad esempio nel caso dell'aggiornamento del firmware BIOS o UEFI) oppure per sovrascrivere nuovi firmware su dispositivi mobili. In pratica, il flashing (lett. "lampeggiamento") è l'installazione nel caso di un firmware.

L'impiego del termine flash (lampo in inglese) si spiega perché il processo di scrittura è "fulmineo" cioè molto veloce.

Architettura 
L'architettura delle memorie ROM è una matrice in cui ad ogni intersezione di riga e colonna vi è una cella di memoria, e può essere schematizzata come un decodificatore di indirizzo e un codificatore, realizzato a matrice di diodi o transistor, che possono essere sia a giunzione bipolare che ad effetto di campo. Ad ogni cella della matrice corrisponde una locazione di memoria in cui viene scritto il bit in fase di costruzione.

La lettura avviene tramite l'invio delle linee di indirizzo al decodificatore: esso ha il ruolo di attivare una riga della matrice del codificatore, la quale restituisce l'informazione contenuta nelle memorie allocate nelle intersezioni della riga selezionata e le colonne.

Di seguito si illustrano i tipi di ROM più comuni e la loro architettura in una schematizzazione semplificata rispetto alle ROM in commercio.

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:

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 trasferito 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 0
 con A1=1 e A0=0 viene attivata la terza riga; quindi
      Y3 Y2J Y1 = 1 0 1
 con A1=1 e A0=1 viene attivata la quarta riga; quindi
      Y3 Y2 Y1 = 0 1 1In 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.

Tipologia della memoria a sola lettura

Memorie a stato solido

Dischi ottici

Tipologia di ROM intesa nell'accezione più comune

ROM dispositivi mobili 
Esiste un altro uso del termine, comparso solo a partire dal decennio 2010. Questo significato di ROM è però un adattamento a quello originale ed è, a tale riguardo, improprio poiché fisicamente il contenuto della memoria sarebbe cancellabile e modificabile con mezzi ordinari. Infatti, nel mondo dei dispositivi mobili ci si riferisce spesso al sistema operativo installato sul dispositivo con il termine ROM. Pertanto, la ROM in questo caso è lo spazio occupato dal firmware sulla memoria in cui risiede (archiviata in una cartella di sistema e nascosta). Il motivo di questo utilizzo sta nel fatto che gli smartphone e i tablet, per loro natura, non possono (o non dovrebbero) subire delle modifiche in scrittura dei file e cartelle che formano il sistema operativo, da parte dell'utente. La ROM è formata dal sistema operativo più le applicazioni aggiunte dal produttore o dal provider nonché i contenuti di finitura (suonerie, temi, ecc.). Per la precisione, solitamente il produttore del dispositivo indica, tra le caratteristiche HD, la dimensione di memoria (interna) totale ovvero quella al lordo dello spazio allocato per il firmware (indicato anche come "contenuti preinstallati"). In pratica, la memoria interna utilizzabile dall'utente per l'archiviazione dei contenuti è minore di quella indicata dal produttore sulla scheda tecnica.

Attualmente, la dizione ROM associata al firmware è impropria dal punto di vista hardware perché ormai il firmware, protetto in scrittura via software, è installato su memorie con chip eMMC o UFS che non sono di tipo ROM, le stesse usate per l'archiviazione interna.

Nel mondo Android, ad esempio, sono distribuite le custom ROM (denominate con nomi dei progetti open source) da installare (flash) al posto di quelle compilate dai produttori dei dispositivi oppure sviluppate dai produttori stessi come nuova Interfaccia utente a partire da Android (o procedura di modding).

Note

Voci correlate 
 RAM
 EPROM
 EEPROM
 Programmable Read Only Memory
 EAROM
 Memoria flash
 Memoria (informatica) 
 Bootrom
 Uefi
 Dispositivo mobile

Altri progetti

Collegamenti esterni