هر آنچه باید از حافظه کش سی پی یو بدانید؟

CPU Cache یا حافظه پنهان، یکی از چندین حافظه‌ای که کامپیوترهای امروزی از آن‌ها بهره می‌برند و نوعی RAM بسیار سریع و کارآمد است که می‌توان گفت به حافظه استفاده‌شده بین CPU و رم نسبت داده می‌شود و به همین دلیل، CPU به آسانی می‌تواند به آن دسترسی پیدا کند. وقتی به مشخصات یک پردازنده نگاه می‌کنیم، می‌توانیم مقدار آن را مشاهده کنیم اما اکثرا کاربران به این بخش مهم توجهی نشان نمی‌دهند.

این قطعه عمدتا برای ذخیره داده‌هایی که به صورت مکرر موردنیاز هستند، طراحی شده است که با عملکرد خاص خود، سرعت CPU را فوق‌العاده بالا می‌برد؛ چون موقعیت خیلی نزدیک‌تری از رم به CPU دارد و در هر زمان قادر است بدون اتلاف وقت برای بارگیری، اطلاعات را به پردازنده القا کند و در عوض، زمان ذخیره‌شده را صرف خواندن اطلاعات اصلی و بزرگ‌تر از دستگاه‌های ذخیره‌سازی کند. CPU Cache قطعه بسیار مهم و مفیدی است که اصلی‌ترین فایده آن، سرعت بخشیدن به عملیات‌ها می‌باشد.

در این مطلب از بروزکالا، به طور مفصل به اهمیت و نوع کارکرد حافظه نهان پردازنده می‌پردازیم. با ما همراه باشید.

پیشنهاد بروزکالا این است که پیش از مطالعه این مقاله، مروری بر مقاله  پردازنده چیست؟ داشته باشد.

سرفصل‌های مقاله

•    CPU Cache چیست؟
•    اهمیت و کاربرد CPU Cache
•    انواع CPU Cache
•    تفاوت CPU Cache با رم اصلی موبایل یا رایانه
•    طرز کار CPU Cache
•    مزایای استفاده از CPU Cache
•    کاربرد CPU Cache در فناوری‌های بزرگ
•    معرفی چند پردازنده با بهترین سازگاری و اجرای CPU Cache

CPU Cache چیست؟

انوع مختلفی از حافظه در سیستم‌های کامپیوتری وجود دارند که عبارتند از پردازنده مرکزی، حافظه پنهان یا حافظه CPU Cache، حافظه اصلی یا همان رم، و حافظه ثانویه که می‌تواند هارد SSD یا هارد دیسک باشد. به علت عدم توانایی حافظه رم در هماهنگی سرعت با پردازنده مرکزی، در دهه 80 میلادی یک نوع حافظه جدید به نام حافظه کش پردازنده متولد شد. حافظه پنهان یا همان حافظه کش سی‌پی‌یو، سریع‌ترین حافظه‌ای می‌باشد که پردازنده مرکزی به آن دسترسی دارد.

انواع حافظه‌های موجود در یک کامپیوتر با سلسله مراتب خاصی که مبتنی بر سرعت پردازش و بارگیری است، کار می‌کنند. حافظه CPU Cache به دلیل داشتن بالاترین سرعت، در صدر این سلسله مراتب قرار گرفته است. این قطعه سرعت بالاتری از حافظه رم دارد و جایگاه اطلاعاتی است که به طور مکرر مورد پردازش قرار می‌گیرند و به همین سبب، برای افزایش سرعت دسترسی پردازنده به داده‌ها مورد استفاده قرار می‌گیرد. 

پیشنهاد مطالعه: برترین پردازنده (cpu) لپ تاپ و کامپیوتر در 2023

اهمیت و کاربرد CPU Cache

علت اصلی ساخته شدن حافظه کش cpu، بالاتر بودن سرعت کار پردازنده نسبت به سرعت دسترسی پردازنده به حافظه رم است. سی‌پی‌یو هرقدر هم که سریع باشد، چون حافظه رم قادر نیست پابه‌پای آن کار کند، بنا بر قانونی که می‌گوید قدرت یک زنجیر برابر با قدرت ضعیف‌ترین حلقه آن می‌باشد، سرعت کلی سامانه به مقدار زیادی کاهش می‌یابد. حافظه پنهان cpu با نزدیک‌تر بودن به پردازنده و داشتن سرعت بسیار بالا، زمان دسترسی پردازنده به داده‌ها تا حد امکان کاهش داده و این ضعف را جبران می‌نماید.

پس می‌توان درباره کاربرد حافظه کش پردازنده چنین گفت که واسطه‌ای بین سی‌پی‌یو و رم که شامل برنامه‌های در حال اجرا و داده‌هایی که به طور متناوب در سیستم پردازش می‌شوند، است. حافظه پنهان از الگوریتم‌های خاصی برای حدس این‌که کدام اطلاعات مکررا به کار خواهند رفت و لازم است در آن‌جا ذخیره شوند، بهره می‌برد.

حافظه کش سی پی یو چیست؟

انواع CPU Cache

حافظه پنهان در سه سطح مختلف تعریف می‌شود: سطح یک (L1 cache)، سطح دو (L2 cache) و سطح سه (L3 cache). انتقال اطلاعات از رم به حافظه کش، از سطح سوم آغاز می‌شود اما در مورد دسترسی سی‌پی‌یو به آن، برعکس است؛ یعنی پردازنده نخست به L1 مراجعه می‌کند و در صورت نیافتن اطلاعات موردنیازش، به L2 و بعد به L3 می‌رود. در این قسمت به توضیح مختصری راجع به هر کدام از سطوح حافظه پنهان می‌پردازیم.

  • حافظه کش سطح یک (L1 cache): این سطح، نزدیک‌ترین سطح حافظه پنهان نسبت به پردازنده مرکزی و در نتیجه، سریعترین آن‌هاست. کش سطح اول را معمولا روی خود سی‌پی‌یو تعبیه می‌کنند. این سطح علی‌رغم سرعت بالای خود، به نسبت سطوح دیگر ظرفیت محدودتری دارد که معمولا کمتر از یک مگابایت می‌شود. در پردازنده‌های چندهسته‌ای معمولا شاهد این هستیم که هر هسته، حافظه پنهان مخصوص به خود را دارد. 
  • حافظه کش سطح دو (L2 cache): سرعت این سطح از حافظه کش از سطح اول آن کمتر اما ظرفیت آن معمولا بیشتر است. در برخی از پردازنده‌ها، کش L2 روی خود پردازنده تعبیه می‌گردد و گاهی نیز تراشه‌ای مجزا و یا پردازنده‌ای کمکی است که توسط گذرگاه اختصاصی پرسرعتی به CPU متصل می‌شود. ظرفیت این سطح بسته به نوع پردازنده مرکزی، از چندصد کیلوبایت تا چند مگابایت متغیر است.
  • حافظه کش سطح سه (L3 cache): این سطح در واقع باز ده سطوح اول و دوم از حافظه کش را افزایش می‌دهد. L3 بزرگ‌تر اما کندتر از دو حافظه پیشین، اما همچنان سریع‌تر از حافظه رم است. سطح سوم حافظه پنهان بسته به نوع پردازنده مرکزی، می‌تواند از چند مگابایت تا چندده مگابایت باشد.

عملکرد حافظه پنهان

تفاوت CPU Cache با رم اصلی موبایل یا رایانه

حافظه پنهان هم در واقع یک نوع حافظه رم است اما با رم اصلی گوشی و رایانه تفاوت مهمی دارد؛ رم اصلی از نوع رم پویا یا همان DRAM (Dynamic Random Access Memory) است. این نوع حافظه‌ها هر چند میلی‌ثانیه باید رفرش شوند. این نوع از حافظه روی بورد اصلی تعبیه می‌شود و سی‌پی‌یو از طریق گذرگاه‌های بورد اصلی به آن دسترسی پیدا می‌کند. اما حافظه پنهان که از نوع رم ثابت یا SRAM (Static Random Access Memory) است، از رفرش شدن بی‌نیازند و سریع‌تر و البته گران‌تر می‌باشند. حافظه‌های ثابت یا جزئی از سی‌پی‌یو و یا به صورت تراشه‌ای جداگانه اما بسیار نزدیک به آن هستند.

طرز کار CPU Cache

برنامه‌ها مختلف موجود در کامپیوتر شما مجموعه‌ای از دستورالعمل‌ها را برای تفسیر و یا اجرا در دسترس پردازنده قرار می‌دهند. وقتی برنامه‌ای را باز می‌کنید، آن دستورالعمل‌ها از حافظه اصلی به پردازنده انتقال می‌یابند. اطلاعات نخست در حافظه رم بارگذاری می‌شوند و سپس به سی‌پی‌یو راه پیدا می‌کنند. پردازنده‌های مدرن و پیشرفته قادرند در هر ثانیه میلیون‌ها دستورالعمل را اجرا نمایند. آن‌ها برای استفاده از تمام توان و ظرفیت خود به حافظه بسیار سریعی نیاز دارند که همان حافظه کش است. کنترلر حافظه، داده‌ها را از رم گرفته و در اختیار CPU Cache قرار می‌دهد.

برخی از پردازنده‌ها دارای این کنترلر می‌باشند و در مورد آن دسته‌ای که فاقد آن هستند، چیپست موسوم به پل شمالی که در مادربرد قرار گرفته است، این وظیفه را بر عهده دارد. سپس داده‌ها به ترتیب و بر حسب تکرر نیاز به پردازش، در سطوح مختلف حافظه پنهان ذخیره می‌شوند.

پیشنهاد مطالعه: CPU Usage چیست؟

مزایای استفاده از CPU Cache

در راستای پاسخ به سوال اینکه حافظه کش سی پی یو چیست؟ استفاده از CPU Cache مزایای قابل توجهی را برای هر فردی که با دنیای دیجیتال سر و کار دارد، به ارمغان می‌آورد. در این قسمت به چند تا از بارزترین مزایای استفاده از آن اشاره می‌کنیم:

  • بهبود عملکرد برنامه‌های کاربردی: همان‌طور که اشاره شد، سرعت خواندن و نوشتن در حافظه نسبت به دیسک بسیار بیشتر است و از همین رو، سرعت خواندن داده‌ها از طریق حافظه کش خیلی سریع‌تر صورت می‌گیرد که در نتیجه عملکرد کلی برنامه‌های کاربردی موبایل و رایانه را بهبود و سرعت می‌بخشد.
  • کاهش هزینه پایگاه داده: حافظه پنهان قادر است جایگزین تعداد بسیار زیادی از نمونه‌های پایگاه داده شده و به تنهایی صدها هزار عملیات ورودی و خروجی را در هر ثانیه انجام دهد که این موضوع در نهایت موجب کاهش هزینه‌های پایگاه داده خواهد شد. با استفاده از CPU Cache دیگر لازم نیست به ازای هر بار عملیات پایگاه داده، هزینه‌ای پرداخت شود. علاوه بر این، حافظه پنهان با شامل شدن بخش قابل توجهی از داده‌ها، به نوعی بار روی پایگاه داده را کاهش می‌دهد و از آن در برابر کندی عملکرد و خرابی محافظت می‌کند.
  • عملکرد قابل پیش‌بینی برنامه‌ها: افزایش ناگهانی ترافیک و استفاده از برنامه‌های کاربردی از بزرگ‌ترین چالش‌های رایج می‌باشد. زمانی که به دلایلی مانند روزهای خاص، تخفیف‌ها، کارهای اداری و... استفاده از برخی اپلیکیشن‌ها و سایت‌ها چند برابر می‌گردد، بار پایگاه داده بسیار افزایش یافته و دریافت اطلاعات دچار تاخیر می‌شود. در این موارد اصطلاحا گفته می‌شود که عملکرد آن برنامه غیر قابل پیش‌بینی است. با استفاده از عملیات Caching می‌توان چنین مشکلی را تا حد زیادی برطرف کرد و به عملکرد صحیح برنامه‌ها طی وضعیت‌های چالش برانگیز کمک بزرگی نمود.
  • حذف هات اسپات‌های پایگاه داده: معمولا کاربران به برخی آیتم‌های محبوب مانند عکس‌ها، صفحه محصولات و... نسبت به آیتم‌های دیگر توجه بیشتری نشان می‌دهند. وقتی کاربران به یک قسمت یا صفحه بیشتر از سایر بخش‌ها مراجعه کنند، در پایگاه داده وب‌سایت برای این صفحه خاص، یک هات اسپات ایجاد می‌گردد که این امر منجر به افزایش عملیات پایگاه داده و در نهایت، درگیر شدن بیش از حد منابع پایگاه داده برای ارائه مداوم یک سرویس تکراری می‌شود. اگر چنین صفحه‌ای در حافظه کش ذخیره شود، علاوه بر جلوگیری از اجرای عملیات اضافی پایگاه داده، ارائه داده‌ها با سرعت بالاتری انجام می‌گردد.

کاربرد CPU Cache در فناوری‌های بزرگ

حافظه کش پردازنده با توجه به مزایای بزرگی که برای هر دستگاهی دارد، طبیعتا در فناوری‌ها و عرصه‌های مختلفی به کار گرفته می‌شود. چند مورد از مهم‌ترین آن‌ها عبارتند از:

  • سرورهای DNS(Domain Name System): این سرورها رکوردهای DNS را برای جستجوی سریع‌تر و بهتر در حافظه کش خود ذخیره می‌کنند. وقتی نام یک دامنه را در اینترنت جستجو می‌کنید، ابتدا درخواست آن به سرورهای کش DNS فرستاده می‌شوند تا آدرس IP مرتبط با آن را جستجو نماید. این قابلیت می‌تواند در سطوح مختلفی، از جمله در سیستم عامل، از طریق ISPها و سرورهای DNS انجام شود که در هر صورت سرعت عملیات بازیابی آدرس IP را تا حد زیادی افزایش می‌دهد.
  • حافظه کش وب (Web Caching): تکنیک‌های متنوع کش وب را می‌توان هم در سمت سرور و هم در سمت کاربر پیاده‌سازی و اجرا نمود. کش وب در سمت سرور بدین صورت است که ذخیره‌سازی با استفاده از پروکسی وب پاسخ‌های سرور وب را نگه‌می‌دارد تا بعدا از همین طریق بتواند تاخیر در عملیات پاسخ‌دهی را کاهش دهد. کش وب در سمت کاربر بدین صورت است که ذخیره‌سازی مبتنی بر مرورگر است؛ یعنی مرورگر وب برای اجرای سریع‌تر سایت‌ها، جاوا اسکریپت، فایل‌های HTML و تصاویر وب‌سایتی که کاربر قبلا یک بار از آن بازدید نموده است را در خود ذخیره می‌کند. هر بار که کاربر یک صفحه وب را باز می‌کند، مرورگر او بایستی داده‌های بسیار زیادی را برای نمایش آن صفحه بارگیری کند. مرورگرها بدین طریق داده‌ها را برای بالا بردن سرعت بارگذاری صفحه، در حافظه پنهان خود کش نموده و یک کپی از محتوای صفحه وب را در هارد دیسک دستگاه کاربر ذخیره می‌نمایند و به همین خاطر، دفعه بعد که کاربر همان صفحه وب را دوباره بارگذاری می‌کند، بیشتر حجم محتوا بدون نیاز به دانلود مجدد و با سرعت بسیار بالاتری بارگیری می‌گردند. مرورگرها این فایل‌ها را تا زمانی که مدت حیات آن‌ها به اتمام برسد یا کش هارد دیسک پر شود، در خود نگه‌می‌دارند. کاربران می‌توانند در صورت تمایل، کش مرورگر خود را پاک کنند که این عمل به طور موقت باعث افزایش زمان بارگذاری صفحه می‌شود زیرا موقع دوباره ورود کردن به آن صفحات درست مثل بار اول باید انتظار تاخیر را داشت. اما اگر صفحه وب برای نخستین بار به درستی بارگیری نشده باشد و یا این‌که به تازگی تغییراتی در آن ایجاد شده باشد، پاک کردن کش می‌تواند مفید باشد.

معرفی چند پردازنده با بهترین سازگاری و اجرای CPU Cache

در این قسمت به معرفی چند پردازنده که حافظه پنهان را به خوبی پشتیبانی می‌کنند می‌پردازیم که عبارتند از:

سخن پایانی

CPU Cache که با نام‌های حافظه پنهان یا حافظه کش هم شناخته می‌شود، از اجزای مهم و کاربردی هر دستگاهی است که با به‌کارگیری آن، اکثر عملیات‌های موبایل یا کامپیوتر بهبود می‌یابند و سریع‌تر انجام می‌شوند. با خواندن این مطلب دریافتیم مهم‌ترین مزیت حافظه پنهان این است که سی‌پی‌یو برای پردازش اطلاعاتی که به صورت مکرر استفاده می‌شوند، قبل از بررسی رم، به بررسی آن می‌پردازد و چون اطلاعات پرتکرار در آن قسمت ذخیره می‌شوند، در نتیجه پردازنده آسان‌تر و سریع‌تر به آن‌ها دست پیدا می‌کند و چنین فرآیندی باعث افزایش سرعت کل سامانه می‌گردد.

در مقاله حافظه پنهان پردازنده چیست؟ با سطوح مختلف حافظه کش و کارکرد آن‌ها آشنا شدیم و فهمیدیم چگونه از آن در فناوری‌های گوناگون استفاده می‌شود. اکنون شما اطلاعات کافی در رابطه با این قطعه مهم دستگاه خود دارید و می‌دانید که علت اجرای سریع‌تر و بهتر برخی از داده‌ها چیست و چگونه این عمل صورت می‌گیرد. 

سوالات متداول

1) CPU Cache چیست؟

این قطعه یکی از بخش‌های مهم کامپیوتر یا موبایل است که محل ذخیره اطلاعاتی است که به طور مکرر مورد استفاده و اجرا قرار می‌گیرند. این بخش بین حافظه رم و پردازنده مرکزی قرار دارد و سرعتی بالاتر از رم دارد که همین امر موجب اهمیت بالای آن شده است.

2) کار CPU Cache چیست؟

حافظه رم قابلیت هماهنگی با پردازنده مرکزی را از لحاظ سرعت ندارد. لذا حافظه کش که از رم پرسرعت‌تر می‌باشد، با الگوریتم‌های خاصی داده‌هایی را که به طور پرتکرار استفاده شده‌اند را در خود ذخیره می‌کند تا در صورت نیاز دوباره به آن‌ها، پردازنده به جای رم به حافظه کش رجوع کند و زمان کمتری اتلاف شود.