سلام
زمانی که خط لوله پر شد یعنی بعد از k تا سیکل ساعت (برای اولین دستور)از ان به بعد در هر سیکل ساعت یک دستور اجرا می شود یعنی زمان اجرای n دستور برابر با kT+(n−1)T است.زمانی که دستورات گروه بندی می شوند طوری که تا زمانی که یک گروه تمام نشده گروه دیگر وارد خط لوله نمی شود در این حالت برای اولین دستور هر گروه مجبوریم پر کردن خط لوله را تکرار کنیم در واقع اگر m گروه دستور داشته باشیم m بار مجبوریم خط لوله را پر کنیم یعنی زمان mkT و سایر دستورات یعنی n-m دستور دیگر هر کدام در یک سیکل ساعت اجرا می شوند یعنی (n−m)T. یکسان بودن یا نبودن تعداد دستورات هر گروه تفاوتی ایجاد نمیکند چرا که اولین دستور هر گروه باید خط لوله پر شود تا ااجراش تکمیل شود و بعد دستور های بعدی ان گروه در یک سیکل ساعت اجرا می شود که اگر زمان هر گروه را تک تک حساب و بعد جمع کنیم به mkT+(n−m)T می رسیم.
در سوال ۴ گفته ۳۰ درصد دستورات از نوع پرشی هستند که بعد از انها دستوری وارد خط لوله نمی شود تا ان دستور پرش اجراش تکمیل گردد.پس در واقع هر دستور پرش یک گروه دستوری ایجاد می کند.n تا دستور داریم که ۳۰ درصد ان می شود0.3n .حال دو حالت داریم .حالت اول اخرین دستور یک دستور پرش باشد که در این حالت 0.3n گروه داریم و حالت دوم اخرین دستور پرش نباشد که در این حالت 0.3n+1 گروه داریم:
در حالت اول :
0.3n×3×T+(n−0.3n)T0.3n×4×0.9T+(n−0.3n)×0.9T=1.61.71 یعنی گزینه ی۲
در حالت دوم:
(0.3n+1)×3×T+(n−0.3n−1)T(0.3n+1)×4×0.9T+(n−0.3n−1)×0.9T=2T+1.6nT2.7T+1.71nT یعنی گزینه ی ۴
در سوال ۹ چیزی درباره ی اینکه بعد از هر دستور پرش خط لوله خالی می شد یا نه نگفته اگه اگر خالی نشود حداکثر تسریع همان k=11 است smax=limn⟶∞(nkTkT+(n−1)T)=k ولی وقتی خالی بشهsmax=limn⟶∞(nkT0.1n×kT+(n−0.1n)T)=112=5.5 که 0.1n دستور پرش یا گروه داریم و تعداد طبفات خط لوله هم ۱۱ است که در رابطه ی بالا اگر قرار دهیم به ۵/۵ رسیدیم برای هر دو حالت اخرین دستور پرش بودن یا نبودن هم فرقی نداره چون در حد بی نهایت یکسان می شود.