ابتدا بهتره بدونیم که Instruction Set Architecture یا به طور مختصر ISA به چه معناست؟پسوند 4 هم نشان دهنده 4 عملوند a , b , c . d می باشد که 4 ثبات جداگانه برای هرکدام از آن ها تعریف می شود.[RIGHT]
به زبان خیلی ساده مجموعه ای از دستورالعمل ها که یک پردازنده قادر به شناسایی و اجرای آن هاست.
در دنیای پردازش و داده ها همواره با 2 عنصر سخت افزار و نرم افزار رو به رو هستیم:
نرم افزار مجموعه ایی ازدستورالعمل ها و داده هاست و سخت افزار هم بستری رو برای پیاده سازی و اجرای نرم افزار فراهم
میکنه از همین رو رابطه بین این 2 اهمیت فوق العاده زیادی داره.
به همین منظور به یک نقشه و طراحی نیاز مندیم تا نرم افزار و سخت افزار را با هم مرتبط وهماهنگ کنیم. پیش از ادامه بحث
بهتره ابتدا نگاهی ساده به عملکرد پردازنده که همان پردازش بر روی داده هاست داشته باشیم. یک پردازنده در واقع مجموعه ای
از دستورالعمل ها را دریافت کرده و سپس آن ها را بر روی داده ها اجرا میکند.
به طور مثال دو داده 3 و 5 موجود است. حال به کمک یک سری از دستورالعمل ها این 2 داده از حافظه فراخوانی شده و در ثبات ها
(حافظه هایی با حجم بسیار کم و سرعت بسیار بالا) قرار میگیرد تا به طور مثال عمل جمع بر روی آن ها انجام می شود:
5=2+3 و حاصل بر روی ثباتی دیگر ذخیره می شود. پس می بینیم که دستورالعمل ها نقش بسیار مهم در در پردازش را بر عهده دارند.
حال طراحان موظف هستند به گونه ای ساختمان پردازنده را طراحی کنند که این دستورالعمل ها بر روی آن ها اجرا شوند به
عبارت دیگر بستر اجرای این دستورالعمل ها را به طور سخت افزاری فراهم کنند به طور مثال طراحی ثبات ها ، مسیرهای پردازش داده و ....
نرم افزار ها هم بر اساس همین طراحی برنامه ریزی می شوند و در واقع باید گفت که ISA رابط بین سخت افزار و نرم افزار را
فراهم میکند و فاصله بین زبان برنامه نویسی سطح بالا و سخت افزار را پر می کند.
در اصل یک پردازنده فقط قادر به درک 0 و 1 می باشد ، از طرفی برنامه نویسی با زبان ماشین ( 0و1) بسیار دشوار می باشد
برای همین برنامه نویسان از زبان های سطح بالاتر استفاده میکنند که ISA ها در این میان نقش واسطه رو ایفا میکنند.
مجموعه دستورالعمل های X86 یکی از معروفترین این ISA ها می باشد که توسط اینتل طراحی شده و در حال حاضر
اکثریت پردازنده های AMD وIntel به گونه ای ساخته و طراحی می شوند که با این دستورالعمل ها سازگار باشند. X86به مرور
زمان تغییرات زیادی کرده و تعمیم های زیادی به دستورالعمل های آن اضافه شده مانند SSE ، 3Dnow ، AVX ، FMA4 و ... .
یکی از همین تعمیم های جدید FMA4 می باشد . Fused Multiply Add که از ترکیب کلمات ترکیب شده =Fused ، ضرب =Multiplyدستورالعملهای FMA4 در چه برنامه هایی کاربرد داره ؟
و Add به معنای جمع می باشد که در واقع ترکیبی از عمل جمع و ضرب در این دستورالعمل برای پردازنده تعریف میشود:
d=a+b*c
بستر سخت افزاریه این دستورالعمل در پردازنده های بولدوزر پیاده سازی شده است و حال بسته به نرم افزار ها و سیستم عامل که
از این دستورالعمل ها پشتیبانی کنند یا خیر. در واقع به واسطه FMA4 قدرت پردازشی یک پردازنده در محاسبات ترکیبی ( مانند فرمول بالا )
استفاده میکنند افزایش پیدا میکند که احتمالا شامل برنامه های محاسباتی و مالتی مدیا خواهد شد {؟}.
در پایان باید گفت که مبحث ISA ها بسیار بسیار گسترده و پیچیده هست که مسلما نیاز به تحقیقات و بررسی های زیادی در زمینه
سخت افزار و نرم افزار داره.
پینوشت: سعی کردم در حد سوادم توضیحی ساده در این زمینه ارائه بدم امیدوارم مفید واقع شده باشه.
Bookmarks