ترجمة عناوين المستوى الثاني

تُعرف ترجمة عناوين المستوى الثاني (SLAT) ، والمعروفة أيضًا باسم الترحيل المتداخل ، بأنها تقنية افتراضية مدعومة بالأجهزة تجعل من الممكن تجنب النفقات العامة المرتبطة بجداول صفحات الظل التي تديرها البرامج .

دعمت AMD تقنية SLAT من خلال تقنية فهرسة المحاكاة الافتراضية السريعة (RVI) منذ إطلاق معالجات Opteron من الجيل الثالث (الاسم الرمزي: برشلونة). أما تطبيق Intel لتقنية SLAT، والمعروف باسم جدول الصفحات الموسع (EPT)، فقد تم تقديمه في بنية Nehalem الدقيقة الموجودة في بعض معالجات Core i7 و Core i5 و Core i3 .

تدعم امتدادات المحاكاة الافتراضية في معالجات ARM تقنية SLAT، المعروفة باسم جداول صفحات المرحلة الثانية، والتي توفرها وحدة إدارة الذاكرة من المرحلة الثانية (MMU) . يستخدم النظام الضيف وحدة إدارة الذاكرة من المرحلة الأولى (MMU). أُضيفت هذه الميزة كخيار إضافي في بنية ARMv7ve، وهي مدعومة أيضًا في بنية ARMv8 (32 بت و64 بت).

ملخص

أدى إدخال الوضع المحمي إلى بنية x86 مع معالج Intel 80286 إلى إدخال مفهومي الذاكرة الفعلية والذاكرة الافتراضية إلى البنى السائدة. عندما تستخدم العمليات عناوين افتراضية ويطلب أحد التعليمات الوصول إلى الذاكرة، يقوم المعالج بترجمة العنوان الافتراضي إلى عنوان فعلي باستخدام جدول الصفحات أو مخزن الترجمة المؤقت (TLB). عند تشغيل نظام افتراضي، يتم تخصيص ذاكرة افتراضية من النظام المضيف لتكون بمثابة ذاكرة فعلية للنظام الضيف، وتتم عملية ترجمة العناوين نفسها داخل النظام الضيف. هذا يزيد من تكلفة الوصول إلى الذاكرة نظرًا لضرورة تنفيذ ترجمة العناوين مرتين : مرة داخل النظام الضيف (باستخدام جدول صفحات الضيف المُحاكى برمجيًا)، ومرة ​​داخل النظام المضيف (باستخدام خريطة الذاكرة الفعلية [pmap]). 

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

لتحسين كفاءة هذه الترجمة، طبّق مُصنّعو المعالجات تقنيات تُعرف باسم SLAT. من خلال التعامل مع كل عنوان فعلي للضيف كعنوان افتراضي للمضيف، يُمكن لامتداد بسيط للأجهزة المستخدمة في تصفح جدول الصفحات غير الافتراضي (الذي أصبح الآن جدول صفحات الضيف) أن يتصفح جدول صفحات المضيف. في حالة جداول الصفحات متعددة المستويات، يُمكن اعتبار جدول صفحات المضيف مُتداخلًا داخل جدول صفحات الضيف. يُمكن لمعالج جدول صفحات الأجهزة التعامل مع طبقة الترجمة الإضافية كما لو كانت تُضيف مستويات إلى جدول الصفحات.

باستخدام خوارزمية SLAT وجداول الصفحات متعددة المستويات، يتضاعف عدد المستويات اللازمة للبحث عن الترجمة عندما يكون حجم عنوان النظام الضيف الفعلي مساويًا لحجم عنوان النظام الضيف الظاهري، وعند استخدام صفحات بنفس الحجم. هذا يزيد من أهمية تخزين القيم مؤقتًا من المستويات الوسيطة لجداول صفحات النظام المضيف والضيف. كما يُفيد استخدام صفحات كبيرة في جداول صفحات النظام المضيف لتقليل عدد المستويات (على سبيل المثال، في معمارية x86-64 ، يؤدي استخدام صفحات بحجم 2 ميجابايت إلى إزالة مستوى واحد في جدول الصفحات). وبما أن الذاكرة تُخصص عادةً للأجهزة الافتراضية بدقة منخفضة، فإن استخدام صفحات كبيرة لترجمة عنوان النظام الضيف الفعلي يُعد تحسينًا واضحًا، مما يقلل من عمق عمليات البحث والذاكرة المطلوبة لجداول صفحات النظام المضيف. 

التطبيقات

فهرسة المحاكاة الافتراضية السريعة

تقنية الفهرسة الافتراضية السريعة (RVI)، المعروفة باسم جداول الصفحات المتداخلة (NPT) خلال مرحلة تطويرها، هي تقنية افتراضية مدعومة بالأجهزة من الجيل الثاني من AMD لوحدة إدارة ذاكرة المعالج (MMU). [ 1 ] [ 2 ] تم تقديم RVI في الجيل الثالث من معالجات Opteron ، والتي تحمل الاسم الرمزي Barcelona . [ 3 ]

أظهرت ورقة بحثية لشركة VMware أن تقنية RVI تُحسّن الأداء بنسبة تصل إلى 42% مقارنةً بالتنفيذ البرمجي فقط (جدول الصفحات الظلي). [ 4 ] وأظهرت اختبارات أجرتها شركة Red Hat زيادةً في الأداء بمقدار الضعف في معايير OLTP . [ 5 ]

جداول الصفحات الموسعة

تُعدّ جداول الصفحات الموسعة (EPT) تقنية افتراضية من الجيل الثاني من إنتل لوحدة إدارة الذاكرة (MMU) في معمارية x86 . يدعم معالجات إنتل Core i3 و Core i5 و Core i7 و Core i9 ، وغيرها، تقنية EPT. [ 6 ] كما أنها موجودة في بعض معالجات VIA الأحدث . تُعدّ EPT ضرورية لتشغيل المعالج المنطقي مباشرةً في الوضع الحقيقي ، وهي ميزة تُعرف في مصطلحات إنتل باسم "الضيف غير المقيد"، وقد طُرحت في معمارية Westmere الدقيقة . [ 7 ] [ 8 ]

وفقًا لورقة تقييم من VMware، "يوفر EPT مكاسب في الأداء تصل إلى 48% في معايير الأداء المكثفة لوحدة إدارة الذاكرة (MMU) وتصل إلى 600% في معايير الأداء الدقيقة المكثفة لوحدة إدارة الذاكرة (MMU)"، على الرغم من أنه قد يتسبب فعليًا في تشغيل التعليمات البرمجية بشكل أبطأ من التنفيذ البرمجي في بعض الحالات الخاصة . [ 9 ]

المرحلة الثانية - جداول الصفحات

يتوفر دعم جدول الصفحات من المرحلة الثانية في معالجات ARM التي تنفذ مستوى الاستثناء 2 (EL2).

الإضافات

التحكم في التنفيذ القائم على الوضع

يُعدّ التحكم في التنفيذ القائم على الوضع ( MBEC ) امتدادًا لتطبيقات x86 SLAT، وقد ظهر لأول مرة في معالجات Intel Kaby Lake و AMD Zen 2 (ويُعرف في الأخيرة باسم Guest Mode Execute Trap أو GMET ). [ 10 ] يُوسّع هذا الامتداد بت التنفيذ في جدول الصفحات الموسّع (جدول صفحات الضيف) إلى بتين - أحدهما لتنفيذ المستخدم، والآخر لتنفيذ المشرف. [ 11 ]

تم تقديم تقنية MBEC لتسريع تنفيذ التعليمات البرمجية غير الموقعة في وضع المستخدم للضيف مع ضمان سلامة التعليمات البرمجية في وضع النواة. في هذا التكوين، يمكن وضع علامة "تنفيذ" على صفحات التعليمات البرمجية غير الموقعة في وضع المستخدم، ولكن يجب وضع علامة " عدم تنفيذ" عليها في وضع النواة. وللحفاظ على السلامة من خلال ضمان توقيع جميع التعليمات البرمجية القابلة للتنفيذ في وضع النواة للضيف حتى في حالة اختراق نواة الضيف، لا تملك نواة الضيف صلاحية تعديل بت التنفيذ لأي صفحات ذاكرة. يتم تفويض تعديل بت التنفيذ، أو تبديل جدول صفحات الضيف الذي يحتوي على بت التنفيذ، إلى كيان ذي امتيازات أعلى، وهو في هذه الحالة برنامج إدارة الأجهزة الافتراضية المضيف . بدون تقنية MBE، يجب أن يصاحب كل دخول من تنفيذ وضع المستخدم غير الموقع إلى تنفيذ وضع النواة الموقع خروج من الجهاز الافتراضي إلى برنامج إدارة الأجهزة الافتراضية لإجراء تبديل إلى جدول صفحات وضع النواة. وفي العملية العكسية، يجب أن يصاحب الخروج من وضع النواة الموقع إلى وضع المستخدم غير الموقع خروج من الجهاز الافتراضي لإجراء تبديل آخر لجدول الصفحات. تؤثر مخارج الجهاز الظاهري بشكل كبير على أداء تنفيذ التعليمات البرمجية. [ 12 ] [ 13 ] مع MBE، يمكن مشاركة جدول الصفحات نفسه بين التعليمات البرمجية غير الموقعة في وضع المستخدم والتعليمات البرمجية الموقعة في وضع النواة، مع مجموعتين من أذونات التنفيذ اعتمادًا على سياق التنفيذ. لم تعد مخارج الجهاز الظاهري ضرورية عند تبديل سياق التنفيذ بين وضع المستخدم غير الموقع ووضع النواة الموقع.

الدعم في البرمجيات

تتضمن برامج إدارة الأجهزة الافتراضية التي تدعم SLAT ما يلي:

تتطلب بعض برامج إدارة الأجهزة الافتراضية المذكورة أعلاه SLAT لكي تعمل على الإطلاق (وليس فقط بشكل أسرع) لأنها لا تقوم بتنفيذ جدول صفحات الظل البرمجي؛ القائمة غير محدثة بالكامل لتعكس ذلك.

انظر أيضاً

  • AMD-V (الاسم الرمزي: Pacifica) الجيل الأول من دعم المحاكاة الافتراضية للأجهزة من AMD 
  • جدول الصفحات
  • VT-x

مراجع

  1. "فهرسة المحاكاة الافتراضية السريعة باستخدام Windows Server 2008 R2 Hyper-V | مدونة المحاكاة الافتراضية" . Blogs.amd.com. 23 مارس 2009. تاريخ الاسترجاع: 16 مايو 2010 .
  2. "الترقيم المتداخل لـ AMD-V" (ملف PDF) . يوليو 2008. مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 5 سبتمبر 2012. تم الاطلاع عليه بتاريخ 11 ديسمبر 2013 .
  3. "مهندس من VMware يُشيد بتقنية جداول الصفحات المتداخلة من AMD" . Searchservervirtualization.techtarget.com. 21 يوليو 2008. تاريخ الاطلاع: 16 مايو 2010 .
  4. 1 2 "تقييم أداء AMD RVI Hardware Assist" (ملف PDF) . تم الاطلاع عليه بتاريخ 16-05-2010 .
  5. "مجلة ريد هات | يستخدم نظام ريد هات إنتربرايز لينكس 5.1 تقنية الترحيل المتداخل على معالج AMD Barcelona لتحسين أداء الأنظمة الافتراضية الضيفة" . Magazine.redhat.com. 20 نوفمبر 2007. تاريخ الاطلاع: 16 مايو 2010 .
  6. "قائمة تقنيات المحاكاة الافتراضية من إنتل" . Ark.intel.com . تم الاطلاع عليه بتاريخ 17 فبراير 2014 .
  7. أضافت إنتل وضع الضيف غير المقيد على معمارية Westmere الدقيقة ووحدات المعالجة المركزية اللاحقة من إنتل، وتستخدم EPT لترجمة الوصول إلى عنوان الضيف الفعلي إلى عنوان المضيف الفعلي. مع هذا الوضع، يُسمح بـ VMEnter بدون تمكين الترحيل.
  8. " دليل مطوري معمارية Intel 64 و IA-32، المجلد 3C" (ملف PDF) . Intel . تم الاطلاع عليه بتاريخ 13 ديسمبر 2015. إذا كانت قيمة التحكم في تنفيذ الجهاز الظاهري "الضيف غير المقيد" تساوي 1، فيجب أن تكون قيمة التحكم في تنفيذ الجهاز الظاهري "تمكين EPT" تساوي 1 أيضًا.
  9. تقييم أداء تقنية Intel EPT Hardware Assist
  10. كونينغهام، أندرو (27 أغسطس 2021). "لماذا يفرض نظام التشغيل ويندوز 11 متطلبات صارمة للأجهزة، وفقًا لمايكروسوفت؟" . آرس تكنيكا . تم الاطلاع عليه بتاريخ 18 مارس 2024 .
  11. مولنيكس، ديفيد ل. "نظرة عامة فنية على عائلة معالجات إنتل زيون القابلة للتطوير" . إنتل . تم الاطلاع عليه في 3 سبتمبر 2021 .
  12. تحليل سطح الهجوم لأمن ويندوز 10 القائم على المحاكاة الافتراضية
  13. أركلي، برنت. "التأثير المحتمل لتقنية حماية الأجهزة (HVCI) على الأداء" . مدونة بوريك لإدارة الأجهزة القديمة والحديثة . تم الاطلاع عليه بتاريخ 3 سبتمبر 2021 .
  14. "فهرسة المحاكاة الافتراضية السريعة لـ AMD-V وترجمة عناوين المستوى الثاني لـ Hyper-V في Windows Server 2008 R2" . Doing IT Virtual . تاريخ الاسترجاع: 16 مايو 2010 .
  15. بوت، إد (2011-12-08). "هل يمتلك جهاز الكمبيوتر الخاص بك ما يلزم لتشغيل Hyper-V في نظام التشغيل Windows 8؟" . ZDNet . تم الاطلاع عليه بتاريخ 2014-02-17 .
  16. "الدعم والسائقون" . تم الاطلاع عليه بتاريخ 13 ديسمبر 2015 .
  17. "Hypervisor | وثائق مطوري Apple" .
  18. "مبتدئو النواة: لينكس 2 6 26" .
  19. شينغ يانغ (12 يونيو 2008). "توسيع نطاق KVM باستخدام تقنية المحاكاة الافتراضية الجديدة من إنتل" (ملف PDF) . linux-kvm.org . منتدى KVM. مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 27 مارس 2014. تم الاطلاع عليه بتاريخ 17 مارس 2013 .
  20. شركة Parallels. "KB Parallels: ما الجديد في Parallels Desktop 5 لنظام Mac" . kb.parallels.com . تم الاطلاع عليه بتاريخ 12 أبريل 2016 .{{cite web}}له |last=اسم عام ( مساعدة )
  21. "سجل التغييرات لبرنامج VirtualBox 2.0" . مؤرشف من الأصل بتاريخ 22-10-2014.
  22. ليز. "ملاحظات إصدار VMware Workstation 14 Pro" . docs.vmware.com . تم الاطلاع عليه بتاريخ 19 نوفمبر 2020 .
  23. "معايير الأداء: Xen 3.2.0 على معالج AMD رباعي النواة Opteron مع RVI" . 15-06-2008. مؤرشف من الأصل في 01-09-2011 . تم الاطلاع عليه في 13-05-2011 .
  24. "قائمة توافق الأجهزة (HCL)" . نظام التشغيل Qubes . تم الاسترجاع في 2020-01-06 .
  25. تنفيذ دعم محاكاة BIOS لـ BHyVe: برنامج إدارة الأجهزة الافتراضية BSD
  26. "21.7. FreeBSD كمضيف مع bhyve" . تم الاطلاع عليه بتاريخ 13 ديسمبر 2015 .
  27. قريبًا على OpenBSD/amd64: برنامج إدارة الأجهزة الافتراضية الأصلي
  28. vmm(4) — مراقب الآلة الافتراضية
  29. تصميم إدارة الذاكرة عالي المستوى لـ ACRN
  30. "الميزات/VT-d - QEMU" . wiki.qemu.org . تم الاطلاع عليه بتاريخ 12-11-2023 .
  31. "توضيحات حول Hyper-V - وثائق QEMU" . www.qemu.org . تم الاطلاع عليه بتاريخ 12 نوفمبر 2023 .
  32. "إضافة ترجمة Intel VT-d المتداخلة [ LWN.net ] " . lwn.net . تم الاسترجاع في 12 نوفمبر 2023 .
  33. "تقنية المحاكاة الافتراضية من إنتل: كيف تعمل تقنيات VT-x وKVM وQEMU معًا" . باينري ديبت . 14 أكتوبر 2018. تاريخ الاسترجاع: 12 نوفمبر 2023 .
  34. "Features/KVMNestedVirtualizationTestsuite - QEMU" . wiki.qemu.org . تم الاطلاع عليه بتاريخ 12 نوفمبر 2023 .