(۲۲ فروردین ۱۳۹۶ ۰۷:۳۶ ب.ظ)peace2013 نوشته شده توسط: ممنونم از پاسختون
ولی میشه این دو مدل را با شکل نشون بدید
سلام
در نگاشت مستقیم هر بلوک حافظه در یک بلوک(خط) خاص کش قرار میگیرد.فیلد لاین ادرس مشخص کننده لاین مورد نظر کش است که اگر بلوک مورد نظر در کش باشد در ان لاین خواهد بود اگر به شکل توجه کنید به ازای هر بلوک یک tag هم در کنار ان ذخیره شده که وظیفه اش مشخص کردن اینه که ایا بلوک موجود در لاین همان بلوک درخواستی است یا نه. توجه کنید که اندازه کش کوچکتر از حافظه اصلی است پس هر لاین به چندین بلوک حافظه تخصیص می یابد
در انجمنی کامل هر بلوک حافظه می تواند در هر لاین کش قرار گیرد و نیازی به فیلد تعیین لاین ادرس نداریم.در واقع در این نگاشت tag ادرس به صورت همزمان با tag تمام لاین های کش مقایسه می شود که درصورت مچ شدن مقایسه برخورد نتیجه گیری می شود وگرنه میس داریم.
در نگاشت مجموعه ای هر چند تا بلوک را یک مجموعه میگیرند و از فیلد set برای تعیین مجموعه استفاده می شود بعد Tag ادرس با tag ذخیره شده برای هر بلوک در ان مجموعه همزمان مقایسه می شودوبرخورد یا میس رخ می دهد.
اگر به فرمت ادرس مجموعه ای و انجمنی کامل دفت کنید فیلد tag در مجموعه ای طول کوتاه تری دارد پس حافظه کمتری برای ذخیره سازی tag ها به ازای هر بلوک نیاز است. در این تصاویر بسیاری از جزئیات نادیده گرفته شده ازجمله بیت اعتبار در کش .