La misura della memoria e la rappresentazione dei dati
In un sistema di elaborazione qualunque informazione è rappresentata tramite dispositivi binari (cioè capaci di rappresentare due stati: acceso/spento, 0/1, vero/falso). La più piccola unità di rappresentazione delle informazioni è pertanto il bit (da BInary digiT). Il bit però, ai fini pratici, ha poco significato mentre molto più significativo, dal punto di vista dell’informazione rappresentabile, è il byte che è costituito da un insieme di 8 bit.
Con un byte (che permette di rappresentare 28 = 256 valori possibili), è possibile rappresentare qualunque lettera di un alfabeto occidentale, un suono fedele, i livelli di grigio per passare dal bianco al nero in modo che l’occhio pensi di vedere una sfumatura continua. Per questo motivo è considerata la quantità di informazione elementare.
Capacità di memoria
Per quanto riguarda la capacità di memoria valgono le seguenti uguaglianze:
- Byte si indica con il simbolo B
- 1024 B = 1 Kilobyte (KB)
- 1024 KB = 1 Megabyte (MB)
- 1024 MB = 1 Gigabyte (GB)
- 1024 GB = 1 Terabyte (TB)
Un sistema di elaborazione memorizza in modo diverso i numeri dai caratteri e inoltre, nel caso dei numeri, si comporta in modo diverso a seconda che si tratti di un intero o di un "decimale". Senza entrare nel dettaglio dell’argomento, vale la seguente classificazione in cui per ciascun tipo di dato, vengono usati sistemi diversi di rappresentazione.
- Intero
- Numero con virgola
- Tipo del dato carattere
Questo significa che per rappresentare il numero intero 4567 si usa un sistema diverso di quello utilizzato per rappresentare il numero 4567,0 o ancora per rappresentare la stringa (con il termine stringa, in informatica, si fa riferimento ad un insieme di caratteri) "4567".
Sorvolando sulle rappresentazioni numeriche, parliamo, a titolo di esempio, della rappresentazione dei caratteri. Fino a poco tempo fa, prima che l’informatica diventasse diffusa come oggi, si utilizzavano principalmente due sistemi, alternativi tra loro: la codifica ASCII (a 7 bit) o EBCDIC (a 8 bit). La codifica EBCDIC è capace di rappresentare 256 caratteri.
Codifica dei caratteri
ASCII Simbolo EBCDIC
- 00110111 7 11110111
- 00111000 8 11111000
- 00111001 9 11111001
- 01000001 A 11000001 …
- 01000010 B 11000010 …
- …
- 01100001 a 10000001
Si nota come la rappresentazione binaria di caratteri suscettibili di ordinamento, sia intenzionalmente costituita da numeri binari ordinati di conseguenza. La rappresentazione binaria di "A" è minore della rappresentazione binaria di "B" eccetera. Sfruttando tale accorgimento, possiamo procedere all’ordinamento di insiemi di parole.
La notevole diffusione che l’informatica ha registrato in questi ultimi anni, ha reso insufficienti queste rappresentazioni per caratteri appartenenti ad alfabeti quali il tedesco, l’ebraico o il cinese. Sono stati così definiti altri sistemi di rappresentazione. Il più diffuso tra questi è UNICODE con il quale si possono rappresentare circa 35000 caratteri diversi.
La gerarchia delle memorie
La quantità di informazioni che occorre avere in memoria (M in base allo schema di Von Neumann) dovrebbe essere relativamente capace. Purtroppo però una memoria siffatta è estremamente costosa senza contare il fatto che questa memoria ha un altro grave difetto: essa è volatile cioè perde il suo contenuto quando si ha una interruzione dell’energia elettrica.
Allo scopo di risolvere queste limitazioni, alla memorie M sono state affiancate memorie di altro tipo che, per le loro caratteristiche costruttive, non presentano la limitazione della volatilità, sono meno costose (anche se hanno tempi di accesso maggiori) e sono di grande capacità (teoricamente infinita). Per questo si parla di memoria centrale o primaria quando vogliamo riferirci a M, di memoria periferica o secondaria o di massa (o terziaria vedi oltre) per le memorie non direttamente accessibili da M (che nello schema di Von Neumann rientrano nelle generiche unità di I/O).