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

نسخه‌ی کامل: سوال ۷۱ كنكور مهندسي کامپیوتر سال ۹۰
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
حافظه نهان یک سیستم کامپیوتری از نوع set-associative است.اگرتعداد مجموعه های 4بلوکی حافظه نهان 32 باشد و تعدادبلوکهای حافظه اصلی 1k برابر حافظه نهان باشد. تعداد بیتهای فیلد tag چیست؟؟؟؟Huh
به نظر من tag=10bit هست اما توضیحی که در کتاب مقسمی اورده شده tag=12bit شده و بی خیال تعداد بیت برای بلوک شده ظاهرا.نظردوستان؟؟؟؟Confused
با فرض:
[tex]2^c[/tex] کلمه در cache
[tex]2^m[/tex] کلمه در حافظه
[tex]2^w[/tex] کلمه در هر بلاک
[tex]2^t-way[/tex] بودن Cache در نگاشت Set Associative برای فرمت هر سطر از کش داریم:
w بیت برای برای محل word در block
c-w-t بیت برای شماره set
m-c+t بیت برای tag

در سوال داده شده "تعداد بلوکهای حافظه اصلی ۱k برابر حافظه نهان باشد" که یعنی تعداد خونه های حافظه ۱k برابر خونه های کش هست که می تونیم بگیم:
[tex]2^m/2^c=2^1^0[/tex]
که معادل با:
[tex]m-c=10[/tex]
از طرف دیگه گفته شده "مجوعه های ۴ بلوکی" که به ۴way بودن Cache اشاره میکنه و این یعنی:
t = 2

m-c+t = 10 + 2 = 12

این راه حل تشریحیش. البته امکان داره اشتباه کنم.
(22 دى 1390 01:33 ق.ظ)goldoonehkhanoom نوشته شده توسط: [ -> ]حافظه نهان یک سیستم کامپیوتری از نوع set-associative است.اگرتعداد مجموعه های ۴بلوکی حافظه نهان ۳۲ باشد و تعدادبلوکهای حافظه اصلی ۱k برابر حافظه نهان باشد. تعداد بیتهای فیلد tag چیست؟؟؟؟Huh
به نظر من tag=10bit هست اما توضیحی که در کتاب مقسمی اورده شده tag=12bit شده و بی خیال تعداد بیت برای بلوک شده ظاهرا.نظردوستان؟؟؟؟Confused

فکر میکنم مشکل شما اینه که برای بلاکها هم بیت در نظر گرفتی درحالیکه نباید برای بلوکها بیت در نظر بگیرید چون برای بلوک‌ها در این نوغ حافظه بیت در نظر گرفته نشده
از طرف دیگه هم برای تشخیص تعداد way‌ها باید بدونیم هر way یک بلوک داره پس این کش 4-way هست
این دو نکته رو بدونیم میشه به راحتی جوابو بدست اورد
بالاخره تعدادی بیت برای این درنظرگرفته میشه که بخواهیم به بلوک موردنظر در set مربوطه دسترسی پیداکنیم.مثلااگه در 2_way در هر ست 8تاکلمه جابگیره.پس 3 بیت اختصاص به word میدیم.نه؟؟؟؟؟همش که به tag و set داده نمیشه.درسته؟؟؟؟
درجواب shervinrs جان میتونم اینوبگم که تعدادبیتی که به set اختصاص پیدامیکنه براساس تعداد set هامون هست، نه براساس اینکه 4way هست.بایدتعدادبلوکهامونوبدست بیاریم و حالا ببینیم با توجه به 4way بودن،چه تعداد set داریم.درسته؟؟؟
نقل قول: درجواب shervinrs جان میتونم اینوبگم که تعدادبیتی که به set اختصاص پیدامیکنه براساس تعداد set هامون هست، نه براساس اینکه ۴way هست.بایدتعدادبلوکهامونوبدست بیاریم و حالا ببینیم با توجه به ۴way بودن،چه تعداد set داریم.درسته؟؟؟
4way یعنی در هر set ما 4 بلاک داریم. در این سوال تعداد set‌ها رو (32 تا) خودش داده.
1)من این تیکه ازسوال و متوجه نمیشم-------->>>>>تعداد بلوکهای حافظه اصلی ۱k برابر حافظه نهان باشد(این جمله)
2)فرمت ادرسمون چجوری شده17بیت؟؟؟؟
3)5بیت به set اختصاص داده میشه.پس word چی؟؟؟هیچ توضیحی در مورد word داده نشده توی سوال؟؟؟؟
توضیح بدین واسم.حسابی گیج شدمSad
نقل قول: ۱)من این تیکه ازسوال و متوجه نمیشم-------->>>>>تعداد بلوکهای حافظه اصلی ۱k برابر حافظه نهان باشد(این جمله)
یعنی حافظه ما ۱k برابر کش ماست. یعنی:
[tex]2^m/2^c=2^1^0[/tex]
اگر نگاشت Direct Map بود همینجا میشد گفت که پس ۱۰ بیت برای tag می خوایم. اما چون Set Associative نیاز به ۲ بیت دیگه (برای چهار بلاک در هر set) داریم تا مشخص کنیم که منظورمون کدوم بلاک در یک set.

نقل قول: ۲)فرمت ادرسمون چجوری شده۱۷بیت؟؟؟؟
۱۷ بیت نیست. (همین اشتباه رو خودم صبح کردم)
[tex]2^1^7[/tex] تا بلاک در حافظه داریم.
ما اختلاف m-c رو داریم. اما نمی دونیم که خود m چنده.

نقل قول: ۳)۵بیت به set اختصاص داده میشه.پس word چی؟؟؟هیچ توضیحی در مورد word داده نشده توی سوال؟؟؟؟
در مورد تعداد word‌ها صحبتی نشده، چون برای محاسبه تعداد بیت های tag در Direct Map و Set Associative نیازی به دونستن اینکه هر بلاکی چند کلمه است نداریم. برای همینم گزینه چهار این سوال تعریف شده (که با این اطلاعات نمیشه به این سوال پاسخ داد) تا بیشتر باعث گیج شدن بشه که چرا اندازه کلمه رو نداریم.

امیدوارم اشتباه نکرده باشم. (خودمم دارم قاطی می کنم Smile)
(22 دى 1390 01:33 ق.ظ)goldoonehkhanoom نوشته شده توسط: [ -> ]حافظه نهان یک سیستم کامپیوتری از نوع set-associative است.اگرتعداد مجموعه های ۴بلوکی حافظه نهان ۳۲ باشد و تعدادبلوکهای حافظه اصلی ۱k برابر حافظه نهان باشد. تعداد بیتهای فیلد tag چیست؟؟؟؟Huh
به نظر من tag=10bit هست اما توضیحی که در کتاب مقسمی اورده شده tag=12bit شده و بی خیال تعداد بیت برای بلوک شده ظاهرا.نظردوستان؟؟؟؟Confused
تو حافظه های مجموعه ایی ما برای نگاشت آدرس باید مشخص کنیم تو کدوم مجموعه (set) و کدوم کلمه در بلاک های داخل مجموعه و همین طور اگه کلمات بیشتر از 1 بایت باشن باید تعداد بیت برای اونها(مشخص کردن بایت های کلمه) رو هم در نظر بگیریم و بقیه بیت‌ها میشه مال tag

پس باید بدنیم چندتا مجموعه داریم و در هر بلاک چند کلمه و هر کلمه چند بایت؟ چیزی که واسمون مهم نیست تعداد بلاک هاست

چون گفته که حافظه‌ی اصلی 1k بزرگتره پس کل ظرفیت کل حافظه میشه:

[tex]32 *4*1K =2 ^{5}*2 ^{2}*2 ^{10}=2 ^{17}[/tex]

که تعداد بیت آدرسمون میشه 17 بیت.

ما در صورتی میتونیم بگیم که 17 بیت برای کل حافظه در نظر میگیریم که هر کلمه رو یک بایت در نظر بگیریم و هر بلاک رو یک کلمه چون در غیر این صورت باید تعداد بیت واسه آدرسمون بیشتر از این باشه.
و چون تو سوال هیچی در مورد تعداد کلمات داخل بلاک و تعداد بایت های یک کلمه نگفته همه‌ی اونها رو 1 در نظر میگیریم.

تو این سوال تعداد مجموعه‌ها مشخصه --->32 یعنی
[tex]2 ^{5}[/tex]
پس 5 بیت واسشون کنار میذاریم.

طبق اونچه که اول گفتم فقط از آدرس تعداد بیت مربوط به set و تعداد کلمات داخل بلاک رو کم میکنیم
تعداد کلمات داخل بلاک 1 هست یعنی: [tex]2 ^{0}[/tex]
پس بیتی برای اون در نظر نمیگیریم.
همین طور با توجه به اینکه سوال از تعداد بایت کلمه هم صحبت نکرده پس اونم میشه کلمه هم 1 بایتی هست که بازم میشه: [tex]2 ^{0}[/tex] و بیتی براش در نظر نمیگیریم.
در نتیجه از 17 بیت فقط 5 بیت مربوط به مجموعه‌ها و بقیه (12 بیت) مربوط به tag
یک بار صفحه 200 کتاب پورانو خوب بخونید
در نگاشت انجمنی مجموعه ای هیچ بیتی برای تشخیص بلاک در نظر گرفته نشده و فرمت دستور به شکل‌: tag|set|word هست و از طرفی هم به وسیله k-way میتوان متوجه شد در هر ست k بلاک وجود داره
حالا تو این سوال هیچ صحبتی از تعداد word در هر بلاک نشده و فکر میکنم برای سوالاتی که در مورد تعداد word در بلاک صحبت نشده باید تعداد word در بلاکو یک در نظر بگیریم پس بیتی برای تشخیص word احتیاج نداریم
بر اساس این قسمت سوال که گفته شده "تعداد مجموعه های ۴بلوکی حافظه نهان ۳۲ باشد و تعدادبلوکهای حافظه اصلی ۱k برابر حافظه نهان " میتونیم بدست بیاریم که تعداد بیتهای ادرس حافظه برابر17 هست -----> 10^2 * 5^2 * 2^2 = 17^2
و میدونیم که 32 ست داریم پس 5 بیت برای ست باید در نظر بگیریم وبرای word هم بیتی لازم نیست پس:
17 = tag + 5 + 0 پس تعداد بیت tag هم برابر 12 میشه
در ضمن چون گفته شده در هر ست 4 بلاک هست پس کش 4-way هست
منم خودم این تست رو مشکل داشتم ولی بالاخره حلش کردمSmile
[تصویر:  attachment.php?aid=2371]
مهندسی فناوری اطلاعات سال ۸۵ یک تست داره در مورد تفاوت های این حافظه‌ها بسیار زیباست و به لحاظ مفهومی کمک کننده . اگه دارید حتما نگاش بندازید
لینک مرجع