zerotwo
zerotwo
خواندن ۴ دقیقه·۴ سال پیش

ارزیابی کارآیی(فصل 2 معماری کامپیوتر)

در این قسمت می خواهیم به کمک هم و در کنار هم فصل 2 معماری کامپیوتر یعنی ارزیابی کارآیی رو یاد بگیریم.

در ابتدای فصل لازمه باهم یک تعریف رو مرور کنیم :

کلاک پالس یا کلاک سایکل(clock cycle): سیگنالی ست که متناوبا صفر و یک می شود. در همه ی ماشین های ترتیبی وجود دارد و اعضای یک ماشین رو باهم هماهنگ یا سنکرون می کند.

هر کلاک پالس شامل چهار قسمت می باشد : سطح مثبت ، سطح منفی ، لبه مثبت و لبه منفی

پریود کلاک: و همچنین به فاصله بین دو لبه مثبت و یا دو لبه منفی یک سایکل یا clock cycle time یا پریود می گویند.


پریود هر کلاک را با T نمایش می دهند و واحد آن ثانیه است، اما ثانیه واحد بزرگی برای T است ، به همین علت از مشتقات میلی ثانیه ، میکروثانیه ، نانو ثانیه و پیکو ثانیه استفاده می کنند.

فرکانس کلاک:معکوس clock cycle time را فرکانس کلاک و یا نرخ کلاک می نامند و به معنای تعداد کلاک پالس در یک ثانیه است . واحد آن هرتز است اما هرتز واحد کوچکی برای فرکانس کلاک است به همین خاطر از مشتقات کیلوهرتز، مگاهرتز ، گیگاهرتز و تراهرتز استفاده می کنند.

حالا که با هم یه سری پیش نیاز هارو دوره کردیم بریم سراغ اصل مطلب و اون معرفی MIPS هست.

تعریف MIPS: MIPS در واقع یه پارامتر ارزیابی کارآیی و میشه بوسیله آن پردازنده هارو با هم مقایسه کرد. در واقع MIPS که مخفف million instruction per second به معنای تعداد میلیون دستور در هر ثانیه است .

با تعریف MIPS بوسیله یک مثال بهتر آشنا می شویم.

مثال: یک پردازنده دارای 4 کلاس دستور است ، برنامه ای روی این پردازنده اجرا شده که در جدول زیر مشخصات برنامه آمده است. اگر نرخ کلاک پردازنده 200 مگاهرتز باشد MIPS را بیابید.



برای حل این مثال باید اول بدست آوریم که هر دستور متوسط چند کلاک می خورد؟

average clock per instruction: (0.2*6) + (0.3*4) + (0.1*14) + (0.4*3) = 5

یعنی به طور متوسط برای اجرای هر دستور باید پنج کلاک زده شود . به این مولفه ای که بدست آوردیم CPI یا همون clock per instruction می گویند.

البته CPI همیشه از این روش بدست نمیاد و اکثر مواقعی که به ما جدول می دهند از این روش استفاده می کنیم . راه دیگر برای بدست آوردن CPI این است که به ما می گویند به ازای x تعداد دستور y تعداد کلاک زده می شود و در اینجا تنها با تقسیم کردن y بر x می توانیم CPI را بدست آوریم.

برای حل مثالمون حالا باید بدانیم که هر دستور ما چه مدت طول می کشد که اجرا شود ، از یافته های مسئله داریم که نرخ کلاک برابر 200 مگاهرتز است و از قبل می دانیم پریود و فرکانس رابطه عکس دارند. بنابراین فرکانس برابر عکس 200 مگاهرتز یعنی یک بر روی 200 میکرو ثانیه خواهد بود.

بنابراین متوسط زمان اجرای هر دستور برابر :

average time per instruction: 5 * 1/200 =1/40 micro sec

پس متوجه شدیم که در 1/40 میکروثانیه یک دستور ما اجرا می شود ، حالا سوال این جاست که در یک ثانیه چند دستور می توانیم اجرا کنیم؟ با یک تناسب ساده به جواب خواهیم رسید.


پس با این تناسب متوجه شدیم که در هر ثانیه 40 میلیون دستور اجرا می شود ، با توجه به تعریف MIPS که تعداد میلیون دستور در هر ثانیه است پس پاسخ MIPS ما 40 است.

در ارزیابی کارآیی مفهوم دیگری به نام IPC هم داریم که به معنای این است که در هر کلاک چند دستور اجرا می شود که پاسخ آن عکس CPI است.

مثلا در مثالی که با هم حل کردیم ، CPI را برابر 5 آوردیم پس IPC برابر 1/5 خواهد بود یعنی در هر ثانیه 1/5 دستور اجرا می شود.

چند تعریف دیگر را نیز با هم یاد میگیریم تا به یه فرمول ساده تر برای بدست آوردن جواب MIPS برسیم.

متوسط زمان اجرای یک دستور : برابر ضرب CPI در T است که در حل مثال قبل از آن استفاده کردیم.
تعداد دستور : تعداد دستور را با IC نمایش می دهیم که مخفف instruction count است.
مدت زمان اجرای یک برنامه : IC را در زمان اجرای یک دستور ضرب می کنیم.

حالا وقت این هست که یک فرمول ساده تر برای MIPS بیابیم.


همانطور که می بینید با محاسبات ساده بالا ، به این موضوع رسیدیم که می توان مقدار MIPS را از تقسیم فرکانس (با واحد مگاهرتز) بر CPI بدست آورد.

حالا اگر از همین فرمول در مثالی که با کمک همدیگه در بالا حل کردیم استفاده کنیم فقط کافیه نرخ کلاک که 200 مگاهرتز بود رو بر CPI که 5 بدست آوردیم تقسیم کنیم و خیلی راحت تر به عدد 40 می رسیدیم.

من همه سعیم رو کردم که تمام نکات رو بهتون بگم .

تو قسمت بعدی با همدیگه این فصل رو کامل می کنیم .


معماریمعماری کامپیوترمدار منطقیکامپیوتر
می نویسم تا خودم یادبگیرم ; )
شاید از این پست‌ها خوشتان بیاید