फिजिकल एड्रेस एक्सटेंशन

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

पृष्ठ तालिका संरचना x86-64 सीपीयू द्वारा उपयोग की जाती है जब लंबे मोड में संचालन करते समय पृष्ठ तालिका पदानुक्रम को चार स्तरों तक विस्तारित करता है, आभासी एड्रेस प्लेस का विस्तार करता है, और पृष्ठ तालिका के सभी स्तरों पर अतिरिक्त फिजिकल एड्रेस बिट्स का उपयोग करता है, फिजिकल एड्रेस प्लेस का विस्तार करता है। यह 64-बिट पृष्ठ तालिका प्रविष्टि के शीर्ष बिट का उपयोग नो-एक्ज़ीक्यूट या NX बिट के रूप में भी कार्य करता है। NX बिट यह दर्शाता है कि संबंधित पृष्ठ से कोड निष्पादित नहीं किया जा सकता है। NX सुविधा X86-64 ऑपरेटिंग मोड में भी उपलब्ध है जब ये सीपीयू 32-बिट ऑपरेटिंग प्रणाली चला रहे हैं, परंतु कि ऑपरेटिंग प्रणाली पीएई को सक्षम करता हो।

इतिहास
पीएई को पहली बार 1995 में इंटेल पेंटियम प्रो में प्रयुक्त किया गया था। चूँकि साथ वाले चिपसेट में सामान्यतयः आवश्यक अतिरिक्त एड्रेस बिट्स के लिए समर्थन की कमी थी।

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

जब उन्नत माइक्रो डिवाइसेस ने उद्योग मानक x86 आर्किटेक्चर, x86-64 या x86-64 के अपने 64-बिट विस्तार को परिभाषित किया, तो उन्होंने पीएई के आधार पर पेजिंग प्रणाली को लंबे मोड में भी बढ़ाया। यह 64-बिट वर्चुअल एड्रेसेस का समर्थन करता है ( 48 बिट्स प्रयुक्त किए गए हैं ) , 52-बिट फिजिकल एड्रेसेस,  और NX बिट कार्यक्षमता सम्मिलित है।

जब x86-64 प्रोसेसर को देखा जाता है, तो प्रोसेसर को लेगेसी मोड से लॉन्ग मोड में परिवर्तित करने से पहले पीएई विशेषताको सक्षम करना आवश्यक होता है।

डिजाइन
पीएई के साथ, x86 आर्किटेक्चर की पृष्ठ तालिका प्रविष्टि 32 से 64 बिट तक बढ़ाई गई है। यह पृष्ठ तालिका प्रविष्टि में फिजिकल पृष्ठ एड्रेस या पृष्ठ फ़्रेम संख्या क्षेत्र के लिए अधिक स्थान देता है। पीएई के प्रारंभिक कार्यान्वयन में पृष्ठ फ़्रेम संख्या क्षेत्र को 20 से 24 बिट तक विस्तारित किया गया था। अनुवाद किए जा रहे एड्रेसेस से ऑफ़सेट बाइट का आकार अभी भी 12 बिट है, इसलिए कुल फिजिकल एड्रेस आकार 32 बिट्स से बढ़कर 36 बिट्स (यदि 20+12 से 24+12) हो जाता है। इसने फिजिकल मैमोरी को बढ़ा दिया जो सैद्धांतिक रूप से सीपीयू द्वारा 4 जीबी से 64 जीबी तक संबोधित किया जा सकता है।

पीएई का समर्थन करने वाले पहले प्रोसेसर में, बड़े फिजिकल एड्रेसेस के लिए समर्थन उनके पैकेज पिनआउट में स्पष्ट होता है, जिसमें एड्रेस पिन पदनाम A31 पर रुकने के अतिरिक्त A35 तक जाता है। बाद के प्रोसेसर वर्ग हाइपर ट्रांसपोर्ट या क्विकपाथ इंटरकनेक्ट जैसे इंटरकनेक्ट का उपयोग करते हैं, जिसमें समर्पित मेमोरी एड्रेस सिग्नल की कमी होती है, इसलिए यह संबंध कम स्पष्ट होता है।

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

बाद में एएमडी के x86-64 आर्किटेक्चर के विकास से जुड़े काम ने फिजिकल एड्रेसेस के सैद्धांतिक संभावित आकार को 52 बिट्स तक बढ़ा दिया।

पृष्ठ तालिका संरचनाएं
पेजिंग सक्षम के साथ सुरक्षित मोड में (बिट 31,, नियंत्रण रजिस्टर का   जोड़ा है), किन्तु पीएई के बिना, x86 प्रोसेसर दो-स्तरीय पृष्ठ अनुवाद योजना का उपयोग करते हैं। कंट्रोल रजिस्टर   एकल 4 केबी लंबी पृष्ठ निर्देशिका का पृष्ठ-संरेखित फिजिकल एड्रेस रखता है। यह 1024 चार-बाइट पृष्ठ निर्देशिका प्रविष्टियों में विभाजित है, जो बदले में यदि मान्य है तो पृष्ठ तालिकाओं के पृष्ठ-संरेखित फिजिकल एड्रेसेस, प्रत्येक 4 केबी आकार में होते हैं। इनमें समान रूप से 1024 चार-बाइट पृष्ठ तालिका प्रविष्टियाँ सम्मिलित हैं, जो यदि मान्य हैं, तो फिजिकल मेमोरी (रैम) के 4 केबी लंबे पृष्ठ (कंप्यूटिंग) के पृष्ठ-संरेखित फिजिकल एड्रेसेस रखती हैं।

पीएई को सक्षम करना (बिट सेट करके 5,, प्रणाली रजिस्टर की ) इस योजना में बड़े बदलाव का कारण बनता है। अनुपस्थिति रूप से, प्रत्येक पृष्ठ का आकार 4 केबी रहता है। अतिरिक्त एड्रेस बिट्स की अनुमति देने के लिए, पृष्ठ तालिका और पृष्ठ निर्देशिका में प्रत्येक प्रविष्टि 32 बिट्स के अतिरिक्त 64 बिट्स लंबी (8 बाइट्स) हो जाती है। चूँकि, प्रत्येक तालिका का आकार नहीं बदलता है, इसलिए तालिका और निर्देशिका दोनों में अब केवल 512 प्रविष्टियाँ हैं। क्योंकि यह मूल योजना की केवल आधी प्रविष्टियों की अनुमति देता है, पदानुक्रम का अतिरिक्त स्तर जोड़ा गया है, इसलिए CR3 अब फिजिकल रूप से पृष्ठ निर्देशिका सूचक तालिका की ओर संकेत करता है, एक छोटी तालिका जिसमें पृष्ठ निर्देशिकाओं के लिए चार संकेत होते हैं।

पृष्ठ निर्देशिका में प्रविष्टियों में बिट 7 में एक अतिरिक्त फ़्लैग नाम दिया गया है  (पृष्ठ आकार के लिए)। यदि प्रणाली ने इस बिट को सेट किया है , पृष्ठ निर्देशिका प्रविष्टि किसी पृष्ठ तालिका की ओर नहीं किन्तु बड़े 2 एमबी पृष्ठ (पृष्ठ आकार विस्तार) की ओर निर्देशित करती है।

x86 और x86-64 द्वारा समर्थित सभी पृष्ठ तालिका स्वरूपों में, पृष्ठ तालिका प्रविष्टि के 12 सबसे कम महत्वपूर्ण बिट्स या तो मैमोरी प्रबंधन इकाई द्वारा व्याख्या किए जाते हैं या ऑपरेटिंग प्रणाली उपयोग के लिए आरक्षित होते हैं। उन प्रोसेसरों में जो नो-एक्ज़ीक्यूट या एक्ज़ीक्यूशन डिसेबल विशेषता को प्रयुक्त करते हैं, सबसे महत्वपूर्ण बिट (बिट 63) NX बिट है। अगले ग्यारह सबसे महत्वपूर्ण बिट्स (बिट्स 52 से 62) इंटेल और एएमडी दोनों के आर्किटेक्चर विनिर्देशों द्वारा ऑपरेटिंग प्रणाली के उपयोग के लिए आरक्षित हैं। इस प्रकार, पृष्ठ तालिका प्रविष्टि में 64 बिट्स से, 12 लो-ऑर्डर और 12 हाई-ऑर्डर बिट्स के अन्य उपयोग हैं, फिजिकल पृष्ठ संख्या के लिए 40 बिट्स (बिट्स 12 चूँकि 51) को छोड़कर करता है। रेखीय एड्रेसेस से पृष्ठ के अन्दर 12 बिट्स ऑफ़सेट के साथ संयुक्त, फिजिकल मेमोरी को संबोधित करने के लिए अधिकतम 52 बिट्स उपलब्ध हैं। यह 252 बाइट, या 4 पेटाबाइट (लगभग 4.5×1015 बाइट्स) की अधिकतम रैम विन्यास की अनुमति देता है।

मूल लंबे मोड में x86-64 प्रोसेसर पर, एड्रेस अनुवाद योजना पीएई का उपयोग करती है किन्तु चौथी तालिका, 512-प्रविष्टि पृष्ठ-मानचित्र स्तर 4 तालिका जोड़ती है, और पृष्ठ निर्देशिका सूचक तालिका को मूल 4 प्रविष्टियों के अतिरिक्त 512 प्रविष्टियों तक विस्तारित करती है। संरक्षित मोड में है। वर्तमान में वर्चुअल पृष्ठ संख्या के 48 बिट्स का अनुवाद किया जाता है, जिससे 256 टीबी तक का वर्चुअल एड्रेस प्लेस मिलता है। पृष्ठ तालिका प्रविष्टियों में, मूल विनिर्देश में, फिजिकल पृष्ठ संख्या के 40 बिट प्रयुक्त किए गए हैं।

हार्डवेयर समर्थन
सॉफ्टवेयर के माध्यम से पहचान कर सकता है  फ्लैग   सीपीयू पीएई मोड का समर्थन करता है या नहीं माइक्रोसॉफ्ट विंडोज के लिए नि: शुल्क कार्यक्रम उपलब्ध है जो पीएई समर्थन सहित कई प्रोसेसर क्षमताओं को सूचीबद्ध करेगा। लिनक्स में, जैसे आदेश उपस्थित होने पर   फ़्लैग और साथ ही सिसलिनक्स हार्डवेयर डिटेक्शन उपकरण जैसे अन्य उपकरण को सूचीबद्ध कर सकते हैं।

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

माइक्रोसॉफ़्ट विंडोज़
उपयुक्त विकल्प के साथ बूट होने पर माइक्रोसॉफ़्ट विंडोज़ के 32-बिट संस्करण पीएई का समर्थन करते हैं। माइक्रोसॉफ्ट टेक्निकल फेलो मार्क रोसिनोविच के अनुसार, 4GB से ऊपर के फिजिकल एड्रेसेस का सामना करने पर कुछ ड्राइवर अस्थिर पाए गए।

निम्न तालिका माइक्रोसॉफ़्ट विंडोज़ के 32-बिट संस्करणों के लिए मैमोरी सीमाएँ दिखाती है: विन्डोज़ एक्सपी और विन्डोज़ एक्सपी एसपी1 की मूल रिलीज़ में पीएई मोड का उपयोग किया गया था जिससे रैम को 4 जीबी एड्रेस सीमा से आगे बढ़ाया जा सकता है । चूँकि, इसने तृतीय पक्ष ड्राइवरों के साथ संगतता समस्याओं का नेतृत्व किया, जिसके कारण माइक्रोसॉफ्ट ने विन्डोज़ एक्सपी सर्विस पैक 2 में इस क्षमता को हटा दिया। विन्डोज़ एक्सपी एसपी2 और बाद में, अनुपस्थिति रूप से, NX बिट के साथ प्रोसेसर पर नो-एक्ज़ीक्यूट (NX) या NX बिट निष्पादित-अक्षम (एक्सडी) सुविधा, NX को अनुमति देने के लिए पीएई मोड में चलती है। NX बिट पृष्ठ तालिका प्रविष्टि के बिट 63 में रहता है और, पीएई के बिना, 32-बिट प्रणाली पर पृष्ठ तालिका प्रविष्टियों में केवल 32 बिट होते हैं; इसलिए NX विशेषता का लाभ उठाने के लिए पीएई मोड की आवश्यकता है। चूँकि 32-बिट विन्डोज़ (विन्डोज़ एक्सपी एसपी2 और बाद में, विन्डोज़ विस्टा, विन्डोज़ 7) के क्लाइंट संस्करण ड्राइवर संगतता के लिए फिजिकल एड्रेस प्लेस को पहले 4 जीबी तक सीमित करते हैं तथापि NX समर्थन सक्षम होने पर ये संस्करण पीएई मोड में चलते हैं।

NX बिट और एसएसई2 के अतिरिक्त, विन्डोज़ 8 और बाद के संस्करण केवल उन प्रोसेसर पर चलेंगे जो पीएई का समर्थन करते हैं।

मैक ओएस
मैक ओएस एक्स स्नो लेपर्ड के माध्यम से मैक ओएस एक्स स्नो लेपर्ड आईए-32 प्रोसेसर पर पीएई और NX बिट का समर्थन करता है; स्नो लेपर् आईए-32 प्रोसेसर का समर्थन करने वाला अंतिम संस्करण था। x86-64 प्रोसेसर पर, मैकओएस के सभी संस्करण 4 जीबी से ऊपर की मेमोरी को संबोधित करने के लिए 4-स्तरीय पेजिंग (पीएई के अतिरिक्त आईए-32ई पेजिंग) का उपयोग करते हैं। मैक प्रो और एक्ससर्व प्रणाली 64 जीबी तक रैम का उपयोग कर सकते हैं।

लिनक्स
लिनक्स कर्नेल में 2.3.23 संस्करण से प्रारंभ होने वाले पूर्ण पीएई-मोड समर्थन सम्मिलित है, 1999 में 32-बिट मशीनों पर 64 जीबी मेमोरी तक पहुंच को सक्षम करना है। पीएई-सक्षम लिनक्स कर्नेल की आवश्यकता है कि सीपीयू भी पीएई का समर्थन करे। लिनक्स कर्नेल पीएई को बिल्ड विकल्प के रूप में समर्थन करता है और प्रमुख वितरण पीएई कर्नेल को या तो अनुपस्थिति या विकल्प के रूप में प्रदान करते हैं।

NX बिट सुविधा के लिए पीएई समर्थन के साथ निर्मित कर्नेल की आवश्यकता होती है।

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

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

अन्य
फ्रीबीएसडी और नेटबीएसडी भी पीएई को कर्नेल बिल्ड विकल्प के रूप में समर्थन करते हैं। फ्रीबीएसडी 4.x सूची में 4.9 से प्रारंभ होकर, 5.x सूची में 5.1 से प्रारंभ होकर, और सभी 6.x और बाद में रिलीज़ में पीएई का समर्थन करता है। समर्थन के लिए कर्नेल की  कॉन्फ़िगरेशन-विकल्प की आवश्यकता होती है । लोड करने योग्य कर्नेल मॉड्यूल केवल पीएई सक्षम के साथ कर्नेल में लोड किए जा सकते हैं यदि मॉड्यूल पीएई सक्षम के साथ बनाए गए थे; फ्रीबीएसडी वितरण में बाइनरी मॉड्यूल पीएई सक्षम के साथ नहीं बनाया गया है, और इस प्रकार पीएई कर्नेल में लोड नहीं किया जा सकता है। सभी ड्राइवर 4 जीबी से अधिक फिजिकल मेमोरी का समर्थन नहीं करते हैं; वे ड्राइवर पीएई वाले प्रणाली पर ठीक से काम नहीं करेंगे।

ओपनबीएसडी को मानक जेनरिक i386 कर्नेल के साथ 2006 से पीएई के लिए समर्थन प्राप्त है। GeNUA mbH ने प्रारंभिक कार्यान्वयन का समर्थन किया। रिलीज 5.0 पीएई में परिवर्तनों की श्रृंखला है, विशेष रूप से पीएमएपी के लिए i386 एमएमयू प्रसंस्करण में परिवर्तन, पीएमएपी (9) देखें।

सोलारिस (ऑपरेटिंग प्रणाली ) सोलारिस संस्करण 7 से प्रारंभ होकर पीएई का समर्थन करता है। चूँकि, संस्करण 7 के साथ उपयोग किए जाने वाले तृतीय-पक्ष ड्राइवर जिनमें विशेष रूप से पीएई समर्थन सम्मिलित नहीं है, पीएई के साथ प्रणाली पर गलत विधि से काम कर सकते हैं या विफल हो सकते हैं।

हाइकू (ऑपरेटिंग प्रणाली ) ने आर1 अल्फा 2 रिलीज के कुछ समय बाद पीएई के लिए प्रारंभिक समर्थन जोड़ा है। R1 अल्फा 3 पीएई की रिलीज के साथ अब आधिकारिक रूप से समर्थित है।

आर्काओएस के पास 4 जीबी सीमा से ऊपर रैम डिस्क बनाने के उद्देश्य से पीएई के लिए सीमित समर्थन है।

यह भी देखें

 * पेज साइज एक्सटेंशन
 * पीसीआई छेद
 * पीएसई-36
 * विंडोज एनटी का आर्किटेक्चर
 * 3 जीबी बाधा
 * बड़ा फिजिकल एड्रेस विस्तार (एलपीएई) - एआरएम वास्तुकला में
 * इंटेल 5-स्तरीय पेजिंग