# Supercomputer/Cache

Supercomputer
Copertina Tutti i moduli · Sviluppo
* DefinizioneSupercomputer/Definizione
* StoriaSupercomputer/Storia
* Tassonomia di FlynnSupercomputer/Tassonomia di Flynn
* Calcolo paralleloSupercomputer/Calcolo parallelo
* HardwareSupercomputer/Hardware
* PipelineSupercomputer/Pipeline
* Processore vettorialeSupercomputer/Processore vettoriale
* CacheSupercomputer/Cache
* Uniform Memory AccessSupercomputer/Uniform Memory Access
* Non-Uniform Memory AccessSupercomputer/Non-Uniform Memory Access
* Raffreddamento a liquidiSupercomputer/Raffreddamento a liquidi
* RAIDSupercomputer/RAID
* SoftwareSupercomputer/Software
* Legge di AmdahlSupercomputer/Legge di Amdahl
* OccamSupercomputer/Occam
* MPISupercomputer/MPI
* PVMSupercomputer/PVM
* openMosixSupercomputer/openMosix
* Misura delle prestazioniSupercomputer/Misura delle prestazioni
* UtilizziSupercomputer/Utilizzi
* Elenco di computer: · Macchina AnaliticaSupercomputer/Macchina Analitica · ColumbiaSupercomputer/Columbia · ENIACSupercomputer/ENIAC · ILLIAC IVSupercomputer/ILLIAC IV · CDC 6600Supercomputer/CDC 6600 · CDC 7600Supercomputer/CDC 7600 · CDC CyberSupercomputer/CDC Cyber · CDC STAR-100Supercomputer/CDC STAR-100 · ETA10Supercomputer/ETA10 · TX-0Supercomputer/TX-0 · SAGESupercomputer/SAGE · Cray-1Supercomputer/Cray-1 · Cray-2Supercomputer/Cray-2 · Cray X-MPSupercomputer/Cray X-MP · IBM 7030Supercomputer/IBM 7030 · Zuse Z1Supercomputer/Zuse Z1 · Zuse Z2Supercomputer/Zuse Z2 · Zuse Z3Supercomputer/Zuse Z3 Elenco attuale dei 500 computer più potenti al mondo - TOP500Supercomputer/Elenco attuale dei 500 computer più potenti al mondo - TOP500
Modifica il sommario
I processori nel corso degli anni sono diventati sempre più veloci mentre le 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 conversare i dati utilizzati di frequente. Questa scelta deriva dalla constatazione che sebbene i programmi utilizzino molta memoria in realtà passano più del 90% del loro tempo ad accedere alle stesse locazioni di memoria.
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 può 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 con i nuovi dati da caricare.