زمان کنونی: ۳۱ فروردین ۱۴۰۳, ۰۶:۲۴ ق.ظ مهمان گرامی به انجمن مانشت خوش آمدید. برای استفاده از تمامی امکانات انجمن می‌توانید عضو شوید.
گزینه‌های شما (ورودثبت نام)

چند سوال از pipeline

ارسال:
  

Shiny_Star پرسیده:

چند سوال از pipeline

سلام

تو سوال ۳
پنالتی پرش منظورش چیه؟

تو سوال ۹
حداقل و حداکثر تسریع چیه؟

تو سوال ۴
clock cycle time , clock cycle instruction
یعنی چی؟

بقیه تست ها چطور حل میشه؟
با تشکر


فایل‌(های) پیوست شده

۳
ارسال:
  

csharpisatechnology پاسخ داده:

چند سوال از pipeline

با کسب اجازه از azad_ahmadi و esi و سایر اساتید محترم Big Grin سوال ۹ رو پاسخ میدم :
نکته:حداکثر سرعت یعنی چی ؟ یعنی توی زمان ثابت بتونیم تعداد دستورات بیشتری رو اجرا کنیم یعنی اگه فرض کنیم تعداد دستورات ما n باشه این n رو به بی نهایت میل بدیم. پس فرمول تسریع رو که قبلا هم اثبات کردیم می نویسیم و n رو به بینهایت میل میدیم.
یادتون باشه حداکثر تسریع همیشه همون k یا تعداد طبقات هست.
اینم اثباتش:
[tex]speedup=\frac{n*k*T_{pipe}}{(k n-1)*T_{pipe}}= \frac {nk}{k n-1}=\lim_{n\rightarrow \in fty }(\frac {nk}{k n-1})=\frac{\in fty}{\in fty}=\frac {(nk)'}{(k n-1)'}=\frac{k}{1}=k[/tex]
توی فرمول بالا چون حالت مبهم شد از صورت و مخرج نسبت به n مشتق گرفتیم که توی ریاضیات دبیرستان بهمون یاد دادند.
-------------------
پس حداکثر تسریع شد ۱۱/(چون توی سوال گفته ۱۱ طبقه داریم)
-------------------
حالا میخوایم حداقل تسریع رو حساب کنیم:
حداقل تسریع منظورش همون تسریع هست که طبق درس هایی که بر حسب موریس مانو دادم باید (کل زمان تاخیر غیر لوله) رو تقسیم بر (کل زمان لوله) کنیم.
------------------
طبق درسی که دادیم،گفتیم اگه فرض کنیم زمان اجرای هر دستور در سیستم غیرلوله ای k برابر (زمان اجرای هر دستور در سیستم لوله ای) بشه پس کل زمان اجرای n دستور در سیستم غیرلوله ای برابر است با:
[tex]T_{nopipe}=n*(k*T_{pipe})[/tex]
-------------------
توی فرمول بالا k تعداد طبقات یا سطوح یا قسمت های سیستم لوله ای هست که گفته شد ۱۱ طبقه داریم پس k=11 و داریم :
[tex]T_{nopipe}=n*(11*T_{pipe})[/tex]
------------------
و اما زمان لوله ای که اینجا عین آب خوردن بدست میاریمش:
میگیم اگه تعداد کل دستورات n باشه،و اگه m تاش پرشی باشن پس n-m تاش غیرپرشی هستن.
همینجا یاد بگیریم که :
{ دستورات پرشی دستوراتی هستند که به k سیکل احتیاج دارن.(k تعداد طبقات لوله است) }
{ دستورات غیرپرشی دستوراتی هستند که فقط ۱ سیکل مصرف می کنن. }
پس کل زمان تاخیر لوله از فرمول زیر بدست میاد:
[tex]T_{pipe-all}=(m*k)*T_{pipe} [(n-m)*1]*T_{pipe}[/tex]
کل دستورات اگه n باشه و اگه طبق سوال، ۱۰ درصد از این دستورات پرشی باشن پس:
[tex]m=\frac{10}{100}*n=(0.1)n[/tex]
پس داریم :
[tex]T_{pipe-all}=(0.1n)*11*T_{pipe} [(n-0.1n)*1]*T_{pipe}=\frac{20}{10}*n*T_{pipe}=2*n*T_{pipe}[/tex]
------------------
در نهایت داریم :
[tex]minSpeedup=speedUp=\frac{nopipe}{pipe}=\frac{n*(11*T_{pipe})}{2*n*T_{pipe}}=5.5[/tex]
-----------------
۱)به هیچ وجه از کتاب معماری کامپیوتر راهیان ارشد استفاده نکنید چون بسیار ناقص هست و حرف من رو به عنوان سند تضمینی پیش خودتون نگه دارید.
۲)بهترین کتاب برای کنکور ارشد معماری کامپیوتر ۳ تاست : موریس مانو + پوران پژوهش(هادی یوسفی) + مقسمی

۰
ارسال:
  

azad_ahmadi پاسخ داده:

چند سوال از pipeline

MIPS یعنی تعداد میلیون دستوری که در یک ثانیه اجرا میشه.
CPI یعنی میانگین تعداد کلاک های یک دستور العمل.
period - clock - clock time - clk همه یکی هستند و مدت زمان بین دو لبه یک پالس برحسب ثانیه است.
cpu clock rate - clock rate یعنی نرخ(تعداد) کلاک ها در یک ثانیه. (در یک ثانیه چندبار کلاک زده می شود).
cpu clock cycles یعنی تعداد کلاک هایی که برای اجرای یک دستور لازم هست.
------------------------------------------------
مثال:
clock time برابر هست با ۱ns. یعنی زمان بین لبه مثبت/منفی تا لبه مثبت/منفی دیگه ۱ns یا ۱/۱,۰۰۰,۰۰۰,۰۰۰ ثانیه هست.
پس clock rate برابر هست با اینکه در یک ثانیه چند بار کلاک زده میشود. یعنی ۱GHZ (یک میلیارد بار کلاک در یک ثانیه).
------------------------------------------------
سوال ۳:
شاید منظور از پنالتی پرش، "احتمال پرش" باشه که در صورت پرش اون رو p و در غیر اون صورت (۱-P) می گیریم و در فرمول تسریع حساب می کنیم.
-----------------------------------------------
سوال ۹:
حداکثر زمانی هست که اون ۱۰% پرش انجام نشه و مانند دستورات عادی دیگه وارد خطوط پایپ لاین بشه.
حداقل هم زمانی هست که اون ۱۰% پرش رو از دستورات عادی جدا حساب کنیم (بصورت سریال).
-----------------------------------------------
سوال ۱۵:
در سوال گفته که mem word ، از inst word دو برابر بزرگ تر هست، پس در هر بار می تونیم ۲ دستور رو واکشی کنیم اما فقط یکی از اون دستورات رو می تونیم در یک زمان دکود کنیم. (توجه کن که در صورت سوال گفته fetch and operand fetch ، پس یعنی این دو تنها یک مرحله هستن، اگه and وسط نبود قضیه فرق می کرد). واکشی باهم و دکود و اجرا جداگانه، پس در برای ۲ دستوری که باهم واکشی شدن تا پایان اجرا شدنشان بصورت عادی ۵ کلاک لازم هست، اما با پایپ لاین مرحله اجرای دستور اول با فتچ کردن دستور دوم overlap میشه و ... باید حساب کرد. Smile
-----------------------------------------------
سوال ۱۸:
الان قلم و کاغذ دم دستم نیست. (در پاسخ نامه هم همین را بنویس) Smile
-----------------------------------------------
سوال ۲۲:
در مورد این سوال مطمئن نیستم که درست دارم میگم یا نه، دوستان لطفا مشارکت بفرمایید..
پس از دکود کردن دستور معلوم میشه که دستور دارای پرش هست یا نه، پس باید fetch رو کنار بگذاریم.(منظور این هست که در ابتدا fetch هیچکاره هست و دکود باید بررسی شود) پس گزینه ۱ و ۲ رد میشه.
بین گزینه های ۳ و ۴ بنظر گزینه ۳ درسته.(جواب قطعی نیست و من این سوال را در کنکور جواب نخواهم داد).
-----------------------------------------------
کتابی که من می خونم از branch daly و اینا حرفی نزده، اگه ممکنه کسی که خونده اینارو یه توضیح کوچیک بده.
سپاس.

۱
ارسال:
  

csharpisatechnology پاسخ داده:

چند سوال از pipeline

۱۰۰ مگاهرتز یعنی ۱۰۰ ضربدر (۲ به توان ۱۰)کیولو هرتز یا ۱۰۰ ضربدر (۲ به توان ۲۰)هرتز،نه ۱۰۰ ضربدر(۱۰ به توان ۶)
==
اگه متوجه شدید که هیچ اگه نه بگید توضیح بدمBig Grin

مگا یعنی ۲ به توان ۲۰
MIPS یعنی Milions instructions per second یعنی میلیون دستورالعمل در ثانیه
میلیون یعنی ۱۰ به توان ۶
میلیون یا MIPS یه چیز دیگه هست با MHZ قاطی نکنید.

این جزوه ی معماری کامپیوتر دانشگاه شاهرود رو دانلود کنید و یه نیگاهی بندازید :

مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.


---------------------------------------------
پاسخ سوال ۱۵ : (بر حسب کتاب مقسمی_فصل ۹_کارایی و پردازش لوله ای)_ص ۴۰۴ :
ابتدا خود سوال رو مینویسیم(این سوال در کنکور سراسری ۱۳۷۳ آمده بود):
سوال۱۵)اگر کلمه ی حافظه یا memory word دو بابر کلمه ی دستورالعمل یا instruction word باشدو چرخه ی دستورالعمل شامل instruction fetch و decode and operand fetch و Execute باشد و هرکدام در یک سیکل انجام گیرد و پردازنده از نوع لوله ای سه قسمتی باشد حداکثر توان عملیاتی چند برابر افزایش می یابد؟
پاسخ)
با توجه به اینکه کلمات درون حافظه دوبرابر کلمات دستورالعمل است،در خط لوله همزمان دو دستور واکشی و دو دستور اجرا می شوند.
مراحل خط لوله بصورت زیر است و هر دو دستور در ۴ قطعه اجرا میشوند.
دیکود(رمزگشایی)هر دستور در یک قطعه ی مجزا صورت میگیرد.
[تصویر:  150059_1_1379086861.gif]
---------------------------------------------
بنابراین هر دستور به طور میانگین در [tex]\frac{4}{2}=2[/tex] اجرا میشود و داریم:
[tex]maxThroughput=\frac{oldSegment}{newSegment}=\frac{3}{2}=1.5[/tex]
---------------------------------------
اگه توضیحات ناقص بود بگید بازم توضیح بدم.

۰
ارسال:
  

csharpisatechnology پاسخ داده:

چند سوال از pipeline

اولا این فرمول میانگین زمان دسترسی به حافظه هست :
Average Memory Access Time)AMAT)
AMAT = Hit time + Miss rate × Miss penalty
Time to access a cache for both hits and misses
[تصویر:  149722_1_1379087042.gif]
میگه اگه سیستم مدیریت حافظه بیاد کش رو بگرده ببینه داده ها توی کش هست میشه برخورد یا hit. پس این زمان رو ضرب در احتمال برخورد یا hit ratio می کنیم.اما اگه داده ها توی کش نبود یه زمان دیگه باید مصرف بشه تا بریم داده ها رو از جای دیگه بیاریم توی کش. به این زمان میگیم نرخ خطا یا زمان میس یا پنالتی پرش یا mis penalty time .
این pdf خلاصه به زبان اصلی :

مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.

=====
اما به نظرم توی این سوال منظور از تاخیر پرش همون تعداد سیکلهایی هست که بین دو مرحله بجود میاد(که توی سوال ۲۲ هم بهش اشاره شده)

۰
ارسال:
  

csharpisatechnology پاسخ داده:

چند سوال از pipeline

میخوام سوال ۳ رو ج بدم.
سوال ۳ توی ارشد ۸۷ علوم کامپیوتر اومده :
تابع speedup برای یک سیستم pipeline بر اساس پارامترهای زیر بدست آورید.
f یعنی فرکانس تعداد پرش ها در برنامه ها
p یعنی پنالتی پرش ها بر حسب سیکل ساعت
n هم تعداد stage یا قسمت یا بندهای خط لوله است
===========
حل :
اول اینا رو یاد بگیر:
فرض کنیم زمان اجرای هر کار در سیستم غیرلوله ای،K برابر زمان اجرای هر کار در سیستم لوله ای بشه.پس داریم:
یعنی T_noPipe=K*T_pipe پس فرمولی که ذکر کردیم به صورت زیر در میاد (البته یادگیری این فرمول اجباری نیست فقط سعی کنید همون فرمول قبلی رو درک کرده و بعدش طبق داده ی های سوال،مسئله ی دلخواه رو حل کنید):
[tex]speedUp=\frac{n*(k*T_{pipe})}{(1*k (n-1)*1)*T_{pipe}}=\frac{nkT_{pipe}}{(k n-1)T_{pipe}}=\frac{nk}{k n-1}[/tex]
==
خوب حالا با توجه به پوران پژوهش حل می کنم برات(یکم هم توضیح بیشتری میدم براتون):
تعداد دستورات رو m فرض کنید.(یعنی به جای n توی فرمول بذار m)
واسه گیج کردن توی سوال به جای تعداد بندها یا k گذاشته n که باید توی فرمول بالایی جاگذاری کنیم.
این نکته رو هم در نظر داشته باشید که اینجا توی لوله زمان fmp*T هم اضافه شد که توضیحش طولانی هست و اگه وقت کردم براتون اثباتش می کنم.(فقط بگم f یعنی فرکانس . مثلا ۱۲ هرتز یعنی در هر ثانیه ۱۲ سیکل توسط ساعت پردازنده تولید میشه که با ساعت عادی ما فرق داره)(از طرفی فکر کنم توی لوله به ازای هر دستور ما f تا پنالتی داریم و هر پنالتی هم به اندازه ی اجرای هر دستور یعنی T واحد از زمان مصرفشه)
[tex]speedup=\lim_{m\rightarrow \in fty }\frac{(mn)*T}{(n (m-1) mfp)*T}[/tex]
[tex]=\lim_{m\rightarrow \in fty }(\frac{mn}{n m-1 mfp})[/tex]
[tex]=\frac{0}{0}\Rightarrow Hopital\Rightarrow \frac{n}{1 fp}[/tex]
یه یادآوری هم از قضیه ی هوپیتال(hopital) می کنم که تو ریاضی سوم نظری خوندیم:
میگه اگه حد رو به بی نهایت میل بدیم و صورت کسر و مخرج کسر هر دو بشن صفر، باید مشتق صورت رو تقسیم بر مشتق مخرج کنیم.که اومدیم از صورت و مخرج نسبت به m مشتق گرفتیم که اگه مشتق هم خواستید بگید یادتون بدم.
در مورد مبحث کارایی پردازنده و فرکانس و سیکل و اینجور چیزا هم می تونید این PDF رو دانلود کنید :

مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.

۰
ارسال:
  

nina69 پاسخ داده:

چند سوال از pipeline

سلام
اگه دوستان کسی میتونه
سوال ۱۸ رو هم توضیح بده
ممنون

۰
ارسال:
  

csharpisatechnology پاسخ داده:

چند سوال از pipeline

به طور گروهی داریم حلش می کنیم .از دوستان azad و esi هم خواستم در صورتی که وقت کردن بررسی کنن. منم سرم شلوغه دارم روشون فکر می کنم فقط زمان کم میارم و شب ها رو به صبح می کشم.Big Grin

منظور از Clock Cycle همان T_pipe است :
در سیستم لوله ای داریم :
[tex]T_{pipe}=(1*k (n-1)*1)*T=(k n-1)*T[/tex]
T_pipe همان سیکل ساعت است.
K تعداد طبقات یا stage یا سثgment ها است.
T هم متوسط زمان اجرای یک دستور در خط لوله.

۰
ارسال:
  

csharpisatechnology پاسخ داده:

زمان کلاک پردازنده و نرخ کلاک پردازنده

یه فایل پیوست می کنم در مورد cpu clock rate و cpu clock time بخونش.
این عکس رو از PDF جزوه ی معماری دانشگاه شاهرود کپی کردم.


فایل‌(های) پیوست شده

ارسال: #۱۰
  

Shiny_Star پاسخ داده:

RE: زمان کلاک پردازنده و نرخ کلاک پردازنده

سلام

اگه سرعت cpu باشه ۱۰۰MHZ یعنی تو هر ثانیه ۱۰۰x10^6 ،
clk داریم.حالا اگه CPI باشه ۱، تعداد دستور هایی که در یک ثانیه اجرا میشه برابر با ۱۰۰ MIPS
من مثال رو متوجه نشدم چطور حل کرده
یافتن تمامی ارسال‌های این کاربر

۰
ارسال: #۱۱
  

csharpisatechnology پاسخ داده:

چند سوال از pipeline

( کتابی که من می خونم از branch daly و اینا حرفی نزده، اگه ممکنه کسی که خونده اینارو یه توضیح کوچیک بده.):
پاسخ: توی موریس مانو در مبحث فرمول تسریع گفته شد زمان اجرای یک دستور در سیستم غیر لوله ای k برابر زمان اجرای یک دستور در سیستم لوله ای هست. یعنی :
t_noPipe=k*t_pipe
--------------------
فرمولی که طبق پوران برای حل سوال ۹ در بالا آوردیم این بود :
mkt+(n-m)t
--------------------
m تعداد دستورات پرشی بود.
-----------
برداشت من اینه :
دستورات پرشی دستوراتی هستند که قادر به اجرا در لوله نیستند(مثل دستورات jump یا goto یا ... که مقدار ثبات pc رو تغییر می دن)، چون این دستورات احتیاج به یه سری محاسبات دیگه هم دارن و باعث ایجاد خطراتی تحت عنوان hazard برای pipe میشن به نظر من اینجا فرض شده نمیشه این دستورات رو توسط سیستم لوله ای اجرا کرد و باید به روش غیر لوله ای اجرا بشن.
طبق این برداشت من و طبق فرض موریس مانو و با نگاه در فرمول مذکور به نظر میاد دستورات پرشی k سیکل و kt واحد زمانی مصرف می کنن و بقیه یک سیکل و ۱*t=t واحد زمانی.
---------------
اگه هم فرمول فوق رو به یه روش دیگه ثابت کنید باز هم نتیجه ی نهایی در اینجا همینی هست که من میگم.(این مباحث با مبحثی مثل اینکه بگیم دستور add یک سیکل اجرا می کنه و مثلا mul ممکنه سه سیکل مصرف کنه اشتباه نشه)
--------------
لطفا توی این زمان کمی که برای کنکور داریم حرفم رو بپذیرید وگرنه یه هفته ی دیگه هم باید روی این سوال بمونیم.Big Grin

۰
ارسال: #۱۲
  

maneshty پاسخ داده:

چند سوال از pipeline

منظور از پنالتی پرش،((زمان پرش))هست.



موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
  در نوشتن چند جمله انگلیسی نیاز به کمک دارم fa_karoon ۰ ۱,۴۴۶ ۰۳ شهریور ۱۴۰۰ ۰۱:۰۹ ب.ظ
آخرین ارسال: fa_karoon
  مدیریت سیستم چند پردازنده ای متقارن no_ta2000 ۰ ۱,۴۷۳ ۰۹ مهر ۱۳۹۹ ۰۲:۲۱ ب.ظ
آخرین ارسال: no_ta2000
  صفحه چند سطحی Flash1 ۰ ۱,۵۸۰ ۱۰ تیر ۱۳۹۹ ۰۵:۵۸ ب.ظ
آخرین ارسال: Flash1
  کمک برای چند تا سوالات شبکه کامپیوتری Hamedudk ۳ ۵,۷۴۱ ۲۷ آبان ۱۳۹۸ ۱۱:۴۲ ق.ظ
آخرین ارسال: khayyam
  چند راه برای این که پرواز طولانی راحت تری را تجربه کنید - خبرگزاری فارس abolfazlda ۰ ۹ ۲۴ بهمن ۱۳۹۷ ۱۱:۰۵ ق.ظ
آخرین ارسال: abolfazlda
  درخواست دانلود چند مقاله از www.civilica.com H.Mohammadi ۱ ۳,۴۳۳ ۱۴ دى ۱۳۹۷ ۰۱:۲۳ ق.ظ
آخرین ارسال: Behnam‌
  بهینه سازی چند هدفه فازی استوارژنتیک alighasemi ۰ ۱,۹۱۳ ۲۴ آبان ۱۳۹۷ ۰۴:۵۵ ب.ظ
آخرین ارسال: alighasemi
  چند سوال مبهم Mr.R3ZA ۰ ۱,۴۱۵ ۰۵ تیر ۱۳۹۷ ۱۱:۰۷ ب.ظ
آخرین ارسال: Mr.R3ZA
  پاسخ به چند سوال مبهم Mr.R3ZA ۲ ۲,۸۹۴ ۰۲ تیر ۱۳۹۷ ۰۱:۲۲ ق.ظ
آخرین ارسال: Mr.R3ZA
  چند درصد ظرفیت های نوشته شده در دفترچه برای سهمیه ای ها و اینا در نظر گرفته میشه؟ ynsdamob ۷ ۵,۹۰۸ ۱۹ خرداد ۱۳۹۷ ۰۴:۲۱ ب.ظ
آخرین ارسال: anyone

پرش به انجمن:

Can I see some ID?

به خاطر سپاری رمز Cancel

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close

رمزت رو فراموش کردی؟

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. close