La memoria di un Computer

Quanta ne occorre?


Una domanda comune che spesso sentiamo è la seguente: Perchè il PC ha bisogno di tanta memoria ?. Un tipico computer ha:
Perchè così tante? La risposta a questa domanda ci farà capire meglio come funzionano le memorie.



Il flusso dei dati tra CPU, Cache memory, RAM e Memoria virtuale

Le CPU, veloci e potenti, hanno bisogno di accedere a grandi quantità di dati per massimizzare le loro prestazioni. Se una CPU non riesce a leggere i dati di cui ha bisogno, si ferma ed aspetta! Le moderne CPU con velocità di diversi GigaHerts possono richiedere ed elaborare grandissime quantità di dati. Il problema è che dovrebbero esistere delle RAM spropositate (sia in termini di capacità che di costi) per poterli contenere tutti.

I progettisti hanno risolto questo problema mediante il tiering, ovvero usando piccole quantità di memoria costosa e quantità più grandi di memoria di costo ristretto.

La forma meno costosa di memoria in uso oggi è rappresentata dall' Hard disk. I dischi rigidi sono capaci di immagazzinare permanentemente grandissime quantità di dati anche se sono leggermente più lenti delle "vere" memorie. A causa prorpio di questa lentezza negli accessi, l'hard disk viene posto alla fine della gerarchia vista nella figura precedente con il nome di Memoria virtuale.

Il livello successivo della gerarchia è la RAM che abbiamo già discusso in Come funziona la RAM. A proposito di questo ci sono alcune cose importanti da dire:

La grandezza della CPU in termini di bits indica quanti bytes di RAM è possibile leggere. Per esempio le CPU a 16 bit possono leggere 2 byte di RAM per volta (16 bits = 2 bytes) mentre quelle a 64 bit ne possono leggere 8.

I MegaHertz sono l'unità di misura del processore della CPU, ovvero i cicli che può eseguire in un secondo. Alla luce di questo, se abbiamo una CPU a 32 bit e 800MHz di clock significa che in un secondo potremmo leggere 4 bytes X 800 milioni di volte!

La velocità elle RAM di sistema è controllata dal bus width e dal bus speed. Il primo si riferisce al numero di bits che possono essere inviati alla CPU simultaneamente mentre il secondo al numero degli invii in un singolo secondo.
Il bus cycle si verifica ogni volta che c'è un passaggio di dati tra CPU e memoria. Ad esempio, un bus a 32 bit e 100 Mhz può teoricamente inviare 4 bytes di dati per 100 milioni di volte in un seocndo. Un altro bus a 16 bit e 66 Mhz può invece inviare 2 bytes per 66 milioni di volte al secondo. Come puoi vedere quindi se nel tuo PC monti un bus piuttosto che un altro le prestazioni possono variare in modo incredibile. Nel nostro caso, il bus a 32 bit e 100MHz può inviare 400 milioni di bytes al secondo contro i "soli" 132 milioni del bus a 16 bits e 66 Mhz.

Nella realtà, una RAM non può operare al massimo della sua velocità a causa della latenza. La latenza è in pratica il numero di cicli necessari per leggere un bit di informazione. Per esempio, una RAM a 100MHz può inviare 1 bit in 0.00000001 secondi ma può aver bisogno di 0.0000005 secondi per iniziare il processo di invio. Per compensare queste latenze, le CPU usano delle tecniche particolari chiamate burst mode.