NPT و RVI
بتتسمى برضه NPT / RVI
الـ NPT، أو Nested Page Tables، هي إمكانية المرحلة التانية لترجمة ذاكرة الـ guest من AMD، ومرتبطة برضه بـ Rapid Virtualization Indexing، RVI. هي المكافئ في الغرض لتقنية Intel EPT.
اللي محتاج تعرفه
الـ NPT، أو Nested Page Tables، هي إمكانية المرحلة التانية لترجمة ذاكرة الـ guest من AMD، ومرتبطة برضه بـ Rapid Virtualization Indexing، RVI. هي المكافئ في الغرض لتقنية Intel EPT.
بيشتغل إزاي
جداول صفحات الـ guest بتترجم الأول عناوين الـ guest الافتراضية لعناوين guest فيزيائية. جداول الصفحات المتداخلة (nested) اللي بيتحكم فيها الـ hypervisor بتترجم عناوين الـ guest الفيزيائية لعناوين النظام الفيزيائية. مرحلتين الترجمة بالأذونات بتاعتهم بيشاركوا في الوصول للذاكرة، مع سلوك محدد للأخطاء وإلغاء الصلاحية (invalidation).
المجالات المفيدة فيها
الـ VM تقدر تدير مساحات العناوين الخاصة بيها في نفس الوقت اللي الـ host بيعين فيه ذاكرة الـ guest على الصفحات الفيزيائية الفعلية للجهاز. الـ hypervisor لازم يتعامل صح مع تغييرات التعيين وذاكرة التخزين المؤقت للترجمة بدل ما يتعامل مع الـ nested paging على إنه بحث ثابت ومستقر.
طريقة فحص الدعم والتمكين
حدد ميزة AMD SVM الخاصة بالـ nested paging بعد ما تتأكد من نطاق الـ extended leaf ودعم SVM. اتأكد إن الـ hypervisor مفعل وبيدعم الإعداد المطلوب فعلاً، بما في ذلك أي متطلبات للـ nested-guest.
النشر الافتراضى فيه طبقات متعددة: الإمكانية المادية، وسماح الـ firmware، والـ hypervisor النشط على المضيف، وإمكانيات الضيف المعروضة، ودعم نظام تشغيل الضيف. افحص الطبقة اللى بتشتغل فيها العملية فعلياً، بما فى ده المحاكاة الافتراضية المتداخلة لو كانت موجودة.
اللى الميزة مش بتثبته
NPT مبتعنيش وجود عزل أجهزة الـ IOMMU، أو SEV، أو كل خيارات الـ large-page والـ nested-virtualization. تقنية RVI مش تعليمة إضافية بتشغلها التطبيقات. تقليل العبء الإضافي للترجمة بيعتمد على حمل الشغل ومش مضاعف أداء ثابت للكل.
التوافق والأداء فى الممارسة العملية
تنفيذ المعالج، وترجمة ذاكرة الضيف، وإعادة تعيين DMA للأجهزة هى إمكانيات منفصلة. متستنتجش التمرير او العزل من حقل محاكاة افتراضية واحد. استخدم أدوات التشخيص المدعومة فى الـ hypervisor ومتطلبات المنصة/الجهاز الدقيقة.
قائمة تحقق عملية للتأكد
- سجل الموديل الدقيق للمعالج او المنصة وإصدارات التطبيق ونظام التشغيل وبيئة التشغيل المشاركة. احتفظ بنص الخطأ او المتطلب الفعلى زى ما هو.
- راجع مرجع الشركة المصنعة للموديل الدقيق ده، وبعدين افحص الإمكانية الفعلية وحالة التمكين فى البيئة اللى شغال فيها البرنامج.
- قارن كل متطلب للملف الثنائى (binary) او الواجهة الخلفية (backend) المختارة. وجود ميزة باسم شبه كده او اسم مستعار او تصنيف تقنى عام مش كفاية.
- اتأكد ان التطبيق اختار التنفيذ المطلوب. استخدم أدوات التشخيص الموثقة والبديل الاحتياطى المدعوم لما المتطلبات متتحققش.
- اعمل تغيير واحد مدعوم فى المرة الواحدة وكرر نفس عبء العمل. احتفظ بالإعداد الأصلى ومسار الاسترجاع متاحين.
لو الميزة مدرجة بس البرمجيات مش قادرة تستخدمها
ابدأ بالمكون اللى فشل بالتحديد. قاعدة بيانات العتاد بتوصف الإمكانية المسجلة؛ لكن نظام التشغيل او الـ hypervisor ممكن يعرضوا بيئة فعلية تانية. خطأ التعليمة غير الصالحة (illegal-instruction) بيحتاج برضه فحص للتعليمة الفعلية اللى سببت العطل والنسخة المبنية من الثنائى، علشان التلف او وجود تعليمة تانية غير مدعومة ممكن ينتج عنهم نفس العرض.
ثبت إصدار التطبيق او برنامج التشغيل او بيئة التشغيل المدعومة للمنصة بالتحديد، واستخدم بنية الأساس (baseline) او البنية الاحتياطية الموثقة من الشركة المصنعة لو لزم الأمر. تحديث البرامج مش هيخلق تعليمة المعالج نفسه بيفتقدها. تغييرات الـ Firmware وسياسات الأمان لازم تتبع إجراءات الشركة المصنعة للنظام وخطة استرجاع بدل اتباع وصفة تحسين عامة.
المصادر ونطاق الشرح ده
AMD CPUID Specification, publication 25481 · AMD64 Architecture Programmer's Manual, Volume 2: System Programming
المراجع دى بتحدد السلوك المعمارى ومتطلبات البرمجيات. هى مش بتتحقق بشكل مستقل من كل قيمة ميزة فى صفحة موديل العتاد المربوطة. لدعم الموديل، استخدم أدلة الشركة المصنعة فى الصفحة دى وافحص إعدادات النظام الفعلية. المقال ده مش بيقدم تقييم أداء، او شهادة اعتماد، او تاريخ مراجعة مستقلة.
المصادر والتحقق
حقوق التحرير: Feex. مفيش تاريخ مراجعة مستقل متسجل. إزاي بنعمل أبحاثنا.
- AMD CPUID Specification, publication 25481 · مرجع معمارى مؤرشف لوظائف AMD CPUID وتعاريف البِتات المعتمدة. استخدم مرجع برمجة المعالج الحالى للامتدادات الخاصة بالأجيال الأحدث.
- AMD64 Architecture Programmer's Manual, Volume 2: System Programming · برمجة النظام، و SVM، والترجمة المتداخلة (nested translation)، المراجعة 3.46. عارض الوثائق الحالى بيطلب تشغيل JavaScript؛ الروابط للوثائق الأقدم ممكن تكون اتوقفت.
هل المقالة دي كانت مفيدة؟
مجرد نعم أو لأ كفاية. اختار سبب لو تحب، أو اكتب ملاحظة سريعة.
شكراً ليك. ده بيساعدنا نحسن الصفحة دي.