इनपुट-आउटपुट मेमोरी मैनेजमेंट यूनिट

कंप्यूटिंग में, एक इनपुट-आउटपुट मेमोरी प्रबंधन इकाई (आईओएमएमयू) एक मेमोरी प्रबंधन इकाई (एमएमयू) है जो डायरेक्ट-मेमोरी-एक्सेस-सक्षम (डीएमए-सक्षम) I/O कंप्यूटर बस को मुख्य मेमोरी से जोड़ती है। एक पारंपरिक एमएमयू की तरह, जो केंद्रीय प्रसंस्करण इकाई-दृश्यमान आभासी पतों को भौतिक पतों में अनुवादित करता है, आईओएमएमयू उपकरण-दृश्यमान आभासी पतों (जिन्हें इस संदर्भ में 'उपकरण पते' या I/O पतों भी कहा जाता है) को भौतिक में प्रतिचित्र करता है। कुछ इकाइयां दोषपूर्ण या दुर्भावनापूर्ण उपकरणों से मेमोरी सुरक्षा भी प्रदान करती हैं।

एक उदाहरण आईओएमएमयू ग्राफिक्स एड्रेस रीमैपिंग टेबल (जीएआरटी ) है जिसका उपयोग इंटेल वास्तुकला और एएमडी कंप्यूटरों पर त्वरित ग्राफिक्स पोर्ट और पीसीआई एक्सप्रेस ग्राफिक्स कार्ड द्वारा किया जाता है।

x86 वास्तुकला पर, नॉर्थब्रिज (कंप्यूटिंग) और साउथब्रिज (कंप्यूटिंग) की कार्यक्षमता को सीपीयू और प्लेटफ़ॉर्म कंट्रोलर हब (पीसीएच) के बीच विभाजित करने से पहले, I/O वर्चुअलाइजेशन सीपीयू द्वारा नहीं बल्कि चिपसेट द्वारा किया जाता था।

लाभ
मेमोरी (डीएमए) के प्रत्यक्ष भौतिक पते की तुलना में आईओएमएमयू होने के लाभों में सम्मिलित हैं:
 * स्मृति के बड़े क्षेत्रों को भौतिक स्मृति में सन्निहित होने की आवश्यकता के बिना आवंटित किया जा सकता है – आईओएमएमयू सन्निहित आभासी पतों को अंतर्निहित खंडित भौतिक पतों पर प्रतिचित्र करता है। इस प्रकार, सदिश I/O (स्कैटर-इकट्ठा सूचियाँ) के उपयोग से कभी-कभी बचा जा सकता है।
 * ऐसे उपकरण जो संपूर्ण भौतिक मेमोरी को संबोधित करने के लिए लंबे समय तक मेमोरी पतों का समर्थन नहीं करते हैं, अभी भी आईओएमएमयू के माध्यम से संपूर्ण मेमोरी को संबोधित कर सकते हैं, परिधीय के पता योग्य स्मृति स्थान से और बफ़र्स को प्रतिलिपि करने से जुड़े उपरिव्यय से बचते हैं।
 * उदाहरण के लिए, x86 कंप्यूटर एक x86 प्रोसेसर में फिजिकल एड्रेस एक्सटेंशन (पीएई) फीचर के साथ 4 गीगाबाइट से अधिक मेमोरी को संबोधित कर सकते हैं। फिर भी, एक साधारण 32-बिट पीसीआई उपकरण 4 GiB सीमा से ऊपर की मेमोरी को आसानी से संबोधित नहीं कर सकता है, और इस प्रकार यह इसे सीधे अभिगम नहीं कर सकता है। आईओएमएमयू के बिना, संचालन प्रणाली को समय लेने वाली बाउंस बफ़र्स (जिसे डबल बफ़र्स के रूप में भी जाना जाता है) को लागू करना होगा ).
 * स्मृति दुर्भावनापूर्ण उपकरणों से सुरक्षित है जो कि डीएमए हमलों और दोषपूर्ण उपकरणों का प्रयास कर रहे हैं जो कि त्रुटिपूर्ण स्मृति हस्तांतरण का प्रयास कर रहे हैं क्योंकि एक उपकरण स्मृति को पढ़ या लिख ​​नहीं सकता है जिसे इसके लिए स्पष्ट रूप से आवंटित (प्रतिचित्र ) नहीं किया गया है। स्मृति सुरक्षा इस तथ्य पर आधारित है कि सीपीयू पर चलने वाला ओएस विशेष रूप से एमएमयू और आईओएमएमयू दोनों को नियंत्रित करता है। उपकरण शारीरिक रूप से कॉन्फ़िगर की गई मेमोरी प्रबंधन तालिकाओं को अलग करने या दूषित करने में असमर्थ हैं।
 * हार्डवेयर-समर्थित वर्चुअलाइजेशन में, अतिथि संचालन प्रणाली हार्डवेयर का उपयोग कर सकते हैं जो विशेष रूप से वर्चुअलाइजेशन के लिए नहीं बनाया गया है। उच्च प्रदर्शन हार्डवेयर जैसे ग्राफिक्स कार्ड मेमोरी को सीधे अभिगम करने के लिए डीएमए का उपयोग करते हैं; वर्चुअल वातावरण में सभी मेमोरी पतों को वर्चुअल मशीन सॉफ़्टवेयर द्वारा फिर से प्रतिचित्र किया जाता है, जिसके कारण डीएमए उपकरण विफल हो जाते हैं। आईओएमएमयू इस री-मैपिंग को हैंडल करता है, जिससे नेटिव उपकरण ड्राइवर्स को गेस्ट संचालन प्रणाली में इस्तेमाल करने की अनुमति मिलती है।
 * कुछ आर्किटेक्चर में आईओएमएमयू मानक मेमोरी एड्रेस री-मैपिंग के समान ही हार्डवेयर इंटरप्ट री-मैपिंग भी करता है।
 * परिधीय मेमोरी पेजिंग को आईओएमएमयू द्वारा समर्थित किया जा सकता है। पीसीआई-एसआईजी पीसीआईई पता अनुवाद सेवाएं (एटीएस) पेज रिक्वेस्ट इंटरफेस (पीआरआई) एक्सटेंशन का उपयोग करने वाला एक पेरिफेरल मेमोरी मैनेजर सेवाओं की आवश्यकता का पता लगा सकता है और संकेत दे सकता है।

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

नुकसान
स्मृति के प्रत्यक्ष भौतिक पते की तुलना में आईओएमएमयू होने के नुकसान में सम्मिलित हैं:
 * अनुवाद और प्रबंधन ओवरहेड से प्रदर्शन में कुछ गिरावट (जैसे, पेज टेबल वॉक)।
 * जोड़े गए I/O पेज टेबल | पेज (अनुवाद) टेबल के लिए फिजिकल मेमोरी की खपत। यदि तालिकाओं को प्रोसेसर के साथ साझा किया जा सकता है तो इसे कम किया जा सकता है।
 * पृष्ठ तालिका के आकार को कम करने के लिए कई IOMMUs की ग्रैन्युलैरिटी मेमोरी पेजिंग (अक्सर 4096 बाइट्स) के बराबर होती है, और इसलिए प्रत्येक छोटे बफर को डीएमए हमले से सुरक्षा की आवश्यकता होती है, जिसे उपकरण को दृश्यमान बनाने से पहले पृष्ठ संरेखित और शून्य किया जाना चाहिए। . ओएस मेमोरी आवंटन जटिलता के कारण इसका मतलब है कि उपकरण ड्राइवर को संवेदनशील डेटा संरचनाओं के लिए बाउंस बफ़र्स का उपयोग करने की आवश्यकता है और इसलिए समग्र प्रदर्शन कम हो रहा है।

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

एक आईओएमएमयू हार्डवेयर द्वारा अभिगम किए गए पतों को उसी (या एक संगत) अनुवाद तालिका के अनुसार फिर से प्रतिचित्र करके इस समस्या को हल करता है जिसका उपयोग अतिथि-भौतिक पते को होस्ट-भौतिक पते पर प्रतिचित्र करने के लिए किया जाता है।

प्रकाशित विनिर्देश

 * एएमडी ने आईओएमएमयू तकनीक के लिए एक विनिर्देश प्रकाशित किया है, जिसे एएमडी-वीआई कहा जाता है।
 * आईबीएम ने विस्तारित नियंत्रण कार्यक्रम समर्थन की पेशकश की: वर्चुअल स्टोरेज एक्सटेंडेड (ईसीपीएस: वीएसई) मोड इसकी 43xx लाइन पर; चैनल प्रोग्राम वर्चुअल एड्रेस का इस्तेमाल करते हैं।
 * इंटेल ने आईओएमएमयू तकनीक के लिए डायरेक्टेड आई/ओ, संक्षिप्त वीटी-डी के लिए वर्चुअलाइजेशन टेक्नोलॉजी के रूप में एक विनिर्देश प्रकाशित किया है।
 * सन माइक्रोसिस्टम्स IOMMU के बारे में जानकारी सोलारिस डेवलपर कनेक्शन के डिवाइस वर्चुअल मेमोरी एक्सेस (DVMA) सेक्शन में प्रकाशित की गई है। * IBM ट्रांसलेशन कंट्रोल एंट्री (टीसीई) का वर्णन आईबीएम eServer pSeries 690 में लॉजिकल पार्टीशन सिक्योरिटी नामक दस्तावेज़ में किया गया है।
 * PCI-SIG के पास I/O वर्चुअलाइजेशन (IOV) शर्तों के तहत प्रासंगिक कार्य है और एड्रेस ट्रांसलेशन सर्विसेज (एटीएस)।
 * एआरएम आर्किटेक्चर IOMMU के अपने संस्करण को सिस्टम मेमोरी मैनेजमेंट यूनिट (SMMU) के रूप में परिभाषित करता है इसके वर्चुअलाइजेशन आर्किटेक्चर के पूरक के लिए।

यह भी देखें

 * विषम प्रणाली वास्तुकला (HSA)
 * IOMMU- सहायक हार्डवेयर की सूची
 * मेमोरी-मैप्ड I/O
 * स्मृति सुरक्षा

बाहरी संबंध

 * Mastering the DMA and IOMMU APIs, Embedded Linux Conference 2014, San Jose, by Laurent Pinchart
 * Mastering the DMA and IOMMU APIs, Embedded Linux Conference 2014, San Jose, by Laurent Pinchart