SSE4
SSE4 ( امتدادات SIMD المتدفقة 4 ) هي مجموعة تعليمات لوحدة المعالجة المركزية SIMD تُستخدم في بنية Intel Core الدقيقة و AMD K10 (K8L) . أُعلن عنها في 27 سبتمبر 2006، في منتدى مطوري Intel لخريف 2006 ، بتفاصيل مبهمة في ورقة بيضاء ؛ [ 1 ] ثم توفرت تفاصيل أكثر دقة حول 47 تعليمة في منتدى مطوري Intel لربيع 2007 في بكين ، خلال العرض التقديمي. [ 2 ] تُعدّ SSE4 امتدادًا لمجموعة تعليمات SSE3 التي صدرت في أوائل عام 2004. جميع البرامج التي تستخدم تعليمات Intel SIMD السابقة (مثل SSE3) متوافقة مع المعالجات الدقيقة الحديثة التي تدعم تعليمات SSE4. تستمر جميع البرامج الحالية في العمل بشكل صحيح دون تعديل على المعالجات الدقيقة التي تتضمن SSE4، وكذلك في وجود التطبيقات الحالية والجديدة التي تتضمن SSE4. [ 3 ]
على غرار مجموعات تعليمات SIMD السابقة لوحدات المعالجة المركزية، يدعم SSE4 ما يصل إلى 16 مسجلاً، عرض كل منها 128 بت، والتي يمكنها تحميل أربعة أعداد صحيحة 32 بت، أو أربعة أعداد عشرية أحادية الدقة 32 بت، أو عددين عشريين مزدوجي الدقة 64 بت. [ 1 ] تعالج عمليات SIMD، مثل الجمع/الضرب العنصري للمتجهات والجمع/الضرب القياسي للمتجهات، عدة بايتات من البيانات في تعليمة واحدة لوحدة المعالجة المركزية. قدم SSE4.2 عمليات جديدة على سلاسل SIMD، بما في ذلك تعليمة لمقارنة جزأين من السلاسل يصل طول كل منهما إلى 16 بايت. [ 1 ] يُعد SSE4.2 مجموعة فرعية من SSE4، وقد صدر بعد بضع سنوات من الإصدار الأولي لـ SSE4.
مجموعات فرعية من SSE4
تتألف مجموعة تعليمات Intel SSE4 من 54 تعليمة. وتتوفر مجموعة فرعية منها، تتألف من 47 تعليمة، ويُشار إليها باسم SSE4.1 في بعض وثائق Intel، في معالجات Penryn . بالإضافة إلى ذلك، تتوفر مجموعة فرعية ثانية، SSE4.2 ، التي تتألف من التعليمات السبع المتبقية، لأول مرة في معالجات Core i7 المبنية على معمارية Nehalem . وتُعزو Intel الفضل في تطوير هذه المجموعة من التعليمات إلى ملاحظات المطورين.
بدأت AMD مع معالجات Barcelona بتقديم مجموعة تعليمات SSE4a ، التي تضم أربع تعليمات SSE4 وأربع تعليمات SSE جديدة. هذه التعليمات غير موجودة في معالجات Intel التي تدعم SSE4.1، ولم تبدأ معالجات AMD بدعم SSE4.1 وSSE4.2 (مجموعة تعليمات SSE4 الكاملة) إلا في معالجات FX المبنية على معمارية Bulldozer . مع SSE4a، تم تقديم ميزة SSE غير المحاذية، مما يعني أن تعليمات التحميل غير المحاذية كانت بنفس سرعة نظيراتها المحاذية على العناوين المحاذية. كما سمحت هذه الميزة بتعطيل فحص المحاذاة في عمليات SSE غير المتعلقة بالتحميل التي تصل إلى الذاكرة. [ 4 ] لاحقًا، قدمت Intel تحسينات مماثلة في السرعة لـ SSE غير المحاذية في معالجات Nehalem، لكنها لم تقدم الوصول غير المحاذي بواسطة تعليمات SSE غير المتعلقة بالتحميل إلا مع AVX . [ 5 ]
تشابه الأسماء
ما يُعرف الآن باسم SSSE3 (امتدادات SIMD التكميلية للبث 3)، والذي طُرح في سلسلة معالجات Intel Core 2 ، كان يُشار إليه باسم SSE4 في بعض وسائل الإعلام إلى أن اعتمدت Intel اسم SSSE3. في البداية، لم تكن Intel تخطط لتخصيص اسم خاص لهذه الامتدادات، التي أُطلق عليها داخليًا اسم Merom New Instructions، وهو ما انتقده بعض الصحفيين. [ 6 ] في النهاية، أوضحت Intel الأمر وخصصت اسم SSE4 لامتداد مجموعة التعليمات التالي. [ 7 ]
تستخدم شركة إنتل مصطلح التسويق HD Boost للإشارة إلى SSE4. [ 8 ]
تعليمات جديدة
على عكس جميع الإصدارات السابقة من SSE، يحتوي SSE4 على تعليمات تُنفذ عمليات غير مخصصة لتطبيقات الوسائط المتعددة. ويضم عددًا من التعليمات التي يُحدد عملها بواسطة حقل ثابت، ومجموعة من التعليمات التي تأخذ XMM0 كمعامل ثالث ضمني.
يتم تمكين العديد من هذه التعليمات بواسطة محرك التبديل أحادي الدورة في Penryn. (عمليات التبديل تعيد ترتيب البايتات داخل السجل.)
SSE4.1
تم تقديم هذه التعليمات مع معمارية Penryn الدقيقة ، وهي نسخة مصغرة بتقنية 45 نانومتر من معمارية Intel Core الدقيقة . ويُشار إلى الدعم عبر علامة CPUID.01H:ECX.SSE41[Bit 19].
| تعليمات | وصف |
|---|---|
MPSADBW | احسب ثمانية مجاميع إزاحة للفروق المطلقة، أربعة في كل مرة (أي، | x 0 −y 0 | + | x 1 −y 1 | + | x 2 −y 2 | + | x 3 −y 3 | ، | x 0 −y 1 | + | x 1 −y 2 | + | x 2 −y 3 | + | x 3 −y 4 | ، ...، | x 0 −y 7 | + | x 1 −y 8 | + | x 2 −y 9 | + | x 3 −y 10 | )؛ هذه العملية مهمة لبعض برامج الترميز عالية الدقة ، وتسمح بحساب فرق كتلة 8×8 في أقل من سبع دورات. [ 9 ] يشير بت واحد من المعامل الفوري المكون من ثلاثة بتات إلى ما إذا كان يجب استخدام y 0 .. y 10 أو y 4 .. y 14 من معامل الوجهة، ويشير البتان الآخران إلى ما إذا كان يجب استخدام x 0 ..x 3 ، x 4 ..x 7 ، x 8 ..x 11 أو x 12 ..x 15 من المصدر. |
PHMINPOSUW | يقوم بتعيين الكلمة السفلية غير الموقعة ذات 16 بت في الوجهة إلى أصغر كلمة غير موقعة ذات 16 بت في المصدر، والكلمة التالية من الأسفل إلى فهرس تلك الكلمة في المصدر. |
PMULDQ | عملية ضرب "طويلة" ذات إشارة 32 بت مضغوطة، حيث يتم ضرب اثنين (الأول والثالث) من أصل أربعة أعداد صحيحة مضغوطة مما يعطي نتيجتين مضغوطتين 64 بت. |
PMULLD | عملية الضرب "المنخفضة" ذات الإشارة 32 بت المعبأة، حيث يتم ضرب أربع مجموعات معبأة من الأعداد الصحيحة مما ينتج عنه أربع نتائج معبأة 32 بت. |
DPPS،DPPD | الضرب النقطي لبيانات AOS (مصفوفة الهياكل). يتطلب هذا معاملًا فوريًا يتكون من أربعة بتات (أو اثنين لـ DPPD) لتحديد أي من المدخلات المراد ضربها وتجميعها، وأربعة بتات أخرى (أو اثنين لـ DPPD) لتحديد ما إذا كان سيتم وضع 0 أو ناتج الضرب النقطي في الحقل المناسب من المخرجات. |
BLENDPS، BLENDPD، BLENDVPS، BLENDVPD، PBLENDVB،PBLENDW | النسخ المشروط للعناصر في موقع واحد مع موقع آخر، بناءً على (بالنسبة للشكل غير V) البتات الموجودة في المعامل الفوري، و (بالنسبة للشكل V) البتات الموجودة في السجل XMM0. |
PMINSB، PMAXSB، PMINUW، PMAXUW، PMINUD، ، PMAXUD، PMINSD،PMAXSD | الحد الأدنى/الأقصى المعبأ لأنواع مختلفة من معاملات الأعداد الصحيحة |
ROUNDPS، ROUNDSS، ROUNDPD،ROUNDSD | قم بتقريب القيم في سجل الفاصلة العائمة إلى أعداد صحيحة، باستخدام أحد أوضاع التقريب الأربعة المحددة بواسطة معامل فوري. |
INSERTPS، PINSRB، PINSRD/ PINSRQ، EXTRACTPS، PEXTRB،PEXTRD/PEXTRQ | تقرأ تعليمات INSERTPS وPINSR 8 أو 16 أو 32 بت من سجل x86 أو موقع ذاكرة، ثم تُدرجها في حقل في سجل الوجهة المحدد بواسطة معامل فوري. بينما تقرأ تعليمات EXTRACTPS وPEXTR حقلاً من سجل المصدر، ثم تُدرجه في سجل x86 أو موقع ذاكرة. على سبيل المثال، PEXTRD eax, [xmm0], 1; EXTRACTPS [addr+4*eax], xmm1, 1 تُخزّن الحقل الأول من xmm1 في العنوان المحدد بواسطة الحقل الأول من xmm0. |
PMOVSXBW، PMOVZXBW، PMOVSXBD، PMOVZXBD، ، PMOVSXBQ، PMOVZXBQ، PMOVSXWD، PMOVZXWD، PMOVSXWQ، ، PMOVZXWQ، PMOVSXDQ،PMOVZXDQ | امتداد علامة التعبئة/الصفر إلى أنواع أوسع |
PTEST | يشبه هذا الأمر TESTالتعليمات السابقة، حيث يقوم بتعيين علامة Z إلى نتيجة عملية AND بين معاملاته: يتم تعيين ZF إذا كان DEST AND SRC يساوي 0. بالإضافة إلى ذلك، يقوم بتعيين علامة C إذا كان (NOT DEST) AND SRC يساوي صفرًا. وهذا يعادل تعيين علامة Z إذا لم يتم تعيين أي من البتات التي تم إخفاؤها بواسطة SRC، وعلامة C إذا تم تعيين جميع البتات التي تم إخفاؤها بواسطة SRC. |
PCMPEQQ | مقارنة الكلمات الرباعية (64 بت) للتأكد من التساوي |
PACKUSDW | تحويل الكلمات المزدوجة الموقعة (DWORDs) إلى كلمات غير موقعة (WORDs) مع التشبع. |
MOVNTDQA | قراءة فعالة من منطقة الذاكرة المدمجة للكتابة إلى سجل SSE؛ وهذا مفيد لاسترجاع النتائج من الأجهزة الطرفية المتصلة بناقل الذاكرة. |
SSE4.2
أضافت SSE4.2 تعليمات STTNI (تعليمات جديدة للسلاسل والنصوص)، [ 10 ] وهي عدة تعليمات جديدة تُجري عمليات بحث ومقارنة للأحرف على مُعاملين بحجم 16 بايت في كل مرة. صُممت هذه التعليمات (من بين أمور أخرى) لتسريع تحليل مستندات XML . [ 11 ] كما أضافت CRC32تعليمة لحساب فحوصات التكرار الدوري المستخدمة في بعض بروتوكولات نقل البيانات. طُبقت هذه التعليمات لأول مرة في سلسلة معالجات Intel Core i7 القائمة على معمارية Nehalem ، لتُكمل بذلك مجموعة تعليمات SSE4. من جانبها، أضافت AMD الدعم بدءًا من معمارية Bulldozer الدقيقة . وكان نظام التشغيل Windows 7 من Microsoft أول نظام تشغيل يُطبق SSE4.2، كما يُشير إلى ذلك مُعرّف CPUID.01H:ECX.SSE42[Bit 20].
يتطلب نظاما التشغيل Windows 11 24H2 و Windows Server 2025 أن يدعم المعالج تقنية SSE4.2، وإلا فلن يكون بالإمكان تشغيل نواة نظام التشغيل Windows. [ 12 ]
| تعليمات | وصف |
|---|---|
CRC32 | قم بتجميع قيمة CRC-32C باستخدام متعددة الحدود 0x11EDC6F41 (أو، بدون البت ذي الرتبة الأعلى، 0x1EDC6F41). [ 13 ] [ 14 ] |
PCMPESTRI | مقارنة السلاسل ذات الطول المحدد في Packed Compare، فهرس الإرجاع |
PCMPESTRM | مقارنة السلاسل ذات الطول المحدد، قناع الإرجاع |
PCMPISTRI | مقارنة السلاسل ذات الطول الضمني في Packed Compare، فهرس الإرجاع |
PCMPISTRM | مقارنة السلاسل ذات الطول الضمني، قناع الإرجاع |
PCMPGTQ | قارن البيانات المعبأة الموقعة ذات 64 بت للحصول على قيمة أكبر من |
POPCNTوLZCNT
تعمل هذه التعليمات على سجلات الأعداد الصحيحة بدلاً من سجلات SSE، لأنها ليست تعليمات SIMD، ولكنها تظهر في الوقت نفسه. ورغم أن AMD قدمتها مع مجموعة تعليمات SSE4a، إلا أنها تُعتبر امتدادات منفصلة مع بتات CPUID مخصصة لها للإشارة إلى دعمها. POPCNTبدأت Intel بتطبيقها مع معمارية NehalemLZCNT الدقيقة، ثم مع معمارية Haswell الدقيقة. بينما بدأت AMD بتطبيقها مع معمارية Barcelona الدقيقة .
تُطلق AMD على هذا الزوج من التعليمات اسم معالجة البتات المتقدمة (ABM) .
يستخدم ترميز LZCNTنفس مسار ترميز BSRتعليمة (عكس مسح البتات). ينتج عن ذلك مشكلة حيث قد LZCNTيؤدي استدعاء على بعض وحدات المعالجة المركزية التي لا تدعم هذه الخاصية، مثل معالجات Intel قبل Haswell، إلى تنفيذ BSRالعملية بشكل خاطئ بدلاً من إظهار استثناء تعليمة غير صالحة . تكمن المشكلة في اختلاف قيم نتائج LZCNTو .BSR
يمكن حساب الأصفار اللاحقة باستخدام تعليمات BSF(المسح الأمامي للبت) أو TZCNTالتعليمات.
يتطلب نظاما التشغيل Windows 11 24H2 وWindows Server 2025 دعم وحدة المعالجة المركزية POPCNT، وإلا فلن يكون بالإمكان تشغيل نواة نظام التشغيل Windows. [ 15 ]
| تعليمات | وصف |
|---|---|
POPCNT | عدد السكان (عدد البتات التي تم ضبطها على 1). يتم الإشارة إلى الدعم عبر علامة CPUID.01H:ECX.POPCNT[Bit 23]. [ 16 ] |
LZCNT | عدد الأصفار البادئة . يُشار إلى الدعم عبر علامة CPUID.80000001H:ECX.ABM[Bit 5]. [ 17 ] |
SSE4a
تم تقديم مجموعة تعليمات SSE4a في بنية برشلونة الدقيقة من AMD . هذه التعليمات غير متوفرة في معالجات Intel. ويُشار إلى دعمها عبر علامة CPUID.80000001H:ECX.SSE4A[Bit 6]. [ 17 ]
| تعليمات | وصف |
|---|---|
EXTRQ/INSERTQ | تعليمات تحويل القناع المدمجة. [ 18 ] |
MOVNTSD/MOVNTSS | تعليمات متجر البث القياسي. [ 19 ] |
انظر أيضاً
مراجع
- 1 2 3 Intel Streaming SIMD Extensions 4 (SSE4) Instruction Set Innovation مؤرشف في 30 مايو 2009، في Wayback Machine ، Intel.
- ↑ ضبط Intel SSE4 لبنية Intel Core الدقيقة من الجيل التالي بتقنية 45 نانومتر مؤرشفة في 8 مارس 2021، في Wayback Machine ، Intel.
- ↑ "مرجع برمجة Intel SSE4" (ملف PDF) . مؤرشف (ملف PDF) من الأصل بتاريخ 15 فبراير 2020. تم الاطلاع عليه بتاريخ 26 ديسمبر 2014 .
- ↑ "ميزة معالج "برشلونة": "الوصول غير المتوافق مع SSE" . AMD. مؤرشف من الأصل في 9 أغسطس 2016. تم الاطلاع عليه في 3 مارس 2015 .
- ↑ "نظرة داخلية على بنية معالجات إنتل نيهاليم الدقيقة" . مؤرشف من الأصل في 2 أبريل 2015. تم الاطلاع عليه في 3 مارس 2015 .
- ↑ تجربتي مع "كونرو" مؤرشفة في 15 أكتوبر 2013 على موقع Wayback Machine ، DailyTech
- ↑ توسيع بنية المعالج الأكثر شيوعًا في العالم ، إنتل
- ↑ "إنتل - حلول مراكز البيانات، وإنترنت الأشياء، وابتكارات أجهزة الكمبيوتر الشخصية" . إنتل . مؤرشف من الأصل في 7 فبراير 2013. تم الاطلاع عليه في 17 سبتمبر 2009 .
- ↑ تقدير الحركة باستخدام ملحقات Intel Streaming SIMD 4 (Intel SSE4) مؤرشف في 16 يونيو 2018، في Wayback Machine ، Intel.
- ↑ "التحقق من صحة المخطط باستخدام ملحقات Intel Streaming SIMD 4 (Intel SSE4)" . مؤرشف من الأصل في 17 يونيو 2018. تم الاطلاع عليه في 6 فبراير 2012 .
- ↑ "مُسرِّع تحليل XML مع ملحقات Intel Streaming SIMD 4 (Intel SSE4)" . مؤرشف من الأصل في 17 يونيو 2018. تم الاطلاع عليه في 6 فبراير 2012 .
- ↑ كلوتز، آرون (24 أبريل 2024). "مايكروسوفت تحظر بعض أجهزة الكمبيوتر من نظام التشغيل ويندوز 11 24H2 - يجب أن يدعم المعالج SSE4.2 وإلا فلن يتم تشغيل نظام التشغيل" . موقع تومز هاردوير . تم الاطلاع عليه في 29 أبريل 2024 .
- ↑ مرجع برمجة Intel SSE4 مؤرشف في 15 فبراير 2020، في Wayback Machine صفحة 61. انظر أيضًا RFC 3385 مؤرشف في 19 يونيو 2008، في Wayback Machine لمناقشة متعددة الحدود CRC32C.
- ↑ حساب CRC سريع ومتوازي باستخدام تعليمات Nehalem CRC32 — د. دوبس، 12 أبريل 2011
- ↑ سين، سايان (17 مارس 2024). "مايكروسوفت تُصلح خللًا في كتلة PopCnt، لكن متطلبات ويندوز 11 24H2 قد تبقى" . نيوين . تم الاطلاع عليه في 17 مارس 2024 .
- ↑ دليل مطوري البرامج لهندسة Intel 64 و IA-32، المجلد 2B: مرجع مجموعة التعليمات، N–Z مؤرشف في 8 مارس 2011، في Wayback Machine .
- 1 2 "مواصفات AMD CPUID" (ملف PDF) . مؤرشف (ملف PDF) من الأصل في 1 نوفمبر 2013. تم الاطلاع عليه في 30 أكتوبر 2013 .
- ^ راهول شاتورفيدي (17 سبتمبر 2007). "ميزة معالج "برشلونة": مجموعة تعليمات SSE4a .
{{cite web}}: CS1 maint: deprecated archiveal service ( link ) - ↑ راهول تشاتورفيدي (2 أكتوبر 2007). "ميزة معالج "برشلونة": SSE4a، الجزء 2" .
{{cite web}}: CS1 maint: deprecated archiveal service ( link )
روابط خارجية
- مرجع برمجة SSE4 من إنتل
- حاسبة PCMPSTR لتعليمات سلسلة SSE 4.2 مؤرشفة على موقع Ghostarchive.org بتاريخ 10 مايو 2022
- تعليمات X86
- الحوسبة SIMD
