अनुवाद लुकसाइड बफ़र

From alpha
Revision as of 10:20, 9 April 2024 by Indicwiki (talk | contribs) (Created page with "{{Short description|Computer component}} {{Use dmy dates|date=September 2019}} ट्रांसलेशन लुकसाइड बफ़र (टीएलबी) एक...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Jump to navigation Jump to search

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

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

अवलोकन

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

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

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

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

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

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

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

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

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

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

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

कैश के समान, टीएलबी के कई स्तर हो सकते हैं। सीपीयू कई टीएलबी के साथ बनाए जा सकते हैं (और आजकल आमतौर पर बनाए जाते हैं), उदाहरण के लिए एक छोटा एल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] कुछ टीएलबी में छोटे पृष्ठों और बड़े पृष्ठों के लिए अलग-अलग अनुभाग हो सकते हैं। उदाहरण के लिए, इंटेल स्काईलेक (माइक्रोआर्किटेक्चर) माइक्रोआर्किटेक्चर 1 GiB पेजों के लिए TLB प्रविष्टियों को 4 KiB/2 MiB पेजों से अलग करता है।[10]


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

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

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

एमआईपीएस वास्तुकला एक सॉफ्टवेयर-प्रबंधित टीएलबी निर्दिष्ट करता है।[12] SPARC V9 आर्किटेक्चर SPARC V9 के कार्यान्वयन को बिना MMU, सॉफ़्टवेयर-प्रबंधित TLB के साथ MMU, या हार्डवेयर-प्रबंधित TLB के साथ MMU की अनुमति देता है,[13] और UltraSPARC आर्किटेक्चर 2005 एक सॉफ़्टवेयर-प्रबंधित TLB निर्दिष्ट करता है।[14] इटेनियम आर्किटेक्चर सॉफ्टवेयर या हार्डवेयर-प्रबंधित टीएलबी का उपयोग करने का विकल्प प्रदान करता है।[15] डीईसी अल्फा आर्किटेक्चर में फर्मवेयर-प्रबंधित टीएलबी है, जिसमें टीएलबी मिस हैंडलिंग कोड ऑपरेटिंग सिस्टम के बजाय PALcode में है। चूँकि एक प्रोसेसर के लिए PALcode प्रोसेसर-विशिष्ट और ऑपरेटिंग-सिस्टम-विशिष्ट हो सकता है, यह PALcode के विभिन्न संस्करणों को TLB प्रारूप और TLB को नियंत्रित करने के निर्देशों की आवश्यकता के बिना, विभिन्न ऑपरेटिंग सिस्टम के लिए अलग-अलग पेज-टेबल प्रारूपों को लागू करने की अनुमति देता है। , वास्तुकला द्वारा निर्दिष्ट किया जाना है।[16]


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

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

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

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


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

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

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

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


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

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


यह भी देखें

संदर्भ

  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 1 June 2016.
  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.
  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. 26 February 2019. Retrieved 10 February 2021.
  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.
  27. "पीसीआईडी ​​के साथ लंबे समय तक चलने वाली टीएलबी प्रविष्टियाँ". Kernelnewbies. 30 December 2017. Retrieved 31 July 2023. {{cite web}}: zero width space character in |title= at position 10 (help)


बाहरी संबंध