۱
subtitle
ارسال: #۱
  
نحوه تشخیص miss , hit (سازمان حافظه)
سلاااااااام دوستان عزیز
میشه یکی برام توضیح بده در تست پایین چجوری باید بفهمم کدوم آدرس miss و کدوم hit ؟؟؟؟
یک حافظه اصلی به بزرگی ۲۵۶K کلمه و یک حافظه نهان به بزرگی ۴ بلوک ۴ کلمه ای موجود است.روش نگاشت مستقیم استفاده می شود.با فرض خالی بودن cache ,نرخ برخورد در انتهای صدور آدرس های ذیل ( از چپ به راست ) از طرف پردازنده کدام است؟
۱۷۰,۲۵۷,۱۶۸,۲۴۶,۱۷۶,۱۷۵,۱۷۶,۱۷۷,۱۷۵,۱۷۶,۱۷۷,۱۷۵,۱۷۶,۱۷۷,۱۷۶,۱۷۵,۱۷۴,۱۷۳,۱۷۲,۱۷۱,۱۷۰,۱۶۹,۱۶۸,۱۶۷,۱۶۸,۱۶۵,۱۶۴
میشه یکی برام توضیح بده در تست پایین چجوری باید بفهمم کدوم آدرس miss و کدوم hit ؟؟؟؟
یک حافظه اصلی به بزرگی ۲۵۶K کلمه و یک حافظه نهان به بزرگی ۴ بلوک ۴ کلمه ای موجود است.روش نگاشت مستقیم استفاده می شود.با فرض خالی بودن cache ,نرخ برخورد در انتهای صدور آدرس های ذیل ( از چپ به راست ) از طرف پردازنده کدام است؟
۱۷۰,۲۵۷,۱۶۸,۲۴۶,۱۷۶,۱۷۵,۱۷۶,۱۷۷,۱۷۵,۱۷۶,۱۷۷,۱۷۵,۱۷۶,۱۷۷,۱۷۶,۱۷۵,۱۷۴,۱۷۳,۱۷۲,۱۷۱,۱۷۰,۱۶۹,۱۶۸,۱۶۷,۱۶۸,۱۶۵,۱۶۴
۵
ارسال: #۲
  
RE: نحوه تشخیص miss , hit (سازمان حافظه)
(۰۳ دى ۱۳۹۲ ۰۷:۳۵ ب.ظ)alice نوشته شده توسط: سلاااااااام دوستان عزیز
میشه یکی برام توضیح بده در تست پایین چجوری باید بفهمم کدوم آدرس miss و کدوم hit ؟؟؟؟
یک حافظه اصلی به بزرگی ۲۵۶K کلمه و یک حافظه نهان به بزرگی ۴ بلوک ۴ کلمه ای موجود است.روش نگاشت مستقیم استفاده می شود.با فرض خالی بودن cache ,نرخ برخورد در انتهای صدور آدرس های ذیل ( از چپ به راست ) از طرف پردازنده کدام است؟
۱۷۰,۲۵۷,۱۶۸,۲۴۶,۱۷۶,۱۷۵,۱۷۶,۱۷۷,۱۷۵,۱۷۶,۱۷۷,۱۷۵,۱۷۶,۱۷۷,۱۷۶,۱۷۵,۱۷۴,۱۷۳,۱۷۲,۱۷۱,۱۷۰,۱۶۹,۱۶۸,۱۶۷,۱۶۸,۱۶۵,۱۶۴
کل حافظه اصلی قراره تو این ۴ تا بلاک قرار بگیره. هر بلاک هم که ۴ تا کلمه است.
بنابراین داریم :
بلاک ۰ : (کلمه ۰ تا ۳) (کلمه ۱۶ تا ۱۹)
بلاک ۱ : (کلمه ۴ تا ۷) ......................
بلاک ۲ : (کلمه ۸ تا ۱۱) ........................
بلاک ۳ : (کلمه ۱۲ تا ۱۵) ......................
بنابراین برای هر آدرسی که بهت میدن باید پیدا کنی توی کدوم بلاک قرار میگره و چندمین کلمه هست.
اگه آدرسی که بهت دادن تقسیم بر اندازه بلاک کنی (اینجا گفته ۴ کلمه) باقیمانده میشه اینکه چندمین کلمه تو بلاکه.
مثلا برای ۳ ، تقسیم بر ۴ ، باقیمانده میشه ۳ که یعنی شماره کلمه ۳ هست. (آخرین کلمه بلوک)
جالا باید ببینم تو کدوم بلوک قرار میگیره ، اون خارج قسمتی که بدست اومده را نقسیم بر تعداد بلوک کش میکنیم (اینجا ۴ تا بلوک). باقیمانده میشه اینکه تو کدوم بلوک هست.
مثلا برای آدرس ۱۹ ، اول تقسیم بر ۴ میکنیم باقیمانده میشه ۳ ، و خارج قسمت میشه ۴ .
این ۴ رو نقسیم بر ۴ میکنیم ، باقیمانده میشه ۰ .
پس این آدرس آخرین کلمه از بلاک شماره ۰ هست.
حالا در مورد سوال :
مثلا آدرس ۱۷۰ :
اون تقسیم بر ۴ میکنیم : باقیمانده = ۲ خارج قسمت میشه ۴۲ ، ۴۲ رو تقسیم ۴ میکنی باقیمانده میشه ۲/
یعنی کلمه شماره ۲ از بلوک شماره ۲ هست. بنابراین با درخواست ای آدرس بلوک شماره دو هر چی که قبلا داشت پاک میشه این مقادیر جدید از حافظه خونده میشه و جاش قرار میگیره.
این یعنی آدرس هایی که باهاش لود میشه (۱۶۸ تا ۱۷۱ هست ) بنابراین به ازای ۱۷۰ ما miss داریم ولی اگر بعد از اون ۱۶۸ رو بخوان دیگه ما اونو تو حافظه داریم پس hit میشه.
در مورد ۲۵۷ :
تقسیم بر ۴ میشه باقیمانده میشه ۱ ، و ۶۴ تقسیم بر ۴ باقیمانده میشه ۰ . یعنی آدرس (۲۵۶ تا ۲۵۹ ) تو بلوک ۰ لود میشن. پس به ازای این miss داریم.
به این نکته توجه کن که اگه مثلا آدرس یعد از این یه چیزی بود که دوباره تو بلوک ۰ لود میشد ، دیگه آدرس های قبلی که داشتیم تو این بلوک همه از بین میرن و به ازای اونا miss خواهیم داشت.
حواست به این هم باشه که شماره ها از ۰ شروع میشه. یعنی اگه شماره کلمه ات در اومد ۳ این یعنی چهارمین کلمه و آخرین کلمه از بلوک.
یه کم توضیحش سخت بود با نوشتن. سعی کردم واضح توضیح بدم.
ارسال: #۳
  
RE: نحوه تشخیص miss , hit (سازمان حافظه)
(۰۳ دى ۱۳۹۲ ۰۸:۳۳ ب.ظ)e.sharmi نوشته شده توسط: کل حافظه اصلی قراره تو این ۴ تا بلاک قرار بگیره. هر بلاک هم که ۴ تا کلمه است.
بنابراین داریم :
بلاک ۰ : (کلمه ۰ تا ۳) (کلمه ۱۶ تا ۱۹)
بلاک ۱ : (کلمه ۴ تا ۷) ......................
بلاک ۲ : (کلمه ۸ تا ۱۱) ........................
بلاک ۳ : (کلمه ۱۲ تا ۱۵) ......................
بنابراین برای هر آدرسی که بهت میدن باید پیدا کنی توی کدوم بلاک قرار میگره و چندمین کلمه هست.
اگه آدرسی که بهت دادن تقسیم بر اندازه بلاک کنی (اینجا گفته ۴ کلمه) باقیمانده میشه اینکه چندمین کلمه تو بلاکه.
مثلا برای ۳ ، تقسیم بر ۴ ، باقیمانده میشه ۳ که یعنی شماره کلمه ۳ هست. (آخرین کلمه بلوک)
جالا باید ببینم تو کدوم بلوک قرار میگیره ، اون خارج قسمتی که بدست اومده را نقسیم بر تعداد بلوک کش میکنیم (اینجا ۴ تا بلوک). باقیمانده میشه اینکه تو کدوم بلوک هست.
مثلا برای آدرس ۱۹ ، اول تقسیم بر ۴ میکنیم باقیمانده میشه ۳ ، و خارج قسمت میشه ۴ .
این ۴ رو نقسیم بر ۴ میکنیم ، باقیمانده میشه ۰ .
پس این آدرس آخرین کلمه از بلاک شماره ۰ هست.
حالا در مورد سوال :
مثلا آدرس ۱۷۰ :
اون تقسیم بر ۴ میکنیم : باقیمانده = ۲ خارج قسمت میشه ۴۲ ، ۴۲ رو تقسیم ۴ میکنی باقیمانده میشه ۲/
یعنی کلمه شماره ۲ از بلوک شماره ۲ هست. بنابراین با درخواست ای آدرس بلوک شماره دو هر چی که قبلا داشت پاک میشه این مقادیر جدید از حافظه خونده میشه و جاش قرار میگیره.
این یعنی آدرس هایی که باهاش لود میشه (۱۶۸ تا ۱۷۱ هست ) بنابراین به ازای ۱۷۰ ما miss داریم ولی اگر بعد از اون ۱۶۸ رو بخوان دیگه ما اونو تو حافظه داریم پس hit میشه.
در مورد ۲۵۷ :
تقسیم بر ۴ میشه باقیمانده میشه ۱ ، و ۶۴ تقسیم بر ۴ باقیمانده میشه ۰ . یعنی آدرس (۲۵۶ تا ۲۵۹ ) تو بلوک ۰ لود میشن. پس به ازای این miss داریم.
به این نکته توجه کن که اگه مثلا آدرس یعد از این یه چیزی بود که دوباره تو بلوک ۰ لود میشد ، دیگه آدرس های قبلی که داشتیم تو این بلوک همه از بین میرن و به ازای اونا miss خواهیم داشت.
حواست به این هم باشه که شماره ها از ۰ شروع میشه. یعنی اگه شماره کلمه ات در اومد ۳ این یعنی چهارمین کلمه و آخرین کلمه از بلوک.
یه کم توضیحش سخت بود با نوشتن. سعی کردم واضح توضیح بدم.
دوست عزیز از راهنماییت واقعا متشکرم
ارسال: #۴
  
RE: نحوه تشخیص miss , hit (سازمان حافظه)
ارسال: #۶
  
RE: نحوه تشخیص miss , hit (سازمان حافظه)
(۰۳ دى ۱۳۹۲ ۰۸:۳۳ ب.ظ)e.sharmi نوشته شده توسط:(03 دى ۱۳۹۲ ۰۷:۳۵ ب.ظ)alice نوشته شده توسط: سلاااااااام دوستان عزیز
میشه یکی برام توضیح بده در تست پایین چجوری باید بفهمم کدوم آدرس miss و کدوم hit ؟؟؟؟
یک حافظه اصلی به بزرگی ۲۵۶K کلمه و یک حافظه نهان به بزرگی ۴ بلوک ۴ کلمه ای موجود است.روش نگاشت مستقیم استفاده می شود.با فرض خالی بودن cache ,نرخ برخورد در انتهای صدور آدرس های ذیل ( از چپ به راست ) از طرف پردازنده کدام است؟
۱۷۰,۲۵۷,۱۶۸,۲۴۶,۱۷۶,۱۷۵,۱۷۶,۱۷۷,۱۷۵,۱۷۶,۱۷۷,۱۷۵,۱۷۶,۱۷۷,۱۷۶,۱۷۵,۱۷۴,۱۷۳,۱۷۲,۱۷۱,۱۷۰,۱۶۹,۱۶۸,۱۶۷,۱۶۸,۱۶۵,۱۶۴
کل حافظه اصلی قراره تو این ۴ تا بلاک قرار بگیره. هر بلاک هم که ۴ تا کلمه است.
بنابراین داریم :
بلاک ۰ : (کلمه ۰ تا ۳) (کلمه ۱۶ تا ۱۹)
بلاک ۱ : (کلمه ۴ تا ۷) ......................
بلاک ۲ : (کلمه ۸ تا ۱۱) ........................
بلاک ۳ : (کلمه ۱۲ تا ۱۵) ......................
بنابراین برای هر آدرسی که بهت میدن باید پیدا کنی توی کدوم بلاک قرار میگره و چندمین کلمه هست.
اگه آدرسی که بهت دادن تقسیم بر اندازه بلاک کنی (اینجا گفته ۴ کلمه) باقیمانده میشه اینکه چندمین کلمه تو بلاکه.
مثلا برای ۳ ، تقسیم بر ۴ ، باقیمانده میشه ۳ که یعنی شماره کلمه ۳ هست. (آخرین کلمه بلوک)
جالا باید ببینم تو کدوم بلوک قرار میگیره ، اون خارج قسمتی که بدست اومده را نقسیم بر تعداد بلوک کش میکنیم (اینجا ۴ تا بلوک). باقیمانده میشه اینکه تو کدوم بلوک هست.
مثلا برای آدرس ۱۹ ، اول تقسیم بر ۴ میکنیم باقیمانده میشه ۳ ، و خارج قسمت میشه ۴ .
این ۴ رو نقسیم بر ۴ میکنیم ، باقیمانده میشه ۰ .
پس این آدرس آخرین کلمه از بلاک شماره ۰ هست.
حالا در مورد سوال :
مثلا آدرس ۱۷۰ :
اون تقسیم بر ۴ میکنیم : باقیمانده = ۲ خارج قسمت میشه ۴۲ ، ۴۲ رو تقسیم ۴ میکنی باقیمانده میشه ۲/
یعنی کلمه شماره ۲ از بلوک شماره ۲ هست. بنابراین با درخواست ای آدرس بلوک شماره دو هر چی که قبلا داشت پاک میشه این مقادیر جدید از حافظه خونده میشه و جاش قرار میگیره.
این یعنی آدرس هایی که باهاش لود میشه (۱۶۸ تا ۱۷۱ هست ) بنابراین به ازای ۱۷۰ ما miss داریم ولی اگر بعد از اون ۱۶۸ رو بخوان دیگه ما اونو تو حافظه داریم پس hit میشه.
در مورد ۲۵۷ :
تقسیم بر ۴ میشه باقیمانده میشه ۱ ، و ۶۴ تقسیم بر ۴ باقیمانده میشه ۰ . یعنی آدرس (۲۵۶ تا ۲۵۹ ) تو بلوک ۰ لود میشن. پس به ازای این miss داریم.
به این نکته توجه کن که اگه مثلا آدرس یعد از این یه چیزی بود که دوباره تو بلوک ۰ لود میشد ، دیگه آدرس های قبلی که داشتیم تو این بلوک همه از بین میرن و به ازای اونا miss خواهیم داشت.
حواست به این هم باشه که شماره ها از ۰ شروع میشه. یعنی اگه شماره کلمه ات در اومد ۳ این یعنی چهارمین کلمه و آخرین کلمه از بلوک.
یه کم توضیحش سخت بود با نوشتن. سعی کردم واضح توضیح بدم.
خیلی قشنگ توضیح دادی مرسییییییی
۰
۰
ارسال: #۸
  
RE: نحوه تشخیص miss , hit (سازمان حافظه)
ببینید فلسفه این کارو باید بفهمید تا هر سوالی بهتون دادن راحت بدونید چه کار کنید: ما یه حافظه ی اصلی داریم یه دونه هم حافظه ی کش..هر بار باید بریم از حافظه اصلی یه خونه رو بیاریم بریزیم توی کش...شما اصل محلی بودن رو که میدونید: میگه ما الان با هر خونه ی حافظه سر و کار داشته باشیم تا چند لحظه ی دیگه به همجواراش نیاز پیدا میکنیم مثلا ما اگه الان با خونه ی ۰ حافظه کار داریم چند لحظه بعد به خونه ی ۱ و چند لحظه ی بعدتر به ۲ و .. نیاز خواهیم داشت..پس میایم چیکار میکنیم : میگیم ما که داریم خونه ی صفر رو میاریم چه کاریه! خونه های ۱ و ۲و ۳و ۴و ..و در واقع همجواراش رو هم میاریم که چند لحظه ی بعد که به ۱ کار داریم از قبل توی کش آورده بوده باشیم...حالا یه چیزی: نمیشه همینجوری ۰ رو آوردیم ۱و۲و۳و۴و۵و.. همه رو بیاریم که اصن جا نیس که بیاریم به همین خاطر باید تیکه تیکه یا همون توی معماری بهش میگن بلاک بلاک باید بیاریم..حالا این تیکه چقدره و کی سایزش رو تعیین میکنه ؟ جواب: کش...در واقع باید ببینید هر خونه ی کش یا همون هر بلاک کش چه تعداد کلمه جا میشه مثلا توی این مثال ۴تا ..پس میاین حافظه ی اصلی رو ۴ تا ۴ تا تیکه تیکش میکنی مثلا ۰و۱و۲و۳ توی تیکه یا همون بلاک ۰ ...۴و۵و۶و۷ توی بلاک ۱///۸و۹و۱۰و۱۱ توی بلاک ۲/// و الی آخر ..حالا یه چیز دیگه رو میخوام بگم: مثلا الان ۹ توی کدوم بلاکه و چندمین کلمه ی اون بلاکه؟ باید ۹ رو بر تعداد خونه ها یا همون تعداد بلاک های کش که ۴ تاست تقسیم کنید تا بفهمید توی تیکه چندم حافظه ی اصلیه و چندمین کلمه اش؟: ۹/۴=۲ و یه دونه هم باقیمانده میاره خارج قسمت همون شماره بلاک رونشون میده باقی موندش هم چندمین کلمه ی او ن بلاک بودن رو نشون میده مثلا اینجا ۹ کلمه ی دوم از بلاک شماره ۲ هست پس یه کلمه قبل از این و دو کلمه بعد از ۹ هم با هم تشکیل یه بلاک رو میدن و با هم میان میرن توی خونه ی دوم کش..پس واسه ۹ میس شد ولی اگه دور بعد به ۱۰ و ۱۱ نیاز داشته باشیم دیگه توی کش هستند و میس رخ نمیده بقیه ش که همون چیزایی که بالاتر مفصل دوستمون گفتن..نوشتنی نمیشه توضیح داد..
Can I see some ID?
Feeling left out?
نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close