اگر تا کنون برای خود
کامپيوتری تهيه کرده باشيد ، واژه " Cache"
برای شما آشنا خواهد بود. کامپيوترهای جديد دارای
Cache از نوع L1
و L2 می باشند. شايد در هنگام خريد يک
کامپيوتر از طرف دوستانتان توصيه هائی به شما شده باشد مثلا" : "
سعی کن از تراشه های Celeron استفاده
نکنی چون دارای Cache نمی باشند! "
Cache
يک مفهوم کامپيوتری است که بر روی هر نوع کامپيوتر با يک شکل خاص
وجود دارد. حافظه های Cache ، نرم
افزارهای با قابليت Cache هارد ديسک و
صفحات Cache همه بنوعی از مفهوم
Caching استفاده می نمايند. حافظه مجازی
که توسط سيستم های عامل ارائه می گردد نيز از مفهوم فوق استفاده می
نمايد.
مبانی
Caching
Caching
يک نکنولوژی استفاده شده برای زير سيستم های حافظه ، در کامپيوتر
است . مهمترين هدف يک Cache افزايش سرعت
و عملکرد کامپيوتر بدون تحميل هزينه های اضافی برای تهيه سيستم است
. با استفاده از Cache عمليات کاربران
با سرعت بيشتری انجام خواهد شد.
کتابداری را در نظر بگيريد
که در يک کتابخانه مسئول تحويل کتاب به متقاضيان است . فرض کنيد در
سيستم فوق ( درخواست و تحويل کتاب ) از مفهوم
Cache استفاده نمی گردد. اولين متقاصی کتابی را درخواست می
نمايد( فرض شده است که متقاضی خود نمی تواند مستقيما" کتاب مورد
نظر را از قفسه مربوطه ،بردارد) ، کتابدار، کتاب مورد نظر را از
قفسه مربوطه پيدا و در ادامه آن را تحويل متقاضی می نمايد. متقاضی
پس از ساعاتی مراجعه و کتاب را تحويل می دهد. کتابدار، کتاب
تحويلی را مجددا" در قفسه مربوطه قرار می دهد. پس از لحظاتی يک
متقاضی ديگر مراجعه و همان کتاب قبلی را درخواست می نمايد ،
کتابدار مجددا" می بايست به بخش مربوطه در کتابخانه مراجعه و پس از
بازيابی کتاب ، آن را در اختيار متقاضی دوم قرار دهد.همانگونه که
ملاحظه می گردد ، کتابدار مکلف است برای تحويل هر کتاب ( ولو کتاب
هائی که فرکانس استفاده از آنان توسط متقاضيان زياد باشد ) به بخش
مربوطه مراجعه و پس از يافتن کتاب آن را در اختيار متقاضيان قرار
دهد. آيا روشی وجود دارد که با استناد به آن بتوان عملکرد و
کارآئی کتابدار را بهبود بخشيد ؟
در پاسخ به سوال فوق می
توان با ايجاد يک سيستم Cache برای
کتابدار ، کارآئی آن را افزايش داد. فرض کنيد بخشی را با ظرفيت
حداکثر ده کتاب در مجاورت ( نزديکی ) کتابدار آماده نمائيم . کتاب
هائی که توسط متقاضيان برگردانده می شود، در بخش فوق ذخيره خواهند
شد. مثال فوق را با در نظر گرفتن سيستم Cache
ايجاد شده برای کتابدار مجددا" دنبال می نمائيم . در ابتدای فعاليت
روزانه ، بخش Cache خالی بوده و هنوز
در آن کتابی قرار نگرفته است . اولين متفقاصی مراجعه و کتابی را
درخواست می نمايد . کتابدار می بايست به بخش مربوطه مراجعه و کتاب
را از قفسه مربوطه براشته و در اختيار متقاضی قرار دهد. متقاضی پس
از تحويل کتاب ، چند ساعت بعد مراجعه و کتاب را تجويل کتابدار
خواهد داد. کتابدار، کتاب تحويلی را در بخش پيش بينی شده برای
Cache قرار می دهد. لحظاتی بعد متقاضی
ديگر مراجعه و درخواست همان کتاب را می نمايد .کتابدار در ابتدا
بخش مربوط به Cache را جستجو و در صورت
يافتن کتاب ، آن را به متقاضی تحويل خواهد داد. در اين حالت ضرورتی
به مراجعه کتابدار به بخش و قفسه های مربوطه نخواهد بود. در روش
فوق زمان تحويل کتاب به متقاضی بهبود چشمگيری پيدا خواهد کرد. در
صورتيکه کتاب درخواستی توسط متقاضی در بخش
Cache کتابخانه نباشد ، چه اتفاقی خواهد افتاد؟ در ابتدا
مدت زمانی صرف خواهد شد که کتابدار به اين اطمينان برسد که کتاب
درخواستی در بخش Cache موجود نمی باشد (
جستجو) يکی از چالش های اصلی در رابطه با طراحی
Cache به حداقل رساندن زمان جستجو در
Cache است .سخت افزارهای جديد ، زمان
فوق را به صفر نزديک کرده اند. پس از حصول اطمينان از عدم وجود
کتاب در بخش Cache ، کتابدار می بايست
با مراجعه به بخش مربوطه آن را انتخاب و در ادامه در اختيار متقاضی
قرار دهد.
با توجه به مثال فوق ،
چندين نکته مهم در رابطه با Cache
استنباط می گردد:
- تکنولوژی
Cache ، استفاده از حافظه های سريع ولی
کوچک ، بمنظور افزايش سرعت يک حافظه کند ولی با حجم بالا است
- زمانيکه از
Cache استفاده می گردد ، در ابتدا می
بايست محتويات آن بمنظور يافتن اطلاعات مورد نظر بررسی گردد.
فرآيند فوق را Cache hit می گويند. در
صورتيکه اطلاعات مورد نظر در Cache
موجود نباشند (Cache miss) ، کامپيوتر
می بايست در انتظار تامين داده های خود از حافظه اصلی سيستم باشد (
حافظه ای کند ولی با حجم بالا )
- اندازه
Cache محدود بوده وسعی می گردد که
ظرفيت فوق حتی المقدور زياد باشد ، ولی بهرحال اندازه آن نسبت به
رسانه های ذخيره سازی ديگر بسيار کم است .
- اين امکان وجود خواهد
داشت که از چندين لايه Cache استفاده
گردد.
Cache
در کامپيوتر
کامپيوتر، ماشينی است که
زمان انجام کارها توسط آن با واحدهای خيلی کوچک اندازه گيری می
گردد.زمانيکه ريزپردازنده قصد دستيابی به حافظه اصلی را داشته
باشد، می بايست مدت زمانی معادل 60 نانوثانيه را برای اين کار در
نظر بگيرد. سرعت فوق بسيار بالا است ولی سرعت ريزپردازنده بمراتب
بيشتر است . ريزپردازنده قادر به داشتن سيکل هائی به اندازه دو
نانوثانيه است . تفاوت سرعت بين پردازنده و حافظه کاملا" مشهود
بوده و قطعا" رضايت پردازنده در اين خصوص کسب نخواهد شد. پردازنده
می بايست تاوان کند بودن حافظه را خود بپردازد . انتظار پردازنده و
هرز رفتن زمان مفيد وی کوچکترين تاوانی است که می بايست پردازنده
پذيرای آن باشد.
بمنظور حل مشکل فوق ، فرض
کنيد از يک نوع حاص حافظه، با ظرفيت کم ولی با سرعت بالا ( 30
نانوثانيه ) ، استفاده گردد . سرعت دستيابی به حافظه فوق دو مرتبه
سريعتر نسبت به حافظه اصلی است .اين نوع حافظه راL2
Cache می نامند. فرض کنيد از
يک حافظه بمراتب سريعتر ولی با حجم کمتر استفاده و آن را مستقيما"
با پردازنده اصلی درگير نمود. سرعت دستيابی به حافظه فوق می بايست
در حد و اندازه سرعت پردازنده باشد .اين نوع حافظه ها را
L1 Cache می گويند.
در کامپيوتر از زيرسيستمهای
متفاوتی استفاده می گردد.از Cache می
توان در رابطه با اکثر زير سيستمهای فوق استفاده تا کارآئی آنان
افزايش يابد.
تکنولوژی
Cache
يکی از سوالاتی که ممکن است
در ذهن خواننده اين بخش خطور پيدا کند اين است که " چرا تمام حافظه
کامپيوترها از نوع L1 Cache نمی باشند
تا ديگر ضرورتی به استفاده از Cache
وجود نداشته باشد؟" در پاسخ می بايست گفت که اشکالی ندارد وهمه چيز
هم بخوبی کار خواهد کرد ولی قيمت کامپيوتر بطرز قابل ملاحظه ای
افزايش خواهد يافت . ايده Cache ،
استفاده از يک مقدار کم حافظه ولی با سرعت بالا( قيمت بالا) برای
افزايش سرعت و کارآئی ميزان زيادی حافظه ولی با سرعت پايين ( قيمت
ارزان ) است .
در طراحی يک کامپيوتر هدف
فراهم کردن شرايط لازم برای فعاليت پردازنده با حداکثر توان و در
سريعترين زمان است . يک تراشه 500 مگاهرتزی ، در يک ثانيه پانصد
ميليون مرتبه سيکل خود را خواهد داشت ( هر سيکل در دونانوثانيه ) .
بدون استفاده از L1 و
L2 Cache ، دستيابی به حافظه حدودا" 60
نانوثانيه طول خواهد کشيد. بهرحال استفاده از
Cache اثرات مثبت خود را بدنبال داشته و باعث بهبود کارآئی
پردازنده می گردد.اگر مقدار L2 Cache
معادل 256 کيلو بايت و ظرفيت حافظه اصلی معادل 64 مگابايت باشد ،
256000 بايت مربوط به Cache با استفاده
از روش های موجود قادر به Cache نمودن
64000000 بايت حافظه اصلی خواهند بود.
|