Qu'est-ce qu'un cache de processeur?

7

J'ai récemment téléchargé CPU-Z juste pour vérifier, et j'ai vu un onglet marqué Cache dessus. Il montre ce qui semble être différentes tailles de mémoire, et j'ai vu des processeurs annoncés avec un cache de taille X. Quelle est la fonction de cela et quelle doit être sa taille pour bien fonctionner?

Taille du cache

Simon Sheehan
la source
3
Cela semble être une bonne question pour [community-faq].
bwDraco
Duplicata de superuser.com/questions/269080/…
jcrawfordor
@ jcrawfordor, ce n'est pas un doublon. C'est une question plus générale que celle à laquelle vous vous connectez.
bwDraco

Réponses:

13

Dans un ordinateur, vous disposez de plusieurs couches de mémoire, que vous pouvez imaginer "plus proches" ou "plus éloignées" du processeur.

Les mémoires proches du processeur sont rapides mais petites, et les mémoires éloignées du processeur sont grandes mais lentes.

La mémoire la plus rapide est composée par les registres du processeur, auxquels le processeur peut accéder immédiatement. Ensuite, vous avez le cache de données L1, qui est généralement de 32 Ko et accessible en un seul cycle d'horloge, puis le cache L2 / L3, qui fait peu de Mo (de 2 à 12 Mo) et peut être consulté en dizaines de cycles d'horloge. Vient ensuite la mémoire principale, beaucoup plus volumineuse (quelques giga-octets) mais très lente (des centaines de cycles d’horloge sont accessibles). Viennent ensuite les disques, qui font des centaines de gigaoctets mais sont tellement lents;)

Ceci est communément appelé hiérarchie de la mémoire.

Ce que vous voulez, idéalement, ce sont des souvenirs aussi gros que des disques, mais aussi rapides que des registres. Pour se rapprocher le plus possible de cela, les données sont continuellement déplacées de la RAM vers les registres et vice-versa.

Qui fait tout ça? Eh bien, la hiérarchie est gérée de manière automatique, de la L1 à la mémoire principale par le processeur, tandis que la mémoire principale et le disque sont gérés par le système d’exploitation en coopération avec le processeur.

L’histoire complète est bien plus technique et compliquée, mais j’espère que cela vous donnera des idées;)

Akappa
la source
Je voudrais aussi ajouter, physiquement, caches L1 sont physiquement partie du processeur, l2 peut être sur dies séparés - un cas extrême était le pentium II qui avait de grandes puces de RAM séparés pour le cache L2
Journeyman Geek
@Journeyman Geek: n'hésitez pas à modifier ma réponse;)
akappa
Pourquoi la RAM ne peut-elle pas devenir une mémoire cache si le cache est beaucoup plus rapide? Pourquoi l'industrie ne peut-elle pas passer à la mémoire cache à la place de la RAM? Les matériaux sont-ils très chers?
Boris_yo
@Boris_yo: en raison des latences et de la densité de la mémoire (vous avez besoin de beaucoup de silicium pour fabriquer quelques centaines de Mo de mémoire en utilisant la structure employée par les caches)
akappa le
@akappa: Serait-il trop technique de mentionner la mémoire du bloc-notes (présente dans certains processeurs intégrés)? Cela fournit un accès rapide à une quantité modeste de mémoire pour laquelle l’allocation est gérée par un logiciel (garantissant un accès rapide à des contenus de mémoire spécifiques à la synchronisation, que le verrouillage de la mémoire cache ou le verrouillage de voie peuvent également fournir) sans les surcoûts de puissance, de zone et de temps cache (que les techniques de verrouillage n'évitent pas). La mise en cache peut également économiser de l'énergie en raison de la taille et de l'intégration améliorées et du fait qu'une partie de l'énergie est utilisée pendant l'attente d'un accès à la mémoire (attente plus courte, moins d'énergie).
Paul A. Clayton
2

Une mémoire cache de processeur est une petite quantité de mémoire située sur ou à proximité du processeur lui-même, utilisée pour accélérer l'accès aux données.

Étant donné que les accès à la mémoire RAM sont nettement plus lents que le traitement des données, le fait de conserver les données les plus récemment utilisées fréquemment à proximité du processeur ou sur le processeur peut considérablement améliorer les performances.

Alors que la mémoire principale (RAM) peut être très volumineuse (plusieurs gigaoctets), le processeur doit attendre plusieurs cycles d'horloge avant de pouvoir accéder aux données de la mémoire principale. L'accès au cache de la CPU est très rapide et sert généralement à stocker les données les plus fréquemment ou récemment utilisées. Plus le cache est volumineux, moins le processeur devra souvent accéder à la RAM plus lente. Toutefois, un cache trop volumineux peut ralentir l'accès car le processeur aura besoin de plus de temps pour rechercher les données.

Pour plus d'informations, voir l'article de Wikipedia sur le cache du processeur . N'hésitez pas à ajouter plus de détails ainsi que des informations techniques à cette réponse.

DragonLord
la source
Vous ne pouvez pas vraiment répondre à une telle question de manière "complète", car ce sujet est vraiment énorme.
Akappa
@akappa Je suis d'accord, mais je pense que nous pouvons tracer une ligne de démarcation entre cette réponse, telle qu'elle existe maintenant, et LIRE CECI . La question semble demander un aperçu de base plutôt qu'une analyse de la littérature. Donc, je suis entièrement d'accord avec @DragonLord que le wiki de la communauté est approprié ici.
Sblair
C'est un gros appât ... Mordons-nous quand nous aurons plus de temps ...
jeudi