मेमोरी प्रबंधन इकाई
मेमोरी मैनेजमेंट इकाई (एमएमयू), जिसे कभी-कभी पेजेड मेमोरी मैनेजमेंट इकाई (पीएमएमयू) कहा जाता है।[1] संगणक धातु पदार्थ इकाई है जिसमें सभी कंप्यूटर मेमोरी संदर्भ स्वयं से निकलते हैं ।मुख्य रूप से आभासी पते का भौतिक पतों में अनुवाद करते हैं।
एमएमयू प्रभावी रूप से अप्रत्यक्ष मेमोरी प्रबंधन करता है,। एक ही समय में मेमोरी सुरक्षा सीपीयू कैश कंट्रोल, कंप्यूटर बस आर्बिटर(इलेक्ट्रॉनिक्स) और, सरल कंप्यूटर आर्किटेक्चर (विशेष रूप से 8 बिट प्रणाली), बैंक स्विचिंग में संभालता है।
अवलोकन
आधुनिक एमएमयू सामान्यतः वर्चुअल पता स्पेस (प्रोसेसर द्वारा उपयोग किए जाने वाले पतों की श्रेणी) को पेज (कंप्यूटर साइंस) में विभाजित करते हैं,। प्रत्येक का आकार 2 होता है, सामान्यतः कुछ किलोबाइट , किंतु वे बहुत बड़े हो सकते हैं। पते के निचले भाग (पृष्ठ के अन्दर ऑफ़समुच्चय) को अपरिवर्तित छोड़ दिया जाता है। ऊपरी पता बिट्स वर्चुअल पेज नंबर हैं।[3]
पृष्ठ तालिका प्रविष्टियाँ
अधिकांश एमएमयू पेज टेबल नामक आइटम की इन-मेमोरी टेबल का उपयोग करते हैं । जिसमें प्रति पेज पृष्ठ तालिका प्रविष्टि (पीटीई) होती है।, वर्चुअल पेज नंबरों को मुख्य मेमोरी में भौतिक पेज नंबरों पर मैप करने के लिएहोती है । पीटीई के सहयोगी कैश को अनुवाद लुकसाइड बफर (टीएलबी) कहा जाता है और हर बार वर्चुअल एड्रेस मैप किए जाने पर मुख्य मेमोरी तक पहुंचने की आवश्यकता से बचने के लिए इसका उपयोग किया जाता है। अन्य एमएमयू में मेमोरी की निजी सरणी हो सकती है [4] या रजिस्टर जो पेज टेबल प्रविष्टियों का समुच्चय रखते हैं। भौतिक पृष्ठ संख्या को पूर्ण भौतिक पता देने के लिए पृष्ठ ऑफ़समुच्चय के साथ जोड़ दिया जाता है। [3]
पीटीई में इस बारे में जानकारी भी सम्मिलित हो सकती है कि क्या पृष्ठ को लिखा गया है (गंदा बिट), जब इसे अंतिम बार उपयोग किया गया था (एक्सेस बिट, कम से कम वर्तमान में उपयोग किए गए (एलआरयू) पृष्ठ प्रतिस्थापन एल्गोरिदम के लिए), किस तरह की प्रक्रियाएं ( उपयोगकर्ता मोड या पर्यवेक्षक मोड ) इसे पढ़ और लिख सकता है, और क्या यह कैश (कंप्यूटिंग) होना चाहिए।
कभी-कभी, पीटीई वर्चुअल पेज तक पहुंच को प्रतिबंधित करता है,। संभवतः इसलिए कि उस वर्चुअल पेज पर कोई भौतिक यादृच्छिक अभिगम मेमोरी (रैम) आवंटित नहीं की गई है। इस स्थिति में, एमएमयू सीपीयू को पृष्ठ दोष का संकेत देता है। ऑपरेटिंग प्रणाली (ओएस) तब स्थिति को संभालता है,। संभवतः रैम के अतिरिक्त फ्रेम को खोजने की कोशिश करके और अनुरोधित आभासी पते पर इसे मैप करने के लिए नया पीटीई स्थापित करता है। यदि कोई रैम मुफ़्त नहीं है, तो कुछ प्रतिस्थापन कलन विधि का उपयोग करके वर्तमान पृष्ठ (पीड़ित के रूप में जाना जाता है) को चुनना और इसे डिस्क पर सहेजना आवश्यक हो सकता है ।( प्रक्रिया जिसे पेजिंग कहा जाता है)। कुछ एमएमयू के साथ, पीटीई की कमी भी हो सकती है । ऐसे में ओएस को नए मैपिंग के लिए एक को मुक्त करना होगा।[3]
एमएमयू क्रमशः अवैध या गैर-वर्तमान मेमोरी एक्सेस पर अवैध एक्सेस त्रुटि की स्थिति या अमान्य पृष्ठ दोष उत्पन्न कर सकता है, जिससे ऑपरेटिंग प्रणाली द्वारा नियंत्रित किए जाने पर विखंडन दोष या बस त्रुटि की स्थिति हो सकती है।
लाभ
कुछ स्थितियों में, पृष्ठ दोष सॉफ्टवेयर बग का संकेत दे सकता है । जिसे एमएमयू के प्रमुख लाभों में से एक के रूप में मेमोरी सुरक्षा का उपयोग करके रोका जा सकता है । ऑपरेटिंग प्रणाली इसका उपयोग किसी विशेष प्रोग्राम की मेमोरी तक पहुंच को अस्वीकार करके गलत प्रोग्रामों से बचाने के लिए कर सकता है। सामान्यतः, ऑपरेटिंग प्रणाली प्रत्येक प्रोग्राम को अपना वर्चुअल एड्रेस स्पेस प्रदान करता है।[3]
एमएमयू मेमोरी के विखंडन (कंप्यूटर) की समस्या को भी कम करता है। मेमोरी के ब्लॉक आवंटित और मुक्त होने के बाद, मुक्त मेमोरी खंडित (असंतत) हो सकती है । जिससे मुक्त मेमोरी का सबसे बड़ा सन्निहित ब्लॉक कुल राशि से बहुत छोटा हो। वर्चुअल मेमोरी के साथ, वर्चुअल एड्रेस की सन्निहित श्रेणी को भौतिक मेमोरी के कई गैर-सन्निहित ब्लॉकों में मैप किया जा सकता है । यह गैर-सन्निहित आवंटन पेजिंग के लाभों में से एक है।[3]
कुछ प्रारंभिक माइक्रोप्रोसेसर रचनाओ में, मेमोरी प्रबंधन एक अलग एकीकृत परिपथ द्वारा किया गया था । जैसे कि वीएलएसआई प्रौद्योगिकी VI475 (1986), मोटोरोला 68851 (1984) जिसका उपयोग मैकिन्टोश II में मोटोरोला 68020 सीपीयू के साथ किया गया था,। या Z8010 [5] और Z8015 (1985) [6][7] प्रोसेसर के ज़िलोग Z8000 वर्ग के साथ प्रयोग किया जाता है। बाद में माइक्रोप्रोसेसरों (जैसे मोटोरोला 68030 और ज़िलोग Z280 ) ने एमएमयू को सीपीयू के साथ एक ही एकीकृत परिपथ पर रखा है जैसा कि इंटेल 802 86 और बाद में x86 माइक्रोप्रोसेसरों ने किया था।
चूंकि यह आलेख आधुनिक एमएमयू पर केंद्रित है, सामान्यतः पृष्ठों पर आधारित, प्रारंभिक प्रणालियों ने आधार-सीमा को संबोधित करने के लिए समान अवधारणा का उपयोग किया था । जो आगे विभाजन (मेमोरी) में विकसित हुआ। वे कभी-कभी आधुनिक वास्तुकला पर भी उपस्थित होते हैं। x86 आर्किटेक्चर ने 80286 में पेजिंग के अतिरिक्त विभाजन प्रदान किया, और 80386 और बाद के प्रोसेसर में पेजिंग और सेगमेंटेशन दोनों प्रदान करता है (चूंकि विभाजन का उपयोग 64-बिट ऑपरेशन में उपलब्ध नहीं है)।
उदाहरण
अधिकांश आधुनिक प्रणालियाँ मेमोरी को उन पृष्ठों में विभाजित करती हैं । जो 4-64 KB आकार में, अधिकांशतः तथाकथित विशाल पृष्ठों का उपयोग करने की क्षमता के साथ 2 MB या 1 GB आकार में (अधिकांशतः दोनों प्रकार संभव होते हैं)। पृष्ठ अनुवाद अनुवाद लुकसाइड बफर (टीएलबी) में कैश किए जाते हैं। कुछ प्रणालियाँ, मुख्य रूप से पुराने RIएससी रचना, ओएस में जाल (कंप्यूटिंग) जब टीएलबी में कोई पृष्ठ अनुवाद नहीं मिलता है। अधिकांश प्रणाली हार्डवेयर-आधारित ट्री वॉकर का उपयोग करते हैं। अधिकांश प्रणाली एमएमयू को अक्षम करने की अनुमति देते हैं, किंतु कुछ ओएस कोड में फंसने पर एमएमयू को अक्षम कर देते हैं।
वैक्स
वैक्स पृष्ठ 512 बाइट्स हैं, जो बहुत छोटा है । ओएस कई पेजों के साथ ऐसा व्यवहार कर सकता है जैसे कि वे एक ही बड़े पेज हों। उदाहरण के लिए, वैक्स पर लिनक्स आठ पृष्ठों को साथ समूहित करता है। इस प्रकार, प्रणाली को 4 KB पृष्ठ के रूप में देखा जाता है। वैक्स मेमोरी को चार निश्चित-उद्देश्य वाले क्षेत्रों में विभाजित करता है,। प्रत्येक 1 GB आकार में हैं ।
- पी0 स्पेस
- सामान्य प्रयोजन प्रति-प्रक्रिया मेमोरी जैसे ढेर के लिए प्रयुक्त।
- पी1 स्पेस
- (या नियंत्रण स्पेस) जो प्रति-प्रक्रिया भी है और सामान्यतः पर्यवेक्षक, कार्यकारी, कर्नेल (ऑपरेटिंग प्रणाली) , उपयोगकर्ता स्टैक (सार डेटा प्रकार) और ऑपरेटिंग प्रणाली द्वारा प्रबंधित अन्य प्रति-प्रक्रिया नियंत्रण संरचनाओं के लिए उपयोग किया जाता है।
- एस0 स्पेस
- जो सभी प्रक्रियाओं के लिए वैश्विक(या प्रणाली स्पेस) है और ऑपरेटिंग प्रणाली कोड और डेटा को स्टोर करता है, पेजटेबल सहित, पेजेड या नहीं होती है।
- एस1 स्पेस
- जो अप्रयुक्त है और डिजिटल उपकरण निगम के लिए आरक्षित है।
पेज टेबल बड़े रैखिक सरणियाँ हैं। सामान्यतः, यह बहुत बेकार होगा जब संभावित सीमा के दोनों सिरों पर पते का उपयोग किया जाता है,। किंतु अनुप्रयोगों के लिए पृष्ठ तालिका स्वयं कर्नेल की पेजेड मेमोरी में संग्रहीत होती है। इस प्रकार, प्रभावी रूप से दो-स्तरीय ट्री (डेटा संरचना) है, जो अनुप्रयोगों को अप्रयुक्त पृष्ठ तालिका प्रविष्टियों पर बहुत अधिक स्पेस बर्बाद किए बिना विरल मेमोरी लेआउट की अनुमति देता है। एक्सेस किए गए बिट की कमी के लिए वैक्स एमएमयू उल्लेखनीय है। पेजिंग को प्रयुक्त करने वाले ओएस को एक्सेस किए गए बिट का अनुकरण करने का कोई विधि खोजना होगा । यदि वे कुशलता से संचालित करना चाहते हैं। सामान्यतः, ओएस समय-समय पर पृष्ठों को अनमैप करेगा जिससे ओएस को एक्सेस किया गया बिट समुच्चय करने के लिए पेज-न-वर्तमान दोषों का उपयोग किया जा सके।
एआरएम
एआरएम वास्तुकला -आधारित एप्लिकेशन प्रोसेसर एआरएम के वर्चुअल मेमोरी प्रणाली आर्किटेक्चर द्वारा परिभाषित एमएमयू को प्रयुक्त करते हैं। वर्तमान आर्किटेक्चर वर्णन करने के लिए पृष्ठ तालिका प्रविष्टि को परिभाषित करता है । 4 KB तथा 64 KB पन्ने, 1 MB अनुभाग और 16 MB सुपर-सेक्शन; विरासत संस्करणों को भी परिभाषित किया गया है और 1 KB छोटा पृष्ठ है। यदि उपयोग कर रहे हैं तो एआरएम दो-स्तरीय पृष्ठ तालिका का उपयोग करता है । 4 KB तथा 64 KB पृष्ठ, या के लिए केवल एक-स्तरीय पृष्ठ तालिका 1 MB अनुभाग और 16 MB खंड होते है।
टीएलबी अपडेट पेज टेबल वॉकिंग हार्डवेयर द्वारा स्वचालित रूप से किए जाते हैं। पीटीई में विशेषाधिकार, कैशेबिलिटी जानकारी, एनएक्स बिट और गैर-सुरक्षित बिट के आधार पर पढ़ने/लिखने की अनुमति सम्मिलित है।[8]
आईबीएम प्रणाली/360 मॉडल 67, आईबीएम प्रणाली/370, और उत्तराधिकारी
आईबीएम प्रणाली/360 मॉडल 67, जिसे अगस्त 1965 में प्रस्तुत किया गया था, में एमएमयू सम्मिलित है जिसे डायनेमिक एड्रेस ट्रांसलेशन (डीएटी) बॉक्स कहा जाता है।[9][10] इसमें पृष्ठ तालिका के बाहर एक्सेस किए गए और गंदे बिट्स को संग्रहीत करने की असामान्य विशेषता है (सभी एस/360 प्रोसेसर के लिए चार बिट मेमोरी प्रोटेक्शन प्रोटेक्शन के साथ)। वे वर्चुअल मेमोरी के अतिरिक्त भौतिक मेमोरी को संदर्भित करते हैं, और विशेष-उद्देश्य निर्देशों द्वारा उपयोग किए जाते हैं।[10] यह ओएस के लिए ओवरहेड को कम करता है,। जिसे अन्यथा पेज टेबल से एक्सेस और गंदे बिट्स को अधिक भौतिक रूप से उन्मुख डेटा संरचना में प्रचारित करने की आवश्यकता होगी। यह ऑपरेटिंग प्रणाली-स्तरीय वर्चुअलाइजेशन को आसान बनाता है, जिसे बाद में पैरावर्चुअलाइजेशन कहा जाता है।
अगस्त, 1972 से प्रारंभ होकर, आईबीएम प्रणाली/370 में समान एमएमयू है,। चूंकि यह प्रारंभ में प्रणाली/360 मॉडल 67 के 32-बिट वर्चुअल एड्रेस स्पेस के अतिरिक्त केवल 24-बिट वर्चुअल एड्रेस स्पेस का समर्थन करता है। यह एक्सेस किए गए को भी स्टोर करता है। और पेज टेबल के बाहर गंदे बिट्स होते है। 1983 की प्रारंभ में, प्रणाली/370-XA आर्किटेक्चर ने वर्चुअल एड्रेस स्पेस को 31 बिट्स तक विस्तारित किया। और 2000 में, 64-बिट z/आर्किटेक्चर को प्रस्तुत किया गया था। जिसमें एड्रेस स्पेस को 64 बिट्स तक विस्तारित किया गया; वे पेज टेबल के बाहर एक्सेस और गंदे बिट्स को स्टोर करना जारी रखते हैं।
डीईसी अल्फा
डीईसी अल्फा प्रोसेसर मेमोरी 8 KB पृष्ठ को विभाजित करता है। टीएलबी चूक के बाद, निम्न-स्तरीय फर्मवेयर मशीन कोड (यहाँ पालकोड कहा जाता है) तीन-स्तरीय ट्री-स्ट्रक्चर्ड पेज टेबल पर चलता है। पते निम्नानुसार टूट गए हैं: 21 बिट्स अप्रयुक्त, पेड़ के रूट स्तर को इंडेक्स करने के लिए 10 बिट्स, पेड़ के मध्य स्तर को इंडेक्स करने के लिए 10 बिट्स, पेड़ के पत्ते के स्तर को इंडेक्स करने के लिए 10 बिट्स, और 13 बिट्स जो निकलते हैं संशोधन के बिना भौतिक पते पर। पूर्ण पढ़ने/लिखने/निष्पादित अनुमति बिट्स समर्थित हैं।
एमआईपीएस
एमआईपीएस वास्तुकला टीएलबी में एक से 64 प्रविष्टियों का समर्थन करता है। टीएलबी प्रविष्टियों की संख्या संश्लेषण से पहले सीपीयू विन्यास पर विन्यास योग्य है। टीएलबी प्रविष्टियां दोहरी हैं। प्रत्येक टीएलबी प्रविष्टि वर्चुअल पेज नंबर (वीपीएन 2) को दो पेज फ्रेम नंबरों (पीएफएन 0 या पीएफएन 1) में से किसी एक में मैप करती है,। जो वर्चुअल एड्रेस के कम से कम महत्वपूर्ण बिट पर निर्भर करती है । जो पेज मुखौटा (कंप्यूटिंग) का भाग नहीं है। यह बिट और पेज मास्क बिट्स VपीN2 में स्टोर नहीं होते हैं। प्रत्येक टीएलबी प्रविष्टि का अपना पृष्ठ आकार होता है, जिसका कोई भी मान हो सकता है 1 KB प्रति 256 MB चार के गुणकों में। टीएलबी प्रविष्टि में प्रत्येक पीएफएन में कैशिंग विशेषता, गंदा और वैध स्थिति बिट होता है। वीपीएन 2 में वैश्विक स्थिति बिट और ओएस असाइन की गई आईडी होती है जो वर्चुअल एड्रेस टीएलबी एंट्री मैच में भाग लेती है,। यदि वैश्विक स्थिति बिट शून्य पर समुच्चय है। पीएफएन पेज मास्क बिट्स के बिना भौतिक पता संग्रहीत करता है।
टीएलबी रीफिल अपवाद तब उत्पन्न होता है जब टीएलबी में मैप किए गए वर्चुअल पते से मेल खाने वाली कोई प्रविष्टियां नहीं होती हैं। एक मिलान होने पर टीएलबी अमान्य अपवाद उत्पन्न होता है । किंतु प्रविष्टि को अमान्य चिह्नित किया जाता है। टीएलबी संशोधित अपवाद तब उत्पन्न होता है । जब कोई स्टोर निर्देश मैप किए गए पते का संदर्भ देता है और मेल खाने वाली प्रविष्टि की गंदी स्थिति समुच्चय नहीं होती है। यदि टीएलबी अपवाद को संसाधित करते समय टीएलबी अपवाद होता है,। डबल गलती टीएलबी अपवाद, इसे अपने स्वयं के अपवाद हैंडलिंग के लिए भेजा जाता है।
MIपीएस32 और MIपीएस32r2 वर्चुअल एड्रेस स्पेस के 32 बिट्स और फिजिकल एड्रेस स्पेस के 36 बिट्स तक सपोर्ट करते हैं। MIपीएस64 वर्चुअल एड्रेस स्पेस के 64 बिट तक और फिजिकल एड्रेस स्पेस के 59 बिट तक सपोर्ट करता है।
सन 1
मूल सन 1 मोटोरोला 68000 माइक्रोप्रोसेसर के आसपास बनाया गया सिंगल बोर्ड कंप्यूटर है और 1982 में प्रस्तुत किया गया था। इसमें मूल सन 1 मेमोरी प्रबंधन इकाई सम्मिलित है । जो सीपीयू पर चलने वाली कई प्रक्रियाओं के लिए एड्रेस ट्रांसलेशन, मेमोरी प्रोटेक्शन, मेमोरी शेयरिंग और मेमोरी आवंटन प्रदान करती है। . सीपीयू की निजी ऑन-बोर्ड रैम, बाहरी बहुतों को मेमोरी, ऑन-बोर्ड इनपुट/आउटपुट|I/ओ और मल्टीबस I/ओ तक सभी पहुंच एमएमयू के माध्यम से चलती है,। जहां एड्रेस ट्रांसलेशन और सुरक्षा समान विधि से की जाती है। एमएमयू को सीपीयू बोर्ड पर हार्डवेयर में प्रयुक्त किया जाता है।
एमएमयू में संदर्भ रजिस्टर, मेमोरी विभाजन मैप और पेज मैप होता है। सीपीयू से वर्चुअल एड्रेस को सेगमेंट मैप द्वारा इंटरमीडिएट एड्रेस में ट्रांसलेट किया जाता है,। जो बदले में पेज मैप द्वारा फिजिकल एड्रेस में ट्रांसलेट किया जाता है। पृष्ठ का आकार है 2 KB और खंड का आकार है 32 KB जो प्रति सेगमेंट 16 पेज देता है। साथ 16 संदर्भों को मैप किया जा सकता है। किसी संदर्भ के लिए अधिकतम तार्किक पता स्पेस है 1024 pages या 2 MB. अधिकतम भौतिक पता जिसे एक साथ मैप किया जा सकता है । वह 2 MB. भी है ।
मल्टीटास्किंग ऑपरेटिंग प्रणाली में संदर्भ रजिस्टर महत्वपूर्ण है । क्योंकि यह सीपीयू को सभी अनुवाद स्थिति की जानकारी को पुनः लोड किए बिना प्रक्रियाओं के बीच स्विच करने की अनुमति देता है। 4-बिट संदर्भ रजिस्टर पर्यवेक्षक नियंत्रण के अनुसार खंड मानचित्र के 16 अनुभागों के बीच स्विच कर सकता है, जो 16 संदर्भों को समवर्ती रूप से मैप करने की अनुमति देता है। प्रत्येक संदर्भ का अपना वर्चुअल पता स्पेस होता है। विभिन्न संदर्भों के खंड या पृष्ठ मानचित्रों में समान मान लिखकर आभासी पता स्पेस और अंतर-संदर्भ संचार साझा करना प्रदान किया जा सकता है। अतिरिक्त संदर्भों को खंड मानचित्र को संदर्भ कैश के रूप में मानकर और कम से कम वर्तमान में उपयोग किए गए आधार पर पुराने संदर्भों को बदलकर नियंत्रित किया जा सकता है।
संदर्भ रजिस्टर उपयोगकर्ता और पर्यवेक्षक राज्यों के बीच कोई अंतर नहीं करता है। इंटरप्ट और ट्रैप संदर्भों को स्विच नहीं करते हैं, जिसके लिए सभी मान्य इंटरप्ट वैक्टर को सदैव संदर्भ के पृष्ठ 0 में मैप किया जाना चाहिए, साथ ही साथ वैध पर्यवेक्षक स्टैक भी मापा जाना चाहिए।[11]
पावरपीसी
पावरपीसी में जी1, जी2, जी3, और जी4 पृष्ठ सामान्य रूप 4 KB. से होते हैं । टीएलबी चूक के बाद, मानक पावरपीसी एमएमयू साथ दो लुकअप प्रारंभ करता है। लुकअप चार या आठ डेटा ब्लॉक एड्रेस ट्रांसलेशन (डीबीएटी) रजिस्टरों में से एक के साथ पते का मिलान करने का प्रयास करता है, या चार या आठ निर्देश ब्लॉक एड्रेस ट्रांसलेशन रजिस्टर (आईबीएटी), जैसा उपयुक्त हो। बैट रजिस्टर मेमोरी के रैखिक भाग को जितना बड़ा कर सकते हैं । 256 MB, मैप कर सकते हैं और सामान्यतः ओएस द्वारा ओएस कर्नेल के स्वयं के उपयोग के लिए एड्रेस स्पेस के बड़े भाग को मैप करने के लिए उपयोग किया जाता है। यदि बैट लुकअप सफल होता है, तो अन्य लुकअप रोक दिया जाता है और अनदेखा कर दिया जाता है।
अन्य लुकअप, इस वर्ग के सभी प्रोसेसर द्वारा सीधे समर्थित नहीं है,। तथाकथित उलटा पृष्ठ तालिका के माध्यम से है, जो टीएलबी के हैशेड ऑफ-चिप एक्सटेंशन के रूप में कार्य करता है। सबसे पहले, पते के शीर्ष चार बिट्स का उपयोग 16 मेमोरी सेगमेंटेशन रजिस्टरों में से एक का चयन करने के लिए किया जाता है। फिर खंड रजिस्टर से 24 बिट्स उन चार बिट्स को प्रतिस्थापित करते हैं,। जो 52-बिट पते का निर्माण करते हैं। खंड रजिस्टरों का उपयोग कई प्रक्रियाओं को एक ही हैश तालिका साझा करने की अनुमति देता है।
52-बिट पता हैश किया गया है,। फिर ऑफ-चिप तालिका में अनुक्रमणिका के रूप में उपयोग किया जाता है। वहां, मेल खाने वाले के लिए आठ-पृष्ठ तालिका प्रविष्टियों का समूह स्कैन किया जाता है। यदि अत्यधिक हैश टकराव के कारण कोई मेल नहीं खाता है,। तो प्रोसेसर थोड़ा अलग हैश फंकशन के साथ फिर से प्रयास करता है। यदि यह भी विफल हो जाता है, तो सीपीयू ओएस (एमएमयू अक्षम के साथ) में फंस जाता है जिससे समस्या का समाधान हो सके। नई प्रविष्टि के लिए स्पेस बनाने के लिए ओएस को हैश तालिका से प्रविष्टि को त्यागने की आवश्यकता है। ओएस अधिक सामान्य पेड़ जैसी पृष्ठ तालिका या प्रति-मानचित्रण डेटा संरचनाओं से नई प्रविष्टि उत्पन्न कर सकता है जो धीमी और अधिक स्पेस-कुशल होने की संभावना है। एनएक्स बिट के लिए समर्थन | नो-निष्पादन नियंत्रण खंड रजिस्टरों में है।
इस रचना के साथ बड़ी समस्या हैश कार्य के कारण खराब कैश स्पेस है। ट्री-आधारित रचना आसन्न स्पेसों में आसन्न पृष्ठों के लिए पृष्ठ तालिका प्रविष्टियाँ रखकर इससे बचते हैं। पावरपीसी पर चलने वाला ऑपरेटिंग प्रणाली इस समस्या को कम करने के लिए हैश तालिका के आकार को छोटा कर सकता है।
किसी प्रक्रिया की पृष्ठ तालिका प्रविष्टियों को निकालना भी कुछ धीमा है। ओएस इसका सामना करने में देरी करने के लिए खंड मूल्यों का पुन: उपयोग करने से बच सकता है, या यह प्रति-प्रक्रिया हैश टेबल से जुड़ी मेमोरी की बर्बादी को भुगतने का चुनाव कर सकता है। जी1 चिप्स पृष्ठ तालिका प्रविष्टियों की खोज नहीं करते हैं,। किंतु वे हैश उत्पन्न करते हैं,। इस उम्मीद के साथ कि ओएस सॉफ़्टवेयर के माध्यम से मानक हैश तालिका खोजेगा। ओएस टीएलबी को लिख सकता है। जी2, जी3 और प्रारंभिक जी4 चिप्स हैश तालिका को खोजने के लिए हार्डवेयर का उपयोग करते हैं। नवीनतम चिप्स ओएस को किसी भी विधि को चुनने की अनुमति देते हैं। चिप्स पर जो इसे वैकल्पिक बनाते हैं या इसका बिल्कुल भी समर्थन नहीं करते हैं, ओएस विशेष रूप से ट्री-आधारित पृष्ठ तालिका का उपयोग करना चुन सकता है।
आइए-32 / x86
ओएस कोड के लिए भी, पूर्ण सॉफ़्टवेयर संगतता बनाए रखते हुए x86 आर्किटेक्चर बहुत लंबे समय में विकसित हुआ है। इस प्रकार, एमएमयू बेहद जटिल है, जिसमें कई अलग-अलग संभावित ऑपरेटिंग मोड हैं। पारंपरिक 80386 सीपीयू और उसके उत्तराधिकारियों (IA-32 ) के सामान्य संचालन का वर्णन यहाँ किया गया है।
सीपीयू मुख्य रूप से मेमोरी 4 KB पृष्ठ को विभाजित करता है। खंड रजिस्टर, पुराने इंटेल 8088 और 80286 एमएमयू रचना के लिए मौलिक, आधुनिक ओएस में उपयोग नहीं किया जाता है,। प्रमुख अपवाद के साथ: थ्रेड (कंप्यूटर विज्ञान) तक पहुंच अनुप्रयोगों के लिए विशिष्ट डेटा या ओएस कर्नेल के लिए सीपीयू-विशिष्ट डेटा, जो किया जाता है एफएस और जीएस खंड रजिस्टरों के स्पष्ट उपयोग के साथ है। सभी मेमोरी एक्सेस में सेगमेंट रजिस्टर सम्मिलित होता है,। जिसे निष्पादित किए जा रहे कोड के अनुसार चुना जाता है। खंड रजिस्टर तालिका में सूचकांक के रूप में कार्य करता है,। जो आभासी पते में जोड़े जाने के लिए ऑफसमुच्चय प्रदान करता है। एफएस या जीएस का उपयोग करने के अतिरिक्त, ओएस सुनिश्चित करता है कि ऑफ़समुच्चय शून्य होगा।
ऑफ़समुच्चय जोड़ने के बाद, पता 32 बिट से बड़ा नहीं होना चाहिए। परिणाम पेड़-संरचित पृष्ठ तालिका के माध्यम से देखा जा सकता है, पते के बिट्स को निम्नानुसार विभाजित किया जा सकता है । पेड़ की शाखा के लिए 10 बिट्स, शाखा की पत्तियों के लिए 10 बिट्स, और 12 सबसे कम बिट्स सीधे परिणाम में कॉपी किया गया। कुछ ऑपरेटिंग प्रणाली, जैसे ओपिनबीएसडी अपनी W^X सुविधा के साथ, और लिनक्स एक्सेक शील्ड या पैक्स पैच के साथ, कोड खंड की लंबाई को भी सीमित कर सकता है,। जैसा कि सीएस रजिस्टर द्वारा निर्दिष्ट किया गया है,। जिससे संशोधित क्षेत्रों में कोड के निष्पादन को रोका जा सके।
इंटेल पी5 के साथ प्रस्तुत किए गए एमएमयू के छोटे संशोधनों ने बहुत बड़ी अनुमति दी है । 4 MB ट्री के निचले स्तर को छोड़ कर पृष्ठ (यह पृष्ठ पदानुक्रम के पहले स्तर को अनुक्रमित करने के लिए 10 बिट्स छोड़ता है और शेष 10+12 बिट्स को सीधे परिणाम में कॉपी किया जाता है)। पेंटियम प्रो के साथ प्रस्तुत किए गए एमएमयू के मामूली संशोधनों ने भौतिक पता विस्तार (पीएई) सुविधा की प्रारंभ की, जिससे तीन-स्तरीय पृष्ठ तालिकाओं के लिए 2+9+9 बिट्स के साथ 36-बिट भौतिक पतों को सक्षम किया गया और 12 सबसे कम बिट्स को सीधे परिणाम में कॉपी किया गया। बड़े पृष्ठ (2 MB) पेड़ के निचले स्तर को छोड़ कर भी उपलब्ध हैं ।(परिणामस्वरूप दो-स्तरीय तालिका पदानुक्रम के लिए 2+9 बिट्स और शेष 9+12 निम्नतम बिट्स सीधे कॉपी किए गए)। इसके अतिरिक्त, पृष्ठ विशेषता तालिका ने छोटे ऑन-सीपीयू टेबल में कुछ उच्च बिट्स को देखकर कैशेबिलिटी के विनिर्देशन की अनुमति दी है।
NX बिट | नो-एक्ज़िक्यूट सपोर्ट मूल रूप से केवल प्रति-सेगमेंट के आधार पर प्रदान किया गया था,। जिससे इसका उपयोग करना बहुत अलग हो गया। वर्तमान में x86 चिप्स पीएई मोड में प्रति-पृष्ठ नो-एक्ज़ीक्यूट बिट प्रदान करते हैं। ऊपर वर्णित W^X, एक्सेक शील्ड, और पैक्स तंत्र, प्रदर्शन हानि और उपलब्ध पता स्पेस में कमी के साथ, कोड खंड की लंबाई निर्धारित करके NX बिट की कमी वाली मशीनों x86 प्रोसेसर पर प्रति-पृष्ठ गैर-निष्पादित समर्थन का अनुकरण करते हैं। .
x86-64
x86-64 x86 का 64-बिट एक्सटेंशन है । जो 386 या नए प्रोसेसर के लिए लगभग सभी ऑपरेटिंग प्रणाली द्वारा उपयोग किए जाने वाले फ्लैट मेमोरी मॉडल के पक्ष में विभाजन को लगभग पूरी तरह से हटा देता है। लॉन्ग मोड में, एफएस और जीएस सेगमेंट को छोड़कर, सभी सेगमेंट ऑफ़समुच्चय को नज़रअंदाज कर दिया जाता है। जब के साथ प्रयोग किया जाता है 4 KB पेज, पेज टेबल ट्री में तीन के अतिरिक्त चार स्तर होते हैं।
आभासी पतों को इस प्रकार विभाजित किया गया है: 16 बिट अप्रयुक्त, नौ बिट्स प्रत्येक चार पेड़ स्तरों के लिए (कुल 36 बिट्स के लिए), और 12 सबसे कम बिट्स सीधे परिणाम में कॉपी किए गए हैं। साथ 2 MB पेज, पेज टेबल के केवल तीन स्तर हैं, पेजिंग में उपयोग किए जाने वाले कुल 27 बिट्स और ऑफ़समुच्चय के 21 बिट्स के लिए। कुछ नए सीपीयू भी सपोर्ट करते हैं । a 1 GB पेजिंग के दो स्तरों वाला पेज और 30 bits ऑफसमुच्चय का होता है।[12]
सीपीयूआईडी का उपयोग यह निर्धारित करने के लिए किया जा सकता है कि 1 GB पृष्ठ समर्थित हैं। तीनों स्थितियों में, 16 highest बिट्स को 48 वें बिट के बराबर होना चाहिए, या दूसरे शब्दों में, निम्न 48 bits उच्च बिट्स के लिए साइन एक्सटेंशन हैं। यह पश्चगामी संगतता से समझौता किए बिना, पता योग्य सीमा के भविष्य के विस्तार की अनुमति देने के लिए किया जाता है। पृष्ठ तालिका के सभी स्तरों में, पृष्ठ तालिका प्रविष्टि में NX बिट | नो-निष्पादित बिट सम्मिलित होता है।
यूनिसिस एमसीपी प्रणाली्स (बरोज बी5000)
1961 से बरोज़ B5000 वर्चुअल मेमोरी ( एटलस कंप्यूटर (मैनचेस्टर) के बाद) का समर्थन करने वाला पहला वाणिज्यिक प्रणाली था,। तथापि इसमें कोई एमएमयू नहीं है । [13] यह एमएमयू के दो कार्य प्रदान करता है - वर्चुअल मेमोरी एड्रेस और मेमोरी प्रोटेक्शन अलग आर्किटेक्चरल दृष्टिकोण के साथ होता है।
सबसे पहले, वर्चुअल मेमोरी एड्रेस की मैपिंग में, एमएमयू की आवश्यकता के अतिरिक्त, बरोज़ एमसीपी प्रणाली डेटा डिस्क्रिप्टर -आधारित होते हैं। प्रत्येक आवंटित मेमोरी ब्लॉक को ब्लॉक के गुणों के साथ मास्टर डिस्क्रिप्टर दिया जाता है ।(अर्थात, आकार, पता, और क्या मेमोरी में उपस्थित है)। जब पढ़ने या लिखने के लिए ब्लॉक तक पहुंचने का अनुरोध किया जाता है, तो हार्डवेयर डिस्क्रिप्टर में उपस्थिति बिट (पीबीटी) के माध्यम से इसकी उपस्थिति की जांच करता है।
1 का पीबिट ब्लॉक की उपस्थिति को इंगित करता है। इस स्थिति में, विवरणक में भौतिक पते के माध्यम से ब्लॉक तक पहुँचा जा सकता है। यदि पीबिट शून्य है, तो एमसीपी (ऑपरेटिंग प्रणाली) के लिए ब्लॉक को उपस्थित करने के लिए इंटरप्ट उत्पन्न होता है। यदि पता फ़ील्ड शून्य है, तो यह इस ब्लॉक की पहली पहुंच है, और इसे आवंटित किया जाता है (init पीbit)। यदि पता फ़ील्ड गैर-शून्य है,। तो यह ब्लॉक का डिस्क पता है,। जिसे पहले रोल आउट किया गया है, इसलिए ब्लॉक को डिस्क से प्राप्त किया जाता है और पीबीटी को एक पर समुच्चय किया जाता है और ब्लॉक को इंगित करने के लिए भौतिक मेमोरी पता अपडेट किया जाता है मेमोरी में (एक और पीबीटी)। यह विवरणकों को एमएमयू प्रणाली में पेज-टेबल एंट्री के बराबर बनाता है। प्रणाली के प्रदर्शन की निगरानी पीबीआईटीएस की संख्या के माध्यम से की जा सकती है। Init पीबीआईटीएस प्रारंभिक आवंटन को इंगित करता है, किंतु अन्य पीबीआईटीएस का उच्च स्तर इंगित करता है कि प्रणाली थ्रैशिंग हो सकता है।
इसलिए सभी मेमोरी आवंटन पूरी तरह से स्वचालित है । (आधुनिक प्रणालियों की विशेषताओं में से [14]) और इस तंत्र के अतिरिक्त अन्य ब्लॉक आवंटित करने का कोई विधि नहीं है। सी डायनेमिक मेमोरी आवंटन या डेलोक जैसी कोई कॉल नहीं है, क्योंकि मेमोरी ब्लॉक भी स्वचालित रूप से त्याग दिए जाते हैं। यह योजना भी मंद आवंटन है । क्योंकि किसी ब्लॉक को तब तक आवंटित नहीं किया जाएगा जब तक कि उसे वास्तव में संदर्भित नहीं किया जाता है। जब मेमोरी लगभग भर जाती है, तो एमसीपी काम करने वाले समुच्चय की जांच करता है, संघनन की कोशिश करता है (क्योंकि प्रणाली खंडित है, पृष्ठांकित नहीं है), केवल-पढ़ने के लिए खंडों (जैसे कोड-सेगमेंट जिन्हें उनकी मूल प्रति से पुनर्स्थापित किया जा सकता है) और, एक के रूप में अंतिम उपाय, गंदे डेटा सेगमेंट को डिस्क पर रोल आउट करना होता है।
एक और विधि है कि B5000 एमएमयू का कार्य प्रदान करता है जो सुरक्षा में है। चूंकि सभी एक्सेस डिस्क्रिप्टर के माध्यम से होते हैं,। हार्डवेयर यह जांच सकता है कि सभी एक्सेस सीमा के अन्दर हैं और लिखने के स्थिति में, प्रक्रिया में लिखने की अनुमति है। एमसीपी प्रणाली स्वाभाविक रूप से सुरक्षित है और इस प्रकार मेमोरी सुरक्षा के इस स्तर को प्रदान करने के लिए एमएमयू की कोई आवश्यकता नहीं है। डिस्क्रिप्टर केवल उपयोगकर्ता प्रक्रियाओं के लिए पढ़े जाते हैं और केवल प्रणाली (हार्डवेयर या एमसीपी) द्वारा अपडेट किए जा सकते हैं। (जिन शब्दों का टैग विषम संख्या है, वे केवल पढ़ने के लिए हैं; वर्णनकर्ताओं के पास 5 का टैग होता है और कोड शब्दों में 3 का टैग होता है।)
प्रक्रिया स्टैक में कॉपी डिस्क्रिप्टर के माध्यम से प्रक्रियाओं के बीच ब्लॉक साझा किए जा सकते हैं। इस प्रकार, कुछ प्रक्रियाओं में लिखने की अनुमति हो सकती है, जबकि अन्य में नहीं है। कोड खंड केवल पढ़ा जाता है, इस प्रकार प्रक्रियाओं के बीच पुन: प्रवेश और साझा किया जाता है। कॉपी डिस्क्रिप्टर में 20-बिट एड्रेस फ़ील्ड होता है । जो मास्टर डिस्क्रिप्टर एरे में मास्टर डिस्क्रिप्टर का इंडेक्स देता है। यह बहुत ही कुशल और सुरक्षित आईपीसी तंत्र को भी प्रयुक्त करता है। ब्लॉक को आसानी से स्पेसांतरित किया जा सकता है, क्योंकि ब्लॉक की स्थिति में परिवर्तन होने पर केवल मास्टर डिस्क्रिप्टर को अपडेट की आवश्यकता होती है।
एकमात्र अन्य पहलू प्रदर्शन है । क्या एमएमयू-आधारित या गैर-एमएमयू-आधारित प्रणाली उत्तम प्रदर्शन प्रदान करते हैं? एमसीपी प्रणाली मानक हार्डवेयर के शीर्ष पर प्रयुक्त किया जा सकता है जिसमें एमएमयू होता है (उदाहरण के लिए, मानक पीसी)। तथापि प्रणाली कार्यान्वयन किसी तरह से एमएमयू का उपयोग करता हो, यह एमसीपी स्तर पर बिल्कुल भी दिखाई नहीं देता है ।
यह भी देखें
संदर्भ
- ↑ Memory Management Unit at the Free On-line Dictionary of Computing
- ↑ Tanenbaum, Andrew S. (2009). Modern operating systems. Upper Saddle River (New Jersey): Prentice-Hall. ISBN 978-0-13-600663-3.
- ↑ 3.0 3.1 3.2 3.3 3.4 Frank Uyeda (2009). "Lecture 7: Memory Management" (PDF). CSE 120: Principles of Operating Systems. UC San Diego. Retrieved 2013-12-04.
- ↑ Spectra 70 70-46 Processor Manual (PDF). RCA. March 1968. p. 4. Retrieved August 15, 2013.
- ↑ "Z8010 Z8000 MMU Memory Management Unit Product Specification" (PDF). Zilog. April 1985.
{{cite journal}}
: Cite journal requires|journal=
(help) - ↑ "1983/84 Data Book" (PDF). Zilog: 215–234. Retrieved 2021-04-27.
{{cite journal}}
: Cite journal requires|journal=
(help) - ↑ Schmidt, Stephen (April 1983). "Virtual Memory for Microcomputers". Byte. Vol. 8, no. 4. pp. 234–235.
- ↑ "Cortex-A8 Technical Reference Manual" (PDF). Infoventer.arm.com. Retrieved 2017-05-03.
- ↑ "IBM Archives: System/360 Dates and characteristics". 03.ibm.com. Retrieved 2017-05-03.
- ↑ 10.0 10.1 "IBM System/360 Model 67 Functional Characteristics, Third Edition" (PDF). February 1972. GA27-2719-2. Retrieved October 29, 2021.
- ↑ Sun 68000 Board User's Manual, Sun Microsystems, Inc, February 1983, Revision B
- ↑ "AMD64 Architecture Programmer's Manual Volume 2: System Programming" (PDF). March 2017. Retrieved 2017-12-05.
- ↑ Tanenbaum, Andrew S.; Herder, Jorrit N.; Bos, Herbert (May 2006). "Can We Make Operating Systems Reliable and Secure?". Computer. 39 (5): 44–51. CiteSeerX 10.1.1.112.3028. doi:10.1109/MC.2006.156. S2CID 99779.
- ↑ Daniel H. H. Ingalls (August 1981). "Design Principles Behind Smalltalk". Byte Magazine. Archived from the original on 2007-09-27.