2016-12-12 4 views
0

Si la valeur dans une partie du cache est 4 et que nous la modifions à 5, cela définit le bit sale pour cette donnée sur 1. Mais qu'en est-il si nous redéfinissons la valeur à 4, le bit sale reste-t-il encore 1 ou revient-il à 0?Valeur de bit sale après modification des données à l'état d'origine

Cela m'intéresse, car cela signifierait une optimisation de niveau supérieur du système informatique lorsqu'il s'agit d'opérations de lecture-écriture entre la mémoire principale et le cache.

+0

Par conséquent, il sera toujours réglé pour être sale. Évidemment, vous pouvez implémenter une sorte de point de contrôle et revenir plus tard sur des bits sales pour des cas comme ceux que vous avez mentionnés. –

Répondre

3

Pour qu'un cache fonctionne comme vous l'avez dit, il doit réserver la moitié de son espace de données pour stocker les anciennes valeurs.
Depuis cache sont chers exactement parce qu'ils ont un coût élevé par bit, et considérant que:

  • Ce mécanisme ne détecterait sur deux niveaux d'écrire l'histoire: A -> B -> A et non plus profond (comme A -> B -> C -> A).
  • L'écriture impliquerait la copie des valeurs actuelles dans les anciennes valeurs.
  • La quantité minimale de données de taggable dans un cache est ligne et toute la ligne doit être rétablie à sa valeur d'origine. Considérant qu'une ligne a une taille de l'ordre de 64 octets, c'est très improbable.
  • Une structure hiérarchique des caches (L1, L2, L3, ...) est là exactement pour atténuer le problem of eviction.

La solution que vous avez proposée a peu d'avantages par rapport aux inconvénients et n'est donc pas implémentée. Du point de vue de la mémoire cache, il ne sait pas qu'il avait la valeur 4 précédemment.

+0

L'optimisation pour les mémoires silencieuses directes (c'est-à-dire stocker la même valeur que dans un emplacement mémoire) a été considérée académiquement, mais même cette optimisation potentielle pose des problèmes importants et n'a pas été mise en œuvre dans un produit réel. –

+0

@ PaulA.Clayton Voulez-vous dire [write-through] (https://stackoverflow.com/questions/27087912/write-back-vs-write-through)? –

+0

Non, voir [Résultats de recherche Google Scholar] (https://scholar.google.com/scholar?hl=fr&q=silent+stores&btnG=&as_sdt=1%2C21). Il y a en fait ** un ** exemple d'optimisation de magasin silencieux qui a * été * implémenté: l'élision du verrou matériel d'Intel. Dans ce cas, le logiciel fournit une indication que la valeur du verrou sera restaurée (minimisant les frais généraux de détection d'un éventuel stockage silencieux) et le bénéfice de ce type particulier d'accès ABA est significatif en permettant l'utilisation de mémoire transactionnelle compatible avec le matériel plus ancien. –