मेमोरी पदानुक्रम और कैश
मेमोरी पदानुक्रम भंडारण को स्तरों में व्यवस्थित करता है — रजिस्टर, कैश, मुख्य मेमोरी और बैकिंग स्टोर — ताकि छोटे, तेज़ स्तरों में वह डेटा रहे जिसका उपयोग होने की सबसे अधिक संभावना है, जिससे कार्यक्रमों को ऐसी मेमोरी का भ्रम होता है जो बड़ी और तेज़ दोनों है।
Definition
एक मेमोरी पदानुक्रम विभिन्न गति, लागत और क्षमता वाली भंडारण प्रौद्योगिकियों की एक स्तरित व्यवस्था है, जिसे इस तरह से प्रबंधित किया जाता है कि अक्सर और हाल ही में एक्सेस किया गया डेटा तेज़, छोटे स्तरों में रहता है — सबसे महत्वपूर्ण रूप से कैश में — ताकि औसत एक्सेस समय को कम किया जा सके।
Scope
यह क्षेत्र बताता है कि संदर्भ की स्थानीयता का लाभ उठाते हुए मेमोरी को पदानुक्रम के रूप में क्यों और कैसे व्यवस्थित किया जाता है। इसमें कैश संरचना (प्लेसमेंट, प्रतिस्थापन और राइट नीतियां), बहु-स्तरीय कैश, प्रोसेसरों में कैश सुसंगतता, वर्चुअल मेमोरी और एड्रेस ट्रांसलेशन, और अंतर्निहित DRAM और उभरती हुई मेमोरी प्रौद्योगिकियां शामिल हैं। यह प्रोसेसर निष्पादन (प्रोसेसर माइक्रोआर्किटेक्चर) और बड़े पैमाने पर फ़ाइल और डिवाइस स्टोरेज (स्टोरेज और I/O सिस्टम) को बाहर करता है, हालांकि यह दोनों से सटा हुआ है।
Sub-topics
Core questions
- संदर्भ की स्थानीयता एक स्तरित मेमोरी पदानुक्रम को प्रभावी क्यों बनाती है?
- प्लेसमेंट, संबद्धता, प्रतिस्थापन और राइट नीति के संदर्भ में कैश कैसे व्यवस्थित होते हैं?
- जब कई कैश में एक ही मेमोरी की प्रतियां होती हैं तो सुसंगतता कैसे बनाए रखी जाती है?
- वर्चुअल मेमोरी एड्रेस का अनुवाद कैसे करती है और बड़ी मेमोरी की सुरक्षा और भ्रम कैसे प्रदान करती है?
- DRAM और उभरती हुई मेमोरी की विशेषताएं सिस्टम प्रदर्शन को कैसे आकार देती हैं?
Key concepts
- अस्थायी और स्थानिक स्थानीयता
- कैश हिट और मिस
- संबद्धता और प्रतिस्थापन नीति
- राइट-थ्रू और राइट-बैक
- बहु-स्तरीय कैश
- कैश सुसंगतता
- वर्चुअल मेमोरी और पेजिंग
- ट्रांसलेशन लुकसाइड बफर
- DRAM और मेमोरी बैंडविड्थ
- औसत मेमोरी एक्सेस समय
Key theories
- संदर्भ की स्थानीयता
- कार्यक्रम हाल ही में एक्सेस किए गए डेटा (अस्थायी स्थानीयता) का पुन: उपयोग करते हैं और आस-पास के एड्रेस (स्थानिक स्थानीयता) तक पहुंचते हैं; मेमोरी पदानुक्रम हाल ही में उपयोग किए गए ब्लॉक को कैश करके और पड़ोसियों को एक साथ प्राप्त करके दोनों का लाभ उठाता है।
- कैश डिज़ाइन ट्रेड-ऑफ
- कैश प्रदर्शन मिस दर, मिस पेनल्टी और हिट समय द्वारा नियंत्रित होता है, और आकार, ब्लॉक आकार, संबद्धता, और प्रतिस्थापन और राइट नीतियों के माध्यम से ट्यून किया जाता है; क्लासिक विश्लेषण इन विकल्पों के लक्ष्यों के रूप में अनिवार्य, क्षमता और संघर्ष मिस की पहचान करते हैं।
Mechanisms
जब प्रोसेसर डेटा का अनुरोध करता है, तो पहले कैश की जाँच की जाती है; एक हिट डेटा को तेज़ी से लौटाता है, जबकि एक मिस निचले स्तर से एक ब्लॉक प्राप्त करता है और प्रतिस्थापन नीति द्वारा दूसरे को हटा सकता है। राइट्स को राइट-थ्रू या राइट-बैक योजनाओं द्वारा प्रसारित किया जाता है, और सुसंगतता प्रोटोकॉल कई कैश को सुसंगत रखते हैं। वर्चुअल मेमोरी एक अनुवाद चरण जोड़ती है — पेज टेबल और एक ट्रांसलेशन लुकसाइड बफर के माध्यम से — जो प्रोग्राम एड्रेस को भौतिक DRAM में मैप करती है जबकि सुरक्षा लागू करती है।
Clinical relevance
मेमोरी पदानुक्रम अक्सर वास्तविक प्रदर्शन पर हावी होता है: क्योंकि प्रोसेसर मुख्य मेमोरी की तुलना में कहीं अधिक तेज़ होते हैं, कैश व्यवहार और स्थानीयता अक्सर कच्चे निर्देश गति से अधिक मायने रखते हैं। कैश-जागरूक डेटा लेआउट, ब्लॉकिंग और प्रीफेचिंग उच्च-प्रदर्शन कंप्यूटिंग, डेटाबेस और मशीन-लर्निंग कर्नेल के लिए केंद्रीय हैं, और कैश टाइमिंग सुरक्षा साइड चैनलों का एक स्रोत बन गई है।
History
मौरिस विल्केस ने 1965 में कैश (एक 'स्लेव मेमोरी') का प्रस्ताव रखा, और कैश IBM System/360 Model 85 जैसी वाणिज्यिक मशीनों में शामिल हो गए। वर्चुअल मेमोरी की उत्पत्ति 1960 के दशक की शुरुआत में एटलस कंप्यूटर से हुई, जिसे डेनिंग के वर्किंग-सेट मॉडल द्वारा औपचारिक रूप दिया गया। एलन जे स्मिथ के 1982 के सर्वेक्षण ने कैश डिज़ाइन ज्ञान को समेकित किया, और प्रोसेसर-मेमोरी गति के अंतर बढ़ने के साथ बहु-स्तरीय कैश और परिष्कृत सुसंगतता प्रोटोकॉल मानक बन गए।
Debates
- स्थानीयता का हार्डवेयर बनाम सॉफ्टवेयर प्रबंधन
- पारदर्शी हार्डवेयर कैशिंग और स्पष्ट रूप से प्रबंधित मेमोरी (स्क्रैचपैड, सॉफ्टवेयर-नियंत्रित प्रीफेच) के बीच निरंतर तनाव है: हार्डवेयर कैशिंग सामान्य और प्रोग्राम करने में आसान है, जबकि विशेष वर्कलोड के लिए स्पष्ट प्रबंधन अधिक अनुमानित और कुशल हो सकता है।
Key figures
- Maurice Wilkes
- Alan Jay Smith
- Peter J. Denning
- John L. Hennessy
- David A. Patterson
Related topics
Seminal works
- hennessy2019
- smith1982cache
- patterson2020
Frequently asked questions
- यदि कैश मुख्य मेमोरी की तुलना में इतने छोटे हैं तो वे प्रभावी क्यों हैं?
- क्योंकि कार्यक्रम स्थानीयता प्रदर्शित करते हैं: किसी भी क्षण वे डेटा के केवल एक छोटे से कार्यशील सेट को बार-बार छूते हैं, और एक्सेस आस-पास के एड्रेस में क्लस्टर होते हैं। उस कार्यशील सेट को रखने वाला एक छोटा कैश इसलिए अधिकांश अनुरोधों को पूरा करता है।
- कैश और वर्चुअल मेमोरी में क्या अंतर है?
- दोनों डेटा को एक तेज़, छोटे स्तर और एक धीमे, बड़े स्तर के बीच ले जाते हैं। एक कैश (हार्डवेयर में प्रबंधित) मुख्य मेमोरी के ब्लॉक रखता है; वर्चुअल मेमोरी (ऑपरेटिंग सिस्टम के साथ प्रबंधित) प्रोग्राम एड्रेस को भौतिक मेमोरी में मैप करती है और डेटा को डिस्क पर और उससे पेज करती है, साथ ही सुरक्षा और भौतिक RAM से बड़ा एड्रेस स्पेस भी प्रदान करती है।