دورة التعليمات في وحدة المعالجة المركزية Instruction Cycle

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


يحدد هيكل دورة التعليمات معالجة تعليمة واحدة، تأخذ معالجة التعليمات شكلاً مختلفًا أثناء حدوث مقاطعة (interrupt) أو إذا كان هناك عنوان غير مباشر موجود في التعليمات، في هذا المقال، سنناقش الأشكال المختلفة لدورة التعليمات (instruction cycle)، يمكن أن تتحلل كل مرحلة من مراحل دورة التعليمات إلى سلسلة من العمليات الدقيقة الأولية، هناك تسلسل واحد لكل من دورات الجلب، وغير المباشر، والتنفيذ والمقاطعة.

تعريف دورة التعليمات Instruction Cycle

يُطلق على المعالجة المتضمنة في تنفيذ تعليمة واحدة “دورة التعليمات”، تتم هذه المعالجة في خطوتين، أي الجلب (fetch) والتنفيذ (execute)، لتنفيذ التعليمات، يقوم المعالج أولاً بقراءة تعليمات من الذاكرة تسمّى الجلب ثمّ يتم تنفيذ التعليمات التي تمّ جلبها، إذا ناقشنا الهيكل الأساسي فإنّه يشمل الدورتين التاليتين:

  • دورة الجلب (Fetch cycle): في هذه الدورة، يقرأ المعالج التعليمات التي سيتم تنفيذها من الذاكرة.
  • دورة التنفيذ (Execute cycle): في هذه الدورة، يفسر المعالج كود التشغيل للتعليمات التي تمّ جلبها وينفذ العمليات وفقًا لذلك.

في معالجة دورة التعليمات الأساسية، في البداية، لبدء تنفيذ البرنامج، يقوم المعالج بتشغيل دورة الجلب وجلب التعليمات الأولى من الذاكرة، تفسر دورة التنفيذ العملية وتنفذ العمليات المحددة في التعليمات وفقًا لذلك، تتكرر هذه الدورة حتى يتم تنفيذ جميع التعليمات من البرنامج وبعد تنفيذ التعليمات الأخيرة تتوقف دورة التعليمات، لذلك، كان هذا هو السيناريو حيث لم تكن هناك مقاطعات.

لماذا نحتاج إلى دورة التعليمات

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

دورة المقاطعة Interrupt Cycle

لاستيعاب حدوث المقاطعات، يجب إضافة دورة المقاطعة لتعديل هيكل دورة التعليمات، عند إضافة دورة المقاطعة إلى دورة التعليمات الأساسية، ضع في اعتبارك الحالة التي يتم فيها تمكين المقاطعات، في هذه الحالة، في حالة حدوث مقاطعة، يقوم المعالج بإيقاف تنفيذ البرنامج الحالي، وبالتالي، فإنّه يحفظ عنوان التعليمات التي يجب تنفيذها بعد ذلك وخدمة المقاطعة التي حدثت.

لمعالجة المقاطعات، عيّن المعالج عداد البرنامج بعنوان البداية لروتين خدمة المقاطعة (interrupt service routine)، سيسمح هذا للمعالج بجلب التعليمات الأولى لروتين خدمة المقاطعة وخدمة المقاطعة التي حدثت، بمجرد أن تتم خدمة المقاطعة، يستأنف المعالج مرة أخرى تنفيذ البرنامج، فإنّه يتوقف لخدمة المقاطعة، يقوم بتعيين عداد البرنامج بعنوان التعليمات التالية المراد تنفيذها، إذا تمّ تعطيل المقاطعات، فسيتجاهل المعالج ببساطة حدوث المقاطعات، سيقوم المعالج بتنفيذ البرنامج قيد التشغيل حاليًا بسلاسة وسيقوم بفحص المقاطعات المعلقة بمجرد تمكين المقاطعات.

الدورة غير المباشرة Indirect Cycle

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

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

شرح هيكل دورة التعليمات

يختلف هيكل دورة التعليمات من معالج لآخر حسب تصميمه، على الرغم من أنّنا إذا تحدثنا بعبارات عامة دعونا نرى ما يجب أن يحدث، قبل الدخول في التفاصيل، دعونا نناقش السجلات المطلوبة في معالجة دورة التعليمات:

  • سجل عناوين الذاكرة (Memory Address Register) (MAR): يحتوي هذا السجل على عنوان موقع الذاكرة من حيث يجب جلب البيانات أو إلى مكان تخزين البيانات.
  • سجل ذاكرة التخزين المؤقت (Memory Buffer Register) (MBR): يخزن هذا السجل البيانات التي تم جلبها من الذاكرة أو التي يجب تخزينها في الذاكرة.
  • عداد البرنامج (Program Counter) (PC): يسمّى هذا أيضًا سجل عنوان التعليمات لأنّه يحتوي على عنوان التعليمات التي يجب تنفيذها بعد ذلك.
  • سجل التعليمات (Instruction Register) (IR): يحتوي هذا السجل على التعليمات التي يجب تفسيرها.

في مخطط دورة التعليمات مع المقاطعات والعنونة غير المباشرة، يكون التالي:

سيتم تشغيل دورة الجلب في البداية، ويتم تهيئة عداد البرنامج من خلال عنوان التعليمات الأولى للبرنامج، يتم نقل العنوان الموجود في الكمبيوتر الشخصي إلى (MAR) ويتم تحديث الكمبيوتر بعنوان التعليمات التالية التي سيتم تنفيذها، تقرأ وحدة التحكم التعليمات من العنوان الموجود في (MAR) وتخزنها في (MBR) ثم تنقلها إلى (IR)، هنا تنتهي دورة الجلب.

تتحقق وحدة التحكم من (IR) للتحقق ممّا إذا كانت التعليمات تحتوي على أي معاملات، تحدد العنونة غير المباشرة، إذا كان العنوان غير المباشر موجودًا في التعليمات، فيجب تشغيل الدورة غير المباشرة، لهذا، تقرأ وحدة التحكم أقصى عدد (N) بت من (MBR) وتقوم بنقلها إلى (MAR)، تحتوي هذه البتات (N) على مرجع العنوان للمعامل الذي يجب جلبه، تقوم وحدة التحكم بتنفيذ عملية قراءة الذاكرة وجلب عنوان المعامل وتحويله إلى (MBR)، هنا تنتهي الدورة غير المباشرة.

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

إذن، هذه هي الأشكال المختلفة لدورة التعليمات، لقد رأينا التعديل في هيكله عندما يكون هناك عنونة غير مباشرة موجودة في التعليمة وحتى عند حدوث مقاطعة.


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