تالار گفتمان مانشت
سوال ۲۸ فصل ۶ پوران - نسخه‌ی قابل چاپ

سوال ۲۸ فصل ۶ پوران - mosaferkuchulu - 19 آذر ۱۳۹۰ ۱۱:۳۷ ب.ظ

دو پردازنده p1 و p2 با دستورات مشابه وجود دارند.p1 دارای یک پایپلاین ۵ مرحله ای و clock cycle ان ۱۰ نانو ثانیه است و p2 دارای یک پایپلاین ۷/۵ نانو ثانیه ای است.کدام یک از جملات زیر درست است؟
۱) p2 ماکزیمم through put بهتری دارد.
۲)برنامه‌ها روی p2 همیشه سریعتر از p1 است.
۳)اجرای یک دستور در p2 سریع‌تر از p1 است.


بچه‌ها پوران گفته ۱ و گفته به خاطر انشعاب ۲ و ۳ درست نیست!اما من درک نمی کنم چرا؟

سوال ۲۸ فصل ۶ پوران - narges_r - 20 آذر ۱۳۹۰ ۱۲:۵۰ ق.ظ

سوالو اصلاح میکنم
p2 دارای یک پایپلاین ۷ مرحله ای است و clock cycle ان ۷/۵ نانو پانیه

RE: سوال ۲۸ فصل ۶ پوران - homa - 20 آذر ۱۳۹۰ ۱۱:۵۷ ق.ظ

توان عملیاتی واسه پردازنده یعنی تعداد دستوراتی که در واحد زمانی (مثلا ثانیه) اجرا میشه
حالا اگه فرض کنیم که تعدا زیادی برنامه مشابه با n دستور روی دو پرازنده اجرا بشه زمان اجرا میشه:
[tex]p2 = 52.5 (n-1)*7.5 = 45 7.5n[/tex]

[tex]p1 = 50 (n-1)*10 = 40 10n[/tex]
چون تعداددستورات هر برنامه رو نمی دونیم پس بر اساس n تخمین میزنیم:
از دو عبارت بالا میخام یک تخمینی از زمان اجرای دو پردازنده بر اساس n بدست بیارم:
[tex]40 10n \geq 45 7.5n[/tex] که بدست میاد-----> [tex]n\geq 2[/tex]

و معنی این اینه که برای بر نامه هایی با تعداد دستورات بیشتر از ۲ در پردازنده‌ی p2 سریعتر اجرا می شود.
پس قسمت (ج) غلطه حداقل به ازاء برنامه با یک دستور P1 است، و قسمت (الف) درسته چونکه به طور کلی وقتی اجرا سریعتر باشه تعداد دستورات بیشتری هم در واحد زمانی اجرا میشه
در مورد قسمت (ب) به این خاطر غلطه چون از لفظ "همیشه" استفاده کرده، و کافیه یک مثال نقض بیاریمیعنی یک برنامه تو مجموعه‌ی p1 که سریعتر از P2 بشه:
اگه تو برنامه دستور پرش داشته باشیم نمی تونیم دستور دیگه ایی وارد پایپلاین کنیم تا اینکه دستور پرش به مرحله‌ی اجرا برسه پس تعدا مرحله ایی که پردازنده دوم (۷مرحله) باید منتظر باشه بیشتر از پردازنده‌ی اول (۵مرحله هست) پس حتما زمان اجرا برای یک برنامه ایی که تعداد دستورات پرش بیشتری داشته باشد در P2 بیشتر است.