خانه / مقالات / الکترونیک / داده در کش (Cache) چگونه خوانده و نوشته می شود ؟
داده در کش - Write-allocate - Write-allocate - Write no-allocate - Write-through - Write-back

داده در کش (Cache) چگونه خوانده و نوشته می شود ؟

برای دسترسی به داده ها در کش و همچنین برای خواندن [1] ، نوشتن [2] و بالانویسی [3] داده ها بر روی حافظه‌‌های کش، الگوریتم‌ها و کنترل کننده‌های متعددی استفاده شده است. در این مقاله در مورد نحوه‌ی نوشتن و خواندن داده در داخل کش و همچنین در مورد روش‌های Write-allocate با Write-back و نیز Write no-allocate با Write-through  صحبت خواهد کرد.

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

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

اما همانطور که می‌دانیم داده ها همیشه از حافظه‌ی اصلی (RAM خارج از چیپ) به حافظه‌ی نهان (کش) انتقال پیدا می‌کند.

حال اگر پردازنده داده مورد نیاز خود را پیدا کند، Hit کش انجام می‌شود

و در صورتی که پردازنده موفق به پیدا کردن داده نباشد Miss کش اتفاق می‌افتد.

در زمان خواندن، وقتی Miss کش اتفاق بیافتد، داده ها طبق معمول از حافظه‌‌ی اصلی خوانده شده

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

در این حالت یک پنالتی [4] و تاخیر [5] برای پردازنده اضافه می‌شود.

اما در زمان نوشتن شرایط پیچیده‌تر می‌شود که در ادامه به آن اشاره خواهیم کرد.

روش Write-allocate و Write no-allocate برای نوشتن داده در زمان Miss کش

در زمان نوشتن ممکن است داده‌‌ی مورد نظر در حافظه‌ی کش موجود نباشد و به عبارتی در زمان نوشتن Miss رخ دهد

در این صورت برای ذخیره سازی و نوشتن داده بر روی کش دو سیاست وجود دارد:

  1. روش اول Write-allocate می‌باشد که در این روش بلوک داده از حافظه‌ خوانده شده، بر روی کش نوشته شده و در نهایت عمل write بروی کش انجام می‌شود؛
  2. روش دوم نیز به نام  Write no-allocate می‌باشد در این روش پردازنده مستقیما بر روی حافظه‌ی اصلی (RAM خارج از تراشه) داده رو می‌نویسد.

روش Write-through و Write-back برای نوشتن داده در زمان Hit کش

همچنین برای نوشتن، زمانی که Miss اتفاق نمی‌افتد و پردازنده داده مورد نظر که برای نوشتن آماده شده، پیدا می‌کند

در این صورت به طورکلی دو سیاست برای نوشتن وجود دارد؛

  1. روش اول ذخیره سازی مستقیما در حافظه اصلی و همچنین کش انجام می‌شود. به عبارتی دیگر داده‌ی نوشته شده هم در حافظه‌ی کش و هم در یک سطح پایین‌تر از کش‌ ذخیره می‌شود؛ به این روش Write-through یا Stored-through  گفته می‌شود
  2. روش دوم ذخیره سازی ابتدا در کش انجام شده سپس در زمانی که قرار است بازنویسی در حافظه‌ی اصلی رخ دهد، بلوک داده به حافظه اصلی انتقال می‌یابد. به این روش Write-back یا Copy-back گفته می‌شود.

لازم به ذکر است عملکرد Write-allocate معمولا با سیاست Write-back  انجام می‌شود و همیچنین عملکرد Write no-allocate با Write-through  انجام می‌شود.

به طور کلی عوامل و مسائلی نظیر عملکرد ، قابلیت اطمینان، پیچیدگی و… در انتخاب این روش ها موثر هستند

داده در کش - Write-allocate - Write-allocate - Write no-allocate - Write-through - Write-back

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

زیرنوشت

[1] Read

[2] Write

[3] Overwrite

[4] Penalty

[5] Latency

کپی و نشر این پست با ذکر منبع بلامانع است.

INeee.ir

کانال تلگرام

درباره ی حنیف فروزانی

حنیف
حنیف فروزانی، مهندس برق در گرایش الکترونیک دیجیتال می‌باشد. وی در حوزه‌ی انرژی‌های نو و تجدیدپذیر و پیاده‌سازی سامانه‌های اتوماسیون مبتنی بر PLCها فعال است.

همچنین ببینید

پردارش گفتار - انتقال گفتار

پردازش گفتار چیست؟ اهداف و انواع پردازش گفتار چه می باشد؟

این مقاله در مورد مفاهیم اولیه‌ی پردازش گفتار، اهداف و انوع آن و نیز در …

عضویت
اطلاع رسانی کن از
guest

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

0 Comments
بازخورد درون خطی
مشاهده همه نظرات
طراحی سایت
0
سوال یا پیشنهادی دارید؟ لطفاً کلیک کنید.x
()
x