موضوع مقاله: بسط چندرسانه‌ای | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # بسط چندرسانه‌ای | مقدمه: MMX با خط ریزپردازنده پنتیوم مبتنی بر P5، به عنوان "پنتیوم با تکنولوژی MMX" شناخته می شود. | ## بخش 1: بسط چندرسانه‌ای | MMX یک قابلیت تکمیلی پردازنده است که توسط پردازنده های جدید آی‌ای-۳۲ اینتل و سایر فروشندگان پشتیبانی می شود. تبلیغات اولیه شامل تبلیغات در مسابقات سوپربول با این عنوان بود: "نسل جدید محصولات چند رسانه ای شامل گوشی های ویدیویی و بازی های ویدئویی سه بعدی." MMX متعاقباً توسط چند برنامه به‌وسیلهٔ Intel و دیگران گسترش یافته است: 3DNow! از آنجا که سرواژه سازی نمی‌تواند علامت تجاری باشد، این حرکت تلاشی برای لغو علامت تجاری اینتل بود. هر ثبات 64 بیتی است و می تواند اعداد صحیح 64 بیتی یا چند عدد صحیح کوچکتر را در قالب فرمت بسته بندی ( packed ) نگه دارد: یک دستورالعمل واحد می تواند روی دو عدد صحیح 32 بیتی، چهار عدد صحیح 16 بیتی یا هشت عدد صحیح 8 بیتی اعمال شود. هنگامی که برای i860 اینتل توسعه داده شد، استفاده از حساب اعداد صحیح معنادار شد (محاسبات 2بعدی و 3بعدی به آن نیاز دارند)، اما هنگامی که کارت های گرافیکی که از این عملیات ها استفاده می کردند رایج شدند، عدد صحیح SIMD در CPU تا حدودی برای برنامه های گرافیکی زائد شد. از سوی دیگر، عملیات محاسباتی اشباع در MMX می تواند به میزان قابل توجهی برخی از برنامه های پردازش سیگنال دیجیتال را سرعت ببخشد. برای جلوگیری از مشکلات سازگاری با مکانیسم تعویض زمینه در سیستم عامل های موجود، ثبات های MMX نام مستعاری برای ثبات های X87 FPU هستند. برخلاف ثبات های x87 که مانند یک پشته رفتار می کنند، ثبات های MMX هر کدام مستقیماً قابل آدرس دهی (دسترسی تصادفی) هستند. | ## بخش 2: بسط چندرسانه‌ای | هر عملیاتی که شامل پشته ممیز شناور باشد، ممکن است بر ثبات های MMX تاثیر بگذارد، و بالعکس. بنابراین این نامگذاری کار را با عملیات ممیز شناور و SIMD در یک برنامه دشوار می کند. برای به حداکثر رساندن عملکرد، برنامه نویسان اغلب از پردازنده به طور انحصاری در یک حالت استفاده می کنند، یا تا حد امکان، تعویض نسبتاً آهسته ای بین آنها برقرار می کنند. بنابراین 16 بیت پرارزش تر ثبات x87 در MMX استفاده نمی‌شود، و این بیت ها همه 1 می شوند، که در نمایش ممیز شناور از آنها به عنوان NaNs یاد می شود. این می تواند توسط برنامه ها بدین صورت مورد استفاده قرار گیرد که تشخیص دهند آیا محتوای یک ثبات به عنوان ممیز شناور در نظر گرفته شده است یا به عنوان داده SIMD. کامپایلر C اینتل و دیگر ابزار های توسعه دهنده، از تابع ذاتی برای فراخوانی دستورالعمل های MMX و کتابخانه های منتشر شده توسط اینتل با الگوریتم های رایج برداری( vector ) ، استفاده می کردند . اینتل و Metrowerks هر دو سعی در پیاده سازی برداری سازی خودکار روی کامپایلرهای خود داشتند، اما عملیات های زبان C به طرز ضعیفی روی مجموعه دستورالعمل MMX قرار گرفت و الگوریتمهای سفارشی شده تا سال 2000 همچنان باید به زبان اسمبلی نوشته می شدند. جانشین AMD ، به عنوان یک رقیب تولید کننده ریز پردازنده x86 ، ام ام ایکس اینتل را با مجموعه دستورالعمل 3DNow خود بهبود داد. | ## بخش 3: بسط چندرسانه‌ای | 3DNow بیشتر به جهت افزودن پشتیبانی از تک نقطه ای شناور (32 بیتی) به مجموعه دستورالعمل SIMD، و دیگر بهبود های کلی، شناخته شده است. SSE2 که با پنتیوم 4 معرفی شد، مجموعه دستورالعمل SIMD x86 را با عدد صحیح (8/16/32 بیتی) و پشتیبانی از داده های دو نقطه ای شناور برای رجیستر-فایل XMM توسعه داد. SSE2 همچنین به آپکدهای MMX این اجازه را می داد که از عملوند های ثبات های XMM استفاده کند، اما این پشتیبانی را با آمدن SSE4 (و اخیراً با SSE4.2 که در ریزمعماری هسته معرفی شده است ) پایان داد. با این حال، از آنجا که پشتیبانی از پردازنده برای هر نسخه از SSE، پشتیبانی از MMX را هم شامل می شود، این عدم پشتیبانی، انواع داده های قابل استفاده توسط x86 SIMD را محدود نمی‌کند. این فناوری، عملیات ریاضی و منطقی را بر روی اعداد صحیح 64 بیتی فراهم می کند (این نرم‌افزار ممکن است انتخاب کند که دو عملیات 32 بیتی، چهار تا 16 بیتی و یا 8 بیتی را در یک دستور واحد انجام دهد). همه ی رجیسترها از طریق مکانیزم نگاشت کمک پردازنده ای معماری ARM قابل دسترسی هستند. | ## جمع‌بندی | iwMMXt فضاهای 0 و 1 کمک پردازنده ها را اشغال می کند، و نیز برخی از آپکد های آن با آپکدهای FPA ( ممیز شناور قدیمی ) برخورد می کنند.