حافظه‌ی نهان (Cache) و تاثیر آن در عملکرد پردازنده

  • نویسنده موضوع Kooki♡
  • تاریخ شروع
  • پاسخ‌ها 9
  • بازدیدها 186
  • Tagged users هیچ

ساعت تک رمان

Kooki♡

سرپرست بازنشسته بخش تکنولوژی
مقام‌دار بازنشسته
تاریخ ثبت‌نام
2020-07-21
نوشته‌ها
7,869
لایک‌ها
18,896
امتیازها
248
محل سکونت
❤Heart of Taehyung
کیف پول من
4,271
Points
0
اگر تا به‌حال به مشخصات پردازنده‌ی رایانه‌ی خود توجه کرده باشید حتما با واژه‌ای به نام کش (Cache) رو‌به‌رو شده‌اید، در واقع باید بدانید این واحد تاثیر قابل توجهی در سرعت و عملکرد پردازنده‌‌ها دارد، این بخش را با نام‌های حافظه‌ی نهان، حافظه‌ی میان‌گیر و حافظه‌ی CPU نیز می‌شناسند، همانطور که گفتیم حافظه‌ی کش نقش قابل ملاحظه‌ای در عملکر پردازنده دارد، برای آشنایی با این واحد و نحوه‌ی عملکرد آن با همیار آی تی همراه باشید.

Cpu-Cache-Performance

 
انجمن رمان نویسی دانلود رمان

Kooki♡

سرپرست بازنشسته بخش تکنولوژی
مقام‌دار بازنشسته
تاریخ ثبت‌نام
2020-07-21
نوشته‌ها
7,869
لایک‌ها
18,896
امتیازها
248
محل سکونت
❤Heart of Taehyung
کیف پول من
4,271
Points
0

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

کش (Cache) حافظه‌ی کوچکی داخل پردازنده است که همیشه مقداری از اطلاعات موجود در رم (RAM) را به صورت موقتی در خود نگهداری کرده و آن‌ها را برای پردازش در اختیار CPU قرار می‌هد، حافظه‌ی Cache حدودا از سال 1980 در پردازنده‌ها مورد استفاده قرار گرفت، نام این واحد از کلمه‌ی Cacher که در زبان فرانسوی به معنای “نهان کردن یا مخفی کردن” است گرفته شده.

در دهه‌های اولیه‌ی استفاده از کامپیوتر حافظه‌ی اصلی بسیار کند بود و در عین حال پردازنده‌ها نیز از سرعت بالایی برخوردار نبودند، با گذشت زمان و در اوایل سال 1980 در حالی که حافظه های رایانه‌ای هنوز سرعت کمی داشتند سرعت پردازنده‌ها به طرز چشمگیری افزایش یافت به طوری که حافظه‌‌ی اصلی و رم توان رقابت با سرعت پردازنده‌ها را نداشتند و وقت زیادی از پردازنده صرف انتقال اطلاعات از حافظه‌ به بخش پردازش CPU می‌شد، می‌توانید مقایسه‌ی سرعت رشد حافظه‌ی DRAM و CPU را در نمودار زیر مشاهده کنید:
 
انجمن رمان نویسی دانلود رمان

Kooki♡

سرپرست بازنشسته بخش تکنولوژی
مقام‌دار بازنشسته
تاریخ ثبت‌نام
2020-07-21
نوشته‌ها
7,869
لایک‌ها
18,896
امتیازها
248
محل سکونت
❤Heart of Taehyung
کیف پول من
4,271
Points
0
CPU-vs-DRAM-Speed-Performance

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

Memory-Levels

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

 
انجمن رمان نویسی دانلود رمان

Kooki♡

سرپرست بازنشسته بخش تکنولوژی
مقام‌دار بازنشسته
تاریخ ثبت‌نام
2020-07-21
نوشته‌ها
7,869
لایک‌ها
18,896
امتیازها
248
محل سکونت
❤Heart of Taehyung
کیف پول من
4,271
Points
0

حافظه‌ی کش (Cache) چگونه کار می‌کند؟​

برای اینکه بهتر با مفهوم کش و عملیات Caching آشنا شوید نحوه‌ی عملکرد این قسمت را با مثالی ساده برای شما توضیح می‌دهیم:

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

Kooki♡

سرپرست بازنشسته بخش تکنولوژی
مقام‌دار بازنشسته
تاریخ ثبت‌نام
2020-07-21
نوشته‌ها
7,869
لایک‌ها
18,896
امتیازها
248
محل سکونت
❤Heart of Taehyung
کیف پول من
4,271
Points
0
حافظه Cache پردازنده نیز به همین صورت است، این حافظه‌ها با حجم کم خود (در حد چند مگابایت) و ساختار خاصی که دارند باعث میشوند سرعت جستجو در آن‌ها تا حد چشمگیری افزایش یافته و به همین دلیل در سرعت پردازنده نقش چشمگیری ایفا می‌کنند، اطلاعاتی که CPU بیشتر به آن‌ها احتیاج دارد در حافظه کش ذخیره می‌شوند تا سرعت پردازنده بالاتر رود، در اکثر پردازنده‌های امروزی چند لایه حافظه کش قرار دارد (تا 3 یا 4 لایه)، این بخش تاثیر مستقیمی در قیمت پردازنده‌ها نیز دارد!

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

Kooki♡

سرپرست بازنشسته بخش تکنولوژی
مقام‌دار بازنشسته
تاریخ ثبت‌نام
2020-07-21
نوشته‌ها
7,869
لایک‌ها
18,896
امتیازها
248
محل سکونت
❤Heart of Taehyung
کیف پول من
4,271
Points
0
طبق تعریف بالا هنگامی که داده‌ای به پردازنده منتقل می‌شود بخشی از اطلاعات مرتبط با آن نیز منتقل شده و در حافظه‌ی Cache پردازنده ذخیره می‌شود چراکه به احتمال زیاد پردازنده در عملیات بعدی خود به آن‌ها احتیاج خواهد داشت، با انجام این کار سرعت پردازش داده‌ها افزایش چشم‌گیری خواهد داشت.

معمولا در پردازنده‌های امروزی حافظه‌ی کش از چند لایه (3 یا 4 لایه) تشکیل شده‌ است، این لایه‌ها به ترتیب L1، L2، L3، L4 نامیده می‌شوند، میزان حجم این حافظه‌ها به صورت زیر تقسیم‌بندی می‌شود:

L4 > L3 > L2 > L1
 
انجمن رمان نویسی دانلود رمان

Kooki♡

سرپرست بازنشسته بخش تکنولوژی
مقام‌دار بازنشسته
تاریخ ثبت‌نام
2020-07-21
نوشته‌ها
7,869
لایک‌ها
18,896
امتیازها
248
محل سکونت
❤Heart of Taehyung
کیف پول من
4,271
Points
0
سرعت عملکرد این لایه‌ها نیز به صورت زیر دسته‌بندی می‌شود:

L1 > L2 > L3 > L4

همانگونه که متوجه شده‌اید لایه‌ی L1 کمترین اندازه را داشته ولی در عین حال از بیشترین سرعت برخوردار است و در طرف مقابل سطح L4 بیشترین حجم و کمترین سرعت را نسبت به دیگر لایه‌ها دارد.

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

Kooki♡

سرپرست بازنشسته بخش تکنولوژی
مقام‌دار بازنشسته
تاریخ ثبت‌نام
2020-07-21
نوشته‌ها
7,869
لایک‌ها
18,896
امتیازها
248
محل سکونت
❤Heart of Taehyung
کیف پول من
4,271
Points
0
ساختار لایه‌های کش در پردازنده‌های مختلف، متفاوت می‌باشد، در برخی از پردازنده‌ها لایه‌ها دارای ساختار پوششی هستند یعنی یک کپی از اطلاعات موجود در کش سطح 1 در سطح 2 نیز وجود دارد، همچنین یک کپی از اطلاعات موجود در کش سطح 2 در کش سطح 3 موجود است، علاوه بر این ساختار طرح دیگری نیز در سطوح کش وجود دارد به این‌صورت که هیچ‌یک از داده‌های موجود در لایه‌ها با دیگری یکسان نخواهند بود.

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

Kooki♡

سرپرست بازنشسته بخش تکنولوژی
مقام‌دار بازنشسته
تاریخ ثبت‌نام
2020-07-21
نوشته‌ها
7,869
لایک‌ها
18,896
امتیازها
248
محل سکونت
❤Heart of Taehyung
کیف پول من
4,271
Points
0
در پردازنده‌های چند هسته‌ای (پردازنده‌های امروزی) معمولا هر هسته مقدار مشخصی حافظه‌ی کش اختصاصی و مقداری حافظه‌ی کش اشتراکی در اختیار دارد که بسته به پردازشی که در حال انجام آن است این مقدار متفاوت خواهد بود، طرح ساده‌ای از این مفهوم را در تصویر زیر مشاهده می‌کنید:

Cache-memory-hirearchy

 
انجمن رمان نویسی دانلود رمان

Kooki♡

سرپرست بازنشسته بخش تکنولوژی
مقام‌دار بازنشسته
تاریخ ثبت‌نام
2020-07-21
نوشته‌ها
7,869
لایک‌ها
18,896
امتیازها
248
محل سکونت
❤Heart of Taehyung
کیف پول من
4,271
Points
0

چرا کل حافظه‌ی کامپیوتر را از نوع Cache نمی‌سازند؟​

با مطالعه‌ی توضیحات بالا شاید این سوال برای شما پیش‌ بیاید که چرا کل حافظه‌ی سیستم را از نوع کش نمی‌سازند تا به این ترتیب سرعت کامپیوترها افزایش پیدا کند؟

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

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