موازی سازی در سطح دستورالعمل

دانشنامه عمومی

موازی سازی در سطح دستورالعمل ( ILP ) ( به انگلیسی: Instruction - level parallelism ) معیاری برای تعیین این که چه تعداد از دستورالعمل ها می توانند در یک برنامه کامپیوتری به طور همزمان اجرا شوند نیز است.
ILP را نباید با همزمانی یا همروندی اشتباه گرفت:
• ILP اجرای موازی دنباله ای از دستورالعمل ها است که متعلق به یک رشته خاص از اجرای یک فرایند است ( یک برنامه در حال اجرا با مجموعه ای از منابع خودش: فضای آدرس، مجموعه ای از ثبات ها، شناسه های آن، وضعیت آن، شمارنده برنامه ( اشاره گر دستورالعمل ) و . . . ) .
• از طرف دیگر، همزمانی، تخصیص رشته های یک یا چند فرایند مختلف به هسته پردازنده در یک تغییر دقیق یا در موازی سازی واقعی را دربرمی گیرد . اگر هسته های پردازنده کافی باشد، در بهترین و ایده آل ترین حالت یک هسته برای هر رشته در حال اجرا درگیر می باشد.
دو روش برای موازی سازی در سطح دستورالعمل وجود دارد: سخت افزار و نرم افزار.
• سطح سخت افزار بر پایه موازی سازی پویا کار می کند، در حالی که سطح نرم افزار بر پایه موازی سازی استاتیک یا ایستا کار می کند.
• موازی سازی پویا به این معنی است که پردازنده در زمان اجرا تصمیم می گیرد که کدام دستورالعمل ها را به طور موازی اجرا کند، در حالی که موازی سازی ایستا به این معنی است که کامپایلر تصمیم می گیرد که کدام دستورالعمل ها را به طور موازی اجرا کند. پردازنده پنتیوم روی توالی دینامیکی اجرای موازی کار می کند، اما پردازنده ایتانیوم روی موازی سازی سطح استاتیک یا ایستا کار می کند.
برنامه زیر را در نظر بگیرید:
e = a + b f = c + d m = e * f عملیات ۳ به نتایج عملیات های ۱ و ۲ بستگی دارد، بنابراین تا زمانی که هر دو به اتمام نرسند نمی توان آن را محاسبه کرد. با این حال، عملیات ۱ و ۲ به هیچ عملیات دیگری بستگی ندارند، بنابراین می توان آنها را به طور همزمان محاسبه کرد.
اگر فرض کنیم که هر عملیات می تواند در یک واحد زمان به اتمام برسد، این سه دستورالعمل را می توان در مجموع، در دو واحد زمان انجام داد، در نتیجه در یک ILP 3/2 انجام می شود.
هدف طراحان کامپایلر و پردازنده شناسایی و استفاده حداکثری از ILP تا حد امکان است. برنامه های معمولی معمولاً تحت یک مدل اجرای متوالی نوشته می شوند که دستورالعمل ها یکی پس از دیگری و به ترتیب مشخص شده توسط برنامه نویس اجرا می شوند. ILP به کامپایلر و پردازنده اجازه می دهد تا اجرای چندین دستورالعمل ، با یکدیگر را همپوشانی کند یا حتی ترتیب اجرای آن ها را تغییر دهد.
عکس موازی سازی در سطح دستورالعملعکس موازی سازی در سطح دستورالعمل
این نوشته برگرفته از سایت ویکی پدیا می باشد، اگر نادرست یا توهین آمیز است، لطفا گزارش دهید: گزارش تخلف

پیشنهاد کاربران

بپرس