تالار گفتمان مانشت
سوال معماری (حافظه کش) - نسخه‌ی قابل چاپ

سوال معماری (حافظه کش) - hosseintv - 12 دى ۱۳۹۳ ۰۸:۳۴ ب.ظ

سلام دوستان خسته نباشید.
این سوالات رو کسی میتونه حل کنه واسم ؟

الف ) پردازنده ای دارای حافظه اصلی ۶۴kb باس داده ای ۸بیت حافظه کش ۲-way است که سایز حافظه کش برابر ۱kb میباشد.چنانچه از بلوک های ۱۶b استفاده شود آدرس ۳۳۴h از حافظه اصلی در کدام قسمت کش نگاشته میشود.
چگونه سایز (Tag | Index | BS ) و هر یک از قسمت های آن BS , Index , Tag رو به دست بیارم.


ب ) سایز حافظه کش ۵۱۲kw فرمت آن به شکل زیر است از چه روش انتقال اطلاعاتی در رابطه با این کش استفاده شود؟(direct or k-way)
bit 0=bs | bit 1-3=ws | bit 18-31=tag

* دوستان شرمنده واجبه : اگه ممکنه مرحله به مرحله توضیح دهید.
با تشکر

RE: سوال معماری (حافظه کش) - mmamadi49 - 12 دى ۱۳۹۳ ۰۹:۰۲ ب.ظ

سلام سوال الف) با توجه به اینکه حافظه ۶۴ کیلو بایتی هستش آدرسها میشن ۱۶ بیتی ، کش ۱ کیلو یابت یا ۲^۱۰ هستش که با توجه به بلاکهای ۱۶ بایتی ، ۲^ ۶ تعداد بلاکها خواهند شد که چون کش دو راهه هستش ۲^۵ set خواهیم داشت پس تعداد بیت تگ (۴+۵)-۱۶=۷ خواهد شد (۵تعداد بیت set و ۴ تعداد بیت bs یا همون offset )
اون آدرس هم در ست شماره ۱۹ و بایت چهارم ذخیره می شود.
سوال دومتون رو هم تعدا د بیتهارو دقیق متوجه نشدم.

RE: سوال معماری (حافظه کش) - hosseintv - 13 دى ۱۳۹۳ ۱۱:۵۳ ق.ظ

(۱۲ دى ۱۳۹۳ ۰۹:۰۲ ب.ظ)mmamadi49 نوشته شده توسط:  سوال دومتون رو هم تعدا د بیتهارو دقیق متوجه نشدم.

تشکر بابت پاسختون!

سوال ذوم اینو بیان میکنه که
سایز حافظه کش ۵۱۲kw فرمت آن به شکل زیر است از چه روش انتقال اطلاعاتی در رابطه با این کش استفاده شود؟(direct or k-way)
بیت ۰آدرس بایت سلکت | بیت ۱تا۳ ورد سلکت و بیت ۱۸ تا ۳۱ مربوط به تگ هست.

-----------------
اگه ممکنه بگید که هر قسمت از آدرس(تگ آفست و ایندکس) از چه فرمولی به دست میاد.تعداد بیت های آدرس از سایز حافظه مثلا ۶۴K=2^16 به دست میاد که میشه ۱۶بیت حالا از این ۱۶ بیت از چه روشی تعداد بیت های تگ | تعداد بیت ایندکس | تعداد بیت آفست رو تشخیص بدم(سوال اول)

RE: سوال معماری (حافظه کش) - hosseintv - 15 دى ۱۳۹۳ ۰۲:۳۵ ق.ظ

کسی نیست؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

RE: سوال معماری (حافظه کش) - Hamid_0311 - 15 دى ۱۳۹۳ ۱۰:۳۵ ق.ظ

با سلام ببینید دوست عزیز اینطوری حل می کنیم

اول باید ببینیم ادرس ها چند بیتی هستن طبق توضیحات سوال ادرس ها ۳۲ بیتی هستن که گفته بیت ۰ برای byte خوب کاری بهش نداریم
از بیت ۱ تا ۳ گفته برای کلمه هست یعنی چند بیت؟ ۳ بیت پس تا اینجا فهمیدیم اندازه هر بلاک برابر ۸ هست (با ۳ بیت چند تا حالت میشه ایجاد کرد [tex]2^3=8[/tex] ) خوب گفته از بیت ۱۸ تا ۳۱ مربوط به tag هستش خوب یعنی از بیت ۴ تا ۱۷ مربوط به قسمت ایندکس هستش خوب توی سوال گفته کل کلمات کش برابر ۵۱۲k هستش یعنی تعداد کلماتی که توی کش جا میگیرن چندتا است؟
[tex]2^9\: \ast\: 2^{10}=2^{19}[/tex] تا کلمه
گفتیم از ادرس ۴ تا ۱۷ هم همون ایندکس هست که اگر حافظه مستقیم باشه میشه تعداد بلاک های کش و اگر x-way باشه میشه تعداد set یا مجموعه خوب ما اندازه بلاک که به دست اوردیم تعداد کل کلمات بلاک هم داریم و از ادرس ۴ تا ۱۷ هم یعنی ۱۴ بیت برای ایندکس داریم پس اگر مستقیم باشه باید تعداد بلاک بشه [tex]2^{14}[/tex] چرا چون ۱۴ بیت برای ایندکس داریم اگر نشه پس باید x-way بشه

خوب اندازه بلاک که داریم تعداد کلمه هم داریم بیایم تعداد بلاک به دست بیاریم ببینم چند میشه (تعداد کلمات بلاک تقسیم بر اندازه بلاک تعداد بلاک کش میده)
[tex]\frac{2^{19}}{2^3}\: =\: 2^{16}\: [/tex]
خوب پس فهمیدیم که مستقیم نیست چرا چون شد
[tex]2^{16}[/tex]
اما توی فرمت ادرس ما ۱۴ بیت برای ایندکس داریم پس اگر بخواهد مستقیم باشه باید ۱۶ بیت باشه که نیست خوب فهمیدیم x-way هست حالا می خوایم ببینید این x چی هست


[tex]2^{14}[/tex] برابر تعداد Set
تعداد مجموعه چطوری به دست میاد؟ تعداد بلاک های کش تقسیم بر x-way میشه تعداد set
خوب ما تعداد بلاک که بالا به دست اوردیم تعداد مجموعه هم که به دست اوردیم میمونه X که با یه جایگذاری میشه به دستش اورد
[tex]\frac{2^{16}}{x-way}\: =\: 2^{14}[/tex]

پس داریم

[tex]\frac{2^{16}}{2^{14}}\: =x-way\: =\: 2^2[/tex]

که میشه ۴-way پس حافظه کش از نوع ۴-way هستش
امیدوارم متوجه شده باشید موفق باشید.

RE: سوال معماری (حافظه کش) - hosseintv - 15 دى ۱۳۹۳ ۰۴:۳۲ ب.ظ

خیــــــــــــــــــــــــلی خیلـــــــــــــــــــــــــــــــــــــــــــی تشـــــــــــــــــــــــکر