इनपुट-आउटपुट मेमोरी प्रबंधन इकाई

From alpha
Jump to navigation Jump to search
I/O स्मृति प्रबंधन इकाई (IOMMU) की मेमोरी मैनेजमेंट यूनिट (MMU) से तुलना।

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

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

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


फायदे

मेमोरी की प्रत्यक्ष भौतिक एड्रेसिंग (डीएमए) की तुलना में आईओएमएमयू होने के फायदे शामिल हैं[citation needed]:

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

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

नुकसान

मेमोरी के प्रत्यक्ष भौतिक एड्रेसिंग की तुलना में IOMMU होने के नुकसान में शामिल हैं:[4]

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

वर्चुअलाइजेशन

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

एक IOMMU हार्डवेयर द्वारा एक्सेस किए गए पतों को उसी (या एक संगत) अनुवाद तालिका के अनुसार दोबारा मैप करके इस समस्या को हल करता है जिसका उपयोग अतिथि-भौतिक पते को होस्ट-भौतिक पते पर मैप करने के लिए किया जाता है।[5]


प्रकाशित विशिष्टताएँ

  • AMD ने IOMMU प्रौद्योगिकी के लिए एक विनिर्देश प्रकाशित किया है, जिसे AMD-Vi कहा जाता है।[6][7]
  • आईबीएम ने विस्तारित नियंत्रण कार्यक्रम समर्थन की पेशकश की: वर्चुअल स्टोरेज एक्सटेंडेड (ईसीपीएस:वीएसई) मोड[8] इसकी 43xx लाइन पर; चैनल कार्यक्रमों में वर्चुअल पतों का उपयोग किया जाता है।
  • इंटेल ने IOMMU तकनीक के लिए डायरेक्टेड I/O के लिए वर्चुअलाइजेशन टेक्नोलॉजी, संक्षिप्त रूप से VT-d के रूप में एक विनिर्देश प्रकाशित किया है।[9]
  • सन माइक्रोसिस्टम्स IOMMU के बारे में जानकारी सोलारिस डेवलपर कनेक्शन के डिवाइस वर्चुअल मेमोरी एक्सेस (DVMA) अनुभाग में प्रकाशित की गई है।[10] * IBM ट्रांसलेशन कंट्रोल एंट्री (TCE) का वर्णन IBM eServer pSeries 690 में लॉजिकल पार्टिशन सिक्योरिटी नामक दस्तावेज़ में किया गया है।[11]
  • PCI-SIG के पास सिंगल रूट I/O वर्चुअलाइजेशन (SR-IOV) और एड्रेस ट्रांसलेशन सर्विसेज (ATS) शर्तों के तहत प्रासंगिक कार्य है। इन्हें पहले अलग विशिष्टताओं में शामिल किया गया था, लेकिन पीसीआई एक्सप्रेस 5.0 के साथ इन्हें पीसीआई एक्सप्रेस बेस विशिष्टता में स्थानांतरित कर दिया गया है।[12]
  • एआरएम वास्तुकला आईओएमएमयू के अपने संस्करण को सिस्टम मेमोरी मैनेजमेंट यूनिट (एसएमएमयू) के रूप में परिभाषित करता है[13] इसके वर्चुअलाइजेशन आर्किटेक्चर को पूरक करने के लिए।[14]


यह भी देखें

संदर्भ

  1. "Intel platform hardware support for I/O virtualization". intel.com. 2006-08-10. Archived from the original on 2007-01-20. Retrieved 2014-06-07.
  2. "Desktop Boards: Compatibility with Intel Virtualization Technology (Intel VT)". intel.com. 2014-02-14. Retrieved 2014-06-07.
  3. "Physical Address Extension — PAE Memory and Windows". Microsoft Windows Hardware Development Central. 2005. Retrieved 2008-04-07.
  4. Muli Ben-Yehuda; Jimi Xenidis; Michal Ostrowski (2007-06-27). "Price of Safety: Evaluating IOMMU Performance" (PDF). Proceedings of the Linux Symposium 2007. Ottawa, Ontario, Canada: IBM Research. Retrieved 2013-02-28.
  5. "Xen FAQ: In DomU, how can I use 3D graphics". Archived from the original on 2008-10-02. Retrieved 2006-12-12.
  6. "AMD I/O Virtualization Technology (IOMMU) Specification Revision 2.0" (PDF). amd.com. 2011-03-24. Retrieved 2014-01-11.
  7. "AMD I/O Virtualization Technology (IOMMU) Specification" (PDF). amd.com. Retrieved 2020-07-09.
  8. IBM 4300 Processors Principles of Operation for ECPS:VSE Mode (PDF) (First ed.). IBM. January 1979. SA22-7070-0. Archived from the original (PDF) on 2012-03-14. Retrieved 2021-06-30.
  9. "Intel Virtualization Technology for Directed I/O (VT-d) Architecture Specification" (PDF). Retrieved 2020-07-09.
  10. "DVMA संसाधन और IOMMU अनुवाद". Retrieved 2007-04-30.
  11. "Logical Partition Security in the IBM eServer pSeries 690". Retrieved 2007-04-30.
  12. "पीसीआई एक्सप्रेस बेस विशिष्टता". Retrieved 2023-01-18.
  13. "एआरएम एसएमएमयू". Retrieved 2013-05-13.
  14. "एआरएम वर्चुअलाइजेशन एक्सटेंशन". Archived from the original on 2013-05-03. Retrieved 2013-05-13.


बाहरी संबंध