0

چگونگي كاركرد Cache در كامپيوتر

 
seyedjafarfatemi
seyedjafarfatemi
کاربر نقره ای
تاریخ عضویت : دی 1387 
تعداد پست ها : 1643
محل سکونت : اصفهان

چگونگي كاركرد Cache در كامپيوتر

اگربراي خريد كامپيوتر از دوستان و اطرافيان خود سوال كرده‌ايد كدام سيستم بهتر است، حتماً نام Cache را شنيده‌ايد شايد نام‌هايي مثل L1 يا L2 را هم شنيده باشيد. يا شايد دوستي به شما گفته باشد كه «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 مگاهرتزي با 3.5برابر 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 60 نانوثانيه طول مي‌كشد. اين امر به اين معني است كه براي هر بار دسترسي به RAM ،30 نوبت پردازش به تا?خير مي‌افتد.

اين كه چطور اطلاعات هر برنامه Cache (ذخيره) مي‌شود، به قسمتي از علوم كامپيوتر برمي‌گردد كه Locality Of Reference نام دارد. اين روش يا بهتر بگوييم، تئوري، بيان مي‌كند كه فقط بخش بسيار كوچكي از هر برنامه؛ عامل اصلي اجرا شدن تمام برنامه است. به همين دليل فقط همين قسمت كوچك است كه در Cache ذخيره مي‌شود. توضيح اين تئوري و اينكه دقيقاً چطور از اين تئوري در Caching استفاده مي‌شود از بحث ما خارج است.

حال بهتر در مي‌يابيد كه چرا استفاده از حافظه‌هاي سريع در كامپيوتر به صرفه نيست و با استفاده از همين سيستم‌هاي كوچك و ارزان مي‌توان به سرعت مطلوب نزديك شد.

به جای آنکه به تاریکی لعنت بفرستید ،  شمعي روشن کنید.
سه شنبه 14 مهر 1388  7:19 PM
تشکرات از این پست
cooper
cooper
کاربر برنزی
تاریخ عضویت : شهریور 1388 
تعداد پست ها : 689
محل سکونت : سمنان

پاسخ به:چگونگي كاركرد Cache در كامپيوتر

جالب بود
Learn from yesterday, live for today,hope for tomorrow.The important thing is not to stop questioning.
Albert Einstei

 

سه شنبه 14 مهر 1388  8:30 PM
تشکرات از این پست
دسترسی سریع به انجمن ها