بروتوكول MOSI
بروتوكول MOSI هو امتداد لبروتوكول MSI الأساسي لتناسق ذاكرة التخزين المؤقت . ويضيف حالة O المملوكة، والتي تشير إلى أن المعالج الحالي يمتلك هذه الكتلة، وسيقوم بتلبية طلبات المعالجات الأخرى لهذه الكتلة.
لمحة عامة عن الولايات
فيما يلي الحالات المسموح بها لسطر ذاكرة التخزين المؤقت المحدد:
مُعَدَّل (M) - تحتوي ذاكرة تخزين مؤقتة واحدة فقط على نسخة صالحة من الكتلة، ومن المرجح أن تكون قيمتها مختلفة عن قيمتها في الذاكرة الرئيسية. وهي تحمل نفس معنى حالة "غير نظيفة" في ذاكرة التخزين المؤقتة للكتابة المؤجلة تقريبًا ، باستثناء أن حالة "مُعدَّل" تعني أيضًا ملكية حصرية لتلك الكتلة. بينما تعني حالة "غير نظيفة" أن قيمة الكتلة تختلف عن قيمتها في الذاكرة الرئيسية، فإن حالة "مُعدَّل" تعني أن قيمتها تختلف عن قيمتها في الذاكرة الرئيسية وأنها مُخزَّنة مؤقتًا في موقع واحد فقط.
مملوكة (O) - قد تحتفظ عدة ذاكرات تخزين مؤقتة بأحدث قيمة صحيحة لكتلة بيانات، بينما قد تكون القيمة الموجودة في الذاكرة الرئيسية صحيحة أو خاطئة. في الوقت نفسه، لا يمكن إلا لذاكرة تخزين مؤقتة واحدة أن تمتلك حالة الملكية لكتلة بيانات. يجب أن تكون جميع ذاكرات التخزين المؤقتة الأخرى التي تحتوي على نفس الكتلة في حالة مشتركة. [ 1 ]
مُشترك (S) - كتلة ذاكرة التخزين المؤقت صالحة، ويمكن مشاركتها بين عدة ذاكرات تخزين مؤقت، وقد تكون قيمتها مطابقة أو مختلفة عن قيمة الذاكرة الرئيسية. يمكن للمعالجات الأخرى القراءة منها، ولكن ليس لديها صلاحيات الكتابة.
غير صالح (I) - كتلة ذاكرة التخزين المؤقت غير صالحة.
بالنسبة لأي زوج معين من ذاكرات التخزين المؤقت، تكون الحالات المسموح بها لسطر ذاكرة التخزين المؤقت المعين كما يلي:
| م | يا | S | أنا | |
|---|---|---|---|---|
| م | ||||
| يا | ||||
| S | ||||
| أنا |
العمليات

في بروتوكول MOSI، تحتوي كل ذاكرة تخزين مؤقتة على الطلبات التالية:
- PrRd - طلب المعالج لقراءة كتلة ذاكرة التخزين المؤقت.
- PrWr - طلب المعالج للكتابة في كتلة ذاكرة التخزين المؤقت.
- BusRd - طلب تم التجسس عليه يشير إلى وجود طلب قراءة لكتلة ذاكرة تخزين مؤقتة تم إجراؤه بواسطة معالج آخر.
- BusRdX - طلب تم التجسس عليه يشير إلى وجود طلب كتابة إلى كتلة ذاكرة تخزين مؤقتة تم إجراؤه بواسطة معالج آخر لا يحتوي على الكتلة.
- BusUpgr - طلب تم التجسس عليه يوضح أن هناك طلب كتابة إلى كتلة ذاكرة تخزين مؤقتة تم إجراؤه بواسطة معالج آخر لديه بالفعل الكتلة في ذاكرة التخزين المؤقت الخاصة به.
- عملية التفريغ - يتم بعد ذلك مراقبة الطلب ووضع كتلة ذاكرة التخزين المؤقت على ناقل البيانات لنقلها من ذاكرة تخزين مؤقت إلى أخرى. [ 2 ]
معالجة المعاملات
بالنظر إلى حالة معاملات المعالج، عندما تكون الكتلة في حالة غير صالحة (I) ، فإما أنها لم تُجلب من الذاكرة مطلقًا أو أنها أُبطلت. عند حدوث عملية قراءة من المعالج ( PrRd )، تتغير الحالة من غير صالحة (I) إلى مشتركة (S)، مما يُولّد عملية قراءة من ناقل البيانات ( BusRd ). في الوقت نفسه، إذا كان طلب كتابة من المعالج ( PrWr )، فإن حالة الكتلة تتغير إلى مُعدّلة (M) مع طلب كتابة مُراقب ( BusRdX ).
بمجرد أن تصبح الكتلة في حالة "مملوكة" (O) ، فإن عملية قراءة من المعالج (PrRd) لا تُولّد أي إشارة مراقبة، وتبقى الكتلة في حالتها نفسها. بينما يؤدي طلب كتابة من المعالج (PrWr) إلى تغيير حالة الكتلة من "مملوكة" (O) إلى "مُعدّلة" (M)، بالإضافة إلى توليد طلب كتابة مراقبة ( BusUpgr ). [ 3 ]
عندما تكون الكتلة في حالة التعديل (M) ، لا يُولّد طلب قراءة (PrRd) أو كتابة (PrWr) من المعالج إشارة تجسس، لأن الكتلة تُشير بالفعل إلى أن أحدث قيمة صحيحة موجودة فقط في تلك الذاكرة المؤقتة. وبالتالي، لا تتغير حالتها وتبقى في حالة التعديل (M).

عندما تكون الكتلة في حالة المشاركة (S) ويوجد طلب قراءة من المعالج (PrRd)، ولأن قيمة كتلة التخزين المؤقت متطابقة في جميع المعالجات الأخرى وفي الذاكرة الرئيسية، لا يتم توليد إشارة ناقل بعد قراءة المعالج (PrRd). يتم توليد طلب كتابة على الناقل (BusUpgr) بمجرد وجود طلب كتابة من المعالج (PrWr) إلى كتلة في حالة المشاركة (S)، لأن كتلة التخزين المؤقت لم تعد صالحة في جميع ذاكرات التخزين المؤقت الأخرى، وتتغير حالة الكتلة من المشاركة (S) إلى التعديل (M).
معاملات الحافلات
بالنظر إلى سلوك آلة الحالة المحدودة تجاه معاملات ناقل البيانات التي يتم التجسس عليها، إذا كانت كتلة ذاكرة التخزين المؤقت في حالة غير صالحة (I)، فلن يؤثر أي طلب ناقل بيانات يتم التجسس عليه على الكتلة بأي شكل من الأشكال، لذلك حتى لو كان طلب قراءة ناقل البيانات (BusRd) أو طلب كتابة ناقل البيانات من معالج لديه الكتلة أو لا يملكها (BusRdX أو BusUpgr) ، فإن الكتلة تظل في نفس الحالة غير الصالحة (I) ولا تولد أي إجراءات أخرى.
عندما تكون كتلة التخزين المؤقت في حالة "مشتركة" (S) وتحدث عملية قراءة من ناقل البيانات (BusRd) عبر التجسس، تبقى الكتلة في حالتها ولا تُنشئ أي عمليات أخرى، لأن جميع كتل التخزين المؤقت لها نفس القيمة، بما في ذلك الذاكرة الرئيسية، ويتم قراءتها فقط دون الكتابة إليها. أما إذا حدث طلب كتابة عبر التجسس (BusRdX أو BusUpgr)، فتتغير حالة الكتلة من "مشتركة" (S) إلى "غير صالحة" (I)، لأن قيمة الكتلة قد عُدّلت في إحدى كتل التخزين المؤقت الأخرى، ويجب الآن إبطال جميع النسخ الأخرى.
بمجرد أن تصبح كتلة التخزين المؤقت في حالة "مُعدَّلة" (M) ووجود طلب قراءة من ناقل البيانات (BusRd)، تقوم الكتلة بتفريغ البيانات المُعدَّلة (Flush) وتغيير حالتها إلى "مملوكة" (O)، مما يجعلها المالك الوحيد لتلك الكتلة. في الوقت نفسه، عندما تكون الكتلة في حالة "مُعدَّلة" (M)، لن يكون هناك طلب كتابة من ناقل البيانات (BusUpgr) من معالج آخر لأنه لا يملك كتلة التخزين المؤقت. مع طلب كتابة من معالج آخر لا يملك الكتلة (BusRdX)، تتغير حالة الكتلة إلى "غير صالحة" (I) لأن معالجًا آخر يكتب إلى الكتلة، وبالتالي سيصبح مالكًا لها.
أثناء وجود كتلة ذاكرة التخزين المؤقت في حالة التعديل، لا يمكن لأي معالج آخر إرسال طلب BusUpgr، إذ لن يمتلك أي منها هذه الكتلة. وبحسب تعريف حالة التعديل (M)، فإن هذه الكتلة موجودة فقط لدى ذلك المعالج، أما باقي المعالجات فتُعتبر غير صالحة، وبالتالي لا يمكنها إرسال طلب BusUpgr.
أثناء وجود الكتلة في حالة المالك (O) ووجود طلب قراءة مُراقب (BusRd)، تبقى الكتلة في حالتها نفسها أثناء مسح البيانات (Flush) ليقرأها المعالج الآخر. مع طلب كتابة مُراقب (BusRdX)، تتغير حالة الكتلة إلى غير صالحة (I) مع مسح البيانات (Flush) لأن معالجًا آخر يكتب إليها، وبالتالي تفقد ملكيتها لتلك الكتلة. عندما يحاول معالج آخر الوصول إلى تلك الكتلة، فبدلاً من الذهاب إلى الذاكرة للوصول إليها، يأخذها من ذاكرة تخزين مؤقت أخرى تحتوي بالفعل على تلك الكتلة في حالة المالك (O). مع BusUpgr، تتغير الحالة من المالك (O) إلى غير صالحة (I). [ 3 ]
مقارنة ببروتوكول MSI
الفرق الواضح بين بروتوكول MSI وبروتوكول MOSI، المعروف أيضًا باسم بروتوكول بيركلي [ 4 ] هو وجود حالة إضافية (مملوكة) في MOSI بالإضافة إلى وجود حالة معدلة (M) فقط.
في بروتوكول MSI، عند حدوث طلب قراءة فاشل لكتلة في حالة التعديل (M)، تتم الكتابة إلى الذاكرة الرئيسية مع تغيير حالة الكتلة إلى مشتركة (S). أما في بروتوكول MOSI، حيث توجد حالة إضافية (المالك)، فعندما يطلب معالج آخر عملية قراءة، تتغير حالة الكتلة من معدلة إلى مملوكة (O)، وبالتالي تحتفظ الكتلة المتغيرة في ذاكرة التخزين المؤقت، مما يلغي الحاجة إلى الكتابة إلى الذاكرة الرئيسية فورًا.
يُمكن لهذا التأجيل توفير حركة مرور البيانات على ناقل البيانات وعمليات الكتابة في الذاكرة الرئيسية في تسلسلات معينة من العمليات. على سبيل المثال، إذا كانت ذاكرة التخزين المؤقت هي M للمعالج 1، ثم يقرأ المعالج 2 منها، ثم يكتب المعالج 1 إليها مرة أخرى، ففي MSI، يؤدي انتقال MS للمعالج 1 من القراءة إلى عملية كتابة واحدة في الذاكرة، ثم يؤدي انتقال SM إلى BusUpgr. أما في MOSI، فلا يُولّد انتقال MO أي حركة مرور، كما يُولّد انتقال OM عملية BusUpgr واحدة كما في السابق. وبالتالي، يُغني MOSI عن عملية الكتابة الأولية في الذاكرة وحركة مرور البيانات المرتبطة بها، والتي كان سيُجريها MSI.
مقارنة ببروتوكول MESI
يُعدّ كلٌّ من بروتوكول MESI (المعروف أيضًا باسم إلينوي) [ 4 ] وبروتوكول MOSI امتدادًا لبروتوكول MSI لتحسين وظائف مختلفة. يركز بروتوكول MOSI على تقليل عمليات الكتابة المؤجلة، بينما يسعى بروتوكول MESI إلى تقليل عدد عمليات نقل البيانات المطلوبة عبر ناقل البيانات بعد طلب قراءة وكتابة من معالج آخر. تشير حالة الحصرية (E) في بروتوكول MESI إلى أن كتلة الذاكرة المؤقتة صالحة ونظيفة (بنفس قيمتها في الذاكرة الرئيسية) ومخزنة مؤقتًا في ذاكرة مؤقتة واحدة فقط، بينما تشير حالة الملكية (O) في بروتوكول MOSI إلى أن كتلة الذاكرة المؤقتة صالحة، وقد تكون متسخة وقابلة للكتابة، ويمكن أن تكون موجودة في أكثر من ذاكرة مؤقتة (جميعها لها نفس القيمة).
مراجع
- ↑ سورين، دانيال؛ هيل، مارك؛ وود، ديفيد (2011). مدخل إلى اتساق الذاكرة وتماسك ذاكرة التخزين المؤقت . مورغان وكلايبول. الصفحات 119-122 . ISBN 9781608455645.
- ↑ سوليهين، يان (2016). أساسيات بنية المعالجات متعددة النوى المتوازية . دار نشر آر سي، مجموعة تايلور وفرانسيس. رقم ISBN 9781482211184.
- 1 2 "تقييم بروتوكولات تماسك ذاكرة التخزين المؤقت القائمة على التجسس" (PDF) .
- 1 2 يانغ، كيو؛ بهويان، إل إن؛ ليو، بي-سي. (1989). "تحليل ومقارنة بروتوكولات تماسك الذاكرة المخبئية لمعالج متعدد يعمل بتقنية تبديل الحزم". معاملات IEEE للحواسيب . 38 (8): 1143-1153 . doi : 10.1109/12.30868 .
انظر أيضاً
- تماسك الذاكرة المؤقتة
