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

خط لوله - IT 83

ارسال:
  

ldns0098 پرسیده:

خط لوله - IT 83

برای حل مشکل برانچ در کامپیوترهایی که از روش خط لوله ای با چهار قطعه استفاده میکنند، روش جا به جا نمودن دستورالعملها توسط کامپایلر یکی از روشهاست. اگر کد زیر مفروض باشد کدام یک از دنباله دستورات زیر توسط چنین کامپایلری تولید میشود؟
کد:
add r1,r2
sub r3,r4
branch to p1
P3: mul r5, r6
branch to P2
P1: add r3, r2
branch to P3
P2: dec r6
در بین چهار گزینه داده شده گزینه مد نظر شامل کد زیر است و توضیح انتخاب این گزینه این است که باید بعد از دستور branch یک یا چند دستور وارد پایپ لاین شوند. و این گزینه ای است که بعد از branch دستور دیگری وارد پایپ کرده.
کد:
branch to P1
Nop
branch to P3
...
اشکال من اینجاست که اصلا اینکه بعد از برنچ دستور دیگه ای باید وارد پایپ شه چه توجیهی داره؟ در صورتی هم که برنچ دیگه ای بعد از برنچ بیاد باز هم دستورات مشخصی واکشی میشن و ...
دوستان ممنون میشم راهنمایی کنید.

پ.ن: سوال ۲۷- فصل ششم پوران
نقل قول این ارسال در یک پاسخ

۱
ارسال:
  

salam5 پاسخ داده:

RE: خط لوله - IT 83

به نظرم منظورش اینه که باید بعد از برنچ یه دستور دیگه به جز برنچ(یعنی یه دستور ساده)وارد کنیم تا فرصت بدیم دستور انشعاب اجرا بشه و آدرس مقصدش تعیین بشه، بهترین حالت اینه که از دستورات خودش استفاده کنیم اگه نبود nop میذاریم
توی گزینه های دیگه برنچ ا پشت سر هم ند و فرصتی که گفتم بهشون داده نمیشه فقط این گزینه س که بعد از هر برنچ یه دستور دیگه آورده تا در فاصله ی اجرای آن دستور، تکلیف اون برنچ مشخص بشه
توی ص ۱۷۴ مثال آخرم به این قضیه اشاره شده
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

sana70 پاسخ داده:

RE: خط لوله - IT 83

دوست عزیز من یه توضیح کوتاهی میدم امیدوارم مفید باشه
اینجا ما مخاطره کنترلی داریم,مخاطره کنترلی چه موقعی پیش میاد؟موقعی که دستورات انشعاب داشته باشیم ,خوب حالا باید راه حلی رو برای رفع این مخاطره پیدا کنیم
یکی از راه حل های رفع مخاطره کنترلی delayed branchهست,خوب delayed branch چی هست؟یعنی دستورات رو طوری به جابه جا کنیم که منطق برنامه به هم نریزه و در واقع دستورا مفیدی که حتما اجرا میشوند و ربطی به انشعاب ندارند(یعنی توی این مثال ما باید بعد branchدستوری رو بیاریم که حتما اجرا میشه,خوب دقت کن که فقط گزینه یک اینطور هست)
نکته:اگه دستوری دیگه نداشتیم no-opمیگذاریم بعد branch
امیدورام خوب توضیح داده باشمSmile
نقل قول این ارسال در یک پاسخ



موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
  چندین سوال از خط لوله Sanazzz ۳ ۲,۴۵۹ ۱۲ دى ۱۳۹۷ ۰۲:۳۹ ق.ظ
آخرین ارسال: Sanazzz
  ۸۳۸ نرم افزار- محل قبولی؟ عشقم هوش مصنوعی ۰ ۱,۶۷۶ ۱۰ خرداد ۱۳۹۷ ۱۱:۱۵ ق.ظ
آخرین ارسال: عشقم هوش مصنوعی
  دانشگه های مجاز با رتبه ۸۳۸۴ هوش و رتبه ۸۷۳۲ ای تی(شبکه) roshi65 ۲ ۲,۷۱۷ ۱۶ خرداد ۱۳۹۶ ۰۱:۵۸ ب.ظ
آخرین ارسال: roshi65
  جواب سوال ۵ درباره خط لوله؟؟؟؟؟؟ zizi1362 ۲ ۱,۶۶۰ ۱۸ دى ۱۳۹۴ ۰۸:۵۱ ق.ظ
آخرین ارسال: zizi1362
  ۸۳۶ شبکه ۹۸۰ تجارت betty_m ۰ ۱,۰۴۰ ۲۳ اردیبهشت ۱۳۹۴ ۱۱:۴۲ ق.ظ
آخرین ارسال: betty_m
  سوالی سخت از خط لوله! mostafa2012 ۱۰ ۴,۴۶۱ ۲۹ دى ۱۳۹۳ ۱۲:۱۴ ق.ظ
آخرین ارسال: mostafa2012
  اجرای قطعه کد در یک خط لوله alifarokhi ۶ ۲,۱۷۱ ۰۲ آذر ۱۳۹۳ ۱۲:۵۷ ب.ظ
آخرین ارسال: alifarokhi
  خط لوله همزمان و غیر همزمان mobin89 ۲ ۱,۷۲۸ ۰۷ آبان ۱۳۹۳ ۰۸:۱۲ ب.ظ
آخرین ارسال: mobin89
  ۸۳۰ معماری majid11877 ۰ ۱,۰۹۲ ۲۹ اردیبهشت ۱۳۹۳ ۰۶:۲۰ ب.ظ
آخرین ارسال: majid11877
  ۸۳۳ گرایش ۱و۴- ۸۶۴ گرایش ۲و۳ Good! ۹ ۵,۵۹۳ ۲۷ اردیبهشت ۱۳۹۳ ۰۲:۱۲ ب.ظ
آخرین ارسال: maryam368

پرش به انجمن:

Can I see some ID?

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

Feeling left out?


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

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

Feeling left out?


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