Non-Temporel instructions SSE (MOVNTI, MOVNTQ, etc.), ne suivez pas les normal de cache-cohérence des règles. Dès lors, la non-temporelle des magasins doit être suivi par un SFENCE instruction pour que leurs résultats soient visibles par les autres processeurs en temps opportun.
Lorsque les données sont produites et pas (immédiatement) de consommé de nouveau, le fait que la mémoire des opérations de magasin de lire l'intégralité d'un cache de premier la ligne et ensuite modifier les données mises en cache qui est préjudiciable à la performance. Cette opération pousse des données des caches qui pourrait l'être à nouveau en faveur de données qui ne seront pas utilisées bientôt. Cela est particulièrement vrai pour les grandes structures de données, comme les matrices, qui sont remplis, puis utilisé plus tard. Avant le dernier élément de la matrice est remplie de la taille expulse les premiers éléments, faire de la mise en cache des écritures inefficace.
Pour cela et pour des situations similaires, les processeurs de fournir un soutien pour les non-temporelle des opérations d'écriture. Non-temporel dans ce contexte signifie que les données ne seront pas réutilisés bientôt, il n'y a pas de raison de les mettre en cache. Ces non-temporel des opérations d'écriture ne pas lire une ligne de cache et ensuite de le modifier; au lieu de cela, le nouveau contenu est directement écrit à la mémoire.
Source: http://lwn.net/Articles/255364/