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

نسخه‌ی کامل: سوال معماری (حافظه کش)
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام دوستان خسته نباشید.
این سوالات رو کسی میتونه حل کنه واسم ؟

الف ) پردازنده ای دارای حافظه اصلی 64kb باس داده ای 8بیت حافظه کش 2-way است که سایز حافظه کش برابر 1kb میباشد.چنانچه از بلوک های 16b استفاده شود آدرس 334h از حافظه اصلی در کدام قسمت کش نگاشته میشود.
چگونه سایز (Tag | Index | BS ) و هر یک از قسمت های آن BS , Index , Tag رو به دست بیارم.


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

* دوستان شرمنده واجبه : اگه ممکنه مرحله به مرحله توضیح دهید.
با تشکر
سلام سوال الف) با توجه به اینکه حافظه 64 کیلو بایتی هستش آدرسها میشن 16 بیتی ، کش 1 کیلو یابت یا 2^10 هستش که با توجه به بلاکهای 16 بایتی ، 2^ 6 تعداد بلاکها خواهند شد که چون کش دو راهه هستش 2^5 set خواهیم داشت پس تعداد بیت تگ (4+5)-16=7 خواهد شد (5تعداد بیت set و 4 تعداد بیت bs یا همون offset )
اون آدرس هم در ست شماره 19 و بایت چهارم ذخیره می شود.
سوال دومتون رو هم تعدا د بیتهارو دقیق متوجه نشدم.
(12 دى 1393 09:02 ب.ظ)mmamadi49 نوشته شده توسط: [ -> ]سوال دومتون رو هم تعدا د بیتهارو دقیق متوجه نشدم.

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

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

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

اول باید ببینیم ادرس ها چند بیتی هستن طبق توضیحات سوال ادرس ها ۳۲ بیتی هستن که گفته بیت ۰ برای 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]
اما توی فرمت ادرس ما 14 بیت برای ایندکس داریم پس اگر بخواهد مستقیم باشه باید 16 بیت باشه که نیست خوب فهمیدیم 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 هستش
امیدوارم متوجه شده باشید موفق باشید.
خیــــــــــــــــــــــــلی خیلـــــــــــــــــــــــــــــــــــــــــــی تشـــــــــــــــــــــــکر
لینک مرجع