انواع روشهای پیادهسازی حافظه نهان (Cache)
توضیحات
در جلسه بیست و سوم معماری کامپیوتر دکتر حقیقت ویژه کنکور کامپیوتر در مقاطع کارشناسی ارشد و دکترا با عنوان «انواع روشهای پیادهسازی حافظه نهان (Cache)»، سومین جلسه از فصل چهارم درس معماری (فصل سازمان حافظه) تدریس میشود. در این جلسه سه روش پیادهسازی Cache با جزئیات کامل مورد بحث و بررسی قرار میگیرند: 1) نگاشت مستقیم (Direct Map) 2) انجمنی (Associative) 3) مجموعه انجمنی (Set Associative). ابتدا روش نگاشت مستقیم شرح داده میشود و نشان داده میشود که در این روش، بلوکها را به صورت Modular یا گردشی در Cache قرار داده میشوند. سپس 1 تست در رابطه با این محاسبه Index در روش نگاشت مستقیم مطرح شده و حل تشریحی آن ارائه میگردد. سپس مفاهیم بیت اعتبار، Tag (و علت استفاده از آن به جای شماره Block) و نحوه عملکرد CCU و چگونگی به دست آوردن #W و Index و Tag در روش نگاشت مستقیم شرح داده میشود. آنگاه مشکل Overwrite بلوکهای هم ایندکس با یک مثال شرح داده میشود. سپس با یک مثال دیگر جزئیات این روش با رویکرد حل مسائل تشریح میگردد. آنگاه مزایا و نقطه ضعف این روش شرح داده شده و دفاعیه طرفداران این روش و ایراد سستمعاملی این دفاعیه توضیح داده میشود. پس از آن روش حافظه نهان انجمنی (Associative Cache) تشریح میگردد. بحث CAM و TCAM که بیانگر عبارت «حافظه قابل آدرس دهی با محتوا» (Content Addressable Memory) است با جزئیات ریز شرح داده میشود و علت نیاز به جستجو در CAM به طور موازی (Parallel Search) شرح داده میشود. نکات کنکوری سختافزار CAM تشریح شده و ضمن توضیح دادن عملکرد CCU و سیستم Cache در یافتن بخشی از محتوا و ارائه بقیه محتوا، مشکلات مربوطه بررسی میگردد. سپس الگوریتمهای جایگزینی مانند Optimal و LRU و روشهای پیادهسازی LRU (شمارنده 64 بیتی و روش استفاده از Rank یا Timestamp) و نقاط ضعف آن تشریح میگردد. در انتها نوبت به روش حافظه نهان مجموعه انجمنی (Set Associative Cache) میرسد که ترکیب Direct Map با Associative است. این روش مشکل Direct Map که Overwrite روی بلوکهای هم Index است را با امکان بارگذاری دو یا چند بلوک هم Index در یک مجموعه (set) از بلوک ها با امکان جستجوی موازی (انجمنی) برطرف میکند. همچنین مشکل روش Associative که سخت افزار بزرگ، حجیم و پر مصرف و گران قیمت نیاز دارد را نیز برطرف میکند. چون جستجوی موازی و سخت افزاری LRU را روی مجموعه (set) نسبتاً کوچکی از بلوک ها انجام میدهد نه کل بلوک های cache. سپس چند مثال در مورد 2way Set Associative Cache و k way Set Associative Cache (برای تعداد راههای مختلف) مطرح و نحوه محاسبه #Block و Tag و #Set و مزایا و معایب این روش و کاربردهای آن شرح داده میشود.