20Aug

عندما يتم مسح ذاكرة التخزين المؤقت وحدة المعالجة المركزية إلى الذاكرة الرئيسية؟

click fraud protection

إذا كنت بدأت للتو لمعرفة كيف وحدات المعالجة المركزية متعددة النوى، التخزين المؤقت، التماسك ذاكرة التخزين المؤقت، ويعمل الذاكرة، قد يبدو مربكا بعض الشيء في البداية.مع أخذ ذلك في الاعتبار، سوبيروسر Q & أمبير؛ A اليوم لديه إجابات على سؤال القارئ الغريب.

سؤال اليوم & أمب؛تأتي جلسة الجواب إلينا من باب المجاملة، وهو قسم فرعي من "ستاك إكسهانج"، وهو عبارة عن مجموعة من المواقع على شبكة الإنترنت.

السؤال

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

إذا كان لدي وحدة المعالجة المركزية مع اثنين من النوى ولكل الأساسية الخاصة بها ذاكرة التخزين المؤقت L1، فمن الممكن أن Core1 و Core2 كلا مخبأ نفسهجزء من الذاكرة في نفس الوقت؟إذا كان ذلك ممكنا، ما هي قيمة الذاكرة الرئيسية إذا كان كل من Core1 و Core2 قد عدلت قيمها في ذاكرة التخزين المؤقت؟

عندما يتم مسح ذاكرة التخزين المؤقت وحدة المعالجة المركزية إلى الذاكرة الرئيسية؟

الجواب

المساهمين سوبر ديفيد شوارتز، سليسك، و كيمبرلي W لديهم الجواب بالنسبة لنا.أولا، ديفيد شوارتز:

instagram viewer

إذا كان لدي وحدة المعالجة المركزية مع اثنين من النوى ولكل جوهر لها مخبأ L1 الخاصة بها، هل من الممكن أن Core1 و Core2 كلا مخبأ نفس الجزء من الذاكرة في نفس الوقت؟

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

اذا كان ذلك ممكنا، فماذا ستكون قيمة الذاكرة الرئيسية اذا قام كل من Core1 و Core2 بتحرير قيمهما في ذاكرة التخزين المؤقت؟

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

تليها الإجابة من سليسك:

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

  • مخابئ اثنين يمكن التواصل للتأكد من أنها لا تختلف
  • يمكن أن يكون لديك نوع من المشرف الذي يراقب كل مخابئ وتحديثها وفقا لذلك
  • كل معالج يراقب مناطق الذاكرة التي تم تخزينها مؤقتا، وعندما يكتشف الكتابة، فإنه يلقي بها مخبأ( الآن غير صالح)

وتسمى المشكلة مخابئ التماسك ومقالة ويكيبيديا حول هذا الموضوع لديه لمحة لطيفة للمشكلة والحلول الممكنة.

وإجابتنا النهائية من كيمبرلي W:

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

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

هل لديك شيء لإضافة إلى التفسير؟الصوت قبالة في التعليقات.هل ترغب في قراءة المزيد من الإجابات من مستخدمي إكساك إكسهانج؟تحقق من موضوع المناقشة الكامل هنا.

صورة الائتمان: ليمسيبمات( فليكر)