कैश सुसंगतता प्रोटोकॉल
कैश सुसंगतता प्रोटोकॉल साझा-मेमोरी मल्टीप्रोसेसर में कई निजी कैश को सुसंगत रखते हैं, यह सुनिश्चित करते हुए कि जब एक कोर किसी मेमोरी स्थान पर लिखता है, तो अन्य कोर पुरानी कैश की गई प्रतियों को पढ़ना जारी न रखें।
Definition
एक कैश सुसंगतता प्रोटोकॉल एक तंत्र है जो कई प्रोसेसर के निजी कैश में साझा मेमोरी का एक सुसंगत दृश्य बनाए रखता है, प्रत्येक कैश किए गए ब्लॉक की स्थिति को ट्रैक करके और रीड और राइट को समन्वयित करके ताकि एक राइट दृश्यमान हो जाए और पुरानी प्रतियों का उपयोग न किया जाए।
Scope
यह विषय सुसंगतता समस्या और उसके समाधानों को शामिल करता है: अमान्यकरण बनाम अद्यतन प्रोटोकॉल, साझा बस पर स्नूपिंग प्रोटोकॉल, स्केलेबल सिस्टम के लिए निर्देशिका-आधारित प्रोटोकॉल, और MSI और MESI जैसे विहित स्टेट मशीनें। यह बताता है कि हार्डवेयर कैश में मेमोरी के एक सुसंगत दृश्य को कैसे संरक्षित करता है। यह पतों पर संचालन के क्रम (मेमोरी सुसंगतता, साझा-मेमोरी-और-सुसंगतता के तहत) और एकल-कैश नीतियों (कैश संगठन और नीतियां) को बाहर करता है।
Core questions
- कैश के सुसंगत होने का क्या अर्थ है, और सुसंगतता की आवश्यकता क्यों है?
- अमान्यकरण और अद्यतन प्रोटोकॉल कैसे भिन्न होते हैं?
- स्नूपिंग प्रोटोकॉल सुसंगतता बनाए रखने के लिए साझा इंटरकनेक्ट का उपयोग कैसे करते हैं?
- निर्देशिका प्रोटोकॉल साझा बस से परे सुसंगतता को कैसे बढ़ाते हैं?
Key concepts
- सुसंगतता समस्या
- अमान्यकरण बनाम अद्यतन प्रोटोकॉल
- स्नूपिंग प्रोटोकॉल
- निर्देशिका-आधारित प्रोटोकॉल
- MSI और MESI स्थितियाँ
- साझा बस और इंटरकनेक्ट
- गलत साझाकरण
- राइट क्रमबद्धता
Key theories
- स्टेट-आधारित सुसंगतता (MSI/MESI)
- प्रत्येक कैश किए गए ब्लॉक को राज्यों के एक छोटे सेट में ट्रैक किया जाता है (जैसे संशोधित, अनन्य, साझा, अमान्य); रीड और राइट स्टेट ट्रांज़िशन और सुसंगतता संदेशों को ट्रिगर करते हैं जो यह सुनिश्चित करते हैं कि अधिकतम एक लेखक हो और पाठक कभी भी पुराना डेटा न देखें।
Mechanisms
प्रत्येक कैश ब्लॉक एक सुसंगतता स्थिति रखता है। स्नूपिंग प्रोटोकॉल में प्रत्येक कैश बस लेनदेन का अवलोकन (स्नूप) करता है और तदनुसार अपनी प्रतियों को अपडेट या अमान्य करता है; निर्देशिका प्रोटोकॉल में एक निर्देशिका रिकॉर्ड करती है कि कौन से कैश प्रत्येक ब्लॉक को रखते हैं और लक्षित सुसंगतता संदेश भेजते हैं। एक साझा ब्लॉक पर एक राइट पहले अन्य प्रतियों को अमान्य करता है (एक अमान्यकरण प्रोटोकॉल में), लेखक को डेटा को संशोधित करने से पहले विशेष स्वामित्व प्रदान करता है।
Clinical relevance
सुसंगतता साझा-मेमोरी मल्टीप्रोसेसिंग को प्रोग्रामेबल बनाती है: सॉफ्टवेयर मेमोरी को एक एकल साझा स्टोर के रूप में मान सकता है जबकि हार्डवेयर कई कैश के अस्तित्व को छिपाता है। हालांकि, सुसंगतता ट्रैफ़िक और गलत साझाकरण जैसे प्रभाव समानांतर कार्यक्रमों में प्रदर्शन पर हावी हो सकते हैं, इसलिए स्केलेबल मल्टीथ्रेडेड सॉफ्टवेयर के लिए सुसंगतता के बारे में जागरूकता महत्वपूर्ण है।
History
1980 के दशक में बस-आधारित मल्टीप्रोसेसरों के साथ सुसंगतता प्रोटोकॉल उभरे, जहाँ राइट-अमान्यकरण और MESI परिवार जैसी स्नूपिंग योजनाएं मानक बन गईं। जैसे-जैसे सिस्टम एक एकल बस से आगे बढ़े, वितरित साझा मेमोरी के लिए निर्देशिका-आधारित प्रोटोकॉल विकसित किए गए, और मल्टीकोर प्रोसेसर में सुसंगतता एक केंद्रीय डिजाइन समस्या बनी हुई है।
Debates
- स्नूपिंग बनाम निर्देशिका सुसंगतता
- स्नूपिंग छोटे साझा-बस सिस्टम पर सरल और तेज़ है लेकिन स्केलेबल नहीं है, जबकि निर्देशिकाएं जटिलता और भंडारण की लागत पर कई कोर तक बढ़ती हैं; बड़े डिज़ाइन अक्सर पदानुक्रमित या हाइब्रिड दृष्टिकोणों को जोड़ते हैं।
Key figures
- David E. Culler
- Mark D. Hill
- James R. Goodman
- John L. Hennessy
Related topics
Seminal works
- hennessy2019
- culler1999
Frequently asked questions
- सुसंगतता और संगति में क्या अंतर है?
- सुसंगतता एक एकल मेमोरी स्थान से संबंधित है: सभी कैश को अंततः इसके मूल्य पर सहमत होना चाहिए और उस पर राइट्स को क्रम में देखना चाहिए। संगति (मेमोरी संगति मॉडल) विभिन्न प्रोसेसर द्वारा देखे गए विभिन्न स्थानों पर संचालन के क्रम से संबंधित है। एक अच्छी तरह से परिभाषित संगति मॉडल के लिए सुसंगतता आवश्यक है लेकिन पर्याप्त नहीं है।
- गलत साझाकरण क्या है?
- गलत साझाकरण तब होता है जब विभिन्न कोर द्वारा उपयोग किए जाने वाले स्वतंत्र चर एक ही कैश ब्लॉक में स्थित होते हैं। क्योंकि सुसंगतता ब्लॉक ग्रैन्युलैरिटी पर काम करती है, एक कोर द्वारा राइट्स दूसरों में ब्लॉक को अमान्य कर देते हैं, भले ही वे विभिन्न चर को छूते हों, जिससे अनावश्यक सुसंगतता ट्रैफ़िक और धीमापन होता है।