Est-ce que dire qu'un cache est un type spécial de tampon correct? Ils remplissent tous deux des fonctions similaires, mais y a-t-il une différence sous-jacente qui me manque?
Est-ce que dire qu'un cache est un type spécial de tampon correct? Ils remplissent tous deux des fonctions similaires, mais y a-t-il une différence sous-jacente qui me manque?
Réponses:
Extrait de l'article de Wikipedia sur les tampons de données :
un tampon est une région d'une mémoire physique utilisée pour stocker temporairement des données pendant leur déplacement d'un endroit à un autre
Un tampon finit par parcourir et contenir chaque élément de données transmis d'un emplacement de stockage à un autre (comme lors de l'utilisation d'un tampon circulaire dans le traitement audio). Un tampon permet exactement cela - un "tampon" de données avant et après votre position actuelle dans le flux de données.
En effet, il existe certains aspects communs d'un tampon et d'un cache. Cependant, le cache au sens conventionnel ne stocke généralement pas toutes les données lorsqu'il est déplacé d'un endroit à l'autre (c.-à-d. Le cache du processeur).
Le but d'un cache est de stocker des données de manière transparente, de sorte que juste assez de données soient mises en cache pour que les données restantes puissent être transférées sans aucune perte de performances. Dans ce contexte, le cache ne "prélève" qu'une petite quantité de données (en fonction des taux de transfert, des tailles de cache, etc ...).
La principale différence est qu'un tampon aura éventuellement contenu toutes les données. Inversement, un cache peut contenir toutes, certaines ou aucune des données (selon la conception). Cependant, un cache est accessible comme si vous accédiez directement aux données en premier lieu - ce qui est exactement mis en cache est transparent pour "l'utilisateur" du cache.
La différence réside dans l' interface . Lorsque vous utilisez un cache pour accéder à une source de données, vous l'utilisez comme si le cache est la source de données - vous pouvez accéder à toutes les parties de la source de données via le cache, et le cache déterminera d'où viennent les données (le cache lui-même, ou la source). Le cache lui-même détermine quelles parties des données à précharger (généralement juste le début, mais parfois toutes), tandis que l' algorithme de remplacement du cache utilisé détermine quoi / quand les éléments sont supprimés du cache. Le meilleur exemple de ceci est un système, à part le cache CPU lui-même, est prefetcher / readahead. Les deux chargent les parties de données qu'ils pensent que vous utiliserez le plus en mémoire et reviennent sur le disque dur si quelque chose n'est pas mis en cache.
Inversement, un tampon ne peut pas être utilisé pour déplacer instantanément votre position dans le flux de données, sauf si la nouvelle partie a déjà été déplacée vers le tampon. Pour ce faire, il faudrait déplacer le tampon (étant donné que le nouvel emplacement dépasse la longueur du tampon), ce qui vous obligerait à "redémarrer" le tampon à partir d'un nouvel emplacement. Le meilleur exemple de cela est de déplacer le curseur dans une vidéo Youtube.
Un autre bon exemple de tampon est la lecture audio dans Winamp. Étant donné que les fichiers audio doivent être décodés par le processeur, cela prend un certain temps entre le moment où le morceau est lu, le moment où le son est traité et celui où il est envoyé sur votre carte son. Winamp mettra en mémoire tampon certaines des données audio, de sorte qu'il y ait suffisamment de données audio déjà traitées pour éviter tout "blocage" (c'est-à-dire que le CPU prépare toujours l'audio que vous entendrez en quelques centaines de millisecondes, ce n'est jamais en temps réel ; ce que vous entendez vient du tampon, qui est ce que le CPU a préparé dans le passé).
Il serait plus précis de dire qu'un cache est un modèle d'utilisation particulier d'un tampon, ce qui implique plusieurs utilisations des mêmes données. La plupart des utilisations de "tampon" impliquent que les données seront vidées ou jetées après une seule utilisation (bien que ce ne soit pas nécessairement le cas), tandis que "cache" implique que les données seront réutilisées plusieurs fois. La mise en cache implique également souvent que les données sont stockées car elles sont également utilisées simultanément, bien que ce ne soit pas nécessairement le cas (comme lors de la prélecture et autres), tandis que la mise en mémoire tampon implique que les données sont stockées pour une utilisation ultérieure.
Cependant, il y a certainement un grand chevauchement dans l'implémentation et l'utilisation.
Une différence importante entre le cache et le tampon est:
Le tampon fait partie de la mémoire primaire. Ce sont des structures présentes et accessibles à partir de la mémoire primaire (RAM).
D'un autre côté, le cache est une mémoire physique distincte dans la hiérarchie de mémoire d'un ordinateur.
Le tampon est aussi parfois appelé as - Cache de tampon. Ce nom souligne le fait que l'utilisation du tampon est similaire à celle du cache, c'est-à-dire pour stocker des données. tandis que la différence réside dans le contexte de son utilisation.
Les tampons sont utilisés pour stocker temporairement des données, tandis que les données sont déplacées d'un objet à un autre. EX: lorsqu'une vidéo est déplacée d'Internet sur notre PC, les tampons d'affichage sont utilisés pour stocker les images de la vidéo qui seront ensuite affichées. (CECI AUGMENTE LA QoS, COMME LA VIDÉO S'EXÉCUTERAIT EN DOUCEUR APRÈS UN PROCESSUS DE TAMPON RÉUSSI.) EX: un autre exemple est le scénario où nous écrivons des données dans nos fichiers. Les données nouvellement écrites ne sont pas copiées instantanément dans la mémoire secondaire. Les modifications apportées sont stockées dans le tampon puis, conformément à la stratégie conçue, les modifications sont renvoyées au fichier dans la mémoire secondaire (disque dur).
Les caches, d'autre part, sont utilisés entre la mémoire primaire et les processeurs, pour combler l'écart entre la vitesse d'exécution de la RAM et le processeur. Les données les plus fréquemment consultées sont également stockées dans le cache pour réduire l'accès à la RAM.
Chose courante: les deux sont des composants intermédiaires de stockage de données (logiciels ou matériels) entre le calcul et le stockage "principal".
Pour moi, la différence est la suivante:
Tampon:
Cache: