هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.



 
الرئيسيةالتسجيلأحدث الصوردخول

 

 هل تريد فهم الCache Memory إذا ً ادخل هنا!

اذهب الى الأسفل 
2 مشترك
كاتب الموضوعرسالة
المايسترو
عضو
avatar


عدد الرسائل : 61
العمر : 43
المزاج : رايق مرة
تاريخ التسجيل : 27/08/2007

هل تريد فهم الCache Memory إذا ً ادخل هنا! Empty
مُساهمةموضوع: هل تريد فهم الCache Memory إذا ً ادخل هنا!   هل تريد فهم الCache Memory إذا ً ادخل هنا! Emptyالأربعاء أكتوبر 03, 2007 8:40 pm

بسمـــ اللهـــ الرحمنــ الرحيمــــــ
السلامـ عليكمـ ورحمة اللهـ وبركاتهـ
اولاص الدرسـ منقولـ للفائده
اليوم كتبت لكم باختصار شديد نظره جيده عن مفايهم الكاش ميموري باسلوب منظم وسهل وارجو انه ينال اعجابكم يارب وابي منكم المشاركه وايضا ً ارحب باي اضافه وتوضيح واي مداخلات

وبسم الله نبدأ:-





ذاكرة الكاش:-
هي نوع من انواع الذاكره في الحاسب وهي اسرع الانواع اطلاقاً و تتواجد مابين المعالج وبين الذاكره الرئيسية في الحاسب الآلي,وقد تم اللجؤ الى هذا النوع من الذواكر السريعه لتخزين الاجزاء النشطه الاستخدام من البرنامج "البرامج,التطبيقات" الجاري معالجتها في المعالج والحاسب عموما ً لكي يكون التعامل معها سريعا وسلس وبالتالي انخفاض كبير في اوقات التشغيل والانجاز في العمليات.

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


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

عندما يحتاج المعالج الى الوصول الى الذاكره فإنه يختبر ما ان كانت اولا متواجده في الكاش وبالتالي يأخذه من الكاش وهذا اسرع طبعا بكثير جداً والا ينتقل الى الذاكره الرئيسيه ويجلب من هناك ال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 يتم تقسيم الكاش الى مجموعات.
النوع الأول:- التخطيط المترابط "Associative Mapping ":-

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

في هذا النوع من التخطيطـ فإن الذاكره المترابطه تخزن كل من العنوان والمحتوى معا ً ! وهذا يسمح لأي موقع في الذاكره الوسيطه"الكاش" لخزن اي كلمه"Word " من الذاكره الرئيسيه.
كما هو موضح بالجدول ادناه ان العنوان مكون من خمس خانات بالنظام الثماني اي تكافيء اثنا عشر رقما ً في النظام الثنائي. الخطوة الاولى الان في العمل هي وضع العنوان ذي ال15 بت من المعالج في مسجل الArgument وبعد ذلك يتم البحث في الذاكرة الترابطيه عن هذا العنوان, فإذا تم العثور عليه فإنه يتم قراءة ال12 بت المقالبين للعنوان الصحيح وإرسالها الى المعالج, في حال لم يتم العثور عليها يتم البحث عنها في الذاكره الرئيسيه. وبعد ذلك يتم نقل زوج العنوان والمحتوى الى الذاكره الترابطيه الوسيطه "الكاش", في حال كان الكاش مليء يتم وضع زوج مكان زوج اخر وهذا يتم حسب تكنيك معين.


2-النوع الثاني وهو التخطيط المباشر"Direct Mapping " :-
مما لاشك فيه ان الذاكره الترابطيه اغلى من ذاكرة الوصول العشوائي نظرا ً لتكاليف الدوائر المنطقيه المضافه الى كل خليه . سوف نلقي الضوء على امكانيه واحتمالية استخدام ذاكرة الوصول العشوائي في الكاش! كما هو مبين في الرسمه التاليه في الاسفل صورة "2" :-
كما هو واضح ان عنوان المعالج مكون من 15 بت ينقسمان في قسمين وهي كالاتي:-

من صفر الى 8 تمثل الIndex = 9بت
من 9الىالخامسة عشر تمثل الTag = 6بت
وكما يظهر من الصوره فان الذاكره الرئيسيه تحتاج الى عنوان يحتوي على ال Tag و الIndex معا ً.
عدد البت في الIndex = عدد بت العنوان المطلوب للوصول الى الكاش.

عموما هناك 2 مرفوعه الى الاس ك من الكلمات "Words " في ذاكرة الكاش بينما يوجد 2 مرفوعه الى الاس ن من الكلمات في الذاكرة الرئيسيه. العنوان المكون من ن بت ينقسم الى قسمين الاول هو حقل للIndex وله ك بت , والاخر مكون من ن ـــ ك بت وهي حقل لل Tag.

ان ذاكره الكاش ذات التخطيط المباشر تستخدم ن بت كعنوان للوصول الى الذاكرة الرئيسيه بينما تستخدم ك من البت للوصول الى ذاكرة الكاش.


الان نتجه الى توضيح كيفيه تكوين الكلمات "Words" بداخل ذاكرة الكاش كما في الصورة رقم 3 بالاسفل:-



نلاحظ ان كل كلمه "Word" تتكون من بيانات كلمه و الTag المتعلق بها.
عندما تُحضرٌ اول كلمه جديده الى الكاش يتم تخزين ال Tag Bit بجانب البيانات "Data Bit ".
عندما يولد المعالج طلب من ذاكره فان حقل الIndex يستخدم للعنوان للوصول للكاش, ثم يتم المقارنة بين حقل العنوان في ال tag الخاص بالمعالج مع الاخر في الكلمة المقروءة من الكاش, فاذا تطابقو فهذي تعتبر اصابه"Hit " وان لم فهي فقد "Miss "و حينئذ تقرأ ُ الكلمه المطلوبه من الذاكرة الرئيسيه وبعدها تخزن في الكاش مع الtag الجديد .
عيب النوع هذا يظهر حينما يكون لدينا كلمتين او اكثر لهم العنوان ذاته الخاص بالIndex ولكن مختلفين في عنوان الTag يتم الوصول او استخدامهما بشكل دوري ومتكرر فان هذا النوع يجعل الكاش في كل مره يذهب ليحضر كل كلمه من الذاكره الرئيسيه وبالتالي فان العمليه مكلفه ومضيعه للوقت في مثل هذه الظروف, واليكم مثال:-
للنظر الى الصورة رقم 3
لاحظ ان الكلمه ذات العنوان 00000 في الذاكرة الرئيسيه انه يشار اليه في الكاش كالاتي

Index=000,Tag=00 , Data=1220

لنفرض الان ان المعالج يريد الوصول الى الكلمه في العنوان 02000 في الذاكرة الرئيسيه بالتالي فان Index =000 وهي المستخدمه للوصول للكاش,الان يوجد كلمه ذات العنوان صفر والان نريد احضار الجديده ذات العنوان 02000 اذا الان يتم مقارنه الTag للاولى والثانيه فنلاحظ ان الTag الخاص بالكاش هو 00 بينما الاخر في العنوان هو 02 بالتالي هناك اختلاف فيقوم المعالج بالوصول الى الذاكره الرئيسيه ويتم نقل البيانات المحتواه في العنوان 02000 وهي 5670 الى المعالج,يتم الان استبدال 02 بدلا من 000 وبيانات ب 5670.

التخطيط المباشر الموضح اعلاه يستخدم فقط بلوك واحد حجمه كلمه واحده, الان سنرى كيف ان كان يستخدم 8 كلمات كحجم للبلوك. انظر الصورة رقم 4:-


الان وقد اصبح حقل الIndex مقسم الى قسمين هما حقل البلوك وحقل الكلمه , في الكاش ذي ال512 كلمه هناك 64 بلوك كل منها له 8 كلمات حيث 64*8 = 512 .

رقم البلوك يحدد بحقل ذي 12 بت والكلمه اللي بداخل البلوك تحدد بحقل ذي 3بت ,يكون حقل الTag المخزن في الكاش مشترك لجميع ال8 كلمات حقت البلوك الواحد.
في كل مره يحصل فقد"MisS " يتم نقل بلوك ذي ثمان كلمات باكمله من الذاكرة الرئيسيه الى الكاش , بالرغم من انها تستغرق وقت لكن هذه العمليه سوف تزيد من معدلات الاصابه خصوصا كلما زاد عدد البلوكات لان كل بلوك يحوي بيانات متتاليه يحتاجها المعالج في تنفيذ المهام وبالتالي فهو ياخذها مباشره من الكاش دون الحاجه للرجوع للذاكرة الرئيسيه لاحضارها.

3- التخطيط ذو المجموعات المترابطه "Set-Associative Mapping":-


كما ذكرت سابقاً ان العيب في التخطيط المباشر يحصل حينما تتطابق بين كلمتين في ال Index لكنهما يختلفان في ال Tag حيث لا يمكن ان يتواجد معا ً في الكاش بوقت واحد , فكانت الطريقة الثالثه من التخطيط ذات المجموعات المترابطه هي الحل والتطوير للتخطيط المباشر حيث انه بالامكان الان تخزين كلمه او اكثر من الذاكره الرئيسيه في كل كلمه في الكاش حتى وان كان لهما نفس ال Index . وهذي الطريقة يا جماعه موجوده في كل معالجات انتل مثل ما تلاحظون في خصائص الكاش الخاص بالمعالج من خلا ل برنامج سي بي يو اي دي ., فهنا كل كلمه تخزن مع الTag الخاص بها ., المجموعه تعني عدد عناصر ال Tag-Data الموجوده في كلمه من الكاش.
الان سوف اضرب لكم مثال في الصوره رقم 5 عن ذاكره تخطيطيه ذات مجموعتين:-

نلاحظ ان كل Index Address يشير الى 2 من البيانات مع التاجز الخاص بهما. كل Tag يحتاج6 بت بينما تملك كل كلمه 12 بيت لذلك فان طول الكلمه هو 2*(6+12) = 36 بت.
اي ان Index Address ذو 9 بت يمكنه تخزين 512 كلمه, باالتالي حجم الكاش هو 512*36, باستطاعته تخزين 1024 كلمه من الذاكره الرئيسيه حيث كل كلمه من الكاش تحوي 2 Data Words ., بشكل عام يقال ان ذاكره الكاش المخططه مجموعيا ً الى ك مجموعه سوف تتستع"تخزن" ك من الكلمات من الذاكره الرئيسيه في كل كلمه من الكاش.

لنعيد النظر مجددا ً الى الصورة الخامسه :-
نلاحظ ان الكلمات ذات العنوان 01000 و 02000 في الذاكره الرئيسيه تم تخزينها في الكاش في عنوان له ال Index=000 لهما معا ً, وكذلك الكلمات ذات العنوان 02777 و 00777 يخزنان في الكاش تحت اندكس واحد وهو 777 , الان لنرى كيف يتعامل معها المعالج:-
عندما يحتاج المعالج طلب من الذاكره الرئيسيه يتم استخدام قيمه الاندكس للوصول الى الكاش, ثم بعد ذلك يتم مقارنه التاجز في حقل الكاش مع الاخر في حقل العنوان الاتي "المطلوب" في المعالج. وملحوظ هنا ان معدل الاصابه سوف يزيد لانه هناك العديد من الكلمات ذات الاندكس الواحد لكن لها تاجز مختلفه تخزن تحت اندكس واحد .الان عندما يحصل فقد"Miss"
وكانت ايضا المجموعه مليئه فيتم تبديل احد عناصر التاجز بقيمه جديده, واكثر الطرق في التبديل هي طريقة التبديل العشوائيه وكذلك طريقة الاول هو الاخير وكذلك طريقة الاحدث استخداما ً.







---------------
.
.
[/img]هل تريد فهم الCache Memory إذا ً ادخل هنا! 37001
هل تريد فهم الCache Memory إذا ً ادخل هنا! 37002
هل تريد فهم الCache Memory إذا ً ادخل هنا! 37003
هل تريد فهم الCache Memory إذا ً ادخل هنا! 37004[img]
هل تريد فهم الCache Memory إذا ً ادخل هنا! 37005
الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://www.nba2020.jeeran.com
احبك موت
عضو فعال جداً
عضو فعال جداً
avatar


عدد الرسائل : 399
تاريخ التسجيل : 11/09/2008

هل تريد فهم الCache Memory إذا ً ادخل هنا! Empty
مُساهمةموضوع: رد: هل تريد فهم الCache Memory إذا ً ادخل هنا!   هل تريد فهم الCache Memory إذا ً ادخل هنا! Emptyالثلاثاء ديسمبر 02, 2008 9:01 am

مشكور اخوي
الرجوع الى أعلى الصفحة اذهب الى الأسفل
 
هل تريد فهم الCache Memory إذا ً ادخل هنا!
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
» الان هل تريد ان تحترف السويش ادخل بسسسسسسسسسسسرعه
» هل تريد ان ترى قلبك وهو ينبض ؟؟؟؟؟
» لو تريد تدخل انشرها
» هل تريد ان تعرف اسمك بالياباني؟؟؟؟
» هل تريد ان تربح المليون التسجل عبر الانترنت فرصة لا تعوض

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
 :: المنتديات التقنية :: قسم صيانة الحاسب الالي-
انتقل الى: