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

نسخه‌ی کامل: سازمان حافظه 2
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
باسلام
کسی میتونه توحل این مساله بم کمک کنهBlush
حافظه نهان ازنوع 2way set associtiveبه بزرگی 256 بایت داریم که هربلوک آن 16بایت است .پردازنده آدرس های 26بیتی تولیدمیکند و رجوعات زیرراازابتدا تا انتهای لیست اجرامیکندودوباره به اول لیست برمیگردد وکلا لیست رااین لیست را10بار اجرا میکند .بافرض اینکه کش خا لی است miss rate بعدازاتمام کار پردازنده چقدر است؟
FF00
FF01
FF02
FF03
FF04
5F00
5F01
5F02
5F03
5F04
به به عجب سوالی
فک کنم اینجوری باشه مطمئن نیستم
تعداد بلاک ها برابر 256/16=16 تا پس تعداد ست ها برابر 16/2 = 8 می باشد. و با توجه به اینکه کلمه ها 16 بایتی است.برای مشخص کردن بایت در کلمه به 4 بیت نیاز داریم.و برای مشخص کردن ست به 3 بیت نیاز داریم پس از 26 بیت آدرس 3بیت برا ست و 4 بیت برا کلمه میره می مونه 19 بیت تگ.
حالا ظرفیت بلوک به بیت برابر 128 می باشد تقسیم به آدرس یعنی 26 می شود 4.93 .پس در هر بار میس 5 تا آدرس به کش آورده می شود.حالا با توجه به آدرس های بالا 5 تای اول (تگ هاشون یکیه 19 بیت آخر)و 5 تای دوم هم همین طور.
ff00 میس رخ میده چون بلاک خالیه چهارتای بعدیش هم همراه اون آورده میشه در یک ست ذخیره میشه.و 5f00 نیز چون تگش فرق می کنه دوباره میس اتفاق میافته و 4 آدرس بعدیش همراه آن به کش آورده می شه در یک ست دیگر ذخیره میشه.
( توجه شود که هر بلوک گنجایش 5 آدرس و هر ست دو بلوک می باشد)
پس این 10 تا آدرس در دو ست جداگانه در دو بلوک ذخیره می شوند و با یکدیگر تداخلی ندارند پس 2 بار میس و 8 بار هیت برای بار اول مراجعه و برای 9 بار بعدی چون در کش وجود دارند همش هیت رخ میده به عبارتی 2 درصد میس و 98 درصد هیت.
دیگه از این تشریحی تر بلد نبودم
Big Grin
(09 آبان 1391 03:04 ق.ظ)mohsen990 نوشته شده توسط: [ -> ]به به عجب سوالی
فک کنم اینجوری باشه مطمئن نیستم
تعداد بلاک ها برابر ۲۵۶/۱۶=۱۶ تا پس تعداد ست ها برابر ۱۶/۲ = ۸ می باشد. و با توجه به اینکه کلمه ها ۱۶ بایتی است.برای مشخص کردن بایت در کلمه به ۴ بیت نیاز داریم.و برای مشخص کردن ست به ۳ بیت نیاز داریم پس از ۲۶ بیت آدرس ۳بیت برا ست و ۴ بیت برا کلمه میره می مونه ۱۹ بیت تگ.
حالا ظرفیت بلوک به بیت برابر ۱۲۸ می باشد تقسیم به آدرس یعنی ۲۶ می شود ۴/۹۳ .پس در هر بار میس ۵ تا آدرس به کش آورده می شود.حالا با توجه به آدرس های بالا ۵ تای اول (تگ هاشون یکیه ۱۹ بیت آخر)و ۵ تای دوم هم همین طور.
ff00 میس رخ میده چون بلاک خالیه چهارتای بعدیش هم همراه اون آورده میشه در یک ست ذخیره میشه.و ۵f00 نیز چون تگش فرق می کنه دوباره میس اتفاق میافته و ۴ آدرس بعدیش همراه آن به کش آورده می شه در یک ست دیگر ذخیره میشه.
( توجه شود که هر بلوک گنجایش ۵ آدرس و هر ست دو بلوک می باشد)
پس این ۱۰ تا آدرس در دو ست جداگانه در دو بلوک ذخیره می شوند و با یکدیگر تداخلی ندارند پس ۲ بار میس و ۸ بار هیت برای بار اول مراجعه و برای ۹ بار بعدی چون در کش وجود دارند همش هیت رخ میده به عبارتی ۲ درصد میس و ۹۸ درصد هیت.
دیگه از این تشریحی تر بلد نبودم
Big Grin




سلام عرض می کنم خدمت دوست خوبم اولا این سوال مورد داره مورد هم اینه که اصلا پردازنده آدرس 26 بیتی تولید نمکنه و 16 بیت هستش و شما به اشتباه سوال را حل کردید اگه امکان داره با آدرس 16 بیتی سوال را حل کنید که دوستان خوبم به مشکل بر نخورند . ممنونم این سوال در صفحه 215 کتاب معماری یوسفی هستش !
لینک مرجع