La memoria

 

 

Vi sono due tipi di memoria: volatile e non volatile. Le memorie volatili perdono i loro dati quando manca in esse l’alimentazione, mentre le memorie non volatili sono in grado, attraverso sistemi diversi, di preservare i dati anche in assenza di corrente.

Sono considerate memorie non volatili anche i dischi, ma per una maggiore semplicità quando parlerò di memorie mi riferirò solo a quelle elettroniche.

 

 

 

Definizioni:

·        RAM (Random Access Memory). Le memorie RAM sono dette ad accesso casuale perché in esse vi si può scrivere o prelevare i dati senza doverne leggere tutto il contenuto, ma semplicemente spostandosi tramite un indice chiamato indirizzo;

·        ROM (Read Only Memory). Sono le memorie cosiddette di sola lettura, perché i dati in esse contenuti sono stati memorizzati dal costruttore durante la fase di creazione e possono solo essere letti dai programmi, ma non modificati. Per esempio le combinazioni dei caratteri dello schermo, formate da vari puntini, sono memorizzate in una memoria ROM sulla scheda video. Anche per le ROM vi è un indirizzo che identifica le celle di memoria;

·        PROM (Programmable ROM). Sono memorie programmabili attraverso specifiche apparecchiature che utilizzano diverse tecnologie. Una delle più comuni è quella di far attraversare le celle di memoria da un fascio di luce opportunamente calcolato;

·        EPROM (Erasable Programmable ROM). Oltre ad essere programmato, questo tipo di memoria può essere cancellato (resettato) in modo da risultare vuoto. Sia PROM che EPROM hanno bisogno di un’apposita apparecchiatura per scrivervi sopra, mentre normalmente si comportano come ROM.

 

Sulla scheda madre sono montati diversi tipi di memoria:

Vi è la memoria di base (o memoria convenzionale) di 640 Kb di tipo RAM, la memoria cache, di capacità diversa secondo i modelli, di tipo flash-RAM (RAM ultraveloce), la memoria estesa o espansa di tipo RAM, che è quella utilizzata dai programmi, la memoria ROM contenente diverse istruzioni di base ed il BIOS, di tipo EPROM, programmabile solo dal programma caricato all’avvio del sistema (BIOS Setup).

 

 

La memoria RAM

La memoria RAM installabile sul computer è formata da alcune schede particolari chiamate SIMM (Single Inline Memory Module) o DIMM (Dual Inline Memory Module). Le SIMM (Figura), non più utilizzate, potevano essere da 30 pin (piedini) o da 72 pin, mentre le DIMM utilizzano 168 pin ed hanno un accesso nettamente più rapido.
Le RAM più utilizzate sono le SDRAM (Sincronous Dynamic RAM). Lo standard RAMBUS, invece è utilizzato solo in alcune schede madri molto costose e serve per lo più alle Workstation (stazioni di lavoro), cioè computer che ne gestiscono altri.
Per aumentare ancora la velocità di accesso e la frequenza di lavoro recentemente sono state introdotte le RIMM (Row Index Memory Module) aventi un apposito slot (connettore) e le DIMM di tipo DDR (Double Data Rate). Vengono chiamate anche SDRAM-II.
 

 

Come si misura la memoria

Il bit, contrazione di bynary digit (cifra binaria) è l’unità più piccola di memorizzazione utilizzata nei circuiti elettronici. Quando nel circuito circola corrente, si dice che è a livello logico 1, altrimenti è a 0. Il valore della corrente non interessa minimamente chi si occupa di logica, ma solo i progettisti di hardware. Quindi, per esempio, per sapere se nel CD-ROM è presente un disco o per capire se è accesa la stampante, il programma che esegue il test verificherà un bit nell’apposita cella di memoria e lo confronterà con il valore 1.

Le informazioni che si possono memorizzare o trasmettere con due soli stati, sono solo 2 (0 o 1). Normalmente i bit si utilizzano raggruppati (in modo da formare delle combinazioni) in byte, cioè gruppi di 8 bit. Così le informazioni hanno un valore che può variare da 00000000 a 11111111 per un totale di 256 combinazioni (0-255 in numero decimale).

Il byte non è l’unica unità di memorizzazione, ma per convenzione, è la più piccola. Ciò vuol dire che se il mio programma ha bisogno di memorizzare lo stato di 3 celle di memoria utilizzerà solo 3 bit di un byte, lasciando gli altri 5 a 0, ma in memoria registrerà il byte intero. Infatti ogni cella di memoria contiene un byte e le istruzioni di lettura e scrittura trasferiscono un byte alla volta.

Oltre al byte esistono altre denominazioni per i raggruppamenti di bit, ma normalmente vengono utilizzate solo da chi programma:

- Nybble, formato da 4 bit (creato sperimentalmente, ma mai utilizzato);
- Word (parola), formata da 2 byte o 16 bit;
- Double Word (parola doppia), formata da 2 Word o 32 bit;
- Quadruple Word (parola quadrupla), 4 Word, cioè 64 bit.

Il byte non ha sottomultipli, ma solo multipli:

- Kb (Kilobyte):                   1024 byte;
- Mb (Megabyte):                1024 Kb = 1.048.576 byte;
- Gb (Gigabite):                    1024 Mb = 1.073.741.824 byte;
- Tb (Terabyte):                   1024 Gb = 1.099.511.627.776 byte.


Generalmente quando si parla di Kb s’intende migliaia di byte, tendendo ad approssimare 1024 con 1000. La ragione del fatto che 1Kb sia 1024 byte è da attribuirsi alla matematica binaria (in pratica 10 combinazioni di byte formano 1024 combinazioni di valori decimali ossia 2 elevato 10). Si capisce, così, come i CD-ROM da 650 Mb contengano di fatto 681.574.400 byte!

Negli anni i programmi si sono sviluppati a dismisura e, per essere eseguiti, hanno avuto bisogno di una quantità di memoria sempre maggiore. Una volta bastavano 640 Kb (655.360 byte) di RAM e tutti i computer ne erano equipaggiati. Sulla scheda madre troviamo ancora oggi i 640 Kb di memoria di base, affiancati agli alloggiamenti per le SIMM o le DIMM, ma la memoria di base è mantenuta solo per compatibilità verso vecchie apparecchiature e vecchi programmi che ne facevano uso. Le nuove mainboard rifiutano addirittura l’avviamento del sistema senza i moduli aggiuntivi SIMM o DIMM.

 

 

La logica della memoria


Lo spazio di memoria utilizzato dai programmi risiede fisicamente all’interno dei circuiti integrati. Per accedere ad ogni cella bisogna specificarne l’indirizzo tramite un identificatore la cui capienza (in termini di bit) è subordinata alla capacità del bus dati. Fisicamente le celle di memoria sono distribuite come su una griglia, ma un apposito circuito sulla scheda madre si preoccupa di rendere lineare l’indirizzo (come su una griglia composta da molte colonne ma una sola riga). In questo modo alla memoria vi si accede tramite un sistema logico e non fisico. Per comodità l’indirizzo è stato suddiviso in indirizzo principale, detto anche solo indirizzo, e un offset (scostamento).
L’indirizzo principale individua l’area di memoria di partenza. Per scorrere il blocco (individuato idealmente), si usa l’offset. Così, per accedere alla memoria video di testo, per esempio, si utilizza l’indirizzo B800 e, siccome il video può contenere 2000 caratteri (80 x 25) con i relativi 2000 attributi del carattere, la posizione viene specificata dall’offset con un numero che varia da 0 a 4000. In questo modo B800:0020 individua il decimo carattere, ma equivale a scrivere B820.

 

 

Torna alla Home page        Torna a Nozioni di base        Torna a Hardware