Rumah >pembangunan bahagian belakang >C++ >Bolehkah Pemproses x86 Moden Benar-benar Gagal Menyimpan Satu Bait?

Bolehkah Pemproses x86 Moden Benar-benar Gagal Menyimpan Satu Bait?

DDD
DDDasal
2024-12-22 13:32:41968semak imbas

Can Modern x86 Processors Really Fail to Store a Single Byte?

Bolehkah Pemproses Moden x86 Gagal Menyimpan Satu Bait ke Ingatan?

Enigma Tuntutan Bjarne Stroustrup:

Dalam buku Stroustrup, dia mencadangkan bahawa beberapa pemproses moden mungkin tidak dapat menyimpan objek yang lebih kecil daripada perkataan. Walau bagaimanapun, pengalaman pengaturcaraan setiap hari nampaknya bercanggah dengan ini. Kami boleh menyimpan bait dengan mudah, seperti yang ditunjukkan oleh program C mudah yang menetapkan dan mencetak nilai bait.

Menyelesaikan Kekeliruan:

Pernyataan Stroustrup mungkin sebenarnya rujuk kepada kerja dalaman CPU apabila melaksanakan arahan bait-stor. Sesetengah CPU mungkin menggunakan operasi baca-ubah suai-tulis atom untuk mengemas kini baris cache yang mengandungi bait sasaran. Walau bagaimanapun, mekanisme dalaman ini tidak dapat dilihat oleh pengaturcara dan tidak mengubah hasil atau ketepatan stor bait.

Model Memori Perkakasan Moden:

Dalam CPU moden, stor bait adalah atom dan tidak menjejaskan bait jiran. Ini dipastikan oleh model memori yang jelas yang mentakrifkan cara perkakasan mengendalikan operasi memori.

Mitos Ketidakstabilan Byte-Store:

Idea bahawa stor bait boleh merosakkan bait bersebelahan adalah usang. Semua seni bina moden (bukan DSP), termasuk x86, mempunyai arahan stor bait yang direka bentuk secara seni bina untuk tidak mengganggu bait jiran.

Kesimpulan:

Sementara kenyataan Stroustrup mungkin tepat pada masa lalu, ia tidak lagi digunakan untuk perkakasan x86 moden. Kedai bait boleh dipercayai dan asas kepada pengaturcaraan C.

Atas ialah kandungan terperinci Bolehkah Pemproses x86 Moden Benar-benar Gagal Menyimpan Satu Bait?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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