تعریف حافظه کش Cache | آموزش خالی کردن کش گوشی(حافظه پنهان گوشی)

تعریف حافظه کش Cache | آموزش خالی کردن کش گوشی(حافظه پنهان گوشی)

تعریف حافظه کش Cache | آموزش خالی کردن کش گوشی(حافظه پنهان گوشی)

تعریف حافظه کش Cache | آموزش خالی کردن کش گوشی(حافظه پنهان گوشی)

تعریف حافظه کش Cache | آموزش خالی کردن کش گوشی(حافظه پنهان گوشی) تا انتهای مقاله همراه هیچ موبایل باشید تا مفصل توضیح بدیم .

تعریف حافظه کش Cache | آموزش خالی کردن کش گوشی(حافظه پنهان گوشی)
تعریف حافظه کش Cache | آموزش خالی کردن کش گوشی(حافظه پنهان گوشی)

حافظه کش یکی از چیزهاییه که تو مشخصات فنی پردازنده ها می بینین .

شاید براتون سوال باشه که حافظه کش چیه و این که میگن کش سطح ۱ و ۲ و … چیه .

پس تا انتهای پست همراه هیچ  موبایل باشید تا مفصل توضیح بدیم .

حافظه کش Cache چیست ؟

حافظه کش یا Cache Memory یا حافظه نهان یا حافظه پنهان ، حافظه بسیار سریع از نوع SRAM هست

که برای جلوگیری از تاخیر زمانی بین پردازنده و حافظه رم بوجود اومده .

حافظه کش تقریبا از سال ۱۹۸۰ در پردازنده ها وجود داره .

در واقع حافظه کش ، یه حافظه کوچولو ، سریع و گرون تر از حافظه رم هست

که همیشه مقداری از اطلاعات موجود در رم رو درون خودش نگهداری می کنه

تا پردازنده خیلی زودتر به اون اطلاعات دسترسی داشته باشه .

کش Cache در پردازنده 

یه کتابخونه رو در نظر بگیرید که یه کتابدار داره .

اتاق کتاب ها مثلا ۱۰ متر باهاش فاصله داره .

هر فردی که به کتابخونه میاد و درخواست کتاب می کنه ،

این کتابدار باید ۱۰ متر بره و ۱۰ متر هم برگرده و از بین انبوهی از کتاب ، کتاب مورد نظر رو تحویل دانشجو بده .

کتابدار اینجا نقش پردازنده رو داره و اون اتاق کتاب هم نقش حافظه رم .

حالا اگه کتابدار یه سری از کتاب های معروف و پر طرفدار رو بیاره روی میزش بچینه ،

سرعت دسترسی به کتاب ها بیشتر میشه .

این میز حکم حافظه کش در پردازنده رو داره .

یعنی باعث افزایش سرعت دسترسی میشه .

لازمه بگم که املای درست کش به صورت Cache هست .

کلمه Cash به معنی پول نقد با این حافظه Cache فرق داره .

 

چرا از حافظه کش استفاده میشه ؟

سریع ترین قطعه توی کامپیوتر ، پردازنده است .

پردازنده طبق دستوراتی که سیستم عامل بهش میده کار می کنه .

سیستم عامل روی هارد ذخیره شده ، از طرفی برنامه ها و فایل ها هم روی هارد ذخیره میشن .

همونطور که می دونید هارد یه قطعه الکترومکانیکی هست ،

یعنی برای دستیابی به اطلاعات باید یه سوزن ،

روی یه دیسک گردون بچرخه تا اطلاعات ذخیره شده رو بکشه بیرون .

این مسئله خیلی زمان میگیره . واسه همین ،

هارد سرعت خیلی خیلی کمتری نسبت به پردازنده داره .

واسه اینکه این مشکل پیش نیاد ، یه حافظه RAM طراحی کردن

که اول اطلاعات از هارد به رم و بعد به پردازنده منتقل بشه .

اما بازهم مشکل تاخیر زمانی وجود داشت .

حافظه RAM سرعت بیشتری نسبت به هارد داره اما در قیاس با پردازنده سرعتش کمتره .

یعنی اگه قرار بود پردازنده به صورت مستقیم با رم کار کنه ،

برای دریافت اطلاعات باید چندین کلاک پالس منتظر می موند .

خب این مسئله تو علم کامپیوتر یه فاجعه است

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

واسه اینکه سرعت پردازش رو بیشتر کنن ،

اومدن بین حافظه رم و پردازنده دوباره یه حافظه دیگه قرار دادن به نام حافظه کش یا Cache Mmeory .

تکنولوژی ساخت حافظه کش با حافظه رم متفاوته واسه همین سرعت بیشتری داره .

حافظه رم از جنس DRAM هست اما کش از جنس SRAM .

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

اما اشتباه فکر می کنید چون پردازنده ها داخل خودشون یه حافظه خیلی خیلی کوچولو دارن

به نام ثبات ها که برای دسترسی به اطلاعات با سرعت خیلی بالا استفاده میشه .

پس ترتیب قرار گیری حافظه ها در کامپیوتر به این شکله :

هارد ، حافظه رم ، حافظه کش ، ثبات ها که هر چی جلوتر بریم ، سرعت این حافظه ها بیشتر میشه .

حافظه کش اشتراکی یا کش هوشمند چیست ؟

قبلا برای هر هسته ، یه حافظه کش مشخص با مقدار ثابت در نظر می گرفتن .

مثلا اگه پردازنده ای ۴ تا هسته داشت ، ۴ تا حافظه کش با مقدار ثابت ( مثلا ۶۴ کیلو بایت ) در نظر میگرفتن .

تو این حالت اگه یه دونه از هسته ها به کش بیشتر از ۶۴ کیلوبایت نیاز داشت

باید میرفت سراغ حافظه اصلی یا همون حافظه RAM .

اما با طراحی کش هوشمند یا Smart Cache که توسط اینتل انجام شد ، این مشکل برطرف شد .

تو حالت اسمارت کش ، یه حافظه کش کلی در نظر میگرن مثلا ۱ مگابایت .

هر هسته بسته به نیازش ، از کش استفاده میکنه

مثلا اگه هسته ۴ نیاز به کش بیشتر داشته باشه و هسته ۲ بیکار باشه ،

هسته ۴ می تونه از کش بیشتری استفاده کنه .

در واقع حافظه کش به صورت داینمیک تو هر لحظه می تونه

بسته به نیاز هسته ها ، در اختیار هسته ها قرار بگیره .

اینجوری دیگه در اکثر مواقع ، نیازی به سرک کشیدن به حافظه RAM نیست .

مثلا  هسته ۲ مامور پردازش فتوشاپ میشه و هسته ۳ مامور پردازش برنامه میدیا پلیر .

خب مسلما هسته ۲ به کش بیشتری نیاز داره چون برنامه سنگین تری رو داره پردازش می کنه .

پس حجم کش بیشتری درخواست می کنه .

تو این حالت ۷۰ درصد از کش اشتراکی به هسته ۲ میرسه

و ۳۰ درصد هم در اختیار بقیه هسته هاست .

بعد از گذشت زمان ، شاید قضیه کلا برعکس بشه

و هسته ۲ دیگه فتوشاپ رو پردازش نکنه و کش درخواست نکنه .

یکی دیگه از مزایای کش هوشمند یا کش اشتراکی اینه که اگه یه دیتایی توسط هسته ۱ به کش اومده باشه

و هسته ۲ هم به همون دیتا نیاز داشته باشه ،

دیگه نیازی نیست که هسته ۲ اون دیتا رو از رم به کش بکشه چون همونجا هست

و می تونه استفاده کنه که این مسئله باعث افزایش سرعت میشه .

حافظه کش سطح ۱ و ۲ و ۳ چیست ؟

چیز عجیب و غریبی نیست .

فرض کنید یه پردازنده فقط یه حافظه کش داشته باشه مثلا ۱۲۸ کیلوبایت ،

وقتی اطلاعاتی که میخواد رو پیدا نکنه مجبور میشه به رم مراجعه کنه .

اما اگه یه کش دیگه باشه که نقش زاپاس رو داشته باشه ، سرعت دسترسی به اطلاعات بیشتر میشه .

فلسفه وجودی حافظه کش سطح ۱ و ۲ و ۳ و حتی ۴ هم همینه .

نزدیک ترین حافظه کش به پردازنده میشه کش سطح ۱ یا به انگلیسی L1 Cache که اون حرف L مخفف Level هست .

اگه اطلاعات مورد نظر پردازنده توی کش سطح ۱ نبود ،

میره سراغ حافظه کش سطح ۲ و اگه نبود میره سراغ حافظه کش سطح ۳ و اگه نبود میره ۴

و اگه نبود میره به سراغ حافظه رم و اگه اونجا هم نبود میره سراغ هارد .

معمولا حافظه سطح ۱ ، به صورت جداگانه و مخصوص هر هسته طراحی میشه ( یعنی تقسیم نمیشه ) ،

حافظه کش سطح ۲ معمولا بین دو تا هسته تقسیم میشه

و حافظه کش سطح ۳ بین تمام هسته ها تقسیم میشه .

البته کش سطح ۲ می تونه به هر هسته هم اختصاص پیدا کنه .

این دیگه بستگی به طراحی و معماری هسته ها و کش ها داره .

قدیما ، فقط حافظه کش سطح ۱ درون پردازنده تعبیه میشد

و بقیه کش ها درون یه چیپست بود که روی مادربورد قرار میگیرفت

و اون چیپست مجبور بود با سرعت کلاک مادربورد کار کنه که سرعت کمی بود .

بعدا حافظه کش سطح ۱ و ۲ رو داخل خود پردازنده قرار دادن

و اینجوری سرعت کلاک کش برابر با سرعت کلاک داخلی پردازنده میشه .

هرچی سطح حافظه کش بیشتر میشه ،

سرعتش کمتر میشه ولی در عوض حجمش بیشتر میشه .

نکته مهم اینه که بدونید هر ۳ تا سطح از کش ، سرعت بیشتری نسبت به حافظه رم دارن .

تعریف حافظه کش Cache | آموزش خالی کردن کش گوشی(حافظه پنهان گوشی)
تعریف حافظه کش Cache | آموزش خالی کردن کش گوشی(حافظه پنهان گوشی)

منظور از Cache Miss و Cache Hit چیست ؟

همونطور که در قسمت کش سطح ۱ و ۲ و ۳ گفتم ،

حافظه های کش به ترتیب مورد بررسی قرار میگیرن .

اگه اون اطلاعات داخل کش ۱ نباشه ، پردازنده سراغ کش ۲ میره .

همین اتفاق باعث تاخیر زمانی میشه .

به این اتفاق میگن Cache Miss .

به زبون ساده ، اگه اطلاعاتی که پردازنده لازم داره

در حافظه کش باشه میگن Cache Hit و اگه نباشه میگن Cache Miss .

تمام دغدغه طراحان الکترونیک اینه که میزان Cache Hit رو بالا ببرن .

میزان Cache Hit رو با درصد بیان می کنن .

در حال حاضر میزان Cache Hit برای کش سطح ۱ حدود ۹۵ تا ۹۷ درصد هست .

یعنی احتمال اینکه اطلاعات مورد نیاز پردازنده در کش نباشه حدود ۵ تا ۳ درصد هست .

البته در پردازنده های سریع و رده بالا معمولا مقدار Cache Hit 99 تا ۱۰۰ درصد هست .

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

 

چرا حافظه RAM رو مثل حافظه کش نمی سازن ؟

شاید واستون این سوال پیش بیاد

که خب چرا یه دفعه حافظه رم DRAM رو مثل حافظه کش SRAM نمی سازن که دیگه خلاص بشیم ؟

اول از همه اینکه ساخت حافظه SRAM به مقدار ۴ گیگ یا ۸ گیگ خیلی گرون تموم میشه ،

انقدر گرون که تا الان نتونستن این کار رو بکنن .

دوم اینکه حافظه DRAM خیلی متراکمه یعنی در حجم کم می تونیم مقدار حافظه زیادی درست کنیم .

مثلا حافظه ۱۶ یا حتی ۳۲ گیگ از نوع DRAM در اندازه ماژول های فعلی قابل ساخته

اما همین مقدار رو اگه بخوایم با حافظه SRAM در بیاریم اندازه فیزیکی رم خیلی بزرگ میشه .

اینجوری هم باید ظاهر اسلات رم ها روی مادربورد رو تغییر بدن

که خرج داره و هم اینکه هزینه ساخت رم SRAM خیلی زیاد میشه .

خلاصه اینکه نمیشه اینکار رو کرد وگرنه این خارجیا تا الان پدرشو درآورده بودن !

تعریف حافظه کش Cache | آموزش خالی کردن کش گوشی(حافظه پنهان گوشی)
تعریف حافظه کش Cache | آموزش خالی کردن کش گوشی(حافظه پنهان گوشی)

چطور کش گوشی اندروید را خالی کنیم؟

در این قسمت به بررسی نحوه پاک کردن کش گوشی اندروید می پردازیم.

برای پاک کردن دیتا و کش گوشی های اندروید تنها کافیست مراحل زیر را طی کنید.

وارد قسمت Settings گوشی شوید.

گزینه Storage را انتخاب کنید.

گزینه Cached Data را انتخاب کنید.

گزینه Clear را لمس کنید.

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

و نمی خواهید کش کل گوشی را پاک کنید باید از روش زیر استفاده کنید.

وارد تنظیمات گوشی شوید.

از قسمت برنامه ها، برنامه ی مد نظر را انتخاب کنید.

سپس گزینه Storage را انتخاب کرده و بعد از آن Cached Data و سپس Clear را لمس کنید.

این روش برای زمان هایی مناسب است

که مطمئن هستید یکی از برنامه های گوشی شما کش و دیتا بیشتری دارد.

معمولا این مسئله برای پیام رسان ها و برنامه های سوشال مدیا بیشتر رخ می دهد.

به طور مثال مشاهده ویدئوهای مختلف در اکسپلورر اینستاگرام

یا باز کردن انواع فایل ها در تلگرام باعث اشغال شدن فضای پنهان گوشی خواهد شد.

در صورتی که از این برنامه ها استفاده ی بیشتری دارید،

پیشنهاد می کنیم ابتدا کش همین برنامه ها را به صورت جداگانه خالی کنید.

در صورتی که باز هم مشکل کاهش سرعت گوشی حل نشد،

سراغ برنامه های بعدی بروید و یا اینکه به صورت کلی کش گوشی را خالی کنید.

گردآوری: هیچ موبایل

moazen
ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *