کلمه دستورالعمل بسیار طولانی
From Wikipedia, the free encyclopedia
کلمه دستورالعملی بسیار طولانی (به انگلیسی: Very long instruction word) (اختصاری VLIW) به معماری واحد پردازنده مرکزی اشاره میکند که برای بهرهبرداری از فواید توازی در سطح دستورالعمل (ILP) طراحی شدهاست. پردازشگری که هر دستورالعمل را بعد از دیگری اجرا میکند (معماری غیر خط لولهای دارد)، ممکن است منابع پردازش را به نحو فریبندهای استفاده کند که این امر میتواند باعث عملکرد ضعیف شود. کارایی میتواند با اجرای همزمان زیر گامهای مختلف از دنبالههای دستورها (Pipelining) یا حتی اجرای دستورها چندتایی به شکل کاملاً همزمان درست مانند معماریهای Superscalar، بهبود یابد. برای بهبود بیشتر میتوان دستورالعملها را با نظمی متفاوت از آنچه در برنامه نشان داده شدهاند اجرا کرد. به این عمل اجرای خارج از نظم گفته میشود.
این مقاله نیازمند ویکیسازی است. لطفاً با توجه به راهنمای ویرایش و شیوهنامه، محتوای آن را بهبود بخشید. |
![]() | این مقاله نیازمند تمیزکاری است. لطفاً تا جای امکان آنرا از نظر املا، انشا، چیدمان و درستی بهتر کنید، سپس این برچسب را بردارید. محتویات این مقاله ممکن است غیر قابل اعتماد و نادرست یا جانبدارانه باشد یا قوانین حقوق پدیدآورندگان را نقض کرده باشد. |
در اغلب پیادهسازیها این سه تکنیک هزینهای دربردارند و آن افزایش پیچیده گی سختافزار است. قبل از اجرای هر دستور به صورت موازی پردازشگر باید بررسی کند که بین دستورالعملها وابستگی وجود نداشته باشد. برای مثال؛ نتیجه دستورالعمل اول به عنوان ورودی دستورالعمل دوم استفاده شدهاست. واضح است که چنین دستورالعملهایی نمیتوانند در یک زمان اجرا شوند و همچنین دستورالعمل دوم نمیتواند مثل اولی اجرا شود. پردازشگرهای خارج از نظم مدرن سختافزاری که وظیفه برنامهریزی دستورالعملها و مشخص نمودن وابستگی بین آنها را بر عهده دارند، افزایش دادهاند.
از طرف دیگر VLIW اعمال موازی را بر اساس برنامهای ثابت که در زمان کامپایل برنامه معین شده اجرا میکند. از آنها که مشخص کردند نظم اجرای اعمال به وسیلهٔ کامپایلر انجام میشود، پردازشگر به سختافزار برنامهریزی که سه تکنیک معرفی شده در بالا به آن احتیاج دارند، نیازی ندارند. در نتیجه CPUهای VLIW توان محاسباتی مهم با پیچیدگی سختافزاری کمتر (اما پیچیدگی کامپایلر بیشتر) از چیزی که بیشتر به پردازنده Superscalar نسبت داده میشود ارائه میدهد.
درست مثل هر روش معماری نوین؛ ایده تا جایی که اجازه دهد کارایی دارد. در حقیقت تعدادی از دستورالعملهای خاص منظوره موجود که باعث تسهیل اعمال پیچیده میشود. اگر کامپایلرها نتوانند ساختارهای کد سنج مربوطه را بشناسند و نتوانند که هدف را که معمولاً از پیشنهادهای پیشرفته CPU استفاده میکند نمایش دهند، بلا استفاده میشوند؛ بنابراین برنامه نویسان باید بتواند الگوریتمهای خودشان را به شیوهای که کار برای کامپایلرها آسانتر شود، ارائه دهند.