ما هى الذاكرة المخبئية (Cache Memory)
أذا كنت بصدد عملية شراء كمبيوتر، فغالباً ما ستكون قد سمعت هذا المصطلح “ذاكرة الكاش Cache memory”. كل الأجهزة الحديثة الآن لديها مستويان أو ربما ثلاثة مستويات من الذاكرة المخبئية تكون اسماؤهم L1 , L2 , L3 أى Level 1 , Level 2 , Level 3. واذا كان لديك احد الأصدقاء مهتم بالكمبيوتر فربما قد تكون سمعت هذه العباره منه “لا تشترى الأجهزة ذات المعالج السيليرون Celeron فهو لا يمتلك اى ذاكرة كاش”.
من هذا يتضح ان الذاكرة المخبئية هى جزء مهم فى أجهزة الكمبيوتر وهى تظهر فى اكثر من مكان فيوجد ذاكرة مخبئية Cache memory، وذاكرة مخبئية للقرص الصلب Disk cache، ذاكرة مخبئية للصفحات Page cache. حتى ان الذاكرة التخيلية Virtual memory هى عبارة ايضاً عن ذاكرة مخبئية.
ما المقصود بالذاكرة المخبئية:
إن الهدف الرئيسى من استخدام الذاكرة المخبئية هو تسريع عمل جهاز الكمبيوتر مع الأحتفاظ بالسعر فى الحدود المتناولة للجميع.
بما ان المعالج داخل جهاز الكمبيوتر هو أسرع الوحدات بداخل الجهاز، وعندما يطلب المعالج بعض البيانات من احد الانظمة الفرعية بالكمبيوتر مثل الذاكرة (RAM) التى هى أبطأ من المعالج بالطبع، فأن المعالج عليه الأنتظار حتى تنتهى الذاكرة من عملها وتعيد إليه المعلومة التى طلبها. وعلى هذا فأن المعالج يهدر الكثر من وقته الثمين فى أنتظار الأنظمة الفرعية الأخرى حتى تنتهى من عملها وتمد المعالج بالبيانات التى طلبها منها.
واذا استطعنا إيجاد وسيط بين المعالج وبين الأنظمة الفرعية الأخرى تجعل المعالج ليس فى حاجة إلى أنتظار الأنظمة الفرعية الأخرى حتى تنتهى من عملها، فأننا بذلك نكون قد وفرنا وقت ثمين جداً للمعالج يمكنه من أداء بعض الأعمال الأخرى حتى تنتهى الأنظمة الفرعية الأخرى من عملها والعودة للمعالج. هذا الوسيط هو ما يطلق عليه بالذاكرة المخبئية.
لنفهم ما المقصود بالذاكرة المخبئية وكيفية عملها دعونا نسوق المثال التالى لأمين مكتبة فى احد المكتبات الجامعية. وبأفتراض انك لا تستطيع احضار الكتاب الذى تود قراءته بنفسك بل يجب أن تخبر أمين المكتبة عن الكتاب الذى تود قراءته، ثم يقوم أمين المكتبة بالذهاب إلى مخزن الكتب ويحضر لك الكتاب الذى طلبته.
حضر الطالب الأول، واخبر امين المكتبة انه يريد كتاب “تعليم قواعد البيانات”:
1. يذهب أمين المكتبة إلى مخزن الكتب ليحضر الكتاب.
2. يعود أمين المكتبة إلى مكتب الاستقبال، ويعطى الكتاب للطالب.
3. انتهى الطالب من قراءة الكتاب، ويعيدة لأمين المكتبة.
4. يأخذ أمين المكتبة الكتاب من الطالب.
5. يذهب أمين المكتبة إلى مخزن الكتب ويعيد الكتاب مكانة.
6. يعود امين المكتبة إلى مكتب الأستقبال فى أنتظار طلبات أخري.
يحضر الطالب الثانى، وعلى أفتراض أنه يريد استعارة نفس الكتاب السابق:
يقوم أمين المكتبة بنفس الخطوات السابقة مرة أخرى. وهكذا مع كل طالب يريد قراءة أو أستعارة كتاب معين. فى كل مرة يقوم أمين المكتبة بنفس الخطوات من أول خطوة إلى أخر خطوة.
هذا هو الحال فى أجهزة الكمبيوتر مع عدم وجود الذاكرة المخبئية، فى كل مرة يحتاج فيها جهاز الكمبيوتر إلى معلومة معينة يذهب للبحث عنها فى ذاكرة الكمبيوتر ثم يقوم بقراءتها من الذاكرة ومعالجتها. واذا احتاج لنفس المعلومة مرة أخرى يقوم بالذهاب إلى الذاكرة مرة اخرى والبحث عنها من جديد ومن ثم قراءتها ومعالجتها. وهكذا…….
مع وجود نظام الذاكرة المخبئية يتغير إلى الوضع لللأسرع كالتالى. بأفتراض نفس المثال لأمين المكتبة الذى اصبح يمتلك الآن نظام للذاكرة المخبئية:
حضر الطالب الأول، واخبر امين المكتبة انه يريد كتاب “تعليم قواعد البيانات”:
1. يذهب أمين المكتبة إلى مخزن الكتب ليحضر الكتاب.
2. يعود أمين المكتبة إلى مكتب الاستقبال، ويعطى الكتاب للطالب.
3. انتهى الطالب من قراءة الكتاب، ويعيدة لأمين المكتبة.
4. يأخذ أمين المكتبة الكتاب من الطالب.
5. يقوم أمين المكتبة بوضع الكتاب فى حقيبة بجواره (تتسع مثلا لعدد 10 كتب).
6. امين المكتبة يجلس فى أنتظار طلبات أخري.
يحضر الطالب الثانى، وعلى أفتراض أنه يريد استعارة نفس الكتاب السابق:
1. يقوم أمين المكتبة بفحص الحقيبة التى بجواره بحثاً عن الكتاب.
2. اذا وجد الكتاب فى الحقيبة يعطية للطالب مباشرة. والنتيجة هنا هى خدمة أسرع وتوفير للوقت والمجهوك لأمين المكتبة.
3. أما اذا لم يجد الكتاب فى الحقيبة فيقوم بالذهاب إلى مخزن الكتب واجراء الخطوات المعتادة.
من المثال السابق يتضح:
إنه كلما زاد حجم الحقيبة الخاصة بأمين المكتبة (الذاكرة المخبئية) كلما أمكن تخزين عدد اكبر من الكتب وبالتالى توفير وقت أكبر فى الذهاب إلى مخزن الكتب كل مرة.
ولكن البحث بداخل الحقيبة (الذاكرة المخبئية) عن كتاب معين يستغرق أيضاً وقت، واذا استطعنا تقليل وقت البحث بداخل الحقيبة إلى اقل قدر ممكن من الوقت فأننا سنكون قد حققنا استفادة قصوى من وجود الذاكرة المخبئية. ولهذا ايضاً نجد أن زيادة حجم الذاكرة المخبئية إلى مالا نهاية لا يصبح مفيدً لأننا سنستغرق وقت طويل فى عملية البحث بداخلها ايضاً.
من المثال السابق يتضح أن الذاكرة المخبئية هى استخدام ذاكرة اسرع ولكن اقل فى الحجم، وذلك لتسريع أداء ذاكرة اكبر ولكن أبطأ (ذاكرة الكمبيوتر).
عندما نستخدم الذاكرة المخبئية، فأن الكمبيوتر يبحث عن المعلومة المطلوبة أولا بداخل الذاكرة المخبئية فأذا وجدها هذا يسمى اصابة للهدف (Cache hit) واذا لم يجدها يسمى هذا فقدان للهدف (Cache miss) وفى هذه الحالة يجب على الكمبيوتر الانتظار لحين القيام برحلة إلى الذاكرة الرئيسية.
للذاكرة المخبئية حد أقصى وهو اقل بكثير جداً من حجم ذاكرة الكمبيوتر الرئيسية الأساسية.
من الممكن ان يكون للذاكرة المخبئية أكثر من مستوى Levels. المستوى الاول يكون هو الاسرع ويسمى Level 1 Cache، ففى المثال السابق تكون الحقيبة التى يحملها أمين المكتبة هى المستوى الأول وهى الأسرع فى البحث لأنها تحتوى عى عدد أقل من الكتب. ويمكن أن يكون المستوى الثانى عبارة عن رف يحتوى على 100 كتاب مثلاً Level 2 Cache. وعند البحث عن كتاب معين يقوم أمين المكتبة فى البحث فى الحقيبة أولاً ثم فى الرف الذى خلفه، ثم فى المخزن الرئيسى للكتب. وهذا يسمى ذاكرة مخبئية ذات مستويين.
الذاكرة المخبئية فى اجهزة الكمبيوتر:
إن اجهزة الكمبيوتر هى آلات سريعة جداً ويقاس الوقت بداخلها بمقادير صغيرة جداً. فعندما يتعامل المعالج مع الذاكرة الرئيسية للكمبيوتر (RAM) فانه يستغرق زمناً مقداره حوالى 60 نانو ثانية ( 1 نانو ثانية = بليون جزء من الثانية). هذا الزمن بالنسبة لنا يعتبر سريع جداً. ولكن بالنسبة للمعالج الذى له زمن الدورة الكاملة (Cycle time) = 2 نانو ثانية، فان الـ 60 نانو ثانية تعتبر كالدهر بالنسبة للمعالج.
ماذا لو أستطعنا ان نقوم ببناء لوحة للذاكرة تقع على اللوحة الأم، تكون صغيرة فى الحجم ولكنها سريعة (حوالى 30 نانو ثانية) هذه السرعة هى اسرع مرتين من سرعة الوصول الى ذاكرة الكمبيوتر الرئيسية. هذه الذاكرة هى التى يطلق عليها المستوى الثانى من الذاكرة المخبئية (Level 2 Cash or L2 cache).
ماذا لو أستطعنا ايضاً بناء مقدار أصغر من الذاكرة ولكنه أسرع من السابقة أيضاً ويكون مكانها بداخل المعالج نفسة وليس على اللوحة الأم كالذاكرة السابقة. وبالتالى نستطيع الوصول إلى هذه الذاكرة بنفس سرعة المعالج نفسه. وهذه ما يطلق عليه المستوى الاول من الذاكرة المخبئية (Level 1 Cache or L1 cache).
فى اجهزة الكمبيوتر من النوع البانتيوم تكون سرعة المستوى الأول من الذاكرة المخبئية أسرع 3.5 مرة من سرعة المستوى الثانى من الذاكرة المخبئية.
ويتكون سرعة المستوى الثانى من الذاكرة المخبئية أسرع 2 مرة من سرعة الذذاكرة الرئيسية للكمبيوتر.
بعض المعالجات يكون المستوى الآول والثانى من الذاكرة المخبئية مبنياً داخل المعالج نفسه. ويكون لديهم مستوى ثالث من الذاكرة المخبئية (Level 3 Cache or L3 cache)، وهذه الذاكرة تكون بين المعالج وبين الذاكرة الرئيسية للكمبيوتر.
توجد داخل اجهزة الكمبيوتر العديد من الأنظمة الفرعية التى تعتمد على نظام الذاكرة المخبئية (Cache) لللأسراع فى معدلات أدائها عندما يُطلب منها الاتصال بنظام أبطأ منها.
أذا كنت بصدد عملية شراء كمبيوتر، فغالباً ما ستكون قد سمعت هذا المصطلح “ذاكرة الكاش Cache memory”. كل الأجهزة الحديثة الآن لديها مستويان أو ربما ثلاثة مستويات من الذاكرة المخبئية تكون اسماؤهم L1 , L2 , L3 أى Level 1 , Level 2 , Level 3. واذا كان لديك احد الأصدقاء مهتم بالكمبيوتر فربما قد تكون سمعت هذه العباره منه “لا تشترى الأجهزة ذات المعالج السيليرون Celeron فهو لا يمتلك اى ذاكرة كاش”.
من هذا يتضح ان الذاكرة المخبئية هى جزء مهم فى أجهزة الكمبيوتر وهى تظهر فى اكثر من مكان فيوجد ذاكرة مخبئية Cache memory، وذاكرة مخبئية للقرص الصلب Disk cache، ذاكرة مخبئية للصفحات Page cache. حتى ان الذاكرة التخيلية Virtual memory هى عبارة ايضاً عن ذاكرة مخبئية.
ما المقصود بالذاكرة المخبئية:
إن الهدف الرئيسى من استخدام الذاكرة المخبئية هو تسريع عمل جهاز الكمبيوتر مع الأحتفاظ بالسعر فى الحدود المتناولة للجميع.
بما ان المعالج داخل جهاز الكمبيوتر هو أسرع الوحدات بداخل الجهاز، وعندما يطلب المعالج بعض البيانات من احد الانظمة الفرعية بالكمبيوتر مثل الذاكرة (RAM) التى هى أبطأ من المعالج بالطبع، فأن المعالج عليه الأنتظار حتى تنتهى الذاكرة من عملها وتعيد إليه المعلومة التى طلبها. وعلى هذا فأن المعالج يهدر الكثر من وقته الثمين فى أنتظار الأنظمة الفرعية الأخرى حتى تنتهى من عملها وتمد المعالج بالبيانات التى طلبها منها.
واذا استطعنا إيجاد وسيط بين المعالج وبين الأنظمة الفرعية الأخرى تجعل المعالج ليس فى حاجة إلى أنتظار الأنظمة الفرعية الأخرى حتى تنتهى من عملها، فأننا بذلك نكون قد وفرنا وقت ثمين جداً للمعالج يمكنه من أداء بعض الأعمال الأخرى حتى تنتهى الأنظمة الفرعية الأخرى من عملها والعودة للمعالج. هذا الوسيط هو ما يطلق عليه بالذاكرة المخبئية.
لنفهم ما المقصود بالذاكرة المخبئية وكيفية عملها دعونا نسوق المثال التالى لأمين مكتبة فى احد المكتبات الجامعية. وبأفتراض انك لا تستطيع احضار الكتاب الذى تود قراءته بنفسك بل يجب أن تخبر أمين المكتبة عن الكتاب الذى تود قراءته، ثم يقوم أمين المكتبة بالذهاب إلى مخزن الكتب ويحضر لك الكتاب الذى طلبته.
حضر الطالب الأول، واخبر امين المكتبة انه يريد كتاب “تعليم قواعد البيانات”:
1. يذهب أمين المكتبة إلى مخزن الكتب ليحضر الكتاب.
2. يعود أمين المكتبة إلى مكتب الاستقبال، ويعطى الكتاب للطالب.
3. انتهى الطالب من قراءة الكتاب، ويعيدة لأمين المكتبة.
4. يأخذ أمين المكتبة الكتاب من الطالب.
5. يذهب أمين المكتبة إلى مخزن الكتب ويعيد الكتاب مكانة.
6. يعود امين المكتبة إلى مكتب الأستقبال فى أنتظار طلبات أخري.
يحضر الطالب الثانى، وعلى أفتراض أنه يريد استعارة نفس الكتاب السابق:
يقوم أمين المكتبة بنفس الخطوات السابقة مرة أخرى. وهكذا مع كل طالب يريد قراءة أو أستعارة كتاب معين. فى كل مرة يقوم أمين المكتبة بنفس الخطوات من أول خطوة إلى أخر خطوة.
هذا هو الحال فى أجهزة الكمبيوتر مع عدم وجود الذاكرة المخبئية، فى كل مرة يحتاج فيها جهاز الكمبيوتر إلى معلومة معينة يذهب للبحث عنها فى ذاكرة الكمبيوتر ثم يقوم بقراءتها من الذاكرة ومعالجتها. واذا احتاج لنفس المعلومة مرة أخرى يقوم بالذهاب إلى الذاكرة مرة اخرى والبحث عنها من جديد ومن ثم قراءتها ومعالجتها. وهكذا…….
مع وجود نظام الذاكرة المخبئية يتغير إلى الوضع لللأسرع كالتالى. بأفتراض نفس المثال لأمين المكتبة الذى اصبح يمتلك الآن نظام للذاكرة المخبئية:
حضر الطالب الأول، واخبر امين المكتبة انه يريد كتاب “تعليم قواعد البيانات”:
1. يذهب أمين المكتبة إلى مخزن الكتب ليحضر الكتاب.
2. يعود أمين المكتبة إلى مكتب الاستقبال، ويعطى الكتاب للطالب.
3. انتهى الطالب من قراءة الكتاب، ويعيدة لأمين المكتبة.
4. يأخذ أمين المكتبة الكتاب من الطالب.
5. يقوم أمين المكتبة بوضع الكتاب فى حقيبة بجواره (تتسع مثلا لعدد 10 كتب).
6. امين المكتبة يجلس فى أنتظار طلبات أخري.
يحضر الطالب الثانى، وعلى أفتراض أنه يريد استعارة نفس الكتاب السابق:
1. يقوم أمين المكتبة بفحص الحقيبة التى بجواره بحثاً عن الكتاب.
2. اذا وجد الكتاب فى الحقيبة يعطية للطالب مباشرة. والنتيجة هنا هى خدمة أسرع وتوفير للوقت والمجهوك لأمين المكتبة.
3. أما اذا لم يجد الكتاب فى الحقيبة فيقوم بالذهاب إلى مخزن الكتب واجراء الخطوات المعتادة.
من المثال السابق يتضح:
إنه كلما زاد حجم الحقيبة الخاصة بأمين المكتبة (الذاكرة المخبئية) كلما أمكن تخزين عدد اكبر من الكتب وبالتالى توفير وقت أكبر فى الذهاب إلى مخزن الكتب كل مرة.
ولكن البحث بداخل الحقيبة (الذاكرة المخبئية) عن كتاب معين يستغرق أيضاً وقت، واذا استطعنا تقليل وقت البحث بداخل الحقيبة إلى اقل قدر ممكن من الوقت فأننا سنكون قد حققنا استفادة قصوى من وجود الذاكرة المخبئية. ولهذا ايضاً نجد أن زيادة حجم الذاكرة المخبئية إلى مالا نهاية لا يصبح مفيدً لأننا سنستغرق وقت طويل فى عملية البحث بداخلها ايضاً.
من المثال السابق يتضح أن الذاكرة المخبئية هى استخدام ذاكرة اسرع ولكن اقل فى الحجم، وذلك لتسريع أداء ذاكرة اكبر ولكن أبطأ (ذاكرة الكمبيوتر).
عندما نستخدم الذاكرة المخبئية، فأن الكمبيوتر يبحث عن المعلومة المطلوبة أولا بداخل الذاكرة المخبئية فأذا وجدها هذا يسمى اصابة للهدف (Cache hit) واذا لم يجدها يسمى هذا فقدان للهدف (Cache miss) وفى هذه الحالة يجب على الكمبيوتر الانتظار لحين القيام برحلة إلى الذاكرة الرئيسية.
للذاكرة المخبئية حد أقصى وهو اقل بكثير جداً من حجم ذاكرة الكمبيوتر الرئيسية الأساسية.
من الممكن ان يكون للذاكرة المخبئية أكثر من مستوى Levels. المستوى الاول يكون هو الاسرع ويسمى Level 1 Cache، ففى المثال السابق تكون الحقيبة التى يحملها أمين المكتبة هى المستوى الأول وهى الأسرع فى البحث لأنها تحتوى عى عدد أقل من الكتب. ويمكن أن يكون المستوى الثانى عبارة عن رف يحتوى على 100 كتاب مثلاً Level 2 Cache. وعند البحث عن كتاب معين يقوم أمين المكتبة فى البحث فى الحقيبة أولاً ثم فى الرف الذى خلفه، ثم فى المخزن الرئيسى للكتب. وهذا يسمى ذاكرة مخبئية ذات مستويين.
الذاكرة المخبئية فى اجهزة الكمبيوتر:
إن اجهزة الكمبيوتر هى آلات سريعة جداً ويقاس الوقت بداخلها بمقادير صغيرة جداً. فعندما يتعامل المعالج مع الذاكرة الرئيسية للكمبيوتر (RAM) فانه يستغرق زمناً مقداره حوالى 60 نانو ثانية ( 1 نانو ثانية = بليون جزء من الثانية). هذا الزمن بالنسبة لنا يعتبر سريع جداً. ولكن بالنسبة للمعالج الذى له زمن الدورة الكاملة (Cycle time) = 2 نانو ثانية، فان الـ 60 نانو ثانية تعتبر كالدهر بالنسبة للمعالج.
ماذا لو أستطعنا ان نقوم ببناء لوحة للذاكرة تقع على اللوحة الأم، تكون صغيرة فى الحجم ولكنها سريعة (حوالى 30 نانو ثانية) هذه السرعة هى اسرع مرتين من سرعة الوصول الى ذاكرة الكمبيوتر الرئيسية. هذه الذاكرة هى التى يطلق عليها المستوى الثانى من الذاكرة المخبئية (Level 2 Cash or L2 cache).
ماذا لو أستطعنا ايضاً بناء مقدار أصغر من الذاكرة ولكنه أسرع من السابقة أيضاً ويكون مكانها بداخل المعالج نفسة وليس على اللوحة الأم كالذاكرة السابقة. وبالتالى نستطيع الوصول إلى هذه الذاكرة بنفس سرعة المعالج نفسه. وهذه ما يطلق عليه المستوى الاول من الذاكرة المخبئية (Level 1 Cache or L1 cache).
فى اجهزة الكمبيوتر من النوع البانتيوم تكون سرعة المستوى الأول من الذاكرة المخبئية أسرع 3.5 مرة من سرعة المستوى الثانى من الذاكرة المخبئية.
ويتكون سرعة المستوى الثانى من الذاكرة المخبئية أسرع 2 مرة من سرعة الذذاكرة الرئيسية للكمبيوتر.
بعض المعالجات يكون المستوى الآول والثانى من الذاكرة المخبئية مبنياً داخل المعالج نفسه. ويكون لديهم مستوى ثالث من الذاكرة المخبئية (Level 3 Cache or L3 cache)، وهذه الذاكرة تكون بين المعالج وبين الذاكرة الرئيسية للكمبيوتر.
توجد داخل اجهزة الكمبيوتر العديد من الأنظمة الفرعية التى تعتمد على نظام الذاكرة المخبئية (Cache) لللأسراع فى معدلات أدائها عندما يُطلب منها الاتصال بنظام أبطأ منها.