Che cos'è una cache del processore?


7

Di recente ho scaricato CPU-Z solo per dare un'occhiata e ho visto una scheda contrassegnata Cache su di essa. Mostra quali dimensioni della memoria sembrano diverse e ho visto i processori essere pubblicizzati con una cache di dimensioni X. Qual è la funzione di questo, e quanto dovrebbe essere grande per funzionare bene?

Dimensione della cache


3
Questa sembra una buona domanda per [community-faq].
bwDraco,


@jcrawfordor, questo non è un duplicato. Questa è una domanda più generale di quella a cui ti stai collegando.
bwDraco,

Risposte:


13

In un computer hai un sacco di diversi strati di memoria, che puoi immaginare "più vicini" o "più lontani" dal processore.

I ricordi vicino al processore sono veloci ma piccoli e quelli lontani dal processore sono grandi ma lenti.

La memoria più veloce è composta dai registri del processore, a cui può accedere immediatamente il processore. Quindi hai la cache di dati L1, che in genere è 32K e puoi accedervi in ​​un solo ciclo di clock, quindi cache L2 / L3, che sono grandi pochi MB (da 2M a 12M) e sono accessibili in decine di cicli di clock. Poi arriva la memoria principale, che è molto più grande (alcuni gigabyte) ma è molto lenta (è possibile accedere a centinaia di cicli di clock). Poi arrivano i dischi, che sono centinaia di gigabyte grandi ma veramente lenti;)

Questo è comunemente noto come gerarchia di memoria.

Quello che vuoi, idealmente, sono ricordi grandi come i dischi, ma veloci come i registri. Per avvicinarsi il più possibile a questo, i dati vengono continuamente spostati dalla RAM ai registri e viceversa.

Chi fa tutto questo? Bene, la gerarchia è gestita in modo automatico da L1 fino alla memoria principale dal processore, mentre la memoria principale e il disco sono gestiti dal sistema operativo in collaborazione con il processore.

L'intera storia è molto più tecnica e complicata, ma spero che questo ti dia alcune intuizioni;)


aggiungerei anche, fisicamente, le cache L1 fanno parte fisicamente del processore, l2 può essere su matrici separate - un caso estremo era il pentium II che aveva grandi ram ram separati per cache l2
Journeyman Geek

@Journeyman Geek: sentiti libero di modificare la mia risposta;)
Akappa

Perché la RAM non può diventare memoria cache se la cache è molto più veloce? Perché l'industria non può passare alla memoria cache anziché alla RAM? I materiali sono molto costosi?
Boris_yo,

@Boris_yo: a causa delle latenze e della densità della memoria (è necessario molto silicio per produrre poche centinaia di MB di memoria utilizzando la struttura utilizzata dalle cache)
Akappa

@akappa: sarebbe troppo tecnico menzionare la memoria dello scratchpad (presente in alcuni processori integrati)? Ciò fornisce un rapido accesso a una modesta quantità di memoria per la quale l'allocazione è gestita dal software (garantendo un accesso rapido a specifici contenuti di memoria critici per i tempi, che possono anche fornire il blocco della cache o il blocco della via) senza i costi di alimentazione, area e latenza di un cache (che le tecniche di blocco non evitano). Inoltre, la memorizzazione nella cache può far risparmiare energia a causa delle dimensioni più ridotte e della maggiore integrazione e perché viene utilizzata parte dell'energia in attesa di un accesso alla memoria (attesa più breve, meno energia).
Paul A. Clayton,

2

Una cache del processore è una piccola quantità di memoria sopra o vicino al processore stesso utilizzata per accelerare l'accesso ai dati.

Poiché gli accessi alla RAM sono significativamente più lenti rispetto all'elaborazione effettiva dei dati, mantenere i dati più recenti e utilizzati di frequente vicino o sul processore può aumentare significativamente le prestazioni.

Mentre la memoria principale (RAM) può essere molto grande (diversi gigabyte), la CPU deve attendere diversi cicli di clock prima di poter accedere ai dati dalla memoria principale. La cache della CPU è accessibile molto rapidamente e viene generalmente utilizzata per archiviare i dati utilizzati più frequentemente o di recente. Maggiore è la cache, meno spesso il processore dovrà accedere alla RAM più lenta. Tuttavia, una cache troppo grande può rallentare l'accesso poiché il processore avrà bisogno di più tempo per trovare i dati.

Per ulteriori informazioni, consultare l' articolo di Wikipedia sulla cache della CPU . Sentiti libero di aggiungere ulteriori dettagli e informazioni tecniche a questa risposta.


Non puoi davvero rispondere a una simile domanda in modo "completo", perché questo argomento è VERAMENTE ENORME.
Akappa

@akappa Sono d'accordo, ma penso che possiamo tracciare una linea tra questa risposta, come esiste ora, e LEGGI QUESTO . La domanda sembra richiedere una panoramica di base, piuttosto che una revisione della letteratura. Quindi, sono pienamente d'accordo con @DragonLord che il wiki della community è appropriato qui.
sblair,

Questa è una grande, grande esca ... Mordiamola quando avremo più tempo ...
bubu
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.