Scritture nella cache, esclusività e coerenza

Come influisce la cache L3 sulle prestazioni di una CPU?

Avatar di Tom's Hardware

a cura di Tom's Hardware

Scritture nella cache, esclusività e coerenza

Le politiche di sostituzione dettano quanto spazio viene recuperato in una cache per nuove scritture. Poiché  i dati scritti nella cache devono essere disponibili - eventualmente - nella memoria principale, i sistemi possono farlo allo stesso tempo (write-through) o contrassegnare le locazioni di memoria come write-back ed eseguire la scrittura una volta che il dato è stato eliminato dalla cache.

I dati su diversi livelli di cache possono essere immagazzinati in maniera esclusiva, il che significa che non esistono ridondanze. Non troverete lo stesso dato in due differenti strutture cache. Alternativamente, le cache possono operare in maniera inclusiva, con livelli ridotti che garantiscono d'intrappolare il dato trovato in livelli di cache più elevati (vicini al processore). Il Phenom di AMD lavora con un cache L3 esclusiva, mentre Intel segue una strategia inclusiva. I protocolli di coerenza si prendono cura di mantenere i dati su livelli multipli, core e persino processori.

Capacità della cache

Cache più capienti possono memorizzare più dati, ma tendono anche a introdurre maggiore latenza. Poiché la cache è la parte che necessità di più transistor nel processore, è importante trovare un bilanciamento vitale tra transistor, dimensione del die, consumi e i problemi di prestazioni/latenze.

Associatività

Gli accwessi alla RAM possono essere mappati direttamente, il che significa che ci può essere una sola posizione nella cache per copie dalla memoria principale, o forse devono essere "n-way" associative, che sta per n possibili posizioni nella cache per immagazzinare i dati. L'associatività più alta (fino a cache completamente associative) forniscono la migliore flessibilità, perché la cache dati esistente non deve essere sovrascritta. In altre parole, un'associatività n-way elevata garantisce hit rate superiori, ma introduce maggiore latenza, poiché impiega più tempo a confrontare tutte queste associazioni. Ultimamente ha senso implementare un'associatività "many way" per l'ultimo livello di cache.

Qui alcuni esempi: Core i5 e i7 lavorano con 32 KB di cache L1 dati 8-way associativa e 32 KB di cache L1 instruction 4-way associativa. Chiaramente, Intel vuole che le istruzioni siano disponibili più rapidamente mentre vuole massimizzare gli hit nella cache dati L1. La cache L2 è anch'essa 8-way set-associative, mentre la cache L3 di Intel è persino più furba, implementando una memoria associtività 16-way per massimizzare gli hit nella cache.

Tuttavia, AMD segue un'altra strategia con il Phenom II X4, con una cache L1 2-way set-associative, che offre latenze inferiori. Per compensare i possibili miss, integra il doppio della capacità: 64KB dati e 64KB instruction. La L2 è 8-way set-associative, come Intel, ma la cache L3 di AMD è a 48-way. Nessuna di queste scelte può essere giudicata senza considerare l'architettura generale della CPU.

Leggi altri articoli