अनुवाद लुकसाइड बफर: Difference between revisions

From Vigyanwiki
(Created page with "{{Short description|Computer component}} {{Use dmy dates|date=September 2019}} ट्रांसलेशन लुकसाइड बफ़र (TLB) एक मेमोर...")
 
No edit summary
Line 1: Line 1:
{{Short description|Computer component}}
{{Short description|Computer component}}
{{Use dmy dates|date=September 2019}}
ट्रांसलेशन लुकसाइड बफ़र (TLB) एक मेमोरी CPU कैश है जो [[ आभासी मेमोरी |आभासी मेमोरी]] के हाल के अनुवादों को भौतिक मेमोरी में संग्रहीत करता है। इसका उपयोग उपयोगकर्ता मेमोरी स्थान तक पहुंचने में लगने वाले समय को कम करने के लिए किया जाता है।<ref name="ostep-1">{{citation |last1=Arpaci-Dusseau |first1=Remzi H. |title=Operating Systems: Three Easy Pieces [Chapter: Faster Translations (TLBs)] |date=2014 |url=http://pages.cs.wisc.edu/~remzi/OSTEP/vm-tlbs.pdf |publisher=Arpaci-Dusseau Books |last2=Arpaci-Dusseau |first2=Andrea C.}}</ref> इसे एड्रेस-ट्रांसलेशन कैश कहा जा सकता है। यह चिप की [[ मेमोरी प्रबंधन इकाई |मेमोरी प्रबंधन इकाई]] | मेमोरी-मैनेजमेंट यूनिट (एमएमयू) का एक हिस्सा है। एक TLB [[सेंट्रल प्रोसेसिंग यूनिट]] और CPU कैश के बीच, CPU कैश और मेन मेमोरी के बीच या मल्टी-लेवल कैश के विभिन्न स्तरों के बीच हो सकता है। अधिकांश डेस्कटॉप, लैपटॉप और सर्वर प्रोसेसर में मेमोरी-मैनेजमेंट हार्डवेयर में एक या एक से अधिक TLB शामिल होते हैं, और यह लगभग हमेशा किसी भी प्रोसेसर में मौजूद होता है जो [[पेजिंग]] या [[ स्मृति विभाजन |स्मृति विभाजन]] वर्चुअल मेमोरी का उपयोग करता है।
ट्रांसलेशन लुकसाइड बफ़र (TLB) एक मेमोरी CPU कैश है जो [[ आभासी मेमोरी ]] के हाल के अनुवादों को भौतिक मेमोरी में संग्रहीत करता है। इसका उपयोग उपयोगकर्ता मेमोरी स्थान तक पहुंचने में लगने वाले समय को कम करने के लिए किया जाता है।<ref name="ostep-1">{{citation |last1=Arpaci-Dusseau |first1=Remzi H. |title=Operating Systems: Three Easy Pieces [Chapter: Faster Translations (TLBs)] |date=2014 |url=http://pages.cs.wisc.edu/~remzi/OSTEP/vm-tlbs.pdf |publisher=Arpaci-Dusseau Books |last2=Arpaci-Dusseau |first2=Andrea C.}}</ref> इसे एड्रेस-ट्रांसलेशन कैश कहा जा सकता है। यह चिप की [[ मेमोरी प्रबंधन इकाई ]] | मेमोरी-मैनेजमेंट यूनिट (एमएमयू) का एक हिस्सा है। एक TLB [[सेंट्रल प्रोसेसिंग यूनिट]] और CPU कैश के बीच, CPU कैश और मेन मेमोरी के बीच या मल्टी-लेवल कैश के विभिन्न स्तरों के बीच हो सकता है। अधिकांश डेस्कटॉप, लैपटॉप और सर्वर प्रोसेसर में मेमोरी-मैनेजमेंट हार्डवेयर में एक या एक से अधिक TLB शामिल होते हैं, और यह लगभग हमेशा किसी भी प्रोसेसर में मौजूद होता है जो [[पेजिंग]] या [[ स्मृति विभाजन ]] वर्चुअल मेमोरी का उपयोग करता है।


TLB को कभी-कभी सामग्री-पता योग्य मेमोरी (CAM) के रूप में लागू किया जाता है। सीएएम खोज कुंजी आभासी पता है, और खोज परिणाम एक [[भौतिक पता]] है। यदि अनुरोधित पता टीएलबी में मौजूद है, तो सीएएम खोज जल्दी से एक मैच देती है और पुनर्प्राप्त भौतिक पते का उपयोग स्मृति तक पहुंचने के लिए किया जा सकता है। इसे टीएलबी हिट कहा जाता है। यदि अनुरोधित पता टीएलबी में नहीं है, तो यह एक मिस है, और पेज वॉक नामक प्रक्रिया में [[पेज टेबल]] को देखकर अनुवाद आगे बढ़ता है। प्रोसेसर की गति की तुलना में पेज वॉक समय लेने वाला है, क्योंकि इसमें कई मेमोरी स्थानों की सामग्री को पढ़ना और भौतिक पते की गणना करने के लिए उनका उपयोग करना शामिल है। पेज वॉक द्वारा भौतिक पता निर्धारित करने के बाद, भौतिक पता मैपिंग के लिए आभासी पता टीएलबी में दर्ज किया जाता है। उदाहरण के लिए, [[PowerPC 604]] में डेटा लोड और स्टोर के लिए दो-तरफ़ा [[ सेट साहचर्य ]] TLB है।<ref>{{cite journal|url=http://users.ece.gatech.edu/~scotty/7102/PPC604.pdf|title=The PowerPC 604 RISC Microprocessor|author1=S. Peter Song|author2=Marvin Denman|author3=Joe Chang|journal=IEEE Micro|volume=14|issue=5|date=October 1994|pages=13–14|doi=10.1109/MM.1994.363071|s2cid=11603864 |archive-url=https://web.archive.org/web/20160601135015/http://users.ece.gatech.edu/~scotty/7102/PPC604.pdf|archive-date=2016-06-01|url-status=dead}}</ref> कुछ प्रोसेसर के अलग-अलग निर्देश और डेटा एड्रेस टीएलबी होते हैं।
TLB को कभी-कभी सामग्री-पता योग्य मेमोरी (CAM) के रूप में लागू किया जाता है। सीएएम खोज कुंजी आभासी पता है, और खोज परिणाम एक [[भौतिक पता]] है। यदि अनुरोधित पता टीएलबी में मौजूद है, तो सीएएम खोज जल्दी से एक मैच देती है और पुनर्प्राप्त भौतिक पते का उपयोग स्मृति तक पहुंचने के लिए किया जा सकता है। इसे टीएलबी हिट कहा जाता है। यदि अनुरोधित पता टीएलबी में नहीं है, तो यह एक मिस है, और पेज वॉक नामक प्रक्रिया में [[पेज टेबल]] को देखकर अनुवाद आगे बढ़ता है। प्रोसेसर की गति की तुलना में पेज वॉक समय लेने वाला है, क्योंकि इसमें कई मेमोरी स्थानों की सामग्री को पढ़ना और भौतिक पते की गणना करने के लिए उनका उपयोग करना शामिल है। पेज वॉक द्वारा भौतिक पता निर्धारित करने के बाद, भौतिक पता मैपिंग के लिए आभासी पता टीएलबी में दर्ज किया जाता है। उदाहरण के लिए, [[PowerPC 604]] में डेटा लोड और स्टोर के लिए दो-तरफ़ा [[ सेट साहचर्य |सेट साहचर्य]] TLB है।<ref>{{cite journal|url=http://users.ece.gatech.edu/~scotty/7102/PPC604.pdf|title=The PowerPC 604 RISC Microprocessor|author1=S. Peter Song|author2=Marvin Denman|author3=Joe Chang|journal=IEEE Micro|volume=14|issue=5|date=October 1994|pages=13–14|doi=10.1109/MM.1994.363071|s2cid=11603864 |archive-url=https://web.archive.org/web/20160601135015/http://users.ece.gatech.edu/~scotty/7102/PPC604.pdf|archive-date=2016-06-01|url-status=dead}}</ref> कुछ प्रोसेसर के अलग-अलग निर्देश और डेटा एड्रेस टीएलबी होते हैं।


== सिंहावलोकन ==
== सिंहावलोकन ==
{{See also|CPU cache#Address_translation|l1=CPU cache § Address translation}}
{{See also|CPU cache#Address_translation|l1=CPU cache § Address translation}}
[[File:Translation Lookaside Buffer.png|thumb|373x373पीएक्स|टीएलबी की सामान्य कार्यप्रणाली<ref>{{Cite book|title=ऑपरेटिंग सिस्टम अवधारणाओं|url=https://archive.org/details/operatingsystemc00silb_391|url-access=registration|last=Silberschatz, Galvin, Gagne|first=Abraham, Peter B. , Greg|publisher=John Wiley & Sons. INC|year=2009|isbn=978-0-470-12872-5|location=United States of America}}</ref>]]एक टीएलबी में निश्चित संख्या में स्लॉट होते हैं जिनमें पृष्ठ तालिका | पृष्ठ-तालिका प्रविष्टियाँ और खंड-तालिका प्रविष्टियाँ होती हैं; पृष्ठ-तालिका प्रविष्टियाँ आभासी पतों को भौतिक पतों और मध्यवर्ती-तालिका पतों पर मैप करती हैं, जबकि खंड-तालिका प्रविष्टियाँ आभासी पतों को खंड पतों, मध्यवर्ती-तालिका पतों और पृष्ठ-तालिका पतों पर मैप करती हैं। वर्चुअल मेमोरी मेमोरी स्पेस है जैसा कि एक प्रक्रिया से देखा जाता है; यह स्थान अक्सर एक निश्चित आकार के [[पेज (कंप्यूटर मेमोरी)]] में विभाजित होता है (पेजेड मेमोरी में), या कम सामान्यतः वेरिएबल साइज के [[ खंड (मेमोरी) ]] में (सेगमेंटेड मेमोरी में)। पृष्ठ तालिका, आमतौर पर मुख्य मेमोरी में संग्रहीत होती है, यह ट्रैक करती है कि भौतिक मेमोरी में वर्चुअल पेज कहाँ संग्रहीत हैं। यह विधि एक बाइट तक पहुँचने के लिए दो मेमोरी एक्सेस (एक पृष्ठ-तालिका प्रविष्टि के लिए, एक बाइट के लिए) का उपयोग करती है। सबसे पहले, पृष्ठ तालिका को फ़्रेम संख्या के लिए खोजा जाता है। दूसरा, पेज ऑफ़सेट वाला फ़्रेम नंबर वास्तविक पता देता है। इस प्रकार किसी भी सीधी वर्चुअल मेमोरी स्कीम का मेमोरी एक्सेस टाइम को दोगुना करने का प्रभाव होगा। इसलिए, पेज-टेबल पद्धति [[मुख्य स्मृति]] स्थानों तक पहुंचने में लगने वाले समय को कम करने के लिए टीएलबी का उपयोग किया जाता है। TLB पेज टेबल का एक कैश है, जो पेज-टेबल सामग्री के केवल एक सबसेट का प्रतिनिधित्व करता है।
[[File:Translation Lookaside Buffer.png|thumb|373x373पीएक्स|टीएलबी की सामान्य कार्यप्रणाली<ref>{{Cite book|title=ऑपरेटिंग सिस्टम अवधारणाओं|url=https://archive.org/details/operatingsystemc00silb_391|url-access=registration|last=Silberschatz, Galvin, Gagne|first=Abraham, Peter B. , Greg|publisher=John Wiley & Sons. INC|year=2009|isbn=978-0-470-12872-5|location=United States of America}}</ref>]]एक टीएलबी में निश्चित संख्या में स्लॉट होते हैं जिनमें पृष्ठ तालिका | पृष्ठ-तालिका प्रविष्टियाँ और खंड-तालिका प्रविष्टियाँ होती हैं; पृष्ठ-तालिका प्रविष्टियाँ आभासी पतों को भौतिक पतों और मध्यवर्ती-तालिका पतों पर मैप करती हैं, जबकि खंड-तालिका प्रविष्टियाँ आभासी पतों को खंड पतों, मध्यवर्ती-तालिका पतों और पृष्ठ-तालिका पतों पर मैप करती हैं। वर्चुअल मेमोरी मेमोरी स्पेस है जैसा कि एक प्रक्रिया से देखा जाता है; यह स्थान अक्सर एक निश्चित आकार के [[पेज (कंप्यूटर मेमोरी)]] में विभाजित होता है (पेजेड मेमोरी में), या कम सामान्यतः वेरिएबल साइज के [[ खंड (मेमोरी) |खंड (मेमोरी)]] में (सेगमेंटेड मेमोरी में)। पृष्ठ तालिका, आमतौर पर मुख्य मेमोरी में संग्रहीत होती है, यह ट्रैक करती है कि भौतिक मेमोरी में वर्चुअल पेज कहाँ संग्रहीत हैं। यह विधि एक बाइट तक पहुँचने के लिए दो मेमोरी एक्सेस (एक पृष्ठ-तालिका प्रविष्टि के लिए, एक बाइट के लिए) का उपयोग करती है। सबसे पहले, पृष्ठ तालिका को फ़्रेम संख्या के लिए खोजा जाता है। दूसरा, पेज ऑफ़सेट वाला फ़्रेम नंबर वास्तविक पता देता है। इस प्रकार किसी भी सीधी वर्चुअल मेमोरी स्कीम का मेमोरी एक्सेस टाइम को दोगुना करने का प्रभाव होगा। इसलिए, पेज-टेबल पद्धति [[मुख्य स्मृति]] स्थानों तक पहुंचने में लगने वाले समय को कम करने के लिए टीएलबी का उपयोग किया जाता है। TLB पेज टेबल का एक कैश है, जो पेज-टेबल सामग्री के केवल एक सबसेट का प्रतिनिधित्व करता है।


भौतिक स्मृति पतों को संदर्भित करते हुए, एक TLB CPU और CPU कैश के बीच, CPU कैश और [[प्रारंभिक भंडारण]] मेमोरी के बीच, या बहु-स्तरीय कैश के स्तरों के बीच स्थित हो सकता है। प्लेसमेंट निर्धारित करता है कि कैश भौतिक या वर्चुअल एड्रेसिंग का उपयोग करता है या नहीं। यदि कैश को वस्तुतः संबोधित किया जाता है, तो अनुरोध सीधे सीपीयू से कैश में भेजे जाते हैं, और टीएलबी को केवल [[कैश मिस]] पर ही एक्सेस किया जाता है। यदि कैश को भौतिक रूप से संबोधित किया जाता है, तो सीपीयू प्रत्येक मेमोरी ऑपरेशन पर एक टीएलबी लुकअप करता है, और परिणामी भौतिक पता कैश को भेजा जाता है।
भौतिक स्मृति पतों को संदर्भित करते हुए, एक TLB CPU और CPU कैश के बीच, CPU कैश और [[प्रारंभिक भंडारण]] मेमोरी के बीच, या बहु-स्तरीय कैश के स्तरों के बीच स्थित हो सकता है। प्लेसमेंट निर्धारित करता है कि कैश भौतिक या वर्चुअल एड्रेसिंग का उपयोग करता है या नहीं। यदि कैश को वस्तुतः संबोधित किया जाता है, तो अनुरोध सीधे सीपीयू से कैश में भेजे जाते हैं, और टीएलबी को केवल [[कैश मिस]] पर ही एक्सेस किया जाता है। यदि कैश को भौतिक रूप से संबोधित किया जाता है, तो सीपीयू प्रत्येक मेमोरी ऑपरेशन पर एक टीएलबी लुकअप करता है, और परिणामी भौतिक पता कैश को भेजा जाता है।
Line 19: Line 18:
[[File:Steps In a Translation Lookaside Buffer.png|thumb|361x361पीएक्स|फ्लोचार्ट<ref>{{Cite book|title=Operating Systems: Internals and Design Principles|last=Stallings|first=William|publisher=Pearson|year=2014|isbn=978-0133805918|location=United States of America}}</ref> ट्रांसलेशन लुकसाइड बफ़र की कार्यप्रणाली दिखाता है. सरलता के लिए, पेज-फ़ॉल्ट रूटीन का उल्लेख नहीं किया गया है।]]सीपीयू को इंस्ट्रक्शन-कैश मिस, डेटा-कैश मिस या टीएलबी मिस के लिए मेन मेमोरी एक्सेस करनी होती है। तीसरा मामला (सबसे सरल) वह है जहां वांछित जानकारी वास्तव में कैश में होती है, लेकिन आभासी-से-भौतिक अनुवाद के लिए जानकारी टीएलबी में नहीं होती है। मेमोरी पदानुक्रम के धीमे स्तर तक पहुँचने की आवश्यकता के कारण ये सभी धीमे हैं, इसलिए एक अच्छी तरह से काम करने वाला TLB महत्वपूर्ण है। दरअसल, एक टीएलबी मिस एक निर्देश या डेटा कैश मिस की तुलना में अधिक महंगा हो सकता है, न केवल मुख्य मेमोरी से लोड की आवश्यकता के कारण, बल्कि एक पेज वॉक, जिसमें कई मेमोरी एक्सेस की आवश्यकता होती है।
[[File:Steps In a Translation Lookaside Buffer.png|thumb|361x361पीएक्स|फ्लोचार्ट<ref>{{Cite book|title=Operating Systems: Internals and Design Principles|last=Stallings|first=William|publisher=Pearson|year=2014|isbn=978-0133805918|location=United States of America}}</ref> ट्रांसलेशन लुकसाइड बफ़र की कार्यप्रणाली दिखाता है. सरलता के लिए, पेज-फ़ॉल्ट रूटीन का उल्लेख नहीं किया गया है।]]सीपीयू को इंस्ट्रक्शन-कैश मिस, डेटा-कैश मिस या टीएलबी मिस के लिए मेन मेमोरी एक्सेस करनी होती है। तीसरा मामला (सबसे सरल) वह है जहां वांछित जानकारी वास्तव में कैश में होती है, लेकिन आभासी-से-भौतिक अनुवाद के लिए जानकारी टीएलबी में नहीं होती है। मेमोरी पदानुक्रम के धीमे स्तर तक पहुँचने की आवश्यकता के कारण ये सभी धीमे हैं, इसलिए एक अच्छी तरह से काम करने वाला TLB महत्वपूर्ण है। दरअसल, एक टीएलबी मिस एक निर्देश या डेटा कैश मिस की तुलना में अधिक महंगा हो सकता है, न केवल मुख्य मेमोरी से लोड की आवश्यकता के कारण, बल्कि एक पेज वॉक, जिसमें कई मेमोरी एक्सेस की आवश्यकता होती है।


प्रदान किया गया फ़्लोचार्ट एक TLB की कार्यप्रणाली की व्याख्या करता है। यदि यह एक TLB मिस है, तो CPU पृष्ठ तालिका प्रविष्टि के लिए पृष्ठ तालिका की जाँच करता है। यदि वर्तमान बिट सेट है, तो पृष्ठ मुख्य मेमोरी में है, और प्रोसेसर भौतिक पता बनाने के लिए पृष्ठ-तालिका प्रविष्टि से फ़्रेम संख्या प्राप्त कर सकता है।<ref>{{Cite book|title=पैरेलल मल्टीकोर आर्किटेक्चर के फंडामेंटल|last=Solihin|first=Yan|publisher=Taylor & Francis Group|year=2016|isbn=978-0-9841630-0-7|location=Boca Raton, FL}}</ref> प्रोसेसर नई पेज-टेबल एंट्री को शामिल करने के लिए टीएलबी को भी अपडेट करता है। अंत में, यदि वर्तमान बिट सेट नहीं है, तो वांछित पृष्ठ मुख्य मेमोरी में नहीं है, और [[ पृष्ठ दोष ]] जारी किया जाता है। फिर पेज-फॉल्ट इंटरप्ट कहा जाता है, जो पेज-फॉल्ट हैंडलिंग रूटीन को निष्पादित करता है।
प्रदान किया गया फ़्लोचार्ट एक TLB की कार्यप्रणाली की व्याख्या करता है। यदि यह एक TLB मिस है, तो CPU पृष्ठ तालिका प्रविष्टि के लिए पृष्ठ तालिका की जाँच करता है। यदि वर्तमान बिट सेट है, तो पृष्ठ मुख्य मेमोरी में है, और प्रोसेसर भौतिक पता बनाने के लिए पृष्ठ-तालिका प्रविष्टि से फ़्रेम संख्या प्राप्त कर सकता है।<ref>{{Cite book|title=पैरेलल मल्टीकोर आर्किटेक्चर के फंडामेंटल|last=Solihin|first=Yan|publisher=Taylor & Francis Group|year=2016|isbn=978-0-9841630-0-7|location=Boca Raton, FL}}</ref> प्रोसेसर नई पेज-टेबल एंट्री को शामिल करने के लिए टीएलबी को भी अपडेट करता है। अंत में, यदि वर्तमान बिट सेट नहीं है, तो वांछित पृष्ठ मुख्य मेमोरी में नहीं है, और [[ पृष्ठ दोष |पृष्ठ दोष]] जारी किया जाता है। फिर पेज-फॉल्ट इंटरप्ट कहा जाता है, जो पेज-फॉल्ट हैंडलिंग रूटीन को निष्पादित करता है।


यदि पेज [[ कार्य का संग्रह ]] टीएलबी में फिट नहीं होता है, तो [[टीएलबी पिटाई]] होती है, जहां बार-बार टीएलबी मिस होती है, प्रत्येक नए कैश्ड पेज को विस्थापित करने के साथ जो जल्द ही फिर से उपयोग किया जाएगा, ठीक उसी तरह से प्रदर्शन को कम करना जैसे निर्देश को थ्रैश करना या डेटा कैश करता है। टीएलबी थ्रैशिंग तब भी हो सकती है जब निर्देश-कैश या डेटा-कैश थ्रैशिंग (कंप्यूटर विज्ञान) नहीं हो रहा हो, क्योंकि ये अलग-अलग आकार की इकाइयों में कैश किए जाते हैं। निर्देश और डेटा को छोटे ब्लॉक ([[कैश लाइन]]) में कैश किया जाता है, पूरे पेज नहीं, लेकिन एड्रेस लुकअप पेज स्तर पर किया जाता है। इस प्रकार भले ही कोड और डेटा वर्किंग सेट कैश में फिट हो जाते हैं, अगर वर्किंग सेट कई पेजों में खंडित हो जाते हैं, तो वर्चुअल-एड्रेस वर्किंग सेट TLB में फिट नहीं हो सकता है, जिससे TLB थ्रशिंग हो सकता है। इस प्रकार टीएलबी के उचित आकार के लिए न केवल संबंधित निर्देश और डेटा कैश के आकार पर विचार करने की आवश्यकता है, बल्कि यह भी कि ये कई पृष्ठों में कैसे खंडित हैं।
यदि पेज [[ कार्य का संग्रह |कार्य का संग्रह]] टीएलबी में फिट नहीं होता है, तो [[टीएलबी पिटाई]] होती है, जहां बार-बार टीएलबी मिस होती है, प्रत्येक नए कैश्ड पेज को विस्थापित करने के साथ जो जल्द ही फिर से उपयोग किया जाएगा, ठीक उसी तरह से प्रदर्शन को कम करना जैसे निर्देश को थ्रैश करना या डेटा कैश करता है। टीएलबी थ्रैशिंग तब भी हो सकती है जब निर्देश-कैश या डेटा-कैश थ्रैशिंग (कंप्यूटर विज्ञान) नहीं हो रहा हो, क्योंकि ये अलग-अलग आकार की इकाइयों में कैश किए जाते हैं। निर्देश और डेटा को छोटे ब्लॉक ([[कैश लाइन]]) में कैश किया जाता है, पूरे पेज नहीं, लेकिन एड्रेस लुकअप पेज स्तर पर किया जाता है। इस प्रकार भले ही कोड और डेटा वर्किंग सेट कैश में फिट हो जाते हैं, अगर वर्किंग सेट कई पेजों में खंडित हो जाते हैं, तो वर्चुअल-एड्रेस वर्किंग सेट TLB में फिट नहीं हो सकता है, जिससे TLB थ्रशिंग हो सकता है। इस प्रकार टीएलबी के उचित आकार के लिए न केवल संबंधित निर्देश और डेटा कैश के आकार पर विचार करने की आवश्यकता है, बल्कि यह भी कि ये कई पृष्ठों में कैसे खंडित हैं।


== एकाधिक टीएलबी ==
== एकाधिक टीएलबी ==
Line 35: Line 34:
* सॉफ्टवेयर-प्रबंधित टीएलबी के साथ, एक टीएलबी मिस एक टीएलबी मिस अपवाद उत्पन्न करता है, और ऑपरेटिंग सिस्टम कोड पेज टेबल पर चलने और सॉफ्टवेयर में अनुवाद करने के लिए जिम्मेदार होता है। ऑपरेटिंग सिस्टम तब टीएलबी में अनुवाद को लोड करता है और टीएलबी मिस होने वाले निर्देश से प्रोग्राम को पुनरारंभ करता है। हार्डवेयर टीएलबी प्रबंधन के साथ, यदि ओएस को पेज टेबल में कोई वैध अनुवाद नहीं मिलता है, तो एक पेज गलती हुई है, और ओएस को तदनुसार इसे संभालना चाहिए। सॉफ्टवेयर-प्रबंधित टीएलबी वाले सीपीयू के निर्देश सेट में ऐसे निर्देश होते हैं जो टीएलबी में किसी भी स्लॉट में प्रविष्टियों को लोड करने की अनुमति देते हैं। टीएलबी प्रविष्टि के प्रारूप को निर्देश सेट आर्किटेक्चर (आईएसए) के हिस्से के रूप में परिभाषित किया गया है।<ref>J. Smith and R. Nair. Virtual Machines: Versatile Platforms for Systems and Processes (The Morgan Kaufmann Series in Computer Architecture and Design). Morgan Kaufmann Publishers Inc., 2005.</ref>
* सॉफ्टवेयर-प्रबंधित टीएलबी के साथ, एक टीएलबी मिस एक टीएलबी मिस अपवाद उत्पन्न करता है, और ऑपरेटिंग सिस्टम कोड पेज टेबल पर चलने और सॉफ्टवेयर में अनुवाद करने के लिए जिम्मेदार होता है। ऑपरेटिंग सिस्टम तब टीएलबी में अनुवाद को लोड करता है और टीएलबी मिस होने वाले निर्देश से प्रोग्राम को पुनरारंभ करता है। हार्डवेयर टीएलबी प्रबंधन के साथ, यदि ओएस को पेज टेबल में कोई वैध अनुवाद नहीं मिलता है, तो एक पेज गलती हुई है, और ओएस को तदनुसार इसे संभालना चाहिए। सॉफ्टवेयर-प्रबंधित टीएलबी वाले सीपीयू के निर्देश सेट में ऐसे निर्देश होते हैं जो टीएलबी में किसी भी स्लॉट में प्रविष्टियों को लोड करने की अनुमति देते हैं। टीएलबी प्रविष्टि के प्रारूप को निर्देश सेट आर्किटेक्चर (आईएसए) के हिस्से के रूप में परिभाषित किया गया है।<ref>J. Smith and R. Nair. Virtual Machines: Versatile Platforms for Systems and Processes (The Morgan Kaufmann Series in Computer Architecture and Design). Morgan Kaufmann Publishers Inc., 2005.</ref>
MIPS आर्किटेक्चर एक सॉफ्टवेयर-प्रबंधित TLB निर्दिष्ट करता है।<ref>{{Cite web | url=http://www.eecs.harvard.edu/~mdw/course/cs161/handouts/mips.html | title=MIPS r2000/r3000 Architecture | access-date=16 November 2008 | last=Welsh | first=Matt | quote=यदि कोई मेल खाने वाली टीएलबी प्रविष्टि नहीं मिलती है, तो एक टीएलबी मिस अपवाद होता है| url-status=dead | archive-url=https://web.archive.org/web/20081014061949/http://www.eecs.harvard.edu/~mdw/course/cs161/handouts/mips.html | archive-date=14 October 2008 | df=dmy-all }}</ref>
MIPS आर्किटेक्चर एक सॉफ्टवेयर-प्रबंधित TLB निर्दिष्ट करता है।<ref>{{Cite web | url=http://www.eecs.harvard.edu/~mdw/course/cs161/handouts/mips.html | title=MIPS r2000/r3000 Architecture | access-date=16 November 2008 | last=Welsh | first=Matt | quote=यदि कोई मेल खाने वाली टीएलबी प्रविष्टि नहीं मिलती है, तो एक टीएलबी मिस अपवाद होता है| url-status=dead | archive-url=https://web.archive.org/web/20081014061949/http://www.eecs.harvard.edu/~mdw/course/cs161/handouts/mips.html | archive-date=14 October 2008 | df=dmy-all }}</ref>
[[SPARC V9]] आर्किटेक्चर SPARC V9 के कार्यान्वयन की अनुमति देता है जिसमें कोई MMU नहीं है, एक MMU जिसमें सॉफ़्टवेयर-प्रबंधित TLB है, या एक MMU है जिसमें हार्डवेयर-प्रबंधित TLB है,<ref>{{cite book|author=SPARC International, Inc.|title=The SPARC Architecture Manual, Version 9|url=http://sparc.org/technical-documents/#V9|publisher=[[Prentice Hall|PTR Prentice Hall]]}}</ref> और UltraSPARC आर्किटेक्चर 2005 एक सॉफ्टवेयर-प्रबंधित TLB निर्दिष्ट करता है।<ref>{{cite book|author=Sun Microsystems|title=UltraSPARC Architecture 2005|version=Draft D0.9.2, 19 June 2008|url=http://www.oracle.com/technetwork/systems/opensparc/1537734|publisher=Sun Microsystems|author-link=Sun Microsystems}}</ref>
[[SPARC V9]] आर्किटेक्चर SPARC V9 के कार्यान्वयन की अनुमति देता है जिसमें कोई MMU नहीं है, एक MMU जिसमें सॉफ़्टवेयर-प्रबंधित TLB है, या एक MMU है जिसमें हार्डवेयर-प्रबंधित TLB है,<ref>{{cite book|author=SPARC International, Inc.|title=The SPARC Architecture Manual, Version 9|url=http://sparc.org/technical-documents/#V9|publisher=[[Prentice Hall|PTR Prentice Hall]]}}</ref> और UltraSPARC आर्किटेक्चर 2005 एक सॉफ्टवेयर-प्रबंधित TLB निर्दिष्ट करता है।<ref>{{cite book|author=Sun Microsystems|title=UltraSPARC Architecture 2005|version=Draft D0.9.2, 19 June 2008|url=http://www.oracle.com/technetwork/systems/opensparc/1537734|publisher=Sun Microsystems|author-link=Sun Microsystems}}</ref>
[[इटेनियम]] आर्किटेक्चर सॉफ्टवेयर या हार्डवेयर-प्रबंधित टीएलबी का उपयोग करने का विकल्प प्रदान करता है।<ref>[http://www.informit.com/articles/article.aspx?p=29961&seqNum=4 Virtual Memory in the IA-64 Kernel > Translation Lookaside Buffer].</ref>
[[इटेनियम]] आर्किटेक्चर सॉफ्टवेयर या हार्डवेयर-प्रबंधित टीएलबी का उपयोग करने का विकल्प प्रदान करता है।<ref>[http://www.informit.com/articles/article.aspx?p=29961&seqNum=4 Virtual Memory in the IA-64 Kernel > Translation Lookaside Buffer].</ref>
[[डीईसी अल्फा]] आर्किटेक्चर का टीएलबी ऑपरेटिंग सिस्टम के बजाय [[ पाल कोड ]] में प्रबंधित किया जाता है। जैसा कि एक प्रोसेसर के लिए PALcode प्रोसेसर-विशिष्ट और ऑपरेटिंग-सिस्टम-विशिष्ट हो सकता है, यह PALcode के विभिन्न संस्करणों को अलग-अलग ऑपरेटिंग सिस्टम के लिए अलग-अलग पेज-टेबल स्वरूपों को लागू करने की अनुमति देता है, बिना TLB प्रारूप की आवश्यकता के, और TLB को नियंत्रित करने के निर्देश , वास्तुकला द्वारा निर्दिष्ट किया जाना है।<ref>{{cite book|author=Compaq Computer Corporation|title=अल्फा आर्किटेक्चर हैंडबुक|version=Version 4|url=http://h18000.www1.hp.com/alphaserver/technology/literature/alphaahb.pdf|publisher=Compaq Computer Corporation|author-link=Compaq Computer Corporation|access-date=1 December 2010|archive-date=9 October 2014|archive-url=https://web.archive.org/web/20141009015236/http://h18000.www1.hp.com/alphaserver/technology/literature/alphaahb.pdf|url-status=dead}}</ref>
 
[[डीईसी अल्फा]] आर्किटेक्चर का टीएलबी ऑपरेटिंग सिस्टम के बजाय [[ पाल कोड |पाल कोड]] में प्रबंधित किया जाता है। जैसा कि एक प्रोसेसर के लिए PALcode प्रोसेसर-विशिष्ट और ऑपरेटिंग-सिस्टम-विशिष्ट हो सकता है, यह PALcode के विभिन्न संस्करणों को अलग-अलग ऑपरेटिंग सिस्टम के लिए अलग-अलग पेज-टेबल स्वरूपों को लागू करने की अनुमति देता है, बिना TLB प्रारूप की आवश्यकता के, और TLB को नियंत्रित करने के निर्देश , वास्तुकला द्वारा निर्दिष्ट किया जाना है।<ref>{{cite book|author=Compaq Computer Corporation|title=अल्फा आर्किटेक्चर हैंडबुक|version=Version 4|url=http://h18000.www1.hp.com/alphaserver/technology/literature/alphaahb.pdf|publisher=Compaq Computer Corporation|author-link=Compaq Computer Corporation|access-date=1 December 2010|archive-date=9 October 2014|archive-url=https://web.archive.org/web/20141009015236/http://h18000.www1.hp.com/alphaserver/technology/literature/alphaahb.pdf|url-status=dead}}</ref>
 




== विशिष्ट टीएलबी ==
== विशिष्ट टीएलबी ==
ये TLB के विशिष्ट प्रदर्शन स्तर हैं:<ref name="typical">{{Cite book|title=Computer Organization And Design. Hardware/Software interface. 4th edition |author=David A. Patterson |author2=John L. Hennessy |year=2009 |publisher=Morgan Kaufmann Publishers |location=Burlington, MA 01803, USA |isbn=978-0-12-374493-7 |page=503 }}</ref>
ये TLB के विशिष्ट प्रदर्शन स्तर हैं:<ref name="typical">{{Cite book|title=Computer Organization And Design. Hardware/Software interface. 4th edition |author=David A. Patterson |author2=John L. Hennessy |year=2009 |publisher=Morgan Kaufmann Publishers |location=Burlington, MA 01803, USA |isbn=978-0-12-374493-7 |page=503 }}</ref>
* आकार: 12 बिट्स - 4,096 प्रविष्टियाँ <!-- this is wider, than in book -->
* आकार: 12 बिट्स - 4,096 प्रविष्टियाँ
* हिट समय: 0.5 - 1 घड़ी चक्र
* हिट समय: 0.5 - 1 घड़ी चक्र
* मिस पेनल्टी: 10 - 100 क्लॉक साइकिल<!-- upd to COaD H/S I 4th -->
* मिस पेनल्टी: 10 - 100 क्लॉक साइकिल
* मिस रेट: 0.01 - 1% (20–40% विरल/ग्राफ़ अनुप्रयोगों के लिए)
* मिस रेट: 0.01 - 1% (20–40% विरल/ग्राफ़ अनुप्रयोगों के लिए)


Line 51: Line 54:




=={{anchor|PCID}}पता-स्थान स्विच ==
==पता-स्थान स्विच ==
एड्रेस-स्पेस स्विच पर, जैसा तब होता है जब संदर्भ प्रक्रियाओं के बीच स्विच करता है (लेकिन थ्रेड्स के बीच नहीं), कुछ टीएलबी प्रविष्टियां अमान्य हो सकती हैं, क्योंकि वर्चुअल-टू-फिजिकल मैपिंग अलग है। इससे निपटने की सबसे सरल रणनीति टीएलबी को पूरी तरह से फ्लश करना है। इसका मतलब है कि एक स्विच के बाद, टीएलबी खाली है, और कोई भी मेमोरी संदर्भ मिस हो जाएगा, इसलिए कुछ समय पहले चीजें पूरी गति से वापस चल रही होंगी। नए सीपीयू अधिक प्रभावी रणनीतियों का उपयोग करते हैं जो यह चिन्हित करते हैं कि कौन सी प्रक्रिया एक प्रविष्टि के लिए है। इसका मतलब यह है कि यदि दूसरी प्रक्रिया केवल थोड़े समय के लिए चलती है और पहली प्रक्रिया में वापस चली जाती है, तो TLB में अभी भी वैध प्रविष्टियाँ हो सकती हैं, जिससे उन्हें पुनः लोड करने में समय की बचत होती है।<ref>{{cite news |author=Ulrich Drepper |date=9 October 2014 |title=Memory part 3: Virtual Memory |publisher=[[LWN.net]] |url=https://lwn.net/Articles/253361/ }}</ref>
एड्रेस-स्पेस स्विच पर, जैसा तब होता है जब संदर्भ प्रक्रियाओं के बीच स्विच करता है (लेकिन थ्रेड्स के बीच नहीं), कुछ टीएलबी प्रविष्टियां अमान्य हो सकती हैं, क्योंकि वर्चुअल-टू-फिजिकल मैपिंग अलग है। इससे निपटने की सबसे सरल रणनीति टीएलबी को पूरी तरह से फ्लश करना है। इसका मतलब है कि एक स्विच के बाद, टीएलबी खाली है, और कोई भी मेमोरी संदर्भ मिस हो जाएगा, इसलिए कुछ समय पहले चीजें पूरी गति से वापस चल रही होंगी। नए सीपीयू अधिक प्रभावी रणनीतियों का उपयोग करते हैं जो यह चिन्हित करते हैं कि कौन सी प्रक्रिया एक प्रविष्टि के लिए है। इसका मतलब यह है कि यदि दूसरी प्रक्रिया केवल थोड़े समय के लिए चलती है और पहली प्रक्रिया में वापस चली जाती है, तो TLB में अभी भी वैध प्रविष्टियाँ हो सकती हैं, जिससे उन्हें पुनः लोड करने में समय की बचत होती है।<ref>{{cite news |author=Ulrich Drepper |date=9 October 2014 |title=Memory part 3: Virtual Memory |publisher=[[LWN.net]] |url=https://lwn.net/Articles/253361/ }}</ref>
अन्य रणनीतियाँ एक संदर्भ स्विच पर TLB को फ़्लश करने से बचती हैं:
अन्य रणनीतियाँ एक संदर्भ स्विच पर TLB को फ़्लश करने से बचती हैं:
Line 60: Line 63:
जबकि टीएलबी का चयनात्मक फ्लशिंग सॉफ्टवेयर-प्रबंधित टीएलबी में एक विकल्प है, कुछ हार्डवेयर टीएलबी में एकमात्र विकल्प (उदाहरण के लिए, [[इंटेल 80386]] में टीएलबी) एड्रेस-स्पेस स्विच पर टीएलबी का पूर्ण फ्लशिंग है। अन्य हार्डवेयर TLBs (उदाहरण के लिए, [[Intel 80486]] और बाद में x86 प्रोसेसर में TLB, और [[एआरएम वास्तुकला]] प्रोसेसर में TLB) वर्चुअल एड्रेस द्वारा अनुक्रमित TLB से अलग-अलग प्रविष्टियों को फ़्लश करने की अनुमति देते हैं।
जबकि टीएलबी का चयनात्मक फ्लशिंग सॉफ्टवेयर-प्रबंधित टीएलबी में एक विकल्प है, कुछ हार्डवेयर टीएलबी में एकमात्र विकल्प (उदाहरण के लिए, [[इंटेल 80386]] में टीएलबी) एड्रेस-स्पेस स्विच पर टीएलबी का पूर्ण फ्लशिंग है। अन्य हार्डवेयर TLBs (उदाहरण के लिए, [[Intel 80486]] और बाद में x86 प्रोसेसर में TLB, और [[एआरएम वास्तुकला]] प्रोसेसर में TLB) वर्चुअल एड्रेस द्वारा अनुक्रमित TLB से अलग-अलग प्रविष्टियों को फ़्लश करने की अनुमति देते हैं।


टीएलबी की फ्लशिंग प्रक्रियाओं के बीच मेमोरी आइसोलेशन के लिए एक महत्वपूर्ण सुरक्षा तंत्र हो सकता है ताकि यह सुनिश्चित किया जा सके कि कोई प्रक्रिया किसी अन्य प्रक्रिया के मेमोरी पेजों में संग्रहीत डेटा तक नहीं पहुंच सकती है। विशेषाधिकार प्राप्त ऑपरेटिंग सिस्टम कर्नेल प्रक्रिया और उपयोगकर्ता प्रक्रियाओं के बीच स्विच के दौरान मेमोरी आइसोलेशन विशेष रूप से महत्वपूर्ण है - जैसा कि [[मेल्टडाउन (सुरक्षा भेद्यता)]] सुरक्षा भेद्यता द्वारा हाइलाइट किया गया था। शमन रणनीतियाँ जैसे कि [[ कर्नेल पेज-टेबल अलगाव ]] (केपीटीआई) प्रदर्शन-प्रभावित टीएलबी फ्लश पर बहुत अधिक निर्भर करती हैं और हार्डवेयर-सक्षम चयनात्मक टीएलबी प्रविष्टि प्रबंधन जैसे पीसीआईडी ​​​​से बहुत लाभान्वित होती हैं।<ref>{{cite web |url=https://groups.google.com/forum/m/#!topic/mechanical-sympathy/L9mHTbeQLNU |title=PCID is now a critical performance/security feature on x86 |author=Gil Tene |date=8 January 2018 |access-date=23 March 2018}}</ref>
टीएलबी की फ्लशिंग प्रक्रियाओं के बीच मेमोरी आइसोलेशन के लिए एक महत्वपूर्ण सुरक्षा तंत्र हो सकता है ताकि यह सुनिश्चित किया जा सके कि कोई प्रक्रिया किसी अन्य प्रक्रिया के मेमोरी पेजों में संग्रहीत डेटा तक नहीं पहुंच सकती है। विशेषाधिकार प्राप्त ऑपरेटिंग सिस्टम कर्नेल प्रक्रिया और उपयोगकर्ता प्रक्रियाओं के बीच स्विच के दौरान मेमोरी आइसोलेशन विशेष रूप से महत्वपूर्ण है - जैसा कि [[मेल्टडाउन (सुरक्षा भेद्यता)]] सुरक्षा भेद्यता द्वारा हाइलाइट किया गया था। शमन रणनीतियाँ जैसे कि [[ कर्नेल पेज-टेबल अलगाव |कर्नेल पेज-टेबल अलगाव]] (केपीटीआई) प्रदर्शन-प्रभावित टीएलबी फ्लश पर बहुत अधिक निर्भर करती हैं और हार्डवेयर-सक्षम चयनात्मक टीएलबी प्रविष्टि प्रबंधन जैसे पीसीआईडी ​​​​से बहुत लाभान्वित होती हैं।<ref>{{cite web |url=https://groups.google.com/forum/m/#!topic/mechanical-sympathy/L9mHTbeQLNU |title=PCID is now a critical performance/security feature on x86 |author=Gil Tene |date=8 January 2018 |access-date=23 March 2018}}</ref>




== वर्चुअलाइजेशन और x86 टीएलबी ==
== वर्चुअलाइजेशन और x86 टीएलबी ==
सर्वर समेकन के लिए वर्चुअलाइजेशन के आगमन के साथ, x86 आर्किटेक्चर को वर्चुअलाइज करना आसान बनाने और x86 हार्डवेयर पर वर्चुअल मशीनों के बेहतर प्रदर्शन को सुनिश्चित करने के लिए बहुत प्रयास किए गए हैं।<ref>{{cite journal|author1=D. Abramson|author2=J. Jackson|author3=S. Muthrasanallur|author4=G. Neiger|author5=G. Regnier|author6=R. Sankaran|author7=I. Schoinas|author8=R. Uhlig|author9=B. Vembu|author10=J. Wiegert|title=Intel Virtualization Technology for Directed I/O|journal=Intel Technology Journal|volume=10|issue=3|pages=179–192}}</ref><ref>Advanced Micro Devices. AMD Secure Virtual Machine Architecture Reference Manual. Advanced Micro Devices, 2008.</ref>
सर्वर समेकन के लिए वर्चुअलाइजेशन के आगमन के साथ, x86 आर्किटेक्चर को वर्चुअलाइज करना आसान बनाने और x86 हार्डवेयर पर वर्चुअल मशीनों के बेहतर प्रदर्शन को सुनिश्चित करने के लिए बहुत प्रयास किए गए हैं।<ref>{{cite journal|author1=D. Abramson|author2=J. Jackson|author3=S. Muthrasanallur|author4=G. Neiger|author5=G. Regnier|author6=R. Sankaran|author7=I. Schoinas|author8=R. Uhlig|author9=B. Vembu|author10=J. Wiegert|title=Intel Virtualization Technology for Directed I/O|journal=Intel Technology Journal|volume=10|issue=3|pages=179–192}}</ref><ref>Advanced Micro Devices. AMD Secure Virtual Machine Architecture Reference Manual. Advanced Micro Devices, 2008.</ref>
आम तौर पर, x86 टीएलबी में प्रविष्टियां किसी विशेष पता स्थान से संबद्ध नहीं होती हैं; वे अप्रत्यक्ष रूप से वर्तमान पता स्थान को संदर्भित करते हैं। इसलिए, जब भी पता स्थान में कोई परिवर्तन होता है, जैसे संदर्भ स्विच, तो संपूर्ण TLB को फ़्लश करना पड़ता है। एक टैग को बनाए रखना जो प्रत्येक टीएलबी प्रविष्टि को सॉफ़्टवेयर में पता स्थान के साथ जोड़ता है और टीएलबी लुकअप और टीएलबी फ्लश के दौरान इस टैग की तुलना करना बहुत महंगा है, खासकर जब से x86 टीएलबी को बहुत कम विलंबता और पूरी तरह से हार्डवेयर में संचालित करने के लिए डिज़ाइन किया गया है। 2008 में, दोनों इंटेल (नेहलेम (माइक्रोआर्किटेक्चर))<ref>{{cite journal|author1=G. Neiger|author2=A. Santoni|author3=F. Leung|author4=D. Rodgers|author5=R. Uhlig|title=Intel Virtualization Technology: Hardware Support for Efficient Processor Virtualization|journal=Intel Technology Journal|volume=10|issue=3}}</ref> और [[एएमडी]] ([[ सुरक्षित वर्चुअल मशीन ]])<ref>Advanced Micro Devices. [[AMD]] [[Secure Virtual Machine]] Architecture Reference Manual. Advanced Micro Devices, 2008.</ref> टीएलबी प्रविष्टि और समर्पित हार्डवेयर के हिस्से के रूप में टैग पेश किए हैं जो लुकअप के दौरान टैग की जांच करता है। भले ही इनका पूरी तरह से दोहन नहीं किया गया हो{{Update inline|reason=Does this still hold after 10 years?|?=yes|date=August 2018}}, इसकी परिकल्पना की गई है{{by whom|date=August 2018}} कि भविष्य में{{when|date=August 2018}}, ये टैग उस पता स्थान की पहचान करेंगे जिससे प्रत्येक TLB प्रविष्टि संबंधित है। इस प्रकार एक संदर्भ स्विच का परिणाम टीएलबी के फ्लशिंग में नहीं होगा - बल्कि वर्तमान पता स्थान के टैग को नए कार्य के पता स्थान के टैग में बदलना होगा।
 
आम तौर पर, x86 टीएलबी में प्रविष्टियां किसी विशेष पता स्थान से संबद्ध नहीं होती हैं; वे अप्रत्यक्ष रूप से वर्तमान पता स्थान को संदर्भित करते हैं। इसलिए, जब भी पता स्थान में कोई परिवर्तन होता है, जैसे संदर्भ स्विच, तो संपूर्ण TLB को फ़्लश करना पड़ता है। एक टैग को बनाए रखना जो प्रत्येक टीएलबी प्रविष्टि को सॉफ़्टवेयर में पता स्थान के साथ जोड़ता है और टीएलबी लुकअप और टीएलबी फ्लश के दौरान इस टैग की तुलना करना बहुत महंगा है, खासकर जब से x86 टीएलबी को बहुत कम विलंबता और पूरी तरह से हार्डवेयर में संचालित करने के लिए डिज़ाइन किया गया है। 2008 में, दोनों इंटेल (नेहलेम (माइक्रोआर्किटेक्चर))<ref>{{cite journal|author1=G. Neiger|author2=A. Santoni|author3=F. Leung|author4=D. Rodgers|author5=R. Uhlig|title=Intel Virtualization Technology: Hardware Support for Efficient Processor Virtualization|journal=Intel Technology Journal|volume=10|issue=3}}</ref> और [[एएमडी]] ([[ सुरक्षित वर्चुअल मशीन | सुरक्षित वर्चुअल मशीन]] )<ref>Advanced Micro Devices. [[AMD]] [[Secure Virtual Machine]] Architecture Reference Manual. Advanced Micro Devices, 2008.</ref> टीएलबी प्रविष्टि और समर्पित हार्डवेयर के हिस्से के रूप में टैग पेश किए हैं जो लुकअप के दौरान टैग की जांच करता है। भले ही इनका पूरी तरह से दोहन नहीं किया गया हो, इसकी परिकल्पना की गई है कि भविष्य में, ये टैग उस पता स्थान की पहचान करेंगे जिससे प्रत्येक TLB प्रविष्टि संबंधित है। इस प्रकार एक संदर्भ स्विच का परिणाम टीएलबी के फ्लशिंग में नहीं होगा - बल्कि वर्तमान पता स्थान के टैग को नए कार्य के पता स्थान के टैग में बदलना होगा।


== यह भी देखें ==
== यह भी देखें ==
Line 84: Line 88:
{{CPU technologies|state=collapsed}}
{{CPU technologies|state=collapsed}}
{{Memory management}}
{{Memory management}}
{{Authority control}}
{{DEFAULTSORT:Translation Lookaside Buffer}}[[Category: आभासी मेमोरी]] [[Category: स्मृति]] [[Category: सेंट्रल प्रोसेसिंग यूनिट]] [[Category: स्मृति प्रबंधन]]  
{{DEFAULTSORT:Translation Lookaside Buffer}}[[Category: आभासी मेमोरी]] [[Category: स्मृति]] [[Category: सेंट्रल प्रोसेसिंग यूनिट]] [[Category: स्मृति प्रबंधन]]  



Revision as of 15:49, 30 April 2023

ट्रांसलेशन लुकसाइड बफ़र (TLB) एक मेमोरी CPU कैश है जो आभासी मेमोरी के हाल के अनुवादों को भौतिक मेमोरी में संग्रहीत करता है। इसका उपयोग उपयोगकर्ता मेमोरी स्थान तक पहुंचने में लगने वाले समय को कम करने के लिए किया जाता है।[1] इसे एड्रेस-ट्रांसलेशन कैश कहा जा सकता है। यह चिप की मेमोरी प्रबंधन इकाई | मेमोरी-मैनेजमेंट यूनिट (एमएमयू) का एक हिस्सा है। एक TLB सेंट्रल प्रोसेसिंग यूनिट और CPU कैश के बीच, CPU कैश और मेन मेमोरी के बीच या मल्टी-लेवल कैश के विभिन्न स्तरों के बीच हो सकता है। अधिकांश डेस्कटॉप, लैपटॉप और सर्वर प्रोसेसर में मेमोरी-मैनेजमेंट हार्डवेयर में एक या एक से अधिक TLB शामिल होते हैं, और यह लगभग हमेशा किसी भी प्रोसेसर में मौजूद होता है जो पेजिंग या स्मृति विभाजन वर्चुअल मेमोरी का उपयोग करता है।

TLB को कभी-कभी सामग्री-पता योग्य मेमोरी (CAM) के रूप में लागू किया जाता है। सीएएम खोज कुंजी आभासी पता है, और खोज परिणाम एक भौतिक पता है। यदि अनुरोधित पता टीएलबी में मौजूद है, तो सीएएम खोज जल्दी से एक मैच देती है और पुनर्प्राप्त भौतिक पते का उपयोग स्मृति तक पहुंचने के लिए किया जा सकता है। इसे टीएलबी हिट कहा जाता है। यदि अनुरोधित पता टीएलबी में नहीं है, तो यह एक मिस है, और पेज वॉक नामक प्रक्रिया में पेज टेबल को देखकर अनुवाद आगे बढ़ता है। प्रोसेसर की गति की तुलना में पेज वॉक समय लेने वाला है, क्योंकि इसमें कई मेमोरी स्थानों की सामग्री को पढ़ना और भौतिक पते की गणना करने के लिए उनका उपयोग करना शामिल है। पेज वॉक द्वारा भौतिक पता निर्धारित करने के बाद, भौतिक पता मैपिंग के लिए आभासी पता टीएलबी में दर्ज किया जाता है। उदाहरण के लिए, PowerPC 604 में डेटा लोड और स्टोर के लिए दो-तरफ़ा सेट साहचर्य TLB है।[2] कुछ प्रोसेसर के अलग-अलग निर्देश और डेटा एड्रेस टीएलबी होते हैं।

सिंहावलोकन

टीएलबी की सामान्य कार्यप्रणाली[3]

एक टीएलबी में निश्चित संख्या में स्लॉट होते हैं जिनमें पृष्ठ तालिका | पृष्ठ-तालिका प्रविष्टियाँ और खंड-तालिका प्रविष्टियाँ होती हैं; पृष्ठ-तालिका प्रविष्टियाँ आभासी पतों को भौतिक पतों और मध्यवर्ती-तालिका पतों पर मैप करती हैं, जबकि खंड-तालिका प्रविष्टियाँ आभासी पतों को खंड पतों, मध्यवर्ती-तालिका पतों और पृष्ठ-तालिका पतों पर मैप करती हैं। वर्चुअल मेमोरी मेमोरी स्पेस है जैसा कि एक प्रक्रिया से देखा जाता है; यह स्थान अक्सर एक निश्चित आकार के पेज (कंप्यूटर मेमोरी) में विभाजित होता है (पेजेड मेमोरी में), या कम सामान्यतः वेरिएबल साइज के खंड (मेमोरी) में (सेगमेंटेड मेमोरी में)। पृष्ठ तालिका, आमतौर पर मुख्य मेमोरी में संग्रहीत होती है, यह ट्रैक करती है कि भौतिक मेमोरी में वर्चुअल पेज कहाँ संग्रहीत हैं। यह विधि एक बाइट तक पहुँचने के लिए दो मेमोरी एक्सेस (एक पृष्ठ-तालिका प्रविष्टि के लिए, एक बाइट के लिए) का उपयोग करती है। सबसे पहले, पृष्ठ तालिका को फ़्रेम संख्या के लिए खोजा जाता है। दूसरा, पेज ऑफ़सेट वाला फ़्रेम नंबर वास्तविक पता देता है। इस प्रकार किसी भी सीधी वर्चुअल मेमोरी स्कीम का मेमोरी एक्सेस टाइम को दोगुना करने का प्रभाव होगा। इसलिए, पेज-टेबल पद्धति मुख्य स्मृति स्थानों तक पहुंचने में लगने वाले समय को कम करने के लिए टीएलबी का उपयोग किया जाता है। TLB पेज टेबल का एक कैश है, जो पेज-टेबल सामग्री के केवल एक सबसेट का प्रतिनिधित्व करता है।

भौतिक स्मृति पतों को संदर्भित करते हुए, एक TLB CPU और CPU कैश के बीच, CPU कैश और प्रारंभिक भंडारण मेमोरी के बीच, या बहु-स्तरीय कैश के स्तरों के बीच स्थित हो सकता है। प्लेसमेंट निर्धारित करता है कि कैश भौतिक या वर्चुअल एड्रेसिंग का उपयोग करता है या नहीं। यदि कैश को वस्तुतः संबोधित किया जाता है, तो अनुरोध सीधे सीपीयू से कैश में भेजे जाते हैं, और टीएलबी को केवल कैश मिस पर ही एक्सेस किया जाता है। यदि कैश को भौतिक रूप से संबोधित किया जाता है, तो सीपीयू प्रत्येक मेमोरी ऑपरेशन पर एक टीएलबी लुकअप करता है, और परिणामी भौतिक पता कैश को भेजा जाता है।

हार्वर्ड आर्किटेक्चर [[संशोधित हार्वर्ड वास्तुकला]] आर्किटेक्चर में, निर्देशों और डेटा के लिए एक अलग वर्चुअल एड्रेस स्पेस या मेमोरी-एक्सेस हार्डवेयर मौजूद हो सकता है। यह प्रत्येक एक्सेस प्रकार, एक निर्देश अनुवाद लुकसाइड बफर (ITLB) और एक डेटा ट्रांसलेशन लुकसाइड बफर (DTLB) के लिए अलग-अलग TLBs को जन्म दे सकता है। अलग-अलग डेटा और निर्देश टीएलबी के साथ विभिन्न लाभों का प्रदर्शन किया गया है।[4] TLB का उपयोग तेज़ लुकअप हार्डवेयर कैश के रूप में किया जा सकता है। आंकड़ा एक टीएलबी के काम को दर्शाता है। TLB में प्रत्येक प्रविष्टि में दो भाग होते हैं: एक टैग और एक मान। यदि आने वाले आभासी पते का टैग TLB में टैग से मेल खाता है, तो संबंधित मान वापस आ जाता है। चूंकि टीएलबी लुकअप आमतौर पर निर्देश पाइपलाइन का एक हिस्सा है, खोज तेज होती है और अनिवार्य रूप से कोई प्रदर्शन जुर्माना नहीं होता है। हालाँकि, निर्देश पाइपलाइन के भीतर खोज करने में सक्षम होने के लिए, TLB को छोटा होना चाहिए।

भौतिक रूप से संबोधित कैश के लिए एक सामान्य अनुकूलन कैश एक्सेस के समानांतर TLB लुकअप करना है। प्रत्येक वर्चुअल-मेमोरी संदर्भ पर, हार्डवेयर यह देखने के लिए TLB की जाँच करता है कि पृष्ठ संख्या उसमें रखी गई है या नहीं। यदि हां, तो यह एक टीएलबी हिट है, और अनुवाद किया गया है। फ़्रेम नंबर लौटाया जाता है और मेमोरी तक पहुँचने के लिए उपयोग किया जाता है। यदि पृष्ठ संख्या TLB में नहीं है, तो पृष्ठ तालिका की जाँच अवश्य की जानी चाहिए। सीपीयू के आधार पर, यह एक हार्डवेयर का उपयोग करके या ऑपरेटिंग सिस्टम में रुकावट का उपयोग करके स्वचालित रूप से किया जा सकता है। जब फ्रेम नंबर प्राप्त होता है, तो इसका उपयोग मेमोरी तक पहुंचने के लिए किया जा सकता है। इसके अलावा, हम पृष्ठ संख्या और फ़्रेम संख्या को TLB में जोड़ते हैं, ताकि वे अगले संदर्भ पर जल्दी से मिल सकें। यदि टीएलबी पहले से ही भरा हुआ है, तो प्रतिस्थापन के लिए उपयुक्त ब्लॉक का चयन किया जाना चाहिए। विभिन्न प्रतिस्थापन विधियां हैं जैसे कम से कम हाल ही में उपयोग किया गया (LRU), पहले अंदर, पहले बाहर (FIFO) आदि; कैश और टीएलबी से संबंधित वर्चुअल एड्रेसिंग के बारे में अधिक जानकारी के लिए कैश आलेख में सीपीयू कैश#एड्रेस ट्रांसलेशन सेक्शन देखें।

प्रदर्शन निहितार्थ

फ्लोचार्ट[5] ट्रांसलेशन लुकसाइड बफ़र की कार्यप्रणाली दिखाता है. सरलता के लिए, पेज-फ़ॉल्ट रूटीन का उल्लेख नहीं किया गया है।

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

प्रदान किया गया फ़्लोचार्ट एक TLB की कार्यप्रणाली की व्याख्या करता है। यदि यह एक TLB मिस है, तो CPU पृष्ठ तालिका प्रविष्टि के लिए पृष्ठ तालिका की जाँच करता है। यदि वर्तमान बिट सेट है, तो पृष्ठ मुख्य मेमोरी में है, और प्रोसेसर भौतिक पता बनाने के लिए पृष्ठ-तालिका प्रविष्टि से फ़्रेम संख्या प्राप्त कर सकता है।[6] प्रोसेसर नई पेज-टेबल एंट्री को शामिल करने के लिए टीएलबी को भी अपडेट करता है। अंत में, यदि वर्तमान बिट सेट नहीं है, तो वांछित पृष्ठ मुख्य मेमोरी में नहीं है, और पृष्ठ दोष जारी किया जाता है। फिर पेज-फॉल्ट इंटरप्ट कहा जाता है, जो पेज-फॉल्ट हैंडलिंग रूटीन को निष्पादित करता है।

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

एकाधिक टीएलबी

कैश के समान, TLB के कई स्तर हो सकते हैं। सीपीयू (और आजकल आमतौर पर) कई टीएलबी के साथ बनाया जा सकता है, उदाहरण के लिए एक छोटा एल1 टीएलबी (संभावित रूप से पूरी तरह से सहयोगी) जो बहुत तेज है, और एक बड़ा एल2 टीएलबी जो कुछ धीमा है। जब निर्देश-टीएलबी (आईटीएलबी) और डेटा-टीएलबी (डीटीएलबी) का उपयोग किया जाता है, तो एक सीपीयू में तीन (आईटीएलबी1, डीटीएलबी1, टीएलबी2) या चार टीएलबी हो सकते हैं।

उदाहरण के लिए, इंटेल के नेहलेम (माइक्रोआर्किटेक्चर) माइक्रोआर्किटेक्चर में चार-तरफ़ा सेट सहयोगी L1 DTLB है जिसमें 4 KiB पेजों के लिए 64 प्रविष्टियाँ और 2/4 MiB पेजों के लिए 32 प्रविष्टियाँ हैं, एक L1 ITLB है जिसमें 4 KiB पेजों के लिए 128 प्रविष्टियाँ हैं जो फोर-वे एसोशिएटिविटी का उपयोग करती हैं और 2/4 MiB पृष्ठों के लिए 14 पूरी तरह से साहचर्य प्रविष्टियां (ITLB के दोनों भाग दो थ्रेड्स के बीच स्थिर रूप से विभाजित)[7] और 4 KiB पेजों के लिए एकीकृत 512-प्रविष्टि L2 TLB,[8] दोनों 4-तरफा सहयोगी।[9] कुछ टीएलबी में छोटे पेज और बड़े पेज के लिए अलग सेक्शन हो सकते हैं। उदाहरण के लिए, Intel Skylake (माइक्रोआर्किटेक्चर) माइक्रोआर्किटेक्चर 1GiB पृष्ठों के लिए TLB प्रविष्टियों को 4KiB/2MiB पृष्ठों के लिए अलग करता है।[10]


टीएलबी-मिस हैंडलिंग

टीएलबी मिसेस को संभालने के लिए दो योजनाएँ आमतौर पर आधुनिक आर्किटेक्चर में पाई जाती हैं:

  • हार्डवेयर टीएलबी प्रबंधन के साथ, सीपीयू स्वचालित रूप से पेज टेबल चलता है (उदाहरण के लिए, x86 पर कंट्रोल रजिस्टर#CR3 रजिस्टर का उपयोग करके) यह देखने के लिए कि क्या निर्दिष्ट वर्चुअल एड्रेस के लिए एक मान्य पेज-टेबल प्रविष्टि है। यदि कोई प्रविष्टि मौजूद है, तो इसे टीएलबी में लाया जाता है, और टीएलबी एक्सेस का पुनः प्रयास किया जाता है: इस बार एक्सेस हिट हो जाएगी, और प्रोग्राम सामान्य रूप से आगे बढ़ सकता है। यदि सीपीयू को पेज टेबल में वर्चुअल एड्रेस के लिए कोई वैध प्रविष्टि नहीं मिलती है, तो यह पेज फॉल्ट अपवाद हैंडलिंग को बढ़ाता है, जिसे ऑपरेटिंग सिस्टम को हैंडल करना चाहिए। पृष्ठ दोषों को संभालने में आमतौर पर अनुरोधित डेटा को भौतिक मेमोरी में लाना, दोषपूर्ण आभासी पते को सही भौतिक पते पर मैप करने के लिए पृष्ठ तालिका प्रविष्टि की स्थापना करना और कार्यक्रम को फिर से शुरू करना शामिल है। हार्डवेयर-प्रबंधित टीएलबी के साथ, टीएलबी प्रविष्टियों का प्रारूप सॉफ्टवेयर को दिखाई नहीं देता है और कार्यक्रमों के लिए अनुकूलता के नुकसान के बिना सीपीयू से सीपीयू में बदल सकता है।
  • सॉफ्टवेयर-प्रबंधित टीएलबी के साथ, एक टीएलबी मिस एक टीएलबी मिस अपवाद उत्पन्न करता है, और ऑपरेटिंग सिस्टम कोड पेज टेबल पर चलने और सॉफ्टवेयर में अनुवाद करने के लिए जिम्मेदार होता है। ऑपरेटिंग सिस्टम तब टीएलबी में अनुवाद को लोड करता है और टीएलबी मिस होने वाले निर्देश से प्रोग्राम को पुनरारंभ करता है। हार्डवेयर टीएलबी प्रबंधन के साथ, यदि ओएस को पेज टेबल में कोई वैध अनुवाद नहीं मिलता है, तो एक पेज गलती हुई है, और ओएस को तदनुसार इसे संभालना चाहिए। सॉफ्टवेयर-प्रबंधित टीएलबी वाले सीपीयू के निर्देश सेट में ऐसे निर्देश होते हैं जो टीएलबी में किसी भी स्लॉट में प्रविष्टियों को लोड करने की अनुमति देते हैं। टीएलबी प्रविष्टि के प्रारूप को निर्देश सेट आर्किटेक्चर (आईएसए) के हिस्से के रूप में परिभाषित किया गया है।[11]

MIPS आर्किटेक्चर एक सॉफ्टवेयर-प्रबंधित TLB निर्दिष्ट करता है।[12]

SPARC V9 आर्किटेक्चर SPARC V9 के कार्यान्वयन की अनुमति देता है जिसमें कोई MMU नहीं है, एक MMU जिसमें सॉफ़्टवेयर-प्रबंधित TLB है, या एक MMU है जिसमें हार्डवेयर-प्रबंधित TLB है,[13] और UltraSPARC आर्किटेक्चर 2005 एक सॉफ्टवेयर-प्रबंधित TLB निर्दिष्ट करता है।[14]

इटेनियम आर्किटेक्चर सॉफ्टवेयर या हार्डवेयर-प्रबंधित टीएलबी का उपयोग करने का विकल्प प्रदान करता है।[15]

डीईसी अल्फा आर्किटेक्चर का टीएलबी ऑपरेटिंग सिस्टम के बजाय पाल कोड में प्रबंधित किया जाता है। जैसा कि एक प्रोसेसर के लिए PALcode प्रोसेसर-विशिष्ट और ऑपरेटिंग-सिस्टम-विशिष्ट हो सकता है, यह PALcode के विभिन्न संस्करणों को अलग-अलग ऑपरेटिंग सिस्टम के लिए अलग-अलग पेज-टेबल स्वरूपों को लागू करने की अनुमति देता है, बिना TLB प्रारूप की आवश्यकता के, और TLB को नियंत्रित करने के निर्देश , वास्तुकला द्वारा निर्दिष्ट किया जाना है।[16]


विशिष्ट टीएलबी

ये TLB के विशिष्ट प्रदर्शन स्तर हैं:[17]

  • आकार: 12 बिट्स - 4,096 प्रविष्टियाँ
  • हिट समय: 0.5 - 1 घड़ी चक्र
  • मिस पेनल्टी: 10 - 100 क्लॉक साइकिल
  • मिस रेट: 0.01 - 1% (20–40% विरल/ग्राफ़ अनुप्रयोगों के लिए)

औसत प्रभावी स्मृति चक्र दर के रूप में परिभाषित किया गया है चक्र, कहाँ मेमोरी पढ़ने के लिए आवश्यक चक्रों की संख्या है, मिस रेट है, और चक्रों में हिट समय है। यदि एक टीएलबी हिट में 1 घड़ी चक्र लगता है, एक चूक 30 घड़ी चक्र लेती है, एक मेमोरी पढ़ने में 30 घड़ी चक्र लगते हैं, और चूक दर 1% है, प्रभावी स्मृति चक्र दर औसत है (31.29 घड़ी चक्र प्रति मेमोरी एक्सेस)।[18]


पता-स्थान स्विच

एड्रेस-स्पेस स्विच पर, जैसा तब होता है जब संदर्भ प्रक्रियाओं के बीच स्विच करता है (लेकिन थ्रेड्स के बीच नहीं), कुछ टीएलबी प्रविष्टियां अमान्य हो सकती हैं, क्योंकि वर्चुअल-टू-फिजिकल मैपिंग अलग है। इससे निपटने की सबसे सरल रणनीति टीएलबी को पूरी तरह से फ्लश करना है। इसका मतलब है कि एक स्विच के बाद, टीएलबी खाली है, और कोई भी मेमोरी संदर्भ मिस हो जाएगा, इसलिए कुछ समय पहले चीजें पूरी गति से वापस चल रही होंगी। नए सीपीयू अधिक प्रभावी रणनीतियों का उपयोग करते हैं जो यह चिन्हित करते हैं कि कौन सी प्रक्रिया एक प्रविष्टि के लिए है। इसका मतलब यह है कि यदि दूसरी प्रक्रिया केवल थोड़े समय के लिए चलती है और पहली प्रक्रिया में वापस चली जाती है, तो TLB में अभी भी वैध प्रविष्टियाँ हो सकती हैं, जिससे उन्हें पुनः लोड करने में समय की बचत होती है।[19] अन्य रणनीतियाँ एक संदर्भ स्विच पर TLB को फ़्लश करने से बचती हैं: (ए) एक सिंगल एड्रेस स्पेस ऑपरेटिंग सिस्टम सभी प्रक्रियाओं के लिए एक ही वर्चुअल-टू-फिजिकल मैपिंग का उपयोग करता है। (बी) कुछ सीपीयू में एक प्रक्रिया आईडी रजिस्टर होता है, और हार्डवेयर टीएलबी प्रविष्टियों का उपयोग केवल तभी करता है जब वे वर्तमान प्रक्रिया आईडी से मेल खाते हों।

उदाहरण के लिए, अल्फा 21264 में, प्रत्येक टीएलबी प्रविष्टि को पता स्थान संख्या (एएसएन) के साथ टैग किया गया है, और वर्तमान कार्य से मेल खाने वाले एएसएन के साथ केवल टीएलबी प्रविष्टियां मान्य मानी जाती हैं। इंटेल पेंटियम प्रो में एक और उदाहरण, पेज ग्लोबल इनेबल (PGE) फ्लैग रजिस्टर कंट्रोल रजिस्टर #CR4 में और पेज-डायरेक्टरी या पेज-टेबल एंट्री के ग्लोबल (G) फ्लैग का उपयोग बार-बार उपयोग किए जाने वाले पेजों को होने से रोकने के लिए किया जा सकता है। कार्य स्विच या रजिस्टर CR3 के भार पर TLBs में स्वचालित रूप से अमान्य हो गया। 2010 के वेस्टमेरे (माइक्रोआर्किटेक्चर) इंटेल 64 प्रोसेसर भी 12-बिट प्रक्रिया-संदर्भ पहचानकर्ता (पीसीआईडी) का समर्थन करते हैं, जो कई रैखिक-पता रिक्त स्थान के लिए टीएलबी प्रविष्टियों को बनाए रखने की अनुमति देते हैं, जो वर्तमान पीसीआईडी ​​​​से मेल खाते हैं जो पता अनुवाद के लिए उपयोग किए जा रहे हैं।[20][21] जबकि टीएलबी का चयनात्मक फ्लशिंग सॉफ्टवेयर-प्रबंधित टीएलबी में एक विकल्प है, कुछ हार्डवेयर टीएलबी में एकमात्र विकल्प (उदाहरण के लिए, इंटेल 80386 में टीएलबी) एड्रेस-स्पेस स्विच पर टीएलबी का पूर्ण फ्लशिंग है। अन्य हार्डवेयर TLBs (उदाहरण के लिए, Intel 80486 और बाद में x86 प्रोसेसर में TLB, और एआरएम वास्तुकला प्रोसेसर में TLB) वर्चुअल एड्रेस द्वारा अनुक्रमित TLB से अलग-अलग प्रविष्टियों को फ़्लश करने की अनुमति देते हैं।

टीएलबी की फ्लशिंग प्रक्रियाओं के बीच मेमोरी आइसोलेशन के लिए एक महत्वपूर्ण सुरक्षा तंत्र हो सकता है ताकि यह सुनिश्चित किया जा सके कि कोई प्रक्रिया किसी अन्य प्रक्रिया के मेमोरी पेजों में संग्रहीत डेटा तक नहीं पहुंच सकती है। विशेषाधिकार प्राप्त ऑपरेटिंग सिस्टम कर्नेल प्रक्रिया और उपयोगकर्ता प्रक्रियाओं के बीच स्विच के दौरान मेमोरी आइसोलेशन विशेष रूप से महत्वपूर्ण है - जैसा कि मेल्टडाउन (सुरक्षा भेद्यता) सुरक्षा भेद्यता द्वारा हाइलाइट किया गया था। शमन रणनीतियाँ जैसे कि कर्नेल पेज-टेबल अलगाव (केपीटीआई) प्रदर्शन-प्रभावित टीएलबी फ्लश पर बहुत अधिक निर्भर करती हैं और हार्डवेयर-सक्षम चयनात्मक टीएलबी प्रविष्टि प्रबंधन जैसे पीसीआईडी ​​​​से बहुत लाभान्वित होती हैं।[22]


वर्चुअलाइजेशन और x86 टीएलबी

सर्वर समेकन के लिए वर्चुअलाइजेशन के आगमन के साथ, x86 आर्किटेक्चर को वर्चुअलाइज करना आसान बनाने और x86 हार्डवेयर पर वर्चुअल मशीनों के बेहतर प्रदर्शन को सुनिश्चित करने के लिए बहुत प्रयास किए गए हैं।[23][24]

आम तौर पर, x86 टीएलबी में प्रविष्टियां किसी विशेष पता स्थान से संबद्ध नहीं होती हैं; वे अप्रत्यक्ष रूप से वर्तमान पता स्थान को संदर्भित करते हैं। इसलिए, जब भी पता स्थान में कोई परिवर्तन होता है, जैसे संदर्भ स्विच, तो संपूर्ण TLB को फ़्लश करना पड़ता है। एक टैग को बनाए रखना जो प्रत्येक टीएलबी प्रविष्टि को सॉफ़्टवेयर में पता स्थान के साथ जोड़ता है और टीएलबी लुकअप और टीएलबी फ्लश के दौरान इस टैग की तुलना करना बहुत महंगा है, खासकर जब से x86 टीएलबी को बहुत कम विलंबता और पूरी तरह से हार्डवेयर में संचालित करने के लिए डिज़ाइन किया गया है। 2008 में, दोनों इंटेल (नेहलेम (माइक्रोआर्किटेक्चर))[25] और एएमडी ( सुरक्षित वर्चुअल मशीन )[26] टीएलबी प्रविष्टि और समर्पित हार्डवेयर के हिस्से के रूप में टैग पेश किए हैं जो लुकअप के दौरान टैग की जांच करता है। भले ही इनका पूरी तरह से दोहन नहीं किया गया हो, इसकी परिकल्पना की गई है कि भविष्य में, ये टैग उस पता स्थान की पहचान करेंगे जिससे प्रत्येक TLB प्रविष्टि संबंधित है। इस प्रकार एक संदर्भ स्विच का परिणाम टीएलबी के फ्लशिंग में नहीं होगा - बल्कि वर्तमान पता स्थान के टैग को नए कार्य के पता स्थान के टैग में बदलना होगा।

यह भी देखें

संदर्भ

  1. Arpaci-Dusseau, Remzi H.; Arpaci-Dusseau, Andrea C. (2014), Operating Systems: Three Easy Pieces [Chapter: Faster Translations (TLBs)] (PDF), Arpaci-Dusseau Books
  2. S. Peter Song; Marvin Denman; Joe Chang (October 1994). "The PowerPC 604 RISC Microprocessor" (PDF). IEEE Micro. 14 (5): 13–14. doi:10.1109/MM.1994.363071. S2CID 11603864. Archived from the original (PDF) on 2016-06-01.
  3. Silberschatz, Galvin, Gagne, Abraham, Peter B. , Greg (2009). ऑपरेटिंग सिस्टम अवधारणाओं. United States of America: John Wiley & Sons. INC. ISBN 978-0-470-12872-5.{{cite book}}: CS1 maint: multiple names: authors list (link)
  4. Chen, J. Bradley; Borg, Anita; Jouppi, Norman P. (1992). "टीएलबी प्रदर्शन का अनुकरण आधारित अध्ययन". SIGARCH Computer Architecture News. 20 (2): 114–123. doi:10.1145/146628.139708.
  5. Stallings, William (2014). Operating Systems: Internals and Design Principles. United States of America: Pearson. ISBN 978-0133805918.
  6. Solihin, Yan (2016). पैरेलल मल्टीकोर आर्किटेक्चर के फंडामेंटल. Boca Raton, FL: Taylor & Francis Group. ISBN 978-0-9841630-0-7.
  7. "Inside Nehalem: Intel's Future Processor and System". Real World Technologies.
  8. "Intel Core i7 (Nehalem): Architecture By AMD?". Tom's Hardware. 14 October 2008. Retrieved 24 November 2010.
  9. "Inside Nehalem: Intel's Future Processor and System". Real World Technologies. Retrieved 24 November 2010.
  10. Srinivas, Suresh; Pawar, Uttam; Aribuki, Dunni; Manciu, Catalin; Schulhof, Gabriel; Prasad, Aravinda (1 November 2019). "Runtime Performance Optimization Blueprint: Intel® Architecture Optimization with Large Code Pages". Retrieved 22 October 2022.{{cite web}}: CS1 maint: url-status (link)
  11. J. Smith and R. Nair. Virtual Machines: Versatile Platforms for Systems and Processes (The Morgan Kaufmann Series in Computer Architecture and Design). Morgan Kaufmann Publishers Inc., 2005.
  12. Welsh, Matt. "MIPS r2000/r3000 Architecture". Archived from the original on 14 October 2008. Retrieved 16 November 2008. यदि कोई मेल खाने वाली टीएलबी प्रविष्टि नहीं मिलती है, तो एक टीएलबी मिस अपवाद होता है
  13. SPARC International, Inc. The SPARC Architecture Manual, Version 9. PTR Prentice Hall.
  14. Sun Microsystems. UltraSPARC Architecture 2005. Draft D0.9.2, 19 June 2008. Sun Microsystems.
  15. Virtual Memory in the IA-64 Kernel > Translation Lookaside Buffer.
  16. Compaq Computer Corporation. अल्फा आर्किटेक्चर हैंडबुक (PDF). Version 4. Compaq Computer Corporation. Archived from the original (PDF) on 9 October 2014. Retrieved 1 December 2010.
  17. David A. Patterson; John L. Hennessy (2009). Computer Organization And Design. Hardware/Software interface. 4th edition. Burlington, MA 01803, USA: Morgan Kaufmann Publishers. p. 503. ISBN 978-0-12-374493-7.{{cite book}}: CS1 maint: location (link)
  18. "पेजिंग में ट्रांसलेशन लुकसाइड बफर (टीएलबी)।". GeeksforGeeks (in English). 2019-02-26. Retrieved 2021-02-10.
  19. Ulrich Drepper (9 October 2014). "Memory part 3: Virtual Memory". LWN.net.
  20. David Kanter (17 March 2010). "वेस्टमेयर आता है". Real World Tech. Retrieved 6 January 2018.
  21. Intel Corporation (2017). "4.10.1 Process-Context Identifiers (PCIDs)". Intel 64 and IA-32 Architectures Software Developer's Manual (PDF). Vol. 3A: System Programming Guide, Part 1.
  22. Gil Tene (8 January 2018). "PCID is now a critical performance/security feature on x86". Retrieved 23 March 2018.
  23. D. Abramson; J. Jackson; S. Muthrasanallur; G. Neiger; G. Regnier; R. Sankaran; I. Schoinas; R. Uhlig; B. Vembu; J. Wiegert. "Intel Virtualization Technology for Directed I/O". Intel Technology Journal. 10 (3): 179–192.
  24. Advanced Micro Devices. AMD Secure Virtual Machine Architecture Reference Manual. Advanced Micro Devices, 2008.
  25. G. Neiger; A. Santoni; F. Leung; D. Rodgers; R. Uhlig. "Intel Virtualization Technology: Hardware Support for Efficient Processor Virtualization". Intel Technology Journal. 10 (3).
  26. Advanced Micro Devices. AMD Secure Virtual Machine Architecture Reference Manual. Advanced Micro Devices, 2008.


बाहरी संबंध