پردازنده

 کش (Cache) پردازنده چیست؟

 کش (Cache) پردازنده چیست؟

 کش (Cache) پردازنده چیست؟

کش پردازنده یا کش سی پی یو (حافظه پنهان پردازنده) نوعی حافظه است که سرعت دسترسی بسیار بالایی دارد و محاسبات را با سرعت بیشتری انجام می دهد.

این حافظه معمولاً داده هایی را که پردازنده به طور مداوم به آن ها نیاز دارد در خود ذخیره می کند. در نتیجه هر زمان که پردازنده به آن داده نیاز پیدا می کند دیگر لازم نیست تا به حافظه اصلی دسترسی پیدا کند.

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

فرض کنید که ما یک کتابخانه و یک فرد کتابدار داریم. اگر شخصی وارد کتابخانه شود و کتاب اول هری پاتر را بخواهد کتابدار به سمت قفسه ها می رود، کتاب را پیدا می کند و آن را به آن شخص می دهد. وقتی کار شخص با کتاب تمام شد کتاب مجددا به قفسه بازگردانده می شود. اگر هر شخص دیگری نیاز وارد کتابخانه شود و همان کتاب را بخواهد این چرخه مجددا تکرار می شود. این روش دقیقا همان روشی است که یک سیستم بدون حافظه کش عمل می کند.

چرا به کش پردازنده نیاز داریم؟

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

آیا حافظه کش تنها داده هایی را که زیاد مورد استفاده قرار می گیرند در خود ذخیره می کند؟

خیر، حافظه کش نوعی حافظه هوشمند است که به دنبال داده هایی که ممکن است در آینده نزدیک لازم شوند نیز می گردد. اگر بخواهیم به مثال کتابخانه برگردیم: وقتی شخص جلد اول هری پاتر را درخواست می کند کتابدار باهوش ما جلد دوم هری پاتر را نیز پیدا می کند و با خود می آورد. حال وقتی شخص جلد اول را خواند به احتمال زیاد از کتابدار جلد دوم را نیز می خواهد. در چنین حالتی نیز جلد دوم در کشو میز کتابدار آماده تحویل به آن شخص است. به طور مشابه وقتی حافظه کش داده ها را از حافظه اصلی می گیرد داده هایی را نیز که در آدرس هایی نزدیک آدرس داده اصلی هستند در خود ذخیره می کند. به این مقادیر داده های مجاور داده اصلی که به کش منتقل می شوند cache line گفته می شود.

کش پردازنده دو سطحی

بسیاری از هارد درایو ها و اجزای دیگر سیستم از کش یک سطحی استفاده می کنند اما کش پردازنده، یک کش دو سطحی است. در این حالت کش سطح 1 (L1) کوچکتر و سریع تر است در حالی که کش سطح 2(L2) کمی کند تر است بااین حال باز هم کش سطح 2 سرعت بسیاری بیشتری نسبت به حافظه اصلی سیستم دارد. کش L1 به دو بخش تقسیم می شود که عبارتند از: کش دستورات و کش داده ها. کش دستورات در واقع دستوراتی را که CPU برای پردازش اطلاعات به آن ها نیاز دارد در خود ذخیره می کند در حالی که کش داده، مقادیری را که برای دستور فعلی در حال اجرا نیاز هستند را ذخیره می کند. وظیفه کش L2 بارگذاری اطلاعات از حافظه اصلی است. اگر بخواهیم دوباره به مثال کتابخانه برگردیم: فرض کنید کشوی میز کتابدار همان کش L1 باشد. در یک روز شلوغ که میزان تقاضا برای کتاب ها زیاد است و کتابدار کتاب های زیادی را در کشوی میز خود قرار داده است این احتمال وجود دارد که کشوی میز به سرعت پر شود. اینجا جایی است که کش L2 وارد ماجرا می شود. یک کمد کتاب را در نزدیکی میز کتابدار به عنوان کش L2 در نظر بگیرید. وقتی کشو پر می شود کتابدار کتاب ها را در کمد قرار می دهد. در این صورت وقتی تقاضا برای یک کتاب محبوب زیاد باشد، کتابدار اول کشوی میز خود را جستجو می کند. اگر آن کتاب در آن جا نبود او به سراغ کمد کتاب ها می رود. به طور مشابه وقتی کش L1 پر می شود داده ها در کش L2 ذخیره می شوند. پردازنده ابتدا در کش L1 به دنبال داده مورد نیاز خود می گردد اگر آن را پیدا نکرد فقط کش L2 را جستجو می کند. اگر آن داده در کش L2 نیز موجود نباشد طی کردن مسیر طولانی تا حافظه اصلی و جستجو در آن اجتناب ناپذیر است.

L3 Cache یا کش لایه سوم پردازنده چیست ؟

کش L3 بین حافظه اصلی سیستم یا همان RAM و کش لایه دوم قرار می گیرد . هدف از طراحی و پیاده سازی کش L3 این است که اگر داده ها در کش لایه دوم پیدا نشدند در لایه سوم بتوان به آنها دسترسی داشت باید به این نکته توجه داشت که کش لایه سوم سرعت پایینتر اما ظرفیت بیشتری نسبت به کش لایه دوم دارد. همان طور که در تصویر پایین مشاهد میکنید ویژگی دیگر کش لایه 3 این میباشد که بین تمام هسته های پردازنده مشترک است.

کش لایه سوم پردازنده

eDRAM یا L4 Cache  یا کش لایه چهارم پردازنده چیست ؟

اگر اطلاعات مورد نیاز پردازنده روی کش سطح سوم هم وجود نداشته باشد، کش L4 در صورت موجود بودن وارد عمل خواهد شد.

حافظه کش سطح چهارم از نوع eDRAM بوده که فقط در پردازنده های برادول (BroadWell) با گرافیک مجتمع Iris Pro با حافظه 128 مگابایت وجود دارد. کمپانی اینتل حافظه کش L4 را Crystal Well نام گذاری کرده و این حافظه را همراه با خود پردازنده اما در تراشه ای جداگانه همانند شکل زیر گنجانده است.

کش لایه چهارم پردازنده

البته باید گفت که فقط اینتل نیست که به فکر افزایش حافظه کش پردازنده های خود افتاده است بلکه کمپانی AMD نیز سعی را بر این داشته که در پردازنده های کنسول XBOX One شرکت مایکروسافت از یک کش اضافه بهره ببرد.

آیا استفاده از کش بیشتر ایده خوبی است؟

بله و خیر. استفاده از کش بیشتر به شما اجازه می دهد تا داده ها را باسرعت بیشتری به دست بیاورید البته این در حالتی است که داده مورد نظر در کشL1 یا L2 موجود باشد. دوباره به مثال کتابخانه باز می گردیم. اگر شخصی یک کتاب محبوب را درخواست کند که در کشو و کمد کتاب ها موجود نباشد، کتابدار ابتدا کشو میز خود را جستجو می کند و سپس به سراغ کمد کتاب ها می رود آن جا را نیز می گردد. با این روش زمان زیادی تلف می شود تا کتابدار در نهایت به سراغ قفسه های اصلی کتاب در کتابخانه برود و کتاب مورد نظر را پیدا کند. به طور مشابه، CPU نیز ابتدا در کش L1 و سپس در کش L2 به دنبال داده مورد نظر می گردد و اگر آن را پیدا نکرد در نهایت درخواست خود را به حافظه اصلی می فرستد. همان طور که حتما متوجه شده اید در این روش زمان زیادی از پردازنده برای جستجو در کش های L1 و L2 تلف می شود. وقتی پردازنده داده مورد نظر را در یکی از کش ها پیدا کند اصطلاحا به آن Cache Hit گفته می شود و در شرایط دیگر به آن Cache miss گفته می شود. داده ها اغلب به صورت تناوبی به روزرسانی شده و با الگوریتم های متفاوتی جایگزین می شوند تا تا بیشترین مقدار Cache Hit اتفاق بیفتد.

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

 

هارد دیسک, وبلاگ

حافظه های هیبریدی (Hybrid Drive) چیست؟

حافظه های هیبریدی (Hybrid Drive) چیست؟

 

حافظه های هیبریدی (Hybrid Drive) چیست؟

درایوهای هیبریدی، حافظه ای هستند که از ترکیب یک واسطه حافظه سریع مانند درایوهای SSD با یک درایو HDD ساخته می شوند. بخش SSD در این ترکیب به عنوان حافظه کش (cash) برای اطلاعات ذخیره شده در HDD عمل می کند و یک کپی از داده های پرکاربرد جهت دسترسی سریع تر روی SSD ذخیره می شوند.

حافظه های هیبریدی (Hybrid Drive) چیست؟حافظه های HDD  از یک سری دیسکهای مغناطیسی گردان تشکیل شده اند که اطلاعات روی آنها ذخیره می شوند و توانایی ذخیره حجم زیادی از اطلاعات را دارند اما به دیل محدودیت در سرعت حرکت این دیسکها، سرعت خواندن و نوشتن روی آنها محدود می ­شود. اما حافظه های SSD از تعدادی آی سی NAND-flash  با سرعت خواندن و نوشتن بسیار بالاتر ساخته شده اند و محدودیت مکانیکی ندارند.حافظه های هیبریدی (Hybrid Drive) چیست؟

جهت پیاده سازی حافظه های هیبریدی دو روش وجود دارد: سیستمهای هیبریدی درایو دوگانه (dual-drive) و درایوهای هیبریدی solid-state. در سیستمهای هیبریدی درایو dual-drive، حافظه های HDD و SSD به صورت جداگانه در داخل یک لپ تاپ نصب می شوند و جهت بهینه سازی سرعت محل ذخیره اطلاعات پر کاربرد به صورت دستی توسط کاربر و یا اتوماتیک توسط سیستم عامل تعیین می شود. در درایوهای هیبریدی solid-state، هر دو حافظه HDD و SSD در یک بخش سخت افزاری پیاده سازی می شوند و بهینه سازی روش و مکان ذخیره اطلاعات توسط خود حافظه تعیین می شود.

حافظه های هیبریدی (Hybrid Drive) چیست؟اولین بار که حافظه هیبریدی اطلاعات را ذخیره و سپس لود میکند، سرعت آن با حافظه HDD تفاوتی زیادی ندارد اما به مرور زمان اطلاعات پر کاربرد مشخص می شوند، سرعت خواندن و نوشتن اطلاعات در آن بیشتر می شود. در نتیجه از آنجایی که حافظه های هیبریدی هر دو مزیت سرعت و ظرفیت را یکجا دارد و قیمت معقول تری به نسبت SSDها دارد جایگزین مناسبی برای SSD به نظر می رسد.

پردازنده, وبلاگ

مفهوم کش یا حافظه نهان

مفهوم کش یا حافظه نهان

مفهوم کش یا حافظه نهان

حافظه نهان اولیه (Level cache)

این نوع حافظه در تمام پردازنده‌های 486 و بالاتر از جمله پنتیوم درون پردازنده وجود دارد. این نوع حافظه باعث می‌شود داده‌ها با سرعت بیشتری در اختیار پردازنده قرار گیرند. اندازه این نوع حافظه در پردازنده‌های 80486 ، برابر 256 کیلوبایت است. بنابراین حافظه نهان اولیه را کاربران رایانه نمی‌توانند افزایش دهند. زیرا درون بدنه سرامیکی یا پلاستیکی پردازنده قرار دارد. پردازنده‌های پنتیوم 2 و 3 دارای حافظه نهان اولیه‌ای متشکل از 2 بخش 16 بیتی کیلوبایتی هستند که یکی برای داده‌ها و دیگری برای دستورالعملها است. این پردازنده‌ها در مجموع دارای 32 کیلوبایت حافظه نهان هستند.

اگر تا کنون یک کامپیوتر شخصی خریده باشید قطعا اصطلاح کش (Cache) را شنیده اید .کامپیوتر های مدرن دارای هر دو نوع کش های L1 و L2 حتی L3 هستند همچنین ممکن است از مقدار آن ( سلرون . سلرون دی . فول ) چیزهایی شنیده باشید این موضوع نشان میدهد که حافظه نهان یک فرایند مهم در علم کامپیوتر است که بروی هر کامپیوتری ظاهر می شود.
کش سازی یک فناوری مبتنی بر زیر سیستم حافظه کامپیوتر شما است . هدف اصلی یک کاشه شتاب دهی کامپیوتر شما و در عین حال پایین نگه داشتن قیمت آن است . کش سازی به شما امکان می دهد تا وظایف کامپیوتر خود را با سرعت بیشتری انجام دهید. برای درک ایده اصلی موجود در پشت یک سیستم کش اجازه دهید کار را با یک مثال فوق العاده ساده آغاز کنیم که برای نشان دادن مفاهیم کش سازی از یک کتابدار(پردازنده)استفاده می کند. اجازه بدهید یک کتابدار (پردازنده) را در پشت میزش تصور کنیم .او آنجا نشسته است تا کتبی که میخواهید را در اختیار شما قرار دهد برای ساده تر کردن وضعیت اجازه بدهید فرض کنیم که شما خودتان (کاربر پشت کامپیوتر) نمی توانید کتاب مورد نظر را بردارید شما باید کتاب مورد نظر خود برای مطالعه را از کتابدار (پردازنده) بخواهید تا وی آن را از یک مجموعه قفسه (یعنی بخش های مختلف پردازنده اعداد صفر و یک را ترجمه کند که این اعداد در RAM هستند) در سالن نگهداری کتابها (RAM ) برای شما بیاورد ابتدا اجازه بدهید کار را با یک کتابدار فاقد کاشه آغاز کنیم .
اولین مشتری (اولین برنامه ایی که شما اجرا کرده اید ) از راه میرسد او کتاب موبی دیک (یک برنامه مثل فتو شاپ) را در خواست میکند کتابدار (پردازنده) به سالن نگهداری کتاب (RAM) رفته و کتاب مورد نظر را برداشته به بخش مراجعه برگشته(یعنی ترجمه می کند و به مانیتور میفرسته) و کتاب را به مشتری می دهد بعدا مشتری برای باز گرداندن کتاب به کتابخانه بر می گردد (برنامه را می بندد) کتاب دار (پردازنده) کتاب مورد نظر را گرفته و آن را به سالن نگهداری بر می گرداند
سپس کتابدار به بخش مراجعه باز گشته (یعنی منتظر اجرای فرمانهای بعدی شماست (حتی حرکت موس) ) و منتظر مشتری بعدی میماند فرض کنیم مشتری بعدی نیز کتاب موبی دیک را در خواست کند(یعنی دوباره برنامه فتو شاپ را اجرا کنیم) به این ترتیب کتابدار باید به سالن نگهداری(RAM) برگردد تا کتابی را که اخیرا با آن سرو کار داشته است را برداشته و به مشتری (کاربر) تحویل دهد.در این مدل کتابدار (پردازنده) ناچار است برای آوردن هر کتاب (اجرای یک برنامه) یک چرخه کامل را طی نماید حتی کتاب های مشهوری که به دفعات در خواست شده است (یعنی برنامه هایی که به دفعات اجرا می شوند و بسته می شوند).
اجازه دهید یک کوله پشتی (حافظه نهان) را در اختیار کتابدار قرار دهیم تا بتواند 10 کتاب را در آن ذخیره کند (یعنی کتابدار دارای یک کاشه 10 کتابی است ) او در این کوله پشتی حداکثر 10 عدد از کتابهایی را نگهداری می کند که مشتریان برگردانده اند اجازه دهید از مثال قبلی استفاده کنیم اما اینبار با کتابداری که به کاشه سازی جدید و بهبود یافته مجهز شده است.

حافظه نهان ثانویه

در رایانه‌های با پردازنده 486 و بالاتر ، برای بالابردن کارآیی رایانه معمولا از حافظه نهان ثانویه نیز استفاده می‌شود. این حافظه در رایانه‌های قبل از پنتیوم 2 و 3 این نوع حافظه در کنار پردازنده بر روی کارت یا کارتریج پردازنده قرار گرفته است و به صورت ریز مجتمع با پردازنده است. در این پردازنده‌های نسل دوم سلرون و بعد از آن ، حافظه نهان ثانویه در داخل خود پردازنده قرار گرفته و اندازه آن بین 128 تا 256 کیلوبایت است. پردازنده آتلون (کا7) از 512 کیلوبایت تا 8 مگابیت حافظه نهان ثانویه را پشتیبانی می‌کند.

حافظه نهان ثانویه حافظه نهان اولیه نوع پردازنده
__ __ 386 اینتل
__ 16 و 8 کیلوبایت 486 اینتل
__ 16 کیلوبایت پنتیوم کلاسیک اینتل
__ 32 کیلوبایت پمنتیوم ام‌ام‌ایکس اینتل
512 کیلوبایت 32 کیلوبایت پنتیوم 2 اینتل
256 یا 512 کیلوبایت یا یک مگابایت 16 کیلوبایت پنتیوم پرو اینتل

مادربردها معمولا دارای حداقل 256 کیلوبایت از این نوع حافظه نهان هستند. بنابراین می‌توان گفت مقدار حافظه نهان بستگی به عوامل زیر دارد :

1. نوع پردازنده
2. اندازه حافظه اصلی
3. نوع تراشه‌های مجتمع (مجموعه تراشه مادربرد) نوع پردازنده

چنانچه حافظه اصلی در حدود 32 مگابایت باشد، 256 کیلوبایت حافظه نهان ثانویه کافی است. اما برای حافظه بین 32 مگابایت بهتر است مادربرد رایانه دارای 512 کیلوبایت حافظه نهان ثانویه داشته باشد. بالاخره چنانچه بیشتر از 64 مگابات باشد بهتر است از یک مگابایت حافظه نهان ثانویه استفاده شود. بنابراین اصل کلی در مورد حافظه نهان این است که هرچه اندازه حافظه نهان ثانویه بزرگتر ، مفیدتر است.

فرض کنیم که شما هر روز به رستوران می رید . هر روز راس ساعت 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 می توان در رابطه با اکثر زير سيستمهای فوق استفاده تا کارآئی آنان افزايش يابد.