यदि हार्डवेयर TLB प्रबंधन (Intel x86-64 कहते हैं) के साथ एक माइक्रोप्रोसेसर पर अगर TLB मिस होता है और प्रोसेसर पेज टेबल पर चल रहा है, तो ये कैश-पदानुक्रम (L1, L2, आदि) से गुजरने वाली मेमोरी एक्सेस हैं। )?
यदि हार्डवेयर TLB प्रबंधन (Intel x86-64 कहते हैं) के साथ एक माइक्रोप्रोसेसर पर अगर TLB मिस होता है और प्रोसेसर पेज टेबल पर चल रहा है, तो ये कैश-पदानुक्रम (L1, L2, आदि) से गुजरने वाली मेमोरी एक्सेस हैं। )?
जवाबों:
हां, जहां तक मैं बता सकता हूं कि इंटेल x86-64 प्रोसेसर पर, जब एक टीएलबी मिस होता है और प्रोसेसर पेज टेबल पर चल रहा होता है, तो वे ऑफ-चिप मेमोरी एक्सेस कैशे पदानुक्रम के माध्यम से जाते हैं।
मैं अभी भी कुछ विवरणों पर थोड़ा फजी हूं, और मुझे आशा है कि कुछ अन्य उत्तर उन्हें भर देंगे - क्या कोई इंटेल या एएमडी मैनुअल नहीं है जो पृष्ठ के बारे में विस्तार से वर्णन करता है? मेरी समझ यह है कि:
थॉमस डब्ल्यू बर्र, एलन एल। कॉक्स, स्कॉट रिक्सनर के पेज 2 पर आरेख। "ट्रांसलेशन कैशिंग: स्किप, डोंट वॉक (पेज टेबल)" जो "एमएमयू कैश द्वारा संग्रहीत प्रविष्टियां" और "एल 2 डेटा कैश द्वारा संग्रहीत प्रविष्टियों" के बीच एक रेखा खींचता है। (यह नए सीपीयू डिजाइन करने वाले लोगों के लिए एक उपयोगी पेपर हो सकता है , जो "इलेक्ट्रॉनिक्स डिजाइन" के लिए पूरी तरह से विषय है)।
स्टीफन एरानियन और डेविड मोजबर्गर। "IA-64 लिनक्स कर्नेल में वर्चुअल मेमोरी" और उलरिच ड्रेपर। "प्रत्येक प्रोग्रामर को मेमोरी के बारे में क्या पता होना चाहिए" (यह ऑपरेटिंग सिस्टम लिखने वाले लोगों के लिए एक उपयोगी पेपर हो सकता है जो IA-64 पेज टेबल के साथ सौदा करते हैं, जो ED के लिए थोड़ा ऑफ-टॉपिक है - शायद "ऑपरेटिंग- के साथ स्टैक ओवरफ्लो " सिस्टम "टैग या " ओसदेव "टैग या OSDev.org विकी उस विषय के लिए एक बेहतर स्थान होगा)।
इंटेल के पृष्ठ 533 पर तालिका ए -10। "Intel® 64 और IA-32 आर्किटेक्चर सॉफ्टवेयर डेवलपर मैनुअल" "PAGE_WALKS.CYCLES ... यह संकेत दे सकता है कि अधिकांश पेज-वॉक कैश से संतुष्ट हैं या L2 कैश मिस का कारण हैं।"
invlpg
कोई अन्य टीएलबी कैशिंग को दिए गए पुण्य ऐड के लिए अमान्य करने के अलावा है। यदि एचडब्ल्यू पेजवॉक उस आभासी पते के लिए एक प्रविष्टि नहीं ढूंढता है, या प्रवेश की अनुमतियों तक पहुंच की अनुमति नहीं देता है, तो आपको #PF
अपवाद मिलता है। ओएस हैंडल करता है कि पेज टेबल को अपडेट करने से (संभवतः डिस्क से डेटा में पेजिंग के बाद, या कॉपी-ऑन-राइट करने पर), और फिर फिर से शुरू होने पर फाल्टिंग लोड / स्टोर फिर से चलेगा और एचडब्ल्यू पेजवॉक सफल होगा।
मैं इस बात से सहमत हूं कि यह एक कंप्यूटर आर्किटेक्चर स्टैकएक्सचेंज में है, न कि एक इलेक्ट्रॉनिक्स स्टैकएक्सचेंज, लेकिन चूंकि यह यहां है:
@davidcary सही है।
कुछ इतिहास:
इंटेल x86 पेज टेबल वॉक को पी 5, उर्फ पेंटियम तक सभी तरह से कैश नहीं किया गया था। अधिक सटीक रूप से, पेज टेबल वॉक मेमोरी एक्सेस कैश नहीं थे, कैश नहीं किया गया। चूंकि उस समय तक की अधिकांश मशीनें राइट-थ्रू थीं, इसलिए उन्हें कैश के अनुरूप मूल्य प्राप्त हुए। लेकिन वे कैश स्नूप नहीं करते थे।
P6, उर्फ पेंटियम प्रो, और AFAIK सभी बाद के प्रोसेसर पेज टेबल वॉक को कैश तक पहुंचने और कैश से खींचे गए मूल्य का उपयोग करने की अनुमति दी गई थी। इस प्रकार, उन्होंने राइट-बैक कैश के साथ काम किया। (आप निश्चित रूप से, एमटीआरआरएस द्वारा परिभाषित, अनुपलब्ध स्मृति में पृष्ठ तालिकाओं को रख सकते हैं। लेकिन यह एक बड़ा प्रदर्शन नुकसान है, हालांकि यह ओएसस को डीबग करने के लिए उपयोगी हो सकता है।)
वैसे, यह "पेज टेबल वॉक मेमोरी एक्सेस डेटा एक्सेस को कैश कर सकता है" से अलग है "पेज टेबल एंट्रीज को टीएलबी ट्रैंसलेशन लुकसाइड बफर में संग्रहीत (कैश्ड) किया जा सकता है।" कुछ मशीनों पर TLB को "ट्रांसलेशन कैश" कहा जाता है।
एक अन्य संबंधित मुद्दा यह है कि पृष्ठ तालिकाओं के आंतरिक नोड्स को अभी भी अधिक TLB- जैसे डेटास्ट्रेक्टर्स, जैसे PDE-cache में कैश किया जा सकता है।
एक प्रमुख अंतर: डेटा कैश सुसंगत है, और स्नूप किया गया है। लेकिन टीएलबी और पीडीई कैश स्नूप नहीं हैं, यानी सुसंगत नहीं हैं। लब्बोलुआब यह है कि, चूंकि पृष्ठ तालिकाओं को गैर-समरूप TLB और PDE कैश आदि में कैश्ड किया जा सकता है, इसलिए सॉफ़्टवेयर को स्पष्ट रूप से व्यक्तिगत प्रविष्टियों या बल्क समूहों (जैसे, संपूर्ण TLB), जब पृष्ठ तालिका प्रविष्टियाँ जो इतनी हो सकती हैं, को स्पष्ट रूप से फ्लश करना चाहिए। कैश्ड बदल दिए जाते हैं। कम से कम जब "खतरनाक" तरीके से बदला जाता है, तो RW-> R-> I, या पते बदलने से।
मुझे लगता है कि यह कहना उचित है कि हर बार एक गैर-सुसंगत टीएलबी जैसी कैशिंग जोड़ी गई है, कुछ ओएस टूट गए हैं, क्योंकि यह अंतर्निहित धारणाएं थीं कि यह नहीं किया जा रहा था।