Come funziona una memoria ROM

Nel mondo dell’informatica, uno dei componenti chiave di qualsiasi sistema è la memoria. Tra le varie tipologie, la ROM occupa un ruolo fondamentale, specialmente nei primi computer e microcontrollori. In questo articolo esploriamo il funzionamento della ROM (Read-Only Memory), il suo ruolo all’interno di un sistema basato su microprocessore come lo Zilog Z80, e come interagisce con RAM e CPU.

La ROM è una memoria non volatile, cioè conserva i dati anche quando il dispositivo è spento. A differenza della RAM, che può essere letta e scritta continuamente, la ROM è progettata per essere soltanto letta dal processore. Questo la rende ideale per conservare dati o programmi che non devono cambiare, come il firmware o il sistema operativo di base.

 

 

In pratica, la ROM contiene tutto ciò che serve al computer per avviarsi: le istruzioni iniziali che il processore esegue appena accende. Nei primi home computer e nelle console, la ROM conteneva il BIOS, il sistema operativo, o addirittura i giochi stessi.

La ROM nel sistema con Z80

Il microprocessore Z80, molto diffuso negli anni ‘70 e ‘80, gestisce un bus indirizzi a 16 bit, il che significa che può indirizzare fino a 64 KB di memoria. In un sistema tipico basato su Z80, questo spazio viene diviso tra ROM e RAM.

Ad esempio, i primi 16 KB dell’intervallo di indirizzi possono essere assegnati alla ROM. All’accensione, lo Z80 comincia a eseguire codice a partire dall’indirizzo 0000h, che corrisponde fisicamente alla ROM. Le istruzioni presenti in quella zona avviano la sequenza di boot: inizializzano l’hardware, controllano eventuali periferiche, e infine caricano il sistema operativo o un programma nella RAM.

Il contenuto della ROM è statico, cioè scritto al momento della produzione o della programmazione del chip. Esistono però diverse varianti: la ROM “vera” è immodificabile, ma ci sono anche le PROM, EPROM e EEPROM, che permettono in vari modi di programmare o riprogrammare il contenuto, con appositi strumenti.

Come funziona la ROM a livello tecnico

Dal punto di vista elettrico, la ROM è una matrice di celle che possono solo essere lette. Quando il processore invia un indirizzo sulla linea degli indirizzi, la ROM restituisce immediatamente il contenuto associato a quell’indirizzo sul bus dati. Non sono previste operazioni di scrittura.

Nel caso del sistema Z80, la ROM è spesso mappata nella parte bassa della memoria. Durante l’esecuzione, una volta che la CPU ha terminato di eseguire le istruzioni della ROM iniziale, il controllo passa a programmi caricati in RAM. A quel punto, la ROM può anche rimanere inutilizzata per il resto del tempo, ma il suo ruolo è stato fondamentale per l’avvio del sistema.

La ROM è essenziale per fornire al sistema un punto di partenza fisso, mentre la RAM è utilizzata per elaborare dati in tempo reale. Si può pensare alla ROM come a un libro stampato: il contenuto è sempre lo stesso. La RAM, invece, è come una lavagna su cui scrivere e cancellare durante il lavoro.

Nei computer più avanzati o nei sistemi embedded, a volte viene implementato un meccanismo chiamato bank switching per sostituire dinamicamente la ROM con RAM negli stessi indirizzi, in modo da liberare spazio una volta terminata l’inizializzazione. Questo era particolarmente comune nei computer a 8 bit per superare i limiti di indirizzamento della CPU.

La ROM è uno dei pilastri fondamentali dell’architettura di qualsiasi computer. In un sistema con un microprocessore, la ROM fornisce le istruzioni iniziali necessarie all’avvio del sistema, rendendo possibile l’esecuzione dei programmi. In combinazione con la RAM e la CPU, la ROM permette di costruire un sistema completo e funzionante, anche con risorse limitate. Capire come funziona e perché è necessaria aiuta a leggere la storia dell’informatica con occhi nuovi, apprezzando l’ingegnosità dei sistemi del passato.

 

Leggi anche…

 

Come funziona una memoria EEPROM

Come funziona una memoria EPROM

Come funziona una memoria RAM