المعالج الدقيق 80386 Microprocessor

اقرأ في هذا المقال


ما هو المعالج الدقيق 80386 Microprocessor؟

المعالج الدقيق (80386) هو معالج (32) بت يتمتع بالقدرة على تنفيذ عمليات (32) بت في دورة واحدة، يحتوي على ناقل بيانات وعنوان (32) بت لكل منهما، وبالتالي لديه القدرة على معالجة (4) جيجا بايت أو (232) من الذاكرة الفعلية، تعد القدرة على تعدد المهام والحماية من الخصائص الرئيسية للمعالج الدقيق (80386)، المعالج (80386) يحتوي على أجهزة داخلية مخصصة تسمح بتعدد المهام.

نعلم أنّ (8086) هو معالج دقيق (16) بت و(80286) كان تقدمًا لـ (8086) مع بعض الخصائص الإضافية، ولكن مع ظهور التكنولوجيا، قدمت إنتل معالجًا دقيقًا (32) بت كانت سرعة معالجته ضعف سرعة المعالج الدقيق (80286)، كان هذا معالجًا دقيقًا (80386) تمّ تصميمه بواسطة (Intel) في أكتوبر (1985) وكان نسخة مطورة من المعالج الدقيق (80286).

ميزات المعالج الدقيق 80386:

  • لأنّه معالج دقيق (32) بت، وبالتالي لديه (32) بت (ALU).
  • (80386) لديه ناقل بيانات (data bus) (32) بت.
  • يحمل ناقل عنوان (address bus) (32) بت.
  • وهو يدعم قابلية عنونة للذاكرة الفعلية تبلغ (4) جيجابايت وقابلية عنونة للذاكرة الظاهرية تبلغ (64) تيرابايت.
  • يدعم (80386) مجموعة متنوعة من ترددات ساعة التشغيل (operating clock frequencies)، وهي (16) ميجاهرتز و(20) ميجاهرتز و(25) ميجاهرتز و(33) ميجاهرتز.
  • إنّه يوفر خط (pipeline) من (3) مراحل: الجلب (fetch) وفك التشفير (decode) والتنفيذ (execute)، حيث أنّه يدعم الجلب وفك التشفير والتنفيذ المتزامن داخل النظام.

أوضاع التشغيل للمعالج الدقيق 80386:

المعالج الدقيق (80286) يدعم نظامي للتشغيل، الأول هو وضع العنوان الحقيقي (real address mode) بينما الثاني هو وضع العنوان الظاهري المحمي (protected virtual address mode)، ومع ذلك، يدعم (80386) (3) أنظمة تشغيل: الوضع الحقيقي (real) والمحمي (protected) والافتراضي الحقيقي (virtual real mode).

من بين وضعي المعالج الدقيق (80286)، في البداية، تمّ تمهيد (booted) (80286) في الوضع الحقيقي، ومع ذلك، للحصول على أداء تشغيل أفضل، يتم استخدام أمر برمجي منفصل للتبديل من الوضع الحقيقي إلى الوضع المحمي، ولكنّه يتطلب إعادة ضبط المعالج الدقيق من أجل التبديل إلى الوضع الحقيقي من الوضع المحمي، تمّ التخلص من هذا العيب في المعالج (80386) الذي يسمح بالتبديل بين الأوضاع باستخدام أوامر البرنامج.

  • في الوضع المحمي (protected mode): يعمل المعالج الدقيق (80386) بطريقة مشابهة مثل (80286) ولكنّه يوفر قدرة أعلى على معالجة الذاكرة.
  • في الوضع الافتراضي (virtual mode): يمكن تقسيم الذاكرة الإجمالية للمعالج (80386) إلى أجهزة افتراضية مختلفة، ويعمل كل منهم كجهاز كمبيوتر منفصل مع معالج دقيق (8086)، يسمّى هذا الوضع أيضًا وضع (8086) الافتراضي أو وضع (V86).
  • أما في الوضع الحقيقي الافتراضي (virtual real mode): هذا الوضع يسمح للنظام بتنفيذ برامج متعددة في الذاكرة المحمية، وفي حالة تعطل أحد البرامج الموجودة في ذاكرة معينة، فلن يتسبب ذلك في أي تأثير سلبي على الجزء الآخر من الذاكرة.

معمارية المعالج الدقيق 80386:

في التمثيل المعماري للمعالج الدقيق (80386)، يكون في الأساس، لديه (6) وحدات وظيفية وهي كما يلي:

  • وحدة واجهة الناقل (Bus Interface Unit).
  • وحدة جلب الكود (Code Fetch Unit).
  • وحدة فك التعليمات (Instruction Decode Unit).
  • وحدة التنفيذ (Execution Unit).
  • وحدة إدارة الذاكرة (Memory Management Unit).

كما ناقشنا بالفعل أنّ (80386) يمتلك القدرة على (3) مراحل من (pipelining)، وبالتالي يقوم بالجلب، وفك التشفير، والتنفيذ في وقت واحد جنبًا إلى جنب مع إدارة الذاكرة والوصول إلى الناقل، وهكذا فإنّ كل هذه الوحدات تعمل بشكل متوازي، تؤدي تقنية خطوط النقل هذه إلى تقليل وقت المعالجة الكلي وبالتالي زيادة أداء النظام ككل، دعونا الآن ننتقل إلى أبعد من ذلك ونفهم تشغيل كل وحدة بالتفصيل.

وحدة واجهة الناقل Bus Interface Unit:

تحتوي وحدة واجهة الناقل أو (BIU) على ناقل بيانات ثنائي الاتجاه (32) بت بالإضافة إلى ناقل عنوان (32) بت، عندما يتم إنشاء حاجة للتعليمات أو جلب البيانات من قبل النظام، تقوم (BIU) بإنشاء إشارات “وفقًا للأولوية” لتنشيط ناقل البيانات والعنوان من أجل جلب البيانات من العنوان المطلوب، تقوم (BIU) بتوصيل الأجهزة الطرفية (peripheral devices) من خلال وحدة الذاكرة وتتحكم أيضًا في واجهة النواقل الخارجية مع المعالجات المشتركة.

وحدة الجلب المسبق للكود Code Prefetch Unit:

تقوم هذه الوحدة بجلب التعليمات المخزنة في الذاكرة من خلال الاستفادة من نواقل النظام، عندما يقوم النظام بإنشاء حاجة للتعليمات، تقوم وحدة الجلب المسبق للكود بجلب تلك التعليمات من الذاكرة وتخزينها في قائمة انتظار ذات (16) بايت، لتسريع العملية، تقوم هذه الوحدة بإحضار التعليمات مقدمًا وتقوم قائمة الانتظار بتخزين هذه التعليمات، يعتمد التسلسل الذي يتم فيه جلب التعليمات وتخزينها في قائمة الانتظار على الترتيب الموجود في الذاكرة.

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

وحدة فك التعليمات Instruction Decode Unit:

نحن نعلم أنّ التعليمات الموجودة في الذاكرة مخزنة في شكل بتات، لذلك، تقوم هذه الوحدة بفك تشفير التعليمات المخزنة في قائمة انتظار الجلب المسبق، يقوم جهاز فك التشفير بشكل أساسي بتغيير رمز لغة الآلة إلى لغة التجميع (assembly language) ونقله إلى المعالج لمزيد من التنفيذ.

وحدة التنفيذ Execution Unit:

يتم تخزين التعليمات التي تمّ فك تشفيرها في قائمة انتظار التعليمات التي تمّ فك تشفيرها، لذلك، يتم توفير هذه التعليمات لوحدة التنفيذ من أجل تنفيذ التعليمات، تتحكم وحدة التنفيذ في تنفيذ التعليمات التي تمّ فك شفرتها، تحتوي هذه الوحدة على وحدة (ALU 32) بت، والتي تقوم بالعملية على بيانات (32) بت في دورة واحدة، أيضًا، يتكون من (8) سجلات للأغراض العامة (general purpose registers)، بالإضافة إلى (8) سجلات للأغراض الخاصة (special purpose registers)، تستخدم هذه لمعالجة البيانات وحساب عنوان الإزاحة.

وحدة إدارة الذاكرة Memory Management Unit:

تحتوي هذه الوحدة على وحدتين منفصلتين بداخلها، وهي كالتالي:

  • وحدة التجزئة (Segmentation Unit).
  • وحدة الترحيل (Paging Unit).

وحدة التجزئة: تلعب وحدة التجزئة دورًا حيويًا في المعالج الدقيق (80836)، توفر آلية حماية من أجل حماية الكود أو البيانات الموجودة في الذاكرة من برامج التطبيقات، يوفر حماية (4) مستويات للبيانات أو الكود الموجود في الذاكرة، يتم تعيين مستوى امتياز لكل معلومة في الذاكرة من (PL0) إلى (PL3)، هنا، يحمل (PL0) الأولوية القصوى ويحمل (PL3) الأولوية الأدنى.

وحدة الترحيل: تعمل وحدة الترحيل في الوضع المحمي فقط وتقوم بتغيير العنوان الخطي إلى عنوان مادي، نظرًا لأنّ المبرمج يوفر العنوان الظاهري فقط وليس العنوان الفعلي، تتحكم وحدة التجزئة في عمل وحدة الترحيل، حيث أنّ وحدة التجزئة لديها القدرة على تحويل العنوان المنطقي إلى العنوان الخطي في وقت تنفيذ التعليمات، بشكل أساسي، يقوم بتغيير خريطة المهام الشاملة إلى صفحات ويكون حجم كل صفحة (4K)، يسمح هذا بمعالجة المهام في شكل صفحات بدلاً من شرائح (segments).


شارك المقالة: