عبارت «حافظه کش» (Cache) را حتما خیلی شنیدهاید. مثلا کش مرورگر وب نوعی حافظه محلی در مرورگر میباشد که از آن برای بازگرداندن منابعی که قبلا به آنها دسترسی داشتهاید، استفاده میشود. حافظه کش برای برنامهها نیز وجود دارد و باعث میشود که حتی در حالت آفلاین، مواردی که توسعهدهنده مشخص کرده است، در دسترس کاربران قرار بگیرد. کش سرور نیز مانند کش مرورگر است، با این فرق که دادهها را بهجای ذخیره محلی در سمت سرور نگه میدارد. خیلی از متخصصان فناوری اطلاعات برای دسترسی راحتتر کاربر به دادههای کلیدی و مهم از حافظه کش (حافظه پنهان / Cache) استفاده میکنند. اگر میخواهید به شکل تخصصیتر بدانید که حافظه cache چیست و چه کاربردی دارد، نمایندگی ایسوس این مقاله را برای شما نوشته است.
حافظه کش چیست؟
حافظه پنهان یا همان حافظه کش، یک بخش سخت افزاری یا نرم افزاری است که در حافظه برنامه یا دستگاه تعبیه شده و به شکل خودکار و موقت، دادههای مصرف شده به وسیله کاربر را ذخیره میکند تا وقتی مجددا به برنامه یا دستگاه احتیاج داشت، زمان و تلاش بازیابی دادهها کاهش پیدا کند. حافظه کش، یک نوع متوسط از حافظه سریع میباشد که برای بهبود کارایی دادههای تکراری استفاده میشود. CPU، اپلیکیشنها، موتورهای جست و جو و سیستم عاملها، همگی از حافظه پنهان بهره میبرند.
پردازنده که اطلاعات را از نرمافزار روی دسکتاپ، لپ تاپ، گوشی هوشمند یا تبلت شما پردازش میکند، کش مخصوص به خود را نیز دارد. ناگفته نماند که این حافظه پنهان، یک بلوک فشرده است که برای کمک به سی پی یو در ریکاوری دادههایی که اغلب به آنها دسترسی دارند، طراحی شد.
حافظه کش چگونه کار میکند؟
یک کش، معمولاً بخشی از اطلاعات را به شکل موقت در ازای ظرفیت ذخیره میکند. زمانی که سرویس گیرنده این حافظه تلاش میکند تا دادهها بازیابی شوند، ابتدا حافظه کش مورد بررسی قرار میگیرد. اگر اطلاعات در کش وجود داشته باشند، به آن cache hit میگویند. علاوه بر این، اطلاعاتی که در حافظه پنهان قرار ندارند، از حافظه اصلی گرفته شده و در بخش نهان قرار میگیرند؛ این اتفاق به عنوان از دست رفتن حافظه پنهان شناخته میشود. اینکه چگونه این کار انجام میشود و چه دادههایی از حافظه کش بیرون میآیند تا فضایی برای دادههای جدید بسازد، توسط الگوریتمهای کش، مکانیسمها و مقررات سیستم تعیین خواهد شد.
کاربردهای کش نرم افزار چیست؟
کش سی پی یو، تصویری از کش سخت افزاری محسوب میشود. این حافظه، بخش کوچکی از فضای ذخیرهسازی در CPU سیستم به حساب میآید که دستورالعملهای اساسی سیستم را مورد استفاده قرار میدهد. علاوه بر این، خیلی از اپلیکیشنها و نرمافزارها از حافظه کش خود استفاده میکنند. به طور خلاصه، این کش، اطلاعات، فایلها و دستورالعملهای مربوط به یک برنامه کاربردی را برای بازیابی سریع ذخیره خواهد کرد.
مرورگرهای وب، یک تصویر عالی از کش اپلیکیشنها هستند. همانطور که قبلاً هم گفتیم، هر مرورگر، کش مخصوص به خود را دارد که دادههای قبل را برای استفاده بعدی شما حفظ میکند. اگر شخصی بخواهد یک ویدئوی یوتیوب را دوباره از همان مرورگر مشاهده کند، آن عمل سریعتر بارگیری میشود؛ زیرا مرورگر آن را از فضای ذخیرهسازی که در آخرین جلسه ذخیره شده بود، بالا میآورد.
طراحی سیستم کش
در یک محیط توزیع شده، یک لایه ذخیرهسازی تخصصی به اپلیکیشنها و سیستمها اجازه میدهد تا آزادانه، بدون دخالت و نفوذ حافظه کش، با چرخههای عمر خود کار کنند. کش یک لایه اصلی است که امکان دارد توسط خیلی از سیستمها قابل دسترس باشد و هر یک از طول عمر و توپولوژی معماری خاص خود بهره ببرند. اگر حافظه پنهان در همان گره برنامهها یا سیستمهایی باشد که از آن استفاده میکنند، مقیاسگذاری امکان دارد یکپارچگی کش را به خطر بیندازد.
علاوه بر این، حافظه کش، قسمتی را صرفاً برای برنامههای محلی تقویت میکند که اطلاعات هنگام استفاده از آن بهره ببرند. برای معماری یک کش توزیع شده، اطلاعات امکان دارد روی سرورهای متعدد پراکنده شده و برای راحتی تمام مصرفکنندگان، در مرکز حافظه ذخیره شوند. زمان ساخت یک ردیف کش، درک قابلیت اطمینان دادهها ضروری میشود؛ یک کش موفق دارای نرخ ضربه بالایی میباشد که نشان میدهد اطلاعات در هنگام ریکاوری وجود داشتهاند.
از دست دادن حافظه کش هنگامی اتفاق میافتد که دادههای درخواستی در آن وجود نداشته باشد. عامل دیگری که باید بررسی شود این است که آیا محیط کش نیاز به در دسترس بودن بالا دارد یا نه؛ که موتورهای درون حافظه، بتوانند آن را فراهم سازند. در بعضی شرایط، یک لایه درون حافظه امکان دارد برای ذخیره اطلاعات جداگانه به جای کش کردن دادهها از مکان اصلی استفاده کند.
معرفی 10 نوع کش
حافظه کش، سریع و گران است. این حافظه به شکل سنتی، به عنوان سطوح طبقهبندی میشود که نزدیکی و دسترسی آن به ریزپردازنده را توصیف میکند؛ این حافظه، 10 نوع دارد که در ادامه آنها را بررسی میکنیم:
کش L1
کش L2
کش L3
کش نقشه کشی شده با استفاده از MCDRAM
کش کاملاً انجمنی
کش دیسک
حافظه پنهان دائمی
حافظه پنهان فلش
کش مرورگر و برنامه
تمام این حافظههای پنهان، وظیفههای متفاوت و مجزایی دارند و هر کدام را میتوان به شکل جدا، توضیح داد و توصیف کرد.
کش L1
L1 یک حافظه گنجانده شده در پردازنده و شایعترین نوع کش به حساب میآید. اندازه حافظه نهان L1 با توجه به پردازنده کامپیوتر بین 2 تا 64 کیلوبایت تفاوت خواهد داشت. دستورالعملهای لازم پردازنده ابتدا در حافظه پنهان L1 جستجو میشوند.
کش L2
کش سطح 2 که به آن حافظه نهان ثانویه نیز میگویند، اغلب بزرگتر از L1 است. حافظه نهان آن امکان دارد در تراشه، یا در یک سی پی یو و پردازنده کمکی مستقل متصل شود. این کش، با استفاده از حافظه نهان و CPU، یک گذرگاه سیستم جایگزین با فرکانس بالا را به یکدیگر متصل میکند؛ بنابراین، با ازدحام نرم افزارهای سیستم، سرعت آن کاهش نخواهد یافت.
کش L3
کش سطح 3 یک حافظه سفارشی به حساب میآید که برای افزایش سرعت L1 و L2 طراحی شده است. حافظههای L1 و L2 ممکن است بسیار سریعتر از L3 ظاهر شوند، در صورتی که L3 اغلب دو برابر بیشتر از DRAM سرعت دارد. هر هسته از یک سی پی یو چند هستهای امکان دارد حافظه نهان L1 و L2 خود را داشته باشد و آنها میتوانند حافظه نهان L3 را با یکدیگر ترکیب کنند.
کش نقشه کشی شده با استفاده از MCDRAM
یک کش با نقشه مستقیم، از یک شیوه ساده پیروی میکند. هر آدرس در این حافظه اصلی، دقیقاً به یک بلوک ترجمه میشود. DRAM چند کاناله یا کش MCDRAM، ابزاری کاربردی برای افزایش پهنای باند حافظه محسوب میشود و به عنوان یک کش حافظه عمل میکند. ممکن است که MCDRAM به شکل پویا، مطالب پر استفاده را ذخیره کند و پهنای باند بیشتری نسبت به حافظه DDR ارائه دهد.
کش کاملاً انجمنی
کش کاملاً انجمنی، نوع دیگری از حافظه پنهان به حساب میاید که به بلوک حافظه اصلی که آزادانه در دسترس هستند، اجازه ارتباط کامل با تمام آدرسهای حافظه را میدهد. این نوع کش، به شکل قابل توجهی، از میزان خطا میکاهد و به عنوان یک پیادهسازی پیچیده از حافظه پنهان در نظر گرفته میشود.
کش دیسک
این مدل از کش، یک کپی از هر اطلاعات ساکن رم را که شما تغییر میدهید، ذخیره و تولید میکند. به طور معمول، کل پوشه به این دلیل که ممکن است شما به قسمتی از اطلاعات نیاز داشته باشید در حافظه کش ذخیره میگردد؛ بنابراین برای دسترسی به یک فایل برای بار اول ممکن است زمان بسیار بیشتری صرف کند.
حافظه پنهان دائمی
حافظه پنهان دائمی، به فضای ذخیرهسازی مربوط میشود و در آن، اطلاعات هنگام راهاندازی مجدد یا خرابی سیستم حضور پیدا میکنند. بکاپگیری برای ایمن کردن اطلاعات با یک باتری به عنوان محافظ اضافی در برابر از دست دادن اطلاعات منتقل میگردد.
حافظه پنهان فلش
این حافظه که نام دیگر آن کش درایو حالت جامد میباشد، از تراشههای حافظه فلش NAND(فناوری ذخیره کردن غیر فرّار) برای ذخیره سازی موقت اطلاعات استفاده میکند. حافظه پنهان فلش خیلی سریعتر از یک هارد معمولی به درخواستهای داده پاسخگو است.
کش مرورگر و برنامه
مرورگرهای وب، بخشهای متفاوت وبسایتها از جمله تصاویر، جاوا اسکریپت و پرسشها را روی دیسک سخت ذخیره میکنند. اگر تاریخچه مرورگر شما از بخش تنظیمات قطع شده باشند، این حافظه توانایی تعیین میزان فضای ذخیرهسازی تصاویر حاضر در کش را دارد. حافظه پنهان مرورگر و برنامهها، دادههایی مثل کدها و فایلها را در حافظه برنامه نگه میدارد تا دفعه بعد که به آنها احتیاج دارید، سریعتر به آنها دسترسی داشته باشید.
اهمیت حافظه کش
بسیاری از متخصصین نرمافزار به این اعتقاد دارند که حافظه پنهان تنها روش برای سریعتر کردن کارها است. به زبان ساده، هنگاهی که میخواهید اطلاعات سنگین را ریکاوری کنید، اگر آنها در کش سیستم شما باشند، دیگر نیازی به جمعآوری دوباره تمام دادهها نخواهید داشت.
کارایی بهتر
مزیت اصلی کش این است که کارایی سیستم را بالا میبرد. با استفاده از این حافظه، اطلاعات فایل وبسایت، مرورگر و برنامههای شما، فقط با یک دفعه دانلود محتوا ذخیره میشوند. همچنین، میتوانید در بازدیدهای بعدی از ویندوز فایلها را مجددا بارگیری کنید و آنها را ببینید.
دسترسی آفلاین
برای بالا بردن سرعت، برنامهها اطلاعاتهای از قبلا استفاده شده را در حافظه پنهان ذخیره میکنند. این کار نه تنها باعث سرعت بخشیدن میشود، بلکه در موقعیت خاص، برنامهها را قادر میسازد تا به شکل آفلاین نیز مورد استفاده قرار بگیرند. برای مثال، اگر به اینترنت وصل نیستید و موسیقی را در یک برنامه دانلود کردید، میتوانید آن را به شکل آفلاین نیز گوش دهید.
کارایی برنامه
دانلود یک باره بعضی از برنامهها، بسیار کارآمد خواهد بود. نسخه کش یک فایل با دو بار دسترسی به برنامه، از هدر رفتن وقت، عمر باتری و دیگر مشکلات جلوگیری میکند و در عوض، برنامه فقط باید فایلهای به روز و یا اضافی را دانلود کند.
عملکرد شبکه
ذخیره سازی با کاهش تعداد در فضای وب برای درخواست و تحویل دادهها، استفاده موثرتر از پهنای باند شبکه را بهتر میکند. این تاثیر امکان دارد به شکل قابل توجهی نیاز به استقرار زیرساختهای تکراری را کاهش دهد و همین موضوع منجر به صرفهجویی قابل توجهی در هزینه و مزایای اقتصادی برای کل اکوسیستم اینترنت میشود.
کیفیت برتر خدمات
در دسترس بودن سرویسهای ذخیرهسازی، موانع ورود را برای ارائهدهندگان محتوای در حال توسعه (بهویژه SMBهایی که خدمات جدید را اعلام میکنند) کاهش میدهد. این روش ذخیرهسازی به ارائه دهندگان محتوای نوظهور و جدید این امکان را میدهد تا تجربه کاربری مثبتی را با کیفیت بالای خدمات محصول ارائه دهند.
جمعبندی
همانطور که گفتیم، فرآیند کشینگ با کمک ذخیرهسازی موقت اطلاعات و فایلهای پراستفاده کاربران در حافظه سیستم، مرورگر، وب سرور و سایر سیستمها انجام میگردد؛ بنابراین، در بیشتر موارد، کاربران نیازی ندارند که اطلاعات مورد نظر خود را از منابعی که در مکانی دورتر قرار دارند، دریافت نمایند.
نمایندگی ایسوس ارائه دهنده خدمات تعمیر لپ تاپ ایسوس، تعمیر تبلت ایسوس، تعمیر موبایل ایسوس، تجهیزات شبکه، تعمیر آل این وان ایسوس می باشد. برای اطلاعات بیشتر با کارشناسان ما تماس بگیرید.