Ketika CPU dengan cache L1 melakukan penulisan, yang biasanya terjadi adalah (dengan asumsi bahwa baris cache yang sedang ditulisnya sudah ada dalam cache L1) cache (selain memperbarui data) menandai bahwa garis cache sebagai kotor , dan akan menulis garis keluar dengan data yang diperbarui di beberapa waktu kemudian.
Salah satu optimasi yang mungkin dilakukan adalah membuat cache membandingkan konten penulisan dan isi cache sebelumnya, dan jika keduanya sama, jangan tandai baris sebagai kotor. Karena ini memungkinkan cache untuk menghindari write-backs sesekali, saya dapat melihat bagaimana produsen CPU melihat ini sepadan dengan gerbang yang diperlukan untuk melakukan logika ini.
Pertanyaan saya: apakah ada CPU yang melakukan optimasi ini?
Latar belakang mengapa saya bertanya: Saya sedang menulis beberapa kode yang perlu memiliki akses memori yang konstan; yaitu, seseorang yang dapat mendengarkan perilaku cache seharusnya tidak dapat menyimpulkan apa yang saya lakukan. Beberapa akses saya adalah menulis, dan dengan cara yang jelas untuk menerapkan kode ini, banyak penulisan akan menulis data yang sama yang sudah ada di sana. Saya perlu melakukan penulisan karena, tergantung pada data, data yang saya tulis mungkin sama atau tidak sama, dan penting untuk melakukan tindakan yang sama. Jika CPU mengoptimalkan dengan tidak benar-benar menulis 'tidak ada perubahan-tulis', itu berarti bahwa perilaku cache akan bervariasi tergantung pada apa yang saya lakukan, yang akan menumbangkan tujuan saya.
Jadi, adakah CPU yang mencoba mengoptimalkan penulisan dengan cara ini?