چگونگي کارکرد Cache در کامپيوتر
- مجموعه: ترفندهای کامپیوتری
اگربراي خريد کامپيوتر از دوستان و اطرافيان خود سوال کرده ايد کدام سيستم بهتر است، حتماً نام 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 استفاده مي شود از بحث ما خارج است. حال بهتر در مي يابيد که چرا استفاده از حافظه هاي سريع در کامپيوتر به صرفه نيست و با استفاده از همين سيستم هاي کوچک و ارزان مي توان به سرعت مطلوب نزديک شد.