نگاشت مستقیم - نسخهی قابل چاپ |
نگاشت مستقیم - ابراهیم۱ - ۱۳ دى ۱۳۹۱ ۰۵:۴۶ ب.ظ
سلام خسته نباشین مهندسی کامپیوتر ۸۱ یک حافظه اصلی به بزرگیk 256 کلمه ویک حافظه نهان (cash) به بزرگی ۴ بلوک ۴کلمه ای موجود است از روش نگاشت مستقیم استفاده می شود با فرض خالی بودن cash نرخ برخورد در انتهای صدور ادرسهای زیر چیست؟ (شروع) ۱۷۰,۲۵۷,۱۶۸,۲۴۶,۱۷۶,۱۷۵,۱۷۶,۱۷۷,۱۷۵,۱۷۶,۱۷۷,۱۷۵,۱۷۶,۱۷۷,۱۷۶,۱۷۵,۱۷۴,۱۷۳,۱۷۲,۱۷۱,۱۷۰,۱۶۹,۱۶۸,۱۶۷,۱۶۸,۱۶۵,۱۶۴ ۱)۲۷/۲۱ ۲)۲۷/۲۰ ۳)۲۷/۱۰ ۴)۲۷/۹ (جواب گزینه ۱) مگه در نگاشت مستقیم ما ادرسها را اینطوری نگاشت نمی کنیم I :ادرس حافظه اصلی I mod تعداد بلاک کش=I mod 4 پس چرا پوران ان را۱۶ I mod در نظر گرفته؟؟؟؟؟؟؟؟؟؟؟؟ ممنون موفق باشین |
نگاشت مستقیم - armin_b00ter - 14 دى ۱۳۹۱ ۰۱:۱۶ ق.ظ
مطمئن نیستم دارم درست می گم یا نه. ولی فکر می کنم به خاطر اینکه آدرس های داده شده بر حسب شماره ی کلمات داده شده نه شماره بلاک بنابراین اول باید بینیم چه شماره ای بین ۰ تا ۱۵ می گیره و بعد بر اساس اون تصمیم بگیریم کدوم بلاک را وارد کش کنیم. مثلا ۱۷۰ میشه ۱۰ که جز بلاک ۳ میشه بنابراین آدرس های ۱۶۸ ۱۶۹ ۱۷۰ ۱۷۱ رو وارد خونه های ۸ ۹ ۱۰ ۱۱ کش می کنیم. امیدوارم توضیحاتم کافی بوده باشه. |
RE: نگاشت مستقیم - mp1368 - 14 دى ۱۳۹۱ ۰۱:۱۹ ق.ظ
سلام . ببین این که پوران با چه سیستمی حل کرده زیاد مهم نیست اگه خودت بلدی که از همین روش دو مرحله ای استفاده کنی دیگه مهم نیست پوران چکار کرده . من ابتدا روش معمولی خودمون رو با مثال توضیح میدم بعد روش پوران رو هم بررسی میکنیم . برای خونه ۱۷۰ مثال میزنیم : الف ) اول تقسیم ۱۷۰ رو بر ۴ میگیریم تا به بلاک حاوی این بایت توی حافظه اصلی برسیم سپس باقیمانده میگیریم تا به شماره خونه اون برسیم
[tex]170$ div 4 = 42[/tex]
خونه ی ۱۷۰ توی بلاک ۴۲ و خونه ی سوم این بلاک هستش (از ۰ شروع میشه خونه های هر بلاک)[tex]170$ mod 4 = 2[/tex] حالا باید ببینیم این بلاک حافظه که حاوی خونه ی ۱۷۰ هستش به کجای کش نگاشت میشه . باقیمانده بلاک به تعداد بلاک های کش : [tex]42$ mod 4 = 2[/tex]
خب پس بلاک ۴۲ به بلاک سوم کش نگاشت میشه (بلاک های کش از ۰ شروع میشون ) و چون خونه ۱۷۰ خودش سومین خونه ی بلاک بود پس در مجموع میشه خونه ی ۱۰ حافظه کش [attachment=8711] حالا اگه بخوایم روی روش پوران کار کنیم : این اومده دیگه این روال دو مرحله ای ما رو پیش نبرده یعنی ابتدا بلوک حافظه ی اصلی رو پیدا کنه و سپس مکان این بلوک رو توی کش پیدا کنه بلکه مستقیم این دو روال رو با تقسیم عدد به ۱۶ پیدا کرده عکس زیر رو ببین [attachment=8710] پ.ن : واقعا انتقال مفهموم این سوال در قالب متن خیلی سخت بود اگه جایی ابهام داشتی بگو بیشتر توضیح بدم |