Une introduction générale à la cohérence du cache

Last Updated: 2020-10-30
4.9
(7)

Résumé: Le concept de cohérence de cache est peut-être relativement nouveau pour vous, mais c'est un concept de domaine informatique relativement important. Alors aujourd'hui, cette page vous donnera une introduction générale à la cohérence des caches.

Overview

Dans l'architecture informatique, la cohérence du cache est la cohérence des données de ressources partagées, qui sont finalement stockées dans plusieurs caches locaux. Des problèmes peuvent survenir avec des données incohérentes lorsque les clients conservent des caches de ressources de mémoire communes, particulièrement courantes pour les processeurs dans les systèmes multiprocesseurs.

Chaque processeur possède une mémoire cache distincte dans un système multiprocesseur à mémoire partagée. Il est susceptible d'avoir de nombreuses copies des données partagées : une copie dans la mémoire principale et une dans le cache local de chaque processeur qui en fait la demande.

Si l'une des copies des données change, les autres copies doivent refléter le changement. La cohérence du cache est une discipline qui garantit que les modifications des valeurs des opérandes (données) partagées se propagent rapidement dans tout le système.

La partie suivante répertorie les conditions requises pour la cohérence du cache.

  • Écrire la propagation: Les modifications de données dans n'importe quel cache doivent être propagées à d'autres copies dans le cache équivalent.
  • Sérialisation des transactions: Tous les processeurs doivent afficher les lectures/écritures dans un seul emplacement mémoire dans le même ordre.

Théoriquement, la cohérence peut être mise en œuvre à une granularité charge/stockage. Cependant, en pratique, il est généralement exécuté à la granularité du bloc de cache.

Definition

La cohérence définit le comportement de lecture et d'écriture à un emplacement d'adresse unique. Un type de données qui apparaît simultanément dans les différentes mémoires cache est appelé cohérence de cache. Elle est également appelée mémoire globale dans certains systèmes.

Dans un système multiprocesseur, plusieurs processeurs ont mis en cache une copie de l'emplacement mémoire X. Pour obtenir la cohérence du cache, il est nécessaire de remplir les conditions suivantes.

  1. Lorsque le processeur P lit l'emplacement X après l'écriture par le même processeur P vers X et que l'écriture sur X par un autre processeur n'apparaît pas entre l'instruction d'écriture et de lecture par P, X doit toujours retourner une valeur écrite par P.
  2. Lorsque le processeur P1 lit l'emplacement X, un autre processeur écrit de P2 vers X, et tout autre processeur écrit vers X se produit entre deux accès, et les lectures et les écritures sont suffisamment séparées. X doit toujours retourner une valeur écrite par P2. Cette condition définit la notion de vue cohérente de la mémoire. La propagation des écritures vers des emplacements de mémoire partagée garantit que tous les caches ont une vue cohérente de la mémoire. Si le processeur P1 lit l'ancienne valeur de X, on peut dire que la mémoire est incohérente même après l'écriture de P2.

Les conditions ci-dessus remplissent les conditions de propagation d'écriture requises pour la cohérence du cache. Mais ils ne sont pas adéquats car ils ne répondent pas aux critères de sérialisation des transactions.

Mécanismes de cohérence

Il existe deux mécanismes les plus courants pour assurer la cohérence :espionnage and basé sur un répertoire, chacune avec ses avantages et ses inconvénients. Si suffisamment de bande passante est disponible, les protocoles basés sur Snooping ont tendance à être plus rapides car toutes les transactions sont des demandes/réponses que tous les processeurs voient.

L'inconvénient est que l'espionnage n'a pas d'évolutivité. Chaque demande doit être diffusée à tous les nœuds du système, ce qui signifie qu'à mesure que le système grandit, la taille du bus et la bande passante qu'il fournit doivent augmenter.

D'un autre côté, les répertoires ont tendance à avoir une latence plus longue, avec trois requêtes/transferts/réponses de saut. Cependant, les annuaires utilisent beaucoup moins de bande passante car les messages sont point à point plutôt que diffusés. En conséquence, de nombreux grands systèmes adoptent ce type de cohérence de cache.

Protocoles de cohérence

Le protocole de cohérence applique la cohérence du cache dans les systèmes multiprocesseurs. L'objectif est de s'assurer que deux clients ne voient pas des valeurs différentes dans les mêmes données partagées.

Le protocole doit répondre aux exigences fondamentales de cohérence, adaptées aux systèmes ou applications cibles.

Les protocoles peuvent également être classés comme snoopy ou basés sur un répertoire. En règle générale, les premiers systèmes ont adopté des protocoles basés sur des annuaires, où l'annuaire suit les données partagées et les partageurs. Les demandes de transaction sont envoyées à tous les processeurs dans un protocole snoopy. Tous les processeurs surveillent les demandes et répondent de manière appropriée.

 

 

À quel point ce message vous a-t-il été utile ?

Cliquez sur une étoile pour la noter !

Note moyenne 4.9 / 5. Décompte des votes : 7

Aucun vote pour l'instant ! Soyez le premier à noter ce post.

Article précédent

[2022] Best Watermark Software On Windows Résumé : Le concept de cohérence de cache est peut-être relativement nouveau pour vous, mais c'est un concept de domaine informatique relativement important. Alors aujourd'hui, ce...

article suivant

Best Online OCR Software on Windows/iOS/Android Résumé : Le concept de cohérence de cache est peut-être relativement nouveau pour vous, mais c'est un concept de domaine informatique relativement important. Alors aujourd'hui, ce...

About Bitwar Data Recovery

3 Steps to get back 500+ kinds of deleted, formatted or lost documents, photos, videos, audios, archive files from various data loss scenarios.

Learn More

Articles chauds

    Articles Liés