Differenze tra le versioni di "Architetture dei processori/Cache"

m
+ categoria
m (Correzione errori comuni - Lista)
m (+ categoria)
{{avanzamento|100%}}
{{Architettura dei processori}}
 
I processori nel corso degli anni sono diventati sempre più veloci mentre le [[w:Memoria (informatica)|memorie]] per computer non hanno avuto un incremento paragonabile quindi mentre negli anni '70 le memorie erano significativamente più veloci dei processori dagli anni '90 in poi i microprocessori sono diventati molto più veloci delle memorie. Per impedire al processore di passare più del 90% del suo tempo ad attendere i dati dalla memoria si è deciso di dotare i processori di una ridotta quantità di memoria molto veloce dove conservare i dati utilizzati di frequente. Questa scelta deriva dalla constatazione del principio della località del software: sebbene i programmi utilizzino molta memoria in realtà passano più del 90% del loro tempo ad accedere sempre alle stesse locazioni.
 
Essendo le '''cache''' una copia della memoria la copia deve essere fedele ed aggiornata, disallineamenti tra ciò che si trova in cache e lo stato della memoria possono portare ad errori di elaborazione. Nel caso si voglia realizzare una cache che contenga anche i dati da elaborare bisogna progettare accuratamente il processore in modo da impedire disallineamenti tra lo stato della memoria e lo stato della cache. In un sistema con più processori infatti esistono appositi protocolli che invalidano il contenuto della cache di un microprocessore nel caso la cache non sia aggiornata con lo stato nella memoria. Questi meccanismi aumentano la complessità circuitale e riducono le prestazioni dei processori ma sono indispensabili per ottenere un'elaborazione corretta dei programmi.
 
Le prestazioni della cache dipendono moltissimo dalla scelta di un'adeguata politica di riempimento della stessa. Nella cache vanno memorizzati i dati utilizzati più di frequente e quindi i microprocessori includono dei circuiti che provvedono a scegliere i dati che nel futuro verranno probabilmente utilizzati. Sebbene vi siano stati molti studi teorici sull'argomento allo stato attuale l'algoritmo più utilizzato provvede a eliminare dalla cache i dati utilizzati meno di recente per sostituirli con i nuovi dati da caricare.
 
Quasi tutti i processori moderni inoltre suddividono le cache in cache dati e cache istruzioni. Questa suddivisione permette di ottimizzare la gestione della cache dato che usualmente il processore esegue sempre le stesse istruzioni mentre i dati possono cambiare con frequenza e quindi una suddivisione dei flussi evita conflitti tra dati che cambiano rapidamente e istruzioni che tendono ad essere sostituite con lentezza.
 
[[Categoria:Architetture dei processori|Cache]]{{Avanzamento|100%|29 dicembre 2008}}
8 469

contributi