الرئيسيةبحث

عنونة الذاكرة الافتراضية في الزمن المحمي

فهرس

آلية الحماية في المعالج 8038:

نحن نعلم ان العنوان الفيزيائي يحسب في المعالج 8086 بإزاحه مسجل القطعة وجمعه مع الإزاحة، وكئالك الامر بالنسبة للمعالج 80286 وسلسة المعالجات80 ×86 في النمط الحقيقي. بينما يخزن العنوان الفيزيائي (في النمط المحمي) لكتل من المعطيات أو الشيفرة ضمن جدول البحث، ولا حاجة لإزاحة مسجل القطعة.

و بدلا من ذلك يستخدم هذا العنوان (الفيزيائي) كفهرس (دليل) ضمن جدول البحث الذي يحتوي على العناوين الفيزيائية للمعاملات أو الشيفرة. إن أحد التغيرات الهامة في المعالج 80386 هي تقنية الحماية، حيث أن ضعف النظام DOS وبرامج المستخدمين لنظام المعالج 8086/88 هو حاجته إلى الحماية.وسبب هذا الضعف هو عدم قدرة المعالج 8086/88 على منع التعليمات العامة من الوصول إلى نواة نظام التشغيل

الذاكرة الافتراضية:

ما الذي يحدث عند عدم وجود مكان شاغر في الذاكرة RAM ؟ إن مهمة نظام التشغيل تفريغ مواقع ذا كرية في الذاكرة RAM لإتاحة المجال للمعطيات الجديدة. أما ما هي المعطيات التي سيحذفها فيتوقف ذلك على طبيعة تصميم نظام التشغيل. تستخدم بعض أنظمة التشغيل خوارزمية LRU (Least Recently Used) الأقل استخداما فيما سبق لاستبدالها في الذاكرة الأولية DRAM. يحتفظ نظام التشغيل بهذه الطريقة بالمعطيات الأقل استخدامأ (عدد مرات التشغيل الأقل) خلال فترة زمنية محددة، وعند الحاجة إلى مواقع يستبدل النظام المعطيات الأخيرة ذات الاستخدام الأقل ويضعها في القرص الصلب ويستقبل المعطيات الجديدة ويخزنها في تلك المواقع. يمكن أن تكون المساحة الاعظمية للذاكرة RAM في الحاسوب 16M مع قرص صلب بحجم 500M ولكن يخدع المعالج باعتقاده الوصول إلى كل المساحة 500MB من الذاكرة.

تستخدم طريقتان لتوظيف الذاكرة الافتراضية وهما التقطيع و نقل الصفحة. يبلغ حجم المعطيات المستبدلة في طريقة التقطيع من بايت واحد إلى بضع ميغابايت )يبلغ الحد الاعظمي في المعالجات 80386 و 80486 و بنتيوم إلى 4GB (، بينما يكون حجم المعطيات المستبدلة في نمط نقل الصفحة من مضاعفات الصفحة الواحدة بطول 4K . تستخدم الصفحات بشكل كبير لأنها تمنع تقطيع الذاكرة, حيث تصبح الذاكرة المتاحة مجزأة إلى قطع صغيرة بأحجام متفاوتة، وعندما يحدث ذلك يجب على نظام التشغيل نقل الملفات باستمرار لإبقاء مجال لاستقبال الملفات الجديدة ذات الحجم المجهرل.

يمكن تلخيص تعريف تقنية الذاكرة الافتراضية الصفحية و المجزأة في الحالات التالية:

تتوضع الملفات بأي حجم من البايتات ضمن أي موقع من الذاكرة الرئيسية في حين تتوضع الملفات في الذاكرة الافتراضية الصفحية ضمن حيز على حدود 4KB في الذاكرة الرئيسية وهي دائما من مضاعفات 4096 بايت. تستخدم جميع معالجات RISC عالية المستوى الذاكرة الافتراضية الصفحية فقط ولا تستخدم طريقة التقطيع، أما سبب استخدام المعالجات 80386,80486 و بنتيوم إلى الطريقتين الصفيحة والتقطيع فهو المحافظة على توافقيتها مع حجم القطعة 64 KB للمعالج 8086.

جدول التقطيع والمواصفات:

تستخدم مسجلات القطع في الذاكرة الافتراضية المجزأة كدلائل في جدول الموصف حيث تحفظ جميع المعلومات عن جزء من المعطيات ويستخدم جدول الوصف 8 بايت لتقديم المعلومات التالية حول جزء من الشيفرة آو المعطيات.

1) 4 بايت للعنونة A0 – A31 حيث يتم تحديد موقع الشيفرة آو المعطيات في الذاكرة الرئيسية ويتيح ذلك للمعالج 80386 الوصول إلى آي موقع ذاكري ضمن مساحة ذا كرية 4GB. لاحظ في الشكل (8-14) أن البايتات 2 ، 3 ،4 تعطي قيمة A0-A23 ولكن A24- A31 تعطي 7 بايت. 2 ) L0-L19 (20) بت تستخدم لفحص حجم القطعة وتحدد 1MB . لاحظ آن البايت 0 و 1 يعطي L0-L15 ، D0-D3 من البايت يحدد L16-L19 وبذلك يتم فحص قطعة الذاكرة1MB المفروضة من الشيفرة آو المعطيات. 3 ) يسمح بايت الوصول بحماية قطعة المعطيات آو الشيفرة عن طريق تحديد مستويات الامتياز0,1,2,3 لها حيث يشير0 إلى مستوى الامتياز الآعلى و 3 إلى الادنى آما البتات D0-D7 لبايت الوصول فهي موصوفة فيما يلي: يبنى جدول الموصف بواسطة نظام التشغيل لكل قطعة شيفرة أو معطيات. ويحتفظ جدول الموصفات DTR في المعالج 80386 بالعنوان الفيزيائي لموقع الجدول في فراغ العناوين 4GB والتي تعني أن مسجل جدول الموصفات_ هو مسجل بطول 32 بتا. عندما يغير المعالج محتويات مسجل قطعة ما CS-DS) وهكذا) فإنه يستخدم قيمة القطعة كفهرسة ضمن جدول الموصفات ويستعيد جميع البايتات الثمانية التي تنتمي لهذه القطعة من جدول الموصفات إلى المعالج. حيث تحفظ هذه البايتات الثمانية في جزء غير مرئي من مسجل القطعة في المعالج ، وهذا يعني أن كل مسجل قطعة في المعالج له امتداد 8 بايت وهي غير مرئية للمبرمج. إذا نظرنا إلى البايات الثمانية من جدول الموصفات فإنه يخطر السؤال التالى: لماذا لم تحدد شركة انتل عنوانا فيزيائيا بطول 32 بت للشيفرة أو المعطات المرغوبة في بايات متتالية، بدلا من استخدام البايت 2,3,4 ومن ثم 7 ؟ الجواب: السبب هو المعالج 80286 حيث أن النمط المحمي في المعالج 80286 يستخدم البايت 2,3,4 لخطوط العونة 24 بت وجعل البايتات 6,7 مساوية 0، مما قاد شركة انتل للاستخدام البت 7 لجزء العنونة A24-A31 من العنوان الفيزيائي للمعالج 80386. يستخدم البايت 6 لزيادة الطول والبت Gإضافة إلى أشياء أخرى. انظر الشكل (8-14) .

الذاكرة الافتراضية البالغة 64 تيرا بايت:

يبدو من الشكل (9-14) أن مسجل الناخب يتألف من 14بت مما يعطي 16384 حالة ممكنة. يمكن لكل من هذه الاحتمالات الوصول إلى الموصف الذي يحوي عناوين القطع الذاكرية التي تصل إلى 4GB. ولذلك يكون لدينا 4GB× 64TB=16MB من الذاكرة الافتراضيه للمعالج 8086 يمكن للمعالج 386 0 8 الوصول بطريقة أخرى إلى64 تيرا بايت من القرص الصلب (الذاكرة الافتراضية) التي تجزأ إلى قطع بحجم 4GB ، على اعتبار أن المعالج لا يملك سوى 32 رجل عنونة.

الطريقة الصفحية:

استبدلت الطريقة التقطيعية في المعالج 80286 بطريقة جديدة في المعالج 80386 وهي الطريقة الصفحية للذاكرة الافتراضية. اعتمدت جميع معالجات RISC ومعالجات شركة موتورولا طريقة الذاكرة الافتراضية الصفحية وفي هذه الطريقة تم تقسيم الذاكرة الأساسية إلى قطع بحجم 4KB ثابتة بدلا من احجام متغيرة من 1 بايت إلى 4GB كما في طريقة التقطيع. إذا لم تكن قطعة المعطيات أو الشيفرة موجودأ في الذاكرة الاساسية يقوم نظام التشغيل بإحضارها إلى الذاكرة الأساسية من القرص الصلب 4KB بآن واحد حيث أن هذا الحجم من الذاكرة مناسب لنقل المعطيات أكثر من الحجم 64KB على سبيل المثال. وباعتبار أن حجم المعطيات انخفض إلى 4KB فإن المعالج80386 يحتفظ بجدول من أجل الصفحات 32 الأخيرة الأكثر حداثة في الذاكرة الرئيسية لمنع المعالج من تبادل المعطيات غير الضرورية من الذاكرة الرئيسية ويسمى هذا الجدول بعازل التحويل المستقل TLB الذي يحفظ داخل المعالج 80386 يجب أولا توضيح مصطلح العنوان الخطي . يسمى العنوان المؤلف من 32 بتا للمعامل بالعنوان الخطي ويمكن أن يكون قيمة مباشرة كما في التعليمة MOV EAX,[50000000] أو ربما يشار اليه باحد المسجلات EDX,EBX,ESI,EDI وهكذا كما في التعليمة MOV EAX,[EBX] يجب تحويل العنوان الخطي إلى عنوان فيزيائي لكي يتم وضعه على خطوط العنونة A0-A31 ومن ثم إرساله إلى مفكك شيفرة العناوين لتحديد موقعه في الذاكرة RAM ،ROM هذا يعني أن العنوان 50000000H في التعليمة MOV EAX,[50000000] لايمثل العنوان الفعلي في الذاكرة RAM ،ROM انظر الشكل (10-14)

تحويل العنوان الخطي إلى عنوان فيزيائي:

يقسم العنوان الخطي في الطريقة الصفحية إلى ثلاثة أقسام حيث تستخدم. البتات العشرة العلوية A22-A31 كمدخل إلى فهرس الصفحة يمتلك المعالج 80386 مسجالا بطول 32 بت (CR3) يحتفظ بعنوان القاعدة الفيزيائي لفهرس الصفحة وبما أن البتات العشرة العلوية من العنوان الخطي مخصصة إلى مدخل فهرس جدول الصفحة فإنه بالإمكان وجود 1024 فهرس صفحة. يمثل كل مدخل إلى فهرس الصفحة بأربعة بايتات من موصف جدول الصفحة. تستخدم البتات العشرون العلوية من كل 4 بايت لموصف جدول الصفحة لتعيين جدول آخر يحتوي على العنوان الفيزيائي لاطار الصفحة4K. كيف يتوضع المدخل الصحيح في الجدول ؟ تستخدم البتات العشرة A11-A21 من العنوان الخطي لتحديد مدخل جدول الصفحة.وللمرة الثانية نقول أن كل مدخل في الجدول الثاني يكون بطول 4 بايت. تخصص البتات 20 العلوية من أجل A12-A31 للعنوان الفيزيائي لموقع توضع المعطيات أما البتات 12 الأولى من العنوان الفيزيائي فهي نفس البتات 12 السفلى من العنوان الخطي. انظر الشكلين (12-14)(13-14) .اي ان البتات 12 السفلى فقط من العنوان الخطي تتماثل مع البتات 12 السفلى للعنوان الفيزيائي في الذاكرة RAM,ROM حيث تتمركز المعطيات و يجب أن تمر البتات العشرون العلوية للعنوان الخطي بمستويين من جداول التحويل للحصول على العنوان الفيزيائي الفعلي لبداية الصفحة التي تحتوي على المعطيات. وهذا سبب وجود العازل TLB داخل المعالج حيث يقوم بحفظ قاثمة من العناوين الفيزيائية لاطارات الصفحات الأكثر استخداما في الفترة الأخيرة. عندما يرغب المعالج بالوصول إلى قطعة من المعلومات عن طريق عنوان خطى فإنه يقارن أولا البتات 20 العلوية من العنوان الخطي مع العازل TLB لرؤية ما إذا كان مدخل الجدول للصفحة المطلوبة متواجد مسبقا داخلا المعالج. ينتج عن ذلك احتمالين:

1-إذا كان موجودا فإنه يأخذ 20 بت من العنوان الفيزيائي للصفحة ويركبه مع 12 بت السفلى من العنوان الخطي للحصول على 32 بت وهي العنوان الفيزيائي الذي سيوضع على أرجل العنونة لجلب المعطيات أو الشيفرة.

2-إذا لم يجد الجدول ينبغي على المعالج إحضار مدخل جدول الصفحة من الذاكرة إلى العازل TLB.

إن كل مدخل في جدول الصفحة يحتوي 4 بايت تستخدم منها 20 بت من أجل (A31-A11) للعنوان الفيزيائي لإطار الصفحة. و يستخدم الباقي من أجل بت الوجود P وبت التلوث D و بت القراءة/الكتابة R/W و بت الوصول A واخيرا بت المستخدم/المشرف U/S والذي يحدد مستوى الامتياز للشيفرة أو المعطيات يوجد في طريقة التقطيع 2 بت لتمثيل مستوى الامتياز، وهذا يعني 4 مستويات حماية بينما يوجد في طريقة الصفحة بت واحد فقط لتحديد مستوى الامتياز والتي تسمى U/S اذا كان U/S=0 يكون مستوى الامتياز للمستخدم ويكافئ المستوى 3 في نمط التقطيع. وإذا كان U/S=1 فإن مستوى الامتياز يكون للمشرف الذي ينتمي إلى نظام التشغيل ونواة النظام BIOS. حيث يكافئ مستوى امتياز المشرف إلى المستويات 0,1,2 في طريقة التقطيع.

TLB الأكبر هو الافضل:

بما ان العازل TLB في المعالج 80386 يحتفظ بقائمة عناوين الصفحات 32 المستخدمة مؤخرأ، فإنه يسمح للمعالج بالوصول إلى 32×4=128KB من الشيفرة أو المعطيات في أي وقت بدور المرور عبر المعالجة المضيعة للوقت لتحويل العنوان الخطي إلى العنوان الفيزيائي (تحويل الجدول على مرحلتين). انظر الشكل (13-14). ولذلك فإن إحدى طرق تطوير المعالج هي زيادة عدد الصفحات التي يمكن للعازل TLB الاحتفاظ بها وهذا ما حصل فعلا في المعالج بينتوم . يقارن الجدول (7-14) بين الطريقة الصفحية والطريقة التقطيعية.

المراجع:

- الدليل في التصميم و الربط البيني للمعالجات من 8086الى pentium pro دار شعاع

- كتاب الذواكر في النمط المحمي

- المعالج 8086 للدكتور يحيى نجار