सीपीयू कैश मुख्य मेमोरी में कब वापस आ जाता है?


18

अगर मेरे पास दो कोर वाला सीपीयू है, तो प्रत्येक कोर का अपना एल 1 कैश है, क्या यह संभव है कि कोर 1 और कोर 2 एक ही समय में मेमोरी का एक ही हिस्सा कैश करते हैं?
यदि यह संभव है, तो मुख्य मेमोरी का मूल्य क्या होगा यदि Core1 और Core2 दोनों ने अपने मूल्य को कैश में संपादित किया है?

जवाबों:


26

अगर मेरे पास दो कोर वाला सीपीयू है, तो प्रत्येक कोर का अपना एल 1 कैश है, क्या यह संभव है कि कोर 1 और कोर 2 एक ही समय में मेमोरी का एक ही हिस्सा कैश करते हैं?

हाँ। यदि यह मामला नहीं था तो प्रदर्शन भयानक होगा। एक ही कोड को चलाने वाले दो धागों पर विचार करें। आप उस कोड को L1 कैश में चाहते हैं।

यदि यह संभव है, तो मुख्य मेमोरी का मूल्य क्या होगा यदि Core1 और Core2 दोनों ने अपने मूल्य को कैश में संपादित किया है?

पुराना मान मुख्य मेमोरी में होगा, जो तब तक मायने नहीं रखेगा जब तक कि सीपीयू इसे नहीं पढ़ेगा। कैश से संशोधित मूल्य को खारिज करने से पहले, इसे मेमोरी में लिखा जाना चाहिए। आमतौर पर MESI प्रोटोकॉल के कुछ प्रकार का उपयोग किया जाता है। एमईएसआई के पारंपरिक कार्यान्वयन में, यदि कोई मूल्य एक कैश में संशोधित किया गया है, तो यह उसी स्तर पर किसी अन्य कैश में बिल्कुल भी मौजूद नहीं हो सकता है।


15

हां, यह (दो कैश कैश एक ही मेमोरी क्षेत्र में) हो सकता है, वास्तव में यह एक समस्या है जो व्यवहार में बहुत अधिक होती है। उदाहरण के लिए, विभिन्न समाधान हैं:

  • दो कैश यह सुनिश्चित करने के लिए संवाद कर सकते हैं कि वे असहमत न हों
  • आपके पास किसी प्रकार का पर्यवेक्षक हो सकता है जो सभी कैश की निगरानी करता है और तदनुसार उन्हें अपडेट करता है
  • प्रत्येक प्रोसेसर मेमोरी क्षेत्रों की निगरानी करता है जिसे उसने कैश किया है, और जब वह एक लिखने का पता लगाता है, तो वह उसका (अब अमान्य कैश) फेंक देता है

समस्या को कैश सुसंगतता कहा जाता है । विषय पर विकिपीडिया लेख समस्या और संभव समाधान का एक अच्छा सिंहावलोकन है।


2

अपने शीर्षक में प्रश्न का उत्तर देने के लिए, यह निर्भर करता है कि कैशिंग प्रोटोकॉल क्या है। अगर यह राइट-बैक है, तो कैश केवल मुख्य मेमोरी में वापस आ जाएगा जब कैश कंट्रोलर के पास पहले से ही कब्जे वाले स्थान पर एक नया कैश ब्लॉक डालने के अलावा कोई विकल्प नहीं होगा। अंतरिक्ष पर पहले से कब्जा कर लिया गया ब्लॉक हटा दिया गया है और इसका मान वापस मुख्य मेमोरी में लिखा गया है।

अन्य प्रोटोकॉल राइट-थ्रू है। उस स्थिति में, कभी भी कैश ब्लॉक स्तर n पर लिखा जाता है, स्तर पर संगत ब्लॉक (n + 1) अपडेट किया जाता है। (यह कार्बन पेपर के साथ हमारे फॉर्म को भरने के लिए अवधारणा के समान है, जो भी आप शीर्ष पर लिखते हैं वह नीचे दी गई शीट पर कॉपी किया जाता है।) यह धीमा है क्योंकि इसमें स्पष्ट रूप से अधिक लेखन कार्य शामिल हैं, लेकिन कैश के बीच के मूल्य अधिक सुसंगत हैं। राइट-बैक स्कीम में, केवल उच्चतम स्तर के कैश में किसी विशेष मेमोरी ब्लॉक के लिए अधिकतम अप-टू-डेट मूल्य होगा।


1
मुझे आश्चर्य है कि यहां कितने प्रतिशत पाठकों ने कभी कार्बन पेपर का उपयोग किया है। :)
बारमर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.