0% found this document useful (0 votes)
22 views6 pages

Aca HW2

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views6 pages

Aca HW2

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

‫بسمه‬ ‫تعالی‬

‫معماریکامپیوتر پیشرفته‬

‫نیمسال اول ‪1403-1402‬‬


‫تمرین (‪)2‬‬
‫دانشکده مهندسی کامپیوتر‬ ‫دانشگاه صنعتی امیرکبیر‬
‫مهلت تحویل‪1402/10/ 08:‬‬
‫شماره دانشجویی‪:‬‬ ‫نام و نام خانوادگی‪:‬‬

‫دستور کار‪:‬‬

‫❖ پس از ‪ 10‬روز تاخیر مجاز درمجموع کل تمرینات(کامپیوتری‪ +‬دستی)‪ ،‬تحویل تمرین با تاخیر شامل جریمه میباشد‬
‫(هر روز ‪ 25‬درصد)‪.‬‬
‫❖ نام فایل ارسالی را در قالب ‪ ACA_HW(number)_studentID‬بارگذاری شود‪.‬‬
‫❖ تمامی پروژهها از لحاظ شباهت‪ ،‬کنترل و بررسی میشوند بنابراین از کپی کردن خودداری فرمایید چنانچه در صورت‬
‫مشاهده صفر لحاظ خواهد شد و نیز درمجموع نمرات جریمه خواهید شد‪.‬‬
‫❖ پاسخ خود را در ادامه سوال و داخل فایل‪ word‬قرار گرفته در سامانه قرار دهید و برای اسکن کردن پاسخ های خود‬
‫از ‪ CamScanner‬استفاده کنید و طبق فرمت خواسته شده فایل را ‪ pdf‬شده اپلود کنید‪.‬‬
‫❖ راه ارتباطی با حل تمرین‪:‬‬
‫‪[email protected]‬‬
‫بسمه‬ ‫تعالی‬
‫معماریکامپیوتر پیشرفته‬

‫نیمسال اول ‪1403-1402‬‬


‫تمرین (‪)2‬‬
‫دانشکده مهندسی کامپیوتر‬ ‫دانشگاه صنعتی امیرکبیر‬
‫مهلت تحویل‪1402/10/ 08:‬‬
‫شماره دانشجویی‪:‬‬ ‫نام و نام خانوادگی‪:‬‬

‫‪ -1‬کد زیر را درنظر بگیرید‪:‬‬

‫‪ )a‬زمان این توالی دستورالعمل را برای ‪ 5 ،pipeline‬مرحلهای به همراه تعداد چرخههای مورد نیاز برای اجرای‬
‫یک تکرار از حلقه بدون ‪ forward‬نشان دهید‪ .‬فرض کنید که رجیسترها را میتوان در یک چرخه‪ ،‬در حین‬
‫‪ ، writeback‬نوشت و خواند‪( .‬تعداد چرخههای اجرای یک تکرار حلقه پس از مرحله ‪ EX‬دستور ‪ BNEZ‬به‬
‫پایان میرسد)‬
‫‪ )b‬زمان این دنباله دستورالعمل را برای یک ‪ 5 ،pipeline‬مرحلهای به همراه تعداد چرخههای مورد نیاز برای‬
‫اجرای یک تکرار حلقه همراه با ‪ forward‬نشان دهید‪.‬‬
‫‪ )c‬فرض کنید که مقدار اولیه ‪ R3 = R2 + 396‬باشد‪.‬‬
‫‪ )d‬با فرض اینکه ‪ branch‬یک ‪ slot‬تاخیر دارد‪ ،‬کد را بازنویسی کنید تا آن ‪ slot‬پر شود‪.‬‬

‫‪ -2‬افزایش عمق ‪ pipeline‬بر عملکرد‪ 1‬از دو طریق چرخه ‪ clock‬سریعتر و افزایش ‪ stall‬به دلیل ‪ hazard‬داده و‬
‫کنترل تأثیر میگذارد‪ .‬فرض کنید ماشین اول یک ‪ 5 ،pipeline‬مرحلهای با ‪ 2 ns‬چرخه ‪ ،clock‬ماشین دوم یک‬
‫‪ 12 ،pipeline‬مرحلهای با چرخه ‪ 1.2 ns ،clock‬است‪ 5 ،pipeline .‬مرحلهای به دلیل ‪ hazard‬داده در هر پنج‬
‫دستورالعمل دچار ‪ stall‬میشود‪ ،‬در حالی که ‪ 12 ،pipeline‬مرحلهای هر ‪ 8‬دستورالعمل سه ‪ stall‬را تجربه‬
‫میکند‪ .‬عالوه بر این‪ branch ،‬ها ‪ ٪20‬دستورالعملها را تشکیل میدهند و میزان پیشبینی نادرست برای هر دو‬
‫ماشین ‪ ٪5‬است‪.‬‬
‫‪ )a‬سرعت ‪ 12 ،pipeline‬مرحلهای نسبت به ‪ 5 ،pipeline‬مرحلهای با در نظر گرفتن فقط ‪ hazard‬داده‬
‫چقدر است؟‬

‫‪1‬‬
‫‪performance‬‬
‫بسمه‬ ‫تعالی‬
‫معماریکامپیوتر پیشرفته‬

‫نیمسال اول ‪1403-1402‬‬


‫تمرین (‪)2‬‬
‫دانشکده مهندسی کامپیوتر‬ ‫دانشگاه صنعتی امیرکبیر‬
‫مهلت تحویل‪1402/10/ 08:‬‬
‫شماره دانشجویی‪:‬‬ ‫نام و نام خانوادگی‪:‬‬

‫‪ )b‬اگر جریمه پیشبینی نادرست ‪ branch‬برای ماشین اول ‪ 2‬چرخه باشد اما ماشین دوم ‪ 5‬چرخه باشد‪ ،‬با در‬
‫نظر گرفتن ‪ stalls‬ناشی از پیشبینی اشتباه ‪ CPI ،branch‬هر کدام چقدر است؟‬
‫‪ -3‬یک پیشبینیکننده همبسته‪ )m,n( 2‬از رفتار ‪ m‬آخرین ‪branch‬های اجرا شده برای انتخاب از بین ‪2m‬‬
‫پیشبینیکننده استفاده میکند که هر کدام یک پیشبینیکننده ‪ n-bit‬هستند‪ .‬یک پیشبینیکننده محلی دو سطحی‬
‫به روشی مشابه کار میکند‪ ،‬اما فقط رفتار گذشته هر ‪ branch‬را برای پیشبینی رفتار آینده بررسی میکند‪ .‬یک‬
‫‪ trade-off‬طراحی با چنین پیشبینیکنندههایی وجود دارد‪ :‬پیشبینیکنندههای همبسته به حافظه کمی برای‬
‫تاریخچه نیاز دارند‪ ،‬که به آنها اجازه میدهد پیشبینیکنندههای ‪ 2‬بیتی را برای تعداد زیادی از ‪branch‬های جداگانه‬
‫حفظ کنند (احتمال استفاده مجدد دستورالعملهای ‪ branch‬از همان پیشبینیکننده را کاهش میدهد)‪ ،‬در حالی که‬
‫پیشبینیکننده های محلی به حافظه بیشتری برای نگهداری تاریخچه نیاز دارند و بنابراین محدود به ردیابی تعداد نسبتاً‬
‫کمی از دستورالعملهای ‪ branch‬هستند‪ .‬برای این تمرین‪ ،‬یک پیشبینیکننده همبسته (‪ )1،2‬را در نظر بگیرید که‬
‫میتواند چهار ‪( branch‬نیاز به ‪ 16‬بیت) را در مقابل یک پیشبینیکننده محلی (‪ )1،2‬که میتواند دو ‪ branch‬را با‬
‫استفاده از همان مقدار حافظه ردیابی کند‪ .‬برای نتایج ‪branch‬های زیر‪ ،‬هر پیشبینی‪ ،‬ورودی جدولی که برای‬
‫پیشبینی استفاده میشود‪ ،‬هرگونه بهروزرسانی در جدول‪ ،‬و نرخ پیشبینی نادرست نهایی هر پیشبینیکننده را ارائه‬
‫دهید‪ .‬فرض کنید تمام ‪branch‬ها تا این مرحله گرفته شده است‪ .‬هر پیش بینی کننده را با جدول زیر مقداردهی کنید‪:‬‬

‫‪2‬‬
‫‪correlating branch predictor‬‬
‫بسمه‬ ‫تعالی‬
‫معماریکامپیوتر پیشرفته‬

‫نیمسال اول ‪1403-1402‬‬


‫تمرین (‪)2‬‬
‫دانشکده مهندسی کامپیوتر‬ ‫دانشگاه صنعتی امیرکبیر‬
‫مهلت تحویل‪1402/10/ 08:‬‬
‫شماره دانشجویی‪:‬‬ ‫نام و نام خانوادگی‪:‬‬
‫بسمه‬ ‫تعالی‬
‫معماریکامپیوتر پیشرفته‬

‫نیمسال اول ‪1403-1402‬‬


‫تمرین (‪)2‬‬
‫دانشکده مهندسی کامپیوتر‬ ‫دانشگاه صنعتی امیرکبیر‬
‫مهلت تحویل‪1402/10/ 08:‬‬
‫شماره دانشجویی‪:‬‬ ‫نام و نام خانوادگی‪:‬‬

‫‪ -4‬فرض کنید ما یک پردازنده با ‪ pipeline‬عمیق داریم که برای آن یک ‪ branch-target buffer‬فقط برای‬


‫‪branch‬های شرطی پیادهسازی میکنیم‪ .‬فرض کنید که جریمه پیشبینی اشتباه همیشه چهار چرخه است و جریمه‬
‫خطای بافر همیشه سه چرخه است‪ .‬نرخ ‪ 90 hit‬درصد‪ ،‬دقت ‪ 90‬درصد و فرکانس انشعاب ‪ 15‬درصد را در نظر بگیرید‪.‬‬
‫پردازنده با ‪ branch-target buffer‬در مقابل پردازنده ای که جریمه ‪ branch‬دو چرخه ثابت دارد چقدر سریعتر‬
‫است؟ یک چرخه ‪ clock‬پایه در هر دستورالعمل (‪ )CPI‬را بدون ‪ ،branch stalls‬یک فرض کنید‪.‬‬
‫‪ -5‬یک خط لوله عمیق در نظر بگیرید که فقط یک ‪ BTB‬برای پرش های شرطی پیاده سازی کرده ایم‪ .‬فرض کنید‬
‫جریمه ‪ 5 misprediction‬سیکل و جریمه ‪ miss‬شدن در بافر همواره ‪ 4‬سیکل است‪ .‬نرخ ‪ hit‬را ‪ 90‬درصد‪،‬‬
‫‪ 90 accuracy‬درصد و فرکانس پرش نیز ‪ 15‬درصد است‪ .‬سرعت یک پردازنده با داشتن ‪ BTB‬را با یک پردازندهای‬
‫که به طور ثابت ‪ 2‬سیکل جریمه پرش دارد مقایسه کنید‪ .‬هر دستور یک کالک برای اجرا (بدون در نظر گرفتن ‪stall‬‬
‫پرش برای هر یک) نیاز دارد‪.‬‬
‫‪ -6‬یک ریزمعماری با خط لوله ‪ 5‬مرحله ای شامل ‪ write-back ،memory ،execute ،decode ،fetch‬همراه با‬
‫دستورات زیر را در نظر بگیرید‪ .‬تمام دستورات یک سایکلی هستند به جز ‪ LW‬و ‪ SW‬که ‪1+2‬سایکلی و پرش ها‬
‫‪ 1+1‬سایکلی اند‪ .‬هیچ گونه ‪ forwarding‬وجود ندارد‪ .‬فاز هر دستور در هر کالک برای یک ‪ iteration‬از حلقه را‬
‫نشان دهید‪.‬‬
‫‪ )a‬چه تعداد کالک سایکل برای هر تکرار از حلقه به عنوان سربار پرش محسوب می شود؟‬
‫بسمه‬ ‫تعالی‬
‫معماریکامپیوتر پیشرفته‬

‫نیمسال اول ‪1403-1402‬‬


‫تمرین (‪)2‬‬
‫دانشکده مهندسی کامپیوتر‬ ‫دانشگاه صنعتی امیرکبیر‬
‫مهلت تحویل‪1402/10/ 08:‬‬
‫شماره دانشجویی‪:‬‬ ‫نام و نام خانوادگی‪:‬‬

‫‪ )b‬یک پیش بینی کننده پرش استاتیک در نظر بگیرید که از قابلیت ‪ backward branch‬در مرحله دیکد برخوردار‬
‫است‪ .‬حال چه تعداد کالک سایکل در سربار پرش ها هدر می رود؟‬
‫‪ )c‬یک پیش بینی کننده پرش داینامیک در نظر بگیرید‪ .‬چه تعدا سایک در یک پیش بینی صحیح هدر می رود؟‬

You might also like