تالار گفتمان مانشت
حافظه ها + میزان سربار اضافه شده به Cache - نسخه‌ی قابل چاپ

حافظه ها + میزان سربار اضافه شده به Cache - kati - 17 بهمن ۱۳۹۲ ۱۲:۱۷ ب.ظ

سلام . ممنون میشم یه نفر این سوال رو واسم توضیح بده.
میزان سربار اضافه شده به Cache یعنی چی؟
اندازه مجموعه رو چطوری پیدا میکنه؟

مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.


مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.


RE: حافظه ها + میزان سربار اضافه شده به Cache - unicornux - 17 بهمن ۱۳۹۲ ۱۲:۳۹ ب.ظ

(۱۷ بهمن ۱۳۹۲ ۱۲:۱۷ ب.ظ)kati نوشته شده توسط:  سلام . ممنون میشم یه نفر این سوال رو واسم توضیح بده.
میزان سربار اضافه شده به Cache یعنی چی؟
اندازه مجموعه رو چطوری پیدا میکنه؟

مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.


مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.

یعنی tag و valid. هر آنچه که دیتا نیست.
۴ way داریم پس کل کش تقسیم بر ۴ ===> 64k/4=16k کلمه داریم.
هر set چهار بلاک داره پس ۱۶k/4=4k ست هم داریم. و باقیه ماجرا...

RE: حافظه ها + میزان سربار اضافه شده به Cache - hosein_khoshdel - 17 بهمن ۱۳۹۲ ۰۳:۱۷ ب.ظ

(۱۷ بهمن ۱۳۹۲ ۱۲:۳۹ ب.ظ)unicornux نوشته شده توسط:  
(17 بهمن ۱۳۹۲ ۱۲:۱۷ ب.ظ)kati نوشته شده توسط:  سلام . ممنون میشم یه نفر این سوال رو واسم توضیح بده.
میزان سربار اضافه شده به Cache یعنی چی؟
اندازه مجموعه رو چطوری پیدا میکنه؟

مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.


مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.

یعنی tag و valid. هر آنچه که دیتا نیست.
۴ way داریم پس کل کش تقسیم بر ۴ ===> 64k/4=16k کلمه داریم.
هر set چهار بلاک داره پس ۱۶k/4=4k ست هم داریم. و باقیه ماجرا...

قسمت بولد شده فکر نمی کنم ربطی به ۴ راهه بودنش داشته باشه.به نظرم وقتی اندازه ی کلمه مشخص نمی شه باید ۴ بایت در نظر بگیریمش. درست می گم؟

RE: حافظه ها + میزان سربار اضافه شده به Cache - unicornux - 17 بهمن ۱۳۹۲ ۰۳:۴۵ ب.ظ

(۱۷ بهمن ۱۳۹۲ ۰۳:۱۷ ب.ظ)hosein_khoshdel نوشته شده توسط:  
(17 بهمن ۱۳۹۲ ۱۲:۳۹ ب.ظ)unicornux نوشته شده توسط:  
(17 بهمن ۱۳۹۲ ۱۲:۱۷ ب.ظ)kati نوشته شده توسط:  سلام . ممنون میشم یه نفر این سوال رو واسم توضیح بده.
میزان سربار اضافه شده به Cache یعنی چی؟
اندازه مجموعه رو چطوری پیدا میکنه؟

مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.


مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.

یعنی tag و valid. هر آنچه که دیتا نیست.
۴ way داریم پس کل کش تقسیم بر ۴ ===> 64k/4=16k کلمه داریم.
هر set چهار بلاک داره پس ۱۶k/4=4k ست هم داریم. و باقیه ماجرا...

قسمت بولد شده فکر نمی کنم ربطی به ۴ راهه بودنش داشته باشه.به نظرم وقتی اندازه ی کلمه مشخص نمی شه باید ۴ بایت در نظر بگیریمش. درست می گم؟

با فرض شما حل کنیم طول هر خونه کش میشه ۳۲ بیت. یعنی ۱۲ بیت ایندکس بره بیرون باید ۱۱ بیت برای بلاک آفست بزاریم که در مجموع tag+index=20 بشه! درست میگم؟

من شکلی که از کش دارم با شکلی که شما دارین فرق داره. همشم تقصیر کتابِ پترسونِ. اما همیشه درست در میاد.

RE: حافظه ها + میزان سربار اضافه شده به Cache - kati - 17 بهمن ۱۳۹۲ ۰۴:۳۵ ب.ظ

راستش منم متوجه ربطه اینکه ست رو به ۴ تقسیم کردید نشدم!!
من خودم فکر میکردم باید به قول دوستمون اندازه ی یک word رو ، چهار بایت در نظر بگیریم!!
در آخر من هنوز متوجه نشدم ! یاری برسانید !

RE: حافظه ها + میزان سربار اضافه شده به Cache - nazanin_sh - 17 بهمن ۱۳۹۲ ۰۶:۵۰ ب.ظ

سوالای معماری متاسفانه هیچ استانداردی برای حلشون وجود نداره ظاهرا!
اگه اندازه هر بلاک رو ۴ بایت در نظر بگیریم باز یه مشکلی هست. اگه ۴ بایت برای هر بلاک باشه ۲ بیت بایت آفست خواهیم داشت. تعداد ست هامون هم ۴k هست پس ۱۲ بیت برای تعیین ست میخوایم. یعنی اینجوری ۶ بیت برای tag باقی میمونه. یعنی ۷بیت سربار داریم. ۱۶k*7=112k سربار!
ظاهرا اینجا هر بلاک رو ۴ بایت در نظر گرفته ولی بایت آفست رو در نظر نگرفته!!!!

RE: حافظه ها + میزان سربار اضافه شده به Cache - infinity31 - 17 بهمن ۱۳۹۲ ۱۰:۵۷ ب.ظ

توی کتاب پوران دکتر یوسفی یک فرمت برای آدرس نگاشت های set-associative ارائه دادن که من تا حالا به تناقضی باهاش برنخوردم.
درصورتی که:

تعداد کلمات حافظه اصلی = دو به توان m
تعداد کلمات cache = دو به توان c
تعداد بلاک در هر set = دو به توان t
تعداد کلمات در هر بلاک = دو به توان w

m-c+t بیت برای tag
c-w-t بیت برای index
w بیت Block offset

در این سوال هم اگر در نظر بگیریم که یک کلمه ۴ بایت هست، cache شامل ۱۶k کلمه خواهد بود. که یعنی دو به توان ۱۴ و c=14.
حافظه هم که آدرس ۲۰ بیتی داره یعنی دو به توان ۲۰ کلمه درش جا میشه و m=20.
نگاشت ۴ راهه هست یعنی در هر set تعداد ۴ یا دو به توان ۲ بلاک داریم و t=2.

==> تعداد بیت برای tag میشه m-c+t = 20 - 14 + 2 = 8. بنابراین tag نیاز به ۸ بیت داره.

۸ + یک بیت برای valid میشه ۹ بیت سربار برای هر بلاک.

حالا با توجه به گزینه ها فقط گزینه ۴ بر ۹ بخش پذیره و اونم با ضریب ۱۶kb. این یعنی در سوال هر کلمه یه بلاک در نظر گرفته شده و به ازای هر بلاک یک tag و یک valid داریم.