تالار گفتمان مانشت
نگاشت شرکت پذیر مجموعه ای - نسخه‌ی قابل چاپ

نگاشت شرکت پذیر مجموعه ای - zr2358 - 21 بهمن ۱۳۸۹ ۰۸:۳۵ ق.ظ

کسی می تونه این نگاشته رو یه جور واضح واسه من توضیح بده
من خودم توی دور اول که خوندمش تقریبا متوجه شدم ولی الان باز یادم رفت سیستمش چطوریه
فکر می کنم اگه یه شکل مختصر ازش بکشم بهتر می تونم حلش کنم ولی بعضی اوقات با همین کشیدن شکلشم مشکل پیدا می کنم.
فرمولاشم دلم نمیخواد حفظ کنم.
یکی لطف کنه این نگاشت شرکت پذیر مجموعه ای رو واسه من بازش کنه.

مثلا توی این سوال
در یک حافظه نهان شرکت پذیر مجموعه ای با دو بلوک در هر مجموعه (Two-way Set Associative Cache) از بلوک های ۴ کلمه ای استفاده می شود. این حافظه نهان می تواند در مجموع ۲۰۴۸ کلمه از حافظه اصلی را در خود جای دهد. اندازه حافظه اصلی ۱۲۸K کلمه است. برچسب (Tag) در این حافظه چند بیت است؟
۶
۷
۸
۹
جواب ۷ میشه.
اگه یه شکل کوچولو هم ازش بکشید خیلی خوب میشه Big Grin
مرسی

نگاشت شرکت پذیر مجموعه ای - zr2358 - 21 بهمن ۱۳۸۹ ۰۶:۲۹ ب.ظ

دوستان نظرتون رو راجع به این تاپیک بگین. لطفا...

نگاشت شرکت پذیر مجموعه ای - ف.ش - ۲۱ بهمن ۱۳۸۹ ۰۸:۴۱ ب.ظ

من که هرچی از اینها تست حل کردم(جالبه که خیلی هاشو درست میزدم) اما آخرش هم نفهمیدم چی به چیه!!!!

RE: نگاشت شرکت پذیر مجموعه ای - mahdi20 - 21 بهمن ۱۳۸۹ ۰۹:۳۹ ب.ظ

جواب:
راحته حلش .

ببینید شما اول باید تکلیف ۲ تا چیز را مشخص کنید‌: ۱- اندازه حافظه نهان ۲- اندازه حافظه اصلی
با داشتن این دو می تونیم تعداد بیت های مورد نیاز برای آدرس دهی هر کدام را بدست بیاریم.

آدرس تولید شده توسط پردازنده بطور کلی شامل ۲ قسمت میشه‌: tag , Index که خود Index شامل یکسری اجزای دیگه هست که بستگی به نوع حافظه نهان ما داره.

اندازه حافظه اصلی ما ۱۲۸K هستش‌، [tex]n=log(128k)= 17 bits[/tex] اندازه آدرسی که پردازنده تولید می کنه .
خود n با توجه شکل مشخصات حافظه نهان ۳ قسمتی هستش

حافظه نهان ما میتونه ۲۰۴۸ کلمه از حافظه اصلی را در خودش جای بده اما چون هر دو کلمه در یک مجموعه قرار میگیرن بنابرین اندازه حافظه نهان ما برابر ۲۰۴۸/۲ = ۱۰۲۴ میشه . یعنی ۱۰۲۴ مجموعه ۲ کلمه ای که از اندیس ۰ تا ۱۰۲۳ شماره گذاری میشه.

[tex]Index = set word = log(1024) = 10 bits[/tex]

[tex]n = Tag Index = 17 \Rightarrow Tag = 7 bits[/tex]

نگاشت شرکت پذیر مجموعه ای - ف.ش - ۲۱ بهمن ۱۳۸۹ ۰۹:۴۷ ب.ظ

خیلی ممنون Smile

فقط من بعضی جاها که اومده سر خود کلمات رو ۱ بایتی یا ۴ بایتی گرفته و وقتی ۴ بایتی گرفته ۲ بیت هم به byteoffset اختصاص داده رو نمیدونم چه جوریه.

نگاشت شرکت پذیر مجموعه ای - zr2358 - 21 بهمن ۱۳۸۹ ۰۹:۵۳ ب.ظ

ممنونم
tag چی رو مشخص میکنه؟
مگه توی شکلی که کشیدین ۲ تا ستون منظور ۲ تا مجموعه نیست که هر کدون یه tag دارن؟

نگاشت شرکت پذیر مجموعه ای - mahdi20 - 21 بهمن ۱۳۸۹ ۰۹:۵۴ ب.ظ

tag اینو مشخص میکنه که داده ما داخل حافظه نهان هست یا خیر .
طبق شکل هر ردیف شامل ۲ کلمه یا دو تا داده هست( در یک مجموعه )که آدرس یکسان یعنی index یکسان در کش دارند ولی با tag های متفاوت . برای همین ۲۰۴۸ را بر ۲ تقسیم کردیم.

RE: نگاشت شرکت پذیر مجموعه ای - arshad90 - 21 بهمن ۱۳۸۹ ۱۱:۰۵ ب.ظ

گاهی که می گن بلوک مثلا ۴ کلمه ایست، سایز word رو باید ۲ در نظر بگیریم یا اینکه باید سایز هر بلوک رو به بایت تبدیل کنیم بعد مثلا [tex]4*2^{2}[/tex]؟ تو بعضی سوالات به بایت تبدیل کرده تو بعضی دیگه اومده همون تعداد بیت برای word رو در نظر گرفته. چه باید کرد؟Undecided

نگاشت شرکت پذیر مجموعه ای - sepid - 22 بهمن ۱۳۸۹ ۱۲:۳۶ ق.ظ

یعنی ۲۰۴۸کلمه همزمان نمیتونه توی حافظه کش باشه.
و به خاطر همین هم توی آدرسدهی فیلدی برای شماره بلوک گذاشته نمیشه.
درست برداشت کردم دوستان؟
در جواب سوال Arshad90 به نظر من بستگی به این داره که سطح دسترسی در سیستم به بایت باشه یا کلمه.
یعنی اگر قراره تو برنامه روی بایتها کار بشه پس باید به اندازه لگاریتم تعداد بایتهای هر بلوک فیلد اختصاص داده بشه توی آدرس

و اگر قراره به کلمه دسترسی بشه به اندازه لگاریتم تعداد کلمات بلوک فیلد نیاز داریم.

نگاشت شرکت پذیر مجموعه ای - mahdi20 - 22 بهمن ۱۳۸۹ ۱۲:۴۸ ق.ظ

۲۰۴۸ کلمه میتونه همزمان در کش قرار بگیره‌، ولی فقط ما با ۱۰۲۴ آدرس میتونیم اونها را آدرس دهی و بیابیم در نتیجه تعداد بیت ایندکس ما ۱۰ بیت است
در اصل اندازه حافظه نهان ما ۱۰۲۴ مجموعه ۲ کلمه ای هست که میشه ۲۰۴۸ کلمه.

نگاشت شرکت پذیر مجموعه ای - marzieh - 28 آذر ۱۳۹۰ ۱۱:۵۷ ق.ظ

سلام . می دونم این پست دیگه قدیمی شده اما امیدوارم هنوز خواننده داشته باشه... سوالم اینه که‌: در متن سوال گفته شده
(۲۱ بهمن ۱۳۸۹ ۰۸:۳۵ ق.ظ)zr2358 نوشته شده توسط:  با دو بلوک در هر مجموعه (Two-way Set Associative Cache) از بلوک های ۴ کلمه ای استفاده می شود
و در پاسخ گفته شده
(۲۱ بهمن ۱۳۸۹ ۰۹:۳۹ ب.ظ)mohanddes نوشته شده توسط:  چون هر دو کلمه در یک مجموعه قرار میگیرن
.... مفهوم مجموعه یا همون set چیه دقیقا؟ در یک مجموعه ۲ کلمه قرار می گیرد یا در یک مجموعه ۲ بلوک که هر کدوم ۴ کلمه دارند قرار می گیرد؟؟
از طرح این سوال و پاسخش بسیار ممنونم ..