وحدة إدارة ذاكرة الإدخال والإخراج

مقارنة بين وحدة إدارة ذاكرة الإدخال/الإخراج (IOMMU) ووحدة إدارة الذاكرة (MMU).

في مجال الحوسبة ، تُعدّ وحدة إدارة الذاكرة للإدخال والإخراج ( IOMMU ) وحدة إدارة ذاكرة (MMU) تربط ناقل الإدخال/الإخراج المُزوّد ​​بتقنية الوصول المباشر إلى الذاكرة (DMA) بالذاكرة الرئيسية . وكما هو الحال في وحدة إدارة الذاكرة التقليدية التي تُترجم العناوين الافتراضية المرئية لوحدة المعالجة المركزية إلى عناوين فيزيائية ، تقوم وحدة IOMMU بربط العناوين الافتراضية المرئية للجهاز (والتي تُسمى أيضًا عناوين الجهاز أو عناوين الإدخال/الإخراج المُرتبطة بالذاكرة في هذا السياق) بالعناوين الفيزيائية. كما تُوفّر بعض الوحدات حماية للذاكرة من الأجهزة المعيبة أو الخبيثة.

ومن الأمثلة على ذلك IOMMU جدول إعادة تعيين عناوين الرسومات (GART) المستخدم بواسطة بطاقات الرسومات AGP و PCI Express على أجهزة الكمبيوتر ذات بنية Intel و AMD.

في بنية x86، قبل تقسيم وظائف الجسر الشمالي والجسر الجنوبي بين وحدة المعالجة المركزية ووحدة التحكم في النظام الأساسي (PCH)، لم تكن عملية محاكاة الإدخال/الإخراج تتم بواسطة وحدة المعالجة المركزية، بل بواسطة مجموعة الشرائح . [ 1 ] [ 2 ]

المزايا

تشمل مزايا وجود وحدة إدارة الذاكرة والإدخال/الإخراج (IOMMU)، مقارنةً بالوصول المباشر إلى الذاكرة (DMA)، ما يلي :

  • يمكن تخصيص مساحات كبيرة من الذاكرة دون الحاجة إلى أن تكون متجاورة في الذاكرة الفعلية ، حيث يقوم نظام إدارة الذاكرة والإدخال/الإخراج (IOMMU) بربط العناوين الافتراضية المتجاورة بالعناوين الفعلية المجزأة. وبالتالي، يمكن في بعض الأحيان تجنب استخدام الإدخال/الإخراج الموجه ( قوائم التوزيع والتجميع ). 
  • الأجهزة التي لا تدعم عناوين الذاكرة الطويلة بما يكفي لمعالجة الذاكرة الفعلية بأكملها لا يزال بإمكانها معالجة الذاكرة بأكملها من خلال وحدة إدارة الذاكرة والإدخال/الإخراج (IOMMU)، مما يتجنب النفقات العامة المرتبطة بنسخ المخازن المؤقتة من وإلى مساحة الذاكرة القابلة للعنونة الخاصة بالجهاز الطرفي.
    • على سبيل المثال، تستطيع حواسيب x86 الوصول إلى أكثر من 4 غيغابايت من الذاكرة باستخدام ميزة امتداد العنوان الفيزيائي (PAE) في معالج x86. مع ذلك، لا يستطيع جهاز PCI عادي ذو 32 بت الوصول إلى الذاكرة التي تتجاوز 4 غيغابايت، وبالتالي لا يمكنه الوصول إليها مباشرةً. وبدون وحدة إدارة الذاكرة للإدخال/الإخراج (IOMMU)، سيتعين على نظام التشغيل تطبيق التخزين المؤقت المزدوج . [ 3 ]
  • تُحمى الذاكرة من الأجهزة الخبيثة التي تحاول شنّ هجمات الوصول المباشر إلى الذاكرة (DMA)، ومن الأجهزة المعيبة التي تحاول نقل البيانات بشكل خاطئ، وذلك لأن الجهاز لا يستطيع القراءة أو الكتابة إلى ذاكرة لم تُخصص له صراحةً. وتعتمد حماية الذاكرة على حقيقة أن نظام التشغيل المُشغّل على وحدة المعالجة المركزية (انظر الشكل) يتحكم حصريًا في كلٍ من وحدة إدارة الذاكرة (MMU) ووحدة إدارة الإدخال/الإخراج (IOMMU). وبالتالي، لا تستطيع الأجهزة فعليًا التحايل على جداول إدارة الذاكرة المُهيأة أو إتلافها.
    • في بيئة المحاكاة الافتراضية ، يمكن لأنظمة التشغيل الضيفة استخدام مكونات مادية غير مصممة خصيصًا لهذه البيئة. تستخدم المكونات المادية عالية الأداء، مثل بطاقات الرسومات، تقنية الوصول المباشر إلى الذاكرة (DMA) للوصول إلى الذاكرة مباشرةً؛ في بيئة افتراضية، يُعاد تعيين جميع عناوين الذاكرة بواسطة برنامج الجهاز الافتراضي، مما يؤدي إلى تعطل أجهزة DMA. تتولى وحدة إدارة الذاكرة والإدخال/الإخراج (IOMMU) عملية إعادة التعيين هذه، مما يسمح باستخدام برامج تشغيل الأجهزة الأصلية في نظام التشغيل الضيف.
  • في بعض البنى، يقوم IOMMU أيضًا بإعادة تعيين مقاطعات الأجهزة ، بطريقة مشابهة لإعادة تعيين عناوين الذاكرة القياسية.
  • يمكن دعم ترحيل صفحات الذاكرة الطرفية بواسطة وحدة إدارة الذاكرة للإدخال/الإخراج (IOMMU). ويمكن للأجهزة الطرفية التي تستخدم امتداد واجهة طلب الصفحة (PRI) لخدمات ترجمة عناوين PCIe (ATS) من PCI-SIG اكتشاف الحاجة إلى خدمات إدارة الذاكرة والإشارة إليها.

في بنى الأنظمة التي يكون فيها إدخال/إخراج المنافذ مساحة عناوين منفصلة عن مساحة عناوين الذاكرة، لا يُستخدم مُدير وحدة إدارة الذاكرة والإدخال/الإخراج (IOMMU) عندما يتواصل المعالج مع الأجهزة عبر منافذ الإدخال/الإخراج . أما في بنى الأنظمة التي يتم فيها ربط إدخال/إخراج المنافذ والذاكرة بمساحة عناوين مناسبة، فيمكن لمُدير وحدة إدارة الذاكرة والإدخال/الإخراج (IOMMU) ترجمة عمليات الوصول إلى إدخال/إخراج المنافذ.

العيوب

تشمل عيوب وجود وحدة إدارة الذاكرة والإدخال/الإخراج (IOMMU)، مقارنةً بالعنونة المادية المباشرة للذاكرة، ما يلي: [ 4 ]

  • بعض التدهور في الأداء ناتج عن تكاليف الترجمة والإدارة (مثل عمليات البحث في جداول الصفحات).
  • استهلاك الذاكرة الفعلية لجداول صفحات الإدخال/الإخراج المضافة (الترجمة) . يمكن التخفيف من ذلك إذا أمكن مشاركة الجداول مع المعالج.
  • لتقليل حجم جدول الصفحات، تُساوي دقة العديد من وحدات إدارة الذاكرة للإدخال/الإخراج (IOMMU) حجم ترحيل الذاكرة (غالبًا 4096 بايت)، وبالتالي، يجب محاذاة كل مخزن مؤقت صغير يحتاج إلى الحماية من هجوم الوصول المباشر إلى الذاكرة (DMA) مع الصفحة وتصفيره قبل جعله مرئيًا للجهاز. ونظرًا لتعقيد تخصيص الذاكرة في نظام التشغيل، فإن هذا يعني أن برنامج تشغيل الجهاز يحتاج إلى استخدام مخازن مؤقتة احتياطية لهياكل البيانات الحساسة، مما يؤدي إلى انخفاض الأداء العام.

المحاكاة الافتراضية

عند تشغيل نظام تشغيل داخل آلة افتراضية ، بما في ذلك الأنظمة التي تستخدم المحاكاة الافتراضية الجزئية ، مثل Xen و KVM ، فإنه لا يعرف عادةً عناوين الذاكرة الفعلية للمضيف التي يصل إليها. وهذا ما يجعل توفير وصول مباشر إلى مكونات الحاسوب المادية أمرًا صعبًا، لأنه إذا حاول نظام التشغيل الضيف توجيه المكونات المادية لإجراء وصول مباشر إلى الذاكرة (DMA) باستخدام عناوينها الفعلية، فمن المرجح أن يتسبب ذلك في تلف الذاكرة، نظرًا لعدم معرفة المكونات المادية بالربط بين عناوين الذاكرة الفعلية للضيف والمضيف للآلة الافتراضية المعنية. ويمكن تجنب هذا التلف إذا تدخل برنامج إدارة الأجهزة الافتراضية أو نظام التشغيل المضيف في عملية الإدخال/الإخراج لتطبيق التحويلات. ومع ذلك، فإن هذا الأسلوب يُسبب تأخيرًا في عملية الإدخال/الإخراج.

تقوم وحدة إدارة الذاكرة والإدخال/الإخراج (IOMMU) بحل هذه المشكلة عن طريق إعادة تعيين العناوين التي يتم الوصول إليها بواسطة الأجهزة وفقًا لجدول الترجمة نفسه (أو جدول ترجمة متوافق) المستخدم لتعيين عنوان الجهاز الضيف إلى عنوان الجهاز المضيف. [ 5 ]

المواصفات المنشورة

انظر أيضاً

مراجع

  1. "دعم أجهزة منصة إنتل لتقنية المحاكاة الافتراضية للإدخال/الإخراج" . intel.com. 10 أغسطس 2006. مؤرشف من الأصل في 20 يناير 2007. تم الاطلاع عليه في 7 يونيو 2014 .
  2. "لوحات سطح المكتب: التوافق مع تقنية المحاكاة الافتراضية من إنتل (Intel VT)" . intel.com. 2014-02-14 . تم الاطلاع عليه بتاريخ 2014-06-07 .
  3. "امتداد العنوان الفيزيائي - ذاكرة PAE ونظام التشغيل ويندوز" . مركز تطوير أجهزة مايكروسوفت ويندوز. 2005. تم الاطلاع عليه بتاريخ 7 أبريل 2008 .
  4. مولي بن يهودا؛ جيمي زينيديس؛ ميخال أوستروفسكي (27 يونيو 2007). "ثمن الأمان: تقييم أداء وحدة إدارة الذاكرة والإدخال/الإخراج" (ملف PDF) . وقائع ندوة لينكس 2007. أوتاوا، أونتاريو، كندا: أبحاث آي بي إم . تاريخ الاسترجاع: 28 فبراير 2013 .
  5. "أسئلة وأجوبة حول زين: كيف يمكنني استخدام الرسومات ثلاثية الأبعاد في دوم يو؟" . مؤرشف من الأصل بتاريخ 23 أبريل 2005. تم الاطلاع عليه بتاريخ 12 ديسمبر 2006 .
  6. "مواصفات تقنية المحاكاة الافتراضية للإدخال/الإخراج من AMD (IOMMU) - الإصدار 2.0" (ملف PDF) . amd.com. 24-03-2011 . تاريخ الاطلاع: 11-01-2014 .
  7. "مواصفات تقنية المحاكاة الافتراضية للإدخال/الإخراج من AMD (IOMMU)" (ملف PDF) . amd.com . تم الاطلاع عليه بتاريخ 9 يوليو 2020 .
  8. مبادئ تشغيل معالجات IBM 4300 في وضع ECPS:VSE (ملف PDF) (الطبعة الأولى ). IBM. يناير 1979. SA22-7070-0. مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 14 مارس 2012. تم الاطلاع عليه بتاريخ 30 يونيو 2021 . 
  9. "مواصفات بنية تقنية المحاكاة الافتراضية من إنتل للإدخال/الإخراج الموجه (VT-d)" (ملف PDF) . تم الاطلاع عليه بتاريخ 9 يوليو 2020 .
  10. "موارد DVMA وترجمات IOMMU" . تم الاطلاع عليه بتاريخ 30-04-2007 .
  11. "أمان التقسيم المنطقي في خادم IBM eServer pSeries 690" . مؤرشف من الأصل بتاريخ 10 مارس 2007. تم الاطلاع عليه بتاريخ 30 أبريل 2007 .
  12. "المواصفات الأساسية لـ PCI Express" . تم الاطلاع عليه بتاريخ 18-01-2023 .
  13. "ARM SMMU" . تم الاطلاع عليه بتاريخ 13-05-2013 .
  14. "ملحقات المحاكاة الافتراضية لمعالجات ARM" . مؤرشف من الأصل بتاريخ 2013-05-03 . تم الاطلاع عليه بتاريخ 2013-05-13 .