فرق حافظه بافر Buffer و کش Cache چیست ؟
فرق بافر و کش رو خیلیا نمی دونن . یعنی خیلیا فکر می کنن که می دونن . خیلیا رو دیدم که میگن بافر همون کش هستش و تفاوتی بینشون نیست . امروز تو این پست کوتاه میخوام توضیح بدم که تفاوت کش و بافر چیه پس تا انتهای پست رو بخونید .
درباره حافظه کش Cache
حافظه کش Cache یه حافظه کوچیک ، سریع و گرون قیمت هست که بین حافظه RAM و پردازنده قرار داره . دلیل استفاده از حافظه کش اینه که اطلاعات مهمی که به صورت تکراری توسط پردازنده استفاده میشه ، داخل کش قرار بگیره تا پردازنده بتونه سریعتر پردازش شون کنه . موقعی که شما برنامه ای مثل ورد یا فتوشاپ رو باز می کنید ، پردازنده می تونه تشخیص بده که اطلاعات اون برنامه که قراره زیاد استفاده بشه چیه و اونا رو از حافظه RAM به حافظه کش هدایت می کنه . اینجوری پردازنده حداقل برای دسترسی به فایل های مهم و تکراری ، مجبور نیست هر سری به رم سرک بکشه . با استفاده از روش کشینگ Caching ، سرعت کلی سیستم کامپیوتری شما زیاد میشه . در مورد حافظه کش به طور خیلی مفصل توضیح دادم که پیشنهاد می کنم حتما بخونید : حافظه کش ، معنی کش سطح 1 و 2 و 3 چیست ؟
درباره حافظه بافر Buffer
حافظه بافر یه رابط حافظه ای بین دو تا دستگاه یا سخت افزار هست . بافر برای این استفاده میشه تا تفاوت سرعت بین دو تا قطعه رو جبران کنه . مثلا بافر در پرینتر استفاده میشه اما چرا ؟ ببینید موقعی که شما دستور پرینت رو از کامپیوتر به پرینتر ارسال می کنید ، پردازنده در کسری از ثانیه دستور رو می فرسته اما پرینتر که نمی تونه تو کسری از ثانیه پرینت بگیره ، باید کاغذ رو چک کنه ، رنگ ها رو میزون کنه ، ترتیب رو رعایت کنه و خیلی چیزای دیگه . پس این دستور پرینت که از پردازنده به پرینتر ارسال میشه ، باید یه جایی ذخیره بشه تا پرینتر یادش بمونه که کدوم صفحات رو باید پرینت بگیره . به این حافظه میگن بافر ، پس یادتون باشه که پرینتر حافظه کش نداره چون این دوتا باهم فرق دارن !
در عکس بالا می بینید که حافظه بافر 16 مگابایتی برای هارد در نظر گرفته شده . درسته که نوشته cache اما منظورش حافظه بافر هست برای تطبیق سرعت هارد با قطعات دیگه .
فرق حافظه کش Cache و بافر Buffer
تفاوت اصلی بافر و کش اینه که کش برای افزایش سرعت استفاده میشه اما بافر برای هماهنگی سرعت .
حافظه کش حاوی اطلاعات مهم و تکراریه که پردازنده وقتش تلف نشه و بتونه از حافظه کش با سرعت بالا استفاده کنه . اگه کش نباشه ، پردازنده هر سری باید بره و از حافظه RAM اطلاعات رو بگیره که اینکار زمان گیره .
حافظه بافر جایی استفاده میشه که سرعت یه دستگاه یا قطعه از اون یکی بیشتره . بافر تو دستگه با سرعت کمتر طراحی میشه تا بتونه دستورات سرعت بالا رو ذخیره کنه و به ترتیب اونارو اجرا کنه . اگه دقت کرده باشید ، موقعی که یه ویدیو از یوتیوب یا سایت های اشتراک ویدیو می خواید نگاه کنید ، بعضی وقتا ویدیو قطع میشه و می نویسه : Buffering . این یعنی سرعت سرور از سرعت اینترنت شما بیشتره و کامپیوتر شما داره اطلاعات مربوط به ویدیو رو در حافظه بافر ذخیره می کنه تا در زمان بهتری پخش کنه .
ضمنا شباهت بین بافر و کش اینه که جفتشون حافظه های فرار هستن یعنی با قطع برق ، اطلاعاتشون ریست میشه .