تالار گفتمان مانشت

نسخه‌ی کامل: دو سوال مهم معماری
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام دوستان.
میگم اگه کتاب پوران پژوهش رو دارید لطفا یه نگاهی به سوال های 17و24 فصل پایپبلاین بندازید.
مشکل من اینه که در حل سوال 17 تو کلاس دستورات A,B (اونایی که به حافظه دسترسی ندارن رو جز کلاک سایکل هایی که به حافظه دسترسی نداریم در نظر نگرفته است در صورتی که باید در نظر بگیره چون که اینجا پایپلاین داریم و نمی تونیم تو پایپلاین بگیم از 5 مرحله 1 مرحلشو (دسترسی به حافظه)انجام نده!می تونه تو اون سایکل کاری نکنه.
تو سوال 24 هم همین جوری کرده.البته تو سوال 24 چون N به سمت بی نهایت میره تو جواب نهایی تاثیر نداره.
نظر شما چیه؟
دیدم کسی جواب نداد.گفتم شکل بذارم شاید جواب بدید!![attachment=371]
(13 بهمن 1389 10:37 ق.ظ)afagh1389 نوشته شده توسط: [ -> ]منم این سوال اولی رو درست نفهمیدم فقط همونطور که توی پاسخ گفته حفظ کردم!!
توی سوال 2 اومده هر نوع دستور(کلاس دستورات )رو جداگانه پایپلاین کرده یعنی اومده دسته بندی کرده به خاطر همین واسه دسته الف k=5 شده و مثلا واسه دسته ب k=4 .
دقیقا مشکل منم همینه!نباید این کارو بکنه.
فرض1:
حافظه دستور و داده جدا است (بندIF به حافظه داده دسترسی ندارد) (/48*4)+(/22*4)+(/18*3)+(/13*3)=3.7 متوسط کلاک که حافظه آزاد است
در این3.7 کلاک DMA میتواند به حافظه منتقل کند در هر ثانیه 10 میلیون دستور اجرا میشود پس در هر ثانیه 37 میلیون کلاک حافظه آزاد است پس در هر ثانیه 37 میلیون کلمه میشود منتقل کرد

فرض 2:
IF نیز به حافظه دیتا دسترسی دارد یعنی یک حافظه مشترک برای دیتا و دستور در نظر گرفته شده است
(/48*3)+(/22*3)+(/18*2)+(/12*2)=2.7: متوسط کلاک که حافظه آزاد است
در این2.7 کلاک DMA میتواند به حافظه منتقل کند در هر ثانیه 10 میلیون دستور اجرا میشود پس در هر ثانیه 27 میلیون کلاک حافظه آزاد است پس در هر ثانیه 27 میلیون کلمه میشود منتقل کرد
دقت کنید که پیش فرض ما اینست که حافظه دیتا و دستور جدا است مگر آنکه در صورت سوال گفته باشه که یک حافظه مشترک در اختیار داشته باشیم
ما همیشه توی پایپ لاین مقدار کلاک درگیر را درنظر میگرفتیم اما چون اینجا DMaداریم کلاک آزاد را مجبوریم به دست بیاریم
چون DMA زمانی که حافظه آزاد است میتونه کار کنه

ببخشد که دیر شد.
ببخشید من یه ابهام برام پیش اومده اول اینکه دو فاز Mem و فاز WB چه فرقی با هم دارند؟ و بعدشم مگه در فاز ID یا همون دیکد دستور عمل واکشی عملوند انجام نمیشه که قاعدتا عملوندها در حافظه یا شاید هم در رجیسترفایل باشند که اگه در حافظه باشند که همون حافظه‌ی دیتا خواهد بود پس در فاز دیکد هم حافظه آزاد نیست؟
dma و قتی که fetch , mem در کلاس باشن نمیتونه دسترسی مسقیم به حافظه داشته باشه پس در 48 دصد اول با dma فقط id ,exe,wr انجام میشه یعنی 3 سیکل از کلاس در کلاس دوم یعنی 22 درصد هم 3 تا ازون مراحل مثل مراحله قبل در 18 درصد کلاس بعدی 2 تا ازون مراحل بعد در 12 درصد هم 2 تا پس با ضرب اینها عدد 2.7 در میآید که با 10 میلیون میشه 27 ....امیدوارم مفید بوده باشه البته یه راه حله pipe line هم داره که من شاید خوب نتونم توضیح بدم
من اصلا صفحه دوم رو ندیدم دوستمون توضیحاتشون ازمن کاملتر ببخشید کاربر hsh88
لینک مرجع