L1 önbelleğe sahip CPU bir yazma işlemi gerçekleştirdiğinde, normalde olan şey (yazdığı önbellek satırının zaten L1 önbelleğinde olduğu varsayılarak) önbelleğin (verileri güncellemeye ek olarak) bu önbellek satırını kirli olarak işaretlemesi ve güncellenmiş verilerle ilgili satırı daha sonra yazacaktır.
Olası bir optimizasyon, önbelleğin yazma içeriğini ve önbelleğin önceki içeriğini karşılaştırmasını sağlamaktır ve eğer aynıysa, satırı kirli olarak işaretlemeyin. Bu, önbelleğin zaman zaman geri yazmalardan kaçınmasına izin verebileceğinden, CPU üreticisinin bunu bu mantığı yapmak için gereken kapılara değer olarak nasıl görebildiğini görebiliyorum.
Benim sorum: Bu optimizasyonu yapan CPU'lar var mı?
Neden soruyorum: Arka plan sürekli bellek erişimleri olması gereken bazı kod yazıyorum; yani, önbelleğin davranışını dinleyebilen biri yaptığım şeyi çıkaramamalı. Erişimlerimden bazıları yazıyor ve bu kodu uygulamak için bariz bir şekilde, birçok yazar zaten aynı verileri yazıyor olacak. Yazmaları yapmam gerekiyor, çünkü verilere bağlı olarak yazdığım veriler aynı olabilir veya olmayabilir ve aynı eylemi ne olursa olsun gerçekleştirmek önemlidir. CPU aslında bir 'no-change-write' yazmadan optimize edilirse, bu, önbelleğin davranışının yaptığım şeye bağlı olarak değişeceğini ve hedefimin bozulmasına neden olacağı anlamına gelir.
Peki, yazma işlemlerini bu şekilde optimize etmeye çalışan bir CPU var mı?