تقنية ام ام اكس

من ويكيبيديا، الموسوعة الحرة

'إعداد الطالب : عادل الحيمي 2006-2007 م''''

=البرمجة في تقنية Intel MMX=
 ==Programming with the Intel MMX Technology ==

فهرست

[تحرير] مقدمة :

أدخلت تقنية MMX إلى البنية IA-32 في عائلة المعالج Pentium II و المعالج Pentium with MMX technology . تدعم التوسعات المدخلة في تقنية MMX موديل التعليمة الوحيدة متعددة المعطيات SIMD التي صممت لتحسين أداء تطبيقات الوسائط المتعددة و الاتصالات . هذه التقنية تقدم تعليمات و أنواع معطيات جديدة لتستخدم في التطبيقات من أجل تحقيق مستوى أعلى من الأداء على المعالج المضيف .

نظرة عامة على تقنية MMX Overview of the MMX technology تقدم تقنية MMX موديل تنفيذ SIMD بسيط و مرن لمعالجة معطيات الأعداد الصحيحة المجمعة بـ 64-bit . أضاف هذا الموديل المزايا التالية إلى بنية

IA-32 مع المحافظة على توافقية رجعية لجميع برامج نظام التشغيل و التطبيقات لـ IA-32 .

• ثماني مسجلات جديدة بـ 64-bit سميت مسجلات MMX .

     - أعداد صحيحة لبايت مجمع بـ 64-bit ( ذات إشارة و بدون إشارة ) .
     - أعداد صحيحة لكلمة مجمعة بـ 64-bit ( ذات إشارة و بدون إشارة ) .
     - أعداد صحيحة لكلمة مضاعفة مجمعة بـ 64-bit ( ذات إشارة و بدون إشارة ) 

• تعليمات جديدة لدعم أنواع معطيات جديدة و معالجة إدارة حالة MMX . • توسعات للتعليمة CPUID . المقدرة على تنفيذ عمليات SIMD على الأعداد الصحيحة المجمعة يعطي ربحاً هاماً في الأداء من أجل بنية IA-32 عند تنفيذ الخوارزميات التي تنجز العمليات على المصفوفات الضخمة لعناصر معطيات الأعداد الصحيحة . إن تقنية MMX قابلة للوصول من جميع أنماط تنفيذ البنية IA-32 ( النمط المحمي، نمط العنونة الحقيقي ، نمط 8086 الافتراضي ) ولا تحتاج إلى إضافة أي نمط جديد للبنية . الفقرات التالية في هذا الفصل تصف بيئة برمجة تقنية MMX متضمنة مجموعة مسجلات MMX ، أنواع المعطيات ، مجموعة التعليمات ، التعليمات الإضافية التي تعمل على مسجلات MMX أضيفت إلى البنية IA-32 في توسعات SSEو SSE2 . لمزيد من المعلومات عن تقنية MMX انظر الفقرات التالية : • الفقرة (10-4-4) تصف تعليمات MMX المضافة إلى البنية IA-32 مع توسعات SSE . • الفقرة (10-4-2) تعليمات MMX المضافة إلى البنية IA-32 مع توسعات SSE2 .

[تحرير] بيئة برمجة تقنية MMX

The MMX technology Programming Environment=

يبين الشكل (9-1) بيئة التنفيذ من أجل تقنية MMX . جميع تعليمات MMX تعمل على مسجلات MMX ، مسجلات عامة الغرض و/ أو الذاكرة .

]

• مسجلات MMX : هذه المسجلات الثمانية ( انظر الشكل (9-1) ) تستخدم لتنفيذ العمليات على معطيات الأعداد الصحيحة المجمعة بـ 64-bit . يتم الرجوع إلى هذه المسجلات بالأسماء MM0 حتى MM7 . • مسجلات عامة الغرض : هذه المسجلات الثمانية ( انظر الشكل (9-1)) تستخدم مع أنماط عنونة IA-32 الموجودة لعنونة المعاملات في الذاكرة . ( لا يمكن استخدام مسجلات MMX لعنونة الذاكرة ) . كما تستخدم مسجلات عامة الغرض أيضاً لحفظ المعاملات من أجل بعض عمليات تقنية MMX . يتم الرجوع إلى هذه المسجلات عامة الغرض بالأسماء EAX, EBX, ECX, EDX, EBP, ESI, EDI, & EBP .

==مسجلات MMX ==:

تتألف مجموعة مسجلات MMX من ثمانية مسجلات ذات 64-bit المبينة في الشكل (9-2) ، و التي تستخدم لانجاز العمليات الحسابية على أنواع معطيات الأعداد الصحيحة المجمعة MMX بـ 64-bit . القيم التي توجد في مسجلات MMX لها نفس الصيغة كمقدار بـ 64-bit في الذاكرة .

تمتلك مسجلات MMX نمطي وصول للمعطيات : نمط وصول بـ 64-bit و نمط وصول بـ 32-bit . يستخدم نمط وصول بـ 64-bit من أجل الوصول إلى الذاكرة بـ 64-bit ، النقل بـ 64-bit بين مسجلات MMX ، جميع التعليمات الحسابية و المنطقية المجمعة ، و بعض التعليمات غير المجمعة . يستخدم نمط وصول بـ 32-bit من أجل الوصول إلى الذاكرة بـ 32-bit ، النقل بـ 32-bit بين مسجلات MMX و المسجلات عامة الغرض و بعض التعليمات غير المجمعة . على الرغم من أن مسجلات MMX معرفة في البنية IA-32 كمسجلات منفصلة، الا أنها تتصل مع المسجلات R0-R7 في مكدس مسجل معطيات FPU، راجع الفقرة (9-5)

==أنواع معطيات MMX ==: MMX Data Types أدخلت تقنية MMX إلى البنية IA-32 أنواع المعطيات ذات 64-bit التالية المبينة في الشكل (9-3) : - أعداد صحيحة لبايت مجمع بـ 64-bit ( ثمانية بايتات مجمعة ). - أعداد صحيحة لكلمة مجمعة بـ 64-bit ( أربع كلمات مجمعة ). - أعداد صحيحة لكلمة مضاعفة مجمعة بـ 64-bit ( كلمتين مضاعفتين مجمعة ) . تقوم تعليمات MMX بنقل أنواع معطيات مجمعة بـ 64-bit ( بايتات مجمعة ، أو كلمات مجمعة ، أو كلمات مضاعفة مجمعة ) و نوع معطيات رباعية الكلمة بين مسجلات MMX و الذاكرة أو بين مسجلات MMX في بلوكات بـ 64-bit على كل حال ، عند تنفيذ العمليات الحسابية أو المنطقية على أنواع معطيات مجمعة فإن تعليمات MMX تعمل على التوازي للبايتات الخاصة أو الكلمات أو الكلمات المضاعفة الموجودة في مسجلات MMX ( انظر الفقرة (9-2-4)). صورة:Image103.jpg






==صيغ معطيات الذاكرة ==: Memory Data Formats عند تخزين البايتات، الكلمات، أو الكلمات المضاعفة في أنواع معطيات مجمعة فإنها تخزن في عناوين متعاقبة، بحيث يخزن البايت ذو الأهمية الدنيا، الكلمة، أو الكلمة المضاعفة في العنوان السفلي، وتخزن البايتات ذات الأهمية الأعلى، الكلمات،أو الكلمات المضاعفة ابتداءً من العناوين الأعلى بشكل متعاقب . ترتيب البايتات، الكلمات، أو الكلمات المضاعفة في الذاكرة دوماًlittle endian . هذا يعني أن البايتات ذات العناوين الدنيا هي ذات الأهمية الأدنى من البايتات ذات العناوين العليا. =موديل تنفيذ التعليمة الوحيدة المتعددة المعطيات SIMD =: Single Instruction, Multiple Data ( SIMD ) Execution Model إن تقنية MMX تستخدم تقنية التعليمة الوحيدة متعددة المعطيات من أجل تنفيذ العمليات الحسابية و المنطقية على البايتات، الكلمات، أو الكلمات المضاعفة المجمعة في مسجلات MMX ( انظر الشكل (9-4) ) . على سبيل المثال، التعليمة PAADSW تجمع أربع كلمات لأعداد صحيحة ذات إشارة في معامل المصدر الثاني و تخزن النتيجة لأربع كلمات أعداد صحيحة ذات إشارة في معامل الهدف . ( لاحظ أن مسجل MMX نفسه مستخدم بشكل عام من أجل معامل المصدر الثاني و معامل الهدف ) . تقنية SIMD هذه تسرع أداء البرمجيات بواسطة السماح لنفس العملية بمعالجة عناصر معطيات متعددة على التوازي . تدعم تقنية MMX العمليات المتوازية لعناصر معطيات البايت، الكلمة، أو الكلمة المضاعفة عندما تكون موجودة في مسجلات MMX . صورة:Image104.jpg]




إن موديل تنفيذ SIMD الذي تم دعمه في تقنية MMX يقوم بشكل مباشر بعنونة متطلبات تطبيقات الوسائط المتعددة الحديثة ، و الاتصالات و التطبيقات الرسومية التي غالباً ما تستخدم خوارزميات متطورة و التي تنجز نفس العمليات على أعداد كبيرة لأنواع معطيات صغيرة ( البايتات، الكلمات، أو الكلمات المضاعفة ) . على سبيل المثال ، أغلب معطيات الصوت تكون ممثلة بمقادير كلمات أي 16-bit . تستطيع تعليمات MMX العمل على أربع كلمات بنفس الوقت لتعليمة واحدة . المعلومات الفيديوية و الرسومية تكون عموماً ممثلة كمقادير بايتات منقولة أي 8-bit . هنا تعليمة واحدة من تعليمات MMX تستطيع العمل ثماني بايتات في الوقت نفسه . =أنماط الإشباع و الالتفاف= : Saturation and wraparound Modes عند تنفيذ العمليات الحسابية على الأعداد الصحيحة فإنها قد تنتج حالة خارج المجال حيث لا يمكن تخزين النتيجة الفعلية الممثلة في صيغة الهدف . على سبيل المثال ، عند تنفيذ العمليات الحسابية على كلمة الأعداد الصحيحة ذات الإشارة ، فإن الطفحان الموجب قد يحدث مسبباً لأن تكون النتيجة الفعلية ذات الإشارة أكبر من 16-bit . إن تقنية MMX مزودة بثلاث طرق لمعالجة حالة خارج المجال : - حساب الالتفاف . - حساب الإشباع ذو الإشارة . - حساب الإشباع بدون إشارة . عند حساب الالتفاف فإنه يتم بتر ( إهمال) النتيجة الفعلية خارج المجال ( هذا يعني أن خانة الإشارة أو الطفحان تهمل و الخانات ذات الأهمية الدنيا من النتيجة تعاد فقط إلى الهدف ) . حساب الالتفاف مناسب من أجل التطبيقات التي تتحكم بمجال المعاملات لمنع النتائج خارج المجال . إذا كان مجال المعاملات غير متحكم به ، فإن حساب الالتفاف قد يؤدي إلى أخطاء كبيرة على سبيل المثال جمع عددين كبيرين ذوي إشارة قد يسبب طفحاناً موجباً و يعطي نتيجة سالبة . عند حساب الإشباع ذو الإشارة فإن النتيجة خارج المجال تقيد إلى مجال قابل لتمثيل الإعداد الصحيحة ذات الإشارة من أجل حجم العدد الصحيح الذي نعالجه ( انظر الجدول (9-1)) على سبيل المثال ؛ إذا حصل طفحان موجب عند معالجة كلمة عدد صحيح ذو إشارة ، فإن النتيجة تشبع إلى 7FFFH ، التي هي أكبر عدد صحيح موجب يمكن تمثيله في 16-bit، أما إذا حصل طفحان سالب فإن النتيجة تشبع إلى 8000H . صورة:Image105.jpg]



عند حساب الإشباع بغير إشارة ، فإن النتيجة خارج المجال تقيد إلى مجال قابل لتمثيل الأعداد الصحيحة بدون إشارة من أجل حجم العدد الصحيح الذي نعالجه . و هكذا إذا حصل طفحان موجب عند معالجة بايت عدد صحيح بغير إشارة فإن النتيجة المعادة FFH أما إذا حصل طفحان سالب فإن النتيجة المعادة 00H . يزود حساب الإشباع أجوبة أكثر طبيعية من أجل العديد من إشباع الطفحان . على سبيل المثال ، عند حساب الألوان فإن الإشباع يبقي اللون إما أسود أصيل أو أبيض أصيل بدون السماح للانعكاس كما أنه يمنع الالتفاف اليدوي من الدخول إلى الحسابات عند فحص معاملات المصدر حيث أنه لا يستخدم . إن تعليمات MMX لا تشير إلى الطفحان أو الجفاف الناتج بواسطة توليد الاستثناءات أو توضيع الأعلام في مسجل الأعلام EFLAGS .

=تعليمات MMX =: MMX Instructions تتألف مجموعة تعليمات MMX من 47 تعليمة مصنفة ضمن مجموعات إلى الفئات التالية : • تعليمات نقل المعطيات . • تعليمات حسابية . • تعليمات مقارنة . • تعليمات التحويل ( الضغط ). • تعليمات فك الضغط . • تعليمات منطقية . • تعليمات إزاحة . • تعليمات حالة MMX الفارغة EMMS . يبين الجدول (9-2) ملخصاً عن التعليمات أو في مجموعة تعليمات MMX . تعطي الفقرات التالية لمحة مختصرة عن كل مجموعة في مجموعة تعليمات MMX و التعليمات ضمن كل فئة

صورة:Image106.jpg]











ملاحظة : تعليمات MMX الموصوفة في هذا الفصل هي تلك التعليمات المتوفرة في معالج البنية IA-32 عندما توضع الخانة ذات الترتيب 23 التي هي خانة ميزة CPUID MMX . تدرج الفقرتين (10-4-4) و (11-4-2) تعليمات إضافية متضمنة مع توسعات SSE and SSE2 التي تعمل مع مسجلات MMX و لكنها لا تعتبر كجزء من مجموعة تعليمات MMX . ==تعليمات نقل المعطيات ==: Data Transfer Instructions تنقل تعليمة MOVD (نقل بـ 32-bit) معطيات مجمعة بـ 32-bit من الذاكرة إلى مسجل MMX و العكس بالعكس ، أو من مسجل عام الغرض إلى مسجل MMX و العكس بالعكس . تعليمة MOVD ( نقل بـ 64-bit ) تنقل معطيات مجمعة بـ 64-bit من الذاكرة إلى مسجل MMX و العكس بالعكس ، أو تنقل معطيات بين مسجلات MMX . ==التعليمات الحسابية ==: Arithmetic Instructions تنجز العمليات الحسابية PADDB, PADDW, PADDD ( جمع أعداد صحيحة مجمعة ) أو PSUBB, PSUBW, PSUBD ( طرح أعداد صحيحة مجمعة ) عمليات جمع أو طرح عناصر معطيات ذات إشارة أو بلا إشارة مطابقة لمعاملات المصدر و الهدف في نمط الالتفاف . هذه التعليمات تعمل على أنواع معطيات مجمعة بايت أو كلمة أو كلمة مضاعفة . تنجز التعليمات الحسابية PADDSB, PADDSW ( جمع أعداد صحيحة ذات إشارة مجمعة مع إشباع ذو إشارة ) أو PSUBSB, PSUBSW ( طرح أعداد صحيحة ذات إشارة مجمعة مع إشباع ذي إشارة ) عمليات جمع أو طرح عناصر معطيات ذات إشارة مطابقة لمعاملات المصدر و الهدف مع إشباع النتيجة لحدود مجال نوع معطيات ذي إشارة ، هذه التعليمات تعمل على أنواع معطيات مجمعة بايت ، أو كلمة . تنجز التعليمات الحسابية PADDUSB, PADDUSW ( جمع أعداد صحيحة بدون إشارة مجمعة مع إشباع بلا إشارة ) أو PSUBUSB, PSUBUSW ( طرح أعداد صحيحة بدون إشارة مجمعة مع إشباع بدون إشارة ) عمليات جمع أو طرح عناصر معطيات بدون إشارة مطابقة لمعاملات المصدر و الهدف مع إشباع النتيجة لحدود مجال نوع معطيات بدون إشارة هذه التعليمات تعمل على أنواع معطيات مجمعة بايت أو كلمة . تنجز التعليمة الحسابية PMULHW ( ضرب أعداد صحيحة ذات إشارة مجمعة و تخزين النتيجة العليا ) أو PMULLW ( ضرب أعداد صحيحة ذات إشارة مجمعة و تخزين النتيجة الدنيا ) عملية ضرب ذو إشارة مطابقة لكلمات معاملات المصدر و الهدف و تكتب العليا أو الكلمة الدنيا من النتيجة على الترتيب في معامل الهدف . تنجز التعليمة الحسابية PMADDWD ( ضرب و جمع أعداد صحيحة مجمعة ) عملية ضرب كلمات ذات إشارة مطابقة لمعاملات المصدر و الهدف . ناتج أربع كلمات مضاعفة الوسطى بـ 32-bit تجمع في أزواج ( زوج الترتيب العلوي و زوج الترتيب السفلي ) للحصول على نتيجة كلمتين مضاعفتين بـ 32-bit .

==تعليمات المقارنة== : Comparison Instructions تنجز التعليمات PCMPEQB, PCMPEQW, PCMPEQD ( مقارنة معطيات مجمعة من أجل المساواة ) أو PCMPGTB, PCMPGTW, PCMPGTD ( مقارنة أعداد صحيحة ذات إشارة مجمعة من أجل أكبر من ) عمليات مقارنة عناصر معطيات ذات إشارة ( بايت،أو كلمة ، أو كلمة مضاعفة ) في معاملات المصدر و الهدف من أجل المساواة أو من أجل أكبر من على الترتيب . هذه التعليمات تولد حجب الواحدات أو الأصفار المكتوبة في متحول الهدف تستطيع العمليات المنطقية استخدام الحجب لاختيار العناصر المجمعة . و يمكن استخدام هذا لتحقيق عملية نقل شرطية من غير تعليمات التفريغ أو مجموعة من تعليمات التفريغ الأعلام في المسجل EFLAGS لا تتأثر .

[تحرير] تعليمات التحويل ( الضغط )

Conversion Instructions تنجز التعليمة PACKSSWB ( ضغط الكلمات إلى بايتات مع إشباع ذو إشارة ) و PACKSSDW ( ضغط الكلمات المضاعفة إلى كلمات مع إشباع ذو إشارة ) عملية تحويل الكلمات ذات الإشارة إلى بايتات ذات إشارة و الكلمات المضاعفة ذات الإشارة إلى كلمات ذات إشارة على الترتيب مع الإشباع ذو الإشارة . تنجز التعليمة PACKSUWB ( ضغط الكلمات إلى بايتات مع إشباع بدون إشارة ) عملية تحويل الكلمات ذات الإشارة إلى بايتات بلا إشارة مع الإشباع بغير إشارة .

[تحرير] تعليمات فك الضغط

Unpack Instruction تنجز التعليمات PUNPCKHBW, PUNPCKHWD, PUNPCKHDQ, ( فك ضغط عناصر المعطيات ذات الترتيب العلوي ) و PUNPCKLBW, PUNPCKLWD, PUNPCKLDQ ( فك ضغط عناصر المعطيات ذات الترتيب السفلي ) عملية فك ضغط عناصر المعطيات ذات الترتيب العلوي أو السفلي للبايتات ، الكلمات و الكلمات المضاعفة لمعاملات المصدر و الهدف و إدخالهم في معامل الهدف . بوساطة وضع أصفار في معامل المصدر فإنه يمكن استخدام هذه التعليمات لتحويل بايت أعداد صحيحة إلى كلمة أعداد صحيحة ، و كلمة أعداد صحيحة إلى كلمة مضاعفة للأعداد الصحيحة ، أو كلمة مضاعفة للأعداد الصحيحة إلى أعداد صحيحة رباعية الكلمة.

[تحرير] التعليمات المنطقية

Logical Instructions تنجز التعليمات PAND ( الضرب المنطقي خانة بخانة ) و PANDN ( نفي الضرب المنطقي خانة بخانة ) و POR ( الجمع المنطقي خانة بخانة ) و PXOR ( نفي الجمع المنطقي المطلق خانة بخانة ) العمليات المنطقية خانة بخانة على معاملات المصدر و الهدف رباعي الكلمة .

[تحرير] تعليمات الإزاحة

Shift Instructions تنجز تعليمات الإزاحة المنطقية نحو اليسار ، الإزاحة المنطقية نحو اليمين ، و الإزاحة الرياضية نحو اليمين عملية إزاحة كل عنصر بعدد محدد من مواقع الخانة . تنجز التعليمات PSLLW, PSLLD, and PSLLQ ( الإزاحة المنطقية نحو اليسار لمعطيات مجمعة ) و PSRLW, PSRLD,and PSRLQ ( الإزاحة المنطقية نحو اليمين لمعطيات مجمعة ) عمليات الإزاحة المنطقية نحو اليسار أو الإزاحة المنطقية نحو اليمين لعناصر المعطيات ، و تملأ بأصفار مواقع الخانات ذات الترتيب العلوي أو السفلي. تعمل هذه التعليمات على الكلمات المجمعة أو الكلمات المضاعفة أو الكلمات الرباعية . تنجز التعليمات PSRAW, and PSRAD ( الإزاحة الرياضية نحو اليمين لمعطيات مجمعة ) عمليات الإزاحة الرياضية نحو اليمين ، حيث تنسخ خانة الإشارة من كل عنصر معطيات إلى موقع الخانات الفارغة في الطرف العلوي لكل عنصر معطيات تعمل هذه التعليمات على الكلمات المجمعة أو الكلمات المضاعفة .

[تحرير] الربط مع شيفرة MMX

Interfacing with MMX Code تمكن تقنية MMX من الوصول المباشر إلى جميع مسجلات MMX . هذا يعني أن جميع اتفاقيات الربط الكائنة التي تنطبق على استخدام مسجلات الأغراض العامة للمعالجات ( EAX,EBX,etc ) أيضاً تنطبق على استخدام مسجل MMX . الربط الفعال لروتينات MMX قد يمرر البارامترات ويعيد القيم عبر مسجلات MMX أو عبر اتحاد حجرات الذاكرة ( عن طريق المكدس ) و مسجلات MMX . لا تستخدم تعليمة EMMS ولا تمزج شيفرة MMX و شيفرة x87 FPU عند استخدام مسجلات MMX لتمرير البارامترات . إذا كانت مستخدمة اللغة عالية المستوى التي لا تدعم بشكل مباشر أنواع معطيات MMX عندها يمكن تعريف أنواع معطيات MMX كبنية بـ 64-bit متضمنة أنواع معطيات مجمعة . عند تحقيق تعليمات MMX في لغات عالية المستوى يمكن الأخذ بعين الاعتبار إمكانيات أخرى مثل : 1- تمرير البارامترات إلى روتين MMX بواسطة تمرير مؤشر للبنية عن طريق المكدس . 2- إرجاع القيمة من التابع بواسطة إعادة مؤشر البنية .

[تحرير] استخدام شيفرة MMX في بيئة نظام تشغيل متعدد المهام

Using MMX Code in a Multitasking Operating System Environment تحتاج التطبيقات إلى تحديد طبيعة نظام التشغيل متعدد المهام الذي تنفذ من خلاله كل مهمة تحافظ على حالتها الخاصة بها التي يجب أن تحفظ عند حدوث تبديل المهمة تتألف حالة المعالج ( السياق ) من مسجلات عامة الغرض و مسجلات MMX و الفاصلة العائمة x87 FPU . تصنف أنظمة التشغيل إلى نوعين : 1- نظام تشغيل متعدد المهام متضامن Cooperative 2- نظام تشغيل متعدد المهام وقائي Preemptive أنظمة التشغيل متعددة المهام المتضامنة لا تحفظ حالة MMX أو PFU عند تنفيذ تبديل السياق لذلك يحتاج التطبيق إلى حفظ الحالة ذات الصلة قبل التخلي عن relinquishing التحكم المباشر أو الغير مباشر لنظام التشغيل . أنظمة التشغيل متعددة المهام الوقائية قادرة على الاستجابة من أجل حفظ و استرجاع حالة MMX و PFU عند تنفيذ تبديل السياق لذلك لا يحتاج التطبيق إلى حفظ و استرجاع حالة MMX و PFU.

[تحرير] معالجة الاستثناء في شيفرة MMX

Exception Handling in MMX Code تولد تعليمات MMX نفس النوع لاستثناءات الوصول إلى الذاكرة كما هو الحال مع تعليمات بنية IA-32 مثل إخفاق الصفحة المقطع غير موجود انتهاك Violation الحدود لا يمكن تعديل معالجات handlers الاستثناء الكائنة لمعالجة هذه الأنواع من الاستثناءات المولدة من شيفرة MMX . مالم يكن استثناء الفاصلة العائمة معلقاً فإن تعليمات MMX المتتابعة تولد استثناء الخطأ الرياضي ( المقاطعة 16 و / أو أسر الطرف FERR# ) تفترض تعليمة MMX عند العودة من معالج الاستثناء .

[تحرير] مسجل التخطيط

Register Mapping مسجلات MMX و مميزاتها تخطط لحجرات فيزيائية لمسجلات الفاصلة العائمة و مميزاتها .

[تحرير] أثر بادئات التعليمة على تعليمات MMX

Effect of Instruction Prefixes on MMX Instructions يبين الجدول (9-3) أثر بادئات التعليمة على تعليمات MMX يمكن معالجة مجال التصرف غير المتوقع كعملية محجوزة في أحد معالجات البنية IA-32 لتوليد استثناء شيفرة غير شرعية على توليد آخر للمعالجات .






إن تقنية SSE في معالجات PENTIUM III سرعت أداء التطبيقات بالنسبة لمعالجات PENTIUM III مثل الرسوميات ثلاثية الأبعاد حيث أضافت هذه التقنية 70 تعليمة جديدة طبقت على مجموعة جديدة من المسجلات بطول 128 bit . هذا يعطي المبرمج القدرة على تطوير الخوارزميات التي تستطيع مزج حزم الأعداد الصحيحة مع الفاصلة العائمة باستخدام تعليمات MMX و SSE و أيضاً قدمت تعليمات جديدة للتحكم بجميع أنواع المعطيات و هذا يتضمن القدرة على جدولة المعطيات في المعالج بينما يصغر تلوث الكاش و القدرة على الإحضار المسبق للمعطيات قبل أن تستخدم فعلياً . يحتاج SSE دعم من نظام التشغيل الذي يستطيع تخزين و استعادة حالة المعالج حسب الحاجة حتى الآن الأنظمة الوحيدة التي تدعمه هي :Microsoft's Windows 98 و Windows 2000. الفرق بين الـSSE و MMX هو أن كل منهما عبارة عن مجموعة تعليمات جديدة أضيفت للبنية الحالية لمعالجات PENTIUM و ذلك بالمشاركة مع مفهوم ال SIMD و لكن تختلف الـSSE عن MMX في نوع المعطيات التي تعالجها و في الطريقة التي تزود بها المعالج . الـ MMX هي SIMD للأعداد الصحيحة بينما الـSSE هي الـSIMD من أجل أعداد فاصلة عائمة أحادية الدقة فإن تعليمات MMX تطبق على معاملين 32-bit من النوع Integer في الوقت نفسه . أما تعليمات الـSSE فتطبق على معاملين 32-bit من النوع Float في الوقت نفسه . إن تعليمات الفاصلة العائمة SIMD الجديدة في معالجات PENTIUM III يمكن أن تصنف بطرق متعددة بالاعتماد على معايير متعددة : 1- التصنيف بالاعتماد على ترتيب المعاملات التعليمات و يسمى Data Packing. 2- التصنيف بالاعتماد على خواصهم السلوكية عندئذٍ يسمى Instruction Categories. 3- تصنيف بالاعتماد على المميزات الحسابية و يسمى Instruction Groups عرفت تقنية MMX بخطوط عريضة و أهداف محددة تم ذكرها في الملحق E .

[تحرير] البرمجة في توسعات مجرى تعليمة وحيدة متعددة المعطيات

Programming with the Streaming SIMD Extensions

أدخلت توسعات مجرى تعليمة وحيدة متعددة المعطيات Streaming SIMD Extensions (SSE) إلى البنية IA-32 من أجل الرسومات ثنائية الأبعاد و ثلاثية الأبعاد الصور المتحركة ، ومعالجة الصور ، تمييز الكلام ، تركيب أصوات الأوديو و التليفون و المؤتمرات الفيديوية .

[تحرير] نظرة عامة على توسعات SSE

Overview of the SSE Extensions أدخلت تقنية Intel MMX إمكانية تنفيذ SIMD إلى بنية IA-32 مع مسجلات بـ 64-bit أنواع معطيات أعداد صحيحة مجمعة بـ 64-bit وتعليمات تسمح لعمليات SIMD بأن تنفذ على معطيات الأعداد الصحيحة المجمعة التوسعات SEE هي امتداد لموديل تنفيذ SIMD هذا و ذلك بواسطة إضافة تسهيلات من أجل معالجة قيم الفاصلة العائمة أحادية الدقة النظامية Scalar و المجمعة المخزنة في مسجلات بـ128-bit أضافت توسعات SSE المزايا التالية للبنية IA-32 مع المحافظة على توافقية رجعية لجميع معالجات IA-32 و برامج نظام التشغيل و التطبيقات . • ثماني مسجلات معطيات بـ128-bit سميت مسجلات XMM • مسجل MXCSR بـ 32-bit الذي يزود خانات الحالة و التحكم من أجل العمليات المنفذة على مسجلات XMM.

[تحرير] أهداف تقنية Intel MMX

Objectives of the Intel MMX Technology

أهداف تصميم تقنية MMX : Objectives of the MMX Technology Design ==عرفت تقنية MMX بخطوط عريضة و أهداف محددة هي== : •=== تحسين أداء الوسائط المتعددة و الاتصالات و تطبيقات حسابية مكثفة أخرى تحسيناً فعلياً .=== •=== الحفاظ على توافقية رجعية تامة . إذ أن جميع أنظمة التشغيل و التطبيقات الموجودة من أجل IA-32 ستستمر بالعمل على معالجات INTEL الجديدة ذات تقنية MMX ومن غير تعديل ، كما أن البرامج المكتوبة بواسطة MMX ستعمل على نظم التشغيل هذه .=== •=== تصميم بنية مبتكرة و التي ستدرج للتناسق الخطي مع معالجات IA-32 قادمة ، بترددات أعلى بالاستفادة من تقنيات ميكروية متقدمة .=== •=== تعريف تعليمات عامة الغرض يمكن أن تفيد عدد كبير من التطبيقات في مجالات مختلفة من الوسائط المتعددة و الاتصالات بحيث تسرع الخوارزميات الموجودة حالياً و الخوارزميات التي ستظهر لاحقاً.=== •=== التطبيقات التي تستخدم تقنية MMX لن تسبب إخفاق التطبيقات التي لا تستخدمها .=== • ===التطبيقات الحالية التي لا تستخدم تقنية MMX لن تسبب إخفاق التطبيقات التي تستخدم تقنية MMX .=== •=== تطبيقات تقنية MMX ستعمل على كلا النوعي نظم التشغيل ( المحمية و غير المحمية ) .=== •=== تطويرات تقنية MMX ستأخذ نفس هيئة بنية IA-32 الحالية .=== عند تعريف تقنية MMX حللنا مجالاً عريضاً من البرمجيات التطبيقية ، هذه التطبيقات غطت مجالاً واسعاً من الوسائط المتعددة ، متضمنة الرسومات (2D, 3D ) ، ضغط وفك ضغط الصور( INDEO, MPEG, MPEG1) ، تركيب الموسيقى ، مشاريع التعرف على الصوت و التداول المرئي ( بواسطة ISDN أو بواسطة خطوط نظم هاتفية عادية قديمة POST ). لقد حللنا هذه التطبيقات لمعرفة الروتينات الأكثر استهلاكاً للوقت فيها معظم هذه الروتينات كانت عمليات معالجة إشارة أساسية ، مثل مرشحات 1D & 2D، الالتفافات ، مرشحات استجابة الانبعاث المتناهي FIR ( Finite Impulse Response Filters ) ، تحويلات فوريية السريعة ، الضرب النقطي ، WAVELETS ، ضرب المصفوفات . بعض هذه الروتينات كانت خوارزميات اختصاصية محددة، مثل تعويضات الحركة و تشفير هوفمان للصور و فك الضغط الفيديوي ، الاقتران البنيوي و تقنيات التظليل في الألعاب الرسومية الفراغية . حللنا هذه الخوارزميات باستخدام أدوات هندسية متقدمة معتمدة على الحاسب لفهم ما يجري فيها . وكشفت نتيجة التحليل ، أنه على الرغم من أن التطبيقات التي درسناها كانت من مجالات مختلفة ، فإن =الشيفرة البرمجية المضيعة للوقت فيها لها خصائص محددة في العادة =: • العمليات التي كانت تتم على أنواع معطيات محلية صغيرة مثل ( 8 bit 16 bit Audio Samples ، Pixels ) . • الوصول المتكرر إلى نماذج ذاكرة مستقلة عادةً عن المعطيات . • حسابات محلية متكررة تنفذ على معطيات . • عمليات حسابية كثيفة . هذه الاستطلاعات وجهتنا إلى بنية " تعليمة واحدة – معطيات متعددة " (SIMD ) صممنا تقنية MMX لتوسع عمليات حساب الأعداد الصحيحة الأساسية ( كعمليات الجمع ، الطرح ، الإزاحة ، المقارنة ، الضرب ، المنطقية ،...) إلى أسلوب SIMD المنفذ على معطيات متعددة على التفرع . هذا مكننا من الاستفادة من كامل عرض ممر المعطيات 64bit, 32bit في معالجات INTEL المتوفرة عند العمل على بايتات أو كلمات أو كلمات مضاعفة . و للحفاظ على التوافقية أجبرنا على عدم إضافة أي ميزات جديدة ، كمسجل عام أو مسجل تحكم جديد أو تعليمات شرطية جديدة ، أو حتى بت حالة جديدة . و لم يكن بالإمكان إضافة أحداث جديدة لا تفهمها أنظمة التشغيل الحالية – مثل الاستثناءات الرقمية التي تظهر عند حدوث الأخطاء (NUMERIC EXCEPTIONS ). أخيراً وليس آخراً ، كان علينا التأكد أن التطبيقات و أنظمة التشغيل الحالية لا تستخدم تعليمات محجوزة استخداماً خاطئاً لتولد استثناءات برمجية ، تولد على المعالجات الحالية عند تنفيذ تعليمات MMX الجديدة ( لتشير داخلياً إلى حدث خاص ). الاعتراض البرمجي الخاطئ هذا يمر – أو ينفذ – في معالجات (IA) ذات تقنية MMX لأن هذه الأوامر الآن أوامر حقيقية الطريقة الأساسية التي حافظنا بها على التوافقية كانت استخدام مسجلات الفاصلة العائمة FP كمسجلات MMX . لقد أكدنا على تعريف تقنية MMX بحيث تكون مستقلة عن تقنيات البنية الميكروية الحالية . وكان إلزامياً أن تنسجم تقنية MMX بسهولة مع معالجات ذات ترددات أعلى و ذات بنية ميكروية متقدمة أكثر . بذل كثير من الجهد من أجل جعل التعليمات بسيطة بعض البنى الميكروية المتطورة تتضمن مميزات مثل SUPERSCALABILIT : إمكانية إجراء تعليمات متعددة على التفرع ، تنفيذ تعليمات خارج الترتيب OUT_ OF_ ORDER : إمكانية تنفيذ تعليمات عندما تصبح معطياتها جاهزة بدلاً من الترتيب التسلسلي ، وترددات سريعة جداً . لقد تأكدنا أن تعليمات MMX ستكون سهلة التطبيق على معالجات تستخدم هذه التقنيات . تجنبنا وضع تعليمات مخصصة لخوارزمية معينة ، أو تكون ذات غرض عارض إلى عدة سنوات .

=معالجات أخرى تستخدم تعليمات SIMD= : Other Microprocessors Using SIMD Instructions طبقت تعليمات SIMD في بنى معالجات أخرى عامة الغرض . المعالجان i860 و MC 88110 طبقا مجموعة محدودة من تعليمات SIMD رسومية و التي نفذت تفرعياً على أعداد صحيحة ثابتة الفاصلة . استهدفت دعم بعض الخوارزميات الأساسية في الرسم ثلاثي الأبعاد 3D ، مثل MULTIPLE ، Z-buffering, SHADING ، وبعض العمليات الرسومية ، هذه التطويرات كانت خاصة و تناسب مجموعة صغيرة من خوارزميات 3D فقط. مؤخراً يملك المعالجان PA-8000 و Ultra SPARK مجموعة إضافية من الامتدادات لتسريع تطبيقات الوسائط المتعددة . وكتقنية MMX فإن هذين المعالجين يدعمان المعالجة المتوازية على معطيات متعددة صغيرة ، مجمعة مع بعضها في 64bit . تصميم Ultra SPARK مماثل في استخدامه لنفس مسجلات الفاصلة العائمة و تعليماتها . شركتا DIGITAL EQUIPMENT و MIPS أعلنتا مخططاً لدعم تطبيقات الوسائط المتعددة عبر بنية SIMD ستتمركز البنى الرقمية على تضمين تعليمات محدودة من أجل خوارزميات خاصة ( كالضغط الفيديوي الرقمي ) داعمة هذه الخوارزميات دعماً فعلياً ستركز MIPS على امتدادات SIMD عامة الغرض للأعداد الصحيحة و الفاصلة العائمة.

[تحرير] أنواع المعطيات في تقنية MMX

MMX Data Types تعرف تقنية MMX ثلاثة أنواع معطيات مضغوطة ( ثمانية بايتات متجاورة ، أو أربع كلمات متجاورة ، أو كلمتان مضاعفتان متجاورتان ) و الكلمة الرباعية 64bit . كل عنصر في أنواع المعطيات المضغوطة هو عدد صحيح ثابت الفاصلة . يتحكم المستخدم بمكان توضع الفاصلة في كل عنصر وهو مسؤول عن موقعها طيلة فترة الحسابات . على الرغم من أن هذا يزيد من الحمل على المستخدم ، إلا أنه يمنح المرونة في اختيار و تغيير مقاييس الفاصلة الثابتة خلال التطبيق من أجل التحكم بالمجال الديناميكي للقيم .

=تعليمات MMX المطورة =: Additional MMX Instructions تضيف تقنية MMX إلى البنية (IA) تقريباً 57 تعليمة أهم المزايا في تعليمات MMX هي تعليمات الإشباع الحسابي ( SATURATION ARITHMETIC ) كمثال استخدام الإشباع في أداء الـ3D . إن إضاءة نقطة صورة ( PIXEL ) يعبر عنها بثلاثة مكونات إضافية : الإضاءة المحيطة ( تقريب إضاءة الخلفية العامة للسطح الذي تقع عليه الـPIXEL ) ، توزيع الإضاءة ( الانعكاس التشابكي للسطح الهدف الذي تتوضع عليه PIXEL ) الإضاءة المنظارية ( الانعكاس المضئ الشبيه بالمرآة من على السطح الهدف الذي تتوضع عليه الـPIXEL ). إن جمع هذه المكونات الثلاث قد يسبب طفحاناً في قيمة شدة الـPIXEL . فإذا لم تأخذ الاحتياطات فإن هذا قد يولد – كنتيجة للدوران – قيمة مختلفة تماماً عن المتوقع . إن جسماً مضيئاً جداً – على سبيل المثال – قد يصبح داكناً فجأة . الإشباع يضمن عدم حدوث هذه المشاكل ، ويقلل من الحاجة لفحص حالات الطفحان أو الجفاف و التي كانت تؤدي إلى إبطاء حلقات التظليل الداخلية . في تقنية MMX الإشباع ليس نظاماً . ولا يفعل بنصب إحدى رايات ( بتات ) الحالة أو ما يشابه . ببساطة إن بعض التعليمات تنفذ الإشباع كقسم من عملها ، البعض الآخر يستخدم حساب الدوران . بعض تعليمات MMX تحول بين أنواع المعطيات الجديدة كما توجد تعليمات للضغط وفك الضغط لتسهيل عملية التحويل بين أنواع المعطيات المضغوطة . هذا مهم بشكل خاص في الخوارزميات التي تحتاج إلى دقة فاصلة ثابتة أعلى في حساباتها المتوسطة. على سبيل المثال ، في عملية ترشيح الصور تحمل المعطيات كبايتات مضغوطة – بايت لكل PIXEL في واحد من مستويات الألوان . عملية الترشيح ( الفلترة ) تتضمن ضرب معاملات المرشح مع نقاط الصورة المجاورة و جمع النتائج وهي عملية غالباً ستؤدي إلى طفحان 8bit . لتجنب مشكلة الطفحان ، يمكن للمستخدم أن يفك البايتات المضغوطة إلى كلمات مضغوطة و ينفذ العمليات بدقة 16bit.عندما تكتمل الخوارزمية ، ينفذ تعليمة ضم ( ضغط – PACK ) الكلمة إلى بايت قبل تخزينها في الذاكرة . تعليمة UNPACK تفك نوع معطيات أصغر إلى نوع معطيات أكبر . تفيد هذه التعليمة في أغراض أخرى ، كالدمج ( أو الحشر ) البيني ، كمثال ، إن هذه التعليمة من أجل بايت تأخذ البايتات الأربعة الدنيا من كل معامل دخل ، و يضعها بالتناوب في مسجل الهدف . هذه العملية مفيدة في أمثلة كثيرة ، مثل استخدام الحشر البيني لوضع نقطة صورة جديدة بين كل زوج ممن نقاط صورة أخرى ، أو عند النقل بين أسطر مصفوفة و أعمدتها ، أو عند التحويل بين صيغة (RGBA) إلى مستويات لونية منفصلة و خلفية . في الحالة الخاصة التي يكون فيها أحد مسجلات الدخل أصفاراً فإن البايتات الغير المؤشرة تفك إلى كلمات غير مؤشرة . في معالجات PENTIUM ذات تقنية MMX و معالجات PENTIUM II تمر تعليمات MMX – ماعدا تعليمات الضرب – بدورة تعليمة واحدة ( CYCLE ) تعليمات الضرب لديها تأخير زمني بمقدار ثلاث دورات ، ولكن التصميم الأنبوبي لوحدات الضرب يسمح لعملية ضرب جديدة أن تبدأ في كل دورة . هذا يعني أنه مع حلقة دوران ، يمكن تحقيق ضياع دورة واحدة في كل تعليمة ضرب SIMD تعليمات MMX غير موجهة و يمكن استخدامها في التطبيقات ، أو الشيفرات البرمجية ، أو الخوارزميات ، أو برامج تعريف الأجهزة .... ، الجدول التالي يلخص التعليمات المتضمنة في تقنية MMX و الأعمال التي تقوم بها :

=مسجلات 64-bit في تقنية MMX= : MMX 64- bit Registers تعرف تقنية MMX منطقياً ثماني مسجلات 64bit عامة الغرض ، و التي تخطط على مسجلات الفاصلة العائمة . وكل منها يمكن أن يعنون مباشرة بتعليمات لغة التجميع باستخدام الأسماء MM0 وحتى MM7 في تعليمات MMX مع تعليمات MMX تصبح مسجلات MMX ذات وصول عشوائي أي إنها لا تستخدم في بنية مكدس كما هو عليه الحال في تعليمات الفاصلة العائمة PF تستخدم هذه المسجلات لحفظ معطيات MMX فقط . وهذه المعطيات أعداد صحيحة ثابتة الفاصلة ، و مضغوطة تعليمات MMX التي تحدد معامل ذاكرة تستخدم مسجلات (IA) لأعداد الصحيحة لتعنون ذلك المعامل . لذلك فإن التعليمة التالية هي تعليمة MMX مقبولة : PMULLW MM2 ، 32 [EAX] بما أن مسجلات MMX تستخدم فعلياً مسجلات الفاصلة العائمة FP فإن التطبيقات التي تستخدم تقنية MMX لديها 16 مسجلاً لتستخدم . ثمانية منها هي مسجلات الفاصلة العائمة التي تستخدمها MMX و كل منها ذو حجم 64 bit و التي تستخدم لحفظ معطيات مضغوطة ، و الثمانية الأخرى هي مسجلات الأعداد الصحيحة التي يمكن استخدامها في عمليات مختلفة كالعنونة و التحكم بالحلقات أو أي معالجة معطيات . ولقد وجدنا أن هذا التصريف لضغط المسجلات يجعل عنونة المسجلات أبسط و تقلل الحاجة لتخزين المعطيات مؤقتاً في الذاكرة . =قضايا تحقيق توافقية تامة مع (IA)= : Complete Compatibility with IA تحقق تقنية MMX توافقية تامة مع نظم التشغيل و التطبيقات الحالية باستخدام بنية الفاصلة العائمة في (IA) كتخزين مؤقت لمعطيات تقنية MMX . لم تضف مسجلات فيزيائية جديدة ، أو شيفرات شرطية ، أو أحداث لدعم تقنية MMX إن استخدام MMX لا يستدعي تغيير النمط ، فالمستخدم يمكنه تنفيذ تعليمات MMX مباشرة . اعتبار هام جديد كان الحاجة إلى نظام تشغيل متعدد المهام لحفظ و استرداد حالة المعالج عند تحويل المهمة . وضعت مشاركة تقنية MMX مسجلات الفاصلة العائمة تحديات تعريف متعددة . أحدها كان بنية المكدس لمسجلات FP . تعليمات تقنية MMX لديها و صول عشوائي إلى المسجلات في حين يصل تعليمات الفاصلة العائمة إلى المسجلات عبر مكدس . قضية أخرى تتضمن تطبيقاً يستخدم شيفرة كل من MMX و الفاصلة العائمة . الاستخدام المزدوج لمسجلات الفاصلة العائمة لا يمنع التطبيقات من استخدام كلا النوعين من التعليمات . ولكن على التطبيقات ألا تستخدم المسجلات للفاصلة العائمة و MMX في الوقت نفسه لأن القيم الموجودة في مسجلات الفاصلة العائمة تفسر تفسيراً مختلفاً عندما تستخدم من قبل تعليمات الفاصلة العائمة عما لو استخدمت من قبل MMX على المستخدم ألا يعتمد على محتويات المسجلات عند الانتقال بين تعليمات الفاصلة العائمة و MMX إن تقسيم الشيفرة المكتوبة بتعليمات الفاصلة العائمة و المكتوبة بتعليمات MMX إلى نوبات تنفيذية متعاقبة يجعل التعامل مع الانتقالات سهلاً . من الناحية العملية ، يرى نظام التشغيل مسجلات MMX كمسجلات الفاصلة العائمة ولا يهتم بالمعنى الحقيقي للمعطيات فيها . التعليمات التي يستخدمها نظام التشغيل لحفظ واسترداد قيم الفاصلة العائمة ( FRSTOR و FSAVE ) أيضاً تخزن و تسترد قيم تقنية MMX توجد تعقيدات أكبر في تعريف البنية البرمجية لتقنية MMX لجعلها متوافقة تماماً . ليس من المتوقع أن يكون بالإمكان لشيفرة مكتوبة بواسطة تقنية MMX و شيفرة مكتوبة بتعليمات الفاصلة العائمة أن تشتركا في المعطيات الموجودة في مسجلاتهما لسببين : 1- كل تعليمة MMX تنفيذية لها أثران جانبيان على حالة بيئة الفاصلة العائمة : • قمة مكدس الفاصلة العائمة يصفر . • تعلم بتات لافتة الفاصلة العائمة (TAG BITS) و كأنها مشغولة ( أو ممتلئة ) 2- مسجلات الفاصلة العائمة ذات حجم 80 bit و مسجلات MMX ذات حجم 64 bit تعليمات MMX التي تقرأ و تكتب على المسجلات تعمل كما يلي : • تعليمات القراءة في تقنية MMX تقرأ 64 بتاً فقط من المسجل الـ80 bit . • تعليمات الكتابة في تقنية MMX تكتب 64 bit فقط على المسجل الـ80 bit و البتات الـ16 العليا تملأ بالواحدات . في الواقع افترض أنه لا حاجة لاشتراك المعطيات بينهما كما إن اشتراك المعطيات غير مستحسن . في البرامج التي تحتاج استخدام الفاصلة العائمة و تقنية MMX يجب تقسيم البرنامج بحيث لا تتداخل التقنيتان على مستوى التعليمات على الرغم من أن هذا جائز على مستوى الإجراءات . يجب اعتماد واجهة مناسبة عند كتابة شيفرة بواسطة MMX هذا يعني بشكل أساسي اعتماد نفس الخطوط العريضة لقواعد الكتابة بشيفرة الفاصلة العائمة على سبيل المثال : • عند نهاية إجراء أو مكتبة ربط ديناميكي (DLL) اترك مسجلات الفاصلة العائمة في الحالة الصحيحة للإجراء المستدعى . هذا يعني بشكل عام ترك مكدس الفاصلة العائمة فارغاً ، إلا إذا كان للإجراء قيمة يعيدها لبيئته المستدعية . • لا تفترض أن تبقى حالة الفاصلة العائمة على حالها خلال الإجراءات . • إن تطبيق هذه القواعد على تقنية MMX يعطي • يمكن الولوج إلى مسجلات تقنية MMX مباشرة باستخدام MM7 ....MM0 • استخدام تعليمة EMMS في النهاية كل إجراء يستخدم تقنية MMX عندما لا تعلم ما هي التعليمات القادمة بعده . • عندما تستدعي إجراء لا تفترض أن حالة الـ MMX لديك محفوظة .

[تحرير] شكل التعليمة في تقنية MMX

Instruction Format with MMX Technology الشكل العام للتعليمة في بنية (IA) هو كما يلي : Operation operand ، operand2 المعامل operand1 هو دائماً معامل الهدف على سبيل المثال : MOV ، operand1 ، operand2 المعامل operand2 يحرك إلى المعامل operant1 . الخطوط العامة التالية هي تحويلات أساسية لتعليمات (IA) : • المعامل يمكن أن يكون قيمة فورية أو مسجلاً أو موقع في الذاكرة . • بعض التعليمات لها معاملات ضمنية و بعضها ليس لديها معاملات . • لا يوجد تعليمات معاملات موقعاً ذاكرة ( عدا تعليمات السلاسل ).

[تحرير] المراجع

[تحرير] المعالج المصغر /للدكدتور يحي النجار

http://www.intel.com/ http://www.intel.com/design/intarch/mmx/mmx.htm