Model Memori x86 dan Semantik Release-Acquire
Sebagai susulan kepada siasatan terdahulu mengenai pelaksanaan storan atom memory_order_release menggunakan MOV arahan x86, soalan telah dibangkitkan tentang cara keluaran-dan-perolehan dicapai pada x86 tanpa tambahan mekanisme penyegerakan seperti pagar atau kunci.
Pemesanan Memori Pemproses Tunggal
Intel Volume 3A Bab 8 Manual Pembangunan Sistemnya menyatakan bahawa dalam sistem pemproses tunggal, dimuatkan dan menulis mempunyai jaminan pesanan tertentu:
Pemesanan Memori Berbilang Pemproses
Walau bagaimanapun, bahagian berbilang pemproses dokumen tidak menyebut secara eksplisit cara beban dikuatkuasakan. Ia memberi tumpuan kepada:
Pemerolehan dan Pelepasan Menggunakan MOV
Pemahaman prinsip pesanan memori pemproses tunggal adalah penting. Menurut manual, prinsip yang sama digunakan untuk sistem berbilang pemproses apabila mengakses memori kongsi koheren cache. Ini bermakna penyusunan semula hanya berlaku secara setempat dalam setiap teras CPU.
Setelah kedai menjadi kelihatan di seluruh dunia, ia menjadi kelihatan kepada semua teras secara serentak, memastikan semua teras memerhati tulisan dalam susunan yang konsisten. Inilah sebabnya mengapa hanya halangan tempatan, seperti mfence dalam x86, diperlukan untuk mewujudkan ketekalan berurutan.
Pandangan Memori Kongsi Koheren
Senibina x86 mengekalkan perkongsian yang koheren pandangan memori melalui cache yang koheren. Takrifan Intel mengenai mekanisme berbilang pemprosesan menyerlahkan kepentingan kesepaduan memori dan ketekalan cache untuk memastikan semua pemproses mempunyai akses kepada data yang sama.
Tambahan Sumber
Atas ialah kandungan terperinci Bagaimanakah x86 Mencapai Semantik Release-Acquire Tanpa Pagar Eksplisit?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!