أطلس السيليكونمرجع العتاد
English
المراجع/الذاكرة والتخزين
الذاكرة والتخزين

الذريات والحواجز وترتيب الذاكرة

تحديد تحديثات لا تتجزأ والترتيب المطلوب لنشر البيانات بأمان.

«عمل على معالجي» ليست نموذج ذاكرة.
الوصول الذري

وصول محدد لا يتجزأ.

تجربة تفاعلية

تتبّع التعليمة

تعمل على جهازك
١٢٣٤٥٦٧٨٩١٠
I١
F
D
E
M
W
I٢
F
D
E
M
W
I٣
F
D
E
M
W
I٤
F
D
E
M
W
I٥
F
D
E
M
W
I٦
F
D
E
M
W
F · جلبD · فكE · تنفيذM · ذاكرةW · كتابة
التعليمات٦
الدورات الكلية١٠
الدورة المعروضة١

يرفع التداخل معدل الإنجاز. تضيف الاعتماديات فراغات ما لم يسمح التنفيذ بالتمرير أو بعمل مستقل.

حدود هذا النموذج

نموذج تعليمي أحادي الإرسال من خمس مراحل. يضيف نمط الاعتماد دورتين فارغتين بين التعليمات؛ تختلف التعارضات والتمرير الحقيقيان.

تتبّع الآلية

ما الذي يحدث في الداخل

١

اختيار الضمان

تمنع العملية الذرية تجزؤ الوصول المحدد وتوفر معنى معرفًا للتزامن. تمنح relaxed الذرية دون ترتيب نشر عام. قد تزامن release/acquire البيانات حين تلاحظ acquire الإصدار المعني وفق قواعد اللغة. تفرض sequential consistency عقد ترتيب أقوى.

٢

احترام كل الطبقات

إعادة ترتيب المترجم والعتاد مسألتان مختلفتان. حاجز المترجم وحده لا يرتب كل وصول عتادي. تحتاج ذاكرة الأجهزة وDMA وسائل خاصة بالمنصة. lock-free لا تعني wait-free، وقد تسلسل ذرية متنافسة خيوطًا كثيرة.

استخدم ما فهمته

ما أثر ذلك في برنامجك

مهندس الأنظمة والعتاد

استدل بنموذج اللغة والبنية المحددين. استخدم وسائل معروفة بدل اختراع بروتوكول lock-free بالحدس.

مطوّر البرمجيات

غالبًا يكون mutex الاختيار الأوضح للصحة. قلل الحالة المشتركة المتغيرة قبل إضعاف الترتيب لأجل السرعة.

مثال عمليمثال للقراءة
// C++ publication example; one producer and one consumer
std::atomic<bool> ready{false};
int payload = 0;
// producer
payload = 42;
ready.store(true, std::memory_order_release);
// consumer, after observing true
if (ready.load(std::memory_order_acquire)) use(payload);
ارجع إلى المصدر

اقرأ المواصفات الأصلية

توضح هذه المراجع العقود الأساسية وتفاصيل التنفيذ. الرسومات هنا نماذج تعليمية مبسطة.

Linux · Memory barriersLinux kernel documentation
RISC-V · ISA specificationsRISC-V International

واصل تتبّع الفكرة

فهمت الفكرة؟ سجّل تقدّمك.