موضوع مقاله: دستورالعمل کنترل کش | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # دستورالعمل کنترل کش | مقدمه: در رایانش ، یک دستورالعمل کنترل حافظه نهان اشاره ای است که در جریان دستورالعمل یک پردازنده تعبیه شده است که برای بهبود و توسعه عملکرد سخت افزار حافظه پنهان ، با استفاده از دانش قبلی از الگوی دسترسی به حافظه درنظر گرفته شده توسط برنامه نویس یا کامپایلر ، در نظر گرفته شده است. | ## بخش 1: دستورالعمل کنترل کش | این دستور العمل ها میتوانند آلودگی حافظه پنهانرا کاهش دهند، نیاز به پهنای باند را کاهش دهند و یا با ارائه کنترل بهتر بر مجموعه کاری ، تاخیرها را دور بزنند. اکثر دستورالعمل های حافظه نهان بر معنا و تفسیر برنامه ها تاثیری ندارند اما برخی از آنها ممکن از تاثیراتی داشته باشند. واکشی اولیه همچنین به عنوان بلوک حافظه پنهان داده تاثیر، درخواست برای بارگیری و دریافت خط حافظه نهان مرتبط با یک آدرس تعیین شده می باشد. برخی دستورالعمل ها، سطوح بالاتر سلسله مراتب کش را دور می زنند، که برای مثال در زمینه "جریان" برای داده هایی که حداقل یک بار عبور کرده اند ، بجای نگه داری آنها در مجموعه کار مفیدی است. واکشی اولیه باید به میزان کافی سریع تر در زمان انجام شود تا تأخیر دسترسی به حافظه را کاهش دهد، برای مثال یک حلقه که به صورت خطی از حافظه عبور می کند. بلوک حافظه نهان داده صفر را تخصیص می دهد این اشاره برای تهیه خطوط حافظه نهان قبل از دوباره نویسی مطالب به صورت کامل استفاده می شود. اثر معنایی معادل یک مدیریت رشته در C تراز شده از یک بلوک به اندازه خط کش تا صفر است، اما این عملیات به طور موثر رایگان است. | ## بخش 2: دستورالعمل کنترل کش | بلوک حافظه پنهان داده نامعتبر است از این اشاره برای حذف خطوط حافظه نهان استفاده می شود، بدون اینکه محتویات آنها به حافظه اصلی سپرده شود. برای جلوگیری از نتایج نادرست در استفاده از این دستورالعمل باید مراقبت کافی وجود داشته باشد. فلاش بلوک کش داده ها این اشاره درخواست تخلیه بلافاصله و فوری یک خط حافظه نهان را دارد و راه را برای تخصیص های آینده باز می کند. از این دستورالعمل زمانی استفاده می شود که مشخص شود داده ها دیگر بخشی از مجموعه کاری نمی باشند. نکات دیگر برخی از پردازنده‌ها از انواع دستورالعمل‌های load-store پشتیبانی می‌کنند که به اشاره گر های حافظه پنهان نیز اشاره دارد. یک مثال load last در مجموعه دستورالعمل PowerPC است که نشان می دهد داده ها فقط یک بار استفاده می شوند، به عنوان مثال، خط حافظه نهان مورد نظر ممکن است به سر صف حافظه تخلیه افزوده شود، حال با این کار در صورت نیاز مستقیم آنرا میتواند به راحتی استفاده کند. جایگزین، گزینه ها پیش واکشی خودکار اخیرا، دستورالعمل‌های کنترل حافظه پنهان کمتر محبوب شده‌اند، زیرا معماری ها و طراحی های پیشرفته‌تر پردازنده‌های برنامه‌های کاربردی از اینتل و ARM ، ترانزیستورهای بیشتری را به کدهای شتاب‌دهنده نوشته شده به زبان‌های سنتی اختصاص می‌دهند، به عنوان مثال، اجرای پیش واکشی خودکار، با سخت‌افزاری برای تشخیص الگو های دسترسی در پرواز به صورت خطی. | ## بخش 3: دستورالعمل کنترل کش | با این حال، این تکنیک‌ها ممکن است برای پردازنده‌های توان‌محور، که دارای توان مبادله متفاوتی از توان مقاومتی و تاخیر هستند، معتبر باقی بمانند، و ممکن است ترجیح دهند منطقه بیشتری را به واحدهای اجرایی اختصاص دهند. واکشی برداری پردازنده‌های برداری (برای مثال واحد پردازش گرافیکی مدرن (پردازنده مرکزی) و Xeon Phi ) از موازی‌سازی بسیار بزرگی برای دسترسی به توان عملیاتی بالا در حین کار بر روی تأخیر حافظه (کاهش نیاز به واکشی اولیه) استفاده می‌کنند. در بسیاری از عملیات ها خواندن به صورت موازی برای فراخوانی های بعدی در یک هسته محاسباتی صادر می شوند. محاسبات ممکن است در انتظار داده های بعدی به حالت تعلیق درآیند و متوقف شوند، در این حین واحدهای اجرا شونده به کار بر روی داده های درخواست داده شده گذشته که از قبل بارگذاری شده بود میپردازند. این کار طبیعتا برای برنامه نویسان آسان تر است اگر که در ارتباط با مدل های برنامه نویسی مناسب از ( هسته های محاسباتی ) استفاده کنند، اما اعمال کردن این مدل ها برای برنامه نویسان در حالت کلی در زبان های برنامه نویسی کار دشواری است. | ## جمع‌بندی | نقطه ضعف در این است که در بسیاری از کپی‌های حالت‌های موقتی ممکن است در حافظه محلی یک عنصر پردازشی نگهداری شوند که در انتظار داده‌ها برای اجرا هستند.