تالار گفتمان مانشت
سوال حافظه سال ۷۹ - نسخه‌ی قابل چاپ

سوال حافظه سال ۷۹ - fa_karoon - 27 آذر ۱۳۹۱ ۰۷:۱۶ ب.ظ

سلام دوستان این سوال رو لطفا راهنمایی کنید چه جوری حل شده؟
مهندسی کامپیوتر ۷۹) ) در یک حافظه نهان شرکت پذیر مجموعه ای با دو بلوک در هر مجموعه(Two-way set Associative Cache) از بلوک های ۴ کلمه ای استفاده می شود. این حافظه نهان می تواند در مجموع ۲۰۴۸ کلمه از حافظه اصلی را در خود جای دهد. اندازه حافظه اصلی ۱۲۸ کیلو کلمه است. برچسب (tag) در این حافظه چند بیت دارد؟
اندازه حافظه اصلی ۱۲۸ کیلو می باشد.و بنابراین دارای ۱۷ خط آدرس است و نیز اندازه حافظه نهان برابر ۲۰۴۸ کلمه است و در هر آدرس ۲ کلمه جای می دهد پس دارای ۱۰۲۴ آدرس است یعنی ۱۰ خط آدرس نیاز دارد پس tag=17-10=7
حالا سوال من این است که : مگه نگفته بلوک ها ۴ کلمه ای هستند پس چرا در جواب می گه در هر آدرس Cache دو کلمه جای می شه؟ به دست آوردن ۱۷ که واضح است اما این ۱۰۲۴ قانع نمی شم که چه جوری به دست اومده؟

سوال حافظه سال ۷۹ - هاتف - ۲۸ آذر ۱۳۹۱ ۰۴:۵۹ ب.ظ

سلام
(۲۷ آذر ۱۳۹۱ ۰۷:۱۶ ب.ظ)fa_karoon نوشته شده توسط:  اندازه حافظه اصلی ۱۲۸ کیلو می باشد.و بنابراین دارای ۱۷ خط آدرس است و نیز اندازه حافظه نهان برابر ۲۰۴۸ کلمه است و در هر آدرس ۲ کلمه جای می دهد پس دارای ۱۰۲۴ آدرس است یعنی ۱۰ خط آدرس نیاز دارد پس tag=17-10=7
در هر آدرس (سطر) کش دو بلاک قرار می گیره، هر بلاک ۴ کلمه، پس میشه ۸ کلمه.
کش دارای ۲۵۶ سطر میشه (۲۰۴۸ تقسیم بر ۸)

(۲۷ آذر ۱۳۹۱ ۰۷:۱۶ ب.ظ)fa_karoon نوشته شده توسط:  حالا سوال من این است که : مگه نگفته بلوک ها ۴ کلمه ای هستند پس چرا در جواب می گه در هر آدرس Cache دو کلمه جای می شه؟ به دست آوردن ۱۷ که واضح است اما این ۱۰۲۴ قانع نمی شم که چه جوری به دست اومده؟
هر کس گفته اشتباه گفته، شما توضیحات من رو ببینید:
اول توجه کنید:
اندازه هر بلاک که واضحه ۴ کلمه است
هر سطر کش دارای ۲ بلاک هست، پس هر سطر کش ۸ کلمه دارد.
ظرفیت کش ۲۰۴۸ کلمه است که اگر تقسیم بر ظرفیت هر سطر یعنی ۸ کلمه کنیم، تعداد سطر های کش یعنی ۲۵۶ بدست می آید.
همچنین می دانیم:
آدرس رو تقسیم بر اندازه ی بلاک می کنیم، خارج قسمت آن----------------> شماره بلاک
شماره ی بلاک رو تقسیم بر تعداد سطر کش می کنیم، باقی مانده ی آن --> ایندکس
ببینید مگه آدرس های ما ۱۷ بیتی نیستند؟ پس اگر ۱۷ بیت رو بخواهیم تقسیم بر ۴ کنیم ۱۵ بیت پر ارزش نشون دهندی شماره بلاک ما هست.
این شماره ی بلاک ۱۵ بیتی رو اگر بر تعداد سطرهای کش (۲۵۶ سطر یعنی ۸ بیت) تقسیم کنیم، باقی مانده ی آن یعنی ۸ بیت کم ارزش ایندس است و خارج قسمت آن یعنی ۷ بیت پر ارزش TAG است.

سوال حافظه سال ۷۹ - masoud.bala - 28 آذر ۱۳۹۱ ۰۶:۰۰ ب.ظ

سلام من متوجه این ۱۵ بیتی که گفتی نمی شم که گفتی نشان دهنده ۱۵ بیت پر ارزش ما است را نمی فهمم از کجا آوردی
ظرفیت هر سطر کش گفتی ۲ بلاک است هم نمی فهمم که هر سطر کش ۸ کلمه دارد از کجا آوردی

RE: سوال حافظه سال ۷۹ - fa_karoon - 28 آذر ۱۳۹۱ ۰۹:۰۸ ب.ظ

سلام،
بسیار عالی، آقای هاتف ممنون از پاسختون، با توجه به چیزهایی که از جزوه دکتر اجلالی تون خوندم، این توضیحاتی رو که دادید دقیقا متوجه شدم چه اتفاقی افتاده.
جوابی رو که نوشته بودم از یه کتاب قدیمی معماری مهندس یوسفی نوشتم، خیلی وقتم رو گرفت فکر می کردم خیلی اوضاعم داغونه که همچین سوالی رو متوجه نمی شم.


(۲۸ آذر ۱۳۹۱ ۰۶:۰۰ ب.ظ)masoud.bala نوشته شده توسط:  سلام من متوجه این ۱۵ بیتی که گفتی نمی شم که گفتی نشان دهنده ۱۵ بیت پر ارزش ما است را نمی فهمم از کجا آوردی
ظرفیت هر سطر کش گفتی ۲ بلاک است هم نمی فهمم که هر سطر کش ۸ کلمه دارد از کجا آوردی
اما دوست عزیز
اگر موافقید که آدرس ۱۷ بیتی هست. و اینکه برای به دست آوردن شماره بلاک آن را بر اندازه بلاک تقسیم می کنیم جریان اینجوری می شه که: فرض کنید این آدرس ۱۷ بیتی باشه که CPU داده : ۱۱۱۱۰۱۰۰۱۰۰۰۱۰۰۰۱ (البته این آدرس نمونه است)
خوب وقتی این آدرس بر ۴تقسیم بشه اینجوری فکر کنید که چون ۴ می شه ۲ به توان ۲، دو بیت سمت راست می شه شماره بلاک، پس ۱۵ بیت باقی ماند، خوب این ۱۵ بیت رو که بر ۲۵۶ تقسیم کنیم با توجه به اینکه ۲۵۶ می شه ۲ به توان ۸، هشت بیت سمت راسته این ۱۵ بیت می شه ایندکس .
-----------------
و اینکه ظرفیت هر سطر کش دو بلاک هست چون کش Two-Way بوده، یعنی در هر سطر دو بلاک جای می گیرد، و خوب سوال گفته در هر بلاکی هم ۴ کلمه هست پس ۲*۴=۸ می شود.