La memoria e il sistema di memorizzazione in un computer
La memoria in un computer
La memoria è quella parte del calcolatore in cui sono immagazzinati i programmi ed i dati. Senza una memoria in cui i processori possano leggere e scrivere informazioni, non esisterebbero calcolatori digitali con programmi memorizzati.
La memoria rappresenta una parte essenziale nonché una delle chiavi di successo (assieme alla capacità di processamento e alla riprogrammabilità) del computer grazie alla possibilità di memorizzare, nei moderni sistemi elettronici, grandi quantità di dati. In essa sono memorizzati dati d’archivio dell’utente e le istruzioni dei programmi facenti parte del software di base o applicativo.
Una memoria in un computer può essere considerata astrattamente come una sequenza finita di celle in cui ogni cella contiene una sequenza finita di bit, normalmente gestiti a gruppi di otto detti byte. Pertanto lo spazio fisico della memoria può essere immaginato come una sequenza di posizioni, ognuna contenente un byte. Ogni posizione è individuata da un preciso indirizzo di memoria, normalmente espresso tramite un numero intero positivo. Ad oggi la tecnologia implementativa di gran lunga più usata è la memoria elettronica, la memoria magnetica e quella ottica.
Sistema di memorizzazione e i bit
L’unità fondamentale della memoria è la cifra binaria, detta bit. Ogni bit può contenere uno 0 oppure un 1. E’ dunque l’unità più semplice possibile da memorizzare ed elaborare.
Spesso si dice che i calcolatori usano l’aritmetica binaria perché è più efficiente; in realtà, l’aritmetica binaria gode di due pregi: l’efficienza e l’affidabilità. Cominciamo proprio dall’affidabilità: l’informazione digitale può essere memorizzata distinguendo tra i diversi valori di qualche grandezza fisica continua (o, meglio, analogica), come la tensione o la corrente; quanti più valori devono essere distinti, tanto meno separazione esisterà tra valori adiacenti e quindi tanto meno la memoria sarà affidabile; allora, nel caso del sistema di numerazione binaria, i valori da distinguere sono solo due, il che lo rende il sistema più affidabile possibile per la codifica delle informazioni.
Talvolta, si pubblicizzano alcuni calcolatori, come i grandi mainframe IBM, dicendo che sono dotati dell’aritmetica decimale oltre che di quella binaria. Il “trucco”, in questa affermazione, è semplice: si usano 4 bit per memorizzare una singola cifra decimale, secondo una tecnica chiamata BCD (Binary-Coded Decimal). Evidentemente, dato che 4 bit forniscono 24=16 combinazioni, 10 di queste sono usate per le 10 cifre decimali (da 0 a 9), mentre le rimanenti 6 rimangono inutilizzate. Così facendo, ad esempio, il numero 1944 sarà codificato nel modo seguente:
sistema decimale: 0001 1001 0100 0100
sistema binario: 0000011110011000
In entrambi i casi, sono stati usati 16 bit, ma con una differenza fondamentale: i 16 bit del formato decimale possono memorizzare solo i numeri da 0 a 9999, permettendo cioè solo 10000 combinazioni, mentre invece i 16 bit binari consentono di rappresentare 65536 diverse combinazioni, ossia più di 6 volte tanto. Per questa ragione si dice che l’aritmetica binaria è più efficiente.
Gli indirizzi di memoria
La memoria principale di un calcolatore è costituita da un numero di celle (o locazioni), ognuna delle quali può immagazzinare un elemento di informazione. Ogni cella è individuata da un proprio numero (detto indirizzo) con il quale i programmi possono riferirsi ad essa. Se una memoria ha N celle, allora tali celle avranno indirizzi compresi tra 0 e N-1.
Ogni cella di memoria contiene lo stesso numero di bit. Se una cella contiene K bit, allora essa può contenere una qualsiasi delle 2K combinazioni diverse di tali bit. Le celle adiacenti hanno ovviamente indirizzi consecutivi.
I calcolatori che usano l’ aritmetica binaria esprimono anche gli indirizzi di memoria tramite numeri binari. Ad esempio, se un indirizzo di memoria binario è costituito da M bit, significa che il numero massimo di celle direttamente indirizzabili è 2M. Il numero di bit nell’indirizzo è dunque collegato al numero massimo di celle direttamente indirizzabili, ma invece non dipende affatto dal numero di bit per ogni cella. Ad esempio, una memoria con 212 celle ciascuna da 8 bit avrebbe bisogno di indirizzi a 12 bit così come una memoria con 212 celle da 60 bit: ciò che conta è il numero di celle e non la loro dimensione.
La cella è l’unità indirizzabile più piccola. Negli ultimi anni, molti costruttori hanno standardizzato celle a 8 bit, dette byte. A loro volta, i byte sono raggruppati in parole. Il numero di byte costituenti una parola varia da calcolatore e calcolatore: ad esempio, un calcolatore con una parola a 16 bit ha evidentemente 2 byte/parola, mentre invece un calcolatore con una parola a 32 bit ha evidentemente 4 byte/parola (questo è il caso oggi più comune e frequente nei computer).