X86 मेमोरी सेगमेंटेशन: Difference between revisions
No edit summary |
No edit summary |
||
(12 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{short description|Implementation of memory segmentation on Intel x86}} | {{short description|Implementation of memory segmentation on Intel x86}} | ||
एक्स[[86]] [[ स्मृति विभाजन |स्मृति विभाजन]] अथार्त इंटेल एक्स86 कंप्यूटर [[ निर्देश सेट वास्तुकला |निर्देश समूह वास्तुकला]] में स्मृति विभाजन के कार्यान्वयन को संदर्भित करता है। 1978 में [[Index.php?title=इंटेल 8086|इंटेल 8086]] पर विभाजन क्रिया प्रारंभ की गई थी, जिससे कार्यक्रमों को 64 केबी (65,536 [[बाइट|जोड़]] ) से अधिक स्मृति को संबोधित करने की अनुमति मिल सके। [[Intel 80286|इंटेल 80286]] ने 1982 में विभाजन का दूसरा संस्करण प्रस्तावित किया जिसमें [[ आभासी मेमोरी |आभासी स्मृति]] और स्मृति सुरक्षा के लिए समर्थन जोड़ा गया। इस बिंदु पर मूल प्रणाली का नाम बदलकर [[वास्तविक मोड|वास्तविक प्रणाली]] कर दिया गया था, और नए संस्करण को संरक्षित प्रणाली नाम दिया गया था। 2003 में प्रस्तावित किए गए [[x86-64|एक्स86-64]] संरचना ने 64-अंश प्रणाली में विभाजन के लिए अत्याधिक सीमा तक समर्थन छोड़ दिया था। | |||
वास्तविक और संरक्षित दोनों प्रणाली में, वास्तविक स्मृति दक्षता | वास्तविक और संरक्षित दोनों प्रणाली में, वास्तविक स्मृति दक्षता प्राप्त करने के लिए प्रणाली 16-अंश ''खंड पंजिका'' का उपयोग करता है। वास्तविक प्रणाली में, सीएस, डीएस, एसएस और इएस पंजिका वर्तमान में उपयोग किए गए योजना[[ कोड खंड | संकेत खंड]] (सीएस), वर्तमान [[डेटा खंड|आंकड़े खंड]] (डीएस), वर्तमान [[कॉल स्टैक]] (आह्वान स्तंभ)(एसएस), और एक ''अतिरिक्त'' खंड की ओर संकेत करते हैं। यह क्रमादेशक (ईएस) द्वारा निर्धारित किया गया है। 1985 में प्रस्तावित किया गया [[Intel 80386|इंटेल]] [[Intel 80386|80386]], दो अतिरिक्त खंड पंजिका, एफएस और जीएस को जोड़ता है, जिसमें हार्डवेयर द्वारा परिभाषित का कोई विशिष्ट उपयोग नहीं है। जिस तरह से खंड पंजिका का उपयोग किया जाता है, वह दो प्रणाली के बीच भिन्न होता है।<ref name=Arch /> | ||
क्रियान्वित किए जा रहे कार्य के अनुसार खंड | क्रियान्वित किए जा रहे कार्य के अनुसार खंड का विकल्प सामान्यतः संसाधक व्यतिक्रम द्वारा की जाती है और निर्देश सदैव संकेत खंड से प्राप्त किए जाते हैं। कोई भी स्तंभ दबाना या त्वरित या कोई भी आंकड़े संदर्भ जो स्तंभ का जिक्र करते है, वह स्तंभ खंड का उपयोग करते है। आंकड़ो के अन्य सभी संदर्भ आंकड़े खंड का उपयोग करते हैं। अतिरिक्त खंड श्रृंखला संचालन के लिए व्यतिक्रम गंतव्य है (उदाहरण के लिए एमओवीएस या सीएमपीएस है)। एफएस और जीएस के पास हार्डवेयर- नियुक्त किए गए पर इनका उपयोग नहीं हैं। निर्देश प्रारूप वैकल्पिक खंड है जो उपसर्ग काटने की अनुमति देता है। जिसका उपयोग वांछित होने पर चयनित निर्देशों के लिए व्यतिक्रम खंड को अवहेलना करने के लिए किया जा सकता है।<ref>{{cite book|last=Intel Corporation|title=IA-32 Intel Architecture Software Developer's Manual Volume 1: Basic Architecture|date=2004|url=http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-vol-1-manual.pdf}}</ref> | ||
== पूर्णतः | == पूर्णतः प्रणाली == | ||
[[Image:Overlapping realmode segments.svg|thumb|300px|वास्तविक प्रणाली स्मृति में तीन खंड (विस्तार करने के लिए चित्र पर | [[Image:Overlapping realmode segments.svg|thumb|300px|वास्तविक प्रणाली स्मृति में तीन खंड (विस्तार करने के लिए चित्र पर दबायें)। खंड 2 और खंड 3 के बीच अधिव्यापन है; हरे और नीले क्षेत्र में जोड़ का उपयोग दोनों खंड चयनकर्ताओं से किया जा सकता है।]]पूर्णतः प्रणाली या [[वर्चुअल 8086 मोड|वी 8086 प्रणाली]] में खंड का आकार 1 जोड़ से लेकर 65,536 जोड़ (16-अंश लक्ष्यांतर का उपयोग करके) तक हो सकता है। | ||
खंड पंजिका | खंड पंजिका में 16-अंश खंड चयनकर्ता को रैखिक 20-अंश दक्षता के सबसे महत्वपूर्ण 16 अंश के रूप में व्याख्या किया जाता है। जिसे खंड दक्षता कहा जाता है, जिसमें से शेष चार सबसे कम महत्वपूर्ण अंश सभी शून्य हैं। खंड स्थान सदैव एक रेखीय स्थान प्राप्त करने के निर्देश में 16-अंश लक्ष्यांतर में जोड़ा जाता है, जो इस प्रणाली में भौतिक स्थान के समान होता है। उदाहरण के लिए, खंडित स्थान 06इएफएच:1234एच (यहाँ प्रत्यय एचका अर्थ [[हेक्साडेसिमल]] है) में 06इएफएच का एक खंड चयनकर्ता है, जो 06 इएफओएच के एक खंड स्थान का प्रतिनिधित्व करता है, जिसमें लक्ष्यांतर जोड़ा जाता है, जिससे रैखिक स्थान 06 इएफओएच + 1234एच = 08124एच प्राप्त होता है। | ||
{| | {| | ||
Line 14: | Line 14: | ||
! style=width:18em | <code> </code><code style="background:#DED">0000 0110 1110 1111</code><code>0000</code> | ! style=width:18em | <code> </code><code style="background:#DED">0000 0110 1110 1111</code><code>0000</code> | ||
| '''खंड''' | | '''खंड''' | ||
| 16 जोड़ , स्थान्तरण 4 जोड़ | | 16 जोड़ , स्थान्तरण 4 जोड़ विरूध्द पक्ष (और गुणा किया 0एक्स10) | ||
|- | |- | ||
! style=width:18em | <code>+ </code><code style="background:#DDF">0001 0010 0011 0100</code> | ! style=width:18em | <code>+ </code><code style="background:#DDF">0001 0010 0011 0100</code> | ||
Line 27: | Line 27: | ||
| 20 जोड़ | | 20 जोड़ | ||
|} | |} | ||
जिस तरह से खंड दक्षता | जिस तरह से खंड दक्षता और लक्ष्यांतर जोड़े जाते हैं, उसके कारण पृथक रेखीय दक्षता को तक प्रतिचित्र किया जा सकता है। 2<sup>12</sup> = 4096 विशिष्ट खंड: लक्ष्यांतर जोड़े है। उदाहरण के लिए, रैखिक स्थान 08124एच में खंडित स्थान हो सकते हैं। उदाहरण 06 इएफएच:1234एच, 0812एच:0004एच, 0000एच:8124एच, आदि है। | ||
यह अद्वितीय दक्षता योजनाओं के आदी | यह अद्वितीय दक्षता योजनाओं के आदी क्रमादेशकों के लिए भ्रमित करने वाला हो सकता है, किन्तु इसका उपयोग लाभ के लिए भी किया जा सकता है।उदाहरण के लिए कई स्थिर आंकड़े संरचनाओं को संबोधित करते समय अलग होते है, जबकि वास्तविक प्रणाली खंड सदैव 64 [[किलोबाइट|के बी]] लंबे होते हैं। व्यावहारिक प्रभाव केवल यह है कि कोई भी खंड 64 केबी से अधिक लंबा नहीं हो सकता है, इसके अतिरिक्त प्रत्येक खंड 64 केबी लंबा ही होना चाहिए। क्योंकि वास्तविक प्रणाली में कोई सुरक्षा या विशेषाधिकार सीमा नहीं है, तथापि एक खंड को 64 केबी से छोटा परिभाषित किया जा सकता है, फिर भी यह पूरी तरह से कार्यक्रमों पर निर्भर करेगा कि वे समन्वय करें और अपने खंडों की सीमा के अंदर रखें, जैसा कि कोई भी कार्यक्रम कर सकता है। चूंकि यह इच्छानुसार से खंड चयनकर्ताओं को बिना किसी पर्यवेक्षण के खंड स्थान बदलने के लिए समूह कर सकता है। इसलिए, 1 से 65,536 जोड़ की सीमा में प्रत्येक खंड के लिए एक चर लंबाई होने के रूप में वास्तविक प्रणाली की कल्पना की जा सकती है, जो कि सीपीयू द्वारा प्रयुक्त नहीं किया गया है। | ||
(रैखिक स्थान के प्रमुख शून्य, खंडित स्थान, और खंड और लक्ष्यांतर क्षेत्र स्पष्टता के लिए यहां दिखाए गए हैं। वे | (रैखिक स्थान के प्रमुख शून्य, खंडित स्थान, और खंड और लक्ष्यांतर क्षेत्र स्पष्टता के लिए यहां दिखाए गए हैं। वे सामान्यतः लुप्त हो जाते हैं।) | ||
वास्तविक प्रणाली का प्रभावी 20-अंश [[ पता स्थान | स्थान | वास्तविक प्रणाली का प्रभावी 20-अंश [[ पता स्थान |स्थान अन्तर]] जो [[ स्मृति पता |स्मृति स्थान]] को 2<sup>20</sup> जोड़ तक या 1,048,576 जोड़ (1 [[मेगाबाइट|स्पष्टजोड़]] ) तक सीमित करता है ,। यह सीधे इंटेल 8086 (और, बाद में संबंधित 8088 तक) के हार्डवेयर अभिकल्पना से प्राप्त हुआ, जिसमें मात्र 20 [[ पता बस |स्थान पंक्तियां]] थी। (दोनों को 40-खूंटी डीआईपी डिब्बो में बाँधा किया गया था, वह भी केवल 20 दक्षता रेखा के साथ। दक्षता और आंकड़े स्थान्तरण को सीमित खूंटी गणना के अंदर सभी रेखा को उपयुक्त करने के लिए बहुसंकेतित किया गया था।) | ||
प्रत्येक खंड रेखीय (सपाट) स्थान की | प्रत्येक खंड रेखीय (सपाट) स्थान की प्रारंभ से 16 जोड़ के गुणक से प्रारंभिक होता है, अर्थात 16 जोड़ के अंतराल पर जिसे अनुच्छेद कहा जाता है। चूंकि सभी खंड 64 केबी लंबे हैं, और यह बताते है कि खंड के बीच अधिव्यापन कैसे हो सकता है और रेखीय स्मृति दक्षता अंतराल में किसी भी स्थान को एक से अधिक खंड: लक्ष्यांतर जोड़े के साथ अभिगम किया जा सकता है। रेखीय स्थान में एक खंड की प्रारंभ के वास्तविक स्थान की गणना खंड×16 के साथ की जा सकती है। ओसीएच (12) का एक खंड मान रैखिक स्थान में ओसीएच (192) पर एक रैखिक स्थान देता है। इसके बाद दक्षता लक्ष्यांतर को इस नंबर में जोड़ा जा सकता है। ओसीएच अब ओएफएच (12:15) होगा, और सीओएच+ओएफएच=सीएफएच (192+15=207), सीएफएच (207) रेखीय स्थान होगा। इस तरह के दक्षता अनुवाद सीपीयू की विभाजन इकाई द्वारा किए जाते हैं। अंतिम खंड, एफएफएफएफएच (65535), रेखीय स्थान एफएफएफएफओएच (1048560) पर प्रारंभ होता है, और 20 अंश स्थान के अंत से 16 जोड़ पूर्व है, और इस प्रकार, 65,536−16 जोड़ से लेकर 65,520 (65536) तक लक्ष्यांतर के साथ पहुंच सकता है। यह जोड़ 20 अंश 8088 दक्षता अंतराल के अंत के बाद का है। 8088 पर, इन दक्षता अभिगम को दक्षता अंतराल की प्रारंभ में स्थापित किया गया था जैसे कि 65535:16 दक्षता 0 तक पहुंच जाएगा और 65533:1000 रेखीय दक्षता अंतराल के दक्षता 952 तक पहुंच जाएगा। क्रमादेशकों द्वारा इस सुविधा का उपयोग बाद की सीपीयू पीढ़ियों में [[गेट ए 20|मार्ग ए 20]] संगतता मुद्दों के कारण हुआ, जहां रेखीय स्थान को 20 अंश से आगे बढ़ाया गया था। | ||
16-अंश वास्तविक प्रणाली में, कई स्मृति खंड का उपयोग करने के लिए अनुप्रयोग को सक्षम करना (किसी एक | 16-अंश वास्तविक प्रणाली में, कई स्मृति खंड का उपयोग करने के लिए अनुप्रयोग को सक्षम करना (किसी एक 64के-खंड में उपलब्ध स्मृति से अधिक स्मृति तक पहुंचने के लिए) अधिक जटिल है, किन्तु इसे सभी के लिए आवश्यक बुराई के रूप में देखा गया था, किन्तु सबसे छोटे उपकरण ( कम स्मृति) के रूप मे है। समस्या की जड़ यह है कि संपूर्ण स्मृति श्रेणी के समतल दक्षता के लिए उपयुक्त कोई उपयुक्त स्थान अथार्त अंकगणितीय निर्देश उपलब्ध नहीं हैं। कई निर्देशों को प्रयुक्त करने से समतल दक्षता संभव है, जो चूंकि धीमे योजना की ओर ले जाता है। | ||
[[x86 मेमोरी मॉडल| | [[x86 मेमोरी मॉडल|एक्स86 स्मृति प्रतिरूप]] अवधारणा खंड पंजिका के व्यवस्था से निकली है। उदाहरण के लिए, जो छोटे प्रतिरूप सीएस=डीएस=एसएस में है, अर्थात योजना का संकेत, आंकड़े और स्तंभ सभी एक ही 64 केबी खंड में समाहित हैं। छोटे स्मृति प्रतिरूप डीएस=एसएस में समाहित हैं। इसलिए आंकड़े और स्तंभ दोनों एक ही खंड में रहते हैं; सीएस 64 केबी तक के अलग संकेत खंड की ओर संकेत करता है। | ||
== संरक्षित प्रणाली == | == संरक्षित प्रणाली == | ||
[[Image:Protected mode segments.svg|thumb|300px|left|स्थानीय | [[Image:Protected mode segments.svg|thumb|300px|left|स्थानीय वर्णनकर्ता तालिका के साथ संरक्षित प्रणाली स्मृति में तीन खंड (विस्तार करने के लिए छवि पर दबायें)।]] | ||
=== 80286 संरक्षित प्रणाली === | === 80286 संरक्षित प्रणाली === | ||
इंटेल 80286 का संरक्षित प्रणाली संसाधक | इंटेल 80286 का संरक्षित प्रणाली संसाधक के दक्षता अंतराल को 2<sup>24</sup> तक बढ़ा देता है, जो जोड़ (16 स्पष्ट जोड़) है, किन्तु यह परिवर्तन मान को समायोजित करके नहीं है। इसके अतिरिक्त, 16-अंश खंड पंजिका में अब 24-अंश आधार दक्षता वाले [[खंड वर्णनकर्ता]] की तालिका में एक निर्देशिका होता है जिसमें लक्ष्यांतर जोड़ा जाता है। पुराने सॉफ़्टवेयर का समर्थन करने के लिए, संसाधक वास्तविक प्रणाली में प्रारंभ होता है, ऐसी प्रणाली जिसमें यह 8086 के खंडित दक्षता प्रतिरूप का उपयोग करता है। चूंकि यह छोटा सा अंतर है: परिणामी भौतिक स्थान अब 20 अंश तक छोटा नहीं किया जाता है, इसलिए वास्तविक प्रणाली संकेत (किन्तु 8086 संकेत नहीं) अब 100000<sub>16</sub> के बीच के स्थानों को संदर्भित कर सकते हैं और 10एफएफइएफ<sub>16</sub>. स्मृति के लगभग 64-किलोबाईट क्षेत्र को उच्च स्मृति क्षेत्र (एचएमए) के रूप में जाना जाता था, और डीओएस के बाद के संस्करण इसका उपयोग उपलब्ध पारंपरिक स्मृति (अर्थात पूर्व स्पष्ट जोड़ के अंदर) को बढ़ाने के लिए कर सकते थे। एचएमए को जोड़ने के साथ, कुल स्थान लगभग 1.06 एमबी हो जाता है। चूंकि 80286 मुख्य-प्रणाली स्थानों को 20 अंश तक छोटा नहीं करता है, इसलिए 80286 वाला प्रणाली 21वीं दक्षता रेखा, [[ए 20 लाइन|ए 20 रेखा]] को अवरोधन बंद करके संसाधक के बाहरी हार्डवेयर के साथ ऐसा कर सकता है। आईबीएम पीसी एटी ने ऐसा करने के लिए हार्डवेयर प्रदान किया (मूल आईबीएम पीसी और आईबीएम पीसी/एक्सटी|पीसी/एक्सटी प्रतिरूप के लिए सॉफ़्टवेयर के साथ पूर्ण पश्चात संगतता के लिए) है, और इसलिए बाद के सभी आईबीएम पीसी/एटी-श्रेणी के पीसी प्रतिरूप ने भी समाहित किया है। | ||
286 संरक्षित प्रणाली का उपयोग | 286 संरक्षित प्रणाली का उपयोग संभवतः ही कभी किया गया था क्योंकि यह 8086/88 उपकरणों वाले उपयोगकर्ताओं के बड़े निकाय को बाहर कर देता था। इसके अतिरिक्त, यह अभी भी स्मृति को 64के खंड में विभाजित करने [[की]] आवश्यकता है जैसे वास्तविक प्रणाली में किया गया था। इस सीमा को 32-अंश सीपीयू पर काम किया जा सकता है जो आकार में 64केबी से अधिक स्मृति संकेत के उपयोग की अनुमति देता है, चूंकि खंड सीमा क्षेत्र केवल 24-अंश लंबा है, जो अधिकतम खंड आकार बनाया जा सकता है वह मात्र 16एमबी है (यद्यपि पृष्ठीकरण अधिक स्मृति आवंटित करने के लिए उपयोग किया जा सकता है, कोई भी व्यक्तिगत खंड 16एमबी से अधिक नहीं हो सकता है)। इस पद्धति का उपयोग सामान्यतः विंडोज 3एक्स अनुप्रयोगों पर समतल स्मृति अंतराल बनाने के लिए किया जाता था, चूंकि ओएस अभी भी 16-अंश था, 32-अंश निर्देशों के साथ एपीआई आह्वान नहीं की जा सकती था। इस प्रकार, 64के खंड में एपीआई आह्वान करने वाले सभी संकेतों को रखना अभी भी आवश्यक था। | ||
एक बार 286 संरक्षित प्रणाली | एक बार 286 संरक्षित प्रणाली प्रयुक्त हो जाने के बाद, इसे हार्डवेयर पुनः समायोजन करने के अतिरिक्त बाहर नहीं निकाला जा सकता है। बढ़ती आईबीएम पीसी/एटी मानक का पालन करने वाली उपकरणों मानकीकृत कुंजीपटल नियंत्रक के माध्यम से सीपीयू को पुनः समायोजन करने का ढोंग कर सकती हैं, किन्तु यह अधिक सुस्त था। विंडोज़ 3.एक्स ने सीपीयू के अवरोध-प्रबंधन तंत्र में जानबूझकर [[ ट्रिपल दोष |त्रिपक्षीय दोष]] को प्रवर्तन करके इन दोनों समस्याओं के आसपास काम किया, जिससे सीपीयू वास्तविक प्रणाली में तुरंत वापस आ जाएगा।<ref>{{Cite web|url=http://blogs.msdn.com/b/larryosterman/archive/2005/02/08/369243.aspx|title = DevBlogs}}</ref> | ||
=== विस्तृत विभाजन इकाई कार्यप्रवाह === | === विस्तृत विभाजन इकाई कार्यप्रवाह === | ||
एक | एक तर्कसंगत स्थान में 16-अंश खंड चयनकर्ता (13+1 स्थान अंश की आपूर्ति) और 16-अंश लक्ष्यांतर होता है। खंड चयनकर्ता को खंड पंजिका में से एक में स्थित होना चाहिए। उस चयनकर्ता में 2-अंश निवेदन विशेषाधिकार स्तर (आरपीएल), 1-अंश तालिका सूचक (टीआई) और 13-अंश निर्देशिका होती है। | ||
किसी दिए गए | किसी दिए गए तर्कसंगत दक्षता के अनुवाद का प्रयास करते समय, संसाधक 64-अंश [[ खंड वर्णनकर्ता |खंड वर्णनकर्ता]] संरचना को [[ग्लोबल डिस्क्रिप्टर टेबल|वैश्विक वर्णनकर्ता तालिका]] से पढ़ता है जब टीआई = 0 या [[ स्थानीय वर्णनकर्ता तालिका |स्थानीय वर्णनकर्ता तालिका]] जब टीआई= 1 होता है। यह तब विशेषाधिकार नियंत्रण करता है: | ||
: | : अधिकतम (सीपीएल, आरपीएल) ≤ डीपीएल | ||
यहाँ सीपीएल वर्तमान [[विशेषाधिकार स्तर]] है (सीएस पंजिका के निचले 2 अंश में पाया जाता है), आरपीएल खंड चयनकर्ता से अनुरोधित विशेषाधिकार स्तर है, और डीपीएल खंड का वर्णनकर्ता विशेषाधिकार स्तर है (यह विवरणकर्ता में पाया जाता है)। सभी विशेषाधिकार स्तर 0-3 की सीमा में पूर्णांक हैं, जहाँ सबसे कम संख्या उच्चतम विशेषाधिकार के अनुरुप होती है। | |||
यदि असमानता गलत है, तो संसाधक | यदि असमानता गलत है, तो संसाधक सामान्य सुरक्षा (जीपी) दोष उत्पन्न करता है। अन्यथा, स्थान अंतरण निरंतर बना रहता है। संसाधक तब 32-अंश या 16-अंश लक्ष्यांतर लेता है, और इसकी तुलना खंड वर्णनकर्ता में निर्दिष्ट खंड सीमा से करता है और यदि यह बड़ा है, तो यह जीपी दोष उत्पन्न होता है। अन्यथा, संसाधक 24-अंश खंड आधार पर जोड़ता है। वर्णनकर्ता में निर्दिष्ट और लक्ष्यांतर में एक रेखीय भौतिक स्थान बनाता है। | ||
जब खंड पंजिका भारित हो जाती है, तब विशेषाधिकार नियंत्रण किया जाता है, क्योंकि खंड वर्णनकर्ता को खंड पंजिकों के लुप्त हुए हिस्सों में भंडार किया जाता है।<ref name=Arch>"Intel 64 and IA-32 Architectures Software Developer's Manual", Volume 3, "System Programming Guide", published in 2011, Page "Vol. 3A 3-11", the book is written: "''Every segment register has a “visible” part and a “hidden” part. (The hidden part is sometimes referred to as a “descriptor cache” or a “shadow register.”) When a segment selector is loaded into the visible part of a segment register, the processor also loads the hidden part of the segment register with the base address, segment limit, and access control information from the segment descriptor pointed to by the segment selector. The information cached in the segment register (visible and hidden) allows the processor to translate addresses without taking extra bus cycles to read the base address and limit from the segment descriptor.''"</ref> | |||
=== 80386 संरक्षित प्रणाली === | === 80386 संरक्षित प्रणाली === | ||
इंटेल 80386 और | इंटेल 80386 और इसके उपरान्त, 80286 संरक्षित प्रणाली के विभाजन तंत्र को निरंतर बनाये रखता है, किन्तु विभाजन इकाई और भौतिक स्थान्तरण के बीच स्थान अनुवाद की दूसरी परत के रूप में [[पेजिंग|पृष्ठीकरण]] इकाई को जोड़ा गया है। इसके अतिरिक्त, महत्वपूर्ण बात यह है कि दक्षता लक्ष्यांतर 32-अंश (16-अंश के अतिरिक्त) हैं, और प्रत्येक खंड वर्णनकर्ता में खंड आधार भी 32-अंश (24-अंश के अतिरिक्त) है। विभाजन इकाई का संचालन सामान्य है अन्यथा यह अपरिवर्तित होता है। पृष्ठन इकाई सक्षम या अक्षम हो सकती है; यदि इसको अक्षम किया गया है, तो इसका संचालन 80286 के समान होता है। यदि पृष्ठीकरण इकाई सक्षम है, तो खंड में इसका स्थान भौतिक स्थान के अतिरिक्त आभासी होता हैं, जैसा कि अक्षम के 80286 पर स्थिति था, जब पृष्ठीकरण इकाई सक्षम होती है तब अंतिम 32-अंश स्थान दो को संयोजित करके प्राप्त विभाजन इकाई का सभी आभासी (या तर्कसंगत) स्थान होता हैं। जब विभाजन इकाई इन 32-अंश आभासी स्थानों को उत्पन्न और मान्य करती है, तो सक्षम पृष्ठीकरण इकाई अंत में इन आभासी स्थानों को भौतिक स्थानों में बदल देती है। इंटेल 80386 पर भौतिक स्थान 32-अंश हैं, किन्तु नए संसाधक पर यह बड़े हो सकते हैं जो भौतिक स्थान प्रारूप का समर्थन करते हैं। | ||
80386 ने चार खंड पंजिका | 80386 ने चार खंड पंजिका (सीएस, डीएस, ईएस, और एसएस) के मूल समूह में दो नए सामान्य-उद्देश्य आंकड़े खंड पंजिका, एफएस और जीएस को भी प्रस्तावित किया है। | ||
एक 386 | एक 386 सीपीयू को सीआरओ नियंत्रण पंजिका में थोड़ा सा शोधन करके वास्तविक प्रणाली में पुन: रखा जा सकता है, चूंकि सुरक्षा और दृढ़ता को प्रयुक्त करने के लिए यह विशेषाधिकार प्राप्त संचालन है। इसकी तुलना के माध्यम से, एक 286 को केवल संसाधक पुनः समायोजन के लिए प्रेरक करके वास्तविक प्रणाली में लौटाया जा सकता है, उदाहरण: त्रिपक्षीय दोष या बाहरी हार्डवेयर का उपयोग करके। | ||
== | == पश्चात् के घटनाक्रम == | ||
उदाहरण के लिए, | एक्स86-64 संरचना लंबे प्रणाली (64-अंश प्रणाली) में विभाजन का उपयोग नहीं करता है। खंड पंजिका में से चार, सीएस, एसएस, डीएस, और ईएस, आधार स्थान 0 और 2<sup>64 की सीमा के लिए प्रेरक हैं। खंड पंजिका एफएस और जीएस में अभी भी गैर-शून्य आधार स्थान हो सकता है। यह परिचालन प्रणाली को इन खंडों के विशेष उद्देश्यों के लिए उपयोग करने की अनुमति देता है। विरासत प्रणाली द्वारा उपयोग किए जाने वाले वैश्विक विवरण तालिका तंत्र के विपरीत, इन पदों के आधार स्थान प्रतिरूप-विशिष्ट पंजिका में संग्रहीत होता है। एक्स86-64 संरचना विशेष रूप से एसडब्लूएपीजीएस निर्देश प्रदान करता है,जो मूल मोड और उपयोगकर्ता मोड आधार स्थितियों को अदला-बदली करने की अनुमति देता है। उदाहरण के लिए, एक्स86-64 पर माइक्रोसॉफ़्ट विंडोज़ जीएस खंड का उपयोग सूत्र सूचना खंड को इंगित करने के लिए करता है, प्रत्येक सूत्र (कंप्यूटर विज्ञान) के लिए छोटी आंकड़े संरचना है , जिसमें अपवाद प्रबंधन, सूत्र-स्थानीय चर और अन्य प्रति के बारे में जानकारी सम्मिलित है। इसी तरह, सूत्र स्थिति मे लिनक्स कर्नेल प्रति सीपीयू आंकड़े संचय करने के लिए जीएस खंड का उपयोग करता है। | ||
जीएस/एफएस का उपयोग [[जीएनयू संकलक संग्रह]] के [[थ्रेड-लोकल स्टोरेज|सूत्र-सार्वजनिक संचयन]] और कैनरी-आधारित स्तंभ संरक्षक में भी किया जाता है। | |||
== अभ्यास == | == अभ्यास == | ||
तर्कसंगत स्थानों को [[x86 असेंबली भाषा|एक्स86 समुच्चय भाषा]] में स्पष्ट रूप से निर्दिष्ट किया जा सकता है, उदाहरण: (एटी और टी वाक्य - विन्यास है) | |||
movl $42, %fs:(% | movl $42, %fs:(%eaएक्स);के बराबर में M[fs:eaएक्स]<-42) | ||
या [[इंटेल सिंटैक्स]] में: | या [[इंटेल सिंटैक्स]] में: | ||
Line 85: | Line 83: | ||
mov dword [fs:eax], 42 | mov dword [fs:eax], 42 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
चूंकि, खंड पंजिका का उपयोग सामान्यतः निहित रूप से किया जाता है। | |||
* सभी सीपीयू निर्देश सीएस पंजिका | * सभी सीपीयू निर्देश सीएस पंजिका में रखे गए खंड चयनकर्ता द्वारा निर्दिष्ट संकेत खंड से निहित रूप से प्राप्त किए जाते हैं। | ||
* अधिकांश स्मृति संदर्भ डीएस पंजिका | * अधिकांश स्मृति संदर्भ डीएस पंजिका में रखे गए खंड चयनकर्ता द्वारा निर्दिष्ट आंकड़े खंड से आते हैं। ये इएस पंजिका में रखे गए खंड चयनकर्ता द्वारा निर्दिष्ट अतिरिक्त खंड से भी आ सकते हैं, यदि एक खंड-अवहेलना उपसर्ग उस निर्देश से पूर्व आता है जो स्मृति संदर्भ बनाता है। अधिकांश, सभी निर्देश नहीं है जो व्यतिक्रम रूप से डीएस का उपयोग करते हैं, एक इएस अवहेलना उपसर्ग को स्वीकार करते है। | ||
* संसाधक | * संसाधक [[रन-टाइम स्टैक|चाल-अवधि स्तंभ]] संदर्भ, या तो निहित रूप से (जैसे ' दबाना' और 'त्वरित ' निर्देश) या स्पष्ट रूप से [[स्टैक-आधारित मेमोरी आवंटन|स्तंभ-आधारित स्मृति आवंटन]] है| (ई) एसपी या (ई) बीपी पंजिका का और स्मृति अभिगम निर्दिष्ट स्तंभ खंड का उपयोग करें एसएस पंजिका में उपस्थित खंड चयनकर्ता द्वारा सम्मलित है। | ||
* [[x86 स्ट्रिंग निर्देश| | * [[x86 स्ट्रिंग निर्देश|एक्स86 श्रृंखला निर्देश]] (जैसे 'एसटीओएस', 'एमओवीएस') आंकड़े खंड के साथ, इएस पंजिका में रखे गए खंड चयनकर्ता द्वारा निर्दिष्ट अतिरिक्त खंड का भी उपयोग करते हैं। | ||
विभाजन को | विभाजन को एक्स86-32 संसाधक पर बंद नहीं किया जा सकता है (यह 64-अंश प्रणाली के लिए भी सही है, किन्तु यह विचार के सीमा से भिन्नहै), विभाजन को कार्यक्रमों के प्रति तटस्थ बनाने के लिए अनेक 32-अंश परिचालन प्रणाली सभी खंड के आधार को 0 पर समूह करके एक [[फ्लैट मेमोरी मॉडल|समतल स्मृति प्रतिरूप]] का अनुकरण करते हैं। उदाहरण के लिए, लिनक्स कर्नेल मात्र 4 सामान्य प्रयोजन खंड स्थापित करता है। | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 98: | Line 96: | ||
! Name !! Description !! Base !! Limit !! [[Descriptor Privilege Level|DPL]] | ! Name !! Description !! Base !! Limit !! [[Descriptor Privilege Level|DPL]] | ||
|- | |- | ||
| | | __ मूल_सीएस || मूल संकेत खंड || 0 || 4 GiB || 0 | ||
|- | |- | ||
| | | __ मूल_डीएस || मूल आंकड़े खंड || 0 || 4 GiB || 0 | ||
|- | |- | ||
| | | __उपयोगकर्ता_सीएस || उपयोगकर्ता संकेत खंड || 0 || 4 GiB || 3 | ||
|- | |- | ||
| | | __उपयोगकर्ता_डीएस || उपयोगकर्ता आंकड़े खंड || 0 || 4 GiB || 3 | ||
|} | |} | ||
चूंकि आधार सभी | चूंकि आधार सभी स्थितियों में पृष्ठन समूह है और 4 जीआईबी की सीमा है। पृष्ठीकरण इकाई पर पहुंचने से पूर्व विभाजन इकाई कार्यक्रम के मुद्दों को प्रभावित नहीं करती है। (यह निश्चित रूप से 80386 और बाद के संसाधक को संदर्भित करता है, क्योंकि पूर्व के एक्स86 संसाधक में पृष्ठीकरण इकाई नहीं है।) | ||
वर्तमान लिनक्स | वर्तमान लिनक्स सूत्र-सार्वजनिक संचयन को इंगित करने के लिए जीएस का भी उपयोग करता है। | ||
खंड को | खंड को संकेत, आंकड़े या प्रणाली खंड के रूप में परिभाषित किया जा सकता है। खंड को केवल पढ़ने, लिखने एवं निष्पादित करने आदि के लिए अतिरिक्त अनुमति अंश उपस्थित होती हैं। | ||
संरक्षित प्रणाली में, | संरक्षित प्रणाली में, संकेत सदैव सीएस ( संकेत खंड चयनकर्ता) को छोड़कर सभी खंड पंजिका को संशोधित कर सकता है। ऐसा इसलिए है क्योंकि संसाधक का वर्तमान विशेषाधिकार स्तर (सीपीएल) सीएस पंजिका के निचले 2 अंश में संग्रहीत है। संसाधक विशेषाधिकार स्तर (और सीएस को पुनः भार करने) को बढ़ाने का एकमात्र 'आह्वान' (दूरस्थ आह्वान) और आईएनटी (एक्स86 निर्देश) विधि है | 'आईएनटी' एक (व्यवधान) निर्देश हैं। इसी तरह, विशेषाधिकार स्तर (और सीएस को पुनः भार करने) को कम करने का एकमात्र विधि 'एलआरआईटी' (दूर वापसी) और 'एलआरआईटी' (व्यवधान वापसी) निर्देश हैं। वास्तविक प्रणाली में, संकेत दूर तक स्थांतरण करके (या एक अप्रमाणित का उपयोग करके) सीएस पंजिका को संशोधित भी कर सकता है उदाहरण: पीओपी <code>सीएस</code> 8086 या 8088 पर निर्देश है।<ref><code>POP CS</code> must be used with extreme care and has limited usefulness, because it immediately changes the effective address that will be computed from the instruction pointer to fetch the next instruction. Generally, a far jump is much more useful. The existence of <code>POP CS</code> is probably an accident, as it follows a pattern of PUSH and POP instruction opcodes for the four segment registers on the 8086 and 8088.</ref> वास्तविक प्रणाली में, कोई विशेषाधिकार स्तर नहीं हैं; सभी योजनाओंं में सभी स्मृति और सभी सीपीयू निर्देशों तक पूर्ण अनियंत्रित पहुंच होती है। | ||
विभाजन के बारे में अधिक जानकारी के लिए, [[एएमडी]] या [[इंटेल]] वेबसाइटों पर स्वतंत्र रूप से उपलब्ध [[आईए-32]] | विभाजन के बारे में अधिक जानकारी के लिए, [[एएमडी]] या [[इंटेल]] वेबसाइटों पर स्वतंत्र रूप से उपलब्ध [[आईए-32]] नियमावली देखें। | ||
== नोट्स और संदर्भ == | == नोट्स और संदर्भ == | ||
Line 120: | Line 118: | ||
== यह भी देखें == | == यह भी देखें == | ||
* | * एक्स86 स्मृति प्रतिरूप | ||
* [[मल्टीप्रोग्रामिंग सिस्टम|मल्टीप्रोग्रामिंग प्रणाली]] | * [[मल्टीप्रोग्रामिंग सिस्टम|मल्टीप्रोग्रामिंग प्रणाली]] | ||
* [[स्प्लिट ऑक्टल]] | * [[स्प्लिट ऑक्टल]] | ||
Line 129: | Line 127: | ||
{{Memory management}} | {{Memory management}} | ||
[[de:Segmentierung (Speicherverwaltung)]] | [[de:Segmentierung (Speicherverwaltung)]] | ||
Line 135: | Line 133: | ||
[[ja:セグメント方式]] | [[ja:セグメント方式]] | ||
[[Category:Collapse templates]] | |||
[[Category: | |||
[[Category:Created On 26/04/2023]] | [[Category:Created On 26/04/2023]] | ||
[[Category:Lua-based templates]] | |||
[[Category:Machine Translated Page]] | |||
[[Category:Navigational boxes| ]] | |||
[[Category:Navigational boxes without horizontal lists]] | |||
[[Category:Pages with script errors]] | |||
[[Category:Sidebars with styles needing conversion]] | |||
[[Category:Template documentation pages|Documentation/doc]] | |||
[[Category:Templates Vigyan Ready]] | |||
[[Category:Templates generating microformats]] | |||
[[Category:Templates that add a tracking category]] | |||
[[Category:Templates that are not mobile friendly]] | |||
[[Category:Templates that generate short descriptions]] | |||
[[Category:Templates using TemplateData]] | |||
[[Category:Wikipedia metatemplates]] | |||
[[Category:X86 मेमोरी प्रबंधन]] |
Latest revision as of 09:56, 17 May 2023
एक्स86 स्मृति विभाजन अथार्त इंटेल एक्स86 कंप्यूटर निर्देश समूह वास्तुकला में स्मृति विभाजन के कार्यान्वयन को संदर्भित करता है। 1978 में इंटेल 8086 पर विभाजन क्रिया प्रारंभ की गई थी, जिससे कार्यक्रमों को 64 केबी (65,536 जोड़ ) से अधिक स्मृति को संबोधित करने की अनुमति मिल सके। इंटेल 80286 ने 1982 में विभाजन का दूसरा संस्करण प्रस्तावित किया जिसमें आभासी स्मृति और स्मृति सुरक्षा के लिए समर्थन जोड़ा गया। इस बिंदु पर मूल प्रणाली का नाम बदलकर वास्तविक प्रणाली कर दिया गया था, और नए संस्करण को संरक्षित प्रणाली नाम दिया गया था। 2003 में प्रस्तावित किए गए एक्स86-64 संरचना ने 64-अंश प्रणाली में विभाजन के लिए अत्याधिक सीमा तक समर्थन छोड़ दिया था।
वास्तविक और संरक्षित दोनों प्रणाली में, वास्तविक स्मृति दक्षता प्राप्त करने के लिए प्रणाली 16-अंश खंड पंजिका का उपयोग करता है। वास्तविक प्रणाली में, सीएस, डीएस, एसएस और इएस पंजिका वर्तमान में उपयोग किए गए योजना संकेत खंड (सीएस), वर्तमान आंकड़े खंड (डीएस), वर्तमान कॉल स्टैक (आह्वान स्तंभ)(एसएस), और एक अतिरिक्त खंड की ओर संकेत करते हैं। यह क्रमादेशक (ईएस) द्वारा निर्धारित किया गया है। 1985 में प्रस्तावित किया गया इंटेल 80386, दो अतिरिक्त खंड पंजिका, एफएस और जीएस को जोड़ता है, जिसमें हार्डवेयर द्वारा परिभाषित का कोई विशिष्ट उपयोग नहीं है। जिस तरह से खंड पंजिका का उपयोग किया जाता है, वह दो प्रणाली के बीच भिन्न होता है।[1]
क्रियान्वित किए जा रहे कार्य के अनुसार खंड का विकल्प सामान्यतः संसाधक व्यतिक्रम द्वारा की जाती है और निर्देश सदैव संकेत खंड से प्राप्त किए जाते हैं। कोई भी स्तंभ दबाना या त्वरित या कोई भी आंकड़े संदर्भ जो स्तंभ का जिक्र करते है, वह स्तंभ खंड का उपयोग करते है। आंकड़ो के अन्य सभी संदर्भ आंकड़े खंड का उपयोग करते हैं। अतिरिक्त खंड श्रृंखला संचालन के लिए व्यतिक्रम गंतव्य है (उदाहरण के लिए एमओवीएस या सीएमपीएस है)। एफएस और जीएस के पास हार्डवेयर- नियुक्त किए गए पर इनका उपयोग नहीं हैं। निर्देश प्रारूप वैकल्पिक खंड है जो उपसर्ग काटने की अनुमति देता है। जिसका उपयोग वांछित होने पर चयनित निर्देशों के लिए व्यतिक्रम खंड को अवहेलना करने के लिए किया जा सकता है।[2]
पूर्णतः प्रणाली
पूर्णतः प्रणाली या वी 8086 प्रणाली में खंड का आकार 1 जोड़ से लेकर 65,536 जोड़ (16-अंश लक्ष्यांतर का उपयोग करके) तक हो सकता है।
खंड पंजिका में 16-अंश खंड चयनकर्ता को रैखिक 20-अंश दक्षता के सबसे महत्वपूर्ण 16 अंश के रूप में व्याख्या किया जाता है। जिसे खंड दक्षता कहा जाता है, जिसमें से शेष चार सबसे कम महत्वपूर्ण अंश सभी शून्य हैं। खंड स्थान सदैव एक रेखीय स्थान प्राप्त करने के निर्देश में 16-अंश लक्ष्यांतर में जोड़ा जाता है, जो इस प्रणाली में भौतिक स्थान के समान होता है। उदाहरण के लिए, खंडित स्थान 06इएफएच:1234एच (यहाँ प्रत्यय एचका अर्थ हेक्साडेसिमल है) में 06इएफएच का एक खंड चयनकर्ता है, जो 06 इएफओएच के एक खंड स्थान का प्रतिनिधित्व करता है, जिसमें लक्ष्यांतर जोड़ा जाता है, जिससे रैखिक स्थान 06 इएफओएच + 1234एच = 08124एच प्राप्त होता है।
0000 0110 1110 1111 0000
|
खंड | 16 जोड़ , स्थान्तरण 4 जोड़ विरूध्द पक्ष (और गुणा किया 0एक्स10) |
---|---|---|
+ 0001 0010 0011 0100
|
लक्ष्यांतर | 16 जोड़ |
|
||
0000 1000 0001 0010 0100
|
स्थान | 20 जोड़ |
जिस तरह से खंड दक्षता और लक्ष्यांतर जोड़े जाते हैं, उसके कारण पृथक रेखीय दक्षता को तक प्रतिचित्र किया जा सकता है। 212 = 4096 विशिष्ट खंड: लक्ष्यांतर जोड़े है। उदाहरण के लिए, रैखिक स्थान 08124एच में खंडित स्थान हो सकते हैं। उदाहरण 06 इएफएच:1234एच, 0812एच:0004एच, 0000एच:8124एच, आदि है।
यह अद्वितीय दक्षता योजनाओं के आदी क्रमादेशकों के लिए भ्रमित करने वाला हो सकता है, किन्तु इसका उपयोग लाभ के लिए भी किया जा सकता है।उदाहरण के लिए कई स्थिर आंकड़े संरचनाओं को संबोधित करते समय अलग होते है, जबकि वास्तविक प्रणाली खंड सदैव 64 के बी लंबे होते हैं। व्यावहारिक प्रभाव केवल यह है कि कोई भी खंड 64 केबी से अधिक लंबा नहीं हो सकता है, इसके अतिरिक्त प्रत्येक खंड 64 केबी लंबा ही होना चाहिए। क्योंकि वास्तविक प्रणाली में कोई सुरक्षा या विशेषाधिकार सीमा नहीं है, तथापि एक खंड को 64 केबी से छोटा परिभाषित किया जा सकता है, फिर भी यह पूरी तरह से कार्यक्रमों पर निर्भर करेगा कि वे समन्वय करें और अपने खंडों की सीमा के अंदर रखें, जैसा कि कोई भी कार्यक्रम कर सकता है। चूंकि यह इच्छानुसार से खंड चयनकर्ताओं को बिना किसी पर्यवेक्षण के खंड स्थान बदलने के लिए समूह कर सकता है। इसलिए, 1 से 65,536 जोड़ की सीमा में प्रत्येक खंड के लिए एक चर लंबाई होने के रूप में वास्तविक प्रणाली की कल्पना की जा सकती है, जो कि सीपीयू द्वारा प्रयुक्त नहीं किया गया है।
(रैखिक स्थान के प्रमुख शून्य, खंडित स्थान, और खंड और लक्ष्यांतर क्षेत्र स्पष्टता के लिए यहां दिखाए गए हैं। वे सामान्यतः लुप्त हो जाते हैं।)
वास्तविक प्रणाली का प्रभावी 20-अंश स्थान अन्तर जो स्मृति स्थान को 220 जोड़ तक या 1,048,576 जोड़ (1 स्पष्टजोड़ ) तक सीमित करता है ,। यह सीधे इंटेल 8086 (और, बाद में संबंधित 8088 तक) के हार्डवेयर अभिकल्पना से प्राप्त हुआ, जिसमें मात्र 20 स्थान पंक्तियां थी। (दोनों को 40-खूंटी डीआईपी डिब्बो में बाँधा किया गया था, वह भी केवल 20 दक्षता रेखा के साथ। दक्षता और आंकड़े स्थान्तरण को सीमित खूंटी गणना के अंदर सभी रेखा को उपयुक्त करने के लिए बहुसंकेतित किया गया था।)
प्रत्येक खंड रेखीय (सपाट) स्थान की प्रारंभ से 16 जोड़ के गुणक से प्रारंभिक होता है, अर्थात 16 जोड़ के अंतराल पर जिसे अनुच्छेद कहा जाता है। चूंकि सभी खंड 64 केबी लंबे हैं, और यह बताते है कि खंड के बीच अधिव्यापन कैसे हो सकता है और रेखीय स्मृति दक्षता अंतराल में किसी भी स्थान को एक से अधिक खंड: लक्ष्यांतर जोड़े के साथ अभिगम किया जा सकता है। रेखीय स्थान में एक खंड की प्रारंभ के वास्तविक स्थान की गणना खंड×16 के साथ की जा सकती है। ओसीएच (12) का एक खंड मान रैखिक स्थान में ओसीएच (192) पर एक रैखिक स्थान देता है। इसके बाद दक्षता लक्ष्यांतर को इस नंबर में जोड़ा जा सकता है। ओसीएच अब ओएफएच (12:15) होगा, और सीओएच+ओएफएच=सीएफएच (192+15=207), सीएफएच (207) रेखीय स्थान होगा। इस तरह के दक्षता अनुवाद सीपीयू की विभाजन इकाई द्वारा किए जाते हैं। अंतिम खंड, एफएफएफएफएच (65535), रेखीय स्थान एफएफएफएफओएच (1048560) पर प्रारंभ होता है, और 20 अंश स्थान के अंत से 16 जोड़ पूर्व है, और इस प्रकार, 65,536−16 जोड़ से लेकर 65,520 (65536) तक लक्ष्यांतर के साथ पहुंच सकता है। यह जोड़ 20 अंश 8088 दक्षता अंतराल के अंत के बाद का है। 8088 पर, इन दक्षता अभिगम को दक्षता अंतराल की प्रारंभ में स्थापित किया गया था जैसे कि 65535:16 दक्षता 0 तक पहुंच जाएगा और 65533:1000 रेखीय दक्षता अंतराल के दक्षता 952 तक पहुंच जाएगा। क्रमादेशकों द्वारा इस सुविधा का उपयोग बाद की सीपीयू पीढ़ियों में मार्ग ए 20 संगतता मुद्दों के कारण हुआ, जहां रेखीय स्थान को 20 अंश से आगे बढ़ाया गया था।
16-अंश वास्तविक प्रणाली में, कई स्मृति खंड का उपयोग करने के लिए अनुप्रयोग को सक्षम करना (किसी एक 64के-खंड में उपलब्ध स्मृति से अधिक स्मृति तक पहुंचने के लिए) अधिक जटिल है, किन्तु इसे सभी के लिए आवश्यक बुराई के रूप में देखा गया था, किन्तु सबसे छोटे उपकरण ( कम स्मृति) के रूप मे है। समस्या की जड़ यह है कि संपूर्ण स्मृति श्रेणी के समतल दक्षता के लिए उपयुक्त कोई उपयुक्त स्थान अथार्त अंकगणितीय निर्देश उपलब्ध नहीं हैं। कई निर्देशों को प्रयुक्त करने से समतल दक्षता संभव है, जो चूंकि धीमे योजना की ओर ले जाता है।
एक्स86 स्मृति प्रतिरूप अवधारणा खंड पंजिका के व्यवस्था से निकली है। उदाहरण के लिए, जो छोटे प्रतिरूप सीएस=डीएस=एसएस में है, अर्थात योजना का संकेत, आंकड़े और स्तंभ सभी एक ही 64 केबी खंड में समाहित हैं। छोटे स्मृति प्रतिरूप डीएस=एसएस में समाहित हैं। इसलिए आंकड़े और स्तंभ दोनों एक ही खंड में रहते हैं; सीएस 64 केबी तक के अलग संकेत खंड की ओर संकेत करता है।
संरक्षित प्रणाली
80286 संरक्षित प्रणाली
इंटेल 80286 का संरक्षित प्रणाली संसाधक के दक्षता अंतराल को 224 तक बढ़ा देता है, जो जोड़ (16 स्पष्ट जोड़) है, किन्तु यह परिवर्तन मान को समायोजित करके नहीं है। इसके अतिरिक्त, 16-अंश खंड पंजिका में अब 24-अंश आधार दक्षता वाले खंड वर्णनकर्ता की तालिका में एक निर्देशिका होता है जिसमें लक्ष्यांतर जोड़ा जाता है। पुराने सॉफ़्टवेयर का समर्थन करने के लिए, संसाधक वास्तविक प्रणाली में प्रारंभ होता है, ऐसी प्रणाली जिसमें यह 8086 के खंडित दक्षता प्रतिरूप का उपयोग करता है। चूंकि यह छोटा सा अंतर है: परिणामी भौतिक स्थान अब 20 अंश तक छोटा नहीं किया जाता है, इसलिए वास्तविक प्रणाली संकेत (किन्तु 8086 संकेत नहीं) अब 10000016 के बीच के स्थानों को संदर्भित कर सकते हैं और 10एफएफइएफ16. स्मृति के लगभग 64-किलोबाईट क्षेत्र को उच्च स्मृति क्षेत्र (एचएमए) के रूप में जाना जाता था, और डीओएस के बाद के संस्करण इसका उपयोग उपलब्ध पारंपरिक स्मृति (अर्थात पूर्व स्पष्ट जोड़ के अंदर) को बढ़ाने के लिए कर सकते थे। एचएमए को जोड़ने के साथ, कुल स्थान लगभग 1.06 एमबी हो जाता है। चूंकि 80286 मुख्य-प्रणाली स्थानों को 20 अंश तक छोटा नहीं करता है, इसलिए 80286 वाला प्रणाली 21वीं दक्षता रेखा, ए 20 रेखा को अवरोधन बंद करके संसाधक के बाहरी हार्डवेयर के साथ ऐसा कर सकता है। आईबीएम पीसी एटी ने ऐसा करने के लिए हार्डवेयर प्रदान किया (मूल आईबीएम पीसी और आईबीएम पीसी/एक्सटी|पीसी/एक्सटी प्रतिरूप के लिए सॉफ़्टवेयर के साथ पूर्ण पश्चात संगतता के लिए) है, और इसलिए बाद के सभी आईबीएम पीसी/एटी-श्रेणी के पीसी प्रतिरूप ने भी समाहित किया है।
286 संरक्षित प्रणाली का उपयोग संभवतः ही कभी किया गया था क्योंकि यह 8086/88 उपकरणों वाले उपयोगकर्ताओं के बड़े निकाय को बाहर कर देता था। इसके अतिरिक्त, यह अभी भी स्मृति को 64के खंड में विभाजित करने की आवश्यकता है जैसे वास्तविक प्रणाली में किया गया था। इस सीमा को 32-अंश सीपीयू पर काम किया जा सकता है जो आकार में 64केबी से अधिक स्मृति संकेत के उपयोग की अनुमति देता है, चूंकि खंड सीमा क्षेत्र केवल 24-अंश लंबा है, जो अधिकतम खंड आकार बनाया जा सकता है वह मात्र 16एमबी है (यद्यपि पृष्ठीकरण अधिक स्मृति आवंटित करने के लिए उपयोग किया जा सकता है, कोई भी व्यक्तिगत खंड 16एमबी से अधिक नहीं हो सकता है)। इस पद्धति का उपयोग सामान्यतः विंडोज 3एक्स अनुप्रयोगों पर समतल स्मृति अंतराल बनाने के लिए किया जाता था, चूंकि ओएस अभी भी 16-अंश था, 32-अंश निर्देशों के साथ एपीआई आह्वान नहीं की जा सकती था। इस प्रकार, 64के खंड में एपीआई आह्वान करने वाले सभी संकेतों को रखना अभी भी आवश्यक था।
एक बार 286 संरक्षित प्रणाली प्रयुक्त हो जाने के बाद, इसे हार्डवेयर पुनः समायोजन करने के अतिरिक्त बाहर नहीं निकाला जा सकता है। बढ़ती आईबीएम पीसी/एटी मानक का पालन करने वाली उपकरणों मानकीकृत कुंजीपटल नियंत्रक के माध्यम से सीपीयू को पुनः समायोजन करने का ढोंग कर सकती हैं, किन्तु यह अधिक सुस्त था। विंडोज़ 3.एक्स ने सीपीयू के अवरोध-प्रबंधन तंत्र में जानबूझकर त्रिपक्षीय दोष को प्रवर्तन करके इन दोनों समस्याओं के आसपास काम किया, जिससे सीपीयू वास्तविक प्रणाली में तुरंत वापस आ जाएगा।[3]
विस्तृत विभाजन इकाई कार्यप्रवाह
एक तर्कसंगत स्थान में 16-अंश खंड चयनकर्ता (13+1 स्थान अंश की आपूर्ति) और 16-अंश लक्ष्यांतर होता है। खंड चयनकर्ता को खंड पंजिका में से एक में स्थित होना चाहिए। उस चयनकर्ता में 2-अंश निवेदन विशेषाधिकार स्तर (आरपीएल), 1-अंश तालिका सूचक (टीआई) और 13-अंश निर्देशिका होती है।
किसी दिए गए तर्कसंगत दक्षता के अनुवाद का प्रयास करते समय, संसाधक 64-अंश खंड वर्णनकर्ता संरचना को वैश्विक वर्णनकर्ता तालिका से पढ़ता है जब टीआई = 0 या स्थानीय वर्णनकर्ता तालिका जब टीआई= 1 होता है। यह तब विशेषाधिकार नियंत्रण करता है:
- अधिकतम (सीपीएल, आरपीएल) ≤ डीपीएल
यहाँ सीपीएल वर्तमान विशेषाधिकार स्तर है (सीएस पंजिका के निचले 2 अंश में पाया जाता है), आरपीएल खंड चयनकर्ता से अनुरोधित विशेषाधिकार स्तर है, और डीपीएल खंड का वर्णनकर्ता विशेषाधिकार स्तर है (यह विवरणकर्ता में पाया जाता है)। सभी विशेषाधिकार स्तर 0-3 की सीमा में पूर्णांक हैं, जहाँ सबसे कम संख्या उच्चतम विशेषाधिकार के अनुरुप होती है।
यदि असमानता गलत है, तो संसाधक सामान्य सुरक्षा (जीपी) दोष उत्पन्न करता है। अन्यथा, स्थान अंतरण निरंतर बना रहता है। संसाधक तब 32-अंश या 16-अंश लक्ष्यांतर लेता है, और इसकी तुलना खंड वर्णनकर्ता में निर्दिष्ट खंड सीमा से करता है और यदि यह बड़ा है, तो यह जीपी दोष उत्पन्न होता है। अन्यथा, संसाधक 24-अंश खंड आधार पर जोड़ता है। वर्णनकर्ता में निर्दिष्ट और लक्ष्यांतर में एक रेखीय भौतिक स्थान बनाता है।
जब खंड पंजिका भारित हो जाती है, तब विशेषाधिकार नियंत्रण किया जाता है, क्योंकि खंड वर्णनकर्ता को खंड पंजिकों के लुप्त हुए हिस्सों में भंडार किया जाता है।[1]
80386 संरक्षित प्रणाली
इंटेल 80386 और इसके उपरान्त, 80286 संरक्षित प्रणाली के विभाजन तंत्र को निरंतर बनाये रखता है, किन्तु विभाजन इकाई और भौतिक स्थान्तरण के बीच स्थान अनुवाद की दूसरी परत के रूप में पृष्ठीकरण इकाई को जोड़ा गया है। इसके अतिरिक्त, महत्वपूर्ण बात यह है कि दक्षता लक्ष्यांतर 32-अंश (16-अंश के अतिरिक्त) हैं, और प्रत्येक खंड वर्णनकर्ता में खंड आधार भी 32-अंश (24-अंश के अतिरिक्त) है। विभाजन इकाई का संचालन सामान्य है अन्यथा यह अपरिवर्तित होता है। पृष्ठन इकाई सक्षम या अक्षम हो सकती है; यदि इसको अक्षम किया गया है, तो इसका संचालन 80286 के समान होता है। यदि पृष्ठीकरण इकाई सक्षम है, तो खंड में इसका स्थान भौतिक स्थान के अतिरिक्त आभासी होता हैं, जैसा कि अक्षम के 80286 पर स्थिति था, जब पृष्ठीकरण इकाई सक्षम होती है तब अंतिम 32-अंश स्थान दो को संयोजित करके प्राप्त विभाजन इकाई का सभी आभासी (या तर्कसंगत) स्थान होता हैं। जब विभाजन इकाई इन 32-अंश आभासी स्थानों को उत्पन्न और मान्य करती है, तो सक्षम पृष्ठीकरण इकाई अंत में इन आभासी स्थानों को भौतिक स्थानों में बदल देती है। इंटेल 80386 पर भौतिक स्थान 32-अंश हैं, किन्तु नए संसाधक पर यह बड़े हो सकते हैं जो भौतिक स्थान प्रारूप का समर्थन करते हैं।
80386 ने चार खंड पंजिका (सीएस, डीएस, ईएस, और एसएस) के मूल समूह में दो नए सामान्य-उद्देश्य आंकड़े खंड पंजिका, एफएस और जीएस को भी प्रस्तावित किया है।
एक 386 सीपीयू को सीआरओ नियंत्रण पंजिका में थोड़ा सा शोधन करके वास्तविक प्रणाली में पुन: रखा जा सकता है, चूंकि सुरक्षा और दृढ़ता को प्रयुक्त करने के लिए यह विशेषाधिकार प्राप्त संचालन है। इसकी तुलना के माध्यम से, एक 286 को केवल संसाधक पुनः समायोजन के लिए प्रेरक करके वास्तविक प्रणाली में लौटाया जा सकता है, उदाहरण: त्रिपक्षीय दोष या बाहरी हार्डवेयर का उपयोग करके।
पश्चात् के घटनाक्रम
एक्स86-64 संरचना लंबे प्रणाली (64-अंश प्रणाली) में विभाजन का उपयोग नहीं करता है। खंड पंजिका में से चार, सीएस, एसएस, डीएस, और ईएस, आधार स्थान 0 और 264 की सीमा के लिए प्रेरक हैं। खंड पंजिका एफएस और जीएस में अभी भी गैर-शून्य आधार स्थान हो सकता है। यह परिचालन प्रणाली को इन खंडों के विशेष उद्देश्यों के लिए उपयोग करने की अनुमति देता है। विरासत प्रणाली द्वारा उपयोग किए जाने वाले वैश्विक विवरण तालिका तंत्र के विपरीत, इन पदों के आधार स्थान प्रतिरूप-विशिष्ट पंजिका में संग्रहीत होता है। एक्स86-64 संरचना विशेष रूप से एसडब्लूएपीजीएस निर्देश प्रदान करता है,जो मूल मोड और उपयोगकर्ता मोड आधार स्थितियों को अदला-बदली करने की अनुमति देता है। उदाहरण के लिए, एक्स86-64 पर माइक्रोसॉफ़्ट विंडोज़ जीएस खंड का उपयोग सूत्र सूचना खंड को इंगित करने के लिए करता है, प्रत्येक सूत्र (कंप्यूटर विज्ञान) के लिए छोटी आंकड़े संरचना है , जिसमें अपवाद प्रबंधन, सूत्र-स्थानीय चर और अन्य प्रति के बारे में जानकारी सम्मिलित है। इसी तरह, सूत्र स्थिति मे लिनक्स कर्नेल प्रति सीपीयू आंकड़े संचय करने के लिए जीएस खंड का उपयोग करता है।
जीएस/एफएस का उपयोग जीएनयू संकलक संग्रह के सूत्र-सार्वजनिक संचयन और कैनरी-आधारित स्तंभ संरक्षक में भी किया जाता है।
अभ्यास
तर्कसंगत स्थानों को एक्स86 समुच्चय भाषा में स्पष्ट रूप से निर्दिष्ट किया जा सकता है, उदाहरण: (एटी और टी वाक्य - विन्यास है)
movl $42, %fs:(%eaएक्स);के बराबर में M[fs:eaएक्स]<-42)
या इंटेल सिंटैक्स में:
mov dword [fs:eax], 42
चूंकि, खंड पंजिका का उपयोग सामान्यतः निहित रूप से किया जाता है।
- सभी सीपीयू निर्देश सीएस पंजिका में रखे गए खंड चयनकर्ता द्वारा निर्दिष्ट संकेत खंड से निहित रूप से प्राप्त किए जाते हैं।
- अधिकांश स्मृति संदर्भ डीएस पंजिका में रखे गए खंड चयनकर्ता द्वारा निर्दिष्ट आंकड़े खंड से आते हैं। ये इएस पंजिका में रखे गए खंड चयनकर्ता द्वारा निर्दिष्ट अतिरिक्त खंड से भी आ सकते हैं, यदि एक खंड-अवहेलना उपसर्ग उस निर्देश से पूर्व आता है जो स्मृति संदर्भ बनाता है। अधिकांश, सभी निर्देश नहीं है जो व्यतिक्रम रूप से डीएस का उपयोग करते हैं, एक इएस अवहेलना उपसर्ग को स्वीकार करते है।
- संसाधक चाल-अवधि स्तंभ संदर्भ, या तो निहित रूप से (जैसे ' दबाना' और 'त्वरित ' निर्देश) या स्पष्ट रूप से स्तंभ-आधारित स्मृति आवंटन है| (ई) एसपी या (ई) बीपी पंजिका का और स्मृति अभिगम निर्दिष्ट स्तंभ खंड का उपयोग करें एसएस पंजिका में उपस्थित खंड चयनकर्ता द्वारा सम्मलित है।
- एक्स86 श्रृंखला निर्देश (जैसे 'एसटीओएस', 'एमओवीएस') आंकड़े खंड के साथ, इएस पंजिका में रखे गए खंड चयनकर्ता द्वारा निर्दिष्ट अतिरिक्त खंड का भी उपयोग करते हैं।
विभाजन को एक्स86-32 संसाधक पर बंद नहीं किया जा सकता है (यह 64-अंश प्रणाली के लिए भी सही है, किन्तु यह विचार के सीमा से भिन्नहै), विभाजन को कार्यक्रमों के प्रति तटस्थ बनाने के लिए अनेक 32-अंश परिचालन प्रणाली सभी खंड के आधार को 0 पर समूह करके एक समतल स्मृति प्रतिरूप का अनुकरण करते हैं। उदाहरण के लिए, लिनक्स कर्नेल मात्र 4 सामान्य प्रयोजन खंड स्थापित करता है।
Name | Description | Base | Limit | DPL |
---|---|---|---|---|
__ मूल_सीएस | मूल संकेत खंड | 0 | 4 GiB | 0 |
__ मूल_डीएस | मूल आंकड़े खंड | 0 | 4 GiB | 0 |
__उपयोगकर्ता_सीएस | उपयोगकर्ता संकेत खंड | 0 | 4 GiB | 3 |
__उपयोगकर्ता_डीएस | उपयोगकर्ता आंकड़े खंड | 0 | 4 GiB | 3 |
चूंकि आधार सभी स्थितियों में पृष्ठन समूह है और 4 जीआईबी की सीमा है। पृष्ठीकरण इकाई पर पहुंचने से पूर्व विभाजन इकाई कार्यक्रम के मुद्दों को प्रभावित नहीं करती है। (यह निश्चित रूप से 80386 और बाद के संसाधक को संदर्भित करता है, क्योंकि पूर्व के एक्स86 संसाधक में पृष्ठीकरण इकाई नहीं है।)
वर्तमान लिनक्स सूत्र-सार्वजनिक संचयन को इंगित करने के लिए जीएस का भी उपयोग करता है।
खंड को संकेत, आंकड़े या प्रणाली खंड के रूप में परिभाषित किया जा सकता है। खंड को केवल पढ़ने, लिखने एवं निष्पादित करने आदि के लिए अतिरिक्त अनुमति अंश उपस्थित होती हैं।
संरक्षित प्रणाली में, संकेत सदैव सीएस ( संकेत खंड चयनकर्ता) को छोड़कर सभी खंड पंजिका को संशोधित कर सकता है। ऐसा इसलिए है क्योंकि संसाधक का वर्तमान विशेषाधिकार स्तर (सीपीएल) सीएस पंजिका के निचले 2 अंश में संग्रहीत है। संसाधक विशेषाधिकार स्तर (और सीएस को पुनः भार करने) को बढ़ाने का एकमात्र 'आह्वान' (दूरस्थ आह्वान) और आईएनटी (एक्स86 निर्देश) विधि है | 'आईएनटी' एक (व्यवधान) निर्देश हैं। इसी तरह, विशेषाधिकार स्तर (और सीएस को पुनः भार करने) को कम करने का एकमात्र विधि 'एलआरआईटी' (दूर वापसी) और 'एलआरआईटी' (व्यवधान वापसी) निर्देश हैं। वास्तविक प्रणाली में, संकेत दूर तक स्थांतरण करके (या एक अप्रमाणित का उपयोग करके) सीएस पंजिका को संशोधित भी कर सकता है उदाहरण: पीओपी सीएस
8086 या 8088 पर निर्देश है।[4] वास्तविक प्रणाली में, कोई विशेषाधिकार स्तर नहीं हैं; सभी योजनाओंं में सभी स्मृति और सभी सीपीयू निर्देशों तक पूर्ण अनियंत्रित पहुंच होती है।
विभाजन के बारे में अधिक जानकारी के लिए, एएमडी या इंटेल वेबसाइटों पर स्वतंत्र रूप से उपलब्ध आईए-32 नियमावली देखें।
नोट्स और संदर्भ
- ↑ 1.0 1.1 "Intel 64 and IA-32 Architectures Software Developer's Manual", Volume 3, "System Programming Guide", published in 2011, Page "Vol. 3A 3-11", the book is written: "Every segment register has a “visible” part and a “hidden” part. (The hidden part is sometimes referred to as a “descriptor cache” or a “shadow register.”) When a segment selector is loaded into the visible part of a segment register, the processor also loads the hidden part of the segment register with the base address, segment limit, and access control information from the segment descriptor pointed to by the segment selector. The information cached in the segment register (visible and hidden) allows the processor to translate addresses without taking extra bus cycles to read the base address and limit from the segment descriptor."
- ↑ Intel Corporation (2004). IA-32 Intel Architecture Software Developer's Manual Volume 1: Basic Architecture (PDF).
- ↑ "DevBlogs".
- ↑
POP CS
must be used with extreme care and has limited usefulness, because it immediately changes the effective address that will be computed from the instruction pointer to fetch the next instruction. Generally, a far jump is much more useful. The existence ofPOP CS
is probably an accident, as it follows a pattern of PUSH and POP instruction opcodes for the four segment registers on the 8086 and 8088.
यह भी देखें
- एक्स86 स्मृति प्रतिरूप
- मल्टीप्रोग्रामिंग प्रणाली
- स्प्लिट ऑक्टल