مجموعة تعليمات CLMUL

الضرب بدون حمل ( CLMUL ) هو امتداد لمجموعة تعليمات x86 المستخدمة في المعالجات الدقيقة من إنتل وإيه إم دي، وقد اقترحته إنتل في مارس 2008 [ 1 ] وأصبح متاحًا في معالجات إنتل ويستمير التي أُعلن عنها في أوائل عام 2010. رياضيًا، تُنفذ هذه التعليمات عملية ضرب كثيرات الحدود على الحقل المنتهي GF(2) حيث سلسلة البتاتأ0أ1...أ63{\displaystyle a_{0}a_{1}\ldots a_{63}}يمثل متعدد الحدودأ0+أ1X+أ2X2++أ63X63{\displaystyle a_{0}+a_{1}X+a_{2}X^{2}+\cdots +a_{63}X^{63}}كما تسمح تعليمة CLMUL بتنفيذ أكثر كفاءة لعملية الضرب ذات الصلة الوثيقة للحقول المنتهية الأكبر GF(2k ) مقارنةً بمجموعة التعليمات التقليدية. [ 2 ]

يُستخدم هذا النوع من التعليمات لتحسين سرعة التطبيقات التي تُجري تشفيرًا باستخدام خوارزمية التشفير الكتلي في وضع Galois/Counter ، والذي يعتمد على ضرب الحقل المنتهي GF(2k ) . ومن تطبيقاته الأخرى الحساب السريع لقيم CRC ، [ 3 ] بما في ذلك تلك المستخدمة لتنفيذ خوارزمية DEFLATE ذات النافذة المنزلقة LZ77 في مكتبتي zlib و pngcrush . [ 4 ]

يحتوي ARMv8 أيضًا على نسخة من CLMUL. وتطلق SPARC على نسختها اسم XMULX، اختصارًا لـ " ضرب XOR ".

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

تحسب هذه التعليمة حاصل ضرب قيمتين من 64 بت، كل منهما مكون من 128 بت، دون احتساب الحمل . الوجهة هي مسجل XMM من 128 بت . قد يكون المصدر مسجل XMM آخر أو الذاكرة. يُحدد المعامل الفوري أي نصف من المعاملات الـ 128 بت يتم ضربه. كما تُعرّف رموز مختصرة لتحديد قيم محددة للمعامل الفوري.

تعليماترمز العمليةوصف
PCLMULQDQ xmmreg,xmmrm,imm[rmi: 66 0f 3a 44 /r ib]قم بإجراء عملية ضرب بدون حمل لكثيرتي حدود 64 بت على الحقل المنتهي GF (2)[ X ].
PCLMULLQLQDQ xmmreg,xmmrm[rm:  66 0f 3a 44 /r 00]اضرب النصفين الأدنى من السجلين.
PCLMULHQLQDQ xmmreg,xmmrm[rm:  66 0f 3a 44 /r 01]اضرب النصف الأعلى من سجل الوجهة في النصف الأدنى من سجل المصدر.
PCLMULLQHQDQ xmmreg,xmmrm[rm:  66 0f 3a 44 /r 10]اضرب النصف الأدنى من سجل الوجهة في النصف الأعلى من سجل المصدر.
PCLMULHQHQDQ xmmreg,xmmrm[rm:  66 0f 3a 44 /r 11]اضرب النصفين الأعلى من السجلين.

تظهر نسخة EVEX المتجهة (VPCLMULQDQ) في AVX-512 .

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

يمكن التحقق من وجود مجموعة تعليمات CLMUL عن طريق اختبار أحد بتات ميزات وحدة المعالجة المركزية .

انظر أيضاً

مراجع

  1. "شبكة برامج إنتل" . إنتل. مؤرشف من الأصل بتاريخ 7 أبريل 2008. تم الاطلاع عليه بتاريخ 5 أبريل 2008 .
  2. شاي جيرون؛ مايكل إي. كونافيس (20 أبريل 2014). "تعليمات الضرب بدون حمل من إنتل واستخدامها لحساب وضع GCM - الإصدار 2.02" (ملف PDF) . إنتل . مؤرشف من الأصل في 6 أغسطس 2019.
  3. "حساب CRC السريع لكثيرات الحدود العامة باستخدام PCLMULQDQ" (PDF) .
  4. فلاد كراسنوف (2015-07-08). "مكافحة السرطان: الفائدة غير المتوقعة من جعل شفرتنا مفتوحة المصدر" . كلاود فلير . تم الاطلاع عليه بتاريخ 2016-09-04 .
  5. يوهان دي جيلاس (31 مارس 2017). "مراجعة معالج Intel Xeon E5 v4: اختبار Broadwell-EP مع أحمال عمل خادم متطلبة" . Anandtech . ص 3. {{cite web}}: CS1 maint: deprecated archiveal service ( link )
  6. "شريحة توضح بالتفصيل تحسينات معالج جاكوار مقارنةً بمعالج بوبكات" . AMD. 29 أغسطس 2012. تم الاطلاع عليه في 3 أغسطس 2013 .
  7. ديف كريستي (6 مايو 2009). "تحقيق التوازن" . مدونات مطوري AMD . تم الاطلاع عليه بتاريخ 11 مارس 2011 .{{cite web}}: CS1 maint: deprecated archiveal service ( link )