درودبرای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید ارسالی توسط Over_Cracker برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
اول از همه اینکه بسیار عالیه یکی از کاربران انجمن 2 روز از وقت عزیزشو برای روشن سازی و بالابردن و ارتقائ سطح علمی انجمن صرف میکنه.این جای تقدیر داره
دوست من بحث از اونجا شروع شد که بنده در مورد یک ویژگی بسیار نوین وخاص از معماری نسل اینده haswell صحبت به میون اوردم و اون هم همین FMA بود که با پاسخ:موضوع دیگه ای رو هم که کاربر "Ramincybran" بحث های زیادی (که هنوز نمیدونم واسه چی در اون تاپیک در موردش طرح مسئله کردند!) در موردش انجام دادند.این بود که FMA ،یک Instruction Set نیست بلکه Individual Instruction هست.و دلیلشون هم این بود که در انجمن انگلیسی X به این شکل گفته شده و بعد شخصی اومده ویکی پدیا رو هم در این مورد،آپدیت کرده.
رو به رو شدم.وبعدا خدمتتون عرض کردم که FMA یک فیلد جدیدیه که فقط و وفقط در نسل اینده پردازنده های INTEL یعنی HASWELL به کار میره و در نسل قبلی وجود نداشته و همین باعث میشه لاقل در مباحث FP نسل Haswell نسبت به نسل core متفاوت عمل کنه.شما آنچنان از FMA3 صحبت می کنید و سمت بهش میدید که مخاطب تصور میکنه با یک پدیده خاصی روبرو هست و قراره فاکتور های یک معماری از نسل Core را نقض کنه.
که بعدا شما ترجمه ای از متن ویکی کردین و بحث های پیرو اون به وجود اومد .... که مفصله.
بگذریم بریم ادامه بحثمون:
خوشحالم که به این نتیجه رسیدید.همونطور که قبلا هم خدمتتون عرض کردم کل معماری یک پردازنده و بهره وری از منابع execution resource ها و دسترسی برنامه نویسان به اونها تنها و تنها از طریق معماری I-set ها و پیاده سازی اون روی قسمت های مختلف پردازنده هست که صورت میگیره.در ابتدا عرض کنم که معماری اینستراکشن ست،از بخش گیت های منطقی/ترانزیستورها،مدارات دیجیتال پردازنده،حافظه،پردازنده،م حیط های توسعه نرم افزار،سیستم عامل و در انتها برنامه های کاربردی رو درگیر خودش میکنه.یعنی اینکه و قتی یک اینستراکشن ست که مجموعه از دستور العمل های زبان ماشین هستش، برای توسعه و افزایش سرعت پردازش داده ها(حال،این داده ها میتونه از انواع عددی صحیح یا اعشاری یا در جهت دیکودینگ/انکودینگ... داده باشه) ارائه میشه نه تنها در پیاده سازی مدارات دیجیتال و هدایت سیگنال های دیجیتال، بلکه از پایین ترین سطح هسته سیستم عامل یعنی0 Ring تا توسعه یک نرم افزار رو درگیر خودش میکنه.یعنی اینکه پس از پشتیبانی و پیاده سازی یا توسعه یک اینستراکشن ست در سطح فیزیکی پردازنده،پشتیبانی و بستر سازی لازم باید در سطح سیستم عامل و محیط توسعه نرم افزار/کامپایلر ها نیز شکل بگیره تا در نهایت،برنامه کاربردی ما که میتونه یک Game باشه یا یک اپلیکیشن پردازش تصویر،از اینستراکشن ست ها در جهت افزایش سرعت و ارائه خروجی استفاده کنه.
و من حقیر هم این مورد رو خدمتتون گفتم و اینکه دستورالعمل های جدید به کل میتونه و باید شکل معماری یک پردازندرو تغییر بده .دقیقا اومدم FMA3 رو تعریف کردم که یک اینستراکشن هیچ ربطی به این نداره که بخواد جزء Core قرار بگیره یا خیر
ادامه بحثمون:
دوست من با تمام احترام باید خدمتتون بگم اینجا یک موردی وجود داره و اون اینه که شما دقیقا منظور individual instructions رو لاقل در این قسمت متوجه نشدید.این اشتباه شبیه اشتباهی هست که برای بیان شکل تفاوت زبانی individual instructions با instruction sets کردیم.اما چه زمانی ما از واژه individual برای یک اینستراکشن استفاده میکنیم؟ کاملا واضح هست که زمانی ما از واژه individual استفاده میکنیم که تنها با یک دستور منحصر به فرد و تکی مثل : Mov EAX,ECX در زبان ماشین مواجه باشیم که به این معنی هست که محتوای رجیستر ECX پردازنده رو در رجیستر EAX قرار بده.
اول از همه اینکه اینجا گفته شده بود:
FMA3 and FMA4 are not instruction sets, they are individual instructions -- fused multiply add
اینجا گفته شده individual instrcutionS یعنی دستورالعمل های اختصای FMA نه دستور العمل تنها instruction که معنی یک دستور العمل اختصاصی رو بده این کاملا اشتباه هست.
.من در ادامه تفاوت این هارو خدمتتون عرض میکنم و دوست دارم در این قسمت با هم جلو بریم.
پاسخ به تفاوت:
اول از همه باید خدمتتون بگم instruction set جدای از معانی که در wiki و سایر منابع و جود داره اگر به معنی لغوی اون نگاه کنیم معنیه همون مجموعه دستور العمل هارو میده.همه میدونیم set به معنای مجموعه هست و اینکه مجموعه ای از چیز ها میشود set جای فکر نداره.
دوست من اینکه به fma گفته شده دستورالعمل های اختصاصی ( individual instructions) به این معنا نیست که به شکل مجموعه ای از دستور العمل ها نیست.هر چند دستورالعمل که کنار هم برای اجرای یک مورد باشن خوب شکل مجموعه(instrction set) میگرن و این برای یک مجموعه کتاب یا ماشین یا تمبر یا ... میتونه اسم گذاری بشه.
منظور از دستورالعمل های اختصاصی ( individual instructions) در اینجا منفک کردن از i-set های موجود در CISC پردازنده هست دوست من.
این جدا سازی به گفته اینتل به این منظوره که:
Separate FMA instructions are provided to handle different types of arithmetic operations on the three source operands
خوب اینکه مشخص کرد منظور از جدا سازی چیه
البته همین ها(استفاده از FMA instructions ) باعث میشه که ما از FUSED MULTIPLY ADD برای سرعت بخشیدن به بعضی عملیات های FP به صورت جدا گانه و با اثر گذاری بالاتر نسبت به نسل قبلی داشته باشیم مثل پیداه سازی add suport نقاط شناور که در استاندارد IEEE-754-2008 معرفی شده بود
پس متوجه شدید که چرا ما مجموعه دستور العمل های اختصاصی FMA رو از مجموعه دستور العمل های CISC regular و گذشته اینتل منفک کردیم.
اگر در این قسمت شبه ای وجود داره از دوستان میخوام با بیان جزئیات بفرمایند تا دقیق تر وارد موضوع بشیم.(چون اطلاعات دقیق تری هنوز در دسترس نیست)
بریم بخش بعدی صحبت های دوستمون
در اینکه شکی نیست دوست من.علت اینکه به این دستورالعمل ها individual instructions گفته شد به این معنی نیست که تعداد زیادی دستورالعمل نیستن(که خواه ناخواه SET از دستورالعمل ها میشن) بلکه تفاوت کلی اونها با regular CISC I-SET های INETL هست. که به طور ساختاری بهشون گفته شده دستورالعمل های اختصاصی(Individual instructions) و مخصوص fused multiply add هستن .اما وقتی در I-Set FMA از واژه Set استفاده میشه،یعنی در بستر ( FMA (fused multiply–add دستورات زیادی (یک مجموعه یا Set) برای پردازش نهایی در برنامه های کاربردی تحت سیستم عامل،پیاده سازی شده است.(که میتونه برنامه های User mode و یا Kernel mode باشه،برنامه هایی مثل درایورهای قطعات سخت افزاری که نیاز به ارتباط به هسته و سطح پایین سیستم عامل داشته باشند،به برنامه های Kernel mode معروف هستند.همچنین برنامه های امنیتی و بد افزار ها نیز در سطح حرفه ای از سطوح پایین سیستم عامل استفاده می کنند.)
البته اینها که تنها یک بخش بسیار کوچکی از دستورالعمل های FMA هستن و شما بنا به حوصله تاپیک و اینکه زیاد شلوغ نشه بخش کوچکی و برای اشنایی رفقا در اینجا اوردید که تشکر میکنم.زمانی که مهندسین و Developer های اینتل در کتب و منوال های خودشون از واژه FMA Instruction Set استفاده میکنند نیز به همین دلیل هستش:
منبع:کتاب راهنمای جامع(Reference) برنامه نویسی اکستنشن های پیشرفته Vector ،فصل ششم.(انتشار کمپانی اینتل-2011)
برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
دستورات و توضیحات مربوطه به بستر FMA :
توضیح تکمیلی : در نقاطی که نام یک متغیر با پسوند /Mem اومده به این معنی هستش که این متغیر مربوطه میتونه یک محل از حافظه اصلی و یا یک رجیستر از پردازنده باشه(رجیستر ها ،حافظه های کوچکی(بسته به نوع معماری می توانند 16-بیتی-32 بیتی -64 بیتی-128 بیت...باشند) در پردازنده هستند که صرفا برای جابجایی،نگهداری داده های مورد پردازش،و یا ادرس بعدی دستور مورد پردازش ...استفاده میشن).
برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
عبارت Double-Precision نیز به معنای دقت مضاعف(منظور از دقت یک عدد یا داده ،طول و محدوده بعد از ممیز می باشد) داده اعشاری هستش.یعنی اگر یک نوع داده اعشاری در 16 بیت قرار بگیره.زمانی که دابل پریزیشن یا دقت مضاعف بشه،طول داده به 32 بیت افزایش پیدا میکنه.و یا از 64 بیت به دقت مضاعف=128 بیت.و انواع داده های مورد استفاده بستگی به نوع معماری و رجیسترها داره.
برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
خوب اینکه در این موارد زیاد بحث نمیشه به خاطر عدم علاقه رفقا به معماری میکرو پردازنده هاست و من هم در گذشته با اینکه اصلا به طور خیلی تخصصی در انجمن ها روی این موضوعات بحث نکردم و سعی کردم ساده و شفاف برا دوستان مباحث رو به ساده ترین شکل ممکن ادامه بدم باز هم مورد استقبال قرار نگرفته بود و تازه به پیچیده گویی و ..... متهم میشدم که موجب سردی خودم برای ادامه بحث در این حوضه شد.در هر صورت،مباحث I-Set ها و اکستنشن ها (Extension ) بسیار گسترده و به هم پیوسته هستند که مباحثش در بین کاربران ایرانی و حتی خارجی ،در حد بسیار پایین دنبال میشه. و این موضوع و به طور کل،مباحث جامع مربوط به معماری پردازنده رو بنده از چندین ماه پیش(زمان انتشار مقاله سندی بریج) در یک پروژه تحقیقی/مطالعاتی چندین ساله SSANT مد نظر قرار دادم تا در آینده بتونیم مقالات و کتبی درخور در مورد آنها ارائه کنیم.
در هر صورت من از بحث های تخصصی لذت میبرم و دوست دارم دوستان دیگری هم در مباحث شرکت کنن و اطلاعاتشونو به اشتراک بزارن.
امیدوارم توضیحات من قانع کننده بوده باشه.و علت صحبت اون بنده خدا هم در انجمن X شفاف سازی شده باشه.اگر باز هم نقطه ابهامی بود خوشحال میشم راجع به اون بحث کنیم.حال اینکه در فلان انجمن انگلیسی چند نفر چی گفتند و نگاه و تعریف کاملشون در مورد FMA چی بوده و دلایل علمی خودشون رو از چه بعدی ارائه میکنند،جای بسیار کنکاش و بررسی داره و هر شخصی که در انجمن PCN از مطالب دیگران نقل قول میکنه،باید تحلیل و توضیح کامل در موردش برای کاربران این انجمن ارائه بده. و الا ویرایش ویکی پدیا از عهده هر کاربر اینترنت بر میاد.)
سپاس.
موفق باشید
Bookmarks