अनुवाद लुकसाइड बफर
ट्रांसलेशन लुकसाइड बफ़र (टीएलबी) एक मेमोरी सीपीयू कैश है जो आभासी मेमोरी के हाल के अनुवादों को भौतिक मेमोरी में संग्रहीत करता है। इसका उपयोग उपयोगकर्ता मेमोरी स्थान तक पहुंचने में लगने वाले समय को कम करने के लिए किया जाता है।[1] इसे एड्रेस-ट्रांसलेशन कैश कहा जा सकता है। यह चिप की मेमोरी प्रबंधन इकाई | मेमोरी-मैनेजमेंट यूनिट (एमएमयू) का एक हिस्सा है। एक टीएलबी सेंट्रल प्रोसेसिंग यूनिट और सीपीयू कैश के बीच, सीपीयू कैश और मेन मेमोरी के बीच या मल्टी-लेवल कैश के विभिन्न स्तरों के बीच हो सकता है। अधिकांश डेस्कटॉप, लैपटॉप और सर्वर प्रोसेसर में मेमोरी-मैनेजमेंट हार्डवेयर में एक या एक से अधिक टीएलबी शामिल होते हैं, और यह लगभग हमेशा किसी भी प्रोसेसर में मौजूद होता है जो पेजिंग या स्मृति विभाजन वर्चुअल मेमोरी का उपयोग करता है।
टीएलबी को कभी-कभी सामग्री-पता योग्य मेमोरी (कैम) के रूप में लागू किया जाता है। सीएएम खोज कुंजी आभासी पता है, और खोज परिणाम एक भौतिक पता है। यदि अनुरोधित पता टीएलबी में मौजूद है, तो सीएएम खोज जल्दी से एक मैच देती है और पुनर्प्राप्त भौतिक पते का उपयोग स्मृति तक पहुंचने के लिए किया जा सकता है। इसे टीएलबी हिट कहा जाता है। यदि अनुरोधित पता टीएलबी में नहीं है, तो यह एक मिस है, और पेज वॉक नामक प्रक्रिया में पेज टेबल को देखकर अनुवाद आगे बढ़ता है। प्रोसेसर की गति की तुलना में पेज वॉक समय लेने वाला है, क्योंकि इसमें कई मेमोरी स्थानों की सामग्री को पढ़ना और भौतिक पते की गणना करने के लिए उनका उपयोग करना शामिल है। पेज वॉक द्वारा भौतिक पता निर्धारित करने के बाद, भौतिक पता मैपिंग के लिए आभासी पता टीएलबी में दर्ज किया जाता है। उदाहरण के लिए, पावरपीसी 604 में डेटा लोड और स्टोर के लिए दो-तरफ़ा सेट साहचर्य टीएलबी है।[2] कुछ प्रोसेसर के अलग-अलग निर्देश और डेटा एड्रेस टीएलबी होते हैं।
सिंहावलोकन
एक टीएलबी में निश्चित संख्या में स्लॉट होते हैं जिनमें पृष्ठ तालिका | पृष्ठ-तालिका प्रविष्टियाँ और खंड-तालिका प्रविष्टियाँ होती हैं; पृष्ठ-तालिका प्रविष्टियाँ आभासी पतों को भौतिक पतों और मध्यवर्ती-तालिका पतों पर मैप करती हैं, जबकि खंड-तालिका प्रविष्टियाँ आभासी पतों को खंड पतों, मध्यवर्ती-तालिका पतों और पृष्ठ-तालिका पतों पर मैप करती हैं। वर्चुअल मेमोरी मेमोरी स्पेस है जैसा कि एक प्रक्रिया से देखा जाता है; यह स्थान अक्सर एक निश्चित आकार के पेज (कंप्यूटर मेमोरी) में विभाजित होता है (पेजेड मेमोरी में), या कम सामान्यतः वेरिएबल साइज के खंड (मेमोरी) में (सेगमेंटेड मेमोरी में)। पृष्ठ तालिका, आमतौर पर मुख्य मेमोरी में संग्रहीत होती है, यह ट्रैक करती है कि भौतिक मेमोरी में वर्चुअल पेज कहाँ संग्रहीत हैं। यह विधि एक बाइट तक पहुँचने के लिए दो मेमोरी एक्सेस (एक पृष्ठ-तालिका प्रविष्टि के लिए, एक बाइट के लिए) का उपयोग करती है। सबसे पहले, पृष्ठ तालिका को फ़्रेम संख्या के लिए खोजा जाता है। दूसरा, पेज ऑफ़सेट वाला फ़्रेम नंबर वास्तविक पता देता है। इस प्रकार किसी भी सीधी वर्चुअल मेमोरी स्कीम का मेमोरी एक्सेस टाइम को दोगुना करने का प्रभाव होगा। इसलिए, पेज-टेबल पद्धति मुख्य स्मृति स्थानों तक पहुंचने में लगने वाले समय को कम करने के लिए टीएलबी का उपयोग किया जाता है। टीएलबी पेज टेबल का एक कैश है, जो पेज-टेबल सामग्री के केवल एक सबसेट का प्रतिनिधित्व करता है।
भौतिक स्मृति पतों को संदर्भित करते हुए, एक टीएलबी सीपीयू और सीपीयू कैश के बीच, सीपीयू कैश और प्रारंभिक भंडारण मेमोरी के बीच, या बहु-स्तरीय कैश के स्तरों के बीच स्थित हो सकता है। प्लेसमेंट निर्धारित करता है कि कैश भौतिक या वर्चुअल एड्रेसिंग का उपयोग करता है या नहीं। यदि कैश को वस्तुतः संबोधित किया जाता है, तो अनुरोध सीधे सीपीयू से कैश में भेजे जाते हैं, और टीएलबी को केवल कैश मिस पर ही एक्सेस किया जाता है। यदि कैश को भौतिक रूप से संबोधित किया जाता है, तो सीपीयू प्रत्येक मेमोरी ऑपरेशन पर एक टीएलबी लुकअप करता है, और परिणामी भौतिक पता कैश को भेजा जाता है।
हार्वर्ड आर्किटेक्चर [[संशोधित हार्वर्ड वास्तुकला]] आर्किटेक्चर में, निर्देशों और डेटा के लिए एक अलग वर्चुअल एड्रेस स्पेस या मेमोरी-एक्सेस हार्डवेयर मौजूद हो सकता है। यह प्रत्येक एक्सेस प्रकार, एक निर्देश अनुवाद लुकसाइड बफर (Iटीएलबी) और एक डेटा ट्रांसलेशन लुकसाइड बफर (डीटीएलबी) के लिए अलग-अलग टीएलबीएस को जन्म दे सकता है। अलग-अलग डेटा और निर्देश टीएलबी के साथ विभिन्न लाभों का प्रदर्शन किया गया है।[4]
टीएलबी का उपयोग तेज़ लुकअप हार्डवेयर कैश के रूप में किया जा सकता है। आंकड़ा एक टीएलबी के काम को दर्शाता है। टीएलबी में प्रत्येक प्रविष्टि में दो भाग होते हैं: एक टैग और एक मान। यदि आने वाले आभासी पते का टैग टीएलबी में टैग से मेल खाता है, तो संबंधित मान वापस आ जाता है। चूंकि टीएलबी लुकअप आमतौर पर निर्देश पाइपलाइन का एक हिस्सा है, खोज तेज होती है और अनिवार्य रूप से कोई प्रदर्शन जुर्माना नहीं होता है। हालाँकि, निर्देश पाइपलाइन के भीतर खोज करने में सक्षम होने के लिए, टीएलबी को छोटा होना चाहिए।
भौतिक रूप से संबोधित कैश के लिए एक सामान्य अनुकूलन कैश एक्सेस के समानांतर टीएलबी लुकअप करना है। प्रत्येक वर्चुअल-मेमोरी संदर्भ पर, हार्डवेयर यह देखने के लिए टीएलबी की जाँच करता है कि पृष्ठ संख्या उसमें रखी गई है या नहीं। यदि हां, तो यह एक टीएलबी हिट है, और अनुवाद किया गया है। फ़्रेम नंबर लौटाया जाता है और मेमोरी तक पहुँचने के लिए उपयोग किया जाता है। यदि पृष्ठ संख्या टीएलबी में नहीं है, तो पृष्ठ तालिका की जाँच अवश्य की जानी चाहिए। सीपीयू के आधार पर, यह एक हार्डवेयर का उपयोग करके या ऑपरेटिंग सिस्टम में रुकावट का उपयोग करके स्वचालित रूप से किया जा सकता है। जब फ्रेम नंबर प्राप्त होता है, तो इसका उपयोग मेमोरी तक पहुंचने के लिए किया जा सकता है। इसके अलावा, हम पृष्ठ संख्या और फ़्रेम संख्या को टीएलबी में जोड़ते हैं, ताकि वे अगले संदर्भ पर जल्दी से मिल सकें। यदि टीएलबी पहले से ही भरा हुआ है, तो प्रतिस्थापन के लिए उपयुक्त ब्लॉक का चयन किया जाना चाहिए। विभिन्न प्रतिस्थापन विधियां हैं जैसे कम से कम हाल ही में उपयोग किया गया (एलआरयू), पहले अंदर, पहले बाहर (फीफो) आदि; कैश और टीएलबी से संबंधित वर्चुअल एड्रेसिंग के बारे में अधिक जानकारी के लिए कैश आलेख में सीपीयू कैश#एड्रेस ट्रांसलेशन सेक्शन देखें।
प्रदर्शन निहितार्थ
सीपीयू को इंस्ट्रक्शन-कैश मिस, डेटा-कैश मिस या टीएलबी मिस के लिए मेन मेमोरी एक्सेस करनी होती है। तीसरा मामला (सबसे सरल) वह है जहां वांछित जानकारी वास्तव में कैश में होती है, लेकिन आभासी-से-भौतिक अनुवाद के लिए जानकारी टीएलबी में नहीं होती है। मेमोरी पदानुक्रम के धीमे स्तर तक पहुँचने की आवश्यकता के कारण ये सभी धीमे हैं, इसलिए एक अच्छी तरह से काम करने वाला टीएलबी महत्वपूर्ण है। दरअसल, एक टीएलबी मिस एक निर्देश या डेटा कैश मिस की तुलना में अधिक महंगा हो सकता है, न केवल मुख्य मेमोरी से लोड की आवश्यकता के कारण, बल्कि एक पेज वॉक, जिसमें कई मेमोरी एक्सेस की आवश्यकता होती है।
प्रदान किया गया फ़्लोचार्ट एक टीएलबी की कार्यप्रणाली की व्याख्या करता है। यदि यह एक टीएलबी मिस है, तो सीपीयू पृष्ठ तालिका प्रविष्टि के लिए पृष्ठ तालिका की जाँच करता है। यदि वर्तमान बिट सेट है, तो पृष्ठ मुख्य मेमोरी में है, और प्रोसेसर भौतिक पता बनाने के लिए पृष्ठ-तालिका प्रविष्टि से फ़्रेम संख्या प्राप्त कर सकता है।[6] प्रोसेसर नई पेज-टेबल एंट्री को शामिल करने के लिए टीएलबी को भी अपडेट करता है। अंत में, यदि वर्तमान बिट सेट नहीं है, तो वांछित पृष्ठ मुख्य मेमोरी में नहीं है, और पृष्ठ दोष जारी किया जाता है। फिर पेज-फॉल्ट इंटरप्ट कहा जाता है, जो पेज-फॉल्ट हैंडलिंग रूटीन को निष्पादित करता है।
यदि पेज कार्य का संग्रह टीएलबी में फिट नहीं होता है, तो टीएलबी पिटाई होती है, जहां बार-बार टीएलबी मिस होती है, प्रत्येक नए कैश्ड पेज को विस्थापित करने के साथ जो जल्द ही फिर से उपयोग किया जाएगा, ठीक उसी तरह से प्रदर्शन को कम करना जैसे निर्देश को थ्रैश करना या डेटा कैश करता है। टीएलबी थ्रैशिंग तब भी हो सकती है जब निर्देश-कैश या डेटा-कैश थ्रैशिंग (कंप्यूटर विज्ञान) नहीं हो रहा हो, क्योंकि ये अलग-अलग आकार की इकाइयों में कैश किए जाते हैं। निर्देश और डेटा को छोटे ब्लॉक (कैश लाइन) में कैश किया जाता है, पूरे पेज नहीं, लेकिन एड्रेस लुकअप पेज स्तर पर किया जाता है। इस प्रकार भले ही कोड और डेटा वर्किंग सेट कैश में फिट हो जाते हैं, अगर वर्किंग सेट कई पेजों में खंडित हो जाते हैं, तो वर्चुअल-एड्रेस वर्किंग सेट टीएलबी में फिट नहीं हो सकता है, जिससे टीएलबी थ्रशिंग हो सकता है। इस प्रकार टीएलबी के उचित आकार के लिए न केवल संबंधित निर्देश और डेटा कैश के आकार पर विचार करने की आवश्यकता है, बल्कि यह भी कि ये कई पृष्ठों में कैसे खंडित हैं।
एकाधिक टीएलबी
कैश के समान, टीएलबी के कई स्तर हो सकते हैं। सीपीयू (और आजकल आमतौर पर) कई टीएलबी के साथ बनाया जा सकता है, उदाहरण के लिए एक छोटा एल1 टीएलबी (संभावित रूप से पूरी तरह से सहयोगी) जो बहुत तेज है, और एक बड़ा एल2 टीएलबी जो कुछ धीमा है। जब निर्देश-टीएलबी (आईटीएलबी) और डेटा-टीएलबी (डीटीएलबी) का उपयोग किया जाता है, तो एक सीपीयू में तीन (आईटीएलबी1, डीटीएलबी1, टीएलबी2) या चार टीएलबी हो सकते हैं।
उदाहरण के लिए, इंटेल के नेहलेम (माइक्रोआर्किटेक्चर) माइक्रोआर्किटेक्चर में चार-तरफ़ा सेट सहयोगी L1 डीटीएलबी है जिसमें 4 किब पेजों के लिए 64 प्रविष्टियाँ और 2/4 मिब पेजों के लिए 32 प्रविष्टियाँ हैं, एक L1 Iटीएलबी है जिसमें 4 किब पेजों के लिए 128 प्रविष्टियाँ हैं जो फोर-वे एसोशिएटिविटी का उपयोग करती हैं और 2/4 मिब पृष्ठों के लिए 14 पूरी तरह से साहचर्य प्रविष्टियां (Iटीएलबी के दोनों भाग दो थ्रेड्स के बीच स्थिर रूप से विभाजित)[7] और 4 किब पेजों के लिए एकीकृत 512-प्रविष्टि L2 टीएलबी,[8] दोनों 4-तरफा सहयोगी।[9]
कुछ टीएलबी में छोटे पेज और बड़े पेज के लिए अलग सेक्शन हो सकते हैं। उदाहरण के लिए, इंटेल स्काईलेक (माइक्रोआर्किटेक्चर) माइक्रोआर्किटेक्चर 1GiB पृष्ठों के लिए टीएलबी प्रविष्टियों को 4KiB/2मिब पृष्ठों के लिए अलग करता है।[10]
टीएलबी-मिस हैंडलिंग
टीएलबी मिसेस को संभालने के लिए दो योजनाएँ आमतौर पर आधुनिक आर्किटेक्चर में पाई जाती हैं:
- हार्डवेयर टीएलबी प्रबंधन के साथ, सीपीयू स्वचालित रूप से पेज टेबल चलता है (उदाहरण के लिए, x86 पर कंट्रोल रजिस्टर या CR3 रजिस्टर का उपयोग करके) यह देखने के लिए कि क्या निर्दिष्ट वर्चुअल एड्रेस के लिए एक मान्य पेज-टेबल प्रविष्टि है। यदि कोई प्रविष्टि मौजूद है, तो इसे टीएलबी में लाया जाता है, और टीएलबी एक्सेस का पुनः प्रयास किया जाता है: इस बार एक्सेस हिट हो जाएगी, और प्रोग्राम सामान्य रूप से आगे बढ़ सकता है। यदि सीपीयू को पेज टेबल में वर्चुअल एड्रेस के लिए कोई वैध प्रविष्टि नहीं मिलती है, तो यह पेज फॉल्ट अपवाद हैंडलिंग को बढ़ाता है, जिसे ऑपरेटिंग सिस्टम को हैंडल करना चाहिए। पृष्ठ दोषों को संभालने में आमतौर पर अनुरोधित डेटा को भौतिक मेमोरी में लाना, दोषपूर्ण आभासी पते को सही भौतिक पते पर मैप करने के लिए पृष्ठ तालिका प्रविष्टि की स्थापना करना और कार्यक्रम को फिर से शुरू करना शामिल है। हार्डवेयर-प्रबंधित टीएलबी के साथ, टीएलबी प्रविष्टियों का प्रारूप सॉफ्टवेयर को दिखाई नहीं देता है और कार्यक्रमों के लिए अनुकूलता के नुकसान के बिना सीपीयू से सीपीयू में बदल सकता है।
- सॉफ्टवेयर-प्रबंधित टीएलबी के साथ, एक टीएलबी मिस एक टीएलबी मिस अपवाद उत्पन्न करता है, और ऑपरेटिंग सिस्टम कोड पेज टेबल पर चलने और सॉफ्टवेयर में अनुवाद करने के लिए जिम्मेदार होता है। ऑपरेटिंग सिस्टम तब टीएलबी में अनुवाद को लोड करता है और टीएलबी मिस होने वाले निर्देश से प्रोग्राम को पुनरारंभ करता है। हार्डवेयर टीएलबी प्रबंधन के साथ, यदि ओएस को पेज टेबल में कोई वैध अनुवाद नहीं मिलता है, तो एक पेज गलती हुई है, और ओएस को तदनुसार इसे संभालना चाहिए। सॉफ्टवेयर-प्रबंधित टीएलबी वाले सीपीयू के निर्देश सेट में ऐसे निर्देश होते हैं जो टीएलबी में किसी भी स्लॉट में प्रविष्टियों को लोड करने की अनुमति देते हैं। टीएलबी प्रविष्टि के प्रारूप को निर्देश सेट आर्किटेक्चर (आईएसए) के हिस्से के रूप में परिभाषित किया गया है।[11]
एमआईपीएस आर्किटेक्चर एक सॉफ्टवेयर-प्रबंधित टीएलबी निर्दिष्ट करता है।[12]
स्पार्क V9 आर्किटेक्चर स्पार्क V9 के कार्यान्वयन की अनुमति देता है जिसमें कोई एमएमयू नहीं है, एक एमएमयू जिसमें सॉफ़्टवेयर-प्रबंधित टीएलबी है, या एक एमएमयू है जिसमें हार्डवेयर-प्रबंधित टीएलबी है,[13] और अल्ट्रास्पार्कआर्किटेक्चर 2005 एक सॉफ्टवेयर-प्रबंधित टीएलबी निर्दिष्ट करता है।[14]
इटेनियम आर्किटेक्चर सॉफ्टवेयर या हार्डवेयर-प्रबंधित टीएलबी का उपयोग करने का विकल्प प्रदान करता है।[15]
डीईसी अल्फा आर्किटेक्चर का टीएलबी ऑपरेटिंग सिस्टम के बजाय पाल कोड में प्रबंधित किया जाता है। जैसा कि एक प्रोसेसर के लिए पाल्कोड प्रोसेसर-विशिष्ट और ऑपरेटिंग-सिस्टम-विशिष्ट हो सकता है, यह पाल्कोड के विभिन्न संस्करणों को अलग-अलग ऑपरेटिंग सिस्टम के लिए अलग-अलग पेज-टेबल स्वरूपों को लागू करने की अनुमति देता है, बिना टीएलबी प्रारूप की आवश्यकता के, और टीएलबी को नियंत्रित करने के निर्देश , वास्तुकला द्वारा निर्दिष्ट किया जाना है।[16]
विशिष्ट टीएलबी
ये टीएलबी के विशिष्ट प्रदर्शन स्तर हैं:[17]
- आकार: 12 बिट्स - 4,096 प्रविष्टियाँ
- हिट समय: 0.5 - 1 घड़ी चक्र
- मिस पेनल्टी: 10 - 100 क्लॉक साइकिल
- मिस रेट: 0.01 - 1% (20–40% विरल/ग्राफ़ अनुप्रयोगों के लिए)
औसत प्रभावी स्मृति चक्र दर के रूप में परिभाषित किया गया है चक्र, कहाँ मेमोरी पढ़ने के लिए आवश्यक चक्रों की संख्या है, मिस रेट है, और चक्रों में हिट समय है। यदि एक टीएलबी हिट में 1 घड़ी चक्र लगता है, एक चूक 30 घड़ी चक्र लेती है, एक मेमोरी पढ़ने में 30 घड़ी चक्र लगते हैं, और चूक दर 1% है, प्रभावी स्मृति चक्र दर औसत है (31.29 घड़ी चक्र प्रति मेमोरी एक्सेस)।[18]
पता-स्थान स्विच
एड्रेस-स्पेस स्विच पर, जैसा तब होता है जब संदर्भ प्रक्रियाओं के बीच स्विच करता है (लेकिन थ्रेड्स के बीच नहीं), कुछ टीएलबी प्रविष्टियां अमान्य हो सकती हैं, क्योंकि वर्चुअल-टू-फिजिकल मैपिंग अलग है। इससे निपटने की सबसे सरल रणनीति टीएलबी को पूरी तरह से फ्लश करना है। इसका मतलब है कि एक स्विच के बाद, टीएलबी खाली है, और कोई भी मेमोरी संदर्भ मिस हो जाएगा, इसलिए कुछ समय पहले चीजें पूरी गति से वापस चल रही होंगी। नए सीपीयू अधिक प्रभावी रणनीतियों का उपयोग करते हैं जो यह चिन्हित करते हैं कि कौन सी प्रक्रिया एक प्रविष्टि के लिए है। इसका मतलब यह है कि यदि दूसरी प्रक्रिया केवल थोड़े समय के लिए चलती है और पहली प्रक्रिया में वापस चली जाती है, तो टीएलबी में अभी भी वैध प्रविष्टियाँ हो सकती हैं, जिससे उन्हें पुनः लोड करने में समय की बचत होती है।[19] अन्य रणनीतियाँ एक संदर्भ स्विच पर टीएलबी को फ़्लश करने से बचती हैं: (ए) एक सिंगल एड्रेस स्पेस ऑपरेटिंग सिस्टम सभी प्रक्रियाओं के लिए एक ही वर्चुअल-टू-फिजिकल मैपिंग का उपयोग करता है। (बी) कुछ सीपीयू में एक प्रक्रिया आईडी रजिस्टर होता है, और हार्डवेयर टीएलबी प्रविष्टियों का उपयोग केवल तभी करता है जब वे वर्तमान प्रक्रिया आईडी से मेल खाते हों।
उदाहरण के लिए, अल्फा 21264 में, प्रत्येक टीएलबी प्रविष्टि को पता स्थान संख्या (एएसएन) के साथ टैग किया गया है, और वर्तमान कार्य से मेल खाने वाले एएसएन के साथ केवल टीएलबी प्रविष्टियां मान्य मानी जाती हैं। इंटेल पेंटियम प्रो में एक और उदाहरण, पेज ग्लोबल इनेबल (पीजीई) फ्लैग रजिस्टर कंट्रोल रजिस्टर #CR4 में और पेज-डायरेक्टरी या पेज-टेबल एंट्री के ग्लोबल (G) फ्लैग का उपयोग बार-बार उपयोग किए जाने वाले पेजों को होने से रोकने के लिए किया जा सकता है। कार्य स्विच या रजिस्टर CR3 के भार पर टीएलबीएस में स्वचालित रूप से अमान्य हो गया। 2010 के वेस्टमेरे (माइक्रोआर्किटेक्चर) इंटेल 64 प्रोसेसर भी 12-बिट प्रक्रिया-संदर्भ पहचानकर्ता (पीसीआईडी) का समर्थन करते हैं, जो कई रैखिक-पता रिक्त स्थान के लिए टीएलबी प्रविष्टियों को बनाए रखने की अनुमति देते हैं, जो वर्तमान पीसीआईडी से मेल खाते हैं जो पता अनुवाद के लिए उपयोग किए जा रहे हैं।[20][21] जबकि टीएलबी का चयनात्मक फ्लशिंग सॉफ्टवेयर-प्रबंधित टीएलबी में एक विकल्प है, कुछ हार्डवेयर टीएलबी में एकमात्र विकल्प (उदाहरण के लिए, इंटेल 80386 में टीएलबी) एड्रेस-स्पेस स्विच पर टीएलबी का पूर्ण फ्लशिंग है। अन्य हार्डवेयर टीएलबीएस (उदाहरण के लिए, Intel 80486 और बाद में x86 प्रोसेसर में टीएलबी, और एआरएम वास्तुकला प्रोसेसर में टीएलबी) वर्चुअल एड्रेस द्वारा अनुक्रमित टीएलबी से अलग-अलग प्रविष्टियों को फ़्लश करने की अनुमति देते हैं।
टीएलबी की फ्लशिंग प्रक्रियाओं के बीच मेमोरी आइसोलेशन के लिए एक महत्वपूर्ण सुरक्षा तंत्र हो सकता है ताकि यह सुनिश्चित किया जा सके कि कोई प्रक्रिया किसी अन्य प्रक्रिया के मेमोरी पेजों में संग्रहीत डेटा तक नहीं पहुंच सकती है। विशेषाधिकार प्राप्त ऑपरेटिंग सिस्टम कर्नेल प्रक्रिया और उपयोगकर्ता प्रक्रियाओं के बीच स्विच के दौरान मेमोरी आइसोलेशन विशेष रूप से महत्वपूर्ण है - जैसा कि मेल्टडाउन (सुरक्षा भेद्यता) सुरक्षा भेद्यता द्वारा हाइलाइट किया गया था। शमन रणनीतियाँ जैसे कि कर्नेल पेज-टेबल अलगाव (केपीटीआई) प्रदर्शन-प्रभावित टीएलबी फ्लश पर बहुत अधिक निर्भर करती हैं और हार्डवेयर-सक्षम चयनात्मक टीएलबी प्रविष्टि प्रबंधन जैसे पीसीआईडी से बहुत लाभान्वित होती हैं।[22]
वर्चुअलाइजेशन और x86 टीएलबी
सर्वर समेकन के लिए वर्चुअलाइजेशन के आगमन के साथ, x86 आर्किटेक्चर को वर्चुअलाइज करना आसान बनाने और x86 हार्डवेयर पर वर्चुअल मशीनों के बेहतर प्रदर्शन को सुनिश्चित करने के लिए बहुत प्रयास किए गए हैं।[23][24]
आम तौर पर, x86 टीएलबी में प्रविष्टियां किसी विशेष पता स्थान से संबद्ध नहीं होती हैं; वे अप्रत्यक्ष रूप से वर्तमान पता स्थान को संदर्भित करते हैं। इसलिए, जब भी पता स्थान में कोई परिवर्तन होता है, जैसे संदर्भ स्विच, तो संपूर्ण टीएलबी को फ़्लश करना पड़ता है। एक टैग को बनाए रखना जो प्रत्येक टीएलबी प्रविष्टि को सॉफ़्टवेयर में पता स्थान के साथ जोड़ता है और टीएलबी लुकअप और टीएलबी फ्लश के दौरान इस टैग की तुलना करना बहुत महंगा है, खासकर जब से x86 टीएलबी को बहुत कम विलंबता और पूरी तरह से हार्डवेयर में संचालित करने के लिए डिज़ाइन किया गया है। 2008 में, दोनों इंटेल (नेहलेम (माइक्रोआर्किटेक्चर))[25] और एएमडी ( सुरक्षित वर्चुअल मशीन )[26] टीएलबी प्रविष्टि और समर्पित हार्डवेयर के हिस्से के रूप में टैग पेश किए हैं जो लुकअप के दौरान टैग की जांच करता है। भले ही इनका पूरी तरह से दोहन नहीं किया गया हो, इसकी परिकल्पना की गई है कि भविष्य में, ये टैग उस पता स्थान की पहचान करेंगे जिससे प्रत्येक टीएलबी प्रविष्टि संबंधित है। इस प्रकार एक संदर्भ स्विच का परिणाम टीएलबी के फ्लशिंग में नहीं होगा - बल्कि वर्तमान पता स्थान के टैग को नए कार्य के पता स्थान के टैग में बदलना होगा।
यह भी देखें
- स्मृति प्रबंधन
- पेजिंग
- पेज साइज एक्सटेंशन (पीएसई)
- वर्चुअल एड्रेस स्पेस
संदर्भ
- ↑ Arpaci-Dusseau, Remzi H.; Arpaci-Dusseau, Andrea C. (2014), Operating Systems: Three Easy Pieces [Chapter: Faster Translations (TLBs)] (PDF), Arpaci-Dusseau Books
- ↑ 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.
- ↑ 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) - ↑ Chen, J. Bradley; Borg, Anita; Jouppi, Norman P. (1992). "टीएलबी प्रदर्शन का अनुकरण आधारित अध्ययन". SIGARCH Computer Architecture News. 20 (2): 114–123. doi:10.1145/146628.139708.
- ↑ Stallings, William (2014). Operating Systems: Internals and Design Principles. United States of America: Pearson. ISBN 978-0133805918.
- ↑ Solihin, Yan (2016). पैरेलल मल्टीकोर आर्किटेक्चर के फंडामेंटल. Boca Raton, FL: Taylor & Francis Group. ISBN 978-0-9841630-0-7.
- ↑ "Inside Nehalem: Intel's Future Processor and System". Real World Technologies.
- ↑ "Intel Core i7 (Nehalem): Architecture By AMD?". Tom's Hardware. 14 October 2008. Retrieved 24 November 2010.
- ↑ "Inside Nehalem: Intel's Future Processor and System". Real World Technologies. Retrieved 24 November 2010.
- ↑ 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) - ↑ 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.
- ↑ Welsh, Matt. "MIPS r2000/r3000 Architecture". Archived from the original on 14 October 2008. Retrieved 16 November 2008.
यदि कोई मेल खाने वाली टीएलबी प्रविष्टि नहीं मिलती है, तो एक टीएलबी मिस अपवाद होता है
- ↑ SPARC International, Inc. The SPARC Architecture Manual, Version 9. PTR Prentice Hall.
- ↑ Sun Microsystems. UltraSPARC Architecture 2005. Draft D0.9.2, 19 June 2008. Sun Microsystems.
- ↑ Virtual Memory in the IA-64 Kernel > Translation Lookaside Buffer.
- ↑ Compaq Computer Corporation. अल्फा आर्किटेक्चर हैंडबुक (PDF). Version 4. Compaq Computer Corporation. Archived from the original (PDF) on 9 October 2014. Retrieved 1 December 2010.
- ↑ 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) - ↑ "पेजिंग में ट्रांसलेशन लुकसाइड बफर (टीएलबी)।". GeeksforGeeks (in English). 2019-02-26. Retrieved 2021-02-10.
- ↑ Ulrich Drepper (9 October 2014). "Memory part 3: Virtual Memory". LWN.net.
- ↑ David Kanter (17 March 2010). "वेस्टमेयर आता है". Real World Tech. Retrieved 6 January 2018.
- ↑ 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.
- ↑ Gil Tene (8 January 2018). "PCID is now a critical performance/security feature on x86". Retrieved 23 March 2018.
- ↑ 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.
- ↑ Advanced Micro Devices. AMD Secure Virtual Machine Architecture Reference Manual. Advanced Micro Devices, 2008.
- ↑ G. Neiger; A. Santoni; F. Leung; D. Rodgers; R. Uhlig. "Intel Virtualization Technology: Hardware Support for Efficient Processor Virtualization". Intel Technology Journal. 10 (3).
- ↑ Advanced Micro Devices. AMD Secure Virtual Machine Architecture Reference Manual. Advanced Micro Devices, 2008.