(۰۴ دى ۱۳۹۰ ۰۷:۴۲ ب.ظ)miladdn13 نوشته شده توسط: ۲way set
۸block 4wordi
adress:12f,23f,12b,23b,12c,23c,67d,69d,69f,69c
mis rate?
اول خصوصیات کش که داریم رو مشخص میکنیم:
۱/کش از نوع انجمنی -مجموعه ایی است
۲/در هر مجموعه ۲ بلاک داریم با توجه به----->2way set
۳/هر بلاک دارای ۴ کلمه است
۴/کلا ۸ بلاک داریم پس تعداد مجموعه های ۲بلاکی تو حافظه برابر ۴ تا میشه
خصوصیت مهم حافظه های انجمنی-مجموعه ایی اینه که هر آدرس تنها میتونه در یک مجموعه قرار بگیره اما وقتی وارد مجموعه شد میتونه در هر یک از بلاک های داخل مجموعه قرار بگیره.
ما ۴ مجموعه داریم پس به ۲ بیت برای مشخص کردن مجموعه در هر آدرس نیاز داریم و چون هر بلاک دارای ۴ کلمه هست ۲ بیت هم برای مشخص کردن کلمهی بلاک در واقع منظور افست هست
۲ بیت کم ارزش مربوط به کلمه میشه و ۲ بیت بالاتر مربوط به مجموعه.
این رو هم باید توجه کرد که همیشه اطلا عات از /به کش به صورت بلاک میباشد یعنی اگه درخواست برای یک کلمه باشد تمام کلمات مربوط به بلاکی که کلمهی درخواستی در آن قرار دارد به کش آورده میشود
حالا با توجه به توضیحات بالا اگر آدرسها رو به صورت دودویی بنویسیم داریم:
۱۲f--->0001,0010,1111
آدرس بالا کلمه ۱۱ (چهارم)و مجموعهی ۱۱ را نشان میدهد.مجموعهی ۱۱ (مجموعه شماره ۴)شامل ۲ بلاک هست چون کش همیشه از ابتدا خالی فرض میشود پس ما miss خواهیم داشت و بعد از آن بلاک شامل آن آدرس را به داخل کش منتقل میکنیم.۴ کلمه که شروع آدرس از ۰۰ است:
۰۰۰۱,۰۰۱۰,۱۱۰۰--->12c
۱۲d<----0001,0010,1101
۱۲e<----0001,0010,1110
۱۲f<--- 0001,0010,1100
اگر فرض کنیم آدرس بعدی ۱۲e بود ما دیگر miss نداشتیم.
آدرس بعدی که ۲۳f هست هم به مجموعهی ۱۱ (چهارم) اشاره دارد اما ما ۲ بلاک در مجموعه داریم که یکی پر است و دیگری خالی و بلاک مربوط به آن را در بلاک خالی قرار میدهیم
به همین ترتیب برای آدرس های بعدی
که ۶ تا miss در ۱۰ مراجعه اتفاق میافتد
(۰۴ دى ۱۳۹۰ ۱۱:۲۹ ب.ظ)mjjoon نوشته شده توسط: من هم درآوردم ۰/۶ . خانم هما شما اگه راه حلتون کوتاه یا راه حل تستی واسه این دارید بگید . ممنون.
ما فقط با ۴ بیت آخر کار داریم واین به نظرم سریعترین باشه
ولی راه حل تستی به اون صورت رو نمیدونم