سلسله مراتب حافظه

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به ناوبری پرش به جستجو

اصطلاح سلسله مراتب حافظه دربارهٔ طراحی معماری کامپیوتراستفاده می‌شود، وقتی درموردعملکرد طراحی معماری کامپوتر، پیش‌بینی الگوریتم و سازه‌های برنامه نویسی سطح پایین بحث می‌شود مانند ارجاع محلی."سلسله مراتب حافظه" در ذخیره‌سازی کامپیوترهر سطح را با زمان پاسخ متمایز می‌کند. از آنجا که زمان پاسخ، پیچیدگی، و ظرفیت با هم مرتبط هستند، سطوح نیز ممکن است با توجه به فناوری کنترل متمایز شود. بسیاری از بده بستان هادرتمایز قایل شدن در کارایی در سطح بالا شامل ساختارسلسله مراتب حافظه می‌شودبه عنوان مثال اندازه و فناوری هر مؤلفه؛ بنابراین مؤلفه‌های مختلف می‌توانندبه عنوان انئاع مختلف سلسله مراتب حافظه در نظر گرفته شوند(m1,m2,…) به گونه‌ای که هر کدام از این mها به عنوان یک تابعی به m بعدی در سلسله مراتب است. برای انتظارمحدوددر سطوح بالاتر، سطوح پایین ترباید ازطریق پر کردن بافر و سپس علامت دهی برای فعال کردن انتقال باید پاسخگو باشند

چهار سطح ذخیره‌سازی بزرگ وجود دارد[ویرایش]

  1. داخلی – ثباتهای پردازشگر و حافظه نهان
  2. اصلی - RAM سیستم و کارت کنترل
  3. ذخیره‌سازی انبوه آنلاین - ذخیره‌سازی ثانویه
  4. ذخیره‌سازی انبوه آفلاین- ذخیره‌سازی برای سومین بار

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

مثال استفاده ازاین اصطلاح[ویرایش]

در این جا برخی از نقل قول‌ها هستند.

  • اضافه کردن پیچیدگی سلسله مراتب حافظه را کند می‌کند.
  • تکنولوژی حافظه COMx فضای فلش را در سلسله مراتب گسترش می‌دهد.
  • یکی از راه‌های اصلی برای افزایش کارایی سیستم به حداقل رساندن پایین رفتن سلسله مراتب حافظه برای دستکاری اطلاعات.
  • زمان تأخیر و پهنای باند دو معیارهای مرتبط با حافظه کش و حافظه هستند. هیچ‌کدام از آنها یکسان نیستند، اما مخصوص به یک مؤلفه خاص از سلسله مراتب حافظه است
  • پیش‌بینی محل اطلاعات در سلسله مراتب حافظه دشوار است.
  • محل در سلسله مراتب حافظه زمان مورد نیاز رابرای رخ دادن واکشی اولیه، تعیین می‌کند.

کاربرد مفهوم[ویرایش]

تعداد سطوح در سلسله مراتب حافظه و عملکرد در هر سطح در طول زمان افزایش یافته‌است. برای مثال سلسله مراتب حافظه پردازنده اینتل هاسول موبایل ۲۰۱۳ عبارت است از:

  • ثبات‌های پردازشگر- سریعترین دسترسی ممکن (معمولاً۱چرخه CPU). دراندازه چند هزار بایت
  • حافظه کش
  • سطح 0(L0)کش‌های ریزعملیات - در اندازه ۶کیلوبایت
  • سطح1L1))کش‌های دستورالعمل - در اندازه ۱۲۸کیلوبایت
  • سطح 1L1))کش‌های داده - در اندازه ۱۲۸کیلوبایت. بهترین سرعت دسترسی حدود ۷۰۰ گیگابایت بر ثانیه است
  • سطح 2(L2) دستورالعمل و داده - در اندازه ۱مگابایت. بهترین سرعت دسترسی حدود ۲۰۰ گیگابایت برثانیه است
  • سطح 3(L3) کش به اشترک گذاشته شده - در اندازه ۶ مگابایت. بهترین سرعت دسترسی حدود ۱۰۰گیگابایت برثانیه است
  • سطح 4(L4) کش به اشترک گذاشته شده - در اندازه ۱۲۸مگابایت. بهترین سرعت دسترسی حدود ۴۰ گیگابایت برثانیه است
  • حافظه اصلی – دراندازه چندین گیگابایت. بهترین سرعت دسترسی حدود ۱۰ گیگابایت برثانیه است. دزموزد ماشین‌های NUMA، سرعت دسترسی یکسان نیست.
  • ذخیره‌سازی در دیسک – دراندازه چندین ترابایت. ازسال ۲۰۱۳، بهترین سرعت دسترسی ازیک درایو جامددرحدود ۶۰۰مگابایت برثانیه است.
  • ذخیره‌سازی ثالث – در اندازه بیش از یک بیلیون بایت. ازسال ۲۰۱۳، بهترین سرعت دسترسی حدود ۱۶۰مگابایت برثانیه است.

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

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

بسیاری از برنامه نویسان یک سطح از حافظه را فرماندهی می‌کنند. این کار خوب است تا زمانی که برنامه به یک دیوار اجرا برخورد می‌کند. سپس سلسله مراتب حافظه در طول بازیابی کد ارزیابی می‌شود.[۱]

منابع