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

مشتركة الذاكرة في الأجهزة

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

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

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

ذاكرة التخزين المؤقت المشتركة في الممارسة

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

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

ملحوظة: يمكن أيضًا مشاركة ذاكرة الوصول العشوائي للنظام بين العديد من وحدات المعالجة المركزية الفعلية على لوحة أم واحدة أو بين العقد في نظام متعدد وحدات المعالجة المركزية.

الذاكرة المشتركة في البرامج

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

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

الخلاصة

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

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