تارا فایل

تحقیق حافظه نهان یا بافر cache


حافظه نهان (Cache) چیست؟

حافظه نهان یا کَش (Cache) قسمتی است که داده ها را به صورت موقتی برای پردازش سریع تر نگه می دارد. این قسمت می تواند به سرعت به درخواست های برپدازشی پاسخ دهد و داده ها را برای اجزای مختلف (نرم افزاری یا سخت افزاری) کامپیوتر آماده کند.
حافظه نهان (Cache) چیست؟
حافظه نهان یا کَش (Cache) قسمتی از حافظه است که داده هایی که ممکن است در آینده توسط سایر اجزا پردازش شوند را به صورت موقت در خود ذخیره می کند. این قسمت از حافظه می تواند به سرعت به درخواست های پردازشی پاسخ داده و داده ها را به سرعت آماده کند. داده های ذخیره شده در حافظه نهان (Cache) ممکن است داده هایی باشند که پس از پردازش (مثلاً پس از پردازش توسط واحد سخت افزاری CPU یا به صورت مجازی، پس از پردازش توسط سیستم عامل یا برنامه ها) به صورت مستقیم در این قسمت ذخیره می شوند یا داده هایی باشند که فقط کپی ای از داده های اصلی (مثلاً داده های موجود در حافظه جانبی یا به صورت مجازی، پرنده ها و داده های موجود در کامپیوتر) موجود باشند.

حافظه نهان یا کش می تواند به دو صورت سخت افزاری و مجازی باشد:
در نوع سخت افزاری، حافظه نهان قسمتی از واحد سخت افزاری مورد نظر (مثلاً CPUهای دارای این نوع حافظه یا هارد دیسک های دارای این نوع حافظه) است که عمل Caching را برعهده دارد. مکانیزم،ساختار، سرعت و کارایی حافظه نهان سخت افزاری با حافظه اصلی (RAM) تفاوت زیادی دارد. از این رو با افزایش حجم حافظه نهان سخت افزاری در واحدهایی مانند CPU، قسمت تمام شده آن بیشتر می شود. دلیل این که در همه جا از حافظه نهان استفاده نمی کنند، قیمت و هزینه تهیه بسیار زیاد آن نسبت به سایر حافظه ها است.
نحوه عملکرد حافظه نهان مجازی با سخت افزاری متفاوت است. این نوع حافظه نهان در واقع قسمتی از حافظه جانبی است که توسط برنامه ها مشخص می شود و برای دسترسی سریع تر، از این قسمت استفاده می کنند. این نوع حافظه نهان به صورت محلی (Local) کارایی ندارد. برای مثال، برنامه هایی مانند مرورگرهای وب، قسمتی از حافظه جانبی را تحت عنوان حافظه نهان وب (Web Cache) برای ذخیره سازی موقت داده های وب مانند صفحات وب، تصاویر، استایل ها و … استفاده می کنند و زمانی که کاربر قصد مشاهده صفحه یا تصویر درخواست شده را داشته باشد که در حافظه نهان وب مرورگر موجود باشد، مرورگر همان داده های کَش شده را به کاربر نشان می دهد. دراین فرایند دیگر داده های کش شده از طریق اینترنت یا شبکه بارگیری نمی شوند و باعث کاهش ترافیک شبکه، پنهای باند مصرفی، بار روی سرور شده و باعث بهبود فرایند می شوند. این قسمت از حافظه جانبی، تفاوتی با سایر قسمت های عادی حافظه ندارد و تنها توسط برنامه ها به عنوان حافظه نهان مجازی استفاده می شوند.

حافظه نهان (Cache) چه کاربردی دارد؟
زمانی که درخواست پردازشی شامل داده هایی باشد که در حافظه نهان ذخیره شده اند، داده های درخواستی به سرعت به جزء درخواست دهنده تحویل داده می شود. اما اگر درخواستی پردازشی شامل داده هایی باشد که در حافظه نهان موجود نباشند، در این صورت داده های درخواست شده از منبع اصلی خود (برای مثال حافظه های جانبی یا سرویس دهنده ها) دریافت شده سپس به جزء یا برنامه درخواست دهنده تحویل داده می شود. در این صورت عمل پردازش به کندی پیش خواهد رفت. درواقع حافظه نهان در مقایسه با حافظه های اصلی و جانبی، بسیار سریع تر قابل دسترسی و خواندن است و عمل پردازش را سریع تر می کند.
دو نوع cache که در زیر به آنها اشاره شده است عبارتند از:
• CACHE L1
نوعی cache که برای بهبود سرعت پردازش در پردازنده های I486 و سطح بالاتر تعبیه می شود. cache L1را که عموما حاوی 8KB است می توان در یک سیکل ساعت خواند، بنابراین در ابتدا این cache جستجو می شود.I486 یک cache L1دارد. پنیتیوم دارای دو cache است که یکی برای برنامه ها ودیگری برای داده ها می باشد.
• L2 CACHE
نوعی cache که متشکل از STATIC RAMمی باشد در مادربردهایی که از پردازنده های I486 یا سطح بالاتر استفاده می کنند. cache L2که عموما 128 کیلوبایت تا یک مگابایت هستد ازDRAMسریعتر است اما از cache L1موجود در تراشه CPU کندتر است. آن را LEVEL2 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 بایت حافظه اصلی خواهند بود.

موضوع تحقیق : حافظه نهان

محقق | مسعود داوری شماره دانشجویی : 921937379


تعداد صفحات : 5 | فرمت فایل : WORD

بلافاصله بعد از پرداخت لینک دانلود فعال می شود