जवाबों:
अगर मेरे पास दो कोर वाला सीपीयू है, तो प्रत्येक कोर का अपना एल 1 कैश है, क्या यह संभव है कि कोर 1 और कोर 2 एक ही समय में मेमोरी का एक ही हिस्सा कैश करते हैं?
हाँ। यदि यह मामला नहीं था तो प्रदर्शन भयानक होगा। एक ही कोड को चलाने वाले दो धागों पर विचार करें। आप उस कोड को L1 कैश में चाहते हैं।
यदि यह संभव है, तो मुख्य मेमोरी का मूल्य क्या होगा यदि Core1 और Core2 दोनों ने अपने मूल्य को कैश में संपादित किया है?
पुराना मान मुख्य मेमोरी में होगा, जो तब तक मायने नहीं रखेगा जब तक कि सीपीयू इसे नहीं पढ़ेगा। कैश से संशोधित मूल्य को खारिज करने से पहले, इसे मेमोरी में लिखा जाना चाहिए। आमतौर पर MESI प्रोटोकॉल के कुछ प्रकार का उपयोग किया जाता है। एमईएसआई के पारंपरिक कार्यान्वयन में, यदि कोई मूल्य एक कैश में संशोधित किया गया है, तो यह उसी स्तर पर किसी अन्य कैश में बिल्कुल भी मौजूद नहीं हो सकता है।
हां, यह (दो कैश कैश एक ही मेमोरी क्षेत्र में) हो सकता है, वास्तव में यह एक समस्या है जो व्यवहार में बहुत अधिक होती है। उदाहरण के लिए, विभिन्न समाधान हैं:
समस्या को कैश सुसंगतता कहा जाता है । विषय पर विकिपीडिया लेख समस्या और संभव समाधान का एक अच्छा सिंहावलोकन है।
अपने शीर्षक में प्रश्न का उत्तर देने के लिए, यह निर्भर करता है कि कैशिंग प्रोटोकॉल क्या है। अगर यह राइट-बैक है, तो कैश केवल मुख्य मेमोरी में वापस आ जाएगा जब कैश कंट्रोलर के पास पहले से ही कब्जे वाले स्थान पर एक नया कैश ब्लॉक डालने के अलावा कोई विकल्प नहीं होगा। अंतरिक्ष पर पहले से कब्जा कर लिया गया ब्लॉक हटा दिया गया है और इसका मान वापस मुख्य मेमोरी में लिखा गया है।
अन्य प्रोटोकॉल राइट-थ्रू है। उस स्थिति में, कभी भी कैश ब्लॉक स्तर n पर लिखा जाता है, स्तर पर संगत ब्लॉक (n + 1) अपडेट किया जाता है। (यह कार्बन पेपर के साथ हमारे फॉर्म को भरने के लिए अवधारणा के समान है, जो भी आप शीर्ष पर लिखते हैं वह नीचे दी गई शीट पर कॉपी किया जाता है।) यह धीमा है क्योंकि इसमें स्पष्ट रूप से अधिक लेखन कार्य शामिल हैं, लेकिन कैश के बीच के मूल्य अधिक सुसंगत हैं। राइट-बैक स्कीम में, केवल उच्चतम स्तर के कैश में किसी विशेष मेमोरी ब्लॉक के लिए अधिकतम अप-टू-डेट मूल्य होगा।