Come lavora la cache
Home Come funziona il Computer Come lavora la cache

Come lavora la cache PDF Stampa
Venerdì 29 Novembre 2013 16:54

Prendiamo, ad esempio, una persona che sta mangiando e che è come un processore che richiede dati su cui operare dalla memoria principale. La cucina dove il cibo viene preparato è la RAM, il controller della cache è il cameriere, e la cache L1 è il tavolo dove siete seduti.

Arriva, si siede e ordina una bistecca. Per mantenere credibili le proporzioni, diciamo che mangia a una velocità di un boccone (byte?) ogni quattro secondi (233 MHz = un ciclo di circa 4 ns), e che alla cucina servono 60 secondi per preparare ogni singolo piatto - i 60 ns della memoria principale.

Dopo aver ordinato bisogna quindi aspettare 60 secondi per la preparazione del piatto. Dopo che il cameriere lo ha consegnato il cliente lo consuma con la consueta velocità, e poi ne chiede un'altra. Altri 60 secondi di attesa, e la procedura si ripete anche per il successivo piatto di patatine e per il dolce. Il nostro cliente immaginario ha passato molto tempo ad aspettare e pochissimo a mangiare.

Alla terza sera il cameriere inizia a pensare, "questa persona viene sempre alla stessa ora e ordina sempre le stesse cose. Perché non preparare il cibo in anticipo in modo da sorprenderlo? Forse otterrò una bella mancia".

Ed ecco che il cameriere porta subito il piatto, senza attesa! Non appena state finendo la bistecca per ordinarne una seconda il cameriere vi anticipa mettendovi la seconda bistecca nel piatto. Il resto del pasto continua nello stesso modo: il cliente mangia un pasto intero ingurgitando un boccone ogni quattro secondi, ma senza aspettare che la cucina prepari il cibo. Tutto grazie all'intelligenza e dell'attenzione del cameriere.

L'esempio del ristorante descrive la funzione della cache L1 nel processore. La cache L1 di per sé è un tavolo che può contenere uno o più piatti di cibo. Senza un cameriere, lo spazio sul tavolo è un semplice buffer del cibo. Quando è rifornito potete mangiare fino a quando il buffer si svuota, ma nessuno sembra essere abbastanza intelligente da riempirlo. Il cameriere è il controller della cache che entra in azione e aggiunge l'intelligenza per decidere quali piatti vanno collocati sul tavolo prima che il cliente li ordini. Come un controller reale della cache, usa la propria preparazione per indovinare (letteralmente) quale cibo richiederete successivamente e se indovina, non dovrete più aspettare.

Diciamo che la quarta sera arrivate allo stesso orario e ordinate la bistecca di sempre. Il cameriere ha già preparato la portata richiesta, e non dovete aspettare. Finite la bistecca e mentre il cameriere vi sta già servendo la seconda, voi lo stupite chiedendo un piatto d'insalata. Il cameriere ha fatto un'ipotesi errata e la conseguenza è che stavolta dovete attendere 60 secondi per far sì che la cucina prepari la portata. Questo avvenimento è chiamato "cache miss", nel quale un controller non ha correttamente riempito la cache con il dato di cui il processore aveva bisogno poco dopo. Il risultato è l'attesa, o nel caso del computer con il Pentium 233 MHz il passaggio a 16 MHz - velocità della RAM - ogni volta che avviene un "cache miss".

Secondo Intel la cache L1 nella maggior parte dei suoi processori indovina nel 90% dei casi. Questo significa che la cache ha il dato il risultato corretto il 90% del tempo, e di conseguenza il processore opera al massimo della velocità (233 MHz in questo esempio) il 90% del tempo. Il 10% del tempo il controller della cache sbaglia e il dato deve essere recuperato dalla memoria principale molto più lenta, il che significa che il processore deve aspettare. Questo essenzialmente rallenta il sistema alla velocità della RAM, che in questo esempio era 60 ns o 16 MHz. In questa analogia il processore era 14 volte più veloce della memoria principale.

Continua a leggere Cache Level 2 e Level 3

VIA

miglior sito

Ultimo aggiornamento Sabato 14 Dicembre 2013 03:47
 
Altri Articoli :

» Architettura Dual Independant Bus

// // L'architettura Dual Independent Bus (DIB) è stata implementata per la prima volta nei processori di sesta generazione di Intel e AMD. DIB fu creata per migliorare il bandwidth e le prestazioni del bus del processore. Avendo due bus di I/O...

» Dynamic Execution

// // Usata per la prima volta nei processori P6 (o di sesta generazione) di Intel, l'esecuzione dinamica consentiva al processore di eseguire più istruzioni in parallelo, in modo da completare le operazioni più rapidamente. La tecnologia è...

» Tecnologia MMX: SSE e 3DNow!

// // La tecnologia MMX era originariamente nota come multimedia extensions o matrix math extensions. Intel afferma ufficialmente che non si tratta di un acronimo; una delle due definizioni precedenti potrebbe essere quella giusta. Questa tecnologia...

» Esecuzione superscalare

// // La quinta generazione di processori Pentium e le soluzioni successive hanno diverse pipeline interne per l'esecuzione di istruzioni, che consentono di far girare più istruzioni contemporaneamente. I chip 486 e precedenti possono eseguire una...

» Caratteristiche del processore

// // L'arrivo di nuovi microprocessori, la maggior parte delle volte, porta con sé nuove caratteristiche per migliorare le prestazioni con applicazioni specifiche o la stabilità complessiva del processore. Nelle prossime pagine daremo uno sguardo...

Aggiungi commento


Codice di sicurezza
Aggiorna