۰
subtitle
ارسال: #۱
  
مقدرا tag و index
سلام دوستان سوال زیر رو توضیح می دید لطفا.
نمی تونم مقدرا tag و index رو بدست بیارم .
نمی تونم مقدرا tag و index رو بدست بیارم .
۰
ارسال: #۲
  
RE: مقدرا tag و index
سلام
ما دوتا نشونه توی سوال داریم
۱)
اینکه اندازه حافظه اصلی چنده؟!
۲)
اینکه اندازه کش چند تاست؟!
طبق سلسله مراتب تولید حافظه از cpu تا زمان نگاشتش به حافظه اصلی با عبور از کش داریم :
اندازه حافظه اصلی :
[tex]256MW=2^8\times2^{20}\times W\: =2^{28}W[/tex]
اندازه کش :
[tex]128KB=2^7\times2^{10}B=2^{17}B[/tex]
---------------
حال یک نگاه دو طرفه به اوضاع داشته باشیم :
دقت کنید که TAG تنها به ازای کش وجود دارد و با توجه به نوع نگاشت به ازای هر SET یک تگ خوایم داشت.
دقت کنید که با توجه به اندازه ی کلی حافظه اصلی : تعداد بیت های مشخص کننده [tex]2^{30}[/tex] خواهد بود یعنی آدرس تولید شده ۳۰ بیتی است! دو بیت اضافه شده نیز به این خاطر است که حافظه دارای تعداد کلمات ۴ بایتی است که برای مشخص نمودنش به ۲ بیت نیاز داریم که مجموعا میشود [tex]2^{30}[/tex].
و دقت کنید که اوضاع برای کش نیز به همین شکل است به استثنای TAG ها.
بیایید از طرف تولید آدرس به کش به مساله نگاه کنیم : همان طور که میدانید TAG ها در این محاسبه نقشی ندارند و تنها خطوط تعیین کننده ی تعداد بیت ها در کش ، طبق اندازه ی کش [tex]2^{17}[/tex] خواهد بود.
از ۳۰ بیتِ در دسترس که تشکیل آدرس میدهد ۱۷ بیت کم کنید :
می ماند ۱۳ بیت برای TAG.
حال بیایید از طرف حافظه به قضیه نگاه کنیم :
دو بیت که تعداد کلمات حافظه که حاوی ۴بایت است را مشخص میکرد.جدای از اندازه ی TAG با کم کردن این مقدار از ۱۷ بیت مورد نظر تنها ۱۵ بیت دیگر باقی میماند(همان طور که مشاهده میکنید در گزینه ها مقدار index با اندازه ی ۱۵ نیز موجود است!) دلیل رد این گزینه قالب نگاشت میباشد که برای مشخص نمودن یک راه مورد نظر، نیاز به یک بیت برای WORD خواهیم داشت که این یک بیت نیز باید از ۱۵ بیتِ باقی مانده کم شود و تعداد index=14 خواهد شد.(دقت کنید که اگر در سوال بر دو راهه بودن تاکید میداشت اندازه ی WORD همچنان ۱ باقی میماند)!
--------
مهم ترین موضوع در پاسخگویی به این مسائل تشخیص سیاست نگاشت + تقسیم بندی های حافظه(بلاک ها و بایت ها و تعداد کلمات آدرس پذیر) + قالب دستور العمل است.
ما دوتا نشونه توی سوال داریم
۱)
اینکه اندازه حافظه اصلی چنده؟!
۲)
اینکه اندازه کش چند تاست؟!
طبق سلسله مراتب تولید حافظه از cpu تا زمان نگاشتش به حافظه اصلی با عبور از کش داریم :
اندازه حافظه اصلی :
[tex]256MW=2^8\times2^{20}\times W\: =2^{28}W[/tex]
اندازه کش :
[tex]128KB=2^7\times2^{10}B=2^{17}B[/tex]
---------------
حال یک نگاه دو طرفه به اوضاع داشته باشیم :
دقت کنید که TAG تنها به ازای کش وجود دارد و با توجه به نوع نگاشت به ازای هر SET یک تگ خوایم داشت.
دقت کنید که با توجه به اندازه ی کلی حافظه اصلی : تعداد بیت های مشخص کننده [tex]2^{30}[/tex] خواهد بود یعنی آدرس تولید شده ۳۰ بیتی است! دو بیت اضافه شده نیز به این خاطر است که حافظه دارای تعداد کلمات ۴ بایتی است که برای مشخص نمودنش به ۲ بیت نیاز داریم که مجموعا میشود [tex]2^{30}[/tex].
و دقت کنید که اوضاع برای کش نیز به همین شکل است به استثنای TAG ها.
بیایید از طرف تولید آدرس به کش به مساله نگاه کنیم : همان طور که میدانید TAG ها در این محاسبه نقشی ندارند و تنها خطوط تعیین کننده ی تعداد بیت ها در کش ، طبق اندازه ی کش [tex]2^{17}[/tex] خواهد بود.
از ۳۰ بیتِ در دسترس که تشکیل آدرس میدهد ۱۷ بیت کم کنید :
می ماند ۱۳ بیت برای TAG.
حال بیایید از طرف حافظه به قضیه نگاه کنیم :
دو بیت که تعداد کلمات حافظه که حاوی ۴بایت است را مشخص میکرد.جدای از اندازه ی TAG با کم کردن این مقدار از ۱۷ بیت مورد نظر تنها ۱۵ بیت دیگر باقی میماند(همان طور که مشاهده میکنید در گزینه ها مقدار index با اندازه ی ۱۵ نیز موجود است!) دلیل رد این گزینه قالب نگاشت میباشد که برای مشخص نمودن یک راه مورد نظر، نیاز به یک بیت برای WORD خواهیم داشت که این یک بیت نیز باید از ۱۵ بیتِ باقی مانده کم شود و تعداد index=14 خواهد شد.(دقت کنید که اگر در سوال بر دو راهه بودن تاکید میداشت اندازه ی WORD همچنان ۱ باقی میماند)!
--------
مهم ترین موضوع در پاسخگویی به این مسائل تشخیص سیاست نگاشت + تقسیم بندی های حافظه(بلاک ها و بایت ها و تعداد کلمات آدرس پذیر) + قالب دستور العمل است.
۰
ارسال: #۳
  
RE: مقدرا tag و index
سلام
با احترام به پاسخ samanbeigmiri
از روی اطلاعات مزبوط به زمان های دسترسی و نرخ برخورد می توان تعداد کلمه در بلاک را بدست اورد.با فرض عدم ارتباط مستقیم cpu با حافظه اصلی .
[tex]t_{avg}=ht_c+(1-h)(t_c+t_{transfer})=t_c+(1-h)t_{transfer}[/tex]
زمانی که Miss رخ می دهد بلاک از حافظه به کش منتقل می شود که زمان دسترسی به هر کلمه در حافظه اصلی طبق سوال ۷۵ns است پس اگر بلاک x کلمه داشته باشد زمان انتقال یک بلاک به کش[tex]75\ast x\: ns[/tex] زمان می برد باتوجه به زمان های داده شده در عنوان سوال داریم
[tex]25=10+0.1\: \ast\: 75\ast\: x\: \rightarrow\: \: x=2[/tex] یعنی هر بلاک دو کلمه دارد.
این سوال ابهام دارد. از روی عنوان سوال مشخص نیست که بایت قابل ادرس دهی است یا کلمه و cpu ارتباط مستقیمی با حافظه اصلی دارد یا نه. هر چند در صورت وجود ارتباط مستقیم به نظر دیگر نمی توان تعداد کلمات را از این دیتا ها بدست اورد.
دقت کنید که TAG تنها به ازای کش وجود دارد و با توجه به نوع نگاشت به ازای هر SET یک تگ خوایم داشت.
با احترام فکر کنم منظور شما از اینکه tag تنها به ازای کش وجود دارد این باشد که به ازای هر بلوک از کش یک tag داریم .اگر چنین باشد این موضوع کلیت ندارد و گاها به ازای هر کلمه یک tag وجود دارد(در پوران هم به ان اشاره شده) ولی خوب در تست ها به ازای هر بلوک یک تگ داریم (این هم یکی از پیش فرض های است که طراحان محترم مد نظر دارند!!!)
با احترام به پاسخ samanbeigmiri
از روی اطلاعات مزبوط به زمان های دسترسی و نرخ برخورد می توان تعداد کلمه در بلاک را بدست اورد.با فرض عدم ارتباط مستقیم cpu با حافظه اصلی .
[tex]t_{avg}=ht_c+(1-h)(t_c+t_{transfer})=t_c+(1-h)t_{transfer}[/tex]
زمانی که Miss رخ می دهد بلاک از حافظه به کش منتقل می شود که زمان دسترسی به هر کلمه در حافظه اصلی طبق سوال ۷۵ns است پس اگر بلاک x کلمه داشته باشد زمان انتقال یک بلاک به کش[tex]75\ast x\: ns[/tex] زمان می برد باتوجه به زمان های داده شده در عنوان سوال داریم
[tex]25=10+0.1\: \ast\: 75\ast\: x\: \rightarrow\: \: x=2[/tex] یعنی هر بلاک دو کلمه دارد.
این سوال ابهام دارد. از روی عنوان سوال مشخص نیست که بایت قابل ادرس دهی است یا کلمه و cpu ارتباط مستقیمی با حافظه اصلی دارد یا نه. هر چند در صورت وجود ارتباط مستقیم به نظر دیگر نمی توان تعداد کلمات را از این دیتا ها بدست اورد.
(۰۸ فروردین ۱۳۹۶ ۰۷:۳۲ ب.ظ)samanbeigmiri نوشته شده توسط: سلامحال یک نگاه دو طرفه به اوضاع داشته باشیم :
ما دوتا نشونه توی سوال داریم
۱)
اینکه اندازه حافظه اصلی چنده؟!
۲)
اینکه اندازه کش چند تاست؟!
طبق سلسله مراتب تولید حافظه از cpu تا زمان نگاشتش به حافظه اصلی با عبور از کش داریم :
اندازه حافظه اصلی :
[tex]256MW=2^8\times2^{20}\times W\: =2^{28}W[/tex]
اندازه کش :
[tex]128KB=2^7\times2^{10}B=2^{17}B[/tex]
---------------
حال یک نگاه دو طرفه به اوضاع داشته باشیم :
دقت کنید که TAG تنها به ازای کش وجود دارد و با توجه به نوع نگاشت به ازای هر SET یک تگ خوایم داشت.
دقت کنید که با توجه به اندازه ی کلی حافظه اصلی : تعداد بیت های مشخص کننده [tex]2^{30}[/tex] خواهد بود یعنی آدرس تولید شده ۳۰ بیتی است! دو بیت اضافه شده نیز به این خاطر است که حافظه دارای تعداد کلمات ۴ بایتی است که برای مشخص نمودنش به ۲ بیت نیاز داریم که مجموعا میشود [tex]2^{30}[/tex].
و دقت کنید که اوضاع برای کش نیز به همین شکل است به استثنای TAG ها.
بیایید از طرف تولید آدرس به کش به مساله نگاه کنیم : همان طور که میدانید TAG ها در این محاسبه نقشی ندارند و تنها خطوط تعیین کننده ی تعداد بیت ها در کش ، طبق اندازه ی کش [tex]2^{17}[/tex] خواهد بود.
از ۳۰ بیتِ در دسترس که تشکیل آدرس میدهد ۱۷ بیت کم کنید :
می ماند ۱۳ بیت برای TAG.
حال بیایید از طرف حافظه به قضیه نگاه کنیم :
دو بیت که تعداد کلمات حافظه که حاوی ۴بایت است را مشخص میکرد.جدای از اندازه ی TAG با کم کردن این مقدار از ۱۷ بیت مورد نظر تنها ۱۵ بیت دیگر باقی میماند(همان طور که مشاهده میکنید در گزینه ها مقدار index با اندازه ی ۱۵ نیز موجود است!) دلیل رد این گزینه قالب نگاشت میباشد که برای مشخص نمودن یک راه مورد نظر، نیاز به یک بیت برای WORD خواهیم داشت که این یک بیت نیز باید از ۱۵ بیتِ باقی مانده کم شود و تعداد index=14 خواهد شد.(دقت کنید که اگر در سوال بر دو راهه بودن تاکید میداشت اندازه ی WORD همچنان ۱ باقی میماند)!
--------
مهم ترین موضوع در پاسخگویی به این مسائل تشخیص سیاست نگاشت + تقسیم بندی های حافظه(بلاک ها و بایت ها و تعداد کلمات آدرس پذیر) + قالب دستور العمل است.
دقت کنید که TAG تنها به ازای کش وجود دارد و با توجه به نوع نگاشت به ازای هر SET یک تگ خوایم داشت.
با احترام فکر کنم منظور شما از اینکه tag تنها به ازای کش وجود دارد این باشد که به ازای هر بلوک از کش یک tag داریم .اگر چنین باشد این موضوع کلیت ندارد و گاها به ازای هر کلمه یک tag وجود دارد(در پوران هم به ان اشاره شده) ولی خوب در تست ها به ازای هر بلوک یک تگ داریم (این هم یکی از پیش فرض های است که طراحان محترم مد نظر دارند!!!)
۰
ارسال: #۴
  
RE: مقدرا tag و index
من دقیقا متوجه منظور شما هستم
یک مثال بزنم که خیالتان هم راحت کنم بزرگوار
مثلا در بخش کنترل ریز برنامه ریزی شده از سال ۸۹ به بعد نظر طراح برای محاسبات موجود در حافظه نانو به کل تغییر کرده!!(تغییری کاملا اشتباه که حتی از لحاظ پیاده سازی و سخت افزاری هم غلط است!!!)
و اما نکته ی جالب تر اینجاست که در کنکور دکترای امسال همان نگاه غلط را باید داشت که بتوان به مساله پاسخ داد!!(و جالب تر اینکه طراح یکی از گزینه ها را بر اساس نگاه درست در مساله قرار داده !!!)
----
من نظرم این هستش که هر جور شده شما سوالات کنکور رو منطبق بر نظر طراح حل کنید و سعی کنید نگاه غلط طراح رو هم درک کنید.
من خودم اگر یه همچین سوالی بیاد با همین شیوه جوابشو در میارم!
جالب اینجاست که در حل من تعدادی از بیت ها توی هر رفت و برگشت از حافظه به کش و بالعکس از دست میره و من کاملا از این موضوع آگاهم!!
یک مثال بزنم که خیالتان هم راحت کنم بزرگوار
مثلا در بخش کنترل ریز برنامه ریزی شده از سال ۸۹ به بعد نظر طراح برای محاسبات موجود در حافظه نانو به کل تغییر کرده!!(تغییری کاملا اشتباه که حتی از لحاظ پیاده سازی و سخت افزاری هم غلط است!!!)
و اما نکته ی جالب تر اینجاست که در کنکور دکترای امسال همان نگاه غلط را باید داشت که بتوان به مساله پاسخ داد!!(و جالب تر اینکه طراح یکی از گزینه ها را بر اساس نگاه درست در مساله قرار داده !!!)
----
من نظرم این هستش که هر جور شده شما سوالات کنکور رو منطبق بر نظر طراح حل کنید و سعی کنید نگاه غلط طراح رو هم درک کنید.
من خودم اگر یه همچین سوالی بیاد با همین شیوه جوابشو در میارم!
جالب اینجاست که در حل من تعدادی از بیت ها توی هر رفت و برگشت از حافظه به کش و بالعکس از دست میره و من کاملا از این موضوع آگاهم!!
ارسال: #۵
  
RE: مقدرا tag و index
Can I see some ID?
Feeling left out?
نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close