تماسك الذاكرة المؤقتة

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

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

يُستخدم بروتوكول تماسك ذاكرة التخزين المؤقت للحفاظ على تماسكها. النوعان الرئيسيان هما بروتوكولات التجسس وبروتوكولات الدليل .

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

ذاكرة التخزين المؤقت المتماسكة: القيمة في جميع نسخ ذاكرة التخزين المؤقت هي نفسها.

ملخص

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

فيما يلي متطلبات تماسك الذاكرة المؤقتة: [ 3 ]

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

نظرياً، يمكن إجراء التماسك على مستوى تحميل/تخزين البيانات . ومع ذلك، عملياً، يتم إجراؤه عموماً على مستوى كتل ذاكرة التخزين المؤقت. [ 4 ]

تعريف

يحدد التماسك سلوك عمليات القراءة والكتابة إلى موقع عنوان واحد. [ 3 ]

في نظام متعدد المعالجات، ضع في اعتبارك أن أكثر من معالج واحد قد قام بتخزين نسخة من موقع الذاكرة X مؤقتًا. الشروط التالية ضرورية لتحقيق تماسك ذاكرة التخزين المؤقت: [ 5 ]

  1. في عملية قراءة يقوم بها المعالج P إلى موقع X والتي تلي عملية كتابة يقوم بها نفس المعالج P إلى X، مع عدم حدوث أي عمليات كتابة إلى X بواسطة معالج آخر بين تعليمات الكتابة والقراءة التي يقوم بها P، يجب أن يعيد X دائمًا القيمة التي كتبها P.
  2. في عملية قراءة يقوم بها المعالج P1 إلى الموقع X، تلي عملية كتابة يقوم بها معالج آخر P2 إلى الموقع X، مع عدم وجود أي عمليات كتابة أخرى إلى X من أي معالج بين عمليتي الوصول، ومع وجود فاصل زمني كافٍ بين عمليتي القراءة والكتابة، يجب أن يُعيد X دائمًا القيمة التي كتبها P2. يُعرّف هذا الشرط مفهوم الرؤية المتسقة للذاكرة. يضمن نشر عمليات الكتابة إلى موقع الذاكرة المشتركة أن يكون لدى جميع ذاكرات التخزين المؤقت رؤية متسقة للذاكرة. إذا قرأ المعالج P1 القيمة القديمة لـ X، حتى بعد كتابة P2، نقول إن الذاكرة غير متسقة.

تُحقق الشروط المذكورة أعلاه معايير نشر الكتابة المطلوبة لتماسك الذاكرة المؤقتة. ومع ذلك، فهي غير كافية لأنها لا تُحقق شرط تسلسل المعاملات . ولتوضيح ذلك بشكل أفضل، انظر المثال التالي:

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

لذلك، من أجل تلبية متطلبات تسلسل المعاملات، وبالتالي تحقيق تماسك الذاكرة المؤقتة، يجب استيفاء الشرط التالي بالإضافة إلى الشرطين السابقين المذكورين في هذا القسم:

  • يجب أن تكون عمليات الكتابة إلى نفس الموقع متسلسلة. بمعنى آخر، إذا استقبل الموقع X قيمتين مختلفتين A وB، بهذا الترتيب، من أي معالجين، فلا يمكن للمعالجين قراءة الموقع X على أنه B ثم قراءته على أنه A. يجب أن يُرى الموقع X بالقيمتين A وB بهذا الترتيب. [ 6 ]

يُعرَّف النظام المتماسك تعريفًا بديلًا من خلال تعريف نموذج ذاكرة الاتساق التسلسلي : "يجب أن يُظهر النظام المتماسك في ذاكرة التخزين المؤقت قدرته على تنفيذ عمليات تحميل وتخزين جميع الخيوط في موقع ذاكرة واحد بترتيب كلي يحترم ترتيب البرنامج لكل خيط". [ 4 ] وبالتالي، فإن الفرق الوحيد بين النظام المتماسك في ذاكرة التخزين المؤقت والنظام المتسق تسلسليًا يكمن في عدد مواقع العناوين التي يتناولها التعريف (موقع ذاكرة واحد للنظام المتماسك في ذاكرة التخزين المؤقت، وجميع مواقع الذاكرة للنظام المتسق تسلسليًا).

تعريف آخر هو: "يكون المعالج المتعدد متسقًا في ذاكرة التخزين المؤقت إذا تم تنفيذ جميع عمليات الكتابة إلى نفس موقع الذاكرة بترتيب تسلسلي معين". [ 7 ]

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

آليات التماسك

أكثر آليتين شيوعًا لضمان التناسق هما التجسس والدليل ، ولكل منهما مزاياها وعيوبها. [ 8 ] تميل بروتوكولات التجسس إلى أن تكون أسرع، إذا توفرت سعة نطاق كافية ، لأن جميع المعاملات عبارة عن طلب/استجابة تراها جميع المعالجات. أما عيبها فهو عدم قابليتها للتوسع. يجب بث كل طلب إلى جميع العقد في النظام، مما يعني أنه مع ازدياد حجم النظام، يجب زيادة حجم ناقل البيانات (المنطقي أو المادي) وسعة النطاق التي يوفرها. من ناحية أخرى، تميل الأدلة إلى أن يكون لها زمن استجابة أطول (مع ثلاث قفزات لطلب-إعادة توجيه-استجابة) ولكنها تستخدم سعة نطاق أقل بكثير لأن الرسائل تتم من نقطة إلى نقطة وليست بثًا. لهذا السبب، تستخدم العديد من الأنظمة الأكبر حجمًا (أكثر من 64 معالجًا) هذا النوع من تناسق ذاكرة التخزين المؤقت.

التجسس

تم تقديم تقنية التجسس لأول مرة عام 1983، [ 9 ] وهي عملية تقوم فيها ذاكرات التخزين المؤقت الفردية بمراقبة خطوط العناوين بحثًا عن عمليات الوصول إلى مواقع الذاكرة التي خزنتها مؤقتًا. [ 5 ] وتستفيد بروتوكولات الكتابة -الإبطال وبروتوكولات الكتابة-التحديث من هذه الآلية.
في آلية التجسس، يُقلل مُرشِّح التجسس من حركة بيانات التجسس عن طريق الاحتفاظ بعدد من المدخلات، يُمثل كل منها سطرًا من سطور ذاكرة التخزين المؤقت التي قد يمتلكها عقدة واحدة أو أكثر. عند الحاجة إلى استبدال أحد هذه المدخلات، يختار مُرشِّح التجسس المدخل الذي يُمثل سطر ذاكرة التخزين المؤقت أو الأسطر التي يمتلكها أقل عدد من العقد، وذلك بناءً على متجه التواجد في كل مدخل. تُستخدم خوارزمية زمنية أو خوارزمية أخرى لتحسين عملية الاختيار إذا كان أكثر من سطر ذاكرة تخزين مؤقت واحد مملوكًا لأقل عدد من العقد. [ 10 ]

قائم على الدليل

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

تحاكي أنظمة الذاكرة المشتركة الموزعة هذه الآليات في محاولة للحفاظ على الاتساق بين كتل الذاكرة في الأنظمة ذات الترابط الضعيف. [ 11 ]

بروتوكولات التماسك

تُطبّق بروتوكولات التماسك مبدأ تماسك الذاكرة المؤقتة في أنظمة المعالجات المتعددة. والهدف من ذلك هو ضمان عدم رؤية عميلين لقيم مختلفة لنفس البيانات المشتركة.

يجب أن يفي البروتوكول بالمتطلبات الأساسية للاتساق. ويمكن تصميمه خصيصاً للنظام أو التطبيق المستهدف.

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

يمكن تنفيذ عملية نشر الكتابة في بروتوكولات التجسس بإحدى الطريقتين التاليتين:

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

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

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

تم ابتكار نماذج وبروتوكولات متنوعة للحفاظ على التماسك، مثل MSI و MESI (المعروف أيضًا باسم إلينوي) و MOSI و MOESI و MERSI و MESIF وبروتوكول الكتابة لمرة واحدة وSynapse وBerkeley و Firefly و Dragon . [ 2 ] في عام 2011، اقترحت شركة ARM Ltd بروتوكول AMBA 4 ACE [ 12 ] لمعالجة التماسك في أنظمة SoC . وتحدد مواصفات AMBA CHI (واجهة المحور المتماسك) [ 13 ] الصادرة عن شركة ARM Ltd ، والتي تنتمي إلى مجموعة مواصفات AMBA5، واجهات توصيل المعالجات المتماسكة بالكامل.

انظر أيضاً

مراجع

  1. ماروكا، عامي (2010-01-01). "الفصل 2 - مآزق ومشاكل برمجة المعالجات متعددة النوى". التقدم في الحوسبة . المجلد  79. إلسيفير. الصفحات 71-117 . doi : 10.1016/s0065-2458(10)79002-1 . ISBN  978-0-12-381027-4.
  2. 1 2 إي. ثوماداكيس، مايكل (2011). بنية معالج نيهاليم ومنصات نيهاليم-إي بي إس إم بي إم (ملف PDF) . جامعة تكساس إيه آند إم. ص 30. مؤرشف من الأصل (ملف PDF) بتاريخ 11 أغسطس 2014. 
  3. 1 2 يان، سوليهين. أساسيات بنية المعالجات متعددة النوى المتوازية . OCLC 884540034 . 
  4. 1 2 سورين، دانيال جيه؛ هيل، مارك دي؛ وود، ديفيد ألين (2011-01-01). مدخل إلى اتساق الذاكرة وتماسك ذاكرة التخزين المؤقت . دار مورغان وكلايبول للنشر. OCLC 726930429 . 
  5. 1 2 3 باترسون وهينيسي. تنظيم وتصميم الحاسوب - الطبعة الرابعة . ISBN 978-0-12-374493-7.
  6. نيوبان، ماهيش (16 أبريل 2004). "تماسك الذاكرة المؤقتة" (ملف PDF). مؤرشف من الأصل (ملف PDF) في 20 يونيو 2010.
  7. ستينك، روبرت سي؛ نوت، غاري جيه. (1 سبتمبر 2004). "نظرية موحدة لتناسق الذاكرة المشتركة". مجلة ACM . 51 (5): 800-849 . arXiv : cs/0208027 . doi : 10.1145/1017460.1017464 . ISSN 0004-5411 . S2CID 3206071 .  
  8. باترسون، ديفيد أ.؛ هينيسي، جون ل. (1990). هندسة الحاسوب: منهج كمي . دار مورغان كوفمان للنشر. الصفحات 467-468 . ISBN  1-55860-069-8.
  9. "رافيشانكار، تشينيا؛ جودمان، جيمس (28 فبراير 1983). "تنفيذ ذاكرة التخزين المؤقت للمعالجات الدقيقة المتعددة"" (PDF) . وقائع مؤتمر IEEE COMPCON: 346–350 .
  10. راسموس أولفسنيس (يونيو 2013). "تصميم مرشح تجسس لبروتوكولات تماسك ذاكرة التخزين المؤقت القائمة على التجسس". مؤرشف في 1 فبراير 2014 على موقع Wayback Machine (ملف PDF). diva-portal.org . الجامعة النرويجية للعلوم والتكنولوجيا. تاريخ الاسترجاع: 20 يناير 2014.
  11. "المحاضرة 18: التجسس مقابل التماسك القائم على الدليل" (ملف PDF) . Berkeley.edu . تم الاطلاع عليه بتاريخ 14 مايو 2023 .
  12. كريويل (16 سبتمبر 2013). التحليل الرسمي لمواصفات ACE لأنظمة التخزين المؤقت المتماسكة على رقاقة. في: الأساليب الرسمية للأنظمة الصناعية الحرجة . سبرينغر برلين هايدلبرغ. ISBN 978-3-642-41010-9.
  13. شركة Arm المحدودة. "AMBA | AMBA 5" . مطور Arm . تم الاسترجاع بتاريخ 27-04-2021 .

للمزيد من القراءة