La Cache

Cache sul computer


Un computer è una macchina molto veloce. Quando il microprocessore accede alla memoria principale (RAM) impiega circa 60 nanosecondi (1 secondo = 1 miliardesimo di secondo!). E' un tempo piccolissimo per noi ma molto grande se lo vediamo dal punto di vista del microprocessore che esegue un ciclo di clock in meno di 2 nanosecondi.

Cosa succederebbe se costruissimo una memoria più piccola ma molto veloce (diciamo con accessi intorno ai 30 nanosecondi)? Avremmo una memoria cache di secondo livello detta anche L2 cache. E se costruissimo un altra memoria ancora più veloce direttamente sopra al processore ? In questo caso avremmo una cache di primo livello (detta L1 cache) che potrebbe essere letta alla stessa velocità del processore. Su un Pentium a 233 MHz avremmo ad esempio un accesso alla cache L1 3.5 volte più velode della L2 che era già acceduta ad una velocità doppia rispetto alla normale RAM.

La cache comunque può essere differente e stratificata a seconda degli accessi che si vogliono migliorare. Ecco un esempio: Il microprocessore ha una cache di livello 1, che fa da cache a quella di livello 2 che fa a sua volta da cache alla memoria principale che a sua volta può essere usata come cache di periferiche quali hard disk e CD-ROM. L'hard disk può inoltre essere usato come cache di qualcosa ancora più lenta come ad esempio la connessione ad internet.

Quando navighi sulla rete, il tuo browser usa l'hard disk per salvare i dati delle pagine HTML a cui accedi, in una speciale cartella. La prima volta che vai su un sito, il tuo browser lo scarica, te lo mostra a video e lo salva anche nella directory di cui abbiamo parlato. Le volte successive in cui richiedi lo stesso sito, il browser prima di scaricare il file verifica (mediante la data) se è lo stesso dell'altra volta oppure una versione aggiornata. Se la data è la stessa il browser userà quello sull'hard disk invece di scaricarlo dalla rete ed impiegherà così molto meno tempo a mostrarti la pagina a video.

La cache viene usata anche sulle periferiche. Gli hard disk ad esempio vengono costruiti con una piccola memoria di circa 512 Kb che viene controllata direttamente dal controller dell'hard disk. Quando viene richiesto di leggere un dato sul disco, il controller verifica prima se il dato in questione è presente nella cache e nel caso lo fornisce immediatamente.

Ecco un test per vedere la cache all'opera. Il tuo computer usa la memoria principale come cache di molte cose tra cui il floppy drive. Prova ad aprire un file abbastanza grande (almeno 400Kb) dal floppy per due volte consecutive. La prima volta vedrai la luce del floppy accendersi e aspetterai per circa 20 secondi prima di avere a disposizione il file in questione.
La seconda volta ,il sistema operativo cercherà il file nella cache e trovandolo te lo mostrerà quasi immediatamente (senza effettuare alcun accesso al floppy).