بسم الله الرحمن الرحيم

[اللّهُ لاَ إِلَهَ إِلاَّ هُوَ الْحَيُّ الْقَيُّومُ لاَ تَأْخُذُهُ سِنَةٌ وَلاَ نَوْمٌ لَّهُ مَا فِي السَّمَاوَاتِ وَمَا فِي الأَرْضِ مَن ذَا الَّذِي يَشْفَعُ عِنْدَهُ إِلاَّ بِإِذْنِهِ يَعْلَمُ مَا بَيْنَ أَيْدِيهِمْ وَمَا خَلْفَهُمْ وَلاَ يُحِيطُونَ بِشَيْءٍ مِّنْ عِلْمِهِ إِلاَّ بِمَا! شَاء وَسِعَ كُرْسِيُّهُ السَّمَاوَاتِ وَالأَرْضَ وَلاَ يَؤُودُهُ حِفْظُهُمَا وَهُوَ الْعَلِيُّ الْعَظِيم]


السبت، 18 فبراير 2012

الذاكرة المخبأة (cache memory)

الذاكرة المخبأة (cache memory):
وتستخدم خلال عمليات التشغيل وهى عبارة عن ذاكرة تخزين مؤقت ذات سرعة عالية جدًا تفوق سرعة الذاكرة الرئيسية। وتستخدم للتخزين المؤقت للبيانات والتعليمات المطلوب استرجاعها مرات عديدة أثناء عمليات تشغيل البيانات مما يساعد على سرعة تشغيل البيانات . وتقدر سعة الذاكرة المخبأة بحوالي 512 كيلو بايت أو اكثر.

أيضا هي مجموعه مسجلات بالغة السرعة (أسرع من مسجلات الذاكرة الرئيسية ) وأقل سرعة من مسجلات وحدة المعالجة المركزية CPU Registers , وتقع الذاكرة المؤقتة(الخفية) بين المعالجات CPU Processors والذاكرة الأساسية, وفيها يتم تخزين الإيعازات المنتظرة والبيانات المرتبطة بها مما يحقق تقليل زمن الاستدعاء بنسبة 90% تقريباً.
عند استدعاء مجموعة من البيانات من الذاكرة الأساسية إلى المعالج, يتم فحص الذاكرة المؤقتة, فيما إذا كانت تحتوي على البيانات المطلوبة أم لا. فإذا كانت لا تحتوي على البيانات المطلوبة يتم إحضار البيانات من الذاكرة الأساسية إلى المواقع الفارغة في الذاكرة المؤقتة(الخفية).


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

نظرية التشغيل في الكاش:-

عندما يحتاج المعالج الوصول للذاكرة فإنه يختبر ما إن كانت أولاً متواجدة في الكاش أم لا ، وبالتالي يأخذه من الكاش إذا كانت موجودة وهذا أسرع طبعا بكثير جداً وإلا ينتقل إلى الذاكرة الرئيسية ويجلب من هناك إلـ Block الذي يحوي تلك العملية " البلوك به العملية وأيضا عده تعليمات أخرى متتالية" إلى الكاش " السبب في نقل البلوك بأكمله هو أنه في المرحلة المقبلة سيحتاج المعالج تلك التعليمات المجاورة للعملية الأولى فتم وضعها في الكاش لأخذها مباشره منه بدلا من جلبها من الذاكرة الرئيسية وبالتالي توفير الوقت والسرعة". كفاءة الكاش تقاس بكميه تدعى ال Hit Ratio أو معدل الإصابة " معدل الإصابة أو الصواب يقصد به وجود التعليمات في الكاش حينما يبحث عنها المعالج مباشرة , وعلى العكس إن لم يجدها في الكاش نسميها Miss "

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

من الملاحظ أنه يمكن تحسين معدل زمن الوصول إلى الذاكرة في الحاسب بوضع واستخدام الكاش, حيث ما إذا كان معدل الإصابة عالي أي أن كل الوصول يكون من المعالج إلى الكاش دون الحاجة إلى الوصول إلى الذاكرة الرئيسية سيكون في هذه الحالة زمن الوصول سريع جدا يضاهي سرعه الكاش. واليكم مثال توضيحي:-

ليكن لدينا كمبيوتر فيه زمن الوصول للكاش هو 100 نانو ثانيه, في اليد الأخرى كان زمن الوصول إلى الذاكرة الرئيسية هو 1000 نانو ثانيه وكان معدل الاصابه 0.9 أي 90% سيكون هنا معدل الوصول اللازم هو 200 نانو ثانيه فبالتالى تم تخفيض الزمن وحصلنا على السرعة.

كما نعلم إن من خصائص الكاش هو السرعة بالتالي زمن البحث عن تعليمة داخل الكاش يجب إن يكون ضئيل جدا أو معدوم, بالنسبة لعمليه انتقال البيانات من الذاكرة الرئيسية في الكمبيوتر إلى ذاكرة الكاش تسمى عمليه التخطيط "Mapping " و هناك ثلاثة أنواع من التخطيط :-

1- النوع الأول هو Associative Mapping

2- النوع الثاني هو Direct Mapping

3- النوع الثالث هو Set-Associative Mapping

وسوف اشرح لكم نبذات عن كل نوع من هذه الأنواع الثلاث:



1- النوع الأول "Associative "

أغلب الكاشات السريعة والجيدة تستخدم هذه الطريقة وفي هذه الطريقة يتم تخزين العنوان والمحتوى للتعليمة أو "Word " وفي هذا النوع لا يسمح بتخزين أي تعليمه "Word " في أي مكان.أي هنا يوجد عدد ضخم "×" الأماكن مخصصة للبيانات., وعندما نريد احدها يتم البحث في كل القيم إلى إن يتم الحصول على المراد.

2-النوع الثاني"Direct Mapping"

هنا يوجد مكان واحد لكل البيانات.

3- النوع الثالث "Set-Associative"

هذا النوع كحل وسط بين النوعين الأولين حيث هنا يوجد 2 مرفوعة إلى الأس × من الأماكن لكل البيانات ففي حال ×=2 نسميه Two Way Set Associative

في حال ×=3 نسميه Three Way Set-Associative

في حال ×=4 نسميه Four Way Set-Associative

باختصار نلاحظ الآتي

عيوب الـDirect أن لكل الـ Dataمكان واحد أي في حال نريد جلب بيانات متتابعة فانه يلزم جلب كل واحده في مرة وإزالتها ثم وضع الأخرى ثم إزالتها ثم وضع الأخرى وهكذا...الخ.

ميزة الـ Associativeأنه يضع كل داتا في مكان وبالتالي لا داعي لجلب كل الداتا متتالية كل مرة.

أما في حالة الـ Set Associative يتم تقسيم الكاش إلى مجموعات.

ليست هناك تعليقات:

إرسال تعليق