ScholarGate
دستیار

سلسله مراتب حافظه و حافظه‌های نهان (کش)

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

یافتن موضوع با PaperMindبه‌زودیFind papers & topics
Tools & resources
دریافت اسلایدها
Learn & explore
ویدیوبه‌زودی

Definition

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

Scope

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

Sub-topics

Core questions

  • چرا محلیت ارجاع، سلسله مراتب حافظه لایه‌ای را مؤثر می‌سازد؟
  • حافظه‌های نهان از نظر جایگذاری، انجمنی بودن، سیاست جایگزینی و نوشتن چگونه سازماندهی می‌شوند؟
  • چگونه انسجام زمانی که چندین حافظه نهان نسخه‌هایی از یک حافظه را نگهداری می‌کنند، حفظ می‌شود؟
  • حافظه مجازی چگونه آدرس‌ها را ترجمه می‌کند و حفاظت و توهم حافظه بزرگ را فراهم می‌آورد؟
  • ویژگی‌های DRAM و حافظه‌های نوظهور چگونه عملکرد سیستم را شکل می‌دهند؟

Key concepts

  • محلّیت زمانی و مکانی
  • hit و miss حافظه نهان
  • انجمنی بودن و سیاست جایگزینی
  • write-through و write-back
  • حافظه‌های نهان چندسطحی
  • انسجام حافظه نهان
  • حافظه مجازی و صفحه‌بندی
  • بافر نگاه به جلو ترجمه (TLB)
  • DRAM و پهنای باند حافظه
  • میانگین زمان دسترسی به حافظه

Key theories

محلّیت ارجاع
برنامه‌ها تمایل دارند داده‌های اخیراً دسترسی‌یافته را مجدداً استفاده کنند (محلّیت زمانی) و به آدرس‌های نزدیک دسترسی پیدا کنند (محلّیت مکانی)؛ سلسله مراتب حافظه با ذخیره‌سازی بلوک‌های اخیراً استفاده شده و واکشی همسایگان به طور همزمان، از هر دو بهره‌برداری می‌کند.
موازنه در طراحی حافظه نهان
عملکرد حافظه نهان توسط نرخ miss، جریمه miss و زمان hit تعیین می‌شود و از طریق اندازه، اندازه بلوک، انجمنی بودن، و سیاست‌های جایگزینی و نوشتن تنظیم می‌گردد؛ تحلیل‌های کلاسیک، miss‌های اجباری، ظرفیتی و تضاد را به عنوان اهداف این انتخاب‌ها شناسایی می‌کنند.

Mechanisms

هنگامی که پردازنده داده‌ای را درخواست می‌کند، ابتدا حافظه نهان بررسی می‌شود؛ یک "hit" (یافتن داده) داده را به سرعت بازمی‌گرداند، در حالی که یک "miss" (عدم یافتن داده) یک بلوک را از سطح پایین‌تر واکشی می‌کند و ممکن است بلوک دیگری را بر اساس سیاست جایگزینی از حافظه نهان خارج کند. عملیات نوشتن از طریق طرح‌های "write-through" یا "write-back" منتشر می‌شوند و پروتکل‌های انسجام، چندین حافظه نهان را سازگار نگه می‌دارند. حافظه مجازی یک مرحله ترجمه — از طریق جداول صفحه و بافر نگاه به جلو ترجمه (TLB) — اضافه می‌کند که آدرس‌های برنامه را به DRAM فیزیکی نگاشت می‌کند و در عین حال حفاظت را نیز اعمال می‌کند.

Clinical relevance

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

History

موریس ویلکس در سال ۱۹۶۵ حافظه نهان (یک 'حافظه برده') را پیشنهاد کرد و حافظه‌های نهان وارد ماشین‌های تجاری مانند IBM System/360 Model 85 شدند. حافظه مجازی با کامپیوتر اطلس در اوایل دهه ۱۹۶۰ آغاز شد و توسط مدل مجموعه کاری دنینگ رسمیت یافت. بررسی آلن جی اسمیت در سال ۱۹۸۲ دانش طراحی حافظه نهان را تثبیت کرد و حافظه‌های نهان چندسطحی و پروتکل‌های انسجام پیچیده با افزایش شکاف سرعت پردازنده-حافظه به استاندارد تبدیل شدند.

Debates

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

Key figures

  • Maurice Wilkes
  • Alan Jay Smith
  • Peter J. Denning
  • John L. Hennessy
  • David A. Patterson

Related topics

Seminal works

  • hennessy2019
  • smith1982cache
  • patterson2020

Frequently asked questions

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

Methods for this concept

Related concepts