एमओईएसआई प्रोटोकॉल

From alpha
Jump to navigation Jump to search

(विस्तृत विवरण के लिए [[कैश सुसंगतता प्रोटोकॉल (उदाहरण)]] देखें)

कंप्यूटिंग में, MOESI एक पूर्ण कैश सुसंगतता प्रोटोकॉल है जो आमतौर पर अन्य प्रोटोकॉल में उपयोग किए जाने वाले सभी संभावित राज्यों को शामिल करता है। चार सामान्य महीने का प्रोटोकॉल राज्यों के अलावा, एक पांचवां स्वामित्व वाला राज्य है जो डेटा का प्रतिनिधित्व करता है जो संशोधित और साझा दोनों है। यह संशोधित डेटा को साझा करने से पहले मुख्य मेमोरी में वापस लिखने की आवश्यकता से बचाता है। हालाँकि अंततः डेटा को वापस लिखा जाना चाहिए, लेकिन राइट-बैक को स्थगित किया जा सकता है।

इसे संभव बनाने के लिए, डेटा का सीधे कैश-टू-कैश स्थानांतरण संभव होना चाहिए, ताकि संशोधित स्थिति में डेटा वाला कैश उस डेटा को मेमोरी में स्थानांतरित किए बिना किसी अन्य रीडर को आपूर्ति कर सके।

जैसा कि AMD64 आर्किटेक्चर प्रोग्रामर मैनुअल वॉल्यूम में चर्चा की गई है। 2 'सिस्टम प्रोग्रामिंग',[1] प्रत्येक कैश लाइन पाँच अवस्थाओं में से एक में है:

संशोधित
इस कैश में कैश लाइन की एकमात्र वैध प्रति है, और उसने उस प्रतिलिपि में परिवर्तन किए हैं। कैश्ड कॉपी को आगे स्वतंत्र रूप से संशोधित किया जा सकता है।
स्वामित्व
यह पंक्ति सिस्टम में कई प्रतियों में से एक है। इस कैश के पास कॉपी को संशोधित करने की अनुमति नहीं है, लेकिन लाइन मुख्य मेमोरी के सापेक्ष संशोधित (गंदी) है, और इस कैश के पास यह सुनिश्चित करने की विशेष जिम्मेदारी है कि मुख्य मेमोरी अंततः अपडेट हो जाए। सभी साझा प्रतियों को अमान्य करने के बाद कैश लाइन को संशोधित स्थिति में बदला जा सकता है, या मुख्य मेमोरी में Write-back#WRITE-BACK द्वारा साझा स्थिति में बदला जा सकता है। स्वामित्व वाली कैश लाइनों को डेटा के साथ स्नूपी कैश अनुरोध का जवाब देना होगा, यह सुनिश्चित करने के लिए कि मुख्य मेमोरी में पुरानी प्रतिलिपि का उपयोग नहीं किया गया है।
एक्सक्लूसिव
इस कैश में लाइन की एकमात्र प्रति है, लेकिन लाइन साफ ​​(असंशोधित) है। इसे संशोधित अवस्था में बदलते हुए लिखा जा सकता है।
साझा
यह पंक्ति सिस्टम में कई प्रतियों में से एक है। इस कैश के पास प्रतिलिपि को संशोधित करने की अनुमति नहीं है. एमईएसआई प्रोटोकॉल के विपरीत, एक साझा कैश लाइन मेमोरी के संबंध में गंदी हो सकती है; यदि ऐसा है, तो एक कैश की स्वामित्व वाली स्थिति में एक प्रति होती है, और वह कैश अंततः मुख्य मेमोरी को अपडेट करने के लिए जिम्मेदार होता है। यदि कोई कैश स्वामित्व वाली स्थिति में लाइन नहीं रखता है, तो मेमोरी कॉपी अद्यतित है। कैश लाइन लिखी नहीं जा सकती है, लेकिन अन्य सभी कैश्ड प्रतियों को अमान्य करके, पहले इसे विशिष्ट या संशोधित स्थिति में बदला जाना चाहिए। (यदि कैश लाइन पहले स्वामित्व में थी, तो अमान्य प्रतिक्रिया यह इंगित करेगी, और स्थिति संशोधित हो जाएगी, इसलिए अंततः डेटा को मेमोरी में वापस लिखने की बाध्यता को भुलाया नहीं जाएगा।) इसे खारिज भी किया जा सकता है (अमान्य स्थिति में बदला जा सकता है) ) किसी भी समय।
अमान्य
यह ब्लॉक मान्य नहीं है; किसी भी पहुंच के प्रयास को संतुष्ट करने के लिए इसे लाया जाना चाहिए।

कैश की किसी भी जोड़ी के लिए, दी गई कैश लाइन की अनुमत स्थितियाँ इस प्रकार हैं:

 M   O   E   S   I 
 M  Red XN Red XN Red XN Red XN Green tickY
 O  Red XN Red XN Red XN Green tickY Green tickY
 E  Red XN Red XN Red XN Red XN Green tickY
 S  Red XN Green tickY Red XN Green tickY Green tickY
 I  Green tickY Green tickY Green tickY Green tickY Green tickY

(जिस क्रम में राज्यों को आम तौर पर सूचीबद्ध किया जाता है वह केवल संक्षिप्त नाम MOESI को उच्चारण योग्य बनाने के लिए कार्य करता है।)

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

जबकि MOESI कैश से गंदी कैश लाइनों को तुरंत साझा कर सकता है, इसे कैश से साफ लाइनों को जल्दी से साझा करने में कठिनाई हो सकती है। यदि कैश मुख्य स्मृति के संबंध में और साझा स्थिति में साफ है, तो रीड रिक्वेस्ट का जवाब देने के लिए कोई स्पष्ट एकल उम्मीदवार कैश नहीं है, इसलिए रीड रिक्वेस्ट को मेमोरी से भरने देना सामान्य है। (इसे एमईएसआईएफ प्रोटोकॉल द्वारा हल किया जाता है, जिसे एमओईएसआईएफ बनाने के लिए एमओईएसआई के साथ जोड़ा जा सकता है।)

यदि कोई प्रोसेसर स्वामित्व वाली कैश लाइन पर लिखना चाहता है, तो उसे अन्य प्रोसेसर को सूचित करना होगा जो उस कैश लाइन को साझा कर रहे हैं। मानक कार्यान्वयन बस उन्हें अपनी प्रतियों को अमान्य करने के लिए कहता है, जब यह पूरा हो जाता है तो अपनी प्रति को संशोधित स्थिति में ले जाता है, लेकिन वैकल्पिक रूप से यह कैश (कंप्यूटिंग)#लेखन नीतियों|राइट-थ्रू नीति का उपयोग कर सकता है, जो उन्हें अपनी प्रतियों को अद्यतन करने के लिए कहता है। नई सामग्री. यह एक आंशिक राइट-थ्रू है जो मुख्य मेमोरी तक नहीं जाता है; प्रोसेसर की अपनी प्रति स्वामित्व वाली स्थिति में रहती है।

यदि एकाधिक सक्रिय पाठक हैं तो उत्तरार्द्ध कैश ट्रैफ़िक को कम कर देता है। एक भारी संसाधन विवाद लॉक; पढ़ने के अनुरोधों की थंडरिंग झुंड समस्या के अलग-अलग उत्तरों की तुलना में एक प्रसारण लेखन कम संचार है। क्योंकि ये दोनों वेरिएंट पूरी तरह से संगत हैं, इन दोनों का उपयोग इस कैश लाइन के सक्रिय पाठकों की संख्या के कैश के अनुमान जैसे आंकड़ों के आधार पर एक ही सिस्टम में किया जा सकता है।

यह भी देखें

संदर्भ

  1. "AMD64 Architecture Programmer's Manual Vol 2 'System Programming'" (PDF). pp. 169–172. Archived from the original (PDF) on June 19, 2017. Retrieved August 28, 2015.