تذفق اس آي ام دي المعززة (اس اس اي)

في مجال الحوسبة، يعد **تذفق اس آي ام دي المعززة** (**اس اس أي**)  مجموعة تعليمات نوع تعليمة واحدة وبيانات متعددة (اس آي ام دي) كإمتداد إلى بنية إكس 86, تم تصميمها بواسطة إنتل وتم عرضها في سنة 1999 مع سلسلة معالجاتها نوع بنتيوم 3, وذلك بعد فترة وجيزة من ظهور تقنية `3DNow!` من إي إم دي. تحتوي **اس اس أي** على 70 تعليمة جديدة (65 استذكار  باستخدام 70 ترميزًا), يعمل معظمها على بيانات النقطة العائمة ذات الدقة الواحدة. يمكن أن تؤدي تعليمات اس آي ام دي إلى زيادة الأداء بشكل كبير عند إجراء نفس العمليات بالضبط على كائنات ببيانات متعددة. التطبيقات النموذجية هي معالجة الإشارات الرقمية ومعالجة والرسومات.

كانت أول محاولة في مجال الـ اس آي ام دي في أي إيه-32 من قبل شركة انتل هو مجموعة تعليمات إم إم إكس. واجهت **إم إم إكس** مشكلتين رئيسيتين: انها تُعيد استخدام سجلات الفاصلة العائمة `x87` الحالية جاعلة وحدات المعالجة المركزية غير قادرة على العمل على بيانات الفاصلة العائمة وبيانات اس آي ام دي في نفس الوقت، وعملت فقط على الأعداد الصحيحة. تعمل تعليمات النقطة العائمة **اس اس أي** على مجموعة تسجيل مستقلة جديدة, وسجلات **إكس ام ام**, وتضيف بعض الإرشادات الصحيحة التي تعمل على سجلات **إم إم إكس**.

## السجلات
أضاف **اس اس أي** في الأصل ثمانية سجلات 128 بت جديدة تُعرف باسم `XMM0` إلى `XMM7` . في حين أضافت ملحقات ايه ام دي 86-64 من AMD (التي كانت تسمى في الأصل *x86-64*) ثمانية سجلات أخرى من `XMM8` إلى `XMM15` , ويتم تكرار هذا الاضافات في بنية انتل 64 . يوجد أيضًا سجل تحكم / حالة 32 بت جديد، `MXCSR` . التسجيلات من `XMM8` إلى `XMM15` يمكن الوصول إليها فقط في وضع التشغيل 64 بت.
وصلة=//upload.wikimedia.org/wikipedia/commons/thumb/5/5a/XMM registers.svg/220px-XMM registers.svg.png|يسار|220x220بك
استخدم `SSE` نوع بيانات واحدًا فقط لمسجلات **إكس ام ام**:

* أربعة أرقام فاصلة عائمة أحادية الدقة 32 بت

ستقوم `SSE2` لاحقًا بتوسيع استخدام سجلات `XMM` لتشمل:

* رقمين 64 بت للفاصلة العائمة مزدوجة الدقة أو
* عددين صحيحين 64 بت أو,
* أربعة أعداد صحيحة 32 بت أو,
* ثمانية أعداد صحيحة قصيرة 16 بت أو,
* ستة عشر بايت أو حرفًا بحجم 8 بت.

نظرًا لأن سجلات 128 بت هذه عبارة عن اوضاع جهاز إضافية يجب أن يحتفظ بها نظام التشغيل عبر مفاتيح تبديل المهام، يتم تعطيلها افتراضيًا حتى يقوم نظام التشغيل بتمكينها بشكل صريح. هذا يعني أن نظام التشغيل يجب أن يعرف كيفية استخدام تعليمات `FXSAVE` و `FXRSTOR`, وهي عبارة عن زوج ممتد من التعليمات يمكنه حفظ جميع حالات تسجيل إكس 86 و `SSE` في وقت واحد. تمت إضافة هذا الدعم بسرعة إلى جميع أنظمة التشغيل IA-32 الرئيسية.

أول وحدة معالجة مركزية تدعم `SSE` هو معالج بنتيوم 3, يتشارك موارد التنفيذ بين `SSE` ووحدة النقطة العائمة (`FPU`). بينما يمكن للتطبيق المترجم تشذير تعليمات `FPU` و `SSE` جنبًا إلى جنب, فإن بنتيوم 3 لن يصدر تعليمات `FPU` أو `SSE` في دورة الساعة نفسها. يقلل هذا القيد من فعالية خطوط الأنابيب, لكن سجلات `XMM` المنفصلة تسمح بخلط عمليات SIMD والنقطة العائمة العددية دون اضعاف الأداء من تبديل وضع `MMX` / والنقطة العائمة الصريح.

## تعليمات SSE
قدمت SSE تعليمات الفاصلة العائمة العددية والمعبأة.

### تعليمات النقطة العائمة

* ذاكرة للتسجيل / التسجيل في الذاكرة / التسجيل للتسجيل حركة البيانات
** عددي - `MOVSS`
** معبأة - `MOVAPS, MOVUPS, MOVLPS, MOVHPS, MOVLHPS, MOVHLPS, MOVMSKPS`
* حسابي
** عددي - `ADDSS, SUBSS, MULSS, DIVSS, RCPSS, SQRTSS, MAXSS, MINSS, RSQRTSS`
** معبأة - `ADDPS, SUBPS, MULPS, DIVPS, RCPPS, SQRTPS, MAXPS, MINPS, RSQRTPS`
* قارن
** عددي - `CMPSS, COMISS, UCOMISS`
** معبأة - `CMPPS`
* خلط البيانات وتفريغها
** معبأة - `SHUFPS, UNPCKHPS, UNPCKLPS`
* تحويل نوع البيانات
** عددي - `CVTSI2SS, CVTSS2SI, CVTTSS2SI`
** معبأة - `CVTPI2PS, CVTPS2PI, CVTTPS2PI`
* العمليات المنطقية على مستوى البت
** معبأة - `ANDPS, ORPS, XORPS, ANDNPS`

### تعليمات العدد الصحيح

* حسابي
** `PMULHUW, PSADBW, PAVGB, PAVGW, PMAXUB, PMINUB, PMAXSW, PMINSW`
* حركة البيانات
** `PEXTRW, PINSRW`
* أخرى
** `PMOVMSKB, PSHUFW`

### تعليمات أخرى

* إدارة `MXCSR`
** `LDMXCSR, STMXCSR`
* ذاكرة التخزين المؤقت وإدارة الذاكرة
** `MOVNTQ, MOVNTPS, MASKMOVQ, PREFETCH0, PREFETCH1, PREFETCH2, PREFETCHNTA, SFENCE`

## التعريف
يمكن استخدام البرامج التالية لتحديد إصدارات `SSE` المدعومة على النظام، إن وجدت

* أداة تعريف معالج انتل 
* سي بي يو زيد - أداة تعريف وحدة المعالجة المركزية واللوحة الأم والذاكرة.
* `lscpu` - يتم توفيرها بواسطة حزمة `util-linux` في معظم توزيعات لينكس.

## المراجع

## روابط خارجية

* دليل إنتل الجوهر

تصنيف:أوامر إكس 86
تصنيف:برمجة