-->
random

آخر الأخبار

random
random
جاري التحميل ...
random

الذاكرة المخبئية (بالإنجليزية: Cache)‏

محتويات


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

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

وهكذا، كان هناك خياران أمام مهندسي التصميم، الأول هو استخدام تلك الذواكر السريعة ذات الكلفة العالية، والثاني استخدام ذاكرة رخيصة الثمن وذات سرعة بطيئة. فكان الاختيار بأخذ خاصية السرعة من الجانب الأول وخاصية الكلفة المنخفضة من الجانب الآخر ودمجت هذه الخواص لإنتاج الذواكر السريعة ذات الحجم الصغير (للتقليل من الكلفة) وسميت بالذاكرة المخبأة Cache Memory.

2-تنظيم الذاكرة المخبأة على شكل قطاعات (Sector Organized Caches)

تنظم الذاكرة، وكذلك أيضا الذاكرة المخبأة، على شكل قطاعات (Sectors)، ويتألف كل قطاع من عدة كتل، والتقابل بين القطاعات في الذاكرتين من النوع الحر. لكل قطاع في الذاكرة المخبأة وسم عنونة (Address tag)، أما عنوان الكتلة في الذاكرة المخبأة فهو مطابق لعنوانها في الذاكرة. تنقل المعلومات من الذاكرة إلى الذاكرة المخبأة على شكل كتلة في كل مرة ولا ينقل القطاع بأكمله، وبالتالي يمكن أن يحتوي القطاع في الذاكرة المخبأة عدة كتل فارغة، ويمكن ألا يتضمن القطاع إلا كتلة واحدة فقط. للتمييز بين الكتل الفارغة والكتل المشحونة نستخدم لكل كتل بت إضافية نسميها بت الصلاحية (Validity bit)، فإذا كانت هذه البت تحتوي القيمة 1 تكون الكتلة الموافقة موجودة وصالحة للاستخدام.

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

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

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

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

3- مميزات الطرق المختلفة في تنظيم الذاكرة المخبأة

تلخص الصورة التالية أهم مميزات الأنماط السابقة، ويبين الشكل (13-11) مخطط التقابل المستخدم في كل طريقة من هذه الطرق ويوضح الشكل كيف أن بعض الطرق ليست إلا حالات خاصة محدودة من طرق أخرى.

استبدال الكتل أو الكلمات

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

  1. الخيار العشوائي
  2. الرتل FIFO (من يدخل أولا يخرج أولا)
  3. الوحدة الأقل استخداماَ في الماضي Least recently used

والإستراتجية الأخيرة هي الأكثر شيوعا في التطبيق.

الكتابة في الذاكرة المخبأة

عندما تكون الكتلة المطلوبة الموجودة في الذاكرة المخبأة، تقرأ منها دون الرجوع إلى الذاكرة، إلا أنه عند تنفيذ عملية كتابة (write) يجب الولوج إلى الذاكرة حتى لو كانت موجودة في الذاكرة المخبأة . فإذا كان للموقع الذي نكتب فيه في الذاكرة صورة في الذاكرة المخبأة يجب اختيار أحد إجراءين:

  1. الكتابة الآنية (Write through): أي تكتب المعلومات في الذاكرة وفي الذاكرة المخبأة بنفس الوقت (وهي الطريقة التي وصفناها سابقا).
  2. الكتابة المتأخرة (Write back): لا ينعكس التغيير الذي طرأ على الموقع الموجود في الذاكرة المخبأة، على الموقع المقابل في الذاكرة إلا عند استبعاد الكلمة من الذاكرة المخبأة .2
 
4- مراجع

  1.  "معلومات عن ذاكرة مخبأة على موقع d-nb.info". d-nb.info. مؤرشف من الأصل في 27 يناير 2020.
  • بنية الحاسب

المبادئ النظرية لبرمجيات نظم التشغيل

التعليقات



جميع الحقوق محفوظة

عيشوبي/AICHOUBI

2016