لینک دانلود و خرید پایین توضیحات
دسته بندی : وورد
نوع فایل : word (..doc) ( قابل ویرایش و آماده پرینت )
تعداد صفحه : 16 صفحه
قسمتی از متن word (..doc) :
Understanding pipelining Perforamce
شناخت پردازش خط لوله ای
بنا به دلایلی پنتیوم یک طراحی اصلی حیاتی بود اما احتمالاً وسیله ارتباط غیرعادی آن ویژگی اعتصابی و جالب و بحث برانگیز آن بود. پس از طی حدود 20 مرحله، ارتباط و خط لوله ی پنتیوم 4 تقریباً دو برابر عمیق تر و پیچیده تر از دیگر رقبای خود بود. اخیراً پرس کات (Prescott) با یک جانشین 90 نانومتری به پنتیوم 4 راه ارتباطی را به سطح بعدی با افزوده شدن یک 10 مرحله ای دیگر به پنتیوم 4، که هم اکنون نیز کانال ارتباطی طولانی تری است را دارد. استراتژی Intel برای پیچیده سازی کانال ارتباطی پنتیوم 4 که به نام بیش ارتباط یا hyperpipelining در عملکرد خود موفق بوده است اما بدون نقص و کاستی نیز نمی باشد. در مقاله قبلی در مورد پنتیوم 4 و پرسکات من به معایب کانال های ارتباطی پیچیده اشاره کاستی نیز نمی باشد. در مقاله قبلی در مورد پنتیوم 4 و پرسکات، من به معایب کانال های ارتباطی پیچیده اشاره کردم و تلاش نموده ام تا در مقالات بزرگتر فنی در Netburst این معایب را و دیگر مطالب را توضیح دهم. در مجموعه مقالات حاضر، قصد من استفاده از تاکید بیشتر برای توضیح کانال ارتباطی تاثیرات آن بر عملکرد ریزپردازنده و بخش های زیرین بالقوه آن، می باشد. من شما را از طریق مقدمه اساسی به تصور کانال ارتباطی خواهم برد و سپس توضیح خواهم داد که برای ارتباط موفقیت آمیز چه چیزهایی نیاز است و چه مخاطراتی در آن اختلال ایجاد می کند. در انتهای مقاله، شما کاملاً متوجه خواهید شد که چگونه عمق و پیچیدگی کانال ارتباطی به راههای مختلفی از کدها دقیقاً روی عملکرد ریز پردازنده تاثیر می گذارد، چنانچه مقاله قبلی من را با نام شناخت کانال ارتباطی و اجرای سوپر اسکالر (understanding pipelinigl supascalar eyecution) خوانده باشید، بخش اول این مقاله برای شما قابل فهم تر خواهد بود. در واقع این مقاله، همان قبلی است اما بسیار واضح تر، دقیق تر و امروزی تر.
چرخه زندگی یک دستورالعمل
فعالیت اصلی هر ریزپردازنده در حال عبور از دستورات را می توان در مجموعه 4 گام ساده کاهش داد. که هر دستور به شکل کد به ترتیب می رود تا اجرا می شود :
1ـ دستور بعدی را از آدرس ذخیره شده در شمارشگر برنامه را بیاروید (fetch)
2ـ این دستور را در ریجستر دستور ذخیره کنید و آن را رمز گشایی کنید و نشانی را در شمارشگر برنامه افزایش دهید.
3ـ دستور ریجستر را اجرا کنید (Execute) چنانچه دستور شاخه ای نیست به ALU (واحد محاسبه و منطق) مناسب بفرستید.
a) محتوای ورودی ریجسترها را بخوانید (Read)
b) محتوای ریجسترهای ورودی را اضافه کنید (ADD)
4ـ نتایج دستور را از ALU به ریجستر مقصد بنویسید (Wrie)
در یک پردازنده مدرن و جدید، چهار گام بالا بقدری تکرار می شوند تا اجرای برنامه تمام شود. اینها در حقیقت 4 مرحله در کانال ارتباطی (pipeline) RISC می باشد. اکنون در اینجا 4 مرحله را بطور خلاصه می آوریم :
1ـ Fetch (آوردن)
2ـ Decode (رمزگشایی کردن)
3ـ Execate (اجرا کردن)
4ـ Write یا «Write - bock» (نوشتن)
هر کدام از این مراحل را می توان یک فاز در چرخه زندگی دستور، به شمار آورد. یک دستور با فاز آوردن شروع می شود به فاز رمز گشایی رفته و بعد به فاز اجرا و نهایتاً به فاز نوشتن می رود. هر فاز زمان ثابتی و نه مساوی را صرف می کند. در اغلب پردازنده های مثال که در این مقاله به آنها خواهیم پرداخت. تمام 4 مرحله زمان یکسانی را صرف می کنند اما این موضوع برای پردازنده های واقعی اینگونه نیست. در هر مورد، اگر یک پردازنده ساده آزمایشگاهی دقیقاً 1 نانوثانیه برای تکمیل هر فاز صرف کند، این پردازنده برای تمام کردن یک دستور 4 نانو ثانیه وقت صرف می کند.
اساس کار خط لوله ای (pipelining) مقایسه
در بخش حاضر برای توضیح ارتباط از مقایسه کارخانه استفاده می شود. دیگر افراد از مقایسه های ساده تری مثل شستن رخت ها برای توضیح این تکنیک استفاده می کنند اما دلایل اندکی در انتخاب من برای این مقایسه وجود دارد. ابتدا، تجسم کارخانجات با خطوط اسمبلی برای خواننده راحت تر است و فضاهای زیادی برای جذب نقاط و نکات مختلف توسط خواننده وجود دارد. دوم، و احتمالاً مهمترین دلیل، مشکلات منابع مدیریتی و زمان بندی صف داده ها که طراحان کارخانه در ساخت کامپیوتر با آن مواجه هستند، می باشند. در بسیاری از موارد مشکلات و راه حل ها دقیقاً مشابهند، و به سادگی به قلمرو (