Rumah > pembangunan bahagian belakang > C++ > Bolehkah CPU x86 Moden Benar-benar Tidak Menyimpan Satu Bait ke Memori secara Atom?

Bolehkah CPU x86 Moden Benar-benar Tidak Menyimpan Satu Bait ke Memori secara Atom?

Linda Hamilton
Lepaskan: 2024-12-29 08:49:10
asal
626 orang telah melayarinya

Can Modern x86 CPUs Really Not Atomically Store a Single Byte to Memory?

Bolehkah Perkakasan Moden x86 Tidak Menyimpan Satu Bait ke Memori?

Kenyataan Stroustrup dalam bukunya merujuk kepada potensi tingkah laku perkakasan hipotesis tanpa model ingatan yang jelas. Beliau mencadangkan bahawa perkakasan sedemikian mungkin melaksanakan stor bait dengan kemas kini bukan atom, yang berpotensi menjejaskan bait jiran.

Gelagat Perkakasan Moden Sebenar

Walau bagaimanapun, perkakasan moden, termasuk x86, tidak berkelakuan seperti Stroustrup menerangkan:

  • Stor bait tunggal pada perkakasan x86 adalah atom dan tidak mengganggu bait sekeliling.
  • Melaksanakan stor bait dengan kitaran RMW atom (baca-ubah suai-tulis) adalah tidak perlu dan tidak cekap pada CPU berprestasi tinggi.
  • Sesetengah CPU bukan x86 mungkin menggunakan kitaran RMW atom secara dalaman untuk melaksanakan stor bait, tetapi ini tidak kelihatan kepada perisian luaran.

Konteks Sejarah

Pernyataan Stroustrup mungkin berdasarkan tingkah laku pemproses Alpha AXP awal, yang pada mulanya tidak menyokong arahan muat/simpan bait. Walau bagaimanapun, versi Alpha dan semua CPU moden yang terkemudian menyokong stor bait yang selamat dan cekap.

Pelaksanaan Perkakasan

CPU moden biasanya menggunakan cache yang menyimpan segmen memori. Dalam sistem cache:

  • Semua stor bait dalam baris cache adalah atom.
  • CPU mengambil keseluruhan baris cache, mengubah suai bait dan menulis baris itu kembali ke ingatan.
  • Pengawal cache kekal mengawal baris semasa kemas kini bait dilakukan, menghalang perubahan yang tidak diingini oleh orang lain teras.

Pengecualian

Walaupun CPU moden menyediakan storan bait atom, mungkin terdapat pengecualian dalam situasi tertentu:

  • Tidak boleh dicacah kawasan memori mungkin tidak mempunyai perlindungan yang sama, yang berpotensi membenarkan bait bukan atom menulis.
  • Operasi I/O ke peranti mungkin bukan atom pada tahap bait.

Kesimpulan

Dalam amalan, perkakasan moden menyokong storan bait atom, menjadikan penerangan Stroustrup tentang kemungkinan tingkah laku perkakasan kurang relevan dengan sistem sebenar. Jaminan model memori yang disediakan oleh penyusun C bergantung pada gelagat perkakasan moden yang boleh dipercayai untuk memastikan keselamatan benang.

Atas ialah kandungan terperinci Bolehkah CPU x86 Moden Benar-benar Tidak Menyimpan Satu Bait ke Memori secara Atom?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan