به نام حقیقت.
مطالب ارائه شده در این بخش،مربوط به یکی از مباحث با عنوان" Individual Instruction یا Instruction Set بودن FMA" هستش که توسط یکی از دوستان در تاپیک زیر مطرح گردید.
آدرس تاپیک مربوطه:
http://www.pcnetwork.ir/showthread.p...602#post231602
به دلیل اینکه موضوع I-set ها و به خصوص FMA، نامربوط به تاپیک Ivy Bridge بود ،تصمیم گرفته شد در یک تاپیک مجزا پیگیری گردد.(پس دوستان ابتدا اون تاپیک و مباحث پیرامون FMA Instruction Set را مطالعه کنند.)
__________________________________________________ ________________________
ابتدا بی نهایت از فیدل عزیز سپاسگزارم که بحث رو به درستی در تاپیک Ivy Bridge و با شفافیت کامل پالایش کردند.و حقیقتا اگر مباحثی بخواد ارائه بشه که بار علمی برای کاربران نداشته باشه،به طبع هیچ ارزشی برای ما و انجمن نخواهد داشت.از این رو بنده سرفصل های اساسی بحث صورت گرفته رو یادداشت کردم و از 2 روز پیش در حال نوشتن هستم و بخش اولش که مربوط به تشریح معماری Core بوده،در حال اتمام می باشد.(شرحی کوتاه از شروع ارائه معماری P6 تا NetBurst نیز نوشته شده که بعد از اون وارد بخش تشریحی نسل بعد از معماری Netburst یعنی نسل معماری Core و زیر شاخه هاش میشیم...)
موضوع دیگه ای رو هم که کاربر "Ramincybran" بحث های زیادی (که هنوز نمیدونم واسه چی در اون تاپیک در موردش طرح مسئله کردند!) در موردش انجام دادند.این بود که FMA ،یک Instruction Set نیست بلکه Individual Instruction هست.و دلیلشون هم این بود که در انجمن انگلیسی X به این شکل گفته شده و بعد شخصی اومده ویکی پدیا رو هم در این مورد،آپدیت کرده.
در ابتدا عرض کنم که معماری اینستراکشن ست،از بخش گیت های منطقی/ترانزیستورها،مدارات دیجیتال پردازنده،حافظه،پردازنده،م حیط های توسعه نرم افزار،سیستم عامل و در انتها برنامه های کاربردی رو درگیر خودش میکنه.یعنی اینکه و قتی یک اینستراکشن ست که مجموعه از دستور العمل های زبان ماشین هستش، برای توسعه و افزایش سرعت پردازش داده ها(حال،این داده ها میتونه از انواع عددی صحیح یا اعشاری یا در جهت دیکودینگ/انکودینگ... داده باشه) ارائه میشه نه تنها در پیاده سازی مدارات دیجیتال و هدایت سیگنال های دیجیتال، بلکه از پایین ترین سطح هسته سیستم عامل یعنی0 Ring تا توسعه یک نرم افزار رو درگیر خودش میکنه.یعنی اینکه پس از پشتیبانی و پیاده سازی یا توسعه یک اینستراکشن ست در سطح فیزیکی پردازنده،پشتیبانی و بستر سازی لازم باید در سطح سیستم عامل و محیط توسعه نرم افزار/کامپایلر ها نیز شکل بگیره تا در نهایت،برنامه کاربردی ما که میتونه یک Game باشه یا یک اپلیکیشن پردازش تصویر،از اینستراکشن ست ها در جهت افزایش سرعت و ارائه خروجی استفاده کنه.
اما چه زمانی ما از واژه individual برای یک اینستراکشن استفاده میکنیم؟ کاملا واضح هست که زمانی ما از واژه individual استفاده میکنیم که تنها با یک دستور منحصر به فرد و تکی مثل : Mov EAX,ECX در زبان ماشین مواجه باشیم که به این معنی هست که محتوای رجیستر ECX پردازنده رو در رجیستر EAX قرار بده.
اما وقتی در I-Set FMA از واژه Set استفاده میشه،یعنی در بستر ( FMA (fused multiply–add دستورات زیادی (یک مجموعه یا Set) برای پردازش نهایی در برنامه های کاربردی تحت سیستم عامل،پیاده سازی شده است.(که میتونه برنامه های User mode و یا Kernel mode باشه،برنامه هایی مثل درایورهای قطعات سخت افزاری که نیاز به ارتباط به هسته و سطح پایین سیستم عامل داشته باشند،به برنامه های Kernel mode معروف هستند.همچنین برنامه های امنیتی و بد افزار ها نیز در سطح حرفه ای از سطوح پایین سیستم عامل استفاده می کنند.)
زمانی که مهندسین و Developer های اینتل در کتب و منوال های خودشون از واژه FMA Instruction Set استفاده میکنند نیز به همین دلیل هستش:
منبع:کتاب راهنمای جامع(Reference) برنامه نویسی اکستنشن های پیشرفته Vector ،فصل ششم.(انتشار کمپانی اینتل-2011)
برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
دستورات و توضیحات مربوطه به بستر FMA :
توضیح تکمیلی : در نقاطی که نام یک متغیر با پسوند /Mem اومده به این معنی هستش که این متغیر مربوطه میتونه یک محل از حافظه اصلی و یا یک رجیستر از پردازنده باشه(رجیستر ها ،حافظه های کوچکی(بسته به نوع معماری می توانند 16-بیتی-32 بیتی -64 بیتی-128 بیت...باشند) در پردازنده هستند که صرفا برای جابجایی،نگهداری داده های مورد پردازش،و یا ادرس بعدی دستور مورد پردازش ...استفاده میشن).
برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
عبارت Double-Precision نیز به معنای دقت مضاعف(منظور از دقت یک عدد یا داده ،طول و محدوده بعد از ممیز می باشد) داده اعشاری هستش.یعنی اگر یک نوع داده اعشاری در 16 بیت قرار بگیره.زمانی که دابل پریزیشن یا دقت مضاعف بشه،طول داده به 32 بیت افزایش پیدا میکنه.و یا از 64 بیت به دقت مضاعف=128 بیت.و انواع داده های مورد استفاده بستگی به نوع معماری و رجیسترها داره.
برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
در هر صورت،مباحث I-Set ها و اکستنشن ها (Extension ) بسیار گسترده و به هم پیوسته هستند که مباحثش در بین کاربران ایرانی و حتی خارجی ،در حد بسیار پایین دنبال میشه. و این موضوع و به طور کل،مباحث جامع مربوط به معماری پردازنده رو بنده از چندین ماه پیش(زمان انتشار مقاله سندی بریج) در یک پروژه تحقیقی/مطالعاتی چندین ساله SSANT مد نظر قرار دادم تا در آینده بتونیم مقالات و کتبی درخور در مورد آنها ارائه کنیم.
(حال اینکه در فلان انجمن انگلیسی چند نفر چی گفتند و نگاه و تعریف کاملشون در مورد FMA چی بوده و دلایل علمی خودشون رو از چه بعدی ارائه میکنند،جای بسیار کنکاش و بررسی داره و هر شخصی که در انجمن PCN از مطالب دیگران نقل قول میکنه،باید تحلیل و توضیح کامل در موردش برای کاربران این انجمن ارائه بده. و الا ویرایش ویکی پدیا از عهده هر کاربر اینترنت بر میاد.)
سپاس.
Bookmarks