PDA

نسخه کامل مشاهده نسخه کامل : حافظه Cache - تکنولوژی Cache



mpsjavad
06-10-2005, 15:32
با سلام ..


اگر تا کنون برای خود کامپيوتری تهيه کرده باشيد ، واژه " Cache" برای شما آشنا خواهد بود. کامپيوترهای جديد دارای Cache از نوع L1 و L2 می باشند. شايد در هنگام خريد يک کامپيوتر از طرف دوستانتان توصيه هائی به شما شده باشد مثلا" : " سعی کن از تراشه های Celeron استفاده نکنی چون دارای Cache نمی باشند! "

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

مبانی Caching

Caching يک تکنولوژی استفاده شده برای زير سيستم های حافظه ، در کامپيوتر است . مهمترين هدف يک Cache افزايش سرعت و عملکرد کامپيوتر بدون تحميل هزينه های اضافی برای تهيه سيستم است . با استفاده از Cache عمليات کاربران با سرعت بيشتری انجام خواهد شد.

حافظه Cache چیست ؟

فرض کنیم که شما هر روز به رستوران می رید . هر روز راس ساعت 5 بعد از ظهر سفارش غذا می دید . هروز 4 نوع غذا رو به ترتیب خاص سفارس می دید . راس ساعت 5 همبرگر سفارش می دید گارسون سفارش شما رو بررسی می کنه به آشپزخونه میره بعد از 1 دقیقه همبرگر رو برای شما میاره شما همبرگر رو خورده و سفارش سوسیس می دید مجددا سفارش توسط گارسون به آشپزخانه منتقل شده و بعد از یک دقیقه غذا آماده می شه . به همین ترتیب شما سه غذای دیگه رو سفارش داده و برای هر غذا 1 دقیقه معطل میشید . خوب شما هروز همین غذاهارو سفارش داده و برای آماده شدن هر غذا 1 دقیقه معطل می شید . گارسون با خودش فکر می کنه که برای اینکه هم خودش کمتر کار کنه و هم شما کمتر معطل بشید بیاد و 1 میز دیگه ای آماده از غذاهای شما رو تهیه کنه و بلافاصله بعد از سفارش شما غذا رو روی میزتون بزاره . در اینجا گارسون" باس " آشپزخانه " رم " و میز آماده " کش " در نظر گرفته می شن . بعد از چند روز شما همبرگر رو میخورید طبق عادت گارسون برای شما سوسیس میاره اما شما می گید که امروز املت می خوام! اینجا گارسون مجددا مجبور میشه که 1 دقیقه شما رو در انتظار بزاره تا املت رو براتون بیاره . در اینجا گارسون میز دومی رو تهیه می کنه که بر اساس انتخاب های دوم شما چیده شده . بدین ترتیب شما اگر غذایی رو سفارش بدین که در میز اول نباشه اما در میز دوم باشه بلافاصله غذا رو میل می کنید و معطل نمی شید . میز دوم در اینجا کش سطح دو یا " Cache L2 " هست . اصطلاحی که امروزه در رابطه با فول کش یا هالف کش گفته میشه همین کش سطح 2 هست . اصول کار پردازنده بدین صورت که پیش بینی دستورات بعدی رو کرده و جواب دستورات رو در حافظه ی نهان یا همون کش می ذاره . جالبه که بدونید پردازنده 90% دستورات بعدی رو درست حدس میزنه و اگر حدس پردازنده غلط از کار در بیاد مجبوره که به حافظه ی رم مراجعه کنه که همین مراجعه باعث تاخیر زیادی در کار پردازنده میشه . نکته ی که قابل گفتن هست اینه که این حافظه بسیار گران قیمت هست و به صرفه نیست که برای بالا بردن سرعت کامپیوتر حافظه کش تهیه کنید . ( مجبورید پردازنده هم عوض کنید!)

کتابداری را در نظر بگيريد که در يک کتابخانه مسئول تحويل کتاب به متقاضيان است . فرض کنيد در سيستم فوق ( درخواست و تحويل کتاب ) از مفهوم 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 بايت حافظه اصلی خواهند بود.


منابع : وبلاگ HWT و سايت زندگي

HWT
07-10-2005, 02:53
بابا يه لينك ميزاشتي از ما بي معرفت [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

mpsjavad
07-10-2005, 03:07
بابا يه لينك ميزاشتي از ما بي معرفت [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


با سلام ..

دوست عزيز اينجا از سر و روي انجمن معرفت ميباره بعد شما ميگي بي معرفت :ohno: :sad:

من عموما براي ذكر منبع لينك فعال قرار نميدم ... با تشكر .

Tornado2800
07-10-2005, 12:54
حق با آقا جواده

HWT
07-10-2005, 15:43
يادمه موقع كل كل شما با مجله ي كامپيوتر جوان منم به عنوان يه كاربر رفتم و تو نمايشگاه ازشون شكايت كردم [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
در كل فكر ميكنم نوشتن اسم خالي هيچ حق مطلبي رو ادا نميكنه . [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
به هر حال هر جور راحتيد اداعايي نداريم كه [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
موفق باشيد [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]