// ۲۳ مهر ۹۶ ، ۱۰:۴۹

 اگربرای خرید کامپیوتر از دوستان و اطرافیان خود سوال کرده اید کدام سیستم بهتر است، حتماً نام Cache را شنیده اید شاید نام هایی مثل L2یا L1را هم شنیده باشید. یا شاید دوستی به شما گفته باشد که «Celeron نخر ‍!Celeron روی خودش Cache نداره!»

با تمام این صحبت ها و پرس و جوها به نظر می رسد که Cache در کار کامپیوتر اهمیت زیادی دارد. با یک مثال ساده شروع می کنیم و اهمیت کار Cache را بررسی می کنیم.


یک کتابخانه را فرض کنید که برای دریافت کتاب باید از مسئول کتابخانه بخواهید تا آن کتاب را برای شما از مخزن بیاورد. (کتابخانه های مهم به این صورت کار می کنند). اولین فرد وارد کتابخانه می شود و کتاب «موبی دیک» را از مسئول کتابخانه می خواهد. مسئول به مخزن می رود و کتاب را برای او می آورد.

مراجعه کننده کتاب را باز می گرداند. مسئول کتاب را به مخزن باز می گرداند و دوباره باز می گردد و منتظر نفر بعدی می شود. اگر مشتری دوم هم به دنبال کتاب «موبی دیک» باشد، مسئول باید دوباره به مخزن برود. حال اگر در کنار پیش خوان یک قفسه با ظرفیت 10 کتاب قرار دهیم مسئول کتابخانه مجبور نیست برای پیدا کردن کتاب هایی که قبلاً از مخزن آورده شده به مخزن بازگردد. Cache هم به این صورت کار می کند.Cache در لغت به معنی ذخیره و مخزن است.


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

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


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


اگر یک حافظه کوچک بین RAM و پردازشگر قراربگیرد و کار Caching را انجام دهد و دسترسی به اطلاعات آن با سرعت انجام شود، این کار به نظر خوب می رسد.
اگر فقط 30نانوثانیه طول بکشد، یعنی نصف زمان لازم برای دسترسی مستقیم پردازشگر به RAM. این همان L2یا Level 2 Cache است.
اگر این حافظه را داخل پردازشگر قرار دهیم زمان دسترسی به این حافظه مساوی زمانی است که پردازشگر صرف می کند تا اطلاعات را پردازش کند. این همان L1یا Level 1 Cache است. این نوع Cache در یک پردازشگر پنتیوم 223 مگاهرتزی با 5.3برابر L2کار می کند که آن هم 2 برابر سریع تر از دسترسی بدون Cache به RAM است.


بعضی از پردازشگر ها هر دو Cache را در داخل خود دارد. این Cache که بین پردازشگر و RAM قرار داده می شود و از اجزای Motherboard است، L3 نامیده می شود.
زمان اتصال به اینترنت، کمترین سرعت در سرعت های موجود در کار با کامپیوتر است. هربار که از اینترنت استفاده می کنید، مرورگر اطلاعات صفحه وب را در فایلی ذخیره می کند و در صورتی که دوباره به همان صفحه بروید (Back) به جای اتصال به سرور مستقیماً به فایل ذخیره شده می رود و زمان کمتری صرف می شود.


Cache تنها در پردازشگر وجود ندارد و می توان آن را در داخل اجزای دیگر قرار داد. برای مثال هارد دیسک شما دارای Cache بسیار سریع است. هر بار که اطلاعات خوانده می شود در Cache هارد دیسک نیز ذخیره می شود. CD Drive دستگاه شما نیز دارای Cache است.
سالهاست که فلاپی دیسک دیگر کاربرد ندارد. ولی اگر هنوز هم از فلاپی دیسک هایی قدیمی خود دارید، می توانید با انجام یک عملیات ساده کار Cache را دقیقاً در فلاپی ببینید.


یک فایل متن به فرض مثال به بزرگی 300کیلوبایت را روی فلاپی بریزید. یک بار کامپیوترتان را خاموش و روشن کنید. فایل را از روی فلاپی اجرا کنید. چراغ فلاپی درایو روشن می شود و شروع به خواندن فایل می کند. یک بار دیگر فایل را از روی فلاپی باز کنید. مشاهده خواهید کرد که دیگر فلاپی درایو کار نمی کند و فایل به سرعت اجرا می شود. این همان ذخیره اطلاعات روی Cache است.


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


در معماری کامپیوتر هدف این است که پردازشگر با تمام سرعت خود کار کند. برای مثال یک پردازشگر 500 مگاهرتزی، 500 میلیون بار در یک ثانیه یک پردازش را انجام می دهد. که به عبارتی یک پردازش را در 2 نانو ثانیه انجام می دهد. بدون Cache هر بار دسترسی به RAM 30 نانوثانیه طول می کشد. این امر به این معنی است که برای هر بار دسترسی به RAM ،60 نوبت پردازش به تأخیر می افتد.


این که چطور اطلاعات هر برنامه Cache (ذخیره) می شود، به قسمتی از علوم کامپیوتر برمی گردد که Locality Of Reference نام دارد. این روش یا بهتر بگوییم، تئوری، بیان می کند که فقط بخش بسیار کوچکی از هر برنامه؛ عامل اصلی اجرا شدن تمام برنامه است. به همین دلیل فقط همین قسمت کوچک است که در Cache ذخیره می شود.

توضیح این تئوری و اینکه دقیقاً چطور از این تئوری در Caching استفاده می شود از بحث ما خارج است. حال بهتر در می یابید که چرا استفاده از حافظه های سریع در کامپیوتر به صرفه نیست و با استفاده از همین سیستم های کوچک و ارزان می توان به سرعت مطلوب نزدیک شد.

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