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

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

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

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

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

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

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

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

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

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

 * एएमडी ने आईओएमएमयू तकनीक के लिए एक विनिर्देश प्रकाशित किया है, जिसे एएमडी-वीआई कहा जाता है।
 * आईबीएम ने विस्तारित नियंत्रण कार्यक्रम समर्थन की प्रस्तुति की: वर्चुअल स्टोरेज एक्सटेंडेड (ईसीपीएस: वीएसई) मोड इसकी 43xx लाइन पर; चैनल प्रोग्राम वास्तविक एड्रेस का उपयोग करते हैं।
 * इंटेल ने आईओएमएमयू तकनीक के लिए निर्देशित आई/ओ, संक्षिप्त वीटी-डी के लिए वर्चुअलाइजेशन तकनीकी के रूप में एक विनिर्देश प्रकाशित किया है।
 * सन माइक्रोप्रणाली आईओएमएमयू के बारे में जानकारी सोलारिस डेवल पर संयोजन के डिवाइस वर्चुअल मेमोरी एक्सेस (डीवीएमए) खंड में प्रकाशित की गई है। * आईबीएम ट्रांसलेशन कंट्रोल एंट्री (टीसीई) का वर्णन आईबीएम ई-सर्वर pSeries 690 में लॉजिकल पार्टीशन सिक्योरिटी नामक अभिलेख में किया गया है।
 * पीसीआई-एसआईजी के पास आई/ओ वर्चुअलाइजेशन (आईओवी) और एड्रेस ट्रांसलेशन सर्विसेज (एटीएस) उपबंधों के अधीन प्रासंगिक कार्य है
 * एआरएम आईओएमएमयू के अपने संस्करण को सिस्टम मेमोरी मैनेजमेंट यूनिट (एसएमएमयू) के रूप में परिभाषित करता है इसके वर्चुअलाइजेशन वास्तुकला के पूरक के लिए।

यह भी देखें

 * विषम प्रणाली वास्तुकला (एचएसए)
 * आईओएमएमयू - सहायक हार्डवेयर की सूची
 * मेमोरी-मैप्ड 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