|
|
| مباديء ذاكرة الكاش وطرق تصميمها | |
| | كاتب الموضوع | رسالة |
---|
???? زائر
| موضوع: مباديء ذاكرة الكاش وطرق تصميمها 2010-05-06, 02:34 | |
| بسم الله الرحمن الرحيم قبل الشروع في صلب الموضوع , فانه من الافضل طرح بعض المفاهيم العامه التي تعلق في اذهان القارئين حين قراءه ذاكرة الكاش. -س:- ما هي ذاكرة الكاش و ما الفائدة منها؟ ج:- هي احد انواع الذواكر التي يتم الحاق كميه منها للمعالج و هي تتميز بسرعة عاليه و التي تعمل على سد الفجوه بالسرعه بين المعالج "سرعه عاليه جداً" وبين الرام "ابطأ بكثير من المعالج" وبذلك سوف نمكن المعالج من العمل بكامل سرعته في اوقات عديده . س- كيف تعمل ذاكرة الكاش؟ ج:- إجابه السؤال سوف تكون عموميه لان السؤال يعتمد على نوعيه المعالج " لكل معالج طريقته في التعامل مع الكاش" , تعمل ذاكرة الكاش عموماً على مبدأ التنبؤ بالذاكرة التي سوف يحتاجها المعالج في المرحلة التاليه والعمل على تحميل تلك الذاكره قبل ان يحتاجها المعالج و من ثم حفظ النتائج بعد انتهاء المعالج منها. لو فرضنا ان المعالج يحتاج الى احد البيانات في الذاكره ولكنه لم يجدها في ذاكرة الكاش حينها سوف يضطر المعالج للتوقف "مؤقتاً" الى حين ان يتم تحميل تلك البيانات من الذاكره الرئيسية "الرام" الى ذاكرة الكاش وفي نفس هذه الحين يتم نقل البيانات التي تتواجد حول البيانات التي تم نقلها للكاش لانه على الارجح سوف يتم احتياجها من قبل المعالج قريبا ً ان لم يكن في نفس العملية الحاليه , وعند نقل بيانات من الذاكره الرئيسية الى ذاكرة الكاش فانه سوف يتم وضع تلك البيانات في مكان بيانات اخرى تتواجد "تقيم" في الكاش لذلك يقوم الكاش بالتحقق ما ان كانت البيانات المراد اخذ مكانها قد تم تغييرها ام لا؟ فان كانت قد تم تغييرها فانه يقوم بحفظ تلك التغيررات وعنونتها في الذاكرة الرئيسية ثم بعد ذلك يقوم بتحميل البيانات الجديده ووضعها مكان تلك القديمه. س:- هل ذاكرة الكاش تفهم ماهي تركيبات ونوعيه البيانات التي تتعامل معها؟ ج:- في الحقيقة ان ذاكرة الكاش لا تعلم شيئاً عن تركيبات واشكال البينات التي تتعامل معها ولكنها فقط تتعامل بطريقة تم العثور على البيانات او لم يتم العثور على البيانات في الكاش . س:- اهناك طرق لتحسين اداء الكاش عموما ً؟ ج:- أ- استعمال حلقات تكراريه صغيره وعدم جعلها كبيرة تأخذ كميات اكبر من حجم الذاكره. ب- محاولة عدم استدعاء دوال خارج نطاق الشفره "Code" الي يتم التعامل معها حالياً. ج- محاولة استعمال الذاكره للوصول للبيانات التي في نفس المنطقه الجاري التعامل معها. ومن الكلام السابق نستنتج ان ذاكرة الكاش لا تستحسن التعامل مع بعض تركيبات البيانات ولكم بعض من تلك التركيبات:- أ- المصفوفات الكبيره والتي تستعمل التكرار من البداية الى النهايه. ب- القوائم المترابطه والتي يكون كل جزء من البيانات فيها بالاماكن الوصول اليه من عده جهات ونقاط. ج- الطوابير تكون سيئه في حال استعمال طريقة الدخول اولاً - الخروج اولاً . ____________________________________ كما نعلم ان الزمن كل ماتقدم كل ماتحسنت سرعه واداء و قدرات المعالج و معلوم ان المعالج بامكانه تنفيذ كميات هائله جدا من العمليات في الثانية الواحده , في هذه الحين كانت ولاتزال الرام مشكلة حقيقة وتشكل عائقا ً في السرعة , ومن اكبر الامور المعيقه للذاكره "الرام" في التقدم هي اوقات الانتظار "وقت الانتظار = المدة الزمنية بين العمليات" وهذا يعني انه في هذه المده سيكون المعالج غير نشط وينتظر الانتهاء لكي يبدأ في تنفيذ العملية التاليه , لذلك كان من الضروري جدا التفكير في سد فجوه السرعه و ظهرت ذاكره الكاش كحل جيد لهذه المشكله. دعونا نستعرض معاً قانون العالم موور :- و هو القانون الذي ابتكره جوردون موور أحد مؤسسي انتل عام 1965. حيث لاحظ مور أن زيادة عدد الترانزستورات على شريحة المعالج بدون تكلفة يتضاعف تقريباً كل عامين، وأدت هذه الملاحظة إلى بدأ دمج السيليكون والدوائر المتكامله من قبل إنتل مما ساهم في تنشيط الثورة التكنولوجية في شتى أنحاء العالم. وفي عام 2005، تنبأ الباحثون بأن تلك النظرية سيستمر تطبيقها لعقد أخر من الزمان على الأقل. يدرك الكثيرون أن الزيادات الفائقة لأعداد الترانزيستورات المدمجة في المعالجات وغيرها من المكونات الرائدة لمنصات العمل، وهذه الزيادات عملت بشكل ثابت وحقيقي تؤدي إلى المزيد من الأداء الحاسوبي وفقاً لقياسه بملايين العمليات في الثانية الواحدة. كما يعني قانون مور أيضاً خفض التكاليف، ففي الوقت الذي تحقق فيه العناصر القائمة على السيليكون ومكونات منصات العمل المزيد من الأداء، فإنها تصبح أقل كلفة عند إنتاجها، وتصبح أكثر وفرة وقوة وأكثر تواجداً في حياتنا اليومية. وتعمل المعالجات اليوم على تشغيل كل شيء تقريباً، بدءاً بالألعاب وحتى الإشارات الضوئية، فعلى سبيل المثال، تستخدم بطاقة عيد الميلاد التي تكلف بضع دولارات اليوم قوة حاسوبية تفوق أسرع أجهزة الكمبيوتر التي استخدمت قبل عقود قليلة. لنبدأ في تعريف ذاكرة الكاش بكل بساطه:-- هي ذاكره سريعة وباهظة السعر يتم وضعها كوسيط مابين المعالج والذاكره الرئيسيه بكميات صغيره نسبياً " وهي بازدياد مع التقدم التقني", بالتالي هي للمعالج ذاكره اسرع في الوصول من تلك الذاكره الرئيسية , ووظيفة الكاش هي الابقاء على البيانات "التعليمات بشكل ادق " التي يحتاجها المعالج في عملياته الحاليه لكي يسهل ويسرع التنفيذ و ايضا ً للاسفتاده من سرعه المعالجه الهائله و التقليل من ازمنه الانتظار مابين العمليات . الكاش ذاكره سريعه و هي بالطبع اسرع من الذاكره الرئيسيه وذلك بسبب انها مصنعه بواسطه ذاكرة الوصول العشوائي الساكنه "SRAM" على عكس تلك المستعمله في تصنيع الذاكره الرئيسيه وهي من نوع ذاكره الوصول العشوائي الديناميكيه "DRAM" و مشكله هذا النوع انها تتكون كلياً من مكثفات والتي يجب تحديثها باستمرار من أجل الحفاظ على المعلومات المخزنة . ومعلوم انه متى ما تتم قراءة بيانات من الخلية يتم عمل عمليه انعاش "Refresh" لها. وايضاً معلوم ان خلايا الذاكره DRAM بحاجة الى انعاشها بشكل متكرر كبير جداً كل 4 الى 16 ملي ثانيه الامر الذي يبطيئ العمليه برمتها . في اليد الاخرى فان ذاكره الSRAM تتكون من القلابات "Flip Flops" و معلوم ان من خصائص القلاب انه يبقى على حالته طالما انه ممدود بالطاقه " ملاحظة توضيحيه :- القلاب هو داره كهربية مكونه من مقاومات وترانزستورات كما بالصوره الاتيه" لهذا السبب ولان الذاكره من نوع SRAM لاتحتاج الى عمليه انعاش فانها اسرع بما يقارب العشر مرات من ذاكره ال DRAM ولكن لا ننسى بان تصنيع دارات القلابات معقده وغاليه في التنصيع مما يجعل استعمالها محدوداً بشكل ما . ثانياً:- مباديء ذاكرة الكاش :-بشكل عام تعمل ذاكرة الكاش على محاولة التنبؤ بمعرفه اي ذاكره سوف يحتاجها المعالج في المره التاليه ومن ثم تحميل تلك الذاكره قبل ان يحتاجها المعالج ومن ثم حفظ النتائج بعد انتهاء العمليه , في حال لم يجد المعالج تلك البيانات التي يحتاجها في ذاكره الكاش فانه يضطر للتوقف والانتظار الى حين جلبها في ذاكره الكاش من الذاكره الرئيسيه و اليكم الصوره التاليه توضح هذه العمليه على شكل مبسط عموماً بالامكان القول بان تقنيه ذاكره الكاش مبنيه بشكل اساسي على مبدأ " مرجعية المحل" البرامج تميل إلى الوصول إلى جزء صغير فقط من مساحة عنوان عند نقطة معينة من الزمن. هذا المبدأ يعتمل على ثلاثه افتراضات اساسيه وهي التواجد المكاني المؤقت والتواجد المكاني المؤقت والتتابعيه , وسوف اقوم بتوضيح كل فرضيه بشكل مبسط - التواجد المكاني المؤقت:- تعني ان الذاكره المشار اليها من المرجح العوده من جديد والاشاره عليها مره اخرى.-التواجد الزمان المؤقت :- تعني ان الذاكره القريبه من الذاكره المشار اليها لها احتماليه كبيره ان يتم الاشاره عليها في المره القادمه "قريبا ً".-التتابعية :- تعني ان الوصول الى الذاكره في المستقبل من المرجح جدا ان تكون في شكل متتابع بالنسبه لمكان الوصول الحالي. الموضوع لة بقية يـــــــــتــــــــــبــــــــــــع |
| | | ???? زائر
| موضوع: رد: مباديء ذاكرة الكاش وطرق تصميمها 2010-05-06, 02:36 | |
| -كيف تعمل ذاكره الكاش ؟:- ان الذاكره الرئيسيه مكونه من عدد 2^س "اثنان اس س " من الكلمات المعنونه , ولكل كلمه عنوان فريد "س من البت ", ولغرض التخطيط والتوزيع فانه من الافضل ان نعتبر الذاكره الرئيسيه على انها مكونه من عدد من القطاعات الثابته الطول ولكل قطاع عدد ص من الكلمات, اذاً وبكل سهوله رياضياً نستطيع حساب عدد القطاعات = ( 2^س) \ (ص) =ق قطاعومن ثم نقسم الكاش الى عدد ل من الخطوط لكل منها عدد ق من القطاعات , كما سيتضح امامكم في الصوره نرى ان عدد الخطوط في الكاش اصغر بشكل معتبر من عدد القطاعات في الذاكره الرئيسيه , اذاً فانه في اي وقت هناك مجموعات جزئيه فقط من قطاعات الذاكره الرئيسيه تتواجد "تقيم" في خطوط ذاكره الكاش , على فرض ان احد الكلمات الموجوده في قطاع ما في الذاكره الرئيسيه سوف يحتاجه المعالج في عملياته , فهذا القطاع الذي يحتوي تلك الكلمه سوف يتم نقله الى احد الخطوط في الكاش , ولكن وكما سبق واخبرتكم انه يوجد عدد خطوط في الكاش اقل من عدد القطاعات في الذاكره الرئيسيه فانه لا يمكن تخصيص خط بشكل فريد ودائم لقطاع ما من الذاكره , لهذا فان كل خط في الكاش يستعمل علامه "Tag" لكي يتم عن طريقه معرفه اي قطاع من قطاعات الرام يشغل ذاك الخط من الكاش حالياً , والعلم هذا عموماً يكون عدد من البت وهو جزء من عنوان الذاكره الرئيسيه. -- فعالية الكاش :- إن فعالية الكاش يتم تحديدها بعدد المرات التي يتم فيها بنجاح العثور على البيانات المطلوبة في الكاش و من هذا المكان وجب علي تقديم بعض المصطلحات وتعريفها قبل الاكمال في هذا الصدد. لفظ "اصابة" :- يستعمل للاشاره على تحقق وجود البيانات التي يحتاجها المعالج في الكاش.لفظ " عدم اصابه":- يستعمل للاشاره على عدم وجود البيانات التي يحتاجها المعالج في الكاش .ولعدم الاصابه عده انواع كالاتي:-أ- عدم الاصابه الالزامي :- حيث ان اول وصول لقطاع ما غير موجود بالكاش , لذا فانه يجب احضار ذلك القطاع الى الكاش , يسمى ايضاً هذا النوع بعدم اصابه المرجع الاول.ب- عدم الاصابه السعوي :- يحدث حينما لا يستطيع الكاش احتواء جميع القطاعات التي يحتاجها المعالج في تنفيذ برنامج ما , وهي تحدث بسبب حجم الكاش.ج-عدم الاصابه التعارضي:- يحدث ان كانت استراتيجيه التخطيط المباشر او استراتيجيه التخطيط ذات المجموعات المترابطه مستخدماً وذلك لانه سوف يحدث وان يتم احضار قطاع ما من الذاكره للكاش ومن ثم فقده في حين اخر اذا كان هناك الكثير من القطاعات مخططه لنفس مجموعته. يسمى وقت الوصول للكاش في حال الاصابه بزمن الاصابه,وفي حال لم يجد المعالج مايتطلبه من بيانات في الكاش فانه من الضروري ان يتم جلب المطلوب من المستويات الدينا من الذاكره "الابطأ" وهذا ما يعرف بحاله عدم الاصابه , وعند ايجادها يتم اخذها وتكرارها في الطبقه الاعلا من مستويات الرام "الاسرع" , اذا الزمن اللازم لاحضار معلومه في حاله عدم الاصابه = زمن الذهاب + زمن العوده "هو نفسه زمن الذهاب" + زمن الوصول . معدل الاصابه = هو اجمالي النسبه المئويه من الاصابات في جميع محاوالات الوصول الى الذاكره الرئيسيه. معدل عدم الاصابه = 1- معدل الاصابه واحدى طرق تحسين كفاءه الرام هي بالقيام برفع معدل الاصابه وخفض معدل عدم الاصابه .ولزياده معدل الاصابه نقوم باتباع احد هذه الاستراتيجيات:- أ- حجم الكاش :-وهي طريقه تهدف لخفض معدل عدم الاصابه , حيث انه كلما كبر حجم الكاش كلما احتوى على كم اكبر من البيانات وبالتالي ترتفع نسبه الاصابه لانه هناك نسبه قليله فقط من قطاعات الرام سوف يتم اجبارها على استعمال الخط نفسه في الكاش. في هذه الحاله وبرفع حجم الكاش فان التطبيقات سوف تستفيد من هذه الزياده ولكن بالوصول الى نقطه ما سوف يكون مابعدها عديم الفائده ان رفعنا الحجم اكثر , وعند الوصول الى هذه النقطه فانه يحتمل ان يكون قد حدث شيء من هذه الامور :--- اما ان حجم الكاش اصبح كبير جدا بدرجه اصبحت تغني من احضار البيانات من الDisk.-- او ان البرنامج "التطبيق" يستعمل الوصول العشوائي فعلياً حينها لن يكون في زياده حجم الكاش اي دور في العثور على البيانات التاليه المطلوبه .بشكل عام فان حجم الكاش يفضل ان يكون صغيراً بشكل كافي لجعل معدل التكلفه الكلي لكل بت قريبا من ذاك مع الذاكره الرئيسيه فقط , ويفضل ان يكون كبيراً بشكل كافي لجعل معدل الوصول الاجمالي قريبا من ذاك بذاكره الكاش وحدها فقط. احد الاسباب الاخرى التي تدعو الى تصغير حجم الكاش هي:- ان حجم الكاش كل ما زاد كل مازاد عدد البوابات المتسعمله لعنونته وبالتالي هذا سيعمل على ابطائه , حتى وان زدنا حجم الكاش باستعمال نفس الوحدات والدارات مع كاش اخر بحجم اصغر سيظل الحجم الاكبر ابطأ من الاصغر. ايضاً حجم الكاش محدود بمقدار المساحه المتاحه على الشريحه "Chip". .... يتبع سوف اكمل الموضوع اليوم و مازال الموضوع غير مكتمل....انتظروني |
| | | ???? زائر
| موضوع: رد: مباديء ذاكرة الكاش وطرق تصميمها 2010-05-06, 02:39 | |
| ب- دالة التخطيط :-إن دالة التخطيط تعطي التطابق بين قطاعات الذاكره الرئيسية وبين خطوط ذاكره الكاش , ومنذ ان كان خط الكاش مستمعل "مشارك " بعده قطاعات عده من الذاكره الرئيسيه فانه بمجرد قراءه قطاع واحد فانه يجب ازاله قطاع اخر , من هذا المنطلق يتضح لنا ان داله التخطيط تعمل على تقليل احتماليه الاشاره الى قطاع ما قد تم ازالته .هذا وللتخطيط ثلاثه انواع رئيسيه هي التخطيط المباشر و التخطيط المترابط الكلي والتخطيط ذو المجموعات المترابطه.- التخطيط المباشر :- في هذا النوع من التخطيط يتم تخصيص قطاع من الذاكره الرئيسيه لكل خط من الكاش حسب هذه الصيغه :-ع = باقي قسمه( ف \س)حيث ع هي رقم خط الكاش المخصص للقطاع ف من الذاكره الرئيسيهو س هو عدد الخطوط في الكاشالتخطيط المباشر يقسم عنوان الذاكره الرئيسيه الى ثلاثه حقول مستقله "عنوان الذاكره مكون من د+س بت". كما بالصوره ادناه من الصورة اعلاه يجب ايضاح بعض المصطلحات- العلم "Tag" :- يعبر عنه بالبت الاكثر اهميه "s-r" كما بالصوره وهو معرف "اداه تعريف" فريده"مميزه لاتتكرر" لكل قطاع من الذاكره الرئيسيه , يتم تخزين الاعلام في الكاش مع الكلمات في الخط الذي يحدد واحد من 2^س قطاع " اثنان اس س قطاع".- رقم الخط "r":- يعبر عنه بالبت r الاوسط وهو يحدد اي خط سوف يتناول العنوان المشار اليه حالياً. -الكلمه "Word" ويعبر عنها بالبت الاقل اهميه وهو w ووظيفتها تحديد مقدار الازاحه بقطاع ما او بخط ما وبالتالي يتم تحديد البايت المحدده في خط الكاش التي سوف يتم الوصول اليها . بالتالي ففي هذه النوعيه يتضح لنا ان لكل مرجع في الذاكره يقوم بعمله المعالج , يتم فحص العلم الخاص بخط الكاش الذي من المفترض ان يوضع به قطاع الرام المطلوب للتحقق من وجود القطاع الصحيح في الكاش, ومنذ انه لا يوجد قطاعين يتشاركان نفس الخط من الكاش لهما نفس العلم"المعرف" يمكن حينئذ بواسطه متحكم الكاش معرفه الاصابه من عدم الاصابه . طريقة التخطيط المباشر هي اسهل طرق التخطيط على الاطلاق فهي سهله و منخفضة التكاليف نسبياً في تطبيقها وايضا ً تتميز بسهوله وسرعه معرفه الاصابه من عدمها عن بقيه الطرق ,لكن من ابرز عيوبها :- ان كل قطاع من الذاكره الرئيسيه سوف يتم تخصيصه الى خط معين من خطوط الكاش و من خلال مرجعيه المكان فانه من الممكن الاشاره "عنونه" قطاعات من الذاكره والتي تستعمل نفس الخط من الكاش , وتحت هذا الظرف سوف نشاهد عمليه تبديل بين القطاعات فتاره ترى قطاع تم دخوله واخر قد تم خروجه لذات الخط من الكاش مما يعمل على تقليل معدل الاصابه وبالتالي في الاداء في هذا النوعيه يكون اسوأ ما يكون .- التخطيط المترابط الكامل :- وفي هذا النوع من التخطيط هناك امكانيه لاي قطاع من الذاكره ان يأخذ اي خط من خطوط الكاش,وهنا يكون عنوان الذاكره الرئيسيه = W+S bits حيث ان الحقل s يمثل العلم "Tag" والحقل W يمثل الكلمه "Word" كما هو متضح بالصورة ادناه في هذا النوع من التخطيط يجب على متحكم الكاش "Cache Controller" ان يقوم بالتحقق من كل علم "معرف او Tag" في كل خطوط الكاش لكي يحدد ما ان كان عنونا ما من الذاكره متواجد "مقيم" في الكاش ام لاء. وهذا الامر لا يتم بطرق البحث التقليديه بل يتم عن طريق ما يعرف بالذاكره المترابطة "associative memory " وهذه تسمح وتمكن من البحث المتوازي" البحث في عده اماكن بان واحد" لمكان من الذاكره تحت معرف ما. وايضا ً جدير بالذكر هاهنا ان نذكر بان هذه الذاكره المترابطه تتميز وبخلاف الذاكره التقليديه العاديه المعروفه ب RAM بانها تربط وحداتها المختلفه "cells" بالمنطق"صفر او واحد" في الذاكره مما يمكن البحث في دوره زمنيه واحد من البحث في جميع خلايا الذاكره.في حالتنا هذه سوف يحتاج متحكم الكاش الى ان يتعرف بشكل فريد ووحيد كل قطاع من قطاعات الذاكره الرئيسيه التي عددها 2 ^س بت لذلك سوف يحتاج عدد س من البت لذلك, وكما هو معروف سابقا ً فانه بداخل كل قطاع من الذاكره فاننا نحتاج w بت لكي نتعرف على كل كلمه داخل هذا القطاع ونحددها"نشير اليها", ومنذ ان كان اي صف من الكاش يستطيع ان يكون مكان اقامه لاي قطاع من الذاكره الرئيسيه فان متحكم الكاش يحتاج للبحث بشكل متزامن ولحظي في كل المعرفات"الاعلام" لتحديد الصف المطلوب. وهاهنا يأتي دور الذاكره المترابطه حيث انه بالامكان معها البحث في ان واحد في جميع محتويات الكاش , و تتحقق الاصابه حينما يتطابق احد خلايا الذاكره "Cells" مع عنوان البحث وان لم يتم التطابق والعثور فان ذلك يحسب كعدم اصابه, وحينها سوف يقوم متحكم الكاش بحاضار تلك البيانات الى خلايا الكاش من جديد و حينها سوف يقوم بتطبيق احد خوارزميات الاستبدال ,اخيرا حان الوقت لذكر مزايا وعيوب هذا النوع من التخطيط:- فهذا النوع يتميز بانه مرن بشكل كبير ويتغلب على اكبر معوقات وعيوب النوع السابق ذكره باالاعلا , وايضاً يتميز بعلو معدلات الاصابه ولذلك بسبب ان اي خط من خطوط الكاش بامكانه احتواء اي قطاع من قطاعات الذاكره الرئيسيه ,اما عيوبه :- عملية البحث نفسها وتحت العتاد المتخصص تشكل عبء وصعوبه في اداء البحث وهذا البطء والضعف في الاداء يحدث مع كل وصول الى الذاكره بغض النظر عنها ان كانت اصابه او عدم اصابه.ايضا ً من ضمن العيوب هنا هي كثره اعداد الدوائر المنطقيه المستعمله التي تضفي المزيد من التعقيد و الغلو في الثمن و ارتفاع ازمنه التنفيذ وجدير بالذكر ان هذا النوع من التخطيط نادر جداً في الاستخدام.ثالثا ً:- التخطيط ذو المجموعات المترابطة:-هذا النوع هو وسط مابين النوع الاول من التخطيط والنوع الثاني المذكورين اعلاه ,فهو ياخذ من مزايهما وهذا ما يجعله من افضل الانوع واكثرها شيوعاً واستخداماً ,وفي هذا النوع من الكاش يتم تقسيم الكاش الى مجموعات صغيره مخططه بشكل مباشر وكل منها يحمل بداخلها مجموعه من الخطوط وبالتالي فان الكاش سوف يتم وصفه اجمالا بمجموع عدد الخطوط بداخل كل مجموعه جزئيه ,وعلى سبيل المثال اذا فرضنا ان مجموعه جزئيه رقم هــ تستطيع ان تحمل عدد ف من الخطوط بداخلها فان الكاش حينئذ يطلع عليه كاش تخطيطي ذو مجموعات مترابطه ف . "F -way set associative cache".بالامكان هنا تخزين قطاع معين من الذاكره في اي من الخطوط "عددها ك مثلاً" داخل مجموعه معينه بشرط ان يكون رقم مجموعه الكاش = (باقي قسمه العدد ج \ هــ)حيث ان ج = يشير الى رقم القطاع من الذاكره الرئيسيهو ان هـ= يشير الى رقم المجموعات الجزئيه الصغيره بداخل الكاشننتقل الان الى تقسيمه عنوان الذاكره مع هذا النوع من التخطيط حيث ان عنوان الذاكره هو "s + w bits" سوف يتم تقسيمها الى ثلاث مناطق مستقله هي:-أ- حقل المعرف"العلم " وهو مكون من "s - d bits"ب- حقل المجموعه وهو مكون من "d bits"ج- حقل الكلمه وهو مكون من "w bits"الان سوف نشرع في دراسه كيفيه عمل هذا النوع من التخطيط:-لكل مجموعه من مجموعات الذاكره الرئيسيه فان الكاش قادر على حمل عدد ف من قطاعات الذاكره الرئيسيه باللحظه الواحده "في ان واحد", فعلى سبيل المثال فان ذاكره كاش ذات الاربع مجموعات جزئيه مترابطه بامكانه "A four way set associative cache" بامكانه حمل اربع قطاعات من الذاكره الرئيسيه في وقت واحد من نفس المجموعه , وبمجرد ان يطلب متحكم الكاش قطاعاً معيناً من الذاكره فان ذاكره كاش ذات ك مجموعه جزئيه مترابطه سوف يتحقق من محتويات ك خط من خطوط من المجموعه الحاليه التي ينتمي اليها القطاع المطلوب, وهنا ايضاً كما سبق الذكر انه مع الذاكره المترابطه بالامكان البحث المتوازي , وان حصل وتم العثور في ال ك خط من خطوط الكاش فانها تسجل على انها اصابه , والا سوف تسجل على انها عدم اصابه وحينها سوف يتم اختيار احد خطي الكاش لعمليه الاستبدال وسوف يتم اختيار الخط الذي ينتمي اليه تلك المجموعه, كما في الصوره الاتيهعموماً لننتقل الان الى مزايا وعيوب هذه الطريقه الاخيره من طرق التخطيط:-احد المزايا انها توفر معدل اصابه اعلى من ذاك المتواجد مع التخطيط المباشر, وتقدم عامل سرعه اكبر وافضل من مثيله في التخطيط ذو المجموعات المترابطه الكامل, بالتالي هي تقدم اداء افضل .الخلاصه:- في العالم الحقيقي يتم استعمال وتطبيق التخطيط المباشر في ذواكر الكاش من المستوى الثاني في اللوحه الام , ويتم استعمال وتطبيق التخطيط ذو المجموعات الجزئيه المترابطه في الكاش المدمج مع المعالج في الاجهزه. _______يتبع ..... لم يكتمل بعد.... |
| | | ???? زائر
| موضوع: رد: مباديء ذاكرة الكاش وطرق تصميمها 2010-05-06, 02:41 | |
| -- اساليب الاستبدال بخطوط ذاكرة الكاش:- عندما يتم تحميل خط جديد الى ذاكرة الكاش فان احد الخطوط الحاليه بالكاش يجب ان يتم استبداله ووضع الخط الجديد مكانه "عمليه تبديل محتويات" , وعليه ففي التخطيط المباشر فالخط المطلوب له مكان واحد فقط وعندئذ يجب استبداله بالخط المتواجد في هذا المكان , وفي التخطيط المترابط الكامل فان القطاع المطلوب من الذاكره له الحريه في وضع القطاع اينما يريد .وفي التخطيط المترابط ذو المجموعات يجب علينا ان نختار مابين القطاعات في المجموعه المختاره, الان نستعرض بعض من اشهر اساليب الاستبدال:-أ- المستخدم بشكل اقل مؤخراً "Least Recently Used":-وهنا يتم استبدال خط الكاش الذي تم الاشاره عليه في زمن مضى مؤخرا ً "الابعد في الزمن طبعاً" ليتم وضع مكانه الخط الجديد.ب- الداخل اولاً- الخارج الاولاً :- خطوط الكاش في المجموعه التي تم الاشاره اليها في الزمن الماضي" الابعد في زمن طبعاً" يتم استبدالها .ج-عشوائي:- تتم عمليه الاستبدال بشكل عشوائي. واكثر الطرق استعمالاً هي الطريقه الاولى "أ" وهذه الطريقه تطبق عن طريق مراقبه كل عنصر من عناصر المجموعه الواحده بالنسبه لبقيه العناصر الاخرى في المجموعه. وعلى سبيل المثال فالبنسبة للكاش ذو مجموعتين مترابطتين "Two way set associative cache" بالامكان مراقبة خطوط الكاش عن طريق العتاد وذلك باستخدام بت واحدة فقط لكل خط من خطوط الكاش , فكلما تم تحديد خط ما من الكاش في مجموعه ما يتم اعطاء بت بقيمه 1 لذاك الخط ويتم اعطاء بقية الخطوط بنفس المجموعه القيمه صفر , تسمى تلك البت بالبت الخاصه بالاستعمال , وكذلك ايضاً ان اي خط من خطوط الكاش التي يتم اختيارها في اي وقت لعمليه الاستبدال يكون خط له بت الاستعمال ذات قيمه تساوي صفر , حيث ان معنى مبدأ مرجعية المكان هو ان اكثر خطوط الكاش استعمالاً حالياً هي نفسها الخطوط التي من المحتمل بشكل كبير جداً ان يعاد الاشاره اليها وتحدديدها مجدداً.ان الطريقه "أ" من طرق الاستبدال تعطي افضل اداء, ولكن تعاني هذه الطريقه من غلو سعر تنفيذها بسبب غلو سعر مراقبه المعلومات بها كما اوضحنا اعلاه. اما في مايتعلق بالخوازميه الثانيه "ب" من خوارزميات الاستبدال فهي سهله التطبيق في عتاد الهاردوير فماهي اجمالا الا مجموعه من الطوابير,واخيرا فيما يتعلق بالخوارزميه الثالثه "ج" فهي سهله جدا في التطبيق ولكنها ذات اداء اسوأ بقليل من باقي الخوارزميات المذكوره . -- سياسات الكتابه في الكاش:-من الضروري قبل الشروع في تنفيذ عمليه استبدال في احد خطوط الكاش التحقق اولاً ان كان قد تم ثمة تعديلات على هذا الخط , بحيث ان قطاع الذاكره الرئيسيه المتعلق بخط الكاش الحالي من المفترض انهما يحملان ذات القيمه , اذاً ففي حالة عدم حصول اي تعديلات على قيمه خط معين من الكاش منذ دخوله الى الكاش حتى الى لحظه ما قبل استبداله فليس هناك اي ضروره للقيام بعمليه تحديث لقيمه قطاع الذاكره المتعلق بذاك الخط من الكاش وبكل بساطه فخط الكاش القادم الجديد سوف يحل مكان الخط القديم ,وفي حال انه هناك ثمه تعديلات على خط الكاش فيما قبل عمليه الاستبدال فانه من الضروري تحديث قطاع الرام المتعلق بذاك الخط في كل عمليه مستقله بالقيمه الحديثه الحاليه لخط الكاش ولعمل ذلك توجد طريقتين لتأكيد تطابق قيم خطوط الكاش بتلك القيم في القطاعات المتعلقه بها في الذاكره الرئيسيه وهما 1- طريقه اكتب خلال و 2- طريقه اكتب خلف.- طريقه اكتب خلال :- بفرض انه هناك اصابه وبالتالي سوف يتم كتابه المعلومات في كل من خط الكاش و ايضاً في قطاع الذاكره الرئيسيه في ان واحد, وميزته هذا النوع من الكتابه ان الكتابه في الكاش والذاكره الرئيسيه تكون متناسقه و متتاليه وايضاً هي سهله التطبيق و لا يحدث خطأ في الكتابه في الذاكره الرئيسيه , في اليد الاخرى نجد ان طريقه الكتابه الخلف تعاني من مشكله البطء لانها تحتاج الى الوصول الى الذاكره الرئيسيه وهذا يعمل على استهلاك بعض من نطاق الذاكره , وعموماً فان اغلب معالجات انتل تستعمل طريقه الكتابه خلال.-طريقه اكتب خلف:- لنفرض ايضاً انه هناك اصابه وحينها سوف وفقط يتم الكتابه في الكاش ,وهذا يساعد المعالج على اكمال المعالجه بسرعه اكبر ويتم فقط تحديث قيمه قطاع الذاكره المرافق لذاك الخط من الكاش حين الحاجه الى عمليه الاستبدال في خط الكاش, وتتميز هذه الطريقه بالسرعه و عبء استعمال للذاكره اقل من الطريقه الاولى.ولكن هذه الطريقه ايضاً تعاني من عيب وهو عدم توافق"تطابق" قيم خطوط الكاش بكل من قطاعات الذاكره الرئيسية. + إضافة من الاخ مصطفى لماذا تخلــت AMD عن المستوي الثالث من ذاكره الكاش L3 Cashفي معالجتها الجديده ATHLON II X4 ؟؟ و بالتالي ياتي السـوال الاهـم ... ما اهميه الـ L3 في معالجات AMD ؟؟ قبل الدخول في اي تفاصيل عميقـه ,, يجب توضيح بعض النقاط و المبادي الاساسيه لجميع الاخوه . انه من المنطقي اتجاه شركات انتاج المعالجات الي تطوير المعالجات بشكل اكبــر ,و لذلك حينما تم ابتكارت الـ L3فقد ادت الي زياده سرعه الوصول للمعلومات بشكل كبيـر لانه ليس من المنطقي التعامل مع الذاكره الابطا الـ RAM كلمـــــا كان ذلك ممكنـــاً. هذه هي نظريه التطوير بشكل عام ,,و لكن ... فجاتنـا AMD بمعالجات Athlon II X4 و التي هي في الاساس مثل الـ Phenom II لكن بدون استخدام الذاكره المخباه من المستوي الثالت L3 Cash لتثبت للجميع ان حجم ذاكره الكاش ليس دائما ضروري . لذلك , سوف نتناول في هذا الموضوع كافه العوامل و المقارنات و التطبيقات لمعرفه .. هل قرار AMD صحيح في اهمـال الـ L3 ام ما الامر ؟!؟! اولا ما هي ذاكره الكاش ؟ هي ذاكره تم ابتكاراها بغرض توفير الوقت المهدور الذي يستهلكه المعالجللحصول علي معلومه ما من الذاكره الرئيسيه RAM و هي تنقسم لثـلاث مستويـات .. L1 - L2 - L3 و هذه نبذه مختصـره عن الثـلاث مستويـات من ذاكره الكاش :- المستـوي الاولL1 Cash :- من المعروف ان AMd تستخدم نظام 64KB كمساحه تخزينيه للمستوي الاول L1 و ان انتـل تستخدم مساحه 32KB كمساحه تخزينيه للمستوي الاول L1 ايضاو ظهر المستوي الاول في معالجات الـ Pentium .. و هو مدمج داخل نواه المعالج , كما هو موضح في الصوره السابقه . ===== المستوي الثانيL2 Cash :- بدايه تصميم و ابتكار المستوي الثاني L2 لم يكن مدمج داخل نواه المعالج ,مثل الـ L1و قد ظهر مع معالجات Pentium Pro & Athlon و سرعان ما تم التعديل و ادماجه داخل المعالج نفســها , و كان هذا في Pentium III & Athlon XP & P4 و هذا الدمج ادي الي زياده السرعه بشكل كبير و قله استهلاك الطاقه ايضا و اتاحت تقنيه تصنيع المعالجات 180nm الفرصه للعلماء بمحاوله دمج الـ L2داخل نواه المعالج نفسـه , كما هو موضح في الصوره الاتيه .. مع التطوير المستمر , و ظهور المعالجات الثنائيه و الرباعيه النواه ,فقد ادمجت AMD داخل المعالج الـ MC) memory controller ) بعكس انتل فقد اصرت علي استخدام L2 واحده لكل معالج ! ===== المستوي الثالث L3 Cash :- ظهرت و بقوه مع المعالجات الاحدث Phenom II X4 و التي طبقتها AMD لاول مره عن طريق اخضاع L1+L2 لكل نواه داخل المعالج , مع اشتراك جميــع الانويه مع المستوي L3 ذو الحجم الاكبـــر . و من ثم , طبقتها انتل في معالجتها الرهيبـــــه Core i5 & i7 كما هو موضح في الصوره الاتيه .. كيف تعمل ذاكره الكاش ؟ تعمل علي اختزان المعلومات بداخلها , لكي تكون اقرب ما يكون للمعالجوقت استخدامها لكي لا يضطر المعالج للبحث علي المعلومات في طرق اخري ابط بكثير ... مثل ذاكره الـ RAM . و المستويات الثلاثه تعمل علي تخزين الذاكره ,قبل الوصول لذاكره النظام الاساسيه RAM . الذاكرتان L2 & L3 ليست مهتهم الاساسيه تخزين المعلومات فقــط !! و لكن ايضا تمنع الاختنــاق الذي قد يحدث داخل المعالج بسبب تبادل المعلومات الغير هامه بين انويه المعالج . يقاس تاثير الـ Cash بواسطه الـ Hit / Miss الخاصه بالـ Cash , حيـث .. الـ Hit يمثل استجابه الـ Cash لطلب المعلومه المطلوبه ( بمعني ان المعلومه المطلوبه مخزنه بالفعل علي الكاش ) الـ Miss يمثل عدم استجابه الـ Cash لطلب المعلومه المطلوبه ( بمعني ان المعلومه المطلوبه غير مخزنه علي الكاش و يجب البحث عنها علي الذاوكر الاساسيه الاخري ) و من الواضح انه كلما زاد قياس الـ Miss كلما ادي هذا الي بط في النظــام , و العكـس صحيح تمــامــا مع الـ Hit الذي يودي الي استغلال اقصي اداء من النظام كاكل . بالظبط كل الكلام السـابق يويد ان زياده حجم الكاش يودي الي زيادهالاداء بشكل ملحوظ . و هنا الســـــوال ... لمــــــــــاذا لم يتم استخدام L3 مع المعالجات الجديده Athlon II X4 ؟!؟! هذا ما سوف نبحث لكي نصل الي اجابته . تسجيل المعلومات علي الكاش :- يتم تسجيل المعلومات بشكل لا يقبل التكرار اطــلآقـا , بمعني انه لا يمكن تكرار نفس المعلومه في اكثر من مستوي من ذاكره الكاش . حجم الكاش :- قطعا كلما زادت حجم الكاش .. كلما امكن اختزان مزيد من المعلومات ,و لكــن ...يودي هذا الي بطء في زمن الاستجابه . ( و لعل هذا هو السبب الحقيقي لعدم استخدام الـ L3 في المعالجات الجديده من AMD ) و هذا البط ناتج عن ,,, استهلاك وقت ازيد لتحليل المعلومات و تخزينها في المساحه الكبيره من الكاش و اليكم الاختبـار الاتي لتوضيح الفارق بين المستويات من حيث السرعه ,
كما ترون , فان الـمستوي الثالث L3 كان له النصيب الاكبر من السرعه الابطء في معالجات و تخزين البيانات و السبب قد تم ايضاحه . ثم يليه المستوي الثاني L2 , و المستوي الاسـرع هو المستوي الاول L1 و هذا ناتج لصغر حجمه و بالتالي سرعه معالجته للمعلومات و تخزينها لذلك تم الاستغنــاء عن المستوي الثالث L3 في معالجات AMD الجديده اتمنى اني اكون قدمت لكم عملاً مبسطاً مفهوم للجميع بدون اي تعقيدارجو التقييم والتعليق على الموضوع منكم, ولاتنسوني من دعائكم الصالح. |
| | | | مباديء ذاكرة الكاش وطرق تصميمها | |
|
مواضيع مماثلة | |
|
| صلاحيات هذا المنتدى: | لاتستطيع الرد على المواضيع في هذا المنتدى
| |
| |
| |
|