ScholarGate
دستیار

حافظه مشترک و سازگاری

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

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

Definition

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

Scope

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

Core questions

  • برنامه‌های موازی ممکن است چه ترتیبی از عملیات حافظه را فرض کنند؟
  • سازگاری ترتیبی چه تفاوتی با مدل‌های سازگاری آرام دارد؟
  • چرا مدل‌های آرام وجود دارند و چگونه حصارهای حافظه ترتیب مورد نیاز را بازیابی می‌کنند؟
  • چگونه انسجام و سازگاری با هم رفتار صحیح حافظه مشترک را تعریف می‌کنند؟

Key concepts

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

Key theories

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

Mechanisms

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

Clinical relevance

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

History

لامپورت سازگاری ترتیبی را در سال ۱۹۷۹ رسمی کرد. با افزایش تهاجمی‌تر شدن سخت‌افزار در بازآرایی دسترسی‌های حافظه برای عملکرد، مدل‌های سازگاری آرام در دهه‌های ۱۹۸۰ و ۱۹۹۰ در معماری‌ها گسترش یافتند، که منجر به تلاش برای تعریف و کنترل آن‌ها و در نهایت، ارائه مدل‌های حافظه مشخص و دقیق به زبان‌های برنامه‌نویسی شد.

Debates

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

Key figures

  • Leslie Lamport
  • Sarita Adve
  • Mark D. Hill
  • David E. Culler

Related topics

Seminal works

  • hennessy2019
  • culler1999

Frequently asked questions

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

Methods for this concept

Related concepts