You are on page 1of 6

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

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

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


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

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

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

‫نیمسال اول ‪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