जब L1 कैश के साथ CPU एक लेखन करता है, तो सामान्य रूप से क्या होता है (यह मानते हुए कि कैश लाइन जो इसे लिख रहा है वह पहले से ही L1 कैश में है) कैश (डेटा को अपडेट करने के अलावा) उस कैश लाइन को गंदा के रूप में चिह्नित करता है , और कुछ समय बाद अपडेट किए गए डेटा के साथ लाइन को लिख देगा।
एक संभावित अनुकूलन यह होगा कि कैश लेखन की सामग्री और कैश की पिछली सामग्री की तुलना करें, और यदि वे समान हैं, तो लाइन को गंदे के रूप में चिह्नित न करें। क्योंकि यह कैश को अवसर पर राइट-बैक से बचने की अनुमति दे सकता है, मैं देख सकता हूं कि सीपीयू निर्माता इस तर्क को करने के लिए आवश्यक फाटकों के रूप में कैसे देख सकते हैं।
मेरा प्रश्न: क्या सीपीयू हैं जो इस अनुकूलन को करते हैं?
पृष्ठभूमि के रूप में मैं क्यों पूछ रहा हूं: मैं कुछ कोड लिख रहा हूं जिनके लिए निरंतर मेमोरी एक्सेस की आवश्यकता है; अर्थात्, कोई व्यक्ति जो कैश के व्यवहार को सुनने में सक्षम है, जो मैं कर रहा हूं वह कटौती करने में सक्षम नहीं होना चाहिए। मेरे कुछ अभिगम लिखते हैं, और स्पष्ट रूप से इस कोड को लागू करने के लिए, बहुत सारे लेखन वही डेटा लिखेंगे जो पहले से ही हैं। मुझे लिखने की ज़रूरत है क्योंकि, डेटा के आधार पर, मैं जो डेटा लिख रहा हूं, वह समान हो सकता है या नहीं भी हो सकता है, और यह महत्वपूर्ण है कि समान कार्रवाई को निष्पादित करना महत्वपूर्ण है। यदि सीपीयू वास्तव में 'नो-चेंज-राइट' न लिखकर अनुकूलन करता है, तो इसका मतलब होगा कि कैश का व्यवहार मेरे द्वारा किए जा रहे कार्यों के आधार पर अलग-अलग होगा, जो मेरे लक्ष्य को घटा देगा।
तो, क्या एक सीपीयू है जो इस तरह से लिखने का अनुकूलन करने की कोशिश करता है?