أشواق الحريّة , نغمات اللغة, نسماتُ الحب , زوايا الهندسة , روح الطموح , هزّات الإبداع

السبت، 1 يناير 2011

الجاسوس والسارق وصديقتهم ذاكرة الكاش..


Cache Memory


في أحد الأسواق , وفي آخر السوق هناك مطعم فاخر , كلّما اتفقت والصديقات الذهاب إليه , لا نجد طاولة تسع لنا , فهذا يدفعنا للإنتظار طويلاً حتى تغادر إحدى العائلات للجلوس مكانهم ..
وهكذا في كل مرّة ..!
فكرتُ بطريق لنستمتع في هذا المطعم دون إنتظار..
استعنتُ بجاسوس وسارق ..!
أجل لا تتعجبوا .. فللمتعة أحكام .. والسارق والجاسوس لا يقومون بعمليات مؤذية وخطيرة .. مهمتهم بسيطة ..
يقوم الجاسوس بمراقبة رواد المطعم , والعائلة التي تتردد كثيراً على المطعم يخبر السارق عنها .. فيسرع السارق فيأخذ حقيبة المرأة أو الرجل ويهرب بها فتلحقه العائلة .. ثم يضع الحقيبة في المطعم المجاور .. فتنتقل العائلة للمطعم المجاور .. وهكذا تختفي عملية الإنتظار التي تطاردنا .. ونستمتع..

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

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

هل تعرّفت يوماً على أماكن خزن المعلومات؟
إليكم هذا التوضيح :
حيث كلما توجهنا من الأعلى إلى الأسفل إزدادت مساحة الخزن..


لماذا لا نستغني عن الـ Main memory  ونستخدم الـ Cache memory  بدلاً عنها؟
لأن (Cpu) لا تقرأ إلا من Main memory   , هذا لا يعني أنها لا تقرأ من Register أو Cache memory  ولكن ال Address Bus الخارج من Cpu دائماً يحمل عنوان موجود في RAM أو ROM ، ويستحيل العنوان الخارج من CPU   أن يحدد عنوان في cache  .

هل تعرف مكان الـكاش في الكمبيوتر؟
هناك مكانين لتواجد الكاش :
    Internal أي بدخل الـ cpu . (L1)
   External أي تقع بين المعالج والذاكرة الرئيسية. (L2)


آلية عمل الكاش:
الـ cpu  أرسلت طلب لعنوان مخصص في الرام عن طريق الـA.B  وهنا يأتي دور cache controller  الجاسوس المحترف ، سيقوم بقراءة الموقع الموجود في الـ A.B ويبحث عن الموقع والمحتوى المطلوب في الكاش المرتبط بها.
إن لم يجد العنوان والمحتوى سيكمل ال A.B  مسيره إلى الرام، ثم سينقل نسخة إلى الCPU وسينقل عبر الـA.B  وD.B  الخاص بالرام مجموعة من البرامج block) ) الموقع المطلوب و أكبر منه وأصغر; لإحتمالية كبيرة قد تطلبهم الـCPU وينقلهم إلى الكاش.
أما إن وجد العنوان والمحتوى في الكاش سيقوم الـA.B بأخذ البيانات من الكاش ...


ولكن هناك مشكلة .. صدقتم فعلا هناك مشكلة ؟؟
إذا قمنا بعملية الحفظ مثلاً ..البيانات التي سنحصل عليها هي البيانات المخزنة  في الرام ولكن البيانات المحجوزة في الرام تم إستدعائها وتعديلها وتغييرها...

 إذا كيف سنحدّث معلومات الرام ؟؟
هناك طريقتان
   Write through
وتعني أن الـ cache controller  عندما يقرأ الـA.B ويقرأ الموقع ومحتواه إذا كانت العملية (الكتابة مثلا) سيقوم بنفس اللحظة بتعديل القيمة في الرام .

   Write back
ليس كلما يتم تعديل قيمة في الكاش يتم تعديلها في الرام ولكن هناك مايسمى directory في ال cache controller يجعل هناك حقل يحدد إن حدث تعديل على البلوك أم لا ، في حال حدث تعديل يضع علامة... وحين تمتلئ الكاش وتحتاج لتفريغ وقبل مسح البيانات نأخذ نسخة مما تم تعديله وننقله إلى الرام.

وأخيرا :
كيف سنعرف سرعة الكاش؟؟
هناك قانون بسيط :
Hit ratio = number of hit / number of request address (hit+miss)
Hit: هي عدد المرات التي وجد الموقع في الكاش.
Miss : هي عدد المرات التي نطلب فيها البيانات ولم تكن في الكاش.

ثم نضرب الناتج في 100% .. إذا كان الناتج قريب من (90- 99 % ) تكون السرعة قريبة من سرعة الكاش , أمّا إن كانت أقل بكثير تقترب السرعة من سرعة الرام.

وهكذا نكون قد تعرّفنا على ذاكرة الكاش , وأصبح لدينا خلفية بسيطة عن السبب الذي يجعل جهاز الكمبيوتر يمتاز بسرعة أكبر عن جهاز آخر..






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

غير معرف يقول...

thank you
but you did not take the speed into consideration

وسيم يقول...

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

بوركت!

هبة العواملة يقول...

welcome Dear..
about your question, i would to give you example for speed:

EX: let we have a computer with hit ratio =90% (0.9) , and RAM access time =1 Msec. , while cache access time= 0.01 Msec. , Calculate the average access time for this computer ..

Solution :
AVG access time = ( 0.9*0.01) + 0.1*(0.01+1)
the answer is = 0.110

compare the answer with the access time , if it's around the cache access time that means the computer his speed closer to speed cache.

can you proof that in another example ..
if hit ratio = 60%
and so on...

good luck ,
i wish you interest :)

هبة العواملة يقول...

أخي وسيم هو بعض ما عندكم :)
كان لا بد من عودة , فهي تجربة ممتعة ومفيدة فعلا كما قلت .
فكتابة المعلومات وتحريرها يجعلها ترسخ في العقول أكثر ..

أما عن الجاسوس والسارق لن نستغني عنهم بعد الآن .. فلا أحد يحب الإنتظار :)

شكراً على التشجيع ..
سعيدة بتواجدك

غير معرف يقول...

Very efficiently written information. It will likely be invaluable to anyone who usess it, together with myself. Keep up the good work – for certain i will take a look at extra posts.

غير معرف يقول...

I have to admit that i generally get bored to learn the whole thing but i believe you'll be able to add some value. Bravo !

غير معرف يقول...

يعطيك ربي ألف عافية على هذا الإبداع و الأسلوب الرائع في توصيل المعلومه
صراحه استمتعت و استفدت :)