MMX (مجموعة التعليمات)

MMX هي بنية مجموعة تعليمات ذات تعليمات مفردة وبيانات متعددة ( SIMD ) صممتها شركة Intel ، وتم تقديمها في 8 يناير 1997 [1] [2] مع خط Pentium P5 (الهندسة المعمارية الدقيقة) من المعالجات الدقيقة ، والذي أطلق عليه اسم "Pentium with MMX Technology". [3] وقد تم تطويره من وحدة مماثلة تم تقديمها في Intel i860 ، [4] ومعالج بكسل الفيديو Intel i750 في وقت سابق . MMX هي قدرة تكميلية للمعالج مدعومة على معالجات IA-32 من قبل Intel وبائعين آخرين اعتبارًا من عام 1997. كما أضافت AMD مجموعة تعليمات MMX في معالج K6 الخاص بها. [تحديث]
ووصفت صحيفة نيويورك تايمز الدفعة الأولية، بما في ذلك إعلانات السوبر بول ، بأنها تركز على "جيل جديد من منتجات الوسائط المتعددة البراقة، بما في ذلك الهواتف المرئية وألعاب الفيديو ثلاثية الأبعاد". [5]
تم توسيع MMX لاحقًا من خلال العديد من البرامج من Intel وغيرها: 3DNow! ، و Streaming SIMD Extensions (SSE)، والمراجعة المستمرة لـ Advanced Vector Extensions (AVX).
ملخص
تسمية
MMX هو رسميًا حرف أولي لا معنى له [6] مسجل كعلامة تجارية لشركة Intel؛ [7] بشكل غير رسمي، تم تفسير الحروف الأولية بشكل مختلف على أنها تعني
- ملحق الوسائط المتعددة ، [1] أو
- تمديد الرياضيات للمصفوفة . [8]
أنتجت شركة Advanced Micro Devices (AMD)، خلال إحدى معاركها القضائية العديدة مع شركة Intel، مواد تسويقية من شركة Intel تشير إلى أن MMX تعني "Matrix Math Extensions". [ بحاجة لمصدر ] نظرًا لأنه لا يمكن تسجيل الأحرف الأولى كعلامة تجارية، [ بحاجة لمصدر ] كانت هذه محاولة لإبطال العلامة التجارية لشركة Intel. في عام 1995، رفعت شركة Intel دعوى قضائية ضد شركة AMD وشركة Cyrix Corp. بسبب إساءة استخدام علامتها التجارية MMX. توصلت AMD وشركة Intel إلى تسوية، حيث اعترفت AMD بعلامة MMX كعلامة تجارية مملوكة لشركة Intel، ومنحتها Intel حقوق استخدام علامة MMX التجارية كاسم تقنية، ولكن ليس كاسم معالج. [9]
التفاصيل الفنية

يحدد MMX ثمانية سجلات معالج ، تسمى MM0 حتى MM7، والعمليات التي تعمل عليها. يبلغ عرض كل سجل 64 بت ويمكن استخدامه لتخزين الأعداد الصحيحة 64 بت ، أو أعداد صحيحة متعددة أصغر في تنسيق "مضغوط": يمكن بعد ذلك تطبيق تعليمة واحدة على عددين صحيحين 32 بت، أو أربعة أعداد صحيحة 16 بت، أو ثمانية أعداد صحيحة 8 بت في وقت واحد. [10]
توفر MMX عمليات الأعداد الصحيحة فقط. عندما تم تطويرها في الأصل، بالنسبة لمعالج Intel i860 ، كان استخدام الرياضيات الصحيحة أمرًا منطقيًا (كانت الحسابات ثنائية الأبعاد وثلاثية الأبعاد تتطلب ذلك)، ولكن مع شيوع بطاقات الرسومات التي تقوم بالكثير من هذا، أصبح SIMD الصحيح في وحدة المعالجة المركزية زائدًا عن الحاجة إلى حد ما للتطبيقات الرسومية. [ بحاجة لمصدر ] بدلاً من ذلك، يمكن لعمليات الحساب التشبع في MMX [ غامض ] تسريع بعض تطبيقات معالجة الإشارات الرقمية بشكل كبير . [ بحاجة لمصدر ]
لتجنب مشاكل التوافق مع آليات تبديل السياق في أنظمة التشغيل الحالية، فإن سجلات MMX هي أسماء مستعارة لسجلات وحدة النقطة العائمة (FPU) الموجودة في x87 ، والتي تقوم تبديلات السياق بحفظها واستعادتها بالفعل. وعلى عكس سجلات x87، التي تتصرف مثل المكدس ، فإن سجلات MMX قابلة للعنونة بشكل مباشر (الوصول العشوائي).
قد تؤثر أي عملية تتضمن مكدس الفاصلة العائمة أيضًا على سجلات MMX والعكس صحيح، لذا فإن هذا التداخل يجعل من الصعب العمل مع عمليات الفاصلة العائمة وSIMD في نفس البرنامج. [11] لتحقيق أقصى قدر من الأداء، غالبًا ما يستخدم البرنامج المعالج حصريًا في وضع أو آخر، مما يؤجل التبديل البطيء نسبيًا بينهما لأطول فترة ممكنة.
يتوافق كل سجل MMX مكون من 64 بتًا مع جزء العشري من سجل x87 مكون من 80 بتًا. وبالتالي، لا يتم استخدام البتات الستة عشر العليا من سجلات x87 في MMX، ويتم تعيين كل هذه البتات على واحد، مما يجعلها أنواع بيانات ليست عددًا ( NaN )، أو لا نهائيات في تمثيل الفاصلة العائمة. يمكن استخدام هذا بواسطة البرنامج لتحديد ما إذا كان محتوى السجل المحدد مخصصًا كبيانات فاصلة عائمة أو بيانات SIMD.
دعم البرمجيات
تطور دعم البرامج لـ MMX ببطء. [5] حصل مُجمِّع C من Intel وأدوات التطوير ذات الصلة على خصائص جوهرية لاستدعاء تعليمات MMX وأصدرت Intel مكتبات من الخوارزميات المتجهة الشائعة باستخدام MMX. حاولت كل من Intel و Metrowerks التحويل التلقائي إلى متجهات في مُجمِّعاتهما، لكن العمليات في لغة البرمجة C كانت تُطابق بشكل سيئ مجموعة تعليمات MMX والخوارزميات المخصصة اعتبارًا من عام 2000 كان لا يزال يتعين كتابتها بلغة التجميع . [11]
خلفاء
قامت شركة AMD، وهي شركة منافسة لتصنيع معالجات x86 ، بتحسين MMX من Intel باستخدام مجموعة التعليمات 3DNow! الخاصة بها . تشتهر 3DNow بإضافة دعم الفاصلة العائمة ذات الدقة المفردة (32 بت) لمجموعة تعليمات SIMD، من بين تحسينات أخرى للأعداد الصحيحة والمزيد من التحسينات العامة.
بعد MMX، كان امتداد x86 الرئيسي التالي لشركة Intel هو Streaming SIMD Extensions (SSE)، والذي تم تقديمه مع عائلة Pentium III [12] في عام 1999، [13] بعد عام تقريبًا من تقديم 3DNow! من AMD.
عالجت SSE العيوب الأساسية في MMX (عدم القدرة على خلط عمليات SIMD الصحيحة مع أي عمليات ذات فاصلة عائمة) من خلال إنشاء ملف سجل جديد بعرض 128 بت (XMM0–XMM7) وتعليمات SIMD جديدة له. مثل 3DNow!، ركزت SSE حصريًا على عمليات الفاصلة العائمة ذات الدقة المفردة (32 بت)؛ لا تزال عمليات SIMD الصحيحة تُجرى باستخدام سجل MMX ومجموعة التعليمات. ومع ذلك، سمح ملف السجل XMM الجديد بخلط عمليات SIMD الخاصة بـ SSE بحرية مع عمليات MMX أو x87 FPU.
لقد قامت ملحقات SIMD Streaming 2 ( SSE2 )، والتي تم تقديمها مع Pentium 4 ، بتوسيع مجموعة تعليمات SIMD x86 بشكل أكبر من خلال دعم البيانات ذات الفاصلة العائمة ذات الدقة المزدوجة والأعداد الصحيحة (8/16/32 بت) لملف سجل XMM. كما سمحت SSE2 لأكواد عملية MMX ( أكواد العمليات ) باستخدام متغيرات سجل XMM، والتي تم توسيعها لتشمل سجلات YMM وZMM الأوسع من خلال إصدارات SSE اللاحقة.
MMX في التطبيقات المضمنة
تتضمن نواة المعالج الدقيق XScale من Intel و Marvell Technology Group بدءًا من PXA270 امتدادًا لمجموعة تعليمات SIMD إلى نواة بنية ARM تسمى Intel Wireless MMX Technology (iwMMXt) والتي تعمل بشكل مشابه لتلك الموجودة في امتداد IA-32 MMX. [14] [15] [16] توفر عمليات حسابية ومنطقية على أرقام صحيحة 64 بت، حيث قد يختار البرنامج بدلاً من ذلك إجراء عمليتين 32 بت أو أربع عمليات 16 بت أو ثماني عمليات 8 بت في تعليمة واحدة. يحتوي الامتداد على 16 سجل بيانات من 64 بت وثمانية سجلات تحكم من 32 بت. يتم الوصول إلى جميع السجلات من خلال آلية تعيين المعالج المساعد لبنية ARM القياسية. يشغل iwMMXt مساحة المعالجات المساعدة 0 و1، وتتعارض بعض أكواد التشغيل الخاصة به مع أكواد التشغيل للامتداد السابق للفاصلة العائمة، FPA. [ بحاجة لمصدر ]
تدعم الإصدارات الأحدث من معالجات ARM من Marvell كل من التعليمات البرمجية الخاصة بـ Wireless MMX (WMMX) و Wireless MMX2 (WMMX2).
انظر أيضا
مراجع
- ^ "صناع يكشفون عن أجهزة كمبيوتر مزودة بشريحة MMX من إنتل". نيويورك تايمز . 9 يناير 1997. مؤرشف من الأصل في 13 يناير 2019. تم الاسترجاع في 13 يناير 2019.
تقنية تمديد الوسائط المتعددة الجديدة من إنتل، المسماة MMX، ...
- ^ Ch, Rajiv; rasekaran (8 يناير 1997). "إنتل تكشف عن شريحة بنتيوم أسرع". واشنطن بوست . مؤرشف من الأصل في 14 يناير 2019. تم الاسترجاع في 13 يناير 2019 .
- ^ "معالجات بنتيوم مدمجة بتقنية MMX". Intel . مؤرشف من الأصل في 11 أغسطس 2010. تم الاسترجاع في 28 يوليو 2007 .
- ^ Mittal, Millind; Peleg, Alex; Weiser, Uri (1997). "نظرة عامة على بنية تقنية MMX" (PDF) . مجلة تقنية Intel . 1 (3). مؤرشف (PDF) من الأصل في 4 مارس 2016. تم الاسترجاع في 29 أكتوبر 2015 .
- ^ ab Calem, Robert E. (January 24, 1997). "Intel's MMX: The Technology Behind the Hoopla". The New York Times . مؤرشف من الأصل في 13 يناير 2019 . تم الاسترجاع في 13 يناير 2019 .
- ^ تاناكا، جينيفر (16 فبراير 1997). "شريحة جديدة من الكتلة". نيوزويك . مؤرشف من الأصل في 31 أغسطس 2019. تم الاسترجاع في 31 أغسطس 2019.
الاسم، الذي لا يرمز إلى أي شيء
- ^ "Intel | حلول مراكز البيانات، إنترنت الأشياء، وابتكار أجهزة الكمبيوتر". مؤرشف من الأصل في 17 ديسمبر 2013. تم الاسترجاع في 17 ديسمبر 2013 .
- ^ Zhang, Peng (1 يناير 2010). "الفصل 5 - المعالجات الدقيقة". تكنولوجيا التحكم الصناعي المتقدمة . (12) تكنولوجيا MMX: دار نشر ويليام أندرو. ص 155-214. رقم ISBN 978-1-4377-7807-6تم الاسترجاع في 2 يونيو 2024 .
{{cite book}}:CS1 maint: الموقع ( الرابط ) - ^ "إنتل وأدفانس ميكرو تتفقان على تسجيل علامة تجارية للرقائق". نيويورك تايمز . 22 أبريل 1997. مؤرشف من الأصل في 13 يناير 2019. تم الاسترجاع في 13 يناير 2019 .
- ^ Pfeiffer, Joseph J. Jr. (1997). "MMX Microarchitecture of Pentium Processors With MMX Technology and Pentium II Microprocessors" (PDF) . مجلة تقنية إنتل . مؤرشف من الأصل (PDF) في 12 يناير 2011 . تم الاسترجاع في 1 سبتمبر 2017 .
- ^ ab Conte, G.; Tommesani, S.; Zanichelli, F. (2000). The long and winding road to high-performance image processing with MMX/SSE (PDF) . Proceedings of IEEE International Workshop on Computer Architectures for Machine Perception. مؤرشف من الأصل (PDF) في 28 يناير 2016.
- ^ كاي، آلان س. (26 فبراير 1999). "بنتيوم 3: شراء الأرقام؟". واشنطن بوست . مؤرشف من الأصل في 15 أبريل 2019. تم الاسترجاع في 13 يناير 2019 .
- ^ "قاعة مشاهير المعالجات الدقيقة". متحف إنتل . مؤرشف من الأصل في 6 أبريل 2008.
- ^ "Intel Brings MMX™ Technology To Intel® Personal Internet Client Architecture-Based Wireless Devices" . تم الاسترجاع في 28 يوليو 2022 .
- ^ "إنتل تقدم معالجات الجيل التالي المصممة خصيصًا للهواتف المحمولة وأجهزة المساعد الرقمي الشخصي اللاسلكية". مؤرشف من الأصل في 2 يناير 2012. تم الاسترجاع في 28 يوليو 2022 .
- ^ "أصغر بطاقة وحدة معالجة مركزية مدمجة PXA270 في العالم؟". EE Times . 15 سبتمبر 2004 . تم الاسترجاع في 28 يوليو 2022 .
روابط خارجية
- دليل Intel Intrinsics
- توثيق معالج Intel Pentium بتقنية MMX
- دليل مطور برامج IA، المجلد 1 (PDF)، راجع الفصل 8 لبرمجة MMX
