بستن فهرست
کانال آموزشی تلگرام

حافظه کش یکی از چیزهاییه که تو مشخصات فنی پردازنده ها می بینین . شاید براتون سوال باشه که حافظه کش چیه و این که میگن کش سطح 1 و 2 و … چیه . پس تا انتهای پست همراه من باشید تا مفصل توضیح بدم .

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

حافظه کش یا Cache Memory یا حافظه نهان یا حافظه پنهان ، حافظه بسیار سریع از نوع SRAM هست که برای جلوگیری از تاخیر زمانی بین پردازنده و حافظه رم بوجود اومده . حافظه کش تقریبا از سال 1980 در پردازنده ها وجود داره . در واقع حافظه کش ، یه حافظه کوچولو ، سریع و گرون تر از حافظه رم هست که همیشه مقداری از اطلاعات موجود در رم رو درون خودش نگهداری می کنه تا پردازنده خیلی زودتر به اون اطلاعات دسترسی داشته باشه .

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

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

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

لازمه بگم که املای درست کش به صورت Cache هست . کلمه Cash به معنی پول نقد با این حافظه Cache فرق داره .

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

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

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

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

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

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

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

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

قبلا برای هر هسته ، یه حافظه کش مشخص با مقدار ثابت در نظر می گرفتن . مثلا اگه پردازنده ای 4 تا هسته داشت ، 4 تا حافظه کش با مقدار ثابت ( مثلا 64 کیلو بایت ) در نظر میگرفتن . تو این حالت اگه یه دونه از هسته ها به کش بیشتر از 64 کیلوبایت نیاز داشت باید میرفت سراغ حافظه اصلی یا همون حافظه RAM .

حافظه کش اشتراکی سطح 3 در CPU

حافظه کش اشتراکی سطح 3 در CPU

اما با طراحی کش هوشمند یا Smart Cache که توسط اینتل انجام شد ، این مشکل برطرف شد . تو حالت اسمارت کش ، یه حافظه کش کلی در نظر میگرن مثلا 1 مگابایت . هر هسته بسته به نیازش ، از کش استفاده میکنه مثلا اگه هسته 4 نیاز به کش بیشتر داشته باشه و هسته 2 بیکار باشه ، هسته 4 می تونه از کش بیشتری استفاده کنه . در واقع حافظه کش به صورت داینمیک تو هر لحظه می تونه بسته به نیاز هسته ها ، در اختیار هسته ها قرار بگیره . اینجوری دیگه در اکثر مواقع ، نیازی به سرک کشیدن به حافظه RAM نیست .

حافظه کش ثابت برای هر هسته پردازنده

حافظه کش ثابت برای هر هسته پردازنده

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

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

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

یکی دیگه از مزایای کش هوشمند یا کش اشتراکی اینه که اگه یه دیتایی توسط هسته 1 به کش اومده باشه و هسته 2 هم به همون دیتا نیاز داشته باشه ، دیگه نیازی نیست که هسته 2 اون دیتا رو از رم به کش بکشه چون همونجا هست و می تونه استفاده کنه که این مسئله باعث افزایش سرعت میشه .

 

حافظه کش سطح 1 و 2 و 3 چیست ؟

چیز عجیب و غریبی نیست . فرض کنید یه پردازنده فقط یه حافظه کش داشته باشه مثلا 128 کیلوبایت ، وقتی اطلاعاتی که میخواد رو پیدا نکنه مجبور میشه به رم مراجعه کنه . اما اگه یه کش دیگه باشه که نقش زاپاس رو داشته باشه ، سرعت دسترسی به اطلاعات بیشتر میشه . فلسفه وجودی حافظه کش سطح 1 و 2 و 3 و حتی 4 هم همینه . نزدیک ترین حافظه کش به پردازنده میشه کش سطح 1 یا به انگلیسی L1 Cache که اون حرف L مخفف Level هست . اگه اطلاعات مورد نظر پردازنده توی کش سطح 1 نبود ، میره سراغ حافظه کش سطح 2 و اگه نبود میره سراغ حافظه کش سطح 3 و اگه نبود میره 4 و اگه نبود میره به سراغ حافظه رم و اگه اونجا هم نبود میره سراغ هارد .

معمولا حافظه سطح 1 ، به صورت جداگانه و مخصوص هر هسته طراحی میشه ( یعنی تقسیم نمیشه ) ، حافظه کش سطح 2 معمولا بین دو تا هسته تقسیم میشه و حافظه کش سطح 3 بین تمام هسته ها تقسیم میشه . البته کش سطح 2 می تونه به هر هسته هم اختصاص پیدا کنه . این دیگه بستگی به طراحی و معماری هسته ها و کش ها داره .

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

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

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

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

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

همونطور که در قسمت کش سطح 1 و 2 و 3 گفتم ، حافظه های کش به ترتیب مورد بررسی قرار میگیرن . اگه اون اطلاعات داخل کش 1 نباشه ، پردازنده سراغ کش 2 میره . همین اتفاق باعث تاخیر زمانی میشه . به این اتفاق میگن Cache Miss . به زبون ساده ، اگه اطلاعاتی که پردازنده لازم داره در حافظه کش باشه میگن Cache Hit و اگه نباشه میگن Cache Miss .

تمام دغدغه طراحان الکترونیک اینه که میزان Cache Hit رو بالا ببرن . میزان Cache Hit رو با درصد بیان می کنن . در حال حاضر میزان Cache Hit برای کش سطح 1 حدود 95 تا 97 درصد هست . یعنی احتمال اینکه اطلاعات مورد نیاز پردازنده در کش نباشه حدود 5 تا 3 درصد هست . البته در پردازنده های سریع و رده بالا معمولا مقدار Cache Hit 99 تا 100 درصد هست . این مسئله بستگی به معماری پردازنده ، الگوریتم کش و حجم کش سطح 1 داره .

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

شاید واستون این سوال پیش بیاد که خب چرا یه دفعه حافظه رم DRAM رو مثل حافظه کش SRAM نمی سازن که دیگه خلاص بشیم ؟ اول از همه اینکه ساخت حافظه SRAM به مقدار 4 گیگ یا 8 گیگ خیلی گرون تموم میشه ، انقدر گرون که تا الان نتونستن این کار رو بکنن . دوم اینکه حافظه DRAM خیلی متراکمه یعنی در حجم کم می تونیم مقدار حافظه زیادی درست کنیم . مثلا حافظه 16 یا حتی 32 گیگ از نوع DRAM در اندازه ماژول های فعلی قابل ساخته اما همین مقدار رو اگه بخوایم با حافظه SRAM در بیاریم اندازه فیزیکی رم خیلی بزرگ میشه . اینجوری هم باید ظاهر اسلات رم ها روی مادربورد رو تغییر بدن که خرج داره و هم اینکه هزینه ساخت رم SRAM خیلی زیاد میشه . خلاصه اینکه نمیشه اینکار رو کرد وگرنه این خارجیا تا الان پدرشو درآورده بودن !

این پست رو نوشتم تا با حافظه کش آشنا بشید . انشالا تو پست های بعدی در مورد نحوه کار کش و همینطور تاثیر کش در عملکرد پردازنده بیشتر توضیح میدم .

این مطلب رو برای دوستان تون هم بفرستین

با کلیک روی دکمه +1 به این مطلب امتیاز بدین .
راهنمای خرید اینترنتی - ابراهیم درویش
دسته بندی
موضوعات مرتبط
محمد امین زاده

محمدرضا امين زاده هستم ، مهندس الكترونيك و سردبير مجله علم فردا . علاقه زیادی به سخت افزار و طراحی مدارهای الکترونیکی دارم ، اگه فرصتی بمونه در زمینه ادیت فیلم و تصویر و طراحی رابط کاربری وب و اندروید مطالعه و تمرین می کنم .

حتما مطالب زیر رو هم بخونید

حمایت از علم فردا

نوشتن مطالب آموزشی به زبان ساده و قابل فهم برای همه ، کار بسیار سختیه . از طرفی ، نگهداری یک وب سایت آموزشی خرج داره ! اگر براتون امکان داره لطفا با پرداخت مبلغ کمی در هزینه های سایت سهیم باشید تا ما هم بتونیم با خیال راحت براتون بنویسیم و به سوال ها تون پاسخ بدیم . حمایت مالی از علم فردا

آداب نظر دادن در علم فردا

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

پاسخ دهید

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

سوال امنیتی *

35 دیدگاه

  • سلام مهندس من کامپیوترم رو یه هفتست خریدم چند روز اول خوب بود ی نرم افزار نصب کردم نمیدونم چیزی از ریجستری کم کرد یا اضافه کرد خلاصه کامپیوترم خیلی خیلی کند شد با اینکه سخت افزار قوی داشت هرکاری هم کردم قدرتش مثل قبل نشد تا اینکه دیروز یه نرم افزار نصب کردم قسمت حافظه کش من 8 مگ رو انتخاب کردم دقیقا مثل روز اول شد سرعت pc حتی بهتر اگه قبلا بازی رو ultra اجرا نمیکرد الان بالای 50 اجرا میکنه میخام بدونم این مقدار حافظه امنه خطری نداره ؟؟

  • سلام . مطالب خیلی ساده و عالی توضیح داده شد , خیلی ممنون , واقعا خدا قوت

  • حمیدرضا 11 مهر 1395

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

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

  • با سلام و ممنون از سایت خوبتون یک سوال داشتم در مورد تصویر پردازنده آیا این تصویر رنگی واقعی هست یا گرافیکی هست میخواستم بدونم تراشه پردازنده از جنس سیلسکون که روش بصورت میکروسکوپی معماری میشه واقعا چنین شکلی داره وبا چشم غیر مسلح میشه معماری داخلش رو دید؟

  • سلام
    ممنونم بابت توضیحاتتون استفاده کردم.

  • علی کهنموئی 12 تیر 1395

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

    • سلام
      رجیستر هم یه حافظه کوچیکتر و سریع تر هست که یه سری متغیرهای مهم و حیاتی رو داخل خودشون جا دادن و برای پردازش خیلی سریع ازشون استفاده میشه .

  • دوتا سوال داشتم 1-کش و رم دستورالعمل هلرو در خودشون ‌ذخیره میکنن یا داده هارو مثلا تو عمل مقایسه دو عدد از کجا میاد و دستور از کجا میاد2-رجیستر یا ثبات ها کارشون بعد پردازش دخیره سازی و انتقاله یعنی هم قبل پردازش ذخیره میکنن و هم بعد پردازش؟

  • عالی بود فقط من نمیفهمم وقتی سی پی یو اطلاعاتی رو میخاد دستورالعملو از کش میخاد یا داده رو؟

    • داده رو می خواد . پس خود پردازنده چه نقشی داره ؟ خودش دستورالعمل ها رو پردازش می کنه . دستورات توسط سیستم عامل به پردازنده فرستاده میشه . داخل پردازنده پر مدارات کنترلی و دیجیتالی هست که این دستورات رو انجام میدن .

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

  • مطالب خیلی مفیدی بود ممنونم

  • درود و سپاسگزار

  • درود
    ممنون از توضیحات روان و کاملتون، فقط یه سوالی واسم پیش اومده، من چیزی شبیه این نوشته رو حدودا یک ماه پیش در سایت دیگری خوندم
    (بخش مربوط به حافظه‌ی کش که از کتابخونه مثال زدید)
    از اونجایی که دقیقا مثالتون مثل این سایت بود ، برام سوال پیش اومد که شما از اونا کپی کردید یا اونا از شما ؟

    • سلام
      در مورد کش ، یکی مثال کتابخونه و یکی مثال چوب و الوار خیلی معروفه و همه استفاده می کنن چون خیلی قابل فهمه .
      ما خودمون با کپی کردن مطالب مخالفیم چون جلوی رقابت رو میگیره و خیلی خوب می دونیم کسی که کپی می کنه هیچ وقت هیچی نمیشه .
      ادبیات علم فردا مخصوص به خودشه و تمام مطالب ما تالیف میشن .

  • با سلام و درود بر شما . پست مفیدی بود اما من یه سوال داشتم اینکه گوشی های هوشمند هم حافظه cache دارن ؟

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

  • بچه ها دمتون گرم، خیلی کارتون درسته

  • نیما خرگوشه 11 فروردین 1395

    با سلام مرسی از سایت عالی تون من تازه با سایت تون آشنا شدم . از کجا باید بفهمیم حافظه کش سیستم مون چقدره ؟ راهی وجود داره از طریق ویندوز بفهمیم ؟

  • سلام
    سال نوتون مبارک دوستان
    عالی بود عالی
    مثال کتابخونه هم خیلی جالب بود.دم شما گرم
    موفق باشید

  • ملا لغتی 11 فروردین 1395

    سلام مهندس
    توی متن گفتی”حافظه کش سطح 2 معمولا بین دو تا هسته تقسیم میشه و حافظه کش سطح 3 بین تمام هسته ها تقسیم میشه”
    اما تصویر ذیل این جمله خیلی مناسب و مطابق متن نیست چون کش سطح 2 برای هر هسته اختصاصی نشون داده شده.
    با تشکر از زحمتی که کشیدی.مفید بود

  • سلام خدمت شما دوستان عزیزم که بی منت این اطلاعات با ارزش رو اینچنین با زبان ساده در اختیار من و دیگران قرار میدین .
    من هم مثل اکثر شما دوستان دانشجو هستم . دانشجوی رشته برق قدرت . دوست داشتم شرایطم به گونه ای بود که بتوانم حمایت مناسب مالی کنم اما افسوس ک دانشجو…(اگر هم کم بود عذرم رو پذیرا باشین)
    با آرزوی سالی پر از مهر و شادی

  • خیلی ممنون از مطالب مفید و در عین حال همه فهم.

  • ممنون عالی بود :**

  • علم فردا بی نظیره

    موفق باشــــــــــــــــــیــــــــــــــد

    • مهدی باقری 12 فروردین 1395

      واقعا همین طوره .

      با تشکر از آقای امین زاده

  • سلام . پس هر چقدر حافظه کش بیشتر باشه قدرت اجرای برنامه ها بیشتر میشه . پس با این تفاسیر یه پردازنده 8400 با 6 مگ کش از مثلا پردازنده آیوی بریج 2030 که فقط 3 مگابایت کش داره سریع تره. درسته؟ فناوری اسمارت کش 2030 هم اگر تمام 3 مگابایت رو به یه هسته بده که در حالت عادی 1.5 مگابایت هست قدرتش برابر یه هسته همین 8400 میشه.

    • سلام
      همیشه اینجوری نیست
      حافظه کش فقط یکی از عوامل تعیین کننده اس .
      معماری پردازنده ، تکنولوژی های بکار رفته ، تکنولوژی ساخت و همینطور قطعاتی که کنار پردازنده استفاده میشن هم تاثیر داره .

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