تنظيم الذاكرة في أنظمة الحوسبة الحديثة. المعلوماتية وعلوم الكمبيوتر

11.04.2019

الفصل 11

تنظيم ذاكرة أنظمة الكمبيوتر

في أنظمة الحوسبة التي تجمع بين العديد من المعالجات أو الأجهزة المتوازية، تعد مهمة تنظيم الذاكرة بشكل صحيح واحدة من أهم المهام. لطالما كان الفرق بين سرعة المعالج والذاكرة حجر عثرة في الأجهزة الافتراضية ذات المعالج الواحد. تؤدي المعالجة المتعددة لأجهزة الكمبيوتر إلى مشكلة أخرى - مشكلة الوصول المتزامن إلى الذاكرة بواسطة عدة معالجات.

اعتمادًا على كيفية تنظيم ذاكرة الأنظمة متعددة المعالجات (متعددة الآلات)، يتم التمييز بين أنظمة الحوسبة ذات الذاكرة المشتركة (الذاكرة المشتركة) وأنظمة الكمبيوتر ذات الذاكرة الموزعة (الذاكرة الموزعة). في أنظمة الذاكرة المشتركة(غالبًا ما تسمى أيضًا الذاكرة المشتركة أو المشتركة)، ويتم التعامل مع الذاكرة كمورد مشترك، ويتمتع كل معالج بإمكانية الوصول الكامل إلى مساحة العنوان بأكملها. تسمى الأنظمة ذات الذاكرة المشتركة متصل بقوة(أنظمة مقترنة بشكل وثيق). يحدث إنشاء مماثل لأنظمة الحوسبة في كل من فئة SIMD وفي فئة MIMD. في بعض الأحيان، للتأكيد على هذا الظرف، يتم تقديم فئات فرعية خاصة، باستخدام الاختصارات SM-SIMD (الذاكرة المشتركة SIMD) وSM-MIMD (الذاكرة المشتركة MIMD) للإشارة إليها.

في الخيار مع الذاكرة الموزعةكل معالج له ذاكرته الخاصة. يتم الجمع بين المعالجات الخامسالشبكة ويمكنهم، إذا لزم الأمر، تبادل البيانات المخزنة في ذاكرتهم، ونقل ما يسمى ببعضهم البعض رسائل.ويسمى هذا النوع من الطائرات متصلة بشكل ضعيف(أنظمة مترابطة بشكل فضفاض). توجد أيضًا أنظمة مقترنة بشكل فضفاض في كل من فئتي SIMD وMIMD، وفي بعض الأحيان، للتأكيد على هذه الميزة، يتم تقديم الفئات الفرعية DM-SIMD (الذاكرة الموزعة SIMD) وDM-MIMD (الذاكرة الموزعة MIMD).

في بعض الحالات، يتم استدعاء أنظمة حوسبة الذاكرة المشتركة معالجات متعددة,والأنظمة ذات الذاكرة الموزعة - com.mtslticomputers.

الفرق بين الذاكرة المشتركة والموزعة هو الفرق في بنية الذاكرة الافتراضية، أي كيف تبدو الذاكرة من جانب المعالج. من الناحية المادية، ينقسم كل نظام ذاكرة تقريبًا إلى مكونات مستقلة يمكن الوصول إليها بشكل مستقل. ما يفصل الذاكرة المشتركة عن الذاكرة الموزعة هو كيفية تفسير نظام الذاكرة الفرعي لعنوان الخلية المستلم من المعالج. على سبيل المثال، لنفترض أن المعالج ينفذ تعليمات التحميل RO، i، والتي تعني "تحميل السجل R0 بمحتويات الخلية i." في حالة الذاكرة المشتركة، i هو عنوان عالمي، وبالنسبة لأي معالج فإنه يشير إلى نفس الخلية. في نظام الذاكرة الموزعة، i هو العنوان المحلي. إذا قام معالجان بتنفيذ تعليمات التحميل RO، i، فسيصل كل منهما إلى الموقع i في ذاكرته المحلية، أي مواقع مختلفة، وقد تكون سجلات R0 محملة بقيم غير متساوية.

الفرق بين نظامي الذاكرة يجب أن يأخذه المبرمج بعين الاعتبار لأنه يحدد طريقة تفاعل أجزاء البرنامج المتوازي. في خيار الذاكرة المشتركة، يكفي إنشاء بنية بيانات في الذاكرة وتمرير المراجع إلى هذه البنية إلى إجراءات فرعية متوازية. في نظام الذاكرة الموزعة، من الضروري أن يكون لديك نسخة من البيانات المشتركة في كل ذاكرة محلية. يتم إنشاء هذه النسخ عن طريق تضمين البيانات المشتركة في الرسائل المرسلة إلى معالجات أخرى.

الذاكرة المتداخلة

ماديًا، تتكون ذاكرة نظام الكمبيوتر من عدة وحدات (بنوك)، والمشكلة المهمة هي كيفية توزيع مساحة العنوان في هذه الحالة (مجموعة كافة العناوين التي يمكن للمعالج توليدها). تتمثل إحدى طرق توزيع العناوين الافتراضية عبر وحدات الذاكرة في تقسيم مساحة العنوان إلى كتل متسلسلة. إذا كانت الذاكرة تتكون من صالبنوك، ثم الخلية التي تحتوي على العنوان أنا مع التقسيم كتلة تلو الأخرى، سيكون في البنك برقم أنا/ ن. في النظام الذاكرة المتداخلة(الذاكرة المشذرة) توجد عناوين متتالية في بنوك مختلفة: الخلية التي تحتوي على العنوان i موجودة في البنك مع الرقم i mod ص.لنفترض، على سبيل المثال، أن الذاكرة تتكون من أربعة بنوك، كل منها 256 بايت. في المخطط الموجه نحو الكتلة، سيتم تخصيص عناوين افتراضية للبنك الأول 0-255، والثاني - 256-511، وما إلى ذلك. في المخطط الذي يحتوي على عناوين متداخلة، سيكون للخلايا المتعاقبة في البنك الأول عناوين افتراضية 0، 4، 8 ، .. .. في الضفة الثانية - 1، 5، 9، إلخ. (الشكل 11.1، أ).

يتيح توزيع مساحة العنوان عبر الوحدات إمكانية معالجة طلبات الوصول إلى الذاكرة في وقت واحد إذا كانت العناوين المقابلة تنتمي إلى بنوك مختلفة. وقد يطلب المعالج الوصول إلى خلية في إحدى الدورات أنا وفي الدورة التالية - إلى الخلية j. لو أناوي في بنوك مختلفة، سيتم نقل المعلومات في دورات متتالية. تشير الدورة هنا إلى دورة المعالج، بينما تستغرق دورة الذاكرة الكاملة عدة دورات للمعالج. وبالتالي، في هذه الحالة، لا يتعين على المعالج الانتظار حتى تكتمل الدورة الكاملة للوصول إلى الخلية أنا. تتيح لك هذه التقنية زيادة عرض النطاق الترددي: إذا كان نظام الذاكرة يتكون من

أرز. 11.1- الذاكرة ذات العناوين البديلة: أ - توزيع العناوين؛ ب-العناصر المستخرجة بزيادات 9 من مجموعة 8 × 8

وجود عدد كافي من البنوك، فمن الممكن تبادل المعلومات بين المعالج والذاكرة بسرعة كلمة واحدة لكل دورة معالج، بغض النظر عن مدة دورة الذاكرة.

يعتمد القرار بشأن خيار توزيع العنوان (مبني على الكتلة أو مخطط) على الترتيب المتوقع للوصول إلى المعلومات. يتم تجميع البرامج بطريقة بحيث توجد التعليمات المتسلسلة في الخلايا ذات العناوين المتسلسلة، لذلك هناك احتمال كبير أنه بعد استخراج التعليمات من عنوان الخلية i، سيتم تنفيذ التعليمات من الخلية أنا + 1. يقوم المترجم أيضًا بوضع عناصر المتجهات في خلايا متسلسلة، لذلك في العمليات باستخدام المتجهات، يمكنك الاستفادة من طريقة التشذير. لهذا السبب، عادةً ما تستخدم المعالجات المتجهة شكلاً من أشكال تشذير العناوين. لا تزال المعالجات المتعددة للذاكرة المشتركة تستخدم عنونة الكتلة لأن أنماط الوصول إلى الذاكرة لأنظمة MIMD يمكن أن تختلف بشكل كبير. في مثل هذه الأنظمة، يكون الهدف هو توصيل المعالج بكتلة ذاكرة واستخدام أكبر قدر ممكن من المعلومات الموجودة فيه قبل التبديل إلى كتلة ذاكرة أخرى.

غالبًا ما توفر أنظمة الذاكرة مرونة إضافية عند استرداد متجهات العناصر. في بعض الأنظمة، من الممكن تحميل كل عنصر ن من المتجه في وقت واحد، على سبيل المثال عند استرداد عناصر المتجه الخامس, مخزنة في خلايا الذاكرة المتعاقبة؛ في ص= 4، ستعود الذاكرة يسمى التباعد بين العناصر خطوة بخطوةأو "خطوة"(خطوة). أحد الاستخدامات المثيرة للاهتمام لهذه الخاصية هو Matrix Access. إذا كانت خطوة الفهرس أكبر من عدد الصفوف في المصفوفة، فإن طلب الوصول إلى الذاكرة الفردي سيعيد جميع العناصر القطرية للمصفوفة (الشكل 11.1 ب). تقع مسؤولية ضمان وجود جميع عناصر المصفوفة المستخرجة في بنوك مختلفة على عاتق المبرمج.

نماذج معمارية الذاكرة لأنظمة الكمبيوتر

يتم تنفيذ عدة نماذج من بنيات نظام الذاكرة داخل كل من الذاكرة المشتركة والموزعة.

أرز. 11.2. تصنيف نماذج معمارية الذاكرة لأنظمة الكمبيوتر

في التين. يوضح الشكل 11.2 تصنيف هذه النماذج المستخدمة في أنظمة الحوسبة من فئة MIMD (وهذا ينطبق أيضًا على فئة S1MD).

نماذج معمارية الذاكرة المشتركة

في الأنظمة ذات الذاكرة المشتركة، تتمتع جميع المعالجات بقدرات متساوية ولكن يمكنها الوصول إلى مساحة عنوان واحدة. يمكن بناء ذاكرة واحدة ككتلة واحدة أو وحدات، ولكن عادة ما يتم ممارسة الخيار الثاني.

تسمى أنظمة الحوسبة ذات الذاكرة المشتركة، حيث يصل أي معالج إلى الذاكرة بشكل موحد ويستغرق نفس الوقت أنظمة ذات وصول موحد للذاكرةويتم تحديده بالاختصار UMA (الوصول الموحد للذاكرة). هذه هي بنية الذاكرة VS المتوازية الأكثر شيوعًا للذاكرة المشتركة.

من الناحية الفنية، تفترض أنظمة UMA وجود عقدة تربط كل منها صالمعالجات مع كل توحدات الذاكرة. إن أبسط طريقة لبناء أجهزة الكمبيوتر هذه هي الجمع بين عدة معالجات (P i) وذاكرة واحدة (M p) عبر ناقل مشترك - كما هو موضح في الشكل. 11.3، أ.ومع ذلك، في هذه الحالة، يمكن لمعالج واحد فقط التواصل على الناقل في أي وقت، أي أنه يجب على المعالجات التنافس للوصول إلى السنبلة. عندما يختار المعالج P i تعليمات من الذاكرة، فإن المعالجات الأخرى يجب الانتظار حتى يصبح الإطار مجانيًا. لو الخامسيشتمل النظام على معالجين فقط، وهما قادران على العمل بأداء قريب من الحد الأقصى، حيث يمكن تشذير وصولهما إلى الناقل: بينما يقوم أحد المعالجين بفك التشفير وتنفيذ التعليمات، يكون للآخر الحق في استخدام الناقل لجلب البيانات. التعليمات التالية من الذاكرة. ومع ذلك، عند إضافة معالج ثالث، يبدأ الأداء في الانخفاض. إذا كان هناك عشرة معالجات في الناقل، فإن منحنى سرعة الناقل (الشكل H.3، أ)يصبح أفقيًا، لذا فإن إضافة المعالج الحادي عشر لم يعد يوفر زيادة في الأداء. يوضح المنحنى السفلي في هذا الشكل حقيقة أن الذاكرة والناقل لهما عرض نطاق ترددي ثابت يتم تحديده من خلال مزيج من وقت دورة الذاكرة وبروتوكول الناقل، وفي نظام متعدد المعالجات للناقل المشترك، يتم مشاركة عرض النطاق الترددي هذا بين معالجات متعددة. إذا كان وقت دورة المعالج أطول من دورة الذاكرة، فمن الممكن توصيل العديد من المعالجات بالناقل. ومع ذلك، في الواقع، عادة ما يكون المعالج أسرع بكثير من الذاكرة، لذلك لا يتم استخدام هذا المخطط على نطاق واسع.

أرز. 11.3. الذاكرة المشتركة: أ - دمج المعالجات باستخدام الناقل؛ ب - النظام مع ذاكرة التخزين المؤقت المحلية؛ الخامس- أداء النظام كدالة لعدد المعالجات الموجودة على الناقل؛ د - كمبيوتر متعدد المعالجات بذاكرة مشتركة تتكون من وحدات فردية

يظهر الشكل 1 طريقة بديلة لبناء كمبيوتر متعدد المعالجات بذاكرة مشتركة تعتمد على NML. 11.3، ز.هنا يتم استبدال الارتفاع بمفتاح يقوم بتوجيه طلبات المعالج إلى إحدى وحدات الذاكرة المتعددة. على الرغم من وجود العديد من وحدات الذاكرة، إلا أنها جميعها جزء من مساحة عنوان ظاهرية واحدة. وتتمثل ميزة هذا الأسلوب في أن المحول قادر على خدمة طلبات متعددة بالتوازي. يمكن توصيل كل معالج بوحدة الذاكرة الخاصة به والوصول إليها بأقصى سرعة مسموح بها. يمكن أن يحدث التنافس بين المعالجات عند محاولة الوصول إلى نفس وحدة الذاكرة في نفس الوقت. في هذه الحالة، يحصل معالج واحد فقط على حق الوصول، ويتم حظر المعالجات الأخرى.

لسوء الحظ، فإن بنية UMA لا تتوسع بشكل جيد للغاية. تحتوي الأنظمة الأكثر شيوعًا على 4-8 معالجات، وفي كثير من الأحيان 32-64 معالجًا. بالإضافة إلى ذلك، لا يمكن تصنيف هذه الأنظمة على أنها متسامحة مع الأخطاء، حيث أن فشل معالج واحد أو وحدة ذاكرة يستلزم فشل الكمبيوتر بأكمله.

هناك طريقة أخرى لبناء جهاز كمبيوتر بذاكرة مشتركة وهي الوصول إلى الذاكرة غير المتجانسة،يُشار إليه بـ NUM A (الوصول غير الموحد للذاكرة). لا يزال هذا يتضمن مساحة عنوان واحدة، ولكن كل معالج لديه ذاكرة محلية. يصل المعالج إلى ذاكرته المحلية مباشرة، وهو أسرع بكثير من الوصول إلى الذاكرة البعيدة من خلال محول أو شبكة. يمكن استكمال هذا النظام بالذاكرة العالمية، ثم تعمل أجهزة التخزين المحلية كذاكرة تخزين مؤقت سريعة للذاكرة العالمية. مثل هذا المخطط يمكن أن يحسن أداء الطائرة، ولكن لا يمكن أن يؤخر إلى أجل غير مسمى تسوية الأداء المباشر. إذا كان لكل معالج ذاكرة تخزين مؤقت محلية (الشكل 11.3.6)، فهناك احتمال كبير (ع> 0.9) أن الأمر أو البيانات المطلوبة موجودة بالفعل في الذاكرة المحلية. يؤدي الاحتمال المعقول لضرب الذاكرة المحلية إلى تقليل عدد مرات وصول المعالج بشكل كبير لالذاكرة العالمية وبالتالي يؤدي إلى زيادة الكفاءة. موقع نقطة الانعطاف في منحنى الأداء (المنحنى العلوي في الشكل 11.3، الخامس)،المقابلة للنقطة التي لا يزال عندها إضافة المعالجات فعالة تنتقل الآن إلى منطقة 20 معالجًا، والنقطة التي يصبح فيها المنحنى أفقيًا تنتقل إلى منطقة 30 معالجًا.

في إطار المفهوم نوما يتم تنفيذ عدة طرق مختلفة، يشار إليها بالاختصارات سوما،نسخة- نوما و إن سي سي- نوما.

في بنية ذاكرة التخزين المؤقت فقط(SOMA، بنية ذاكرة التخزين المؤقت فقط) يتم إنشاء الذاكرة المحلية لكل معالج كذاكرة تخزين مؤقت كبيرة للوصول السريع بواسطة المعالج "الخاص به". تعتبر ذاكرة التخزين المؤقت لجميع المعالجات بشكل جماعي بمثابة ذاكرة النظام العامة. لا توجد ذاكرة عالمية فعلية. يتم التعبير عن السمة الأساسية لمفهوم SOMA في الديناميكيات. هنا، لا ترتبط البيانات بشكل ثابت بوحدة ذاكرة محددة ولا تحتوي على عنوان فريد يظل دون تغيير طوال عمر المتغير. في بنية SOMA، يتم نقل البيانات إلى الذاكرة المؤقتة للمعالج الذي طلبها آخر مرة، بينما لا يتم إصلاح المتغير بعنوان فريد ويمكن وضعه في أي خلية فعلية في أي وقت. لا يتطلب نقل البيانات من ذاكرة تخزين مؤقت محلية إلى أخرى مشاركة نظام التشغيل في العملية، ولكنه يتضمن أجهزة إدارة ذاكرة معقدة ومكلفة. لتنظيم مثل هذا النظام، ما يسمى أدلة ذاكرة التخزين المؤقت.لاحظ أيضًا أنه لا تتم إزالة النسخة الأخيرة من عنصر البيانات من ذاكرة التخزين المؤقت أبدًا.

نظرًا لأنه يتم نقل البيانات في بنية COMA إلى ذاكرة التخزين المؤقت المحلية للمعالج المالك، فإن أجهزة الكمبيوتر هذه تتمتع بميزة أداء كبيرة مقارنة ببنيات NUM A الأخرى، ومن ناحية أخرى، إذا تم تخزين متغير واحد أو متغيرين مختلفين في نفس السطر من نفس ذاكرة التخزين المؤقت، مطلوبة بواسطة معالجين، يجب أن يتحرك خط ذاكرة التخزين المؤقت هذا ذهابًا وإيابًا بين المعالجات مع كل وصول للبيانات. قد تعتمد هذه التأثيرات على تفاصيل تخصيص الذاكرة وتؤدي إلى مواقف غير متوقعة.

نموذج مخبأ الوصول متماسك إلى الذاكرة غير المتجانسة(CC-NUMA، Сасhe بنية الذاكرة غير الموحدة المتماسكة) تختلف جوهريًا عن نموذج SOMA. لا يستخدم نظام CC-NUMA ذاكرة التخزين المؤقت، بل الذاكرة الموزعة فعليًا. لا يوجد نسخ للصفحات أو البيانات بين خلايا الذاكرة. لا يوجد برنامج لتمرير الرسائل. توجد ببساطة بطاقة ذاكرة واحدة، مع توصيل الأجزاء فعليًا بواسطة كابل نحاسي وأجهزة "ذكية". يعني تماسك ذاكرة التخزين المؤقت المستندة إلى الأجهزة أنه لا يلزم وجود برنامج لتخزين أو نقل نسخ متعددة من البيانات المحدثة. يتعامل مستوى الأجهزة مع كل هذا. يمكن الوصول إلى وحدات الذاكرة المحلية في العقد المختلفة للنظام في وقت واحد ويحدث بشكل أسرع من وحدات الذاكرة البعيدة.

الفرق بين النموذج و وصول ذاكرة التخزين المؤقت غير المتماسكة إلى الذاكرة غير المتجانسة(NCC-NUMA، بنية ذاكرة متماسكة غير مخبأة غير موحدة) من CC-NUMA واضح من الاسم. تفترض بنية الذاكرة مساحة عنوان واحدة، ولكنها لا توفر تناسقًا عالميًا للبيانات على مستوى الأجهزة. تقع إدارة استخدام هذه البيانات بالكامل على عاتق البرامج (التطبيقات أو المجمعات). على الرغم من هذا الظرف، الذي يبدو أنه عيب في البنية، فقد تبين أنه مفيد جدًا في زيادة أداء أنظمة الحوسبة باستخدام بنية ذاكرة من نوع DSM، والتي تمت مناقشتها في قسم "نماذج معماريات الذاكرة الموزعة".

بشكل عام، يتم استدعاء أجهزة الكمبيوتر ذات الذاكرة المشتركة، والتي تم إنشاؤها وفقًا لنظام NUMA معماريات ذات ذاكرة مشتركة افتراضية(بنيات الذاكرة المشتركة الافتراضية). تم اعتبار هذا النوع من الهندسة المعمارية، على وجه الخصوص، CC-NUMA، مؤخرًا نوعًا مستقلاً وواعدًا جدًا من أنظمة الحوسبة من فئة MIMD، لذلك ستتم مناقشة أجهزة الكمبيوتر هذه بمزيد من التفصيل أدناه.

نماذج من بنيات الذاكرة الموزعة

في نظام الذاكرة الموزعة، يكون لكل معالج ذاكرته الخاصة ويمكنه معالجتها فقط. يسمي بعض المؤلفين هذا النوع من النظام طائرات متعددة الآلات أو أجهزة كمبيوتر متعددة،مع التأكيد على حقيقة أن الكتل التي تم بناء النظام منها هي في حد ذاتها أنظمة حاسوبية صغيرة تحتوي على معالج وذاكرة. يُشار عادةً إلى نماذج البنى ذات الذاكرة الموزعة على أنها أبنية دون الوصول المباشر إلى الذاكرة البعيدة(نورما، لا يوجد وصول للذاكرة عن بعد). يأتي هذا الاسم من حقيقة أن كل معالج لديه حق الوصول إلى ذاكرته المحلية فقط. لا يمكن الوصول إلى الذاكرة البعيدة (الذاكرة المحلية لمعالج آخر) إلا من خلال تبادل الرسائل مع المعالج الذي يمتلك الذاكرة القابلة للعنونة.

تتميز هذه المنظمة بعدد من المزايا. أولاً، عند الوصول إلى البيانات، لا يوجد أي منافسة على الناقل أو المحولات - يمكن لكل معالج استخدام النطاق الترددي لمسار الاتصال بشكل كامل مع ذاكرته المحلية الخاصة. ثانيًا، يعني عدم وجود ناقل مشترك أنه لا توجد قيود مرتبطة بعدد المعالجات: حجم النظام يقتصر فقط على الشبكة التي تربط المعالجات. ثالثا، يتم التخلص من مشكلة تماسك ذاكرة التخزين المؤقت. يحق لكل معالج تغيير بياناته بشكل مستقل، دون القلق بشأن مطابقة نسخ البيانات الموجودة في ذاكرة التخزين المؤقت المحلية الخاصة به مع ذاكرات التخزين المؤقت للمعالجات الأخرى.

العيب الرئيسي لأجهزة الكمبيوتر ذات الذاكرة الموزعة هو تعقيد تبادل المعلومات بين المعالجات. إذا احتاج أحد المعالجات إلى بيانات من ذاكرة معالج آخر، فيجب عليه تبادل الرسائل مع ذلك المعالج. وينتج عن ذلك نوعان من التكاليف:

    يستغرق الأمر وقتًا لإنشاء رسالة وإرسالها من أحد الأشخاص! المعالج إلى آخر؛

    للرد على الرسائل الواردة من معالجات أخرى، يجب أن يتلقى المعالج المتلقي طلب مقاطعة وينفذ إجراء معالجة المقاطعة.

يظهر هيكل النظام ذو الذاكرة الموزعة في الشكل. 11.4. على اليسار! الأجزاء (الشكل 11.4، أ)يظهر عنصر معالجة واحد (PE). ويشمل) المعالج نفسه (P)، والذاكرة المحلية (M) واثنين من وحدات التحكم في الإدخال والإخراج (K o و CD على الجانب الأيمن (الشكل 11.4، ب)يعرض نظامًا رباعي المعالجات، يوضح كيفية إرسال الرسائل من معالج إلى آخر. فيما يتعلق بكل PE، يمكن اعتبار جميع عناصر المعالجة الأخرى ببساطة بمثابة أجهزة إدخال/إخراج. لإرسال رسالة إلى PE آخر، يقوم المعالج بتكوين كتلة بيانات في ذاكرته المحلية ويبلغ وحدة التحكم المحلية الخاصة به بالحاجة إلى نقل المعلومات إلى جهاز خارجي. عبر شبكة الاتصال البيني، يتم إرسال هذه الرسالة إلى وحدة تحكم الإدخال/الإخراج المتلقية لـ PE المتلقي. يجد الأخير مكانًا للرسالة في ذاكرته المحلية ويبلغ المعالج المصدر باستلام الرسالة.

أرز. 11.4. نظام الحوسبة مع الذاكرة الموزعة: أ - عنصر المعالجة؛ ب- الجمع بين عناصر المعالجة o

البديل المثير للاهتمام لنظام الذاكرة الموزعة هو؛ نموذج الذاكرة المشتركة الموزعة(DSM، توزيع الذاكرة المشتركة)، المعروف أيضًا باسم آخر أبنية مع غير متجانسةالوصول إلى الذاكرة وتماسك البرامج(SC-NUMA، بنية الذاكرة غير الموحدة المتماسكة بالبرمجيات). فكرة هذا النموذج هي أن الكمبيوتر، كونه نظامًا ذو ذاكرة موزعة، يتم تقديمه للمستخدم كنظام ذو ذاكرة مشتركة بفضل نظام التشغيل. وهذا يعني أن نظام التشغيل يوفر للمستخدم مساحة عنوان واحدة، على الرغم من أن الوصول الفعلي إلى ذاكرة الكمبيوتر "الأجنبي" BC لا يزال متاحًا من خلال تبادل الرسائل.

متعدد المعالجاتتماسك ذاكرة التخزين المؤقت

يتكون نظام الذاكرة المشتركة متعدد المعالجات من معالجين مستقلين أو أكثر، يقوم كل منهم بتنفيذ جزء من برنامج أكبر أو برنامج مستقل. تصل جميع المعالجات إلى التعليمات والبيانات المخزنة في ذاكرة رئيسية مشتركة. نظرًا لأن الذاكرة مورد مشترك، يحدث التنافس بين المعالجات عند الوصول إليها، مما يؤدي إلى زيادة في متوسط ​​زمن الوصول إلى الذاكرة. لتقليل زمن الوصول هذا، يتم منح كل معالج ذاكرة تخزين مؤقت محلية، والتي، من خلال خدمة الوصول إلى الذاكرة المحلية، تمنع في كثير من الحالات الحاجة إلى الوصول إلى الذاكرة الرئيسية المشتركة. بدوره، يؤدي تجهيز كل معالج بذاكرة التخزين المؤقت المحلية إلى ما يسمى مشكلة التماسكأو الأمن وفقذاكرة التخزين المؤقت للحمام.وفقًا لـ، يكون النظام متماسكًا إذا قامت كل عملية قراءة على أي عنوان يتم إجراؤها بواسطة أي من المعالجات بإرجاع القيمة التي تم إدخالها أثناء عملية الكتابة الأخيرة على هذا العنوان، بغض النظر عن المعالج الذي أجرى آخر عملية كتابة.

في أبسط صورها، يمكن تفسير مشكلة تماسك ذاكرة التخزين المؤقت على النحو التالي (الشكل 11.5). السماح لاثنين من المعالجات ر ز و R g متصلان بالذاكرة المشتركة عبر الحافلة. أولاً، يقوم كلا المعالجين بقراءة المتغير X.يتم إرسال نسخ من الكتل التي تحتوي على هذا المتغير من الذاكرة الرئيسية إلى ذاكرات التخزين المؤقت المحلية لكلا المعالجين (الشكل 11.5، أ).بعد ذلك، يقوم المعالج P t بعملية زيادة قيمة المتغير Xلكل وحدة. نظرًا لأن نسخة من المتغير موجودة بالفعل في الذاكرة المؤقتة لهذا المعالج، فستحدث نتيجة لذاكرة التخزين المؤقت وسيتم تغيير القيمة فقط في الذاكرة المؤقتة 1. إذا قام المعالج P 2 الآن بإجراء عملية القراءة مرة أخرى ثم ستحدث أيضًا نتيجة لذاكرة التخزين المؤقت وسيتلقى P 2 القيمة "القديمة" المخزنة في ذاكرة التخزين المؤقت الخاصة به X(الشكل 11.5، ب).

يتطلب الحفاظ على الاتساق أنه عند تغيير عنصر البيانات بواسطة أحد المعالجات، يتم إجراء التغييرات المقابلة على الذاكرة المؤقتة للمعالجات المتبقية، حيث توجد نسخة من عنصر البيانات الذي تم تغييره، وكذلك على الذاكرة المشتركة. بالمناسبة، تنشأ مشكلة مماثلة في الأنظمة ذات المعالج الواحد حيث توجد عدة مستويات من ذاكرة التخزين المؤقت. من الضروري هنا تنسيق محتويات ذاكرات التخزين المؤقت ذات المستويات المختلفة.

هناك طريقتان لحل مشكلة التماسك: البرمجيات والأجهزة. تستخدم بعض الأنظمة استراتيجيات تجمع بين كلا النهجين.

حلول البرمجياتمشاكل التماسك

تتيح لك التقنيات البرمجية لحل مشكلة التماسك الاستغناء عن معدات إضافية أو تقليلها إلى الحد الأدنى)