إس إس إي 4

SSE4 ( Streaming SIMD Extensions 4 ) هي مجموعة تعليمات وحدة المعالجة المركزية SIMD المستخدمة في معمارية Intel Core و AMD K10 (K8L) . تم الإعلان عنها في 27 سبتمبر 2006، في منتدى Intel Developer Forum لخريف 2006 ، مع تفاصيل غامضة في ورقة بيضاء ؛ [1] أصبحت التفاصيل الأكثر دقة لـ 47 تعليمة متاحة في منتدى Intel Developer Forum لربيع 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 مجموعة تعليمات SSE4a ، والتي تحتوي على أربع تعليمات SSE4 وأربع تعليمات SSE جديدة. لا توجد هذه التعليمات في معالجات Intel التي تدعم SSE4.1 ولم تبدأ معالجات AMD في دعم SSE4.1 وSSE4.2 من Intel (مجموعة تعليمات SSE4 الكاملة) إلا في معالجات FX المستندة إلى Bulldozer . مع SSE4a، تم تقديم ميزة SSE غير المحاذية أيضًا مما يعني أن تعليمات التحميل غير المحاذية كانت بنفس سرعة الإصدارات المحاذية على العناوين المحاذية. كما سمحت بتعطيل فحص المحاذاة في عمليات SSE غير المحملة التي تصل إلى الذاكرة. [4] قدمت Intel لاحقًا تحسينات سرعة مماثلة لـ SSE غير المحاذية في معالجات Nehalem الخاصة بها، لكنها لم تقدم وصولاً غير محاذٍ من خلال تعليمات SSE غير المحملة حتى AVX . [5]

ارتباك في الاسم

ما يُعرف الآن باسم SSSE3 (Supplemental Streaming SIMD Extensions 3)، والذي تم تقديمه في خط معالج Intel Core 2 ، كان يُشار إليه باسم SSE4 من قبل بعض وسائل الإعلام حتى توصلت Intel إلى اسم SSSE3. تم تسميتها داخليًا باسم Merom New Instructions، ولم تخطط Intel في الأصل لتعيين اسم خاص لها، وهو ما انتقده بعض الصحفيين. [6] في النهاية، أوضحت Intel الارتباك واحتفظت باسم SSE4 لتمديد مجموعة التعليمات التالي. [7]

تستخدم شركة Intel مصطلح التسويق HD Boost للإشارة إلى SSE4. [8]

تعليمات جديدة

على عكس جميع التكرارات السابقة لـ SSE، يحتوي SSE4 على تعليمات لتنفيذ عمليات ليست خاصة بتطبيقات الوسائط المتعددة. فهو يتميز بعدد من التعليمات التي يتم تحديد عملها بواسطة حقل ثابت ومجموعة من التعليمات التي تأخذ XMM0 كمتعامل ثالث ضمني.

يتم تمكين العديد من هذه التعليمات بواسطة محرك الخلط أحادي الدورة في Penryn. (تعمل عمليات الخلط على إعادة ترتيب البايتات داخل السجل.)

إس إس إي 4.1

تم تقديم هذه التعليمات باستخدام معمارية Penryn الدقيقة ، وهي معمارية Intel Core الدقيقة التي تم تقليص حجمها إلى 45 نانومتر . يتم الإشارة إلى الدعم من خلال العلم 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 |)؛ هذه العملية مهمة لبعض برامج ترميز HD ، وتسمح بحساب فرق كتلة 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/ ​, , ,PINSRQEXTRACTPSPEXTRBPEXTRD/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 تحويل كلمات DWORD الموقعة إلى كلمات غير موقعة مع التشبع.
MOVNTDQA قراءة فعالة من منطقة ذاكرة الجمع بين الكتابة إلى سجل SSE؛ وهذا مفيد لاسترجاع النتائج من الأجهزة الطرفية المتصلة بناقل الذاكرة.

إس إس إي 4.2

أضافت SSE4.2 تعليمات STTNI (تعليمات جديدة للسلاسل والنصوص)، [10] عدة تعليمات جديدة تؤدي عمليات بحث عن الأحرف ومقارنتها على متغيرين يبلغ حجم كل منهما 16 بايتًا في المرة الواحدة. وقد صُممت هذه التعليمات (من بين أمور أخرى) لتسريع تحليل مستندات XML . [11] كما أضافت CRC32تعليمات لحساب عمليات فحص التكرار الدوري كما هو مستخدم في بروتوكولات نقل بيانات معينة. تم تنفيذ هذه التعليمات لأول مرة في خط إنتاج Intel Core i7 المستند إلى Nehalem ، واستكملت مجموعة تعليمات SSE4. من ناحية أخرى، أضافت AMD الدعم أولاً بدءًا من بنية Bulldozer الدقيقة . يتم الإشارة إلى الدعم من خلال العلم CPUID.01H:ECX.SSE42[Bit 20].

يتطلب Windows 11 24H2 أن يدعم وحدة المعالجة المركزية POPCNT، وإلا فلن يمكن تشغيل نواة Windows. [12]

تعليمات وصف
CRC32 تجميع قيمة CRC32 C باستخدام متعدد الحدود 0x11EDC6F41 (أو، بدون البت ذي الترتيب العالي، 0x1EDC6F41). [13] [14]
PCMPESTRI مقارنة السلاسل ذات الطول الصريح المعبأة، وفهرس الإرجاع
PCMPESTRM مقارنة السلاسل ذات الطول الصريح المعبأة، قناع الإرجاع
PCMPISTRI مقارنة السلاسل ذات الطول الضمني المعبأة، وفهرس الإرجاع
PCMPISTRM مقارنة السلاسل ذات الطول الضمني المعبأة، قناع الإرجاع
PCMPGTQ مقارنة البيانات المجمعة الموقعة ذات 64 بت لأكثر من

POPCNTوLZCNT

تعمل هذه التعليمات على سجلات عددية صحيحة وليس سجلات SSE، لأنها ليست تعليمات SIMD، ولكنها تظهر في نفس الوقت، وعلى الرغم من تقديمها بواسطة AMD مع مجموعة تعليمات SSE4a، إلا أنها تُحسب كملحقات منفصلة مع بتات CPUID مخصصة لها للإشارة إلى الدعم. تنفذ Intel POPCNTبدءًا من بنية Nehalem الدقيقة وبدءًا LZCNTمن بنية Haswell الدقيقة. تنفذ AMD كليهما، بدءًا من بنية Barcelona الدقيقة .

تسمي AMD هذا الزوج من التعليمات بـ Advanced Bit Manipulation (ABM) .

يتخذ ترميز LZCNTنفس مسار الترميز مثل ترميز BSRتعليمة (فحص البت العكسي). ويؤدي هذا إلى مشكلة حيث قد يتم تنفيذ العملية بشكل غير صحيح بدلاً من إثارة استثناء تعليمة غير صالحLZCNT عند استدعائها على بعض وحدات المعالجة المركزية التي لا تدعمها، مثل وحدات المعالجة المركزية من Intel قبل Haswell . وهذه مشكلة لأن قيم النتيجة لـ و مختلفة. BSRLZCNTBSR

يمكن حساب الأصفار المتبقية باستخدام BSF(مسح البت للأمام) أو TZCNTالتعليمات.

يتطلب Windows 11 24H2 أن يدعم وحدة المعالجة المركزية POPCNT، وإلا فلن يمكن تشغيل نواة Windows. [15]

تعليمات وصف
POPCNT عدد السكان (عدد البتات مضبوط على 1). يتم الإشارة إلى الدعم من خلال العلم CPUID.01H:ECX.POPCNT[Bit 23]. [16]
LZCNT عدد الأصفار الأولية . يتم الإشارة إلى الدعم من خلال علم CPUID.80000001H:ECX.ABM[Bit 5]. [17]

إس إس إي 4أ

تم تقديم مجموعة التعليمات SSE4a في معمارية برشلونة الدقيقة من AMD . هذه التعليمات غير متوفرة في معالجات Intel. يتم الإشارة إلى الدعم من خلال علامة CPUID.80000001H:ECX.SSE4A[Bit 6]. [17]

تعليمات وصف
EXTRQ/INSERTQ تعليمات تحويل القناع المجمعة. [18]
MOVNTSD/MOVNTSS تعليمات تخزين البث القياسي. [19]

دعم وحدات المعالجة المركزية

وحدات المعالجة المركزية X86-64 v2 :

مراجع

  1. ^ abc Intel Streaming SIMD Extensions 4 (SSE4) Instruction Set Innovation Archived May 30, 2009, at the Wayback Machine , Intel.
  2. ^ ضبط Intel SSE4 للجيل القادم من معالجات Intel Core الدقيقة بتقنية 45 نانومتر محفوظ في 8 مارس 2021، على موقع Wayback Machine ، Intel.
  3. ^ "مرجع برمجة Intel SSE4" (PDF) . مؤرشف من الأصل (PDF) في 15 فبراير 2020 . تم الاسترجاع في 26 ديسمبر 2014 .
  4. ^ ""خصائص معالج ""برشلونة"": الوصول غير المتوافق مع SSE". AMD. مؤرشف من الأصل في 9 أغسطس 2016. تم الاسترجاع في 3 مارس 2015 .
  5. ^ "Inside Intel Nehalem Microarchitecture". مؤرشف من الأصل في 2 أبريل 2015. تم الاسترجاع في 3 مارس 2015 .
  6. ^ تجربتي مع "كونرو" أرشيف 15 أكتوبر 2013، على موقع واي باك مشين ، ديلي تيك
  7. ^ توسيع بنية المعالج الأكثر شعبية في العالم محفوظ في 24 نوفمبر 2011، على موقع Wayback Machine ، Intel
  8. ^ "Intel - Data Center Solutions, IOT, and PC Innovation". Intel . مؤرشف من الأصل في 7 فبراير 2013 . تم الاسترجاع في 17 سبتمبر 2009 .
  9. ^ تقدير الحركة باستخدام Intel Streaming SIMD Extensions 4 (Intel SSE4) مؤرشف من الأصل في 16 يونيو 2018، على موقع واي باك مشين .
  10. ^ "التحقق من صحة المخطط باستخدام Intel® Streaming SIMD Extensions 4 (Intel® SSE4)". مؤرشف من الأصل في 17 يونيو 2018. تم الاسترجاع في 6 فبراير 2012 .
  11. ^ "مسرع تحليل XML مع Intel® Streaming SIMD Extensions 4 (Intel® SSE4)". مؤرشف من الأصل في 17 يونيو 2018. تم الاسترجاع في 6 فبراير 2012 .
  12. ^ سين، سايان (17 مارس 2024). "مايكروسوفت تصلح مشكلة في تشغيل PopCnt لكن متطلبات Windows 11 24H2 قد تكون موجودة لتبقى". نيووين . تم الاسترجاع في 17 مارس 2024 .
  13. ^ تم أرشفة مرجع برمجة Intel SSE4 في 15 فبراير 2020، على موقع Wayback Machine، ص. 61. انظر أيضًا RFC 3385 المؤرشف في 19 يونيو 2008، على موقع Wayback Machine لمناقشة متعددة الحدود CRC32C.
  14. ^ حساب CRC السريع والمتوازي باستخدام تعليمات Nehalem CRC32 — دكتور دوبس، 12 أبريل 2011
  15. ^ سين، سايان (17 مارس 2024). "مايكروسوفت تصلح مشكلة في تشغيل PopCnt لكن متطلبات Windows 11 24H2 قد تكون موجودة لتبقى". نيووين . تم الاسترجاع في 17 مارس 2024 .
  16. ^ دليل مطور برامج معماريات Intel® 64 وIA-32، المجلد 2B: مرجع مجموعة التعليمات، من N إلى Z، محفوظ في 8 مارس 2011، على موقع Wayback Machine .
  17. ^ "مواصفات AMD CPUID" (PDF) . مؤرشف من الأصل (PDF) في 1 نوفمبر 2013 . تم الاسترجاع في 30 أكتوبر 2013 .
  18. ^ Rahul Chaturvedi (17 سبتمبر 2007). ""خصائص معالج ""برشلونة"": مجموعة تعليمات SSE4a". مؤرشف من الأصل في 25 أكتوبر 2013.
  19. ^ Rahul Chaturvedi (2 أكتوبر 2007). ""Barcelona"" Processor Feature: SSE4a, part 2"". مؤرشف من الأصل في 25 أكتوبر 2013.
  20. ^ "AMD FX-Series FX-6300 - FD6300WMW6KHK / FD6300WMHKBOX". مؤرشف من الأصل في 17 أغسطس 2017. تم الاسترجاع في 9 أكتوبر 2015 .
  • مرجع برمجة SSE4 من Intel
  • تم أرشفة حاسبة PCMPSTR لتعليمات سلسلة SSE 4.2 في Ghostarchive.org في 10 مايو 2022

تم الاسترجاع من "https://en.wikipedia.org/w/index.php?title=SSE4&oldid=1250938941"
Original text
Rate this translation
Your feedback will be used to help improve Google Translate