2013-02-19 19 views
8

Poiché la cache all'interno del processore aumenta la velocità di esecuzione dell'istruzione. Mi chiedo cosa succederebbe se aumentassimo la dimensione della cache in molti MB come 1 GB. È possibile? Se aumenterà la dimensione della cache, il risultato sarà sempre maggiore?Le dimensioni della cache più grandi portano sempre a prestazioni migliorate?

+0

Le dimensioni della cache sono importanti. per quanto riguarda le dimensioni, più istruzioni sul dado, ecco perché hanno 12 mb di cache L3. per amd è per i giochi, la cache si svuota e si ricarica non appena il processore lo usa. Ecco perché intel pensa. e Amd no. io preferisco comunque. –

risposta

3

Questa è una semplificazione, ma, una delle ragioni principali per cui la cache aumenta la "velocità" è che fornisce una memoria veloce molto vicina al processore - questo è molto più rapido da accedere rispetto alla memoria principale. Quindi, in teoria, aumentare la dimensione della cache dovrebbe consentire di memorizzare più informazioni in questa memoria "veloce" e quindi migliorare le prestazioni. Nel mondo reale le cose sono ovviamente molto più complesse di questa e ovviamente ci saranno aggiunta complessità e costi, associati a una cache così ampia e con problemi come coerenza della cache, algoritmi di cache ecc.

3

C'è un compromesso tra la dimensione della cache e la velocità di risposta su un lato e la latenza di lettura con il consumo energetico su un altro. Quindi la risposta alla tua prima domanda è: tecnicamente (probabilmente) possibile, ma improbabile che abbia senso, dato che la cache L3 nelle moderne CPU con dimensioni di pochi MB ha una latenza di circa dozzine di cicli.

Le prestazioni dipendono più dalla modalità di accesso alla memoria che dalla dimensione della cache. Più precisamente, se il programma è principalmente sequenziale, la dimensione della cache non è un grosso problema. Se ci sono molti accessi casuali (ad esempio quando vengono utilizzati attivamente i contenitori associativi), le dimensioni della cache sono davvero importanti.

Quanto sopra è vero per singoli compiti di calcolo. Nell'ambiente multiprocesso con diversi processi attivi, le dimensioni della cache più grandi sono sempre migliori, a causa della diminuzione della contesa tra processi.