1. [الويكي](https://feex.it/wiki/)
2. [العتاد](https://feex.it/wiki/hardware/)
3. [الأنظمة والمعمارية](https://feex.it/wiki/hardware/system/)
4. AVX

# AVX

مرجع المعمارية: Feex

تضيف AVX (توسعات المتجهات المتقدمة) نموذج برمجة متجهية مع سجلات YMM وتعليمات بترميز VEX، بما في ذلك عمليات الفاصلة العائمة بعرض 256 بت. ويلزم توفر كل من دعم المعالج وإدارة الحالة بواسطة نظام التشغيل.

## ما تحتاج إلى معرفته

تضيف AVX (توسعات المتجهات المتقدمة) نموذج برمجة متجهية مع سجلات YMM وتعليمات بترميز VEX، بما في ذلك عمليات الفاصلة العائمة بعرض 256 بت. ويلزم توفر كل من دعم المعالج وإدارة الحالة بواسطة نظام التشغيل.

## كيف يعمل

توسع AVX سجلات المتجهات إلى 256 بت، بحيث تتداخل البتات الـ 128 السفلية لكل سجل YMM مع سجل XMM المقابل له. وتستخدم العديد من التعليمات صيغة المعاملات الثلاثة، مما يتيح للوجهة أن تختلف عن المدخلات. ويمكن لمتجه بعرض 256 بت أن يحمل 8 قيم فاصلة عائمة أحادية الدقة أو 4 قيم مزدوجة الدقة، ولكن التعليمات تختلف في أنواع معاملاتها وسلوكها.

## مواضع فائدتها

يمكن لحلقة تكرار رقمية جمع عدة قيم فاصلة عائمة مستقلة بتعليمة متجهة واحدة. ويجب على المترجم أو المكتبة توليد تلك الشيفرة وترتيب عمليات التحميل والمحاذاة والبواقي (tails) والتبعيات بشكل صحيح. ولا تقوم AVX بموازاة برنامج عشوائي عبر الأنوية تلقائيًا، كما تتطلب العمليات على الأعداد الصحيحة بعرض 256 بت التحقق من الملحق المناسب بدلاً من افتراض وجود AVX2.

## كيفية التحقق من الدعم والتمكين

تحقق من البت 28 لـ AVX، والبت 26 لـ XSAVE، والبت 27 لـ OSXSAVE في CPUID.01H:ECX. وفقط بعد تأكيد OSXSAVE، يجوز للبرنامج استخدام XGETBV مع ECX=0 والتحقق من أن البتين 1 و2 في XCR0 يمكنان حالة XMM وYMM. استخدم موجه بيئة تشغيل يخضع للصيانة بدلاً من تنفيذ AVX كتجربة استكشافية.

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

## ما لا تثبته هذه الميزة

لا يعني دعم AVX وحده توفر AVX2، أو FMA، أو F16C، أو AVX-VNNI، أو AVX-512. ولا يحدد عرض المتجه عدد الدورات التي تستغرقها التعليمة. وقد تكشف الآلة الافتراضية عن مجموعة تعليمات أصغر من تلك التي يمتلكها المضيف الفعلي.

## التوافق والأداء في الممارسة العملية

قس حمل العمل كاملاً باستخدام بيانات ممثلة للواقع. يمكن للمتجهات الأوسع تقليل عدد التعليمات مع ترك حركة الذاكرة، أو المزامنة، أو تكاليف التحويل دون تغيير. ويعتمد زمن وصول التعليمات والإنتاجية وسلوك استهلاك الطاقة على المعمارية الدقيقة وظروف التشغيل بدقة.

## قائمة عملية للتحقق

1. سجل الطراز الدقيق للمعالج أو المنصة، بالإضافة إلى إصدارات التطبيق ونظام التشغيل وبيئة التشغيل المعنية. واحتفظ بنص الخطأ الفعلي أو المتطلب كما هو.
2. راجع مرجع الشركة المصنعة لذلك الطراز بدقة، ثم افحص القدرة الفعلية وحالة التمكين في البيئة التي يعمل فيها البرنامج.
3. قارن كل متطلب من متطلبات الملف الثنائي أو الواجهة الخلفية المحددة. فوجود ميزة ذات اسم مشابه أو اسم بديل أو تصنيف تقني عام ليس كافيًا.
4. تأكد من أن التطبيق قد اختار التنفيذ المطلوب. واستخدم وسائله التشخيصية الموثقة والبديل الاحتياطي المدعوم عندما لا يتم استيفاء المتطلبات.
5. قم بإجراء تغيير مدعوم واحد في كل مرة وأعد تنفيذ نفس حمل العمل. واحتفظ بالتهيئة الأصلية ومسار الاسترداد متاحين.

## إذا كانت الميزة مدرجة ولكن يتعذر على البرنامج استخدامها

ابدأ بالمكون الفعلي الذي حدث فيه الفشل. تصف قاعدة بيانات الأجهزة القدرات المسجلة؛ ولكن يمكن لنظام التشغيل أو برنامج المراقبة الفوقي (hypervisor) إتاحة بيئة فعلية مختلفة. ويتطلب خطأ التعليمة غير الصالحة (illegal-instruction) أيضًا فحص التعليمة المتسببة في الخطأ وبنية الملف الثنائي، لأن التلف أو وجود تعليمة غير مدعومة لا صلة لها بالأمر قد يُحدث أعراضًا مماثلة.

ثبت إصدار التطبيق أو برنامج التشغيل أو بيئة التشغيل المدعومة للمنصة المعنية بدقة، واستخدم البنية الأساسية أو الاحتياطية الموثقة من الشركة المصنعة عند الحاجة. لا يمكن للتحديث البرمجي إنشاء تعليمة يفتقر إليها المعالج. ويجب أن تتبع تغييرات البرامج الثابتة وسياسات الأمان إجراءات الشركة المصنعة للنظام وخطة استرداد، بدلاً من اتباع وصفة تحسين عامة.

## الميزات ذات الصلة والفروق المفيدة

[AVX2](https://feex.it/wiki/l/ar/hardware/system/avx2/) · [AVX-512](https://feex.it/wiki/l/ar/hardware/system/avx-512/) · [FMA و FMA3](https://feex.it/wiki/l/ar/hardware/system/fma/) · [XSAVE](https://feex.it/wiki/l/ar/hardware/system/xsave/)

## مصادر ونطاق هذا التوضيح

[Intel 64 and IA-32 Architectures Software Developer's Manual](https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html) · [Linux kernel: استخدام ميزات XSTATE في مساحة المستخدم](https://docs.kernel.org/arch/x86/xstate.html)

تحدد هذه المراجع السلوك المعماري ومتطلبات البرمجيات. وهي لا تتحقق بشكل مستقل من قيمة كل ميزة على صفحة طراز عتاد مرتبطة. للحصول على دعم الطراز، استخدم أدلة الشركة المصنعة في تلك الصفحة وتحقق من تهيئة النظام الفعلية. لا تقدم هذه المقالة مقياس أداء أو شهادة اعتماد أو تاريخ مراجعة مستقلة.

## ذات صلة

ترتبط هذه الكيانات بهذه المقالة. يتم عرض النوع في كل رابط.

[AVX2: مرجع المعمارية](https://feex.it/wiki/l/ar/hardware/system/avx2/)[AVX-512: مرجع المعمارية](https://feex.it/wiki/l/ar/hardware/system/avx-512/)[FMA و FMA3: مرجع المعمارية](https://feex.it/wiki/l/ar/hardware/system/fma/)[XSAVE: مرجع المعمارية](https://feex.it/wiki/l/ar/hardware/system/xsave/)

## المصادر والتحقق

الملكية التحريرية: Feex. لم يتم تسجيل تاريخ مراجعة مستقلة. [كيف نقوم بالبحث](https://feex.it/wiki/research/).

- [Intel 64 and IA-32 Architectures Software Developer's Manual ](https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html)· يصف المجلدان 1 و2 عائلات التعليمات المحددة وCPUID؛ بينما يصف المجلد 3 عناصر التحكم في الحالة والترقيم الصفحي وVMX والحماية. ولا تثبت وثائق المعمارية الدعم لطراز معين.
- [Linux kernel: استخدام ميزات XSTATE في مساحة المستخدم ](https://docs.kernel.org/arch/x86/xstate.html)· حالة المتجهات الممكنة بنظام التشغيل، وحالة البلاطات الممكنة ديناميكيًا، ومتطلبات مكدس الإشارات، ومسار إذن AMX. لا يعد السلوك الخاص بنظام Linux وعدًا ينطبق على نظام تشغيل آخر.

## هل كانت هذه المقالة مفيدة؟

يكفي الإجابة بنعم أو لا. اختر سببًا إذا أردت، أو أضف ملاحظة قصيرة.

حقائق سريعة

الهوية المختصرة لهذه الصفحة. تظل المواصفات والمصادر والقصة الكاملة داخل المقالة.

---

Source: [Canonical Feex Wiki page](https://feex.it/wiki/l/ar/hardware/system/avx/)

[Developer guide](https://feex.it/wiki/developers/) | [API policy](https://feex.it/developers/api-policy/) | [Agent guidance](https://feex.it/wiki/llms.txt)
