تالار گفتمان مانشت

نسخه‌ی کامل: سوال حافظه سال 79
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام دوستان این سوال رو لطفا راهنمایی کنید چه جوری حل شده؟
مهندسی کامپیوتر ۷۹) ) در یک حافظه نهان شرکت پذیر مجموعه ای با دو بلوک در هر مجموعه(Two-way set Associative Cache) از بلوک های 4 کلمه ای استفاده می شود. این حافظه نهان می تواند در مجموع 2048 کلمه از حافظه اصلی را در خود جای دهد. اندازه حافظه اصلی 128 کیلو کلمه است. برچسب (tag) در این حافظه چند بیت دارد؟
اندازه حافظه اصلی ۱۲۸ کیلو می باشد.و بنابراین دارای ۱۷ خط آدرس است و نیز اندازه حافظه نهان برابر ۲۰۴۸ کلمه است و در هر آدرس ۲ کلمه جای می دهد پس دارای ۱۰۲۴ آدرس است یعنی ۱۰ خط آدرس نیاز دارد پس tag=17-10=7
حالا سوال من این است که : مگه نگفته بلوک ها ۴ کلمه ای هستند پس چرا در جواب می گه در هر آدرس Cache دو کلمه جای می شه؟ به دست آوردن ۱۷ که واضح است اما این ۱۰۲۴ قانع نمی شم که چه جوری به دست اومده؟
سلام
(27 آذر 1391 07:16 ب.ظ)fa_karoon نوشته شده توسط: [ -> ]اندازه حافظه اصلی ۱۲۸ کیلو می باشد.و بنابراین دارای ۱۷ خط آدرس است و نیز اندازه حافظه نهان برابر ۲۰۴۸ کلمه است و در هر آدرس ۲ کلمه جای می دهد پس دارای ۱۰۲۴ آدرس است یعنی ۱۰ خط آدرس نیاز دارد پس tag=17-10=7
در هر آدرس (سطر) کش دو بلاک قرار می گیره، هر بلاک 4 کلمه، پس میشه 8 کلمه.
کش دارای 256 سطر میشه (2048 تقسیم بر 8)

(27 آذر 1391 07:16 ب.ظ)fa_karoon نوشته شده توسط: [ -> ]حالا سوال من این است که : مگه نگفته بلوک ها ۴ کلمه ای هستند پس چرا در جواب می گه در هر آدرس Cache دو کلمه جای می شه؟ به دست آوردن ۱۷ که واضح است اما این ۱۰۲۴ قانع نمی شم که چه جوری به دست اومده؟
هر کس گفته اشتباه گفته، شما توضیحات من رو ببینید:
اول توجه کنید:
اندازه هر بلاک که واضحه 4 کلمه است
هر سطر کش دارای 2 بلاک هست، پس هر سطر کش 8 کلمه دارد.
ظرفیت کش 2048 کلمه است که اگر تقسیم بر ظرفیت هر سطر یعنی 8 کلمه کنیم، تعداد سطر های کش یعنی 256 بدست می آید.
همچنین می دانیم:
آدرس رو تقسیم بر اندازه ی بلاک می کنیم، خارج قسمت آن----------------> شماره بلاک
شماره ی بلاک رو تقسیم بر تعداد سطر کش می کنیم، باقی مانده ی آن --> ایندکس
ببینید مگه آدرس های ما 17 بیتی نیستند؟ پس اگر 17 بیت رو بخواهیم تقسیم بر 4 کنیم 15 بیت پر ارزش نشون دهندی شماره بلاک ما هست.
این شماره ی بلاک 15 بیتی رو اگر بر تعداد سطرهای کش (256 سطر یعنی 8 بیت) تقسیم کنیم، باقی مانده ی آن یعنی 8 بیت کم ارزش ایندس است و خارج قسمت آن یعنی 7 بیت پر ارزش TAG است.
سلام من متوجه این 15 بیتی که گفتی نمی شم که گفتی نشان دهنده 15 بیت پر ارزش ما است را نمی فهمم از کجا آوردی
ظرفیت هر سطر کش گفتی 2 بلاک است هم نمی فهمم که هر سطر کش 8 کلمه دارد از کجا آوردی
سلام،
بسیار عالی، آقای هاتف ممنون از پاسختون، با توجه به چیزهایی که از جزوه دکتر اجلالی تون خوندم، این توضیحاتی رو که دادید دقیقا متوجه شدم چه اتفاقی افتاده.
جوابی رو که نوشته بودم از یه کتاب قدیمی معماری مهندس یوسفی نوشتم، خیلی وقتم رو گرفت فکر می کردم خیلی اوضاعم داغونه که همچین سوالی رو متوجه نمی شم.


(28 آذر 1391 06:00 ب.ظ)masoud.bala نوشته شده توسط: [ -> ]سلام من متوجه این ۱۵ بیتی که گفتی نمی شم که گفتی نشان دهنده ۱۵ بیت پر ارزش ما است را نمی فهمم از کجا آوردی
ظرفیت هر سطر کش گفتی ۲ بلاک است هم نمی فهمم که هر سطر کش ۸ کلمه دارد از کجا آوردی
اما دوست عزیز
اگر موافقید که آدرس 17 بیتی هست. و اینکه برای به دست آوردن شماره بلاک آن را بر اندازه بلاک تقسیم می کنیم جریان اینجوری می شه که: فرض کنید این آدرس 17 بیتی باشه که CPU داده : 11110100100010001 (البته این آدرس نمونه است)
خوب وقتی این آدرس بر 4تقسیم بشه اینجوری فکر کنید که چون 4 می شه 2 به توان 2، دو بیت سمت راست می شه شماره بلاک، پس 15 بیت باقی ماند، خوب این 15 بیت رو که بر 256 تقسیم کنیم با توجه به اینکه 256 می شه 2 به توان 8، هشت بیت سمت راسته این 15 بیت می شه ایندکس .
-----------------
و اینکه ظرفیت هر سطر کش دو بلاک هست چون کش Two-Way بوده، یعنی در هر سطر دو بلاک جای می گیرد، و خوب سوال گفته در هر بلاکی هم 4 کلمه هست پس 2*4=8 می شود.
لینک مرجع