Mise en cache du cache. Que sont les données mises en cache sur le téléphone ? Utiliser les plugins de mise en cache WordPress

L’ordinateur, hélas, n’exécute pas immédiatement les commandes qu’il reçoit des personnes. Pour accélérer ce processus, un certain nombre d'astuces sont utilisées, parmi lesquelles la mise en cache occupe une place honorable. Ce que c'est? Que sont les données mises en cache ? Comment se déroule concrètement ce processus ? Que sont les données mises en cache dans un smartphone Samsung, par exemple, et sont-elles différentes de celles d'un ordinateur ? Commençons par obtenir des réponses à ces questions.

C'est le nom du tampon intermédiaire, qui permet d'accéder rapidement aux informations les plus susceptibles d'être demandées. Toutes les données y sont contenues. Un avantage important est que vous pouvez récupérer toutes les informations nécessaires du cache beaucoup plus rapidement que du stockage d'origine. Mais il y a un inconvénient important : la taille. Les données mises en cache sont utilisées dans les navigateurs, les disques durs, les processeurs, les serveurs Web, les services WINS et DNS. La base de la structure sont les jeux d'enregistrements. Chacun d’eux est associé à un élément ou bloc de données spécifique, qui fait office de copie de ce qui se trouve dans la mémoire principale. Les enregistrements ont un identifiant (tag), qui est utilisé pour déterminer la correspondance. Regardons d'un point de vue légèrement différent : que sont les données mises en cache dans un téléphone Samsung ou d'un autre fabricant ? Sont-ils différents de ceux créés sur ordinateur ? D'un point de vue fondamental, non, la différence réside uniquement dans la taille.

Processus d'utilisation

Lorsqu'un client (ils ont été répertoriés ci-dessus) demande des données, la première chose que fait l'ordinateur est d'examiner le cache. S'il contient l'entrée requise, il est utilisé. Dans ces cas-là, un succès se produit. Périodiquement, les données du cache sont copiées dans la mémoire principale. Mais si l'enregistrement requis n'est pas trouvé, le contenu est recherché dans le stockage sous-jacent. Toutes les informations saisies sont transférées dans le cache afin de pouvoir y accéder plus rapidement ultérieurement. Le pourcentage de réussite des requêtes est appelé taux de réussite ou taux de réussite.

Mise à jour des données

Lorsqu'il est utilisé, par exemple, un navigateur Web vérifie le cache local pour trouver une copie de la page. Compte tenu du caractère limité des données, en cas d'oubli, il est décidé de supprimer une partie des informations afin de libérer de l'espace. Pour décider exactement ce qui sera remplacé, divers algorithmes d’expulsion sont utilisés. À propos, si nous parlons des données mises en cache sur Android, elles sont pour la plupart utilisées pour travailler avec des images et des données d'application.

Politique d'enregistrement

Lorsque le contenu du cache est modifié, les données de la mémoire principale sont également mises à jour. Le délai qui s'écoule entre la saisie des informations dépend de la politique d'enregistrement. Il en existe deux types principaux :

  1. Enregistrement immédiat. Chaque modification est écrite de manière synchrone dans la mémoire principale.
  2. Enregistrement différé ou inversé. Les données sont mises à jour périodiquement ou sur demande du client. Pour savoir si une modification a été effectuée, utilisez un panneau avec deux états : « sale » ou modifié. En cas d'échec, deux accès peuvent être effectués à la mémoire principale : le premier permet d'écrire les données modifiées depuis le cache et le second permet de lire l'élément souhaité.

Il se peut également que les informations contenues dans le tampon intermédiaire ne soient plus pertinentes. Cela se produit lorsque les données de la mémoire principale changent sans apporter d'ajustements au cache. Pour garantir la cohérence dans tous les processus d’édition, des protocoles de cohérence sont utilisés.

Les défis modernes

Avec l'augmentation de la fréquence des processeurs et l'augmentation des performances de la RAM, un nouveau problème est apparu : les limitations de l'interface. Que peut en remarquer une personne bien informée ? La mémoire cache est très utile si la fréquence de la RAM est inférieure à celle du processeur. Beaucoup d'entre eux disposent de leur propre tampon intermédiaire pour réduire le temps d'accès à la RAM, qui est plus lent que les registres. Les processeurs prenant en charge l'adressage virtuel incluent souvent un tampon de traduction d'adresse petit mais très rapide. Mais dans d'autres cas, le cache n'est pas très utile et ne fait parfois que créer des problèmes (mais il s'agit généralement d'ordinateurs modifiés par un non-professionnel). À propos, en ce qui concerne les données mises en cache dans la mémoire d'un smartphone, il convient de noter qu'en raison de la petite taille de l'appareil, de nouvelles implémentations de cache miniature doivent être créées. De nos jours, certains téléphones présentent des paramètres similaires à ceux des ordinateurs avancés d’il y a dix ans – et quelle différence leur taille fait !

Synchronisation des données entre différents tampons

  1. Compris. Le cache peut se comporter de n'importe quelle manière.
  2. Exclusif. Développé pour chaque cas spécifique.
  3. Non exclusif. Norme largement répandue.

Niveaux de mise en cache

Leur nombre est généralement de trois ou quatre. Plus le niveau de mémoire est élevé, plus elle est volumineuse et lente :

  1. Cache L1. Le niveau de cache le plus rapide est le premier. En fait, il fait partie du processeur, puisqu'il est situé sur une puce et appartient à des blocs fonctionnels. Généralement divisé en deux types : cache d’instructions et cache de données. La plupart des processeurs modernes ne fonctionnent pas sans ce niveau. Ce cache fonctionne à la fréquence du processeur, il est donc accessible à chaque cycle d'horloge.
  2. Cache L2. Généralement situé avec le précédent. C'est une mémoire partagée. Pour connaître sa valeur, vous devez diviser le volume total alloué à la mise en cache des données par le nombre de cœurs dont dispose le processeur.
  3. Cache L3. Lent, mais le plus grand cache dépendant. Généralement plus de 24 Mo. Utilisé pour synchroniser les données provenant de divers caches de deuxième niveau.
  4. Cache L4. L'utilisation n'est justifiée que pour les mainframes et serveurs multiprocesseurs hautes performances. Il est vendu sous forme de puce séparée. Si vous posez une question sur ce qu'est la mise en cache des données dans un smartphone Samsung et que vous recherchez ce niveau, je peux dire que nous étions définitivement 5 ans trop pressés.

Associativité du cache

C'est une caractéristique fondamentale. L'associativité des données mises en cache est nécessaire pour afficher la segmentation logique. Cela est à son tour nécessaire car l'énumération séquentielle de toutes les lignes disponibles prend des dizaines de cycles d'horloge et annule tous les avantages. Par conséquent, une liaison rigide des cellules RAM aux données du cache est utilisée pour réduire le temps de recherche. Si l'on compare des tampons intermédiaires qui ont le même volume, mais une associativité différente, alors celui avec le plus grand fonctionnera moins rapidement, mais avec une efficacité spécifique significative.

Conclusion

Comme vous pouvez le constater, les données mises en cache permettent à votre ordinateur d'agir plus rapidement dans certaines conditions. Mais, hélas, il reste encore pas mal d’aspects sur lesquels on peut travailler longtemps.

Schéma d'opération de cache

Un cache est une petite zone de mémoire spécialement allouée avec une plus grande taux de change données que les données traditionnelles. Il existe en vue incohérences entre la puissance de calcul des processeurs et la vitesse de lecture des informations à partir des périphériques de stockage de mémoire standard.

Les progrès ont nécessité une augmentation des volumes pour stockage de données, alors que leur vitesse de traitement est à la traîne depuis l’aube des ordinateurs. C’est pour cette raison qu’un tel « pont » a été développé. Le processus de saisie des informations dans la mémoire cache est appelé " mise en cache" En fait, c’est pourquoi il est important de le faire à temps. purifier– pour maintenir l’efficacité de la lecture.

Mise en cache dans les navigateurs


Algorithme de mise en cache du navigateur

Souvent, lorsqu'on parle de mise en cache, beaucoup de gens se souviennent cache-des dossiers dans les navigateurs. Et ce n’est pas surprenant, puisque les nettoyer est l’un des principaux conseils donnés aux utilisateurs en cas d’erreurs.

S'accumulent eux, ainsi que le nombre de sites consultés - à partir d'eux, une partie des informations est chargée dans la mémoire cache, ainsi deux buts: accélérer temps de chargement total et diminuer charge sur le trafic réseau. Lorsque vous revenez sur le site, cela arrive examen sur la pertinence des données entre le serveur et le client. C'est au créateur de la page Web de décider ce qui doit être enregistré ou non.

Cache sous Windows

Sur les systèmes d'exploitation Windows, les fichiers de cache occupent une grande quantité d'espace. Sont enregistrés divers fichiers temporaires créé après l'exécution ou la modification d'un programme, Aperçu images et compositions musicales, points de restauration Système d'exploitation.

Contrôle ce processus, appelé gestionnaire de trésorerie, qui périodiquement se débarrasse deà partir de ressources non pertinentes. D’ailleurs, c’est précisément cette fréquence qui est le facteur clé. efficace travail : si les fichiers sont supprimés trop souvent, le système perdra du temps à les relire, et si c'est trop rare, il n'y aura tout simplement plus de place pour de nouvelles informations.

Cache sur Android

Sur les smartphones dotés du système d'exploitation Android, la situation est similaire, avec un « mais » important : la quantité de mémoire fournie beaucoup plus bas que sur un ordinateur personnel. De plus, après le lancement des programmes, ils sont stockés dans une liste de bacs, à partir de laquelle ils peuvent ensuite être réinstallés. développer, avec toutes les modifications enregistrées effectuées lors de la dernière session.

Malheureusement, le système d'exploitation ne fait pas un très bon travail pour nettoyer les fichiers inutiles, c'est pourquoi les applications peuvent ne pas fonctionner si elles sont utilisées pendant une longue période. Incorrect, et les performances du téléphone lui-même sont considérablement diminuera. Pour éviter cela, il est recommandé d'utiliser des logiciels tiers programmes, qui effectuent le nettoyage, par exemple Clean Master.

Ce terme a d'autres significations, voir Cache (significations).

Cache ou cache(Anglais) cache, du fr. cacher- "cacher"; prononcé « cache ») est un tampon intermédiaire à accès rapide contenant les informations les plus susceptibles d'être demandées. L'accès aux données dans un cache est plus rapide que la récupération des données sources à partir d'une mémoire plus lente ou d'une source distante, mais sa capacité est considérablement limitée par rapport au stockage des données sources.

Histoire

Le mot « cache » a été utilisé pour la première fois dans un contexte informatique en 1967 lors de la préparation d'un article à publier dans l'IBM Systems Journal. L'article concernait les améliorations de la mémoire dans le modèle développé 85 de la série IBM System/360. Le rédacteur en chef du magazine, Lyle Johnson, a demandé un terme plus descriptif que « tampon à grande vitesse », mais par manque d'idées, il a lui-même suggéré le mot « cache ». L'article a été publié au début de 1968, les auteurs ont reçu un prix IBM, leurs travaux ont été largement diffusés puis améliorés, et le mot « cache » est rapidement devenu un terme courant dans la littérature informatique.

Opération

Mappage du cache mémoire du processeur sur la mémoire principale.

Un cache est une mémoire à vitesse d'accès plus rapide, destinée à accélérer l'accès aux données contenues en permanence en mémoire à vitesse d'accès plus lente (ci-après dénommée « mémoire principale »). La mise en cache est utilisée par les processeurs, les disques durs, les navigateurs, les serveurs Web, les services DNS et WINS.

Un cache est constitué d'un ensemble d'entrées. Chaque enregistrement est associé à un élément de données ou à un bloc de données (un petit morceau de données), qui est une copie de l'élément de données dans la mémoire principale. Chaque entrée possède un identifiant, souvent appelé balise, qui identifie la correspondance entre les éléments de données dans le cache et leurs copies dans la mémoire principale.

Lorsqu'un client de cache (CPU, navigateur Web, système d'exploitation) accède aux données, le cache est examiné en premier. Si une entrée avec un identifiant correspondant à l'identifiant de l'élément de données demandé est trouvée dans le cache, alors les éléments de données dans le cache sont utilisés. Ce cas s'appelle accès au cache. Si une entrée contenant l'élément de données demandé n'est pas trouvée dans le cache, elle est lue de la mémoire principale dans le cache et devient disponible pour un accès ultérieur. Ce cas s'appelle manque de cache. Le pourcentage d'accès au cache lorsqu'un résultat y est trouvé est appelé taux de succès, ou taux de succès mettre en cache.

Par exemple, un navigateur Web vérifie son cache disque local pour voir s'il existe une copie locale de la page Web correspondant à l'URL demandée. Dans cet exemple, l'URL est l'identifiant et le contenu de la page Web correspond aux éléments de données.

Si la taille du cache est limitée, en cas d'échec, une décision peut être prise de supprimer certaines entrées pour libérer de l'espace. Différents algorithmes d'expulsion sont utilisés pour sélectionner l'enregistrement à supprimer.

Lorsque les éléments de données du cache sont modifiés, ils sont mis à jour dans la mémoire principale. Le délai entre la modification des données dans le cache et la mise à jour de la mémoire principale est contrôlé par ce que l'on appelle la politique d'écriture.

En cache avec enregistrement immédiat chaque changement provoque une mise à jour synchrone des données dans la mémoire principale.

En cache avec enregistrement différé(ou répondre) la mise à jour intervient lorsqu'un élément de donnée est évincé, périodiquement ou à la demande du client. Pour garder une trace des éléments de données modifiés, les entrées du cache stockent un indicateur de modification ( modifié ou "sale"). Un échec de réécriture du cache peut nécessiter deux accès à la mémoire principale : le premier pour écrire les données à remplacer à partir du cache et le second pour lire l'élément de données souhaité.

Si les données de la mémoire principale peuvent être modifiées indépendamment du cache, alors l'entrée du cache peut devenir non pertinent. Les protocoles de communication entre les caches qui maintiennent la cohérence des données sont appelés protocoles de cohérence du cache.

Implémentation matérielle

Cache du processeur

Article principal : Cache du processeur

En raison de l'augmentation de la fréquence de fonctionnement des processeurs et de l'augmentation des performances du sous-système de mémoire vive (RAM), l'interface de transfert de données est devenue le goulot d'étranglement du système informatique.

La mémoire cache peut offrir des avantages significatifs en termes de performances lorsque la vitesse d'horloge de la RAM est nettement inférieure à la vitesse d'horloge du processeur. Certains modèles de processeurs disposent de leur propre cache pour minimiser le temps d'accès à la mémoire vive (RAM), qui est plus lente que les registres (ces registres et tampons d'E/S peuvent être considérés comme un cache de niveau 0). La vitesse d'horloge de la mémoire cache n'est généralement pas inférieure à la vitesse du processeur.

Les processeurs qui prennent en charge l'adressage virtuel incluent souvent un petit tampon de traduction (TLB) à grande vitesse. Sa vitesse est importante car elle est interrogée à chaque accès mémoire.

Le problème de la synchronisation entre les différents caches (un ou plusieurs processeurs) est résolu par la cohérence du cache.

Il existe trois options pour échanger des informations entre des caches de différents niveaux ou, comme on dit, des architectures de cache : inclusive, exclusive et non exclusive.

La mémoire cache exclusive suppose le caractère unique des informations situées dans différents niveaux de cache (préféré par AMD).

Dans une cache non exclusive, ils peuvent se comporter comme bon leur semble.

Niveaux de cache

Le cache CPU est divisé en plusieurs niveaux. Le nombre maximum de caches est de quatre. Dans un processeur universel, le nombre de niveaux peut actuellement atteindre trois. Les caches de niveau N+1 sont généralement plus grands et leurs vitesses d'accès et de transfert de données sont plus lentes que les caches de niveau N.

  • Le plus rapide est le cache de premier niveau - cache L1 (cache de niveau 1). En fait, il fait partie intégrante du processeur, puisqu’il se situe sur la même puce et fait partie des blocs fonctionnels. Dans les processeurs modernes, L1 est généralement divisé en deux caches : le cache d'instructions et le cache de données (architecture Harvard). La plupart des processeurs sans L1 ne peuvent pas fonctionner. L1 fonctionne à la fréquence du processeur et, en général, il est accessible à chaque cycle d'horloge. Il est souvent possible d'effectuer plusieurs opérations de lecture/écriture simultanément.
  • Le deuxième plus rapide est le cache de deuxième niveau - le cache L2, qui, comme L1, est généralement situé sur la même puce que le processeur. Dans les premières versions des processeurs, L2 est implémenté sous la forme d'un ensemble distinct de puces mémoire sur la carte mère. Volume L2 de 128 Ko à 1−12 Mo. Dans les processeurs multicœurs modernes, le cache de deuxième niveau, situé sur la même puce, est une mémoire distincte - avec une taille totale de cache de n Mo, chaque cœur a n/c Mo, où c est le nombre de cœurs de processeur.
  • Le cache de troisième niveau est le moins rapide, mais il peut être très volumineux : plus de 24 Mo. L3 est plus lent que les caches précédents, mais reste nettement plus rapide que la RAM. Dans les systèmes multiprocesseurs, il est couramment utilisé et est destiné à synchroniser les données de différents L2.
  • Il existe un quatrième niveau de cache dont l'utilisation n'est justifiée que pour les serveurs et mainframes multiprocesseurs hautes performances. Généralement, il est implémenté sur une puce distincte.

Associativité du cache

L'une des caractéristiques fondamentales de la mémoire cache - le niveau d'associativité - reflète sa segmentation logique, provoquée par le fait qu'une recherche séquentielle de toutes les lignes de cache à la recherche des données nécessaires nécessiterait des dizaines de cycles d'horloge et annulerait tous les gains. d'utiliser la mémoire intégrée au processeur. Par conséquent, les cellules RAM sont étroitement liées aux lignes de cache (chaque ligne peut contenir des données provenant d'un ensemble fixe d'adresses), ce qui réduit considérablement le temps de recherche.

Avec la même taille de cache, le schéma avec une plus grande associativité sera le moins rapide, mais le plus efficace (après une implémentation à quatre threads, l'augmentation de « l'efficacité spécifique » par thread augmente peu).

Mise en cache des disques externes

De nombreux périphériques de stockage utilisent un cache interne pour accélérer le fonctionnement, en particulier, les disques durs utilisent une mémoire cache de 1 à 64 Mo (les modèles prenant en charge NCQ/TCQ l'utilisent pour stocker et traiter les requêtes), les disques des lecteurs CD/DVD/BD mettent également en cache lire les informations pour accélérer le réaccès.

Le système d'exploitation utilise également une partie de la RAM comme cache pour les opérations sur disque (par exemple, pour les périphériques externes qui ne disposent pas de leur propre cache, notamment les disques durs, la mémoire flash et les disquettes). Souvent, toute la RAM gratuite (non allouée aux processus) est fournie pour la mise en cache du disque dur.

L'utilisation de la mise en cache de disque externe est due aux facteurs suivants :

  1. La vitesse d'accès du processeur à la RAM est des centaines de fois ou plus rapide qu'à la mémoire des périphériques de stockage externes ;
  2. Les performances des périphériques de stockage sur disque (disques durs, disquettes, optiques) sont maximales lors de la lecture et de l'écriture de plusieurs blocs séquentiels et diminuent considérablement avec des requêtes uniques à différents endroits du disque, ce qui est dû à l'inertie du lecteur de tête mécanique.
  3. fréquence d'accès extrêmement inégale aux différents blocs mémoire des disques externes :
    1. utilisation d'une partie de blocs par plusieurs processus simultanément, pour la lecture et l'écriture (par exemple, dans des bases de données)
    2. lecture très fréquente d'une partie des blocs (fichiers d'index, répertoires dans le système de fichiers)
    3. enregistrement très fréquent de certains blocs (fichiers journaux, journaux, bases de données ; métadonnées du système de fichiers).

Lors de la lecture, le cache permet de lire un bloc une fois, puis de stocker une copie du bloc dans la RAM pour tous les processus, et de renvoyer le contenu du bloc "instantanément" (par rapport à une requête disque). Il existe une technique de « pré-requête » : en arrière-plan, le système d'exploitation lit également les quelques blocs suivants (après celui requis) dans le cache.

Lors de l'écriture, le cache permet de regrouper les écritures courtes en écritures plus volumineuses, qui sont traitées plus efficacement par les lecteurs, ou d'éviter d'enregistrer des modifications intermédiaires. Dans ce cas, tous les états intermédiaires du bloc sont visibles par les processus depuis la RAM.

La mise en cache des périphériques de stockage externes améliore considérablement les performances du système en optimisant l'utilisation des E/S. L'avantage de la technologie est l'optimisation automatique transparente (invisible pour les programmes) de l'utilisation de la mémoire et des disques tandis que la logique des applications travaillant avec des fichiers reste inchangée.

L'inconvénient de la mise en cache d'écriture est le décalage entre la demande d'écriture d'un programme et le bloc réellement écrit sur le disque, ainsi que les changements dans l'ordre dans lequel les écritures sont exécutées, ce qui peut entraîner une perte d'informations ou une incohérence des structures en cas de panne de courant. ou le système se bloque. Ce problème est atténué par la synchronisation périodique forcée (écriture des lignes de cache modifiées) et la journalisation des systèmes de fichiers.

Implémentation du logiciel

Écrire une stratégie de mise en cache

Lors de la lecture des données, la mémoire cache offre un net gain de performances. Lors de l’enregistrement des données, les gains ne peuvent être obtenus qu’au prix d’une fiabilité réduite. Par conséquent, différentes applications peuvent choisir l’une ou l’autre politique d’écriture du cache.

Il existe deux principales politiques d'écriture dans le cache : l'écriture directe et la réécriture :

  1. Write-through - les écritures sont effectuées directement dans la mémoire principale (et dupliquées dans le cache), c'est-à-dire que l'écriture n'est pas mise en cache.
  2. Écriture différée : les données sont écrites dans le cache. L'écriture dans la mémoire principale est effectuée ultérieurement (pendant le déplacement ou après un certain temps), regroupant plusieurs opérations d'écriture dans des cellules adjacentes en une seule opération. La technologie de réécriture rend les données de la mémoire principale inutiles pendant un certain temps ; ces inutilités ne sont pas perceptibles par le processeur lui-même, mais avant d'accéder à la mémoire d'un autre maître de bus système (contrôleur DMA, périphérique de bus PCI maître de bus), le cache doit être écrit de force dans la mémoire. Lors de l'utilisation de la réécriture dans un système multiprocesseur, les caches des différents processeurs doivent être cohérents (ou les processeurs doivent partager le même cache).

Algorithme de cache de réécriture

Initialement, tous les en-têtes de tampon sont placés dans la liste des tampons libres. Si un processus a l'intention de lire ou de modifier un bloc, il exécute l'algorithme suivant :

  1. essaie de trouver l'en-tête du tampon avec le numéro donné dans la table de hachage ;
  2. si le tampon reçu est occupé, attend qu'il soit libéré ;
  3. si le tampon n'est pas trouvé dans la table de hachage, prend le premier tampon de la queue de la liste libre ;
  4. si la liste des buffers libres est vide, alors l'algorithme d'éviction est exécuté (voir ci-dessous) ;
  5. si le tampon reçu est marqué comme « sale », il effectue une écriture asynchrone du contenu du tampon dans la mémoire externe.
  6. supprime un tampon de la table de hachage s'il y était placé ;
  7. place le tampon dans la table de hachage avec un nouveau numéro.

Le processus lit les données dans le tampon reçu et les libère. Une fois modifié, le processus marque le tampon comme sale avant de le libérer. Une fois libéré, le tampon est placé en tête de la liste des tampons libres.

Ainsi:

  1. si un processus a lu un certain bloc dans un tampon, alors il y a une forte probabilité qu'un autre processus, lors de la lecture de ce bloc, trouve le tampon dans la RAM ;
  2. Les données sont écrites dans la mémoire externe uniquement lorsqu'il n'y a pas suffisamment de tampons « propres » ou sur demande.

Algorithme de préemption

Article principal : Algorithmes de mise en cache

Si la liste des tampons libres est vide, alors l'algorithme d'expulsion du tampon est exécuté. L'algorithme d'expulsion a un impact significatif sur les performances du cache. Les algorithmes suivants existent :

  1. LRU (anglais) Le moins récemment utilisé) - le tampon qui est resté inutilisé pendant le plus longtemps est expulsé ;
  2. MRU (anglais) Utilisé le plus récemment) - le dernier tampon utilisé est remplacé ;
  3. LFU ( Anglais) (Anglais) Le moins fréquemment utilisé) - le tampon utilisé le moins souvent est expulsé ;
  4. ARC ( Anglais) (Anglais) Cache de remplacement adaptatif) est un algorithme de préemption combinant LRU et LFU, breveté par IBM.

L'utilisation d'un algorithme particulier dépend de la stratégie de mise en cache des données. LRU est plus efficace s’il est garanti que les données seront réutilisées dès que possible. MRU est plus efficace s’il est garanti que les données ne seront pas réutilisées dans un avenir proche. Si une application spécifie explicitement une stratégie de mise en cache pour un certain ensemble de données, le cache fonctionnera plus efficacement.

Mise en cache du système d'exploitation

Le cache RAM est constitué des éléments suivants :

  1. un ensemble de pages RAM divisées en tampons de longueur égale au bloc de données du dispositif de mémoire externe correspondant ;
  2. un ensemble d'en-têtes de tampon décrivant l'état du tampon correspondant ;
  3. une table de hachage contenant la correspondance entre le numéro de bloc et l'en-tête ;
  4. listes de tampons libres.

Mise en cache des pages Internet

Dans le processus de transmission d'informations sur le réseau, la mise en cache des pages Internet peut être utilisée - le processus de stockage des documents fréquemment demandés sur des serveurs proxy (intermédiaires) ou sur la machine de l'utilisateur, afin d'empêcher leur téléchargement constant depuis le serveur source et de réduire le trafic. . De cette manière, l’information se rapproche de l’utilisateur. La mise en cache est contrôlée à l'aide des en-têtes HTTP.

Alternativement, la mise en cache des pages Web peut être effectuée à l'aide du CMS d'un site spécifique pour réduire la charge sur le serveur en cas de trafic élevé. La mise en cache peut être effectuée à la fois en mémoire et dans le cache de fichiers. L'inconvénient de la mise en cache est que les modifications apportées dans un navigateur peuvent ne pas être immédiatement reflétées dans un autre navigateur qui récupère les données du cache.

Mise en cache des résultats du travail

De nombreux programmes écrivent quelque part les résultats intermédiaires ou auxiliaires du travail afin de ne pas les calculer à chaque fois qu'ils sont nécessaires. Cela accélère le travail, mais nécessite de la mémoire supplémentaire (RAM ou disque). Un exemple d’une telle mise en cache est l’indexation de bases de données.

Qu’est-ce que la mémoire cache ? Qu'est-ce que le cache pour Android

Cet article vous expliquera ce qu'est un cache et quels types il en existe. Cette question est souvent posée par les utilisateurs d'ordinateurs qui ne comprennent pas bien le sens de ce terme. Il existe plusieurs types de mémoire cache disponibles sur différents appareils. Il fait partie intégrante de l’ordinateur et est simplement nécessaire à son bon fonctionnement. L'article décrira les différences en détail et expliquera quand le cache doit être vidé et à quoi cela entraînera.

Qu’est-ce que la mémoire cache ?

Un cache est une section de mémoire extraite du disque dur qui stocke les informations les plus souvent nécessaires au processeur de votre appareil. Cela permet de simplifier le travail du processeur dans les cas où il doit passer beaucoup de temps à rechercher ou à charger des informations. En termes simples, il s'agit d'informations stockées très près du processeur lui-même. Autrement dit, l'appareil stocke les informations ou les commandes qui sont le plus souvent utilisées en stockage, ce qui permet à l'appareil de trouver rapidement le matériel requis. Le cache peut varier. Disons qu'il existe un cache sur un ordinateur, un navigateur ou un smartphone. Le plus souvent, l'appareil place les informations traitées dans cette zone mémoire afin de ne pas les traiter à nouveau et de ne pas perdre de temps supplémentaire. Ce qu'est la mémoire cache est désormais clair. Voyons où il est utilisé.

Qu'est-ce qu'un cache informatique ?

L'ordinateur dispose de RAM, qu'il utilise pour optimiser ses performances. La mémoire cache d'un ordinateur est un tampon entre le processeur et la RAM. Il est situé à proximité du processeur lui-même, il lui est donc plus rapide d'utiliser les informations qui y sont stockées plutôt que d'accéder aux informations opérationnelles.

Exemple de travail

Vous pouvez donner un exemple du fonctionnement de la mémoire cache pour bien comprendre son essence. Une personne a besoin de connaître les numéros de téléphone dont elle ne se souvient pas. Trouver des numéros de téléphone dans un annuaire équivaudra à ce que le processeur recherche des informations dans la RAM. Si ces numéros de téléphone sont notés sur une feuille séparée, une personne pourra les retrouver rapidement sans chercher dans un annuaire. Ce morceau de papier est un exemple de mémoire cache. L’ordinateur y télécharge automatiquement des informations qui peuvent souvent être utiles. Bien entendu, cela optimise grandement le fonctionnement de l’ordinateur, augmentant ainsi ses performances.

Cache du navigateur

Le navigateur utilise également la mémoire cache. Il y télécharge des informations, des images, des sons et bien plus encore. Cela se voit dans la façon dont votre navigateur ouvre un site que vous visitez souvent plus rapidement que celui que vous avez visité pour la première fois. Cela se produit parce que le navigateur « comprend » que vous visitez souvent ce site, et afin de ne pas télécharger des informations à chaque fois et de perdre du temps dessus, il les enregistre dans la mémoire cache pour optimiser le travail et gagner du temps. Le navigateur utilise l'espace du disque dur pour ce stockage temporaire. La taille du cache du navigateur peut être ajustée dans le navigateur lui-même. Mais il convient de rappeler que s'il remplit tout l'espace d'informations, de nouvelles informations y seront chargées en déplaçant l'ancienne, qui n'est pas utilisée. Vous pouvez facilement vider le cache de votre navigateur si vous pensez que vous n'en avez pas besoin.

Cache pour les jeux sur Android

Les utilisateurs de smartphones Android se demandent souvent ce qu'est le cache pour Android. Le plus souvent, il est requis pour les jeux avec des graphismes 3D, qui nécessitent plus d'espace pour du matériel supplémentaire. Parfois, pour les jeux, il se télécharge lorsque vous entrez dans le jeu. À l'aide d'Internet, le jeu télécharge indépendamment les informations dont il a besoin et les stocke. Mais il arrive parfois que le cache d'un jeu doive être stocké vous-même. Vous pouvez le faire en suivant les instructions d'installation du jeu. Le plus souvent, un jeu avec cache est installé comme suit. Le fichier d'installation est placé n'importe où sur votre appareil, car ce fichier doit simplement être installé. Le cache, à son tour, doit être placé dans un endroit spécialement désigné sur votre smartphone afin que lorsque le jeu démarre, il commence à lire les informations au bon endroit. Si le cache est situé là où il est nécessaire, le jeu fonctionnera correctement. L'endroit où vous devez le copier est indiqué dans la description du jeu.

Que signifie « vider le cache » ?

Peu de gens savent ce qu’est « vider le cache ». Cela signifie supprimer toutes les informations accumulées sur votre appareil qui sont nécessaires pour optimiser le fonctionnement de votre ordinateur. Cela ne devrait être fait qu’en cas d’absolue nécessité. Disons qu'après avoir supprimé le cache du navigateur, les sites que vous utilisez constamment mettront un peu plus de temps à se charger. Après tout, il devra retélécharger toutes les informations sur le site. Après avoir supprimé le cache de votre smartphone, les jeux qui le nécessitent ne pourront pas se lancer sans ces matériels.

Une personne doit comprendre ce que signifie vider le cache et savoir à quoi cela peut conduire. Bien sûr, il arrive parfois qu’il soit nécessaire de le nettoyer. Cela peut être dû à un débordement de mémoire ou à des problèmes que cela peut entraîner. Il arrive parfois que le cache puisse interférer avec le fonctionnement de l'ordinateur. Cela doit être surveillé. CCleaner peut trouver sur votre système les caches dont vous n'avez pas besoin et les supprimer. Ce programme aide grandement à optimiser les performances de votre ordinateur. Il peut rechercher des erreurs sur votre ordinateur, nettoyer le registre système et également configurer le chargement automatique des programmes au démarrage de l'ordinateur. Cela peut aussi être appelé une fonction importante. Après tout, les programmes que nous téléchargeons sur Internet sont souvent automatiquement téléchargés au démarrage de Windows. Si un grand nombre de ces programmes sont chargés au démarrage de l'ordinateur, leur mise sous tension peut prendre beaucoup de temps. Le programme CCleaner peut facilement résoudre ce problème : vous pouvez définir les programmes à exécution automatique dont vous avez besoin et dont vous n'avez pas besoin lors du démarrage du système. Lorsque vous savez déjà ce qu'est la suppression du cache, vous devez connaître en détail les raisons pour lesquelles vous devez le faire.

Pourquoi vider le cache ?

L'une des raisons pour lesquelles cette mémoire doit être effacée est l'espace disque libre. Cela est particulièrement vrai pour les personnes disposant de plusieurs navigateurs. Chaque navigateur occupera de l'espace sur votre disque dur pour son propre cache personnel, ce qui peut avoir un impact significatif sur la mémoire. Cela enregistre également la conception des sites. Disons que si vous avez visité le site, votre navigateur enregistrera sa conception. Et une fois le nouveau design publié, vous ne pourrez plus le voir, car le design enregistré dans votre cache vous sera montré. De plus, il enregistre également votre historique de navigation. Si vous ne souhaitez pas que quiconque puisse voir les sites que vous visitez, vous pouvez également le supprimer. Supprimer l'excès de cache de votre smartphone sera également utile. Souvent, les jeux le quittent une fois supprimés. Par conséquent, il peut y avoir un cache d'un jeu sur votre téléphone qui n'est plus sur l'ordinateur, ce qui occupera beaucoup de mémoire. Étant donné qu’un smartphone n’a pas autant de mémoire qu’un ordinateur, cela joue un rôle important. Nous espérons que cet article vous a donné une compréhension générale et vous a aidé à répondre à la question de savoir ce qu'est un cache.

$. Outils de mise en cache

Ce chapitre commence par une discussion sur les fonctionnalités modernes de mise en cache des microprocesseurs. Ensuite, nous considérons divers schémas de construction de caches de données, de tables TLB et VHPT. Enfin, nous examinons les outils de gestion de mise en cache.

$.1 Outils de mise en cache pour les microprocesseurs modernes

Le mot traduit cache(cache) signifie « portefeuille », « entrepôt secret », « cache » (« cachette »). La caractéristique mystérieuse vient du fait que toutes les fonctionnalités de mise en cache sont transparentes pour le programme : le programme ne voit pas si les informations les transitent ou non. Les fonctionnalités de mise en cache incluent : jusqu'à trois niveaux de cache d'instructions et de données (L1Cache, L2Cache et L3Cache), un cache de trace ( CT–TraceCache), tampons de traduction associatifs ( TLB–TranslationLook-asideBuffer), bloc de pagination, table de hachage de page virtuelle ( VHPT–VirtualHashPageTable) et tampons d’écriture.

Le programme est un consommateur d'informations

La mémoire principale n'est pas rapide, mais elle est bon marché

Figure.$.0. La place des outils de cache dans le processus de traitement de l'information.

Les outils de mise en cache constituent un stockage supplémentaire à grande vitesse de copies de blocs d'informations de la mémoire principale, dont la probabilité d'accès dans un avenir proche est élevée (Fig.$.0). Ils n'ajoutent pas d'espace mémoire adressable, le programme ne peut pas y accéder explicitement, mais le système d'exploitation dispose d'outils pour gérer les fonctionnalités de mise en cache.

0,1 $. Principes de mise en cache de la mémoire

Dans les ordinateurs, la mémoire principale est implémentée sur une mémoire dynamique (DRAM) relativement lente, son accès entraîne un temps d'arrêt du processeur - des états d'attente apparaissent. La mémoire statique (SRAM), construite, comme un processeur, sur des cellules de transistor, est par nature capable de rattraper les processeurs modernes en termes de performances et de rendre inutiles les cycles d'attente (ou du moins de réduire leur nombre). De plus, l'accès à la mémoire principale (située à l'extérieur du processeur) s'effectue via le bus système, dont les capacités de vitesse sont considérablement limitées. Il existe d'autres limitations qui empêchent toute la mémoire d'être rendue rapide :

    plus la mémoire est rapide, plus elle est chère (et la dépendance est exponentielle),

    plus la mémoire est rapide, plus elle génère de chaleur, ce qui signifie qu'elle doit être équipée de moyens spéciaux d'évacuation de la chaleur et placée à l'écart du microprocesseur, qui chauffe pendant le fonctionnement,

    Plus le bus de communication fonctionne rapidement, plus il doit être court (en raison des interférences mutuelles et de la vitesse limitée de la lumière).

Un compromis raisonnable pour construire des systèmes économiques et productifs était une méthode hiérarchique d'organisation de la RAM. L’idée est la combinaison suivante :

    La grande mémoire principale est relativement lente et est connectée au processeur via un bus partagé relativement lent,

    le cache externe de troisième niveau (L3) est nettement plus petit, mais fonctionne plus rapidement et est connecté au processeur par un bus plus rapide,

    situé à l'intérieur du processeur, le cache de deuxième niveau (L2), il est encore plus petit, mais fonctionne presque à la fréquence du processeur et est assez rapide,

    Un petit cache de niveau 1 (L1) rapide et étroitement intégré au processeur.

Le cache ne peut pas stocker une copie de la totalité de la mémoire principale car sa taille est plusieurs fois inférieure à celle de la mémoire principale. Il stocke uniquement un nombre limité de blocs de données et catalogue(cachedirectory) – une liste de leur correspondance actuelle avec les zones de mémoire principales. De plus, toute la mémoire disponible pour le processeur ne peut pas être mise en cache (soit parce que le cache d'un niveau donné est construit de cette façon, soit parce qu'il est défini ainsi par le système d'exploitation).

À chaque accès mémoire, le contrôleur de cache d'annuaire vérifie s'il existe une copie valide des données demandées dans le cache. Si elle est là, alors c'est le cas accès au cache(cachehit), et les données sont extraites de la mémoire cache. S'il n'y a pas de copie valide, c'est le cas manque de cache(cachemiss), et les données sont extraites de la mémoire principale. Selon l'algorithme de mise en cache, un bloc de données lu dans la mémoire principale remplacera, sous certaines conditions, l'un des blocs de cache. Le pourcentage de hits et, par conséquent, l'efficacité de la mise en cache dépendent de l'intelligence de l'algorithme de remplacement. La recherche d'un bloc dans la liste doit être effectuée suffisamment rapidement pour que la « réflexion » lors de la prise de décision n'annule pas le gain de l'utilisation de la mémoire à grande vitesse. L'accès à la mémoire principale peut commencer simultanément à une recherche dans le répertoire, et en cas d'occurrence, il peut être interrompu (architecture Look-aside). Cela permet de gagner du temps, mais un accès inutile à la mémoire principale entraîne une augmentation de la consommation d'énergie. Autre option : l'accès à la mémoire externe ne commence qu'après détection d'un échec (architecture LookThrough), auquel cas au moins un cycle processeur est perdu, mais de l'énergie est économisée.

Sur les ordinateurs modernes, le cache est généralement construit selon un schéma à deux niveaux. Le cache de niveau 1 (L1Cache) est intégré à tous les plus de 486 processeurs ; Il s'agit du cache interne. La taille de ce cache est petite (8 à 32 Ko). Pour améliorer les performances, un cache séparé est souvent utilisé pour les données et les instructions (l'architecture dite de Harvard - à l'opposé de l'architecture de Princeton, qui utilise la mémoire partagée pour les instructions et les données). Le cache de deuxième niveau (L2Cache) pour les processeurs 486 et Pentium est externe (installé sur la carte mère), tandis que pour le P6+, il se trouve dans le même boîtier que le cœur et est connecté à un bus interne spécial du processeur.

Le contrôleur de cache doit assurer la cohérence - cohérence des données de la mémoire cache des deux niveaux avec les données de la mémoire principale, à condition que ces données soient accessibles non seulement par le processeur, mais également par d'autres adaptateurs actifs (busmaster) connectés aux bus (PCI, VLB, ISA...). Il convient également de prendre en compte qu'il peut y avoir plusieurs processeurs et que chacun peut avoir son propre cache interne.

Le contrôleur de cache fonctionne sur des lignes de cache d'une longueur fixe. Une chaîne peut stocker une copie d'un bloc de mémoire principale, dont la taille correspond naturellement à la longueur de la chaîne. Chaque ligne de cache est associée à des informations sur l'adresse du bloc de mémoire principale qui y est copié et son état. La ligne pourrait être valide(valide) - cela signifie qu'à l'heure actuelle, il reflète de manière fiable le bloc correspondant de la mémoire principale, ou invalide. Les informations sur le bloc qui occupe une ligne donnée (c'est-à-dire la partie avant de l'adresse ou du numéro de page) et son état sont appelés étiqueter(tag) et est stocké dans une cellule spéciale associée à cette ligne mémoire d'étiquette(tagRAM). Dans les opérations d'échange avec la mémoire principale, toute la ligne est généralement impliquée (cache non sectorisé) ; pour les processeurs 486 et supérieurs, la longueur de la ligne coïncide avec la quantité de données transférées dans un cycle de paquet (pour 486 c'est 4x4 = 16 octets , pour le Pentium, c'est 4x8 = 32 octets). Une option de cache sectorisé est également possible, dans laquelle une ligne contient plusieurs cellules adjacentes - secteurs, dont la taille correspond à la partie minimale de l'échange de données du cache avec la mémoire principale. Dans ce cas, l'entrée de répertoire correspondant à chaque ligne doit stocker les bits de validité pour chaque secteur de cette ligne. La sectorisation économise la mémoire requise pour stocker un répertoire à mesure que la taille du cache augmente, car davantage de bits de répertoire sont alloués à la balise, et il est plus rentable d'utiliser des bits de validité supplémentaires que d'augmenter la profondeur d'index (nombre d'éléments) du répertoire.

Les lignes de cache pour afficher un bloc mémoire sont allouées lorsque les opérations de lecture échouent ; dans P6, les lignes sont remplies lors des écritures. Un bloc qui n'a pas de copie dans le cache est écrit dans la mémoire principale (pour améliorer les performances, l'écriture peut être effectuée via un tampon d'écriture différée). Comportement du contrôleur de cache lors d'une opération d'écriture en mémoire lorsqu'une copie de la zone demandée se trouve dans une ligne de cache , déterminé par son algorithme, ou politique d'écriture (WritePolicy). Il existe deux politiques principales pour écrire des données du cache vers la mémoire principale : écriture directe W.T.(Écriture directe) et écriture inversée (retardée) W.B.(Écrire).

Politique WT prévoit l'exécution simultanée de chaque opération d'écriture (même une opération sur un seul octet) qui atteint le bloc mis en cache, la ligne de cache et la mémoire principale. Dans ce cas, le processeur devra effectuer une écriture relativement longue dans la mémoire principale pour chaque opération d'écriture. L'algorithme est assez simple à mettre en œuvre et garantit facilement l'intégrité des données grâce à la coïncidence constante des copies de données dans le cache et la mémoire principale. Pour cela, il n'est pas nécessaire de stocker des signes de présence et de modification - seules les informations de balise suffisent (on suppose que toute ligne reflète toujours un bloc, et laquelle est indiquée par la balise). Mais cette simplicité se traduit par une faible efficacité d’enregistrement. Il existe des variantes de cet algorithme utilisant l'écriture différée en tampon, dans laquelle les données sont écrites dans la mémoire principale via un tampon FIFO pendant les cycles d'horloge du bus libres.

Politique de la BM permet de réduire le nombre d'écritures sur le bus mémoire principal. Si le bloc de mémoire sur lequel écrire est mappé en cache, l'écriture physique sera d'abord effectuée sur cette ligne de cache valide, marquée comme sale(sale), ou modifié, c'est-à-dire nécessitant un déchargement dans la mémoire principale. Ce n'est qu'après ce déchargement (écriture dans la mémoire principale) que la ligne deviendra faire le ménage(propre), et il peut être utilisé pour mettre en cache d’autres blocs sans perdre l’intégrité des données. Les données sont réécrites dans la mémoire principale uniquement sous forme de ligne entière. Ce déchargement par le contrôleur peut être différé jusqu'à ce qu'il soit absolument nécessaire (accès à la mémoire cache par un autre abonné, remplacement dans le cache par de nouvelles données) ou effectué en temps libre après modification de l'ensemble de la ligne. Cet algorithme est plus difficile à mettre en œuvre, mais nettement plus efficace que WT. La prise en charge par la carte mère de la mise en cache en écriture différée nécessite le traitement de signaux d'interface supplémentaires pour vider les lignes modifiées dans la mémoire principale si cette zone est accédée par des contrôleurs de bus tels que d'autres processeurs, adaptateurs graphiques, contrôleurs de disque, adaptateurs réseau, etc.

Selon la méthode de détermination de la correspondance mutuelle entre une ligne de cache et une région de mémoire principale, on distingue trois architectures de mémoire cache : cache de carte direct(cache mappé directement), cache entièrement associatif(cache entièrement associatif) et leur combinaison – cache associatif d'ensemble(set-associativecache).

Que signifie mis en cache ?

que signifie mis en cache ? 1 700 Mo de cache (affiché dans le gestionnaire de tâches), est-ce beaucoup ? peu? Mal? Bien? Sur l'ordinateur, cela coûte 4 Go si cela se produit. expliquez plus simplement si possible))

Sergueï Smankov

Dans ce cas, il s'agit de la quantité de RAM située dans le fichier d'échange. Ce n'est pas mauvais, mais l'échange de données depuis le disque dur est plus lent que depuis la mémoire physique.
Essayez de désactiver complètement le fichier d'échange, voyez s'il fonctionne plus rapidement. Mais si vous le désactivez, vous risquez de ne plus pouvoir jouer à certains jeux, alors vous pouvez simplement le remettre tel qu'il était.

Séraphin Benzak

Bien sûr. La mémoire libre est complètement inutile. D'où la règle générale : moins il y a de mémoire libre, mieux c'est. Pense pour toi même. Si la mémoire est libre, cela signifie qu'elle n'est pas utilisée. Et quelque chose qui n’est pas utilisé ne sert à rien. Par conséquent, tout système d'exploitation normal essaie de ne pas laisser de mémoire libre. Peu importe la quantité (même un téraoctet), elle sera entièrement utilisée au fil du temps. Dans le même temps, les processus en cours d'exécution ne peuvent occuper qu'une petite partie de cette mémoire. Pour la plupart des processus, la quantité qu'ils occupent ne dépend pas du tout de la quantité de RAM, mais certains, comme les navigateurs, lorsqu'ils s'exécutent sur des systèmes dotés de grandes quantités de mémoire, demandent de la mémoire au système avec une réserve. Pour pouvoir stocker davantage de pages ouvertes et de données multimédia dans la RAM.
Naturellement, la question se pose : où le système distribue-t-il le reste de la mémoire ? La réponse est simple. Pour les tampons et les caches (la faute d’orthographe de « buffer » est courante).
A quoi servent les tampons ? Pour accélérer les opérations d'écriture (généralement sur le disque). Si vous donnez une commande pour copier un fichier, il est lu et placé dans le tampon de réécriture. Et vous êtes informé que la commande est terminée (même si en fait rien n'a encore été écrit) et vous pouvez continuer à travailler. À une certaine fréquence, qui est de 10 secondes par défaut sous Linux, bien que vous puissiez en définir une, les tampons sont vidés sur le disque.
Ou bien les tampons sont vidés plus tôt, lorsqu’ils atteignent une certaine taille. Cela est également compréhensible. Disons que vous disposez de deux disques durs et que vous souhaitez déplacer un fichier ÉNORME du premier vers le second.
La lecture est traditionnellement une opération plus rapide que l'écriture, donc si vous disposez d'un tampon infini, le fichier y sera lu bien avant que le contenu du tampon ne soit écrit sur le deuxième disque.
Le programme, après avoir reçu un message du système d'exploitation concernant la copie réussie du fichier (qui est émis après que le fichier a été lu dans le tampon), supprime en toute conscience l'original, qui n'est plus nécessaire, puisque vous avez une copie. Et à ce moment l'électricien tire sur l'interrupteur....
Ainsi, pour minimiser les pertes possibles, la taille des tampons est limitée.
Comment utiliser la mémoire restante ? Oui, très simple ! Dès que vous lisez un fichier sur le disque, une copie de celui-ci est stockée dans la mémoire cache. La relecture du même fichier est donc instantanée.
Un petit peu de. Si le système d'exploitation prend en charge la technologie « exécuter sur place », lorsque vous démarrez un programme pour l'exécuter, vous n'avez pas besoin de perdre du temps à copier des commandes et des données de processus dans la RAM. Le contrôle est transféré directement sur le fichier sur le disque. Sans le lire dans la RAM. En effet, pourquoi faire deux fois le même travail ? Après tout, lors de l’accès à un fichier, celui-ci se retrouvera de toute façon dans le cache. Et le cache est de la RAM.
Quelle taille le système d’exploitation alloue-t-il au cache ? La réponse est simple : tout ce qu'il trouve.
Si un processus a besoin de mémoire, le système lui donnera simplement un morceau de mémoire occupé par le cache. Cette opération est effectuée extrêmement rapidement, mais le système d'exploitation prend néanmoins en compte le fait qu'il peut y avoir des programmes qui nécessiteront de la mémoire des dizaines de milliers de fois par seconde. Il est clair que seuls de très petits volumes peuvent être demandés de cette manière. Même si vous demandez, disons, seulement un mégaoctet, sur dix mille requêtes, le volume augmentera jusqu'à des valeurs supérieures à la quantité de RAM physiquement installée sur la plupart des ordinateurs personnels.
Par conséquent, pour satisfaire de telles demandes (fréquentes, mais petites), il suffit de réserver quelques pour cent de RAM et pas plus.

Que signifie mis en cache ?

Âme aimable

En cache - la quantité de RAM non utilisée par les programmes en cours d'exécution, occupée par les données mises en cache du disque. Cela accélère le processus de lancement des programmes et d'ouverture des documents. Cette mémoire est libérée en cas de besoin.
Un cache est une zone de stockage contenant les données les plus fréquemment utilisées dans le cadre du travail. Le cache peut se trouver sur le disque dur, le processeur ou le navigateur. A titre de comparaison : quand je vais réparer une carte, je mets un fer à souder, un tournevis et une pince à côté de moi, sur le tapis de droite, car je sais qu'il faut en premier. Le reste des outils est au sol dans une boîte. Je les sors au besoin. Donc mon tapis à droite est le CACHE. Le système sait également de quels fichiers ou données il aura besoin en premier et les place dans le cache lors du chargement.

Si un smartphone ou une tablette manque d'espace libre, la première chose à faire est de supprimer le cache de la mémoire. Qu'est-ce qu'un cache sur un téléphone ou des données mises en cache exactement ?

Un cache est un tampon intermédiaire à accès rapide contenant des informations pouvant être interrogées. Dans le même temps, l'accès au cache est beaucoup plus rapide que la récupération des données nécessaires depuis la mémoire ou une source distante. Cependant, vous devez vous rappeler que la taille du cache est limitée.

Si vous ne comprenez rien à ce qui précède, essayons de l’expliquer visuellement. Lorsque vous installez une application sur votre appareil Android, un dossier est créé pour stocker les paramètres utilisateur, diverses images, journaux, etc. Bien entendu, les données dans le cache prennent dans ce cas de la place.

Un autre exemple. Disons que vous ouvrez VKontakte sur votre téléphone et regardez des photos. Ces photos sont enregistrées sur votre appareil (c'est-à-dire mises en cache). Pour quoi? Et puis, la prochaine fois que vous accéderez aux mêmes images, elles seront chargées beaucoup plus rapidement que sans utiliser le cache. Il en va de même non seulement pour les photos, mais aussi pour la musique et même les vidéos : elles sont toutes enregistrées sur l'appareil et peuvent prendre beaucoup de place.

La question est : allez-vous revoir la vidéo que vous avez regardée ? Très probablement pas, et il n'est donc pas nécessaire de mettre la vidéo en cache.

Que se passe-t-il si vous supprimez le cache ?

Rien ne se passera si l'on parle du cache dans les navigateurs, sauf que certaines informations, comme les photographies, mettront un peu plus de temps à se charger. Si vous supprimez le cache de l'application, vous n'avez pas non plus à vous inquiéter, car les sauvegardes ne sont pas supprimées.

Le cache peut être supprimé manuellement ou à l'aide d'applications tierces. Il est préférable d'utiliser la deuxième méthode, car lors de la suppression manuelle du cache, vous devrez le supprimer de différentes sources, tandis que l'application elle-même trouvera tous les types de cache dans l'appareil et les supprimera à la demande de l'utilisateur.

Voici les données du cache de l'application dans les paramètres du smartphone :

Et ce sont des données de cache pour une application.

Des ordinateurs

Qu'est-ce que les données mises en cache et la mise en cache ?

10 mars 2016

L’ordinateur, hélas, n’exécute pas immédiatement les commandes qu’il reçoit des personnes. Pour accélérer ce processus, un certain nombre d'astuces sont utilisées, parmi lesquelles la mise en cache occupe une place honorable. Ce que c'est? Que sont les données mises en cache ? Comment se déroule concrètement ce processus ? Que sont les données mises en cache dans un smartphone Samsung, par exemple, et sont-elles différentes de celles d'un ordinateur ? Commençons par obtenir des réponses à ces questions.

Qu’est-ce que le cache ?

C'est le nom du tampon intermédiaire, qui permet d'accéder rapidement aux informations les plus susceptibles d'être demandées. Toutes les données y sont contenues. Un avantage important est que vous pouvez récupérer toutes les informations nécessaires du cache beaucoup plus rapidement que du stockage d'origine. Mais il y a un inconvénient important : la taille. Les données mises en cache sont utilisées dans les navigateurs, les disques durs, les processeurs, les serveurs Web, les services WINS et DNS. La base de la structure sont les jeux d'enregistrements. Chacun d’eux est associé à un élément ou bloc de données spécifique, qui fait office de copie de ce qui se trouve dans la mémoire principale. Les enregistrements ont un identifiant (tag), qui est utilisé pour déterminer la correspondance. Regardons d'un point de vue légèrement différent : que sont les données mises en cache dans un téléphone Samsung ou d'un autre fabricant ? Sont-ils différents de ceux créés sur ordinateur ? D'un point de vue fondamental, non, la différence réside uniquement dans la taille.

Processus d'utilisation

Lorsqu'un client (ils ont été répertoriés ci-dessus) demande des données, la première chose que fait l'ordinateur est d'examiner le cache. S'il contient l'entrée requise, il est utilisé. Dans ces cas-là, un succès se produit. Périodiquement, les données du cache sont copiées dans la mémoire principale. Mais si l'enregistrement requis n'est pas trouvé, le contenu est recherché dans le stockage sous-jacent. Toutes les informations saisies sont transférées dans le cache afin de pouvoir y accéder plus rapidement ultérieurement. Le pourcentage de réussite des requêtes est appelé taux de réussite ou taux de réussite.

Mise à jour des données

Lorsqu'il est utilisé, par exemple, un navigateur Web vérifie le cache local pour trouver une copie de la page. Compte tenu des limites de ce type de mémoire, en cas d'erreur, il est décidé de supprimer une partie des informations afin de libérer de l'espace. Pour décider exactement ce qui sera remplacé, divers algorithmes d’expulsion sont utilisés. À propos, si nous parlons des données mises en cache sur Android, elles sont pour la plupart utilisées pour travailler avec des images et des données d'application.

Politique d'enregistrement

Lorsque le contenu du cache est modifié, les données de la mémoire principale sont également mises à jour. Le délai qui s'écoule entre la saisie des informations dépend de la politique d'enregistrement. Il en existe deux types principaux :

  1. Enregistrement immédiat. Chaque modification est écrite de manière synchrone dans la mémoire principale.
  2. Enregistrement différé ou inversé. Les données sont mises à jour périodiquement ou sur demande du client. Pour savoir si une modification a été effectuée, utilisez un panneau avec deux états : « sale » ou modifié. En cas d'échec, deux accès peuvent être effectués à la mémoire principale : le premier permet d'écrire les données modifiées depuis le cache et le second permet de lire l'élément souhaité.

Il se peut également que les informations contenues dans le tampon intermédiaire ne soient plus pertinentes. Cela se produit lorsque les données de la mémoire principale changent sans apporter d'ajustements au cache. Pour garantir la cohérence dans tous les processus d’édition, des protocoles de cohérence sont utilisés.

Les défis modernes

Avec une augmentation de la fréquence des processeurs et une augmentation des performances de la RAM, un nouveau problème est apparu : les limitations de l'interface de transfert de données. Que peut en remarquer une personne bien informée ? La mémoire cache est très utile si la fréquence de la RAM est inférieure à celle du processeur. Beaucoup d'entre eux disposent de leur propre tampon intermédiaire pour réduire le temps d'accès à la RAM, qui est plus lent que les registres. Les processeurs prenant en charge l'adressage virtuel incluent souvent un tampon de traduction d'adresse petit mais très rapide. Mais dans d'autres cas, le cache n'est pas très utile et ne fait parfois que créer des problèmes (mais il s'agit généralement d'ordinateurs modifiés par un non-professionnel). À propos, en ce qui concerne les données mises en cache dans la mémoire d'un smartphone, il convient de noter qu'en raison de la petite taille de l'appareil, de nouvelles implémentations de cache miniature doivent être créées. De nos jours, certains téléphones présentent des paramètres similaires à ceux des ordinateurs avancés d’il y a dix ans – et quelle différence leur taille fait !

Synchronisation des données entre différents tampons

  1. Compris. Le cache peut se comporter de n'importe quelle manière.
  2. Exclusif. Développé pour chaque cas spécifique.
  3. Non exclusif. Norme largement répandue.

Niveaux de mise en cache

Leur nombre est généralement de trois ou quatre. Plus le niveau de mémoire est élevé, plus elle est volumineuse et lente :

  1. Cache L1. Le niveau de cache le plus rapide est le premier. En fait, il fait partie du processeur, puisqu'il est situé sur une puce et appartient à des blocs fonctionnels. Généralement divisé en deux types : cache d’instructions et cache de données. La plupart des processeurs modernes ne fonctionnent pas sans ce niveau. Ce cache fonctionne à la fréquence du processeur, il est donc accessible à chaque cycle d'horloge.
  2. Cache L2. Généralement situé avec le précédent. C'est une mémoire partagée. Pour connaître sa valeur, vous devez diviser le volume total alloué à la mise en cache des données par le nombre de cœurs dont dispose le processeur.
  3. Cache L3. Lent, mais le plus grand cache dépendant. Généralement plus de 24 Mo. Utilisé pour synchroniser les données provenant de divers caches de deuxième niveau.
  4. Cache L4. L'utilisation n'est justifiée que pour les mainframes et serveurs multiprocesseurs hautes performances. Il est vendu sous forme de puce séparée. Si vous posez une question sur ce qu'est la mise en cache des données dans un smartphone Samsung et que vous recherchez ce niveau, je peux dire que nous étions définitivement 5 ans trop pressés.

Associativité du cache

C'est une caractéristique fondamentale. L'associativité des données mises en cache est nécessaire pour afficher la segmentation logique. Cela est à son tour nécessaire car l'énumération séquentielle de toutes les lignes disponibles prend des dizaines de cycles d'horloge et annule tous les avantages. Par conséquent, une liaison rigide des cellules RAM aux données du cache est utilisée pour réduire le temps de recherche. Si l'on compare des tampons intermédiaires qui ont le même volume, mais une associativité différente, alors celui avec le plus grand fonctionnera moins rapidement, mais avec une efficacité spécifique significative.

Conclusion

Comme vous pouvez le constater, les données mises en cache permettent à votre ordinateur d'agir plus rapidement dans certaines conditions. Mais, hélas, il reste encore pas mal d’aspects sur lesquels on peut travailler longtemps.

Avez-vous aimé l'article? Partager avec des amis: