الرئيسيةبحث

وحدة إدارة الذاكرة (حاسب آلي)

This 68451 MMU could be used with the Motorola 68010
This 68451 MMU could be used with the Motorola 68010

إن وحدة إدارة الذاكرة Memory management unit أو (MMU) بالتعريف هي : دارة تدعم الذاكرة الظاهرية و نقل الصفحات الذاكرية و ذلك بترجمة العنوان الفعال إلى عنوان فيزيائي ، و تكون جزء من المعالج و في بعض التصاميم تأتي كشريحة مستقلة ، تحتوي على ذاكرة صغيرة تحتفظ بالعناوين الفعالة و الفيزيائية المقابلة لها و تكون على شكل جدول يدعى TLB وجميع الطلبات الذاكرية ترسل لل MMU و التي تحدد مكان وجود المعلومة المطلوبة هل هي في الكاش أم في ال MM أم في القرص الصلب .

MMU تحتوي على جدول الصفحات الذاكرية Page table مفهرس بأرقام الصفحات و كل مدخل في جدول الصفحات Page Table Entry(PTE) يعطي العنوان الفيزيائي المطابق للفعال . من الممكن أن لا يوجد عنوان فيزيائي مقابل للعنوان الفعال لذا سوف تعيد MMU إشارة خلل في الصفحة الذاكرية إلى المعالج عندها سوف يحاول نظام التشغيل إيجاد صفحة فارغة في الذاكرة و إنشاء PTE جديد يتم ربطه مع العنوان الفعال المطلوب ، إذا لم توجد صفحة ذاكرية فارغة سوف يكون من الضروري اختيار صفحة موجودة مسبقا و ذلك باستخدام أحد خوارزميات الاستبدال و حفظها في القرص الصلب ( و هذا ما يعرف بنقل الصفحات الذاكرية Paging) .

فهرس

جدول TLB

TLB : هو جدول يستخدم في نظام الذاكرة الافتراضية حيث يسجل رقم صفحة العنوان الفيزيائي مرتبطا مع رقم صفحة العنوان الفعال ، يستخدم ال TLB للربط مع الكاش و التي يكون دليلها معتمدا على العنونة الافتراضية . يقدَّم العنوان الفعال لل TLB و بنفس الوقت يقدم للكاش لذا فإن الوصول للكاش و ترجمة العنوان من فعال إلى فيزيائي يتم على التوازي و بالتالي عند عدم وجود المعلومة في الكاش فيتم استخدام العنوان الفبزيائي للوصول إليها في ال MM .

إن عملية تخطيط الذاكرة تأخذ بعين الاعتبار الصلة بين المستويين المتعاقبين في هرم الذاكرة ألا و هما المستوى الأولي و الثانوي ، كالصلة بين ذاكرة الكاش و الذاكرة الرئيسية (MM) ، فذاكرة الكاش تمثل المستوى الأولي في حين أن الذاكرة الرئيسية تمثل المستوى الثانوي و, نفس المبدأ يمكن تطبيقه على أي مستويين من هرم الذاكرة . أن طلب الوصول لعنصر ما في الذاكرة يتم عن طريق المعالج و ذلك بإرسال عنوان ذلك العنصر إلى الذاكرة . العنوان المرسل يمكن أن يتطابق مع عنوان عنصر موجود حاليا في الكاش (Cache hit) و إلا يتطابق مع عنوان موجود في الMM لذا لا بد من وجود ترجمة للعنوان لتحديد مكان العنصر المطلوب ، هذا العمل يتم إنجازه عن طريق وحدة إدارة الذاكرة MMU . المخطط التالي يوضح كيفية مقابلة العنوان :


في المخطط السابق يمثل عنوان النظام address system العنوان المرسل من المعالج من أجل العنصر المطلوب ، هذا العنوان يتم معالجته من قبل المترجم داخل ال MMU . فإذا ما تبين أن العنوان المترجم متطابق مع عنوان موجود في الكاش فسوف يتم إرجاع العنصر للمعالج و إلا عند عدم وجوده في الكاش فسيتم إحضاره كجزء من بلوك من الذاكرة الرئيسية و يتم وضعه في الكاش و بالتالي العنصر المطلوب يتم تحصيله للمعالج .

دور mmu في العنونة الافتراضية:

ما هي virtual memory ؟

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

  1. direct mapping
  2. fully mapping
  3. set associative mapping

في جميع هذه التقنيات فإن المعلومات عن المواقع الذاكرية و الصفحات الوهمية الموافقة لها موجودة في جدول يدعى جدول الصفحة Page table الذي يكون مخزنا في ال MM .

العنونة الفيزيائية و العنونة الإفتراضية

إن الذاكرة الرئيسية للحاسب نظمت على شكل مصفوفة من M حجرة بحجم بايت واحد و كل بايت يمتلك عنوانا فيزيائيا فريدا عن الآخر ، أول بايت له العنوان صفر و الثاني له العنوان واحد و هكذا ، في المثال المعروض لدينا الطريقة الطبيعية لل cpu كي يصل إلى حجرات الذاكرة تتم باستخدام العنوان الفيزيائي و تدعى بالعنونة الفيزيائية . المثال المعروض في السياق يبين كيفية تحميل كلمة تبدأ من العنوان 4 نتيجة تنفيذ تعليمة .

عندما ينفذ ال cpu تعليمة التحميل load فإنه يولد عنوانا فعالا و يرسله للذاكرة الرئيسية عن طريق ممر الذاكرة فتقوم الذاكرة الرئيسية بجلب أربع بايتات تبدأ من العنوان الفيزيائي 4 و تعيدها للمعالج الذي بدوره يخزنها في مسجل .

الحواسب م}خرا استخدمت العنونة الفيزيائية PA والأنظمة – مثل معالجات الإشارة الرقمية و المتحكمات المدمجة و الحواسب العملاقة – استمرت بهذه الطريقة ، على كل حال فإن المعالجات الحديثة تم تصميمها للحسابات ذات الأغراض العامة مستخدمة صيغة عنونة تعرف بالعنونة الافتراضية VA .

في العنونة الافتراضية فإن وصولات المعالج للذاكرة الرئيسية تتم عن طريق توليد عنوان افتراضي VA و الذي يتحول للعنوان الفيزيائي المناسب مثل إرساله للذاكرة الرئيسية ، العملية التي تقوم بتحويل العنوان الوهمي إلى فيزيائي تعرف بعملية ترجمة العنوان .

إن ترجمة العنوان تتطلب تعاونا بين بنية المعالج و نظام التشغيل ، البنية الصلبة في المعالج و المسئولة عن ذلك هي Memory Management Unit(MMU) ، تقوم هذه الوحدة بترجمة العنوان الفعال بسرعة و ذلك باستنتاجه من جدول مخزن في الذاكرة الرئيسية و الذي يتم إدارة محتوياته من قبل نظام التشغيل .

و من الوظائف الإضافية المهمة لل MMU :

حل مشاكل التجزئة للذاكرة التي تحصل عندما تحجز بلوكات الذاكرة و تفرغ و بالتالي ستنقسم المساحة الفارغة و بالتالي من أجل مجال من العناوين الفعالة المتجاورة يمكن أن تقابل بعدة بلوكات غير متجاورة من الذاكرة الفيزيائية . في التصميمات القديمة لوحدات إدارة الذاكرة كانت بواسطة دارات مدمجة مستقلة مثل MC 68851 في Macintosh II أو Z8015 التي استخدمت مع عائلة Zilog Z80 للمعالجات . فيما بعد المعالجات مثل Motorola 68030 و Zilog Z280 استخدمت و حدات إدارة ذاكرة مدمجة ضمن المعالج .

مثال عن وحدة إدارة الذاكرة : MMU

الشكل 5.14 يبين التصميم الأساسي لشريحة MIPSR2000 بالإضافة للمعالج ذو البنية RISC فإنه هناك أيضا معالج مساعد على الشريحة . هذا يتضمن وحدة إدارة الذاكرة التي تظهر بشكل مفصل ضمن الشكل ، تتألف MMU من TLB بسيطة تكفي ل 64 مدخل ، كل مدخل يشير إلى صفحة ذاكرية وهمية و موقعها الموافق في الذاكرة الفيزيائية . انظر الشكل 5.15 . تتم عملية إدارة ال TLB من قبل نظام التشغيل نفسه ، قبل أن تتمكن الصفحة من الحصول على عنونة يجب عليها أن تكون في ال MM و تمتلك مدخلا في ال TLB .

إن MMU تحتوي على أربعة مسجلات هي : entry-hi ، entry-lo ، index and random نظام التشغيل يستخدم تلك المسجلات لإدخال مدخلات بديلة في ال TLB ، عتاد العنونة يستخدمهم أيضا لإنجاز ترجمة العنوان .

نظام الذاكرة الوهمية يدعم حجم صفحات يصل إلى 4KB و بالتالي العنوان ذو 32bit سوف يقسم إلى 20bit من أجل رقم الصفحة و 12bit من أجل الإزاحة . في كل مرة يتم فيها ترجمة العنوان الفعال (و ذلك لإحضار تعليمة أو عملية كتابة أو قراءة لمعامل ) فإن رقم العملية و رقم الصفحة يدخلان إلى المسجل entry-hi و سوف ييم مقارنتهما سويا مع جميع العناوين الفعالة الموافقة و الموجودة في ال TLB و عند وجود تطابق فإن مسجل الدليل index يشير إليهما و إلى المُدخل المطابق في ال TLB ، بعد ذلك سوف تتم قراءة مدخل ال TLB المطابق و العنوان الفيزيائي لقاعدة الصفحة تلك و ينتقل إلى المسجل entry-lo ، بعدها يأتي دور الإزاحة في تحديد العنوان الفيزيائي المطلوب عند إضافتها لعنوان القاعدة .