Mémoire cache vs mémoire virtuelle
La différence entre la mémoire cache et la mémoire virtuelle existe dans le but pour lequel ces deux sont utilisés et dans l'existence physique. La mémoire cache est un type de mémoire utilisé pour améliorer le temps d'accès à la mémoire principale. Il réside entre le CPU et la mémoire principale, et il peut y avoir plusieurs niveaux de caches tels que L1, L2 et L3. Le type de matériel utilisé pour la mémoire cache est beaucoup plus coûteux que la RAM (Random Access Memory) utilisée pour la mémoire principale car la mémoire cache est beaucoup plus rapide. Pour cette raison, la capacité de la mémoire cache est très faible. La mémoire virtuelle est une technique de gestion de la mémoire utilisée pour utiliser efficacement la RAM (mémoire principale) tout en fournissant un espace mémoire séparé pour chaque programme qui est encore plus grand que la capacité réelle de la RAM physique (mémoire principale). Ici, le disque dur est utilisé pour étendre la mémoire. Les éléments de la RAM physique sont transférés dans les deux sens avec le disque dur.
Qu'est-ce que la mémoire cache?
La mémoire cache est un type de mémoire qui se situe entre le CPU (Central Processing Unit) et la RAM (Random Access memory). Le but de la mémoire cache est de réduire le temps d'accès à la mémoire du CPU à partir de la RAM. La mémoire cache est beaucoup plus rapide que la RAM. Le temps d'accès sur le cache est donc bien inférieur au temps d'accès sur la RAM. Mais le coût de la mémoire utilisée pour la mémoire cache est beaucoup plus élevé que le coût de la mémoire utilisée pour la RAM, et par conséquent, la capacité de la mémoire cache est très faible. Le type de mémoire utilisé pour la mémoire cache est appelé SRAM (Static Random Access Memory).
Chaque fois que le processeur souhaite accéder à la mémoire, il vérifie d'abord si ce dont il a besoin réside dans la mémoire cache. Si oui, il pourrait y accéder avec le moins de latence. S'il ne réside pas dans le cache, le contenu demandé sera copié de la RAM vers le cache et seul le processeur y accédera à partir du cache. Ici, lors de la copie de contenu à partir du cache, non seulement le contenu de l'adresse mémoire demandée, mais également le contenu à proximité est copié dans le cache. Ainsi, la prochaine fois, il y a une forte probabilité qu'un accès au cache se produise, car la plupart des programmes informatiques accèdent aux données à proximité ou aux dernières données consultées la plupart du temps. Ainsi, en raison du cache, la latence moyenne de la mémoire est réduite.
Dans le processeur, il existe trois types de caches: le cache d'instructions pour stocker les instructions du programme, le cache de données pour stocker les éléments de données et le tampon de recherche de traduction pour stocker les mappages de mémoire. Pour le cache de données, il existe généralement des caches à plusieurs niveaux. Autrement dit, il existe plusieurs caches comme L1, L2 et L3. Le cache L1 est la mémoire cache la plus rapide mais la plus petite qui est la plus proche du processeur. Le cache L2 est plus lent que L1, mais plus grand que L1 et réside après le cache L1. En raison de cette hiérarchie, un meilleur temps moyen d'accès à la mémoire peut être obtenu à un moindre coût.
Qu'est-ce que la mémoire virtuelle?
La mémoire virtuelle est une technique de gestion de la mémoire utilisée dans les systèmes informatiques. Il n'y a pas de matériel appelé mémoire virtuelle, mais c'est un concept qui utilise la RAM et le disque dur pour fournir un espace d'adressage virtuel pour les programmes. La première RAM est divisée en morceaux appelés pages et ils sont identifiés par des adresses de mémoire physique. Dans le disque dur, une partie spéciale est réservée où, sous Linux, on l'appelle le swap et, sous Windows, on l'appelle un fichier d'échange. Lorsqu'un programme est démarré, il reçoit un espace d'adressage virtuel qui peut être encore plus grand que la mémoire physique réelle. L'espace de mémoire virtuelle est également divisé en morceaux appelés pages et chacune de cette page de mémoire virtuelle peut être mappée à une page physique. Le tableau appelé tableau des pages assure le suivi de ce mappage. Lorsque la mémoire physique manque d'espace, ce qui est fait est,certaines pages physiques sont poussées vers cette partie spéciale du disque dur. Lorsqu'une page poussée sur le disque dur est à nouveau nécessaire, elle est transférée dans la mémoire physique en plaçant une autre page sélectionnée de la mémoire physique sur le disque dur.
Quelle est la différence entre la mémoire cache et la mémoire virtuelle?
• La mémoire cache est un type de mémoire utilisé pour améliorer le temps d'accès à la mémoire principale. C'est un type de mémoire plus rapide qui réside entre le processeur et la RAM pour réduire la latence moyenne d'accès à la mémoire. La mémoire virtuelle est une méthode de gestion de la mémoire où il s'agit d'un concept qui permet aux programmes d'obtenir son propre espace de mémoire virtuelle, qui est encore plus grand que la RAM physique réelle disponible.
• La mémoire cache est un type de mémoire matérielle qui existe réellement physiquement. D'un autre côté, il n'y a pas de matériel appelé mémoire virtuelle car c'est un concept qui utilise la RAM, le disque dur, l'unité de gestion de la mémoire et le logiciel pour fournir un type de mémoire virtuelle.
• La gestion de la mémoire cache est entièrement assurée par le matériel. La mémoire virtuelle est gérée par le système d'exploitation (logiciel).
• La mémoire cache se situe entre la RAM et le processeur. Les transferts de données impliquent la RAM, la mémoire cache et le processeur. La mémoire virtuelle, par contre, implique le transfert de données entre la RAM et le disque dur.
• Les mémoires cache prennent de petites tailles telles que des kilo-octets et des mégaoctets. La mémoire virtuelle, en revanche, implique des tailles énormes qui prennent des gigaoctets.
• La mémoire virtuelle implique des structures de données telles que des tables de pages qui stockent le mappage entre la mémoire physique et la mémoire virtuelle. Mais ce type de structures de données n'est pas nécessaire pour la mémoire cache.
Résumé:
Mémoire cache vs mémoire virtuelle
La mémoire cache est utilisée pour améliorer le temps d'accès à la mémoire principale tandis que la mémoire virtuelle est une méthode de gestion de la mémoire. La mémoire cache est un matériel réel, mais il n'y a pas de matériel appelé mémoire virtuelle. La RAM, le disque dur et divers autres matériels ainsi que le système d'exploitation produisent le concept appelé mémoire virtuelle pour fournir des espaces de mémoire virtuelle grands et isolés à chaque programme. Le contenu de la mémoire cache est géré par le matériel tandis que le contenu de la mémoire virtuelle est géré par le système d'exploitation.
Images de courtoisie:
- Processus de mémoire cache par Hellisp (CC BY-SA 3.0)
- Mémoire virtuelle par Ehamberg (CC BY-SA 3.0)