मेमोरी मैप

From Vigyanwiki

कंप्यूटर विज्ञान में, मेमोरी मैप डेटा की वह संरचना है (जो सामान्यतः मेमोरी में ही रहती है) जो स्पष्ट करती है कि मुख्य मेमोरी किस प्रकार संरक्षित की जाती है। मुख्य रूप से मेमोरी मैप शब्द के अलग-अलग संदर्भों में अलग-अलग अर्थ हो सकते हैं।

  • यह सबसे तीव्र और सबसे विभक्‍तिग्राही कैश (कंप्यूटिंग) संगठन है जो साहचर्य मेमोरी का उपयोग करता है। साहचर्य मेमोरी, मेमोरी शब्द के एड्रेस और विषय सूची दोनों को संग्रहीत करती है।[further explanation needed]
  • बूट प्रक्रिया में, प्रचालन प्रणाली कर्नेल (प्रचालन प्रणाली) को मेमोरी अभिन्यास के बारे में निर्देश देने के लिए फर्मवेयर से एक मेमोरी मैप निर्दिष्ट किया जाता है। इसमें कुल मेमोरी के आकार तथा किसी भी आरक्षित क्षेत्र के बारे में जानकारी सम्मिलित है और यह वास्तुकला के लिए अन्य विशिष्ट विवरण भी प्रदान कर सकता है।
  • वर्चुअल मेमोरी कार्यान्वयन और मेमोरी प्रबंधन इकाइयों में, एक मेमोरी मैप पेज टेबल या हार्डवेयर रजिस्टर को संदर्भित करता है, जो एक निश्चित प्रक्रिया के वर्चुअल मेमोरी अभिन्यास के बीच मैप को संग्रहित करता है और इस बात की सूचना भी संरक्षित करता है कि यह स्थान भौतिक मेमोरी एड्रेस से किस प्रकार संबंधित है।
  • प्राचीन डेबुग्गेर प्रोग्राम में, एक मेमोरी मैप सुसंपन्न निष्पादन योग्य लाइब्रेरी फ़ाइलों और मेमोरी क्षेत्रों के बीच मैप को संदर्भित करता है। इन मेमोरी मैप का उपयोग मेमोरी एड्रेस (जैसे फंक्शन पॉइंटर्स) को वास्तविक प्रतीकों में हल करने के लिए किया जाता है।

पीसी बीआईओएस (BIOS) मेमोरी मैप

IBM पर्सनल कंप्यूटर और IBM पीसी संगत के लिए बीआईओएस रूटीन का एक समुच्चय प्रदान करता है जिसका उपयोग मेमोरी अभिन्यास प्राप्त करने के लिए प्रचालन प्रणाली या अनुप्रयोग द्वारा किया जा सकता है। कुछ उपलब्ध रूटीन हैं:

बीआईओएस फलन : INT 0x15, AX = 0xE801:[1]

इस बीआईओएस बाधित निर्देश का उपयोग 64MB+ संरूपण के लिए मेमोरी आकार प्राप्त करने के लिए किया जाता है। यह 23 अगस्त, 1994 या उसके बाद के अमेरिकन मेगाट्रेंड्स BIOSses द्वारा समर्थित है। निर्देशकर्ता AX को 0xE801 पर निर्धारित करता है और फिर int 0x15 निष्पादित करता है। यदि कुछ त्रुटि हो गई है, तो सीएफ (कैरी फ्लैग) के साथ रूटीन रिटर्न 1 पर निर्धारित होता है।

रजिस्टर वैल्यू विवरण
ईएक्स KB में 1M और 16M के बीच विस्तारित मेमोरी (अधिकतम मान: 0x3C00 = 15360KB)।
ईबीएक्स 16M से ऊपर 64K ब्लॉक की गणना।
ईसीएक्स KB में कॉन्फ़िगर की गई मेमोरी 1M से 16M।
ईडीएक्स 16M से ऊपर कॉन्फ़िगर किए गए 64K ब्लॉक की संख्या।

बीआईओएस फलन : INT 0x15, AX=0xE820 - सिस्टम मेमोरी मैप प्राप्त करें:[2]

इनपुट:

रजिस्टर वैल्यू विवरण
ईएक्स KB में 1M और 16M के बीच विस्तारित मेमोरी। (अधिकतम मान: 0x3C00 = 15360KB)।
ईबीएक्स 64a की गिनती! रजिस्टर !! वैल्यू विवरण
ईएक्स 0x0000E820
ईबीएक्स मानचित्र की शुरुआत में प्रारम्भ करने के लिए निरंतरता मान या 0x0।
ईसीएक्स परिणाम के लिए बफर का आकार (20 बाइट्स)।
ईडीएक्स 0x534D4150 ('SMAP' के लिए ASCII)
ईएस:डीआई खंड: परिणाम के लिए बफर का ऑफसेट स्थान।

एसएमएपी बफर संरचना:

ऑफसेट आकार वैल्यू विवरण
0 QWORD (8 बाइट्स) ईबीएक्स द्वारा संदर्भित मेमोरी मैप क्षेत्र का आधार एड्रेस।
8 QWORD (8 बाइट्स) बाइट्स में लंबाई।
16 DWORD (4 बाइट्स) एड्रेस श्रेणी का प्रकार।

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

यह भी देखें

संदर्भ

  1. "15E801".
  2. "15E820".