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?
risposta
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.
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.
- 1. WPF VirtualizingStackPanel per prestazioni migliorate
- 2. Prestazioni Ehcache su un cluster di grandi dimensioni
- 3. Perché le dimensioni dei blocchi Unix aumentano con le dimensioni della memoria più grandi?
- 4. Il caching migliora sempre le prestazioni?
- 5. chiave pitone in dict.keys() prestazioni per dizionari di grandi dimensioni
- 6. Prestazioni di Windows fsync (FlushFileBuffers) con file di grandi dimensioni
- 7. Rimuovere le righe ricorrenti dal file di testo con prestazioni migliorate
- 8. Le dimensioni di una classe java influenzano le prestazioni dell'applicazione
- 9. Problemi di prestazioni nella scrittura di file di grandi dimensioni?
- 10. Come ottimizzare le prestazioni dell'operazione basata su elementi su un array di grandi dimensioni in C#
- 11. Prestazioni LINQ per grandi collezioni
- 12. Come posso verificare le prestazioni della query mongodb senza cache
- 13. Java file di grandi dimensioni su disco IO Prestazioni
- 14. Sovraccarico delle prestazioni di grandi dimensioni classe C#
- 15. PyTables che si occupano di dati con dimensioni molto più grandi delle dimensioni della memoria
- 16. Scrive dati di grandi dimensioni per il problema di memorizzazione nella cache dei file
- 17. Forzare deallocazione di oggetto cache di grandi dimensioni in Java
- 18. Scarse prestazioni con elenchi Java di grandi dimensioni
- 19. Prestazioni di Firebase con set di dati di grandi dimensioni
- 20. Perché FFMPEG crea sempre file WebM di grandi dimensioni?
- 21. Perché le dimensioni della mia unione sono più grandi di quanto mi aspettassi?
- 22. Prestazioni del Clojure, loop elevato su vettori di grandi dimensioni
- 23. CASE vs più query UPDATE per set di dati di grandi dimensioni - Prestazioni
- 24. C# - Memoria di grandi dimensioni
- 25. Le dimensioni degli aggiornamenti delle app per iOS sono molto più grandi delle dimensioni delle app
- 26. Come memorizzare nella cache di oggetti di grandi dimensioni utilizzando la cache Redis
- 27. Come funzionano le linee cache?
- 28. Ottimizzazione delle prestazioni iOS: il modo più rapido per ottenere il colore dei pixel per le immagini di grandi dimensioni
- 29. C++: Miglioramento delle prestazioni della cache in un array 3d
- 30. System.ServiceModel.CommunicationException - Dimensioni messaggio grandi
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. –