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

نسخه‌ی کامل: سوال 90 كنكور مهندسي فناوري اطلاعات سال ۹۰
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سوال ۹۰ آیتی ۹۰
کسی نمی توونه منو تو حل این سوال راهنمایی کنه؟
سلام
جواب میشه گزینه ۳ (البته با کلید مقایسه کن ببین درسته یا نه )
کش ۸ تا بلوک جا داره( ۱۰۲۴/۱۲۸=۸)
برنامه حداقل از بلوک ۰ حافظه شروع شده تا بلوک ۱۲( ۱۷/۱۲۸=۰ و ۱۵۰۰/۱۲۸=۱۲) پس می فهمیم که با اجرای برنامه هرکدوم از ۸ تا بلوک کش یک بار پر شدن پس گزینه ۲ یا ۳ درسته .
بلوک اول کش می تونه بلوک ۰ یا ۸ یا ۱۶ یا ... از حافظه اصلی رو جای بده . پس بازم هنوز این ۲ تا درستن فقط باید بفهمیم آخر از همه به کدوم یک از ۲بلوک ۰ و ۸ مراجعه شده (منظور آخرین بلوکی که برنامه اجرا می کنه نیست(اون می شه ۱۲) منظور بین این دو تا کدوم دیرتر اجرا میشه)(تا بفهمیم ۲ درسته یا ۳ )که ترتیب برنامه مشخصه که بلوک ۸( حلقه‌ها تاثیری تو این نتیجه ندارند و فقط نقش گیج کردن داوطلب رو بر عهده دارند .) پس گزینه ۳ درسته
من متوجا نشدم.Sadورودبه حلقه‌ها هستن که بلوکهاروازحافظه به کش بارمیکنن.باحلقه داخلی 165تا239 در b1حافظه کش بارمیشه.در ادامه که حلقه بیرونی اجرا میشه و نمیدونم چجوری گزینه 3 میشه؟؟؟؟؟
(08 آبان 1390 09:30 ب.ظ)ipoorya نوشته شده توسط: [ -> ]سلام
جواب میشه گزینه ۳ (البته با کلید مقایسه کن ببین درسته یا نه )
کش ۸ تا بلوک جا داره( ۱۰۲۴/۱۲۸=۸)
برنامه حداقل از بلوک ۰ حافظه شروع شده تا بلوک ۱۲( ۱۷/۱۲۸=۰ و ۱۵۰۰/۱۲۸=۱۲) پس می فهمیم که با اجرای برنامه هرکدوم از ۸ تا بلوک کش یک بار پر شدن پس گزینه ۲ یا ۳ درسته .
بلوک اول کش می تونه بلوک ۰ یا ۸ یا ۱۶ یا ... از حافظه اصلی رو جای بده . پس بازم هنوز این ۲ تا درستن فقط باید بفهمیم آخر از همه به کدوم یک از ۲بلوک ۰ و ۸ مراجعه شده (منظور آخرین بلوکی که برنامه اجرا می کنه نیست(اون می شه ۱۲) منظور بین این دو تا کدوم دیرتر اجرا میشه)(تا بفهمیم ۲ درسته یا ۳ )که ترتیب برنامه مشخصه که بلوک ۸( حلقه‌ها تاثیری تو این نتیجه ندارند و فقط نقش گیج کردن داوطلب رو بر عهده دارند .) پس گزینه ۳ درسته
من حل شما رو متوجه شدم به غیر از یک قسمتش
ما میایم 0تا 127 رو در بلوک صفر در نظر میگیریم
بنابرین باید 1408 تا 1535 رو هم در بلوک 11 در نظر بگیریم
میشه ترتیب زیر که در گزینه‌ها نیست
b8 - b9 -b10 - b11 -b4 - b5 -b6 - b7
منم با موج موافقم
به نظر میاد این ترتیب درست باشه
b8 - b9 -b10 - b11 -b4 - b5 -b6 - b7
فرقش با گزینه سه توی بلاک B12 هست که ما اصلا باهاش کاری نداشتیم!!؟ چون آخرین آدرسی که فرا خوانی می شه ۱۵۰۰ هست که بلاک ۱۱ حافظه اصلی میشه پس تو بلاک ۳ کش میشینه .
b4 رو چرادخیل کردید؟؟؟؟میشه توضیح بدید؟؟؟ممنونم میشم
این سوال نسبتا ساده هستش.
اندازه حافظه M = 16 بیت
اندازه کش C=10 بیت
اندازه هر بلاک = ۱۲۸ W=7bit
تعداد بلاک های حافظه= ۲^(M-W)=2^9=512
پس حافظه دارای ۵۱۲ بلاک یعنی از B0 تا B511 هست
تعداد بلاک کش= ۲^(C-W)=2^3=8
یعنی کش ۸ تا بلاک از B0 تا B7 داره.
همونطور که میدونید کش ۸ بلاک داره و ۱۲۸ کلمه و نگاشت ما مستقیم هست پس فرمول محاسبه مکان آدرس بلوک های حافظه توی کش میشه:
i mod 1024
(۸*۱۲۸=۱۰۲۴)
البته اینجا چون دستورات به صورت ترتیبی دارن میان و ما میدونیم انتقال اطلاعات به حافظه طبق صورت سوال بلوکی هست و با بلوک های ۱۲۸ کلمه ای پس کافیه هر ۱۲۸ تا توی یک بلاک حافظه قرار بدیم. پس طبق جدول زیر وارد میشن.
میتونید با فرمول درستیشو تست کنید.
خوب تا بلوک B7 حافظه وارد به ترتیب وارد کش میشه.حالا میرسیم به بلوک B8 حافظه، چون کش پر هست و باید جایگزین بشه بر اساس اون فرمول میفهمیم از شماره ۱۰۲۴ تا ۱۱۵۱ وارد B0 از کش میشه.
کافیه ۱۰۲۴ mod 1024 رو حساب کنید، که میشه ۰
۱۱۵۲ mod 1024= 128 و چون بلاک‌ها ۱۲۸ تایی هست پس ۱۲۸/۱۲۷=۱ یعنی B1 از کش.پس از ۱۱۵۲ تا ۱۲۸ تا میره تو این بوک کش
۱۲۸۰ mod 1024= 256 و چون بلاک‌ها ۱۲۸ تایی هست پس ۱۲۸/۲۵۶=۲ یعنی B2 از کش.
و الی آخر.که آبی‌ها جایگزین قرمزا میشن.
پس جواب میشه:
بلوک B0 کش آدرس B8 حافظه رو داره B1 آدرس B9 حافظه و الی آخر)
B8,B9,B10,B11,B4,B5,B6,B7
من یه چیزی و متوجه نمی شم!مگه نگفته سه بلوک یه بلوک می بریم تو کش؟پس چه لزومی داره که b8 و هم ببریم؟
لینک مرجع