وحدة إدارة الذاكرة
إن وحدة إدارة الذاكرة Memory management unit أو (MMU) بالتعريف هي : دارة تدعم الذاكرة الظاهرية ونقل الصفحات الذاكرة وذلك بترجمة العنوان الفعال إلى عنوان فيزيائي، وتكون جزء من المعالج وفي بعض التصاميم تأتي كشريحة مستقلة، تحتوي على ذاكرة صغيرة تحتفظ بالعناوين الفعالة والفيزيائية المقابلة لها وتكون على شكل جدول يدعى TLB وجميع الطلبات الذاكرة ترسل ل MMU والتي تحدد مكان وجود المعلومة المطلوبة هل هي في الكاش أم في ال MM أم في القرص الصلب.[1][2][3]
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 في ترجمة العنوان الفعال (الوهمي) إلى مقابله الفيزيائي وتتم هذه العملية بواسطة أحد ثلاث تقنيات هي :
- direct mapping
- fully mapping
- set associative mapping
في جميع هذه التقنيات فإن المعلومات عن المواقع الذاكرية والصفحات الوهمية الموافقة لها موجودة في جدول يدعى جدول الصفحة Page table الذي يكون مخزنا في ال MM.
العنونة الفيزيائية والعنونة الافتراضية
إن الذاكرة الرئيسية للحاسب نظمت على شكل مصفوفة من M حجرة بحجم بايت واحد وكل بايت يمتلك عنوانا فيزيائيا فريدا عن الآخر، أول بايت له العنوان صفر والثاني له العنوان واحد وهكذا، في المثال المعروض لدينا الطريقة الطبيعية لل وحدة معالجة مركزية كي يصل إلى حجرات الذاكرة تتم باستخدام العنوان الفيزيائي وتدعى بالعنونة الفيزيائية. المثال المعروض في السياق يبين كيفية تحميل كلمة تبدأ من العنوان 4 نتيجة تنفيذ تعليمة.
عندما ينفذ ال cpu تعليمة التحميل load فإنه يولد عنوانا فعالا ويرسله للذاكرة الرئيسية عن طريق ممر الذاكرة فتقوم الذاكرة الرئيسية بجلب أربع بايتات تبدأ من العنوان الفيزيائي 4 وتعيدها للمعالج الذي بدوره يخزنها في مسجل.
الحواسب مؤخرا استخدمت العنونة الفيزيائية PA والأنظمة – مثل معالجات الإشارة الرقمية والمتحكمات المدمجة والحواسب العملاقة – استمرت بهذه الطريقة، على كل حال فإن المعالجات الحديثة تم تصميمها للحسابات ذات الأغراض العامة مستخدمة صيغة عنونة تعرف بالعنونة الافتراضية VA.
في العنونة الافتراضية فإن وصولات المعالج للذاكرة الرئيسية تتم عن طريق توليد عنوان افتراضي VA والذي يتحول للعنوان الفيزيائي المناسب مثل إرساله للذاكرة الرئيسية، العملية التي تقوم بتحويل العنوان الوهمي إلى فيزيائي تعرف بعملية ترجمة العنوان.
إن ترجمة العنوان تتطلب تعاونا بين بنية المعالج ونظام التشغيل، البنية الصلبة في المعالج والمسئولة عن ذلك هي Memory Management Unit(MMU)، تقوم هذه الوحدة بترجمة العنوان الفعال بسرعة وذلك باستنتاجه من جدول مخزن في الذاكرة الرئيسية والذي يتم إدارة محتوياته من قبل نظام التشغيل.
ومن الوظائف الإضافية المهمة لل MMU
حل مشاكل التجزئة للذاكرة التي تحصل عندما تحجز بلوكات الذاكرة وتفرغ وبالتالي ستنقسم المساحة الفارغة وبالتالي من أجل مجال من العناوين الفعالة المتجاورة يمكن أن تقابل بعدة بلوكات غير متجاورة من الذاكرة الفيزيائية. في التصميمات القديمة لوحدات إدارة الذاكرة كانت بواسطة دارات مدمجة مستقلة مثل MC 68851 في Macintosh II أو Z8015 التي استخدمت مع عائلة Zilog معالج زد 80 للمعالجات. فيما بعد المعالجات مثل Motorola 68030 وZilog Z280 استخدمت وحدات إدارة ذاكرة مدمجة ضمن المعالج.
مثال عن وحدة إدارة الذاكرة : MMU
الشكل 5.14 يبين التصميم الأساسي لشريحة MIPSR2000 بالإضافة للمعالج ذو البنية RISC فإنه هناك أيضا معالج مساعد على الشريحة. هذا يتضمن وحدة إدارة الذاكرة التي تظهر بشكل مفصل ضمن الشكل، تتألف MMU من TLB بسيطة تكفي ل 64 مدخل، كل مدخل يشير إلى صفحة ذاكرية وهمية وموقعها الموافق في الذاكرة الفيزيائية. انظر الشكل 5.15. تتم عملية إدارة ال TLB من قبل نظام التشغيل نفسه، قبل أن تتمكن الصفحة من الحصول على عنونة يجب عليها أن تكون في ال MM وتمتلك مدخلا في ال TLB.
إن MMU تحتوي على خمسة مسجلات هي : REGESTRY entry-hi، entry-lo، index and random نظام التشغيل يستخدم تلك المسجلات لإدخال مدخلات بديلة في ال TLB، عتاد العنونة يستخدمهم أيضا لإنجاز ترجمة العنوان.
نظام الذاكرة الوهمية يدعم حجم صفحات يصل إلى 4KB وبالتالي العنوان ذو 32bit سوف يقسم إلى 20bit من أجل رقم الصفحة و12bit من أجل الإزاحة. في كل مرة يتم فيها ترجمة العنوان الفعال (و ذلك لإحضار تعليمة أو عملية كتابة أو قراءة لمعامل) فإن رقم العملية ورقم الصفحة يدخلان إلى المسجل entry-hi وسوف ييم مقارنتهما سويا مع جميع العناوين الفعالة الموافقة والموجودة في ال TLB وعند وجود تطابق فإن مسجل الدليل index يشير إليهما وإلى المُدخل المطابق في ال TLB، بعد ذلك سوف تتم قراءة مدخل ال TLB المطابق والعنوان الفيزيائي لقاعدة الصفحة تلك وينتقل إلى المسجل entry-lo، بعدها يأتي دور الإزاحة في تحديد العنوان الفيزيائي المطلوب عند إضافتها لعنوان القاعدة.
مراجع
- Frank Uyeda (2009). "Lecture 7: Memory Management" (PDF). CSE 120: Principles of Operating Systems. UC San Diego. مؤرشف من الأصل (PDF) في 2017-05-17. اطلع عليه بتاريخ 2013-12-04.
- "Electronic Datasheet Search And Download Site". Ic-on-line.cn. مؤرشف من الأصل (PDF) في 2020-06-28. اطلع عليه بتاريخ 2017-05-03.
- "AMD64 Architecture Programmer's Manual Volume 2: System Programming" (PDF). مارس 2017. مؤرشف من الأصل (PDF) في 2018-07-13. اطلع عليه بتاريخ 2017-12-05.
- بوابة تقانة المعلومات
- بوابة علم الحاسوب