تالار گفتمان مانشت
یه سوال معماری دارم لطفا راهنمایی کنید - نسخه‌ی قابل چاپ

یه سوال معماری دارم لطفا راهنمایی کنید - arsalmani - 14 آبان ۱۳۹۶ ۰۲:۱۶ ب.ظ

[attachment=22154]
سلام و عرض خداقوت
میخواستم در مورد سوال پیوست اگه کسی راه حلی داره ارائه کنه ..
و درموردش خود سوال هم راهنمایی کنه
با تشکر

RE: یه سوال معماری دارم لطفا راهنمایی کنید - msour44 - 15 آبان ۱۳۹۶ ۰۳:۳۸ ب.ظ

سلام
سوال در باره کارایی سیستم است.whetstone benchmark یک شیوه ارزیابی عمکرد سیستم است.که در سوال سیستمsun 3/75 با cpuی که نرخ کلاک ۱۶/۶۷ Mhzدارد.در این سیستم عملیات ممیز شناور به دو صورت می توانند اجرا شوند به کمک یه پردازنده جانبی و یا به کمک روال ها یعنی به صورت نرم افزاری.
منظور از cpi ها متوسط تعداد کلاک لازم برای اجرای هر دستور است.
در ابتدا MIPS را در هر دو حالت میخواهد که منظور متوسط تعداد میلیون دستوری است که در یک ثانیه اجرا می شود که[tex]MIPS=\frac{(clock\: rate)Mhz}{CPI}[/tex]
در حالت استفاده از کمک پردازنده[tex]MIPS_{co}=\frac{(clock\: rate)Mhz}{CPI}=\frac{16.67}{10}=1.667[/tex]
در حالت نرم افزاری [tex]MIPS_{ru}=\frac{16.67}{6}\simeq2.778333[/tex]
سوال بعدی تعداد کل دستورات اجرا شده در هر دو حالت را می خواهد:
در حالت کمک پردازنده با توجه به سوال قبل در هر ثانیه ۱/۶۶۷ میلیون دستور اجرا می شود یا در هر ثاینه تعداد ۱۶۶۷۰۰۰ دستور اجرا می شود در سوال گفته شده که زمان هر تکرار این ارزیابی با پردازنده جانبی ۱/۰۸ ثانیه زمان میبرد کافیه یه تناسب بگیریم تا تعداد کل دستورات در این حالت را بدست بیاوریم یعنی [tex]1.08\times1667000=1800360[/tex] تعداد کل دستورات اجرا شده است. شاید سوال کنید که تعداد کل عملیات را ۱۹۵۵۷۸ گفته توجه کنید که منظور طراح در این سوال از دستور اینه که هر عمل ممیز شناور با چندین دستور پایه ای شبیه سازی می شود. که معمولا هم همین طور است مثلا پردازنده کمکی دستور پایه ای جمع ممیز شناور را دارد ولی برای ضرب از چندین دستور جمع استفاده میکند به خاطر مباحث کارایی و هزینه.
در حالت دوم هم به همین ترتیب داریم[tex]13.6\: \times2778333=37785328.8\: \simeq\: 37785329[/tex]
در سوال سوم متوسط تعداد دستورات صحیحی که برای هر عمل ممیز شناور در حالت نرم افزاری مورد نیاز است را میخواهد. توجه شود که در حالت نرم افزاری یعنی با استفاده از کامپایلر معمولا کامپایلر ها از عملیات ممیز شناور پشتیبانی نمیکنند و انها را با تبدیل های خاصی محاسبه میکنند به همین دلیل تعداد دستورات اجرا شده در حالت نرم افزاری در سوال قبل زیاد بود. کافی است تعداد دستورات در حالت نرم افزاری را به تعداد دستورات در حالت پردازنده کمکی تقسیم کنیم تا متوسط تعداد دستورات صحیح لازم برای هر عمل ممیز شناور بدست اید
[tex]\frac{37785329}{1800360}\simeq21[/tex]
ذکر این نکته هم خالی از لطف نیست که برای ممیز شناور به جای MIPS ازMFLOPS(تعداد میلیون عمل ممیز شناور در هر ثانیه) استفاده می شودکه از MIPS بهتر است.حالا شاید علت مطرح نکردن این موضوع به خاطر حالت نرم افزاری مطرح شده در سوال است.