(30 بهمن 1397 03:03 ب.ظ)Sanazzz نوشته شده توسط: [ -> ]فکر کنم فهمیدم
میگه هر مجموعه دو بلوک داره و هر بلوک ۴ کلمه پس هر مجموعه ۸ تا کلمه داره
در کل حافظه نهان ۲۰۴۸ کلمه است که تقسیم به ۸ میشه ۲۵۶ مجموعه یا همون set که با ۸ بیت نشون میدیم
بعد ۲ بیت هم برای اینکه بلوکمون ۴ کلمه ایه جاش تو هر بلوک مشخص بشه
در کل ۱۰ بیت شد برای حافظه کش از ۱۷ تایه مابقی ۷ تاش برای tag
یعنی درست فهمیدم واقعاااااااااا!!!!!!!!!!! ))))
البته با کمک اینجا
مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمیباشید. جهت مشاهده پیوندها ثبت نام کنید.
ببین اطلاعاتی که سوال داده ایناست :
تعداد کلمه حافظه اصلی 128k پس 17^2 ( هر کلمه هم 32 بیتی که همون دیتای ماست و فعلا باهاش کاری نداریم)
کش مجموعه ای که هر مجموعه شامل 2 بلاک هستند
و سایز بلوک ها هم 4 کلمه ای هستن
فضای آدرس دهی کش هم 11 بیت هست ( یعنی 2048 تا از کلمه های یا ردیف های حافظه میتونه در کش باشه)
حالا الف گفته فرمت ادرس :
مرحله اول)میدونیم که فرمت آدرس در نگاشت مجوعه ای به صورت tag/set/word هست و چون خود سوال گفته فضای آدرس حافظه 128k یا همون 17 بیت هست پس مجموع tag+set+word باید 17 بیت باشه
مرحله دوم)نیاز داریم اندازه هر کدوم از tag/set/word ها رو حساب کنیم یا حداقل 2 تاش رو حساب کنیم
word: چون تو سوال گفته بلاک ها 4 کلمه ای هستن پس برای word داریم 2 بیت
set: تعداد مجموعه ها همون تعداد بلاک های کش تقسیم بر k هست پس باید بریم تعداد بلاک کش رو حساب کنیم
تعداد بلاک های کش هم فضای آدرس کش/سایز بلاک که 2048/4=512 (ساده بنویسیم 11-2=9) که همون 512=2^9
حالا میتونیم set رو حساب کنیم که میشه 512/2=256 یا (9-1=8) که همون 256=2^8
حالا این یعنی چی ؟ یعنی ما 256 تا مجموعه داریم که هر کدوم از اینها شامل 2 تا بلاک هستن که هر بلاک شامل 4 کلمه هست (اگه متوجه نشدی سعی کن شکل بکشی)
خب تا همینجا الف حل میشه یعنی 7 =(2+8) - 17 پس tag ما باید 7 بیتی باشه ولی ما جدا خودمون حساب میکنیم که بررسی کنیم درسته یا نه!
مرحله 3 ) برای محاسبه تگ تو روش های مختلف فرق میکنه حالا این ینی چی ؟ (میگم که همش و یجا ببینی کامل داستان رو درک کنی)
1- نگاشت مستقیم : tag = لگاریتم ( نسبت اندازه حافظه به اندازه کش) خیلی ساده بخوام بگم همون (تعداد بیت ادرس حافظه - تعداد بیت ادرس کش ) که میشه تعداد بیت های tag در نگاشت مستقیم
2- full-asscociative یا انجمنی کامل : tag = لگاریتم(تعداد بلاک حافظه) که این یعنی برای ادرس دهی ادرس خود بلاک حافظه تو tag قرار میگیره
3- k-way set associative یا مجموعه انجمنی : tag = لگاریتم (نسبت اندازه حافظه به اندازه کش ) + لگاریتم (k یا همون تعداد بلاک در هر مجموعه)
اگه دقت کنید روش مجموعه ای خودش ترکیب روش مستقیم و انجمنی کامل هست و tag هم میشه مجموع tag های این دو روش البته دقت کنید که اینجا دیگه باید به جای لگاریتم(تعداد بلاک حافظه)، لگاریتم( تعداد بلاک هر مجموعه همون k) رو قرار میدیم
خب حالا tag سوال رو حساب کنیم که روش 3 میشه دیگه : گلاریتم( 128k / 2048) + لگاریتم ( 2) = 6 + 1 = 7 که دقیقا درسته همچی
قسمت ب هم که فک نکنم مشکل داشته باشی
سوال 20 هم خودم نفهمیدم
[/align]