تالار گفتمان مانشت
نگاشت مستقیم در cache - نسخه‌ی قابل چاپ

نگاشت مستقیم در cache - grayman - 21 آبان ۱۳۸۹ ۰۱:۵۵ ب.ظ

سوال‌: یک کش مستقیم شامل ۸ بلاک ۴ کلمه ای است و پردازنده از آدرس ۰ تا ۶۳ را تولید می کند. کش در ابتدا خالی است.
الف- نرخ برخورد را محاسبه کنید.
ب- اگر پردازنده ۱۰ بار آدرس ۰-۶۳ را تولید کند نرخ برخورد را با شرایط زیر محاسبه کنید:
  1. در صورتی که کش شامل ۸ بلاک ۴ کلمه ای باشد.
  2. در صورتی که کش شامل ۴ بلاک ۸ کلمه ای باشد.
  3. اگر ۸ بلاک ۸ کلمه ای باشد.

------------------------------------------------------------------------------
من تازه دارم این مبحث رو می خونم و رشته‌ام ریاضی کاربردی بوده که می خوام علوم کامپیوتر امتحان بدم واسه همین فکر نکنید این چقدر گیج می زنه Wink

البته تو کتاب معماری کامپیوتر پوران صفحه ۱۹۸ قسمت "ب" رو حل کرده. من اگه الف رو که خودم طرح کردم بفهمم‌، به جورایی بقیشو می فهمم. البته دوستان اگه توضیح تکمیلی جهت درک بهتر بدن خوشحال می شم.

الف - به نظر من وقتی کش خالیه و آدرس ۰ تا ۳۱ باید در کش پر بشه این خودش ۸ تا miss داره. دلیلشم اینه که ۰ وقتی تو کش نیست کل بلاکی که صفر در اون هست رو از حافظه اصلی رو کش انتقال میده. به همین ترتیب ۴ - ۸ ... تا ۲۸ که کلا میشه ۸ تا miss واسه ۳۲ تا ۶۳ هم همین اتفاق می افته و اونم ۸ تا miss داره .پس جمعا ۱۶ تا miss داره و در کل که ۶۴ تا ارجاع هست پس hit rate اش می شه ۱۶/۶۴ یا ۲۵% . جوابم درسته؟

نگاشت مستقیم در cache - ف.ش - ۲۱ آبان ۱۳۸۹ ۱۱:۴۵ ب.ظ

خوب من دقت نکردم.

نمیدونم چرا ولی طبق جزوه فقط ۳۲ آدرس (۰-۳۱ )بررسی میشه پس میشه ۸ miss که میشه ۲۵% miss و ۷۵% hitrate

نگاشت مستقیم در cache - javadjj - 22 آبان ۱۳۸۹ ۰۸:۰۲ ب.ظ

اده اول وارد کش بشه تا انتهای بلوک هم وارد میشه پس مراجعات بعدی miss نداره

RE: نگاشت مستقیم در cache - grayman - 23 آبان ۱۳۸۹ ۰۱:۴۷ ب.ظ

(۲۲ آبان ۱۳۸۹ ۰۸:۰۲ ب.ظ)javadjj نوشته شده توسط:  اده اول وارد کش بشه تا انتهای بلوک هم وارد میشه پس مراجعات بعدی miss نداره

واسه بار اول آدرس های مضرب ۴ حتما miss داره. چون CPU درخواست آدرس میده و می بینه تو کش نیست(کش خالیه) پس واسه بار اول Miss داریم.

نگاشت مستقیم در cache - sepid - 28 آذر ۱۳۸۹ ۱۲:۱۲ ق.ظ

سلام
اگر تا الان جوابش رو نگرفتین من اینجوری حلش کردم:
قسمت الف:
در اینجا چون اندازه بلاک ۴ کلمه است و در هر میس یک بلاک وارد کش میشه پس برای هر ۴ کلمه ۱ میس داریم تا بلاک شامل اون کلمه وارد حافظه بشه.
در نتیجه برای هر ۴ تا کلمه ۳تاش hit میشه.
پس نرخ اصابت میشه ۴/۳که همون ۷۵%هست.
****************************
قسمت ب:
۱: این قسمت مورد بالایی هست که ۱۰ بار تکرار میش پس نرخ hit همون ۷۵%هست.
آدرس ۶ بیتی تولید شده توسط cpu بیت اول رو تگ میگیریم ۳بیت بعدی شماره بلوک ۲بیت آخر برای مشخص کردن کردن کلمه.
******************************
۲: برای ۴بلاک ۸ کلمه ای به ازای هر ۸ کلمه یک میس داریم یعنی نرخ اصابت میش ۸/۷/
بیت اول تگ ۲بیت بعدی شماره بلوک و ۳بیت آخر شماره کلمه.
*****************************
۳:این قسمت هم مثل دومی میشه یعنی به ازای هر ۸ کلمه ۷ تا hit داریم پس نرخ اصابت ۸/۷میش برای یک بار.
۳بیت اول شماره بلاک ۳بیت بعدی شماره کلمه و تگ نداریم.
اما با تکرار ۱۰ بار ادرسهای ۰تا ۶۳ چون کلا ۸تا میس داریم نرخ میس:۶۴*۱۰/۸پس نرخ اصابت میشه نرخ میس-۱ که میشه تقریبا ۹۸%.