Maison > développement back-end > C++ > Dans quelle mesure les charges et les magasins x86 sont-ils atomiques, et quels facteurs affectent l'atomicité ?

Dans quelle mesure les charges et les magasins x86 sont-ils atomiques, et quels facteurs affectent l'atomicité ?

Patricia Arquette
Libérer: 2024-12-03 03:21:10
original
198 Les gens l'ont consulté

How Atomic Are x86 Loads and Stores, and What Factors Affect Atomicity?

Atomicité des charges et magasins sur x86

L'architecture x86 garantit l'atomicité des charges et magasins alignés, jusqu'à la taille des chemins de données entre les cœurs, la mémoire et les bus d’E/S. Cela signifie qu'une seule opération se produira de manière indivisible, et toute autre opération qui l'observe la verra comme s'étant produite entièrement ou pas du tout.

En interne, le CPU peut implémenter l'atomicité "gratuitement" pour les opérations alignées car le transfert de données s'effectue sur un bus de données suffisamment large ou via un seul message. Pour des accès plus larges ou des opérations non alignées, il peut être nécessaire de diviser l'opération en morceaux plus petits et d'effectuer des opérations plus complexes.

Opérations atomiques et cache

Les opérations atomiques peuvent se produire entièrement dans le cache, tant que l'opération ne franchit pas la limite d'une ligne de cache. Cela signifie que les modifications apportées au cache sont suffisantes pour garantir l'atomicité.

Atomic Read-Modify-Writes

Les opérations de lecture-modification-écriture atomique (RMW) sont plus difficiles à mettre en œuvre. Le processeur peut conserver une ligne de cache dans l'état modifié et ignorer les messages de cohérence du cache pendant que l'opération est en cours, ce qui lui permet d'apparaître atomique aux autres cœurs.

Opérations verrouillées non alignées

Les opérations verrouillées non alignées peuvent nécessiter une intervention matérielle plus complexe, comme le verrouillage du bus pour empêcher d'autres accès pendant l'opération.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal